{"report_id":"c5d3e6c1-3d38-4192-8aef-da34758bbbaa","version":0,"status":"done","tags":[],"date":"2026-07-27T08:08:19Z","url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":0,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"final":{"url":{"schema":"https","addr":"nconnect.org/En?cur_from=BTC\u0026cur_to=ETH","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"title":"NConnect | Your CryptoCurrency and DigitalCurrency Exchange","dom":{"size":1170126,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text","md5":"6e70e236d455f78ffa1df3144f585a77","sha1":"f6b5179ef72a49513053ae5d1f9100e2fa7987f4","sha256":"aa755ae84f7de39982e5606446d71a7177b95ce1157de0d60265533a7c1a7573","sha512":"753ccfeff3829df20ffd8bdb41a8c3c8c5352783cd1ae06253ec2af250f77dc1d10a39fc1064e25960cde7a0aa635b193992a76e145a3c063aa29f895d4ec523","ssdeep":"6144:6q/xx0X045UjYDSdDdPiDxLG9vg549Eqhf5oJkM5UHgy5gh45kWY90GBKupKMfMD:WtpKM23xj9vNR","tlshash":"b945395bd8fa01815a0ba0a193db33b4b675f157c908dc29fa8db69dcfcb2525c5238c","dom_hash":"domhashee2e0cbabbb8d6e3a3bf3250288e9b9f","first_seen":"2026-07-27T08:08:30.971663Z","last_seen":"2026-07-27T08:08:30.971663Z","times_seen":1,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":0,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T08:08:19Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"qguvgzjxzsgb3vs"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":0}},"detection":{"ids":null,"analyzer":null,"urlquery":null},"summary":[{"fqdn":"nconnect.org","ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"domain_registered":"2008-02-18","domain_rank":0,"first_seen":"2026-07-27T05:24:50.917392Z","last_seen":"2026-07-27T05:24:50.917392Z","alert_count":0,"request_count":95,"received_data":7318977,"sent_data":49024,"comment":"","tags":null,"fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}]},{"fqdn":"fonts.gstatic.com","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2026-07-26T22:19:52.505461Z","alert_count":0,"request_count":1,"received_data":40941,"sent_data":562,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.googletagmanager.com","ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2011-11-11","domain_rank":283,"first_seen":"2012-10-04T01:07:32Z","last_seen":"2026-07-26T22:31:28.839046Z","alert_count":0,"request_count":2,"received_data":888647,"sent_data":964,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"www.google.no","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2001-02-26","domain_rank":92680,"first_seen":"2012-06-26T23:22:08Z","last_seen":"2026-07-26T23:31:59.116255Z","alert_count":0,"request_count":1,"received_data":578,"sent_data":806,"comment":"","tags":null,"fingerprints":null},{"fqdn":"accounts.google.com","ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":103,"first_seen":"2012-05-23T06:57:57Z","last_seen":"2026-07-20T08:28:52.267165Z","alert_count":0,"request_count":2,"received_data":267732,"sent_data":942,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.gstatic.com","ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":146047,"first_seen":"2012-05-29T15:36:17Z","last_seen":"2026-07-26T23:06:30.068608Z","alert_count":0,"request_count":4,"received_data":1870651,"sent_data":2166,"comment":"","tags":null,"fingerprints":null},{"fqdn":"fonts.googleapis.com","ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":313,"first_seen":"2012-05-23T12:41:44Z","last_seen":"2026-07-26T22:23:14.439231Z","alert_count":0,"request_count":1,"received_data":3452,"sent_data":547,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"in-automate.brevo.com","ip":{"addr":"104.18.37.40","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"1999-09-10","domain_rank":161262,"first_seen":"2023-05-23T10:45:40Z","last_seen":"2026-07-23T13:28:46.284818Z","alert_count":0,"request_count":1,"received_data":239,"sent_data":793,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Envoy","description":"Envoy is an open-source edge and service proxy, designed for cloud-native applications.","website":"https://www.envoyproxy.io/","common_platform_enumeration":"cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*","icon":"Envoy.png","categories":["Reverse proxies"]}]},{"fqdn":"sibautomation.com","ip":{"addr":"141.101.90.106","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-01-20","domain_rank":29079,"first_seen":"2017-01-21T15:10:10Z","last_seen":"2026-07-23T13:28:46.256899Z","alert_count":0,"request_count":1,"received_data":15644,"sent_data":479,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Sails.js","description":"","website":"https://sailsjs.org","common_platform_enumeration":"","icon":"Sails.js.svg","categories":["Web frameworks"]},{"name":"Express","description":"Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.","website":"https://expressjs.com","common_platform_enumeration":"cpe:2.3:a:expressjs:express:*:*:*:*:*:*:*:*","icon":"Express.svg","categories":["Web frameworks","Web servers"]},{"name":"Envoy","description":"Envoy is an open-source edge and service proxy, designed for cloud-native applications.","website":"https://www.envoyproxy.io/","common_platform_enumeration":"cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*","icon":"Envoy.png","categories":["Reverse proxies"]}]},{"fqdn":"www.google.com","ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":22,"first_seen":"2015-05-10T13:11:19Z","last_seen":"2026-07-26T22:51:17.688286Z","alert_count":0,"request_count":2,"received_data":19579,"sent_data":1224,"comment":"","tags":null,"fingerprints":null}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":null},"javascript":{"script":[{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BIp5-3EK.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"9fae8696acbb3e2ad4a7a65997719248","sha1":"867520d8404ecc74d2d07713c0cbe05fdf5bc4e6","sha256":"245b9f75817a2a4bd9027f37aa4db1b87f593113bed26c1b90348a943e116231","sha512":"4e9c0d2a8e7f8fbbaac31dddf209f567e7249808c0f63d1af0083069b3ffd7c5a7ab9b0822911207e9d3cbea28d9f7525dc35d385007d32b670185910dad14b7","ssdeep":"192:Zs0SiKD+um1X90dECUVXt9cBgViTqcOT0zWwHM:Km1XCETV99cBgVi5zWr","tlshash":"49d165552a76e9399b3b908ce4fde06297240b9ccad9d5e0f4f20e1c6399544b3a433f","size":6224,"data":"","first_seen":"2025-10-23T03:46:52.437035Z","last_seen":"2026-07-27T11:49:48.932164Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/1WQF9nlZ.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"41c9f16bf6242a4510358fabcf08ba2a","sha1":"01c833057b795ea2fc3ab0b5434fb53427941b82","sha256":"1a99812e99593b4a5c7e67ada0877809bb7ec30ef7100016a2a57433ffa8df50","sha512":"f883eed72da313ccbb0dad7cfbb2aea45dc22ac41b173521d427613a001226eb9d740495d10487096083bbcc2c2cd4a136fbad97a200ac47b9d4aebd8d30235b","ssdeep":"96:eQuydC9sT/wAFbPmOFk7pUSSxZftSGRkInPvuaUztpffP6ZD7/:eNydOE/wgiqkFYxZ9RkInubztpfad","tlshash":"1991a80572d0a17253fbf9cac2a62930c5741310f96285c9fa0f51eb14b6cd1a5b7d3b","size":4355,"data":"","first_seen":"2025-10-23T03:46:52.716788Z","last_seen":"2026-07-27T11:49:48.948128Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtm.js?id=GTM-KV47CD8","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"51c322f909a9a87988d05b83fe7e3b08","sha1":"e75dc9a8f541ff91f23e63be90040e6f7d10c208","sha256":"92d564da937c7717dae8aebfcc050ae2492888f1e0ca556691611b4a44ce5938","sha512":"99a54e6e033df79a13be66660f0e1b69d29dbd7303e1b22cd8766cf026058af02eb79dd406948f5200c847d0d233f692157b0c56c2902111f9c4e0639c61efb8","ssdeep":"6144:aNHU0jN9cP69uMxlMrHScPmfxNf3EjFpGaPoXcJMG+:aN0YmP69b4JPOcJZ+","tlshash":"6f8418cdb3da74629392f478903f018ba57a28d2b44cc899f189dcd42e7069a4277f7d","size":397913,"data":"","first_seen":"2026-07-27T08:08:31.008124Z","last_seen":"2026-07-27T11:49:48.972696Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/B_2FkP8S.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"1b5232609ce3b11004a4df18c43dd248","sha1":"79ceee6adfcaff4405320401d1840c38c32ed931","sha256":"bb21efbb2c5f8b5fda5ac26d789e1da82d35a5b20c0c9b8e3697c70a5fe0d38b","sha512":"9431b58b7b6afb7523e120ef285cacd08f1cfc0dfbdde48c31b91d813f4f0ad48e12105703aa1960d25e3793c37df07f20a74d54cf26a62e39827487b092eded","ssdeep":"","tlshash":"17511e50d69a5d624aebcb4586f11621397cc51c3f61c6a973bab03f011b85e3027ff9","size":3099,"data":"","first_seen":"2025-10-23T03:46:52.191218Z","last_seen":"2026-07-27T11:49:48.902192Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D8ayu7rP.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"7cedac030d27c2233cd24327ee7a649c","sha1":"59901a9c14cd1116012acfa1a2881e9c988edeb9","sha256":"ba6820e08629ce702def60efd6e530b256cff87b96e8920c359dd31aca1e18f5","sha512":"038fecf563202d0b1178f0b28f3f6d0fdb6d37b9bdebbe5b14e7b0212f223592ffd32b6c935c86a2663ee874b7dbd3d5677a46d78dbfe899ae7542b736cafb23","ssdeep":"","tlshash":"cb41a64c43911df3416713d7edc643050678e89c3e2e58e8fa78694ba3221166b6ef6b","size":2179,"data":"","first_seen":"2025-10-23T03:46:52.061834Z","last_seen":"2026-07-27T11:49:48.96429Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/C10dbX3k.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"a92a0860f4417b5941466230293170d1","sha1":"12916ecc0f5de20e2f69962c596e5684145873a6","sha256":"47d1c18c4cbb05dfad9666df1b0cc2c1895938a3e511a4ea2a58fe89ac23d1e1","sha512":"9d97492503aee20a0b3500f23d6f183c6785f16669c605994c5ebd4e4312dafa081761f036423a0a8ae413f359228ffec9ad6a685d11a9405073a4412312d93d","ssdeep":"384:88lhqvwCEfrdZXJ4grxMlMgb4wTivLP8tCD2i44cDrK5gtAlpEazq6K2z3vKD1CJ:xlhqvwCEfregrxMl94wTivD8tCDP44cA","tlshash":"9bb22a9832987071a3ff8a9e80778346a3155694b01ed4d0b03eadbd3966e5493f3b1e","size":23566,"data":"","first_seen":"2025-10-23T03:46:52.025539Z","last_seen":"2026-07-27T11:49:48.971968Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/WBDhfoJ7.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"774cbeeb3f935b4846b8863d9a5b9582","sha1":"de80b2a693b2feb4c6c520f9821fbdaadd841281","sha256":"33f1ce95955c9a84a54d391e5744c0b79f9a61ec9bb89165da4b86d9ab242e49","sha512":"aac0ada75f4ee775288a9cc3955dcf1cfc945204f361eaa013b484b31061938d9cf9364fa61d1959ad7516a961930d5ddf8dab5d5d67a6476962a25ec0699e09","ssdeep":"384:lIY5nbRdEtgPD9p47SXB4Yc8+D+kw9mg3gopxO:lD5nbnsaASXB4u+D+kwppU","tlshash":"a3b24047baf624316bb3f0788baf8055a662438bce787ce4799d59041f0c41c62b63de","size":24098,"data":"","first_seen":"2025-10-23T03:46:52.050118Z","last_seen":"2026-07-27T11:49:48.915472Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D3OnLe3d.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"importedModule","is_inline":false,"md5":"6e53f70ccabba97cc5ff1a2658b3cdbf","sha1":"edf17ac87eb13d10b8ac90f8a06f6bf4f8083e21","sha256":"ddf79c9bd025c30935f354c65054285ae5ecf1cb12252e2dea90b61cb3f4b37a","sha512":"cebf71d830b52889c93cc81ccec8b243ba7c91a942af176304900a5e53fba01330d3ffcfbccd693b0c6d95adbe0b7158534c9d591d63a209cc28a657b0924ef0","ssdeep":"1536:NhvC4yDVTG6VBppdYTZUjU35elH+HuFFaIGJ818L/6LBEE0YzTXVc2och9iV2OJy:jHtUlHwJ8OT4BrVcoriY1","tlshash":"01e3734a13a1243511a7a53e4f4fc9252636800b6e4aeda438dc4998df6dd3c07faff9","size":151461,"data":"","first_seen":"2025-10-23T03:46:52.090869Z","last_seen":"2026-07-27T11:49:48.914727Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BAjJeBkK.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"8cb3c26a5e02f1f735fb7aa7d35848bb","sha1":"331e798d01fa28aa24de8ff770ca54b968c5bf9e","sha256":"b0c6d51b14476c76c79ca0fddb606ab2c19f35bfdf69503785e677f84e630ac0","sha512":"2fd33daac8b9807c0f7bc6b1ebb7a640b5d0544ccc596ec370c1d1742fc4912f84da190a46413d95f27d97dc1929f82c3767f2287b96f06a04f48edf83cd4c50","ssdeep":"","tlshash":"1fd097ceb09041f553d34ee8036a4635a03a2338232b9ad070230da12b04450c373ff6","size":245,"data":"","first_seen":"2025-10-23T03:46:52.737066Z","last_seen":"2026-07-27T11:49:48.908147Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CMuUTlS2.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"95d5c231451227f9008abf9a286ee10a","sha1":"4266324041ce8571d943105be85ab61675c760f3","sha256":"3c68442643cadc58f62d3dc06c506b17165b1857d7d18fe85e3b13e7c0be3f44","sha512":"d846b64402e72523fe2a9a0713468b9197886b99b251e6a59c7521064daa77951be5c8e6a0b3252867d8b58cd7767580cdf55f104017d11d7c32653220694728","ssdeep":"192:ZnIpGbIA8eNRxeZ1Kv07YEAfUWZgDJsx33Q1RZNsLeZnT7/Noqo4PY:ZIo8SRKm0kEAo6p3Q1RZwepTTNoqoWY","tlshash":"ee02d89a37e5753216e729e220ff1141f7790e44f04881e47036ae1a2a37ec592d7eea","size":8860,"data":"","first_seen":"2025-10-23T03:46:52.752511Z","last_seen":"2026-07-27T11:49:48.986184Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/3k3FjGGU.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"e13259f1010e8ba4f0441645a8482663","sha1":"6bf9c06b882d4275294fdb2871ed1084a193db6e","sha256":"fa04c778d176d053821a8b0d5b1b55911fff047b18eae865dc93ff57c520e516","sha512":"7592ea6806cc0cbdb8f4802a3262dacddb422bdd4be4d962babd7344725487b2f5465efc38693bb8632de8f1059f7d12476857d0706a8072241485e80718c97c","ssdeep":"384:pUkLOXZjuKgJihOo3A7dpAFESuafwAezFaBIS17kOmz9qJaabf5BoaBxACsV:pScEwzxaYBMHO","tlshash":"5f334145e5bb083296a3b03a0d1b84152a35874f9ef9bd883b9c45040f4d83ea6f97fd","size":51448,"data":"","first_seen":"2025-10-23T03:46:52.818616Z","last_seen":"2026-07-27T11:49:48.965228Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/recaptcha__en.js","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"a07ac1bf3466fe5eff6b753f96f39a11","sha1":"d06f6ebd81a8c180a7a6343821a3cf8279f5b86d","sha256":"c9fc8d435c9c3e131d7aedb36923a5ef798c85412192ed2afd9c52dcfb826ff7","sha512":"4648746112b8cdbab787c43e88827d96e02034c52b5436167a24d647ce349a0501df4ca67f82779c89fe0f5659bcc9b444655f83da816469c23e781fa3facc9a","ssdeep":"12288:CN7INAse6Zz779FTMfCtfTSZDYDzVRlh09yENpDvE:a0le6p5tfTSZ0D1h09yENpDvE","tlshash":"50153ade714639b24322b6f52077241ea77e9619c40c5c5d70aa98f03ef580da0f6ebb","size":891014,"data":"","first_seen":"2026-07-14T22:23:00.839245Z","last_seen":"2026-08-04T07:42:04.216012Z","times_seen":17341,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CV94PaAu.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"135fcfaf4912f3d38918b98de30bf5bf","sha1":"bc40d01f8e4f157336bb49328acf98cf3ad9b851","sha256":"28b4e74992d450c249a7aea814b5edcc0d315aad6fc48d79e2bbee087b2c2c87","sha512":"b879417efa9abf9b8522227a45d214beaa4c9a2e802aee76ffa4b7662e6744bb147244d59d985737fa1658196bc981068f86488d073c87a84669394ccaa88996","ssdeep":"384:u8EaugiRP/cOxuDF/eHoeNyHRln14K2RqBJa:u8E9HRV","tlshash":"b072c918d4f50431d297b6364e2b8ca9baf4465fdcaabe587bdd04011f0e42c8ab962d","size":16246,"data":"","first_seen":"2026-07-27T05:24:57.713437Z","last_seen":"2026-07-27T11:49:48.97104Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DAcvVGJe.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"aabcd46828be97837ff304af75bfa0bc","sha1":"2a0517b3cdb6b0e2bf72b543a88fa9fd7ffcedb2","sha256":"abfb682444a76c55ec266417e83acb8b992ba9713b30e2b1946c977f77f88386","sha512":"0cc9e95567a17d7262f2d6d3d5edb350434075d0a217ca8eb622d9018710be66f1b03110d02b3643feefbf47c7b866af1ee2bf56553c9d01b866fc2e12ada151","ssdeep":"","tlshash":"25e07d6e6fd5af7db2cf04e6e05452021a7947d8ff2b80e110e3001093400044714d2c","size":327,"data":"","first_seen":"2025-10-23T03:46:52.812661Z","last_seen":"2026-07-27T11:49:48.950973Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/B8TxTyak.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"9cd5560288dddf0dffc2443bb4fbdda2","sha1":"eeefd1c567e8aaf4c67d660bf63cf1da537eea93","sha256":"eb76625c2a3a93a6f52765cf2e3f84a138840c45a1f49a5517dd59c42db173ff","sha512":"a2efb6e79b44a0e559c5ba135037f8311349c6bae4f4af1b9b3f83b51a1ea19edb427aefebf2f01e736511c656d98f554e07e43972e71a0a2cdbe8e881d952da","ssdeep":"","tlshash":"2311ccac3365e4bf86ba04f6d23506df00e56464f63381cfe2252527013f618b09af6c","size":1014,"data":"","first_seen":"2025-10-23T03:46:52.234662Z","last_seen":"2026-07-27T11:49:48.954309Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/qArxSU5_.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"81b5db59e85ee2d3fa6fbb0ac35e4e8a","sha1":"a5bafba225a6df92412abe8081c052cab5a5149f","sha256":"77bf1d6eea59a8a6db12586647495c1bc72f945c914b90f9fc3c22f5ec37efc2","sha512":"94c284e2403a0fb2645784f0043c9ab7d08bf2729e113f2e4349088c25cc1527ce092e5d61ce9ef33ad7f796353ff072a38e72d31eb9113ab4f69e2619270018","ssdeep":"384:homej6Y1sMfGC2G5FhT9BnNfCppdc3lefZ3varUYl5Z1671lgOd2GVzE7Du2Fa3I:hoVjxsKLBnNff3lSYl5Z165ZC87GTGs","tlshash":"aea3ef0a92f50536a187b2784e0bd8993a2552cf8dfa7d683fec49051f0e13e66f42dd","size":101883,"data":"","first_seen":"2026-07-27T05:24:57.749584Z","last_seen":"2026-07-27T11:49:48.927559Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"88a769d2fe35899fd45a332a0a032cc0","sha1":"514c6c1d8475d17e412849a4c90159517d0fa10a","sha256":"ccf00d1923b0131a10e0c6d26f95e5dee6ebf8621a27e83c5a2f68a2e0093142","sha512":"756cc5cd029fc4adc9100d0da2f2b0efb3df0f2bf894fba2824019832fea594edd40a238a5ffacc205572cc0155f5632d70f54e37edc0772460f44c69cb76ab8","ssdeep":"192:3dArCS2Z+j/yQ9TCQxUhW2DPY808LE676SbHDc/7uN0VZG05w:NHSG+j/y2xa3bn7Q+0a0O","tlshash":"7442b79c7e95ba30079b91b1a17ff30f6276605a640bc0a0b05ddcd1a878d8d192bf75","size":12332,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-08-04T08:02:40.858328Z","times_seen":123553,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/C2Qfbq92.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"24bae8f8968acb7ad6a237cfcc2c5de5","sha1":"ec63d03b7a9c84e98f89b7ba3d23a335913d63f5","sha256":"f6d8530bc5c44f97c64ed2e923a6995fe290c14140a8a53bf47b12044f820298","sha512":"a260f1d70f51e67ce690832a15c469b23748fd4f3e825849060e3412478dc597f9ecbdee16d3864f10ca6e64072472c5c91dd186cf34a62f543b6604118a596c","ssdeep":"","tlshash":"c3d0955cb84515b4c3fabde098351d2d4257d30835264bc01002d9bf57668d2c36bd7b","size":279,"data":"","first_seen":"2025-10-23T03:46:52.294869Z","last_seen":"2026-07-27T11:49:48.911142Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D_iu627J.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"da3475486dc16e95fc8e03b39ea9b8ce","sha1":"e7e2e914914d8325d516a0138460fa1ed3e873c2","sha256":"607d49750bd595d37cbce271567a3f8bb32966067e3d0b25718311279987c8f3","sha512":"7fb03055282fe543b7bde372d9bd2a026fa4083c59f833d05dac88c9387a04430005628cae702ab806ec758c7db30e0e08828813b72353d753529e824e808ab0","ssdeep":"192:5brCRe4jUBU6Z+KS2a+6eymiHoKr3AGrF6DlTgCAPzB/ZOdWbEgohUhQFnFE2g7D:JCHUBUA+CdE33rJz39ChUdZ","tlshash":"8b523049f5f214764173f1746e4f84042761034b8e29fdd8bfac92281f1d22ea6f26ad","size":14160,"data":"","first_seen":"2025-10-23T03:46:52.841643Z","last_seen":"2026-07-27T11:49:48.951783Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BhFnA_AP.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"e7ab18316a709571ab0182e6a607ea8f","sha1":"7d13a2423c84f0410635c7cb82a2a45068cfd6ba","sha256":"8cfa0d075fb398ce8e55c83c59b324eab85f19483667265c4a82f01a500e86bd","sha512":"ba314edc7fd66dd391caa1ad6373068b635cddecf76bd6823305e5f7fc4c4090872de27e55e06efdee9ab9d321de262dba2c2ae3b3be04f7912cff4cdeaae04a","ssdeep":"","tlshash":"2141c65e785acabc6caf841ae1141800738d1a8de93e5ce6f5685d7b278e9242b4c74c","size":1918,"data":"","first_seen":"2025-10-23T03:46:52.779982Z","last_seen":"2026-07-27T11:49:48.897328Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CxZrXy87.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"importedModule","is_inline":false,"md5":"7e3b301e325ace9ccfccb0825515d7ab","sha1":"af3ccf166811d1657225c7740a1690e54442c01a","sha256":"5da5f1a6d33cd911f34e9b6d696072c8ba14154bf855b0fa58658f80006c23db","sha512":"d12acc6c1afcec4cb14384f9fbd82d50cf83cdfd48a04601221d751679fa715e15bd20e2962b2b6ea0c7e7dd1f2a214edb7f2ff821b29bcc1fe66bebe66e7a3c","ssdeep":"1536:ip1MxwyUB9xI0fxk8p5F8BKNS4Sei0pdlZRxX0blK5TjvjHAQQzFTf7S8F+3V3UF:98k2SiX0bQQ9fUvs1","tlshash":"fbb3704752e125385293f17e5f5bc021366a880b7d89f8d43a9c06689f4d82c47faffa","size":109263,"data":"","first_seen":"2025-10-23T03:46:52.210796Z","last_seen":"2026-07-27T11:49:48.930501Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/ChErJn07.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"d86fc07cc54b8244aac3d222905bf549","sha1":"966ca857168f311e8c986305fbf43a9c5ffe4a85","sha256":"aca945dfc8112c7a7b9db53c59b6bbadd29ac11efb01e855c11e6e39a5b619bc","sha512":"4090cbfe6313c7c2bac9eb1d56b7483a071bf4e8db0097b25b52f6508736f4472efa29ab1879bce7bff4e8a69e6a1be5381ad309c2d3cc2a44423df17555558c","ssdeep":"384:aux6RGK+JooEWGVrA/U9RsplbO1+vTPvdmahZYzYYnkjchlPTiiEMkcMk/7/EFGX:auYRVRpVrA/Ujs3O1+vTPvdmahZYzYKR","tlshash":"92822a8038babd379f3b90dca0d58071c758176a942494e0d6bb1a3d13d9da473a6b3f","size":18261,"data":"","first_seen":"2025-10-23T03:46:52.625633Z","last_seen":"2026-07-27T11:49:48.996131Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D59z_AEH.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"1561fcb1fd2b2976a016cdeb25158c80","sha1":"0104773dcdcb73312ec4ba21049dee8e36afeddf","sha256":"7831fb0638bd75aa0ae603205cc0283cfd402d24a78add7d035e7bb0e79e5b58","sha512":"80c6af0a37bf0e20c073a0a3c7386942b61536b94fccc7e0057fd4e5e211a3ab9d6d3cd86b7ed939eb29a8c30de2ae1f964071a3477c82881071a05b26423902","ssdeep":"384:NTO3QxMgUITqojzdl7G5AMLHI0y/ZwBnUGK:NTjSpEzNPl","tlshash":"9e824f09d1f20131d293b1ba5a0bac5abb35464fdeeabc583b9c46102f4e03d96f079c","size":17750,"data":"","first_seen":"2025-10-23T03:46:52.672541Z","last_seen":"2026-07-27T11:49:48.966013Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/tqgqUFAa.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"c37dc04a0517c693f92ae0c85a840613","sha1":"1403d3d7dd65351fa7977cf58bf1518083efd529","sha256":"c70aec969c8ee3f977759688be0fa43368cfa2215f9e7711ce310ed7d6e1a3e2","sha512":"6e5099185a40be104c61148409682b91ff6aa3c081387fe0c5aea683119a7561905c1bed262677c2ba7aa07a8ee0bab89d70852528cb84bace1b5fe7dca8dffd","ssdeep":"","tlshash":"61413440fa8bbe5c17c29456a454a363ba290a8b1719c0f6dc566fe1734c3eda077d0d","size":2437,"data":"","first_seen":"2025-10-23T03:46:52.537703Z","last_seen":"2026-07-27T11:49:48.983409Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/3k4VnFXt.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"50cad4191d9aaffa13a550a69839ef9d","sha1":"3c2d53d2b3cfef9d8aca1be365b80a4e82c66eaf","sha256":"ddc2860adae983a913af6babd002fe022d2646b2ff05c9c1406e20cffceea242","sha512":"3511513f074ac8498fdaec065a1403935d555d5460b8771c9355a9981bd7ba0dc3a1e1e80ce4a40fbf6fe1c685e0c12092efbedf7dd07aba360131609d28e5d6","ssdeep":"192:TdjOVls0djOVlsFij/9eiMUwij/9eiMUB:+u/TEhmTEhe","tlshash":"ced1e2cbc2d4099d0ad55a8cbc976f0ad17d4ce4d65c5ab8879c4cf10028fa9113efda","size":6700,"data":"","first_seen":"2026-07-27T05:24:57.703834Z","last_seen":"2026-07-27T11:49:48.955688Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"76089eeb958307730f9b30882ed39f1a","sha1":"e4e82cdfcec542c08762db42025c53d3b1d8214b","sha256":"f09021b27e70a40c1d6275292d127426b4e9577ba4f857aea0ae92e22f891e70","sha512":"212f0eab6ba684eac98c1e61b67664ad4e71b8d5d3ee9f9142a10cbbf3f47da5d5b9cca904e502dc0ad24c5862baa7e906f7ce1dcbcb6978269e26f4df1865fa","ssdeep":"","tlshash":"c9f0c0973817085426af017923bb51043083320ba809dc22fdfdc8142f2078a881959c","size":441,"data":"","first_seen":"2025-10-23T03:46:53.276534Z","last_seen":"2026-07-27T11:49:48.998246Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DalnjcH7.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"df4aaa94a69b729548b47ad8b936ce9b","sha1":"dc96bdb9b95e82543b13ade03001e334d53cba62","sha256":"0eaa4a66e87acf966be9dd97e1d472aaf882269719544080ae205e5fc36e10de","sha512":"3f72ce5e367f32e9cb1806ec552a9c258dae94fd6da4b89b43aece03268e2ea35e22842e38769e6b8d7fdd311c8fe92716b64a370d696b07f1be54dea21afa39","ssdeep":"96:vW4WlqmFJVZZiMXmzI0lZ/8dE00k4B5gAe7KuBP1bVEfyabJ9kc0FCdOIEOh6VB7:6vbKy4vL3m9bPFbaiBGj1e7EGCkKq","tlshash":"5952bb54c4b90635f2a3b1712957ac8baa60d20fddafbd58bbec85011f4e83e09b435d","size":13628,"data":"","first_seen":"2026-07-27T05:24:57.806615Z","last_seen":"2026-07-27T11:49:48.943491Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/recaptcha/api2/anchor?ar=1\u0026k=6LfRUoYnAAAAAKfevHpSKXaw8gRuE6AJVb9YJKYH\u0026co=aHR0cHM6Ly9uY29ubmVjdC5vcmc6NDQz\u0026hl=en\u0026v=A7KpaEASfhDcK0nXxgQEyyYv\u0026size=invisible\u0026anchor-ms=20000\u0026execute-ms=30000\u0026cb=xxau4owkhj73","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"8d8463112156f537e64bc0cc795dc133","sha1":"3b21c915761369b640a86538e29ba402098ba12a","sha256":"b270cb1a41b1cf6fda1dd535019b54da06652f28e7ea11037dcc4393c60647d7","sha512":"f9906d38d98f0ed74ab190030b94625a420425ffdd4cb75114c533d13eff6873af4def45fc015dd2be63d6c62793164fe93616183f43e3dd8ab0d65308c53ee9","ssdeep":"","tlshash":"c3d0a7eb1441cdf7cda09dab9743d1a678efd0b780a981f405e04c522ce1c9110245ac","size":252,"data":"","first_seen":"2026-05-25T21:58:32.98547Z","last_seen":"2026-08-04T05:50:19.403428Z","times_seen":1592,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"sibautomation.com/sa.js?key=fw2fj490h6um6hv0jod7eh0m","fqdn":"sibautomation.com","domain":"sibautomation.com","tld":"com"},"ip":{"addr":"141.101.90.106","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"7d3a6ff6130f9af2fe5eba252ab83c88","sha1":"d550f5dbc8b3f2c09ba20770da0b725cc816d49c","sha256":"6b768b4da851db4231a7da73e4d053a3aa235490376116e41de3eb046111b90b","sha512":"62f8afc53739226d28fd9d8f9be5764e3aac11e0499070dfdab7966fdd4d9c309a9bc9b4d6124e1e22df44b4b7f472e835624094f620a1671180823d659f046f","ssdeep":"384:CKxQzozLdKB0VdlZz3M4+zNISzKmacaDiV:lK8LdKWVdlZDM4+ZISGmacamV","tlshash":"ac62718e10e76076462370398b9fa40c7535486b2148dd207e5ce1ea6fb0929cafbfdd","size":15177,"data":"","first_seen":"2025-12-30T16:00:00.273173Z","last_seen":"2026-08-02T23:39:28.782025Z","times_seen":2504,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/bNepudp1.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"cf35873dcaa6d32622bd71206b45834e","sha1":"cac729379ed208bde651a4f58a75d69e0f78f4bb","sha256":"e3c6bad8aaf19fa969a8ef284925c346acaae75ca82a4d59765380b9f393d577","sha512":"088c2985856a06c6da5cf74d2fea7a2b4f6efdf0cd82bc7aafc69b53e12085879451aea0c3416e1955936581ee9d482272912a86c48887313415c6f18149059c","ssdeep":"","tlshash":"e7f0ac29752ceb7b8cd01887251c18051a48ed9da733e5b097a82c419102530fe3c728","size":572,"data":"","first_seen":"2025-10-23T03:46:52.551196Z","last_seen":"2026-07-27T11:49:48.969114Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BXNHQyJN.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"2b21c04f6c0d228c3b14aef66302bb05","sha1":"30ef20a8d5d422bf2ad580349f2d80af731a2be3","sha256":"af857f3ede4ccc5ebc5cad0668d9957043924ceb03685b58d6fc19ad3a5168e8","sha512":"fc950f2a7bc7994947843ab73f7582d1a81861a5e2e999e5d23d387009bf64f8def1f376453a6ca74ff742c254b0e2f27f1ab36785d8503bdf4d44f1205d16c1","ssdeep":"768:h/lUftvRFk/fjl+MjGAOmLU+b+1Ep24MfzRBUToBJ17Fw:h/05Fk/fjAMjGAOm7a6p24MfzRBUToLM","tlshash":"00130e06b6f764305723f0b94e1f906a772a568b4da8fdd47a8c56441f0c42ca2f27de","size":45279,"data":"","first_seen":"2025-10-23T03:46:52.070534Z","last_seen":"2026-07-27T11:49:48.907119Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Ck8zg9y4.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"54465880abe0dcdf100b43a961d3238e","sha1":"10aeb84494b3b99726c80c60f296124d28ef473f","sha256":"beea8bb0989b4ee9192705700f29b308b033a1754a610c268599421b1f31af00","sha512":"99b3c818dbe10972d87b851862b0c30bf3c3fa4e62877d2639ede1395495a9ba8b2040ef89034009363861771b56335c1b9741b6164dfcb1576cdba6d7ff853b","ssdeep":"","tlshash":"dc5152a07429f5b30bc59ca481f52061e8cc3f4ae096e4f0f2ef19ad1e530c463a6f89","size":2848,"data":"","first_seen":"2025-10-23T03:46:52.516017Z","last_seen":"2026-07-27T11:49:48.949391Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/B9T8tgGX.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"importedModule","is_inline":false,"md5":"a49fb4f8ce6743bd84fa99b0fe29c669","sha1":"7807aed933d9d6160a7ad8e456f2f2eefcda480a","sha256":"c6d39934f556b20ce3c3a5a51a43df348ec7cccc143584cd51571d1b2f570561","sha512":"25e74b2db3eb380086d1b6b96cf63ec6a55156713d06934300911a80f8e4e9ddf4f193a55a3bef2d6eba7bd080e140279b3680642efbd56316376601a9bdc3b1","ssdeep":"3072:6SyBBFu9pAJZDyHSwWGBwqXzPyF9FvU9neLM:VAJZDyHSwWGQOn5","tlshash":"234443ce55f83a538646b1f2248b8fc9b325028f6df67d22392c46494f0d43d6a7926f","size":255834,"data":"","first_seen":"2026-07-27T05:24:57.729711Z","last_seen":"2026-07-27T11:49:48.99688Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/ZfNZiyCm.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"49c07e52c426c71dd3ca0cf0b3b23607","sha1":"0e2f271d03c5e699411226ccb75cc509a5b1ad32","sha256":"9541c3c531b19b5b9ff86299e7c3f77f11296796976bffc0254b771feb6896bc","sha512":"3c1f37708bc1511bbf0e1be14b985c714303c52a3bac592a9ed8feaea57e6fb1af39603179fa93900aad72229ee6da99560186b4df06e04ba9625e3acac48993","ssdeep":"384:cZTC96yJHlv6pIHkSAGwh4w5O1pnKT2aho09EZcQSmbhFvms+b+7tYtz:cZu9DJUpIESAr4w5apnKT2CoKEWG9FOT","tlshash":"a3520a847a44a03aab7b449dc4ba06111759238dd51a85d9f0f3b6782385f8cb6f873f","size":14255,"data":"","first_seen":"2025-10-23T03:46:52.59544Z","last_seen":"2026-07-27T11:49:48.921231Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BNSvKMyq.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"053136720611435ac353e655c2a60580","sha1":"1a8d31b2a9d98608f43b8743305bc15f082f7f3f","sha256":"5b4ab30e55a7a73ae422448eaf5c7cb781f08cf6f014699c6520aea280f06cc7","sha512":"edebead0ee0bb9a94a4fce8d139f621eb0d4e28b81b772b0e996200b0a0848071f150d24ff0f3e16f58a7d96d1e347af6ac2376948a05bb326279e639d3c914a","ssdeep":"","tlshash":"a551bb05d1a81436a14be2364e3f5c412a18c50f8cb9bea87fdc021d1f1e02e1db936e","size":3077,"data":"","first_seen":"2025-10-23T03:46:52.409425Z","last_seen":"2026-07-27T11:49:48.916376Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DnaGcmTr.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"d1ab253d4c1e3dd16e7cc8a71b92b716","sha1":"ebfd30ce821a72bf7063365a8b8a55d53a7df9dd","sha256":"35518043bb5a6edd6d3b7a6c3800440b0425773029bfe20203e65e8765c64aa0","sha512":"eaa1b52aa875e40c18c860acbe8104675941988de598bade262c4c4abd3451cd1cb73c2bffe67bd01da5129debf3269898eede5603305523169fc663aa538d90","ssdeep":"","tlshash":"44c08c9b3421592531980b8fc336a764750090203a5334c8a42c0a2aa120643c01edc5","size":152,"data":"","first_seen":"2025-10-23T03:46:52.74891Z","last_seen":"2026-07-27T11:49:48.929942Z","times_seen":9,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CAlkWbu_.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"e9464d99e8c6d552c59e5b44542a6317","sha1":"2159735ae64f9df0fb46e1ae4d923526fecef735","sha256":"580c34d99a67edfd1b6a3571743e2997627e696c462a81858c1f234e12951ff3","sha512":"fb59a8e9f23cde7d11861907bbcff4c98b593771ce0fba370337715a396bb7d92f4882ec60fe02599441539f39592c558a164505ed83eb31a36f9f8bbd8a5e79","ssdeep":"96:dm/Ump95X1y9fr9F9th/un6ZHBa5CvCeg5J1ffCUEx/vEE/yKYZgHS9W0Q++Gl/h:dm/Ump95X1y9fr9F9th2n6/aYvCrffCm","tlshash":"b4c1e94c3a4bf8ffa733144850b74111a33c275b7621c4e4a0f6a95e8296e25f68a67b","size":5943,"data":"","first_seen":"2025-10-23T03:46:52.586369Z","last_seen":"2026-07-27T11:49:48.98539Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Sm2mCfDE.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"6cf03670b9b3cf4bdbf52a189bfa3c61","sha1":"862a4de522ee858cd4db67070f3937063e3530a8","sha256":"2f6f328f1fe5a0d26f5f56210f46c9181f0ae2696faa8c52b31dd3454b0d8796","sha512":"2977c77359e402c20b630f3d8711dc1ec86f955b1ed365673176bcb3439326aaac56bfdcdcb5178e47c160663f72ec11557044d89b22f8971a0654187e9d9df4","ssdeep":"6144:zG5mxsLSfIR7+fCx500+JJeLXfkJoXiNRb/rQgBvLNzftF4VFvBTDUkwe+lduM0H:S5++Sq7+u5j06rBHsBWmnkaT27qsND","tlshash":"7065924a66e620349213f07d4e1fd8067a39840f1d8afc483a5c92e55f4d93ca7f5faa","size":1416812,"data":"","first_seen":"2026-04-04T14:11:26.373026Z","last_seen":"2026-07-27T11:49:49.001827Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"2eaf8b8dd9d0d759e65dddc42cdd0811","sha1":"f043a27917ac110d13337941848f829d3b83ac31","sha256":"a424cbccf15b70354730fcac779a4eb6bc0d5b039402c1cfb3d7f4d22a9a7940","sha512":"8cde4affca031aca7902afbb2fc54087d7f6b7e4384f8ccf09b10fe28dc038e04ef6b44b8c5d381c4f02ffa0c24d735ae65187882d3c5ca94f585b4767a9de4a","ssdeep":"","tlshash":"cae0c0663c63626559ab215c43bbc23e50e331e3a870c90ab89ede5e1f70e4346197cc","size":397,"data":"","first_seen":"2025-10-23T03:46:53.070298Z","last_seen":"2026-07-27T11:49:48.998776Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/e7r5DKx9.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"5b55e90d55f4657cee2c3ebb42b45852","sha1":"4c3469f0b28318437d8df4202192fcf36bbfffe7","sha256":"02d7dd12a2a60eac1909bf53fb7710c49efb684661c332b92e7d3a05c00c8671","sha512":"a3e70a865c1f43f1932ad922325f72f3ea60b817555a6924102f55060b79df1a7bbccbc142bd7dedc1a3c8fbf3099b110268651e1089da4e38f27fd20e178762","ssdeep":"","tlshash":"056109acf1f8d2b157ff7eeca166ca13076a6796542890d0303b1d181795ec0a2cbd2b","size":3430,"data":"","first_seen":"2025-10-23T03:46:52.598311Z","last_seen":"2026-07-27T11:49:48.995332Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CaRhLduF.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"b73ccf1445542561c8f796c27434fe67","sha1":"9b800102ded87c926f4cd345073893bf1cdd1656","sha256":"14f076afb4b8454418d6c0be4f8da8f85e4428ec136b5dc3e41e5cc98f35a2e1","sha512":"472cb836aa11d2d5dab543f74e2c93e1f8f39e5431779b10e05176be9a76bfa9ee03540ff9852e03fde04f2b224f5a61db86c740b74817059d8738109dc4c98f","ssdeep":"96:Xd0JISDyqJS84IYGRRcMqpWa8dUyjzAo3wAvSH:XmIO4rGRR9hyyjzAo1O","tlshash":"ef220306b6f75032a623f0791a2b484576254b5f4d79fdc87a8c82251f0c42d9af4fed","size":10373,"data":"","first_seen":"2025-10-23T03:46:52.703487Z","last_seen":"2026-07-27T11:49:48.942208Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CpWmePdF.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"1a8127a17d86ac005ae7ab0554c02599","sha1":"e45770a375ff938a302ea6340fac5248455eca42","sha256":"aa94be6f4c77844b430571e98975526a3d511564aebb7b10385bc142d85c3817","sha512":"31f14ac7980b2bbb84b8585786609edcf093c868178952fd59ee46f974196834dc21ec25b2704cc9098e4f2ac28d7c68c967f11f82d0228ec4aad695d9d53406","ssdeep":"","tlshash":"f8a00247367551e244f20c952722e7b09c190d2e3392dae027588251fe47c93c41c95b","size":65,"data":"","first_seen":"2025-10-23T03:46:52.036622Z","last_seen":"2026-07-27T11:49:48.911985Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DW9_RXAq.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"81013dd21e4bb2999171243f246152e3","sha1":"457eca2c6722dc13598ebca2d6db268eae58ea39","sha256":"e628dedd18faa8d1e5c6c9847572ce2c151c30d9bbe79fe3774afad70ee78785","sha512":"778cec7eb150c7807d6ec01801e1a8fc51b10b2d20d9cf1f2732b2d9a53050822f2c807ab8d190a57201859d9cb7e9a7ef1db3d03d69529a4974b0fc8ac1e2b8","ssdeep":"192:3ePrT8G4AHNkUB3QuOot+gEW+qtYnZ4cytXyC:36PnnXOrW+JZ4cAT","tlshash":"8e02e046f2f618262763f4755f5b80192a260b0b0fa4bed43a4c16544f0d83ca7f67ed","size":8567,"data":"","first_seen":"2025-10-23T03:46:52.446547Z","last_seen":"2026-07-27T11:49:48.961342Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DlAUqK2U.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"25e3a5dcaf00fb2b1ba0c8ecea6d2560","sha1":"7850b3fd4aeb69387bdb5a60025d15c41351d5eb","sha256":"cb85b0f263dbe24e857338301c0627076592e9f1f1a5662929f86d2c126444aa","sha512":"2e5cc9b53d5641147f68c73e5db0442d93fb6a64da45cfc051da5550a2fad07e912e651bd730e54325ef74eb706be0c5df612355c1dca144ab6e9cc8c4ecc73b","ssdeep":"","tlshash":"1fb012c81cc3e078939818d47738c15844380448310742b0808c0943e2c20809797c1d","size":91,"data":"","first_seen":"2023-03-08T16:39:49Z","last_seen":"2026-08-04T07:41:59.460423Z","times_seen":25031,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/En","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"5b7bf701a19d215ccce596359df26a9e","sha1":"eea166a7e073723e23c2a8598557a8f148ecad19","sha256":"7f58112f0b886d68dea61b3e1cb3f5795d16c0cae67a492b33bfc27fe09d50c9","sha512":"2f36fab94c6262e26b3a920d15822b9f57a5b823d1180ea735a31078dbe58756f60462305a307334b5ecc6d83f5ac1c8118aedab3d98f12a5a971db884d09128","ssdeep":"","tlshash":"4af00275accd90b3912310fdf377ef0c613910551190f908519a48547458f97cd0aeb8","size":616,"data":"","first_seen":"2025-10-23T03:46:53.097274Z","last_seen":"2026-07-27T11:49:49.002846Z","times_seen":9,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DKFk25TC.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"03da6b66f7ae6e3606ff22695ba0df9f","sha1":"5348679174864e1d96de7ef44ce24d5894f7a5a5","sha256":"f4777d67128e2708826b97acb50c4df5db2f823ff60090f205f8a92a592665a3","sha512":"cc09ea67cf3ec3b27fb0138c4fb4a773c256371fc6779fc9d1a4fd8a847d457ec7a775dfd26edab82f01a8c2795b394d2493c15e3de97be6a8ded27acc3477a7","ssdeep":"","tlshash":"b7612d1ae1f6053452a3f1390f6b94597a24434f8db6bdd43bac81081f0c06ca6fab8d","size":3351,"data":"","first_seen":"2025-10-23T03:46:52.8082Z","last_seen":"2026-07-27T11:49:48.96185Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DbOeqm85.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"3c2d369141b8f93a0ad38d270f6ecae6","sha1":"ab2184e6a723df81b5813db5684c0a91cf7fa5b2","sha256":"0ca4cbce36596b00f488b64b8cd75ad4aa55f76c12edb709728cc186f92585d6","sha512":"7d8291a3e2a7483ae822c99fb71a7b1d6f6909e85663a887c6d3ef89d399937475725726f147b841325533092566363d503d0721eb5d856fc235d84a5e9fe586","ssdeep":"96:EIUeXFMvvBiZbRoLjczoaFenk32lOSPDAeDHuKxScqEbASA:xFBb1oaFsk3iOyAehST1","tlshash":"f5421d1a92f10831a2d7f1781e1ba9992b31070faef67e547e9c01101f0d47eeab5a9d","size":12187,"data":"","first_seen":"2026-07-27T05:24:57.764475Z","last_seen":"2026-07-27T11:49:48.936014Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DXH68qfu.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"2b641c787bf178cac4f60df801f4b2f6","sha1":"40702af3701f3214ce187e84adf48b08783bdbcc","sha256":"ba4e305ad5cac41e9414d85eda43bfc24147c8f2075434862336102fb498478a","sha512":"3d0c9ca28ca10ff48f86eb0c6ce604593f1d1fac4c837f8c886e521a56e4c2ca2ef4f8ca3b1809dd52004bd1683e6d0241ec67ee9d6dc4b93df1b08aaa86ecef","ssdeep":"","tlshash":"cc81b62879bfe531563751d8e8611842975d0fac825ce4d0e9ff39282394dd4638873e","size":4045,"data":"","first_seen":"2025-10-23T03:46:52.85275Z","last_seen":"2026-07-27T11:49:48.981085Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D5jKaxoB.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"2689ec24f4ffd6394cdf12fefa57428d","sha1":"f7d2d55e685fc7ebd5c73e870039a0118132e18c","sha256":"7635f74fca5893f7ff2b2bb373fbe50da68d3964cef7c663c9de5f3be55bdc7f","sha512":"111ce435086b589f4ebb3ea39ac38c4e9c7399ee9a9005a818e7812c041084a0d3f047a4c3a3772be920a5ebd0260c982ebfaadaa5a71c0c83b337eb663bff0f","ssdeep":"","tlshash":"eb710f5921fa1414902b71204f2f91287239504f2e9ebdacbe7c4b815f1dd2cd67af3a","size":3498,"data":"","first_seen":"2025-10-23T03:46:52.898065Z","last_seen":"2026-07-27T11:49:48.944455Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"4013e13624df1ffbbf6a92dd57ba381e","sha1":"a12b823ee148e46fefa2af3b3adaa40304124391","sha256":"2cfb69612f505df5e87e66135d7bd7c2ceccde7279c08e6631059589a7ed39e1","sha512":"cf9ec02b02162dd3c7e47ab3219a792921c3264de51c62a451a71f07bb65b1eae36e46d85f1249bf291a025f60209f576b7adaf3ff6e164ac461cf9b4f216bc7","ssdeep":"","tlshash":"e0214169b05a701f18d7180c7946750422404ee9e08e3b3cf9d7bb343e2325b1ae4b0a","size":1180,"data":"","first_seen":"2025-10-23T03:46:53.166503Z","last_seen":"2026-07-27T11:49:49.000898Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/recaptcha/api.js?render=explicit","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"f59c1c6ef60fb44cd5f3d7e17b13f225","sha1":"0c2d6e018d142bf58e17428c6348283ab20e27d9","sha256":"e6f65a57ede1281f138b76bb5754be5fdf233999cb7f1e0873b5f589d1bfbb8c","sha512":"8a7695bfc4f3c03857285fa6d96a2c16aa3dbe606e01dffbe81024dff48f9c9d41cefb008ec4b5addb263c7ed25bd7fc65b00e61c4ad331d19eb7cc10187a1e2","ssdeep":"","tlshash":"951154731e08e0390f3209e1a2ffdab1e453701cf16849e89419dac42eaeccbcf05485","size":978,"data":"","first_seen":"2026-07-14T22:47:23.686577Z","last_seen":"2026-08-04T06:04:26.243684Z","times_seen":724,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/client","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"3cf9ec42dd0859935ed0972af2567758","sha1":"e4b840d0219e6fdbb7d7b3ae8aa0e39181b1e6fd","sha256":"599a5650bb9c3548a829d440c5277a13735186af88474bb6e1d8e85481122fac","sha512":"b2d3525736197d7cd9fdb5acea8fc263c561793c3f8ba55da951e18ead5f4f4466e40142028b6bd158b698cb3dacc1380c11916deec6e255f09367264f2e94f5","ssdeep":"6144:3dF97hxy5bhIJFMS/4y/PIwnpjSsM1aCRT9ySU:34hsh/4y/gsdjM1aCRT9XU","tlshash":"e9444adcb2e270359212f8b5c43f410ab076a679f0498cacfa95c5f5acb1d890167f7a","size":264923,"data":"","first_seen":"2026-07-23T02:50:46.049799Z","last_seen":"2026-07-30T04:41:11.641321Z","times_seen":760,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DLI1yz3e.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"2c3c858565cf7f189fb51c6422839234","sha1":"9f7ba0a609b6758e8a1e54cf849c8c7b6187cbbd","sha256":"5cdc264f4e284ea69ebc00d0e065464c48430e84a6deb2214ee28bc0241b761f","sha512":"7d47cabc9247df3184ff30c8eaea1f7864538844856b5dd5b8f4b3320de4dbba89ba71fa0511751d89ce33fbb045bb838c728aa781f7916cb67e6da1c5234363","ssdeep":"","tlshash":"45117d0bdc60c3f9b3b385e0f828901660399e4bb285d29d5ac845362fd98f3d5b97d6","size":942,"data":"","first_seen":"2026-07-27T05:24:57.736826Z","last_seen":"2026-07-27T11:49:48.980401Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Che7Khx7.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"4c350f8712936dfac6c78e711d5580ef","sha1":"d272cd163c100d471698317ee9d3883a3336f418","sha256":"04c5b248c068e3350391ab7f93186e468da38be749b5c834926608bd2c00b8eb","sha512":"e405775b3b66d990f84651e716839dc4225fba559752ed5dfdf9169af4dd1bdde107faf807fca96b2a8898b10a36b045ba9d810a2117e49dce16be1cf5945b19","ssdeep":"","tlshash":"bc21429dfcc996a36a1b49044c41aadc540ca70ec1b3f1b6e9e1b13e1340646951af34","size":1116,"data":"","first_seen":"2025-10-23T03:46:52.53504Z","last_seen":"2026-07-27T11:49:48.922553Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Kcv6HAzH.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"4ae5316871df9b0244220ba5693ec96a","sha1":"14c14f5e5855fc8a6109d54142a5c355edd98707","sha256":"dd4b7aff8fc3c1da0463ed28f7ab497b3da4671c572e7c77c8ccbba6470990a7","sha512":"c76fa27a75df8c0275c116f8297af68f35631c43d7ac84daee4d4209e62edc73ba8e93cd066c50fedbbb17b2b90fd3d9764da04c217d27a8c6d931fb7fa90030","ssdeep":"","tlshash":"dbd0c9702542f831c29e270ef631d388ba7219183a473a90f12d415d2539ac7565df9f","size":237,"data":"","first_seen":"2025-10-23T03:46:52.588526Z","last_seen":"2026-07-27T11:49:48.906045Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/xUo5sKGi.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"6e2caf00adecd6d844a75d75c4944322","sha1":"40a82816c52f65369a6ae5b2111cd78d530e2f33","sha256":"1c714593c59ddc48eb0170c72ee61bd210978c1909013a2e630da173e577d1be","sha512":"49cf480cd6568f470600cc6bfe739b0a13b1df58af6f12cd1c6bb96e3c626a2e84591105530c519906c4b58b416fc49970118b38a393708e08d20fbc69ad07b7","ssdeep":"","tlshash":"814142cd72f92474b377c553c03f1b62928f2715242ed0f1e477ca62261a6a483e1a6f","size":2328,"data":"","first_seen":"2025-10-23T03:46:53.049509Z","last_seen":"2026-07-27T11:49:48.950187Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DIGJciYJ.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"870bbacad3f5cf786c38d885bb504ef1","sha1":"15366bf39d7fda76b03fc3d245d831e910c19e9d","sha256":"9255b88392d991ccb5500611886ddf5e7e69dea5f713d4cc06e8b6df6d423b91","sha512":"85f74f6dc66323e0661dc6f5710d29f8e8b2002da802ef410570841237644e0e71295c0198903c8bb0b53eda3f5238a469528478e40dbdee253ab6d384602cb8","ssdeep":"","tlshash":"934197b8a6be547106eb8cecf4336d83c1289f0ee53690e1546f6d2817e4fe152c9725","size":2226,"data":"","first_seen":"2025-10-23T03:46:52.529506Z","last_seen":"2026-07-27T11:49:48.928722Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"3cdc063bde066717d03d05924c4458d5","sha1":"22df8d2c5ea284f0e9ff0d31880da565e51644c7","sha256":"d5877b91513231be882be7fdc080a3c531d417f2027d502bdde87078c8a3932e","sha512":"4810d6b04afca846377ffe518a6c1fca2fadd481eebb345d0c708dc0501ca0ebf9d9f9cec8455412ea6a7388a4fc5853b24977fc4bb7f28cf522be344a17a26c","ssdeep":"","tlshash":"4290008822030c0000a0aa082f0eba88b2023022a0e0e8223e08a208ab20c0baa80280","size":54,"data":"","first_seen":"2023-03-07T12:58:21Z","last_seen":"2026-07-27T11:49:48.997572Z","times_seen":898,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-VVBQ0TLCDN\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"37a8e36944e1a6185c31966868b61660","sha1":"ca3ee3547b75a0f5fc327dfaf81510167c6919f5","sha256":"9c1d708b81e817d97c2360771fb81bcfd5d2e1a6bff381913c8dc21e1fe953e7","sha512":"8877ebc81c3ce823b5ac8ff1d2a60b2530eb22a8b65e02ccd517e1ea738696c1c733a7dba6a92108bb5f81f5f32fd62ad1eb416641f85e2a17465139c6ce3be2","ssdeep":"6144:WmJkU0jIWXbP69FMxmRknhqsScPmfxNf3EjxxVGaHoXzRYab:XJh1WLP69VwzxVHO3b","tlshash":"88a40aceb3d674265396f478503f018ba57b29e2b44cc89af189cce02d7465a8167f7c","size":489500,"data":"","first_seen":"2026-07-27T08:08:31.036183Z","last_seen":"2026-07-27T11:49:48.946346Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CDxB5nOy.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"c5439fc859d39ea82f5838ae418b18a3","sha1":"f0b3afe3f58dcbe6871f8a911f8b17ba0c4ff003","sha256":"957932a93bf95d63f9a840d0afca5bdb38317291eb223d2ced10f9e02385ed2b","sha512":"027dccc8bb46461fbab25812acfa65775ee42bf0947b719b790fc10680b915f3d3ed2879560998d08dfdc79ae579435a084f895a00ef3b5352759278a9706dfc","ssdeep":"96:ixyOJB4Oknc3nC+jJVqplXGSjx09+070Kk7tx8kBzw3kql2dsk7VyQqz:ix/JB4O9xMx0A0IrLzw3Rl2dsk7Lqz","tlshash":"55c195ad34963570e7fe48c8c8aa8181f31c1709b405cde0b58e5e892abdd72936797e","size":5811,"data":"","first_seen":"2025-10-23T03:46:52.254432Z","last_seen":"2026-07-27T11:49:48.895772Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DVt5MIXn.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"369e07156734096ceabcb7bef893023a","sha1":"feee2b67fd23edaedb6ff0fa1c99d9f7de125f28","sha256":"6acf0aac36c7eef60005dece9758f8c49a0e0c8051cb7f603c07d0711b169ed8","sha512":"39cd161d6087998c742b08b2aae4d4427cf2a8b46f4ed6b71ce3ff6fd7a0e23c8726f66c22a856bbd8a9a750bacf95b4f69f2c282ae2c2f3dc970e6f2e879d33","ssdeep":"1536:6RQkjSUKNJZC8UfW6EcMW5JkSoYMcFStoqKER2eTiR2yCjX0+HZ6+nLUAFq3Zbdx:HrZFQEcMy0VXKER2gg2/s","tlshash":"21148206e1f61436a263b0384e1f485a7a35878f9da5bd983f9c49040f0d43da6f5bee","size":199006,"data":"","first_seen":"2026-07-27T05:24:57.753901Z","last_seen":"2026-07-27T11:49:48.952483Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":true,"md5":"100f71715a5f93d95a00371fcb583326","sha1":"b0d983db9c8dbd454442eba3f86abd750e762b92","sha256":"0eb348a68f6c117b82576f7b634bb0ca3b5045a37f7199e6725bec5807131e4c","sha512":"7f091d73cad9bdc52733b93c08cfc5523349f0cdcc07624a8f59905b54a7021d7466ff56582d1d561ec247d4119321776e4fe196e1e0142e8809656bfed1c518","ssdeep":"","tlshash":"58d0a98787f2d18104f3100856c3132822361183714ac9967b0ca200afdaf4e862be8d","size":207,"data":"","first_seen":"2026-07-27T05:24:57.818049Z","last_seen":"2026-07-27T11:49:49.000103Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CI8VFsgH.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"56d7bda41f695ba08b1d7269be18e48b","sha1":"b5a2ac87791d6dda3bb6834577e8b9bae559d243","sha256":"c959253aa910087a13d628a81c698ba74b0215231b7f0d5b3504ab6d4f7c5dbb","sha512":"dc032f11af19d93a20955365aac8ab740da9891088fbfaf5a37ab3d965fef5bef456160b68e18d447234685e5852630e44230dc3185c4108affba5e3497ed7d8","ssdeep":"","tlshash":"7af00e6c2acdf2b40cd3d2c042a04023f66c5db8ad7e60c09388e12003e31084323f24","size":499,"data":"","first_seen":"2025-10-23T03:46:52.732999Z","last_seen":"2026-07-27T11:49:48.955034Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BhMtR_Hb.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"382671e003dd78134c7500df62a2751b","sha1":"c6cf0c227f90cedaca097fbb55bf8ca79795ffef","sha256":"85106edc720681277902286f75a541afe044e182a872125a56a269d093a0ec5c","sha512":"7128fed51eb6a5952853611bfe86c0d4156915a3a508ed8370ba52397b098d4b6a861b73f31e39cbda5b29870b3d2b6e3fa3aa45707c77289e783580f6fe7d6e","ssdeep":"","tlshash":"83f097427e82ab78f3a708acd90110000b128b08ef6288c030efc1a45318098d3079aa","size":475,"data":"","first_seen":"2025-10-23T03:46:52.086595Z","last_seen":"2026-07-27T11:49:48.945294Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/C1DtZnIy.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"introduction_type":"scriptElement","is_inline":false,"md5":"3eb2b5a2ef2ac103fc94184bba6fdeb1","sha1":"b40a29c3f59fd4cb83f6df55369753b1795ee002","sha256":"0c4d4d899fcc41d137fbeb6dfc348feafc76106e27f016a1d232ac6415690ac7","sha512":"a8a8639c8f609a34c42552fa458ffee95565a2c3ee86b9353b0ea0a207e48b393cbe7f2012fb30758eba8a852d69526aab7516626e4f9f65f2c45fa093e523d0","ssdeep":"96:SHGE1DTqnOZoD4YHBkNaWDR5vtld0ZykQ+K4CE6xfd:SHGE1DTwD4YhkNaWDR51MyWCVl","tlshash":"edb16394788a69b0667f74dde4a004c0d62d0f8c7696d8f0d0f729662f489c9f16963f","size":5147,"data":"","first_seen":"2025-10-23T03:46:53.039542Z","last_seen":"2026-07-27T11:49:48.992887Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"warn","text":"undefined is not a valid value. Rule functions must return boolean true or a string.","filename":"https://nconnect.org/_nuxt/ChErJn07.js","line_number":1,"column_number":12189},{"level":"warn","text":"undefined is not a valid value. Rule functions must return boolean true or a string.","filename":"https://nconnect.org/_nuxt/ChErJn07.js","line_number":1,"column_number":12189},{"level":"warn","text":"undefined is not a valid value. Rule functions must return boolean true or a string.","filename":"https://nconnect.org/_nuxt/ChErJn07.js","line_number":1,"column_number":12189},{"level":"warn","text":"undefined is not a valid value. Rule functions must return boolean true or a string.","filename":"https://nconnect.org/_nuxt/ChErJn07.js","line_number":1,"column_number":12189}]},"http":[{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VList.DzqpkyA_.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.469Z","timestamp":1785139669469,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VList.DzqpkyA_.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"38f7-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2585\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":14583,"size_decoded":2923,"mime_type":"text/css","magic":"ASCII text, with very long lines (14582)","md5":"aed9b1038781dbb9207177dab57f75e3","sha1":"cff3aaab3e9968c2aa6fe16d5fc9cca328dcd83b","sha256":"53c6a34363fbafbbe35f990dbc281913eb11afdbad9a98f881a242a48a71f11a","sha512":"2a3096e0b0d5c813e7f7e812e34037e9820ab6e6e5513c2aafb18724d01e8344dc444b92d035bdded8796d28dc5b0d4e14ccc8e7b3f704d929f01e55e1f7670a","ssdeep":"192:URYlN/Iu8zVKRiZFmKjR3kO+A4PkWcWee484lKZfu14RGb:OmrgPmQUBKWcWepHlKZfuTb","tlshash":"f762ed62da6c687c97ebb5f7d9439218de1de663ef310091cb82232883c57f468f5908","first_seen":"2025-04-27T00:37:17.539026Z","last_seen":"2026-07-27T11:49:48.937269Z","times_seen":12,"resource_available":false,"data":"LnYtbGlzdHtib3JkZXItY29sb3I6cmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MDtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjhweCAwO3Bvc2l0aW9uOnJlbGF0aXZlfS52LWxpc3QtLWJvcmRlcntib3JkZXItd2lkdGg6dGhpbjtib3gtc2hhZG93Om5vbmV9LnYtbGlzdHtiYWNrZ3JvdW5kOnJnYmEodmFyKC0tdi10aGVtZS1zdXJmYWNlKSk7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6MCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4yKSksMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xMikpO2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSkpfS52LWxpc3QtLWRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52LWxpc3QtLW5hdntwYWRkaW5nLWlubGluZTo4cHh9LnYtbGlzdC0tcm91bmRlZHtib3JkZXItcmFkaXVzOjRweH0udi1saXN0LS1zdWJoZWFkZXJ7cGFkZGluZy10b3A6MH0udi1saXN0LWltZ3tib3JkZXItcmFkaXVzOmluaGVyaXQ7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4Oi0xfS52LWxpc3Qtc3ViaGVhZGVye2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOmluaGVyaXQ7Y29sb3I6cmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLHZhcigtLXYtbWVkaXVtLWVtcGhhc2lzLW9wYWNpdHkpKTtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMzc1cmVtO21pbi1oZWlnaHQ6NDBweDtwYWRkaW5nLWlubGluZS1lbmQ6MTZweDt0cmFuc2l0aW9uOm1pbi1oZWlnaHQgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS52LWxpc3Qtc3ViaGVhZGVyX190ZXh0e292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udi1saXN0LS1kZW5zaXR5LWRlZmF1bHQgLnYtbGlzdC1zdWJoZWFkZXJ7bWluLWhlaWdodDo0MHB4O3BhZGRpbmctaW5saW5lLXN0YXJ0OmNhbGMoMTZweCArIHZhcigtLWluZGVudC1wYWRkaW5nKSkhaW1wb3J0YW50fS52LWxpc3QtLWRlbnNpdHktY29tZm9ydGFibGUgLnYtbGlzdC1zdWJoZWFkZXJ7bWluLWhlaWdodDozNnB4O3BhZGRpbmctaW5saW5lLXN0YXJ0OmNhbGMoMTZweCArIHZhcigtLWluZGVudC1wYWRkaW5nKSkhaW1wb3J0YW50fS52LWxpc3QtLWRlbnNpdHktY29tcGFjdCAudi1saXN0LXN1YmhlYWRlcnttaW4taGVpZ2h0OjMycHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6Y2FsYygxNnB4ICsgdmFyKC0taW5kZW50LXBhZGRpbmcpKSFpbXBvcnRhbnR9LnYtbGlzdC1zdWJoZWFkZXItLWluc2V0ey0taW5kZW50LXBhZGRpbmc6NTZweH0udi1saXN0LS1uYXYgLnYtbGlzdC1zdWJoZWFkZXJ7Zm9udC1zaXplOi43NXJlbX0udi1saXN0LXN1YmhlYWRlci0tc3RpY2t5e2JhY2tncm91bmQ6aW5oZXJpdDtsZWZ0OjA7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MX0udi1saXN0X19vdmVybGF5e2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0fS52LWxpc3QtaXRlbXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjA7ZGlzcGxheTpncmlkO2ZsZXg6bm9uZTtncmlkLXRlbXBsYXRlLWFyZWFzOiJwcmVwZW5kIGNvbnRlbnQgYXBwZW5kIjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWF4LWNvbnRlbnQgMWZyIGF1dG87bWF4LXdpZHRoOjEwMCU7b3V0bGluZTpub25lO3BhZGRpbmc6NHB4IDE2cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnYtbGlzdC1pdGVtLS1ib3JkZXJ7Ym9yZGVyLXdpZHRoOnRoaW47Ym94LXNoYWRvdzpub25lfS52LWxpc3QtaXRlbTpob3Zlcj4udi1saXN0LWl0ZW1fX292ZXJsYXl7b3BhY2l0eTpjYWxjKHZhcigtLXYtaG92ZXItb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1saXN0LWl0ZW06Zm9jdXMtdmlzaWJsZT4udi1saXN0LWl0ZW1fX292ZXJsYXl7b3BhY2l0eTpjYWxjKHZhcigtLXYtZm9jdXMtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX1Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1saXN0LWl0ZW06Zm9jdXM+LnYtbGlzdC1pdGVtX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWZvY3VzLW9wYWNpdHkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9fS52LWxpc3QtaXRlbS0tYWN0aXZlPi52LWxpc3QtaXRlbV9fb3ZlcmxheSwudi1saXN0LWl0ZW1bYXJpYS1oYXNwb3B1cD1tZW51XVthcmlhLWV4cGFuZGVkPXRydWVdPi52LWxpc3QtaXRlbV9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1saXN0LWl0ZW0tLWFjdGl2ZTpob3Zlcj4udi1saXN0LWl0ZW1fX292ZXJsYXksLnYtbGlzdC1pdGVtW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpob3Zlcj4udi1saXN0LWl0ZW1fX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtaG92ZXItb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9LnYtbGlzdC1pdGVtLS1hY3RpdmU6Zm9jdXMtdmlzaWJsZT4udi1saXN0LWl0ZW1fX292ZXJsYXksLnYtbGlzdC1pdGVtW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpmb2N1cy12aXNpYmxlPi52LWxpc3QtaXRlbV9fb3ZlcmxheXtvcGFjaXR5OmNhbGMoKHZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpICsgdmFyKC0tdi1mb2N1cy1vcGFjaXR5KSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX1Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1saXN0LWl0ZW0tLWFjdGl2ZTpmb2N1cz4udi1saXN0LWl0ZW1fX292ZXJsYXksLnYtbGlzdC1pdGVtW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpmb2N1cz4udi1saXN0LWl0ZW1fX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtZm9jdXMtb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9fS52LWxpc3QtaXRlbXtib3JkZXItcmFkaXVzOjB9LnYtbGlzdC1pdGVtLS12YXJpYW50LW91dGxpbmVkLC52LWxpc3QtaXRlbS0tdmFyaWFudC1wbGFpbiwudi1saXN0LWl0ZW0tLXZhcmlhbnQtdGV4dCwudi1saXN0LWl0ZW0tLXZhcmlhbnQtdG9uYWx7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0fS52LWxpc3QtaXRlbS0tdmFyaWFudC1wbGFpbntvcGFjaXR5Oi42Mn0udi1saXN0LWl0ZW0tLXZhcmlhbnQtcGxhaW46Zm9jdXMsLnYtbGlzdC1pdGVtLS12YXJpYW50LXBsYWluOmhvdmVye29wYWNpdHk6MX0udi1saXN0LWl0ZW0tLXZhcmlhbnQtcGxhaW4gLnYtbGlzdC1pdGVtX19vdmVybGF5e2Rpc3BsYXk6bm9uZX0udi1saXN0LWl0ZW0tLXZhcmlhbnQtZWxldmF0ZWQsLnYtbGlzdC1pdGVtLS12YXJpYW50LWZsYXR7YmFja2dyb3VuZDpyZ2JhKHZhcigtLXYtdGhlbWUtc3VyZmFjZSkpO2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSkpfS52LWxpc3QtaXRlbS0tdmFyaWFudC1lbGV2YXRlZHtib3gtc2hhZG93OjAgMnB4IDFweCAtMXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDFweCAxcHggMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgMXB4IDNweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKX0udi1saXN0LWl0ZW0tLXZhcmlhbnQtZmxhdHtib3gtc2hhZG93OjAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMikpLDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKX0udi1saXN0LWl0ZW0tLXZhcmlhbnQtb3V0bGluZWR7Ym9yZGVyOnRoaW4gc29saWR9LnYtbGlzdC1pdGVtLS12YXJpYW50LXRleHQgLnYtbGlzdC1pdGVtX19vdmVybGF5e2JhY2tncm91bmQ6Y3VycmVudENvbG9yfS52LWxpc3QtaXRlbS0tdmFyaWFudC10b25hbCAudi1saXN0LWl0ZW1fX3VuZGVybGF5e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTp2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KTtwb2ludGVyLWV2ZW50czpub25lO3JpZ2h0OjA7dG9wOjB9LnYtbGlzdC1pdGVtIC52LWxpc3QtaXRlbV9fdW5kZXJsYXl7cG9zaXRpb246YWJzb2x1dGV9QHN1cHBvcnRzIHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1saXN0LWl0ZW06YWZ0ZXJ7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItcmFkaXVzOjRweDtjb250ZW50OiIiO2hlaWdodDoxMDAlO2xlZnQ6MDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O3dpZHRoOjEwMCV9LnYtbGlzdC1pdGVtOmZvY3VzLXZpc2libGU6YWZ0ZXJ7b3BhY2l0eTpjYWxjKHZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSouMTUpfX0udi1saXN0LWl0ZW1fX2FwcGVuZD4udi1iYWRnZSAudi1pY29uLC52LWxpc3QtaXRlbV9fYXBwZW5kPi52LWljb24sLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWJhZGdlIC52LWljb24sLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWljb257b3BhY2l0eTp2YXIoLS12LW1lZGl1bS1lbXBoYXNpcy1vcGFjaXR5KX0udi1saXN0LWl0ZW0tLWFjdGl2ZSAudi1saXN0LWl0ZW1fX2FwcGVuZD4udi1iYWRnZSAudi1pY29uLC52LWxpc3QtaXRlbS0tYWN0aXZlIC52LWxpc3QtaXRlbV9fYXBwZW5kPi52LWljb24sLnYtbGlzdC1pdGVtLS1hY3RpdmUgLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWJhZGdlIC52LWljb24sLnYtbGlzdC1pdGVtLS1hY3RpdmUgLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWljb257b3BhY2l0eToxfS52LWxpc3QtaXRlbS0tYWN0aXZlOm5vdCgudi1saXN0LWl0ZW0tLWxpbmspIC52LWxpc3QtaXRlbV9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1saXN0LWl0ZW0tLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo0cHh9LnYtbGlzdC1pdGVtLS1kaXNhYmxlZHtvcGFjaXR5Oi42O3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52LWxpc3QtaXRlbS0tbGlua3tjdXJzb3I6cG9pbnRlcn0udi1uYXZpZ2F0aW9uLWRyYXdlci0tcmFpbC52LW5hdmlnYXRpb24tZHJhd2VyLS1leHBhbmQtb24taG92ZXI6bm90KC52LW5hdmlnYXRpb24tZHJhd2VyLS1pcy1ob3ZlcmluZykgLnYtbGlzdC1pdGVtIC52LWF2YXRhciwudi1uYXZpZ2F0aW9uLWRyYXdlci0tcmFpbDpub3QoLnYtbmF2aWdhdGlvbi1kcmF3ZXItLWV4cGFuZC1vbi1ob3ZlcikgLnYtbGlzdC1pdGVtIC52LWF2YXRhcnstLXYtYXZhdGFyLWhlaWdodDoyNHB4fS52LWxpc3QtaXRlbV9fcHJlcGVuZHthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7ZGlzcGxheTpmbGV4O2dyaWQtYXJlYTpwcmVwZW5kfS52LWxpc3QtaXRlbV9fcHJlcGVuZD4udi1iYWRnZX4udi1saXN0LWl0ZW1fX3NwYWNlciwudi1saXN0LWl0ZW1fX3ByZXBlbmQ+LnYtaWNvbn4udi1saXN0LWl0ZW1fX3NwYWNlciwudi1saXN0LWl0ZW1fX3ByZXBlbmQ+LnYtdG9vbHRpcH4udi1saXN0LWl0ZW1fX3NwYWNlcnt3aWR0aDozMnB4fS52LWxpc3QtaXRlbV9fcHJlcGVuZD4udi1hdmF0YXJ+LnYtbGlzdC1pdGVtX19zcGFjZXIsLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWJhZGdlOmlzKDpoYXMoLnYtYXZhdGFyKSl+LnYtbGlzdC1pdGVtX19zcGFjZXJ7d2lkdGg6MTZweH0udi1saXN0LWl0ZW0tLXNsaW0gLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWJhZGdlfi52LWxpc3QtaXRlbV9fc3BhY2VyLC52LWxpc3QtaXRlbS0tc2xpbSAudi1saXN0LWl0ZW1fX3ByZXBlbmQ+LnYtaWNvbn4udi1saXN0LWl0ZW1fX3NwYWNlciwudi1saXN0LWl0ZW0tLXNsaW0gLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LXRvb2x0aXB+LnYtbGlzdC1pdGVtX19zcGFjZXJ7d2lkdGg6MjBweH0udi1saXN0LWl0ZW0tLXNsaW0gLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWF2YXRhcn4udi1saXN0LWl0ZW1fX3NwYWNlciwudi1saXN0LWl0ZW0tLXNsaW0gLnYtbGlzdC1pdGVtX19wcmVwZW5kPi52LWJhZGdlOmlzKDpoYXMoLnYtYXZhdGFyKSl+LnYtbGlzdC1pdGVtX19zcGFjZXJ7d2lkdGg6NHB4fS52LWxpc3QtaXRlbS0tc2xpbSAudi1saXN0LWl0ZW1fX3ByZXBlbmQ+LnYtbGlzdC1pdGVtLWFjdGlvbn4udi1saXN0LWl0ZW1fX3NwYWNlcnt3aWR0aDo0cHh9LnYtbGlzdC1pdGVtLS10aHJlZS1saW5lIC52LWxpc3QtaXRlbV9fcHJlcGVuZHthbGlnbi1zZWxmOnN0YXJ0fS52LWxpc3QtaXRlbV9fYXBwZW5ke2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtkaXNwbGF5OmZsZXg7Z3JpZC1hcmVhOmFwcGVuZH0udi1saXN0LWl0ZW1fX2FwcGVuZCAudi1saXN0LWl0ZW1fX3NwYWNlcntvcmRlcjotMTt0cmFuc2l0aW9uOndpZHRoIC4xNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnYtbGlzdC1pdGVtX19hcHBlbmQ+LnYtYmFkZ2V+LnYtbGlzdC1pdGVtX19zcGFjZXIsLnYtbGlzdC1pdGVtX19hcHBlbmQ+LnYtaWNvbn4udi1saXN0LWl0ZW1fX3NwYWNlciwudi1saXN0LWl0ZW1fX2FwcGVuZD4udi10b29sdGlwfi52LWxpc3QtaXRlbV9fc3BhY2Vye3dpZHRoOjMycHh9LnYtbGlzdC1pdGVtX19hcHBlbmQ+LnYtYXZhdGFyfi52LWxpc3QtaXRlbV9fc3BhY2VyLC52LWxpc3QtaXRlbV9fYXBwZW5kPi52LWJhZGdlOmlzKDpoYXMoLnYtYXZhdGFyKSl+LnYtbGlzdC1pdGVtX19zcGFjZXJ7d2lkdGg6MTZweH0udi1saXN0LWl0ZW1fX2FwcGVuZD4udi1saXN0LWl0ZW0tYWN0aW9ufi52LWxpc3QtaXRlbV9fc3BhY2Vye3dpZHRoOjE2cHh9LnYtbGlzdC1pdGVtLS1zbGltIC52LWxpc3QtaXRlbV9fYXBwZW5kPi52LWJhZGdlfi52LWxpc3QtaXRlbV9fc3BhY2VyLC52LWxpc3QtaXRlbS0tc2xpbSAudi1saXN0LWl0ZW1fX2FwcGVuZD4udi1pY29ufi52LWxpc3QtaXRlbV9fc3BhY2VyLC52LWxpc3QtaXRlbS0tc2xpbSAudi1saXN0LWl0ZW1fX2FwcGVuZD4udi10b29sdGlwfi52LWxpc3QtaXRlbV9fc3BhY2Vye3dpZHRoOjIwcHh9LnYtbGlzdC1pdGVtLS1zbGltIC52LWxpc3QtaXRlbV9fYXBwZW5kPi52LWF2YXRhcn4udi1saXN0LWl0ZW1fX3NwYWNlciwudi1saXN0LWl0ZW0tLXNsaW0gLnYtbGlzdC1pdGVtX19hcHBlbmQ+LnYtYmFkZ2U6aXMoOmhhcygudi1hdmF0YXIpKX4udi1saXN0LWl0ZW1fX3NwYWNlcnt3aWR0aDo0cHh9LnYtbGlzdC1pdGVtLS1zbGltIC52LWxpc3QtaXRlbV9fYXBwZW5kPi52LWxpc3QtaXRlbS1hY3Rpb25+LnYtbGlzdC1pdGVtX19zcGFjZXJ7d2lkdGg6NHB4fS52LWxpc3QtaXRlbS0tdGhyZWUtbGluZSAudi1saXN0LWl0ZW1fX2FwcGVuZHthbGlnbi1zZWxmOnN0YXJ0fS52LWxpc3QtaXRlbV9fY29udGVudHthbGlnbi1zZWxmOmNlbnRlcjtncmlkLWFyZWE6Y29udGVudDtvdmVyZmxvdzpoaWRkZW59LnYtbGlzdC1pdGVtLWFjdGlvbnthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTt0cmFuc2l0aW9uOmluaGVyaXQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTpoZWlnaHQsd2lkdGh9LnYtbGlzdC1pdGVtLWFjdGlvbi0tc3RhcnR7bWFyZ2luLWlubGluZS1lbmQ6OHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6LThweH0udi1saXN0LWl0ZW0tYWN0aW9uLS1lbmR7bWFyZ2luLWlubGluZS1lbmQ6LThweDttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0udi1saXN0LWl0ZW0tbWVkaWF7bWFyZ2luLWJvdHRvbTowO21hcmdpbi10b3A6MH0udi1saXN0LWl0ZW0tbWVkaWEtLXN0YXJ0e21hcmdpbi1pbmxpbmUtZW5kOjE2cHh9LnYtbGlzdC1pdGVtLW1lZGlhLS1lbmR7bWFyZ2luLWlubGluZS1zdGFydDoxNnB4fS52LWxpc3QtaXRlbS0tdHdvLWxpbmUgLnYtbGlzdC1pdGVtLW1lZGlhe21hcmdpbi1ib3R0b206LTRweDttYXJnaW4tdG9wOi00cHh9LnYtbGlzdC1pdGVtLS10aHJlZS1saW5lIC52LWxpc3QtaXRlbS1tZWRpYXttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS52LWxpc3QtaXRlbS1zdWJ0aXRsZXstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvcGFjaXR5OnZhcigtLXYtbGlzdC1pdGVtLXN1YnRpdGxlLW9wYWNpdHksdmFyKC0tdi1tZWRpdW0tZW1waGFzaXMtb3BhY2l0eSkpO292ZXJmbG93OmhpZGRlbjtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7cGFkZGluZzowO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d29yZC1icmVhazpub3JtYWx9LnYtbGlzdC1pdGVtLS1vbmUtbGluZSAudi1saXN0LWl0ZW0tc3VidGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjF9LnYtbGlzdC1pdGVtLS10d28tbGluZSAudi1saXN0LWl0ZW0tc3VidGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjJ9LnYtbGlzdC1pdGVtLS10aHJlZS1saW5lIC52LWxpc3QtaXRlbS1zdWJ0aXRsZXstd2Via2l0LWxpbmUtY2xhbXA6M30udi1saXN0LWl0ZW0tc3VidGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi4wMTc4NTcxNDI5ZW07bGluZS1oZWlnaHQ6MXJlbTt0ZXh0LXRyYW5zZm9ybTpub25lfS52LWxpc3QtaXRlbS0tbmF2IC52LWxpc3QtaXRlbS1zdWJ0aXRsZXtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzouMDE3ODU3MTQyOWVtO2xpbmUtaGVpZ2h0OjFyZW19LnYtbGlzdC1pdGVtLXRpdGxley13ZWJraXQtaHlwaGVuczphdXRvO2h5cGhlbnM6YXV0bztvdmVyZmxvdzpoaWRkZW47b3ZlcmZsb3ctd3JhcDpub3JtYWw7cGFkZGluZzowO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtd3JhcDpicmVhay13b3JkO2ZvbnQtc2l6ZToxcmVtO2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzouMDA5Mzc1ZW07bGluZS1oZWlnaHQ6MS41O3RleHQtdHJhbnNmb3JtOm5vbmV9LnYtbGlzdC1pdGVtLS1uYXYgLnYtbGlzdC1pdGVtLXRpdGxle2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjFyZW19LnYtbGlzdC1pdGVtLS1kZW5zaXR5LWRlZmF1bHR7bWluLWhlaWdodDo0MHB4fS52LWxpc3QtaXRlbS0tZGVuc2l0eS1kZWZhdWx0LnYtbGlzdC1pdGVtLS1vbmUtbGluZXttaW4taGVpZ2h0OjQ4cHg7cGFkZGluZy1ib3R0b206NHB4O3BhZGRpbmctdG9wOjRweH0udi1saXN0LWl0ZW0tLWRlbnNpdHktZGVmYXVsdC52LWxpc3QtaXRlbS0tdHdvLWxpbmV7bWluLWhlaWdodDo2NHB4O3BhZGRpbmctYm90dG9tOjEycHg7cGFkZGluZy10b3A6MTJweH0udi1saXN0LWl0ZW0tLWRlbnNpdHktZGVmYXVsdC52LWxpc3QtaXRlbS0tdGhyZWUtbGluZXttaW4taGVpZ2h0Ojg4cHg7cGFkZGluZy1ib3R0b206MTZweDtwYWRkaW5nLXRvcDoxNnB4fS52LWxpc3QtaXRlbS0tZGVuc2l0eS1kZWZhdWx0LnYtbGlzdC1pdGVtLS10aHJlZS1saW5lIC52LWxpc3QtaXRlbV9fYXBwZW5kLC52LWxpc3QtaXRlbS0tZGVuc2l0eS1kZWZhdWx0LnYtbGlzdC1pdGVtLS10aHJlZS1saW5lIC52LWxpc3QtaXRlbV9fcHJlcGVuZHtwYWRkaW5nLXRvcDo4cHh9LnYtbGlzdC1pdGVtLS1kZW5zaXR5LWRlZmF1bHQ6bm90KC52LWxpc3QtaXRlbS0tbmF2KS52LWxpc3QtaXRlbS0tb25lLWxpbmUsLnYtbGlzdC1pdGVtLS1kZW5zaXR5LWRlZmF1bHQ6bm90KC52LWxpc3QtaXRlbS0tbmF2KS52LWxpc3QtaXRlbS0tdGhyZWUtbGluZSwudi1saXN0LWl0ZW0tLWRlbnNpdHktZGVmYXVsdDpub3QoLnYtbGlzdC1pdGVtLS1uYXYpLnYtbGlzdC1pdGVtLS10d28tbGluZXtwYWRkaW5nLWlubGluZToxNnB4fS52LWxpc3QtaXRlbS0tZGVuc2l0eS1jb21mb3J0YWJsZXttaW4taGVpZ2h0OjM2cHh9LnYtbGlzdC1pdGVtLS1kZW5zaXR5LWNvbWZvcnRhYmxlLnYtbGlzdC1pdGVtLS1vbmUtbGluZXttaW4taGVpZ2h0OjQ0cHh9LnYtbGlzdC1pdGVtLS1kZW5zaXR5LWNvbWZvcnRhYmxlLnYtbGlzdC1pdGVtLS10d28tbGluZXttaW4taGVpZ2h0OjYwcHg7cGFkZGluZy1ib3R0b206OHB4O3BhZGRpbmctdG9wOjhweH0udi1saXN0LWl0ZW0tLWRlbnNpdHktY29tZm9ydGFibGUudi1saXN0LWl0ZW0tLXRocmVlLWxpbmV7bWluLWhlaWdodDo4NHB4O3BhZGRpbmctYm90dG9tOjEycHg7cGFkZGluZy10b3A6MTJweH0udi1saXN0LWl0ZW0tLWRlbnNpdHktY29tZm9ydGFibGUudi1saXN0LWl0ZW0tLXRocmVlLWxpbmUgLnYtbGlzdC1pdGVtX19hcHBlbmQsLnYtbGlzdC1pdGVtLS1kZW5zaXR5LWNvbWZvcnRhYmxlLnYtbGlzdC1pdGVtLS10aHJlZS1saW5lIC52LWxpc3QtaXRlbV9fcHJlcGVuZHtwYWRkaW5nLXRvcDo2cHh9LnYtbGlzdC1pdGVtLS1kZW5zaXR5LWNvbWZvcnRhYmxlOm5vdCgudi1saXN0LWl0ZW0tLW5hdikudi1saXN0LWl0ZW0tLW9uZS1saW5lLC52LWxpc3QtaXRlbS0tZGVuc2l0eS1jb21mb3J0YWJsZTpub3QoLnYtbGlzdC1pdGVtLS1uYXYpLnYtbGlzdC1pdGVtLS10aHJlZS1saW5lLC52LWxpc3QtaXRlbS0tZGVuc2l0eS1jb21mb3J0YWJsZTpub3QoLnYtbGlzdC1pdGVtLS1uYXYpLnYtbGlzdC1pdGVtLS10d28tbGluZXtwYWRkaW5nLWlubGluZToxNnB4fS52LWxpc3QtaXRlbS0tZGVuc2l0eS1jb21wYWN0e21pbi1oZWlnaHQ6MzJweH0udi1saXN0LWl0ZW0tLWRlbnNpdHktY29tcGFjdC52LWxpc3QtaXRlbS0tb25lLWxpbmV7bWluLWhlaWdodDo0MHB4fS52LWxpc3QtaXRlbS0tZGVuc2l0eS1jb21wYWN0LnYtbGlzdC1pdGVtLS10d28tbGluZXttaW4taGVpZ2h0OjU2cHg7cGFkZGluZy1ib3R0b206NHB4O3BhZGRpbmctdG9wOjRweH0udi1saXN0LWl0ZW0tLWRlbnNpdHktY29tcGFjdC52LWxpc3QtaXRlbS0tdGhyZWUtbGluZXttaW4taGVpZ2h0OjgwcHg7cGFkZGluZy1ib3R0b206OHB4O3BhZGRpbmctdG9wOjhweH0udi1saXN0LWl0ZW0tLWRlbnNpdHktY29tcGFjdC52LWxpc3QtaXRlbS0tdGhyZWUtbGluZSAudi1saXN0LWl0ZW1fX2FwcGVuZCwudi1saXN0LWl0ZW0tLWRlbnNpdHktY29tcGFjdC52LWxpc3QtaXRlbS0tdGhyZWUtbGluZSAudi1saXN0LWl0ZW1fX3ByZXBlbmR7cGFkZGluZy10b3A6NHB4fS52LWxpc3QtaXRlbS0tZGVuc2l0eS1jb21wYWN0Om5vdCgudi1saXN0LWl0ZW0tLW5hdikudi1saXN0LWl0ZW0tLW9uZS1saW5lLC52LWxpc3QtaXRlbS0tZGVuc2l0eS1jb21wYWN0Om5vdCgudi1saXN0LWl0ZW0tLW5hdikudi1saXN0LWl0ZW0tLXRocmVlLWxpbmUsLnYtbGlzdC1pdGVtLS1kZW5zaXR5LWNvbXBhY3Q6bm90KC52LWxpc3QtaXRlbS0tbmF2KS52LWxpc3QtaXRlbS0tdHdvLWxpbmV7cGFkZGluZy1pbmxpbmU6MTZweH0udi1saXN0LWl0ZW0tLW5hdntwYWRkaW5nLWlubGluZTo4cHh9LnYtbGlzdCAudi1saXN0LWl0ZW0tLW5hdjpub3QoOm9ubHktY2hpbGQpe21hcmdpbi1ib3R0b206NHB4fS52LWxpc3QtaXRlbV9fdW5kZXJsYXl7cG9zaXRpb246YWJzb2x1dGV9LnYtbGlzdC1pdGVtX19vdmVybGF5e2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0fS52LWxpc3QtaXRlbS0tYWN0aXZlLnYtbGlzdC1pdGVtLS12YXJpYW50LWVsZXZhdGVkIC52LWxpc3QtaXRlbV9fb3ZlcmxheXstLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOjB9LnYtbGlzdHstLWluZGVudC1wYWRkaW5nOjBweH0udi1saXN0LS1uYXZ7LS1pbmRlbnQtcGFkZGluZzotOHB4fS52LWxpc3QtZ3JvdXB7LS1saXN0LWluZGVudC1zaXplOjE2cHg7LS1wYXJlbnQtcGFkZGluZzp2YXIoLS1pbmRlbnQtcGFkZGluZyk7LS1wcmVwZW5kLXdpZHRoOjQwcHh9LnYtbGlzdC0tc2xpbSAudi1saXN0LWdyb3Vwey0tcHJlcGVuZC13aWR0aDoyOHB4fS52LWxpc3QtZ3JvdXAtLWZsdWlkey0tbGlzdC1pbmRlbnQtc2l6ZTowcHh9LnYtbGlzdC1ncm91cC0tcHJlcGVuZHstLXBhcmVudC1wYWRkaW5nOmNhbGModmFyKC0taW5kZW50LXBhZGRpbmcpICsgdmFyKC0tcHJlcGVuZC13aWR0aCkpfS52LWxpc3QtZ3JvdXAtLWZsdWlkLnYtbGlzdC1ncm91cC0tcHJlcGVuZHstLXBhcmVudC1wYWRkaW5nOnZhcigtLWluZGVudC1wYWRkaW5nKX0udi1saXN0LWdyb3VwX19pdGVtc3stLWluZGVudC1wYWRkaW5nOmNhbGModmFyKC0tcGFyZW50LXBhZGRpbmcpICsgdmFyKC0tbGlzdC1pbmRlbnQtc2l6ZSkpfS52LWxpc3QtZ3JvdXBfX2l0ZW1zIC52LWxpc3QtaXRlbXtwYWRkaW5nLWlubGluZS1zdGFydDpjYWxjKDE2cHggKyB2YXIoLS1pbmRlbnQtcGFkZGluZykpIWltcG9ydGFudH0udi1saXN0LWdyb3VwX19oZWFkZXI6bm90KC52LXRyZWV2aWV3LWl0ZW0tLWFjdGl2YXRhYmxlLWdyb3VwLWFjdGl2YXRvcikudi1saXN0LWl0ZW0tLWFjdGl2ZTpub3QoOmZvY3VzLXZpc2libGUpIC52LWxpc3QtaXRlbV9fb3ZlcmxheXtvcGFjaXR5OjB9LnYtbGlzdC1ncm91cF9faGVhZGVyOm5vdCgudi10cmVldmlldy1pdGVtLS1hY3RpdmF0YWJsZS1ncm91cC1hY3RpdmF0b3IpLnYtbGlzdC1pdGVtLS1hY3RpdmU6aG92ZXIgLnYtbGlzdC1pdGVtX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWhvdmVyLW9wYWNpdHkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9LnYtZGl2aWRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOnRoaW4gMCAwO2Rpc3BsYXk6YmxvY2s7ZmxleDoxIDEgMTAwJTtoZWlnaHQ6MDttYXgtaGVpZ2h0OjA7b3BhY2l0eTp2YXIoLS12LWJvcmRlci1vcGFjaXR5KTt0cmFuc2l0aW9uOmluaGVyaXR9LnYtZGl2aWRlci0tdmVydGljYWx7YWxpZ24tc2VsZjpzdHJldGNoO2JvcmRlci13aWR0aDowIHRoaW4gMCAwO2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6LTFweDttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjA7dmVydGljYWwtYWxpZ246dGV4dC1ib3R0b207d2lkdGg6MH0udi1kaXZpZGVyLS1pbnNldDpub3QoLnYtZGl2aWRlci0tdmVydGljYWwpe21hcmdpbi1pbmxpbmUtc3RhcnQ6NzJweDttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNzJweCl9LnYtZGl2aWRlci0taW5zZXQudi1kaXZpZGVyLS12ZXJ0aWNhbHttYXJnaW4tYm90dG9tOjhweDttYXJnaW4tdG9wOjhweDttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDE2cHgpfS52LWRpdmlkZXJfX2NvbnRlbnR7cGFkZGluZzowIDE2cHg7dGV4dC13cmFwOm5vd3JhcH0udi1kaXZpZGVyX193cmFwcGVyLS12ZXJ0aWNhbCAudi1kaXZpZGVyX19jb250ZW50e3BhZGRpbmc6NHB4IDB9LnYtZGl2aWRlcl9fd3JhcHBlcnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnYtZGl2aWRlcl9fd3JhcHBlci0tdmVydGljYWx7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfS52LWRpdmlkZXJfX3dyYXBwZXItLXZlcnRpY2FsIC52LWRpdmlkZXJ7bWFyZ2luOjAgYXV0b30K"}},"time_used":85,"timings":{"blocked":-1,"dns":0,"connect":26,"send":0,"wait":26,"receive":0,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/ZfNZiyCm.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.501Z","timestamp":1785139669501,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/ZfNZiyCm.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"37af-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 4897\r\nKeep-Alive: timeout=5, max=98\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":14255,"size_decoded":5248,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (14254)","md5":"49c07e52c426c71dd3ca0cf0b3b23607","sha1":"0e2f271d03c5e699411226ccb75cc509a5b1ad32","sha256":"9541c3c531b19b5b9ff86299e7c3f77f11296796976bffc0254b771feb6896bc","sha512":"3c1f37708bc1511bbf0e1be14b985c714303c52a3bac592a9ed8feaea57e6fb1af39603179fa93900aad72229ee6da99560186b4df06e04ba9625e3acac48993","ssdeep":"384:cZTC96yJHlv6pIHkSAGwh4w5O1pnKT2aho09EZcQSmbhFvms+b+7tYtz:cZu9DJUpIESAr4w5apnKT2CoKEWG9FOT","tlshash":"a3520a847a44a03aab7b449dc4ba06111759238dd51a85d9f0f3b6782385f8cb6f873f","first_seen":"2025-10-23T03:46:52.59544Z","last_seen":"2026-07-27T11:49:48.921231Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2JnIGFzIEJlLHIgYXMgSCxhdSBhcyBsZSxrIGFzIHNlLGogYXMgSixiaCBhcyBQZSxSIGFzIFZlLGJpIGFzIF9lLCQgYXMgYixhYiBhcyBvZSxzIGFzIHIsYTcgYXMgRCxhOCBhcyBFLGE5IGFzIEcsYTAgYXMgTCxhMSBhcyBSZSxhYSBhcyBqLGE0IGFzIHEsYWggYXMgSyxhcyBhcyBwLGE1IGFzIHosZiBhcyBzLGFmIGFzIGgsYmogYXMgeGUsYmsgYXMgRix1IGFzIGVlLGJsIGFzIEllLEYgYXMgd2UsbSBhcyBOZSxhaiBhcyAkZSxhaSBhcyB3LGEyIGFzIHJlLGFVIGFzIGllLGJtIGFzIHVlLGFxIGFzIE9lLGFnIGFzIFRlLGF4IGFzIHRlLEkgYXMgTGUsSCBhcyBXfWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0e2IgYXMgY2UsYyBhcyBkZSxkIGFzIHplLHUgYXMgRmUsbSBhcyBBZSxhIGFzIE1lLFIgYXMgRGUsViBhcyBZfWZyb20iLi9DTXVVVGxTMi5qcyI7aW1wb3J0e2EgYXMgUSxiIGFzIFosbSBhcyBFZSx1IGFzIEdlfWZyb20iLi9COFR4VHlhay5qcyI7aW1wb3J0e3AgYXMgamUsbSBhcyBVZSx1IGFzIFhlfWZyb20iLi94VW81c0tHaS5qcyI7ZnVuY3Rpb24gS2UoZSl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiJjb250ZW50Ijtjb25zdCBuPUJlKCksdD1IKCk7aWYobGUpe2NvbnN0IG89bmV3IFJlc2l6ZU9ic2VydmVyKGE9PntlPT1udWxsfHxlKGEsbyksYS5sZW5ndGgmJihsPT09ImNvbnRlbnQiP3QudmFsdWU9YVswXS5jb250ZW50UmVjdDp0LnZhbHVlPWFbMF0udGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKX0pO3NlKCgpPT57by5kaXNjb25uZWN0KCl9KSxKKCgpPT5uLmVsLChhLGkpPT57aSYmKG8udW5vYnNlcnZlKGkpLHQudmFsdWU9dm9pZCAwKSxhJiZvLm9ic2VydmUoYSl9LHtmbHVzaDoicG9zdCJ9KX1yZXR1cm57cmVzaXplUmVmOm4sY29udGVudFJlY3Q6UGUodCl9fWZ1bmN0aW9uIHZlKGUsbCl7Y29uc3Qgbj1IKCksdD1WZSghMSk7aWYoX2Upe2NvbnN0IG89bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGE9Pnt0LnZhbHVlPSEhYS5maW5kKGk9PmkuaXNJbnRlcnNlY3RpbmcpfSxsKTtzZSgoKT0+e28uZGlzY29ubmVjdCgpfSksSihuLChhLGkpPT57aSYmKG8udW5vYnNlcnZlKGkpLHQudmFsdWU9ITEpLGEmJm8ub2JzZXJ2ZShhKX0se2ZsdXNoOiJwb3N0In0pfXJldHVybntpbnRlcnNlY3Rpb25SZWY6bixpc0ludGVyc2VjdGluZzp0fX1jb25zdCBhZT17Y2VudGVyOiJjZW50ZXIiLHRvcDoiYm90dG9tIixib3R0b206InRvcCIsbGVmdDoicmlnaHQiLHJpZ2h0OiJsZWZ0In0sZmU9Yih7bG9jYXRpb246U3RyaW5nfSwibG9jYXRpb24iKTtmdW5jdGlvbiBnZShlKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITEsbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtjb25zdHtpc1J0bDp0fT1vZSgpO3JldHVybntsb2NhdGlvblN0eWxlczpyKCgpPT57aWYoIWUubG9jYXRpb24pcmV0dXJue307Y29uc3R7c2lkZTphLGFsaWduOml9PWplKGUubG9jYXRpb24uc3BsaXQoIiAiKS5sZW5ndGg+MT9lLmxvY2F0aW9uOmAke2UubG9jYXRpb259IGNlbnRlcmAsdC52YWx1ZSk7ZnVuY3Rpb24gZyh5KXtyZXR1cm4gbj9uKHkpOjB9Y29uc3QgYz17fTtyZXR1cm4gYSE9PSJjZW50ZXIiJiYobD9jW2FlW2FdXT1gY2FsYygxMDAlIC0gJHtnKGEpfXB4KWA6Y1thXT0wKSxpIT09ImNlbnRlciI/bD9jW2FlW2ldXT1gY2FsYygxMDAlIC0gJHtnKGkpfXB4KWA6Y1tpXT0wOihhPT09ImNlbnRlciI/Yy50b3A9Yy5sZWZ0PSI1MCUiOmNbe3RvcDoibGVmdCIsYm90dG9tOiJsZWZ0IixsZWZ0OiJ0b3AiLHJpZ2h0OiJ0b3AifVthXV09IjUwJSIsYy50cmFuc2Zvcm09e3RvcDoidHJhbnNsYXRlWCgtNTAlKSIsYm90dG9tOiJ0cmFuc2xhdGVYKC01MCUpIixsZWZ0OiJ0cmFuc2xhdGVZKC01MCUpIixyaWdodDoidHJhbnNsYXRlWSgtNTAlKSIsY2VudGVyOiJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkifVthXSksY30pfX1jb25zdCBXZT1iKHthYnNvbHV0ZTpCb29sZWFuLGFjdGl2ZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LGJnQ29sb3I6U3RyaW5nLGJnT3BhY2l0eTpbTnVtYmVyLFN0cmluZ10sYnVmZmVyVmFsdWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MH0sYnVmZmVyQ29sb3I6U3RyaW5nLGJ1ZmZlck9wYWNpdHk6W051bWJlcixTdHJpbmddLGNsaWNrYWJsZTpCb29sZWFuLGNvbG9yOlN0cmluZyxoZWlnaHQ6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NH0saW5kZXRlcm1pbmF0ZTpCb29sZWFuLG1heDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDoxMDB9LG1vZGVsVmFsdWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MH0sb3BhY2l0eTpbTnVtYmVyLFN0cmluZ10scmV2ZXJzZTpCb29sZWFuLHN0cmVhbTpCb29sZWFuLHN0cmlwZWQ6Qm9vbGVhbixyb3VuZGVkQmFyOkJvb2xlYW4sLi4uRCgpLC4uLmZlKHtsb2NhdGlvbjoidG9wIn0pLC4uLlEoKSwuLi5FKCksLi4uRygpfSwiVlByb2dyZXNzTGluZWFyIiksWWU9TCgpKHtuYW1lOiJWUHJvZ3Jlc3NMaW5lYXIiLHByb3BzOldlKCksZW1pdHM6eyJ1cGRhdGU6bW9kZWxWYWx1ZSI6ZT0+ITB9LHNldHVwKGUsbCl7dmFyIHY7bGV0e3Nsb3RzOm59PWw7Y29uc3QgdD1SZShlLCJtb2RlbFZhbHVlIikse2lzUnRsOm8scnRsQ2xhc3NlczphfT1vZSgpLHt0aGVtZUNsYXNzZXM6aX09aihlKSx7bG9jYXRpb25TdHlsZXM6Z309Z2UoZSkse3RleHRDb2xvckNsYXNzZXM6Yyx0ZXh0Q29sb3JTdHlsZXM6eX09cShlLCJjb2xvciIpLHtiYWNrZ3JvdW5kQ29sb3JDbGFzc2VzOk4sYmFja2dyb3VuZENvbG9yU3R5bGVzOiR9PUsocigoKT0+ZS5iZ0NvbG9yfHxlLmNvbG9yKSkse2JhY2tncm91bmRDb2xvckNsYXNzZXM6TyxiYWNrZ3JvdW5kQ29sb3JTdHlsZXM6VH09SyhyKCgpPT5lLmJ1ZmZlckNvbG9yfHxlLmJnQ29sb3J8fGUuY29sb3IpKSx7YmFja2dyb3VuZENvbG9yQ2xhc3NlczpWLGJhY2tncm91bmRDb2xvclN0eWxlczp1fT1LKGUsImNvbG9yIikse3JvdW5kZWRDbGFzc2VzOmR9PVooZSkse2ludGVyc2VjdGlvblJlZjpDLGlzSW50ZXJzZWN0aW5nOlB9PXZlKCksaz1yKCgpPT5wYXJzZUZsb2F0KGUubWF4KSksbT1yKCgpPT5wYXJzZUZsb2F0KGUuaGVpZ2h0KSksQj1yKCgpPT5wKHBhcnNlRmxvYXQoZS5idWZmZXJWYWx1ZSkvay52YWx1ZSoxMDAsMCwxMDApKSxfPXIoKCk9PnAocGFyc2VGbG9hdCh0LnZhbHVlKS9rLnZhbHVlKjEwMCwwLDEwMCkpLFM9cigoKT0+by52YWx1ZSE9PWUucmV2ZXJzZSksVT1yKCgpPT5lLmluZGV0ZXJtaW5hdGU/ImZhZGUtdHJhbnNpdGlvbiI6InNsaWRlLXgtdHJhbnNpdGlvbiIpLFI9bGUmJigodj13aW5kb3cubWF0Y2hNZWRpYSk9PW51bGw/dm9pZCAwOnYuY2FsbCh3aW5kb3csIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpIikubWF0Y2hlcyk7ZnVuY3Rpb24gWChmKXtpZighQy52YWx1ZSlyZXR1cm47Y29uc3R7bGVmdDp4LHJpZ2h0OkEsd2lkdGg6SX09Qy52YWx1ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxNPVMudmFsdWU/SS1mLmNsaWVudFgrKEEtSSk6Zi5jbGllbnRYLXg7dC52YWx1ZT1NYXRoLnJvdW5kKE0vSSprLnZhbHVlKX1yZXR1cm4geigoKT0+cyhlLnRhZyx7cmVmOkMsY2xhc3M6WyJ2LXByb2dyZXNzLWxpbmVhciIseyJ2LXByb2dyZXNzLWxpbmVhci0tYWJzb2x1dGUiOmUuYWJzb2x1dGUsInYtcHJvZ3Jlc3MtbGluZWFyLS1hY3RpdmUiOmUuYWN0aXZlJiZQLnZhbHVlLCJ2LXByb2dyZXNzLWxpbmVhci0tcmV2ZXJzZSI6Uy52YWx1ZSwidi1wcm9ncmVzcy1saW5lYXItLXJvdW5kZWQiOmUucm91bmRlZCwidi1wcm9ncmVzcy1saW5lYXItLXJvdW5kZWQtYmFyIjplLnJvdW5kZWRCYXIsInYtcHJvZ3Jlc3MtbGluZWFyLS1zdHJpcGVkIjplLnN0cmlwZWR9LGQudmFsdWUsaS52YWx1ZSxhLnZhbHVlLGUuY2xhc3NdLHN0eWxlOlt7Ym90dG9tOmUubG9jYXRpb249PT0iYm90dG9tIj8wOnZvaWQgMCx0b3A6ZS5sb2NhdGlvbj09PSJ0b3AiPzA6dm9pZCAwLGhlaWdodDplLmFjdGl2ZT9oKG0udmFsdWUpOjAsIi0tdi1wcm9ncmVzcy1saW5lYXItaGVpZ2h0IjpoKG0udmFsdWUpLC4uLmUuYWJzb2x1dGU/Zy52YWx1ZTp7fX0sZS5zdHlsZV0scm9sZToicHJvZ3Jlc3NiYXIiLCJhcmlhLWhpZGRlbiI6ZS5hY3RpdmU/ImZhbHNlIjoidHJ1ZSIsImFyaWEtdmFsdWVtaW4iOiIwIiwiYXJpYS12YWx1ZW1heCI6ZS5tYXgsImFyaWEtdmFsdWVub3ciOmUuaW5kZXRlcm1pbmF0ZT92b2lkIDA6TWF0aC5taW4ocGFyc2VGbG9hdCh0LnZhbHVlKSxrLnZhbHVlKSxvbkNsaWNrOmUuY2xpY2thYmxlJiZYfSx7ZGVmYXVsdDooKT0+W2Uuc3RyZWFtJiZzKCJkaXYiLHtrZXk6InN0cmVhbSIsY2xhc3M6WyJ2LXByb2dyZXNzLWxpbmVhcl9fc3RyZWFtIixjLnZhbHVlXSxzdHlsZTp7Li4ueS52YWx1ZSxbUy52YWx1ZT8ibGVmdCI6InJpZ2h0Il06aCgtbS52YWx1ZSksYm9yZGVyVG9wOmAke2gobS52YWx1ZS8yKX0gZG90dGVkYCxvcGFjaXR5OnBhcnNlRmxvYXQoZS5idWZmZXJPcGFjaXR5KSx0b3A6YGNhbGMoNTAlIC0gJHtoKG0udmFsdWUvNCl9KWAsd2lkdGg6aCgxMDAtQi52YWx1ZSwiJSIpLCItLXYtcHJvZ3Jlc3MtbGluZWFyLXN0cmVhbS10byI6aChtLnZhbHVlKihTLnZhbHVlPzE6LTEpKX19LG51bGwpLHMoImRpdiIse2NsYXNzOlsidi1wcm9ncmVzcy1saW5lYXJfX2JhY2tncm91bmQiLFI/dm9pZCAwOk4udmFsdWVdLHN0eWxlOlskLnZhbHVlLHtvcGFjaXR5OnBhcnNlRmxvYXQoZS5iZ09wYWNpdHkpLHdpZHRoOmUuc3RyZWFtPzA6dm9pZCAwfV19LG51bGwpLHMoImRpdiIse2NsYXNzOlsidi1wcm9ncmVzcy1saW5lYXJfX2J1ZmZlciIsUj92b2lkIDA6Ty52YWx1ZV0sc3R5bGU6W1QudmFsdWUse29wYWNpdHk6cGFyc2VGbG9hdChlLmJ1ZmZlck9wYWNpdHkpLHdpZHRoOmgoQi52YWx1ZSwiJSIpfV19LG51bGwpLHMoeGUse25hbWU6VS52YWx1ZX0se2RlZmF1bHQ6KCk9PltlLmluZGV0ZXJtaW5hdGU/cygiZGl2Iix7Y2xhc3M6InYtcHJvZ3Jlc3MtbGluZWFyX19pbmRldGVybWluYXRlIn0sW1sibG9uZyIsInNob3J0Il0ubWFwKGY9PnMoImRpdiIse2tleTpmLGNsYXNzOlsidi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGUiLGYsUj92b2lkIDA6Vi52YWx1ZV0sc3R5bGU6dS52YWx1ZX0sbnVsbCkpXSk6cygiZGl2Iix7Y2xhc3M6WyJ2LXByb2dyZXNzLWxpbmVhcl9fZGV0ZXJtaW5hdGUiLFI/dm9pZCAwOlYudmFsdWVdLHN0eWxlOlt1LnZhbHVlLHt3aWR0aDpoKF8udmFsdWUsIiUiKX1dfSxudWxsKV19KSxuLmRlZmF1bHQmJnMoImRpdiIse2NsYXNzOiJ2LXByb2dyZXNzLWxpbmVhcl9fY29udGVudCJ9LFtuLmRlZmF1bHQoe3ZhbHVlOl8udmFsdWUsYnVmZmVyOkIudmFsdWV9KV0pXX0pKSx7fX19KSxxZT1bInN0YXRpYyIsInJlbGF0aXZlIiwiZml4ZWQiLCJhYnNvbHV0ZSIsInN0aWNreSJdLEhlPWIoe3Bvc2l0aW9uOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZT0+cWUuaW5jbHVkZXMoZSl9fSwicG9zaXRpb24iKTtmdW5jdGlvbiBKZShlKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06RigpO3JldHVybntwb3NpdGlvbkNsYXNzZXM6cigoKT0+ZS5wb3NpdGlvbj9gJHtsfS0tJHtlLnBvc2l0aW9ufWA6dm9pZCAwKX19Y29uc3QgUWU9WyJlbGV2YXRlZCIsImZsYXQiLCJ0b25hbCIsIm91dGxpbmVkIiwidGV4dCIsInBsYWluIl07ZnVuY3Rpb24gWmUoZSxsKXtyZXR1cm4gcyh3ZSxudWxsLFtlJiZzKCJzcGFuIix7a2V5OiJvdmVybGF5IixjbGFzczpgJHtsfV9fb3ZlcmxheWB9LG51bGwpLHMoInNwYW4iLHtrZXk6InVuZGVybGF5IixjbGFzczpgJHtsfV9fdW5kZXJsYXlgfSxudWxsKV0pfWNvbnN0IG1lPWIoe2NvbG9yOlN0cmluZyx2YXJpYW50Ont0eXBlOlN0cmluZyxkZWZhdWx0OiJlbGV2YXRlZCIsdmFsaWRhdG9yOmU9PlFlLmluY2x1ZGVzKGUpfX0sInZhcmlhbnQiKTtmdW5jdGlvbiBwZShlKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06RigpO2NvbnN0IG49cigoKT0+e2NvbnN0e3ZhcmlhbnQ6YX09ZWUoZSk7cmV0dXJuYCR7bH0tLXZhcmlhbnQtJHthfWB9KSx7Y29sb3JDbGFzc2VzOnQsY29sb3JTdHlsZXM6b309SWUocigoKT0+e2NvbnN0e3ZhcmlhbnQ6YSxjb2xvcjppfT1lZShlKTtyZXR1cm57W1siZWxldmF0ZWQiLCJmbGF0Il0uaW5jbHVkZXMoYSk/ImJhY2tncm91bmQiOiJ0ZXh0Il06aX19KSk7cmV0dXJue2NvbG9yQ2xhc3Nlczp0LGNvbG9yU3R5bGVzOm8sdmFyaWFudENsYXNzZXM6bn19Y29uc3QgZXQ9Yih7bG9hZGluZzpbQm9vbGVhbixTdHJpbmddfSwibG9hZGVyIik7ZnVuY3Rpb24gdHQoZSl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOkYoKTtyZXR1cm57bG9hZGVyQ2xhc3NlczpyKCgpPT4oe1tgJHtsfS0tbG9hZGluZ2BdOmUubG9hZGluZ30pKX19ZnVuY3Rpb24gdnQoZSxsKXt2YXIgdDtsZXR7c2xvdHM6bn09bDtyZXR1cm4gcygiZGl2Iix7Y2xhc3M6YCR7ZS5uYW1lfV9fbG9hZGVyYH0sWygodD1uLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDp0LmNhbGwobix7Y29sb3I6ZS5jb2xvcixpc0FjdGl2ZTplLmFjdGl2ZX0pKXx8cyhZZSx7YWJzb2x1dGU6ZS5hYnNvbHV0ZSxhY3RpdmU6ZS5hY3RpdmUsY29sb3I6ZS5jb2xvcixoZWlnaHQ6IjIiLGluZGV0ZXJtaW5hdGU6ITB9LG51bGwpXSl9Y29uc3QgYXQ9W251bGwsImRlZmF1bHQiLCJjb21mb3J0YWJsZSIsImNvbXBhY3QiXSxiZT1iKHtkZW5zaXR5Ont0eXBlOlN0cmluZyxkZWZhdWx0OiJkZWZhdWx0Iix2YWxpZGF0b3I6ZT0+YXQuaW5jbHVkZXMoZSl9fSwiZGVuc2l0eSIpO2Z1bmN0aW9uIHllKGUpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpGKCk7cmV0dXJue2RlbnNpdHlDbGFzc2VzOnIoKCk9PmAke2x9LS1kZW5zaXR5LSR7ZS5kZW5zaXR5fWApfX1jb25zdCBDZT1iKHtib3JkZXI6W0Jvb2xlYW4sTnVtYmVyLFN0cmluZ119LCJib3JkZXIiKTtmdW5jdGlvbiBoZShlKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06RigpO3JldHVybntib3JkZXJDbGFzc2VzOnIoKCk9Pntjb25zdCB0PU5lKGUpP2UudmFsdWU6ZS5ib3JkZXIsbz1bXTtpZih0PT09ITB8fHQ9PT0iIilvLnB1c2goYCR7bH0tLWJvcmRlcmApO2Vsc2UgaWYodHlwZW9mIHQ9PSJzdHJpbmcifHx0PT09MClmb3IoY29uc3QgYSBvZiBTdHJpbmcodCkuc3BsaXQoIiAiKSlvLnB1c2goYGJvcmRlci0ke2F9YCk7cmV0dXJuIG99KX19Y29uc3Qga2U9Yih7YmFzZUNvbG9yOlN0cmluZyxkaXZpZGVkOkJvb2xlYW4sLi4uQ2UoKSwuLi5EKCksLi4uYmUoKSwuLi5jZSgpLC4uLlEoKSwuLi5FKCksLi4uRygpLC4uLm1lKCl9LCJWQnRuR3JvdXAiKSxuZT1MKCkoe25hbWU6IlZCdG5Hcm91cCIscHJvcHM6a2UoKSxzZXR1cChlLGwpe2xldHtzbG90czpufT1sO2NvbnN0e3RoZW1lQ2xhc3Nlczp0fT1qKGUpLHtkZW5zaXR5Q2xhc3NlczpvfT15ZShlKSx7Ym9yZGVyQ2xhc3NlczphfT1oZShlKSx7ZWxldmF0aW9uQ2xhc3NlczppfT1kZShlKSx7cm91bmRlZENsYXNzZXM6Z309WihlKTskZSh7VkJ0bjp7aGVpZ2h0OiJhdXRvIixiYXNlQ29sb3I6dyhlLCJiYXNlQ29sb3IiKSxjb2xvcjp3KGUsImNvbG9yIiksZGVuc2l0eTp3KGUsImRlbnNpdHkiKSxmbGF0OiEwLHZhcmlhbnQ6dyhlLCJ2YXJpYW50Iil9fSkseigoKT0+cyhlLnRhZyx7Y2xhc3M6WyJ2LWJ0bi1ncm91cCIseyJ2LWJ0bi1ncm91cC0tZGl2aWRlZCI6ZS5kaXZpZGVkfSx0LnZhbHVlLGEudmFsdWUsby52YWx1ZSxpLnZhbHVlLGcudmFsdWUsZS5jbGFzc10sc3R5bGU6ZS5zdHlsZX0sbikpfX0pLFNlPVN5bWJvbC5mb3IoInZ1ZXRpZnk6di1idG4tdG9nZ2xlIiksbnQ9Yih7Li4ua2UoKSwuLi56ZSgpfSwiVkJ0blRvZ2dsZSIpO0woKSh7bmFtZToiVkJ0blRvZ2dsZSIscHJvcHM6bnQoKSxlbWl0czp7InVwZGF0ZTptb2RlbFZhbHVlIjplPT4hMH0sc2V0dXAoZSxsKXtsZXR7c2xvdHM6bn09bDtjb25zdHtpc1NlbGVjdGVkOnQsbmV4dDpvLHByZXY6YSxzZWxlY3Q6aSxzZWxlY3RlZDpnfT1GZShlLFNlKTtyZXR1cm4geigoKT0+e2NvbnN0IGM9bmUuZmlsdGVyUHJvcHMoZSk7cmV0dXJuIHMobmUscmUoe2NsYXNzOlsidi1idG4tdG9nZ2xlIixlLmNsYXNzXX0sYyx7c3R5bGU6ZS5zdHlsZX0pLHtkZWZhdWx0OigpPT57dmFyIHk7cmV0dXJuWyh5PW4uZGVmYXVsdCk9PW51bGw/dm9pZCAwOnkuY2FsbChuLHtpc1NlbGVjdGVkOnQsbmV4dDpvLHByZXY6YSxzZWxlY3Q6aSxzZWxlY3RlZDpnfSldfX0pfSkse25leHQ6byxwcmV2OmEsc2VsZWN0Oml9fX0pO2NvbnN0IGx0PWIoe2JnQ29sb3I6U3RyaW5nLGNvbG9yOlN0cmluZyxpbmRldGVybWluYXRlOltCb29sZWFuLFN0cmluZ10sbW9kZWxWYWx1ZTp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSxyb3RhdGU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MH0sd2lkdGg6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NH0sLi4uRCgpLC4uLmllKCksLi4uRSh7dGFnOiJkaXYifSksLi4uRygpfSwiVlByb2dyZXNzQ2lyY3VsYXIiKSxzdD1MKCkoe25hbWU6IlZQcm9ncmVzc0NpcmN1bGFyIixwcm9wczpsdCgpLHNldHVwKGUsbCl7bGV0e3Nsb3RzOm59PWw7Y29uc3QgdD0yMCxvPTIqTWF0aC5QSSp0LGE9SCgpLHt0aGVtZUNsYXNzZXM6aX09aihlKSx7c2l6ZUNsYXNzZXM6ZyxzaXplU3R5bGVzOmN9PXVlKGUpLHt0ZXh0Q29sb3JDbGFzc2VzOnksdGV4dENvbG9yU3R5bGVzOk59PXEodyhlLCJjb2xvciIpKSx7dGV4dENvbG9yQ2xhc3NlczokLHRleHRDb2xvclN0eWxlczpPfT1xKHcoZSwiYmdDb2xvciIpKSx7aW50ZXJzZWN0aW9uUmVmOlQsaXNJbnRlcnNlY3Rpbmc6Vn09dmUoKSx7cmVzaXplUmVmOnUsY29udGVudFJlY3Q6ZH09S2UoKSxDPXIoKCk9Pk1hdGgubWF4KDAsTWF0aC5taW4oMTAwLHBhcnNlRmxvYXQoZS5tb2RlbFZhbHVlKSkpKSxQPXIoKCk9Pk51bWJlcihlLndpZHRoKSksaz1yKCgpPT5jLnZhbHVlP051bWJlcihlLnNpemUpOmQudmFsdWU/ZC52YWx1ZS53aWR0aDpNYXRoLm1heChQLnZhbHVlLDMyKSksbT1yKCgpPT50LygxLVAudmFsdWUvay52YWx1ZSkqMiksQj1yKCgpPT5QLnZhbHVlL2sudmFsdWUqbS52YWx1ZSksXz1yKCgpPT5oKCgxMDAtQy52YWx1ZSkvMTAwKm8pKTtyZXR1cm4gT2UoKCk9PntULnZhbHVlPWEudmFsdWUsdS52YWx1ZT1hLnZhbHVlfSkseigoKT0+cyhlLnRhZyx7cmVmOmEsY2xhc3M6WyJ2LXByb2dyZXNzLWNpcmN1bGFyIix7InYtcHJvZ3Jlc3MtY2lyY3VsYXItLWluZGV0ZXJtaW5hdGUiOiEhZS5pbmRldGVybWluYXRlLCJ2LXByb2dyZXNzLWNpcmN1bGFyLS12aXNpYmxlIjpWLnZhbHVlLCJ2LXByb2dyZXNzLWNpcmN1bGFyLS1kaXNhYmxlLXNocmluayI6ZS5pbmRldGVybWluYXRlPT09ImRpc2FibGUtc2hyaW5rIn0saS52YWx1ZSxnLnZhbHVlLHkudmFsdWUsZS5jbGFzc10sc3R5bGU6W2MudmFsdWUsTi52YWx1ZSxlLnN0eWxlXSxyb2xlOiJwcm9ncmVzc2JhciIsImFyaWEtdmFsdWVtaW4iOiIwIiwiYXJpYS12YWx1ZW1heCI6IjEwMCIsImFyaWEtdmFsdWVub3ciOmUuaW5kZXRlcm1pbmF0ZT92b2lkIDA6Qy52YWx1ZX0se2RlZmF1bHQ6KCk9PltzKCJzdmciLHtzdHlsZTp7dHJhbnNmb3JtOmByb3RhdGUoY2FsYygtOTBkZWcgKyAke051bWJlcihlLnJvdGF0ZSl9ZGVnKSlgfSx4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6YDAgMCAke20udmFsdWV9ICR7bS52YWx1ZX1gfSxbcygiY2lyY2xlIix7Y2xhc3M6WyJ2LXByb2dyZXNzLWNpcmN1bGFyX191bmRlcmxheSIsJC52YWx1ZV0sc3R5bGU6Ty52YWx1ZSxmaWxsOiJ0cmFuc3BhcmVudCIsY3g6IjUwJSIsY3k6IjUwJSIscjp0LCJzdHJva2Utd2lkdGgiOkIudmFsdWUsInN0cm9rZS1kYXNoYXJyYXkiOm8sInN0cm9rZS1kYXNob2Zmc2V0IjowfSxudWxsKSxzKCJjaXJjbGUiLHtjbGFzczoidi1wcm9ncmVzcy1jaXJjdWxhcl9fb3ZlcmxheSIsZmlsbDoidHJhbnNwYXJlbnQiLGN4OiI1MCUiLGN5OiI1MCUiLHI6dCwic3Ryb2tlLXdpZHRoIjpCLnZhbHVlLCJzdHJva2UtZGFzaGFycmF5IjpvLCJzdHJva2UtZGFzaG9mZnNldCI6Xy52YWx1ZX0sbnVsbCldKSxuLmRlZmF1bHQmJnMoImRpdiIse2NsYXNzOiJ2LXByb2dyZXNzLWNpcmN1bGFyX19jb250ZW50In0sW24uZGVmYXVsdCh7dmFsdWU6Qy52YWx1ZX0pXSldfSkpLHt9fX0pO2Z1bmN0aW9uIG90KGUsbCl7SigoKT0+e3ZhciBuO3JldHVybihuPWUuaXNBY3RpdmUpPT1udWxsP3ZvaWQgMDpuLnZhbHVlfSxuPT57ZS5pc0xpbmsudmFsdWUmJm4mJmwmJlRlKCgpPT57bCghMCl9KX0se2ltbWVkaWF0ZTohMH0pfWNvbnN0IHJ0PWIoe2FjdGl2ZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6dm9pZCAwfSxhY3RpdmVDb2xvcjpTdHJpbmcsYmFzZUNvbG9yOlN0cmluZyxzeW1ib2w6e3R5cGU6bnVsbCxkZWZhdWx0OlNlfSxmbGF0OkJvb2xlYW4saWNvbjpbQm9vbGVhbixTdHJpbmcsRnVuY3Rpb24sT2JqZWN0XSxwcmVwZW5kSWNvbjp0ZSxhcHBlbmRJY29uOnRlLGJsb2NrOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixzbGltOkJvb2xlYW4sc3RhY2tlZDpCb29sZWFuLHJpcHBsZTp7dHlwZTpbQm9vbGVhbixPYmplY3RdLGRlZmF1bHQ6ITB9LHRleHQ6U3RyaW5nLC4uLkNlKCksLi4uRCgpLC4uLmJlKCksLi4uRWUoKSwuLi5jZSgpLC4uLkFlKCksLi4uZXQoKSwuLi5mZSgpLC4uLkhlKCksLi4uUSgpLC4uLlVlKCksLi4uaWUoKSwuLi5FKHt0YWc6ImJ1dHRvbiJ9KSwuLi5HKCksLi4ubWUoe3ZhcmlhbnQ6ImVsZXZhdGVkIn0pfSwiVkJ0biIpLGZ0PUwoKSh7bmFtZToiVkJ0biIscHJvcHM6cnQoKSxlbWl0czp7Imdyb3VwOnNlbGVjdGVkIjplPT4hMH0sc2V0dXAoZSxsKXtsZXR7YXR0cnM6bixzbG90czp0fT1sO2NvbnN0e3RoZW1lQ2xhc3NlczpvfT1qKGUpLHtib3JkZXJDbGFzc2VzOmF9PWhlKGUpLHtkZW5zaXR5Q2xhc3NlczppfT15ZShlKSx7ZGltZW5zaW9uU3R5bGVzOmd9PUdlKGUpLHtlbGV2YXRpb25DbGFzc2VzOmN9PWRlKGUpLHtsb2FkZXJDbGFzc2VzOnl9PXR0KGUpLHtsb2NhdGlvblN0eWxlczpOfT1nZShlKSx7cG9zaXRpb25DbGFzc2VzOiR9PUplKGUpLHtyb3VuZGVkQ2xhc3NlczpPfT1aKGUpLHtzaXplQ2xhc3NlczpULHNpemVTdHlsZXM6Vn09dWUoZSksdT1NZShlLGUuc3ltYm9sLCExKSxkPVhlKGUsbiksQz1yKCgpPT57dmFyIHY7cmV0dXJuIGUuYWN0aXZlIT09dm9pZCAwP2UuYWN0aXZlOmQuaXNMaW5rLnZhbHVlPyh2PWQuaXNBY3RpdmUpPT1udWxsP3ZvaWQgMDp2LnZhbHVlOnU9PW51bGw/dm9pZCAwOnUuaXNTZWxlY3RlZC52YWx1ZX0pLFA9cigoKT0+Qy52YWx1ZT9lLmFjdGl2ZUNvbG9yPz9lLmNvbG9yOmUuY29sb3IpLGs9cigoKT0+e3ZhciBmLHg7cmV0dXJue2NvbG9yOih1PT1udWxsP3ZvaWQgMDp1LmlzU2VsZWN0ZWQudmFsdWUpJiYoIWQuaXNMaW5rLnZhbHVlfHwoKGY9ZC5pc0FjdGl2ZSk9PW51bGw/dm9pZCAwOmYudmFsdWUpKXx8IXV8fCgoeD1kLmlzQWN0aXZlKT09bnVsbD92b2lkIDA6eC52YWx1ZSk/UC52YWx1ZT8/ZS5iYXNlQ29sb3I6ZS5iYXNlQ29sb3IsdmFyaWFudDplLnZhcmlhbnR9fSkse2NvbG9yQ2xhc3NlczptLGNvbG9yU3R5bGVzOkIsdmFyaWFudENsYXNzZXM6X309cGUoayksUz1yKCgpPT4odT09bnVsbD92b2lkIDA6dS5kaXNhYmxlZC52YWx1ZSl8fGUuZGlzYWJsZWQpLFU9cigoKT0+ZS52YXJpYW50PT09ImVsZXZhdGVkIiYmIShlLmRpc2FibGVkfHxlLmZsYXR8fGUuYm9yZGVyKSksUj1yKCgpPT57aWYoIShlLnZhbHVlPT09dm9pZCAwfHx0eXBlb2YgZS52YWx1ZT09InN5bWJvbCIpKXJldHVybiBPYmplY3QoZS52YWx1ZSk9PT1lLnZhbHVlP0pTT04uc3RyaW5naWZ5KGUudmFsdWUsbnVsbCwwKTplLnZhbHVlfSk7ZnVuY3Rpb24gWCh2KXt2YXIgZjtTLnZhbHVlfHxkLmlzTGluay52YWx1ZSYmKHYubWV0YUtleXx8di5jdHJsS2V5fHx2LnNoaWZ0S2V5fHx2LmJ1dHRvbiE9PTB8fG4udGFyZ2V0PT09Il9ibGFuayIpfHwoKGY9ZC5uYXZpZ2F0ZSk9PW51bGx8fGYuY2FsbChkLHYpLHU9PW51bGx8fHUudG9nZ2xlKCkpfXJldHVybiBvdChkLHU9PW51bGw/dm9pZCAwOnUuc2VsZWN0KSx6KCgpPT57Y29uc3Qgdj1kLmlzTGluay52YWx1ZT8iYSI6ZS50YWcsZj0hIShlLnByZXBlbmRJY29ufHx0LnByZXBlbmQpLHg9ISEoZS5hcHBlbmRJY29ufHx0LmFwcGVuZCksQT0hIShlLmljb24mJmUuaWNvbiE9PSEwKTtyZXR1cm4gTGUocyh2LHJlKHt0eXBlOnY9PT0iYSI/dm9pZCAwOiJidXR0b24iLGNsYXNzOlsidi1idG4iLHU9PW51bGw/dm9pZCAwOnUuc2VsZWN0ZWRDbGFzcy52YWx1ZSx7InYtYnRuLS1hY3RpdmUiOkMudmFsdWUsInYtYnRuLS1ibG9jayI6ZS5ibG9jaywidi1idG4tLWRpc2FibGVkIjpTLnZhbHVlLCJ2LWJ0bi0tZWxldmF0ZWQiOlUudmFsdWUsInYtYnRuLS1mbGF0IjplLmZsYXQsInYtYnRuLS1pY29uIjohIWUuaWNvbiwidi1idG4tLWxvYWRpbmciOmUubG9hZGluZywidi1idG4tLXJlYWRvbmx5IjplLnJlYWRvbmx5LCJ2LWJ0bi0tc2xpbSI6ZS5zbGltLCJ2LWJ0bi0tc3RhY2tlZCI6ZS5zdGFja2VkfSxvLnZhbHVlLGEudmFsdWUsbS52YWx1ZSxpLnZhbHVlLGMudmFsdWUseS52YWx1ZSwkLnZhbHVlLE8udmFsdWUsVC52YWx1ZSxfLnZhbHVlLGUuY2xhc3NdLHN0eWxlOltCLnZhbHVlLGcudmFsdWUsTi52YWx1ZSxWLnZhbHVlLGUuc3R5bGVdLCJhcmlhLWJ1c3kiOmUubG9hZGluZz8hMDp2b2lkIDAsZGlzYWJsZWQ6Uy52YWx1ZXx8dm9pZCAwLHRhYmluZGV4OmUubG9hZGluZ3x8ZS5yZWFkb25seT8tMTp2b2lkIDAsb25DbGljazpYLHZhbHVlOlIudmFsdWV9LGQubGlua1Byb3BzKSx7ZGVmYXVsdDooKT0+e3ZhciBJO3JldHVybltaZSghMCwidi1idG4iKSwhZS5pY29uJiZmJiZzKCJzcGFuIix7a2V5OiJwcmVwZW5kIixjbGFzczoidi1idG5fX3ByZXBlbmQifSxbdC5wcmVwZW5kP3MoWSx7a2V5OiJwcmVwZW5kLWRlZmF1bHRzIixkaXNhYmxlZDohZS5wcmVwZW5kSWNvbixkZWZhdWx0czp7Vkljb246e2ljb246ZS5wcmVwZW5kSWNvbn19fSx0LnByZXBlbmQpOnMoVyx7a2V5OiJwcmVwZW5kLWljb24iLGljb246ZS5wcmVwZW5kSWNvbn0sbnVsbCldKSxzKCJzcGFuIix7Y2xhc3M6InYtYnRuX19jb250ZW50IiwiZGF0YS1uby1hY3RpdmF0b3IiOiIifSxbIXQuZGVmYXVsdCYmQT9zKFcse2tleToiY29udGVudC1pY29uIixpY29uOmUuaWNvbn0sbnVsbCk6cyhZLHtrZXk6ImNvbnRlbnQtZGVmYXVsdHMiLGRpc2FibGVkOiFBLGRlZmF1bHRzOntWSWNvbjp7aWNvbjplLmljb259fX0se2RlZmF1bHQ6KCk9Pnt2YXIgTTtyZXR1cm5bKChNPXQuZGVmYXVsdCk9PW51bGw/dm9pZCAwOk0uY2FsbCh0KSk/P2UudGV4dF19fSldKSwhZS5pY29uJiZ4JiZzKCJzcGFuIix7a2V5OiJhcHBlbmQiLGNsYXNzOiJ2LWJ0bl9fYXBwZW5kIn0sW3QuYXBwZW5kP3MoWSx7a2V5OiJhcHBlbmQtZGVmYXVsdHMiLGRpc2FibGVkOiFlLmFwcGVuZEljb24sZGVmYXVsdHM6e1ZJY29uOntpY29uOmUuYXBwZW5kSWNvbn19fSx0LmFwcGVuZCk6cyhXLHtrZXk6ImFwcGVuZC1pY29uIixpY29uOmUuYXBwZW5kSWNvbn0sbnVsbCldKSwhIWUubG9hZGluZyYmcygic3BhbiIse2tleToibG9hZGVyIixjbGFzczoidi1idG5fX2xvYWRlciJ9LFsoKEk9dC5sb2FkZXIpPT1udWxsP3ZvaWQgMDpJLmNhbGwodCkpPz9zKHN0LHtjb2xvcjp0eXBlb2YgZS5sb2FkaW5nPT0iYm9vbGVhbiI/dm9pZCAwOmUubG9hZGluZyxpbmRldGVybWluYXRlOiEwLHdpZHRoOiIyIn0sbnVsbCldKV19fSksW1tEZSwhUy52YWx1ZSYmZS5yaXBwbGUsIiIse2NlbnRlcjohIWUuaWNvbn1dXSl9KSx7Z3JvdXA6dX19fSk7ZXhwb3J0e3Z0IGFzIEwsZnQgYXMgVixiZSBhcyBhLEtlIGFzIGIsZXQgYXMgYyx0dCBhcyBkLENlIGFzIGUsbWUgYXMgZixZZSBhcyBnLGZlIGFzIGgsSGUgYXMgaSxwZSBhcyBqLGdlIGFzIGssSmUgYXMgbCxydCBhcyBtLFplIGFzIG4saGUgYXMgbyxzdCBhcyBwLHllIGFzIHV9Owo="}},"time_used":53,"timings":{"blocked":25,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DAcvVGJe.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.503Z","timestamp":1785139669503,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DAcvVGJe.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"147-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 253\r\nKeep-Alive: timeout=5, max=97\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":327,"size_decoded":602,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (326)","md5":"aabcd46828be97837ff304af75bfa0bc","sha1":"2a0517b3cdb6b0e2bf72b543a88fa9fd7ffcedb2","sha256":"abfb682444a76c55ec266417e83acb8b992ba9713b30e2b1946c977f77f88386","sha512":"0cc9e95567a17d7262f2d6d3d5edb350434075d0a217ca8eb622d9018710be66f1b03110d02b3643feefbf47c7b866af1ee2bf56553c9d01b866fc2e12ada151","ssdeep":"","tlshash":"25e07d6e6fd5af7db2cf04e6e05452021a7947d8ff2b80e110e3001093400044714d2c","first_seen":"2025-10-23T03:46:52.812661Z","last_seen":"2026-07-27T11:49:48.950973Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0eyQgYXMgcyxhNyBhcyByLGE4IGFzIG8sYTAgYXMgYyxhNSBhcyBuLGYgYXMgbX1mcm9tIi4vU20ybUNmREUuanMiO2NvbnN0IHA9cyh7b3BhY2l0eTpbTnVtYmVyLFN0cmluZ10sLi4ucigpLC4uLm8oKX0sIlZDYXJkVGV4dCIpLHg9YygpKHtuYW1lOiJWQ2FyZFRleHQiLHByb3BzOnAoKSxzZXR1cChhLGUpe2xldHtzbG90czp0fT1lO3JldHVybiBuKCgpPT5tKGEudGFnLHtjbGFzczpbInYtY2FyZC10ZXh0IixhLmNsYXNzXSxzdHlsZTpbeyItLXYtY2FyZC10ZXh0LW9wYWNpdHkiOmEub3BhY2l0eX0sYS5zdHlsZV19LHQpKSx7fX19KTtleHBvcnR7eCBhcyBWfTsK"}},"time_used":72,"timings":{"blocked":46,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/exchange/flow/pay-order.svg","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.599Z","timestamp":1785139670599,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/exchange/flow/pay-order.svg HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"d67-654aa2b99cd28\"\r\nAccept-Ranges: bytes\r\nContent-Length: 3431\r\nKeep-Alive: timeout=5, max=90\r\nConnection: Keep-Alive\r\nContent-Type: image/svg+xml\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":3431,"size_decoded":3720,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"5f8b33c94ef81c87179b3a4d560e048f","sha1":"8620c4970dcfe556e12f39aade7fe7da3265dd56","sha256":"a0d9baed8f034a254eb2e2b0e56cf8338b82abe9d33e4f09dbc57b6c6bc2ae92","sha512":"241d1a9ed2f42a7f4c88746ffa6b36aefa225315a49ed9f03ac942ea35c6141a86ec6ad97a460197387efa39de6bcd1b0c965ea1a28b36750407c30fae529a01","ssdeep":"","tlshash":"3f6128a48bd0817d8014277a30bc7c28de6d18ed79b08cc89bbd6ddaa73acce45c5752","first_seen":"2025-10-23T03:46:52.75471Z","last_seen":"2026-07-27T11:49:48.953696Z","times_seen":9,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0xOS4zMzMzIDIwLjUwMTNMMjAgMjEuNjY4TDIwLjY2NjcgMjAuNTAxM0MyMS41IDE5LjE2OCAyMi41IDE4LjAwMTMgMjQgMTcuMTY4TDI1IDE2LjY2OEwyMy44MzMzIDE2LjAwMTNDMjIuNSAxNS4xNjggMjEuMzMzMyAxNC4xNjggMjAuNSAxMi42NjhMMjAgMTEuNjY4TDE5LjMzMzMgMTIuODM0NkMxOC41IDE0LjE2OCAxNy41IDE1LjMzNDYgMTYgMTYuMTY4TDE1IDE2LjY2OEwxNi4xNjY3IDE3LjMzNDZDMTcuNSAxOC4wMDEzIDE4LjY2NjcgMTkuMTY4IDE5LjMzMzMgMjAuNTAxM1oiIGZpbGw9IiNFNkU2RTYiLz4KICAgIDxwYXRoIGQ9Ik0zMCAyMS40OTgxQzMwIDIwLjk5ODEgMzAuMTY2NyAyMC42NjQ3IDMwLjUgMjAuMzMxNEMzMS41IDE5LjMzMTQgMzIgMTguMTY0NyAzMiAxNi44MzE0QzMyIDE1LjQ5ODEgMzEuNSAxNC4zMzE0IDMwLjUgMTMuMzMxNEMzMC4xNjY3IDEyLjk5ODEgMzAgMTIuNjY0NyAzMCAxMi4xNjQ3VjExLjgzMTRDMzAgOS4xNjQ3NCAyNy44MzMzIDYuODMxNDEgMjUgNi44MzE0MUgyNC42NjY3QzI0LjE2NjcgNi44MzE0MSAyMy44MzMzIDYuNjY0NzQgMjMuNSA2LjMzMTQxQzIxLjY2NjcgNC40OTgwOCAxOC4zMzMzIDQuNDk4MDggMTYuNSA2LjQ5ODA4QzE2LjE2NjcgNi44MzE0MSAxNS42NjY3IDYuOTk4MDggMTUuMzMzMyA2Ljk5ODA4SDE1QzEyLjE2NjcgNi45OTgwOCAxMCA5LjE2NDc0IDEwIDExLjk5ODFWMTIuMzMxNEMxMCAxMi42NjQ3IDkuODMzMzMgMTIuOTk4MSA5LjUgMTMuMzMxNEM4LjUgMTQuMzMxNCA4IDE1LjQ5ODEgOCAxNi44MzE0QzggMTguMTY0NyA4LjUgMTkuMzMxNCA5LjUgMjAuMzMxNEM5LjgzMzMzIDIwLjY2NDcgMTAgMjEuMTY0NyAxMCAyMS40OTgxTDQuNSAyNi45OTgxQzQgMjcuNDk4MSAzLjgzMzMzIDI3Ljk5ODEgNCAyOC42NjQ3QzQuMTY2NjcgMjkuMzMxNCA0LjY2NjY3IDI5LjY2NDcgNS4zMzMzMyAyOS44MzE0TDEwLjE2NjcgMzAuODMxNEwxMS4xNjY3IDM1LjQ5ODFDMTEuMzMzMyAzNi4xNjQ3IDExLjY2NjcgMzYuNjY0NyAxMi4zMzMzIDM2LjgzMTRIMTIuODMzM0MxMy4zMzMzIDM2LjgzMTQgMTMuNjY2NyAzNi42NjQ3IDE0IDM2LjMzMTRMMjAgMzAuMzMxNEwyNiAzNi4zMzE0QzI2LjMzMzMgMzYuNjY0NyAyNi42NjY3IDM2LjgzMTQgMjcuMTY2NyAzNi44MzE0SDI3LjY2NjdDMjguMzMzMyAzNi42NjQ3IDI4LjY2NjcgMzYuMTY0NyAyOC44MzMzIDM1LjQ5ODFMMjkuODMzMyAzMC44MzE0TDM0LjY2NjcgMjkuODMxNEMzNS4zMzMzIDI5LjY2NDcgMzUuODMzMyAyOS4zMzE0IDM2IDI4LjY2NDdDMzYuMTY2NyAyNy45OTgxIDM2IDI3LjQ5ODEgMzUuNSAyNi45OTgxTDMwIDIxLjQ5ODFaTTExLjgzMzMgMTUuNjY0N0MxMi44MzMzIDE0LjgzMTQgMTMuMzMzMyAxMy40OTgxIDEzLjMzMzMgMTIuMTY0N1YxMS44MzE0QzEzLjMzMzMgMTAuOTk4MSAxNCAxMC4xNjQ3IDE1IDEwLjE2NDdIMTUuMzMzM0MxNi42NjY3IDEwLjE2NDcgMTggOS42NjQ3NCAxOC44MzMzIDguNjY0NzRDMTkuNSA3Ljk5ODA3IDIwLjUgNy45OTgwNyAyMS4xNjY3IDguNjY0NzRDMjIuMTY2NyA5LjY2NDc0IDIzLjMzMzMgMTAuMTY0NyAyNC42NjY3IDEwLjE2NDdIMjVDMjYgMTAuMTY0NyAyNi42NjY3IDEwLjgzMTQgMjYuNjY2NyAxMS44MzE0VjEyLjE2NDdDMjYuNjY2NyAxMy40OTgxIDI3LjE2NjcgMTQuNjY0NyAyOC4xNjY3IDE1LjY2NDdDMjguNSAxNS45OTgxIDI4LjY2NjcgMTYuMzMxNCAyOC42NjY3IDE2LjgzMTRDMjguNjY2NyAxNy4zMzE0IDI4LjUgMTcuNjY0NyAyOC4xNjY3IDE3Ljk5ODFDMjcuMTY2NyAxOC45OTgxIDI2LjY2NjcgMjAuMTY0NyAyNi42NjY3IDIxLjQ5ODFWMjEuOTk4MUMyNi41IDIyLjgzMTQgMjUuODMzMyAyMy40OTgxIDI1IDIzLjQ5ODFIMjQuNjY2N0MyMy4zMzMzIDIzLjQ5ODEgMjIgMjMuOTk4MSAyMS4xNjY3IDI0Ljk5ODFDMjEgMjUuMTY0NyAyMC42NjY3IDI1LjMzMTQgMjAuMzMzMyAyNS40OTgxSDE5LjVDMTkuMzMzMyAyNS40OTgxIDE5IDI1LjMzMTQgMTguODMzMyAyNS4xNjQ3QzE3LjgzMzMgMjQuMTY0NyAxNi42NjY3IDIzLjY2NDcgMTUuMzMzMyAyMy42NjQ3SDE1QzE0LjE2NjcgMjMuNjY0NyAxMy41IDIyLjk5ODEgMTMuMzMzMyAyMi4xNjQ3VjIxLjY2NDdDMTMuMzMzMyAyMC4zMzE0IDEyLjgzMzMgMTguOTk4MSAxMS44MzMzIDE4LjE2NDdDMTEuNSAxNy44MzE0IDExLjMzMzMgMTcuNDk4MSAxMS4zMzMzIDE2Ljk5ODFDMTEuMzMzMyAxNi40OTgxIDExLjUgMTUuOTk4MSAxMS44MzMzIDE1LjY2NDdaTTEzLjgzMzMgMzEuODMxNEwxMy4zMzMzIDI4Ljk5ODFDMTMuMTY2NyAyOC4zMzE0IDEyLjY2NjcgMjcuODMxNCAxMiAyNy42NjQ3TDkuMTY2NjcgMjcuMTY0N0wxMS4xNjY3IDI0Ljk5ODFMMTEuMzMzMyAyNS4xNjQ3TDExLjgzMzMgMjUuNjY0N0MxMiAyNS42NjQ3IDEyIDI1LjgzMTQgMTIuMTY2NyAyNS44MzE0QzEyLjMzMzMgMjUuOTk4MSAxMi41IDI1Ljk5ODEgMTIuNjY2NyAyNi4xNjQ3QzEyLjgzMzMgMjYuMTY0NyAxMi44MzMzIDI2LjMzMTQgMTMgMjYuMzMxNEMxMy4xNjY3IDI2LjQ5ODEgMTMuNSAyNi40OTgxIDEzLjY2NjcgMjYuNDk4MUMxMy44MzMzIDI2LjQ5ODEgMTMuODMzMyAyNi40OTgxIDE0IDI2LjY2NDdDMTQuMzMzMyAyNi42NjQ3IDE0LjY2NjcgMjYuODMxNCAxNSAyNi44MzE0SDE1LjMzMzNDMTUuODMzMyAyNi44MzE0IDE2LjE2NjcgMjYuOTk4MSAxNi41IDI3LjMzMTRMMTcgMjcuODMxNEwxNy4xNjY3IDI3Ljk5ODFDMTcuMzMzMyAyNy45OTgxIDE3LjMzMzMgMjguMTY0NyAxNy41IDI4LjE2NDdMMTMuODMzMyAzMS44MzE0Wk0yOC4xNjY3IDI3LjY2NDdDMjcuNSAyNy44MzE0IDI3IDI4LjMzMTQgMjYuODMzMyAyOC45OTgxTDI2LjMzMzMgMzEuODMxNEwyMi41IDI4LjE2NDdDMjIuODMzMyAyNy45OTgxIDIzLjE2NjcgMjcuNjY0NyAyMy41IDI3LjMzMTRDMjMuODMzMyAyNi45OTgxIDI0LjE2NjcgMjYuODMxNCAyNC42NjY3IDI2LjgzMTRIMjVDMjUuMzMzMyAyNi44MzE0IDI1LjY2NjcgMjYuODMxNCAyNiAyNi42NjQ3QzI2LjE2NjcgMjYuNjY0NyAyNi4xNjY3IDI2LjY2NDcgMjYuMzMzMyAyNi40OTgxQzI2LjUgMjYuNDk4MSAyNi44MzMzIDI2LjMzMTQgMjcgMjYuMzMxNEMyNy4xNjY3IDI2LjMzMTQgMjcuMTY2NyAyNi4xNjQ3IDI3LjMzMzMgMjYuMTY0N0MyNy41IDI1Ljk5ODEgMjcuNjY2NyAyNS45OTgxIDI3LjgzMzMgMjUuODMxNEMyOCAyNS44MzE0IDI4IDI1LjY2NDcgMjguMTY2NyAyNS42NjQ3TDI4LjY2NjcgMjUuMTY0N0wyOC44MzMzIDI0Ljk5ODFMMzEgMjcuMTY0N0wyOC4xNjY3IDI3LjY2NDdaIiBmaWxsPSIjRTZFNkU2Ii8+Cjwvc3ZnPgo="}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DVt5MIXn.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.535Z","timestamp":1785139669535,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DVt5MIXn.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3095e-654aa2b830cfa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 34293\r\nKeep-Alive: timeout=5, max=95\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":199006,"size_decoded":34646,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text","md5":"369e07156734096ceabcb7bef893023a","sha1":"feee2b67fd23edaedb6ff0fa1c99d9f7de125f28","sha256":"6acf0aac36c7eef60005dece9758f8c49a0e0c8051cb7f603c07d0711b169ed8","sha512":"39cd161d6087998c742b08b2aae4d4427cf2a8b46f4ed6b71ce3ff6fd7a0e23c8726f66c22a856bbd8a9a750bacf95b4f69f2c282ae2c2f3dc970e6f2e879d33","ssdeep":"1536:6RQkjSUKNJZC8UfW6EcMW5JkSoYMcFStoqKER2eTiR2yCjX0+HZ6+nLUAFq3Zbdx:HrZFQEcMy0VXKER2gg2/s","tlshash":"21148206e1f61436a263b0384e1f485a7a35878f9da5bd983f9c49040f0d43da6f5bee","first_seen":"2026-07-27T05:24:57.753901Z","last_seen":"2026-07-27T11:49:48.952483Z","times_seen":5,"resource_available":true,"data":"aW1wb3J0IHsKICBWIGFzIFR0LAogIF8gYXMgZnQsCiAgZCBhcyBaLAogIHMgYXMgX3QsCiAgYiBhcyBmZSwKICBpIGFzIFNlLAogIHIgYXMgUGUsCiAgQSBhcyBodCwKICBlIGFzIE50LAogIHAgYXMgSiwKICBjIGFzIEssCiAgbyBhcyBxZSwKICBmIGFzIEtlLAp9IGZyb20gIi4vRF9pdTYyN0ouanMiOwppbXBvcnQgewogICQgYXMgWWUsCiAgYTcgYXMgeHQsCiAgYTAgYXMgR2UsCiAgciBhcyBTLAogIGE1IGFzIEplLAogIGYgYXMgbywKICBhbCBhcyBaZSwKICBkIGFzIHhlLAogIGkgYXMgemUsCiAgYW0gYXMgamUsCiAgcyBhcyBxLAogIGEgYXMgbiwKICBjIGFzIHAsCiAgcCBhcyBXLAogIHQgYXMgciwKICBnIGFzIFIsCiAgYiBhcyBlLAogIG4gYXMgc2UsCiAgUSBhcyBjdCwKICB3IGFzIEEsCiAgYV8gYXMgVXQsCiAgYUwgYXMgTHQsCiAgeSBhcyBGdCwKICBIIGFzIGhlLAogIHUgYXMgdCwKICBGIGFzIFEsCiAgaiBhcyBWZSwKICBlIGFzIGNlLAogIGggYXMgeiwKICBhMiBhcyBEZSwKICBJIGFzIEJ0LAogIFggYXMgcXQsCiAgYXggYXMganQsCiAgYTggYXMgTXQsCiAgYTkgYXMgWXQsCiAgYTEgYXMgZXQsCiAgYWEgYXMgR3QsCiAgYTQgYXMgenQsCiAgYWkgYXMgV3QsCiAgYWMgYXMgYnQsCiAgQSBhcyBXZSwKICBZIGFzIHR0LAogIG8gYXMgTGUsCiAgdiBhcyB1ZSwKICBhJCBhcyBIdCwKICBiMCBhcyBkdCwKICBtIGFzIHBlLAogIGIxIGFzIEt0LAogIF8gYXMgYXQsCiAgeCBhcyBzdCwKICBxIGFzIGt0LAogIGsgYXMgd3QsCiAgYjIgYXMgUXQsCiAgYTMgYXMgWHQsCiAgYW4gYXMgSnQsCiAgYjMgYXMgJHQsCiAgYjQgYXMgWnQsCiAgYjUgYXMgZWEsCiAgYjYgYXMgdGEsCiAgYUMgYXMgYWEsCiAgYjcgYXMgc2EsCiAgYjggYXMgbGEsCiAgYXkgYXMgQ3QsCiAgYjkgYXMgdXQsCiAgYWcgYXMgbmEsCiAgYmEgYXMgcmEsCiAgYmIgYXMgb2EsCiAgYmMgYXMgbXQsCiAgYmQgYXMgaWEsCiAgYmUgYXMgY2EsCiAgYmYgYXMgcHQsCn0gZnJvbSAiLi9TbTJtQ2ZERS5qcyI7CmltcG9ydCB7IGkgYXMgZGEgfSBmcm9tICIuL0NhUmhMZHVGLmpzIjsKaW1wb3J0IHsKICBhIGFzIHVhLAogIGMgYXMgbWEsCiAgViBhcyBRZSwKICBiIGFzIFN0LAogIGQgYXMgRHQsCiAgZSBhcyBNZSwKICBmIGFzIHBhLAogIGcgYXMgeWEsCiAgaCBhcyB2YSwKICBpIGFzIGdhLAp9IGZyb20gIi4vQ2hFckpuMDcuanMiOwppbXBvcnQgeyBmIGFzIEl0IH0gZnJvbSAiLi9DMTBkYlgzay5qcyI7CmltcG9ydCB7IF8gYXMgRXQgfSBmcm9tICIuL2JOZXB1ZHAxLmpzIjsKaW1wb3J0IHsgdSBhcyB2ZSB9IGZyb20gIi4vRDVqS2F4b0IuanMiOwppbXBvcnQgewogIGcgYXMgQXQsCiAgYSBhcyBmYSwKICBoIGFzIF9hLAogIGkgYXMgaGEsCiAgZiBhcyB4YSwKICBqIGFzIGJhLAogIHUgYXMga2EsCiAgayBhcyB3YSwKICBsIGFzICRhLAogIG4gYXMgQ2EsCiAgViBhcyB5ZSwKfSBmcm9tICIuL1pmTlppeUNtLmpzIjsKaW1wb3J0IHsgViBhcyBfZSB9IGZyb20gIi4vQ0Fsa1didV8uanMiOwppbXBvcnQgeyBiIGFzIFNhLCBhIGFzIGx0LCBtIGFzIERhLCBWIGFzIHl0IH0gZnJvbSAiLi9XQkRoZm9KNy5qcyI7CmltcG9ydCB7IFYgYXMgSWEgfSBmcm9tICIuL2U3cjVES3g5LmpzIjsKaW1wb3J0IHsgViBhcyBJZSB9IGZyb20gIi4vdHFncVVGQWEuanMiOwppbXBvcnQgeyBWIGFzIEVhIH0gZnJvbSAiLi9CXzJGa1A4Uy5qcyI7CmltcG9ydCB7IFYgYXMgQWEsIGMgYXMgUmEgfSBmcm9tICIuL0JJcDUtM0VLLmpzIjsKaW1wb3J0IHsgXyBhcyBudCwgdSBhcyBPYSB9IGZyb20gIi4vQmhGbkFfQVAuanMiOwppbXBvcnQgeyBWIGFzIGxlLCBhIGFzIEZlIH0gZnJvbSAiLi9Dazh6Zzl5NC5qcyI7CmltcG9ydCB7IG0gYXMgUGEsIGEgYXMgVmEsIHUgYXMgVGEsIGIgYXMgTmEgfSBmcm9tICIuL0I4VHhUeWFrLmpzIjsKaW1wb3J0IHsgYiBhcyBVYSwgYyBhcyBMYSwgViBhcyB2dCB9IGZyb20gIi4vQ011VVRsUzIuanMiOwppbXBvcnQgeyBfIGFzIFJ0IH0gZnJvbSAiLi8zazNGakdHVS5qcyI7CmltcG9ydCB7IHMgYXMgWGUgfSBmcm9tICIuL0NwV21lUGRGLmpzIjsKY29uc3QgRmEgPSBZZSh7IC4uLnh0KCksIC4uLnVhKCkgfSwgIlZGb3JtIiksCiAgQmEgPSBHZSgpKHsKICAgIG5hbWU6ICJWRm9ybSIsCiAgICBwcm9wczogRmEoKSwKICAgIGVtaXRzOiB7ICJ1cGRhdGU6bW9kZWxWYWx1ZSI6IChhKSA9PiAhMCwgc3VibWl0OiAoYSkgPT4gITAgfSwKICAgIHNldHVwKGEsIGYpIHsKICAgICAgbGV0IHsgc2xvdHM6IGwsIGVtaXQ6IG0gfSA9IGY7CiAgICAgIGNvbnN0IGQgPSBtYShhKSwKICAgICAgICBzID0gUygpOwogICAgICBmdW5jdGlvbiBjKHYpIHsKICAgICAgICB2LnByZXZlbnREZWZhdWx0KCksIGQucmVzZXQoKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBfKHYpIHsKICAgICAgICBjb25zdCB5ID0gdiwKICAgICAgICAgIGkgPSBkLnZhbGlkYXRlKCk7CiAgICAgICAgKHkudGhlbiA9IGkudGhlbi5iaW5kKGkpKSwKICAgICAgICAgICh5LmNhdGNoID0gaS5jYXRjaC5iaW5kKGkpKSwKICAgICAgICAgICh5LmZpbmFsbHkgPSBpLmZpbmFsbHkuYmluZChpKSksCiAgICAgICAgICBtKCJzdWJtaXQiLCB5KSwKICAgICAgICAgIHkuZGVmYXVsdFByZXZlbnRlZCB8fAogICAgICAgICAgICBpLnRoZW4oKEMpID0+IHsKICAgICAgICAgICAgICB2YXIgYjsKICAgICAgICAgICAgICBsZXQgeyB2YWxpZDogUCB9ID0gQzsKICAgICAgICAgICAgICBQICYmICgoYiA9IHMudmFsdWUpID09IG51bGwgfHwgYi5zdWJtaXQoKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgeS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB9CiAgICAgIHJldHVybiAoCiAgICAgICAgSmUoKCkgPT4gewogICAgICAgICAgdmFyIHY7CiAgICAgICAgICByZXR1cm4gbygKICAgICAgICAgICAgImZvcm0iLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgcmVmOiBzLAogICAgICAgICAgICAgIGNsYXNzOiBbInYtZm9ybSIsIGEuY2xhc3NdLAogICAgICAgICAgICAgIHN0eWxlOiBhLnN0eWxlLAogICAgICAgICAgICAgIG5vdmFsaWRhdGU6ICEwLAogICAgICAgICAgICAgIG9uUmVzZXQ6IGMsCiAgICAgICAgICAgICAgb25TdWJtaXQ6IF8sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFsodiA9IGwuZGVmYXVsdCkgPT0gbnVsbCA/IHZvaWQgMCA6IHYuY2FsbChsLCBkKV0KICAgICAgICAgICk7CiAgICAgICAgfSksCiAgICAgICAgSXQoZCwgcykKICAgICAgKTsKICAgIH0sCiAgfSksCiAgcWEgPSB7CiAgICBrZXk6IDAsCiAgICBjbGFzczogInRleHQtZ3JheS03MDAgbXQtNCBtYi0wLjUgdGV4dC1zbS1tZWRpdW0gZmxleCBpdGVtcy1jZW50ZXIiLAogIH0sCiAgamEgPSB7IGtleTogMCwgY2xhc3M6ICJ0ZXh0LWVycm9yLTYwMCBweC0xIiB9LAogIE1hID0gewogICAga2V5OiAxLAogICAgY2xhc3M6CiAgICAgICJoLTExIGZsZXggdGV4dC1tZC1yZWd1bGFyIGl0ZW1zLWNlbnRlciBiZy13aGl0ZSBqdXN0aWZ5LWJldHdlZW4gcGwtMy41IHNoYWRvdy14cyB0ZXh0LWdyYXktOTAwIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1vcGFjaXR5LTEwMCBib3JkZXItZ3JheS0zMDAiLAogIH0sCiAgWWEgPSB7IGNsYXNzOiAidGV4dC1tZC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwIiB9LAogIEdhID0geyBrZXk6IDIsIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LXNtLXJlZ3VsYXIgbXQtMS41IiB9LAogIFRlID0gewogICAgX19uYW1lOiAiQ3VzdG9tSW5wdXQiLAogICAgcHJvcHM6IFplKAogICAgICB7CiAgICAgICAgbmFtZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgbGFiZWw6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICAgIGRlczogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgdmFsaWRhdGlvbjogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgcGxhY2Vob2xkZXI6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICAgIGJlRXJyb3I6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LAogICAgICAgIGhhc0J0bjogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LAogICAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgICB0ZXh0Q29weTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgaW5wdXRCZzogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICByZXF1ZXN0UGFyYW1zOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgICByZXF1ZXN0UGFyYW1zTW9kaWZpZXJzOiB7fSwKICAgICAgfQogICAgKSwKICAgIGVtaXRzOiBbInVwZGF0ZTpyZXF1ZXN0UGFyYW1zIl0sCiAgICBzZXR1cChhLCB7IGV4cG9zZTogZiB9KSB7CiAgICAgIGNvbnN0IHsgJGlzRGVza3RvcDogbCB9ID0geGUoKSwKICAgICAgICB7IHQ6IG0gfSA9IHplKCksCiAgICAgICAgZCA9IGplKGEsICJyZXF1ZXN0UGFyYW1zIiksCiAgICAgICAgcyA9IGEsCiAgICAgICAgYyA9IFMoe30pLAogICAgICAgIF8gPSBTKHt9KSwKICAgICAgICB2ID0gUyh7fSksCiAgICAgICAgeSA9IFMoITEpLAogICAgICAgIGkgPSBTKCIiKSwKICAgICAgICBDID0gUyhudWxsKSwKICAgICAgICBQID0gUyhudWxsKSwKICAgICAgICBiID0gKE4pID0+IHsKICAgICAgICAgIE4ucHJldmVudERlZmF1bHQoKTsKICAgICAgICB9LAogICAgICAgIE0gPSAoTikgPT4gewogICAgICAgICAgY29uc3QgTyA9IE4sCiAgICAgICAgICAgIGcgPSBsLnZhbHVlID8gNDAgOiAyNSwKICAgICAgICAgICAgRCA9IGwudmFsdWUgPyAxNSA6IDg7CiAgICAgICAgICBpZiAoTy5sZW5ndGggPiBnKSB7CiAgICAgICAgICAgIGNvbnN0IGsgPSBPLnNsaWNlKDAsIEQpLAogICAgICAgICAgICAgIHggPSBPLnNsaWNlKC1EKTsKICAgICAgICAgICAgcmV0dXJuIGAke2t9Li4uLi4ke3h9YDsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBPOwogICAgICAgIH0sCiAgICAgICAgJCA9IHsKICAgICAgICAgIHJlcXVpcmVkOiAoTiwgTykgPT4gewogICAgICAgICAgICBpZiAoXy52YWx1ZVtPXSkKICAgICAgICAgICAgICByZXR1cm4gTgogICAgICAgICAgICAgICAgPyAoKGMudmFsdWVbT10gPSB7IHRleHQ6ICIiIH0pLCAhMCkKICAgICAgICAgICAgICAgIDogKChjLnZhbHVlW09dID0geyB0ZXh0OiAicmVxdWlyZWQiLCBjb2xvcjogInRleHQtcmVkLTUwMCIgfSksCiAgICAgICAgICAgICAgICAgICExKTsKICAgICAgICAgIH0sCiAgICAgICAgICBlbWFpbDogKE4sIE8pID0+IHsKICAgICAgICAgICAgY29uc3QgZyA9IE4udHJpbSgpOwogICAgICAgICAgICByZXR1cm4gZGEoZykKICAgICAgICAgICAgICA/ICgoYy52YWx1ZVtPXSA9IHsgdGV4dDogIiIgfSksICEwKQogICAgICAgICAgICAgIDogKChjLnZhbHVlW09dID0geyB0ZXh0OiAiaW52YWxpZEVtYWlsIiwgY29sb3I6ICJ0ZXh0LXJlZC01MDAiIH0pLAogICAgICAgICAgICAgICAgITEpOwogICAgICAgICAgfSwKICAgICAgICAgIHBob25lOiAoTiwgTykgPT4gewogICAgICAgICAgICBjb25zdCBkaWdpdHMgPSBOLnJlcGxhY2UoL1xEL2csICcnKTsKCiAgICAgICAgICAgIGlmIChkaWdpdHMubGVuZ3RoIDwgMTApIHsKICAgICAgICAgICAgICByZXR1cm4gKGMudmFsdWVbT10gPSB7IHRleHQ6ICJwaG9uZSIsIGNvbG9yOiAidGV4dC1yZWQtNTAwIiB9KSwgITE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnN0IGZvcmJpZGRlblByZWZpeGVzID0gWycxJywgJzM5JywgJzM4JywgJzQ5JywgJzQ0JywgJzY1JywgJzgxJywgJzgyJywgJzk3MicsICc5NzEnXTsKCiAgICAgICAgICAgIGZvciAoY29uc3QgcHJlZml4IG9mIGZvcmJpZGRlblByZWZpeGVzKSB7CiAgICAgICAgICAgICAgaWYgKGRpZ2l0cy5pbmRleE9mKHByZWZpeCkgPT09IDApIHsKICAgICAgICAgICAgICAgIHJldHVybiAoYy52YWx1ZVtPXSA9IHsgdGV4dDogInBob25lIiwgY29sb3I6ICJ0ZXh0LXJlZC01MDAiIH0pLCAhMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAoYy52YWx1ZVtPXSA9IHsgdGV4dDogIiIgfSksICEwOwogICAgICAgICAgfSwKICAgICAgICAgIG1pbjogKE4sIE8pID0+IHsKICAgICAgICAgICAgaWYgKE4ubGVuZ3RoIDwgMTAgfHwgIS9eXGQrJC8udGVzdChOKSkgewogICAgICAgICAgICAgIHJldHVybiAoYy52YWx1ZVtPXSA9IHsgdGV4dDogIm1pbiIsIGNvbG9yOiAidGV4dC1yZWQtNTAwIiB9KSwgITE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIChjLnZhbHVlW09dID0geyB0ZXh0OiAiIiB9KSwgITA7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBVID0gcSgoKSA9PiB7CiAgICAgICAgICBjb25zdCBOID0gcy52YWxpZGF0aW9uLAogICAgICAgICAgICBPID0gcy5uYW1lOwogICAgICAgICAgcmV0dXJuICFOIHx8ICFfLnZhbHVlW09dCiAgICAgICAgICAgID8gW10KICAgICAgICAgICAgOiBOLnNwbGl0KCJ8IikubWFwKAogICAgICAgICAgICAgICAgKGcpID0+ICgKICAgICAgICAgICAgICAgICAgKGcgPSBnLnRyaW0oKSksCiAgICAgICAgICAgICAgICAgIHR5cGVvZiAkW2ddICE9ICJmdW5jdGlvbiIKICAgICAgICAgICAgICAgICAgICA/ICgpID0+IGAke2d9IHZhbGlkYXRpb24gcnVsZSBpcyBub3QgZGVmaW5lZC5gCiAgICAgICAgICAgICAgICAgICAgOiAoRCkgPT4gJFtnXShELCBPKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICk7CiAgICAgICAgfSksCiAgICAgICAgaCA9IChOLCBPKSA9PiB7CiAgICAgICAgICAoXy52YWx1ZVtOXSA9ICEwKSwgKHYudmFsdWVbTl0gPSBPKTsKICAgICAgICB9LAogICAgICAgIEUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICBpZiAobmF2aWdhdG9yLmNsaXBib2FyZCkKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChzLnRleHRDb3B5KSwKICAgICAgICAgICAgICAgICh5LnZhbHVlID0gITApLAogICAgICAgICAgICAgICAgKGkudmFsdWUgPSBtKCJ0b2FzdC5jb3B5IikpOwogICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgfTsKICAgICAgcmV0dXJuICgKICAgICAgICBmKHsKICAgICAgICAgIGZvY3VzSW5wdXQ6ICgpID0+IHsKICAgICAgICAgICAgUC52YWx1ZS5mb2N1cygpOwogICAgICAgICAgfSwKICAgICAgICAgIHZhbGlkYXRlSW5wdXQ6IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgaWYgKChhd2FpdCBoKHMubmFtZSwgITEpLCBDLnZhbHVlKSkKICAgICAgICAgICAgICByZXR1cm4gKGF3YWl0IEMudmFsdWUudmFsaWRhdGUoKSkudmFsaWQ7CiAgICAgICAgICB9LAogICAgICAgIH0pLAogICAgICAgIChOLCBPKSA9PiB7CiAgICAgICAgICB2YXIgRCwgaywgeCwgWTsKICAgICAgICAgIGNvbnN0IGcgPSBmdDsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIG4oKSwKICAgICAgICAgICAgcCgKICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgcy5sYWJlbAogICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgcWEsIFsKICAgICAgICAgICAgICAgICAgICAgIFcocihzLmxhYmVsKSArICIgIiwgMSksCiAgICAgICAgICAgICAgICAgICAgICAoRCA9IHMudmFsaWRhdGlvbikgIT0gbnVsbCAmJiBELmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksIHAoImRpdiIsIGphLCAiICogIikpCiAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgICA6IFIoIiIsICEwKSwKICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHNlKFsKICAgICAgICAgICAgICAgICAgICAgIHsgZmxleDogYS5oYXNCdG4gfSwKICAgICAgICAgICAgICAgICAgICAgIHsgImdhcC0xLjUiOiB2LnZhbHVlW3MubmFtZV0gfSwKICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHNlKFsKICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9yZGVyLW9wYWNpdHktMjAgLW14LTEuNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdi52YWx1ZVtzLm5hbWVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKChrID0gYy52YWx1ZVtzLm5hbWVdKSAhPSBudWxsICYmIGsudGV4dCkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLmJlRXJyb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJib3JkZXItZXJyb3ItMzAwIGJvcmRlci00IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogImJvcmRlci00IGJvcmRlci1wcmltYXJ5LTMwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiYm9yZGVyLW9wYWNpdHktMCBib3JkZXItNCBib3JkZXItd2hpdGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5oYXNCdG4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiZmxleC1ncm93IHJvdW5kZWQtbC1bMTJweF0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogInJvdW5kZWQtWzEycHhdIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICBzLmRpc2FibGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHNlKFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLTExIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3BhY2UtYmV0d2VlbiBweC0zLjUgYmctZ3JheS01MCBzaGFkb3cteHMgdGV4dC1ncmF5LTUwMCBib3JkZXIgYm9yZGVyLW9wYWNpdHktMTAwIGJvcmRlci1ncmF5LTMwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmhhc0J0biA/ICJyb3VuZGVkLWwtbGciIDogInJvdW5kZWQtbGciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVyhyKE0ocy52YWx1ZSkpICsgIiAiLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdChOLiRzbG90cywgImRpc2FibGVkSWNvbiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogcy50ZXh0Q29weQogICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAoImRpdiIsIE1hLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFcocihNKHMudGV4dENvcHkpKSArICIgIiwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjdXJzb3ItcG9pbnRlciBib3JkZXItbCBib3JkZXItb3BhY2l0eS0xMDAgYm9yZGVyLWdyYXktMzAwIHB4LTQgaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPWzNdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChPWzNdID0gZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogIm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGNvbnRlbnRfY29weSAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcihOLiR0KCJleGNoYW5nZS5wYXlPcmRlci5jb3B5IikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBzZShbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC0xMSBib3JkZXItb3BhY2l0eS0xMDAgYmctd2hpdGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHggPSBjLnZhbHVlW3MubmFtZV0pICE9IG51bGwgJiYgeC50ZXh0KSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmJlRXJyb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJib3JkZXIgYm9yZGVyLWVycm9yLTMwMCBzaGFkb3cteHMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2LnZhbHVlW3MubmFtZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJib3JkZXIgYm9yZGVyLXByaW1hcnktMzAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogImJvcmRlciBib3JkZXItZ3JheS0zMDAgc2hhZG93LXhzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5pbnB1dEJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmhhc0J0biA/ICJyb3VuZGVkLWwtbGciIDogInJvdW5kZWQtbGciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2tleTogImZvcm0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IEMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBzZShhLmhhc0J0biA/ICJmbGV4IiA6ICIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBIOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9rZXk6ICJpbnB1dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsVmFsdWU6IGQudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOm1vZGVsVmFsdWUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1swXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE9bMF0gPSAoWCkgPT4gKGQudmFsdWUgPSBYKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogInBsYWluIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGlkZS1kZXRhaWxzIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlOiAib2ZmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW5zaXR5OiAiY29tcGFjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJoLTExIHB4LTMuNSB0ZXh0LWdyYXktOTAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcy5wbGFjZWhvbGRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlczogVS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleWRvd246IFV0KEx0KGIsIFsicHJldmVudCJdKSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6Zm9jdXNlZCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPWzFdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT1sxXSA9IChYKSA9PiBoKHMubmFtZSwgWCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdCh7IF86IDIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChIID0gYy52YWx1ZVtzLm5hbWVdKSAhPSBudWxsICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSC50ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiYXBwZW5kIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbjogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKGhlLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAiZXJyb3ItNTAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogIm1kaS1pbmZvcm1hdGlvbi1vdXRsaW5lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZvaWQgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kZWxWYWx1ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnVsZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbktleWRvd24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImNsYXNzIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICAgICAgKSwKCiAgICAgICAgICAgICAgICAgICAgYS5oYXNCdG4gPyBjdChOLiRzbG90cywgImJ0biIsIHsga2V5OiAwIH0pIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgKFkgPSBjLnZhbHVlW3MubmFtZV0pICE9IG51bGwgJiYgWS50ZXh0ICYmICFzLmRpc2FibGVkCiAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHNlKFsKICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC1zbS1tZWRpdW0gbXgtMS41IG10LTAuNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYy52YWx1ZVtzLm5hbWVdLmNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICByKAogICAgICAgICAgICAgICAgICAgICAgICBOLiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgIGBleGNoYW5nZS53YWxsZXRJbmZvLnZhbGlkYXRpb25Nc2cuJHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudmFsdWVbcy5uYW1lXS50ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgfWAKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICA6IHMuZGVzCiAgICAgICAgICAgICAgICAgID8gKG4oKSwgcCgiZGl2IiwgR2EsIHIocy5kZXMpLCAxKSkKICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICBnLAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHkudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOmVycm9yIjogT1syXSB8fCAoT1syXSA9IChIKSA9PiAoeS52YWx1ZSA9IEgpKSwKICAgICAgICAgICAgICAgICAgICBtb2RlOiB0KFR0KS5TVUNDRVNTLAogICAgICAgICAgICAgICAgICAgICJtZXNzYWdlLXRleHQiOiBpLnZhbHVlLAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICBbImVycm9yIiwgIm1vZGUiLCAibWVzc2FnZS10ZXh0Il0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICA2NAogICAgICAgICAgICApCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSwKICB6YSA9IHsgY2xhc3M6ICJtYXgtdy1bOTAwcHhdIG14LWF1dG8gaGlkZGVuIGxnOmJsb2NrIG1iLTEyIG10LTgiIH0sCiAgV2EgPSB7IGtleTogMCwgY2xhc3M6ICJmbGV4IHJlbGF0aXZlIiB9LAogIEhhID0geyBjbGFzczogIm1iLTMgZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNlbnRlciBhbGlnbi1jZW50ZXIiIH0sCiAgS2EgPSB7IGNsYXNzOiAiZmxleCB3LWZ1bGwgcHktNSBweC0yOCBhYnNvbHV0ZSB6LTEwIGxlZnQtMCB0b3AtMyIgfSwKICBRYSA9IHsga2V5OiAwLCBjbGFzczogImQtbWQtbm9uZSBteC1hdXRvIGZsZXgganVzdGlmeS1jZW50ZXIgbXQtNCIgfSwKICBYYSA9IHsgY2xhc3M6ICJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWNlbnRlciIgfSwKICBKYSA9IHsgY2xhc3M6ICJ0ZXh0LXNtLW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTQiIH0sCiAgWmEgPSB7IGNsYXNzOiAiZmxleCIgfSwKICBlcyA9IHsgY2xhc3M6ICJ0ZXh0LWNlbnRlciBtYi1sZy02IG1iLTAiIH0sCiAgdHMgPSB7IGNsYXNzOiAidGV4dC1zbS1tZWRpdW0gdGV4dC1zZWNvbmRhcnktNDAwIiB9LAogIGFzID0geyBjbGFzczogInRleHQtc20tbWVkaXVtIHRleHQtZ3JheS00MDAiIH0sCiAgc3MgPSB7CiAgICBfX25hbWU6ICJGbG93IiwKICAgIHNldHVwKGEpIHsKICAgICAgY29uc3QgZiA9IHsKICAgICAgICAgIFtaLkRJUkVDVElPTl06IHsKICAgICAgICAgICAgdmFsdWU6IDAsCiAgICAgICAgICAgIGJ1ZmZlcjogMSwKICAgICAgICAgICAgdGl0bGU6ICJFeGNoYW5nZSBJbmZvIiwKICAgICAgICAgICAgcHJpb3JpdHk6IDAsCiAgICAgICAgICB9LAogICAgICAgICAgW1ouV0FMTEVUX0lORk9dOiB7CiAgICAgICAgICAgIHZhbHVlOiAxLAogICAgICAgICAgICBidWZmZXI6IDIsCiAgICAgICAgICAgIHRpdGxlOiAiV2FsbGV0IEluZm8iLAogICAgICAgICAgICBwcmlvcml0eTogMSwKICAgICAgICAgIH0sCiAgICAgICAgICBbWi5SRVZJRVdfT1JERVJdOiB7CiAgICAgICAgICAgIHZhbHVlOiAyLAogICAgICAgICAgICBidWZmZXI6IDMsCiAgICAgICAgICAgIHRpdGxlOiAiUmV2aWV3IE9yZGVyIiwKICAgICAgICAgICAgcHJpb3JpdHk6IDIsCiAgICAgICAgICB9LAogICAgICAgICAgW1ouUEFZX09SREVSXTogewogICAgICAgICAgICB2YWx1ZTogMywKICAgICAgICAgICAgYnVmZmVyOiA0LAogICAgICAgICAgICB0aXRsZTogIlBheSBPcmRlciIsCiAgICAgICAgICAgIHByaW9yaXR5OiAzLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGwgPSBTKGYuRElSRUNUSU9OKSwKICAgICAgICBtID0gdmUoKSwKICAgICAgICBkID0gcSgoKSA9PiBtLmN1cnJlbnREaXJlY3RTdGVwKTsKICAgICAgVmUoZCwgKGMpID0+IHsKICAgICAgICBsLnZhbHVlID0gZltjXTsKICAgICAgfSk7CiAgICAgIGNvbnN0IHMgPSAoYywgXykgPT4gewogICAgICAgIGlmIChsLnZhbHVlKQogICAgICAgICAgcmV0dXJuIF8gPCArbC52YWx1ZS5wcmlvcml0eQogICAgICAgICAgICA/IGBwYXNzZWQtJHtjfWAKICAgICAgICAgICAgOiArbC52YWx1ZS5wcmlvcml0eSA9PT0gXwogICAgICAgICAgICA/IGBhY3RpdmUtJHtjfWAKICAgICAgICAgICAgOiBjOwogICAgICB9OwogICAgICByZXR1cm4gKGMsIF8pID0+IHsKICAgICAgICBjb25zdCB2ID0gRXQ7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIG4oKSwKICAgICAgICAgIHAoCiAgICAgICAgICAgIFEsCiAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICBlKCJkaXYiLCB6YSwgWwogICAgICAgICAgICAgICAgbC52YWx1ZQogICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgV2EsIFsKICAgICAgICAgICAgICAgICAgICAgIChuKCEwKSwKICAgICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNlKAogICAgICAgICAgICAgICAgICAgICAgICAgIHQoWiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHksIGksIEMpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogQywgY2xhc3M6ICJ3LTEvNCBmbGV4IGp1c3RpZnktY2VudGVyIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgSGEsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6IGBleGNoYW5nZS9mbG93LyR7cyh5LCBDKX0uc3ZnYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICJpY29uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm1iLTIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInNyYyJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogc2UoWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQtc20tbWVkaXVtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMgPD0gbC52YWx1ZS5wcmlvcml0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJ0ZXh0LWdyYXktNzAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJ0ZXh0LWdyYXktMzAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcihjLiR0KGBleGNoYW5nZS4ke2ZbeV0udGl0bGV9YCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgS2EsIFsKICAgICAgICAgICAgICAgICAgICAgICAgKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2UoMywgKHksIGkpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInctMS8zIG14LTEgZmxleCBqdXN0aWZ5LWNlbnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6IGBleGNoYW5nZS9mbG93LyR7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA8PSBsLnZhbHVlLnByaW9yaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJhY3RpdmUtYXJyb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJhcnJvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfS5zdmdgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICJpY29uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJtYi0yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICA2NAogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgICA6IFIoIiIsICEwKSwKICAgICAgICAgICAgICAgIGwudmFsdWUKICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgIHooCiAgICAgICAgICAgICAgICAgICAgICBBdCwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAxLAogICAgICAgICAgICAgICAgICAgICAgICAibW9kZWwtdmFsdWUiOiBsLnZhbHVlLnByaW9yaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAiYmctY29sb3IiOiAiZ3JheS01MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAiYnVmZmVyLWNvbG9yIjogIiNFMDc5MEIiLAogICAgICAgICAgICAgICAgICAgICAgICAiYnVmZmVyLW9wYWNpdHkiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJidWZmZXItdmFsdWUiOiBsLnZhbHVlLmJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICIjRkZEREI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibWItNiIsCiAgICAgICAgICAgICAgICAgICAgICAgIG1heDogIjQiLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgWyJtb2RlbC12YWx1ZSIsICJidWZmZXItdmFsdWUiXQogICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIGwudmFsdWUKICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgUWEsIFsKICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBYYSwgWwogICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgIHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYGV4Y2hhbmdlL2Zsb3cvYWN0aXZlLSR7ZC52YWx1ZX0uc3ZnYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdDogImljb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJtYi0yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICBbInNyYyJdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIEphLCByKGwudmFsdWUudGl0bGUpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgWmEsIFsKICAgICAgICAgICAgICAgICAgICAgICAgKG4oITApLAogICAgICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICBjZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGYpLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICh5LCBpKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogc2UoWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWluLXctMTAgbWF4LXctMTAgbWluLWgtMS41IG14LTEuNSByb3VuZGVkIG1iLTIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5IDw9IGwudmFsdWUuYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiYmctc2Vjb25kYXJ5LTQwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJiZy1ncmF5LTMwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIGVzLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIGUoInNwYW4iLCB0cywgcihsLnZhbHVlLmJ1ZmZlciksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICBlKCJzcGFuIiwgYXMsICIgLyIgKyByKE9iamVjdC5lbnRyaWVzKGYpLmxlbmd0aCksIDEpLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIDY0CiAgICAgICAgICApCiAgICAgICAgKTsKICAgICAgfTsKICAgIH0sCiAgfTsKZnVuY3Rpb24gbHMoYSwgZikgewogIGNvbnN0IGwgPSBTKG51bGwpOwogIGZ1bmN0aW9uIG0oLi4uZCkgewogICAgbC52YWx1ZSAmJiBjbGVhclRpbWVvdXQobC52YWx1ZSksCiAgICAgIChsLnZhbHVlID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgYSguLi5kKTsKICAgICAgfSwgZikpOwogIH0KICByZXR1cm4geyBkZWJvdW5jZWQ6IG0gfTsKfQpjb25zdCBucyA9IHsgY2xhc3M6ICJwb3NpdGlvbi1yZWxhdGl2ZSBzZWxlY3QtY3VycmVuY3kiIH0sCiAgcnMgPSB7CiAgICBjbGFzczoKICAgICAgImxnOmZsZXggYm9yZGVyIHJvdW5kZWQtbGcgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1vcGFjaXR5LTEwMCBvdmVyZmxvdy1oaWRkZW4iLAogIH0sCiAgb3MgPSB7IGNsYXNzOiAiZmxleCBtaW4tdy0wIiB9LAogIGlzID0geyBjbGFzczogIm1yLTIgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1mdWxsIiB9LAogIGNzID0geyBjbGFzczogIm1pbi13LTAiIH0sCiAgZHMgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTQwMCB0ZXh0LXhzLXNlbWlib2xkIiB9LAogIHVzID0geyBjbGFzczogInRleHQtbWQtc2VtaWJvbGQgdHJ1bmNhdGUgbWF4LXctNTIgdGV4dC1ncmF5LTgwMCIgfSwKICBtcyA9IHsgY2xhc3M6ICJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LXNocmluay0wIiB9LAogIHBzID0geyBjbGFzczogImxnOnctMS8yIHctZnVsbCBwb3NpdGlvbi1yZWxhdGl2ZSBiZy1ncmF5LTUwIHB0LWxnLTAgcHQtMiIgfSwKICB5cyA9IHsKICAgIGNsYXNzOgogICAgICAicG9zaXRpb24tYWJzb2x1dGUgei01MCB0ZXh0LWdyYXktNTAwIHRleHQteHMtYm9sZCBtbC1sZy0yLjUgbWwtMy41IG10LWxnLTIiLAogIH0sCiAgdnMgPSB7IGtleTogMCwgY2xhc3M6ICJ0ZXh0LXJlZC02MDAgbXQtMiB0ZXh0LXNtLXJlZ3VsYXIgbXgtMiIgfSwKICBncyA9IHsKICAgIGNsYXNzOiAicmVsYXRpdmUgYmctd2hpdGUgc2hhZG93LW1kIGJvcmRlciByb3VuZGVkLWxnICFtaW4tdy1bMzcwcHhdIiwKICB9LAogIGZzID0geyBjbGFzczogInN0aWNreSByaWdodC0wIHRvcC0wIGxlZnQtMCBweC0yLjUiIH0sCiAgX3MgPSB7IGNsYXNzOiAidGV4dC14cy1yZWd1bGFyIHRleHQtZ3JheS02MDAiIH0sCiAgaHMgPSB7CiAgICBrZXk6IDAsCiAgICBjbGFzczoKICAgICAgIm1sLTEuNSB0ZXh0LXN1Y2Nlc3MtNzAwIHRleHQteHMtcmVndWxhciBiZy1zdWNjZXNzLTEwMCBweS0wLjUgcHgtMS41IHJvdW5kZWQtcGlsbCIsCiAgfSwKICB4cyA9IHsgY2xhc3M6ICJvdmVyZmxvdy15LWF1dG8gbWF4LWgtNjQgcGEtMyBwci0xIHB0LTAiIH0sCiAgYnMgPSBbIm9uQ2xpY2siXSwKICBrcyA9IHsgY2xhc3M6ICJmbGV4IGl0ZW1zLWNlbnRlciIgfSwKICB3cyA9IHsgY2xhc3M6ICJyb3VuZGVkLWZ1bGwgbXItMiIgfSwKICAkcyA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktODAwIHRleHQtbWQtc2VtaWJvbGQiIH0sCiAgQ3MgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTQwMCB0ZXh0LXhzLXJlZ3VsYXIgbWwtMiIgfSwKICBTcyA9IHsKICAgIF9fbmFtZTogIlNlbGVjdEN1cnJlbmN5IiwKICAgIHByb3BzOiBaZSgKICAgICAgewogICAgICAgIGl0ZW1zOiB7IHR5cGU6IEFycmF5LCBkZWZhdWx0OiAoKSA9PiBbXSB9LAogICAgICAgIGxpbWl0YXRpb246IHsgdHlwZTogT2JqZWN0LCBkZWZhdWx0OiAoKSA9PiAoe30pIH0sCiAgICAgICAgYW1vdW50TGFiZWw6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICAgIHNpZGU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICAgIGZpbHRlclNsdWdzOiB7IHR5cGU6IEFycmF5LCBkZWZhdWx0OiAoKSA9PiBbXSB9LAogICAgICAgIG9wZW5NZW51OiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6ICExIH0sCiAgICAgICAgbG9hZGluZzogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgc2VsZWN0ZWRDdXJyZW5jeTogeyB0eXBlOiBPYmplY3QsIGRlZmF1bHQ6ICgpID0+ICh7fSkgfSwKICAgICAgICBzZWxlY3RlZEN1cnJlbmN5TW9kaWZpZXJzOiB7fSwKICAgICAgICBhbW91bnQ6IHsgdHlwZTogTnVtYmVyLCBkZWZhdWx0OiAwIH0sCiAgICAgICAgYW1vdW50TW9kaWZpZXJzOiB7fSwKICAgICAgfQogICAgKSwKICAgIGVtaXRzOiBbInVwZGF0ZTpzZWxlY3RlZEN1cnJlbmN5IiwgInVwZGF0ZTphbW91bnQiXSwKICAgIHNldHVwKGEpIHsKICAgICAgY29uc3QgeyB0OiBmIH0gPSB6ZSgpLAogICAgICAgIGwgPSBhLAogICAgICAgIG0gPSBqZShhLCAic2VsZWN0ZWRDdXJyZW5jeSIpLAogICAgICAgIGQgPSBqZShhLCAiYW1vdW50IiksCiAgICAgICAgcyA9IFMoMCksCiAgICAgICAgYyA9IFMoITEpLAogICAgICAgIF8gPSBTKHsgdGl0bGU6ICJBbGwiIH0pLAogICAgICAgIHYgPSBTKCIiKSwKICAgICAgICB5ID0gUygiIiksCiAgICAgICAgaSA9IChoKSA9PiB7CiAgICAgICAgICBkLnZhbHVlID0gaDsKICAgICAgICB9LAogICAgICAgIHsgZGVib3VuY2VkOiBDIH0gPSBscyhpLCA3MDApOwogICAgICBWZShkLCAoaCkgPT4gewogICAgICAgIHMudmFsdWUgPSBoOwogICAgICB9KSwKICAgICAgICBWZSgKICAgICAgICAgICgpID0+IGwub3Blbk1lbnUsCiAgICAgICAgICAoaCkgPT4gewogICAgICAgICAgICBoICYmIChjLnZhbHVlID0gaCk7CiAgICAgICAgICB9CiAgICAgICAgKSwKICAgICAgICBWZSgKICAgICAgICAgICgpID0+IGwubGltaXRhdGlvbiwKICAgICAgICAgIChoKSA9PiB7CiAgICAgICAgICAgIGggJiYgVShkLnZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICApOwogICAgICBjb25zdCBQID0gKGgpID0+IGwuZmlsdGVyU2x1Z3MuaW5jbHVkZXMoaCksCiAgICAgICAgYiA9IHEoKCkgPT4gWwogICAgICAgICAgeyB0aXRsZTogIkFsbCIgfSwKCiAgICAgICAgICB7IHRpdGxlOiAiQ3J5cHRvIiwgaXNDcnlwdG86IDEgfSwKICAgICAgICBdKSwKICAgICAgICBNID0gcSgoKSA9PiB7CiAgICAgICAgICBjb25zdCBoID0gdi52YWx1ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKTsKICAgICAgICAgIHJldHVybiBsLml0ZW1zLmZpbHRlcigoRSkgPT4gewogICAgICAgICAgICBjb25zdCBWID0gRS50aXRsZS50b0xvd2VyQ2FzZSgpLAogICAgICAgICAgICAgIFQgPQogICAgICAgICAgICAgICAgXy52YWx1ZS50aXRsZSA9PT0gIkFsbCIgfHwKICAgICAgICAgICAgICAgIFYuaW5jbHVkZXMoXy52YWx1ZS5zbHVnKSB8fAogICAgICAgICAgICAgICAgRS5pc19jcnlwdG8gPT09IF8udmFsdWUuaXNDcnlwdG8sCiAgICAgICAgICAgICAgTiA9IFYuaW5jbHVkZXMoaCkgfHwgRS5zbHVnLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaCksCiAgICAgICAgICAgICAgTyA9IGwuZmlsdGVyU2x1Z3MubGVuZ3RoIDw9IDAgfHwgUChFLnNsdWcpOwogICAgICAgICAgICByZXR1cm4gVCAmJiBOICYmIE87CiAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICBqID0gKGggPSBzLnZhbHVlKSA9PiB7CiAgICAgICAgICBjb25zdCBFID0gK2g7CiAgICAgICAgICByZXR1cm4gRSA9PT0gMCB8fCAhRQogICAgICAgICAgICA/ICgoeS52YWx1ZSA9IGYoImV4Y2hhbmdlLmN1cklzUmVxIikpLCAhMSkKICAgICAgICAgICAgOiBFIDwgbC5saW1pdGF0aW9uLm1pbiB8fCBFID4gbC5saW1pdGF0aW9uLm1heAogICAgICAgICAgICA/ICgoeS52YWx1ZSA9CiAgICAgICAgICAgICAgICBmKCJleGNoYW5nZS5tdXN0QmUiKSArCiAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgbC5saW1pdGF0aW9uLm1pbiApLAoKICAgICAgICAgICAgICAhMSkKICAgICAgICAgICAgOiAoKHkudmFsdWUgPSBudWxsKSwgITApOwogICAgICAgIH0sCiAgICAgICAgQiA9IChoKSA9PiB7CiAgICAgICAgICAoYy52YWx1ZSA9ICExKSwgKG0udmFsdWUgPSBoKTsKICAgICAgICB9LAogICAgICAgICQgPSAoKSA9PiB7CiAgICAgICAgICBqKCkgJiYgQyhzLnZhbHVlKTsKICAgICAgICB9LAogICAgICAgIFUgPSAoaCkgPT4gewogICAgICAgICAgaWYgKCgoeS52YWx1ZSA9ICIiKSwgaCAhPT0gMCkpCiAgICAgICAgICAgIHJldHVybiAraCA8ICtsLmxpbWl0YXRpb24ubWluIHx8ICtoID4gK2wubGltaXRhdGlvbi5tYXgKICAgICAgICAgICAgICA/ICgoeS52YWx1ZSA9IGDQnNC40L3QuNC80LDQu9GM0L3QsNGPINGB0YPQvNC80LAg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyAke2wubGltaXRhdGlvbi5taW59YCksCiAgICAgICAgICAgICAgICBg0JzQuNC90LjQvNCw0LvRjNC90LDRjyDRgdGD0LzQvNCwINC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8gJHtsLmxpbWl0YXRpb24ubWlufWApCiAgICAgICAgICAgICAgOiAhMDsKICAgICAgICB9OwogICAgICByZXR1cm4gKGgsIEUpID0+ICgKICAgICAgICBuKCksCiAgICAgICAgcCgiZGl2IiwgbnMsIFsKICAgICAgICAgIG8oCiAgICAgICAgICAgIElhLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogYy52YWx1ZSwKICAgICAgICAgICAgICAib25VcGRhdGU6bW9kZWxWYWx1ZSI6IEVbM10gfHwgKEVbM10gPSAoVikgPT4gKGMudmFsdWUgPSBWKSksCiAgICAgICAgICAgICAgIm9wZW4tZGVsYXkiOiAiMCIsCiAgICAgICAgICAgICAgImNsb3NlLW9uLWNvbnRlbnQtY2xpY2siOiAhMSwKICAgICAgICAgICAgICBsb2NhdGlvbjogImJvdHRvbSIsCiAgICAgICAgICAgICAgb2Zmc2V0OiA4LAogICAgICAgICAgICAgIHRyYW5zaXRpb246ICJzY2FsZS10cmFuc2l0aW9uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIGFjdGl2YXRvcjogQSgoeyBwcm9wczogViB9KSA9PiBbCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIHJzLCBbCiAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgRGUoCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZzp3LTEvMiB3LWZ1bGwgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHAtMiBjdXJzb3ItcG9pbnRlciBiZy1ncmF5LTUwIGJvcmRlci1ncmF5LTMwMCBsZzpib3JkZXItciBib3JkZXItb3BhY2l0eS0xMDAiLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBWCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBvcywgWwogICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIGlzLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzcmM6IG0udmFsdWUuaWNvbiwgd2lkdGg6IDMyLCBoZWlnaHQ6IDMyIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgY3MsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIGRzLCByKG0udmFsdWUuc2x1ZyB8fCAiIiksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgdXMsIHIobS52YWx1ZS50aXRsZSB8fCAiIiksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbXMsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICBvKGhlLCBudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVyhyKGBtZGktY2hldnJvbi0ke2MudmFsdWUgPyAidXAiIDogImRvd24ifWApLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgMTYKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIEVbNF0gfHwKICAgICAgICAgICAgICAgICAgICAgIChFWzRdID0gZSgKICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib3JkZXItYiBib3JkZXItb3BhY2l0eS0xMDAgYm9yZGVyLWdyYXktMzAwIGxnOmhpZGRlbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBwcywgWwogICAgICAgICAgICAgICAgICAgICAgZSgic3BhbiIsIHlzLCByKGguJHQoYGV4Y2hhbmdlLiR7bC5hbW91bnRMYWJlbH1gKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgUWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbFZhbHVlOiBzLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTptb2RlbFZhbHVlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVbMF0gfHwgKEVbMF0gPSAoVCkgPT4gKHMudmFsdWUgPSBUKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJib3JkZXItMCBtdC1sZy0zIHB4LWxnLTIuNSBweC0zLjUgcGItMi41IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogIkFtb3VudC4uLiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogIm51bWJlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogInBsYWluIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiYmctY29sb3IiOiAidHJhbnNwYXJlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbVV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgImhpZGUtc3Bpbi1idXR0b25zIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgImhpZGUtZGV0YWlscyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uSW5wdXQ6ICQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgIFsibW9kZWxWYWx1ZSIsICJydWxlcyJdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgeS52YWx1ZSAmJiAhYS5sb2FkaW5nCiAgICAgICAgICAgICAgICAgICAgPyAobigpLCBwKCJkaXYiLCB2cywgcih5LnZhbHVlKSwgMSkpCiAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgIGUoImRpdiIsIGdzLCBbCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIGZzLCBbCiAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgIFFlLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBtb2RlbFZhbHVlOiB2LnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6bW9kZWxWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgRVsxXSB8fCAoRVsxXSA9IChWKSA9PiAodi52YWx1ZSA9IFYpKSwKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJib3JkZXItMCBtaW4taC1mdWxsIHBiLTEuNSIsCiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAidHlwZSBhIGN1cnJlbmN5IG9yIHRpY2tlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwcmVwZW5kLWlubmVyLWljb24iOiAibWRpLW1hZ25pZnkiLAogICAgICAgICAgICAgICAgICAgICAgICBkZW5zZTogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6ICJwbGFpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZTogIjMwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRlLXNwaW4tYnV0dG9ucyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZS1kZXRhaWxzIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICBbIm1vZGVsVmFsdWUiXQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgIFNhLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBtb2RlbFZhbHVlOiBfLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6bW9kZWxWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgRVsyXSB8fCAoRVsyXSA9IChWKSA9PiAoXy52YWx1ZSA9IFYpKSwKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJib3JkZXItdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzZWxlY3RlZC1jbGFzcyI6ICJ0ZXh0LWdyYXktODAwIGJnLWdyYXktMjAwIHB5LTAiLAogICAgICAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnk6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46ICIiLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG4oITApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoViwgVCkgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6ICJmbGF0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJiZy1ncmF5LTUwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoInNwYW4iLCBfcywgcihWLnRpdGxlKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVi5iYWRnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobigpLCBwKCJzcGFuIiwgaHMsIHIoVi5iYWRnZSksIDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInZhbHVlIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgIFsibW9kZWxWYWx1ZSJdCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIHhzLCBbCiAgICAgICAgICAgICAgICAgICAgKG4oITApLAogICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgIGNlKAogICAgICAgICAgICAgICAgICAgICAgICBNLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAoViwgVCkgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgIG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBweS00IHB4LTIgcm91bmRlZCBob3ZlcjpiZy1ncmF5LTUwIGN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKE4pID0+IEIoViksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBrcywgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIHdzLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzcmM6IFYuaWNvbiwgd2lkdGg6IDI0LCBoZWlnaHQ6IDI0IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgJHMsIHIoVi50aXRsZSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgQ3MsIHIoVi5zbHVnKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgOCwKICAgICAgICAgICAgWyJtb2RlbFZhbHVlIl0KICAgICAgICAgICksCiAgICAgICAgXSkKICAgICAgKTsKICAgIH0sCiAgfSwKICBEcyA9IHsga2V5OiAxLCBjbGFzczogIiBtdC00IHRleHQtc20tcmVndWxhciB0ZXh0LWdyYXktOTAwIHNwYWNlLXgtNiBsYXN0X2hpZGRlbiIgfSwKICBJcyA9IHsga2V5OiAwIH0sCiAgRXMgPSB7CiAgICBfX25hbWU6ICJSYW5nZUxpbWl0IiwKICAgIHByb3BzOiBaZSgKICAgICAgeyByYW5nZUxpbWl0OiB7IHR5cGU6IE9iamVjdCwgZGVmYXVsdDogKCkgPT4gKHt9KSB9LCBsb2FkaW5nOiBCb29sZWFuIH0sCiAgICAgIHsgYW1vdW50OiB7IHR5cGU6IE51bWJlciwgZGVmYXVsdDogMCB9LCBhbW91bnRNb2RpZmllcnM6IHt9IH0KICAgICksCiAgICBlbWl0czogWyJ1cGRhdGU6YW1vdW50Il0sCiAgICBzZXR1cChhKSB7CiAgICAgIGNvbnN0IGYgPSBhLAogICAgICBsID0gamUoYSwgImFtb3VudCIpLAogICAgICBtID0gKGQpID0+IHsKICAgICAgICBmLmxvYWRpbmcgfHwgKGwudmFsdWUgPSBkKTsKICAgICAgfTsKICAgICAgcmV0dXJuIChkLCBzKSA9PgogICAgICAgIGEubG9hZGluZwogICAgICAgICAgPyAobigpLAogICAgICAgICAgICB6KEllLCB7CiAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgIHR5cGU6ICJoZWFkaW5nIiwKICAgICAgICAgICAgICAibWF4LXdpZHRoIjogIjUwJSIsCiAgICAgICAgICAgICAgaGVpZ2h0OiAiMzAiLAogICAgICAgICAgICAgIGNsYXNzOiAibWItNCIsCiAgICAgICAgICAgIH0pKQogICAgICAgICAgOiBmLnJhbmdlTGltaXQKICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgcCgiZGl2IiwgRHMsIFsKICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGNsYXNzOiAiY3Vyc29yLXBvaW50ZXIiLAogICAgICAgICAgICAgICAgICBvbkNsaWNrOiBzWzBdIHx8IChzWzBdID0gKGMpID0+IG0oZi5yYW5nZUxpbWl0Lm1pbikpLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICLQvNC40L0uINGB0YPQvNC80LAg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyIgKyAiOiAiICsgcihmLnJhbmdlTGltaXQubWluKSwKICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICApLAoKCiAgICAgICAgICAgIF0pKQogICAgICAgICAgOiBSKCIiLCAhMCk7CiAgICB9LAogIH07CmZ1bmN0aW9uIEFzKGEpIHsKICByZXR1cm4gKAogICAgYS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArCiAgICBhCiAgICAgIC5zbGljZSgxKQogICAgICAucmVwbGFjZSgvIChcdykvZywgZnVuY3Rpb24gKGYsIGwpIHsKICAgICAgICByZXR1cm4gbC50b1VwcGVyQ2FzZSgpOwogICAgICB9KQogICAgICAucmVwbGFjZSgvIC9nLCAiIikKICApOwp9CmNvbnN0IFJzID0geyBjbGFzczogImJnLXdoaXRlIHBhLTIgdGV4dC1zbS1yZWd1bGFyIHRleHQtZ3JheS05MDAiIH0sCiAgT3MgPSB7IGtleTogMCB9LAogIFBzID0geyBrZXk6IDEgfSwKICBWcyA9IHsgY2xhc3M6ICJ0ZXh0LXNtLW1lZGl1bSIgfSwKICBUcyA9IHsgY2xhc3M6ICJ0ZXh0LW1kLW1lZGl1bSIgfSwKICBOcyA9IHsgY2xhc3M6ICJ0ZXh0LXNtLW1lZGl1bSB0ZXh0LWdyYXktODAwIiB9LAogIFVzID0gewogICAgX19uYW1lOiAiTW9yZURldGFpbCIsCiAgICBwcm9wczogewogICAgICBzaWRlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICBkZXRhaWxMaXN0OiB7IHR5cGU6IE9iamVjdCwgZGVmYXVsdDogKCkgPT4ge30gfSwKICAgIH0sCiAgICBzZXR1cChhKSB7CiAgICAgIGNvbnN0IGYgPSBhLAogICAgICAgIGwgPSBTKCExKTsKICAgICAgcmV0dXJuIChtLCBkKSA9PiAoCiAgICAgICAgbigpLAogICAgICAgIHAoImRpdiIsIG51bGwsIFsKICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjbGFzczogInctZnVsbCAgZ2FwLTEgYWxpZ24tY2VudGVyIGN1cnNvci1wb2ludGVyIGhpZGRlbiIsCiAgICAgICAgICAgICAgICBvbkNsaWNrOiBkWzBdIHx8IChkWzBdID0gKHMpID0+IChsLnZhbHVlID0gIXQobCkpKSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIGRbMV0gfHwKICAgICAgICAgICAgICAgICAgKGRbMV0gPSBlKAogICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJib3JkZXItYi0yIGZsZXgtZ3Jvdy0xIiB9LAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBScywgWwogICAgICAgICAgICAgICAgICB0KGwpCiAgICAgICAgICAgICAgICAgICAgPyAobigpLCBwKCJzcGFuIiwgT3MsIHIobS4kdCgiZXhjaGFuZ2UubGVzc0RldGFpbCIpKSwgMSkpCiAgICAgICAgICAgICAgICAgICAgOiAobigpLCBwKCJzcGFuIiwgUHMsIHIobS4kdCgiZXhjaGFuZ2UubW9yZURldGFpbCIpKSwgMSkpLAogICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogc2UoWwogICAgICAgICAgICAgICAgICAgICAgICAibWRpIiwKICAgICAgICAgICAgICAgICAgICAgICAgdChsKSA/ICJtZGktY2hldnJvbi11cCIgOiAibWRpLWNoZXZyb24tZG93biIsCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBkWzJdIHx8CiAgICAgICAgICAgICAgICAgIChkWzJdID0gZSgKICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAiYm9yZGVyLWItMiBmbGV4LWdyb3ctMSIgfSwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgIF0KICAgICAgICAgICAgKSwKICAgICAgICAgIF0pLAogICAgICAgICAgbyhFYSwgbnVsbCwgewogICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICBCdCgKICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgIEFhLAogICAgICAgICAgICAgICAgICB7IGZsYXQ6ICIiLCBjbGFzczogIm14LWF1dG8iIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgIChuKCEwKSwKICAgICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNlKAogICAgICAgICAgICAgICAgICAgICAgICAgIGYuZGV0YWlsTGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAocywgYywgXykgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IF8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJkLWZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtZ3JheS03MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcihtLiR0KGBleGNoYW5nZS4ke3QoQXMpKGMpfWApKSArICI6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoInNwYW4iLCBUcywgcihzKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBOcywgcihmLmRlc2NyaXB0aW9uKSwgMSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgNTEyCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgW1txdCwgdChsKV1dCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF86IDEsCiAgICAgICAgICB9KSwKICAgICAgICBdKQogICAgICApOwogICAgfSwKICB9LAogIExzID0gUmEoInYtYWxlcnQtdGl0bGUiKSwKICBGcyA9IFsic3VjY2VzcyIsICJpbmZvIiwgIndhcm5pbmciLCAiZXJyb3IiXSwKICBCcyA9IFllKAogICAgewogICAgICBib3JkZXI6IHsKICAgICAgICB0eXBlOiBbQm9vbGVhbiwgU3RyaW5nXSwKICAgICAgICB2YWxpZGF0b3I6IChhKSA9PgogICAgICAgICAgdHlwZW9mIGEgPT0gImJvb2xlYW4iIHx8CiAgICAgICAgICBbInRvcCIsICJlbmQiLCAiYm90dG9tIiwgInN0YXJ0Il0uaW5jbHVkZXMoYSksCiAgICAgIH0sCiAgICAgIGJvcmRlckNvbG9yOiBTdHJpbmcsCiAgICAgIGNsb3NhYmxlOiBCb29sZWFuLAogICAgICBjbG9zZUljb246IHsgdHlwZToganQsIGRlZmF1bHQ6ICIkY2xvc2UiIH0sCiAgICAgIGNsb3NlTGFiZWw6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiJHZ1ZXRpZnkuY2xvc2UiIH0sCiAgICAgIGljb246IHsgdHlwZTogW0Jvb2xlYW4sIFN0cmluZywgRnVuY3Rpb24sIE9iamVjdF0sIGRlZmF1bHQ6IG51bGwgfSwKICAgICAgbW9kZWxWYWx1ZTogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMCB9LAogICAgICBwcm9taW5lbnQ6IEJvb2xlYW4sCiAgICAgIHRpdGxlOiBTdHJpbmcsCiAgICAgIHRleHQ6IFN0cmluZywKICAgICAgdHlwZTogeyB0eXBlOiBTdHJpbmcsIHZhbGlkYXRvcjogKGEpID0+IEZzLmluY2x1ZGVzKGEpIH0sCiAgICAgIC4uLnh0KCksCiAgICAgIC4uLmZhKCksCiAgICAgIC4uLlBhKCksCiAgICAgIC4uLlVhKCksCiAgICAgIC4uLl9hKCksCiAgICAgIC4uLmhhKCksCiAgICAgIC4uLlZhKCksCiAgICAgIC4uLk10KCksCiAgICAgIC4uLll0KCksCiAgICAgIC4uLnhhKHsgdmFyaWFudDogImZsYXQiIH0pLAogICAgfSwKICAgICJWQWxlcnQiCiAgKSwKICBobyA9IEdlKCkoewogICAgbmFtZTogIlZBbGVydCIsCiAgICBwcm9wczogQnMoKSwKICAgIGVtaXRzOiB7ICJjbGljazpjbG9zZSI6IChhKSA9PiAhMCwgInVwZGF0ZTptb2RlbFZhbHVlIjogKGEpID0+ICEwIH0sCiAgICBzZXR1cChhLCBmKSB7CiAgICAgIGxldCB7IGVtaXQ6IGwsIHNsb3RzOiBtIH0gPSBmOwogICAgICBjb25zdCBkID0gZXQoYSwgIm1vZGVsVmFsdWUiKSwKICAgICAgICBzID0gcSgoKSA9PiB7CiAgICAgICAgICBpZiAoYS5pY29uICE9PSAhMSkgcmV0dXJuIGEudHlwZSA/IGEuaWNvbiA/PyBgJCR7YS50eXBlfWAgOiBhLmljb247CiAgICAgICAgfSksCiAgICAgICAgYyA9IHEoKCkgPT4gKHsgY29sb3I6IGEuY29sb3IgPz8gYS50eXBlLCB2YXJpYW50OiBhLnZhcmlhbnQgfSkpLAogICAgICAgIHsgdGhlbWVDbGFzc2VzOiBfIH0gPSBHdChhKSwKICAgICAgICB7IGNvbG9yQ2xhc3NlczogdiwgY29sb3JTdHlsZXM6IHksIHZhcmlhbnRDbGFzc2VzOiBpIH0gPSBiYShjKSwKICAgICAgICB7IGRlbnNpdHlDbGFzc2VzOiBDIH0gPSBrYShhKSwKICAgICAgICB7IGRpbWVuc2lvblN0eWxlczogUCB9ID0gVGEoYSksCiAgICAgICAgeyBlbGV2YXRpb25DbGFzc2VzOiBiIH0gPSBMYShhKSwKICAgICAgICB7IGxvY2F0aW9uU3R5bGVzOiBNIH0gPSB3YShhKSwKICAgICAgICB7IHBvc2l0aW9uQ2xhc3NlczogaiB9ID0gJGEoYSksCiAgICAgICAgeyByb3VuZGVkQ2xhc3NlczogQiB9ID0gTmEoYSksCiAgICAgICAgeyB0ZXh0Q29sb3JDbGFzc2VzOiAkLCB0ZXh0Q29sb3JTdHlsZXM6IFUgfSA9IHp0KFd0KGEsICJib3JkZXJDb2xvciIpKSwKICAgICAgICB7IHQ6IGggfSA9IGJ0KCksCiAgICAgICAgRSA9IHEoKCkgPT4gKHsKICAgICAgICAgICJhcmlhLWxhYmVsIjogaChhLmNsb3NlTGFiZWwpLAogICAgICAgICAgb25DbGljayhWKSB7CiAgICAgICAgICAgIChkLnZhbHVlID0gITEpLCBsKCJjbGljazpjbG9zZSIsIFYpOwogICAgICAgICAgfSwKICAgICAgICB9KSk7CiAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgY29uc3QgViA9ICEhKG0ucHJlcGVuZCB8fCBzLnZhbHVlKSwKICAgICAgICAgIFQgPSAhIShtLnRpdGxlIHx8IGEudGl0bGUpLAogICAgICAgICAgTiA9ICEhKG0uY2xvc2UgfHwgYS5jbG9zYWJsZSk7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGQudmFsdWUgJiYKICAgICAgICAgIG8oCiAgICAgICAgICAgIGEudGFnLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgY2xhc3M6IFsKICAgICAgICAgICAgICAgICJ2LWFsZXJ0IiwKICAgICAgICAgICAgICAgIGEuYm9yZGVyICYmIHsKICAgICAgICAgICAgICAgICAgInYtYWxlcnQtLWJvcmRlciI6ICEhYS5ib3JkZXIsCiAgICAgICAgICAgICAgICAgIFtgdi1hbGVydC0tYm9yZGVyLSR7YS5ib3JkZXIgPT09ICEwID8gInN0YXJ0IiA6IGEuYm9yZGVyfWBdOgogICAgICAgICAgICAgICAgICAgICEwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsgInYtYWxlcnQtLXByb21pbmVudCI6IGEucHJvbWluZW50IH0sCiAgICAgICAgICAgICAgICBfLnZhbHVlLAogICAgICAgICAgICAgICAgdi52YWx1ZSwKICAgICAgICAgICAgICAgIEMudmFsdWUsCiAgICAgICAgICAgICAgICBiLnZhbHVlLAogICAgICAgICAgICAgICAgai52YWx1ZSwKICAgICAgICAgICAgICAgIEIudmFsdWUsCiAgICAgICAgICAgICAgICBpLnZhbHVlLAogICAgICAgICAgICAgICAgYS5jbGFzcywKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHN0eWxlOiBbeS52YWx1ZSwgUC52YWx1ZSwgTS52YWx1ZSwgYS5zdHlsZV0sCiAgICAgICAgICAgICAgcm9sZTogImFsZXJ0IiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHsKICAgICAgICAgICAgICAgIHZhciBPLCBnOwogICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgQ2EoITEsICJ2LWFsZXJ0IiksCiAgICAgICAgICAgICAgICAgIGEuYm9yZGVyICYmCiAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJib3JkZXIiLAogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogWyJ2LWFsZXJ0X19ib3JkZXIiLCAkLnZhbHVlXSwKICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IFUudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIFYgJiYKICAgICAgICAgICAgICAgICAgICBvKCJkaXYiLCB7IGtleTogInByZXBlbmQiLCBjbGFzczogInYtYWxlcnRfX3ByZXBlbmQiIH0sIFsKICAgICAgICAgICAgICAgICAgICAgIG0ucHJlcGVuZAogICAgICAgICAgICAgICAgICAgICAgICA/IG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAicHJlcGVuZC1kZWZhdWx0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhcy52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWSWNvbjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2l0eTogYS5kZW5zaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogcy52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IGEucHJvbWluZW50ID8gNDQgOiAyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucHJlcGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgOiBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogInByZXBlbmQtaWNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHk6IGEuZGVuc2l0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogcy52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogYS5wcm9taW5lbnQgPyA0NCA6IDI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBvKCJkaXYiLCB7IGNsYXNzOiAidi1hbGVydF9fY29udGVudCIgfSwgWwogICAgICAgICAgICAgICAgICAgIFQgJiYKICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgIExzLAogICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogInRpdGxlIiB9LAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEQgPSBtLnRpdGxlKSA9PSBudWxsID8gdm9pZCAwIDogRC5jYWxsKG0pKSA/PwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEudGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKChPID0gbS50ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogTy5jYWxsKG0pKSA/PyBhLnRleHQsCiAgICAgICAgICAgICAgICAgICAgKGcgPSBtLmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiBnLmNhbGwobSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBtLmFwcGVuZCAmJgogICAgICAgICAgICAgICAgICAgIG8oImRpdiIsIHsga2V5OiAiYXBwZW5kIiwgY2xhc3M6ICJ2LWFsZXJ0X19hcHBlbmQiIH0sIFsKICAgICAgICAgICAgICAgICAgICAgIG0uYXBwZW5kKCksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIE4gJiYKICAgICAgICAgICAgICAgICAgICBvKCJkaXYiLCB7IGtleTogImNsb3NlIiwgY2xhc3M6ICJ2LWFsZXJ0X19jbG9zZSIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgbS5jbG9zZQogICAgICAgICAgICAgICAgICAgICAgICA/IG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAiY2xvc2UtZGVmYXVsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0czogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZCdG46IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGEuY2xvc2VJY29uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogIngtc21hbGwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogInRleHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEID0gbS5jbG9zZSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEQuY2FsbChtLCB7IHByb3BzOiBFLnZhbHVlIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICA6IG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAiY2xvc2UtYnRuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBhLmNsb3NlSWNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAieC1zbWFsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogInRleHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0KICAgICAgICAgICkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9KSwKICBxcyA9IHsKICAgIGtleTogMiwKICAgIGNsYXNzOgogICAgICAiYm9yZGVyIGJvcmRlci1wcmltYXJ5LTYwMCBib3JkZXItb3BhY2l0eS0xMDAgcm91bmRlZC1sZyBtdC00IHAtNCBiZy1wcmltYXJ5LTI1IiwKICB9LAogIGpzID0geyBjbGFzczogInRleHQtbWQtc2VtaWJvbGQgdGV4dC1wcmltYXJ5LTYwMCIgfSwKICBNcyA9IHsgY2xhc3M6ICJ0ZXh0LXhzLWJvbGQgdGV4dC1ncmF5LTkwMCBtdC0zIHRyYWNraW5nLXRpZ2h0IiB9LAogIFlzID0geyBjbGFzczogInRyYWNraW5nLXRpZ2h0IHRleHQteHMtbWVkaXVtIHRleHQtcHJpbWFyeS03MDAiIH0sCiAgR3MgPSB7IG5hbWU6ICJFeGNoYW5nZURpcmVjdGlvbiIgfSwKICB6cyA9IE9iamVjdC5hc3NpZ24oR3MsIHsKICAgIHByb3BzOiB7CiAgICAgIHNlbmREeW5hbWljRmlsdGVyOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgZmlsdGVyUmVjZWl2ZTogeyB0eXBlOiBBcnJheSwgZGVmYXVsdDogKCkgPT4gW10gfSwKICAgICAgZmlsdGVyU2VuZDogeyB0eXBlOiBBcnJheSwgZGVmYXVsdDogKCkgPT4gW10gfSwKICAgIH0sCiAgICBlbWl0czogWyJoYW5kZWxFcnJvciJdLAogICAgc2V0dXAoYSwgeyBlbWl0OiBmIH0pIHsKICAgICAgY29uc3QgbCA9IGYsCiAgICAgICAgbSA9IFdlKCksCiAgICAgICAgZCA9IHR0KCksCiAgICAgICAgcyA9IHZlKCksCiAgICAgICAgYyA9IFMoW10pLAogICAgICAgIF8gPSBTKFtdKSwKICAgICAgICB2ID0gUyh7fSksCiAgICAgICAgeSA9IFMoe30pLAogICAgICAgIGkgPSBTKHt9KSwKICAgICAgICBDID0gUyh7fSksCiAgICAgICAgUCA9IFMoe30pLAogICAgICAgIGIgPSBTKDApLAogICAgICAgIE0gPSBTKDApLAogICAgICAgIGogPSBTKCExKSwKICAgICAgICBCID0gUyghMSksCiAgICAgICAgJCA9IFMoe30pLAogICAgICAgIFUgPSBTKCExKSwKICAgICAgICBoID0gYSwKICAgICAgICBFID0gcSgoKSA9PiBfdC5QQVBBTC5pbmNsdWRlcyh5LnZhbHVlLnNsdWcpKSwKICAgICAgICBWID0gcSgoKSA9PiB7CiAgICAgICAgICB2YXIgSSwgdSwgdywgRiwgTCwgRzsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICEhcy5jYWxjdWxhdGVEYXRhICYmCiAgICAgICAgICAgIGIudmFsdWUgPj0KICAgICAgICAgICAgICAoKHUgPSAoSSA9IHkudmFsdWUucmFuZ2VfbGltaXQpID09IG51bGwgPyB2b2lkIDAgOiBJLnNlbmQpID09IG51bGwKICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICA6IHUubWluKSAmJgogICAgICAgICAgICBiLnZhbHVlIDw9CiAgICAgICAgICAgICAgKChGID0gKHcgPSB5LnZhbHVlLnJhbmdlX2xpbWl0KSA9PSBudWxsID8gdm9pZCAwIDogdy5zZW5kKSA9PSBudWxsCiAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgOiBGLm1heCkgJiYKICAgICAgICAgICAgTS52YWx1ZSA+PQogICAgICAgICAgICAgICgoTCA9IHkudmFsdWUucmFuZ2VfbGltaXQpID09IG51bGwgPyB2b2lkIDAgOiBMLnJlY2VpdmUubWluKSAmJgogICAgICAgICAgICBNLnZhbHVlIDw9CiAgICAgICAgICAgICAgKChHID0geS52YWx1ZS5yYW5nZV9saW1pdCkgPT0gbnVsbCA/IHZvaWQgMCA6IEcucmVjZWl2ZS5tYXgpICYmCiAgICAgICAgICAgICEkLnZhbHVlLm1lc3NhZ2UKICAgICAgICAgICk7CiAgICAgICAgfSksCiAgICAgICAgVCA9IHEoKCkgPT4gT2JqZWN0LmtleXMoeS52YWx1ZSkubGVuZ3RoID4gMCk7CiAgICAgIExlKCgpID0+IHsKICAgICAgICBOKCk7CiAgICAgIH0pOwogICAgICBjb25zdCBOID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgKGoudmFsdWUgPSAhMCksIGF3YWl0IE8oKSwgVWUoKSwgYXdhaXQgRCgpLCBIZSgpOwogICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBqLnZhbHVlID0gITE7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBPID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc3QgeyBkYXRhOiBJIH0gPSBhd2FpdCB1ZShIdCwgewogICAgICAgICAgICAgIG1ldGhvZDogIkdFVCIsCiAgICAgICAgICAgICAgcGFyYW1zOiB7CiAgICAgICAgICAgICAgICAuLi4oaC5zZW5kRHluYW1pY0ZpbHRlciAmJiB7CiAgICAgICAgICAgICAgICAgIHJlY2VpdmVfaWRzOiBoLnNlbmREeW5hbWljRmlsdGVyLAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHUgPSBJLnZhbHVlLmRhdGE7CiAgICAgICAgICBpZiAoaC5maWx0ZXJTZW5kLmxlbmd0aCA+IDAgJiYgdS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIGMudmFsdWUgPSB1LmZpbHRlcigodykgPT4gZyhoLmZpbHRlclNlbmQsIHcpKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgYy52YWx1ZSA9IHU7CiAgICAgICAgfSwKICAgICAgICBnID0gKEksIHUpID0+IEkuaW5jbHVkZXModS5zbHVnKSwKICAgICAgICBEID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgaS52YWx1ZSA9IHsKICAgICAgICAgICAgc2lkZTogZmUuU0VORCwKICAgICAgICAgICAgc2VuZF9jdXJyZW5jeTogdi52YWx1ZS5jdXJyZW5jeV9pZCwKICAgICAgICAgICAgaW5jbHVkZXM6IFNlLlJFQ0VJVkVfQ1VSUkVOQ1ksCiAgICAgICAgICB9OwogICAgICAgICAgY29uc3QgeyBkYXRhOiBJIH0gPSBhd2FpdCB1ZShkdCwgeyBtZXRob2Q6ICJHRVQiLCBwYXJhbXM6IGkudmFsdWUgfSk7CiAgICAgICAgICBvZShJLnZhbHVlLmRhdGEuZGlyZWN0aW9uKTsKICAgICAgICB9LAogICAgICAgIGsgPSAoSSkgPT4gewogICAgICAgICAgcy51cGRhdGVDYWxjdWxhdGVEYXRhKEkpOwogICAgICAgIH0sCiAgICAgICAgeCA9IChJKSA9PiB7CiAgICAgICAgICBzLnVwZGF0ZUNhbGN1bGF0ZVNpZGUoSSk7CiAgICAgICAgfSwKICAgICAgICBZID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc3QgeyBkYXRhOiBJIH0gPSBhd2FpdCB1ZShkdCwgeyBtZXRob2Q6ICJHRVQiLCBwYXJhbXM6IGkudmFsdWUgfSk7CiAgICAgICAgICBhd2FpdCBrKEkudmFsdWUuZGF0YS5kaXJlY3Rpb25bMF0uY2FsY3VsYXRlKSwKICAgICAgICAgICAgYXdhaXQgeChpLnZhbHVlLnNpZGUpLAogICAgICAgICAgICAoJC52YWx1ZSA9IHt9KTsKICAgICAgICB9LAogICAgICAgIEggPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICAoVS52YWx1ZSA9ICExKSwgKGIudmFsdWUgPSAwKSwgKE0udmFsdWUgPSAwKTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIChCLnZhbHVlID0gITApLAogICAgICAgICAgICAgIGF3YWl0IEQoKSwKICAgICAgICAgICAgICBrZShmZS5SRUNFSVZFKSwKICAgICAgICAgICAgICBSZShQZS5TRU5EX1NMVUcsIHYudmFsdWUuc2x1ZyksCiAgICAgICAgICAgICAgKFUudmFsdWUgPSAhMCk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBCLnZhbHVlID0gITE7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBYID0gYXN5bmMgKEkpID0+IHsKICAgICAgICAgIHZhciB1OwogICAgICAgICAgaWYgKHkudmFsdWUuY3VycmVuY3lfaWQpCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgKEIudmFsdWUgPSAhMCksCiAgICAgICAgICAgICAgICBFZShmZS5TRU5ELCBJKSwKICAgICAgICAgICAgICAgIGF3YWl0IFkoKSwKICAgICAgICAgICAgICAgIChNLnZhbHVlID0KICAgICAgICAgICAgICAgICAgKHUgPSBzLmNhbGN1bGF0ZURhdGEpID09IG51bGwgPyB2b2lkIDAgOiB1LnlvdVJlY2VpdmUpLAogICAgICAgICAgICAgICAgYmUoKTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICBCLnZhbHVlID0gITE7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGFlID0gYXN5bmMgKEkpID0+IHsKICAgICAgICAgIGlmICh5LnZhbHVlLmN1cnJlbmN5X2lkKQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIChCLnZhbHVlID0gITApLAogICAgICAgICAgICAgICAgRWUoZmUuUkVDRUlWRSwgSSksCiAgICAgICAgICAgICAgICBhd2FpdCBZKCksCiAgICAgICAgICAgICAgICBiZSgpLAogICAgICAgICAgICAgICAgKGIudmFsdWUgPSBzLmNhbGN1bGF0ZURhdGEueW91U2VuZCk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgQi52YWx1ZSA9ICExOwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBlZSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHZhciB1LCB3LCBGLCBMOwogICAgICAgICAgbmUoKTsKICAgICAgICAgIGNvbnN0IEkgPSB7CiAgICAgICAgICAgIGNhbGN1bGF0aW9uX2tleTogcy5jYWxjdWxhdGVEYXRhLmNhbGN1bGF0aW9uX2tleSwKICAgICAgICAgICAgaW5jbHVkZXM6IFNlLkNPTVBMRVRFX0RJUkVDVElPTiwKICAgICAgICAgICAgcmVjZWl2ZV9hbW91bnQ6IHMuY2FsY3VsYXRlRGF0YS55b3VSZWNlaXZlLAogICAgICAgICAgICByZWNlaXZlX2N1cnJlbmN5OiB5LnZhbHVlLmN1cnJlbmN5X2lkLAogICAgICAgICAgICBzZW5kX2Ftb3VudDogcy5jYWxjdWxhdGVEYXRhLnlvdVNlbmQsCiAgICAgICAgICAgIHNlbmRfY3VycmVuY3k6IHYudmFsdWUuY3VycmVuY3lfaWQsCiAgICAgICAgICB9OwogICAgICAgICAgQi52YWx1ZSA9ICEwOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBHIH0gPSBhd2FpdCB1ZShLdCwgeyBtZXRob2Q6ICJQT1NUIiwgYm9keTogSSB9KTsKICAgICAgICAgICAgcmUoRy52YWx1ZS5kYXRhLmRpcmVjdGlvblswXSksIG1lKCk7CiAgICAgICAgICAgIGNvbnN0IHRlID0gewogICAgICAgICAgICAgIC4uLnMuY2FsY3VsYXRlRGF0YSwKICAgICAgICAgICAgICBzZW5kQ3VycmVuY3k6IHYudmFsdWUsCiAgICAgICAgICAgICAgcmVjZWl2ZUN1cnJlbmN5OiB5LnZhbHVlLAogICAgICAgICAgICB9OwogICAgICAgICAgICBrKHRlKTsKICAgICAgICAgIH0gY2F0Y2ggKEcpIHsKICAgICAgICAgICAgY29uc3QgdGUgPQogICAgICAgICAgICAgICgoTCA9CiAgICAgICAgICAgICAgICAoRiA9CiAgICAgICAgICAgICAgICAgICh3ID0KICAgICAgICAgICAgICAgICAgICAodSA9IEcgPT0gbnVsbCA/IHZvaWQgMCA6IEcucmVzcG9uc2UpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICA6IHUuX2RhdGEpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogdy5lcnJvcnMpID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiBGLnZhbGlkYXRpb25zWzBdKSA9PSBudWxsCiAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgOiBMLm1lc3NhZ2UpID8/IG51bGw7CiAgICAgICAgICAgIGwoImhhbmRlbEVycm9yIiwgdGUpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgQi52YWx1ZSA9ICExOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgbmUgPSAoKSA9PiB7CiAgICAgICAgICB3aW5kb3cuZGF0YUxheWVyICYmCiAgICAgICAgICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICAgICAgZXZlbnQ6ICJwdXJjaGFzZSIsCiAgICAgICAgICAgICAgdmFsdWU6ICJ5b3VTZW5kIiwKICAgICAgICAgICAgICB0YXg6ICJ5b3VSZWNlaXZlIiwKICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pZDogIjEyMyIsCiAgICAgICAgICAgICAgY3VycmVuY3k6ICJ0IiwKICAgICAgICAgICAgICBpdGVtczogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBpdGVtX2lkOiAiU0tVXzEyMyIsCiAgICAgICAgICAgICAgICAgIGl0ZW1fbmFtZTogInNsdWciLAogICAgICAgICAgICAgICAgICBwcmljZTogInlvdVNlbmQiLAogICAgICAgICAgICAgICAgICBpdGVtX3ZhcmlhbnQ6ICJ0cmFja19pZCIsCiAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAiIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKICAgICAgICByZSA9IChJKSA9PiB7CiAgICAgICAgICBzLnVwZGF0ZURpcmVjdGlvbkluZm8oSSksCiAgICAgICAgICAgIHMudXBkYXRlU2VuZER5bmFtaWNGaWVsZHMoSS5zZW5kRHluYW1pY0ZpZWxkcyA/PyBbXSksCiAgICAgICAgICAgIHMudXBkYXRlTWVtbyhJLnNlbmREeW5hbWljRmllbGRzID8/IFtdKSwKICAgICAgICAgICAgcy51cGRhdGVSZWNlaXZlRHluYW1pY0ZpZWxkcyhJLnJlY2VpdmVEeW5hbWljRmllbGRzID8/IFtdKTsKICAgICAgICB9LAogICAgICAgIG1lID0gKCkgPT4gewogICAgICAgICAgcy51cGRhdGVEaXJlY3Rpb25DdXJyZW50U3RlcChaLldBTExFVF9JTkZPKTsKICAgICAgICB9LAogICAgICAgIE5lID0gYXN5bmMgKEkpID0+IHsKICAgICAgICAgIGkudmFsdWUgPSB7CiAgICAgICAgICAgIHNpZGU6IEksCiAgICAgICAgICAgIGluY2x1ZGVzOiBTZS5DQUxDVUxBVEUsCiAgICAgICAgICAgIHNlbmRfY3VycmVuY3k6IHYudmFsdWUuY3VycmVuY3lfaWQsCiAgICAgICAgICAgIHJlY2VpdmVfY3VycmVuY3k6IHkudmFsdWUuY3VycmVuY3lfaWQsCiAgICAgICAgICAgIC4uLihiLnZhbHVlICYmIHsgc2VuZF9hbW91bnQ6IGIudmFsdWUgfSksCiAgICAgICAgICB9OwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgKEIudmFsdWUgPSAhMCksIGF3YWl0IFkoKSwgYmUoKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIEIudmFsdWUgPSAhMTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGJlID0gKCkgPT4gewogICAgICAgICAgaWYgKCFiLnZhbHVlIHx8ICFNLnZhbHVlKSByZXR1cm47CiAgICAgICAgICBjb25zdCB7CiAgICAgICAgICAgICAgeW91U2VuZDogSSwKICAgICAgICAgICAgICBmZWVTZW5kOiB1LAogICAgICAgICAgICAgIHRvdGFsU2VuZDogdywKICAgICAgICAgICAgICB3ZVJlY2VpdmU6IEYsCiAgICAgICAgICAgIH0gPSBzLmNhbGN1bGF0ZURhdGEsCiAgICAgICAgICAgIHsgbGFiZWw6IEwsIGZlZTogRyB9ID0gdSwKICAgICAgICAgICAgeyB3ZVNlbmQ6IHRlLCBmZWVSZWNlaXZlOiBkZSwgeW91UmVjZWl2ZTogZ2UgfSA9IHMuY2FsY3VsYXRlRGF0YSwKICAgICAgICAgICAgeyBsYWJlbDogaWUsIGZlZTogT2UgfSA9IGRlOwogICAgICAgICAgKEMudmFsdWUgPSB7IHlvdVNlbmQ6IEksIFtMXTogRywgdG90YWxTZW5kOiB3LCB3ZVJlY2VpdmU6IEYgfSksCiAgICAgICAgICAgIChQLnZhbHVlID0gewogICAgICAgICAgICAgICJXZSBTZW5kIjogdGUsCiAgICAgICAgICAgICAgLi4uKEUudmFsdWUgPyB7fSA6IHsgW2llXTogT2UgfSksCiAgICAgICAgICAgICAgLi4uKEUudmFsdWUgPyB7fSA6IHsgIllvdSBSZWNlaXZlIjogZ2UgfSksCiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCiAgICAgICAgRWUgPSAoSSwgdSkgPT4gewogICAgICAgICAgaS52YWx1ZSA9IHsKICAgICAgICAgICAgc2lkZTogSSwKICAgICAgICAgICAgaW5jbHVkZXM6IFNlLkNBTENVTEFURSwKICAgICAgICAgICAgc2VuZF9jdXJyZW5jeTogdi52YWx1ZS5jdXJyZW5jeV9pZCwKICAgICAgICAgICAgcmVjZWl2ZV9jdXJyZW5jeTogeS52YWx1ZS5jdXJyZW5jeV9pZCwKICAgICAgICAgICAgW2Ake0l9X2Ftb3VudGBdOiB1LAogICAgICAgICAgfTsKICAgICAgICB9LAogICAgICAgIGtlID0gKEkpID0+IHsKICAgICAgICAgIEkgPT09IGZlLlNFTkQKICAgICAgICAgICAgPyAoKHYudmFsdWUgPSBjLnZhbHVlWzBdKSwgUmUoUGUuU0VORF9TTFVHLCB2LnZhbHVlLnNsdWcpKQogICAgICAgICAgICA6ICgoeS52YWx1ZSA9IF8udmFsdWVbMF0pLCBSZShQZS5SRUNFSVZFX1NMVUcsIHkudmFsdWUuc2x1ZykpOwogICAgICAgIH0sCiAgICAgICAgQWUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICBSZShQZS5SRUNFSVZFX1NMVUcsIHkudmFsdWUuc2x1ZyksCiAgICAgICAgICAgIChiLnZhbHVlIHx8IE0udmFsdWUpICYmCiAgICAgICAgICAgICAgKGF3YWl0IE5lKGZlLlNFTkQpLCAoTS52YWx1ZSA9IHMuY2FsY3VsYXRlRGF0YS55b3VSZWNlaXZlKSk7CiAgICAgICAgfSwKICAgICAgICBvZSA9IChJKSA9PiB7CiAgICAgICAgICBjb25zdCB1ID0gSS5tYXAoCiAgICAgICAgICAgICh7CiAgICAgICAgICAgICAgcmFuZ2VfbGltaXQ6IHcsCiAgICAgICAgICAgICAgZGVzY3JpcHRpb25zOiBGLAogICAgICAgICAgICAgIHJlY2VpdmVfY3VycmVuY3k6IEwsCiAgICAgICAgICAgICAgY2FsY3VsYXRlOiBHLAogICAgICAgICAgICB9KSA9PiAoewogICAgICAgICAgICAgIHJhbmdlX2xpbWl0OiB3LAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uczogRiwKICAgICAgICAgICAgICBjdXJyZW5jeV9pZDogTC5jdXJyZW5jeV9pZCwKICAgICAgICAgICAgICB0aXRsZTogTC50aXRsZSwKICAgICAgICAgICAgICBzbHVnOiBMLnNsdWcsCiAgICAgICAgICAgICAgY3VycmVuY3lfY29kZTogTC5jdXJyZW5jeV9jb2RlLAogICAgICAgICAgICAgIGlzX2NyeXB0bzogTC5pc19jcnlwdG8sCiAgICAgICAgICAgICAgaWNvbjogTC5pY29uLAogICAgICAgICAgICAgIGNhbGN1bGF0ZTogRywKICAgICAgICAgICAgfSkKICAgICAgICAgICk7CiAgICAgICAgICBpZiAoaC5maWx0ZXJSZWNlaXZlLmxlbmd0aCA+IDAgJiYgdS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIF8udmFsdWUgPSB1LmZpbHRlcigodykgPT4gZyhoLmZpbHRlclJlY2VpdmUsIHcpKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgXy52YWx1ZSA9IHU7CiAgICAgICAgfSwKICAgICAgICBVZSA9ICgpID0+IHsKICAgICAgICAgIGNvbnN0IEkgPSBtLnF1ZXJ5W1BlLlNFTkRfU0xVR107CiAgICAgICAgICBCZShjLCBJLCBmZS5TRU5EKTsKICAgICAgICB9LAogICAgICAgIEhlID0gKCkgPT4gewogICAgICAgICAgY29uc3QgSSA9IG0ucXVlcnlbUGUuUkVDRUlWRV9TTFVHXTsKICAgICAgICAgIEJlKF8sIEksIGZlLlJFQ0VJVkUpOwogICAgICAgIH0sCiAgICAgICAgQmUgPSAoSSwgdSwgdykgPT4gewogICAgICAgICAgaWYgKCF1KSB7CiAgICAgICAgICAgIGtlKHcpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBGID0gSS52YWx1ZS5maW5kKChMKSA9PiBMLnNsdWcgPT09IHUpOwogICAgICAgICAgaWYgKCFGKSB7CiAgICAgICAgICAgIGtlKHcpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICB3ID09PSBmZS5TRU5EID8gKHYudmFsdWUgPSBGKSA6ICh5LnZhbHVlID0gRik7CiAgICAgICAgfSwKICAgICAgICBSZSA9IChJLCB1KSA9PiB7CiAgICAgICAgICBjb25zdCB3ID0geyAuLi5tLnF1ZXJ5LCBbSV06IHUgfTsKICAgICAgICAgIGQucHVzaCh7IHBhdGg6IG0ucGF0aCwgcXVlcnk6IHcgfSk7CiAgICAgICAgfTsKICAgICAgcmV0dXJuIChJLCB1KSA9PiB7CiAgICAgICAgY29uc3QgdyA9IFNzLAogICAgICAgICAgRiA9IEVzLAogICAgICAgICAgTCA9IFVzLAogICAgICAgICAgRyA9IGF0LAogICAgICAgICAgdGUgPSBudDsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbigpLAogICAgICAgICAgcCgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICBvKAogICAgICAgICAgICAgIEZlLAogICAgICAgICAgICAgIHsgY2xhc3M6ICJteC1sZy0xMCIgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICBsZSwKICAgICAgICAgICAgICAgICAgICB7IGxnOiAiNiIsIGNvbHM6ICIxMiIsIGNsYXNzOiAibWItNCIgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRlLCBnZSwgaWUsIE9lOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgICAgICAgIHQoaikKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeihJZSwgeyBrZXk6IDAsIHR5cGU6ICJsaXN0LWl0ZW0tdHdvLWxpbmUiIH0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IDEgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGVjdGVkLWN1cnJlbmN5IjogdCh2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6c2VsZWN0ZWRDdXJyZW5jeSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVbMF0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVbMF0gPSAod2UpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGUodikgPyAodi52YWx1ZSA9IHdlKSA6IG51bGwpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogdChiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6YW1vdW50IjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdVsxXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodVsxXSA9ICh3ZSkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZShiKSA/IChiLnZhbHVlID0gd2UpIDogbnVsbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50TW9kaWZpZXJzOiB7IG51bWJlcjogITAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiB0KEIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiB0KGMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0YXRpb246CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2UgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGUgPSB0KHkpKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGRlLnJhbmdlX2xpbWl0KSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2Uuc2VuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyLXNsdWdzIjogaC5maWx0ZXJTZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbW91bnQtbGFiZWwiOiAid2VSZWNlaXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxlY3RlZC1jdXJyZW5jeSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFtb3VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvYWRpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVtcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpbWl0YXRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXItc2x1Z3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiB0KGIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6YW1vdW50IjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVbMl0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1WzJdID0gKHdlKSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZShiKSA/IChiLnZhbHVlID0gd2UpIDogbnVsbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50TW9kaWZpZXJzOiB7IG51bWJlcjogITAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogdChCKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJhbmdlLWxpbWl0IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT2UgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGllID0gdCh5KSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGllLnJhbmdlX2xpbWl0KSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBPZS5zZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJhbW91bnQiLCAibG9hZGluZyIsICJyYW5nZS1saW1pdCJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KFYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSS4kdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjaGFuZ2UuY291cG9uLndhcm4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAidy1mdWxsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZGVzY3JpcHRpb24iXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgIGxlLAogICAgICAgICAgICAgICAgICAgIHsgbGc6ICI2IiwgY29sczogIjEyIiB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGUsIGdlOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgICAgICAgIHQoaikKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeihJZSwgeyBrZXk6IDAsIHR5cGU6ICJsaXN0LWl0ZW0tdHdvLWxpbmUiIH0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IDEgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbGVjdGVkLWN1cnJlbmN5IjogdCh5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6c2VsZWN0ZWRDdXJyZW5jeSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVbM10gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVbM10gPSAoaWUpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGUoeSkgPyAoeS52YWx1ZSA9IGllKSA6IG51bGwpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IHQoTSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOmFtb3VudCI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVbNF0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVbNF0gPSAoaWUpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGUoTSkgPyAoTS52YWx1ZSA9IGllKSA6IG51bGwpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRNb2RpZmllcnM6IHsgbnVtYmVyOiAhMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IHQoQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHQoXyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRhdGlvbjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZSA9IHQoeSkucmFuZ2VfbGltaXQpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBkZS5yZWNlaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXItc2x1Z3MiOiBoLmZpbHRlclJlY2VpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFtb3VudC1sYWJlbCI6ICJ3ZVNlbmQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGU6ICJyZWNlaXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbi1tZW51IjogdChVKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxlY3RlZC1jdXJyZW5jeSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFtb3VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvYWRpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVtcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpbWl0YXRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXItc2x1Z3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVuLW1lbnUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiB0KE0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6YW1vdW50IjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVbNV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1WzVdID0gKGllKSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZShNKSA/IChNLnZhbHVlID0gaWUpIDogbnVsbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudE1vZGlmaWVyczogeyBudW1iZXI6ICEwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IHQoQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyYW5nZS1saW1pdCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlID0gdCh5KS5yYW5nZV9saW1pdCkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2UucmVjZWl2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiYW1vdW50IiwgImxvYWRpbmciLCAicmFuZ2UtbGltaXQiXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChWKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRldGFpbC1saXN0IjogdChQKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJ3LWZ1bGwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJkZXRhaWwtbGlzdCJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KEUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKCJkaXYiLCBxcywgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgY29sb3I6ICJwcmltYXJ5LTYwMCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVbNl0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodVs2XSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFcoIiBtZGktaW5mb3JtYXRpb24gIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkuJHQoImV4Y2hhbmdlLnBheXBhbEd1aWQudGl0bGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoSS4kdCgiZXhjaGFuZ2UucGF5cGFsR3VpZC5kZXMiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogImh0dHBzOi8vd3d3LnBheXBhbC5jb20vdXMvd2ViYXBwcy9tcHAvbWVyY2hhbnQtZmVlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiAiX2JsYW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdC0yIGJnLXdoaXRlIGN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIndoaXRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgic3BhbiIsIFlzLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogIm1yLTEiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1WzddIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVbN10gPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG1kaS1leHBvcnQgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJLiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGNoYW5nZS5wYXlwYWxHdWlkLmJ0biIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgIG8obGUsIHsgY29sczogIjEyIiwgY2xhc3M6ICJwYS0wIGZsZXgganVzdGlmeS1jZW50ZXIiIH0pLAogICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgIGxlLAogICAgICAgICAgICAgICAgICAgIHsgY29sczogIjEyIiwgY2xhc3M6ICJqdXN0aWZ5LWNlbnRlciBkLWZsZXggcHQtbGctMCBweS0wIiB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICB0KGopCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeihJZSwgeyBrZXk6IDAsIHR5cGU6ICJjaGlwIiwgIm1pbi13aWR0aCI6ICIxNjAiIH0pKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHooCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoaWRlLXNlYyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmltYXJ5LWlkIjogInN0ZXAxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiB0KEIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhdChWKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpbWFyeS10ZXh0IjogSS4kdCgiZXhjaGFuZ2UubmV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VibWl0OiBlZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJsb2FkaW5nIiwgImRpc2FibGVkIiwgInByaW1hcnktdGV4dCJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICApLAogICAgICAgICAgXSkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9KSwKICBXcyA9IHsKICAgIGtleTogMCwKICAgIGNsYXNzOiAicC02IGJvcmRlciAhYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtMnhsIHNoYWRvdy14cyBtdC02IHctZnVsbCIsCiAgfSwKICBIcyA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIHRleHQtZ3JheS05MDAgbWItMSIgfSwKICBLcyA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXJlZ3VsYXIgdGV4dC1ncmF5LTkwMCBtYi0yIiB9LAogIFFzID0geyBjbGFzczogInRleHQtc20tcmVndWxhciB0ZXh0LWdyYXktOTAwIiB9LAogIFhzID0gewogICAgX19uYW1lOiAiaW5kZXgiLAogICAgZW1pdHM6IFsiaGFuZGVsRXJyb3IiXSwKICAgIHNldHVwKGEsIHsgZW1pdDogZiB9KSB7CiAgICAgIGNvbnN0IGwgPSBzdCgiZGlhbG9nIiksCiAgICAgICAgeyAkaXNEZXNrdG9wOiBtIH0gPSB4ZSgpLAogICAgICAgIGQgPSBrdCgpLAogICAgICAgIHMgPSB2ZSgpLAogICAgICAgIGMgPSBmLAogICAgICAgIF8gPSBTKCEwKSwKICAgICAgICB2ID0gUyghMSksCiAgICAgICAgeSA9IFMoITEpLAogICAgICAgIGkgPSBTKHsgZW1haWw6ICIiIH0pLAogICAgICAgIEMgPSBTKG51bGwpLAogICAgICAgIFAgPSBTKFtdKTsKICAgICAgTGUoKCkgPT4gQigpKTsKICAgICAgY29uc3QgYiA9IGQuJHN1YnNjcmliZSgoZywgRCkgPT4gewogICAgICAgICAgRC51c2VySW5mbyAmJgogICAgICAgICAgICBELnVzZXJJbmZvLmVtYWlsICYmCiAgICAgICAgICAgICgoaS52YWx1ZS5lbWFpbCA9IGQudXNlckluZm8uZW1haWwpLCAodi52YWx1ZSA9ICEwKSk7CiAgICAgICAgfSksCiAgICAgICAgTSA9IHEoKCkgPT4gewogICAgICAgICAgdmFyIGc7CiAgICAgICAgICByZXR1cm4gKGcgPSBzID09IG51bGwgPyB2b2lkIDAgOiBzLmRpcmVjdGlvbkluZm8pID09IG51bGwKICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgOiBnLnJlY2VpdmVEeW5hbWljRmllbGRzLmZpbHRlcigoRCkgPT4gRC5pc190cmFuc2FjdGlvbiA9PT0gMCk7CiAgICAgICAgfSksCiAgICAgICAgaiA9IHEoKCkgPT4gZC51c2VySW5mbyAmJiBkLnVzZXJJbmZvLmVtYWlsKSwKICAgICAgICBCID0gKCkgPT4gewogICAgICAgICAgai52YWx1ZSAmJiAoKGkudmFsdWUuZW1haWwgPSBkLnVzZXJJbmZvLmVtYWlsKSwgKHYudmFsdWUgPSAhMCkpOwogICAgICAgIH0sCiAgICAgICAgJCA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHZhciBnLCBELCBrLCB4OwogICAgICAgICAgaWYgKChhd2FpdCBoKCksICEhXy52YWx1ZSkpIHsKICAgICAgICAgICAgKHkudmFsdWUgPSAhMCksIGF3YWl0IFUoKTsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBjb25zdCB7IGRhdGE6IFkgfSA9IGF3YWl0IHVlKFF0LCB7CiAgICAgICAgICAgICAgICBtZXRob2Q6ICJQT1NUIiwKICAgICAgICAgICAgICAgIGJvZHk6IGkudmFsdWUsCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgVChZLnZhbHVlLmRhdGEuaW52b2ljZSksIE4oKTsKICAgICAgICAgICAgfSBjYXRjaCAoWSkgewogICAgICAgICAgICAgIGNvbnN0IEggPQogICAgICAgICAgICAgICAgKCh4ID0KICAgICAgICAgICAgICAgICAgKGsgPQogICAgICAgICAgICAgICAgICAgIChEID0KICAgICAgICAgICAgICAgICAgICAgIChnID0gWSA9PSBudWxsID8gdm9pZCAwIDogWS5yZXNwb25zZSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICA6IGcuZGF0YSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgIDogRC5lcnJvcnMpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogay52YWxpZGF0aW9uc1swXSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICA6IHgubWVzc2FnZSkgPz8gbnVsbDsKICAgICAgICAgICAgICBjKCJoYW5kZWxFcnJvciIsIEgpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIHkudmFsdWUgPSAhMTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgVSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIGF3YWl0IFYoaS52YWx1ZSksCiAgICAgICAgICAgIChpLnZhbHVlID0gewogICAgICAgICAgICAgIC4uLmkudmFsdWUsCiAgICAgICAgICAgICAgaW5jbHVkZXM6IFNlLldBTExFVF9JTkZPLAogICAgICAgICAgICAgIGNhbGN1bGF0aW9uX2tleTogcy5jYWxjdWxhdGVEYXRhLmNhbGN1bGF0aW9uX2tleSwKICAgICAgICAgICAgICByZWNlaXZlX2Ftb3VudDogcy5jYWxjdWxhdGVEYXRhLnlvdVJlY2VpdmUsCiAgICAgICAgICAgICAgcmVjZWl2ZV9jdXJyZW5jeTogcy5jYWxjdWxhdGVEYXRhLnJlY2VpdmVDdXJyZW5jeS5jdXJyZW5jeV9pZCwKICAgICAgICAgICAgICBzZW5kX2Ftb3VudDogcy5jYWxjdWxhdGVEYXRhLnlvdVNlbmQsCiAgICAgICAgICAgICAgc2VuZF9jdXJyZW5jeTogcy5jYWxjdWxhdGVEYXRhLnNlbmRDdXJyZW5jeS5jdXJyZW5jeV9pZCwKICAgICAgICAgICAgICBzaWRlOiBzLnNpZGUsCiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCiAgICAgICAgaCA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHZhciBrOwogICAgICAgICAgbGV0IEQgPSAoCiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKAogICAgICAgICAgICAgIFAudmFsdWUubWFwKCh4KSA9PgogICAgICAgICAgICAgICAgeCAmJiB0eXBlb2YgeC52YWxpZGF0ZUlucHV0ID09ICJmdW5jdGlvbiIKICAgICAgICAgICAgICAgICAgPyB4LnZhbGlkYXRlSW5wdXQoKQogICAgICAgICAgICAgICAgICA6ICEwCiAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICApLmV2ZXJ5KEJvb2xlYW4pOwogICAgICAgICAgaWYgKCEoKGsgPSBkID09IG51bGwgPyB2b2lkIDAgOiBkLnVzZXJJbmZvKSAhPSBudWxsICYmIGsuZW1haWwpKSB7CiAgICAgICAgICAgIGNvbnN0IHggPSBhd2FpdCBDLnZhbHVlLnZhbGlkYXRlSW5wdXQoKTsKICAgICAgICAgICAgRCA9IEQgJiYgeDsKICAgICAgICAgIH0KICAgICAgICAgIF8udmFsdWUgPSBEOwogICAgICAgIH0sCiAgICAgICAgRSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIGF3YWl0IGgoKSwKICAgICAgICAgICAgXy52YWx1ZSAmJgogICAgICAgICAgICAgIGwub3BlbigKICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgUnQsCiAgICAgICAgICAgICAgICB7ICJtYXgtd2lkdGgiOiA0MzUgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgcHJvcDogewogICAgICAgICAgICAgICAgICAgIGRpYWxvZ1R5cGU6IGh0LlNJR05fSU4sCiAgICAgICAgICAgICAgICAgICAgc2tpcExhc3RTdGVwOiAhMCwKICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogJCwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgViA9IChnKSA9PiB7CiAgICAgICAgICBzLnVwZGF0ZVVzZXJJbmZvKGcpOwogICAgICAgIH0sCiAgICAgICAgVCA9IChnKSA9PiB7CiAgICAgICAgICBzLnVwZGF0ZUludm9pY2UoZyk7CiAgICAgICAgfSwKICAgICAgICBOID0gKCkgPT4gewogICAgICAgICAgcy51cGRhdGVEaXJlY3Rpb25DdXJyZW50U3RlcChaLlJFVklFV19PUkRFUik7CiAgICAgICAgfSwKICAgICAgICBPID0gKCkgPT4gewogICAgICAgICAgcy51cGRhdGVEaXJlY3Rpb25DdXJyZW50U3RlcChaLkRJUkVDVElPTik7CiAgICAgICAgfTsKICAgICAgcmV0dXJuICgKICAgICAgICB3dCgoKSA9PiB7CiAgICAgICAgICBiKCk7CiAgICAgICAgfSksCiAgICAgICAgKGcsIEQpID0+IHsKICAgICAgICAgIGNvbnN0IGsgPSBUZTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIG4oKSwKICAgICAgICAgICAgeigKICAgICAgICAgICAgICBGZSwKICAgICAgICAgICAgICB7IGp1c3RpZnk6ICJjZW50ZXIiLCBjbGFzczogInAtNCIgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgICAgKG4oITApLAogICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICBjZSgKICAgICAgICAgICAgICAgICAgICAgIHQoTSksCiAgICAgICAgICAgICAgICAgICAgICAoeCwgWSkgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICBuKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHooCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IFksIGNvbHM6ICIxMiIsIGNsYXNzOiAibWluLWgtZnVsbCBwYS0wIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2ZvcjogITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IChIKSA9PiAodChQKVtZXSA9IEgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3QtcGFyYW1zIjogdChpKVt4Lm5hbWVdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOnJlcXVlc3RQYXJhbXMiOiAoSCkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQoaSlbeC5uYW1lXSA9IEgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogeC5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHgubGFiZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXM6IHguZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogeC5wbGFjZWhvbGRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHgudmFsaWRhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVxdWVzdC1wYXJhbXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOnJlcXVlc3RQYXJhbXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWxpZGF0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICBsZSwKICAgICAgICAgICAgICAgICAgICB7IGNvbHM6ICIxMiIsIGNsYXNzOiAicGEtMCIgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9rZXk6ICJlbWFpbElucHV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0LXBhcmFtcyI6IHQoaSkuZW1haWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6cmVxdWVzdFBhcmFtcyI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERbMF0gfHwgKERbMF0gPSAoeCkgPT4gKHQoaSkuZW1haWwgPSB4KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdChpKS5lbWFpbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJlbWFpbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdCh2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBnLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLmVtYWlsQWRkcmVzcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzOiBnLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLmVtYWlsRGVzIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogInlvdXIgZW1haWwuLi4gIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHQodikgPyAiIiA6ICJyZXF1aXJlZCB8IGVtYWlsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVxdWVzdC1wYXJhbXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNhYmxlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsaWRhdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKSwKCiAgICAgICAgICAgICAgICAgIHQoaikKICAgICAgICAgICAgICAgICAgICA/IFIoIiIsICEwKQogICAgICAgICAgICAgICAgICAgIDogKG4oKSwKICAgICAgICAgICAgICAgICAgICAgIHAoImRpdiIsIFdzLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgSHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcihnLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLnN1Z2dlc3RMb2dpbi50aXRsZSIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgS3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcihnLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLnN1Z2dlc3RMb2dpbi5zdWJUaXRsZSIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChuKCEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLiR0bSgiZXhjaGFuZ2Uud2FsbGV0SW5mby5zdWdnZXN0TG9naW4uaXRlbXMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4LCBZKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgeyBrZXk6IFksIGNsYXNzOiAiZmxleCBpdGVtcy1jZW50ZXIiIH0sIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEWzFdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFsxXSA9IGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm91bmRlZC1mdWxsIGJnLWdyYXktOTAwIHctMS41IGgtMS41IG14LTIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgUXMsIHIoZy4kcnQoeC5pdGVtKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAicHJpbWFyeS02MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRlZDogImxnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjEwMCUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0KG0pID8gNDggOiA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ub25lIHNoYWRvdy14cyB0ZXh0LW1kLXNlbWlib2xkIG10LTQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogRSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjaGFuZ2Uud2FsbGV0SW5mby5zdWdnZXN0TG9naW4uYnRuTGFiZWwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgIFsiaGVpZ2h0Il0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIF0pKSwKICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICBsZSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBjb2xzOiAiMTIiLAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHNlKFsKICAgICAgICAgICAgICAgICAgICAgICAgInB0LTYgcHgtMCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgImZsZXgganVzdGlmeS1jZW50ZXIgZ2FwLTQiOiB0KG0pIH0sCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0KGopID8gInByaW1hcnktNjAwIiA6ICIhZ3JheS0zMDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRlZDogImxnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6IHQoaikgPyAiZWxldmF0ZWQiIDogIm91dGxpbmVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiB0KHkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHQobSkgPyAiY2FsYygxMDAlIC0gOTZweCkiIDogIjEwMCUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0KG0pID8gNDggOiA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBzZShbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0LW5vbmUgc2hhZG93LXhzIGxnOnRleHQtbWQtc2VtaWJvbGQgdGV4dC1zbS1zZW1pYm9sZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KG0pID8gIm9yZGVyLTEiIDogIm9yZGVyLTIgbWItNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAidGV4dC1ncmF5LTcwMCAhYm9yZGVyLWdyYXktMzAwIjogIXQoaikgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogJCwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXKHIoZy4kdCgiZXhjaGFuZ2Uud2FsbGV0SW5mby5uZXh0IikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YXJpYW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2FkaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWR0aCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjbGFzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6ICJ0ZXh0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHQobSkgPyA0OCA6IDQwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHQobSkgPyAiODBweCIgOiAiMTAwJSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQtbm9uZSB0ZXh0LWdyYXktNjAwIGxnOnRleHQtbWQtc2VtaWJvbGQgdGV4dC1zbS1zZW1pYm9sZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBPLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbVyhyKGcuJHQoImV4Y2hhbmdlLmJhY2siKSksIDEpXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICBbImhlaWdodCIsICJ3aWR0aCJdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgIFsiY2xhc3MiXQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgKQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICk7CiAgICB9LAogIH0sCiAgSnMgPSB7CiAgICBrZXk6IDAsCiAgICBjbGFzczoKICAgICAgImxnOmZsZXggYWxpZ24tY2VudGVyIGp1c3RpZnktbGctc3BhY2UtYmV0d2VlbiBtYi02IG14LWxnLTEwIHRleHQtZ3JheS05MDAiLAogIH0sCiAgWnMgPSB7IGNsYXNzOiAiZmxleCBmbGV4LWxnLWNvbHVtbiBpdGVtcy1jZW50ZXIiIH0sCiAgZWwgPSB7IGNsYXNzOiAicm91bmRlZC1mdWxsIG1yLWxnLTAgbXItNCBtYi0zIiB9LAogIHRsID0geyBjbGFzczogInRleHQtZ3JheS05MDAgZmxleCBnYXAtMSB0ZXh0LW1kLWJvbGQgdGV4dC1sZy1jZW50ZXIiIH0sCiAgYWwgPSB7IGtleTogMCB9LAogIHNsID0geyBjbGFzczogInRleHQtZXJyb3ItNjAwIGxpbmUtdGhyb3VnaCBteC0xIiB9LAogIGxsID0geyBjbGFzczogInRleHQtc20tbWVkaXVtIHRleHQtZ3JheS01MDAiIH0sCiAgbmwgPSB7IGtleTogMCwgY2xhc3M6ICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQiIH0sCiAgcmwgPSB7IGtleTogMSwgY2xhc3M6ICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQgbS02IiB9LAogIG9sID0geyBjbGFzczogImZsZXggZmxleC1sZy1jb2x1bW4gaXRlbXMtY2VudGVyIiB9LAogIGlsID0geyBjbGFzczogInJvdW5kZWQtZnVsbCBtci1sZy0wIG1yLTQgbWItMyIgfSwKICBjbCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktOTAwIHRleHQtbWQtYm9sZCB0ZXh0LWxnLWNlbnRlciIgfSwKICBkbCA9IHsgY2xhc3M6ICJ0ZXh0LXNtLW1lZGl1bSB0ZXh0LWdyYXktNTAwIiB9LAogIHVsID0geyBrZXk6IDEsIGNsYXNzOiAibGc6ZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1ncmF5LTkwMCIgfSwKICBtbCA9IHsgY2xhc3M6ICIiIH0sCiAgcGwgPSB7IGNsYXNzOiAiZmxleCBmbGV4LWxnLWNvbHVtbiBhbGlnbi1sZy1zdGFydCBhbGlnbi1jZW50ZXIiIH0sCiAgeWwgPSB7IGNsYXNzOiAicm91bmRlZC1mdWxsIG1iLTMiIH0sCiAgdmwgPSB7IGNsYXNzOiAibWItbGctNCBtbC00IG1sLWxnLTAgdGV4dC1zbS1tZWRpdW0gdGV4dC1ncmF5LTYwMCIgfSwKICBnbCA9IHsgY2xhc3M6ICJmbGV4IiB9LAogIGZsID0geyBjbGFzczogImZvbnQtYm9sZCIgfSwKICBfbCA9IHsga2V5OiAwLCBjbGFzczogImZsZXgiIH0sCiAgaGwgPSB7IGNsYXNzOiAidGV4dC1lcnJvci02MDAgbGluZS10aHJvdWdoIG14LTEiIH0sCiAgeGwgPSB7IGtleTogMSB9LAogIGJsID0geyBjbGFzczogInNlbGYtY2VudGVyIiB9LAogIGtsID0geyBrZXk6IDAsIGNsYXNzOiAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIiB9LAogIHdsID0geyBrZXk6IDEsIGNsYXNzOiAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIG0tNiIgfSwKICAkbCA9IHsgY2xhc3M6ICIiIH0sCiAgQ2wgPSB7IGNsYXNzOiAiZmxleCBmbGV4LWxnLWNvbHVtbiBhbGlnbi1sZy1zdGFydCBhbGlnbi1jZW50ZXIiIH0sCiAgU2wgPSB7IGNsYXNzOiAicm91bmRlZC1mdWxsIG1iLTMiIH0sCiAgRGwgPSB7IGNsYXNzOiAibWItbGctNCBtbC00IG1sLWxnLTAgdGV4dC1zbS1tZWRpdW0gdGV4dC1ncmF5LTYwMCIgfSwKICBJbCA9IHsgY2xhc3M6ICJmbGV4IiB9LAogIEVsID0geyBjbGFzczogImZvbnQtYm9sZCIgfSwKICBndCA9ICJ0ZXh0LXhzLW1lZGl1bSB0ZXh0LWdyYXktNTAwIiwKICBPdCA9IHsKICAgIF9fbmFtZTogIkRpcmVjdGlvbkRldGFpbCIsCiAgICBwcm9wczogewogICAgICBzdGVwOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgaGFzRGlzY291bnQ6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgdG90YWxBbW91bnQ6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICBzZW5kQW1vdW50OiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgIH0sCiAgICBzZXR1cChhKSB7CiAgICAgIGNvbnN0IHsgJGlzRGVza3RvcDogZiB9ID0geGUoKSwKICAgICAgICBsID0gdmUoKSwKICAgICAgICBtID0gcSgoKSA9PiBkLnN0ZXAgPT09IFouUEFZX09SREVSKSwKICAgICAgICBkID0gYTsKICAgICAgcmV0dXJuIChzLCBjKSA9PiB7CiAgICAgICAgdmFyIF8sIHYsIHk7CiAgICAgICAgcmV0dXJuIHQobCkuY2FsY3VsYXRlRGF0YSAmJiB0KG0pCiAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgIHAoImRpdiIsIEpzLCBbCiAgICAgICAgICAgICAgZSgiZGl2IiwgWnMsIFsKICAgICAgICAgICAgICAgIGUoImRpdiIsIGVsLCBbCiAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgX2UsCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgc3JjOiB0KGwpLmNhbGN1bGF0ZURhdGEuc2VuZEN1cnJlbmN5Lmljb24sCiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjUwIiwKICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjUwIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICBbInNyYyJdCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgdGwsIFsKICAgICAgICAgICAgICAgICAgICBOdW1iZXIoCiAgICAgICAgICAgICAgICAgICAgICAoeSA9CiAgICAgICAgICAgICAgICAgICAgICAgICh2ID0gKF8gPSB0KGwpKSA9PSBudWxsID8gdm9pZCAwIDogXy5jYWxjdWxhdGVEYXRhKSA9PQogICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgICA6IHYuZGlzY291bnQpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgOiB5LnNlbmRfZGlzY291bnRfYW1vdW50CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICBwKCJkaXYiLCBhbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgIGUoInNwYW4iLCBzbCwgcih0KGwpLmNhbGN1bGF0ZURhdGEud2VSZWNlaXZlKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgVygiICIgKyByKHQobCkuY2FsY3VsYXRlRGF0YS55b3VTZW5kKSwgMSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBlKCJkaXYiLCBsbCwgcih0KGwpLmNhbGN1bGF0ZURhdGEuc2VuZEN1cnJlbmN5LnRpdGxlKSwgMSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICB0KGYpCiAgICAgICAgICAgICAgICAgID8gKG4oKSwgcCgic3BhbiIsIG5sLCAiIGNoZXZyb25fcmlnaHQgIikpCiAgICAgICAgICAgICAgICAgIDogKG4oKSwgcCgic3BhbiIsIHJsLCAiIGtleWJvYXJkX2Fycm93X2Rvd24gIikpLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIGUoImRpdiIsIG9sLCBbCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBpbCwgWwogICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgIF9lLAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIHNyYzogdChsKS5jYWxjdWxhdGVEYXRhLnJlY2VpdmVDdXJyZW5jeS5pY29uLAogICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwLAogICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNTAiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICBlKCJkaXYiLCBjbCwgcih0KGwpLmNhbGN1bGF0ZURhdGEud2VTZW5kIHx8IDApLCAxKSwKICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgZGwsIHIodChsKS5jYWxjdWxhdGVEYXRhLnJlY2VpdmVDdXJyZW5jeS50aXRsZSksIDEpLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0pKQogICAgICAgICAgOiB0KGwpLmNhbGN1bGF0ZURhdGEKICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgcCgiZGl2IiwgdWwsIFsKICAgICAgICAgICAgICBlKCJkaXYiLCBtbCwgWwogICAgICAgICAgICAgICAgZSgiZGl2IiwgcGwsIFsKICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgeWwsIFsKICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgX2UsCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogdChsKS5jYWxjdWxhdGVEYXRhLnNlbmRDdXJyZW5jeS5pY29uLAogICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjUwIiwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgdmwsIHIodChsKS5jYWxjdWxhdGVEYXRhLnNlbmRDdXJyZW5jeS50aXRsZSksIDEpLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBnbCwgWwogICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgZSgic3BhbiIsIHsgY2xhc3M6IHNlKGd0KSB9LCAiINCS0Ysg0L7RgtC/0YDQsNCy0LvRj9C10YLQtSAiKSwKICAgICAgICAgICAgICAgICAgICAgIGNbMF0gfHwgKGNbMF0gPSBlKCJiciIsIG51bGwsIG51bGwsIC0xKSksCiAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBmbCwgWwogICAgICAgICAgICAgICAgICAgICAgICBhLmhhc0Rpc2NvdW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgX2wsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgic3BhbiIsIGhsLCByKHQobCkuY2FsY3VsYXRlRGF0YS53ZVJlY2VpdmUpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgic3BhbiIsIG51bGwsIHIoYS5zZW5kQW1vdW50KSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKCJzcGFuIiwgeGwsIHIodChsKS5jYWxjdWxhdGVEYXRhLndlUmVjZWl2ZSksIDEpKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIGUoImRpdiIsIGJsLCBbCiAgICAgICAgICAgICAgICB0KGYpCiAgICAgICAgICAgICAgICAgID8gKG4oKSwgcCgic3BhbiIsIGtsLCAiIGNoZXZyb25fcmlnaHQgIikpCiAgICAgICAgICAgICAgICAgIDogKG4oKSwgcCgic3BhbiIsIHdsLCAiIGtleWJvYXJkX2Fycm93X2Rvd24gIikpLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIGUoImRpdiIsICRsLCBbCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBDbCwgWwogICAgICAgICAgICAgICAgICBlKCJkaXYiLCBTbCwgWwogICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICBfZSwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiB0KGwpLmNhbGN1bGF0ZURhdGEucmVjZWl2ZUN1cnJlbmN5Lmljb24sCiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCwKICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MCwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgRGwsIHIodChsKS5jYWxjdWxhdGVEYXRhLnJlY2VpdmVDdXJyZW5jeS50aXRsZSksIDEpLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBJbCwgWwogICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiBzZShndCkgfSwKICAgICAgICAgICAgICAgICAgICAgICAgcihzLiR0KCJleGNoYW5nZS53ZVNlbmQiKSksCiAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBjWzFdIHx8IChjWzFdID0gZSgiYnIiLCBudWxsLCBudWxsLCAtMSkpLAogICAgICAgICAgICAgICAgICAgICAgZSgic3BhbiIsIEVsLCByKHQobCkuY2FsY3VsYXRlRGF0YS53ZVNlbmQgfHwgMCksIDEpLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICBdKSkKICAgICAgICAgIDogUigiIiwgITApOwogICAgICB9OwogICAgfSwKICB9LAogIEFsID0gWWUoeyAuLi5TdCgpLCAuLi5YdChEYSgpLCBbImlubGluZSJdKSB9LCAiVkNoZWNrYm94IiksCiAgUmwgPSBHZSgpKHsKICAgIG5hbWU6ICJWQ2hlY2tib3giLAogICAgaW5oZXJpdEF0dHJzOiAhMSwKICAgIHByb3BzOiBBbCgpLAogICAgZW1pdHM6IHsgInVwZGF0ZTptb2RlbFZhbHVlIjogKGEpID0+ICEwLCAidXBkYXRlOmZvY3VzZWQiOiAoYSkgPT4gITAgfSwKICAgIHNldHVwKGEsIGYpIHsKICAgICAgbGV0IHsgYXR0cnM6IGwsIHNsb3RzOiBtIH0gPSBmOwogICAgICBjb25zdCBkID0gZXQoYSwgIm1vZGVsVmFsdWUiKSwKICAgICAgICB7IGlzRm9jdXNlZDogcywgZm9jdXM6IGMsIGJsdXI6IF8gfSA9IER0KGEpLAogICAgICAgIHYgPSBKdCgpLAogICAgICAgIHkgPSBxKCgpID0+IGEuaWQgfHwgYGNoZWNrYm94LSR7dn1gKTsKICAgICAgcmV0dXJuICgKICAgICAgICBKZSgoKSA9PiB7CiAgICAgICAgICBjb25zdCBbaSwgQ10gPSAkdChsKSwKICAgICAgICAgICAgUCA9IE1lLmZpbHRlclByb3BzKGEpLAogICAgICAgICAgICBiID0geXQuZmlsdGVyUHJvcHMoYSk7CiAgICAgICAgICByZXR1cm4gbygKICAgICAgICAgICAgTWUsCiAgICAgICAgICAgIERlKHsgY2xhc3M6IFsidi1jaGVja2JveCIsIGEuY2xhc3NdIH0sIGksIFAsIHsKICAgICAgICAgICAgICBtb2RlbFZhbHVlOiBkLnZhbHVlLAogICAgICAgICAgICAgICJvblVwZGF0ZTptb2RlbFZhbHVlIjogKE0pID0+IChkLnZhbHVlID0gTSksCiAgICAgICAgICAgICAgaWQ6IHkudmFsdWUsCiAgICAgICAgICAgICAgZm9jdXNlZDogcy52YWx1ZSwKICAgICAgICAgICAgICBzdHlsZTogYS5zdHlsZSwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAuLi5tLAogICAgICAgICAgICAgIGRlZmF1bHQ6IChNKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgewogICAgICAgICAgICAgICAgICBpZDogaiwKICAgICAgICAgICAgICAgICAgbWVzc2FnZXNJZDogQiwKICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogJCwKICAgICAgICAgICAgICAgICAgaXNSZWFkb25seTogVSwKICAgICAgICAgICAgICAgICAgaXNWYWxpZDogaCwKICAgICAgICAgICAgICAgIH0gPSBNOwogICAgICAgICAgICAgICAgcmV0dXJuIG8oCiAgICAgICAgICAgICAgICAgIHl0LAogICAgICAgICAgICAgICAgICBEZSgKICAgICAgICAgICAgICAgICAgICBiLAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGlkOiBqLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgImFyaWEtZGVzY3JpYmVkYnkiOiBCLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICQudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICByZWFkb25seTogVS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIEMsCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGgudmFsdWUgPT09ICExLAogICAgICAgICAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogZC52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTptb2RlbFZhbHVlIjogKEUpID0+IChkLnZhbHVlID0gRSksCiAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzOiBjLAogICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBfLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgbQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9CiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIHt9CiAgICAgICk7CiAgICB9LAogIH0pLAogIE9sID0geyBuYW1lOiAidGl0bGUiLCBjbGFzczogImxnOnBiLTggcGItNCIgfSwKICBQbCA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIHRleHQtZ3JheS05MDAiIH0sCiAgVmwgPSB7CiAgICBjbGFzczoKICAgICAgIm1iLTUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCBib3JkZXItb3BhY2l0eS0xMDAgcm91bmRlZC1sZyBwLTQgb3ZlcmZsb3cteS1zY3JvbGwgdGV4dC1zbS1yZWd1bGFyICF3aGl0ZXNwYWNlLWJyZWFrLXNwYWNlcyIsCiAgfSwKICBUbCA9IHsgY2xhc3M6ICJmbGV4IGdhcC0yIiB9LAogIE5sID0geyBjbGFzczogInByLTMiIH0sCiAgVWwgPSB7IGNsYXNzOiAidGV4dC1zbS1zZW1pYm9sZCB0ZXh0LWdyYXktODAwIHB0LTIiIH0sCiAgTGwgPSB7IGNsYXNzOiAiZmxleCBqdXN0aWZ5LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1jZW50ZXIgbXQtNCIgfSwKICBGbCA9IHsgY2xhc3M6ICJweC0xMCB0ZXh0LXNtLXNlbWlib2xkIiB9LAogIEJsID0geyBjbGFzczogInRleHQtZ3JheS03MDAgdGV4dC1zbS1zZW1pYm9sZCIgfSwKICBxbCA9IHsKICAgIF9fbmFtZTogImNvbmZpcm1PcmRlciIsCiAgICBwcm9wczogeyBsb2FkaW5nOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6ICExIH0gfSwKICAgIGVtaXRzOiBbImNsb3NlIiwgInNlbmQtZGF0YSJdLAogICAgc2V0dXAoYSwgeyBlbWl0OiBmIH0pIHsKICAgICAgY29uc3QgbCA9IGEsCiAgICAgICAgbSA9IGYsCiAgICAgICAgZCA9IHZlKCksCiAgICAgICAgeyAkaXNEZXNrdG9wOiBzIH0gPSB4ZSgpLAogICAgICAgIGMgPSBTKCExKSwKICAgICAgICBfID0gKCkgPT4gewogICAgICAgICAgbSgiY2xvc2UiKTsKICAgICAgICB9LAogICAgICAgIHYgPSAoKSA9PiB7CiAgICAgICAgICBtKCJzZW5kLWRhdGEiKTsKICAgICAgICB9LAogICAgICAgIHkgPSBxKCgpID0+CiAgICAgICAgICBkLmludm9pY2UuZGlyZWN0aW9uLmF1dG9fc2VuZAogICAgICAgICAgICA/IGQuaW52b2ljZS5kaXJlY3Rpb24uYXV0b19zZW5kX2Rlc2NyaXB0aW9uLmVuCiAgICAgICAgICAgIDogZC5pbnZvaWNlLmRpcmVjdGlvbi5tYW51YWxfc2VuZF9kZXNjcmlwdGlvbi5lbgogICAgICAgICk7CiAgICAgIHJldHVybiAoaSwgQykgPT4gewogICAgICAgIGNvbnN0IFAgPSBhdDsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbigpLAogICAgICAgICAgcCgKICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBjbGFzczogc2UoWwogICAgICAgICAgICAgICAgImZsZXggZmxleC1jb2wiLAogICAgICAgICAgICAgICAgdChzKSA/ICJtYXgtaC1bODV2aF0iIDogIm1heC1oLVs5MXZoXSIsCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICBlKCJkaXYiLCBPbCwgWwogICAgICAgICAgICAgICAgQ1sxXSB8fAogICAgICAgICAgICAgICAgICAoQ1sxXSA9IGUoCiAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICIgaW5mbyAiLAogICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICBQbCwKICAgICAgICAgICAgICAgICAgcihpLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLmFkZGl0aW9uYWxJbmZvcm1hdGlvbiIpKSwKICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBlKCJkaXYiLCBWbCwgcih0KHkpIHx8ICIiKSwgMSksCiAgICAgICAgICAgICAgZSgiZGl2IiwgVGwsIFsKICAgICAgICAgICAgICAgIGUoImRpdiIsIE5sLCBbCiAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgUmwsCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogdChjKSwKICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTptb2RlbFZhbHVlIjoKICAgICAgICAgICAgICAgICAgICAgICAgQ1swXSB8fCAoQ1swXSA9IChiKSA9PiAocGUoYykgPyAoYy52YWx1ZSA9IGIpIDogbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJwcmltYXJ5LTYwMCIsCiAgICAgICAgICAgICAgICAgICAgICBkZW5zaXR5OiAiY29tcGFjdCIsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgWyJtb2RlbFZhbHVlIl0KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgZSgiZGl2IiwgVWwsIFsKICAgICAgICAgICAgICAgICAgVygi0K8g0L7Qt9C90LDQutC+0LzQu9C10L0g0YEgIiArICIgIiwgMSksCiAgICAgICAgICAgICAgICAgIFcoItCj0YHQu9C+0LLQuNGP0LzQuCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyAiICsgIiAiLCAxKSwKICAgICAgICAgICAgICAgICAgVygiICIgKyByKGkuJHQoImV4Y2hhbmdlLmFuZCIpKSArICIgIiwgMSksCiAgICAgICAgICAgICAgICAgIFcoImMgQU1ML0tZQyDQv9C+0LvQuNGC0LjQutC+0LkgIiArICIgIiwgMSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBlKCJkaXYiLCBMbCwgWwogICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZDogInN0ZXAzZmluYWwiLAogICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGwubG9hZGluZywKICAgICAgICAgICAgICAgICAgICBjbGFzczogInJvdW5kZWQtNCBtYi0zIHRleHQtbm9uZSIsCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJwcmltYXJ5LTYwMCIsCiAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNDgiLAogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMTg1IiwKICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAibGciLAogICAgICAgICAgICAgICAgICAgIHRpbGU6ICIiLAogICAgICAgICAgICAgICAgICAgIHR5cGU6ICJzdWJtaXQiLAogICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhdChjKSwKICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB2LAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICBlKCJzcGFuIiwgRmwsIHIoaS4kdCgiZXhjaGFuZ2UuY29uZmlybSIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgWyJsb2FkaW5nIiwgImRpc2FibGVkIl0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICB5ZSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAiZ3JheS0yMDAiLAogICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6ICJvdXRsaW5lZCIsCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNDgiLAogICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICIxODUiLAogICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibXgtNCB0ZXh0LW5vbmUiLAogICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IF8sCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgIGUoInNwYW4iLCBCbCwgcihpLiR0KCJleGNoYW5nZS5jYW5jZWwiKSksIDEpLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIDIKICAgICAgICAgICkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9LAogIGpsID0geyBjbGFzczogIm14LWF1dG8iIH0sCiAgTWwgPSB7IGNsYXNzOiAibXQtbGctMjAgbXktNiIgfSwKICBZbCA9IHsgY2xhc3M6ICJmb250LWJvbGQgdGV4dC1ncmF5LTkwMCB0ZXh0LWxnIG1iLTIiIH0sCiAgR2wgPSB7IGtleTogMCB9LAogIHpsID0geyBrZXk6IDEgfSwKICBXbCA9IHsgY2xhc3M6ICJ0ZXh0LXhzLXJlZ3VsYXIgdGV4dC1ncmF5LTUwMCIgfSwKICBIbCA9IHsKICAgIGNsYXNzOgogICAgICAiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbXQtNCBiZy13YXJuaW5nLTI1IGJvcmRlciBib3JkZXItd2FybmluZy0zMDAgYm9yZGVyLW9wYWNpdHktMTAwIHJvdW5kZWQtbGcgcC0yIiwKICB9LAogIEtsID0geyBjbGFzczogInRleHQteHMtbWVkaXVtIHRleHQtd2FybmluZy03MDAiIH0sCiAgUWwgPSB7CiAgICBjbGFzczoKICAgICAgInAtNCBteS04IGJvcmRlciBiZy1zdWNjZXNzLTI1IHJvdW5kZWQtbGcgYm9yZGVyLXN1Y2Nlc3MtMzAwIGJvcmRlci1vcGFjaXR5LTEwMCBoaWRkZW4iLAogIH0sCiAgWGwgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTcwMCB0ZXh0LXNtLW1lZGl1bSBtYi0yIiB9LAogIEpsID0geyBjbGFzczogInctZnVsbCIgfSwKICBabCA9IHsgY2xhc3M6ICJ3LWZ1bGwgbGc6ZmxleCBpdGVtcy1zdGFydCBnYXAtNCIgfSwKICBlbiA9IHsgY2xhc3M6ICJmbGV4LWdyb3ciIH0sCiAgdG4gPSB7IGtleTogMCwgY2xhc3M6ICJ0ZXh0LWVycm9yLTYwMCB0ZXh0LXNtLXJlZ3VsYXIiIH0sCiAgYW4gPSB7IGtleTogMSwgY2xhc3M6ICJ0ZXh0LXNtLXJlZ3VsYXIgdGV4dC1ncmF5LTYwMCIgfSwKICBzbiA9IHsga2V5OiAwLCBjbGFzczogInRleHQtZ3JheS03MDAiIH0sCiAgbG4gPSB7IGtleTogMSB9LAogIG5uID0geyBjbGFzczogInctZnVsbCB0ZXh0LWdyYXktOTAwIHRleHQtc20tcmVndWxhciIgfSwKICBybiA9IHsgY2xhc3M6ICJ0ZXh0LXByaW1hcnktNjAwIHRleHQtc20tc2VtaWJvbGQgcHgtMSIgfSwKICBvbiA9IHsgY2xhc3M6ICJmbGV4IGp1c3RpZnktY2VudGVyIiB9LAogIGNuID0gewogICAgX19uYW1lOiAiaW5kZXgiLAogICAgZW1pdHM6IFsiaGFuZGVsRXJyb3IiXSwKICAgIHNldHVwKGEsIHsgZW1pdDogZiB9KSB7CiAgICAgIGNvbnN0IGwgPSBXZSgpLAogICAgICAgIHsgZXhlY3V0ZVJlY2FwdGNoYTogbSwgcmVjYXB0Y2hhTG9hZGVkOiBkIH0gPSBadC51c2VSZUNhcHRjaGEoKSwKICAgICAgICB7ICRpc0Rlc2t0b3A6IHMgfSA9IHhlKCksCiAgICAgICAgeyB0OiBjIH0gPSB6ZSgpLAogICAgICAgIF8gPSBrdCgpLAogICAgICAgIHYgPSBmLAogICAgICAgIHkgPSBzdCgiZGlhbG9nIiksCiAgICAgICAgaSA9IHZlKCksCiAgICAgICAgQyA9IFMoITEpLAogICAgICAgIFAgPSBTKCIiKSwKICAgICAgICBiID0gUyghMSksCiAgICAgICAgTSA9IFMoIiIpLAogICAgICAgIGogPSBTKCIiKSwKICAgICAgICBCID0gewogICAgICAgICAgc2lkZTogaS5zaWRlLAogICAgICAgICAgcmVjZWl2ZV9hbW91bnQ6IGkuY2FsY3VsYXRlRGF0YS55b3VSZWNlaXZlLAogICAgICAgICAgcmVjZWl2ZV9jdXJyZW5jeTogaS5jYWxjdWxhdGVEYXRhLnJlY2VpdmVDdXJyZW5jeS5jdXJyZW5jeV9pZCwKICAgICAgICAgIHNlbmRfYW1vdW50OiBpLmNhbGN1bGF0ZURhdGEueW91U2VuZCwKICAgICAgICAgIHNlbmRfY3VycmVuY3k6IGkuY2FsY3VsYXRlRGF0YS5zZW5kQ3VycmVuY3kuY3VycmVuY3lfaWQsCiAgICAgICAgICBpbmNsdWRlczogU2UuQ09VUE9OLAogICAgICAgIH0sCiAgICAgICAgJCA9IHEoKCkgPT4gewogICAgICAgICAgY29uc3QgayA9IGkuZGlyZWN0aW9uSW5mby5yZWNlaXZlRHluYW1pY0ZpZWxkcwogICAgICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LmlzX3RyYW5zYWN0aW9uID09PSAwKQogICAgICAgICAgICAubWFwKCh4KSA9PiAoewogICAgICAgICAgICAgIGxhYmVsOiB4LmxhYmVsLAogICAgICAgICAgICAgIGRlczogeC5kaXJlY3Rpb24sCiAgICAgICAgICAgICAgdmFsdWU6IGkudXNlckluZm9beC5uYW1lXSwKICAgICAgICAgICAgfSkpOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgay5wdXNoKHsKICAgICAgICAgICAgICBsYWJlbDogYygiZXhjaGFuZ2Uud2FsbGV0SW5mby5lbWFpbEFkZHJlc3MiKSwKICAgICAgICAgICAgICBkZXM6IGMoImV4Y2hhbmdlLndhbGxldEluZm8uZW1haWxEZXMiKSwKICAgICAgICAgICAgICB2YWx1ZTogaS51c2VySW5mby5lbWFpbCwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGsKICAgICAgICAgICk7CiAgICAgICAgfSksCiAgICAgICAgVSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHZhciBYLCBhZSwgZWUsIG5lOwogICAgICAgICAgQy52YWx1ZSA9ICEwOwogICAgICAgICAgY29uc3QgayA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ4Y2hfcmVmZXJyYWwiKSB8fCBudWxsLAogICAgICAgICAgICB4ID0gTnQuUFJPRFVDVElPTiA9PT0gInByb2R1Y3Rpb24iLAogICAgICAgICAgICBZID0gbC5xdWVyeS5yZWY7CiAgICAgICAgICBsZXQgSDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHggJiYgKGF3YWl0IGQoKSwgKEggPSBhd2FpdCBtKCJzdGVwIikpKTsKICAgICAgICAgICAgY29uc3QgcmUgPSB7CiAgICAgICAgICAgICAgICAuLi5CLAogICAgICAgICAgICAgICAgZHluYW1pY0ZpZWxkczogaS51c2VySW5mbywKICAgICAgICAgICAgICAgIGVtYWlsOiBpLmludm9pY2UuZHluYW1pY0ZpZWxkcy5lbWFpbCwKICAgICAgICAgICAgICAgIC4uLihZICYmIHsgcmVmOiBZIH0pLAogICAgICAgICAgICAgICAgLi4uKGsgJiYgeyB4Y2hfcmVmZXJyYWw6IGsgfSksCiAgICAgICAgICAgICAgICAuLi4oeCAmJiB7ICJnLXJlY2FwdGNoYS1yZXNwb25zZSI6IEggfSksCiAgICAgICAgICAgICAgICAuLi4oYi52YWx1ZSAmJiB7IGNvdXBvbl9jb2RlOiBQLnZhbHVlIH0pLAogICAgICAgICAgICAgICAgLi4uKCFiLnZhbHVlICYmIHsKICAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb25fa2V5OiBpLmNhbGN1bGF0ZURhdGEuY2FsY3VsYXRpb25fa2V5LAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICB1c2Vfd2FsbGV0OiAhMSwKICAgICAgICAgICAgICAgIHN0ZXA6ICJzdGVwMiIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7IGRhdGE6IG1lIH0gPSBhd2FpdCB1ZSh0YSwgeyBtZXRob2Q6ICJQT1NUIiwgYm9keTogcmUgfSk7CiAgICAgICAgICAgIFYobWUudmFsdWUuZGF0YSksIE4oayksIHkuY2xvc2UoKSwgVCgpOwogICAgICAgICAgfSBjYXRjaCAocmUpIHsKICAgICAgICAgICAgeS5jbG9zZSgpOwogICAgICAgICAgICBjb25zdCBtZSA9CiAgICAgICAgICAgICAgKChuZSA9CiAgICAgICAgICAgICAgICAoZWUgPQogICAgICAgICAgICAgICAgICAoYWUgPQogICAgICAgICAgICAgICAgICAgIChYID0gcmUgPT0gbnVsbCA/IHZvaWQgMCA6IHJlLnJlc3BvbnNlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiBYLmRhdGEpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogYWUuZXJyb3JzKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogZWUudmFsaWRhdGlvbnNbMF0pID09IG51bGwKICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICA6IG5lLm1lc3NhZ2UpID8/IG51bGw7CiAgICAgICAgICAgIHYoImhhbmRlbEVycm9yIiwgbWUpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgQy52YWx1ZSA9ICExOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgaCA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHZhciBrLCB4LCBZLCBIOwogICAgICAgICAgaWYgKEUoKSkgewogICAgICAgICAgICBDLnZhbHVlID0gITA7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgY29uc3QgWCA9IHsKICAgICAgICAgICAgICAgICAgLi4uQiwKICAgICAgICAgICAgICAgICAgY291cG9uX2NvZGU6IFAudmFsdWUsCiAgICAgICAgICAgICAgICAgIGluY2x1ZGVzOiBTZS5DT1VQT04sCiAgICAgICAgICAgICAgICAgIGNhbGN1bGF0aW9uX2tleTogaS5jYWxjdWxhdGVEYXRhLmNhbGN1bGF0aW9uX2tleSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7IGRhdGE6IGFlIH0gPSBhd2FpdCB1ZShlYSwgeyBtZXRob2Q6ICJQT1NUIiwgYm9keTogWCB9KTsKICAgICAgICAgICAgICAoYi52YWx1ZSA9ICEwKSwgKE0udmFsdWUgPSBhZS52YWx1ZS5kYXRhLnlvdV9zZW5kKTsKICAgICAgICAgICAgfSBjYXRjaCAoWCkgewogICAgICAgICAgICAgIGoudmFsdWUgPQogICAgICAgICAgICAgICAgKChIID0KICAgICAgICAgICAgICAgICAgKFkgPQogICAgICAgICAgICAgICAgICAgICh4ID0KICAgICAgICAgICAgICAgICAgICAgIChrID0gWCA9PSBudWxsID8gdm9pZCAwIDogWC5yZXNwb25zZSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICA6IGsuX2RhdGEpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICA6IHgubWV0YSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgOiBZLnN0YXR1cykgPT0gbnVsbAogICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICA6IEgubWVzc2FnZSkgPz8gYygiZXhjaGFuZ2UudG9hc3QuYW5FcnJvciIpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIEMudmFsdWUgPSAhMTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgRSA9ICgpID0+IHsKICAgICAgICAgIGoudmFsdWUgPSAiIjsKICAgICAgICAgIGxldCBrID0gITE7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBQLnZhbHVlCiAgICAgICAgICAgICAgPyBfLnVzZXJJbmZvCiAgICAgICAgICAgICAgICA/IGIudmFsdWUKICAgICAgICAgICAgICAgICAgPyAoKFAudmFsdWUgPSBudWxsKSwgKGIudmFsdWUgPSAhMSkpCiAgICAgICAgICAgICAgICAgIDogKGsgPSAhMCkKICAgICAgICAgICAgICAgIDogZygpCiAgICAgICAgICAgICAgOiAoai52YWx1ZSA9IGMoImV4Y2hhbmdlLmNvdXBvbi5lbXB0eUVyciIpKSwKICAgICAgICAgICAgawogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICAgIFYgPSAoaykgPT4gewogICAgICAgICAgdmFyIFksIEg7CiAgICAgICAgICBjb25zdCB4ID0gewogICAgICAgICAgICAuLi5rLAogICAgICAgICAgICBvcmRlcl9zdGF0dXM6IGsuY2FsY3VsYXRpb24ub3JkZXJTdGF0dXMsCiAgICAgICAgICAgIGRpcmVjdGlvbjogay5jYWxjdWxhdGlvbi5kaXJlY3Rpb24sCiAgICAgICAgICB9OwogICAgICAgICAgaS51cGRhdGVPcmRlcih4KSwKICAgICAgICAgICAgKGkucmF0ZSA9CiAgICAgICAgICAgICAgKEggPSAoWSA9IGsuY2FsY3VsYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBZLmRpcmVjdGlvbikgPT0gbnVsbAogICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgIDogSC5kaXJlY3Rpb25fcmF0ZSk7CiAgICAgICAgfSwKICAgICAgICBUID0gKCkgPT4gewogICAgICAgICAgaS51cGRhdGVEaXJlY3Rpb25DdXJyZW50U3RlcChaLlBBWV9PUkRFUik7CiAgICAgICAgfSwKICAgICAgICBOID0gKGspID0+IHsKICAgICAgICAgIGNvbnN0IHggPSBpLm9yZGVyOwogICAgICAgICAgd2luZG93LmRhdGFMYXllciAmJgogICAgICAgICAgICB3aW5kb3cuZGF0YUxheWVyLnB1c2goewogICAgICAgICAgICAgIGV2ZW50OiAicHVyY2hhc2UiLAogICAgICAgICAgICAgIHZhbHVlOiB4LmNhbGN1bGF0aW9uLmRldGFpbHMueW91U2VuZCwKICAgICAgICAgICAgICB0YXg6IHguY2FsY3VsYXRpb24uZGV0YWlscy55b3VSZWNlaXZlLAogICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2lkOiB4Lm9yZGVyX2lkLAogICAgICAgICAgICAgIGN1cnJlbmN5OiB4LmNhbGN1bGF0aW9uLmRpcmVjdGlvbi5zbHVnIHx8ICIiLAogICAgICAgICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGl0ZW1faWQ6IGBTS1VfJHt4Lm9yZGVyX2lkfWAsCiAgICAgICAgICAgICAgICAgIGl0ZW1fbmFtZTogeC5jYWxjdWxhdGlvbi5kaXJlY3Rpb24uc2x1ZyB8fCAiIiwKICAgICAgICAgICAgICAgICAgYWZmaWxpYXRpb246IGssCiAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX2lkOiBudWxsLAogICAgICAgICAgICAgICAgICBwcmljZTogeC5jYWxjdWxhdGlvbi5kZXRhaWxzLnlvdVNlbmQsCiAgICAgICAgICAgICAgICAgIGl0ZW1fdmFyaWFudDogeC50cmFja19pZCwKICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IHguY2FsY3VsYXRpb24uZGV0YWlscy55b3VSZWNlaXZlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9KTsKICAgICAgICB9LAogICAgICAgIE8gPSAoKSA9PiB7CiAgICAgICAgICBpLnVwZGF0ZURpcmVjdGlvbkN1cnJlbnRTdGVwKFouV0FMTEVUX0lORk8pLCBpLnNjcm9sbFRvVG9wKCk7CiAgICAgICAgfSwKICAgICAgICBnID0gKCkgPT4gewogICAgICAgICAgeS5vcGVuKAogICAgICAgICAgICAiIiwKICAgICAgICAgICAgUnQsCiAgICAgICAgICAgIHsgIm1heC13aWR0aCI6IDQzNSB9LAogICAgICAgICAgICB7IHByb3A6IHsgZGlhbG9nVHlwZTogaHQuU0lHTl9JTiB9IH0KICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBEID0gKCkgPT4gewogICAgICAgICAgeS5vcGVuKAogICAgICAgICAgICAiIiwKICAgICAgICAgICAgcWwsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBwZXJzaXN0ZW50OiAhMCwKICAgICAgICAgICAgICAuLi4oIXMudmFsdWUgJiYgeyBmdWxsc2NyZWVuOiAhMCB9KSwKICAgICAgICAgICAgICAuLi4ocy52YWx1ZSAmJiB7ICJtYXgtd2lkdGgiOiA2MDAgfSksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsgcHJvcDogeyBsb2FkaW5nOiBDIH0sIGNhbGxiYWNrOiBVIH0KICAgICAgICAgICk7CiAgICAgICAgfTsKICAgICAgcmV0dXJuIChrLCB4KSA9PiB7CiAgICAgICAgY29uc3QgWSA9IFRlLAogICAgICAgICAgSCA9IE90LAogICAgICAgICAgWCA9IGF0LAogICAgICAgICAgYWUgPSBudDsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbigpLAogICAgICAgICAgcCgiZGl2IiwgamwsIFsKICAgICAgICAgICAgZSgiZGl2IiwgTWwsIFsKICAgICAgICAgICAgICBlKCJkaXYiLCBZbCwgcihrLiR0KCJleGNoYW5nZS5yZXZpZXdPcmRlci5maW5hbENoZWNrIikpLCAxKSwKICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICBXKHIoay4kdCgiZXhjaGFuZ2Uud2FsbGV0SW5mby5hZnRlckNsaWNrWzBdIikpICsgIiAiLCAxKSwKICAgICAgICAgICAgICAgIHQoJCkubGVuZ3RoID4gMAogICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgIEdsLAogICAgICAgICAgICAgICAgICAgICAgcihrLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLmFmdGVyQ2xpY2tbMV0iKSksCiAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgOiAobigpLAogICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICB6bCwKICAgICAgICAgICAgICAgICAgICAgIHIoay4kdCgiZXhjaGFuZ2Uud2FsbGV0SW5mby5hZnRlckNsaWNrWzJdIikpLAogICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgVygiICIgKyByKGsuJHQoImV4Y2hhbmdlLndhbGxldEluZm8uYWZ0ZXJDbGlja1szXSIpKSwgMSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgZSgiZGl2IiwgV2wsIHIoay4kdCgiZXhjaGFuZ2Uud2FsbGV0SW5mby53cm9uZ0VtYWlsIikpLCAxKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIChuKCEwKSwKICAgICAgICAgICAgcCgKICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgY2UoCiAgICAgICAgICAgICAgICB0KCQpLAogICAgICAgICAgICAgICAgKGVlLCBuZSkgPT4gKAogICAgICAgICAgICAgICAgICBuKCksCiAgICAgICAgICAgICAgICAgIHAoImRpdiIsIHsga2V5OiBuZSB9LCBbCiAgICAgICAgICAgICAgICAgICAgZWUudmFsdWUKICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICAgICAgICBZLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlZS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlZS5sYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlczogZWUuZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgIFsidmFsdWUiLCAibGFiZWwiLCAiZGVzIl0KICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICkpLAogICAgICAgICAgICBvKAogICAgICAgICAgICAgIEgsCiAgICAgICAgICAgICAgeyAiaGFzLWRpc2NvdW50IjogdChiKSwgInNlbmQtYW1vdW50IjogdChNKSwgY2xhc3M6ICJteS04IiB9LAogICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICBbImhhcy1kaXNjb3VudCIsICJzZW5kLWFtb3VudCJdCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGUoImRpdiIsIEhsLCBbCiAgICAgICAgICAgICAgeFsxXSB8fAogICAgICAgICAgICAgICAgKHhbMV0gPSBlKAogICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgImZsZXggaC1maXQgYmctd2FybmluZy0xMDAgdGV4dC13YXJuaW5nLTYwMCBwLTEuNSByb3VuZGVkLWZ1bGwiLAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBbZSgic3BhbiIsIHsgY2xhc3M6ICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQiIH0sICIgaW5mbyAiKV0sCiAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICBlKCJkaXYiLCBLbCwgcihrLiR0KCJleGNoYW5nZS5jb3Vwb24ud2FybiIpKSwgMSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICBlKCJkaXYiLCBRbCwgWwogICAgICAgICAgICAgIGUoImRpdiIsIFhsLCByKGsuJHQoImV4Y2hhbmdlLmNvdXBvbi50aXRsZSIpKSwgMSksCiAgICAgICAgICAgICAgZSgiZGl2IiwgSmwsIFsKICAgICAgICAgICAgICAgIGUoImRpdiIsIFpsLCBbCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIGVuLCBbCiAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgIFksCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0LXBhcmFtcyI6IHQoUCksCiAgICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTpyZXF1ZXN0UGFyYW1zIjoKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHhbMF0gPSAoZWUpID0+IChwZShQKSA/IChQLnZhbHVlID0gZWUpIDogbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdChQKSwKICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHQoYikgJiYgIXQoaiksCiAgICAgICAgICAgICAgICAgICAgICAgICJiZS1lcnJvciI6ICEhdChqKSwKICAgICAgICAgICAgICAgICAgICAgICAgb25CdG5DbGlja2VkOiBoLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJY29uOiBBKAogICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4WzJdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeFsyXSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQgdGV4dC1ncmF5LTQwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGhlbHAgIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgWyJyZXF1ZXN0LXBhcmFtcyIsICJ2YWx1ZSIsICJkaXNhYmxlZCIsICJiZS1lcnJvciJdCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICB0KGopCiAgICAgICAgICAgICAgICAgICAgICA/IChuKCksIHAoImRpdiIsIHRuLCByKHQoaikpLCAxKSkKICAgICAgICAgICAgICAgICAgICAgIDogKG4oKSwgcCgic3BhbiIsIGFuLCByKGsuJHQoImV4Y2hhbmdlLmNvdXBvbi5zdWIiKSksIDEpKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHQoYikgPyAiZ3JheS0zMDAiIDogInN1Y2Nlc3MtNjAwIiwKICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IHQoQyksCiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0MHB4IiwKICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB0KHMpID8gImF1dG8iIDogIjEwMCUiLAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LW5vbmUgcm91bmRlZC1sZyBsZzohbXQtMS41IG10LTQgc2hhZG93LXhzIiwKICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6IHQoYikgPyAib3V0bGluZWQiIDogImZsYXQiLAogICAgICAgICAgICAgICAgICAgICAgb25DbGljazogaCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICB0KGIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgic3BhbiIsIHNuLCByKGsuJHQoImV4Y2hhbmdlLmNvdXBvbi5jYW5jZWwiKSksIDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAoInNwYW4iLCBsbiwgcihrLiR0KCJleGNoYW5nZS5jb3Vwb24uYXBwbHkiKSksIDEpKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgWyJjb2xvciIsICJsb2FkaW5nIiwgIndpZHRoIiwgInZhcmlhbnQiXQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgZSgiZGl2Iiwgbm4sIFsKICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgcihrLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLnJlYWRUZXJtc1NlcnZpY2UiKSksCiAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgIHIoay4kdCgiZXhjaGFuZ2Uud2FsbGV0SW5mby5yZWFkVGVybXNTZXJ2aWNlMiIpKSwKICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgcihrLiR0KCJleGNoYW5nZS53YWxsZXRJbmZvLnJlYWRUZXJtc1NlcnZpY2UzIikpLAogICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIGUoImRpdiIsIG9uLCBbCiAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICBhZSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJzZWNvbmRhcnktdGV4dCI6IGsuJHQoImV4Y2hhbmdlLmJhY2siKSwKICAgICAgICAgICAgICAgICAgICAicHJpbWFyeS1pZCI6ICJzdGVwMyIsCiAgICAgICAgICAgICAgICAgICAgInByaW1hcnktdGV4dCI6IGsuJHQoImV4Y2hhbmdlLnZpZXdBbmRDaGVjayIpLAogICAgICAgICAgICAgICAgICAgIG9uU2Vjb25kYXJ5Q2xpY2s6IE8sCiAgICAgICAgICAgICAgICAgICAgb25TdWJtaXQ6IEQsCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgIFsic2Vjb25kYXJ5LXRleHQiLCAicHJpbWFyeS10ZXh0Il0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgXSkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9LAogIGRuID0geyBjbGFzczogIm1iLTYgaGlkZGVuIiB9LAogIHVuID0geyBjbGFzczogImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYi0yIGhpZGRlbiIgfSwKICBtbiA9IHsgY2xhc3M6ICJteC0zIHRleHQtbWQtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCIgfSwKICBwbiA9IHsgY2xhc3M6ICJ0ZXh0LXNtLXJlZ3VsYXIiIH0sCiAgeW4gPSB7IGNsYXNzOiAibWwtMSIgfSwKICB2biA9IHsKICAgIF9fbmFtZTogIlRpbWVyIiwKICAgIHByb3BzOiB7IHRpbWVEYXRhOiB7IHR5cGU6IE9iamVjdCwgZGVmYXVsdDogKCkgPT4gKHt9KSB9IH0sCiAgICBlbWl0czogWyJleHBpcmVPcmRlciJdLAogICAgc2V0dXAoYSwgeyBlbWl0OiBmIH0pIHsKICAgICAgY29uc3QgbCA9IHZlKCk7CiAgICAgIGxldCBtOwogICAgICBjb25zdCBkID0gYSwKICAgICAgICBzID0gZiwKICAgICAgICBjID0gUyhkLnRpbWVEYXRhLnNlY29uZHNMZWZ0KSwKICAgICAgICBfID0gcSgoKSA9PiB7CiAgICAgICAgICBjb25zdCBQID0gTWF0aC5mbG9vcihjLnZhbHVlIC8gNjApLAogICAgICAgICAgICBiID0gYy52YWx1ZSAlIDYwOwogICAgICAgICAgcmV0dXJuIGAke1B9IDogJHtiLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgIjAiKX1gOwogICAgICAgIH0pLAogICAgICAgIHYgPSBxKCgpID0+CiAgICAgICAgICBkLnRpbWVEYXRhLnNob3cKICAgICAgICAgICAgPyAoKCtkLnRpbWVEYXRhLnRvdGFsU2Vjb25kcyAtICtjLnZhbHVlKSAvCiAgICAgICAgICAgICAgICBkLnRpbWVEYXRhLnRvdGFsU2Vjb25kcykgKgogICAgICAgICAgICAgIDEwMAogICAgICAgICAgICA6IDEwMAogICAgICAgICk7CiAgICAgIFZlKGMsIChQKSA9PiB7CiAgICAgICAgUCA8PSAwICYmIEMoKTsKICAgICAgfSk7CiAgICAgIGNvbnN0IHkgPSBxKCgpID0+CiAgICAgICAgICB2LnZhbHVlIDw9IDUwCiAgICAgICAgICAgID8gInN1Y2Nlc3MtNjAwIgogICAgICAgICAgICA6IHYudmFsdWUgPD0gNzUKICAgICAgICAgICAgPyAid2FybmluZy02MDAiCiAgICAgICAgICAgIDogImVycm9yLTYwMCIKICAgICAgICApLAogICAgICAgIGkgPSAoKSA9PiB7CiAgICAgICAgICBtID0gWGUoKCkgPT4gewogICAgICAgICAgICBjLnZhbHVlID4gMCA/IGMudmFsdWUtLSA6IGNsZWFySW50ZXJ2YWwobSk7CiAgICAgICAgICB9LCAxZTMpOwogICAgICAgIH0sCiAgICAgICAgQyA9ICgpID0+IHsKICAgICAgICAgIHMoImV4cGlyZU9yZGVyIiksIGNsZWFySW50ZXJ2YWwobSk7CiAgICAgICAgfTsKICAgICAgcmV0dXJuICgKICAgICAgICBMZSgoKSA9PiB7CiAgICAgICAgICBpKCk7CiAgICAgICAgfSksCiAgICAgICAgKFAsIGIpID0+ICgKICAgICAgICAgIG4oKSwKICAgICAgICAgIHAoImRpdiIsIGRuLCBbCiAgICAgICAgICAgIGUoImRpdiIsIHVuLCBbCiAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgaGUsCiAgICAgICAgICAgICAgICAgIHsgY29sb3I6ICJncmF5LTgwMCIgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoCiAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBiWzBdIHx8IChiWzBdID0gW1coIiBtZGktdGltZXItb3V0bGluZSAiKV0pCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgZSgic3BhbiIsIG1uLCByKGQudGltZURhdGEuc2hvdyA/IF8udmFsdWUgOiAiMjI6MDAiKSwgMSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgZSgiZGl2IiwgcG4sIFsKICAgICAgICAgICAgICAgIGJbMV0gfHwgKGJbMV0gPSBlKCJzcGFuIiwgbnVsbCwgIlJhdGU6ICIsIC0xKSksCiAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgIHluLAogICAgICAgICAgICAgICAgICByKHQobCkuY2FsY3VsYXRlRGF0YS5yZWNlaXZlQ3VycmVuY3kuc2x1ZyB8fCAiIikgKyAiPSAiLAogICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgZSgic3BhbiIsIG51bGwsIHIodChsKS5yYXRlKSwgMSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICBvKAogICAgICAgICAgICAgIEF0LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb2RlbC12YWx1ZSI6IHYudmFsdWUsCiAgICAgICAgICAgICAgICAiYmctY29sb3IiOiB5LnZhbHVlLAogICAgICAgICAgICAgICAgY29sb3I6IHkudmFsdWUsCiAgICAgICAgICAgICAgICAicm91bmRlZC1iYXIiOiAiIiwKICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICIiLAogICAgICAgICAgICAgICAgaGVpZ2h0OiAiOCIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgWyJtb2RlbC12YWx1ZSIsICJiZy1jb2xvciIsICJjb2xvciJdCiAgICAgICAgICAgICksCiAgICAgICAgICBdKQogICAgICAgICkKICAgICAgKTsKICAgIH0sCiAgfSwKICBnbiA9IHsKICAgIGNsYXNzOiAiYm9yZGVyIGJvcmRlci1yLTMgcm91bmRlZC1sZyBwLWxnLTYgcC00IGJnLWdyYXktMjUgc2hhZG93LXhzIG1iLTQgIiwKICB9LAogIGZuID0geyBjbGFzczogImxnOmZsZXgganVzdGlmeS1iZXR3ZWVuIG1iLTMiIH0sCiAgX24gPSB7IGNsYXNzOiAidGV4dC1tZC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIiB9LAogIGhuID0geyBjbGFzczogInRleHQtc20tcmVndWxhciB0ZXh0LWdyYXktNzAwIiB9LAogIHhuID0gewogICAgY2xhc3M6CiAgICAgICJmbGV4IGp1c3RpZnktYmV0d2VlbiBib3JkZXItYiBib3JkZXItZ3JheS01MDAgYm9yZGVyLWRhc2hlZCBwYi0yIG10LTMiLAogIH0sCiAgYm4gPSB7IGNsYXNzOiAidGV4dC1zbS1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIiB9LAogIGtuID0gewogICAgX19uYW1lOiAiVHJhY2tPcmRlciIsCiAgICBwcm9wczogewogICAgICBlbWFpbDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgIHRyYWNrSWQ6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgfSwKICAgIHNldHVwKGEpIHsKICAgICAgcmV0dXJuIChmLCBsKSA9PiB7CiAgICAgICAgY29uc3QgbSA9IFRlOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBuKCksCiAgICAgICAgICBwKCJkaXYiLCBnbiwgWwogICAgICAgICAgICBlKCJkaXYiLCBmbiwgWwogICAgICAgICAgICAgIGUoImRpdiIsIF9uLCByKGYuJHQoImV4Y2hhbmdlLnBheU9yZGVyLnRyYWNrSWQiKSksIDEpLAogICAgICAgICAgICAgIGUoImRpdiIsIGhuLCByKGYuJHQoImV4Y2hhbmdlLnBheU9yZGVyLnRyYWNrSWRTdWIiKSksIDEpLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgbyhtLCB7ICJ0ZXh0LWNvcHkiOiBhLnRyYWNrSWQgfSwgbnVsbCwgOCwgWyJ0ZXh0LWNvcHkiXSksCiAgICAgICAgICAgIGUoImRpdiIsIHhuLCBbCiAgICAgICAgICAgICAgbFswXSB8fAogICAgICAgICAgICAgICAgKGxbMF0gPSBlKAogICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJ0ZXh0LWdyYXktNzAwIHRleHQtc20tcmVndWxhciIgfSwKICAgICAgICAgICAgICAgICAgIllvdXIgZW1haWwgYWRkcmVzcyIsCiAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICBlKCJzcGFuIiwgYm4sIHIoYS5lbWFpbCksIDEpLAogICAgICAgICAgICBdKSwKICAgICAgICAgIF0pCiAgICAgICAgKTsKICAgICAgfTsKICAgIH0sCiAgfSwKICB3biA9IGFhKCIvaW1hZ2VzL2xvZ29zL25lYnVsb3hMb2dvLnBuZyIpLAogICRuID0gewogICAgY2xhc3M6ICJib3JkZXIgYm9yZGVyLXItMyByb3VuZGVkLWxnIHAtbGctNiBwLTQgYmctZ3JheS0yNSBzaGFkb3cteHMiLAogIH0sCiAgQ24gPSB7IGNsYXNzOiAiZC1sZy1mbGV4IGp1c3RpZnktc3BhY2UtYmV0d2VlbiB0ZXh0LWdyYXktOTAwIiB9LAogIFNuID0geyBjbGFzczogInRleHQtbWQtc2VtaWJvbGQgbWItMiIgfSwKICBEbiA9IHsgY2xhc3M6ICJ0ZXh0LXNtLXJlZ3VsYXIiIH0sCiAgSW4gPSB7IGNsYXNzOiAidGV4dC14cy1yZWd1bGFyIHRleHQtZ3JheS01MDAiIH0sCiAgRW4gPSB7CiAgICBrZXk6IDAsCiAgICBjbGFzczoKICAgICAgImZsZXgganVzdGlmeS1jZW50ZXIgbXQtNCBnYXAtNCB0ZXh0LXNtLXJlZ3VsYXIgdGV4dC1ncmF5LTcwMCBoaWRkZW4iLAogIH0sCiAgQW4gPSB7IGhyZWY6ICJodHRwczovL25lYnVsb3guaW8vIiwgdGFyZ2V0OiAiX2JsYW5rIiB9LAogIFJuID0gewogICAga2V5OiAxLAogICAgY2xhc3M6CiAgICAgICJmbGV4IGdhcC0zIGFsaWduLXN0YXJ0IGJnLXdhcm5pbmctMjUgYm9yZGVyIGJvcmRlci13YXJuaW5nLTYwMCBib3JkZXItb3BhY2l0eS0xMDAgcm91bmRlZC1sZyBtdC00IHAtNCBiZy13YXJuaW5nLTIwIiwKICB9LAogIE9uID0geyBjbGFzczogImxnOnRleHQtbWQtbWVkaXVtIHRleHQtc20tbWVkaXVtIHRleHQtd2FybmluZy04MDAiIH0sCiAgUG4gPSB7IGNsYXNzOiAibGc6dGV4dC1tZC1yZWd1bGFyIHRleHQtc20tcmVndWxhciB0ZXh0LXdhcm5pbmctNzAwIG10LTIiIH0sCiAgVm4gPSB7CiAgICBfX25hbWU6ICJTaG93V2FsbGV0IiwKICAgIHByb3BzOiB7CiAgICAgIHdhbGxldEhhc2g6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgaGludDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgIG9yZGVyVHlwZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgIHdhbGxldEFkZHJlc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICBoYXNNZW1vV2FybmluZzogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LAogICAgfSwKICAgIHNldHVwKGEpIHsKICAgICAgcmV0dXJuIChmLCBsKSA9PiB7CiAgICAgICAgY29uc3QgbSA9IFRlOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBuKCksCiAgICAgICAgICBwKCJkaXYiLCAkbiwgWwogICAgICAgICAgICBlKCJkaXYiLCBDbiwgWwogICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgIGUoImRpdiIsIFNuLCBbCiAgICAgICAgICAgICAgICAgIFcocihhLnRpdGxlKSArICIgIiwgMSksCiAgICAgICAgICAgICAgICAgIG8oaGUsIHsKICAgICAgICAgICAgICAgICAgICBjb2xvcjogImdyYXktODAwIiwKICAgICAgICAgICAgICAgICAgICBjbGFzczogIm14LTEiLAogICAgICAgICAgICAgICAgICAgIGljb246ICJtZGktaW5mb3JtYXRpb24tb3V0bGluZSIsCiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBEbiwgcihhLmRlc2NyaXB0aW9uKSwgMSksCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBJbiwgcihhLmhpbnQpLCAxKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBhLndhbGxldEhhc2gKICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICBfZSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCIgKyBhLndhbGxldEhhc2gsCiAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgInFyY29kZV9pbWcgcC0zIGJvcmRlciByb3VuZGVkLWxnIGJvcmRlci1ncmF5LTMwMCBteC1sZy0wIG14LWF1dG8gbXktMiIsCiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTE4LAogICAgICAgICAgICAgICAgICAgICAgIm1heC13aWR0aCI6IDExOCwKICAgICAgICAgICAgICAgICAgICAgIGFsdDogInFyQ29kZSIsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgWyJzcmMiXQogICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICBvKG0sIHsgInRleHQtY29weSI6IGEud2FsbGV0QWRkcmVzcyB9LCBudWxsLCA4LCBbInRleHQtY29weSJdKSwKICAgICAgICAgICAgdChKKS5BVVRPX0NSWVBUT19QQVkgPT09IGEub3JkZXJUeXBlCiAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgcCgiZGl2IiwgRW4sIFsKICAgICAgICAgICAgICAgICAgVyhyKGYuJHQoImV4Y2hhbmdlLnBheU9yZGVyLnBvd2VyIikpICsgIiAiLCAxKSwKICAgICAgICAgICAgICAgICAgZSgiYSIsIEFuLCBbCiAgICAgICAgICAgICAgICAgICAgbyhfZSwgeyB3aWR0aDogIjEwMHB4IiwgaGVpZ2h0OiAyNCwgc3JjOiB3biwgYWx0OiAiaWNvbiIgfSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgIGEuaGFzTWVtb1dhcm5pbmcKICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICBwKCJkaXYiLCBSbiwgWwogICAgICAgICAgICAgICAgICBsWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgKGxbMF0gPSBlKAogICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAicm91bmRlZC1waWxsIHAtMS41IGJnLXdhcm5pbmctNTAiIH0sCiAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIHsgY2xhc3M6ICJyb3VuZGVkLXBpbGwgcC0xIGJnLXdhcm5pbmctMTAwIiB9LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCB0ZXh0LXdhcm5pbmctNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHJlcG9ydCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgIGUoInNwYW4iLCBPbiwgcihmLiR0KCJleGNoYW5nZS5wYXlPcmRlci5pbXAiKSksIDEpLAogICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIFBuLCByKGYuJHQoImV4Y2hhbmdlLnBheU9yZGVyLmltcFN1YiIpKSwgMSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICBdKQogICAgICAgICk7CiAgICAgIH07CiAgICB9LAogIH0sCiAgVG4gPSAiVHJhbnNhY3Rpb24gcGVuZGluZyIsCiAgTm4gPSAiIiwKICBVbiA9IFsKICAgIHsKICAgICAgdHk6IDQsCiAgICAgIG5tOiAiQ2xvY2sgaGFuZHMiLAogICAgICBtbjogIiIsCiAgICAgIHNyOiAxLAogICAgICBzdDogMCwKICAgICAgb3A6IDYwLjAwMDAwMjQ0Mzg1MDEsCiAgICAgIGlwOiAwLAogICAgICBoZDogITEsCiAgICAgIGNsOiAiIiwKICAgICAgbG46ICIiLAogICAgICBkZGQ6IDAsCiAgICAgIGJtOiAwLAogICAgICBoYXNNYXNrOiAhMSwKICAgICAgYW86IDAsCiAgICAgIGtzOiB7CiAgICAgICAgYTogeyBhOiAwLCBrOiBbOTkuOTg3LCA5OS45NDQsIDBdLCBpeDogMSB9LAogICAgICAgIHM6IHsgYTogMCwgazogWzEwMCwgMTAwLCAxMDBdLCBpeDogNiB9LAogICAgICAgIHNrOiB7IGE6IDAsIGs6IDAgfSwKICAgICAgICBwOiB7IGE6IDAsIGs6IFs5OS45ODcsIDk5Ljk0NCwgMF0sIGl4OiAyIH0sCiAgICAgICAgcjogeyBhOiAwLCBrOiAwLCBpeDogMTAgfSwKICAgICAgICBzYTogeyBhOiAwLCBrOiAwIH0sCiAgICAgICAgbzogeyBhOiAwLCBrOiAxMDAsIGl4OiAxMSB9LAogICAgICB9LAogICAgICBlZjogW10sCiAgICAgIHNoYXBlczogWwogICAgICAgIHsKICAgICAgICAgIHR5OiAiZ3IiLAogICAgICAgICAgYm06IDAsCiAgICAgICAgICBjbDogIiIsCiAgICAgICAgICBsbjogIiIsCiAgICAgICAgICBoZDogITEsCiAgICAgICAgICBtbjogIkFEQkUgVmVjdG9yIEdyb3VwIiwKICAgICAgICAgIG5tOiAiR3JvdXAgNCIsCiAgICAgICAgICBpeDogMSwKICAgICAgICAgIGNpeDogMiwKICAgICAgICAgIG5wOiAyLAogICAgICAgICAgaXQ6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgIHR5OiAic2giLAogICAgICAgICAgICAgIGJtOiAwLAogICAgICAgICAgICAgIGNsOiAiIiwKICAgICAgICAgICAgICBsbjogIiIsCiAgICAgICAgICAgICAgaGQ6ICExLAogICAgICAgICAgICAgIG1uOiAiQURCRSBWZWN0b3IgU2hhcGUgLSBHcm91cCIsCiAgICAgICAgICAgICAgbm06ICJQYXRoIDEiLAogICAgICAgICAgICAgIGl4OiAxLAogICAgICAgICAgICAgIGQ6IDEsCiAgICAgICAgICAgICAga3M6IHsKICAgICAgICAgICAgICAgIGE6IDAsCiAgICAgICAgICAgICAgICBrOiB7CiAgICAgICAgICAgICAgICAgIGM6ICExLAogICAgICAgICAgICAgICAgICBpOiBbCiAgICAgICAgICAgICAgICAgICAgWzAsIDBdLAogICAgICAgICAgICAgICAgICAgIFswLCAwXSwKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgbzogWwogICAgICAgICAgICAgICAgICAgIFswLCAwXSwKICAgICAgICAgICAgICAgICAgICBbMCwgMF0sCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgIHY6IFsKICAgICAgICAgICAgICAgICAgICBbMTAwLCAxMDBdLAogICAgICAgICAgICAgICAgICAgIFsxMDAsIDcyLjk5OF0sCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgaXg6IDIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHR5OiAic3QiLAogICAgICAgICAgICAgIGJtOiAwLAogICAgICAgICAgICAgIGNsOiAiIiwKICAgICAgICAgICAgICBsbjogIiIsCiAgICAgICAgICAgICAgaGQ6ICExLAogICAgICAgICAgICAgIG1uOiAiQURCRSBWZWN0b3IgR3JhcGhpYyAtIFN0cm9rZSIsCiAgICAgICAgICAgICAgbm06ICJTdHJva2UgMSIsCiAgICAgICAgICAgICAgbGM6IDIsCiAgICAgICAgICAgICAgbGo6IDIsCiAgICAgICAgICAgICAgbWw6IDEsCiAgICAgICAgICAgICAgbzogeyBhOiAwLCBrOiAxMDAsIGl4OiA0IH0sCiAgICAgICAgICAgICAgdzogeyBhOiAwLCBrOiA4LCBpeDogNSB9LAogICAgICAgICAgICAgIGQ6IFtdLAogICAgICAgICAgICAgIGM6IHsgYTogMCwgazogWzAuOTI1NSwgMC40MDM5LCAwLjJdLCBpeDogMyB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHk6ICJ0ciIsCiAgICAgICAgICAgICAgYTogeyBhOiAwLCBrOiBbMTAwLCAxMDAuMDA4XSwgaXg6IDEgfSwKICAgICAgICAgICAgICBzOiB7IGE6IDAsIGs6IFsxMDAsIDEwMF0sIGl4OiAzIH0sCiAgICAgICAgICAgICAgc2s6IHsgYTogMCwgazogMCwgaXg6IDQgfSwKICAgICAgICAgICAgICBwOiB7IGE6IDAsIGs6IFsxMDAsIDEwMC4wMDhdLCBpeDogMiB9LAogICAgICAgICAgICAgIHI6IHsKICAgICAgICAgICAgICAgIGE6IDEsCiAgICAgICAgICAgICAgICBrOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBvOiB7IHg6IDAuMTY3LCB5OiAwLjE2NyB9LAogICAgICAgICAgICAgICAgICAgIGk6IHsgeDogMC44MzMsIHk6IDAuODMzIH0sCiAgICAgICAgICAgICAgICAgICAgczogWzBdLAogICAgICAgICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBvOiB7IHg6IDAuMTY3LCB5OiAwLjE2NyB9LAogICAgICAgICAgICAgICAgICAgIGk6IHsgeDogMC44MzMsIHk6IDAuODMzIH0sCiAgICAgICAgICAgICAgICAgICAgczogWzcyMF0sCiAgICAgICAgICAgICAgICAgICAgdDogNTkuMDAwMDAyNDAzMTE5MywKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBpeDogNiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNhOiB7IGE6IDAsIGs6IDAsIGl4OiA1IH0sCiAgICAgICAgICAgICAgbzogeyBhOiAwLCBrOiAxMDAsIGl4OiA3IH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdHk6ICJnciIsCiAgICAgICAgICBibTogMCwKICAgICAgICAgIGNsOiAiIiwKICAgICAgICAgIGxuOiAiIiwKICAgICAgICAgIGhkOiAhMSwKICAgICAgICAgIG1uOiAiQURCRSBWZWN0b3IgR3JvdXAiLAogICAgICAgICAgbm06ICJHcm91cCAzIiwKICAgICAgICAgIGl4OiAyLAogICAgICAgICAgY2l4OiAyLAogICAgICAgICAgbnA6IDIsCiAgICAgICAgICBpdDogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHk6ICJzaCIsCiAgICAgICAgICAgICAgYm06IDAsCiAgICAgICAgICAgICAgY2w6ICIiLAogICAgICAgICAgICAgIGxuOiAiIiwKICAgICAgICAgICAgICBoZDogITEsCiAgICAgICAgICAgICAgbW46ICJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwKICAgICAgICAgICAgICBubTogIlBhdGggMSIsCiAgICAgICAgICAgICAgaXg6IDEsCiAgICAgICAgICAgICAgZDogMSwKICAgICAgICAgICAgICBrczogewogICAgICAgICAgICAgICAgYTogMCwKICAgICAgICAgICAgICAgIGs6IHsKICAgICAgICAgICAgICAgICAgYzogITEsCiAgICAgICAgICAgICAgICAgIGk6IFsKICAgICAgICAgICAgICAgICAgICBbMCwgMF0sCiAgICAgICAgICAgICAgICAgICAgWzAsIDBdLAogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICBvOiBbCiAgICAgICAgICAgICAgICAgICAgWzAsIDBdLAogICAgICAgICAgICAgICAgICAgIFswLCAwXSwKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgdjogWwogICAgICAgICAgICAgICAgICAgIFs4LjIzNywgLTIxLjE2NV0sCiAgICAgICAgICAgICAgICAgICAgWzguMTM4LCAtNi4wODVdLAogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGl4OiAyLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0eTogInN0IiwKICAgICAgICAgICAgICBibTogMCwKICAgICAgICAgICAgICBjbDogIiIsCiAgICAgICAgICAgICAgbG46ICIiLAogICAgICAgICAgICAgIGhkOiAhMSwKICAgICAgICAgICAgICBtbjogIkFEQkUgVmVjdG9yIEdyYXBoaWMgLSBTdHJva2UiLAogICAgICAgICAgICAgIG5tOiAiU3Ryb2tlIDEiLAogICAgICAgICAgICAgIGxjOiAyLAogICAgICAgICAgICAgIGxqOiAyLAogICAgICAgICAgICAgIG1sOiAxLAogICAgICAgICAgICAgIG86IHsgYTogMCwgazogMTAwLCBpeDogNCB9LAogICAgICAgICAgICAgIHc6IHsgYTogMCwgazogOCwgaXg6IDUgfSwKICAgICAgICAgICAgICBkOiBbXSwKICAgICAgICAgICAgICBjOiB7IGE6IDAsIGs6IFswLjkyNTUsIDAuNDAzOSwgMC4yXSwgaXg6IDMgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHR5OiAidHIiLAogICAgICAgICAgICAgIGE6IHsgYTogMCwgazogWzguMjUsIC02LjI1XSwgaXg6IDEgfSwKICAgICAgICAgICAgICBzOiB7IGE6IDAsIGs6IFsxMDAsIDEwMF0sIGl4OiAzIH0sCiAgICAgICAgICAgICAgc2s6IHsgYTogMCwgazogMCwgaXg6IDQgfSwKICAgICAgICAgICAgICBwOiB7IGE6IDAsIGs6IFsxMDAuMTEyLCA5OS45NzZdLCBpeDogMiB9LAogICAgICAgICAgICAgIHI6IHsgYTogMCwgazogMCwgaXg6IDYgfSwKICAgICAgICAgICAgICBzYTogeyBhOiAwLCBrOiAwLCBpeDogNSB9LAogICAgICAgICAgICAgIG86IHsgYTogMCwgazogMTAwLCBpeDogNyB9LAogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICBdLAogICAgICBpbmQ6IDEsCiAgICB9LAogICAgewogICAgICB0eTogNCwKICAgICAgbm06ICJyZWMiLAogICAgICBtbjogIiIsCiAgICAgIHNyOiAxLAogICAgICBzdDogMCwKICAgICAgb3A6IDYwLjAwMDAwMjQ0Mzg1MDEsCiAgICAgIGlwOiAwLAogICAgICBoZDogITEsCiAgICAgIGNsOiAiIiwKICAgICAgbG46ICIiLAogICAgICBkZGQ6IDAsCiAgICAgIGJtOiAwLAogICAgICBoYXNNYXNrOiAhMSwKICAgICAgYW86IDAsCiAgICAgIGtzOiB7CiAgICAgICAgYTogeyBhOiAwLCBrOiBbMTAwLCAxMDAsIDBdLCBpeDogMSB9LAogICAgICAgIHM6IHsgYTogMCwgazogWzEwMCwgMTAwLCAxMDBdLCBpeDogNiB9LAogICAgICAgIHNrOiB7IGE6IDAsIGs6IDAgfSwKICAgICAgICBwOiB7IGE6IDAsIGs6IFsxMDAsIDEwMCwgMF0sIGl4OiAyIH0sCiAgICAgICAgcjogeyBhOiAwLCBrOiAwLCBpeDogMTAgfSwKICAgICAgICBzYTogeyBhOiAwLCBrOiAwIH0sCiAgICAgICAgbzogeyBhOiAwLCBrOiAxMDAsIGl4OiAxMSB9LAogICAgICB9LAogICAgICBlZjogW10sCiAgICAgIHNoYXBlczogWwogICAgICAgIHsKICAgICAgICAgIHR5OiAiZ3IiLAogICAgICAgICAgYm06IDAsCiAgICAgICAgICBjbDogIiIsCiAgICAgICAgICBsbjogIiIsCiAgICAgICAgICBoZDogITEsCiAgICAgICAgICBtbjogIkFEQkUgVmVjdG9yIEdyb3VwIiwKICAgICAgICAgIG5tOiAiR3JvdXAgMyIsCiAgICAgICAgICBpeDogMSwKICAgICAgICAgIGNpeDogMiwKICAgICAgICAgIG5wOiAyLAogICAgICAgICAgaXQ6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgIHR5OiAic2giLAogICAgICAgICAgICAgIGJtOiAwLAogICAgICAgICAgICAgIGNsOiAiIiwKICAgICAgICAgICAgICBsbjogIiIsCiAgICAgICAgICAgICAgaGQ6ICExLAogICAgICAgICAgICAgIG1uOiAiQURCRSBWZWN0b3IgU2hhcGUgLSBHcm91cCIsCiAgICAgICAgICAgICAgbm06ICJQYXRoIDEiLAogICAgICAgICAgICAgIGl4OiAxLAogICAgICAgICAgICAgIGQ6IDEsCiAgICAgICAgICAgICAga3M6IHsKICAgICAgICAgICAgICAgIGE6IDAsCiAgICAgICAgICAgICAgICBrOiB7CiAgICAgICAgICAgICAgICAgIGM6ICEwLAogICAgICAgICAgICAgICAgICBpOiBbCiAgICAgICAgICAgICAgICAgICAgWzcuMDI1LCAwXSwKICAgICAgICAgICAgICAgICAgICBbMCwgMF0sCiAgICAgICAgICAgICAgICAgICAgWzAsIDcuMDI2XSwKICAgICAgICAgICAgICAgICAgICBbMCwgMF0sCiAgICAgICAgICAgICAgICAgICAgWy03LjAyNSwgMF0sCiAgICAgICAgICAgICAgICAgICAgWzAsIDBdLAogICAgICAgICAgICAgICAgICAgIFswLCAtNy4wMjVdLAogICAgICAgICAgICAgICAgICAgIFswLCAwXSwKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgbzogWwogICAgICAgICAgICAgICAgICAgIFswLCAwXSwKICAgICAgICAgICAgICAgICAgICBbLTcuMDI1LCAwXSwKICAgICAgICAgICAgICAgICAgICBbMCwgMF0sCiAgICAgICAgICAgICAgICAgICAgWzAsIC03LjAyNV0sCiAgICAgICAgICAgICAgICAgICAgWzAsIDBdLAogICAgICAgICAgICAgICAgICAgIFs3LjAyNSwgMF0sCiAgICAgICAgICAgICAgICAgICAgWzAsIDBdLAogICAgICAgICAgICAgICAgICAgIFswLCA3LjAyNl0sCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgIHY6IFsKICAgICAgICAgICAgICAgICAgICBbMjkuNzA4LCA0My4xMTZdLAogICAgICAgICAgICAgICAgICAgIFstMjkuNzA4LCA0My4xMTZdLAogICAgICAgICAgICAgICAgICAgIFstNDIuNDI5LCAzMC4zOTVdLAogICAgICAgICAgICAgICAgICAgIFstNDIuNDI5LCAtMzAuMzk2XSwKICAgICAgICAgICAgICAgICAgICBbLTI5LjcwOCwgLTQzLjExNl0sCiAgICAgICAgICAgICAgICAgICAgWzI5LjcwOCwgLTQzLjExNl0sCiAgICAgICAgICAgICAgICAgICAgWzQyLjQyOSwgLTMwLjM5Nl0sCiAgICAgICAgICAgICAgICAgICAgWzQyLjQyOSwgMzAuMzk1XSwKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBpeDogMiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHk6ICJzdCIsCiAgICAgICAgICAgICAgYm06IDAsCiAgICAgICAgICAgICAgY2w6ICIiLAogICAgICAgICAgICAgIGxuOiAiIiwKICAgICAgICAgICAgICBoZDogITEsCiAgICAgICAgICAgICAgbW46ICJBREJFIFZlY3RvciBHcmFwaGljIC0gU3Ryb2tlIiwKICAgICAgICAgICAgICBubTogIlN0cm9rZSAxIiwKICAgICAgICAgICAgICBsYzogMiwKICAgICAgICAgICAgICBsajogMSwKICAgICAgICAgICAgICBtbDogMTAsCiAgICAgICAgICAgICAgbzogeyBhOiAwLCBrOiAxMDAsIGl4OiA0IH0sCiAgICAgICAgICAgICAgdzogeyBhOiAwLCBrOiA4LCBpeDogNSB9LAogICAgICAgICAgICAgIGQ6IFtdLAogICAgICAgICAgICAgIGM6IHsgYTogMCwgazogWzAuMjExOCwgMC4yMzkyLCAwLjQ0MzFdLCBpeDogMyB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHk6ICJ0ciIsCiAgICAgICAgICAgICAgYTogeyBhOiAwLCBrOiBbMCwgMF0sIGl4OiAxIH0sCiAgICAgICAgICAgICAgczogeyBhOiAwLCBrOiBbMTAwLCAxMDBdLCBpeDogMyB9LAogICAgICAgICAgICAgIHNrOiB7IGE6IDAsIGs6IDAsIGl4OiA0IH0sCiAgICAgICAgICAgICAgcDogeyBhOiAwLCBrOiBbMTAwLCAxMDBdLCBpeDogMiB9LAogICAgICAgICAgICAgIHI6IHsgYTogMCwgazogMCwgaXg6IDYgfSwKICAgICAgICAgICAgICBzYTogeyBhOiAwLCBrOiAwLCBpeDogNSB9LAogICAgICAgICAgICAgIG86IHsgYTogMCwgazogMTAwLCBpeDogNyB9LAogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICBdLAogICAgICBpbmQ6IDIsCiAgICB9LAogIF0sCiAgTG4gPSAwLAogIEZuID0gMjAwLAogIEJuID0gMjAwLAogIHFuID0gewogICAgYTogIiIsCiAgICBrOiAiIiwKICAgIGQ6ICIiLAogICAgZzogIkBsb3R0aWVmaWxlcy90b29sa2l0LWpzIDAuMjIuMSIsCiAgICB0YzogIiMwMDAwMDAiLAogIH0sCiAgam4gPSAiNS41LjkiLAogIE1uID0gMjkuOTcwMDAxMjIwNzAzMSwKICBZbiA9IDYwLjAwMDAwMjQ0Mzg1MDEsCiAgR24gPSAwLAogIHpuID0gW10sCiAgV24gPSB7CiAgICBubTogVG4sCiAgICBtbjogTm4sCiAgICBsYXllcnM6IFVuLAogICAgZGRkOiBMbiwKICAgIGg6IEZuLAogICAgdzogQm4sCiAgICBtZXRhOiBxbiwKICAgIHY6IGpuLAogICAgZnI6IE1uLAogICAgb3A6IFluLAogICAgaXA6IEduLAogICAgYXNzZXRzOiB6biwKICB9LAogIEhuID0gewogICAga2V5OiAwLAogICAgY2xhc3M6CiAgICAgICJib3JkZXIgYm9yZGVyLXItMyByb3VuZGVkLWxnIHB4LWxnLTYgcHgtNCBwYi1sZy02IHBiLTQgYmctZ3JheS01MCBtYi00IG1iLWxnLTYiLAogIH0sCiAgS24gPSB7IGtleTogMCB9LAogIFFuID0geyBrZXk6IDEsIGNsYXNzOiAidGV4dC1jZW50ZXIiIH0sCiAgWG4gPSB7IGNsYXNzOiAidGV4dC1ncmF5LTgwMCBtYi0yIHRleHQtbWQtc2VtaWJvbGQiIH0sCiAgSm4gPSB7IGNsYXNzOiAidGV4dC1ncmF5LTUwMCB0ZXh0LXNtLXJlZ3VsYXIiIH0sCiAgWm4gPSB7IGNsYXNzOiAibWItMyIgfSwKICBlciA9IHsKICAgIGtleTogMywKICAgIGNsYXNzOiAidGV4dC1jZW50ZXIgdGV4dC1ncmF5LTkwMCBtYi0yIHRleHQtbWQtc2VtaWJvbGQgbXQtMiIsCiAgfSwKICB0ciA9IHsgY2xhc3M6ICJ0ZXh0LWNlbnRlciB0ZXh0LWdyYXktOTAwIG1iLTIgdGV4dC14cy1yZWd1bGFyIiB9LAogIGFyID0gewogICAgX19uYW1lOiAiUGVuZGluZ1RyYW5zYWN0aW9uIiwKICAgIHByb3BzOiB7IHN0YXR1czogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0gfSwKICAgIHNldHVwKGEpIHsKICAgICAgcmV0dXJuIChmLCBsKSA9PiB7CiAgICAgICAgY29uc3QgbSA9IGxhOwogICAgICAgIHJldHVybiBhLnN0YXR1cwogICAgICAgICAgPyAobigpLAogICAgICAgICAgICBwKCJkaXYiLCBIbiwgWwogICAgICAgICAgICAgIGEuc3RhdHVzID09PSB0KEspLlVOUEFJRAogICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICBwKCJkaXYiLCBLbiwgWwogICAgICAgICAgICAgICAgICAgIG8obSwgbnVsbCwgewogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgdChzYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogIiIsICJhbmltYXRpb24tZGF0YSI6IHQoV24pLCB3aWR0aDogIjgwcHgiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgIFsiYW5pbWF0aW9uLWRhdGEiXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgIDogKG4oKSwKICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICBRbiwKICAgICAgICAgICAgICAgICAgICBsWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICAobFswXSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhLnN0YXR1cyA9PT0gdChLKS5SRUZVTkQgPyAidGV4dC13YXJuaW5nLTYwMCIgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5zdGF0dXMgPT09IHQoSykuQ0FOQ0VMID8gInRleHQtZXJyb3ItNjAwIiA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC1wcmltYXJ5LTYwMCIpICsgIiBtdC02IiwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIGEuc3RhdHVzID09PSB0KEspLlJFRlVORCA/ICJwYXVzZV9jaXJjbGUiIDoKICAgICAgICAgICAgICAgICAgICAgICAgICBhLnN0YXR1cyA9PT0gdChLKS5DQU5DRUwgPyAiY2FuY2VsIiA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgImNoZWNrX2NpcmNsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgYS5zdGF0dXMgPT09IHQoSykuVU5QQUlECiAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgICAgICB7IGtleTogMiB9LAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIFhuLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIFcocihmLiR0KCJleGNoYW5nZS5wYXlPcmRlci5wZW5kaW5nUGF5bWVudCIpKSArICIgIiwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAobFsxXSA9IGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbmZvICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBKbiwgWwogICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBabiwgcihmLiR0KCJleGNoYW5nZS5wYXlPcmRlci5jb21wbGV0ZSIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIFcoIiAiICsgcihmLiR0KCJleGNoYW5nZS5wYXlPcmRlci5jb25maXJtIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgIDogYS5zdGF0dXMgPT09IHQoSykuRE9ORQogICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICBwKCJkaXYiLCBlciwgWwogICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsICLQl9Cw0Y/QstC60LAg0LjRgdC/0L7Qu9C90LXQvdCwIiksCiAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgdHIsCiAgICAgICAgICAgICAgICAgICAgICAi0JzRiyDQvtGC0L/RgNCw0LLQuNC70Lgg0YHRgNC10LTRgdGC0LLQsCDQv9C+INGD0LrQsNC30LDQvdC90YvQvCDQstCw0LzQuCDRgNC10LrQstC40LfQuNGC0LDQvC4g0KHQv9Cw0YHQuNCx0L4g0YfRgtC+INCy0L7RgdC/0L7Qu9GM0LfQvtCy0LDQu9C40YHRjCDRg9GB0LvRg9Cz0LDQvNC4INC90LDRiNC10LPQviDRgdC10YDQstC40YHQsC4g0JbQtNC10Lwg0LLQsNGBINGB0L3QvtCy0LAsINC80Ysg0LLRgdC10LPQtNCwINC6INCy0LDRiNC40Lwg0YPRgdC70YPQs9Cw0LwuIgogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgOiBhLnN0YXR1cyA9PT0gdChLKS5DQU5DRUwKICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgZXIsIFsKICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCAi0JfQsNGP0LLQutCwINC+0YLQvNC10L3QtdC90LAiKSwKICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICB0ciwKICAgICAgICAgICAgICAgICAgICAgICLQl9Cw0Y/QstC60LAg0LHRi9C70LAg0L7RgtC80LXQvdC10L3QsC4g0JXRgdC70Lgg0YMg0LLQsNGBINCy0L7Qt9C90LjQutC70Lgg0LLQvtC/0YDQvtGB0YssINC/0L7QttCw0LvRg9C50YHRgtCwLCDQvtCx0YDQsNGC0LjRgtC10YHRjCDQsiDRgtC10YXQvdC40YfQtdGB0LrRg9GOINC/0L7QtNC00LXRgNC20LrRgy4iCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICA6IGEuc3RhdHVzID09PSB0KEspLlBST0NFU1NJTkcKICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgZXIsIFsKICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCAi0JfQsNGP0LLQutCwINCyINC+0LHRgNCw0LHQvtGC0LrQtSIpLAogICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgIHRyLAogICAgICAgICAgICAgICAgICAgICAgItCS0LDRiNCwINC30LDRj9Cy0LrQsCDQvdCw0YXQvtC00LjRgtGB0Y8g0LIg0L7QsdGA0LDQsdC+0YLQutC1LiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0L7QttC40LTQsNC50YLQtSDQt9Cw0LLQtdGA0YjQtdC90LjRjyDQvtC/0LXRgNCw0YbQuNC4LiIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgIDogYS5zdGF0dXMgPT09IHQoSykuUEVORElORwogICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICBwKCJkaXYiLCBlciwgWwogICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsICLQn9C70LDRgtGR0LYg0L/RgNC40L3Rj9GCIiksCiAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgdHIsCiAgICAgICAgICAgICAgICAgICAgICAi0KHRgNC10LTRgdGC0LLQsCDQv9C+0YHRgtGD0L/QuNC70Lgg0L3QsCDQvdCw0Ygg0LrQvtGI0LXQu9C10LosINC+0L/QtdGA0LDRgtC+0YAg0YPQttC1INC/0YDQuNGB0YLRg9C/0LjQuyDQuiDQuNGB0L/QvtC70L3QtdC90LjRjiDQstCw0YjQtdC5INC30LDRj9Cy0LrQuCIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgIDogYS5zdGF0dXMgPT09IHQoSykuUkVGVU5ECiAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgIHAoImRpdiIsIGVyLCBbCiAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgItCX0LDRj9Cy0LrQsCDQvtGB0YLQsNC90L7QstC70LXQvdCwIiksCiAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgdHIsCiAgICAgICAgICAgICAgICAgICAgICAi0J3QsNC8INC/0L7RgtGA0LXQsdC+0LLQsNC70LDRgdGMINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdCw0Y8g0LjQvdGE0L7RgNC80LDRhtC40Y8g0LTQu9GPINC40YHQv9C+0LvQvdC10L3QuNGPINC00LDQvdC90L7QuSDQt9Cw0Y/QstC60LguINCf0L7QttCw0LvRg9C50YHRgtCwINGB0LLRj9C20LjRgtC10YHRjCDRgdC+ICAiCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgImEiLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBocmVmOiAiaHR0cHM6Ly90Lm1lL25jb25uZWN0X29yZyAiLAogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInRleHQtcHJpbWFyeS02MDAiLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICLRgdC70YPQttCx0L7QuSDQv9C+0LTQtNC10YDQttC60LgiCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICA6IGEuc3RhdHVzID09PSB0KEspLlNVU1BFTkQKICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgZXIsIFsKICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCAi0JfQsNGP0LLQutCwINC/0YDQuNCe0KHQotCQ0J3QntCS0JvQldCd0JAiKSwKICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICB0ciwKICAgICAgICAgICAgICAgICAgICAgICLQktCw0YjQsCDQt9Cw0Y/QstC60LAg0LLRgNC10LzQtdC90L3QviDQv9GA0LjQntCh0KLQkNCd0J7QktCb0JXQndCQLiDQndCw0YjQuCDRgdC/0LXRhtC40LDQu9C40YHRgtGLINGD0LbQtSDRgNCw0LHQvtGC0LDRjtGCINC90LDQtCDRjdGC0LjQvC4iCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICA6IGEuc3RhdHVzID09PSB0KEspLlJFSkVDVAogICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICBwKCJkaXYiLCBlciwgWwogICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsICLQl9Cw0Y/QstC60LAg0L7RgtC60LvQvtC90LXQvdCwIiksCiAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgdHIsCiAgICAgICAgICAgICAgICAgICAgICAi0JLQsNGI0LAg0LfQsNGP0LLQutCwINCx0YvQu9CwINC+0YLQutC70L7QvdC10L3QsC4g0JTQu9GPINCy0YvRj9GB0L3QtdC90LjRjyDQv9GA0LjRh9C40L0sINC/0L7QttCw0LvRg9C50YHRgtCwLCDQvtCx0YDQsNGC0LjRgtC10YHRjCDQsiDRgtC10YXQvdC40YfQtdGB0LrRg9GOINC/0L7QtNC00LXRgNC20LrRgy4iCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICA6IChuKCksCiAgICAgICAgICAgICAgICAgIHAoImRpdiIsIGVyLCBbCiAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgItCh0YLQsNGC0YPRgSDQt9Cw0Y/QstC60Lgg0L3QtdC40LfQstC10YHRgtC10L0iKSwKICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICB0ciwKICAgICAgICAgICAgICAgICAgICAgICLQn9C+0LbQsNC70YPQudGB0YLQsCwg0L7QsdGA0LDRgtC40YLQtdGB0Ywg0LIg0YLQtdGF0L3QuNGH0LXRgdC60YPRjiDQv9C+0LTQtNC10YDQttC60YMg0LTQu9GPINGD0YLQvtGH0L3QtdC90LjRjyDRgdGC0LDRgtGD0YHQsCDQstCw0YjQtdC5INC30LDRj9Cy0LrQuC4iCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSkpLAogICAgICAgICAgICBdKSkKICAgICAgICAgIDogUigiIiwgITApOwogICAgICB9OwogICAgfSwKICB9LAogIHNyID0gWWUoCiAgICB7CiAgICAgIGNoaXBzOiBCb29sZWFuLAogICAgICBjb3VudGVyOiBCb29sZWFuLAogICAgICBjb3VudGVyU2l6ZVN0cmluZzogewogICAgICAgIHR5cGU6IFN0cmluZywKICAgICAgICBkZWZhdWx0OiAiJHZ1ZXRpZnkuZmlsZUlucHV0LmNvdW50ZXJTaXplIiwKICAgICAgfSwKICAgICAgY291bnRlclN0cmluZzogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIkdnVldGlmeS5maWxlSW5wdXQuY291bnRlciIgfSwKICAgICAgaGlkZUlucHV0OiBCb29sZWFuLAogICAgICBtdWx0aXBsZTogQm9vbGVhbiwKICAgICAgc2hvd1NpemU6IHsKICAgICAgICB0eXBlOiBbQm9vbGVhbiwgTnVtYmVyLCBTdHJpbmddLAogICAgICAgIGRlZmF1bHQ6ICExLAogICAgICAgIHZhbGlkYXRvcjogKGEpID0+CiAgICAgICAgICB0eXBlb2YgYSA9PSAiYm9vbGVhbiIgfHwgWzFlMywgMTAyNF0uaW5jbHVkZXMoTnVtYmVyKGEpKSwKICAgICAgfSwKICAgICAgLi4uU3QoeyBwcmVwZW5kSWNvbjogIiRmaWxlIiB9KSwKICAgICAgbW9kZWxWYWx1ZTogewogICAgICAgIHR5cGU6IFtBcnJheSwgT2JqZWN0XSwKICAgICAgICBkZWZhdWx0OiAoYSkgPT4gKGEubXVsdGlwbGUgPyBbXSA6IG51bGwpLAogICAgICAgIHZhbGlkYXRvcjogKGEpID0+IEN0KGEpLmV2ZXJ5KChmKSA9PiBmICE9IG51bGwgJiYgdHlwZW9mIGYgPT0gIm9iamVjdCIpLAogICAgICB9LAogICAgICAuLi5wYSh7IGNsZWFyYWJsZTogITAgfSksCiAgICB9LAogICAgIlZGaWxlSW5wdXQiCiAgKSwKICBsciA9IEdlKCkoewogICAgbmFtZTogIlZGaWxlSW5wdXQiLAogICAgaW5oZXJpdEF0dHJzOiAhMSwKICAgIHByb3BzOiBzcigpLAogICAgZW1pdHM6IHsKICAgICAgImNsaWNrOmNvbnRyb2wiOiAoYSkgPT4gITAsCiAgICAgICJtb3VzZWRvd246Y29udHJvbCI6IChhKSA9PiAhMCwKICAgICAgInVwZGF0ZTpmb2N1c2VkIjogKGEpID0+ICEwLAogICAgICAidXBkYXRlOm1vZGVsVmFsdWUiOiAoYSkgPT4gITAsCiAgICB9LAogICAgc2V0dXAoYSwgZikgewogICAgICBsZXQgeyBhdHRyczogbCwgZW1pdDogbSwgc2xvdHM6IGQgfSA9IGY7CiAgICAgIGNvbnN0IHsgdDogcyB9ID0gYnQoKSwKICAgICAgICBjID0gZXQoCiAgICAgICAgICBhLAogICAgICAgICAgIm1vZGVsVmFsdWUiLAogICAgICAgICAgYS5tb2RlbFZhbHVlLAogICAgICAgICAgKGcpID0+IEN0KGcpLAogICAgICAgICAgKGcpID0+ICghYS5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KGcpID8gZ1swXSA6IGcpCiAgICAgICAgKSwKICAgICAgICB7IGlzRm9jdXNlZDogXywgZm9jdXM6IHYsIGJsdXI6IHkgfSA9IER0KGEpLAogICAgICAgIGkgPSBxKCgpID0+ICh0eXBlb2YgYS5zaG93U2l6ZSAhPSAiYm9vbGVhbiIgPyBhLnNob3dTaXplIDogdm9pZCAwKSksCiAgICAgICAgQyA9IHEoKCkgPT4KICAgICAgICAgIChjLnZhbHVlID8/IFtdKS5yZWR1Y2UoKGcsIEQpID0+IHsKICAgICAgICAgICAgbGV0IHsgc2l6ZTogayA9IDAgfSA9IEQ7CiAgICAgICAgICAgIHJldHVybiBnICsgazsKICAgICAgICAgIH0sIDApCiAgICAgICAgKSwKICAgICAgICBQID0gcSgoKSA9PiB1dChDLnZhbHVlLCBpLnZhbHVlKSksCiAgICAgICAgYiA9IHEoKCkgPT4KICAgICAgICAgIChjLnZhbHVlID8/IFtdKS5tYXAoKGcpID0+IHsKICAgICAgICAgICAgY29uc3QgeyBuYW1lOiBEID0gIiIsIHNpemU6IGsgPSAwIH0gPSBnOwogICAgICAgICAgICByZXR1cm4gYS5zaG93U2l6ZSA/IGAke0R9ICgke3V0KGssIGkudmFsdWUpfSlgIDogRDsKICAgICAgICAgIH0pCiAgICAgICAgKSwKICAgICAgICBNID0gcSgoKSA9PiB7CiAgICAgICAgICB2YXIgRDsKICAgICAgICAgIGNvbnN0IGcgPSAoKEQgPSBjLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogRC5sZW5ndGgpID8/IDA7CiAgICAgICAgICByZXR1cm4gYS5zaG93U2l6ZQogICAgICAgICAgICA/IHMoYS5jb3VudGVyU2l6ZVN0cmluZywgZywgUC52YWx1ZSkKICAgICAgICAgICAgOiBzKGEuY291bnRlclN0cmluZywgZyk7CiAgICAgICAgfSksCiAgICAgICAgaiA9IFMoKSwKICAgICAgICBCID0gUygpLAogICAgICAgICQgPSBTKCksCiAgICAgICAgVSA9IHEoKCkgPT4gXy52YWx1ZSB8fCBhLmFjdGl2ZSksCiAgICAgICAgaCA9IHEoKCkgPT4gWyJwbGFpbiIsICJ1bmRlcmxpbmVkIl0uaW5jbHVkZXMoYS52YXJpYW50KSk7CiAgICAgIGZ1bmN0aW9uIEUoKSB7CiAgICAgICAgdmFyIGc7CiAgICAgICAgJC52YWx1ZSAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJgogICAgICAgICAgKChnID0gJC52YWx1ZSkgPT0gbnVsbCB8fCBnLmZvY3VzKCkpLAogICAgICAgICAgXy52YWx1ZSB8fCB2KCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gVihnKSB7CiAgICAgICAgdmFyIEQ7CiAgICAgICAgKEQgPSAkLnZhbHVlKSA9PSBudWxsIHx8IEQuY2xpY2soKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBUKGcpIHsKICAgICAgICBtKCJtb3VzZWRvd246Y29udHJvbCIsIGcpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIE4oZykgewogICAgICAgIHZhciBEOwogICAgICAgIChEID0gJC52YWx1ZSkgPT0gbnVsbCB8fCBELmNsaWNrKCksIG0oImNsaWNrOmNvbnRyb2wiLCBnKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBPKGcpIHsKICAgICAgICBnLnN0b3BQcm9wYWdhdGlvbigpLAogICAgICAgICAgRSgpLAogICAgICAgICAgbmEoKCkgPT4gewogICAgICAgICAgICAoYy52YWx1ZSA9IFtdKSwgcmEoYVsib25DbGljazpjbGVhciJdLCBnKTsKICAgICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiAoCiAgICAgICAgVmUoYywgKGcpID0+IHsKICAgICAgICAgICghQXJyYXkuaXNBcnJheShnKSB8fCAhZy5sZW5ndGgpICYmICQudmFsdWUgJiYgKCQudmFsdWUudmFsdWUgPSAiIik7CiAgICAgICAgfSksCiAgICAgICAgSmUoKCkgPT4gewogICAgICAgICAgY29uc3QgZyA9ICEhKGQuY291bnRlciB8fCBhLmNvdW50ZXIpLAogICAgICAgICAgICBEID0gISEoZyB8fCBkLmRldGFpbHMpLAogICAgICAgICAgICBbaywgeF0gPSAkdChsKSwKICAgICAgICAgICAgeyBtb2RlbFZhbHVlOiBZLCAuLi5IIH0gPSBNZS5maWx0ZXJQcm9wcyhhKSwKICAgICAgICAgICAgWCA9IHlhKGEpOwogICAgICAgICAgcmV0dXJuIG8oCiAgICAgICAgICAgIE1lLAogICAgICAgICAgICBEZSgKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZWY6IGosCiAgICAgICAgICAgICAgICBtb2RlbFZhbHVlOiBjLnZhbHVlLAogICAgICAgICAgICAgICAgIm9uVXBkYXRlOm1vZGVsVmFsdWUiOiAoYWUpID0+IChjLnZhbHVlID0gYWUpLAogICAgICAgICAgICAgICAgY2xhc3M6IFsKICAgICAgICAgICAgICAgICAgInYtZmlsZS1pbnB1dCIsCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAidi1maWxlLWlucHV0LS1jaGlwcyI6ICEhYS5jaGlwcywKICAgICAgICAgICAgICAgICAgICAidi1maWxlLWlucHV0LS1oaWRlIjogYS5oaWRlSW5wdXQsCiAgICAgICAgICAgICAgICAgICAgInYtaW5wdXQtLXBsYWluLXVuZGVybGluZWQiOiBoLnZhbHVlLAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBhLmNsYXNzLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHN0eWxlOiBhLnN0eWxlLAogICAgICAgICAgICAgICAgIm9uQ2xpY2s6cHJlcGVuZCI6IFYsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgIEgsCiAgICAgICAgICAgICAgeyBjZW50ZXJBZmZpeDogIWgudmFsdWUsIGZvY3VzZWQ6IF8udmFsdWUgfQogICAgICAgICAgICApLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgLi4uZCwKICAgICAgICAgICAgICBkZWZhdWx0OiAoYWUpID0+IHsKICAgICAgICAgICAgICAgIGxldCB7CiAgICAgICAgICAgICAgICAgIGlkOiBlZSwKICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogbmUsCiAgICAgICAgICAgICAgICAgIGlzRGlydHk6IHJlLAogICAgICAgICAgICAgICAgICBpc1JlYWRvbmx5OiBtZSwKICAgICAgICAgICAgICAgICAgaXNWYWxpZDogTmUsCiAgICAgICAgICAgICAgICB9ID0gYWU7CiAgICAgICAgICAgICAgICByZXR1cm4gbygKICAgICAgICAgICAgICAgICAgdmEsCiAgICAgICAgICAgICAgICAgIERlKAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIHJlZjogQiwKICAgICAgICAgICAgICAgICAgICAgICJwcmVwZW5kLWljb24iOiBhLnByZXBlbmRJY29uLAogICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZWRvd246IFQsCiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBOLAogICAgICAgICAgICAgICAgICAgICAgIm9uQ2xpY2s6Y2xlYXIiOiBPLAogICAgICAgICAgICAgICAgICAgICAgIm9uQ2xpY2s6cHJlcGVuZElubmVyIjogYVsib25DbGljazpwcmVwZW5kSW5uZXIiXSwKICAgICAgICAgICAgICAgICAgICAgICJvbkNsaWNrOmFwcGVuZElubmVyIjogYVsib25DbGljazphcHBlbmRJbm5lciJdLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgWCwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBpZDogZWUudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IFUudmFsdWUgfHwgcmUudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBkaXJ0eTogcmUudmFsdWUgfHwgYS5kaXJ0eSwKICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBuZS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIGZvY3VzZWQ6IF8udmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogTmUudmFsdWUgPT09ICExLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIC4uLmQsCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogKGJlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgQWU7CiAgICAgICAgICAgICAgICAgICAgICBsZXQgewogICAgICAgICAgICAgICAgICAgICAgICBwcm9wczogeyBjbGFzczogRWUsIC4uLmtlIH0sCiAgICAgICAgICAgICAgICAgICAgICB9ID0gYmU7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbyhRLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgImlucHV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBEZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiAkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiZmlsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5OiBtZS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG5lLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZTogYS5tdWx0aXBsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYS5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAob2UpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZS5zdG9wUHJvcGFnYXRpb24oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lLnZhbHVlICYmIG9lLnByZXZlbnREZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiAob2UpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9lLnRhcmdldCkgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVlID0gb2UudGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudmFsdWUgPSBbLi4uKFVlLmZpbGVzID8/IFtdKV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM6IEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgKICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgbygiZGl2IiwgeyBjbGFzczogRWUgfSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICEhKChBZSA9IGMudmFsdWUpICE9IG51bGwgJiYgQWUubGVuZ3RoKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIWEuaGlkZUlucHV0ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZC5zZWxlY3Rpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBkLnNlbGVjdGlvbih7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZXM6IGIudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEJ5dGVzOiBDLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxCeXRlc1JlYWRhYmxlOiBQLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYS5jaGlwcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGIudmFsdWUubWFwKChvZSkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogb2UsIHNpemU6ICJzbWFsbCIsIHRleHQ6IG9lIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYi52YWx1ZS5qb2luKCIsICIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZGV0YWlsczogRAogICAgICAgICAgICAgICAgPyAoYWUpID0+IHsKICAgICAgICAgICAgICAgICAgICB2YXIgZWUsIG5lOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBvKFEsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgIChlZSA9IGQuZGV0YWlscykgPT0gbnVsbCA/IHZvaWQgMCA6IGVlLmNhbGwoZCwgYWUpLAogICAgICAgICAgICAgICAgICAgICAgZyAmJgogICAgICAgICAgICAgICAgICAgICAgICBvKFEsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICBvKCJzcGFuIiwgbnVsbCwgbnVsbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6ICEhKChuZSA9IGMudmFsdWUpICE9IG51bGwgJiYgbmUubGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IE0udmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBhLmRpc2FibGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuY291bnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF0pOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICA6IHZvaWQgMCwKICAgICAgICAgICAgfQogICAgICAgICAgKTsKICAgICAgICB9KSwKICAgICAgICBJdCh7fSwgaiwgQiwgJCkKICAgICAgKTsKICAgIH0sCiAgfSksCiAgbnIgPSB7IGNsYXNzOiAidGV4dC1tZC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIG1iLTMiIH0sCiAgcnIgPSB7IGNsYXNzOiAidGV4dC14cy1yZWd1bGFyIHRleHQtZ3JheS03MDAiIH0sCiAgb3IgPSB7CiAgICBjbGFzczoKICAgICAgImJvcmRlciBmbGV4IHctZnVsbCBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGN1cnNvci1wb2ludGVyIG92ZXJmbG93LWhpZGRlbiBiZy13aGl0ZSBsZzpoLTM2ICFoLTMyIiwKICB9LAogIGlyID0gewogICAga2V5OiAwLAogICAgY2xhc3M6ICJmbGV4IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciB3LWZ1bGwgcm91bmRlZC1sZyBqdXN0aWZ5LWNlbnRlciIsCiAgfSwKICBjciA9IHsga2V5OiAxLCBjbGFzczogInJlbGF0aXZlIHAtMiB3LWZ1bGwgaC1mdWxsIiB9LAogIGRyID0gewogICAgX19uYW1lOiAiVXBsb2FkVHJhbnNhY3Rpb25TY3JlZW5TaG90IiwKICAgIHByb3BzOiB7IGxhYmVsOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSB9LAogICAgZW1pdHM6IFsidXBkYXRlSW1nVXJsIl0sCiAgICBzZXR1cChhLCB7IGVtaXQ6IGYgfSkgewogICAgICBjb25zdCBsID0gUyhbCiAgICAgICAgICAoXykgPT4gIV8gfHwgXy5zaXplIDwgMmU1IHx8ICJBdmF0YXIgc2l6ZSBzaG91bGQgYmUgbGVzcyB0aGFuIDIgTUIhIiwKICAgICAgICBdKSwKICAgICAgICBtID0gUygiIiksCiAgICAgICAgZCA9IGYsCiAgICAgICAgcyA9IChfKSA9PiB7CiAgICAgICAgICBpZiAoXyAmJiBfLnRhcmdldCAmJiBfLnRhcmdldC5maWxlcyAmJiBfLnRhcmdldC5maWxlc1swXSkgewogICAgICAgICAgICBjb25zdCB2ID0gXy50YXJnZXQuZmlsZXNbMF07CiAgICAgICAgICAgIGQoInVwZGF0ZUltZ1VybCIsIHYpOwogICAgICAgICAgICBjb25zdCB5ID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICAgICAgKHkub25sb2FkID0gKGkpID0+IHsKICAgICAgICAgICAgICBtLnZhbHVlID0gaS50YXJnZXQucmVzdWx0OwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICB5LnJlYWRBc0RhdGFVUkwodik7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBjID0gKCkgPT4gewogICAgICAgICAgbS52YWx1ZSA9IG51bGw7CiAgICAgICAgfTsKICAgICAgcmV0dXJuIChfLCB2KSA9PiAoCiAgICAgICAgbigpLAogICAgICAgIHooRmUsIG51bGwsIHsKICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICBvKAogICAgICAgICAgICAgIGxlLAogICAgICAgICAgICAgIHsgY29sczogIjEyIiwgbGc6ICI4IiB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICBlKCJkaXYiLCBuciwgcihhLmxhYmVsKSwgMSksCiAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgcnIsCiAgICAgICAgICAgICAgICAgICAgcihfLiR0KCJleGNoYW5nZS51cGxvYWRUcmFuc2FjdGlvbkRlc2NyaXB0aW9uIikpLAogICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICksCiAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgbGUsCiAgICAgICAgICAgICAgeyBjb2xzOiAiMTIiLCBsZzogIjQiLCBjbGFzczogImZsZXgganVzdGlmeS1lbmQiIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG9yLCBbCiAgICAgICAgICAgICAgICAgICAgdChtKQogICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICBwKCJkaXYiLCBjciwgWwogICAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiB0KG0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjEwMCUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWF4LXdpZHRoIjogIjEwMCUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICIxMDAlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFic29sdXRlIHRvcC0yIGxlZnQtMiBiZy13aGl0ZSByb3VuZGVkLWNpcmNsZSBmbGV4IGp1c3RpZnktY2VudGVyIGFsaWduLWNlbnRlciBzaGFkb3cgY3Vyc29yLXBvaW50ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAicC0xIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHZbMV0gfHwgKHZbMV0gPSBbVygiIG1kaS1jbG9zZSAiKV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgICAgICA6IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHAoImxhYmVsIiwgaXIsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICB2WzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodlswXSA9IGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogIm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhZGRfcGhvdG9fYWx0ZXJuYXRlICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogImZpbGVJbnB1dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdDogImltYWdlL3BuZywgaW1hZ2UvanBlZywgaW1hZ2UvYm1wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICJQaWNrIGFuIGF2YXRhciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAiQXZhdGFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhpZGUtaW5wdXQiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZXBlbmQtaWNvbiI6ICJtZGktamoiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogImFic29sdXRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IHQobCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJydWxlcyJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSkpLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICksCiAgICAgICAgICBdKSwKICAgICAgICAgIF86IDEsCiAgICAgICAgfSkKICAgICAgKTsKICAgIH0sCiAgfSwKICB1ciA9IHsKICAgIGNsYXNzOiAiYm9yZGVyIGJvcmRlci1yLTMgcm91bmRlZC1sZyBwLWxnLTYgcC00IGJnLWdyYXktMjUgc2hhZG93LXhzIG1iLTQiLAogIH0sCiAgbXIgPSB7IGNsYXNzOiAidGV4dC1tZC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIG1iLTMiIH0sCiAgcHIgPSB7CiAgICBjbGFzczogInRleHQtZ3JheS03MDAgdGV4dC1zbS1yZWd1bGFyIHBiLTQgd2hpdGVzcGFjZS1ub3JtYWwgYnJlYWstYWxsIiwKICB9LAogIHlyID0gewogICAga2V5OiAwLAogICAgY2xhc3M6ICJyb3VuZGVkLXBpbGwgcHgtMyBiZy1wcmltYXJ5LTYwMCB0ZXh0LXdoaXRlIHctZml0IHB5LTAuNSIsCiAgfSwKICB2ciA9IFsiaHJlZiJdLAogIGdyID0geyBrZXk6IDEgfSwKICBmciA9IHsga2V5OiAwLCBjbGFzczogImZsZXgiIH0sCiAgX3IgPSBbImhyZWYiXSwKICBociA9IHsgY2xhc3M6ICJsZzp0ZXh0LXNtLXNlbWlib2xkIHRleHQteHMtc2VtaWJvbGQiIH0sCiAgeHIgPSB7CiAgICBfX25hbWU6ICJBZG1pbkRlc2NyaXB0aW9uIiwKICAgIHNldHVwKGEpIHsKICAgICAgY29uc3QgeyAkaXNEZXNrdG9wOiBmIH0gPSB4ZSgpLAogICAgICAgIGwgPSB2ZSgpLAogICAgICAgIG0gPSAoZCkgPT4KICAgICAgICAgIC9eKGh0dHBzPzpcL1wvKT8oW1x3Li1dKylcLihbYS16XXsyLDZ9KSg6WzAtOV17MSw1fSk/KFwvW1x3Li1dKikqKFw/LiopPygjLiopPyQvaS50ZXN0KAogICAgICAgICAgICBkCiAgICAgICAgICApOwogICAgICByZXR1cm4gKGQsIHMpID0+IHsKICAgICAgICB2YXIgYywgXzsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbigpLAogICAgICAgICAgcCgiZGl2IiwgdXIsIFsKICAgICAgICAgICAgZSgiZGl2IiwgbXIsIHIoZC4kdCgiZXhjaGFuZ2UucGF5T3JkZXIuYWRtaW5EZXMiKSksIDEpLAogICAgICAgICAgICBlKCJkaXYiLCBwciwgWwogICAgICAgICAgICAgIG0odChsKS5vcmRlci5hZG1pbl9kZXNjcmlwdGlvbikKICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgeXIsIFsKICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgImEiLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBocmVmOiB0KGwpLm9yZGVyLmFkbWluX2Rlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6ICJfYmxhbmsiLAogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogImZsZXggZ2FwLTIgYWxpZ24tY2VudGVyIiwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICBzWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIChzWzBdID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgIGUoInNwYW4iLCBudWxsLCAiIG9wZW4gbGluayAiLCAtMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG9wZW5faW5fbmV3ICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgIHZyCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICA6IChuKCksIHAoInNwYW4iLCBnciwgcih0KGwpLm9yZGVyLmFkbWluX2Rlc2NyaXB0aW9uKSwgMSkpLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgKChfID0KICAgICAgICAgICAgICAoYyA9IHQobCkub3JkZXIudXNlckZpZWxkcykgPT0gbnVsbCA/IHZvaWQgMCA6IGMuYXR0YWNobWVudCkgPT0KICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBfLmxlbmd0aCkgPiAwCiAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgcCgiZGl2IiwgZnIsIFsKICAgICAgICAgICAgICAgICAgKG4oITApLAogICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICBjZSgKICAgICAgICAgICAgICAgICAgICAgIHQobCkub3JkZXIudXNlckZpZWxkcy5hdHRhY2htZW50LAogICAgICAgICAgICAgICAgICAgICAgKHYsIHkpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgbigpLAogICAgICAgICAgICAgICAgICAgICAgICBwKCJkaXYiLCB7IGtleTogeSwgY2xhc3M6ICJteC0yIiB9LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgdGFyZ2V0OiAiX2JsYW5rIiwgaHJlZjogdiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm91bmRlZC00IHRleHQtbm9uZSBzaGFkb3cteHMgbGc6cHgtNCBweC0zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB0KGYpID8gIiIgOiAiMTAwJSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInByaW1hcnktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJzdWJtaXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoZC4kdCgiZXhjaGFuZ2UucGF5T3JkZXIuYWRtaW5EZXNCdG4iKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzWzFdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNbMV0gPSBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIHRleHQtd2hpdGUgbWwtMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBvcGVuX2luX25ldyAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ3aWR0aCJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgXSkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9LAogIGJyID0geyBjbGFzczogInRyYWNraW5nLW5vcm1hbCIgfSwKICBrciA9IHsgY2xhc3M6ICJ0ZXh0LWNlbnRlciBsZzp0ZXh0LXhsLWJvbGQgdGV4dC1ncmF5LTkwMCBtdC02IiB9LAogIHdyID0geyBjbGFzczogInRleHQtY2VudGVyIHRleHQtbWQtbWVkaXVtIHRleHQtZ3JheS02MDAiIH0sCiAgJHIgPSB7IGNsYXNzOiAibXQtMTAiIH0sCiAgQ3IgPSB7IGNsYXNzOiAidGV4dC1zbS1yZWd1bGFyIG1iLTQgdGV4dC1ncmF5LTkwMCIgfSwKICBTciA9IHsKICAgIGNsYXNzOgogICAgICAiYm9yZGVyIHJvdW5kZWQtbGcgcC00IHB0LTAgdGV4dC1zbS1tZWRpdW0gYm9yZGVyLW9wYWNpdHktMTAwIGJvcmRlci1ncmF5LTMwMCIsCiAgfSwKICBEciA9IHsKICAgIGNsYXNzOiAiZmxleCBpdGVtcy1jZW50ZXIgcHktNCBib3JkZXItYiB0ZXh0LXNtLW1lZGl1bSB0ZXh0LWdyYXktODAwIiwKICB9LAogIElyID0gewogICAgY2xhc3M6ICJmbGV4IGl0ZW1zLWNlbnRlciBweS00IGJvcmRlci1iIHRleHQtc20tbWVkaXVtIHRleHQtZ3JheS04MDAiLAogIH0sCiAgRXIgPSB7IGNsYXNzOiAiZmxleCBpdGVtcy1jZW50ZXIgcHktNCB0ZXh0LXNtLW1lZGl1bSBwYi0wIHRleHQtZ3JheS04MDAiIH0sCiAgQXIgPSB7IGNsYXNzOiAidGV4dC1zbS1tZWRpdW0gdGV4dC1ncmF5LTYwMCBtdC04IHRleHQtY2VudGVyIiB9LAogIFJyID0geyBjbGFzczogInRleHQtc20tbWVkaXVtIHRleHQtZ3JheS05MDAgbXQtMiB0ZXh0LWNlbnRlciIgfSwKICBPciA9IHsgY2xhc3M6ICJmbGV4IGp1c3RpZnktY2VudGVyIiB9LAogIFByID0geyBjbGFzczogInRleHQtc20tc2VtaWJvbGQiIH0sCiAgVnIgPSB7CiAgICBfX25hbWU6ICJUaGFua1lvdURpYWxvZyIsCiAgICBlbWl0czogWyJzZW5kLWRhdGEiXSwKICAgIHNldHVwKGEsIHsgZW1pdDogZiB9KSB7CiAgICAgIGNvbnN0IGwgPSBmLAogICAgICAgIG0gPSAoKSA9PiB7CiAgICAgICAgICBsKCJzZW5kLWRhdGEiKTsKICAgICAgICB9OwogICAgICByZXR1cm4gKGQsIHMpID0+IHsKICAgICAgICBjb25zdCBjID0gRXQ7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIG4oKSwKICAgICAgICAgIHAoImRpdiIsIGJyLCBbCiAgICAgICAgICAgIG8oYywgewogICAgICAgICAgICAgIHNyYzogImV4Y2hhbmdlL3RoYW5rWW91RGlhbG9nL2RvbmUtc3RhdHVzLnN2ZyIsCiAgICAgICAgICAgICAgd2lkdGg6ICIxMDAiLAogICAgICAgICAgICAgIGhlaWdodDogIjEwMCIsCiAgICAgICAgICAgICAgY2xhc3M6ICJteC1hdXRvIiwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGUoImRpdiIsIGtyLCByKGQuJHQoImV4Y2hhbmdlLnRoYW5rcyIpKSwgMSksCiAgICAgICAgICAgIGUoImRpdiIsIHdyLCByKGQuJHQoImV4Y2hhbmdlLnBheU9yZGVyLm9yZGVyUHJvY2VzcyIpKSwgMSksCiAgICAgICAgICAgIGUoImRpdiIsICRyLCBbCiAgICAgICAgICAgICAgZSgiZGl2IiwgQ3IsIHIoZC4kdCgiZXhjaGFuZ2UucGF5T3JkZXIud2hhdE5leHQiKSkgKyAiIDogIiwgMSksCiAgICAgICAgICAgICAgZSgiZGl2IiwgU3IsIFsKICAgICAgICAgICAgICAgIGUoImRpdiIsIERyLCBbCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICBvKGMsIHsKICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiNDAiLAogICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNDAiLAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJtci0yLjUiLAogICAgICAgICAgICAgICAgICAgICAgc3JjOiAiZXhjaGFuZ2UvdGhhbmtZb3VEaWFsb2cvcGF5bWVudC5zdmciLAogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgVygiICIgKyByKGQuJHQoImV4Y2hhbmdlLnBheU9yZGVyLnBheW1lbnRDb25maXJtZWQiKSksIDEpLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBJciwgWwogICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgbyhjLCB7CiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjQwIiwKICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjQwIiwKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibXItMi41IiwKICAgICAgICAgICAgICAgICAgICAgIHNyYzogImV4Y2hhbmdlL3RoYW5rWW91RGlhbG9nL3Byb2Nlc3Muc3ZnIiwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIFcoIiAiICsgcihkLiR0KCJleGNoYW5nZS5wYXlPcmRlci5wYXltZW50UHJvY2Vzc2VkIikpLCAxKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgZSgiZGl2IiwgRXIsIFsKICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgIG8oYywgewogICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICI0MCIsCiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0MCIsCiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm1yLTIuNSIsCiAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJleGNoYW5nZS90aGFua1lvdURpYWxvZy9yZWNlaXZlLWZ1bmRzLnN2ZyIsCiAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBXKCIgIiArIHIoZC4kdCgiZXhjaGFuZ2UucGF5T3JkZXIuZnVuZHMiKSksIDEpLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICBlKCJkaXYiLCBBciwgcihkLiR0KCJleGNoYW5nZS5wYXlPcmRlci5oZXNpdGF0ZSIpKSwgMSksCiAgICAgICAgICAgIGUoImRpdiIsIFJyLCByKGQuJHQoImV4Y2hhbmdlLnBheU9yZGVyLm9ubGluZSIpKSwgMSksCiAgICAgICAgICAgIGUoImRpdiIsIE9yLCBbCiAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBjb2xvcjogInByaW1hcnktNjAwIiwKICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgIGhlaWdodDogIjQwIiwKICAgICAgICAgICAgICAgICAgd2lkdGg6ICIxODAiLAogICAgICAgICAgICAgICAgICByb3VuZGVkOiAibGciLAogICAgICAgICAgICAgICAgICBjbGFzczogIm14LWF1dG8gbXQtNiB0ZXh0LW5vbmUiLAogICAgICAgICAgICAgICAgICBvbkNsaWNrOiBtLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgZSgic3BhbiIsIFByLCBbCiAgICAgICAgICAgICAgICAgICAgICBXKHIoZC4kdCgiZXhjaGFuZ2UucGF5T3JkZXIuc3RhdHVzIikpICsgIiAiLCAxKSwKICAgICAgICAgICAgICAgICAgICAgIHNbMF0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgKHNbMF0gPSBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICIgYXJyb3dfZm9yd2FyZCAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApLAogICAgICAgICAgICBdKSwKICAgICAgICAgIF0pCiAgICAgICAgKTsKICAgICAgfTsKICAgIH0sCiAgfSwKICBUciA9IHsga2V5OiAwLCBjbGFzczogIm14LWF1dG8iIH0sCiAgTnIgPSB7IGNsYXNzOiAiZmxleCBqdXN0aWZ5LXNwYWNlLWJldHdlZW4iIH07CmNvbnN0IFVyID0geyBjbGFzczogImZsZXggbWItMTAgcG9zaXRpb24tcmVsYXRpdmUgbWF4LW1kOmdyaWQgbWF4LW1kOmdyaWQtY29scy0yIG1heC1tZDpqdXN0aWZ5LWNlbnRlciBtYXgtbWQ6Z2FwLTIiIH0sCiAgTHIgPSB7CiAgICBrZXk6IDQsCiAgICBjbGFzczoKICAgICAgImJvcmRlciBib3JkZXItci0zIHJvdW5kZWQtbGcgcC1sZy02IHAtNCBwdC1sZy0yIHB0LTAgYmctZ3JheS01MCB0ZXh0LWdyYXktOTAwIHNoYWRvdy14cyBtYi00IiwKICB9LAogIEZyID0geyBrZXk6IDAgfSwKICBCciA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIHRleHQtZ3JheS05MDAgbWItMyIgfSwKICBxciA9IHsKICAgIF9fbmFtZTogImluZGV4IiwKICAgIGVtaXRzOiBbImhhbmRlbEVycm9yIiwgImNsZWFyVHJhY2tPcmRlciJdLAogICAgc2V0dXAoYSwgeyBlbWl0OiBmIH0pIHsKICAgICAgY29uc3QgeyB0OiBsIH0gPSB6ZSgpLAogICAgICAgIHsgJGlzRGVza3RvcDogbSB9ID0geGUoKSwKICAgICAgICBkID0gZiwKICAgICAgICBzID0gc3QoImRpYWxvZyIpLAogICAgICAgIGMgPSBXZSgpLAogICAgICAgIF8gPSB0dCgpLAogICAgICAgIHYgPSB2ZSgpLAogICAgICAgIHsgdXBsb2FkRmlsZTogeSB9ID0gT2EoKSwKICAgICAgICBpID0gUygibnVsbCIpLAogICAgICAgIEMgPSBTKCExKSwKICAgICAgICBQID0gUyhudWxsKSwKICAgICAgICBiID0gUyh7fSksCiAgICAgICAgTSA9IFMoITEpOwogICAgICBsZXQgaiwgQjsKICAgICAgY29uc3QgJCA9IHEoKCkgPT4gdi5vcmRlciksCiAgICAgICAgVSA9IHEoKCkgPT4gdi5tZW1vKSwKICAgICAgICBoID0gcSgoKSA9PiB2LnJlY2VpdmVEeW5hbWljRmllbGRzKSwKICAgICAgICBFID0gcSgoKSA9PiB2LnNlbmREeW5hbWljRmllbGRzKSwKICAgICAgICBWID0gcSgoKSA9PiAoewogICAgICAgICAgdG90YWxTZWNvbmRzOiAkLnZhbHVlLmV4cGlyZUFmdGVyID8/ICQudmFsdWUuZXhwaXJlX2FmdGVyLAogICAgICAgICAgc2Vjb25kc0xlZnQ6ICQudmFsdWUuY291bnRlcl9leHBpcmVfdGltZSwKICAgICAgICAgIHNob3c6ICQudmFsdWUuZmxhZ19leHBpcmVfdGltZSwKICAgICAgICB9KSksCiAgICAgICAgVCA9IHEoKCkgPT4gewogICAgICAgICAgdmFyIHc7CiAgICAgICAgICBjb25zdCB1ID0gKHcgPSAkLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogdy5vcmRlcl9zdGF0dXM7CiAgICAgICAgICByZXR1cm4gS1t1LnZhbHVlXSB8fCBLW3Uuc3RhdHVzXTsKICAgICAgICB9KSwKICAgICAgICBOID0gcSgoKSA9PiB7CiAgICAgICAgICB2YXIgdSwgdywgRjsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIGAkeyh1ID0gcWVbVC52YWx1ZV0pID09IG51bGwgPyB2b2lkIDAgOiB1LmNvbG9yfSAkewogICAgICAgICAgICAgICh3ID0gcWVbVC52YWx1ZV0pID09IG51bGwgPyB2b2lkIDAgOiB3LmJnQ29sb3IKICAgICAgICAgICAgfSAkewogICAgICAgICAgICAgIChGID0gcWVbVC52YWx1ZV0pID09IG51bGwgPyB2b2lkIDAgOiBGLmJvcmRlcgogICAgICAgICAgICB9IGJvcmRlciBib3JkZXItb3BhY2l0eS0xMDAgdGV4dC1zbS1tZWRpdW1gID8/ICIiCiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIE8gPSBxKCgpID0+IGkudmFsdWUgIT09IEouQVVUT19DUllQVE9fUEFZICYmIEsuVU5QQUlEID09PSBULnZhbHVlKSwKICAgICAgICBnID0gcSgoKSA9PiBbSy5VTlBBSUQsIEsuUEVORElOR10uaW5jbHVkZXMoVC52YWx1ZSkpLAogICAgICAgIEQgPSBxKCgpID0+IHsKICAgICAgICAgIGNvbnN0IHUgPSBbSy5VTlBBSUQsIEsuUEVORElORywgSy5QUk9DRVNTSU5HLCBLLkRPTkVdOwogICAgICAgICAgc3dpdGNoIChULnZhbHVlKSB7CiAgICAgICAgICAgIGNhc2UgSy5SRUZVTkQ6CiAgICAgICAgICAgICAgcmV0dXJuIFsuLi51LnNsaWNlKDAsIC0xKSwgSy5SRUZVTkRdOwogICAgICAgICAgICBjYXNlIEsuQ0FOQ0VMOgogICAgICAgICAgICAgIHJldHVybiBbLi4udS5zbGljZSgwLCAtMSksIEsuQ0FOQ0VMXTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gdTsKICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBrID0gcSgoKSA9PgogICAgICAgICAgaS52YWx1ZSA9PT0gSi5BVVRPX0VfQ1VSUkVOQ1lfUEFZCiAgICAgICAgICAgID8gbCgiZXhjaGFuZ2UucGF5T3JkZXIubWFrZSIpCiAgICAgICAgICAgIDogbCgiZXhjaGFuZ2UucGF5T3JkZXIuZmluYWxpemUiKQogICAgICAgICksCiAgICAgICAgeCA9IHEoKCkgPT4gVC52YWx1ZSAhPT0gSy5DQU5DRUwpOwogICAgICBMZSgoKSA9PiB7CiAgICAgICAgWSgpOwogICAgICB9KSwKICAgICAgICB3dCgoKSA9PiB7CiAgICAgICAgICBjbGVhckludGVydmFsKGopLCBjbGVhckludGVydmFsKEIpOwogICAgICAgIH0pOwogICAgICBjb25zdCBZID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc3QgdSA9IGMucXVlcnkudHJhY2tfaWQ7CiAgICAgICAgICBDLnZhbHVlID0gITA7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAodSkgTS52YWx1ZSA9ICEwOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBjb25zdCB3ID0geyAuLi5jLnF1ZXJ5IH07CiAgICAgICAgICAgICAgKHcudHJhY2tfaWQgPSAkLnZhbHVlLnRyYWNrX2lkKSwKICAgICAgICAgICAgICAgIGF3YWl0IF8ucHVzaCh7IHBhdGg6IGMucGF0aCwgcXVlcnk6IHcgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgKEMudmFsdWUgPSAhMSksCiAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHcpID0+IHsKICAgICAgICAgICAgICAgIFVlKCksIHcoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBIKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBIID0gKCkgPT4gewogICAgICAgICAgaS52YWx1ZSA9PT0gSi5BVVRPX0NSWVBUT19QQVkgPyBCZSgpIDogWCgpOwogICAgICAgIH0sCiAgICAgICAgWCA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIFQudmFsdWUgIT09IEsuVU5QQUlEICYmIChCID0gWGUoYWUsIDllMykpOwogICAgICAgIH0sCiAgICAgICAgYWUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICB2YXIgRjsKICAgICAgICAgIGNvbnN0IHcgPSB7IHRyYWNrX2lkOiBjLnF1ZXJ5LnRyYWNrX2lkIH07CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCB7IGRhdGE6IEwgfSA9IGF3YWl0IHVlKG9hLCB7IG1ldGhvZDogIkdFVCIsIHBhcmFtczogdyB9KSwKICAgICAgICAgICAgICBHID0KICAgICAgICAgICAgICAgICgoRiA9IEwudmFsdWUuZGF0YS5zdGF0dXMpID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiBGLnRvTG93ZXJDYXNlKCkpID8/IG51bGw7CiAgICAgICAgICAgIGlmICghRykgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoQik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFQudmFsdWUgIT09IEcgJiYgKGF3YWl0IGVlKCkpLAogICAgICAgICAgICAgIChULnZhbHVlID09PSBLLkRPTkUgfHwKICAgICAgICAgICAgICAgIFQudmFsdWUgPT09IEsuUkVGVU5EIHx8CiAgICAgICAgICAgICAgICBULnZhbHVlID09PSBLLkNBTkNFTCkgJiYKICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoQik7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChCKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGVlID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgdmFyIHcsIEYsIEwsIEc7CiAgICAgICAgICBjb25zdCB1ID0gYy5xdWVyeS50cmFja19pZDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIChDLnZhbHVlID0gITApLCBhd2FpdCB2LnRyYWNrT3JkZXIodSk7CiAgICAgICAgICB9IGNhdGNoICh0ZSkgewogICAgICAgICAgICBjb25zdCBkZSA9CiAgICAgICAgICAgICAgKChHID0KICAgICAgICAgICAgICAgIChMID0KICAgICAgICAgICAgICAgICAgKEYgPQogICAgICAgICAgICAgICAgICAgICh3ID0gdGUgPT0gbnVsbCA/IHZvaWQgMCA6IHRlLnJlc3BvbnNlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiB3Ll9kYXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICA6IEYuZXJyb3JzKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogTC52YWxpZGF0aW9uc1swXSkgPT0gbnVsbAogICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgIDogRy5tZXNzYWdlKSB8fCBudWxsOwogICAgICAgICAgICBkKCJoYW5kZWxFcnJvciIsIGRlKSwgdi51cGRhdGVEaXJlY3Rpb25DdXJyZW50U3RlcChaLkRJUkVDVElPTik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBDLnZhbHVlID0gITE7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBuZSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHZhciB1LCB3LCBGLCBMOwogICAgICAgICAgb2UoKSwgKEMudmFsdWUgPSAhMCksIHYuc2Nyb2xsVG9Ub3AoKTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGkudmFsdWUgPT09IEouQVVUT19FX0NVUlJFTkNZX1BBWQogICAgICAgICAgICAgID8gYXdhaXQgSGUoKQogICAgICAgICAgICAgIDogaS52YWx1ZSA9PT0gSi5NQU5VQUxfQ1JZUFRPX1BBWQogICAgICAgICAgICAgID8gKGF3YWl0IG1lKCksIEkoKSkKICAgICAgICAgICAgICA6IChpLnZhbHVlID09PSBKLlZPVUNIRVJfUEFZIHx8CiAgICAgICAgICAgICAgICAgIGkudmFsdWUgPT09IEouTUFOVUFMX0VfQ1VSUkVOQ1lfUEFZKSAmJgogICAgICAgICAgICAgICAgKGF3YWl0IHJlKCksIEkoKSksCiAgICAgICAgICAgICAgKEMudmFsdWUgPSAhMSk7CiAgICAgICAgICB9IGNhdGNoIChHKSB7CiAgICAgICAgICAgIGNvbnN0IHRlID0KICAgICAgICAgICAgICAoKEwgPQogICAgICAgICAgICAgICAgKEYgPQogICAgICAgICAgICAgICAgICAodyA9CiAgICAgICAgICAgICAgICAgICAgKHUgPSBHID09IG51bGwgPyB2b2lkIDAgOiBHLnJlc3BvbnNlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiB1LmRhdGEpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogdy5tZXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogRi5zdGF0dXMpID09IG51bGwKICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICA6IEwubWVzc2FnZSkgfHwgbnVsbDsKICAgICAgICAgICAgZCgiaGFuZGVsRXJyb3IiLCB0ZSksIChDLnZhbHVlID0gITEpOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgcmUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICB2YXIgdSwgdywgRiwgTDsKICAgICAgICAgIGIudmFsdWUudHJhY2tfaWQgPSAkLnZhbHVlLnRyYWNrX2lkOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgYXdhaXQgdWUobXQsIHsgbWV0aG9kOiAiUE9TVCIsIGJvZHk6IGIudmFsdWUgfSk7CiAgICAgICAgICB9IGNhdGNoIChHKSB7CiAgICAgICAgICAgIGNvbnN0IHRlID0KICAgICAgICAgICAgICAoKEwgPQogICAgICAgICAgICAgICAgKEYgPQogICAgICAgICAgICAgICAgICAodyA9CiAgICAgICAgICAgICAgICAgICAgKHUgPSBHID09IG51bGwgPyB2b2lkIDAgOiBHLnJlc3BvbnNlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiB1LmRhdGEpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogdy5tZXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogRi5zdGF0dXMpID09IG51bGwKICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICA6IEwubWVzc2FnZSkgfHwgbnVsbDsKICAgICAgICAgICAgZCgiaGFuZGVsRXJyb3IiLCB0ZSksIChDLnZhbHVlID0gITEpOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgbWUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICBjb25zdCB1ID0gW107CiAgICAgICAgICBoLnZhbHVlLmZvckVhY2goKHcpID0+IHsKICAgICAgICAgICAgdy50eXBlID09PSBLZS5GSUxFICYmIHUucHVzaCh7IG5hbWU6IHcubmFtZSwgdmFsdWU6IFAudmFsdWUgfSk7CiAgICAgICAgICB9KSwKICAgICAgICAgICAgdS5wdXNoKHsgbmFtZTogInRyYWNrX2lkIiwgdmFsdWU6ICQudmFsdWUudHJhY2tfaWQgfSk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBhd2FpdCB5KG10LCB1KTsKICAgICAgICAgIH0gY2F0Y2ggKHcpIHsKICAgICAgICAgICAgdGhyb3cgKChDLnZhbHVlID0gITEpLCB3KTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIE5lID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc3QgdSA9IHsgdHJhY2tfaWQ6ICQudmFsdWUudHJhY2tfaWQgfTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogdyB9ID0gYXdhaXQgdWUoaWEsIHsgbWV0aG9kOiAiUE9TVCIsIGJvZHk6IHUgfSksCiAgICAgICAgICAgICAgRiA9IE9iamVjdC5hc3NpZ24oCiAgICAgICAgICAgICAgICB7fSwKICAgICAgICAgICAgICAgIHsgLi4udi5jYWxjdWxhdGVEYXRhIH0sCiAgICAgICAgICAgICAgICB3LmRhdGEuY2FsY3VsYXRpb24uZGV0YWlscwogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgTCA9IHsgLi4uJC52YWx1ZSB9OwogICAgICAgICAgICAoTC5leHBpcmVfYWZ0ZXIgPSArdy5kYXRhLmV4cGlyZV9hZnRlciksCiAgICAgICAgICAgICAgKEwuY291bnRlcl9leHBpcmVfdGltZSA9ICt3LmRhdGEuY291bnRlcl9leHBpcmVfdGltZSksCiAgICAgICAgICAgICAgdi51cGRhdGVPcmRlcihMKSwKICAgICAgICAgICAgICBhd2FpdCB2LnVwZGF0ZUNhbGN1bGF0ZURhdGEoRik7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgQy52YWx1ZSA9ICExOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYmUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICB2YXIgdzsKICAgICAgICAgIGNvbnN0IHUgPSB7IHRyYWNrX2lkOiAkLnZhbHVlLnRyYWNrX2lkIH07CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCB7IGRhdGE6IEYgfSA9IGF3YWl0IHVlKGNhLCB7IG1ldGhvZDogIlBPU1QiLCBib2R5OiB1IH0pLAogICAgICAgICAgICAgIEwgPQogICAgICAgICAgICAgICAgKCh3ID0gRi52YWx1ZS5kYXRhLmNvbmZpcm1hdGlvbi5vcmRlclN0YXR1cykgPT0gbnVsbAogICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICA6IHcudG9Mb3dlckNhc2UoKSkgPz8gbnVsbDsKICAgICAgICAgICAgTCAhPT0gVC52YWx1ZSAmJiAoYXdhaXQgZWUoKSksCiAgICAgICAgICAgICAgKEwgPT09IEsuQ0FOQ0VMIHx8IEwgPT09IEsuUkVGVU5EIHx8IEwgPT09IEsuRE9ORSkgJiYKICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaik7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgKEMudmFsdWUgPSAhMSksIGNsZWFySW50ZXJ2YWwoaik7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBFZSA9ICh1KSA9PiB7CiAgICAgICAgICBQLnZhbHVlID0gdTsKICAgICAgICB9LAogICAgICAgIGtlID0gKCkgPT4gewogICAgICAgICAgQWUoKTsKICAgICAgICAgIGNvbnN0IHUgPSB7IC4uLmMucXVlcnkgfTsKICAgICAgICAgIGRlbGV0ZSB1LnRyYWNrX2lkLAogICAgICAgICAgICBfLnB1c2goeyBwYXRoOiBjLnBhdGgsIHF1ZXJ5OiB1IH0pLAogICAgICAgICAgICB2LnNjcm9sbFRvVG9wKCksCiAgICAgICAgICAgIHYuZGlzYWJsZUNhY2hlKCksCiAgICAgICAgICAgIGQoImNsZWFyVHJhY2tPcmRlciIpOwogICAgICAgIH0sCiAgICAgICAgQWUgPSAoKSA9PiB7CiAgICAgICAgICB2LmNsZWFyU3RhdHMoKSwgdi51cGRhdGVEaXJlY3Rpb25DdXJyZW50U3RlcChaLkRJUkVDVElPTik7CiAgICAgICAgfSwKICAgICAgICBvZSA9ICgpID0+IHsKICAgICAgICAgIGkudmFsdWUgPT09IEouQVVUT19FX0NVUlJFTkNZX1BBWQogICAgICAgICAgICA/IChiLnZhbHVlID0gewogICAgICAgICAgICAgICAgcGF5bWVudF9hbW91bnQ6ICQudmFsdWUucGF5bWVudF9nYXRld2F5LnBheW1lbnRfYW1vdW50LAogICAgICAgICAgICAgICAgcGF5bWVudF9nYXRld2F5OiAkLnZhbHVlLnBheW1lbnRfZ2F0ZXdheS5wYXltZW50X2dhdGV3YXksCiAgICAgICAgICAgICAgICBwYXltZW50X2lkOiAkLnZhbHVlLnBheW1lbnRfZ2F0ZXdheS5wYXltZW50X2lkLAogICAgICAgICAgICAgICAgdHJhY2tfaWQ6ICQudmFsdWUucGF5bWVudF9nYXRld2F5LnRyYWNrSWQsCiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgOiBpLnZhbHVlID09PSBKLk1BTlVBTF9FX0NVUlJFTkNZX1BBWSAmJiBoLnZhbHVlLmxlbmd0aAogICAgICAgICAgICA/IChiLnZhbHVlW0UudmFsdWVbMF0ubmFtZV0gPSBFLnZhbHVlWzBdLnZhbHVlKQogICAgICAgICAgICA6IEouTUFOVUFMX0NSWVBUT19QQVkgPT09IGkudmFsdWUgJiYKICAgICAgICAgICAgICAoYi52YWx1ZSA9IHsgdHJhY2tfaWQ6ICQudmFsdWUudHJhY2tfaWQgfSk7CiAgICAgICAgfSwKICAgICAgICBVZSA9ICgpID0+IHsKICAgICAgICAgIHZhciBGOwogICAgICAgICAgaWYgKCEkLnZhbHVlLmRpcmVjdGlvbikgcmV0dXJuOwogICAgICAgICAgY29uc3QgdSA9ICQudmFsdWUuZGlyZWN0aW9uLmF1dG9fc2VuZCA9PT0gMSwKICAgICAgICAgICAgdyA9ICQudmFsdWUuZGlyZWN0aW9uLnNlbmRfY3VycmVuY3kuaXNfY3J5cHRvID09PSAxOwogICAgICAgICAgKChGID0gJC52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IEYuZGlyZWN0aW9uLnNlbmRfY3VycmVuY3kuc2x1ZykgPT09CiAgICAgICAgICBfdC5WT1VDSEVSCiAgICAgICAgICAgID8gKGkudmFsdWUgPSBKLlZPVUNIRVJfUEFZKQogICAgICAgICAgICA6IHUgJiYgIXcKICAgICAgICAgICAgPyAoaS52YWx1ZSA9IEouQVVUT19FX0NVUlJFTkNZX1BBWSkKICAgICAgICAgICAgOiB1ICYmIHcKICAgICAgICAgICAgPyAoaS52YWx1ZSA9IEouQVVUT19DUllQVE9fUEFZKQogICAgICAgICAgICA6ICF1ICYmIHcKICAgICAgICAgICAgPyAoaS52YWx1ZSA9IEouTUFOVUFMX0NSWVBUT19QQVkpCiAgICAgICAgICAgIDogKGkudmFsdWUgPSBKLk1BTlVBTF9FX0NVUlJFTkNZX1BBWSk7CiAgICAgICAgfSwKICAgICAgICBIZSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIGNvbnN0IHUgPSAkLnZhbHVlLnBheW1lbnRfZ2F0ZXdheS5nYXRld2F5X2Zvcm07CiAgICAgICAgICBhd2FpdCB2LnN1Ym1pdEdhdGV3YXlGb3JtKGIudmFsdWUsIHUpOwogICAgICAgIH0sCiAgICAgICAgQmUgPSAoKSA9PiB7CiAgICAgICAgICBqID0gWGUoYmUsIDllMyk7CiAgICAgICAgfSwKICAgICAgICBSZSA9ICgpID0+IHsKICAgICAgICAgIHMuY2xvc2UoKSwgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgIH0sCiAgICAgICAgSSA9ICgpID0+IHsKICAgICAgICAgIHMub3BlbigiIiwgVnIsIHsgIm1heC13aWR0aCI6IDUxOCB9LCB7IGNhbGxiYWNrOiBSZSB9KTsKICAgICAgICB9OwogICAgICByZXR1cm4gKHUsIHcpID0+IHsKICAgICAgICBjb25zdCBGID0gT3QsCiAgICAgICAgICBMID0gdm4sCiAgICAgICAgICBHID0ga24sCiAgICAgICAgICB0ZSA9IFZuLAogICAgICAgICAgZGUgPSBhciwKICAgICAgICAgIGdlID0gVGUsCiAgICAgICAgICBpZSA9IGRyLAogICAgICAgICAgT2UgPSB4ciwKICAgICAgICAgIHdlID0gbnQ7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIG4oKSwKICAgICAgICAgIHAoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgdChDKQogICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgIHAoImRpdiIsIFRyLCBbCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIE5yLCBbCiAgICAgICAgICAgICAgICAgICAgbyhJZSwgeyB0eXBlOiAibGlzdC1pdGVtLXR3by1saW5lIiwgd2lkdGg6ICI0MCUiIH0pLAogICAgICAgICAgICAgICAgICAgIG8oSWUsIHsgd2lkdGg6ICI0MCUiLCB0eXBlOiAibGlzdC1pdGVtLXR3by1saW5lIiB9KSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICBvKEllLCB7CiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm14LWF1dG8iLAogICAgICAgICAgICAgICAgICAgICAgdHlwZTogImFydGljbGUsIGFjdGlvbnMiLAogICAgICAgICAgICAgICAgICAgICAgYm9pbGVycGxhdGU6ICIiLAogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICB0KCQpICYmICF0KEMpCiAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgRmUsCiAgICAgICAgICAgICAgICAgIHsga2V5OiAxLCBqdXN0aWZ5OiAiY2VudGVyIiB9LAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgcnQsIG90OwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgICAgUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgIGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsgY29sczogIjEyIiwgY2xhc3M6ICJmbGV4IGp1c3RpZnktY2VudGVyIG10LTMiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIFVyLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogc2UoWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3NpdGlvbi1hYnNvbHV0ZSBiZy1ncmF5LTEwMCBoLTAuNSB0b3AtNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAicmlnaHQtNiB3LTgwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAidy01NiByaWdodC1bMnJlbV0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG4oITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KEQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGUpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGc6bXgtMyBteC0xLjUgcG9zaXRpb24tcmVsYXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGUgPT09IHQoVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogc2UoWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBpbi1hbmltYXRpb24gbGVmdC0wIHJvdW5kZWQtcGlsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdChxZSlbdChUKV0uYmdDb2xvcl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHNlKFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvc2l0aW9uLXJlbGF0aXZlIHRleHQtY2VudGVyIHB4LWxnLTQgcHgtMyBweS0xLjUgei0xMDAwIHJvdW5kZWQtcGlsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZSA9PT0gdChUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0KE4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJsZzp0ZXh0LXNtLXJlZ3VsYXIgdGV4dC14cy1yZWd1bGFyIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYm9yZGVyLW9wYWNpdHktMTAwIGJnLXdoaXRlIHRleHQtZ3JheS02MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByKHUuJHQoYGV4Y2hhbmdlLnBheU9yZGVyLiR7JGV9YCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgICAgICAgIGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsgY29sczogIjEyIiwgY2xhc3M6ICJweS0wIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKEYsIHsgc3RlcDogdChaKS5QQVlfT1JERVIgfSwgbnVsbCwgOCwgWyJzdGVwIl0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICBsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNvbHM6ICIxMiIsIGNsYXNzOiAicHktMCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRlLCBpdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KGcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHooCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGltZS1kYXRhIjogdChWKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwaXJlT3JkZXI6IE5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidGltZS1kYXRhIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogdCgkKS5lbWFpbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYWNrLWlkIjogdCgkKS50cmFja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZW1haWwiLCAidHJhY2staWQiXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQoaSkgPT09IHQoSikuQVVUT19DUllQVE9fUEFZIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KGkpID09PSB0KEopLk1BTlVBTF9DUllQVE9fUEFZKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAxIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2FsbGV0LWhhc2giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCgkKS5jcnlwdG9BdXRvQWRkcmVzc1FSLnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCRlID0gdChFKVswXSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlLmxhYmVsKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdS4kdCgiZXhjaGFuZ2UucGF5T3JkZXIuaGlXYWxsIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZGVyLXR5cGUiOiB0KGkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChpdCA9IHQoRSlbMF0pID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdC5kZXNjcmlwdGlvbikgfHwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50OiB1LiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2hhbmdlLnBheU9yZGVyLmhpV2FsbEhpbnQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2FsbGV0LWFkZHJlc3MiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCgkKS5jcnlwdG9BdXRvQWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm15LTQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndhbGxldC1oYXNoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGl0bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlci10eXBlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoaW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2FsbGV0LWFkZHJlc3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChVKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YWxsZXQtaGFzaCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChVKS5jcnlwdG9NZW1vUVIudGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHQoVSkubGFiZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0KFUpLmRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50OiB1LiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGNoYW5nZS5wYXlPcmRlci5oaVdhbGxIaW50IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2FsbGV0LWFkZHJlc3MiOiB0KFUpLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGFzLW1lbW8td2FybmluZyI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm15LTQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2FsbGV0LWhhc2giLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGl0bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGludCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YWxsZXQtYWRkcmVzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChpKSA9PT0gdChKKS5NQU5VQUxfRV9DVVJSRU5DWV9QQVkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAyIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChFKS5sZW5ndGggPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHUuJHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2hhbmdlLnBheU9yZGVyLmhpV2FsbCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdChFKVswXS5kZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndhbGxldC1hZGRyZXNzIjogdChFKVswXS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJtYi00IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndhbGxldC1hZGRyZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFIoIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFIoIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KGkpID09PSB0KEopLkFVVE9fQ1JZUFRPX1BBWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KGRlLCB7IGtleTogMywgc3RhdHVzOiB0KFQpIH0sIG51bGwsIDgsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFIoIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KGgpLmxlbmd0aCA+IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KGkpICE9PSB0KEopLkFVVE9fQ1JZUFRPX1BBWSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgiZGl2IiwgTHIsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobighMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoaCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDZSwgUHQpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IFB0LCBjbGFzczogIm10LTQiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENlLnR5cGUgPT09IHQoS2UpLlRFWFQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKCJkaXYiLCBGciwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoQ2UubGFiZWwpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVxdWVzdC1wYXJhbXMiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KGIpW0NlLm5hbWVdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOnJlcXVlc3RQYXJhbXMiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVnQpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQoYilbQ2UubmFtZV0gPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENlLmRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0LXBhcmFtcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6cmVxdWVzdFBhcmFtcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGxhY2Vob2xkZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDZS50eXBlID09PSB0KEtlKS5GSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IENlLmxhYmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1nVXJsOiBFZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJsYWJlbCJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgdCgkKS5hZG1pbl9kZXNjcmlwdGlvbiB8fAogICAgICAgICAgICAgICAgICAgICAgICAoKG90ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAocnQgPSB0KHYpLm9yZGVyLnVzZXJGaWVsZHMpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJ0LmF0dGFjaG1lbnQpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgIDogb3QubGVuZ3RoKSA+IDAKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IDEsIGNvbHM6ICIxMiIsIGNsYXNzOiAicHktMCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBkZWZhdWx0OiBBKCgpID0+IFtvKE9lKV0pLCBfOiAxIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjb2xzOiAiMTIiLCBjbGFzczogImZsZXgganVzdGlmeS1jZW50ZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlY29uZGFyeS10ZXh0IjogdS4kdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2hhbmdlLnBheU9yZGVyLmNyZWF0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmltYXJ5LXRleHQiOiB0KGspLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaW1hcnktaWQiOiAic3RlcDQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhpZGUtcHJpbSI6ICF0KE8pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogdChDKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Vjb25kYXJ5Q2xpY2s6IGtlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TdWJtaXQ6IG5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWNvbmRhcnktdGV4dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpbWFyeS10ZXh0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoaWRlLXByaW0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvYWRpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICBdKQogICAgICAgICk7CiAgICAgIH07CiAgICB9LAogIH0sCiAganIgPSB7IGNsYXNzOiAiZXhjaGFuZ2UtYm94IG92ZXJmbG93LWhpZGRlbiIgfSwKICBNciA9IHsKICAgIGNsYXNzOgogICAgICAiYm9yZGVyIGxnOnJvdW5kZWQtWzJyZW1dIHJvdW5kZWQtWzFyZW1dIG92ZXJmbG93LWhpZGRlbiBiZy13aGl0ZSBwYi1sZy0xMCBwYi02IiwKICB9LAogIFlyID0gewogICAga2V5OiAwLAogICAgY2xhc3M6CiAgICAgICJoaWRkZW4ganVzdGlmeS1iZXR3ZWVuIGJnLXByaW1hcnktNTAgcHktNCBweC1sZy0xMCBweC02IGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBib3JkZXItb3BhY2l0eS0xMDAiLAogIH0sCiAgR3IgPSB7IGNsYXNzOiAidGV4dC1tZC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIHBiLTIiIH0sCiAgenIgPSB7IGNsYXNzOiAidGV4dC1zbS1yZWd1bGFyIHRleHQtZ3JheS03MDAiIH0sCiAgV3IgPSB7IGNsYXNzOiAibGc6ZmxleCBpdGVtcy1jZW50ZXIiIH0sCiAgSHIgPSB7IGNsYXNzOiAibGc6dy04MCB3LWZ1bGwgbXgtbGctMyBwYS1sZy0wIHB0LTYgcGItNCIgfSwKICBLciA9IHsgY2xhc3M6ICJ0ZXh0LXNtLXNlbWlib2xkIHRyYWNraW5nLW5vcm1hbCIgfSwKICBRciA9IHsga2V5OiAxIH0sCiAgWHIgPSB7IGNsYXNzOiAibWF4LXctWzM1LjVyZW1dIG14LWF1dG8gcHgtbGctMCBweC00IiB9LAogIHhvID0gewogICAgX19uYW1lOiAiaW5kZXgiLAogICAgcHJvcHM6IHsKICAgICAgc2VuZER5bmFtaWNGaWx0ZXJCeUlkOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgZmlsdGVyUmVjZWl2ZUJ5U2x1Z3M6IHsgdHlwZTogQXJyYXksIGRlZmF1bHQ6ICgpID0+IFtdIH0sCiAgICAgIGZpbHRlclNlbmRCeVNsdWdzOiB7IHR5cGU6IEFycmF5LCBkZWZhdWx0OiAoKSA9PiBbXSB9LAogICAgICBub1RyYWNrQW5kRmxvdzogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LAogICAgfSwKICAgIHNldHVwKGEpIHsKICAgICAgY29uc3QgeyAkaXNEZXNrdG9wOiBmIH0gPSB4ZSgpLAogICAgICAgIGwgPSBhLAogICAgICAgIG0gPSBXZSgpLAogICAgICAgIGQgPSB0dCgpLAogICAgICAgIHMgPSB2ZSgpLAogICAgICAgIGMgPSBTKCExKSwKICAgICAgICBfID0gUyghMSksCiAgICAgICAgdiA9IFMoIiIpLAogICAgICAgIHkgPSBTKCIiKSwKICAgICAgICBpID0gUyhudWxsKSwKICAgICAgICBDID0gcSgoKSA9PiBzLmN1cnJlbnREaXJlY3RTdGVwKTsKICAgICAgTGUoKCkgPT4gewogICAgICAgIFAoKTsKICAgICAgfSk7CiAgICAgIGNvbnN0IFAgPSAoKSA9PiB7CiAgICAgICAgICBiKCk7CiAgICAgICAgfSwKICAgICAgICBiID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc3QgVSA9IG0ucXVlcnkudHJhY2tfaWQ7CiAgICAgICAgICBqKCksIFUgPyBhd2FpdCBCKFUpIDogcy51cGRhdGVEaXJlY3Rpb25DdXJyZW50U3RlcChaLkRJUkVDVElPTik7CiAgICAgICAgfSwKICAgICAgICBNID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgeS52YWx1ZSA9IG51bGw7CiAgICAgICAgfSwKICAgICAgICBqID0gKCkgPT4gewogICAgICAgICAgY29uc3QgVSA9IG0ucXVlcnkucmVmOwogICAgICAgICAgVSAmJiBzLnN0b3JlUmVmZXJyYWxDb2RlKFUpOwogICAgICAgIH0sCiAgICAgICAgQiA9IGFzeW5jIChVKSA9PiB7CiAgICAgICAgICB2YXIgaCwgRSwgViwgVCwgTjsKICAgICAgICAgIGlmICghVSkgewogICAgICAgICAgICAoaCA9IGkudmFsdWUpID09IG51bGwgfHwgaC5mb2N1c0lucHV0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIChfLnZhbHVlID0gITApLAogICAgICAgICAgICAgIGF3YWl0IHMudHJhY2tPcmRlcihVKSwKICAgICAgICAgICAgICBhd2FpdCBkLnB1c2goeyBxdWVyeTogeyB0cmFja19pZDogVSB9IH0pOwogICAgICAgICAgfSBjYXRjaCAoTykgewogICAgICAgICAgICBjb25zdCBnID0KICAgICAgICAgICAgICAoKE4gPQogICAgICAgICAgICAgICAgKFQgPQogICAgICAgICAgICAgICAgICAoViA9CiAgICAgICAgICAgICAgICAgICAgKEUgPSBPID09IG51bGwgPyB2b2lkIDAgOiBPLnJlc3BvbnNlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiBFLl9kYXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICA6IFYuZXJyb3JzKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogVC52YWxpZGF0aW9uc1swXSkgPT0gbnVsbAogICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgIDogTi5tZXNzYWdlKSB8fCBudWxsOwogICAgICAgICAgICAkKGcpLCAoeS52YWx1ZSA9IG51bGwpLCBzLnVwZGF0ZURpcmVjdGlvbkN1cnJlbnRTdGVwKFouRElSRUNUSU9OKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIF8udmFsdWUgPSAhMTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICQgPSAoVSkgPT4gewogICAgICAgICAgKHYudmFsdWUgPQogICAgICAgICAgICBVIHx8ICLQn9C+0LbQsNC70YPQudGB0YLQsCwg0L/RgNC+0LLQtdGA0YzRgtC1INC/0YDQsNCy0LjQu9GM0L3QvtGB0YLRjCDQstCy0LXQtNC10L3QvdGL0YUg0LTQsNC90L3Ri9GFIiksCiAgICAgICAgICAgIChjLnZhbHVlID0gITApOwogICAgICAgIH07CiAgICAgIHJldHVybiAoVSwgaCkgPT4gewogICAgICAgIGNvbnN0IEUgPSBmdCwKICAgICAgICAgIFYgPSBUZSwKICAgICAgICAgIFQgPSBzczsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbigpLAogICAgICAgICAgcCgiZGl2IiwganIsIFsKICAgICAgICAgICAgbygKICAgICAgICAgICAgICBGZSwKICAgICAgICAgICAgICB7IGp1c3RpZnk6ICJjZW50ZXIiLCBhbGlnbjogImNlbnRlciIgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiBBKCgpID0+IFsKICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICBFLAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiB0KGMpLAogICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOmVycm9yIjoKICAgICAgICAgICAgICAgICAgICAgICAgaFswXSB8fCAoaFswXSA9IChOKSA9PiAocGUoYykgPyAoYy52YWx1ZSA9IE4pIDogbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UtdGV4dCI6IHQodiksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgWyJlcnJvciIsICJtZXNzYWdlLXRleHQiXQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBvKAogICAgICAgICAgICAgICAgICAgIGxlLAogICAgICAgICAgICAgICAgICAgIHsgY29sczogIjEyIiB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IEEoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBNciwgWwogICAgICAgICAgICAgICAgICAgICAgICAgIGwubm9UcmFja0FuZEZsb3cKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gUigiIiwgITApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAoImRpdiIsIFlyLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByKFUuJHQoImV4Y2hhbmdlLnRyYWNrT3JkZXIiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgenIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoVS4kdCgiZXhjaGFuZ2UudHJhY2tPcmRlclN1YiIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBXciwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgSHIsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9rZXk6ICJ0cmFja09yZGVySW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3QtcGFyYW1zIjogdCh5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTpyZXF1ZXN0UGFyYW1zIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaFsxXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaFsxXSA9IChOKSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlKHkpID8gKHkudmFsdWUgPSBOKSA6IG51bGwpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogInRyYWNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnB1dC1iZyI6ICJiZy13aGl0ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogVS4kdCgiaG9tZS5lbnRlclRyYWNrSWQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInJlcXVlc3QtcGFyYW1zIiwgInBsYWNlaG9sZGVyIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInJvdW5kZWQtNCB0ZXh0LW5vbmUgcHgtNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJwcmltYXJ5LTYwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogdChfKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogdChmKSA/ICJhdXRvIiA6ICIxMDAlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0NCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRlZDogImxnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBoWzJdIHx8IChoWzJdID0gKE4pID0+IEIodCh5KSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogQSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoVS4kdCgiaG9tZS50cmFja09yZGVyIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaFszXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaFszXSA9IGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc2VhcmNoICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJsb2FkaW5nIiwgIndpZHRoIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBsLm5vVHJhY2tBbmRGbG93CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFIoIiIsICEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAobigpLCBwKCJkaXYiLCBRciwgW28oVCldKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB6KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KEMpID09PSB0KFopLkRJUkVDVElPTgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHooCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoenMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0KHMpLnNob3VsZENhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXItcmVjZWl2ZSI6IGwuZmlsdGVyUmVjZWl2ZUJ5U2x1Z3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbHRlci1zZW5kIjogbC5maWx0ZXJTZW5kQnlTbHVncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VuZC1keW5hbWljLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLnNlbmREeW5hbWljRmlsdGVyQnlJZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInB4LWxnLTAgcHgtNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25IYW5kZWxFcnJvcjogJCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXItcmVjZWl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbHRlci1zZW5kIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VuZC1keW5hbWljLWZpbHRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAyNAogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIFhyLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KEMpID09PSB0KFopLldBTExFVF9JTkZPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHoodChYcyksIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHQocykuc2hvdWxkQ2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25IYW5kZWxFcnJvcjogJCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFIoIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAyNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KEMpID09PSB0KFopLlJFVklFV19PUkRFUgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChuKCksIHoodChjbiksIHsga2V5OiAwLCBvbkhhbmRlbEVycm9yOiAkIH0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFIoIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoQykgPT09IHQoWikuUEFZX09SREVSCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6KHQocXIpLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkhhbmRlbEVycm9yOiAkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhclRyYWNrT3JkZXI6IE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUigiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICApLAogICAgICAgICAgXSkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9OwpleHBvcnQgeyB4byBhcyBfIH07Cg=="}},"time_used":157,"timings":{"blocked":102,"dns":0,"connect":0,"send":0,"wait":33,"receive":22,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Inter-Bold.zdiomvYZ.ttf","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.387Z","timestamp":1785139670387,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Inter-Bold.zdiomvYZ.ttf HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"4d4a8-654aa2b831c9a\"\r\nAccept-Ranges: bytes\r\nContent-Length: 316584\r\nKeep-Alive: timeout=5, max=90\r\nConnection: Keep-Alive\r\nContent-Type: font/ttf\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":316584,"size_decoded":316872,"mime_type":"font/ttf","magic":"TrueType Font data, 16 tables, 1st \"GDEF\", 50 names, Microsoft, language 0x409","md5":"ba74cc325d5f67d0efbeda51616352db","sha1":"47ff07c75746682133b81e7ac0537ce50a4c9916","sha256":"412c068eab6f36e6807d630ff89127165e8e4d3e8653434cdfb56b60cdcc3a32","sha512":"0e1b968a789e9a4d3149e9bf539f12800b9e808b6d1829841e74a122369110b369b36dd10231fd9fe68523475305e398aad0927fe14247cbe75256cdd17953ad","ssdeep":"6144:x2RouaT1miEEE1ipnQzkghLs7J28i9Bpu:siomE1onQzkgRs7i9Bpu","tlshash":"5b645b13f323c31dca122d3a8b93c7a07367bc512b13e10ab7643a55c99b5b85e9b5c9","first_seen":"2023-10-31T18:47:11Z","last_seen":"2026-08-04T04:02:14.930038Z","times_seen":2772,"resource_available":false,"data":"AAEAAAAQAQAABAAAR0RFRjEzMboAAAI8AAAEGEdQT1Nvl10VAAF+FAABLhZHU1VCSydsUwAAXuAAAFV4T1MvMiPDbkIAAAHcAAAAYFNUQVTv7dk7AAABmAAAAERjbWFw9ZJbgwABGPgAAGUaZ2FzcAAAABAAAAEUAAAACGdseWb4DjntAAKsLAACKHtoZWFkLJlhhQAAAWAAAAA2aGhlYR3KGVoAAAE8AAAAJGhtdHg38CLXAAAPRAAAJ8psb2NhCYqXVAAANxAAACfQbWF4cAoMAQYAAAEcAAAAIG5hbWVGbWnaAAAGVAAACO5wb3N0p6g1cgAAtFgAAGSecHJlcGgGjIUAAAEMAAAAB7gB/4WwBI0AAAEAAf//AA8AAQAACfMAlAAMAHAABwABAAAAAAAAAAAAAAAAAAUAAQABAAAKqP1YAAAdgPa19I8cagABAAAAAAAAAAAAAAAAAAAJ8gABAAAAAwTd8eGyjl8PPPUAGwsAAAAAANzyuxsAAAAA3VVQ1va1/Hwcagw/AAEABgACAAEAAAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQ8AAHNsbnQBEAABABQABAADAAEAAgEXAAAAAP/2AAAAAQAAAAABHQK8AAAABAcuArwABQAAByYGmgAAANMHJgaaAAAD2gDAA5oAAAIABQMAAAACAATgAAL/EgCh/wAAAAEAAAAAUlNNUwCgACD//wqo/VgAAAqoAqgAAAGfAAAAAAYACAAAAAAgAAwAAQAAABIAAAAAAAAAAAAAAAAAAgCrAAIAOwABAD0ArQABAK8BFQABARcBiAABAYoBlwABAZkBoAABAaIB1QABAdcB8wABAfUB9gABAfgCQQABAkMCSAABAkoCVAABAlYCYQABAmMCgwABAoUCmQABApsCmwABAp4CvAABAsACwgABAsQCxQABAsoCywABAs0C1wABAtoDQgABA0UDSQABA0wDcQABA3QDdQABA3kDhgABA4gDtAABA7YDtwABA7kDzgABA9ED1wABA9oD2gABA9wD3AABA94D3gABA+ID9gABA/gD+gABA/4D/gABBAAEAwABBAYEBwABBAkECQABBA0EEQABBBQEHQABBCAEIQABBCMEIwABBCcEQAABBEIEQgABBEQERQABBEcESAABBEoEUQABBFMEagABBGwEfQABBIEEhAABBIgEmQABBJ0EtAABBLgEugABBLwEwQABBMMEwwABBMUE0QABBNQE2QABBNwE3gABBOEE4QABBOME4wABBOYE5wABBOoE7wABBP8FAgABBQQFBAABBQkFCQABBQsFDQABBRAFEQABBSIFIgABBeUF5QABBhAGEAABBiEGIQABBikGKQABBiwGLAABBjsGOwABBkoGSgABBlIGZgABBmgGaAABBmsGawABBm4GbgABBncGeAADBnkGeQABBnoGfAADBoIGgwADBqIGpgABBwgHIQABByQHJAABB0MHXAABB18HXwABB38HgwABB4cHhwABB4kHiQABB4sHjwABB5IHkgABB5QHlAABB5gHmQABB5sHmwABB6kHqQABB6sHrAABB64HsAABB7MHswABB7kHvAABB78HvwABB8MHzAABB9EH0QADB9QH1AABB9UH1QACB98H3wADB+cH5wADB+kH6QABB+0H7wABB/YH9wADB/0H/QABCAQIBAADCAsICwABCA0IDQABCBQIFAABCBYIFgABCBcIFwADCBkIGgABCCAIIQABCCMIIwABCCkIKgABCC0ILwABCDMIMwABCDgIOAABCEIIRAABCEYIRwABCEsISwABCE8ITwADCFsIXAADCF4IXgABCF8IYAADCGYIZgABCGoIawABCHIIcgABCHgIeAADCHkIeQABCHoIegADCH8IfwABCIIIggADCJEIoAABCKQIpgABCKoIqwABCLUItgABCLsIuwABCL8IvwABCMAIwAADCMIIwgABCMUIxQADCM8I0AABCN8I3wABCOEI4QABCPkJHgADCTEJMwABCTQJNAADCTcJPQABCT8JeAADCXsJewABCYEJhwABCZMJkwABCZoJmgABCbkJvAADCb4JwQABCcwJzQADCdIJ1gADCdkJ3QADCeAJ4QABCegJ6AABCe4J7wABCfEJ8gABAAAAMgJeAAMAAQQJAAAAkAYAAAMAAQQJAAEACgX2AAMAAQQJAAIACAXuAAMAAQQJAAMAKgXEAAMAAQQJAAQAFAWwAAMAAQQJAAUANgV6AAMAAQQJAAYAFAVmAAMAAQQJAAcAVAUSAAMAAQQJAAgACAUKAAMAAQQJAAkAIATqAAMAAQQJAAsAIATKAAMAAQQJAAwAIATKAAMAAQQJAA0BIAOqAAMAAQQJAA4ANAN2AAMAAQQJABIACgX2AAMAAQQJAQAAFgNgAAMAAQQJAQEAHANEAAMAAQQJAQIAOgMKAAMAAQQJAQMARgLEAAMAAQQJAQQAGgKqAAMAAQQJAQUAEgKYAAMAAQQJAQYAEAKIAAMAAQQJAQcAEgJ2AAMAAQQJAQgALAJKAAMAAQQJAQkAJAImAAMAAQQJAQoAMgH0AAMAAQQJAQsALgHGAAMAAQQJAQwAHAGqAAMAAQQJAQ0AKAGCAAMAAQQJAQ4AHgFkAAMAAQQJAQ8ADAFYAAMAAQQJARAACgFOAAMAAQQJAREACAFGAAMAAQQJARIAFgEwAAMAAQQJARMAFAEcAAMAAQQJARQAIgD6AAMAAQQJARUACgDwAAMAAQQJARYAGADYAAMAAQQJARcADgDKAAMAAQQJARgADAC+AAMAAQQJARkADACyAAMAAQQJARoAGgCYAAMAAQQJARsAEACIAAMAAQQJARwAHgBqAAMAAQQJAR0ACAXuAAMAAQQJAR4AFgBUAAMAAQQJAR8AEgBCAAMAAQQJASAAIAAiAAMAAQQJASEACgAYAAMAAQQJASIAGAAAAEIAbABhAGMAawAgAEkAdABhAGwAaQBjAEIAbABhAGMAawBFAHgAdAByAGEAQgBvAGwAZAAgAEkAdABhAGwAaQBjAEUAeAB0AHIAYQBCAG8AbABkAEIAbwBsAGQAIABJAHQAYQBsAGkAYwBTAGUAbQBpAEIAbwBsAGQAIABJAHQAYQBsAGkAYwBTAGUAbQBpAEIAbwBsAGQATQBlAGQAaQB1AG0AIABJAHQAYQBsAGkAYwBNAGUAZABpAHUAbQBJAHQAYQBsAGkAYwBSAGUAZwB1AGwAYQByAEwAaQBnAGgAdAAgAEkAdABhAGwAaQBjAEwAaQBnAGgAdABFAHgAdAByAGEATABpAGcAaAB0ACAASQB0AGEAbABpAGMARQB4AHQAcgBhAEwAaQBnAGgAdABUAGgAaQBuACAASQB0AGEAbABpAGMAVABoAGkAbgBTAGwAYQBuAHQAVwBlAGkAZwBoAHQAUwBpAG4AZwBsAGUALQBzAHQAbwByAGUAeQAgAGEAQwBhAHAAdABpAHQAYQBsACAARwAgAHcAaQB0AGgAIABzAHAAdQByAEYAbABhAHQALQB0AG8AcAAgAHQAaAByAGUAZQBVAHAAcABlAHIALQBjAGEAcwBlACAAaQAgAHcAaQB0AGgAIABzAGUAcgBpAGYAQQBsAHQAZQByAG4AYQB0AGUAIABHAGUAcgBtAGEAbgAgAGQAbwB1AGIAbABlACAAcwByACAAdwBpAHQAaAAgAGMAdQByAHYAZQBkACAAdABhAGkAbABMAG8AdwBlAHIALQBjAGEAcwBlACAATAAgAHcAaQB0AGgAIAB0AGEAaQBsAE8AcABlAG4AIABuAGkAbgBlAE8AcABlAG4AIABzAGkAeABPAHAAZQBuACAAZgBvAHUAcgBBAGwAdABlAHIAbgBhAHQAZQAgAG8AbgBlAEQAaQBzAGEAbQBiAGkAZwB1AGEAdABpAG8AbgAgAHcAaQB0AGgAbwB1AHQAIABzAGwAYQBzAGgAZQBkACAAegBlAHIAbwByACAAYwB1AHIAdgBlAHMAIABpAG4AdABvACAAcgBvAHUAbgBkACAAbgBlAGkAZwBoAGIAbwByAHMARABpAHMAYQBtAGIAaQBnAHUAYQB0AGkAbwBuAE8AcABlAG4AIABkAGkAZwBpAHQAcwBoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAVABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAFMASQBMACAATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMQAuADEALgAgAFQAaABpAHMAIABsAGkAYwBlAG4AcwBlACAAaQBzACAAYQB2AGEAaQBsAGEAYgBsAGUAIAB3AGkAdABoACAAYQAgAEYAQQBRACAAYQB0ADoAIABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAaAB0AHQAcABzADoALwAvAHIAcwBtAHMALgBtAGUALwBSAGEAcwBtAHUAcwAgAEEAbgBkAGUAcgBzAHMAbwBuAHIAcwBtAHMASQBuAHQAZQByACAAVQBJACAAYQBuAGQAIABJAG4AdABlAHIAIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIAByAHMAbQBzAC4ASQBuAHQAZQByAC0AQgBvAGwAZABWAGUAcgBzAGkAbwBuACAAMwAuADAAMQA5ADsAZwBpAHQALQAwAGEANQAxADAANgBlADAAYgBJAG4AdABlAHIAIABCAG8AbABkADMALgAwADEAOQA7AFIAUwBNAFMAOwBJAG4AdABlAHIALQBCAG8AbABkAEIAbwBsAGQASQBuAHQAZQByAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADIAMAAgAFQAaABlACAASQBuAHQAZQByACAAUAByAG8AagBlAGMAdAAgAEEAdQB0AGgAbwByAHMAIAAoAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcgBzAG0AcwAvAGkAbgB0AGUAcgApAAALjAEjAAAAAAg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDr+2wg6/ygIOv8WCDr+7gg6/84IOv+oCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6AEMIOgBDCDoAQwg6/tsIOv8oCDr/Fgg6/u4IOv/OCDr/qAg6AEMIOgBDC1UAQwtVAEMLVQBDC1UAQwdFALIHRQCyB0UAsgdFALIH9gA+CYgAYwdFALIHRQCyCEYAjgk3AI4IRgCOCEYAjghGAI4IRgCOCEYAjghGAI4IRgCOCEYAhQhGAI4IAACyCkwAYwgAALIIAACyCAAAsggAALIIAACyCAAAsggA/5YOSgCyDkoAsga9ALIGvQCyBr0Asga9ALIGvQCyBr0Asga9ALIGvQCyBr0Asga9ALIGvQCvBr0Asga9ALIGvQCyBr0Asga9ALIGvQCyBr0Asga9ALIGvQCyBr0Asga9ALIGvf+WBr0Asga9ALIGvQCyBr0Asga9AKIGvQCyCKIAhghWAE4IWgCBCnQAfgoiAHkKPgCDCmQAgQjIAH4IqACUBr0Asga9ALIGvQCyBr0AsgZvALIGrv/GBm8AsgZvAHIIXgCOCF4AjgktAI4IXgCOCF4AjgheAI4IXgCOCF4AjgheAI4IXgCOCHAAjghyAI4JLQCOCHAAjghwAI4IcACOCHAAjghwAI4IcACOCHAAjgg1ALIINQCyCDUAsgg1ALIINQCyCDUAsgg1ALIINQCyCOoAZAg1ALIJZQCyCSQAsgsSALIMWgCyCDUAsgo3AK4KEwCfCe4AqQwJAKYLtgChC9IAqwv5AKkLEQCiCzcAogpdAKYKPQC8CDUAsgnTAF8J7gCpDAkApgu2AKEL0gCrC/kAqQsRAKILNwCiCDUAsgMWALIDFv+JAxb/nwMW/5YDFv+0Axb/xwMWALIDFv9YBPYAbgMW/6UDFv+eAxYAQgMWAKYDFv9YAxb+1AMW/5oDFgCyAxYAowNQAKoDFgCyBEEABgMW/4kEvQCfBJgAqQayAKYGYAChBnwAqwaiAKkFugCiBeEAogMW/54DFv+lBQYApgTmALwDFgCyAxb/iQVHAGQFRwBkBUcAZAVHAGQFRwBkBUcAZAVHAGQFRwBkBUcAZAVHAGQFRwBkBUcAZAVHAGQFRwBkBUf/7AVHAGQFRwBkBUcAZAcJAGQG2gBkCPcAZAiqAGMIvABkCOUAZAgEAGQIKgBkBUcAZAVHAGQHSwBkBysAegVHAGQFRwBkBkUAQQZFAEEGRQBBBkUAQQZFAEEHlgCyB5YAsgeWALIHlgCyB5YAsgeWALIJVgAuCCUAsggFALIHlgCyBj4AsgY+ALIGPgCyBj4AsgY+ALIGPv+gBj4AsgY+ALIGcQApBj7/lgk9ALIKEACyChAAsgoQALIKEACyCskAsgoQALIKEACyChAAsggWALIIFgCyCBYAsggWALIIFgCyCBYAsggWALIIFgCyCBYAsggWALIIRv+4CBYAsggWALIIFgCyCBYAsggWALIIFgCyCBYAsgiGAOoIFgCyCsoAsgiaAI4ImgCOCJoAjgiaAI4I8gCOCJoAjgiaAI4ImgCOCJoAjgiaAI4ImgCOCJoAjgiaAI4ImgCOCJoAjgiaAI4ImgCOCJoAjgiaAI4ImgCOCJoAjgiaAI4ImgCOCJoAjgiaAI4ImgCOCJoAjgiaAHwImgCOCJoAjgiaAI4I8gCOCPIAjgjyAI4I8gCOCPIAjgiaAI4ImgCOCNn/4gj//+QJXQBwCvX/6wqS/9YKLP/wCkz/7glJ/+sImgCOCJYARAiaAI4ImgCOCJoAjgiaAI4ImgCOCzIAjgcgALIHIACyByAAsgdGALwJYwBjByAAsgjSAI4InACOBzgAsgc4ALIHOACyBzgAsgc4ALIHOACyBzgAsgc4ALIHOACyBzgAsgdJALoIbQCyB28AFgc0AHAHNABwBzQAcAc0AHAHNABwBzQAcAc0AHAHNABwBzQAcAc0AHAHNABwBzQAcAc0AHAH4gCyB1oAZAdaAGQHWgBkB1oAZAdaAGQHWgBkB1oAZAdaAGQHvABkB1oAZAdaAGQHWgBkCAYAsgmSALIIBgCyCAYAsggGALIIBgCyCAYAsggGALIIBgCyCAYAsggGALIIBgCyCAYAsggGALIIBgCyCAYAsggGALIIBgCyCAYAsggGALIIBgCyCAYAsggGALIIBgCyCAYAsggGALIJkgCyCZIAsgmSALIJkgCyCZIAsghd//MIOgBDCDoAQwg6AEMLZQA1C2UANQtlADULZQA1C2UANQtlADULZQA1B9wAUQfcAFEH3ABRB9wAUQfcAFEH3ABRB/gAOgivAEoH+AA6B/gAOgf4ADoH+AA6B/gAOgf4ADoH+AA6B/gAOgf4ADoH+wAZB/gAOgqlACIH+AA6CgwAaQvEAFcMZgAdC6UAFgf4ADoH+AA6CkIAYgor/7EH+AA6B1YAmgdWAJoHVgCaB1YAmgdWAJoHVgCaB1YAmgdWAJoHVgCaB1YAmgdWAJcGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAGIGYv90BmIAYgZiAGIGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAGIGYgBiBmIAYgZiAKEGYgBiBmIAYgZiAGIKDQBiCg0AYgoNAGIKDQBiBv0AcQb9AHEG/QBxBv0AcQb9AHEG/QBxBv0AcQb9AHEG/QBxBv0AcQb9AHEG/QBxBv3/tAb9AHEG/QBxBv0AcQb9AHEG/QBxBv0AcQb9AHEG/QBxBv0AcQb9AHEG/QBxBv0AcQb9AHEG/QBxBv0AcQb9AHEG/QBxBv0AcQb9ALIG/f+SBv0Asgb1AKoG/QCyBv0Asgb9ALIGdgBsBnoAbAcTAGwGfwBxBnYAbAZ2AGwGdgBsBnYAbAZ2AGwGdgBsBnYAbAZ2AGwG/QBxBv0AcQb1AHEHNwBxBv0AcQfmAHYIGQBxBv0AcQb9AHEG/QBxBv0AcQb9AHEMSgBxDEoAcQxKAHENzgBxCvcAcQb9AHEGkwBsBpMAbAadAGwGkwBsBpMAbAaTAGwGkwBsBpMAbAaTAGwGkwBsBpMAbAaTAGwGkwBsBpMAbAaTAGwGkwBsBpMAbAaTAGwGkwBsBpMAbAaTAGwGkwBsBpMAbAaT/3oGkwBsBpMAbAaTAGwGkwBsBpMAbAaTAGwGkwBsBpMAbARMARcEPgAwBDEAPgRMARcEPgAwCjoAMAb3AHEHJQB2BvcAcQb3AHEG9wBxBvcAcQb3AHEG9wBxBvcAcQb3AHEG3gCqBt4Aqgbe/4UG4v+FBtcAqgbXAKoKzwCqBt4Apge9AEYH4wBGBt7/hQbe/0cG3v9HBt4AlQbeAKoG3v94Bt4AqgbeAKoG3gCqAv4AmgL+AKoC/v99Av7/fQMt/40C/v+tAv7/rQL+/4oC/v+7Av4AqgL+/0wC/v+ZAv7/kgL+ADMDFgAgAv7/TAL+/sgC/v+OAv4AqgL+AJoC/gCcAv7/uAL+/4oC/v+KAv7/igL+AJoC/v99Bf0AmgL+/7gFMQAtBTEALQL+/0oC/v9KAv7/uAL+/7gF7gCqBmYAqgZZAKoGZgCqBmb/TAZmAKoGZgCqBmYAqgZmAAkC/gCqAv7/6wL+/4sDp/9+A5MAqgWKAC8Eo/8XBIcAtAL+AKoC/gBBBCIAqgL+AJkC/v+XAv7/mAL+/0sDUACqA23//gNQ/4wDUP8jBYoALwSHALQDUACqA1AAkQQiAKoDUACqA1D/lwNQ/+gDUP+bAxYAsgoIAKoKCACqCggApgoIAKYKCACqCggAqgoIAKoG1wCqBtcAqgcaAKoG8gCqCNIAqgcK/4oG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoJ1gCqBsAAbAbAAGwGwABsBsAAbAb0AGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsD/jwbAAGwGwABsBsAAbAb0AGwG9ABsBvQAbAb0AGwG9ABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwGwABsBsAAbAbAAGwKvgBxDP4AbAb1AKoGuwC0BvUAqgb1AKoG9QCqBvUAqgb1AHEHiQBxB4oAcQkfAI4EfwCqBH8AqgR//4wEfwAyBQwAMgQkAIkEJgChBH8AqgR/AKoEfwBDBH8AQgR//74EfwCEBH8AqgR/AJoEfwCPBH//mgSkAKoEpACqBKT/jASkAKoEpACqBKQAQwSkAEUEpP/ABKQAhwSkAKoEpACaBKQAkgSk/5oGLgBmBi4AZgYzAGYGLgBmBi4AZgYuAGYGLgBmBi4AZgYuAGYGLgBmBi4AZgYuAGYGLgBmBi4AZgYuAGMHTgCyBzEAsgRGAD4EUAA+BEwAPgXTAD4JvQA+BEYATgRGAD4ERgA+BKwAPgRGAD4ERgA+BEYAPgRGAD4ERgAwBEb/4gbXAKoG1wCqBtcAqgfNALQHVQCqB2IAAAbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoHzQC0B80AtAfNALQHzQC0B80AtAZyADAGcgAwBnIAMAZyADAJWgA3CVoANwlaADcJWgA3CVoANwlaADcJWgA3CVoANwlaADcGUABGBlAARgZQAEYGUABGBscARgZyADAGcgAwBwAAMAaCADUGcgAwBnIAMAZyADAGcgAwBnIAMAZyADAGcgAwBnIAMAZyADAGcgAwBnIAMAZyADAGcgAwBnIAMAZyADAHYgA6B2IAOgdiADoGcgAwBkoAogZKAKIGPwCkBvkApAcGAKIGSgCiBkoAogZKAKIGSgCiBkoAogZKAKIH0QCpB2EArgZlALIIOgBDCJoAjgc0AN4IagDrB2YA1wlWAKgJGQCyCJAAfwkMADQJBv/SCPr/wwmNAEELOv/SCuj/zAqi/+AKyP/eCkL/zQpp/80Jjv/SCPr/wwmNAEELOv/SCuj/zAqi/+AKyP/eCkL/zQpp/80IkAB/CJAAfwfHAF4JcP/2B8cAXggyAF0HKgCyBmwAsgZl/5YIqwBDC/AAUQvwAFEHQQCSB8kAsgfTALIHoQCyCAgAQwiaAI4H/gCyB2IAOgmAAI4IvACyCkIAZAhqAQUIagEFCHIBBQhqAPoKCgBkC4oBBAu4AQQJCgBkCdUAugdzALoMYgCFDFQAsge0AI4LnwCyB4kAiAeMALIMigCzB6sAjgltAKgJagCWB8oAbAc3AIYIYwBDCVwAZAaYAGwGvgCqBysAcQcrAHEHKwBxBysAcQcrAHEHKwBxBysAcQcrAHEHKwBxBysAcQcrAHEHKwBxBysAcQcrAHEHKwBxBysAcQcrAHEHKwBxBysAcQcrAHEHKwBxBysAcQcrAHEHKwBxBysAcQcrAHEGtACqBgQAMAcyAMAGRgBsBkYAbAZuAI4GRgBsBnYAYgZuAHII8QBnBkYAbAZGAGwGRgBsBkYAbAZGAGwGRgBsBkYAbAYUAGsG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoG1wCqBtcAqgbXAKoHNgDeA4gAxgOI/xYDiADGA4j/kgOIAMYDiAC7A4j/uAOI/78DiABHA4gAJAOIAC0DiP/gA4gAQwOI/6cDiP+uA4j/dAOI/4oDiP9+Bq4ARgZSAJoINACzBoIApgaCAKYGggCmBoL/ggZTAIsHYQCwBioAXwZ6AKoGegCgBnoAqgZ6AKoGegCqBnoAqgZ6AKoGegCqBnoAqgZ6AKoGegCqBnoAqgZ6AKoGegCqBnoAqgZ6AKoGegCqBnoAqglGALkIswCOCNYAqgpKAOsKSgDrCkoA6wpKAOsKSgDrCkoA6wpKAOsKSgDrCkoA6wpKAOsKSgDrCkoA6wpKAOsKSgDrCkoA6wpKAOsKSgDrCkoA6wpKAOsKSgDrCkoA6wpKAOsKSgDrCkoA6wdHAIQGwgBxBlcAqgUfAKoFUQCqBR//XAdgADIJqABGCagARgXLAFsGuQCqB74AqgZxAKoG4ACqB3cAqgcBAKoITwBaBqcATge2AE4H+QBOCHIAqgmCAKoGggCqB9AAqgfyAKoGggCqB5IAqgaTAKoGIwBaCLsAbAYUAEYGUABGBzoAqgaTAKoGgACqB8oAqgaAAKoJcgCqCmwAqgZ4AKoHwgBqCQAAqgbzAEcG8wBHCnoAigobAKoGFgBsCSIAWgZcAF4GXgCqCjAAqgZhAF4IOwDVCCMAgAh3AD4HNwCGBs8AMAc0AHAGdgBsBksAKAdjAMEFKQBpByIAmQgyAIIHjABSBlAAZgddAGYN+gCyCT4AsAjoAFYLhABsB2sAwwg6AEMIPgD/CFIALQheAI4IRgCOCEYAjggdAI4HWgBkD2YAZQl8AKgKOADGCGYAswzzALIIZgDCBm//lgdFALIHRQCyB5IAjQViAI8G7gCSBu4AkgdBAJIHdQCHBxcArQb+AGMHQwCGBosAawdFAIgHQwCNB5IAjQU3AJIHNwCGB3UAhwbzAKEG8wCFB4AAhAeAAbMHgADbB4AAsgd7AIcHgADaB4AApgeAAOgHgAClB4AAqAeAAIQHgAG6B4AAqQeAAI8HgADgB4AA0gdqAHEDkgDYByMA2AOSANgJwgDYBjAAawxgAGsJwgBrBjAAggYwAGsGMACCBIABCASAAE0EgAEqBIABKgSAAEEEgABBBIAAVwSAAEELVgCqBIABCASAAE0EgAEqBIAAQQSAAFcEgABBC1YAjwclAB0IagC8BEoAIwQcAUQDywEnBEoAIwUoAMEFKADBBYAAAAeAAAALAAAACwAAAAUaANUFGgDVBRoBAAUaAUsGtgDIBrYA4gUaAPoFKADBBYAAAAeAAAALAAAABRoA1QUaANUFGgEABRoBSwa2AMgGtgDiBRoA+gKqAJsCggBQApQAVQJMAIwEUQCMBKMAmwShAFAEoQBLAqoATgMSAKQFYgCkB7IApAoCAKQDEgCkBWIApAeyAKQCwgCSBOYAkgNVAJ0DRgCzCMoAvAYIALwDRgCzA0YAswNGALMDVQCdA0kAmgNGALwDRgC8A0IAoQNGALMDRgCzAz8ApARQAKQEUACOBuIApAbsAI4HegD9B3oA/Qd6AP0HegD9B3oBCgd6AQoHegD5B3oBAQd6AOQHegEBB3oA/Qd6ANYHegDRB3oA/Qd6AP0HegD9B3oA/Qd6AQoHegEKB3oA+Qd6AQEHegDkB3oBAQd6AP0HegDWB3oA0QZhAOUFPv/+BoQAhgZSAG0FXQBdBjYA5AY2AOQHTQCGChAA5woQAOcHTQCGBxAAcAb6AHAIOgBwCK0AgAcOAIAHPQCABQ4AnAVcAOcFVQDAAgQAXgSUAGoGtQCKBpMAsgaGAJgK0QBxB2YA4AhAANoIewEyBAf/zgdqAL4HlgCHBqMAZgRGADwErgBwBE4AQwSuAEcEYQBDAucAHASuAEcEmgBqAgQAXgID/84EUwBqAgIAaga5AGoElABqBIIAQwSqAGwEqgBHAyoAagQoAD4C4wAiBI4AagRaABwGPwAeBEEAKgRaABwENwBmBRYAWwOIAGYEqgBiBN4AWwUIAFUExQBuBOMAVARmAEYE2gBVBOMAWgMOAK4DDgArAw4AzgMOACEE7gCfBO4AnwTsAKoERgA8BK4AcAROAEMErgBHBGEAQwLnABwErgBHBJoAagIEAF4CA//OBFMAagICAGoGuQBqBJQAagSCAEMEqgBsBKoARwMqAGoEKAA+AuMAIgSOAGoEWgAcBj8AHgRBACoEWgAcBDcAZgUWAFsDiABmBKoAYgTeAFsFCABVBMUAbgTjAFQEZgBGBNoAVQTjAFoDDgCuAw4AKwMOAM4DDgAhBO4AnwTuAJ8E7ACqBJMAUAMvAFQELgBXBGIAUgSIAEsETgBjBGoASwP2AD4EXwBOBGoATwMC/j0EkwBQAy8AVAQuAFcEYgBSBIgASwROAGMEagBLA/YAPgRfAE4EagBPBG8AjQRvAI0EcgCZAsQAnALEACgEkwBQAy8AVAQuAFcEYgBSBIgASwROAGMEagBLA/YAPgRfAE4EagBPBG8AjQRvAI0EcgCZAsQAnALEACgEkwBQAy8AVAQuAFcEYgBSBIgASwROAGMEagBLA/YAPgRfAE4EagBPChMAVAqTAFQJrABUCp4AUgsAAGMGJgBJCg0APgpCAFQLJwBjCzQAUgl0AOwMBgDsDqgA7AtuADwL3QBDC9IAQwtmADwK+gA8BXgCFgUYAE0FeAGNBCEBKgXiAO4F4gDuBioA4QWAALUFTgCcBjYBNAVOALkFTgDCAzUAtAQ6AMYEOgDpBioA4QZaAK8EHgE6Az0AeAAAAEIAAP1yAAD6RgAA+rgAAPpOAAD6qwAf+mYAGPqLABj6pwAk+54ADvpaAAD6fwAA+pYAJvuyAB/7dAAO/WYAKfsnACT7lAAA+l8AGPqLAAD8EwAr+6UAJPnBAB/7bwAO+esAGPptAo0AAAKNAAABswAAA0MAAAZIAAAMdgAABYAAAAsAAAADrAAAAsAAAAHUAAAHgAAAA0YAAAGzAAAA2gAAAAAAAAweALINIQCcC34AnAeWALIIOgBDCJoAjgdtAOUKgAEWDsABFh2AARYKgAEWDsABFgqAAWAOwAFgHYABYAqAAWAOwAFgCoACQgqAAhgKgAIYCoACQg7AARYTQAEWDsABFhNAARYKgAGYCoABmgqAAZoMwgEWDMIBDgqAARYOwAEWHYABFgqAARYOwAEWCoABYA7AAWAdgAFgCoABYA7AAWAOwAEWE0ABFg7AARYTQAEWCbABDgmwAcILhgCdC4YAngqDAJsKgwEnC4YAnQuGAJ0KgwCbCoMBJwsYAEAKEADnChAA5woQAQgKEAEIChABCAoQAQgKEAEIC60AlgutAJYLrQCWC60AlgvAAPQLwAD0C0AA0AtAANALQADQC4ABAAuAAQAMJgDaDCYA2gwmANoKnQEiCMABBgjAAQYIwACMC0ABAAtAAQAKgAFACoABQAqAAUANYADuDWABAAq8ALIJgAC4CyYBFgsmARYLJgEYCyYBFgsmARgJ6AEYC5MBAAuTAQAG/wDaBv8A2g9IACAPSABkAAD8aQAA/K0PSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkBzUAsglqAJYIagEFCGoBBQ9WALIIAP+WB2oA8gdhAKkLGgCyCAgAQwdhAJ4IRgCOB2YA0QgA/5YHjABkB4wAZAeMAGYGZf+WB2MA1QhEAOYJWgCyBSgA7ghjAEMILQBnB14AoQZLAI0MgwCyBmAAugVOAIEOWgCy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AAApJwAAKT8AAClXAAApbwAAKYcAACmfAAAptwAAKc8AACnnAAAqSwAAKrAAACrlAAAq/QAAKxUAACstAAArRQAAK2UAACt1AAArhQAAK50AACwWAAAszwAALOcAAC1wAAAuAwAALhsAAC4zAAAuSwAALmMAAC57AAAukwAALqsAAC9lAAAvfQAAL5UAAC+tAAAvxQAAL90AAC/1AAAwDQAAMCUAADA9AAAwVQAAMG0AADCFAAAwnQAAMLUAADDNAAAw5QAAMP0AADEdAAAxNQAAMU0AADFlAAAxfQAAMZUAADGtAAAxvQAAMdcAADHxAAAyCwAAMiUAADI/AAAyWQAAMnMAADKNAAAzFQAAMy0AADM9AAAzTQAAM10AADNtAAAzhQAAM/IAADRDAAA0WwAANHMAADTbAAA1VAAANWQAADV8AAA2FAAANnkAADaRAAA2qQAANsEAADbZAAA28QAANwkAADchAAA3QQAAN1kAADfcAAA4VAAAOMsAADlzAAA5iwAAOaMAADm7AAA50wAAOesAADoDAAA6GwAAOjMAADpLAAA6awAAOnsAADsjAAA7sgAAO9kAADvxAAA8CQAAPCEAADw5AAA8UQAAPGkAADyBAAA8wAAAPQsAAD1HAAA9VwAAPaUAAD4SAAA+KgAAPkIAAD5aAAA+cgAAPooAAD6iAAA+ugAAPtIAAD7qAAA/AgAAPxoAAD8yAAA/SgAAP2IAAD96AAA/kgAAP6oAAD/CAAA/2gAAP/IAAEAKAABAIgAAQDoAAEBSAABAagAAQIIAAECaAABAsgAAQMoAAEEnAABBVgAAQW4AAEGGAABB0QAAQekAAEIBAABCGQAAQjEAAEJJAABCYQAAQqkAAELBAABC2QAAQvEAAEMJAABDGQAAQ0sAAEOUAABDrAAAQ8QAAEQ1AABETQAARGUAAER9AABElQAARK0AAETFAABFBQAARRUAAEUvAABFPwAARVkAAEVzAABFjQAARaUAAEW9AABF1QAARe0AAEYHAABGHwAARk4AAEZmAABGfgAARpYAAEauAABGxgAARt4AAEcpAABHQQAAR1EAAEesAABITAAASGQAAEh8AABIlAAASLQAAEjMAABI5AAASPwAAEkUAABJLAAASUQAAElkAABJfAAASZQAAEmqAABJwgAASqEAAEq5AABK0QAASukAAEsB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AACiQwAAoq8AAKMRAACjJwAAoz8AAKOSAACjqAAAo8AAAKPYAACkYAAApLwAAKTeAAClDAAApZQAAKXNAACl9QAApkMAAKbPAACnNQAAp8AAAKfaAACn8gAAqAoAAKgkAACo5QAAqP8AAKkZAACpMwAAqU0AAKlnAACpgQAAqaEAAKnDAACp2wAAqf0AAKofAACqQQAAqmMAAKqFAACqnQAAqysAAKueAACruAAAq9AAAKxKAACsogAArMcAAKznAACtRAAArZ0AAK21AACuVwAArpIAAK7fAACvTQAAr5YAALAeAACwUwAAsJwAALEjAACxYQAAsa8AALIKAACyIgAAsowAALLlAACzUAAAs4QAALPOAAC0LQAAtJIAALTnAAC1cgAAteAAALZqAAC2jgAAtvIAALcKAAC3IgAAt60AALhuAAC5BAAAuYoAALn+AAC6QAAAurMAALtZAAC75gAAvHMAALyLAAC8owAAvLsAALzTAAC86wAAvQMAAL0bAAC9MwAAvUsAAL1jAAC9gwAAvaMAAL3DAAC94wAAvgMAAL4jAAC+QwAAvmMAAL57AAC+kwAAvrMAAL7LAAC+6wAAvwMAAL8jAAC/0gAAwAIAAMCxAADBVAAAwWwAAMIPAADCHwAAwrwAAMNiAADENwAAxE8AAMRnAADEfwAAxJcAAMSvAADExwAAxN8AAMVfAADFrgAAxcYAAMXeAADF9gAAxg4AAMYmAADGPgAAxlYAAMZuAADGhgAAxp4AAMa8AADG2gAAxvgAAMcWAADHNAAAx1IAAMdwAADHjgAAx6wAAMfCAADH4AAAx/gAAMgWAADInwAAyNsAAMjzAADJCQAAySEAAMk5AADJUQAAyWkAAMmBAADJmQAAybEAAMnJAADJ4QAAyfkAAMoRAADKKQAAykEAAMpZAADKcQAAyu0AAMuYAADL8gAAzHEAAMyJAADMoQAAzLkAAM03AADNxwAAzhMAAM52AADOjAAAzqIAAM66AADO0gAAzuoAAM8CAADPGgAAzzIAAM9KAADPYgAAz3oAAM+SAADPqgAAz8IAAM/aAADP8gAA0AoAANCZAADRKAAA0aAAANJIAADSYAAA0ngAANKQAADSqAAA0sAAANLYAADS8AAA0wgAANMgAADTOAAA01gAANN4AADTmAAA07gAANPYAADT+AAA1BgAANQ4AADUWAAA1HAAANSQAADUqAAA1MgAANU5AADV2AAA1koAANZsAADWngAA1r4AANcWAADXcQAA14kAANgWAADYSAAA2GgAANiiAADZEQAA2SkAANlyAADZvwAA2ggAANogAADaOAAA2oAAANqYAADa0QAA2ukAANsyAADbmAAA27AAANvVAADb/AAA3K4AAN0qAADdQgAA3XUAAN2sAADd/gAA3hYAAN53AADeqgAA3vQAAN9BAADfngAA3/sAAOBYAADgtQAA4TkAAOGfAADiIQAA4q4AAOMOAADjbwAA49cAAORTAADk9AAA5UIAAOXcAADmTwAA5p0AAOdUAADnzwAA6C0AAOivAADpJgAA6ZMAAOn4AADqiQAA6wsAAOtFAADsbgAA7OIAAO09AADtpgAA7jEAAO55AADvMQAA74MAAPAdAADwwwAA8VUAAPIPAADyVgAA848AAPQgAAD0hQAA9OUAAPT9AAD1lAAA9awAAPY7AAD28QAA92oAAPeVAAD3/wAA+BcAAPi5AAD4/gAA+XwAAPoLAAD6sQAA+tkAAPucAAD8RQAA/NAAAP0IAAD9fAAA/bwAAP48AAD+vAAA/swAAP7eAAD+7gAA/v4AAP8OAAD/HgAA/y4AAP8+AAD/TgAA/14AAP9uAAD/gAAA/5AAAP+gAAD/sAAA/8AAAQCIAAEAzAABAOQAAQEoAAEBQAABAdgAAQHwAAECCAABAqAAAQNCAAED5AABBC0AAQR2AAEEngABBNYAAQT+AAEFNQABBcMAAQZSAAEHigABB5wAAQeuAAEHwAABB9IAAQfkAAEH9gABCAgAAQheAAEJKQABCUkAAQllAAEJkQABCbEAAQnNAAEJ3QABCfkAAQoVAAEKMQABCkEAAQp6AAEK0gABCu4AAQsJAAELUgABC5wAAQu3AAEL0wABC+UAAQv3AAEMCQABDBsAAQwtAAEMPwABDFEAAQxjAAEMdQABDIcAAQyzAAEM4AABDPAAAQ0MAAENJAABDTwAAQ2IAAENmgABDawAAQ3JAAEN4QABDgEAAQ4pAAEORgABDl4AAQ5+AAEOmwABDrMAAQ7pAAEPGAABDzgAAQ9QAAEPogABD/QAARAEAAEQXQABEG0AARB9AAEQjQABEJ0AARCvAAEQwQABENEAAREGAAEROgABEVIAARFqAAERnAABEdEAARIRAAESUAABEnwAARK5AAES5AABEwAAARMyAAETkgABE8wAARR1AAEU0gABFQQAARU5AAEVSwABFV0AARWJAAEVmwABFccAARXjAAEWFQABFnUAARaHAAEWmQABFqsAARbUAAEW7gABFxoAARdWAAEXkgABF+QAARf2AAEYwAABGbcAARquAAEbYQABG78AARxtAAEczwABHT8AAR3CAAEeSQABHq4AAR8xAAEfjwABH8oAASARAAEgVgABIJ0AASGeAAEiowABI0QAASORAAEjuQABJBoAASRhAAEk8gABJUUAASXZAAEmSQABJqgAAScaAAEniAABJ88AAShfAAEopwABKOIAASk6AAEpgwABKZ8AASoNAAEqVAABKrgAASsoAAErnQABK94AASxbAAEsowABLOoAAS0XAAEtXgABLZ4AAS3oAAEuGQABLnYAAS6fAAEu+gABL34AAS+/AAEwLgABMLsAATDjAAExjgABMhkAATJbAAEyngABMsEAATLkAAEzEAABMyoAATNRAAEzYwABM3UAATPUAAEz5gABM/gAATQKAAE0HAABNC4AATRAAAE0UgABNGQAATR2AAE0iAABNJoAATT+AAE1EAABNSIAATU0AAE1sQABNcMAATYJAAE2GwABNi0AATY/AAE2UQABNmMAATZ1AAE2hwABNpkAATarAAE2vQABNs8AATbhAAE28wABNwUAATcXAAE3KQABNzsAATdNAAE3XwABN3EAATeDAAE3qQABOAAAATgmAAE4eQABOPwAATk7AAE5pwABOioAATpQAAE68QABO3gAATuWAAE7qAABO7oAATvMAAE73gABO/AAATwCAAE8FAABPCYAATw4AAE8SgABPFwAATxuAAE8gAABPJIAATykAAE8tgABPN4AATzwAAE9dAABPYYAAT3zAAE+BQABPi0AAT4/AAE+UQABPnoAAT6UAAE+uwABPvsAAT88AAE/TgABP2AAAT9yAAE/hAABP5YAAT+oAAE/ugABP8wAAT/eAAE/8AABQBAAAUAwAAFAUAABQHAAAUCQAAFAqAABQMgAAUDoAAFBCAABQSgAAUHxAAFDDQABRH4AAUU/AAFFXwABRX8AAUWfAAFFvwABRd4AAUYQAAFGLwABRk0AAUaZAAFG5QABRxIAAUdhAAFHsQABR8sAAUgCAAFIEgABSD8AAUiZ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AoICegJyAmoCYgJaAlICSgJCAjoCMgIqAiICGgIUAg4CCAICBsAAAgVfBsAAAgVTBsAAAgVhBsAAAgVVBsAAAwVeBV4GwAADBV4FUQbAAAMFXgVfBsAAAwVeBVMGwAADBV4FYQbAAAMFXgVVBsAAAwVRBV4GwAADBVEFUQbAAAMFUQVfBsAAAwVRBVMGwAADBVEFYQbAAAMFUQVVBsAAAwVfBV4GwAADBV8FUQbAAAMFXwVfBsAAAwVfBVMGwAADBV8FYQbAAAMFXwVVBsAAAwVTBV4GwAADBVMFUQbAAAMFUwVfBsAAAwVTBVMGwAADBVMFYQbAAAMFUwVVBsAAAwVhBV4GwAADBWEFUQbAAAMFYQVfBsAAAwVhBVMGwAADBWEFYQbAAAMFYQVVBsAAAwVVBV4GwAADBVUFUQbAAAMFVQVfBsAAAwVVBVMGwAADBVUFYQbAAAMFVQVVBsEABAVeBV4FXgbBAAQFXgVeBVEGwQAEBV4FXgVfBsEABAVeBV4FUwbBAAQFXgVeBWEGwQAEBV4FXgVVBsEABAVeBVEFXgbBAAQFXgVRBVEGwQAEBV4FUQVfBsEABAVeBVEFUwbBAAQFXgVRBWEGwQAEBV4FUQVVBsEABAVeBV8FXgbBAAQFXgVfBVEGwQAEBV4FXwVfBsEABAVeBV8FUwbBAAQFXgVfBWEGwQAEBV4FXwVVBsEABAVeBVMFXgbBAAQFXgVTBVEGwQAEBV4FUwVfBsEABAVeBVMFUwbBAAQFXgVTBWEGwQAEBV4FUwVVBsEABAVeBWEFXgbBAAQFXgVhBVEGwQAEBV4FYQVfBsEABAVeBWEFUwbBAAQFXgVhBWEGwQAEBV4FYQVVBsEABAVeBVUFXgbBAAQFXgVVBVEGwQAEBV4FVQVfBsEABAVeBVUFUwbBAAQFXgVVBWEGwQAEBV4FVQVVBsEABAVRBV4FXgbBAAQFUQVeBVEGwQAEBVEFXgVfBsEABAVRBV4FUwbBAAQFUQVeBWEGwQAEBVEFXgVVBsEABAVRBVEFXgbBAAQFUQVRBVEGwQAEBVEFUQVfBsEABAVRBVEFUwbBAAQFUQVRBWEGwQAEBVEFUQVVBsEABAVRBV8FXgbBAAQFUQVfBVEGwQAEBVEFXwVfBsEABAVRBV8FUwbBAAQFUQVfBWEGwQAEBVEFXwVVBsEABAVRBVMFXgbBAAQFUQVTBVEGwQAEBVEFUwVfBsEABAVRBVMFUwbBAAQFUQVTBWEGwQAEBVEFUwVVBsEABAVRBWEFXgbBAAQFUQVhBVEGwQAEBVEFYQVfBsEABAVRBWEFUwbBAAQFUQVhBWEGwQAEBVEFYQVVBsEABAVRBVUFXgbBAAQFUQVVBVEGwQAEBVEFVQVfBsEABAVRBVUFUwbBAAQFUQVVBWEGwQAEBVEFVQVVBsEABAVfBV4FXgbBAAQFXwVeBVEGwQAEBV8FXgVfBsEABAVfBV4FUwbBAAQFXwVeBWEGwQAEBV8FXgVVBsEABAVfBVEFXgbBAAQFXwVRBVEGwQAEBV8FUQVfBsEABAVfBVEFUwbBAAQFXwVRBWEGwQAEBV8FUQVVBsEABAVfBV8FXgbBAAQFXwVfBVEGwQAEBV8FXwVfBsEABAVfBV8FUwbBAAQFXwVfBWEGwQAEBV8FXwVVBsEABAVfBVMFXgbBAAQFXwVTBVEGwQAEBV8FUwVfBsEABAVfBVMFUwbBAAQFXwVTBWEGwQAEBV8FUwVVBsEABAVfBWEFXgbBAAQFXwVhBVEGwQAEBV8FYQVfBsEABAVfBWEFUwbBAAQFXwVhBWEGwQAEBV8FYQVVBsEABAVfBVUFXgbBAAQFXwVVBVEGwQAEBV8FVQVfBsEABAVfBVUFUwbBAAQFXwVVBWEGwQAEBV8FVQVVBsEABAVTBV4FXgbBAAQFUwVeBVEGwQAEBVMFXgVfBsEABAVTBV4FUwbBAAQFUwVeBWEGwQAEBVMFXgVVBsEABAVTBVEFXgbBAAQFUwVRBVEGwQAEBVMFUQVfBsEABAVTBVEFUwbBAAQFUwVRBWEGwQAEBVMFUQVVBsEABAVTBV8FXgbBAAQFUwVfBVEGwQAEBVMFXwVfBsEABAVTBV8FUwbBAAQFUwVfBWEGwQAEBVMFXwVVBsEABAVTBVMFXgbBAAQFUwVTBVEGwQAEBVMFUwVfBsEABAVTBVMFUwbBAAQFUwVTBWEGwQAEBVMFUwVVBsEABAVTBWEFXgbBAAQFUwVhBVEGwQAEBVMFYQVfBsEABAVTBWEFUwbBAAQFUwVhBWEGwQAEBVMFYQVVBsEABAVTBVUFXgbBAAQFUwVVBVEGwQAEBVMFVQVfBsEABAVTBVUFUwbBAAQFUwVVBWEGwQAEBVMFVQVVBsEABAVhBV4FXgbBAAQFYQVeBVEGwQAEBWEFXgVfBsEABAVhBV4FUwbBAAQFYQVeBWEGwQAEBWEFXgVVBsEABAVhBVEFXgbBAAQFYQVRBVEGwQAEBWEFUQVfBsEABAVhBVEFUwbBAAQFYQVRBWEGwQAEBWEFUQVVBsEABAVhBV8FXgbBAAQFYQVfBVEGwQAEBWEFXwVfBsEABAVhBV8FUwbBAAQFYQVfBWEGwQAEBWEFXwVVBsEABAVhBVMFXgbBAAQFYQVTBVEGwQAEBWEFUwVfBsEABAVhBVMFUwbBAAQFYQVTBWEGwQAEBWEFUwVVBsEABAVhBWEFXgbBAAQFYQVhBVEGwQAEBWEFYQVfBsEABAVhBWEFUwbBAAQFYQVhBWEGwQAEBWEFYQVVBsEABAVhBVUFXgbBAAQFYQVVBVEGwQAEBWEFVQVfBsEABAVhBVUFUwbBAAQFYQVVBWEGwQAEBWEFVQVVBsEABAVVBV4FXgbBAAQFVQVeBVEGwQAEBVUFXgVfBsEABAVVBV4FUwbBAAQFVQVeBWEGwQAEBVUFXgVVBsEABAVVBVEFXgbBAAQFVQVRBVEGwQAEBVUFUQVfBsEABAVVBVEFUwbBAAQFVQVRBWEGwQAEBVUFUQVVBsEABAVVBV8FXgbBAAQFVQVfBVEGwQAEBVUFXwVfBsEABAVVBV8FUwbBAAQFVQVfBWEGwQAEBVUFXwVVBsEABAVVBVMFXgbBAAQFVQVTBVEGwQAEBVUFUwVfBsEABAVVBVMFUwbBAAQFVQVTBWEGwQAEBVUFUwVVBsEABAVVBWEFXgbBAAQFVQVhBVEGwQAEBVUFYQVfBsEABAVVBWEFUwbBAAQFVQVhBWEGwQAEBVUFYQVVBsEABAVVBVUFXgbBAAQFVQVVBVEGwQAEBVUFVQVfBsEABAVVBVUFUwbBAAQFVQVVBWEGwQAEBVUFVQVVACYBpgGcAZIBiAF+AXQBagFgAVYBTAFCATgBLgEkARoBEAEGAPwA8gDoAN4A1ADKAMAAtgCsAKIAmgCSAIoAggB6AHIAagBiAFoAVABOBqkAAgVTBqkAAgVVBqkAAwVRBVEGqQADBVEFUwapAAMFUQVVBqkAAwVTBVEGqQADBVMFUwapAAMFUwVVBqkAAwVVBVEGqQADBVUFUwapAAMFVQVVBqoABAVRBVEFUQaqAAQFUQVRBVMGqgAEBVEFUQVV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A34AAgaEA38AAgaLA4IAAgZ9A30AAgZ3A4EAAgaJA3sAAgaIA3wAAgaCAAkARAA+ADgAMgAsACYAIAAaABQDawACBoQDbAACBosDagACBncDZwACBoEDaAACBogDbgACB+gDaQACBoIDbQACB74DZgACBngACAA8ADYAMAAqACQAHgAYABIDVQACCGIDUgACBoQDUwACBosDUAACBnsDTgACBncDTwACBoIDUQACBn8DTQACBngAAgAMAAYDPwACBoQDPgACBngABQAkAB4AGAASAAwDKQACBoMDKAACBoADJwACBnoDKgACBosDJgACBngAAQAEAysAAgZ4ABoAzADGAMAAugC0AK4AqACiAJwAlgCQAIoAhAB+AHgAcgBsAGYAYABaAFQATgBIAEIAPAA2AxgAAgjBAxwAAgi+AwkAAgaDAxsAAgi8AxMAAgaHAx0AAghfAw8AAgZ8Ax4AAghbAyAAAgaAAwwAAgZ6AxkAAgaEAxoAAggRAx8AAgaLAwgAAgZ9AxcAAggOAxUAAgZ7AyQAAgfzAw4AAgaBAyMAAgfyAyIAAgfxAyEAAgfwAxIAAgaCAxAAAgZ+AxYAAgZ/AxEAAgZ5Aw0AAgZ4AAkARAA+ADgAMgAsACYAIAAaABQC+AACBoMDBAACCGIDAQACBnoDAgACBoQDAwACBosC/wACBncDBQACBokDAAACBoIC/gACBngAAwAUAA4ACAL1AAIGhAL2AAIGiwL0AAIGeAAHADQALgAoACIAHAAWABAC4AACCGIC2gACBoQC3gACBosC3AACBncC4QACBokC3QACBoIC2wACBngABQAkAB4AGAASAAwC0QACCGIC0AACBosCzQACBncCzgACBoICzwACBngAAgAMAAYCxgACBoECxwACBoIADABcAFYAUABKAEQAPgA4ADIALAAmACAAGgKrAAIGgwKyAAIGfAK5AAIGgAKvAAIGegKpAAIGfQKqAAIICAK3AAIGewKxAAIGgQK2AAIGggKzAAIGfgK4AAIGfwKwAAIGeAADABQADgAIAqwAAgaQArUAAgaHAroAAgaLAAcANAAuACgAIgAcABYAEAKlAAIIYgKhAAIGhAKiAAIGiwKjAAIGfQKfAAIGgQKgAAIGggKkAAIGigAHADQALgAoACIAHAAWABACkwACBnwCjwACBoQCkAACB/kCjQACBoECkQACBoICjgACBn4CkgACBngAAQAEAogAAgaEABcAtACuAKgAogCcAJYAkACKAIQAfgB4AHIAbABmAGAAWgBUAE4ASABCADwANgAwAnUAAgaQAnkAAgaDAm0AAgaHAnIAAghfAmoAAgZ8AnMAAghbAngAAgaAAmcAAgZ6AmwAAgaEAncAAgaLAmUAAgZ9Am8AAgZ7An0AAgfzAnQAAgaJAmkAAgaBAnwAAgfyAnsAAgfxAnoAAgfwAnEAAgaIAm4AAgaCAmsAAgZ+AnAAAgZ/AmgAAgZ4AAYALAAmACAAGgAUAA4CWwACCGICWQACBoQCWgACBosCXAACBncCXQACBokCWAACBoIABQAkAB4AGAASAAwCTQACBoQCTAACBoECSgACBogCTgACBoICSwACBngAAwAUAA4ACAJFAAIIYgJDAAIGhAJEAAIGiwACAAwABgIdAAIGfAIeAAIGeAABAAQCFQACBoUAGwDUAM4AyADCALwAtgCwAKoApACeAJgAkgCMAIYAgAB6AHQAbgBoAGIAXABWAFAASgBEAD4AOAIXAAIGgwIWAAIGjgITAAIGhQIUAAIIigIRAAIGhwIQAAIGfAIOAAIGgAINAAIGegIKAAIGhAIMAAIIEQILAAIGiwIIAAIGfQIJAAIIDgIHAAIGewIGAAIH8wIBAAIGgQIFAAIH8gIEAAIH8QICAAIH8AIAAAIGggH/AAIH4QH6AAIGfgIPAAIGfwH+AAIH3gH9AAIH3QH7AAIH3AH5AAIGeAAGACwAJgAgABoAFAAOAfMAAghiAe8AAgaEAfIAAgaLAfEAAgaBAfAAAgaCAe4AAgZ4AAoATABGAEAAOgA0AC4AKAAiABwAFgHfAAIGgwHsAAIGhwHaAAIGfAHeAAIGgAHcAAIGegHbAAIGhAHdAAIGiwHZAAIGfQHYAAIGgQHXAAIGeAACAAwABgHQAAIGhAHRAAIGfQAGACwAJgAgABoAFAAOAcoAAgZ6Ac0AAgaEAc4AAgaLAcwAAgZ9AckAAgaBAcsAAgZ4AAIADAAGAcYAAgaDAccAAgaLAAUAJAAeABgAEgAMAcIAAgaDAcEAAgaAAcAAAgZ6AcMAAgaLAb8AAgZ4ABgAxgC+ALYArgCmAJ4AmACSAIwAhgCAAHoAdABuAGgAYgBcAFYAUABKAEQAPgA4ADIBuQACBpABqwACBoMBrgACBoUBsAACBocBrAACBnwBvgACBoABpwACBnoBuAACBo0BvQACBosBqgACBn0BtgACBnsBugACBokBqQACBoEBsQACBoIBrQACBn4BtwACBn8BrwACBnkBqAACBngBuwADBoMGeAG8AAMGfAZ9AbIAAwZ9BnwBtQADBn0GegG0AAMGfQaCAbMAAwZ9BngABwA0AC4AKAAiABwAFgAQAZ8AAghiAZ0AAgaEAZ4AAgaLAZwAAgZ3AaAAAgaJAZoAAgaIAZsAAgaCAAkARgA+ADgAMgAsACYAIAAaABQBkQACBoQBkgACBosBkAACBncBjQACBoEBjgACBogBjwACBoIBjAACBngBlAADBoIGhAGTAAMGeAaEAAgAPAA2ADAAKgAkAB4AGAASAYcAAghiAYQAAgaEAYUAAgaLAYIAAgZ7AYAAAgZ3AYEAAgaCAYMAAgZ/AX8AAgZ4AAIADAAGAXgAAgaEAXcAAgZ4AAUAJAAeABgAEgAMAWIAAgaDAWEAAgaAAWAAAgZ6AWMAAgaLAV8AAgZ4AAEABAFkAAIGeAAaAOAA2ADQAMgAwAC4ALAAqACgAJgAkACKAIQAfgB4AHIAbABmAGAAWgBUAE4ASABCADwANgFCAAIGgwFMAAIGhwFIAAIGfAFZAAIGgAFFAAIGegFSAAIGhAFYAAIGiwFBAAIGfQFOAAIGewFHAAIGgQFLAAIGggFJAAIGfgFPAAIGfwFKAAIGeQFGAAIGeAFRAAMGgwZ8AVUAAwaDBn0BVAADBoMGeAFWAAMGfAZ6AVcAAwZ8BngBUwADBoQGfAFQAAMGfQZ8AV0AAwaBBoMBXAADBoEGgAFbAAMGgQZ6AVoAAwaBBngACQBEAD4AOAAyACwAJgAgABoAFAEsAAIGgwEzAAIIYgEwAAIGegExAAIGhAEyAAIGiwEuAAIGdwE0AAIGiQEvAAIGggEtAAIGeAADABQADgAIASUAAgaEASYAAgaLASQAAgZ4AAYALAAmACAAGgAUAA4BHgACCGIHmQACBoQBHAACBosBGgACBncBHwACBokBGQACBngABQAkAB4AGAASAAwBEwACCGIBEgACBosBDwACBncBEAACBoIBEQACBngAAQAEAQoAAgaBABAAfAB2AHAAagBkAF4AWABSAEwARgBAADoANAAuACgAIgDJAAIGkADNAAIGgwDQAAIGhwDOAAIGfADVAAIGgADKAAIGegDRAAIGhADWAAIGiwDGAAIGfQDTAAIGewDMAAIGgQDSAAIGggDPAAIGfgDUAAIGfwDLAAIGeADHAAMGfQZ4AAYALAAmACAAGgAUAA4ApQACBoQApgACBosApwACBn0AowACBoEApAACBoIAqAACBooABwA0AC4AKAAiABwAFgAQAJYAAgZ8AJIAAgaEAJMAAgZ3AJAAAgaBAJQAAgaCAJEAAgZ+AJUAAgZ4AAEABACLAAIGhAAXAL4AtgCuAKYAngCWAJAAigCEAH4AeAByAGwAZgBgAFoAVABOAEgAQgA8ADYAMABvAAIGkABzAAIGgwBnAAIGhwBkAAIGfAByAAIGgABgAAIGegBmAAIGhABxAAIGiwBjAAIGfQBpAAIGewBuAAIGiQBiAAIGgQBrAAIGiABoAAIGggBlAAIGfgBqAAIGfwBhAAIGeABsAAMGfAZ6AG0AAwZ8BngAdwADBoEGgwB2AAMGgQaAAHUAAwaBBnoAdAADBoEGeAAGACwAJgAgABoAFAAOAFkAAghiAFcAAgaEAFgAAgaLAFoAAgZ3AFsAAgaJAFYAAgaCAAUAJAAeABgAEgAMAE4AAgaEAE0AAgaBAEsAAgaIAE8AAgaCAEwAAgZ4AAMAFAAOAAgARAACCGIAQgACBoQAQwACBosAAgAMAAYAPgACBnwAPwACBngAAQAEAAoAAgaFABsA5ADcANQAzADEALwAtACsAKQAngCYAJIAjACGAIAAegB0AG4AaABiAFwAVgBQAEoARAA+ADgABAACBoMAFAACBo4ACAACBoUACQACCIoADQACBocACwACBnwAFgACBoAABQACBnoAEwACBoQAFQACBosAAwACBn0AEQACBnsABwACBoEADgACBoIAHwACB+EADAACBn4AEgACBn8ABgACBngAEAADBoQGfAAPAAMGfQZ8ABoAAwaBBoMAGQADBoEGgAAYAAMGgQZ6ABcAAwaBBngAHgADBn4GgAAdAAMGfgZ6ABwAAwZ+BngAAQA/AAIADQA9AEEASQBUAF8AiQCNAKEAxQEJAQ4BGAEjASsBQAFDAUQBdgF+AYsBmQGlAaYBxQHIAc8B1QHtAfgCEQIcAj8CRgJSAmQChQKKApQCpwKoArwCywLTAvAC9wMHAwoDCwM7A0UDYwN0A4MDhgOkA6gDsQO2A80D+AhXAAEAAAABAAgAAgHYAAwCqAKtCN8CtAK7Ar8CqAK8AsQCvAK8CbMABgAAAAEACAACAbIBrgFiADgADQAAACYAJgAmACYAJgAmACYAJgAmACYAJgAmAAEABAAAAAEAAQABAAEAAAADAAIAMQZ4BoYAAQe+B74AAQfBB8EAAQfNB80AAQfRB9EAAQfcB94AAQfhB+EAAQfkB+QAAQfoB+gAAQfwB/MAAQf2B/cAAQf7B/sAAQf9B/0AAQgECAQAAQgHCAgAAQgKCAoAAQgMCAwAAQgOCA4AAQgRCBEAAQg5CDkAAQhPCE8AAQhUCFUAAQhbCFsAAQhdCF0AAQhfCF8AAQh2CHgAAQh6CHoAAQiCCIIAAQi8CLwAAQi+CL4AAQjBCMEAAQjECMUAAQj5CPkAAQj8CP4AAQkCCQMAAQkICQkAAQkMCQwAAQkSCR4AAQk0CTQAAQk/CUAAAQlCCUgAAQlKCU0AAQlQCXQAAQl3CXcAAQm6CboAAQm8CbwAAQnMCc0AAQnQCdYAAQnnCecAAQACAAwCpwKnAAwCrAKsAAYCrgKuAAoCtQK1AAcCugK6AAgCvgK+AAICwALAAAkCwwLDAAUCxQLFAAQCyALIAAECyQLJAAMFvAW8AAsAAgAAAAEADAKnAqwCrgK1AroCvgLAAsMCxQLIAskFvAADAAAAAQAIAAEAoABNA6YDoAOaA5QDjgOIA4IDfAN0A24DaANgA1oDVANMA0QDPgM4AzADKgMkAx4DGAMSAwwDBAL+AvgC5gLUAsQCsgKgApACfgJuAl4CTAJGAkACOAIyAiwCJgIcAhICCgIAAfYB7gHkAdwB1AHKAkYCQAHCAjICLAImAbYBqgGiAZoBlAGOAYgBggF6AXQBbgFiAVYBSgFEAT4BdAABAE0B+AI/AkYCUgJkAoUCigKUAqcCwwLLAtMC4gLwAvcDBwM7A0EDRQNWA2MDdAODA6QDqAOxA7YDzQUOBQ8FEAUSBRMFFAUWBRcFGAUZBRoFGwUcBR0FHgUfBSAFIQUiBSMFJAUlBSYFJwUoBSkFKgUrBSwFLQUuBS8FOwU8BT0FPwVEBUUFRgVHBVEFXgV/BZIFlAWVBZ8FoQWiAAIF8QYcAAIF8wYeAAUFogXyBh0GNQZEAAUFoQXxBhwGNAZDAAUFnwXzBh4GNgZFAAIFgAWFAAIF8gYdAAMFXgXyBh0AAgXwBhsAAgXvBhoAAgXuBhkAAgXtBhgAAwVHBfAGGwADBUYF7wYaAAUFRQXuBhkGOAZHAAUFRAXtBhgGNwZGAAMFHAXmBhEABAUZBS8F7AYXAAMFGAXrBhYAAwUXBeoGFQAEBRYFLgXpBhQAAwUUBegGEwAEBRMFLQXnBhIABAUSBSwF5gYRAAMFEAXlBhAABAUPBSsF5AYPAAQFDgUqBeMGDgACBewGFwACBekGFAACBecGEgADBSwF5gYRAAIF5AYPAAIF4wYOAAgFHwUpBewGFwYoBjMGQgZRAAcFKAXrBhYGJwYyBkEGUAAHBScF6gYVBiYGMQZABk8ACAUeBSYF6QYUBiUGMAY/Bk4ABwUlBegGEwYkBi8GPgZNAAgFHQUkBecGEgYjBi4GPQZMAAgFHAUjBeYGEQYiBi0GPAZLAAcFIgXlBhAGIQYsBjsGSgAIBRsFIQXkBg8GIAYrBjoGSQAIBRoFIAXjBg4GHwYqBjkGSAACBeIGDQACBeEGDAADBaMF4AYLAAIF3wYKAAIF3gYJAAIF3QYIAAIF3AYHAAIF2wYGAAIF2gYFAAMDVgXaBgUAAgXZBgQAAgXYBgMAAwW7BdcGAgADBb0F1gYBAAIF1QYAAAIF1AX/AAMC4gXUBf8AAgXTBf4AAgXSBf0AAwW8BdEF/AACBdAF+wACBc8F+gACBc4F+QACBc0F+AACBcwF9wACBcsF9gACBcoF9QAEAiAFugXJBfQAAQAAAAEACAACAV4ArAW6AJcAmACZAJoAmwCcAJ0AngCfAKAA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AQABAQECAQMBBAEFAQYBBwEIBbsBkAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgIgAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2oDcwN9BUgFSQVKBikFXwVgBWEFYgVjBWQFZQVmBWcFaAWDBYQFhgV7BXwFfwWCBZsFnAWdBZ4FoAWjBaQFpQWmBacFrgYfBiAGIQYiBiMGJAYlBiYGJwYoBp4GvwbABsEGwgbDBsQGxQbGBscGyAbJBsoGywbMBywHLQcuBy8HMAcxB2cHaAdpB2oHawdsAAIAJwACAAIAAACNAJYAAQDFANYACwDbAOgAHQFAAUAAKwGOAY4ALAH5AhQALQIWAhcASQIZAhkASwLUAtYATALYAtgATwLaAuEAUANGA0cAWANMA1UAWgNoA2gAZANyA3IAZQN7A3sAZgVBBUMAZwVNBU0AagVTBVUAawVXBV0AbgV7BXwAdQWCBYYAdwWOBZEAfAWTBZMAgAWWBZoAgQWtBa0AhgYOBhcAhwaRBpEAkQaoBrEAkga2BrkAnAciByMAoAclByYAogcoBygApAcrBysApQddB14ApgdgB2EAqAdjB2MAqgdmB2YAqwACAAAAAAAA/jAAwAAAAAAAAAAAAAAAAAAAAAAAAAAACfMAAAABAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMgAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkEWgRbBFwEXQReBF8EYARhBGIEYwRkBGUEZgRnBGgEaQRqBGsEbARtBG4EbwRwBHEEcgRzBHQEdQR2BHcEeAR5BHoEewR8BH0EfgR/BIAEgQSCBIMEhASFBIYEhwSIBIkEigSLBIwEjQSOBI8EkASRBJIEkwSUBJUElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSyBLMEtAS1BLYEtwS4BLkEugS7BLwEvQS+BL8EwATBBMIEwwTEBMUExgTHBMgEyQTKBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoE2wTcBN0E3gTfBOAE4QTiBOME5ATlBOYE5wToBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gT3BPgE+QT6BPsE/AT9BP4E/wUABQEFAgUDBQQFBQUGBQcFCAUJBQoFCwUMBQ0FDgUPBRAFEQUSBRMFFAUVBRYFFwUYBRkFGgUbBRwFHQUeBR8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBTEFMgUzBTQFNQU2BTcFOAU5BToFOwU8BT0FPgU/BUAFQQVCBUMFRAVFBUYFRwVIBUkFSgVLBUwFTQVOBU8FUAVRBVIFUwVUBVUFVgVXBVgFWQVaBVsFXAVdBV4FXwVgBWEFYgVjBWQFZQVmBWcFaAVpBWoFawVsBW0FbgVvBXAFcQVyBXMFdAV1BXYFdwV4BXkFegV7BXwFfQV+BX8FgAWBBYIFgwWEBYUFhgWHBYgFiQWKBYsFjAWNBY4FjwWQBZEFkgWTBZQFlQWWBZcFmAWZBZoFmwWcBZ0FngWfBaAFoQWiBaMFpAWlBaYFpwWoBakFqgWrBawFrQWuBa8FsAWxBbIFswW0BbUFtgW3BbgFuQW6BbsFvAW9Bb4FvwXABcEFwgXDBcQFxQXGBccFyAXJBcoFywXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBesF7AXtBe4F7wXwBfEF8gXzBfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gX/BgAGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYRBhIGEwYUBhUGFgYXBhgGGQYaBhsGHAYdBh4GHwYgBiEGIgYjBiQGJQYmBicGKAYpBioGKwYsBi0GLgYvBjAGMQYyBjMGNAY1BjYGNwY4BjkGOgY7BjwGPQY+Bj8GQAZBBkIGQwZEBkUGRgZHBkgGSQZKBksGTAZNBk4GTwZQBlEGUgZTBlQGVQZWBlcGWAZZBloGWwZcBl0GXgZfBmAGYQZiBmMGZAZlBmYGZwZoBmkGagZrBmwGbQZuBm8GcAZxBnIGcwZ0BnUGdgZ3BngGeQZ6BnsGfAZ9Bn4GfwaABoEGggaDBoQGhQaGBocGiAaJBooGiwaMBo0GjgaPBpAGkQaSBpMGlAaVBpYGlwaYBpkGmgabBpwGnQaeBp8GoAahBqIGowakBqUGpganBqgGqQaqBqsGrAatBq4GrwawBrEGsgazBrQGtQa2BrcGuAa5BroGuwa8Br0Gvga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswGzQbOBs8G0AbRBtIG0wbUBtUG1gbXBtgG2QbaBtsG3AbdBt4G3wbgBuEG4gbjBuQG5QbmBucG6AbpBuoG6wbsBu0G7gbvBvAG8QbyBvMG9Ab1BvYG9wb4BvkG+gb7BvwG/Qb+Bv8HAAcBBwIHAwcEBwUHBgcHBwgHCQcKBwsHDAcNBw4HDwcQBxEHEgcTBxQHFQcWBxcHGAcZBxoHGwccBx0HHgcfByAHIQciByMHJAclByYHJwcoBykHKgcrBywHLQcuBy8HMAcxBzIHMwc0BzUHNgc3BzgHOQc6BzsHPAc9Bz4HPwdAB0EHQgdDB0QHRQdGB0cHSAdJB0oHSwdMB00HTgdPB1AHUQdSB1MHVAdVB1YHVwdYB1kHWgdbB1wHXQdeB18HYAdhB2IHYwdkB2UHZgdnB2gHaQdqB2sHbAdtB24HbwdwB3EHcgdzB3QHdQd2B3cHeAd5B3oHewd8B30Hfgd/B4AHgQeCB4MHhAeFB4YHhweIB4kHigeLB4wHjQeOB48HkAeRB5IHkweUB5UHlgeXB5gHmQeaB5sHnAedB54HnwegB6EHogejB6QHpQemB6cHqAepB6oHqwesB60HrgevB7AHsQeyB7MHtAe1B7YHtwe4B7kHuge7B7wHvQe+B78HwAfBB8IHwwfEB8UHxgfHB8gHyQfKB8sHzAfNB84HzwfQB9EH0gfTB9QH1QfWB9cH2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gfrB+wH7QfuB+8H8AfxB/IH8wf0B/UH9gf3B/gH+Qf6B/sH/Af9B/4H/wgACAEIAggDCAQIBQgGCAcICAgJCAoICwgMCA0IDggPCBAIEQgSCBMIFAgVCBYIFwgYCBkIGggbCBwIHQgeCB8IIAghCCIIIwgkCCUIJggnCCgIKQgqCCsILAgtCC4ILwgwCDEIMggzCDQINQg2CDcIOAg5CDoIOwg8CD0IPgg/CEAIQQhCCEMIRAhFCEYIRwhICEkISghLCEwITQhOCE8IUAhRCFIIUwhUCFUIVghXCFgIWQhaCFsIXAhdCF4IXwhgCGEIYghjCGQIZQhmCGcIaAhpCGoIawhsCG0IbghvCHAIcQhyCHMIdAh1CHYIdwh4CHkIegh7CHwIfQh+CH8IgAiBCIIIgwiECIUIhgiHCIgIiQiKCIsIjAiNCI4IjwiQCJEIkgiTCJQIlQiWCJcImAiZCJoImwicCJ0IngifCKAIoQiiCKMIpAilCKYIpwioCKkIqgirCKwIrQiuCK8IsAixCLIIswi0CLUItgi3CLgIuQi6CLsIvAi9CL4IvwjACMEIwgjDCMQIxQjGCMcIyAjJCMoIywjMCM0IzgjPCNAI0QjSCNMI1AjVCNYI1wjYCNkI2gjbCNwI3QjeCN8I4AjhCOII4wjkCOUI5gjnCOgI6QjqCOsI7AjtCO4I7wjwCPEI8gjzCPQI9Qj2CPcI+Aj5CPoI+wj8CP0I/gj/CQAJAQkCCQMJBAkFCQYJBwkICQkJCgkLCQwJDQkOCQ8JEAkRCRIJEwkUCRUJFgkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJJQkmCScJKAkpCSoJKwksCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgk7CTwJPQk+CT8JQAlBCUIJQwlECUUJRglHCUgJSQlKCUsJTAlNCU4JTwlQCVEJUglTCVQJVQlWCVcJWAlZCVoJWwlcCV0JXglfCWAJYQliCWMJZAllCWYJZwloCWkJaglrCWwJbQluCW8JcAlxCXIJcwl0CXUJdgl3CXgJeQl6CXsJfAl9CX4JfwmACYEJggmDCYQJhQmGCYcJiAmJCYoJiwmMCY0JjgmPCZAJkQmSCZMJlAmVCZYJlwmYCZkJmgmbCZwJnQmeCZ8JoAmhCaIJowmkCaUJpgmnCagJqQmqCasJrAmtCa4JrwmwCbEJsgmzCbQJtQm2CbcJuAm5CboJuwm8Cb0Jvgm/CcAJwQnCCcMJxAnFCcYJxwnICckJygnLCcwJzQnOCc8J0AnRCdIJ0wnUCdUJ1gnXCdgJ2QnaCdsJ3AndCd4J3wngCeEJ4gnjCeQJ5QnmCecJ6AnpCeoJ6wnsCe0J7gnvCfAJ8QnyCfMJ9An1CfYJ9wn4CfkJ+gn7CfwJ/Qn+Cf8KAAoBCgIKAwoECgUKBgoHCggKCQoKCgsKDAoNCg4KDwoQChEKEgoTChQKFQoWChcKGAoZChoKGwocCh0KHgofCiAKIQoiCiMKJAolCiYKJwooCikKKgorCiwKLQouCi8KMAoxCjIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwpACkEKQgpDCkQKRQpGCkcKSApJCkoKSwpMCk0KTgpPClAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KYAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpwCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CoAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KkAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqgCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCrAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KwArBCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrQCtEK0grTCtQK1QrWCtcK2ArZCtoK2wrcCt0K3grfCuAK4QriCuMK5ArlCuYK5wroCukK6grrCuwK7QruCu8K8ArxCvIHdW5pMDA0MQd1bmkwMEM0B3VuaTAwQzMHdW5pMDBDMAd1bmkwMEMxB3VuaTAwQzIHdW5pMDBDNQd1bmkwMUZBB3VuaUVFMDIHdW5pMDEwMAd1bmkwMTAyB3VuaTAxMDQHdW5pMDFDRAd1bmkwMURFB3VuaTAxRTAHdW5pMDIwMAd1bmkwMjAyB3VuaTAyMjYHdW5pMUUwMAd1bmkxRUEwB3VuaTFFQTIHdW5pMUVBNAd1bmkxRUE2B3VuaTFFQTgHdW5pMUVBQQd1bmkxRUFDB3VuaTFFQUUHdW5pMUVCMAd1bmkxRUIyB3VuaTFFQjQHdW5pMUVCNgd1bmkwMzkxB3VuaTAzODYHdW5pMUYwOAd1bmkxRjA5B3VuaTFGMEEHdW5pMUYwQgd1bmkxRjBDB3VuaTFGMEQHdW5pMUYwRQd1bmkxRjBGB3VuaTFGQjgHdW5pMUZCOQd1bmkxRkJBB3VuaTAyM0EHdW5pMUZCQgd1bmkwNDEwB3VuaTA0RDAHdW5pMDREMgd1bmkxRjg4B3VuaTFGODkHdW5pMUY4QQd1bmkxRjhCB3VuaTFGOEMHdW5pMUY4RAd1bmkxRjhFB3VuaTFGOEYHdW5pMUZCQwd1bmkwMzlCB3VuaTAwQzYHdW5pMDFFMgd1bmkwMUZDB3VuaTA0RDQHdW5pMDA0Mgd1bmkxRTAyB3VuaTFFMDQHdW5pMUUwNgd1bmkwMjQzB3VuaTAxODEHdW5pMDQxMgd1bmkwMzkyB3VuaTAwNDMHdW5pMDE4Nwd1bmkwMEM3B3VuaTAxMDYHdW5pMDEwOAd1bmkwMTBBB3VuaTAxMEMHdW5pMUUwOAd1bmkwMjNCB3VuaTAxODYHdW5pMDNGOQd1bmkwMDQ0B3VuaTAxOEEHdW5pMDEwRQd1bmkxRTBBB3VuaTFFMEMHdW5pMUUwRQd1bmkxRTEwB3VuaTFFMTIHdW5pMDE4OQd1bmkwMUYyB3VuaTAxQzUHdW5pMDA0NQd1bmkwMEM4B3VuaTAwQzkHdW5pMDBDQQd1bmkwMENCB3VuaTAxMTIHdW5pMDExNAd1bmkwMTE2B3VuaTAxMTgHdW5pMDExQQd1bmkwMjA0B3VuaTAyMDYHdW5pMDIyOAd1bmkxRTE0B3VuaTFFMTYHdW5pMUUxOAd1bmkxRTFBB3VuaTFFMUMHdW5pMUVCOAd1bmkxRUJBB3VuaTFFQkMHdW5pMUVCRQd1bmkxRUMwB3VuaTFFQzIHdW5pMUVDNAd1bmkxRUM2B3VuaTAyNDYHdW5pMDE4RQd1bmkwMzk1B3VuaTAzODgHdW5pMUYxOAd1bmkxRjE5B3VuaTFGMUEHdW5pMUYxQgd1bmkxRjFDB3VuaTFGMUQHdW5pMUZDOAd1bmkxRkM5B3VuaTA0MTUHdW5pMDQwMAd1bmkwNDAxB3VuaTA0RDYHdW5pMDA0Ngd1bmkwMTkxB3VuaTFFMUUHdW5pMjEzMgd1bmkwMDQ3B3VuaTAxRTQHdW5pMDE5Mwd1bmkwMTFDB3VuaTAxMUUHdW5pMDEyMAd1bmkwMTIyB3VuaTAxRTYHdW5pMDFGNAd1bmkxRTIwB3VuaUUwMDIHdW5pRTAwMwd1bmlFMDA0B3VuaUUwMDUHdW5pRTAwNgd1bmlFMDA3B3VuaUUwMDgHdW5pRTAwOQd1bmlFMDBBB3VuaUUwMEIHdW5pMDA0OAd1bmkxRTI4B3VuaTAxMjQHdW5pMDIxRQd1bmkxRTIyB3VuaTFFMjQHdW5pMUUyNgd1bmkxRTJBB3VuaTAxMjYHdW5pMDRDNwd1bmkwNEEyB3VuaTA0QzkHdW5pMDRBNAd1bmkwMUY2B3VuaTAzOTcHdW5pMDM4OQd1bmkxRjI4B3VuaTFGMjkHdW5pMUYyQQd1bmkxRjJCB3VuaTFGMkMHdW5pMUYyRAd1bmkxRjJFB3VuaTFGMkYHdW5pMUZDQQd1bmkxRkNCB3VuaTA0MUQHdW5pMUY5OAd1bmkxRjk5B3VuaTFGOUEHdW5pMUY5Qgd1bmkxRjlDB3VuaTFGOUQHdW5pMUY5RQd1bmkxRjlGB3VuaTFGQ0MHdW5pMDA0OQd1bmkwMENGB3VuaTFFMkUHdW5pMDE5Nwd1bmkxRTJDB3VuaTAwQ0MHdW5pMDBDRAd1bmkwMENFB3VuaTAxMjgHdW5pMDEyQQd1bmkwMTJDB3VuaTAxMkUHdW5pMDEzMAd1bmkwMUNGB3VuaTAyMDgHdW5pMDIwQQd1bmkxRUM4B3VuaTFFQ0EHdW5pMDE5Ngd1bmkwMzk5B3VuaTAzOEEHdW5pMDNBQQd1bmkxRjM4B3VuaTFGMzkHdW5pMUYzQQd1bmkxRjNCB3VuaTFGM0MHdW5pMUYzRAd1bmkxRjNFB3VuaTFGM0YHdW5pMUZEOAd1bmkxRkQ5B3VuaTFGREEHdW5pMUZEQgd1bmkwNDA2B3VuaTA0MDcHdW5pRTAwQwd1bmlFMDBEB3VuaUUwMEUHdW5pRTAwRgd1bmlFMDEwB3VuaUUwMTEHdW5pRTAxMgd1bmlFMDEzB3VuaUUwMTQHdW5pRTAxNQd1bmlFMDE2B3VuaUUwMTcHdW5pRTAxOAd1bmlFMDE5B3VuaUUwMUEHdW5pRTAxQgd1bmlFMDFDB3VuaUUwMUQHdW5pRTAxRQd1bmlFMDFGB3VuaUUwMjAHdW5pRTAyMQd1bmlFMDIyB3VuaUUwMjMHdW5pRTAyNAd1bmlFMDI1B3VuaUUwMjYHdW5pRTAyNwd1bmlFMDI4B3VuaUUwMjkHdW5pRTAyQQd1bmlFMDJCB3VuaTAwNEEHdW5pMDEzNAd1bmkwMjQ4B3VuaTAzN0YHdW5pMDQwOAd1bmkwMDRCB3VuaTAxMzYHdW5pMDFFOAd1bmkxRTMwB3VuaTFFMzIHdW5pMUUzNAd1bmkwNEEwB3VuaTA0OUEHdW5pMDE5OAd1bmkwMzlBB3VuaTAwNEMHdW5pMDEzOQd1bmkwMTNCB3VuaTAxM0QHdW5pMUUzNgd1bmkxRTM4B3VuaTFFM0EHdW5pMUUzQwd1bmkwMTQxB3VuaTAyM0QHdW5pMDFDOAd1bmkwMDREB3VuaTFFM0UHdW5pMUU0MAd1bmkxRTQyB3VuaTA0Q0QHdW5pMDM5Qwd1bmkwM0ZBB3VuaTA0MUMHdW5pMDA0RQd1bmkwMEQxB3VuaTAxNDMHdW5pMDE0NQd1bmkwMTQ3B3VuaTAxRjgHdW5pMUU0NAd1bmkxRTQ2B3VuaTFFNDgHdW5pMUU0QQd1bmkwMTlEB3VuaTAxNEEHdW5pMDQxOAd1bmkwNDBEB3VuaTA0MTkHdW5pMDRFMgd1bmkwNEU0B3VuaTA0OEEHdW5pMDM3Ngd1bmkwMzlEB3VuaTAxQ0IHdW5pMDA0Rgd1bmkwMEQ2B3VuaTAwRDUHdW5pMDBEOAd1bmkwMUEwB3VuaTAwRDIHdW5pMDBEMwd1bmkwMEQ0B3VuaTAxNEMHdW5pMDE0RQd1bmkwMTUwB3VuaTAxRDEHdW5pMDFFQQd1bmkwMUVDB3VuaTAyMEMHdW5pMDIwRQd1bmkwMjJBB3VuaTAyMkMHdW5pMDIyRQd1bmkwMjMwB3VuaTFFNEMHdW5pMUU0RQd1bmkxRTUwB3VuaTFFNTIHdW5pMUVDQwd1bmkxRUNFB3VuaTFFRDAHdW5pMUVEMgd1bmkxRUQ0B3VuaTFFRDYHdW5pMUVEOAd1bmkxRURBB3VuaTFFREMHdW5pMUVERQd1bmkxRUUwB3VuaTFFRTIHdW5pMDFGRQd1bmkwMzlGB3VuaTAzOEMHdW5pMUY0OAd1bmkxRjQ5B3VuaTFGNEEHdW5pMUY0Qgd1bmkxRjRDB3VuaTFGNEQHdW5pMUZGOAd1bmkwM0Y0B3VuaTFGRjkHdW5pMDQxRQd1bmkwNEU2B3VuaTAxOUYHdW5pMDRFOAd1bmkwNEVBB3VuaTAxNTIHdW5pMDA1MAd1bmkxRTU0B3VuaTFFNTYHdW5pMDQ4RQd1bmkwMUE0B3VuaTAzQTEHdW5pMUZFQwd1bmkwMDUxB3VuaTAwNTIHdW5pMDE1NAd1bmkwMTU2B3VuaTAxNTgHdW5pMDIxMAd1bmkwMjEyB3VuaTFFNTgHdW5pMUU1QQd1bmkxRTVDB3VuaTFFNUUHdW5pMjExRgd1bmkyMTFFB3VuaTAyNEMHdW5pMDA1Mwd1bmkwMTVBB3VuaTAxNUMHdW5pMDE1RQd1bmkwMTYwB3VuaTAyMTgHdW5pMUU2MAd1bmkxRTYyB3VuaTFFNjQHdW5pMUU2Ngd1bmkxRTY4B3VuaTA0MDUHdW5pMDFBNwd1bmkxRTlFB3VuaTAwNTQHdW5pMDE2Mgd1bmkwMTY0B3VuaTAyMUEHdW5pMUU2QQd1bmkxRTZDB3VuaTFFNkUHdW5pMUU3MAd1bmkwMUFDB3VuaTAxQUUHdW5pMDIzRQd1bmkwM0E0B3VuaTAwNTUHdW5pMDFBRgd1bmkwMEQ5B3VuaTAwREEHdW5pMDBEQgd1bmkwMERDB3VuaTAxNjgHdW5pMDE2QQd1bmkwMTZDB3VuaTAxNkUHdW5pMDE3MAd1bmkwMTcyB3VuaTAxRDMHdW5pMDFENQd1bmkwMUQ3B3VuaTAxRDkHdW5pMDFEQgd1bmkwMjE0B3VuaTAyMTYHdW5pMUU3Mgd1bmkxRTc0B3VuaTFFNzYHdW5pMUU3OAd1bmkxRTdBB3VuaTFFRTQHdW5pMUVFNgd1bmkxRUU4B3VuaTFFRUEHdW5pMUVFQwd1bmkxRUVFB3VuaTFFRjAHdW5pMDI0NAd1bmkwMDU2B3VuaTFFN0MHdW5pMUU3RQd1bmkwMDU3B3VuaTAxNzQHdW5pMUU4MAd1bmkxRTgyB3VuaTFFODQHdW5pMUU4Ngd1bmkxRTg4B3VuaTAwNTgHdW5pMUU4QQd1bmkxRThDB3VuaTA0QjIHdW5pMDRGQwd1bmkwM0E3B3VuaTAwNTkHdW5pMDFCMwd1bmkwMEREB3VuaTAxNzYHdW5pMDE3OAd1bmkwMjMyB3VuaTFFOEUHdW5pMUVGMgd1bmkxRUY0B3VuaTFFRjYHdW5pMUVGOAd1bmkwMjRFB3VuaTAzQTUHdW5pMDM4RQd1bmkwM0FCB3VuaTFGNTkHdW5pMUY1Qgd1bmkxRjVEB3VuaTFGNUYHdW5pMUZFOAd1bmkxRkU5B3VuaTFGRUEHdW5pMUZFQgd1bmlFRTAzB3VuaTAwNUEHdW5pMDE3OQd1bmkwMTdCB3VuaTAxN0QHdW5pMUU5MAd1bmkxRTkyB3VuaTFFOTQHdW5pMDIyNAd1bmkwMUI1B3VuaTAzOTYHdW5pMkM3Rgd1bmkwMDYxB3VuaTAwRTEHdW5pMDEwMwd1bmkxRUFGB3VuaTFFQjcHdW5pMUVCMQd1bmkxRUIzB3VuaTFFQjUHdW5pMDFDRQd1bmkwMEUyB3VuaTFFQTUHdW5pMUVBRAd1bmkxRUE3B3VuaTFFQTkHdW5pMUVBQgd1bmkwMjAxB3VuaTAwRTQHdW5pMDFERgd1bmkwMjI3B3VuaTFFQTEHdW5pMDFFMQd1bmkwMEUwB3VuaTFFQTMHdW5pMDIwMwd1bmkwMTAxB3VuaTAxMDUHdW5pMUU5QQd1bmkwMEU1B3VuaTAxRkIHdW5pRUUwNAd1bmkxRTAxB3VuaTAwRTMHdW5pMDI1MAd1bmkwNDMwB3VuaTA0RDEHdW5pMDREMwd1bmkwMEU2B3VuaTAxRTMHdW5pMDFGRAd1bmkwNEQ1B3VuaUUwMkMHdW5pRTAyRAd1bmlFMDJFB3VuaUUwMkYHdW5pRTAzMAd1bmlFMDMxB3VuaUUwMzIHdW5pRTAzMwd1bmlFMDM0B3VuaUUwMzUHdW5pRTAzNgd1bmlFMDM3B3VuaUUwMzgHdW5pRTAzOQd1bmlFMDNBB3VuaUUwM0IHdW5pRTAzQwd1bmlFMDNEB3VuaUUwM0UHdW5pRTAzRgd1bmlFMDQwB3VuaUUwNDEHdW5pRTA0Mgd1bmlFMDQzB3VuaUUwNDQHdW5pRTA0NQd1bmlFMDQ2B3VuaUUwNDcHdW5pRTA0OAd1bmlFMDQ5B3VuaUUwNEEHdW5pMDA2Mgd1bmkwMTgwB3VuaTAxODMHdW5pMDI1Mwd1bmkxRTAzB3VuaTFFMDUHdW5pMUUwNwd1bmkwMDYzB3VuaTAyM0MHdW5pMDE4OAd1bmkwMjU1B3VuaTAwRTcHdW5pMDEwNwd1bmkwMTA5B3VuaTAxMEIHdW5pMDEwRAd1bmkxRTA5B3VuaTAzRjIHdW5pMDQ0MQd1bmkwMDY0B3VuaTAxMTEHdW5pMDI1Ngd1bmkwMjU3B3VuaTAxOEMHdW5pMDIyMQd1bmkwMTBGB3VuaTFFMEIHdW5pMUUwRAd1bmkxRTBGB3VuaTFFMTEHdW5pMUUxMwd1bmkwMUYzB3VuaTAyQTMHdW5pMDFDNgd1bmkwMkE1B3VuaTAyQTQHdW5pMjBBQgd1bmkwMDY1B3VuaTAwRUIHdW5pMDI0Nwd1bmkwMEU4B3VuaTAwRTkHdW5pMDBFQQd1bmkwMTEzB3VuaTAxMTUHdW5pMDExNwd1bmkwMTE5B3VuaTAxMUIHdW5pMDIwNQd1bmkwMjA3B3VuaTAyMjkHdW5pMUUxNQd1bmkxRTE3B3VuaTFFMTkHdW5pMUUxQgd1bmkxRTFEB3VuaTFFQjkHdW5pMUVCQgd1bmkxRUJEB3VuaTFFQkYHdW5pMUVDMQd1bmkxRUMzB3VuaTFFQzUHdW5pMUVDNwd1bmkwNDM1B3VuaTA0NTAHdW5pMDQ1MQd1bmkwNEQ3B3VuaTAxREQMX3BhcnQuZl9iYXNlB3VuaTAwNjYHdW5pMUU5Qwd1bmkxRTlCB3VuaTFFMUYHdW5pMDJBOQd1bmkwMDY3B3VuaTAyNjAHdW5pMDFFNQd1bmkwMTFEB3VuaTAxMUYHdW5pMDEyMQd1bmkwMTIzB3VuaTAxRTcHdW5pMDFGNQd1bmkxRTIxB3VuaTAwNjgHdW5pMUUyOQd1bmkwNDVCB3VuaTA0NTIHdW5pMDI2Ngd1bmkwMjY3B3VuaTAxOTUHdW5pMDI2NQd1bmkwMkFFB3VuaTAyQUYHdW5pMDEyNwd1bmkwMTI1B3VuaTAyMUYHdW5pMUUyMwd1bmkxRTI1B3VuaTFFMjcHdW5pMUUyQgd1bmkxRTk2B3VuaTA0QkIHdW5pMDA2OQd1bmkwMTMxB3VuaTAwRUYHdW5pMUUyRgd1bmkwMTI5B3VuaTFFMkQHdW5pRTA0Qgd1bmkwMjY4B3VuaTAwRUMHdW5pMDBFRAd1bmkwMEVFB3VuaTAxMkIHdW5pMDEyRAd1bmlFMDRDB3VuaTAxMkYHdW5pMDFEMAd1bmkwMjA5B3VuaTAyMEIHdW5pMUVDOQd1bmkxRUNCB3VuaUUwNEQHdW5pMDIzNwd1bmkwMjVGB3VuaTAyNDkHdW5pRTA0RQd1bmkwNDU2B3VuaTA0NTcHdW5pMDEzMwd1bmkwMDZBB3VuaUUwNEYHdW5pMDI5RAd1bmkwMTM1B3VuaTAxRjAHdW5pMDNGMwd1bmkwNDU4B3VuaTAxQzkHdW5pMDA2Qgd1bmkwMTk5B3VuaTAxMzcHdW5pMDFFOQd1bmkxRTMxB3VuaTFFMzMHdW5pMUUzNQd1bmkwMjlFB3VuaTAwNkMHdW5pMDE0Mgd1bmkwMTlBB3VuaTAyNkIHdW5pMDI2RAd1bmkwMjZDB3VuaTAyMzQHdW5pMDE0MAd1bmkwMTNBB3VuaTAxM0MHdW5pMDEzRQd1bmkxRTM3B3VuaTFFMzkHdW5pMUUzQgd1bmkxRTNEB3VuaUUwNTAHdW5pRTA1MQd1bmlFMDUyB3VuaUUwNTMHdW5pRTA1NAd1bmlFMDU1B3VuaUUwNTYHdW5pRTA1Nwd1bmlFMDU4B3VuaUUwNTkHdW5pRTA1QQd1bmlFMDVCB3VuaUUwNUMHdW5pMDRDRgd1bmkwMDZEB3VuaTAyNzEHdW5pMDI2Rgd1bmkwMjcwB3VuaTFFM0YHdW5pMUU0MQd1bmkxRTQzB3VuaTAwNkUHdW5pMDBGMQd1bmkwMjczB3VuaTAxNEIHdW5pMDIzNQd1bmkwMjcyB3VuaTAxOUUHdW5pMDE0NAd1bmkwMTQ2B3VuaTAxNDgHdW5pMDFGOQd1bmkxRTQ1B3VuaTFFNDcHdW5pMUU0OQd1bmkxRTRCB3VuaTAxQ0MHdW5pMDA2Rgd1bmkwMEY2B3VuaTAwRjUHdW5pMDBGOAd1bmkwMUExB3VuaTAwRjIHdW5pMDBGMwd1bmkwMEY0B3VuaTAxNEQHdW5pMDE0Rgd1bmkwMTUxB3VuaTAxRDIHdW5pMDFFQgd1bmkwMUVEB3VuaTAyMEQHdW5pMDIwRgd1bmkwMjJCB3VuaTAyMkQHdW5pMDIyRgd1bmkwMjMxB3VuaTFFNEQHdW5pMUU0Rgd1bmkxRTUxB3VuaTFFNTMHdW5pMUVDRAd1bmkxRUNGB3VuaTFFRDEHdW5pMUVEMwd1bmkxRUQ1B3VuaTFFRDcHdW5pMUVEOQd1bmkxRURCB3VuaTFFREQHdW5pMUVERgd1bmkxRUUxB3VuaTFFRTMHdW5pMDFGRgd1bmkwM0JGB3VuaTAzQ0MHdW5pMUY0MAd1bmkxRjQxB3VuaTFGNDIHdW5pMUY0Mwd1bmkxRjQ0B3VuaTFGNDUHdW5pMUY3OAd1bmkwNDczB3VuaTAyNzUHdW5pMDQzRQd1bmkwNEU3B3VuaTAxNTMHdW5pMDQ3OQd1bmkwMDcwB3VuaTA0OEYHdW5pMDFBNQd1bmkxRTU1B3VuaTFFNTcHdW5pMDQ0MAd1bmkwMDcxB3VuaTAyQTAHdW5pMDI0Qgd1bmkwMjRBB3VuaTAwNzIHdW5pRTA1RAd1bmkwMjREB3VuaTAyNzkHdW5pMDI3Qgd1bmkwMjdGB3VuaTAyN0UHdW5pRTA1RQd1bmkwMTU1B3VuaTAxNTcHdW5pMDE1OQd1bmkwMjExB3VuaTAyMTMHdW5pMUU1OQd1bmkxRTVCB3VuaTFFNUQHdW5pMUU1Rgd1bmlFMDVGB3VuaTAyN0QHdW5pRTA2MAd1bmkwMjdDB3VuaUUwNjEHdW5pRTA2Mgd1bmlFMDYzB3VuaUUwNjQHdW5pRTA2NQd1bmlFMDY2B3VuaUUwNjcHdW5pRTA2OAd1bmlFMDY5B3VuaTAwNzMHdW5pMDI4Mgd1bmkwMjNGB3VuaTAxNUIHdW5pMDE1RAd1bmkwMTVGB3VuaTAxNjEHdW5pMDIxOQd1bmkxRTYxB3VuaTFFNjMHdW5pMUU2NQd1bmkxRTY3B3VuaTFFNjkHdW5pMDQ1NQd1bmkwMUE4B3VuaTAwREYHdW5pRTA2QQd1bmkwMDc0B3VuaTAxQUIHdW5pMDI4OAd1bmkwMjM2B3VuaTAyQTgHdW5pMDI4Nwd1bmkwMTY3B3VuaTAxNjMHdW5pMDE2NQd1bmkwMjFCB3VuaTFFNkIHdW5pMUU2RAd1bmkxRTZGB3VuaTFFNzEHdW5pMUU5Nwd1bmkwMDc1B3VuaTAwRkMHdW5pMDE2OQd1bmkwMUIwB3VuaTAwQjUHdW5pMDI4OQd1bmkwMEY5B3VuaTAwRkEHdW5pMDBGQgd1bmkwMTZCB3VuaTAxNkQHdW5pMDE2Rgd1bmkwMTcxB3VuaTAxNzMHdW5pMDFENAd1bmkwMUQ2B3VuaTAxRDgHdW5pMDFEQQd1bmkwMURDB3VuaTAyMTUHdW5pMDIxNwd1bmkxRTczB3VuaTFFNzUHdW5pMUU3Nwd1bmkxRTc5B3VuaTFFN0IHdW5pMUVFNQd1bmkxRUU3B3VuaTFFRTkHdW5pMUVFQgd1bmkxRUVEB3VuaTFFRUYHdW5pMUVGMQd1bmkwMDc2B3VuaTAyOEMHdW5pMUU3RAd1bmkxRTdGB3VuaTAwNzcHdW5pMUU4NQd1bmkwMjhEB3VuaTAxNzUHdW5pMUU4MQd1bmkxRTgzB3VuaTFFODcHdW5pMUU4OQd1bmkxRTk4B3VuaTAwNzgHdW5pMUU4Qgd1bmkxRThEB3VuaTA0NDUHdW5pMDNDNwd1bmkwMDc5B3VuaTAwRkYHdW5pMDFCNAd1bmkwMjRGB3VuaTAwRkQHdW5pMDE3Nwd1bmkwMjMzB3VuaTFFOEYHdW5pMUU5OQd1bmkxRUYzB3VuaTFFRjUHdW5pMUVGNwd1bmkxRUY5B3VuaTA0NDMHdW5pMDQ1RQd1bmkwNEVGB3VuaTA0RjEHdW5pMDRGMwd1bmkwMjhFB3VuaTA0RUUHdW5pMDRGMAd1bmkwNEYyB3VuaUVFMDUHdW5pMDA3QQd1bmkwMUI2B3VuaTAyMjUHdW5pMDI0MAd1bmkwMjkwB3VuaTAxN0EHdW5pMDE3Qwd1bmkwMTdFB3VuaTFFOTEHdW5pMUU5Mwd1bmkxRTk1B3VuaTAyOTEHdW5pMDBERQd1bmkwMzkzB3VuaTAzOTQHdW5pMDM5OAd1bmkwMzlFB3VuaTAzQTAHdW5pMDNBMwd1bmkwM0E2B3VuaTAzQTgHdW5pMDNBOQd1bmkxRkZCB3VuaTAzOEYHdW5pMUY2OAd1bmkxRjY5B3VuaTFGNkEHdW5pMUY2Qgd1bmkxRjZDB3VuaTFGNkQHdW5pMUY2RQd1bmkxRjZGB3VuaTFGRkEHdW5pMUZBOAd1bmkxRkE5B3VuaTFGQUEHdW5pMUZBQgd1bmkxRkFDB3VuaTFGQUQHdW5pMUZBRQd1bmkxRkFGB3VuaTFGRkMHdW5pMDFCMQd1bmkwM0QyB3VuaTAzRDMHdW5pMDNENAd1bmkwMTk0B3VuaTA0MTEHdW5pMDQ5MAd1bmkwNEZBB3VuaTA0MTQHdW5pMDQxNgd1bmkwNDk2B3VuaTA0MTcHdW5pMDQxQQd1bmkwNDlDB3VuaTA0QzMHdW5pMDQxQgd1bmkwNDcyB3VuaTA0MEYHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDRCNAd1bmkwNDI3B3VuaTA0QjYHdW5pMDRCOAd1bmkwNEJBB3VuaTA0MEIHdW5pMDQyOAd1bmkwNDI5B3VuaTA0MkEHdW5pMDQyQgd1bmkwNDJDB3VuaTA0MDkHdW5pMDQwQQd1bmkwNDJEB3VuaTA0MkUHdW5pMDQyRgd1bmkwNDk0B3VuaTA0QTYHdW5pMDQwNAd1bmkwNEE4B3VuaTA0QkMHdW5pMDREOAd1bmkwNEUwB3VuaTA0NzQHdW5pMDQwMgd1bmkwMEYwB3VuaTAwRkUHdW5pMDNCMQd1bmkwM0FDB3VuaTFGMDAHdW5pMUYwMQd1bmkxRjAyB3VuaTFGMDMHdW5pMUYwNAd1bmkxRjA1B3VuaTFGMDYHdW5pMUYwNwd1bmkxRjcwB3VuaTFGODAHdW5pMUY4MQd1bmkxRjgyB3VuaTFGODMHdW5pMUY4NAd1bmkxRjg1B3VuaTFGODYHdW5pMUY4Nwd1bmkxRkIwB3VuaTFGQjEHdW5pMUZCMgd1bmkxRkIzB3VuaTFGQjQHdW5pMUZCNgd1bmkxRkI3B3VuaTAzQjIHdW5pMDNCMwd1bmkwM0I0B3VuaTAzQjUHdW5pMDNBRAd1bmkwMjlBB3VuaTAyNUIHdW5pMDI1Qwd1bmkwMjVFB3VuaTAyNUQHdW5pMUYxMAd1bmkxRjExB3VuaTFGMTIHdW5pMUYxMwd1bmkxRjE0B3VuaTFGMTUHdW5pMUY3Mgd1bmkwM0I2B3VuaTAzQjcHdW5pMDNBRQd1bmkxRjIwB3VuaTFGMjEHdW5pMUYyMgd1bmkxRjIzB3VuaTFGMjQHdW5pMUYyNQd1bmkxRjI2B3VuaTFGMjcHdW5pMUY3NAd1bmkxRjkwB3VuaTFGOTEHdW5pMUY5Mgd1bmkxRjkzB3VuaTFGOTQHdW5pMUY5NQd1bmkxRjk2B3VuaTFGOTcHdW5pMUZDMgd1bmkxRkMzB3VuaTFGQzQHdW5pMUZDNgd1bmkxRkM3B3VuaTAzQjgHdW5pMDNCOQd1bmkwMzkwB3VuaTAzQUYHdW5pMDNDQQd1bmkxRjMwB3VuaTFGMzEHdW5pMUYzMgd1bmkxRjMzB3VuaTFGMzQHdW5pMUYzNQd1bmkxRjM2B3VuaTFGMzcHdW5pMUY3Ngd1bmkxRkQwB3VuaTFGRDEHdW5pMUZEMgd1bmkxRkQ2B3VuaTFGRDcHdW5pMDNCQgd1bmkwM0JFB3VuaTAzQzAHdW5pMDNDMQd1bmkxRkU0B3VuaTFGRTUHdW5pMDNGQwd1bmkwM0MyB3VuaTAzQzMHdW5pMDNDNAd1bmkwM0M1B3VuaTAzQjAHdW5pMDNDQgd1bmkwM0NEB3VuaTFGNTAHdW5pMUY1MQd1bmkxRjUyB3VuaTFGNTMHdW5pMUY1NAd1bmkxRjU1B3VuaTFGNTYHdW5pMUY1Nwd1bmkxRjdBB3VuaTFGRTAHdW5pMUZFMQd1bmkxRkUyB3VuaTFGRTYHdW5pMUZFNwd1bmkwM0M2B3VuaTAzRDUHdW5pMDNDOAd1bmkwM0M5B3VuaTAzQ0UHdW5pMUY2MAd1bmkxRjYxB3VuaTFGNjIHdW5pMUY2Mwd1bmkxRjY0B3VuaTFGNjUHdW5pMUY2Ngd1bmkxRjY3B3VuaTFGN0MHdW5pMUZBMAd1bmkxRkExB3VuaTFGQTIHdW5pMUZBMwd1bmkxRkE0B3VuaTFGQTUHdW5pMUZBNgd1bmkxRkE3B3VuaTFGRjIHdW5pMUZGMwd1bmkxRkY0B3VuaTFGRjYHdW5pMUZGNwd1bmkwMjYzB3VuaTA0MzEHdW5pMDQzMgd1bmkwNDMzB3VuaTA0OTEHdW5pMDRGQgd1bmkwNDM0B3VuaTA0MzYHdW5pMDQ5Nwd1bmkwNDM3B3VuaTA0MzgHdW5pMDQ4Qgd1bmkwNDNBB3VuaTA0QzQHdW5pMDQ5Qgd1bmkwNDlEB3VuaTA0QTEHdW5pMDQzQgd1bmkwNEM2B3VuaTA1MkYHdW5pMDQzQwd1bmkwNENFB3VuaTA0M0QHdW5pMDRBMwd1bmkwNEE1B3VuaTA0QzgHdW5pMDRDQQd1bmkwNDNGB3VuaTA0NDIHdW5pMDQ0NAd1bmkwNEZEB3VuaTA0QjMHdW5pMDQ0Ngd1bmkwNDVGB3VuaTA0NDcHdW5pMDRCNwd1bmkwNEI5B3VuaTA0NDgHdW5pMDQ0OQd1bmkwNDRDB3VuaTA0NEEHdW5pMDQ0Qgd1bmkwNDhEB3VuaTA0NjMHdW5pMDQ1OQd1bmkwNDVBB3VuaTA0NEQHdW5pMDQ0RQd1bmkwNDRGB3VuaTA0OTUHdW5pMDRBNwd1bmkwNDU0B3VuaTA0QTkHdW5pMDRCNQd1bmkwNEJEB3VuaTA0RTEHdW5pMDQ3NQd1bmkwMDI0B3VuaTAwQTIHdW5pMDBBNQd1bmkwMEEzB3VuaTAxOTIHdW5pMjBCQQd1bmkyMEJEB3VuaTIwQUMHdW5pMjBCOQd1bmkyMEI4B3VuaTIwQTcHdW5pMjBCMQd1bmkyMEFEB3VuaTIwQTkHdW5pMjBBNAd1bmkyMEIzB3VuaTIwQjQHdW5pMjBBNgd1bmkyMEIyB3VuaTIwQTEHdW5pMjBCNQd1bmkyMEEyB3VuaTIwQUUHdW5pMjBBRgd1bmkyMEE1B3VuaTIwQUEHdW5pMjBCQwd1bmkyMEE4B3VuaTIwQkUHdW5pMjBBMwd1bmkwRTNGB3VuaTIwQkYHdW5pMDAzMAd1bmkwMDMxB3VuaTAwMzIHdW5pMDFCQgd1bmkwMDMzB3VuaTAwMzQHdW5pMDAzNQd1bmkwMUJDB3VuaTAwMzYHdW5pMDAzNwd1bmkwMDM4B3VuaTAwMzkHdW5pRTA2Qgd1bmlFMDZDB3VuaUUwNkQHdW5pRTA2RQd1bmlFMDZGB3VuaUUwNzAHdW5pRTA3MQd1bmlFMDcyB3VuaUUwNzMHdW5pRTA3NAd1bmlFMDc1B3VuaUUwNzYHdW5pRTA3Nwd1bmlFMDc4B3VuaUUwNzkHdW5pRTA3QQd1bmlFMDdCB3VuaUUwN0MHdW5pRTA3RAd1bmlFMDdFB3VuaUUwN0YHdW5pRTA4MAd1bmkwMDI2B3VuaTAwMjEHdW5pMjAzQwd1bmkwMEExB3VuaTIwNDkHdW5pMDAzRgd1bmkyMDQ3B3VuaTIwNDgHdW5pMDBCRgd1bmkyMDNEB3VuaTJFMTgHdW5pMDAyOAd1bmkwMDI5B3VuaTAwNUIHdW5pMjA0NQd1bmkwMDVEB3VuaTIwNDYHdW5pMDA3Qgd1bmkwMDdEB3VuaTAwNDAMdW5pMDAyOC5jYXNlDHVuaTAwMjkuY2FzZQx1bmkwMDVCLmNhc2UMdW5pMDA1RC5jYXNlDHVuaTAwN0IuY2FzZQx1bmkwMDdELmNhc2UMdW5pMDA0MC5jYXNlB3VuaTAwMjMHdW5pMDBBNAd1bmkwMDJGB3VuaTAwN0MHdW5pMDBBNgd1bmkwMDVDB3VuaTAwMkQHdW5pMDBBRAd1bmkyMDEzB3VuaTIwMTIHdW5pMjAxNAd1bmkyMDE1B3VuaTIwMjIHdW5pMjVFNgd1bmkyMDQzB3VuaTIwMjMHdW5pMjA0Qwd1bmkyMDREB3VuaTI1QUEMdW5pMDAyRC5jYXNlDHVuaTIwMTMuY2FzZQx1bmkyMDEyLmNhc2UMdW5pMjAxNC5jYXNlDHVuaTIwMjIuY2FzZQx1bmkyNUU2LmNhc2UMdW5pMjA0My5jYXNlDHVuaTIwMjMuY2FzZQx1bmkyMDRDLmNhc2UMdW5pMjA0RC5jYXNlDHVuaTI1QUEuY2FzZQd1bmkyMDE4B3VuaTIwMTkHdW5pMDJCQwd1bmkwMDI3B3VuaTAwMjIHdW5pMjAxQwd1bmkyMDFEB3VuaTIwMUUHdW5pMjAxQQd1bmkyMDMyB3VuaTIwMzMHdW5pMjAzNAd1bmkyMDU3B3VuaTIwMzUHdW5pMjAzNgd1bmkyMDM3B3VuaTAyQjkHdW5pMDJCQQd1bmkwMDJDB3VuaTAwMkUHdW5pMjAyNgd1bmkyMDI1B3VuaTAwM0EMdW5pMDAzQS5jYXNlB3VuaUVFMDEHdW5pMDAzQgd1bmlFMDkzB3VuaUUwOTQHdW5pRTA5NQd1bmlFMDk2B3VuaTAwQjcHdW5pMDM4Nwd1bmkwMzdFB3VuaTIwMzkHdW5pMjAzQQd1bmkwMEFCB3VuaTAwQkIHdW5pMDAzQwd1bmkwMDNFB3VuaTIyNjQHdW5pMjI2NQd1bmkwMDNEB3VuaTIyNjAHdW5pMDAyQgd1bmkyMjEyB3VuaTAwRDcHdW5pMDBGNwd1bmkwMEIxB3VuaTIyNDgHdW5pMDA3RQx1bmkwMDNDLmNhc2UMdW5pMDAzRS5jYXNlDHVuaTIyNjQuY2FzZQx1bmkyMjY1LmNhc2UMdW5pMDAzRC5jYXNlDHVuaTIyNjAuY2FzZQx1bmkwMDJCLmNhc2UMdW5pMjIxMi5jYXNlDHVuaTAwRDcuY2FzZQx1bmkwMEY3LmNhc2UMdW5pMDBCMS5jYXNlDHVuaTIyNDguY2FzZQx1bmkwMDdFLmNhc2UHdW5pMDBBQwd1bmkwMDVGB3VuaTIwMjAHdW5pMjAyMQd1bmkwMDVFB3VuaTAwMkEMdW5pMDAyQS5jYXNlB3VuaTAwQUUHdW5pMDBBOQZ1MUYxMkYHdW5pMjExNwd1bmkyMTIyB3VuaTIxMjAHdW5pMjEyMQd1bmkyMTNCBnUxRjE2QgZ1MUYxNkEHdW5pMDBCMAd1bmkwMEFBB3VuaTAwQkEHdW5pRTBBNQd1bmlFMEE2B3VuaTAwQjYHdW5pMjA0Qgd1bmkwMEE3B3VuaTIyMUUHdW5pMjIwMgd1bmkyMjExB3VuaTIyMEYHdW5pMjIyQgd1bmkyMjFBB3VuaTIyMDUHdW5pMjVDQQd1bmkxRDQzB3VuaTFENDcHdW5pMUQ5Qwd1bmkxRDQ4B3VuaTFENDkHdW5pMURBMAd1bmkxRDREB3VuaTAyQjAHdW5pMjA3MQd1bmkwMkIyB3VuaTFENEYHdW5pMDJFMQd1bmkxRDUwB3VuaTIwN0YHdW5pMUQ1Mgd1bmkxRDU2B3VuaUUxNjMHdW5pMDJCMwd1bmkwMkUyB3VuaTFENTcHdW5pMUQ1OAd1bmkxRDVCB3VuaTAyQjcHdW5pMDJFMwd1bmkwMkI4B3VuaTFEQkIHdW5pMjA3MAd1bmkwMEI5B3VuaTAwQjIHdW5pMDBCMwd1bmkyMDc0B3VuaTIwNzUHdW5pMjA3Ngd1bmkyMDc3B3VuaTIwNzgHdW5pMjA3OQd1bmkyMDdEB3VuaTIwN0UHdW5pRTBBNwd1bmlFMEE4B3VuaTIwN0EHdW5pMjA3Qgd1bmkyMDdDB3VuaTIwOTAHdW5pRTBBOQd1bmlFMEFBB3VuaUUwQUIHdW5pMjA5MQd1bmlFMEFDB3VuaUUwQUQHdW5pMjA5NQd1bmkxRDYyB3VuaTJDN0MHdW5pMjA5Ngd1bmkyMDk3B3VuaTIwOTgHdW5pMjA5OQd1bmkyMDkyB3VuaTIwOUEHdW5pRTBBRQd1bmkxRDYzB3VuaTIwOUIHdW5pMjA5Qwd1bmkxRDY0B3VuaTFENjUHdW5pRTBBRgd1bmkyMDkzB3VuaUUwQjAHdW5pRTBCMQd1bmkyMDgwB3VuaTIwODEHdW5pMjA4Mgd1bmkyMDgzB3VuaTIwODQHdW5pMjA4NQd1bmkyMDg2B3VuaTIwODcHdW5pMjA4OAd1bmkyMDg5B3VuaTIwOEQHdW5pMjA4RQd1bmlFMEIyB3VuaUUwQjMHdW5pMjA4QQd1bmkyMDhCB3VuaTIwOEMHdW5pRTBCNAd1bmlFMEI1B3VuaUUwQjYHdW5pRTBCNwd1bmlFMEI4B3VuaUUwQjkHdW5pRTBCQQd1bmlFMEJCB3VuaUUwQkMHdW5pRTBCRAd1bmkyMDQ0B3VuaUUwQkUHdW5pRTBCRgd1bmlFMEMwB3VuaUUwQzEHdW5pRTBDMgd1bmlFMEMzB3VuaUUwQzQHdW5pRTBDNQd1bmlFMEM2B3VuaUUwQzcHdW5pRTBDOAd1bmlFMEM5B3VuaUUwQ0EHdW5pRTBDQgd1bmlFMENDB3VuaUUwQ0QHdW5pRTBDRQd1bmlFMENGB3VuaUUwRDAHdW5pRTBEMQd1bmlFMEQyB3VuaUUwRDMHdW5pRTBENAd1bmlFMEQ1B3VuaUUwRDYHdW5pRTBENwd1bmlFMEQ4B3VuaUUwRDkHdW5pRTBEQQd1bmlFMERCB3VuaUUwREMHdW5pRTBERAd1bmlFMERFB3VuaUUwREYHdW5pRTBFMAd1bmlFMEUxB3VuaUUwRTIHdW5pRTBFMwd1bmlFMEU0B3VuaUUwRTUHdW5pMDBCRAd1bmkyMTUzB3VuaTAwQkMHdW5pMDBCRQd1bmkyMTVBB3VuaTIxNUYHdW5pMjE1RQd1bmkyMTVCB3VuaTIxNUQHdW5pMjE1Qwd1bmkwMDI1B3VuaTIwMzAHdW5pMjAzMQd1bmkyMTREB3VuaTIxMDYHdW5pMjEwNQd1bmkyMTAwB3VuaTIxMDEHdW5pMDBCNAd1bmkwMkREB3VuaTAwNjAHdW5pMDM4NAd1bmkwMEE4D2Nhc2VkaWVyZXNpcy5jbgd1bmkwMkM2B3VuaTAyREMMY2FzZXRpbGRlLmNuB3VuaTAwQUYHdW5pMDJEOAd1bmlFMEU2B3VuaTAyRDkHdW5pMDJEQQp1bmkwMkRBLnVjB3VuaTAyQzcHdW5pMDM4NQd1bmkwMEI4B3VuaTAyREIHdW5pRjZDMwd1bmkwMzAxB3VuaTAzMEIHdW5pMDMwMAd1bmkwMzBGB3VuaTAzMDQHdW5pMDMwOAd1bmkwMzA2B3VuaTAzMTEHdW5pMDMwOQd1bmkwMzAyB3VuaTAzMEMHdW5pMDMwMwd1bmkwMzA3B3VuaTAzMEEHdW5pMDMxQgd1bmkwMzI4B3VuaTAzMjcHdW5pMDMyRAd1bmkwMzJFB3VuaTAzMjMHdW5pMDMyNgd1bmkwMzI0B3VuaTAzMjUHdW5pMDMzMgd1bmkwMzMwB3VuaTAwMjAHdW5pMDBBMAd1bmkyMDJGB3VuaTIwNUYHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMEIHdW5pMjExNgd1bmkyMTAzB3VuaTIxMDkHdW5pMjEyQQd1bmkyMTJCB3VuaTAyOTgHdW5pMjEyRQd1bmkyMTkwB3VuaTI3RjUGdTFGODUwB3VuaTIxRDAHdW5pMjdGOAd1bmkyMTkyB3VuaTI3RjYGdTFGODUyB3VuaTIxRDIHdW5pMjdGOQd1bmkyMTk2B3VuaTIxOTcHdW5pMjE5OAd1bmkyMTk5B3VuaTIxOTQHdW5pMjdGNwd1bmkyMUQ0B3VuaTI3RkEHdW5pMjE5MQd1bmkyMTkzB3VuaTIxOTUHdW5pMjFBOQd1bmkyMUFBDHVuaTIxOTAuY2FzZQx1bmkyN0Y1LmNhc2ULdTFGODUwLmNhc2UMdW5pMjFEMC5jYXNlDHVuaTI3RjguY2FzZQx1bmkyMTkyLmNhc2UMdW5pMjdGNi5jYXNlC3UxRjg1Mi5jYXNlDHVuaTIxRDIuY2FzZQx1bmkyN0Y5LmNhc2UMdW5pMjE5NC5jYXNlDHVuaTI3RjcuY2FzZQx1bmkyMUQ0LmNhc2UMdW5pMjdGQS5jYXNlB3VuaTI3MTMHdW5pMjcxNwd1bmkyNUJDB3VuaTI1QjIHdW5pMjVDMAd1bmkyNUJBB3VuaTI1QkQHdW5pMjVCMwd1bmkyNUMxB3VuaTI1QjcHdW5pMjZBMAd1bmkyNUNGB3VuaTI1Q0IHdW5pMjVBMAd1bmkyNUExB3VuaTI1QTIHdW5pMkIxMgd1bmkyQjEzB3VuaTI1QzYHdW5pMjc1Ngd1bmkyNUM3B3VuaUUwMDAHdW5pMjYzQwd1bmkyNjAwB3VuaTI2NjEHdW5pMjY2NQd1bmkyNzY0B3VuaTI2MDUHdW5pMjYwNgd1bmkyQjA2B3VuaTIxRTcHdW5pMjFFQQd1bmkyMzE4B3VuaTIzMDMHdW5pMjMwNQd1bmkyMzgwB3VuaTIzMjUHdW5pMjM4Nwd1bmkyMzhCB3VuaTIxQkEHdW5pMjFCQgd1bmkyMzJCB3VuaTIzMjYHdW5pMjMyNwd1bmkyM0NGB3VuaTIzQ0UHdW5pMjFCNQd1bmkyMUIzB3VuaTIxQjAHdW5pMjFCMQd1bmkyMUI0B3VuaTIxRTQHdW5pMjFFNQd1bmkyMURFB3VuaTIxREYHdW5pMjVFRgd1bmkyQjFDB3VuaTIwREQHdW5pMjBERQd1bmkyNEI2B3VuaTI0QjcHdW5pMjRCOAd1bmkyNEI5B3VuaTI0QkEHdW5pMjRCQgd1bmkyNEJDB3VuaTI0QkQHdW5pMjRCRQd1bmkyNEJGB3VuaTI0QzAHdW5pMjRDMQd1bmkyNEMyB3VuaTI0QzMHdW5pMjRDNAd1bmkyNEM1B3VuaTI0QzYHdW5pMjRDNwd1bmkyNEM4B3VuaTI0QzkHdW5pMjRDQQd1bmkyNENCB3VuaTI0Q0MHdW5pMjRDRAd1bmkyNENFB3VuaTI0Q0YHdW5pMjRFQQd1bmkyNDYwB3VuaTI0NjEHdW5pMjQ2Mgd1bmkyNDYzB3VuaTI0NjQHdW5pMjQ2NQd1bmkyNDY2B3VuaTI0NjcHdW5pMjQ2OAd1bmlFMTJCB3VuaUUxMkMHdW5pRTEyRAd1bmlFMTJFB3VuaUUxMkYHdW5pRTEzMAd1bmlFMTMxB3VuaUUxMzIHdW5pRTEzMwd1bmlFMTM0B3VuaUUxMzUHdW5pRTEzNgd1bmlFMTM3B3VuaUUxNUYHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTEzOAd1bmlFMTM5B3VuaUUxM0EHdW5pRTEzQgd1bmlFMTNDB3VuaUUxM0QGdTFGMTMwBnUxRjEzMQZ1MUYxMzIGdTFGMTMzBnUxRjEzNAZ1MUYxMzUGdTFGMTM2BnUxRjEzNwZ1MUYxMzgGdTFGMTM5BnUxRjEzQQZ1MUYxM0IGdTFGMTNDBnUxRjEzRAZ1MUYxM0UGdTFGMTNGBnUxRjE0MAZ1MUYxNDEGdTFGMTQyBnUxRjE0MwZ1MUYxNDQGdTFGMTQ1BnUxRjE0NgZ1MUYxNDcGdTFGMTQ4BnUxRjE0OQd1bmlFMTNFB3VuaUUxM0YHdW5pRTE0MAd1bmlFMTQxB3VuaUUxNDIHdW5pRTE0Mwd1bmlFMTQ0B3VuaUUxNDUHdW5pRTE0Ngd1bmlFMTQ3B3VuaUUxNDgHdW5pRTE0OQd1bmlFMTRBB3VuaUUxNEIHdW5pRTE0Qwd1bmlFMTREB3VuaUUxNEUHdW5pRTE0Rgd1bmlFMTUwB3VuaUUxNTEHdW5pRTE1Mgd1bmlFMTUzB3VuaUUxNTQHdW5pRTE1NQd1bmlFMTU2B3VuaUUxNTcHdW5pRTE1OAd1bmlFMTU5B3VuaUUxNUEHdW5pRTE1Qgd1bmlFMTVDB3VuaUUxNUQHdW5pRTE1RQd1bmkwMTgyB3VuaTA0QkUHdW5pMDRGNAd1bmkwNENCB3VuaTAxRjEHdW5pMDExMAd1bmkwM0RDB3VuaTAxOEIHdW5pMDQ2NAd1bmkwNEM1B3VuaTAxOTAHdW5pMDRBQQd1bmkwMUE5B3VuaTAwRDAHdW5pMDFCNwd1bmkwMUVFB3VuaTAxQjgHdW5pMDQ5Mgd1bmkwMjYyB3VuaTAyOUIHdW5pMDEzMgd1bmkwMjZBB3VuaTA0NzYHdW5pMDNERQd1bmkwNDgwB3VuaTA0NkUHdW5pMDFDNwd1bmkwMTNGB3VuaTAyOUYHdW5pMDFDQQd1bmkwMjc0B3VuaTAyNzYHdW5pMDFBMgd1bmkwNDYwB3VuaTA0N0EHdW5pMDQ3Qwd1bmkwNDdFB3VuaTA0NzAHdW5pMDI4MAd1bmkwMjgxB3VuaTAyQjYHdW5pMDNFMAd1bmkwMThGB3VuaTA0REEHdW5pMDNEQQd1bmkwMTY2B3VuaTA0QUMHdW5pMDE4NAd1bmkwNDc4B3VuaTA0QUUHdW5pMDRCMAd1bmkwMUIyB3VuaTAxQTYHdW5pMDRGOAd1bmkwMjhGB3VuaTA0NkEHdW5pMDQ2Qwd1bmkwNDY2B3VuaTA0NjgHdW5pMDQ5OAd1bmkwNERFB3VuaTA0QzEHdW5pMDREQw5fdGlsZGVjcm9zcy5jbgd1bmlFMTFCB3VuaUUxMDQHdW5pMDJDRgd1bmkwMzQxB3VuaTAzMTcHdW5pMDQxMwd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQwMwd1bmkwNDBDB3VuaTA0MEUHdW5pMDQ2Mgd1bmkwMzFBB3VuaTAzMkIHdW5pMDJDNQd1bmkwMkMyB3VuaTAzNTAHdW5pMDJDMwd1bmkwMkM0B3VuaTAyNTEHdW5pRTEwQQd1bmkwMjUyB3VuaTIwNDIHdW5pMDI2NAd1bmkwMzM2B3VuaTAzMzUHdW5pMDNEMAd1bmlFMTFBB3VuaUUxMUMHdW5pRTEyNwd1bmkwMzYxB3VuaTAzMkYHdW5pRTEyMAd1bmkwMzNBB3VuaTAzMkEHdW5pMDMxMAd1bmkyMDM4B3VuaTIwNDEHdW5pMDMyQwd1bmlFMTE5B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaTIwNDAHdW5pMDRCRgd1bmkwNEY1B3VuaTA0Q0MHdW5pRTE2NAd1bmlFMTE2B3VuaUUxMUYHdW5pRTEyNgd1bmkwMkQxB3VuaTAyRDAHdW5pMDMxMwd1bmkwMzE1E2NvbW1hYWNjZW50cmlnaHQuY24HdW5pRTEyOAd1bmkwMkJEB3VuaTAzMTQHdW5pMDJCQgd1bmkwMzEyB3VuaUUxMDMHdW5pMDI5Nwd1bmlFMTE0B3VuaUUxMEIPY3lyaWxsaWN0YWlsLmNuDmN5cmlsbGljdGljLmNuB3VuaTA0ODUHdW5pMDJFRQd1bmkwMThEB3VuaTAzNDQHdW5pRTEyMQd1bmlFMTA2B3VuaUUxMTcHdW5pRTExMwd1bmlFMTI0B3VuaUUxMEUHdW5pRTExOAd1bmlFMTBEB3VuaTAzREQHdW5pRTEyMgd1bmlFMTBDB3VuaTAyRDUHdW5pMjE3Nwd1bmkwNDY1B3VuaTIxN0EHdW5pMDM0Nwd1bmkwMjU4B3VuaTA0QUIHdW5pMDI4Mwd1bmkwMjg2B3VuaTAxQUEHdW5pMDI4NQd1bmkyMEEwB3VuaTAxQzMHdW5pMDI5Mgd1bmkwMUVGB3VuaTAyOTMHdW5pMDFCOQd1bmkwMUJBB3VuaTAyQUEHdW5pMDJBRAd1bmkwMkI1B3VuaTAyQzkHdW5pMjE3NAd1bmkyMTczB3VuaTAyQ0IHdW5pMDJFMAd1bmkwMjYxB3VuaTA0OTMHdW5pMDQ1Mwd1bmkwMjk0B3VuaTAyQTEHdW5pMDFCRQd1bmkwMkEyB3VuaTAyOTYHdW5pMDJDMAd1bmkwMkU0B3VuaTAyQzEHdW5pMDI5NQd1bmkwMzQwB3VuaTAyQ0UHdW5pMDMxNgd1bmkwMkIxB3VuaTAzMjEHdW5pMDMyMgd1bmkyMDEwB3VuaTIwMjcHdW5pMjAxMQd1bmkwNEU1B3VuaTA0MzkHdW5pMDRFMwd1bmkwMzQ1B3VuaTA0NzcHdW5pMDI4NAd1bmkwM0JBB3VuaTAzRjAHdW5pMDEzOAd1bmkwNDVDB3VuaTAzREYHdW5pMDQ4MRRrb3JvbmlzYWNjZW50bGVmdC5jbgd1bmkwMzQzB3VuaTA0NkYHdW5pMDE5Qgd1bmlFMTBGB3VuaTAyQzgHdW5pMDMwRQd1bmkwMzBEB3VuaTAzMjkHdW5pMDE3Rgd1bmkwMkVGB3VuaTIxMTMHdW5pMDI2RQd1bmlFMEY2B3VuaUUwRjgHdW5pRTEyMwd1bmlFMTExB3VuaUUwRjcHdW5pRTBGOQd1bmkwMkNEB3VuaTAzMzEHdW5pMDE5Qwd1bmkwMkQ3B3VuaTAzQkMHdW5pMjE3OAd1bmkwM0JEB3VuaTAzNzQHdW5pMDM3NQd1bmkwNEU5B3VuaTA0RUIHdW5pMDFBMwd1bmkwMjc3B3VuaTA0NjEHdW5pMDQ3Qgd1bmkwNDdEB3VuaTIwMjQHdW5pMjE3MAd1bmkwMjU0B3VuaTA0N0YHdW5pMjAzRQd1bmkwMzNGB3VuaTAzMDUHdW5pMDQ4NAd1bmkwNEMwB3VuaTAzNDIHdW5pMDI3OAd1bmkwMUMwB3VuaTAxQzEHdW5pMDFDMgd1bmkwM0Q2B3VuaTAyRDYHdW5pMDQ3MQd1bmkwNDg2B3VuaTAyREYHdW5pMjAxRgd1bmkyMDFCB3VuaTIwM0IHdW5pMjA0Rgd1bmkwM0YxB3VuaTAyREUHdW5pRTExNQd1bmkwMkJGB3VuaTAyRDMHdW5pMDJCRQd1bmkwMkQyB3VuaTAzMUMHdW5pMDMzOQd1bmkyMTY3B3VuaTIxNkEHdW5pMjE2Qwd1bmkyMTY0B3VuaTIxNkUHdW5pMjE2Mwd1bmkyMTZEB3VuaTIxNjgHdW5pMjE2MAd1bmkyMTY2B3VuaTIxNjUHdW5pMjE2OQd1bmkyMTZGB3VuaTIxNjIHdW5pMjE2Qgd1bmkyMTYxB3VuaTAyN0EHdW5pMDJCNAd1bmkwM0UxB3VuaTAyNTkHdW5pMDREOQd1bmkwNERCB3VuaTAyNUEHdW5pMDMzQwd1bmkwMkNBB3VuaTIxNzYHdW5pMjE3NQd1bmkwMzM4B3VuaTAzMzcHdW5pMjQyMwd1bmkwMzNCB3VuaTAzREIHdW5pMDMxRQd1bmkwMzE4B3VuaTAzMTkHdW5pMDMxRAd1bmkwNEFEB3VuaTIxNzkHdW5pMDJBNwd1bmkwM0QxB3VuaTAxQUQHdW5pMDQ4Mgd1bmkyMTcyB3VuaUUxMTIHdW5pRTEyQQd1bmlFMTFFB3VuaUUxMDUHdW5pMDM2MAd1bmlFMTI1B3VuaUUxMTAHdW5pMDMzNAd1bmkwMzNFB3VuaTA0ODMHdW5pMDJFNQd1bmkwMkU5B3VuaTAyRTYHdW5pMDJFOAd1bmkwMkU3B3VuaTAxQkQHdW5pMDE4NQd1bmlFMTI5B3VuaTAyQTYHdW5pMjE3Qgd1bmkyMTcxB3VuaTIwMTcHdW5pMDMzMwd1bmkyMDNGB3VuaTAxRjcHdW5pMDIxQwd1bmkwMjFEB3VuaTAyMjAHdW5pMDIyMgd1bmkwMjIzB3VuaTAyMzgHdW5pMDIzOQd1bmkwMjQxB3VuaTAyNDIHdW5pMDI0NQd1bmlFMEYzB3VuaTAyOTkHdW5pMDI5Qwd1bmkwMkFCB3VuaTAyQUMHdW5pRTBGNQd1bmkwMkVBB3VuaTAyRUIHdW5pMDJFQwd1bmkwMkVEB3VuaTAyRjAHdW5pMDJGMQd1bmkwMkYyB3VuaTAyRjMHdW5pMDJGNAd1bmkwMkY1B3VuaTAyRjYHdW5pMDJGNwd1bmkwMkY4B3VuaTAyRjkHdW5pMDJGQQd1bmkwMkZCB3VuaTAyRkMHdW5pMDJGRAd1bmkwMkZFB3VuaTAyRkYHdW5pMDM0Ngd1bmkwMzQ4B3VuaTAzNDkHdW5pMDM0QQd1bmkwMzRCB3VuaTAzNEMHdW5pMDM0RAd1bmkwMzRFB3VuaTAzNEYHdW5pMDM1MQd1bmkwMzUyB3VuaTAzNTMHdW5pMDM1NAd1bmkwMzU1B3VuaTAzNTYHdW5pMDM1Nwd1bmkwMzU4B3VuaTAzNTkHdW5pMDM1QQd1bmkwMzVCB3VuaTAzNUMHdW5pMDM1RAd1bmkwMzVFB3VuaTAzNUYHdW5pMDM2Mgd1bmkwMzYzB3VuaTAzNjQHdW5pMDM2NQd1bmkwMzY2B3VuaTAzNjcHdW5pMDM2OAd1bmkwMzY5B3VuaTAzNkEHdW5pMDM2Qgd1bmkwMzZDB3VuaTAzNkQHdW5pMDM2RQd1bmkwMzZGB3VuaTAzNzAHdW5pMDM3MQd1bmkwMzcyB3VuaTAzNzMHdW5pMDM3Nwd1bmkwMzdCB3VuaTAzN0MHdW5pMDM3RAd1bmkwM0NGB3VuaTAzRDcHdW5pMDNEOAd1bmkwM0Q5B3VuaTAzRjUHdW5pMDNGNgd1bmkwM0Y3B3VuaTAzRjgHdW5pMDNGQgd1bmkwM0ZEB3VuaTAzRkUHdW5pMDNGRgd1bmkwNDVEB3VuaTA0ODcHdW5pMDQ4OAd1bmkwNDg5B3VuaTA0OEMHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RjYHdW5pMDRGNwd1bmkwNEZFB3VuaTA0RkYHdW5pMURCRgd1bmkxREMwB3VuaTFEQzEHdW5pMURDMgd1bmkxREMzB3VuaTFEQzQHdW5pMURDNQd1bmkxREM2B3VuaTFEQzcHdW5pMURDOAd1bmkxREM5B3VuaTFEQ0EHdW5pMURDQgd1bmkxRENDB3VuaTFEQ0QHdW5pMURDRQd1bmkxRENGB3VuaTFERDAHdW5pMUREMQd1bmkxREQyB3VuaTFERDMHdW5pMURENAd1bmkxREQ1B3VuaTFERDYHdW5pMURENwd1bmkxREQ4B3VuaTFERDkHdW5pMUREQQd1bmkxRERCB3VuaTFEREMHdW5pMURERAd1bmkxRERFB3VuaTFEREYHdW5pMURFMAd1bmkxREUxB3VuaTFERTIHdW5pMURFMwd1bmkxREU0B3VuaTFERTUHdW5pMURFNgd1bmkxREU3B3VuaTFERTgHdW5pMURFOQd1bmkxREVBB3VuaTFERUIHdW5pMURFQwd1bmkxREVEB3VuaTFERUUHdW5pMURFRgd1bmkxREYwB3VuaTFERjEHdW5pMURGMgd1bmkxREYzB3VuaTFERjQHdW5pMURGNQd1bmkxREZDB3VuaTFERkQHdW5pMURGRQd1bmkxREZGB3VuaTFFOUQHdW5pMUU5Rgd1bmkxRUZBB3VuaTFFRkIHdW5pMUVGQwd1bmkxRUZEB3VuaTFFRkUHdW5pMUVGRgd1bmkxRjcxB3VuaTFGNzMHdW5pMUY3NQd1bmkxRjc3B3VuaTFGNzkHdW5pMUY3Qgd1bmkxRjdEB3VuaTFGQkQHdW5pMUZCRQd1bmkxRkJGB3VuaTFGQzAHdW5pMUZDMQd1bmkxRkNEB3VuaUUwRkIHdW5pMUZDRQd1bmlFMEZEB3VuaTFGQ0YHdW5pRTBGRgd1bmkxRkQzB3VuaTFGREQHdW5pRTBGQwd1bmkxRkRFB3VuaUUwRkUHdW5pMUZERgd1bmlFMTAwB3VuaTFGRTMHdW5pMUZFRAd1bmkxRkVFB3VuaTFGRUYHdW5pRTEwMQd1bmkxRkZEB3VuaUUxMDIHdW5pMUZGRQd1bmlFMEZBB3VuaTIwNEEHdW5pMjA0RQd1bmkyMDUwB3VuaTIwNTEHdW5pMjA1Mgd1bmkyMDUzB3VuaTIwNTQHdW5pMjA1NQd1bmkyMDU2B3VuaTIwNTgHdW5pMjA1OQd1bmkyMDVBB3VuaTIwNUIHdW5pMjA1Qwd1bmkyMDVEB3VuaTIwNUUHdW5pRTBGNAd1bmkyMDk0B3VuaTIwQjAHdW5pMjBCNgd1bmkyMEI3B3VuaTIwQkIHdW5pMjBEQgd1bmkyMERDB3VuaTIwRTgHdW5pMjBGMAd1bmkyMTRGB3VuaTIxN0MHdW5pMjE3RAd1bmkyMTdFB3VuaTIxN0YHdW5pMjE4MAd1bmkyMTgxB3VuaTIxODIHdW5pMjE4Mwd1bmkyMTg0B3VuaTIxODUHdW5pMjE4Ngd1bmkyMTg3B3VuaTIxODgHdW5pMjdFRgd1bmkyREZGB3VuaUE2OUYHdW5pQTdGRgd1bmlBOTJFB3VuaUZFMjAHdW5pRkUyMQd1bmlGRTIyB3VuaUZFMjMHdW5pRkUyNAd1bmlGRTI1B3VuaUZFMjYHdW5pRkUyNwd1bmlGRTI4B3VuaUZFMjkHdW5pRkUyQQd1bmlGRTJCB3VuaUZFMkMHdW5pRkUyRAd1bmkwMjhBB3VuaTAyRDQHdW5pMDRBRgd1bmkwNEIxB3VuaTIxMjMHdW5pMjAxNgd1bmkwMkNDB3VuaTAyOEIHdW5pMDFCRgd1bmkwMzNEB3VuaTA0RjkHdW5pMDM3QQd1bmkwNDZCB3VuaTA0NkQHdW5pMDQ2Nwd1bmkwNDY5B3VuaTA0OTkHdW5pMDRERgd1bmlGRUZGB3VuaTA0QzIHdW5pMDRERAAAAAAABAAAAAMAAFEcAAAABAAAACQAAwABAABRHAADAAoAAAAkAAwAAAAAUPgAAAAAAAAGvgAAACAAAAAgAAAGkQAAACEAAAAh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AAABKgAABB0AAAQdAAAAuwAABB4AAAQeAAABcAAABB8AAAQiAAAHxAAABCMAAAQkAAAECQAABCUAAAQlAAAHyAAABCYAAAQmAAAECwAABCcAAAQnAAAEDQAABCgAAAQsAAAEEgAABC0AAAQvAAAEGQAABDAAAAQwAAACGQAABDEAAAQzAAAEtgAABDQAAAQ0AAAEuwAABDUAAAQ1AAACfwAABDYAAAQ2AAAEvAAABDcAAAQ4AAAEvgAABDkAAAQ5AAAIQwAABDoAAAQ6AAAEwQAABDsAAAQ7AAAExgAABDwAAAQ8AAAEyQAABD0AAAQ9AAAEywAABD4AAAQ+AAADNwAABD8AAAQ/AAAE0AAABEAAAARAAAADQAAABEEAAARBAAACUQAABEIAAARCAAAE0QAABEMAAARDAAADwwAABEQAAAREAAAE0gAABEUAAARFAAADtAAABEYAAARGAAAE1QAABEcAAARHAAAE1wAABEgAAARJAAAE2gAABEoAAARLAAAE3QAABEwAAARMAAAE3AAABE0AAARPAAAE4wAABFAAAARRAAACgAAABFIAAARSAAAClwAABFMAAARTAAAILwAABFQAAARUAAAE6AAABFUAAARVAAADcAAABFYAAARXAAACwAAABFgAAARYAAACyQAABFkAAARaAAAE4QAABFsAAARbAAAClgAABFwAAARcAAAISwAABF0AAARdAAAJMwAABF4AAAReAAADxAAABF8AAARfAAAE1gAABGAAAARgAAAHnwAABGEAAARhAAAIbgAABGIAAARiAAAHzAAABGMAAARjAAAE4AAABGQAAARkAAAHhgAABGUAAARlAAAIFQAABGYAAARmAAAHtwAABGcAAARnAAAJ7AAABGgAAARoAAAHuAAABGkAAARpAAAJ7QAABGoAAARqAAAHtQAABGsAAARrAAAJ6gAABGwAAARsAAAHtgAABG0AAARtAAAJ6wAABG4AAARuAAAHlwAABG8AAARvAAAIUAAABHAAAARwAAAHowAABHEAAARxAAAIgQAABHIAAARyAAAEBwAABHMAAARzAAADNQAABHQAAAR0AAAEIwAABHUAAAR1AAAE7QAABHYAAAR2AAAHlAAABHcAAAR3AAAIRgAABHgAAAR4AAAHrgAABHkAAAR5AAADOgAABHoAAAR6AAAHoAAABHsAAAR7AAAIbwAABHwAAAR8AAAHoQAABH0AAAR9AAAIcAAABH4AAAR+AAAHogAABH8AAAR/AAAIdAAABIAAAASAAAAHlgAABIEAAASBAAAITQAABIIAAASCAAAIugAABIMAAASDAAAIxQAABIQAAASEAAAIeAAABIUAAASFAAAIBAAABIYAAASGAAAIggAABIcAAASJAAAJNAAABIoAAASKAAABPAAABIsAAASLAAAEwAAABIwAAASMAAAJNwAABI0AAASNAAAE3wAABI4AAASOAAABeQAABI8AAASPAAADPAAABJAAAASQAAAD/QAABJEAAASRAAAEuQAABJIAAASSAAAHjwAABJMAAASTAAAILgAABJQAAASUAAAEHAAABJUAAASVAAAE5gAABJYAAASWAAAEAQAABJcAAASXAAAEvQAABJgAAASYAAAHuQAABJkAAASZAAAJ7gAABJoAAASaAAABFQAABJsAAASbAAAEwwAABJwAAAScAAAEBAAABJ0AAASdAAAExAAABKAAAASgAAABFAAABKEAAAShAAAExQAABKIAAASiAAAAqwAABKMAAASjAAAEzAAABKQAAASkAAAArQAABKUAAASlAAAEzQAABKYAAASmAAAEHQAABKcAAASnAAAE5wAABKgAAASoAAAEHwAABKkAAASpAAAE6QAABKoAAASqAAAHiQAABKsAAASrAAAIGQAABKwAAASsAAAHrAAABK0AAAStAAAItQAABK4AAASuAAAHrwAABK8AAASvAAAJ4AAABLAAAASwAAAHsAAABLEAAASxAAAJ4QAABLIAAASyAAAB0gAABLMAAASzAAAE1AAABLQAAAS0AAAEDAAABLUAAAS1AAAE6gAABLYAAAS2AAAEDgAABLcAAAS3AAAE2AAABLgAAAS4AAAEDwAABLkAAAS5AAAE2QAABLoAAAS6AAAEEAAABLsAAAS7AAACpgAABLwAAAS8AAAEIAAABL0AAAS9AAAE6wAABL4AAAS+AAAHfwAABL8AAAS/AAAH7QAABMAAAATAAAAIeQAABMEAAATBAAAHuwAABMIAAATCAAAJ8QAABMMAAATDAAAEBQAABMQAAATEAAAEwgAABMUAAATFAAAHhwAABMYAAATGAAAExwAABMcAAATHAAAAqgAABMgAAATIAAAEzgAABMkAAATJAAAArAAABMoAAATKAAAEzwAABMsAAATLAAAHgQAABMwAAATMAAAH7wAABM0AAATNAAABJwAABM4AAATOAAAEygAABM8AAATPAAAC7wAABNAAAATQAAAAMQAABNEAAATRAAACGgAABNIAAATSAAAAMgAABNMAAATTAAACGwAABNQAAATUAAAAQAAABNUAAATVAAACHwAABNYAAATWAAAAiAAABNcAAATXAAACggAABNgAAATYAAAEIQAABNkAAATZAAAIpQAABNoAAATaAAAHqQAABNsAAATbAAAIpgAABNwAAATcAAAHvAAABN0AAATdAAAJ8gAABN4AAATeAAAHugAABN8AAATfAAAJ7wAABOAAAATgAAAEIgAABOEAAAThAAAE7AAABOIAAATiAAABOgAABOMAAATjAAAIRAAABOQAAATkAAABOwAABOUAAATlAAAIQgAABOYAAATmAAABcQAABOcAAATnAAADOAAABOgAAAToAAABcwAABOkAAATpAAAIagAABOoAAATqAAABdAAABOsAAATrAAAIawAABOwAAATtAAAJOAAABO4AAATuAAADyQAABO8AAATvAAADxQAABPAAAATwAAADygAABPEAAATxAAADxgAABPIAAATyAAADywAABPMAAATzAAADxwAABPQAAAT0AAAHgAAABPUAAAT1AAAH7gAABPYAAAT3AAAJOgAABPgAAAT4AAAHswAABPkAAAT5AAAJ6AAABPoAAAT6AAAD/gAABPsAAAT7AAAEugAABPwAAAT8AAAB0wAABP0AAAT9AAAE0wAABP4AAAT/AAAJPAAABS8AAAUvAAAEyAAADj8AAA4/AAAFDAAAHUMAAB1DAAAFyQAAHUcAAB1HAAAFygAAHUgAAB1JAAAFzAAAHU0AAB1NAAAFzwAAHU8AAB1PAAAF0wAAHVAAAB1QAAAF1QAAHVIAAB1SAAAF1wAAHVYAAB1WAAAF2AAAHVcAAB1YAAAF3AAAHVsAAB1bAAAF3gAAHWIAAB1iAAAF/AAAHWMAAB1jAAAGBQAAHWQAAB1lAAAGCAAAHZwAAB2cAAAFywAAHaAAAB2gAAAFzgAAHbsAAB27AAAF4gAAHb8AAB31AAAJPgAAHfwAAB3/AAAJdQAAHgAAAB4AAAAAFAAAHgEAAB4BAAACFgAAHgIAAB4CAAAAQgAAHgMAAB4DAAACQwAAHgQAAB4E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BeQFuwWNBlQGUgZVBTgABQAGAAcABAADAAgAPQBLAGAAYQBiAGMAygDLAMwAxgeLASwBRQFGAUcBQgFBBZYBQwGnAagBqQGqAdcD2QNyAg0B+QIBAhcCCAITAhwCSgJnAmgCaQJlAq8CsAKxAqkEJQL4AwwDDQMOAwkDCAWXAwoDiQOKA4sDhAO6BCYDtwALAhAADAH6AA0CEQBMAksATQJMAE4CTQBPAk4AVgJYB4MCUwBkAmoAZQJrAGYCbABnAm0AaAJuAJACjQCRAo4AkgKPAJMCkACjAp8AqQKeAM0CqwDOArIAzwKzANACtQDRAqgHkgLCAQoCxgEPAs0ISgEZAtsBGgLcARsC3QeZAtoBIALUAS0C/gEuAv8BLwMAATYC+gFIAw8BSQMQAUoDEQF1AzkBfwNNAYADTgGBA08BjANmAY0DZwGOA2gBjwNpAZoDewGbA3wHqwN6AasDhQGsA4wBrQONAa4DjgGvA48BsAOQAckDqwHYA7sB2QHuA9IB7wPTAfAD1AhXAkAARgd+AkEHrQjMAFIASgJIAFwAVQeFAlYIBgB6B6gHiACKBPIAjwP7ApoA1wDIARYCzALVCFEIYwE1Av0BcgFEAwsHnghsAXoDPQeyAZcDcQeKCBwDdQGhCLkBogGmA4YD9wexAdYDuAH1A84HjAeOCCMIJAURBRUIywgyCeYIfAh9CH4IHwBeAmAHmAEiAsoHmwE/AwYADgIAANICtgFLAxIBsQORAbIDkgGzA5MBtAOUAbUDlQKDAA8CCQAQAgwAPgIdAI4CjACUApEBEALOAUwDEwFNAxQHjQghAscHggBdAl4AlQKSAK4I1AEwAwEACQIUAD8CHgFkAysAEQIHABICDwBpAm8AagJwANMCtwDUArgBTgMVAU8DFgGCA1ABgwNRAbYDlgG3A5cBkANqAZwDfQjVCNYApAKgCNcCVwjYCNkB9APPABMCCgBrAnEBUAMXAVEDGAFSAxkBUwMaAdoDvALZAvsDdwK8CNoI2wAuAFECRwEhAaMDZQPQCNwI3QBFAcQI3gB5AmYBCwK+A0QDQwGKA0cB4AO5AhgH1AfWAkIIcwJJAlQCVQgYCKQIpwRHBEgESgRJAr0CiwgtB5AEtQfYApsCmAKZAq4EbAeTAtYC2ALXCFoC8gLzAvEC/AL5B5wDNgedCG0IewNICKEDSQNZA1cDSwNKB6QHpQNkCBoIRwgdCBsDeQN2A4gJ3gnlA6UDqgPIB7QD0QPYCCAIIggwCDgINAf/BqYI4ARGB5EI4QLFAtIHmgNCCDEIMwJfAmICYQjOCLcDeAKJCCUI4gjjCCYCnAKdBdAIPAXSBdoIoggnB6YF3wXhBXkFegf8BWsH+giNCIsINQg3B9AH0gfTB88GagZzCFMIKAipCCsJ5AhhCDoHwAf1B/QIjgiMCd8IEwiACGQGbgZwBnEGdgZrBmUIiQiDCCwF1AXbBeAINgjGCMgIygjJCMcI5QjmCOcI6AgFCFgGegZ4BoEGgwZ8CHcGfgaEBn0GgAaFBnkGgghVCFQGewfkBn8H/Qf2B/sH9wg7B8IIsgizB80GhgiPCLQIsQg9CD4GiwaNBo4GjAaIBocIVgfjB84H5waJBooH4AaQCGIGjwjSCMMH2gfZCK0IrAiQB+IIrwioCecIxAh2CDkHwQh6CE8IBwhFCPkIFwjAB98IaAhpAT0JIwnpCSQJJQkmBYkBDAZnBnQAIgWIAHwAsADZAeID5ARtACEASAPaA9sAewH2AK8D3ADYARcAPAEoAT4D3QFlA94BewPfAaQB4QPgAdQD4QPiANoB4wQoBEUEVARuBIkEJwRBBEIEQwREBFIEUwRrBGwISAR+CGUIZwR/AywEgASBBIUEhgSHBIgEmgO1BJwEnQRvBIoDLQSLBJ4JJwfbCLgD+AP5A/oEmwh/CSgJKQkqB6oIsAeECBAHlQhMB6cIowhJCIgCUALIAW4JKwksCS0JLgBTASkJLwSECTAJMQkyAIYAhwQkB8kEHgGWAOcA6AENBBcEGAQRB8oBOAfLBAgAMAP8AEcHwwP/AIUEAAQCATcBOQQDBAYBKgC7AXAHxAfFB8YHxwQJBAoHyAQLBA0EEgQTBBQEFQQWBBkEGgQbAhkEtgS3BLgEuwJ/BLwEvgS/CEMEwQTGBMkEywM3BNADQAJRBNEDwwTSA7QE1QTXBNoE2wTdBN4E3ATjBOQE5QKAAoEClwgvBOgDcALAAsECyQThBOIClghLCTMDxATWB58IbgfMBOAHhggVB7cJ7Ae4Ce0HtQnqB7YJ6weXCFAHowiBBAcDNQQjBO0HlAhGB64DOgegCG8HoQhwB6IIdAeWCE0IugjFCHgIBAiCCTQJNQk2ATwEwAk3BN8BeQM8A/0EuQePCC4EHATmBAEEvQe5Ce4BFQTDBAQExAEUBMUAqwTMAK0EzQQdBOcEHwTpB4kIGQesCLUHrwngB7AJ4QHSBNQEDATqBA4E2AQPBNkEEAKmBCAE6wd/B+0IeQe7CfEEBQTCB4cExwCqBM4ArATPB4EH7wEnBMoC7wAxAhoAMgIbAEACHwCIAoIEIQilB6kIpge8CfIHugnvBCIE7AE6CEQBOwhCAXEDOAFzCGoBdAhrCTgJOQPJA8UDygPGA8sDxweAB+4JOgk7B7MJ6AP+BLoB0wTTCTwJPQXKBcwFzQXTBdUF2AXcBd0F/AYFBggGCQAUAhYAQgJDAEMCRABEAkUAUAJPAFcCWQBYAloAWQJbAFoCXABbAl0AbAJyAG0CcwBuAnQAbwJ1AHACdgCLAogAlgKTAKUCoQCmAqIApwKjAKIClQCoAqQAyQKsAMcCqgERAs8BEgLQARMC0QEcAt4BHQLfAR4C4AEfAuEBJAL0ASUC9QEmAvYBMQMCATIDAwEzAwQBNAMFAVQDGwFVAxwBVgMdAVcDHgF3Az4BeAM/AYQDUgGFA1MBhgNUAYcDVQGRA2sBkgNsAZMDbQGUA24BlQNvAZ0DfgGeA38BnwOAAaADgQG4A5gBuQOZAboDmgG7A5sBvAOcAcYDpgHHA6cBygOsAcsDrQHMA6kBzQOuAc4DrwHQA7IB0QOzAdsDvQHxA9UB8gPWAfMD1wKlA4IDsAO+AhIChwKGCXkBmAl6ABUCCwAWAg4AFwICABgCBAAZAgUAGgIGABsCAwAcAfsAHQH9AB4B/gAfAf8AIAH8AHECdwByAngAcwJ5AHQCegB1AnsAdgJ8AHcCfQB4An4A1QK5ANYCugFYAx8BWQMgAVoDIQFbAyIBXAMjAV0DJAFeAyUBXwMmAWADJwFhAygBYgMpAWMDKgG9A50BvgOeAb8DnwHAA6ABwQOhAcIDogHDA6MB3AO/Ad0DwAHeA8EB3wPCCXsJfAl9CX4JfwmABDEJgQRRCYIEXQmDBHgJhAM0CYUElAmGBKcJhwQ/BEAAKwAsAC0ALwA7CYgJiQmKCYsJjARmBGcEaARpBGoAgwCEALkAugDECY0JjwmRBHkEegR7CZMJlAmWCZgElQSWBJcJmgSCBIMEmASZAegB6QHqAesBfAmbCZwJnQSzBLQBbQFvA+0D4wP2CZ8JoQg/CEEFVAVTBVUFVgnjCNEFaQVqBXEIhQVuBW8FcAiEBaoFqwVXBVoIcQV+BX0IQAaTBl0GXgVyBXMFdAV2BXcFeAflBYoFiwiGBTIFOQh1CNMH7AfmB9cFWQYpBT4FQAU2BTcFNAmjBb8FWwVcCaQIhwmlCaYJpwmoCakJqgmrBXUJrAmtCa4JrwmwCbEJsgaUBeMF0QXxBfIF8wXtBe4F1gYcBh0GHgYYBhkF9AX4BgIGCwm0BfsF/gX/BgAGAQYDBgYGBwgeBQEFAwULBPwFBgT/BPgFCQT7BQcCYwT1BPoFBAUFCbUE+QUABP0E/gUCCbYJtwT3BPYE8wm4BQgE9AUKBQ0JuQm6BwYHBwZhBmAGoQWyAYkBiAW0BbUFswniBlYGWQZbBloGWAZXCJkIoAieCJYIlAibCJoIkQiYCJwIkgifCJMIlwiVCJ0IcgjQCLsIKggpCKsIqggUCGYItggWCM8GqAa6Bq0Guwa2BrwG/Ab/BvsFxwPbBcMFlQbxBvcG+Ab6BvkG0AbUBtIG1gbSBtYGzwbTBtEG1QbRBtUG3wbhBcgG2QapBq4GtwasBrEGuQKtArQCuwK/AsQDRgNMA1YDWAW8Bb0F7wXwBfUF9gX3BfkF+gYEBgoGDAYNBhoGGwjfCbMI5AhbCF8IXAhgCaIJjgmVCZAJlwmSCZkJngmgB/4Hvwi/CAkH6QfqB+sH1QgBCBIIDwgNCFIIwgheCLwICwgACIoH8QgKCA4H6AfcB74H3Qi+B/IH4QgICBEIXQgMCMEH8wfeB/kIzQi9BzkHOgc7BzwF2QfwBYEACgHsAhUDzAAAAAEAAAASACAACgADACoAOgAyAAJERkxUADxsYXRuADwAA2Nwc3AAMmtlcm4AOG1hcmsAPgABAAAAAQAwAAQAAAABAEIACQAIAAIAKgAyADwAAAAAAAEAAAAAAAEAAQAAAAEAAgABAIwABQAQACAAAQACAAAu1gABAAIAADlkAAEAGAFaAAMAOARSAAD//wADAAAAAQACAAEADgZ3BnsGfAaCCBcIWwhcCF8IYAkPCRAJFgkYCbwADgAAIr4AASJwAAEidgABInwAACKCAAEiiAABIo4AASKUAAEimgABIqAAACKmAAIirAACIrIAASK4AAIAJgACAAkAAAALAJYACAChANcAlADZAOgAywEJAYcA2wGKAesBWgHtAfcBvANEA0QBxwPJA8sByAPZBCQBywUVBRUCFwd+B48CGAeSB5ICKgeUB5kCKwebB5sCMQeeB58CMgejB6MCNAenB7MCNQe1B7wCQgfDB8wCSghjCGMCVAh5CHkCVQjUCNUCVgjXCNgCWAjcCNwCWgjeCN4CWwkfCR8CXAkhCSECXQknCScCXgkpCSkCXwktCS0CYAkwCTICYQk3CTgCZAk6CToCZgk8CTwCZwl7CXsCaAl9CX0CaQl/CX8CagACAH4AAgA7AAAAPQBcADoAXwCtAFoArwETAKkBFwGIAQ4BigGXAYABmQGgAY4BogHVAZYB1wHzAcoB9QH2AecB+AJBAekCQwJIAjMCSgJUAjkCVgJdAkQCXwJfAkwCYQJhAk0CYwKDAk4ChQKIAm8CigKZAnMCmwKbAoMCngK8AoQCwALCAqMCxALFAqYCygLLAqgCzQLXAqoC2gM4ArUDOwNCAxQDRQNJAxwDTANxAyEDdAN1A0cDeQOGA0kDiAO0A1cDtgO3A4QDuQPOA4YD0QPXA5wD2gPaA6MD3APcA6QD4gP2A6UD+AP6A7oD/gP+A70EAAQCA74EBgQHA8EECQQJA8MEDQQRA8QEFQQVA8kEGQQZA8oEGwQcA8sEIAQhA80EIwQjA88EJwRAA9AERARFA+oERwRIA+wESgRRA+4EUwRqA/YEbAR9BA4EgQSEBCAEiASZBCQEnQS0BDYEuAS6BE4EvATBBFEEwwTDBFcExQTIBFgE1ATUBFwE1wTZBF0E3gTeBGAE4wTjBGEE5gTmBGIE6wTvBGME/wUCBGgFBAUEBGwFCwUNBG0GZAZkBHAGZgZmBHEGaAZoBHIGawZrBHMGeQZ5BHQGogamBHUHCAchBHoHQwdcBJQHfweBBK4HgweDBLEHhweHBLIHiQeJBLMHiwePBLQHkgeSBLkHlAeUBLoHmAeZBLsHmwebBL0HqQepBL4HqwesBL8HrwewBMEHswezBMMHuQe8BMQHwwfDBMgHxQfLBMkH1AfUBNAH7QfvBNEH/Qf9BNQIGQgZBNUIIAghBNYIIwgjBNgIKQgpBNkILQgvBNoIQghEBN0IRghGBOAISwhLBOEIaghrBOIIcghyBOQIeQh5BOUIfwh/BOYIkwiVBOcIlwiXBOoImQiZBOsInAidBOwIpAimBO4Itgi2BPEI3wjfBPIJMQkzBPMJOAk9BPYJgQmHBPwJkwmTBQMJmgmaBQQJvgnBBQUJ6AnoBQkJ7gnvBQoJ8QnyBQwFDilOKVQAAClOKVQAAClOKVQAAClOIlgAAClOHqoAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAClOKVQAAAAAHrYAAAAAHrYAAAAAHrAAAAAAHrYAACbkJuoAACbkJuoAACbkJuoAACbkJuoAAB68InwAAB7CHsgAACbkJuoAACbkJuoAAAAAKagAAAAAKagAAAAAKagAAAAAHs4AAAAAKagAAAAAKagAAAAAKagAAAAAHs4AAAAAKagAAAAAKa4AAAAAKagAAClaKWAAAB7UHtoAAClaKWAAAClaKWAAAClaKWAAAClaKWAAAClaKWAAAClaKWAAAClaKWAAAB9SH1gAAB9SH0YAAB9SHuAAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH0wAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB9SH1gAAB7mHuwAACGeHvIAAB74Hv4AAB8EHwoAAB8QHxYAAB8cHyIAAB8oHy4AAB80HzoAACYGH0AAAB9SH1gAAB9SH0YAAB9SH0wAAB9SH1gAACbYJt4AAB9eH2QAACbYJt4AAB9qH3AAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMH3YAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMJtIAACbMH3YAACbMJtIAACAYIB4AACAYIB4AACAYIB4AACAYIB4AACAYIB4AACAYIB4AACAYIB4AACAYIB4AAB98H4IAACAYIB4AACAYIB4AACAYIB4AACAYIB4AACAYIB4AAB+IH44AAB+UH5oAAB/EH8oAAB/QH9YAAB/cH+IAAB/oH+4AAB/0H/oAACAAIAYAACAMIBIAAB+gH6YAAB+sH7IAACAYIB4AAB+4H74AAB/EH8oAAB/QH9YAAB/cH+IAAB/oH+4AAB/0H/oAACAAIAYAACAMIBIAACAYIB4AAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmICQAAClmICoAAClmKWwAACAwIDYAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAACRuKiwAAClmKWwAACA8IEIAAClmKWwAACaWIEgAACBOIFQAACBaIGAAACBmIGwAACByIHgAACB+IIQAACDGIMwAACCKIJAAAClmKWwAAClmKWwAACCWJuoAACCcIKIAAClmKWwAAClmIKgAACEsISYAACEsISYAACEsISYAACEsISYAACEsISYAACEsIK4AACEsILQAACEsISYAACEsITIAACEsISYAACEsISYAACEsISYAACEsISYAACEsISYAACEsISYAACEsISYAACEsISYAACEsISYAACC6IMAAACDGIMwAACDSINgAACDeIOQAACDqJ24AACDwIPYAACD8IQIAACEIIQ4AACEsISYAACEsISYAACWOIRQAACEaISAAACEsISYAACEsITIAAAAAITgAAAAAITgAAAAAITgAAAAAITgAAAAAITgAACjEJyAAACjEJyAAACjEJyAAACjEKMoAACjEJyAAACjEJyAAACjEJyAAAClCKUgAAClCIT4AAClCKUgAAClCKUgAAClCKUgAAClCKUgAAClCKUgAAClCKUgAACFEIUoAAClCKUgAAClCKUgAAClyKXgAAClyIVAAAClyKXgAAClyKXgAAClyKXgAAClyKXgAAClyKXgAAClyKXgAAChwIXoAAChwIVYAAChwIVwAAChwIXoAAChwIXoAAChwIW4AAChwIXoAAChwIXoAAChwIXoAAChwIXoAACFiIWgAAChwIXoAAAAAIXoAAAAAIW4AAAAAIXoAAAAAIXoAAAAAIXoAAAAAIXoAAAAAIXQAAChwIXoAAChwIXoAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmIYAAACcmIYwAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACcmIYwAACcmIYAAACcmJywAACcmIYYAACcmJywAACcmIYwAACcmJywAACGSIZgAACGeIaQAACGqIbAAACG2IbwAACHCIcgAACHOIdQAACHaIeAAACHmIewAACcmJywAACHyIfgAACcmJywAACcmJywAACcmJywAACcmJywAACcmJywAACH+IgQAAAAAKLIAAAAAIgoAAAAAKLIAAAAAIhAAAAAAIhYAAAAAKLIAAAAAIhwAACcmJywAACIoIi4AACIoIiIAACIoIi4AACIoIi4AACIoIi4AACIoIi4AACIoIi4AACIoIi4AACIoIi4AACIoIi4AACI0IjoAACJAIkYAACauJrQAACauIkwAACauJrQAACauJrQAACauJrQAACauJrQAACauJrQAACauJrQAACauJrQAACauJrQAACauJrQAACauJrQAACJSJrQAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACi4KNAAACJqInAAACJqInAAACJqIl4AACJqIlgAACJqInAAACJqInAAACJqImQAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqInAAACJqIlgAACJqIl4AACJqInAAACJqImQAACJqInAAACJ2InwAAClOKVQAAClOIoIAAClOKVQAACKUIpoAACKUIpoAACKUIogAACKUIo4AACKUIpoAACKUIpoAACKUIpoAACnSKdgAACnSKdgAACnSKdgAACnSKdgAACnSKdgAACnSKdgAACiCKIgAACiCIqAAACiCKIgAACiCKIgAACiCKIgAACiCKIgAACiCIqYAACiCKIgAACiCKIgAACiCIqwAACiCKIgAACiCKIgAACKyIrgAACiCKIgAACK+IsQAACLKItAAACLWItwAACLiIugAACiCKIgAACiCKIgAACLuIvQAACL6IwAAACiCKIgAACMMKNAAACMMIwYAACMMKNAAACMMKNAAACMMKNAAACMMKNAAACMMKNAAACMMKNAAACMMKNAAACMeJaYAACMeIxIAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJvYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeIxgAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJaYAACMeJvYAACMeJaYAACMeJaYAACMeJaYAACMeJvYAAAAAIyoAAAAAIyoAAAAAIyQAAAAAIyoAACo4IzwAACo4IzAAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4I0IAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzYAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4IzwAACo4I0IAACNII04AACNII04AACNII04AACNII04AACNII04AACNII04AAAAAKPQAAAAAKPQAAAAAKPQAAAAAKPQAAAAAI1QAAAAAKPQAAAAAKPQAAAAAKPQAAAAAI1QAAAAAKPQAAAAAKPQAACNyI3gAACNyI3gAACNyI3gAACNaI2AAACNmI2wAACNyI3gAACNyI3gAACNyI3gAACNyI3gAACNyI3gAACNyI3gAACNyI3gAACNyI3gAACNyI3gAACOKKX4AACOKKYoAACOKKX4AACOKI4QAACOKI34AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKYoAACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKKX4AACOKI4QAACOKKYoAACOKKX4AACmEKX4AACOcI6IAAAAAI5AAAAAAI5YAACOcI6IAACkSKSQAACOoKfwAACkSKSQAACkSKSQAACkSKSQAACkSKSQAACkSKSQAACkSKSQAACkSI64AACkSKSQAACPGI8wAACPGI8wAACPGI8wAACPGI8wAACSGKfwAACSGKfwAACO0I7oAACPGI8wAACPGI8wAACPGI8wAACPGI8wAACPGI8wAACPGI8AAACPGI8wAACPGI8wAACPGI8wAACmcKaIAACmcKaIAACmcJCAAACmcKaIAACPSI9gAACmcKaIAACmcKaIAACmcKaIAACmcI94AACmcI+QAACmcKaIAACmcKaIAACmcKaIAACPqKaIAACPwI/YAACmcKaIAACmcKaIAACmcKaIAACmcKaIAACmcKaIAACmcKaIAACP8JAIAACmcKaIAACmcJCAAACmcKaIAACQIJA4AACQIJA4AAComKiwAACQaJCAAACQaJCAAACQaJCAAACQaJBQAACQaJCAAACQaJCAAACQmJCwAAComKiwAAComKiwAAComKiwAACQyJDgAAComKiwAACQ+JGIAAComJGgAAComKiwAAComKiwAAComKiwAAComKiwAAComKiwAAComKiwAACRuKiwAACREJEoAACRuKiwAACRuKiwAACRQJFYAACRcJGIAACRuJGgAACRuKiwAACRuKiwAACRuKiwAACRuKiwAACRuKiwAACRuKiwAAClmKWwAACpEKkoAACpEKkoAACpEKkoAACpEKkoAACpEJHQAACpEKkoAACpEKkoAACSGKfwAACSGJJIAACSGKfwAACSGKfwAACSGKfwAACR6JIAAAB6kKfwAACSGJUYAACSGKfwAACSGKfwAACSGKTAAACSGKfwAACSGKfwAACSGKfwAACSGKfwAACSGKfwAACoCKggAACoCKTAAACoCKTAAACSeJIwAACoCKggAACoCJJgAACoCJJIAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCJJIAACoCJJgAACoCKggAACoCKTAAACoCKggAACSeJKQAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKggAACoCKTAAACS8JMIAACSqJLAAACS8JMIAACS8JLYAACS8JMIAACS8JMIAACTIJM4AACTIJM4AACTyJOYAACTyJOYAACTyJOYAACTUJNoAACTUJNoAACTyJOYAACTyJOAAACTyJOYAACTyJOYAACTyJOYAACTyJOYAACTyJOYAACTyJOYAACTyJOYAACTyJOYAACTyJPgAACTyJPgAACTyJPgAACTyJPgAACTyJOwAACTyJPgAACTyJPgAACTyJPgAACTyJPgAACTyJPgAACTyJPgAACTyJPgAACTyJPgAACT+JegAACT+JegAACT+JegAACT+JdwAACT+JegAACT+JegAACT+JegAACT+JegAACT+JegAACT+JegAACT+JegAACT+JegAACT+JegAACT+JegAACUEJQoAACUiJRwAACUiJRwAACUQJRYAACUiJRwAACUiJRwAACUiJRwAACUiJRwAACUiJRwAACUiJRwAACUiJRwAACUiJRwAACUiJSgAACi4JUwAACi4JS4AACi4JS4AACVeJWQAACU0JToAACi4JUAAACi4JUYAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACi4JUwAACVeJuoAACVeJVIAACVeJWQAACVeJVgAACVeJWQAACVwJXYAACVwJXYAACVwJWoAACVwJXYAACWOJZQAACWOJXwAACWOJZQAACWOJZQAACWOJYIAACWO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BE8LAAABBHQAAAABBHkJAgABBhwAAAABBiEJAgABBfgAAAABBf0JAgABBkIAAAABBkYJAgABBiIAAAABBiYJAgABBbgAAAABBb0JAgABBdMAAAABBdgJAgABB+4AAAABB/IJAgABB5sAAAABB6AJAgABB7cAAAABB7wJAgABB94AAAABB+IJAgABBvYAAAABBvoJAgABBxwAAAABByEJAgABBBoAAAABBB4JAgABAX8LAAABAZkLAAABAncAAAABAnoLAAABArUAAAABArcJAAABAzoJAAABAxMAAAABAxYJAAABBS4AAAABBTAJAAABBNsAAAABBN4JAAABBPcAAAABBPoJAAABBR4AAAABBSAJAAABBFwAAAABBF4JAAABA4IAAAABA2IAAAABA2QJAAABAYwLAAABApgLAAABArILAAABBGQAAAABBGYJAAABBDYAAAABBDgJAAABBlIAAAABBlUJAAABBgUAAAABBgcJAAABBhcAAAABBkAAAAABBkIJAAABBV8AAAABBWIJAAABBYYAAAABBYgJAAABBKkJAAABBIYAAAABBIkJAAABAqUJAAABAqIAAAABAqULAAABBLsJAAABAZQLAAABA5gAAAABAd4JAAABBRULAAABBAwLAAABBBkLAAABBDwAAAABBDwJAAABA/8LAAABBEMJAAABBAwJAAABBEALAAABBE0LAAABBFoLAAABBNIAAAABBNIJAAABBPgAAAABBPgJAAABBVYAAAABBVYJAAABBu4AAAABBu4JAAABBosAAAABBosJAAABBiUAAAABBiUJAAABBkUAAAABBkUJAAABBUIAAAABBUIJAAABBI8AAAABBI8JAAABB9UAAAABB90JAAABA5ALAAABA40JAAABBcYJAAABBRYJAAABA50LAAABA7IAAAABA5AJAAABA7kAAAABA5cJAAABA98AAAABA74JAAABA6cLAAABA5P/8gABBBALAAABA/YLAAABBAMLAAABBAP//AABBAMJAAABBDb//AABBDYJAAABBB0LAAABBaYLAAABBb8LAAABBbIABgABBbIJAAABBAkLAAABA+8LAAABA/wLAAABBjAAAAABBjAJAAABBZcAAAABBZcJAAABB08AAAABB08JAAABB/IAAAABB/IJAAABBzAAAAABBzAJAAABBc4AAAABBc4JAAABBbYAAAABBbYJAAABA7sLAAABA6kAAAABA1IJAAABAzgJAAABAzQAAAABBPYJAAABBOoHAAABA5IJAAABA3gJAAABA4UHAAABA4UJAAABA4QAAAABBCgHAAABA2wJAAABA3kAAAABAtUHAAABA3gAAAABAxIIAAABA3MAAAABAw0IAAABA1gJAAABAz4JAAABA0sAAAABAmIJAAABAn4JAAABAdwAAAABAm8JAAABA2v9tgABA3UJAAABBWT+AAABA2wHAAABAXsLAAABA24AAAABAXsJAAABAZoAAAABAZgJAAABAXMJAAABAY0JAAABAYD9hwABAW39hwABAW0HAAABATD9ugABAX4HAAABA1D9iAABA28HAAABAY0LAAABA0MAAAABAYAJAAABBOj+AAABAzAHAAABAdoAAAABAdoJAAABAYkAAAABAewAAAABAZsJAAABA8IAAAABA3IJAAABAdkAAAABAYgJAAABAYsLAAABAc8AAAABBRMJAAABA58AAAABA58HAAABA20AAAABA2AG/gABA20JAAABA1MJAAABA2D//gABA20I/gABAYr9zgABA8sHAAABA84JAAABAYH9zgABA8IHAAABBXT9zgABAzMHAAABAkUAAAABAwAHAAABAoMJAAABAnYHAAABAoYJAAABAYEAAAABAnkHAAABAyAAAAABAw4AAAABAwsHAAABAmD+kAABAfoHAAABAeYIKwABAmQAAAABAeYKKwABA24JAAABA/IAAAABA7MHAAABA2EJAAABA3oJAAABA24HAAABA2oJAAABA3cJAAABA7YAAAABA3cHAAABAzkJAAABAzkAAAABAzkHAAABBK0JAAABBKAJAAABBLoJAAABBKYAAAABBK0HAAABAygJAAABBSL/5QABA0UHAAABA0MJAAABAyoJAAABAzYJAAABAzsAAAABBF8IwAABA64LAAABBRT/5QABAzYHAAABAzAJAAABAyUAAAABAyMHAAABBMkAAAABBMMAAAABBUsAAAABBLcAAAABBUoAAAABBvcAAAABBqUAAAABBl4AAAABBoUAAAABBf8AAAABBiYAAAABBEgAAAABA+IJAAABBZIJAAABA+ILAAABBDH/AAABBcn/AAABCEkAAAABBOoJAAABA9kJAAABA9cAAAABA/kJAAABA+QJAAABAxsHAAABAZYJAAABA1oHAAABAyAJAAABBRYHAAABAzgAAAABA7YHAAABBIAHAAABAwkHAAABA6H/8gABA5oJAAABA18IBQABBCsAAAABBCsJAAABBD4ABQABBEIJAAABA0YAEAABA2UJAAABA4YAAAABA4QJAAABArwJAAABA0UJAAABAvEJAAABAsAJAAAB+1wJAAABCSMJAAABCFQAEAABCHMJAAABA8kJAAABBE0AAAABBE0JAAABB7AJAAABB74AAAABB5IAEAABB7EJAAABB5oAAAABB54JAgABCT0JAAABB4sAAgABB5EJAAABB9QAAAABBhoJAAABB8oJAAABB8QAAAABB6IJAAABB4oAAAABB4cJAAABBzkAAAABBvIJAAABB5wAAAABB6YAEAABB8UJAAABB7YABQABB7oJAAABB6gJAgABCU0JAAABB3IAAgABB3gJAAABB8AAAAABBgYJAAABB6UAAAABB6YJAAABB6MJAAABB7MAAAABB5IJAAABB6v/8gABB6MAAAABB6UJAAABB6T//AABB6QABgABB6QAAgABB6QAAAABB6QJAAABB6IAAAABB6gJAAABBfz//gABBDkLAAABBDkJAAABA/0AAAABA8cJAAABA8UJAAABBDEJAAABA0kAAAABAY4JAAABBAwAAAABA8sAAAABA+QLAAABA/wAAAABA/wJAAABCFoAAAABBTcKqgABA6UJAAABA6ULAAABBfgJAAABBfgLAAABA4MJAAABA6wAAAABA3YLAAABA8MAAgABA9YLAAABA64JAAABBSYAAAABBSYHAAABA0AJAAABA0AHAAAB/I4JDAABA18HAAABA5oHAAABA50HAAABAzcAAAABAzcHAAABA2b9tgABAsUJAAABA1sJAAABA2gHAAABA0QJAAABA2AJAAABAXwAAAABAXoHAAABA0IAAAABAYcJAAABBB0AAAABBB0JAAABA4MAAAABAz0JAAABAYoAAAABAYwJAAABBQgAAAABBQgJAAABA0sHAAABA1AAAAABA0sJAAABAyIAAAABAyIHAAABAYIAAAABAYAHAAABBEgJAAABA/7/AAABA04JAAABA9kLAAABAwkJAAABA2kJAAABArgHAAABA+0AAgABA+0JAAABAygAAAABAygHAAABAyYAAAABA1sHAAABAyYHAAABA20HAAABA2AAAAABA2AHAAABBSQAAAABBSMHAAABAZYHAAABAyAHAAABAX8AAAABAX4JAAABAywHAAABA3QAAAABAw4IAAABBQYAAAABBQYHAAABB4QAAAABBIAJAAABAukHAAABAukJAAABBNQHAAABBNQJAAABl3AABAAABUZUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQATsJOwk7CTsJOvE68TrxOvE68TrxOvE68TrxPgk68UGxPgk+CT4JPgk+CT4JPgk+CU2pcEE+MTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwlYWTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwlJeUVZRbFYWUNhQ2FDYUNhQ2FDYUNhQ2FDYUNhWZlYWVhZWFlYWVhZWFlYWZBhWFk/gT+BidF1YVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWlE6GToZUPFrQVhZWFk6GToZbHlYWVTKa2k6GVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFk+aT5pPmk+aT5pU5lQeUy5TLlQeVB5UHlQeUy5UHljmZk5XfmXYaU5pTmlOaU5p2GbIYahWwlYWVhZWFlYWVhZWFlYWVvBWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFmGoT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JbbFtsW2xbbFtsT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk7CUYJQflB+UFBQflBQUFBPgmJ0iCZufGJ0cpx/ynNafYZidHQYauxidE+aYnRPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pk9GT0ZPRk9GT0T5pX8llqWbBUgFReVF5UXlReVF5UgFEyUJBQkFEyUTJRMmOuZ0Ji2mLaYtpjrmhGYtpnxGhGaEZjrmOuY65jrmOuY65jrmOuY65jrmOuY65jrk+oT6hPqE+oT6hPqE+oT6hPqE+oT6hRRFFEUURRRFFEUURRRFFEUURRRLYiUURRRKg4UURRRFFEUURRRFFEUURRRFFEUURfClFEUURRRFFEUURRRFFEUQ5RRFFEUURRDlEOUQ5RDlD8UPxQ/FD8UPxQ/FD8UPxQ/FD8VhZQ/FD8VhZQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UkhSSFJIYBxSSFJIUkhOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJWFmuCepBWFlUMVhZWFlYWVhZWFlNqU2pTalu+UQ5RDl9kUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ6fRFEOUZhRDlEOUQ5RDlEOUQ5gHFCiUKJQolGuXwpOYmwYTmJOYk5iTmJOYk5iTmJOYlFEUURRRFFEXwpfClD8Vx5OYlFEUURRRFFEUURRRFFEUURRRGGoYahgenB6dNZhQmGoT+BhqGDcbK5xMG1EYahhqG8mdmJ1nG/QYUJhqGGoT+BP4E/gYahgemGoYahhqGGodzBlZmGoYahhqFBeUF5QXlBeUF5QXlBeUURWFle4WShWFk/gVjxXuFUyVhZWFlYWVTK/yrroxLxWFlYWVhZP4FYWVhZWFlYWVhZWFlYWVhZWFlFEUURdWE5iUURRRFFEUUResE/gXwpRRFFEUURRRFFEUURRRFFEYahSSF++X75SSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSKO+UkhRxFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFEOUKJSSFJIUkhSSFJIUkhOYk5iceZSklKSUURRRFKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSeFKSbdpSklKSbdpSkk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7OT+BP4E/gX2RP4E/gT+BP4E/gT+BP4Ky2sWxP4FD8UPxQ/FD8g7RVWFD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8V0xXTFdMV0xQ/FioU0xYqFioT7ZPtk+2T7ZPtk+2T7ZPtlioWKhQomjIWKhYqFioWKhYqFioWKhYqFgsWKhYqFioWKhYqFCiWKhTalwQU2pcEFwQU2pTalNqU2pcYlxiXLSJsJSeUqxPgmSGT4KGoFfyTmhidGJ0TthqYlQeVB5WFk+CY65Sxk7YVhZRRFFEVhZO2FJIVhZSSFJIUkhPgk68VhZX8lOIUkhSSE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RO7FLgTuJObk5uUQ5Obk5uTm5Obk5uTm5Obk5uTm5Obk5uXQZO7FC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtHtyTvZ5slJIUkhSSFJIfqRQxlD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FJIUkhP0k50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdGjIToBOwlEgUSBRIE56ToBRRE/gUF5SSFBeUF5QXlFET+BP4FFET+BRRE/gUSBRRE/gUURVflJIT+BRRFFET+BRRFFET+BhqFJIUkhRRE7CUQ5P4FEOWKhOwln2WjxR2k6GUNhOvE68TsJP/E/uU6ZS+tAcTwBR8E/8UApPCk6Mi4pPFHf+fHhiDlAYUCZOwlA0Tx5PKE8oTyhPMk88Y0RWFoEQU+JT4lFEU+JTFFqGT0ZPRlMUWoZVpFWkWoZdrl2uXgRV8FXwjXBPRk9QUgZPUFIGT1qPlk94T3hPeE94VcpT4njYU+JPeE94U8RPeE94T3hPeFPiU+JT4k94T3hT4k6SyjpPZE9kUEJQQoJeTphPgk6YT2SFIk9kT2RPZE9kVhZQUF5aTp5OpFIcVKJSHE6kUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6k6qVMROqlDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUhxSHFIcUhxSHFIcUhxYalIcUhxOsE9uUhxOtlIyU+JT4lPiT3hPeFPiU+JT4k94T3hPgk+CVhZWFlYWVhZWFk7CTsJWFteO4XxOwk7CTrxOvE+CYnReWlD8VhZPgpIIYnRjrmOuVABUAFEyUTJidFYWUFBOvGJ0UTJidFQeUkhRDlFEUUROwk7CUSBRIFEgUURRRFFEWKhQXk7CUURYqFJIUkhWFlXwVhZWFlfyV/JRMlYWVhZWFlEyVhZWFlYWVhZgHFJIUkhRIE7IUURSSFFEUkhidFEgUTJYqFioUUQAAuDUAAQAAOu8494AZgBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yAAAAAD+6P+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP9wAAD/uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q/+gAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAP/NAAAAAP63/5AAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAA/1H/x//a/3D/oP+7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2D/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/40AAAAAAAAAAAAAAAD/g/+lAAAAAAAAAAAAAP+iAAAAAAAAAAAAAAAAAAAAAP+NAAAAAP+zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAA//D/kP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/uAAA/6AAAAAAAAAAAP9A/6AAAP8w/wQAAAAA/3D/3AAGAAD/0AAAAAAAAAAAAAD/AAAA/wIAAP9A/zD/MAAAAIAAAAAAAAAAAP/jAAAAAP8g/vAAAAAAAAAAAP7gAAAAAAAA/6D/oP/k/6D/OAAA/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8YAAAAA/4D/cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEb/kwAAAAD/mgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/mgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAAAAP7I/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3D/5v/0/3AAAP/ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIP/wAAAAAAAAACYAAAAAAAAAAAAA/+7/oP/SAAAAAP/rAAAAAAAAAAAAAP/zAAAAAAAAAAD/9QAAAAD/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAA//AAAAAAAAAAAAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAD/IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/IP9g/6X/BP9z/zD/MP9QAAAAAAAAAAD/rQAAAAD/MAAAAAAAAAAAAAAAAP+AAAAAAAAAAAD/sP9QAAAAAP+6AQD/AAAA/6AAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAA/pD/cAAAAAAAAP6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/sH/kP+D/zD/gP7Y/5AAAAAAAAAAAACA/6YAAP7w/0D/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAP9QAAAAAAAAAAAAAAAAAAAAAAAA/0AAAAAAAAAAAP8A/1AAAAAA/+j+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zQAAAAD/QP/G/9UAAAAAAAAAAP+g/6AAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHD/UAAAAAD/hQAAAAAAAAAAAAAAAAAAAAD/oABYAAAAAAAA/5AAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+4AAAAAP+Q/8b/1QAAABgATQAAAAD/YP/TAAAAAAAAAAAAAAAAAAAAAAAAAAD/oABQAAAAAAAYABgAAAAAAAAAAP9gAAAAAAAAAE0AAAAAAAAAAAAAAAAAAP9QADAAAAAAAAAAAAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/pv+tAAAAAAAAAAAAAP9tAAAAAAAAAAAAAAAAAAAAAP/G/8AAAP/GAAD/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAP+6//MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/GAAAAAAAAAAAAAAAAAAAAAP+6AAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1D/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/6AAD/rgAA/+oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MP8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+j/cP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAP+QAAAAAP7wAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAA/0D/oAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/aAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9QAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAAAAAAAAAAAAAAAA/6sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xgAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAA/6IAAAAAAAAAAAAAAAAAAAAAAAD/ZgAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAD/jQAAAAAAAP+g/5AAAAAAAAAAAP+GAAD/oAAAAGAAAP/vAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAP/WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/tAAAAAAAAAAAP+gAAAAAAAAAAD+cAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAAAAAAAAAAAAAAAAAGAAAAAAAAP9g/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAP+t/6gAAAAAAAAAAABg/9MAAAAAAAAAAAAAAAAAAABg/8AAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAP/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+wADMAAAAAAAD/QP/AAAD++v8B/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/lAAAP8jAAAAAP+N/vAAAAAAAAAAAAAAAAAAAAAAAAD/AP6QAAAAAAAAAAD/kAAAAAAAAP9QAAAAAP+A/xwAAP8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yAAAAAAAAP/T/8gAAAAAAAAAAAAA/7r/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/hQAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAA/5AAAAAAAAAAAP6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAP8T/6b/1wAAAAAAAAAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAA/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8cAAAAAAAAAAP/5AAAAAAAAAAAAAP+w/8AAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2gAAAAD/QAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAD/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MAB4AAAAAAAA/6AAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9RAAD/jf7w/5P/VgAAAAAAAAAAAAAAAP/GAAD/UP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8P7wAAD/UAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAD/YAAAAAAAAAAA/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1r/oP+N/zD/mv9aAAAAAAAAAAAAAAAA/8YAAP9Q/6AAAAAA/+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAP9wAAAAAAAAAAAAAAAAAAAAAAAA/vAAAAAAAAAAAP9gAAAAAAAAAAD+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/KAAAAAP+g/9P/yAAAAAAAAAAAAAsAAP/IAAAAAP/OAAAAAAAAAAAAAP/OAAAAAAAaAAAAAAAAAAAAAAAAAAABIP9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9gAAAAAAAAAAD/kAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAACQAAAAAAEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAD/YADwAAAAAAAAAAAAAABwAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xQAAAAAAAAAA/6AAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5gAAAAA/iD+0AAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAD+0P/O/7AAAP94/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5wAAAAAAAAAAAAAAAAAAAAD/5//aAAAAAP+Q/+YAAP8A/8D/7f+g/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAP9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAA/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+gAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/QP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/LgAAAAAAAAAAAAAAAAAA/6z+4wAAAAAAAAAAAAD+6AAAAAAAAAAAAAD/cP8AAAAAAAAA/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/rAAAAAAAAAAAAAAAAAAAAAAAAP9w/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9Q/8QAAP6AAAD/YP+QAEAANP9QAAAAAP+6/1D/YP9AAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6gAAD/YP9QAAAAAP+AAAAAAAAAAAAAAP6JAAD/cP9QAAD/EAAA/+AAAAAA/fAAAAAAAAD+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/k//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAA/1D/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAD/oAAAAAD/AP6QAAAAAAAAAAAAAP+QAAAAAAAAAAAAAP+gAAAAAP9Q/6D/oP9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAP+QAAAAAP8Q/4AAAP+gAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+UAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAP/w/zgAAP/gAAAAAAAAAAD/6AAAAAAAAAAA/+AAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP7Q/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+8AAA/wAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAA/0AAAAAA/qAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP5gAAAAAP8QAAAAAAAAAAAAAAAAAAAAAP7NAAD/UAAAAAAAAAAAAAAAAAAA/qAAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAIAAAAEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAP7w/yAAAAAAAAAAAP7wAAD/oAAA/6D/oAAA/6AAAAAA/oAAAAAAAAAAAP+gAAAAAAAAAAD/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAABwAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAMAAYAAAAAAAAAAAAHAAAABgAAAAAAAAAAAAAAAAAAAAYACgABgAeABgAAAAAAAAAAAAAAAAAAAAAACAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/4/+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MABgAAAAAAAAAAAAAAAAAAAAAP8g/1AAAAAA/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGABIAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9QAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAA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BAD/OgQC/8YEFP+zBRf/rQAHAuAAYANiAGAFNf9QBYf/oAWO/4gFrv+gB6v/YAAHAqoAYAK3AHAFh/+ABY7/QAWo/3AFrv+gBcH/oAAIAMgAYAEhAGACtwBgAtQAYALVAHADiABgB4MAYAeLAGAACAK3AIAFE/+gBTD/cAU4/6AFTf+eBVAAGAWH/6AFjv8wAAgCtwBwBRP/oAUw/3AFOP+gBU3/ngVQABgFh/+gBY7/MAAIBeP/4wXm/+AF5/+TBej/7QXp/+MF6gAlBev/5QXs/+0ACAYf/+YGIv/jBiP/ngYk/+8GJf/mBiYAIgYn/+gGKP/vAAkCqgBgArcAcAWH/4AFjv9ABaj/cAWu/6AFwf+gBwb/8AcH//AACQKeAGACsQBgArIAYAKzAGACtgBgArcAgAK4AGADXQBgBRcAgAAJAMYA4ADHAIAAyQBwArUAYAK3AHAC4ACAAuEAYANiAIAFqQBgAAkAyABgASEAYAGb/zABov8wAaP/MAK3AHAC1QBgB4MAYAeLAGAACQOl/4gFcP8wBXH/MAV7/y4FfP8uBX3/LgWo/6AFqf9wBcX/YAAJA+H+4AP/AJAEDf9QBBT/cAS7ALAE0f9wBNf/oATd/5AHq/7wAAkBmv/aAZv/2gPh/6YEAP86BAL/xgQU/7MFF/+tBwYAPAcHADwACQGa/6ABnf+gAZ7/oAGf/6ABoP+gAaL/kAGj/5AD4f9QBBT/cAAJAMYA4ADHAIAAyQBwArUAYAK3AGAC4ACAAuEAYANiAIAFqQBgAAoAigC4ATUAuAK8ALgCvQC4AsMAuALGALgCxwC4AsgAuALJALgC/AC4AAsAxgDgAMcAgADJAHACtQBgArcAYALgAIAC4QBgA2IAgAWpAGAHBv/IBwf/vAALAMYA4ADHAIAAyQBwArUAYAK3AGAC4ACAAuEAYANiAIAFqQBgBwYCTAcHAkwACwDGAOAAxwCAAMkAcAK1AGACtwBgAuAAgALhAGADYgCABakAYAcG/uIHB/7iAAsAxgDgAMcAgADJAHACtQBgArcAYALgAIAC4QBgA2IAgAWpAGAHBv/VBwf/1QALAIoAeAE1AHgCvAB4Ar0AeALDAHgCxgB4AscAeALIAHgCyQB4AvwAeAWpAGAADAGb/zABov8wAaP/MAKeAGACqQBgAqoAYAKrAGACsgBgArMAYAK3AHACuABgAsEAYAAOAdv/oAHd/6AB3v+gAd//oAVR/3AFdP9ABYf/UAWa/5AFqP6QBa3/kAWu/6AFuf+ACIT/gAiF/4AADgDGAOAAxwCAAMgAYADJAHABIQBgArUAYAK3AGAC1QBgAuAAgALhAGADYgCABakAYAeDAGAHiwBgAA4CCP+QArcAcAMJ/4AFE/+gBTD/cAU4/6AFQ/+gBU3/SgVQABgFh/+QBY7/MAWW/5AFqP9QBan/IAAPAFUAYAGb/1ABoQBgAaL/UAGj/1ACngBwArEAcAKyAIACtwBgArgAcAVN/2AFff8wBY7/oAWo/5AFqf8gAA8AqQCABIAAYASHAGAFE/9gBjkAAAY6AAAGOwAABjwAAAY9/7sGPgAABj8AAAZAAAAGQQAABkIAAAZQAAAADwBVAGABm/9QAaEAYAGi/1ABo/9QAp4AcAKxAHACsgCAArcAcAK4AHAFTf9gBX3/MAWO/6AFqP+QBan/IAAQAdv/oAHd/6AB3v+gAd//oAVR/3AFdP9ABYf/UAWa/5AFqP6QBa3/kAWu/6AFuf+ABwYAuAcHALgIhP+ACIX/gAAQAMYA4ADHAIAAyABwAMkAcAEhAHACtQBgArcAYALUAGAC1QBwAuAAgALhAGADYgCAA4gAYAWpAGAHgwBwB4sAcAARAgj/kAK3AIADCf+ABRP/oAUw/3AFOP+gBUP/oAVN/0oFUAAYBXv/oAV8/6AFff+gBYf/kAWO/zAFlv+QBaj/UAWp/yAAEQII/5ACtwBwAwn/gAUT/6AFMP9wBTj/oAVD/6AFTf9KBVAAGAV7/6AFfP+gBX3/oAWH/5AFjv8wBZb/kAWo/1AFqf8gABECpwBgAqgAYAKsAGACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAgAK5AGACugBgArsAYALAAGACwgBgBN4AYAASAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AIACuQBgAroAYAK7AGACwABgAsIAYANdAGAE3gBgABIDh/+AA///kARS/1AEa/9ABH//QASB/1AEu/9gBOX/oAUT/vAFGP+QBTD/QAU4/0AFQ/9gBUv+oAVN/nAFjv7wBZr/gAWp/5AAEwCKAOIAxgDgAMcAgADJAHABNQDiArUAYAK3AGACvADiAr0A4gLDAOICxgDiAscA4gLIAOICyQDiAuAAgALhAGAC/ADiA2IAgAWpAGAAEwCKADoAxgDgAMcAgADJAHABNQA6ArUAYAK3AGACvAA6Ar0AOgLDADoCxgA6AscAOgLIADoCyQA6AuAAgALhAGAC/AA6A2IAgAWpAGAAFAKnAGACqABgAqwAYAKtAGACrwBgArAAYAKxAGACtABgArUAYAK2AGACtwCAArkAYAK6AGACuwBgAsAAYALCAGADXQBgBN4AYAVN/5AFqf+QABQBmf+AAZr/gAGb/4ABnP+AAZ3/gAGe/4ABn/+AAaD/gAGh/4ABov+AAaP/gAGk/4AEDP+ABBH/gAQU/4AEJP+ABvH/gAer/4AHrP+AB8f/gAAUAZn/kAGa/5ABm/+QAZz/kAGd/5ABnv+QAZ//kAGg/5ABof+QAaL/kAGj/5ABpP+QBAz/kAQR/5AEFP+QBCT/kAbx/5AHq/+QB6z/kAfH/5AAFAGZ/6ABmv+gAZv/oAGc/6ABnf+gAZ7/oAGf/6ABoP+gAaH/oAGi/6ABo/+gAaT/oAQM/6AEEf+gBBT/oAQk/6AG8f+gB6v/oAes/6AHx/+gABQBmf7wAZr+8AGb/vABnP7wAZ3+8AGe/vABn/7wAaD+8AGh/vABov7wAaP+8AGk/vAEDP7wBBH+8AQU/vAEJP7wBvH+8Aer/vAHrP7wB8f+8AAUA+H/gARs/6AEbf+gBG7/oARv/6AEcP+gBHH/oARy/6AEc/+gBHT/oAR1/6AEdv+gBHf/oAR4/6AEef+gBHr/oAR7/6AEfP+gBH3/oAWpAMAAFQGZ/4ABmv+AAZv/gAGc/4ABnf+AAZ7/gAGf/4ABoP+AAaH/gAGi/4ABo/+AAaT/gAK3AHAEDP+ABBH/gAQU/4AEJP+ABvH/gAer/4AHrP+AB8f/gAAVAZr/oAGd/6ABnv+gAZ//oAGg/6ABof+gAdv/oAHd/6AB3v+gAd//oAUU//AFF/+0BRj/rQUZ/9oFMf/aBTX+2QZm/oAGkf+gB6v/oAiE/oAIhf6AABUBmv+gAZ3/oAGe/6ABn/+gAaD/oAGh/6AB2/+gAd3/oAHe/6AB3/+gBRT/8AUX/7QFGP+tBRn/2gUx/9oFNf7ZBmb+gAaR/6AHq/+gCIT+AAiF/oAAFQHV/6AB1v+gAdf/oAHY/6AB2f+gAdr/oAHb/6AB3P+gAd3/oAHe/6AB3/+gAeD/oAHh/6AB4v+gAeP/oAHo/6AB6f+gAez/oAQJ/6AHr/+gB7D/oAAWAZn/cAGa/3ABm/9wAZz/cAGd/3ABnv9wAZ//cAGg/3ABof9wAaL/cAGj/3ABpP9wAdb/cAP7/6AEDP9wBBH/cAQU/3AEJP9wBvH/cAer/3AHrP9wB8f/cAAWAZn/MAGa/zABm/8wAZz/MAGd/zABnv8wAZ//MAGg/zABof8wAaL/MAGj/zABpP8wAdb/cAP7/6AEDP8wBBH/MAQU/zAEJP8wBvH/MAer/zAHrP8wB8f/MAAWAZn/IAGa/yABm/8gAZz/IAGd/yABnv8gAZ//IAGg/yABof8gAaL/IAGj/yABpP8gAdb/kAP7/5AEDP8gBBH/IAQU/yAEJP8gBvH/IAer/yAHrP8gB8f/IAAXAZn/cAGa/3ABm/9wAZz/cAGd/3ABnv9wAZ//cAGg/3ABof9wAaL/cAGj/3ABpP9wAdb/cAK3AGACxf+ABAz/cAQR/3AEFP9wBCT/cAbx/3AHq/9wB6z/cAfH/3AAFwGZ/yABmv8gAZv/IAGc/yABnf8gAZ7/IAGf/yABoP8gAaH/IAGi/yABo/8gAaT/IAHW/3ACtwBgAsX/gAQM/yAEEf8gBBT/IAQk/yAG8f8gB6v/IAes/yAHx/8gABgAVQBgAF4A0AB5ANAAqgDQAK4A0AE1ANABNwDQATwA0AE9ANABiQDQAaEAYAKeAHACrwBgArEAYAKyAHACswBgArYAYAK3AJACuABgAsX/YALGAGADXQBwBRcBAAahANAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwCQArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwBwArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwBgArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQHF/6ABxv+gAcf/oAHI/6AByf+gAcr/oAHL/6ABzP+gAc3/oAHO/6AD4f8AA/v/oAQj/6AEQv+gBVD/oAVp/1AFav+gBW7/UAVv/6AFdP+gB6v/QAiR/6AIlP+gCJr/oAib/6AAGQII/5ACF/+QAmX/cAMI/3ADCf9wA4T/cAOF/5ADqf9wA7f/oAPO/5AD0P+QA9H/kAPW/40D1/+NA9j/kAUT/0AFMP+gBU3/IAVR/3MFff8QBYD/kAWH/yAFjv8gBan/YAWu/6AAGgEL/rACSP9gAkn/YAJU/2ACV/9gAl7/YAJh/2ACYv9gAmb/YAKD/2ACsP+YArcAgAMP/2ADQ/9gBCf/YAUT/0AFMP9QBX3+8AWH/3AFif9QBY7+4AWW/4AFqP9wBa7/kAXB/6AIpP9gABoBCf9QAQr/UAEL/1ABDP9QAQ3/UAHFABgBxgAYAccAGAHIABgByQAYAcoAGAHLABgBzAAYAc0AGAHOABgCtwBwA/sAGAQjABgFUAAYBXv/kAV8/5AFff+QCJEAGAiUABgImgAYCJsAGAAaAQv+sAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/5gCtwBwAw//YAND/2AEJ/9gBRP/QAUw/1AFff7wBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAGwDGAOAAxwCAAMkAcAK1AGACtwBgAuAAgALhAGADYgCABakAYAWqAHAFqwBwBbMAcAW6AHAFuwBwBbwAcAW9AHAGOQCABjoAgAY7AIAGPACABj0AgAY+AIAGPwCABkAAgAZBAIAGQgCABlAAgAAbA+D/kARC/3AEgP+gBIf/QAVR/9MFUv/TBV7/0wWH/9MFiv+gBYz/oAWO/1AFlP/TBZX/0wWX/9MFmv/TBaH/0wWi/9MFpP/TBaf/0wWo/9MFrv+gBq3/0wau/9MGr//TBsT/0wbF/9MGxv/TABwCCP+QAhf/kAJl/3ACtwBwAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA87/kAPQ/5AD0f+QA9b/jQPX/40D2P+QBRP/QAUw/6AFTf8gBVH/cwV7/6AFfP+gBX3/oAWA/5AFh/8gBY7/IAWp/2AFrv+gABwAVQBgANAAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKrAGACrACAArIAcAKzAHACtQBwArcAYAK4AGACxgBwAuAAgALhAGADXQBgA2IAgAOAAGAE8ABgBPIAYAT7AGAFRQB4BUcAeAVJAHgFqQBwAB0B2/+gAd3/oAHe/6AB3/+gBVH/fQVS/9MFXv/TBXT/QAWH/2oFlP/TBZX/0wWX/9MFmv+gBaH/0wWi/9MFpP/TBaf/0wWo/vYFrf+QBa7/oAW5/4AGrf/TBq7/0wav/9MGxP/TBsX/0wbG/9MIhP+ACIX/gAAeAdv/oAHd/6AB3v+gAd//oAVR/3AFUv/GBV7/xgV0/0AFh/9dBZT/xgWV/8YFl//GBZr/gAWh/8YFov/GBaT/xgWn/8YFqP7qBaz/gAWt/4AFrv+gBbn/gAat/8YGrv/GBq//xgbE/8YGxf/GBsb/xgiE/4AIhf+AAB4B2/+gAd3/oAHe/6AB3/+gBVH/gwVS/9oFXv/aBXT/QAWH/3AFlP/aBZX/2gWX/9oFmv+WBaH/2gWi/9oFpP/aBaf/2gWo/v0FrP+gBa3/oAWu/6AFuf+QBq3/2gau/9oGr//aBsT/2gbF/9oGxv/aCIT/gAiF/4AAIAEJ/5ABCv+QAQv/kAEM/5ABDf+QAkj/YAJJ/2ACVP9gAlf/YAJe/2ACYf9gAmL/YAJm/2ACg/9gArD/mAK3AIADD/9gA0P/YAQn/2AFE/9ABTD/UAV7/5AFfP+QBX3/kAWH/3AFif9QBY7+4AWW/4AFqP9wBa7/kAXB/6AIpP9gACABCf+gAQr/oAEL/6ABDP+gAQ3/oAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/5gCtwBwAw//YAND/2AEJ/9gBRP/QAUw/1AFe/+gBXz/oAV9/6AFh/9wBYn/UAWO/uAFlv+ABaj/cAWu/5AFwf+gCKT/YAAgAQn/oAEK/6ABC/+gAQz/oAEN/6ACSP9gAkn/YAJU/2ACV/9gAl7/YAJh/2ACYv9gAmb/YAKD/2ACsP+YArcAgAMP/2ADQ/9gBCf/YAUT/0AFMP9QBXv/oAV8/6AFff+gBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAIQBVAGABmQDQAZoA0AGbANABnADQAZ0A0AGeANABnwDQAaAA0AGhANABogDQAaMA0AGkANACngBwArEAcAKyAIACtwBwArgAcAQMANAEEQDQBBQA0AQkANAFTf9gBXv/MAV8/zAFff8wBY7/oAWo/5AFqf8gBvEA0AerANAHrADQB8cA0AAiAdX/oAHW/6AB1/+gAdj/oAHZ/6AB2v+gAdv/oAHc/6AB3f+gAd7/oAHf/6AB4P+gAeH/oAHi/6AB4/+gAej/oAHp/6AB7P+gBAn/oAVR/3AFav+QBW//kAV0/5AFh/9QBZr/kAWo/pAFrP+ABa3/gAWu/6AFuf+AB6//oAew/6AIhP+ACIX/gAAiAdX/oAHW/6AB1/+gAdj/oAHZ/6AB2v+gAdv/oAHc/6AB3f+gAd7/oAHf/6AB4P+gAeH/oAHi/6AB4/+gAej/oAHp/6AB7P+gBAn/oAVR/3AFav+gBW//oAV0/6AFh/9QBZr/kAWo/pAFrP+gBa3/oAWu/6AFuf+gB6//oAew/6AIhP+ACIX/gAAiArcAcAQK/3AEDf+gBBT/kAS+/6AE0f9QBNf/YATd/4AE/v+gBRP/kAVR/zoFUv86BV7/OgWH/zoFiv9wBYz/cAWO/3AFlP86BZX/OgWW/4AFl/86BZr/oAWh/zoFov86BaT/OgWn/zoFqP9wBa7/gAat/zoGrv86Bq//OgbE/zoGxf86Bsb/OgAlAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA83/kAPO/5ADz/+QA9D/kAPR/5AD0v+QA9P/kAPU/5AD1f+QA9b/kAPX/5AD2P+QBRP/QAUw/6AFTf8gBVH/cwV7/xAFfP8QBX3/EAV//5AFgP+QBYH/kAWC/5AFh/8gBY7/IAWp/2AFrv+gCIf/kAAlAFUAYACKAHABNQBwAaEAYAKeAHACpwBgAqgAYAKpAHACqgBwAqsAcAKsAGACrQBgAq8AYAKwAGACsQBwArIAcAKzAHACtABgArUAYAK2AGACtwBwArgAcAK5AGACugBgArsAYAK8AHACvQBwAsAAYALBAHACwgBgAsMAcALGAHACxwBwAsgAcALJAHAC/ABwBN4AYAAlAIoAYAE1AGACngBwAqcAYAKoAGACqQBgAqoAcAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAHACswBgArQAYAK1AGACtgBgArcAkAK4AGACuQBgAroAYAK7AGACvABgAr0AYALAAGACwQBgAsIAYALDAGACxgBgAscAYALIAGACyQBgAvwAYANdAHAE3gBgBakAYAAlAFUAYACKAHAA0ABgATUAcAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKpAGACqgBgAqsAcAKsAIACsgBgArMAYAK1AHACtwBwArgAYAK8AHACvQBwAsEAYALDAHACxgBwAscAcALIAHACyQBwAuAAgALhAGAC/ABwA10AYANiAIADgABgBPAAYATyAGAE+wBgBakAcAAlAFUAYABeANAAeQDQAKoA0ACuANABNQDQATcA0AE8ANABPQDQAYkA0AGhAGACngBwAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAKyAHACswBgArQAcAK1AHACtgBwArcAkAK4AGACuQBwAroAcAK7AHACwABwAsIAcALF/2ACxgBgA10AcATeAHAFFwEABqEA0AAoAIoAYAE1AGAB+P/VAp4AYAKnAGACqABgAqkAYAKqAGACqwBgAqwAYAKtAGACrwBgArAAYAKxAGACsgBgArMAYAK0AGACtQBgArYAYAK3AHACuABgArkAYAK6AGACuwBgArwAYAK9AGACwABgAsEAYALCAGACwwBgAsYAYALHAGACyABgAskAYAL8AGADXQBgBN4AYAVN/6oFjv+QBaj/oAAqAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA87/kAPQ/5AD0f+QA9b/jQPX/40D2P+QBRP/QAUw/6AFTf8gBVH/oAVS/9oFXv/aBX3/EAWA/5AFh/9TBY7/IAWU/9oFlf/aBZf/2gWa/9oFof/aBaL/2gWk/9oFp//aBaj/2gWp/2AFrv+gBq3/2gau/9oGr//aBsT/2gbF/9oGxv/aACoAVQBgANAAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKnAHACqABwAqkAYAKqAGACqwBgAqwAcAKtAHACrwBwArAAcAKxAHACsgBgArMAYAK0AHACtQBwArYAcAK3AKACuABgArkAcAK6AHACuwBwAsAAcALBAGACwgBwAsYAcALgAIAC4QBgA10AcANiAIADgABgBN4AcATwAGAE8gBgBPsAYAWpAHAAKgBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqcAYAKoAGACqQBgAqoAYAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAGACswBgArQAYAK1AGACtgBgArcAkAK4AGACuQBgAroAYAK7AGACwABgAsEAYALCAGACxgBwAuAAgALhAGADXQBgA2IAgAOAAGAE3gBgBPAAYATyAGAE+wBgBakAcAAtAFUAYABeANAAeQDQAIoAcACqANAArgDQATUAcAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAHACqABwAqwAcAKtAHACrwBwArAAcAKxAHACsgBwArMAYAK0AHACtQBwArYAcAK3AJACuABwArkAcAK6AHACuwBwArwAcAK9AHACwABwAsIAcALDAHACxf9gAsYAcALHAHACyABwAskAcAL8AHADXQBwBN4AcAUXAQAGoQDQAC0AVQBgAF4A0AB5ANAAigBwAKoA0ACuANABNQBwATcA0AE8ANABPQDQAYkA0AGhAGACngBwAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAKyAIACswBgArQAcAK1AHACtgBwArcAkAK4AHACuQBwAroAcAK7AHACvABwAr0AcALAAHACwgBwAsMAcALF/2ACxgBwAscAcALIAHACyQBwAvwAcANdAHAE3gBwBRcBAAahANAALQH4/9UCtwBwAtIAMANdAGADpAAwA6YAMAOnADADsQAwA7IAMAOzADADtAAwA7UAMAO2ADADtwAwA7gAMAO5ADADugAwA7sAMAO8ADADvQAwA74AMAO/ADADwAAwA8EAMAPCADADwwAwA8QAMAPFADADxgAwA8cAMAPMADAEtQAwBLwAMAS9ADAE0wAwBNQAMATtADAFTf+qBY7/kAWo/6AIRgAwCGcAMAk9ADAJ4AAwCeEAMAAvAgj/kAIX/5ACZf9wAtL/gAMI/3ADCf9wA4T/cAOF/5ADqf9wA7H/gAOy/4ADs/+AA7T/gAO3/6ADzf+NA87/lgPP/40D0P+WA9H/lgPS/40D0/+NA9T/jQPV/40D1v+NA9f/jQPY/5YEvP+ABL3/gATT/4AE1P+ABRP/QAUw/6AFTf8gBVH/cwV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/8gBY7/IAWp/2AFrv+gCIf/oAk9/4AALwII/5ACF/+QAmX/cALS/4ADCP9wAwn/cAOE/3ADhf+QA6n/cAOx/4ADsv+AA7P/gAO0/4ADt/+gA83/oAPO/6ADz/+gA9D/oAPR/6AD0v+gA9P/oAPU/6AD1f+gA9b/oAPX/6AD2P+gBLz/gAS9/4AE0/+ABNT/gAUT/0AFMP+gBU3/IAVR/3MFe/+gBXz/oAV9/6AFf/+gBYD/oAWB/6AFgv+gBYf/IAWO/yAFqf9gBa7/oAiH/6AJPf+AAC8CCP+QAhf/kAJl/3AC0v9QAwj/cAMJ/3ADhP9wA4X/kAOp/3ADsf9QA7L/UAOz/1ADtP9QA7f/oAPN/5ADzv+QA8//kAPQ/5AD0f+QA9L/kAPT/5AD1P+QA9X/kAPW/5AD1/+QA9j/kAS8/1AEvf9QBNP/UATU/1AFE/9ABTD/oAVN/yAFUf9zBXv/EAV8/xAFff8QBX//kAWA/5AFgf+QBYL/kAWH/yAFjv8gBan/YAWu/6AIh/+QCT3/UAAxAFUAYABeANAAeQDQAIoAYACqANAArgDQATUAYAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAHACqABwAqkAYAKqAGACqwBgAqwAcAKtAHACrwBwArAAcAKxAHACsgBgArMAYAK0AHACtQBwArYAcAK3AKACuABgArkAcAK6AHACuwBwArwAYAK9AGACwABwAsEAYALCAHACwwBgAsX/YALGAGACxwBgAsgAYALJAGAC/ABgA10AcATeAHAFFwEABqEA0AAxAFUAYABeANAAeQDQAIoAcACqANAArgDQATUAcAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAGACqABgAqkAYAKqAHACqwBwAqwAYAKtAGACrwBgArAAYAKxAGACsgBwArMAYAK0AGACtQBgArYAYAK3AIACuABwArkAYAK6AGACuwBgArwAcAK9AHACwABgAsEAYALCAGACwwBwAsX/YALGAHACxwBwAsgAcALJAHAC/ABwA10AYATeAGAFFwEABqEA0AAzAFUAYACKAGAA0ABgATUAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AYAKnAGACqABgAqkAYAKqAGACqwBgAqwAYAKtAGACrwBgArAAYAKxAGACsgBgArMAYAK0AGACtQBgArYAYAK3AGACuABgArkAYAK6AGACuwBgArwAYAK9AGACwABgAsEAYALCAGACwwBgAsYAYALHAGACyABgAskAYALgAIAC4QBgAvwAYANdAGADYgCAA4AAYATeAGAE8ABgBPIAYAT7AGAFqQBwADMAVQBgAIoAcADQAGABNQBwAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqcAcAKoAHACqQBgAqoAYAKrAHACrABwAq0AcAKvAHACsABwArEAcAKyAGACswBgArQAcAK1AHACtgBwArcAcAK4AHACuQBwAroAcAK7AHACvABwAr0AcALAAHACwQBgAsIAcALDAHACxgBwAscAcALIAHACyQBwAuAAgALhAGAC/ABwA10AYANiAIADgABgBN4AcATwAGAE8gBgBPsAYAWpAHAANgGZ/0ABmv9AAZv/QAGc/0ABnf9AAZ7/QAGf/0ABoP9AAaH/QAGi/0ABo/9AAaT/QAHF/6ABxv+gAcf/oAHV/0AB1v9AAdf/QAHY/0AB2f9AAdr/QAHb/0AB3P9AAd3/QAHe/0AB3/9AAeD/QAHh/0AB4v9AAeP/QAHo/0AB6f9AAez/QAPh/0AD+/+gBAn/QAQM/0AEEf9ABBT/QAQj/6AEJP9ABVD/oAVp/6AFbv+gBvH/QAer/0AHrP9AB6//QAew/0AHx/9ACJH/oAiU/6AImv+gCJv/oAA2AZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAcX/kAHG/5ABx/+QAdX/gAHW/4AB1/+AAdj/gAHZ/4AB2v+AAdv/gAHc/4AB3f+AAd7/gAHf/4AB4P+AAeH/gAHi/4AB4/+AAej/gAHp/4AB7P+AA/v/kAQA/4AECf+ABAz/YAQR/2AEFP8wBBv/gAQj/5AEJP9gBPf/oAVQ/5AG8f9gB6v/YAes/2AHr/+AB7D/gAfH/2AIkf+QCJT/kAia/5AIm/+QADcEQ/+gBIX/oAVp/5AFbv+QBfQAJgX1ACYF9gAmBfcAJgX4ACYF+QAmBfoAJgX7ACYF/AAmBf0AJgX+ACYF/wAmBgAAJgYBACYGAgAmBgMAJgYEACYGBQAmBgYAJgYHACYGCAAmBgkAJgYKACYGCwAmBgwAJgYNACYGDgAmBg8AJgYQACYGEQAmBhIAJgYTACYGFAAmBhUAJgYWACYGFwAmBhgAJgYZACYGHAAmBh0AJgYeACYGKgAmBisAJgYsACYGLQAmBi4AJgYvACYGMAAmBjEAJgYyACYGMwAmADgAigBgATUAYAGZAIABmgCAAZsAgAGcAIABnQCAAZ4AgAGfAIABoACAAaEAgAGiAIABowCAAaQAgAKeAHACpwBgAqgAYAKpAGACqgBwAqsAYAKsAGACrQBgAq8AYAKwAGACsQBgArIAcAKzAGACtABgArUAYAK2AGACtwCQArgAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALBAGACwgBgAsMAYALGAGACxwBgAsgAYALJAGAC/ABgA10AcAQMAIAEEQCABBQAgAQkAIAE3gBgBvEAgAerAIAHrACAB8cAgABBBEL/YARD/5AERP/aBEX/2gRG/9oER//aBEj/2gRJ/9oESv/aBEv/2gRM/9oETf/aBE7/2gRP/9oEUP/aBFH/2gSA/0AEhf+QBIf+8ASc/6AEnf+QBJ7/kASf/5AEoP+QBKH/kASi/5AEo/+QBKT/kASl/5AEpv+QBKf/kASo/5AEqf+QBKr/kASr/5AErP+QBK3/kASu/5AEr/+QBLD/kASx/5AEsv+QBLP/kAS0/5AFD/9gBRv/YAVR/9oFUv/aBV7/2gWH/9oFlP/aBZX/2gWX/9oFmv/aBaH/2gWi/9oFpP/aBaf/2gWo/9oGrf/aBq7/2gav/9oGxP/aBsX/2gbG/9oAQwAC/1AAA/9QAAT/UAAF/1AABv9QAAf/UAAI/1AACf9QAAr/UAAL/1AADP9QAA3/UAAO/1AAD/9QABD/UAAR/1AAEv9QABP/UAAU/1AAFf9QABb/UAAX/1AAGP9QABn/UAAa/1AAG/9QABz/UAAd/1AAHv9QAB//UAAg/1AAIf9QACL/UAAj/1AAJP9QACX/UAAm/1AAJ/9QACj/UAAp/1AAKv9QACv/UAAs/1AALf9QAC7/UAAv/1AAMP9QADH/UAAy/1AAM/9QADT/UAA1/1AANv9QADf/UAA4/1AAOf9QADr/UAA7/1AAPP9QAD3/UAA+/1AAP/9QAED/UAPI/1AD2/9QBwYA8QcHAPEARwII/5ACF/+QAmX/cAKb/6AC8v+gAvP/oAMI/3ADCf9wA4P/oAOE/6ADhf+gA4b/oAOH/6ADiP+gA4n/oAOK/6ADi/+gA4z/oAON/6ADjv+gA4//oAOQ/6ADkf+gA5L/oAOT/6ADlP+gA5X/oAOW/6ADl/+gA5j/oAOZ/6ADmv+gA5v/oAOc/6ADnf+gA57/oAOf/6ADoP+gA6H/oAOi/6ADo/+gA6n/cAO3/6ADzf+NA87/lgPP/40D0P+WA9H/lgPS/40D0/+NA9T/jQPV/40D1v+NA9f/jQPY/5YFE/9ABTD/oAVN/yAFUf9zBXv/oAV8/6AFff+gBX//oAWA/6AFgf+gBYL/oAWH/yAFjv8gBan/YAWu/6AIh/+gAEkD2/+QBH7/QAVN/6AFaf+QBW7/kAVw/yAFcf8gBXv/MAV8/zAFff8wBaj/oAX0/9oF9f/aBfb/2gX3/9oF+P/aBfn/2gX6/9oF+//aBfz/2gX9/9oF/v/aBf//2gYA/9oGAf/aBgL/2gYD/9oGBP/aBgX/2gYG/9oGB//aBgj/2gYJ/9oGCv/aBgv/2gYM/9oGDf/aBg7/2gYP/9oGEP/aBhH/2gYS/9oGE//aBhT/2gYV/9oGFv/aBhf/2gYY/9oGGf/aBhz/2gYd/9oGHv/aBir/2gYr/9oGLP/aBi3/2gYu/9oGL//aBjD/2gYx/9oGMv/aBjP/2gY5AIAGOgCABjsAgAY8AIAGPQCABj4AgAY/AIAGQACABkEAgAZCAIAGUACAAFECCP+QAhf/kAJl/3ACm/+gAtL/gALy/6AC8/+gAwj/cAMJ/3ADg/+gA4T/oAOF/6ADhv+gA4f/oAOI/6ADif+gA4r/oAOL/6ADjP+gA43/oAOO/6ADj/+gA5D/oAOR/6ADkv+gA5P/oAOU/6ADlf+gA5b/oAOX/6ADmP+gA5n/oAOa/6ADm/+gA5z/oAOd/6ADnv+gA5//oAOg/6ADof+gA6L/oAOj/6ADqf9wA7H/gAOy/4ADs/+AA7T/gAO3/6ADzf+gA87/oAPP/6AD0P+gA9H/oAPS/6AD0/+gA9T/oAPV/6AD1v+gA9f/oAPY/6AEvP+ABL3/gATT/4AE1P+ABRP/QAUw/6AFTf8gBVH/cwV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/8gBY7/IAWp/2AFrv+gCIf/oAk9/4AAUwGZ/5ABmv+QAZv/kAGc/5ABnf+QAZ7/kAGf/5ABoP+QAaH/kAGi/5ABo/+QAaT/kAHF/2QBxv9kAcf/ZAHI/14Byf9eAcr/XgHL/14BzP9eAc3/XgHO/14C4ABgA2IAYAOk/3ADpv9wA6f/cAO1/3ADtv9wA7f/cAO4/3ADuf9wA7r/cAO7/3ADvP9wA73/cAO+/3ADv/9wA8D/cAPB/3ADwv9wA8P/cAPE/3ADxf9wA8b/cAPH/3ADzP9wA+H/kAP7/2QEDP+QBBH/kAQU/5AEI/9kBCT/kARC/3AEtf9wBO3/cAT3/3AFNf9QBVD/ZAVp/4gFav9gBW7/iAVv/2AFdP9gBXsAcAV8AHAFfQBwBYf/oAWO/4gFrv+gBvH/kAer/5AHrP+QB8f/kAhG/3AIZ/9wCJH/ZAiU/2QImv9kCJv/ZAng/3AJ4f9wAFUAAv+gAAP/oAAE/6AABf+gAAb/oAAH/6AACP+gAAn/oAAK/6AAC/+gAAz/oAAN/6AADv+gAA//oAAQ/6AAEf+gABL/oAAT/6AAFP+gABX/oAAW/6AAF/+gABj/oAAZ/6AAGv+gABv/oAAc/6AAHf+gAB7/oAAf/6AAIP+gACH/oAAi/6AAI/+gACT/oAAl/6AAJv+gACf/oAAo/6AAKf+gACr/oAAr/6AALP+gAC3/oAAu/6AAL/+gADD/oAAx/6AAMv+gADP/oAA0/6AANf+gADb/oAA3/6AAOP+gADn/oAA6/6AAO/+gADz/oAA9/6AAPv+gAD//oABA/6ABmf+gAZr/oAGb/6ABnP+gAZ3/oAGe/6ABn/+gAaD/oAGh/6ABov+gAaP/oAGk/6ADyP+gA9v/oAQM/6AEEf+gBBT/oAQk/6AG8f+gB6v/oAes/6AHx/+gAFsBm/8wAaL/MAGj/zACtwBwA9v/kAVN/6AFUf/TBVL/0wVe/9MFaf9wBW7/cAWH/9MFjv+QBZT/0wWV/9MFl//TBZr/0wWh/9MFov/TBaT/0wWn/9MFqP+gBan/oAX0/7oF9f+6Bfb/ugX3/7oF+P+6Bfn/ugX6/7oF+/+6Bfz/ugX9/7oF/v+6Bf//ugYA/7oGAf+6BgL/ugYD/7oGBP+6BgX/ugYG/7oGB/+6Bgj/ugYJ/7oGCv+6Bgv/ugYM/7oGDf+6Bg7/ugYP/7oGEP+6BhH/ugYS/7oGE/+6BhT/ugYV/7oGFv+6Bhf/ugYY/7oGGf+6Bhz/ugYd/7oGHv+6Bir/ugYr/7oGLP+6Bi3/ugYu/7oGL/+6BjD/ugYx/7oGMv+6BjP/ugY5AIAGOgCABjsAgAY8AIAGPQCABj4AgAY/AIAGQACABkEAgAZCAIAGUACABq3/0wau/9MGr//TBsT/0wbF/9MGxv/TAF8ASf/NAEr/zQBL/80ATP/NAE3/zQBO/80AT//NAFD/zQBR/80AUv/NAFP/zQCN/80Ajv/NAI//zQCQ/80Akf/NAJL/zQCT/80AlP/NAJX/zQCW/80Al//NAUD/zQFB/80BQv/NAUP/zQFE/80BRf/NAUb/zQFH/80BSP/NAUn/zQFK/80BS//NAUz/zQFN/80BTv/NAU//zQFQ/80BUf/NAVL/zQFT/80BVP/NAVX/zQFW/80BV//NAVj/zQFZ/80BWv/NAVv/zQFc/80BXf/NAV7/zQFf/80BYP/NAWH/zQFi/80BY//NAWT/zQFl/80BZv/NAWf/zQFo/80Baf/NAWr/zQFr/80BbP/NAW3/zQFu/80Bb//NAXD/zQFx/80Bcv/NAXP/zQF0/80Bdf/NAX3/zQPc/80EB//NBAr/zQQZ/80EHv/NBQD/zQUB/80FAv/NBRP/gAUw/6AFqf9ABbD/zQbY/80G2f/NB4n/zQep/80Hrv/NB8b/zQBhA4f/YAPb/1AEf/+gBIH/oAS2/6AFDv+gBRP/QAUW/6AFGv+gBTD/oAVN/0AFUf+mBVL/pgVe/6YFcP6wBXH+sAV7/vAFfP7wBX3+8AV//1AFgP9QBYH/UAWC/1AFh/+mBYr/eAWL/8gFjP94BY3/yAWO/wAFlP+mBZX/pgWX/6YFmv+mBaH/pgWi/6YFpP+mBaf/pgWo/6YFqf7gBfT/gAX1/4AF9v+ABff/gAX4/4AF+f+ABfr/gAX7/4AF/P+ABf3/gAX+/4AF//+ABgD/gAYB/4AGAv+ABgP/gAYE/4AGBf+ABgb/gAYH/4AGCP+ABgn/gAYK/4AGC/+ABgz/gAYN/4AGDv+ABg//gAYQ/4AGEf+ABhL/gAYT/4AGFP+ABhX/gAYW/4AGF/+ABhj/gAYZ/4AGHP+ABh3/gAYe/4AGKv+ABiv/gAYs/4AGLf+ABi7/gAYv/4AGMP+ABjH/gAYy/4AGM/+ABq3/pgau/6YGr/+mBsT/pgbF/6YGxv+mCIf/UABiAgj/kAIX/5ACZf9wApv/XQLS/4AC8v9dAvP/XQMI/3ADCf9wA4P/XQOE/4MDhf+WA4b/XQOH/10DiP9dA4n/XQOK/10Di/9dA4z/XQON/10Djv9dA4//XQOQ/10Dkf9dA5L/XQOT/10DlP9dA5X/XQOW/10Dl/9dA5j/XQOZ/10Dmv9dA5v/XQOc/10Dnf9dA57/XQOf/10DoP9dA6H/XQOi/10Do/9dA6n/cAOx/4ADsv+AA7P/gAO0/4ADt/+gA83/jQPO/5YDz/+NA9D/lgPR/5YD0v+NA9P/jQPU/40D1f+NA9b/jQPX/40D2P+WBLz/gAS9/4AE0/+ABNT/gAUT/0AFMP+gBU3/IAVR/6AFUv/aBV7/2gV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/9TBY7/IAWU/9oFlf/aBZf/2gWa/9oFof/aBaL/2gWk/9oFp//aBaj/2gWp/2AFrv+gBq3/2gau/9oGr//aBsT/2gbF/9oGxv/aCIf/oAk9/4AAdgAC/5AAA/+QAAT/kAAF/5AABv+QAAf/kAAI/5AACf+QAAr/kAAL/5AADP+QAA3/kAAO/5AAD/+QABD/kAAR/5AAEv+QABP/kAAU/5AAFf+QABb/kAAX/5AAGP+QABn/kAAa/5AAG/+QABz/kAAd/5AAHv+QAB//kAAg/5AAIf+QACL/kAAj/5AAJP+QACX/kAAm/5AAJ/+QACj/kAAp/5AAKv+QACv/kAAs/5AALf+QAC7/kAAv/5AAMP+QADH/kAAy/5AAM/+QADT/kAA1/5AANv+QADf/kAA4/5AAOf+QADr/kAA7/5AAPP+QAD3/kAA+/5AAP/+QAED/kAEJ/5ABCv+QAQv/kAEM/5ABDf+QAZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAcX/cAHG/3ABx/9wAe3/kAHu/5AB7/+QAfD/kAHx/5AB8v+QAfP/kAH0/5AB9f+QAfb/kAH3/5ADyP+QA+H/YAP7/3AEDP9gBBH/YAQU/2AEI/9wBCT/YAVQ/3AFaf9gBW7/YAVw/qAFcf6gBXv+4AV8/uAFff7gBvH/YAer/2AHrP9gB8f/YAiR/3AIlP9wCJr/cAib/3AAeQGZ/2ABmv9gAZv/YAGc/2ABnf9gAZ7/YAGf/2ABoP9gAaH/YAGi/2ABo/9gAaT/YAHF/1ABxv9QAcf/UAHI/5AByf+QAcr/kAHL/5ABzP+QAc3/kAHO/5AB1f8wAdb/MAHX/zAB2P8wAdn/MAHa/zAB2/8wAdz/MAHd/zAB3v8wAd//MAHg/zAB4f8wAeL/MAHj/zAB6P8wAen/MAHs/zADpP+gA6b/oAOn/6ADqP+gA6n/oAOr/6ADrP+gA63/oAOu/6ADr/+gA7D/oAO1/6ADtv+gA7f/oAO4/6ADuf+gA7r/oAO7/6ADvP+gA73/oAO+/6ADv/+gA8D/oAPB/6ADwv+gA8P/oAPE/6ADxf+gA8b/oAPH/6ADzP+gA+H/MAP7/1AECf8wBAz/YAQR/2AEFP9gBCP/UAQk/2AEtf+gBO3/oAVQ/1AFaf8ABWz/oAVt/6AFbv8ABYj/oAWq/5AFq/+QBa//wAWy/8AFs/+QBbr/kAW7/5AFvP+QBb3/kAY5/4AGOv+ABjv/gAY8/4AGPf+ABj7/gAY//4AGQP+ABkH/gAZC/4AGUP+ABvH/YAer/2AHrP9gB6//MAew/zAHx/9gCEb/oAhn/6AIkf9QCJT/UAia/1AIm/9QCeD/oAnh/6AAiQAC/6AAA/+gAAT/oAAF/6AABv+gAAf/oAAI/6AACf+gAAr/oAAL/6AADP+gAA3/oAAO/6AAD/+gABD/oAAR/6AAEv+gABP/oAAU/6AAFf+gABb/oAAX/6AAGP+gABn/oAAa/6AAG/+gABz/oAAd/6AAHv+gAB//oAAg/6AAIf+gACL/oAAj/6AAJP+gACX/oAAm/6AAJ/+gACj/oAAp/6AAKv+gACv/oAAs/6AALf+gAC7/oAAv/6AAMP+gADH/oAAy/6AAM/+gADT/oAA1/6AANv+gADf/oAA4/6AAOf+gADr/oAA7/6AAPP+gAD3/oAA+/6AAP/+gAED/oAEJ/4ABCv+AAQv/gAEM/4ABDf+AAZn/IAGa/yABm/8gAZz/IAGd/yABnv8gAZ//IAGg/yABof8gAaL/IAGj/yABpP8gAcX/kAHG/5ABx/+QAc//gAHQ/4AB0f+AAdL/gAHT/4AB1P+AAdX/cAHW/3AB1/9wAdj/cAHZ/3AB2v9wAdv/cAHc/3AB3f9wAd7/cAHf/3AB4P9wAeH/cAHi/3AB4/9wAej/cAHp/3AB7P9wA8j/oAPh/6YD+/+QBAD/gAQC/8YECf9wBAz/IAQR/yAEFP8gBCP/kAQk/yAFF/+tBVD/kAbx/yAHq/8gB6z/IAev/3AHsP9wB7v/gAe8/4AHx/8gB8j/gAiR/5AIkv+ACJT/kAia/5AIm/+QCJz/gAif/4AJPP+AAJwAAv+IAAP/iAAE/4gABf+IAAb/iAAH/4gACP+IAAn/iAAK/4gAC/+IAAz/iAAN/4gADv+IAA//iAAQ/4gAEf+IABL/iAAT/4gAFP+IABX/iAAW/4gAF/+IABj/iAAZ/4gAGv+IABv/iAAc/4gAHf+IAB7/iAAf/4gAIP+IACH/iAAi/4gAI/+IACT/iAAl/4gAJv+IACf/iAAo/4gAKf+IACr/iAAr/4gALP+IAC3/iAAu/4gAL/+IADD/iAAx/4gAMv+IADP/iAA0/4gANf+IADb/iAA3/4gAOP+IADn/iAA6/4gAO/+IADz/iAA9/4gAPv+IAD//iABA/4gBmf8gAZr/IAGb/yABnP8gAZ3/IAGe/yABn/8gAaD/IAGh/yABov8gAaP/IAGk/yABxf8wAcb/MAHH/zAByP8wAcn/MAHK/zABy/8wAcz/MAHN/zABzv8wAc//YAHQ/2AB0f9gAdL/YAHT/2AB1P9gAdX/AAHW/wAB1/8AAdj/AAHZ/wAB2v8AAdv/AAHc/wAB3f8AAd7/AAHf/wAB4P8AAeH/AAHi/wAB4/8AAej/AAHp/wAB7P8AAe3/UAHu/1AB7/9QAfD/UAHx/1AB8v9QAfP/UAH0/1AB9f9QAfb/UAH3/1ADyP+IA+H/AAP7/zAEAP9wBAb/oAQJ/wAEDP8gBBH/IAQU/zAEF/+gBCP/MAQk/yAE9/8wBRf/MAVQ/zAFaf7wBW7+8Abx/yAHBgAYBwcAGAer/yAHrP8gB6//AAew/wAHu/9gB7z/YAfH/yAHyP9gCJH/MAiS/2AIlP8wCJr/MAib/zAInP9gCJ//YAk8/2AApQAC/2AAA/9gAAT/YAAF/2AABv9gAAf/YAAI/2AACf9gAAr/YAAL/2AADP9gAA3/YAAO/2AAD/9gABD/YAAR/2AAEv9gABP/YAAU/2AAFf9gABb/YAAX/2AAGP9gABn/YAAa/2AAG/9gABz/YAAd/2AAHv9gAB//YAAg/2AAIf9gACL/YAAj/2AAJP9gACX/YAAm/2AAJ/9gACj/YAAp/2AAKv9gACv/YAAs/2AALf9gAC7/YAAv/2AAMP9gADH/YAAy/2AAM/9gADT/YAA1/2AANv9gADf/YAA4/2AAOf9gADr/YAA7/2AAPP9gAD3/YAA+/2AAP/9gAED/YAEJ/rABCv6wAQv+sAEM/rABDf6wAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA8j/YAPO/5AD0P+QA9H/kAPW/40D1/+NA9j/kAUT/0AFMP+gBU3/IAVR/3MFcP6wBXH+sAV7/6AFfP+gBX3/oAWA/5AFh/8gBY7/IAWQ/6AFkf+gBZL/oAWT/6AFmP+gBZn/oAWd/6AFnv+gBZ//oAWg/6AFpf+gBab/oAWp/2AFrv+gBfT/rQX1/60F9v+tBff/rQX4/60F+f+tBfr/rQX7/60F/P+tBf3/rQX+/60F//+tBgD/rQYB/60GAv+tBgP/rQYE/60GBf+tBgb/rQYH/60GCP+tBgn/rQYK/60GC/+tBgz/rQYN/60GDv+tBg//rQYQ/60GEf+tBhL/rQYT/60GFP+tBhX/rQYW/60GF/+tBhj/rQYZ/60GHP+tBh3/rQYe/60GKv+tBiv/rQYs/60GLf+tBi7/rQYv/60GMP+tBjH/rQYy/60GM/+tBrD/oAax/6AGx/+gBsj/oAC0Agj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOH/uADqf9wA7f/oAPO/5AD0P+QA9H/kAPW/40D1/+NA9j/kAPb/wAD4P9wA+L/oARC/uAEQ/9YBET+kARF/pAERv6QBEf+kARI/pAESf6QBEr+kARL/pAETP6QBE3+kARO/pAET/6QBFD+kARR/pAEUv8gBGv/IARs/pAEbf6QBG7+kARv/pAEcP6QBHH+kARy/pAEc/6QBHT+kAR1/pAEdv6QBHf+kAR4/pAEef6QBHr+kAR7/pAEfP6QBH3+kAR+/6AEf/9gBID+4ASB/pAEhf9YBIf+4ASc/pAEnf6QBJ7+kASf/pAEoP6QBKH+kASi/pAEo/6QBKT+kASl/pAEpv6QBKf+kASo/pAEqf6QBKr+kASr/pAErP6QBK3+kASu/pAEr/6QBLD+kASx/pAEsv6QBLP+kAS0/pAEtv+gBQ7/oAUT/0AFFv+gBRr/oAUw/6AFTf9wBVH/cwVS/60FXv+tBXD+sAVx/rAFe/8QBXz/EAV9/xAFf/+QBYD/kAWB/5AFgv+QBYf/JgWK/pAFi/9wBYz+kAWN/3AFjv8gBZT/rQWV/60Fl/+tBZr/rQWh/60Fov+tBaT/rQWn/60FqP+tBan/QAWu/6AF9P/ABfX/wAX2/8AF9//ABfj/wAX5/8AF+v/ABfv/wAX8/8AF/f/ABf7/wAX//8AGAP/ABgH/wAYC/8AGA//ABgT/wAYF/8AGBv/ABgf/wAYI/8AGCf/ABgr/wAYL/8AGDP/ABg3/wAYO/8AGD//ABhD/wAYR/8AGEv/ABhP/wAYU/8AGFf/ABhb/wAYX/8AGGP/ABhn/wAYc/8AGHf/ABh7/wAYq/8AGK//ABiz/wAYt/8AGLv/ABi//wAYw/8AGMf/ABjL/wAYz/8AGrf+tBq7/rQav/60GxP+tBsX/rQbG/60Ih/+QAAIAkQACAEAAAABJAJYAPwChAMwAjQDOAM4AuQDQANkAugDbAOIAxADlAOcAzADpAOkAzwEJAX0A0AGZAlMBRQJVAlYCAAJYAl4CAgJgAmICCQJkAoMCDAKFApwCLAKeAtYCRALYAvgCfQL7AvwCngL+AwoCoAMMA0ICrQNFA0gC5ANKA3IC6AN0A3UDEQN3A6kDEwOrA7ADRgO2A8gDTAPMA9wDXwPfA+EDcAP7BAADcwQDBAQDeQQGBAcDewQJBAsDfQQNBA0DgAQQBBsDgQQjBFIDjQRrBIQDvQSGBLwD1wS/BNIEDgTVBNsEIgTeBN4EKQTjBOUEKgToBOsELQTtBO0EMQTvBPAEMgTyBPIENAT0BPQENQT7BPsENgUABQIENwUJBQkEOgUOBQ4EOwUTBRQEPAUWBRoEPgUdBR8EQwUwBTEERgUzBTMESAU1BTUESQU4BTgESgU7BTsESwU9BT0ETAU/BT8ETQVBBUEETgVDBUQETwVGBUYEUQVIBUgEUgVKBUsEUwVNBU4EVQVQBVIEVwVbBVsEWgVeBV4EWwVpBWoEXAVsBXEEXgV0BXQEZAV7BX0EZQV/BX8EaAWCBYIEaQWHBYgEagWKBZoEbAWdBaIEfQWkBbAEgwWyBbMEkAW5Bb8EkgXBBcEEmQXaBdoEmgXjBeMEmwXmBeYEnAXqBewEnQX0BhkEoAYcBh8ExgYmBiYEygYoBigEywYqBjMEzAY5BkIE1gZLBksE4AZPBlAE4QZXBlcE4wZcBlwE5AaoBqwE5Qa/BsME6gbYBt4E7wbxBvIE9gb4BvgE+AcGBwcE+QeCB4IE+weFB4YE/AeJB4kE/geLB4sE/wePB48FAAeZB5kFAQecB5wFAgefB58FAwepB6kFBAerB6wFBQevB7AFBwe3B7gFCQe7B7wFCwfDB8oFDQfMB8wFFQftB+8FFggVCBUFGQgZCBkFGggjCCMFGwguCC8FHAhCCEQFHghGCEYFIQhLCEsFIghNCE0FIwhaCFoFJAhnCGcFJQhqCGsFJgh5CHkFKAiHCIcFKQiRCJIFKgiUCJQFLAiWCJYFLQiYCKAFLgikCKYFNwi1CLUFOgi5CLkFOwjhCOEFPAkuCS4FPQkzCTMFPgk3CTcFPwk6CTwFQAngCeEFQwnoCegFRQEaAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgArcAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR4AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/yABo/8gAdb/kAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwCAAsoAYALLAGACzABgAs0AYALOAGACzwBgAtAAYALRAGAC0wBgAtQAYALVAGAC1gBgAtcAYALZAGAC2gBgAtsAYALcAGAC3QBgAt4AYALfAGAC4ABgAuEAYALiAGAC4wBgAuQAYALlAGAC5wBgAugAYALpAGAC6gBgAusAYALsAGAC7QBgAu4AYALvAGADcgBgA3MAYAPZAGAD2gBgA94AYAP7/5AD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR4AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/yABo/8gAdb/cAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwBwAsX/gALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR8AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/zABo/8wAdb/cAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwCAAsoAYALLAGACzABgAs0AYALOAGACzwBgAtAAYALRAGAC0wBgAtQAYALVAGAC1gBgAtcAYALZAGAC2gBgAtsAYALcAGAC3QBgAt4AYALfAGAC4ABgAuEAYALiAGAC4wBgAuQAYALlAGAC5wBgAugAYALpAGAC6gBgAusAYALsAGAC7QBgAu4AYALvAGADXQBgA3IAYANzAGAD2QBgA9oAYAPeAGAD+/+gA/wAYAP9AGAEAwBgBAQAYAQFAGAECABgBAsAYAQQAGAEEgBgBBMAYAQVAGAEFgBgBBgAYAQaAGAEHABgBB0AYAQmAGAFCQBgBQwAYAUNAGAFTgBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEtAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAK0AHACtQBwArYAcAK3AIACuQBwAroAcAK7AHACwABwAsIAcALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA10AYANiAHADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AcAUJAGAFDABgBQ0AYAVOAGAFjv+wBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEtAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AIACuQBgAroAYAK7AGACwABgAsIAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA10AYANiAGADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AYAUJAGAFDABgBQ0AYAVOAGAFjv+wBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAExAEEAcABCAHAAQwBwAEQAcABFAHAARgBwAEcAcABIAHAAVABwAFUAcABWAHAAVwBwAFgAcABZAHAAWgBwAFsAcABcAHAAXQBwAF4AcABfAHAAYABwAGEAcABiAHAAYwBwAGQAcABlAHAAZgBwAGcAcABoAHAAaQBwAGoAcABrAHAAbABwAG0AcABuAHAAbwBwAHAAcABxAHAAcgBwAHMAcAB0AHAAdQBwAHYAcAB3AHAAeABwAHkAcAB7AHAAhABwAIUAcACGAHAAhwBwAIgAcACJAHAAiwBwAKEAcACiAHAAowBwAKQAcAClAHAApgBwAKcAcACoAHAAqQBwAKoAcACrAHAArABwAK0AcACuAHAArwBwALAAcACxAHAAsgBwALMAcAC0AHAAtQBwALYAcAC3AHAAuABwALkAcAC6AHAAuwBwALwAcAC9AHAAvgBwAL8AcADAAHAAwQBwAMIAcADDAHAAxABwAMUAcADJAHAAygBwAMsAcADQAHAA0QBwANIAcADVAHAA1gBwANcAcADYAHAA5wBwAOkAcAEOAHABDwBwARAAcAERAHABEgBwARMAcAEUAHABFQBwARYAcAEXAHABGABwARkAcAEaAHABGwBwARwAcAEdAHABHgBwAR8AcAEgAHABIQBwASIAcAEjAHABJABwASUAcAEmAHABJwBwASgAcAEpAHABKgBwASsAcAEsAHABLQBwAS4AcAEvAHABMABwATEAcAEyAHABMwBwATQAcAE2AHABNwBwATgAcAE5AHABOgBwATsAcAE8AHABPQBwAT4AcAE/AHABdgBwAXcAcAF4AHABeQBwAXoAcAF7AHABfABwAX4AcAF/AHABgABwAYEAcAGCAHABgwBwAYQAcAGFAHABhgBwAYcAcAGIAHABiQBwAYoAcAGYAHABov8wAaP/MAHW/3ACBABgAj8AcAJBAHACQgBwAkMAcAJEAHACRQBwAnsAYAKUAHAClQBwApYAcAKXAHACmABwApkAcAKaAHACngBwAp8AcAKgAHACoQBwAqIAcAKjAHACpABwAqUAcAKmAHACpwBgAqgAYAKsAGACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAgAK5AGACugBgArsAYALAAGACwgBgAsoAcALLAHACzABwAs0AcALOAHACzwBwAtAAcALRAHAC0wBwAtQAcALVAHAC1gBwAtcAcALZAHAC2gBwAtsAcALcAHAC3QBwAt4AcALfAHAC4ABwAuEAcALiAHAC4wBwAuQAcALlAHAC5wBwAugAcALpAHAC6gBwAusAcALsAHAC7QBwAu4AcALvAHADXQBgA3IAcANzAHAD2QBwA9oAcAPeAHAD+/+gA/wAcAP9AHAEAwBwBAQAcAQFAHAECABwBAsAcAQQAHAEEgBwBBMAcAQVAHAEFgBwBBgAcAQaAHAEHABwBB0AcAQmAHAE3gBgBQkAcAUMAHAFDQBwBU4AcAW/AHAGoQBwBtoAcAbbAHAG3ABwBt0AcAbeAHAG+ABwB4YAcAeXAHAHnwBwB8MAcAfEAHAHxQBwB8kAcAfKAHAIWgBwCHkAcAiWAHAImABwCJkAcAidAHAIngBwCKAAcAkuAHABOABBAGAAQgBgAEMAYABEAGAARQBgAEYAYABHAGAASABgAFQAYABVAGAAVgBgAFcAYABYAGAAWQBgAFoAYABbAGAAXABgAF0AYABeAGAAXwBgAGAAYABhAGAAYgBgAGMAYABkAGAAZQBgAGYAYABnAGAAaABgAGkAYABqAGAAawBgAGwAYABtAGAAbgBgAG8AYABwAGAAcQBgAHIAYABzAGAAdABgAHUAYAB2AGAAdwBgAHgAYAB5AGAAewBgAIQAYACFAGAAhgBgAIcAYACIAGAAiQBgAIoAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMYA4ADHAIAAyQBwAMoAYADLAGAA0ABgANEAYADSAGAA1QBgANYAYADXAGAA2ABgAOcAYADpAGABDgBgAQ8AYAEQAGABEQBgARIAYAETAGABFABgARUAYAEWAGABFwBgARgAYAEZAGABGgBgARsAYAEcAGABHQBgAR4AYAEfAGABIABgASEAYAEiAGABIwBgASQAYAElAGABJgBgAScAYAEoAGABKQBgASoAYAErAGABLABgAS0AYAEuAGABLwBgATAAYAExAGABMgBgATMAYAE0AGABNQBgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACpwBgAqgAYAKsAHACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALCAGACwwBgAsYAYALHAGACyABgAskAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAcALhAHAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgAvwAYANiAHADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AYAUJAGAFDABgBQ0AYAVOAGAFqQBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAE8AEEAcABCAHAAQwBwAEQAcABFAHAARgBwAEcAcABIAHAAVABwAFUAcABWAHAAVwBwAFgAcABZAHAAWgBwAFsAcABcAHAAXQBwAF4AcABfAHAAYABwAGEAcABiAHAAYwBwAGQAcABlAHAAZgBwAGcAcABoAHAAaQBwAGoAcABrAHAAbABwAG0AcABuAHAAbwBwAHAAcABxAHAAcgBwAHMAcAB0AHAAdQBwAHYAcAB3AHAAeABwAHkAcAB7AHAAhABwAIUAcACGAHAAhwBwAIgAcACJAHAAigBgAIsAcAChAHAAogBwAKMAcACkAHAApQBwAKYAcACnAHAAqABwAKkAcACqAHAAqwBwAKwAcACtAHAArgBwAK8AcACwAHAAsQBwALIAcACzAHAAtABwALUAcAC2AHAAtwBwALgAcAC5AHAAugBwALsAcAC8AHAAvQBwAL4AcAC/AHAAwABwAMEAcADCAHAAwwBwAMQAcADFAHAAxgDgAMcAgADJAHAAygBwAMsAcADQAGAA0QBwANIAcADVAHAA1gBwANcAcADYAHAA5wBwAOkAcAEOAHABDwBwARAAcAERAHABEgBwARMAcAEUAHABFQBwARYAcAEXAHABGABwARkAcAEaAHABGwBwARwAcAEdAHABHgBwAR8AcAEgAHABIQBwASIAcAEjAHABJABwASUAcAEmAHABJwBwASgAcAEpAHABKgBwASsAcAEsAHABLQBwAS4AcAEvAHABMABwATEAcAEyAHABMwBwATQAcAE1AGABNgBwATcAcAE4AHABOQBwAToAcAE7AHABPABwAT0AcAE+AHABPwBwAXYAcAF3AHABeABwAXkAcAF6AHABewBwAXwAcAF+AHABfwBwAYAAcAGBAHABggBwAYMAcAGEAHABhQBwAYYAcAGHAHABiABwAYkAcAGKAHABmABwAj8AcAJBAHACQgBwAkMAcAJEAHACRQBwApQAcAKVAHAClgBwApcAcAKYAHACmQBwApoAcAKeAHACnwBwAqAAcAKhAHACogBwAqMAcAKkAHACpQBwAqYAcAKnAHACqABwAqwAgAKtAHACrwBwArAAcAKxAHACtABwArUAcAK2AHACtwBgArkAcAK6AHACuwBwArwAYAK9AGACwABwAsIAcALDAGACxgBwAscAYALIAGACyQBgAsoAcALLAHACzABwAs0AcALOAHACzwBwAtAAcALRAHAC0wBwAtQAcALVAHAC1gBwAtcAcALZAHAC2gBwAtsAcALcAHAC3QBwAt4AcALfAHAC4ACAAuEAcALiAHAC4wBwAuQAcALlAHAC5wBwAugAcALpAHAC6gBwAusAcALsAHAC7QBwAu4AcALvAHAC/ABgA2IAgANyAHADcwBwA9kAcAPaAHAD3gBwA/wAcAP9AHAEAwBwBAQAcAQFAHAECABwBAsAcAQQAHAEEgBwBBMAcAQVAHAEFgBwBBgAcAQaAHAEHABwBB0AcAQmAHAE3gBwBPIAYAUJAHAFDABwBQ0AcAU8AGAFPwBgBUIAYAVOAHAFqQBgBb8AcAahAHAG2gBwBtsAcAbcAHAG3QBwBt4AcAb4AHAHhgBwB5cAcAefAHAHwwBwB8QAcAfFAHAHyQBwB8oAcAhaAHAIeQBwCJYAcAiYAHAImQBwCJ0AcAieAHAIoABwCS4AcAFfAAIAQAADAEAABABAAAUAQAAGAEAABwBAAAgAQAAJAEAACgBAAAsAQAAMAEAADQBAAA4AQAAPAEAAEABAABEAQAASAEAAEwBAABQAQAAVAEAAFgBAABcAQAAYAEAAGQBAABoAQAAbAEAAHABAAB0AQAAeAEAAHwBAACAAQAAhAEAAIgBAACMAQAAkAEAAJQBAACYAQAAnAEAAKABAACkAQAAqAEAAKwBAACwAQAAtAEAALgBAAC8AQAAwAEAAMQBAADIAQAAzAEAANABAADUAQAA2AEAANwBAADgAQAA5AEAAOgBAADsAQAA8AEAAPQBAAD4AQAA/AEAAQABAAEEAKABCACgAQwAoAEQAKABFACgARgAoAEcAKABIACgAVAAoAFUAKABWACgAVwAoAFgAKABZACgAWgAoAFsAKABcACgAXQAoAF4AKABfACgAYAAoAGEAKABiACgAYwAoAGQAKABlACgAZgAoAGcAKABoACgAaQAoAGoAKABrACgAbAAoAG0AKABuACgAbwAoAHAAKABxACgAcgAoAHMAKAB0ACgAdQAoAHYAKAB3ACgAeAAoAHkAKAB7ACgAhAAoAIUAKACGACgAhwAoAIgAKACJACgAiwAoAKEAKACiACgAowAoAKQAKAClACgApgAoAKcAKACoACgAqQAoAKoAKACrACgArAAoAK0AKACuACgArwAoALAAKACxACgAsgAoALMAKAC0ACgAtQAoALYAKAC3ACgAuAAoALkAKAC6ACgAuwAoALwAKAC9ACgAvgAoAL8AKADAACgAwQAoAMIAKADDACgAxAAoAMUAKADGAOAAxwCAAMkAKADKACgAywAoANAAKADRACgA0gAoANUAKADWACgA1wAoANgAKADnACgA6QAoAQ4AKAEPACgBEAAoAREAKAESACgBEwAoARQAKAEVACgBFgAoARcAKAEYACgBGQAoARoAKAEbACgBHAAoAR0AKAEeACgBHwAoASAAKAEhACgBIgAoASMAKAEkACgBJQAoASYAKAEnACgBKAAoASkAKAEqACgBKwAoASwAKAEtACgBLgAoAS8AKAEwACgBMQAoATIAKAEzACgBNAAoATYAKAE3ACgBOAAoATkAKAE6ACgBOwAoATwAKAE9ACgBPgAoAT8AKAF2ACgBdwAoAXgAKAF5ACgBegAoAXsAKAF8ACgBfgAoAX8AKAGAACgBgQAoAYIAKAGDACgBhAAoAYUAKAGGACgBhwAoAYgAKAGJACgBigAoAZgAKAI/ACgCQQAoAkIAKAJDACgCRAAoAkUAKAKUACgClQAoApYAKAKXACgCmAAoApkAKAKaACgCngAoAp8AKAKgACgCoQAoAqIAKAKjACgCpAAoAqUAKAKmACgCtQBgArcAYALKACgCywAoAswAKALNACgCzgAoAs8AKALQACgC0QAoAtMAKALUACgC1QAoAtYAKALXACgC2QAoAtoAKALbACgC3AAoAt0AKALeACgC3wAoAuAAKALhACgC4gAoAuMAKALkACgC5QAoAucAKALoACgC6QAoAuoAKALrACgC7AAoAu0AKALuACgC7wAoA2IAgANyACgDcwAoA8gAQAPZACgD2gAoA94AKAP8ACgD/QAoBAMAKAQEACgEBQAoBAgAKAQLACgEEAAoBBIAKAQTACgEFQAoBBYAKAQYACgEGgAoBBwAKAQdACgEJgAoBQkAKAUMACgFDQAoBU4AKAWpAGAFvwAoBqEAKAbaACgG2wAoBtwAKAbdACgG3gAoBvgAKAeGACgHlwAoB58AKAfDACgHxAAoB8UAKAfJACgHygAoCFoAKAh5ACgIlgAoCJgAKAiZACgInQAoCJ4AKAigACgJLgAoAXgASf+QAEr/kABL/5AATP+QAE3/kABO/5AAT/+QAFD/kABR/5AAUv+QAFP/kACKARAAjf+QAI7/kACP/5AAkP+QAJH/kACS/5AAk/+QAJT/kACV/5AAlv+QAJf/kAE1ARABQP+QAUH/kAFC/5ABQ/+QAUT/kAFF/5ABRv+QAUf/kAFI/5ABSf+QAUr/kAFL/5ABTP+QAU3/kAFO/5ABT/+QAVD/kAFR/5ABUv+QAVP/kAFU/5ABVf+QAVb/kAFX/5ABWP+QAVn/kAFa/5ABW/+QAVz/kAFd/5ABXv+QAV//kAFg/5ABYf+QAWL/kAFj/5ABZP+QAWX/kAFm/5ABZ/+QAWj/kAFp/5ABav+QAWv/kAFs/5ABbf+QAW7/kAFv/5ABcP+QAXH/kAFy/5ABc/+QAXT/kAF1/5ABff+QAZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAaX/kAGm/5ABp/+QAaj/kAGp/5ABqv+QAav/kAGs/5ABrf+QAa7/kAGv/5ABsP+QAbH/kAGy/5ABs/+QAbT/kAG1/5ABtv+QAbf/kAG4/5ABuf+QAbr/kAG7/5ABvP+QAb3/kAG+/5ABv/+QAcD/kAHB/5ABwv+QAcP/kAHE/5ABxf8gAcb/IAHH/yACGACAAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK5AGACugBgArsAYAK8ARACvQEQAsAAYALCAGACwwEQAsYBEALHARACyAEQAskBEALgAGAC8ACAAvEAgAL0AIAC9QCAAvYAgAL3AIAC+ACAAvkAgAL6AIAC+wCAAvwBEAL9AIAC/gCAAv8AgAMAAIADAQCAAwIAgAMDAIADBACAAwUAgAMGAIADOwCAAzwAgAM9AIADPgCAAz8AgANAAIADQwCAA0UAgANGAIADRwCAA0sAgANMAIADTQCAA04AgANPAIADUACAA1EAgANSAIADUwCAA1QAgANVAIADVgCAA1cAgANYAIADWQCAA1oAgANbAIADXACAA10AgANeAIADXwCAA2AAgANhAIADYgBgA6T/IAOm/yADp/8gA7X/IAO2/yADt/8gA7j/IAO5/yADuv8gA7v/IAO8/yADvf8gA77/IAO//yADwP8gA8H/IAPC/yADw/8gA8T/IAPF/yADxv8gA8f/IAPM/yAD3P+QA+D/kAPh/vAD+/8gA/8AoAQH/5AECv+QBAz/YAQN/tAEEf9gBBT/cAQZ/5AEHv+QBCP/IAQk/2AEQQCABEL/YARTAIAEVACABFUAgARWAIAEVwCABFgAgARZAIAEWgCABFsAgARcAIAEXQCABF4AgARfAIAEYACABGEAgARiAIAEYwCABGQAgARlAIAEZgCABGcAgARoAIAEaQCABGoAgASBAIAEggCABIMAgASEAIAEiACABIkAgASKAIAEiwCABIwAgASNAIAEjgCABI8AgASQAIAEkQCABJIAgASTAIAElACABJUAgASWAIAElwCABJgAgASZAIAEtf8gBLb/gAS3AIAEuACABLkAgAS7AIAEvwCABMAAgATBAIAEwgCABMMAgATEAIAEyQCABMoAgATLAIAEzACABM0AgATOAIAEzwCABNAAgATVAIAE1gCABNoAgATbAIAE3ACABN4AYATiAIAE5ACABOYAgATnAIAE7f8gBPf/cAUA/5AFAf+QBQL/kAUO/4AFD/7QBRL/gAUT/2AFFP+ABRb/gAUY/4AFGf+ABRr/gAUb/tAFHP+ABR//gAVQ/yAFXACABWn/kAVu/5AFrP9ABa3/QAWw/5AFuf9ABb7/gAbY/5AG2f+QBvH/YAeJ/5AHnACAB6n/kAer/2AHrP9gB67/kAfG/5AHx/9gCBUAgAgvAIAIQgCACEMAgAhEAIAIRv8gCEsAgAhn/yAIkf8gCJT/IAia/yAIm/8gCOEAgAkzAIAJOwCACeD/IAnh/yAJ6ACAAdwAAv7QAAP+0AAE/tAABf7QAAb+0AAH/tAACP7QAAn+0AAK/tAAC/7QAAz+0AAN/tAADv7QAA/+0AAQ/tAAEf7QABL+0AAT/tAAFP7QABX+0AAW/tAAF/7QABj+0AAZ/tAAGv7QABv+0AAc/tAAHf7QAB7+0AAf/tAAIP7QACH+0AAi/tAAI/7QACT+0AAl/tAAJv7QACf+0AAo/tAAKf7QACr+0AAr/tAALP7QAC3+0AAu/tAAL/7QADD+0AAx/tAAMv7QADP+0AA0/tAANf7QADb+0AA3/tAAOP7QADn+0AA6/tAAO/7QADz+0AA9/tAAPv7QAD/+0ABA/tABCf7wAQr+8AEL/vABDP7wAQ3+8AH4/4AB+f+AAfr/gAH7/4AB/P+AAf3/gAH+/4AB//+AAgD/gAIB/4ACAv+AAgP/gAIE/4ACBf+AAgb/gAIH/4ACCP+AAgn/gAIK/4ACC/+AAgz/gAIN/4ACDv+AAg//gAIQ/4ACEf+AAhL/gAIT/4ACFP+AAhX/gAIW/4ACF/+AAhn/gAIa/4ACG/+AAhz/gAId/4ACHv+AAh//gAIg/3ACIf9wAiL/cAIj/3ACJP9wAiX/cAIm/3ACJ/9wAij/cAIp/3ACKv9wAiv/cAIs/3ACLf9wAi7/cAIv/3ACMP9wAjH/cAIy/3ACM/9wAjT/cAI1/3ACNv9wAjf/cAI4/3ACOf9wAjr/cAI7/3ACPP9wAj3/cAI+/3ACRv9wAkf/cAJI/3ACSf9wAkr/cAJL/3ACTP9wAk3/cAJO/3ACT/9wAlD/cAJR/3ACUv9wAlP/cAJU/3ACVf9wAlb/cAJX/3ACWP9wAln/cAJa/3ACW/9wAlz/cAJd/3ACXv9wAmD/cAJh/3ACYv9wAmP/cAJk/3ACZf9wAmb/cAJn/3ACaP9wAmn/cAJq/3ACa/9wAmz/cAJt/3ACbv9wAm//cAJw/3ACcf9wAnL/cAJz/3ACdP9wAnX/cAJ2/3ACd/9wAnj/cAJ5/3ACev9wAnv/cAJ8/3ACff9wAn7/cAJ//3ACgP9wAoH/cAKC/3ACg/9wAor/cAKL/3ACjP9wAo3/cAKO/3ACj/9wApD/cAKR/3ACkv9wApP/cAKpAQACqgEAAqsBAAKyAQACswEAArgBAALBAQADB/9wAwj/cAMJ/3ADCv9wAwv/cAMM/3ADDf9wAw7/cAMP/3ADEP9wAxH/cAMS/3ADE/9wAxT/cAMV/3ADFv9wAxf/cAMY/3ADGf9wAxr/cAMb/3ADHP9wAx3/cAMe/3ADH/9wAyD/cAMh/3ADIv9wAyP/cAMk/3ADJf9wAyb/cAMn/3ADKP9wAyn/cAMq/3ADK/9wAyz/cAMt/3ADLv9wAy//cAMw/3ADMf9wAzL/cAMz/3ADNP9wAzX/cAM2/3ADN/9wAzj/cAM5/3ADOv9wA0H/cANC/3ADY/+QA2T/kANl/5ADZv+QA2f/kANo/5ADaf+QA2r/kANr/5ADbP+QA23/kANu/5ADb/+QA3D/kANx/5ADyP7QA9v+0AQl/3AEJ/9wBCj/cAQp/3AEKv9wBCv/cAQs/3AELf9wBC7/cAQv/3AEMP9wBDH/cAQy/3AEM/9wBDT/cAQ1/3AENv9wBDf/cAQ4/3AEOf9wBDr/cAQ7/3AEPP9wBD3/cAQ+/3AEP/9wBED/cARD/3AERP9wBEX/cARG/3AER/9wBEj/cARJ/3AESv9wBEv/cARM/3AETf9wBE7/cARP/3AEUP9wBFH/cARS/3AEa/9wBGz/cARt/3AEbv9wBG//cARw/3AEcf9wBHL/cARz/3AEdP9wBHX/cAR2/3AEd/9wBHj/cAR5/3AEev9wBHv/cAR8/3AEff9wBIH/cASF/3AEhv9wBJr/cASb/3AEnf9wBJ7/cASf/3AEoP9wBKH/cASi/3AEo/9wBKT/cASl/3AEpv9wBKf/cASo/3AEqf9wBKr/cASr/3AErP9wBK3/cASu/3AEr/9wBLD/cASx/3AEsv9wBLP/cAS0/3AEtv/UBNL/cATX/4AE2P+ABNn/gATl/5AE6P9wBOn/cATv/3AFDv/UBRL/0AUT/1wFFP/kBRb/1AUXADgFGP/YBRn/5AUa/9QFHAAEBR3/UAUe/6AFMP+ABUv/YAVw/nAFcf5wBXv+oAV8/qAFff6gBX//oAWA/6AFgf+gBYL/oAWK/1AFjP9QBY7/AAWp/kAF9P+aBfX/mgX2/5oF9/+aBfj/mgX5/5oF+v+aBfv/mgX8/5oF/f+aBf7/mgX//5oGAP+aBgH/mgYC/5oGA/+aBgT/mgYF/5oGBv+aBgf/mgYI/5oGCf+aBgr/mgYL/5oGDP+aBg3/mgYO/5oGD/+aBhD/mgYR/5oGEv+aBhP/mgYU/5oGFf+aBhb/mgYX/5oGGP+aBhn/mgYc/5oGHf+aBh7/mgYq/5oGK/+aBiz/mgYt/5oGLv+aBi//mgYw/5oGMf+aBjL/mgYz/5oHBgC+BwcAvggZ/3AITf9wCGr/cAhr/3AIh/+gCKT/cAil/3AIpv9wCYH/cAJ7AAL/xAAD/8QABP/EAAX/xAAG/8QAB//EAAj/xAAJ/8QACv/EAAv/xAAM/8QADf/EAA7/xAAP/8QAEP/EABH/xAAS/8QAE//EABT/xAAV/8QAFv/EABf/xAAY/8QAGf/EABr/xAAb/8QAHP/EAB3/xAAe/8QAH//EACD/xAAh/8QAIv/EACP/xAAk/8QAJf/EACb/xAAn/8QAKP/EACn/xAAq/8QAK//EACz/xAAt/8QALv/EAC//xAAw/8QAMf/EADL/xAAz/8QANP/EADX/xAA2/8QAN//EADj/xAA5/8QAOv/EADv/xAA8/8QAPf/EAD7/xAA//8QAQP/EAEEASABCAEgAQwBIAEQASABFAEgARgBIAEcASABIAEgASf+eAEr/ngBL/54ATP+eAE3/ngBO/54AT/+eAFD/ngBR/54AUv+eAFP/ngBUADAAVQBIAFYASABXAEgAWABIAFkASABaAEgAWwBIAFwASABdAEgAXgBIAF8ASABgAEgAYQBIAGIASABjAEgAZABIAGUASABmAEgAZwBIAGgASABpAEgAagBIAGsASABsAEgAbQBIAG4ASABvAEgAcABIAHEASAByAEgAcwBIAHQASAB1AEgAdgBIAHcASAB4AEgAeQBIAHsASACEAEgAhQBIAIYASACHAEgAiABIAIkAbACLAEgAjf+eAI7/ngCP/54AkP+eAJH/ngCS/54Ak/+eAJT/ngCV/54Alv+eAJf/ngCh/8gAogBIAKMASACkAEgApQBIAKYASACnAEgAqABIAKkASACqAEgAqwBIAKwASACtAEgArgBIAK8ASACwAEgAsQBIALIASACzAEgAtABIALUASAC2AEgAtwBIALgASAC5AEgAugBIALsASAC8AEgAvQBIAL4ASAC/AEgAwABIAMEASADCAEgAwwBIAMQASADFAkwAyQBIAMoASADLAEgA0ABIANEASADSAEgA1QBIANYASADXAEgA2ABIAOcASADpAEgBCQC3AQoAtwELALcBDAC3AQ0AtwEO//ABDwBIARAASAERAEgBEgBIARMASAEUAEgBFQBIARYASAEXAEgBGAC4ARkASAEaAEgBGwBIARwASAEdAEgBHgBIAR8ASAEgAEgBIQBIASIASAEj/uIBJABIASUASAEmAEgBJwBIASgASAEpAEgBKgBIASv/1QEsAEgBLQBIAS4ASAEvAEgBMABIATEASAEyAEgBMwBIATQASAE2AEgBNwBIATgASAE5AEgBOgBIATsASAE8AEgBPQBIAT4ASAE/AEgBQP+eAUH/ngFC/54BQ/+eAUT/ngFF/54BRv+eAUf/ngFI/54BSf+eAUr/ngFL/54BTP+eAU3/ngFO/54BT/+eAVD/ngFR/54BUv+eAVP/ngFU/54BVf+eAVb/ngFX/54BWP+eAVn/ngFa/54BW/+eAVz/ngFd/54BXv+eAV//ngFg/54BYf+eAWL/ngFj/54BZP+eAWX/ngFm/54BZ/+eAWj/ngFp/54Bav+eAWv/ngFs/54Bbf+eAW7/ngFv/54BcP+eAXH/ngFy/54Bc/+eAXT/ngF1/54BdgBIAXcASAF4AEgBeQBIAXoASAF7AEgBfABIAX3/ngF+AEgBfwBIAYAASAGBAEgBggBIAYMASAGEAEgBhQBIAYYASAGHAEgBiABIAYkASAGKAEgBiwBIAYwASAGNAEgBjgBIAY8ASAGQAEgBkQBIAZIASAGTAEgBlABIAZUASAGWAEgBlwBIAZgASAGZADwBmgA8AZsAPAGcADwBnQA8AZ4APAGfADwBoAA8AaEAPAGiADwBowA8AaQAPAGl/+YBpv/mAaf/5gGo/+YBqf/mAar/5gGr/+YBrP/mAa3/5gGu/+YBr//mAbD/5gGx/+YBsv/mAbP/5gG0/+YBtf/mAbb/5gG3/+YBuP/mAbn/5gG6/+YBu//mAbz/5gG9/+YBvv/mAb//5gHA/+YBwf/mAcL/5gHD/+YBxP/mAcX/vAHG/7wBx/+8Acj+PAHJ/jwByv48Acv+PAHM/jwBzf48Ac7+PAHP//QB0P/0AdH/9AHS//QB0//0AdT/9AHV/9sB1v/bAdf/2wHY/9sB2f/bAdr/2wHb/9sB3P/bAd3/2wHe/9sB3//bAeD/2wHh/9sB4v/bAeP/2wHo/9sB6f/bAez/2wHtADoB7gA6Ae8AOgHwADoB8QA6AfIAOgHzADoB9AA6AfUAOgH2ADoB9wA6Aj8ASAJBAEgCQgBIAkMASAJEAEgCRQBIApQASAKVAEgClgBIApcASAKYAEgCmQBIApoASAKeAEgCnwBIAqAASAKhAEgCogBIAqMASAKkAEgCpQBIAqYASALKAEgCywBIAswASALNAEgCzgBIAs8ASALQAEgC0QBIAtMASALUAEgC1QBIAtYASALXAEgC2QBIAtoASALbAEgC3ABIAt0ASALeAEgC3wBIAuAASALhAEgC4gBIAuMASALkAEgC5QBIAucASALoAEgC6QBIAuoASALrAEgC7ABIAu0ASALuAEgC7wBIA3IASANzAEgDyP/EA9kASAPaAEgD3P+eA94ASAP7/7wD/ABIA/0ASAQA//QEAwBIBAQASAQFAEgEB/+eBAgASAQJ/9sECv+eBAsASAQMADwEEABIBBEAPAQSAEgEEwBIBBQAPAQVAEgEFgBIBBgASAQZ/54EGgBIBBwASAQdAEgEHv+eBCP/vAQkADwEJgBIBLYAIATuAEgFAP+eBQH/ngUC/54FCQBIBQwASAUNAEgFDgAgBQ8BDAUQAHMFEgBMBRMAEAUUAEUFFgAgBRcAvgUYADoFGQBVBRoAIAUbAQwFHABMBR0AEAUxAhAFNQDxBUP+IAVK/jsFSwBbBU4ASAVQ/7wFUQFpBVIBaQVTATgFVAE4BVX+bQVW/m0FXgFpBV8BOAVgATgFYf5tBYcBaQWO/+AFjwAYBZAAKAWRACgFkgAoBZMAKAWUADwFlQFpBZcBaQWYACgFmQAoBZoBaQWdACgFngAoBZ8AKAWgACgFoQFpBaIBaQWkAWkFpQAoBaYAKAWnAWkFqAFpBbD/ngW/AEgGoQBIBq0BaQauAWkGrwFpBrAAKAaxACgGxAFpBsUBaQbGAWkGxwAoBsgAKAbY/54G2f+eBtoASAbbAEgG3ABIBt0ASAbeAEgG8QA8BvgASAeGAEgHif+eB5cASAefAEgHqf+eB6sAPAesADwHrv+eB6//2wew/9sHu//0B7z/9AfDAEgHxABIB8UASAfG/54HxwA8B8j/9AfJAEgHygBICFoASAh5AEgIkf+8CJL/9AiU/7wIlgBICJgASAiZAEgImv+8CJv/vAic//QInQBICJ4ASAif//QIoABICS4ASAk8//QCewAC/8QAA//EAAT/xAAF/8QABv/EAAf/xAAI/8QACf/EAAr/xAAL/8QADP/EAA3/xAAO/8QAD//EABD/xAAR/8QAEv/EABP/xAAU/8QAFf/EABb/xAAX/8QAGP/EABn/xAAa/8QAG//EABz/xAAd/8QAHv/EAB//xAAg/8QAIf/EACL/xAAj/8QAJP/EACX/xAAm/8QAJ//EACj/xAAp/8QAKv/EACv/xAAs/8QALf/EAC7/xAAv/8QAMP/EADH/xAAy/8QAM//EADT/xAA1/8QANv/EADf/xAA4/8QAOf/EADr/xAA7/8QAPP/EAD3/xAA+/8QAP//EAED/xABBAEgAQgBIAEMASABEAEgARQBIAEYASABHAEgASABIAEn/ngBK/54AS/+eAEz/ngBN/54ATv+eAE//ngBQ/54AUf+eAFL/ngBT/54AVAAwAFUASABWAEgAVwBIAFgASABZAEgAWgBIAFsASABcAEgAXQBIAF4ASABfAEgAYABIAGEASABiAEgAYwBIAGQASABlAEgAZgBIAGcASABoAEgAaQBIAGoASABrAEgAbABIAG0ASABuAEgAbwBIAHAASABxAEgAcgBIAHMASAB0AEgAdQBIAHYASAB3AEgAeABIAHkASAB7AEgAhABIAIUASACGAEgAhwBIAIgASACJAGwAiwBIAI3/ngCO/54Aj/+eAJD/ngCR/54Akv+eAJP/ngCU/54Alf+eAJb/ngCX/54Aof+8AKIASACjAEgApABIAKUASACmAEgApwBIAKgASACpAEgAqgBIAKsASACsAEgArQBIAK4ASACvAEgAsABIALEASACyAEgAswBIALQASAC1AEgAtgBIALcASAC4AEgAuQBIALoASAC7AEgAvABIAL0ASAC+AEgAvwBIAMAASADBAEgAwgBIAMMASADEAEgAxQJMAMkASADKAEgAywBIANAASADRAEgA0gBIANUASADWAEgA1wBIANgASADnAEgA6QBIAQkAtwEKALcBCwC3AQwAtwENALcBDv/wAQ8ASAEQAEgBEQBIARIASAETAEgBFABIARUASAEWAEgBFwBIARgAuAEZAEgBGgBIARsASAEcAEgBHQBIAR4ASAEfAEgBIABIASEASAEiAEgBI/7iASQASAElAEgBJgBIAScASAEoAEgBKQBIASoASAEr/9UBLABIAS0ASAEuAEgBLwBIATAASAExAEgBMgBIATMASAE0AEgBNgBIATcASAE4AEgBOQBIAToASAE7AEgBPABIAT0ASAE+AEgBPwBIAUD/ngFB/54BQv+eAUP/ngFE/54BRf+eAUb/ngFH/54BSP+eAUn/ngFK/54BS/+eAUz/ngFN/54BTv+eAU//ngFQ/54BUf+eAVL/ngFT/54BVP+eAVX/ngFW/54BV/+eAVj/ngFZ/54BWv+eAVv/ngFc/54BXf+eAV7/ngFf/54BYP+eAWH/ngFi/54BY/+eAWT/ngFl/54BZv+eAWf/ngFo/54Baf+eAWr/ngFr/54BbP+eAW3/ngFu/54Bb/+eAXD/ngFx/54Bcv+eAXP/ngF0/54Bdf+eAXYASAF3AEgBeABIAXkASAF6AEgBewBIAXwASAF9/54BfgBIAX8ASAGAAEgBgQBIAYIASAGDAEgBhABIAYUASAGGAEgBhwBIAYgASAGJAEgBigBIAYsASAGMAEgBjQBIAY4ASAGPAEgBkABIAZEASAGSAEgBkwBIAZQASAGVAEgBlgBIAZcASAGYAEgBmQA8AZoAPAGbADwBnAA8AZ0APAGeADwBnwA8AaAAPAGhADwBogA8AaMAPAGkADwBpf/mAab/5gGn/+YBqP/mAan/5gGq/+YBq//mAaz/5gGt/+YBrv/mAa//5gGw/+YBsf/mAbL/5gGz/+YBtP/mAbX/5gG2/+YBt//mAbj/5gG5/+YBuv/mAbv/5gG8/+YBvf/mAb7/5gG//+YBwP/mAcH/5gHC/+YBw//mAcT/5gHF/7wBxv+8Acf/vAHI/jwByf48Acr+PAHL/jwBzP48Ac3+PAHO/jwBz//0AdD/9AHR//QB0v/0AdP/9AHU//QB1f/bAdb/2wHX/9sB2P/bAdn/2wHa/9sB2//bAdz/2wHd/9sB3v/bAd//2wHg/9sB4f/bAeL/2wHj/9sB6P/bAen/2wHs/9sB7QA6Ae4AOgHvADoB8AA6AfEAOgHyADoB8wA6AfQAOgH1ADoB9gA6AfcAOgI/AEgCQQBIAkIASAJDAEgCRABIAkUASAKUAEgClQBIApYASAKXAEgCmABIApkASAKaAEgCngBIAp8ASAKgAEgCoQBIAqIASAKjAEgCpABIAqUASAKmAEgCygBIAssASALMAEgCzQBIAs4ASALPAEgC0ABIAtEASALTAEgC1ABIAtUASALWAEgC1wBIAtkASALaAEgC2wBIAtwASALdAEgC3gBIAt8ASALgAEgC4QBIAuIASALjAEgC5ABIAuUASALnAEgC6ABIAukASALqAEgC6wBIAuwASALtAEgC7gBIAu8ASANyAEgDcwBIA8j/xAPZAEgD2gBIA9z/ngPeAEgD+/+8A/wASAP9AEgEAP/0BAMASAQEAEgEBQBIBAf/ngQIAEgECf/bBAr/ngQLAEgEDAA8BBAASAQRADwEEgBIBBMASAQUADwEFQBIBBYASAQYAEgEGf+eBBoASAQcAEgEHQBIBB7/ngQj/7wEJAA8BCYASAS2ACAE7gBIBQD/ngUB/54FAv+eBQkASAUMAEgFDQBIBQ4AIAUPAQwFEABzBRIATAUTABAFFABFBRYAIAUXAL4FGAA6BRkAVQUaACAFGwEMBRwATAUdABAFMQIQBTUA8QVD/iAFSv47BUsAWwVOAEgFUP+8BVEBaQVSAWkFUwE4BVQBOAVV/m0FVv5tBV4BaQVfATgFYAE4BWH+bQWHAWkFjv/gBY8AGAWQACgFkQAoBZIAKAWTACgFlAA8BZUBaQWXAWkFmAAoBZkAKAWaAWkFnQAoBZ4AKAWfACgFoAAoBaEBaQWiAWkFpAFpBaUAKAWmACgFpwFpBagBaQWw/54FvwBIBqEASAatAWkGrgFpBq8BaQawACgGsQAoBsQBaQbFAWkGxgFpBscAKAbIACgG2P+eBtn/ngbaAEgG2wBIBtwASAbdAEgG3gBIBvEAPAb4AEgHhgBIB4n/ngeXAEgHnwBIB6n/ngerADwHrAA8B67/ngev/9sHsP/bB7v/9Ae8//QHwwBIB8QASAfFAEgHxv+eB8cAPAfI//QHyQBIB8oASAhaAEgIeQBICJH/vAiS//QIlP+8CJYASAiYAEgImQBICJr/vAib/7wInP/0CJ0ASAieAEgIn//0CKAASAkuAEgJPP/0AAIAgQACAJcAAAChAMcAlgDJAOkAvQEJAlIA3gJUAlQCKAJWAlYCKQJYAl4CKgJgAmECMQJkAoMCMwKFAvkCUwL7AvwCyAL+A6QCygOmA6kDcQOrA8gDdQPMA9gDkwPaA9wDoAPgA+ADowP7A/4DpAQABAADqAQDBAcDqQQJBAoDrgQNBA0DsAQQBBIDsQQUBBsDtAQeBB4DvAQiBEMDvQRGBEYD3wRsBH0D4ASBBIQD8gSIBLUD9gS3BLoEJAS8BN4EKAThBOUESwTnBOsEUATtBO8EVQUABQIEWAUJBQkEWwUMBRAEXAUSBRMEYQUXBR8EYwU7BT0EbAU/BT8EbwVBBUIEcAVEBUQEcgVGBUYEcwVIBUgEdAVOBU4EdQVQBVIEdgVbBVsEeQVeBV4EegVpBWoEewVsBXEEfQV0BXQEgwV7BX0EhAV/BX8EhwWCBYIEiAWHBYgEiQWKBY0EiwWQBZUEjwWXBZoElQWdBaIEmQWkBacEnwWqBa0EowWvBbAEpwWyBbMEqQW5Bb8EqwXJBcsEsgXNBdMEtQXVBdoEvAXcBdwEwgXeBeIEwwXlBecEyAXqBesEywXtBe0EzQX0BhkEzgYcBh4E9AYhBiEE9wYjBiME+AYmBiYE+QYpBjME+gY5BkIFBQZQBlAFDwZXBlcFEAaoBqwFEQa/BsMFFgbYBt4FGwbxBvIFIgb4BvgFJAeGB4YFJQeJB4kFJgeLB4wFJwePB48FKQeXB5cFKgecB5wFKwefB58FLAepB6kFLQerB6wFLgevB7AFMAe3B7kFMge7B7wFNQfDB8oFNwfMB8wFPwftB+8FQAgVCBUFQwgZCBkFRAgjCCMFRQguCC8FRghCCEQFSAhGCEYFSwhLCEsFTAhNCE0FTQhaCFoFTghnCGcFTwhqCGsFUAh5CHkFUgiHCIcFUwiRCJIFVAiUCJQFVgiWCJYFVwiYCKAFWAikCKYFYQi1CLUFZAjhCOEFZQkuCS4FZgkzCTMFZwk3CTcFaAk6CT0FaQngCeEFbQnoCegFbwACAU8AAgBAAAUAQQBIAAEASQBTAAQAVAB5AAEAewB7AAEAhACJAAEAigCKABsAiwCLAAEAjQCXAAQAoQDFAAEAxgDHABYAyQDLAAEAzADPABYA0ADSAAEA0wDUABYA1QDYAAEA2gDaABYA4wDkABYA5wDnAAEA6ADoABYA6QDpAAEBCQENACMBDgE0AAEBNQE1ABsBNgE/AAEBQAF1AAQBdgF8AAEBfQF9AAQBfgGKAAEBiwGXABQBmAGYAAEBmQGkAA0BxQHHABwByAHOAB8BzwHUABMB1QHjAAwB6AHpAAwB7AHsAAwB7QH3ABkB+AIXAAcCGAIYAAMCGQIfAAcCIAI+AAICPwI/AAECQQJFAAECRgJeAAICYAKDAAIChQKJACcCigKTAAIClAKaAAECmwKbAAgCnAKdAAoCngKmAAECpwKoABICqQKrACICrAKtABICrgKuAAoCrwKxABICsgKzACICtAK2ABICtwK3AEYCuAK4ACICuQK7ABICvAK9ABsCvgK/AAoCwALAABICwQLBACICwgLCABICwwLDABsCxgLJABsCygLRAAEC0gLSAB0C0wLXAAEC2ALYAAoC2QLlAAEC5gLmAAoC5wLvAAEC8ALxAAMC8gLzAAgC9AL7AAMC/AL8ABsC/QMGAAMDBwM6AAIDOwNAAAMDQQNCAAIDQwNDAAMDRQNHAAMDSwNiAAMDYwNxABEDcgNzAAEDdAOCAAoDgwOjAAgDpAOkAAkDpgOnAAkDqAOpAB4DqwOwAB4DsQO0AB0DtQPHAAkDyAPIAAUDzAPMAAkDzQPYABgD2QPaAAED2wPbAD0D3APcAAQD3gPeAAED4APgAD8D+wP7ABwD/AP9AAEEAAQAABMEAwQFAAEEBgQGADEEBwQHAAQECAQIAAEECQQJAAwECgQKAAQECwQLAAEEDAQMAA0EEAQQAAEEEQQRAA0EEgQTAAEEFAQUAA0EFQQWAAEEFwQXADEEGAQYAAEEGQQZAAQEGgQaAAEEHAQdAAEEHgQeAAQEIwQjABwEJAQkAA0EJQQlAAIEJgQmAAEEJwRAAAIEQQRBAAMEQgRCAEQEQwRDADIERARRABUEUwRqAAMEbAR9AA8EgQSEAAMEhQSFADIEhgSGAAIEiASZAAMEmgSbAAIEnAScAEsEnQS0AAsEtQS1AAkEtgS2ACkEtwS5AAMEugS6AAoEuwS7ACYEvAS9AB0EvwTEAAMExQTFACEExgTIACYEyQTQAAME0QTRACEE0gTSAAIE0wTUAB0E1QTWAAME1wTZAAcE2gTcAAME3QTdACEE3gTeABIE4QThACYE4gTiAAME5ATkAAME5QTlABEE5gTnAAME6ATpAAIE6wTrAAoE7ATsACEE7QTtAAkE7gTuABQE7wTvAAIFAAUCAAQFCQUJAAEFDAUNAAEFDgUOACkFDwUPADcFEAUQAFIFEgUSADsFEwUTADMFFgUWACkFGgUaACkFGwUbADcFHAUcADsFHQUdADMFHgUeAE0FHwUfADYFOwU7ACwFPAU8AC0FPQU9ACwFPwU/AC0FQQVBACwFQgVCAC0FRQVFAC4FRwVHAC4FSQVJAC4FTQVNAE4FTgVOAAEFUAVQABwFUQVSAA4FVwVbABcFXAVcAAMFXgVeAA4FYgVjABcFaQVpADoFagVqADAFbAVtACoFbgVuADoFbwVvADAFcAVxADkFdAV0ADAFewV9AC8FfwWCACUFhwWHAA4FiAWIACoFigWKADQFiwWLADUFjAWMADQFjQWNADUFkAWTABAFlAWVAA4FlgWWABcFlwWXAA4FmAWZABAFmgWaAA4FnQWgABAFoQWiAA4FowWjABcFpAWkAA4FpQWmABAFpwWoAA4FqgWrACAFrAWtACsFrgWuABcFrwWvADgFsAWwAAQFsgWyADgFswWzACAFuQW5ACsFugW9ACAFvgW+ADYFvwW/AAEFyQXJAEAFygXKACgFywXNACQFzgXOAEEFzwXPACQF0AXQACgF0QXRAEUF0gXSAEcF0wXUACgF1wXXACQF2wXbAEwF3AXcAE8F3gXeADwF3wXfAFMF4AXgAFQF4QXhADwF5AXkAEkF5gXmAFEF5wXnAEMF7gXuAEoF9AYZAAYGHAYeAAYGIAYgAEgGIgYiAFAGIwYjAEIGKgYzAAYGOQZCABoGUAZQABoGoQahAAEGrQavAA4GsAaxABAGxAbGAA4GxwbIABAG2AbZAAQG2gbeAAEG8QbxAA0G+Ab4AAEHhgeGAAEHiQeJAAQHiweLAD4HlweXAAEHnAecAAMHnwefAAEHqQepAAQHqwesAA0HrgeuAAQHrwewAAwHuwe8ABMHwwfFAAEHxgfGAAQHxwfHAA0HyAfIABMHyQfKAAEIFQgVAAMIGQgZAAIIIAghACEILgguAAoILwgvAAMIQghEAAMIRghGAAkISwhLAAMITQhN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"}},"time_used":129,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":30,"receive":99,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CV94PaAu.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.996Z","timestamp":1785139670996,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CV94PaAu.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:51 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3f76-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2884\r\nKeep-Alive: timeout=5, max=86\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":16246,"size_decoded":3235,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text","md5":"135fcfaf4912f3d38918b98de30bf5bf","sha1":"bc40d01f8e4f157336bb49328acf98cf3ad9b851","sha256":"28b4e74992d450c249a7aea814b5edcc0d315aad6fc48d79e2bbee087b2c2c87","sha512":"b879417efa9abf9b8522227a45d214beaa4c9a2e802aee76ffa4b7662e6744bb147244d59d985737fa1658196bc981068f86488d073c87a84669394ccaa88996","ssdeep":"384:u8EaugiRP/cOxuDF/eHoeNyHRln14K2RqBJa:u8E9HRV","tlshash":"b072c918d4f50431d297b6364e2b8ca9baf4465fdcaabe587bdd04011f0e42c8ab962d","first_seen":"2026-07-27T05:24:57.713437Z","last_seen":"2026-07-27T11:49:48.97104Z","times_seen":5,"resource_available":true,"data":"aW1wb3J0IHsgXyBhcyBJIH0gZnJvbSAiLi9iTmVwdWRwMS5qcyI7CmltcG9ydCB7IGkgYXMgUCB9IGZyb20gIi4vS2N2NkhBekguanMiOwppbXBvcnQgeyBzIGFzIGggfSBmcm9tICIuL0RuYUdjbVRyLmpzIjsKaW1wb3J0IHsKICByIGFzIGMsCiAgaSBhcyBFLAogIGogYXMgSCwKICBvIGFzIFIsCiAgayBhcyBWLAogIGwgYXMgQSwKICBjIGFzIHIsCiAgYiBhcyB0LAogIHQgYXMgZSwKICBmIGFzIFQsCiAgbiBhcyBtLAogIEYgYXMgZywKICBlIGFzIF8sCiAgcCBhcyB1LAogIGEsCiAgdSBhcyBmLAp9IGZyb20gIi4vU20ybUNmREUuanMiOwppbXBvcnQgIi4vQ0Fsa1didV8uanMiOwppbXBvcnQgIi4vQjhUeFR5YWsuanMiOwppbXBvcnQgIi4vQ0k4VkZzZ0guanMiOwpjb25zdCBCID0geyBjbGFzczogIm15LTE2IG1kOm15LTI0IiB9LAogIFMgPSB7CiAgICBrZXk6IDAsCiAgICBjbGFzczoKICAgICAgImZpeGVkIGJvdHRvbS0wIHotMTAgb3JkZXItMiB3LWZ1bGwgcHgtMCBtdC0wIG1kOnB4LTQgbWQ6cmVsYXRpdmUgbWQ6dy0xLzMiLAogIH0sCiAgcSA9IHsKICAgIGNsYXNzOgogICAgICAiYmctd2hpdGUgYm9yZGVyLXNvbGlkIGJvcmRlciBib3JkZXItZ3JheS0zMDAgIXJvdW5kZWQtdGwtMnhsICFyb3VuZGVkLXRyLTJ4bCBzaGFkb3ctbGcgdy1mdWxsIHB0LTggcGItMyBweC00IiwKICB9LAogIEwgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTgwMCB0ZXh0LXNtLXNlbWlib2xkIiB9LAogIE4gPSBbIm9uQ2xpY2siXSwKICBPID0gWyJpZCJdLAogIGogPSB7IGtleTogMSB9LAogIHogPSB7IGNsYXNzOiAiY29udGFpbmVyIHB4LTQgbXgtYXV0byIgfSwKICBEID0geyBjbGFzczogImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgbWQ6Z2FwLTgiIH0sCiAgRiA9IHsgY2xhc3M6ICJvcmRlci0xIHctZnVsbCBtZDp3LTIvMyIgfSwKICBRID0geyBjbGFzczogInctZnVsbCBweS04IHRleHQtY2VudGVyIHJvdW5kZWQtbGcgYmctcHJpbWFyeS01MCIgfSwKICBHID0geyBjbGFzczogIm10LTggbWItMjQiIH0sCiAgTSA9IHsgY2xhc3M6ICJmb250LWJvbGQgdGV4dC1ncmF5LTkwMCBsZzpkaXNwbGF5LWxnLWJvbGQgZGlzcGxheS1zbS1ib2xkIiB9LAogIFUgPSB7CiAgICBjbGFzczogInctZnVsbCBwLTYgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItc29saWQgcm91bmRlZC1sZyIsCiAgfSwKICBKID0geyBjbGFzczogInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktODAwIiB9LAogIEsgPSB7IGNsYXNzOiAibXQtNCIgfSwKICBXID0gWyJvbkNsaWNrIl0sCiAgWCA9IFsiaWQiXSwKICBZID0geyBjbGFzczogIm1iLTgiIH0sCiAgWiA9IHsgaWQ6ICJOQ29ubmVjdCIsIGNsYXNzOiAibWItNCB0ZXh0LXhsLW1lZGl1bSIgfSwKICB0dCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtcmVndWxhciIgfSwKICBzdCA9IHsgY2xhc3M6ICJtYi04IiB9LAogIGV0ID0geyBpZDogIkNvb2tpZXMiLCBjbGFzczogIm1iLTQgdGV4dC14bC1tZWRpdW0iIH0sCiAgb3QgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXJlZ3VsYXIiIH0sCiAgbHQgPSB7IGNsYXNzOiAibWItOCIgfSwKICBpdCA9IHsgaWQ6ICJQZXJzb25hbEluZm9ybWF0aW9uIiwgY2xhc3M6ICJtYi00IHRleHQteGwtbWVkaXVtIiB9LAogIHJ0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIGF0ID0geyBjbGFzczogInB4LTggdGV4dC1ncmF5LTYwMCBsaXN0LWRpc2MgdGV4dC1tZC1yZWd1bGFyIiB9LAogIG50ID0geyBjbGFzczogIm15LTQiIH0sCiAgZHQgPSB7IGNsYXNzOiAibXktNCIgfSwKICBjdCA9IHsgY2xhc3M6ICJteS00IiB9LAogIG10ID0geyBjbGFzczogIm15LTQiIH0sCiAgdXQgPSB7IGNsYXNzOiAibWItOCIgfSwKICB2dCA9IHsgaWQ6ICJTZWN1cml0eVRlY2hub2xvZ2llcyIsIGNsYXNzOiAibWItNCB0ZXh0LXhsLW1lZGl1bSIgfSwKICBwdCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtcmVndWxhciIgfSwKICB5dCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtcmVndWxhciIgfSwKICBodCA9IHsgY2xhc3M6ICJtYi04IiB9LAogIGd0ID0gewogICAgaWQ6ICJUcmFuc2ZlcmluZm9ybWF0aW9uVG9UaGlyZFBhcnRpZXMiLAogICAgY2xhc3M6ICJtYi00IHRleHQteGwtbWVkaXVtIiwKICB9LAogIF90ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIGZ0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIGJ0ID0geyBjbGFzczogIm1iLTgiIH0sCiAgJHQgPSB7CiAgICBpZDogIlRyYW5zbWlzc2lvbk9mSW5mb3JtYXRpb25Ub1JlZ3VsYXRvcnMiLAogICAgY2xhc3M6ICJtYi00IHRleHQteGwtbWVkaXVtIiwKICB9LAogIGt0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIHh0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIHd0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIFR0ID0geyBjbGFzczogIm1iLTgiIH0sCiAgQ3QgPSB7IGlkOiAiUmVmdXNhbFRvUHJvdmlkZUluZm9ybWF0aW9uIiwgY2xhc3M6ICJtYi00IHRleHQteGwtbWVkaXVtIiB9LAogIEl0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIFB0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIEV0ID0geyBjbGFzczogIm9yZGVyLTIgaGlkZGVuIHctZnVsbCBtZDp3LTEvMyBtZDpibG9jayIgfSwKICBIdCA9IHsKICAgIGNsYXNzOgogICAgICAiYmctd2hpdGUgYm9yZGVyLXNvbGlkIGJvcmRlciBib3JkZXItZ3JheS0zMDAgdy1mdWxsIHJvdW5kZWQtWzFyZW1dIHAtOCBzdGlja3kgdG9wLTI0IiwKICB9LAogIFJ0ID0geyBjbGFzczogImZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCB0ZXh0LXRleHQtbGciIH0sCiAgVnQgPSB7IGNsYXNzOiAibXQtNCBtbC0zIiB9LAogIEF0ID0gWyJvbkNsaWNrIl0sCiAgQnQgPSBbImlkIl0sCiAgRnQgPSB7CiAgICBfX25hbWU6ICJwcml2YWN5LXBvbGljeSIsCiAgICBzZXR1cChTdCkgewogICAgICBjb25zdCBkID0gYygiR2VuZXJhbCBSdWxlcyIpLAogICAgICAgIHYgPSBjKG51bGwpLAogICAgICAgIG4gPSBjKCExKSwKICAgICAgICBiID0gYyghMCksCiAgICAgICAgeyB0OiBwIH0gPSBFKCksCiAgICAgICAgQyA9ICgpID0+IHsKICAgICAgICAgIG4udmFsdWUgPSAhbi52YWx1ZTsKICAgICAgICB9OwogICAgICBIKG4sIChzKSA9PiB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHMgPyAiaGlkZGVuIiA6ICJhdXRvIjsKICAgICAgfSk7CiAgICAgIGNvbnN0IHkgPSAocywgbykgPT4gewogICAgICAgICAgdi52YWx1ZSA9PT0gcwogICAgICAgICAgICA/ICgoZC52YWx1ZSA9ICIiKSwgKHYudmFsdWUgPSBudWxsKSkKICAgICAgICAgICAgOiAoKGQudmFsdWUgPSBvKSwgKHYudmFsdWUgPSBzKSk7CiAgICAgICAgfSwKICAgICAgICAkID0gKCkgPT4gewogICAgICAgICAgY29uc3QgcyA9IGsudmFsdWU7CiAgICAgICAgICBzICYmIChiLnZhbHVlID0gUChzKSk7CiAgICAgICAgfTsKICAgICAgUigoKSA9PiB7CiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsICQpOwogICAgICB9KSwKICAgICAgICBWKCgpID0+IHsKICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCAkKTsKICAgICAgICB9KTsKICAgICAgY29uc3QgayA9IGMobnVsbCk7CiAgICAgIHJldHVybiAoCiAgICAgICAgQSh7CiAgICAgICAgICB0aXRsZTogIk5Db25uZWN0IHwgIiArIHAoInByaXZhY3kubWV0YVRpdGxlIiksCiAgICAgICAgICBtZXRhOiBbCiAgICAgICAgICAgIHsgbmFtZTogInRpdGxlIiwgY29udGVudDogIk5Db25uZWN0IHwgIiArIHAoInByaXZhY3kubWV0YVRpdGxlIikgfSwKICAgICAgICAgICAgeyBuYW1lOiAiZGVzY3JpcHRpb24iLCBjb250ZW50OiBwKCJwcml2YWN5Lm1ldGFEZXNjcmlwdGlvbiIpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pLAogICAgICAgIChzLCBvKSA9PiB7CiAgICAgICAgICBjb25zdCB4ID0gSTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIGEoKSwKICAgICAgICAgICAgcigiZGl2IiwgQiwgWwogICAgICAgICAgICAgIGIudmFsdWUKICAgICAgICAgICAgICAgID8gKGEoKSwgcigiZGl2IiwgaikpCiAgICAgICAgICAgICAgICA6IChhKCksCiAgICAgICAgICAgICAgICAgIHIoImRpdiIsIFMsIFsKICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBxLCBbCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCB7IGNsYXNzOiAiZmxleCBqdXN0aWZ5LWJldHdlZW4iLCBvbkNsaWNrOiBDIH0sIFsKICAgICAgICAgICAgICAgICAgICAgICAgdCgicCIsIEwsIGUocy4kdCgicXVpY2tBY2Nlc3MiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgVCh4LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9rZXlib2FyZF9kb3VibGVfYXJyb3dfZG93bi5zdmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJ3LVsyNHB4XSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogbShbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3ZlcmZsb3ctaGlkZGVuIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICJtYXgtaC1hdXRvIjogbi52YWx1ZSwgIm1heC1oLTAiOiAhbi52YWx1ZSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGEoITApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuJHRtKCJwcml2YWN5LnRpdGxlcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaSwgbCkgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm10LTQgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgY3Vyc29yLXBvaW50ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAodykgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkobCwgcy4kcnQoaSkpLCBmKGgpKGwpLCAobi52YWx1ZSA9ICExKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAjJHtsfWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogbShbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuJHJ0KGkpID09PSBkLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAidGV4dC1ncmF5LTgwMCBmb250LW1lZGl1bSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJ0ZXh0LWdyYXktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJsb2NrIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZShzLiRydChpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIF0pKSwKICAgICAgICAgICAgICB0KCJkaXYiLCB6LCBbCiAgICAgICAgICAgICAgICB0KCJkaXYiLCBELCBbCiAgICAgICAgICAgICAgICAgIHQoImRpdiIsIEYsIFsKICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBRLCBbCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIFQoeCwgewogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAidy1bMjAwcHhdIG14LWF1dG8iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogInN0YXRpY3MvcG9saWN5LnBuZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0gfHwgKG9bMF0gPSAoaSkgPT4gKHMudmlzaWJsZSA9ICFzLnZpc2libGUpKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBHLCBbdCgiaDEiLCBNLCBlKHMuJHQoInByaXZhY3kubWFpblRpdGxlIikpLCAxKV0pLAogICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2tleTogImVsZW1lbnRUb1RyYWNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBrLAogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm9yZGVyLTIgYmxvY2sgdy1mdWxsIG10LTE2IG1iLTggbWQ6aGlkZGVuIiwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIFUsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICB0KCJoMiIsIEosIGUocy4kdCgicXVpY2tBY2Nlc3MiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIEssIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhKCEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy4kdG0oInByaXZhY3kudGl0bGVzIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGksIGwpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm10LTQgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgY3Vyc29yLXBvaW50ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICh3KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5KGwsIHMuJHJ0KGkpKSwgZihoKShsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYCMke2x9YCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IG0oWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPT09IGQudmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gInRleHQtZ3JheS04MDAgZm9udC1tZWRpdW0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJ0ZXh0LWdyYXktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmxvY2siLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKHMuJHJ0KGkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgIDUxMgogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgWSwgWwogICAgICAgICAgICAgICAgICAgICAgICB0KCJoMiIsIFosICLQmtC+0L3RhNC40LTQtdC90YbQuNCw0LvRjNC90L7RgdGC0Ywg0Lgg0L/QvtC70LjRgtC40LrQsCIsIDEpLAogICAgICAgICAgICAgICAgICAgICAgICB0KCJwIiwgdHQsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICB1KGUocy4kdCgicHJpdmFjeS5oaTEiKSkgKyAiICIsIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bMV0gfHwgKG9bMV0gPSB0KCJiciIsIG51bGwsIG51bGwsIC0xKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdSgiICIgKyBlKHMuJHQoInByaXZhY3kuaGkyIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIHN0LCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHQoImgyIiwgZXQsIGUocy4kdCgicHJpdmFjeS50aXRsZXMuQ29va2llcyIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIHQoInAiLCBvdCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgIHUoZShzLiR0KCJwcml2YWN5LmNvb2tpZTEiKSkgKyAiICIsIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bMl0gfHwgKG9bMl0gPSB0KCJiciIsIG51bGwsIG51bGwsIC0xKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdSgiICIgKyBlKHMuJHQoInByaXZhY3kuY29va2llMiIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBsdCwgWwogICAgICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgICAgICJoMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZShzLiR0KCJwcml2YWN5LnRpdGxlcy5QZXJzb25hbEluZm9ybWF0aW9uIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgdCgicCIsIHJ0LCBlKHMuJHQoInByaXZhY3kucGVyc29uYWwxIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgdCgidWwiLCBhdCwgWwoKICAgICAgICAgICAgICAgICAgICAgICAgICB0KCJsaSIsIGR0LCBlKHMuJHQoInByaXZhY3kucGVyc29uYWwyIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0KCJsaSIsIGN0LCBlKHMuJHQoInByaXZhY3kucGVyc29uYWwzIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0KCJsaSIsIG10LCBlKHMuJHQoInByaXZhY3kucGVyc29uYWw0IikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIHV0LCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImgyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB2dCwKICAgICAgICAgICAgICAgICAgICAgICAgICBlKHMuJHQoInByaXZhY3kudGl0bGVzLlNlY3VyaXR5VGVjaG5vbG9naWVzIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgdCgicCIsIHB0LCBlKHMuJHQoInByaXZhY3kuc2VjdXJpdHkiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICBvWzNdIHx8IChvWzNdID0gdCgiYnIiLCBudWxsLCBudWxsLCAtMSkpLAogICAgICAgICAgICAgICAgICAgICAgICB0KCJwIiwgeXQsIGUocy4kdCgicHJpdmFjeS5hdHRlbmRhbnRzIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgaHQsIFsKICAgICAgICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAiaDIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGd0LAogICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmFjeS50aXRsZXMuVHJhbnNmZXJpbmZvcm1hdGlvblRvVGhpcmRQYXJ0aWVzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICB0KCJwIiwgX3QsIGUocy4kdCgicHJpdmFjeS50cmFuc2ZlcjEiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICBvWzRdIHx8IChvWzRdID0gdCgiYnIiLCBudWxsLCBudWxsLCAtMSkpLAogICAgICAgICAgICAgICAgICAgICAgICB0KCJwIiwgZnQsIGUocy4kdCgicHJpdmFjeS50cmFuc2ZlcjIiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBidCwgWwogICAgICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgICAgICJoMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuJHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2YWN5LnRpdGxlcy5UcmFuc21pc3Npb25PZkluZm9ybWF0aW9uVG9SZWd1bGF0b3JzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICB0KCJwIiwga3QsIGUocy4kdCgicHJpdmFjeS50cmFuc21pc3Npb24xIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgb1s1XSB8fCAob1s1XSA9IHQoImJyIiwgbnVsbCwgbnVsbCwgLTEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgdCgicCIsIHh0LCBlKHMuJHQoInByaXZhY3kudHJhbnNtaXNzaW9uMiIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIG9bNl0gfHwgKG9bNl0gPSB0KCJiciIsIG51bGwsIG51bGwsIC0xKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHQoInAiLCB3dCwgZShzLiR0KCJwcml2YWN5LnRyYW5zbWlzc2lvbjMiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBUdCwgWwogICAgICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgICAgICJoMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgQ3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZShzLiR0KCJwcml2YWN5LnRpdGxlcy5SZWZ1c2FsVG9Qcm92aWRlSW5mb3JtYXRpb24iKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICB0KCJwIiwgSXQsIGUocy4kdCgicHJpdmFjeS5yZWZ1c2FsMSIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIG9bN10gfHwgKG9bN10gPSB0KCJiciIsIG51bGwsIG51bGwsIC0xKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHQoInAiLCBQdCwgZShzLiR0KCJwcml2YWN5LnJlZnVzYWwyIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgRXQsIFsKICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBIdCwgWwogICAgICAgICAgICAgICAgICAgICAgdCgiaDIiLCBSdCwgZShzLiR0KCJxdWlja0FjY2VzcyIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBWdCwgWwogICAgICAgICAgICAgICAgICAgICAgICAoYSghMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgIF8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLiR0bSgicHJpdmFjeS50aXRsZXMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLCBsKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm10LTQgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgY3Vyc29yLXBvaW50ZXIgdGV4dC1zbS1yZWd1bGFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICh3KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkobCwgcy4kcnQoaSkpLCBmKGgpKGwpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAjJHtsfWAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IG0oWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy4kcnQoaSkgPT09IGQudmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAidGV4dC1ncmF5LTkwMCBmb250LW1lZGl1bSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAidGV4dC1ncmF5LTUwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmxvY2siLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKHMuJHJ0KGkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgXSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICB9OwpleHBvcnQgeyBGdCBhcyBkZWZhdWx0IH07Cg=="}},"time_used":29,"timings":{"blocked":3,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DXH68qfu.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.531Z","timestamp":1785139669531,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DXH68qfu.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"fcd-654aa2b830cfa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1717\r\nKeep-Alive: timeout=5, max=95\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":4045,"size_decoded":2067,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (4044)","md5":"2b641c787bf178cac4f60df801f4b2f6","sha1":"40702af3701f3214ce187e84adf48b08783bdbcc","sha256":"ba4e305ad5cac41e9414d85eda43bfc24147c8f2075434862336102fb498478a","sha512":"3d0c9ca28ca10ff48f86eb0c6ce604593f1d1fac4c837f8c886e521a56e4c2ca2ef4f8ca3b1809dd52004bd1683e6d0241ec67ee9d6dc4b93df1b08aaa86ecef","ssdeep":"","tlshash":"cc81b62879bfe531563751d8e8611842975d0fac825ce4d0e9ff39282394dd4638873e","first_seen":"2025-10-23T03:46:52.85275Z","last_seen":"2026-07-27T11:49:48.981085Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0eyQgYXMgQixhNyBhcyBTLGE4IGFzIE4sYTAgYXMgUixhNSBhcyB3LGYgYXMgdCxhOSBhcyBILGFoIGFzIEcsYWkgYXMgJCxhYSBhcyBVLGFiIGFzIGosUiBhcyBBLHMgYXMgRCxhaiBhcyBGLGFmIGFzIGcsciBhcyBkLGEgYXMgVixoLHcgYXMgZixRLHAgYXMgcSx0IGFzIHosZyBhcyBKLGJ4IGFzIEssYTIgYXMgUCxiQSBhcyBMfWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0e1YgYXMgTX1mcm9tIi4vQl8yRmtQOFMuanMiO2ltcG9ydHtlIGFzIE8sbyBhcyBXfWZyb20iLi9aZk5aaXlDbS5qcyI7aW1wb3J0e2IgYXMgWCxjIGFzIFksViBhcyB4fWZyb20iLi9DTXVVVGxTMi5qcyI7aW1wb3J0e2EgYXMgWixiIGFzIGVlfWZyb20iLi9COFR4VHlhay5qcyI7aW1wb3J0e1YgYXMgYWV9ZnJvbSIuL0NBbGtXYnVfLmpzIjtpbXBvcnR7XyBhcyB0ZX1mcm9tIi4vRGxBVXFLMlUuanMiO2ltcG9ydHtWIGFzIGxlLGIgYXMgb2V9ZnJvbSIuL0JJcDUtM0VLLmpzIjtpbXBvcnR7ViBhcyBuZX1mcm9tIi4vREFjdlZHSmUuanMiO2ltcG9ydHtWIGFzIHNlfWZyb20iLi9ESUdKY2lZSi5qcyI7Y29uc3QgaWU9Qih7dGV4dDpTdHJpbmcsLi4uUygpLC4uLk4oKX0sIlZUb29sYmFyVGl0bGUiKSxyZT1SKCkoe25hbWU6IlZUb29sYmFyVGl0bGUiLHByb3BzOmllKCksc2V0dXAoZSx1KXtsZXR7c2xvdHM6YX09dTtyZXR1cm4gdygoKT0+e2NvbnN0IG49ISEoYS5kZWZhdWx0fHxhLnRleHR8fGUudGV4dCk7cmV0dXJuIHQoZS50YWcse2NsYXNzOlsidi10b29sYmFyLXRpdGxlIixlLmNsYXNzXSxzdHlsZTplLnN0eWxlfSx7ZGVmYXVsdDooKT0+e3ZhciBzO3JldHVybltuJiZ0KCJkaXYiLHtjbGFzczoidi10b29sYmFyLXRpdGxlX19wbGFjZWhvbGRlciJ9LFthLnRleHQ/YS50ZXh0KCk6ZS50ZXh0LChzPWEuZGVmYXVsdCk9PW51bGw/dm9pZCAwOnMuY2FsbChhKV0pXX19KX0pLHt9fX0pLHVlPVtudWxsLCJwcm9taW5lbnQiLCJkZWZhdWx0IiwiY29tZm9ydGFibGUiLCJjb21wYWN0Il0sZGU9Qih7YWJzb2x1dGU6Qm9vbGVhbixjb2xsYXBzZTpCb29sZWFuLGNvbG9yOlN0cmluZyxkZW5zaXR5Ont0eXBlOlN0cmluZyxkZWZhdWx0OiJkZWZhdWx0Iix2YWxpZGF0b3I6ZT0+dWUuaW5jbHVkZXMoZSl9LGV4dGVuZGVkOkJvb2xlYW4sZXh0ZW5zaW9uSGVpZ2h0Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjQ4fSxmbGF0OkJvb2xlYW4sZmxvYXRpbmc6Qm9vbGVhbixoZWlnaHQ6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NjR9LGltYWdlOlN0cmluZyx0aXRsZTpTdHJpbmcsLi4uTygpLC4uLlMoKSwuLi5YKCksLi4uWigpLC4uLk4oe3RhZzoiaGVhZGVyIn0pLC4uLkgoKX0sIlZUb29sYmFyIiksVGU9UigpKHtuYW1lOiJWVG9vbGJhciIscHJvcHM6ZGUoKSxzZXR1cChlLHUpe3ZhciB2O2xldHtzbG90czphfT11O2NvbnN0e2JhY2tncm91bmRDb2xvckNsYXNzZXM6bixiYWNrZ3JvdW5kQ29sb3JTdHlsZXM6c309RygkKGUsImNvbG9yIikpLHtib3JkZXJDbGFzc2VzOnJ9PVcoZSkse2VsZXZhdGlvbkNsYXNzZXM6Y309WShlKSx7cm91bmRlZENsYXNzZXM6bX09ZWUoZSkse3RoZW1lQ2xhc3Nlczp5fT1VKGUpLHtydGxDbGFzc2VzOmJ9PWooKSxsPUEoISEoZS5leHRlbmRlZHx8KHY9YS5leHRlbnNpb24pIT1udWxsJiZ2LmNhbGwoYSkpKSxvPUQoKCk9PnBhcnNlSW50KE51bWJlcihlLmhlaWdodCkrKGUuZGVuc2l0eT09PSJwcm9taW5lbnQiP051bWJlcihlLmhlaWdodCk6MCktKGUuZGVuc2l0eT09PSJjb21mb3J0YWJsZSI/ODowKS0oZS5kZW5zaXR5PT09ImNvbXBhY3QiPzE2OjApLDEwKSksaT1EKCgpPT5sLnZhbHVlP3BhcnNlSW50KE51bWJlcihlLmV4dGVuc2lvbkhlaWdodCkrKGUuZGVuc2l0eT09PSJwcm9taW5lbnQiP051bWJlcihlLmV4dGVuc2lvbkhlaWdodCk6MCktKGUuZGVuc2l0eT09PSJjb21mb3J0YWJsZSI/NDowKS0oZS5kZW5zaXR5PT09ImNvbXBhY3QiPzg6MCksMTApOjApO3JldHVybiBGKHtWQnRuOnt2YXJpYW50OiJ0ZXh0In19KSx3KCgpPT57dmFyIFQ7Y29uc3QgST0hIShlLnRpdGxlfHxhLnRpdGxlKSxFPSEhKGEuaW1hZ2V8fGUuaW1hZ2UpLF89KFQ9YS5leHRlbnNpb24pPT1udWxsP3ZvaWQgMDpULmNhbGwoYSk7cmV0dXJuIGwudmFsdWU9ISEoZS5leHRlbmRlZHx8XyksdChlLnRhZyx7Y2xhc3M6WyJ2LXRvb2xiYXIiLHsidi10b29sYmFyLS1hYnNvbHV0ZSI6ZS5hYnNvbHV0ZSwidi10b29sYmFyLS1jb2xsYXBzZSI6ZS5jb2xsYXBzZSwidi10b29sYmFyLS1mbGF0IjplLmZsYXQsInYtdG9vbGJhci0tZmxvYXRpbmciOmUuZmxvYXRpbmcsW2B2LXRvb2xiYXItLWRlbnNpdHktJHtlLmRlbnNpdHl9YF06ITB9LG4udmFsdWUsci52YWx1ZSxjLnZhbHVlLG0udmFsdWUseS52YWx1ZSxiLnZhbHVlLGUuY2xhc3NdLHN0eWxlOltzLnZhbHVlLGUuc3R5bGVdfSx7ZGVmYXVsdDooKT0+W0UmJnQoImRpdiIse2tleToiaW1hZ2UiLGNsYXNzOiJ2LXRvb2xiYXJfX2ltYWdlIn0sW2EuaW1hZ2U/dCh4LHtrZXk6ImltYWdlLWRlZmF1bHRzIixkaXNhYmxlZDohZS5pbWFnZSxkZWZhdWx0czp7VkltZzp7Y292ZXI6ITAsc3JjOmUuaW1hZ2V9fX0sYS5pbWFnZSk6dChhZSx7a2V5OiJpbWFnZS1pbWciLGNvdmVyOiEwLHNyYzplLmltYWdlfSxudWxsKV0pLHQoeCx7ZGVmYXVsdHM6e1ZUYWJzOntoZWlnaHQ6ZyhvLnZhbHVlKX19fSx7ZGVmYXVsdDooKT0+e3ZhciBrLEMscDtyZXR1cm5bdCgiZGl2Iix7Y2xhc3M6InYtdG9vbGJhcl9fY29udGVudCIsc3R5bGU6e2hlaWdodDpnKG8udmFsdWUpfX0sW2EucHJlcGVuZCYmdCgiZGl2Iix7Y2xhc3M6InYtdG9vbGJhcl9fcHJlcGVuZCJ9LFsoaz1hLnByZXBlbmQpPT1udWxsP3ZvaWQgMDprLmNhbGwoYSldKSxJJiZ0KHJlLHtrZXk6InRpdGxlIix0ZXh0OmUudGl0bGV9LHt0ZXh0OmEudGl0bGV9KSwoQz1hLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpDLmNhbGwoYSksYS5hcHBlbmQmJnQoImRpdiIse2NsYXNzOiJ2LXRvb2xiYXJfX2FwcGVuZCJ9LFsocD1hLmFwcGVuZCk9PW51bGw/dm9pZCAwOnAuY2FsbChhKV0pXSldfX0pLHQoeCx7ZGVmYXVsdHM6e1ZUYWJzOntoZWlnaHQ6ZyhpLnZhbHVlKX19fSx7ZGVmYXVsdDooKT0+W3QoTSxudWxsLHtkZWZhdWx0OigpPT5bbC52YWx1ZSYmdCgiZGl2Iix7Y2xhc3M6InYtdG9vbGJhcl9fZXh0ZW5zaW9uIixzdHlsZTp7aGVpZ2h0OmcoaS52YWx1ZSl9fSxbX10pXX0pXX0pXX0pfSkse2NvbnRlbnRIZWlnaHQ6byxleHRlbnNpb25IZWlnaHQ6aX19fSksY2U9e19fbmFtZToiR2xvYmFsRGlhbG9nIixzZXR1cChlLHtleHBvc2U6dX0pe2NvbnN0IGE9ZCghMSksbj1kKCIiKSxzPWQobnVsbCkscj1kKHt9KSxjPWQoe30pLG09KCk9PnthLnZhbHVlPSExfTt1KHtvcGVuRGlhbG9nOihsLG8saT17fSx2PXt9KT0+e24udmFsdWU9bCxzLnZhbHVlPUwobyksci52YWx1ZT12LGMudmFsdWU9aSxhLnZhbHVlPSEwfSxjbG9zZURpYWxvZzptfSk7Y29uc3QgYj1sPT57ci52YWx1ZS5jYWxsYmFjayYmci52YWx1ZS5jYWxsYmFjayhsKX07cmV0dXJuKGwsbyk9PihWKCksaChzZSxQKHttb2RlbFZhbHVlOmEudmFsdWUsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOm9bMF18fChvWzBdPWk9PmEudmFsdWU9aSl9LGMudmFsdWUpLHtkZWZhdWx0OmYoKCk9Plt0KGxlLHt2YXJpYW50OiJmbGF0Iixyb3VuZGVkOiJsZyJ9LHtkZWZhdWx0OmYoKCk9PltuLnZhbHVlPyhWKCksaChvZSx7a2V5OjB9LHtkZWZhdWx0OmYoKCk9PltRKGwuJHNsb3RzLCJ0aXRsZSIse30sKCk9PltxKHoobi52YWx1ZSksMSldLCEwKV0pLF86M30pKTpKKCIiLCEwKSx0KG5lLHtjbGFzczoicC1sZy02IHAtNCJ9LHtkZWZhdWx0OmYoKCk9PlsoVigpLGgoSyhzLnZhbHVlKSxQKHIudmFsdWUucHJvcCx7b25DbG9zZTptLG9uU2VuZERhdGE6Yn0pLG51bGwsMTYpKV0pLF86MX0pXSksXzozfSldKSxfOjN9LDE2LFsibW9kZWxWYWx1ZSJdKSl9fSxrZT10ZShjZSxbWyJfX3Njb3BlSWQiLCJkYXRhLXYtN2E2ZTAyNzUiXV0pO2V4cG9ydHtrZSBhcyBHLFRlIGFzIFYsZGUgYXMgbX07Cg=="}},"time_used":119,"timings":{"blocked":93,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.google.com/recaptcha/api2/anchor?ar=1\u0026k=6LfRUoYnAAAAAKfevHpSKXaw8gRuE6AJVb9YJKYH\u0026co=aHR0cHM6Ly9uY29ubmVjdC5vcmc6NDQz\u0026hl=en\u0026v=A7KpaEASfhDcK0nXxgQEyyYv\u0026size=invisible\u0026anchor-ms=20000\u0026execute-ms=30000\u0026cb=xxau4owkhj73","date":"2026-07-27T08:07:51.098Z","timestamp":1785139671098,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://www.google.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.google.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 40128\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:17:07 GMT\r\nexpires: Fri, 23 Jul 2027 02:17:07 GMT\r\ncache-control: public, max-age=31536000\r\nage: 366644\r\nlast-modified: Thu, 29 May 2025 23:30:55 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":40128,"size_decoded":40941,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40128, version 1.0","md5":"9a01b69183a9604ab3a439e388b30501","sha1":"8ed1d59003d0dbe6360481017b44665153665fbe","sha256":"20b535fa80c8189e3b87d1803038389960203a886d502bc2ef1857affc2f38d2","sha512":"0e6795255b6eea00b5403fd7e3b904d52776d49ac63a31c2778361262883697943aedcb29feee85694ba6f19eaa34dddb9a5bfe7118f4a25b4757e92c331feca","ssdeep":"768:Vce3jkow68wmT4IBX0tXdlSirS61gSjcz0GPwHbP+w2jec56O:VcI/iEEEtXdFJj+0GPwHbP+w5rO","tlshash":"3703023a5e3ccf1a84157a703950f6d9a8481e548e9d143b4f1ac7bf085dde2209b6d4","first_seen":"2025-01-08T22:59:02.845106Z","last_seen":"2026-08-04T08:26:13.439557Z","times_seen":954816,"resource_available":false,"data":"d09GMgABAAAAAJzAABYAAAABJMwAAJxGAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoFwG7cAHJB0P0hWQVKGBQZgP1NUQVSBTicuAINCCIF+CZ8GL34RDAqBzmCBtmkLhVgAMIHeagE2AiQDiywEIAWJAAcgDIVOW3sUcYJ2+YXsTHcCUa2eb/kBStiuDNw2mlrloLhnj0bEboekZ1x7dPT//6cllSEzKZqmA5hzU71vkJCiJNulImOrXjzgaVpjkkldY9XkEtIwK7MgGJlJEu058EgYM8XbsUKJJgnS3LaCoydljRIf3TWocIZSKIVqflw9sPdXdL57lPkx26hbdai4Rm4SDjwdLWegM6PKTLHOb5qk/JwuRbUtUd7gj8QKjJ+DgUkZ7C0v+jSd+LWPe9GCVWr6F94zg0u7qMNnDlqbodvshzAf6OYyKSUIe6KkC93/4oFnTrqajC9m6zfclde5uO5vhku9953rXlaBseshaqzz/jytrfdnZrfZApZcWGpJqTxw4VBKaIk0sJvzGCosKoxT7g7j0CbMQ8wAk1IUBCxAYmGIoDz4r3qQfMhY4ibqKONtZoB3W//MrmyZMzVNcIALEEEEQZA9ZA8RtqACrpGWZmrR0LyyfVc27LK77q553ZitG7tb66/Z8Lhp/xIIkISECCEOwYMEs7aDik5MTkTb7ovoicpuJyLbzrzXTiprKTA8btq/UJ+I/7ud78x3+2rasa8+ObN2Vt+NrsNa8GCBJCQhASKEKIRgQVRWoywdDTAUXTP7PPdkKKfZoAAtcwC7mzLiq3ce54D4xVBAyibdANmyLaI5eDfrJwmQoK1TZ81OPW3vPf8T8Z8PKNQUKSktYkE8DXiFutCuuBy01LU9QDRxc9rWj1Nz1ga4kN2Em0sRtrd7tD1IHsgSC/8anXrf8vhOVVOhvq/sWf/TNptLrpUKCNOM4flu5M7lExRGNNmFQsvlH/w9d38Ts/TfK9jMRjPJtJ+EZkKtgsMD/L37294UeTGe7gsswyj8y9aYYCyH2yZ2SXJQ7F7eZmlRWfm/NdMP0tdImmEDxrv8vN7EcQDZ7XPKrCIdm1wLgCc69nhLfQAd1WZVB3qAavATs6eYtYwkTJD47ZL49NSH+Wa/ZybrgpyJgttS4rsJriHhV21ldzPgMSUyV6QnIjZ1nNuKchFxIkb0mc+Tjdj/s35pe72zOXhO9WcUWM2W+k5NeN9Iq3NA+jipCUrcdM1TUC5DYC1HVSlHLyfJzDYi3ysfAfDP/7Rm9+duD+1Bd+CaGuFyDtbM/mzLPHKyu9BDa2UYhUSjsAjXVC/CIgwaY/DhbWq1/0tWduQcWIvKoXUIRbdYn486oKa4mff/14fRSKOxHQsMskKSvSDbyZ3s4FgBWV5nAbg9oEr2JgtERbv9MZQ1l9ee//+mpu2/gMLIEVAc56HiH8U/UtE4t7lp3KfhgBRnQFIaJgsEl9YQu6YBcNdnQO4eD6CUYhli+QByjz42WJ+kaA3XCVRcOaZOrWNuity67F10kjqnVJS1T28TNLc6WUjfLqS4IeL3R1gxREswWLt+3zSlGv2Z87pr7Q6dRIQL0LAg6FtJbqvv1vT8Np2lA2IzHfOxg7lv7dXO7dwGP+2E5n2XqBidkSc3vK5GEVx/mRSgq77ZcoBUuwVSv65RLlI2QlXaEP940w0+hoF1IJI9CMIAwyCgJOAJB0BBOY3UrPh3Ea4wxihCGMe4ShG+ijmxqimZ3Xm+7BPSxhifMcIInfCJnAmZ+UHCbCaNMeFsh3UvQwwJee8xpuapF7+xw3Rta3xqkCAqQSI44vPrMVQsR116Hm09QZS47RhTK4qxyf6MqRtUkIsgnitt/3RAcCJLf4qPqYYRMuIB8ZYIWfkSsl7IFiGkkHQhWUJym1P5CrXX/g87oBTuuFMwN7VB7kXTFkUnbrO84857C0DTgj/G2uoSUGoshQD4wyrt8p9BgHrAOTIACMj8y5c+9WBo0hcIwvEUijH5Qqks614AEVkpOXnBracypT4qaj1uT+McYItQgDjuBL59q8e1XSEPYHtjyN4GyG4zt/sATQT4X/H6OItnsS604dbrQ27rFTP0o7ICU4m2AAHlSeSY2OSmfgFQhw3DbE6LrrXmDSByk/Eue/+7oQAsMV3wISG/ivDQcQiI1Kh10CGHHXE0WtGOpGKpJwAMbagVqEkENZuQI+OoDfWAzO0bKwIys1H+s3kcWO8pab1rfSi6yifx1lp1Hy3qcvncKcmFUen0h5/d+Mz4uGre6M/lyluLsBIR/3JsoMWW1C6s6TM3WBtKk4Cq9VLaBs5TxkP6h4nnV92N8uIGrdvWX6/aadFc3ZoTG8oAvrGoCqCWVt3o/JQSd9LSi8mjT62KPGWM/80qMHs+r5+s6rEofb/9+P9JldFtSp1WCyfPYradrBLGaTi+NK3/4ku9FY97cFr2rt4WOsnh2p3CY6WT4lDLuX92oF7gZS081c/SjvXQDJ5vjJqOxG3ivZzjrMjqVdTXNfpZUYKKh3QsKy3ScU48yGNTD9n7Xmg77ueN0MRGEW7JfHc/37B5v+1crqt8b8Z3bt1j6yle1prGvagp/LfWc67WOog7ls76t1hKxeeTplT+C+9rD3W89wYRBpTakYf5MzXuBq8NAK3ZfCuPTg9KU2Wled1n/VY8A7z4vFy2mZqHer4NtzCrryhv3nUsLEvJv+S4NbfHz4oc0YunMfBfzNGl0TJ9uGyFWs8+4NAv0jvtPFExy8W3dHW0hXFcfdfqVccHQfKtedEkZVeY9M75WvuP2tu2RWzeorNzEBIyPbclDef8qAVzH/s/m4HNzbnQ0H+LnT++9QFuz9Ovdt6LToL9nSR/rjSP45Kr3adBtp7zurvl/idxXFKC/hhj9JoG4CwGMWIKY8EegzMPAnP4UONHWtM8q5ZQEbRFpqVirXriJdKX122k4SZlaibu+cbMqEkhKKhCZJ6RgLisR0yIz0Z0SMwWApKyFQksSC66RckjLE5BzCQHBmFrELG1LfUoSklD3PwRZrjSMy9COQlBl58wQkEiolGYeHTFSZqLkiyMQ2mWp1U1AOwJUGzT7tCBDQ4LJQSoQyBGCB19DNCECScwasxK9sI2W8PfyCe8IRKfkXDGQsyFWEqVnRAHIU5S4iwBFzG4SoWbeH6TmLs4PCQ0p5Hgww8moBETKgxTuOgixDRfmChxxYgmVizxUpMglkQpSxdSIKTwCKZKdV/G7H6K+fw2u7cCfyPf3VujyH1P4J6+DHmrC9LtA4aPvIyjzxeEQd9gRvkopjGT6KbMoKEgwEpuBxTMoQEsTMAMByiFC7hRAozwAC18IIwgKKcgceq8xhvCieYPVrQiwY4uMCMFjx5E9MFjABEjsBiDxRQslqBYQY81KDbQYwsjdtBiDyMO0OIIJ06w4jzZy+ESl3CNa7jFLX2AmQCwzJ9kFDATDUoCSkksXDc3wQBGFqGSxbCSPD2WxJ5LgZflCLMC/ImUYdb5rzBCGJnUGIvL9AjBwiznbWSwQqqsG5XYsIXYWz1keYjhZzUQbcTNRcp8JOAnmnmdmV608ixpF4asplXmCsqwzXYV2L/ieuYlQrs33gp4sz1JYMg3NIddT3BPFQRHOKD5FJS2MAC5LU4phGY4DJFVvAV/ZfzHdaIDAQwcjNDCY9gPny1aZEDEGFpMIGIKLWagWJzOe3lud9t3nz1zw4SQvh21+KGceaAEwkxQUZ2mXXVTulsgX2akLsidGQPqiS3Ks7bXSeHJefTS4pcWJ/lJUaUKZETHH0qRjnXYZeUdaqDLG5t/spi9aVHZHW2ve4/bHWuCZLqiZa3DEaVMEu3DgQl7gMadbId3T7YcBi5vxgmBxq5b/jYT5C/gkCBg+zifA6sphxSO7WjDGNUwDBMaNfw51kUqatJwHuUiyKJ0yIN8+8GD7ezP6+23UkAcyBYEOg4uI8ZMmDJjxZodew4cOXPlxp2H2fz4mydYqDDhIkWLFSdBkhq1u4HeW+2Bhx557Imn7d6ee+Glt955r1OXPachw776ZtSYX8ZNmERBUBANOXxXPlKNWjSi+Y7U6zK6kUY/hjGKLMYxiWksYxXr2MQxTnGOS1zjFp9wI4gw4kgjjzKqqKOLMZZYY4s9jrjo8xkrXvNdazTwI2DFeaSpE0zIqeHjN56bX7wwavzDQ3E4cmHGg4EhhvnKN4+1+hcYZyKZnAqGqXA5V8cotnHA1FY1tkEubTCBXYkg1IlyFgJAag2gisCt2SzPZnYB3fTQm3xI0ersw37J1fEdv4XjFMjBQY5wtIn8Kb2OJXzIpVwtAGdjsX8R40wkk2msEpuPAKD7BIDzx6cimq3mxBG+S+MJAKkdDZgA+MkprY2Ajzj7BvwIYD6FDDLEMF+TbykqbM+O7BxOvaFvEF2qjU4AgAMpUZEnkXxGCV/8CGC+FlJ2YeyaVtcSh8LhKJISJUqUKEVoUwI2C5tH2ZQi2DmcegNK7dGjoqKioqKioqIGdQkSN7hjPOxR0L2NN2Lq5T/KihyYo+NhxVozLillREWOQ8oa15U7rumv8ewQQQmfyVwOS80lr4AKQgpB+UQmYmB16+rEeQPihn/+0polvjykjKOckSOQrayxR47ccdgitScojBCCLuZwHlO8ub5KXwTuQwDx1tdIIQ0ccca1lVQ/KIsmoGTy0K+lTjjgaGEaxKOL3QXaKJkPKnxsVT8FtcgNBQWVUJFhCL6Ja7n0lZTls3m9DjwLC1PshgBcORQvDbj0JtHYS3shoLZBfwDR+mIj6kNSB5YzTXg1OFtZ99rnbuXnSAyykJWs1hr7zuuH6Q2e8mby74q+it9HiKO+38sPwEMe8Zgn7uvub8F3fM8P/Ogx+CcwzgSHmWaG48wy57pYz4MGTbd2hkGDVqkcRGusRptkWltJG4zearRNjIG3D95xZWf2ZG/vy+D94QN5fDA41KfW6EoqvjZTXE9cZPgEVl4Dr8b47zLHCT0fIUcnAJzcfnmOWr1waLlTDYZXqujEcXVWenUVYLFICPfoukHimGmSry4gHwAO4hBfI8/XwTcwNBUkJTrOLsY4DwwvSWEXABW5G5nQeDFGHQEglSUUjX6GBGvk0B/55KjGKJ3uQUavLsHAh1+pgYPAQGBgxs+tBSqjn7/Na000E32Uoz1HnxmyfvgMMKA7VtoyZ50gpSykny7iL0KccSh0zimYdd7DW1oHQEc+lSsk1zaXzd7t5rqngW+BXj32Gd+qqzAWPt+/Wt4AsKvt83uBkcmQ2Qokbmt1moHoivvZltt8ES+gu81v9QCK7ztDgPiuzBT3Pso/aRvhNVyiEzzwwIyiC1pADMdGwbgEc9OgZOzP7/Cna9OJ/JPirAwzGR46oVwyL9KrEjH/B0wkthY7bbLZZVdcdc11N1QE+68764zTzjnvgosuadSEfnUAh2irFI3z5RwYRIUEAAbzd18a4LQmaKQl6nRx2q7c6VIeIvJQaPKZ2B7+X2tFrYObeZEWVWJq1GlUSULF3Ph5t9zOb3GPR2azPSLU0Bia9YaKKbeuY2MUOyI79tjGRlApby64XpyIpUOcgvO/viarHY7PDnRyCCHoBu2gtvLmv7bVsmmbm7uZmqLBmn5Tr8P1bb1bL9XSuqiqKrPWV7MyVj6Uu+VQ2VOSi6aIC7MUFVFhopkM5nVupy4pCcUUYejZHiYMa3XGP2oVy7McQZuYADsEYIpjPlXiuw740SqyfX1Uoj5RnzLCXOdAVtSlEWReTGNIhzoRbtzYE5fBaE7FqTJFXYpTwcOMuJAsezDqrF7cHJbcXwp4iUNqCrtKIS0s6CklsZ376PhMxa7uGCs7NZHYpMaw4teYealR+1QkUQ+G2Yf57boZwrN0QqtgKZ5FMeoL7DzHVkwT49QQRtUwT19AheXwu0En/RjQh177J4Es78yXgGvinEYDx/s/jhZVlmbVWETyxXQWZKQ0W1ZH6RF7urFNerZnIXw7oqc9acgkZDnE9bGIubFXqhNr3mLJO6JvGDdvmEtklkFEVoewLI2QzkFmgidmqXYsqg751byBdvZuxgQZzzDse97nX6FcZ18/8Ah97iPteWD+u/WvAzA3C40Ve0yO7wgL4L2Dooo57d7EAgTSEiyCjki0IfVEZsiesJCemCUrYSk3YSW/3Xo2310iXJubWYme6+ZvLmsyBIAFF8UeAh7EN4UYirhAT+CC+rBkGrg8aaDgClNUGS5Nn/FQCWqz59MQCMZGhkkhCidtC002PbO2kOT9ZI5OegO8bV0pCKPVEfXQmSYflCitLK5MmJ3hzHaQzrZm+xp99vrGZgIGUkDW5lbl50ZUNc3V6jqWRtKGdqNxG3DBzUp4B2pj02wnvxwfB/wiBmPnntIdYoawCJthKFkHq2itd3FbasGpWbFNg7ShJd4jYiO3pk+k9fWXjSvkVFKDZWr3rl3DHAPSj++ERMpLzdkrmLGmQNzooMxeaSUNr9c1xgkQmtqrqjE9NMput5HATIXmSlUJtbkurLGh17kqatvbqqhzc0bSiZGUxmc4IBwzlZlbWaOFNfZTBw5kEukhS1WIZiuGrvXl60NzN9mP+cri5hyLTlY4U1LsU78N3WFoIxHQPTCsnRBQhb1YGjR2KRm66odU2Yg2d3ydePxgXB07Rnv8wrbxS7L27wjb8Vevxn8UjzJ941k5o1nNaPHP6FAxBpUQ2cM0i9mo9gcADAB6wuMJmSIkyw4JDokP/22Buzj76Laj+UdLjqqPtp/YcCL6hP38W+dRy9UXfr1cfZmywn9B+aL0Ouh6yY2BG4Yb8ZvVt/LvfNXmf+/pbHxP/0bxB+vvo/u0+/KHBWK8r6GN92/84PYPGx/5sq2PDhy48ePvvO9u2/RpnOZonm7Mt+Zv/2zkiyNfDny99+uv97H8m/vL4sbvH/vh0NjM3YxKqbJq2rbxkfHR8ceOnhgRzUee5L4wdWTqo2M7Z943vnt2z+wDs4/OfmZydX1r/YQi2ul2G6YpAPbHMrcDrINWjl/1rVURl+BrrJNmFmUvbKoa9IYOdphOzfQ6A7P/Jx+Q/F2nAAj2KdcAAMjJAdFssg8N0F7S7QDa8oHDv2JpARxIAkvVloE/pGXwOVPE2sK8qe4EM2DpfLCAFHolACAO6Q3pRnGoa+jUMnDmYwF78Lp2V0oKwLYbXe0pACBH1JmD1GNdKs9uGy0SyZ8HWzJiOAwWEwAACACCAFoVz3i60yq4dKeVsZadVsKi0zMaAW5goaN9R0+3U0cWhza4DdtVSN4DAIuxc5FlsZB/cX4kVD7LzAcAuF/Y0L5x5dbroY4aPRqdv5O1mfLrpN0h7DykiZzyQp6P0AjOPr+U7HbICSdd1eaRPl9R0N4JLy+VtvK6vK0Ix3EWbrAVLF1Zuqp0PU3S3JpPC2lZraL1gJ/bWt/HNKn+/0cf5AgpDtc75ZpbHvvkG1uHvSzssq4maMrry2hlhpaYqg+W6fCQDDcADgAaoD42HloW5nPT/5rzc2D2T8FsWphj9t7mn8NkMhkMyexmfuxazVjp/85n58qhBmdZcI4gieZFm+c1sNUpMVP0zUn3vDFD/+TTpOvWo9cHH2XI1OeTz/oN+CJLtnl67jlyTVGYNoMCeQE6UO0NVG605vpiQMljy1XcHPeqDryXLrum5pZuUtZt/KKUpcXxwXSVnjmrIl1KQfZvOJDmlEMKlGicxqgpKt7+XnfJd9j70RoXuHhHE47YZL2qSZo9Ktd/xjP7VTjprCu5k2neq3yUq+E/XOHgtdSAlBm94vqp5LwmakIstt0f0uXbp9wRpzz3PjK75CpS45hzrZDgKO4Bfb8uLqMjw0ODA/19vT3diXisq7MjGmkPh4IBv8/raXO3upwOu81qMZuMBr1Oq1GrlAp5i0wiFgkFfB6Xw2YxK0GS9OqYu6Ns+V7MdwfHdraLluezf3ynuktuxbDVMOoIekvsyrbU94y13rBVChBcn8ZjX5MI17u9YqkfFovpVnZ4ZasRqrVO2jsn233pij/4UlznQw4Up2H0uHR0P9nbRdF3DIL+DKnLBBjTbD6Bwf3l2iS8a27GXwoYdZ7RdGxZBt6q5EDQsRvuXrYK6pVyARRTXgxNWZUccEZS1QhkfegX3cuBGMfVdjIcjF4+LihAJkSwmLuboh051tm8preF/Ybp2nkyeZ/bbiW13ajNtxNBZ4rw3XjS5bvJRvJiGNR/NyVfCSkOd3zalOwukxuGzinQ8JTLvWKwHNzOnY/eZD2LNIqAmn5JMsIeTnbkEJS6xQXlajwQUgE9RhHqdGlq2yJOvvifIyCEfNkc8rgGCRrmvm4dM/WMntUnaAGFCYP0V3b//8c1gB//s7d1kka3K38xbXkHTebkbW9oirBoyna9BPsyUoUnl7xtugY7TzfyLYAFGF4ch7lz+CHz7TrRiGO9tqUAYpVgNXjDz8TQRFXoHUk7GYz1b9/fW4VxPWESHhj2aflyvV5j1HFqTKngVMuwK3B1BRfA4KUed0KKIgS/9ZJW6O0Tq6bbKaeo6miPGZjo+LDy8bQNTii4PFWcaiFZQe5Fgzvwozsxx58uTkcsYo8CV8L8iGuuqfVYE+4SQW/KyAx9hExqxb9HKKI7JgnotNa3yp1tqhOMuHtp/spW0htu81A6BPtJsy6amlCxFxc73LOGrUZdP+q653Oomvxc+3RwWLVn7DSrtW6O1B/M34JgAkxyGTRNnsbdRjSY55e/I61/S12FXjQy7Y0WehBX7s23yzMp2ibxSFBDVl7k3vCzfZbQDNwNgD0uuu84cvTQFXICXi6O3aJY1wGu+w6cVAy7GPG2WOp7LQlgDCn2M9HJUZHuMvNxXXz8JYYOO9uVaH6OHnPedE6pAMEXGQ0UMd7L4qLBZe+SrBWRNknlYr7CZ5aZLpAFbRalNIndkbFMz1HocjNJ11gPoQ5n1eBsdvaypMvjqmPJOtHZOCUWxPI0IB2j4N86dMm4b02mZomGUbvQ0WY261PabKTWxaiTqwbaTN3AnpLJwoDtDmH2k4MPEe9V8DJgUgBhlkVZjpznzvQ8gqlgqaUflguuO44DyHp5SgLyOnMZBQfcaqZm6w0nAkoorpoJmud7SjRqECrBweQ5XXqfd1TnjqBSFVN+b1+316apog69az+aHZRglojvrwJPaLnM8rPjLgpXXKpMc4gkQ9dc4l5HfTMBJgRjSVzbIaa60SnSqksmpK/iRCPKNxYqINpfCmtEB9bktstBmnI9kd8sZfVMCBE9lvGHiE2LG/VFoa51jAbEJY5/1YF9TEQbW540T/Y4PObyEMO7IQEcRehRTMT0wlNJ8GDLe0BIgIYv6cinBpPbrmVuFQQmNqF41ykIORhrVxeQGOvlHVUgRh4jvrskQyjY9RzXFhlxXKYlpuIleOXcdgHHFmKJmDGDP1qlsDtyhpzP9HN5UwheJOpt9sfdml74h7I8yXY6VCltHwmTTpO6ZT6CmllGBxhlrezhomeQvivASpBS1Fd6lULmGPKgVj4s4K8E6ESXvok7OxHaOa7sjBqqk0GW8Hso9PvmmZsCOBJes6AM47poWnO3a5ozJZPhREFn7M7wPWfEuCCBpOaeTWZtII0Tl1MPimSZXYsLLnCWn8l1KWROYcRx/aNxCUOjS6BmNpnxN1RehrhmxjirZYgo2HSgWddWSpVTFloM1Fy/8Qw8vgxbuJCARj0eBTBWtOuEsO9gVyTx/PeW5+OGrrzub912WmoTyw1TYVnK7b7YIjVTAhzsnU1Ei9zMOOFoH0znpMPDdIiwJO+4lS4NUF+y503awY3MMTP09B5z5C9+Qrq/XZkIJwvwFFUw+AqcSp21vff12MQbbRUxCY1r5uM/6PQRgC7Gk1cKBQ2o4Ymbbx+4GM6CmI4zK/ekIxrZW3DjgaI9THkx/Hj6gqHJuBqww0WY/O4/5lxQcN1ZkL2dijHegoN7xkPldN6YImdj5xd3E7vyDkAV/+eUKZa0sidjVIfSmIkPX3NjW/OucfWLv4fLJ0p6HCHiMgrq4bEkG5Ta3lgnV9SsoZp4z2cuqhWCle3p8BF2GuGKyhPFifmPxx8WDUIQLOrCyx5Yz21RwSu4AS+cZuyqlNWcZWe1NJYbeK1eEedymE1jsFQqp3LuQ1mWDsIvOEHZ4A6E+gRTx4I+FuSc6mJ/2x5tKP9CYJThPL+0UMzIUOVXVp/BkPK+zK0C+AvDZ71m8mWiz6fBfbmwSIJkD0Yl50ub6cn6pRxAgp9Dc2zk9vkosuUe85zew0NW13Y87XPQuQBLF/bN6jInw5Ecooo4mih7ppa1yJZNY3CdvRAHr4SHzKhQpGgEIOgk1ykVLGyrWRVIBjasUfwpsFwB3praOQTA5Qa0S2h6N0d3DT31BrRbGPrv9u0eZhy7qLhHWB39WN+eYcfxrRJ7hUOfcud7QzBMzNHHJ9V3K4hj33yElwLRNwDobguAdR6g/Rqo/hiQTjRWP56Ao0GdsMkhh2UmCWg4IO5dvMQ4nHcUpzjFKcbKsiaKwtyyLYrlsEwUS7fHsBwGD5WPpaNxGh79upAAqcYbi/N4dCYhloGiJbgBg6P/M71kURAcBkEiiihtAoBmm7xm/VsvjEfDIK8Z/7BTD0bZNBf5W6UrvqRWB4wg6Naur6x1OLxr/UTtQQQYkxv8XE1nLZb9JVD8GEEET1MrMuRc8Wul+QvyCGSRhvPsTdW9wGHG8prktC+VY0VMs1BAZd5+KUWKM8CxorfQVmTPRwndNCKGdRDYp9GlGMuOi9TOL8n1jlUX82t+EJ/4kCuLi5AMw9iqblKE/cRakR/T6vFNgQTjaLZddVTUtLdcDFOJwHiIW0Fso+nggUBGqVE/wFIhhVZ1a+iwedpOz7o9q2j1+dJMgiITFqkk2tZ5inIiFvYJxVGyITYloBvH9SSBiylWWJRIRG6KqqmNpgjDlP2AqWR7oAeNLEGHYlP6mQRMMvZyBelBd2dUiOrW9hVptCDVv9nOLCXPQqQyxDeE8ewrtWkaKdJE5pCSS0q8/iMWV8VBXv/+cfF6xAlaaNWHn9BvYcoTQtJuAQtZQvw+NGq/UfsFoIv77+kBOcj89tsadLFfelIfotrvjCXZnv+gGT2rX38Ng6Zp+MJtqXFP+i5BeSmLuRZ0p8nHCxhbgzwziRhcoVC0JpuX7CR4XG2lvpvy4DlBjwRR3dlkMTfOOtz1XJuu+fkBJaz0Hm5TvV+RVURga+HJhpA5uhBUSbjTZMsfb06HJSi63+fIcVr0uYdSbMxAZSMQjir2pL6GWfDaHo0Y/k8QIZVDTSoByMiVbKa2MEFrmmmVKL22XjXOd65Y55I1PAebMVyAmNG8lBRB2eZpcStGSwY0zp/P/AzkAInDGzx8GHHbR7ZXyk4mFKO99JY9pY+YYTOe0JO94YdUUvWbrQiP+3+V/F8jBPXDxw61KWbeELrRB+R7bKA3FWFjLXvUobyW14WG8/N2yxZA3iZH8ybGKb1bNvaqBEN6IwrVJj1Tyi5Verk8K7jl2CJYHiGGXpPw41D6gyLOwG/VS1N5xoeGukYRGsuJbFNLvUT40Wr3Jetgzq4aS6X5JMqKiDD+mbRC8sjVIM66t8sRdDEBegj/VwktttZwLaxAWmIw3VoTcnKOD4DntMPd76ShMhs1A9RwZJQmiLV0QFq0SSm9WyJZB5axjHD8QdZRgW+VqKWLce+JR6yga/s0MyemZ3B2Gudm/ekojTxuOttRZSTQXQBoBeRpA+Z3YQWbZ4JoFL0fPFbXYqbi9h5OEkcT7gGXdrwcnucyoWpzoA6vV9VpensSVmJHN67ZkO6ryo1nATUdHgdqpDCAEVyNtkMbWI1slnHDXsvVYQO7b78PUC6xd1kwavNutIA5pNl0vqybpkbpnTTNIW3otcQy8xVgNrIvFm5NI0+irp/FnI8msqTKBeYYyyTcHscyRgvbbW2m7KyZefkukIM54fK+6I4M3u8sHUOkDEslkVauL5lYeb/rRr6vLBlhY9Ag5uaWfCvKJ3N3RrNiUftH4xejkoKm6WwoskBku+i82X+iOrpXFK6XxcBYX4GLdIoeybUsjLQiMqrEQ1WTF5C47yKtMP1NJ+gSVhLHtVRaHCkqhXwco5iDaWRgpcsQw7A1YGDvddj0X8YErKcw0TtjuZwe55Olqg/pgwrwJCQZVQfjYSUzHJcZUXq8djiMpd1TrcpqkzxWmhzrI/frr69XxuoJ5J3n+n0nLJOQOkltIlGW8yqG9KAr1Eyuqq04mJmg2SKTRt5hNnaQsPNizQKeRk0Lbu3Urpa2WmCmaxpiwoESGRXO8hvra04N5SrPGDbIP6RQp1QyExpeDnSCmtXTcRAs1GbWCd50jKlnKCsLgODtPCyhFl+j21jiGSCmMTO81NY1q974jwyaTYZhTkZgrA6OQDBAURk5lTbdBZ82s4lrycFMoyBtZern3OcDmgyPJAsPS4oXEd7myAlmGwzjoEySCgWivbYti9pY24j2h7rCcFWkiQryid75C+F0+T1CnLUjrfR008/J9cyd5IRrLFnrAyKYEwpp+2GYOj8T1H/sZ2kP2gifZJWgyJytscV4dLPAaFJRbGyC3Nj0wEa5FrgX2krPExM0JmRo5AH8l9qd7U5fpQqPvcQ0OkFqblquXKdnPpm+vA/50fENhqeqhh65bcXa21RPeKpJ6SH1Ttdi+sazDEyhLwr0aJt/EFU783pJj9qnWlQn58PncC73MSu0NPsqAZiK7BEFH1DpoT0LtTApr5MdxR4Wq5hrbT8SV1/05sRnlWyR2O7kAWqJLGiJgoZpRoX5B/d+snH0MAdmFU8u9nAyDkQ7Rr3L/34y6fChQdkL3P44hkE+zG/guA/1Oob8xP16uHzr/mSFoZC9MxeQ8HFRW7MpdwInmZlS0I7FBMgZt327/F1qO6jIc4U75E7g0Y3oBXlslHLRH0EuvECkVwFHMIVMSDneSir53TanfiXblUsnCD039uPHsfdjjLYSy6l18tb8jxKSjeoimX34gwbZJMXrMWhXRa7+4XHPYwhjTGxXX0Cnm+RdlFl6CQ0ohb7LgjoYohFzwCwO9xSi/l2XoKjnhHSnHMwEOihAXr6N7RNavOp5gXk6KAwxs61mlc0n3fjyNVwC7x2/fZjGuTzrzL6t7F4rsDlw7xG4cxBPAyrO9OJwyqAwr6vNdPoO6LZTb3ghk7SijRibvc0xF6o6nWoaIX8tuCRFNjftPgNFdtWTDff92lEG/xzxlm9FaCXuztTfjOf1l11xHPjygzrhgG1tMkDS28AmyNO9CRnc24DZDa/ZjWnwZmc6gLEdNr9u+tCurnV8c17myvKezDvLaYSpL+0C63DGRAY3kjmeWVYNPVy3ry6Nad40x9ERmjDGuMhZ0g294rccj8ZbL9wwDjqONPk68M+HrtJA/mapFtbU4mlEuxhktDHB95b3VV7y6Rc7+sPL72t3y4/Dh12i53quyZE+CdmyvU6TwFFaG9bNBghkrNFhic4wJMlFmUDCHA3Dev1IUxyfFyBKkUY1NDBQJRKEoLZUygQXIzberOzYslCazZVSB0kNS9jaEWFCCqZWK2SSBLZasvl+IKw95KR8nrzKCo5VfnTwJ7qCT9CaWvAiTIUKA68xCpwFNdn4z+uPcZWRvdSd3JDm8DGJr+1gi2xcxqzzqbRnwY9Y9RRjFmcbixjpYZpaFvjdk9y7XSeskPPCfW+P7R/jij8W+6Y/aA2uduqEE+Nd5Vu/g405/n6g3ps2PGfjxwtN+zecPMWEQrue65y3fUusfTn9ZXek7fvOo+ehfibUiu5PM5vTGkQbP7nZZSalxf9cx6L9JyLqgJ4o14/RRR408CmxwWxK6/v/njJcjZiD+9KUyQ36Kh88idLcTo/rroIu5+fQaFvO9Z0TnSpfLc+o/2ROq31DSnOx/2O+YZupIZm25Ur5D19yamEtnozD4cm1iPPUivMb63KXIX+HXwVdB99AvsT//FLz3zpKTlHdLburAjrRXNXDKW1pyH/aduBUc6t8stKvEu6tur86XmjZNlvTSqUoihuodiS9texs/PQPyDm4h8JQgDF0O5ruKzmXDZ+7CvBLje+3j57MeG0zDZlMrg5/mqU0m8agnkY2vj3IkJj7uM3DytV425v3tx8av2VynYuQqwe4/ZbuxPCJgvwwesjcQyYFWC3YoL9RIYw2Uf38Vb9/5Y22kaE7Ou+VMSwq4W47Te9YqPQvTKxQXN7qAYqDPp/wnsRajScwvQ7WPvMqnxpMkOTyGJ7aodXy2sdxhmpG5k/JIm/lrT/tP1x27tmKv9wFeEMjwBsklsszEPaDn48LayaisQqx/Qg90Eu45G/FnQ8OPMeKqA4jYzb+vg325U0Slr8dJ6Ta4Qx5eRefAYlwlW1Ipt5QtwP9t4uC+YyZO4bwAuqO45EZPiuy29BYshVJV5V1cSigTorB0kAXDHFbOp9hmoEt6/gLIdskQuydl9jHkGc0zsZLodGTPH/0vCn8bOMdh/IgsSL5+9bdWlT7sguywr4FOZ6fk8wm/ykvM3b1PePg4PvGrqvDSuqeWNspvGPkfUfnpVW/hJHoZsjkMQYtIWmhRhMkhSJOokb3/9u97vQNc7z7ptl72t3ru3BDn+i+ofdduNrPIfq9ZA7H09TkF/Ca/F5i7RIvX74lyIPZi6+p2/ZXvGz/wgo7IHRaMTiyDUXXlsU5FFAXxWzB0UgeZEsLqg2vkpEXw4OHhDrPvMw2gXxO7WpcCY6fEvi7z1t9J9Hv+2nBoh/E9w+c+LvpfHbh3SMX826jS+JhNPjBhcLeLe3oktg24rF3n6U+W19y5KuSXv91592cVzDmWARj+uie5q6cdvwPaTy3+MA1IATHeHYS+XO+tNZEZyCtBgwT76xqVgCM1ZSA59lVebj3olZ/JqJh7wsO/sdi1HtjBN6NaeiG13Q3YLoLPf3/SNXWXjUeSOo8DAeSrM3vXy9CVc2gqp5hZ2kDJflNehLZV7Y3VbZu1uRfpuuHhh8zJnoe8E9Ndb5O/y9tmj4369+O1vmxd5l9qstVtyBBBuy9Gn3y39JrC71fE0rWnaUfiyiZ+fmteiDYf/Bfspb5+BMciLz41Hm3eCt4ZChsx38/w1gzGRTWNgk7rpbZqus5XhItvH0xzZLmwl6QTrjMERTJEyfFWixv6mvJWCOW70cvVcAYtcWQ2julK8u9BbnLxZjaNX1/lj5c/nz7Amqh6vypYMrBYFkcS3dxxE22BMJUBHDRDYA3vAuch8UMzdMOjXbPUa1ns+DxZc9hlq6vmdYuljRG4s2W7JSD20ddadPJ/EOGsei1x6YqSv+7r/J2/vnRj7vP971nnFsW/7Ni/wHxP8tPPzaOHn8S7/k4feraFjtv74QoaN7LsYzWXW+faYO9qN29W2yOTwu407loZMphy8PvDrh+OaLuJtwMj5xgeNgL7KmfDWcuav9bG7Wg/e+J0382iHOXAd5wHeANWnTT/HzqPBbJDkjZhUJHnv9nsPZfC5Jtx5N9/tqiphZ2Lfw2ufD7QqHgg4eqJyOWd9jHhj/XHb2oAo4Fj/GfaiMf6Xaf/DLU83pm343NQn7/bmHAPsMx7kTciod78He840mW3tlbykJCmJLDhcxU0nzO/I4gfy9JcO0dWnnDRf7YuMgbp9e/ytiz5c47S0dG3tVGXpy6oaNFOrFCfieZ0ZdduQ/RWndCZgK9/bR8DbTm24btd0LJyifGIsqr8/Mfzq+xS0arptuXX9zx4NiO28degvwhD1SuLB9PubQd96qYUTjFF3CF4rlF+Qb8gdW6V7mOWOtw5ImPrdMtSVIPnH9kHO6X4uEVeeqSoresOXRB6x/+OB68Il3zMlVn9a/ZR/cy9Jo9DMco9rUBwyD2nmtsD0NjmGbYxtD3sm/gh+eHgxMscq+URx6cEAdVhvJ9V+P4k2DkXv+uyJ0nS/MaySeD5f0dbeAfPi71tR8bD+jTDIP6pZw29qrJU1fBxrmGr5e+tkZvTtrES/tCrsKWOymHI1072Yw4r4XSvYvuLwG46IbMPHMPmBzbXEbIDKCLhfzmkUbHjjbQ88K4nTIolzOmBtwrhMDSN4mOe6FXpYye3Wyvc5hIbqUjoFxpcx9GnR8vvSRvd+NG5GrW1LD9WkPYfhO74DcseV/lNbptjD4w0z6BZTtBMMwywBuuSOwDC/aFXNLx5Vc/Ojr90R+ewtnfPOMfLX30ykch2cw+ls1++jKUzYSyez7d/uD+E72V5bncvy1rzt6v/3Su5PhyXsULWdn/3BUynt0OmdgsX063fkN/c3xb7rL4yRNe9pMb4meW8zLnljNn/mm/OJF1GyIZL8yyL+vhevhXbz5++b53Kc6Be/Lo/b3Hmul3Gro+jn38ia51D/gGOC1tHmtxfv7jecLSKO5Oecce3Aq4U7qwtAACX+lLvgI4OVeTncD6S7yxFOg6+DJUbACO/5CMacM7k6/a/4ONV9j+8RvwQfWjwO5Hr8N57wWrHm07kJxLpmXuAzbzkRTIRuTyKpyMMtjRPKarFi+Ar+IJwYBuocESvSxyLHb905Hpqsm48QXfDVqb0t8siufL6mq4KDRcpkPS5f0svhMsVLUS7Q7driaVb0mu2aNR0oZ6VZfg/qq0u/AdwC23vl/fKIXmRrH32mYOSezOg8zWYdL1TVHdpg7S9daRA0yHY17onsa+sbonV7JjkuJpI4mYjlqWGOY48aetDHZfTKLluZuobaDdBcRBqh/DMvCX1xqjS6/YwrHL8ugc/qa32ou/GZ27LI/1Xnd4ltf6l9dSyW0+MlceolIDRWOsalbhTqo/RC1ABz4AuOU1wIEz32fkJpreCEwfFpodSaZ7hHh9U4duY5R03T18gOk0HpYEZprurY7nSsC7GW1tTTxdVMDqzeb+6YKFgyl21DL5HhLDA54sEGQHr/AHJhivhKqHBO8MT53maNtPidom0a+GZJX7/empLNSoV2lsbq3nOavmLNWC6hGpPdrIt4yKUFS/qrzNeJgAenb1uUjL4hGpD0xe/z1rnzdtO6EFUaOmfhuc5E7m1i/hT5VNhV9/Z/kobl/pHimSYfLSJLPNHFUvhdlnID3G5ybwb/im54VWWZh5F/8M/t7VJH3bDgEzUZd0gl5VmOMAgMAqPdJpz5r4awBf80vhiUW+RdxbrdHXzrbdufaavM5hRDAZgUaxHTaQl2vD46/htxTPPdiuwJOxoVxb8ItW0s4E01hA3eAAZsv+mhXpLqJgUzAfD8EsUUhk50QLw7X3vf7I3cfj6zPTb7d8JbKmzrr2pxqX/nNKkutI8FvdzSoyq/UafrnwL3IM8GFf8k4c43v4vdV6LXrK8f7qPTnO7kQwpd5Gir1o4KWiOARwccc8vUe4TuUIXGeonXG8du11Lc7mqGQR9VXNbLC+JMcqk63iz5f8RU55gTYjL0K71zu7Ig2Grkj7Zmsvolhe65u9LA2FVmxQvDqRJ4FM8r1hkoAfIvG80ElJnhgKaV+o2W3OtrmOjByrG3iGfQ346/ofsltE0i3O07z95JVNwcAulOuekUPbtU037Ltkkunxkvh8ajaDFevgBh4S03v+QAvQ5kWAs7e+Ww/w1y7ZF3ITjW/4pxeEDsdBpmekWQ+M5uue4cPPsy1IfGzVYZrzekjw/JiIM8BZOjlSF/IPPm8z01cyVZBj3bNnFX9Z8Qxw1jawnWyuoLGgFg3RAj0rGerhqnJwBcg6UGUp3Y1z56iz9qBtHIyVRsYFXcqZOu3AC1pzUr8Kr2+xYTkCA6KaVVksVJhLeBlDO87KZF1KFj7ia0kijFN37PZnNddSeSJVuLyR76jAMPIg5fhJzuSddasO2DwJKK/yJvCUgrkZRQ9iqD2ebBTy3+Qm/IWCz/gpHtgV6/Cz3HbRAFxvRB3wXFt9iQM2jDBzodGdmqaDuQ9PZA3OXM9vwSe2XHbNzk7mPJvIH8LnLbySaY3F8pYzL+3s2JiDT7+fkbHSnb2EJz/pTi/rvlrZflk9PjO1rfidaBZ6Iu9ceYZG/rLz950fmXM9ZY/+Nff6i7K9rcyUu/0lf9b9N9q0yr/63lrHk7nrudtom+7Dk4HS9c1KcBM/l7ph7WHhDLv25hAt/xtRAQGZTGYna60g2K0XgmOw8MWo9MCTA0UVI0RoMFqufjn+rk189JxxMha09HrfbSVfOTi+8R9lKDQKPbiTfKX1HU5Nqw7Pi02eM4qP2t+RQic0joIc+TLgXCkBnCusFMab0OAY5OB485XWd9k1bl0jL7j7vEa8YHtXCtmlcazZL4WGhPkaB3RC+o5dPH9eszsQsPZ532ltvnJwZyEjvGE/PIAYVTiieJZyiCGgIeRoFJqFhKqbF1OEiGG5NdrAUo1x2GSzFFlXz8dUGwsPu4Bvfnl4hgDWD4O1//vaXPUtFHwNvGlJAXoU5FB31+mOpZdfauVV7SAhrg3zLM/7i/OLrDVx8wB67NHO5+srK6UZbbDc7vHwzXvLegdfMJvPtb/aQrW3wUlUN5mUKMEaDZTj4USSqVIlmbmCfNxgJB/bg8EYNOXYWcOw7snR048N8bhwx05rnwwPB8fOPDaCDf7RM6Mw/8+Fd95OH4OcbQ4xhNNGX3/LlaIokD7iNQgLeQp5m0e4+FU3rbu+rixBSzg/2faXbe8VZrfEM1Nb8rJ33I0Volscp9e9Sofzt6yqr574++rYlmurorIwmqjF15YyJfidDfZiz44z9KiBOKSX0Ud6jZfQgQOfWCOvTKwKmD2jXGvrcCPZiEcVs3jYMZSryF/8PLPDQBrW80kd7dKlmqz/dYW3odFqxy9WtqBxHO3e4Ss+y4joiIN6JX20V38R6Tet1uyzqo53XU0RETyW5mgRwTSCZRqbakvoItwoxrbDs+N5ZoexeUTPJUT9snl48Tq5FqPPfq6yY5elN32t2Dt/8fAB90Fzy/Php/2xCwX3gUuH5vdaDXIdVU2Bt/Pa+WBDI6pOL/9/37D222NnlcoeuWfr1YdHtE+OnnmkdHZGFho+4t166y7Mz8wA8zffAO/IXr95HxZ0YOHWW/+lFARBG1pqzvqqGcL6+sXNdL5rnKBX9BFZXTp83SblJ8fzuBV+wDfXJATJwDU3yDUK6P6CTP/vJJoFRu/sizm5XMc+THA74UnJ0eaj6D94iauGLPTFqY9Tet/cwy68XYEqEBbQx97fLc61TmEFAUVDndxIpGelelI3jJHF2epDgQFbA2Q9dSRj+sAa47Z6DpV+kVOrWBjUt8cnj0ympdXfYDEiYSaDEWTSIiwWrT1IRzcskvY4E8vnNDSwOVgcm5f/guHztjbLlMnZZOWhD05+UDyk3U/bn1V9qbBP4QGlv25HsW1D/o+wkMlrXGCzIsNMg6a3kebiYBBauXbp3HR2xpKjpe4/gBb/D8OFW1czT+dZ+jFi5SCKY+VgyKpYvcoPEfptvbVENZkjco5jlLwxpNwpmYeLmqhMNrGu2sLcVgdbf/n1DaMvNkE2olvwq/iTmf8Cz9NRqPIV+e5hgYEfhba0FNLKwe3Okv4mhqgAoQ41NFsLRq/NXAX460sFlGtpyiOfdAbuj44E7n+y40hm+kxHbeNPUezc5llIS2ZePmDgKWuhfF5DYAdvnRvBzX6zrCSXmRXOLP7bsuph9WNcvzm8cf1lZYlTtpDUtLoxJ11wNrp0Yb/aP6BWyaMvSIhQoxhLbBJicwVR0lRhFCJE+Yy9J380UIyyrUTqYZ6s1srgoK1WFJtgryFrmAFzXrqqbB+4ojad7tSyD/qHVlFQfrryhhfm98Ng1rDY/KbjhbX2wifY3OWOtLLF89+fN1A6k58lU46rpz5suCbKqFJfMpq8601+mqx79+2tMeSlwmh8PW17Ztvbm3vfLHn4i8cJzhTpEafz2w+qe3FeIu6JOs80fDzoP0D3ZeJU1HYG8/HLnxtcJaco/UZlHMb7mFtLa9lp+oBJ2QVj+yN5GyO/YJGNzzzIDy186PW/Eo+JnVu40Ly/2TMkbIrTmU3dQyJP/o4cukp1VeXDLTl9U1iV9xTLPNsuhrrrYGkEaCxD4RS51IygIGSZe54daOjIsYCnqw5ChjBMoam2RlTX6ID4T9SIpKlKixFXqRppdSo5HMswE9F9Bb9cKWAjHcYGBteLJsjrX8hkEiMB5eFaU3RZbjnd99fxw7ueUUYaCKp6JIyvgTEbApUGMp6VbpxabLdeofaGFkSSvRYRLhZoOQnzfbEn/qKodw/lThTWQb+dmDoptACeJaq/B3cpEC2fdIP4dd1+voHRSmC3QibEMAlkl8idICg7ptmZ5FGxCX8Agd36t5vOR05Bco+9/mePy3VLnP5m98wZkaP1HLdnmL7saKde6xw5yjIHL7tbT2jpQImfwyS3VbA5wTqBrnJQRoJGuSZPI4tib2J7IHsVtmXL+nOXv47pivK9bGu+p4B6P+Pqd1dHGpFHcLjzSEM+eI1Zs/PVR7KJ7atVEXKczvGUHkVu1ftq7OULcv4OgOuQDVeFC/pjcoRvLI1Mrq2G4bWkMLcFj1/Fb65i3BHMbaauX/DcNMsTycdwJj9qyYvyoo+bA40vF6o/j8ibFrzWzSgJEm8pZhZEHw8hh0Qf7114UyHKrfzdpoGdApkbuCzq3UN/kx8493bf1AmhBggcZ3r6MOfdsYL9pu0cTCLAVxNtBE5rxVc8vjtI4PlmSUXs7q2r89VSaF6Eci8xe0EaDF+S5ixZdR5Z8S6CdxFs01tFo2yS7fO7ArFztsxpK5vk+AK+v1nZjKWTFRsfuK7OBPiHpkR2UMPrW2Y+0tel17wDVhLTwX8HZkzsYMmp2VPJTX/NctbPkXic3oQlauNdiiqtM9VPG7YoYWQmGk2mI2rdjwczHQb5IbGR0+g1EYhoSlH9rurqqdrEMxycz0xqqiEXzX5aWd1Irqg4AWzmhRTIxqryTvTHDh76eBh4uvT/n2/PPfzBC6XrWrmBAn4dlF7NN9L3Z7z2t36XSGPfKkv+lEzTDf5ysj4gzXldTl0XsXJIEPO42HBK3bgkkZYzAnSbgjhvKxtBQa4aTCOsOClj6bUTEnfV307KKycEfX7PbWLWzijOfLV5BDePv6lSePwGo9evqJJ7fEaD15dWmr2ydvo/oCAbjI6t3bsHOrQlS5108mlPtKldjxcdL3/1/5ank3TUH2Ou3kxQ9pHurq2kjjvsqT3CD6cFewUfTU3fZnc2t2e8nb241Z+FF/ehNc7aIx6RB3lE6+xDry/L6/7LHz+IxF9SJMQn+yfGx+sndo5rCgJTuyd3BwoE+ZLZe9p7M5Jy0qWyJC2ZNtSYjBtPX1DG2DtL2QXFh97vBLM7XG7Pp/pJyuTz+FV84ax60YrFJWkUNpS5r5CVLh82ZO7PwlBUCJiaWrD2OeAdjXJHievxk9zJwjk4+722ZRL/AL+ajBuKS3DeJOjQjS4w63RBGLA/kvITS5iaKu0A4da7bn85xol+9obd7nFaublP2ndi31zvciJl171tX1TgpuqfEn7Xl69rC+7Rz7xxpueFtac84D64vxDO9I4PxjOK/5I7tK6zbP7diRB7dpCtUg+xObOhJwxhkJjfcOJ3UMs9GOweebSrJv/xbr1aLN+84Y3RxZNbwYs1A73r7F1rE2PfvIPHf8idz8371ZoAIfd8MajfdqaCm4uQdxLJYQmrOdbPtXEH62X2VNYhKq8WzyFJiCSBgIONZ5WgQdsGN1mGcdSIph0H4VEg1dUPQZUkJpdewwDPFC5U41VuIlseYGA7uAJmbICpMYzxubtMWBfuaCB4nJBdbc3V6K+d0M/c6d+80M7j24ZRLS1CCG08Ot88jJHLT3aOdQhbhvypqvrjjLLSzJ+qq34qGesnMXVxlESSQJ10Eotp9sVikLDM82LQWxwI9m9I99vq7Xdbv897ryPdFkc3tkn3YstZ9yurXwfTqyp/fzgLTimhbfhFQlDYsbSWMBUfFQqYPQN8jX6Qz5iyo1vRi22+Y7jg1uz8yJw0D1kt4SDrGsiQOVjpn6Erc5BVUi6qDk6DUMqrS7K2Uga+Orvy1Q4iZtlVDmG/WP5M/ifJbMkP8ZWve5LdybJNT8SDW7ZYb+U/w1HrAsJ+LoPp6X8YaHo4I64ZRMhuuc9tCfdqLQcZ0T8AGESjXjcxDpqr0wlWg13i2H+m68fiPbolUbc61OuyEhzWz4zXpdzrf0cdc504X1461TLIyvSFreNPV531KUudr7agfo5NqaK6fwUfeiVqVoJUTX4HvbWr9dVmNiSSRowH09j4AaIaDTB9duoXtdj52IXYxdilWGOkqR+d5n9sktoA8nvk9ZDfq/o2InwYbAdGAM3gndo4XQ/cklcG7nXn/fu1xu3yK02UUvsSEmrUOLUj90c9atrnbVJi4JaMD9yr+LiVWqOzBnqPlwdu4Thw75BvQ+srx3doKxOTtNPnpWk0O35NDTiIBulT3NGvTFGJLiypOk60vSXXAoatWF9phO6VfmccMeeHtxcAIZzZcTQxuDNe238LWr7hwZa9fcZw6GMzyOYXW4l+YEtSs/OKuGbEnphfSN7P/o4Wt2zaGnxjNKhG/GDShcnLr2Z4Vzy0cBg0nDfFoQXXtgJQzhgGtFkMFBrDq0LdhH1MqEMhEhZWnk/j4F9LFH2A+m7WiHeHW+YyP/FSGKz3tjCOrYV49ZSp7VX+BobB64A5xv6SRi66aE5xt4sYRUkC8Gu/q3FT6vdfCnrUxVFGJhJKOxJX5Q2vMyvxMUjTd/NTUi3X40Yfbr13qeFE3Lp3xs2NL5YaxO2Ae+9twsGWIPn9BJwV9FhbTZvWeIDJQnEORrOlHXfybGkLKJUlbTg+IfHFBDStfLqGHQKlQlAqS1pjwgKG6W3lfnsz92ji7mK4oCypSyINSP54pb3SuhqLgfBB2LRTAHULTzWDorKkC+MXgEJz8V+BxSDMXGK/cotBprn7FkgTPnfJ+By1eLqUuQiAv7n3e+KKGtlW+9OLAdSgnmlksKC5HrQXJC5V1hN3Zn4cSBQDkmZksJ31jn1PrHu7TxnQZHPj8Tk1aVIy33gFnQUWu67Ni4cTWnX3idQxGIkeSihLW7/YAL+Uj1n769iTIQM1m/gUFoqXZgsjDVtsObDba+5cFEF7Kb47VEYgzqo1R1zSyN0agEOnkr8z+oxCzG4zZ98MGE1DTc/0ze2Df+Ha73fWCV3ssO82nyyUpe0DdkgQqG6L/avFIXzSY0CWGBdjkG8fk5kEgIulmcAHTLfFVSzv/GH92OqZYySrG4Pp8g5F8OiXKK1L6kXLVNQddcV8QHtOPynE6Gfo+lf/j715RZ5ej3f1H6xodaV5UvFbE5fsCaB4jLSHngotu0ttv8SxlJeWOx1f9T+ikfUT/SK3Na2jwfrgWd2/TJcSffLuITdxP2PDvfNprWNuCYCOhlcN0PlGovLYU/lTkRXdwsMukgDaFrMTegyGp2n86RTZvtSTD3urfwFxwkxFXxpF59ETKjntY+cQH2V6Ik2XrpzTwq8MbWWGgW1D7myGC3qMknQKFHwBrX526jpN4wPiY7OjNdyMOjAB3tgHvTY0x0tY6vGvLQgH+rM17PMuYxmg6/v/lWJhB8ZHjO5GHd2P67cVAvzHfVA8N6M5TIB0Odnb5Mbru9ZwSImXALzM4FS9/a7cMUfJUUMY6rycemRGjHP9V/afHPkgYrPZVtHYfnOZvRknWcEE6RuIz8axr+lQ+jfNjZK21JYJgmfQvzgo6pw+QmIs/L2vElUBjItmquAhTX9MKbBtvNAlc6r48dNW3yngDuh/MGJu0b62eCrGI3XVl7dSM6Rym3IxPNO6ieMrM04/h+TH6Q83S5Yj1ukN1sQWBlqQD73m8akMrOWEs6cJ9CeHdzd4GWkPItkHXcyjf/sjrQboB1Oao8vx/WdflrWc2Cv6bbcWq09rdWuxDLcgZC7DnzKwliN+b8Bajgw3V3jNUBlYy2vzvQFCOHuuO9bkZaQ9+hv6oMTyvr11DHoytIP6z+7LKvPNElqRsulnZGqDfT159Oo4OhutC935i343R1m4/AL/eYKxwx6ac1bBUi69lN56T9Ji5XvcTFXoaZ+8hdYZNpPE6gzP/XEKhKb6XbR72nZlFiKeMJLvZweMbx1L2ud+HkPx07MX0wsIqI/x0Lv19OXkKT+bCl0s2mTD5KKnRSnb5YjKFCu2nKhOsbnYR6LV/z9b0gP4R3sPidFppSe7Jpsr93iGiHncz0hUXDvJLaIFizmXbeuZHeqJTOIDUIBR/3jY49O5FbwGTDOS7yX1CqQkTUG3FvgTU4pr6UM2xKlIIJ15VsvK7NmjjvK6WBufn8vjJCANBnYYCjXt3imjGFLE2F0JeWwJxl1PX56VvccOtniFOe0LtiSkQrbEfNsPlzqPKi4ikC2gdDaP+xBeW9/bDrsUCT4m7wL02H3GlCXAu2yJRfH6StZIhwSNUmks9Qq2JO3MpVGYhfwlau6IpYDJeBCe0OqcNc/evlVmQBhosks/kkEpBREOQs1aihgwfnbsfuZ5rj7JgwGvYWuLIcXfU+5GcVkE0D9BFOPu8WqS2BIMx0b1AZ5B2/tLLRsjRNrGwWsln0ImQAI54qq11G8HVj5o+hKZHWg26XqrVhsIYLjr4oFw4Go9ai3X9RyzoAeckv37m0PHEbdvlEJfJcwUih4qq5uBK7davcqNdPgswu6eiGwExEhHZAnwEabONUQpmXI4SJM0P3zUkQKZ0dCHSA3i0lLPCEWRb3DtA0gBepRaSvrklSr8f/BBf9dd/f5NdwzG9D864lIYuQncszLGJYmAEccUMQX9BeHC5RnbRMKu7W6LX13lVlYKcRarvW6pQByTb12qhTCMT27XTSEsgbb+nr4ZlEckxH6aZRso9KOvtBE2W++cZKmhxyAJS0VYNkGTESHnPQ9zlE/sNo/WelJZjGrCHnKbrERMJGYpKvjmxmUBxSLV84zY2EAU0exoxC5ivI4jIcXdrFMFV/bSgaUQfm1DJtU+CrEChaggaLBJjrRVN5JmE2EN/ar0CoHbrOlsGgkRVC+tI19UOVcXXn3BXQsEGJmyHeyu3VDjOPYeosAPow2gAuwg9f6+nFvJdkxO+1po1ewiex7WblaXY0HgKIIxBHsvFuLJZkNIDeQILVyQozrUTB6j605XZUHZJZcbOWrWKIfkMqMwfA1UBlkuYpsObnAqjm0SA8PwCpOSGjq1YJkM5jB1z5whD2Cc6O/TInDq/tM+MkZAIiZIMsIYnZqSADhTH//x8mHme3JpNIjb8WRSXJ0YodXWg9WZ0Tm3D14GSliw842+P/JTSnEAICx2DvxM7LcDWwlKgea7G6ikPq9Uw6/Ypos7j0SsMj0SUKoSgXa63BJ46wq+/QLcWKvLIRFcijlA4m9e9vl7Ov6+VDJPIngFkgU1XIrhOzmhQ2etTZ4lxByS5ftkcbDe9TMHkvWmPWmFIURdNMkt+SHhvCHiNy3UPOOx0ZtybGYWC0+Z8eLfTIjte4URVsXIGFIjKhdJZYSAKlDpfh9nrhFrdc1k6HHCRmpdSLcMD1nNVADIrMl3RW9QEQ80BUzbx2J3dovZe6OXmkzlFK4xGg9QqN2h0YEEGnWgQkPlnsop3KRpNhxSLePTsyhjJh2ROwiVcBBxuw1961yvhywOHooEtFnK9ukVu48bvHODAVevAYQhfJYGUWvFABryO13Jc/lrGtLQzMxsjTkqCYAxPh46iPsmXF6uCj0TjIqiWIpkpODuF/zKsO5htMZBQwpxkhBhbHkCf6aXWaAXhzGGRmtln+eyKeuOmlqqX9QOjNiiRwVPZ7l8INRqDSJlFZLjf6t7IuHqG6Ae3XUzGRfn44vH+jXINfBYC09qNqsPUlrKQ9i+UsvLj2KSjMdMqJLGZCB5IpNOmG+sbRDMojxDQsN/W8yfsxKFhSwePRHFL2dpUPIrIhFiNkyS7dtfMctOX63C2+l5obGD6JmfuCmnKnOWVfx/WyzB35N23trzzMqVaxpHp7PztEf/CZh7ixdLdC8pey0AndAcdLsNc3jW0htR3i/bXbPvfOXbHsM/wKQ12dfgGlWYL8OyQXD8t3l8xcZ0kI2iotqRVl5/p0KAwEFSamEuPBYB9y1M9Ioc0kYY2iwAy82+OTpg8JYTijfzKzQ91dQq5XUkSrhFIfY+pY6cO2czhjEc+qtzJZNu8QFhTwSsLzaE4HowQ/wuNktTbivFsEUZVOx/drPYvVDJhQhD1+PFPabLt19tJd7Tn9oy4GHzyWsPNxga4dyBA91yL6Qum+5IcVZNxx1zrsutxT7sihmK3MCfWe2KNwlb3NRxh7nbN3AOse7TNgBnBkE4NTdyc/VoOe9B55Qeg7LOR5DntjgejVqkQ/kwXG2poV4iN9CUMQwCJBVkrTs8ankyYQnAyX0VQjcvF7yfmLDPq0qM+djSrBDa4AKLhWsjaYX8TtIohggb+vqb6p2S5yb4AWkAQDzyIdc5pfqdXD5Nm9puKjg0s4smxT6DXcjEtl/WCP74HKcs0SbcToW3NDiNrDrPtdfNICOT+qiBKfAsthSJ6AazZLvpjTQDoXEOBiH8uGZ8u569Nmq3Wkp7lN5mRscu7a0ei7cKWZwxVY0HgUUK2Alowy2zMXUtabowme41A0ho0E98v93p5mtACic8RGqAi7nO2REXNq0NteWNTW8J82JIzxJNlREIS8uxmj30vCFxCWWpYR67RD2jIsB7tHtWaVJaM4/hbaAMvsFf0AbgAGdfghfWhmCbNvTS7WpDF6Adhmq+3tCG9mTyDJUuZGMQRUeON8JBd1sNrFXcLtIiZIeqFwmQy+3+VHdZcyIQK8C2dtsr1Gpng0gkxsv1kWW3pC/ixsiPxpTgOFK7P0cripwGMWRn2/Ijx/hp/JUvVKtTeYjK/S5sGsT7boPRWUnF1QI7aPRJF3H+xKe1Ehb1/JWwlTZO/rvCjgbg0l8qlLW5r5hixZe5eC0u8/2MNzIn2dfkFVGUpvoD4trsfMETBY2K7iIqA8F6XSZxxrHD/OFi9HAGuC+h6+EC4JMd3QjsFaeR3utuM70xuIbc6Ufygh/i+NJX/l34ISdOg1Ej2+PIs4TLykBw/Ai7xB32z0Ply8qX1V/074J6bL9mYjeekWD9SCanH+JMOhYUF/L1WJVIyvyt2k0K+3cxwDq/ugkL7OTyVKCzmkqHePAS8HNBqhnc+aDPOV14n4w5voshO+cVOMlwMeFF2u2u4X0jPf7qdyQHl/g6ScD/9d23rLsJd9bQD93Y4YNC+fXKffq1c3F036GwgeGks1L2jqGKFaZHCzL95T+L5Mka3U2w8/uKi+ZfpqCbLH5es6YsQu//C8TQMK8g3vA49E1WYn1JJvgwocS14bL7k29BIfbIedlrm7CEJC8w5lc05D2XpyJ1GoOG12WPhB6ocydFqyfmgkV3ahEAW3U66bMuxAOeLNLHb9utgd/hwIvbnHTuctZJiOsur8+6KteYKmubrvVLw4aeWS463FFs1cGEPbvj8gZKw84J7x70CFzxpexmtHx44b/HtkxepLR8y+JD/7De6vWEflbd3Zi7D7+wVG01wUJI2reGtyMbm2LDlDAYgbugKJkgn1wX7EnnW3mpfqx9jOW1vIpd+VRQVVlWhTgc+2OW/asZBVQDDP7CbfatM/lb2Q4CzMUalIkU+g3qCJ+B5aO3bccGrHhX0+GmK/H1+JuB44N9xJ3BH4cGaLeHvhg+jz42YhOHrIdYz2VsYbwevZ94NzbA+os/sApVprHPCaoFJwTdq1F1DD+Fs5xzbw2i3cu9KHYjzlTKEh8Tf1xnN3YjT+Ut4K3nZUoOS05L2tYv4Tfmi6krMr7aKNHXC3s3oeVFWRdl/Uqk2NzO3qAicF6a85CqJbcn90bV/7fObfO6dm4bEb/Z9uP23ry/qd3ckRV+qf59pyF2bpekNdtf3h2XO+SVhT/unt9TVtYVXSVRVqPqmTt+KTkp6d47n4zioWJVsbO4o3i0+J+gNEgKugdeB54p0ZU8LN1WOlr6pzKozFuOKteX95RfL3/KFqQcUguxQYaQ2A85A3kX8icoB/X9wUJj0GPQy9D70D9XWCuCFUsVL1T8tbJcebKqCP7PNEtVd9V77bAnZtnFV8RyscccjJ+oXZ8OenYhabMQDLnhtz5DM+LGZU1ERcc2USImtY/fwVG5+PJHjAEPMcbQYSfCGDAkEm2t1cvHo0yzfrudkJKWdcKEjJq94pb69OtNlilfiSaiomObKBGTWnd+i7v37Ew68/zr3sSo0WM3seSYyVOxJgKxuPjxR0srnYygwUqIERbJUqKhtVxuHz/VOu1wWLUWg6acMSWtZCOkmDhn7rxRxZFIBtMbU/xJZz5Y+NR6avbo2btv1XU20sH21dJgM10oUbGN8VizZs9TP5bWgGsh1QM7IAABAgBciWFKOWCk8u0EaBEpEZYCDhtACCI9XFt2FNWeJB+Co7tPNxlPHae6lT9WB0++Wq4PWwCg10u/D/n9zVp2e8rQ3HE/kJGpEtsMcJ3fiS7Hq3MDY6Mk4YebQFrSq2sZpvNpR1m3nz8Lw0BuXZRjE+8Oftp/F/7nKfFAmfpn0b9wS3zZAEwSomIh+gLC4CuYG3wIrh3qho9T0VzeHeKULu23f8ZtZzMyf/4gUu9RwpELHXLy5AkqbCzrTR+nnc4ro/ugcZH2HBmcZeSJn+HK9XivXq3ROUQ+VNmoFVbCSSiv2WIhN2r0qURRPWYH/lenJw63R46tR2JobFdsq638QrN5xlT9/VqgB6f3rsyX2LiwI9+p6+UOQ3EzCJPSzLFwOL/E7EVZUKHiAywYyBTylZyJZlqDjpyeGVKjxOzYvzHRPZ5QSFGuOcxeWWd1i8hrqktJdPL5l5j0et3K7ojB2ett8lRpc2SiumoZcNwvUtrEaB165jkwJEUTI9a4FQSxarGRKJkr1PyUSac7aVF4712xoRzZ0myebCUelHGFMBGhjYRCpcVqPSOCylFxwCXs8hxUWZpoohXQFI8WtTZF/2kaJzSbFOZluEd65j815XSVtiBesFQ9W/oqostqakAu3zIpcJAqPmAF4ZAPaJFFvB+IU36j0uLxd+v0YY5B8ntbtSVQSft1TicdqbTfsoAF0aOtIxqHiOA3uhKnqmbxg2y3o9VsJBSU540jq3MFNOj2kZ/l5dWcE+8wzO1sQoStGx/6fIk1Xu+YvPXXyCM+jH33VGZLkGcASGBUZzAg8O6iV6g4aCz4DX5XrL5qJXUNeCM1axX13erEz3fsZrDgnBXREg1rNO7tRapNZeOs2B0v9tAfplHODAE03l+vEUInlbTBR5KnXZKM91iML8PpPhZhh22MWDzOmSGExnQ8n8t3KTCkjUWnjcShowsYxpiyw5gJe0do33NYLJmxf1M56r2CoazxVPpFgVQmWklnUzlTqatxwSSXzlkP3eVpkaZ8QmZzOP7OQHolbhbQl9UPMkgyOfi2dxJWMe+FFa1d92kg6WkUJajs+LsvM+hqpawKQTAoZLKpaMJ5atTtiixrcz12FQNXCoLe/WJZD7g3GkmUTAENehHWu6HEAV0Hw+TYzePyB6dwHTf9rNcLXs6svP+MafVUehRQ8EVeOYAdXJi4bO5tb1WvOTixMKeuA9dS+q396szoWfnhomON6fQ1ZOFaCniyBDeq8RPrSk7o1gS93Ec16gLXEHK8AVybvvuGweh1niIuM5NkHYx/VYxubg5LiomdsFsa+4ueUvMmcYqUKmN+XiUWdFCn8qReS4RI8Nj/lRF7v7PAjRqZsZwzsoTrprWHiZGhQqPij0y+TqCRfB+dAFikvHR40MmxziEmijuugrHtJbfzFJUlJUAAgc1E6VTh5YOxV+DBH+Zv3NeAQR/J94PdT6L91lvVC0zm7lsHGxUotrU2epmlzYsMLD08EQM+a4zPLLt65gjByOeFUiydzBUYwz4QhAAwjhBJrb+8PwrdcyyN6KQPXtWCzHo0LV2vIoF9+4XkctaRHeV8DDBI8D+S2hSo11ewtNcuXL/WJxOn43KdjQM5SijQ/9z7vMFqdybWDpGDjeGBCYPIDdNGBL5qBnShN2yUxdjTxxUJRObpY9D3zkpZwGsvdzivn+Nd7O+/OmwBgPjIbYr3hwvFgjFfgxAKf1sdQZc3+aCeaXkMFHYV5BwjVQPXNaPn9j4+TlkU0vpMCuzGLj/9qqTyUvV5YUExH8URGnT4HP5JrQomHHWQyd6m2s7B6MmqWVqub5/loq/GZGbEmNsUoKVN47QMSbksY5Jjpm4stkBQ86YMYrbjs0a4zOWB0fe8rI1RkSW4KxYJydJYIZBp7zqLlckS3Yqxyht7qEJmTiU7DS94wZAkhF9bspURNJkG3Mb5SsAqJ6suODCE3mnpCdtUa+yAOd1n9LhMhZqnGzxcaram5FfuFPUq6AEKtVUhSzTX3D9i1ar7qU52MxiSMI5k9fIuNTOiF4OB90F0f0n5cj2yWtM8NqvRSNW4Jp30eSg7AjTdvE2ylvmnW8PSWmd2tcU4PChN2wkjmHJh+T2h+LSyRtfzGYMuuezIkldsyR0dHZ/nTBWbKnZQU4rgg+PQrEUgV7MqCsk1ZCx2WStvz2JY0YRHLPQFJLw8Y/y/0OBSdlkYdGgiW1b5lekQtq5Dr6/U0kQb9CQMOk1qu4yJZDhnyhOEl1S30yZ9rjF4b0NuZxeCqgwBX8h/VOYHabH2rSWgVl9XWdHMIN1oAEJtzyNyRFk6lahg+Yqu6HROOo1IYqfk0WAyOepOnzG/50S2XreKO9rbPyFqimWsU4FBQ6Z71hnHyQId6+S8ehciJ2wi8bWVGjQ1m3YhEGMhYEga23Ju8GPpeS0fvjJsqZCQ53l3vVCua6+P5ofCqiIiWP6URZ3OzHqPRROOzJnSwSFIUD5GxKg5pg48WXXV5PKbfYAe2KuH28bGkZhXvxeLXZLl6fse2noRXomCIYkH9xbfQJJ4CH5mJFZivSx2Ul15XH1FrxnLxCKxZFGglB61mXVJue5I7NKQ2r5Ejgq3wQV35qAH4uAZZm3dei1L0oDVOl8A6qSje17BhDOXgNCik6+8edRc7apTpeJA0sMTVdmtoiCSub4amfPFfnvF4HbOMdCIisY/jytNECDRc2VcfMyRzxCQK7pKSzTKijkNr8fTvsWDxaHAuh09xNspArgc585kGWvFgfjNRL2OOFrIpk9DbHahOhR5SEsndqZWp/V0HjlucY+no+EEhiVDKBDD2dKRXZYTarDPXCRJBtLH64qe7Ehccw8iMDt9cqZPaxdkCM51rKDZ5HqNQdAs0RdyJw7tCNCzRt/US6XCiWOZZzsdCmIkgw1ii2EFdpJpi9mN5pCFhauu4NBZfCyEkJN1mVZixJqBeYAhaaLM3oS4avMJE6uK69sEAwtCWdcCM8Ik11/WbQzLG/X6eCueJYaLjZHqNh2WpR9slm3Y5jvBF94Jfvo0LIe5RBYtWlttou+8+cerPDCcY+eGijVqEn/EL8v8qOm5N3auO0xivz/wH9ouzplCT9cJYLPuv9pNa0nnr4qkGlGWOnPobIrKd9ZzM46mztaxWTVRuWFYCwNAD/R7NWYHJ6qDfldg5UR9DUgsOBV8Xrto5PzLYzajSpOSLBNWQMhWZIkFTlRDz2bD9bKt9jceCwo+Fum/LVO7OuvJLrjh2LhRKezqlnA0sIedjrrZGFjg9wpK1EHGW+w645ltlhObY6jqEexs0HYrGJIYAxYnP5+BrGaNpeCcjBudX+HoMXdpg4fT4KZVRd+5q9ZzaORC8qKW86wIvcnMkNZkLC7AZZWVqVFkemGbgpm9bQKb1ihVNOEtcedis8UADXl5u1hxERiLQBOJQGmRSi7GdkdnwReOZiN2OC/vnd66YJ1V4IBnBGRG3xrxbFR6lQW88FlSBFaoHEkmlBTS1N372hzLaljseTP9p89Zog0W5A1aaVuMCuSg0uJPNx8bbiAL4VQqGxdaCApkLZ2y3+9o5JZRJd+4E0NNECCdkxDrpiOJ/fDr53XCoH+Rr1qpbhHNfR/9jTqeKwtkMqu7cQ6JekiaCz7T5VhS6WQA7MCaw18NULME5RAcYlwVXND1Hk8DFLjcxF0DzYRgh6oToIYa7rdwkCBV4aeqJZgydmebLeCSfM5/6+a/vqlrfFm0C3eaRr7hb7qQjQCC5LcfvPdgfnnPq2X0PiRY24w2ksYQtrOibP5bdZPRHGCAyPGfz7fwDuIoXnCPZEKt/P2LhOPSG5oPhp2l6MRv2Nuf2jj/Bu9BLnm9ZIPXjlO9/mcfGPw8/D8w1RsM3qz9X0iuYiu2EIkjMplf5kOpRMo8zeKSoae7UIR6ReSqhzqTSHDBWipuMu47tXGmVwfnWTxWX8ikAgjXq0VXeFXi5EIQI1asgMiSFvMr8DvXLegjm6Vhcs3+dvRfqhtkMhW6jmy9WYmu9vsepAUbG+pVQhltZoPmg6RN6ziNuRA1+C0wj8V22VixI+rjQd96R0LJGc16+P4IhWW6p/m93lJN2+NqWnLZCBhQgnfw7lJWdTVvuNQn1hq0KsW/O6nmz+U6pUan0+U0COs1CV4OzjNMcpaydF/IqaTHNyyXommxTCIa8tx3OpJczCrrE4MKdDodkzGzISlERBcnaQyU/JE5CbQSvgKzSUsVCiVQKqssEu3k46jHOY4YZvpOQYukC0Q+6acANkIHHVDpNGDZ7zFE7smIegCJsvnT67ToZHZtAoNiKGLJKJMi4sXzkuTQgZYxmoKjs5VZAhy91pRiOpHYr3llygwmduKRUDCSzOkpQIW8hCC6SFp0c84XPW+ZQOKfKqksZ6RcUHehGCMZ93N2MLaXjEtSNfQ7MocnkmmM4hvEMeyxCKKItLE4mIJZeUnCDk5VFolO9nF7MltCzBrhILGB+D2E1wfTclVw5zqZjpjba/pLZllZljxRqwtuRvAbGTHEmeH7+UpOsnSnCAlDxld0nnZ7HArnNDZ44X8cwY0XYjkiuVz4if53c2/vzTLYSwh3EH7EHt5XeN0OKnKgKNcZfvhGo8lvxl4IP49AGykncs1eohPfUXMyOWIXdkUy05OeFeA0L8nqMfd/NDLd/c7RMQ8E0dPnaz98PbLQCcEvahwJIAsphELMa6CdSBbaz0V1K7rcRQ/hiMimWWK4YeUKAu+aoi9wUMqzXEmpZbPvC3G1IyWuBjlbqF2XfNdXU5ODSginGm5HuhbB0xDTVavRXVlfWi5E5CKAJcm94VnLJbhvztBNq3BFw3HctaI6XrSBSYZ6ZjbtgTXXmxyqhEsXrMLqepHod2B/UmsItBAh2tTNhX2D6o9EIWdyaYe5yxY4pnnN2nM9MAn7qpHCSVxhrpKvk+2ElYj9PF/c4EI0CjDBQ95XDFQT64z9aJGNi9/Mu3gcpjlC8qItkM/+7XBiSxxr3xoihpmW30KmLMAhMR03BbM9mFz3flpucgjvF0ky8GKH6Jym6YNCak10UIviLjrQXaWZTJk7RZZFDUxkkOuuVLeFmmJea1n7JgQUFKIKBd9M6o50t8p1/wZwXBtPvFM08y9yVWFU+/h0vU6sW//Nf+d6CC4GyKbHvEA7GB8CQxSiDQpCMOHSi6buJ9qAT1b7rk6Twhd1iHeiTIigKEWnNbLmonuVVKggavPyV0hCmbyubSs5SdpzbMOK28f+QGYGychnW+musLGo/Q/dMpOD5tfr8vZHfiBK7jI5jl6/8wc2sU11gTGkVNbKfdtQKJHNUzHRnNb6mz/arIeZE/w1K40C06We0bu5o2MTh8VzvHq6WGM4FeYjb7VmzKycVtW01Aq+mWUczlvBq/Qs6FT2SGBf+lsu5aTdbXWZLBbNhSac31duL918fFwcTWwMx5HbqcX0FzOmgYFnIYBIzGFyNdHej0lmr14ASN5nYrHA+V7RkS1o67UuU/AWzQL6l8y9yvEUdrr9C8sm4uFH+qH0y6d4H9a6xtFfD0D73hVToEClyKnAZy6gXzN39ep3Y8DjT8fHiCMdcAtMjzI+pXaxKxj8d6VrvVvrMgFTQEhiQjtu86mit7RAwQ/fsAvrnN8SGK9Epnr/aNhbo4k1TlIz8DKormfSRlI3yQT0ejBY3PDte4iiBxWhrKOCzX3f/rES+9ElH/xmCvBJFaZ+yhOnAgnoPsWpOrP7mCeQjkJvjXy6TgTqcMGzBBqr9JtL70Vd/G571lbQdSiOvHZaK3v6G6iwqEpc1zbS9W4ABBHeZHB0RLUXx7/+5dp+3btLtDKbpz3vmAd0UZCoT2TZN4sIwckLqARG3Zp/cPuHvrcusd+9Rq6LZmAs0zrVrwg6OQGe8ZsE8A7sCyVame7fFj6BEQ1k3yMpdy9HFvr17pS+kN0M/fOaikvrbSKK7s20hNIFUWlRUhQSRSykwyvvslAq4HX41Z4meS+9LEKhmhB4hjN7P6pnZ16hv+9+PEoHZYQV7YKOIYMvRAOXWN3vXbCpOVt0wv6WgyUqoShgMzERZesIHYnm/2gxj1y3uarbIrFNJBe8umTqARrJ+bqBkDDDcUkvTVTjnJVNtxwDfMHYq2iM7mob9EVW/6iVX8kAZJGNiA9O65e03Unz8kSUv8Fr3im7YngS3CCyiD9XztnY5Ko2XMpllllPND6q8WMt4YTPNZo3LFTLKahmtbAiNw+iJPcsc7DsWIOdFol8y9wfJBx1z6oTnBxKDzz3+vDXw5LKSdUAkQ3RgYPqJoXAH7ZwkZiTmaK6v2kNhLarSnJQCTxDlA/cUxkY2s/Y9Z2pWi0NQScBe/msWNAgohosdB6awTtX1bXBNhqQit98U6v8wIQTmDQAjST8LMbWshML0BHyaNp6bCkIKsta31F/4GsL4fJHqt/ortjBv8myIIgNRbhq4VRper2PWt610anVUppChzXbXlnbwWBlSEKgdlQR+sj08nnURx9N7bLd/Ufod/sK8KeykOqyeYGZGz5EmdigAi/K5xXotwpuWriQjdQDbX/2+iRwgaOpkLIsQexiqfS9jfwC8/ZXGxGadeMijvG1aE8xEWaWHOZsCxxrLaSu7QWmiIf6SqZGp+LiQT0k4axMKGLKlqUu40jRumKy8TgqVL2uYiRMNCKUTP/tC0MUknDOXnHiRGxZpzSRK8zDMoOJaGWxYDk0151Z2EED8jCaU9qpI+PKnRwPyyBmYhoWa1pr1Irktgh0DH39AnhRrAxvZBMwHEd5I8MmVsbTvNqHl7TG8a6rluVP5jJGUGIxxJkdSeOZTMcycxvXqUGPgox57498+xuCW7CcnDX33/3zTSQoFqSQyvEpfw4OMTQfNNj18qmGFd2USABGJInO9DmDW7gYJ2bYeUqevdxrS6tcuQVJR8Tm2K+rjTCHs2QwgN76lL6CpzijvkC/sjnoxfV4n9yBqGTGjrj5L66cCgQNHhEd3EU47a6qEar2r9AJkFCHkkBLvKMT2JKw09ETXaCAjiVE8EO+kxYkcirht2aPguALoDKtMvbQe5ssV+gFgIyEAySrOJJ62mC3ex51vDJ94t9bw3m9PEORk7tPUGSTBoPbnzuY/gOU1ngeBb6H/EfCtGiOyP+XtDmVt/zYoy1a8EOlauaMd364qSv7uc6/tRpfccwMniEv0xKTJMv4aZoh3smu/NGHkxSk3P3vPFB/yfzHqHFw7rtTjkLsFnOr252a+tXHhWjtyAITK1kmYzVlZZDlpyR3Bb0Db0UU4PyELfa+/Dv1RAfxoB5W3o/p/8Q9TXyN33Ar/lk1VhB1OvaeTb8gdx7YPvfuDR3AFADYyezi8d317DNTh/6JFtU2cMzOqf7osPmVBw7eDNSwSUD9uxIu7+u65/ubAL1TwXOS2X+/u+mfJFr71wjiXKKlrtjl4AOvAlxwzgL/NVmpdfDxY+vfiIMJZP+5tqBIqF34ij1GzLBbjIA7Ce0JtPMd1oOstu61/uPVX2ER0WGrC2poAcGoWQPkSqI6HjhEOaKt7PUsDTkxcRNUH0cG5VOAvbjCt/pmBAFt9/2rVqjWqU+Znl1Ak6EV1+leTH3txSaTv/I/Va/b2qB5Y+8xZrW360AmEkkEjPKapB5k4FNikTOx1EiBC4aJkUbCI/TqeFlttUoY6ivb5a09JOCwqpV00Ytj9VrE8FGRy4RCkYj9eBZNTUviWPtG7S1vKMPrqaXRKKjr/yhs6u5mtzaYQdVYRTPZV1SKOgnzWyxXGstGQm4bOaLZNOgjjvqcOapWHMvStM4R403qa6870oPDJaIS8rZ8Ei13y8UlD6DOOnB5MupJXNEjEDDRaNt2n9gZ0vl3paemTSV/OJ7OS1JJEBRjsJiOBf2+tyAQQiRZcs+GW8rMqYNMtGMA6KXiYCizcoYMeU5QXUbFQW+TEz2ihgsCQmPdWgeCjGBkbqrup3LO0WuGXn5zjebRzVancplYqrpQzJsmN6dimWwqqrQ2x7g0xGWXtXV02Ek80g+8ogacVIAzSeC46BYM503o/s/wQpVJp60Cm7q+CX1MtkfikZ8fpD/tIIyFD6uwfj2Rd/pQqbzv6jRCqT3iFwuZWHEMqj9z4X8gopf6FLZAHVwBnfBao2O26iwpJ9EJI2ihbF1kQpHsMA/aaGFRGkbxMN696DQqsQF0spHUW7GXKchRWBKjimRlPZIZ+7i6kOlcL421bwkY30jCwSze6tVqQjzOjDKmOxANesTEClA/k1l+WcM9uefKddmZX+PhR2Kb7889+A/JocQRkpjIJbXmOX0nEy1aTf4X87IxC5i6PWkYibhyHAvP2Sh471cJAmaosHhO2OeydckNpbTcrAyvOp3bKg0W+v1ZbSsjp6XtiFBp6TtWt7xMpVggGFtZ8PvDYZ8/OhXz+2OZb6KkIzIzpMOgUvW5x/ONas3gBaZPgiydoHjR49SPPILu8rvJ2RJKvVJe4xSUHN7p4YhDv8w7p1CE7dhYofRWsjxRcDdYIerITG3gcvCHR37FlBB5obFeFFuVzfcs4ojS/XsksQLuUuCYoJqWObFYtdJ0uUel+kcjGBmyKPIQTtoRwpeNdTvMZ5nK7FsSbMAxCEi8vJFSU9W6x4w/B4fH2HWu8pZO5D5NU8SuiHtlghLQIUmcfqeCikrXZNV0VQIvLw1byqB1pkgFdnqILa33rpJwfzVSeYskSwaALxIbH1mCozAcD0aWwia1eiE8hIAnqEBNZJSJEL/mzgWhIugg6npIGneDWSXlruxSwtFysVOq1bJY78WB7vJUn9bOK6wfwxq+JR4c/SCFX+DKXNXhWSUZ1dxWHQ58z/KQp6MPlq/kJCUairxcdfq2nlCLVhX+jmCOzKPK5qiuEBZm0NCMWQfwNUXpeDcL4RA8eMWjuTGHr0JAUHKzL/soqUM3szhf3lYvKDn3JVhOCaeKgr6SXAmFlgPpglAgcfTbxLKLa6gG7ZpwR5c4IJi1wukHQCXJUmU7hXA4Eh7fabnxWhrc44KEUqIkq66W6e772syCVYqmyazsU/EYJfTh+LIHTFBy7E/mlaAMm7GisEWM3rzBiRKzXB7VXmx9M/zlJTadmIIrdXSzYeer0ztKY3zACWhvMxSNJOf6tLlCBG8Ck3pHPXOyRRUKCzjK1sW2X+2I9aPq8UVb6rl5v5Ljk2xjAUCv8T5Mx2JA4nZykgQVPAqeVArHN6fR2ePEtZ5TlKCMWs5jcr1KpiGrdZhhI+zo+fW6HgjY7dhr0CvqmgB4pkWA/9pMQcWuATvJCF2S7bdhsAZlfb9SUhfNlQrRSCqGkgWeZ5gNiYVx1s9DUJ8BORVo4mzXiOo0ONk7D4ehEPAj8qukucog031SLp56i1752Xpd7oNmqoAuh1z58pQCie8+ha1e/TB9AvJRiIO+Vuyj8K014Gb6HAgjIJKLwNsPfX0Y9Zs9d1MFVS0B55ySeTvwBJyGU+V6UVGp+H9nbtV4IaFUDkeSfViBDnXBC7757dsKXbSGsE8ReEa6gSpce05iRSzWtpEFJiR85fQMbRRx3iKY+28OWxY4RYlkRnDEU7NF/Dy02uV08GDyqMla32P086vaw0GvzaAW0JoKu15h5PZoYo2zLb+QT0b8Pg4TZfLHUMFg7cn8eI7t6ALoAj+EY4Y2jABEijtjl8Om/0tuaF2GYdwpjBNdgVeHFxsYHOAyyllVXE/XjfhGjVFtUJJseyvy0eUOu1krE3FZLJyc2VX7+hKXWaHdFMEEnUo1dsfe2MWu3ia2+dxM7pVntQ5LYA3IolzLeHGCimN16fcnt+SB2EKdSrwauJO+2EmKK7Tj/Fpll0kRCFlTQjPMXMWPfRwQ/ENT/ozwPBBLKyxpkuLEUd1Xe6HEBqWdRdoclslBRvcvkyEz19eVymxUUgfY8w2jsjkIfIUhDuEsb+I5BK0+E8pgQLXKeO0UNZ6D+MYh8tKck2V7bDhdWVmjc+vtlAcjiUxBrfR7mhl7y2giPOe+XYGKkkk7tJi4x9hK01AyXTxt5Y5Bv4X+WEsZBo+eshnDd4/pHtwFjzJfsogmiWQinulp0SoUWhkd/ZAz4n+TckwZJW3Bxg4KkF6bpNb4lFFTgVe0gJMqjnPDkOEivZA+hLMGkyKECXEi3JlMs4nAn+7mQbUhokAVdif2hAJ4hBf8u0tEoDESlljRGkVSWsRW4lW+3BqeTUsbQoFAMOCaTAdmrLwqL4ZdE8Zot9+sMG7oq6iaDMvKou9aN0tGQmHfAm2laYuTnQ7/Jx0gtATSZa721ordNjmdZcsWjVLHZi/wkxyGJhiGIGzjP4todm9Ic+xYe+r19g2eyTq+8LkYY9NoBud18UcapYQQ85pfTsyFzeWLtD+TmcH0HE2CGTAcxfhnUrqjsbbk4MJa3swZ4Oll0qL2E3EKNamTKTP9fxYqAZ9ZLJcCYYTaEDBvKmKh5qxqE2laV+AxF0i2DFGciTOJoje9jnSrCcZTiqMyS8TD4XcGYixLy+ea4duoxHYy4H7Q/ClaMAihf6nDvS4Mp3qA10QDRiVTaSum4rEAZ2NS3qiqZiu6sgitK2Y7m0IyOFGsJEzwJb6yMmc3SifP2T8pKuo1xyeCPjcRb5RWe8Ox2FyFf1vZ3tEn1+SGNzoTIQEPSmTkvRa88Xfw8crbE2qYIBIi66k4nMQKvFRLmRTPq46dcqi8IlYTgZL9RjFCaDJmAlaJ0HessXhXozYKLEY6zN8J7lU9/1PRlZlLwBTH8QOw5fGAAXJJVBTwKpiJvdyvXK15HjF0qh60pT6stcTzn6aphK/QiWRSYshfR/x+oP9G9Kgd6PTzF7pbDazWDZijvKkoOZRRodVEwyfEB70hQU1RtICH/Tema4yH1LYeYJyKcyeYLjcYRkFBbRGcgW+CQikwba8+d+6n5xvT6TQ7PIFmkGQc9hUFNRURaYWnQYsEpXSMRgn6HqCAwSF/eIlldKUHxF04IT60OOfuYXj7z3tzN2DgKKhwUBOh/Ef+OoFMWEFOYMo81gO8CHIHc6KMMJD79OQj6r6dnVl9x9Dpo/omxWfkje/MvzhsFQRwSNhBOHokSz9CioOVhCNOyPp/cfd95vsJ9Ndb10jKdM++1za+Ev7fs+fBfWRpJNWPyDvQxqocbLnvQfYzoSW0pc98eGnbhZXPDR2nunylvV3gNTnUExgkLCUwMrBNOq+8Rw6UJiPu7Dr16+euAePXyQWJ+g6mo4J2RdB5AeSp9EmKVkw/VQm96g3okVvVz+mfnlAFLPKTQn+2irZg0vqhVp2b1Z2Jg9yEeDPlDOO/TOkmA6m5lJUq4qr6fCWaDDl88ThkBHKHDzkQT+CTGJ1iyMTTg1sXWLkjVRgKhP89sTaIPV/i8nczWO0AV/uzjmKRKDv24Laf/Humb9zH6gfAHkqwii2rAGG2kz6vafT6GDqWnKILM6sE/YnLz/WvOd+NNc6CTnLeHDcJdJyaLex0eAazkwKJ8yzTF3fYeguPUGoJmzY1Hys7w8NNz7pTuSduXhThheWJDUfikT+Olv5O7d250hPgIznvRkACBA5bmEWcN7eLvEcqv2oiCblsdsQqUCLWjNqgDmOqc3Jp4Np96XoaXSBgdWJ56TsWcjBpTi3ieGtLcUrA/IHc9z5xZ0fZlXdbmJwHnWCOk3REFsPhZ+FgEQMii+oDngLWmcg2hXeirsWUgjuA1WqGVfJVE8l0Js1hZlg4mPJPQlt7cHPYk3JKHic0g1alk+AjuJHsIUr+ePx4M8dmcHTbP9wjh3NWQtUSdSCrE2v0CjShD4ta4w3+Xeta/pA/EnJkPOpkmGoJGZd4sVDq1kOlQRGgTOreB3XTo4eezA2IBRZCkPBALOoUtryYneTIEju6+65mUrHhzGwip1maFokcJEi6wGWRsMNr7KgVNodCLWVqXIMj1REk4hK8cZrr1j1ePRYrVIeKQR0bwVNLznxvnVK3/aC1P3Br4MdLVgGmaejkpQ4QjACAe8GqKyAH+chPxrp7DofCRMcGMpCvsJl5o16v+eRLDeiOcQo6lzm7/b1w5UrtuJn+b6PpZZLHKC2bAq/6RZfZpZKD6veG1sIu55uk/GbhnRHAKDlmooMORIedoHzENCLLN03wKPyy+S27jI8lhaIdCykoYYnRrHF13YwhRzf30oH9+E0hNZZkAWIoxxQdYCZxwnDQDYherHswA5cJ4pEzg+a5SbeXHXnHOpvP5nLyNE+GnKM/OmGoaeyKB9op8iqo0Q05uPIZjVIGS3C0mcDQluXObL24dBS3xtU9a0CVcLXjoAp1qMe/IKvuIS+NUFmmUiXaKxa/5ue2xBdRAGPUKRiTZN6GDTc9N0eBlckgLRjggsURJUo+4HDc/UzXuXjP2jga24o19KyheBd6qEBqTOxW80owN/CKhh9QknLX48J1yecCd05s76NgSqYWfrpmaE3BkL4G1L1tHTIbPf8vaOHCQeSgWYEdMkkOfzZQFliGyqYTccVEOksxrFAmQSXJrjhIJXn+uz+Ziu19FFwnL8TkEpcChSLQ+Ox3aD3Mv4OMN9sIU2phzY7uz1GEPPJZ+9QFJ1iS18fdPv/4KKojtefCUeaWfz+wA68R/4+hTzs5xOM//OIaIgjG/5e7SaHIPPZWAlSgvx8OyawB2Skp85Z11YKbHiB9S6Q9szxkeXZluDp2zQXc9QeU42HjlzX/VlJ2JBU6JpzedwU9OdgN4mmA5/GJW931W221OYwi3Y7CCill0MxYQ2H4vaFNzLHUq1oEysZOLvvD0cokWTbctyZGtJHJGRtkCoYPv56iajEWGUGoZWe2aJS3ZxbzCLFYSJ0ni6bgU9/YfFFQLOAwLvfxmKS0ZxJKR5Ia7jO3UlDF2tx8KhrPCg3g0I+n37017sHAkb3IEpvIwrRsO9IqvlDas+Q0ohzelOuaGtYDKmcDM5cEYn+/i4lMmRHcoxfbQZfPR4QaIYbihcLqUPL22vT2mEJQj/cG4+nsdGH62PvCnHQgEyUYLShtlTS09wlE1uUQjYBCoYQcA9VGMusLsAHzW1cUxtINE6c8j6N4a4AlOdt8IY8M9zENhcEJuihIephzeIgpXZ1RL41vU+o1ouVOGpVMYeCTsZh5idUGHOO5XolC0SJi0zfL3SpMW0jq4WBPhA6U4m9YQF4hYQ5KtIaapve7Yo0TIgkRY7U2JS5CuNPiENH2nqRqew+SrzEGalF1ds5PuLEyU9BJS+xsAByT7dFAfHHWwALK3PvCIgmau4/FksxYyhYpIEc1pZNDztCRRKF0pSO6dGum0b0aWVzGtubNzSD0MYqXge0PHn7BUObpMCF4UbNdzLV0jVzHma/xhDpnhJxXoxrqtHyj9qM1nY5c3VLZ/ZonGi57GTGurSvzPjDchuaDC9G9ubArXNPyNYzf/kWZDoSw9M8QnIQgFSB84YlthOBxc5ZymOVukiEYZQ039Tw/SAA02U4T+5rNzHx3MrUgXAwhUATN/xcr86KNIDpxCluUg6xHqTBwN3x2YFUpNtbwpEQq+eiCcBhad79KMK31hb4ybng5zslJERCMe4/qD9UUvC7azlOZdtTwY3bqYnmcko66P24YqoqiafYyNYAIlg2KiIHtTYcIkyiy1XqrcKSe/PZVwvV+pZ/Mtfp+o9WP2gVnqVhAC4FZh8NTgsa/IADiJNyGdNJ27M3tIIEIjuUD7C9lV3vXevcjnYMdb24ZAwTOsdcg9cEmHQzBDbgiUjVH6K5tK02FUpJr6tbZoTW6iLOD5YmlffY0m73niaXIn5JCQxP85YVy1sJr9AuiPRTIHV5C7HwqA3J+o8a/EYPJpi6lq6ZQOTxgzAVBUlSlsfsPZbkhF8I1PBAM1zUVqRqwGxz7yalnwQ+OmYK9UzHaJwdcZKZCZirmKUVRUUA7z3Y/FTQj4H4rTvM8jZNPMs6Lvu9m00QQphDenULKp5s99/7CYnE+b0bGyUKDh3hyNAE6FBC5/GIr24a+9uSzaMgvALuHrlgzvBasUGE5TSR0GlNH0+nYPGiWyGLQbQpY5V1tb7GoTiCbaJJybkyFw946TVu7DrBrgID/lQFMxCUT/vjMFJJDBgGHeJo0qryYdvTbPGEzRFnTJJHnxWUfCfH5AMbRRlaFy3t+VG3o9WPDWM1377TnhgTXmLmZ9W7U8iB4tcEGoUGN1Qjg7mK286I/U5EWjqYu+IpVCDB9iSZQiSRy/4J+Vaem80e38qbIJBfhwV/7OFeB2C2OJqt3ptfwjEHFLmZxaB2oDvmjVT+OKCuhImLe+0FIghWpYcyhMDNWEnA5TTMyeAQw+7whCPk7RBins1PDIE+E6zM90mUt+nJQqsagKC5R6DmGHdSXcrmCIXcFu8XdWn8O8g0JaCIE3xO8NaQBcsdFbWXDspkul3FMKdbGZ8qe44Xpq27S++9eDHpB6lbc7lEHTtlkF6HbkjubPayn1KSPhdB5Ssb1EbQcphU7IrEkHUspJPgKQScMEJJiviGmtfkEJ1opRqAIWj0jYMRInzbKMIRMTAllxp/iFgOMLal5s9JBNoPw4jhllnqQWzdB+1ovndZZ/EoCYEvCIB06FNrRFU8LejP8+BKk2y3avQI+a/Ds/qVjKLaZ74zEUtTfyfnQoZmHEnLyfDJwpzwmZ697TERDS9rvYWIMB+r6clOt/DhvUiGdLbeXK0MGrWmS25ZIuHASNG6eK8gAkKOCHWLOhAGjmRWtgbLCRC34hbCBYqxGp0WQCDF98o26Tvfib4HngCmGYRo3N9sfUON/FM5TBBYlkRPI0xMTQ/uH35oOw8ZGAMxj9S3VDVQga0MGsbMD0+ASCp8ra1PvIg59b5JlMJCo4LC/MekF+QhCUdxIIL5MSmCcgtcvV7qVKG8Rbb5YQU8Fu9EueffRWJUSQdjkpah53PvjCKUp4EEqsxWEIIolhiBujoYUJ0FAy+oA5yNlu+E5qtukl0E/HpV3H0jMatlt1qkxeYszCYQkTMNa1hq5KsUi1u20/N1YA+7Fx86ZoP2ObIiiw8VgGOuZt2d6xzhUGscf8d3d/tNGMyfWTxZPvwJq0nPmcWZfl4JaClRVAMIEKPc6tqRRSFTrVkbMuLDE1IWsFfrI0n2Hq1DezyHQgnLIRASCYd6MMzCiTgMT6zVwXSM2cg9I/DgFSDYZMNvPp0GnJg5DeRwe/x7twwTeNn3wBfDfNDxPAPfJgZkRHYRnluoiKZilgOnI8TStg23HjI8dOIdIujxwfi6Xh2ftKWNz2tZsqfLQxUlKs8k6pMebWlBrfG6FsobTqEl1agW0eYtvbu3Wteqa2Ql0Sg+futlvhR1KSziETNQo4+LefVZ0Zp3SmsfoKM67d3MvC9iLUuxHCWpQmlOLawg0CuwvU9xCUtKJGEWCXnLoR8NBi8l1ofVmlfdb7icDBxX8+dZDGA14MYJrqcFFVng1E19xAfQEkWQRfpHn0HAvMwFaSlqZlwIBH0A6e94BEiNkxs/Ujv/84+4/cIun++ztMcKSEPV9+HQD+viuHf3pnSiLb6QgKAdu1Dy/+8ISLPetdq5ulFsDZiL2+c2wnpymY7CPm3DDlUMb+RfJPr23kqDdD9Q1id4nR2dj/9q9gp0vO0Te8BF+2A9+wcfvyR7PoX1zDQmn4uxV+eZra5F5feNyHaBYKOLxII4z6pV5XN5piGygMzvthV82MT+uJGbq60ksVWJKI1EP7Wux4ajDP4S7HXp79Nsz48Qr0VioaIkK3pIjvtnUvUO4Mr0pjqQiQy/Eih5aSWBENnCscsYK6zjlnqDwmoFOtQtRRJGQ9f5fu/el1ctlUsxp1s+Nr0Z71QSjqP4nYJHKkkE4PQYWfpXdxy1VAe2wmBqsfPjlZe+gO1LLzIhipHCCM38eC1RgneZJgPN7roGcbAeTZyR7K4eiwNfVhU7SuBh/DtpKS8vksSCPOUz9qYEhs+4MRtMSX2g55PO4p9hVXNxZRS+nI/6UzGAKQQ7zT+jgHdAlHXWpRrWLXJf0dEd7AEVJ3Rt0WrBFG1JKN9bIE1d7iqjKFDociqYqhU4hIW7DqGfF1U9MOY0UXBnuEQG1uAC7XAsPQvte74SzqMYeWVZvAarQLxVb9DQmuNlQp1JqQSqlMQWt0GM6PEiKFdYThpT+bHAiqhxzJNurSo4dcsVcOmtwI9q/FOmd4V7kGmpjUnNioJ5ryFTO87KBoeGTjME+PO9X5UpR1FH42fZ2CU/iQXUl7oU7lppPPtcxo31FtGSi5PpJD4lqqdYkMJ9jQ5myYiEV9nEWWnSG4tioUFVfjPORGzG3KsGsQWfXuY7xQhsgpAKXLrLAC6D4l/dPvttUb+3ELhp5g65PqmyDDbJqp6yaSQIhpwDZk6OMRTe97I+vnfhnMx4aPHU8zIHBPdd5U4rGaDFKoVG8a6LaSC/sVK1EYbzJjZnCQkfYmif8fcsjVCAb5ec7zSKSOMdz+7SQkVWaqtamEih8y+awjBBPlkctSllMTda+ZB7aHOXLG/wqNgHMBb58SlPQewm7XDSUmNBQ8G/JiuiHDyuMLlB+JsfZnP7qCoFWw2JFHyQtGNX5sSwE0+oy9bsaqtfNnnQPW+Dm1UXnYRm8+959jddVPMbTP9WcO+BsnLNaJRyRlusn24ZMWQsbyVAIKYIsGZ0Up1NLoiYyjoCP/SW3gZb5gM45F4c+1WtdLRjGW6koZrmK/fujXa9cZAsKVr4d41cbvQJGMedScMo6u8BMGQxXk92q/37O8iX75x+2yaFUASHKzUlMIuCtcTCJ2UAwSZ3mG8L43k4DGi18pHWT8p4fimWNLEMH0l3wMUH9d9CilvmKIdg+f2jKHPQQ2t5cDlm06wTHeAkoWa/yzGxgQhi+SbguX5C6nuRGkVXbhAKAYU7cg7FRCUbH/l71bTQq3HRv79SmNrz9oSFknt0c9PvrBHHzEBcA9W9kynwkfXNIW5Q5MLLh0bEI0yrVFgbbJ9foRbd72SX9pFVN6s56fuWQvF0O48SQeD8yakvdaxYP1vNYpgHOiJU4S4+hOrG69Jv6dRGY+KqNsCtbYnKyjRyGZNREeWuxg7oydlsz4BkfYJOIXC45UIASAaGDOYZLd0e2+/v3q/blPY95A1GcKwk8L+ubJBzwzKk6P6ExwiDL7pnQLz+Y3jIpGyl3ATcpx3BPVX3sjNOMDe8ttr4ROhiz/QG/N1QenHDWzMaFfX6/z/trxwaS1+EX7+AgWGRjabANuikHcE+1bOKht2N4rOCDSnXlGqDqg3bs+JIBgRGwtg+tU4ar+7vlnmjlnXzkfJ8qG/o8i3lhYECKyXILWe2OovI495B5cPCw8TDj1xewWwkaKHlK1hUrTGc+wt4FvzILhp+ovr8DoX40DBUh7+6d6ZfB8schmQ7Auhw8ySPSEzqMEfQJh5V2K7efygBIFGCRTK8art7OTPbK5wXIQFtav+DnKafJejNAjSNFfWrb6LVxTKPT4O0HlHEiCwtNh6fY45WA9VS2ttpTMGmVGjqmVJ2QpG7gBlbVLtdqiNSRvFSzUeyU6C0N0UQdS1EkznqRFY7AsmI14YW1PLa69Nv/TlWl7Bq3EQXa5hBTHeTw5gpycttiw8cZCuqv9zfVXGmPCsagGrDF/oEoP6bPxN6lFacSgArlVoffYU1B10fP+mMENzE3XK8Fq7zLa24jrYmyVFKBHC1T0pjFW1gUk7JaslhpVExprMVXpBOQBjWl9ZJqtp6ay1FteLNTia4IkoE0he/4CCIw+/w2VUnYXpzwyO3uluxGK2wxx3JSxWjbNCGn/9WE9SqBZdn+7Gcl6+yGg+hxAnwI5VilL2dabQ/WBIKW4HJTJ8auCgSOfzOxITR87lRR548jjhmvORuans5VOixNgxgqUH9bei9j1SoPo2YpN1dIkBXQstbWcw7dXZUGclORGFqtOzPFMLp2iLwE6lCXcDICD1/iQh/lvHHTf4dD0lmJunUbgx6aMgFXmlWjVy2tGWMikSgMRyNP5n+Mer04p45YlymWlgQJgDzT41g0LCjKLsJiixMTaUo9alWqYFR5YV4LRltnj7pPV3d26fWezjbFydp6yai0SOo6O+CIZp3JaDhIU9Q5Ou19bTwQDIZTDJBbG8s7iqapmAqmK1x7POScKqSy0ZW4AXvl5P3FQlI3dI+o6rnclBnmFBKMioMmwLXR1VWjoVTeDjgFN/WRSMpI5w8coQcOfIrpeeyuswZnJk/BgyO/DtknJR/TTrc6MEUEX3zVPupn+LIvJwyuugFhhnlNsC1UwaOYFQkkws6e+0v9GluKMkLA7WYwWVOJ8/bi75VHRuewompBM3k5HO+GhSI9H9K6KrdZqQixpW/IYhm5Ocz5vCih77OJIs6syN12xKbAuxiyKUn9WbiYOkin2aQV6cHzbOfgZc/0i8cWC5CAcyl+YziwMsVyy/prSqHAX9H9VL3Ya2UHwYgUjoE1UdLu2L56k/nsdm09PINePJzqteao7Lbac76u8XUoPkIkEWCuJ6iEdfvpKEAdBUlBIiRW3JgcFBgHRRy4hpurLuFtDFhCQfcqiuedRJ23fMpUyJB9e7GcdRzbK7vkoI5yQkMobG4lN7qlvdw5cI25dsYkos+Ddc9+QW/TMJzE43HmlEsXlRYf0BOcXo1SH/zVbpacM7PeTixIrgTNyYssCom6VpO0xYdH+/1rKZ/nFLZoHAsU99DlXn5Q2y8MPJyJUjsAOcrYmIJM0g66PY4dvK6EttP2dqwo5eOpZzbNldZdrbcGezpa8ncHuYGGVYe3Ch0nd4poINf4453sguRFFp3OXtR6L3AMR0tzOQ6gKlgapSv2Vgv1P6vahJhnWCmfNxqP95VH1Oc7BGVDQ8r6uuJSpwRuE/di/hn6p7FiTU569jzFhqbRa+zKQAjzoJviybripR8L2itxj8+R2qj9EZj1f3JCIZsQxqE1IEPJXvWLLC1ZE7qkaUCK40oYxTcmJ8MxRbnnNmLW048NvMHsh5NgSLLek2k3nyAmkT91UakJF+Re8Ac2vHh6RPeAUSBKw0Qzjc8Lf2J71eyxuyl8COib6Ws3O2oogJKU3Bm5GxpCwDcwt1mNXKb0dgp8eIAbq5423U73GOXk6u039YSDgmscU6D53ZM08+3mL3fU69osyBYEzrlcohjB7YquyDhQa+VNm9/rRPFsyTLv2eo5CPUb9JqDyu1RPuBujn5trwymIwJthVhARLwyazfMdC+ZTAhkBtXmUAfAy42tUJOW2ZRAJv+jEdWCAGm+MeTzpQT7zxsd1vSjjKe+/ceuDZtSF8wla/e1oW2TtTq8LWfTmxFnxpKBSxYidN9sCj+tTZiwRdetcbdVBJ+QgxkJLunwf0TUheFYtpendDjYEv5s6buuadhRdRoTvguzfK0Kgz/RTp5pAx0m93tz45LhtVIr20mdjyKN9pzUYJcL9YKBI4aoLqk5fCr0YDDtu+nvY2agZaJ2SMgmt20JmGWsgzE8pUcla/fVrt9KBXJVyV959wP6rkQiHN5WtxO89rp4Hg3I/bM1deXr34s4XvLcrngP2wgcfV3L4iTMzWrPD6dN7z7pPXu6Lblw78wFY10uVsp71iTxLQ+ttgrCIOkK7NubmsBn/1Zw1wAdyNWsUbbCecdFGp1WCwZ3Pg40tmnjw3I5U52nPxllL0dnp6teWo9Cjz0Fk52GM3sccdh0GtYz1bWDRn7e6tlI8b2bTQ526Urw0mzBfEW2v24OAWVT2E9rgFmnUTKrXSMSi3LQ2KQ52/KpfKBYnTYd7mp2TqULGivTmtjAiWWiM0X99sMP7wbk6JsGf1oNpdwNiG247DQytD3rbUs6QRaSnm5FOOuZsGknn0No/z1/ncw/bn4c19Vzm9q1ttOxb7pPKQlqgr4wGNq9bNNOFmT3bho4mtHl9CwT/vHbj5nwTKmOw5BwmpJrGNtUuMzS/FaK5HnKwnCGWRWcNH/P+vhZwN8MgJHYjoW5cDK1c76RH3xdTFzVDTHB47A2WM6+3oSmJ7F5R9xozihlu4F+2IzNJjAuXUJFM2FFk01laiy7DB6N+quOR6eMpWb7oI7JZZdIYvAJsWkN9yET15REoxjXEGwhSwIhiQvGqinjTlU7GzDMinDFG51lEvBMS5q0qakhFS7kWXnSCJMv7gxDHaajSymoCcPZPEyQJAFtai4S+mFStEXTnf/BlL93llUg1vMOLh3DnYzj7kqR4vt8ueu+h/B9BdAPe3LId2gcWfCEBTNECXwx+Oxev/9TGghJ3OCYMT6Mbh1eYRCDDf33D7ibvRcXRzdZqkRoqVmoasD7+NUbvS0LcwyKuPiZQGTsMCck5EtBt5ETxH7CJFP1KCqDYKlRzStNjRoIDhaGLXWRYckyTUDL4PjLEskc9dmichg538gJoEk01GwJX+EjZowoKIomMglN0YZTz1NtKXd0pYrtVckxRZH5wEW5rNCrpKoSdbrkn45MuIPJdApBMeVUS6A5gndawPf2zfTOhMdiG8b25SljRu6LQ2aCB3PbRVrIOciCa2Kxg8yosL/DGjZdaDM4FaMhn5MoA+hILOEWnFJI8/gwuTBZTcrEkOYDQlKfJX8Ib4pTFexJGkGnLc3wtCl8VW6Tr6asEAQZPlJXLaMBAXVRZX1DXD3ss54BvmeuWnCwVcTEv4mYPqBZ17OfJHAlhqdUP5dE3XdQJOFxrSeW3hWEsXvULBUS5oyp55c8KfKKmWELDXFa6/LFd8xDoV7KQZvKObO6COiHjlsFOzBjRW6/J6e7m90hnRMbEroU4jK5YUw3aF0RCGJ5GLF81aUYCLrJYQ3q7W8kqkijOB5gp6nNaKgf4VxbEhMlJQkRTTl8n1ukUBIb0DG2lST3QULsSnIRaZRDIwIISQyHnBUp6KUvi3KyZBBX4AxCNsMpLizUW1Fst3zKIRg8UMiEwdcBKe5BRB47sKsiNdmrpjrkDNTOzJrdyEJyONZW8fllO5EkoglM35dyKEGVzDwG3ytvgF8Hyl/XlZdyOM7kxq402O6TWzmEcRhKPYvyMUHqWwjmmtsptrxJMFxFpNyZjsb5oETNsPlmHro5MppXEIpCrKCE3TdUDNCkpQk85nSNRiHJkbKZWT7e1ZTWW3JrsN+lLGJazeYcwrU8lbZuryKbWgRJsxiXJNMwmgkFvfJZxtBKxLbrfr+9suVujFFim1piOCtM2KExnmLkbCKRexlr4JDPHwiGFZqRdf2Y4fRtuYGhuNyJd0vhi60yqoG5tqwwHYZWFe+SuvHEYnGt2+IHw+in+gLhnva26ekxtJYrsAK19OYiRlV9U5UFqm7kJp+T+f7HAvcPceaihx4LLvr64tyHopBZTtpItwyA6AVEB8ix5/iabqJLS5yZ3iKXxcXN+rPFKwk4xPltE94/7xTnb2exh8dSr9td48jt336gdCDrHufZLMbaXpBimQUsh2zpu/Dq3xEmgO4+DHHeS8hlJsryMJigDLgQlL9tk9sghmkQ090AfTbpNUwKfvhYCiY11vxiYzWkNA7I6Be3VWiyhIfKdDxeHsRluXWgEAvvP4Z7yWw8RP6GH8m3z5068od60WeRN1KQHDjBRXk5CnkAZ+THsBuE4GPsoXyuTf7n3I7Bj+uFLuwtLw7yCF4rv0Zszhh9mLRmk97fexZq+qPFACX9sU3moZYvFfrsAfIVe5Q5qkviEzohbF7jVWjGYqcWGn99IaHXsBdMwv0Pnu3yEWvQWUhiVl+CmoF9NQiWh5fkh3iifA5X5QLedg4ZCHS8Ew1hSRbjsKzA/8nPz5019qH3DQ3thMIJCN+HGr4G+NrZ91Eetoeb53rXgWPbC/s1O2dOVL6hc2BFYjB+4xJooVrKfcWxPEx8m/+Y4hwirbnASjRAfBN9A+iZq6jq44PnoEZgYjU0Xzu5M/UdzBozcFR/d9oR0CYgnvwPGg0IF6d84JG3odcDPBESbt6PPgaUjkaDFw6dHL9HhFq1o8ZSP4AodODAJVu/eVtjzy9pBR8/BckBcVfKdE3+aOmL5py72eg/2Yu+HuSLxiE88H03FJ7br/FbHYQa2hjJEbx24yCsi6ldWtv6DLjHyFoGD0US+BFLtYPegeFIOPEhf4K+NmB93rgZSFrilFBSArirgvs6ysPbpIf57OxVTGGHT3NzR2skFcDq/O/x6vnPDH/w5TmyPXyha+pJU5dFRxxoPiv+NpKbtD6CLm1yj1yEvd3KbZAMiiODoPMXH/OQ65H/0Y3oBZzboBXepCHh+PDdB7+1kj4BzKsLhttLIcicIoDbu9y3QfWA4zh0kJ0QxAdm9kFrg6di+yX8CKcDCneE6Pyy2K/QdQE/ew7BA3MDU54f/wSYAekHQ/V0DZzz6gPPy6+nzgVLITj/HsraN6FFwG+moFxAE4FL59dQFVvoTIyCxkHQsYFXK9EgGHd3gZYezhlbP70XGXo5b0KxTyZHiJdaEP1OuwTt4TZrz1nbORoyEC9e17zSgvyWTiXe8+lYz0KbTXg0YDHbjl9wxyqAFMv69Spvb8wfc5O1nr+EMyMPvayMHaG1Ez76vgDJgOwt/d+RZg08p7iGzkB7YghYOopegd6PkgAvIeoeA8U2SD0KQ430DLxPtINpUD/o9yiDAWoHE8lJoHiYD3LAf83r3glRa9uVAx5DM6ATeQiTUYKnoAojS3289/dz1xwgp/cSHTvKPE30AYbQM61zIWqb6VqS1kYKoJ/k/BN1fo8MgZGfyuvQdKAxMO1EQEMHv5SC3L94PwSh8df0p1rdwCxSzBdbUoBrj9QDgpIEGOrJ/3kGbVuKV7ya4k0LzgQMu1JQ+58nIeTT98HEATfyEWA/HepLYVtAV2HA2wP0WdwKqVt+RpS2Pg+y7jvD3LBin9O3ZZ2T/5V/BGm8niiHX09ega74LyFmO0zq8COhwatEX8g8nd7QAI5n2H2iwbRHkxqNeO0wMNYPqrzKBO4EAcBL0HvVV3Z/emvTP5haK8Ey3vpnyxLspPvr2LoVbfOC0b7SJgAsmKv/igDjtkUEwNx/Rd5fPbdDrl5Ct9ZdkhO4PSv+PK7YWg6XfXLbkG2t19r+qRXt35bGYXm5LqvcYVw30m55gjJDUhzJirZ9NZDyubcJHEcikuCASmQiCBtiJOcPmTnNtAn5NpvyZiW73hYwh2xNx5E0hX+7g+2dbH2tAG91NTbZ2VfqlFkutpUcOm3Ngr3p1MGUTtrWN2+pte23JWvXhLa7bLu1gq5OMmtw7wS4tof47Z6oAlJU/ZjaR4tdo8nrYUTZwaXFWtN6FDRrCW1QUiNJKPe4t90WNpfC/LAnA+N648V89UxAflu1vO0T31YqkFSuVE/PZ7uA1VbIrV30JhzM6zizeofYrDFlhTx/1VBS6Ruke738ttCKdlJcX0G9Hj+DittncVVtycQRX2cV1etUNJ8/J+662Vl7y7T05mNh+Z3XmN3skmZX26mqDvAueYqjsJnhXXWJTXnVsv6p+RNGyNRofX2D9xwblTZHjH3Rds3f7YaCiccnuF2wu+3l03aKb4eVZEr1fNiKmW5hWUvN1Vb15ZQd9a5dQPHGBdN3BJ7lXY75IEIFoNcwgLq0oxyZZtuXSgutmXXKGZbnVpRP/VZu5Hpn5fdYxWWZ1ZRj6zG/eeh+9BRY3mb809aRtnzu03P0A2cPidft7RJCMRuOiEck3BCck2f5A8Vra1qXq63Xbn9WyzpqTuuCpset7hC1J+Dxak9k5M2Wf+BV5lNJgD9oLKfjo5xNe3RRwJ8hAPBga4InO5CQzH/GsqU0PmJZhxcXBXwYAgBAOnjvs8DHQqbGuRbsSH4okgsu7CX4GfsJngYA7CH4GP6BXwB4BfsMXk9v0IM+mB+YKxg99iz2DayDrvQGAi1K2PMYiaPpo/khqxfZIyEkpZHuuSgWn0szi1S0v2VCk032jME+l9qJAnuazSGdLuTJcjZ72ngb5hBkSV2iXcwkxiFsXJeO2YT5kJ5PmBHpTVonLH4N8x9ZEEC3WoFuMQaMgJVKgP1yzS1wCIBudkb5xmrPmM+UCAi3+MLwiiucbWEiaGcQjSxtoa+rfuFxzOYbAuBmOSBgJzEYFQYHZvwRoBLH0M7L4kWXsyPGbUkxQRABFjDDxAaRMRxgG2zGk66YeL1kSuwaM/pqmVOXtVloXGEWTXNTHkAxIWEbnAAsP0tXoBs/y+jtf8FReZhZtdHB0KkzxIzK0MPW9vzwjYydV2uxC7ptFOGl8IWu6OQq+yNi/yp0y6rcyndd9DInKnRD120edS30yG0xyWGRsmtLIbK35jzoVm9lpXy0rWpXytor8cd5f3BAGF6t9mdtvyw6+KfX/oiMDstFKOjkVFqUsq/ciKJiiKLo0LHbyrA6GBoCElIjgoooyLG0nk4FHG6os4iI5rkn9Awn4UqXpmiiS0gxl6Drugu26crswGK02It+7o1rrS9TRIxy/bquHKzStLJTa8XcCAsE68CRVX6cOeFht1OH10tDSlyraFtu2OhNVVJbvp6NjRC5jp79uv8E6an4NLTYotA1kdE5P9UxE0HRZr2V0Yn20YnwIEJoMD/YEgr0b/P3hHydAd4ua56OaOvgIHeXD2qtzXeV8p2lNEfl2ws0W05Y87MsuRPm1EOmtI8xE2HIZuiTp3Qxvjbga/yNpvacym9hnK+wSOSmHNRi4CCZMkCq4CTqLLHmRLqPUIYEogbEFyuNJ0pcoQCncmz+FIuGmDQEBpNPZ6HRwFHJDArhyNFTzUVfUUTCzJ80EepBeEy6axpCwDWIgG0oBTVgZqBRZNQhQ6hFcFFTTcY1WQ3EwUqzU27SUvB5u4PKdanT/rzZvuet3JYrV777ea01LMfePdW9p7jKoEuD6FPd5kafFs/4ifK0k9p37t/rYYLe+In5RmfTzGyLp3qbmsYzNRuoexRl6m11S5HdnU79Njc122SKE5imMzeT2duCY7kozwgflHvkbWH4MAYcwzNwC3ZbNOVtNI1mNBvQPUQZvU23CF5nfWsS/+LXfMqtZLv9fHDHDoHvcp7cFPVWAytIYbo5lIT4ufD+0ydY3+mq+DopXw0oQz4RxVumJozQk6fFdtj+xIubLaVnxfYFXBEhXttLF2tT+oliO+DAtyDhe+5IR0bxpSC0aOGaFgAA"}},"time_used":58,"timings":{"blocked":-1,"dns":2,"connect":28,"send":0,"wait":15,"receive":13,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VOtpInput.BbYFIsyl.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.479Z","timestamp":1785139669479,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VOtpInput.BbYFIsyl.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"37e-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 363\r\nKeep-Alive: timeout=5, max=92\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":894,"size_decoded":698,"mime_type":"text/css","magic":"ASCII text, with very long lines (893)","md5":"8e44b2781f30022e254dcdfb8a71047d","sha1":"c8ebf093ad028101a104a7e22fbae89a7f924279","sha256":"0a5fede751e53ede06d413c5ab09063c586ae4cf0ab9ad5d1363bab0913dcc32","sha512":"85f0a2fbdc9297f024124374eb5a72e1db13be79ffd79ca8e638080bbda6c0244e4d1e09e4c2cbcc85d881e16490d85f17dece2a83e915b44b5f9e28c95d681c","ssdeep":"","tlshash":"3a113a3526662a1c69b3dde0fbf18540d14c8141ca16d18982917aaed3cf1426ffefac","first_seen":"2025-09-30T16:14:45.681661Z","last_seen":"2026-07-27T11:49:48.920631Z","times_seen":16,"resource_available":false,"data":"LnYtb3RwLWlucHV0e2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOi41cmVtIDA7cG9zaXRpb246cmVsYXRpdmV9LnYtb3RwLWlucHV0IC52LWZpZWxke2hlaWdodDoxMDAlfS52LW90cC1pbnB1dF9fZGl2aWRlcnttYXJnaW46MCA4cHh9LnYtb3RwLWlucHV0X19jb250ZW50e2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOmluaGVyaXQ7ZGlzcGxheTpmbGV4O2dhcDouNXJlbTtoZWlnaHQ6NjRweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21heC13aWR0aDozMjBweDtwYWRkaW5nOi41cmVtO3Bvc2l0aW9uOnJlbGF0aXZlfS52LW90cC1pbnB1dC0tZGl2aWRlZCAudi1vdHAtaW5wdXRfX2NvbnRlbnR7bWF4LXdpZHRoOjM2MHB4fS52LW90cC1pbnB1dF9fZmllbGR7Y29sb3I6aW5oZXJpdDtmb250LXNpemU6MS4yNXJlbTtoZWlnaHQ6MTAwJTtvdXRsaW5lOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJX0udi1vdHAtaW5wdXRfX2ZpZWxkW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwudi1vdHAtaW5wdXRfX2ZpZWxkW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0udi1vdHAtaW5wdXRfX2ZpZWxkW3R5cGU9bnVtYmVyXXstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkfS52LW90cC1pbnB1dF9fbG9hZGVye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlfS52LW90cC1pbnB1dF9fbG9hZGVyIC52LXByb2dyZXNzLWxpbmVhcntwb3NpdGlvbjphYnNvbHV0ZX0K"}},"time_used":214,"timings":{"blocked":188,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BhFnA_AP.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.541Z","timestamp":1785139669541,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/BhFnA_AP.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"77e-654aa2b82da32-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 968\r\nKeep-Alive: timeout=5, max=94\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":1918,"size_decoded":1317,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (1917)","md5":"e7ab18316a709571ab0182e6a607ea8f","sha1":"7d13a2423c84f0410635c7cb82a2a45068cfd6ba","sha256":"8cfa0d075fb398ce8e55c83c59b324eab85f19483667265c4a82f01a500e86bd","sha512":"ba314edc7fd66dd391caa1ad6373068b635cddecf76bd6823305e5f7fc4c4090872de27e55e06efdee9ab9d321de262dba2c2ae3b3be04f7912cff4cdeaae04a","ssdeep":"","tlshash":"2141c65e785acabc6caf841ae1141800738d1a8de93e5ce6f5685d7b278e9242b4c74c","first_seen":"2025-10-23T03:46:52.779982Z","last_seen":"2026-07-27T11:49:48.897328Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2QgYXMgQyxhIGFzIGwsYyBhcyBrLGggYXMgdSx3IGFzIGgsYiBhcyB5LG4gYXMgcyx0IGFzIHgsdSBhcyBhLGcgYXMgZixiRiBhcyBwLE8gYXMgd31mcm9tIi4vU20ybUNmREUuanMiO2ltcG9ydHtWIGFzIGd9ZnJvbSIuL1pmTlppeUNtLmpzIjtjb25zdCBCPXtjbGFzczoibGc6dGV4dC1tZC1zZW1pYm9sZCB0ZXh0LXNtLXNlbWlib2xkIn0sRj17X19uYW1lOiJCdG5Db250YWluZXIiLHByb3BzOntoaWRlU2VjOkJvb2xlYW4saGlkZVByaW06Qm9vbGVhbixzZWNvbmRhcnlUZXh0Ont0eXBlOlN0cmluZyxkZWZhdWx0OiJzZWNvbmRhcnkifSxwcmltYXJ5VGV4dDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiTmV4dCJ9LHByaW1hcnlJZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sc2Vjb25kYXJ5Q29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGxvYWRpbmc6Qm9vbGVhbixkaXNhYmxlZDpCb29sZWFufSxlbWl0czpbInNlY29uZGFyeUNsaWNrIiwic3VibWl0Il0sc2V0dXAoZSx7ZW1pdDpvfSl7Y29uc3R7JGlzRGVza3RvcDp0fT1DKCksaT1vLGM9KCk9PmkoInNlY29uZGFyeUNsaWNrIiksbj0oKT0+aSgic3VibWl0Iik7cmV0dXJuKG0scik9PihsKCksaygiZGl2Iix7Y2xhc3M6cyhbIm10LTYgdy1mdWxsIixhKHQpPyJmbGV4IGp1c3RpZnktY2VudGVyIGdhcC02IG14LWF1dG8iOiJmbGV4IGZsZXgtY29sIl0pfSxbZS5oaWRlU2VjP2YoIiIsITApOihsKCksdShnLHtrZXk6MCx3aWR0aDphKHQpP2UuaGlkZVByaW0/IjI0MHB4ICI6IjMwJSI6IjEwMCUiLGNsYXNzOnMoW2EodCk/Im9yZGVyLTEiOiJvcmRlci0yIG10LTQiLCJ0ZXh0LW5vbmUgc2hhZG93LXhzIl0pLGNvbG9yOmUuc2Vjb25kYXJ5Q29sb3J8fCJncmF5LTMwMCIsdmFyaWFudDoib3V0bGluZWQiLHJvdW5kZWQ6ImxnIix0aWxlOiIiLGZsYXQ6IiIsaGVpZ2h0OmEodCk/NDg6NDAsb25DbGljazpjfSx7ZGVmYXVsdDpoKCgpPT5beSgic3BhbiIse2NsYXNzOnMoWyJsZzp0ZXh0LW1kLXNlbWlib2xkIHRleHQtc20tc2VtaWJvbGQiLGUuc2Vjb25kYXJ5Q29sb3I/InRleHQtIitlLnNlY29uZGFyeUNvbG9yOiJ0ZXh0LWdyYXktNzAwIl0pfSx4KGUuc2Vjb25kYXJ5VGV4dCksMyldKSxfOjF9LDgsWyJ3aWR0aCIsImNsYXNzIiwiY29sb3IiLCJoZWlnaHQiXSkpLGUuaGlkZVByaW0/ZigiIiwhMCk6KGwoKSx1KGcse2tleToxLGlkOmUucHJpbWFyeUlkLGNsYXNzOnMoWyJyb3VuZGVkLTQgdGV4dC1ub25lIHNoYWRvdy14cyIsYSh0KT8ib3JkZXItMiI6Im9yZGVyLTEiXSksd2lkdGg6YSh0KT9lLmhpZGVTZWM/IjI0MHB4IjoiNzAlIjoiMTAwJSIsbG9hZGluZzplLmxvYWRpbmcsZGlzYWJsZWQ6ZS5kaXNhYmxlZCxjb2xvcjoicHJpbWFyeS02MDAiLHJvdW5kZWQ6ImxnIix0aWxlOiIiLGZsYXQ6IiIsaGVpZ2h0OmEodCk/NDg6NDAsdHlwZToic3VibWl0IixvbkNsaWNrOm59LHtkZWZhdWx0OmgoKCk9Plt5KCJzcGFuIixCLHgoZS5wcmltYXJ5VGV4dCksMSldKSxfOjF9LDgsWyJpZCIsImNsYXNzIiwid2lkdGgiLCJsb2FkaW5nIiwiZGlzYWJsZWQiLCJoZWlnaHQiXSkpXSwyKSl9fTtmdW5jdGlvbiBQKCl7Y29uc3QgZT1wKCksbz13KCksdD1vLnB1YmxpYy5hcGlCYXNlVXJsLGk9by5wdWJsaWMuY2xpZW50SWQ7cmV0dXJue3VwbG9hZEZpbGU6YXN5bmMobixtKT0+e2NvbnN0IHI9bmV3IEZvcm1EYXRhO20uZm9yRWFjaCgoe25hbWU6ZCx2YWx1ZTpifSk9PntyLmFwcGVuZChkLGIpfSk7dHJ5e3JldHVybiBhd2FpdCAkZmV0Y2godCtuLHtoZWFkZXJzOnsiY2xpZW50LWlkIjppLC4uLmUuYWNjZXNzVG9rZW4/e0F1dGhvcml6YXRpb246YEJlYXJlciAke2UuYWNjZXNzVG9rZW59YH06e319LG1ldGhvZDoiUE9TVCIsYm9keTpyfSl9Y2F0Y2goZCl7dGhyb3cgZH19fX1leHBvcnR7RiBhcyBfLFAgYXMgdX07Cg=="}},"time_used":153,"timings":{"blocked":127,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.547Z","timestamp":1785139669547,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"302c-654aa2b8dc325-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 3887\r\nKeep-Alive: timeout=5, max=91\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":12332,"size_decoded":4238,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (12331)","md5":"88a769d2fe35899fd45a332a0a032cc0","sha1":"514c6c1d8475d17e412849a4c90159517d0fa10a","sha256":"ccf00d1923b0131a10e0c6d26f95e5dee6ebf8621a27e83c5a2f68a2e0093142","sha512":"756cc5cd029fc4adc9100d0da2f2b0efb3df0f2bf894fba2824019832fea594edd40a238a5ffacc205572cc0155f5632d70f54e37edc0772460f44c69cb76ab8","ssdeep":"192:3dArCS2Z+j/yQ9TCQxUhW2DPY808LE676SbHDc/7uN0VZG05w:NHSG+j/y2xa3bn7Q+0a0O","tlshash":"7442b79c7e95ba30079b91b1a17ff30f6276605a640bc0a0b05ddcd1a878d8d192bf75","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-08-04T08:02:40.858328Z","times_seen":123553,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQoKXtyZXR1cm4iY2YtbWFya2VyLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygpLnNsaWNlKDIpfWZ1bmN0aW9uIGUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07KG49Y29uc29sZS53YXJufHxjb25zb2xlLmxvZykuY2FsbC5hcHBseShuLFtjb25zb2xlLCJbUk9DS0VUIExPQURFUl0gIl0uY29uY2F0KHQpKTt2YXIgbn1mdW5jdGlvbiBuKHQsZSl7dmFyIG49ZS5wYXJlbnROb2RlO24mJmgodCxuLGUpfWZ1bmN0aW9uIHIodCxlKXtoKHQsZSxlLmNoaWxkTm9kZXNbMF0pfWZ1bmN0aW9uIG8odCl7dmFyIGU9dC5wYXJlbnROb2RlO2UmJmUucmVtb3ZlQ2hpbGQodCl9ZnVuY3Rpb24gaSh0KXt2YXIgZT10Lm5hbWVzcGFjZVVSST09PUE/InhsaW5rOmhyZWYiOiJzcmMiO3JldHVybiB0LmdldEF0dHJpYnV0ZShlKX1mdW5jdGlvbiBhKHQsZSl7dmFyIG49dC50eXBlLnN1YnN0cihlLmxlbmd0aCk7cmV0dXJuIShuJiYhRVtuLnRyaW0oKV0pJiYoKCFrfHwhdC5oYXNBdHRyaWJ1dGUoIm5vbW9kdWxlIikpJiYhKCFrJiYibW9kdWxlIj09PW4pKX1mdW5jdGlvbiBjKHQpe3JldHVybiBhKHQsIiIpfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gZnVuY3Rpb24obil7aWYoZSgpLHQpcmV0dXJuIHQuY2FsbCh0aGlzLG4pfX1mdW5jdGlvbiB1KHQsZSl7dC5vbmxvYWQ9cyh0Lm9ubG9hZCxlKSx0Lm9uZXJyb3I9cyh0Lm9uZXJyb3IsZSl9ZnVuY3Rpb24gcCh0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5uYW1lc3BhY2VVUkksInNjcmlwdCIpO2UuYXN5bmM9dC5oYXNBdHRyaWJ1dGUoImFzeW5jIiksZS50ZXh0Q29udGVudD10LnRleHRDb250ZW50O2Zvcih2YXIgbj0wO248dC5hdHRyaWJ1dGVzLmxlbmd0aDtuKyspe3ZhciByPXQuYXR0cmlidXRlc1tuXTt0cnl7ci5uYW1lc3BhY2VVUkk/ZS5zZXRBdHRyaWJ1dGVOUyhyLm5hbWVzcGFjZVVSSSxyLm5hbWUsci52YWx1ZSk6ZS5zZXRBdHRyaWJ1dGUoci5uYW1lLHIudmFsdWUpfWNhdGNoKG8pe319cmV0dXJuIGV9ZnVuY3Rpb24gbCh0LGUpe3ZhciBuPW5ldyBJKGUpO3QuZGlzcGF0Y2hFdmVudChuKX1mdW5jdGlvbiBkKGUpe3ZhciBuPWUubmFtZXNwYWNlVVJJPT09QSxyPXQoKTtlLnNldEF0dHJpYnV0ZShyLCIiKTt2YXIgaT1uPyI8c3ZnPiIrZS5vdXRlckhUTUwrIjwvc3ZnPiI6ZS5vdXRlckhUTUw7TC5jYWxsKGRvY3VtZW50LGkpO3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIlsiK3IrIl0iKTtpZihhKXthLnJlbW92ZUF0dHJpYnV0ZShyKTt2YXIgYz1uJiZhLnBhcmVudE5vZGU7YyYmbyhjKX1yZXR1cm4gYX1mdW5jdGlvbiBmKHQpe2lmKHQmJiJoYW5kbGVFdmVudCJpbiB0KXt2YXIgZT10LmhhbmRsZUV2ZW50O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYmluZCh0KTplfXJldHVybiB0fWZ1bmN0aW9uIGgodCxlLG4pe3ZhciByPW4/ZnVuY3Rpb24odCl7cmV0dXJuIGUuaW5zZXJ0QmVmb3JlKHQsbil9OmZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGVuZENoaWxkKHQpfTtBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KS5mb3JFYWNoKHIpfWZ1bmN0aW9uIHYoKXtyZXR1cm4vY2hyb21lL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmL2dvb2dsZS9pLnRlc3QobmF2aWdhdG9yLnZlbmRvcil9ZnVuY3Rpb24geSh0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9SCh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX1mdW5jdGlvbiBtKHQpe3JldHVybiB0IGluc3RhbmNlb2YgV2luZG93P1sibG9hZCJdOnQgaW5zdGFuY2VvZiBEb2N1bWVudD9bIkRPTUNvbnRlbnRMb2FkZWQiLCJyZWFkeXN0YXRlY2hhbmdlIl06W119ZnVuY3Rpb24gYih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZShSKTtpZighZSlyZXR1cm4gbnVsbDt2YXIgbj1lLnNwbGl0KFQpO3JldHVybntub25jZTpuWzBdLGhhbmRsZXJQcmVmaXhMZW5ndGg6K25bMV0sYmFpbG91dDohdC5oYXNBdHRyaWJ1dGUoImRlZmVyIil9fWZ1bmN0aW9uIGcodCl7dmFyIGU9Qit0Lm5vbmNlO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiWyIrZSsiXSIpLGZ1bmN0aW9uKG4pe24ucmVtb3ZlQXR0cmlidXRlKGUpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobi5hdHRyaWJ1dGVzLGZ1bmN0aW9uKGUpey9eb24vLnRlc3QoZS5uYW1lKSYmImZ1bmN0aW9uIiE9dHlwZW9mIG5bZS5uYW1lXSYmbi5zZXRBdHRyaWJ1dGUoZS5uYW1lLGUudmFsdWUuc3Vic3RyaW5nKHQuaGFuZGxlclByZWZpeExlbmd0aCkpfSl9KX1mdW5jdGlvbiBTKCl7dmFyIHQ9d2luZG93OyJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmKHQuX19jZlFSPXtkb25lOm5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3JldHVybiBVPXR9KX0pfWZ1bmN0aW9uIHcodCl7dmFyIGU9bmV3IE4odCksbj1uZXcgQyhlKTtlLmhhcnZlc3RTY3JpcHRzSW5Eb2N1bWVudCgpLG5ldyBXKGUse25vbmNlOnQsYmxvY2tpbmc6ITAsZG9jV3JpdGVTaW11bGF0b3I6bixjYWxsYmFjazpmdW5jdGlvbigpe319KS5ydW4oKX1mdW5jdGlvbiB4KHQpe3ZhciBlPW5ldyBOKHQpLG49bmV3IEMoZSk7ZS5oYXJ2ZXN0U2NyaXB0c0luRG9jdW1lbnQoKTt2YXIgcj1uZXcgVyhlLHtub25jZTp0LGJsb2NraW5nOiExLGRvY1dyaXRlU2ltdWxhdG9yOm4sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3aW5kb3cuX19jZlJMVW5ibG9ja0hhbmRsZXJzPSEwLHIucmVtb3ZlUHJlbG9hZEhpbnRzKCksUCh0KX19KTtyLmluc2VydFByZWxvYWRIaW50cygpLE0ucnVuT25Mb2FkKGZ1bmN0aW9uKCl7ci5ydW4oKX0pfWZ1bmN0aW9uIFAodCl7dmFyIGU9bmV3IE8odCk7TS5zaW11bGF0ZVN0YXRlQmVmb3JlRGVmZXJTY3JpcHRzQWN0aXZhdGlvbigpLGUuaGFydmVzdERlZmVyU2NyaXB0c0luRG9jdW1lbnQoKSxuZXcgVyhlLHtub25jZTp0LGJsb2NraW5nOiExLGNhbGxiYWNrOmZ1bmN0aW9uKCl7TS5zaW11bGF0ZVN0YXRlQWZ0ZXJEZWZlclNjcmlwdHNBY3RpdmF0aW9uKCksVSYmVSgpfX0pLnJ1bigpfXZhciBBPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsRT17ImFwcGxpY2F0aW9uL2VjbWFzY3JpcHQiOiEwLCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IjohMCwiYXBwbGljYXRpb24veC1lY21hc2NyaXB0IjohMCwiYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IjohMCwidGV4dC9lY21hc2NyaXB0IjohMCwidGV4dC9qYXZhc2NyaXB0IjohMCwidGV4dC9qYXZhc2NyaXB0MS4wIjohMCwidGV4dC9qYXZhc2NyaXB0MS4xIjohMCwidGV4dC9qYXZhc2NyaXB0MS4yIjohMCwidGV4dC9qYXZhc2NyaXB0MS4zIjohMCwidGV4dC9qYXZhc2NyaXB0MS40IjohMCwidGV4dC9qYXZhc2NyaXB0MS41IjohMCwidGV4dC9qc2NyaXB0IjohMCwidGV4dC9saXZlc2NyaXB0IjohMCwidGV4dC94LWVjbWFzY3JpcHQiOiEwLCJ0ZXh0L3gtamF2YXNjcmlwdCI6ITAsbW9kdWxlOiEwfSxrPXZvaWQgMCE9PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLm5vTW9kdWxlLEk9ZnVuY3Rpb24oKXt2YXIgdD13aW5kb3c7cmV0dXJuIHQuX19yb2NrZXRMb2FkZXJFdmVudEN0b3J8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX3JvY2tldExvYWRlckV2ZW50Q3RvciIse3ZhbHVlOkV2ZW50fSksdC5fX3JvY2tldExvYWRlckV2ZW50Q3Rvcn0oKSxMPWRvY3VtZW50LndyaXRlLF89ZG9jdW1lbnQud3JpdGVsbixIPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxEPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLm5vbmNlPXQsdGhpcy5pdGVtcz1bXX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJoYXNJdGVtcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZW1zLmxlbmd0aD4wfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLnBvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZW1zLnBvcCgpfSx0LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHQpe3RoaXMuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj1lLnNjcmlwdDtyZXR1cm4gdChuKX0pfSx0LnByb3RvdHlwZS5oYXJ2ZXN0U2NyaXB0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMscj1lLmZpbHRlcixvPWUubXV0YXRlO0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikpLmZpbHRlcihyKS5yZXZlcnNlKCkuZm9yRWFjaChmdW5jdGlvbih0KXtvKHQpLG4ucHVzaFNjcmlwdE9uU3RhY2sodCl9KX0sdC5wcm90b3R5cGUucHVzaFNjcmlwdE9uU3RhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnROb2RlLG49dGhpcy5jcmVhdGVQbGFjZWhvbGRlcih0KSxyPSEhaSh0KTtlLnJlcGxhY2VDaGlsZChuLHQpLHRoaXMuaXRlbXMucHVzaCh7c2NyaXB0OnQscGxhY2Vob2xkZXI6bixleHRlcm5hbDpyLGFzeW5jOnImJnQuaGFzQXR0cmlidXRlKCJhc3luYyIpLGV4ZWN1dGFibGU6Yyh0KX0pfSx0LnByb3RvdHlwZS5oYXNOb25jZT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PSh0LmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiIikuaW5kZXhPZih0aGlzLm5vbmNlKX0sdC5wcm90b3R5cGUucmVtb3ZlTm9uY2U9ZnVuY3Rpb24odCl7dC50eXBlPXQudHlwZS5zdWJzdHIodGhpcy5ub25jZS5sZW5ndGgpfSx0LnByb3RvdHlwZS5tYWtlTm9uRXhlY3V0YWJsZT1mdW5jdGlvbih0KXt0LnR5cGU9dGhpcy5ub25jZSt0LnR5cGV9LHQucHJvdG90eXBlLmlzUGVuZGluZ0RlZmVyU2NyaXB0PWZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0F0dHJpYnV0ZSgiZGVmZXIiKXx8dC50eXBlPT09dGhpcy5ub25jZSsibW9kdWxlIiYmIXQuaGFzQXR0cmlidXRlKCJhc3luYyIpfSx0fSgpLE49ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHkoZSx0KSxlLnByb3RvdHlwZS5oYXJ2ZXN0U2NyaXB0c0luRG9jdW1lbnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaGFydmVzdFNjcmlwdHMoZG9jdW1lbnQse2ZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdC5oYXNOb25jZShlKX0sbXV0YXRlOmZ1bmN0aW9uKGUpe3QuaXNQZW5kaW5nRGVmZXJTY3JpcHQoZSl8fHQucmVtb3ZlTm9uY2UoZSl9fSl9LGUucHJvdG90eXBlLmhhcnZlc3RTY3JpcHRzQWZ0ZXJEb2NXcml0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuaGFydmVzdFNjcmlwdHModCx7ZmlsdGVyOmMsbXV0YXRlOmZ1bmN0aW9uKHQpe2UuaXNQZW5kaW5nRGVmZXJTY3JpcHQodCkmJmUubWFrZU5vbkV4ZWN1dGFibGUodCl9fSl9LGUucHJvdG90eXBlLmNyZWF0ZVBsYWNlaG9sZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KHQub3V0ZXJIVE1MKX0sZX0oRCksTz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4geShlLHQpLGUucHJvdG90eXBlLmhhcnZlc3REZWZlclNjcmlwdHNJbkRvY3VtZW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmhhcnZlc3RTY3JpcHRzKGRvY3VtZW50LHtmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuaGFzTm9uY2UoZSkmJnQuaXNQZW5kaW5nRGVmZXJTY3JpcHQoZSl9LG11dGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5yZW1vdmVOb25jZShlKX19KX0sZS5wcm90b3R5cGUuY3JlYXRlUGxhY2Vob2xkZXI9ZnVuY3Rpb24odCl7dmFyIGU9cCh0KTtyZXR1cm4gdGhpcy5tYWtlTm9uRXhlY3V0YWJsZShlKSxlfSxlfShEKSxDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLnNjcmlwdFN0YWNrPXR9cmV0dXJuIHQucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuaW5zZXJ0aW9uUG9pbnRNYXJrZXI9dCx0aGlzLmJ1ZmZlcj0iIixkb2N1bWVudC53cml0ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZS53cml0ZSh0LCExKX0sZG9jdW1lbnQud3JpdGVsbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZS53cml0ZSh0LCEwKX19LHQucHJvdG90eXBlLmZsdXNoV3JpdHRlbkNvbnRlbnRBbmREaXNhYmxlPWZ1bmN0aW9uKCl7ZG9jdW1lbnQud3JpdGU9TCxkb2N1bWVudC53cml0ZWxuPV8sdGhpcy5idWZmZXIubGVuZ3RoJiYoZG9jdW1lbnQuY29udGFpbnModGhpcy5pbnNlcnRpb25Qb2ludE1hcmtlcik/dGhpcy5pbnNlcnRpb25Qb2ludE1hcmtlci5wYXJlbnROb2RlPT09ZG9jdW1lbnQuaGVhZD90aGlzLmluc2VydENvbnRlbnRJbkhlYWQoKTp0aGlzLmluc2VydENvbnRlbnRJbkJvZHkoKTplKCJJbnNlcnRpb24gcG9pbnQgbWFya2VyIGZvciBkb2N1bWVudC53cml0ZSB3YXMgZGV0YWNoZWQgZnJvbSBkb2N1bWVudDoiLCJNYXJrdXAgd2lsbCBub3QgYmUgaW5zZXJ0ZWQiKSl9LHQucHJvdG90eXBlLmluc2VydENvbnRlbnRJbkhlYWQ9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRE9NUGFyc2VyLGU9IjwhRE9DVFlQRSBodG1sPjxoZWFkPiIrdGhpcy5idWZmZXIrIjwvaGVhZD4iLG89dC5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC9odG1sIik7aWYodGhpcy5zY3JpcHRTdGFjay5oYXJ2ZXN0U2NyaXB0c0FmdGVyRG9jV3JpdGUobyksbihvLmhlYWQuY2hpbGROb2Rlcyx0aGlzLmluc2VydGlvblBvaW50TWFya2VyKSxvLmJvZHkuY2hpbGROb2Rlcy5sZW5ndGgpe2Zvcih2YXIgaT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvLmJvZHkuY2hpbGROb2RlcyksYT10aGlzLmluc2VydGlvblBvaW50TWFya2VyLm5leHRTaWJsaW5nO2E7KWkucHVzaChhKSxhPWEubmV4dFNpYmxpbmc7ZG9jdW1lbnQuYm9keXx8TC5jYWxsKGRvY3VtZW50LCI8Ym9keT4iKSxyKGksZG9jdW1lbnQuYm9keSl9fSx0LnByb3RvdHlwZS5pbnNlcnRDb250ZW50SW5Cb2R5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pbnNlcnRpb25Qb2ludE1hcmtlci5wYXJlbnRFbGVtZW50LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0LnRhZ05hbWUpO2UuaW5uZXJIVE1MPXRoaXMuYnVmZmVyLHRoaXMuc2NyaXB0U3RhY2suaGFydmVzdFNjcmlwdHNBZnRlckRvY1dyaXRlKGUpLG4oZS5jaGlsZE5vZGVzLHRoaXMuaW5zZXJ0aW9uUG9pbnRNYXJrZXIpfSx0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUpe3ZhciBuPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQ7biYmaShuKSYmbi5oYXNBdHRyaWJ1dGUoImFzeW5jIik/KHI9ZT9fOkwpLmNhbGwuYXBwbHkocixbZG9jdW1lbnRdLmNvbmNhdCh0KSk6dGhpcy5idWZmZXIrPXQubWFwKFN0cmluZykuam9pbihlPyJcbiI6IiIpO3ZhciByfSx0fSgpLGo9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9dGhpczt0aGlzLnNpbXVsYXRlZFJlYWR5U3RhdGU9ImxvYWRpbmciLHRoaXMuYnlwYXNzRXZlbnRzSW5Qcm94aWVzPSExLHRoaXMubmF0aXZlV2luZG93QWRkRXZlbnRMaXN0ZW5lcj13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcjt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGRvY3VtZW50LCJyZWFkeVN0YXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuc2ltdWxhdGVkUmVhZHlTdGF0ZX19KX1jYXRjaChlKXt9dGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJQcm94eSgpLHRoaXMudXBkYXRlSW5saW5lSGFuZGxlcnMoKX1yZXR1cm4gdC5wcm90b3R5cGUucnVuT25Mb2FkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5uYXRpdmVXaW5kb3dBZGRFdmVudExpc3RlbmVyLmNhbGwod2luZG93LCJsb2FkIixmdW5jdGlvbihuKXtpZighZS5ieXBhc3NFdmVudHNJblByb3hpZXMpcmV0dXJuIHQobil9KX0sdC5wcm90b3R5cGUudXBkYXRlSW5saW5lSGFuZGxlcnM9ZnVuY3Rpb24oKXt0aGlzLnByb3h5SW5saW5lSGFuZGxlcihkb2N1bWVudCwib25yZWFkeXN0YXRlY2hhbmdlIiksdGhpcy5wcm94eUlubGluZUhhbmRsZXIod2luZG93LCJvbmxvYWQiKSxkb2N1bWVudC5ib2R5JiZ0aGlzLnByb3h5SW5saW5lSGFuZGxlcihkb2N1bWVudC5ib2R5LCJvbmxvYWQiKX0sdC5wcm90b3R5cGUuc2ltdWxhdGVTdGF0ZUJlZm9yZURlZmVyU2NyaXB0c0FjdGl2YXRpb249ZnVuY3Rpb24oKXt0aGlzLmJ5cGFzc0V2ZW50c0luUHJveGllcz0hMCx0aGlzLnNpbXVsYXRlZFJlYWR5U3RhdGU9ImludGVyYWN0aXZlIixsKGRvY3VtZW50LCJyZWFkeXN0YXRlY2hhbmdlIiksdGhpcy5ieXBhc3NFdmVudHNJblByb3hpZXM9ITF9LHQucHJvdG90eXBlLnNpbXVsYXRlU3RhdGVBZnRlckRlZmVyU2NyaXB0c0FjdGl2YXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuYnlwYXNzRXZlbnRzSW5Qcm94aWVzPSEwLGwoZG9jdW1lbnQsIkRPTUNvbnRlbnRMb2FkZWQiKSx0aGlzLnNpbXVsYXRlZFJlYWR5U3RhdGU9ImNvbXBsZXRlIixsKGRvY3VtZW50LCJyZWFkeXN0YXRlY2hhbmdlIiksbCh3aW5kb3csImxvYWQiKSx0aGlzLmJ5cGFzc0V2ZW50c0luUHJveGllcz0hMSx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LmJ5cGFzc0V2ZW50c0luUHJveGllcz0hMH0sMCl9LHQucHJvdG90eXBlLnNldHVwRXZlbnRMaXN0ZW5lclByb3h5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoInVuZGVmaW5lZCIhPXR5cGVvZiBFdmVudFRhcmdldD9bRXZlbnRUYXJnZXQucHJvdG90eXBlXTpbTm9kZS5wcm90b3R5cGUsV2luZG93LnByb3RvdHlwZV0pLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQucGF0Y2hFdmVudFRhcmdldE1ldGhvZHMoZSl9KX0sdC5wcm90b3R5cGUucGF0Y2hFdmVudFRhcmdldE1ldGhvZHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXQuYWRkRXZlbnRMaXN0ZW5lcixyPXQucmVtb3ZlRXZlbnRMaXN0ZW5lcjt0LmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxyKXtmb3IodmFyIG89W10saT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspb1tpLTJdPWFyZ3VtZW50c1tpXTt2YXIgYT1tKHRoaXMpLGM9ciYmci5fX3JvY2tldExvYWRlclByb3hpZWRIYW5kbGVyO2lmKCFjKXt2YXIgcz1mKHIpOyJmdW5jdGlvbiI9PXR5cGVvZiBzPyhjPWZ1bmN0aW9uKG4pe2lmKGUuYnlwYXNzRXZlbnRzSW5Qcm94aWVzfHxhLmluZGV4T2YodCk8MClyZXR1cm4gcy5jYWxsKHRoaXMsbil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX3JvY2tldExvYWRlclByb3hpZWRIYW5kbGVyIix7dmFsdWU6Y30pKTpjPXJ9bi5jYWxsLmFwcGx5KG4sW3RoaXMsdCxjXS5jb25jYXQobykpfSx0LnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10sbz0yO288YXJndW1lbnRzLmxlbmd0aDtvKyspbltvLTJdPWFyZ3VtZW50c1tvXTt2YXIgaT1lJiZlLl9fcm9ja2V0TG9hZGVyUHJveGllZEhhbmRsZXJ8fGU7ci5jYWxsLmFwcGx5KHIsW3RoaXMsdCxpXS5jb25jYXQobikpfX0sdC5wcm90b3R5cGUucHJveHlJbmxpbmVIYW5kbGVyPWZ1bmN0aW9uKHQsZSl7dHJ5e3ZhciBuPXRbZV07aWYobiYmIW4uX19yb2NrZXRMb2FkZXJJbmxpbmVIYW5kbGVyUHJveHkpe3ZhciByPXRoaXM7dFtlXT1mdW5jdGlvbih0KXtpZihyLmJ5cGFzc0V2ZW50c0luUHJveGllcylyZXR1cm4gbi5jYWxsKHRoaXMsdCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0W2VdLCJfX3JvY2tldExvYWRlcklubGluZUhhbmRsZXJQcm94eSIse3ZhbHVlOiEwfSl9fWNhdGNoKG8pe3JldHVybiB2b2lkIGNvbnNvbGUud2FybigiZW5jb3VudGVyZWQgYW4gZXJyb3Igd2hlbiBhY2Nlc3NpbmcgIitlKyIgaGFuZGxlcjoiLG8ubWVzc2FnZSl9fSx0fSgpLE09ZnVuY3Rpb24oKXt2YXIgdD13aW5kb3c7cmV0dXJuIHQuX19yb2NrZXRMb2FkZXJMb2FkUHJvZ3Jlc3NTaW11bGF0b3J8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX3JvY2tldExvYWRlckxvYWRQcm9ncmVzc1NpbXVsYXRvciIse3ZhbHVlOm5ldyBqfSksdC5fX3JvY2tldExvYWRlckxvYWRQcm9ncmVzc1NpbXVsYXRvcn0oKSxXPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMuc2NyaXB0U3RhY2s9dCx0aGlzLnNldHRpbmdzPWUsdGhpcy5wcmVsb2FkSGludHM9W119cmV0dXJuIHQucHJvdG90eXBlLmluc2VydFByZWxvYWRIaW50cz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zY3JpcHRTdGFjay5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGEoZSx0LnNldHRpbmdzLm5vbmNlKSl7dmFyIG49aShlKSxyPXYoKSYmZS5oYXNBdHRyaWJ1dGUoImludGVncml0eSIpO2lmKG4mJiFyKXt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7by5zZXRBdHRyaWJ1dGUoInJlbCIsInByZWxvYWQiKSxvLnNldEF0dHJpYnV0ZSgiYXMiLCJzY3JpcHQiKSxvLnNldEF0dHJpYnV0ZSgiaHJlZiIsbiksZS5jcm9zc09yaWdpbiYmby5zZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIixlLmNyb3NzT3JpZ2luKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pLHQucHJlbG9hZEhpbnRzLnB1c2gobyl9fX0pfSx0LnByb3RvdHlwZS5yZW1vdmVQcmVsb2FkSGludHM9ZnVuY3Rpb24oKXt0aGlzLnByZWxvYWRIaW50cy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBvKHQpfSl9LHQucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLGU9dGhpczt0aGlzLnNjcmlwdFN0YWNrLmhhc0l0ZW1zOyl7dmFyIG49ZnVuY3Rpb24oKXt2YXIgbj1lLnNldHRpbmdzLmRvY1dyaXRlU2ltdWxhdG9yLHI9ZS5zY3JpcHRTdGFjay5wb3AoKTtuJiYhci5hc3luYyYmbi5lbmFibGUoci5wbGFjZWhvbGRlcik7dmFyIG89ZS5hY3RpdmF0ZVNjcmlwdChyKTtyZXR1cm4gbz9yLmV4dGVybmFsJiZyLmV4ZWN1dGFibGUmJiFyLmFzeW5jPyh1KG8sZnVuY3Rpb24oKXt0LmZpbmFsaXplQWN0aXZhdGlvbihyKSx0LnJ1bigpfSkse3ZhbHVlOnZvaWQgMH0pOnZvaWQgZS5maW5hbGl6ZUFjdGl2YXRpb24ocik6KG4mJm4uZmx1c2hXcml0dGVuQ29udGVudEFuZERpc2FibGUoKSwiY29udGludWUiKX0oKTtpZigib2JqZWN0Ij09dHlwZW9mIG4pcmV0dXJuIG4udmFsdWV9dGhpcy5zY3JpcHRTdGFjay5oYXNJdGVtc3x8dGhpcy5zZXR0aW5ncy5jYWxsYmFjaygpfSx0LnByb3RvdHlwZS5maW5hbGl6ZUFjdGl2YXRpb249ZnVuY3Rpb24odCl7dGhpcy5zZXR0aW5ncy5kb2NXcml0ZVNpbXVsYXRvciYmIXQuYXN5bmMmJnRoaXMuc2V0dGluZ3MuZG9jV3JpdGVTaW11bGF0b3IuZmx1c2hXcml0dGVuQ29udGVudEFuZERpc2FibGUoKSxNLnVwZGF0ZUlubGluZUhhbmRsZXJzKCksbyh0LnBsYWNlaG9sZGVyKX0sdC5wcm90b3R5cGUuYWN0aXZhdGVTY3JpcHQ9ZnVuY3Rpb24odCl7dmFyIG49dC5zY3JpcHQscj10LnBsYWNlaG9sZGVyLG89dC5leHRlcm5hbCxpPXQuYXN5bmMsYT1yLnBhcmVudE5vZGU7aWYoIWRvY3VtZW50LmNvbnRhaW5zKHIpKXJldHVybiBlKCJQbGFjZWhvbGRlciBmb3Igc2NyaXB0IFxuIituLm91dGVySFRNTCsiXG4gd2FzIGRldGFjaGVkIGZyb20gZG9jdW1lbnQuIiwiU2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLiIpLG51bGw7dmFyIGM9dGhpcy5zZXR0aW5ncy5ibG9ja2luZyYmbyYmIWk/ZChuKTpwKG4pO3JldHVybiBjPyhhLmluc2VydEJlZm9yZShjLHIpLGMpOihlKCJGYWlsZWQgdG8gY3JlYXRlIGFjdGl2YXRhYmxlIGNvcHkgb2Ygc2NyaXB0IFxuIituLm91dGVySFRNTCsiXG4iLCJTY3JpcHQgd2lsbCBub3QgYmUgZXhlY3V0ZWQuIiksbnVsbCl9LHR9KCksUj0iZGF0YS1jZi1zZXR0aW5ncyIsVD0ifCIsQj0iZGF0YS1jZi1tb2RpZmllZC0iLFU9dm9pZCAwOyFmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmN1cnJlbnRTY3JpcHQ7aWYodCl7dmFyIG49Yih0KTtuPyhvKHQpLGcobiksTS51cGRhdGVJbmxpbmVIYW5kbGVycygpLG4uYmFpbG91dD93KG4ubm9uY2UpOihTKCkseChuLm5vbmNlKSkpOmUoIkFjdGl2YXRvciBzY3JpcHQgZG9lc24ndCBoYXZlIHNldHRpbmdzLiBObyBzY3JpcHRzIHdpbGwgYmUgZXhlY3V0ZWQuIil9ZWxzZSBlKCJDYW4ndCBvYnRhaW4gYWN0aXZhdG9yIHNjcmlwdC4gTm8gc2NyaXB0cyB3aWxsIGJlIGV4ZWN1dGVkLiIpfSgpfSgpOwo="}},"time_used":232,"timings":{"blocked":204,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DKFk25TC.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.991Z","timestamp":1785139670991,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DKFk25TC.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:51 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"d17-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1214\r\nKeep-Alive: timeout=5, max=78\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":3351,"size_decoded":1564,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"03da6b66f7ae6e3606ff22695ba0df9f","sha1":"5348679174864e1d96de7ef44ce24d5894f7a5a5","sha256":"f4777d67128e2708826b97acb50c4df5db2f823ff60090f205f8a92a592665a3","sha512":"cc09ea67cf3ec3b27fb0138c4fb4a773c256371fc6779fc9d1a4fd8a847d457ec7a775dfd26edab82f01a8c2795b394d2493c15e3de97be6a8ded27acc3477a7","ssdeep":"","tlshash":"b7612d1ae1f6053452a3f1390f6b94597a24434f8db6bdd43bac81081f0c06ca6fab8d","first_seen":"2025-10-23T03:46:52.8082Z","last_seen":"2026-07-27T11:49:48.96185Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICBkIGFzIHksCiAgYSBhcyBvLAogIGMgYXMgYSwKICBiIGFzIG4sCiAgdCBhcyB1LAogIGcgYXMgaCwKICBGIGFzIFYsCiAgZSBhcyBmLAogIG4gYXMgcCwKICB1IGFzIGssCiAgJCBhcyB2LAogIGEwIGFzIGIsCiAgYTEgYXMgQywKICBhNSBhcyBfLAogIGYgYXMgQiwKICBhMiBhcyAkLAp9IGZyb20gIi4vU20ybUNmREUuanMiOwppbXBvcnQgeyBtIGFzIHgsIFYgYXMgZyB9IGZyb20gIi4vRElHSmNpWUouanMiOwpjb25zdCBBID0geyBjbGFzczogImZsZXgganVzdGlmeS1zcGFjZS1iZXR3ZWVuIiB9LAogIFAgPSB7IGNsYXNzOiAidGV4dC10ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCIgfSwKICBTID0geyBjbGFzczogIm10LTQgbWwtMyIgfSwKICBEID0gWyJvbkNsaWNrIl0sCiAgVCA9IHsKICAgIF9fbmFtZTogIlF1aWNrQWNjZXNzIiwKICAgIHByb3BzOiB7CiAgICAgIGhhc0Nsb3NlOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6ICExIH0sCiAgICAgIHBhbmVsSWQ6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgfSwKICAgIGVtaXRzOiBbImdvVG8iLCAiY2xvc2UiXSwKICAgIHNldHVwKGUsIHsgZW1pdDogbCB9KSB7CiAgICAgIGNvbnN0IHsgJGlzRGVza3RvcDogciB9ID0geSgpLAogICAgICAgIHMgPSBsLAogICAgICAgIGkgPSAodCkgPT4gewogICAgICAgICAgcygiZ29UbyIsIHQpOwogICAgICAgIH0sCiAgICAgICAgYyA9ICgpID0+IHsKICAgICAgICAgIHMoImNsb3NlIik7CiAgICAgICAgfTsKICAgICAgcmV0dXJuICh0LCBGKSA9PiAoCiAgICAgICAgbygpLAogICAgICAgIGEoCiAgICAgICAgICAiZGl2IiwKICAgICAgICAgIHsKICAgICAgICAgICAgY2xhc3M6IHAoWwogICAgICAgICAgICAgICJiZy1ncmF5LTUwIGJvcmRlciBib3JkZXItb3BhY2l0eS0xMDAgYm9yZGVyLWdyYXktMzAwIHctZnVsbCByb3VuZGVkLVsxcmVtXSBwLTggaGlkZGVuIiwKICAgICAgICAgICAgICB7ICJzdGlja3kgdG9wLTI0IjogayhyKSB9LAogICAgICAgICAgICBdKSwKICAgICAgICAgIH0sCiAgICAgICAgICBbCiAgICAgICAgICAgIG4oImRpdiIsIEEsIFsKICAgICAgICAgICAgICBuKCJoNCIsIFAsIHUodC4kdCgicXVpY2tBY2Nlc3MiKSksIDEpLAogICAgICAgICAgICAgIGUuaGFzQ2xvc2UKICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgYSgKICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgeyBrZXk6IDAsIGNsYXNzOiAibWF0ZXJpYWwtc3ltYm9scy1yb3VuZGVkIiwgb25DbGljazogYyB9LAogICAgICAgICAgICAgICAgICAgICIgc3RhdF9taW51c18yICIKICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgIDogaCgiIiwgITApLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgbigiZGl2IiwgUywgWwogICAgICAgICAgICAgIChvKCEwKSwKICAgICAgICAgICAgICBhKAogICAgICAgICAgICAgICAgViwKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBmKAogICAgICAgICAgICAgICAgICB0LiR0bSgidGVybXNBbmRDb25kaXRpb25zIiksCiAgICAgICAgICAgICAgICAgIChtLCBkKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgbygpLAogICAgICAgICAgICAgICAgICAgIGEoCiAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBkLAogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogcChbCiAgICAgICAgICAgICAgICAgICAgICAgICAgImN1cnNvci1wb2ludGVyIHRleHQtZ3JheS01MDAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIG10LTQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHQuJHJ0KG0uaWQpID09PSBlLnBhbmVsSWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gInRleHQtZ3JheS05MDAgdGV4dC1zbS1tZWRpdW0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJ0ZXh0LWdyYXktNTAwIHRleHQtc20tcmVndWxhciIsCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAodykgPT4gaSh0LiR0KGB0ZXJtc0FuZENvbmRpdGlvbnNbJHtkfV0uaWRgKSksCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgW24oImRpdiIsIG51bGwsIHUodC4kcnQobS50aXRsZSkpLCAxKV0sCiAgICAgICAgICAgICAgICAgICAgICAxMCwKICAgICAgICAgICAgICAgICAgICAgIEQKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICBdLAogICAgICAgICAgMgogICAgICAgICkKICAgICAgKTsKICAgIH0sCiAgfSwKICBOID0gdigKICAgIHsgaW5zZXQ6IEJvb2xlYW4sIC4uLngoeyB0cmFuc2l0aW9uOiAiYm90dG9tLXNoZWV0LXRyYW5zaXRpb24iIH0pIH0sCiAgICAiVkJvdHRvbVNoZWV0IgogICksCiAgaiA9IGIoKSh7CiAgICBuYW1lOiAiVkJvdHRvbVNoZWV0IiwKICAgIHByb3BzOiBOKCksCiAgICBlbWl0czogeyAidXBkYXRlOm1vZGVsVmFsdWUiOiAoZSkgPT4gITAgfSwKICAgIHNldHVwKGUsIGwpIHsKICAgICAgbGV0IHsgc2xvdHM6IHIgfSA9IGw7CiAgICAgIGNvbnN0IHMgPSBDKGUsICJtb2RlbFZhbHVlIik7CiAgICAgIHJldHVybiAoCiAgICAgICAgXygoKSA9PiB7CiAgICAgICAgICBjb25zdCBpID0gZy5maWx0ZXJQcm9wcyhlKTsKICAgICAgICAgIHJldHVybiBCKAogICAgICAgICAgICBnLAogICAgICAgICAgICAkKGksIHsKICAgICAgICAgICAgICBjb250ZW50Q2xhc3M6IFsidi1ib3R0b20tc2hlZXRfX2NvbnRlbnQiLCBlLmNvbnRlbnRDbGFzc10sCiAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogcy52YWx1ZSwKICAgICAgICAgICAgICAib25VcGRhdGU6bW9kZWxWYWx1ZSI6IChjKSA9PiAocy52YWx1ZSA9IGMpLAogICAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgICAidi1ib3R0b20tc2hlZXQiLAogICAgICAgICAgICAgICAgeyAidi1ib3R0b20tc2hlZXQtLWluc2V0IjogZS5pbnNldCB9LAogICAgICAgICAgICAgICAgZS5jbGFzcywKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHN0eWxlOiBlLnN0eWxlLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcgogICAgICAgICAgKTsKICAgICAgICB9KSwKICAgICAgICB7fQogICAgICApOwogICAgfSwKICB9KTsKZXhwb3J0IHsgaiBhcyBWLCBUIGFzIF8gfTsK"}},"time_used":27,"timings":{"blocked":1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D59z_AEH.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.534Z","timestamp":1785139669534,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/D59z_AEH.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"4556-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 4268\r\nKeep-Alive: timeout=5, max=95\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":17750,"size_decoded":4619,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"1561fcb1fd2b2976a016cdeb25158c80","sha1":"0104773dcdcb73312ec4ba21049dee8e36afeddf","sha256":"7831fb0638bd75aa0ae603205cc0283cfd402d24a78add7d035e7bb0e79e5b58","sha512":"80c6af0a37bf0e20c073a0a3c7386942b61536b94fccc7e0057fd4e5e211a3ab9d6d3cd86b7ed939eb29a8c30de2ae1f964071a3477c82881071a05b26423902","ssdeep":"384:NTO3QxMgUITqojzdl7G5AMLHI0y/ZwBnUGK:NTjSpEzNPl","tlshash":"9e824f09d1f20131d293b1ba5a0bac5abb35464fdeeabc583b9c46102f4e03d96f079c","first_seen":"2025-10-23T03:46:52.672541Z","last_seen":"2026-07-27T11:49:48.966013Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsgXyBhcyBDIH0gZnJvbSAiLi9EbEFVcUsyVS5qcyI7CmltcG9ydCB7CiAgciBhcyBoLAogIG8gYXMgSSwKICBhIGFzIHAsCiAgYyBhcyBfLAogIGIgYXMgdCwKICBuIGFzIE4sCiAgdSBhcyBnLAogIHQgYXMgbiwKICBkIGFzIHYsCiAgRiBhcyBTLAogIGUgYXMgVCwKICBmIGFzIHMsCiAgdyBhcyBkLAogIF8gYXMgaiwKICBnIGFzIEQsCn0gZnJvbSAiLi9TbTJtQ2ZERS5qcyI7CmltcG9ydCB7IF8gYXMgRiB9IGZyb20gIi4vRFZ0NU1JWG4uanMiOwppbXBvcnQgeyBfIGFzIFYgfSBmcm9tICIuL2JOZXB1ZHAxLmpzIjsKaW1wb3J0IHsgViBhcyAkLCBhIGFzIE0gfSBmcm9tICIuL0NrOHpnOXk0LmpzIjsKaW1wb3J0IHsgXyBhcyBMIH0gZnJvbSAiLi9CTlN2S015cS5qcyI7CmltcG9ydCB7IGMgYXMgcSwgYSBhcyBFIH0gZnJvbSAiLi8zazRWbkZYdC5qcyI7CmltcG9ydCB7IFYgYXMgdyB9IGZyb20gIi4vQmhNdFJfSGIuanMiOwppbXBvcnQgeyBWIGFzIHogfSBmcm9tICIuL1pmTlppeUNtLmpzIjsKaW1wb3J0ICIuL0RfaXU2MjdKLmpzIjsKaW1wb3J0ICIuL0MxMGRiWDNrLmpzIjsKaW1wb3J0ICIuL3hVbzVzS0dpLmpzIjsKaW1wb3J0ICIuL0I4VHhUeWFrLmpzIjsKaW1wb3J0ICIuL0MyUWZicTkyLmpzIjsKaW1wb3J0ICIuL0NJOFZGc2dILmpzIjsKaW1wb3J0ICIuLzFXUUY5bmxaLmpzIjsKaW1wb3J0ICIuL0NNdVVUbFMyLmpzIjsKaW1wb3J0ICIuL0NhUmhMZHVGLmpzIjsKaW1wb3J0ICIuL0NoRXJKbjA3LmpzIjsKaW1wb3J0ICIuL0JfMkZrUDhTLmpzIjsKaW1wb3J0ICIuL0NBbGtXYnVfLmpzIjsKaW1wb3J0ICIuL0Q1aktheG9CLmpzIjsKaW1wb3J0ICIuL1dCRGhmb0o3LmpzIjsKaW1wb3J0ICIuL0NEeEI1bk95LmpzIjsKaW1wb3J0ICIuL0JJcDUtM0VLLmpzIjsKaW1wb3J0ICIuL0RBY3ZWR0plLmpzIjsKaW1wb3J0ICIuL2U3cjVES3g5LmpzIjsKaW1wb3J0ICIuL0Q4YXl1N3JQLmpzIjsKaW1wb3J0ICIuL3RxZ3FVRkFhLmpzIjsKaW1wb3J0ICIuL0JoRm5BX0FQLmpzIjsKaW1wb3J0ICIuLzNrM0ZqR0dVLmpzIjsKaW1wb3J0ICIuL0RXOV9SWEFxLmpzIjsKaW1wb3J0ICIuL0NwV21lUGRGLmpzIjsKLyogZW1wdHkgY3NzICAgICAgICAqLyBjb25zdCBVID0gewogICAgY2xhc3M6ICJpbnB1dC13cmFwcGVyIHAtMiBmbGV4IGl0ZW1zLWNlbnRlciIsCiAgfSwKICBHID0geyBjbGFzczogInBsYWNlaG9sZGVyLXdyYXBwZXIgdy1mdWxsIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIiB9LAogIGsgPSAxMDAsCiAgSCA9IDUwLAogIE8gPSAxMzAwLAogIFIgPSB7CiAgICBfX25hbWU6ICJUeXBld3JpdGVyIiwKICAgIHByb3BzOiB7IHBocmFzZUxpc3Q6IHsgdHlwZTogQXJyYXksIGRlZmF1bHQ6ICgpID0+IFtdIH0gfSwKICAgIHNldHVwKGMpIHsKICAgICAgY29uc3QgbSA9IGM7CiAgICAgIGxldCBsID0gW107CiAgICAgIGNvbnN0IGUgPSBoKCIiKSwKICAgICAgICBhID0gaCgwKSwKICAgICAgICBpID0gaCgwKSwKICAgICAgICByID0gaCghMSk7CiAgICAgIEkoKCkgPT4gewogICAgICAgIChsID0gbS5waHJhc2VMaXN0KSwgc2V0VGltZW91dChvLCBrKTsKICAgICAgfSk7CiAgICAgIGNvbnN0IG8gPSAoKSA9PiB7CiAgICAgICAgICBpLnZhbHVlIDwgbFthLnZhbHVlXS5sZW5ndGgKICAgICAgICAgICAgPyAoKGUudmFsdWUgKz0gbFthLnZhbHVlXS5jaGFyQXQoaS52YWx1ZSkpLAogICAgICAgICAgICAgIGkudmFsdWUrKywKICAgICAgICAgICAgICBzZXRUaW1lb3V0KG8sIGspKQogICAgICAgICAgICA6IGEudmFsdWUgPCBsLmxlbmd0aCAtIDEKICAgICAgICAgICAgPyBzZXRUaW1lb3V0KHUsIE8pCiAgICAgICAgICAgIDogKHIudmFsdWUgPSAhMCk7CiAgICAgICAgfSwKICAgICAgICB1ID0gKCkgPT4gewogICAgICAgICAgaS52YWx1ZSA+IDAKICAgICAgICAgICAgPyAoKGUudmFsdWUgPSBlLnZhbHVlLnNsaWNlKDAsIC0xKSksIGkudmFsdWUtLSwgc2V0VGltZW91dCh1LCBIKSkKICAgICAgICAgICAgOiAoYS52YWx1ZSsrLCBhLnZhbHVlIDwgbC5sZW5ndGggJiYgc2V0VGltZW91dChvLCBrKSk7CiAgICAgICAgfTsKICAgICAgcmV0dXJuICh4LCBiKSA9PiAoCiAgICAgICAgcCgpLAogICAgICAgIF8oImRpdiIsIFUsIFsKICAgICAgICAgIHQoInNwYW4iLCBHLCBbCiAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsYXNzOiBOKFsKICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyIG92ZXJmbG93LWhpZGRlbiB3aGl0ZXNwYWNlLW5vd3JhcCBsZzpkaXNwbGF5LWxnLWJvbGQgZGlzcGxheS14cy1ib2xkIHRleHQtd2hpdGUiLAogICAgICAgICAgICAgICAgICB7ICJibGlua2luZyBib3JkZXItci0yIGJvcmRlci13aGl0ZSI6ICFnKHIpIH0sCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIG4oZyhlKSksCiAgICAgICAgICAgICAgMwogICAgICAgICAgICApLAogICAgICAgICAgXSksCiAgICAgICAgXSkKICAgICAgKTsKICAgIH0sCiAgfSwKICBKID0gQyhSLCBbWyJfX3Njb3BlSWQiLCAiZGF0YS12LTZiNWUyNTk1Il1dKSwKICBLID0geyBjbGFzczogInRleHQtbGctY2VudGVyIHRleHQtbGVmdCBsZzptdC0xMiBtdC0xNiBwYi0xMiIgfSwKICBRID0gewogICAgY2xhc3M6ICJsZzpkaXNwbGF5LW1kLWJvbGQgZGlzcGxheS1zbS1zZW1pYm9sZCBtYi1sZy0yIG1iLTQgdGV4dC13aGl0ZSIsCiAgfSwKICBXID0geyBjbGFzczogImxnOnRleHQteGwtbWVkaXVtIHRleHQtbWQtcmVndWxhciB0ZXh0LXByaW1hcnktNTAiIH0sCiAgWCA9IHsgY2xhc3M6ICJoaWRkZW4ganVzdGlmeS1jZW50ZXIgbXQtbGctOCBtdC00IiB9LAogIFkgPSBbImhyZWYiXSwKICBaID0gewogICAgX19uYW1lOiAiVHJ1c3RNYXJrcyIsCiAgICBzZXR1cChjKSB7CiAgICAgIGNvbnN0IHsgJGlzRGVza3RvcDogbSB9ID0gdigpLAogICAgICAgIGwgPSBbCiAgICAgICAgICB7IGljb246ICJjcnlwdG8iLCBsaW5rOiAiaHR0cHM6Ly9jcnlwdG8ucnUvIiB9LAogICAgICAgICAgewogICAgICAgICAgICBpY29uOiAidHJ1c3RwaWxvdCIsCiAgICAgICAgICAgIGxpbms6ICJodHRwczovL3d3dy50cnVzdHBpbG90LmNvbS9yZXZpZXcvaGkuZXhjaGFuZ2UiLAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgbGluazogImh0dHBzOi8vd3d3LmJlc3RjaGFuZ2UuY29tL2pvbGl4by1leGNoYW5nZXIuaHRtbCIsCiAgICAgICAgICAgIGljb246ICJiZXN0Y2hhbmdlIiwKICAgICAgICAgIH0sCiAgICAgICAgXTsKICAgICAgcmV0dXJuIChlLCBhKSA9PiB7CiAgICAgICAgY29uc3QgaSA9IFY7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIHAoKSwKICAgICAgICAgIF8oImRpdiIsIEssIFsKICAgICAgICAgICAgdCgiaDEiLCBRLCBuKGUuJHQoInRydXN0TWFyay50aXRsZSIpKSwgMSksCiAgICAgICAgICAgIHQoImRpdiIsIFcsIG4oZS4kdCgidHJ1c3RNYXJrLnN1YiIpKSwgMSksCiAgICAgICAgICAgIHQoImRpdiIsIFgsIFsKICAgICAgICAgICAgICAocCgpLAogICAgICAgICAgICAgIF8oCiAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIFQobCwgKHIsIG8pID0+CiAgICAgICAgICAgICAgICAgIHQoImRpdiIsIHsga2V5OiBvIH0sIFsKICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgImEiLAogICAgICAgICAgICAgICAgICAgICAgeyBocmVmOiByLmxpbmssIHRhcmdldDogIl9ibGFuayIgfSwKICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBnKG0pID8gIjE1MHB4IiA6ICI5MnB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZyhtKSA/ICIzNHB4IiA6ICIyMHB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYHRydXN0TWFya3MvJHtyLmljb259LnBuZ2AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICJpY29uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibXgtbGctMTIgbXgtMyBjdXJzb3ItcG9pbnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ3aWR0aCIsICJoZWlnaHQiLCAic3JjIl0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgWQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIF0pCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICBdKQogICAgICAgICk7CiAgICAgIH07CiAgICB9LAogIH0sCiAgdHQgPSB7IGNsYXNzOiAiY29udGFpbmVyIG14LWF1dG8gbXQtMTIgaGlkZGVuIGxnOiFtdC1bODhweF0iIH0sCiAgZXQgPSB7IGNsYXNzOiAibWItNiBsZzpkaXNwbGF5LW1kLXNlbWlib2xkIGRpc3BsYXktc20tc2VtaWJvbGQiIH0sCiAgc3QgPSB7CiAgICBfX25hbWU6ICJUb3BTZXJ2aWNlcyIsCiAgICBzZXR1cChjKSB7CiAgICAgIGNvbnN0IG0gPSBbCiAgICAgICAgeyBrZXk6ICJQYXlQYWwiLCBsaW5rOiAiL3NvbHV0aW9ucy9leGNoYW5nZS1wYXlwYWwiIH0sCiAgICAgICAgeyBrZXk6ICJQYXltZW50R2F0ZSIsIGxpbms6ICIvc29sdXRpb25zL29ubGluZS1wYXltZW50IiB9LAogICAgICBdOwogICAgICByZXR1cm4gKGwsIGUpID0+IHsKICAgICAgICBjb25zdCBhID0gViwKICAgICAgICAgIGkgPSBqOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBwKCksCiAgICAgICAgICBfKCJkaXYiLCB0dCwgWwogICAgICAgICAgICB0KCJoMiIsIGV0LCBuKGwuJHQoInRvcFNlcnZpY2VzLnRpdGxlIikpLCAxKSwKICAgICAgICAgICAgcygKICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgIHsganVzdGlmeTogInN0YXJ0IiB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGQoKCkgPT4gWwogICAgICAgICAgICAgICAgICAocCgpLAogICAgICAgICAgICAgICAgICBfKAogICAgICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICBUKG0sIChyLCBvKSA9PgogICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgJCwKICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IG8sIGNvbHM6ICIxMiIsIGxnOiAiNCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGQoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0bzogbC5sb2NhbGVQYXRoKHIubGluaykgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBkKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6IGB0b3BTZXJ2aWNlcy8ke3Iua2V5fS5wbmdgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjEwMCUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICIxMDAlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAxMDI0CiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICA2NAogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICksCiAgICAgICAgICBdKQogICAgICAgICk7CiAgICAgIH07CiAgICB9LAogIH0sCiAgb3QgPSB7CiAgICBjbGFzczoKICAgICAgImZsZXggZmxleC1jb2x1bW4gbGc6bXQtMjQgbXQtMTYgYmctZ3JheS0xMDAgbGc6cm91bmRlZC0yeGwgcHktbGctMTYgcHgtbGctMTQgcHktMTAgcHgtNCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1vcGFjaXR5LTEwMCIsCiAgfSwKICBsdCA9IHsKICAgIGNsYXNzOiAibGc6ZmxleCBqdXN0aWZ5LWJldHdlZW4gYWxpZ24tZW5kIG1iLWxnLTYgb3JkZXItbGctMSBvcmRlci0yIiwKICB9LAogIG50ID0geyBjbGFzczogIiIgfSwKICBpdCA9IHsgY2xhc3M6ICJsZzpkaXNwbGF5LWxnLXNlbWlib2xkIGRpc3BsYXkteHMtYm9sZCB0ZXh0LWdyYXktOTAwIiB9LAogIHJ0ID0gewogICAgY2xhc3M6ICJsZzp0ZXh0LXhsLW1lZGl1bSB0ZXh0LW1kLXJlZ3VsYXIgdGV4dC1ncmF5LTcwMCBtYi1sZy0wIG1iLTQiLAogIH0sCiAgYXQgPSB7IGNsYXNzOiAidGV4dC1tZC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwIiB9LAogIGN0ID0gewogICAgX19uYW1lOiAiSG9tZVZpZGVvIiwKICAgIGVtaXRzOiBbInNjcm9sbFRvIl0sCiAgICBzZXR1cChjLCB7IGVtaXQ6IG0gfSkgewogICAgICBjb25zdCB7ICRpc0Rlc2t0b3A6IGwgfSA9IHYoKSwKICAgICAgICBlID0gbTsKICAgICAgcmV0dXJuIChhLCBpKSA9PiAoCiAgICAgICAgcCgpLAogICAgICAgIF8oImRpdiIsIG90LCBbCiAgICAgICAgICB0KCJkaXYiLCBsdCwgWwogICAgICAgICAgICB0KCJkaXYiLCBudCwgWwogICAgICAgICAgICAgIHQoImgyIiwgaXQsIG4oYS4kdCgiaG9tZVZpZGVvLnRpdGxlIikpLCAxKSwKICAgICAgICAgICAgICB0KCJkaXYiLCBydCwgbihhLiR0KCJob21lVmlkZW8uc3ViIikpLCAxKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICJiZy1ncmF5LTUwIHJvdW5kZWQtbGcgcHgtNSBweS0zIGJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLW9wYWNpdHktMTAwIHRleHQtY2VudGVyIGN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGlbMF0gfHwgKGlbMF0gPSAocikgPT4gZSgic2Nyb2xsVG8iKSksCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBbdCgic3BhbiIsIGF0LCBuKGEuJHQoImhvbWVWaWRlby5idG5UaXRsZSIpKSwgMSldCiAgICAgICAgICAgICksCiAgICAgICAgICBdKSwKICAgICAgICAgIHQoCiAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgY2xhc3M6IE4oWwogICAgICAgICAgICAgICAgInctZnVsbCBiZy1ncmF5LTMwMCByb3VuZGVkLTJ4bCBsZzpvcmRlci0yIG9yZGVyLTEiLAogICAgICAgICAgICAgICAgZyhsKSA/ICJoLVs0MDBweF0iIDogImgtNjAgb3JkZXItZmlyc3QgbWItNiIsCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgIDIKICAgICAgICAgICksCiAgICAgICAgXSkKICAgICAgKTsKICAgIH0sCiAgfSwKICBtdCA9IHsgY2xhc3M6ICJjb250YWluZXIgbXgtYXV0byBtdC0xMiBsZzohbXQtMjQiIH0sCiAgZHQgPSB7IGNsYXNzOiAibGc6ZGlzcGxheS1tZC1zZW1pYm9sZCBkaXNwbGF5LXNtLXNlbWlib2xkIG1iLTYiIH0sCiAgcHQgPSB7IGNsYXNzOiAiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBnYXAtNCIgfSwKICBfdCA9IHsgY2xhc3M6ICJsZzpkaXNwbGF5LXhzLXNlbWlib2xkIHRleHQteGwtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCIgfSwKICB1dCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIGxnOnRleHQtbGctcmVndWxhciB0ZXh0LW1kLXJlZ3VsYXIgbXQtMiIgfSwKICBndCA9IHsgY2xhc3M6ICJhYnNvbHV0ZSBib3R0b20tMCByaWdodC0wIHotMTAiIH0sCiAgaHQgPSB7CiAgICBfX25hbWU6ICJCZW5lZml0c1NlY3Rpb24iLAogICAgc2V0dXAoYykgewogICAgICBjb25zdCB7ICRpc0Rlc2t0b3A6IG0gfSA9IHYoKSwKICAgICAgICBsID0gWyJmcmVlIiwgImFub255bW91cyIsICJmYXN0IiwgInN1cHBvcnQiXTsKICAgICAgcmV0dXJuIChlLCBhKSA9PiB7CiAgICAgICAgY29uc3QgaSA9IFY7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIHAoKSwKICAgICAgICAgIF8oImRpdiIsIG10LCBbCiAgICAgICAgICAgIHQoImgyIiwgZHQsIG4oZS4kdCgiYmVuZWZpdHMudGl0bGUiKSksIDEpLAogICAgICAgICAgICB0KCJkaXYiLCBwdCwgWwogICAgICAgICAgICAgIChwKCksCiAgICAgICAgICAgICAgXygKICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgVChsLCAociwgbykgPT4KICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBrZXk6IG8sCiAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgInJlbGF0aXZlIGJnLWdyYXktMTAwIGxnOmgtWzI0cmVtXSBoLTUyIHJvdW5kZWQtMnhsIGxnOnAtNiBwLTYgcHItMTYgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItb3BhY2l0eS0xMDAiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgdCgiaDMiLCBfdCwgbihlLiR0KGBiZW5lZml0cy4ke3J9LnRpdGxlYCkpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgIHQoInAiLCB1dCwgbihlLiR0KGBiZW5lZml0cy4ke3J9LnN1YmApKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBndCwgWwogICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiBgYmVuZWZpdHMvJHtyfS5wbmdgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGcobSkgPyAzNTAgOiAxNTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICJhdXRvIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICBbInNyYyIsICJ3aWR0aCJdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICA2NAogICAgICAgICAgICAgICkpLAogICAgICAgICAgICBdKSwKICAgICAgICAgIF0pCiAgICAgICAgKTsKICAgICAgfTsKICAgIH0sCiAgfSwKICB4dCA9IHsKICAgIF9fbmFtZTogIkFuaW1hdGVkTnVtYmVyIiwKICAgIHByb3BzOiB7IHRhcmdldDogeyB0eXBlOiBOdW1iZXIsIHJlcXVpcmVkOiAhMCB9IH0sCiAgICBzZXR1cChjKSB7CiAgICAgIGNvbnN0IG0gPSBjLAogICAgICAgIGwgPSBoKDApLAogICAgICAgIGUgPSBoKG51bGwpLAogICAgICAgIGEgPSAobykgPT4gKG8gPCAwLjUgPyA0ICogbyAqIG8gKiBvIDogMSAtIE1hdGgucG93KC0yICogbyArIDIsIDMpIC8gMiksCiAgICAgICAgaSA9IChvLCB1LCB4KSA9PiB7CiAgICAgICAgICBjb25zdCBiID0gcGVyZm9ybWFuY2Uubm93KCksCiAgICAgICAgICAgIHkgPSAoZikgPT4gewogICAgICAgICAgICAgIGNvbnN0IFAgPSBmIC0gYiwKICAgICAgICAgICAgICAgIEIgPSBNYXRoLm1pbihQIC8geCwgMSksCiAgICAgICAgICAgICAgICBBID0gYShCKTsKICAgICAgICAgICAgICAobC52YWx1ZSA9IE1hdGguZmxvb3IobyArICh1IC0gbykgKiBBKSksCiAgICAgICAgICAgICAgICBCIDwgMSAmJiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoeSk7CiAgICAgICAgICAgIH07CiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoeSk7CiAgICAgICAgfSwKICAgICAgICByID0gKCkgPT4gewogICAgICAgICAgY29uc3QgbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigKICAgICAgICAgICAgKHUpID0+IHsKICAgICAgICAgICAgICB1WzBdLmlzSW50ZXJzZWN0aW5nICYmIChpKDEsIG0udGFyZ2V0LCA1ZTMpLCBvLmRpc2Nvbm5lY3QoKSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsgdGhyZXNob2xkOiAwLjUgfQogICAgICAgICAgKTsKICAgICAgICAgIGUudmFsdWUgJiYgby5vYnNlcnZlKGUudmFsdWUpOwogICAgICAgIH07CiAgICAgIHJldHVybiAoCiAgICAgICAgSSgoKSA9PiB7CiAgICAgICAgICByKCk7CiAgICAgICAgfSksCiAgICAgICAgKG8sIHUpID0+ICgKICAgICAgICAgIHAoKSwKICAgICAgICAgIF8oCiAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICB7IHJlZl9rZXk6ICJudW1iZXJTZWN0aW9uIiwgcmVmOiBlIH0sCiAgICAgICAgICAgICIgKyAiICsgbihsLnZhbHVlLnRvTG9jYWxlU3RyaW5nKCkgPz8gbnVsbCksCiAgICAgICAgICAgIDUxMwogICAgICAgICAgKQogICAgICAgICkKICAgICAgKTsKICAgIH0sCiAgfSwKICBidCA9IHt9LAogIHl0ID0gewogICAgY2xhc3M6CiAgICAgICJweC00IHB5LTEwIG10LTE2IGJnLXByaW1hcnktNjAwIGxnOnJvdW5kZWQtMnhsIGxnOiFtdC0yNCBweS1sZy0xNiBweC1sZy0xMiIsCiAgfSwKICBmdCA9IHsKICAgIGNsYXNzOiAibWItOCB0ZXh0LWNlbnRlciBsZzpkaXNwbGF5LW1kLWJvbGQgZGlzcGxheS14cy1ib2xkIG1iLWxnLTEwIiwKICB9LAogICR0ID0geyBjbGFzczogInRleHQtcHJpbWFyeS0zMDAiIH0sCiAgdnQgPSB7IGNsYXNzOiAidGV4dC1wcmltYXJ5LTI1IG14LTEuNSIgfSwKICB3dCA9IHsgY2xhc3M6ICJ0ZXh0LXByaW1hcnktMzAwIiB9LAogIGt0ID0geyBjbGFzczogImxnOnRleHQteGwtbWVkaXVtIHRleHQtcHJpbWFyeS0zMDAgdGV4dC1sZy1tZWRpdW0iIH0sCiAgU3QgPSB7IGNsYXNzOiAibGc6dGV4dC14bC1tZWRpdW0gdGV4dC1wcmltYXJ5LTMwMCB0ZXh0LWxnLW1lZGl1bSIgfSwKICBUdCA9IHsgY2xhc3M6ICJsZzp0ZXh0LXhsLW1lZGl1bSB0ZXh0LXByaW1hcnktMzAwIHRleHQtbGctbWVkaXVtIiB9OwpmdW5jdGlvbiBWdChjLCBtKSB7CiAgY29uc3QgbCA9IHh0OwogIHJldHVybiAoCiAgICBwKCksCiAgICBfKCJkaXYiLCB5dCwgWwogICAgICB0KCJoMiIsIGZ0LCBbCiAgICAgICAgdCgic3BhbiIsICR0LCBuKGMuJHQoImNvbW11bml0eVNlYy50aXRsZVswXSIpKSwgMSksCiAgICAgICAgdCgic3BhbiIsIHZ0LCBuKGMuJHQoImNvbW11bml0eVNlYy50aXRsZVsxXSIpKSwgMSksCiAgICAgICAgdCgic3BhbiIsIHd0LCBuKGMuJHQoImNvbW11bml0eVNlYy50aXRsZVsyXSIpKSwgMSksCiAgICAgIF0pLAogICAgICBzKAogICAgICAgIE0sCiAgICAgICAgeyBjbGFzczogIiIgfSwKICAgICAgICB7CiAgICAgICAgICBkZWZhdWx0OiBkKCgpID0+IFsKICAgICAgICAgICAgcygKICAgICAgICAgICAgICAkLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvbHM6ICIxMiIsCiAgICAgICAgICAgICAgICBsZzogIjQiLAogICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtbiBsZzpkaXNwbGF5LW1kLWJvbGQgZGlzcGxheS14cy1ib2xkIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGQoKCkgPT4gWwogICAgICAgICAgICAgICAgICBzKGwsIHsgdGFyZ2V0OiA5MDAgfSksCiAgICAgICAgICAgICAgICAgIHQoImRpdiIsIGt0LCBuKGMuJHQoImNvbW11bml0eVNlYy5wb3NpdGl2ZUNvbW1lbnRzIikpLCAxKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICksCiAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgJCwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb2xzOiAiMTIiLAogICAgICAgICAgICAgICAgbGc6ICI0IiwKICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAiZmxleCBpdGVtcy1jZW50ZXIgZmxleC1jb2x1bW4gbGc6ZGlzcGxheS1tZC1ib2xkIGRpc3BsYXkteHMtYm9sZCIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiBkKCgpID0+IFsKICAgICAgICAgICAgICAgICAgcyhsLCB7IHRhcmdldDogMjRlMyB9KSwKICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgU3QsIG4oYy4kdCgiY29tbXVuaXR5U2VjLmFjdGl2ZVVzZXJzIikpLCAxKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICksCiAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgJCwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb2xzOiAiMTIiLAogICAgICAgICAgICAgICAgbGc6ICI0IiwKICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAiZmxleCBpdGVtcy1jZW50ZXIgZmxleC1jb2x1bW4gbGc6ZGlzcGxheS1tZC1ib2xkIGRpc3BsYXkteHMtYm9sZCIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiBkKCgpID0+IFsKICAgICAgICAgICAgICAgICAgcyhsLCB7IHRhcmdldDogNjFlMyB9KSwKICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgVHQsIG4oYy4kdCgiY29tbXVuaXR5U2VjLm9yZGVycyIpKSwgMSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICApLAogICAgICAgICAgXSksCiAgICAgICAgICBfOiAxLAogICAgICAgIH0KICAgICAgKSwKICAgIF0pCiAgKTsKfQpjb25zdCBCdCA9IEMoYnQsIFtbInJlbmRlciIsIFZ0XV0pLAogIEN0ID0geyBjbGFzczogImJnLWdyYXktMjUiIH0sCiAgSXQgPSB7IGNsYXNzOiAiaGVybyBwdC1sZy0xNiBwdC0xMCIgfSwKICBOdCA9IHsKICAgIGNsYXNzOgogICAgICAibGc6aC1bNzZweF0gaC04IGZsZXggYWxpZ24tY2VudGVyIGp1c3RpZnktbGctY2VudGVyIG1iLWxnLTggbWItNiBweC1sZy0wIHB4LTQiLAogIH0sCiAgTXQgPSB7IGNsYXNzOiAibGc6ZGlzcGxheS1sZy1ib2xkIGRpc3BsYXkteHMtYm9sZCB0ZXh0LXByaW1hcnktMjAwIiB9LAogIFB0ID0gewogICAgY2xhc3M6CiAgICAgICJsZzpkaXNwbGF5LW1kLXNlbWlib2xkIGRpc3BsYXktc20tc2VtaWJvbGQgbWItNiBsZzohbXQtMjQgbXQtMTAgbGc6cHgtMCBweC00IGhpZGRlbiIsCiAgfSwKICBBdCA9IHsgY2xhc3M6ICJsZzpmbGV4IGp1c3RpZnktYmV0d2VlbiBweC1sZy0wIHB4LTQgbGc6IW10LTI0IG10LTEwIiB9LAogIGp0ID0geyBjbGFzczogInRleHQtZ3JheS05MDAgZGlzcGxheS1zbS1zZW1pYm9sZCBtYi00IiB9LAogIER0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgbGc6dGV4dC14bC1yZWd1bGFyIHRleHQtbWQtcmVndWxhciIgfSwKICBGdCA9IHsgY2xhc3M6ICJweC00IHRleHQtbWQtc2VtaWJvbGQgdHJhY2tpbmctbm9ybWFsIiB9LAogIHllID0gewogICAgX19uYW1lOiAiaW5kZXgiLAogICAgc2V0dXAoYykgewogICAgICBjb25zdCB7ICRpc0Rlc2t0b3A6IG0gfSA9IHYoKSwKICAgICAgICBsID0gKCkgPT4gewogICAgICAgICAgY29uc3QgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGNoYW5nZUJveCIpOwogICAgICAgICAgZSAmJiBlLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICJzbW9vdGgiLCBibG9jazogInN0YXJ0IiB9KTsKICAgICAgICB9OwogICAgICByZXR1cm4gKGUsIGEpID0+IHsKICAgICAgICBjb25zdCBpID0gSiwKICAgICAgICAgIHIgPSBGLAogICAgICAgICAgbyA9IFosCiAgICAgICAgICB1ID0gc3QsCiAgICAgICAgICB4ID0gY3QsCiAgICAgICAgICBiID0gaHQsCiAgICAgICAgICB5ID0gQnQsCiAgICAgICAgICBmID0gTDsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgcCgpLAogICAgICAgICAgXygiZGl2IiwgQ3QsIFsKICAgICAgICAgICAgdCgiZGl2IiwgSXQsIFsKICAgICAgICAgICAgICBzKHcsIG51bGwsIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGQoKCkgPT4gWwogICAgICAgICAgICAgICAgICB0KCJkaXYiLCBOdCwgWwogICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIE10LCBuKGUuJHQoImhvbWUuZXhjaGFuZ2UiKSksIDEpLAogICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAicGhyYXNlLWxpc3QiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgZS4kdCgiaG9tZS5mYXN0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZS4kdCgiaG9tZS5zYWZlIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZS4kdCgiaG9tZS5ub1NpZ25VcCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGUuJHQoImhvbWUubm9GZWUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBlLiR0KCJob21lLm9ubGluZSIpLAogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgWyJwaHJhc2UtbGlzdCJdCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIHMociwgeyBpZDogImV4Y2hhbmdlQm94IiB9KSwKICAgICAgICAgICAgICAgICAgcyhvLCB7IGNsYXNzOiAicHgtbGctMCBweC00IiB9KSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIHModywgbnVsbCwgewogICAgICAgICAgICAgIGRlZmF1bHQ6IGQoKCkgPT4gWwogICAgICAgICAgICAgICAgcyh1LCB7IGNsYXNzOiAicHgtbGctMCBweC00IiB9KSwKICAgICAgICAgICAgICAgIEQoIiIsICEwKSwKICAgICAgICAgICAgICAgIHMoYiwgeyBjbGFzczogInB4LWxnLTAgcHgtNCIgfSksCiAgICAgICAgICAgICAgICBzKHkpLAogICAgICAgICAgICAgICAgdCgiaDIiLCBQdCwgbihlLiR0KCJob21lLnJldmlld1RpdGxlIikpLCAxKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcyhmLCB7ICJsZWZ0LXRvLXJpZ2h0IjogITAsIGxpc3Q6IGcocSksIGNsYXNzOiAibWItNiIgfSwgbnVsbCwgOCwgWwogICAgICAgICAgICAgICJsaXN0IiwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIHMoZiwgeyAibGVmdC10by1yaWdodCI6ICExLCBsaXN0OiBnKEUpIH0sIG51bGwsIDgsIFsibGlzdCJdKSwKICAgICAgICAgICAgcyh3LCBudWxsLCB7CiAgICAgICAgICAgICAgZGVmYXVsdDogZCgoKSA9PiBbCiAgICAgICAgICAgICAgICB0KCJkaXYiLCBBdCwgWwogICAgICAgICAgICAgICAgICB0KCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgdCgiaDIiLCBqdCwgbihlLiR0KCJob21lLmV4cGxvcmUudGl0bGUiKSksIDEpLAogICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIER0LCBuKGUuJHQoImhvbWUuZXhwbG9yZS5zdWIiKSksIDEpLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICB6LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAicm91bmRlZC00IG15LWN1c3RvbS1idXR0b24gdGV4dC1ub25lIG10LWxnLTAgbXQtNiIsCiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInByaW1hcnktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgIGZsYXQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNDgiLAogICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGcobSkgPyAiYXV0byIgOiAiMTAwJSIsCiAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAibGciLAogICAgICAgICAgICAgICAgICAgICAgdHlwZTogInN1Ym1pdCIsCiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBsLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogZCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHQoInNwYW4iLCBGdCwgbihlLiR0KCJob21lLmV4cGxvcmUuYnRuIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgWyJ3aWR0aCJdCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICB9KSwKICAgICAgICAgIF0pCiAgICAgICAgKTsKICAgICAgfTsKICAgIH0sCiAgfTsKZXhwb3J0IHsgeWUgYXMgZGVmYXVsdCB9Owo="}},"time_used":128,"timings":{"blocked":100,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/index.BJGWmqoV.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.470Z","timestamp":1785139669470,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/index.BJGWmqoV.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"267-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 304\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":615,"size_decoded":640,"mime_type":"text/css","magic":"ASCII text, with very long lines (614)","md5":"f940e5c51e1e37e9dec8a010a5d3a8d6","sha1":"8ce66b3940e075cbecfcd0e0fe135a376559b0fa","sha256":"9bfde38d32c806213138a674e0fc2a50b27b849bd4bf5966a996c70a81aeed71","sha512":"eb7e1c2f5b12d099a82d7a4fa5be51c01607521aadff8d3cc4382fb5f64e5bb0ed3289253acedda555cde59b780bccd363aa60768b0ef62b3b5e76f188e10469","ssdeep":"","tlshash":"a4f078fcabb81028c08bcbc813d7e284ca3e85c1fd70126c3578a832c6c310987ab249","first_seen":"2024-12-09T09:44:58.435476Z","last_seen":"2026-07-29T08:29:36.269903Z","times_seen":43,"resource_available":false,"data":"LnYtcmlwcGxlX19jb250YWluZXJ7Ym9yZGVyLXJhZGl1czppbmhlcml0O2NvbnRhaW46c3RyaWN0O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ei1pbmRleDowfS52LXJpcHBsZV9fYW5pbWF0aW9uLC52LXJpcHBsZV9fY29udGFpbmVye2NvbG9yOmluaGVyaXQ7bGVmdDowO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS52LXJpcHBsZV9fYW5pbWF0aW9ue2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6NTAlO29wYWNpdHk6MDt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sb3BhY2l0eX0udi1yaXBwbGVfX2FuaW1hdGlvbi0tZW50ZXJ7b3BhY2l0eTowO3RyYW5zaXRpb246bm9uZX0udi1yaXBwbGVfX2FuaW1hdGlvbi0taW57b3BhY2l0eTpjYWxjKHZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSouMjUpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS52LXJpcHBsZV9fYW5pbWF0aW9uLS1vdXR7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0K"}},"time_used":85,"timings":{"blocked":-1,"dns":0,"connect":26,"send":0,"wait":27,"receive":0,"ssl":31},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/styles__ltr.css","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.google.com/recaptcha/api2/anchor?ar=1\u0026k=6LfRUoYnAAAAAKfevHpSKXaw8gRuE6AJVb9YJKYH\u0026co=aHR0cHM6Ly9uY29ubmVjdC5vcmc6NDQz\u0026hl=en\u0026v=A7KpaEASfhDcK0nXxgQEyyYv\u0026size=invisible\u0026anchor-ms=20000\u0026execute-ms=30000\u0026cb=xxau4owkhj73","date":"2026-07-27T08:07:50.826Z","timestamp":1785139670826,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/styles__ltr.css HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.google.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/recaptcha-scs\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups; report-to=\"recaptcha-scs\"\r\nreport-to: {\"group\":\"recaptcha-scs\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/recaptcha-scs\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 42354\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Tue, 21 Jul 2026 21:55:21 GMT\r\nexpires: Wed, 21 Jul 2027 21:55:21 GMT\r\ncache-control: public, max-age=31536000\r\nage: 468749\r\nlast-modified: Tue, 14 Jul 2026 12:02:38 GMT\r\ncontent-type: text/css\r\nvary: Accept-Encoding\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":82980,"size_decoded":43201,"mime_type":"text/css","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"62429037d6285782824616384b26132e","sha1":"b126600bf1a3041616793c05c1ce749dad01d952","sha256":"31d79d19622679a61ce0ee180498b570d78cf2202cfad7f25d991049d780f564","sha512":"9dc9ee85a14baef9a9c9881cd82c92b086b4d8c902e36dcaeacdae5627da8f9de5791c8305b747b16d512e46f4cae5949d4afaa9f80a35d9395c4623451d13f6","ssdeep":"1536:a7Rpgh9C9ToL9gTNfWNfK4RxMnHZzhXwWx7W1bx7:a7ArC9ULiTYNC4Rs9Xi","tlshash":"eb838e7338513a1afc2b9b616196bdfdf11cc923e5515bfaa5497a20c3cb0a78223707","first_seen":"2026-07-14T22:23:00.889376Z","last_seen":"2026-08-04T07:42:04.176825Z","times_seen":15295,"resource_available":false,"data":"Lmdvb2ctaW5saW5lLWJsb2Nre3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LW1vei1pbmxpbmUtYm94O2Rpc3BsYXk6aW5saW5lLWJsb2NrfSogaHRtbCAuZ29vZy1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmV9OmZpcnN0LWNoaWxkK2h0bWwgLmdvb2ctaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lfS5yZWNhcHRjaGEtY2hlY2tib3h7Ym9yZGVyOm5vbmU7Zm9udC1zaXplOjFweDtoZWlnaHQ6MjhweDttYXJnaW46NHB4O3dpZHRoOjI4cHg7b3ZlcmZsb3c6dmlzaWJsZTtvdXRsaW5lOjA7dmVydGljYWwtYWxpZ246dGV4dC1ib3R0b219LnJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXJ7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoycHggc29saWQgIzQ0NDc0Njtmb250LXNpemU6MXB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjI0cHg7ei1pbmRleDoxfS5yZWNhcHRjaGEtY2hlY2tib3gtYm9yZGVyQW5pbWF0aW9ue2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRlFBQUFOSUNBWUFBQUJabDhpOEFBQUFJR05JVWswQUFIb21BQUNBaEFBQStnQUFBSURvQUFCMU1BQUE2bUFBQURxWUFBQVhjSnk2VVR3QUFBQUdZa3RIUkFEL0FQOEEvNkM5cDVNQUFBQW9kRVZZZEdSaGRHVTZkR2x0WlhOMFlXMXdBREl3TWpZdE1EY3RNVFJVTURRNk1qVTZNek1yTURBNk1EQ0FGNnp6QUFCNnZVbEVRVlI0MnUyZGVYeFU1ZlgvMzNmV1RQWjlUNEFzaEYwa2tUV0Nnb0FMb2lJcWJsVXJybldyMWRiYXVsdjFxN1oxcTYyVzFnMlZLbEtsS0FxQ0JFSVFTTmlYckJDeXJ6UFprMW51M044Zk4zZWNRSlpKTXZINy9kbjdlYjN5Z3RmYzV6bG43bWVlOVR6bk9RZFVxRkNoUW9VS0ZTcFVxRkNoUW9VS0ZTcFVxRkNoUW9VS0ZTcFVxRkNoUW9VS0ZTcFVxRkNoUW9VS0ZTcFVxRkNoUW9VS0ZTcFVxRkNoNG44QmdrYXJFelJhM1krbFQ2dlY2clRhSDAvZnNMN3JVTWhNbW5mTGZTR2p6NTdSVkhad0w1TGtIR2t5cjd6eXl2c21USmd3SXo4L2Y2ODB3dm8wb0ZrSks5TWgvUUFja0VBYVRIMmQydC9PYUdIYWNBaFgvdThFcDlybGg0a0FDQWlBQUxWNXFWQ2hRb1VLRlNwVXFGQ2hRb1VLRlNwVXFGQ2hRb1VLRlNwVXFGQ2hRb1VLRlQ4Qm1FSmlFa3doTVFrL2xyN0l5TWlFeU1qSUgwMWZFQVFGUWRCUTZtcUhRdWFvMmRmZEhwd3dPYjI5b2JUWTBkWFdNdEprWG5ycHBiZW5wYVdsVjFaV0ZyZTN0NCtvdmlpSXVnL3Vtd1d6anNQeGRtZ2ZUSDJOMnQ5NndoLzhOYURSZ01ZZi9OVXU3d1ZNZ1NsVFlJcmF2RlNvVUtGQ2hRb1ZLbFNvVUtGQ2hRb1ZLbFNvVUtGQ2hRb1ZLbFNvVUtGQ2hZci9XeEFHVzhFVUhCMGZQWG5SWlFBMWh6ZDkwZGxVVXpHU1h6QWlJaUkrTXpQek1vRHM3T3d2NnV2clIxUmZHSVF0aHNVQTM4QTNqZEE0bVBxRDltMUtPR2ZaamFhUW1BUzlLU0RJSnpBcXBxbnM0TjZSZk1IRml4ZmZHQmtabWVEbjV4Y1VGaFlXazUrZlA2TDZib0FieHNQNEtJaUtodWg5c0c4dzlWWGZwdFBnQzc2OS9YL0VXcWkxcGJiYUp6QXF4dEhWMWxKemVOTVhJKzE5MTlqWVdCMFdGaGJUM3Q3ZWtwMmQvVVZIUjhlSTZyT0FKUlZTYldEN0FyNFliSmRYb1VLRkNoVXFWS2hRb1VLRkNoVXFWS2hRb1VLRkNoVXFWS2hRb1VLRkNoVXEzREJvVjV6QTJMVEpvV1BTWndPWVQrYmx0RlFWSEI3Skw1aVVsRFI1MHFSSnN3R09IRG1TYytMRWlSSFZsd2lKTTJBR3dHN1lYUVpsSTBab1lHemE1TVJaSzFhNmYxYTJhODJxa1NJMUtTbHA4cElsUzNybzI3Qmh3NnFSSWpVWmt1K0JlelRkSGpWT2NMNEJiNVJBaWFjeUJ1V0tvN1RNc1ZGR3hrWVplM3cyRWxCYVprQkFBQUVCQVQwK0d3bWNEK2RyUU1PRUNUQmhBaHJRbkEvbkQwYUc2dHZrQmozb0FZaUprZi9jUHhzSlFzMG44M0lBQ211dEZOWmFlM3cyRWpoeTVFZ09RR3RySzYydHJUMCtHd25zaC8wQWJOa2kvN2wvNWlFRzVTeG1iVzJzNjJxdXFkVHFqVDYyTm5OOXplSE5YNHprcEdTeFdPcnE2K3NyRFFhRFQxTlRVMzEyZHZZWEl6a3BWVUJGSjNTR1FFZ2J0RzJDVFR0aHA5cDNWYWhRb1VLRkNoVXFWS2hRb1VLRkNoVXFWS2hRb1VLRkNoVXFWUHl2UTZ2M01XbjFQcVlmUzUvUmFEUVpqVWJUL3cvY0RNcHp4RDhxZVZ6Y3RFdFhtRUppRXdFNkxWVmxsZnYrczZhdHRpUi9KTDVjWW1MaXVBVUxGcXlJaW9wS0JLaXRyUzNic21YTG1yS3lzaEhSRndNeFY4S1Y0MkFjUUQ3a2Z3YWZWVU8xeDQxdE1HU21MTGo5WWIwcE1GajVURzhLQ0FwTlNwL2RWbmV5ME5adWFmQTJtZGRlZSszRC92NytMbjMrL3Y1Qmt5Wk5tbDFlWGw3WTNOenNWWDBKa1BCNytIMENKT2hCcndkOURNUmtRdVloT05RQ0xWNGxkTXpjbSs3Um13S0RreU1OTEU4UEluMlVpZVpPRVV1N1V6Q0Z4Q1kwRm4rL3pac3Z1R3pac252OC9mMkQvZno4U0V4TUpEUTBGSnZOaHQxdUZ5SWpJeE1PSERqZ1ZYMTN3OTFSRUVWS0N0eHpEOHliQjVXVjZNeG1YUnpFWlVPMkozSTBubzZaU2plZlA4NGZrMEdEeWFCaC9qZzV3NWdwSkRiUm0yT3EwV2cwS2QwOE9qb2FyVmFMVnFzbE9qb2FnS2lvcUVSdmpxbEdNS1pDS2dCMzNBR2pSOHQvZDl3QlFDcWtHc0hvTlVKLzZ0Q0RYZ0FCUVFCZnQxQk52cjRnQ0FnZ2VPcmo1Qkdob3IycnM5TlNWUWF3TmIrTlRwdVRUcHVUcmZsdEtKT1RhTy9xOU5ZTFdxM1d6dHJhMmpLQW1wb2FSRkZFRkVWcWFtcFFKaWVyMWVvMWZXM1FWZ2QxU0JLc1hRdE9wL3kzZGkxSUVuVlExd1p0WGgxRHJhMzFOYUZKNmJNdDdVNWgzNmxPOXAzcXhOSXVBcEowS3VmanQ3MDlLWm5ONXBwSmt5Yk50dHZ0Z3NWaXdXS3hZTGZia1NSSldyOSsvZHZlbnBTYW9Pa2NPSWZTVXRpOEdUWnVoS0lpQU42RDk2cWd5cXVFMnRvdERXMTFKd3ROSWJFSmVsTkFrTkl5VCtWOC9QWklMSnVhbTVzYnlzdkxDeU1qSXhQOC9mMkRsSmE1ZnYzNnQwZGkyVlFGVmZWUVB4YkdHaHdPQXc0SGJkRDJQcnkvRzNhUHlEclVmWkpTaG9JZmEyR3ZEQVVqclVzRG1qaUlBNmlFU2ljNDFWbEdoUW9WS2xTb1VLRkNoUW9WS2xTb1VLRkNoUW9WS2xTTU9BYnRPUktXUEgydUtiVGJjOFJjVmRaWXNtZjdTSHFPbkhYV1dYUGRQVWNPSGp5NGZhUThSeUloY2c3TVNZUkVnRElvMndrNzY2RE9xNFFLR3ExdTlKenI3d2hQbTcyZ3QrY05CVGxiU25kKytKYmtGQjNlZURHdFZxdGJ1blRwSGVucDZiM3F5OHZMMjdKKy9mcTNSTkU3K2dRUWxzUHlxK0ZxN1dubmJDS0luOEFuYTJHdEJOS0EzOTBUaFdNeWI3d3JQRzMyQWcwd0pjSEVuQlEveHNmNFlOQnBxRzl4WUFwUFNETDRob1I2SzFuVjVaZGZmcGRDWm5Cd01PSGg0UVFHQnFMUmFPanE2aUkyTmpZcE1EQXcxRnZKcXE2RDY2NkJhelNnWWNvVXVPZ2ltRG9WbkU0MHRiV2F5VEJaQzlyRGNIalloUHBISlk4Yk5YdkZiUnBnZVVZd001SjhDZmZYRWU2dkl6WEtTRXlRbnVOVlhaakNFNUphS284ZkhPNXhjbUppNHJoTEw3MzB0dTcvRXhZV2h0Rm94R2cwRWhBUWdNbGtvcm01bWRqWTJLVGk0dUtEd3oxT1RvVEVYOEl2QlJDNDgwNjQ5VlpJUzVQL3pqc1BRa0lnTjVmeE1QNTcrTDRabXZ1VE42Q2pRMWp5OUxrQWt4Tk1KRWNhem5pZUhHbGdjb0twUjluaDRLeXp6cHFydEV4L2YvOHpmMkIvZjRLRGczdVVIUTRXd0FJQkJHYlBoa1dMeml5d2FCSE1ubzBBd2dKWU1KQzhBUWxWSnFEa0NFT2ZaWlJuU3RuaFFKbUFlaVBUblZUM3NzUEJHQmdEd015WmZSZnFmdVlxT3h4Q2YrcHcrU3daKy9FRjYzN21pWC9UZ0lSMm1tV2ZwcEo2VzU5bGxHZEsyZUZBOFdscWErdmJsVWg1cHBRZERpcWhFb0FqUi9vdTFQM01WWFk0aERhVzdOa09jTGk4azVLNk0wa3RxYk54dUx5elI5bmg0T0RCZzlzQm1wcWFlaVcxcmEyTnBxYW1IbVdIQTFkY3BtKytnWkplUXR5VmxNalAzTXNPWjVhM3RWc2FqSDZoNGFid2hLVGpWVjIwZERseFN0RFlKckxuWkNmYjh0dHdkcTlGNjQ1dDJ6amNGMnh1Ym00SUNnb0tqNDJOVFdwdWJsWWN4TEJhclRRMk5sSmJXK3RhaSs3ZXZYdlkrbXFnSmdWU1lrVXhsaDA3UUpMQXh3Y3NGam02Mkp0dmd0VktIdVI5QXArb0Mzc1A0QXUrdjRaZlQ0RXB2VDAvQklkZWhCYzdvRVBkZWc1aXQ1UUptZk5nbnZ2V013dXlzaUhiazEyU0NoVXFWS2hRb1VLRkNoVXFWS2hRb1VLRkNoWGV4YURNZDNyZm9KRGd4TWtaeG9Ed0tBQnJhME50VTluaFhIdEhzMlVrdmx4QVFFQklXbHBhUm1ob2FCU0EyV3l1TFNnb3lHMXRiUjBSZlRyUWpZZnhVUkFGVUF1MXgrRzRBeHhlSmRUZ0h4b3hldloxdDhzR1p1RzBPcExVVUpDenBUVG5vN2R0YmVaNmI3eFljSEJ3eEtXWFhucDdlbnI2QWtIb3FVK1NKQ2t2TDIvTGYvN3puN2VibXBxOG9zOFhmSytGYTYrQUsvekF6LzFaTzdUL0cvNzlNWHpzRlFPemYxVHl1UEdYUHZ5YzNoUVVJZ0FKb1hxaWcrVER2NXBtTytWbU94Smc3MnkySFAvUFM0OE8xOWljbUpnNDd2YmJiMzh1SUNBZ0JNRFgxeGNmSHg4QXVycTY2T2lRMzZtMXRkWHk5dHR2UHpwY1kzTXN4RDRQenl0R1pjTENJRGxaZmxoU0FvMk5nR3hzL2kzOGRxQjc4OEpBTGZPc0ZjKzlwVGNGaGNRRTY3a3lQWWlZSUYyUE10WE5EajdMYTZhNnlZNjlzOWx5Y00yamR3eTFwUVlIQjBjODlOQkRid1VFQklTWVRDWVNFaEpjWkNybzZ1cWl2THljenM1T1dsdGJMUysvL1BJZFEyMnBBUkR3SnJ3WkQvRkVSc0w5OThPc1dUOTBRa21DWGJ2ZzFWZWhybzRLcUxnYjdtNkYxcjVrOW50SWwzemVyYjhNaUU2ZEdCT3M1L2E1b1FUN25sazh3RWZEMUFRVGhiVTJPa1M5eWVBYkhOSllzbWZIVUY3d3FxdXUrdVdZTVdNbW1rd21rcE9UMGV2UFBBYlg2WFNFaElUUTJ0cUtScU14QlFRRWhCdzZkR2hJK3U2RU8yZkFES0tpNU1PNHRMU2VJNW9nUUVJQ3pKOFBXVmtFdHJjSCtvQlBmd0VKTlAxTlFPRnBzeGNJd0pYcFFSaDBmVGRtZzA3Z3l2UWdCQ0E4YmZZQ3ZXOVF5RkFtSU9WUUxpRWhBWTJtN3hOdWpVWkRRa0lDQU9ucDZRdVU0V0V3OEFmL1MrRlNBQjU5Vk83cWZTRXNUQzREWEFxWCtvUC9vQWtOVHB5Y0FZS1FFS28vbzV2M2hwZ2dIUW1oZWtBUTVMcURRMXBhV29ZZ0NJTDdtTmtmZkh4ODhQWDFSUkFFSVMwdGJkRDZNaUJEQnpxU2ttREtsSUVyVEprQ1NVbm9RSmNCR1lNbVZGa2FLUk9RSjFES0d2M0RJd2Y3Z3NyU3lCTXkzVWtGQ0FrSkdiUytXSWdGWU1JRXp5dDFsM1hWSFF5aHcxemRDdnlJT0gxcDVlbWFVNTVGQnBIMHJMdXNxKzVnQ0xXMk50UXFTeU5Qb1pSVjZnNEdack81VnBuRlBZVlNWcWs3R05TRHZESW9HNFI3VkhkWlY5M0JFTnBVZGpnWEpLbmNiS2U2ZWVDTlFuV3pnM0t6SFpBa3VlN2dVRkJRa0N0Smt0VFIwZUVScWNxYVZKSWtxYUNnWU5ENjlzRStBQTRkZ21vUGdpOVdWOHRsM2VzT2hsQjdSN09sb1NCbml3UjhsdGVNemRHMzQ0VE5JZkZaWGpNU3Nsdk9VTGFpcmEydGxyeTh2QzBBNWVYbE9KMTlSL2R4T3AyVWw1Y0RzbHZPVUxhaXRWQzdHM1lqaXZEeXl5Q0tmUmQySzdNYmR0ZEM3WkRXb2EyMXhma1I0ekl2NkJEMXBzSmFHd21oQmdKOE5HZTB6TlhmTjdrVzlnVWJYM2xLdEhWMkRHVXNMQ3NyeTgvSXlMaEFvOUdZV2x0YjhmUHpRNmZUbmRFeVMwdExYUXY3ZDk5OTk2bXVycTRoNlN1Q29zV3dXRjlkclNjL0g2Wk42eG43RHVTZDB0TlBRMjR1bmRENUpEelpuMXY0Zi8zV2N3Yk1lQXFlTW9JUkh4K1lQUnRTVXVTSHhjV1Frd05kWFZqQitnUThNVkNVTWRVNGdwd1QrUUY0WUJKTTZ1MzVFVGp5Q3J6aVNZN2tvWnZ2SkNSclcwUGRqMlcra3lSSnNsZ3NkU05wdmhzSDQ4NkJjNklnU2dLcER1cjJ3dDU4R0JIdlFoVXFWS2hRb1VLRkNoVXFWS2hRb1dJSThHd3ZMd2hDNkpqMDJSRnBtUXVERWlaTk13YUVSUUpZV3h2cm1zdVA3S3N2eU41c1BwbVhneVI1NWJhWklBakNwRW1UWm1ka1pDd2NPM2JzdE9EZzRFaUFwcWFtdXNMQ3duMjV1Ym1ianh3NWtpTjVTUjlBRWlRdGhJVm53OW1SRUFsUUIzWDdZZjltMkh3Q1RuaUZVTCtJVVNscEZ6M3daRUIwYXIrbldhMDFSY2NLTnI3eVpIdjlxZUxodkZoY1hGektMYmZjOHVUbzBhUDcxVmRhV25yc25YZmVlYkt5c25KWStpSWc0dGZ3NjRHaU5XeUJMUy9DaS8wZGZ3eElhTWlvcVRNbVhmbjRLeHFkd1dqUUNjeE04bVZTbkluSUFObm9XOWZxNEVobEo5K2Y2TURta0hBNmJOWWpuejM5Z09YVWdkMURlYmtKRXliTXVQZmVlMS9SNi9WR2pVWkRlSGc0UVVGQkdMc0RBRml0VnBxYm0ybG9hTURwZEdLMzI2MnZ2Lzc2QThlT0hSdVN2ckV3OWsxNE14UkNFUVE1NWMrOGVUQnFsRnpnMUNuSXlwTC9KQWt6bU8rR3V3dWhjTkNFK2tXTVNwbDI0NTgvME9nTXhwUklJemZPQ2lIUTFQdUpTVXVua3c5MldTaXVzK0owMkt6N1B2amxqWU50cVhGeGNTbS8vLzN2UDlEcjlVWi9mMy9HakJuVHErY0lnTjF1NStUSms3UzF0V0czMjYzUFB2dnNqWU50cWRFUS9SRjhGQXpCakI0Tkw3d0FZOGYyWHJpd0VCNTVCRXBMYVlLbTYrQzZHcWpwcmFpMnIwRnM4cFZQdk9ZVEdCbVRFbW5renZOQ01SbjZQbkUyNmdYU1I1azRVVy9IMG9rdUlHYnN4T3BEbS80OW1ESHp2dnZ1ZXkwc0xDekczOStmMU5SVXRQMGM3MnExV2tKRFEybHJhME1VUmQyWU1XTW03dGl4NDkrRElmUkZlREVGVWtoSmdYZmZoWmlZdmd1SGhjRWxsOENPSGZpWXpUN0prUHdsZk5sYjBWNVpDaDJUUGpzZ09uV0NRU2R3NDZ3UXRKcUI1eTZ0Umk1cjBBa0VSS2RPQ0IyVFB0dlRsNXMwYWRMczBhTkhUOUJvTkl3Wk13WlBqdGtGUVdETW1ERm9OQnBHang0OVlkS2tTUjdybXdwVFo4Sk1kRHA0NlNYb0oyQ01DLzcrY2xtZGpwa3djeXBNOVpqUWlMVE1oUUF6azN6NzdPYTlJZENrWVdhU2J3OFpuaUFqSTJNaFFIaDRlSi9kdkRmbzlYckN3OE43eVBBRUY4S0ZnTnpxbFBIU0U0d2FKZGR4bCtFSm9VRUprNllCVElvYmZKWXlwWTRpdzZQSlllellhUUJCUVVHRDFxZlVVV1I0Z3Vrd0hZQUxMaGo4VE5aZHh5WERFMEtWZGFZeW13OEdTaDFGaGlkUTFwbEdvM0hRK3BRNmlneFBvTGg4azVRMGhBVnJVazhabmhENlU0ZkxOOGxnR0h6bDdqcDkrVGYxU3FpMXRiRk9XV2NPRmtvZFJZWW5hR3BxcWxQV21ZT0ZVa2VSNFFrYVFJNlgxKzE5TWloMDEzSEo4SVRRNXZJait3Q09WQTQrd1paU1I1SGhDUW9MQy9jQk5EYzNEMXFmVWtlUjRkRjNCRG15MWM2ZGd5ZTB1NDVMaGllRTFoZGtid2I0L2tRSExaMmVaeEJyNlhUeS9ZbU9Iakk4UVc1dTdtYUFob1lHN0hiUHZmM3NkanNORFEwOVpIaUNiK0ZiUU02SzJOcnFPWm10clhJZGR4bWVFR28rbVpmVFdsTjB6T2FRK0dDWEJkRTVzQTFDZE1wbGJRNkoxcHFpWSthVGVUa2V0NWdqUjNKS1MwdVBPWjFPVHA0ODZaR05SWklrVHA0OGlkUHBwTFMwOU5pUkkwYzgxcmNWdHBaQkdjM044T3l6OHVXRWdSWEtaWnViS1lPeXJiRFY4NTBTMEZLVmZ5aDY4c0tsbGs1MEorcnRqSXYyd2FnWCtteVovOHorWWV0NTVMT243cmUzTjVrSDA1TktTa29PWldabUxoVkZVZGZXMWtaZ1lHQ2Z1eVc3M1U1SlNZbHI2L25hYTYvZDM5TFM0ckUrQ2FSQ0tGd0NTNFFUSndUS3l5RXpFM1M2dmdacWVPSUorT1libk9COENCN3E2M3BObjRUYU81ck5yVlVGUnlMR1pTNjBkS0xMS1dtbnJjdUpUcU5CcHhHdzJpWEt6WGEyRjdieDhaNG02bHNkTHVOSVMxWEI0Y0VPVGEydHJlYVRKMDhleWNqSVdDaUtvcTZob1FHSHc0RWdDQWlDZ0NpS2RIUjBVRjlmejZsVHA3QmFyUzdqeUlrVEp3YXRyeHFxSzZIeVBEaFBLQzRXK005L1FLT0IwRkFJQ0pBTFZWWEJoZzN3MjkvQ3dZTTR3ZmtFUExFZHRxdm11ejR3QzJZOURvLzNXRmNxTGRYeHd5cW5GbXFmaHFkM3dTN1Z3RHpRNWdDTVMyR3BZbUJXQWx1TElDb0c1dld3M2dvRHJ1dCsxTXNGL3o5QUFDRVVRZ0hNWUZaajNxbFFvVUtGQ2hVcVZJelVzbXR3MFBuNEI3b3Y3QjFkYlMwaitRWDkvUHdDM1JmMjdlM3RMU05OaWdsTUFKM1FPU0tFK29iR2o0N1B1UHo2OExRNUYvZ0VSZlc0MnR6VlhGdlZVTER6MjRyY3p6L3NNRmVVZXVPRm9xT2pSeTljdVBENmpJeU1DOExDd25yb2EyeHNyTXJOemYxMjgrYk5IOWJVMUhoRlh5QUVMb05sQzJEQkJKaWdCQmhvZzdaamNHd0xiRmtINjFxZ1pWaUVhdlJHbjVRRnR6OGNuMzdaZFFnL2hGandNOGpWMm0xdW13ako2YXpJKytLajRpMXZ2K1MwVzd1RzhtSUdnOEhuMm11dmZmaUNDeTY0VGhBRXpROWJhMTMzMXRyaFprMlRuTjkrKysxSEgzLzg4VXMybTIxSStqU2d1Umx1dmhmdTlRWGYvc3AyUU1mcjhQcTc4SzRUbklNbTFPQWJIRHIxdXYvNWgzKzNVV1JDckpITVZEOG14Qm94NnVSM3RUcWNIS3V5a2wzVXpyRXFlWnZiVmxOMDdNQkh2N25WMWpFNDgxMWdZR0RvcjMvOTYzOG9ScEdnb0NBaUlpSjZtUEZFVWFTbHBZWDYrbnFYcGI2MHRQVFlpeSsrZU90Z3pIZEt0MzRWWHAwSDh3RDVPdUx5NWJJWlQzRjZxSzZHN0d6WnFGd3MyMkN5SU90K3VMK3Y0VURvcTJWbTNQVGF4LzdScVJQOGZUVGNQQ2VFaWJIOVIxbzRXdFhGdXpzdHRIVTVhYXNwT3BiNzNuM1hldHBTRFFhRHorT1BQLzd4Nk5HakoraDBPcEtTa2dZOFVtNXVidWJFaVJNNEhBNUtTMHVQUGYzMDA5ZDYybEsxb0gwYjNzNkVUSHg4WkRlYnE2L3VPeGlCS01Jbm44anVPbDFkWkVQMjdYQzdDR0l2c3M5RTZxSzdmeHMrZHM0Q2Z4OE52NzR3Z3RIaEE1OE9SZ2JvT0R2UnhON1NUdkFKamRENStBVTBGbnVXRytTR0cyNzRiWHA2K2dLZFRzZjQ4ZVA3VGYyandNZkhoNUNRRU14bU00R0JnUkcrdnI0Qm51WUd1UnZ1dmdxdXdzZEhkc05adUZDMmhmWTVObWhnOG1RNURkQ0dEU1E2SElraWlIdGhieS9EU0M4VFVQcGwxd0hjUENlRWlFR2N6VWNFNkxoNWpoeWdKajc5c3V0OFErTkhleklCWFhEQkJkY0JKQ1VsRFRybVNGTDNPZmtGRjF4d1hYUjA5SUQ2b2lEcVRyZ1RnR2VlZ2JQUDlueWNPUHRzdVE1eWlLTGV6dWJQSURRKzQvTHJFVFNhQ2JIR0FidDViNWdZNjhPRVdDTUlHazE4eHVYWEQxUis0Y0tGMXd1Q29Ba0tDaHF5NTBoUVVCQ0NJR2dXTGx3NG9MN3I0RG9ER0RqckxMajAwc0hQWkpkZUNtZWRoUUVNMThGMUF4SWFuamJuQW9ETVZMOGhMME9VdW9xcy9wQ1JrWEVCUUVSRXhKRDFLWFVWV2YxaEVTenFIbWZPdktudTBVSlRrT3U2eStxTFVKMlBmNkN5enB3UWF4enlDeXAxZllLaVluVSsvb0g5TGRxVmRXWmdZT0RRMTVIZGRjUEN3bUw5L1B6NjFnZCtTU0NQRWZQbURYM2gybDAzQ1pKT0R6N1lnMUJsQitSbkVGeExvNkhBcU5PNDFxcjkrVGdwT3lDZFR0ZXZQK2lBczdaVzYxcXI5dWZqNUJyei9QeGdDTU9MMnpnankrQk1INmYvS3Q4bVZ4SlVvM0g0d3JwbG5KNVl0UWVoaWo5U3UwM0M2bkFPV1pmVjRYVHRvdnJ6Y1ZMOGtSd09CMkovVVdrR2dDaUtybDFVZno1T2pTREhyalNiNWJQMkliK2dWWmJoTHJNM1FoMWRiUzFkemJWVmdHdm5NeFFvZGJ1YWE2djZNNTYwdDdlM05EWTJWZ0cwdEF6ZDVxSFViV3hzck9yUGVHSUdzOHZKYTgrZW9SUGFYYmNCR3N4ZzdyZkxOeFRzL0JZZ3U2aDl5UHFVdW9xcy9wQ2JtL3N0UUgzOTBPT3hLSFVWV2YxaEcyd0Q0Ti8vSGpxaDNYVmRzdm9qdENMMzh3K1JuTTVqVlZhT1ZnM2U1bkMwcWt0dW9aTFRXWkg3K1ljRGxkKzhlZk9Ia2lRNW01dWJoK3g5MTl6Y2pDUkp6czJiTncrbzd5UDRDSUF2djRURGh3ZFA1dUhEY2wxM1dmMFIybUd1S0szSSsrSWpnSGQzV3FnZmhJOW9mYXVEZDNmS0FXc3E4cjc0eUJOelhrMU5UZW0zMzM3N0VjQ0pFeWNHSGZ2dXhBbjVndHUzMzM3N2tTZm12S053MUhXRDQ0RUhYR09oUnpDYjVUckFsL0RsVVRqcTBWN2VjdXJnbnZDVUdmUHdDWTNZVzlwSlhJaCtRUGZ3bzFWZC9PVzdScGR4NU1pL24zM1EweXlLeDQ4ZjMzUFdXV2ZOQ3d3TWpEQ2J6WGdTUTdTNXVabWlvaUtYY2VRdmYvbkxnNTVtVWZ3ZXZyOFlMZzVzYVFuazIyL2xQWHAvQVZrQmlvcmc1eitIOG5JcW9mSXV1S3MzVDVKZUNaV2NvcU0rUDN0ejZKaHBzL0VKamRoenNwT1REVFlNT29GUVB5MjY3bXMyVm9lVHd4VmRyTTF0NXN0RHJkZ2Nrc3Q4NTdDMmUreDRLWXFpSXpjM2QvUEVpUk5uQndZR1JqUTJOdExlM281R284RmdNTGlpM1lxaVNITnpNK1hsNVZSVlZibGNHVjk4OGNWYk96bzZQTlpuQmVzMjJMWUFGZ1EwTndmd3IzOUJYUjFFUnNwL1BWcktVZmpMWCtDeHg4QmlvUXFxYm9GYitvcC85MTl0WUE2RHNEL0FIODZIODkxMkd4RGJmVWhRVlFYZFdXNEJ2b1B2ZmdlL08zMnA1REdoUFN4UVArRWprRmt3NjJmd3MweklORUFQVzZVTmJObVEvVDY4UDVEbm5jZUVucjdmLzZrZTBobkJtQXpKRVJBQmN1RFZFaWp4eE90T2hRb1ZLbFNvK0QrSFFjL3lna2FyMDVzQ2d3SHNuUzFOM3NvcDN4ZTBXcTNPMzk4L0dLQ3RyYTNKV3pubC8xY0o5WXNZblJvM2JjazFZU2t6NS9sRmpFb1JCTm04TGttaTJGNS9xcml4K1B1c3luMGIvdFZlWDFya2pTOFZIeCtmT24vKy9HdW1UcDA2THk0dUxrV2owV2dCbkU2bldGbFpXWHpnd0lHc3JWdTMvcXVpb3NJcitrSWc1REs0YkI3TUd3Zmp3aUZjTWMvbFEzNFdaSDBCWDFqQU1peENqUUZoa1drWFBmQmsxTVFGUzNxMG11NnQ1K2szN0dxUGJ0bFFzUEdWSndkemNiYkhpNFdFUk41eXl5MVB6cG8xcTRjK0pjTEQ2WmMrZHUzYXRlR2RkOTU1MG1LeERFbWZML2plRC9mZkFyZjRRTC9HZ3k3b2VnZmVlUlZlN1M5UlZaK0VCaWRPT2Vlc2E1OS8yK0FiRWlZQVo0OHlrVDdLeFBoWUkwRW0yUVRRM0NseXZNcEszcWxPOXAvcVJBSnNIWmJHZ3gvLzl2YW1za043Qi9OeTQ4YU5PK2ZoaHg5K096QXdNS3liWE1MQ3dnZ01ESFJGZWJEYjdiUzB0TkRZMklqRklqZVdscGFXeHBkZWV1bjIvUHo4UWVsTGh1UlZzQ29aNUd4VUV5ZkN4UmZEbkRrUUZ5Y1hxcXlVTDh0KzlaVzhwd2RLb0dRbHJPd3J3TFhRRjVucE43MzZvVVpuOUVrSTFYTnJaaWdKWWYySHJpaHZ0UE9QYkRQbFpqdE9oN1VyNzczN3IvZVUxSEhqeHAzejJHT1BmV2d3R0h4OGZYMUpTa3JDejYvL1krejI5blpPbkRoQlIwY0hOcHV0NjVsbm5ybmVVMUpUSUdVdHJBMkZVS0tqNFE5L2tMMUgrc1BtemZDNzMwRk5EV1l3TDRmbHhWQThJS0hHZ0xESW1YZS8vNDNCTnlSc2Nyd1BkNThmMW04dXBSNzdYb2ZFbTk4MWNyaWlDMXVIcGZIN04zKzJlS0R1SHhJU0V2bnl5eTkvRXhnWUdCWWNIRXhxYW1xL3VaVGM0WFE2S1NvcW9xbXBpWmFXbHNhSEhucG84VURkUHdBQ05zTEdSRWhreWhSNDc3MkJUWGMvR0JMZ3BwdmcwQ0hLb093aXVPajA3RjlubU84bVh2N29TMEZ4RTZZbWhPcDVjRkdFeDJRcVkrdTBVU1lPVlhUUjdqRDQrZ1JGeGRZZS9lN0wvdXJjZmZmZEw2V2twRXoxOWZWbDNMaHhIcE9waksyaG9hRTBOVFdoMFdoOHc4UERZM2Z0MnRXdnZpZmdpYmt3bC9oNDJRSE1VekpCenNLd2VERjgrU1ZCTFMxQmdSQjQrcTFremVtemVkVEVCVXNFNE5iTTBFR1I2VExCNlFSdXpReEZBS0ltTGxqaUZ6RTZ0Yi9aWEptQWtwS1NCa1dtNndVMEdwZC8wNnhaczViRXg4ZjNxUzhPNGx6dU15Ky9QRGd5WFRhL01Ma3VzbHRQSE1UMVNXamN0Q1hYMEQwQkRUUm05b2VFTUQxbmp6TDFrTmtiNXMrZmY0MHlBUTAwWmc1Z2tTSWtKS1NIek41d0RWeWpCUzF6NXNncEtvYUsyYk5oemh5MG9MMEdydW1UMExDVW1mTUEwa2VaR0M0VUdZck0zakIxNnRSNThvOGVObXg5aWd4RlpxOC9JTXdIaHVZa2RqcTZaYmhrbms2b29OSHEvQ0pHcFFDTWp4MitaNFVpd3k5aVZJcWcwZXA2MndIRnhjV2x3UEQ4bWhRb011TGk0bEswMmw3MGdYWUN5RmZHaCtQWHBLQmJ4Z1NZNE80OTRpSlVid29NRmdTdFZxc1JYT3ZNNFNESXBFV3JFUkFFclZiWnFyckQzOTgvV0tQUmFBVkJHRlEwc2I2ZzErc1JCQUdOUnFOVnRxbzlsb0lRckFNZFd1MFA2OHpoSUM0T3RGcDBvQXVHNEY2Ny9FOFpybGFrMVhwUnFMYW5iSGRDN1owdFRaSWtpcUpUb3JsVEhMYXU1azRSMFNraFNhSm83MnhwT3YxNVcxdGJrOVBwRkNWSkdsUWtuTDVndDl1UkpBbW4weW0ydGJXZG9hOEptaVNRc05sNkhMd05HVTFOWUxNaGdkUUVUV2NRS2psRmh4TGU0bmpWOEk5UUZCbnQ5YWVLZTdOSWlhTG9VTUpiRE1ldlNZRWlvN0t5c3JnM2k1UU5iS1ZRQ3NEMzN3K2YwRzRacFZCcUExdXZYYjZ4K1Bzc2dMeFRuY1BXcDhoUVpQYUdBd2NPWk1rYmtNWmg2MU5rS0RKN3cwNlFvMWg5L2ZYd0NlMlc0WkxaRzZHVit6YjhDMkQvcVU3S0c0ZmVEY3NiN2V6dkpsU1IyUnUyYnQzNkx3Q0x4VUo3KzlDZDA5cmIyMTNHRWtWbWIvZ0VQZ0ZnL2ZyQnBaODhIV1Zsc2d4M21iMFIybDVmV2xSN2RNc0dDZmhIdHJuZlRJbjk3ZWYva1cxRzZqYm45V2NqcmFpb0tOcTFhOWNHa1AyYStzdVUyTjkrWHZGdjJyVnIxNGIrYktRSDRFQTJaT053d0s5LzNYK214TDRnaW5KZGg0TnN5RDRBQi9yZHl6ZVZIZG9iTS9XaUs5c2RCdDh5czUxcG8wd2VSYmgxTjQ0VTFkcTZ6WGkvV1NuYU92dHRldm41K1h2bnpadDNwVWFqOGUzbzZDQTBOQlJQRThrcXhwSFcxbFphV2xvYVgzenh4WlZkWFYzOTZ0c1ArNitHcS9YbDVYcHFhbURCZ3Y3dktKMU81aU9Qd05kZjB3RWR0OEt0cHh1ZHp5QlV0SFcyTjVjZjJSY3paZUZsOVczb0RsVjBrUnhoSk1oWE8yQTNmMjFMQTBXMU5wd09hOWYrMVEvZDRva0Z2NnVycTcyd3NIQmZabWJtWlhhN1hkZlUxSVMvdnorR0FVSlJ0cmUzVTFoWVNHdHJLemFicmV2NTU1Ky94Uk1MdmdVc0pWQnlDVndpSEQwcWNQQ2d2SlVjNkxKWmJTMzg0aGZ3NVpjNHdYa3YzTnZieGE5ZVdlcHFycTJ5bE83L1BtTGNuQXZhSFFiZnJJSjJ5aTEybkU0SU1HbncwV3RjUzZNRFpWMThjYUNGTlh1YWFPNTBZdXV3Tk81Zi9kQXRnekV3TnpRMFZCMDdkdXo3N3B5ZXZuVjFkYTUwazNxOTNuV2h3VzYzMDlUVVJFVkZCV1ZsWllyQnVmSDU1NSsvWlRBRzVtSW9Mb0tpaGJCUVYxcXE0OE1QWmRPY3Z6OUVSLzl3M2NicGhMdzgrUHZmNFZlL2dxSWlyR0M5RCs3N0NyNGFsTVZlc1kzK2xJOUEwaUR0UlhqeGJQamhPcDJQVDgvTHMyNytxdnRoLzYvaDF3VlEwS2RKMFNOcnprLzRrRTRBNFR3NDd4cTRaaTdNVmU3S3V6WWcwTFlkdHY4TC9yVU50ZzBVR0VzOVJ1NjU1TkhFUVp6N3FXY2xWUFozUDE2RkNoVXFWSGdQSGsxS0dxM2VFSkdXZVVGb2NrYW1mMVR5T0wwcEtFU2VsSm90YmJVbCtlYVMzT3o2Z3V4dm5hTGQ1bzB2cGRmckRlbnA2UmRNbmp3NWM5U29VZU9VMU9pdHJhMldVNmRPNVI4K2ZEZzdMeS92Vzd2ZE8vb0FKc1BrVE1nY0IrTkNJRVRaQk9SRGZqWmtINGJEd3laVW96ZjZKTTI5NmQ3RVdTdFdHbnhsRXZ2Y2RuWTBXOHAyclZsMVl2dDdydy9uMHNLVlYxNTU3eVdYWExKU0liRXZ0TGEyV3I3ODhzdFZuMzMyMmV0RHZiUWdnSEExWFAwTCtNVTRHTmZ2RmhueS93Si8rUVErNlcvcDFDZWhnWEhqejVwNjdRdC9WOEpjaFBwcHlSaHRJam5TU0VqM050VFNJVkpTWnlXM3RCTnp1MnhvNkRCWGxCNzQrSkhiV2lxUEh4ek15NldrcEp6MThNTVAvMTBKYzJFMEdna05EY1hmMzcrSEswNWJXeHRtczltVkVLQ21wcWIwcFpkZXVxMjR1SGhRK3VJaC9tL3dOMWRPRHg4Zk9PODhtRFpOM2kzSndtSGZQdGkyemJYQTN3Tjc3b1E3SzZEQ1kwTER4ODZlZi9iMUw3K3IxUnQ5UXZ5MHJKZ2V6TXdrM3o0RElFaVNIUE4relo0bUxPMGlvdDNhdGYvRGgyNXVLTXpaNnNuTFRaczJiZjV2Zi92YmR3MEdnNC9SYUNReE1kR1ZoYWFmN1NwbFpXVllyVlpsTDMvenZuMzdQTkozRnB6MUwvaFhLSVRpNXlmZmp2djV6MzhJWm4xbWQ0Qi8vaE5lZVFYYTJ6R0QrUnE0NWlBY0hKRFF3TGp4WjgyNC9SLy8wZXFOUHBQamZiaDdmaGgrQnMrc01lMDJKMjl1bFYxeFJMdTFhL2ZidDE0NlVFdE5TVWs1Ni9ubm4vK1B3V0R3Q1FrSklTVWx4WFV2YVNBNEhBNktpNHV4V0N6WWJMYXUzLzcydDVjTzFGSkh3K2l2NGV0UUNHWHlaSGpuSFVoTTlOd09lc3N0Y1Bnd1pqQmZDQmVXS3FjQXZSR3EwUnQ5TXUvL1pMdHZhUHpveWZFKy9ISmhPRHJ0NERaVERsSGl6NXNiT0Z6UlJZZTVvalQ3MWF2bjlqV21HZ3dHbjlkZmYzMTdkSFQwNkpDUUVOTFMwancyM2YzUU95UUtDZ3F3V0N6VTFOU1UzbnZ2dlhQN0dsTjFvTnNJRzgrQ3N6anJMUGpzTXhqc0VYWkxDMXg1SlJ3OHlFRTRlQkZjNUFCSHI5YW01UE52L1dYVXhQbVhoUGhwZWVTU1NKZFZhVkRiTjQzQTFFUVRPY1VkaUxxQVlNbnBjUFNWZGVIcXE2Lys1Y3laTXk4eEdvMk1IejkrU0dFeUJFRWdPRGlZeHNaR1RDWlRzTlBwZFBTVmRlSG44UFByNFhxQ2crR0xMMkNBWWFWM2k1RlJ6cW0wWmczUlhWM1JqZEM0RC9hZFliSFhhUFdHeEZrclZnS3NtQjdzY1RmdjFaaGkwTEJpZWpBQWliTldyTlJvOVliZWxrYVhYSExKU29ERXhFU1B1M212TFUrbkk3RzcyMTV5eVNVcjlmb3o5V2xCZXcvY0E4aUIvbU5qaDc3R2lvMlZaUUQzd0QyOUhpTkhwR1ZlWVBBTkNnbjEwN3JTb0EwSE01TjhDZlhUWXZBTkNvbEl5endqL0U5NmV2b0ZBUUVCSVVhamNjQUp5Qk9FaDRkak5Cb0pDQWdJU1U5UFAwUGZYSmdiQzdHRWhzTDExdzliSDlkZkQ2R2h4RUxzWEpoN0JxR2h5Um1aQUJtalRVTUtaM1JtVjVSbHVjdnVzWkNlUERrVElEUTAxR3U3RkVXV0l0c2RycUNCUzVZTUxUSFZtUk9BTE10ZHRqdWgvbEhKNHdDU0k0MWVlMEZGbGlMYkhhTkdqUm9IZUJUbnpsTW9zaFRaN25ENU5aMXpqdmYybWQyeVhMTHA0ZHNrNzRSQ2ZMM25xcUxJVW1TN1E5a0plY092eVcxYzdpSGJIY3FGV0svNE5Tbm9sdVdTelg5alRqcEJHRkZaYnI1TnpSWmxPK2t0S0xJVTJhZnZ4Wlh0cExlZ3lGSms5OUNuK01LYnpkNGp0RnVXdTUrOWk5QzIycEo4Z0pJNjcxME5WMlFwc3QxeDZ0U3BmSUMydGphdjZWTmtLYkxkNFVvUWZlQ0E5d2p0bHVXZWZOcEZxTGtrTnhzZ3Q3UVRieVRWa1NSWmxydHNkeHcrZkRoYi9wSE5YbXd3NWg2eTNlR0t4ckJ4by9jSTdaYmxIdW5CUldoOVFmYTN0bzVtaTdsZGRDWHFHdzYrUDlHQnVWM0UxdEZzcVMvSVBpTkFWVjVlM3JldHJhMFdxOVhxU3RRM0hEUTBOR0MxV21sdGJiWGs1ZVdkb2U4YitLWURPaWd1aHExYmgwL20xcTFRWEV3SGRId0QzNXhCcUZPMDI4cDJyVmtGc0daUEUrMjJvUi8wdGR1Y3JOblRKTnNUZHExWjFadmgyVzYzMjc3ODhzdFZzczJockVlQWxzSEM0WEJRMXUzODllV1hYNjdxemZEY0JtMGZ3QWNBUFA3NDhHUGZQZjQ0QUIvQUIyM1ExdXNzZjJMN2U2OTNtQ3RLTGUwaWIyNXR4Q0VPdnU4N1JJazN0elppYVJmcE1GZVVudGorM3V0OWxmM3NzODllcjZtcEtiVmFyUlFYRnc4cFlaZ2tTUlFYRjJPMVdxbXBxU245N0xQUCt0VDNSL2hqQXpSUVdBZ1BQY1NReGpaSmt1c1dGdElBRFgrRVA1NjJ4WFVyNnhRZGxsTUg5OFNlZmNuVjllM29UalRZbUpwb3d1Q2h4YW5kNXVUMUxUK1k3L0xldSsvYXJxYWF5cjdLaTZMb3lNL1AzM1ArK2VkZmJiZmJkZTN0N1FRSEIzdDhYOG5oY0ZCVVZPUXkzejM5OU5QWDF0Zlg5Nm12QzdxT3d0RXI0VXJoNkZHQjZtcVlQOTl6TjNHYkRSNStHRDcrR0NjNGI0RmI4aUcvVDBJQnJLME50UzFWeHc5R1RWeXdwTDRkWFU1eEI4RytXdUpEOUFNYW1GLzl0b0ZUalhhWGdkbFN1djk3RHlhUzJwS1Nrb096Wjg5ZVlyZmJkWTJOamVqMWVueDlmUWNjTXdzTEMybHJhM01abUk4ZVBUcWd2bElvcllUS3hiQllPSHhZWVBObStlTHNRTWFTM0Z5NCtXYjQ5bHVjNFB3bC9ISURiQmpRd094dWFQNHBINEVzZ2tWdndCdkJ5ZzJPNmRQbHUwZTlIWUg4NXordUVKZE4wSFFQM0xNSk52VzYxdS9YdHZrVFA2U0xnSWpINExFcjRVbzk5THNIdG9QOU0vanNHWGltSHZxTXpha2VJeVBIVWI0Q3JwZ0RjOGJEZUtYVk5rSFRjVGkrRTNiK0cvN2RWN3c3RlNwVS9OZkNjMXVXSUFqK0VhTlQvU09UMHZUZEU1UzlvOW5TVm5laW9LMit0TWhiYVh6ZDFBbng4ZkdwQ1FrSmFlNWphSGw1ZVVGRlJVV1I1R1Y5SUNjT1NJRVVkMWVjWWlodWgzYXZFZW9ibHBnME92UDZPMk9tTExyYzRCL2FhMzRKVzV1NXZ2clFwczlMc3ovOFcwZGoyWW5odkZSc2JHelMwcVZMN3p6MzNITXZEdzRPN2xWZlUxTlQvWTRkT3o1ZnYzNzkzNnFxcW9hbEx3aUNib1FicjRBcnBzSlV6V203UnljNEQ4Q0JmOE8vUDRBUG1xRjVTSVJxRGI1KzR5NSs0S21FR2N0dkZqVHlWc0pITHpBcTFFQ1FiL2VsaFE0bnA4dzJ1dXlTc3RNU3kzZXZmVGYvcTFlZUVHMGRnN3JKNWVQajQvZnpuLy84cVlzdXV1aG14UVZjcTlYaTYrdnJ1aEZpczlubzZPaHd4YngzT3AzaXhvMGIzLzNuUC8vNXhFRFhhYzU0UDlEK0FuN3hLL2hWSVB4d09COFQ4ME9VMjdvNjJjKytHeTNROGtmNDQxL2dMNzNsVXVxVFVOK3d4S1NNVzE1Zm80UzNtSlpvWXRHa0FDYkdHcys0c3lRNkpZNVdXZGwwcEpWOVpiSzVycjIrdENqM25YdFhlTnBhWTJOams1NTQ0b2sxU25pTGtKQVFZbUppbEN3MForemRtNXVicWE2dWR0MmVxNmlvS0hycXFhZFdlTnBhd3lIOFBYaHZOc2hoSFNaTWdKVXI0WkpMemd3WlhGY25Sd1ZmdFFxT0hRTWdCM0p1Z3B0Y01mSDdJOVEzTERGcDFpL2UzMlR3Q3drTDlkTnk1M25oVElyejdPRHVTS1dWdjIxcmtNMTI3WmJHWFgvNTJhS0JTSTJOalUzNjR4Ly91Q2t3TURETVlEQ1FtcHJxY1JvZ0piQzF6V2FqcGFXbDhWZS8rdFdpZ1VnTmgvQ3Y0ZXRrU01iUEQ1NS8zclBNTlpJRXExZkw1L0h0N1pSQXlZVnc0ZW1rQ3FkMzh6bjNmZnlkWDhUbzFJUlFBNDllRWpIb1lBVE5uU0xQZlZsUHVkbEdlMzFwMGM3WHJqMi9yKzd2NCtQajkrcXJyMzRYSHgrZjZ1dnJ5NFFKRXdhODhIV212Y0xHc1dQSDZPam9vS0tpb3VqKysrOC92Ni91cndmOVYvQlZCbVFRRXlON2o2U21EbTdRTFNxQ3l5NkQ2bXB5SWZkaXVOZ085bDZOSXhNdWZmajVpTFRNQzBMOXREeDVXZFNRSWp2NDZEVk1IMk5pVjBrSG9qNG9URzhLQ0tyUDM5SHJ2dmYyMjI5L1BpTWo0d0tEd2NDa1NaTUdUYVl5em9hR2h0TFEwSUNmbjErWXY3OS8wTjY5ZTN2Vjl4djR6VlZ3RlVGQnNyVjlzR1NDSEJWbjhXTDQ1Qk5pcmRaWUNhUnN5RDdESHVvYmxwaVVNR1A1elFCM25oYytyREFaUVNaNXFBQkltTEg4WnQrd3hLVGV1dnBGRjExME0wQnFhdXFReUhTekFaRGFUYzVGRjExMGMyeHNiRkp2Mjh2NzRYNEEvdlFuT1V2aVVKR1NJc3NBN29mNzNWTUF1UWdkblhuOW5ZSkdxNTJXYVBKNHpPd1BrK0tNVEVzMElXaTAydEdaMTk5NSt2T2xTNWZlcWRGb3RDRWhJVU5LblhiR2p4Z1VSRWhJQ0JxTlJydDA2ZEl6OU4wQmR4akJ5TXlac0d6WjhCZXR5NWJCekprWXdYZ0gzTkdUVUVFUVlxWXN1aHhnMGFRQXJ5MlVGVmt4VXhaZDdqNWRDNElnbkh2dXVaZkxxNVFZcitsVFpKMTc3cm1YQzZjdEQ2NkNxd0M0Nnk3djdRUzZaYmxrSzRUNlI0eE9OZmlIUnZqb0JTYkdlczhWWjJLc0VSKzlnTUUvTk1MZkxjSllmSHg4YW5Cd2NJUldxL1ZLNjNSdnBWcXRsdURnNEFqM0NHT2pZWFE4eEdNMHl1T2Z0N0I0TVJpTnhFUDhhQmo5QTZHUlNXa0FvMElOSHQrTjkyakMwTWdiQVhjZEFBa0pDV2tBdnI2K2czYXdIV0M3NnJMMEt6b0F4c040K1JlZTZKMXNYd3FNUmxtbW13NE5nTEkzVjNaQTNvUWlVKzltb0ZiMjVnWnZlTUgxTWtHNTZ3QTVSWVZyRitSdGRNdFVkUHhYK0RicFFQYm1IWVpUYjkvQ2RUMTBhQlNya2JJMzl6WVVtWW9PeFdxa0xNcTlEVVdtdTMrVHk2RGhCWWVLTTlBdFU5R2hBV2lyTzFFQWNNcHNPeU9vd0hBZ09pVk9tZVVYVkhRQWxKZVhGd0IwZEhSNDFlb25TWklyRW9TaUE2QUk1SHYxUjQvS1VScThCYWZURlVwWTBTRVRXbDlhWkdzejEzZlpaVU9IdDNDMHlrcVhYY0xXWnE1dmN3dE9VRkZSVWRUVTFGU3Y1RWZ5V205b2JrWVVSWnFhbXVyZGd4TWNoK010MEVKVEUremQ2ejFDOSs2RnBpWmFvT1U0SFA5aERKVWtxZnJRcHM4Qk5oMXA5Wm8rUlZiMW9VMmZ1emRGU1pLa0hUdDJmQTVRN1dZZUd5NFVXVHQyN1BqYzNRQXRndWc2US8vSFA3eEhhTGVzRGJCQk1lZTVKcVhTN0EvL0pqbEZjVjlaSjBjcWg5OUtqMVJhMlZmV2llUVV4ZExzRC85Mit2UDE2OWYvemVsMGloYUx4U3V0dExtNUdZdkZndFBwRk5ldlgzK0d2cmZnTFVDK20zVHc0UERKUEhoUWx1VXUyNTNRanNheUUrVzcxNzRMOExkdERjTUtLTmpjS2ZLM2JmSmdYYjU3N2J1OW1mQ3FxcXBPYk55NDhWM1pnRk0wckFuS1pyTlJWQ1QzOEkwYk43N2Jtd252RUJ4YUIrdHdPdUdPTzJBWWtjeG9iNWRsT0oyc2czV0g0RkN2MWliemlieWQwWk12dUZUVUI0VWRxckF5Zll4cDBKZS9GUE5kYll1RDl2clNvdjJySDc1WkVudDNVejU4K1BET09YUG1YT3JuNXhmVzFOUkVhR2pvb0M5L0tlYTdycTR1S2lvcWlwNS8vdm1iSFE1SHIvcDJ3YTZyNFdyL3hrWi85dTZGeXkrSHdmcjRkM2JDaWhXd2J4KzFVSHM5WE8rZUtLQ25zNWhvdDljWDVHeUpuWHJSOG5iUjRMdXJwSVBFTUNPUmdUcVB1L21MRyt1b2JYRmdhN2MwN25uNzlzdHNiUTE5aGdCeU9CejJmZnYyYlRudnZQT1dhelFhMzI0VDNJQVpFOTI3K2ZIangrbnE2cUtscGFYeDBVY2Z2YXkva0VNZDBLR1FxaXNyMC9IMTE1Q1o2WGx3NjhKQ1dMNGNjblBwZ3E3ZVl0bWYwUnpzbmMyVzJpTmJOMFNNblQxZjFBZUY3U2hxNTJTOURYOGZMZUgrV2pUQ21VY2dSeXF0ZkpCajRaUGNKanJ0RXUzMXBVVjczcjc5TWsrT1FGcGJXeTI3ZHUzYU1HM2F0UGwrZm41aDlmWDF0TFcxb2Rmck1ScU5mUjZCbkR4NWtyS3lNa1JScEtLaW91alJSeCs5ekpNamtHcW8zZzdiTDRLTGZPdnJmWG52UGFpdmg5R2oreWEycUFqKzUzL2d2dnVncG9ZR2FGZ095M01oOTR6dGI1Lzc4Si80SVYwMFJMOEdyeTJFSDFJc3BLYkMxS2s5RCtrT0hKQUo3Y1ptMkh3ZjNGY0ROYjNhRXdaUy9GTS9SczZFekh2Z25nV3d3TFZGUFgxb0FzY1cyUElHdk9GdW5SOFNvZTZtbkoreW8wTWdCRTZINldtUTV1N29VQUFGZTJCUEM0eG9ka2dWS240Y2VOVGxEWDRoWVZFVDV5OEpHVE50bG4va21MRUd2NUF3QUZ1N3BiR3Q3bVNoNWVTK1hiVkh0MjZ3dFZzYXZkTDlBZ1BEWnMrZXZXVGl4SW16RWhJU3hpbzVsbHBhV2hyTHk4c0xqeDQ5dWlzbkoyZERTMHVMVi9UcFFUOEg1c3lHMldOaGJDaUVBcGpCWEFpRk9aQ3pFM2E2SHhjUGlWRGZzTVNrc1l2dWZqUm02c1hMTmIxa0wraGhlQkZGUi9XQnI5WVdibnJ6dWFGT1RMR3hzVWszM0hERG8rZWRkOTV5N1FENlJGRjBiTnUyYmUzcTFhdWZHK3JFRkFJaDk4QTl0OEt0U2dEQlBxMTAwUEFQK01jYjhFWi9xZFNFdm1hRTVQTnUvV1hxNGwvOFRxc3pHQUdTSXVSVHpGSGgraDQrOXFjYTdPd3I2K1JFdmJ6L0Z4MDJhOUUzZi9sRHliWi8vTm5UaVVvUUJPR3FxNjc2NVkwMzN2ZzdnMEhXNSsvdlQwaElTSzgrOWhhTHhYVU4wV2F6V1QvNDRJTS9mUHJwcDM4ZXpFUjFKVno1Ui9pamk4aklTRGxKMVpRcEVOVjlLbHhiQzRjT3ljbXA2dXBjeFA0S2Z2VVpmT1lSb1JxdDNqRDF1djlaRlhQVzRtVUFVK0pNWERjcm1ESGgvUjlYbkd5dzhkR3VKZzVWeXY1TjFRZS9XWGZnbzkrc0hNaE5YSy9YRzM3OTYxK3ZtanQzN2pLQTRPQmdSbzhlN1ZIR3I5TFNVcHE2Zy94djM3NTkzWXN2dnJoeUlEZHhBWVJuNEprSDRBRUF4bzJUTDNGZGNrbmYxMnRFVWZadmV2cHB5SmR2MGJ3Q3J6d0dqNTBlRkV0N2VsTTUrL3FYM29rNWEvRXlyVWJnMW5QRHVEa3p4S003OUNHK1d1YW0rUkhzcStOZ2VSZCtVY25qL1NQSHBGWWZsczJDZmJYTVJ4NTU1SjI1YytjdUV3U0I1T1Jra3BLU1BEcHJNaGdNUkVaR1lqQVlhR3BxWXRTb1VlUGo0K05UczdPelArK3YzZ3Z3d24xd0h3QVBQZ2p2dnk4N2kvVjNOMHFqZ2JRME9jU1EzUTY3ZGpFVFpnWkM0TGZ3YlorRUpwKy84c0V4NTk1d3QxWWo4UERpQ09ha0RqN0hVWEtFZ2FSd0E3dE9kT0FYbFR6ZWFiZDJXVXIzOVpwRy9PcXJyMzd3aWl1dXVGc1FCTWFQSDA5RVJNU2c5Zm43KytQdjcwOURRd09qUm8wYWI3VmF1NDRlUGRxcnZ1dmgrbWZnR1FCZWYxMG1kRERHR0swV3pqOWZQcGpidUpIcE1QMFVuSEtQaTZkMW40Q20vZXhQSDJnMFd0MnQ1NFlOaVV3Rk1jRjZBazFhOXAzcUpDUXBmWGJWL28xclQ3OHpIeHNibS9TNzMvM3VBNjFXcTB0T1RoNFNtUXBNSmhONnZSNkx4Y0trU1pObVoyVmxyVDM5em53VVJLMkRkVVl3OHVpajhyNThxRGk3TzJUempoMmNCK2V0aHRXS2w3T3JuWTlkZFBlaldwM0JPQ1hPeE1JSnc0OERzbkNDUDFQaVRHaDFCdVBZUlhjL2V2cnpHMjY0NFZHRHdXQU1EZzRtV3Jsb05ReEVSMGNUSEJ5TXdXQXczbkRERFdmbyt3MzhKZ0FDbURZTmZ2T2I0YSsxZnZNYm1EYU5BQWo0RGZ5bWg0SFo0QmNTRmpQMTR1VUExODBLOXRvaVY1RVZNL1hpNWNyYVZWbG5ubmZlZWNzQlJvOGU3VFY5aXF6enpqdHZ1YkoyQmZBSC94dmhSZ0NlZmRZN0tZQzBXbGtXY0NQY3FBVEQxZ0JFVFp5L1JLUFY2cElpakFQTzVvUEJtSEFEU1JGR05GcXRMbXJpZkZjbzlkbXpaeS9wRGxZOXJGeDBwOFBQenc5L2YzKzBXcTF1OXV6WkxuMFh3OFVtTURGMkxNeWQ2NzF0MGR5NU1IWXNKakJkREJlN0NBMFpNMjBXeUs3ZjNvWWlVOUVCTUhIaXhGbUFLekdmTjZISVZIUW9GaVhBRldmSnEraVdxZWpvOW0wYU14WmdWTGplNi9vVW1Zb09nSVNFaExIS0RPMXRLRElWSGVEbTJ6UnRtdmNKN1piWnc3ZEpHZCs4R2JQSmZYM3Fya01aUTdzWDlWN1hwOGgwSDBOZHU2RVI5RzFTZFB4MytUWnB2ZDlnRkprOWZKc1VLNUUzWXpZcFVHUzZXNklVSzVFM1l6WXBVR1M2VzZMTUlJZkxxYS8zUHFIZE1oVWQzYjVOSndzQlRqVjQvd1VWbVlvT2dQTHk4a0x3YnN3bUJZcE1SUWZJS2N3QjF6MGpyNkpicHFKREEyQTVLVzhObFl0YjNvUWlVOUVCb0d3TmxZdGJYdTBSM1RMZHQ1KzdZVGNBbXpaNW45QnVtWW9PRFVEdDBhMGJuS0xvT0ZGdjVXU0Q5MXdNVHpiWU9GRnZ4U21LanRxalcxM3hPWEp5Y2phSW91aG9hMnNiVmk2NjNpeFFiVzF0aUtMb3lNbkpjZW5iQUJza2tNakpnWklTNzVGWlVnSTVPVWdnS2I1VHJqRzArc0JYYXdFKzJ0WGtOWDJLck9vRFg2MDlmUXpkdG0zYldvRFMwbEt2NlZOa2JkdTJiYTM3R0ZvSmxSdGhJNUlFenp6alBVS2ZlUVlraVkyd3NSSXFlOHp5aFp2ZWZFNTAyS3lIS2p2WmZHejRZOXZtWTIwY3F1eEVkTmlzaFp2ZWZPNzA1NnRYcjM3T1pyTlptNXFhcUttcEdiYSttcG9hbXBxYXNObHMxdFdyVjUraDd6bDR6Z2xPMXE1MVpUd2NGdGF2aDdWcmNZTHpPWGp1REd1VHZiUFpJb21pSTN6c3JQTVBsbmVSRkc0Z0puaG82OFQ5cHpyNXkzZU5TQklVYm56dDZicGozNTJSYnF5MXRkVWlpcUpqMnJScDV5dDU2RXdtMDVESFRjVlo3TjEzMzMzNisrKy9QME5mRGRRRVF1QU1tTUdtVFhKeXY2R3VTL2Z2aDJ1dkJadU5OK0NORCtIRFh1MmhsbFA3dncrSVNoN25GNVU4ZnRlSkRnSk5XcElqRElOdW1YLzVyaEhSS1ZGOThKdDF4OWEvOEp1K0o4aGozeWNtSm80Yk5XclUrSWFHQnZSNi9hQjNUelUxTlJRVnlXNEIyN2R2WC9mV1cyLzFxVzhIN0pnRGN4SnR0a1RXcnBXUE81S1RCejhKWFhVVnRMYVNEZGwzd0IzdVY3M1BXT25XSHQzNnBYL2ttRlMvcU9UeCswNTFVbGh0SXlGTVArQXU2bVNEalRlM05MTHhTQXVTOU1NUmlPVHNQM25tOTk5Ly8yVjhmSHpxcUZHanhsc3NGbHBiVy9IejgvTW9hMkpSVVpITHlWWTVBaEhGdnZXSklLNkg5Yk5nVm9MTmxzQy8vaVhmaDU4MmJlQ3NpVFUxOGszazMvNFdiRFp5SU9jcXVNcmQ4dzcrU3cvcGZNRG5CWGhoSmF5VTk4VUd1UGhpdVBEQzNnL3B2djRhdnZwS0R0VUdySUpWajhBalhYQkd2S2ovNm1QazJURDdLWGhxRnN6eXBQd3UyUFVFUEpFRE9YMDJEazhFL2RRZEhTYkQ1TXZoOHY0Y0hUNkh6ejNOcWFUQ2kvRFkrODRZR0JGdERBaVAwdnNFOUxqdGF1OXFiYmEyTnRSYVcrcHJ2UG5GUWtORG8wTkRRNlA4L1B5Q1RwdU1tczFtYzYzWmJQYXFQZzFvQWlFd0NIcm9hNGJtRm1qeE5CVmx2NFNHakprMkszSEdWYmRFanArNzJPZ2ZGdGxmV1d0YlkxM2Q4ZTNmbE8zKzlCMzNmZnRnTUhIaXhGa1hYM3p4TGVlY2M4N2lrSkNReUFIV25uVjc5Kzc5NXF1dnZucW5yMlBqZ1pBSWlUZkNqWXRoOFdTWTdBTzkrcUozUWRkaE9Qd05mUE1CZkZBR1pZTWkxRGNzWWN5a0s1OTROVEl0MCtYZHE5RUloUGhxQ2ZEcGFVSnQ3WEppNlJCeHV0M0FxeXZJM256a3M2ZnU3MmdzUCttWmpUWm16SDMzM2ZkcVJrYkdRcmVaSDRQQmNFYlNGWWZEZ2MxbTY3R0F5TTNOM2Z6YWE2L2RYMTFkN1pHK1lBaCtCcDY1Qlc3Um5yNTBQUDI2K1dsWGZrUVEzNEYzSG9QSG1xQnBRRUlqeHAyN2FOcU5mLzVBNytNZnFORUluSmZteDl3MFA5S2lqSDNtVm5LSUVnVzFWcllYdExPdG9CMm5VOExlMWRheTc0TmYzdGhYdkJFRjU1eHp6cUxmL2U1M0gvajUrUVVLZ2tCa1pDU1JrWkVFQmdiMmVmVmJraVJhV2xxb3E2dWpycTRPU1pKb2IyOXYrY01mL25CalgvRkdGSndGWjYyRnRmRVFEOGlPQzlkZEoxOWVTRXc4MDRQRTZaUVRVMlZudzBjZndYZmZBVkFCRmN0aCtlbFp2NFRUeVR6bjFyK3UxV2gwK3JRWUkvZk1EeU02YUhEYno1cG1PMjlzYmFTZzJvclQ2YkR2L2NkZHkvc2k5Wnh6emxuMDlOTlByOVhwZFByQXdFQlNVMU1IdmYzczdPeWtxS2lJbHBZV0hBNkgvZkhISDEvZUY2bG53OWxmdzllQkVFaHlNdnp0YnpLUmcwRjJOdHg1SjVTVTBBSXRGOEtGKzJIL0dZVDZoaVdNT2ZmQmYzK3Y5L0VQbkozaXg3MEx3Z2FkN2N1OXhiNitwWkdjNG5ic1hXMHRPLzUweGN6VHUzOU1UTXlZdi83MXI5LzcrZmtGaG9lSER5bmJsM3VMTFNnb29LR2hnZmIyOXBhNzdycHI1dW5kUHdJaTlzQ2VhSWptM0hQaDAwL1A3TjZlb3JsWjNuN3UyRUVOMUV5SDZVcVFWbGY3bm5UbEU2L3FmZndEMDJLTXd5SVRRS2NWdUhkQkdHa3hSdlErL29HVHJuemkxZFBMM0hmZmZhLzYrZmtGQmdZR0RvdE1aYnhOUzBzak1EQVFQeisvd1B2dXUrOE1mUy9CUzlFUXpmanh3eU5UR1djLy9SVEdqeWNhb2wrQ2w5eFdDL0pzSHBtV3VWQ2pFYmhuL3ZESWRDZjFudmxoYURRQ2tXbVpDMDgvbDgvSXlGZ29DQUtwcWFsZUNaUGhMaXNqSTJPaCs3bjhKSmgwRFZ5RElNZ1hYcjBSNXlRb1NKWWxDRndEMTB5Q1NTNUNFMmRjZFF2QWVXbCtneDR6KzBOMGtKN3owbVRQRUVVSHdNVVhYM3dMUUdSazVKQk5kcjNCWkRJUjJYM0hTTkVCNE5xelgzSEZENDVlM3NEWlo4c3kzWFJvQUNMSHoxME1NRGZOZTI0eENoU1ppbzd1eVdpeFFxaTNvY2hVZEFCY0JCY0I4TE9mZVg5cjFDMVQwYUV6QmtaRUcvM0RJalVhZ2JRb285ZjFwVVVaMFdnRWpQNWhrY2JBaUdnL25VaElTRWlrSUFnRURqWUZwR2QyQUFSQklDUWtKREkwTkRRYXM5bVdDSWxvTkhEdXVkNG45Tnh6UWFNaDBlbE1ESVZRalRFZ1BBcGtEdzl2akoyOWphV0t1YzhZRUI0Vkdob2FKVnZNREY0Tk1YVDZocUI3K3hybFdtOUdSNE92ci9jSjlmVjF4YjJQaDNpTnNqYy9mUWZrVFNpeTlUNEJRY3JlWERjU0VXcVVIN0ZidHArZlg1QnJiKzdGWklLOUdCN2tlUXFDZnZLdU9JS3kxdGFNNEt0Mnl4WkErTy9MU1RmQ1VBbjE5bkJqNzJwdFZxeEdJd1ZGdHIycnRibGRzTHVzUmlNRlJYWjdlM3V6SytwM3l3aGVKdTZXM1FxdE9tdHJReTNJQjI0T1VmTDZUTzhRSlpjSG5yVzFvZGJjSFJ4R01jRjVlNmFYSk1rVkVNWnNOdGRhbGFRcFZWWHlCUzV2dXpTS29pd2IrWmFkeHRwU1gyTnRhNnh6T21VVG5MZFJVR3ZGNlpTd3RqWFdXVnZxYTh4bWM0M0ZZcWxUVEhEZWJ5d3RTSktFeFdLcE01dk5OUlZRMFFSTjJHeXlnNEszc1g4LzJHdzBRVk1GVkdnQTZvNXYvd1pnZTBHNzEvVXBNaFVkQUh2Mzd2MEdvSzZ1enV2NkZKbUtEZ21rclNCbjlmdmtFKzhUMmkxeksyeVZRTklBbE8zKzlCMkFiUVh0MURSN3owZTBwdG5PdG01Q0ZSMEFYMzMxMVR2S3kzZDJlcytGc3JPejAwV29vZ1BnZlhnZmdILytVejVyOXhacWEyV1pianBjL3FGMUJkbWJuVTZKTjRhWTNLKzNzZk9OclkwNG5SSjFCZG1iVC9jUHpjM04zU3hKa3N1TnhodGpweUlyTnpkM3MvczUweWJZbEF1NXRMZkR2ZmZpdGNTbDk5NEw3ZTNrUXE2U0FjdzFRbHRLOTM4ZmY4NnlHeTFkV21OMXM0TnpScHZRYUlabllENVExb205cTYwbDk1OTNMYmQzdGpTNWx6bDI3TmozaXhZdHVsR1NKR05uWnlkaFlXSEROakJiTEJiYTI5dGJIbi84OGVWdGJXMDk5TzJEZlQrRG4ya0xDN1cwdE1BRkZ3dzlUN0lreVRmcFB2Z0FHOWl1Z3F1VUtEbHUzbmN0VFMxVnh3L0ZubjN4OGdxTHFEMVMxY1dFV0NQK1B0cEJkL01YdjY3blFGa25UcWZEbnZmdXZkYzJseC9PTzcxY1cxdGJVMGxKeWFGNTgrWXQ3K3JxMGpZM054TVlHRGpvbXlHZG5aMGNQMzRjaThXQ3crR3dQLzMwMDljV0ZCU2NvYThXYWl1aDhsSzRsRDE3NUd2YTU1OFBnelVmV2l4dzIyM3c3cnNBM0FWM3VlZW42OEZXUjBOWlNWUDU0YnlvaWZNdnNYUnBqZDhjYmFPaDFZR3ZVVU9vcjdiUEZ1c1FKWTdYV1Brc3Q1bS9iVFBUME9yQTN0WFdrdmZ1dmRmMmQwaFhWVlZWVWxoWW1EZHo1c3hMSkVreTF0VFVZTFZhMGVsMHZRYkJjbStSTFMwdGxKZVh1M0o2dHJlM3R6ejk5TlBYOW5kSWR3Z09WVUxsaFhDaDV2aHhEZSs4STEvWFRrd2MyT2hjVmdaLy9hdWNPWEhmUGh6ZytBWDh3alUrLzdEVjdjV0E4aE0vUnA0TzAvOEtmNTBBRTF3ZkppVEl4SjV1UkRHYlpUTEx5MzhZcnVEWVhYRFhIdGpUaSsyZ2IveVVIUjEwb0ZzT3kyK0JXK2JBSEcwdnJwMDkxdThnN29TZDc4QTdhMkd0QXh4OUdHTTh3MC9aRmNjZi9DZkN4Q2lJNnMwVnB4WnFqOEpSOXh6SS9WaTNlb2NwSkRZeExQbWNUSitncURpTjN1aFJ1RVNuM2RyVjFWeGIyVml5Tjd2VFVsVTJtSmVLaW9wS25EeDVjbVpFUkVTY3dXRHdTSi9OWnV1cXI2K3ZQSHo0Y0hadGJlMmc5Sm5BTkEybXhVS3NDVHlhbVRxaHN3cXE5c0crVHVqMGlORFFwSXpNOFVzZWVqWmtUUHJzNGZ6cWxwTjVPY2MzdlB4Nzg0bmNmbVBGVFo0OE9YUGx5cFhQVHBvMGFWajZqaHc1a3JOcTFhcmY5NVpiM2gxSmtQUUVQSEU1WE80cGtiMFIremw4L2hROGRRSk85RTZvSUFqakwvblZzOGtMN25nWTVDd0phZEVHNG9MMUdIV2VqUXhXaDBSbGs1MkNtaCtpalpkc2VldWw0MS8rOGZlbnI5NEZRUkJXcmx6NTdJb1ZLeDVXSnFIQXdFQjhmWDA5VGpidGREcnA2T2h3N2Q4QjFxeFo4OUtxVmF0KzM1czM4KzF3KzUvZ1R3YVF6MGppNCtXb09KNHVuVG83NWVWV1JZWGNROEQySUR6NE5yeDlCcUhqbHp6MEI0WE1oUlA4V1RFamVNaTNreTBkSW10Mk43bXU1NVJzZWV1bDR4dGUvcDE3bWR0dXUrMFBDcGt4TVRFa0ppWU9PZk9DeldhanJLek01VysvWnMyYWwvNys5Ny8zMFBjTCtNV2Y0YytBSEovcG1XZUdmdDE3M3o1NDdERTVuaFB3Uy9qbFgrQXZyblZvYUZKRzVsa3JubjhiNFBaNW9WdzdJeGlUZnVpMlo1TmV3emxqZkFueTFaSjNxcFBRcEl3NURVVzd2bFBHMWNtVEoyYys5TkJEYndPa3BLUXdhdFNvUVljS2RvZVNwTXBnTUdBMm01azBhZEtjL2Z2M2YxZFhWeWZyZzhtZndDY2EwUER3dzNKK3VZR3lkZmUvenBNZHpLeFd5TW5oQXJoZ1BheXZnem90d0xRYi8vUytLU1EyWWVFRWY2NmRFZXkxbVRvbDBvaTVYZVJFdlEzL3lER3BTdERzMy8zdWQrOUhSa1lteE1URU1HclVLSy9wQ3dnSWNGMXNpSStQVC8zNjY2L2ZCZmc3L0QwTjBsaTZWSFlRODRZTlZoRGszUFNIRHFFcEtOQWtRdUlhV0tNeGhjUW1ob3hKbjYzVkNLendJcGtLVnN3SVJxc1JDQm1UUHRzVUVwc1lGUldWT0duU3BObUNJSkNZbU9oMWZZbUppUWlDd0tSSmsyWkhSVVVsUmtIVWhYQWhnZ0F2dnVnZE10MUo3Wlo1SVZ3WUJWR2FzT1J6TWdIU29nMGpGdEVoTFZvZUc4T1N6OG1jUEhseUpzZ09DU09WclVaeG9KZzhlWExtWEpncmdFQkdCaVFsZWQ4ZW1wUUVHUmtJSU15RnVScWZvS2c0Z0xoZzc0ZXJVS0RJOWdtS2lvdUlpSWdEWEhtUFJnS0s3SWlJaUxnRVNBRGtjR3dqaFc3WkNaQ2dVeGJ0bmk2TmhnSkZ0a1p2OURFWXJOMjJnWkU3Y0ZWa0d3d0dINWUzMWdpNC9YQ2FiRC93VTQrUnZmMWpxaFNvaEtxRXFvU3FVQWxWQ1ZVSlZhRVMrcjhBbmROdTdRTFpPRHhTVUdRNzdkWXV4VFBPNlJ3NTkwbEZ0czFtNjdJcGphYXJhK1JZN0padEE1dXVxN20yRXFDeXlUNWkraFRaWGMyMWxmV0M3T3VrNU44Y0NTaXk2K3ZySy9WS1pNYVRKMGVPMEc3WjFWQ3RheXpabXcxUVVHUEQwaUY2M2VKazZSQXBxSkZiWldQSjN1ekRCdGsvdEtXbEJadk41bldMazgxbWM3bEpIajU4T0xzQ1pFdEpkclo4UjlPTDJjSUJXV2EyZkl5MUIvWm9PaTFWWlphVGVUbWlVMkxON2lhdi8zaHJkamNoT2lVc0ovTnlPaTFWWmJXMXRXVkhqaHpKa1NTSnNySXlyK3NyS3l0RGtpU09IRG1TVTF0Ylc1WVArVWZoS0YxZDhQTEwzbStkTDc4TVhWMGNoYVA1a0s4Qk9MN2g1ZCtESE1UcWF5OG1TdjM2U0t2clhFblJBYkJxMWFyZmc1elkxTnVKVWhWNWlnNkF4K0F4QUY1NlNVNUI0UzE4K2FVczAwMkhGcURUVWxXbTFSdDlRcE15NXVTZDZzVGNMcElTWlJ6eXVaS2xRK1RkYkF1ZjVzclJFRXEydlBXU2N2d0JVRmRYVjJZMEduMG1UWm8weDJ3Mlk3ZmJsZWplUSs3bVN0SS9rQS9wbEp5aEFJVlFtQVJKVXlScENtdlh5aG0zMDlNSG40SlNRV2NuL1BHUDhJdGZnTlBKaC9DaGNpUDV2K1lZMlFDR2QrQ2RxK0FxQUNJaVlORWlPY2VIcDhidWpnNG9LSkREdFhWSHR2MFVQcjBGYnJHQnJTZWgzZmlwT3pwY0I5YzlBOCs0TFBsRFJEbVVQd2FQZlFRZjlXZ29mVlg0S2J2aWFFRTdCK1prUXVaUVhIR3lJWHNuN0hRUEl0ZzdvWUlnUktUTnVTQnkvTHdMVGNHeENjSUE0ZEw2Z2lTS2pzNm1xdks2NDFsZjF4ZnMvTFl2bjI5QkVJVDA5UFFMWnN5WWNXRmtaR1NDZG9qNlJGRjAxTlhWbGUvZXZmdnJ2THk4Yi91TGdaY0dhWXRoY1R6RTk1VjJjaUE0d0ZFQkZkL0FOd1ZRMEN1aGZoR2pVNmY5N0pYVndRbVQwcjI1cW1ncVA1SzM3LzBIYm1oM3l5OFBFQjhmbi9yNzMvOStkVnBhbWxmMUZSUVU1RDM3N0xNM3VPZVhCem5PL0p2dzVqSlk1azE5NjJEZDNYQjNBelM0Q1BXTEdKMmErY0NuT3d4K0llRytCZzNuamZObmRMZ2U3UkRQc0VWSm9yVEJ6cmI4Tmpwc1RtenRsb2JzVjY0NlZ5RTFQajQrOVkwMzN0Z1JGQlFVcnRWcWlZeU14TS9QYjhnSGQwNm5rL2IyZHVycTZoQkZrZWJtNW9aNzdybm5YSVhVS0lqYUR0dVRJUm10OW9jb2pFT2Q1ZTMySDZJMmlpSWxVRElYNXRaQ3JZQWdDT2MrK08vdmd4TW1wYWRFR25sMFNhVFhka3VXRHBIbk50UlJYR2VscWZ4STNvNC9YVEZUQVA3NjE3OStuNWFXbGg0UUVNQ0VDUk84dGx0U01ubTN0clpTVUZDUWQ5ZGRkODJVSkVuYUNCc1h3a0tTa21EZE9wZzB5VHZOODhnUldMWU1UcHhnTTJ5K0NDN1NSS1ROdVNBNFlWSzZyMEhqVlRKQmRuSjRkRWtrdmdZTndRbVQwaVBTNWx5UW5wNStRVnBhV3JwV3EvVXFtU0E3T1V5WU1BR3RWa3RhV2xwNmVucjZCVE5oNWtKWWlORUlHelo0ajB5UVpXM1lBRVlqQzJIaFRKaXBpUncvNzBLQTg4YjVqNWpueUhuajVPaXhrZVBuWFRoanhvd0xBVmMrT1c5RHlWVUhNR1BHakFzdmc4c0FPV2J5MkxIZTMzcU9IU3ZMQmk2RHl6U200TmdFZ05IaEkrYzVvc2cyQmNjbVJFWkdKZ0JlemFOME9oVFprWkdSQ1dOZ0RBRFRwNCtjdGFsYjloZ1lvMU9XUmxwaDVEeEhGTm1DVnF0VHRwYy9odWVJVnF2VnVmcUEwVGh5aEhiTE5vQkJ0ZGg3KzhkVUtWQUpWUWxWQ1ZXaEVxb1NxaEtxUWlWVUpWUWxWSVZLcUVyby8xZlFTYUxvQVBuWVlxU2d5SlpFMGFFazVQb3h2TzlFVVhRNGxVWWppaVBIb3ZKTzROUjFObFdWQTVRMmpKejNuU0s3czZtcXZLNnVDY0NyK1R4UGh5SzdycTZ1UEZTNUcxOVlPSEtFZHN1dWhtcE4zZkdzcndHMjViZU5XRzdrYmZteWYxUGQ4YXl2ZCsvZS9YWDN5N3FpS0hvVE5wdk5GYTV0OSs3ZFgyK0JMUUI4OEFHMHRucWZ6TlpXV1Rhd0JiWm82Z3QyZnR0VWZpU3Z3K2JrdVExMVhpVlZPYVRyc0RscEtqK1NWMSt3ODl1OHZMeHZDd29LOGtSUjVOaXhZMTRsVlRta0UwV1Jnb0tDdkx5OHZHODN3SVlpS0tLMlZqNnE4S1pmYWtlSExMTzJsaUlvMmdBYi9pdU9rYytCYzdiQ1ZoT1lHRDBhN3I3Yk84ZkliNzRKcGFWMFF1ZDhtTDhYOXY3WE9Eck1nbGtmdzhldU1PeGVRZ1ZVWEF2WDdvSmQ4Ri9taW1NQzB3MXd3NFZ3WVFJa0RNY1ZweHpLdjRhdlY4TnE5NUJETGtMMXBzRGcwWmszM0JVNWZ1NWluNkNvV0VHakhWYWdlY2twT3JxYWE2dnFqbS8vcGpSNzlWOVBqODdvNys4ZmZQbmxsOTkxempubkxBNFBENDhkS3BudXBEWTBORlR0M2J2M204OC8vL3l2cDBkbjFJSHVLcmpxUXJnd0ZtSUhpaVEyb0Q0UXE2RHFhL2o2VS9oVWlUUW1BQVRGVHp4N3hoMnIvbU1Nakl4aEJHQnRxYXZlL2RiS1M1c3JqdTRIU0UxTlBmdUZGMTc0VDJobzZJam9NNXZOMVk4ODhzaWxSVVZGK3dGR3cralA0ZlBKTUhrazlCMkd3NWZENWFWUUt1aE5nY0huUC9yTkVXTmdaRXg4aUo0cnB3VVJINnBIcHhuZXNiTERLVkZodHZQWnZtWXFMSGFzTFhYVjN6MjNlSkpSNitTOTk5NDdFaG9hR3VQcjYwdENRZ0srdnI3RERtNHRTUklkSFIyVWw1ZlQwZEdCMld5dXZ1bW1teWFKYlczV1hNZ2RCK09JaUpBbnBBa1RoajRodVU5TXg0N0pFMU45UGZtUW53RVp1dEdaTjl5bGtQbmlWVEg0ZXZGa09UWEt5SXhrWDM3OWFUVVZSTWFNenJ6aHJobFJMU2hrVHAwNjFhc3BMQUlDQWdnTEMrUEFnUU1BTVpkZmZ2bGR3YXRYdDQ2RGNjVEZRVTZPSFB6S20vajV6MkgyYk1aVlZvNjdGVzdWamwveXEyZE5vWEdqYnBrVHl0aG83enNENkxVQ0pyMkczU2M3MEdqMStrV1RnbEtpb3FKR0pTVWxqVWkyR28xR2cxYXJwYkd4RVoxT3B6LzM2NjlUeDhBWW5uOWVUb0h1YlFRR2dvOFBmUFVWUmpEcWZJS2lZZ0hpUTBmT0ZVZVI3Uk1VRlJzZUxtOGNmb3dnTHVIaDRiRUpTb0xUb1VZUjh3VGRzaE1nUWFmTTVzTWRNL3Uxd0hUTEZqUS91T0lJSStqNm84aFdYWEZVZTZnS2xWQ1ZVSlZRbFZBVktxRXFvU3FoS2xSQ1ZVSlZRbFdvaEtxRXFvU3FjSU5PY3NyT1lnN255RG1MS2JJbDV3L09ZdElJT3FjcHN2ODNuTVUwWGMyMVZRQVY1cEZ6RmxOa2R6WFhWalUwTkZUQmp4T3FyYUdob1VwSnZzZUpFeU5IYUxmc0dxalJLQWxNUDl2WFRJZk4reTZHSFRZbm4rMlQ0emZWSGQvK2paTEF0THk4ZkVUeUl6c2NEc3E3MDUzdDNidjNtKzJ3SFlBLy94bEd3RGtObTAyV0RXeUg3VC81WStTQXRqYlRNVGdXQ0lITW13ZFBQT0hkWStTbm5vS3NMRnFnWlFKTStLOXdkRmdJQzlmQ1duL3dId2w5YmRDMkhKWnZoczMvTmE0NHlaRDhhL2oxWWxqc1RWZWNiK0NiRitIRkVpaUJibWNwUWFQVkpjNjg2cGJZcVJjdDl3MUxHT090STBtRFgwaTR6dWdYNEhSWXUwNWt2ZnU2c3FMUWFyVzZpeSsrK0paNTgrWXRqNG1KR1NONFNWOVFVRkM0cjY5dmdNMW02L3Jzczg5ZUY3dmQzUUdtd0pSd0NEZUQyUUlXcjZ3bVFBcUg4Q2t3UlNGVUVEUmEzZlRiLy81RjFQanpMaHJKOVZudDhXMGI5N3g5MjJVYUFaNTc3cmt2WnN5WU1hTDZkdS9ldmZIUlJ4Kzl6Q21LNHQvZ2I3ZkJiU09wNysvdzl6dmhUaUg1L0Z0L09mSHkzLzNScUJOWU9UZVV5ZkVtdkhWRTc1VGdjRVVucTdhYnNUb2tqbjcraDErbFI3Unk5OTEzLzFHajBaQ1Nra0p3Y0xCWFg2eXBxWW5pNG1LY1RpZHZ2dm5tcjB5ZmZHSitCOTVCcTRWSEhwSFQ5M29yUElmVENkOTlCeSs4QUtMSUxYQ0xMajdqOGhzQVZzNE5aZUhFQUsvL2N0RkJzc3kvYkcwa1B1UHlHeGFPbFplRktTa3BSRWRIZTE5ZnQ4ekN3a0lXTGx4NHc4UlBQcEhUNHp6N3JKd2cydHVZUHgvOC9lRzN2K1VPdUVQakc1WXdCbUJ5dkduRXVvTWkyemNzWVV4TVRNd1l3T3N0MHgySzdKaVltREZqUVk0dGRPV1ZJOWZmdTJXUGhiRTZaUUlhUVUrY0gyUUxnakNTTGppblF4QUV3VFdiZTlITDc4d052Q3hiQzFyVk9LSmFtMVJDVlVKVnFJU3FoS3FFcWxBSlZRbFZDVldoRXFvU3FoS3FFcXBDSlZRbFZDVlV4UkFKN2Zhc0drRmZzUjlrU3pKK3JKZjdNWFc1Q08xb0xEOEo4dW5rU0VHUjNkRllmcks2dXZva3lLZVRJd1ZGZG5WMTljbEtxQVJnNzk2Ulk3RmJkaVZVNmlweVAxOGRGRC94N0ZYYnpRQWpkb3dNVUpINytlck5wMXBKVFUwOXU3aTRHR0RFanBFQk5tL2V2TG9DQXArQUo3am5IZ2dKa1U4cHZYbU12SFVyM0hNUElPZW4rOGs3T3ZpSW9qRUxzcWJCdEpIVXR3LzJ6WU41QXNpdU9FbnpicjQzUHVQeUc3enBpb01rU1IyTjVTY3JjajlmZmJvcnpwVlhYbm52d29VTGIvQ21LNDRrU1ZKMWRmWEp6WnMzcjNaM3hRbUFnR2ZnbVJ2aHhoQUk4U2FSRnJCOEFCODhCbysxUXFzT3dCUVNteEF5ZXRvc3Y4Z3hxVHFqbjFlOUhmeTBPbDNJNkdtelRJYzJmYTZNMTVHUmtRa1RKMDZjRlI4Zm4rcnI2K3RWZlZxdFZqZHg0c1JaTzNicytGd1pyM1dnczRHdEVpcGJ3YXNSQlZ1Z3hRWTJKYWlXNEJ1V01HYnVRMS9zTWZpRmhJOWtsN0MxV3hxMnYzelo5Q0NEZzdmZWVtdFBVRkRRaU9wcmJtNXV1T09PTzZZN3FxdmJjaUFuQlZKR1VsOHhGTStHMmJvSlN4LzVINE5mU0hoeWhJRzc1NGNSRStUZFlDN1Z6WGJlM05wSUNTSGhFNVkrOGorWGptNGdLQ2dvM04vZm45VFVWRXdtNzNxc2RIWjJVbFJVQkJCKzU1MTMvay9jRTArMHBFQUtZOGJBaXk5Q2lwZDVMUzZHWC8rYWxKTW5VNTZINTRXTFh6clNvalA2QmZ6eG1oaFNJa2NtMEVseG5aVmYvYXNhaDdXOTlkNUo1Zmo2K2dhY2ZmYlpCQVFFaklpKzF0Wlc5dS9mVDBkSFIrczVGMTFrQzRNd3Z2c096anR2WkpybnRtMXcvdmswUXFOT0dUTzkzVExkb2NqV0dmMENsQkJBM202WjdsQmsrL3I2Qm9RcEg1NTExc2oxOTI3WllSRDIzN1AxSEVtZktqZlo2bDVlTlk2b2hLcUVxbEFKVlFsVkNWV2hFcW9TcWhLcVFpVlVKVlFsVkNWVWhVcW9TcWhLcUFxVjBQOFRoRHFzN2EwZ24wNk9GQlRaRG10N2EwZEhSeXZJcDVNakJVVjJSMGRIcXl0NVZGWFZ5TEhZTGJzVE9yVkI4UlBQRG9oSm5WaFNaeU01MG9CUnA4RXVTbDc3S3pQYmVITnJJNVlPa1pyRDM2NzNieThxSGoxNjlNUzJ0amI4L2YzUmFyVTRuVTZ2L2JXM3QxTlVWSVROWm1QbnpwM3JIZHUyVmFkQUNzWEZjT0dGNE9mblhUTHI2K0dPTzZDa2hDMnc1U2Z2NkJCVlhSMlVBemtta0k5Q2c0SzhyY2pWT21mRGJLMjlzNldwNnNCWGEzMkNvbUpOb2JHSkdwM0JxNGZ6RG10N2E4M2hiOWZudm5QUE5SMk41U2ZiMnRxYXRtM2J0alk4UER3Mk1qSXlVYS9YZTFWZlIwZEg2ODZkTzljLytlU1QxMVJYVjUrc2dack5zSGtxVEkyRE9LeFd2UG9IN0lXOVY4UFZlWkNuQTlEN0JBVHBUUUZCR3AzUngrdUR0TTdvb3pjRkJPbDlBbHhOdzgvUEw4alB6eS9JWURCNFhaL0JZUEJSNUx2R2NLamVEL3VESWRpZ1pLTDFWczhEMjM3WVh3M1ZBRUpRM0lTcG1ROStscVBWKzVoR3NndUs5cTdPN0Q5ZE9UdkNaT1BOTjkvTU1ScU5JNnJQYXJWMjNuMzMzYlBGNHVMbTcrSDdTSWdjU1gxMVVEY1RaZ3F6N243L200aHg1eTZhRk9mRFhlZUhFUi9pWFErU0NvdWR2MzdYeUpIS0x1cnpkMnk2TXFtT2M4NDVaMUZRVUJDcHFhbGVUMVRWMGRGQlVWRVJ6YzNON04yN2Q5UG9oeDVxdlJLdVpOSWtlT2tsR0RmT3Uwem01OFBERDhPUkkzd0dud2xML2x4azAyaDErci9jRU9kMU10MUovY1hxU3B5aXcvN0xLV1hvZERwOVJrYkdpR1g5NnVqb0lEYzNGNGZEWVorMVlJSERCQ1p5Y3lFOWZXU2FaMTRlWkdUUUNaMDZqVmFuQjBhTVRJQzRidGthclU2dkpQWDdNVktvNlhRNnZRbGs1V2VmUFhMOWZlcFVRRTdFK3FQc2xINjhTRTM5elk0aitLcGFyYnIxVlBmeUtxRXFvU3BVUWxWQ1ZVSlZxSVNxaEtxRXFsQUpWUWxWQ1ZXaEVxb1NxaEtxRXFwQ0pmVC9GcUZPMFdFSCtTQnRwS0RJZG9vT3U4TWg2L3N4a3Z3NUhBNjdDSEpLdzdLeWtXT3hXN1lJb3FheGFOZDNBSC85cnBFS2l4MXBCTWo4NjNlTkFEUVc3ZnB1Ly83OTN3RVVGUldOQ0tuS01UTEEvdjM3djlzRGV3QjQ2Q0ZvYS9NK21XMXRzbXhnRCt6NXlUczZKQlFYaDN3TDMycEFnMVlMY1hIZURVWlFVUUdpaUJPY0Y4QUZXbXRyZlUzZDBlKys5QXRQVERLRnhDVUtHbzNXbXkvbUZCMzJoc0tkVy9MZXZlL2E1c3BqQjh4bWM4MnVYYnUrakkyTlRZcUtpa3JVZUZtZncrR3c1K1hsYlhucXFhZXVMUzR1UGxBS3BYdGg3emx3VHBna2hkSGNqRmYvSklsQ0tQd1ovR3d6Yk5ZQk5GY2VPMUM4OWUyWDdaMHRUWDdobzFJRWpkWXJMeWs1UmJHOTRWVHhxVjFyVmpWWEhqdWdmRjVjWEh4Z3pabzFMN2UxdFRYRnhjV2xlSXRVcDlNcFZsWldGbS9Zc0dGVmNYR3hTOTlHMk9nQXgwcFltUUlwdzAzdzUrcDFJQlpEOFNwWXRSazJRL2VSK2JpTEgzeDY3SVgzUGphU1hiRHc2OWVmeWYvcVQ0OEQvUHpuUDMvNnBwdHVHbEY5NzczMzNqUC8vT2MvSHdkNEdwNStERVpVM3pQd3pPUHd1QkF4TG5QaHJMcy8yQVN3NUt4QXBvOHhvZlZTTkVIUktiSG5aQ2NiRHJZQXNPdk5HeGVOOHUvaWozLzg0eWFBdUxnNFFrTkR2UmtaRHJQWlRHV2xISkR4VjcvNjFhS1EzRncyd1NZQTdyMFhsaTcxWHJJcWh3UFdyNGZYWHdkZ0VTelNqWnExWXFWQzVtMXpRNzMreTUyVklNODlHdzYyTUdyV2lwVkxSaldna0ptY25PeDFmU0VoY21pN3lzcEtsaXhac25KOGJpNHVNbDk3emZ0Tjg0SUw1SDlmZjUyVnNGTGpGejRxQldENm1KR2JkQlhaZnVHalV1TGk0bElBUWtORFIweWZJanN1TGk3RkZhSnQ2ZEtSNisvZHNsTWdSYWRNUU5vUlRFcW55QlkwV3EybTI4ZG9KSFBUS2JJMUdyZlpWYzFKcCs3bFZhaUVxb1NxaEtxRXFsQUpWUWxWQ1ZXaEVxb1NxaEtxUWlWVUpWUWxWQ1ZVaFVyby8yWG9KS2NvZ255Z05sSlFaRXRPVVhRNm5mTC9SekJkbkNMYjZleCtPWkFQMUVZSzNiSkZFRFh0RGFlS0FmYWNITGs0U29yczlvWlR4WldWbGNVQVpyTjV4UFFwc2lzcks0dUxRYzZudG43OXlCSGFMYnNZaW5XbmRxMVpGWHYySlZjclI3MGplWXg4YXRlYVZSc09kM0grK2VkZnJSejFqdVF4OG9ZTkcxYnRCSzZHcTVXajNwRThSbDRGcTFSSEJ5L0I1ZWlnZkJBeExuUGhxRmtyVm82VUswNTlmdlptOTJjWkdSa0xseXhac25La1hIRnljM043NkZzSUMzODBWeHgzQ0lKRzR4Y3hLc1VZRUI0MVZHSWxweWhhV3h0cTIrdFBGVXRTOXl6VTF6SkRvOUhFeGNXbGhJU0VSQTJWV0tmVEtWb3NsdHJLeXNwaXAzTUFmYUJKZ1pRb2lCb3FzU0tJdFZCYkRNVk82S0hQUmFpZzBXcVQ1dDF5Zi9LQzJ4N3lDWXlNOGNZdjJOVlNWMTJ5NWU4dm44aDY1MVhKYmNMdEpsSzdmUG55KzFlc1dQRlFXRmlZVi9RMU5qWldyMW16NXVXMWE5ZSs2blE2ZStqVGd2Wit1UDhoZUNnR3ZLS3ZHcXBmaHBkZmhWY1Z4MTRsRGFVMjQrZC8rVFJteXVJckFId05Hc0w5dFVPZW5FU25SRU9iU0lkTi92R3FEMzN6Nzl4Ly91SXFoVlNOUnFOOSt1bW5QejMzM0hPdkFOQnF0UmlOeGlGUFRwSWtZYlZhRWJ0L3N4MDdkdno3OGNjZnYwb2hWUXZhVCtIVEsrQUtBQUlESVNGaDZKT1R3d0hsNWRBaVQ3Yi9objlmQlZlNXZLV1R6MS81NE5MWFRrckwzeXlWTmgxdGxSeWlVeG91SEtKVDJuUzBWVnIrWnFtMDlMV1RVdkw1S3g5VXZzL1ZWMS85WUZaV2xyUmp4dzZwdXJwYWNqcUhyOC9wZEVyVjFkWFNqaDA3cEt5c0xPbnFxNjkyNlhzUUhwUkFra3dtU1ZxMVNwTHM5bUhyayt4MldaYkpKRWtnUFFnUHVzYk1SYy91cmxyNjJrbHAwOUZXeWR2WWRMUlZXdnJhU1duUnM3dXJCRUdqMFdnMG1uWHIxbFZsWldWSjFkWFZYdGRYWFYwdFpXVmxTZXZXcmF2U2FEUWFEV2lxb0VvQ21RQnZZOVVxU1FLcENxbzBJRTlBUG9HUk1iNEdEZlBIK1hsOU9URi9uQisrQmcwK2daRXhmaEd5czFoWVdGaU1WcXNsS2lySzYvcWlvcUxRYXJXRWhZWEZLTTVpTVJCRFlDRGNkSlAzMTBzMzNRU0JnY1JBVEFxa2FJd0I0VkhBc01iTS9xRFZDSVQ3eTVPcE1TQThLaVFrSkFvWTFwalpId1JCd0dpVUkyaUdoSVJFUllIOHF3MW56T3gzODY2VFpRTlJFS1Y2MzNtTFZGVHZPOVY4cHhLcUVxcENKVlFsVkNWVWhVcW9TcWhLcUFxVlVKVlFsVkFWcXVlSVYrRG1PYUt6dGpiVUFqUzBpWWhPeWV0bVBPVjhDY0RhMmxCcnNjbktyVllya2lSNTNZeW5uQzhCV0N5VzJpN2xRWG01L09MZU51TXA1MHRBTGRScTJ1dFBGWGUxMUZWMzJKeHN6Vy8zK28rM05iK2REcHVUcnBhNjZ2WjYyUlduc2JHeFdoUkZhbXRydmE2dnRyWVdVUlJwYkd5c1ZseHhxcUdhbGhaNDd6M3Z0ODczM29PV0ZxcWh1aGlLdFNCSlNFaVI0K2N1UGxEZVNZaWZqdEZoZWpURGJEbWlVMkxMOFhiZXptcEVkRUxCVjY4OGFUNlpsNk1jeFV5ZlBuMnh4V0xCWUREZzUrYzM3SllxU1JLMXRiVVVGeGNqU1JMdnZQUE9rMGVPSE1tUlFKSkFXZ3lMMmJ3Wm9xTmh5cFRocDdKd09PQ2RkK1RBQmc0SFQ4S1RPWkNqSGlNUHA1djNjb3lzT2pvTUEzMDZPcmhEZGNYeG9BZjI0NHFqd3N2b2U5QVNCQ0VnT25XaUtTUTJ3ZE5NaWs2SHpkcHBxU3B2clNrNk90aUZwaUFJd3VqUm95ZEdSa1ltR0F5ZTZiUFpiTmE2dXJyeTB0TFNvOUpnOVlFd0VTWW1RSUlSUE5KbkJXczVsQitGb3hLOWh3azhnMUNOM3VnejV0eWYzWk44L3M4ZjhBbUtqaHZTMk5sY1UxbnkzVDlmT2Juai9UZWNkbXRYZjJVTkJvUFBzbVhMN3JucXFxc2VDQThQSDVLK2hvYUd5azgvL2ZTVmRldld2V0d6MmZyVjV3TSs5OEE5RDhBRGNUQWtmWlZRK1FxODhnYTgwUVZkZlJKcURBaUxuSEhIUHpjRUowNDVSNW50NDBQMUdMU2V6YjQyVWFMQ2JIZk43azFsaC9idWZ1dm5TNnl0alhXOWxROEpDWWw4NFlVWE5vd2JOKzRjWmJiMzlmVkY0K0dTeHVsMDB0SFI0WnJkOC9Qejl6N3l5Q05MTEJaTHIvb2lJWElEYkRnSHpuSE45dVBIZzQrSDJUQzd1dUQ0Y2Rmc3ZoZjJMb0VsZFhDbVBvM2U2RFAzb1MvMkxIM3RwSFRkMjZla3JjZUg1alRtRUozUzF1T3QwblZ2bjVLV3ZuWlNtdnZRRjNzMCtqUHpoUm9NQnArMzNucHJUMVpXbHJSejUwNnBwcVptU0U1alRxZFRxcW1wa1hidTNDbGxaV1ZKYjczMTFwN2U4b1g2Z004ZTJDT0JKSVdHU3RMNzcwdVN6VFo0WHlhYlRhNGJHaXBKSU8yQlBUNXc1aStTUFArMmh4UXlxNXBzdy9haHFtcXl1VWhObm4vYlE2ZnJXN0ZpeFVNS21SMGRIY1BXMTlIUjRTSjF4WW9WWitoN0NCNXlrVmxVTkh3bnNhSWlGNmtQd1VObnpBaUxudGxWc2ZTMWs5TFc0OTd6d050NnZOdno3cGxkRmU2cmRrRVFoTTgrKzZ3aUt5dExxcW1wOFpxK21wb2FLU3NyUy9yc3M4OHFCSGQ5SUZSQWhRUnk2L0lXM245ZmtrQ3FnQXFoZS9qVUFBUkVwMDcwQ1lxTzh6Vm9tRHZXZXg1NGM4ZDJlOTRGUmNjRlJLZE9WRDRmUFhyMHhQRHc4RGl0Vmt0a3BQY1N3a1pHUnFMVmFna1BENDhiUFhxMFM5OUVtQmdIY1FRR3dvb1YzbHNqclZnQmdZSEVRZHhFbU9naTFCUVNtd0FRSDZyM3FyVkpxeEdJRDVYVGFpbzZ1bDg4QWVUOG05NjBOZ21DNE1ycHFlZ0FTQUQ1LytQSGc5NkwrVXYxZWxtbW13NE5nTExPOUhRMkh3d1VtZTVyV1dXZHFSbUJYSnVLVFBlMXJHdWQ2ZVAxM05ZdW1Zb08xV0t2SG9Hb2hLcUVxbEFKVlFsVkNWV2hFcW9TK2xNaDFPbXdXUlY3cHJlaHlGUjBnR3hwVit5WjNvWWlVOUVCc3FYZFpjLzBOcnBsS2pvMEFKMldxbktBQ3JQZHF5NDVvbE0yT0x2ckFLaXJxeXNIT1ZXUE4xMXlKRWx5cFJSU2RBQ1VnL3ovNDhmQjdzVzhVWGE3TE5OTmh3YWd0YWJvYUZkelRXV0h6Y24yUXU5NWoyd3Y3UFlhYWE2cGJLMHBPcXA4WGxwYWVyU2hvYUZTRkVYcTZ1cThwcSt1cmc1UkZHbG9hS2dzTFMxMTZUc0tSeXVoa3BZV1dMUEdlNFN1V1FNdExWUkM1VkU0K3NNWUtrbFN5WGYvZkFWZzFRNHoxYzNEL3hXcm0rMnMyaUZIcHluNTdwK3Z1RGRGU1pLa1R6Lzk5QldBa3BJU09qdUhINUduczdPVGtwSVNBRDc5OU5OWDNBL3RKSkJlZ1ZjQWVPQUJLQzRlUHBuRnhiSXM0QlY0UlRtMGM1MUxOMWNjM1JjNWZ1NWlqVjlrM0xhQ2RrTDl0Q1NHRHQ0bFIzUktaQlcwODhMR2V0cTZuRFNWSGRwNzZKUGYzeVU1eFI3dWI0V0ZoZnVtVDUrK09EUTBOSzZ1cm03SUxqbVNKRkZYVjhleFk4ZHdPQnprNStmdi9kT2YvblNYS1BiVXR3LzJMWWJGY1oyZGNYejRJY1RHd29RSk1GalhBN3NkUHZvSWxpOEhzNW05c1BjdXVNc0JEbEFQNmJ4K1NLY2VJdzhCSGg4ajk0RHE2SEFHUEhGMFVLRkN4WDhWUEY2akNCcXQxaWNvTWxZUWVxNHpKRWtVdTVycnFrNzMveHoybmxpajBZYUhoOGVlN3VMb2REckZob2FHcXRQOVA0Y0xMV2hqSWZaMEYwY1J4Q3FvY3NWa0dnNmhHcTNlRUQ5OTJZM3hHWmZmRUpxVVBsdWoxUnQ2bll4RXU4MThJaStuSXZmejFSVjcxbjNnRk8yMm9ieVVYcTgzTEZxMDZNWkZpeGJkTUhIaXhObDZmZS82N0hhNzdlalJvem1iTm0xYXZXblRwZy9zOXFIcE00RGhScmp4QnJoaE5zdzJRSy82YkdETGdaelZzUG9EK01BR3RrRVRHcHFVa1huMkRTKy82eGMreXBXSlR5T0FqNzduR3JITDdzUjkrOS9lY0tway8rcUhiamFmeU0wZXpNdE5uanc1ODlGSEgzMDNOalkyMlczbVIzdmF3bHNVeFI0TGlLcXFxcExubm52dTVzT0hEdzlLWHlaa3ZndnZKc01QbVFhMVd2RDM3MW13clEzY09sOEpsTndNTjJlRDUvcmkwcGRldStUUFJiYWxyNTJVYnZoN21mVHAzaWFwd215VGV2UGxjam9scWNKc2t6N2QyeVRkOFBjeWFlbHJKNlVsZnk2eXhhVXZ2ZFpUZlFzV0xMaDJ5NVl0dHF5c0xDa25KMGNxS3l2cjE5K3BvNk5ES2lzcmszSnljcVNzckN4cHk1WXR0Z1VMRm5pczcxcTQxZ1kyQ1NRcFBGeVNubnRPa3ZMekpVa1V6MVFtaXZLejU1NlR5NEprQTl1MTRKbSswS1NNVElYTVAyeW9sZHF0b3NldVB1MVdVZnJEaGxvWHFhRkpHWm1ldEV5RnpDTkhqa2dPaDhOelR6K0hRenB5NUlpTDFNbVRKMmQ2MGpKZFpGNTJtU1ExTjN2dXk5VGNMTmZwSmpVVCt0ZW4wZW9OQ3g3ZlZxeVFPWlNJZEU1SmNwRzY0UEZ0eFgyTnU4cVkrZkhISHhjclpBNFZDcWtmZi94eGNWL2pyakptRmtPeGk4eWh4Tnh6T2wya0ZrUHg2ZU51andFeGZ2cXlHLzNDUnlVSG1yUThzREFjWVlqTGhnY1doaE5vMHVJWFBpbzVmdnF5Ry9zcXUyalJvaHRqWTJPVDlYbzk0OGFORy9JTVBXN2NPUFI2UGJHeHNjbUxGaTNxVTkrTmNHTXlKQk1lRHUrL1A3UXMzb0lnMXcwUEp4bVNiNFFiK3lZMDQvSWJBQzZiR29pdlllaW5JNzRHRFpkTkRld2hzdzlDYndDSWo0OC9ZL0laMUpKSHF5VStQcjZIek41d0E4alBIbnhRTm93TUZZR0JzZ3gzbWFjVEttaTAydENrOU5rQXM1SjloNzJ1VTJTRUpxWFA3dTE2amthajBVNmNPSEUyUUhoNCtMRDFLVEltVHB3NHU3ZnJPVnJRem9iWkFDeGJOdnlGYTdlTTJURGJmZTNxSXRRbktESldvOVViTkFMRUJnL2Y1UzgyV0k5R2tNZGxuNkRJMkY0SWlOWHI5UVpCRURDWmhwOUcyR1F5SVFnQ2VyM2VFQjRlZm9hK1dJZzFnQUd0RmxKVGgwOW9haXBvdFJqQUVBdXhaN2JRN2gyUWoxNkROMXcyQmJjMTYrbTdLNldGS3QzVmE3dWRibGw5dFZCQVhtZDZ3NDFTbzNHdFdYdHRvU3E4dEdWV0tWQUovZitEVUVtU042eGRkaWZlT0NxWEpGbVd1K3pUclViSzN0eGJVR1QxWm9seVdZdmEyc0FiRGhaT3B5ekxYYlk3b1YzTmRWVk8wVzV6U2xEVk5QeGo1S29tTzA1SnRrUjFOZGRWbmY2OG9hR2h5bTYzMnlSSjh0b3hzaVJKMk8xMlcwTkR3eG42cXFES0JqWkVFWXFLaGs5b1VSR0lJamF3VlVIVm1TM1VLWXJtRTNrNUFMdEtPb2F0VDVGaFBwR1gwNXV0MU9sMGlrZVBIczNwSm5mWStoUVpSNDhlemVtcmhlWkFEZ0RyMWcyZjBHNFpPWkRUYXdzRnFNajlmRFhBRndkYVhFZkJRMEdIemNrWEIxcDZ5T3dObXpadFdnMVFVVkV4cks0dmlpSVZGUlU5WlBhRzFTQS8rOU9mWEVmQlEwSkxpeXpEWFdhdmhPNVo5MEY3dzZtU2xrNlJWelkzRE9sWVR3TCt2S21CbGs2UjlvWlRKUlY3MW4zUUQ2RWZWRlZWbGRqdGR2THo4NGY4ZnZuNStkanRkcXFxcWtvMmJkclVwNzRQNElNU0tLR2hBWDcyTTRZMFdVZ1MzSGdqTkRSUUFpVWZ3QWQ5RXVvVTdiYjlxeCs2MlNrNjdMdFBkUERjaHJwQnRkUU9tNVBuTnRTeDUyUUhUdEZobDJYMWJVMjMyKzIyNTU1NzdtYUh3MkZ2Ykd6azZOR2pnMnFwb2loeTlPaFJHaHNiY1RnYzl1ZWVlKzdtL3F6M05yRGRERGZid2M0WFg4RGxsdyt1cGJhMHlIWFdyOGNPOXB2aDV0T3Q5MmZzS0RvdFZXWHREYWVLb3ljdlhGclZMR28zSDJ2RDZZUWdrNVlBSCswWnV5aXBleExiZExTTmw3OXA0RVM5clp2TVg5MVVkK3k3cndiNmpuVjFkV1dWbFpYRmMrYk1XV3ExV3JVMU5UV3lxYzFnUU4vSHJiZk96azVxYW1vNGZ2dzRiVzF0Q3BrM2ZmLzk5d1BxSzRPeVlpaGVDa3UxQlFWYVZxMlNMZktSa1JBYWVxWUZ5dW1Fd2tMNCs5L2gybXRoLzM3c1lMOEpidm9LdnVyTjJ0YW5vVms5QW1IUVJ5RHFJZDJQZFVoM1JrSDFHTm1yK2xTb1VLRkNoUW9WLzcvQjQyV1RUMkJrVFBUa0M1WUdqenBydWpFd0lockEybEpmMDNUcTRKNmF3OSt1NzJxcHEvYm1Gd3NMQzR1Wk0yZk8wdkhqeDA4UERRMk5CakNielRYSGp4L2ZzM1BuenZXTmpZMWUxUmNETVV0aDZYU1lIZzNSQURWUXN3ZjJySWYxMVZEdEZVSjlncUppeDEvNjhIUHhHWmZmMEZlMFJza3BpaFc1bjY4Ky9wK1hIdTFxcnEwYXpvdUZoNGZIM25iYmJjOHRXclRvaHI2aU5UcWRUbkhUcGsyci8vNzN2ei9hbSsxek1JaUYyT2ZndVJ2Z2hyNmlOWW9ncm9iVmo4S2o3cmJQUVJNYU1TNXpZY2JOYi94TDd4c1VBcEFTYVNSOWxJbklRRG1RYVYyTGc3eFRuUlRYeVRmLzdCM05sdHgzNzdubTlMUzluaUlqSTJQaGswOCsrYStBZ0lBUWdJQ0FBRUpDUXZEcHZxWFIxZFdGeFdLaHRiVVZnTmJXVnN1VFR6NTV6ZWxwZXozRlFsajRML2hYQ0lSMGZ3RzQ2Q0lZUFZvdVVGb0tHemRDYmk0QUZyQmNBOWNvYVhzSGhZaHhtUXNWcDdFSFBxNlVqbFYxOWVudWM2eXFTM3JnNDBxWGsxakV1TXlGUXlGVGNSckx5OHVUbXZ0eDRtcHVicGJ5OHZKY1RtSVpHUmtMaDBLbXkybnM3TE1sS1R1N2IzK203R3k1VExlVDJFSVluRDZmb0tqWWkxNDRZRjc2MmtucHVRMjFVcGQ5WUtlcUxydFRlcTdiU2V5aUZ3NllmWUtpWWdmVHpUZHMyR0JXbk1aRWNXQ1BQMUVVWFU1aUd6WnNNUGZtM05CZk56ZURXUUpKdXZ4eVNXcHY5OEMxc0YwdUM1SVp6TzdPRGYyYTd3QW1YL1hVNnlHano1NlpGR0hnc2FWUkdIVUR6MTA2amNEMEpGL3lUblhTWXRlYkRQNGg0VFdITm4zdXlRdmVmLy85cjArY09IR212Nzgva3lkUDl1amlseUFJaEllSFl6YWJFUVRCRkJRVUZKNmRuZTJSdnRmaDlaa3drN1BQaGkrL0JGOFBYSS8wZWprMy9jYU5tR3BxVE9FUS9qa01yTThuTURMbTBsZUtIVXRmTzlsdk4rK3YreTk5N2FSMDZTdkZEazlpT1llRmhjVjg5OTEzanF5c3JINjdlWC9kUHlzclMvcnV1KzhjbnNSeWpvRVlCemdrNkwrYjk5ZjlRWEtBbzdkWXptYzBoZWpKRnl3Vk5GcHRTcVNSOFRIR1FZKzk0Mk9NcEVRYUVUUmFiZlRrQzVZT1ZIN09uRGxMTlJxTk5pQWdnTUFoZU1RRkJnWVNFQkNBUnFQUnpwa3paMEI5UzJHcEZyUmtaTUNjT1lPZnllYk1nWXdNdEtCZENrc0hKRFI0MUZuVEFkSkhEZDJCUzZtcnlPcjNCeGcvZmpwQVNFaklrUFVwZFJWWi9XRTZ5R1V1dW1qb2E2M3V1aTVaL1JHcUxOcVZwZEZRb05SVlpQVUhaZEh1TTR5NGRFcGRSVlovVUJidHJxWFJVTkJkMXlXclAwSlZEQTluRUdwdHFhOVJGdTFEaFZKWGtkVWZ6R1p6amJKb0h5cVV1b3FzL2xBRE5hNUYrMURSWGRjbHF6OUNtMDRkM0FPUWQycm83akZLWFVWV2Z6aCsvUGdlQUl2Rk1tUjlTbDFGVm4vWUEzS1pqUnVIVG1oM1haZXMvZ2l0T2Z6dGVza3Bpc1YxVm81WFd3ZXQ2M2kxbGVJNks1SlRGR3NPZjd0K29QSTdkKzVjNzNRNnhkYldWbHFHNE0zUjB0SkNhMnNyVHFkVDNMbHo1NEQ2MXNONkVVUnljMkhuenNHVHVYTW41T1lpZ3JnZTFnOUlhRmRMWGJYaVB2TjJWaU5XaCtmZUZWYUh4TnRaallEc2d1T0pCYXF4c2JGYWNaOHBMaTRlVk9naHA5TkpjWGY4a0UyYk5xMzJ4QUpWRGRVdTk1bDc3NFdPUWZoeGRYVElkWkJkY0R5MVFLbGJUMjl2UFIzVzl0Ym1paVA3NHFZdFhWSFpMR3J6VG5VeUtzeEFSSUN1ejI3K1B4dnJPRnpaaFZOMDJQZis0NDRyV2lxUEgvVDhoKzlvTFN3czNMZGd3WUlWVnF0VmF6YWI4ZlB6dzJnMDl0bk5qeDA3Um5Oek13Nkh3Lzc3My8vK2l1TGlZby8xdFVMclB0aTNBbFpvOC9PMWJOd0lreVpCWW1MZjNmeXFxMkRiTnV4Z3Z3S3VPQWdIVmZQZGoyQytVdzNNUDZhQldUMENHZndSaUFvVktsU29VS0ZDaFFvVktuNENHSHlvQVVFUWpQNWhrUURXdHNhNkVVMFVMNnNUZ29PREl3R2FtcHJxcEpIV0IwSWtSQUxVUWQxZ3cxb0tucjVWekZrWExoczE4K3BidzlQbUxGQnVnemhGdTYyaFlPZVdVOTkvOG8vcWcxK3Y4eGE1Z2lBSWMrZk9YWGJKSlpmY09tM2F0QVhLYlJDNzNXN2J0Mi9mbGkrLy9QSWYyN2R2WCtjdGNnVVFsc0d5VytIV0JiQkF1UTFpQTlzVzJQSVArTWM2V09jSnVSNFlSNkxqTW01NWZZMTdVQ3NselpwN2lIYnppZHpzM0hmdVhkSFZYRk01VE9OSTNKTlBQcm5HUGFpVkVwZlpuYi9EaHc5blAvbmtreXNhR2hxR3BTOE80dGJBbWg1QnJaUUxaMjRoMnJNaGV3V3NxSVRLSVJQcUV4UWROL2VoZisvMkNZcU84OUVMWERZMWlMbHBmc1NIeUFvckxIYTJGN1R6eFlGbXV1d1NYYzAxbGR0ZnZtTEdVRWtORHcrUGUrdXR0M1lyQ1FEajR1S0lqSXgwNVpucjZPaWdycTZPeXNwS1YzajFPKzY0WThaUVNZMkR1TjJ3T3c3aThQT1RRd2RkZHgwb01hVHk4K1VBMW4vNkU3UzNVd21WTTJER1FLVDIyZTh5SC9oMHg5TFhUa3AzdkZjaFZWcjZ6dlZaYWJGSmQ3eFhJUzE5N2FTVStjQ25PNGFTdVU4UUJPR05OOTdZa1pXVkplM1pzMmZBMkhkNzl1eVJzckt5cERmZWVHT0hNQlI5SU95QUhSSklVa3FLSkJVVzltMnRMeXlVeTRDMEEzWUlRNWw3WXFaZWRPWFMxMDVLVi8rMXRGOHkzVW05K3ErbDB0TFhUa294VXkrNmNyRDY1czJiZDJWV1ZwYVVuWjN0VWVMVWpvNE9LVHM3VzhyS3lwTG16WnMzYUgxWHdwVVNTSktmWC85a3VwUHE1eWRKSUYwSmZlcnIwOUZoMU15cmJ3VzRiR3FRUjNHY1lvUDFYRFkxcUVmZHdlQ1NTeTY1RlNBdUxzNmpPRTRtazRtNHVMZ2VkUWVEVzBHdTgrQ0Ruc1Z4U2sxMVJSTnoxZldZVUVFUXd0UG1MQUNZbStaNTRsU2xiSGphbkFXRDZmYUNJQWpUcGsxYkFBd3FjYXBTZHRxMGFRc0cwKzBGRUJiQUFrQWVNejFGZDlrRnNLQ3ZidDhyb1ViL3NFaU5WbS9RYWdUWEJPUUo0a1BrUktzYXJkNmdyRlU5UVhCd2NLUVNaY3pYMS9Nd2NVcWlWYjFlYjFEV3FoNzlFQkJwQUFONi9ROFRrQ2NZTnc3MGVneGdVTmFxSG5kNUZVTkRyNFJhMnhycm5LTGRKam9sS2l5ZVI4aXBzTWpwZzV5aTNXWnRhL1E0RFUxVFUxT2RFaUduWXhDT0IwcjZJTHZkYm10cWF2SllYeDNVMmNDRzNTNHZqVHhGZmo3WTdkakExbXRPK1Q1YnFDUkpEUVU3dHdCc0wvQThIWkJTdHFGZzU1YkI3Sm9rU1pMMjdkdTNCUmhVT2lDbDdMNTkrN1lNWnRja2diUUZ0Z0R5T3ROVGRKZmRBbHY2MmpYMTJlVlBmZi9KUHdDK09ORHNVUnlucWlZN1h4eG83bEYzTVBqeXl5Ly9BVkJaV2VsUkhLZk96azRxS3l0NzFCME0vZ0Z5blQvOXliTTRUa1ZGcmtnNHJycURJYlQ2NE5mcnpDZHlzN3ZzRWsrdnIrdVgxS29tTzArdnI2UExMbUUra1p0ZGZmRHJRUWRHMnI1OSs3ckRodzluaTZMSWtTTkgraVcxczdPVEkwZU9JSW9paHc4Znp0NitmZnVnOWEyRGRkbVFUWHM3WEh4eC82UVdGY2xsMnR2Smh1eDEwS2UrZm1OTjFoM2ZzU2t1ZmNrMVhmZ0diam5laHQwQklYNWFBazFhMTVpNTRXQXJyMzdiUUZPSFNGZHpUZVd1TjIrNjBOSFZOcVNnU0h2MjdObTBZTUdDYXd3R1EyQnRiUzFPcDdOSE1KZU9qZzRxS3lzcExDekVaclBSME5CUStkQkREMTNZMGRFeEpIMmJZTk0xY0UyZzJSeklQLzhwcC9lSmlRRWxRR3grUHJ6Mkd0eDhNOVRXVWdtVkY4S0ZMZENpR2tmK0x4aEhWUFBkQ0pqdlZBT3ptamRKaFFvVktsU29VS0ZDaFFvVktsU28rQ2xqY01ZUlFSQUNZOGROQ1loS0hnZlFXbHVTMzFLVmYyaWtEQ1NDSUFqSnljbFRFaE1UeHdHVWxaWGxsNVNVSEJvcEE0a0F3aFNZTWc3R0FlUkQvaUU0TkJnRGljZUV4cHgxNGJJSlN4LzVINytJVVNudW43ZlhueW8rdHY2RjN3ekZTdDhmNXM2ZHUrek9PKy84bjdpNHVCNzZLaXNyaS8vMnQ3LzlaaWhXK3Y2d0RKYjlEL3hQQ3ZUUVZ3ekZ2NEhmOUdlbGQ0ZEgyYUhTTG5yZ3lTbFhQL09td1M4NDFHVFFNREhXU0hTUWpwWXVKNEpQVUdqY3RDWFhnQ0EwRm4rL3pSc3ZkOHN0dHp6NTRJTVB2aGtZR0JpcTFXb0pDZ3JDeDhjSHU5Mk92NzkvNlB6NTg2OFJCRUU0Y09DQVYvUTlDVSsrQ1crR1FpZ0JBWER1dVpDVUJBME5oTnBzb2RmQU5RSUkyMkQ0K21MT3VuRFowdGRPU2t0Zk95bTl0OU1zV2QydWVsdnRUdW05bldaSmVSNXoxb1hMdk5FeXM3S3lwS3lzTE9uRWlSTTlybnFMb2lpZE9IRkNVcDdQblR0M21UZGFwaVNINDVla1J4NlJKSGUvcW80TytiUHU1OHRnMmJBSHNRV1BiU3RTeU93TENxa0xIdHRXTkJUUE8vY3g4Nk9QUGlwU3lPd0xDcWtmZmZSUmtUQWNmU0FVUVpHTHpMN1FUV29SRkEza2VkZXY1MGhnN0xncGZoR2pVa3dHRFN1bUIvZFpic1gwWUV3R0RYNFJvMUlDWThkTkdlb0xKaWNuVDRtTGkwdlJhcldNR2pXcXozS2pSbzJpMjM4MEpUazVlY2o2cHNDVUZFZ2hJQUFlZjd6dmdvOC9EZ0VCcEVES0ZKZ3laRUtWMlh4c2xBRkRQL0h2RERxQnNWR0dIbldHQW1VMjc0NFUxdmVYMW1nSUNBam9VV2NvVUdaenBrK0gvanorVENhNWpIdWRvUkNxWXZEb2w5RFcycEo4Z01KYUc3Witncm5ZSEJLRnRiWWVkWWFDc3JLeWZFQ0pjdE5uT2FmVDZZcnFvTlFaQ3ZKQnJydG5EL1RucmRMWktaZHhyek1VUWx1cThnKzExNThxN3JRNVdiT25xYzl5YS9ZMDBXbHowbDUvcXJpbEt2L1FVRit3cEtUa1VHVmxaYkVvaXB3NmRhclBjcWRPblVJVVJTb3JLNHRMU2txR3JPOFFIQ3FHWWxwYjRlbW4reTc0OU5QUTJrb3hGQitDUThOYWgzWTExMVRHVFZ0eXpmRnFLM1pSWW55TWo4dlJ3ZWFRK1BEN0pqN0xrMzJhRHE3NTdXMXROY1hIaDlObDZ1dnJLK2ZQbjM5TlMwc0xUcWVUb0tBZzE4TEI2WFJTV2xwS2VYazVBQys5OU5KdHAwNmRHcGErU3FpOEJxNGhPeHVzVmpuNm91TG8wTmtwVDBndnZBREFiWERiY1RnKzdKMVMya1VQUEpsMjBmMVBBSmdNR3RjRVZGaHJvN003Z1ZYQnhsZWZLdGo0eXBQZVd0amZmUFBOVDRDY1RWYVpnRnBiVzEwSnJONTk5OTJuM25ubkhhL29leEtlZkFLZWtHZlZBTmNFeEo0OTBEMjBQQVZQUFFrRDZ2Tm9wOVJZL1AyMmxxcUN3OEVKazlNRm42RFEyaFlIdFMwT0hLSkVlLzJwNG9OcmZudGJhZmJxdjNwcllEOXc0TUMyRXlkT0hFNUxTMHYzOS9jUDdlcnFvcXVyQzBtU3FLeXNMSDdwcFpkdSsrS0xMN3ltYnh0c093eUgweUU5MUdZTDVlUkpPSGtTYkRhS29mZzJ1TzJ2NEpFKzFUamlaZU9JQ2hVcVZLaFFvVUtGQ2hVcVZLaFFvVUtGQ2hVcVZQeTNZTkFHNXZEVTJmTkR4NXc5QzhCOGN2K3VocUtjclNOcFlKNDJiZHI4aVJNbnpnSTRldlRvcm4zNzltMGRTUVB6ZkpnL0MyWUI3SUpkVzJIcmlIamZHZnhESTZhdmZHdWQrNjFra0c4aDcxbDF4ekpibTduZW15OFhIQndjOGV5eno2NXp2NVVNOGkzazMvLys5OHVhbXBxOHFpOENJdGJCdWg2M2twRnZJUytEWmZWUTd6MUNCVUhJdlArVDdhRkpHWmttZzRiWnlYTGttcHlTRGpwdFRzd25jck96WDcxNnJqZHZJNy8rK3V2YkowK2VuS25WYW9tSWlBQ2d2cjdlRlhUZzNudnZuZXZOMjhqYllYc21aQklRQU11WHl3L1dyb1hXVnJJaGV5N005ZHBSU1BqWU9RdVd2blpTdXVadnAzcEVHYXUwMktSci9uWktXdnJhU1NsOHJCem55UnRJVDA5ZjBGdVVNZmRvWXVucDZWN1R0d0FXU0NCSkFRR1NWRkR3ZzVOWVFZSDhHVWl1T0U4RHdDTlhIR1hNbkozczJ5UEtXR3l3M3RWYWxUTGVnREptUmtSRTlJZ3laaktaWEsxVktlTU5LR01teTVmRDJMRS9QQmc3MXRWYVhXVzhRYWdLeitFUm9lYVQrM2NwWTZaN01KZXFKanM1SlIwOXluZ0RSNDhlM2FXTW1lN0JYRG83TzZtdnIrOVJ4aHZZQmJ0Y1kyWmg0UThQQ2d2bHo5ekxxSlBTanpzcHFjdW0vNVZsazdxd1Z6MUhWS2hRb1VLRkNoVXFWS2hRb1VLRkNoVXFWS2hRb1VLRkNoVXFWSGdOZzQ1NUZETHFyT21KczFhc0JDamJ0V2FWNWRUQlBTUDVCY2VQSHo5OXlaSWxLd0UyYk5pdzZ2ang0eU9xYnpwTVh3a3JBVmJCcWoyd1o4UUlEUmwxMXZRNUQ2ek4xbWgxZWdDbjZMRHZmR1Y1NWtpUk9uNzgrT2x2dlBGR3RrNG42M000SFBaNzdya25jNlJJblE3VHN5RmJEM29BTzlneklYTXdwQTdLRlNkeDFvcVZHcTFPZjNhaWliTVRUV2kwT3IzU1drY0NTNVlzV2FuVDZmUWhJU0dFaElTZzArbjBTbXNkQ2F5RWxYclFzMmdSTEZxRUh2UktheDBSUWxWNG1kQ3lYV3RXT1VXSGZYOVpKL3ZMT25HS0RudlpyaldyUnVyTGJkaXdZWlhENGJCYkxCWXNGZ3NPaDhPK1ljT0dFZE8zQ2xiWndjNm1UYkJwRTNhd3I0SkI2Vk1uSlM5UFNpcFVxRkNoUW9VS0ZTcFVxRkNoUXNVSTQvOEJMZC80bmNINEtJTUFBQUFBU1VWT1JLNUNZSUk9KTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyOm5vbmU7aGVpZ2h0OjI4cHg7b3V0bGluZTowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjI4cHh9LnJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLWdpZntib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4O2JhY2tncm91bmQtc2l6ZToyNHB4O2JvcmRlcjoycHggc29saWQgIzQ0NDc0NjtoZWlnaHQ6MjRweDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MjRweH0ucmVjYXB0Y2hhLWNoZWNrYm94LXNwaW5uZXJ7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjo2cHggc29saWQgIzRkOTBmZTtib3JkZXItcmFkaXVzOjM2cHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtoZWlnaHQ6MzZweDtsZWZ0Oi00cHg7b3V0bGluZTowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOjM2cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6MDstd2Via2l0LWFuaW1hdGlvbjpzcGlubmVyLXNwaW4gMi41cyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnNwaW5uZXItc3BpbiAyLjVzIGxpbmVhciBpbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlOnBhdXNlZDthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWQ7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOjFzO3RyYW5zaXRpb24tZHVyYXRpb246MXN9QC13ZWJraXQta2V5ZnJhbWVzIHNwaW5uZXItc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfTI1JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI0NWRlZyl9NjAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3MDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNzAwZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDgxMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgzdHVybil9fUBrZXlmcmFtZXMgc3Bpbm5lci1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyl9MjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjQ1ZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDcwMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg3MDBkZWcpfTc1JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoODEwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDgxMGRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDN0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDN0dXJuKX19LnJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLW92ZXJsYXl7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTdweDtsZWZ0Oi03cHg7d2lkdGg6MzhweDtoZWlnaHQ6MTlweDtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7LXdlYmtpdC1hbmltYXRpb246b3ZlcmxheS1zcGluIDFzIGxpbmVhcjthbmltYXRpb246b3ZlcmxheS1zcGluIDFzIGxpbmVhcjstd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlOnBhdXNlZDthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWQ7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSBjZW50ZXI7LW1zLXRyYW5zZm9ybS1vcmlnaW46Ym90dG9tIGNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSBjZW50ZXI7Ym9yZGVyLXJhZGl1czozOHB4IDM4cHggMCAwOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO29wYWNpdHk6MH1ALXdlYmtpdC1rZXlmcmFtZXMgb3ZlcmxheS1zcGluezAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjI1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDIyNWRlZyl9fUBrZXlmcmFtZXMgb3ZlcmxheS1zcGluezAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjI1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDIyNWRlZyl9fS5yZWNhcHRjaGEtY2hlY2tib3gtY2hlY2ttYXJre2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ1lBQUFUc0NBTUFBQURiM3dCZEFBQUFJR05JVWswQUFIb21BQUNBaEFBQStnQUFBSURvQUFCMU1BQUE2bUFBQURxWUFBQVhjSnk2VVR3QUFBRkJVRXhVUlFBQUFBQXdHZ0FMQmdBcUZnQVdEQUFCQVFBWURRQkJJd0JJSndBNUh3Q1JUZ0FYREFCdU93QWNEd0JTTEFCTktRQjdRZ0NWVUFBSkJRQnhQUUFpRWdCV0xnQUJBQUJlTWdCNlFnQTRIZ0FHQXdCMlB3QmhOQUJHSmdBQ0FRQmpOUUJtTndBREFnQnZQQUJ1T3dBRUFnQnRPd0IrUkFBSkJRQ0RSZ0FOQndCeFBRQTBIQUJJSndCNFFRQlVMUUJVTFFCOFF3QlhMd0I5UXdCUUt3QXBGZ0NZVWdCMlFBQUdBd0JLS0FCT0tnQ0FSUUFIQkFBZUVBQTNIZ0JYTHdBakV3QStJUUFGQXdCQUl3QVJDUUNJU1FBTUJ3QTFIUUF6SEFBOElBQS9JZ0NRVGdBV0RBQk1LUUFaRGdDU1RnQnNPZ0FQQ0FBVUN3Q05UQUFPQ0FBU0NnQVFDUUEySFFCUkt3QXVHUUJhTVFBdEdBQlNMQUFnRVFBL0lnQTRIZ0NQVFFCd1BBQUNBUUFyRndCZ05BQVRDZ0FhRGdBcUZ3QUlCQUFVQ3dDZVZmLy8vNEM1RGhRQUFBQnBkRkpPVXdCTkVVTWpBaVpwZFZ6cUpiRXRoWHpHOFErMk40c0JsOFZhQ3I2Y2NRT2dwUVd6c2dhd3pBN1RGYmRVZE1LSWg4aU15WUZDOXI4SmVIN1BEREZaalRoa0NHZ2MzQlJXVTJGbTZTUjdLZXV1R0NIa0Z4MGFWNEpLa2tpRU0yVmI1clFFUlpzZUtrUU5JS3MvMU5ZQUFBQUJZa3RIUkdvbFlwVU9BQUFBS0hSRldIUmtZWFJsT25ScGJXVnpkR0Z0Y0FBeU1ESTJMVEEzTFRFMFZEQTBPakkxT2pNeEt6QXdPakF3RjRpOTJnQUFBMVJKUkVGVWVOcnQzWGxUVWxFY2gvR2pMVmhKQlJrVTJvM2ltbXhSRWhibDBxS3RsTG0wWjdzdDUvMi9nYmpPTkJOeGgvT05tN0g0UEgvNDEyOEV6K1Y4NW5oMXdCZ2lJcUpJall3cVUvdjJLMU1IRHJLZVJCU2wySmd5ZGVqd0VVV2s4VGdMU2tSUlJEb3FpV1R0TVVHazR6YWhtSlE4TWNIQ0UxRVVrVTZtRkpHc1Ridm5rcWVhYzZmZGo1cVp0Rk1wNGRsbHpuaGNTQ0pFaWlMU1diY2lUWkdzelo1eno1MXZ6dVY4NTV3L2JlMkZHZmRQNjJYekJXVlZ2RkZlUDBTSUZFVWtXeXc1bjZDWHRkSVA0azBGYzJYbjQ2YlMxbDVNQ3N0Y21jeElGODNuZFV1SXREc2lYWW9wSWxXc2pibEZhazdaeTU1THBObm1sMnJTTFpKcjZwZElWYWMxaUVUVW5VaFhhb3BJRlR0WGM0c1UrSERWS1ZLbHc1NXVFYW5EenY5ZHBFNCtJQkpSbEs1SlUzWHBwc2QxYTBQbldrVUs5dlNOZ2x1azhIM1lMbEw0YmtVa1JLTCtxbDZScHF5dFNGTTJQeStJRkVvU0lpRVNEV1lMbWpXZGJuaTBLTEtvV1ZQNE4xT0loRWcwS0pWOHpScmh6ems3UGl6OVYyc1FDWkZvVUxvcG5tdnE0cm5tVmg5YWcwaUlSTDN2dG1hTmROZTNybXpwdnJVR2tSQ0pldCtkWmUzMHM3SXNpV1NuRVFtUkVJbkNyck4yK3BFdVhuTzNDbk03ZS9vdUlpRVNJbEY3Mmp0YTZIL1R1amZrcHg5RVFpVGF6ZTVuTkpHVXF4ZnMxalFpSVJJaVVkYzk0QTRSSWlFU0l2Vk5EK09hU0k4YW1raEZSRUlrUkNKRVFpUkVRaVJFUXFTL0VpbitXQkhweWFvaWtubUtTSWlFU0lnVVJTU3pwb2hrR3F1S1NPc2JpSVJJaUlSSVVVUXlra2pHYkFvaUdmTnNReERKUEY5QkpFUkNKRVNLSXRJZlUrNTk2Smg2NFNsVEx4V1JUQW1SQ0pFUWFSQ25YbzNQQ2xPMU9jbWExNGlFU0lpRVNOR20za2hUd1hkVHBveUpKZG16aUlSSXd5S1NsOU44OEhPYUQvNE1PNGdRYVZoRW1zOHJJaGxUeUdzK0ZEZy9FQ0lOalVobGFTcTQ2U0c5RFZTdEtuMHVva254R2lUYVd5S1p0RFJsVW1udDAxVlQvSzVDdE1kRUttblcrRG50eE9JdkZialdSSWpVM29KbWpZbHAxcGhGckNGQ3BKQkdKSkdDZjRtVHJQSGVZZzBSSW9WVWxrUUs3dm9XbFcvSFhWOGlpaURTV2tJU3lVd2tKSkhNRnFjZklncnBuZlpHMis4L05MUzVqOXJEZm1MbGlhaTl6NXBJL2hkTkpIK01KU1dpcnR2K3FzMTlXOWZtdGxoU0l1cTY3OXZhM0EveHpzOG1TMHBFUkVTOTZpZHZtNTlVLzJORTFRQUFBQUJKUlU1RXJrSmdnZz09KTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyOm5vbmU7aGVpZ2h0OjMwcHg7bGVmdDotNXB4O291dGxpbmU6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozOHB4fS5yYy1hbmNob3ItZGFyayAucmVjYXB0Y2hhLWNoZWNrYm94LXNwaW5uZXIsLnJjLWFuY2hvci1kYXJrIC5yZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lci1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6IzIyMn0ucmVjYXB0Y2hhLWNoZWNrYm94LWhvdmVyIC5yZWNhcHRjaGEtY2hlY2tib3gtYm9yZGVyLC5yZWNhcHRjaGEtY2hlY2tib3gtaG92ZXIgLnJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLWdpZnstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpO2JvcmRlcjoycHggc29saWQgI2IyYjJiMn0ucmVjYXB0Y2hhLWNoZWNrYm94LWZvY3VzZWQgLnJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXIsLnJlY2FwdGNoYS1jaGVja2JveC1mb2N1c2VkIC5yZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lci1naWZ7Ym9yZGVyOjJweCBzb2xpZCAjNGQ5MGZlfS5yZWNhcHRjaGEtY2hlY2tib3gtYWN0aXZlIC5yZWNhcHRjaGEtY2hlY2tib3gtYm9yZGVyLC5yZWNhcHRjaGEtY2hlY2tib3gtYWN0aXZlIC5yZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lci1naWZ7YmFja2dyb3VuZC1jb2xvcjojZWJlYmVifS5yZWNhcHRjaGEtY2hlY2tib3gtZGlzYWJsZWQgLnJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXIsLnJlY2FwdGNoYS1jaGVja2JveC1kaXNhYmxlZCAucmVjYXB0Y2hhLWNoZWNrYm94LXNwaW5uZXItZ2lme2JhY2tncm91bmQtY29sb3I6I2YxZjFmMX0ucmVjYXB0Y2hhLWNoZWNrYm94LWxvYWRpbmcgLnJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLWdpZntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9sb2FkaW5nLmdpZil9LnJlY2FwdGNoYS1jaGVja2JveC1jaGVja2VkIC5yZWNhcHRjaGEtY2hlY2tib3gtYm9yZGVyLC5yZWNhcHRjaGEtY2hlY2tib3gtY2hlY2tlZCAucmVjYXB0Y2hhLWNoZWNrYm94LXNwaW5uZXItZ2lme3Zpc2liaWxpdHk6aGlkZGVufS5yZWNhcHRjaGEtY2hlY2tib3gtY2hlY2tlZCAucmVjYXB0Y2hhLWNoZWNrYm94LWNoZWNrbWFya3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTYwMHB4fS5yZWNhcHRjaGEtY2hlY2tib3gtZXhwaXJlZCAucmVjYXB0Y2hhLWNoZWNrYm94LWJvcmRlciwucmVjYXB0Y2hhLWNoZWNrYm94LWV4cGlyZWQgLnJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLWdpZntib3JkZXI6MnB4IHNvbGlkICNkOTMwMjV9LnJlY2FwdGNoYS1jaGVja2JveC1jbGVhck91dGxpbmUucmVjYXB0Y2hhLWNoZWNrYm94LWZvY3VzZWQgLnJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXIsLnJlY2FwdGNoYS1jaGVja2JveC1jbGVhck91dGxpbmUucmVjYXB0Y2hhLWNoZWNrYm94LWZvY3VzZWQgLnJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLWdpZntib3JkZXI6MnB4IHNvbGlkICM0NDQ3NDZ9Ym9keXttYXJnaW46MH0ucmMtYW5jaG9ye2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAwIDRweCAxcHggcmdiYSgwLDAsMCwuMDgpOy13ZWJraXQtYm94LXNoYWRvdzowIDAgNHB4IDFweCByZ2JhKDAsMCwwLC4wOCk7LW1vei1ib3gtc2hhZG93OjAgMCA0cHggMXB4IHJnYmEoMCwwLDAsLjA4KX0ucmMtYW5jaG9yLW5vcm1hbHtoZWlnaHQ6NzRweDt3aWR0aDozMDBweH0ucmMtYW5jaG9yLWNvbXBhY3R7aGVpZ2h0OjEzNnB4O3dpZHRoOjE1NnB4fS5yYy1hbmNob3ItY29tcGFjdCAjcmMtYW5jaG9yLWNsYXNzaWMtd2FybmluZ3t3aWR0aDoxNDBweDt0ZXh0LWFsaWduOmNlbnRlcn0ucmMtYW5jaG9yLWRhcmt7YmFja2dyb3VuZDojMjIyO2NvbG9yOiNmZmZ9LnJjLWFuY2hvci1kYXJrLnJjLWFuY2hvci1jb21wYWN0LC5yYy1hbmNob3ItZGFyay5yYy1hbmNob3Itbm9ybWFse2JvcmRlcjoxcHggc29saWQgIzUyNTI1Mn0ucmMtYW5jaG9yLWRhcmsgI3JjLWFuY2hvci1vdmVyLXF1b3RhLC5yYy1hbmNob3ItZGFyay5yYy1hbmNob3ItY29tcGFjdCAjcmMtYW5jaG9yLWNsYXNzaWMtd2FybmluZywucmMtYW5jaG9yLWRhcmsucmMtYW5jaG9yLWNvbXBhY3QgI3JjLWFuY2hvci1vdmVyLXF1b3RhLC5yYy1hbmNob3ItZGFyay5yYy1hbmNob3ItY29tcGFjdCAjcmMtYW5jaG9yLXYxYmV0YTEtc2h1dGRvd24td2FybmluZywucmMtYW5jaG9yLWRhcmsucmMtYW5jaG9yLW5vcm1hbCAjcmMtYW5jaG9yLWNsYXNzaWMtd2FybmluZywucmMtYW5jaG9yLWRhcmsucmMtYW5jaG9yLW5vcm1hbCAjcmMtYW5jaG9yLXYxYmV0YTEtc2h1dGRvd24td2FybmluZ3tjb2xvcjojZmZmfS5yYy1hbmNob3ItbGlnaHR7YmFja2dyb3VuZDojZjlmOWY5O2NvbG9yOiMwMDB9LnJjLWFuY2hvci1saWdodC5yYy1hbmNob3ItY29tcGFjdCwucmMtYW5jaG9yLWxpZ2h0LnJjLWFuY2hvci1ub3JtYWx7Ym9yZGVyOjFweCBzb2xpZCAjZDNkM2QzfS5yYy1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwMCV9LnJjLWFuY2hvci1jZW50ZXItY29udGFpbmVye2Rpc3BsYXk6dGFibGU7aGVpZ2h0OjEwMCV9LnJjLWFuY2hvci1jZW50ZXItaXRlbXtkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5yYy1hbmNob3ItY29udGVudHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0ucmMtYW5jaG9yLW5vcm1hbCAucmMtYW5jaG9yLWNvbnRlbnR7aGVpZ2h0Ojc0cHg7d2lkdGg6MjA2cHh9LnJjLWFuY2hvci1jb21wYWN0IC5yYy1hbmNob3ItY29udGVudHtoZWlnaHQ6ODVweH0ucmMtYW5jaG9yLWVycm9yLW1lc3NhZ2V7Y29sb3I6I2YwMDtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE2cHg7cGFkZGluZzowIDEwcHh9LnJjLWFuY2hvci1jaGVja2JveHttYXJnaW46MCAxMnB4IDJweCAxMnB4fS5yYy1hbmNob3ItY2hlY2tib3gtbGFiZWx7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxN3B4fS5yYy1hbmNob3Itbm9ybWFsIC5yYy1hbmNob3ItY2hlY2tib3gtbGFiZWx7d2lkdGg6MTUycHh9LnJjLWFuY2hvci1jb21wYWN0IC5yYy1hbmNob3ItY2hlY2tib3gtbGFiZWx7d2lkdGg6OTVweH0ucmMtYW5jaG9yLWVycm9yLW1zZy1jb250YWluZXJ7Y29sb3I6I2Q5MzAyNTtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2xlZnQ6MDtsaW5lLWhlaWdodDoxNHB4O21hcmdpbjoycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9LnJjLWFuY2hvci1ub3JtYWwucmMtYW5jaG9yLWVycm9yIC5yYy1hbmNob3ItZXJyb3ItbXNnLWNvbnRhaW5lcnt3aWR0aDoyNDBweH0ucmMtYW5jaG9yLW5vcm1hbC5yYy1hbmNob3ItZXJyb3IgLnJjLWFuY2hvci1jb250ZW50e21hcmdpbi10b3A6MTBweH0ucmMtYW5jaG9yLWNvbXBhY3QucmMtYW5jaG9yLWVycm9yIC5yYy1hbmNob3ItY29udGVudHttYXJnaW4tdG9wOjI1cHh9LnJjLWFuY2hvci1ub3JtYWwtZm9vdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDo3NHB4O3ZlcnRpY2FsLWFsaWduOnRvcDt3aWR0aDo3MHB4fS5yYy1hbmNob3ItY29tcGFjdC1mb290ZXJ7bWFyZ2luOjAgMTJweDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMzZweH0ucmMtYW5jaG9yLWxvZ28taW1ne2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL2xvZ29fNDgucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnJjLWFuY2hvci1sb2dvLXRleHR7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxMHB4O21hcmdpbi10b3A6NXB4O3RleHQtYWxpZ246Y2VudGVyfS5yYy1hbmNob3ItbGlnaHQgLnJjLWFuY2hvci1sb2dvLXRleHQsLnJjLWFuY2hvci1saWdodCBkaXYgYTpsaW5rLC5yYy1hbmNob3ItbGlnaHQgZGl2IGE6dmlzaXRlZHtjb2xvcjojNTU1fS5yYy1hbmNob3ItZGFyayAucmMtYW5jaG9yLWxvZ28tdGV4dCwucmMtYW5jaG9yLWRhcmsgZGl2IGE6bGluaywucmMtYW5jaG9yLWRhcmsgZGl2IGE6dmlzaXRlZHtjb2xvcjojZjVmNWY1fS5yYy1hbmNob3ItbG9nby1wb3J0cmFpdHttYXJnaW46MTBweCAwIDAgMjZweDt3aWR0aDo1OHB4Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmV9LnJjLWFuY2hvci1sb2dvLWltZy1wb3J0cmFpdHstd2Via2l0LWJhY2tncm91bmQtc2l6ZTozMnB4IDMycHg7YmFja2dyb3VuZC1zaXplOjMycHg7aGVpZ2h0OjMycHg7bWFyZ2luOjAgMTNweCAwIDEzcHg7d2lkdGg6MzJweH0ucmMtYW5jaG9yLWxvZ28tbGFuZHNjYXBley13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmV9LnJjLWFuY2hvci1sb2dvLWltZy1sYW5kc2NhcGV7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4O2JhY2tncm91bmQtc2l6ZToyNHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LnJjLWFuY2hvci1sb2dvLWxhbmRzY2FwZS10ZXh0LWhvbGRlcntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MjRweDttYXJnaW46MCAycHggMCAycHg7d2lkdGg6NTRweH0ucmMtYW5jaG9yLWNvbXBhY3QgLnJjLWFuY2hvci1wdCwucmMtYW5jaG9yLWludmlzaWJsZSAucmMtYW5jaG9yLXB0LC5yYy1hbmNob3Itbm9ybWFsIC5yYy1hbmNob3ItcHR7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZTo4cHg7Zm9udC13ZWlnaHQ6NDAwfS5yYy1hbmNob3ItcHR7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnQlgyRVFaUUJPbm9ERDJVY0JoVzFzU2lObVJROFJMWFFGTkdFZXlnQlkyYzlPYlZ2OVUxdDYzUk5CYzZ3Z1UyVnZCUHVFYjBIUk9iRGdCWGxHamF6dGtCV204YUdKa0FUUlpaYTNSelU2eGhEQXdCdUZKdkdEb2trMGhsUnY2RlNnaGxCR2R0emNxRjZSUUJWd3VkUnpXdkJjR0ZYSGt4TU82RjVEeDBCMEdHSzgyRVBLVG9iSWxRMU93QmFnNHhRR0V1UWJoaFpFeFRwT01EQmRXY01MSkFINnowNWJwVk0zbjF5SUhvQm55NzFFbTVuQmIzRkZhQTFJQjFuUVlrMjY5Zkg1a2N4QnVWbmwyRHdCSFU4RG1tZHlaV1YwS3A5L0IvdXR2aFhJZ1g2NXZlUUJieHh5VEJCaFBJcDQzd0J1VjJISDNOV1pEdkthUlVCY2FXY0JZd0NjY2dHMUNTNWF5dnBMQStWYVMyQW9KRUdaV09ZL09KSHJ5K1BSQmloOFJvaHRHYW9MSUV5R0JkbGhlTXZSclg5ZGRIM3RmS1g5ZXlob0V5LzJkbDNzcUx5aXhpbDB6WElyZXBWeFVoeHNxMENOOFl5cGRCQ3JaTGd6NDNaQ2tLVEI4UHFmNFdrRmtOU1UzZlRXRmFoUFFMaDQyQnY4NTNZWFIyZEhJQm83VnRiaDVrUjNKbS90L284V1VCYjRNL25FbHZMbENrYjRUcHNyVnRCeWFOMllXTTM1T2x3Qk9qc2RjOFBBQjAxby9CZEU1bDl1blVkQW9vWVhBNzR6SUJhd1pmUDhjY1JVK0diNWh2VUFCVlUwemtMaWd5QUJvRzdmNlhNT1pIY1RWVk1CZEFGazN6UUIxRy9FYTlOd2FYUW5CWm5GMlJ4WmxTSTk2UlFCSTg5dkdBTTNDOUk5cDRVK1JYUHNCZEpqWGZtVUIvTnQ2cE4yWlgzY1VpbjBsV3M5OFlueXpCYVdBM1pPcjNSN2hxQmZhdGswMjBxQmZCb1JMSEw2S0hJQmFraHdvM1hkYnhrQlVoNkhSbkVrZmh2K2ZWMVpybjg3ZzgwdUZGYlVJQTlRdHN4eCs0cGNQVVJVR3ZJL0JIeFpHNzVka2ZkZktLVlRtMU9sa0FRWkQxSGI3RWVFZ3lsd0JkSEllblN5Uzk1eEVZZTVwYmdRQllaVjJFMjU1WlR1YVpIbyIpfS5yYy1hbmNob3ItcHQgYXtkaXNwbGF5OmlubGluZTtwYWRkaW5nLWxlZnQ6MXB4O3BhZGRpbmctcmlnaHQ6MXB4O3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWJvdHRvbToycHg7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnJjLWFuY2hvci1wdCBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnJjLWFuY2hvci1ub3JtYWwgLnJjLWFuY2hvci1wdHttYXJnaW46MnB4IDExcHggMCAwO3BhZGRpbmctcmlnaHQ6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDoyNzZweH0ucmMtYW5jaG9yLWNvbXBhY3QgLnJjLWFuY2hvci1wdHttYXJnaW46MCAwIDJweCAwO3dpZHRoOjEzMnB4fS5yYy1hbmNob3ItYXJpYS1zdGF0dXN7ZGlzcGxheTpub25lfSNyYy1hbmNob3ItYWxlcnQsLnJjLWFuY2hvci1hbGVydHtjb2xvcjpyZWQ7Zm9udC1zaXplOjlweDttYXJnaW46MnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfSNyYy1hbmNob3ItY2xhc3NpYy13YXJuaW5nLCNyYy1hbmNob3ItdjFiZXRhMS1zaHV0ZG93bi13YXJuaW5ne2JvdHRvbTowO2NvbG9yOiM1NTU7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZTo5cHg7cGFkZGluZzo0cHg7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTkwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjBweH0jcmMtYW5jaG9yLWNsYXNzaWMtd2FybmluZyBhe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtwYWRkaW5nOjRweDttYXJnaW46LTRweH0jcmMtYW5jaG9yLXYxYmV0YTEtc2h1dGRvd24td2FybmluZyBhe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtwYWRkaW5nOjRweDttYXJnaW46LTRweH0jcmMtYW5jaG9yLW92ZXItcXVvdGF7Ym90dG9tOjA7Y29sb3I6IzU1NTtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjlweDtwYWRkaW5nOjRweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxNzBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoyMHB4fS5yYy1hbmNob3ItY29tcGFjdCAucmMtYW5jaG9yLWNvbnRlbnQgI3JjLWFuY2hvci1vdmVyLXF1b3Rhe3dpZHRoOjE0OHB4fS5yYy1hbmNob3Itbm9ybWFsIC5yYy1hbmNob3ItcHQucmMtYW5jaG9yLW92ZXItcXVvdGEtcHR7d2lkdGg6MTMwcHh9LnJjLWFuY2hvci1sb2dvLXBvcnRyYWl0LnJjLWFuY2hvci1vdmVyLXF1b3RhLWxvZ297bWFyZ2luLXRvcDo2cHh9I3JjLWFuY2hvci1pbnZpc2libGUtY2xhc3NpYy13YXJuaW5nLCNyYy1hbmNob3ItaW52aXNpYmxlLW92ZXItcXVvdGF7Zm9udC1zaXplOjlweDtsaW5lLWhlaWdodDpub3JtYWw7d2hpdGUtc3BhY2U6bm9ybWFsfSNyYy1hbmNob3ItaW52aXNpYmxlLWNsYXNzaWMtd2FybmluZyBhLCNyYy1hbmNob3ItaW52aXNpYmxlLW92ZXItcXVvdGEgYSwjcmMtYW5jaG9yLWludmlzaWJsZS12MWJldGExLXNodXRkb3duLXdhcm5pbmcgYXtjb2xvcjp3aGl0ZX0jcmMtYW5jaG9yLWludmlzaWJsZS12MWJldGExLXNodXRkb3duLXdhcm5pbmd7Zm9udC1zaXplOjlweDtsaW5lLWhlaWdodDpub3JtYWw7d2hpdGUtc3BhY2U6bm9ybWFsfS5yYy1hbmNob3ItaW52aXNpYmxle2hlaWdodDo2MHB4O3dpZHRoOjI1NnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS5yYy1hbmNob3ItaW52aXNpYmxlLXRleHR7YmFja2dyb3VuZDojMWE3M2U4O2NvbG9yOndoaXRlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTtmbGV4LWdyb3c6MTtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NDAwO2hlaWdodDoxMDAlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjIwcHg7cGFkZGluZzowIDE2cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5yYy1hbmNob3ItaW52aXNpYmxlLXRleHQuc21hbGx0ZXh0e2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MCAxMHB4O2xpbmUtaGVpZ2h0OjE2cHg7d2hpdGUtc3BhY2U6bm9ybWFsfS5yYy1hbmNob3ItaW52aXNpYmxlLXRleHQuc21hbGx0ZXh0IC5yYy1hbmNob3ItcHR7bGluZS1oZWlnaHQ6MTJweDt3aGl0ZS1zcGFjZTpub3JtYWx9LnJjLWFuY2hvci1pbnZpc2libGUtdGV4dC5zbWFsbHRleHQgLnJjLWFuY2hvci1wdCBhOmxpbmt7Zm9udC1zaXplOjlweH0ucmMtYW5jaG9yLW5vcm1hbC1mb290ZXIuc21hbGx0ZXh0IC5yYy1hbmNob3ItcHR7Zm9udC1zaXplOjVweDtsaW5lLWhlaWdodDo2cHh9LnJjLWFuY2hvci1pbnZpc2libGUtdGV4dCBzdHJvbmd7Zm9udC13ZWlnaHQ6NTAwfS5yYy1hbmNob3ItaW52aXNpYmxlIC5yYy1hbmNob3Itbm9ybWFsLWZvb3RlciAucmMtYW5jaG9yLXB0ey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDo3MHB4O21hcmdpbi10b3A6MnB4fS5yYy1hbmNob3ItbG9nby1pbWctbGFyZ2V7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo0NHB4IDQ0cHg7YmFja2dyb3VuZC1zaXplOjQ0cHg7bWFyZ2luOjhweCAxM3B4IDAgMTNweDtoZWlnaHQ6NDRweDt3aWR0aDo0NHB4fS5yYy1hbmNob3ItaW52aXNpYmxlLWhvdmVyLWhvdmVyZWQgLnJjLWFuY2hvci1sb2dvLWltZy1sYXJnZSwucmMtYW5jaG9yLWludmlzaWJsZS1ub2hvdmVyIC5yYy1hbmNob3ItbG9nby1pbWctbGFyZ2V7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6NDRweCA0NHB4O2JhY2tncm91bmQtc2l6ZTo0NHB4O21hcmdpbjo4cHggMTNweCAwIDEzcHg7aGVpZ2h0OjQ0cHg7d2lkdGg6NDRweH0ucmMtYW5jaG9yLWludmlzaWJsZS1ob3Zlci1ob3ZlcmVkIC5yYy1hbmNob3Itbm9ybWFsLWZvb3RlciAucmMtYW5jaG9yLXB0LC5yYy1hbmNob3ItaW52aXNpYmxlLW5vaG92ZXIgLnJjLWFuY2hvci1ub3JtYWwtZm9vdGVyIC5yYy1hbmNob3ItcHR7b3BhY2l0eTowfS5yYy1hbmNob3ItaW52aXNpYmxlLWhvdmVyLWhvdmVyZWQgLnJjLWFuY2hvci1pbnZpc2libGUtdGV4dCAucmMtYW5jaG9yLXB0LC5yYy1hbmNob3ItaW52aXNpYmxlLW5vaG92ZXIgLnJjLWFuY2hvci1pbnZpc2libGUtdGV4dCAucmMtYW5jaG9yLXB0e29wYWNpdHk6MX0ucmMtYW5jaG9yLWludmlzaWJsZS10ZXh0IC5yYy1hbmNob3ItcHR7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlfS5yYy1hbmNob3ItaW52aXNpYmxlLXRleHQgLnJjLWFuY2hvci1wdCBhOmxpbmssLnJjLWFuY2hvci1pbnZpc2libGUtdGV4dCAucmMtYW5jaG9yLXB0IGE6dmlzaXRlZHtjb2xvcjp3aGl0ZTtmb250LXNpemU6MTBweH0ucmMtYW5jaG9yLWludmlzaWJsZS1ob3ZlciAucmMtYW5jaG9yLWludmlzaWJsZS10ZXh0IC5yYy1hbmNob3ItcHQgYTpsaW5re2Rpc3BsYXk6bm9uZX0ucmMtYW5jaG9yLWludmlzaWJsZS1ob3Zlci1ob3ZlcmVkIC5yYy1hbmNob3ItaW52aXNpYmxlLXRleHQgLnJjLWFuY2hvci1wdCBhOmxpbmssLnJjLWFuY2hvci1pbnZpc2libGUtbm9ob3ZlciAucmMtYW5jaG9yLWludmlzaWJsZS10ZXh0IC5yYy1hbmNob3ItcHQgYTpsaW5re2Rpc3BsYXk6aW5saW5lfS5yYy1hbmNob3ItaW52aXNpYmxlLWhvdmVyIC5yYy1hbmNob3Itbm9ybWFsLWZvb3RlciAucmMtYW5jaG9yLXB0IGE6bGlua3tkaXNwbGF5OmlubGluZX0ucmMtYW5jaG9yLWludmlzaWJsZS1ob3Zlci1ob3ZlcmVkIC5yYy1hbmNob3Itbm9ybWFsLWZvb3RlciAucmMtYW5jaG9yLXB0IGE6bGluaywucmMtYW5jaG9yLWludmlzaWJsZS1ub2hvdmVyIC5yYy1hbmNob3Itbm9ybWFsLWZvb3RlciAucmMtYW5jaG9yLXB0IGE6bGlua3tkaXNwbGF5Om5vbmV9LnJjLWF1ZGlvY2hhbGxlbmdlLXJlc3BvbnNlLWZpZWxke21hcmdpbjo3cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnJjLWF1ZGlvY2hhbGxlbmdlLXJlc3BvbnNlLWZpZWxkIC5yYy1yZXNwb25zZS1pbnB1dC1maWVsZHt3aWR0aDoyMjBweH0ucmMtYXVkaW9jaGFsbGVuZ2UtZXJyb3ItbWVzc2FnZXtjb2xvcjojZDkzMDI1O2ZvbnQtZmFtaWx5OlJvYm90byxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7bWFyZ2luOjIwcHggMjBweCAwIDIwcHh9LnJjLWF1ZGlvY2hhbGxlbmdlLWluc3RydWN0aW9uc3tmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjoxMHB4IDIwcHggMTBweCAyMHB4fS5yYy1hdWRpb2NoYWxsZW5nZS1wbGF5LWJ1dHRvbnttYXJnaW46MCAyMHB4IDAgMjBweH0ucmMtYXVkaW9jaGFsbGVuZ2UtcGxheS1idXR0b24gLnJjLWJ1dHRvbi1kZWZhdWx0e2JhY2tncm91bmQ6I2Q4ZDhkODtjb2xvcjojMDAwO2ZvbnQtd2VpZ2h0OjUwMDt3aWR0aDoxMDAlfS5yYy1hdWRpb2NoYWxsZW5nZS1pbnB1dC1sYWJlbHtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjoxMHB4IDIwcHggMTBweCAyMHB4fS5yYy1hdWRpb2NoYWxsZW5nZS1jb250cm9sIGF1ZGlve2hlaWdodDozMHB4O3dpZHRoOjI0MHB4fS5yYy1hdWRpb2NoYWxsZW5nZS10ZG93bmxvYWR7bWFyZ2luOjVweCAyMHB4IDVweCAyMHB4O3RleHQtYWxpZ246Y2VudGVyfS5yYy1hdWRpb2NoYWxsZW5nZS10ZG93bmxvYWQtbGlua3tiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9kb3dubG9hZC5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTozNnB4IDM2cHg7YmFja2dyb3VuZC1zaXplOjM2cHg7Y29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjM2cHg7b3BhY2l0eTouNTU7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjM2cHh9LnJjLWF1ZGlvY2hhbGxlbmdlLXRkb3dubG9hZC1saW5rOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjojZDhkOGQ4fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOmFjdGl2ZSkgYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsucmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkLWxpbmt7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvZG93bmxvYWRfd2hpdGUucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MzZweCAzNnB4O2JhY2tncm91bmQtc2l6ZTozNnB4O2NvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozNnB4O29wYWNpdHk6LjU1O292ZXJmbG93OmhpZGRlbjt3aWR0aDozNnB4fX0ucmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkLWxpbmstb24tZGFya3tiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9kb3dubG9hZF93aGl0ZS5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTozNnB4IDM2cHg7YmFja2dyb3VuZC1zaXplOjM2cHg7Y29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjM2cHg7b3BhY2l0eTouNTU7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjM2cHh9LnJjLWF1ZGlvY2hhbGxlbmdlLXRkb3dubG9hZC1saW5rLW9uLWRhcms6Zm9jdXMtdmlzaWJsZXtiYWNrZ3JvdW5kLWNvbG9yOiNkOGQ4ZDh9LnJjLWF1ZGlvY2hhbGxlbmdlLXRkb3dubG9hZC1saW5rOmZvY3VzLC5yYy1hdWRpb2NoYWxsZW5nZS10ZG93bmxvYWQtbGluazpob3ZlcntvcGFjaXR5Oi44O291dGxpbmU6bm9uZX0ucmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkLWxpbmstb24tZGFyazpmb2N1cywucmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkLWxpbmstb24tZGFyazpob3ZlcntvcGFjaXR5Oi44O291dGxpbmU6bm9uZX0uZmFrZS1mb2N1cy1hdWRpb3toZWlnaHQ6MDtvcGFjaXR5OjA7d2lkdGg6MH0ucmMtYnV0dG9uLWRlZmF1bHR7YmFja2dyb3VuZDojMWE3M2U4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6NDJweDtsaW5lLWhlaWdodDo0MnB4O21pbi13aWR0aDoxMDBweDtwYWRkaW5nOjAgMTBweCAwIDEwcHg7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjVzIGVhc2U7dHJhbnNpdGlvbjphbGwgLjVzIGVhc2V9LnJjLWJ1dHRvbi1kZWZhdWx0OmZvY3Vze291dGxpbmU6MDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMnB0ICMxODVhYmM7Ym94LXNoYWRvdzowIDAgMCAycHQgIzE4NWFiY30ucmMtYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWR7YmFja2dyb3VuZDpyZ2JhKDczLDE0MywyMjUsLjUpO2N1cnNvcjpkZWZhdWx0fS5yYy1idXR0b24tcmVke2JhY2tncm91bmQ6I2UyNGE0YX0ucmMtYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWQucmMtYnV0dG9uLXJlZHtiYWNrZ3JvdW5kOnJnYmEoMjI2LDc0LDc0LC40OSl9LnJjLWNhbnZhcy1pbWFnZXtkaXNwbGF5Om5vbmV9LnJjLWNhbnZhcy1jYW52YXN7Y3Vyc29yOnBvaW50ZXJ9Ym9keXttYXJnaW46MH0ucmMtaW1hZ2VzZWxlY3QtaW5zdHJ1Y3Rpb25zIHN0cm9uZ3tmb250LXdlaWdodDo5MDA7ZGlzcGxheTpibG9jaztmb250LXNpemU6MjhweH0ucmMtZm9vdGVye2ZvbnQtZmFtaWx5OlJvYm90byxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1zZXJpZjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5yYy1zZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RmZGZkZjttYXJnaW4tYm90dG9tOjFweH0ucmMtY29udHJvbHN7d2lkdGg6MTAwJX0ucHJpbWFyeS1jb250cm9sc3toZWlnaHQ6NjBweH0ucmMtYnV0dG9uc3tmbG9hdDpsZWZ0O2hlaWdodDo0OHB4O21hcmdpbjo2cHggMCA2cHggNnB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uZmFrZS1mb2N1c3toZWlnaHQ6MDtvcGFjaXR5OjA7d2lkdGg6MH0uYnV0dG9uLWhvbGRlciwucXItYnV0dG9uLWhvbGRlcntmbG9hdDpsZWZ0O2hlaWdodDo0OHB4fS5yYy1idXR0b24tcmVsb2Fke2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL3JlZnJlc2hfMngucG5nKX0ucmMtYnV0dG9uLXJlbG9hZDpmb2N1cy12aXNpYmxle2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkOH1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczphY3RpdmUpIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7LnJjLWJ1dHRvbi1yZWxvYWR7YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvcmVmcmVzaF93aGl0ZV8yeC5wbmcpfX0ucmMtYnV0dG9uLXJlbG9hZC1vbi1kYXJre2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL3JlZnJlc2hfd2hpdGVfMngucG5nKX0ucmMtYnV0dG9uLXJlbG9hZC1vbi1kYXJrOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjojZDhkOGQ4fS5yYy1idXR0b24tYXVkaW97YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvYXVkaW9fMngucG5nKX0ucmMtYnV0dG9uLWF1ZGlvOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjojZDhkOGQ4fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOmFjdGl2ZSkgYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsucmMtYnV0dG9uLWF1ZGlve2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL2F1ZGlvX3doaXRlXzJ4LnBuZyl9fS5yYy1idXR0b24tYXVkaW8tb24tZGFya3tiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9hdWRpb193aGl0ZV8yeC5wbmcpfS5yYy1idXR0b24tYXVkaW8tb24tZGFyazpmb2N1cy12aXNpYmxle2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkOH0ucmMtYnV0dG9uLWltYWdle2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL2ltYWdlXzJ4LnBuZyl9LnJjLWJ1dHRvbi1pbWFnZTpmb2N1cy12aXNpYmxle2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkOH1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczphY3RpdmUpIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7LnJjLWJ1dHRvbi1pbWFnZXtiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9pbWFnZV93aGl0ZV8yeC5wbmcpfX0ucmMtYnV0dG9uLWltYWdlLW9uLWRhcmt7YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvaW1hZ2Vfd2hpdGVfMngucG5nKX0ucmMtYnV0dG9uLWltYWdlLW9uLWRhcms6Zm9jdXMtdmlzaWJsZXtiYWNrZ3JvdW5kLWNvbG9yOiNkOGQ4ZDh9LnJjLWJ1dHRvbi1saXZlbmVzc3tiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9saXZlbmVzc19kYXJrLnBuZyl9LnJjLWJ1dHRvbi1xcntiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9tb2RhY19tb2JpbGVfZGFyay5wbmcpfS5yYy1idXR0b24tbGl2ZW5lc3M6Zm9jdXMtdmlzaWJsZXtiYWNrZ3JvdW5kLWNvbG9yOiNkOGQ4ZDh9LnJjLWJ1dHRvbi1xcjpmb2N1cy12aXNpYmxle2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkOH1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczphY3RpdmUpIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7LnJjLWJ1dHRvbi1saXZlbmVzc3tiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9saXZlbmVzc19saWdodC5wbmcpfX1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczphY3RpdmUpIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7LnJjLWJ1dHRvbi1xcntiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9tb2RhY19tb2JpbGVfbGlnaHQucG5nKX19LnJjLWJ1dHRvbi1saXZlbmVzcy1vbi1kYXJre2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL2xpdmVuZXNzX2xpZ2h0LnBuZyl9LnJjLWJ1dHRvbi1xci1vbi1kYXJre2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL3FyX2xpZ2h0LnBuZyl9LnJjLWJ1dHRvbi1saXZlbmVzcy1vbi1kYXJrOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjojZDhkOGQ4fS5yYy1idXR0b24tcXItb24tZGFyazpmb2N1cy12aXNpYmxle2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkOH0ucmMtYnV0dG9uLWhlbHB7YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvaW5mb18yeC5wbmcpfS5yYy1idXR0b24taGVscDpmb2N1cy12aXNpYmxle2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkOH1AbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczphY3RpdmUpIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7LnJjLWJ1dHRvbi1oZWxwe2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL2luZm9fd2hpdGVfMngucG5nKX19LnJjLWJ1dHRvbi1oZWxwLW9uLWRhcmt7YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvaW5mb193aGl0ZV8yeC5wbmcpfS5yYy1idXR0b24taGVscC1vbi1kYXJrOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjojZDhkOGQ4fS5yYy1idXR0b24tdW5kb3tiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi91bmRvXzJ4LnBuZyl9LnJjLWJ1dHRvbi11bmRvOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjojZDhkOGQ4fUBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOmFjdGl2ZSkgYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsucmMtYnV0dG9uLXVuZG97YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvdW5kb193aGl0ZV8yeC5wbmcpfX0ucmMtYnV0dG9uLXVuZG8tb24tZGFya3tiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi91bmRvX3doaXRlXzJ4LnBuZyl9LnJjLWJ1dHRvbi11bmRvLW9uLWRhcms6Zm9jdXMtdmlzaWJsZXtiYWNrZ3JvdW5kLWNvbG9yOiNkOGQ4ZDh9LnJjLWJ1dHRvbnstd2Via2l0LWJhY2tncm91bmQtc2l6ZTozMnB4IDMycHg7YmFja2dyb3VuZC1zaXplOjMycHggMzJweDtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6NDhweDtvcGFjaXR5Oi41NTt3aWR0aDo0OHB4O3BhZGRpbmc6MDtib3JkZXI6MDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCV9LnJjLWJ1dHRvbjpmb2N1cywucmMtYnV0dG9uOmhvdmVye29wYWNpdHk6Ljg7b3V0bGluZTpub25lfS52ZXJpZnktYnV0dG9uLWhvbGRlcntmbG9hdDpyaWdodDttYXJnaW46OHB4IDhweCA5cHggMH0ucmMtY2hhbGxlbmdlLWhlbHB7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdy15OnNjcm9sbDtwYWRkaW5nOjVweCAyMHB4IDVweCAyMHB4fS5yZWxvYWQtaWNvbntoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS5hcHBzLXRvYXN0e3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCU7ei1pbmRleDoxMDF9LmFwcHMtdG9hc3QtY29udGVudHtiYWNrZ3JvdW5kOiMzMjMyMzI7Ym9yZGVyLXJhZGl1czoycHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgNnB4IDEwcHggcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDE4cHggcmdiYSgwLDAsMCwuMTIpLDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsLjQpO2JveC1zaGFkb3c6MCA2cHggMTBweCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMThweCByZ2JhKDAsMCwwLC4xMiksMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwuNCk7Y29sb3I6I2VlZTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250OjEycHgvMjBweCBSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7cGFkZGluZzoxNHB4O3RleHQtYWxpZ246Y2VudGVyfS5nb29nLWNvbnRhaW5lcjpmb2N1c3tvdXRsaW5lOm5vbmV9LnJjLWRlZmF1bHRjaGFsbGVuZ2UtcmVzcG9uc2UtZmllbGR7bWFyZ2luOjdweDt0ZXh0LWFsaWduOmNlbnRlcn0ucmMtZGVmYXVsdGNoYWxsZW5nZS1yZXNwb25zZS1maWVsZCAucmMtcmVzcG9uc2UtaW5wdXQtZmllbGR7d2lkdGg6MjMwcHh9LnJjLWRlZmF1bHRjaGFsbGVuZ2UtcGF5bG9hZHtib3JkZXI6bm9uZTtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO21pbi1oZWlnaHQ6NjFweDt0ZXh0LWFsaWduOmNlbnRlcn0ucmMtZGVmYXVsdGNoYWxsZW5nZS1pbmNvcnJlY3QtcmVzcG9uc2V7Y29sb3I6I2ZmMWIxYjtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE0cHg7bWFyZ2luLWxlZnQ6MjBweH0ucmMtZG9zY2FwdGNoYS1oZWFkZXJ7cGFkZGluZzoxMHB4O21hcmdpbjoxMHB4O2hlaWdodDoyMCU7YmFja2dyb3VuZC1jb2xvcjojMWE3M2U4fS5yYy1kb3NjYXB0Y2hhLWhlYWRlci10ZXh0e2ZvbnQtZmFtaWx5OlJvYm90byxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MjJweDtmb250LXdlaWdodDo0MDA7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6d2hpdGV9LnJjLWRvc2NhcHRjaGEtYm9keXtoZWlnaHQ6ODAlfS5yYy1kb3NjYXB0Y2hhLWJvZHktdGV4dHtmb250LWZhbWlseTpSb2JvdG8saGVsdmV0aWNhLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwO3BhZGRpbmc6MTBweCAxNXB4IDEwcHggMTVweH0ucmMtZG9zY2FwdGNoYS1mb290ZXJ7cG9pbnRlci1ldmVudHM6bm9uZX0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZUxpdmVuZXNzT3V0ZXJDb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VMaXZlbmVzc0NvbnRhaW5lcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTtmbGV4LWdyb3c6MX0uZ29vZy1jb250YWluZXI6Zm9jdXN7b3V0bGluZTpub25lfSNyYy1pbWFnZXNlbGVjdHttaW4td2lkdGg6MjQwcHg7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2JhY2tncm91bmQtY29sb3I6I2ZmZn0jcmMtaW1hZ2VzZWxlY3QgLnJjLWJ1dHRvbjpmb2N1c3tvdXRsaW5lOm5vbmV9LnJjLWltYWdlc2VsZWN0LWRlc2N7bWFyZ2luLWxlZnQ6LTEwcHg7bWFyZ2luLXRvcDotMTBweDtwYWRkaW5nLXJpZ2h0OjEwMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5yYy1pbWFnZXNlbGVjdC1pbnN0cnVjdGlvbnMgLnJjLWltYWdlc2VsZWN0LWRlc2Mgc3Ryb25ne2ZvbnQtc2l6ZToyMnB4fS5yYy1pbWFnZXNlbGVjdC1kZXNjIHNwYW57ZGlzcGxheTpibG9ja30ucmMtaW1hZ2VzZWxlY3QtZGVzYy1uby1jYW5vbmljYWx7cG9zaXRpb246cmVsYXRpdmV9LnJjLWltYWdlc2VsZWN0LWRlc2Mtbm8tY2Fub25pY2FsIHNwYW57ZGlzcGxheTpibG9ja30ucmMtaW1hZ2VzZWxlY3QtcGF5bG9hZHttaW4td2lkdGg6MjQwcHg7bWFyZ2luOjAgN3B4O3BhZGRpbmc6N3B4IDB9LnJjLWltYWdlc2VsZWN0LWNoYWxsZW5nZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5yYy1mb290ZXJ7bWluLXdpZHRoOjI0MHB4fS5yYy1pbWFnZXNlbGVjdC1lcnJvci1keW5hbWljLW1vcmUsLnJjLWltYWdlc2VsZWN0LWVycm9yLXNlbGVjdC1tb3JlLC5yYy1pbWFnZXNlbGVjdC1lcnJvci1zZWxlY3Qtc29tZXRoaW5nLC5yYy1pbWFnZXNlbGVjdC1pbmNvcnJlY3QtcmVzcG9uc2V7Y29sb3I6I2Q5MzAyNTtmb250LXNpemU6MTRweDtwYWRkaW5nOjdweCAwO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZX0ucmMtaW1hZ2VzZWxlY3QtZGVzYy13cmFwcGVye21hcmdpbi1ib3R0b206NnB4fS5yYy1pbWFnZXNlbGVjdC1jaGVja2JveHtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQWdDQVlBQUFCemVucjBBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBR25tbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0Z1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTnk0eExXTXdNREFnTnprdVpHRmlZV05pWWl3Z01qQXlNUzh3TkM4eE5DMHdNRG96T1RvME5DQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cGtZejBpYUhSMGNEb3ZMM0IxY213dWIzSm5MMlJqTDJWc1pXMWxiblJ6THpFdU1TOGlJSGh0Ykc1ek9uQm9iM1J2YzJodmNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzl3YUc5MGIzTm9iM0F2TVM0d0x5SWdlRzFzYm5NNmVHMXdUVTA5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5dGJTOGlJSGh0Ykc1ek9uTjBSWFowUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmMxUjVjR1V2VW1WemIzVnlZMlZGZG1WdWRDTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lESXpMakFnS0UxaFkybHVkRzl6YUNraUlIaHRjRHBEY21WaGRHVkVZWFJsUFNJeU1ESXhMVEV4TFRBMFZESXpPakUyT2pJMkxUQTNPakF3SWlCNGJYQTZUVzlrYVdaNVJHRjBaVDBpTWpBeU1TMHhNUzB3TkZReU16b3hOem96TlMwd056b3dNQ0lnZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDBpTWpBeU1TMHhNUzB3TkZReU16b3hOem96TlMwd056b3dNQ0lnWkdNNlptOXliV0YwUFNKcGJXRm5aUzl3Ym1jaUlIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVTlJak1pSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TkRNM1kyTTJNVEV0TWpnNU1pMDBNbUZrTFdFeVltWXRNamsxTXpBNE5HWXhOakExSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZZakV3WkdZeU5tSXROR1U1TWkwd05UUXhMVGhqTURZdE1USmpOV1E1WkRGbU1qY3hJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZaakUwWXpBeVltUXROREpoT0MwME9Ea3hMV0l4TWpNdE1XWmhZamcyTnpabE56Sm1JajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwbU1UUmpNREppWkMwME1tRTRMVFE0T1RFdFlqRXlNeTB4Wm1GaU9EWTNObVUzTW1ZaUlITjBSWFowT25kb1pXNDlJakl3TWpFdE1URXRNRFJVTWpNNk1UWTZNall0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0F5TXk0d0lDaE5ZV05wYm5SdmMyZ3BJaTgrSUR4eVpHWTZiR2tnYzNSRmRuUTZZV04wYVc5dVBTSnpZWFpsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwak1ESmtNRGcyWmkxbU5tWmpMVFJqTXpJdFlXVTJaaTB3T1dNeFptVTRNekZoTnpjaUlITjBSWFowT25kb1pXNDlJakl3TWpFdE1URXRNRFJVTWpNNk1UYzZNRGt0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0F5TXk0d0lDaE5ZV05wYm5SdmMyZ3BJaUJ6ZEVWMmREcGphR0Z1WjJWa1BTSXZJaTgrSUR4eVpHWTZiR2tnYzNSRmRuUTZZV04wYVc5dVBTSnpZWFpsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvME16ZGpZell4TVMweU9Ea3lMVFF5WVdRdFlUSmlaaTB5T1RVek1EZzBaakUyTURVaUlITjBSWFowT25kb1pXNDlJakl3TWpFdE1URXRNRFJVTWpNNk1UYzZNelV0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0F5TXk0d0lDaE5ZV05wYm5SdmMyZ3BJaUJ6ZEVWMmREcGphR0Z1WjJWa1BTSXZJaTgrSUR3dmNtUm1PbE5sY1Q0Z1BDOTRiWEJOVFRwSWFYTjBiM0o1UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUGxYc3V0QUFBQVNkU1VSQlZGaUZ0WmRiYkJSVkdJQy9tZG5aZG5kcjIrMGwwQllzYUVKNEFCR2tVaEhqbFQ2b1Q3UVJiY0hhcUdraHZGQmpCVTNBS3k5YVRZd2FROXBJNndNeEVDbFFpTGNtS29tdFlpa0NrWnNJTGJZR1d1aDJhWGZMdHJ2SGg1M1pQVHZkYmJkdFBNbkp6T3pNbWU4Ny8zOTJ6amtLeVJkRk9pcHg3Z3VwSmxXRUVOaVNCQ3VBQ2lqM2JmZ214NUcrZEdVUWV6NGgzUzFDd1FHaCtQb0d2Y2QrdTdDM2ZBZ0lUVWNtWGsvaWdiVlZOZGNyYkpxcjZuTHFyVFdKR2l6MDMvRkRhSHh3ZC92dWVZZUFvRVZtUWhGQ0pCU0lnSXVxTHhUM3BxWC9ORlZQWWtWYzdVSGwvSmFPVDFlZXNZZ2tKYUFBR21BcmZ2bnF4cDUwZmZkMDRISlpNREpTOXN2bmQ3Y0M0L0VraEJDb2llQVAxSFJYemdZT2NNWGwybCs4K2V4VGdJNHhocXpQS0paekZkRHZmNmx6OVQ4WkJXMnpnY3NsMzNONnhlK05hLy9FRWdsckJNSzl6OHF5enhaZWNZK2JMeXR6SXRlNmZkVkhoS09nWVltQ0tXRDIzbFpVZHJ4aU52QU55OXk4VzY3ejJGS05QUnZERXQxTzM4UEYxWjBsaGtCTUttUUJEZEIxTGFkcXB2Q055OXk4ODV5TzNhWXdNaW80K090NDVKNmlGbFlSWnl5WUZ5cWdMU2pabFhmRjZTK2FDZno1ZTkyOGJjQ0hSd1YxelFFT1hQQkU3bmM3eDU5MkZqN2t3cElHVlRwcWN3dWZLSjRwL0sxbm8vRFhtZ0swU0hDekxINzBqV1ZZMG1DZWhGTmdjK1RMRGRia1p0Q3hMWmVhVmU2RThNcmxVZmd0djZDdUtVREx4WWx3QUp1V01ZOW9CR0lFVkVCRE9IUGtCanZLN2N6UFVYbTlWR2RUSElrWGxydDVjMzBzL0dBQ2VOakFrUzFGQU9RVFFFSDFldVhuNjF2R3VEa3MwRlNGN2FVNm00cWpFbFVyM093MDRGNERmdWl2U2VDQUNIcTlVdThWSURJYktvQXlGaGk2aGlNdjB1RGJiZytpTVpQNkYrMWtwU2xzWDZlajRNWWZnSjNyZFhRdENqODhCUnpndHZmZjY5YmY1QWlJL3ZOSFRsa2YrTzZxaDlyR0FEZHVoU094YlowZWhmc0VkWHVTZ3dQODNmSEoyVVFDQWhBOXg5N3ZpOWZ3KzZzZXRqWUVHREFrVFBpclRRRU9YMG9PWGpnaWZoN3VPZWJETWoycnhrWElxTUY1UTVkMnhYdEJXNitIV2tOaXlDZDQ1WXNBclVuQ0FmeStFMThUT3hjSWlBNEdIVWdGMHV4cGM3Snlxdjg0bmVoRmp4ZGtrbUtIbzVlVGh3UDAxYzlkREhpQllXQVVHQmRDQ0RNRkljTnVMREI4elpmVjA3WTUwWXZhZWozVGhydk83aTBIQXNBWWxobFJUa0hRZUNCd1psL0Zqd1ZEbHo2ZUZpVkJtZE4vWXNmRm8xdTdnTnZHKzJNV0p2SWdOQVZHQWYveGhnY2I1bnN2ZnpZYitOeUJrKzkxTlQ5NUFQQkxBa0ZaUUo2YlZjTGZoVlRBQ2JnQTE1S3k1clUzQzBzK21DNDgvZHorNm5OSHRyUURJNFR6YmtxWUtaaXdKb3lzaUlBVVE4SUpPRlBkQ3pPWGxEYVY5MlVzcXBrS25IZmo1SWVudm5wbTM1amZPd3o0akNwSElHWkZaRjJqUmRZRmhrUXE0RENPcVlCKzUrcmFSZGwzUGJKRVQ4bk8xVlJIK25ob1pIQnNkR0NnLzF4clYyOW5ZemZod1hiYmdQb0pwOVRzZVV6NEU2MktWYUxwc0JzaVpyVVRYVnJKWDlISXYwZ1NNS3M1OG1QZ3BrQzhuWkYxWnhQNWR4aFNrd21ZRW5KTnVDK0FxWGRHWmpTME9OWDhpTW1pWmpWN1BPT2RVVHdSV1VpZVV1Vm9tWjkwd1NTOW5xNkFMQ0x2a00yakNaR1BTZTJRaFJBb1FpUzltLzVmeW4vbHUvVUlnQkV4clFBQUFBQkpSVTVFcmtKZ2dnPT0pO2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZX0ucmMtaW1hZ2VzZWxlY3QtcmVwb3J0LWltYWdle2JvdHRvbTowO2xlZnQ6MDtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ucmMtaW1hZ2VzZWxlY3QtdGFibGUtMzMsLnJjLWltYWdlc2VsZWN0LXRhYmxlLTQyLC5yYy1pbWFnZXNlbGVjdC10YWJsZS00NHtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMXMgZWFzZTt0cmFuc2l0aW9uOmFsbCAxcyBlYXNlfS5yYy1pbWFnZXNlbGVjdC10YWJsZS0zMywucmMtaW1hZ2VzZWxlY3QtdGFibGUtNDJ7bWFyZ2luOi0ycHh9LnJjLWltYWdlc2VsZWN0LXRhYmxlLTQ0e21hcmdpbjotMXB4fS5yYy1pbWFnZXNlbGVjdC10YWJsZS00MiB0ZHtwYWRkaW5nOjJweH0ucmMtaW1hZ2VzZWxlY3QtdGFibGUtMzMgdGR7cGFkZGluZzoycHh9LnJjLWltYWdlc2VsZWN0LXRhYmxlLTQ0IHRke3BhZGRpbmc6MXB4fS5yYy1pbWFnZS10aWxlLXRhcmdldCB0cix0ZHttYXJnaW46MH0ucmMtaW1hZ2VzZWxlY3Qta2V5Ym9hcmR7b3V0bGluZTpzb2xpZCBvcmFuZ2UhaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTAwfXRkOmZvY3Vze291dGxpbmU6bm9uZX0ucmMtaW1hZ2UtdGlsZS1vdmVybGF5e2Rpc3BsYXk6bm9uZTtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjojMWE3M2U4O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDoyOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllciguNDksLjc4LC40NiwxLjM0KTt0cmFuc2l0aW9uOm9wYWNpdHkgMXMgY3ViaWMtYmV6aWVyKC40OSwuNzgsLjQ2LDEuMzQpfS5yYy1pbWFnZS1mb2xsb3d1cC10aWxle2Rpc3BsYXk6YmxvY2t9LnJjLWltYWdlc2VsZWN0LWR5bmFtaWMtc2VsZWN0ZWR7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAycyBlYXNlO3RyYW5zaXRpb246YWxsIDJzIGVhc2U7b3BhY2l0eTouMDF9LnJjLWltYWdlc2VsZWN0LWR5bmFtaWMtc2VsZWN0ZWQgLnJjLWltYWdlLXRpbGUtdGFyZ2V0e29wYWNpdHk6MX0ucmMtaW1hZ2VzZWxlY3QtZHluYW1pYy1zZWxlY3RlZCAucmMtaW1hZ2VzZWxlY3QtY2hlY2tib3h7ZGlzcGxheTpibG9jaztvcGFjaXR5OjE7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7bGVmdDo1MCU7dG9wOjUwJTttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tdG9wOi0zMHB4fS5yYy1pbWFnZS10aWxlLXRhcmdldHstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTtwb3NpdGlvbjpyZWxhdGl2ZX0ucmMtaW1hZ2VzZWxlY3QtdGlsZXNlbGVjdGVke3Bvc2l0aW9uOnJlbGF0aXZlfS5yYy1pbWFnZXNlbGVjdC10aWxlc2VsZWN0ZWQgLnJjLWltYWdlLXRpbGUtd3JhcHBlcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguOCk7LW1zLXRyYW5zZm9ybTpzY2FsZSguOCk7dHJhbnNmb3JtOnNjYWxlKC44KX0ucmMtaW1hZ2UtdGlsZS13cmFwcGVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOy1tcy10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfS5yYy1pbWFnZXNlbGVjdC10aWxlc2VsZWN0ZWQgLnJjLWltYWdlc2VsZWN0LWNoZWNrYm94e2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3RvcDowfS5yYy1pbWFnZXNlbGVjdC1jYW5kaWRhdGVze2JvcmRlcjoycHggc29saWQgd2hpdGU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDo5NHB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo3cHg7dG9wOjdweDt3aWR0aDoxMTJweH0ucmMtaW1hZ2VzZWxlY3QtY2FuZGlkYXRlcz5kaXZ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MTEycHggOTRweDtiYWNrZ3JvdW5kLXNpemU6MTEycHggOTRweDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6OTRweDttYXJnaW46MnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjExMnB4fS5yYy1pbWFnZXNlbGVjdC1jaGFsbGVuZ2V7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmV9LnJjLWltYWdlc2VsZWN0LXJlc3BvbnNlLWZpZWxkLWVycm9ye2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZjAwMDB9LnJjLWltYWdlc2VsZWN0LWRlc2N7Zm9udC1zaXplOjE2cHh9LnJjLWltYWdlc2VsZWN0LWRlc2Mtd3JhcHBlciBzcGFue2ZvbnQtc2l6ZToxNHB4fS5yYy1pbWFnZXNlbGVjdC1jbGVhcntjbGVhcjpib3RofS5yYy1pbWFnZS10aWxlLXdyYXBwZXJ7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdHJhbnNpdGlvbjouMXMgZWFzZTt0cmFuc2l0aW9uOi4xcyBlYXNlfS5yYy1pbWFnZS10aWxlLXdyYXBwZXIgaW1ne3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjstbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5yYy1pbWFnZS10aWxlLTExe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnJjLWltYWdlLXRpbGUtNDJ7d2lkdGg6MjAwJTtoZWlnaHQ6NDAwJX0ucmMtaW1hZ2UtdGlsZS0zM3t3aWR0aDozMDAlO2hlaWdodDozMDAlfS5yYy1pbWFnZS10aWxlLTQ0e3dpZHRoOjQwMCU7aGVpZ2h0OjQwMCV9LnJjLWltYWdlc2VsZWN0LWluc3RydWN0aW9uc3toZWlnaHQ6MTEzcHg7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZX0ucmMtaW1hZ2VzZWxlY3QtZGVzYy13cmFwcGVye2JhY2tncm91bmQtY29sb3I6IzFhNzNlODtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjI0cHg7Y29sb3I6d2hpdGU7aGVpZ2h0OjY2cHg7Zm9udC1zaXplOjE2cHh9LnJjLWltYWdlc2VsZWN0LXByb2dyZXNze2JhY2tncm91bmQtY29sb3I6IzQxN2NjMTtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtyaWdodDowO3dpZHRoOjA7aGVpZ2h0OjE1cHg7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAxcyBlYXNlO3RyYW5zaXRpb246YWxsIDFzIGVhc2V9LnJjLWltYWdlc2VsZWN0LWNhcm91c2VsLW9mZnNjcmVlbi1yaWdodHtsZWZ0OjEwNSU7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC10cmFuc2l0aW9uOi41cyBlYXNlO3RyYW5zaXRpb246LjVzIGVhc2V9LnJjLWltYWdlc2VsZWN0LWNhcm91c2VsLWVudGVyaW5nLXJpZ2h0e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zaXRpb246LjVzIGVhc2U7dHJhbnNpdGlvbjouNXMgZWFzZX0ucmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtbW9jay1tYXJnaW4tMXt0b3A6MXB4fS5yYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1tb2NrLW1hcmdpbi0ye3RvcDoycHh9LnJjLWltYWdlc2VsZWN0LWNhcm91c2VsLWxlYXZpbmctbGVmdHtsZWZ0OjA7b3BhY2l0eTouNTtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRyYW5zaXRpb246LjVzIGVhc2U7dHJhbnNpdGlvbjouNXMgZWFzZX0ucmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtb2Zmc2NyZWVuLWxlZnR7bGVmdDotMTA1JTtvcGFjaXR5Oi41O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdHJhbnNpdGlvbjouNXMgZWFzZTt0cmFuc2l0aW9uOi41cyBlYXNlfS5yYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1pbnN0cnVjdGlvbnN7LXdlYmtpdC10cmFuc2l0aW9uOi4ycyBlYXNlO3RyYW5zaXRpb246LjJzIGVhc2U7b3BhY2l0eToxfS5yYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1pbnN0cnVjdGlvbnMtaGlkZGVue29wYWNpdHk6LjV9LnJjLWNhbm9uaWNhbC1zdG9wLXNpZ257YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvc3RvcF9zaWduLmpwZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5yYy1jYW5vbmljYWwtc3BlZWQtbGltaXR7YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvY2Fub25pY2FsX3NwZWVkX2xpbWl0LnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5yYy1jYW5vbmljYWwtc3RyZWV0LW5hbWV7YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvY2Fub25pY2FsX3N0cmVldF9uYW1lLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5yYy1jYW5vbmljYWwtb3RoZXJ7YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvY2Fub25pY2FsX290aGVyLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5yYy1jYW5vbmljYWwtYm91bmRpbmctYm94e2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL2JvdW5kaW5nYm94Mi5naWYpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0ucmMtY2Fub25pY2FsLWNhcntiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9jYW5vbmljYWxfY2FyLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5yYy1jYW5vbmljYWwtcm9hZHtiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9jYW5vbmljYWxfcm9hZC5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0ucmMtY2Fub25pY2FsLWJyaWRnZXtiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9jYW5vbmljYWxfYnJpZGdlLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5yZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJPdXRlckNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5yZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJDb250YWluZXJ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTtmbGV4LWdyb3c6MTttYXJnaW46MTBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRckNhbnZhc3ttaW4td2lkdGg6MjAwcHg7bWluLWhlaWdodDoyMDBweDttYXgtaGVpZ2h0OjQ1JTttYXgtd2lkdGg6NDAlO291dGxpbmUtb2Zmc2V0OjA7b3V0bGluZToycHggc29saWQ7Ym9yZGVyLXJhZGl1czoycHQ7cGFkZGluZzoyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgIzk5OTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggMTBweCByZ2JhKDI2LDExNSwyMzIsLjMpO2JveC1zaGFkb3c6MCAwIDlweCAycHggcmdiYSgyNiwxMTUsMjMyLC4zKTtiYWNrZ3JvdW5kOndoaXRlfS5yZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJGYWxsYmFja1RleHR7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmc6MTBweCAyMHB4IDEwcHggMTBweDttYXgtd2lkdGg6ODAlO2xpbmUtaGVpZ2h0OjEuMztjb2xvcjojNzc3fS5yZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJCYWNrZ3JvdW5ke2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9hcGkyL21vZGFjX3FyX2JhY2tncm91bmQuc3ZnKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTIwJTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQnV0dG9ue2JhY2tncm91bmQ6IzFhNzNlODtib3JkZXI6MDtjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OlJvYm90byxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDstd2Via2l0LXRyYW5zaXRpb246YWxsIC41cyBlYXNlO3RyYW5zaXRpb246YWxsIC41cyBlYXNlO2JvcmRlci1yYWRpdXM6MjVweDtwYWRkaW5nOjE1cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtZGVjb3JhdGlvbjpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjoyNSUgYXV0b30ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFySW5zdHJ1Y3Rpb25zQ29udGFpbmVye3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtZmFtaWx5OlJvYm90byxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1zZXJpZjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyU2hvcnRJbnN0cnVjdGlvbnNDb250YWluZXJ7dG9wOjA7aGVpZ2h0OjExM3B4O3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6IzFhNzNlODt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MCBhdXRvO3dpZHRoOjEwMCV9LnJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRclNob3J0SW5zdHJ1Y3Rpb25ze2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6NDVweH0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQWRkaXRpb25hbEluc3RydWN0aW9uc0NvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweH0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQ2FtZXJhSWNvbntiYWNrZ3JvdW5kOnVybChodHRwczovL3d3dy5nc3RhdGljLmNvbS9yZWNhcHRjaGEvYXBpMi9tb2RhY19jYW1lcmFfZGFyay5wbmcpOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHh9LnJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRck1vYmlsZUljb257YmFja2dyb3VuZDp1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FwaTIvbW9kYWNfbW9iaWxlX2RhcmsucG5nKTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDozMHB4O2hlaWdodDozMHB4fS5yZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJBZGRpdGlvbmFsSW5zdHJ1Y3Rpb25ze2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweDtwYWRkaW5nOjEwcHggMjBweCAxMHB4IDEwcHg7bWF4LXdpZHRoOjgwJTtsaW5lLWhlaWdodDoxLjM7Y29sb3I6Izc3N30ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQ29kZUhpZGRlbntoZWlnaHQ6MDt3aWR0aDowO2Rpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbn0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQ29kZVZpc2libGV7aGVpZ2h0OjIwMHB4O3dpZHRoOjIwMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Zpc2liaWxpdHk6dmlzaWJsZX0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQnV0dG9uSGlkZGVue2Rpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbn0ucmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQnV0dG9uVmlzaWJsZXtkaXNwbGF5OmlubGluZS1ibG9jazt2aXNpYmlsaXR5OnZpc2libGV9LnJjLXByZXBvc2l0aW9uYWwtcGF5bG9hZHtwYWRkaW5nOjIwcHg7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ucmMtcHJlcG9zaXRpb25hbC1zZWxlY3QtbW9yZSwucmMtcHJlcG9zaXRpb25hbC12ZXJpZnktZmFpbGVke2NvbG9yOiNmZjFiMWI7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MjBweCAyMHB4IDAgMjBweH0ucmMtcHJlcG9zaXRpb25hbC10YXJnZXQgbGFiZWx7bWFyZ2luOjVweDtmbG9hdDpyaWdodH0ucmMtcHJlcG9zaXRpb25hbC1pbnN0cnVjdGlvbnN7bWFyZ2luLWJvdHRvbToyMHB4fS5yYy1wcmVwb3NpdGlvbmFsLXRhYmxle3dpZHRoOjEwMCV9LnJjLXByZXBvc2l0aW9uYWwtdGFibGUgdGR7YmFja2dyb3VuZDojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2ZmZjtjb2xvcjojMDAwO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OlJvYm90byxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7d2lkdGg6NDAlO3BhZGRpbmc6MTVweH0ucmMtcHJlcG9zaXRpb25hbC10YWJsZSB0ZC5yYy1wcmVwb3NpdGlvbmFsLXNlbGVjdGVke2JhY2tncm91bmQ6I2VmZWZlZjtib3JkZXI6MXB4IHNvbGlkICM2NTY1NjV9LnJjLTJmYS1wYXlsb2Fke2ZvbnQtZmFtaWx5OlJvYm90byxIZWx2ZXRpY2EsQXJpYWwsU2Fucy1TZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHg7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiMyMDIxMjQ7dGV4dC1hbGlnbjpjZW50ZXJ9LnJjLTJmYS1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2VjZWNlYzt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG99LnJjLTJmYS1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO3dpZHRoOjMyOHB4O292ZXJmbG93OmF1dG87bWFyZ2luOjEwMHB4IGF1dG99LnJjLTJmYS1oZWFkZXJ7bWFyZ2luOjM2cHggMCAyNHB4IDA7Zm9udC1zaXplOjE2cHh9LnJjLTJmYS1pbnN0cnVjdGlvbnN7bWFyZ2luOjI0cHggNDBweDtsaW5lLWhlaWdodDoxNy41cHh9LnJjLTJmYS1yZXNwb25zZS1maWVsZHt0ZXh0LWFsaWduOmNlbnRlcn0ucmMtMmZhLXJlc3BvbnNlLWZpZWxkIGlucHV0e3dpZHRoOjExLjJjaDtoZWlnaHQ6NDBweDtsaW5lLWhlaWdodDo0MHB4O21hcmdpbjphdXRvO2JvcmRlcjoxcHggc29saWQgIzk3OTc5Nztmb250LXNpemU6MjBweDtsZXR0ZXItc3BhY2luZzouOGNoO3BhZGRpbmctbGVmdDoxLjJjaDtwYWRkaW5nLXJpZ2h0OjB9LnJjLTJmYS1yZXNwb25zZS1maWVsZCBpbnB1dDpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICMxODVhYmN9LnJjLTJmYS1yZXNwb25zZS1maWVsZC1lcnJvciBpbnB1dHtib3JkZXI6MXB4IHNvbGlkICNkOTMwMjV9LnJjLTJmYS1yZXNwb25zZS1maWVsZC1lcnJvciBpbnB1dDpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNkOTMwMjV9LnJjLTJmYS1lcnJvci1tZXNzYWdle2hlaWdodDozNnB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNkOTMwMjU7bWFyZ2luOjJweCA0MHB4fS5yYy0yZmEtc3VibWl0LWJ1dHRvbi1ob2xkZXIgYnV0dG9ue21hcmdpbjowIGF1dG87bWluLXdpZHRoOjEwMHB4O2hlaWdodDozNnB4O2xpbmUtaGVpZ2h0OjM2cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzoxLjI1cHg7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZC1jb2xvcjojMTg1YWJjO2JvcmRlcjoxcHggc29saWQgIzE4NWFiYztjb2xvcjojZmZmfS5yYy0yZmEtc3VibWl0LWJ1dHRvbi1ob2xkZXIgYnV0dG9uOmRpc2FibGVke2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCAjOTc5Nzk3O2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ucmMtMmZhLWNhbmNlbC1idXR0b24taG9sZGVyIGJ1dHRvbnttYXJnaW46MjBweCBhdXRvO21pbi13aWR0aDoxMDBweDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDozNnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6MS4yNXB4O2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjojMTg1YWJjfS5yYy0yZmEtY2FuY2VsLWJ1dHRvbi1ob2xkZXIgYnV0dG9uOmFjdGl2ZXtib3JkZXI6bm9uZX0ucmMtcmVzcG9uc2UtaW5wdXQtZmllbGR7Ym9yZGVyOjFweCBzb2xpZCAjNzQ3Nzc1O2JvcmRlci1yYWRpdXM6MnB4O2hlaWdodDozNnB4O21hcmdpbjo1cHggMDtwYWRkaW5nOjFweCA5cHg7Zm9udC1mYW1pbHk6Um9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjQwMDtvdXRsaW5lOm5vbmU7d2lkdGg6MjcwcHh9LnJjLXJlc3BvbnNlLWlucHV0LWZpZWxkOmZvY3Vze2JvcmRlcjoxcHggc29saWQgIzFhNzNlOH0ucmMtcmVzcG9uc2UtaW5wdXQtZmllbGQtZXJyb3IsLnJjLXJlc3BvbnNlLWlucHV0LWZpZWxkLWVycm9yOmZvY3Vze2JvcmRlcjoxcHggc29saWQgI2ZmMDAwMH1zZW50aW5lbHt9"}},"time_used":38,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":22,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght@400;500;600;700\u0026display=swap","fqdn":"fonts.googleapis.com","domain":"fonts.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.462Z","timestamp":1785139669462,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /css2?family=Material+Symbols+Rounded:wght@400;500;600;700\u0026display=swap HTTP/1.1\r\nHost: fonts.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/css; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\naccess-control-allow-origin: *\r\ntiming-allow-origin: *\r\nlink: \u003chttps://fonts.gstatic.com\u003e; rel=preconnect; crossorigin\r\nstrict-transport-security: max-age=31536000\r\nexpires: Mon, 27 Jul 2026 08:07:49 GMT\r\ndate: Mon, 27 Jul 2026 08:07:49 GMT\r\ncache-control: private, max-age=86400\r\ncross-origin-opener-policy: same-origin-allow-popups\r\ncross-origin-resource-policy: cross-origin\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":2768,"size_decoded":1144,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"ea39aa64a7be469e53c6056e1bed7fe4","sha1":"58300b1f4cabb4f8ec99a51fde3501b0629792db","sha256":"261d5d0eaf663acf2b56689847a420ff649487629a1cb8c7800ea8fe651730bc","sha512":"65b22eb5a355d0a4cf9172c92c696109775cf0ad2be8e9c6b5962cd43a41d133e1c07502af2a9cc8a2ad60330c042119cd2630c96eab6f0272eedd5a99afe429","ssdeep":"","tlshash":"1d519aa8ae53584df5650c62334e7f260e58482f290acabd9b510e0c8dfe87b134b70f","first_seen":"2026-07-27T05:24:57.745465Z","last_seen":"2026-07-27T11:49:48.967797Z","times_seen":5,"resource_available":false,"data":"LyogZmFsbGJhY2sgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBTeW1ib2xzIFJvdW5kZWQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxzeW1ib2xzcm91bmRlZC92MzYzL3N5bDctek55bTZZalVydU0tUXJFaDctbnlUbmpEd0tOSl8xOTBGanBaSXZEbVVTVk9LN0JEQl9RYjl2VVN6cTN3ekxLLVAwSi1WX1pzLVF0UXRoMy1qT2NiVENQcXcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKfQovKiBmYWxsYmFjayAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01hdGVyaWFsIFN5bWJvbHMgUm91bmRlZCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tYXRlcmlhbHN5bWJvbHNyb3VuZGVkL3YzNjMvc3lsNy16TnltNllqVXJ1TS1RckVoNy1ueVRuakR3S05KXzE5MEZqcFpJdkRtVVNWT0s3QkRCX1FiOXZVU3pxM3d6TEstUDBKLVZfWnMtUXRRdGgzLWpPY2JUQ1Bxdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwp9Ci8qIGZhbGxiYWNrICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgU3ltYm9scyBSb3VuZGVkJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsc3ltYm9sc3JvdW5kZWQvdjM2My9zeWw3LXpOeW02WWpVcnVNLVFyRWg3LW55VG5qRHdLTkpfMTkwRmpwWkl2RG1VU1ZPSzdCREJfUWI5dlVTenEzd3pMSy1QMEotVl9acy1RdFF0aDMtak9jYlRDUHF3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7Cn0KLyogZmFsbGJhY2sgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBTeW1ib2xzIFJvdW5kZWQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxzeW1ib2xzcm91bmRlZC92MzYzL3N5bDctek55bTZZalVydU0tUXJFaDctbnlUbmpEd0tOSl8xOTBGanBaSXZEbVVTVk9LN0JEQl9RYjl2VVN6cTN3ekxLLVAwSi1WX1pzLVF0UXRoMy1qT2NiVENQcXcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKfQoKLm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCB7CiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBTeW1ib2xzIFJvdW5kZWQnOwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtc2l6ZTogMjRweDsKICBsaW5lLWhlaWdodDogMTsKICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwogIHRleHQtdHJhbnNmb3JtOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIHdvcmQtd3JhcDogbm9ybWFsOwogIGRpcmVjdGlvbjogbHRyOwogIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKLm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCB7CiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBTeW1ib2xzIFJvdW5kZWQnOwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtc2l6ZTogMjRweDsKICBsaW5lLWhlaWdodDogMTsKICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwogIHRleHQtdHJhbnNmb3JtOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIHdvcmQtd3JhcDogbm9ybWFsOwogIGRpcmVjdGlvbjogbHRyOwogIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKLm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCB7CiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBTeW1ib2xzIFJvdW5kZWQnOwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtc2l6ZTogMjRweDsKICBsaW5lLWhlaWdodDogMTsKICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwogIHRleHQtdHJhbnNmb3JtOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIHdvcmQtd3JhcDogbm9ybWFsOwogIGRpcmVjdGlvbjogbHRyOwogIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKLm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCB7CiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBTeW1ib2xzIFJvdW5kZWQnOwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtc2l6ZTogMjRweDsKICBsaW5lLWhlaWdodDogMTsKICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwogIHRleHQtdHJhbnNmb3JtOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIHdvcmQtd3JhcDogbm9ybWFsOwogIGRpcmVjdGlvbjogbHRyOwogIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQo="}},"time_used":86,"timings":{"blocked":-1,"dns":2,"connect":16,"send":0,"wait":33,"receive":0,"ssl":35},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/3k3FjGGU.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.508Z","timestamp":1785139669508,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/3k3FjGGU.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"c8f8-654aa2b82ce7a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 7181\r\nKeep-Alive: timeout=5, max=95\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":51448,"size_decoded":7532,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"e13259f1010e8ba4f0441645a8482663","sha1":"6bf9c06b882d4275294fdb2871ed1084a193db6e","sha256":"fa04c778d176d053821a8b0d5b1b55911fff047b18eae865dc93ff57c520e516","sha512":"7592ea6806cc0cbdb8f4802a3262dacddb422bdd4be4d962babd7344725487b2f5465efc38693bb8632de8f1059f7d12476857d0706a8072241485e80718c97c","ssdeep":"384:pUkLOXZjuKgJihOo3A7dpAFESuafwAezFaBIS17kOmz9qJaabf5BoaBxACsV:pScEwzxaYBMHO","tlshash":"5f334145e5bb083296a3b03a0d1b84152a35874f9ef9bd883b9c45040f4d83ea6f97fd","first_seen":"2025-10-23T03:46:52.818616Z","last_seen":"2026-07-27T11:49:48.965228Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICBvIGFzIGdlLAogIGJHIGFzIEtlLAogIGFnIGFzIGllLAogIGJGIGFzIHZlLAogIHEgYXMgeGUsCiAgciBhcyBpLAogIGFZIGFzIFBlLAogIGEgYXMgZywKICBjIGFzIHYsCiAgdSBhcyBlLAogIGIgYXMgcywKICB0IGFzIGEsCiAgbiBhcyB5LAogIGYgYXMgdSwKICB3IGFzIGYsCiAgbSBhcyBWLAogIGFfIGFzIHEsCiAgZyBhcyBPLAogIEYgYXMgcGUsCiAgdiBhcyB1ZSwKICBiSCBhcyBqZSwKICBpIGFzIHplLAogIGI0IGFzIEhlLAogIFkgYXMgWWUsCiAgcyBhcyBZLAogIGsgYXMgcWUsCiAgcCBhcyBtZSwKICBiSSBhcyBKZSwKICBiSiBhcyBaZSwKICBiSyBhcyBRZSwKICBiTCBhcyBYZSwKICBiQSBhcyBJZSwKICBIIGFzIGV0LAogIGggYXMgdHQsCiAgYnggYXMgc3QsCn0gZnJvbSAiLi9TbTJtQ2ZERS5qcyI7CmltcG9ydCB7IEYgYXMgbywgQSBhcyBJLCBfIGFzIENlLCBlIGFzIGF0IH0gZnJvbSAiLi9EX2l1NjI3Si5qcyI7CmltcG9ydCB7IF8gYXMgVWUsIGkgYXMgbHQgfSBmcm9tICIuL0NhUmhMZHVGLmpzIjsKaW1wb3J0IHsgXyBhcyBPZSB9IGZyb20gIi4vYk5lcHVkcDEuanMiOwppbXBvcnQgeyBWIGFzIFogfSBmcm9tICIuL1pmTlppeUNtLmpzIjsKaW1wb3J0IHsgViBhcyBUZSB9IGZyb20gIi4vRFc5X1JYQXEuanMiOwppbXBvcnQgeyBzIGFzIG90IH0gZnJvbSAiLi9DcFdtZVBkRi5qcyI7CmZ1bmN0aW9uIE5lKCkgewogIGxldCBLOwogIHJldHVybiAoCiAgICBnZSgoKSA9PiB7CiAgICAgIGNvbnN0IGIgPSBLZSgpOwogICAgICBiICYmIGIucHJveHkgJiYgKEsgPSBiLnByb3h5LiRyZWZzKTsKICAgIH0pLAogICAgewogICAgICBmb2N1c05leHQ6IChiKSA9PiB7CiAgICAgICAgSyAmJgogICAgICAgICAgaWUoKCkgPT4gewogICAgICAgICAgICBpZiAoYiAmJiBLW2JdKSB7CiAgICAgICAgICAgICAgY29uc3QgVCA9IEtbYl07CiAgICAgICAgICAgICAgVCAmJiBULiRlbCA/IFQuJGVsLmZvY3VzKCkgOiBUICYmIFQuZm9jdXMgJiYgVC5mb2N1cygpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgfSwKICAgIH0KICApOwp9CmNvbnN0IG50ID0geyBrZXk6IDAgfSwKICBpdCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIG15LTEuNSB0ZXh0LXNtLW1lZGl1bSIgfSwKICBydCA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIiB9LAogIHV0ID0geyBjbGFzczogImZsZXggdGV4dC1zbS1yZWd1bGFyIG10LTQganVzdGlmeS1jZW50ZXIiIH0sCiAgY3QgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTYwMCBtci0yIiB9LAogIGR0ID0geyBjbGFzczogImZsZXggYWxpZ24tY2VudGVyIiB9LAogIHB0ID0geyBjbGFzczogIm14LTIgbXktbGctOCBteS02IHRleHQtc20tbWVkaXVtIHRleHQtZ3JheS02MDAiIH0sCiAgbXQgPSB7IGNsYXNzOiAidy1mdWxsIHBvc2l0aW9uLXJlbGF0aXZlIiB9LAogIGd0ID0geyBjbGFzczogImZsZXggb3ZlcmZsb3ctaGlkZGVuIiB9LAogIHZ0ID0gewogICAgY2xhc3M6ICJ0ZXh0LWdyYXktNzAwIGxnOnRleHQtbWQtc2VtaWJvbGQgdGV4dC1tZC1zZW1pYm9sZCB0cmFja2luZy1ub3JtYWwiLAogIH0sCiAgZnQgPSB7IGtleTogMSB9LAogIGh0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgbXktMS41IHRleHQtc20tbWVkaXVtIiB9LAogIHl0ID0geyBjbGFzczogInRleHQtbWQtc2VtaWJvbGQiIH0sCiAgYnQgPSB7IGtleTogMiB9LAogIGt0ID0geyBjbGFzczogInRleHQtc20tbWVkaXVtIHRleHQtZ3JheS02MDAgbXQtNCIgfSwKICB3dCA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIiB9LAogIF90ID0gewogICAgX19uYW1lOiAiU2lnbkluIiwKICAgIHByb3BzOiB7CiAgICAgIHRpdGxlQ2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICB2YWx1ZTogeyB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLCBkZWZhdWx0OiAiIiB9LAogICAgICBjb250ZW50Q2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICBza2lwTGFzdFN0ZXA6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgY2FsbGJhY2s6IHsgdHlwZTogRnVuY3Rpb24sIGRlZmF1bHQ6IG51bGwgfSwKICAgIH0sCiAgICBlbWl0czogWyJjbG9zZSIsICJ0b2dnbGUtYmFjayJdLAogICAgc2V0dXAoSywgeyBleHBvc2U6IGxlLCBlbWl0OiBiIH0pIHsKICAgICAgY29uc3QgeyBmb2N1c05leHQ6IFQgfSA9IE5lKCksCiAgICAgICAgTiA9IHZlKCksCiAgICAgICAgUSA9IHhlKCksCiAgICAgICAgTCA9IGIsCiAgICAgICAgUCA9IEssCiAgICAgICAgYyA9IGkoby5FTUFJTCksCiAgICAgICAgVyA9IGkoIiIpLAogICAgICAgIEogPSBpKCIiKSwKICAgICAgICBqID0gaShudWxsKSwKICAgICAgICBFID0gaSghMSksCiAgICAgICAgQyA9IGkoITEpLAogICAgICAgIFggPSBpKCExKSwKICAgICAgICBHID0gaShudWxsKSwKICAgICAgICBTID0gaSghMCksCiAgICAgICAgQSA9IGkobnVsbCksCiAgICAgICAgc2UgPSBpKG51bGwpLAogICAgICAgIEQgPSBpKG51bGwpLAogICAgICAgIHggPSBpKG51bGwpLAogICAgICAgIEYgPSBhc3luYyAobikgPT4gewogICAgICAgICAgdmFyIHIsIE0sIHcsIEI7CiAgICAgICAgICBDLnZhbHVlID0gITA7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBhd2FpdCBOLmxvZ2luV2l0aEdvb2dsZShuKSwgTCgiY2xvc2UiKTsKICAgICAgICAgIH0gY2F0Y2ggKHRlKSB7CiAgICAgICAgICAgIChYLnZhbHVlID0gITApLAogICAgICAgICAgICAgIChHLnZhbHVlID0KICAgICAgICAgICAgICAgICgoQiA9CiAgICAgICAgICAgICAgICAgICh3ID0KICAgICAgICAgICAgICAgICAgICAoTSA9CiAgICAgICAgICAgICAgICAgICAgICAociA9IHRlID09IG51bGwgPyB2b2lkIDAgOiB0ZS5yZXNwb25zZSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICA6IHIuX2RhdGEpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICA6IE0uZXJyb3JzKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICA6IHcudmFsaWRhdGlvbnNbMF0pID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiBCLm1lc3NhZ2UpID8/ICIiKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIEMudmFsdWUgPSAhMTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGQgPSAoKSA9PiB7CiAgICAgICAgICBOLnVwZGF0ZUN1cnJlbnREaWFsb2coSS5TSUdOX1VQKSwgTi51cGRhdGVNb2RlKEkuU0lHTl9VUCk7CiAgICAgICAgfSwKICAgICAgICBlZSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHZhciBuLCByLCBNOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgQy52YWx1ZSA9ICEwOwogICAgICAgICAgICBjb25zdCB3ID0gYXdhaXQgeigpOwogICAgICAgICAgICBpZiAody5kYXRhWyIyZmEiXSkgewogICAgICAgICAgICAgIChjLnZhbHVlID0gby5PVFApLCBhd2FpdCBpZSgpLCBELnZhbHVlLmZvY3VzKCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGsody5kYXRhLmFjY2Vzc190b2tlbiksCiAgICAgICAgICAgICAgYXdhaXQgUS5nZXRVc2VySW5mbygpLAogICAgICAgICAgICAgIEwoImNsb3NlIiksCiAgICAgICAgICAgICAgUC5jYWxsYmFjayAmJiBQLmNhbGxiYWNrKCk7CiAgICAgICAgICB9IGNhdGNoICh3KSB7CiAgICAgICAgICAgIChYLnZhbHVlID0gITApLAogICAgICAgICAgICAgIChHLnZhbHVlID0KICAgICAgICAgICAgICAgICgoTSA9CiAgICAgICAgICAgICAgICAgIChyID0KICAgICAgICAgICAgICAgICAgICAobiA9IHcgPT0gbnVsbCA/IHZvaWQgMCA6IHcucmVzcG9uc2UpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICA6IG4uX2RhdGEpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogci5tZXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogTS5zdGF0dXMubWVzc2FnZSkgPz8gbnVsbCk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBDLnZhbHVlID0gITE7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB6ID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgbiA9IHsKICAgICAgICAgICAgICAgIGVtYWlsOiBXLnZhbHVlLAogICAgICAgICAgICAgICAgcGFzc3dvcmQ6IEoudmFsdWUsCiAgICAgICAgICAgICAgICAuLi4oai52YWx1ZSAmJiB7IHR3b19mYWN0b3JfY29kZTogai52YWx1ZSB9KSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsgZGF0YTogciB9ID0gYXdhaXQgdWUoamUsIHsgbWV0aG9kOiAiUE9TVCIsIGJvZHk6IG4gfSk7CiAgICAgICAgICAgIHJldHVybiByLnZhbHVlOwogICAgICAgICAgfSBjYXRjaCAobikgewogICAgICAgICAgICB0aHJvdyBuOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgSCA9ICgpID0+IHsKICAgICAgICAgIHN3aXRjaCAoKEwoInRvZ2dsZS1iYWNrIiwgITApLCBjLnZhbHVlKSkgewogICAgICAgICAgICBjYXNlIG8uUEFTU1dPUkQ6CiAgICAgICAgICAgICAgTCgidG9nZ2xlLWJhY2siLCAhMCksIChjLnZhbHVlID0gby5FTUFJTCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2Ugby5PVFA6CiAgICAgICAgICAgICAgYy52YWx1ZSA9IG8uUEFTU1dPUkQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBrID0gKG4pID0+IHsKICAgICAgICAgIE4uc2V0VG9rZW4obik7CiAgICAgICAgfSwKICAgICAgICBhZSA9ICgpID0+IHsKICAgICAgICAgIChOLmVtYWlsID0gVy52YWx1ZSksCiAgICAgICAgICAgIE4udXBkYXRlTW9kZShJLkZPUkdFVF9QQVNTV09SRCksCiAgICAgICAgICAgIE4udXBkYXRlQ3VycmVudERpYWxvZyhJLlNJR05fVVApOwogICAgICAgIH0sCiAgICAgICAgUiA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIHN3aXRjaCAoKChHLnZhbHVlID0gbnVsbCksIGMudmFsdWUpKSB7CiAgICAgICAgICAgIGNhc2Ugby5FTUFJTDoKICAgICAgICAgICAgICBMKCJ0b2dnbGUtYmFjayIsICEwKSwKICAgICAgICAgICAgICAgIChjLnZhbHVlID0gby5QQVNTV09SRCksCiAgICAgICAgICAgICAgICBhd2FpdCBpZSgpLAogICAgICAgICAgICAgICAgeC52YWx1ZS5mb2N1c0lucHV0KCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2Ugby5QQVNTV09SRDoKICAgICAgICAgICAgICBhd2FpdCBlZSgpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIG8uT1RQOgogICAgICAgICAgICAgIGF3YWl0IGVlKCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgcmV0dXJuICgKICAgICAgICBsZSh7IGJhY2tDbGlja2VkOiBIIH0pLAogICAgICAgIChuLCByKSA9PiB7CiAgICAgICAgICBjb25zdCBNID0gVWUsCiAgICAgICAgICAgIHcgPSBQZSgiR29vZ2xlTG9naW4iKSwKICAgICAgICAgICAgQiA9IE9lLAogICAgICAgICAgICB0ZSA9IENlOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgZygpLAogICAgICAgICAgICB2KAogICAgICAgICAgICAgIHBlLAogICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgZShjKSA9PT0gZShvKS5FTUFJTAogICAgICAgICAgICAgICAgICA/IChnKCksCiAgICAgICAgICAgICAgICAgICAgdigiZGl2IiwgbnQsIFsKICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiB5KFAudGl0bGVDbGFzcykgfSwKICAgICAgICAgICAgICAgICAgICAgICAgYShuLiR0KCJhdXRoLnNpZ25Jbi50aXRsZSIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiB5KFAuY29udGVudENsYXNzKSB9LAogICAgICAgICAgICAgICAgICAgICAgICBhKG4uJHQoImF1dGguc2lnbkluLnN1YnRpdGxlIikpLAogICAgICAgICAgICAgICAgICAgICAgICAzCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgTSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlKFcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTp2YWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoclswXSA9IChfKSA9PiAoVihXKSA/IChXLnZhbHVlID0gXykgOiBudWxsKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgImhhcy1lcnJvciI6IGUoUyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOmhhc0Vycm9yIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbMV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyWzFdID0gKF8pID0+IChWKFMpID8gKFMudmFsdWUgPSBfKSA6IG51bGwpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbi4kdCgiYXV0aC5zaWduSW4uZGVzIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogImVtYWlsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleWRvd246CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByWzJdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoclsyXSA9IHEoKF8pID0+IGUoVCkoImVtYWlsQnRuIiksIFsiZW50ZXIiXSkpLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcygiZGl2IiwgaXQsIGEobi4kdCgiYXV0aC5zaWduSW4ubGFiZWwiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgIFsidmFsdWUiLCAiaGFzLWVycm9yIiwgInBsYWNlaG9sZGVyIl0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICBaLAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2tleTogImVtYWlsQnRuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgInctZnVsbCBteS1jdXN0b20tYnV0dG9uIHRleHQtbm9uZSBtdC1sZy04IG10LTYiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAicHJpbWFyeS02MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjQ0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBlKEMpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBlKFMpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleWRvd246IHEoUiwgWyJlbnRlciJdKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcygic3BhbiIsIHJ0LCBhKG4uJHQoImF1dGguc2lnbkluLmNvbnRpbnVlIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICBbImxvYWRpbmciLCAiZGlzYWJsZWQiXQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIHV0LCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIGN0LCBhKG4uJHQoImF1dGguc2lnbkluLm5vQWNjb3VudCIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogInRleHQtZ3JheS05MDAgY3Vyc29yLXBvaW50ZXIiLCBvbkNsaWNrOiBkIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgYShuLiR0KCJhdXRoLnNpZ25Jbi5zaWduVXBOb3ciKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBzKCJkaXYiLCBkdCwgWwogICAgICAgICAgICAgICAgICAgICAgICByWzhdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJbOF0gPSBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAiZ3JvdyBoLVsxcHhdIGJnLWdyYXktMjAwIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIHB0LCBhKG4uJHQoImF1dGgub3IiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICByWzldIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJbOV0gPSBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAiZ3JvdyBoLVsxcHhdIGJnLWdyYXktMjAwIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIG10LCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIGd0LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgdSh3LCB7IGNhbGxiYWNrOiBGIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIHUodywgeyBjYWxsYmFjazogRiB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgWiwKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OiAidGV4dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBlKEMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0LW5vbmUgdy1mdWxsIHBvc2l0aW9uLWFic29sdXRlIC10b3AtMSB6LTEwIHBvaW50ZXItZXZlbnRzLW5vbmUgYmctd2hpdGUgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1vcGFjaXR5LTEwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBmKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdShCLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJtci0zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICIyNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiAiYXV0aC9nb29nbGUtaWNvbi5zdmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcygic3BhbiIsIHZ0LCBhKG4uJHQoImF1dGguc2lnbkluLmdvb2dsZSIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgIFsibG9hZGluZyJdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgICAgOiBPKCIiLCAhMCksCiAgICAgICAgICAgICAgICBlKGMpID09PSBlKG8pLlBBU1NXT1JECiAgICAgICAgICAgICAgICAgID8gKGcoKSwKICAgICAgICAgICAgICAgICAgICB2KCJkaXYiLCBmdCwgWwogICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6IHkoUC50aXRsZUNsYXNzKSB9LAogICAgICAgICAgICAgICAgICAgICAgICBhKG4uJHQoImF1dGguc2lnbkluLmFsbW9zdCIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiB5KFAuY29udGVudENsYXNzKSB9LAogICAgICAgICAgICAgICAgICAgICAgICBhKG4uJHQoImF1dGguc2lnbkluLnBhc3N3b3JkU3VidGl0bGVbMF0iKSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgYShlKFcpKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICBhKG4uJHQoImF1dGguc2lnbkluLnBhc3N3b3JkU3VidGl0bGVbMV0iKSksCiAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2tleTogInBhc3NJbnB1dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiB4LAogICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlKEopLAogICAgICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTp2YWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByWzRdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocls0XSA9IChfKSA9PiAoVihKKSA/IChKLnZhbHVlID0gXykgOiBudWxsKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IG4uJHQoImF1dGguc2lnbkluLmVudGVyUGFzcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGUoRSkgPyAidGV4dCIgOiAicGFzc3dvcmQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5ZG93bjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbNV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyWzVdID0gcSgoXykgPT4gZShUKSgicGFzc0J0biIpLCBbImVudGVyIl0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIGh0LCBhKG4uJHQoImF1dGguc2lnbkluLnBhc3N3b3JkIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQ6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJjdXJzb3ItcG9pbnRlciBtdC0wLjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYGF1dGgvJHtlKEUpID8gIm9wZW4iIDogImNsb3NlIn0tZXllLnN2Z2AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbM10gfHwgKHJbM10gPSAoXykgPT4gKEUudmFsdWUgPSAhZShFKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInNyYyJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgIFsidmFsdWUiLCAicGxhY2Vob2xkZXIiLCAidHlwZSJdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgWiwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9rZXk6ICJwYXNzQnRuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidy1mdWxsIG15LWN1c3RvbS1idXR0b24gdGV4dC1ub25lIG10LWxnLTggbXQtNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJwcmltYXJ5LTYwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNDQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFlKEopLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGUoQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleWRvd246IHEoUiwgWyJlbnRlciJdKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcygic3BhbiIsIHl0LCBhKG4uJHQoImF1dGguc2lnbkluLnNpZ25JbiIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgWyJkaXNhYmxlZCIsICJsb2FkaW5nIl0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQtY2VudGVyIHRleHQtc20tc2VtaWJvbGQgdGV4dC1wcmltYXJ5LTcwMCBtdC02IGN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBhZSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgYShuLiR0KCJhdXRoLnNpZ25Jbi5mb3JnZXRQYXNzIikpLAogICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgICA6IE8oIiIsICEwKSwKICAgICAgICAgICAgICAgIGUoYykgPT09IGUobykuT1RQCiAgICAgICAgICAgICAgICAgID8gKGcoKSwKICAgICAgICAgICAgICAgICAgICB2KCJkaXYiLCBidCwgWwogICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6IHkoUC50aXRsZUNsYXNzKSB9LAogICAgICAgICAgICAgICAgICAgICAgICBhKG4uJHQoImF1dGguc2lnbkluLmF1dGhlbnRpY2F0b3IiKSksCiAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBzKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIGt0LCBhKG4uJHQoImF1dGguc2lnbkluLmVudGVyQ29kZSIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgVGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2tleTogIm90cElucHV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsVmFsdWU6IGUoaiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6bW9kZWxWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbNl0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJbNl0gPSAoXykgPT4gKFYoaikgPyAoai52YWx1ZSA9IF8pIDogbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuczogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9jdXMtYWxsIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5uZXItY2xhc3MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC1wcmltYXJ5LTUwMCBib3JkZXItMi1wcmltYXJ5LTUwMCB0ZXh0LWxnLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYXNlLWNvbG9yIjogImdyYXktMzAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmluaXNoOiBSLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgIFsibW9kZWxWYWx1ZSJdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgIFosCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3LWZ1bGwgbXktY3VzdG9tLWJ1dHRvbiB0ZXh0LW5vbmUgbXQtbGctOCBtdC0zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInByaW1hcnktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0OiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0NCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRlZDogImxnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBlKEMpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IFIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBmKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoInNwYW4iLCB3dCwgYShuLiR0KCJhdXRoLnNpZ25Jbi5jb250aW51ZSIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgWyJsb2FkaW5nIl0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgIDogTygiIiwgITApLAogICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgdGUsCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBlcnJvcjogZShYKSwKICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6ZXJyb3IiOgogICAgICAgICAgICAgICAgICAgICAgcls3XSB8fCAocls3XSA9IChfKSA9PiAoVihYKSA/IChYLnZhbHVlID0gXykgOiBudWxsKSksCiAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UtdGV4dCI6IGUoRyksCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgIFsiZXJyb3IiLCAibWVzc2FnZS10ZXh0Il0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICA2NAogICAgICAgICAgICApCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSwKICAkdCA9IHsga2V5OiAwIH0sCiAgSXQgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTYwMCBteS0xLjUgdGV4dC1zbS1tZWRpdW0iIH0sCiAgU3QgPSB7IGNsYXNzOiAidGV4dC1tZC1zZW1pYm9sZCIgfSwKICB4dCA9IHsgY2xhc3M6ICJmbGV4IHRleHQtc20tcmVndWxhciBtdC00IGp1c3RpZnktY2VudGVyIiB9LAogIFB0ID0geyBjbGFzczogInRleHQtZ3JheS02MDAgbXItMiIgfSwKICBDdCA9IHsgY2xhc3M6ICJmbGV4IGFsaWduLWNlbnRlciIgfSwKICBVdCA9IHsgY2xhc3M6ICJteC0yIG15LWxnLTggbXktNiB0ZXh0LXNtLW1lZGl1bSB0ZXh0LWdyYXktNjAwIiB9LAogIE90ID0geyBjbGFzczogInctZnVsbCBwb3NpdGlvbi1yZWxhdGl2ZSIgfSwKICBUdCA9IHsgY2xhc3M6ICJmbGV4IG92ZXJmbG93LWhpZGRlbiIgfSwKICBOdCA9IHsKICAgIGNsYXNzOiAidGV4dC1ncmF5LTcwMCBsZzp0ZXh0LW1kLXNlbWlib2xkIHRleHQtbWQtc2VtaWJvbGQgdHJhY2tpbmctbm9ybWFsIiwKICB9LAogIEF0ID0geyBrZXk6IDEgfSwKICBEdCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIG15LTEuNSB0ZXh0LXNtLW1lZGl1bSIgfSwKICBMdCA9IHsgY2xhc3M6ICJ0ZXh0LXNtLXJlZ3VsYXIgdGV4dC1ncmF5LTYwMCBtYi1sZy01IG1iLTQiIH0sCiAgRXQgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTYwMCBteS0xLjUgdGV4dC1zbS1tZWRpdW0iIH0sCiAgR3QgPSB7IGtleTogMCwgY2xhc3M6ICJ0ZXh0LXJlZC01MDAgdGV4dC1zbS1yZWd1bGFyIiB9LAogIFJ0ID0geyBjbGFzczogInRleHQtbWQtc2VtaWJvbGQiIH0sCiAgQnQgPSB7IGtleTogMiB9LAogIFd0ID0geyBjbGFzczogInRleHQtc20tbWVkaXVtIHRleHQtZ3JheS02MDAgbXQtNCIgfSwKICBGdCA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIiB9LAogIE10ID0gewogICAgY2xhc3M6CiAgICAgICJmbGV4IGp1c3RpZnktY2VudGVyIGFsaWduLWNlbnRlciB0ZXh0LXNtLXNlbWlib2xkIHRleHQtcHJpbWFyeS03MDAgbXQtNCIsCiAgfSwKICBWdCA9IHsga2V5OiAwLCBjbGFzczogIm1sLTEiIH0sCiAgS3QgPSB7IGtleTogMyB9LAogIGp0ID0geyBjbGFzczogIm15LWxnLTYgbXktNSIgfSwKICB6dCA9IHsga2V5OiAwLCBjbGFzczogInRleHQtbWQtc2VtaWJvbGQiIH0sCiAgSHQgPSB7IGtleTogMSwgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIiB9LAogIFNlID0gNSAqIDYwLAogIFl0ID0gewogICAgX19uYW1lOiAiU2lnblVwIiwKICAgIHByb3BzOiB7CiAgICAgIHRpdGxlQ2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICBjb250ZW50Q2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICBza2lwTGFzdFN0ZXA6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgY2FsbGJhY2s6IHsgdHlwZTogRnVuY3Rpb24sIGRlZmF1bHQ6IG51bGwgfSwKICAgIH0sCiAgICBlbWl0czogWyJjbG9zZSIsICJ0b2dnbGUtYmFjayJdLAogICAgc2V0dXAoSywgeyBleHBvc2U6IGxlLCBlbWl0OiBiIH0pIHsKICAgICAgY29uc3QgeyBsb2NhbGU6IFQgfSA9IHplKCksCiAgICAgICAgeyBleGVjdXRlUmVjYXB0Y2hhOiBOLCByZWNhcHRjaGFMb2FkZWQ6IFEgfSA9IEhlLnVzZVJlQ2FwdGNoYSgpLAogICAgICAgIHsgZm9jdXNOZXh0OiBMIH0gPSBOZSgpLAogICAgICAgIFAgPSBZZSgpLAogICAgICAgIGMgPSB2ZSgpLAogICAgICAgIFcgPSB4ZSgpLAogICAgICAgIEogPSBpKG51bGwpLAogICAgICAgIGogPSBpKG51bGwpLAogICAgICAgIEUgPSBpKG51bGwpLAogICAgICAgIEMgPSBpKG51bGwpLAogICAgICAgIFggPSBpKG51bGwpOwogICAgICBnZSgoKSA9PiBNZSgpKTsKICAgICAgbGV0IEc7CiAgICAgIGNvbnN0IFMgPSBiLAogICAgICAgIEEgPSBLLAogICAgICAgIHNlID0gaShudWxsKSwKICAgICAgICBEID0gaSgiIiksCiAgICAgICAgeCA9IGkoIiIpLAogICAgICAgIEYgPSBpKCIiKSwKICAgICAgICBkID0gaShvLkVNQUlMKSwKICAgICAgICBlZSA9IGkoU2UpLAogICAgICAgIHogPSBpKCExKSwKICAgICAgICBIID0gaSghMSksCiAgICAgICAgayA9IGkoITEpLAogICAgICAgIGFlID0gaSghMCksCiAgICAgICAgUiA9IGkoIiIpLAogICAgICAgIG4gPSBZKCgpID0+IC9bQS1aXS8udGVzdCh4LnZhbHVlKSksCiAgICAgICAgciA9IFkoKCkgPT4gL1thLXpdLy50ZXN0KHgudmFsdWUpKSwKICAgICAgICBNID0gWSgoKSA9PiAvXGQvLnRlc3QoeC52YWx1ZSkpLAogICAgICAgIHcgPSBZKCgpID0+IEYudmFsdWUubGVuZ3RoID4gMCAmJiBGLnZhbHVlICE9PSB4LnZhbHVlKSwKICAgICAgICBCID0gWSgKICAgICAgICAgICgpID0+CiAgICAgICAgICAgIHgudmFsdWUubGVuZ3RoID4gMCAmJgogICAgICAgICAgICAoIW4udmFsdWUgfHwgIXIudmFsdWUgfHwgIU0udmFsdWUgfHwgIXRlLnZhbHVlKQogICAgICAgICksCiAgICAgICAgdGUgPSBZKCgpID0+IHgudmFsdWUubGVuZ3RoID49IDgpLAogICAgICAgIF8gPSBZKCgpID0+IE1hdGguZmxvb3IoZWUudmFsdWUgLyA2MCkpLAogICAgICAgIGNlID0gWSgoKSA9PiBlZS52YWx1ZSAlIDYwKSwKICAgICAgICBBZSA9IFkoKCkgPT4gISEoQi52YWx1ZSB8fCAheC52YWx1ZSB8fCB3LnZhbHVlIHx8ICFGLnZhbHVlKSksCiAgICAgICAgcmUgPSBZKCgpID0+IHJlKSwKICAgICAgICBmZSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIGsudmFsdWUgPSAhMDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGxldCB0OwogICAgICAgICAgICBvZSgpICYmIChhd2FpdCBRKCksICh0ID0gYXdhaXQgTigic2lnblVwIikpKTsKICAgICAgICAgICAgY29uc3QgbCA9IGMubW9kZSA9PT0gSS5TSUdOX1VQICYmIG9lKCksCiAgICAgICAgICAgICAgaCA9IHsgZW1haWw6IEQudmFsdWUsIC4uLihsICYmIHsgImctcmVjYXB0Y2hhLXJlc3BvbnNlIjogdCB9KSB9OwogICAgICAgICAgICBhd2FpdCB1ZShKZSwgeyBtZXRob2Q6ICJQT1NUIiwgYm9keTogaCB9KSwKICAgICAgICAgICAgICAoZC52YWx1ZSA9IG8uT1RQKSwKICAgICAgICAgICAgICBHIHx8IGRlKCk7CiAgICAgICAgICB9IGNhdGNoICh0KSB7CiAgICAgICAgICAgIHRocm93ICgoSC52YWx1ZSA9ICEwKSwgaGUodCksIHQpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgay52YWx1ZSA9ICExOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgaGUgPSAodCkgPT4gewogICAgICAgICAgdmFyIGwsIGgsIFUsIG0sICQsIHAsIF9lLCAkZTsKICAgICAgICAgICgobSA9CiAgICAgICAgICAgIChVID0KICAgICAgICAgICAgICAoaCA9IChsID0gdC5yZXNwb25zZSkgPT0gbnVsbCA/IHZvaWQgMCA6IGwuX2RhdGEpID09IG51bGwKICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICA6IGgubWV0YSkgPT0gbnVsbAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBVLnN0YXR1cykgPT0gbnVsbAogICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICA6IG0ubWVzc2FnZSkgPT09ICJPVFAgZXhpc3RzISIKICAgICAgICAgICAgPyAoKGQudmFsdWUgPSBvLk9UUCksIEcgfHwgZGUoKSkKICAgICAgICAgICAgOiAoKEgudmFsdWUgPSAhMCksCiAgICAgICAgICAgICAgKFIudmFsdWUgPQogICAgICAgICAgICAgICAgKCgkZSA9CiAgICAgICAgICAgICAgICAgIChfZSA9CiAgICAgICAgICAgICAgICAgICAgKHAgPQogICAgICAgICAgICAgICAgICAgICAgKCQgPSB0ID09IG51bGwgPyB2b2lkIDAgOiB0LnJlc3BvbnNlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgIDogJC5fZGF0YSkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgIDogcC5lcnJvcnMpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogX2UudmFsaWRhdGlvbnNbMF0pID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiAkZS5tZXNzYWdlKSA/PyAiIikpOwogICAgICAgIH0sCiAgICAgICAgb2UgPSAoKSA9PiBhdC5QUk9EVUNUSU9OID09PSAicHJvZHVjdGlvbiIsCiAgICAgICAgRGUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICBjZS52YWx1ZSA+IDAgfHwgXy52YWx1ZSA+IDAgfHwgKGF3YWl0IGZlKCksIFJlKCkpOwogICAgICAgIH0sCiAgICAgICAgTGUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICB2YXIgbCwgaCwgVSwgbTsKICAgICAgICAgIGsudmFsdWUgPSAhMDsKICAgICAgICAgIGxldCB0OwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb2UoKSAmJiAoYXdhaXQgUSgpLCAodCA9IGF3YWl0IE4oInNpZ25VcCIpKSk7CiAgICAgICAgICAgIGNvbnN0ICQgPSB7CiAgICAgICAgICAgICAgICBjb2RlOiBzZS52YWx1ZSwKICAgICAgICAgICAgICAgIGVtYWlsOiBELnZhbHVlLAogICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHgudmFsdWUsCiAgICAgICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IEYudmFsdWUsCiAgICAgICAgICAgICAgICAuLi4ob2UoKSAmJiB7ICJnLXJlY2FwdGNoYS1yZXNwb25zZSI6IHQgfSksCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7IGRhdGE6IHAgfSA9IGF3YWl0IHVlKFplLCB7IG1ldGhvZDogIlBPU1QiLCBib2R5OiAkIH0pOwogICAgICAgICAgICB5ZShwLnZhbHVlLmRhdGEuYWNjZXNzX3Rva2VuKSwKICAgICAgICAgICAgICBTKCJ0b2dnbGUtYmFjayIsICExKSwKICAgICAgICAgICAgICBhd2FpdCBXLmdldFVzZXJJbmZvKCksCiAgICAgICAgICAgICAgKGQudmFsdWUgPSBvLldFTExfRE9ORSk7CiAgICAgICAgICB9IGNhdGNoICgkKSB7CiAgICAgICAgICAgIChILnZhbHVlID0gITApLAogICAgICAgICAgICAgIChSLnZhbHVlID0KICAgICAgICAgICAgICAgICgobSA9CiAgICAgICAgICAgICAgICAgIChVID0KICAgICAgICAgICAgICAgICAgICAoaCA9CiAgICAgICAgICAgICAgICAgICAgICAobCA9ICQgPT0gbnVsbCA/IHZvaWQgMCA6ICQucmVzcG9uc2UpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgOiBsLl9kYXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiBoLmVycm9ycykgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgOiBVLnZhbGlkYXRpb25zWzBdKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogbS5tZXNzYWdlKSA/PyAiIik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBrLnZhbHVlID0gITE7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBFZSA9IGFzeW5jICgpID0+IHsKICAgICAgICAgIGsudmFsdWUgPSAhMDsKICAgICAgICAgIGxldCB0OwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb2UoKSAmJiAoYXdhaXQgUSgpLCAodCA9IGF3YWl0IE4oInNpZ25VcCIpKSk7CiAgICAgICAgICAgIGNvbnN0IGwgPSB7CiAgICAgICAgICAgICAgZW1haWw6IEQudmFsdWUsCiAgICAgICAgICAgICAgLi4uKG9lKCkgJiYgeyAiZy1yZWNhcHRjaGEtcmVzcG9uc2UiOiB0IH0pLAogICAgICAgICAgICB9OwogICAgICAgICAgICBhd2FpdCB1ZShRZSwgeyBtZXRob2Q6ICJQT1NUIiwgYm9keTogbCB9KSwgRyB8fCBkZSgpOwogICAgICAgICAgfSBjYXRjaCAobCkgewogICAgICAgICAgICB0aHJvdyAoaGUobCksIGwpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgay52YWx1ZSA9ICExOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgR2UgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICB2YXIgdCwgbCwgaCwgVTsKICAgICAgICAgIGsudmFsdWUgPSAhMDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IG0gPSB7CiAgICAgICAgICAgICAgICBjb2RlOiBzZS52YWx1ZSwKICAgICAgICAgICAgICAgIGVtYWlsOiBELnZhbHVlLAogICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHgudmFsdWUsCiAgICAgICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IEYudmFsdWUsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7IGRhdGE6ICQgfSA9IGF3YWl0IHVlKFhlLCB7IG1ldGhvZDogIlBPU1QiLCBib2R5OiBtIH0pLAogICAgICAgICAgICAgIHAgPSAkLnZhbHVlLmRhdGEuYWNjZXNzX3Rva2VuOwogICAgICAgICAgICB5ZShwKSwKICAgICAgICAgICAgICBTKCJ0b2dnbGUtYmFjayIsICExKSwKICAgICAgICAgICAgICBhd2FpdCBXLmdldFVzZXJJbmZvKCksCiAgICAgICAgICAgICAgKGQudmFsdWUgPSBvLldFTExfRE9ORSk7CiAgICAgICAgICB9IGNhdGNoIChtKSB7CiAgICAgICAgICAgIChILnZhbHVlID0gITApLAogICAgICAgICAgICAgIChSLnZhbHVlID0KICAgICAgICAgICAgICAgICgoVSA9CiAgICAgICAgICAgICAgICAgIChoID0KICAgICAgICAgICAgICAgICAgICAobCA9CiAgICAgICAgICAgICAgICAgICAgICAodCA9IG0gPT0gbnVsbCA/IHZvaWQgMCA6IG0ucmVzcG9uc2UpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgOiB0Ll9kYXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiBsLmVycm9ycykgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgOiBoLnZhbGlkYXRpb25zWzBdKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogVS5tZXNzYWdlKSA/PyAiIik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBrLnZhbHVlID0gITE7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBkZSA9ICgpID0+IHsKICAgICAgICAgIEcgPSBvdCgoKSA9PiB7CiAgICAgICAgICAgIGVlLnZhbHVlID4gMCA/IGVlLnZhbHVlLS0gOiBjbGVhckludGVydmFsKEcpOwogICAgICAgICAgfSwgMWUzKTsKICAgICAgICB9LAogICAgICAgIFJlID0gKCkgPT4gewogICAgICAgICAgY2xlYXJJbnRlcnZhbChHKSwgKGVlLnZhbHVlID0gU2UpLCBkZSgpOwogICAgICAgIH0sCiAgICAgICAgbmUgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICBjb25zdCB0ID0gYy5tb2RlOwogICAgICAgICAgaWYgKGQudmFsdWUgPT09IG8uRU1BSUwpIHsKICAgICAgICAgICAgaWYgKChTKCJ0b2dnbGUtYmFjayIsICEwKSwgdCA9PT0gSS5TSUdOX1VQKSkKICAgICAgICAgICAgICAoZC52YWx1ZSA9IG8uUEFTU1dPUkQpLCBhd2FpdCBpZSgpLCBDLnZhbHVlLmZvY3VzSW5wdXQoKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBhd2FpdCBFZSgpLCAoZC52YWx1ZSA9IG8uT1RQKSwgYXdhaXQgaWUoKSwgRS52YWx1ZS5mb2N1cygpOwogICAgICAgICAgICAgIH0gY2F0Y2gge30KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGQudmFsdWUgPT09IG8uT1RQKSB7CiAgICAgICAgICAgIHQgPT09IEkuU0lHTl9VUCA/IGF3YWl0IExlKCkgOiAoZC52YWx1ZSA9IG8uUEFTU1dPUkQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZC52YWx1ZSA9PT0gby5QQVNTV09SRCkKICAgICAgICAgICAgaWYgKHQgPT09IEkuU0lHTl9VUCkKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgYXdhaXQgZmUoKSwgKGQudmFsdWUgPSBvLk9UUCksIGF3YWl0IGllKCksIEUudmFsdWUuZm9jdXMoKTsKICAgICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgICAgIGVsc2UgYXdhaXQgR2UoKTsKICAgICAgICB9LAogICAgICAgIEJlID0gKCkgPT4gewogICAgICAgICAgY29uc3QgdCA9IGMubW9kZTsKICAgICAgICAgIGlmICgoUygidG9nZ2xlLWJhY2siLCAhMCksIGQudmFsdWUgPT09IG8uT1RQKSkgewogICAgICAgICAgICB0ID09PSBJLlNJR05fVVAKICAgICAgICAgICAgICA/IChkLnZhbHVlID0gby5QQVNTV09SRCkKICAgICAgICAgICAgICA6IChTKCJ0b2dnbGUtYmFjayIsICExKSwgKGQudmFsdWUgPSBvLkVNQUlMKSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGQudmFsdWUgPT09IG8uUEFTU1dPUkQgJiYKICAgICAgICAgICAgKHQgPT09IEkuU0lHTl9VUAogICAgICAgICAgICAgID8gKFMoInRvZ2dsZS1iYWNrIiwgITEpLCAoZC52YWx1ZSA9IG8uRU1BSUwpKQogICAgICAgICAgICAgIDogKGQudmFsdWUgPSBvLk9UUCkpLAogICAgICAgICAgICBkLnZhbHVlID09PSBvLkVNQUlMICYmCiAgICAgICAgICAgICAgdCA9PT0gSS5GT1JHRVRfUEFTU1dPUkQgJiYKICAgICAgICAgICAgICAoUygidG9nZ2xlLWJhY2siLCAhMSksIGJlKCkpOwogICAgICAgIH0sCiAgICAgICAgeWUgPSAodCkgPT4gewogICAgICAgICAgYy5zZXRUb2tlbih0KTsKICAgICAgICB9LAogICAgICAgIGJlID0gKCkgPT4gewogICAgICAgICAgYy51cGRhdGVDdXJyZW50RGlhbG9nKEkuU0lHTl9JTiksIGMudXBkYXRlTW9kZShJLlNJR05fSU4pOwogICAgICAgIH0sCiAgICAgICAgV2UgPSAoKSA9PiB7CiAgICAgICAgICBTKCJjbG9zZSIpOwogICAgICAgICAgY29uc3QgdCA9IGAvJHtULnZhbHVlfS9kYXNoYm9hcmRgOwogICAgICAgICAgUC5wdXNoKHQpOwogICAgICAgIH0sCiAgICAgICAgRmUgPSAoKSA9PiB7CiAgICAgICAgICBYLnZhbHVlLmZvY3VzSW5wdXQoKTsKICAgICAgICB9LAogICAgICAgIGtlID0gYXN5bmMgKHQpID0+IHsKICAgICAgICAgIHZhciBsLCBoLCBVLCBtOwogICAgICAgICAgay52YWx1ZSA9ICEwOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgYXdhaXQgYy5sb2dpbldpdGhHb29nbGUodCksIFMoImNsb3NlIik7CiAgICAgICAgICB9IGNhdGNoICgkKSB7CiAgICAgICAgICAgIChILnZhbHVlID0gITApLAogICAgICAgICAgICAgIChSLnZhbHVlID0KICAgICAgICAgICAgICAgICgobSA9CiAgICAgICAgICAgICAgICAgIChVID0KICAgICAgICAgICAgICAgICAgICAoaCA9CiAgICAgICAgICAgICAgICAgICAgICAobCA9ICQgPT0gbnVsbCA/IHZvaWQgMCA6ICQucmVzcG9uc2UpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgOiBsLl9kYXRhKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgOiBoLmVycm9ycykgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgOiBVLnZhbGlkYXRpb25zWzBdKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgIDogbS5tZXNzYWdlKSA/PyAiIik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBrLnZhbHVlID0gITE7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBNZSA9ICgpID0+IHsKICAgICAgICAgIGMuZW1haWwgJiYgKChELnZhbHVlID0gYy5lbWFpbCksIGx0KGMuZW1haWwpICYmIChhZS52YWx1ZSA9ICExKSk7CiAgICAgICAgfSwKICAgICAgICBWZSA9ICgpID0+IHsKICAgICAgICAgIFMoImNsb3NlIiksIEEuY2FsbGJhY2soKTsKICAgICAgICB9LAogICAgICAgIHdlID0gKCkgPT4gewogICAgICAgICAgQS5za2lwTGFzdFN0ZXAgPyBWZSgpIDogV2UoKTsKICAgICAgICB9OwogICAgICByZXR1cm4gKAogICAgICAgIHFlKCgpID0+IHsKICAgICAgICAgIGNsZWFySW50ZXJ2YWwoRyk7CiAgICAgICAgfSksCiAgICAgICAgbGUoeyBiYWNrQ2xpY2tlZDogQmUgfSksCiAgICAgICAgKHQsIGwpID0+IHsKICAgICAgICAgIGNvbnN0IGggPSBVZSwKICAgICAgICAgICAgVSA9IFBlKCJHb29nbGVMb2dpbiIpLAogICAgICAgICAgICBtID0gT2UsCiAgICAgICAgICAgICQgPSBDZTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIGcoKSwKICAgICAgICAgICAgdigKICAgICAgICAgICAgICBwZSwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIGUoZCkgPT09IGUobykuRU1BSUwKICAgICAgICAgICAgICAgICAgPyAoZygpLAogICAgICAgICAgICAgICAgICAgIHYoImRpdiIsICR0LCBbCiAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogeShBLnRpdGxlQ2xhc3MpIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGEodC4kdChgYXV0aC4ke2UoYykubW9kZX0udGl0bGVgKSksCiAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogeShBLmNvbnRlbnRDbGFzcykgfSwKICAgICAgICAgICAgICAgICAgICAgICAgYSh0LiR0KGBhdXRoLiR7ZShjKS5tb2RlfS5zdWJ0aXRsZWApKSwKICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgIGgsCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZShEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6dmFsdWUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbFswXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxbMF0gPSAocCkgPT4gKFYoRCkgPyAoRC52YWx1ZSA9IHApIDogbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICJoYXMtZXJyb3IiOiBlKGFlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6aGFzRXJyb3IiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbFsxXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxbMV0gPSAocCkgPT4gKFYoYWUpID8gKGFlLnZhbHVlID0gcCkgOiBudWxsKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHQuJHQoImF1dGguc2lnbkluLmRlcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246ICJlbWFpbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlkb3duOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbFsyXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxbMl0gPSBxKChwKSA9PiBlKEwpKCJlbWFpbEJ0biIpLCBbImVudGVyIl0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIEl0LCBhKHQuJHQoImF1dGguc2lnbkluLmxhYmVsIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICBbInZhbHVlIiwgImhhcy1lcnJvciIsICJwbGFjZWhvbGRlciJdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgWiwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9rZXk6ICJlbWFpbEJ0biIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBqLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgInctZnVsbCBteS1jdXN0b20tYnV0dG9uIHRleHQtbm9uZSBtdC1sZy04IG10LTYiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAicHJpbWFyeS02MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjQ0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBlKGspLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBlKGFlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAibGciLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG5lLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5ZG93bjogcShuZSwgWyJlbnRlciJdKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcygic3BhbiIsIFN0LCBhKHQuJHQoImF1dGguc2lnbkluLmNvbnRpbnVlIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICBbImxvYWRpbmciLCAiZGlzYWJsZWQiXQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIGUoYykubW9kZSA9PT0gZShJKS5TSUdOX1VQCiAgICAgICAgICAgICAgICAgICAgICAgID8gKGcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB2KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKCJkaXYiLCB4dCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIFB0LCBhKHQuJHQoImF1dGguc2lnblVwLmFscmVhZHkiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LWdyYXktOTAwIGN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogYmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSh0LiR0KCJhdXRoLnNpZ25VcC5zaWduSW4iKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIEN0LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbFsxMF0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsWzEwXSA9IHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAiZ3JvdyBoLVsxcHhdIGJnLWdyYXktMjAwIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcygiZGl2IiwgVXQsIGEodC4kdCgiYXV0aC5vciIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbFsxMV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsWzExXSA9IHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAiZ3JvdyBoLVsxcHhdIGJnLWdyYXktMjAwIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKCJkaXYiLCBPdCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIFR0LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KFUsIHsgY2FsbGJhY2s6IGtlIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdShVLCB7IGNhbGxiYWNrOiBrZSB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogInRleHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGUoayksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0LW5vbmUgdy1mdWxsIHBvc2l0aW9uLWFic29sdXRlIC10b3AtMSB6LTEwIHBvaW50ZXItZXZlbnRzLW5vbmUgYmctd2hpdGUgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1vcGFjaXR5LTEwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBmKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KG0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibXItMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogImF1dGgvZ29vZ2xlLWljb24uc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKHQuJHQoImF1dGguc2lnblVwLmdvb2dsZSIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJsb2FkaW5nIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NAogICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogTygiIiwgITApLAogICAgICAgICAgICAgICAgICAgIF0pKQogICAgICAgICAgICAgICAgICA6IE8oIiIsICEwKSwKICAgICAgICAgICAgICAgIGUoZCkgPT09IGUobykuUEFTU1dPUkQKICAgICAgICAgICAgICAgICAgPyAoZygpLAogICAgICAgICAgICAgICAgICAgIHYoImRpdiIsIEF0LCBbCiAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogeShBLnRpdGxlQ2xhc3MpIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGEodC4kdCgiYXV0aC5zaWduVXAuY3JlYXRQYXNzIikpLAogICAgICAgICAgICAgICAgICAgICAgICAzCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6IHkoQS5jb250ZW50Q2xhc3MpIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGEodC4kdCgiYXV0aC5zaWduVXAuc3ViMiIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgIGgsCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICByZWZfa2V5OiAicGFzc0lucHV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IEMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGUoeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOnZhbHVlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxbNF0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsWzRdID0gKHApID0+IChWKHgpID8gKHgudmFsdWUgPSBwKSA6IG51bGwpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdC4kdCgiYXV0aC5zaWduVXAucGFzczFQbGFjZWhvbGRlciIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJwYXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiYmUtZXJyb3IiOiBlKEIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGUoeikgPyAidGV4dCIgOiAicGFzc3dvcmQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5ZG93bjogcShGZSwgWyJlbnRlciJdKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIER0LCBhKHQuJHQoImF1dGguc2lnblVwLnBhc3MxIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQ6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJjdXJzb3ItcG9pbnRlciBtdC0wLjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYGF1dGgvJHtlKHopID8gIm9wZW4iIDogImNsb3NlIn0tZXllLnN2Z2AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxbM10gfHwgKGxbM10gPSAocCkgPT4gKHoudmFsdWUgPSAhZSh6KSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInNyYyJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgIFsidmFsdWUiLCAicGxhY2Vob2xkZXIiLCAiYmUtZXJyb3IiLCAidHlwZSJdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgcygiZGl2IiwgTHQsIFsKICAgICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogeSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZShCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZSh0ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gInRleHQtc3VjY2Vzcy03MDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJ0ZXh0LXJlZC01MDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIGEodC4kdCgiYXV0aC5ydWxlcy5taW4iKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiB5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlKG4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJ0ZXh0LXN1Y2Nlc3MtNzAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAidGV4dC1yZWQtNTAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICBhKHQuJHQoImF1dGgucnVsZXMudXBwZXIiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiB5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlKHIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJ0ZXh0LXN1Y2Nlc3MtNzAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAidGV4dC1yZWQtNTAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICBhKHQuJHQoImF1dGgucnVsZXMubG93ZXIiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiB5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlKE0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJ0ZXh0LXN1Y2Nlc3MtNzAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAidGV4dC1yZWQtNTAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICBhKHQuJHQoImF1dGgucnVsZXMub25lTnVtIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgaCwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9rZXk6ICJjb25maXJtUGFzc0lucHV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IFgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGUoRiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOnZhbHVlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxbNl0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsWzZdID0gKHApID0+IChWKEYpID8gKEYudmFsdWUgPSBwKSA6IG51bGwpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdC4kdCgiYXV0aC5zaWduVXAucGFzczJQbGFjZWhvbGRlciIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGUoeikgPyAidGV4dCIgOiAicGFzc3dvcmQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJiZS1lcnJvciI6IGUodyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlkb3duOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbFs3XSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxbN10gPSBxKChwKSA9PiBlKEwpKCJwYXNzQnRuIiksIFsiZW50ZXIiXSkpLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcygiZGl2IiwgRXQsIGEodC4kdCgiYXV0aC5zaWduVXAucGFzczIiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZDogZigoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICIyMHB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICIyMHB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm10LTAuNSBjdXJzb3ItcG9pbnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiBgYXV0aC8ke2UoeikgPyAib3BlbiIgOiAiY2xvc2UifS1leWUuc3ZnYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbFs1XSB8fCAobFs1XSA9IChwKSA9PiAoei52YWx1ZSA9ICFlKHopKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3JjIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgWyJ2YWx1ZSIsICJwbGFjZWhvbGRlciIsICJ0eXBlIiwgImJlLWVycm9yIl0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBlKHcpCiAgICAgICAgICAgICAgICAgICAgICAgID8gKGcoKSwgdigiZGl2IiwgR3QsIGEodC4kdCgiYXV0aC5ub01hdGNoIikpLCAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBPKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICBaLAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2tleTogInBhc3NCdG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogSiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3LWZ1bGwgbXktY3VzdG9tLWJ1dHRvbiB0ZXh0LW5vbmUgbXQtbGctOCBtdC02IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInByaW1hcnktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0OiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0NCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGUoQWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZShrKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBuZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleWRvd246IHEobmUsIFsiZW50ZXIiXSksCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBmKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoInNwYW4iLCBSdCwgYSh0LiR0KCJhdXRoLnNpZ25Jbi5jb250aW51ZSIpKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgWyJkaXNhYmxlZCIsICJsb2FkaW5nIl0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgIDogTygiIiwgITApLAogICAgICAgICAgICAgICAgZShkKSA9PT0gZShvKS5PVFAKICAgICAgICAgICAgICAgICAgPyAoZygpLAogICAgICAgICAgICAgICAgICAgIHYoImRpdiIsIEJ0LCBbCiAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogeShBLnRpdGxlQ2xhc3MpIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGEodC4kdCgiYXV0aC5zaWduVXAuY29uZmlybUVtYWlsIikpLAogICAgICAgICAgICAgICAgICAgICAgICAzCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6IHkoQS5jb250ZW50Q2xhc3MpIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGEodC4kdCgiYXV0aC5zaWduVXAuY29uZmlybUVtYWlsU3ViWzBdIikpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIGEoZShEKSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgYSh0LiR0KCJhdXRoLnNpZ25VcC5jb25maXJtRW1haWxTdWJbMV0iKSksCiAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBzKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIFd0LCBhKHQuJHQoImF1dGguc2lnblVwLmVudGVyT1RQIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgICBUZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZfa2V5OiAib3RwSW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogZShzZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6bW9kZWxWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxbOF0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxbOF0gPSAocCkgPT4gKFYoc2UpID8gKHNlLnZhbHVlID0gcCkgOiBudWxsKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg6ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmlhLWNvbnRyb2xzIjogIm1tbW0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuczogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5uZXItY2xhc3MiOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC1wcmltYXJ5LTUwMCBib3JkZXItMi1wcmltYXJ5LTUwMCB0ZXh0LWxnLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYXNlLWNvbG9yIjogImdyYXktMzAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmluaXNoOiBuZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICBbIm1vZGVsVmFsdWUiXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICBaLAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidy1mdWxsIG15LWN1c3RvbS1idXR0b24gdGV4dC1ub25lIG10LWxnLTggbXQtMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJwcmltYXJ5LTYwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNDQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZShrKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBuZSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcygic3BhbiIsIEZ0LCBhKHQuJHQoImF1dGguc2lnbkluLmNvbnRpbnVlIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICBbImxvYWRpbmciXQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHMoImRpdiIsIE10LCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJmbGV4IGFsaWduLWNlbnRlciBjdXJzb3ItcG9pbnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBEZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUobSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogIm1yLTIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiMjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJhdXRoL2VtYWlsLWljb24uc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUoIiAiICsgYSh0LiR0KCJhdXRoLnNpZ25VcC5yZXNlbmQiKSksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgZShfKSA+IDAgfHwgZShjZSkgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKGUoXykpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoZShjZSkgPCAxMCA/ICIwIiA6ICIiKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYShlKGNlKSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzKSAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogTygiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgIDogTygiIiwgITApLAogICAgICAgICAgICAgICAgZShkKSA9PT0gZShvKS5XRUxMX0RPTkUKICAgICAgICAgICAgICAgICAgPyAoZygpLAogICAgICAgICAgICAgICAgICAgIHYoImRpdiIsIEt0LCBbCiAgICAgICAgICAgICAgICAgICAgICBzKCJkaXYiLCBqdCwgWwogICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgIG0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiBlKHJlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJhdXRoL3dlbGwtZG9uZS5wbmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogImF1dGgvcGFzc0NoYW5nZWQucG5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICBbInNyYyJdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiB5KEEudGl0bGVDbGFzcykgfSwKICAgICAgICAgICAgICAgICAgICAgICAgYSgKICAgICAgICAgICAgICAgICAgICAgICAgICBlKHJlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0LiR0KCJhdXRoLnNpZ25VcC53ZWxjb21lVGl0bGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0LiR0KCJhdXRoLmZvcmdldFBhc3N3b3JkLnBhc3NDaGFuZ2VkIikKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiB5KEEuY29udGVudENsYXNzKSB9LAogICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKHJlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdC4kdCgiYXV0aC5zaWduVXAud2VsY29tZVN1YlswXSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0LiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aC5mb3JnZXRQYXNzd29yZC5wYXNzd29yZENoYW5nZWRTdWJ0aXRsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgKyAiICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBlKHJlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoZShEKSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSh0LiR0KCJhdXRoLnNpZ25VcC53ZWxjb21lU3ViWzFdIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTygiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgWiwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgInctZnVsbCBteS1jdXN0b20tYnV0dG9uIHRleHQtbm9uZSBtdC1sZy04IG10LTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAicHJpbWFyeS02MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjQ0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAibGciLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHdlLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5ZG93bjogcSh3ZSwgWyJlbnRlciJdKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGYoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQS5za2lwTGFzdFN0ZXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEodC4kdCgiYXV0aC5mb3JnZXRQYXNzd29yZC5jb250aW51ZSIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChnKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHp0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSh0LiR0KCJhdXRoLnNpZ25VcC5jb250aW51ZVRvRGFzaGJvYXJkIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgIDogTygiIiwgITApLAogICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgJCwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGVycm9yOiBlKEgpLAogICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTplcnJvciI6CiAgICAgICAgICAgICAgICAgICAgICBsWzldIHx8IChsWzldID0gKHApID0+IChWKEgpID8gKEgudmFsdWUgPSBwKSA6IG51bGwpKSwKICAgICAgICAgICAgICAgICAgICAibWVzc2FnZS10ZXh0IjogZShSKSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgWyJlcnJvciIsICJtZXNzYWdlLXRleHQiXQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIDY0CiAgICAgICAgICAgICkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICB9LAogIHF0ID0geyBjbGFzczogImZsZXgganVzdGlmeS1iZXR3ZWVuIiB9LAogIEp0ID0gewogICAga2V5OiAwLAogICAgY2xhc3M6ICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQgY3Vyc29yLXBvaW50ZXIgdGV4dC1ncmF5LTYwMCIsCiAgfSwKICBadCA9IHsga2V5OiAxLCBjbGFzczogInRleHQtc20tcmVndWxhciB0ZXh0LWdyYXktNjAwIiB9LAogIFF0ID0gImxnOmRpc3BsYXktc20tYm9sZCBkaXNwbGF5LXhzLWJvbGQgdGV4dC1ncmF5LTkwMCBtdC1sZy02IG10LTUiLAogIFh0ID0KICAgICJsZzp0ZXh0LW1kLXJlZ3VsYXIgdGV4dC1zbS1yZWd1bGFyIHRleHQtZ3JheS02MDAgbXQtbGctMyBtdC0yIG1iLWxnLTYgbWItNSB0cmFja2luZy1ub3JtYWwiLAogIGlzID0gewogICAgX19uYW1lOiAiaW5kZXgiLAogICAgcHJvcHM6IHsKICAgICAgZGlhbG9nVHlwZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgIHNraXBMYXN0U3RlcDogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LAogICAgICBjYWxsYmFjazogeyB0eXBlOiBGdW5jdGlvbiwgZGVmYXVsdDogbnVsbCB9LAogICAgfSwKICAgIGVtaXRzOiBbImNsb3NlIl0sCiAgICBzZXR1cChLLCB7IGVtaXQ6IGxlIH0pIHsKICAgICAgY29uc3QgYiA9IHZlKCksCiAgICAgICAgVCA9IGxlLAogICAgICAgIE4gPSBpKHsgW0kuU0lHTl9JTl06IEllKF90KSwgW0kuU0lHTl9VUF06IEllKFl0KSB9KSwKICAgICAgICBRID0gaShudWxsKSwKICAgICAgICBMID0gaSghMSksCiAgICAgICAgUCA9IEs7CiAgICAgIGdlKCgpID0+IHsKICAgICAgICBjKCk7CiAgICAgIH0pOwogICAgICBjb25zdCBjID0gKCkgPT4gewogICAgICAgICAgYi51cGRhdGVDdXJyZW50RGlhbG9nKFAuZGlhbG9nVHlwZSksIGIudXBkYXRlTW9kZShQLmRpYWxvZ1R5cGUpOwogICAgICAgIH0sCiAgICAgICAgVyA9IChFKSA9PiB7CiAgICAgICAgICBMLnZhbHVlID0gRTsKICAgICAgICB9LAogICAgICAgIEogPSAoKSA9PiB7CiAgICAgICAgICBRLnZhbHVlLmJhY2tDbGlja2VkKCk7CiAgICAgICAgfSwKICAgICAgICBqID0gKCkgPT4gewogICAgICAgICAgVCgiY2xvc2UiKTsKICAgICAgICB9OwogICAgICByZXR1cm4gKEUsIEMpID0+ICgKICAgICAgICBnKCksCiAgICAgICAgdigiZGl2IiwgbnVsbCwgWwogICAgICAgICAgcygiZGl2IiwgcXQsIFsKICAgICAgICAgICAgcygiZGl2IiwgeyBjbGFzczogImZsZXggYWxpZ24tY2VudGVyIiwgb25DbGljazogSiB9LCBbCiAgICAgICAgICAgICAgZShMKSA/IChnKCksIHYoInNwYW4iLCBKdCwgIiBhcnJvd19iYWNrICIpKSA6IE8oIiIsICEwKSwKICAgICAgICAgICAgICBlKEwpID8gKGcoKSwgdigic3BhbiIsIFp0LCBhKEUuJHQoImF1dGguYmFjayIpKSwgMSkpIDogTygiIiwgITApLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgcygiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICBldCwKICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJjdXJzb3ItcG9pbnRlciB3LTI0IiwgY29sb3I6ICJncmF5LTYwMCIsIG9uQ2xpY2s6IGogfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDogZigoKSA9PiBDWzBdIHx8IChDWzBdID0gW21lKCIgbWRpLXdpbmRvdy1jbG9zZSAiKV0pKSwKICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApLAogICAgICAgICAgICBdKSwKICAgICAgICAgIF0pLAogICAgICAgICAgZShiKS5jdXJyZW50RGlhbG9nCiAgICAgICAgICAgID8gKGcoKSwKICAgICAgICAgICAgICB0dCgKICAgICAgICAgICAgICAgIHN0KGUoTilbZShiKS5jdXJyZW50RGlhbG9nXSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgcmVmX2tleTogIm15Q2hpbGQiLAogICAgICAgICAgICAgICAgICByZWY6IFEsCiAgICAgICAgICAgICAgICAgICJ0aXRsZS1jbGFzcyI6IFF0LAogICAgICAgICAgICAgICAgICAic2tpcC1sYXN0LXN0ZXAiOiBQLnNraXBMYXN0U3RlcCwKICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IFAuY2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICJjb250ZW50LWNsYXNzIjogWHQsCiAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlQmFjazogVywKICAgICAgICAgICAgICAgICAgb25DbG9zZTogaiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgNDAsCiAgICAgICAgICAgICAgICBbInNraXAtbGFzdC1zdGVwIiwgImNhbGxiYWNrIl0KICAgICAgICAgICAgICApKQogICAgICAgICAgICA6IE8oIiIsICEwKSwKICAgICAgICBdKQogICAgICApOwogICAgfSwKICB9OwpleHBvcnQgeyBpcyBhcyBfIH07Cg=="}},"time_used":89,"timings":{"blocked":62,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D5jKaxoB.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.536Z","timestamp":1785139669536,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/D5jKaxoB.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"daa-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1165\r\nKeep-Alive: timeout=5, max=93\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":3498,"size_decoded":1515,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"2689ec24f4ffd6394cdf12fefa57428d","sha1":"f7d2d55e685fc7ebd5c73e870039a0118132e18c","sha256":"7635f74fca5893f7ff2b2bb373fbe50da68d3964cef7c663c9de5f3be55bdc7f","sha512":"111ce435086b589f4ebb3ea39ac38c4e9c7399ee9a9005a818e7812c041084a0d3f047a4c3a3772be920a5ebd0260c982ebfaadaa5a71c0c83b337eb663bff0f","ssdeep":"","tlshash":"eb710f5921fa1414902b71204f2f91287239504f2e9ebdacbe7c4b815f1dd2cd67af3a","first_seen":"2025-10-23T03:46:52.898065Z","last_seen":"2026-07-27T11:49:48.944455Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsgUCBhcyBvLCB2IGFzIHIsIGJvIGFzIGwsIGJwIGFzIHMgfSBmcm9tICIuL1NtMm1DZkRFLmpzIjsKaW1wb3J0IHsgZCB9IGZyb20gIi4vRF9pdTYyN0ouanMiOwpjb25zdCBtID0gbygiZXhjaGFuZ2VCb3giLCB7CiAgc3RhdGU6ICgpID0+ICh7CiAgICBjYWxjdWxhdGVEYXRhOiBudWxsLAogICAgZGlyZWN0aW9uSW5mbzogbnVsbCwKICAgIGN1cnJlbnREaXJlY3RTdGVwOiBudWxsLAogICAgb3JkZXI6IG51bGwsCiAgICBtZW1vOiBudWxsLAogICAgcmVjZWl2ZUR5bmFtaWNGaWVsZHM6IFtdLAogICAgc2VuZER5bmFtaWNGaWVsZHM6IFtdLAogICAgc2hvdWxkQ2FjaGU6IDAsCiAgICByYXRlOiAwLAogICAgdXNlckluZm86IG51bGwsCiAgICBzaWRlOiBudWxsLAogIH0pLAogIGFjdGlvbnM6IHsKICAgIGRpc2FibGVDYWNoZSgpIHsKICAgICAgdGhpcy5zaG91bGRDYWNoZSsrOwogICAgfSwKICAgIHVwZGF0ZVVzZXJJbmZvKGUpIHsKICAgICAgdGhpcy51c2VySW5mbyA9IGU7CiAgICB9LAogICAgdXBkYXRlQ2FsY3VsYXRlRGF0YShlKSB7CiAgICAgIHRoaXMuY2FsY3VsYXRlRGF0YSA9IHsgLi4udGhpcy5jYWxjdWxhdGVEYXRhLCAuLi5lIH07CiAgICB9LAogICAgdXBkYXRlRGlyZWN0aW9uSW5mbyhlKSB7CiAgICAgIHRoaXMuZGlyZWN0aW9uSW5mbyA9IGU7CiAgICB9LAogICAgdXBkYXRlRGlyZWN0aW9uQ3VycmVudFN0ZXAoZSkgewogICAgICB0aGlzLmN1cnJlbnREaXJlY3RTdGVwID0gZTsKICAgIH0sCiAgICBzdG9yZVJlZmVycmFsQ29kZShlKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ4Y2hfcmVmZXJyYWwiLCBlKTsKICAgIH0sCiAgICB1cGRhdGVDYWxjdWxhdGVTaWRlKGUpIHsKICAgICAgdGhpcy5zaWRlID0gZTsKICAgIH0sCiAgICBjbGVhclJlZmVycmFsQ29kZSgpIHsKICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oInhjaF9yZWZlcnJhbCIpOwogICAgfSwKICAgIHVwZGF0ZUludm9pY2UoZSkgewogICAgICB0aGlzLmludm9pY2UgPSBlOwogICAgfSwKICAgIHVwZGF0ZU9yZGVyKGUpIHsKICAgICAgdmFyIGk7CiAgICAgICh0aGlzLm9yZGVyID0gZSksCiAgICAgICAgKGkgPSBlLmNhbGN1bGF0aW9uKSAhPSBudWxsICYmCiAgICAgICAgICBpLmRldGFpbHMgJiYKICAgICAgICAgIHRoaXMudXBkYXRlQ2FsY3VsYXRlRGF0YShlLmNhbGN1bGF0aW9uLmRldGFpbHMpOwogICAgfSwKICAgIHNjcm9sbFRvVG9wKCkgewogICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDEwMCwgYmVoYXZpb3I6ICJzbW9vdGgiIH0pOwogICAgfSwKICAgIHVwZGF0ZVNlbmREeW5hbWljRmllbGRzKGUpIHsKICAgICAgdGhpcy5zZW5kRHluYW1pY0ZpZWxkcyA9IGU7CiAgICB9LAogICAgY2xlYXJTdGF0cygpIHsKICAgICAgKHRoaXMuY2FsY3VsYXRlRGF0YSA9IG51bGwpLAogICAgICAgICh0aGlzLmRpcmVjdGlvbkluZm8gPSBudWxsKSwKICAgICAgICAodGhpcy5jdXJyZW50RGlyZWN0U3RlcCA9IG51bGwpLAogICAgICAgICh0aGlzLmludm9pY2UgPSBudWxsKSwKICAgICAgICAodGhpcy51c2VySW5mbyA9IG51bGwpLAogICAgICAgICh0aGlzLm9yZGVyID0gbnVsbCksCiAgICAgICAgKHRoaXMubWVtbyA9IG51bGwpOwogICAgfSwKICAgIHVwZGF0ZVJlY2VpdmVEeW5hbWljRmllbGRzKGUpIHsKICAgICAgY29uc3QgaSA9IGUuZmlsdGVyKChhKSA9PiBhLmlzX3RyYW5zYWN0aW9uID09PSAxKSwKICAgICAgICB0ID0gZS5maWx0ZXIoKGEpID0+IGEuaXNfdHJhbnNhY3Rpb24gPT09IDApOwogICAgICAodGhpcy51c2VySW5mbyA9IHQgPz8gW10pLCAodGhpcy5yZWNlaXZlRHluYW1pY0ZpZWxkcyA9IGkgPz8gW10pOwogICAgfSwKICAgIHVwZGF0ZU1lbW8oZSkgewogICAgICBpZiAoZSAmJiBlLmxlbmd0aCA+IDApIHsKICAgICAgICBjb25zdCBpID0gZS5maW5kKCh0KSA9PgogICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsICJjcnlwdG9NZW1vUVIiKQogICAgICAgICk7CiAgICAgICAgdGhpcy5tZW1vID0gaSA/PyBudWxsOwogICAgICB9CiAgICB9LAogICAgYXN5bmMgdHJhY2tPcmRlcihlKSB7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3QgeyBkYXRhOiBpIH0gPSBhd2FpdCByKGwsIHsKICAgICAgICAgICAgbWV0aG9kOiAiUE9TVCIsCiAgICAgICAgICAgIGJvZHk6IHsgdHJhY2tfaWQ6IGUgfSwKICAgICAgICAgIH0pLAogICAgICAgICAgdCA9IGkudmFsdWUuZGF0YSwKICAgICAgICAgIGEgPSB0LmNhbGN1bGF0aW9uRGV0YWlsczsKICAgICAgICAoYS5zZW5kQ3VycmVuY3kgPSB0LmRpcmVjdGlvbi5zZW5kX2N1cnJlbmN5KSwKICAgICAgICAgIChhLnJlY2VpdmVDdXJyZW5jeSA9IHQuZGlyZWN0aW9uLnJlY2VpdmVfY3VycmVuY3kpLAogICAgICAgICAgKHQudHJhY2tfaWQgPSBlKSwKICAgICAgICAgICh0aGlzLnJhdGUgPSB0LmRpcmVjdGlvbi5kaXJlY3Rpb25fcmF0ZSksCiAgICAgICAgICB0aGlzLnVwZGF0ZU9yZGVyKHQpLAogICAgICAgICAgdGhpcy51cGRhdGVDYWxjdWxhdGVEYXRhKGEpLAogICAgICAgICAgdGhpcy51cGRhdGVTZW5kRHluYW1pY0ZpZWxkcyh0LnNlbmREeW5hbWljRmllbGRzID8/IFtdKSwKICAgICAgICAgIHRoaXMudXBkYXRlTWVtbyh0LnNlbmREeW5hbWljRmllbGRzID8/IFtdKSwKICAgICAgICAgIHRoaXMudXBkYXRlUmVjZWl2ZUR5bmFtaWNGaWVsZHModC5yZWNlaXZlRHluYW1pY0ZpZWxkcyA/PyBbXSksCiAgICAgICAgICB0aGlzLnVwZGF0ZURpcmVjdGlvbkN1cnJlbnRTdGVwKGQuUEFZX09SREVSKTsKICAgICAgfSBjYXRjaCAoaSkgewogICAgICAgIHRocm93IGk7CiAgICAgIH0KICAgIH0sCiAgICBhc3luYyBzdWJtaXRHYXRld2F5Rm9ybShlLCBpKSB7CiAgICAgIHRyeSB7CiAgICAgICAgYXdhaXQgcihzLCB7IG1ldGhvZDogIlBPU1QiLCBib2R5OiBlIH0pOwogICAgICB9IGNhdGNoIChjKSB7CiAgICAgICAgdGhyb3cgYzsKICAgICAgfQogICAgICBjb25zdCB0ID0gT2JqZWN0LmFzc2lnbih7fSwgaSk7CiAgICAgIGRlbGV0ZSB0LkZPUk1fQUNUSU9OLCBkZWxldGUgdC5GT1JNX01FVEhPRDsKICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTsKICAgICAgKGEubWV0aG9kID0gaS5GT1JNX01FVEhPRCksIChhLmFjdGlvbiA9IGkuRk9STV9BQ1RJT04pOwogICAgICBmb3IgKGNvbnN0IGMgaW4gdCkKICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIGMpKSB7CiAgICAgICAgICBjb25zdCBuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgICAgICAgIChuLnR5cGUgPSAiaGlkZGVuIiksIChuLm5hbWUgPSBjKSwgKG4udmFsdWUgPSB0W2NdKSwgYS5hcHBlbmRDaGlsZChuKTsKICAgICAgICB9CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksIGEuc3VibWl0KCk7CiAgICB9LAogIH0sCn0pOwpleHBvcnQgeyBtIGFzIHUgfTsK"}},"time_used":136,"timings":{"blocked":110,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VSkeletonLoader.B-Lm5FZs.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.487Z","timestamp":1785139669487,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VSkeletonLoader.B-Lm5FZs.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"13cc-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1032\r\nKeep-Alive: timeout=5, max=91\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":5068,"size_decoded":1369,"mime_type":"text/css","magic":"ASCII text, with very long lines (5067)","md5":"159554548a07d67872b495abf43e644c","sha1":"3e99d31589de2a5aae042cea8566e3ccee1d2283","sha256":"04c227a69ae572bbb10bc9acc9d2d06185e31adab7e9e34ef98e3f55983ee2ba","sha512":"a63e7043b3b488d47c818e19ed348cd1da9b5507221080e443e712ca1896539a7660177454375f1ed3d920d86e028471b4ef09df40734766989ae2daf8248937","ssdeep":"48:LqYo8IiOjLFqZJPk0seT7sKDVFs2M5yMJTM3L68QZY:loFcS0seT7sKLs2M5ywkoY","tlshash":"f4a1620cb75a91d96a62e023f0908ec8abcc6d332621d07b8917faddf9c965cdd6504e","first_seen":"2024-10-04T11:04:32.166324Z","last_seen":"2026-07-30T17:26:10.859585Z","times_seen":54,"resource_available":false,"data":"LnYtc2tlbGV0b24tbG9hZGVye2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UpKTtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wfS52LXNrZWxldG9uLWxvYWRlcl9fYWN0aW9uc3tqdXN0aWZ5LWNvbnRlbnQ6ZW5kfS52LXNrZWxldG9uLWxvYWRlciAudi1za2VsZXRvbi1sb2FkZXJfX29zc2VpbntoZWlnaHQ6MTAwJX0udi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX19hdmF0YXIsLnYtc2tlbGV0b24tbG9hZGVyIC52LXNrZWxldG9uLWxvYWRlcl9fYnV0dG9uLC52LXNrZWxldG9uLWxvYWRlciAudi1za2VsZXRvbi1sb2FkZXJfX2NoaXAsLnYtc2tlbGV0b24tbG9hZGVyIC52LXNrZWxldG9uLWxvYWRlcl9fZGl2aWRlciwudi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX19oZWFkaW5nLC52LXNrZWxldG9uLWxvYWRlciAudi1za2VsZXRvbi1sb2FkZXJfX2ltYWdlLC52LXNrZWxldG9uLWxvYWRlciAudi1za2VsZXRvbi1sb2FkZXJfX29zc2Vpbiwudi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX190ZXh0e2JhY2tncm91bmQ6cmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKX0udi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX19saXN0LWl0ZW0sLnYtc2tlbGV0b24tbG9hZGVyIC52LXNrZWxldG9uLWxvYWRlcl9fbGlzdC1pdGVtLWF2YXRhciwudi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX19saXN0LWl0ZW0tYXZhdGFyLXRocmVlLWxpbmUsLnYtc2tlbGV0b24tbG9hZGVyIC52LXNrZWxldG9uLWxvYWRlcl9fbGlzdC1pdGVtLWF2YXRhci10d28tbGluZSwudi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX19saXN0LWl0ZW0tdGV4dCwudi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX19saXN0LWl0ZW0tdGhyZWUtbGluZSwudi1za2VsZXRvbi1sb2FkZXIgLnYtc2tlbGV0b24tbG9hZGVyX19saXN0LWl0ZW0tdHdvLWxpbmV7Ym9yZGVyLXJhZGl1czo0cHh9LnYtc2tlbGV0b24tbG9hZGVyX19ib25le2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOmluaGVyaXQ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIDEwMCU7ZmxleC13cmFwOndyYXA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS52LXNrZWxldG9uLWxvYWRlcl9fYm9uZTphZnRlcnthbmltYXRpb246bG9hZGluZyAxLjVzIGluZmluaXRlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHJnYmEodmFyKC0tdi10aGVtZS1zdXJmYWNlKSwwKSxyZ2JhKHZhcigtLXYtdGhlbWUtc3VyZmFjZSksLjMpLHJnYmEodmFyKC0tdi10aGVtZS1zdXJmYWNlKSwwKSk7Y29udGVudDoiIjtoZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSk7d2lkdGg6MTAwJTt6LWluZGV4OjF9LnYtc2tlbGV0b24tbG9hZGVyX19hdmF0YXJ7Ym9yZGVyLXJhZGl1czo1MCU7ZmxleDowIDEgYXV0bztoZWlnaHQ6NDhweDttYXJnaW46OHB4IDE2cHg7bWF4LWhlaWdodDo0OHB4O21heC13aWR0aDo0OHB4O21pbi1oZWlnaHQ6NDhweDttaW4td2lkdGg6NDhweDt3aWR0aDo0OHB4fS52LXNrZWxldG9uLWxvYWRlcl9fYXZhdGFyKy52LXNrZWxldG9uLWxvYWRlcl9fYm9uZXtmbGV4OjEgMSBhdXRvO21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0udi1za2VsZXRvbi1sb2FkZXJfX2F2YXRhcisudi1za2VsZXRvbi1sb2FkZXJfX3BhcmFncmFwaD4udi1za2VsZXRvbi1sb2FkZXJfX3RleHQsLnYtc2tlbGV0b24tbG9hZGVyX19hdmF0YXIrLnYtc2tlbGV0b24tbG9hZGVyX19zZW50ZW5jZXM+LnYtc2tlbGV0b24tbG9hZGVyX190ZXh0e21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0udi1za2VsZXRvbi1sb2FkZXJfX2J1dHRvbntib3JkZXItcmFkaXVzOjRweDtoZWlnaHQ6MzZweDttYXJnaW46MTZweDttYXgtd2lkdGg6NjRweH0udi1za2VsZXRvbi1sb2FkZXJfX2J1dHRvbisudi1za2VsZXRvbi1sb2FkZXJfX2JvbmV7ZmxleDoxIDEgYXV0bzttYXJnaW4taW5saW5lLXN0YXJ0OjB9LnYtc2tlbGV0b24tbG9hZGVyX19idXR0b24rLnYtc2tlbGV0b24tbG9hZGVyX19wYXJhZ3JhcGg+LnYtc2tlbGV0b24tbG9hZGVyX190ZXh0LC52LXNrZWxldG9uLWxvYWRlcl9fYnV0dG9uKy52LXNrZWxldG9uLWxvYWRlcl9fc2VudGVuY2VzPi52LXNrZWxldG9uLWxvYWRlcl9fdGV4dHttYXJnaW4taW5saW5lLXN0YXJ0OjB9LnYtc2tlbGV0b24tbG9hZGVyX19jaGlwe2JvcmRlci1yYWRpdXM6MTZweDtoZWlnaHQ6MzJweDttYXJnaW46MTZweDttYXgtd2lkdGg6OTZweH0udi1za2VsZXRvbi1sb2FkZXJfX2NoaXArLnYtc2tlbGV0b24tbG9hZGVyX19ib25le2ZsZXg6MSAxIGF1dG87bWFyZ2luLWlubGluZS1zdGFydDowfS52LXNrZWxldG9uLWxvYWRlcl9fY2hpcCsudi1za2VsZXRvbi1sb2FkZXJfX3BhcmFncmFwaD4udi1za2VsZXRvbi1sb2FkZXJfX3RleHQsLnYtc2tlbGV0b24tbG9hZGVyX19jaGlwKy52LXNrZWxldG9uLWxvYWRlcl9fc2VudGVuY2VzPi52LXNrZWxldG9uLWxvYWRlcl9fdGV4dHttYXJnaW4taW5saW5lLXN0YXJ0OjB9LnYtc2tlbGV0b24tbG9hZGVyX19kYXRlLXBpY2tlcntib3JkZXItcmFkaXVzOmluaGVyaXR9LnYtc2tlbGV0b24tbG9hZGVyX19kYXRlLXBpY2tlciAudi1za2VsZXRvbi1sb2FkZXJfX2xpc3QtaXRlbTpmaXJzdC1jaGlsZCAudi1za2VsZXRvbi1sb2FkZXJfX3RleHR7bWF4LXdpZHRoOjg4cHg7d2lkdGg6MjAlfS52LXNrZWxldG9uLWxvYWRlcl9fZGF0ZS1waWNrZXIgLnYtc2tlbGV0b24tbG9hZGVyX19oZWFkaW5ne21heC13aWR0aDoyNTZweDt3aWR0aDo0MCV9LnYtc2tlbGV0b24tbG9hZGVyX19kYXRlLXBpY2tlci1kYXlze2ZsZXgtd3JhcDp3cmFwO21hcmdpbjoxNnB4fS52LXNrZWxldG9uLWxvYWRlcl9fZGF0ZS1waWNrZXItZGF5cyAudi1za2VsZXRvbi1sb2FkZXJfX2F2YXRhcntib3JkZXItcmFkaXVzOjRweDttYXJnaW46NHB4O21heC13aWR0aDoxMDAlfS52LXNrZWxldG9uLWxvYWRlcl9fZGF0ZS1waWNrZXItb3B0aW9uc3tmbGV4LXdyYXA6bm93cmFwfS52LXNrZWxldG9uLWxvYWRlcl9fZGF0ZS1waWNrZXItb3B0aW9ucyAudi1za2VsZXRvbi1sb2FkZXJfX3RleHR7ZmxleDoxIDEgYXV0b30udi1za2VsZXRvbi1sb2FkZXJfX2RpdmlkZXJ7Ym9yZGVyLXJhZGl1czoxcHg7aGVpZ2h0OjJweH0udi1za2VsZXRvbi1sb2FkZXJfX2hlYWRpbmd7Ym9yZGVyLXJhZGl1czoxMnB4O2hlaWdodDoyNHB4O21hcmdpbjoxNnB4fS52LXNrZWxldG9uLWxvYWRlcl9faGVhZGluZysudi1za2VsZXRvbi1sb2FkZXJfX3N1YnRpdGxle21hcmdpbi10b3A6LTE2cHh9LnYtc2tlbGV0b24tbG9hZGVyX19pbWFnZXtib3JkZXItcmFkaXVzOjA7aGVpZ2h0OjE1MHB4fS52LXNrZWxldG9uLWxvYWRlcl9fY2FyZCAudi1za2VsZXRvbi1sb2FkZXJfX2ltYWdle2JvcmRlci1yYWRpdXM6MH0udi1za2VsZXRvbi1sb2FkZXJfX2xpc3QtaXRlbXttYXJnaW46MTZweH0udi1za2VsZXRvbi1sb2FkZXJfX2xpc3QtaXRlbSAudi1za2VsZXRvbi1sb2FkZXJfX3RleHR7bWFyZ2luOjB9LnYtc2tlbGV0b24tbG9hZGVyX190YWJsZS10aGVhZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udi1za2VsZXRvbi1sb2FkZXJfX3RhYmxlLXRoZWFkIC52LXNrZWxldG9uLWxvYWRlcl9faGVhZGluZ3ttYXJnaW4tdG9wOjE2cHg7bWF4LXdpZHRoOjE2cHh9LnYtc2tlbGV0b24tbG9hZGVyX190YWJsZS10Zm9vdHtmbGV4LXdyYXA6bm93cmFwfS52LXNrZWxldG9uLWxvYWRlcl9fdGFibGUtdGZvb3Q+LnYtc2tlbGV0b24tbG9hZGVyX190ZXh0LnYtc2tlbGV0b24tbG9hZGVyX19ib25le21hcmdpbi10b3A6MTZweH0udi1za2VsZXRvbi1sb2FkZXJfX3RhYmxlLXJvd3thbGlnbi1pdGVtczpiYXNlbGluZTtmbGV4LXdyYXA6bm93cmFwO2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHk7bWFyZ2luOjAgOHB4fS52LXNrZWxldG9uLWxvYWRlcl9fdGFibGUtcm93Pi52LXNrZWxldG9uLWxvYWRlcl9fdGV4dC52LXNrZWxldG9uLWxvYWRlcl9fYm9uZXttYXJnaW4taW5saW5lOjhweH0udi1za2VsZXRvbi1sb2FkZXJfX3RhYmxlLXJvdysudi1za2VsZXRvbi1sb2FkZXJfX2RpdmlkZXJ7bWFyZ2luOjAgMTZweH0udi1za2VsZXRvbi1sb2FkZXJfX3RhYmxlLWNlbGx7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDhweDt3aWR0aDo4OHB4fS52LXNrZWxldG9uLWxvYWRlcl9fdGFibGUtY2VsbCAudi1za2VsZXRvbi1sb2FkZXJfX3RleHR7bWFyZ2luLWJvdHRvbTowfS52LXNrZWxldG9uLWxvYWRlcl9fc3VidGl0bGV7bWF4LXdpZHRoOjcwJX0udi1za2VsZXRvbi1sb2FkZXJfX3N1YnRpdGxlPi52LXNrZWxldG9uLWxvYWRlcl9fdGV4dHtib3JkZXItcmFkaXVzOjhweDtoZWlnaHQ6MTZweH0udi1za2VsZXRvbi1sb2FkZXJfX3RleHR7Ym9yZGVyLXJhZGl1czo2cHg7aGVpZ2h0OjEycHg7bWFyZ2luOjE2cHh9LnYtc2tlbGV0b24tbG9hZGVyX190ZXh0Ky52LXNrZWxldG9uLWxvYWRlcl9fdGV4dHttYXJnaW4tdG9wOi04cHg7bWF4LXdpZHRoOjUwJX0udi1za2VsZXRvbi1sb2FkZXJfX3RleHQrLnYtc2tlbGV0b24tbG9hZGVyX190ZXh0Ky52LXNrZWxldG9uLWxvYWRlcl9fdGV4dHttYXgtd2lkdGg6NzAlfS52LXNrZWxldG9uLWxvYWRlci0tYm9pbGVycGxhdGUgLnYtc2tlbGV0b24tbG9hZGVyX19ib25lOmFmdGVye2Rpc3BsYXk6bm9uZX0udi1za2VsZXRvbi1sb2FkZXItLWlzLWxvYWRpbmd7b3ZlcmZsb3c6aGlkZGVufS52LXNrZWxldG9uLWxvYWRlci0tdGlsZSwudi1za2VsZXRvbi1sb2FkZXItLXRpbGUgLnYtc2tlbGV0b24tbG9hZGVyX19ib25le2JvcmRlci1yYWRpdXM6MH1Aa2V5ZnJhbWVzIGxvYWRpbmd7dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlKX19Cg=="}},"time_used":236,"timings":{"blocked":210,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtm.js?id=GTM-KV47CD8","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.848Z","timestamp":1785139669848,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtm.js?id=GTM-KV47CD8 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 08:07:49 GMT\r\nexpires: Mon, 27 Jul 2026 08:07:49 GMT\r\ncache-control: private, max-age=900\r\nlast-modified: Mon, 27 Jul 2026 06:00:00 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 135838\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":397913,"size_decoded":136488,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (6726)","md5":"51c322f909a9a87988d05b83fe7e3b08","sha1":"e75dc9a8f541ff91f23e63be90040e6f7d10c208","sha256":"92d564da937c7717dae8aebfcc050ae2492888f1e0ca556691611b4a44ce5938","sha512":"99a54e6e033df79a13be66660f0e1b69d29dbd7303e1b22cd8766cf026058af02eb79dd406948f5200c847d0d233f692157b0c56c2902111f9c4e0639c61efb8","ssdeep":"6144:aNHU0jN9cP69uMxlMrHScPmfxNf3EjFpGaPoXcJMG+:aN0YmP69b4JPOcJZ+","tlshash":"6f8418cdb3da74629392f478903f018ba57a28d2b44cc899f189dcd42e7069a4277f7d","first_seen":"2026-07-27T08:08:31.008124Z","last_seen":"2026-07-27T11:49:48.972696Z","times_seen":3,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMTAiLAogIAogICJtYWNyb3MiOlt7ImZ1bmN0aW9uIjoiX19lIn0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJldmVudE1vZGVsLmV2ZW50X2xhYmVsIn0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJldmVudE1vZGVsLm9yZGVyX2lkIn0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOlsibWFjcm8iLDJdfSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX25hbWUiOiJndG0uZWxlbWVudElkIiwidnRwX2RhdGFMYXllclZlcnNpb24iOjF9LHsiZnVuY3Rpb24iOiJfX2FldiIsInZ0cF92YXJUeXBlIjoiVEVYVCJ9LHsiZnVuY3Rpb24iOiJfX2F3ZWMiLCJ2dHBfbW9kZSI6IkFVVE8iLCJ2dHBfZW5hYmxlRWxlbWVudEJsb2NraW5nIjpmYWxzZSwidnRwX2lzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyI6ZmFsc2V9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjpbInRlbXBsYXRlIixbIm1hY3JvIiwyXSwiLnRyYW5zYWN0aW9uX2lkIl19LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoib3JkZXJfaWQifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6Im9yZGVyX2lkIn0seyJmdW5jdGlvbiI6Il9fdSIsInZ0cF9jb21wb25lbnQiOiJVUkwiLCJ2dHBfZW5hYmxlTXVsdGlRdWVyeUtleXMiOmZhbHNlLCJ2dHBfZW5hYmxlSWdub3JlRW1wdHlRdWVyeVBhcmFtIjpmYWxzZX0seyJmdW5jdGlvbiI6Il9fdSIsInZ0cF9jb21wb25lbnQiOiJIT1NUIiwidnRwX2VuYWJsZU11bHRpUXVlcnlLZXlzIjpmYWxzZSwidnRwX2VuYWJsZUlnbm9yZUVtcHR5UXVlcnlQYXJhbSI6ZmFsc2V9LHsiZnVuY3Rpb24iOiJfX3UiLCJ2dHBfY29tcG9uZW50IjoiUEFUSCIsInZ0cF9lbmFibGVNdWx0aVF1ZXJ5S2V5cyI6ZmFsc2UsInZ0cF9lbmFibGVJZ25vcmVFbXB0eVF1ZXJ5UGFyYW0iOmZhbHNlfSx7ImZ1bmN0aW9uIjoiX19mIiwidnRwX2NvbXBvbmVudCI6IlVSTCJ9LHsiZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX25hbWUiOiJndG0uZWxlbWVudCIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoxfSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX25hbWUiOiJndG0uZWxlbWVudENsYXNzZXMiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLmVsZW1lbnRUYXJnZXQiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLmVsZW1lbnRVcmwiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLnNjcm9sbFRocmVzaG9sZCIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoxfV0sCiAgInRhZ3MiOlt7ImZ1bmN0aW9uIjoiX19nb29ndGFnIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfdGFnSWQiOiJHLVZWQlEwVExDRE4iLCJ2dHBfY29uZmlnU2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsInNlbmRfcGFnZV92aWV3IiwicGFyYW1ldGVyVmFsdWUiLCJ0cnVlIl1dLCJ0YWdfaWQiOjV9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfc2VuZEVjb21tZXJjZURhdGEiOmZhbHNlLCJ2dHBfZXZlbnRTZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicGFyYW1ldGVyIiwic2lnbl91cCIsInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiwxXV1dLCJ2dHBfZW5oYW5jZWRVc2VySWQiOmZhbHNlLCJ2dHBfdXNlclByb3BlcnRpZXMiOlsibGlzdCIsWyJtYXAiLCJuYW1lIiwidXNlcmlkX2RpbWVudGlvbiIsInZhbHVlIixbIm1hY3JvIiwzXV1dLCJ2dHBfZXZlbnROYW1lIjoic2lnbl91cCIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOiJHLVZWQlEwVExDRE4iLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVNb3JlU2V0dGluZ3NPcHRpb24iOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjo4fSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsImxpbmtfdGV4dCIsInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw1XV1dLCJ2dHBfZXZlbnROYW1lIjoiQ1RBLVNURVAxIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctVlZCUTBUTENETiIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZU1vcmVTZXR0aW5nc09wdGlvbiI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjEzfSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsImxpbmtfdGV4dCIsInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw1XV1dLCJ2dHBfZXZlbnROYW1lIjoiQ1RBLVNURVAyIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctVlZCUTBUTENETiIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZU1vcmVTZXR0aW5nc09wdGlvbiI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjE3fSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsImxpbmtfdGV4dCIsInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw1XV1dLCJ2dHBfZXZlbnROYW1lIjoiQ1RBLVNURVAzIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctVlZCUTBUTENETiIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZU1vcmVTZXR0aW5nc09wdGlvbiI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjE5fSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsImxpbmtfdGV4dCIsInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw1XV1dLCJ2dHBfZXZlbnROYW1lIjoiQ1RBLVM0IiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctVlZCUTBUTENETiIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZU1vcmVTZXR0aW5nc09wdGlvbiI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjIxfSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2VuaGFuY2VkVXNlcklkIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsWyJtYWNybyIsNV0sInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw1XV1dLCJ2dHBfZXZlbnROYW1lIjoicGVyZmVjdC12b3VjaGVyIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctVlZCUTBUTENETiIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZU1vcmVTZXR0aW5nc09wdGlvbiI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjI4fSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2VuaGFuY2VkVXNlcklkIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsWyJtYWNybyIsNV0sInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw1XV1dLCJ2dHBfZXZlbnROYW1lIjoicGF5bWVudC1nYXRlIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctVlZCUTBUTENETiIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZU1vcmVTZXR0aW5nc09wdGlvbiI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjI5fSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2VuaGFuY2VkVXNlcklkIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsWyJtYWNybyIsNV0sInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw1XV1dLCJ2dHBfZXZlbnROYW1lIjoicmVjZWl2ZS1wYXlwYWwiLCJ2dHBfbWVhc3VyZW1lbnRJZE92ZXJyaWRlIjoiRy1WVkJRMFRMQ0ROIiwidnRwX2VuYWJsZVVzZXJQcm9wZXJ0aWVzIjp0cnVlLCJ2dHBfZW5hYmxlTW9yZVNldHRpbmdzT3B0aW9uIjp0cnVlLCJ2dHBfZW5hYmxlRXVpZCI6dHJ1ZSwidnRwX21pZ3JhdGVkVG9WMiI6dHJ1ZSwidnRwX2RlbW9WMiI6ZmFsc2UsInRhZ19pZCI6MzB9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfc2VuZEVjb21tZXJjZURhdGEiOmZhbHNlLCJ2dHBfZW5oYW5jZWRVc2VySWQiOmZhbHNlLCJ2dHBfZXZlbnRTZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicGFyYW1ldGVyIixbIm1hY3JvIiw1XSwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDVdXV0sInZ0cF9ldmVudE5hbWUiOiJzaGFyZS1mZWVkYmFjayIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOiJHLVZWQlEwVExDRE4iLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVNb3JlU2V0dGluZ3NPcHRpb24iOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjozMX0seyJmdW5jdGlvbiI6Il9fZ2Fhd2UiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF91c2VyRGF0YVZhcmlhYmxlIjpbIm1hY3JvIiw2XSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjp0cnVlLCJ2dHBfZ2V0RWNvbW1lcmNlRGF0YUZyb20iOiJkYXRhTGF5ZXIiLCJ2dHBfZW5oYW5jZWRVc2VySWQiOnRydWUsInZ0cF9ldmVudFNldHRpbmdzVGFibGUiOlsibGlzdCIsWyJtYXAiLCJwYXJhbWV0ZXIiLCJ0cmFuc2FjdGlvbl9pZCIsInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiw3XV1dLCJ2dHBfZXZlbnROYW1lIjoicHVyY2hhc2UiLCJ2dHBfbWVhc3VyZW1lbnRJZE92ZXJyaWRlIjoiRy1WVkJRMFRMQ0ROIiwidnRwX2VuYWJsZVVzZXJQcm9wZXJ0aWVzIjp0cnVlLCJ2dHBfZW5hYmxlTW9yZVNldHRpbmdzT3B0aW9uIjp0cnVlLCJ2dHBfZW5hYmxlRXVpZCI6dHJ1ZSwidnRwX21pZ3JhdGVkVG9WMiI6dHJ1ZSwidnRwX2RlbW9WMiI6ZmFsc2UsInRhZ19pZCI6MzN9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfc2VuZEVjb21tZXJjZURhdGEiOnRydWUsInZ0cF9nZXRFY29tbWVyY2VEYXRhRnJvbSI6ImRhdGFMYXllciIsInZ0cF9lbmhhbmNlZFVzZXJJZCI6ZmFsc2UsInZ0cF9ldmVudFNldHRpbmdzVGFibGUiOlsibGlzdCIsWyJtYXAiLCJwYXJhbWV0ZXIiLCJpdGVtX2lkIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDJdXV0sInZ0cF9ldmVudE5hbWUiOiJpdGVtX2lkIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctVlZCUTBUTENETiIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZU1vcmVTZXR0aW5nc09wdGlvbiI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjM2fSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2VuaGFuY2VkVXNlcklkIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsInVzZXJfaWQiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsM11dXSwidnRwX3VzZXJQcm9wZXJ0aWVzIjpbImxpc3QiLFsibWFwIiwibmFtZSIsInVzZXJpZF9kaW1lbnRpb24iLCJ2YWx1ZSIsWyJtYWNybyIsM11dXSwidnRwX2V2ZW50TmFtZSI6InVzZXJfaWQiLCJ2dHBfbWVhc3VyZW1lbnRJZE92ZXJyaWRlIjoiRy1WVkJRMFRMQ0ROIiwidnRwX2VuYWJsZVVzZXJQcm9wZXJ0aWVzIjp0cnVlLCJ2dHBfZW5hYmxlTW9yZVNldHRpbmdzT3B0aW9uIjp0cnVlLCJ2dHBfZW5hYmxlRXVpZCI6dHJ1ZSwidnRwX21pZ3JhdGVkVG9WMiI6dHJ1ZSwidnRwX2RlbW9WMiI6ZmFsc2UsInRhZ19pZCI6NDF9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjo0Mn0seyJmdW5jdGlvbiI6Il9fY2wiLCJ0YWdfaWQiOjQzfSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6NDR9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjo0NX0seyJmdW5jdGlvbiI6Il9fY2wiLCJ0YWdfaWQiOjQ2fSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6NDd9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjo0OH0seyJmdW5jdGlvbiI6Il9fY2wiLCJ0YWdfaWQiOjQ5fSx7ImZ1bmN0aW9uIjoiX19odG1sIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfaHRtbCI6Ilx1MDAzQ3NjcmlwdCB0eXBlPVwidGV4dFwvZ3Rtc2NyaXB0XCJcdTAwM0UoZnVuY3Rpb24oKXt3aW5kb3cuc2liPXtlcXVldWU6W10sY2xpZW50X2tleTpcImZ3MmZqNDkwaDZ1bTZodjBqb2Q3ZWgwbVwifTt3aW5kb3cuc2VuZGluYmx1ZT17fTtmb3IodmFyIGE9W1widHJhY2tcIixcImlkZW50aWZ5XCIsXCJ0cmFja0xpbmtcIixcInBhZ2VcIl0sYj0wO2JcdTAwM0NhLmxlbmd0aDtiKyspKGZ1bmN0aW9uKGQpe3dpbmRvdy5zZW5kaW5ibHVlW2RdPWZ1bmN0aW9uKCl7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTsod2luZG93LnNpYltkXXx8ZnVuY3Rpb24oKXt2YXIgZT17fTtlW2RdPWM7d2luZG93LnNpYi5lcXVldWUucHVzaChlKX0pKGNbMF0sY1sxXSxjWzJdKX19KShhW2JdKTthPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7Yj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKVswXTthLnR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCI7YS5pZD1cInNlbmRpbmJsdWUtanNcIjthLmFzeW5jPSEwO2Euc3JjPVwiaHR0cHM6XC9cL3NpYmF1dG9tYXRpb24uY29tXC9zYS5qcz9rZXlcXHgzZFwiK1xud2luZG93LnNpYi5jbGllbnRfa2V5O2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKTt3aW5kb3cuc2VuZGluYmx1ZS5wYWdlKCl9KSgpO1x1MDAzQ1wvc2NyaXB0XHUwMDNFIiwidnRwX3N1cHBvcnREb2N1bWVudFdyaXRlIjpmYWxzZSwidnRwX2VuYWJsZUlmcmFtZU1vZGUiOmZhbHNlLCJ2dHBfZW5hYmxlRWRpdEpzTWFjcm9CZWhhdmlvciI6ZmFsc2UsInRhZ19pZCI6M31dLAogICJwcmVkaWNhdGVzIjpbeyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmpzIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoic2lnbl91cCJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiw0XSwiYXJnMSI6InN0ZXAxIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmNsaWNrIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDRdLCJhcmcxIjoic3RlcDIifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsNF0sImFyZzEiOiJzdGVwMyJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiw0XSwiYXJnMSI6InN0ZXA0In0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDRdLCJhcmcxIjoicGVyZmVjdC12b3VjaGVyIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDRdLCJhcmcxIjoicGF5bWVudC1nYXRlIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDRdLCJhcmcxIjoicmVjZWl2ZS1wYXlwYWwifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsNF0sImFyZzEiOiJzaGFyZS1mZWVkYmFjayJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6InB1cmNoYXNlIn0seyJmdW5jdGlvbiI6Il9yZSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoib3JkZXIifSx7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJsb2dpbiJ9XSwKICAicnVsZXMiOltbWyJpZiIsMF0sWyJhZGQiLDAsMjEsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjBdXSxbWyJpZiIsMV0sWyJhZGQiLDFdXSxbWyJpZiIsMiwzXSxbImFkZCIsMl1dLFtbImlmIiwzLDRdLFsiYWRkIiwzXV0sW1siaWYiLDMsNV0sWyJhZGQiLDRdXSxbWyJpZiIsMyw2XSxbImFkZCIsNV1dLFtbImlmIiwzLDddLFsiYWRkIiw2XV0sW1siaWYiLDMsOF0sWyJhZGQiLDddXSxbWyJpZiIsMyw5XSxbImFkZCIsOF1dLFtbImlmIiwzLDEwXSxbImFkZCIsOV1dLFtbImlmIiwxMV0sWyJhZGQiLDEwXV0sW1siaWYiLDEyXSxbImFkZCIsMTFdXSxbWyJpZiIsMTNdLFsiYWRkIiwxMl1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fYWV2IixbNDYsImEiXSxbNTAsImFDIixbNDYsImFKIl0sWzIyLFsyLFsxNSwidiJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsWzE1LCJhSiJdXV0sWzQ2LFs1MyxbMzYsWzE2LFsxNSwidiJdLFsxNSwiYUoiXV1dXV1dLFs1MiwiYUsiLFsxNixbMTUsInoiXSwiZWxlbWVudCJdXSxbMjIsWzI4LFsxNSwiYUsiXV0sWzQ2LFszNixbNDRdXV1dLFs1MiwiYUwiLFsiZyIsWzE1LCJhSyJdXV0sWyJhRCIsWzE1LCJhSiJdLFsxNSwiYUwiXV0sWzM2LFsxNSwiYUwiXV1dLFs1MCwiYUQiLFs0NiwiYUoiLCJhSyJdLFs0MyxbMTUsInYiXSxbMTUsImFKIl0sWzE1LCJhSyJdXSxbMixbMTUsInciXSwicHVzaCIsWzcsWzE1LCJhSiJdXV0sWzIyLFsxOCxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLFsxNSwicyJdXSxbNDYsWzUzLFs1MiwiYUwiLFsyLFsxNSwidyJdLCJzaGlmdCIsWzddXV0sWzIsWzE1LCJiIl0sImRlbGV0ZSIsWzcsWzE1LCJ2Il0sWzE1LCJhTCJdXV1dXV1dLFs1MCwiYUUiLFs0NiwiYUoiLCJhSyJdLFs1MiwiYUwiLFsibiIsWzMwLFszMCxbMTYsWzE1LCJ6Il0sImVsZW1lbnRVcmwiXSxbMTUsImFKIl1dLCIiXV1dLFs1MiwiYU0iLFsibiIsWzMwLFsxNyxbMTUsImFLIl0sImNvbXBvbmVudCJdLCJVUkwiXV1dLFszOCxbMTUsImFNIl0sWzQ2LCJVUkwiLCJJU19PVVRCT1VORCIsIlBST1RPQ09MIiwiSE9TVCIsIlBPUlQiLCJQQVRIIiwiRVhURU5TSU9OIiwiUVVFUlkiLCJGUkFHTUVOVCJdLFs0NixbNSxbNDYsWzM2LFsxNSwiYUwiXV1dXSxbNSxbNDYsWzM2LFsiYUciLFsxNSwiYUwiXSxbMTcsWzE1LCJhSyJdLCJhZmZpbGlhdGVkRG9tYWlucyJdXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwibCJdLCJCIixbNyxbMTUsImFMIl1dXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwibCJdLCJDIixbNyxbMTUsImFMIl0sWzE3LFsxNSwiYUsiXSwic3RyaXBXd3ciXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJsIl0sIkQiLFs3LFsxNSwiYUwiXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJsIl0sIkUiLFs3LFsxNSwiYUwiXSxbMTcsWzE1LCJhSyJdLCJkZWZhdWx0UGFnZXMiXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJsIl0sIkYiLFs3LFsxNSwiYUwiXV1dXV1dLFs1LFs0NixbMjIsWzE3LFsxNSwiYUsiXSwicXVlcnlLZXkiXSxbNDYsWzUzLFszNixbMixbMTUsImwiXSwiSCIsWzcsWzE1LCJhTCJdLFsxNyxbMTUsImFLIl0sInF1ZXJ5S2V5Il1dXV1dXSxbNDYsWzUzLFszNixbMixbMTcsWyJtIixbMTUsImFMIl1dLCJzZWFyY2giXSwicmVwbGFjZSIsWzcsIj8iLCIiXV1dXV1dXV0sWzUsWzQ2LFszNixbMixbMTUsImwiXSwiRyIsWzcsWzE1LCJhTCJdXV1dXV0sWzksWzQ2LFszNixbMTcsWyJtIixbMTUsImFMIl1dLCJocmVmIl1dXV1dXV0sWzUwLCJhRiIsWzQ2LCJhSiIsImFLIl0sWzUyLCJhTCIsWzgsIkFUVFJJQlVURSIsImVsZW1lbnRBdHRyaWJ1dGUiLCJDTEFTU0VTIiwiZWxlbWVudENsYXNzZXMiLCJFTEVNRU5UIiwiZWxlbWVudCIsIklEIiwiZWxlbWVudElkIiwiSElTVE9SWV9DSEFOR0VfU09VUkNFIiwiaGlzdG9yeUNoYW5nZVNvdXJjZSIsIkhJU1RPUllfTkVXX1NUQVRFIiwibmV3SGlzdG9yeVN0YXRlIiwiSElTVE9SWV9ORVdfVVJMX0ZSQUdNRU5UIiwibmV3VXJsRnJhZ21lbnQiLCJISVNUT1JZX09MRF9TVEFURSIsIm9sZEhpc3RvcnlTdGF0ZSIsIkhJU1RPUllfT0xEX1VSTF9GUkFHTUVOVCIsIm9sZFVybEZyYWdtZW50IiwiVEFSR0VUIiwiZWxlbWVudFRhcmdldCJdXSxbNTIsImFNIixbMTYsWzE1LCJ6Il0sWzE2LFsxNSwiYUwiXSxbMTUsImFKIl1dXV0sWzM2LFszOSxbMjEsWzE1LCJhTSJdLFs0NF1dLFsxNSwiYU0iXSxbMTUsImFLIl1dXV0sWzUwLCJhRyIsWzQ2LCJhSiIsImFLIl0sWzIyLFsyOCxbMTUsImFKIl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNTIsImFMIixbImFJIixbMTUsImFKIl1dXSxbMjIsWyJhSCIsWzE1LCJhTCJdLFsiayJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzIyLFsyOCxbInEiLFsxNSwiYUsiXV1dLFs0NixbNTMsWzMsImFLIixbMixbMixbIm4iLFszMCxbMTUsImFLIl0sIiJdXSwicmVwbGFjZSIsWzcsWyJjIiwiXFxzKyIsImciXSwiIl1dLCJzcGxpdCIsWzcsIiwiXV1dXV1dLFs2NSwiYU0iLFsxNSwiYUsiXSxbNDYsWzUzLFsyMixbMjAsWyJqIixbMTUsImFNIl1dLCJvYmplY3QiXSxbNDYsWzUzLFsyMixbMTYsWzE1LCJhTSJdLCJpc19yZWdleCJdLFs0NixbNTMsWzUyLCJhTiIsWyJjIixbMTYsWzE1LCJhTSJdLCJkb21haW4iXV1dLFsyMixbMjAsWzE1LCJhTiJdLFs0NV1dLFs0NixbNl1dXSxbMjIsWyJwIixbMTUsImFOIl0sWzE1LCJhTCJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXSxbNDYsWzUzLFsyMixbImFIIixbMTUsImFMIl0sWzE2LFsxNSwiYU0iXSwiZG9tYWluIl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXV1dXV1dLFs0NixbMjIsWzIwLFsiaiIsWzE1LCJhTSJdXSwiUmVnRXhwIl0sWzQ2LFs1MyxbMjIsWyJwIixbMTUsImFNIl0sWzE1LCJhTCJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXSxbNDYsWzUzLFsyMixbImFIIixbMTUsImFMIl0sWzE1LCJhTSJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXV1dXV1dXSxbMzYsdHJ1ZV1dLFs1MCwiYUgiLFs0NiwiYUoiLCJhSyJdLFsyMixbMjgsWzE1LCJhSyJdXSxbNDYsWzM2LGZhbHNlXV1dLFsyMixbMTksWzIsWzE1LCJhSiJdLCJpbmRleE9mIixbNyxbMTUsImFLIl1dXSwwXSxbNDYsWzM2LHRydWVdXV0sWzMsImFLIixbImFJIixbMTUsImFLIl1dXSxbMjIsWzI4LFsxNSwiYUsiXV0sWzQ2LFszNixmYWxzZV1dXSxbMywiYUsiLFsyLFsxNSwiYUsiXSwidG9Mb3dlckNhc2UiLFs3XV1dLFs0MSwiYUwiXSxbMywiYUwiLFszNyxbMTcsWzE1LCJhSiJdLCJsZW5ndGgiXSxbMTcsWzE1LCJhSyJdLCJsZW5ndGgiXV1dLFsyMixbMSxbMTgsWzE1LCJhTCJdLDBdLFsyOSxbMixbMTUsImFLIl0sImNoYXJBdCIsWzcsMF1dLCIuIl1dLFs0NixbNTMsWzM0LFszLCJhTCIsWzM3LFsxNSwiYUwiXSwxXV1dLFszLCJhSyIsWzAsIi4iLFsxNSwiYUsiXV1dXV1dLFszNixbMSxbMTksWzE1LCJhTCJdLDBdLFsxMixbMixbMTUsImFKIl0sImluZGV4T2YiLFs3LFsxNSwiYUsiXSxbMTUsImFMIl1dXSxbMTUsImFMIl1dXV1dLFs1MCwiYUkiLFs0NiwiYUoiXSxbMjIsWzI4LFsicCIsWzE1LCJyIl0sWzE1LCJhSiJdXV0sWzQ2LFs1MyxbMywiYUoiLFswLCJodHRwOi8vIixbMTUsImFKIl1dXV1dXSxbMzYsWzIsWzE1LCJsIl0sIkMiLFs3LFsxNSwiYUoiXSx0cnVlXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RWxlbWVudEF0dHJpYnV0ZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldEV2ZW50RGF0YSJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLmdldEVsZW1lbnRJbm5lclRleHQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiXV0sWzUyLCJpIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbURhdGFMYXllckNhY2hlIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfbGVnYWN5VXJscyJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIl1dLFs1MiwibiIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsIm8iLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsInAiLFsicmVxdWlyZSIsImludGVybmFsLnRlc3RSZWdleCJdXSxbNTIsInEiLFs1MSwiIixbNywiYUoiXSxbMzYsWzIwLFsiaiIsWzE1LCJhSiJdXSwiYXJyYXkiXV1dXSxbNTIsInIiLFsiYyIsIl5odHRwcz86XFwvXFwvIiwiaSJdXSxbNTIsInMiLDM1XSxbNTIsInQiLCJlcSJdLFs1MiwidSIsImV2YyJdLFs1MiwidiIsWzMwLFsyLFsxNSwibyJdLCJnZXRJdGVtIixbNyxbMTUsInUiXV1dLFs4XV1dLFsyLFsxNSwibyJdLCJzZXRJdGVtIixbNyxbMTUsInUiXSxbMTUsInYiXV1dLFs1MiwidyIsWzMwLFsyLFsxNSwibyJdLCJnZXRJdGVtIixbNyxbMTUsInQiXV1dLFs3XV1dLFsyLFsxNSwibyJdLCJzZXRJdGVtIixbNyxbMTUsInQiXSxbMTUsInciXV1dLFs1MiwieCIsWzE3LFsxNSwiYSJdLCJkZWZhdWx0VmFsdWUiXV0sWzUyLCJ5IixbMTcsWzE1LCJhIl0sInZhclR5cGUiXV0sWzUyLCJ6IixbImkiLCJndG0iXV0sWzM4LFsxNSwieSJdLFs0NiwiVEFHX05BTUUiLCJURVhUIiwiVVJMIiwiQVRUUklCVVRFIl0sWzQ2LFs1LFs0NixbNTIsImFBIixbMTYsWzE1LCJ6Il0sImVsZW1lbnQiXV0sWzUyLCJhQiIsWzEsWzE1LCJhQSJdLFsiaCIsWzE1LCJhQSJdLCJ0YWdOYW1lIl1dXSxbMzYsWzMwLFsxNSwiYUIiXSxbMTUsIngiXV1dXV0sWzUsWzQ2LFszNixbMzAsWyJhQyIsWyJmIiwiZ3RtXFwudW5pcXVlRXZlbnRJZCJdXSxbMTUsIngiXV1dXV0sWzUsWzQ2LFszNixbImFFIixbMTUsIngiXSxbMTUsImEiXV1dXV0sWzUsWzQ2LFsyMixbMjAsWzE3LFsxNSwiYSJdLCJhdHRyaWJ1dGUiXSxbNDRdXSxbNDYsWzUzLFszNixbImFGIixbMTUsInkiXSxbMTUsIngiXV1dXV0sWzQ2LFs1MyxbNTIsImFKIixbMTYsWzE1LCJ6Il0sImVsZW1lbnQiXV0sWzUyLCJhSyIsWzEsWzE1LCJhSiJdLFszOSxbMjAsWzE3LFsxNSwiYSJdLCJhdHRyaWJ1dGUiXSwidmFsdWUiXSxbImUiLFsxNSwiYUoiXV0sWyJkIixbMTUsImFKIl0sWzE3LFsxNSwiYSJdLCJhdHRyaWJ1dGUiXV1dXV0sWzM2LFszMCxbMzAsWzE1LCJhSyJdLFsxNSwieCJdXSwiIl1dXV1dXV0sWzksWzQ2LFszNixbImFGIixbMTUsInkiXSxbMTUsIngiXV1dXV1dXV0KICxbNTAsIl9fYXdlYyIsWzQ2LCJhIl0sWzUwLCJqIixbNDYsInAiLCJxIiwiciIsInMiLCJ0Il0sWzQxLCJ1Il0sWzMsInUiLDBdLFs1MiwidiIsWzgsIm1vZGUiLFsxNSwidCJdXV0sWzUzLFs0MSwidyJdLFszLCJ3IiwwXSxbNjMsWzcsInciXSxbMjMsWzE1LCJ3Il0sWzE3LFsxNSwicCJdLCJsZW5ndGgiXV0sWzMzLFsxNSwidyJdLFszLCJ3IixbMCxbMTUsInciXSwxXV1dLFs0NixbNTMsWzUyLCJ4IixbMTYsWzE1LCJwIl0sWzE1LCJ3Il1dXSxbNTIsInkiLFsxNixbMTUsInEiXSxbMTUsIngiXV1dLFsyMixbMjEsWzE1LCJ5Il0sWzQ0XV0sWzQ2LFs1MyxbNDMsWzE1LCJyIl0sWzE1LCJ4Il0sWzE1LCJ5Il1dLFsyMixbMTUsImciXSxbNDYsWzUzLFsyMixbMjAsWyJjIixbMTUsInkiXV0sImFycmF5Il0sWzQ2LFs1MyxbNDMsWzE1LCJzIl0sWzE1LCJ4Il0sWzddXSxbNTMsWzQxLCJ6Il0sWzMsInoiLDBdLFs2MyxbNywieiJdLFsyMyxbMTUsInoiXSxbMTcsWzE1LCJ5Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJ6Il0sWzMsInoiLFswLFsxNSwieiJdLDFdXV0sWzQ2LFs1MyxbMixbMTYsWzE1LCJzIl0sWzE1LCJ4Il1dLCJwdXNoIixbNyxbMTUsInYiXV1dXV1dXV1dLFs0NixbNTMsWzQzLFsxNSwicyJdLFsxNSwieCJdLFsxNSwidiJdXV1dXV1dXSxbMzMsWzE1LCJ1Il0sWzMsInUiLFswLFsxNSwidSJdLDFdXV1dXV1dXV1dLFszNixbMTUsInUiXV1dLFs1MCwiayIsWzQ2LCJwIl0sWzUyLCJxIixbOCwibW9kZSIsImEiXV0sWzIyLFsxNyxbMTUsInAiXSwidGFnTmFtZSJdLFs0NixbNTMsWzQzLFsxNSwicSJdLCJsb2NhdGlvbiIsWzE3LFsxNSwicCJdLCJ0YWdOYW1lIl1dXV1dLFsyMixbMTcsWzE1LCJwIl0sInF1ZXJ5U2VsZWN0b3IiXSxbNDYsWzUzLFs0MyxbMTUsInEiXSwic2VsZWN0b3IiLFsxNyxbMTUsInAiXSwicXVlcnlTZWxlY3RvciJdXV1dXSxbMzYsWzE1LCJxIl1dXSxbNTAsImwiLFs0Nl0sWzUyLCJwIixbOF1dLFs1MiwicSIsWzhdXSxbNTIsInIiLFszMCxbMTYsWzE1LCJhIl0sImRhdGFTb3VyY2UiXSxbOF1dXSxbImoiLFsxNSwiaCJdLFsxNSwiciJdLFsxNSwicCJdLFsxNSwicSJdLCJjIl0sWzUyLCJzIixbMzAsWzE2LFsxNSwiciJdLCJhZGRyZXNzIl0sWzddXV0sWzUyLCJ0IixbMzksWzIwLFsiYyIsWzE1LCJzIl1dLCJhcnJheSJdLFsxNSwicyJdLFs3LFsxNSwicyJdXV1dLFs1MiwidSIsWzddXSxbNjYsInYiLFsxNSwidCJdLFs0NixbNTMsWzUyLCJ3IixbOF1dLFs1MiwieCIsWzhdXSxbNTIsInkiLFsiaiIsWzE1LCJpIl0sWzE1LCJ2Il0sWzE1LCJ3Il0sWzE1LCJ4Il0sImMiXV0sWzIyLFsxOCxbMTUsInkiXSwwXSxbNDYsWzUzLFsyLFsxNSwidSJdLCJwdXNoIixbNyxbMTUsInciXV1dLFsyMixbMTUsImciXSxbNDYsWzUzLFs0MyxbMTUsInciXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJ4Il1dXV1dXV1dXV1dLFsyMixbMTgsWzE3LFsxNSwidSJdLCJsZW5ndGgiXSwwXSxbNDYsWzUzLFs0MyxbMTUsInAiXSwiYWRkcmVzcyIsWzE1LCJ1Il1dXV1dLFs0MyxbMTUsInAiXSwiX3RhZ19tb2RlIiwiQ09ERSJdLFsyMixbMTUsImciXSxbNDYsWzUzLFs0MyxbMTUsInAiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJxIl1dXV1dLFszNixbMTUsInAiXV1dLFs1MCwibSIsWzQ2XSxbNTIsInAiLFs4XV0sWzUyLCJxIixbOF1dLFs0MSwiciJdLFszLCJyIixbNDRdXSxbMjIsWzEsWzE2LFsxNSwiYSJdLCJlbmFibGVFbGVtZW50QmxvY2tpbmciXSxbMTYsWzE1LCJhIl0sImRpc2FibGVkRWxlbWVudHMiXV0sWzQ2LFs1MyxbNTIsImFBIixbMTYsWzE1LCJhIl0sImRpc2FibGVkRWxlbWVudHMiXV0sWzMsInIiLFs3XV0sWzY1LCJhQiIsWzE1LCJhQSJdLFs0NixbNTMsWzIsWzE1LCJyIl0sInB1c2giLFs3LFsxNixbMTUsImFCIl0sImNvbHVtbjEiXV1dXV1dXV1dLFs1MiwicyIsWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXV0sWzUyLCJ0IixbMzksWzE1LCJzIl0sWzIxLFsxNyxbMTUsImEiXSwiYXV0b0VtYWlsRW5hYmxlZCJdLGZhbHNlXSx0cnVlXV0sWzUyLCJ1IixbMSxbMTUsInMiXSxbMjgsWzI4LFsxNyxbMTUsImEiXSwiYXV0b1Bob25lRW5hYmxlZCJdXV1dXSxbNTIsInYiLFsxLFsxNSwicyJdLFsyOCxbMjgsWzE3LFsxNSwiYSJdLCJhdXRvQWRkcmVzc0VuYWJsZWQiXV1dXV0sWzUyLCJ3IixbImQiLFsxNyxbMTUsImUiXSwiQlYiXV1dLFs1MiwieCIsWyJkIixbMTcsWzE1LCJlIl0sIkNJIl1dXSxbNDEsInkiXSxbMjIsWyJmIiwiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSIsImF1dG8iXSxbNDYsWzUzLFszLCJ5IixbImIiLFs4LCJleGNsdWRlRWxlbWVudFNlbGVjdG9ycyIsWzE1LCJyIl0sImZpZWxkRmlsdGVycyIsWzgsImVtYWlsIixbMTUsInQiXSwicGhvbmUiLFsxNSwidSJdLCJhZGRyZXNzIixbMTUsInYiXV0sImluY2x1ZGVTZWxlY3RvciIsWzE1LCJ3Il0sInJlYWRGcm9tRGF0YUxheWVyIixbMTUsIngiXV1dXV1dXSxbNTIsInoiLFsxLFsxNSwieSJdLFsxNixbMTUsInkiXSwiZWxlbWVudHMiXV1dLFsyMixbMSxbMTUsInoiXSxbMTgsWzE3LFsxNSwieiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbNTIsImFBIixbOF1dLFs1MiwiYUIiLFs4XV0sWzUzLFs0MSwiYUMiXSxbMywiYUMiLDBdLFs2MyxbNywiYUMiXSxbMjMsWzE1LCJhQyJdLFsxNyxbMTUsInoiXSwibGVuZ3RoIl1dLFszMyxbMTUsImFDIl0sWzMsImFDIixbMCxbMTUsImFDIl0sMV1dXSxbNDYsWzUzLFs1MiwiYUQiLFsxNixbMTUsInoiXSxbMTUsImFDIl1dXSxbMjIsWzEsWzEsWzE1LCJ0Il0sWzIwLFsxNixbMTUsImFEIl0sInR5cGUiXSwiZW1haWwiXV0sWzI4LFsxNixbMTUsInAiXSwiZW1haWwiXV1dLFs0NixbNTMsWzQzLFsxNSwicCJdLCJlbWFpbCIsWzE2LFsxNSwiYUQiXSwidXNlckRhdGEiXV0sWzQzLFsxNSwicSJdLCJlbWFpbCIsWyJrIixbMTUsImFEIl1dXV1dLFs0NixbMjIsWzEsWzEsWzE1LCJ1Il0sWzIwLFsxNixbMTUsImFEIl0sInR5cGUiXSwicGhvbmVfbnVtYmVyIl1dLFsyOCxbMTYsWzE1LCJwIl0sInBob25lX251bWJlciJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJwIl0sInBob25lX251bWJlciIsWzE2LFsxNSwiYUQiXSwidXNlckRhdGEiXV0sWzQzLFsxNSwicSJdLCJwaG9uZV9udW1iZXIiLFsiayIsWzE1LCJhRCJdXV1dXSxbNDYsWzIyLFsxLFsxLFsxNSwidiJdLFsyMCxbMTYsWzE1LCJhRCJdLCJ0eXBlIl0sImZpcnN0X25hbWUiXV0sWzI4LFsxNixbMTUsImFBIl0sImZpcnN0X25hbWUiXV1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiZmlyc3RfbmFtZSIsWzE2LFsxNSwiYUQiXSwidXNlckRhdGEiXV0sWzQzLFsxNSwiYUIiXSwiZmlyc3RfbmFtZSIsWyJrIixbMTUsImFEIl1dXV1dLFs0NixbMjIsWzEsWzEsWzE1LCJ2Il0sWzIwLFsxNixbMTUsImFEIl0sInR5cGUiXSwibGFzdF9uYW1lIl1dLFsyOCxbMTYsWzE1LCJhQSJdLCJsYXN0X25hbWUiXV1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwibGFzdF9uYW1lIixbMTYsWzE1LCJhRCJdLCJ1c2VyRGF0YSJdXSxbNDMsWzE1LCJhQiJdLCJsYXN0X25hbWUiLFsiayIsWzE1LCJhRCJdXV1dXSxbNDYsWzIyLFsxLFsxLFsxNSwidiJdLFsyMCxbMTYsWzE1LCJhRCJdLCJ0eXBlIl0sImNvdW50cnkiXV0sWzI4LFsxNixbMTUsImFBIl0sImNvdW50cnkiXV1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiY291bnRyeSIsWzE2LFsxNSwiYUQiXSwidXNlckRhdGEiXV0sWzQzLFsxNSwiYUIiXSwiY291bnRyeSIsWyJrIixbMTUsImFEIl1dXV1dLFs0NixbMjIsWzEsWzEsWzE1LCJ2Il0sWzIwLFsxNixbMTUsImFEIl0sInR5cGUiXSwicG9zdGFsX2NvZGUiXV0sWzI4LFsxNixbMTUsImFBIl0sInBvc3RhbF9jb2RlIl1dXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sInBvc3RhbF9jb2RlIixbMTYsWzE1LCJhRCJdLCJ1c2VyRGF0YSJdXSxbNDMsWzE1LCJhQiJdLCJwb3N0YWxfY29kZSIsWyJrIixbMTUsImFEIl1dXV1dXV1dXV1dXV1dXV1dXV1dLFsyMixbMTUsInYiXSxbNDYsWzUzLFs0MyxbMTUsInAiXSwiYWRkcmVzcyIsWzcsWzE1LCJhQSJdXV0sWzIyLFsxNSwiZyJdLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhQiJdXV1dXV1dXV1dXSxbNDMsWzE1LCJwIl0sIl90YWdfbW9kZSIsIkFVVE8iXSxbMjIsWzE1LCJnIl0sWzQ2LFs1MyxbNDMsWzE1LCJwIl0sIl90YWdfbWV0YWRhdGEiLFsxNSwicSJdXV1dXSxbMjIsWzEsWzEsWzE1LCJ4Il0sWzE1LCJ5Il1dLFsyLFsxNSwieSJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsImRhdGFMYXllclNlYXJjaFRpbWUiXV1dLFs0NixbNTMsWzQzLFsxNSwicCJdLCJfZGxzdCIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hUaW1lIl1dLFs0MyxbMTUsInAiXSwiX2Rsc2MiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoQ291bnQiXV1dXV0sWzM2LFsxNSwicCJdXV0sWzUwLCJuIixbNDZdLFs1MiwicCIsWzhdXSxbNTIsInEiLFs4XV0sWyJqIixbNywiZW1haWwiLCJwaG9uZV9udW1iZXIiXSxbMTUsImEiXSxbMTUsInAiXSxbMTUsInEiXSwibSJdLFs1MiwiciIsWzhdXSxbNTIsInMiLFs4XV0sWzUyLCJ0IixbImoiLFsxNSwiaSJdLFsxNSwiYSJdLFsxNSwiciJdLFsxNSwicyJdLCJtIl1dLFsyMixbMTgsWzE1LCJ0Il0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJwIl0sImFkZHJlc3MiLFs3LFsxNSwiciJdXV0sWzIyLFsxNSwiZyJdLFs0NixbNTMsWzQzLFsxNSwiciJdLCJfdGFnX21ldGFkYXRhIixbMTUsInMiXV1dXV1dXV0sWzQzLFsxNSwicCJdLCJfdGFnX21vZGUiLCJNQU5VQUwiXSxbMjIsWzE1LCJnIl0sWzQ2LFs1MyxbNDMsWzE1LCJwIl0sIl90YWdfbWV0YWRhdGEiLFsxNSwicSJdXV1dXSxbMzYsWzE1LCJwIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmRldGVjdFVzZXJQcm92aWRlZERhdGEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJxdWVyeVBlcm1pc3Npb24iXV0sWzUyLCJnIixbImQiLFsxNyxbMTUsImUiXSwiQVQiXV1dLFs1MiwiaCIsWzcsImVtYWlsIiwicGhvbmVfbnVtYmVyIiwic2hhMjU2X2VtYWlsX2FkZHJlc3MiLCJzaGEyNTZfcGhvbmVfbnVtYmVyIl1dLFs1MiwiaSIsWzcsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJzdHJlZXQiLCJzaGEyNTZfZmlyc3RfbmFtZSIsInNoYTI1Nl9sYXN0X25hbWUiLCJzaGEyNTZfc3RyZWV0IiwiY2l0eSIsInJlZ2lvbiIsImNvdW50cnkiLCJwb3N0YWxfY29kZSJdXSxbNTIsIm8iLFsxNixbMTUsImEiXSwibW9kZSJdXSxbMjIsWzIwLFsxNSwibyJdLCJDT0RFIl0sWzQ2LFs1MyxbMzYsWyJsIl1dXV0sWzQ2LFsyMixbMjAsWzE1LCJvIl0sIkFVVE8iXSxbNDYsWzUzLFszNixbIm0iXV1dXSxbNDYsWzUzLFszNixbIm4iXV1dXV1dXV0KICxbNTAsIl9fY2wiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25DbGljayJdXSxbImIiXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19lIixbNDYsImEiXSxbMzYsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFsicmVxdWlyZSIsImludGVybmFsLmdldEV2ZW50RGF0YSJdXSxbIiQwIiwiZXZlbnQiXV1dXQogLFs1MCwiX19mIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImNvcHlGcm9tRGF0YUxheWVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZ2V0UmVmZXJyZXJVcmwiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwicGFyc2VVcmwiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2xlZ2FjeVVybHMiXV0sWzUyLCJnIixbMzAsWyJiIiwiZ3RtLnJlZmVycmVyIiwxXSxbImMiXV1dLFsyMixbMjgsWzE1LCJnIl1dLFs0NixbMzYsWyJkIixbMTUsImciXV1dXV0sWzM4LFsxNyxbMTUsImEiXSwiY29tcG9uZW50Il0sWzQ2LCJQUk9UT0NPTCIsIkhPU1QiLCJQT1JUIiwiUEFUSCIsIlFVRVJZIiwiRlJBR01FTlQiLCJVUkwiXSxbNDYsWzUsWzQ2LFszNixbMixbMTUsImYiXSwiQiIsWzcsWzE1LCJnIl1dXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwiZiJdLCJDIixbNyxbMTUsImciXSxbMTcsWzE1LCJhIl0sInN0cmlwV3d3Il1dXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwiZiJdLCJEIixbNyxbMTUsImciXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJmIl0sIkUiLFs3LFsxNSwiZyJdLFsxNyxbMTUsImEiXSwiZGVmYXVsdFBhZ2VzIl1dXV1dXSxbNSxbNDYsWzIyLFsxNyxbMTUsImEiXSwicXVlcnlLZXkiXSxbNDYsWzUzLFszNixbMixbMTUsImYiXSwiSCIsWzcsWzE1LCJnIl0sWzE3LFsxNSwiYSJdLCJxdWVyeUtleSJdXV1dXV1dLFs1MiwiaCIsWyJlIixbMTUsImciXV1dLFszNixbMixbMTcsWzE1LCJoIl0sInNlYXJjaCJdLCJyZXBsYWNlIixbNywiPyIsIiJdXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwiZiJdLCJHIixbNyxbMTUsImciXV1dXV1dLFs1LFs0Nl1dLFs5LFs0NixbMzYsWzIsWzE1LCJmIl0sIkEiLFs3LFsiZCIsWzE1LCJnIl1dXV1dXV1dXV0KICxbNTAsIl9fZ2Fhd2UiLFs0NiwiYSJdLFs1MCwiciIsWzQ2LCJhRSJdLFsyLFsxNSwicSJdLCJwdXNoIixbNyxbMTUsImFFIl1dXV0sWzUwLCJ2IixbNDYsImFFIiwiYUYiLCJhRyJdLFs1MiwiYUgiLFs4XV0sWzUyLCJhSSIsWzUxLCIiLFs3LCJhTSIsImFOIl0sWzQzLFsxNSwiYUgiXSxbMTUsImFNIl0sWzMwLFsxNixbMTUsImFIIl0sWzE1LCJhTSJdXSxbMTUsImFOIl1dXV1dLFs1MiwiYUoiLFs1MSwiIixbNywiYU0iLCJhTiIsImFPIl0sWyJyIixbMTcsWzE1LCJrIl0sIkYiXV0sWzIyLFsxNSwiYU0iXSxbNDYsWzUzLFs0MyxbMTUsImFIIl0sIml0ZW1zIixbMzAsWzE2LFsxNSwiYUgiXSwiaXRlbXMiXSxbN11dXSxbNjUsImFQIixbMTUsImFNIl0sWzQ2LFs1MyxbNTIsImFRIixbOF1dLFs1NCwiYVIiLFsxNSwiYVAiXSxbNDYsWzUzLFs1MiwiYVMiLFsxNixbMTUsImFQIl0sWzE1LCJhUiJdXV0sWzIyLFsxLFsxNSwiYU8iXSxbMjAsWzE1LCJhUiJdLCJpZCJdXSxbNDYsWzUzLFs0MyxbMTUsImFRIl0sInByb21vdGlvbl9pZCIsWzE1LCJhUyJdXV1dLFs0NixbMjIsWzEsWzE1LCJhTyJdLFsyMCxbMTUsImFSIl0sIm5hbWUiXV0sWzQ2LFs1MyxbNDMsWzE1LCJhUSJdLCJwcm9tb3Rpb25fbmFtZSIsWzE1LCJhUyJdXV1dLFs0NixbNTMsWzQzLFsxNSwiYVEiXSxbMTUsImFSIl0sWzE1LCJhUyJdXV1dXV1dXV1dLFsyLFsxNixbMTUsImFIIl0sIml0ZW1zIl0sInB1c2giLFs3LFsxNSwiYVEiXV1dXV1dXV1dLFsyMixbMTUsImFOIl0sWzQ2LFs1MyxbNTUsImFQIixbMTUsImFOIl0sWzQ2LFs1MyxbMjIsWzIsWzE1LCJzIl0sImhhc093blByb3BlcnR5IixbNyxbMTUsImFQIl1dXSxbNDYsWzUzLFsiYUkiLFsxNixbMTUsInMiXSxbMTUsImFQIl1dLFsxNixbMTUsImFOIl0sWzE1LCJhUCJdXV1dXSxbNDYsWzUzLFsiYUkiLFsxNSwiYVAiXSxbMTYsWzE1LCJhTiJdLFsxNSwiYVAiXV1dXV1dXV1dXV1dXV0sWzQxLCJhSyJdLFsyMixbMjAsWzE3LFsxNSwiYUUiXSwiZ2V0RWNvbW1lcmNlRGF0YUZyb20iXSwiZGF0YUxheWVyIl0sWzQ2LFs1MyxbMywiYUsiLFsiYyIsImV2ZW50TW9kZWwiXV0sWzIyLFsyOCxbMTUsImFLIl1dLFs0NixbNTMsWzMsImFLIixbImIiLCJlY29tbWVyY2UiXV1dXV1dXSxbNDYsWzUzLFszLCJhSyIsWzE3LFsxNSwiYUUiXSwiZWNvbW1lcmNlTWFjcm9EYXRhIl1dLFsyMixbMSxbMSxbMjAsWyJkIixbMTUsImFLIl1dLCJvYmplY3QiXSxbMTYsWzE1LCJhSyJdLCJlY29tbWVyY2UiXV0sWzI4LFsxNixbMTUsImFLIl0sIml0ZW1zIl1dXSxbNDYsWzUzLFszLCJhSyIsWzE2LFsxNSwiYUsiXSwiZWNvbW1lcmNlIl1dXV1dXV1dLFsyMixbMjEsWyJkIixbMTUsImFLIl1dLCJvYmplY3QiXSxbNDYsWzM2XV1dLFs0MSwiYUwiXSxbMywiYUwiLGZhbHNlXSxbNTUsImFNIixbMTUsImFLIl0sWzQ2LFs1MyxbMjIsWzI4LFsxNSwiYUwiXV0sWzQ2LFs1MyxbInIiLFsxNyxbMTUsImsiXSwiRSJdXSxbMywiYUwiLHRydWVdXV1dLFsyMixbMjAsWzE1LCJhTSJdLCJjdXJyZW5jeUNvZGUiXSxbNDYsWzUzLFsiYUkiLCJjdXJyZW5jeSIsWzE2LFsxNSwiYUsiXSwiY3VycmVuY3lDb2RlIl1dXV0sWzQ2LFsyMixbMSxbMjAsWzE1LCJhTSJdLCJpbXByZXNzaW9ucyJdLFsyMCxbMTUsImFGIl0sInZpZXdfaXRlbV9saXN0Il1dLFs0NixbNTMsWyJhSiIsWzE2LFsxNSwiYUsiXSwiaW1wcmVzc2lvbnMiXSxbNDVdXV1dLFs0NixbMjIsWzEsWzIwLFsxNSwiYU0iXSwicHJvbW9DbGljayJdLFsyMCxbMTUsImFGIl0sInNlbGVjdF9wcm9tb3Rpb24iXV0sWzQ2LFs1MyxbImFKIixbMTYsWzE2LFsxNSwiYUsiXSwicHJvbW9DbGljayJdLCJwcm9tb3Rpb25zIl0sWzE2LFsxNixbMTUsImFLIl0sInByb21vQ2xpY2siXSwiYWN0aW9uRmllbGQiXSx0cnVlXV1dLFs0NixbMjIsWzEsWzIwLFsxNSwiYU0iXSwicHJvbW9WaWV3Il0sWzIwLFsxNSwiYUYiXSwidmlld19wcm9tb3Rpb24iXV0sWzQ2LFs1MyxbImFKIixbMTYsWzE2LFsxNSwiYUsiXSwicHJvbW9WaWV3Il0sInByb21vdGlvbnMiXSxbMTYsWzE2LFsxNSwiYUsiXSwicHJvbW9WaWV3Il0sImFjdGlvbkZpZWxkIl0sdHJ1ZV1dXSxbNDYsWzIyLFsyLFsxNSwidCJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsWzE1LCJhTSJdXV0sWzQ2LFs1MyxbMjIsWzIwLFsxNSwiYUYiXSxbMTYsWzE1LCJ0Il0sWzE1LCJhTSJdXV0sWzQ2LFs1MyxbImFKIixbMTYsWzE2LFsxNSwiYUsiXSxbMTUsImFNIl1dLCJwcm9kdWN0cyJdLFsxNixbMTYsWzE1LCJhSyJdLFsxNSwiYU0iXV0sImFjdGlvbkZpZWxkIl1dXV0sWzQ2LFs1M11dXV1dLFs0NixbNTMsWzQzLFsxNSwiYUgiXSxbMTUsImFNIl0sWzE2LFsxNSwiYUsiXSxbMTUsImFNIl1dXV1dXV1dXV1dXV1dXV1dLFsyLFsxNSwicCJdLCJBIixbNyxbMTUsImFIIl0sWzE1LCJhRyJdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldEV2ZW50RGF0YSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJsb2dUb0NvbnNvbGUiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwibWFrZVRhYmxlTWFwIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsImkiLFsicmVxdWlyZSIsIm1ha2VOdW1iZXIiXV0sWzUyLCJqIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsIm8iLFsxNSwiX19tb2R1bGVfZ3RhZyJdXSxbNTIsInAiLFsxNSwiX19tb2R1bGVfb2JqZWN0Il1dLFs1MiwicSIsWzddXSxbNTIsInMiLFs4LCJpZCIsInRyYW5zYWN0aW9uX2lkIiwicmV2ZW51ZSIsInZhbHVlIiwibGlzdCIsIml0ZW1fbGlzdF9uYW1lIl1dLFs1MiwidCIsWzgsImNsaWNrIiwic2VsZWN0X2l0ZW0iLCJkZXRhaWwiLCJ2aWV3X2l0ZW0iLCJhZGQiLCJhZGRfdG9fY2FydCIsInJlbW92ZSIsInJlbW92ZV9mcm9tX2NhcnQiLCJjaGVja291dCIsImJlZ2luX2NoZWNrb3V0IiwiY2hlY2tvdXRfb3B0aW9uIiwiY2hlY2tvdXRfb3B0aW9uIiwicHVyY2hhc2UiLCJwdXJjaGFzZSIsInJlZnVuZCIsInJlZnVuZCJdXSxbNTIsInUiLFs4LCJhZGRfcGF5bWVudF9pbmZvIiwxLCJhZGRfc2hpcHBpbmdfaW5mbyIsMSwiYWRkX3RvX2NhcnQiLDEsInJlbW92ZV9mcm9tX2NhcnQiLDEsInZpZXdfY2FydCIsMSwiYmVnaW5fY2hlY2tvdXQiLDEsInNlbGVjdF9pdGVtIiwxLCJ2aWV3X2l0ZW1fbGlzdCIsMSwic2VsZWN0X3Byb21vdGlvbiIsMSwidmlld19wcm9tb3Rpb24iLDEsInB1cmNoYXNlIiwxLCJyZWZ1bmQiLDEsInZpZXdfaXRlbSIsMSwiYWRkX3RvX3dpc2hsaXN0IiwxXV0sWzQxLCJ3Il0sWzIyLFsxNyxbMTUsImEiXSwibWlncmF0ZWRUb1YyIl0sWzQ2LFs1MyxbMywidyIsWyJmIixbMTcsWzE1LCJhIl0sIm1lYXN1cmVtZW50SWRPdmVycmlkZSJdXV1dXSxbNDYsWzUzLFszLCJ3IixbImYiLFszMCxbMTcsWzE1LCJhIl0sIm1lYXN1cmVtZW50SWRPdmVycmlkZSJdLFsxNyxbMTUsImEiXSwibWVhc3VyZW1lbnRJZCJdXV1dXV1dLFsyMixbMjEsWzIsWzE1LCJ3Il0sImluZGV4T2YiLFs3LCJHLSJdXSwwXSxbNDYsWzUzLFsiZSIsWzAsIkludmFsaWQgTWVhc3VyZW1lbnQgSUQgZm9yIHRoZSBHQTQgZXZlbnQgdGFnOiAiLFsxNSwidyJdXV0sWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFs1MiwieCIsWyJmIixbMTcsWzE1LCJhIl0sImV2ZW50TmFtZSJdXV0sWzUyLCJ5IixbOF1dLFsyMixbMTcsWzE1LCJhIl0sInNlbmRFY29tbWVyY2VEYXRhIl0sWzQ2LFs1MyxbMjIsWzEsWzI4LFsxNixbMTUsInUiXSxbMTUsIngiXV1dLFsyMSxbMTUsIngiXSwiY2hlY2tvdXRfb3B0aW9uIl1dLFs0NixbNTMsWyJlIixbMCxbMCwiSW52YWxpZCBFY29tbWVyY2UgZXZlbnQgbmFtZSBcIiIsWzE1LCJ4Il1dLCJcIiJdXV1dLFs0NixbNTMsWyJ2IixbMTUsImEiXSxbMTUsIngiXSxbMTUsInkiXV1dXV1dXV0sWzUyLCJ6IixbMTcsWzE1LCJhIl0sImV2ZW50U2V0dGluZ3NWYXJpYWJsZSJdXSxbMjIsWzE1LCJ6Il0sWzQ2LFs1MyxbNTUsImFFIixbMTUsInoiXSxbNDYsWzUzLFsyMixbMixbMTUsInoiXSwiaGFzT3duUHJvcGVydHkiLFs3LFsxNSwiYUUiXV1dLFs0NixbNTMsWzQzLFsxNSwieSJdLFsxNSwiYUUiXSxbMTYsWzE1LCJ6Il0sWzE1LCJhRSJdXV1dXV1dXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwiZXZlbnRTZXR0aW5nc1RhYmxlIl0sWzQ2LFs1MyxbNTIsImFFIixbMzAsWyJnIixbMzAsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzVGFibGUiXSxbN11dLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSJdLFs4XV1dLFs1NSwiYUYiLFsxNSwiYUUiXSxbNDYsWzUzLFs0MyxbMTUsInkiXSxbMTUsImFGIl0sWzE2LFsxNSwiYUUiXSxbMTUsImFGIl1dXV1dXV1dXSxbNTIsImFBIixbMzAsWyJnIixbMzAsWzE3LFsxNSwiYSJdLCJldmVudFBhcmFtZXRlcnMiXSxbN11dLCJuYW1lIiwidmFsdWUiXSxbOF1dXSxbNTUsImFFIixbMTUsImFBIl0sWzQ2LFs1MyxbNDMsWzE1LCJ5Il0sWzE1LCJhRSJdLFsxNixbMTUsImFBIl0sWzE1LCJhRSJdXV1dXV0sWzUyLCJhQiIsWzE3LFsxNSwiYSJdLCJ1c2VyRGF0YVZhcmlhYmxlIl1dLFsyMixbMTUsImFCIl0sWzQ2LFs1MyxbNDMsWzE1LCJ5Il0sInVzZXJfZGF0YSIsWzE1LCJhQiJdXV1dXSxbMjIsWzMwLFsyLFsxNSwieSJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsInVzZXJfcHJvcGVydGllcyJdXSxbMTcsWzE1LCJhIl0sInVzZXJQcm9wZXJ0aWVzIl1dLFs0NixbNTMsWzUyLCJhRSIsWzMwLFsxNixbMTUsInkiXSwidXNlcl9wcm9wZXJ0aWVzIl0sWzhdXV0sWzIsWzE1LCJwIl0sIkEiLFs3LFszMCxbImciLFszMCxbMTcsWzE1LCJhIl0sInVzZXJQcm9wZXJ0aWVzIl0sWzddXSwibmFtZSIsInZhbHVlIl0sWzhdXSxbMTUsImFFIl1dXSxbNDMsWzE1LCJ5Il0sInVzZXJfcHJvcGVydGllcyIsWzE1LCJhRSJdXV1dXSxbNTIsImFDIixbOCwibm9HdG1FdmVudCIsdHJ1ZV1dLFsyMixbMTgsWzE3LFsxNSwicSJdLCJsZW5ndGgiXSwwXSxbNDYsWzUzLFs0MyxbMTUsImFDIl0sImV2ZW50TWV0YWRhdGEiLFs4LCJldmVudF91c2FnZSIsWzE1LCJxIl1dXV1dXSxbNTIsImFEIixbMzAsWzE3LFsxNSwiYUMiXSwiZXZlbnRNZXRhZGF0YSJdLFs4XV1dLFsyLFsxNSwibyJdLCJIIixbNyxbMTUsImFEIl0sWzE1LCJ3Il1dXSxbMjIsWzE4LFsxNyxbMixbMTUsImoiXSwia2V5cyIsWzcsWzE1LCJhRCJdXV0sImxlbmd0aCJdLDBdLFs0NixbNTMsWzQzLFsxNSwiYUMiXSwiZXZlbnRNZXRhZGF0YSIsWzE1LCJhRCJdXV1dXSxbMixbMTUsIm8iXSwiRSIsWzcsWzE1LCJ5Il0sWzE3LFsxNSwibyJdLCJCIl0sWzUxLCIiLFs3LCJhRSJdLFszNixbMzksWzIwLCJmYWxzZSIsWzIsWyJmIixbMTUsImFFIl1dLCJ0b0xvd2VyQ2FzZSIsWzddXV0sZmFsc2UsWzI4LFsyOCxbMTUsImFFIl1dXV1dXV1dLFsyLFsxNSwibyJdLCJFIixbNyxbMTUsInkiXSxbMTcsWzE1LCJvIl0sIkQiXSxbNTEsIiIsWzcsImFFIl0sWzM2LFsiaSIsWzE1LCJhRSJdXV1dXV0sWyJoIixbMTUsInciXSxbMTUsIngiXSxbMTUsInkiXSxbMTUsImFDIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2dvb2d0YWciLFs0NiwiYSJdLFs1MCwibSIsWzQ2LCJ2IiwidyJdLFs2NiwieCIsWzIsWzE1LCJiIl0sImtleXMiLFs3LFsxNSwidyJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sWzE1LCJ4Il0sWzE2LFsxNSwidyJdLFsxNSwieCJdXV1dXV1dLFs1MCwibiIsWzQ2XSxbMzYsWzcsWzE3LFsxNSwiZiJdLCJJRCJdLFsxNyxbMTUsImYiXSwiSVciXV1dXSxbNTAsIm8iLFs0NiwidiJdLFs1MiwidyIsWyJuIl1dLFs2NSwieCIsWzE1LCJ3Il0sWzQ2LFs1MyxbNTIsInkiLFsxNixbMTUsInYiXSxbMTUsIngiXV1dLFsyMixbMTUsInkiXSxbNDYsWzM2LFsxNSwieSJdXV1dXV1dLFszNixbNDRdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJjcmVhdGVBcmd1bWVudHNRdWV1ZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZyJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmd0YWdDb25maWciXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwubG9hZEdvb2dsZVRhZyJdXSxbNTIsImkiLFsicmVxdWlyZSIsImxvZ1RvQ29uc29sZSJdXSxbNTIsImoiLFsicmVxdWlyZSIsIm1ha2VOdW1iZXIiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwibWFrZVRhYmxlTWFwIl1dLFs1MiwicCIsWzMwLFsxNyxbMTUsImEiXSwidGFnSWQiXSwiIl1dLFsyMixbMzAsWzIxLFsiZyIsWzE1LCJwIl1dLCJzdHJpbmciXSxbMjQsWzIsWzE1LCJwIl0sImluZGV4T2YiLFs3LCItIl1dLDBdXSxbNDYsWzUzLFsiaSIsWzAsIkludmFsaWQgTWVhc3VyZW1lbnQgSUQgZm9yIHRoZSBHQTQgQ29uZmlndXJhdGlvbiB0YWc6ICIsWzE1LCJwIl1dXSxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzUyLCJxIixbMzAsWzE3LFsxNSwiYSJdLCJjb25maWdTZXR0aW5nc1ZhcmlhYmxlIl0sWzhdXV0sWzUyLCJyIixbMzAsWyJsIixbMzAsWzE3LFsxNSwiYSJdLCJjb25maWdTZXR0aW5nc1RhYmxlIl0sWzddXSwicGFyYW1ldGVyIiwicGFyYW1ldGVyVmFsdWUiXSxbOF1dXSxbIm0iLFsxNSwicSJdLFsxNSwiciJdXSxbNTIsInMiLFszMCxbMTcsWzE1LCJhIl0sImV2ZW50U2V0dGluZ3NWYXJpYWJsZSJdLFs4XV1dLFs1MiwidCIsWzMwLFsibCIsWzMwLFsxNyxbMTUsImEiXSwiZXZlbnRTZXR0aW5nc1RhYmxlIl0sWzddXSwicGFyYW1ldGVyIiwicGFyYW1ldGVyVmFsdWUiXSxbOF1dXSxbIm0iLFsxNSwicyJdLFsxNSwidCJdXSxbNTIsInUiLFsxNSwicSJdXSxbIm0iLFsxNSwidSJdLFsxNSwicyJdXSxbMjIsWzMwLFsyLFsxNSwidSJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsWzE3LFsxNSwiZiJdLCJKUyJdXV0sWzE3LFsxNSwiYSJdLCJ1c2VyUHJvcGVydGllcyJdXSxbNDYsWzUzLFs1MiwidiIsWzMwLFsxNixbMTUsInUiXSxbMTcsWzE1LCJmIl0sIkpTIl1dLFs4XV1dLFsibSIsWzE1LCJ2Il0sWzMwLFsibCIsWzMwLFsxNyxbMTUsImEiXSwidXNlclByb3BlcnRpZXMiXSxbN11dLCJuYW1lIiwidmFsdWUiXSxbOF1dXSxbNDMsWzE1LCJ1Il0sWzE3LFsxNSwiZiJdLCJKUyJdLFsxNSwidiJdXV1dXSxbMixbMTUsImQiXSwiRSIsWzcsWzE1LCJ1Il0sWzE3LFsxNSwiZCJdLCJCIl0sWzUxLCIiLFs3LCJ2Il0sWzM2LFszOSxbMjAsImZhbHNlIixbMixbImsiLFsxNSwidiJdXSwidG9Mb3dlckNhc2UiLFs3XV1dLGZhbHNlLFsyOCxbMjgsWzE1LCJ2Il1dXV1dXV1dLFsyLFsxNSwiZCJdLCJFIixbNyxbMTUsInUiXSxbMTcsWzE1LCJkIl0sIkQiXSxbNTEsIiIsWzcsInYiXSxbMzYsWyJqIixbMTUsInYiXV1dXV1dLFsiaCIsWzE1LCJwIl0sWzgsImZpcnN0UGFydHlVcmwiLFsibyIsWzE1LCJ1Il1dXV0sWyJlIixbMTUsInAiXSxbMTUsInUiXSxbOCwibm9UYXJnZXRHcm91cCIsdHJ1ZV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2h0bWwiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaW5qZWN0SHRtbCJdXSxbImIiLFsxNyxbMTUsImEiXSwiaHRtbCJdLFsxNyxbMTUsImEiXSwiZ3RtT25TdWNjZXNzIl0sWzE3LFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiXSxbMTcsWzE1LCJhIl0sInVzZUlmcmFtZSJdLFsxNyxbMTUsImEiXSwic3VwcG9ydERvY3VtZW50V3JpdGUiXV1dCiAsWzUwLCJfX3UiLFs0NiwiYSJdLFs1MCwiayIsWzQ2LCJsIiwibSJdLFs1MiwibiIsWzE3LFsxNSwibSJdLCJtdWx0aVF1ZXJ5S2V5cyJdXSxbNTIsIm8iLFszMCxbMTcsWzE1LCJtIl0sInF1ZXJ5S2V5Il0sIiJdXSxbNTIsInAiLFsxNyxbMTUsIm0iXSwiaWdub3JlRW1wdHlRdWVyeVBhcmFtIl1dLFsyMixbMjAsWzE1LCJvIl0sIiJdLFs0NixbNTMsWzUyLCJyIixbMixbMTcsWyJpIixbMTUsImwiXV0sInNlYXJjaCJdLCJyZXBsYWNlIixbNywiPyIsIiJdXV0sWzM2LFszOSxbMSxbMjgsWzE1LCJyIl1dLFsxNSwicCJdXSxbNDRdLFsxNSwiciJdXV1dXV0sWzQxLCJxIl0sWzIyLFsxNSwibiJdLFs0NixbNTMsWzIyLFsyMCxbImUiLFsxNSwibyJdXSwiYXJyYXkiXSxbNDYsWzUzLFszLCJxIixbMTUsIm8iXV1dXSxbNDYsWzUzLFs1MiwiciIsWyJjIiwiXFxzKyIsImciXV0sWzMsInEiLFsyLFsyLFsiZiIsWzE1LCJvIl1dLCJyZXBsYWNlIixbNyxbMTUsInIiXSwiIl1dLCJzcGxpdCIsWzcsIiwiXV1dXV1dXV0sWzQ2LFs1MyxbMywicSIsWzcsWyJmIixbMTUsIm8iXV1dXV1dXSxbNjUsInIiLFsxNSwicSJdLFs0NixbNTMsWzUyLCJzIixbMixbMTUsImgiXSwiSCIsWzcsWzE1LCJsIl0sWzE1LCJyIl1dXV0sWzIyLFsyOSxbMTUsInMiXSxbNDRdXSxbNDYsWzUzLFsyMixbMSxbMTUsInAiXSxbMjAsWzE1LCJzIl0sIiJdXSxbNDYsWzUzLFs2XV1dXSxbMzYsWzE1LCJzIl1dXV1dXV1dLFszNixbNDRdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJjb3B5RnJvbURhdGFMYXllciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0VXJsIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJnIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfbGVnYWN5VXJscyJdXSxbNTIsImkiLFsicmVxdWlyZSIsImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIl1dLFs0MSwiaiJdLFsyMixbMTcsWzE1LCJhIl0sImN1c3RvbVVybFNvdXJjZSJdLFs0NixbNTMsWzMsImoiLFsxNyxbMTUsImEiXSwiY3VzdG9tVXJsU291cmNlIl1dXV0sWzQ2LFs1MyxbMywiaiIsWyJiIiwiZ3RtLnVybCIsMV1dXV1dLFszLCJqIixbMzAsWzE1LCJqIl0sWyJkIl1dXSxbMzgsWzE3LFsxNSwiYSJdLCJjb21wb25lbnQiXSxbNDYsIlBST1RPQ09MIiwiSE9TVCIsIlBPUlQiLCJQQVRIIiwiRVhURU5TSU9OIiwiUVVFUlkiLCJGUkFHTUVOVCIsIlVSTCJdLFs0NixbNSxbNDYsWzM2LFsyLFsxNSwiaCJdLCJCIixbNyxbMTUsImoiXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJoIl0sIkMiLFs3LFsxNSwiaiJdLFsxNyxbMTUsImEiXSwic3RyaXBXd3ciXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJoIl0sIkQiLFs3LFsxNSwiaiJdXV1dXV0sWzUsWzQ2LFszNixbMixbMTUsImgiXSwiRSIsWzcsWzE1LCJqIl0sWzE3LFsxNSwiYSJdLCJkZWZhdWx0UGFnZXMiXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJoIl0sIkYiLFs3LFsxNSwiaiJdXV1dXV0sWzUsWzQ2LFszNixbImsiLFsxNSwiaiJdLFsxNSwiYSJdXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwiaCJdLCJHIixbNyxbMTUsImoiXV1dXV1dLFs1LFs0Nl1dLFs5LFs0NixbMzYsWzIsWzE1LCJoIl0sIkEiLFs3LFsiZiIsWzE1LCJqIl1dXV1dXV1dXV0KICxbNTAsIl9fdiIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJjb3B5RnJvbURhdGFMYXllciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImUiLFsxNyxbMTUsImEiXSwibmFtZSJdXSxbMjIsWzMwLFsyOCxbMTUsImUiXV0sWzIxLFsiZCIsWzE1LCJlIl1dLCJzdHJpbmciXV0sWzQ2LFszNixmYWxzZV1dXSxbNTIsImYiLFsyLFsxNSwiZSJdLCJyZXBsYWNlIixbNyxbImMiLCJcXFxcLiIsImciXSwiLiJdXV0sWzUyLCJnIixbImIiLFsxNSwiZiJdLFszMCxbMTcsWzE1LCJhIl0sImRhdGFMYXllclZlcnNpb24iXSwxXV1dLFszNixbMzksWzIxLFsxNSwiZyJdLFs0NF1dLFsxNSwiZyJdLFsxNyxbMTUsImEiXSwiZGVmYXVsdFZhbHVlIl1dXV0KICxbNTIsIl9fbW9kdWxlX2d0YWdTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImMiLCJhZF9zdG9yYWdlIl0sWzUyLCJkIiwiYWRfdXNlcl9kYXRhIl0sWzUyLCJlIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJmIiwiYXBwX3JlbW92ZSJdLFs1MiwiZyIsImFwcF9zdG9yZV9yZWZ1bmQiXSxbNTIsImgiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NhbmNlbCJdLFs1MiwiaSIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY29udmVydCJdLFs1MiwiaiIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fcmVuZXciXSxbNTIsImsiLCJjb252ZXJzaW9uIl0sWzUyLCJsIiwicHVyY2hhc2UiXSxbNTIsIm0iLCJmaXJzdF9vcGVuIl0sWzUyLCJuIiwiZmlyc3RfdmlzaXQiXSxbNTIsIm8iLCJndGFnLmNvbmZpZyJdLFs1MiwicCIsImluX2FwcF9wdXJjaGFzZSJdLFs1MiwicSIsInBhZ2VfdmlldyJdLFs1MiwiciIsInNlc3Npb25fc3RhcnQiXSxbNTIsInMiLCJ1c2VyX2VuZ2FnZW1lbnQiXSxbNTIsInQiLCJhZHNfZGF0YV9yZWRhY3Rpb24iXSxbNTIsInUiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyJdLFs1MiwidiIsImFsbG93X2N1c3RvbV9zY3JpcHRzIl0sWzUyLCJ3IiwiYWxsb3dfZW5oYW5jZWRfY29udmVyc2lvbnMiXSxbNTIsIngiLCJhbGxvd19nb29nbGVfc2lnbmFscyJdLFs1MiwieSIsImF1aWQiXSxbNTIsInoiLCJhd19yZW1hcmtldGluZ19vbmx5Il0sWzUyLCJhQSIsImRpc2NvdW50Il0sWzUyLCJhQiIsImF3X2ZlZWRfY291bnRyeSJdLFs1MiwiYUMiLCJhd19mZWVkX2xhbmd1YWdlIl0sWzUyLCJhRCIsIml0ZW1zIl0sWzUyLCJhRSIsImF3X21lcmNoYW50X2lkIl0sWzUyLCJhRiIsImF3X2Jhc2tldF90eXBlIl0sWzUyLCJhRyIsImNsaWVudF9pZCJdLFs1MiwiYUgiLCJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiXSxbNTIsImFJIiwiY29udmVyc2lvbl9pZCJdLFs1MiwiYUoiLCJjb252ZXJzaW9uX2xpbmtlciJdLFs1MiwiYUsiLCJjb252ZXJzaW9uX2FwaSJdLFs1MiwiYUwiLCJjb29raWVfZGVwcmVjYXRpb24iXSxbNTIsImFNIiwiY29va2llX2V4cGlyZXMiXSxbNTIsImFOIiwiY29va2llX3ByZWZpeCJdLFs1MiwiYU8iLCJjb29raWVfdXBkYXRlIl0sWzUyLCJhUCIsImNvdW50cnkiXSxbNTIsImFRIiwiY3VycmVuY3kiXSxbNTIsImFSIiwiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiXSxbNTIsImFTIiwiY3VzdG9tZXJfdHlwZSJdLFs1MiwiYVQiLCJkZWJ1Z19tb2RlIl0sWzUyLCJhVSIsInNoaXBwaW5nIl0sWzUyLCJhViIsImVuZ2FnZW1lbnRfdGltZV9tc2VjIl0sWzUyLCJhVyIsImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIl0sWzUyLCJhWCIsImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciXSxbNTIsImFZIiwiZXZlbnRfaWQiXSxbNTIsImFaIiwiZXZlbnQiXSxbNTIsImJBIiwiXyZhZSJdLFs1MiwiYkIiLCJldmVudF90aW1lb3V0Il0sWzUyLCJiQyIsImV4dF9jbGllbnRfaWQiXSxbNTIsImJEIiwiZmlyc3RfcGFydHlfY29sbGVjdGlvbiJdLFs1MiwiYkUiLCJtYXRjaF9pZCJdLFs1MiwiYkYiLCJnZHByX2FwcGxpZXMiXSxbNTIsImJHIiwiX2d0X21ldGFkYXRhIl0sWzUyLCJiSCIsImdvb2dsZV9hbmFseXNpc19wYXJhbXMiXSxbNTIsImJJIiwiX2dvb2dsZV9uZyJdLFs1MiwiYkoiLCJfb25vIl0sWzUyLCJiSyIsImdwcF9zaWQiXSxbNTIsImJMIiwiZ3BwX3N0cmluZyJdLFs1MiwiYk0iLCJnc2FfZXhwZXJpbWVudF9pZCJdLFs1MiwiYk4iLCJndGFnX2V2ZW50X2ZlYXR1cmVfdXNhZ2UiXSxbNTIsImJPIiwiaWZyYW1lX3N0YXRlIl0sWzUyLCJiUCIsImlnbm9yZV9yZWZlcnJlciJdLFs1MiwiYlEiLCJpc19wYXNzdGhyb3VnaCJdLFs1MiwiYlIiLCJsYW5ndWFnZSJdLFs1MiwiYlMiLCJtZXJjaGFudF9mZWVkX2xhYmVsIl0sWzUyLCJiVCIsIm1lcmNoYW50X2ZlZWRfbGFuZ3VhZ2UiXSxbNTIsImJVIiwibWVyY2hhbnRfaWQiXSxbNTIsImJWIiwibmV3X2N1c3RvbWVyIl0sWzUyLCJiVyIsInBhZ2VfaG9zdG5hbWUiXSxbNTIsImJYIiwicGFnZV9wYXRoIl0sWzUyLCJiWSIsInBhZ2VfcmVmZXJyZXIiXSxbNTIsImJaIiwicGFnZV90aXRsZSJdLFs1MiwiY0EiLCJfcGxhdGludW1fcmVxdWVzdF9zdGF0dXMiXSxbNTIsImNCIiwicXVhbnRpdHkiXSxbNTIsImNDIiwicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciXSxbNTIsImNEIiwic2NyZWVuX3Jlc29sdXRpb24iXSxbNTIsImNFIiwic2VuZF9wYWdlX3ZpZXciXSxbNTIsImNGIiwic2VydmVyX2NvbnRhaW5lcl8zcF9lbnJpY2htZW50Il0sWzUyLCJjRyIsInNlcnZlcl9jb250YWluZXJfdXJsIl0sWzUyLCJjSCIsInNlc3Npb25fZHVyYXRpb24iXSxbNTIsImNJIiwic2Vzc2lvbl9lbmdhZ2VkX3RpbWUiXSxbNTIsImNKIiwic2Vzc2lvbl9pZCJdLFs1MiwiY0siLCJfc2hhcmVkX3VzZXJfaWQiXSxbNTIsImNMIiwiZGVsaXZlcnlfcG9zdGFsX2NvZGUiXSxbNTIsImNNIiwidGVzdG9ubHkiXSxbNTIsImNOIiwidG9wbW9zdF91cmwiXSxbNTIsImNPIiwidHJhbnNhY3Rpb25faWQiXSxbNTIsImNQIiwidHJhbnNhY3Rpb25faWRfc291cmNlIl0sWzUyLCJjUSIsInRyYW5zcG9ydF91cmwiXSxbNTIsImNSIiwidXBkYXRlIl0sWzUyLCJjUyIsIl91c2VyX2FnZW50X2FyY2hpdGVjdHVyZSJdLFs1MiwiY1QiLCJfdXNlcl9hZ2VudF9iaXRuZXNzIl0sWzUyLCJjVSIsIl91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0Il0sWzUyLCJjViIsIl91c2VyX2FnZW50X21vYmlsZSJdLFs1MiwiY1ciLCJfdXNlcl9hZ2VudF9tb2RlbCJdLFs1MiwiY1giLCJfdXNlcl9hZ2VudF9wbGF0Zm9ybSJdLFs1MiwiY1kiLCJfdXNlcl9hZ2VudF9wbGF0Zm9ybV92ZXJzaW9uIl0sWzUyLCJjWiIsIl91c2VyX2FnZW50X3dvdzY0Il0sWzUyLCJkQSIsInVzZXJfZGF0YSJdLFs1MiwiZEIiLCJ1c2VyX2RhdGFfYXV0b19sYXRlbmN5Il0sWzUyLCJkQyIsInVzZXJfZGF0YV9hdXRvX21ldGEiXSxbNTIsImREIiwidXNlcl9kYXRhX2F1dG9fbXVsdGkiXSxbNTIsImRFIiwidXNlcl9kYXRhX2F1dG9fc2VsZWN0b3JzIl0sWzUyLCJkRiIsInVzZXJfZGF0YV9hdXRvX3N0YXR1cyJdLFs1MiwiZEciLCJ1c2VyX2RhdGFfbW9kZSJdLFs1MiwiZEgiLCJ1c2VyX2lkIl0sWzUyLCJkSSIsInVzZXJfcHJvcGVydGllcyJdLFs1MiwiZEoiLCJ1c19wcml2YWN5X3N0cmluZyJdLFs1MiwiZEsiLCJ2YWx1ZSJdLFs1MiwiZEwiLCJfZnBtX3BhcmFtZXRlcnMiXSxbNTIsImRNIiwiX2hvc3RfbmFtZSJdLFs1MiwiZE4iLCJfaW5fcGFnZV9jb21tYW5kIl0sWzUyLCJkTyIsIl9tZWFzdXJlbWVudF90eXBlIl0sWzUyLCJkUCIsIm5vbl9wZXJzb25hbGl6ZWRfYWRzIl0sWzUyLCJkUSIsImNvbnZlcnNpb25fbGFiZWwiXSxbNTIsImRSIiwicGFnZV9sb2NhdGlvbiJdLFs1MiwiZFMiLCJfZXh0cmFjdGVkX2RhdGEiXSxbNTIsImRUIiwiZ2xvYmFsX2RldmVsb3Blcl9pZF9zdHJpbmciXSxbNTIsImRVIiwidGNfcHJpdmFjeV9zdHJpbmciXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkYiLFsxNSwiZSJdLCJJIixbMTUsImYiXSwiSiIsWzE1LCJnIl0sIksiLFsxNSwiaCJdLCJMIixbMTUsImkiXSwiTSIsWzE1LCJqIl0sIk8iLFsxNSwiayJdLCJBQSIsWzE1LCJsIl0sIkFGIixbMTUsIm0iXSwiQUciLFsxNSwibiJdLCJBSCIsWzE1LCJvIl0sIkFKIixbMTUsInAiXSwiQUsiLFsxNSwicSJdLCJBTSIsWzE1LCJyIl0sIkFRIixbMTUsInMiXSwiQkMiLFsxNSwidCJdLCJCSiIsWzE1LCJ1Il0sIkJLIixbMTUsInYiXSwiQk0iLFsxNSwidyJdLCJCTiIsWzE1LCJ4Il0sIkJUIixbMTUsInkiXSwiQlgiLFsxNSwieiJdLCJCWSIsWzE1LCJhQSJdLCJCWiIsWzE1LCJhQiJdLCJDQSIsWzE1LCJhQyJdLCJDQiIsWzE1LCJhRCJdLCJDQyIsWzE1LCJhRSJdLCJDRCIsWzE1LCJhRiJdLCJDTCIsWzE1LCJhRyJdLCJDUSIsWzE1LCJhSCJdLCJDUiIsWzE1LCJhSSJdLCJLRyIsWzE1LCJkUSJdLCJDUyIsWzE1LCJhSiJdLCJDVSIsWzE1LCJhSyJdLCJDVyIsWzE1LCJhTCJdLCJDWSIsWzE1LCJhTSJdLCJEQyIsWzE1LCJhTiJdLCJERCIsWzE1LCJhTyJdLCJERSIsWzE1LCJhUCJdLCJERiIsWzE1LCJhUSJdLCJERyIsWzE1LCJhUiJdLCJESCIsWzE1LCJhUyJdLCJETiIsWzE1LCJhVCJdLCJFQSIsWzE1LCJhVSJdLCJFQyIsWzE1LCJhViJdLCJFRyIsWzE1LCJhVyJdLCJFSiIsWzE1LCJhWCJdLCJFSyIsWzE1LCJhWSJdLCJFTiIsWzE1LCJhWiJdLCJFTyIsWzE1LCJiQSJdLCJFUSIsWzE1LCJiQiJdLCJLSSIsWzE1LCJkUyJdLCJFVSIsWzE1LCJiQyJdLCJFVyIsWzE1LCJiRCJdLCJGRSIsWzE1LCJiRSJdLCJGTyIsWzE1LCJiRiJdLCJGUCIsWzE1LCJiRyJdLCJLSiIsWzE1LCJkVCJdLCJGVCIsWzE1LCJiSCJdLCJGVSIsWzE1LCJiSSJdLCJGViIsWzE1LCJiSiJdLCJGWSIsWzE1LCJiSyJdLCJGWiIsWzE1LCJiTCJdLCJHQiIsWzE1LCJiTSJdLCJHQyIsWzE1LCJiTiJdLCJHRSIsWzE1LCJiTyJdLCJHRiIsWzE1LCJiUCJdLCJHSyIsWzE1LCJiUSJdLCJHTSIsWzE1LCJiUiJdLCJHVCIsWzE1LCJiUyJdLCJHVSIsWzE1LCJiVCJdLCJHViIsWzE1LCJiVSJdLCJHWiIsWzE1LCJiViJdLCJIQyIsWzE1LCJiVyJdLCJLSCIsWzE1LCJkUiJdLCJIRCIsWzE1LCJiWCJdLCJIRSIsWzE1LCJiWSJdLCJIRiIsWzE1LCJiWiJdLCJITiIsWzE1LCJjQSJdLCJIUCIsWzE1LCJjQiJdLCJIVCIsWzE1LCJjQyJdLCJIWCIsWzE1LCJjRCJdLCJJQSIsWzE1LCJjRSJdLCJJQyIsWzE1LCJjRiJdLCJJRCIsWzE1LCJjRyJdLCJJRiIsWzE1LCJjSCJdLCJJSCIsWzE1LCJjSSJdLCJJSSIsWzE1LCJjSiJdLCJJSyIsWzE1LCJjSyJdLCJJTCIsWzE1LCJjTCJdLCJLSyIsWzE1LCJkVSJdLCJJUCIsWzE1LCJjTSJdLCJJUiIsWzE1LCJjTiJdLCJJVSIsWzE1LCJjTyJdLCJJViIsWzE1LCJjUCJdLCJJVyIsWzE1LCJjUSJdLCJJWSIsWzE1LCJjUiJdLCJKQiIsWzE1LCJjUyJdLCJKQyIsWzE1LCJjVCJdLCJKRCIsWzE1LCJjVSJdLCJKRSIsWzE1LCJjViJdLCJKRiIsWzE1LCJjVyJdLCJKRyIsWzE1LCJjWCJdLCJKSCIsWzE1LCJjWSJdLCJKSSIsWzE1LCJjWiJdLCJKSiIsWzE1LCJkQSJdLCJKSyIsWzE1LCJkQiJdLCJKTCIsWzE1LCJkQyJdLCJKTSIsWzE1LCJkRCJdLCJKTiIsWzE1LCJkRSJdLCJKTyIsWzE1LCJkRiJdLCJKUCIsWzE1LCJkRyJdLCJKUiIsWzE1LCJkSCJdLCJKUyIsWzE1LCJkSSJdLCJKVSIsWzE1LCJkSiJdLCJKViIsWzE1LCJkSyJdLCJKWCIsWzE1LCJkTCJdLCJKWSIsWzE1LCJkTSJdLCJKWiIsWzE1LCJkTiJdLCJLQyIsWzE1LCJkTyJdLCJLRCIsWzE1LCJkUCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhYm9ydF93aXRob3V0X2ZhaWwiXSxbNTIsImMiLCJhY2NlcHRfYnlfZGVmYXVsdCJdLFs1MiwiZCIsImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbiJdLFs1MiwiZSIsImNvbnNlbnRfc3RhdGUiXSxbNTIsImYiLCJjb25zZW50X3VwZGF0ZWQiXSxbNTIsImciLCJjb252ZXJzaW9uX2xpbmtlcl9lbmFibGVkIl0sWzUyLCJoIiwiY29udmVyc2lvbl9tYXJraW5nX2NhbGxlZCJdLFs1MiwiaSIsImNvb2tpZV9vcHRpb25zIl0sWzUyLCJqIiwiZGVkdXBlX2lkIl0sWzUyLCJrIiwiZW1fZXZlbnQiXSxbNTIsImwiLCJldmVudF9wcm92ZW5hbmNlIl0sWzUyLCJtIiwiZXZlbnRfc291cmNlIl0sWzUyLCJuIiwiZXZlbnRfc3RhcnRfdGltZXN0YW1wX21zIl0sWzUyLCJvIiwiZXZlbnRfdXNhZ2UiXSxbNTIsInAiLCJleHRyYV90YWdfZXhwZXJpbWVudF9pZHMiXSxbNTIsInEiLCJmb3JtX2V2ZW50X2NhbmNlbGVkIl0sWzUyLCJyIiwiZ2E0X2NvbGxlY3Rpb25fc3ViZG9tYWluIl0sWzUyLCJzIiwiZ3RtX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJ0IiwiaGFuZGxlX2ludGVybmFsbHkiXSxbNTIsInUiLCJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyJdLFs1MiwidiIsImhpdF90eXBlIl0sWzUyLCJ3IiwiaGl0X3R5cGVfb3ZlcnJpZGUiXSxbNTIsIngiLCJpZ25vcmVfZHVwZV9jb25maWciXSxbNTIsInkiLCJpc19jb252ZXJzaW9uIl0sWzUyLCJ6IiwiaXNfZXh0ZXJuYWxfZXZlbnQiXSxbNTIsImFBIiwiaXNfZmlyc3RfdmlzaXQiXSxbNTIsImFCIiwiaXNfZmlyc3RfdmlzaXRfY29udmVyc2lvbiJdLFs1MiwiYUMiLCJpc19mcG1fZW5jcnlwdGlvbiJdLFs1MiwiYUQiLCJpc19mcG1fc3BsaXQiXSxbNTIsImFFIiwiaXNfZ2NwX2Jyb3dzZXIiXSxbNTIsImFGIiwiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiXSxbNTIsImFHIiwiaXNfc2VydmVyX3NpZGVfZGVzdGluYXRpb24iXSxbNTIsImFIIiwiaXNfc2Vzc2lvbl9zdGFydCJdLFs1MiwiYUkiLCJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iXSxbNTIsImFKIiwiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIl0sWzUyLCJhSyIsImlzX3NndG1fcHJlaGl0Il0sWzUyLCJhTCIsImlzX3NwbGl0X2NvbnZlcnNpb24iXSxbNTIsImFNIiwiaXNfc3luIl0sWzUyLCJhTiIsImlzX3Rlc3RfZXZlbnQiXSxbNTIsImFPIiwicHJlaGl0X2Zvcl9yZXRyeSJdLFs1MiwiYVAiLCJyZWRhY3RfYWRzX2RhdGEiXSxbNTIsImFRIiwicmVkYWN0X2NsaWNrX2lkcyJdLFs1MiwiYVIiLCJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIl0sWzUyLCJhUyIsInNlbmRfdXNlcl9kYXRhX2hpdCJdLFs1MiwiYVQiLCJzcGVjdWxhdGl2ZSJdLFs1MiwiYVUiLCJzeW5fb3JfbW9kIl0sWzUyLCJhViIsInRyYW5zaWVudF9lY3NpZCJdLFs1MiwiYVciLCJ1c2VyX2RhdGEiXSxbNTIsImFYIiwidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljIl0sWzUyLCJhWSIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpY19nZXR0ZXIiXSxbNTIsImFaIiwidXNlcl9kYXRhX2Zyb21fY29kZSJdLFs1MiwiYkEiLCJ1c2VyX2RhdGFfZnJvbV9tYW51YWwiXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiRiIsWzE1LCJkIl0sIk0iLFsxNSwiZSJdLCJOIixbMTUsImYiXSwiTyIsWzE1LCJnIl0sIlAiLFsxNSwiaCJdLCJRIixbMTUsImkiXSwiUyIsWzE1LCJqIl0sIlQiLFsxNSwiayJdLCJaIixbMTUsImwiXSwiQUEiLFsxNSwibSJdLCJBQiIsWzE1LCJuIl0sIkFDIixbMTUsIm8iXSwiQUQiLFsxNSwicCJdLCJBSiIsWzE1LCJxIl0sIkFLIixbMTUsInIiXSwiQU4iLFsxNSwicyJdLCJBTyIsWzE1LCJ0Il0sIkFQIixbMTUsInUiXSwiQVEiLFsxNSwidiJdLCJBUiIsWzE1LCJ3Il0sIkFTIixbMTUsIngiXSwiQVYiLFsxNSwieSJdLCJBWSIsWzE1LCJ6Il0sIkFaIixbMTUsImFBIl0sIkJBIixbMTUsImFCIl0sIkJDIixbMTUsImFDIl0sIkJEIixbMTUsImFEIl0sIkJFIixbMTUsImFFIl0sIkJGIixbMTUsImFGIl0sIkJLIixbMTUsImFHIl0sIkJMIixbMTUsImFIIl0sIkJNIixbMTUsImFJIl0sIkJOIixbMTUsImFKIl0sIkJPIixbMTUsImFLIl0sIkJRIixbMTUsImFMIl0sIkJSIixbMTUsImFNIl0sIkJTIixbMTUsImFOIl0sIkJZIixbMTUsImFPIl0sIkNCIixbMTUsImFQIl0sIkNDIixbMTUsImFRIl0sIkNFIixbMTUsImFSIl0sIkNOIixbMTUsImFTIl0sIkNRIixbMTUsImFUIl0sIkNUIixbMTUsImFVIl0sIkNVIixbMTUsImFWIl0sIkNXIixbMTUsImFXIl0sIkNYIixbMTUsImFYIl0sIkNZIixbMTUsImFZIl0sIkNaIixbMTUsImFaIl0sIkRBIixbMTUsImJBIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDQ1XSxbNTIsImMiLDQ2XSxbNTIsImQiLDQ3XSxbNTIsImUiLDE3NF0sWzUyLCJmIiwyNzZdLFszNixbOCwiRiIsWzE1LCJiIl0sIkciLFsxNSwiYyJdLCJIIixbMTUsImQiXSwiViIsWzE1LCJlIl0sIkFEIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZlYXR1cmVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0MjVdLFs1MiwiYyIsNDM1XSxbNTIsImQiLDQ4OF0sWzUyLCJlIiw0ODldLFs1MiwiZiIsNDk4XSxbNTIsImciLDUwM10sWzUyLCJoIiw1MDRdLFs1MiwiaSIsNTA2XSxbNTIsImoiLDUyM10sWzUyLCJrIiw1MzJdLFs1MiwibCIsNTUzXSxbNTIsIm0iLDU2OF0sWzUyLCJuIiw1NzddLFs1MiwibyIsNTgxXSxbNTIsInAiLDU4M10sWzUyLCJxIiw1OTJdLFs1MiwiciIsNTk0XSxbNTIsInMiLDU5OV0sWzM2LFs4LCJBViIsWzE1LCJrIl0sIkFEIixbMTUsImQiXSwiQ0kiLFsxNSwicSJdLCJCViIsWzE1LCJuIl0sIkJPIixbMTUsIm0iXSwiQ0siLFsxNSwiciJdLCJDUCIsWzE1LCJzIl0sIkFNIixbMTUsImciXSwiQloiLFsxNSwibyJdLCJBVCIsWzE1LCJqIl0sIkFFIixbMTUsImUiXSwiQU4iLFsxNSwiaCJdLCJMIixbMTUsImMiXSwiQkMiLFsxNSwibCJdLCJBTyIsWzE1LCJpIl0sIkNCIixbMTUsInAiXSwiQUkiLFsxNSwiZiJdLCJJIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX29iamVjdCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIiwiZyJdLFs1MiwiaCIsWzMwLFsxNSwiZyJdLFszOSxbImMiLFsxNSwiZiJdXSxbN10sWzhdXV1dLFs1NSwiaSIsWzE1LCJmIl0sWzQ2LFs1MyxbNTIsImoiLFsxNixbMTUsImYiXSxbMTUsImkiXV1dLFsyMixbImMiLFsxNSwiaiJdXSxbNDYsWzUzLFsyMixbMjgsWyJjIixbMTYsWzE1LCJoIl0sWzE1LCJpIl1dXV0sWzQ2LFs1MyxbNDMsWzE1LCJoIl0sWzE1LCJpIl0sWzddXV1dXSxbNDMsWzE1LCJoIl0sWzE1LCJpIl0sWyJlIixbMTUsImoiXSxbMTYsWzE1LCJoIl0sWzE1LCJpIl1dXV1dXSxbNDYsWzIyLFsiZCIsWzE1LCJqIl1dLFs0NixbNTMsWzIyLFsyOCxbImQiLFsxNixbMTUsImgiXSxbMTUsImkiXV1dXSxbNDYsWzUzLFs0MyxbMTUsImgiXSxbMTUsImkiXSxbOF1dXV1dLFs0MyxbMTUsImgiXSxbMTUsImkiXSxbImUiLFsxNSwiaiJdLFsxNixbMTUsImgiXSxbMTUsImkiXV1dXV1dLFs0NixbNTMsWzQzLFsxNSwiaCJdLFsxNSwiaSJdLFsxNSwiaiJdXV1dXV1dXV1dLFszNixbMTUsImgiXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImMiLFs1MSwiIixbNywiZiJdLFszNixbMTIsWyJiIixbMTUsImYiXV0sImFycmF5Il1dXV0sWzUyLCJkIixbNTEsIiIsWzcsImYiXSxbMzYsWzEyLFsiYiIsWzE1LCJmIl1dLCJvYmplY3QiXV1dXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDVdLFs1MiwiZSIsNl0sWzUyLCJmIiw3XSxbNTIsImciLDhdLFs1MiwiaCIsOV0sWzUyLCJpIiwxMV0sWzUyLCJqIiwxNV0sWzUyLCJrIiwxNl0sWzUyLCJsIiwyMF0sWzUyLCJtIiwyMV0sWzUyLCJuIiwyM10sWzUyLCJvIiwyNF0sWzUyLCJwIiwyN10sWzUyLCJxIiw0MF0sWzUyLCJyIiw0MV0sWzM2LFs4LCJPIixbMTUsImoiXSwiVyIsWzE1LCJuIl0sIlAiLFsxNSwiayJdLCJYIixbMTUsIm8iXSwiSyIsWzE1LCJpIl0sIkEiLFsxNSwiYiJdLCJUIixbMTUsImwiXSwiRSIsWzE1LCJkIl0sIkYiLFsxNSwiZSJdLCJCIixbMTUsImMiXSwiSCIsWzE1LCJnIl0sIkFOIixbMTUsInEiXSwiSSIsWzE1LCJoIl0sIkciLFsxNSwiZiJdLCJVIixbMTUsIm0iXSwiQU8iLFsxNSwiciJdLCJBQSIsWzE1LCJwIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9sZWdhY3lVcmxzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsInAiXSxbNTIsInEiLFsyLFsxNSwicCJdLCJpbmRleE9mIixbNywiIyJdXV0sWzM2LFszOSxbMjMsWzE1LCJxIl0sMF0sWzE1LCJwIl0sWzIsWzE1LCJwIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsInEiXV1dXV1dLFs1MCwiaSIsWzQ2LCJwIl0sWzUyLCJxIixbMTcsWyJlIixbMTUsInAiXV0sInByb3RvY29sIl1dLFszNixbMzksWzE1LCJxIl0sWzIsWzE1LCJxIl0sInJlcGxhY2UiLFs3LCI6IiwiIl1dLCIiXV1dLFs1MCwiaiIsWzQ2LCJwIiwicSJdLFs0MSwiciJdLFszLCJyIixbMTcsWyJlIixbMTUsInAiXV0sImhvc3RuYW1lIl1dLFsyMixbMjgsWzE1LCJyIl1dLFs0NixbMzYsIiJdXV0sWzUyLCJzIixbImIiLCI6WzAtOV0rIl1dLFszLCJyIixbMixbMTUsInIiXSwicmVwbGFjZSIsWzcsWzE1LCJzIl0sIiJdXV0sWzIyLFsxNSwicSJdLFs0NixbNTMsWzUyLCJ0IixbImIiLCJed3d3XFxkKlxcLiJdXSxbNTIsInUiLFsyLFsxNSwiciJdLCJtYXRjaCIsWzcsWzE1LCJ0Il1dXV0sWzIyLFsxLFsxNSwidSJdLFsxNixbMTUsInUiXSwwXV0sWzQ2LFszLCJyIixbMixbMTUsInIiXSwic3Vic3RyaW5nIixbNyxbMTcsWzE2LFsxNSwidSJdLDBdLCJsZW5ndGgiXV1dXV1dXV1dLFszNixbMTUsInIiXV1dLFs1MCwiayIsWzQ2LCJwIl0sWzUyLCJxIixbImUiLFsxNSwicCJdXV0sWzQxLCJyIl0sWzMsInIiLFsiZiIsWzE3LFsxNSwicSJdLCJwb3J0Il1dXSxbMjIsWzI4LFsxNSwiciJdXSxbNDYsWzUzLFsyMixbMjAsWzE3LFsxNSwicSJdLCJwcm90b2NvbCJdLCJodHRwOiJdLFs0NixbNTMsWzMsInIiLDgwXV1dLFs0NixbMjIsWzIwLFsxNyxbMTUsInEiXSwicHJvdG9jb2wiXSwiaHR0cHM6Il0sWzQ2LFs1MyxbMywiciIsNDQzXV1dLFs0NixbNTMsWzMsInIiLCIiXV1dXV1dXV1dLFszNixbImciLFsxNSwiciJdXV1dLFs1MCwibCIsWzQ2LCJwIiwicSJdLFs1MiwiciIsWyJlIixbMTUsInAiXV1dLFs0MSwicyJdLFszLCJzIixbMzksWzIwLFsyLFsxNyxbMTUsInIiXSwicGF0aG5hbWUiXSwiaW5kZXhPZiIsWzcsIi8iXV0sMF0sWzE3LFsxNSwiciJdLCJwYXRobmFtZSJdLFswLCIvIixbMTcsWzE1LCJyIl0sInBhdGhOYW1lIl1dXV0sWzIyLFsyMCxbImQiLFsxNSwicSJdXSwiYXJyYXkiXSxbNDYsWzUzLFs1MiwidCIsWzIsWzE1LCJzIl0sInNwbGl0IixbNywiLyJdXV0sWzIyLFsxOSxbMixbMTUsInEiXSwiaW5kZXhPZiIsWzcsWzE2LFsxNSwidCJdLFszNyxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDFdXV1dLDBdLFs0NixbNTMsWzQzLFsxNSwidCJdLFszNyxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDFdLCIiXSxbMywicyIsWzIsWzE1LCJ0Il0sImpvaW4iLFs3LCIvIl1dXV1dXV1dXSxbMzYsWzE1LCJzIl1dXSxbNTAsIm0iLFs0NiwicCJdLFs1MiwicSIsWzE3LFsiZSIsWzE1LCJwIl1dLCJwYXRobmFtZSJdXSxbNTIsInIiLFsyLFsxNSwicSJdLCJzcGxpdCIsWzcsIi4iXV1dLFs0MSwicyJdLFszLCJzIixbMzksWzE4LFsxNyxbMTUsInIiXSwibGVuZ3RoIl0sMV0sWzE2LFsxNSwiciJdLFszNyxbMTcsWzE1LCJyIl0sImxlbmd0aCJdLDFdXSwiIl1dLFszNixbMTYsWzIsWzE1LCJzIl0sInNwbGl0IixbNywiLyJdXSwwXV1dLFs1MCwibiIsWzQ2LCJwIl0sWzUyLCJxIixbMTcsWyJlIixbMTUsInAiXV0sImhhc2giXV0sWzM2LFsyLFsxNSwicSJdLCJyZXBsYWNlIixbNywiIyIsIiJdXV1dLFs1MCwibyIsWzQ2LCJwIiwicSJdLFs1MCwicyIsWzQ2LCJ0Il0sWzM2LFsiYyIsWzIsWzE1LCJ0Il0sInJlcGxhY2UiLFs3LFsiYiIsIlxcKyIsImciXSwiICJdXV1dXSxbNTIsInIiLFsyLFsxNyxbImUiLFsxNSwicCJdXSwic2VhcmNoIl0sInJlcGxhY2UiLFs3LCI/IiwiIl1dXSxbNjUsInQiLFsyLFsxNSwiciJdLCJzcGxpdCIsWzcsIiYiXV0sWzQ2LFs1MyxbNTIsInUiLFsyLFsxNSwidCJdLCJzcGxpdCIsWzcsIj0iXV1dLFsyMixbMjEsWyJzIixbMTYsWzE1LCJ1Il0sMF1dLFsxNSwicSJdXSxbNDYsWzZdXV0sWzM2LFsicyIsWzIsWzIsWzE1LCJ1Il0sInNsaWNlIixbNywxXV0sImpvaW4iLFs3LCI9Il1dXV1dXV0sWzM2XV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jcmVhdGVSZWdleCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImRlY29kZVVyaUNvbXBvbmVudCJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5sZWdhY3lQYXJzZVVybCJdXSxbNTIsImYiLFsicmVxdWlyZSIsIm1ha2VOdW1iZXIiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFszNixbOCwiRiIsWzE1LCJtIl0sIkgiLFsxNSwibyJdLCJHIixbMTUsIm4iXSwiQyIsWzE1LCJqIl0sIkUiLFsxNSwibCJdLCJEIixbMTUsImsiXSwiQiIsWzE1LCJpIl0sIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ3RhZyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibiIsWzQ2LCJyIiwicyIsInQiXSxbNjUsInUiLFsxNSwicyJdLFs0NixbNTMsWzIyLFsyLFsxNSwiciJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsWzE1LCJ1Il1dXSxbNDYsWzUzLFs0MyxbMTUsInIiXSxbMTUsInUiXSxbInQiLFsxNixbMTUsInIiXSxbMTUsInUiXV1dXV1dXV1dXV0sWzUwLCJvIixbNDYsInIiLCJzIl0sWyJuIixbMTUsInIiXSxbMTUsInMiXSxbNTEsIiIsWzcsInQiXSxbMzYsWzM5LFsyMCwiZmFsc2UiLFsyLFsiZSIsWzE1LCJ0Il1dLCJ0b0xvd2VyQ2FzZSIsWzddXV0sZmFsc2UsWzI4LFsyOCxbMTUsInQiXV1dXV1dXV0sWzUwLCJwIixbNDYsInIiLCJzIl0sWyJuIixbMTUsInIiXSxbMTUsInMiXSxbMTUsImQiXV1dLFs1MCwicSIsWzQ2LCJyIiwicyJdLFs1MiwidCIsWyJoIl1dLFsyMixbMSxbMTUsInQiXSxbMTgsWzIsWzE1LCJ0Il0sImluZGV4T2YiLFs3LFsxNSwicyJdXV0sWzI3LDFdXV0sWzQ2LFs1MyxbNDMsWzE1LCJyIl0sWzE3LFsxNSwiaSJdLCJBTyJdLHRydWVdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsIm1ha2VOdW1iZXIiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaiIsWzIsWzE1LCJiIl0sImZyZWV6ZSIsWzcsWzcsWzE3LFsxNSwiYyJdLCJCSiJdLFsxNyxbMTUsImMiXSwiQk4iXSxbMTcsWzE1LCJjIl0sIkREIl0sWzE3LFsxNSwiYyJdLCJHRiJdLFsxNyxbMTUsImMiXSwiSVkiXSxbMTcsWzE1LCJjIl0sIkVXIl0sWzE3LFsxNSwiYyJdLCJJQSJdLFsxNyxbMTUsImMiXSwiSUMiXV1dXV0sWzUyLCJrIixbMixbMTUsImIiXSwiZnJlZXplIixbNyxbNyxbMTcsWzE1LCJjIl0sIkJKIl0sWzE3LFsxNSwiYyJdLCJCTiJdLFsxNyxbMTUsImMiXSwiREQiXSxbMTcsWzE1LCJjIl0sIkdGIl0sWzE3LFsxNSwiYyJdLCJJWSJdLFsxNyxbMTUsImMiXSwiRVciXSxbMTcsWzE1LCJjIl0sIklBIl0sWzE3LFsxNSwiYyJdLCJJQyJdXV1dXSxbNTIsImwiLFsyLFsxNSwiYiJdLCJmcmVlemUiLFs3LFs3LFsxNyxbMTUsImMiXSwiQ1kiXSxbMTcsWzE1LCJjIl0sIkVRIl0sWzE3LFsxNSwiYyJdLCJJRiJdLFsxNyxbMTUsImMiXSwiSUgiXSxbMTcsWzE1LCJjIl0sIkVDIl1dXV1dLFs1MiwibSIsWzIsWzE1LCJiIl0sImZyZWV6ZSIsWzcsWzcsWzE3LFsxNSwiYyJdLCJDWSJdLFsxNyxbMTUsImMiXSwiRVEiXSxbMTcsWzE1LCJjIl0sIklGIl0sWzE3LFsxNSwiYyJdLCJJSCJdLFsxNyxbMTUsImMiXSwiRUMiXV1dXV0sWzM2LFs4LCJCIixbMTUsImsiXSwiRCIsWzE1LCJtIl0sIkEiLFsxNSwiaiJdLCJDIixbMTUsImwiXSwiRiIsWzE1LCJvIl0sIkciLFsxNSwicCJdLCJFIixbMTUsIm4iXSwiSCIsWzE1LCJxIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAKXQosImVudGl0aWVzIjp7CiJfX2FldiI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2F3ZWMiOnsiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19lIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZiI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2dhYXdlIjp7IjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZ29vZ3RhZyI6eyIxIjoxMCwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX191Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fdiI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQoKCn0KLCJibG9iIjp7IjEiOiIxMCIsIjEwIjoiR1RNLUtWNDdDRDgiLCIxNCI6IjY3bTAiLCIxNSI6IjAiLCIxNiI6IkNoRUk4SU9jMHdZUWdPbXNrdnVseEtxUkFSSWNBTDJQWVpaQ1ZrVHV3M3VJbms0Zkc4bURzbGdRWSs2eWdubStRQm9DYzVVPSIsIjE5IjoiZGF0YUxheWVyIiwiMjAiOiIiLCIyMSI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjIyIjoiZXlJd0lqb2lUazhpTENJeElqb2lUazh0TURNaUxDSXlJanBtWVd4elpTd2lNeUk2SW1kdmIyZHNaUzV1YnlJc0lqUWlPaUp5WldkcGIyNHhJaXdpTlNJNlptRnNjMlVzSWpZaU9uUnlkV1VzSWpjaU9pSmhaRjl6ZEc5eVlXZGxmR0Z1WVd4NWRHbGpjMTl6ZEc5eVlXZGxmR0ZrWDNWelpYSmZaR0YwWVh4aFpGOXdaWEp6YjI1aGJHbDZZWFJwYjI0aUxDSTVJanAwY25WbGZRIiwiMjMiOiJnb29nbGUudGFnbWFuYWdlci5kZWJ1Z3VpMi5xdWV1ZSIsIjI0IjoidGFnYXNzaXN0YW50Lmdvb2dsZS5jb20iLCIyNyI6MC4wMDUsIjMiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIzMCI6Ik5PIiwiMzEiOiJOTy0wMyIsIjMyIjpmYWxzZSwiMzMiOiJyZWdpb24xIiwiMzYiOiJodHRwczovL2Fkc2VydmljZS5nb29nbGUuY29tL3BhZ2VhZC9yZWdjbGsiLCIzNyI6Il9fVEFHR1lfSU5TVEFMTEVEIiwiMzgiOiJjY3QuZ29vZ2xlIiwiMzkiOiJnb29nVGFnZ3lSZWZlcnJlciIsIjQwIjoiaHR0cHM6Ly9jY3QuZ29vZ2xlL3RhZ2d5L2FnZW50LmpzIiwiNDEiOiJnb29nbGUudGFnbWFuYWdlci50YS5wcm9kcXVldWUiLCI0MiI6MC4wMSwiNDMiOiJ7XCJrZXlzXCI6W3tcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCS2x5VFgyanlvYnBRQ21mVXlCYmhCeVFIazlaMkhkTjVsSHhwQkF0SUtHTWNtencwZ0UrZWJsWUNtbTFHYTdiWWVUZHlkb0ptZTZJcGFTb0NVMElVVW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiZGVlNGIzNTEtYjBmNS00YzI3LWE4YzgtZWQ2NjA0NzdhNDRjXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRHRZQlJuUEJTMWc2bWVYTzFyUTVhNTJCNUZibmg3REM1anF2MDJpeEpzc24wazFKOXJjSENhVmMvenpSc25zSEJ6U29GS3M2SjhwSDdDY25RUDNFanc9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiYWQxOTNiMmEtNGE5MC00YzFhLWI3OWUtZGUzN2FjMzkxYmQyXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCTVowVU11ZEFlNFBvYWZTVHBVeFB0SWtmQmVDTWJGQlh2dHlSWXZITENTUS9FVXZFSnNtc1Y0dDZOQi9CRVZwcUwzSHY4Z05TUWg3SytTVW9vZjI1YW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDhjNGVmZTEtZmRkMC00MzZhLWFjOGYtOTIzZjExOTE4Nzg3XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRmZsdlVsK3hwSGFGVkNJWU8xS1BMeGt2K0FqZGw0ZDhydnJYaEk2emZwbmJCRHFJNTFERGt0SEhiM1pXSVM1N29EaDBLaXI5QXVDT29uMk1PeE5WOVk9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDMyYmMyNzAtOTllYS00MjIwLWI1NjItZTJjNWFlNzdkNGQ5XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCQVE4VGt5NERMV09KYkhPSGJWWURiUVpFZkVlbGI0RlRCOEVZTVFlUlFpTDFtMUx0QWQwcjN6ZXlMamdaMy9XMjRSOFZmYjIyelkyaXg2Vy9UZkNqakE9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiMDUwYTZlMTEtMzhhYi00ZjgwLTg5Y2ItN2IzMTliOTcwNGMwXCJ9XX0iLCI0NCI6IjExODg5NzkyMH4xMTg4OTc5MzAiLCI0NiI6eyIxIjoiMTAwMCIsIjEwIjoiNjZ1MCIsIjExIjoiNjZnMCIsIjE0IjoiMTAwMCIsIjE2IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIxNyI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMiI6IjkiLCIyMCI6IjUwMDAiLCIyMSI6IjUwMDAiLCIyMiI6IjQuNC4wIiwiMjMiOiIwLjAuMCIsIjI1IjoiMSIsIjI2IjoiNDAwMCIsIjI3IjoiMTAwIiwiMyI6IjUiLCI0IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGF8YWRfcGVyc29uYWxpemF0aW9uIiwiNDQiOiIxNTAwMCIsIjQ4IjoiMzAwMDAiLCI1IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGEiLCI2IjoiMSIsIjYxIjoiMTAwMCIsIjYyIjoiQTZPTkhSWTcvYnZCcm8rSU1aZC9hNkxOam43U1N2OTk5U2tOL2hGQUU5TDZ2TXIzNGROZ2ZkU1ZkWW12NFUrTkhaZzFzeGQzOFJ0Y2lScFJVdElSUGdRQUFBQ0NleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1YwWVdkdFlXNWhaMlZ5TG1OdmJUbzBORE1pTENKbVpXRjBkWEpsSWpvaVUyaGhjbVZrVjI5eWEyVnlSWGgwWlc1a1pXUk1hV1psZEdsdFpTSXNJbVY0Y0dseWVTSTZNVGMzTmpjeU9UWXdNQ3dpYVhOVWFHbHlaRkJoY25SNUlqcDBjblZsZlE9PSIsIjYzIjoiMTAwMCIsIjY2IjoiMTAwIiwiNyI6IjEwIn0sIjQ4Ijp0cnVlLCI1IjoiR1RNLUtWNDdDRDgiLCI1NSI6WyJHVE0tS1Y0N0NEOCJdLCI1NiI6W3siMSI6NDAzLCIzIjowLjUsIjQiOjExNTkzODQ2NSwiNSI6MTE1OTM4NDY2LCI2IjowLCI3IjoyfSx7IjEiOjQwNCwiMyI6MC41LCI0IjoxMTU5Mzg0NjgsIjUiOjExNTkzODQ2OSwiNiI6MCwiNyI6MX0seyIxIjo2MDIsIjMiOjAuMDEsIjQiOjEyMDEyNDQ1NSwiNSI6MTIwMTI0NDUzLCI2IjoxMjAxMjQ0NTQsIjciOjN9LHsiMSI6NTY5LCIyIjp0cnVlfSx7IjEiOjQ3NSwiMiI6dHJ1ZX0seyIxIjo1MDIsIjIiOnRydWV9LHsiMSI6NTc3LCIyIjp0cnVlfSx7IjEiOjU2OCwiMyI6MC4wMSwiNCI6MTE5NzkxNzQ5LCI1IjoxMTk3OTE3NDgsIjYiOjAsIjciOjF9LHsiMSI6NDkwLCIyIjp0cnVlfSx7IjEiOjQ5MSwiMyI6MC4wMSwiNCI6MTE4MDEyMDA3LCI1IjoxMTgwMTIwMDgsIjYiOjExODAxMjAwOSwiNyI6MX0seyIxIjo0ODAsIjIiOnRydWV9LHsiMSI6NTk0LCIzIjowLjAxLCI0IjoxMTk3OTM5NzQsIjUiOjExOTc5Mzk3MiwiNiI6MTE5NzkzOTczLCI3IjoxfSx7IjEiOjU5OSwiMiI6dHJ1ZX0seyIxIjo1ODAsIjMiOjAuMSwiNCI6MTE5NTI3MDIwLCI1IjoxMTk1MjcwMTksIjYiOjAsIjciOjF9LHsiMSI6NTIzLCIyIjp0cnVlfSx7IjEiOjU4MSwiMyI6MC4wMSwiNCI6MTE5OTQ4ODU0LCI1IjoxMTk5NDg4NTIsIjYiOjExOTk0ODg1MywiNyI6M30seyIxIjo1NTUsIjMiOjAuMDEsIjQiOjExOTI1OTYwNiwiNSI6MTE5MjU5NjA1LCI2IjowLCI3IjoyfSx7IjEiOjUwNCwiMiI6dHJ1ZX0seyIxIjo0NjIsIjMiOjAuMDUsIjQiOjExODgwNjUyNCwiNSI6MTE4ODA2NTI1LCI2IjoxMTg4MDY1MjYsIjciOjF9LHsiMSI6NDEzLCIyIjp0cnVlfSx7IjEiOjU5MywiMiI6dHJ1ZX0seyIxIjo1MDYsIjIiOnRydWV9LHsiMSI6NTAwLCIyIjp0cnVlfSx7IjEiOjU2MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMywiNSI6MTE5NDA0NzAyLCI2IjowLCI3IjoxfSx7IjEiOjQ4MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMSwiNSI6MTE5NDA0NzAwLCI2IjowLCI3IjoxfSx7IjEiOjQ1MCwiMyI6MC4wMSwiNCI6MTE3MjI3NzE0LCI1IjoxMTcyMjc3MTUsIjYiOjExNzIyNzcxNiwiNyI6M30seyIxIjo1ODMsIjMiOjAuNSwiNCI6MTE5ODk2ODAzLCI1IjoxMTk4OTY4MDIsIjYiOjAsIjciOjF9LHsiMSI6NDU4LCIyIjp0cnVlfSx7IjEiOjU4MiwiMyI6MC4wMSwiNCI6MTE5MzgxNjY0LCI1IjoxMTkzODE2NjIsIjYiOjExOTM4MTY2MywiNyI6MX0seyIxIjo1NzAsIjIiOnRydWV9LHsiMSI6NDk4LCIzIjowLjIsIjQiOjExNTYxNjk4NSwiNSI6MTE1NjE2OTg2LCI2IjowLCI3IjoxfSx7IjEiOjU5NSwiMiI6dHJ1ZX0seyIxIjo1ODksIjMiOjAuMDEsIjQiOjEyMDA4NDIxNSwiNSI6MTIwMDg0MjE0LCI2IjowLCI3IjoxfSx7IjEiOjQ5NSwiMyI6MC4wNSwiNCI6MTE4MTMxODEwLCI1IjoxMTgxMzE4MDgsIjYiOjExODEzMTgwOSwiNyI6M30seyIxIjo1ODcsIjMiOjAuMSwiNCI6MTE5NzMyMTcxLCI1IjoxMTk3MzIxNzAsIjYiOjAsIjciOjN9LHsiMSI6NTg0LCIyIjp0cnVlfSx7IjEiOjU2NCwiMyI6MC4wMDAxLCI0IjoxMTkyMDUzMTcsIjUiOjExOTIwNTMxNSwiNiI6MTE5MjA1MzE2LCI3IjoxfSx7IjEiOjU1NywiMiI6dHJ1ZX0seyIxIjo0MjcsIjMiOjAuMSwiNCI6MTE5NzI0MzIyLCI1IjoxMTk3MjQzMjAsIjYiOjExOTcyNDMyMSwiNyI6Mn0seyIxIjo1NzYsIjMiOjAuMDEsIjQiOjExOTMxNzgxMCwiNSI6MTE5MzE3ODExLCI2IjoxMTkzMTgxNzcsIjciOjN9LHsiMSI6NTczLCIyIjp0cnVlfSx7IjEiOjQ5OSwiMiI6dHJ1ZX0seyIxIjo1MTYsIjMiOjAuMSwiNCI6MTE4Mzk1MzM1LCI1IjoxMTgzOTUzMzMsIjYiOjExODM5NTMzNCwiNyI6MX0seyIxIjo1MjQsIjIiOnRydWV9XSwiNTkiOlsiR1RNLUtWNDdDRDgiXSwiNiI6IjEwNjg0OTU5NiIsIjYyIjpmYWxzZSwiNjMiOjAuMDA1fQosInBlcm1pc3Npb25zIjp7CiJfX2FldiI6eyJyZWFkX2RhdGFfbGF5ZXIiOnsiYWxsb3dlZEtleXMiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImd0bSJdfSwicmVhZF9ldmVudF9kYXRhIjp7ImV2ZW50RGF0YUFjY2VzcyI6ImFueSJ9LCJyZWFkX2RvbV9lbGVtZW50X3RleHQiOnt9LCJnZXRfZWxlbWVudF9hdHRyaWJ1dGVzIjp7ImFsbG93ZWRBdHRyaWJ1dGVzIjoiYW55In0sImdldF91cmwiOnsidXJsUGFydHMiOiJhbnkifSwiYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXMiOnsicHJvcGVydGllcyI6W3sicHJvcGVydHkiOiJ0YWdOYW1lIiwicmVhZCI6dHJ1ZX1dfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJhY2Nlc3NfZWxlbWVudF92YWx1ZXMiOnsiYWxsb3dSZWFkIjpbdHJ1ZV0sImFsbG93V3JpdGUiOltmYWxzZV19fQosCiJfX2F3ZWMiOnsiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI6eyJsaW1pdERhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd0F1dG9EYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dNYW51YWxEYXRhU291cmNlcyI6ZmFsc2UsImFsbG93Q29kZURhdGFTb3VyY2VzIjpmYWxzZX19CiwKIl9fY2wiOnsiZGV0ZWN0X2NsaWNrX2V2ZW50cyI6e319CiwKIl9fZSI6eyJyZWFkX2V2ZW50X2RhdGEiOnsiZXZlbnREYXRhQWNjZXNzIjoic3BlY2lmaWMiLCJrZXlQYXR0ZXJucyI6WyJldmVudCJdfX0KLAoiX19mIjp7InJlYWRfZGF0YV9sYXllciI6eyJrZXlQYXR0ZXJucyI6WyJndG0ucmVmZXJyZXIiXX0sImdldF9yZWZlcnJlciI6eyJ1cmxQYXJ0cyI6ImFueSJ9fQosCiJfX2dhYXdlIjp7InJlYWRfZXZlbnRfZGF0YSI6eyJldmVudERhdGFBY2Nlc3MiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImV2ZW50TW9kZWwiXX0sInJlYWRfZGF0YV9sYXllciI6eyJhbGxvd2VkS2V5cyI6InNwZWNpZmljIiwia2V5UGF0dGVybnMiOlsiZXZlbnRNb2RlbCIsImVjb21tZXJjZSJdfSwibG9nZ2luZyI6eyJlbnZpcm9ubWVudHMiOiJkZWJ1ZyJ9fQosCiJfX2dvb2d0YWciOnsibG9nZ2luZyI6eyJlbnZpcm9ubWVudHMiOiJkZWJ1ZyJ9LCJhY2Nlc3NfZ2xvYmFscyI6eyJrZXlzIjpbeyJrZXkiOiJndGFnIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImV4ZWN1dGUiOnRydWV9LHsia2V5IjoiZGF0YUxheWVyIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImV4ZWN1dGUiOmZhbHNlfV19LCJjb25maWd1cmVfZ29vZ2xlX3RhZ3MiOnsiYWxsb3dlZFRhZ0lkcyI6ImFueSJ9LCJsb2FkX2dvb2dsZV90YWdzIjp7ImFsbG93ZWRUYWdJZHMiOiJhbnkiLCJhbGxvd0ZpcnN0UGFydHlVcmxzIjp0cnVlLCJhbGxvd2VkRmlyc3RQYXJ0eVVybHMiOiJhbnkifX0KLAoiX19odG1sIjp7InVuc2FmZV9pbmplY3RfYXJiaXRyYXJ5X2h0bWwiOnt9fQosCiJfX3UiOnsicmVhZF9kYXRhX2xheWVyIjp7ImtleVBhdHRlcm5zIjpbImd0bS51cmwiXX0sImdldF91cmwiOnsidXJsUGFydHMiOiJhbnkifX0KLAoiX192Ijp7InJlYWRfZGF0YV9sYXllciI6eyJhbGxvd2VkS2V5cyI6ImFueSJ9fQoKCn0KCgoKLCJzZWN1cml0eV9ncm91cHMiOnsKImN1c3RvbVNjcmlwdHMiOlsKIl9faHRtbCIKCl0KLAoiZ29vZ2xlIjpbCiJfX2FldiIKLAoiX19hd2VjIgosCiJfX2NsIgosCiJfX2UiCiwKIl9fZiIKLAoiX19nYWF3ZSIKLAoiX19nb29ndGFnIgosCiJfX3UiCiwKIl9fdiIKCl0KCgp9CgoKCgoKfTsKCgoKCnZhciBrLGFhPXR5cGVvZiBPYmplY3QuY3JlYXRlPT0iZnVuY3Rpb24iP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O2IucHJvdG90eXBlPWE7cmV0dXJuIG5ldyBifSxiYT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfSxjYT1mdW5jdGlvbihhKXtmb3IodmFyIGI9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdLGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkJiZkLk1hdGg9PU1hdGgpcmV0dXJuIGR9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTsKfSxoYT1jYSh0aGlzKSxpYT10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgieCIpPT09InN5bWJvbCIsa2E9e30sbGE9e30sbmE9ZnVuY3Rpb24oYSxiLGMpe2lmKCFjfHxhIT1udWxsKXt2YXIgZD1sYVtiXTtpZihkPT1udWxsKXJldHVybiBhW2JdO3ZhciBlPWFbZF07cmV0dXJuIGUhPT12b2lkIDA/ZTphW2JdfX0sb2E9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpYTp7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9ZC5sZW5ndGg9PT0xLGY9ZFswXSxnOyFlJiZmIGluIGthP2c9a2E6Zz1oYTtmb3IodmFyIGg9MDtoPGQubGVuZ3RoLTE7aCsrKXt2YXIgbD1kW2hdO2lmKCEobCBpbiBnKSlicmVhayBhO2c9Z1tsXX12YXIgbj1kW2QubGVuZ3RoLTFdLHA9aWEmJmM9PT0iZXM2Ij9nW25dOm51bGwscT1iKHApO2lmKHEhPW51bGwpaWYoZSliYShrYSxuLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pO2Vsc2UgaWYocSE9PXApe2lmKGxhW25dPT09dm9pZCAwKXt2YXIgcj0KTWF0aC5yYW5kb20oKSoxRTk+Pj4wO2xhW25dPWlhP2hhLlN5bWJvbChuKToiJGpzY3AkIityKyIkIitufWJhKGcsbGFbbl0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSl9fX0scGE7aWYoaWEmJnR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y9PSJmdW5jdGlvbiIpcGE9T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIHJhO2E6e3ZhciB0YT17YTohMH0sdWE9e307dHJ5e3VhLl9fcHJvdG9fXz10YTtyYT11YS5hO2JyZWFrIGF9Y2F0Y2goYSl7fXJhPSExfXBhPXJhP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbH0KdmFyIHZhPXBhLHdhPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9YWEoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYodmEpdmEoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLkZ0PWIucHJvdG90eXBlfSx4YT1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX0sbT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6eGEoYSl9Owp0aHJvdyBFcnJvcihTdHJpbmcoYSkrIiBpcyBub3QgYW4gaXRlcmFibGUgb3IgQXJyYXlMaWtlIik7fSx5YT1mdW5jdGlvbihhKXtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTtyZXR1cm4gY30sdz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEFycmF5P2E6eWEobShhKSl9LEFhPWZ1bmN0aW9uKGEpe3JldHVybiB6YShhLGEpfSx6YT1mdW5jdGlvbihhLGIpe2EucmF3PWI7T2JqZWN0LmZyZWV6ZSYmKE9iamVjdC5mcmVlemUoYSksT2JqZWN0LmZyZWV6ZShiKSk7cmV0dXJuIGF9LEJhPWlhJiZ0eXBlb2YgbmEoT2JqZWN0LCJhc3NpZ24iKT09ImZ1bmN0aW9uIj9uYShPYmplY3QsImFzc2lnbiIpOmZ1bmN0aW9uKGEsYil7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyBudWxsaXNoIGFyZyIpO2E9T2JqZWN0KGEpO2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTsKaWYoZClmb3IodmFyIGUgaW4gZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKSYmKGFbZV09ZFtlXSl9cmV0dXJuIGF9O29hKCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8QmF9LCJlczYiKTt2YXIgQ2E9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO30sRGE9ZnVuY3Rpb24oKXt0aGlzLmZhPSExO3RoaXMuUj1udWxsO3RoaXMuamE9dm9pZCAwO3RoaXMuSD0xO3RoaXMuTj10aGlzLlo9MDt0aGlzLkxhPXRoaXMuSz1udWxsfSxFYT1mdW5jdGlvbihhKXtpZihhLmZhKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTthLmZhPSEwfTtEYS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSl7dGhpcy5qYT1hfTsKdmFyIEdhPWZ1bmN0aW9uKGEsYil7YS5LPXthbzpiLGlzRXhjZXB0aW9uOiEwfTthLkg9YS5afHxhLk59O0RhLnByb3RvdHlwZS5nZXROZXh0QWRkcmVzc0pzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O0RhLnByb3RvdHlwZS5nZXRZaWVsZFJlc3VsdEpzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmphfTtEYS5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuSz17cmV0dXJuOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZVsicmV0dXJuIl09RGEucHJvdG90eXBlLnJldHVybjtEYS5wcm90b3R5cGUuQWo9ZnVuY3Rpb24oYSl7dGhpcy5LPXtuZDphfTt0aGlzLkg9dGhpcy5OfTtEYS5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPURhLnByb3RvdHlwZS5BajtEYS5wcm90b3R5cGUuYWM9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YjtyZXR1cm57dmFsdWU6YX19O0RhLnByb3RvdHlwZS55aWVsZD1EYS5wcm90b3R5cGUuYWM7CkRhLnByb3RvdHlwZS54cz1mdW5jdGlvbihhLGIpe3ZhciBjPW0oYSksZD1jLm5leHQoKTtDYShkKTtpZihkLmRvbmUpdGhpcy5qYT1kLnZhbHVlLHRoaXMuSD1iO2Vsc2UgcmV0dXJuIHRoaXMuUj1jLHRoaXMuYWMoZC52YWx1ZSxiKX07RGEucHJvdG90eXBlLnlpZWxkQWxsPURhLnByb3RvdHlwZS54cztEYS5wcm90b3R5cGUubmQ9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5qdW1wVG89RGEucHJvdG90eXBlLm5kO0RhLnByb3RvdHlwZS5Eaj1mdW5jdGlvbigpe3RoaXMuSD0wfTtEYS5wcm90b3R5cGUuanVtcFRvRW5kPURhLnByb3RvdHlwZS5EajtEYS5wcm90b3R5cGUuTmo9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTtiIT12b2lkIDAmJih0aGlzLk49Yil9O0RhLnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLk5qO0RhLnByb3RvdHlwZS52Zz1mdW5jdGlvbihhKXt0aGlzLlo9MDt0aGlzLk49YXx8MH07CkRhLnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLnZnO0RhLnByb3RvdHlwZS5Jaj1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuWj1ifHwwfTtEYS5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1EYS5wcm90b3R5cGUuSWo7RGEucHJvdG90eXBlLlBoPWZ1bmN0aW9uKGEpe3RoaXMuWj1hfHwwO3ZhciBiPXRoaXMuSy5hbzt0aGlzLks9bnVsbDtyZXR1cm4gYn07RGEucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1EYS5wcm90b3R5cGUuUGg7RGEucHJvdG90eXBlLmtkPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuTGFbY109dGhpcy5LOnRoaXMuTGE9W3RoaXMuS107dGhpcy5aPWF8fDA7dGhpcy5OPWJ8fDB9O0RhLnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUua2Q7CkRhLnByb3RvdHlwZS5oZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTGEuc3BsaWNlKGJ8fDApWzBdLGQ9dGhpcy5LPXRoaXMuS3x8YztkP2QuaXNFeGNlcHRpb24/dGhpcy5IPXRoaXMuWnx8dGhpcy5OOmQubmQhPXZvaWQgMCYmdGhpcy5OPGQubmQ/KHRoaXMuSD1kLm5kLHRoaXMuSz1udWxsKTp0aGlzLkg9dGhpcy5OOnRoaXMuSD1hfTtEYS5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLmhlO0RhLnByb3RvdHlwZS5mZT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEhhKGEpfTtEYS5wcm90b3R5cGUuZm9ySW49RGEucHJvdG90eXBlLmZlO3ZhciBIYT1mdW5jdGlvbihhKXt0aGlzLks9YTt0aGlzLkg9W107Zm9yKHZhciBiIGluIGEpdGhpcy5ILnB1c2goYik7dGhpcy5ILnJldmVyc2UoKX07SGEucHJvdG90eXBlLmhvPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLkgubGVuZ3RoPjA7KXt2YXIgYT10aGlzLkgucG9wKCk7aWYoYSBpbiB0aGlzLkspcmV0dXJuIGF9cmV0dXJuIG51bGx9OwpIYS5wcm90b3R5cGUuZ2V0TmV4dD1IYS5wcm90b3R5cGUuaG87CnZhciBJYT1mdW5jdGlvbihhKXt0aGlzLkg9bmV3IERhO3RoaXMuSz1hfSxMYT1mdW5jdGlvbihhLGIpe0VhKGEuSCk7dmFyIGM9YS5ILlI7aWYoYylyZXR1cm4gSmEoYSwicmV0dXJuImluIGM/Y1sicmV0dXJuIl06ZnVuY3Rpb24oZCl7cmV0dXJue3ZhbHVlOmQsZG9uZTohMH19LGIsYS5ILnJldHVybik7YS5ILnJldHVybihiKTtyZXR1cm4gS2EoYSl9LEphPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXt2YXIgZT1iLmNhbGwoYS5ILlIsYyk7Q2EoZSk7aWYoIWUuZG9uZSlyZXR1cm4gYS5ILmZhPSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5ILlI9bnVsbCxHYShhLkgsZyksS2EoYSl9YS5ILlI9bnVsbDtkLmNhbGwoYS5ILGYpO3JldHVybiBLYShhKX0sS2E9ZnVuY3Rpb24oYSl7Zm9yKDthLkguSDspdHJ5e3ZhciBiPWEuSyhhLkgpO2lmKGIpcmV0dXJuIGEuSC5mYT0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChkKXthLkguamE9dm9pZCAwLEdhKGEuSCwKZCl9YS5ILmZhPSExO2lmKGEuSC5LKXt2YXIgYz1hLkguSzthLkguSz1udWxsO2lmKGMuaXNFeGNlcHRpb24pdGhyb3cgYy5hbztyZXR1cm57dmFsdWU6Yy5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX0sTWE9ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3ZhciBjO0VhKGEuSCk7YS5ILlI/Yz1KYShhLGEuSC5SLm5leHQsYixhLkgueWEpOihhLkgueWEoYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlJbInRocm93Il0sYixhLkgueWEpOihHYShhLkgsYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBMYShhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319LE5hPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IE1hKG5ldyBJYShiKSk7dmEmJmEucHJvdG90eXBlJiZ2YShjLAphLnByb3RvdHlwZSk7cmV0dXJuIGN9LE9hPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9LFFhPWZ1bmN0aW9uKGEpe3JldHVybiBhfTsvKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgUmE9dGhpc3x8c2VsZixTYT1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5GdD1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EubnY9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTt2YXIgVGE9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9YTt0aGlzLmRhdGE9Yn07dmFyIFVhPWZ1bmN0aW9uKCl7dGhpcy5tYXA9e307dGhpcy5IPXt9fTtVYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcFsiZHVzdC4iK2FdfTtVYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShjKXx8KHRoaXMubWFwW2NdPWIpfTtVYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eSgiZHVzdC4iK2EpfTtVYS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe3ZhciBiPSJkdXN0LiIrYTt0aGlzLkguaGFzT3duUHJvcGVydHkoYil8fGRlbGV0ZSB0aGlzLm1hcFtiXX07CnZhciBWYT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5tYXApaWYoYS5tYXAuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO3N3aXRjaChiKXtjYXNlIDE6Yy5wdXNoKGUpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5tYXBbZF0pO2JyZWFrO2Nhc2UgMzpjLnB1c2goW2UsYS5tYXBbZF1dKX19cmV0dXJuIGN9O1VhLnByb3RvdHlwZS5GYT1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDEpfTtVYS5wcm90b3R5cGUuaGM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywyKX07VWEucHJvdG90eXBlLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMyl9O3ZhciBXYT1mdW5jdGlvbigpe307V2EucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7fTt2YXIgWGE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9O3RoaXMucHJlZml4PSJndG0uIn07az1YYS5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlW3RoaXMucHJlZml4K1N0cmluZyhhKV09Yn07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkodGhpcy5wcmVmaXgrU3RyaW5nKGEpKX07ay5kZWxldGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5wcmVmaXgrU3RyaW5nKGEpO3JldHVybiB0aGlzLnZhbHVlLmhhc093blByb3BlcnR5KGIpPyhkZWxldGUgdGhpcy52YWx1ZVtiXSwhMCk6ITF9O2suY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9fTsKay52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3JldHVybiBmdW5jdGlvbiBjKCl7dmFyIGQsZSxmO3JldHVybiBOYShjLGZ1bmN0aW9uKGcpe3N3aXRjaChnLkgpe2Nhc2UgMTpnLnZnKDIpLGU9Zy5mZShhLnZhbHVlKTtjYXNlIDQ6aWYoKGQ9ZS5obygpKT09bnVsbCl7Zy5uZCgyKTticmVha31pZighYS52YWx1ZS5oYXNPd25Qcm9wZXJ0eShkKSl7Zy5uZCg0KTticmVha31mPVFhO3JldHVybiBnLmFjKGEudmFsdWVbZF0sOCk7Y2FzZSA4OmYoZy5qYSk7Zy5uZCg0KTticmVhaztjYXNlIDI6Zy5rZCgpLGcuaGUoMCl9fSl9KCl9O2hhLk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFhhLnByb3RvdHlwZSx7c2l6ZTp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudmFsdWUpLmxlbmd0aH19fSk7CmZ1bmN0aW9uIFlhKCl7dHJ5e2lmKE1hcClyZXR1cm4gbmV3IE1hcH1jYXRjaChhKXt9cmV0dXJuIG5ldyBYYX07dmFyIFphPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZXM9W119O1phLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZXMuaW5kZXhPZihhKT09PS0xJiZ0aGlzLnZhbHVlcy5wdXNoKGEpfTtaYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlcy5pbmRleE9mKGEpPi0xfTt2YXIgJGE9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLlI9dGhpcy5LPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuTj1mdW5jdGlvbihkLGUsZil7cmV0dXJuIGQuYXBwbHkoZSxmKX07dGhpcy5IPVlhKCk7dmFyIGM7YTp7dHJ5e2lmKFNldCl7Yz1uZXcgU2V0O2JyZWFrIGF9fWNhdGNoKGQpe31jPW5ldyBaYX10aGlzLlo9Y307JGEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe2FiKHRoaXMsYSxiLCExKX07JGEucHJvdG90eXBlLlFoPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITApfTt2YXIgYWI9ZnVuY3Rpb24oYSxiLGMsZCl7YS5IYnx8YS5aLmhhcyhiKXx8KGQmJmEuWi5hZGQoYiksYS5ILnNldChiLGMpKX07az0kYS5wcm90b3R5cGU7Cmsuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLkguaGFzKGEpJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKGEpP3RoaXMucGFyZW50LnNldChhLGIpOnRoaXMuWi5oYXMoYSl8fHRoaXMuSC5zZXQoYSxiKSl9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkguaGFzKGEpP3RoaXMuSC5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLkguaGFzKGEpfHwhKCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmhhcyhhKSl9O2sud2I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgJGEodGhpcy5mYSx0aGlzKTt0aGlzLksmJmEuUWIodGhpcy5LKTthLnNkKHRoaXMuTik7YS51ZSh0aGlzLlIpO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmF9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTsKay5zZD1mdW5jdGlvbihhKXt0aGlzLk49YX07ay5Qaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkhiPSEwfTtrLnVlPWZ1bmN0aW9uKGEpe3RoaXMuUj1hfTtrLnhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07dmFyIGJiPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxhLm1lc3NhZ2UpO3RoaXMubWVzc2FnZT1kLm1lc3NhZ2U7InN0YWNrImluIGQmJih0aGlzLnN0YWNrPWQuc3RhY2spO3RoaXMudm89YTt0aGlzLlNuPWM9PT12b2lkIDA/ITE6Yzt0aGlzLks9W107dGhpcy5IPWJ9O3dhKGJiLEVycm9yKTt2YXIgY2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBiYj9hOm5ldyBiYihhLHZvaWQgMCwhMCl9O3ZhciBkYj1ZYSgpO2Z1bmN0aW9uIGViKGEsYil7Zm9yKHZhciBjLGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmUmJiEoYz1mYihhLGUudmFsdWUpLGMgaW5zdGFuY2VvZiBUYSk7ZT1kLm5leHQoKSk7cmV0dXJuIGN9ZnVuY3Rpb24gZmIoYSxiKXt0cnl7dmFyIGM9YlswXSxkPWIuc2xpY2UoMSksZT1TdHJpbmcoYyksZj1kYi5oYXMoZSk/ZGIuZ2V0KGUpOmEuZ2V0KGUpO2lmKCFmfHx0eXBlb2YgZi5pbnZva2UhPT0iZnVuY3Rpb24iKXRocm93IGNiKEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4ZWN1dGUgbm9uLWZ1bmN0aW9uICIrYlswXSsiLiIpKTtyZXR1cm4gZi5hcHBseShhLGQpfWNhdGNoKGgpe3ZhciBnPWEuZm8oKTtnJiZnKGgsYi5jb250ZXh0P3tpZDpiWzBdLGxpbmU6Yi5jb250ZXh0LmxpbmV9Om51bGwpO3Rocm93IGg7fX07dmFyIGdiPWZ1bmN0aW9uKCl7dGhpcy5LPW5ldyBXYTt0aGlzLkg9bmV3ICRhKHRoaXMuSyl9O2s9Z2IucHJvdG90eXBlO2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07ay5zZD1mdW5jdGlvbihhKXt0aGlzLkguc2QoYSl9O2suZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yayhbYV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLnJrPWZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9bShPYS5hcHBseSgwLGFyZ3VtZW50cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWE9ZmIodGhpcy5ILGMudmFsdWUpO3JldHVybiBhfTtrLkpxPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPXRoaXMuSC53YigpO2MudWUoYSk7Zm9yKHZhciBkLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlkPWZiKGMsZi52YWx1ZSk7cmV0dXJuIGR9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07dmFyIGhiPWZ1bmN0aW9uKGEsYil7dGhpcy5SPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLk49dGhpcy5IPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuSz1mdW5jdGlvbihjLGQsZSl7cmV0dXJuIGMuYXBwbHkoZCxlKX07dGhpcy52YWx1ZXM9bmV3IFVhfTtoYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7amIodGhpcyxhLGIsITEpfTtoYi5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMCl9O3ZhciBqYj1mdW5jdGlvbihhLGIsYyxkKXtpZighYS5IYilpZihkKXt2YXIgZT1hLnZhbHVlcztlLnNldChiLGMpO2UuSFsiZHVzdC4iK2JdPSEwfWVsc2UgYS52YWx1ZXMuc2V0KGIsYyl9O2s9aGIucHJvdG90eXBlO2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLnZhbHVlcy5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy52YWx1ZXMuc2V0KGEsYikpfTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmhhcyhhKT90aGlzLnZhbHVlcy5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLnZhbHVlcy5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyBoYih0aGlzLlIsdGhpcyk7dGhpcy5IJiZhLlFiKHRoaXMuSCk7YS5zZCh0aGlzLkspO2EudWUodGhpcy5OKTtyZXR1cm4gYX07ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSz1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTt2YXIga2I9ZnVuY3Rpb24oKXt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhfTtrPWtiLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gbGIoKXtmb3IodmFyIGE9bWIsYj17fSxjPTA7YzxhLmxlbmd0aDsrK2MpYlthW2NdXT1jO3JldHVybiBifWZ1bmN0aW9uIG5iKCl7dmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjthKz1hLnRvTG93ZXJDYXNlKCkrIjAxMjM0NTY3ODktXyI7cmV0dXJuIGErIi4ifXZhciBtYixvYjtmdW5jdGlvbiBwYihhKXttYj1tYnx8bmIoKTtvYj1vYnx8bGIoKTtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7Yys9Myl7dmFyIGQ9YysxPGEubGVuZ3RoLGU9YysyPGEubGVuZ3RoLGY9YS5jaGFyQ29kZUF0KGMpLGc9ZD9hLmNoYXJDb2RlQXQoYysxKTowLGg9ZT9hLmNoYXJDb2RlQXQoYysyKTowLGw9Zj4+MixuPShmJjMpPDw0fGc+PjQscD0oZyYxNSk8PDJ8aD4+NixxPWgmNjM7ZXx8KHE9NjQsZHx8KHA9NjQpKTtiLnB1c2gobWJbbF0sbWJbbl0sbWJbcF0sbWJbcV0pfXJldHVybiBiLmpvaW4oIiIpfQpmdW5jdGlvbiBxYihhKXtmdW5jdGlvbiBiKGwpe2Zvcig7ZDxhLmxlbmd0aDspe3ZhciBuPWEuY2hhckF0KGQrKykscD1vYltuXTtpZihwIT1udWxsKXJldHVybiBwO2lmKCEvXltcc1x4YTBdKiQvLnRlc3QobikpdGhyb3cgRXJyb3IoIlVua25vd24gYmFzZTY0IGVuY29kaW5nIGF0IGNoYXI6ICIrbik7fXJldHVybiBsfW1iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYz0iIixkPTA7Oyl7dmFyIGU9YigtMSksZj1iKDApLGc9Yig2NCksaD1iKDY0KTtpZihoPT09NjQmJmU9PT0tMSlyZXR1cm4gYztjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGU8PDJ8Zj4+NCk7ZyE9PTY0JiYoYys9U3RyaW5nLmZyb21DaGFyQ29kZShmPDw0JjI0MHxnPj4yKSxoIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGc8PDYmMTkyfGgpKSl9fTt2YXIgcmI9e307ZnVuY3Rpb24gc2IoYSxiKXt2YXIgYz1yYlthXTtjfHwoYz1yYlthXT1bXSk7Y1tiXT0hMH1mdW5jdGlvbiB0Yigpe2RlbGV0ZSByYi5HQTRfRVZFTlR9ZnVuY3Rpb24gdWIoKXt2YXIgYT12Yi5ILnNsaWNlKCk7cmIuR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUw9YX1mdW5jdGlvbiB3YihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKylkJTg9PT0wJiZkPjAmJihiLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjKSksYz0wKSxhW2RdJiYoY3w9MTw8ZCU4KTtjPjAmJmIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtyZXR1cm4gcGIoYi5qb2luKCIiKSkucmVwbGFjZSgvXC4rJC8sIiIpfTtmdW5jdGlvbiB4Yigpe31mdW5jdGlvbiB5YihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iZnVuY3Rpb24ifWZ1bmN0aW9uIHpiKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIEFiKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiYhaXNOYU4oYSl9ZnVuY3Rpb24gQmIoYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YTpbYV19ZnVuY3Rpb24gQ2IoYSxiKXtpZihhJiZBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmIoYVtjXSkpcmV0dXJuIGFbY119ZnVuY3Rpb24gRGIoYSxiKXtpZighQWIoYSl8fCFBYihiKXx8YT5iKWE9MCxiPTIxNDc0ODM2NDc7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooYi1hKzEpK2EpfQpmdW5jdGlvbiBFYihhLGIpe2Zvcih2YXIgYz1uZXcgRmIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWMuc2V0KGFbZF0sITApO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7ZSsrKWlmKGMuZ2V0KGJbZV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEdiKGEsYil7Zm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYyxhW2NdKX1mdW5jdGlvbiBIYihhKXtyZXR1cm4hIWEmJihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PT0iW29iamVjdCBBcmd1bWVudHNdInx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImNhbGxlZSIpKX1mdW5jdGlvbiBJYihhKXtyZXR1cm4gTWF0aC5yb3VuZChOdW1iZXIoYSkpfHwwfWZ1bmN0aW9uIEpiKGEpe3JldHVybiJmYWxzZSI9PT1TdHJpbmcoYSkudG9Mb3dlckNhc2UoKT8hMTohIWF9CmZ1bmN0aW9uIEtiKGEpe3ZhciBiPVtdO2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKFN0cmluZyhhW2NdKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gTGIoYSl7cmV0dXJuIGE/YS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIik6IiJ9ZnVuY3Rpb24gTWIoKXtyZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSl9ZnVuY3Rpb24gTmIoKXtyZXR1cm4gTWIoKS5nZXRUaW1lKCl9dmFyIEZiPWZ1bmN0aW9uKCl7dGhpcy5wcmVmaXg9Imd0bS4iO3RoaXMudmFsdWVzPXt9fTtGYi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV09Yn07RmIucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV19O0ZiLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nZXQoYSkhPT12b2lkIDB9OwpmdW5jdGlvbiBPYihhLGIsYyl7cmV0dXJuIGEmJmEuaGFzT3duUHJvcGVydHkoYik/YVtiXTpjfWZ1bmN0aW9uIFBiKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPXZvaWQgMDt0cnl7YygpfWNhdGNoKGQpe319fX1mdW5jdGlvbiBRYihhLGIpe2Zvcih2YXIgYyBpbiBiKWIuaGFzT3duUHJvcGVydHkoYykmJihhW2NdPWJbY10pfWZ1bmN0aW9uIFJiKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnB1c2goYVtkXSksYy5wdXNoLmFwcGx5KGMsYlthW2RdXXx8W10pO3JldHVybiBjfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoMCxiLmxlbmd0aCk9PT1ifWZ1bmN0aW9uIFRiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoYS5sZW5ndGgtYi5sZW5ndGgsYS5sZW5ndGgpPT09Yn0KZnVuY3Rpb24gVWIoYSxiLGMpe2M9Y3x8W107Zm9yKHZhciBkPWEsZT0wO2U8Yi5sZW5ndGgtMTtlKyspe2lmKCFkLmhhc093blByb3BlcnR5KGJbZV0pKXJldHVybjtkPWRbYltlXV07aWYoYy5pbmRleE9mKGQpPj0wKXJldHVybn1yZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYz17fSxkPWMsZT1hLnNwbGl0KCIuIiksZj0wO2Y8ZS5sZW5ndGgtMTtmKyspZD1kW2VbZl1dPXt9O2RbZVtlLmxlbmd0aC0xXV09YjtyZXR1cm4gY312YXIgV2I9L15cd3sxLDl9JC87ZnVuY3Rpb24gWWIoYSxiKXthPWF8fHt9O2I9Ynx8IiwiO3ZhciBjPVtdO0diKGEsZnVuY3Rpb24oZCxlKXtXYi50ZXN0KGQpJiZlJiZjLnB1c2goZCl9KTtyZXR1cm4gYy5qb2luKGIpfQpmdW5jdGlvbiBaYihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hLmNoYXJDb2RlQXQoYyk7ZDwxMjg/Yi5wdXNoKGQpOmQ8MjA0OD9iLnB1c2goMTkyfGQ+PjYsMTI4fGQmNjMpOmQ8NTUyOTZ8fGQ+PTU3MzQ0P2IucHVzaCgyMjR8ZD4+MTIsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpOihkPTY1NTM2KygoZCYxMDIzKTw8MTB8YS5jaGFyQ29kZUF0KCsrYykmMTAyMyksYi5wdXNoKDI0MHxkPj4xOCwxMjh8ZD4+MTImNjMsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYil9ZnVuY3Rpb24gJGIoYSl7aWYoIWEpcmV0dXJuIGE7dmFyIGI9YTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goZCl7fXZhciBjPWIuc3BsaXQoIiwiKTtyZXR1cm4gYy5sZW5ndGg9PT0yJiZjWzBdPT09Y1sxXT9jWzBdOmF9CmZ1bmN0aW9uIGFjKGEsYixjKXtmdW5jdGlvbiBkKG4pe3ZhciBwPW4uc3BsaXQoIj0iKVswXTtpZihhLmluZGV4T2YocCk8MClyZXR1cm4gbjtpZihjIT09dm9pZCAwKXJldHVybiBwKyI9IitjfWZ1bmN0aW9uIGUobil7cmV0dXJuIG4uc3BsaXQoIiYiKS5tYXAoZCkuZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiBwIT09dm9pZCAwfSkuam9pbigiJiIpfXZhciBmPWIuaHJlZi5zcGxpdCgvWz8jXS8pWzBdLGc9Yi5zZWFyY2gsaD1iLmhhc2g7Z1swXT09PSI/IiYmKGc9Zy5zdWJzdHJpbmcoMSkpO2hbMF09PT0iIyImJihoPWguc3Vic3RyaW5nKDEpKTtnPWUoZyk7aD1lKGgpO2chPT0iIiYmKGc9Ij8iK2cpO2ghPT0iIiYmKGg9IiMiK2gpO3ZhciBsPSIiK2YrZytoO2xbbC5sZW5ndGgtMV09PT0iLyImJihsPWwuc3Vic3RyaW5nKDAsbC5sZW5ndGgtMSkpO3JldHVybiBsfQpmdW5jdGlvbiBiYyhhKXtmb3IodmFyIGI9MDtiPDM7KytiKXRyeXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZSgvXCsvZywiICIpO2lmKGM9PT1hKWJyZWFrO2E9Y31jYXRjaChkKXtyZXR1cm4iIn1yZXR1cm4gYX1mdW5jdGlvbiBjYygpe3ZhciBhPUEsYjthOnt2YXIgYz1hLmNyeXB0b3x8YS5tc0NyeXB0bztpZihjJiZjLmdldFJhbmRvbVZhbHVlcyl0cnl7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoMjUpO2MuZ2V0UmFuZG9tVmFsdWVzKGQpO2I9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KGQpKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKTticmVhayBhfWNhdGNoKGUpe31iPXZvaWQgMH1yZXR1cm4gYn07LyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIGRjPWdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLGVjO2Z1bmN0aW9uIGZjKCl7dmFyIGE9bnVsbDtpZighZGMpcmV0dXJuIGE7dHJ5e3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiBjfTthPWRjLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDpiLGNyZWF0ZVNjcmlwdDpiLGNyZWF0ZVNjcmlwdFVSTDpifSl9Y2F0Y2goYyl7fXJldHVybiBhfWZ1bmN0aW9uIGhjKCl7ZWM9PT12b2lkIDAmJihlYz1mYygpKTtyZXR1cm4gZWN9O3ZhciBpYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07aWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07ZnVuY3Rpb24gamMoYSl7dmFyIGI9YSxjPWhjKCksZD1jP2MuY3JlYXRlU2NyaXB0VVJMKGIpOmI7cmV0dXJuIG5ldyBpYyhkKX1mdW5jdGlvbiBrYyhhKXtpZihhIGluc3RhbmNlb2YgaWMpcmV0dXJuIGEuSDt0aHJvdyBFcnJvcigiIik7fTt2YXIgbGM9QWEoWyIiXSksbWM9emEoWyJceDAwIl0sWyJcXDAiXSksbmM9emEoWyJcbiJdLFsiXFxuIl0pLG9jPXphKFsiXHgwMCJdLFsiXFx1MDAwMCJdKTtmdW5jdGlvbiBwYyhhKXtyZXR1cm4gYS50b1N0cmluZygpLmluZGV4T2YoImAiKT09PS0xfXBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKGxjKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShtYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobmMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG9jKX0pO3ZhciBxYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07cWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07dmFyIHJjPWZ1bmN0aW9uKGEpe3RoaXMuSnM9YX07ZnVuY3Rpb24gc2MoYSl7cmV0dXJuIG5ldyByYyhmdW5jdGlvbihiKXtyZXR1cm4gYi5zdWJzdHIoMCxhLmxlbmd0aCsxKS50b0xvd2VyQ2FzZSgpPT09YSsiOiJ9KX12YXIgdGM9W3NjKCJkYXRhIiksc2MoImh0dHAiKSxzYygiaHR0cHMiKSxzYygibWFpbHRvIiksc2MoImZ0cCIpLG5ldyByYyhmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldO2Z1bmN0aW9uIHVjKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD90YzpiO2lmKGEgaW5zdGFuY2VvZiBxYylyZXR1cm4gYTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkIGluc3RhbmNlb2YgcmMmJmQuSnMoYSkpcmV0dXJuIG5ldyBxYyhhKX19dmFyIHZjPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7CmZ1bmN0aW9uIHdjKGEpe3ZhciBiO2lmKGEgaW5zdGFuY2VvZiBxYylpZihhIGluc3RhbmNlb2YgcWMpYj1hLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7ZWxzZSBiPXZjLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGJ9O2Z1bmN0aW9uIHhjKGEsYil7dmFyIGM9d2MoYik7YyE9PXZvaWQgMCYmKGEuYWN0aW9uPWMpfTtmdW5jdGlvbiB5YyhhLGIpe3Rocm93IEVycm9yKGI9PT12b2lkIDA/InVuZXhwZWN0ZWQgdmFsdWUgIithKyIhIjpiKTt9O3ZhciB6Yz1mdW5jdGlvbihhKXt0aGlzLkg9YX07emMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07dmFyIEJjPWZ1bmN0aW9uKCl7dGhpcy5IPUFjWzBdLnRvTG93ZXJDYXNlKCl9O0JjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2Z1bmN0aW9uIENjKGEsYil7dmFyIGM9W25ldyBCY107aWYoYy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCIiKTt2YXIgZD1jLm1hcChmdW5jdGlvbihmKXt2YXIgZztpZihmIGluc3RhbmNlb2YgQmMpZz1mLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7cmV0dXJuIGd9KSxlPWIudG9Mb3dlckNhc2UoKTtpZihkLmV2ZXJ5KGZ1bmN0aW9uKGYpe3JldHVybiBlLmluZGV4T2YoZikhPT0wfSkpdGhyb3cgRXJyb3IoJ0F0dHJpYnV0ZSAiJytiKyciIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgYWxsb3dlZCBwcmVmaXhlcy4nKTthLnNldEF0dHJpYnV0ZShiLCJ0cnVlIil9O3ZhciBEYz1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIHR5cGVvZiBiIT09InN0cmluZyJ8fGIubGVuZ3RoIT0xPy0xOmEuaW5kZXhPZihiLDApO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGMgaW4gYSYmYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9OyJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIikuY29uY2F0KFsiQlVUVE9OIiwKIklOUFVUIl0pO2Z1bmN0aW9uIEVjKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphfTt2YXIgQT13aW5kb3csRmM9W10sR2M9d2luZG93Lmhpc3RvcnksQj1kb2N1bWVudCxIYz1uYXZpZ2F0b3I7ZnVuY3Rpb24gSWMoKXt2YXIgYTt0cnl7YT1IYy5zZXJ2aWNlV29ya2VyfWNhdGNoKGIpe3JldHVybn1yZXR1cm4gYX12YXIgSmM9Qi5jdXJyZW50U2NyaXB0LEtjPUpjJiZKYy5zcmM7ZnVuY3Rpb24gTWMoYSxiKXt2YXIgYz1BLGQ9Y1thXTtjW2FdPWQ9PT12b2lkIDA/YjpkO3JldHVybiBjW2FdfWZ1bmN0aW9uIE5jKGEpe3JldHVybihIYy51c2VyQWdlbnR8fCIiKS5pbmRleE9mKGEpIT09LTF9ZnVuY3Rpb24gT2MoKXtyZXR1cm4gTmMoIkZpcmVmb3giKXx8TmMoIkZ4aU9TIil9ZnVuY3Rpb24gUGMoKXtyZXR1cm4oTmMoIkdTQSIpfHxOYygiR29vZ2xlQXBwIikpJiYoTmMoImlQaG9uZSIpfHxOYygiaVBhZCIpKX1mdW5jdGlvbiBRYygpe3JldHVybiBOYygiRWRnLyIpfHxOYygiRWRnQS8iKXx8TmMoIkVkZ2lPUy8iKX0KdmFyIFJjPXthc3luYzoxLG5vbmNlOjEsb25lcnJvcjoxLG9ubG9hZDoxLHNyYzoxLHR5cGU6MX0sU2M9e2hlaWdodDoxLG9ubG9hZDoxLHNyYzoxLHN0eWxlOjEsd2lkdGg6MX07ZnVuY3Rpb24gVGMoYSxiLGMpe2ImJkdiKGIsZnVuY3Rpb24oZCxlKXtkPWQudG9Mb3dlckNhc2UoKTtjLmhhc093blByb3BlcnR5KGQpfHxhLnNldEF0dHJpYnV0ZShkLGUpfSl9CmZ1bmN0aW9uIFVjKGEsYixjLGQsZSl7dmFyIGY9Qi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtUYyhmLGQsUmMpO2YudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtmLmFzeW5jPWQmJmQuYXN5bmM9PT0hMT8hMTohMDt2YXIgZztnPWpjKEVjKGEpKTtmLnNyYz1rYyhnKTt2YXIgaCxsPWYub3duZXJEb2N1bWVudDtsPWw9PT12b2lkIDA/ZG9jdW1lbnQ6bDt2YXIgbixwLHE9KHA9KG49bCkucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOnAuY2FsbChuLCJzY3JpcHRbbm9uY2VdIik7KGg9cT09bnVsbD8iIjpxLm5vbmNlfHxxLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiIpJiZmLnNldEF0dHJpYnV0ZSgibm9uY2UiLGgpO2ImJihmLm9ubG9hZD1iKTtjJiYoZi5vbmVycm9yPWMpO2U/ZS5hcHBlbmRDaGlsZChmKTpWYy5CcyhmKTtyZXR1cm4gZn0KZnVuY3Rpb24gV2MoKXtpZihLYyl7dmFyIGE9S2MudG9Mb3dlckNhc2UoKTtpZihhLmluZGV4T2YoImh0dHBzOi8vIik9PT0wKXJldHVybiAyO2lmKGEuaW5kZXhPZigiaHR0cDovLyIpPT09MClyZXR1cm4gM31yZXR1cm4gMX1mdW5jdGlvbiBYYyhhLGIsYyxkLGUsZil7Zj1mPT09dm9pZCAwPyEwOmY7dmFyIGc9ZSxoPSExO2d8fChnPUIuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksaD0hMCk7VGMoZyxjLFNjKTtkJiZHYihkLGZ1bmN0aW9uKG4scCl7Zy5kYXRhc2V0W25dPXB9KTtmJiYoZy5oZWlnaHQ9IjAiLGcud2lkdGg9IjAiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKTthIT09dm9pZCAwJiYoZy5zcmM9YSk7aWYoaCl7dmFyIGw9Qi5ib2R5JiZCLmJvZHkubGFzdENoaWxkfHxCLmJvZHl8fEIuaGVhZDtsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsbCl9YiYmKGcub25sb2FkPWIpO3JldHVybiBnfQpmdW5jdGlvbiBaYygpe3JldHVybiBWYy5Fci5hcHBseShWYyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfWZ1bmN0aW9uICRjKGEsYixjLGQpe2EuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKGIsYywhIWQpfWZ1bmN0aW9uIGFkKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfWZ1bmN0aW9uIGJkKGEpe0Euc2V0VGltZW91dChhLDApfWZ1bmN0aW9uIGNkKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQsZT0oZD1BKS5zZXRJbnRlcnZhbC5hcHBseShkLFthLGJdLmNvbmNhdCh3KGMpKSk7RmMucHVzaChlKTtyZXR1cm4gZX0KZnVuY3Rpb24gZGQoYSl7dmFyIGI9QTt5YihiLnF1ZXVlTWljcm90YXNrKT9iLnF1ZXVlTWljcm90YXNrKGEpOnliKGIuUHJvbWlzZSkmJmIuUHJvbWlzZS5yZXNvbHZlP2IuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe2EoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk6YmQoYSl9ZnVuY3Rpb24gZWQoYSxiKXtyZXR1cm4gYSYmYiYmYS5hdHRyaWJ1dGVzJiZhLmF0dHJpYnV0ZXNbYl0/YS5hdHRyaWJ1dGVzW2JdLnZhbHVlOm51bGx9ZnVuY3Rpb24gZmQoYSl7dmFyIGI9YS5pbm5lclRleHR8fGEudGV4dENvbnRlbnR8fCIiO2ImJmIhPT0iICImJihiPWIucmVwbGFjZSgvXltcc1x4YTBdKy9nLCIiKSxiPWIucmVwbGFjZSgvW1xzXHhhMF0rJC9nLCIiKSk7YiYmKGI9Yi5yZXBsYWNlKC8oXHhhMCt8XHN7Mix9fFxufFxyXHQpL2csIiAiKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGdkKGEpe3ZhciBiPUIuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLGQsZT1FYygiQTxkaXY+IithKyI8L2Rpdj4iKSxmPWhjKCksZz1mP2YuY3JlYXRlSFRNTChlKTplO2Q9bmV3IHpjKGcpO2lmKGMubm9kZVR5cGU9PT0xJiYvXihzY3JpcHR8c3R5bGUpJC9pLnRlc3QoYy50YWdOYW1lKSl0aHJvdyBFcnJvcigiIik7dmFyIGg7aWYoZCBpbnN0YW5jZW9mIHpjKWg9ZC5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO2MuaW5uZXJIVE1MPWg7Yj1iLmxhc3RDaGlsZDtmb3IodmFyIGw9W107YiYmYi5maXJzdENoaWxkOylsLnB1c2goYi5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQpKTtyZXR1cm4gbH0KZnVuY3Rpb24gaGQoYSxiLGMpe2M9Y3x8MTAwO2Zvcih2YXIgZD17fSxlPTA7ZTxiLmxlbmd0aDtlKyspZFtiW2VdXT0hMDtmb3IodmFyIGY9YSxnPTA7ZiYmZzw9YztnKyspe2lmKGRbU3RyaW5nKGYudGFnTmFtZSkudG9Mb3dlckNhc2UoKV0pcmV0dXJuIGY7Zj1mLnBhcmVudEVsZW1lbnR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaWQoYSxiLGMpe3ZhciBkO3RyeXtkPUhjLnNlbmRCZWFjb24mJkhjLnNlbmRCZWFjb24oYSl9Y2F0Y2goZSl7c2IoIlRBR0dJTkciLDE1KX1kP2I9PW51bGx8fGIoKTpaYyhhLGIsYyl9ZnVuY3Rpb24gamQoYSxiKXt0cnl7aWYoSGMuc2VuZEJlYWNvbiE9PXZvaWQgMClyZXR1cm4gSGMuc2VuZEJlYWNvbihhLGIpfWNhdGNoKGMpe3NiKCJUQUdHSU5HIiwxNSl9cmV0dXJuITF9ZnVuY3Rpb24ga2QoKXtyZXR1cm4gSGMuc2VuZEJlYWNvbiE9PXZvaWQgMH0KdmFyIGxkPXtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixrZWVwYWxpdmU6ITAsbWV0aG9kOiJQT1NUIixtb2RlOiJuby1jb3JzIixyZWRpcmVjdDoiZm9sbG93In07CmZ1bmN0aW9uIG1kKGEsYixjLGQsZSl7aWYobmQoKSl7dmFyIGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7YiYmKGYuYm9keT1iKTtjJiYoYy5hdHRyaWJ1dGlvblJlcG9ydGluZyYmKGYuYXR0cmlidXRpb25SZXBvcnRpbmc9Yy5hdHRyaWJ1dGlvblJlcG9ydGluZyksYy5icm93c2luZ1RvcGljcyE9PXZvaWQgMCYmKGYuYnJvd3NpbmdUb3BpY3M9Yy5icm93c2luZ1RvcGljcyksYy5jcmVkZW50aWFscyYmKGYuY3JlZGVudGlhbHM9Yy5jcmVkZW50aWFscyksYy5rZWVwYWxpdmUhPT12b2lkIDAmJihmLmtlZXBhbGl2ZT1jLmtlZXBhbGl2ZSksYy5tZXRob2QmJihmLm1ldGhvZD1jLm1ldGhvZCksYy5tb2RlJiYoZi5tb2RlPWMubW9kZSkpO3RyeXt2YXIgZz1BLmZldGNoKGEsZik7aWYoZylyZXR1cm4gZy50aGVuKGZ1bmN0aW9uKGwpe2wmJihsLm9rfHxsLnN0YXR1cz09PTApP2Q9PW51bGx8fGQoKTplPT1udWxsfHxlKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PQpudWxsfHxlKCl9KSwhMH1jYXRjaChsKXt9fWlmKChjPT1udWxsPzA6Yy5RZyl8fChjPT1udWxsPzA6Yy5jcmVkZW50aWFscykmJmMuY3JlZGVudGlhbHMhPT0iaW5jbHVkZSIpcmV0dXJuIGU9PW51bGx8fGUoKSwhMTtpZihiKXt2YXIgaD1qZChhLGIpO2g/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKTtyZXR1cm4gaH1WYy53dChhLGQsZSk7cmV0dXJuITB9ZnVuY3Rpb24gbmQoKXtyZXR1cm4geWIoQS5mZXRjaCl9ZnVuY3Rpb24gb2QoYSxiKXt2YXIgYz1hW2JdO2MmJnR5cGVvZiBjLmFuaW1WYWw9PT0ic3RyaW5nIiYmKGM9Yy5hbmltVmFsKTtyZXR1cm4gY31mdW5jdGlvbiBwZCgpe3ZhciBhPUEucGVyZm9ybWFuY2U7aWYoYSYmeWIoYS5ub3cpKXJldHVybiBhLm5vdygpfQpmdW5jdGlvbiBxZCgpe3ZhciBhLGI9QS5wZXJmb3JtYW5jZTtpZihiJiZiLmdldEVudHJpZXNCeVR5cGUpdHJ5e3ZhciBjPWIuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpO2MmJmMubGVuZ3RoPjAmJihhPWNbMF0udHlwZSl9Y2F0Y2goZCl7cmV0dXJuImUifWlmKCFhKXJldHVybiJ1Ijtzd2l0Y2goYSl7Y2FzZSAibmF2aWdhdGUiOnJldHVybiJuIjtjYXNlICJiYWNrX2ZvcndhcmQiOnJldHVybiJoIjtjYXNlICJyZWxvYWQiOnJldHVybiJyIjtjYXNlICJwcmVyZW5kZXIiOnJldHVybiJwIjtkZWZhdWx0OnJldHVybiJ4In19ZnVuY3Rpb24gcmQoKXtyZXR1cm4gQS5wZXJmb3JtYW5jZXx8dm9pZCAwfWZ1bmN0aW9uIHNkKCl7dmFyIGE9QS53ZWJQaXhlbHNNYW5hZ2VyO3JldHVybiBhP2EuY3JlYXRlU2hvcGlmeUV4dGVuZCE9PXZvaWQgMDohMX0KdmFyIFZjPXtFcjpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uZXcgSW1hZ2UoMSwxKTtUYyhlLGQse30pO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZS5vbmxvYWQ9bnVsbDtiJiZiKCl9O2Uub25lcnJvcj1mdW5jdGlvbigpe2Uub25lcnJvcj1udWxsO2MmJmMoKX07ZS5zcmM9YTtyZXR1cm4gZX0sQnM6ZnVuY3Rpb24oYSl7dmFyIGI9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF18fEIuYm9keXx8Qi5oZWFkO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX0sd3Q6aWR9O2Z1bmN0aW9uIHRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdWQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT09PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB3ZChhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO3JldHVybiBTdHJpbmcoYykuaW5kZXhPZihTdHJpbmcoZCkpPi0xfWZ1bmN0aW9uIHhkKGEsYil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYSkpLGQ9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYikpO3JldHVybiBjLnN1YnN0cmluZygwLGQubGVuZ3RoKT09PWR9CmZ1bmN0aW9uIHlkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7c3dpdGNoKGMpe2Nhc2UgInBhZ2VMb2NhdGlvbiI6dmFyIGU9QS5sb2NhdGlvbi5ocmVmO2QgaW5zdGFuY2VvZiBrYiYmZC5nZXQoInN0cmlwUHJvdG9jb2wiKSYmKGU9ZS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSk7cmV0dXJuIGV9fTsvKgogalF1ZXJ5IChjKSAyMDA1LCAyMDEyIGpRdWVyeSBGb3VuZGF0aW9uLCBJbmMuIGpxdWVyeS5vcmcvbGljZW5zZS4KKi8KdmFyIHpkPS9cW29iamVjdCAoQm9vbGVhbnxOdW1iZXJ8U3RyaW5nfEZ1bmN0aW9ufEFycmF5fERhdGV8UmVnRXhwKVxdLyxBZD1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBTdHJpbmcoYSk7dmFyIGI9emQuZXhlYyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0KGEpKSk7cmV0dXJuIGI/YlsxXS50b0xvd2VyQ2FzZSgpOiJvYmplY3QifSxCZD1mdW5jdGlvbihhLGIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoT2JqZWN0KGEpLGIpfSxDZD1mdW5jdGlvbihhKXtpZighYXx8QWQoYSkhPSJvYmplY3QifHxhLm5vZGVUeXBlfHxhPT1hLndpbmRvdylyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIUJkKGEsImNvbnN0cnVjdG9yIikmJiFCZChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWZvcih2YXIgYiBpbiBhKTtyZXR1cm4gYj09PXZvaWQgMHx8CkJkKGEsYil9LEVkPWZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8KEFkKGEpPT0iYXJyYXkiP1tdOnt9KSxkO2ZvcihkIGluIGEpaWYoQmQoYSxkKSl7dmFyIGU9YVtkXTtBZChlKT09ImFycmF5Ij8oQWQoY1tkXSkhPSJhcnJheSImJihjW2RdPVtdKSxjW2RdPUVkKGUsY1tkXSkpOkNkKGUpPyhDZChjW2RdKXx8KGNbZF09e30pLGNbZF09RWQoZSxjW2RdKSk6Y1tkXT1lfXJldHVybiBjfTtmdW5jdGlvbiBGZChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmYT49MCYmaXNGaW5pdGUoYSkmJmElMT09PTB8fHR5cGVvZiBhPT09InN0cmluZyImJmFbMF0hPT0iLSImJmE9PT0iIitwYXJzZUludChhKX07dmFyIEdkPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphO3RoaXMubGE9bmV3IFVhO3RoaXMudmFsdWVzPVtdO3RoaXMuTmE9ITE7Zm9yKHZhciBiIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShiKSYmKEZkKGIpP3RoaXMudmFsdWVzW051bWJlcihiKV09YVtOdW1iZXIoYildOnRoaXMubGEuc2V0KGIsYVtiXSkpfTtrPUdkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKGEpe2lmKGEmJmEuaW5kZXhPZih0aGlzKT49MClyZXR1cm4iIjtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy52YWx1ZXMubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy52YWx1ZXNbY107ZD09PW51bGx8fGQ9PT12b2lkIDA/Yi5wdXNoKCIiKTpkIGluc3RhbmNlb2YgR2Q/KGE9YXx8W10sYS5wdXNoKHRoaXMpLGIucHVzaChkLnRvU3RyaW5nKGEpKSxhLnBvcCgpKTpiLnB1c2goU3RyaW5nKGQpKX1yZXR1cm4gYi5qb2luKCIsIil9OwprLnNldD1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLk5hKWlmKGE9PT0ibGVuZ3RoIil7aWYoIUZkKGIpKXRocm93IGNiKEVycm9yKCJSYW5nZUVycm9yOiBMZW5ndGggcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGludGVnZXIuIikpO3RoaXMudmFsdWVzLmxlbmd0aD1OdW1iZXIoYil9ZWxzZSBGZChhKT90aGlzLnZhbHVlc1tOdW1iZXIoYSldPWI6dGhpcy5sYS5zZXQoYSxiKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0ibGVuZ3RoIj90aGlzLmxlbmd0aCgpOkZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV06dGhpcy5sYS5nZXQoYSl9O2subGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLmxlbmd0aH07ay5GYT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLkZhKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKFN0cmluZyhiKSk7cmV0dXJuIGF9OwprLmhjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuaGMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2godGhpcy52YWx1ZXNbYl0pO3JldHVybiBhfTtrLmZjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuZmMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goW1N0cmluZyhiKSx0aGlzLnZhbHVlc1tiXV0pO3JldHVybiBhfTtrLnJlbW92ZT1mdW5jdGlvbihhKXtGZChhKT9kZWxldGUgdGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMucG9wKCl9O2sucHVzaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wdXNoLmFwcGx5KHRoaXMudmFsdWVzLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9O2suc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMuc2hpZnQoKX07Cmsuc3BsaWNlPWZ1bmN0aW9uKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpO3JldHVybiBiPT09dm9pZCAwJiZjLmxlbmd0aD09PTA/bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZShhKSk6bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZS5hcHBseSh0aGlzLnZhbHVlcyxbYSxifHwwXS5jb25jYXQodyhjKSkpKX07ay51bnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnVuc2hpZnQuYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIEZkKGEpJiZ0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShhKXx8dGhpcy5sYS5oYXMoYSl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwO09iamVjdC5mcmVlemUodGhpcy52YWx1ZXMpfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9OwpmdW5jdGlvbiBIZChhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGgoKTtjKyspYS5oYXMoYykmJihiW2NdPWEuZ2V0KGMpKTtyZXR1cm4gYn07dmFyIElkPWZ1bmN0aW9uKGEsYil7dGhpcy5mdW5jdGlvbk5hbWU9YTt0aGlzLmllPWI7dGhpcy5sYT1uZXcgVWE7dGhpcy5OYT0hMX07az1JZC5wcm90b3R5cGU7ay50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bmN0aW9uTmFtZX07ay5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldEtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEdkKHRoaXMuRmEoKSl9O2suaW52b2tlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmllLmNhbGwuYXBwbHkodGhpcy5pZSxbbmV3IEpkKHRoaXMsYSldLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKX07ay5hcHBseT1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmllLmFwcGx5KG5ldyBKZCh0aGlzLGEpLGIpfTtrLk5jPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTt0cnl7cmV0dXJuIHRoaXMuaW52b2tlLmFwcGx5KHRoaXMsW2FdLmNvbmNhdCh3KGIpKSl9Y2F0Y2goYyl7fX07CmsuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTt2YXIgS2Q9ZnVuY3Rpb24oYSxiKXtJZC5jYWxsKHRoaXMsYSxiKX07d2EoS2QsSWQpO3ZhciBMZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShMZCxJZCk7dmFyIEpkPWZ1bmN0aW9uKGEsYil7dGhpcy5pZT1hO3RoaXMuVD1ifTsKSmQucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuVDtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9mYihiLGEpOmF9O0pkLnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWUuZ2V0TmFtZSgpfTtKZC5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ULmplKCl9O3ZhciBNZD1mdW5jdGlvbigpe3RoaXMubWFwPW5ldyBNYXB9O01kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm1hcC5zZXQoYSxiKX07TWQucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAuZ2V0KGEpfTt2YXIgTmQ9ZnVuY3Rpb24oKXt0aGlzLmtleXM9W107dGhpcy52YWx1ZXM9W119O05kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmtleXMucHVzaChhKTt0aGlzLnZhbHVlcy5wdXNoKGIpfTtOZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMua2V5cy5pbmRleE9mKGEpO2lmKGI+LTEpcmV0dXJuIHRoaXMudmFsdWVzW2JdfTtmdW5jdGlvbiBPZCgpe3RyeXtyZXR1cm4gTWFwP25ldyBNZDpuZXcgTmR9Y2F0Y2goYSl7cmV0dXJuIG5ldyBOZH19O3ZhciBQZD1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgUGQpcmV0dXJuIGE7dmFyIGI7YTppZihhPT12b2lkIDB8fEFycmF5LmlzQXJyYXkoYSl8fENkKGEpKWI9ITA7ZWxzZXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJvb2xlYW4iOmNhc2UgIm51bWJlciI6Y2FzZSAic3RyaW5nIjpjYXNlICJmdW5jdGlvbiI6Yj0hMDticmVhayBhfWI9ITF9aWYoYil0aHJvdyBFcnJvcigiVHlwZSBvZiBnaXZlbiB2YWx1ZSBoYXMgYW4gZXF1aXZhbGVudCBQaXhpZSB0eXBlLiIpO3RoaXMudmFsdWU9YX07UGQucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O1BkLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy52YWx1ZSl9O3ZhciBTZD1mdW5jdGlvbihhKXt0aGlzLnByb21pc2U9YTt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhO3RoaXMubGEuc2V0KCJ0aGVuIixSZCh0aGlzKSk7dGhpcy5sYS5zZXQoImNhdGNoIixSZCh0aGlzLCEwKSk7dGhpcy5sYS5zZXQoImZpbmFsbHkiLFJkKHRoaXMsITEsITApKX07az1TZC5wcm90b3R5cGU7ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9Owp2YXIgUmQ9ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8hMTpiO2M9Yz09PXZvaWQgMD8hMTpjO3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oZCxlKXtiJiYoZT1kLGQ9dm9pZCAwKTtjJiYoZT1kKTtkIGluc3RhbmNlb2YgS2R8fChkPXZvaWQgMCk7ZSBpbnN0YW5jZW9mIEtkfHwoZT12b2lkIDApO3ZhciBmPXRoaXMuVC53YigpLGc9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RyeXtyZXR1cm4gYz8obC5pbnZva2UoZiksYS5wcm9taXNlKTpsLmludm9rZShmLG4pfWNhdGNoKHApe3JldHVybiBQcm9taXNlLnJlamVjdChwIGluc3RhbmNlb2YgRXJyb3I/bmV3IFBkKHApOlN0cmluZyhwKSl9fX0saD1hLnByb21pc2UudGhlbihkJiZnKGQpLGUmJmcoZSkpO3JldHVybiBuZXcgU2QoaCl9KX07U2QucHJvdG90eXBlLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07U2QucHJvdG90eXBlLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O2Z1bmN0aW9uIFRkKGEsYixjKXt2YXIgZD1PZCgpLGU9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIGw9Zy5GYSgpLG49MDtuPGwubGVuZ3RoO24rKyloW2xbbl1dPWYoZy5nZXQobFtuXSkpfSxmPWZ1bmN0aW9uKGcpe2lmKGc9PT1udWxsfHxnPT09dm9pZCAwKXJldHVybiBnO3ZhciBoPWQuZ2V0KGcpO2lmKGgpcmV0dXJuIGg7aWYoZyBpbnN0YW5jZW9mIEdkKXt2YXIgbD1bXTtkLnNldChnLGwpO2Zvcih2YXIgbj1nLkZhKCkscD0wO3A8bi5sZW5ndGg7cCsrKWxbbltwXV09ZihnLmdldChuW3BdKSk7cmV0dXJuIGx9aWYoZyBpbnN0YW5jZW9mIFNkKXJldHVybiBnLnByb21pc2UudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gVGQodSxiLDEpfSxmdW5jdGlvbih1KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoVGQodSxiLDEpKX0pO2lmKGcgaW5zdGFuY2VvZiBrYil7dmFyIHE9e307ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9aWYoZyBpbnN0YW5jZW9mIEtkKXt2YXIgcj1mdW5jdGlvbigpe2Zvcih2YXIgdT0KW10sdj0wO3Y8YXJndW1lbnRzLmxlbmd0aDt2KyspdVt2XT1VZChhcmd1bWVudHNbdl0sYixjKTt2YXIgeD1uZXcgaGIoYj9iLmplKCk6bmV3IFdhKTtiJiZ4LnVlKGIueGIoKSk7cmV0dXJuIGYoZy5hcHBseSh4LHUpKX07ZC5zZXQoZyxyKTtlKGcscik7cmV0dXJuIHJ9dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2Nhc2UgMzp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGcgaW5zdGFuY2VvZiBQZCYmdClyZXR1cm4gZy5nZXRWYWx1ZSgpO3N3aXRjaCh0eXBlb2YgZyl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgInVuZGVmaW5lZCI6cmV0dXJuIGc7Y2FzZSAib2JqZWN0IjppZihnPT09Cm51bGwpcmV0dXJuIG51bGx9fTtyZXR1cm4gZihhKX0KZnVuY3Rpb24gVWQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbCBpbiBnKWcuaGFzT3duUHJvcGVydHkobCkmJmguc2V0KGwsZihnW2xdKSl9LGY9ZnVuY3Rpb24oZyl7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihBcnJheS5pc0FycmF5KGcpfHxIYihnKSl7dmFyIGw9bmV3IEdkO2Quc2V0KGcsbCk7Zm9yKHZhciBuIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShuKSYmbC5zZXQobixmKGdbbl0pKTtyZXR1cm4gbH1pZihDZChnKSl7dmFyIHA9bmV3IGtiO2Quc2V0KGcscCk7ZShnLHApO3JldHVybiBwfWlmKHR5cGVvZiBnPT09ImZ1bmN0aW9uIil7dmFyIHE9bmV3IEtkKCIiLGZ1bmN0aW9uKCl7Zm9yKHZhciB1PU9hLmFwcGx5KDAsYXJndW1lbnRzKSx2PVtdLHg9MDt4PHUubGVuZ3RoO3grKyl2W3hdPVRkKHRoaXMuZXZhbHVhdGUodVt4XSksYixjKTtyZXR1cm4gZih0aGlzLlQuUGooKShnLGcsdikpfSk7ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9dmFyIHI9dHlwZW9mIGc7aWYoZz09PW51bGx8fHI9PT0ic3RyaW5nInx8cj09PSJudW1iZXIifHxyPT09ImJvb2xlYW4iKXJldHVybiBnO3ZhciB0PSExO3N3aXRjaChjKXtjYXNlIDE6dD0hMDticmVhaztjYXNlIDI6dD0hMTticmVhaztkZWZhdWx0On1pZihnIT09dm9pZCAwJiZ0KXJldHVybiBuZXcgUGQoZyl9O3JldHVybiBmKGEpfTt2YXIgVmQ9e3N1cHBvcnRlZE1ldGhvZHM6ImNvbmNhdCBldmVyeSBmaWx0ZXIgZm9yRWFjaCBoYXNPd25Qcm9wZXJ0eSBpbmRleE9mIGpvaW4gbGFzdEluZGV4T2YgbWFwIHBvcCBwdXNoIHJlZHVjZSByZWR1Y2VSaWdodCByZXZlcnNlIHNoaWZ0IHNsaWNlIHNvbWUgc29ydCBzcGxpY2UgdW5zaGlmdCB0b1N0cmluZyIuc3BsaXQoIiAiKSxjb25jYXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPHRoaXMubGVuZ3RoKCk7YysrKWIucHVzaCh0aGlzLmdldChjKSk7Zm9yKHZhciBkPTE7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKylpZihhcmd1bWVudHNbZF1pbnN0YW5jZW9mIEdkKWZvcih2YXIgZT1hcmd1bWVudHNbZF0sZj0wO2Y8ZS5sZW5ndGgoKTtmKyspYi5wdXNoKGUuZ2V0KGYpKTtlbHNlIGIucHVzaChhcmd1bWVudHNbZF0pO3JldHVybiBuZXcgR2QoYil9LGV2ZXJ5OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmCmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJiFiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcykpcmV0dXJuITE7cmV0dXJuITB9LGZpbHRlcjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9W10sZT0wO2U8dGhpcy5sZW5ndGgoKSYmZTxjO2UrKyl0aGlzLmhhcyhlKSYmYi5pbnZva2UoYSx0aGlzLmdldChlKSxlLHRoaXMpJiZkLnB1c2godGhpcy5nZXQoZSkpO3JldHVybiBuZXcgR2QoZCl9LGZvckVhY2g6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiZkPGM7ZCsrKXRoaXMuaGFzKGQpJiZiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcyl9LGhhc093blByb3BlcnR5OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaGFzKGIpfSxpbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9Yz09PXZvaWQgMD8wOk51bWJlcihjKTtlPDAmJihlPU1hdGgubWF4KGQrZSwwKSk7Zm9yKHZhciBmPQplO2Y8ZDtmKyspaWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sam9pbjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDx0aGlzLmxlbmd0aCgpO2QrKyljLnB1c2godGhpcy5nZXQoZCkpO3JldHVybiBjLmpvaW4oYil9LGxhc3RJbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9ZC0xO2MhPT12b2lkIDAmJihlPWM8MD9kK2M6TWF0aC5taW4oYyxlKSk7Zm9yKHZhciBmPWU7Zj49MDtmLS0paWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sbWFwOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiYoZFtlXT1iLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykpO3JldHVybiBuZXcgR2QoZCl9LHBvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvcCgpfSxwdXNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2guYXBwbHkodGhpcywKdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX0scmVkdWNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj0wO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlIG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7Zm9yKHZhciBnPTA7ZzxkO2crKylpZih0aGlzLmhhcyhnKSl7ZT10aGlzLmdldChnKTtmPWcrMTticmVha31pZihnPT09ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aDxkO2grKyl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZWR1Y2VSaWdodDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlLGY9ZC0xO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTsKZm9yKHZhciBnPTE7Zzw9ZDtnKyspaWYodGhpcy5oYXMoZC1nKSl7ZT10aGlzLmdldChkLWcpO2Y9ZC0oZysxKTticmVha31pZihnPmQpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aD49MDtoLS0pdGhpcy5oYXMoaCkmJihlPWIuaW52b2tlKGEsZSx0aGlzLmdldChoKSxoLHRoaXMpKTtyZXR1cm4gZX0scmV2ZXJzZTpmdW5jdGlvbigpe2Zvcih2YXIgYT1IZCh0aGlzKSxiPWEubGVuZ3RoLTEsYz0wO2I+PTA7Yi0tLGMrKylhLmhhc093blByb3BlcnR5KGIpP3RoaXMuc2V0KGMsYVtiXSk6dGhpcy5yZW1vdmUoYyk7cmV0dXJuIHRoaXN9LHNoaWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hpZnQoKX0sc2xpY2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCk7Yj09PXZvaWQgMCYmKGI9MCk7Yj1iPDA/TWF0aC5tYXgoZCtiLDApOk1hdGgubWluKGIsZCk7Yz1jPT09CnZvaWQgMD9kOmM8MD9NYXRoLm1heChkK2MsMCk6TWF0aC5taW4oYyxkKTtjPU1hdGgubWF4KGIsYyk7Zm9yKHZhciBlPVtdLGY9YjtmPGM7ZisrKWUucHVzaCh0aGlzLmdldChmKSk7cmV0dXJuIG5ldyBHZChlKX0sc29tZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMDtyZXR1cm4hMX0sc29ydDpmdW5jdGlvbihhLGIpe3ZhciBjPUhkKHRoaXMpO2I9PT12b2lkIDA/Yy5zb3J0KCk6Yy5zb3J0KGZ1bmN0aW9uKGUsZil7cmV0dXJuIE51bWJlcihiLmludm9rZShhLGUsZikpfSk7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspYy5oYXNPd25Qcm9wZXJ0eShkKT90aGlzLnNldChkLGNbZF0pOnRoaXMucmVtb3ZlKGQpO3JldHVybiB0aGlzfSxzcGxpY2U6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLnNwbGljZS5hcHBseSh0aGlzLApbYixjXS5jb25jYXQodyhPYS5hcHBseSgzLGFyZ3VtZW50cykpKSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdW5zaGlmdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy51bnNoaWZ0LmFwcGx5KHRoaXMsdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX19O3ZhciBXZD17Y2hhckF0OjEsY29uY2F0OjEsaW5kZXhPZjoxLGxhc3RJbmRleE9mOjEsbWF0Y2g6MSxyZXBsYWNlOjEsc2VhcmNoOjEsc2xpY2U6MSxzcGxpdDoxLHN1YnN0cmluZzoxLHRvTG93ZXJDYXNlOjEsdG9Mb2NhbGVMb3dlckNhc2U6MSx0b1N0cmluZzoxLHRvVXBwZXJDYXNlOjEsdG9Mb2NhbGVVcHBlckNhc2U6MSx0cmltOjF9LFhkPW5ldyBUYSgiYnJlYWsiKSxZZD1uZXcgVGEoImNvbnRpbnVlIik7ZnVuY3Rpb24gWmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSt0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uICRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogTm9uLUxpc3QgYXJndW1lbnQgZ2l2ZW4gdG8gQXBwbHkgaW5zdHJ1Y3Rpb24uIik7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2FuJ3QgcmVhZCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7dmFyIGc9dHlwZW9mIGQ9PT0ibnVtYmVyIjtpZih0eXBlb2YgZD09PSJib29sZWFuInx8Zyl7aWYoZT09PSJ0b1N0cmluZyIpe2lmKGcmJmYubGVuZ3RoKCkpe3ZhciBoPVRkKGYuZ2V0KDApKTt0cnl7cmV0dXJuIGQudG9TdHJpbmcoaCl9Y2F0Y2godSl7fX1yZXR1cm4gZC50b1N0cmluZygpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZCsiLiIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uLiIpKTt9aWYodHlwZW9mIGQ9PT0KInN0cmluZyIpe2lmKFdkLmhhc093blByb3BlcnR5KGUpKXt2YXIgbD1UZChmLHZvaWQgMCwxKTtyZXR1cm4gVWQoZFtlXS5hcHBseShkLGwpLHRoaXMuVCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGQgaW5zdGFuY2VvZiBHZCl7aWYoZC5oYXMoZSkpe3ZhciBuPWQuZ2V0KFN0cmluZyhlKSk7aWYobiBpbnN0YW5jZW9mIEtkKXt2YXIgcD1IZChmKTtyZXR1cm4gbi5hcHBseSh0aGlzLlQscCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKFZkLnN1cHBvcnRlZE1ldGhvZHMuaW5kZXhPZihlKT49MCl7dmFyIHE9SGQoZik7cmV0dXJuIFZkW2VdLmNhbGwuYXBwbHkoVmRbZV0sW2QsdGhpcy5UXS5jb25jYXQodyhxKSkpfX1pZihkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkKXtpZihkLmhhcyhlKSl7dmFyIHI9ZC5nZXQoZSk7CmlmKHIgaW5zdGFuY2VvZiBLZCl7dmFyIHQ9SGQoZik7cmV0dXJuIHIuYXBwbHkodGhpcy5ULHQpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihlPT09InRvU3RyaW5nIilyZXR1cm4gZCBpbnN0YW5jZW9mIEtkP2QuZ2V0TmFtZSgpOmQudG9TdHJpbmcoKTtpZihlPT09Imhhc093blByb3BlcnR5IilyZXR1cm4gZC5oYXMoZi5nZXQoMCkpfWlmKGQgaW5zdGFuY2VvZiBQZCYmZT09PSJ0b1N0cmluZyIpcmV0dXJuIGQudG9TdHJpbmcoKTt0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBPYmplY3QgaGFzIG5vICciK2UrIicgcHJvcGVydHkuIikpO30KZnVuY3Rpb24gYmUoYSxiKXthPXRoaXMuZXZhbHVhdGUoYSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigiSW52YWxpZCBrZXkgbmFtZSBnaXZlbiBmb3IgYXNzaWdubWVudC4iKTt2YXIgYz10aGlzLlQ7aWYoIWMuaGFzKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFzc2lnbiB0byB1bmRlZmluZWQgdmFsdWUgIitiKTt2YXIgZD10aGlzLmV2YWx1YXRlKGIpO2Muc2V0KGEsZCk7cmV0dXJuIGR9ZnVuY3Rpb24gY2UoKXt2YXIgYT1PYS5hcHBseSgwLGFyZ3VtZW50cyksYj10aGlzLlQud2IoKSxjPWViKGIsYSk7aWYoYyBpbnN0YW5jZW9mIFRhKXJldHVybiBjfWZ1bmN0aW9uIGRlKCl7cmV0dXJuIFhkfWZ1bmN0aW9uIGVlKGEpe2Zvcih2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiW2NdKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9fQpmdW5jdGlvbiBmZSgpe2Zvcih2YXIgYT10aGlzLlQsYj0wO2I8YXJndW1lbnRzLmxlbmd0aC0xO2IrPTIpe3ZhciBjPWFyZ3VtZW50c1tiXTtpZih0eXBlb2YgYz09PSJzdHJpbmciKXt2YXIgZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLlFoKGMsZCl9fX1mdW5jdGlvbiBnZSgpe3JldHVybiBZZH1mdW5jdGlvbiBoZShhLGIpe3JldHVybiBuZXcgVGEoYSx0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBpZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2Q9bmV3IEdkO2Zvcih2YXIgZT10aGlzLmV2YWx1YXRlKGIpLGY9MDtmPGUubGVuZ3RoO2YrKylkLnB1c2goZVtmXSk7dmFyIGc9WzUxLGEsZF0uY29uY2F0KHcoYykpO3RoaXMuVC5hZGQoYSx0aGlzLmV2YWx1YXRlKGcpKX1mdW5jdGlvbiBqZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpL3RoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGtlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYiksZT1jIGluc3RhbmNlb2YgUGQsZj1kIGluc3RhbmNlb2YgUGQ7cmV0dXJuIGV8fGY/ZSYmZj9jLmdldFZhbHVlKCk9PT1kLmdldFZhbHVlKCk6ITE6Yz09ZH1mdW5jdGlvbiBsZSgpe2Zvcih2YXIgYSxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylhPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTtyZXR1cm4gYX1mdW5jdGlvbiBtZShhLGIsYyxkKXtmb3IodmFyIGU9MDtlPGIoKTtlKyspe3ZhciBmPWEoYyhlKSksZz1lYihmLGQpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ319fQpmdW5jdGlvbiBuZShhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sZnVuY3Rpb24oZil7cmV0dXJuIGZ9LGMpO2lmKGIgaW5zdGFuY2VvZiBrYnx8YiBpbnN0YW5jZW9mIFNkfHxiIGluc3RhbmNlb2YgR2R8fGIgaW5zdGFuY2VvZiBLZCl7dmFyIGQ9Yi5GYSgpLGU9ZC5sZW5ndGg7cmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gZX0sZnVuY3Rpb24oZil7cmV0dXJuIGRbZl19LGMpfX1mdW5jdGlvbiBvZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXtnLnNldChkLGgpO3JldHVybiBnfSxlLGYpfQpmdW5jdGlvbiBwZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5RaChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLmFkZChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHJlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHRlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gdWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9CmZ1bmN0aW9uIHNlKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihkKXtyZXR1cm4gYltkXX0sYyk7aWYoYiBpbnN0YW5jZW9mIEdkKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RoKCl9LGZ1bmN0aW9uKGQpe3JldHVybiBiLmdldChkKX0sYyk7dGhyb3cgY2IoRXJyb3IoIlRoZSB2YWx1ZSBpcyBub3QgaXRlcmFibGUuIikpO30KZnVuY3Rpb24gdmUoYSxiLGMsZCl7ZnVuY3Rpb24gZShxLHIpe2Zvcih2YXIgdD0wO3Q8Zi5sZW5ndGgoKTt0Kyspe3ZhciB1PWYuZ2V0KHQpO3IuYWRkKHUscS5nZXQodSkpfX12YXIgZj10aGlzLmV2YWx1YXRlKGEpO2lmKCEoZiBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiVHlwZUVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBGb3JMZXQgaW5zdHJ1Y3Rpb24uIik7dmFyIGc9dGhpcy5ULGg9dGhpcy5ldmFsdWF0ZShkKSxsPWcud2IoKTtmb3IoZShnLGwpO2ZiKGwsYik7KXt2YXIgbj1lYihsLGgpO2lmKG4gaW5zdGFuY2VvZiBUYSl7aWYobi50eXBlPT09ImJyZWFrIilicmVhaztpZihuLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gbn12YXIgcD1nLndiKCk7ZShsLHApO2ZiKHAsYyk7bD1wfX0KZnVuY3Rpb24gd2UoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZD10aGlzLlQsZT10aGlzLmV2YWx1YXRlKGIpO2lmKCEoZSBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiRXJyb3I6IG5vbi1MaXN0IHZhbHVlIGdpdmVuIGZvciBGbiBhcmd1bWVudCBuYW1lcy4iKTtyZXR1cm4gbmV3IEtkKGEsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz1kLndiKCk7Zy54YigpPT09dm9pZCAwJiZnLnVlKHRoaXMuVC54YigpKTtmb3IodmFyIGg9W10sbD0wO2w8Zi5sZW5ndGg7bCsrKXt2YXIgbj10aGlzLmV2YWx1YXRlKGZbbF0pO2hbbF09bn1mb3IodmFyIHA9ZS5nZXQoImxlbmd0aCIpLHE9MDtxPHA7cSsrKXE8aC5sZW5ndGg/Zy5hZGQoZS5nZXQocSksaFtxXSk6Zy5hZGQoZS5nZXQocSksdm9pZCAwKTtnLmFkZCgiYXJndW1lbnRzIixuZXcgR2QoaCkpO3ZhciByPWViKGcsYyk7aWYociBpbnN0YW5jZW9mIFRhKXJldHVybiByLnR5cGU9PT0KInJldHVybiI/ci5kYXRhOnJ9fSgpKX1mdW5jdGlvbiB4ZShhKXt2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9dGhpcy5UO2lmKHllJiYhYy5oYXMoYikpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKGIrIiBpcyBub3QgZGVmaW5lZC4iKTtyZXR1cm4gYy5nZXQoYil9CmZ1bmN0aW9uIHplKGEsYil7dmFyIGMsZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKTtpZihkPT09dm9pZCAwfHxkPT09bnVsbCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW5ub3QgcmVhZCBwcm9wZXJ0aWVzIG9mICIrZCsiIChyZWFkaW5nICciK2UrIicpIikpO2lmKGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkfHxkIGluc3RhbmNlb2YgR2R8fGQgaW5zdGFuY2VvZiBLZCljPWQuZ2V0KGUpO2Vsc2UgaWYodHlwZW9mIGQ9PT0ic3RyaW5nIillPT09Imxlbmd0aCI/Yz1kLmxlbmd0aDpGZChlKSYmKGM9ZFtlXSk7ZWxzZSBpZihkIGluc3RhbmNlb2YgUGQpcmV0dXJuO3JldHVybiBjfWZ1bmN0aW9uIEFlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBCZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPj10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBDZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO2MgaW5zdGFuY2VvZiBQZCYmKGM9Yy5nZXRWYWx1ZSgpKTtkIGluc3RhbmNlb2YgUGQmJihkPWQuZ2V0VmFsdWUoKSk7cmV0dXJuIGM9PT1kfWZ1bmN0aW9uIERlKGEsYil7cmV0dXJuIUNlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIEVlKGEsYixjKXt2YXIgZD1bXTt0aGlzLmV2YWx1YXRlKGEpP2Q9dGhpcy5ldmFsdWF0ZShiKTpjJiYoZD10aGlzLmV2YWx1YXRlKGMpKTt2YXIgZT1lYih0aGlzLlQsZCk7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlfXZhciB5ZT0hMTsKZnVuY3Rpb24gRmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEdlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk8PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gSGUoKXtmb3IodmFyIGE9bmV3IEdkLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSk7YS5wdXNoKGMpfXJldHVybiBhfWZ1bmN0aW9uIEllKCl7Zm9yKHZhciBhPW5ldyBrYixiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKSksZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLnNldChjLGQpfXJldHVybiBhfWZ1bmN0aW9uIEplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkldGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gS2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSp0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIExlKGEpe3JldHVybi10aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE1lKGEpe3JldHVybiF0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE5lKGEsYil7cmV0dXJuIWtlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIE9lKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gUGUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBRZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSk7dGhpcy5ldmFsdWF0ZShiKTtyZXR1cm4gY31mdW5jdGlvbiBSZShhKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBTZSgpe3JldHVybiBPYS5hcHBseSgwLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVGUoYSl7cmV0dXJuIG5ldyBUYSgicmV0dXJuIix0aGlzLmV2YWx1YXRlKGEpKX0KZnVuY3Rpb24gVWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCBzZXQgcHJvcGVydHkgIitlKyIgb2YgIitkKyIuIikpOyhkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIGtiKSYmZC5zZXQoU3RyaW5nKGUpLGYpO3JldHVybiBmfWZ1bmN0aW9uIFZlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSktdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gV2UoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighQXJyYXkuaXNBcnJheShlKXx8IUFycmF5LmlzQXJyYXkoZikpdGhyb3cgRXJyb3IoIkVycm9yOiBNYWxmb3JtZWQgc3dpdGNoIGluc3RydWN0aW9uLiIpO2Zvcih2YXIgZyxoPSExLGw9MDtsPGUubGVuZ3RoO2wrKylpZihofHxkPT09dGhpcy5ldmFsdWF0ZShlW2xdKSlpZihnPXRoaXMuZXZhbHVhdGUoZltsXSksZyBpbnN0YW5jZW9mIFRhKXt2YXIgbj1nLnR5cGU7aWYobj09PSJicmVhayIpcmV0dXJuO2lmKG49PT0icmV0dXJuInx8bj09PSJjb250aW51ZSIpcmV0dXJuIGd9ZWxzZSBoPSEwO2lmKGYubGVuZ3RoPT09ZS5sZW5ndGgrMSYmKGc9dGhpcy5ldmFsdWF0ZShmW2YubGVuZ3RoLTFdKSxnIGluc3RhbmNlb2YgVGEmJihnLnR5cGU9PT0icmV0dXJuInx8Zy50eXBlPT09ImNvbnRpbnVlIikpKXJldHVybiBnfQpmdW5jdGlvbiBYZShhLGIsYyl7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk/dGhpcy5ldmFsdWF0ZShiKTp0aGlzLmV2YWx1YXRlKGMpfWZ1bmN0aW9uIFllKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSk7cmV0dXJuIGIgaW5zdGFuY2VvZiBLZD8iZnVuY3Rpb24iOnR5cGVvZiBifWZ1bmN0aW9uIFplKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl7dmFyIGM9YXJndW1lbnRzW2JdO3R5cGVvZiBjIT09InN0cmluZyJ8fGEuYWRkKGMsdm9pZCAwKX19CmZ1bmN0aW9uICRlKGEsYixjLGQpe3ZhciBlPXRoaXMuZXZhbHVhdGUoZCk7aWYodGhpcy5ldmFsdWF0ZShjKSl7dmFyIGY9ZWIodGhpcy5ULGUpO2lmKGYgaW5zdGFuY2VvZiBUYSl7aWYoZi50eXBlPT09ImJyZWFrIilyZXR1cm47aWYoZi50eXBlPT09InJldHVybiIpcmV0dXJuIGZ9fWZvcig7dGhpcy5ldmFsdWF0ZShhKTspe3ZhciBnPWViKHRoaXMuVCxlKTtpZihnIGluc3RhbmNlb2YgVGEpe2lmKGcudHlwZT09PSJicmVhayIpYnJlYWs7aWYoZy50eXBlPT09InJldHVybiIpcmV0dXJuIGd9dGhpcy5ldmFsdWF0ZShiKX19ZnVuY3Rpb24gYWYoYSl7cmV0dXJufk51bWJlcih0aGlzLmV2YWx1YXRlKGEpKX1mdW5jdGlvbiBiZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk8PE51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBjZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX0KZnVuY3Rpb24gZGYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPj4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGVmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKSZOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZmYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpXk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBnZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSl8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGhmKCl7fQpmdW5jdGlvbiBrZihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfWNhdGNoKGgpe2lmKCEoaCBpbnN0YW5jZW9mIGJiJiZoLlNuKSl0aHJvdyBoO3ZhciBlPXRoaXMuVC53YigpO2EhPT0iIiYmKGggaW5zdGFuY2VvZiBiYiYmKGg9aC52byksZS5hZGQoYSxuZXcgUGQoaCkpKTt2YXIgZj10aGlzLmV2YWx1YXRlKGMpLGc9ZWIoZSxmKTtpZihnIGluc3RhbmNlb2YgVGEpcmV0dXJuIGd9fWZ1bmN0aW9uIGxmKGEsYil7dmFyIGMsZDt0cnl7ZD10aGlzLmV2YWx1YXRlKGEpfWNhdGNoKGYpe2lmKCEoZiBpbnN0YW5jZW9mIGJiJiZmLlNuKSl0aHJvdyBmO2M9Zn12YXIgZT10aGlzLmV2YWx1YXRlKGIpO2lmKGUgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZTtpZihjKXRocm93IGM7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfTt2YXIgbmY9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGdiO21mKHRoaXMpfTtuZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ILnJrKGEpfTt2YXIgbWY9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYyxkKXt2YXIgZT1uZXcgTGQoU3RyaW5nKGMpLGQpO2UuWmEoKTt2YXIgZj1TdHJpbmcoYyk7YS5ILkguc2V0KGYsZSk7ZGIuc2V0KGYsZSl9O2IoIm1hcCIsSWUpO2IoImFuZCIsdGQpO2IoImNvbnRhaW5zIix3ZCk7YigiZXF1YWxzIix1ZCk7Yigib3IiLHZkKTtiKCJzdGFydHNXaXRoIix4ZCk7YigidmFyaWFibGUiLHlkKX07bmYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07dmFyIHBmPWZ1bmN0aW9uKCl7dGhpcy5LPSExO3RoaXMuSD1uZXcgZ2I7b2YodGhpcyk7dGhpcy5LPSEwfTtwZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gcWYodGhpcy5ILnJrKGEpKX07dmFyIHJmPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gcWYoYS5ILkpxKGIsYykpfTtwZi5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07CnZhciBvZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPVN0cmluZyhjKSxmPW5ldyBMZChlLGQpO2YuWmEoKTthLkguSC5zZXQoZSxmKTtkYi5zZXQoZSxmKX07YigwLFpkKTtiKDEsJGQpO2IoMixhZSk7YigzLGJlKTtiKDU2LGVmKTtiKDU3LGJmKTtiKDU4LGFmKTtiKDU5LGdmKTtiKDYwLGNmKTtiKDYxLGRmKTtiKDYyLGZmKTtiKDUzLGNlKTtiKDQsZGUpO2IoNSxlZSk7Yig2OCxrZik7Yig1MixmZSk7Yig2LGdlKTtiKDQ5LGhlKTtiKDcsSGUpO2IoOCxJZSk7Yig5LGVlKTtiKDUwLGllKTtiKDEwLGplKTtiKDEyLGtlKTtiKDEzLGxlKTtiKDY3LGxmKTtiKDUxLHdlKTtiKDQ3LG9lKTtiKDU0LHBlKTtiKDU1LHFlKTtiKDYzLHZlKTtiKDY0LHJlKTtiKDY1LHRlKTtiKDY2LHVlKTtiKDE1LHhlKTtiKDE2LHplKTtiKDE3LHplKTtiKDE4LEFlKTtiKDE5LEJlKTtiKDIwLENlKTtiKDIxLERlKTtiKDIyLEVlKTtiKDIzLEZlKTtiKDI0LEdlKTtiKDI1LEplKTtiKDI2LApLZSk7YigyNyxMZSk7YigyOCxNZSk7YigyOSxOZSk7Yig0NSxPZSk7YigzMCxQZSk7YigzMixRZSk7YigzMyxRZSk7YigzNCxSZSk7YigzNSxSZSk7Yig0NixTZSk7YigzNixUZSk7Yig0MyxVZSk7YigzNyxWZSk7YigzOCxXZSk7YigzOSxYZSk7Yig0MCxZZSk7Yig0NCxoZik7Yig0MSxaZSk7Yig0MiwkZSl9O3BmLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguamUoKX07cGYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07cGYucHJvdG90eXBlLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07CmZ1bmN0aW9uIHFmKGEpe2lmKGEgaW5zdGFuY2VvZiBUYXx8YSBpbnN0YW5jZW9mIEtkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgUGR8fGE9PT1udWxsfHxhPT09dm9pZCAwfHx0eXBlb2YgYT09PSJzdHJpbmcifHx0eXBlb2YgYT09PSJudW1iZXIifHx0eXBlb2YgYT09PSJib29sZWFuIilyZXR1cm4gYX07dmFyIHNmPWZ1bmN0aW9uKGEpe3RoaXMubWVzc2FnZT1hfTtmdW5jdGlvbiB0ZihhKXthLnF2PSEwO3JldHVybiBhfTt2YXIgdWY9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KSx2Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn0pLHdmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn0pO2Z1bmN0aW9uIHhmKGEpe3ZhciBiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlthXTtyZXR1cm4gYj09PXZvaWQgMD9uZXcgc2YoIlZhbHVlICIrYSsiIGNhbiBub3QgYmUgZW5jb2RlZCBpbiB3ZWItc2FmZSBiYXNlNjQgZGljdGlvbmFyeS4iKTpifTtmdW5jdGlvbiB5ZihhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiIxIjtjYXNlIDI6Y2FzZSA0OnJldHVybiIwIjtkZWZhdWx0OnJldHVybiItIn19O3ZhciB6Zj0vXlsxLTlhLXpBLVpfLV1bMS05YS1jXVsxLTlhLXZdXGQkLztmdW5jdGlvbiBBZihhLGIpe2Zvcih2YXIgYz0iIixkPSEwO2E+Nzspe3ZhciBlPWEmMzE7YT4+PTU7ZD9kPSExOmV8PTMyO2M9IiIreGYoZSkrY31hPDw9MjtkfHwoYXw9MzIpO3JldHVybiBjPSIiK3hmKGF8YikrY31mdW5jdGlvbiBCZihhLGIpe3JldHVybiBiPT09dm9pZCAwfHxiPT09MD8iIjoiIitBZihhLDEpK3hmKGIpfQpmdW5jdGlvbiBDZihhLGIpe3ZhciBjO3ZhciBkPWEuaGksZT1hLmJrO2Q9PT12b2lkIDA/Yz0iIjooZXx8KGU9MCksYz0iIitBZigxLDEpK3hmKGQ8PDJ8ZSkpO3ZhciBmPSI0IitjK0JmKDIsYS5xciksZyxoPWEuSW87Zz1oJiZ6Zi50ZXN0KGgpPyIiK0FmKDMsMikraDoiIjt2YXIgbDt2YXIgbj1hLmN0aWQ7aWYobiYmYil7dmFyIHA9QWYoNSwzKSxxPW4uc3BsaXQoIi0iKSxyPXFbMF0udG9VcHBlckNhc2UoKTtpZihyIT09IkdUTSImJnIhPT0iT1BUIilsPSIiO2Vsc2V7dmFyIHQ9cVsxXTtsPSIiK3AreGYoMSt0Lmxlbmd0aCkrKGEuTHN8fDApK3R9fWVsc2UgbD0iIjt2YXIgdT1hLmNhbm9uaWNhbElkLHY9YS5tYyx4PWEuenYseT1mK2crQmYoNCxhLkRvKStsK0JmKDYsYS5EdCkrKHU/IiIrQWYoNywzKSt4Zih1Lmxlbmd0aCkrdToiIikrKHY/IiIrQWYoOCwzKSt4Zih2Lmxlbmd0aCkrdjoiIikrKHg/IiIrQWYoOSwzKSt4Zih4Lmxlbmd0aCkreDoiIiksejt2YXIgQz1hLnpyO0M9CkM9PT12b2lkIDA/e306Qztmb3IodmFyIEQ9W10sST1tKE9iamVjdC5rZXlzKEMpKSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7dmFyIE49Ry52YWx1ZTtEW051bWJlcihOKV09Q1tOXX1pZihELmxlbmd0aCl7dmFyIFM9QWYoMTAsMyksVztpZihELmxlbmd0aD09PTApVz14ZigwKTtlbHNle2Zvcih2YXIgZWE9W10samE9MCxmYT0hMSxzYT0wO3NhPEQubGVuZ3RoO3NhKyspe2ZhPSEwO3ZhciBkYT1zYSU2O0Rbc2FdJiYoamF8PTE8PGRhKTtkYT09PTUmJihlYS5wdXNoKHhmKGphKSksamE9MCxmYT0hMSl9ZmEmJmVhLnB1c2goeGYoamEpKTtXPWVhLmpvaW4oIiIpfXZhciBtYT1XO3o9IiIrUyt4ZihtYS5sZW5ndGgpK21hfWVsc2Ugej0iIjt2YXIgUGE9YS5VcyxGYT1hLm50O3JldHVybiB5K3orKFBhPyIiK0FmKDExLDMpK3hmKFBhLmxlbmd0aCkrUGE6IiIpKyhGYT8iIitBZigxMywzKSt4ZihGYS5sZW5ndGgpK0ZhOiIiKStCZigxNCxhLkV0KStCZigxNSxhLnJ2KStCZigxNiwKYS5Bdil9O2Z1bmN0aW9uIERmKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZTwxMjg/YltjKytdPWU6KGU8MjA0OD9iW2MrK109ZT4+NnwxOTI6KChlJjY0NTEyKT09NTUyOTYmJmQrMTxhLmxlbmd0aCYmKGEuY2hhckNvZGVBdChkKzEpJjY0NTEyKT09NTYzMjA/KGU9NjU1MzYrKChlJjEwMjMpPDwxMCkrKGEuY2hhckNvZGVBdCgrK2QpJjEwMjMpLGJbYysrXT1lPj4xOHwyNDAsYltjKytdPWU+PjEyJjYzfDEyOCk6YltjKytdPWU+PjEyfDIyNCxiW2MrK109ZT4+NiY2M3wxMjgpLGJbYysrXT1lJjYzfDEyOCl9cmV0dXJuIGJ9O2Z1bmN0aW9uIEVmKGEsYil7Zm9yKHZhciBjPXFiKGIpLGQ9bmV3IFVpbnQ4QXJyYXkoYy5sZW5ndGgpLGU9MDtlPGMubGVuZ3RoO2UrKylkW2VdPWMuY2hhckNvZGVBdChlKTtpZihkLmxlbmd0aCE9PTMyKXRocm93IEVycm9yKCJLZXkgaXMgbm90IDMyIGJ5dGVzLiIpO3JldHVybiBGZihhLGQpfWZ1bmN0aW9uIEZmKGEsYil7aWYoYT09PSIiKXJldHVybiIiO3ZhciBjPVpiKGEpLGQ9Yi5zbGljZSgtMiksZT1bXS5jb25jYXQodyhkKSx3KGMpKS5tYXAoZnVuY3Rpb24oZyxoKXtyZXR1cm4gZ15iW2glYi5sZW5ndGhdfSksZj1uZXcgVWludDhBcnJheShbXS5jb25jYXQodyhlKSx3KGQpKSk7cmV0dXJuIHBiKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZikpKS5yZXBsYWNlKC9cLiskLywiIil9O3ZhciBHZj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7cmV0dXJue3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fX1yZXR1cm57Y3A6YSgiY29uc2VudCIpLFprOmEoImNvbnZlcnRfY2FzZV90byIpLGFsOmEoImNvbnZlcnRfZmFsc2VfdG8iKSxibDphKCJjb252ZXJ0X251bGxfdG8iKSxlcDphKCJjb252ZXJ0X3RvX2Jvb2xlYW4iKSxhaDphKCJjb252ZXJ0X3RvX251bWJlciIpLGZsOmEoImNvbnZlcnRfdHJ1ZV90byIpLGlsOmEoImNvbnZlcnRfdW5kZWZpbmVkX3RvIiksWXQ6YSgiZGVidWdfbW9kZV9tZXRhZGF0YSIpLFliOmEoImZ1bmN0aW9uIiksUm06YSgiaW5zdGFuY2VfbmFtZSIpLE5xOmEoImxpdmVfb25seSIpLE9xOmEoIm1hbHdhcmVfZGlzYWJsZWQiKSxNRVRBREFUQTphKCJtZXRhZGF0YSIpLFJxOmEoIm9yaWdpbmFsX2FjdGl2aXR5X2lkIiksVHU6YSgib3JpZ2luYWxfdmVuZG9yX3RlbXBsYXRlX2lkIiksU3U6YSgib25jZV9vbl9sb2FkIiksUXE6YSgib25jZV9wZXJfZXZlbnQiKSwKa246YSgib25jZV9wZXJfbG9hZCIpLFZ1OmEoInByaW9yaXR5X292ZXJyaWRlIiksWXU6YSgicmVzcGVjdGVkX2NvbnNlbnRfdHlwZXMiKSx0bjphKCJzZXR1cF90YWdzIikseWo6YSgidGFnX2lkIiksRG46YSgidGVhcmRvd25fdGFncyIpLHBsOmEoImRpc2FibGVkX2luX2dvb2dsZV9tb2RlIiksRnE6YSgiZ2VuZXJhdGVkX3RhZ2dpbmdfbWV0YWRhdGEiKX19KCk7ZnVuY3Rpb24gSGYoYSxiKXt2YXIgYz17fTtjW0dmLlliXT0iX18iK2E7Zm9yKHZhciBkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbInZ0cF8iK2RdPWJbZF0pO3JldHVybiBjfTtmdW5jdGlvbiBJZihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpPyEhZGF0YS5ibG9iW2FdOmJ9ZnVuY3Rpb24gRShhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYyxkO3JldHVybigoYz1kYXRhKT09bnVsbD8wOihkPWMuYmxvYik9PW51bGw/MDpkLmhhc093blByb3BlcnR5KGEpKT9TdHJpbmcoZGF0YS5ibG9iW2FdKTpifWZ1bmN0aW9uIEpmKGEpe3ZhciBiLGM7cmV0dXJuKChiPWRhdGEpPT1udWxsPzA6KGM9Yi5ibG9iKT09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihkYXRhLmJsb2JbYV0pOjB9ZnVuY3Rpb24gS2YoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP1tdOmI7dmFyIGMsZCxlPShjPWRhdGEpPT1udWxsP3ZvaWQgMDooZD1jLmJsb2IpPT1udWxsP3ZvaWQgMDpkW2FdO3JldHVybiBBcnJheS5pc0FycmF5KGUpP2U6Yn0KZnVuY3Rpb24gTGYoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyIiOmI7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhjW2FdKTpifWZ1bmN0aW9uIE5mKGEsYil7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihjW2FdKTpifWZ1bmN0aW9uIE1mKGEpe3ZhciBiLGM7cmV0dXJuKGI9ZGF0YSk9PW51bGw/dm9pZCAwOihjPWIuYmxvYik9PW51bGw/dm9pZCAwOmNbYV19O3ZhciBPZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1FcnJvci5jYWxsKHRoaXMsYyk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy5wZXJtaXNzaW9uSWQ9YTt0aGlzLnBhcmFtZXRlcnM9Yjt0aGlzLm5hbWU9IlBlcm1pc3Npb25FcnJvciJ9O3dhKE9mLEVycm9yKTtPZi5wcm90b3R5cGUuZ2V0TWVzc2FnZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2V9O2Z1bmN0aW9uIFBmKGEsYil7aWYoQXJyYXkuaXNBcnJheShhKSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImNvbnRleHQiLHt2YWx1ZTp7bGluZTpiWzBdfX0pO2Zvcih2YXIgYz0xO2M8YS5sZW5ndGg7YysrKVBmKGFbY10sYltjXSl9fTtmdW5jdGlvbiBRZigpe3JldHVybiBmdW5jdGlvbihhLGIpe3ZhciBjO3ZhciBkPVJmO2EgaW5zdGFuY2VvZiBiYj8oYS5IPWQsYz1hKTpjPW5ldyBiYihhLGQpO3ZhciBlPWM7YiYmZS5LLnB1c2goYik7dGhyb3cgZTt9fWZ1bmN0aW9uIFJmKGEpe2lmKCFhLmxlbmd0aClyZXR1cm4gYTthLnB1c2goe2lkOiJtYWluIixsaW5lOjB9KTtmb3IodmFyIGI9YS5sZW5ndGgtMTtiPjA7Yi0tKUFiKGFbYl0uaWQpJiZhLnNwbGljZShiKyssMSk7Zm9yKHZhciBjPWEubGVuZ3RoLTE7Yz4wO2MtLSlhW2NdLmxpbmU9YVtjLTFdLmxpbmU7YS5zcGxpY2UoMCwxKTtyZXR1cm4gYX07dmFyIFNmPVJlZ0V4cCgiW14wLTlcXC4rLV0iLCJnIiksVGY9UmVnRXhwKCJbXjAtOVxcLCstXSIsImciKSxVZj1SZWdFeHAoIlteMC05Ky1dIiwiZyIpOwpmdW5jdGlvbiBWZihhLGIpe2lmKHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuIGE7dmFyIGM9U3RyaW5nKGEpLGQ7aWYoYj09PSJBVVRPTUFUSUMiKXt2YXIgZT0oYy5tYXRjaCgvXC4vZyl8fFtdKS5sZW5ndGgsZj0oYy5tYXRjaCgvLC9nKXx8W10pLmxlbmd0aCxnPSJOT05FIjtpZihlPjAmJmY+MCl7dmFyIGg9Yy5sYXN0SW5kZXhPZigiLiIpPmMubGFzdEluZGV4T2YoIiwiKTtoJiZlPT09MT9nPSJQRVJJT0QiOmh8fGYhPT0xfHwoZz0iQ09NTUEiKX1lbHNlIGU9PT0xP2c9KGMuc3BsaXQoIi4iKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJQRVJJT0QiOiJOT05FIjpmPT09MSYmKGc9KGMuc3BsaXQoIiwiKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJDT01NQSI6Ik5PTkUiKTtkPWd9ZWxzZSBkPWI9PT0iQ09NTUEiPyJDT01NQSI6IlBFUklPRCI7dmFyIGwsbjtkPT09IlBFUklPRCI/KGw9Ii4iLG49U2YpOmQ9PT0iQ09NTUEiPyhsPSIsIiwKbj1UZik6KGw9IiIsbj1VZik7dmFyIHA9Yy5yZXBsYWNlKG4sIiIpO2lmKGwhPT0iIiYmcC5zcGxpdChsKS5sZW5ndGg+MilyZXR1cm4gYTt2YXIgcT1wLnJlcGxhY2UoLywvZywiLiIpO2lmKHE9PT0iIilyZXR1cm4gYTt2YXIgcj1OdW1iZXIocSk7cmV0dXJuIGlzTmFOKHIpP2E6cn07dmFyIFdmPVtdLFhmPXt9O2Z1bmN0aW9uIFlmKGEpe3JldHVybiBXZlthXT09PXZvaWQgMD8hMTpXZlthXX07dmFyIFpmPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fSwkZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7KGQ9YS5IKVtiXSE9bnVsbHx8KGRbYl09W10pO2EuSFtiXS5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGMuYXBwbHkobnVsbCx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfSl9O2Z1bmN0aW9uIGFnKGEsYixjLGQpe2lmKGEpZm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBmPXZvaWQgMCxnPSJBIHBvbGljeSBmdW5jdGlvbiBkZW5pZWQgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCI7dHJ5e2Y9YVtlXShiLGMsZCksZys9Ii4ifWNhdGNoKGgpe2c9dHlwZW9mIGg9PT0ic3RyaW5nIj9nKygiOiAiK2gpOmggaW5zdGFuY2VvZiBFcnJvcj9nKygiOiAiK2gubWVzc2FnZSk6ZysiLiJ9aWYoIWYpdGhyb3cgbmV3IE9mKGMsZCxnKTt9fQpmdW5jdGlvbiBiZyhhLGIpe3ZhciBjPWNnKGRnLkgsYixmdW5jdGlvbigpe3JldHVybnt9fSk7dHJ5e3JldHVybiBjKGEpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBjZyhhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe2lmKGQpe3ZhciBlPWEuSFtkXSxmPWEuSC5hbGw7aWYoZXx8Zil7dmFyIGc9Yy5hcHBseSh2b2lkIDAsW2RdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKTthZyhlLGIsZCxnKTthZyhmLGIsZCxnKX19fX07dmFyIGdnPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSz17fTt0aGlzLkg9bmV3IFpmO3ZhciBlPXt9LGY9e30sZz1jZyh0aGlzLkgsYSxmdW5jdGlvbihoKXtyZXR1cm4gaCYmZVtoXT9lW2hdLmFwcGx5KHZvaWQgMCxbaF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpOnt9fSk7R2IoYixmdW5jdGlvbihoLGwpe2Z1bmN0aW9uIG4ocSl7dmFyIHI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKCFwW3FdKXRocm93IGVnKHEse30sIlRoZSByZXF1ZXN0ZWQgYWRkaXRpb25hbCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO2cuYXBwbHkobnVsbCxbcV0uY29uY2F0KHcocikpKX12YXIgcD17fTtHYihsLGZ1bmN0aW9uKHEscil7dmFyIHQ9ZmcocSxyLGMpO3BbcV09dC5hc3NlcnQ7ZVtxXXx8KGVbcV09dC5hYSk7dC5PbiYmIWZbcV0mJihmW3FdPXQuT24pfSk7ZC5LW2hdPWZ1bmN0aW9uKHEscil7dmFyIHQ9cFtxXTtpZighdCl0aHJvdyBlZyhxLAp7fSwiVGhlIHJlcXVlc3RlZCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO3ZhciB1PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTt0LmFwcGx5KHZvaWQgMCx1KTtnLmFwcGx5KHZvaWQgMCx1KTt2YXIgdj1mW3FdO3YmJnYuYXBwbHkobnVsbCxbbl0uY29uY2F0KHcodS5zbGljZSgxKSkpKX19KX0saGc9ZnVuY3Rpb24oYSl7cmV0dXJuIGRnLktbYV18fGZ1bmN0aW9uKCl7fX07CmZ1bmN0aW9uIGZnKGEsYixjKXt0cnl7dmFyIGQ9Y1siX18iK2FdO2lmKCFkKXRocm93IEVycm9yKCJObyBmdW5jdGlvbiBmb3VuZCBmb3IgcGVybWlzc2lvbjogIithKyIuIik7dmFyIGU9SGYoYSxiKTtlLnZ0cF9wZXJtaXNzaW9uTmFtZT1hO2UudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcj1lZztkZWxldGUgZVtHZi5ZYl07cmV0dXJuIGQoZSl9Y2F0Y2goZil7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihnKXt0aHJvdyBuZXcgT2YoZyx7fSwiUGVybWlzc2lvbiAiK2crIiBpcyB1bmtub3duLiIpO30sYWE6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgT2YoYSx7fSwiUGVybWlzc2lvbiAiK2ErIiBpcyB1bmtub3duLiIpO319fX1mdW5jdGlvbiBlZyhhLGIsYyl7cmV0dXJuIG5ldyBPZihhLGIsYyl9O3ZhciBpZz1FKDUpLGpnPUUoMjApLGtnPUUoMSksbGc9ITE7dmFyIG1nPXt9O21nLlBvPUlmKDI5KTttZy5Lcj1JZigyOCk7ZnVuY3Rpb24gbmcoYSl7dmFyIGI9MSxjLGQsZTtpZihhKWZvcihiPTAsZD1hLmxlbmd0aC0xO2Q+PTA7ZC0tKWU9YS5jaGFyQ29kZUF0KGQpLGI9KGI8PDYmMjY4NDM1NDU1KStlKyhlPDwxNCksYz1iJjI2NjMzODMwNCxiPWMhPT0wP2JeYz4+MjE6YjtyZXR1cm4gYn07dmFyIG9nPWZ1bmN0aW9uKGEpe3RoaXMuY2FjaGU9YX07b2cucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXt2YXIgYj1uZyhhKSxjPXRoaXMuY2FjaGUuZ2V0KGIpO2lmKCFjKXJldHVybntwcm9taXNlOnZvaWQgMCxLajowfTtpZihEYXRlLm5vdygpPj1jLnRpbWVzdGFtcCs5RTUpcmV0dXJuIHRoaXMuY2FjaGUuZGVsZXRlKGIpLHtwcm9taXNlOnZvaWQgMCxLajozfTt2YXIgZD1jLnJlc29sdmVkVmFsdWU/MjoxO3JldHVybntwcm9taXNlOmMucmVzb2x2ZWRWYWx1ZT9Qcm9taXNlLnJlc29sdmUoYy5yZXNvbHZlZFZhbHVlKTpjLnByb21pc2UsS2o6ZH19O29nLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz17cHJvbWlzZTpiLHJlc29sdmVkVmFsdWU6dm9pZCAwLHRpbWVzdGFtcDpEYXRlLm5vdygpfTt0aGlzLmNhY2hlLnNldChuZyhhKSxjKTtiLnRoZW4oZnVuY3Rpb24oZCl7Yy5yZXNvbHZlZFZhbHVlPWR9KX07ZnVuY3Rpb24gcGcoYSl7c3dpdGNoKGEpe2Nhc2UgMDpicmVhaztjYXNlIDk6cmV0dXJuImU0IjtjYXNlIDY6cmV0dXJuImU1IjtjYXNlIDE0OnJldHVybiJlNiI7ZGVmYXVsdDpyZXR1cm4iZTcifX07dmFyIEY9e0Q6e1hhOiJhZF9wZXJzb25hbGl6YXRpb24iLGthOiJhZF9zdG9yYWdlIixtYToiYWRfdXNlcl9kYXRhIixyYToiYW5hbHl0aWNzX3N0b3JhZ2UiLG5jOiJyZWdpb24iLHNhOiJjb25zZW50X3VwZGF0ZWQiLFlnOiJ3YWl0X2Zvcl91cGRhdGUiLGVoOiJlbmRwb2ludF90eXBlIixxcDoiYXBwX3JlbW92ZSIscnA6ImFwcF9zdG9yZV9yZWZ1bmQiLHRwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NhbmNlbCIsdXA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY29udmVydCIsdnA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fcmVuZXciLHdwOiJjb25zZW50X3VwZGF0ZSIseHA6ImNvbnZlcnNpb24iLHZsOiJhZGRfcGF5bWVudF9pbmZvIix3bDoiYWRkX3NoaXBwaW5nX2luZm8iLHhlOiJhZGRfdG9fY2FydCIseWU6InJlbW92ZV9mcm9tX2NhcnQiLHhsOiJ2aWV3X2NhcnQiLEFkOiJiZWdpbl9jaGVja291dCIsZXU6ImdlbmVyYXRlX2xlYWQiLHplOiJzZWxlY3RfaXRlbSIsb2M6InZpZXdfaXRlbV9saXN0IiwKUWM6InNlbGVjdF9wcm9tb3Rpb24iLHFjOiJ2aWV3X3Byb21vdGlvbiIsSWI6InB1cmNoYXNlIixBZToicmVmdW5kIixyYzoidmlld19pdGVtIix5bDoiYWRkX3RvX3dpc2hsaXN0Iix5cDoiZXhjZXB0aW9uIix6cDoiZmlyc3Rfb3BlbiIsQXA6ImZpcnN0X3Zpc2l0Iix3YToiZ3RhZy5jb25maWciLEpiOiJndGFnLmdldCIsQnA6ImluX2FwcF9wdXJjaGFzZSIsc2M6InBhZ2VfdmlldyIsQ3A6InNjcmVlbl92aWV3IixEcDoic2Vzc2lvbl9zdGFydCIsRXA6InNvdXJjZV91cGRhdGUiLEZwOiJ0aW1pbmdfY29tcGxldGUiLEdwOiJ0cmFja19zb2NpYWwiLHlmOiJ1c2VyX2VuZ2FnZW1lbnQiLEhwOiJ1c2VyX2lkX3VwZGF0ZSIsZmg6ImJyYWlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLGdoOiJicmFpZF9zdG9yYWdlX3NvdXJjZSIsQmQ6ImdjbGlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLENkOiJnY2xpZF9zdG9yYWdlX3NvdXJjZSIsU2I6ImdjbGdiIixsYjoiZ2NsaWQiLHpsOiJnY2xpZF9sZW4iLApCZToiZ2NsZ3MiLENlOiJnY2xscCIsRGU6ImdjbHN0IixtYjoiYWRzX2RhdGFfcmVkYWN0aW9uIix6ZjoiZ2FkX3NvdXJjZSIsQWY6ImdhZF9zb3VyY2Vfc3JjIixEZDoiZ2NsaWRfdXJsIixBbDoiZ2Nsc3JjIixCZjoiZ2JyYWlkIixFZToid2JyYWlkIixSYzoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiLHJpOiJhbGxvd19jdXN0b21fc2NyaXB0cyIsaGg6ImFsbG93X2Rpc3BsYXlfZmVhdHVyZXMiLHNpOiJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyIsU2M6ImFsbG93X2dvb2dsZV9zaWduYWxzIix1aToiYWxsb3dfaW50ZXJlc3RfZ3JvdXBzIixJcDoiYXBwX2lkIixKcDoiYXBwX2luc3RhbGxlcl9pZCIsS3A6ImFwcF9uYW1lIixMcDoiYXBwX3ZlcnNpb24iLEVkOiJhdWlkIixmdToiYXV0b19kZXRlY3Rpb25fZW5hYmxlZCIsQmw6ImF1dG9fZXZlbnQiLENsOiJhd19yZW1hcmtldGluZyIsaWg6ImF3X3JlbWFya2V0aW5nX29ubHkiLENmOiJkaXNjb3VudCIsRGY6ImF3X2ZlZWRfY291bnRyeSIsCkVmOiJhd19mZWVkX2xhbmd1YWdlIixIYToiaXRlbXMiLEZmOiJhd19tZXJjaGFudF9pZCIsd2k6ImF3X2Jhc2tldF90eXBlIixHZjoiY2FtcGFpZ25fY29udGVudCIsSGY6ImNhbXBhaWduX2lkIixJZjoiY2FtcGFpZ25fbWVkaXVtIixKZjoiY2FtcGFpZ25fbmFtZSIsS2Y6ImNhbXBhaWduIixMZjoiY2FtcGFpZ25fc291cmNlIixNZjoiY2FtcGFpZ25fdGVybSIsS2I6ImNsaWVudF9pZCIsRGw6InJuZCIseGk6ImNvbnNlbnRfdXBkYXRlX3R5cGUiLE1wOiJjb250ZW50X2dyb3VwIixOcDoiY29udGVudF90eXBlIixGZDoiY29udmVyc2lvbl9jb29raWVfcHJlZml4Iix5aToiY29udmVyc2lvbl9pZCIsdWM6ImNvbnZlcnNpb25fbGlua2VyIixIZDoiY29udmVyc2lvbl9saW5rZXJfZGlzYWJsZWQiLEZlOiJjb252ZXJzaW9uX2FwaSIsemk6Il8mcmNiIixqaDoiY29va2llX2RlcHJlY2F0aW9uIixMYjoiY29va2llX2RvbWFpbiIsQ2I6ImNvb2tpZV9leHBpcmVzIixUYjoiY29va2llX2ZsYWdzIiwKSWQ6ImNvb2tpZV9uYW1lIix2YzoiY29va2llX3BhdGgiLG5iOiJjb29raWVfcHJlZml4IixKZDoiY29va2llX3VwZGF0ZSIsVGM6ImNvdW50cnkiLGViOiJjdXJyZW5jeSIsR2U6ImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIixraDoiY3VzdG9tZXJfdHlwZSIsSGU6ImN1c3RvbV9tYXAiLEFpOiJnY2xkY19saW5rX2RlY29yYXRpb25fc291cmNlIixCaToiZ2NsZGNfc3RvcmFnZV9zb3VyY2UiLE5mOiJnY2xkYyIsS2Q6ImRjbGlkIixFbDoiZGVidWdfbW9kZSIsT2E6ImRldmVsb3Blcl9pZCIsT3A6ImRpc2FibGVfbWVyY2hhbnRfcmVwb3J0ZWRfcHVyY2hhc2VzIixVYzoiZGNfY3VzdG9tX3BhcmFtcyIsUHA6ImRjX25hdHVyYWxfc2VhcmNoIixRcDoiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsRmw6ImFmZmlsaWF0aW9uIixtaDoiY2hlY2tvdXRfb3B0aW9uIixDaToiY2hlY2tvdXRfc3RlcCIsR2w6ImNvdXBvbiIsT2Y6Iml0ZW1fbGlzdF9uYW1lIixEaToibGlzdF9uYW1lIixScDoicHJvbW90aW9ucyIsCkxkOiJzaGlwcGluZyIsSGw6InRheCIsbmg6ImVuZ2FnZW1lbnRfdGltZV9tc2VjIixvaDoiZW5oYW5jZWRfY2xpZW50X2lkIixTcDoiZW5oYW5jZWRfY29udmVyc2lvbnMiLGd1OiJlbmhhbmNlZF9jb252ZXJzaW9uc19hdXRvbWF0aWNfc2V0dGluZ3MiLEllOiJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSIsUGY6ImV2ZW50X2NhbGxiYWNrIixUcDoiZXZlbnRfY2F0ZWdvcnkiLFZjOiJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIixNZDoiZXZlbnRfaWQiLEVpOiJfZXZlbnRfam9pbl9pZCIsVXA6ImV2ZW50X2xhYmVsIixVYjoiZXZlbnQiLElsOiJfJmFlIixGaToiZXZlbnRfc2V0dGluZ3MiLHBoOiJldmVudF90aW1lb3V0IixWcDoiZGVzY3JpcHRpb24iLFdwOiJmYXRhbCIsWHA6ImV4cGVyaW1lbnRzIixOZDoiZXh0X2NsaWVudF9pZCIsR2k6ImZpcmViYXNlX2lkIixRZjoiZmlyc3RfcGFydHlfY29sbGVjdGlvbiIsUmY6Il94XzIwIixWYjoiX3hfMTkiLFlwOiJmbGlnaHRfZXJyb3JfY29kZSIsClpwOiJmbGlnaHRfZXJyb3JfbWVzc2FnZSIsSGk6ImZsX2FjdGl2aXR5X2NhdGVnb3J5IixJaToiZmxfYWN0aXZpdHlfZ3JvdXAiLHFoOiJmbF9hZHZlcnRpc2VyX2lkIixKaToibWF0Y2hfaWQiLEpsOiJmbF9yYW5kb21fbnVtYmVyIixLbDoidHJhbiIsTGw6InUiLHJoOiJnYWNfZ2NsaWQiLEplOiJnYWNfd2JyYWlkIixNbDoiZ2FjX3dicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsYXE6ImdhX3Jlc3RyaWN0X2RvbWFpbiIsTmw6ImdhX3RlbXBfY2xpZW50X2lkIixicToiZ2FfdGVtcF9lY2lkIixLZToiZ2Rwcl9hcHBsaWVzIixzaDoiX2d0X21ldGFkYXRhIixPbDoiZ2VvX2dyYW51bGFyaXR5IixTZjoidmFsdWVfY2FsbGJhY2siLFRmOiJ2YWx1ZV9rZXkiLFRhOiJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIixMZToiX2dvb2dsZV9uZyIsY3E6Il9vbm8iLFVmOiJnb29nbGVfc2lnbmFscyIsZnE6Imdvb2dsZV90bGQiLHRoOiJncHBfc2lkIix1aDoiZ3BwX3N0cmluZyIsT2Q6Imdyb3VwcyIsClBsOiJnc2FfZXhwZXJpbWVudF9pZCIsVmY6Imd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSIsUWw6Imd0bV91cCIsTWU6ImlmcmFtZV9zdGF0ZSIsV2Y6Imlnbm9yZV9yZWZlcnJlciIsUmw6ImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsU2w6Il9pc19mcG0iLFljOiJpc19sZWdhY3lfY29udmVydGVkIixaYzoiaXNfbGVnYWN5X2xvYWRlZCIsS2k6ImlzX3Bhc3N0aHJvdWdoIixQZDoiX2xwcyIsdGI6Imxhbmd1YWdlIixMaToibGVnYWN5X2RldmVsb3Blcl9pZF9zdHJpbmciLERiOiJsaW5rZXIiLFhmOiJhY2NlcHRfaW5jb21pbmciLHdjOiJkZWNvcmF0ZV9mb3JtcyIsQWE6ImRvbWFpbnMiLGFkOiJ1cmxfcG9zaXRpb24iLFFkOiJtZXJjaGFudF9mZWVkX2xhYmVsIixSZDoibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSIsU2Q6Im1lcmNoYW50X2lkIixUbDoibWV0aG9kIixncToibmFtZSIsVWw6Im5hdmlnYXRpb25fdHlwZSIsTmU6Im5ld19jdXN0b21lciIsTWk6Im5vbl9pbnRlcmFjdGlvbiIsCmhxOiJvcHRpbWl6ZV9pZCIsVmw6InBhZ2VfaG9zdG5hbWUiLFlmOiJwYWdlX3BhdGgiLFVhOiJwYWdlX3JlZmVycmVyIixNYjoicGFnZV90aXRsZSIsaXE6InBhc3NlbmdlcnMiLFdsOiJwaG9uZV9jb252ZXJzaW9uX2NhbGxiYWNrIixqcToicGhvbmVfY29udmVyc2lvbl9jb3VudHJ5X2NvZGUiLFhsOiJwaG9uZV9jb252ZXJzaW9uX2Nzc19jbGFzcyIsa3E6InBob25lX2NvbnZlcnNpb25faWRzIixZbDoicGhvbmVfY29udmVyc2lvbl9udW1iZXIiLFpsOiJwaG9uZV9jb252ZXJzaW9uX29wdGlvbnMiLGxxOiJfcGxhdGludW1fcmVxdWVzdF9zdGF0dXMiLG1xOiJfcHJvdGVjdGVkX2F1ZGllbmNlX2VuYWJsZWQiLHdoOiJxdWFudGl0eSIseGg6InJlZGFjdF9kZXZpY2VfaW5mbyIsYW06InJlZmVycmFsX2V4Y2x1c2lvbl9kZWZpbml0aW9uIixodToiX3JlcXVlc3Rfc3RhcnRfdGltZSIsV2I6InJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIixucToicmV0b2tlbiIsb3E6InNhbXBsZV9yYXRlIiwKTmk6InNjcmVlbl9uYW1lIixiZDoic2NyZWVuX3Jlc29sdXRpb24iLGJtOiJfc2NyaXB0X3NvdXJjZSIscHE6InNlYXJjaF90ZXJtIixUZDoic2VuZF9wYWdlX3ZpZXciLFhiOiJzZW5kX3RvIixPaToic2VydmVyX2NvbnRhaW5lcl8zcF9lbnJpY2htZW50IixkZDoic2VydmVyX2NvbnRhaW5lcl91cmwiLHFxOiJzZXNzaW9uX2F0dHJpYnV0ZXNfZW5jb2RlZCIseWg6InNlc3Npb25fZHVyYXRpb24iLHpoOiJzZXNzaW9uX2VuZ2FnZWQiLFBpOiJzZXNzaW9uX2VuZ2FnZWRfdGltZSIseGM6InNlc3Npb25faWQiLEFoOiJzZXNzaW9uX251bWJlciIsWmY6Il9zaGFyZWRfdXNlcl9pZCIsVWQ6ImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIixpdToiX3RhZ19maXJpbmdfZGVsYXkiLGp1OiJfdGFnX2ZpcmluZ190aW1lIixrdToidGVtcG9yYXJ5X2NsaWVudF9pZCIsUWk6InRlc3Rvbmx5IixycToiX3RpbWV6b25lIixQZToidG9wbW9zdF91cmwiLFFlOiJ0cmFja2luZ19pZCIsUmk6InRyYWZmaWNfdHlwZSIsClBhOiJ0cmFuc2FjdGlvbl9pZCIsZG06InRyYW5zYWN0aW9uX2lkX3NvdXJjZSIseWM6InRyYW5zcG9ydF91cmwiLHNxOiJ0cmlwX3R5cGUiLFZkOiJ1cGRhdGUiLHpjOiJ1cmxfcGFzc3Rocm91Z2giLGZtOiJ1cHRncyIsY2c6Il91c2VyX2FnZW50X2FyY2hpdGVjdHVyZSIsZGc6Il91c2VyX2FnZW50X2JpdG5lc3MiLGVnOiJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCIsZmc6Il91c2VyX2FnZW50X21vYmlsZSIsZ2c6Il91c2VyX2FnZW50X21vZGVsIixoZzoiX3VzZXJfYWdlbnRfcGxhdGZvcm0iLGlnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybV92ZXJzaW9uIixqZzoiX3VzZXJfYWdlbnRfd293NjQiLEFjOiJ1c2VyX2RhdGEiLGdtOiJ1c2VyX2RhdGFfYXV0b19sYXRlbmN5IixobToidXNlcl9kYXRhX2F1dG9fbWV0YSIsaW06InVzZXJfZGF0YV9hdXRvX211bHRpIixqbToidXNlcl9kYXRhX2F1dG9fc2VsZWN0b3JzIixrbToidXNlcl9kYXRhX2F1dG9fc3RhdHVzIixCYzoidXNlcl9kYXRhX21vZGUiLApsbToidXNlcl9kYXRhX3NldHRpbmdzIixmYjoidXNlcl9pZCIsV2Q6InVzZXJfcHJvcGVydGllcyIsb206Il91c2VyX3JlZ2lvbiIsa2c6InVzX3ByaXZhY3lfc3RyaW5nIixRYToidmFsdWUiLHFtOiJ3YnJhaWRfbXVsdGlwbGVfY29udmVyc2lvbnMiLGVkOiJfZnBtX3BhcmFtZXRlcnMiLFdpOiJfaG9zdF9uYW1lIixWbToiX2luX3BhZ2VfY29tbWFuZCIsWWk6Il9pcF9vdmVycmlkZSIsWm06Il9pc19wYXNzdGhyb3VnaF9jaWQiLEpoOiJfbWVhc3VyZW1lbnRfdHlwZSIsZGU6Im5vbl9wZXJzb25hbGl6ZWRfYWRzIixvajoiX3NzdF9wYXJhbWV0ZXJzIixZcToic2d0bV9nZW9fdXNlcl9jb3VudHJ5IixHZDoiY29udmVyc2lvbl9sYWJlbCIsemE6InBhZ2VfbG9jYXRpb24iLFdjOiJfZXh0cmFjdGVkX2RhdGEiLFhjOiJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyIsT2U6InRjX3ByaXZhY3lfc3RyaW5nIn19O3ZhciBIPXtKOntTbzoiYWJvcnRfd2l0aG91dF9mYWlsIixraToiYWNjZXB0X2J5X2RlZmF1bHQiLEJrOiJhZGRfdGFnX3RpbWluZyIsRGs6ImFkc19jb25zZW50X2dyYW50ZWQiLHZkOiJhZHNfZXZlbnRfcGFnZV92aWV3Iix3ZDoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIixRdDoiYXV0b19ldmVudCIsS2s6ImJhdGNoX29uX25hdmlnYXRpb24iLFhnOiJiaXNjb3R0aV9qb2luX2lkIixQazoiY2xpZW50X2lkX3NvdXJjZSIsdWY6ImNvbnNlbnRfZXZlbnRfaWQiLHZmOiJjb25zZW50X3ByaW9yaXR5X2lkIixTdDoiY29uc2VudF9zdGF0ZSIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsd2Y6ImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiLFR0OiJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIixHYToiY29va2llX29wdGlvbnMiLG9sOiJkY19yYW5kb20iLFp0OiJkZWR1cGVfaWQiLFBjOiJlbV9ldmVudCIsYnU6ImVuZHBvaW50X2Zvcl9kZWJ1ZyIsdGw6ImVuaGFuY2VkX2NsaWVudF9pZF9zb3VyY2UiLApwcDoiZW5oYW5jZWRfbWF0Y2hfcmVzdWx0IixybToiZXVpZF9sb2dnZWRfaW5fc3RhdGUiLGxnOiJldWlkX21vZGVfZW5hYmxlZCIsdHE6ImV2ZW50X3Byb3ZlbmFuY2UiLG11OiJldmVudF9zb3VyY2UiLEViOiJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiLHdtOiJldmVudF91c2FnZSIsQ2g6ImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyIscHU6ImFkZF9wYXJhbWV0ZXIiLFVpOiJjb3VudGluZ19tZXRob2QiLERoOiJzZW5kX2FzX2lmcmFtZSIscXU6InBhcmFtZXRlcl9vcmRlciIsRWg6InBhcnNlZF90YXJnZXQiLHN1OiJmb3JtX2V2ZW50X2NhbmNlbGVkIixBcToiZ2E0X2NvbGxlY3Rpb25fc3ViZG9tYWluIixWaToiZ2E0X3JlcXVlc3RfZmxhZ3MiLE5tOiJnYnJhaWRfY29va2llX21hcmtlZCIsUW06Imd0bV9leHRyYWN0ZWRfZGF0YSIsQ2M6ImhhbmRsZV9pbnRlcm5hbGx5Iix1dToiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiLGRhOiJoaXRfdHlwZSIsRGM6ImhpdF90eXBlX292ZXJyaWRlIiwKSHE6Imlnbm9yZV9kdXBlX2NvbmZpZyIsT3U6ImlzX2NvbmZpZ19jb21tYW5kIixHaDoiaXNfY29uc2VudF91cGRhdGUiLG1nOiJpc19jb252ZXJzaW9uIixXbToiaXNfZWNvbW1lcmNlIixYbToiaXNfZWNfY21fc3BsaXQiLGFlOiJpc19leHRlcm5hbF9ldmVudCIsbmc6ImlzX2ZpcnN0X3Zpc2l0IixZbToiaXNfZmlyc3RfdmlzaXRfY29udmVyc2lvbiIsWmk6ImlzX2ZsX2ZhbGxiYWNrX2NvbnZlcnNpb25fZmxvd19hbGxvd2VkIixmZDoiaXNfZnBtX2VuY3J5cHRpb24iLGFqOiJpc19mcG1fc3BsaXQiLG9iOiJpc19nY3BfYnJvd3NlciIsYmo6ImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIixjajoiaXNfZ29vZ2xlX3NpZ25hbHNfZW5hYmxlZCIsYmU6ImlzX21lcmNoYW50X2NlbnRlciIsSGg6ImlzX25ld190b19zaXRlIixFYzoiaXNfcGVyc29uYWxpemF0aW9uIixkajoiaXNfc2VydmVyX3NpZGVfZGVzdGluYXRpb24iLFRlOiJpc19zZXNzaW9uX3N0YXJ0IixibjoiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIiwKUHU6ImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCIsUXU6ImlzX3NndG1fcHJlaGl0IixkbjoiaXNfc2d0bV9zZXJ2aWNlX3dvcmtlciIsSWg6ImlzX3NwbGl0X2NvbnZlcnNpb24iLElxOiJpc19zeW4iLEZjOiJpc190ZXN0X2V2ZW50IixvZzoiam9pbl9pZCIsZWo6ImpvaW5fZWxhcHNlZCIscGc6ImpvaW5fdGltZXJfc2VjIixnbjoibG9jYWxfc3RvcmFnZV9hd19jb252ZXJzaW9uX2NvdW50ZXJzIixXZToidHVubmVsX3VwZGF0ZWQiLFV1OiJwcmVoaXRfZm9yX3JldHJ5IixXdToicHJvbWlzZXMiLFh1OiJyZWNvcmRfYXdfbGF0ZW5jeSIsWGU6InJlZGFjdF9hZHNfZGF0YSIsWWU6InJlZGFjdF9jbGlja19pZHMiLHBuOiJyZW1hcmtldGluZ19vbmx5Iixsajoic2VuZF9jY21fcGFyYWxsZWxfcGluZyIsaGQ6InNlbmRfZG91YmxlY2xpY2tfam9pbiIsTWg6InNlbmRfZnBtX2dlb19qb2luIixOaDoic2VuZF9mcG1fZ29vZ2xlX2pvaW4iLFp1OiJzZW5kX2NjbV9wYXJhbGxlbF90ZXN0X3BpbmciLApybjoic2VuZF9nb29nbGVfbWVhc3VyZW1lbnQiLHJnOiJzZW5kX3RsZF9qb2luIixzZzoic2VuZF90b19kZXN0aW5hdGlvbnMiLG1qOiJzZW5kX3RvX3RhcmdldHMiLHNuOiJzZW5kX3VzZXJfZGF0YV9oaXQiLHBqOiJzZXJ2aWNlX3dvcmtlcl9jb250ZXh0IixOYjoic291cmNlX2Nhbm9uaWNhbF9pZCIsSmE6InNwZWN1bGF0aXZlIix5bjoic3BlY3VsYXRpdmVfaW5fbWVzc2FnZSIsQW46InN1cHByZXNzX3NjcmlwdF9sb2FkIixCbjoic3luX29yX21vZCIsemo6InRyYW5zaWVudF9lY3NpZCIsdGc6InRyYW5zbWlzc2lvbl90eXBlIixZYToidXNlcl9kYXRhIixndjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljIixodjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciIsR246InVzZXJfZGF0YV9mcm9tX2NvZGUiLGlyOiJ1c2VyX2RhdGFfZnJvbV9tYW51YWwiLGp2OiJ1c2VyX2RhdGFfbW9kZSIsdWc6InVzZXJfaWRfdXBkYXRlZCJ9fTt2YXIgSj17VTp7a3A6MSxtcDoyLEVuOjMsbm46NCxxbDo1LHJsOjYsRXE6NyxucDo4LERxOjksanA6MTAsaHA6MTEseG46MTIsdm46MTMsTms6MTQsVW86MTUsV286MTYsaG46MTcsc2w6MTgsZm46MTksbHA6MjAsUHE6MjEsYXA6MjIsVm86MjMsWG86MjQsbmw6MjUsTGs6MjYsZXI6MjcsSm06MjgsVW06MjksVG06MzAsU206MzEsTW06MzIsS206MzMsTG06MzQsR206MzUsRm06MzYsSG06MzcsSW06MzgsQnE6MzksQ3E6NDAsVXE6NDF9fTtKLlVbSi5VLmtwXT0iQ1JFQVRFX0VWRU5UX1NPVVJDRSI7Si5VW0ouVS5tcF09IkVESVRfRVZFTlQiO0ouVVtKLlUuRW5dPSJUUkFGRklDX1RZUEUiO0ouVVtKLlUubm5dPSJSRUZFUlJBTF9FWENMVVNJT04iO0ouVVtKLlUucWxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVEFHIjtKLlVbSi5VLnJsXT0iRUNPTU1FUkNFX0ZST01fR1RNX1VBX1NDSEVNQSI7Si5VW0ouVS5FcV09IkdBX1NFTkQiO0ouVVtKLlUubnBdPSJFTV9GT1JNIjsKSi5VW0ouVS5EcV09IkdBX0dBTV9MSU5LIjtKLlVbSi5VLmpwXT0iQ1JFQVRFX0VWRU5UX0FVVE9fUEFHRV9QQVRIIjtKLlVbSi5VLmhwXT0iQ1JFQVRFRF9FVkVOVCI7Si5VW0ouVS54bl09IlNJREVMT0FERUQiO0ouVVtKLlUudm5dPSJTR1RNX0xFR0FDWV9DT05GSUdVUkFUSU9OIjtKLlVbSi5VLk5rXT0iQ0NEX0VNX0VWRU5UIjtKLlVbSi5VLlVvXT0iQVVUT19SRURBQ1RfRU1BSUwiO0ouVVtKLlUuV29dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTSI7Si5VW0ouVS5obl09Ik1VTFRJUExFX1BBR0VWSUVXX0ZST01fQ09ORklHIjtKLlVbSi5VLnNsXT0iRU1fRVZFTlRfU0VOVF9CRUZPUkVfQ09ORklHIjtKLlVbSi5VLmZuXT0iTE9BREVEX1ZJQV9DU1RfT1JfU0lERUxPQURJTkciO0ouVVtKLlUubHBdPSJERUNPREVEX1BBUkFNX01BVENIIjtKLlVbSi5VLlBxXT0iTk9OX0RFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuYXBdPSJDQ0RfRVZFTlRfU0dUTSI7CkouVVtKLlUuVm9dPSJBVVRPX1JFREFDVF9FTUFJTF9TR1RNIjtKLlVbSi5VLlhvXT0iQVVUT19SRURBQ1RfUVVFUllfUEFSQU1fU0dUTSI7Si5VW0ouVS5ubF09IkRBSUxZX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuTGtdPSJCVVJTVF9MSU1JVF9SRUFDSEVEIjtKLlVbSi5VLmVyXT0iU0hBUkVEX1VTRVJfSURfU0VUX0FGVEVSX1JFUVVFU1QiO0ouVVtKLlUuSm1dPSJHQTRfTVVMVElQTEVfU0VTU0lPTl9DT09LSUVTIjtKLlVbSi5VLlVtXT0iSU5WQUxJRF9HQTRfU0VTU0lPTl9DT1VOVCI7Si5VW0ouVS5UbV09IklOVkFMSURfR0E0X0xBU1RfRVZFTlRfVElNRVNUQU1QIjtKLlVbSi5VLlNtXT0iSU5WQUxJRF9HQTRfSk9JTl9USU1FUiI7Si5VW0ouVS5NbV09IkdBNF9TVEFMRV9TRVNTSU9OX0NPT0tJRV9TRUxFQ1RFRCI7Si5VW0ouVS5LbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzFfUkVBRCI7Si5VW0ouVS5MbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzJfUkVBRCI7CkouVVtKLlUuR21dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVZBSUxBQkxFIjtKLlVbSi5VLkZtXT0iR0E0X0RMX1BBUkFNX1JFQ09WRVJZX0FQUExJRUQiO0ouVVtKLlUuSG1dPSJHQTRfR09PR0xFX01FQVNVUkVNRU5UX0FMTE9XRUQiO0ouVVtKLlUuSW1dPSJHQTRfR09PR0xFX1NJR05BTFNfRU5BQkxFRCI7Si5VW0ouVS5CcV09IkdBNF9GQUxMQkFDS19SRVFVRVNUIjtKLlVbSi5VLkNxXT0iR0FfQURTX0xJTktfQkVGT1JFX0NPTlZFUlNJT05fTUFSS0lORyI7Si5VW0ouVS5VcV09IlBMQVRJTlVNX0VMSUdJQkxFIjt2YXIgeGc9e30seWc9KHhnLnVhYT0hMCx4Zy51YWI9ITAseGcudWFmdmw9ITAseGcudWFtYj0hMCx4Zy51YW09ITAseGcudWFwPSEwLHhnLnVhcHY9ITAseGcudWF3PSEwLHhnKTsKdmFyIEVnPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWEsZT1iW2NdO2lmKCFDZy5leGVjKGUpKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSB3aWxkY2FyZCIpO3ZhciBmPWUuaW5kZXhPZigiLioiKSxnPWYhPT0tMSYmZj09PWUubGVuZ3RoLTIsaD1nP2Uuc2xpY2UoMCxlLmxlbmd0aC0yKTplLGw7YTppZihkLmxlbmd0aD09PTApbD0hMTtlbHNle2Zvcih2YXIgbj1kLnNwbGl0KCIuIikscD0wO3A8bi5sZW5ndGg7cCsrKWlmKCFEZy5leGVjKG5bcF0pKXtsPSExO2JyZWFrIGF9bD0hMH1pZighbHx8aC5sZW5ndGg+ZC5sZW5ndGh8fCFnJiZkLmxlbmd0aCE9PWUubGVuZ3RoPzA6Zz9TYihkLGgpJiYoZD09PWh8fGQuY2hhckF0KGgubGVuZ3RoKT09PSIuIik6ZD09PWgpcmV0dXJuITB9cmV0dXJuITF9LERnPS9eW2EteiRfXVtcdy0kXSokL2ksQ2c9L14oPzpbYS16XyRdW2Etei1fJDAtOV0qXC4pKlthLXpfJF1bYS16LV8kMC05XSooPzpcLlwqKT8kL2k7CnZhciBGZz1bIm1hdGNoZXMiLCJ3ZWJraXRNYXRjaGVzU2VsZWN0b3IiLCJtb3pNYXRjaGVzU2VsZWN0b3IiLCJtc01hdGNoZXNTZWxlY3RvciIsIm9NYXRjaGVzU2VsZWN0b3IiXTtmdW5jdGlvbiBHZyhhLGIpe2lmKCFhKXJldHVybiExO3RyeXtmb3IodmFyIGM9MDtjPEZnLmxlbmd0aDtjKyspe3ZhciBkPUZnW2NdO2lmKGFbZF0hPW51bGwpcmV0dXJuIGFbZF0oYil9fWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiBIZyhhLGIpe3ZhciBjPVN0cmluZyhhKSxkPVN0cmluZyhiKSxlPWMubGVuZ3RoLWQubGVuZ3RoO3JldHVybiBlPj0wJiZjLmluZGV4T2YoZCxlKT09PWV9ZnVuY3Rpb24gSWcoYSxiKXtyZXR1cm4gU3RyaW5nKGEpLnNwbGl0KCIsIikuaW5kZXhPZihTdHJpbmcoYikpPj0wfQpmdW5jdGlvbiBKZyhhLGIsYyxkKXt2YXIgZT1jPyJpIjp2b2lkIDA7dHJ5e3ZhciBmPVN0cmluZyhiKStTdHJpbmcoZSksZz1kPT1udWxsP3ZvaWQgMDpkLmdldChmKTtnfHwoZz1uZXcgUmVnRXhwKGIsZSksZD09bnVsbHx8ZC5zZXQoZixnKSk7cmV0dXJuIGcudGVzdChhKX1jYXRjaChoKXtyZXR1cm4hMX19ZnVuY3Rpb24gS2coYSxiKXtyZXR1cm4gU3RyaW5nKGEpLmluZGV4T2YoU3RyaW5nKGIpKT49MH1mdW5jdGlvbiBMZyhhLGIpe3JldHVybiBTdHJpbmcoYSk9PT1TdHJpbmcoYil9ZnVuY3Rpb24gTWcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPj1OdW1iZXIoYil9ZnVuY3Rpb24gTmcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPD1OdW1iZXIoYil9ZnVuY3Rpb24gT2coYSxiKXtyZXR1cm4gTnVtYmVyKGEpPk51bWJlcihiKX1mdW5jdGlvbiBQZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8TnVtYmVyKGIpfQpmdW5jdGlvbiBRZyhhLGIpe3JldHVybiBTYihTdHJpbmcoYSksU3RyaW5nKGIpKX07ZnVuY3Rpb24gWGcoYSl7dmFyIGI9YS5zZWFyY2g7cmV0dXJuIGEucHJvdG9jb2wrIi8vIithLmhvc3RuYW1lK2EucGF0aG5hbWUrKGI/YisiJnJpY2hzc3Rzc2UiOiI/cmljaHNzdHNzZSIpfTt2YXIgWWc9ZnVuY3Rpb24oKXt0aGlzLlI9IiJ9LCRnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9Yi5mYWxsYmFja191cmwsZD1iLmZhbGxiYWNrX3VybF9tZXRob2Q7aWYoYyYmZCl7dmFyIGU9e307WmcoYSwoZVtkXT1bY10sZS5vcHRpb25zPXt9LGUpKX19fSxhaD1mdW5jdGlvbihhLGIsYyl7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTt0eXBlb2YgZj09PSJzdHJpbmciJiZjKGYsYil9fSxaZz1mdW5jdGlvbihhLGIpe2lmKGIpZm9yKHZhciBjPUNkKGIub3B0aW9ucyk/Yi5vcHRpb25zOnt9LGQ9bShPYmplY3Qua2V5cyhiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1iW2ZdO3N3aXRjaChmKXtjYXNlICJzZW5kX3BpeGVsIjphaChnLGMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLksoaCxsKX0pO2JyZWFrO2Nhc2UgImZldGNoIjphaChnLApjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5IKGgsbCl9KX19fTt2YXIgYmg9L14oW2Etel1bYS16MC05XSopOighfFw/KShcKnxzdHJpbmd8Ym9vbGVhbnxudW1iZXJ8Rm58UGl4aWVNYXB8TGlzdHxPcGFxdWVWYWx1ZSkkL2ksY2g9e0ZuOiJmdW5jdGlvbiIsUGl4aWVNYXA6Ik9iamVjdCIsTGlzdDoiQXJyYXkifTsKZnVuY3Rpb24gZGgoYSxiKXtmb3IodmFyIGM9WyJpbnB1dDohKiJdLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9YmguZXhlYyhjW2RdKTtpZighZSl0aHJvdyBFcnJvcigiSW50ZXJuYWwgRXJyb3IgaW4gIithKTt2YXIgZj1lWzFdLGc9ZVsyXT09PSIhIixoPWVbM10sbD1iW2RdO2lmKGw9PW51bGwpe2lmKGcpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBSZXF1aXJlZCBhcmd1bWVudCAiK2YrIiBub3Qgc3VwcGxpZWQuIik7fWVsc2UgaWYoaCE9PSIqIil7dmFyIG49dHlwZW9mIGw7bCBpbnN0YW5jZW9mIEtkP249IkZuIjpsIGluc3RhbmNlb2YgR2Q/bj0iTGlzdCI6bCBpbnN0YW5jZW9mIGtiP249IlBpeGllTWFwIjpsIGluc3RhbmNlb2YgU2Q/bj0iUGl4aWVQcm9taXNlIjpsIGluc3RhbmNlb2YgUGQmJihuPSJPcGFxdWVWYWx1ZSIpO2lmKG4hPT1oKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gQXJndW1lbnQgIitmKyIgaGFzIHR5cGUgIisoKGNoW25dfHxuKSsiLCB3aGljaCBkb2VzIG5vdCBtYXRjaCByZXF1aXJlZCB0eXBlICIpKwooKGNoW2hdfHxoKSsiLiIpKTt9fX1mdW5jdGlvbiBLKGEsYixjKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2cgaW5zdGFuY2VvZiBLZD9kLnB1c2goImZ1bmN0aW9uIik6ZyBpbnN0YW5jZW9mIEdkP2QucHVzaCgiQXJyYXkiKTpnIGluc3RhbmNlb2Yga2I/ZC5wdXNoKCJPYmplY3QiKTpnIGluc3RhbmNlb2YgU2Q/ZC5wdXNoKCJQcm9taXNlIik6ZyBpbnN0YW5jZW9mIFBkP2QucHVzaCgiT3BhcXVlVmFsdWUiKTpkLnB1c2godHlwZW9mIGcpfXJldHVybiBFcnJvcigiQXJndW1lbnQgZXJyb3IgaW4gIithKyIuIEV4cGVjdGVkIGFyZ3VtZW50IHR5cGVzIFsiKyhiLmpvaW4oIiwiKSsiXSwgYnV0IHJlY2VpdmVkIFsiKSsoZC5qb2luKCIsIikrIl0uIikpfWZ1bmN0aW9uIGVoKGEpe3JldHVybiBhIGluc3RhbmNlb2Yga2J9ZnVuY3Rpb24gZmgoYSl7cmV0dXJuIGVoKGEpfHxhPT09bnVsbHx8Z2goYSl9CmZ1bmN0aW9uIGhoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgS2R9ZnVuY3Rpb24gaWgoYSl7cmV0dXJuIGhoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gamgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBHZH1mdW5jdGlvbiBraChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFBkfWZ1bmN0aW9uIGxoKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIG1oKGEpe3JldHVybiBsaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIG5oKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn1mdW5jdGlvbiBvaChhKXtyZXR1cm4gbmgoYSl8fGdoKGEpfWZ1bmN0aW9uIHBoKGEpe3JldHVybiBuaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIHFoKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifWZ1bmN0aW9uIGdoKGEpe3JldHVybiBhPT09dm9pZCAwfTtmdW5jdGlvbiByaChhKXtyZXR1cm4iIithfQpmdW5jdGlvbiBzaChhLGIpe3ZhciBjPVtdO3JldHVybiBjfTtmdW5jdGlvbiB0aChhLGIpe3ZhciBjPW5ldyBLZChhLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXT10aGlzLmV2YWx1YXRlKGRbZV0pO3RyeXtyZXR1cm4gYi5hcHBseSh0aGlzLGQpfWNhdGNoKGcpe3Rocm93IGNiKGcpO319KTtjLlphKCk7cmV0dXJuIGN9CmZ1bmN0aW9uIHVoKGEsYil7dmFyIGM9bmV3IGtiLGQ7Zm9yKGQgaW4gYilpZihiLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1iW2RdO3liKGUpP2Muc2V0KGQsdGgoYSsiXyIrZCxlKSk6Q2QoZSk/Yy5zZXQoZCx1aChhKyJfIitkLGUpKTooQWIoZSl8fHpiKGUpfHx0eXBlb2YgZT09PSJib29sZWFuIikmJmMuc2V0KGQsZSl9Yy5aYSgpO3JldHVybiBjfTtmdW5jdGlvbiB3aChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydEFwaVN1YmplY3QiLApjKX07ZnVuY3Rpb24geGgoYSxiKXtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIFNkKXRocm93IEVycm9yKCJBcmd1bWVudCBhY3R1YWwgY2Fubm90IGhhdmUgdHlwZSBQcm9taXNlLiBBc3NlcnRpb25zIG9uIGFzeW5jaHJvbm91cyBjb2RlIGFyZW4ndCBzdXBwb3J0ZWQuIik7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydFRoYXRTdWJqZWN0IixjKX07ZnVuY3Rpb24geWgoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBiPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxjPVtdLGQ9dGhpcy5ULGU9MDtlPGIubGVuZ3RoOysrZSljLnB1c2goVGQoYltlXSxkKSk7cmV0dXJuIFVkKGEuYXBwbHkobnVsbCxjKSl9fWZ1bmN0aW9uIHpoKCl7Zm9yKHZhciBhPU1hdGgsYj1BaCxjPXt9LGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTthLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT15aChhW2VdLmJpbmQoYSkpKX1yZXR1cm4gY307ZnVuY3Rpb24gQmgoYSl7cmV0dXJuIGEhPW51bGwmJlNiKGEsIl9fY3Z0XyIpfTtmdW5jdGlvbiBDaChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gRGgoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChjKXt9cmV0dXJuIGJ9O2Z1bmN0aW9uIEVoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJKGEpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEZoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhhKSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gR2goYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31mdW5jdGlvbiBMaChhKXtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO307ZnVuY3Rpb24gTWgoYSl7dmFyIGI9VGQoYSk7cmV0dXJuIG5nKGI/IiIrYjoiIil9O2Z1bmN0aW9uIE5oKGEsYil7aWYoIXFoKGEpfHwhcWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIm51bWJlciIsIm51bWJlciJdLGFyZ3VtZW50cyk7cmV0dXJuIERiKGEsYil9O2Z1bmN0aW9uIE9oKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9O2Z1bmN0aW9uIFBoKGEpe2lmKGE9PT1udWxsKXJldHVybiJudWxsIjtpZihhIGluc3RhbmNlb2YgR2QpcmV0dXJuImFycmF5IjtpZihhIGluc3RhbmNlb2YgS2QpcmV0dXJuImZ1bmN0aW9uIjtpZihhIGluc3RhbmNlb2YgUGQpe3ZhciBiPWEuZ2V0VmFsdWUoKTtpZigoYj09bnVsbD92b2lkIDA6Yi5jb25zdHJ1Y3Rvcik9PT12b2lkIDB8fGIuY29uc3RydWN0b3IubmFtZT09PXZvaWQgMCl7dmFyIGM9U3RyaW5nKGIpO3JldHVybiBjLnN1YnN0cmluZyg4LGMubGVuZ3RoLTEpfXJldHVybiBTdHJpbmcoYi5jb25zdHJ1Y3Rvci5uYW1lKX1yZXR1cm4gdHlwZW9mIGF9O2Z1bmN0aW9uIFFoKGEpe2Z1bmN0aW9uIGIoYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3RyeXtyZXR1cm4gYyhkKX1jYXRjaChlKXsobGd8fG1nLlBvKSYmYS5jYWxsKHRoaXMsZS5tZXNzYWdlKX19fXJldHVybntwYXJzZTpiKGZ1bmN0aW9uKGMpe3JldHVybiBVZChKU09OLnBhcnNlKGMpKX0pLHN0cmluZ2lmeTpiKGZ1bmN0aW9uKGMpe3JldHVybiBKU09OLnN0cmluZ2lmeShUZChjKSl9KSxwdWJsaWNOYW1lOiJKU09OIn19O2Z1bmN0aW9uIFJoKGEpe3JldHVybiBJYihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBTaChhKXtyZXR1cm4gTnVtYmVyKFRkKGEsdGhpcy5UKSl9O2Z1bmN0aW9uIFRoKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIFVoKGEsYixjKXt2YXIgZD1udWxsLGU9ITE7aWYoIWpoKGEpfHwhbGgoYil8fCFsaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiQXJyYXkiLCJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO2Q9bmV3IGtiO2Zvcih2YXIgZj0wO2Y8YS5sZW5ndGgoKTtmKyspe3ZhciBnPWEuZ2V0KGYpO2cgaW5zdGFuY2VvZiBrYiYmZy5oYXMoYikmJmcuaGFzKGMpJiYoZC5zZXQoZy5nZXQoYiksZy5nZXQoYykpLGU9ITApfXJldHVybiBlP2Q6bnVsbH07dmFyIEFoPSJmbG9vciBjZWlsIHJvdW5kIG1heCBtaW4gYWJzIHBvdyBzcXJ0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIFZoKCl7dmFyIGE9e307cmV0dXJue1dyOmZ1bmN0aW9uKGIpe3JldHVybiBhLmhhc093blByb3BlcnR5KGIpP2FbYl06dm9pZCAwfSxLbzpmdW5jdGlvbihiLGMpe2FbYl09Y30scmVzZXQ6ZnVuY3Rpb24oKXthPXt9fX19ZnVuY3Rpb24gV2goYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gS2QucHJvdG90eXBlLmludm9rZS5hcHBseShhLFtiXS5jb25jYXQodyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKSl9fQpmdW5jdGlvbiBYaChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt9CmZ1bmN0aW9uIFloKGEsYil7aWYoIWxoKGEpfHwhZWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIlBpeGllTWFwIl0sYXJndW1lbnRzKTt9O3ZhciBaaD17fTt2YXIgJGg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiO2lmKGEgaW5zdGFuY2VvZiBHZClmb3IodmFyIGM9YS5GYSgpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTthLmhhcyhlKSYmYi5zZXQoZSxhLmdldChlKSl9ZWxzZSBpZihhIGluc3RhbmNlb2YgS2QpZm9yKHZhciBmPWEuRmEoKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ107Yi5zZXQoaCxhLmdldChoKSl9ZWxzZSBmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyliLnNldChsLGFbbF0pO3JldHVybiBifTsKWmgua2V5cz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLkZhKCkpO3JldHVybiBuZXcgR2R9OwpaaC52YWx1ZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5oYygpKTtyZXR1cm4gbmV3IEdkfTsKWmguZW50cmllcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmZjKCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBuZXcgR2QoYil9KSk7cmV0dXJuIG5ldyBHZH07ClpoLmZyZWV6ZT1mdW5jdGlvbihhKXsoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkKSYmYS5aYSgpO3JldHVybiBhfTtaaC5kZWxldGU9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2Yga2ImJiFhLkhiKCkpcmV0dXJuIGEucmVtb3ZlKGIpLCEwO3JldHVybiExfTtmdW5jdGlvbiBMKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9YS5ULnhiKCk7aWYoIWQpdGhyb3cgRXJyb3IoIk1pc3NpbmcgcHJvZ3JhbSBzdGF0ZS4iKTtpZihkLml0KXt0cnl7ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfWNhdGNoKGUpe3Rocm93IHNiKCJUQUdHSU5HIiwyMSksZTt9cmV0dXJufWQuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX07dmFyIGFpPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49ITA7fTthaS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250YWlucyhhKT90aGlzLktbYV06dm9pZCAwO3JldHVybiBjfTthaS5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSy5oYXNPd25Qcm9wZXJ0eShhKX07CmFpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKHRoaXMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYW4gQVBJIHdpdGggYW4gZXhpc3RpbmcgcHJpdmF0ZSBBUEkgbmFtZTogIithKyIuIik7dGhpcy5LW2FdPWM/dm9pZCAwOnliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gYmkoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9O2Z1bmN0aW9uIGNpKCl7dmFyIGE9e307CnJldHVybiBhfTt2YXIgZGk9e30sZWk9KGRpW0YuRC5zYV09ImdjdSIsZGlbRi5ELmVoXT0iZXB0IixkaVtGLkQuU2JdPSJnY2xnYiIsZGlbRi5ELmxiXT0iZ2NsYXciLGRpW0YuRC56bF09ImdjbGlkX2xlbiIsZGlbRi5ELkJlXT0iZ2NsZ3MiLGRpW0YuRC5DZV09ImdjbGxwIixkaVtGLkQuRGVdPSJnY2xzdCIsZGlbRi5ELkVkXT0iYXVpZCIsZGlbRi5ELkJsXT0iYWUiLGRpW0YuRC5DZl09ImRzY250IixkaVtGLkQuRGZdPSJmY250ciIsZGlbRi5ELkVmXT0iZmxuZyIsZGlbRi5ELkZmXT0ibWlkIixkaVtGLkQud2ldPSJidHR5cGUiLGRpW0YuRC5LYl09ImdhY2lkIixkaVtGLkQuR2RdPSJsYWJlbCIsZGlbRi5ELkZlXT0iY2FwaSIsZGlbRi5ELmpoXT0icHNjZGwiLGRpW0YuRC5lYl09ImN1cnJlbmN5X2NvZGUiLGRpW0YuRC5HZV09InZkbHR2IixkaVtGLkQua2hdPSJjbG9jdCIsZGlbRi5ELkVsXT0iX2RiZyIsZGlbRi5ELkllXT0ib2VkZWxkIixkaVtGLkQuVmNdPSJlZGlkIixkaVtGLkQuTWRdPSJldm5pZCIsCmRpW0YuRC5FaV09ImV2amlkIixkaVtGLkQuTmRdPSJleGNpZCIsZGlbRi5ELnJoXT0iZ2FjIixkaVtGLkQuSmVdPSJnYWNnYiIsZGlbRi5ELk1sXT0iZ2FjbWNvdiIsZGlbRi5ELktlXT0iZ2RwciIsZGlbRi5ELlhjXT0iZ2RpZCIsZGlbRi5ELkxlXT0iX25nIixkaVtGLkQuY3FdPSJfb25vIixkaVtGLkQudGhdPSJncHBfc2lkIixkaVtGLkQudWhdPSJncHAiLGRpW0YuRC5QbF09ImdzYWV4cCIsZGlbRi5ELlZmXT0iX3R1IixkaVtGLkQuTWVdPSJmcm0iLGRpW0YuRC5LaV09Imd0bV91cCIsZGlbRi5ELlBkXT0ibHBzIixkaVtGLkQuTGldPSJkaWQiLGRpW0YuRC5RZF09ImZjbnRyIixkaVtGLkQuUmRdPSJmbG5nIixkaVtGLkQuU2RdPSJtaWQiLGRpW0YuRC5OZV09dm9pZCAwLGRpW0YuRC5NYl09InRpYmEiLGRpW0YuRC5XYl09InJkcCIsZGlbRi5ELnhjXT0iZWNzaWQiLGRpW0YuRC5aZl09ImdhX3VpZCIsZGlbRi5ELlVkXT0iZGVsb3BjIixkaVtGLkQuT2VdPSJnZHByX2NvbnNlbnQiLApkaVtGLkQuUGFdPSJvaWQiLGRpW0YuRC5kbV09Im9pZHNyYyIsZGlbRi5ELmZtXT0idXB0Z3MiLGRpW0YuRC5jZ109InVhYSIsZGlbRi5ELmRnXT0idWFiIixkaVtGLkQuZWddPSJ1YWZ2bCIsZGlbRi5ELmZnXT0idWFtYiIsZGlbRi5ELmdnXT0idWFtIixkaVtGLkQuaGddPSJ1YXAiLGRpW0YuRC5pZ109InVhcHYiLGRpW0YuRC5qZ109InVhdyIsZGlbRi5ELmdtXT0iZWNfbGF0IixkaVtGLkQuaG1dPSJlY19tZXRhIixkaVtGLkQuaW1dPSJlY19tIixkaVtGLkQuam1dPSJlY19zZWwiLGRpW0YuRC5rbV09ImVjX3MiLGRpW0YuRC5CY109ImVjX21vZGUiLGRpW0YuRC5mYl09InVzZXJJZCIsZGlbRi5ELmtnXT0idXNfcHJpdmFjeSIsZGlbRi5ELlFhXT0idmFsdWUiLGRpW0YuRC5xbV09Im1jb3YiLGRpW0YuRC5XaV09ImhuIixkaVtGLkQuVm1dPSJndG1fZWUiLGRpW0YuRC5ZaV09InVpcCIsZGlbRi5ELkpoXT0ibXQiLGRpW0YuRC5kZV09Im5wYSIsZGlbRi5ELllxXT0ic2dfdWMiLGRpW0YuRC55aV09Cm51bGwsZGlbRi5ELmJkXT1udWxsLGRpW0YuRC50Yl09bnVsbCxkaVtGLkQuSGFdPW51bGwsZGlbRi5ELnphXT1udWxsLGRpW0YuRC5VYV09bnVsbCxkaVtGLkQuUGVdPW51bGwsZGlbRi5ELmVkXT1udWxsLGRpW0YuRC5zaF09bnVsbCxkaVtGLkQuQmRdPW51bGwsZGlbRi5ELkNkXT1udWxsLGRpW0YuRC5maF09bnVsbCxkaVtGLkQuZ2hdPW51bGwsZGlbRi5ELlRhXT1udWxsLGRpW0YuRC5XY109bnVsbCxkaSk7ZnVuY3Rpb24gZmkoYSxiKXtpZihhKXt2YXIgYz1hLnNwbGl0KCJ4Iik7Yy5sZW5ndGg9PT0yJiYoZ2koYiwidV93IixjWzBdKSxnaShiLCJ1X2giLGNbMV0pKX19ZnVuY3Rpb24gaGkoYSl7dmFyIGI9aWk7Yj1iPT09dm9pZCAwP2ppOmI7cmV0dXJuIGtpKGxpKGEsYikpfWZ1bmN0aW9uIGtpKGEpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4iKCIrW21pKGIudmFsdWUpLG1pKGIucXVhbnRpdHkpLG1pKGIuaXRlbV9pZCksbWkoYi5zdGFydF9kYXRlKSxtaShiLmVuZF9kYXRlKV0uam9pbigiKiIpKyIpIn0pLmpvaW4oIiIpfQpmdW5jdGlvbiBsaShhLGIpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXtyZXR1cm57aXRlbV9pZDpiKGMpLHF1YW50aXR5OmMucXVhbnRpdHksdmFsdWU6Yy5wcmljZSxzdGFydF9kYXRlOmMuc3RhcnRfZGF0ZSxlbmRfZGF0ZTpjLmVuZF9kYXRlfX0pfWZ1bmN0aW9uIGppKGEpe3JldHVyblthLml0ZW1faWQsYS5pZCxhLml0ZW1fbmFtZV0uZmluZChmdW5jdGlvbihiKXtyZXR1cm4gYiE9bnVsbH0pfWZ1bmN0aW9uIG5pKGEpe2lmKGEmJmEubGVuZ3RoKXJldHVybiBhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYiYmYi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZT9iLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlOiIifSkuam9pbigiLCIpfWZ1bmN0aW9uIGdpKGEsYixjKXtjPT09dm9pZCAwfHxjPT09bnVsbHx8Yz09PSIiJiYheWdbYl18fChhW2JdPWMpfQpmdW5jdGlvbiBtaShhKXtyZXR1cm4gdHlwZW9mIGEhPT0ibnVtYmVyIiYmdHlwZW9mIGEhPT0ic3RyaW5nIj8iIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIG9pKCl7dGhpcy5ibG9ja1NpemU9LTF9O2Z1bmN0aW9uIHBpKGEsYil7dGhpcy5ibG9ja1NpemU9LTE7dGhpcy5ibG9ja1NpemU9NjQ7dGhpcy5OPVJhLlVpbnQ4QXJyYXk/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKTt0aGlzLlI9dGhpcy5LPTA7dGhpcy5IPVtdO3RoaXMuZmE9YTt0aGlzLlo9Yjt0aGlzLmphPVJhLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkoNjQpOkFycmF5KDY0KTtxaT09PXZvaWQgMCYmKFJhLkludDMyQXJyYXk/cWk9bmV3IEludDMyQXJyYXkocmkpOnFpPXJpKTt0aGlzLnJlc2V0KCl9U2EocGksb2kpO2Zvcih2YXIgc2k9W10sdGk9MDt0aTw2Mzt0aSsrKXNpW3RpXT0wO3ZhciB1aT1bXS5jb25jYXQoMTI4LHNpKTsKcGkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5SPXRoaXMuSz0wO3ZhciBhO2lmKFJhLkludDMyQXJyYXkpYT1uZXcgSW50MzJBcnJheSh0aGlzLlopO2Vsc2V7dmFyIGI9dGhpcy5aLGM9Yi5sZW5ndGg7aWYoYz4wKXtmb3IodmFyIGQ9QXJyYXkoYyksZT0wO2U8YztlKyspZFtlXT1iW2VdO2E9ZH1lbHNlIGE9W119dGhpcy5IPWF9Owp2YXIgdmk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuTixjPWEuamEsZD0wLGU9MDtlPGIubGVuZ3RoOyljW2QrK109YltlXTw8MjR8YltlKzFdPDwxNnxiW2UrMl08PDh8YltlKzNdLGU9ZCo0O2Zvcih2YXIgZj0xNjtmPDY0O2YrKyl7dmFyIGc9Y1tmLTE1XXwwLGg9Y1tmLTJdfDA7Y1tmXT0oKGNbZi0xNl18MCkrKChnPj4+N3xnPDwyNSleKGc+Pj4xOHxnPDwxNCleZz4+PjMpfDApKygoY1tmLTddfDApKygoaD4+PjE3fGg8PDE1KV4oaD4+PjE5fGg8PDEzKV5oPj4+MTApfDApfDB9Zm9yKHZhciBsPWEuSFswXXwwLG49YS5IWzFdfDAscD1hLkhbMl18MCxxPWEuSFszXXwwLHI9YS5IWzRdfDAsdD1hLkhbNV18MCx1PWEuSFs2XXwwLHY9YS5IWzddfDAseD0wO3g8NjQ7eCsrKXt2YXIgeT0oKGw+Pj4yfGw8PDMwKV4obD4+PjEzfGw8PDE5KV4obD4+PjIyfGw8PDEwKSkrKGwmbl5sJnBebiZwKXwwLHo9KHYrKChyPj4+NnxyPDwyNileKHI+Pj4xMXxyPDwyMSleKHI+Pj4yNXxyPDw3KSl8CjApKygoKHImdF5+ciZ1KSsocWlbeF18MCl8MCkrKGNbeF18MCl8MCl8MDt2PXU7dT10O3Q9cjtyPXErenwwO3E9cDtwPW47bj1sO2w9eit5fDB9YS5IWzBdPWEuSFswXStsfDA7YS5IWzFdPWEuSFsxXStufDA7YS5IWzJdPWEuSFsyXStwfDA7YS5IWzNdPWEuSFszXStxfDA7YS5IWzRdPWEuSFs0XStyfDA7YS5IWzVdPWEuSFs1XSt0fDA7YS5IWzZdPWEuSFs2XSt1fDA7YS5IWzddPWEuSFs3XSt2fDB9OwpwaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YS5sZW5ndGgpO3ZhciBjPTAsZD10aGlzLks7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilmb3IoO2M8YjspdGhpcy5OW2QrK109YS5jaGFyQ29kZUF0KGMrKyksZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApO2Vsc2V7dmFyIGUsZj10eXBlb2YgYTtlPWYhPSJvYmplY3QiP2Y6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6ZjoibnVsbCI7aWYoZT09ImFycmF5Inx8ZT09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpZm9yKDtjPGI7KXt2YXIgZz1hW2MrK107aWYoISgibnVtYmVyIj09dHlwZW9mIGcmJjA8PWcmJjI1NT49ZyYmZz09KGd8MCkpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgYSBieXRlIGFycmF5Iik7dGhpcy5OW2QrK109ZztkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCl9ZWxzZSB0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIHN0cmluZyBvciBhcnJheSIpOwp9dGhpcy5LPWQ7dGhpcy5SKz1ifTtwaS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGE9W10sYj10aGlzLlIqODt0aGlzLks8NTY/dGhpcy51cGRhdGUodWksNTYtdGhpcy5LKTp0aGlzLnVwZGF0ZSh1aSx0aGlzLmJsb2NrU2l6ZS0odGhpcy5LLTU2KSk7Zm9yKHZhciBjPTYzO2M+PTU2O2MtLSl0aGlzLk5bY109YiYyNTUsYi89MjU2O3ZpKHRoaXMpO2Zvcih2YXIgZD0wLGU9MDtlPHRoaXMuZmE7ZSsrKWZvcih2YXIgZj0yNDtmPj0wO2YtPTgpYVtkKytdPXRoaXMuSFtlXT4+ZiYyNTU7cmV0dXJuIGF9Owp2YXIgcmk9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCwKNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLHFpO2Z1bmN0aW9uIHdpKCl7cGkuY2FsbCh0aGlzLDgseGkpfVNhKHdpLHBpKTt2YXIgeGk9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTt2YXIgeWk9L15bMC05QS1GYS1mXXs2NH0kLztmdW5jdGlvbiB6aShhKXt0cnl7cmV0dXJuKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGEpfWNhdGNoKGIpe3JldHVybiBaYihhKX19ZnVuY3Rpb24gQWkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAiKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dmFyIGM7aWYoKGM9Yi5jcnlwdG8pPT1udWxsPzA6Yy5zdWJ0bGUpe2lmKHlpLnRlc3QoYSkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt0cnl7dmFyIGQ9emkoYSk7cmV0dXJuIGIuY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGQpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIEJpKGUsYil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiJlMiJ9KX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMiIpfX1lbHNlIHJldHVybiBQcm9taXNlLnJlc29sdmUoImUxIil9CmZ1bmN0aW9uIENpKGEpe3RyeXt2YXIgYj1uZXcgd2k7Yi51cGRhdGUoemkoYSkpO3JldHVybiBiLmRpZ2VzdCgpfWNhdGNoKGMpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIERpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwInx8eWkudGVzdChhKSlyZXR1cm4gYTt2YXIgYz1DaShhKTtpZihjPT09ImUyIilyZXR1cm4iZTIiO3RyeXtyZXR1cm4gQmkoYyxiKX1jYXRjaChkKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBCaShhLGIpe3ZhciBjPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYSkpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShkKX0pLmpvaW4oIiIpO3JldHVybiBiLmJ0b2EoYykucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX07ZnVuY3Rpb24gRWkoKXtmb3IodmFyIGE9ITEsYj0hMSxjPTA7YT09PWI7KWlmKGE9RGIoMCwxKT09PTAsYj1EYigwLDEpPT09MCxjKyssYz4zMClyZXR1cm47cmV0dXJuIGF9dmFyIEdpPXtzazpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEZpLnNrKGEsYixjKX19LEhpPWZ1bmN0aW9uKCl7dGhpcy5zdHVkaWVzPXt9O3RoaXMuSD1FaX07CkhpLnByb3RvdHlwZS5zaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5zdHVkaWVzW2JdO2lmKCEoKGM9PT12b2lkIDA/RGIoMCw5OTk5KTpjJTFFNCk8ZC5wcm9iYWJpbGl0eSooZC5jb250cm9sSWQyPzQ6MikqMUU0KSlyZXR1cm4gYTthOnt2YXIgZT1kLnN0dWR5SWQsZj1kLmV4cGVyaW1lbnRJZCxnPWQuY29udHJvbElkLGg9ZC5jb250cm9sSWQyO2lmKCEoKGEuZXhwfHx7fSlbZl18fChhLmV4cHx8e30pW2ddfHxoJiYoYS5leHB8fHt9KVtoXSkpe3ZhciBsPWMhPT12b2lkIDA/YyUyPT09MDp0aGlzLkgoKTtpZihsIT09dm9pZCAwKXt2YXIgbj1sPzA6MTtpZihoKXt2YXIgcD1jIT09dm9pZCAwPyhjPj4xKSUyPT09MDp0aGlzLkgoKTtpZihwPT09dm9pZCAwKWJyZWFrIGE7bnw9KHA/MDoxKTw8MX1uPT09MD9JaShhLGYsZSk6bj09PTE/SWkoYSxnLGUpOm49PT0yJiZJaShhLGgsZSl9fX1yZXR1cm4gYX07CnZhciBLaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0/SmkoYyxiKXx8ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uZXhwZXJpbWVudElkXTohMX0sTGk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWRdOiExfSxNaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQyJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWQyXTohMX0sTmk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5leHB8fHt9LGQ9bShPYmplY3Qua2V5cyhjKS5tYXAoTnVtYmVyKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoY1tmXT09PWIpcmV0dXJuIGZ9fSxKaT1mdW5jdGlvbihhLApiKXtyZXR1cm4hIWEuc3R1ZGllc1tiXS5hY3RpdmV8fGEuc3R1ZGllc1tiXS5wcm9iYWJpbGl0eT4uNX0sSWk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZXhwfHx7fTtkW2JdPWM7YS5leHA9ZH0sRmk9bmV3IEhpO3ZhciBpaj1mdW5jdGlvbigpe3RoaXMuSD1BLmdvb2dsZV90YWdfbWFuYWdlcj1BLmdvb2dsZV90YWdfbWFuYWdlcnx8e319LGpqO2Z1bmN0aW9uIGtqKGEsYil7bGooKTt2YXIgYz1qajtyZXR1cm4gYy5IW2FdPWMuSFthXXx8YigpfWZ1bmN0aW9uIG1qKGEpe2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gbmooYSxiKXtsaigpO2pqLkhbYV09Yn1mdW5jdGlvbiBvaihhKXt2YXIgYj1FKDUpO2xqKCk7dmFyIGM9amo7Yy5IW2JdPWMuSFtiXXx8YX1mdW5jdGlvbiBwaigpe3ZhciBhPUUoMTkpO2xqKCk7dmFyIGI9amo7cmV0dXJuIGIuSFthXT1iLkhbYV18fHt9fWZ1bmN0aW9uIHFqKCl7dmFyIGE9RSgxOSk7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiByaigpe2xqKCk7dmFyIGE9amosYj1hLkguc2VxdWVuY2V8fDE7YS5ILnNlcXVlbmNlPWIrMTtyZXR1cm4gYn1mdW5jdGlvbiBsaigpe2pqfHwoamo9bmV3IGlqKX07dmFyIHNqPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIDA7Y2FzZSA0OTE6cmV0dXJuIDEyO2Nhc2UgNDgwOnJldHVybiAxMTtjYXNlIDQ5OTpyZXR1cm4gMTA7Y2FzZSA1MDA6cmV0dXJuIDY7Y2FzZSA0MjE6cmV0dXJuIDk7Y2FzZSA1NjE6cmV0dXJuIDE3O2Nhc2UgNDgyOnJldHVybiAxNTtjYXNlIDU3MDpyZXR1cm4gMTk7Y2FzZSA0OTU6cmV0dXJuIDEzO2Nhc2UgNTE0OnJldHVybiAxNjtjYXNlIDU3MzpyZXR1cm4gMTg7Y2FzZSAyMzU6cmV0dXJuIDg7Y2FzZSA1MzpyZXR1cm4gMTtjYXNlIDU0OnJldHVybiAyO2Nhc2UgNTI6cmV0dXJuIDQ7Y2FzZSA3NTpyZXR1cm4gM319LHRqPWZ1bmN0aW9uKGEsYil7YS5OW2JdPSEwO3ZhciBjPXNqKGIpO2MhPT12b2lkIDAmJihXZltjXT0hMCl9LE09ZnVuY3Rpb24oYSl7cmV0dXJuISF1ai5OW2FdfSx1aj1uZXcgZnVuY3Rpb24oKXt0aGlzLk49W107dGhpcy5LPVtdO3RoaXMuSD1bXTsKdGoodGhpcywxMzIpO3ZhciBhPU5mKDYsNkU0KTtYZlsxXT1hO3ZhciBiPU5mKDcsMSk7WGZbM109Yjt2YXIgYz1OZigzNSw1MCk7WGZbMl09Yzt2YXIgZD1OZig2OSwxNzc2NDQ4OTIwKTtYZls0XT1kOwp0aih0aGlzLDQzNSk7dGoodGhpcywxNDEpOwp9O3ZhciB2aj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgU2V0O3RoaXMuSz1uZXcgU2V0fSx4aj1mdW5jdGlvbihhKXt2YXIgYj13ai5IO2E9YT09PXZvaWQgMD9bXTphO3ZhciBjPVtdLmNvbmNhdCh3KGIuSCkpLmNvbmNhdChbXS5jb25jYXQodyhiLkspKSkuY29uY2F0KGEpO2Muc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gY30seWo9ZnVuY3Rpb24oKXt2YXIgYT1bXS5jb25jYXQodyh3ai5ILkgpKTthLnNvcnQoZnVuY3Rpb24oYixjKXtyZXR1cm4gYi1jfSk7cmV0dXJuIGF9LHpqPWZ1bmN0aW9uKCl7dmFyIGE9d2ouSCxiPUUoNDQpO2EuSD1uZXcgU2V0O2lmKGIhPT0iIilmb3IodmFyIGM9bShiLnNwbGl0KCJ+IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1OdW1iZXIoZC52YWx1ZSk7aXNOYU4oZSl8fGEuSC5hZGQoZSl9fTt2YXIgQWo9e30sQmo9e19fY2w6MSxfX2VjbDoxLF9fZWhsOjEsX19ldmw6MSxfX2ZhbDoxLF9fZmlsOjEsX19mc2w6MSxfX2hsOjEsX19qZWw6MSxfX2xjbDoxLF9fc2RsOjEsX190bDoxLF9feXRsOjF9LENqPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se19fcGF1c2VkOjEsX190ZzoxfSxCaiksRGosRWo9ITE7RGo9RWo7dmFyIEZqPSIiO0FqLnFqPUZqO3ZhciB3aj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9bmV3IHZqfTt2YXIgR2o9LzpbMC05XSskLyxIaj0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC87ZnVuY3Rpb24gSWooYSxiLGMsZCl7dmFyIGU9SmooYSwhIWQsYiksZixnO3JldHVybiBjPyhnPWVbYl0pIT1udWxsP2c6W106KGY9ZVtiXSk9PW51bGw/dm9pZCAwOmZbMF19ZnVuY3Rpb24gSmooYSxiLGMpe2Zvcih2YXIgZD17fSxlPW0oYS5zcGxpdCgiJiIpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlLnNwbGl0KCI9IikpLGg9Zy5uZXh0KCkudmFsdWUsbD15YShnKSxuPWRlY29kZVVSSUNvbXBvbmVudChoLnJlcGxhY2UoL1wrL2csIiAiKSk7aWYoYz09PXZvaWQgMHx8bj09PWMpe3ZhciBwPWwuam9pbigiPSIpO2Rbbl18fChkW25dPVtdKTtkW25dLnB1c2goYj9wOmRlY29kZVVSSUNvbXBvbmVudChwLnJlcGxhY2UoL1wrL2csIiAiKSkpfX1yZXR1cm4gZH0KZnVuY3Rpb24gS2ooYSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBMaihhLGIsYyxkLGUpe2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtpZihiPT09InByb3RvY29sInx8Yj09PSJwb3J0IilhLnByb3RvY29sPU1qKGEucHJvdG9jb2wpfHxNaihBLmxvY2F0aW9uLnByb3RvY29sKTtiPT09InBvcnQiP2EucG9ydD1TdHJpbmcoTnVtYmVyKGEuaG9zdG5hbWU/YS5wb3J0OkEubG9jYXRpb24ucG9ydCl8fChhLnByb3RvY29sPT09Imh0dHAiPzgwOmEucHJvdG9jb2w9PT0iaHR0cHMiPzQ0MzoiIikpOmI9PT0iaG9zdCImJihhLmhvc3RuYW1lPShhLmhvc3RuYW1lfHxBLmxvY2F0aW9uLmhvc3RuYW1lKS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gTmooYSxiLGMsZCxlKX0KZnVuY3Rpb24gTmooYSxiLGMsZCxlKXt2YXIgZixnPU1qKGEucHJvdG9jb2wpO2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtzd2l0Y2goYil7Y2FzZSAidXJsX25vX2ZyYWdtZW50IjpmPU9qKGEpO2JyZWFrO2Nhc2UgInByb3RvY29sIjpmPWc7YnJlYWs7Y2FzZSAiaG9zdCI6Zj1hLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCk7aWYoYyl7dmFyIGg9L153d3dcZCpcLi8uZXhlYyhmKTtoJiZoWzBdJiYoZj1mLnN1YnN0cmluZyhoWzBdLmxlbmd0aCkpfWJyZWFrO2Nhc2UgInBvcnQiOmY9U3RyaW5nKE51bWJlcihhLnBvcnQpfHwoZz09PSJodHRwIj84MDpnPT09Imh0dHBzIj80NDM6IiIpKTticmVhaztjYXNlICJwYXRoIjphLnBhdGhuYW1lfHxhLmhvc3RuYW1lfHxzYigiVEFHR0lORyIsMSk7Zj1hLnBhdGhuYW1lLnN1YnN0cmluZygwLDEpPT09Ii8iP2EucGF0aG5hbWU6Ii8iK2EucGF0aG5hbWU7dmFyIGw9Zi5zcGxpdCgiLyIpOyhkfHxbXSkuaW5kZXhPZihsW2wubGVuZ3RoLQoxXSk+PTAmJihsW2wubGVuZ3RoLTFdPSIiKTtmPWwuam9pbigiLyIpO2JyZWFrO2Nhc2UgInF1ZXJ5IjpmPWEuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKTtlJiYoZj1JaihmLGUsITEpKTticmVhaztjYXNlICJleHRlbnNpb24iOnZhciBuPWEucGF0aG5hbWUuc3BsaXQoIi4iKTtmPW4ubGVuZ3RoPjE/bltuLmxlbmd0aC0xXToiIjtmPWYuc3BsaXQoIi8iKVswXTticmVhaztjYXNlICJmcmFnbWVudCI6Zj1hLmhhc2gucmVwbGFjZSgiIyIsIiIpO2JyZWFrO2RlZmF1bHQ6Zj1hJiZhLmhyZWZ9cmV0dXJuIGZ9ZnVuY3Rpb24gTWooYSl7cmV0dXJuIGE/YS5yZXBsYWNlKCI6IiwiIikudG9Mb3dlckNhc2UoKToiIn1mdW5jdGlvbiBPaihhKXt2YXIgYj0iIjtpZihhJiZhLmhyZWYpe3ZhciBjPWEuaHJlZi5pbmRleE9mKCIjIik7Yj1jPDA/YS5ocmVmOmEuaHJlZi5zdWJzdHJpbmcoMCxjKX1yZXR1cm4gYn12YXIgUGo9e30sUWo9MDsKZnVuY3Rpb24gUmooYSl7dmFyIGI9UGpbYV07aWYoIWIpe3ZhciBjPUIuY3JlYXRlRWxlbWVudCgiYSIpO2EmJihjLmhyZWY9YSk7dmFyIGQ9Yy5wYXRobmFtZTtkWzBdIT09Ii8iJiYoYXx8c2IoIlRBR0dJTkciLDEpLGQ9Ii8iK2QpO3ZhciBlPWMuaG9zdG5hbWUucmVwbGFjZShHaiwiIik7Yj17aHJlZjpjLmhyZWYscHJvdG9jb2w6Yy5wcm90b2NvbCxob3N0OmMuaG9zdCxob3N0bmFtZTplLHBhdGhuYW1lOmQsc2VhcmNoOmMuc2VhcmNoLGhhc2g6Yy5oYXNoLHBvcnQ6Yy5wb3J0fTtRajw1JiYoUGpbYV09YixRaisrKX1yZXR1cm4gYn1mdW5jdGlvbiBTaihhLGIsYyl7dmFyIGQ9UmooYSk7cmV0dXJuIGFjKGIsZCxjKX0KZnVuY3Rpb24gVGooYSl7dmFyIGI9UmooQS5sb2NhdGlvbi5ocmVmKSxjPUxqKGIsImhvc3QiLCExKTtpZihjJiZjLm1hdGNoKEhqKSl7dmFyIGQ9TGooYiwicGF0aCIpO2lmKGQpe3ZhciBlPWQuc3BsaXQoYSsiPSIpO2lmKGUubGVuZ3RoPjEpcmV0dXJuIGVbMV0uc3BsaXQoIjsiKVswXS5zcGxpdCgiPyIpWzBdfX19O3ZhciBVaj17Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iOiIvZyIsImh0dHBzOi8vd3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIjoiL2FzIiwiaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSI6Ii9ncyJ9LFZqPVsiL2FzL2QvY2NtL2NvbnZlcnNpb24iLCIvZy9kL2NjbS9jb252ZXJzaW9uIiwiL2dzL2NjbS9jb252ZXJzaW9uIiwiL2QvY2NtL2Zvcm0tZGF0YSJdO2Z1bmN0aW9uIFdqKCl7cmV0dXJuIElmKDQ3KT9KZig1NCkhPT0xOiExfWZ1bmN0aW9uIFhqKCl7dmFyIGE9RSgxOCksYj1hLmxlbmd0aDtyZXR1cm4gYVtiLTFdPT09Ii8iP2Euc3Vic3RyaW5nKDAsYi0xKTphfQpmdW5jdGlvbiBZaihhLGIpe2lmKGEpe3ZhciBjPSIiK2E7Yy5pbmRleE9mKCJodHRwOi8vIikhPT0wJiZjLmluZGV4T2YoImh0dHBzOi8vIikhPT0wJiYoYz0iaHR0cHM6Ly8iK2MpO2NbYy5sZW5ndGgtMV09PT0iLyImJihjPWMuc3Vic3RyaW5nKDAsYy5sZW5ndGgtMSkpO3JldHVybiBSaigiIitjK2IpLmhyZWZ9fWZ1bmN0aW9uIFpqKGEpe2lmKGFrKCkpcmV0dXJuIFlqKGEsIi9hbmFseXRpY3MuanMiKX1mdW5jdGlvbiBiayhhKXtyZXR1cm4gYT09PTJ8fGE9PT0zfWZ1bmN0aW9uIGNrKGEpe3JldHVybiBNKDU4OCkmJmE9PT0zfWZ1bmN0aW9uIGFrKCl7cmV0dXJuIFdqKCl8fElmKDUwKX1mdW5jdGlvbiBkaygpe3JldHVybiEhQWoucWomJkFqLnFqLnNwbGl0KCJAQCIpLmpvaW4oIiIpIT09IlNHVE1fVE9LRU4ifQpmdW5jdGlvbiBlayhhKXtmb3IodmFyIGI9bShbRi5ELmRkLEYuRC55Y10pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1PKGEsYy52YWx1ZSk7aWYoZClyZXR1cm4gZH19ZnVuY3Rpb24gZmsoYSxiLGMpe2M9Yz09PXZvaWQgMD8iIjpjO2lmKCFXaigpKXJldHVybiBhO3ZhciBkPWI/VWpbYV18fCIiOiIiO2Q9PT0iL2dzIiYmKGM9IiIpO3JldHVybiIiK1hqKCkrZCtjfWZ1bmN0aW9uIGdrKGEpe2lmKFdqKCkpZm9yKHZhciBiPW0oVmopLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKFNiKGEsIiIrWGooKStkKSlyZXR1cm4iOjoifX0KZnVuY3Rpb24gaGsoKXt2YXIgYT1BO2lmKCFhKXJldHVybiExO3RyeXtpZihhPT09YS50b3ApcmV0dXJuITE7dmFyIGI9YS5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gYi5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlci8iKSE9PS0xJiZUYihiLCIvc3dfaWZyYW1lLmh0bWwiKX1jYXRjaChjKXtyZXR1cm4hMX19O3ZhciBpaz0vZ3RhZ1suXC9danMvLGprPS9ndG1bLlwvXWpzLyxsaz1mdW5jdGlvbihhKXt2YXIgYj1raztpZigoYS5zY3JpcHRDb250YWluZXJJZHx8IiIpLmluZGV4T2YoIkdUTS0iKT49MCl7dmFyIGM7YTp7dmFyIGQsZT0oZD1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpkLnNyYztpZihlKXtmb3IodmFyIGY9SWYoNDcpLGc9UmooZSksaD1mP2cucGF0aG5hbWU6IiIrZy5ob3N0bmFtZStnLnBhdGhuYW1lLGw9Qi5zY3JpcHRzLG49IiIscD0wO3A8bC5sZW5ndGg7KytwKXt2YXIgcT1sW3BdO2lmKCEocS5pbm5lckhUTUwubGVuZ3RoPT09MHx8IWYmJnEuaW5uZXJIVE1MLmluZGV4T2YoYS5zY3JpcHRDb250YWluZXJJZHx8IlNIT1VMRF9OT1RfQkVfU0VUIik8MHx8cS5pbm5lckhUTUwuaW5kZXhPZihoKTwwKSl7aWYocS5pbm5lckhUTUwuaW5kZXhPZigiKGZ1bmN0aW9uKHcsZCxzLGwsaSkiKT49MCl7Yz1TdHJpbmcocCk7YnJlYWsgYX1uPVN0cmluZyhwKX19aWYobil7Yz0KbjticmVhayBhfX1jPXZvaWQgMH12YXIgcj1jO2lmKHIpcmV0dXJuIGIuSD0hMCxyfXZhciB0PVtdLnNsaWNlLmNhbGwoQi5zY3JpcHRzKTtyZXR1cm4gYS5zY3JpcHRFbGVtZW50P1N0cmluZyh0LmluZGV4T2YoYS5zY3JpcHRFbGVtZW50KSk6Ii0xIn0sbWs9ZnVuY3Rpb24oYSl7aWYoa2suSClyZXR1cm4iMSI7dmFyIGIsYz0oYj1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpiLnNyYztpZihjKXtpZihpay50ZXN0KGMpKXJldHVybiIzIjtpZihqay50ZXN0KGMpKXJldHVybiIyIn1yZXR1cm4iMCJ9LGtrPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07ZnVuY3Rpb24gUChhKXtzYigiR1RNIixhKX07ZnVuY3Rpb24gbmsoYSl7dmFyIGI9b2soKS5kZXN0aW5hdGlvbkFycmF5W2FdLGM9b2soKS5kZXN0aW5hdGlvblthXTtyZXR1cm4gYiYmYi5sZW5ndGg+MD9iWzBdOmN9ZnVuY3Rpb24gcGsoYSxiKXt2YXIgYz1vaygpO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Q2IoYy5wZW5kaW5nLGZ1bmN0aW9uKGQpe3JldHVybiBkLnRhcmdldC5jdGlkPT09YS5jdGlkJiZkLnRhcmdldC5pc0Rlc3RpbmF0aW9uPT09YS5pc0Rlc3RpbmF0aW9ufSl8fGMucGVuZGluZy5wdXNoKHt0YXJnZXQ6YSxvbkxvYWQ6Yn0pfWZ1bmN0aW9uIHFrKCl7dmFyIGE9QS5nb29nbGVfdGFnc19maXJzdF9wYXJ0eTtBcnJheS5pc0FycmF5KGEpfHwoYT1bXSk7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBPYmplY3QuZnJlZXplKGIpfQp2YXIgcms9ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj17fTt0aGlzLmRlc3RpbmF0aW9uPXt9O3RoaXMuZGVzdGluYXRpb25BcnJheT17fTt0aGlzLmNhbm9uaWNhbD17fTt0aGlzLnBlbmRpbmc9W107dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXt9O3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpfTsKZnVuY3Rpb24gb2soKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLnRpZHI7YiYmdHlwZW9mIGI9PT0ib2JqZWN0Inx8KGI9bmV3IHJrLGEudGlkcj1iKTt2YXIgYz1iO2MuY29udGFpbmVyfHwoYy5jb250YWluZXI9e30pO2MuZGVzdGluYXRpb258fChjLmRlc3RpbmF0aW9uPXt9KTtjLmRlc3RpbmF0aW9uQXJyYXl8fChjLmRlc3RpbmF0aW9uQXJyYXk9e30pO2MuY2Fub25pY2FsfHwoYy5jYW5vbmljYWw9e30pO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Yy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzfHwoYy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCkpO3JldHVybiBjfTtmdW5jdGlvbiBzaygpe3JldHVybiBJZig3KSYmdGsoKS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09RSg1KX0pfWZ1bmN0aW9uIHVrKCl7dmFyIGE7cmV0dXJuKGE9S2YoNTUpKSE9bnVsbD9hOltdfWZ1bmN0aW9uIHZrKCl7cmV0dXJuIEUoNil8fCJfIitFKDUpfWZ1bmN0aW9uIHdrKCl7dmFyIGE9RSgxMCk7cmV0dXJuIGE/YS5zcGxpdCgifCIpOltFKDUpXX1mdW5jdGlvbiB0aygpe3ZhciBhPUtmKDU5KTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ic3RyaW5nIn0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5pbmRleE9mKCJHVE0tIikhPT0wfSk6W119ZnVuY3Rpb24geGsoKXt2YXIgYT15ayh6aygpKSxiPWEmJmEucGFyZW50O2lmKGIpcmV0dXJuIHlrKGIpfQpmdW5jdGlvbiBBaygpe3ZhciBhPXlrKHprKCkpO2lmKGEpe2Zvcig7YS5wYXJlbnQ7KXt2YXIgYj15ayhhLnBhcmVudCk7aWYoIWIpYnJlYWs7YT1ifXJldHVybiBhfX1mdW5jdGlvbiB5ayhhKXt2YXIgYj1vaygpO3JldHVybiBhLmlzRGVzdGluYXRpb24/bmsoYS5jdGlkKTpiLmNvbnRhaW5lclthLmN0aWRdfWZ1bmN0aW9uIEJrKCl7dmFyIGE9b2soKTtpZihhLnBlbmRpbmcpe2Zvcih2YXIgYixjPVtdLGQ9ITEsZT13aygpLGY9dGsoKSxnPXt9LGg9MDtoPGEucGVuZGluZy5sZW5ndGg7Zz17Umc6dm9pZCAwfSxoKyspZy5SZz1hLnBlbmRpbmdbaF0sQ2IoZy5SZy50YXJnZXQuaXNEZXN0aW5hdGlvbj9mOmUsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuPT09bC5SZy50YXJnZXQuY3RpZH19KGcpKT9kfHwoYj1nLlJnLm9uTG9hZCxkPSEwKTpjLnB1c2goZy5SZyk7YS5wZW5kaW5nPWM7aWYoYil0cnl7Yih2aygpKX1jYXRjaChsKXt9fX0KZnVuY3Rpb24gQ2soKXtmb3IodmFyIGE9RSg1KSxiPXdrKCksYz10aygpLGQ9dWsoKSxlPWZ1bmN0aW9uKHEscil7dmFyIHQ9e2Nhbm9uaWNhbENvbnRhaW5lcklkOkUoNiksc2NyaXB0Q29udGFpbmVySWQ6YSxzdGF0ZToyLGNvbnRhaW5lcnM6Yi5zbGljZSgpLGRlc3RpbmF0aW9uczpjLnNsaWNlKCl9O0pjJiYodC5zY3JpcHRFbGVtZW50PUpjKTtLYyYmKHQuc2NyaXB0U291cmNlPUtjKTt4aygpPT09dm9pZCAwJiYodC5odG1sTG9hZE9yZGVyPWxrKHQpLHQubG9hZFNjcmlwdFR5cGU9bWsodCkpO3ZhciB1LHY7c3dpdGNoKHIpe2Nhc2UgMDp1PWZ1bmN0aW9uKHope2YuY29udGFpbmVyW3FdPXp9O3Y9Zi5jb250YWluZXJbcV07YnJlYWs7Y2FzZSAxOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnVuc2hpZnQoeil9O3ZhciB4LHk9KCh4PWYuZGVzdGluYXRpb25BcnJheVtxXSk9PQpudWxsP3ZvaWQgMDp4WzBdKXx8Zi5kZXN0aW5hdGlvbltxXTsheXx8eS5zdGF0ZSE9PTAmJnkuc3RhdGUhPT0xfHwodj15KTticmVhaztjYXNlIDI6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0ucHVzaCh6KX0sdj12b2lkIDB9dSYmKHY/KHYuc3RhdGU9PT0wJiZQKDkzKSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHYsdCkpOnUodCkpfSxmPW9rKCksZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWUoaC52YWx1ZSwwKTtmb3IodmFyIGw9bShjKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtkLmluY2x1ZGVzKHApP2UocCwxKTplKHAsMil9Zi5jYW5vbmljYWxbdmsoKV09e307QmsoKX1mdW5jdGlvbiBEaygpe3ZhciBhPXZrKCk7cmV0dXJuISFvaygpLmNhbm9uaWNhbFthXX0KZnVuY3Rpb24gRWsoYSl7cmV0dXJuISFvaygpLmNvbnRhaW5lclthXX1mdW5jdGlvbiBGaygpe3ZhciBhPXprKCksYj15ayhhKTtyZXR1cm4gYiYmYi5jb250ZXh0fWZ1bmN0aW9uIEdrKGEpe3ZhciBiPW5rKGEpO3JldHVybiBiP2Iuc3RhdGUhPT0wOiExfWZ1bmN0aW9uIHprKCl7cmV0dXJue2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOklmKDcpfX1mdW5jdGlvbiBIayhhLGIsYyl7dmFyIGQ9emsoKSxlPW9rKCkuY29udGFpbmVyW2FdO2UmJmUuc3RhdGUhPT0zfHwob2soKS5jb250YWluZXJbYV09e3N0YXRlOjEsY29udGV4dDpiLHBhcmVudDpkfSxwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITF9LGMpKX1mdW5jdGlvbiBJayhhLGIsYyl7dmFyIGQ9b2soKSxlPW5rKGEpO2U/ZS5zdGF0ZT0xOihlPXtjb250ZXh0OmIsc3RhdGU6MSxwYXJlbnQ6emsoKX0sZC5kZXN0aW5hdGlvbkFycmF5W2FdPVtlXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxjKX0KZnVuY3Rpb24gSmsoYSxiLGMsZCl7dmFyIGU9b2soKSxmPW5rKGEpO2Y/Zi5zdGF0ZT0wOihmPXtzdGF0ZTowLHRyYW5zcG9ydFVybDpiLGNvbnRleHQ6YyxwYXJlbnQ6emsoKX0sZS5kZXN0aW5hdGlvbkFycmF5W2FdPVtmXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxkKTtQKDkxKX1mdW5jdGlvbiBLaygpe3ZhciBhPW9rKCkuY29udGFpbmVyLGI7Zm9yKGIgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGIpJiZhW2JdLnN0YXRlPT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBMaygpe3ZhciBhPXt9O0diKG9rKCkuZGVzdGluYXRpb24sZnVuY3Rpb24oYixjKXsoYz09bnVsbD92b2lkIDA6Yy5zdGF0ZSk9PT0wJiYoYVtiXT1jKX0pO0diKG9rKCkuZGVzdGluYXRpb25BcnJheSxmdW5jdGlvbihiLGMpe3ZhciBkPWNbMF07KGQ9PW51bGw/dm9pZCAwOmQuc3RhdGUpPT09MCYmKGFbYl09ZCl9KTtyZXR1cm4gYX0KZnVuY3Rpb24gTWsoYSl7cmV0dXJuISEoYSYmYS5wYXJlbnQmJmEuY29udGV4dCYmYS5jb250ZXh0LnNvdXJjZT09PTEmJmEucGFyZW50LmN0aWQuaW5kZXhPZigiR1RNLSIpIT09MCl9ZnVuY3Rpb24gTmsoKXtmb3IodmFyIGE9b2soKSxiPW0od2soKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoYS5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzW2MudmFsdWVdKXJldHVybiEwO3JldHVybiExfTt2YXIgT2s9ZnVuY3Rpb24oKXt9O09rLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQifTt2YXIgUGs9bmV3IE9rOwp2YXIgU2s9ZnVuY3Rpb24oYSxiLGMpe2EgaW5zdGFuY2VvZiBRayYmKGE9YS5yZXNvbHZlKFJrLk4oYixjKSksYj14Yik7cmV0dXJue3dzOmEsb25TdWNjZXNzOmJ9fSxVaz1mdW5jdGlvbihhKXtSa3x8KFJrPW5ldyBUayk7cmV0dXJuIFJrLksoYSl9LFZrPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307a2ooInJtIixmdW5jdGlvbigpe3JldHVybnt9fSlbdmsoKV09ZnVuY3Rpb24oYil7aWYoYS5ILmhhc093blByb3BlcnR5KGIpKXJldHVybiBhLkhbYl19fTtWay5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtpZihhPT09UGspcmV0dXJuIGE7dmFyIGI9cmooKTt0aGlzLkhbYl09YTtyZXR1cm4nZ29vZ2xlX3RhZ19tYW5hZ2VyWyJybSJdWyInK3ZrKCkrJyJdKCcrYisiKSJ9O3ZhciBXayxRaz1mdW5jdGlvbihhKXt0aGlzLnZhbHVlT2Y9dGhpcy50b1N0cmluZzt0aGlzLnJlc29sdmU9ZnVuY3Rpb24oYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnB1c2goYVtkXT09PQpQaz9iOmFbZF0pO3JldHVybiBjLmpvaW4oIiIpfX07UWsucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZSgidW5kZWZpbmVkIil9O3ZhciBUaz1mdW5jdGlvbigpe3RoaXMuSD17fX07VGsucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1TdHJpbmcocmooKSk7dGhpcy5IW2NdPVthLGJdO3JldHVybiBjfTtUay5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9YT8wOjE7cmV0dXJuIGZ1bmN0aW9uKGQpe1AoYT8xMzQ6MTM1KTt2YXIgZT1iLkhbZF07aWYoZSYmdHlwZW9mIGVbY109PT0iZnVuY3Rpb24iKWVbY10oKTtiLkhbZF09dm9pZCAwfX07dmFyIFJrO3ZhciBYaz1mdW5jdGlvbigpe3RoaXMuc3RvcmFnZT1ZYSgpfTtYay5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5zdG9yYWdlLnNldChTdHJpbmcoYSksYil9O1hrLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07dmFyIFlrO2Z1bmN0aW9uIFprKGEsYil7WWt8fChZaz1uZXcgWGspO1lrLnNldChhLGIpfWZ1bmN0aW9uICRrKGEpe1lrfHwoWWs9bmV3IFhrKTtyZXR1cm4gWWsuZ2V0KGEpfWZ1bmN0aW9uIGFsKGEsYil7WWt8fChZaz1uZXcgWGspO3ZhciBjPVlrO2Muc3RvcmFnZS5oYXMoU3RyaW5nKGEpKXx8Yy5zdG9yYWdlLnNldChTdHJpbmcoYSksYigpKTtyZXR1cm4gYy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTtmdW5jdGlvbiBibChhLGIpe2Z1bmN0aW9uIGMoZyl7dmFyIGg9UmooZyksbD1MaihoLCJwcm90b2NvbCIpLG49TGooaCwiaG9zdCIsITApLHA9TGooaCwicG9ydCIpLHE9TGooaCwicGF0aCIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXC8kLywiIik7aWYobD09PXZvaWQgMHx8bD09PSJodHRwIiYmcD09PSI4MCJ8fGw9PT0iaHR0cHMiJiZwPT09IjQ0MyIpbD0id2ViIixwPSJkZWZhdWx0IjtyZXR1cm5bbCxuLHAscV19Zm9yKHZhciBkPWMoU3RyaW5nKGEpKSxlPWMoU3RyaW5nKGIpKSxmPTA7ZjxkLmxlbmd0aDtmKyspaWYoZFtmXSE9PWVbZl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gY2woYSl7cmV0dXJuIGRsKGEpPzE6MH0KZnVuY3Rpb24gZGwoYSl7dmFyIGI9YS5hcmcwLGM9YS5hcmcxO2lmKGEuYW55X29mJiZBcnJheS5pc0FycmF5KGMpKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9RWQoYSx7fSk7RWQoe2FyZzE6Y1tkXSxhbnlfb2Y6dm9pZCAwfSxlKTtpZihjbChlKSlyZXR1cm4hMH1yZXR1cm4hMX1zd2l0Y2goYVsiZnVuY3Rpb24iXSl7Y2FzZSAiX2NuIjpyZXR1cm4gS2coYixjKTtjYXNlICJfY3NzIjpyZXR1cm4gR2coYixjKTtjYXNlICJfZXciOnJldHVybiBIZyhiLGMpO2Nhc2UgIl9lcSI6cmV0dXJuIExnKGIsYyk7Y2FzZSAiX2dlIjpyZXR1cm4gTWcoYixjKTtjYXNlICJfZ3QiOnJldHVybiBPZyhiLGMpO2Nhc2UgIl9sYyI6cmV0dXJuIElnKGIsYyk7Y2FzZSAiX2xlIjpyZXR1cm4gTmcoYixjKTtjYXNlICJfbHQiOnJldHVybiBQZyhiLGMpO2Nhc2UgIl9yZSI6cmV0dXJuIEpnKGIsYyxhLmlnbm9yZV9jYXNlLGFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pKTtjYXNlICJfc3ciOnJldHVybiBRZyhiLApjKTtjYXNlICJfdW0iOnJldHVybiBibChiLGMpfXJldHVybiExfTtmdW5jdGlvbiBlbChhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBmO3N3aXRjaChhWzBdKXtjYXNlICJmdW5jdGlvbl9pZCI6cmV0dXJuIGFbMV07Y2FzZSAibGlzdCI6Zj1bXTtmb3IodmFyIGc9MTtnPGEubGVuZ3RoO2crKylmLnB1c2goZWwoYVtnXSxiLGMsZCxlKSk7cmV0dXJuIGY7Y2FzZSAibWFjcm8iOnZhciBoPWRbYVsxXV07cmV0dXJuIGg/aC5ldmFsdWF0ZShiLGUpOnZvaWQgMDtjYXNlICJtYXAiOmY9e307Zm9yKHZhciBsPTE7bDxhLmxlbmd0aDtsKz0yKWZbZWwoYVtsXSxiLGMsZCxlKV09ZWwoYVtsKzFdLGIsYyxkLGUpO3JldHVybiBmO2Nhc2UgInRlbXBsYXRlIjpmPVtdO2Zvcih2YXIgbj0hMSxwPTE7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWVsKGFbcF0sYixjLGQsZSk7bj1ufHxxPT09UGs7Zi5wdXNoKHEpfQppZihuKXJldHVybiBuZXcgUWsoZik7cmV0dXJuIGYuam9pbigiIik7Y2FzZSAiZXNjYXBlIjpmPWVsKGFbMV0sYixjLGQsZSk7dmFyIHI7aWYocj1BcnJheS5pc0FycmF5KGFbMV0pJiZhWzFdWzBdPT09Im1hY3JvIil7Zm9yKHZhciB0PSExLHU9ITEsdj0yO3Y8YS5sZW5ndGg7disrKXQ9dHx8YVt2XT09PTgsdT11fHxhW3ZdPT09MTY7cj10JiZ1fWlmKHIpe3ZhciB4PWY7V2t8fChXaz1uZXcgVmspO3JldHVybiBXay5LKHgpfWY9U3RyaW5nKGYpO2Zvcih2YXIgeT0yO3k8YS5sZW5ndGg7eSsrKVVpW2FbeV1dJiYoZj1VaVthW3ldXShmKSk7cmV0dXJuIGY7Y2FzZSAidGFnIjp2YXIgej1hWzFdO2lmKCFjW3pdKXRocm93IEVycm9yKCJVbmFibGUgdG8gcmVzb2x2ZSB0YWcgcmVmZXJlbmNlICIrCnorIi4iKTtyZXR1cm57Ym86YVsyXSxpbmRleDp6fTtjYXNlICJ6YiI6dmFyIEM9e30sRD0oQ1tHZi5ZYl09YVsxXSxDLmFyZzA9ZWwoYVsyXSxiLGMsZCxlKSxDLmFyZzE9ZWwoYVszXSxiLGMsZCxlKSxDLmlnbm9yZV9jYXNlPWVsKGFbNV0sYixjLGQsZSksQyksST1jbChEKSxHPSEhYVs0XTtyZXR1cm4gR3x8SSE9PTI/RyE9PShJPT09MSk6bnVsbDtkZWZhdWx0OnRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4cGFuZCB1bmtub3duIFZhbHVlIHR5cGU6ICIrYVswXSsiLiIpO319cmV0dXJuIGF9O2Z1bmN0aW9uIGZsKGEpe3JldHVybiBhJiZhLmluZGV4T2YoInBlbmRpbmc6Iik9PT0wP2dsKGEuc3Vic3RyKDgpKTohMX1mdW5jdGlvbiBnbChhKXtpZihhPT1udWxsfHxhLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIGI9TnVtYmVyKGEpLGM9TmIoKTtyZXR1cm4gYjxjKzNFNSYmYj5jLTlFNX07dmFyIGhsPSExLGlsPSExLGpsPSExLGtsPTAsbGw9ITEsbWw9dm9pZCAwLG5sPVtdO2Z1bmN0aW9uIG9sKGEpe2lmKGtsPT09MClsbCYmbmwmJihubC5sZW5ndGg+PTEwMCYmbmwuc2hpZnQoKSxubC5wdXNoKGEpKTtlbHNlIGlmKHBsKCkpe3ZhciBiPUUoNDEpLGM9TWMoYixbXSk7Yy5sZW5ndGg+PTUwJiZjLnNoaWZ0KCk7Yy5wdXNoKGEpfX1mdW5jdGlvbiBxbCgpe2lsfHwocmwoKSxzbChrbCkpfWZ1bmN0aW9uIHNsKGEpe2lmKCFpbHx8a2w9PT0yJiZhPT09MSlpZihpbD0hMCxqbCYmKGFkKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCksamw9ITEpLG1sIT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQobWwpLG1sPXZvaWQgMCksa2w9YSxhPT09MSl7dmFyIGI9bmw7bmw9dm9pZCAwO2I9PW51bGx8fGIuZm9yRWFjaChmdW5jdGlvbihjKXtvbChjKX0pfX0KZnVuY3Rpb24gcmwoKXt2YXIgYT1CLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFnLWFzc2lzdGFudC1wcm9kLXByZXNlbnQiKTtnbChhKT9rbD0xOiFmbChhKXx8aGx8fGpsP2tsPTI6KGpsPSEwLCRjKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCwhMSksbWw9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWx8fChybCgpLHNsKGtsKSk7aGw9ITB9LDIwMCkpfWZ1bmN0aW9uIHBsKCl7aWYoIWxsKXJldHVybiExO3N3aXRjaChrbCl7Y2FzZSAxOmNhc2UgMDpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIHRsKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pO3JldHVybiBhLmljcz1hLmljc3x8bmV3IHVsfXZhciB1bD1mdW5jdGlvbigpe3RoaXMuZW50cmllcz17fTt0aGlzLndhaXRQZXJpb2RUaW1lZE91dD10aGlzLndhc1NldExhdGU9dGhpcy5hY2Nlc3NlZEFueT10aGlzLmFjY2Vzc2VkRGVmYXVsdD10aGlzLnVzZWRJbXBsaWNpdD10aGlzLnVzZWRVcGRhdGU9dGhpcy51c2VkRGVmYXVsdD10aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSExO3RoaXMuSD1bXX07CnVsLnByb3RvdHlwZS5kZWZhdWx0PWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fCF0aGlzLmFjY2Vzc2VkRGVmYXVsdCYmIXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZERlZmF1bHQ9dGhpcy5hY3RpdmU9ITA7c2IoIlRBR0dJTkciLDE5KTtiPT1udWxsP3NiKCJUQUdHSU5HIiwxOCk6dmwodGhpcyxhLGI9PT0iZ3JhbnRlZCIsYyxkLGUsZixnKX07dWwucHJvdG90eXBlLndhaXRGb3JVcGRhdGU9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXZsKHRoaXMsYVtkXSx2b2lkIDAsdm9pZCAwLCIiLCIiLGIsYyl9Owp2YXIgdmw9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgbD1hLmVudHJpZXMsbj1sW2JdfHx7fSxwPW4ucmVnaW9uLHE9ZCYmemIoZCk/ZC50b1VwcGVyQ2FzZSgpOnZvaWQgMDtlPWUudG9VcHBlckNhc2UoKTtmPWYudG9VcHBlckNhc2UoKTtpZihlPT09IiJ8fHE9PT1mfHwocT09PWU/cCE9PWY6IXEmJiFwKSl7dmFyIHI9ISEoZyYmZz4wJiZuLnVwZGF0ZT09PXZvaWQgMCksdD17cmVnaW9uOnEsZGVjbGFyZV9yZWdpb246bi5kZWNsYXJlX3JlZ2lvbixpbXBsaWNpdDpuLmltcGxpY2l0LGRlZmF1bHQ6YyE9PXZvaWQgMD9jOm4uZGVmYXVsdCxkZWNsYXJlOm4uZGVjbGFyZSx1cGRhdGU6bi51cGRhdGUscXVpZXQ6cn07aWYoZSE9PSIifHxuLmRlZmF1bHQhPT0hMSlsW2JdPXQ7ciYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bFtiXT09PXQmJnQucXVpZXQmJihzYigiVEFHR0lORyIsMiksYS53YWl0UGVyaW9kVGltZWRPdXQ9ITAsYS5jbGVhclRpbWVvdXQoYix2b2lkIDAsaCksCmEubm90aWZ5TGlzdGVuZXJzKCkpfSxnKX19O2s9dWwucHJvdG90eXBlO2suY2xlYXJUaW1lb3V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bYV0sZT1jLmRlbGVnYXRlZENvbnNlbnRUeXBlcyxmO2ZvcihmIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShmKSYmZVtmXT09PWEmJmQucHVzaChmKTt2YXIgZz10aGlzLmVudHJpZXNbYV18fHt9LGg9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKTtpZihnLnF1aWV0KXtnLnF1aWV0PSExO2Zvcih2YXIgbD1tKGQpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXdsKHRoaXMsbi52YWx1ZSl9ZWxzZSBpZihiIT09dm9pZCAwJiZoIT09Yilmb3IodmFyIHA9bShkKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl3bCh0aGlzLHEudmFsdWUpfTsKay51cGRhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fHRoaXMudXNlZFVwZGF0ZXx8IXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZFVwZGF0ZT10aGlzLmFjdGl2ZT0hMDtpZihiIT1udWxsKXt2YXIgZD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpLGU9dGhpcy5lbnRyaWVzOyhlW2FdPWVbYV18fHt9KS51cGRhdGU9Yj09PSJncmFudGVkIjt0aGlzLmNsZWFyVGltZW91dChhLGQsYyl9fTsKay5kZWNsYXJlPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMDt2YXIgZj10aGlzLmVudHJpZXMsZz1mW2FdfHx7fSxoPWcuZGVjbGFyZV9yZWdpb24sbD1jJiZ6YihjKT9jLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2Q9ZC50b1VwcGVyQ2FzZSgpO2U9ZS50b1VwcGVyQ2FzZSgpO2lmKGQ9PT0iInx8bD09PWV8fChsPT09ZD9oIT09ZTohbCYmIWgpKXt2YXIgbj17cmVnaW9uOmcucmVnaW9uLGRlY2xhcmVfcmVnaW9uOmwsZGVjbGFyZTpiPT09ImdyYW50ZWQiLGltcGxpY2l0OmcuaW1wbGljaXQsZGVmYXVsdDpnLmRlZmF1bHQsdXBkYXRlOmcudXBkYXRlLHF1aWV0OmcucXVpZXR9O2lmKGQhPT0iInx8Zy5kZWNsYXJlIT09ITEpZlthXT1ufX07CmsuaW1wbGljaXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnVzZWRJbXBsaWNpdD0hMDt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdPWNbYV18fHt9O2QuaW1wbGljaXQhPT0hMSYmKGQuaW1wbGljaXQ9Yj09PSJncmFudGVkIil9OwprLmdldENvbnNlbnRTdGF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV18fHt9LGU9ZC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBmPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYV07aWYoZj09PTMpcmV0dXJuIDE7aWYoZj09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPWQuZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiPT1udWxsPzA6Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBnPWIuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2FdLGg9Y1tnXXx8e307ZT1oLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGw9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1tnXTtpZihsPT09MylyZXR1cm4gMTtpZihsPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9CmguZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6Mn1lPWQuZGVjbGFyZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtlPWQuaW1wbGljaXQ7cmV0dXJuIGUhPT12b2lkIDA/ZT8zOjQ6MH07ay5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3RoaXMuSC5wdXNoKHtjb25zZW50VHlwZXM6YSxpZTpifSl9O3ZhciB3bD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8YS5ILmxlbmd0aDsrK2Mpe3ZhciBkPWEuSFtjXTtBcnJheS5pc0FycmF5KGQuY29uc2VudFR5cGVzKSYmZC5jb25zZW50VHlwZXMuaW5kZXhPZihiKSE9PS0xJiYoZC54bz0hMCl9fTt1bC5wcm90b3R5cGUubm90aWZ5TGlzdGVuZXJzPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yzx0aGlzLkgubGVuZ3RoOysrYyl7dmFyIGQ9dGhpcy5IW2NdO2lmKGQueG8pe2QueG89ITE7dHJ5e2QuaWUoe2NvbnNlbnRFdmVudElkOmEsY29uc2VudFByaW9yaXR5SWQ6Yn0pfWNhdGNoKGUpe319fX07dmFyIHhsPSExLHlsPSExLHpsPXt9LEFsPXtkZWxlZ2F0ZWRDb25zZW50VHlwZXM6e30sY29yZVBsYXRmb3JtU2VydmljZXM6e30sdXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLHNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsY29udGFpbmVyU2NvcGVkRGVmYXVsdHM6KHpsLmFkX3N0b3JhZ2U9MSx6bC5hbmFseXRpY3Nfc3RvcmFnZT0xLHpsLmFkX3VzZXJfZGF0YT0xLHpsLmFkX3BlcnNvbmFsaXphdGlvbj0xLHpsKSx1c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM6ITF9O2Z1bmN0aW9uIEJsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4oemIoYSk/W2FdOmEpLmV2ZXJ5KGZ1bmN0aW9uKGMpe3N3aXRjaChiLmdldENvbnNlbnRTdGF0ZShjLEFsKSl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4hMDtjYXNlIDI6Y2FzZSA0OnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fSl9CmZ1bmN0aW9uIENsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4gYi5nZXRDb25zZW50U3RhdGUoYSxBbCl9ZnVuY3Rpb24gRGwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiEoYi5lbnRyaWVzW2FdfHx7fSkucXVpZXR9ZnVuY3Rpb24gRWwoKXtpZighWWYoNSkpcmV0dXJuITE7dmFyIGE9dGwoKTthLmFjY2Vzc2VkQW55PSEwO2lmKGEuYWN0aXZlKXJldHVybiEwO2lmKCFBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpcmV0dXJuITE7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tjLnZhbHVlXSE9PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRmwoYSxiKXt0bCgpLmFkZExpc3RlbmVyKGEsYil9CmZ1bmN0aW9uIEdsKGEsYil7dGwoKS5ub3RpZnlMaXN0ZW5lcnMoYSxiKX1mdW5jdGlvbiBIbChhLGIpe2lmKGIuZXZlcnkoRGwpKWEoe30pO2Vsc2V7dmFyIGM9ITE7RmwoYixmdW5jdGlvbihkKXshYyYmYi5ldmVyeShEbCkmJihjPSEwLGEoZCkpfSl9fQpmdW5jdGlvbiBJbChhLGIpe3ZhciBjPXpiKGIpP1tiXTpiLGQ9e30sZT1mdW5jdGlvbigpe3JldHVybiBjLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gQmwoaCkmJiFkW2hdfSl9LGY9ZSgpO2lmKGYubGVuZ3RoIT09Yy5sZW5ndGgpe3ZhciBnPWZ1bmN0aW9uKGgpe2Zvcih2YXIgbD1tKGgpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWRbbi52YWx1ZV09ITB9O2coZik7RmwoYyxmdW5jdGlvbihoKXtmdW5jdGlvbiBsKHEpe3EubGVuZ3RoIT09MCYmKGcocSksaC5jb25zZW50VHlwZXM9cSxhKGgpKX12YXIgbj1lKCk7aWYobi5sZW5ndGghPT0wKXt2YXIgcD1PYmplY3Qua2V5cyhkKS5sZW5ndGg7bi5sZW5ndGgrcD49Yy5sZW5ndGg/bChuKTpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKGUoKSl9LDUwMCl9fSl9fTt2YXIgSmw9ITE7ZnVuY3Rpb24gS2woYSxiKXt2YXIgYz13aygpLGQ9dGsoKTtFKDI2KTt2YXIgZT1JZig0Nyk/MDpJZig1MCk/MTozLGY9WGooKTtpZihwbCgpKXt2YXIgZz1MbCgiSU5JVCIpO2cuY29udGFpbmVyTG9hZFNvdXJjZT1hIT1udWxsP2E6MDtiJiYoZy5wYXJlbnRUYXJnZXRSZWZlcmVuY2U9Yik7Zy5hbGlhc2VzPWM7Zy5kZXN0aW5hdGlvbnM9ZDtlIT09dm9pZCAwJiYoZy5ndGc9e3NvdXJjZTplLG1QYXRoOmYhPW51bGw/ZjoiIn0pO29sKGcpfX0KZnVuY3Rpb24gTWwoYSl7dmFyIGIsYyxkLGU7Yj1hLnRhcmdldElkO2M9YS5yZXF1ZXN0O2Q9YS5xYjtlPWEuaXNCYXRjaGVkO3ZhciBmO2lmKGY9cGwoKSl7dmFyIGc7YTpzd2l0Y2goYy5lbmRwb2ludCl7Y2FzZSA2ODpjYXNlIDY5OmNhc2UgMTk6Y2FzZSA2MjpjYXNlIDQ3Omc9ITA7YnJlYWsgYTtkZWZhdWx0Omc9ITF9Zj0hZ31pZihmKXt2YXIgaD1MbCgiR1RBR19ISVQiLHtldmVudElkOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQucHJpb3JpdHlJZH0pO2gudGFyZ2V0PWI7aC51cmw9Yy51cmw7Yy5wb3N0Qm9keSYmKGgucG9zdEJvZHk9Yy5wb3N0Qm9keSk7aC5wYXJhbWV0ZXJFbmNvZGluZz1jLnBhcmFtZXRlckVuY29kaW5nO2guZW5kcG9pbnQ9Yy5lbmRwb2ludDtlIT09dm9pZCAwJiYoaC5pc0JhdGNoZWQ9ZSk7b2woaCl9fWZ1bmN0aW9uIE5sKGEpe3BsKCkmJk1sKGEoKSl9CmZ1bmN0aW9uIExsKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Yi5ncm91cElkPU9sO3ZhciBjLGQ9YixlPVBsLGY9e3B1YmxpY0lkOlFsfTtkLmV2ZW50SWQhPW51bGwmJihmLmV2ZW50SWQ9ZC5ldmVudElkKTtkLnByaW9yaXR5SWQhPW51bGwmJihmLnByaW9yaXR5SWQ9ZC5wcmlvcml0eUlkKTtkLmV2ZW50TmFtZSYmKGYuZXZlbnROYW1lPWQuZXZlbnROYW1lKTtkLmdyb3VwSWQmJihmLmdyb3VwSWQ9ZC5ncm91cElkKTtkLnRhZ05hbWUmJihmLnRhZ05hbWU9ZC50YWdOYW1lKTtjPXtjb250YWluZXJQcm9kdWN0OiJHVE0iLGtleTpmLHZlcnNpb246ZSxtZXNzYWdlVHlwZTphfTtjLmNvbnRhaW5lclByb2R1Y3Q9Smw/Ik9HVCI6IkdUTSI7Yy5rZXkudGFyZ2V0UmVmPVJsO3JldHVybiBjfXZhciBRbD0iIixQbD0iIixSbD17Y3RpZDoiIixpc0Rlc3RpbmF0aW9uOiExfSxPbDsKZnVuY3Rpb24gU2woYSl7dmFyIGI9RSg1KSxjPUlmKDQ1KSxkPXNrKCksZT1FKDYpLGY9RSgxKTtFKDIzKTtrbD0wO2xsPSEwO3JsKCk7T2w9YTtRbD1iO1BsPWY7Smw9YztSbD17Y3RpZDpiLGlzRGVzdGluYXRpb246ZCxjYW5vbmljYWxJZDplfX07ZnVuY3Rpb24gVGwoYSxiLGMsZCl7aWYocGwoKSl7dmFyIGU9Yi5NO01sKHt0YXJnZXRJZDpkfHxbYi50YXJnZXQuZGVzdGluYXRpb25JZF0scmVxdWVzdDp7dXJsOmEscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDpjfSxxYjp7ZXZlbnRJZDplLmV2ZW50SWQscHJpb3JpdHlJZDplLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fTtmdW5jdGlvbiBVbChhLGIsYyl7dmFyIGQ9Imh0dHBzOi8vIithK2I7cmV0dXJuIGM/ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKT9YaigpK2MrYjpkfTpmdW5jdGlvbigpe3JldHVybiBkfX07dmFyIFZsPXt9LFdsPShWbFsyMl09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9hcy9kIiksVmxbNjBdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9ncyIpLFZsWzIzXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZy9kIiksVmwpO3ZhciBYbD17fSxZbD0oWGxbNV09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzY2XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3Vjb252ZXJzaW9uIiksWGxbNjNdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2NF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbNjVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzc0XT1mdW5jdGlvbigpe3JldHVybiBYaigpKyIvYXMvcC9jIn0sWGwpO3ZhciBabD17fSwkbD0oWmxbNDVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29sbGVjdCIpLFpsWzQ2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbGxlY3QiLCIvZ3MiKSxabFs2OV09VWwoImFkLmRvdWJsZWNsaWNrLm5ldCIsIi9jY20vcy9jb2xsZWN0IiksWmxbNThdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsWzU3XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmwpO3ZhciBhbT17fSxibT0oYW1bOV09VWwoImdvb2dsZWFkcy5nLmRvdWJsZWNsaWNrLm5ldCIsIi9wYWdlYWQvdmlld3Rocm91Z2hjb252ZXJzaW9uIiksYW1bNjhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9ybWt0L2NvbGxlY3QiKSxhbSk7dmFyIGNtPXt9LGRtPShjbVsxMV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzIxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY21bNzJdPVVsKCJnb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzczXT1VbCgiZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbSk7dmFyIGVtPXt9LGZtPShlbVs1MV09VWwoInd3dy5nb29nbGUuY29tIiwiL3RyYXZlbC9mbGlnaHRzL2NsaWNrL2NvbnZlcnNpb24iKSxlbSk7dmFyIGdtPXt9LGhtPShnbVsxXT1mdW5jdGlvbigpe3JldHVybiJodHRwczovL2FkLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eTsifSxnbVsyXT1mdW5jdGlvbigpe3JldHVybihXaigpP1hqKCk6Imh0dHBzOi8vYWRlLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIpKyIvZGRtL2FjdGl2aXR5IisoTSg0NjcpPyI7IjoiLyIpfSxnbVszXT1mdW5jdGlvbihhKXtyZXR1cm4iaHR0cHM6Ly8iK2EubHIrIi5mbHMuZG91YmxlY2xpY2submV0L2FjdGl2aXR5aTsifSxnbSk7ZnVuY3Rpb24gaW0oYSl7c2IoIkhFQUxUSCIsYSl9O3ZhciBqbT17YmE6e1B0OiJhd191c2VyX2RhdGFfY2FjaGUiLG9pOiJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiLGJoOiJkaWFnbm9zdGljc19wYWdlX2lkIixvcDoiZW1lbW8iLGR1OiJlbV9yZWdpc3RyeSIsU2k6ImVhYiIscnU6ImZsX3VzZXJfZGF0YV9jYWNoZSIsdHU6ImdhNF91c2VyX2RhdGFfY2FjaGUiLEx1OiJpZGNfcHZfY2xhaW0iLFNlOiJpcF9nZW9fZGF0YV9jYWNoZSIsWGk6ImlwX2dlb19mZXRjaF9pbl9wcm9ncmVzcyIsam46Im5iX2RhdGEiLFRxOiJwYWdlX2V4cGVyaW1lbnRfaWRzIixsbjoicGxkIixWZToicHRfZGF0YSIsbW46InB0X2xpc3RlbmVyX3NldCIsa2o6InJldHJ5X2NvbnRhaW5lcnMiLE9oOiJzZXJ2aWNlX3dvcmtlcl9lbmRwb2ludCIsWnE6InNoYXJlZF91c2VyX2lkIixhcjoic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIixzajoic2hhcmVkX3VzZXJfaWRfc291cmNlIixidjoiYXdoIixocjoidW5pdmVyc2FsX2NsYWltX3JlZ2lzdHJ5In19O3ZhciBrbT1mdW5jdGlvbihhKXtyZXR1cm4gdGYoZnVuY3Rpb24oYil7Zm9yKHZhciBjIGluIGEpaWYoYj09PWFbY10mJiEvXlswLTldKyQvLnRlc3QoYykpcmV0dXJuITA7cmV0dXJuITF9KX0oam0uYmEpOwpmdW5jdGlvbiBsbShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO2lmKGttKGEpKXt2YXIgYyxkLGU9KGQ9KGM9TWMoImdvb2dsZV90YWdfZGF0YSIse30pKS54Y2QpIT1udWxsP2Q6Yy54Y2Q9e307aWYoZVthXSlyZXR1cm4gZVthXTtpZihiKXt2YXIgZj12b2lkIDAsZz0xLGg9e30sbD17c2V0OmZ1bmN0aW9uKG4pe2Y9bjtsLm5vdGlmeSgpfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe2hbU3RyaW5nKGcpXT1uO3JldHVybiBnKyt9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe3ZhciBwPVN0cmluZyhuKTtyZXR1cm4gaC5oYXNPd25Qcm9wZXJ0eShwKT8oZGVsZXRlIGhbcF0sITApOiExfSxub3RpZnk6ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyhoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7dHJ5e2hbcV0oYSxmKX1jYXRjaChyKXt9fX19O3JldHVybiBlW2FdPWx9fX0KZnVuY3Rpb24gbW0oYSxiKXt2YXIgYz1sbShhLCEwKTtjJiZjLnNldChiKX1mdW5jdGlvbiBubShhKXt2YXIgYjtyZXR1cm4oYj1sbShhKSk9PW51bGw/dm9pZCAwOmIuZ2V0KCl9ZnVuY3Rpb24gb20oYSxiKXt2YXIgYz1sbShhKTtpZighYyl7Yz1sbShhLCEwKTtpZighYylyZXR1cm47Yy5zZXQoYil9cmV0dXJuIGMuZ2V0KCl9ZnVuY3Rpb24gcG0oYSxiKXtpZih0eXBlb2YgYj09PSJmdW5jdGlvbiIpe3ZhciBjO3JldHVybihjPWxtKGEsITApKT09bnVsbD92b2lkIDA6Yy5zdWJzY3JpYmUoYil9fWZ1bmN0aW9uIHFtKGEsYil7dmFyIGM9bG0oYSk7cmV0dXJuIGM/Yy51bnN1YnNjcmliZShiKTohMX07dmFyIHNtPWZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz0hMX07c20ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLkt8fCh0aGlzLkg9dG0oKSx0aGlzLkhbIjAiXSYmb20oam0uYmEuU2UsSlNPTi5zdHJpbmdpZnkodGhpcy5IKSkpfTsKdmFyIHhtPWZ1bmN0aW9uKCl7dmFyIGE9dW0sYj12bSxjPXZvaWQgMCxkPWZ1bmN0aW9uKCl7YyE9PXZvaWQgMCYmcW0oam0uYmEuU2UsYyk7dHJ5e3ZhciBmPW5tKGptLmJhLlNlKTtiLkg9SlNPTi5wYXJzZShmKX1jYXRjaChnKXtQKDEyMyksaW0oMiksYi5IPXt9fWIuSz0hMDthKCl9LGU9bm0oam0uYmEuU2UpO2U/ZChlKTooYz1wbShqbS5iYS5TZSxkKSx3bSgpKX0sd209ZnVuY3Rpb24oKXtpZighbm0oam0uYmEuWGkpKXttbShqbS5iYS5YaSwhMCk7dmFyIGE9ZnVuY3Rpb24oYil7bW0oam0uYmEuU2UsYnx8Int9Iik7bW0oam0uYmEuWGksITEpfTt0cnl7QS5mZXRjaCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9jY20vZ2VvIix7bWV0aG9kOiJHRVQiLGNhY2hlOiJuby1zdG9yZSIsbW9kZToiY29ycyIsY3JlZGVudGlhbHM6Im9taXQifSkudGhlbihmdW5jdGlvbihiKXtiLm9rP2IudGV4dCgpLnRoZW4oZnVuY3Rpb24oYyl7YShjKX0sZnVuY3Rpb24oKXthKCl9KTphKCl9LGZ1bmN0aW9uKCl7YSgpfSl9Y2F0Y2goYil7YSgpfX19LAp0bT1mdW5jdGlvbigpe3ZhciBhPUUoMjIpO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShxYihhKSl9Y2F0Y2goYil7cmV0dXJuIFAoMTIzKSxpbSgyKSx7fX19LHltPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjAiXXx8IiJ9LHptPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjEiXXx8IiJ9LEFtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sQm09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiNiJdIT09ITF9LENtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sRG09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiOwpyZXR1cm4gYn0sRW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO3JldHVybiBifSx2bT1uZXcgc207ZnVuY3Rpb24gRm0oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuImh0dHBzOi8vIisoRG0oKXx8Ind3dyIpKyIuZ29vZ2xlLWFuYWx5dGljcy5jb20vIithfWZ1bmN0aW9uIEdtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3ZhciBiPURtKCk7cmV0dXJuImh0dHBzOi8vIisoYj9iKyIuIjoiIikrImFuYWx5dGljcy5nb29nbGUuY29tLyIrYX12YXIgSG09e30sSW09KEhtWzE3XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvYWcvZy9jIjpHbSgpfSxIbVsxNl09ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2dhL2cvYyI6Rm0oKX0sSG1bNjddPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuIERtKCk/IiI6Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIithfSxIbSk7ZnVuY3Rpb24gSm0oYSxiLGMpe3ZhciBkPVVsKGIsIi9tZWFzdXJlbWVudC9jb252ZXJzaW9uIixjKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRG0oKT9hKCJtZWFzdXJlbWVudC9jb252ZXJzaW9uIik6ZCgpfX12YXIgS209e30sTG09KEttWzU1XT1KbShGbSwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvZ3MiKSxLbVs1NF09Sm0oR20sInd3dy5nb29nbGUuY29tIiwiL2ciKSxLbSk7dmFyIE1tPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sV2wsWWwsJGwsYm0sZG0sZm0saG0sTG0sSW0pO2Z1bmN0aW9uIE5tKGEsYil7dmFyIGM9T2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdIT1udWxsfSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKyI9IitiW2RdfSkuam9pbigiJiIpO3JldHVybiBNbVthXSh2b2lkIDApKyI/IitjfTt2YXIgT209e30sUG09KE9tLnRkcD0xLE9tLmV4cD0xLE9tLmd0bT0xLE9tLnBpZD0xLE9tLmRsPTEsT20uc2VxPTEsT20udD0xLE9tLnY9MSxPbSksUm09ZnVuY3Rpb24oKXt2YXIgYT1RbTtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGEuSFtiXX0pfSxTbT1mdW5jdGlvbihhLGIsYyl7aWYoYS5IW2JdPT09dm9pZCAwfHwoYz09PXZvaWQgMD8wOmMpKWEuSFtiXT0hMH0sVG09ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1BtW2JdfHwoUW0uSFtiXT0hMSl9KX0sUW09bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gVW0oYSxiLGMpe3ZhciBkPWM9PT12b2lkIDA/ITA6YyxlPVFtO2UuS1thXT1iOyhkPT09dm9pZCAwfHxkKSYmU20oZSxhKX1mdW5jdGlvbiBWbShhLGIpe1NtKFFtLGEsYj09PXZvaWQgMD8hMTpiKX07ZnVuY3Rpb24gV20oYSl7dmFyIGI9MDthLkdjLmZvckVhY2goZnVuY3Rpb24oYyl7Ynw9MTw8Y30pO3JldHVybiBifWZ1bmN0aW9uIFhtKCl7cmV0dXJue3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LGxmOnt9fX1mdW5jdGlvbiBZbShhLGIsYyxkKXt2YXIgZT1PYmplY3Qua2V5cyhhLm5mKS5zb3J0KGZ1bmN0aW9uKGYsZyl7cmV0dXJuIE51bWJlcihmKS1OdW1iZXIoZyl9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuW2YsYihhLm5mW2ZdKV19KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZbMV0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuam9pbihjKX0pLmpvaW4oZCk7cmV0dXJuIGU/ZTp2b2lkIDB9CmZ1bmN0aW9uIFptKGEsYil7dmFyIGMsZCxlO2M9Yz09PXZvaWQgMD8iXyI6YztkPWQ9PT12b2lkIDA/IjsiOmQ7ZT1lPT09dm9pZCAwPyJ+IjplO2Zvcih2YXIgZj1bXSxnPW0oT2JqZWN0LmtleXMoYS5sZikuc29ydCgpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPVltKGEubGZbbF0sYixjLGQpO2lmKG4pe3ZhciBwPXZvaWQgMDtmLnB1c2goIiIrKChwPWwpIT1udWxsP3A6IiIpK2Qrbil9fXJldHVybiBmLmxlbmd0aD9mLmpvaW4oZSk6dm9pZCAwfQpmdW5jdGlvbiAkbShhKXthLmpiPTA7YS5HYy5jbGVhcigpO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEubGYpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9YS5sZltjLnZhbHVlXTtkLmpiPTA7ZC5HYy5jbGVhcigpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQubmYpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9ZC5uZltmLnZhbHVlXTtnLmpiPTA7Zy5HYy5jbGVhcigpfX19CmZ1bmN0aW9uIGFuKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPzE6ZDthLnRvdGFsKz1kO2EuamIrPWQ7dmFyIGYsZz1iPT09dm9pZCAwPyIiOmI7Zj1hLmxmW2ddfHwoYS5sZltnXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbmY6e319KTtmLnRvdGFsKz1kO2YuamIrPWQ7dmFyIGgsbD1TdHJpbmcoYyk7aD1mLm5mW2xdfHwoZi5uZltsXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXR9KTtoLnRvdGFsKz1kO2guamIrPWQ7ZSE9PXZvaWQgMCYmKGEuR2MuYWRkKGUpLGYuR2MuYWRkKGUpLGguR2MuYWRkKGUpKX07dmFyIGJuPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCl9O2JuLnByb3RvdHlwZS5pbmNyZW1lbnQ9ZnVuY3Rpb24oYSxiKXthbih0aGlzLkgsYSxiKX07dmFyIGNuPW5ldyBibjtmdW5jdGlvbiBkbihhKXt2YXIgYj1TdHJpbmcoYVtHZi5ZYl18fCIiKS5yZXBsYWNlKC9fL2csIiIpO3JldHVybiBTYihiLCJjdnQiKT8iY3Z0IjpifXZhciBlbj1BLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCI/Z3RtX2xhdGVuY3k9Iik+PTB8fEEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIiZndG1fbGF0ZW5jeT0iKT49MDt2YXIgZ249ZnVuY3Rpb24oKXt2YXIgYT1mbjtyZXR1cm4gTSg2MDMpJiZJZig2NSwhMSkmJiFhLlp9LGZuPW5ldyBmdW5jdGlvbihhKXt0aGlzLlI9YSgpO3ZhciBiPUpmKDI3KTt0aGlzLk49ZW58fHRoaXMuUjxiO3ZhciBjPUpmKDQyKTt0aGlzLlo9ZW58fHRoaXMuUj49MS1jO3ZhciBkPU0oNjAzKSYmSWYoNjUsITEpO3RoaXMuSz10aGlzLlp8fGQ7dmFyIGU9SmYoMjcpLGY9SmYoNjMpO3RoaXMuSD1lbnx8Zj09PTF8fHRoaXMuUj49ZSYmdGhpcy5SPGUrZn0oZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKX0pO3ZhciBobj1mdW5jdGlvbigpe3RoaXMuSD17fX07aG4ucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjKXtpZihmbi5LKXt2YXIgZD1qbihiLGMpO2lmKGQpe3ZhciBlLGY9YjtmPT09NCYmKGY9NSk7dmFyIGc9dGhpcy5IW2ZdO2d8fChnPXRoaXMuSFtmXT17fSk7ZT1nO3ZhciBoPWVbZF07aHx8KGg9ZVtkXT1bXSk7aC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSkpO2NuLmluY3JlbWVudChhLmRlc3RpbmF0aW9uSWQsYS5lbmRwb2ludCk7YS5lbmRwb2ludCE9PTU2JiZhLmVuZHBvaW50IT09NjEmJlZtKCJtZGUiLCEwKX19fTsKdmFyIG1uPWZ1bmN0aW9uKGEsYil7dmFyIGM9a24sZD1qbihhLGIpO2lmKGQpe3ZhciBlPWxuKGMsYSk7aWYoZSl7dmFyIGY9ZVtkXTtmJiYoZVtkXT1mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hZy5Fb30pKX19fSxsbj1mdW5jdGlvbihhLGIpe2I9PT00JiYoYj01KTtyZXR1cm4gYS5IW2JdfSxqbj1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYoYlswXT09PSIvIil7dmFyIGQ7Yz0oKGQ9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmQub3JpZ2luKStifXRyeXt2YXIgZT1uZXcgVVJMKGMpO3JldHVybiBhPT09Mj9lLm9yaWdpbjplLm9yaWdpbitlLnBhdGhuYW1lfWNhdGNoKGYpe319LGtuPW5ldyBobjsKZnVuY3Rpb24gbm4oYSl7c3dpdGNoKGEpe2Nhc2UgInNjcmlwdC1zcmMiOnJldHVybiA0O2Nhc2UgInNjcmlwdC1zcmMtZWxlbSI6cmV0dXJuIDU7Y2FzZSAiZnJhbWUtc3JjIjpyZXR1cm4gMjtjYXNlICJjb25uZWN0LXNyYyI6cmV0dXJuIDE7Y2FzZSAiaW1nLXNyYyI6cmV0dXJuIDN9fTtmdW5jdGlvbiBvbihhLGIsYyl7dmFyIGQsZT1hLkdvb2dsZWJRaENzTztlfHwoZT17fSxhLkdvb2dsZWJRaENzTz1lKTtkPWU7aWYoZFtiXSlyZXR1cm4hMTtkW2JdPVtdO2RbYl1bMF09YztyZXR1cm4hMH07dmFyIHBuLHFuO2E6e2Zvcih2YXIgcm49WyJDTE9TVVJFX0ZMQUdTIl0sc249UmEsdG49MDt0bjxybi5sZW5ndGg7dG4rKylpZihzbj1zbltyblt0bl1dLHNuPT1udWxsKXtxbj1udWxsO2JyZWFrIGF9cW49c259dmFyIHVuPXFuJiZxbls2MTA0MDEzMDFdO3BuPXVuIT1udWxsP3VuOiExO2Z1bmN0aW9uIHZuKCl7dmFyIGE9UmEubmF2aWdhdG9yO2lmKGEpe3ZhciBiPWEudXNlckFnZW50O2lmKGIpcmV0dXJuIGJ9cmV0dXJuIiJ9dmFyIHduLHhuPVJhLm5hdmlnYXRvcjt3bj14bj94bi51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7ZnVuY3Rpb24geW4oYSl7aWYoIXBufHwhd24pcmV0dXJuITE7Zm9yKHZhciBiPTA7Yjx3bi5icmFuZHMubGVuZ3RoO2IrKyl7dmFyIGM9d24uYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gem4oYSl7cmV0dXJuIHZuKCkuaW5kZXhPZihhKSE9LTF9O2Z1bmN0aW9uIEFuKCl7cmV0dXJuIHBuPyEhd24mJnduLmJyYW5kcy5sZW5ndGg+MDohMX1mdW5jdGlvbiBCbigpe3JldHVybiBBbigpPyExOnpuKCJPcGVyYSIpfWZ1bmN0aW9uIENuKCl7cmV0dXJuIHpuKCJGaXJlZm94Iil8fHpuKCJGeGlPUyIpfWZ1bmN0aW9uIERuKCl7cmV0dXJuIEFuKCk/eW4oIkNocm9taXVtIik6KHpuKCJDaHJvbWUiKXx8em4oIkNyaU9TIikpJiYhKEFuKCk/MDp6bigiRWRnZSIpKXx8em4oIlNpbGsiKX07ZnVuY3Rpb24gRW4oKXtyZXR1cm4gcG4/ISF3biYmISF3bi5wbGF0Zm9ybTohMX1mdW5jdGlvbiBGbigpe3JldHVybiB6bigiaVBob25lIikmJiF6bigiaVBvZCIpJiYhem4oImlQYWQiKX1mdW5jdGlvbiBHbigpe0ZuKCl8fHpuKCJpUGFkIil8fHpuKCJpUG9kIil9O3ZhciBIbj1mdW5jdGlvbihhKXtIblsiICJdKGEpO3JldHVybiBhfTtIblsiICJdPWZ1bmN0aW9uKCl7fTtCbigpO0FuKCl8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIik7em4oIkVkZ2UiKTshem4oIkdlY2tvIil8fHZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpfHx6bigiRWRnZSIpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpJiZ6bigiTW9iaWxlIik7RW4oKXx8em4oIk1hY2ludG9zaCIpO0VuKCl8fHpuKCJXaW5kb3dzIik7KEVuKCk/d24ucGxhdGZvcm09PT0iTGludXgiOnpuKCJMaW51eCIpKXx8RW4oKXx8em4oIkNyT1MiKTtFbigpfHx6bigiQW5kcm9pZCIpO0ZuKCk7em4oImlQYWQiKTt6bigiaVBvZCIpO0duKCk7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIik7Q24oKTtGbigpfHx6bigiaVBvZCIpO3puKCJpUGFkIik7IXpuKCJBbmRyb2lkIil8fERuKCl8fENuKCl8fEJuKCl8fHpuKCJTaWxrIik7RG4oKTshem4oIlNhZmFyaSIpfHxEbigpfHwoQW4oKT8wOnpuKCJDb2FzdCIpKXx8Qm4oKXx8KEFuKCk/MDp6bigiRWRnZSIpKXx8KEFuKCk/eW4oIk1pY3Jvc29mdCBFZGdlIik6em4oIkVkZy8iKSl8fChBbigpP3luKCJPcGVyYSIpOnpuKCJPUFIiKSl8fENuKCl8fHpuKCJTaWxrIil8fHpuKCJBbmRyb2lkIil8fEduKCk7dmFyIEluPXt9LEpuPW51bGw7CmZ1bmN0aW9uIEtuKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZT4yNTUmJihiW2MrK109ZSYyNTUsZT4+PTgpO2JbYysrXT1lfXZhciBmPTQ7Zj09PXZvaWQgMCYmKGY9MCk7aWYoIUpuKXtKbj17fTtmb3IodmFyIGc9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksaD1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxsPTA7bDw1O2wrKyl7dmFyIG49Zy5jb25jYXQoaFtsXS5zcGxpdCgiIikpO0luW2xdPW47Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07Sm5bcV09PT12b2lkIDAmJihKbltxXT1wKX19fWZvcih2YXIgcj1JbltmXSx0PUFycmF5KE1hdGguZmxvb3IoYi5sZW5ndGgvMykpLHU9cls2NF18fCIiLHY9MCx4PTA7djxiLmxlbmd0aC0yO3YrPTMpe3ZhciB5PWJbdl0sej1iW3YrMV0sQz1iW3YrMl0sCkQ9clt5Pj4yXSxJPXJbKHkmMyk8PDR8ej4+NF0sRz1yWyh6JjE1KTw8MnxDPj42XSxOPXJbQyY2M107dFt4KytdPSIiK0QrSStHK059dmFyIFM9MCxXPXU7c3dpdGNoKGIubGVuZ3RoLXYpe2Nhc2UgMjpTPWJbdisxXSxXPXJbKFMmMTUpPDwyXXx8dTtjYXNlIDE6dmFyIGVhPWJbdl07dFt4XT0iIityW2VhPj4yXStyWyhlYSYzKTw8NHxTPj40XStXK3V9cmV0dXJuIHQuam9pbigiIil9O3ZhciBMbj1mdW5jdGlvbihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXCsvZywiICIpKX07dmFyIE1uPVJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIik7ZnVuY3Rpb24gTm4oYSxiLGMsZCl7Zm9yKHZhciBlPWIsZj1jLmxlbmd0aDsoZT1hLmluZGV4T2YoYyxlKSk+PTAmJmU8ZDspe3ZhciBnPWEuY2hhckNvZGVBdChlLTEpO2lmKGc9PTM4fHxnPT02Myl7dmFyIGg9YS5jaGFyQ29kZUF0KGUrZik7aWYoIWh8fGg9PTYxfHxoPT0zOHx8aD09MzUpcmV0dXJuIGV9ZSs9ZisxfXJldHVybi0xfXZhciBPbj0vI3wkLzsKZnVuY3Rpb24gUG4oYSxiKXt2YXIgYz1hLnNlYXJjaChPbiksZD1ObihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gTG4oYS5zbGljZShkLGUhPT0tMT9lOjApKX12YXIgUW49L1s/Jl0oJHwjKS87CmZ1bmN0aW9uIFJuKGEsYixjKXtmb3IodmFyIGQsZT1hLnNlYXJjaChPbiksZj0wLGcsaD1bXTsoZz1ObihhLGYsYixlKSk+PTA7KWgucHVzaChhLnN1YnN0cmluZyhmLGcpKSxmPU1hdGgubWluKGEuaW5kZXhPZigiJiIsZykrMXx8ZSxlKTtoLnB1c2goYS5zbGljZShmKSk7ZD1oLmpvaW4oIiIpLnJlcGxhY2UoUW4sIiQxIik7dmFyIGwsbj1jIT1udWxsPyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKToiIjt2YXIgcD1iK247aWYocCl7dmFyIHEscj1kLmluZGV4T2YoIiMiKTtyPDAmJihyPWQubGVuZ3RoKTt2YXIgdD1kLmluZGV4T2YoIj8iKSx1O3Q8MHx8dD5yPyh0PXIsdT0iIik6dT1kLnN1YnN0cmluZyh0KzEscik7cT1bZC5zbGljZSgwLHQpLHUsZC5zbGljZShyKV07dmFyIHY9cVsxXTtxWzFdPXA/dj92KyImIitwOnA6djtsPXFbMF0rKHFbMV0/Ij8iK3FbMV06IiIpK3FbMl19ZWxzZSBsPWQ7cmV0dXJuIGx9O2Z1bmN0aW9uIFNuKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9UG4oYywiZm10Iik7aWYoZCl7dmFyIG49UG4oYywicmFuZG9tIikscD1QbihjLCJsYWJlbCIpfHwiIjtpZighbilyZXR1cm47dmFyIHE9S24oTG4ocCkrIjoiK0xuKG4pKTtpZighb24oYSxxLGQpKXJldHVybn1sJiZOdW1iZXIobCkhPT00PyhjPVJuKGMsInJmbXQiLGwpLGM9Um4oYywiZm10Iiw0KSk6bHx8KGM9Um4oYywiZm10Iiw0KSk7VWMoYyxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7YS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzJiZkJiYoYS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzPW51bGwsZCgpKX0sZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2U9PW51bGx8fGUoKX0sZixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXS5wYXJlbnRFbGVtZW50fHx2b2lkIDApO3JldHVybiBjfTtmdW5jdGlvbiBWbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO2lkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gV24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gamQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBYbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwzLGJbMF0pO1pjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWW4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gbWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBabihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSw1LGJbMF0pO1VjLmFwcGx5KG51bGwsdyhiKSl9CmZ1bmN0aW9uICRuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtiWzBdJiZrbi5yZWdpc3RlcihhLDIsYlswXSk7WGMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBhbyhhKXt2YXIgYj1Tbi5hcHBseShudWxsLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSk7YiYma24ucmVnaXN0ZXIoYSw0LGIpO3JldHVybiBifTt2YXIgYm89e01hOntSZTowLFVlOjEsTGg6Mn19O2JvLk1hW2JvLk1hLlJlXT0iRlVMTF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLlVlXT0iTElNSVRFRF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLkxoXT0iTk9fVFJBTlNNSVNTSU9OIjt2YXIgY289e2lhOntnZDowLGNiOjEseGQ6MixaYjozfX07Y28uaWFbY28uaWEuZ2RdPSJOT19RVUVVRSI7Y28uaWFbY28uaWEuY2JdPSJBRFMiO2NvLmlhW2NvLmlhLnhkXT0iQU5BTFlUSUNTIjtjby5pYVtjby5pYS5aYl09Ik1PTklUT1JJTkciO3ZhciBlbz1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuY29uc2VudFR5cGVzPWJ9O2VvLnByb3RvdHlwZS5pc0NvbnNlbnRHcmFudGVkPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuSCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5ldmVyeShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtjYXNlIDE6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7ZGVmYXVsdDp5Yyh0aGlzLkgsImNvbnNlbnRzUmVxdWlyZWQgaGFkIGFuIHVua25vd24gdHlwZSIpfX07CnZhciBmbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT17fTt0aGlzLkg9KGFbY28uaWEuZ2RdPWJvLk1hLlJlLGFbY28uaWEuY2JdPWJvLk1hLlJlLGFbY28uaWEueGRdPWJvLk1hLlJlLGFbY28uaWEuWmJdPWJvLk1hLlJlLGEpO3ZhciBiPXt9O3RoaXMuSz0oYltjby5pYS5nZF09bmV3IGVvKDAsW10pLGJbY28uaWEuY2JdPW5ldyBlbygwLFsiYWRfc3RvcmFnZSJdKSxiW2NvLmlhLnhkXT1uZXcgZW8oMCxbImFuYWx5dGljc19zdG9yYWdlIl0pLGJbY28uaWEuWmJdPW5ldyBlbygxLFsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl0pLGIpfTt2YXIgaG89ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLnR5cGU9YTt0aGlzLkg9W107RmwoZm8uS1thXS5jb25zZW50VHlwZXMsZnVuY3Rpb24oKXtnbyhiKXx8Yi5mbHVzaCgpfSl9O2hvLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYT1tKHRoaXMuSCksYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpe3ZhciBjPWIudmFsdWU7YygpfXRoaXMuSD1bXX07dmFyIGdvPWZ1bmN0aW9uKGEpe3JldHVybiBmby5IW2EudHlwZV09PT1iby5NYS5MaCYmIWZvLktbYS50eXBlXS5pc0NvbnNlbnRHcmFudGVkKCl9LGlvPWZ1bmN0aW9uKGEsYil7Z28oYSk/YS5ILnB1c2goYik6YigpfSxqbz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgTWFwfSxsbz1mdW5jdGlvbihhKXt2YXIgYj1rbztiLkguaGFzKGEpfHxiLkguc2V0KGEsbmV3IGhvKGEpKTtyZXR1cm4gYi5ILmdldChhKX07am8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5ILmNsZWFyKCl9Owp2YXIga289bmV3IGpvO3ZhciBtbz1bImZpbiIsImZzIiwibWNjIiwibmNjIl0sbm89ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwPyExOmE7dmFyIGI9Um0oKSxjPVFtLkssZD1iLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gY1tlXSE9PXZvaWQgMCYmKGF8fCFtby5pbmNsdWRlcyhlKSl9KTtUbShkKTtyZXR1cm4gZC5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9Y1tlXTt0eXBlb2YgZj09PSJmdW5jdGlvbiImJihmPWYoKSk7cmV0dXJuIGY/IiYiK2UrIj0iK2Y6IiJ9KS5qb2luKCIiKSsiJno9MCJ9LG9vPWZ1bmN0aW9uKGEpe3ZhciBiPSJodHRwczovLyIrRSgyMSksYz0iL3RkP2lkPSIrRSg1KTtyZXR1cm4iIitmayhiKStjK2F9LHBvPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztpZigkaygyNikmJmZuLksmJkUoNSkmJihjfHwhZ24oKSkpe3ZhciBkPWxvKGNvLmlhLlpiKTtpZihnbyhkKSlhLkh8fChhLkg9ITAsaW8oZCxmdW5jdGlvbigpe3JldHVybiBwbyhhKX0pKTsKZWxzZXtiJiZVbSgiZmluIiwiMSIpO3ZhciBlPW5vKGIpLGY9b28oZSksZz17ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjYxfTtiP1luKGcsZix2b2lkIDAse1FnOiEwfSx2b2lkIDAsZnVuY3Rpb24oKXtaYyhmKyImaW1nPTEiKX0pOlhuKGcsZik7YS5IPSExO3FvKGUpfX19LHFvPWZ1bmN0aW9uKGEpe2lmKEtjJiYoU2IoS2MsImh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tLyIpfHxJZig0NykpJiYhKGEuaW5kZXhPZigiJmNzcD0iKTwwJiZhLmluZGV4T2YoIiZtZGU9Iik8MCkpe3ZhciBiO2E6e3RyeXtpZihLYyl7Yj1uZXcgVVJMKEtjKTticmVhayBhfX1jYXRjaChjKXt9Yj12b2lkIDB9YiYmVWMoIiIrS2MrKEtjLmluZGV4T2YoIj8iKT49MD8iJiI6Ij8iKSsiaXNfdGQ9MSIrYSl9fSxybz1mdW5jdGlvbihhKXtSbSgpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIVBtW2JdfSkmJnBvKGEsITApfSxzbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0hMTsKJGMoQSwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7cm8oYSl9KX07ZnVuY3Rpb24gdG8oYSxiKXtwbyhzbyxhPT09dm9pZCAwPyExOmEsYj09PXZvaWQgMD8hMTpiKX07dmFyIHVvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sdm89W0YuRC5kZCxGLkQueWMsRi5ELlFmLEYuRC5LYixGLkQueGMsRi5ELmZiLEYuRC5EYixGLkQubmIsRi5ELkxiLEYuRC52Y10seW89ZnVuY3Rpb24oKXt2YXIgYT13bzshYS5SJiZhLkgmJih1by5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tiXSE9PTF9KXx8eG8oIm1iYyIpKTthLlI9ITB9LHhvPWZ1bmN0aW9uKGEpe2ZuLksmJihVbShhLCIxIiksdG8oKSl9LHpvPWZ1bmN0aW9uKGEsYil7dmFyIGM9d287aWYoIWMuTltiXSYmKGMuTltiXT0hMCxjLktbYl0pKWZvcih2YXIgZD1tKHZvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlpZihPKGEsZS52YWx1ZSkpe3hvKCJlcmMiKTticmVha319LHdvPW5ldyBmdW5jdGlvbigpe3RoaXMuUj10aGlzLkg9ITE7dGhpcy5OPXt9O3RoaXMuSz17fX07dmFyIEFvPXt9LEJvPU9iamVjdC5mcmVlemUoKEFvW0YuRC5SY109MSxBb1tGLkQuaGhdPTEsQW9bRi5ELnNpXT0xLEFvW0YuRC5TY109MSxBb1tGLkQuSGFdPTEsQW9bRi5ELkxiXT0xLEFvW0YuRC5DYl09MSxBb1tGLkQuVGJdPTEsQW9bRi5ELklkXT0xLEFvW0YuRC52Y109MSxBb1tGLkQubmJdPTEsQW9bRi5ELkpkXT0xLEFvW0YuRC5IZV09MSxBb1tGLkQuT2FdPTEsQW9bRi5ELlFwXT0xLEFvW0YuRC5QZl09MSxBb1tGLkQuRmldPTEsQW9bRi5ELnBoXT0xLEFvW0YuRC5XY109MSxBb1tGLkQuUWZdPTEsQW9bRi5ELmFxXT0xLEFvW0YuRC5UYV09MSxBb1tGLkQuVWZdPTEsQW9bRi5ELmZxXT0xLEFvW0YuRC5PZF09MSxBb1tGLkQuUmxdPTEsQW9bRi5ELlljXT0xLEFvW0YuRC5aY109MSxBb1tGLkQuRGJdPTEsQW9bRi5ELmFtXT0xLEFvW0YuRC5XYl09MSxBb1tGLkQuVGRdPTEsQW9bRi5ELlhiXT0xLEFvW0YuRC5PaV09MSxBb1tGLkQuZGRdPTEsQW9bRi5ELnloXT0xLEFvW0YuRC5QaV09CjEsQW9bRi5ELlVkXT0xLEFvW0YuRC55Y109MSxBb1tGLkQuVmRdPTEsQW9bRi5ELmxtXT0xLEFvW0YuRC5XZF09MSxBb1tGLkQuZWRdPTEsQW9bRi5ELm9qXT0xLEFvKSk7T2JqZWN0LmZyZWV6ZShbRi5ELnphLEYuRC5VYSxGLkQuTWIsRi5ELnRiLEYuRC5OaSxGLkQuZmIsRi5ELkdpLEYuRC5NcF0pOwp2YXIgQ289e30sRG89T2JqZWN0LmZyZWV6ZSgoQ29bRi5ELnFwXT0xLENvW0YuRC5ycF09MSxDb1tGLkQudHBdPTEsQ29bRi5ELnVwXT0xLENvW0YuRC52cF09MSxDb1tGLkQuenBdPTEsQ29bRi5ELkFwXT0xLENvW0YuRC5CcF09MSxDb1tGLkQuRHBdPTEsQ29bRi5ELnlmXT0xLENvKSksRW89e30sRm89T2JqZWN0LmZyZWV6ZSgoRW9bRi5ELnZsXT0xLEVvW0YuRC53bF09MSxFb1tGLkQueGVdPTEsRW9bRi5ELnllXT0xLEVvW0YuRC54bF09MSxFb1tGLkQuQWRdPTEsRW9bRi5ELnplXT0xLEVvW0YuRC5vY109MSxFb1tGLkQuUWNdPTEsRW9bRi5ELnFjXT0xLEVvW0YuRC5JYl09MSxFb1tGLkQuQWVdPTEsRW9bRi5ELnJjXT0xLEVvW0YuRC55bF09MSxFbykpLEdvPU9iamVjdC5mcmVlemUoW0YuRC5SYyxGLkQuU2MsRi5ELkpkLEYuRC5RZixGLkQuV2YsRi5ELlRkLEYuRC5PaSxGLkQuVmRdKSxIbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KEdvKSkpLElvPU9iamVjdC5mcmVlemUoW0YuRC5DYiwKRi5ELnBoLEYuRC55aCxGLkQuUGksRi5ELm5oXSksSm89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhJbykpKSxLbz17fSxMbz0oS29bRi5ELmthXT0iMSIsS29bRi5ELnJhXT0iMiIsS29bRi5ELm1hXT0iMyIsS29bRi5ELlhhXT0iNCIsS28pLE1vPXt9LE5vPU9iamVjdC5mcmVlemUoKE1vLnNlYXJjaD0icyIsTW8ueW91dHViZT0ieSIsTW8ucGxheXN0b3JlPSJwIixNby5zaG9wcGluZz0iaCIsTW8uYWRzPSJhIixNby5tYXBzPSJtIixNbykpO2Z1bmN0aW9uIE9vKGEpe3JldHVybiB0eXBlb2YgYSE9PSJvYmplY3QifHxhPT09bnVsbD97fTphfWZ1bmN0aW9uIFBvKGEpe3JldHVybiBhPT09dm9pZCAwfHxhPT09bnVsbD8iIjp0eXBlb2YgYT09PSJvYmplY3QiP2EudG9TdHJpbmcoKTpTdHJpbmcoYSl9ZnVuY3Rpb24gUW8oYSl7aWYoYSE9PXZvaWQgMCYmYSE9PW51bGwpcmV0dXJuIFBvKGEpfTt2YXIgUm89W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV07ZnVuY3Rpb24gU28oYSl7Zm9yKHZhciBiPW0oYVtGLkQubmNdfHxbIiJdKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyZWdpb246dm9pZCAwfSxjPWIubmV4dCgpKWQucmVnaW9uPWMudmFsdWUsR2IoYSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZixnKXtpZihmIT09Ri5ELm5jKXt2YXIgaD1QbyhnKSxsPWUucmVnaW9uLG49eW0oKSxwPXptKCk7eWw9ITA7eGwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWNsYXJlKGYsaCxsLG4scCl9fX0oZCkpfQpmdW5jdGlvbiBUbyhhKXt5bygpO3ZhciBiPWFsKDE3LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxjPWFsKDE2LGZ1bmN0aW9uKCl7cmV0dXJuITF9KTshYiYmYyYmeG8oImNyYyIpO1prKDE3LCEwKTt2YXIgZD1hW0YuRC5ZZ107ZCYmUCg0MSk7dmFyIGU9YVtGLkQubmNdO2U/UCg0MCk6ZT1bIiJdO2Zvcih2YXIgZj1tKGUpLGc9Zi5uZXh0KCksaD17fTshZy5kb25lO2g9e0JvOnZvaWQgMH0sZz1mLm5leHQoKSloLkJvPWcudmFsdWUsR2IoYSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obixwKXtpZihuIT09Ri5ELm5jJiZuIT09Ri5ELllnKXt2YXIgcT1RbyhwKSxyPWwuQm8sdD1OdW1iZXIoZCksdT15bSgpLHY9em0oKTt0PXQ9PT12b2lkIDA/MDp0O3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVmYXVsdChuLHEscix1LHYsdCxBbCl9fX0oaCkpfQpmdW5jdGlvbiBVbyhhKXtBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7dmFyIGI9YVtGLkQubmNdO2lmKGIpe3ZhciBjPUFycmF5LmlzQXJyYXkoYik/YjpbYl07aWYoIWMuaW5jbHVkZXMoem0oKSkmJiFjLmluY2x1ZGVzKHltKCkpKXJldHVybn1HYihhLGZ1bmN0aW9uKGQsZSl7c3dpdGNoKGQpe2Nhc2UgImFkX3N0b3JhZ2UiOmNhc2UgImFuYWx5dGljc19zdG9yYWdlIjpjYXNlICJhZF91c2VyX2RhdGEiOmNhc2UgImFkX3BlcnNvbmFsaXphdGlvbiI6YnJlYWs7ZGVmYXVsdDpyZXR1cm59QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2RdPWU9PT0iZ3JhbnRlZCI/MzoyfSl9CmZ1bmN0aW9uIFZvKGEsYil7eW8oKTtaaygxNiwhMCk7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPVBvKGQpO3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkudXBkYXRlKGMsZSxBbCl9KTtHbChiLmV2ZW50SWQsYi5wcmlvcml0eUlkKX1mdW5jdGlvbiBXbyhhKXthLmhhc093blByb3BlcnR5KCJhbGwiKSYmKEFsLnNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM9ITAsR2IoTm8sZnVuY3Rpb24oYil7QWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09YS5hbGw9PT0iZ3JhbnRlZCI7QWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwfSkpO0diKGEsZnVuY3Rpb24oYixjKXtiIT09ImFsbCImJihBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1jPT09ImdyYW50ZWQiLEFsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCl9KX0KZnVuY3Rpb24gWG8oYSl7QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiBZbygpe3ZhciBhPVpvO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiAkbyhhLGIpe0ZsKGEsYil9ZnVuY3Rpb24gYXAoYSxiKXtJbChhLGIpfWZ1bmN0aW9uIGJwKGEsYil7SGwoYSxiKX1mdW5jdGlvbiBjcCgpe3ZhciBhPVtGLkQua2EsRi5ELlhhLEYuRC5tYV07dGwoKS53YWl0Rm9yVXBkYXRlKGEsNTAwLEFsKX1mdW5jdGlvbiBkcChhKXtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTt0bCgpLmNsZWFyVGltZW91dChkLHZvaWQgMCxBbCl9R2woKX0KZnVuY3Rpb24gZXAoYSl7Zm9yKHZhciBiPXt9LGM9bShhLnNwbGl0KCJ8IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIGJ9O3ZhciBmcD1PYmplY3QuZnJlZXplKFtGLkQua2EsRi5ELm1hXSk7ZnVuY3Rpb24gb3AoYSxiKXtpZihiIT1udWxsJiZiIT09IiIpe3ZhciBjPWI9PT0hMD8iMSI6Yj09PSExPyIwIjplbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIpKTtpZihTYihhLCJfJiIpKXJldHVybntrZXk6YS5zdWJzdHJpbmcoMiksdmFsdWU6Y307dmFyIGQ9bnBbYV07aWYoZCE9PW51bGwpcmV0dXJuIGQ/e2tleTpkLHZhbHVlOmN9OntrZXk6QWIoYik/ImVwbi4iK2E6ImVwLiIrYSx2YWx1ZTpjfX19O2Z1bmN0aW9uIHBwKGEpe2E9YT09PXZvaWQgMD9bXTphO3JldHVybiB4aihhKS5qb2luKCJ+Iil9O2Z1bmN0aW9uIHFwKCl7dmFyIGE9W10sYj1OdW1iZXIoJycpfHwwLGM9TnVtYmVyKCcnKXx8MDtjfHwoYz1iLzEwMCk7dmFyIGQ9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIyOCxzdHVkeUlkOjIyOCxleHBlcmltZW50SWQ6MTA1MTc3MTU0LGNvbnRyb2xJZDoxMDUxNzcxNTUsY29udHJvbElkMjoxMDUyNTUyNDUscHJvYmFiaWxpdHk6YyxhY3RpdmU6ZCxaZTowfSk7dmFyIGU9TnVtYmVyKCcnKXx8CjAsZj1OdW1iZXIoJycpfHwwO2Z8fChmPWUvMTAwKTt2YXIgZz1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjM1LHN0dWR5SWQ6MjM1LGV4cGVyaW1lbnRJZDoxMDUzNTcxNTAsY29udHJvbElkOjEwNTM1NzE1MSxjb250cm9sSWQyOjAscHJvYmFiaWxpdHk6ZixhY3RpdmU6ZyxaZToxfSk7dmFyIGg9TnVtYmVyKCcnKXx8MCxsPU51bWJlcignJyl8fAowO2x8fChsPWgvMTAwKTt2YXIgbj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY2LHN0dWR5SWQ6MjY2LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjksY29udHJvbElkOjExNTcxODUzMCxjb250cm9sSWQyOjExNTcxODUzMSxwcm9iYWJpbGl0eTpsLGFjdGl2ZTpuLFplOjB9KTt2YXIgcD1OdW1iZXIoJycpfHwwLHE9TnVtYmVyKCcnKXx8CjA7cXx8KHE9cC8xMDApO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyNjcsc3R1ZHlJZDoyNjcsZXhwZXJpbWVudElkOjExNTcxODUyNixjb250cm9sSWQ6MTE1NzE4NTI3LGNvbnRyb2xJZDI6MTE1NzE4NTI4LHByb2JhYmlsaXR5OnEsYWN0aXZlOnIsWmU6MH0pO3JldHVybiBhfTt2YXIgcnA9ZnVuY3Rpb24oKXt0aGlzLks9e307dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLlI9bmV3IFNldH0seHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLGQ9Yj1hLk5bYy5zdHVkeUlkXT9uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2FjdGl2ZTohMH0pOmMsZT1GaTtkLmNvbnRyb2xJZDImJmQucHJvYmFiaWxpdHk8PS4yNXx8KGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkLHtjb250cm9sSWQyOjB9KSk7ZS5zdHVkaWVzW2Quc3R1ZHlJZF09ZDtiLmZvY3VzZWQmJihhLktbYi5zdHVkeUlkXT0hMCk7aWYoYi5aZT09PTEpe3ZhciBmPWIuc3R1ZHlJZDtzcChhLHRwKCksZik7dXAoYSxmKT90aih1aixmKTp2cChhLGYpP3VqLktbZl09ITA6d3AoYSxmKSYmKHVqLkhbZl09ITApfWVsc2UgaWYoYi5aZT09PTApe3ZhciBnPWIuc3R1ZHlJZDtzcChhLGEuSCxnKTt1cChhLGcpP3RqKHVqLGcpOnZwKGEsZyk/dWouS1tnXT0hMDp3cChhLGcpJiYKKHVqLkhbZ109ITApfX0sc3A9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Rmk7aWYoZS5zdHVkaWVzW2NdKXt2YXIgZj1lLnN0dWRpZXNbY10sZz1mLmV4cGVyaW1lbnRJZCxoPWYucHJvYmFiaWxpdHk7aWYoIShiLnN0dWRpZXN8fHt9KVtjXSl7dmFyIGw9Yi5zdHVkaWVzfHx7fTtsW2NdPSEwO2Iuc3R1ZGllcz1sO2lmKCFlLnN0dWRpZXNbY10uYWN0aXZlKWlmKGUuc3R1ZGllc1tjXS5wcm9iYWJpbGl0eT4uNSlJaShiLGcsYyk7ZWxzZSBpZighKGg8PTB8fGg+MSkpe3ZhciBuPXZvaWQgMDtpZihkKXt2YXIgcD1DaShkKyJ+IitjKTtpZihwPT09ImUyIiluPS0xO2Vsc2V7Zm9yKHZhciBxPW5ldyBVaW50OEFycmF5KHApLHI9QmlnSW50KDApLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyPXI8PEJpZ0ludCg4KXxCaWdJbnQodS52YWx1ZSk7bj1OdW1iZXIociVCaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKX19R2kuc2soYixjLG4pfX19aWYoIWEuS1tjXSl7dmFyIHY9Ck5pKGIsYyk7diYmd2ouSC5LLmFkZCh2KX19LHRwPWZ1bmN0aW9uKCl7cmV0dXJuIG9tKGptLmJhLlRxLHt9KX0sdXA9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBLaShjLGIpfHxLaShhLkgsYil9LHZwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gTGkoYyxiKXx8TGkoYS5ILGIpfSx3cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIE1pKGMsYil8fE1pKGEuSCxiKX0seXA7CmZ1bmN0aW9uIHpwKCl7aWYoIXlwKXt2YXIgYT15cD1uZXcgcnAsYixjLGQ9KChiPUEpPT1udWxsP3ZvaWQgMDooYz1iLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yy5oYXNoKXx8IiI7aWYoZFswXT09PSIjIiYmZFsxXT09PSJfIiYmZFsyXT09PSJ0IiYmZFszXT09PSJlIiYmZFs0XT09PSI9Iil7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7aWYoZSlmb3IodmFyIGY9bShlLnNwbGl0KCJ+IikpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1OdW1iZXIoZy52YWx1ZSk7aCYmKGEuTltoXT0hMCx0aih1aixoKSl9fWZvcih2YXIgbD1tKHFwKCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXhwKGEsbi52YWx1ZSk7Zm9yKHZhciBwPVtdLHE9bShNZig1Nil8fFtdKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PXtzdHVkeUlkOnRbMV0sYWN0aXZlOiEhdFsyXSxwcm9iYWJpbGl0eTp0WzNdfHwwLGV4cGVyaW1lbnRJZDp0WzRdfHwKMCxjb250cm9sSWQ6dFs1XXx8MCxjb250cm9sSWQyOnRbNl18fDB9LHY9MDtzd2l0Y2godFs3XSl7Y2FzZSAyOnY9MTticmVhaztjYXNlIDM6dj0yO2JyZWFrO2Nhc2UgMTpjYXNlIDQ6Y2FzZSA1OmNhc2UgMDp2PTB9dmFyIHg7YTpzd2l0Y2godS5zdHVkeUlkKXtjYXNlIDU2NzpjYXNlIDQ2Mjp4PSEwO2JyZWFrIGE7ZGVmYXVsdDp4PSExfXZhciB5PW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdSx7WmU6dixmb2N1c2VkOnh9KTsoeS5hY3RpdmV8fHkucHJvYmFiaWxpdHk+LjUmJnkuZXhwZXJpbWVudElkfHx5LmV4cGVyaW1lbnRJZCYmeS5jb250cm9sSWQpJiZwLnB1c2goeSl9Zm9yKHZhciB6PW0ocCksQz16Lm5leHQoKTshQy5kb25lO0M9ei5uZXh0KCkpeHAoYSxDLnZhbHVlKX19CmZ1bmN0aW9uIEFwKGEsYil7enAoKTt2YXIgYz15cDtzcChjLHRwKCksYSxiKTt1cChjLGEpP3RqKHVqLGEpOnZwKGMsYSk/dWouS1thXT0hMDp3cChjLGEpJiYodWouSFthXT0hMCl9ZnVuY3Rpb24gQnAoKXt6cCgpO3ZhciBhPXlwLGI9dXAoYSw1NjcpO2lmKGEuS1s1NjddKXt2YXIgYyxkPXRwKCk7KGM9TmkoZCw1NjcpfHxOaShhLkgsNTY3KSkmJmEuUi5hZGQoYyl9cmV0dXJuIGJ9ZnVuY3Rpb24gQ3AoYSl7enAoKTt2YXIgYj1uZXcgU2V0KHlwLlIpO2lmKGEpZm9yKHZhciBjPVEoYSxILkouQ2gpfHxbXSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYi5hZGQoZS52YWx1ZSk7cmV0dXJuIHBwKFtdLmNvbmNhdCh3KGIpKSl9O2Z1bmN0aW9uIERwKGEpe3ZhciBiPWEubG9jYXRpb24uaHJlZjtpZihhPT09YS50b3ApcmV0dXJue3VybDpiLElzOiEwfTt2YXIgYz0hMSxkPWEuZG9jdW1lbnQ7ZCYmZC5yZWZlcnJlciYmKGI9ZC5yZWZlcnJlcixhLnBhcmVudD09PWEudG9wJiYoYz0hMCkpO3ZhciBlPWEubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGUpe3ZhciBmPWVbZS5sZW5ndGgtMV0sZztmJiYoKGc9Yik9PW51bGw/dm9pZCAwOmcuaW5kZXhPZihmKSk9PT0tMSYmKGM9ITEsYj1mKX1yZXR1cm57dXJsOmIsSXM6Y319ZnVuY3Rpb24gRXAoYSl7dHJ5e3ZhciBiO2lmKGI9ISFhJiZhLmxvY2F0aW9uLmhyZWYhPW51bGwpYTp7dHJ5e0huKGEuZm9vKTtiPSEwO2JyZWFrIGF9Y2F0Y2goYyl7fWI9ITF9cmV0dXJuIGJ9Y2F0Y2goYyl7cmV0dXJuITF9fWZ1bmN0aW9uIEZwKCl7Zm9yKHZhciBhPUEsYj1hO2EmJmEhPT1hLnBhcmVudDspYT1hLnBhcmVudCxFcChhKSYmKGI9YSk7cmV0dXJuIGJ9O3ZhciBHcD1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKCl7fTtjLnByb3RvdHlwZT1hLnByb3RvdHlwZTt2YXIgZD1uZXcgYzthLmFwcGx5KGQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtyZXR1cm4gZH0sSHA9ZnVuY3Rpb24oYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9bnVsbDtjKCl9fX07ZnVuY3Rpb24gSXAoYSxiKXtpZihhKWZvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiZiKGFbY10sYyxhKX07ZnVuY3Rpb24gSnAoYSl7dmFyIGI9YS5zcGxpdCgvWz8jXS8pLGM9L1s/XS8udGVzdChhKT8iPyIrYlsxXToiIjtyZXR1cm57ems6YlswXSxwYXJhbXM6YyxmcmFnbWVudDovWyNdLy50ZXN0KGEpPyIjIisoYz9iWzJdOmJbMV0pOiIifX1mdW5jdGlvbiBLcChhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoYi5sZW5ndGg9PT0wKXJldHVybiBqYyhhWzBdKTtmb3IodmFyIGM9YVswXSxkPTA7ZDxiLmxlbmd0aDtkKyspYys9ZW5jb2RlVVJJQ29tcG9uZW50KGJbZF0pK2FbZCsxXTtyZXR1cm4gamMoYyl9CmZ1bmN0aW9uIExwKGEsYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtnIT1udWxsJiYoQXJyYXkuaXNBcnJheShnKT9nLmZvckVhY2goZnVuY3Rpb24obCl7cmV0dXJuIGUobCxoKX0pOihiKz1mK2VuY29kZVVSSUNvbXBvbmVudChoKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGcpLGY9IiYiKSl9dmFyIGY9Yi5sZW5ndGg/IiYiOiI/IjtkLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYoZD1PYmplY3QuZW50cmllcyhkKSk7QXJyYXkuaXNBcnJheShkKT9kLmZvckVhY2goZnVuY3Rpb24oZyl7cmV0dXJuIGUoZ1sxXSxnWzBdKX0pOmQuZm9yRWFjaChlKTtyZXR1cm4gamMoYStiK2MpfWZ1bmN0aW9uIE1wKGEsYil7dmFyIGM9SnAoa2MoYSkudG9TdHJpbmcoKSksZD1jLnprLnNsaWNlKC0xKT09PSIvIj8iIjoiLyIsZT1jLnprK2QrZW5jb2RlVVJJQ29tcG9uZW50KGIpO3JldHVybiBqYyhlK2MucGFyYW1zK2MuZnJhZ21lbnQpfTt2YXIgTnA9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YSxkPTA7ZDw1MDsrK2Qpe3ZhciBlO3RyeXtlPSEoIWMuZnJhbWVzfHwhYy5mcmFtZXNbYl0pfWNhdGNoKGgpe2U9ITF9aWYoZSlyZXR1cm4gYzt2YXIgZjthOnt0cnl7dmFyIGc9Yy5wYXJlbnQ7aWYoZyYmZyE9PWMpe2Y9ZzticmVhayBhfX1jYXRjaChoKXt9Zj1udWxsfWlmKCEoYz1mKSlicmVha31yZXR1cm4gbnVsbH0sT3A9ZnVuY3Rpb24oYSl7dmFyIGI9QTtpZihiLnRvcD09YilyZXR1cm4gMDtpZihhPT09dm9pZCAwPzA6YSl7dmFyIGM9Yi5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7aWYoYylyZXR1cm4gY1tjLmxlbmd0aC0xXT09Yi5sb2NhdGlvbi5vcmlnaW4/MToyfXJldHVybiBFcChiLnRvcCk/MToyfSxQcD1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/ZG9jdW1lbnQ6YTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJpbWciKX07ZnVuY3Rpb24gUXAoYSl7Zm9yKHZhciBiPVtdLGM9Qi5jb29raWUuc3BsaXQoIjsiKSxkPW5ldyBSZWdFeHAoIl5cXHMqIisoYXx8Il9nYWMiKSsiXyhVQS1cXGQrLVxcZCspPVxccyooLis/KVxccyokIiksZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdLm1hdGNoKGQpO2YmJmIucHVzaCh7dWQ6ZlsxXSx2YWx1ZTpmWzJdLHRpbWVzdGFtcDpOdW1iZXIoZlsyXS5zcGxpdCgiLiIpWzFdKXx8MH0pfWIuc29ydChmdW5jdGlvbihnLGgpe3JldHVybiBoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBifQpmdW5jdGlvbiBScChhLGIpe3ZhciBjPVFwKGEpLGQ9e307aWYoIWN8fCFjLmxlbmd0aClyZXR1cm4gZDtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS52YWx1ZS5zcGxpdCgiLiIpO2lmKCEoZlswXSE9PSIxInx8YiYmZi5sZW5ndGg8M3x8IWImJmYubGVuZ3RoIT09MykmJk51bWJlcihmWzFdKSl7ZFtjW2VdLnVkXXx8KGRbY1tlXS51ZF09W10pO3ZhciBnPXt2ZXJzaW9uOmZbMF0sdGltZXN0YW1wOk51bWJlcihmWzFdKSoxRTMsZ2NsaWQ6ZlsyXX07YiYmZi5sZW5ndGg+MyYmKGcubGFiZWxzPWYuc2xpY2UoMykpO2RbY1tlXS51ZF0ucHVzaChnKX19cmV0dXJuIGR9O2Z1bmN0aW9uIFNwKGEpe3JldHVybiBhLm9yaWdpbiE9PSJudWxsIn07dmFyIFRwPXt9LFVwPShUcC5rPXtuYTovXltcdy1dKyQvfSxUcC5iPXtuYTovXltcdy1dKyQvLG5rOiEwfSxUcC5pPXtuYTovXlsxLTldXGQqJC99LFRwLmg9e25hOi9eXGQrJC99LFRwLnQ9e25hOi9eWzEtOV1cZCokL30sVHAuZD17bmE6L15bQS1aYS16MC05Xy1dKyQvfSxUcC5qPXtuYTovXlxkKyQvfSxUcC51PXtuYTovXlsxLTldXGQqJC99LFRwLmw9e25hOi9eWzAxXSQvfSxUcC5vPXtuYTovXlsxLTldXGQqJC99LFRwLmc9e25hOi9eWzAxXSQvfSxUcC5zPXtuYTovXi4rJC99LFRwLm09e25hOi9eWzAxXSQvfSxUcCk7dmFyIFZwPXt9LFpwPShWcFs1XT17amk6ezI6V3B9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsInUiXX0sVnBbNF09e2ppOnsyOldwLEdDTDpYcH0sWmo6IjIiLFJoOlsiayIsImkiLCJiIiwibSJdfSxWcFsyXT17amk6e0dTMjpXcCxHUzE6WXB9LFpqOiJHUzIiLFJoOiJzb2d0amxoZCIuc3BsaXQoIiIpfSxWcCk7ZnVuY3Rpb24gJHAoYSxiLGMpe3ZhciBkPVpwW2JdO2lmKGQpe3ZhciBlPWEuc3BsaXQoIi4iKVswXTtjPT1udWxsfHxjKGUpO2lmKGUpe3ZhciBmPWQuamlbZV07aWYoZilyZXR1cm4gZihhLGIpfX19CmZ1bmN0aW9uIFdwKGEsYil7dmFyIGM9YS5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09Myl7dmFyIGQ9Y1syXTtpZihkLmluZGV4T2YoIiQiKT09PS0xJiZkLmluZGV4T2YoIiUyNCIpIT09LTEpdHJ5e2Q9ZGVjb2RlVVJJQ29tcG9uZW50KGQpfWNhdGNoKHQpe312YXIgZT17fSxmPVpwW2JdO2lmKGYpe2Zvcih2YXIgZz1mLlJoLGg9bShkLnNwbGl0KCIkIikpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgbj1sLnZhbHVlLHA9blswXTtpZihnLmluZGV4T2YocCkhPT0tMSl0cnl7dmFyIHE9ZGVjb2RlVVJJQ29tcG9uZW50KG4uc3Vic3RyaW5nKDEpKSxyPVVwW3BdO3ImJihyLm5rPyhlW3BdPWVbcF18fFtdLGVbcF0ucHVzaChxKSk6ZVtwXT1xKX1jYXRjaCh0KXt9fXJldHVybiBlfX19ZnVuY3Rpb24gYXEoYSxiLGMpe3ZhciBkPVpwW2JdO2lmKGQpcmV0dXJuW2QuWmosY3x8IjEiLGJxKGEsYildLmpvaW4oIi4iKX0KZnVuY3Rpb24gYnEoYSxiKXt2YXIgYz1acFtiXTtpZihjKXtmb3IodmFyIGQ9W10sZT1tKGMuUmgpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9VXBbZ107aWYoaCl7dmFyIGw9YVtnXTtpZihsIT09dm9pZCAwKWlmKGgubmsmJkFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpZC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiIitnK3AudmFsdWUpKTtlbHNlIGQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytsKSl9fXJldHVybiBkLmpvaW4oIiQiKX19ZnVuY3Rpb24gWHAoYSl7dmFyIGI9YS5zcGxpdCgiLiIpO2Iuc2hpZnQoKTt2YXIgYz1iLnNoaWZ0KCksZD1iLnNoaWZ0KCksZT17fTtyZXR1cm4gZS5rPWQsZS5pPWMsZS5iPWIsZX0KZnVuY3Rpb24gWXAoYSl7dmFyIGI9YS5zcGxpdCgiLiIpLnNsaWNlKDIpO2lmKCEoYi5sZW5ndGg8NXx8Yi5sZW5ndGg+Nykpe3ZhciBjPXt9O3JldHVybiBjLnM9YlswXSxjLm89YlsxXSxjLmc9YlsyXSxjLnQ9YlszXSxjLmo9Yls0XSxjLmw9Yls1XSxjLmg9Yls2XSxjfX07ZnVuY3Rpb24gY3EoYSxiLGMsZCl7dmFyIGU7cmV0dXJuKGU9ZHEoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT1hfSxiLGMsZClbYV0pIT1udWxsP2U6W119ZnVuY3Rpb24gZHEoYSxiLGMsZCl7dmFyIGU7aWYoZXEoZCkpe2Zvcih2YXIgZj17fSxnPVN0cmluZyhifHxmcSgpKS5zcGxpdCgiOyIpLGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIGw9Z1toXS5zcGxpdCgiPSIpLG49bFswXS50cmltKCk7aWYobiYmYShuKSl7dmFyIHA9bC5zbGljZSgxKS5qb2luKCI9IikudHJpbSgpO3AmJmMmJihwPWRlY29kZVVSSUNvbXBvbmVudChwKSk7dmFyIHE9dm9pZCAwLHI9dm9pZCAwOygocT1mKVtyPW5dfHwocVtyXT1bXSkpLnB1c2gocCl9fWU9Zn1lbHNlIGU9e307cmV0dXJuIGV9CmZ1bmN0aW9uIGdxKGEsYixjLGQsZSl7aWYoZXEoZSkpe3ZhciBmPWhxKGEsZCxlKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07aWYoZi5sZW5ndGghPT0wKXtmPWlxKGYsZnVuY3Rpb24oZyl7cmV0dXJuIGcuSnJ9LGIpO2lmKGYubGVuZ3RoPT09MSlyZXR1cm4gZlswXTtmPWlxKGYsZnVuY3Rpb24oZyl7cmV0dXJuIGcuV3N9LGMpO3JldHVybiBmWzBdfX19ZnVuY3Rpb24ganEoYSxiLGMsZCl7dmFyIGU9ZnEoKSxmPUE7U3AoZikmJihmLmRvY3VtZW50LmNvb2tpZT1hKTt2YXIgZz1mcSgpO3JldHVybiBlIT09Z3x8YyE9PXZvaWQgMCYmY3EoYixnLCExLGQpLmluZGV4T2YoYyk+PTB9CmZ1bmN0aW9uIGtxKGEsYixjLGQpe2Z1bmN0aW9uIGUoeCx5LHope2lmKHo9PW51bGwpcmV0dXJuIGRlbGV0ZSBoW3ldLHg7aFt5XT16O3JldHVybiB4KyI7ICIreSsiPSIren1mdW5jdGlvbiBmKHgseSl7aWYoeT09bnVsbClyZXR1cm4geDtoW3ldPSEwO3JldHVybiB4KyI7ICIreX1pZighZXEoYy5NYykpcmV0dXJuIDI7dmFyIGc7Yj09bnVsbD9nPWErIj1kZWxldGVkOyBleHBpcmVzPSIrKG5ldyBEYXRlKDApKS50b1VUQ1N0cmluZygpOihjLmVuY29kZSYmKGI9ZW5jb2RlVVJJQ29tcG9uZW50KGIpKSxiPWxxKGIpLGc9YSsiPSIrYik7dmFyIGg9e307Zz1lKGcsInBhdGgiLGMucGF0aCk7dmFyIGw7Yy5leHBpcmVzIGluc3RhbmNlb2YgRGF0ZT9sPWMuZXhwaXJlcy50b1VUQ1N0cmluZygpOmMuZXhwaXJlcyE9bnVsbCYmKGw9IiIrYy5leHBpcmVzKTtnPWUoZywiZXhwaXJlcyIsbCk7Zz1lKGcsIm1heC1hZ2UiLGMuT3MpO2c9ZShnLCJzYW1lc2l0ZSIsYy5ydCk7Yy5zZWN1cmUmJgooZz1mKGcsInNlY3VyZSIpKTt2YXIgbj1jLmRvbWFpbjtpZihuJiZuLnRvTG93ZXJDYXNlKCk9PT0iYXV0byIpe2Zvcih2YXIgcD1tcSgpLHE9dm9pZCAwLHI9ITEsdD0wO3Q8cC5sZW5ndGg7Kyt0KXt2YXIgdT1wW3RdIT09Im5vbmUiP3BbdF06dm9pZCAwLHY9ZShnLCJkb21haW4iLHUpO3Y9Zih2LGMuZmxhZ3MpO3RyeXtkJiZkKGEsaCl9Y2F0Y2goeCl7cT14O2NvbnRpbnVlfXI9ITA7aWYoIW5xKHUsYy5wYXRoKSYmanEodixhLGIsYy5NYykpcmV0dXJuIDB9aWYocSYmIXIpdGhyb3cgcTtyZXR1cm4gMX1uJiZuLnRvTG93ZXJDYXNlKCkhPT0ibm9uZSImJihnPWUoZywiZG9tYWluIixuKSk7Zz1mKGcsYy5mbGFncyk7ZCYmZChhLGgpO3JldHVybiBucShuLGMucGF0aCk/MTpqcShnLGEsYixjLk1jKT8wOjF9ZnVuY3Rpb24gb3EoYSxiLGMpe2MucGF0aD09bnVsbCYmKGMucGF0aD0iLyIpO2MuZG9tYWlufHwoYy5kb21haW49ImF1dG8iKTtyZXR1cm4ga3EoYSxiLGMpfQpmdW5jdGlvbiBpcShhLGIsYyl7Zm9yKHZhciBkPVtdLGU9W10sZixnPTA7ZzxhLmxlbmd0aDtnKyspe3ZhciBoPWFbZ10sbD1iKGgpO2w9PT1jP2QucHVzaChoKTpmPT09dm9pZCAwfHxsPGY/KGU9W2hdLGY9bCk6bD09PWYmJmUucHVzaChoKX1yZXR1cm4gZC5sZW5ndGg+MD9kOmV9ZnVuY3Rpb24gaHEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCxjKSxmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBnPWVbZl0uc3BsaXQoIi4iKSxoPWcuc2hpZnQoKTtpZighYnx8IWh8fGIuaW5kZXhPZihoKSE9PS0xKXt2YXIgbD1nLnNoaWZ0KCk7aWYobCl7dmFyIG49bC5zcGxpdCgiLSIpO2QucHVzaCh7QnI6ZVtmXSxDcjpnLmpvaW4oIi4iKSxKcjpOdW1iZXIoblswXSl8fDEsV3M6TnVtYmVyKG5bMV0pfHwxfSl9fX1yZXR1cm4gZH1mdW5jdGlvbiBscShhKXthJiZhLmxlbmd0aD4xMjAwJiYoYT1hLnN1YnN0cmluZygwLDEyMDApKTtyZXR1cm4gYX0KdmFyIHBxPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfSk/JC8scXE9LyhefFwuKWRvdWJsZWNsaWNrXC5uZXQkL2k7ZnVuY3Rpb24gbnEoYSxiKXtyZXR1cm4gYSE9PXZvaWQgMCYmKHFxLnRlc3QoQS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSl8fGI9PT0iLyImJnBxLnRlc3QoYSkpfWZ1bmN0aW9uIHJxKGEpe2lmKCFhKXJldHVybiAxO3ZhciBiPWE7WWYoNCkmJmE9PT0ibm9uZSImJihiPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpO2I9Yi5pbmRleE9mKCIuIik9PT0wP2Iuc3Vic3RyaW5nKDEpOmI7cmV0dXJuIGIuc3BsaXQoIi4iKS5sZW5ndGh9ZnVuY3Rpb24gc3EoYSl7aWYoIWF8fGE9PT0iLyIpcmV0dXJuIDE7YVswXSE9PSIvIiYmKGE9Ii8iK2EpO2FbYS5sZW5ndGgtMV0hPT0iLyImJihhKz0iLyIpO3JldHVybiBhLnNwbGl0KCIvIikubGVuZ3RoLTF9CmZ1bmN0aW9uIHRxKGEsYil7dmFyIGM9IiIrcnEoYSksZD1zcShiKTtkPjEmJihjKz0iLSIrZCk7cmV0dXJuIGN9CnZhciBmcT1mdW5jdGlvbigpe3ZhciBhPUE7cmV0dXJuIFNwKGEpP2EuZG9jdW1lbnQuY29va2llOiIifSxlcT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmWWYoNSk/KEFycmF5LmlzQXJyYXkoYSk/YTpbYV0pLmV2ZXJ5KGZ1bmN0aW9uKGIpe3JldHVybiBEbChiKSYmQmwoYil9KTohMH0sbXE9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKTtpZihiLmxlbmd0aD09PTQpe3ZhciBjPWJbYi5sZW5ndGgtMV07aWYoTnVtYmVyKGMpLnRvU3RyaW5nKCk9PT1jKXJldHVyblsibm9uZSJdfWZvcih2YXIgZD1iLmxlbmd0aC0yO2Q+PTA7ZC0tKWEucHVzaChiLnNsaWNlKGQpLmpvaW4oIi4iKSk7dmFyIGU9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZTtxcS50ZXN0KGUpfHxwcS50ZXN0KGUpfHxhLnB1c2goIm5vbmUiKTtyZXR1cm4gYX07ZnVuY3Rpb24gdXEoYSxiLGMsZCl7dmFyIGUsZj1OdW1iZXIoYS5wZCE9bnVsbD9hLnBkOnZvaWQgMCk7ZiE9PTAmJihlPW5ldyBEYXRlKChifHxOYigpKSsxRTMqKGZ8fDc3NzZFMykpKTtyZXR1cm57cGF0aDphLnBhdGgsZG9tYWluOmEuZG9tYWluLGZsYWdzOmEuZmxhZ3MsZW5jb2RlOiEhYyxleHBpcmVzOmUsTWM6ZH19O3ZhciB2cT1uZXcgTWFwKFtbNSwiYWRfc3RvcmFnZSJdLFs0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdXSxbMiwiYW5hbHl0aWNzX3N0b3JhZ2UiXV0pO2Z1bmN0aW9uIHdxKGEsYixjKXtpZihacFtiXSl7Zm9yKHZhciBkPVtdLGU9Y3EoYSx2b2lkIDAsdm9pZCAwLHZxLmdldChiKSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD0kcChnLnZhbHVlLGIsYyk7aCYmZC5wdXNoKHhxKGgpKX1yZXR1cm4gZH19CmZ1bmN0aW9uIHlxKGEpe3ZhciBiPXpxO2lmKFpwWzJdKXtmb3IodmFyIGM9e30sZD1kcShhLHZvaWQgMCx2b2lkIDAsdnEuZ2V0KDIpKSxlPU9iamVjdC5rZXlzKGQpLnNvcnQoKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZm9yKHZhciBoPWcudmFsdWUsbD1tKGRbaF0pLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD0kcChuLnZhbHVlLDIsYik7cCYmKGNbaF18fChjW2hdPVtdKSxjW2hdLnB1c2goeHEocCkpKX1yZXR1cm4gY319ZnVuY3Rpb24gQXEoYSxiLGMsZCxlKXtkPWR8fHt9O3ZhciBmPXRxKGQuZG9tYWluLGQucGF0aCksZz1hcShiLGMsZik7aWYoIWcpcmV0dXJuIDE7dmFyIGg9dXEoZCxlLHZvaWQgMCx2cS5nZXQoYykpO3JldHVybiBvcShhLGcsaCl9ZnVuY3Rpb24gQnEoYSxiKXt2YXIgYz1iLm5hO3JldHVybiB0eXBlb2YgYz09PSJmdW5jdGlvbiI/YyhhKTpjLnRlc3QoYSl9CmZ1bmN0aW9uIHhxKGEpe2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEpKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtBZzp2b2lkIDB9LGM9Yi5uZXh0KCkpe3ZhciBlPWMudmFsdWUsZj1hW2VdO2QuQWc9VXBbZV07ZC5BZz9kLkFnLm5rP2FbZV09QXJyYXkuaXNBcnJheShmKT9mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIEJxKGgsZy5BZyl9fShkKSk6dm9pZCAwOnR5cGVvZiBmPT09InN0cmluZyImJkJxKGYsZC5BZyl8fChhW2VdPXZvaWQgMCk6YVtlXT12b2lkIDB9cmV0dXJuIGF9O3ZhciBDcTtmdW5jdGlvbiBEcSgpe2Z1bmN0aW9uIGEoZyl7YyhnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9ZnVuY3Rpb24gYihnKXtkKGcudGFyZ2V0fHxnLnNyY0VsZW1lbnR8fHt9KX12YXIgYz1FcSxkPUZxLGU9R3EoKTtpZighZS5pbml0KXskYyhCLCJtb3VzZWRvd24iLGEpOyRjKEIsImtleXVwIixhKTskYyhCLCJzdWJtaXQiLGIpO3ZhciBmPUhUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0O0hUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0PWZ1bmN0aW9uKCl7ZCh0aGlzKTtmLmNhbGwodGhpcyl9O2UuaW5pdD0hMH19ZnVuY3Rpb24gSHEoYSxiLGMsZCxlKXt2YXIgZj17Y2FsbGJhY2s6YSxkb21haW5zOmIsZnJhZ21lbnQ6Yz09PTIscGxhY2VtZW50OmMsZm9ybXM6ZCxzYW1lSG9zdDplfTtHcSgpLmRlY29yYXRvcnMucHVzaChmKX0KZnVuY3Rpb24gSXEoYSxiLGMpe2Zvcih2YXIgZD1HcSgpLmRlY29yYXRvcnMsZT17fSxmPTA7ZjxkLmxlbmd0aDsrK2Ype3ZhciBnPWRbZl0saDtpZihoPSFjfHxnLmZvcm1zKWE6e3ZhciBsPWcuZG9tYWlucyxuPWEscD0hIWcuc2FtZUhvc3Q7aWYobCYmKHB8fG4hPT1CLmxvY2F0aW9uLmhvc3RuYW1lKSlmb3IodmFyIHE9MDtxPGwubGVuZ3RoO3ErKylpZihsW3FdaW5zdGFuY2VvZiBSZWdFeHApe2lmKGxbcV0udGVzdChuKSl7aD0hMDticmVhayBhfX1lbHNlIGlmKG4uaW5kZXhPZihsW3FdKT49MHx8cCYmbFtxXS5pbmRleE9mKG4pPj0wKXtoPSEwO2JyZWFrIGF9aD0hMX1pZihoKXt2YXIgcj1nLnBsYWNlbWVudDtyPT09dm9pZCAwJiYocj1nLmZyYWdtZW50PzI6MSk7cj09PWImJlFiKGUsZy5jYWxsYmFjaygpKX19cmV0dXJuIGV9CmZ1bmN0aW9uIEdxKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pLGI9YS5nbDtiJiZiLmRlY29yYXRvcnN8fChiPXtkZWNvcmF0b3JzOltdfSxhLmdsPWIpO3JldHVybiBifTt2YXIgSnE9LyguKj8pXCooLio/KVwqKC4qKS8sS3E9L15odHRwcz86XC9cLyhbXlwvXSo/KVwuP2NkblwuYW1wcHJvamVjdFwub3JnXC8/KC4qKS8sTHE9L14oPzp3d3dcLnxtXC58YW1wXC4pKy8sTXE9LyhbXj8jXSspKFw/W14jXSopPygjLiopPy87ZnVuY3Rpb24gTnEoYSl7dmFyIGI9TXEuZXhlYyhhKTtpZihiKXJldHVybntoazpiWzFdLHF1ZXJ5OmJbMl0sZnJhZ21lbnQ6YlszXX19ZnVuY3Rpb24gT3EoYSl7cmV0dXJuIG5ldyBSZWdFeHAoIiguKj8pKF58JikiK2ErIj0oW14mXSopJj8oLiopIil9CmZ1bmN0aW9uIFBxKGEsYil7dmFyIGM9W0hjLnVzZXJBZ2VudCwobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCksSGMudXNlckxhbmd1YWdlfHxIYy5sYW5ndWFnZSxNYXRoLmZsb29yKE5iKCkvNjAvMUUzKS0oYj09PXZvaWQgMD8wOmIpLGFdLmpvaW4oIioiKSxkO2lmKCEoZD1DcSkpe2Zvcih2YXIgZT1BcnJheSgyNTYpLGY9MDtmPDI1NjtmKyspe2Zvcih2YXIgZz1mLGg9MDtoPDg7aCsrKWc9ZyYxP2c+Pj4xXjM5ODgyOTIzODQ6Zz4+PjE7ZVtmXT1nfWQ9ZX1DcT1kO2Zvcih2YXIgbD00Mjk0OTY3Mjk1LG49MDtuPGMubGVuZ3RoO24rKylsPWw+Pj44XkNxWyhsXmMuY2hhckNvZGVBdChuKSkmMjU1XTtyZXR1cm4oKGxeLTEpPj4+MCkudG9TdHJpbmcoMzYpfQpmdW5jdGlvbiBRcShhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9UmooQS5sb2NhdGlvbi5ocmVmKSxkPWMuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKSxlPUlqKGQsIl9nbCIsITEsITApfHwiIjtiLnF1ZXJ5PVJxKGUpfHx7fTt2YXIgZj1MaihjLCJmcmFnbWVudCIpLGc7dmFyIGg9LTE7aWYoU2IoZiwiX2dsPSIpKWg9NDtlbHNle3ZhciBsPWYuaW5kZXhPZigiJl9nbD0iKTtsPjAmJihoPWwrMysyKX1pZihoPDApZz12b2lkIDA7ZWxzZXt2YXIgbj1mLmluZGV4T2YoIiYiLGgpO2c9bjwwP2Yuc3Vic3RyaW5nKGgpOmYuc3Vic3RyaW5nKGgsbil9Yi5mcmFnbWVudD1ScShnfHwiIil8fHt9O2EmJlNxKGMsZCxmKX19ZnVuY3Rpb24gVHEoYSxiKXt2YXIgYz1PcShhKS5leGVjKGIpLGQ9YjtpZihjKXt2YXIgZT1jWzJdLGY9Y1s0XTtkPWNbMV07ZiYmKGQ9ZCtlK2YpfXJldHVybiBkfQpmdW5jdGlvbiBTcShhLGIsYyl7ZnVuY3Rpb24gZChnLGgpe3ZhciBsPVRxKCJfZ2wiLGcpO2wubGVuZ3RoJiYobD1oK2wpO3JldHVybiBsfWlmKEdjJiZHYy5yZXBsYWNlU3RhdGUpe3ZhciBlPU9xKCJfZ2wiKTtpZihlLnRlc3QoYil8fGUudGVzdChjKSl7dmFyIGY9TGooYSwicGF0aCIpO2I9ZChiLCI/Iik7Yz1kKGMsIiMiKTtHYy5yZXBsYWNlU3RhdGUoe30sIiIsIiIrZitiK2MpfX19ZnVuY3Rpb24gVXEoYSxiKXt2YXIgYz1RcSghIWIpLGQ9R3EoKTtkLmRhdGF8fChkLmRhdGE9e3F1ZXJ5Ont9LGZyYWdtZW50Ont9fSxjKGQuZGF0YSkpO3ZhciBlPXt9LGY9ZC5kYXRhO2YmJihRYihlLGYucXVlcnkpLGEmJlFiKGUsZi5mcmFnbWVudCkpO3JldHVybiBlfQp2YXIgUnE9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPVZxKGEsMyk7aWYoYiE9PXZvaWQgMCl7Zm9yKHZhciBjPXt9LGQ9Yj9iLnNwbGl0KCIqIik6W10sZT0wO2UrMTxkLmxlbmd0aDtlKz0yKXt2YXIgZj1kW2VdLGc9cWIoZFtlKzFdKTtjW2ZdPWd9c2IoIlRBR0dJTkciLDYpO3JldHVybiBjfX1jYXRjaChoKXtzYigiVEFHR0lORyIsOCl9fTtmdW5jdGlvbiBWcShhLGIpe2lmKGEpe3ZhciBjO2E6e2Zvcih2YXIgZD1hLGU9MDtlPDM7KytlKXt2YXIgZj1KcS5leGVjKGQpO2lmKGYpe2M9ZjticmVhayBhfWQ9S2ooZCl8fCIifWM9dm9pZCAwfXZhciBnPWM7aWYoZyYmZ1sxXT09PSIxIil7dmFyIGg9Z1szXSxsO2E6e2Zvcih2YXIgbj1nWzJdLHA9MDtwPGI7KytwKWlmKG49PT1QcShoLHApKXtsPSEwO2JyZWFrIGF9bD0hMX1pZihsKXJldHVybiBoO3NiKCJUQUdHSU5HIiw3KX19fQpmdW5jdGlvbiBXcShhLGIsYyxkLGUpe2Z1bmN0aW9uIGYocCl7cD1UcShhLHApO3ZhciBxPXAuY2hhckF0KHAubGVuZ3RoLTEpO3AmJnEhPT0iJiImJihwKz0iJiIpO3JldHVybiBwK259ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGc9TnEoYyk7aWYoIWcpcmV0dXJuIiI7dmFyIGg9Zy5xdWVyeXx8IiIsbD1nLmZyYWdtZW50fHwiIixuPWErIj0iK2I7ZD9sLnN1YnN0cmluZygxKS5sZW5ndGghPT0wJiZlfHwobD0iIyIrZihsLnN1YnN0cmluZygxKSkpOmg9Ij8iK2YoaC5zdWJzdHJpbmcoMSkpO3JldHVybiIiK2cuaGsraCtsfQpmdW5jdGlvbiBYcShhLGIpe2Z1bmN0aW9uIGMobixwLHEpe3ZhciByO2E6e2Zvcih2YXIgdCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodCkpe3I9ITA7YnJlYWsgYX1yPSExfWlmKHIpe3ZhciB1LHY9W10seDtmb3IoeCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkoeCkpe3ZhciB5PW5beF07eSE9PXZvaWQgMCYmeT09PXkmJnkhPT1udWxsJiZ5LnRvU3RyaW5nKCkhPT0iW29iamVjdCBPYmplY3RdIiYmKHYucHVzaCh4KSx2LnB1c2gocGIoU3RyaW5nKHkpKSkpfXZhciB6PXYuam9pbigiKiIpO3U9WyIxIixQcSh6KSx6XS5qb2luKCIqIik7ZD8oWWYoMyl8fFlmKDEpfHwhcCkmJllxKCJfZ2wiLHUsYSxwLHEpOlpxKCJfZ2wiLHUsYSxwLHEpfX12YXIgZD0oYS50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKT09PSJGT1JNIixlPUlxKGIsMSxkKSxmPUlxKGIsMixkKSxnPUlxKGIsNCxkKSxoPUlxKGIsMyxkKTtjKGUsITEsITEpO2MoZiwhMCwhMSk7WWYoMSkmJmMoZywhMCwhMCk7Zm9yKHZhciBsIGluIGgpaC5oYXNPd25Qcm9wZXJ0eShsKSYmCiRxKGwsaFtsXSxhKX1mdW5jdGlvbiAkcShhLGIsYyl7Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iYSI/WnEoYSxiLGMpOmMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImZvcm0iJiZZcShhLGIsYyl9ZnVuY3Rpb24gWnEoYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZjtpZihmPWMuaHJlZil7dmFyIGc7aWYoIShnPWQpKXt2YXIgaD1BLmxvY2F0aW9uLmhyZWYsbD1OcShjLmhyZWYpLG49TnEoaCk7Zz0hKGwmJm4mJmwuaGs9PT1uLmhrJiZsLnF1ZXJ5PT09bi5xdWVyeSYmbC5mcmFnbWVudCl9Zj1nfWlmKGYpe3ZhciBwPVdxKGEsYixjLmhyZWYsZCxlKTt2Yy50ZXN0KHApJiYoYy5ocmVmPXApfX0KZnVuY3Rpb24gWXEoYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTtpZihjKXt2YXIgZj1jLmdldEF0dHJpYnV0ZSgiYWN0aW9uIil8fCIiO2lmKGYpe3ZhciBnPShjLm1ldGhvZHx8IiIpLnRvTG93ZXJDYXNlKCk7aWYoZyE9PSJnZXQifHxkKXtpZihnPT09ImdldCJ8fGc9PT0icG9zdCIpe3ZhciBoPVdxKGEsYixmLGQsZSk7dmMudGVzdChoKSYmKGMuYWN0aW9uPWgpfX1lbHNle2Zvcih2YXIgbD1jLmNoaWxkTm9kZXN8fFtdLG49ITEscD0wO3A8bC5sZW5ndGg7cCsrKXt2YXIgcT1sW3BdO2lmKHEubmFtZT09PWEpe3Euc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYik7bj0hMDticmVha319aWYoIW4pe3ZhciByPUIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpO3Iuc2V0QXR0cmlidXRlKCJuYW1lIixhKTtyLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO2MuYXBwZW5kQ2hpbGQocil9fX19fQpmdW5jdGlvbiBFcShhKXt0cnl7dmFyIGI7YTp7Zm9yKHZhciBjPWEsZD0xMDA7YyYmZD4wOyl7aWYoYy5ocmVmJiZjLm5vZGVOYW1lLm1hdGNoKC9eYSg/OnJlYSk/JC9pKSl7Yj1jO2JyZWFrIGF9Yz1jLnBhcmVudE5vZGU7ZC0tfWI9bnVsbH12YXIgZT1iO2lmKGUpe3ZhciBmPWUucHJvdG9jb2w7ZiE9PSJodHRwOiImJmYhPT0iaHR0cHM6Inx8WHEoZSxlLmhvc3RuYW1lKX19Y2F0Y2goZyl7fX1mdW5jdGlvbiBGcShhKXt0cnl7dmFyIGI9YS5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpO2lmKGIpe3ZhciBjPUxqKFJqKGIpLCJob3N0Iik7WHEoYSxjKX19Y2F0Y2goZCl7fX1mdW5jdGlvbiBhcihhLGIsYyxkKXtEcSgpO3ZhciBlPWM9PT0iZnJhZ21lbnQiPzI6MTtkPSEhZDtIcShhLGIsZSxkLCExKTtlPT09MiYmc2IoIlRBR0dJTkciLDIzKTtkJiZzYigiVEFHR0lORyIsMjQpfQpmdW5jdGlvbiBicihhLGIpe0RxKCk7SHEoYSxbTmooQS5sb2NhdGlvbiwiaG9zdCIsITApXSxiLCEwLCEwKX1mdW5jdGlvbiBjcigpe3ZhciBhPUIubG9jYXRpb24uaG9zdG5hbWUsYj1LcS5leGVjKEIucmVmZXJyZXIpO2lmKCFiKXJldHVybiExO3ZhciBjPWJbMl0sZD1iWzFdLGU9IiI7aWYoYyl7dmFyIGY9Yy5zcGxpdCgiLyIpLGc9ZlsxXTtlPWc9PT0icyI/S2ooZlsyXSl8fCIiOktqKGcpfHwiIn1lbHNlIGlmKGQpe2lmKGQuaW5kZXhPZigieG4tLSIpPT09MClyZXR1cm4hMTtlPWQucmVwbGFjZSgvLS9nLCIuIikucmVwbGFjZSgvXC5cLi9nLCItIil9dmFyIGg9YS5yZXBsYWNlKExxLCIiKSxsPWUucmVwbGFjZShMcSwiIik7cmV0dXJuIGg9PT1sfHxUYihoLCIuIitsKX1mdW5jdGlvbiBkcihhLGIpe3JldHVybiBhPT09ITE/ITE6YXx8Ynx8Y3IoKX07dmFyIGVyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWU9MDt0aGlzLnZhbHVlPWE9PT12b2lkIDA/MDphfTtlci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlfD0xPDxhfTt2YXIgZnI9ZnVuY3Rpb24oYSxiKXtiPD0wfHwoYS52YWx1ZXw9MTw8Yi0xKX07ZXIucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTtlci5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZSY9figxPDxhKX07ZXIucHJvdG90eXBlLmNsZWFyQWxsPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT0wfTtlci5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlPT09YS52YWx1ZX07ZnVuY3Rpb24gZ3IoYSl7aWYoYSl0cnl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGF0b2IoYS5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKSkuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5jaGFyQ29kZUF0KDApfSkpfWNhdGNoKGIpe319ZnVuY3Rpb24gaHIoYSxiKXt2YXIgYz0wLGQ9MCxlLGY9Yjtkb3tpZihmPj1hLmxlbmd0aClyZXR1cm47ZT1hW2YrK107Y3w9KGUmMTI3KTw8ZDtkKz03fXdoaWxlKGUmMTI4KTtyZXR1cm5bYyxmXX07ZnVuY3Rpb24gaXIoKXt2YXIgYT1TdHJpbmcsYj1BLmxvY2F0aW9uLmhvc3RuYW1lLGM9QS5sb2NhdGlvbi5wYXRobmFtZSxkPWI9YmMoYik7ZC5zcGxpdCgiLiIpLmxlbmd0aD4yJiYoZD1kLnJlcGxhY2UoL14od3d3WzAtOV0qfHdlYnxmdHB8d2FwfGhvbWV8bXx3fGFtcHxtb2JpbGUpXC4vLCIiKSk7Yj1kO2M9YmMoYyk7dmFyIGU9Yy5zcGxpdCgiOyIpWzBdO2U9ZS5yZXBsYWNlKC9cLyhhcnxzbHB8d2VifGluZGV4KT9cLz8kLywiIik7cmV0dXJuIGEobmcoKCIiK2IrZSkudG9Mb3dlckNhc2UoKSkpfTt2YXIganI9WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl07ZnVuY3Rpb24ga3IoYSxiKXtpZighYSlyZXR1cm4gc2IoIlRBR0dJTkciLDMyKSwxMDtpZihiPT09bnVsbHx8Yj09PXZvaWQgMHx8Yj09PSIiKXJldHVybiBzYigiVEFHR0lORyIsMzMpLDExO3ZhciBjPWxyKCExKTtpZihjLmVycm9yIT09MClyZXR1cm4gc2IoIlRBR0dJTkciLDM0KSxjLmVycm9yO2lmKCFjLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsMzUpLDI7Yy52YWx1ZVthXT1iO3ZhciBkPW1yKGMpO2QhPT0wJiZzYigiVEFHR0lORyIsMzYpO3JldHVybiBkfQpmdW5jdGlvbiBucihhKXtpZighYSlyZXR1cm4gc2IoIlRBR0dJTkciLDI3KSx7ZXJyb3I6MTB9O3ZhciBiPWxyKCk7aWYoYi5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwyOSksYjtpZighYi52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDMwKSx7ZXJyb3I6Mn07aWYoIShhIGluIGIudmFsdWUpKXJldHVybiBzYigiVEFHR0lORyIsMzEpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTV9O3ZhciBjPWIudmFsdWVbYV07cmV0dXJuIGM9PT1udWxsfHxjPT09dm9pZCAwfHxjPT09IiI/KHNiKCJUQUdHSU5HIiwyOCkse3ZhbHVlOnZvaWQgMCxlcnJvcjoxMX0pOnt2YWx1ZTpjLGVycm9yOjB9fQpmdW5jdGlvbiBvcihhKXtpZihhKXt2YXIgYj1scighMSk7Yi5lcnJvciE9PTA/c2IoIlRBR0dJTkciLDM4KTpiLnZhbHVlP2EgaW4gYi52YWx1ZT8oZGVsZXRlIGIudmFsdWVbYV0sbXIoYikhPT0wJiZzYigiVEFHR0lORyIsNDEpKTpzYigiVEFHR0lORyIsNDApOnNiKCJUQUdHSU5HIiwzOSl9ZWxzZSBzYigiVEFHR0lORyIsMzcpfQpmdW5jdGlvbiBscihhKXthPWE9PT12b2lkIDA/ITA6YTtpZighQmwoanIpKXJldHVybiBzYigiVEFHR0lORyIsNDMpLHtlcnJvcjozfTt0cnl7aWYoIUEubG9jYWxTdG9yYWdlKXJldHVybiBzYigiVEFHR0lORyIsNDQpLHtlcnJvcjoxfX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ1KSx7ZXJyb3I6MTR9fXZhciBiPXtzY2hlbWE6ImdjbCIsdmVyc2lvbjoxfSxjPXZvaWQgMDt0cnl7Yz1BLmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJfZ2NsX2xzIil9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0Nikse2Vycm9yOjEzfX10cnl7aWYoYyl7dmFyIGQ9SlNPTi5wYXJzZShjKTtpZihkJiZ0eXBlb2YgZD09PSJvYmplY3QiKWI9ZDtlbHNlIHJldHVybiBzYigiVEFHR0lORyIsNDcpLHtlcnJvcjoxMn19fWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDgpLHtlcnJvcjo4fX1pZihiLnNjaGVtYSE9PSJnY2wiKXJldHVybiBzYigiVEFHR0lORyIsNDkpLHtlcnJvcjo0fTsKaWYoYi52ZXJzaW9uIT09MSlyZXR1cm4gc2IoIlRBR0dJTkciLDUwKSx7ZXJyb3I6NX07dHJ5e3ZhciBlPXByKGIpO2EmJmUmJm1yKHt2YWx1ZTpiLGVycm9yOjB9KX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19cmV0dXJue3ZhbHVlOmIsZXJyb3I6MH19CmZ1bmN0aW9uIHByKGEpe2lmKCFhfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKCJleHBpcmVzImluIGEmJiJ2YWx1ZSJpbiBhKXt2YXIgYjt0eXBlb2YgYS5leHBpcmVzPT09Im51bWJlciI/Yj1hLmV4cGlyZXM6Yj10eXBlb2YgYS5leHBpcmVzPT09InN0cmluZyI/TnVtYmVyKGEuZXhwaXJlcyk6TmFOO2lmKGlzTmFOKGIpfHwhKERhdGUubm93KCk8PWIpKXJldHVybiBhLnZhbHVlPW51bGwsYS5lcnJvcj05LHNiKCJUQUdHSU5HIiw1NCksITB9ZWxzZXtmb3IodmFyIGM9ITEsZD1tKE9iamVjdC5rZXlzKGEpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSljPXByKGFbZS52YWx1ZV0pfHxjO3JldHVybiBjfXJldHVybiExfQpmdW5jdGlvbiBtcihhKXtpZihhLmVycm9yKXJldHVybiBhLmVycm9yO2lmKCFhLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsNDIpLDI7dmFyIGI9YS52YWx1ZSxjO3RyeXtjPUpTT04uc3RyaW5naWZ5KGIpfWNhdGNoKGQpe3JldHVybiBzYigiVEFHR0lORyIsNTIpLDZ9dHJ5e0EubG9jYWxTdG9yYWdlLnNldEl0ZW0oIl9nY2xfbHMiLGMpfWNhdGNoKGQpe3JldHVybiBzYigiVEFHR0lORyIsNTMpLDd9cmV0dXJuIDB9O3ZhciBxcj17fSxycj0ocXIuZ2NsaWQ9ITAscXIuZGNsaWQ9ITAscXIuZ2JyYWlkPSEwLHFyLndicmFpZD0hMCxxciksc3I9L15cdyskLyx0cj0vXltcdy1dKyQvLHVyPXt9LHZyPSh1ci5hdz0iRlBHQ0xBVyIsdXIpLHdyPXt9LHhyPSh3ci5hZz0iX2FnIix3ci5nYj0iX2diIix3ci5hdz0iX2F3Iix3ci5kYz0iX2RjIix3ci5nZj0iX2dmIix3ci5oYT0iX2hhIix3ci5ncD0iX2dwIix3ci5ncz0iX2dzIix3cikseXI9L14oPzp3d3dcLik/Z29vZ2xlKD86XC5jb20/KT8oPzpcLlthLXpdezJ9dD8pPyQvLHpyPS9ed3d3XC5nb29nbGVhZHNlcnZpY2VzXC5jb20kLztmdW5jdGlvbiBBcigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfWZ1bmN0aW9uIEJyKGEpe3JldHVybiFZZig1KXx8QmwoYSl9ZnVuY3Rpb24gQ3IoYSxiKXtmdW5jdGlvbiBjKCl7dmFyIGQ9QnIoYik7ZCYmYSgpO3JldHVybiBkfUhsKGZ1bmN0aW9uKCl7YygpfHxJbChjLGIpfSxiKX0KZnVuY3Rpb24gRHIoYSl7cmV0dXJuIEVyKGEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pfWZ1bmN0aW9uIEZyKGEpe3JldHVybiBHcihhKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBHcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPUhyKGEucHJlZml4KSxkPUlyKCJnYiIsYyksZT1JcigiYWciLGMpO2lmKCFlfHwhZClyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7bi56Zz1sO3JldHVybiBufX0sZz1FcihkLGIpLm1hcChmKCJnYiIpKSxoPUpyKGUpLm1hcChmKCJhZyIpKTtyZXR1cm4gZy5jb25jYXQoaCkuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBLcihhLGIsYyxkLGUpe3ZhciBmPUNiKGEsZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2NsaWQ9PT1ifSk7Zj8oZi50aW1lc3RhbXA8YyYmKGYudGltZXN0YW1wPWMsZi5vZD1lKSxmLmxhYmVscz1McihmLmxhYmVsc3x8W10sZHx8W10pKTphLnB1c2goe3ZlcnNpb246IjIiLGdjbGlkOmIsdGltZXN0YW1wOmMsbGFiZWxzOmQsb2Q6ZX0pfWZ1bmN0aW9uIE1yKGEpe2Zvcih2YXIgYj13cShhLDUpfHxbXSxjPVtdLGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWYsaD1OcihmKTtoJiZLcihjLGcuayxoLGcuYnx8W10sZi51KX1yZXR1cm4gYy5zb3J0KGZ1bmN0aW9uKGwsbil7cmV0dXJuIG4udGltZXN0YW1wLWwudGltZXN0YW1wfSl9CmZ1bmN0aW9uIEVyKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9W107T3IoYyxhLDEpO2lmKGIpaWYoVGIoYSwiX2F3Iikpe3ZhciBkPVByKCk7ZCYmKGQub2Q9dm9pZCAwLGQub2E9ZC5vYXx8WzJdLFFyKGMsZCkpO09yKGMsImdjbF9hdyIsMil9ZWxzZSBUYihhLCJfZ2IiKSYmWWYoNikmJk9yKGMsImdjbF9nYiIsMik7Yy5zb3J0KGZ1bmN0aW9uKGUsZil7cmV0dXJuIGYudGltZXN0YW1wLWUudGltZXN0YW1wfSk7cmV0dXJuIFJyKGMpfWZ1bmN0aW9uIFNyKGEsYil7Zm9yKHZhciBjPVtdLGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtjLmluY2x1ZGVzKGYpfHxjLnB1c2goZil9Zm9yKHZhciBnPW0oYiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7Yy5pbmNsdWRlcyhsKXx8Yy5wdXNoKGwpfXJldHVybiBjfQpmdW5jdGlvbiBRcihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBkLGUsZj1tKGEpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2lmKGguZ2NsaWQ9PT1iLmdjbGlkKXtkPWg7YnJlYWt9aC5xYSYmYi5xYSYmaC5xYS5lcXVhbHMoYi5xYSkmJihlPWgpfWlmKGQpe3ZhciBsLG4scD0obD1kLnFhKSE9bnVsbD9sOm5ldyBlcixxPShuPWIucWEpIT1udWxsP246bmV3IGVyO3AudmFsdWV8PXEudmFsdWU7ZC5xYT1wO2QudGltZXN0YW1wPGIudGltZXN0YW1wJiYoZC50aW1lc3RhbXA9Yi50aW1lc3RhbXAsZC5vZD1iLm9kKTtkLmxhYmVscz1TcihkLmxhYmVsc3x8W10sYi5sYWJlbHN8fFtdKTtkLm9hPVNyKGQub2F8fFtdLGIub2F8fFtdKX1lbHNlIGMmJmU/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLGIpOmEucHVzaChiKX0KZnVuY3Rpb24gVHIoYSl7aWYoIWEpcmV0dXJuIG5ldyBlcjt2YXIgYj1uZXcgZXI7aWYoYT09PTEpcmV0dXJuIGZyKGIsMiksZnIoYiwzKSxiO2ZyKGIsYSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIFByKCl7dmFyIGE9bnIoImdjbGlkIik7aWYoIWF8fGEuZXJyb3J8fCFhLnZhbHVlfHx0eXBlb2YgYS52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBudWxsO3ZhciBiPWEudmFsdWU7dHJ5e2lmKCEoInZhbHVlImluIGImJmIudmFsdWUpfHx0eXBlb2YgYi52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBudWxsO3ZhciBjPWIudmFsdWUsZD1jLnZhbHVlO2lmKCFkfHwhZC5tYXRjaCh0cikpcmV0dXJuIG51bGw7dmFyIGU9Yy5saW5rRGVjb3JhdGlvblNvdXJjZSxmPWMubGlua0RlY29yYXRpb25Tb3VyY2VzLGc9bmV3IGVyO3R5cGVvZiBlPT09Im51bWJlciI/Zz1UcihlKTp0eXBlb2YgZj09PSJudW1iZXIiJiYoZy52YWx1ZT1mKTtyZXR1cm57dmVyc2lvbjoiIixnY2xpZDpkLHRpbWVzdGFtcDpOdW1iZXIoYy5jcmVhdGlvblRpbWVNcyl8fDAsbGFiZWxzOltdLHFhOmcsb2E6WzJdfX1jYXRjaChoKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIFVyKGEpe3ZhciBiPW5yKGEpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYi52YWx1ZS5yZWR1Y2UoZnVuY3Rpb24oYyxkKXtpZighZC52YWx1ZXx8dHlwZW9mIGQudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gYzt2YXIgZT1kLnZhbHVlLGY9ZS52YWx1ZTtpZighZnx8IWYubWF0Y2godHIpKXJldHVybiBjO3ZhciBnPW5ldyBlcixoPWUubGlua0RlY29yYXRpb25Tb3VyY2VzO3R5cGVvZiBoPT09Im51bWJlciImJihnLnZhbHVlPWgpO3ZhciBsO2MucHVzaCh7dmVyc2lvbjoiIixnY2xpZDpmLHRpbWVzdGFtcDpOdW1iZXIoZS5jcmVhdGlvblRpbWVNcyl8fDAsZXhwaXJlczpOdW1iZXIoZC5leHBpcmVzKXx8MCxsYWJlbHM6KGw9ZS5sYWJlbHMpIT1udWxsP2w6W10scWE6ZyxvYTpbMl19KTtyZXR1cm4gY30sW10pfWNhdGNoKGMpe3JldHVybiBudWxsfX0KZnVuY3Rpb24gT3IoYSxiLGMpe2lmKGM9PT0xKWZvcih2YXIgZD1jcShiLEIuY29va2llLHZvaWQgMCxBcigpKSxlPW0oZCksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPVZyKGYudmFsdWUuc3BsaXQoIi4iKSksaD1nLmxlbmd0aD09PTA/bnVsbDp7dmVyc2lvbjpnWzBdLGdjbGlkOmdbMl0sdGltZXN0YW1wOihOdW1iZXIoZ1sxXSl8fDApKjFFMyxsYWJlbHM6Zy5zbGljZSgzKX07aCE9bnVsbCYmKGgub2Q9dm9pZCAwLGgucWE9bmV3IGVyLGgub2E9W2NdLFFyKGEsaCkpfWVsc2UgaWYoYz09PTIpe3ZhciBsPVVyKGIpO2lmKGwpZm9yKHZhciBuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7cS5vZD12b2lkIDA7cS5vYT1xLm9hO1FyKGEscSl9fX0KZnVuY3Rpb24gWnIoYSl7dmFyIGI9RXIoYSksYz1VcigiZ2NsX2RjIik7aWYoYylmb3IodmFyIGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtmLm9kPXZvaWQgMDtmLm9hPWYub2F8fFsyXTtRcihiLGYpfWIuc29ydChmdW5jdGlvbihnLGgpe3ZhciBsPWcub2EmJmcub2EuaW5jbHVkZXMoMSksbj1oLm9hJiZoLm9hLmluY2x1ZGVzKDEpO3JldHVybiBsJiYhbj8tMTohbCYmbj8xOmgudGltZXN0YW1wLWcudGltZXN0YW1wfSk7cmV0dXJuIFJyKGIpfWZ1bmN0aW9uIEpyKGEpe3JldHVybiBNcihhKS5tYXAoZnVuY3Rpb24oYil7Yi5xYT1uZXcgZXI7Yi5vYT1bMV07cmV0dXJuIGJ9KX0KZnVuY3Rpb24gTHIoYSxiKXtpZighYS5sZW5ndGgpcmV0dXJuIGI7aWYoIWIubGVuZ3RoKXJldHVybiBhO3ZhciBjPXt9O3JldHVybiBhLmNvbmNhdChiKS5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGMuaGFzT3duUHJvcGVydHkoZCk/ITE6Y1tkXT0hMH0pfWZ1bmN0aW9uIEhyKGEpe3JldHVybiBhJiZ0eXBlb2YgYT09PSJzdHJpbmciJiZhLm1hdGNoKHNyKT9hOiJfZ2NsIn1mdW5jdGlvbiAkcihhLGIpe2lmKGEpe3ZhciBjPXt2YWx1ZTphLHFhOm5ldyBlcn07ZnIoYy5xYSxiKTtyZXR1cm4gY319CmZ1bmN0aW9uIGFzKGEsYixjKXt2YXIgZD1SaihhKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxjPzQ6Mik7aWYoYiYmKCFmfHwhZSkpe3ZhciBnPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooZywiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooZywiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiYoZT09PXZvaWQgMHx8ZT09PSJhdyJ8fGU9PT0iYXcuZHMifHxZZig4KSYmZT09PSJhdy5kdiIpP1tmXTpbXX0KZnVuY3Rpb24gYnMoYSxiKXt2YXIgYz1SaihhKSxkPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksZT1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsIndicmFpZCIpO2Y9JGIoZik7dmFyIGc9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2JyYWlkIiksaD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksbD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJkY2xpZCIpO2lmKGImJiEoZCYmZSYmZiYmZykpe3ZhciBuPWMuaGFzaC5yZXBsYWNlKCIjIiwiIik7ZD1kfHxJaihuLCJnY2xpZCIsITEpO2U9ZXx8SWoobiwiZ2Nsc3JjIiwhMSk7Zj1mfHxJaihuLCJ3YnJhaWQiLCExKTtnPWd8fElqKG4sImdicmFpZCIsITEpO2g9aHx8SWoobiwiZ2FkX3NvdXJjZSIsITEpfXJldHVybiBjcyhkLGUsbCxmLGcsaCl9CmZ1bmN0aW9uIGRzKGEsYixjKXt2YXIgZD1SaihhKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxjPzQ6MiksZz0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJkY2xpZCIpLGM/NDoyKTtpZihiJiYoIWV8fCFmKSl7dmFyIGg9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtmfHwoZj0kcihJaihoLCJnY2xpZCIsITEpLDMpKTtlfHwoZT1JaihoLCJnY2xzcmMiLCExKSl9cmV0dXJuIGYmJmUmJihlPT09ImF3LmRzInx8ZT09PSJhdy5kdiJ8fGU9PT0iM3AuZHMifHxlPT09ImRzIik/W2ZdOmc/W2ddOltdfWZ1bmN0aW9uIGVzKCl7cmV0dXJuIGJzKEEubG9jYXRpb24uaHJlZiwhMCl9CmZ1bmN0aW9uIGNzKGEsYixjLGQsZSxmKXt2YXIgZz17fSxoPWZ1bmN0aW9uKGwsbil7Z1tuXXx8KGdbbl09W10pO2dbbl0ucHVzaChsKX07Zy5nY2xpZD1hO2cuZ2Nsc3JjPWI7Zy5kY2xpZD1jO2lmKGEhPT12b2lkIDAmJmEubWF0Y2godHIpKXN3aXRjaChiKXtjYXNlIHZvaWQgMDpoKGEsImF3Iik7YnJlYWs7Y2FzZSAiYXcuZHMiOmgoYSwiYXciKTtoKGEsImRjIik7YnJlYWs7Y2FzZSAiYXcuZHYiOllmKDgpJiYoaChhLCJhdyIpLGgoYSwiZGMiKSk7YnJlYWs7Y2FzZSAiZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICIzcC5kcyI6aChhLCJkYyIpO2JyZWFrO2Nhc2UgImdmIjpoKGEsImdmIik7YnJlYWs7Y2FzZSAiaGEiOmgoYSwiaGEiKX1jJiZoKGMsImRjIik7ZCE9PXZvaWQgMCYmdHIudGVzdChkKSYmKGcud2JyYWlkPWQsaChkLCJnYiIpKTtlIT09dm9pZCAwJiZ0ci50ZXN0KGUpJiYoZy5nYnJhaWQ9ZSxoKGUsImFnIikpO2YhPT12b2lkIDAmJnRyLnRlc3QoZikmJihnLmdhZF9zb3VyY2U9CmYsaChmLCJncyIpKTtyZXR1cm4gZ31mdW5jdGlvbiBmcygpe2Zvcih2YXIgYT1lcygpLGI9ITAsYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlpZihhW2QudmFsdWVdIT09dm9pZCAwKXtiPSExO2JyZWFrfWImJihhPWJzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEpLGEuZ2FkX3NvdXJjZT12b2lkIDApO3JldHVybiBhfWZ1bmN0aW9uIGdzKGEpe3ZhciBiPWZzKCk7aHMoYiwhMSxhKX0KZnVuY3Rpb24gaXMoYSl7dmFyIGI9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTtiLmxlbmd0aHx8KGI9YXMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSwhMCkpO2E9YXx8e307anMoYSk7aWYoYi5sZW5ndGgpe3ZhciBjPWJbMF0sZD1OYigpLGU9dXEoYSxkLCEwKSxmPUFyKCksZz1mdW5jdGlvbigpe0JyKGYpJiZlLmV4cGlyZXMhPT12b2lkIDAmJmtyKCJnY2xpZCIse3ZhbHVlOnt2YWx1ZTpjLnZhbHVlLGNyZWF0aW9uVGltZU1zOmQsbGlua0RlY29yYXRpb25Tb3VyY2VzOmMucWEuZ2V0KCl9LGV4cGlyZXM6TnVtYmVyKGUuZXhwaXJlcyl9KX07SGwoZnVuY3Rpb24oKXtnKCk7QnIoZil8fElsKGcsZil9LGYpfX0KZnVuY3Rpb24ganMoYSl7dmFyIGI9Qi5yZWZlcnJlcj9MaihSaihCLnJlZmVycmVyKSwiaG9zdCIpOiIiO2lmKHlyLnRlc3QoYil8fHpyLnRlc3QoYil8fGtzKCkpe3ZhciBjO2E6e2Zvcih2YXIgZD1SaihBLmxvY2F0aW9uLmhyZWYpLGU9SmooTGooZCwicXVlcnkiKSksZj1tKE9iamVjdC5rZXlzKGUpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZighcnJbaF0pe3ZhciBsPWVbaF1bMF18fCIiLG47aWYoIWx8fGwubGVuZ3RoPDUwfHxsLmxlbmd0aD4yMDApbj0hMTtlbHNle3ZhciBwPWdyKGwpLHE7aWYocCljOnt2YXIgcj1wO2lmKHImJnIubGVuZ3RoIT09MCl7dmFyIHQ9MDt0cnl7Zm9yKHZhciB1PTEwO3Q8ci5sZW5ndGgmJiEodS0tPD0wKTspe3ZhciB2PWhyKHIsdCk7aWYodj09PXZvaWQgMClicmVhazt2YXIgeD1tKHYpLHk9eC5uZXh0KCkudmFsdWUsej14Lm5leHQoKS52YWx1ZSxDPXksRD16LEk9QyY3O2lmKEM+PjM9PT0xNjM4Mil7aWYoSSE9PQowKWJyZWFrO3ZhciBHPWhyKHIsRCk7aWYoRz09PXZvaWQgMClicmVhaztxPW0oRykubmV4dCgpLnZhbHVlPT09MTticmVhayBjfXZhciBOO2Q6e3ZhciBTPXZvaWQgMCxXPXIsZWE9RDtzd2l0Y2goSSl7Y2FzZSAwOk49KFM9aHIoVyxlYSkpPT1udWxsP3ZvaWQgMDpTWzFdO2JyZWFrIGQ7Y2FzZSAxOk49ZWErODticmVhayBkO2Nhc2UgMjp2YXIgamE9aHIoVyxlYSk7aWYoamE9PT12b2lkIDApYnJlYWs7dmFyIGZhPW0oamEpLHNhPWZhLm5leHQoKS52YWx1ZTtOPWZhLm5leHQoKS52YWx1ZStzYTticmVhayBkO2Nhc2UgNTpOPWVhKzQ7YnJlYWsgZH1OPXZvaWQgMH1pZihOPT09dm9pZCAwfHxOPnIubGVuZ3RofHxOPD10KWJyZWFrO3Q9Tn19Y2F0Y2gobWEpe319cT0hMX1lbHNlIHE9ITE7bj1xfWlmKG4pe2M9bDticmVhayBhfX19Yz12b2lkIDB9dmFyIGRhPWM7ZGEmJmxzKCJnY2xfYXciLGRhLDcsYSl9fQpmdW5jdGlvbiBscyhhLGIsYyxkKXttcyhhLFt7dmVyc2lvbjoiIixnY2xpZDpiLHRpbWVzdGFtcDpOYigpLHFhOlRyKGMpfV0sZCl9CmZ1bmN0aW9uIG1zKGEsYixjKXtjPWN8fHt9O3ZhciBkPUFyKCksZT1mdW5jdGlvbigpe2lmKEJyKGQpJiZiLmxlbmd0aD4wKXt2YXIgZj1VcihhKXx8W107Yi5mb3JFYWNoKGZ1bmN0aW9uKGcpe3ZhciBoPXVxKGMsZy50aW1lc3RhbXAsITApO2guZXhwaXJlcyE9PXZvaWQgMCYmUXIoZix7dmVyc2lvbjoiIixnY2xpZDpnLmdjbGlkLHRpbWVzdGFtcDpnLnRpbWVzdGFtcCxleHBpcmVzOk51bWJlcihoLmV4cGlyZXMpLHFhOmcucWEsbGFiZWxzOmcubGFiZWxzfSwhMCl9KTtmLmxlbmd0aCYma3IoYSxmLm1hcChmdW5jdGlvbihnKXt2YXIgaD17dmFsdWU6Zy5nY2xpZCxjcmVhdGlvblRpbWVNczpnLnRpbWVzdGFtcCxsaW5rRGVjb3JhdGlvblNvdXJjZXM6Zy5xYT9nLnFhLmdldCgpOjB9LGw7aWYoKGw9Zy5sYWJlbHMpPT1udWxsPzA6bC5sZW5ndGgpaC5sYWJlbHM9Zy5sYWJlbHM7cmV0dXJue3ZhbHVlOmgsZXhwaXJlczpOdW1iZXIoZy5leHBpcmVzKX19KSl9fTtIbChmdW5jdGlvbigpe0JyKGQpPwplKCk6SWwoZSxkKX0sZCl9CmZ1bmN0aW9uIGhzKGEsYixjLGQsZSl7Yz1jfHx7fTtlPWV8fFtdO3ZhciBmPUhyKGMucHJlZml4KSxnPWR8fE5iKCksaD1NYXRoLnJvdW5kKGcvMUUzKSxsPUFyKCksbj0hMSxwPSExLHE9WWYoOSkscj1mdW5jdGlvbigpe2lmKEJyKGwpKXt2YXIgdD11cShjLGcsITApO3QuTWM9bDtmb3IodmFyIHU9ZnVuY3Rpb24oVyxlYSl7dmFyIGphPUlyKFcsZik7amEmJihvcShqYSxlYSx0KSxXIT09ImdiIiYmKG49ITApKX0sdj1mdW5jdGlvbihXKXt2YXIgZWE9WyJHQ0wiLGgsV107ZS5sZW5ndGg+MCYmZWEucHVzaChlLmpvaW4oIi4iKSk7cmV0dXJuIGVhLmpvaW4oIi4iKX0seD1tKFsiYXciLCJkYyIsImdmIiwiaGEiLCJncCJdKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTthW3pdJiZ1KHosdihhW3pdWzBdKSl9aWYoKCFufHxxKSYmYS5nYil7dmFyIEM9YS5nYlswXSxEPUlyKCJnYiIsZik7IWImJkVyKEQpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1DJiYKVy5sYWJlbHMmJlcubGFiZWxzLmxlbmd0aD4wfSl8fHUoImdiIix2KEMpKX19aWYoIXAmJmEuZ2JyYWlkJiZCcigiYWRfc3RvcmFnZSIpJiYocD0hMCwhbnx8cSkpe3ZhciBJPWEuZ2JyYWlkLEc9SXIoImFnIixmKTtpZihifHwhSnIoRykuc29tZShmdW5jdGlvbihXKXtyZXR1cm4gVy5nY2xpZD09PUkmJlcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pKXt2YXIgTj17fSxTPShOLms9SSxOLmk9IiIraCxOLmI9ZSxOKTtBcShHLFMsNSxjLGcpfX1ucyhhLGYsZyxjKX07SGwoZnVuY3Rpb24oKXtyKCk7QnIobCl8fElsKHIsbCl9LGwpfQpmdW5jdGlvbiBucyhhLGIsYyxkKXtpZihhLmdhZF9zb3VyY2UhPT12b2lkIDAmJkJyKCJhZF9zdG9yYWdlIikpe3ZhciBlPXFkKCk7aWYoZSE9PSJyIiYmZSE9PSJoIil7dmFyIGY9YS5nYWRfc291cmNlLGc9SXIoImdzIixiKTtpZihnKXt2YXIgaD1NYXRoLmZsb29yKChOYigpLShwZCgpfHwwKSkvMUUzKSxsLG49aXIoKSxwPXt9O2w9KHAuaz1mLHAuaT0iIitoLHAudT1uLHApO0FxKGcsbCw1LGQsYyl9fX19ZnVuY3Rpb24gb3MoYSxiLGMpe2Zvcih2YXIgZD13cShiLGMpLGU9MDtlPGQubGVuZ3RoOysrZSlpZihOcihkW2VdKT5hKXJldHVybiEwO3JldHVybiExfQpmdW5jdGlvbiBwcyhhKXt2YXIgYj1xcyxjPXJzKGEucHJlZml4KTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZD1IcihhLnByZWZpeCksZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9Y1tnXTtpZihoKXt2YXIgbD1NYXRoLm1pbihzcyhoKSxOYigpKSxuPXVxKGEsbCwhMCk7bi5NYz1BcigpO3ZhciBwPUlyKGcsZCk7cCYmb3EocCxoLG4pfX12YXIgcT1VcSghMCk7aHMoY3MocS5nY2xpZCxxLmdjbHNyYyksITEsYSl9LEFyKCkpfQpmdW5jdGlvbiBycyhhKXt2YXIgYj1VcSghMCksYz1IcihhKSxkPXt9LGU7Zm9yKGUgaW4geHIpaWYoeHIuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBmPWUsZz1JcihmLGMpO2lmKGchPT12b2lkIDApe3ZhciBoPWJbZ107aWYoaCl7dmFyIGw9c3MoaCksbjthOntmb3IodmFyIHA9TWF0aC5taW4obCxOYigpKXx8TmIoKSxxPWNxKGcsQi5jb29raWUsdm9pZCAwLEFyKCkpLHI9MDtyPHEubGVuZ3RoOysrcilpZihzcyhxW3JdKT5wKXtuPSEwO2JyZWFrIGF9bj0hMX1ufHwoZFtmXT1oKX19fXJldHVybiBkfQpmdW5jdGlvbiB0cyhhKXt2YXIgYj1bImFnIl0sYz1VcSghMCksZD1IcihhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGIubGVuZ3RoOysrZSl7dmFyIGY9SXIoYltlXSxkKTtpZihmKXt2YXIgZz1jW2ZdO2lmKGcpe3ZhciBoPSRwKGcsNSk7aWYoaCl7dmFyIGw9TnIoaCk7bHx8KGw9TmIoKSk7aWYob3MobCxmLDUpKWJyZWFrO2guaT0iIitNYXRoLnJvdW5kKGwvMUUzKTtBcShmLGgsNSxhLGwpfX19fX0sWyJhZF9zdG9yYWdlIl0pfWZ1bmN0aW9uIElyKGEsYil7dmFyIGM9eHJbYV07aWYoYyE9PXZvaWQgMClyZXR1cm4gYitjfWZ1bmN0aW9uIHNzKGEpe3JldHVybiBWcihhLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/KE51bWJlcihhLnNwbGl0KCIuIilbMV0pfHwwKSoxRTM6MH1mdW5jdGlvbiBOcihhKXtyZXR1cm4gYT8oTnVtYmVyKGEuaSl8fDApKjFFMzowfQpmdW5jdGlvbiBWcihhKXtyZXR1cm4gYS5sZW5ndGg8M3x8YVswXSE9PSJHQ0wiJiZhWzBdIT09IjEifHwhL15cZCskLy50ZXN0KGFbMV0pfHwhdHIudGVzdChhWzJdKT9bXTphfWZ1bmN0aW9uIHVzKGEsYixjLGQpe3ZhciBlPXFzO2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZihuKXt2YXIgcD1jcShuLEIuY29va2llLHZvaWQgMCxBcigpKTtwLmxlbmd0aCYmKGhbbl09cC5zb3J0KClbcC5sZW5ndGgtMV0pfX1yZXR1cm4gaH07Q3IoZnVuY3Rpb24oKXthcihnLGEsYixjKX0sQXIoKSl9fQpmdW5jdGlvbiB2cyhhLGIsYyl7dmFyIGQ9cXM7aWYoWWYoMTMpJiZBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGU9ZnVuY3Rpb24oKXtmb3IodmFyIGY9e30sZz0wO2c8ZC5sZW5ndGg7KytnKXt2YXIgaD12cltkW2ddXTtpZihoKXt2YXIgbD1jcShoLEIuY29va2llLHZvaWQgMCxBcigpKTtpZihsLmxlbmd0aCl7Zm9yKHZhciBuPXZvaWQgMCxwPTAscT1tKGwpLHI9cS5uZXh0KCk7IXIuZG9uZTtyPXEubmV4dCgpKXt2YXIgdD1yLnZhbHVlLHU9JHAodCw0KTtpZih1JiYodS5tPT09IjEifHxZZigxNikpKXt2YXIgdj1Ocih1KTt2Pj1wJiYocD12LG49dCl9fW4mJihmW2hdPW4pfX19cmV0dXJuIGZ9O0NyKGZ1bmN0aW9uKCl7YXIoZSxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gd3MoYSxiLGMsZCl7aWYoQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPVsiYWciXSxmPUhyKGQpLGc9ZnVuY3Rpb24oKXtmb3IodmFyIGg9e30sbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgbj1JcihlW2xdLGYpO2lmKCFuKXJldHVybnt9O3ZhciBwPXdxKG4sNSk7aWYocC5sZW5ndGgpe3ZhciBxPXAuc29ydChmdW5jdGlvbihyLHQpe3JldHVybiBOcih0KS1OcihyKX0pWzBdO2hbbl09YXEocSw1KX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LFsiYWRfc3RvcmFnZSJdKX19ZnVuY3Rpb24gUnIoYSl7cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiB0ci50ZXN0KGIuZ2NsaWQpfSl9CmZ1bmN0aW9uIHhzKGEsYil7aWYoU3AoQSkpe2Zvcih2YXIgYz1IcihiLnByZWZpeCksZD17fSxlPTA7ZTxhLmxlbmd0aDtlKyspeHJbYVtlXV0mJihkW2FbZV1dPXhyW2FbZV1dKTtDcihmdW5jdGlvbigpe0diKGQsZnVuY3Rpb24oZixnKXt2YXIgaD1jcShjK2csQi5jb29raWUsdm9pZCAwLEFyKCkpO2guc29ydChmdW5jdGlvbih0LHUpe3JldHVybiBzcyh1KS1zcyh0KX0pO2lmKGgubGVuZ3RoKXt2YXIgbD1oWzBdLG49c3MobCkscD1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpLnNsaWNlKDMpOltdLHE9e30scjtyPVZyKGwuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD9sLnNwbGl0KCIuIilbMl06dm9pZCAwO3FbZl09W3JdO2hzKHEsITAsYixuLHApfX0pfSxBcigpKX19CmZ1bmN0aW9uIHlzKGEpe3ZhciBiPVsiYWciXSxjPVsiZ2JyYWlkIl07Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9MDtlPGIubGVuZ3RoOysrZSl7dmFyIGY9SXIoYltlXSxkKTtpZighZilicmVhazt2YXIgZz13cShmLDUpO2lmKGcubGVuZ3RoKXt2YXIgaD1nLnNvcnQoZnVuY3Rpb24ocSxyKXtyZXR1cm4gTnIociktTnIocSl9KVswXSxsPU5yKGgpLG49aC5iLHA9e307cFtjW2VdXT1oLms7aHMocCwhMCxhLGwsbil9fX0sWyJhZF9zdG9yYWdlIl0pfWZ1bmN0aW9uIHpzKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2MpaWYoYVtiW2NdXSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gQXMoYSl7ZnVuY3Rpb24gYihoLGwsbil7biYmKGhbbF09bil9aWYoRWwoKSl7dmFyIGM9ZXMoKSxkO2EuaW5jbHVkZXMoImdhZF9zb3VyY2UiKSYmKGQ9Yy5nYWRfc291cmNlIT09dm9pZCAwP2MuZ2FkX3NvdXJjZTpVcSghMSkuX2dzKTtpZih6cyhjLGEpfHxkKXt2YXIgZT17fTtiKGUsImdjbGlkIixjLmdjbGlkKTtiKGUsImRjbGlkIixjLmRjbGlkKTtiKGUsImdjbHNyYyIsYy5nY2xzcmMpO2IoZSwid2JyYWlkIixjLndicmFpZCk7YihlLCJnYnJhaWQiLGMuZ2JyYWlkKTticihmdW5jdGlvbigpe3JldHVybiBlfSwzKTt2YXIgZj17fSxnPShmLl91cD0iMSIsZik7YihnLCJfZ3MiLGQpO2JyKGZ1bmN0aW9uKCl7cmV0dXJuIGd9LDEpfX19ZnVuY3Rpb24ga3MoKXt2YXIgYT1SaihBLmxvY2F0aW9uLmhyZWYpO3JldHVybiBMaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIil9CmZ1bmN0aW9uIEJzKGEpe2lmKCFZZigxKSlyZXR1cm4gbnVsbDt2YXIgYj1VcSghMCkuZ2FkX3NvdXJjZTtpZihiIT1udWxsKXJldHVybiBBLmxvY2F0aW9uLmhhc2g9IiIsYjtpZihZZigyKSl7Yj1rcygpO2lmKGIhPW51bGwpcmV0dXJuIGI7dmFyIGM9ZXMoKTtpZih6cyhjLGEpKXJldHVybiIwIn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDcyhhKXt2YXIgYj1CcyhhKTtiIT1udWxsJiZicihmdW5jdGlvbigpe3ZhciBjPXt9O3JldHVybiBjLmdhZF9zb3VyY2U9YixjfSw0KX0KZnVuY3Rpb24gRHMoYSxiLGMpe3ZhciBkPVtdO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gZDtmb3IodmFyIGU9e30sZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdLGg9Zy56Zz9nLnpnOiJnY2wiO2lmKChnLmxhYmVsc3x8W10pLmluZGV4T2YoYyk9PT0tMSl7YS5wdXNoKDApO3ZhciBsPSExLG49dm9pZCAwO2lmKChuPWcub2EpPT1udWxsPzA6bi5pbmNsdWRlcygyKSlsPSEwO3ZhciBwPXZvaWQgMDsoKHA9Zy5vYSk9PW51bGw/MDpwLmluY2x1ZGVzKDEpKSYmIWVbaF0mJihsPSEwLGVbaF09ITApO2wmJmQucHVzaChnKX1lbHNle2EucHVzaCgxKTt2YXIgcT12b2lkIDA7aWYoKHE9Zy5vYSk9PW51bGw/MDpxLmluY2x1ZGVzKDEpKWVbaF09ITB9fXJldHVybiBkfQpmdW5jdGlvbiBFcyhhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmPVtdO2M9Y3x8e307aWYoIUJyKEFyKCkpKXJldHVybiBmO3ZhciBnPUVyKGEsZSksaD1EcyhmLGcsYik7aWYoaC5sZW5ndGgmJiFkKXtmb3IodmFyIGw9W10sbj0hMSxwPW0oaCkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWUsdD1yLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PSh0LmxhYmVsc3x8W10pLmNvbmNhdChbYl0pLEM9dm9pZCAwO2lmKCgoQz15KT09bnVsbD8wOkMuaW5jbHVkZXMoMSkpJiYhbil7dmFyIEQ9W3UsTWF0aC5yb3VuZCh4LzFFMyksdl0uY29uY2F0KHopLmpvaW4oIi4iKSxJPXVxKGMseCwhMCk7SS5NYz1BcigpO29xKGEsRCxJKTtuPSEwfXZhciBHPXZvaWQgMDtlJiYoKEc9eSk9PW51bGw/MDpHLmluY2x1ZGVzKDIpKSYmbC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scix7bGFiZWxzOnp9KSl9bC5sZW5ndGgmJgptcygiZ2NsX2diIixsLGMpfXJldHVybiBmfQpmdW5jdGlvbiBGcyhhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7dmFyIGQ9W107Yj1ifHx7fTt2YXIgZT1HcihiLGMpLGY9RHMoZCxlLGEpO2lmKGYubGVuZ3RoKXtmb3IodmFyIGc9W10saD17fSxsPW0oZiksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWUscT1IcihiLnByZWZpeCkscj1JcihwLnpnLHEpO2lmKCFyKXJldHVybiBkO3ZhciB0PXAsdT10LnZlcnNpb24sdj10LmdjbGlkLHg9dC50aW1lc3RhbXAseT10Lm9hLHo9TWF0aC5yb3VuZCh4LzFFMyksQz1Mcih0LmxhYmVsc3x8W10sW2FdKSxEPXZvaWQgMDtpZigoRD15KT09bnVsbD8wOkQuaW5jbHVkZXMoMSkpaWYocC56Zz09PSJhZyImJiFoLmFnKXt2YXIgST17fSxHPShJLms9dixJLmk9IiIreixJLmI9QyxJKTtBcShyLEcsNSxiLHgpO2guYWc9ITB9ZWxzZSBpZihwLnpnPT09ImdiIiYmIWguZ2Ipe3ZhciBOPVt1LHosdl0uY29uY2F0KEMpLmpvaW4oIi4iKSxTPXVxKGIseCwhMCk7Uy5NYz0KQXIoKTtvcShyLE4sUyk7aC5nYj0hMH12YXIgVz12b2lkIDA7YyYmKChXPXkpPT1udWxsPzA6Vy5pbmNsdWRlcygyKSkmJmcucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHAse2xhYmVsczpDfSkpfWcubGVuZ3RoJiZtcygiZ2NsX2diIixnLGIpfXJldHVybiBkfWZ1bmN0aW9uIEdzKGEsYil7dmFyIGM9SHIoYiksZD1JcihhLGMpO2lmKCFkKXJldHVybiAwO3ZhciBlO2U9YT09PSJhZyI/SnIoZCk6RXIoZCk7Zm9yKHZhciBmPTAsZz0wO2c8ZS5sZW5ndGg7ZysrKWY9TWF0aC5tYXgoZixlW2ddLnRpbWVzdGFtcCk7cmV0dXJuIGZ9ZnVuY3Rpb24gSHMoYSl7Zm9yKHZhciBiPTAsYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlmb3IodmFyIGU9YVtkLnZhbHVlXSxmPTA7ZjxlLmxlbmd0aDtmKyspYj1NYXRoLm1heChiLE51bWJlcihlW2ZdLnRpbWVzdGFtcCkpO3JldHVybiBifQpmdW5jdGlvbiBJcyhhKXt2YXIgYj1NYXRoLm1heChHcygiYXciLGEpLEhzKEJyKEFyKCkpP1JwKCk6e30pKSxjPU1hdGgubWF4KEdzKCJnYiIsYSksSHMoQnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSkpO2M9TWF0aC5tYXgoYyxHcygiYWciLGEpKTtyZXR1cm4gYz5ifTt2YXIgSnM9UmVnRXhwKCJeVUEtXFxkKy1cXGQrJTNBW1xcdy1dKyg/OiUyQ1tcXHctXSspKig/OiUzQlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSopKiQiKSxLcz0vXn4/W1x3LV0rKD86XC5+P1tcdy1dKykqJC8sTHM9L15cZCtcLmZsc1wuZG91YmxlY2xpY2tcLm5ldCQvLE1zPS87Z2FjPShbXjs/XSspLyxOcz0vO2dhY2diPShbXjs/XSspLzsKZnVuY3Rpb24gT3MoYSxiKXtpZihMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkpe3ZhciBjPUIubG9jYXRpb24uaHJlZi5tYXRjaChiKTtyZXR1cm4gYyYmYy5sZW5ndGg9PT0yJiZjWzFdLm1hdGNoKEpzKT9LaihjWzFdKXx8IiI6IiJ9Zm9yKHZhciBkPVtdLGU9bShPYmplY3Qua2V5cyhhKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe2Zvcih2YXIgZz1mLnZhbHVlLGg9W10sbD1hW2ddLG49MDtuPGwubGVuZ3RoO24rKyloLnB1c2gobFtuXS5nY2xpZCk7ZC5wdXNoKGcrIjoiK2guam9pbigiLCIpKX1yZXR1cm4gZC5sZW5ndGg+MD9kLmpvaW4oIjsiKToiIn0KZnVuY3Rpb24gUHMoYSxiLGMpe2Zvcih2YXIgZD1CcihBcigpKT9ScCgiX2dhY19nYiIsITApOnt9LGU9W10sZj0hMSxnPW0oT2JqZWN0LmtleXMoZCkpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49RXMoIl9nYWNfZ2JfIitsLGEsYixjKTtmPWZ8fG4ubGVuZ3RoIT09MCYmbi5zb21lKGZ1bmN0aW9uKHApe3JldHVybiBwPT09MX0pO2UucHVzaChsKyI6IituLmpvaW4oIiwiKSl9cmV0dXJue1JyOmY/ZS5qb2luKCI7Iik6IiIsUXI6T3MoZCxOcyl9fWZ1bmN0aW9uIFFzKGEpe3ZhciBiPUIubG9jYXRpb24uaHJlZi5tYXRjaChuZXcgUmVnRXhwKCI7IithKyI9KFteOz9dKykiKSk7cmV0dXJuIGImJmIubGVuZ3RoPT09MiYmYlsxXS5tYXRjaChLcyk/YlsxXTp2b2lkIDB9CmZ1bmN0aW9uIFJzKGEpe3ZhciBiPXt9LGMsZCxlO0xzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSYmKGM9UXMoImdjbGdzIiksZD1RcygiZ2Nsc3QiKSxlPVFzKCJnY2xscCIpKTtpZihjJiZkJiZlKWIuRWc9YyxiLldoPWQsYi5VaD1lO2Vsc2V7dmFyIGY9TmIoKSxnPU1yKChhfHwiX2djbCIpKyJfZ3MiKSxoPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLmdjbGlkfSksbD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gZi1wLnRpbWVzdGFtcH0pLG49Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAub2R9KTtoLmxlbmd0aD4wJiZsLmxlbmd0aD4wJiZuLmxlbmd0aD4wJiYoYi5FZz1oLmpvaW4oIi4iKSxiLldoPWwuam9pbigiLiIpLGIuVWg9bi5qb2luKCIuIikpfXJldHVybiBifQpmdW5jdGlvbiBTcyhhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKSxkPWI/Yi5zcGxpdCgiLiIpOltdLGU9ZC5sZW5ndGg9PT1jLmxlbmd0aD9kOnZvaWQgMDtyZXR1cm4gYy5tYXAoZnVuY3Rpb24oZixnKXt2YXIgaD17Z2NsaWQ6Zn07aWYoZSl7dmFyIGw9ZVtnXS5zcGxpdCgiXyIpO2lmKGwubGVuZ3RoPT09Mil7aC5xYT1uZXcgZXIoTnVtYmVyKGxbMF0pKTt2YXIgbjt2YXIgcD1OdW1iZXIobFsxXSk7aWYocD09PTApbj1bMF07ZWxzZXt2YXIgcT1bXTtwJjEmJnEucHVzaCgxKTtwJjImJnEucHVzaCgyKTtwJjQmJnEucHVzaCgzKTtwJjgmJnEucHVzaCg0KTtwJjE2JiZxLnB1c2goNSk7bj1xfWgub2E9bn19cmV0dXJuIGh9KX0KZnVuY3Rpb24gVHMoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgZT1RcyhjKTtpZihlKXtpZihZZigxNykpe3ZhciBmPVFzKGMrIl9zcmMiKTtyZXR1cm4gU3MoZSxmKX1pZihkKXt2YXIgZz1uZXcgZXI7ZnIoZywyKTtmcihnLDMpO3JldHVybiBlLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybntnY2xpZDpyLHFhOmcsb2E6WzFdfX0pfXJldHVybiBlLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybntnY2xpZDpyLHFhOm5ldyBlcixvYTpbMV19fSl9fWVsc2V7aWYoYj09PSJnY2xpZCIpe2Zvcih2YXIgaD1FcigoYXx8Il9nY2wiKSsiX2F3IixkKSxsPU51bWJlcihYZls0XT09PXZvaWQgMD8wOlhmWzRdKSxuPW0oVXMoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7cS50aW1lc3RhbXA+bCYmUXIoaCxxKX1yZXR1cm4gaH1pZihiPT09IndicmFpZCIpcmV0dXJuIEVyKChhfHwKIl9nY2wiKSsiX2diIixkKTtpZihiPT09ImJyYWlkcyIpcmV0dXJuIEdyKHtwcmVmaXg6YX0sZCl9cmV0dXJuW119ZnVuY3Rpb24gVXMoKXtyZXR1cm4od3EodnIuYXcsNCl8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEubT09PSIxIn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm57Z2NsaWQ6YS5rLHRpbWVzdGFtcDpOdW1iZXIoYS5pKSx2ZXJzaW9uOiIiLG9hOls1XX19KX1mdW5jdGlvbiBWcyhhKXtmb3IodmFyIGI9MCxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7ZT4wJiYoYnw9MTw8ZS0xKX1yZXR1cm4gYi50b1N0cmluZygpfWZ1bmN0aW9uIFdzKGEpe3JldHVybiBMcy50ZXN0KEIubG9jYXRpb24uaG9zdCk/IShRcygiZ2NsYXciKXx8UXMoImdhYyIpKTpJcyhhKX0KZnVuY3Rpb24gWHMoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7dmFyIGU7ZT1jP0ZzKGEsYixkKTpFcygoYiYmYi5wcmVmaXh8fCJfZ2NsIikrIl9nYiIsYSxiLHZvaWQgMCxkKTtyZXR1cm4gZS5sZW5ndGg9PT0wfHxlLmV2ZXJ5KGZ1bmN0aW9uKGYpe3JldHVybiBmPT09MH0pPyIiOmUuam9pbigiLiIpfTtmdW5jdGlvbiBodChhLGIsYyl7dmFyIGQ9UihhLEYuRC5UYSk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0Iilmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1kW2ddO2lmKGghPT12b2lkIDApe2g9PT1udWxsJiYoaD0iIik7dmFyIGw9ImdhcC4iK2csbj1TdHJpbmcoaCk7Yz9jKGwsbik6YltsXT1ufX19O3ZhciBpdD0hMSxqdD1bXTtmdW5jdGlvbiBrdCgpe2lmKCFpdCl7aXQ9ITA7Zm9yKHZhciBhPWp0Lmxlbmd0aC0xO2E+PTA7YS0tKWp0W2FdKCk7anQ9W119fTtmdW5jdGlvbiBsdChhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1hW2RdO3JldHVybiBifTtmdW5jdGlvbiBtdChhLGIsYyl7cmV0dXJuIHR5cGVvZiBhLmFkZEV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iPyhhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKSwhMCk6ITF9ZnVuY3Rpb24gbnQoYSxiLGMpe3R5cGVvZiBhLnJlbW92ZUV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX07ZnVuY3Rpb24gb3QoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHN8fChhLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cz1bXSk7dmFyIGU9UHAoYS5kb2N1bWVudCk7aWYoYyl7dmFyIGY9ZnVuY3Rpb24oKXtpZihjKXt2YXIgZz1hLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cyxoPURjKGcsZSk7aD49MCYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGcsaCwxKX1udChlLCJsb2FkIixmKTtudChlLCJlcnJvciIsZil9O210KGUsImxvYWQiLGYpO210KGUsImVycm9yIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz0iIik7ZS5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNoKGUpfQpmdW5jdGlvbiBwdChhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvZ2VuXzIwND9pZD10Y2ZlIjtJcChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8ZD09PTApYys9IiYiK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpfSk7cXQoYyxiKX0KZnVuY3Rpb24gcXQoYSxiKXt2YXIgYz13aW5kb3csZDtiPWI9PT12b2lkIDA/ITE6YjtkPWQ9PT12b2lkIDA/ITE6ZDtpZihjLmZldGNoKXt2YXIgZT17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixyZWRpcmVjdDoiZm9sbG93IixtZXRob2Q6ImdldCIsbW9kZToibm8tY29ycyJ9O2QmJihlLm1vZGU9ImNvcnMiLCJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/ZS5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZToidHJ1ZSIsdHJpZ2dlckVsaWdpYmxlOiJmYWxzZSJ9OmUuaGVhZGVycz17IkF0dHJpYnV0aW9uLVJlcG9ydGluZy1FbGlnaWJsZSI6ImV2ZW50LXNvdXJjZSJ9KTtjLmZldGNoKGEsZSl9ZWxzZSBvdChjLGEsYj09PXZvaWQgMD8hMTpiLGQ9PT12b2lkIDA/ITE6ZCl9O2Z1bmN0aW9uIHJ0KCl7dGhpcy5mYT10aGlzLmZhO3RoaXMuUj10aGlzLlJ9cnQucHJvdG90eXBlLmZhPSExO3J0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5mYXx8KHRoaXMuZmE9ITAsdGhpcy5OKCkpfTtydC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O3J0LnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuZmE/YiE9PXZvaWQgMD9hLmNhbGwoYik6YSgpOih0aGlzLlJ8fCh0aGlzLlI9W10pLGImJihhPWEuYmluZChiKSksdGhpcy5SLnB1c2goYSkpfTtydC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2lmKHRoaXMuUilmb3IoO3RoaXMuUi5sZW5ndGg7KXRoaXMuUi5zaGlmdCgpKCl9O2Z1bmN0aW9uIHN0KGEpe2EuYWRkdGxDb25zZW50PT09dm9pZCAwfHx2ZihhLmFkZHRsQ29uc2VudCl8fChhLmFkZHRsQ29uc2VudD12b2lkIDApO2EuZ2RwckFwcGxpZXM9PT12b2lkIDB8fHdmKGEuZ2RwckFwcGxpZXMpfHwoYS5nZHByQXBwbGllcz12b2lkIDApO3JldHVybiBhLnRjU3RyaW5nIT09dm9pZCAwJiYhdmYoYS50Y1N0cmluZyl8fGEubGlzdGVuZXJJZCE9PXZvaWQgMCYmIXVmKGEubGlzdGVuZXJJZCk/MjphLmNtcFN0YXR1cyYmYS5jbXBTdGF0dXMhPT0iZXJyb3IiPzA6M312YXIgdHQ9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306YjtydC5jYWxsKHRoaXMpO3RoaXMuSD1udWxsO3RoaXMuamE9e307dGhpcy55YT0wO3RoaXMuWj1udWxsO3RoaXMuSz1hO3ZhciBjO3RoaXMudGltZW91dE1zPShjPWIudGltZW91dE1zKSE9bnVsbD9jOjUwMDt2YXIgZDt0aGlzLkVqPShkPWIuRWopIT1udWxsP2Q6ITF9O3dhKHR0LHJ0KTsKdHQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmphPXt9O3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5qYTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLkg7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07dmFyIHZ0PWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYS5LLl9fdGNmYXBpPT09ImZ1bmN0aW9uInx8dXQoYSkhPW51bGx9Owp0dC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9e2ludGVybmFsQmxvY2tPbkVycm9yczp0aGlzLkVqfSxkPUhwKGZ1bmN0aW9uKCl7YShjKX0pLGU9MDt0aGlzLnRpbWVvdXRNcyE9PS0xJiYoZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSI7Yy5pbnRlcm5hbEVycm9yU3RhdGU9MTtkKCl9LHRoaXMudGltZW91dE1zKSk7dmFyIGY9ZnVuY3Rpb24oZyxoKXtjbGVhclRpbWVvdXQoZSk7Zz8oYz1nLGMuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGMpLGMuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWIuRWosaCYmYy5pbnRlcm5hbEVycm9yU3RhdGU9PT0wfHwoYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsaHx8KGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpKSk6KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpO2EoYyl9O3RyeXt3dCh0aGlzLCJhZGRFdmVudExpc3RlbmVyIiwKZil9Y2F0Y2goZyl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9MyxlJiYoY2xlYXJUaW1lb3V0KGUpLGU9MCksZCgpfX07dHQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7YSYmYS5saXN0ZW5lcklkJiZ3dCh0aGlzLCJyZW1vdmVFdmVudExpc3RlbmVyIixudWxsLGEubGlzdGVuZXJJZCl9Owp2YXIgenQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9ZD09PXZvaWQgMD8iNzU1IjpkO3ZhciBlO2E6e2lmKGEucHVibGlzaGVyJiZhLnB1Ymxpc2hlci5yZXN0cmljdGlvbnMpe3ZhciBmPWEucHVibGlzaGVyLnJlc3RyaWN0aW9uc1tiXTtpZihmIT09dm9pZCAwKXtlPWZbZD09PXZvaWQgMD8iNzU1IjpkXTticmVhayBhfX1lPXZvaWQgMH12YXIgZz1lO2lmKGc9PT0wKXJldHVybiExO3ZhciBoPWM7Yz09PTI/KGg9MCxnPT09MiYmKGg9MSkpOmM9PT0zJiYoaD0xLGc9PT0xJiYoaD0wKSk7dmFyIGw7aWYoaD09PTApaWYoYS5wdXJwb3NlJiZhLnZlbmRvcil7dmFyIG49eHQoYS52ZW5kb3IuY29uc2VudHMsZD09PXZvaWQgMD8iNzU1IjpkKTtsPW4mJmI9PT0iMSImJmEucHVycG9zZU9uZVRyZWF0bWVudCYmYS5wdWJsaXNoZXJDQz09PSJDSCI/ITA6biYmeHQoYS5wdXJwb3NlLmNvbnNlbnRzLGIpfWVsc2UgbD0hMDtlbHNlIGw9aD09PTE/YS5wdXJwb3NlJiZhLnZlbmRvcj94dChhLnB1cnBvc2UubGVnaXRpbWF0ZUludGVyZXN0cywKYikmJnh0KGEudmVuZG9yLmxlZ2l0aW1hdGVJbnRlcmVzdHMsZD09PXZvaWQgMD8iNzU1IjpkKTohMDohMDtyZXR1cm4gbH0seHQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hKCFhfHwhYVtiXSl9LHd0PWZ1bmN0aW9uKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7dmFyIGU9YS5LO2lmKHR5cGVvZiBlLl9fdGNmYXBpPT09ImZ1bmN0aW9uIil7dmFyIGY9ZS5fX3RjZmFwaTtmKGIsMixjLGQpfWVsc2UgaWYodXQoYSkpe0F0KGEpO3ZhciBnPSsrYS55YTthLmphW2ddPWM7aWYoYS5IKXt2YXIgaD17fTthLkgucG9zdE1lc3NhZ2UoKGguX190Y2ZhcGlDYWxsPXtjb21tYW5kOmIsdmVyc2lvbjoyLGNhbGxJZDpnLHBhcmFtZXRlcjpkfSxoKSwiKiIpfX1lbHNlIGMoe30sITEpfSx1dD1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLkg9TnAoYS5LLCJfX3RjZmFwaUxvY2F0b3IiKTtyZXR1cm4gYS5IfSxBdD1mdW5jdGlvbihhKXtpZighYS5aKXt2YXIgYj1mdW5jdGlvbihjKXtpZihjLnNvdXJjZT09PQphLkgpdHJ5e3ZhciBkO2Q9KHZmKGMuZGF0YSk/SlNPTi5wYXJzZShjLmRhdGEpOmMuZGF0YSkuX190Y2ZhcGlSZXR1cm47YS5qYVtkLmNhbGxJZF0oZC5yZXR1cm5WYWx1ZSxkLnN1Y2Nlc3MpfWNhdGNoKGUpe319O2EuWj1iO210KGEuSywibWVzc2FnZSIsYil9fSxCdD1mdW5jdGlvbihhKXtpZihhLmdkcHJBcHBsaWVzPT09ITEpcmV0dXJuITA7YS5pbnRlcm5hbEVycm9yU3RhdGU9PT12b2lkIDAmJihhLmludGVybmFsRXJyb3JTdGF0ZT1zdChhKSk7cmV0dXJuIGEuY21wU3RhdHVzPT09ImVycm9yInx8YS5pbnRlcm5hbEVycm9yU3RhdGUhPT0wP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhwdCh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOmEuY21wU3RhdHVzIT09ImxvYWRlZCJ8fGEuZXZlbnRTdGF0dXMhPT0idGNsb2FkZWQiJiZhLmV2ZW50U3RhdHVzIT09InVzZXJhY3Rpb25jb21wbGV0ZSI/ITE6ITB9O3ZhciBDdD17MTowLDM6MCw0OjAsNzozLDk6MywxMDozfTtmdW5jdGlvbiBEdCgpe3JldHVybiBraigidGNmIixmdW5jdGlvbigpe3JldHVybnt9fSl9dmFyIEV0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0dChBLHt0aW1lb3V0TXM6LTF9KX07CmZ1bmN0aW9uIEZ0KCl7dmFyIGE9RHQoKSxiPUV0KCk7dnQoYikmJiFHdCgpJiYhSHQoKSYmUCgxMjQpO2lmKCFhLmFjdGl2ZSYmdnQoYikpe0d0KCkmJihhLmFjdGl2ZT0hMCxhLnB1cnBvc2VzPXt9LGEuY21wSWQ9MCxhLnRjZlBvbGljeVZlcnNpb249MCx0bCgpLmFjdGl2ZT0hMCxhLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIik7Y3AoKTt0cnl7Yi5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKGMpe2lmKGMuaW50ZXJuYWxFcnJvclN0YXRlIT09MClJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMDtlbHNlIGlmKGEuZ2RwckFwcGxpZXM9Yy5nZHByQXBwbGllcyxhLmNtcElkPWMuY21wSWQsYS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9Yy5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUsSHQoKSYmKGEuYWN0aXZlPSEwKSwhSnQoYyl8fEd0KCl8fEh0KCkpe2EudGNmUG9saWN5VmVyc2lvbj1jLnRjZlBvbGljeVZlcnNpb247dmFyIGQ7aWYoYy5nZHByQXBwbGllcz09PQohMSl7dmFyIGU9e30sZjtmb3IoZiBpbiBDdClDdC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ITApO2Q9ZTtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyl9ZWxzZSBpZihKdChjKSl7dmFyIGc9e30saDtmb3IoaCBpbiBDdClpZihDdC5oYXNPd25Qcm9wZXJ0eShoKSlpZihoPT09IjEiKXt2YXIgbCxuPWMscD17VXI6ITB9O3A9cD09PXZvaWQgMD97fTpwO2w9QnQobik/bi5nZHByQXBwbGllcz09PSExPyEwOm4udGNTdHJpbmc9PT0idGN1bmF2YWlsYWJsZSI/IXAuaWRwY0FwcGxpZXM6KHAuaWRwY0FwcGxpZXN8fG4uZ2RwckFwcGxpZXMhPT12b2lkIDB8fHAuVXIpJiYocC5pZHBjQXBwbGllc3x8dmYobi50Y1N0cmluZykmJm4udGNTdHJpbmcubGVuZ3RoKT96dChuLCIxIiwwKTohMDohMTtnWyIxIl09bH1lbHNlIGdbaF09enQoYyxoLEN0W2hdKTtkPWd9aWYoZCl7YS50Y1N0cmluZz1jLnRjU3RyaW5nfHwidGNlbXB0eSI7YS5wdXJwb3Nlcz1kO3ZhciBxPXt9LHI9KHFbRi5ELmthXT0KYS5wdXJwb3Nlc1siMSJdPyJncmFudGVkIjoiZGVuaWVkIixxKTthLmdkcHJBcHBsaWVzIT09ITA/KGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwKToocltGLkQuWGFdPWEucHVycG9zZXNbIjMiXSYmYS5wdXJwb3Nlc1siNCJdPyJncmFudGVkIjoiZGVuaWVkIix0eXBlb2YgYS50Y2ZQb2xpY3lWZXJzaW9uPT09Im51bWJlciImJmEudGNmUG9saWN5VmVyc2lvbj49ND9yW0YuRC5tYV09YS5wdXJwb3Nlc1siMSJdJiZhLnB1cnBvc2VzWyI3Il0/ImdyYW50ZWQiOiJkZW5pZWQiOmRwKFtGLkQubWFdKSxWbyhyLHtldmVudElkOjB9LHtnZHByQXBwbGllczphP2EuZ2RwckFwcGxpZXM6dm9pZCAwLHRjU3RyaW5nOkt0KCl8fCIifSkpfX1lbHNlIGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pfSl9Y2F0Y2goYyl7SXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITB9fX0KZnVuY3Rpb24gSXQoYSl7YS50eXBlPSJlIjthLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIn1mdW5jdGlvbiBKdChhKXtyZXR1cm4gYS5ldmVudFN0YXR1cz09PSJ0Y2xvYWRlZCJ8fGEuZXZlbnRTdGF0dXM9PT0idXNlcmFjdGlvbmNvbXBsZXRlInx8YS5ldmVudFN0YXR1cz09PSJjbXB1aXNob3duIn1mdW5jdGlvbiBHdCgpe3JldHVybiBBLmd0YWdfZW5hYmxlX3RjZl9zdXBwb3J0PT09ITB9ZnVuY3Rpb24gSHQoKXtyZXR1cm4gRHQoKS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9PT0hMH1mdW5jdGlvbiBLdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUpcmV0dXJuIGEudGNTdHJpbmd9ZnVuY3Rpb24gTHQoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlJiZhLmdkcHJBcHBsaWVzIT09dm9pZCAwKXJldHVybiBhLmdkcHJBcHBsaWVzPyIxIjoiMCJ9CmZ1bmN0aW9uIE10KGEpe2lmKCFDdC5oYXNPd25Qcm9wZXJ0eShTdHJpbmcoYSkpKXJldHVybiEwO3ZhciBiPUR0KCk7cmV0dXJuIGIuYWN0aXZlJiZiLnB1cnBvc2VzPyEhYi5wdXJwb3Nlc1tTdHJpbmcoYSldOiEwfTt2YXIgTnQ9W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV0sT3Q9e30sUHQ9KE90W0YuRC5rYV09MSxPdFtGLkQucmFdPTIsT3QpO2Z1bmN0aW9uIFF0KGEpe2lmKGE9PT12b2lkIDApcmV0dXJuIDA7c3dpdGNoKE8oYSxGLkQuUmMpKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICExOnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIDJ9fWZ1bmN0aW9uIFJ0KCl7cmV0dXJuKE0oMTgzKT9MZigxNikuc3BsaXQoIn4iKTpMZigxNykuc3BsaXQoIn4iKSkuaW5kZXhPZih6bSgpKSE9PS0xJiZIYy5nbG9iYWxQcml2YWN5Q29udHJvbD09PSEwfWZ1bmN0aW9uIFN0KGEpe2lmKFJ0KCkpcmV0dXJuITE7dmFyIGI9UXQoYSk7aWYoYj09PTMpcmV0dXJuITE7c3dpdGNoKENsKEYuRC5YYSkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2Nhc2UgNDpyZXR1cm4gYj09PTI7Y2FzZSAwOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fQpmdW5jdGlvbiBUdCgpe3JldHVybiBFbCgpfHwhQmwoRi5ELmthKXx8IUJsKEYuRC5yYSl9ZnVuY3Rpb24gVXQoKXt2YXIgYT17fSxiO2ZvcihiIGluIFB0KVB0Lmhhc093blByb3BlcnR5KGIpJiYoYVtQdFtiXV09Q2woYikpO3JldHVybiJHMSIreWYoYVsxXXx8MCkreWYoYVsyXXx8MCl9dmFyIFZ0PXt9LFd0PShWdFtGLkQua2FdPTAsVnRbRi5ELnJhXT0xLFZ0W0YuRC5tYV09MixWdFtGLkQuWGFdPTMsVnQpO2Z1bmN0aW9uIFh0KGEpe3N3aXRjaChhKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICEwOnJldHVybiAzO2Nhc2UgITE6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19CmZ1bmN0aW9uIFl0KGEpe2Zvcih2YXIgYj0iMSIsYz0wO2M8TnQubGVuZ3RoO2MrKyl7dmFyIGQ9YixlLGY9TnRbY10sZz1BbC5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbZl07ZT1nPT09dm9pZCAwPzA6V3QuaGFzT3duUHJvcGVydHkoZyk/MTJ8V3RbZ106ODt2YXIgaD10bCgpO2guYWNjZXNzZWRBbnk9ITA7dmFyIGw9aC5lbnRyaWVzW2ZdfHx7fTtlPWU8PDJ8WHQobC5pbXBsaWNpdCk7Yj1kKygiIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW1h0KGwuZGVjbGFyZSk8PDR8WHQobC5kZWZhdWx0KTw8MnxYdChsLnVwZGF0ZSldKX12YXIgbj1iLHA9KFJ0KCk/MTowKTw8MyxxPShFbCgpPzE6MCk8PDIscj1RdChhKTtiPW4rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW3B8CnF8cl07cmV0dXJuIGIrPSIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9zdG9yYWdlPDw0fEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFuYWx5dGljc19zdG9yYWdlPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3VzZXJfZGF0YV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iWyhBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM/MTowKTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9wZXJzb25hbGl6YXRpb25dfWZ1bmN0aW9uIFp0KCl7cmV0dXJuIEJsKEYuRC5tYSk/ImEiOiItIn1mdW5jdGlvbiAkdCgpe3JldHVybiBCbSgpfHwoR3QoKXx8SHQoKSkmJkx0KCk9PT0iMSI/IjEiOiIwIn0KZnVuY3Rpb24gYXUoKXtyZXR1cm4oQm0oKT8hMDohKCFHdCgpJiYhSHQoKSkmJkx0KCk9PT0iMSIpfHwhQmwoRi5ELm1hKX0KZnVuY3Rpb24gYnUoKXt2YXIgYT0iMCIsYj0iMCIsYzt2YXIgZD1EdCgpO2M9ZC5hY3RpdmU/ZC5jbXBJZDp2b2lkIDA7dHlwZW9mIGM9PT0ibnVtYmVyIiYmYz49MCYmYzw9NDA5NSYmKGE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2M+PjYmNjNdLGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2MmNjNdKTt2YXIgZT0iMCIsZjt2YXIgZz1EdCgpO2Y9Zy5hY3RpdmU/Zy50Y2ZQb2xpY3lWZXJzaW9uOnZvaWQgMDt0eXBlb2YgZj09PSJudW1iZXIiJiZmPj0wJiZmPD02MyYmKGU9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2ZdKTt2YXIgaD0wO0JtKCkmJihofD0xKTtMdCgpPT09IjEiJiYoaHw9Mik7R3QoKSYmKGh8PTQpO3ZhciBsO3ZhciBuPUR0KCk7bD1uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSE9PQp2b2lkIDA/bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU/IjEiOiIwIjp2b2lkIDA7bD09PSIxIiYmKGh8PTgpO3RsKCkud2FpdFBlcmlvZFRpbWVkT3V0JiYoaHw9MTYpO3JldHVybiIxIithK2IrZSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbaF19O3ZhciBjdT17VUE6MSxBVzoyLERDOjMsRzo0LEdGOjUsR1Q6MTIsR1RNOjE0LEhBOjYsTUM6N307CmZ1bmN0aW9uIGR1KGEpe2E9YT09PXZvaWQgMD97fTphO3ZhciBiPUUoNSkuc3BsaXQoIi0iKVswXS50b1VwcGVyQ2FzZSgpLGMsZD17Y3RpZDpFKDUpLERvOkpmKDE1KSxJbzpFKDE0KSxMczpJZig3KT8yOjEsRHQ6YS5wZixjYW5vbmljYWxJZDpFKDYpLG50OihjPUFrKCkpPT1udWxsP3ZvaWQgMDpjLmNhbm9uaWNhbENvbnRhaW5lcklkLEV0OmEuVGc9PT12b2lkIDA/dm9pZCAwOmEuVGc/MTA6MTJ9O2QuY2Fub25pY2FsSWQhPT1hLm1jJiYoZC5tYz1hLm1jKTt2YXIgZT14aygpO2QuVXM9ZT9lLmNhbm9uaWNhbENvbnRhaW5lcklkOnZvaWQgMDtJZig0NSk/KGQuaGk9Y3VbYl0sZC5oaXx8KGQuaGk9MCkpOmQuaGk9RGo/MTM6MTA7SWYoNDcpPyhkLmJrPTAsZC5xcj0yKTpJZig1MCk/ZC5iaz0xOmQuYms9Mzt2YXIgZj1hLGc9ezY6ITF9O0pmKDU0KT09PTI/Z1s3XT0hMDpKZig1NCk9PT0xJiYoZ1syXT0hMCk7aWYoS2Mpe3ZhciBoPUxqKFJqKEtjKSwiaG9zdCIpO2gmJihnWzhdPQpoLm1hdGNoKC9eKHd3d1wuKT9nb29nbGV0YWdtYW5hZ2VyXC5jb20kLyk9PT1udWxsKX12YXIgbDtnWzldPShsPWYuZWYpIT1udWxsP2w6ITE7dmFyIG49RmsoKSxwO2dbMTBdPShwPW49PW51bGw/dm9pZCAwOm4uZnJvbUNvbnRhaW5lckV4ZWN1dGlvbikhPW51bGw/cDohMTtkLnpyPWc7cmV0dXJuIENmKGQsYS5Qbil9O3ZhciBndT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMuZW5kcG9pbnQ9YTt0aGlzLmZhPWM7dGhpcy5qYT1kO3RoaXMucGFyYW1ldGVyRW5jb2Rpbmc9ZTt0aGlzLlo9Yi5zbGljZSgpfTtndS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBYbyh0aGlzLlopfTtndS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Z3UucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXt2YXIgYT1NbVt0aGlzLmVuZHBvaW50XSh2b2lkIDApO3JldHVybiBTYihhLCJodHRwczovLyIpP2Euc3Vic3RyaW5nKDgpOlNiKGEsImh0dHA6Ly8iKT9hLnN1YnN0cmluZyg3KTphfTt2YXIgaHU9ZnVuY3Rpb24oYSxiKXt0aGlzLm1ldGhvZE5hbWU9YTt0aGlzLlI9Yn07aHUucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmlzU3VwcG9ydGVkKCkpaWYoKGM9PW51bGw/dm9pZCAwOmMuYm9keSk9PT12b2lkIDB8fHRoaXMuSCgpKXRyeXt0aGlzLksoYSxiLGMpfWNhdGNoKGQpe2EucmQoZCl9ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGRvZXMgbm90IHN1cHBvcnQgYSByZXF1ZXN0IGJvZHkuIik7ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGlzIG5vdCBzdXBwb3J0ZWQuIil9O3ZhciBpdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW1hZ2VQaXhlbCIsMyl9O3dhKGl1LGh1KTtpdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07aXUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07Cml1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtaYyhiLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbigpe2Eub25GYWlsdXJlKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIganU9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIlNlbmRCZWFjb24iLDEpfTt3YShqdSxodSk7anUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIGtkKCl9O2p1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2p1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtqZChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSk/YS5qZigpOmEucmQodm9pZCAwKX07dmFyIGt1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJGZXRjaCIsMSl9O3dhKGt1LGh1KTtrdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O2t1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9OwprdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7QS5mZXRjaChiLGM9PW51bGw/dm9pZCAwOmMuR2IpLnRoZW4oZnVuY3Rpb24oZCl7aWYoZC5vaylhLnBlKGQpO2Vsc2UgaWYoZC5zdGF0dXM9PT0wKWEuamYoKTtlbHNlIGEub25GYWlsdXJlKCJGZXRjaCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Quc3RhdHVzKyIuIil9KS5jYXRjaChmdW5jdGlvbihkKXthLnJkKGQpfSl9O3ZhciBsdT1uZXcgaXUsbXU9bmV3IGp1LG51PW5ldyBrdTt2YXIgb3U9ZnVuY3Rpb24oKXt9O291LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuW119O3ZhciBUPXtXOntKazoxLG5qOjIsRms6MyxtbDo0LEdrOjUseWQ6NixrbDo3LE1xOjgscW46OSxIazoxMCxJazoxMSxGaDoxMixEbToxMyxBbToxNCxDbToxNSx6bToxNixCbToxNyx5bToxOCxUbzoxOSx4cToyMCx5cToyMSxmajoyMix1bjoyNCxPbToyNSxTazoyNixUazoyNyxSazoyOCxVazoyOSxyajozMCxPazozMSxabzozMn19O1QuV1tULlcuSmtdPSJBTExPV19JTlRFUkVTVF9HUk9VUFMiO1QuV1tULlcubmpdPSJTRVJWRVJfQ09OVEFJTkVSX1VSTCI7VC5XW1QuVy5Ga109IkFEU19EQVRBX1JFREFDVElPTiI7VC5XW1QuVy5tbF09IkNVU1RPTUVSX0xJRkVUSU1FX1ZBTFVFIjtULldbVC5XLkdrXT0iQUxMT1dfQ1VTVE9NX1NDUklQVFMiO1QuV1tULlcueWRdPSJBTllfQ09PS0lFX1BBUkFNUyI7VC5XW1QuVy5rbF09IkNPT0tJRV9FWFBJUkVTIjtULldbVC5XLk1xXT0iTEVHQUNZX0VOSEFOQ0VEX0NPTlZFUlNJT05fSlNfVkFSSUFCTEUiO1QuV1tULlcucW5dPSJSRVNUUklDVEVEX0RBVEFfUFJPQ0VTU0lORyI7ClQuV1tULlcuSGtdPSJBTExPV19ESVNQTEFZX0ZFQVRVUkVTIjtULldbVC5XLklrXT0iQUxMT1dfR09PR0xFX1NJR05BTFMiO1QuV1tULlcuRmhdPSJHRU5FUkFURURfVFJBTlNBQ1RJT05fSUQiO1QuV1tULlcuRG1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTktOT1dOIjtULldbVC5XLkFtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfU1RBTkRBUkQiO1QuV1tULlcuQ21dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTklRVUUiO1QuV1tULlcuem1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9QRVJfU0VTU0lPTiI7VC5XW1QuVy5CbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1RSQU5TQUNUSU9OUyI7VC5XW1QuVy55bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX0lURU1TX1NPTEQiO1QuV1tULlcuVG9dPSJBRFNfT0dUX1YxX1VTQUdFIjtULldbVC5XLnhxXT0iRk9STV9JTlRFUkFDVElPTl9QRVJNSVNTSU9OX0RFTklFRCI7ClQuV1tULlcueXFdPSJGT1JNX1NVQk1JVF9QRVJNSVNTSU9OX0RFTklFRCI7VC5XW1QuVy5mal09Ik1JQ1JPVEFTS19OT1RfU1VQUE9SVEVEIjtULldbVC5XLnVuXT0iU0VUX0VOQ1JZUFRFRF9EQVRBX1RPX0NBQ0hFIjtULldbVC5XLk9tXT0iR0VUX0VOQ1JZUFRFRF9EQVRBX0ZST01fQ0FDSEUiO1QuV1tULlcuU2tdPSJDT05GSUdfREVURUNURURfV0lUSF9OT19QQVJBTSI7VC5XW1QuVy5Ua109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX1BBUkFNIjtULldbVC5XLlJrXT0iQ09ORklHX0NPTlNFTlRfU0VUX0JFRk9SRSI7VC5XW1QuVy5Va109IkNPTkZJR19TRVRfVVNFRF9CRUZPUkUiO1QuV1tULlcucmpdPSJTSEFET1dfRE9NX0FVVE9fUElJIjtULldbVC5XLk9rXT0iQ0NEX1VTRVJfREFUQV9XRUJfT05fQ09ORklHIjtULldbVC5XLlpvXT0iQkxFTkRFRF9VU0VSX0RBVEEiO3ZhciBCdT17fSxDdT0oQnVbRi5ELnVpXT1ULlcuSmssQnVbRi5ELmRkXT1ULlcubmosQnVbRi5ELnljXT1ULlcubmosQnVbRi5ELm1iXT1ULlcuRmssQnVbRi5ELkdlXT1ULlcubWwsQnVbRi5ELnJpXT1ULlcuR2ssQnVbRi5ELkpkXT1ULlcueWQsQnVbRi5ELm5iXT1ULlcueWQsQnVbRi5ELkxiXT1ULlcueWQsQnVbRi5ELklkXT1ULlcueWQsQnVbRi5ELnZjXT1ULlcueWQsQnVbRi5ELlRiXT1ULlcueWQsQnVbRi5ELkNiXT1ULlcua2wsQnVbRi5ELldiXT1ULlcucW4sQnVbRi5ELmhoXT1ULlcuSGssQnVbRi5ELlNjXT1ULlcuSWssQnUpLER1PXt9LEV1PShEdS51bmtub3duPVQuVy5EbSxEdS5zdGFuZGFyZD1ULlcuQW0sRHUudW5pcXVlPVQuVy5DbSxEdS5wZXJfc2Vzc2lvbj1ULlcuem0sRHUudHJhbnNhY3Rpb25zPVQuVy5CbSxEdS5pdGVtc19zb2xkPVQuVy55bSxEdSk7dmFyIEZ1PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLGIpO2MmJihhLkhbYl09ITApfSx2Yj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9W119O2Z1bmN0aW9uIEd1KGEpe0Z1KHZiLGEsITEpfWZ1bmN0aW9uIEh1KGEsYil7dmFyIGM9Yj09PXZvaWQgMD8hMTpiLGQ9dmI7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBlPU9iamVjdC5rZXlzKGEpLGY9bShPYmplY3Qua2V5cyhDdSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2UuaW5jbHVkZXMoaCkmJkZ1KGQsQ3VbaF0sYyl9fTtmdW5jdGlvbiBJdShhLGIpe2E/YS50aGVuKGIpOmIodm9pZCAwKX1mdW5jdGlvbiBKdShhKXtyZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGEpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLnN0YXR1cz09PSJmdWxmaWxsZWQifSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLnZhbHVlfSl9KX1mdW5jdGlvbiBLdSgpe3ZhciBhLGI7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX07ZnVuY3Rpb24gTHUoYSxiLGMsZCxlLGYpe3ZhciBnPWMuc2xpY2UoKSxoO2Q9PW51bGx8fChoPWQudXYpPT1udWxsfHxoLmNhbGwoZCxhLGIsYyxlKTt2YXIgbD1LdSgpLG49bC5wcm9taXNlLHA9bC5yZXNvbHZlLHE9W10scj1mdW5jdGlvbigpe3AocSk7dmFyIHU7ZD09bnVsbHx8KHU9ZC5Scyk9PW51bGx8fHUuY2FsbChkLGEsYixjLGUscSl9LHQ9ZnVuY3Rpb24oKXt2YXIgdT1nLnNoaWZ0KCk7dT91Lm1ldGhvZC5pc1N1cHBvcnRlZCgpP011KGEsYix1LmVuZHBvaW50LGQscSx1Lm1ldGhvZCxlLGYsdCxyKTp0KCk6cigpfTt0KCk7cmV0dXJuIG59CmZ1bmN0aW9uIE11KGEsYixjLGQsZSxmLGcsaCxsLG4pe3ZhciBwPWMuUihhKSxxPXt0azpiLGVuZHBvaW50OmMsaXNQcmltYXJ5Omcsc2I6dm9pZCAwLHBrOmYsanQ6e319LHI9ITEsdD1mdW5jdGlvbih6LEMpe2lmKHIpUCgxODcpO2Vsc2UgaWYocj0hMCwhdSl7dmFyIEQ9Q3x8e30sST1ELmJvZHksRz1ELkdiLE49RC5hZjtDPU9iamVjdC5mcmVlemUobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxJP3tib2R5Okl9Ont9LEc/e0diOkd9Ont9LE4/e2FmOk59Ont9KSk7aWYoSSYmIWYuSCgpKXgoKSxsKCk7ZWxzZXt2YXIgUz1OdSh6KSxXPXBbMF09PT0iLyI/IiIrcCtTOiJodHRwczovLyIrcCtTO3Euc2I9VztxLmp0PUM7dmFyIGVhO2Q9PW51bGx8fChlYT1kLlNzKT09bnVsbHx8ZWEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSk7dmFyIGphPXtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6Yy5lbmRwb2ludCwKZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfTtmLlI9PT12b2lkIDB8fGMuZmEhPT0yJiYoYy5mYSE9PTF8fGUubGVuZ3RoKXx8a24ucmVnaXN0ZXIoamEsZi5SLFcpO3ZhciBmYT1mdW5jdGlvbihkYSxtYSl7eCgpO2lmKHEuc3RhdHVzIT09dm9pZCAwKXJldHVybiBQKDE5MiksITE7cS5zdGF0dXM9ZGE7ZS5wdXNoKHEpO3ZhciBQYTtkPT1udWxsfHwoUGE9ZC51byk9PW51bGx8fFBhLmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksbWEpO3JldHVybiEwfSxzYT17Rm86amEscmQ6ZnVuY3Rpb24oKXtmYSgyKSYmbCgpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXtmYSgzKSYmbCgpfSxwZTpmdW5jdGlvbihkYSl7ZmEoZGEuc3RhdHVzPT09MD8xOmRhLm9rPzA6MyxkYSkmJm4oKX0samY6ZnVuY3Rpb24oKXtmYSgxKSYmbigpfX07T3UoYyxhLFcsUyxJKTtmLnNlbmRSZXF1ZXN0KHNhLFcsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCwKe30sSSYme2JvZHk6SX0sRyYme0diOkd9LE4mJnthZjpOfSkpfX19LHU9ITEsdix4PWZ1bmN0aW9uKCl7diE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KHYpLHY9dm9pZCAwKX07TSg1NzQpJiYodj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PXZvaWQgMDt1PSEwO2lmKHEuc3RhdHVzPT09dm9pZCAwKXtxLnN0YXR1cz00O3Euc2I9PT12b2lkIDAmJihxLnNiPSJbZmFpbGVkIHRvIGJ1aWxkXSAiK3ApO2UucHVzaChxKTt2YXIgejtkPT1udWxsfHwoej1kLnVvKT09bnVsbHx8ei5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpLHZvaWQgMCk7bCgpfX0sNUUzKSk7dmFyIHk9e0ljOnAsbWV0aG9kOmYseXY6ZSxpc1ByaW1hcnk6ZyxDdDpofTt0cnl7Yy5IKGEseSx0KX1jYXRjaCh6KXt4KCksUCgxODgpLGwoKX19CmZ1bmN0aW9uIE91KGEsYixjLGQsZSl7aWYoYS5qYSl7dmFyIGY9Yi50YXJnZXQuZGVzdGluYXRpb25JZCxnPWEuZW5kcG9pbnQ7aWYoZz09PTQ1fHxnPT09NDZ8fGc9PT02OXx8Zz09PTU4fHxnPT09NTcpe3ZhciBoPS9bPyZddGlkcz0oW14mXSspLy5leGVjKGQpO2Y9aD9kZWNvZGVVUklDb21wb25lbnQoaFsxXSkuc3BsaXQoIn4iKTpbZl19TWwoe3RhcmdldElkOmYscmVxdWVzdDpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHt1cmw6YyxwYXJhbWV0ZXJFbmNvZGluZzphLnBhcmFtZXRlckVuY29kaW5nLGVuZHBvaW50OmEuZW5kcG9pbnR9LGU/e3Bvc3RCb2R5OmV9Ont9KSxxYjp7ZXZlbnRJZDpiLk0uZXZlbnRJZCxwcmlvcml0eUlkOmIuTS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX0KZnVuY3Rpb24gTnUoYSl7cmV0dXJuIGEmJmEhPT0iPyI/YVswXSE9PSI/Ij8iPyIuY29uY2F0KGEpOmE6IiJ9O2Z1bmN0aW9uIFB1KGEsYixjLGQsZSl7dmFyIGY7ZT09bnVsbHx8KGY9ZS52dik9PW51bGx8fGYuY2FsbChlLGEsYik7aWYoIWMubGVuZ3RoKXt2YXIgZztlPT1udWxsfHwoZz1lLlRzKT09bnVsbHx8Zy5jYWxsKGUsYSxiLFtdKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKX12YXIgaD1bXSxsPXt0azpiLG1rOmMsams6ZH07aC5wdXNoKEx1KGEsYixjLGUsITAsbCkpO2Zvcih2YXIgbj1tKGQpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWgucHVzaChMdShhLGIscC52YWx1ZSxlLCExLGwpKTtyZXR1cm4gSnUoaCkudGhlbihmdW5jdGlvbihxKXtmb3IodmFyIHI9W10sdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXIucHVzaC5hcHBseShyLHcodS52YWx1ZSkpO3ZhciB2O2U9PW51bGx8fCh2PWUuVHMpPT1udWxsfHx2LmNhbGwoZSxhLGIscik7cmV0dXJuIHJ9KX07ZnVuY3Rpb24gUXUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtiPT1udWxsfHwoZD1iLnd2KT09bnVsbHx8ZC5jYWxsKGIsYSxjKTtmb3IodmFyIGU9W10sZj1tKGMpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWUucHVzaChSdShhLGcudmFsdWUpKTtmb3IodmFyIGg9W10sbD1tKGUpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2gucHVzaChQdShhLHAudGsscC5tayxwLmprLGIpKX1KdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7Yj09bnVsbHx8KHY9Yi5Rcyk9PW51bGx8fHYuY2FsbChiLGEsYyxyKX0pfQpmdW5jdGlvbiBSdShhLGIpe3ZhciBjPWZ1bmN0aW9uKGYpe3JldHVybiBmLm1ldGhvZC5pc1N1cHBvcnRlZCgpJiZmLmVuZHBvaW50LmlzU3VwcG9ydGVkKGEpJiZmLmVuZHBvaW50LksoYSl9LGQ9KGIuSChhKXx8W10pLmZpbHRlcihjKSxlPVtdO2QubGVuZ3RoJiYoZT0oYi5LKGEpfHxbXSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmZpbHRlcihjKX0pLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZi5sZW5ndGg+MH0pKTtyZXR1cm57dGs6YixtazpkLGprOmV9fTt2YXIgWD17Vjp7TWs6ImNhbGxfY29udmVyc2lvbiIsemQ6ImNjbV9jb252ZXJzaW9uIixRazoiY29tbW9uX2F3Iix4YToiY29udmVyc2lvbiIsd3E6ImZsb29kbGlnaHQiLFlkOiJnYV9jb252ZXJzaW9uIixaZDoiZ2NwX3JlbWFya2V0aW5nIixLYToicGFnZV92aWV3Iix1YjoicmVtYXJrZXRpbmciLE9iOiJ1c2VyX2RhdGFfbGVhZCIsRmI6InVzZXJfZGF0YV93ZWIifX07ZnVuY3Rpb24gYnYoYSxiKXtiJiZHYihiLGZ1bmN0aW9uKGMsZCl7dHlwZW9mIGQhPT0ib2JqZWN0IiYmZCE9PXZvaWQgMCYmKGFbIjFwLiIrY109U3RyaW5nKGQpKX0pfTt2YXIgbXY9e05nOiJ2YWx1ZSIscGI6ImNvbnZlcnNpb25Db3VudCIsT2c6MX0sbnY9e05nOiJ0aW1lb3V0cyIscGI6InRpbWVvdXRzIixPZzowfSxvdj17Tmc6ImVvcENvdW50IixwYjoiZW5kT2ZQYWdlQ291bnQiLE9nOjB9LHB2PXtOZzoiZXJyb3JzIixwYjoiZXJyb3JzIixPZzowfSxxdj1bbXYsbnYscHYsb3ZdO2Z1bmN0aW9uIHJ2KGEsYil7Yj1iPT09dm9pZCAwPzE6YjtpZighc3YoYSkpcmV0dXJue307dmFyIGM9dHYocXYpLGQ9Y1thLnBiXTtpZihkPT09dm9pZCAwfHxkPT09LTEpcmV0dXJuIGM7dmFyIGU9e30sZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMsKGVbYS5wYl09ZCtiLGUpKTtyZXR1cm4gdXYoZik/ZjpjfQpmdW5jdGlvbiB0dihhKXt2YXIgYjthOnt2YXIgYz1ucigiZ2NsX2N0ciIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO3RyeXtiPSJ2YWx1ZSJpbiBkJiZ0eXBlb2YgZC52YWx1ZT09PSJvYmplY3QiP2QudmFsdWU6dm9pZCAwO2JyZWFrIGF9Y2F0Y2gocCl7fX1iPXZvaWQgMH1mb3IodmFyIGU9YixmPXt9LGc9bShhKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTtpZihlJiZzdihsKSl7dmFyIG49ZVtsLk5nXTtuPT09dm9pZCAwfHxOdW1iZXIuaXNOYU4obik/ZltsLnBiXT0tMTpmW2wucGJdPU51bWJlcihuKX1lbHNlIGZbbC5wYl09LTF9cmV0dXJuIGZ9CmZ1bmN0aW9uIHV2KGEsYil7Yj1ifHx7fTtmb3IodmFyIGM9TmIoKSxkPXVxKGIsYywhMCksZT17fSxmPW0ocXYpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlLGw9YVtoLnBiXTtsIT09dm9pZCAwJiZsIT09LTEmJihlW2guTmddPWwpfWUuY3JlYXRpb25UaW1lTXM9YztyZXR1cm4ga3IoImdjbF9jdHIiLHt2YWx1ZTplLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl9KT09PTA/ITA6ITF9ZnVuY3Rpb24gc3YoYSl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKT8hYS5mdHx8WWYoYS5mdCk6ITF9ZnVuY3Rpb24gdnYoYSl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKT8hYS5Bc3x8WWYoYS5Bcyk6ITF9O2Z1bmN0aW9uIHd2KCl7aWYoeHYoKSl7dmFyIGE9bnIoImxhc3RfY29udnMiKTtpZihhLmVycm9yPT09MCYmYS52YWx1ZSYmdHlwZW9mIGEudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGI9YS52YWx1ZTtpZihiLnZhbHVlJiZBcnJheS5pc0FycmF5KGIudmFsdWUpKXt2YXIgYz1iLnZhbHVlO2lmKCEoYy5sZW5ndGg+MSkpe2Zvcih2YXIgZD1bXSxlPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYodHlwZW9mIGchPT0ib2JqZWN0Inx8Zz09PW51bGx8fHR5cGVvZiBnLnJhbmRvbSE9PSJudW1iZXIifHx0eXBlb2YgZy5sYWJlbCE9PSJzdHJpbmcifHxnLmxhYmVsLmxlbmd0aD4yMDApcmV0dXJuO2QucHVzaCh7cmFuZG9tOmcucmFuZG9tLGxhYmVsOmcubGFiZWx9KX1yZXR1cm4gZH19fX19CmZ1bmN0aW9uIHl2KGEsYil7IXh2KCl8fGEubGVuZ3RoPjF8fGEubGVuZ3RoPT09MSYmYVswXS5sYWJlbC5sZW5ndGg+MjAwfHwoYj1ifHx7fSxrcigibGFzdF9jb252cyIse3ZhbHVlOmEsZXhwaXJlczpOdW1iZXIodXEoYikuZXhwaXJlcyl9KSl9ZnVuY3Rpb24geHYoKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pJiZZZigxMSl9O2Z1bmN0aW9uIHp2KGEpe3ZhciBiPU1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ3KTtyZXR1cm4gYT9TdHJpbmcoYl5uZyhhKSYyMTQ3NDgzNjQ3KTpTdHJpbmcoYil9ZnVuY3Rpb24gQXYoYSl7cmV0dXJuW3p2KGEpLE1hdGgucm91bmQoTmIoKS8xRTMpXS5qb2luKCIuIil9ZnVuY3Rpb24gQnYoYSxiLGMsZCxlKXt2YXIgZj1ycShiKSxnO3JldHVybihnPWdxKGEsZixzcShjKSxkLGUpKT09bnVsbD92b2lkIDA6Zy5Dcn07dmFyIEN2PVsiMSJdLER2PXt9LEV2PXt9O2Z1bmN0aW9uIEZ2KGEpe3JldHVybiBFdltHdihhKV19ZnVuY3Rpb24gSHYoYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz1HdihhLnByZWZpeCk7aWYoRHZbY10pSXYoYSksSnYoYSk7ZWxzZSBpZihLdihjLGEucGF0aCxhLmRvbWFpbikpe3ZhciBkPUZ2KGEucHJlZml4KXx8e2lkOnZvaWQgMCxrYzp2b2lkIDB9O2ImJkx2KGEsZCk7SXYoYSk7SnYoYSl9ZWxzZXt2YXIgZT1UaigiYXVpZGRjIik7aWYoZSlzYigiVEFHR0lORyIsMTcpLER2W2NdPWU7ZWxzZSBpZihiKXt2YXIgZj1HdihhLnByZWZpeCksZz1BdigpO012KGYsZyxhKTtLdihjLGEucGF0aCxhLmRvbWFpbik7SXYoYSwhMCk7SnYoYSwhMCl9fX0KZnVuY3Rpb24gSXYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZzdihtdikmJm9yKCJnY2xfY3RyIik7aWYodnYobXYpJiZ0dihbbXZdKVttdi5wYl09PT0tMSl7Zm9yKHZhciBjPXt9LGQ9KGNbbXYucGJdPTAsYyksZT1tKHF2KSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtnIT09bXYmJnZ2KGcpJiYoZFtnLnBiXT0wKX11dihkLGEpfX1mdW5jdGlvbiBKdihhLGIpeyhiPT09dm9pZCAwPzA6YikmJnh2KCkmJm9yKCJsYXN0X2NvbnZzIik7IUJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKXx8IVlmKDEyKXx8d3YoKXx8eXYoW10sYSl9CmZ1bmN0aW9uIEx2KGEsYil7dmFyIGM9R3YoYS5wcmVmaXgpLGQ9RHZbY107aWYoZCl7dmFyIGU9ZC5zcGxpdCgiLiIpO2lmKGUubGVuZ3RoPT09Mil7dmFyIGY9TnVtYmVyKGVbMV0pfHwwO2lmKGYpe3ZhciBnPWQ7WWYoMTkpJiZiLmZpP2c9ZCsiLiIrKGIuc2Vzc2lvbklkfHwiLS4tIikrIi4iKyhiLmtjP2Iua2M6TWF0aC5mbG9vcihOYigpLzFFMykpKyIuIitiLmZpKyIuIisoYi5MYz9iLkxjOk1hdGguZmxvb3IoTmIoKS8xRTMpKTpiLnNlc3Npb25JZCYmKGc9ZCsiLiIrYi5zZXNzaW9uSWQrIi4iKyhiLmtjP2Iua2M6TWF0aC5mbG9vcihOYigpLzFFMykpKTtNdihjLGcsYSxmKjFFMyl9fX19ZnVuY3Rpb24gTXYoYSxiLGMsZCl7dmFyIGU7ZT1bIjEiLHRxKGMuZG9tYWluLGMucGF0aCksYl0uam9pbigiLiIpO3ZhciBmPXVxKGMsZCk7Zi5NYz1OdigpO29xKGEsZSxmKX0KZnVuY3Rpb24gS3YoYSxiLGMpe3ZhciBkPUJ2KGEsYixjLEN2LE52KCkpO2lmKCFkKXJldHVybiExO092KGEsZCk7cmV0dXJuITB9ZnVuY3Rpb24gT3YoYSxiKXt2YXIgYz1iLnNwbGl0KCIuIik7aWYoYy5sZW5ndGg9PT0zKUV2W2FdPXtzZXNzaW9uSWQ6Y1swXSsiLiIrY1sxXSxrYzpOdW1iZXIoY1syXSl8fDAsTGM6MH07ZWxzZSBpZihjLmxlbmd0aD49MiYmKER2W2FdPWNbMF0rIi4iK2NbMV0sYy5zaGlmdCgpLGMuc2hpZnQoKSxjLmxlbmd0aD49Mykpe3ZhciBkPXtzZXNzaW9uSWQ6Y1swXT09PSItIj92b2lkIDA6Y1swXSsiLiIrY1sxXSxrYzpOdW1iZXIoY1syXSl8fDAsTGM6MH07aWYoWWYoMTkpJiZjLmxlbmd0aD49Nil7dmFyIGU9Y1szXSsiLiIrY1s0XSxmPU51bWJlcihjWzVdKXx8MDtlJiZmIT09MCYmKGQuZmk9ZSxkLkxjPWYpfUV2W2FdPWR9fWZ1bmN0aW9uIEd2KGEpe3JldHVybihhfHwiX2djbCIpKyJfYXUifQpmdW5jdGlvbiBQdihhKXtmdW5jdGlvbiBiKCl7QmwoYykmJmEoKX12YXIgYz1OdigpO0hsKGZ1bmN0aW9uKCl7YigpO0JsKGMpfHxJbChiLGMpfSxjKX1mdW5jdGlvbiBRdihhKXt2YXIgYj1VcSghMCksYz1HdihhLnByZWZpeCk7UHYoZnVuY3Rpb24oKXt2YXIgZD1iW2NdO2lmKGQpe092KGMsZCk7dmFyIGU9TnVtYmVyKER2W2NdLnNwbGl0KCIuIilbMV0pKjFFMztpZihlKXtzYigiVEFHR0lORyIsMTYpO3ZhciBmPXVxKGEsZSk7Zi5NYz1OdigpO3ZhciBnPVsiMSIsdHEoYS5kb21haW4sYS5wYXRoKSxkXS5qb2luKCIuIik7b3EoYyxnLGYpfX19KX1mdW5jdGlvbiBSdihhLGIsYyxkLGUpe2U9ZXx8e307dmFyIGY9ZnVuY3Rpb24oKXt2YXIgZz17fSxoPUJ2KGEsZS5wYXRoLGUuZG9tYWluLEN2LE52KCkpO2gmJihnW2FdPWgpO3JldHVybiBnfTtQdihmdW5jdGlvbigpe2FyKGYsYixjLGQpfSl9CmZ1bmN0aW9uIE52KCl7cmV0dXJuWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl19O3ZhciBWdj0iZW1haWwgZW1haWxfYWRkcmVzcyBzaGEyNTZfZW1haWxfYWRkcmVzcyBwaG9uZV9udW1iZXIgc2hhMjU2X3Bob25lX251bWJlciBmaXJzdF9uYW1lIGxhc3RfbmFtZSIuc3BsaXQoIiAiKSxXdj0iZmlyc3RfbmFtZSBzaGEyNTZfZmlyc3RfbmFtZSBsYXN0X25hbWUgc2hhMjU2X2xhc3RfbmFtZSBzdHJlZXQgc2hhMjU2X3N0cmVldCBjaXR5IHJlZ2lvbiBjb3VudHJ5IHBvc3RhbF9jb2RlIi5zcGxpdCgiICIpO2Z1bmN0aW9uIFh2KGEsYil7aWYoIWIuX3RhZ19tZXRhZGF0YSl7Zm9yKHZhciBjPXt9LGQ9MCxlPTA7ZTxhLmxlbmd0aDtlKyspZCs9WXYoYVtlXSxiLGMpPzE6MDtkPjAmJihiLl90YWdfbWV0YWRhdGE9Yyl9fQpmdW5jdGlvbiBZdihhLGIsYyl7dmFyIGQ9YlthXTtpZihkPT09dm9pZCAwfHxkPT09bnVsbClyZXR1cm4hMTtjW2FdPUFycmF5LmlzQXJyYXkoZCk/ZC5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToiYyJ9fSk6e21vZGU6ImMifTtyZXR1cm4hMH1mdW5jdGlvbiBadihhKXtpZihNKDUyMykmJmEpe1h2KFZ2LGEpO2Zvcih2YXIgYj1CYihhLmFkZHJlc3MpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkJiZYdihXdixkKX12YXIgZT1hLmhvbWVfYWRkcmVzcztlJiZYdihXdixlKX19CmZ1bmN0aW9uICR2KGEsYixjKXtmdW5jdGlvbiBkKGYsZyl7Zz1TdHJpbmcoZykuc3Vic3RyaW5nKDAsMTAwKTtlLnB1c2goIiIrZitlbmNvZGVVUklDb21wb25lbnQoZykpfWlmKCFjKXJldHVybiIiO3ZhciBlPVtdO2QoImkiLFN0cmluZyhhKSk7ZCgiZiIsYik7Yy5tb2RlJiZkKCJtIixjLm1vZGUpO2MuaXNQcmVIYXNoZWQmJmQoInAiLCIxIik7Yy5yYXdMZW5ndGgmJmQoInIiLFN0cmluZyhjLnJhd0xlbmd0aCkpO2Mubm9ybWFsaXplZExlbmd0aCYmZCgibiIsU3RyaW5nKGMubm9ybWFsaXplZExlbmd0aCkpO2MubG9jYXRpb24mJmQoImwiLGMubG9jYXRpb24pO2Muc2VsZWN0b3ImJmQoInMiLGMuc2VsZWN0b3IpO3JldHVybiBlLmpvaW4oIi4iKX07dmFyIGF3PXZvaWQgMDtmdW5jdGlvbiBidygpe2lmKCFhdyl7dmFyIGE9b20oam0uYmEub3AsbmV3IE1hcCk7YXc9bmV3IG9nKGEpfXJldHVybiBhd307dmFyIG14PU9iamVjdC5mcmVlemUoe2F0dHJpYnV0aW9uc3JjOiIifSksbng9T2JqZWN0LmZyZWV6ZSh7ZXZlbnRTb3VyY2VFbGlnaWJsZTohMSx0cmlnZ2VyRWxpZ2libGU6ITB9KTtmdW5jdGlvbiBveCgpe3ZhciBhPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZTtyZXR1cm4gYSYmeWIoYS5zZXRBdHRyaWJ1dGlvblJlcG9ydGluZyl9O3ZhciBweD1PYmplY3QuZnJlZXplKHtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixtZXRob2Q6IkdFVCIsa2VlcGFsaXZlOiEwLHJlZGlyZWN0OiJmb2xsb3cifSk7CmZ1bmN0aW9uIHF4KGEsYixjLGQsZSxmKXtpZigheWIoQS5mZXRjaCkpcmV0dXJuIGY9PW51bGx8fGYodm9pZCAwLHZvaWQgMCksITE7dmFyIGc9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxweCk7YiYmKGcuYm9keT1iLGcubWV0aG9kPSJQT1NUIik7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxnLGQpO0EuZmV0Y2goYSxnKS50aGVuKGZ1bmN0aW9uKGgpe2lmKGgub2spe2lmKGguYm9keSl7dmFyIGw9aC5ib2R5LmdldFJlYWRlcigpLG49bmV3IFRleHREZWNvZGVyO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihwKXtmdW5jdGlvbiBxKCl7bC5yZWFkKCkudGhlbihmdW5jdGlvbihyKXt2YXIgdDt0PXIuZG9uZTt2YXIgdT1uLmRlY29kZShyLnZhbHVlLHtzdHJlYW06IXR9KTt1PWMuUit1O2Zvcih2YXIgdj11LmluZGV4T2YoIlxuXG4iKTt2IT09LTE7KXt2YXIgeD1aZyx5O2E6e3ZhciB6PW0odS5zdWJzdHJpbmcoMCx2KS5zcGxpdCgiXG4iKSksQz0Kei5uZXh0KCkudmFsdWUsRD16Lm5leHQoKS52YWx1ZTtpZihTYihDLCJldmVudDogbWVzc2FnZSIpJiZTYihELCJkYXRhOiAiKSl7dmFyIEk9RC5zdWJzdHJpbmcoNik7dHJ5e3k9SlNPTi5wYXJzZShJKTticmVhayBhfWNhdGNoKEcpe319eT12b2lkIDB9eChjLHkpO3U9dS5zdWJzdHJpbmcodisyKTt2PXUuaW5kZXhPZigiXG5cbiIpfWMuUj11O3Q/KGU9PW51bGx8fGUoaCkscCgpKTpxKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PW51bGx8fGUoaCk7cCgpfSl9cSgpfSl9ZT09bnVsbHx8ZShoKX1lbHNlIGY9PW51bGx8fGYoaCx2b2lkIDApfSkuY2F0Y2goZnVuY3Rpb24oaCl7Zj09bnVsbHx8Zih2b2lkIDAsaCl9KTtyZXR1cm4hMH07dmFyIHJ4PWZ1bmN0aW9uKGEpe2h1LmNhbGwodGhpcywiRmV0Y2hSaWNoUmVzcG9uc2UiLDEpO3RoaXMuTj1hfTt3YShyeCxodSk7cngucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHliKEEuZmV0Y2gpfTtyeC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTtyeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7cXgoYixjPT1udWxsP3ZvaWQgMDpjLmJvZHksdGhpcy5OLGM9PW51bGw/dm9pZCAwOmMuR2IsYS5wZSxmdW5jdGlvbihkLGUpe2Eub25GYWlsdXJlKGUpfSl9O3ZhciBDeD1mdW5jdGlvbigpe1lnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoQ3gsWWcpO0N4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7WmMoYSx2b2lkIDAsJGcodGhpcyxiKSxiLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT9teDp7fSl9O0N4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5hdHRyaWJ1dGlvbl9yZXBvcnRpbmcmJm94KCk/e2F0dHJpYnV0aW9uUmVwb3J0aW5nOm54fTp7fSxkPSRnKHRoaXMsYik7Yi5wcm9jZXNzX3Jlc3BvbnNlP3F4KGEsdm9pZCAwLHRoaXMsYyx2b2lkIDAsZCk6bWQoYSx2b2lkIDAsYyx2b2lkIDAsZCl9O3ZhciBReD1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMudGltZW91dE1zPWI7dGhpcy5SYj12b2lkIDB9LFJ4PWZ1bmN0aW9uKGEpe2EuUmJ8fChhLlJiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkgoKTthLlJiPXZvaWQgMH0sYS50aW1lb3V0TXMpKX0sVG49ZnVuY3Rpb24oYSl7YS5SYiYmKGNsZWFyVGltZW91dChhLlJiKSxhLlJiPXZvaWQgMCl9O3ZhciBTeD1mdW5jdGlvbigpe3ZhciBhPU5mKDY2LDApO3RoaXMuSz1bXTt0aGlzLlI9YTt0aGlzLkg9WWEoKX0sVXg9ZnVuY3Rpb24oYSl7dmFyIGI9VHg7Yi5LLnB1c2goYSk7Yi5OfHwoYi5OPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPW0oYi5LKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTt0cnl7ZSgpfWNhdGNoKGwpe319Zm9yKHZhciBmPW0oYi5ILnZhbHVlcygpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9dm9pZCAwOyhoPWcudmFsdWUud2UpPT1udWxsfHxUbihoKX1iLkguY2xlYXIoKX0sJGMoQSwicGFnZWhpZGUiLGIuTikpfSxWeD1mdW5jdGlvbihhKXt2YXIgYj1hLm1hdGNoKE1uKVszXXx8bnVsbCxjPShiP2RlY29kZVVSSShiKTpiKXx8IiIsZD1QbihhLCJsYWJlbCIpfHwiIixlPVBuKGEsInJhbmRvbSIpfHwiIjtyZXR1cm4gYysiOiIrTG4oZCkrIjoiK0xuKGUpfSxXeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VHgsCmU9VngoYSk7aWYoIShkLkguaGFzKGUpfHxkLkguc2l6ZT49ZC5SKSl7dmFyIGY9e307YiYmYj4wJiZjJiYoZi53ZT1uZXcgUXgoYyxiKSk7ZC5ILnNldChlLGYpO3ZhciBnOyhnPWYud2UpPT1udWxsfHxSeChnKX19LFVuPWZ1bmN0aW9uKGEsYil7dmFyIGM9VngoYiksZCxlOyhkPWEuSC5nZXQoYykpPT1udWxsfHwoZT1kLndlKT09bnVsbHx8VG4oZSk7YS5ILmRlbGV0ZShjKX07U3gucHJvdG90eXBlLmdldFNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ILnNpemV9O3ZhciBkZztmdW5jdGlvbiBoeShhLGIpe3ZhciBjOyhjPWRnKT09bnVsbHx8JGYoYy5ILGEsYil9O3ZhciBpeT1BYShbIi8iXSksank9ZnVuY3Rpb24oYSl7dGhpcy5IPWE7dGhpcy5mYWlsdXJlVHlwZT12b2lkIDB9O2p5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuSC5hY3RpdmU7ZD8oZC5wb3N0TWVzc2FnZSh7dHlwZToxLGNvbW1hbmQ6YX0pLGIoe2RhdGE6IiJ9KSk6Yyh7ZmFpbHVyZVR5cGU6MTMsZGF0YToiIn0pfWNhdGNoKGUpe2Moe2ZhaWx1cmVUeXBlOjExLGRhdGE6ZS5tZXNzYWdlfSl9fTt2YXIga3k9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhaWx1cmVUeXBlPWE7dGhpcy5IPWJ9O2t5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7Yyh7ZmFpbHVyZVR5cGU6dGhpcy5mYWlsdXJlVHlwZSxkYXRhOiJmIit0aGlzLmZhaWx1cmVUeXBlKygidCIrKChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuSCkpfSl9Owp2YXIgbnk9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLmluaXRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuSD1uZXcga3koMTUsdGhpcy5pbml0VGltZSk7dmFyIGM9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSgpfSwyMCl9KSxkPWx5KGEpLnRoZW4oZnVuY3Rpb24oZSl7Yi5IPW5ldyBqeShlKTtteShiLGUpfSkuY2F0Y2goZnVuY3Rpb24oKXtiLkg9bmV3IGt5KDQsYi5pbml0VGltZSl9KTt0aGlzLks9UHJvbWlzZS5yYWNlKFtjLGRdKX0sbXk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihkKXtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2lmKGQuc3RhdGU9PT0icmVkdW5kYW50Iil7dmFyIGU9Yi5hY3RpdmU7ZSYmZS5zdGF0ZSE9PSJyZWR1bmRhbnQifHwoYS5IPW5ldyBreSgxMCxhLmluaXRUaW1lKSl9fSl9O2MoYi5hY3RpdmUpO2MoYi53YWl0aW5nKTtjKGIuaW5zdGFsbGluZyk7CmIuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlZm91bmQiLGZ1bmN0aW9uKCl7YyhiLmluc3RhbGxpbmcpfSl9O255LnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLksudGhlbihmdW5jdGlvbigpe2QuSC5pbyhhLGIsYyl9KX07bnkucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIDJ9Owp2YXIgbHk9ZnVuY3Rpb24oYSl7dmFyIGIsYz1MZigxMSk7Yz1MZigxMCk7Yj1jO3ZhciBkPXtzY29wZTooVGIoYS5ocmVmLCIvIik/YS5ocmVmLnNsaWNlKDAsLTEpOmEuaHJlZikrIi9fL3NlcnZpY2Vfd29ya2VyIn07YiYmKGQudXBkYXRlVmlhQ2FjaGU9ImFsbCIpO3ZhciBlLGY9b3koYSxiKSxnPW5ldyBNYXAoW1sicGF0aCIsYS5wYXRobmFtZV1dKSxoPUpwKGtjKGYpLnRvU3RyaW5nKCkpO2U9THAoaC56ayxoLnBhcmFtcyxoLmZyYWdtZW50LGcpO3ZhciBsPUljKCksbj1rYyhlKTt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobixkKX1jYXRjaChwKXt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobi50b1N0cmluZygpLGQpfWNhdGNoKHEpe3JldHVybiBQcm9taXNlLnJlamVjdChxKX19fTsKZnVuY3Rpb24gb3koYSxiKXtmb3IodmFyIGM9S3AoaXkpLGQ9YS5wYXRobmFtZS5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gaC5sZW5ndGg+MH0pLGU9W10uY29uY2F0KHcoZCksWyJfIiwic2VydmljZV93b3JrZXIiLGIsInN3LmpzIl0pLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSljPU1wKGMsZy52YWx1ZSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHB5KGEpe3ZhciBiPW5tKGptLmJhLk9oKSxjPWI9PW51bGw/dm9pZCAwOmJbYV07Y3x8YSE9PSJsaXRlInx8KGM9Yj09bnVsbD92b2lkIDA6Yi5mdWxsKTtyZXR1cm4gY312YXIgcXk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXB5KCJmdWxsIik7ZD9kLmRlbGVnYXRlKGEsYixjKTpjKHtmYWlsdXJlVHlwZToxNn0pfTtmdW5jdGlvbiByeShhLGIsYyxkLGUpe3F5KHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOjEsdGVtcGxhdGVzOmIsYm9keToiIixwcm9jZXNzUmVzcG9uc2U6ITEsZW5jcnlwdGlvbktleVN0cmluZzplLHNvUmVmZXJyZXI6QS5sb2NhdGlvbi5ocmVmfX0sYyxmdW5jdGlvbihmKXtkKGYuZmFpbHVyZVR5cGUsZi5kYXRhKX0pfTt2YXIgRHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO3RoaXMuSz0hMTtNKDQ2MikmJlVtKCJmcyIsZnVuY3Rpb24oKXtyZXR1cm4gYS5IPjAmJmEuSDw1P1N0cmluZyhhLkgpOnZvaWQgMH0sITEpfSxFeTtmdW5jdGlvbiBGeShhLGIpe0V5fHwoRXk9bmV3IER5KTt2YXIgYz1FeTtNKDQ2MikmJmZuLksmJihiPT09Imd0bS5mb3JtU3VibWl0Inx8Yj09PSJmb3JtX3N1Ym1pdCImJklmKDQ1KSkmJihhPT09MXx8Yy5LKSYmKGMuSz0hMCxjLkg9YSxhIT09NT9WbSgiZnMiKTpRbS5ILmZzPSExKX07dmFyIEh5PXtYOntXcTowLEVrOjEsWmc6MixYazozLG1pOjQsVms6NSxXazo2LFlrOjcsbmk6OCx0bTo5LHNtOjEwLFRpOjExLHZtOjEyLEJoOjEzLEVtOjE0LGlqOjE1LFNxOjE2LGpkOjE3LHVqOjE4LHZqOjE5LHdqOjIwLENuOjIxLHhqOjIyfX07SHkuWFtIeS5YLldxXT0iUkVTRVJWRURfWkVSTyI7SHkuWFtIeS5YLkVrXT0iQURTX0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguWmddPSJDT05UQUlORVJfRVhFQ1VURV9TVEFSVCI7SHkuWFtIeS5YLlhrXT0iQ09OVEFJTkVSX1NFVFVQX0VORCI7SHkuWFtIeS5YLm1pXT0iQ09OVEFJTkVSX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguVmtdPSJDT05UQUlORVJfQkxPQ0tJTkdfRU5EIjtIeS5YW0h5LlguV2tdPSJDT05UQUlORVJfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC5Za109IkNPTlRBSU5FUl9ZSUVMRF9FTkQiO0h5LlhbSHkuWC5uaV09IkNPTlRBSU5FUl9ZSUVMRF9TVEFSVCI7SHkuWFtIeS5YLnRtXT0iRVZFTlRfRVhFQ1VURV9FTkQiOwpIeS5YW0h5Llguc21dPSJFVkVOVF9FVkFMVUFUSU9OX0VORCI7SHkuWFtIeS5YLlRpXT0iRVZFTlRfRVZBTFVBVElPTl9TVEFSVCI7SHkuWFtIeS5YLnZtXT0iRVZFTlRfU0VUVVBfRU5EIjtIeS5YW0h5LlguQmhdPSJFVkVOVF9TRVRVUF9TVEFSVCI7SHkuWFtIeS5YLkVtXT0iR0E0X0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguaWpdPSJQQUdFX0xPQUQiO0h5LlhbSHkuWC5TcV09IlBBR0VWSUVXIjtIeS5YW0h5LlguamRdPSJTTklQUEVUX0xPQUQiO0h5LlhbSHkuWC51al09IlRBR19DQUxMQkFDS19FUlJPUiI7SHkuWFtIeS5YLnZqXT0iVEFHX0NBTExCQUNLX0ZBSUxVUkUiO0h5LlhbSHkuWC53al09IlRBR19DQUxMQkFDS19TVUNDRVNTIjtIeS5YW0h5LlguQ25dPSJUQUdfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC54al09IlRBR19FWEVDVVRFX1NUQVJUIjt2YXIgSXk9e307SXkuWD1IeS5YO3ZhciBKeT17UnU6IkwiLFhxOiJTIixrdjoiWSIsUnQ6IkIiLG51OiJFIixOdToiSSIsZnY6IlRDIix2dToiSFRDIixvdToiRiIsTXU6IkMifSxLeT17WHE6IlMiLGx1OiJWIixhdToiRSIsZHY6InRhZyJ9LEx5PXt9LE15PShMeVtJeS5YLnZqXT0iNiIsTHlbSXkuWC53al09IjUiLEx5W0l5LlgudWpdPSI3IixMeSk7ZnVuY3Rpb24gTnkoYSl7dmFyIGI9RSg1KSxjPU51bWJlcihhLmV2ZW50SWQpLGQ9TnVtYmVyKGEudGFnSWQpO3JldHVybihTYihiLCJHVE0tIik/YjoiR1RNLSIrYikrIjoiKyhBYihjKT9jKyI6IjoiIikrKEFiKGQpP2QrIjoiOiIiKSthLnN0YWdlfTtmdW5jdGlvbiBPeSgpe3ZhciBhPXJkKCk7cmV0dXJuISEoYSYmYS5tYXJrIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEubWVhc3VyZSBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWVhc3VyZXMgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5jbGVhck1hcmtzIGluc3RhbmNlb2YgRnVuY3Rpb24pfTt2YXIgUHk9ZnVuY3Rpb24oKXt0aGlzLkg9e319LFF5O2Z1bmN0aW9uIFJ5KCl7UXl8fChReT1uZXcgUHkpO3JldHVybiBReX1mdW5jdGlvbiBTeShhKXt2YXIgYj1SeSgpLGM9TnkoYSk7cmV0dXJuIGIuSFtjXX1mdW5jdGlvbiBUeShhLGIpe3ZhciBjO2E6e3ZhciBkPVJ5KCk7aWYoT3koKSl7dmFyIGU9TnkoYSksZixnO2lmKGY9KGc9cmQoKSk9PW51bGw/dm9pZCAwOmcubWFyayhlLGIpKXtjPWQuSFtlXT1mO2JyZWFrIGF9fWM9dm9pZCAwfXJldHVybiBjfTtmdW5jdGlvbiBVeShhLGIpe2lmKE95KCkpe2EuZW50cnk9TnkoYSk7dmFyIGM9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhKTtjLnN0YWdlPWI7ZGVsZXRlIGMuc2VudDt2YXIgZD1TeShiPT09SXkuWC5qZD97c3RhZ2U6SXkuWC5qZH06YyksZT1TeShhKTtpZihkJiZlJiYhKGQuc3RhcnRUaW1lPmUuc3RhcnRUaW1lKSl7Yy5zdGFnZT1iKyI6IithLnN0YWdlO3ZhciBmPU55KGMpLGc9e3N0YXJ0OmQubmFtZSxlbmQ6ZS5uYW1lfSxoLGw7cmV0dXJuKGw9KGg9cmQoKSk9PW51bGw/dm9pZCAwOmgubWVhc3VyZShmLGcpKT09bnVsbD92b2lkIDA6bC5kdXJhdGlvbn19fTt2YXIgV3k9ZnVuY3Rpb24oKXt2YXIgYT01O1Z5LlJvPjAmJihhPVZ5LlJvKTt0aGlzLks9YTt0aGlzLkg9MDt0aGlzLk49W119LFh5PWZ1bmN0aW9uKGEpe3JldHVybiBhLkg8YS5LPyExOk5iKCktYS5OW2EuSCVhLktdPDFFM30sWXk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5IKyslYS5LO2EuTltiXT1OYigpfTt2YXIgVnk9e1JvOk5mKDMsMCl9LCR5PWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnlhPVtdO3RoaXMuSD12b2lkIDA7dGhpcy5aPXt9O3RoaXMuSz12b2lkIDA7dGhpcy5qYT1uZXcgV3k7dGhpcy5MYT0xRTM7dGhpcy5SPXRoaXMuTj0hMTt0aGlzLmZhPURiKCk7WnkodGhpcyxmdW5jdGlvbigpe3ZhciBiPVtbInYiLCIzIl0sWyJ0IiwidCJdLFsicGlkIixTdHJpbmcoYS5mYSldXSxjPWR1KCk7YyYmYi5wdXNoKFsiZ3RtIixjXSk7cmV0dXJuIGJ9KTtjZChmdW5jdGlvbigpe2EuZmE9RGIoKX0sODY0RTUpfSxaeT1mdW5jdGlvbihhLGIpe2EueWEucHVzaChiKX0sYXo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSDtpZihkPT09dm9pZCAwKWlmKGMpZD1yaigpO2Vsc2UgcmV0dXJuIiI7Zm9yKHZhciBlPVtmaygiaHR0cHM6Ly8iK0UoMjEpKSwiL2EiLCI/aWQ9IitFKDUpXSxmPW0oYS55YSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZm9yKHZhciBoPWcudmFsdWUsbD0KaCh7ZXZlbnRJZDpkLHRmOiEhYn0pLG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9bShwLnZhbHVlKSxyPXEubmV4dCgpLnZhbHVlLHQ9cS5uZXh0KCkudmFsdWU7ZS5wdXNoKCImIityKyI9Iit0KX1lLnB1c2goIiZ6PTAiKTtyZXR1cm4gZS5qb2luKCIiKX0sYno9ZnVuY3Rpb24oYSl7aWYoJGsoMjYpJiYoYS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKSxhLkghPT12b2lkIDAmJmEuUikpe3ZhciBiPWxvKGNvLmlhLlpiKTtpZihnbyhiKSlhLk58fChhLk49ITAsaW8oYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSkpO2Vsc2UgaWYoYS5aW2EuSF18fFh5KGEuamEpfHxhLkxhLS08PTApUCgxKSxhLlpbYS5IXT0hMDtlbHNle1l5KGEuamEpO3ZhciBjPWF6KGEsITApO1huKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDphLkh9LGMpO2EuUj0hMTthLk49ITF9fX0sY3o9ZnVuY3Rpb24oYSl7YS5LfHwoYS5LPQpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBieihhKX0sNTAwKSl9LGV6PWZ1bmN0aW9uKGEpe3ZhciBiPWR6O2IuWlthXXx8KGEhPT1iLkgmJihieihiKSxiLkg9YSksYi5SPSEwLGN6KGIpLGF6KGIpLmxlbmd0aD49MjAyMiYmYnooYikpfSxkejtmdW5jdGlvbiBmeihhKXtneigpO1p5KGR6LGEpfWZ1bmN0aW9uIGh6KCl7dmFyIGE7YT1hPT09dm9pZCAwPyExOmE7Z3ooKTt2YXIgYj1hLGM9ZHo7Yj1iPT09dm9pZCAwPyExOmI7aWYoZm4uTiYmJGsoMjYpKXt2YXIgZD1heihjLCEwLCEwKTtiP1ZuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpOlhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpfX1mdW5jdGlvbiBneigpe2R6fHwoZHo9bmV3ICR5KX07ZnVuY3Rpb24gaXooKXtmdW5jdGlvbiBhKGMsZCl7dmFyIGU9d2IocmJbZF18fFtdKTtlJiZiLnB1c2goW2MsZV0pfXZhciBiPVtdO2EoInUiLCJHVE0iKTthKCJ1dCIsIlRBR0dJTkciKTthKCJoIiwiSEVBTFRIIik7cmV0dXJuIGJ9O3ZhciBqej0iaHR0cHM6Ly8iK0UoMjEpLGt6PWZ1bmN0aW9uKCl7dGhpcy5OPSExO3RoaXMuUj1bXTt0aGlzLlo9W107dGhpcy5IPXtUQzowLEhUQzowfTt0aGlzLks9e319LGx6PWZ1bmN0aW9uKGEsYixjLGQpe2EuS1tiXXx8KGEuS1tiXT17fSk7YS5LW2JdW2NdPWR9LG96PWZ1bmN0aW9uKGEpe3ZhciBiPSIiLGM9IiIsZD1teigpO0FiKGQpJiYoYS5ILkk9TWF0aC5mbG9vcihkKSk7Yz1ueihhLkgsSnkpLnRvU3RyaW5nKCk7Zm9yKHZhciBlPW0oT2JqZWN0LmtleXMoYS5LKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1hLktbZ10ubmFtZSxsPSIiLG49bnooYS5LW2ddLEt5KTtuJiYobD1oKyIuIituLnRvU3RyaW5nKCksYis9In4iK2wpfXZhciBwPSJ+QVdDVCIrYS5SLmpvaW4oIi4iKSxxPSJ+R0EiK2EuWi5qb2luKCIuIikscj0iJmNjaWQ9Iit2aygpLnRvU3RyaW5nKCkrIiZjaWQ9IitFKDUpLnRvU3RyaW5nKCkrIiZsPSIrYytiKyhhLlIubGVuZ3RoPwpwOiIiKSsoYS5aLmxlbmd0aD9xOiIiKTtpZihNKDIxNCkpe3ZhciB0LHU9KHQ9cmQoKSk9PW51bGw/dm9pZCAwOnQuZ2V0RW50cmllc0J5TmFtZShLYykubWFwKGZ1bmN0aW9uKHYpe3JldHVybiBTdHJpbmcodi5kdXJhdGlvbil9KS5qb2luKCIuIik7dSYmKHIrPSJ+U1MiK3UpfXJldHVybiByfSxwej1mdW5jdGlvbihhLGIpe2lmKCFiLnN0YWdlfHxhLk58fCFPeSgpfHxTeShiKSlyZXR1cm4hMTt2YXIgYyxkPShjPXJkKCkpPT1udWxsP3ZvaWQgMDpjLnRpbWVPcmlnaW47aWYoIUFiKGQpKWEuTj0hMDtlbHNlIGlmKEFiKCRrKDI1KSkmJiFTeSh7c3RhZ2U6SXkuWC5qZH0pJiYhYS5OJiZPeSgpKXRyeXt2YXIgZT1OdW1iZXIoJGsoMjUpKTtUeSh7c3RhZ2U6SXkuWC5qZH0se3N0YXJ0VGltZTpNYXRoLm1heChlLWQsMCl9KTtUeSh7c3RhZ2U6SXkuWC5pan0se3N0YXJ0VGltZTowfSk7dmFyIGY9VXkoe3N0YWdlOkl5LlguamR9LEl5LlguaWopO2YmJihhLkguTD1NYXRoLmZsb29yKGYpKX1jYXRjaChnKXthLk49CiEwfWlmKGEuTilyZXR1cm4hMTt0cnl7aWYoIVR5KGIpKXJldHVybiExfWNhdGNoKGcpe3JldHVybiBhLk49ITAsITF9cmV0dXJuITB9LHF6PWZ1bmN0aW9uKGEsYixjKXtpZihweihhLGIpKXRyeXt2YXIgZD1VeShiLGMpO2lmKGQpcmV0dXJuIE1hdGguZmxvb3IoZCl9Y2F0Y2goZSl7YS5OPSEwfX0sc3o9ZnVuY3Rpb24oKXt2YXIgYT1yeigpO3B6KGEse3N0YWdlOkl5LlgubWl9KX0sdHo9ZnVuY3Rpb24oKXt2YXIgYT1yeigpLGI9cXooYSx7c3RhZ2U6SXkuWC5Ya30sSXkuWC5taSk7YiE9PXZvaWQgMCYmKGEuSC5TPWIpfSx1ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5uaX0pfSx2ej1mdW5jdGlvbihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC5CaCxldmVudElkOmF9KTtjLktbYV0mJmMuS1thXS5uYW1lfHxseihjLGEsIm5hbWUiLFNiKGIsImd0bS4iKT9iOiIqIil9LHd6PWZ1bmN0aW9uKGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnZtLApldmVudElkOmF9LEl5LlguQmgpO2MhPT12b2lkIDAmJmx6KGIsYSwiUyIsYyl9LHl6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKSxkPXF6KGMse3N0YWdlOkl5LlgudG0sZXZlbnRJZDphfSxJeS5YLkJoKTtkIT09dm9pZCAwJiZseihjLGEsIkUiLGQpO2lmKGI9PT0iZ3RtLmxvYWQiKXt2YXIgZT1xeihjLHtzdGFnZTpJeS5YLldrfSxJeS5YLlpnKTtlIT09dm9pZCAwJiYoYy5ILkU9ZSk7aW8obG8oY28uaWEuWmIpLGZ1bmN0aW9uKCl7aWYoIWMuTiYmT3koKSYmRSg1KSl7dmFyIGY9eHooKTtmIT09dm9pZCAwJiYoYy5ILkY9TWF0aC5mbG9vcihmKSk7dHJ5e2Zvcih2YXIgZz1peih7ZXZlbnRJZDowLHRmOiExfSksaD1bXSxsPW0oZyksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW0obi52YWx1ZSkscT1wLm5leHQoKS52YWx1ZSxyPXAubmV4dCgpLnZhbHVlO2gucHVzaCgiJiIrcSsiPSIrcil9dmFyIHQ9Q3AoKSx1PVtbZmsoanopLCIvYT92PTMmdD1sIiwiJnBpZD0iKwpEYigpLnRvU3RyaW5nKCksIiZydj0iK0UoMTQpLHQ/IiZ0YWdfZXhwPSIrdDoiIixoLmpvaW4oIiIpXS5qb2luKCIiKSwiJmd0bT0iLGR1KCksb3ooYyldLmpvaW4oIiIpO2lmKHUubGVuZ3RoPjIwMjIpe3ZhciB2PU1hdGgubWF4KHUubGFzdEluZGV4T2YoIi5UUyIsMjAyMiksdS5sYXN0SW5kZXhPZigifiIsMjAyMikpO3U9dS5zbGljZSgwLHYpfVhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTZ9LHUpfWNhdGNoKHgpe319fSl9fSx6ejtmdW5jdGlvbiByeigpe3p6fHwoeno9bmV3IGt6KTtyZXR1cm4genp9ZnVuY3Rpb24gbXooKXt0cnl7dmFyIGE7cmV0dXJuKChhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKVswXSkuZG9tSW50ZXJhY3RpdmV9Y2F0Y2goYil7fX0KZnVuY3Rpb24gbnooYSxiKXtyZXR1cm4gT2JqZWN0LmtleXMoYikubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBiW2NdfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBhW2NdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybigiIisoYz09PSJ0YWciPyIiOmMpKS5jb25jYXQoYVtjXS50b1N0cmluZygpKX0pLmpvaW4oIi4iKX1mdW5jdGlvbiBBeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5FbSxldmVudElkOmF9LEl5LlguamQpO2MhPT12b2lkIDAmJmIuWi5wdXNoKGMpfWZ1bmN0aW9uIEJ6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVrLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5SLnB1c2goYyl9ZnVuY3Rpb24gQ3ooYSl7dmFyIGI9cnooKTtweihiLHtzdGFnZTpJeS5YLlRpLGV2ZW50SWQ6YX0pfQpmdW5jdGlvbiBEeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5zbSxldmVudElkOmF9LEl5LlguVGkpO2MhPT12b2lkIDAmJmx6KGIsYSwiViIsYyl9ZnVuY3Rpb24geHooKXt0cnl7dmFyIGEsYjtyZXR1cm4oYj0oYT1yZCgpKT09bnVsbD92b2lkIDA6YS5nZXRFbnRyaWVzQnlUeXBlKCJwYWludCIpLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMubmFtZT09PSJmaXJzdC1jb250ZW50ZnVsLXBhaW50In0pKT09bnVsbD92b2lkIDA6Yi5zdGFydFRpbWV9Y2F0Y2goYyl7fX1mdW5jdGlvbiBFeihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC54aixldmVudElkOmEuaWQsdGFnSWQ6TnVtYmVyKGJbR2YueWpdKX0pfQpmdW5jdGlvbiBGeihhLGIsYyl7dmFyIGQ9cnooKSxlPWRuKGIpLGY9TnVtYmVyKGJbR2YueWpdKSxnPXF6KGQse3N0YWdlOmMsZXZlbnRJZDphLmlkLHRhZ0lkOmZ9LEl5LlgueGopO2lmKGchPT12b2lkIDAmJmQuS1thLmlkXSl7dmFyIGg9ZC5LW2EuaWRdLnRhZ3x8IiIsbCxuPShsPU15W2NdKSE9bnVsbD9sOiIxIixwPW5ldyBSZWdFeHAoIlRTXFxkIitlKyIuVEkiK2YpLHE9IlRTIituK2UrIi5USSIrZisiLlRFIitnO2guc2VhcmNoKHApPj0wP24hPT0iMSImJmx6KGQsYS5pZCwidGFnIixoLnJlcGxhY2UocCxxLnJlcGxhY2UoIi5URSIrZywiIikpKToobHooZCxhLmlkLCJ0YWciLChoP2grIi4iOiIiKStxKSxlPT09Imh0bWwiJiYoZC5ILkhUQys9MSksZC5ILlRDKz0xKX19O3ZhciBLej17Z2o6e2JwOiIxIix1cToiMiIsVnE6IjMifX07dmFyIFB6LFF6OwpmdW5jdGlvbiBSeihhLGIpe3ZhciBjPWFbR2YuWWJdLGQ9YiYmYi5ldmVudDtpZighYyl0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGU9UXpbY10sZj17fSxnO2ZvcihnIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShnKSYmKFNiKGcsInZ0cF8iKT9mW2UhPT12b2lkIDA/ZzpnLnN1YnN0cmluZyg0KV09YVtnXTpnPT09R2YuRnEudG9TdHJpbmcoKSYmKGZbZSE9PXZvaWQgMD8idnRwX2d0bUdlbmVyYXRlZFRhZ2dpbmdNZXRhZGF0YSI6Z109YVtnXSkpO0lmKDYxKSYmZSYmKGYudnRwX2V4dHJhRXhwZXJpbWVudElkcz0hMCk7ZSYmZCYmZC5jYWNoZWRNb2RlbFZhbHVlcyYmKGYudnRwX2d0bUNhY2hlZFZhbHVlcz1kLmNhY2hlZE1vZGVsVmFsdWVzKTtiJiZlJiYoZi52dHBfZ3RtRW50aXR5SW5kZXg9Yi5pbmRleCxmLnZ0cF9ndG1FbnRpdHlOYW1lPWIubmFtZSk7cmV0dXJuIGUhPT12b2lkIDA/ZShmKTpQeihjLGYsCmIpfXZhciBUej1mdW5jdGlvbigpe3ZhciBhPVN6O2lmKE0oNTg1KSYmZm4uSyl7dmFyIGI9RSg1KS5pbmRleE9mKCJHVE0tIik9PT0wJiZJZig2MiksYyxkPSgoYz1GaygpKT09bnVsbD92b2lkIDA6Yy5zb3VyY2UpPT09MTtiJiYhZHx8YS5IfHwoYS5IPSEwLFVtKCJhYmwiLCIxIiksdG8oKSl9fSxTej1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBVej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSFtHZi5SbV18fCIiKX07ClV6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe2lmKCFiW3RoaXMuaW5kZXhdJiYhYS5pc0Jsb2NrZWQodGhpcy5IKSl7Ylt0aGlzLmluZGV4XT0hMDt0aGlzLkhbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7dmFyIGM9dGhpcy5uYW1lLGQ7dHJ5e3ZhciBlPXt9LGY7Zm9yKGYgaW4gdGhpcy5IKXRoaXMuSC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpKTtlLnZ0cF9ndG1FdmVudElkPWEuaWQ7YS5wcmlvcml0eUlkJiYoZS52dHBfZ3RtUHJpb3JpdHlJZD1hLnByaW9yaXR5SWQpO3ZhciBnPWQ9UnooZSx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MixuYW1lOmN9KTtlW0dmLlprXSYmdHlwZW9mIGc9PT0ic3RyaW5nIiYmKGc9ZVtHZi5aa109PT0xP2cudG9Mb3dlckNhc2UoKTpnLnRvVXBwZXJDYXNlKCkpO2UuaGFzT3duUHJvcGVydHkoR2YuYWgpJiYoZz1ZZigxOCk/ZVtHZi5haF09PT0xPwpWZihnLCJQRVJJT0QiKTplW0dmLmFoXT09PTI/VmYoZywiQ09NTUEiKTpWZihnLCJBVVRPTUFUSUMiKTplW0dmLmFoXT09PTE/VmYoZywiUEVSSU9EIik6VmYoZywiQ09NTUEiKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5ibCkmJmc9PT1udWxsJiYoZz1lW0dmLmJsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5pbCkmJmc9PT12b2lkIDAmJihnPWVbR2YuaWxdKTtlLmhhc093blByb3BlcnR5KEdmLmVwKSYmKGc9SmIoZykpO2UuaGFzT3duUHJvcGVydHkoR2YuZmwpJiZnPT09ITAmJihnPWVbR2YuZmxdKTtlLmhhc093blByb3BlcnR5KEdmLmFsKSYmZz09PSExJiYoZz1lW0dmLmFsXSk7ZD1nfWNhdGNoKGgpe2EubG9nTWFjcm9FcnJvciYmYS5sb2dNYWNyb0Vycm9yKGgsTnVtYmVyKHRoaXMuaW5kZXgpLGMpLGQ9ITF9Ylt0aGlzLmluZGV4XT0hMTtyZXR1cm4gZH19O1V6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBWej1mdW5jdGlvbihhLGIsYyl7dGhpcy5IPWE7dGhpcy50YWdzPWI7dGhpcy5tYWNyb3M9Y307VnoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dHJ5e2Zvcih2YXIgYz17fSxkPW0oT2JqZWN0LmtleXModGhpcy5IKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Y1tmXT1mPT09ImZ1bmN0aW9uIj90aGlzLkhbZl06ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpfXJldHVybiBjbChjKX1jYXRjaChnKXtKU09OLnN0cmluZ2lmeSh0aGlzLkgpfXJldHVybiAyfTtWei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgV3o9ZnVuY3Rpb24oYSxiKXt0aGlzLmluZGV4PWI7dGhpcy5OPVtdO3RoaXMuUj1bXTt0aGlzLks9W107dGhpcy5IPVtdO3RoaXMubmFtZT0iIjtmb3IodmFyIGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9bShkLnZhbHVlKSxmPWUubmV4dCgpLnZhbHVlLGc9eWEoZSksaD1mLGw9ZztoPT09ImlmIj90aGlzLk49bDpoPT09InVubGVzcyI/dGhpcy5SPWw6aD09PSJhZGQiP3RoaXMuSz1sOmg9PT0iYmxvY2siP3RoaXMuSD1sOmg9PT0icnVsZU5hbWUiJiYodGhpcy5uYW1lPWxbMF0pfX07Cld6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPVh6KHRoaXMsYiksZD1bXSxlPVtdO2M/KGQucHVzaC5hcHBseShkLHcodGhpcy5LKSksZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKSk6Yz09PW51bGwmJmUucHVzaC5hcHBseShlLHcodGhpcy5IKSk7cmV0dXJue2ZpcmluZ1RhZ3M6ZCxibG9ja2luZ1RhZ3M6ZX19Owp2YXIgWHo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bShhLk4pLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1iKGQudmFsdWUpO2lmKGU9PT0wKXJldHVybiExO2lmKGU9PT0yKXJldHVybiBudWxsfWZvcih2YXIgZj1tKGEuUiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWIoZy52YWx1ZSk7aWYoaD09PTIpcmV0dXJuIG51bGw7aWYoaD09PTEpcmV0dXJuITF9cmV0dXJuITB9O1d6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIFl6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSWE9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLk89U3RyaW5nKHRoaXMuSWFbR2YuWWJdKTt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSWFbR2YuUm1dfHwiIik7dGhpcy50YWdJZD1OdW1iZXIodGhpcy5JYVtHZi55al0pfTsKWXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/e306Yzt2YXIgZCxlPWM7ZT1lPT09dm9pZCAwP3t9OmU7dmFyIGY9e30sZztmb3IoZyBpbiB0aGlzLklhKXRoaXMuSWEuaGFzT3duUHJvcGVydHkoZykmJihmW2ddPWVsKHRoaXMuSWFbZ10sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pKTtkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZixlKTtkLnZ0cF9ndG1UYWdJZD10aGlzLnRhZ0lkO3RoaXMuSWFbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7UnooZCx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MSxuYW1lOnRoaXMubmFtZX0pfTtZei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLklhKX07CnZhciBaej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YudG5dKXJldHVybiBlbChhLklhW0dmLnRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LCR6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi5Ebl0pcmV0dXJuIGVsKGEuSWFbR2YuRG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sYUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLklhW0dmLmNwXTtpZihjKXJldHVybiBlbChjLGIsYS50YWdzLGEubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKGEpe3JldHVybiBlbCh0aGlzLklhW0dmLk1FVEFEQVRBXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIGJBPWZ1bmN0aW9uKCl7dGhpcy5tYWNyb3M9W107dGhpcy5ydWxlcz1bXTt0aGlzLnByZWRpY2F0ZXM9W107dGhpcy50YWdzPVtdO3RoaXMudms9W119O2JBLnByb3RvdHlwZS5nZXRSdWxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGVzfTt2YXIgY0E9bmV3IGJBO2Z1bmN0aW9uIGRBKGEsYixjLGQpe3ZhciBlPVdjKCksZjtpZihlPT09MSlhOnt2YXIgZz1FKDMpO2c9Zy50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaD0iaHR0cHM6Ly8iK2csbD0iaHR0cDovLyIrZyxuPTEscD1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxxPTA7cTxwLmxlbmd0aCYmcTwxMDA7cSsrKXt2YXIgcj1wW3FdLnNyYztpZihyKXtyPXIudG9Mb3dlckNhc2UoKTtpZihyLmluZGV4T2YobCk9PT0wKXtmPTM7YnJlYWsgYX1uPT09MSYmci5pbmRleE9mKGgpPT09MCYmKG49Mil9fWY9bn1lbHNlIGY9ZTtyZXR1cm4oZj09PTJ8fGR8fCJodHRwOiIhPT1BLmxvY2F0aW9uLnByb3RvY29sP2E6YikrY307dmFyIGVBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5LKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkssZCkmJmMucHVzaChkKyJ+IithLktbZF0pO3ZhciBlPVtdLGY7Zm9yKGYgaW4gYS5IKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkgsZikmJmUucHVzaChmKyJ+IithLkhbZl0pO2IudGYmJihhLks9e30sYS5IPXt9KTt2YXIgZz1bXTtjLmxlbmd0aD4wJiZnLnB1c2goWyJiY3MiLGMuam9pbigiLiIpXSk7ZS5sZW5ndGg+MCYmZy5wdXNoKFsiYmV0IixlLmpvaW4oIi4iKV0pO3JldHVybiBnfSl9LGZBO2Z1bmN0aW9uIGdBKCl7ZkF8fChmQT1uZXcgZUEpfTtmdW5jdGlvbiBoQShhLGIsYyxkLGUpe2lmKCFFayhhKSl7ZC5sb2FkRXhwZXJpbWVudHM9eWooKTtIayhhLGQsZSk7dmFyIGY9aUEoYSksZz1mdW5jdGlvbigpe29rKCkuY29udGFpbmVyW2FdJiYob2soKS5jb250YWluZXJbYV0uc3RhdGU9Myk7akEoKX0saD17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBsPVhqKCksbj1sKyIvIitrQShmLGEpO1puKGgsbix2b2lkIDAsZnVuY3Rpb24oKXtsQShhLG4sbCsiLyIrZixoLGcpfSl9ZWxzZXt2YXIgcD1TYihhLCJHVE0tIikscT1kaygpLHI9Yz8iL2d0YWcvanMiOiIvZ3RtLmpzIix0PW1BKGIscitmLGEpO2lmKCF0KXt2YXIgdT1FKDMpK3I7cSYmS2MmJnAmJih1PUtjLnJlcGxhY2UoL14oPzpodHRwcz86XC9cLyk/L2ksIiIpLnNwbGl0KC9bPyNdLylbMF0pO3Q9ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsdStmKX1abihoLHQsdm9pZCAwLGcpfX19CmZ1bmN0aW9uIGpBKCl7S2soKXx8R2IoTGsoKSxmdW5jdGlvbihhLGIpe25BKGEsYi50cmFuc3BvcnRVcmwsYi5jb250ZXh0KTtQKDkyKX0pfWZ1bmN0aW9uIG5BKGEsYixjLGQpe2lmKCFHayhhKSlpZihjLmxvYWRFeHBlcmltZW50c3x8KGMubG9hZEV4cGVyaW1lbnRzPXlqKCkpLEtrKCkpSmsoYSxiLGMsZCk7ZWxzZXtJayhhLGMsZCk7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgZj1YaigpLGc9Imd0ZCIraUEoYSwhMCksaD1mKyIvIitrQShnLGEpO1puKGUsaCx2b2lkIDAsZnVuY3Rpb24oKXtsQShhLGgsZisiLyIrZyxlKX0pfWVsc2V7dmFyIGw9Ii9ndGFnL2Rlc3RpbmF0aW9uIitpQShhLCEwKSxuPW1BKGIsbCxhKTtufHwobj1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIixFKDMpK2wpKTtabihlLG4pfX19CmZ1bmN0aW9uIGxBKGEsYixjLGQsZSl7aWYoTSg0MTMpKXtnQSgpO3ZhciBmPWZBO2lmKGZuLk4pe3ZhciBnPUEucGVyZm9ybWFuY2UsaD0tMTtpZihnJiZnLmdldEVudHJpZXNCeVR5cGUpe3ZhciBsPVJqKGIpLmhyZWYsbj1nLmdldEVudHJpZXNCeU5hbWUobCkucG9wKCk7aWYoIW4pZm9yKHZhciBwPWcuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKSxxPTA7cTxwLmxlbmd0aDtxKyspe3ZhciByPXBbcV07aWYoci5uYW1lJiZyLm5hbWUuaW5kZXhPZihiKSE9PS0xKXtuPXI7YnJlYWt9fW4mJm4ucmVzcG9uc2VTdGF0dXMhPT12b2lkIDAmJihoPW4ucmVzcG9uc2VTdGF0dXMpfWYuS1thXT1ofVAoMTkwKTt2YXIgdD1ubShqbS5iYS5rail8fHt9O3RbYV09ITA7bW0oam0uYmEua2osdCk7dmFyIHU9YysoYy5pbmRleE9mKCI/Iik9PT0tMT8iP2Y9MSI6IiZmPTEiKTtlP1puKGQsdSx2b2lkIDAsZSk6Wm4oZCx1KX1lbHNlIGUmJmUoKX0KZnVuY3Rpb24gaUEoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iP2lkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLGQ9RSgxOSk7ZCE9PSJkYXRhTGF5ZXIiJiYoYys9IiZsPSIrZCk7dmFyIGU9U2IoYSwiR1RNLSIpO2lmKCFlfHxiKWMrPSImY3g9YyI7ZSYmSWYoNjIpJiYoYys9IiZnb29nbGVfb25seT10cnVlIik7dmFyIGY9YyxnLGg9e0RvOkpmKDE1KSxJbzpFKDE0KX07Zz1DZihoKTtjPWYrKCImZ3RtPSIrZyk7ZGsoKSYmKGMrPSImc2lnbj0iK0FqLnFqKTt2YXIgbD1jLG49SmYoNTQpO2lmKG49PT0xKXtsKz0iJmZwcz1mYyI7dmFyIHA9RSg2MCk7cCYmKGwrPSImZ2Rldj0iK3ApfWVsc2Ugbj09PTImJihsKz0iJmZwcz1mZSIpO3JldHVybiBsfQpmdW5jdGlvbiBrQShhLGIpe2lmKCFNKDQxMyl8fCFYaigpKXJldHVybiBhO3ZhciBjPUUoNTgpO2lmKCFjKXJldHVybiBQKDE4MiksYTt0cnl7dmFyIGQ9TmIoKSxlPUVmKGEsYyksZj1OYigpLWQ7Z0EoKTt2YXIgZz1mQTtmbi5OJiYoZy5IW2JdPWYpO3JldHVybiBlfWNhdGNoKGgpe3JldHVybiBQKDE4MyksYX19ZnVuY3Rpb24gbUEoYSxiLGMpe2lmKGFrKCkmJmEpe3ZhciBkPUUoNTgpLGU9WGooKTtpZihkJiZlKXRyeXt2YXIgZj1OYigpO2I9ZSsiLyIrRWYoYixkKTt2YXIgZz1OYigpLWY7Z0EoKTt2YXIgaD1mQTtmbi5OJiYoaC5IW2NdPWcpfWNhdGNoKGwpe1AoMTgzKX1yZXR1cm4gWWooYSxiKX19O3ZhciBwQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPW5ldyBGYjt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj17bmFtZTpFKDE5KSxzZXQ6ZnVuY3Rpb24oYixjKXtFZChWYihiLGMpLGEuSCk7b0EoYSl9LGdldDpmdW5jdGlvbihiKXtyZXR1cm4gYS5nZXQoYiwyKX0scmVzZXQ6ZnVuY3Rpb24oKXthLks9bmV3IEZiO2EuSD17fTtvQShhKX19fTtwQS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIhPTI/dGhpcy5LLmdldChhKTpxQSh0aGlzLGEpfTt2YXIgcUE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuc3BsaXQoIi4iKTtjPWN8fFtdO2Zvcih2YXIgZT1hLkgsZj0wO2Y8ZC5sZW5ndGg7ZisrKXtpZihlPT09bnVsbClyZXR1cm4hMTtpZihlPT09dm9pZCAwKWJyZWFrO2U9ZVtkW2ZdXTtpZihjLmluZGV4T2YoZSkhPT0tMSlyZXR1cm59cmV0dXJuIGV9OwpwQS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OLmhhc093blByb3BlcnR5KGEpfHwodGhpcy5LLnNldChhLGIpLEVkKFZiKGEsYiksdGhpcy5IKSxvQSh0aGlzKSl9O3ZhciBzQT1mdW5jdGlvbigpe2Zvcih2YXIgYT1bImd0bS5hbGxvd2xpc3QiLCJndG0uYmxvY2tsaXN0IiwiZ3RtLndoaXRlbGlzdCIsImd0bS5ibGFja2xpc3QiLCJ0YWdUeXBlQmxhY2tsaXN0Il0sYj1yQSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iLmdldChkLDEpO2lmKEFycmF5LmlzQXJyYXkoZSl8fENkKGUpKWU9RWQoZSxudWxsKTtiLk5bZF09ZX19LG9BPWZ1bmN0aW9uKGEsYil7R2IoYS5OLGZ1bmN0aW9uKGMsZCl7YS5LLnNldChjLGQpO0VkKFZiKGMpLGEuSCk7RWQoVmIoYyxkKSxhLkgpO2ImJmRlbGV0ZSBhLk5bY119KX0sckE9bmV3IHBBLHRBPXJBLlI7ZnVuY3Rpb24gdUEoYSxiKXtyZXR1cm4gckEuZ2V0KGEsYil9CmZ1bmN0aW9uIHZBKGEsYil7dmFyIGM9Yj09PXZvaWQgMD8yOmIsZD1yQSxlLGY9KGM9PT12b2lkIDA/MjpjKSE9PTE/cUEoZCxhKTpkLksuZ2V0KGEpO0FkKGYpPT09ImFycmF5Inx8QWQoZik9PT0ib2JqZWN0Ij9lPUVkKGYsbnVsbCk6ZT1mO3JldHVybiBlfTt2YXIgd0E9bmV3IFJlZ0V4cCgvXiguKlwuKT8oZ29vZ2xlfHlvdXR1YmV8YmxvZ2dlcnx3aXRoZ29vZ2xlKShcLmNvbT8pPyhcLlthLXpdezJ9KT9cLj8kLykseEE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsibm9uR29vZ2xlUGl4ZWxzIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVQaXhlbHM6W10sbm9uR29vZ2xlU2NyaXB0czpbIm5vbkdvb2dsZVBpeGVscyJdLG5vbkdvb2dsZUlmcmFtZXM6WyJub25Hb29nbGVQaXhlbHMiXX0seUE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsiY3VzdG9tU2NyaXB0cyIsCiJodG1sIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCJdLG5vbkdvb2dsZVBpeGVsczpbImN1c3RvbVBpeGVscyIsImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVTY3JpcHRzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiXSxub25Hb29nbGVJZnJhbWVzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIl19LHpBPSJnb29nbGUgY3VzdG9tUGl4ZWxzIGN1c3RvbVNjcmlwdHMgaHRtbCBub25Hb29nbGVQaXhlbHMgbm9uR29vZ2xlU2NyaXB0cyBub25Hb29nbGVJZnJhbWVzIi5zcGxpdCgiICIpOwpmdW5jdGlvbiBBQSgpe3ZhciBhPXVBKCJndG0uYWxsb3dsaXN0Iil8fHVBKCJndG0ud2hpdGVsaXN0Iik7YSYmUCg5KTtJZig2MikmJihhPXZvaWQgMCk7QkEoKSYmKElmKDYyKT9QKDExNik6KFAoMTE3KSxJZig0OCkmJihhPVtdLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR1RNIGJsb2NrZWQuIFNlZSBnby8xMzY4NzcyOC4iKSkpKTt2YXIgYj1hJiZSYihLYihhKSx4QSksYz11QSgiZ3RtLmJsb2NrbGlzdCIpfHx1QSgiZ3RtLmJsYWNrbGlzdCIpO2N8fChjPXVBKCJ0YWdUeXBlQmxhY2tsaXN0IikpJiZQKDMpO2M/UCg4KTpjPVtdO0JBKCkmJihjPUtiKGMpLGMucHVzaCgibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsInNhbmRib3hlZFNjcmlwdHMiKSk7S2IoYykuaW5kZXhPZigiZ29vZ2xlIik+PTAmJlAoMik7dmFyIGQ9YyYmUmIoS2IoYykseUEpLGU9e307cmV0dXJuIGZ1bmN0aW9uKGYpe3ZhciBnPWYmJgpmW0dmLlliXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4hMDtnPWcucmVwbGFjZSgvXl8qLywiIik7aWYoZVtnXSE9PXZvaWQgMClyZXR1cm4gZVtnXTt2YXIgaD1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSlbZ118fFtdLGw9ITA7YSYmKGw9bCYmQ0EoZyxoLGIpKTt2YXIgbj0hMTtjJiYobj1EQShnLGgsZCkpO3ZhciBwPSFsfHxuOyFwJiYoaC5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIik9PT0tMXx8YiYmYi5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIikhPT0tMT8wOkViKGQsekEpKSYmKHA9ITApO3JldHVybiBlW2ddPXB9fWZ1bmN0aW9uIENBKGEsYixjKXtpZihjLmluZGV4T2YoYSk8MClpZihiJiZiLmxlbmd0aD4wKWZvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXtpZihjLmluZGV4T2YoYltkXSk8MClyZXR1cm4gUCgxMSksITF9ZWxzZSByZXR1cm4hMTtyZXR1cm4hMH0KZnVuY3Rpb24gREEoYSxiLGMpe3ZhciBkPWMuaW5kZXhPZihhKT49MDtpZihkKXJldHVybiBkO3ZhciBlPUViKGMsYnx8W10pO2UmJlAoMTApO3JldHVybiBlfWZ1bmN0aW9uIEJBKCl7cmV0dXJuIHdBLnRlc3QoQS5sb2NhdGlvbiYmQS5sb2NhdGlvbi5ob3N0bmFtZSl9O2Z1bmN0aW9uIEVBKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9RkEoYSksZT1tKGNBLmdldFJ1bGVzKCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZS5ldmFsdWF0ZShhLGQpLGg9Zy5maXJpbmdUYWdzLGw9Zy5ibG9ja2luZ1RhZ3Msbj0wO248aC5sZW5ndGg7bisrKWJbaFtuXV09ITA7Zm9yKHZhciBwPTA7cDxsLmxlbmd0aDtwKyspY1tsW3BdXT0hMH1mb3IodmFyIHE9W10scj0wO3I8Y0EudGFncy5sZW5ndGg7cisrKWJbcl0mJiFjW3JdJiYocVtyXT0hMCk7cmV0dXJuIHF9ZnVuY3Rpb24gRkEoYSl7dmFyIGI9W107cmV0dXJuIGZ1bmN0aW9uKGMpe2JbY109PT12b2lkIDAmJihiW2NdPWNBLnByZWRpY2F0ZXNbY10uZXZhbHVhdGUoYSxbXSkpO3JldHVybiBiW2NdfX07dmFyIEdBPWZ1bmN0aW9uKCl7dGhpcy5LPTA7dGhpcy5IPXt9fTtHQS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSsrdGhpcy5LO3RoaXMuSFthXT10aGlzLkhbYV18fHt9O3RoaXMuSFthXVtTdHJpbmcoZCldPXtsaXN0ZW5lcjpiLHJmOmN9O3JldHVybiBkfTtHQS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkhbYV0sZD1TdHJpbmcoYik7aWYoIWN8fCFjW2RdKXJldHVybiExO2RlbGV0ZSBjW2RdO3JldHVybiEwfTt2YXIgSUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtHYihIQS5IW2FdLGZ1bmN0aW9uKGQsZSl7Yy5pbmRleE9mKGUubGlzdGVuZXIpPDAmJihlLnJmPT09dm9pZCAwfHxiLmluZGV4T2YoZS5yZik+PTApJiZjLnB1c2goZS5saXN0ZW5lcil9KTtyZXR1cm4gY307ZnVuY3Rpb24gSkEoYSxiLGMpe3JldHVybntlbnRpdHlUeXBlOmEsaW5kZXhJbk9yaWdpbkNvbnRhaW5lcjpiLG5hbWVJbk9yaWdpbkNvbnRhaW5lcjpjLG9yaWdpbkNvbnRhaW5lcklkOkUoNSksb3JpZ2luQ0lkOnZrKCl9fTtmdW5jdGlvbiBLQShhLGIpe2lmKGRhdGEuZW50aXRpZXMpe3ZhciBjPWRhdGEuZW50aXRpZXNbYV07aWYoYylyZXR1cm4gY1tiXX19O3ZhciBNQT1mdW5jdGlvbihhLGIpe3RoaXMuSD0hMTt0aGlzLlI9W107dGhpcy5ldmVudERhdGE9e3RhZ3M6W119O3RoaXMuWj0hMTt0aGlzLks9dGhpcy5OPTA7TEEodGhpcyxhLGIpfSxOQT1mdW5jdGlvbihhLGIsYyxkKXtpZihDai5oYXNPd25Qcm9wZXJ0eShiKXx8Yj09PSJfX3pvbmUiKXJldHVybi0xO3ZhciBlPXt9O0NkKGQpJiYoZT1FZChkLGUpKTtlLmlkPWM7ZS5zdGF0dXM9InRpbWVvdXQiO3JldHVybiBhLmV2ZW50RGF0YS50YWdzLnB1c2goZSktMX0sT0E9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5ldmVudERhdGEudGFnc1tiXTtlJiYoZS5zdGF0dXM9YyxlLmV4ZWN1dGlvblRpbWU9ZCl9LFBBPWZ1bmN0aW9uKGEpe2lmKCFhLkgpe2Zvcih2YXIgYj1hLlIsYz0wO2M8Yi5sZW5ndGg7YysrKWJbY10oKTthLkg9ITA7YS5SLmxlbmd0aD0wfX0sTEE9ZnVuY3Rpb24oYSxiLGMpe2IhPT12b2lkIDAmJmEud2coYik7YyYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7UEEoYSl9LApOdW1iZXIoYykpfTtNQS5wcm90b3R5cGUud2c9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVBiKGZ1bmN0aW9uKCl7YmQoZnVuY3Rpb24oKXthKEUoNSksYi5ldmVudERhdGEpfSl9KTt0aGlzLkg/YygpOnRoaXMuUi5wdXNoKGMpfTt2YXIgUUE9ZnVuY3Rpb24oYSl7YS5OKys7cmV0dXJuIFBiKGZ1bmN0aW9uKCl7YS5LKys7YS5aJiZhLks+PWEuTiYmUEEoYSl9KX0sUkE9ZnVuY3Rpb24oYSl7YS5aPSEwO2EuSz49YS5OJiZQQShhKX07ZnVuY3Rpb24gU0EoKXtyZXR1cm4gQVtUQSgpXX0KZnVuY3Rpb24gVEEoKXtyZXR1cm4gQS5Hb29nbGVBbmFseXRpY3NPYmplY3R8fCJnYSJ9dmFyIFdBPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07ZnVuY3Rpb24gWEEoKXthOnt2YXIgYT1FKDUpO319CmZ1bmN0aW9uIFlBKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9U0EoKSxkPWMmJmMuZ2V0QnlOYW1lJiZjLmdldEJ5TmFtZShhKTtpZihkKXt2YXIgZT1kLmdldCgic2VuZEhpdFRhc2siKTtkLnNldCgic2VuZEhpdFRhc2siLGZ1bmN0aW9uKGYpe3ZhciBnPWYuZ2V0KCJoaXRQYXlsb2FkIiksaD1mLmdldCgiaGl0Q2FsbGJhY2siKSxsPWcuaW5kZXhPZigiJnRpZD0iK2IpPDA7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLnJlcGxhY2UoLyZ0aWQ9VUEtWzAtOV0rLVswLTldKy8sIiZ0aWQ9IitiKSwhMCksZi5zZXQoImhpdENhbGxiYWNrIix2b2lkIDAsITApKTtlKGYpO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZywhMCksZi5zZXQoImhpdENhbGxiYWNrIixoLCEwKSxmLnNldCgiX3hfMTkiLHZvaWQgMCwhMCksZShmKSl9KX19fTt2YXIgYUI9WyJlcyIsIjEiXSxiQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5ldmVudERhdGE9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjO3ZhciBkPWIuZXZlbnRJZCxlPWIudGY7aWYoYS5ldmVudERhdGFbZF0pe3ZhciBmPVtdO2EuSFtkXXx8Zi5wdXNoKGFCKTtmLnB1c2guYXBwbHkoZix3KGEuZXZlbnREYXRhW2RdKSk7ZSYmKGEuSFtkXT0hMCk7Yz1mfWVsc2UgYz1bXTtyZXR1cm4gY30pfSxjQjtmdW5jdGlvbiBkQihhLGIpe3ZhciBjO2lmKChjPWNCKSE9bnVsbCYmZm4uTil7dmFyIGQ9Yy5ldmVudERhdGEsZTtlPWIubWF0Y2goL14oZ3RtfGd0YWcpXC4vKT9lbmNvZGVVUklDb21wb25lbnQoYik6IioiO2RbYV09W1siZSIsZV0sWyJlaWQiLFN0cmluZyhhKV1dO2d6KCk7ZXooYSl9fTt2YXIgZUI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsidHIiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsidGkiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sZkI7CmZ1bmN0aW9uIGdCKGEsYixjKXtmQnx8KGZCPW5ldyBlQik7dmFyIGQ9ZkI7aWYoZm4uTiYmYil7dmFyIGU9ZG4oYik7ZC5IW2FdPWQuSFthXXx8W107ZC5IW2FdLnB1c2goYytlKTt2YXIgZj1iW0dmLlliXTtpZighZil0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGc9KFF6W2ZdPyIxIjoiMiIpK2U7ZC5LW2FdPWQuS1thXXx8W107ZC5LW2FdLnB1c2goZyk7Z3ooKTtleihhKX19O2Z1bmN0aW9uIGhCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDAsYSxiLGMpfWZ1bmN0aW9uIGpCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMCxhKX1mdW5jdGlvbiBrQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigxLGEsYixjKX1mdW5jdGlvbiBsQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDEsYSl9dmFyIG1CPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5IPXt9fSxuQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGFpbmVyW2JdO2N8fChjPXtfZW50aXR5OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX0sX2V2ZW50OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX19LGEuY29udGFpbmVyW2JdPWMpO3JldHVybiBjfTsKbUIucHJvdG90eXBlLmFkZFJlc3RyaWN0aW9uPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKCFkfHwhdGhpcy5IW2JdKXt2YXIgZT1uQih0aGlzLGIpO2E9PT0wP2Q/ZS5fZW50aXR5LmV4dGVybmFsLnB1c2goYyk6ZS5fZW50aXR5LmludGVybmFsLnB1c2goYyk6YT09PTEmJihkP2UuX2V2ZW50LmV4dGVybmFsLnB1c2goYyk6ZS5fZXZlbnQuaW50ZXJuYWwucHVzaChjKSl9fTsKbUIucHJvdG90eXBlLmdldFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYik7aWYoYT09PTApe3ZhciBkLGU7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGU9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdKSl9aWYoYT09PTEpe3ZhciBmLGc7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihmPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zi5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZz1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmcuZXh0ZXJuYWwpfHxbXSkpfXJldHVybltdfTsKbUIucHJvdG90eXBlLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKSxkLGU7cmV0dXJuIGE9PT0wPyhjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmV4dGVybmFsKXx8W106KGM9PW51bGw/dm9pZCAwOihlPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdfTttQi5wcm90b3R5cGUucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSl7dmFyIGI9bkIodGhpcyxhKTtiLl9ldmVudCYmKGIuX2V2ZW50LmV4dGVybmFsPVtdKTtiLl9lbnRpdHkmJihiLl9lbnRpdHkuZXh0ZXJuYWw9W10pO3RoaXMuSFthXT0hMH07ZnVuY3Rpb24gaUIoKXtyZXR1cm4ga2ooInIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtQn0pfTtmdW5jdGlvbiBvQihhLGIsYyxkKXt2YXIgZT1jQS50YWdzW2FdLGY9cEIoYSxiLGMsZCk7aWYoIWYpcmV0dXJuIG51bGw7dmFyIGc9WnooZSxjKTtpZihnJiZnLmxlbmd0aCl7dmFyIGg9Z1swXTtmPW9CKGguaW5kZXgse29uU3VjY2VzczpmLG9uRmFpbHVyZTpoLmJvPT09MT9iLnRlcm1pbmF0ZTpmLHRlcm1pbmF0ZTpiLnRlcm1pbmF0ZX0sYyxkKX1yZXR1cm4gZn0KZnVuY3Rpb24gcEIoYSxiLGMsZCl7ZnVuY3Rpb24gZSgpe2Z1bmN0aW9uIHkoKXtpbSgzKTt2YXIgUz1OYigpLU47SkEoMSxhLGYuZ2V0TmFtZSgpKTtnQihjLmlkLGcsIjciKTtPQShjLmxkLEQsImV4Y2VwdGlvbiIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudWopO0l8fChJPSEwLGwoKSl9aWYoZi5JYVtHZi5PcV0pbCgpO2Vsc2V7dmFyIHo9YUEoZixjKTtpZih6IT1udWxsKWZvcih2YXIgQz0wO0M8ei5sZW5ndGg7QysrKWlmKCFYbyh6W0NdKSl7bCgpO3JldHVybn12YXIgRD1OQShjLmxkLGYuTyxmLnRhZ0lkLGYuZ2V0TWV0YWRhdGEoYykpLEk9ITEsRz17dnRwX2d0bU9uU3VjY2VzczpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjUiKTtPQShjLmxkLEQsInN1Y2Nlc3MiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLndqKTtoKCl9fSx2dHBfZ3RtT25GYWlsdXJlOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNiIpOwpPQShjLmxkLEQsImZhaWx1cmUiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnZqKTtsKCl9fX07Ry52dHBfZ3RtRXZlbnRJZD1jLmlkO2MucHJpb3JpdHlJZCYmKEcudnRwX2d0bVByaW9yaXR5SWQ9Yy5wcmlvcml0eUlkKTtnQihjLmlkLGcsIjEiKTtmbi5IJiZFeihjLGcpO3ZhciBOPU5iKCk7dHJ5e2YuZXZhbHVhdGUoYyxkLEcpfWNhdGNoKFMpe3koUyl9Zm4uSCYmRnooYyxnLEl5LlguQ24pfX12YXIgZj1jQS50YWdzW2FdLGc9Zi5GZygpLGg9Yi5vblN1Y2Nlc3MsbD1iLm9uRmFpbHVyZSxuPWIudGVybWluYXRlO2lmKGMuaXNCbG9ja2VkKGcpKXJldHVybiBudWxsO3ZhciBwPSR6KGYsYyk7aWYocCYmcC5sZW5ndGgpe3ZhciBxPXBbMF0scj1vQihxLmluZGV4LHtvblN1Y2Nlc3M6aCxvbkZhaWx1cmU6bCx0ZXJtaW5hdGU6bn0sYyxkKTtpZighcilyZXR1cm4gbnVsbDtoPXI7bD1xLmJvPT09Mj9uOnJ9aWYoZi5JYVtHZi5rbl18fGYuSWFbR2YuUXFdKXt2YXIgdD1mLklhW0dmLmtuXT8KY0Eudms6Yy52ayx1PWgsdj1sO2lmKCF0W2FdKXt2YXIgeD1xQihhLHQsUGIoZSkpO2g9eC5vblN1Y2Nlc3M7bD14Lm9uRmFpbHVyZX1yZXR1cm4gZnVuY3Rpb24oKXt0W2FdKHUsdil9fXJldHVybiBlfWZ1bmN0aW9uIHFCKGEsYixjKXt2YXIgZD1bXSxlPVtdO2JbYV09ckIoZCxlLGMpO3JldHVybntvblN1Y2Nlc3M6ZnVuY3Rpb24oKXtiW2FdPXNCO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl0oKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7YlthXT10Qjtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyllW2ZdKCl9fX1mdW5jdGlvbiByQihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQsZSl7YS5wdXNoKGQpO2IucHVzaChlKTtjKCl9fWZ1bmN0aW9uIHNCKGEpe2EoKX1mdW5jdGlvbiB0QihhLGIpe2IoKX07dmFyIHdCPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGNBLnRhZ3MubGVuZ3RoO2QrKylpZihhW2RdKXt2YXIgZT1jQS50YWdzW2RdO3ZhciBmPVFBKGIubGQpO3RyeXt2YXIgZz1vQihkLHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6Zix0ZXJtaW5hdGU6Zn0sYixkKTtpZihnKXt2YXIgaD1ReltlLk9dO2MucHVzaCh7Tm86ZCxwcmlvcml0eU92ZXJyaWRlOihoP2gucHJpb3JpdHlPdmVycmlkZXx8MDowKXx8S0EoZS5PLDEpfHwwLGV4ZWN1dGU6Z30pfWVsc2UgdUIoZCxiKSxmKCl9Y2F0Y2gobil7ZigpfX1jLnNvcnQodkIpO2Zvcih2YXIgbD0wO2w8Yy5sZW5ndGg7bCsrKWNbbF0uZXhlY3V0ZSgpO3JldHVybiBjLmxlbmd0aD4wfTsKZnVuY3Rpb24geEIoYSxiKXtpZighSEEpcmV0dXJuITE7dmFyIGM9YVsiZ3RtLnRyaWdnZXJzIl0mJlN0cmluZyhhWyJndG0udHJpZ2dlcnMiXSksZD1JQShhLmV2ZW50LGM/U3RyaW5nKGMpLnNwbGl0KCIsIik6W10pO2lmKCFkLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9UUEoYik7dHJ5e2RbZV0oYSxmKX1jYXRjaChnKXtmKCl9fXJldHVybiEwfWZ1bmN0aW9uIHZCKGEsYil7dmFyIGMsZD1iLnByaW9yaXR5T3ZlcnJpZGUsZT1hLnByaW9yaXR5T3ZlcnJpZGU7Yz1kPmU/MTpkPGU/LTE6MDt2YXIgZjtpZihjIT09MClmPWM7ZWxzZXt2YXIgZz1hLk5vLGg9Yi5ObztmPWc+aD8xOmc8aD8tMTowfXJldHVybiBmfQpmdW5jdGlvbiB1QihhLGIpe2lmKGZuLk4pe3ZhciBjPWZ1bmN0aW9uKGQpe3ZhciBlPWIuaXNCbG9ja2VkKGNBLnRhZ3NbZF0uRmcoKSk/IjMiOiI0IixmPVp6KGNBLnRhZ3NbZF0sYik7ZiYmZi5sZW5ndGgmJmMoZlswXS5pbmRleCk7Z0IoYi5pZCxjQS50YWdzW2RdLkZnKCksZSk7dmFyIGc9JHooY0EudGFnc1tkXSxiKTtnJiZnLmxlbmd0aCYmYyhnWzBdLmluZGV4KX07YyhhKX19dmFyIEhBO2Z1bmN0aW9uIHlCKCl7SEF8fChIQT1uZXcgR0EpO3JldHVybiBIQX0KZnVuY3Rpb24gekIoYSl7dmFyIGI9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPWFbImd0bS5wcmlvcml0eUlkIl0sZD1hWyJndG0ucHJpb3JpdHlRdWV1ZSJdLGU9YS5ldmVudDtmbi5IJiZ2eihiLGUpO2lmKGU9PT0iZ3RtLmpzIil7aWYoJGsoMTMpKXJldHVybiExO1prKDEzLCEwKX12YXIgZj0hMSxnPWxCKCksaD1FZChhLG51bGwpO2lmKCFnLmV2ZXJ5KGZ1bmN0aW9uKHUpe3JldHVybiB1KHtvcmlnaW5hbEV2ZW50RGF0YTpofSl9KSl7aWYoZSE9PSJndG0uanMiJiZlIT09Imd0bS5pbml0IiYmZSE9PSJndG0uaW5pdF9jb25zZW50IilyZXR1cm4hMTtmPSEwfWRCKGIsZSk7dmFyIGw9YS5ldmVudENhbGxiYWNrLG49YS5ldmVudFRpbWVvdXQscD17aWQ6Yixwcmlvcml0eUlkOmMscHJpb3JpdHlRdWV1ZTpkLG5hbWU6ZSxpc0Jsb2NrZWQ6QUIoaCxmKSx2azpbXSxsb2dNYWNyb0Vycm9yOmZ1bmN0aW9uKHUsdix4KXtQKDYpO2ltKDQpO0pBKDIsdix4KX0sY2FjaGVkTW9kZWxWYWx1ZXM6QkIoKSwKbGQ6bmV3IE1BKGZ1bmN0aW9uKCl7Zm4uSCYmeXooYixlKTtGeSg1LGUpO2wmJmwuYXBwbHkobCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSxuKSxvcmlnaW5hbEV2ZW50RGF0YTpofTtmbi5IJiZDeihwLmlkKTt2YXIgcT1FQShwKTtmbi5IJiZEeihwLmlkKTtGeSgyLGUpO2NBLmdldFJ1bGVzKCk7ZiYmKHE9Q0IocSkpO2ZuLkgmJnd6KGIpO3ZhciByPXdCKHEscCk7ciYmRnkoNCxlKTt2YXIgdD14QihhLHAubGQpO1JBKHAubGQpO2UhPT0iZ3RtLmpzIiYmZSE9PSJndG0uc3luYyJ8fFhBKCk7cmV0dXJuIERCKHEscil8fHR9CmZ1bmN0aW9uIEJCKCl7dmFyIGE9e307YS5ldmVudD12QSgiZXZlbnQiLDEpO2EuZWNvbW1lcmNlPXZBKCJlY29tbWVyY2UiLDEpO2EuZ3RtPXZBKCJndG0iKTthLmV2ZW50TW9kZWw9dkEoImV2ZW50TW9kZWwiKTtyZXR1cm4gYX0KZnVuY3Rpb24gQUIoYSxiKXt2YXIgYz1BQSgpO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1jKGQpO2lmKGUpcmV0dXJuITA7dmFyIGY9ZCYmZFtHZi5ZYl07aWYoIWZ8fHR5cGVvZiBmIT09InN0cmluZyIpcmV0dXJuITA7Zj1mLnJlcGxhY2UoL15fKi8sIiIpO3ZhciBnPWpCKCksaD1hO2ImJihoPUVkKGEsbnVsbCksaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7Zm9yKHZhciBsPSExLG49YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ZdfHxbXSxwPW0oZykscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWU7dHJ5e3Ioe2VudGl0eUlkOmYsc2VjdXJpdHlHcm91cHM6bixvcmlnaW5hbEV2ZW50RGF0YTpofSl8fChsPSEwKX1jYXRjaCh0KXtsPSEwfX1yZXR1cm4gbHx8ZX19CmZ1bmN0aW9uIENCKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSl7dmFyIGQ9Y0EudGFnc1tjXS5PO2lmKEJqW2RdfHxjQS50YWdzW2NdLklhW0dmLlJxXSE9PXZvaWQgMHx8S0EoZCwyKSliW2NdPSEwfXJldHVybiBifWZ1bmN0aW9uIERCKGEsYil7aWYoIWIpcmV0dXJuIGI7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmY0EudGFnc1tjXSYmIUNqW2NBLnRhZ3NbY10uT10pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBFQj1OZig2MSwxRTMpLEZCPU5mKDY4LDJFMyksWm89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXTtmdW5jdGlvbiBHQihhLGIpe2lmKGEpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KSxkO2EhPT0yfHwoKGQ9SEIoKSk9PW51bGw/dm9pZCAwOmQuc3RhdHVzKSE9PTN8fGIhPT12b2lkIDAmJmI8PUZCfHwoYT0zLGMuZGw9Yj9NYXRoLmZsb29yKGIvMUUzKTp2b2lkIDApO2Mucz1hO0lCKGMpfX1mdW5jdGlvbiBJQihhKXtpZihhLnMpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGM9e3N0YXR1czphLnMsZXhwaXJlczpEYXRlLm5vdygpKzg2NEU1fTthLmRsIT09dm9pZCAwJiYoYy5kZWxheT1hLmRsKTtrcigiZ3RnX2xvYWRfc3RhdHVzIixjKX07YnAoZnVuY3Rpb24oKXtpZihZbygpKWIoKTtlbHNlIGZvcih2YXIgYz1QYihiKSxkPW0oWm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUlsKGMsZS52YWx1ZSl9LFpvKX19CmZ1bmN0aW9uIEpCKCl7dmFyIGE9S0IoITApO3JldHVybiBhPyhMQihhLnN0YXR1cyxhLmRlbGF5KSwhMSk6ITB9ZnVuY3Rpb24gS0IoYSl7YT1hPT09dm9pZCAwPyExOmE7aWYoYWsoKSl7dmFyIGI9bnIoImd0Z19sb2FkX3N0YXR1cyIpLGM9Yi52YWx1ZSxkPWEmJkFiKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcykmJihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpPERhdGUubm93KCkrMzZFNTtpZihiLmVycm9yPT09MCYmQWIoYz09bnVsbD92b2lkIDA6Yy5zdGF0dXMpJiYhZCl7dmFyIGU9e3N0YXR1czpjLnN0YXR1c307KGM9PW51bGw/dm9pZCAwOmMuZGVsYXkpIT09dm9pZCAwJiYoZS5kZWxheT1jLmRlbGF5KTtyZXR1cm4gZX1yZXR1cm4gSEIoKX19ZnVuY3Rpb24gTEIoYSxiKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yy5zPWE7YiE9PXZvaWQgMCYmKGMuZGw9Yil9CmZ1bmN0aW9uIEhCKCl7dmFyIGE9bWooImd0aCIpO2lmKGEhPW51bGwmJmEucyl7dmFyIGI9e3N0YXR1czphLnN9O2EuZGwhPT12b2lkIDAmJihiLmRlbGF5PWEuZGwpO3JldHVybiBifX1mdW5jdGlvbiBNQigpe3ZhciBhOygoYT1IQigpKT09bnVsbD92b2lkIDA6YS5zdGF0dXMpPT09MSYmR0IoMyl9ZnVuY3Rpb24gTkIoKXtpZihKQigpKXt2YXIgYT1EYXRlLm5vdygpO25qKCJndGgiLHtsOmZ1bmN0aW9uKCl7R0IoMixEYXRlLm5vdygpLWEpfSxzOjF9KTt2YXIgYj1FKDUpLGM9U2IoYiwiR1RNLSIpPyIvZ3RtLmpzIjoiL2d0YWcvanMiLGQ9Imh0dHBzOi8vIitFKDMpK2MrIj9pZD0iK2IrIiZndGdfaGVhbHRoPTEiO1VjKGQsTUIsTUIpO0Euc2V0VGltZW91dChNQixFQil9fTtmdW5jdGlvbiBPQigpe3lCKCkuYWRkTGlzdGVuZXIoImd0bS5pbml0IixmdW5jdGlvbihhLGIpe1prKDI2LCEwKTtNKDU1NikmJmFrKCkmJiFJZig0NSkmJihmby5IW2NvLmlhLlpiXT1iby5NYS5MaCk7aWYoYWsoKSl7dmFyIGM7Yz1sbyhjby5pYS5aYik7Z28oYyk/aW8oYyxOQik6TkIoKX10byghMSwhMCk7YigpfSl9O2Z1bmN0aW9uIFBCKCl7aWYobWooInBzY2RsIikhPT12b2lkIDApbm0oam0uYmEub2kpPT09dm9pZCAwJiZtbShqbS5iYS5vaSxtaigicHNjZGwiKSk7ZWxzZXt2YXIgYT1mdW5jdGlvbihjKXtuaigicHNjZGwiLGMpO21tKGptLmJhLm9pLGMpfSxiPWZ1bmN0aW9uKCl7YSgiZXJyb3IiKX07dHJ5e0hjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWw/KGEoInBlbmRpbmciKSxIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsLmdldFZhbHVlKCkudGhlbihhKS5jYXRjaChiKSk6YSgibm9hcGkiKX1jYXRjaChjKXtiKGMpfX19O3ZhciBSQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5yZWFkeT0hMTt0aGlzLks9MDt0aGlzLkg9W107dmFyIGI9QTtpZihCLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiJiYhQi5jcmVhdGVFdmVudE9iamVjdHx8Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uUmVhZHkoKTtlbHNleyRjKEIsIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pOyRjKEIsInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pO2lmKEIuY3JlYXRlRXZlbnRPYmplY3QmJkIuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKXt2YXIgYz0hMDt0cnl7Yz0hYi5mcmFtZUVsZW1lbnR9Y2F0Y2goZCl7fWMmJlFCKHRoaXMpfSRjKGIsImxvYWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pfX07UkIucHJvdG90eXBlLmlzUmVhZHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkeX07ClJCLnByb3RvdHlwZS5vblJlYWR5PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLnJlYWR5KXt2YXIgYj1CLmNyZWF0ZUV2ZW50T2JqZWN0LGM9Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIixkPUIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSI7aWYoIWF8fGEudHlwZSE9PSJyZWFkeXN0YXRlY2hhbmdlInx8Y3x8IWImJmQpe3RoaXMucmVhZHk9ITA7Zm9yKHZhciBlPTA7ZTx0aGlzLkgubGVuZ3RoO2UrKyliZCh0aGlzLkhbZV0pfXRoaXMuSC5wdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPTA7ZzxmLmxlbmd0aDtnKyspYmQoZltnXSk7cmV0dXJuIDB9fX07CnZhciBRQj1mdW5jdGlvbihhKXtpZighYS5yZWFkeSYmYS5LPDE0MCl7YS5LKys7dHJ5e3ZhciBiLGM7KGM9KGI9Qi5kb2N1bWVudEVsZW1lbnQpLmRvU2Nyb2xsKT09bnVsbHx8Yy5jYWxsKGIsImxlZnQiKTthLm9uUmVhZHkoKX1jYXRjaChkKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBRQihhKX0sNTApfX19LFNCO2Z1bmN0aW9uIFRCKCl7U0J8fChTQj1uZXcgUkIpfWZ1bmN0aW9uIFVCKCl7VEIoKTt2YXIgYTtyZXR1cm4oYT1TQik9PW51bGw/dm9pZCAwOmEuaXNSZWFkeSgpfWZ1bmN0aW9uIFZCKGEpe1RCKCk7dmFyIGI7KGI9U0IpIT1udWxsJiYoYi5yZWFkeT9iZChhKTpiLkgucHVzaChhKSl9O3ZhciBYQj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9V0IsZTtpZigoZT1kLkgpPT1udWxsfHwhZS5Pcil7dmFyIGY9T2JqZWN0LmtleXMoYikubGVuZ3RoPjA/MjoxLGcsaCxsPShjPT1udWxsP3ZvaWQgMDooaD1jLm9yaWdpbmF0aW5nRW50aXR5KT09bnVsbD92b2lkIDA6aC5vcmlnaW5Db250YWluZXJJZCl8fCIiO2c9bD9TYihsLCJHVE0tIik/MzoyOjE7aWYoIWEpZC5IPXt0eXBlOmYsc291cmNlOmcscGFyYW1zOmJ9O2Vsc2UgaWYoZC5IKXtQKDE4NCk7dmFyIG49ITE7ZC5ILnNvdXJjZT09PWd8fGQuSC5zb3VyY2UhPT0zJiZnIT09M3x8KFVtKCJpZGNzIiwiMSIpLG49ITApO2QuSC50eXBlIT09MiYmZiE9PTJ8fFAoMTg2KTt2YXIgcDtpZihwPWQuSC50eXBlPT09MiYmZj09PTIpYTp7dmFyIHE9ZC5ILnBhcmFtcyxyPU9iamVjdC5rZXlzKHEpLHQ9T2JqZWN0LmtleXMoYik7aWYoci5sZW5ndGghPT10Lmxlbmd0aClwPSEwO2Vsc2V7Zm9yKHZhciB1PW0ociksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO2lmKCFiLmhhc093blByb3BlcnR5KHgpfHxxW3hdIT09Ylt4XSl7cD0hMDticmVhayBhfX1wPSExfX1wJiYoVW0oImlkY2MiLCIxIiksbj0hMCk7biYmKHRvKCksZC5ILk9yPSEwKX19fSxXQj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwfTt2YXIgWkI9ZnVuY3Rpb24oYSl7dmFyIGI9WUI7KCFmbi5LfHxTYihFKDUpLCJHVE0tIik/MDphPT09dm9pZCAwKSYmYi5IPT09MCYmKFVtKCJtY2MiLCIxIiksYi5IPTEpfSxZQj1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO1VtKCJuY2MiLGZ1bmN0aW9uKCl7aWYoSWYoNDUpJiZhLkghPT0yKXJldHVybiIxIn0pfTt2YXIgJEI9L14oPzpBV3xEQ3xHfEdGfEdUfEhBfE1DfFVBKSQvLGFDPS9ccy87CmZ1bmN0aW9uIGJDKGEsYil7aWYoemIoYSkpe2E9TGIoYSk7dmFyIGM9YS5pbmRleE9mKCItIik7aWYoIShjPDApKXt2YXIgZD1hLnN1YnN0cmluZygwLGMpO2lmKCRCLnRlc3QoZCkpe3ZhciBlPWEuc3Vic3RyaW5nKGMrMSksZjtpZihiKXt2YXIgZz1mdW5jdGlvbihuKXt2YXIgcD1uLmluZGV4T2YoIi8iKTtyZXR1cm4gcDwwP1tuXTpbbi5zdWJzdHJpbmcoMCxwKSxuLnN1YnN0cmluZyhwKzEpXX07Zj1nKGUpO2lmKGQ9PT0iREMiJiZmLmxlbmd0aD09PTIpe3ZhciBoPWcoZlsxXSk7aC5sZW5ndGg9PT0yJiYoZlsxXT1oWzBdLGYucHVzaChoWzFdKSl9fWVsc2V7Zj1lLnNwbGl0KCIvIik7Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDtsKyspaWYoIWZbbF18fGFDLnRlc3QoZltsXSkmJihkIT09IkFXInx8bCE9PTEpKXJldHVybn1yZXR1cm57aWQ6YSxwcmVmaXg6ZCxkZXN0aW5hdGlvbklkOmQrIi0iK2ZbMF0saWRzOmYsSmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZCE9PXRoaXMuZGVzdGluYXRpb25JZH19fX19fQpmdW5jdGlvbiBjQyhhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxhLmxlbmd0aDsrK2Qpe3ZhciBlPWJDKGFbZF0sYik7ZSYmKGNbZS5pZF09ZSl9dmFyIGY9W10sZztmb3IoZyBpbiBjKWlmKGMuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWNbZ107aC5wcmVmaXg9PT0iQVciJiZoLmlkc1tkQ1sxXV0mJmYucHVzaChoLmRlc3RpbmF0aW9uSWQpfWZvcih2YXIgbD0wO2w8Zi5sZW5ndGg7KytsKWRlbGV0ZSBjW2ZbbF1dO2Zvcih2YXIgbj1bXSxwPW0oT2JqZWN0LmtleXMoYykpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKW4ucHVzaChjW3EudmFsdWVdKTtyZXR1cm4gbn12YXIgZUM9e30sZEM9KGVDWzBdPTAsZUNbMV09MSxlQ1syXT0yLGVDWzNdPTAsZUNbNF09MSxlQ1s1XT0wLGVDWzZdPTAsZUNbN109MCxlQyk7dmFyIGZDPXtpbml0aWFsaXplZDoxMSxjb21wbGV0ZToxMixpbnRlcmFjdGl2ZToxM30sZ0M9e30saEM9T2JqZWN0LmZyZWV6ZSgoZ0NbRi5ELlRkXT0hMCxnQykpLGlDPWZ1bmN0aW9uKCl7dGhpcy5SPU5mKDM0LDUwMCk7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9dm9pZCAwfSxqQz1mdW5jdGlvbihhLGIsYyl7aWYoYy5sZW5ndGgmJmZuLkspe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTt2YXIgZTsoZT1hLk4pW2JdIT1udWxsfHwoZVtiXT1bXSk7dmFyIGY9Yy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWEuTltiXS5pbmNsdWRlcyhnKX0pO2EuSFtiXS5wdXNoLmFwcGx5KGEuSFtiXSx3KGYpKTthLk5bYl0ucHVzaC5hcHBseShhLk5bYl0sdyhmKSk7IWEuSyYmZi5sZW5ndGg+MCYmKFZtKCJ0ZGMiLCEwKSxhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG8oKTthLkg9e307YS5LPXZvaWQgMH0sYS5SKSl9fTsKaUMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO1VtKCJ0ZGMiLGZ1bmN0aW9uKCl7YS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKTt2YXIgYj1bXSxjO2ZvcihjIGluIGEuSClhLkguaGFzT3duUHJvcGVydHkoYykmJmIucHVzaChjKyIqIithLkhbY10uam9pbigiLiIpKTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIhIik6dm9pZCAwfSwhMSl9Owp2YXIga0M9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09ITApO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPSEwKTtyZXR1cm4gY30sbEM9ZnVuY3Rpb24oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/e306ZDtlPWU9PT12b2lkIDA/IiI6ZTtpZihiPT09YylyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbih0LHUpe3ZhciB2O0FkKHUpPT09Im9iamVjdCI/dj11W3RdOkFkKHUpPT09ImFycmF5IiYmKHY9dVt0XSk7cmV0dXJuIHY9PT12b2lkIDA/aENbdF06dn0sZz1rQyhiLGMpLGg7Zm9yKGggaW4gZylpZihnLmhhc093blByb3BlcnR5KGgpJiZoIT09Ri5ELlhiKXt2YXIgbD0oZT9lKyIuIjoiIikraCxuPWYoaCxiKSxwPWYoaCxjKSxxPUFkKG4pPT09Im9iamVjdCJ8fEFkKG4pPT09ImFycmF5IixyPUFkKHApPT09Im9iamVjdCJ8fEFkKHApPT09ImFycmF5IjtpZihxJiZyKWxDKGEsbixwLGQsbCk7CmVsc2UgaWYocXx8cnx8biE9PXApZFtsXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LG1DPW5ldyBpQzt2YXIgbkM9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5LPU5iKCk7dGhpcy5IPWI7dGhpcy5hcmdzPWM7dGhpcy5tZXNzYWdlQ29udGV4dD1kO3RoaXMudHlwZT1hfSxvQz1mdW5jdGlvbigpe3RoaXMuV2E9e307dGhpcy5pYj17fTt0aGlzLks9e307dGhpcy5OPW51bGw7dGhpcy5oYj17fTt0aGlzLkg9ITE7dGhpcy5zdGF0dXM9MX07ZnVuY3Rpb24gcEMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoInNldCIsYSk6cUMoInNldCIsYSxiKX1mdW5jdGlvbiByQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygiY29uZmlnIixhKTpxQygiY29uZmlnIixhLGIpfWZ1bmN0aW9uIHNDKGEsYixjKXtjPWN8fHt9O2NbRi5ELlhiXT1hO3JldHVybiBxQygiZXZlbnQiLGIsYyl9ZnVuY3Rpb24gcUMoKXtyZXR1cm4gYXJndW1lbnRzfTt2YXIgdEM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGwsbixwLHEscil7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT1kO3RoaXMuV2E9ZTt0aGlzLmhiPWY7dGhpcy5IYz1nO3RoaXMuQmc9aDt0aGlzLmliPWw7dGhpcy5ldmVudE1ldGFkYXRhPW47dGhpcy5vblN1Y2Nlc3M9cDt0aGlzLm9uRmFpbHVyZT1xO3RoaXMuaXNHdG1FdmVudD1yfSx1Qz1mdW5jdGlvbihhKXt2YXIgYj17b25TdWNjZXNzOnhiLG9uRmFpbHVyZTp4Yn07Yj1iPT09dm9pZCAwP3t9OmI7dmFyIGMsZCxlLGYsZyxoLGwsbixwLHEscix0LHUsdix4LHkseixDLEQsSSxHLE4sUyxXLGVhLGphO3JldHVybiBuZXcgdEMoKHY9KGM9Yik9PW51bGw/dm9pZCAwOmMuZXZlbnRJZCkhPW51bGw/djphLmV2ZW50SWQsKHg9KGQ9Yik9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZCkhPW51bGw/eDphLnByaW9yaXR5SWQsKHk9KGU9Yik9PW51bGw/dm9pZCAwOmUucHJpb3JpdHlRdWV1ZSkhPQpudWxsP3k6YS5wcmlvcml0eVF1ZXVlLCh6PShmPWIpPT1udWxsP3ZvaWQgMDpmLkVhKSE9bnVsbD96OmEuRWEsKEM9KGc9Yik9PW51bGw/dm9pZCAwOmcuV2EpIT1udWxsP0M6YS5XYSwoRD0oaD1iKT09bnVsbD92b2lkIDA6aC5oYikhPW51bGw/RDphLmhiLChJPShsPWIpPT1udWxsP3ZvaWQgMDpsLkhjKSE9bnVsbD9JOmEuSGMsKEc9KG49Yik9PW51bGw/dm9pZCAwOm4uQmcpIT1udWxsP0c6YS5CZywoTj0ocD1iKT09bnVsbD92b2lkIDA6cC5pYikhPW51bGw/TjphLmliLChTPShxPWIpPT1udWxsP3ZvaWQgMDpxLmV2ZW50TWV0YWRhdGEpIT1udWxsP1M6YS5ldmVudE1ldGFkYXRhLChXPShyPWIpPT1udWxsP3ZvaWQgMDpyLm9uU3VjY2VzcykhPW51bGw/VzphLm9uU3VjY2VzcywoZWE9KHQ9Yik9PW51bGw/dm9pZCAwOnQub25GYWlsdXJlKSE9bnVsbD9lYTphLm9uRmFpbHVyZSwoamE9KHU9Yik9PW51bGw/dm9pZCAwOnUuaXNHdG1FdmVudCkhPW51bGw/amE6YS5pc0d0bUV2ZW50KX0sCnZDPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107c3dpdGNoKGIpe2Nhc2UgMzpjLnB1c2goYS5FYSk7Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5FYSk7YnJlYWs7Y2FzZSAxOmMucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDQ6Yy5wdXNoKGEuRWEpLGMucHVzaChhLldhKSxjLnB1c2goYS5oYiksYy5wdXNoKGEuSGMpfXJldHVybiBjfSxPPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1tKHZDKGEsZD09PXZvaWQgMD8zOmQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnW2JdIT09dm9pZCAwKXJldHVybiBnW2JdfXJldHVybiBjfSx3Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz12QyhhLDQpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlmb3IodmFyIGY9T2JqZWN0LmtleXMoZS52YWx1ZSksCmc9bShmKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSliW2gudmFsdWVdPTE7cmV0dXJuIE9iamVjdC5rZXlzKGIpfTt0Qy5wcm90b3R5cGUuZ2V0TWVyZ2VkVmFsdWVzPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/MzpiO3ZhciBkPXt9LGU9ITEsZj1mdW5jdGlvbihuKXtDZChuKSYmR2IobixmdW5jdGlvbihwLHEpe2U9ITA7ZFtwXT1xfSl9O2MmJmYoYyk7dmFyIGc9dkModGhpcyxiKTtnLnJldmVyc2UoKTtmb3IodmFyIGg9bShnKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSlmKGwudmFsdWVbYV0pO3JldHVybiBlP2Q6dm9pZCAwfTsKdmFyIHhDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bRi5ELktmLEYuRC5HZixGLkQuSGYsRi5ELklmLEYuRC5KZixGLkQuTGYsRi5ELk1mXSxjPXZDKGEsMyksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXtmb3IodmFyIGY9ZS52YWx1ZSxnPXt9LGg9ITEsbD1tKGIpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2ZbcF0hPT12b2lkIDAmJihnW3BdPWZbcF0saD0hMCl9dmFyIHE9aD9nOnZvaWQgMDtpZihxKXJldHVybiBxfXJldHVybnt9fSx5Qz1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT17fTt0aGlzLldhPXt9O3RoaXMuaGI9e307dGhpcy5IYz17fTt0aGlzLkJnPXt9O3RoaXMuaWI9e307dGhpcy5ldmVudE1ldGFkYXRhPXt9O3RoaXMuaXNHdG1FdmVudD0hMTt0aGlzLm9uU3VjY2Vzcz1mdW5jdGlvbigpe307dGhpcy5vbkZhaWx1cmU9CmZ1bmN0aW9uKCl7fX0sekM9ZnVuY3Rpb24oYSxiKXthLkVhPWI7cmV0dXJuIGF9LEFDPWZ1bmN0aW9uKGEsYil7YS5XYT1iO3JldHVybiBhfSxCQz1mdW5jdGlvbihhLGIpe2EuaGI9YjtyZXR1cm4gYX0sQ0M9ZnVuY3Rpb24oYSxiKXthLkhjPWI7cmV0dXJuIGF9LERDPWZ1bmN0aW9uKGEsYil7YS5CZz1iO3JldHVybiBhfSxFQz1mdW5jdGlvbihhLGIpe2EuaWI9YjtyZXR1cm4gYX0sRkM9ZnVuY3Rpb24oYSxiKXthLmV2ZW50TWV0YWRhdGE9Ynx8e307cmV0dXJuIGF9LEdDPWZ1bmN0aW9uKGEsYil7YS5vblN1Y2Nlc3M9YjtyZXR1cm4gYX0sSEM9ZnVuY3Rpb24oYSxiKXthLm9uRmFpbHVyZT1iO3JldHVybiBhfSxJQz1mdW5jdGlvbihhLGIpe2EuaXNHdG1FdmVudD1iO3JldHVybiBhfSxKQz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHRDKGEuZXZlbnRJZCxhLnByaW9yaXR5SWQsYS5wcmlvcml0eVF1ZXVlLGEuRWEsYS5XYSxhLmhiLGEuSGMsYS5CZyxhLmliLGEuZXZlbnRNZXRhZGF0YSwKYS5vblN1Y2Nlc3MsYS5vbkZhaWx1cmUsYS5pc0d0bUV2ZW50KX07ZnVuY3Rpb24gS0MoYSxiKXtHYihhLGZ1bmN0aW9uKGMpe3ZhciBkO2lmKGQ9Yy5jaGFyQXQoMCk9PT0iXyIpe3ZhciBlO2E6c3dpdGNoKGMpe2Nhc2UgRi5ELlZiOmNhc2UgRi5ELlJmOmNhc2UgRi5ELnNoOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZD0hZX1kJiYoYiYmYihjKSxkZWxldGUgYVtjXSl9KX07dmFyIExDPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiZXByIixmLmpvaW4oIi4iKV0pO2QmJmRlbGV0ZSBhLkhbY107cmV0dXJuIGV9KX0sTkM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU1DO2ZuLk4mJmEhPT12b2lkIDAmJihkLkhbYV09ZC5IW2FdfHxbXSxkLkhbYV0ucHVzaChjK2IpLGd6KCksZXooYSkpfSxNQztmdW5jdGlvbiBPQygpe01DfHwoTUM9bmV3IExDKX07dmFyIFBDPWZ1bmN0aW9uKCl7dGhpcy5kZXN0aW5hdGlvbnM9e307dGhpcy5IPXt9O3RoaXMuY29tbWFuZHM9W119LFFDPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF09YS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXXx8bmV3IG9DfSxSQz1mdW5jdGlvbihhLGIsYyxkKXtpZihkLkgpe3ZhciBlPVFDKGEsZC5IKSxmPWUuTjtpZihmKXt2YXIgZz1FZChjLG51bGwpLGg9RWQoZS5XYVtkLkguZGVzdGluYXRpb25JZF0sbnVsbCksbD1FZChlLmhiLG51bGwpLG49RWQoZS5pYixudWxsKSxwPUVkKGEuSCxudWxsKSxxPXt9O2lmKGZuLk4pdHJ5e3E9RWQockEuSCxudWxsKX1jYXRjaCh4KXtQKDcyKX12YXIgcj1kLkgucHJlZml4LHQ9ZnVuY3Rpb24oeCl7dmFyIHk9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeSxyLHgpfSx1PUpDKElDKEhDKEdDKEZDKERDKENDKEVDKEJDKEFDKHpDKG5ldyB5QyhkLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQsCmQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlJZCxkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5UXVldWUpLGcpLGgpLGwpLG4pLHApLHEpLGQubWVzc2FnZUNvbnRleHQuZXZlbnRNZXRhZGF0YSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjIiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcylkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcygpfX0pLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIzIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUpZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUoKX19KSwhIWQubWVzc2FnZUNvbnRleHQuaXNHdG1FdmVudCkpLHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHg9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeCxyLCIxIik7dmFyIHk9ZC5ILmlkLHo9bUM7aWYoZm4uSyYmYj09PUYuRC53YSl7dmFyIEMsRD0oQz1iQyh5KSk9PW51bGw/dm9pZCAwOkMuaWRzO2lmKCEoRCYmRC5sZW5ndGg+CjEpKXt2YXIgST11LkVhW0YuRC5YYl07aWYoIUl8fEk9PT15KXt2YXIgRyxOPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtOLnRkfHwoTi50ZD17fSk7Rz1OLnRkO3ZhciBTPUVkKHUuSGMsbnVsbCk7RWQodS5FYSxTKTt2YXIgVz1bXSxlYTtmb3IoZWEgaW4gRylHLmhhc093blByb3BlcnR5KGVhKSYmbEMoeixHW2VhXSxTKS5sZW5ndGgmJlcucHVzaChlYSk7Vy5sZW5ndGgmJihqQyh6LHksVyksc2IoIlRBR0dJTkciLGZDW0IucmVhZHlTdGF0ZV18fDE0KSk7R1t5XT1TfX19ZihkLkguaWQsYixkLkssdSl9Y2F0Y2goZmEpe3ZhciBqYT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyhqYSxyLCI0Iil9fTtiPT09Imd0YWcuZ2V0Ij92KCk6aW8oZS5SLHYpfX19LFNDPWZ1bmN0aW9uKGEsYil7aWYoYi50eXBlIT09InJlcXVpcmUiKXt2YXIgYz12b2lkIDA7Yi50eXBlPT09ImV2ZW50IiYmKGM9Yi5hcmdzWzFdKTtpZihiLkgpZm9yKHZhciBkPVFDKGEsYi5IKS5LW2IudHlwZV18fApbXSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXShjKTtlbHNlIGZvcih2YXIgZiBpbiBhLmRlc3RpbmF0aW9ucylpZihhLmRlc3RpbmF0aW9ucy5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGc9YS5kZXN0aW5hdGlvbnNbZl07aWYoZyYmZy5LKWZvcih2YXIgaD1nLktbYi50eXBlXXx8W10sbD0wO2w8aC5sZW5ndGg7bCsrKWhbbF0oYyl9fX07UEMucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVFDKHRoaXMsYSk7ZS5zdGF0dXMhPT0zJiYoZS5OPWIsZS5zdGF0dXM9MyxlLlI9bG8oYyksVEModGhpcyxhLGR8fHt9KSx0aGlzLmZsdXNoKCkpfTsKUEMucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PXZvaWQgMCYmKFFDKHRoaXMsYykuc3RhdHVzPT09MSYmKFFDKHRoaXMsYykuc3RhdHVzPTIsdGhpcy5wdXNoKCJyZXF1aXJlIixbe31dLGMse30pKSxRQyh0aGlzLGMpLkgmJihkLmRlZmVycmFibGU9ITEpLGQuZXZlbnRNZXRhZGF0YXx8KGQuZXZlbnRNZXRhZGF0YT17fSksZC5ldmVudE1ldGFkYXRhW0guSi5zZ118fChkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXT1bYy5kZXN0aW5hdGlvbklkXSksZC5ldmVudE1ldGFkYXRhW0guSi5tal18fChkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXT1bYy5pZF0pKTt0aGlzLmNvbW1hbmRzLnB1c2gobmV3IG5DKGEsYyxiLGQpKTtkLmRlZmVycmFibGV8fHRoaXMuZmx1c2goKX07ClBDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcyxjPVtdLGQ9ITEsZT17fTt0aGlzLmNvbW1hbmRzLmxlbmd0aDtlPXtabjp2b2lkIDB9KXt2YXIgZj10aGlzLmNvbW1hbmRzWzBdLGc9Zi5IO2lmKGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZSkhZ3x8UUModGhpcyxnKS5IPyhmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGU9ITEsdGhpcy5jb21tYW5kcy5wdXNoKGYpKTpjLnB1c2goZiksdGhpcy5jb21tYW5kcy5zaGlmdCgpO2Vsc2V7c3dpdGNoKGYudHlwZSl7Y2FzZSAicmVxdWlyZSI6aWYoUUModGhpcyxnKS5zdGF0dXMhPT0zJiYhYSl7dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7cmV0dXJufWJyZWFrO2Nhc2UgInNldCI6dmFyIGg9Zi5hcmdzWzBdO0tDKGgpO1VDKGgpO0diKGgsZnVuY3Rpb24oeCx5KXtFZChWYih4LHkpLGIuSCl9KTtIdShoLCEwKTticmVhaztjYXNlICJldmVudCI6ZS5abj1mLmFyZ3NbMV07dmFyIGw9ClZDKGYuYXJnc1swXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319KGUpKSxuPWxbRi5ELlhiXTtuJiZuIT09Zy5pZHx8SHUobCk7UkModGhpcyxlLlpuLGwsZik7YnJlYWs7Y2FzZSAiZ2V0Ijp2YXIgcD17fSxxPShwW0YuRC5UZl09Zi5hcmdzWzBdLHBbRi5ELlNmXT1mLmFyZ3NbMV0scCk7UkModGhpcyxGLkQuSmIscSxmKTticmVhaztjYXNlICJjb250YWluZXJfY29uZmlnIjp2YXIgcj1RQyh0aGlzLGcpLHQ9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodCwhMCk7ci5IPSEwO0VkKHQsci5oYik7ZD0hMDticmVhaztjYXNlICJkZXN0aW5hdGlvbl9jb25maWciOnZhciB1PVFDKHRoaXMsZyksdj1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh2LCEwKTt1LldhW2cuaWRdfHwodS5XYVtnLmlkXT17fSk7dS5IPSEwO0VkKHYsdS5XYVtnLmlkXSk7ZD0hMDticmVhaztjYXNlICJyZXNldF9jb250YWluZXJfY29uZmlnIjpRQyh0aGlzLGcpLmhiPXt9O2JyZWFrOwpjYXNlICJyZXNldF90YXJnZXRfY29uZmlnIjpRQyh0aGlzLGcpLldhW2cuaWRdPXt9fXRoaXMuY29tbWFuZHMuc2hpZnQoKTtTQyh0aGlzLGYpfX10aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtkJiZ0aGlzLmZsdXNoKCl9O3ZhciBUQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9RWQoYyxudWxsKTtFZChRQyhhLGIpLmliLGQpO1FDKGEsYikuaWI9ZH07ZnVuY3Rpb24gVkMoYSxiKXt2YXIgYz17fTtHYihhLGZ1bmN0aW9uKGQsZSl7RWQoVmIoZCxlKSxjKX0pO0tDKGMsYik7VUMoYyk7cmV0dXJuIGN9CmZ1bmN0aW9uIFVDKGEpe2lmKE0oNjAxKSYmQkEoKSl7Zm9yKHZhciBiPSExLGM9bShuZXcgU2V0KFtGLkQueWMsRi5ELmRkXSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2FbZV0hPT12b2lkIDAmJihiPSEwLGRlbGV0ZSBhW2VdKX1iJiYhYWwoMzUsZnVuY3Rpb24oKXtyZXR1cm4hMX0pJiYoWmsoMzUsITApLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR29vZ2xlIFRhZyBNYW5hZ2VyOiBTZXJ2ZXItc2lkZSBHVE0gcGFyYW1ldGVycyAodHJhbnNwb3J0X3VybC9zZXJ2ZXJfY29udGFpbmVyX3VybCkgYXJlIG5vdCBwZXJtaXR0ZWQgb24gdGhpcyBkb21haW4gYW5kIGhhdmUgYmVlbiBpZ25vcmVkLiIpLFAoMTk3KSl9fTt2YXIgV0M9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFBDO3RoaXMuSz0hMX07V0MucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5ILmZsdXNoKCl9O3ZhciBYQztmdW5jdGlvbiBZQygpe1hDfHwoWEM9bmV3IFdDKTtyZXR1cm4gWEN9ZnVuY3Rpb24gWkMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiYoZS5LJiYoZC5kZWZlcnJhYmxlPSEwKSxlLkgucHVzaCgiZXZlbnQiLFtiLGFdLGYsZCkpfWZ1bmN0aW9uICRDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmZS5ILnB1c2goImdldCIsW2EsYl0sZixkKX1mdW5jdGlvbiBhRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiY29udGFpbmVyX2NvbmZpZyIsW2JdLGUsYyl9CmZ1bmN0aW9uIGJEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJkZXN0aW5hdGlvbl9jb25maWciLFtiXSxlLGMpfWZ1bmN0aW9uIGNEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfY29udGFpbmVyX2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZEQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF90YXJnZXRfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBlRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLmliOnt9fWZ1bmN0aW9uIGZEKGEpe3JldHVybiBZQygpLkguSFthXX1mdW5jdGlvbiBnRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLkg6ITF9O2Z1bmN0aW9uIGhEKGEsYil7YS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLnVuaXF1ZUV2ZW50SWQiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImd0bS51bmlxdWVFdmVudElkIix7dmFsdWU6cmooKX0pO2IuZXZlbnRJZD1hWyJndG0udW5pcXVlRXZlbnRJZCJdO2IucHJpb3JpdHlJZD1hWyJndG0ucHJpb3JpdHlJZCJdO3JldHVybntldmVudElkOmIuZXZlbnRJZCxwcmlvcml0eUlkOmIucHJpb3JpdHlJZH19ZnVuY3Rpb24gaUQoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZSxlPWEmJmFbZF18fGZEKGQpO2lmKGUpcmV0dXJuIGV9fWZ1bmN0aW9uIGpEKGEpe3JldHVybiFhLmlzR3RtRXZlbnR8fGEuZXZlbnRNZXRhZGF0YSYmYS5ldmVudE1ldGFkYXRhW0guSi5DY10mJmEuZXZlbnRNZXRhZGF0YVtILkouTmJdIT09dmsoKT8hMTohMH07dmFyIGtEPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIGxEPWZ1bmN0aW9uKCl7dGhpcy5tZXNzYWdlcz1bXTt0aGlzLkg9W119O2xELnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLm1lc3NhZ2VzLmxlbmd0aCsxO2FbImd0bS51bmlxdWVFdmVudElkIl09YjthWyJndG0ucHJpb3JpdHlJZCJdPWQ7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHtldmVudElkOmIscHJpb3JpdHlJZDpkLGZyb21Db250YWluZXJFeGVjdXRpb246ITB9KTtpZihNKDU5NSkpe3ZhciBmPWMucHJpb3JpdHlRdWV1ZT9bXS5jb25jYXQodyhjLnByaW9yaXR5UXVldWUpLFtkXSk6W2RdO2FbImd0bS5wcmlvcml0eVF1ZXVlIl09ZjtlLnByaW9yaXR5UXVldWU9Zn12YXIgZz17bWVzc2FnZTphLG5vdEJlZm9yZUV2ZW50SWQ6Yixwcmlvcml0eUlkOmQsbWVzc2FnZUNvbnRleHQ6ZX07dGhpcy5tZXNzYWdlcy5wdXNoKGcpO2Zvcih2YXIgaD0wO2g8dGhpcy5ILmxlbmd0aDtoKyspdHJ5e3RoaXMuSFtoXShnKX1jYXRjaChsKXt9fTsKbEQucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbihhKXt0aGlzLkgucHVzaChhKX07bEQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2Zvcih2YXIgYT17fSxiPTA7Yjx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMubWVzc2FnZXNbYl0sZD1hW2Mubm90QmVmb3JlRXZlbnRJZF07ZHx8KGQ9W10sYVtjLm5vdEJlZm9yZUV2ZW50SWRdPWQpO2QucHVzaChjKX1yZXR1cm4gYX07bEQucHJvdG90eXBlLnBydW5lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9MDtkPHRoaXMubWVzc2FnZXMubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy5tZXNzYWdlc1tkXTtlLm5vdEJlZm9yZUV2ZW50SWQ9PT1hP2IucHVzaChlKTpjLnB1c2goZSl9dGhpcy5tZXNzYWdlcz1jO3JldHVybiBifTsKZnVuY3Rpb24gbUQoYSxiLGMpe2MuZXZlbnRNZXRhZGF0YT1jLmV2ZW50TWV0YWRhdGF8fHt9O2MuZXZlbnRNZXRhZGF0YVtILkouTmJdPU0oNTUwKT92aygpOkUoNik7bkQoKS5lbnF1ZXVlKGEsYixjKX1mdW5jdGlvbiBuRCgpe3JldHVybiBraigibWIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsRH0pfTt2YXIgcEQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1vRDtiPVN0cmluZyhiKS5zcGxpdCgiLCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1jLk5bYltkXV18fFtdO2MuTltiW2RdXT1lO2UuaW5kZXhPZihhKTwwJiZlLnB1c2goYSl9fSxxRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1vRCxkPVtdLGU9W10sZj17fSxnPTA7ZzxhLmxlbmd0aDtmPXtsazp2b2lkIDAsUWo6dm9pZCAwLFJqOnZvaWQgMH0sZysrKXt2YXIgaD1hW2ddO2lmKGguaW5kZXhPZigiLSIpPj0wKXtpZihmLmxrPWJDKGgsYiksZi5sayl7dmFyIGw9dGsoKTtDYihsLGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geC5say5kZXN0aW5hdGlvbklkPT09eX19KGYpKT9kLnB1c2goaCk6ZS5wdXNoKGgpfX1lbHNle2lmKE0oNTUwKSl7dmFyIG49Yy5LW2hdfHxbXTtmLlJqPXt9O24uZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Salt5XT0hMH19KGYpKTtmb3IodmFyIHA9CnRrKCkscT0wO3E8cC5sZW5ndGg7cSsrKWYuUmpbcFtxXV0mJmQucHVzaChwW3FdKX1lbHNle3ZhciByPWMuSFtoXXx8W107Zi5Raj17fTtyLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUWpbeV09ITB9fShmKSk7Zm9yKHZhciB0PXdrKCksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKGYuUWpbdFt1XV0pe2Q9ZC5jb25jYXQodGsoKSk7YnJlYWt9fXZhciB2PWMuTltoXXx8W107di5sZW5ndGgmJihkPWQuY29uY2F0KHYpKX19cmV0dXJue2VrOmQsUHM6ZX19LHJEPWZ1bmN0aW9uKGEpe0diKG9ELkgsZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSxzRD1mdW5jdGlvbihhKXtHYihvRC5LLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sdEQ9ZnVuY3Rpb24oYSl7R2Iob0QuTixmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLAoxKX0pfSxvRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gdUQoYSxiLGMpe3ZhciBkPUVkKGEsbnVsbCk7ZC5ldmVudElkPXZvaWQgMDtkLmluaGVyaXRQYXJlbnRDb25maWc9dm9pZCAwO09iamVjdC5rZXlzKGIpLnNvbWUoZnVuY3Rpb24oZil7cmV0dXJuIGJbZl0hPT12b2lkIDB9KSYmUCgxMzYpO3ZhciBlPUVkKGIsbnVsbCk7RWQoYyxlKTttRChyQyh3aygpWzBdLGUpLGEuZXZlbnRJZCxkKX0KZnVuY3Rpb24gdkQoYSxiLGMsZCl7dmFyIGU9e30sZj0oZVtGLkQuVWJdPUYuRC53YSxlWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT1hLmlkLGVbImd0bS5jb25maWdQYXJhbWV0ZXJzIl09YixlWyJndG0udW5pcXVlRXZlbnRJZCJdPWQuZXZlbnRJZCxlKTtjLnByaW9yaXR5UXVldWUmJihmWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWMucHJpb3JpdHlRdWV1ZSk7Yy5ldmVudE1ldGFkYXRhJiYoZlsiZ3RtLmV2ZW50TWV0YWRhdGEiXT1jLmV2ZW50TWV0YWRhdGEpO2EuSmMoKSYmKGZbImd0bS5jb25maWdDb250YWluZXJJZCJdPXdrKClbMF0sZlsiZ3RtLm9yaWdpbmFsQ29uZmlnVGFyZ2V0SWQiXT1hLmlkKTtyZXR1cm4gZn1mdW5jdGlvbiB3RChhLGIsYyl7aWYoSWYoMTEpJiYhYyYmIWFbRi5ELlZkXSl7dmFyIGQ9YWwoMTAsZnVuY3Rpb24oKXtyZXR1cm4hMX0pO1prKDEwLCEwKTtYQihkLGEsYik7aWYoZClyZXR1cm4hMH1yZXR1cm4hMX07ZnVuY3Rpb24geEQoYSxiKXt2YXIgYz17fSxkPShjLmV2ZW50PWEsYyk7YiYmKGQuZXZlbnRNb2RlbD1FZChiLG51bGwpLGJbRi5ELlBmXSYmKGQuZXZlbnRDYWxsYmFjaz1iW0YuRC5QZl0pLGJbRi5ELnBoXSYmKGQuZXZlbnRUaW1lb3V0PWJbRi5ELnBoXSkpO3JldHVybiBkfQpmdW5jdGlvbiB5RChhLGIpe3ZhciBjPWEmJmFbRi5ELlhiXTtjPT09dm9pZCAwJiYoYz11QShGLkQuWGIsMiksYz09PXZvaWQgMCYmKGM9ImRlZmF1bHQiKSk7aWYoemIoYyl8fEFycmF5LmlzQXJyYXkoYykpe3ZhciBkO2Q9Yi5pc0d0bUV2ZW50P3piKGMpP1tjXTpjOmMudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTt2YXIgZT1xRChkLGIuaXNHdG1FdmVudCksZj1lLmVrLGc9ZS5QcztpZihnLmxlbmd0aClmb3IodmFyIGg9aUQoYSksbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1iQyhnW2xdLGIuaXNHdG1FdmVudCk7aWYobil7dmFyIHA9bi5kZXN0aW5hdGlvbklkLHE9dm9pZCAwOygocT1uayhuLmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6cS5zdGF0ZSk9PT0wfHxuQShwLGgse3NvdXJjZTozLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fXZhciByPWYuY29uY2F0KGcpO3JldHVybntlazpjQyhmLGIuaXNHdG1FdmVudCksCm1yOmNDKHIsYi5pc0d0bUV2ZW50KX19fTt2YXIgekQ9e30sQUQ9KHpELmNvbmZpZz1mdW5jdGlvbihhLGIpe3ZhciBjPWhEKGEsYiksZDthOntpZighKGEubGVuZ3RoPDIpJiZ6YihhWzFdKSl7dmFyIGU9e307aWYoYS5sZW5ndGg+Mil7aWYoYVsyXSE9PXZvaWQgMCYmIUNkKGFbMl0pfHxhLmxlbmd0aD4zKXtkPXZvaWQgMDticmVhayBhfWU9YVsyXX12YXIgZj1iQyhhWzFdLGIuaXNHdG1FdmVudCk7aWYoZil7ZD17dGFyZ2V0OmYscGFyYW1zOmV9O2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBnPWQ7aWYoZyl7dmFyIGg9Zy50YXJnZXQsbD1nLnBhcmFtcyxuO2E6e2lmKCFJZig3KSl7dmFyIHA9eWsoemsoKSk7aWYoTWsocCkpe3ZhciBxPXAucGFyZW50LHI9cS5pc0Rlc3RpbmF0aW9uO249e1ZzOnlrKHEpLE1zOnJ9O2JyZWFrIGF9fW49dm9pZCAwfXZhciB0PW4sdT10PT1udWxsP3ZvaWQgMDp0LlZzLHY9dD09bnVsbD92b2lkIDA6dC5NcztkQihjLmV2ZW50SWQsImd0YWcuY29uZmlnIik7dmFyIHgseT1oLmRlc3RpbmF0aW9uSWQ7CmlmKGguSmMoKT90aygpLmluZGV4T2YoeSkhPT0tMTp3aygpLmluZGV4T2YoeSkhPT0tMSlhOntpZih1JiYoUCgxMjgpLHYmJlAoMTMwKSxiLmluaGVyaXRQYXJlbnRDb25maWcpKXt2YXIgejt2YXIgQz0kaygxMik7aWYoQyl1RChiLEMsbCksej0hMTtlbHNle3ZhciBEPSRrKDExKTshbFtGLkQuVmRdJiYoTSg1NTApfHxJZigxMSkpJiZEfHxaaygxMSxFZChsLG51bGwpKTt6PSEwfXomJnUuY29udGFpbmVycyYmdS5jb250YWluZXJzLmpvaW4oIiwiKTt4PXZvaWQgMDticmVhayBhfXZhciBJPSFJZig0NSksRz0hU2IoaC5pZCwiR1RNLSIpO0kmJkcmJihPYmplY3Qua2V5cyhsKS5sZW5ndGg9PT0wP0d1KFQuVy5Tayk6R3UoVC5XLlRrKSxFbCgpJiZHdShULlcuUmspLCRrKDMxKSYmR3UoVC5XLlVrKSk7dmFyIE49WUI7Zm4uSyYmKE4uSD09PTEmJihRbS5ILm1jYz0hMSksTi5IPTIpO2lmKE0oNTUwKXx8IXdEKGwsYixoLkpjKCkpKXtrRC5IfHxQKDQzKTtpZighTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgUz0KaC5pZDtpZihoLkpjKCkpdEQoUykscEQoUyxsW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtyRChTKTt2YXIgVz1sW0YuRC5PZF18fCJkZWZhdWx0IixlYT1vRDtXPVcudG9TdHJpbmcoKS5zcGxpdCgiLCIpO2Zvcih2YXIgamE9MDtqYTxXLmxlbmd0aDtqYSsrKXt2YXIgZmE9ZWEuSFtXW2phXV18fFtdO2VhLkhbV1tqYV1dPWZhO2ZhLmluZGV4T2YoUyk8MCYmZmEucHVzaChTKX19fWRlbGV0ZSBsW0YuRC5PZF19dmFyIHNhPWIuZXZlbnRNZXRhZGF0YXx8e307c2EuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KHNhW0guSi5hZV09IWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7Yi5ldmVudE1ldGFkYXRhPXNhO2RlbGV0ZSBsW0YuRC5QZl07aWYoTSg1NTApKXt4PXZEKGgsbCxiLGMpO2JyZWFrIGF9dmFyIGRhPSEhbFtGLkQuVmRdO2RlbGV0ZSBsW0YuRC5WZF07dmFyIG1hPXRrKCksUGE9Y0QsRmE9YUQ7aC5KYygpJiYobWE9W2guaWRdLFBhPWRELEZhPWJEKTtmb3IodmFyIHFhPTA7cWE8Cm1hLmxlbmd0aDtxYSsrKXtkYXx8UGEobWFbcWFdKTt2YXIgaWI9Z0QobWFbcWFdKTtGYShtYVtxYV0sRWQobCxudWxsKSxFZChiLG51bGwpKTtpYiYmZGF8fFpDKEYuRC53YSxFZChsLG51bGwpLG1hW3FhXSxFZChiLG51bGwpKX19eD12b2lkIDB9ZWxzZSBhOntpZighYi5pbmhlcml0UGFyZW50Q29uZmlnJiYhbFtGLkQuWmNdKXt2YXIgWGI9aUQobCksTGM9aC5kZXN0aW5hdGlvbklkO2lmKGguSmMoKSluQShMYyxYYix7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KTtlbHNlIGlmKHUhPT12b2lkIDAmJnUuY29udGFpbmVycy5pbmRleE9mKExjKSE9PS0xKXt2YXIgUWQ9JGsoMTEpLFljPSRrKDEyKTtRZD91RChiLGwsUWQpOlljfHxaaygxMixFZChsLG51bGwpKX1lbHNlIGlmKGhBKExjLFhiLCEwLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pLE0oNTUwKSl7eD12RChoLApsLGIsYyk7YnJlYWsgYX19eD12b2lkIDB9cmV0dXJuIHh9fSx6RC5jb25zZW50PWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg9PT0zKXtQKDM5KTt2YXIgYz1oRChhLGIpLGQ9YVsxXSxlPXt9LGY9T28oYVsyXSksZztmb3IoZyBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWZbZ107ZVtnXT1nPT09Ri5ELllnP0FycmF5LmlzQXJyYXkoaCk/TmFOOk51bWJlcihoKTpnPT09Ri5ELm5jPyhBcnJheS5pc0FycmF5KGgpP2g6W2hdKS5tYXAoUG8pOlFvKGgpfWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8KGVbRi5ELm1hXSYmUCgxMzkpLGVbRi5ELlhhXSYmUCgxNDApKTtkPT09ImRlZmF1bHQiP1RvKGUpOmQ9PT0idXBkYXRlIj9WbyhlLGMpOmQ9PT0iZGVjbGFyZSImJmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmU28oZSl9fSx6RC5jb250YWluZXJfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz0KYVsyXSxkPWJDKGFbMV0sITApO2QmJmFEKGQuZGVzdGluYXRpb25JZCxjLEVkKGIsbnVsbCkpfX0sekQuZGVzdGluYXRpb25fY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz1hWzJdLGQ9YkMoYVsxXSwhMCk7aWYoZCl7aWYoTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgZT1kLmlkO2lmKGQuSmMoKSl0RChlKSxwRChlLGNbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3NEKGUpO3ZhciBmPWNbRi5ELk9kXXx8ImRlZmF1bHQiLGc9b0Q7Zj1TdHJpbmcoZikuc3BsaXQoIiwiKTtmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKyl7dmFyIGw9Zy5LW2ZbaF1dfHxbXTtnLktbZltoXV09bDtsLmluZGV4T2YoZSk8MCYmbC5wdXNoKGUpfX19ZGVsZXRlIGNbRi5ELk9kXX1iRChkLmlkLGMsRWQoYixudWxsKSl9fX0sekQuZXZlbnQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hWzFdO2lmKCEoYS5sZW5ndGg8MikmJgp6YihjKSl7dmFyIGQ9dm9pZCAwO2lmKGEubGVuZ3RoPjIpe2lmKCFDZChhWzJdKSYmYVsyXSE9PXZvaWQgMHx8YS5sZW5ndGg+MylyZXR1cm47ZD1hWzJdfXZhciBlPXhEKGMsZCksZj1oRChhLGIpLGc9Zi5ldmVudElkLGg9Zi5wcmlvcml0eUlkO2VbImd0bS51bmlxdWVFdmVudElkIl09ZztoJiYoZVsiZ3RtLnByaW9yaXR5SWQiXT1oKTtiLnByaW9yaXR5UXVldWUmJihlWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWIucHJpb3JpdHlRdWV1ZSk7aWYoYz09PSJvcHRpbWl6ZS5jYWxsYmFjayIpcmV0dXJuIGUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9LGU7dmFyIGw9eUQoZCxiKTtpZihsKXtmb3IodmFyIG49bC5layxwPWwubXIscT1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHI9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uZGVzdGluYXRpb25JZH0pLHQ9bi5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSx1PW0odGsoKSksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO3IuaW5kZXhPZih4KTwwJiZ0LnB1c2goeCl9ZEIoZyxjKTtmb3IodmFyIHk9bSh0KSx6PXkubmV4dCgpOyF6LmRvbmU7ej15Lm5leHQoKSl7dmFyIEM9ei52YWx1ZSxEPUVkKGIsbnVsbCksST1FZChkLG51bGwpO2RlbGV0ZSBJW0YuRC5QZl07dmFyIEc9RC5ldmVudE1ldGFkYXRhfHx7fTtHLmhhc093blByb3BlcnR5KEguSi5hZSl8fChHW0guSi5hZV09IUQuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7R1tILkoubWpdPXEuc2xpY2UoKTtHW0guSi5zZ109ci5zbGljZSgpO0QuZXZlbnRNZXRhZGF0YT1HO1pDKGMsSSxDLEQpfWUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9O3EubGVuZ3RoPjA/ZS5ldmVudE1vZGVsW0YuRC5YYl09cS5qb2luKCIsIik6ZGVsZXRlIGUuZXZlbnRNb2RlbFtGLkQuWGJdO2tELkh8fFAoNDMpO2Iubm9HdG1FdmVudD09PXZvaWQgMCYmYi5ldmVudE1ldGFkYXRhJiZiLmV2ZW50TWV0YWRhdGFbSC5KLkJuXSYmKGIubm9HdG1FdmVudD0KITApO2UuZXZlbnRNb2RlbFtGLkQuWWNdJiYoYi5ub0d0bUV2ZW50PSEwKTtyZXR1cm4gYi5ub0d0bUV2ZW50P3ZvaWQgMDplfX19LHpELmdldD1mdW5jdGlvbihhLGIpe1AoNTMpO2lmKGEubGVuZ3RoPT09NCYmemIoYVsxXSkmJnpiKGFbMl0pJiZ5YihhWzNdKSl7dmFyIGM9YkMoYVsxXSxiLmlzR3RtRXZlbnQpLGQ9U3RyaW5nKGFbMl0pLGU9YVszXTtpZihjKXtrRC5IfHxQKDQzKTt2YXIgZj1pRCgpO2lmKENiKHRrKCksZnVuY3Rpb24oaCl7cmV0dXJuIGMuZGVzdGluYXRpb25JZD09PWh9KSl7aEQoYSxiKTt2YXIgZz17fTtFZCgoZ1tGLkQuVGZdPWQsZ1tGLkQuU2ZdPWUsZyksbnVsbCk7JEMoZCxmdW5jdGlvbihoKXtiZChmdW5jdGlvbigpe2UoaCl9KX0sYy5pZCxiKX1lbHNlIG5BKGMuZGVzdGluYXRpb25JZCxmLHtzb3VyY2U6NCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX19LHpELmpzPWZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoYS5sZW5ndGg9PT0KMiYmYVsxXS5nZXRUaW1lKXtrRC5IPSEwO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQsZz17fTtjPShnLmV2ZW50PSJndG0uanMiLGdbImd0bS5zdGFydCJdPWFbMV0uZ2V0VGltZSgpLGdbImd0bS51bmlxdWVFdmVudElkIl09ZSxnWyJndG0ucHJpb3JpdHlJZCJdPWYsZyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sekQucG9saWN5PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MyYmemIoYVsxXSkmJnliKGFbMl0pKXtpZihoeShhWzFdLGFbMl0pLFAoNzQpLGFbMV09PT0iYWxsIil7UCg3NSk7dmFyIGI9ITE7dHJ5e2I9YVsyXShFKDUpLCJ1bmtub3duIix7fSl9Y2F0Y2goYyl7fWJ8fFAoNzYpfX1lbHNlIFAoNzMpfSx6RC5yZXNldF90YXJnZXRfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MiYmemIoYVsxXSkpe3ZhciBjPWJDKGFbMV0sITApO2MmJmREKGMuaWQpfX0sekQuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwOwphLmxlbmd0aD09PTImJkNkKGFbMV0pP2M9RWQoYVsxXSxudWxsKTphLmxlbmd0aD09PTMmJnpiKGFbMV0pJiYoYz17fSxDZChhWzJdKXx8QXJyYXkuaXNBcnJheShhWzJdKT9jW2FbMV1dPUVkKGFbMl0sbnVsbCk6Y1thWzFdXT1hWzJdKTtpZihjKXtaaygzMSwhMCk7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZDtFZChjLG51bGwpO0UoNSk7dmFyIGc9RWQoYyxudWxsKTtZQygpLkgucHVzaCgic2V0IixbZ10sdm9pZCAwLGIpO2NbImd0bS51bmlxdWVFdmVudElkIl09ZTtmJiYoY1siZ3RtLnByaW9yaXR5SWQiXT1mKTtkZWxldGUgYy5ldmVudDtiLm92ZXJ3cml0ZU1vZGVsRmllbGRzPSEwO3JldHVybiBjfX0sekQpLEJEPXt9LENEPShCRC5wb2xpY3k9ITAsQkQpO3ZhciBFRD1mdW5jdGlvbihhKXtpZihERChhKSlyZXR1cm4gYTt0aGlzLnZhbHVlPWF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07dmFyIEREPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxBZChhKSE9PSJvYmplY3QifHxDZChhKT8hMToiZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlImluIGF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZTt2YXIgRkQ9e0JiOiIxIixlZToiMiIsWGQ6IjMiLGNlOiI0Iix4ZjoiNSIscWc6IjYiLEtoOiI3Iix0ajoiOCIsbGk6IjkiLGpqOiIxMCJ9Owp2YXIgR0Q9ZnVuY3Rpb24oYSxiKXtpZihhKXt2YXIgYz1hLnRyaW0oKS5yZXBsYWNlQWxsKC9ccysvZywiIikucmVwbGFjZUFsbCgvKFxkezIsfSlcLi9nLCIkMSIpLnJlcGxhY2VBbGwoLy0vZywiIikucmVwbGFjZUFsbCgvXCgoXGQrKVwpL2csIiQxIik7aWYoYiYmYy5tYXRjaCgvXlwrP1xkezMsNH0kLykpcmV0dXJuIGM7Yy5jaGFyQXQoMCkhPT0iKyImJihjPSIrIitjKTtpZihjLm1hdGNoKG5ldyBSZWdFeHAoIl5cXCtcXGR7IisoTSg1OTcpPzc6MTApKyIsMTV9JCIpKSlyZXR1cm4gY319LElEPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEudHJpbSgpO2lmKEhELnRlc3QoYikpcmV0dXJuIGIudG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKC9bLSBdKy9nLCIiKX19LE1EPWZ1bmN0aW9uKGEpe3ZhciBiPUpEKEtEKShhKTtpZihiJiYhTEQoYikpcmV0dXJuIGJ9LExEPWZ1bmN0aW9uKGEpe2lmKCFBLmxvY2F0aW9uKXJldHVybiExO3ZhciBiPU5qKEEubG9jYXRpb24sImhvc3QiLCEwKSwKYztpZihNKDYwMikpYTp7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWEudG9Mb3dlckNhc2UoKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZC5zbGljZShmKS5qb2luKCIuIik7aWYoZS5tYXRjaCgiQCIrZysiJCIpKXtjPSEwO2JyZWFrIGF9fWM9ITF9ZWxzZSBjPWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKGIpPj0wO3JldHVybiBjfSxKRD1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXRjaChhKTtyZXR1cm4gYz9jWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpOnZvaWQgMH19LEtEPS9bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1wuW0EtWl17Mix9L2ksTkQ9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHMpKyQvKSxIRD1SZWdFeHAoIl4oPzpbQS1aXXsxLDJ9XFxkW0EtWlxcZF0/WyAtXT9cXGRbQS1aXXsyfXxbQS1aXVxcZFtBLVpdWyAtXT9cXGRbQS1aXVxcZHxcXGR7NH0gP1tBLVpdezJ9fFtBLVpdXFxkezR9W0EtWl17M318XFxkezV9KD86LVxcZHs0fSk/fFxcZHs1fS1cXGR7M318XFxkezR9LVxcZHszfXxcXGR7M30tXFxkezR9fFxcZHsyfS1cXGR7M318XFxkezN9ID9cXGR7Mn18XFxkezQsN30pJCIsCiJpIiksT0Q9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHN8XGQpKyQvKTsKdmFyIFBEPWZ1bmN0aW9uKCl7dmFyIGE9U3RyaW5nKGFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KSk7YS5pbmRleE9mKCIuIikhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi4iKSszKSk7dmFyIGI9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO3JldHVybnt2dDpOdW1iZXIoYSksc3Q6Yn19LFFEPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KX0sU0Q9ZnVuY3Rpb24oYSl7dmFyIGI9cGQoKXx8MCxjPVtGRC5CYl07TSg1NjgpJiZjLnB1c2goRkQuZWUsRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQudGosRkQubGksRkQuamopO2Zvcih2YXIgZD1SRChhLG5ldyBTZXQoYykpLGU9YWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pLGY9bShkKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLnNldChoLkRhLGgpfXZhciBsPShwZCgpfHwwKS1iLG49YWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pOwpaaygzMyxuK2wpO3ZhciBwPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtaaygzNCxwKzEpfSxSRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1OZigzNiwyKSxkPVtdLGU9W3tvbzphLGRlcHRoOjB9XTtlLmxlbmd0aD4wOylmb3IodmFyIGY9ZS5zaGlmdCgpLGc9Zi5vbyxoPWYuZGVwdGgsbD1tKE9iamVjdC5rZXlzKGcpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtpZighVEQuaGFzKHApKXt2YXIgcT1nW3BdO2lmKHEpaWYoQ2QocSkpaCsxPD1jJiZlLnB1c2goe29vOnEsZGVwdGg6aCsxfSk7ZWxzZXtmb3IodmFyIHI9bShiKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZSx2PVVEW3VdO2lmKHYmJnYuS2MudGVzdChwKSl7dmFyIHg9di5uYShTdHJpbmcocSkpO2lmKHgpe2QucHVzaCh7Q2E6eCxEYTp1fSk7Yi5kZWxldGUodSk7YnJlYWt9fX1pZihiLnNpemU9PT0wKXJldHVybiBkfX19cmV0dXJuIGR9LFREPQpuZXcgU2V0KFsiaXRlbXMiLCJlY29tbWVyY2UiXSksVkQ9UmVnRXhwKCJwaG9uZSIsImkiKSxXRD1SZWdFeHAoImZpcnN0Xz9uYW1lIiwiaSIpLFhEPVJlZ0V4cCgibGFzdF8/bmFtZSIsImkiKSxZRD1SZWdFeHAoImNvdW50cnkiLCJpIiksWkQ9UmVnRXhwKCJwb3N0fHppcCIsImkiKSwkRD1SZWdFeHAoImFkZHJlc3N8c3RyZWV0IiwiaSIpLGFFPVJlZ0V4cCgiY2l0eSIsImkiKSxiRT1SZWdFeHAoInJlZ2lvbnxzdGF0ZXxwcm92aW5jZSIsImkiKSxjRT17fSxVRD0oY0VbRkQuQmJdPXtLYzpSZWdFeHAoImVtYWlsIiwiaSIpLG5hOk1EfSxjRVtGRC5lZV09e0tjOlZELG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCExKX19LGNFW0ZELlhkXT17S2M6V0QsbmE6TkR9LGNFW0ZELmNlXT17S2M6WEQsbmE6TkR9LGNFW0ZELnRqXT17S2M6JEQsbmE6T0R9LGNFW0ZELmxpXT17S2M6YUUsbmE6TkR9LGNFW0ZELmpqXT17S2M6YkUsbmE6TkR9LGNFW0ZELnFnXT17S2M6WkQsbmE6SUR9LGNFW0ZELnhmXT0Ke0tjOllELG5hOk5EfSxjRSk7dmFyIGRFPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmxvYWRlZD0hMTt0aGlzLkg9W107aWYoQi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uTG9hZCgpO2Vsc2UgJGMoQSwibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLm9uTG9hZCgpfSl9O2RFLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5sb2FkZWQpe3RoaXMubG9hZGVkPSEwO2Zvcih2YXIgYT0wO2E8dGhpcy5ILmxlbmd0aDthKyspYmQodGhpcy5IW2FdKX19O3ZhciBmRT1mdW5jdGlvbihhKXt2YXIgYj1lRTtiLmxvYWRlZD9iZChhKTpiLkgucHVzaChhKX0sZUU9bmV3IGRFO3ZhciBnRT1mdW5jdGlvbigpe3RoaXMuWj0wO3RoaXMuSz17fTt0aGlzLkg9W107dGhpcy5OPVtdO3RoaXMuZmE9dGhpcy5SPXRoaXMuamE9ITF9LGlFPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1oRTthLmV2ZW50Q2FsbGJhY2s9YjtjJiYoYS5ldmVudFRpbWVvdXQ9Yyk7cmV0dXJuIGQucHVzaChhKX0sakU9ZnVuY3Rpb24oYSxiKXtpZighQWIoYil8fGI8MCliPTA7dmFyIGM9cWooKSxkPTAsZT0hMSxmPXZvaWQgMDtmPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2V8fChlPSEwLGEoKSk7Zj12b2lkIDB9LGIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBnPWM/Yy5zdWJzY3JpYmVyczoxOysrZD09PWcmJihmJiYoQS5jbGVhclRpbWVvdXQoZiksZj12b2lkIDApLGV8fChhKCksZT0hMCkpfX0sbEU9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYS5OLmxlbmd0aCliPWEuTi5zaGlmdCgpO2Vsc2UgaWYoYS5ILmxlbmd0aCliPWEuSC5zaGlmdCgpO2Vsc2UgcmV0dXJuO3ZhciBjO3ZhciBkPWI7aWYoYS5qYXx8CiFrRShkLm1lc3NhZ2UpKWM9ZDtlbHNle2EuamE9ITA7dmFyIGU9ZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdLGYsZzt0eXBlb2YgZT09PSJudW1iZXIiPyhmPWUtMixnPWUtMSk6KGY9cmooKSxnPXJqKCksZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdPXJqKCkpO3ZhciBoPXt9LGw9e21lc3NhZ2U6KGguZXZlbnQ9Imd0bS5pbml0X2NvbnNlbnQiLGhbImd0bS51bmlxdWVFdmVudElkIl09ZixoKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpmfX0sbj17fSxwPXttZXNzYWdlOihuLmV2ZW50PSJndG0uaW5pdCIsblsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nLG4pLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmd9fTthLkgudW5zaGlmdChwLGQpO2M9bH1yZXR1cm4gY30sb0U9ZnVuY3Rpb24oYSl7YS5mYXx8UCgxOTYpO2Zvcih2YXIgYj0hMSxjOyFhLlImJihjPWxFKGEpKTspe2EuUj0hMDt2YXIgZD1yQTtkZWxldGUgZC5ILmV2ZW50TW9kZWw7b0EoZCk7dmFyIGU9YyxmPQplLm1lc3NhZ2UsZz1lLm1lc3NhZ2VDb250ZXh0O2lmKGY9PW51bGwpYS5SPSExO2Vsc2V7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZzQSgpO3RyeXtpZih5YihmKSl0cnl7Zi5jYWxsKHRBKX1jYXRjaChTKXt9ZWxzZSBpZihBcnJheS5pc0FycmF5KGYpKXtpZih6YihmWzBdKSl7dmFyIGg9ZlswXS5zcGxpdCgiLiIpLGw9aC5wb3AoKSxuPWYuc2xpY2UoMSkscD11QShoLmpvaW4oIi4iKSwyKTtpZihwIT1udWxsKXRyeXtwW2xdLmFwcGx5KHAsbil9Y2F0Y2goUyl7fX19ZWxzZXt2YXIgcT12b2lkIDA7aWYoSGIoZikpYTp7aWYoZi5sZW5ndGgmJnpiKGZbMF0pKXt2YXIgcj1BRFtmWzBdXTtpZihyJiYoIWcuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8IUNEW2ZbMF1dKSl7cT1yKGYsZyk7YnJlYWsgYX19cT12b2lkIDB9ZWxzZSBxPWY7aWYocSl7dmFyIHQ7Zm9yKHZhciB1PXEsdj11Ll9jbGVhcnx8Zy5vdmVyd3JpdGVNb2RlbEZpZWxkcyx4PW0oT2JqZWN0LmtleXModSkpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PQp4Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6IT09Il9jbGVhciImJih2JiZyQS5zZXQoeix2b2lkIDApLHJBLnNldCh6LHVbel0pKX1NKDU5MikmJlNEKHUpOyRrKDI1KXx8WmsoMjUsdVsiZ3RtLnN0YXJ0Il0pO3ZhciBDPXVbImd0bS51bmlxdWVFdmVudElkIl07dS5ldmVudD8odHlwZW9mIEMhPT0ibnVtYmVyIiYmKEM9cmooKSx1WyJndG0udW5pcXVlRXZlbnRJZCJdPUMsckEuc2V0KCJndG0udW5pcXVlRXZlbnRJZCIsQykpLHQ9ekIodSkpOnQ9ITE7Yj10fHxifX19ZmluYWxseXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJm9BKHJBLCEwKTt2YXIgRD1mWyJndG0udW5pcXVlRXZlbnRJZCJdO2lmKHR5cGVvZiBEPT09Im51bWJlciIpe2Zvcih2YXIgST1hLEc9SS5LW1N0cmluZyhEKV18fFtdLE49MDtOPEcubGVuZ3RoO04rKylJLk4ucHVzaChtRShHW05dKSk7Ry5sZW5ndGgmJkkuTi5zb3J0KG5FKTtkZWxldGUgSS5LW1N0cmluZyhEKV07RD5hLlomJihhLlo9RCl9YS5SPSExfX19cmV0dXJuIWJ9LApwRT1mdW5jdGlvbigpe3ZhciBhPWhFO2EuZmEmJlAoMTk1KTthLmZhPSEwO2lmKGZuLkgpe3ZhciBiPSFJZig1MSksYz1yeigpO3B6KGMse3N0YWdlOkl5LlguWmd9KTtpZihiKXt2YXIgZD1xeihjLHtzdGFnZTpJeS5YLllrfSxJeS5YLm5pKTtkIT09dm9pZCAwJiYoYy5ILlk9ZCl9dmFyIGU9YS5ILmxlbmd0aDtyeigpLkguQz1lfW9FKGEpO2lmKGZuLkgpe3ZhciBmPXJ6KCksZz1xeihmLHtzdGFnZTpJeS5YLlZrfSxJeS5YLlpnKTtnIT09dm9pZCAwJiYoZi5ILkI9Zyl9dHJ5e3ZhciBoPUFbRSgxOSldLGw9RSg1KSxuPWguaGlkZTtpZihuJiZuW2xdIT09dm9pZCAwJiZuLmVuZCl7bltsXT0hMTt2YXIgcD0hMCxxO2ZvcihxIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShxKSYmbltxXT09PSEwKXtwPSExO2JyZWFrfXAmJihuLmVuZCgpLG4uZW5kPW51bGwpfX1jYXRjaChyKXtFKDUpfX0scUU9ZnVuY3Rpb24oYSxiKXtpZihhLlo8Yi5ub3RCZWZvcmVFdmVudElkKXt2YXIgYz1TdHJpbmcoYi5ub3RCZWZvcmVFdmVudElkKTsKYS5LW2NdPWEuS1tjXXx8W107YS5LW2NdLnB1c2goYil9ZWxzZXthLk4ucHVzaChtRShiKSk7YS5OLnNvcnQobkUpO3ZhciBkPWZ1bmN0aW9uKCl7YS5SfHxvRShhKX07TSg1ODApP2RkKGQpOmJkKGQpfX07CmdFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShoKXt2YXIgbD17fTtpZihERChoKSl7dmFyIG49aDtoPUREKG4pP24uZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlKCk6dm9pZCAwO2wuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj0hMH1yZXR1cm57bWVzc2FnZTpoLG1lc3NhZ2VDb250ZXh0Omx9fXZhciBiPXRoaXMsYz1NYyhFKDE5KSxbXSksZD1waigpO2QucHJ1bmVkPT09ITAmJlAoODMpO3RoaXMuSz1uRCgpLmdldCgpO25EKCkubGlzdGVuKGZ1bmN0aW9uKGgpe3FFKGIsaCl9KTtkLnN1YnNjcmliZXJzPShkLnN1YnNjcmliZXJzfHwwKSsxO3ZhciBlPWMucHVzaCxmPXRoaXM7Yy5wdXNoPWZ1bmN0aW9uKCl7dmFyIGg7bGooKTtpZihqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU+MCl7aD1bXTtmb3IodmFyIGw9MDtsPGFyZ3VtZW50cy5sZW5ndGg7bCsrKWhbbF09bmV3IEVEKGFyZ3VtZW50c1tsXSl9ZWxzZSBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApOwp2YXIgbj1oLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pO2YuSC5wdXNoLmFwcGx5KGYuSCxuKTt2YXIgcD1lLmFwcGx5KGMsaCkscT1NYXRoLm1heCgxMDAsTmYoMSwzMDApKTtpZih0aGlzLmxlbmd0aD5xKWZvcihQKDQpLGQucHJ1bmVkPSEwO3RoaXMubGVuZ3RoPnE7KXRoaXMuc2hpZnQoKTt2YXIgcj10eXBlb2YgcCE9PSJib29sZWFuInx8cDtyZXR1cm4gb0UoZikmJnJ9O3ZhciBnPWMuc2xpY2UoMCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBhKGgpfSk7dGhpcy5ILnB1c2guYXBwbHkodGhpcy5ILGcpO0lmKDUxKXx8KGZuLkgmJnV6KCksYmQockUpKTtWQihmdW5jdGlvbigpe2lmKCFkLmd0bURvbSl7ZC5ndG1Eb209ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0uZG9tIixoKSl9fSk7ZkUoZnVuY3Rpb24oKXtpZighZC5ndG1Mb2FkKXtkLmd0bUxvYWQ9ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0ubG9hZCIsaCkpfX0pfTsKZ0UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSl7cmV0dXJuIEFbRSgxOSldLnB1c2goYSl9O3ZhciBoRT1uZXcgZ0U7ZnVuY3Rpb24gbkUoYSxiKXt2YXIgYz1hLm1lc3NhZ2VDb250ZXh0LGQ9Yi5tZXNzYWdlQ29udGV4dDtpZihjLmV2ZW50SWQhPT1kLmV2ZW50SWQpcmV0dXJuIGMuZXZlbnRJZC1kLmV2ZW50SWQ7aWYoIU0oNTk1KSlyZXR1cm4gYy5wcmlvcml0eUlkLWQucHJpb3JpdHlJZDt2YXIgZSxmLGc7YTp7Zm9yKHZhciBoPShlPWMucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZTpbYy5wcmlvcml0eUlkXSxsPShmPWQucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZjpbZC5wcmlvcml0eUlkXSxuPU1hdGgubWluKGgubGVuZ3RoLGwubGVuZ3RoKSxwPTA7cDxuO3ArKylpZihoW3BdIT09bFtwXSl7Zz1oW3BdLWxbcF07YnJlYWsgYX1nPWgubGVuZ3RoLWwubGVuZ3RofXJldHVybiBnfQpmdW5jdGlvbiBrRShhKXtpZihhPT1udWxsfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKGEuZXZlbnQpcmV0dXJuITA7aWYoSGIoYSkpe3ZhciBiPWFbMF07aWYoYj09PSJjb25maWcifHxiPT09ImV2ZW50Inx8Yj09PSJqcyJ8fGI9PT0iZ2V0IilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtRShhKXtyZXR1cm57bWVzc2FnZTphLm1lc3NhZ2UsbWVzc2FnZUNvbnRleHQ6YS5tZXNzYWdlQ29udGV4dH19ZnVuY3Rpb24gc0UoYSxiLGMpe3JldHVybiBpRShhLGIsYyl9ZnVuY3Rpb24gdEUoYSxiKXtyZXR1cm4gakUoYSxiKX1mdW5jdGlvbiByRSgpe3BFKCl9ZnVuY3Rpb24gdUUoYSl7cmV0dXJuIGhFLnB1c2goYSl9O3ZhciB2RT1mdW5jdGlvbigpe307dkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiPVJqKEEubG9jYXRpb24uaHJlZik7KGE9Yi5ob3N0bmFtZStiLnBhdGhuYW1lKSYmVW0oImRsIixlbmNvZGVVUklDb21wb25lbnQoYSkpO3ZhciBjO3ZhciBkPUUoNSk7aWYoZCl7dmFyIGU9SWYoNyk/MTowLGY9RmsoKSxnPWYmJmYuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj8xOjAsaD1mJiZmLnNvdXJjZXx8MCxsPUUoNik7Yz1kKyI7IitsKyI7IitnKyI7IitoKyI7IitlfWVsc2UgYz12b2lkIDA7dmFyIG49YztuJiZVbSgidGRwIixuKTt2YXIgcD1PcCghMCk7cCE9PXZvaWQgMCYmVW0oImZybSIsU3RyaW5nKHApKX07dmFyIHdFPW5ldyB2RTt2YXIgeEU9ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKTt0aGlzLks9dm9pZCAwfSx5RT1mdW5jdGlvbihhLGIpe3JldHVybiBabShhLGZ1bmN0aW9uKGMpe3JldHVybiBjLmpiPjA/Yj9jLmpiKyJfIitXbShjKTpTdHJpbmcoYy5qYik6dm9pZCAwfSl9Owp4RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYocGwoKXx8Zm4uSylVbSgiY3NwIixmdW5jdGlvbigpe3ZhciBiPXlFKGEuSCwhMCk7JG0oYS5IKTtyZXR1cm4gYn0sITEpLFVtKCJtZGUiLGZ1bmN0aW9uKCl7dmFyIGI9Y24uSCxjPXlFKGIsITEpOyRtKGIpO3JldHVybiBjfSwhMSksQS5hZGRFdmVudExpc3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsZnVuY3Rpb24oYil7aWYoYi5kaXNwb3NpdGlvbj09PSJlbmZvcmNlIil7UCgxNzkpO3ZhciBjPW5uKGIuZWZmZWN0aXZlRGlyZWN0aXZlKTtpZihjKXt2YXIgZDthOnt2YXIgZT1iLmJsb2NrZWRVUkksZj1rbjtpZihmbi5LJiZlKXt2YXIgZz1qbihjLGUpO2lmKGcpe3ZhciBoO2Q9KGg9bG4oZixjKSk9PW51bGw/dm9pZCAwOmhbZ107YnJlYWsgYX19ZD12b2lkIDB9dmFyIGw9ZDtpZihsKXt2YXIgbjthOnt0cnl7dmFyIHA9bmV3IFVSTChiLmJsb2NrZWRVUkkpLHE9cC5wYXRobmFtZS5pbmRleE9mKCI7Iik7Cm49cT49MD9wLm9yaWdpbitwLnBhdGhuYW1lLnN1YnN0cmluZygwLHEpOnAub3JpZ2luK3AucGF0aG5hbWU7YnJlYWsgYX1jYXRjaChEKXt9bj12b2lkIDB9dmFyIHI9bjtpZihyKXtmb3IodmFyIHQ9bShsKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSl7dmFyIHY9dS52YWx1ZTtpZighdi5Fbyl7di5Fbz0hMDt2YXIgeD17ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9O2lmKHBsKCkpe3ZhciB5PXgsej17dHlwZToxLGJsb2NrZWRVcmw6cixlbmRwb2ludDp2LmVuZHBvaW50LHZpb2xhdGlvbjpiLmVmZmVjdGl2ZURpcmVjdGl2ZX07aWYocGwoKSl7dmFyIEM9TGwoIlRBR19ESUFHTk9TVElDUyIse2V2ZW50SWQ6eT09bnVsbD92b2lkIDA6eS5ldmVudElkLHByaW9yaXR5SWQ6eT09bnVsbD92b2lkIDA6eS5wcmlvcml0eUlkfSk7Qy50YWdEaWFnbm9zdGljcz16O29sKEMpfX16RShhLHYuZGVzdGluYXRpb25JZCx2LmVuZHBvaW50LGMpfX1tbihjLApiLmJsb2NrZWRVUkkpfX19fX0pfTt2YXIgekU9ZnVuY3Rpb24oYSxiLGMsZCl7YW4oYS5ILGIsYywxLGQpO1ZtKCJjc3AiLCEwKTtWbSgibWRlIiwhMCk7YyE9PTYxJiZjIT09NTYmJmEuSz09PXZvaWQgMCYmKGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkguamI+MCYmdG8oITEpO2EuSz12b2lkIDB9LDUwMCkpfSxBRT1uZXcgeEU7dmFyIEJFPWZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wfTtCRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7Q0UodGhpcyk7SWYoNjUpJiZVbSgibXRibCIsIjEiKTtVbSgidiIsIjMiKTtVbSgidCIsInQiKTtVbSgicGlkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcobm0oam0uYmEuYmgpKX0pO1VtKCJndG0iLGZ1bmN0aW9uKCl7cmV0dXJuIGR1KCl9KTtVbSgic2VxIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoKythLnNlcXVlbmNlTnVtYmVyKX0pO1VtKCJleHAiLGZ1bmN0aW9uKCl7cmV0dXJuIENwKCl9KX07dmFyIENFPWZ1bmN0aW9uKGEpe2lmKG5tKGptLmJhLmJoKT09PXZvaWQgMCl7dmFyIGI9ZnVuY3Rpb24oKXttbShqbS5iYS5iaCxEYigpKTthLnNlcXVlbmNlTnVtYmVyPTB9O2IoKTtjZChiLDg2NEU1KX1lbHNlIHBtKGptLmJhLmJoLGZ1bmN0aW9uKCl7YS5zZXF1ZW5jZU51bWJlcj0wfSk7YS5zZXF1ZW5jZU51bWJlcj0wfSxERT1uZXcgQkU7ZnVuY3Rpb24gRUUoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEFbYV19fQp2YXIgRkU9e30sR0U9KEZFWzE0XT1mdW5jdGlvbigpe3ZhciBhO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6YS5nZXRSYW5kb21WYWx1ZXN9LEZFWzE1XT1mdW5jdGlvbigpe3ZhciBhLGI7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDooYj1hLnN1YnRsZSk9PW51bGw/dm9pZCAwOmIuZGlnZXN0fSxGRVsxXT1FRSgiZmV0Y2giKSxGRVs2XT1FRSgiTWFwIiksRkVbMl09ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb219LEZFWzhdPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIil9LEZFWzldPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzfSxGRVsxMF09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzfSxGRVs1XT1FRSgiUHJvbWlzZSIpLEZFWzEzXT1FRSgiUmVnRXhwIiksRkVbM109ZnVuY3Rpb24oKXtyZXR1cm4gSGMuc2VuZEJlYWNvbn0sRkVbN109RUUoIlNldCIpLEZFWzEyXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofSwKRkVbMTFdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aH0sRkVbNF09RUUoIlhNTEh0dHBSZXF1ZXN0IiksRkUpLEhFPXt9LElFPShIRVsxNV09ITAsSEUpO3ZhciBORT0vXihodHRwcz86KT9cL1wvLzsKZnVuY3Rpb24gaEYoKXt9O2Z1bmN0aW9uIGlGKCl7SWYoNjIpJiYoaHkoImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC5maXhNaXNzaW5nQXBpKSE9PSEwfSkpfTt2YXIgakY9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTtqRi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTt2YXIga0Y9bmV3IGpGO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7bHQoe0d1OjAsRnU6MSxDdToyLHh1OjMsRHU6NCx5dTo1LEV1OjYsQXU6NyxCdTo4LHd1OjksenU6MTAsSHU6MTF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO2x0KHtKdTowLEt1OjEsSXU6Mn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7dmFyIGxGPWZ1bmN0aW9uKGEsYixjLGQpe3J0LmNhbGwodGhpcyk7dGhpcy5mZT1iO3RoaXMua2Q9Yzt0aGlzLmFjPWQ7dGhpcy5MYT1uZXcgTWFwO3RoaXMuaGU9MDt0aGlzLmphPW5ldyBNYXA7dGhpcy55YT1uZXcgTWFwO3RoaXMuWj12b2lkIDA7dGhpcy5LPWF9O3dhKGxGLHJ0KTtsRi5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLkg7dGhpcy5MYS5jbGVhcigpO3RoaXMuamEuY2xlYXIoKTt0aGlzLnlhLmNsZWFyKCk7dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuYWM7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnZhciBtRj1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLmtkJiZhLmtkKGEuSyk/YS5IPWEuSzphLkg9TnAoYS5LLGEuZmUpO3ZhciBiO3JldHVybihiPWEuSCkhPW51bGw/YjpudWxsfSxvRj1mdW5jdGlvbihhLGIsYyl7aWYobUYoYSkpaWYoYS5IPT09YS5LKXt2YXIgZD1hLkxhLmdldChiKTtkJiZkKGEuSCxjKX1lbHNle3ZhciBlPWEuamEuZ2V0KGIpO2lmKGUmJmUuZGspe25GKGEpO3ZhciBmPSsrYS5oZTthLnlhLnNldChmLHtwZTplLnBlLElyOmUubm8oYykscGVyc2lzdGVudDpiPT09ImFkZEV2ZW50TGlzdGVuZXIifSk7YS5ILnBvc3RNZXNzYWdlKGUuZGsoYyxmKSwiKiIpfX19LG5GPWZ1bmN0aW9uKGEpe2EuWnx8KGEuWj1mdW5jdGlvbihiKXtpZihiLnNvdXJjZT09PWEuSCl0cnl7dmFyIGM7Yz1hLmFjP2EuYWMoYik6dm9pZCAwO2lmKGMpe3ZhciBkPWMuWXMsZT1hLnlhLmdldChkKTtpZihlKXtlLnBlcnNpc3RlbnR8fGEueWEuZGVsZXRlKGQpO3ZhciBmOyhmPQplLnBlKT09bnVsbHx8Zi5jYWxsKGUsZS5JcixjLnBheWxvYWQpfX19Y2F0Y2goZyl7fX0sbXQoYS5LLCJtZXNzYWdlIixhLlopKX07dmFyIHBGPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5saXN0ZW5lcixkPSgwLGEuX19ncHApKCJhZGRFdmVudExpc3RlbmVyIixjKTtkJiZjKGQsITApfSxxRj1mdW5jdGlvbihhLGIpeygwLGEuX19ncHApKCJyZW1vdmVFdmVudExpc3RlbmVyIixiLmxpc3RlbmVyLGIubGlzdGVuZXJJZCl9LHJGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6ImFkZEV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSJ9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybjthKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX19LHNGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSIsCnBhcmFtZXRlcjphLmxpc3RlbmVySWR9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybixkPWMucmV0dXJuVmFsdWUuZGF0YTthPT1udWxsfHxhKGQsYy5zdWNjZXNzKX19O2Z1bmN0aW9uIHRGKGEpe3ZhciBiPXt9O3ZmKGEuZGF0YSk/Yj1KU09OLnBhcnNlKGEuZGF0YSk6Yj1hLmRhdGE7cmV0dXJue3BheWxvYWQ6YixZczpiLl9fZ3BwUmV0dXJuLmNhbGxJZH19CnZhciB1Rj1mdW5jdGlvbihhLGIpe3ZhciBjO2M9KGI9PT12b2lkIDA/e306YikudGltZW91dE1zO3J0LmNhbGwodGhpcyk7dGhpcy5jYWxsZXI9bmV3IGxGKGEsIl9fZ3BwTG9jYXRvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkLl9fZ3BwPT09ImZ1bmN0aW9uIn0sdEYpO3RoaXMuY2FsbGVyLkxhLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIscEYpO3RoaXMuY2FsbGVyLmphLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIsckYpO3RoaXMuY2FsbGVyLkxhLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIscUYpO3RoaXMuY2FsbGVyLmphLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsc0YpO3RoaXMudGltZW91dE1zPWMhPW51bGw/Yzo1MDB9O3dhKHVGLHJ0KTt1Ri5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuY2FsbGVyLmRpc3Bvc2UoKTtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdUYucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPUhwKGZ1bmN0aW9uKCl7YSh2RiwhMCl9KSxkPXRoaXMudGltZW91dE1zPT09LTE/dm9pZCAwOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjKCl9LHRoaXMudGltZW91dE1zKTtvRih0aGlzLmNhbGxlciwiYWRkRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKGUsZil7Y2xlYXJUaW1lb3V0KGQpO3RyeXt2YXIgZzt2YXIgaDsoKGg9ZS5waW5nRGF0YSk9PW51bGw/dm9pZCAwOmguZ3BwVmVyc2lvbik9PT12b2lkIDB8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxInx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEuMCI/KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToxLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19JU19ERVBSRUNBVEVEX1NQRUMiLAphcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTpBcnJheS5pc0FycmF5KGUucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zKT9nPWU6KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19FWFBFQ1RFRF9BUFBMSUNBVElPTl9TRUNUSU9OX0FSUkFZIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTthKGcsZil9Y2F0Y2gobCl7aWYoZT09bnVsbD8wOmUubGlzdGVuZXJJZCl0cnl7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCl9Y2F0Y2gobil7YSh3RiwhMCk7cmV0dXJufWEoeEYsITApfX19KX07CnVGLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe29GKHRoaXMuY2FsbGVyLCJyZW1vdmVFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGxpc3RlbmVySWQ6YX0pfTsKdmFyIHhGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfVU5BVkFJTEFCTEUiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx2Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0xJU1RFTkVSX1JFR0lTVFJBVElPTl9USU1FT1VUIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sd0Y9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19SRU1PVkVfRVZFTlRfTElTVEVORVJfRVJST1IiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfTtmdW5jdGlvbiB5RihhKXt2YXIgYjtpZighKGI9YS5waW5nRGF0YS5zaWduYWxTdGF0dXM9PT0icmVhZHkiKSl7dmFyIGM9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnM7Yj0hY3x8Yy5sZW5ndGg9PT0xJiZjWzBdPT09LTF9aWYoYil7a0YuZ3BwU3RyaW5nPWEucGluZ0RhdGEuZ3BwU3RyaW5nO3ZhciBkPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zLmpvaW4oIiwiKTtrRi5IPWR9fWZ1bmN0aW9uIHpGKCl7dHJ5e3ZhciBhPW5ldyB1RihBLHt0aW1lb3V0TXM6LTF9KTttRihhLmNhbGxlcikmJmEuYWRkRXZlbnRMaXN0ZW5lcih5Ril9Y2F0Y2goYil7fX07ZnVuY3Rpb24gQUYoKXt2YXIgYT1bWyJjdiIsRSgxKV0sWyJydiIsRSgxNCldLFsidGMiLGNBLnRhZ3MuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkfSkubGVuZ3RoXV0sYj1KZigxNSk7YiYmYS5wdXNoKFsieCIsYl0pO3ZhciBjPUNwKCk7YyYmYS5wdXNoKFsidGFnX2V4cCIsY10pO3JldHVybiBhfTt2YXIgQkY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiaGYiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsiaHQiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sQ0Y9ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAxOmF8PTE7YnJlYWs7Y2FzZSAyOmF8PTI7YnJlYWs7Y2FzZSAzOmF8PTR9cmV0dXJuIGF9fSxERjt2YXIgRUY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0iIjtmbi5OJiZNKDUxNikmJmZ6KGZ1bmN0aW9uKCl7dmFyIGI9W107YS5IJiZiLnB1c2goWyJwc2QiLGEuSF0pO3JldHVybiBifSl9LEZGO2Z1bmN0aW9uIEdGKCl7cmV0dXJuITF9CmZ1bmN0aW9uIEhGKCl7dmFyIGE9e307cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt9fTtmdW5jdGlvbiBJRigpe3ZhciBhPUpGO3JldHVybiBmdW5jdGlvbihiLGMsZCl7dmFyIGU9ZCYmZC5ldmVudDtLRihjKTt2YXIgZj1CaChiKT92b2lkIDA6MSxnPW5ldyBrYjtHYihjLGZ1bmN0aW9uKHIsdCl7dmFyIHU9VWQodCx2b2lkIDAsZik7dT09PXZvaWQgMCYmdCE9PXZvaWQgMCYmUCg0NCk7Zy5zZXQocix1KX0pO2EuUWIoUWYoKSk7dmFyIGg9e1JuOmhnKGIpLGV2ZW50SWQ6ZT09bnVsbD92b2lkIDA6ZS5pZCxwcmlvcml0eUlkOmUhPT12b2lkIDA/ZS5wcmlvcml0eUlkOnZvaWQgMCxwcmlvcml0eVF1ZXVlOmUhPT12b2lkIDA/ZS5wcmlvcml0eVF1ZXVlOnZvaWQgMCx3ZzplIT09dm9pZCAwP2Z1bmN0aW9uKHIpe2UubGQud2cocil9OnZvaWQgMCxQYjpmdW5jdGlvbigpe3JldHVybiBifSxsb2c6ZnVuY3Rpb24oKXt9LE5yOntpbmRleDpkPT1udWxsP3ZvaWQgMDpkLmluZGV4LHR5cGU6ZD09bnVsbD92b2lkIDA6ZC50eXBlLG5hbWU6ZD09bnVsbD92b2lkIDA6ZC5uYW1lfSwKaXQ6ISFLQShiLDMpLG9yaWdpbmFsRXZlbnREYXRhOmU9PW51bGw/dm9pZCAwOmUub3JpZ2luYWxFdmVudERhdGF9O2UmJmUuY2FjaGVkTW9kZWxWYWx1ZXMmJihoLmNhY2hlZE1vZGVsVmFsdWVzPXtndG06ZS5jYWNoZWRNb2RlbFZhbHVlcy5ndG0sZWNvbW1lcmNlOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZWNvbW1lcmNlfSk7aWYoR0YoKSl7dmFyIGw9SEYoKSxuLHA7aC5BYj17d2s6W10seWc6e30samM6ZnVuY3Rpb24ocix0LHUpe3Q9PT0xJiYobj1yKTt0PT09NyYmKHA9dSk7bChyLHQsdSl9LGVpOlZoKCl9O2gubG9nPWZ1bmN0aW9uKHIpe3ZhciB0PU9hLmFwcGx5KDEsYXJndW1lbnRzKTtuJiZsKG4sNCx7bGV2ZWw6cixzb3VyY2U6cCxtZXNzYWdlOnR9KX19CnZhciBxPXJmKGEsaCxbYixnXSk7YS5RYigpO3EgaW5zdGFuY2VvZiBUYSYmKHEudHlwZT09PSJyZXR1cm4iP3E9cS5kYXRhOnE9dm9pZCAwKTtyZXR1cm4gVGQocSx2b2lkIDAsZil9fWZ1bmN0aW9uIEtGKGEpe3ZhciBiPWEuZ3RtT25TdWNjZXNzLGM9YS5ndG1PbkZhaWx1cmU7eWIoYikmJihhLmd0bU9uU3VjY2Vzcz1mdW5jdGlvbigpe2JkKGIpfSk7eWIoYykmJihhLmd0bU9uRmFpbHVyZT1mdW5jdGlvbigpe2JkKGMpfSl9O2Z1bmN0aW9uIE5GKCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMCl9O3ZhciBPRj1bRi5ELnppXS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuc2xpY2UoMil9KTtmdW5jdGlvbiBRRihhKXt9UUYuUD0iaW50ZXJuYWwuYWRkQWRzQ2xpY2tJZHMiO2Z1bmN0aW9uIFJGKGEsYil7dmFyIGM9dGhpczt9UkYucHVibGljTmFtZT0iYWRkQ29uc2VudExpc3RlbmVyIjt2YXIgU0Y9ITE7ZnVuY3Rpb24gVEYoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpaWYoU0YpdHJ5e2FbYl0oKX1jYXRjaChjKXtQKDc3KX1lbHNlIGFbYl0oKX1mdW5jdGlvbiBVRihhLGIsYyl7dmFyIGQ9dGhpcyxlO3JldHVybiBlfVVGLlA9ImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFZGKGEsYixjKXt9VkYucHVibGljTmFtZT0iYWRkRG9jdW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBXRihhLGIsYyxkKXt9V0YucHVibGljTmFtZT0iYWRkRWxlbWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFhGKGEpe3JldHVybiBhLlQueGIoKX07ZnVuY3Rpb24gWUYoYSl7fVlGLnB1YmxpY05hbWU9ImFkZEV2ZW50Q2FsbGJhY2siOwp2YXIgWkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YTpTdHJpbmcocmooKSl9LGJHPWZ1bmN0aW9uKGEsYil7JEYoYSwiaW5pdCIsITEpfHwoYUcoYSwiaW5pdCIsITApLGIoKSl9LCRGPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jRyhhKTtyZXR1cm4gT2IoZCxiLGMpfSxkRz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jRyhhKSxmPU9iKGUsYixkKSxnPWMoZik7cmV0dXJuIGVbYl09Z30sYUc9ZnVuY3Rpb24oYSxiLGMpe2NHKGEpW2JdPWN9LGNHPWZ1bmN0aW9uKGEpe3ZhciBiPWtqKCJhdXRvRXZlbnRzU2V0dGluZ3MiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtiLmhhc093blByb3BlcnR5KGEpfHwoYlthXT17fSk7cmV0dXJuIGJbYV19LGVHPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17ZXZlbnQ6YiwiZ3RtLmVsZW1lbnQiOmEsImd0bS5lbGVtZW50Q2xhc3NlcyI6b2QoYSwiY2xhc3NOYW1lIiksImd0bS5lbGVtZW50SWQiOmEuZm9yfHxlZChhLCJpZCIpfHwKIiIsImd0bS5lbGVtZW50VGFyZ2V0IjphLmZvcm1UYXJnZXR8fG9kKGEsInRhcmdldCIpfHwiIn07YyYmKGRbImd0bS50cmlnZ2VycyJdPWMuam9pbigiLCIpKTtkWyJndG0uZWxlbWVudFVybCJdPShhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlcy5mb3JtYWN0aW9uP2EuZm9ybUFjdGlvbjoiIil8fGEuYWN0aW9ufHxvZChhLCJocmVmIil8fGEuc3JjfHxhLmNvZGV8fGEuY29kZWJhc2V8fCIiO3JldHVybiBkfTsKZnVuY3Rpb24gaUcoYSl7aWYoYS5mb3JtKXt2YXIgYjtyZXR1cm4oKGI9YS5mb3JtKT09bnVsbD8wOmIudGFnTmFtZSk/YS5mb3JtOkIuZ2V0RWxlbWVudEJ5SWQoYS5mb3JtKX1yZXR1cm4gaGQoYSxbImZvcm0iXSwxMDApfTsKZnVuY3Rpb24gbUcoYSl7fW1HLlA9ImludGVybmFsLmFkZEZvcm1BYmFuZG9ubWVudExpc3RlbmVyIjtmdW5jdGlvbiBuRyhhLGIsYyxkKXt9Cm5HLlA9ImludGVybmFsLmFkZEZvcm1EYXRhIjsKZnVuY3Rpb24gc0coYSl7fXNHLlA9ImludGVybmFsLmFkZEdhU2VuZExpc3RlbmVyIjtmdW5jdGlvbiB0RyhhKXtpZighYSlyZXR1cm57fTt2YXIgYj1hLk5yO3JldHVybiBKQShiLnR5cGUsYi5pbmRleCxiLm5hbWUpfWZ1bmN0aW9uIHVHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPXtvcmlnaW5hdGluZ0VudGl0eTp0RyhhKX07YS5wcmlvcml0eVF1ZXVlJiYoYi5wcmlvcml0eVF1ZXVlPWEucHJpb3JpdHlRdWV1ZSk7cmV0dXJuIGJ9Owp2YXIgd0c9ZnVuY3Rpb24oYSxiLGMpe3ZHKCkudXBkYXRlWm9uZShhLGIsYyl9LHlHPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9e30sZz12RygpO2M9YyYmUmIoYyx4Ryk7Zm9yKHZhciBoPWcuY3JlYXRlWm9uZShhLGMpLGw9MDtsPGIubGVuZ3RoO2wrKyl7dmFyIG49U3RyaW5nKGJbbF0pO2lmKGcucmVnaXN0ZXJDaGlsZChuLEUoNSksaCkpe3ZhciBwPW4scT1hLHI9Zix0PWQsdT1lO2lmKFNiKHAsIkdUTS0iKSloQShwLHZvaWQgMCwhMSx7c291cmNlOjEsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjohMH0pO2Vsc2V7dmFyIHY9cUMoImpzIixNYigpKTtoQShwLHZvaWQgMCwhMCx7c291cmNlOjEsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjohMH0pO3ZhciB4PXtvcmlnaW5hdGluZ0VudGl0eTp0LGluaGVyaXRQYXJlbnRDb25maWc6dX07bUQodixxLHgpO21EKHJDKHAscikscSx4KX19fXJldHVybiBofSx2Rz1mdW5jdGlvbigpe3JldHVybiBraigiem9uZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB6R30pfSwKQUc9e3pvbmU6MSxjbjoxLGNzczoxLGV3OjEsZXE6MSxnZToxLGd0OjEsbGM6MSxsZToxLGx0OjEscmU6MSxzdzoxLHVtOjF9LHhHPXtjbDpbImVjbCJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdfSx6Rz1mdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9e307dGhpcy5OPTB9O2s9ekcucHJvdG90eXBlO2suaXNBY3RpdmU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wO2Q8YS5sZW5ndGgmJiEoYz10aGlzLkhbYVtkXV0pO2QrKyk7aWYoIWMpcmV0dXJuITA7aWYoIXRoaXMuaXNBY3RpdmUoW2Mua2tdLGIpKXJldHVybiExO2Zvcih2YXIgZT0wO2U8Yy5XZy5sZW5ndGg7ZSsrKWlmKHRoaXMuS1tjLldnW2VdXS5jZihiKSlyZXR1cm4hMDtyZXR1cm4hMX07ay5nZXRJc0FsbG93ZWRGbj1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmlzQWN0aXZlKGEsYikpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITF9O2Zvcih2YXIgYyxkPTA7ZDxhLmxlbmd0aCYmCiEoYz10aGlzLkhbYVtkXV0pO2QrKyk7aWYoIWMpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITB9O2Zvcih2YXIgZT1bXSxmPTA7ZjxjLldnLmxlbmd0aDtmKyspe3ZhciBnPXRoaXMuS1tjLldnW2ZdXTtnLmNmKGIpJiZlLnB1c2goZyl9aWYoIWUubGVuZ3RoKXJldHVybiBmdW5jdGlvbigpe3JldHVybiExfTt2YXIgaD10aGlzLmdldElzQWxsb3dlZEZuKFtjLmtrXSxiKTtyZXR1cm4gZnVuY3Rpb24obCxuKXtuPW58fFtdO2lmKCFoKGwsbikpcmV0dXJuITE7Zm9yKHZhciBwPTA7cDxlLmxlbmd0aDsrK3ApaWYoZVtwXS5OKGwsbikpcmV0dXJuITA7cmV0dXJuITF9fTtrLnVucmVnaXN0ZXJDaGlsZD1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKylkZWxldGUgdGhpcy5IW2FbYl1dfTtrLmNyZWF0ZVpvbmU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1TdHJpbmcoKyt0aGlzLk4pO3RoaXMuS1tjXT1uZXcgQkcoYSxiKTtyZXR1cm4gY307ay51cGRhdGVab25lPWZ1bmN0aW9uKGEsCmIsYyl7dmFyIGQ9dGhpcy5LW2FdO2QmJmQuUihiLGMpfTtrLnJlZ2lzdGVyQ2hpbGQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuSFthXSxlO2lmKGU9IWQpbGooKSxlPWpqLkhbYV07aWYoZXx8IWQmJkVrKGEpfHxkJiZkLmtrIT09YilyZXR1cm4hMTtpZihkKXJldHVybiBkLldnLnB1c2goYyksITE7dGhpcy5IW2FdPXtrazpiLFdnOltjXX07cmV0dXJuITB9O3ZhciBCRz1mdW5jdGlvbihhLGIpe3RoaXMuSz1udWxsO3RoaXMuSD1be2V2ZW50SWQ6YSxjZjohMH1dO2lmKGIpe3RoaXMuSz17fTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl0aGlzLktbYltjXV09ITB9fTtCRy5wcm90b3R5cGUuUj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFt0aGlzLkgubGVuZ3RoLTFdO2E8PWMuZXZlbnRJZHx8Yy5jZiE9PWImJnRoaXMuSC5wdXNoKHtldmVudElkOmEsY2Y6Yn0pfTtCRy5wcm90b3R5cGUuY2Y9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMuSC5sZW5ndGgtMTtiPj0wO2ItLSlpZih0aGlzLkhbYl0uZXZlbnRJZDw9CmEpcmV0dXJuIHRoaXMuSFtiXS5jZjtyZXR1cm4hMX07QkcucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXtiPWJ8fFtdO2lmKCF0aGlzLkt8fEFHW2FdfHx0aGlzLktbYV0pcmV0dXJuITA7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2MpaWYodGhpcy5LW2JbY11dKXJldHVybiEwO3JldHVybiExfTtmdW5jdGlvbiBDRyhhKXt2YXIgYj1taigiem9uZXMiKTtyZXR1cm4gYj9iLmdldElzQWxsb3dlZEZuKHdrKCksYSk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19ZnVuY3Rpb24gREcoKXt2YXIgYT1taigiem9uZXMiKTthJiZhLnVucmVnaXN0ZXJDaGlsZCh3aygpKX0KZnVuY3Rpb24gRUcoKXtrQih2aygpLGZ1bmN0aW9uKGEpe3ZhciBiPWEub3JpZ2luYWxFdmVudERhdGFbImd0bS51bmlxdWVFdmVudElkIl0sYz1taigiem9uZXMiKTtyZXR1cm4gYz9jLmlzQWN0aXZlKHdrKCksYik6ITB9KTtoQih2aygpLGZ1bmN0aW9uKGEpe3ZhciBiLGM7Yj1hLmVudGl0eUlkO2M9YS5zZWN1cml0eUdyb3VwcztyZXR1cm4gQ0coTnVtYmVyKGEub3JpZ2luYWxFdmVudERhdGFbImd0bS51bmlxdWVFdmVudElkIl0pKShiLGMpfSl9O3ZhciBGRz1mdW5jdGlvbihhLGIpe3RoaXMudGFnSWQ9YTt0aGlzLmNhbm9uaWNhbElkPWJ9OwpmdW5jdGlvbiBHRyhhLGIpe3ZhciBjPXRoaXM7aWYoIWxoKGEpfHwhZWgoYikmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGQ9VGQoYix0aGlzLlQsMSl8fHt9LGU9ZC5maXJzdFBhcnR5VXJsLGY9ZC5vbkxvYWQsZz1kLmxvYWRCeURlc3RpbmF0aW9uPT09ITAsaD1kLmlzR3RtRXZlbnQ9PT0hMDtURihbZnVuY3Rpb24oKXtMKGMsImxvYWRfZ29vZ2xlX3RhZ3MiLGEsZSl9XSk7aWYoZyl7aWYoR2soYSkpcmV0dXJuIGF9ZWxzZSBpZihFayhhKSlyZXR1cm4gYTt2YXIgbD02LG49WEYodGhpcyk7aCYmKGw9Nyk7bi5QYigpPT09Il9fem9uZSImJihsPTEpO3ZhciBwPXtzb3VyY2U6bCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSxxPWZ1bmN0aW9uKHIpe2hCKHIsZnVuY3Rpb24odCl7Zm9yKHZhciB1PQppQigpLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zKDAsdmsoKSksdj1tKHUpLHg9di5uZXh0KCk7IXguZG9uZTt4PXYubmV4dCgpKXt2YXIgeT14LnZhbHVlO2lmKCF5KHQpKXJldHVybiExfXJldHVybiEwfSwhMCk7a0IocixmdW5jdGlvbih0KXtmb3IodmFyIHU9aUIoKS5nZXRFeHRlcm5hbFJlc3RyaWN0aW9ucygxLHZrKCkpLHY9bSh1KSx4PXYubmV4dCgpOyF4LmRvbmU7eD12Lm5leHQoKSl7dmFyIHk9eC52YWx1ZTtpZigheSh0KSlyZXR1cm4hMX1yZXR1cm4hMH0sITApO2YmJmYobmV3IEZHKGEscikpfTtnP25BKGEsZSxwLHEpOmhBKGEsZSwhU2IoYSwiR1RNLSIpLHAscSk7ZiYmbi5QYigpPT09Il9fem9uZSImJnlHKE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFthXSxudWxsLHRHKFhGKHRoaXMpKSk7cmV0dXJuIGF9R0cuUD0iaW50ZXJuYWwubG9hZEdvb2dsZVRhZyI7ZnVuY3Rpb24gSEcoYSl7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGIpO2lmKGMgaW5zdGFuY2VvZiBLZClyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKCl7dmFyIGQ9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGU9dGhpcyxmPUVkKFhGKHRoaXMpLG51bGwpO2YuZXZlbnRJZD1hLmV2ZW50SWQ7Zi5wcmlvcml0eUlkPWEucHJpb3JpdHlJZDtmLm9yaWdpbmFsRXZlbnREYXRhPWEub3JpZ2luYWxFdmVudERhdGE7dmFyIGc9ZC5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGUuZXZhbHVhdGUobCl9KSxoPXRoaXMuVC53YigpO2gudWUoZik7cmV0dXJuIGMuTmMuYXBwbHkoYyxbaF0uY29uY2F0KHcoZykpKX0pfSl9O2Z1bmN0aW9uIElHKGEsYixjKXt2YXIgZD10aGlzO31JRy5QPSJpbnRlcm5hbC5hZGRHb29nbGVUYWdSZXN0cmljdGlvbiI7CmZ1bmN0aW9uIFBHKGEsYil7fVBHLlA9ImludGVybmFsLmFkZEhpc3RvcnlDaGFuZ2VMaXN0ZW5lciI7ZnVuY3Rpb24gUUcoYSxiLGMpe31RRy5wdWJsaWNOYW1lPSJhZGRXaW5kb3dFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBSRyhhLGIpe3JldHVybiEwfVJHLnB1YmxpY05hbWU9ImFsaWFzSW5XaW5kb3ciO2Z1bmN0aW9uIFNHKGEsYixjKXt9U0cuUD0iaW50ZXJuYWwuYXBwZW5kUmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBURyhhKXt2YXIgYjtyZXR1cm4gYn0KVEcucHVibGljTmFtZT0iY2FsbEluV2luZG93IjtmdW5jdGlvbiBVRyhhKXt9VUcucHVibGljTmFtZT0iY2FsbExhdGVyIjtmdW5jdGlvbiBWRyhhKXt9VkcuUD0iY2FsbE9uRG9tUmVhZHkiO2Z1bmN0aW9uIFdHKGEpe31XRy5QPSJjYWxsT25XaW5kb3dMb2FkIjtmdW5jdGlvbiBaRyhhLGIpe3JldHVybiBjfVpHLlA9ImludGVybmFsLmNsYWltRGVzdGluYXRpb24iO2Z1bmN0aW9uICRHKGEsYil7dmFyIGM7cmV0dXJuIGN9JEcuUD0iaW50ZXJuYWwuY29tcHV0ZUd0bVBhcmFtZXRlciI7ZnVuY3Rpb24gYUgoYSxiKXt2YXIgYz10aGlzO31hSC5QPSJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVGaXJzdFRyeSI7ZnVuY3Rpb24gYkgoYSxiKXt2YXIgYz10aGlzO31iSC5QPSJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVSZXRyeSI7ZnVuY3Rpb24gY0goYSl7dmFyIGI7cmV0dXJuIGJ9Y0guUD0iaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIGRIKGEsYil7dmFyIGM7aWYoIWxoKGEpfHwhcWgoYikmJmIhPT1udWxsJiYhZ2goYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIm51bWJlcnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9kYXRhX2xheWVyIixhKTt2YXIgZDsoYnx8MikhPT0yP2Q9dUEoYSwxKTpkPXFBKHJBLGEsW0EsQl0pO2M9ZDt2YXIgZT1VZChjLHRoaXMuVCxCaChYRih0aGlzKS5QYigpKT8yOjEpO2U9PT12b2lkIDAmJmMhPT12b2lkIDAmJlAoNDUpO3JldHVybiBlfWRILnB1YmxpY05hbWU9ImNvcHlGcm9tRGF0YUxheWVyIjsKZnVuY3Rpb24gZUgoYSl7dmFyIGI9dm9pZCAwO0wodGhpcywicmVhZF9kYXRhX2xheWVyIixhKTthPVN0cmluZyhhKTt2YXIgYzthOntmb3IodmFyIGQ9WEYodGhpcykuY2FjaGVkTW9kZWxWYWx1ZXMsZT1tKGEuc3BsaXQoIi4iKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe2lmKGQ9PW51bGwpe2M9dm9pZCAwO2JyZWFrIGF9ZD1kW2YudmFsdWVdfWM9ZH1iPVVkKGMsdGhpcy5ULDEpO3JldHVybiBifWVILlA9ImludGVybmFsLmNvcHlGcm9tRGF0YUxheWVyQ2FjaGUiO2Z1bmN0aW9uIGZIKGEpe3ZhciBiO3JldHVybiBifWZILnB1YmxpY05hbWU9ImNvcHlGcm9tV2luZG93IjtmdW5jdGlvbiBnSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfWdILlA9ImludGVybmFsLmNvcHlLZXlGcm9tV2luZG93Ijt2YXIgaEg9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1jby5pYS5jYiYmZm8uSFthXT09PWJvLk1hLlVlJiYhWG8oRi5ELmthKX07dmFyIGlIPWZ1bmN0aW9uKCl7cmV0dXJuIjAifSxqSD1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXJldHVybiIiO3ZhciBiPVsiZ2NsaWQiLCJkY2xpZCIsIndicmFpZCIsIl9nbCJdO00oMTAyKSYmYi5wdXNoKCJnYnJhaWQiKTtyZXR1cm4gU2ooYSxiLCIwIil9O3ZhciBrSD17fSxsSD17fSxtSD17fSxuSD17fSxvSD17fSxwSD17fSxxSD17fSxySD17fSxzSD17fSx0SD17fSx1SD17fSx2SD17fSx3SD17fSx4SD17fSx5SD17fSx6SD17fSxBSD17fSxCSD17fSxDSD17fSxESD17fSxFSD17fSxGSD17fSxHSD17fSxISD17fSxJSD17fSxKSD17fSxLSD0oSkhbRi5ELmZiXT0oa0hbMl09W2hIXSxrSCksSkhbRi5ELlpmXT0obEhbMl09W2hIXSxsSCksSkhbRi5ELkppXT0obUhbMl09W2hIXSxtSCksSkhbRi5ELmdtXT0obkhbMl09W2hIXSxuSCksSkhbRi5ELmhtXT0ob0hbMl09W2hIXSxvSCksSkhbRi5ELmltXT0ocEhbMl09W2hIXSxwSCksSkhbRi5ELmptXT0ocUhbMl09W2hIXSxxSCksSkhbRi5ELmttXT0ockhbMl09W2hIXSxySCksSkhbRi5ELkJjXT0oc0hbMl09W2hIXSxzSCksSkhbRi5ELmNnXT0odEhbMl09W2hIXSx0SCksSkhbRi5ELmRnXT0odUhbMl09W2hIXSx1SCksSkhbRi5ELmVnXT0odkhbMl09W2hIXSx2SCksSkhbRi5ELmZnXT0od0hbMl09CltoSF0sd0gpLEpIW0YuRC5nZ109KHhIWzJdPVtoSF0seEgpLEpIW0YuRC5oZ109KHlIWzJdPVtoSF0seUgpLEpIW0YuRC5pZ109KHpIWzJdPVtoSF0sekgpLEpIW0YuRC5qZ109KEFIWzJdPVtoSF0sQUgpLEpIW0YuRC5sYl09KEJIWzFdPVtoSF0sQkgpLEpIW0YuRC5EZF09KENIWzFdPVtoSF0sQ0gpLEpIW0YuRC5LZF09KERIWzFdPVtoSF0sREgpLEpIW0YuRC5FZV09KEVIWzFdPVtoSF0sRUgpLEpIW0YuRC5CZl09KEZIWzFdPVtmdW5jdGlvbihhKXtyZXR1cm4gTSgxMDIpJiZoSChhKX1dLEZIKSxKSFtGLkQuVWNdPShHSFsxXT1baEhdLEdIKSxKSFtGLkQuemFdPShISFsxXT1baEhdLEhIKSxKSFtGLkQuVWFdPShJSFsxXT1baEhdLElIKSxKSCksTEg9e30sTUg9KExIW0YuRC5sYl09aUgsTEhbRi5ELkRkXT1pSCxMSFtGLkQuS2RdPWlILExIW0YuRC5FZV09aUgsTEhbRi5ELkJmXT1pSCxMSFtGLkQuVWNdPWZ1bmN0aW9uKGEpe2lmKCFDZChhKSlyZXR1cm57fTt2YXIgYj1FZChhLApudWxsKTtkZWxldGUgYi5tYXRjaF9pZDtyZXR1cm4gYn0sTEhbRi5ELnphXT1qSCxMSFtGLkQuVWFdPWpILExIKSxOSD17fSxPSD17fSxQSD0oT0hbSC5KLllhXT0oTkhbMl09W2hIXSxOSCksT0gpLFFIPXt9O3ZhciBSSD1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLk49Yjt0aGlzLlI9Yzt0aGlzLlo9ZH07UkgucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9jby5pYS5nZDphO2lmKCF0aGlzLk4uc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYihhKX0pKXJldHVybiB0aGlzLlIuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYihhKX0pP3RoaXMuWih0aGlzLkgpOnRoaXMuSH07UkgucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm4gQWQodGhpcy5IKT09PSJhcnJheSJ8fENkKHRoaXMuSCk/RWQodGhpcy5ILG51bGwpOnRoaXMuSH07CnZhciBTSD1mdW5jdGlvbigpe30sVEg9ZnVuY3Rpb24oYSxiKXt0aGlzLmNvbmRpdGlvbnM9YTt0aGlzLkg9Yn0sVUg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9KChkPWEuY29uZGl0aW9uc1tiXSk9PW51bGw/dm9pZCAwOmRbMl0pfHxbXSxmLGc9KChmPWEuY29uZGl0aW9uc1tiXSk9PW51bGw/dm9pZCAwOmZbMV0pfHxbXTtyZXR1cm4gbmV3IFJIKGMsZSxnLGEuSFtiXXx8U0gpfSxWSCxXSDt2YXIgWUg9ZnVuY3Rpb24oYSl7YS5LPSEwO2EuSD0hMTtpZihJZig1Mikpe2lmKE0oNTE2KSYmWEgoKSl7dmFyIGI7YS5zZXR0aW5ncz0oYj1kYXRhLnByb2R1Y3RTZXR0aW5ncykhPW51bGw/Yjp7fTthLkg9ITB9ZWxzZXt2YXIgYzthLnNldHRpbmdzPShjPXByb2R1Y3RTZXR0aW5ncykhPW51bGw/Yzp7fX1wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO2RhdGEucHJvZHVjdFNldHRpbmdzPXZvaWQgMDt2YXIgZDsoZD1GRikhPW51bGwmJmZuLk4mJk0oNTE2KSYmKGQuSD1hLkg/IjEiOiIwIil9fSwkSD1mdW5jdGlvbihhKXt2YXIgYj1aSDtiLkt8fFlIKGIpO3JldHVybiBiLnNldHRpbmdzW2FdfSxaSD1uZXcgZnVuY3Rpb24oKXt0aGlzLnNldHRpbmdzPXt9O3RoaXMuSz10aGlzLkg9ITF9OwpmdW5jdGlvbiBYSCgpe2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5ncyYmIXByb2R1Y3RTZXR0aW5ncylyZXR1cm4hMDtpZighZGF0YS5wcm9kdWN0U2V0dGluZ3N8fCFwcm9kdWN0U2V0dGluZ3N8fE9iamVjdC5rZXlzKGRhdGEucHJvZHVjdFNldHRpbmdzKS5sZW5ndGghPT1PYmplY3Qua2V5cyhwcm9kdWN0U2V0dGluZ3MpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGEgaW4gcHJvZHVjdFNldHRpbmdzKWlmKCFkYXRhLnByb2R1Y3RTZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShhKXx8ZGF0YS5wcm9kdWN0U2V0dGluZ3NbYV0ucHJlQXV0b1BpaSE9PXByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpKXJldHVybiExO3JldHVybiEwfTt2YXIgYUk9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXZlbnROYW1lPWI7dGhpcy5NPWM7dGhpcy5IPXt9O3RoaXMuaXNBYm9ydGVkPSExO3RoaXMudGFyZ2V0PWE7dGhpcy5tZXRhZGF0YT17fTtmb3IodmFyIGQ9Yy5ldmVudE1ldGFkYXRhfHx7fSxlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO1YodGhpcyxnLGRbZ10pfX0sUj1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7cmV0dXJuKGM9YS5IW2JdKT09bnVsbD92b2lkIDA6KGQ9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmQuY2FsbChjLFEoYSxILkoudGcpKX0sZXU9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEuSCl9LFU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSCxlO2M9PT12b2lkIDA/ZT12b2lkIDA6KFZIIT1udWxsfHwoVkg9bmV3IFRIKEtILE1IKSksZT1VSChWSCxiLGMpKTtkW2JdPWV9OwphSS5wcm90b3R5cGUubWVyZ2VIaXREYXRhRm9yS2V5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlO2M9KGQ9dGhpcy5IW2FdKT09bnVsbD92b2lkIDA6KGU9ZC5LKT09bnVsbD92b2lkIDA6ZS5jYWxsKGQpO2lmKCFjKXJldHVybiBVKHRoaXMsYSxiKSwhMDtpZighQ2QoYykpcmV0dXJuITE7VSh0aGlzLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxjLGIpKTtyZXR1cm4hMH07dmFyIGJJPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Zm9yKHZhciBjPW0oT2JqZWN0LmtleXMoYS5IKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj12b2lkIDAsZz12b2lkIDAsaD12b2lkIDA7YltlXT0oZj1hLkhbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6aC5jYWxsKGcpfXJldHVybiBifTsKYUkucHJvdG90eXBlLmNvcHlUb0hpdERhdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU8odGhpcy5NLGEpO2Q9PT12b2lkIDAmJihkPWIpO2lmKHpiKGQpJiZjIT09dm9pZCAwKXRyeXtkPWMoZCl9Y2F0Y2goZSl7fWQhPT12b2lkIDAmJlUodGhpcyxhLGQpfTsKdmFyIFE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm1ldGFkYXRhW2JdO2lmKGI9PT1ILkoudGcpe3ZhciBkO3JldHVybiBjPT1udWxsP3ZvaWQgMDooZD1jLkspPT1udWxsP3ZvaWQgMDpkLmNhbGwoYyl9dmFyIGU7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihlPWMuZ2V0VmFsdWUpPT1udWxsP3ZvaWQgMDplLmNhbGwoYyxRKGEsSC5KLnRnKSl9LFY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubWV0YWRhdGEsZTtjPT09dm9pZCAwP2U9YzooV0ghPW51bGx8fChXSD1uZXcgVEgoUEgsUUgpKSxlPVVIKFdILGIsYykpO2RbYl09ZX0sY0k9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLm1ldGFkYXRhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj12b2lkIDAsZz12b2lkIDAsaD12b2lkIDA7YltlXT0oZj1hLm1ldGFkYXRhW2VdKT09bnVsbD92b2lkIDA6KGg9KGc9ZikuSyk9PW51bGw/dm9pZCAwOgpoLmNhbGwoZyl9cmV0dXJuIGJ9LGRJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0kSChhLnRhcmdldC5kZXN0aW5hdGlvbklkKTtyZXR1cm4gZCYmZFtiXSE9PXZvaWQgMD9kW2JdOmN9LFp1PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBhSSgoYj09bnVsbD92b2lkIDA6Yi50YXJnZXQpfHxhLnRhcmdldCwoYj09bnVsbD92b2lkIDA6Yi5ldmVudE5hbWUpfHxhLmV2ZW50TmFtZSwoYj09bnVsbD92b2lkIDA6Yi5NKXx8YS5NKSxkPWJJKGEpLGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7VShjLGcsZFtnXSl9Zm9yKHZhciBoPWNJKGEpLGw9bShPYmplY3Qua2V5cyhoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7VihjLHAsaFtwXSl9Yy5pc0Fib3J0ZWQ9YS5pc0Fib3J0ZWQ7cmV0dXJuIGN9LGVJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuTSxjPWIuZXZlbnRJZCxkPWIucHJpb3JpdHlJZDsKcmV0dXJuIGQ/YysiXyIrZDpTdHJpbmcoYyl9O2FJLnByb3RvdHlwZS5hY2NlcHQ9ZnVuY3Rpb24oKXt2YXIgYT1vbShqbS5iYS5TaSx7fSksYj1lSSh0aGlzKSxjPXRoaXMudGFyZ2V0LmRlc3RpbmF0aW9uSWQ7YVtiXXx8KGFbYl09e30pO2FbYl1bY109dmsoKTt2YXIgZD1qbS5iYS5TaTtpZihrbShkKSl7dmFyIGU7KGU9bG0oZCkpPT1udWxsfHxlLm5vdGlmeSgpfX07YUkucHJvdG90eXBlLmNhbkJlQWNjZXB0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9bm0oam0uYmEuU2kpO2lmKCFiKXJldHVybiEwO3ZhciBjPWJbZUkodGhpcyldO2lmKCFjKXJldHVybiEwO3ZhciBkPWNbYSE9bnVsbD9hOnRoaXMudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO3JldHVybiBkPT09dm9pZCAwfHxkPT09dmsoKX07ZnVuY3Rpb24gZkkoYSl7cmV0dXJue2dldERlc3RpbmF0aW9uSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS50YXJnZXQuZGVzdGluYXRpb25JZH0sZ2V0RXZlbnROYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGEuZXZlbnROYW1lfSxzZXRFdmVudE5hbWU6ZnVuY3Rpb24oYil7YS5ldmVudE5hbWU9Yn0sZ2V0SGl0RGF0YTpmdW5jdGlvbihiKXtyZXR1cm4gUihhLGIpfSxzZXRIaXREYXRhOmZ1bmN0aW9uKGIsYyl7VShhLGIsYyl9LHNldEhpdERhdGFJZk5vdERlZmluZWQ6ZnVuY3Rpb24oYixjKXtSKGEsYik9PT12b2lkIDAmJlUoYSxiLGMpfSxjb3B5VG9IaXREYXRhOmZ1bmN0aW9uKGIsYyl7YS5jb3B5VG9IaXREYXRhKGIsYyl9LGdldE1ldGFkYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBRKGEsYil9LHNldE1ldGFkYXRhOmZ1bmN0aW9uKGIsYyl7VihhLGIsYyl9LGlzQWJvcnRlZDpmdW5jdGlvbigpe3JldHVybiBhLmlzQWJvcnRlZH0sYWJvcnQ6ZnVuY3Rpb24oKXthLmlzQWJvcnRlZD0hMH0sCmdldEZyb21FdmVudENvbnRleHQ6ZnVuY3Rpb24oYil7cmV0dXJuIE8oYS5NLGIpfSxyYjpmdW5jdGlvbigpe3JldHVybiBhfSxnZXRIaXRLZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGV1KGEpfSxnZXRNZXJnZWRWYWx1ZXM6ZnVuY3Rpb24oYil7cmV0dXJuIGEuTS5nZXRNZXJnZWRWYWx1ZXMoYiwzKX0sbWVyZ2VIaXREYXRhRm9yS2V5OmZ1bmN0aW9uKGIsYyl7cmV0dXJuIENkKGMpP2EubWVyZ2VIaXREYXRhRm9yS2V5KGIsYyk6ITF9LGFjY2VwdDpmdW5jdGlvbigpe2EuYWNjZXB0KCl9LGNhbkJlQWNjZXB0ZWQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEuY2FuQmVBY2NlcHRlZChiKX19fTtmdW5jdGlvbiBnSShhLGIpe3ZhciBjO3JldHVybiBjfWdJLlA9ImludGVybmFsLmNvcHlQcmVIaXQiO2Z1bmN0aW9uIGhJKGEsYil7dmFyIGM9bnVsbDtpZighbGgoYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwicmVhZHdyaXRlIixhKTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwicmVhZHdyaXRlIixiKTt2YXIgZD1bQSxCXSxlPWEuc3BsaXQoIi4iKSxmPVViKEEsZSxkKSxnPWVbZS5sZW5ndGgtMV07aWYoZj09PXZvaWQgMCl0aHJvdyBFcnJvcigiUGF0aCAiK2ErIiBkb2VzIG5vdCBleGlzdC4iKTt2YXIgaD1mW2ddO2lmKGgpcmV0dXJuIHliKGgpP1VkKGgsdGhpcy5ULDIpOm51bGw7dmFyIGw7aD1mdW5jdGlvbigpe2lmKCF5YihsLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIitiKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtsLnB1c2guY2FsbChsLAphcmd1bWVudHMpfTtmW2ddPWg7dmFyIG49Yi5zcGxpdCgiLiIpLHA9VWIoQSxuLGQpLHE9bltuLmxlbmd0aC0xXTtpZihwPT09dm9pZCAwKXRocm93IEVycm9yKCJQYXRoICIrbisiIGRvZXMgbm90IGV4aXN0LiIpO2w9cFtxXTtsPT09dm9pZCAwJiYobD1bXSxwW3FdPWwpO2M9ZnVuY3Rpb24oKXtoLmFwcGx5KGgsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX07cmV0dXJuIFVkKGMsdGhpcy5ULDIpfWhJLnB1YmxpY05hbWU9ImNyZWF0ZUFyZ3VtZW50c1F1ZXVlIjtmdW5jdGlvbiBpSShhKXtyZXR1cm4gVWQoZnVuY3Rpb24oYyl7dmFyIGQ9U0EoKTtpZih0eXBlb2YgYz09PSJmdW5jdGlvbiIpZChmdW5jdGlvbigpe2MoZnVuY3Rpb24oZixnLGgpe3ZhciBsPQpTQSgpLG49bCYmbC5nZXRCeU5hbWUmJmwuZ2V0QnlOYW1lKGYpO3JldHVybihuZXcgQS5nYXBsdWdpbnMuTGlua2VyKG4pKS5kZWNvcmF0ZShnLGgpfSl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYykpe3ZhciBlPVN0cmluZyhjWzBdKS5zcGxpdCgiLiIpO2JbZS5sZW5ndGg9PT0xP2VbMF06ZVsxXV0mJmQuYXBwbHkobnVsbCxjKX1lbHNlIGlmKGM9PT0iaXNMb2FkZWQiKXJldHVybiEhZC5sb2FkZWR9LHRoaXMuVCwxKX1pSS5QPSJpbnRlcm5hbC5jcmVhdGVHYUNvbW1hbmRRdWV1ZSI7ZnVuY3Rpb24gakkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKCl7aWYoIXliKGUucHVzaCkpdGhyb3cgRXJyb3IoIk9iamVjdCBhdCAiK2ErIiBpbiB3aW5kb3cgaXMgbm90IGFuIGFycmF5LiIpO2UucHVzaC5hcHBseShlLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSl9LHRoaXMuVCwKQmgoWEYodGhpcykuUGIoKSk/MjoxKX1qSS5wdWJsaWNOYW1lPSJjcmVhdGVRdWV1ZSI7ZnVuY3Rpb24ga0koYSxiKXt2YXIgYz1udWxsO2lmKCFsaChhKXx8IW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt0cnl7dmFyIGQ9KGJ8fCIiKS5zcGxpdCgiIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJpZyIuaW5kZXhPZihlKT49MH0pLmpvaW4oIiIpO2M9bmV3IFBkKG5ldyBSZWdFeHAoYSxkKSl9Y2F0Y2goZSl7fXJldHVybiBjfWtJLlA9ImludGVybmFsLmNyZWF0ZVJlZ2V4IjtmdW5jdGlvbiBsSShhKXt9bEkuUD0iaW50ZXJuYWwuZGVjbGFyZUNvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gbUkoYSl7dmFyIGI9IiI7cmV0dXJuIGJ9bUkuUD0iaW50ZXJuYWwuZGVjb2RlVXJsSHRtbEVudGl0aWVzIjtmdW5jdGlvbiBuSShhLGIsYyl7dmFyIGQ7cmV0dXJuIGR9bkkuUD0iaW50ZXJuYWwuZGVjb3JhdGVVcmxXaXRoR2FDb29raWVzIjtmdW5jdGlvbiBvSSgpe31vSS5QPSJpbnRlcm5hbC5kZWZlckN1c3RvbUV2ZW50cyI7ZnVuY3Rpb24gcEkoYSxiKXt0cnl7cmV0dXJuIGEuY2xvc2VzdChiKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19O2Z1bmN0aW9uIHFJKCl7dmFyIGE9QS5zY3JlZW47cmV0dXJue3dpZHRoOmE/YS53aWR0aDowLGhlaWdodDphP2EuaGVpZ2h0OjB9fQpmdW5jdGlvbiBySShhKXtpZihCLmhpZGRlbilyZXR1cm4hMDt2YXIgYj1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGIudG9wPT09Yi5ib3R0b218fGIubGVmdD09PWIucmlnaHR8fCFBLmdldENvbXB1dGVkU3R5bGUpcmV0dXJuITA7dmFyIGM9QS5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk7aWYoYy52aXNpYmlsaXR5PT09ImhpZGRlbiIpcmV0dXJuITA7Zm9yKHZhciBkPWEsZT1jO2Q7KXtpZihlLmRpc3BsYXk9PT0ibm9uZSIpcmV0dXJuITA7dmFyIGY9ZS5vcGFjaXR5LGc9ZS5maWx0ZXI7aWYoZyl7dmFyIGg9Zy5pbmRleE9mKCJvcGFjaXR5KCIpO2g+PTAmJihnPWcuc3Vic3RyaW5nKGgrOCxnLmluZGV4T2YoIikiLGgpKSxnLmNoYXJBdChnLmxlbmd0aC0xKT09PSIlIiYmKGc9Zy5zdWJzdHJpbmcoMCxnLmxlbmd0aC0xKSksZj1TdHJpbmcoTWF0aC5taW4oTnVtYmVyKGcpLE51bWJlcihmKSkpKX1pZihmIT09dm9pZCAwJiZOdW1iZXIoZik8PTApcmV0dXJuITA7KGQ9ZC5wYXJlbnRFbGVtZW50KSYmCihlPUEuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpKX1yZXR1cm4hMX0KdmFyIEpJPWZ1bmN0aW9uKGEpe3ZhciBiLGM9KGI9YT09bnVsbD92b2lkIDA6YS5pbmNsdWRlU2VsZWN0b3IpIT1udWxsP2I6ITAsZCxlPShkPWE9PW51bGw/dm9pZCAwOmEuaW5jbHVkZVZpc2liaWxpdHkpIT1udWxsP2Q6ITAsZixnPShmPWE9PW51bGw/dm9pZCAwOmEuc2VsZWN0TXVsdGlwbGVFbGVtZW50cykhPW51bGw/ZjohMSxoPShhPT1udWxsP3ZvaWQgMDphLmV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzKXx8W10sbD0oYT09bnVsbD92b2lkIDA6YS5maWVsZEZpbHRlcnMpfHx7ZW1haWw6ITAscGhvbmU6ITEsYWRkcmVzczohMX0sbj1hbCg2LGZ1bmN0aW9uKCl7cmV0dXJue319KSxwPXpJKHtpbmNsdWRlU2VsZWN0b3I6YyxpbmNsdWRlVmlzaWJpbGl0eTplLGV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOmgsZmllbGRGaWx0ZXJzOmx9KSxxPW5bcF07aWYocSYmTmIoKS1xLnRpbWVzdGFtcDwyMDApe3ZhciByPXEucmVzdWx0LHQ7KHIuZWxlbWVudHMuc29tZShmdW5jdGlvbihxYSl7cmV0dXJuIHFhLmRpfSl8fAooKHQ9ci5naSk9PW51bGw/MDp0LmRpKSkmJkd1KFQuVy5yaik7cmV0dXJuIHJ9dmFyIHU9QUkoKSx2PXUuc3RhdHVzLHg9W10seSx6LEM9W107aWYoTSg1NjgpKXt2YXIgRD1CSShsKSxJPUNJKHUuZWxlbWVudHMsRCksRz1ESShJKSxOPUVJKEcsaCksUz1GSShOKTt5PVMuZmlsdGVyKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuRGE9PT1GRC5CYn0pWzBdO2Zvcih2YXIgVz1bXSxlYT17SWc6MH07ZWEuSWc8RC5sZW5ndGg7ZWE9e0lnOmVhLklnfSxlYS5JZysrKXt2YXIgamE9Ti5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiBmdW5jdGlvbihpYil7cmV0dXJuIGliLkRhPT09RFtxYS5JZ119fShlYSkpO2phLmxlbmd0aD4xMCYmKHY9IjMiLGphPWphLnNsaWNlKDAsMTApKTtXPVcuY29uY2F0KGphKX1OPVc7IWcmJlMmJihOPVMpO2Zvcih2YXIgZmE9MDtmYTxOLmxlbmd0aDtmYSsrKXt2YXIgc2E9TltmYV07c2EuRGEhPT1GRC5LaCYmQy5wdXNoKEdJKHNhLGMsZSkpfX1lbHNle2lmKGwuZW1haWwpe3ZhciBkYT0KSEkodS5lbGVtZW50cyk7eD1FSShkYSxoKTt5PUlJKHgpO2RhLmxlbmd0aD4xMCYmKHY9IjMiKX0hZyYmeSYmKHg9W3ldKTtmb3IodmFyIG1hPTA7bWE8eC5sZW5ndGg7bWErKylDLnB1c2goR0koeFttYV0sYyxlKSk7Qz1DLnNsaWNlKDAsMTApfXkmJih6PUdJKHksYyxlKSk7dmFyIFBhPXtlbGVtZW50czpDLGdpOnosc3RhdHVzOnZ9O25bcF09e3RpbWVzdGFtcDpOYigpLHJlc3VsdDpQYX07dmFyIEZhOyhQYS5lbGVtZW50cy5zb21lKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuZGl9KXx8KChGYT1QYS5naSk9PW51bGw/MDpGYS5kaSkpJiZHdShULlcucmopO3JldHVybiBQYX0sREk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5LaH0pLGM9YS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5YZH0pO2lmKGEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuY2V9KS5sZW5ndGg9PT0wJiZjLmxlbmd0aD09PQowKWZvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdLGY9ZS5DYS5zcGxpdCgiICIpO2YubGVuZ3RoPjEmJmEucHVzaCh7Q2E6ZlswXSxEYTpGRC5YZCxlbGVtZW50OmUuZWxlbWVudCxPYzplLk9jfSx7Q2E6Zi5zbGljZSgxKS5qb2luKCIgIiksRGE6RkQuY2UsZWxlbWVudDplLmVsZW1lbnQsT2M6ZS5PY30pfWZvcih2YXIgZyxoPTAsbCxuPWZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuZWUmJnUuQ2EubGVuZ3RoPj0zJiZ1LkNhLmxlbmd0aDw9NH0scD0wO3A8YS5sZW5ndGg7cCsrKXt2YXIgcT1hW3BdO2lmKG4ocSkmJmcmJnEuZWxlbWVudC5wYXJlbnRFbGVtZW50PT09ZyYmaDwzKXtpZihoKz0xLGwrPXEuQ2EsaD09PTMpe3ZhciByPXAtaCsxO2lmKGw9S0lbRkQuZWVdLm5hKGwpKWFbcl0uQ2E9bH19ZWxzZSBpZihoPTAsbD0iIixnPXZvaWQgMCxuKHEpKXtoKys7bD1xLkNhO3ZhciB0PXZvaWQgMDtnPSh0PXEuZWxlbWVudC5wYXJlbnRFbGVtZW50KSE9bnVsbD8KdDp2b2lkIDB9fXJldHVybiBhLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4hbih1KX0pfSxPST1mdW5jdGlvbihhLGIpe2lmKGEudmFsdWUmJkxJLmluZGV4T2YoKGEudHlwZXx8InRleHQiKS50b0xvd2VyQ2FzZSgpKSE9PS0xKXt2YXIgYz1hLmF1dG9jb21wbGV0ZTtpZihjKWZvcih2YXIgZD1jLnNwbGl0KCIgIiksZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1NSShhLnZhbHVlLGIsZFtlXSk7aWYoZilyZXR1cm4gZn12YXIgZyxoPVthLm5hbWUsYS5pZCwoZz1hLmFyaWFMYWJlbCkhPW51bGw/Zzp2b2lkIDAsYS5wbGFjZWhvbGRlcl0sbD1hLnBhcmVudEVsZW1lbnQ7bCYmbC50YWdOYW1lPT09IkxBQkVMIiYmaC5wdXNoKGwuaW5uZXJUZXh0KTt2YXIgbj1hLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7biYmbi50YWdOYW1lPT09IkxBQkVMIiYmIW4uaHRtbEZvciYmaC5wdXNoKG4uaW5uZXJUZXh0KTtpZihhLmlkKXt2YXIgcD1bXTt0cnl7cD1kb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xhYmVsW2Zvcj0iJysKYS5pZCsnIl0nKX1jYXRjaChEKXt9Zm9yKHZhciBxPTA7cTxwLmxlbmd0aDtxKyspaC5wdXNoKHBbcV0uaW5uZXJUZXh0KX1oPWguZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBEJiZELnRyaW0oKX0pO2Zvcih2YXIgcix0PTAsdT0wO3U8aC5sZW5ndGg7dSsrKXt2YXIgdj1OSShhLGIsaFt1XSk7aWYodil7dmFyIHg9dix5PXguQ2Esej14LkRhLEM9eC5YcztDPnQmJih0PUMscj17Q2E6eSxEYTp6fSl9fXJldHVybiByfX0sTkk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKEtJW2VdLm5lKXt2YXIgZj1LSVtlXS5uZS5leGVjKGMudHJpbSgpKTtpZihmKXt2YXIgZz1hLGg9W10sbD1nLnZhbHVlLnRyaW0oKTtsJiZoLnB1c2gobCk7aWYoZy50YWdOYW1lPT09IlNFTEVDVCIpdHJ5e3ZhciBuPWcucXVlcnlTZWxlY3RvcignW3ZhbHVlPSInK2cudmFsdWUrJyJdJykscD1uJiZuLmlubmVyVGV4dC50cmltKCk7cCYmaC5wdXNoKHApfWNhdGNoKHUpe31mb3IodmFyIHE9Cmgscj12b2lkIDAsdD0wO3Q8cS5sZW5ndGgmJiFyO3QrKylyPUtJW2VdLm5hKHFbdF0pO2lmKHIpcmV0dXJue0RhOmUsQ2E6cixYczpmWzBdLmxlbmd0aC9jLnRyaW0oKS5sZW5ndGh9fX19fSxNST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07aWYoS0lbZV0uYXV0b2NvbXBsZXRlJiZLSVtlXS5hdXRvY29tcGxldGUuaW5kZXhPZihjKT49MCl7dmFyIGY9S0lbZV0ubmEoYS50cmltKCkpO2lmKGYpcmV0dXJue0RhOmUsQ2E6Zn19fX0sQkk9ZnVuY3Rpb24oYSl7dmFyIGI9W107YS5lbWFpbCYmYi5wdXNoKEZELkJiKTthLnBob25lJiZiLnB1c2goRkQuZWUpO2EuYWRkcmVzcyYmYi5wdXNoKEZELlhkLEZELmNlLEZELnhmLEZELnFnLEZELktoKTtyZXR1cm4gYn0sQ0k9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hW2RdLGY9ZS5lbGVtZW50LGc9ZS5PYyxoO2E6e3ZhciBsPWYsbj1iLApwPWwuaW5uZXJIVE1MO1BJLmluZGV4T2YobC50YWdOYW1lKT49MCYmKHA9bC52YWx1ZXx8cCk7aWYocCl7dmFyIHE7Yjp7Zm9yKHZhciByPXAsdD1uLHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIHY9dFt1XTtpZighS0lbdl0ubWUpe3ZhciB4PUtJW3ZdLm5hKHIudHJpbSgpKTtpZih4KXtxPXtEYTp2LENhOnh9O2JyZWFrIGJ9fX1xPXZvaWQgMH1pZihxKXtoPXE7YnJlYWsgYX1pZihQSS5pbmRleE9mKGwudGFnTmFtZSkhPT0tMSl7aD1PSShsLG4pO2JyZWFrIGF9fWg9dm9pZCAwfXZhciB5PWg7aWYoeSl7dmFyIHo9eTtjLnB1c2goe0NhOnouQ2EsRGE6ei5EYSxlbGVtZW50OmYsT2M6Z30pfX1yZXR1cm4gY30sRkk9ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoYS5sZW5ndGg9PT0wKXJldHVybiBiO3ZhciBjPXt9LGQ7Zm9yKGQgaW4gRkQpaWYoYz17Vmc6Yy5WZ30sYy5WZz1kLEZELmhhc093blByb3BlcnR5KGMuVmcpKXt2YXIgZT1hLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGcuRGE9PT0KRkRbZi5WZ119fShjKSk7ZS5sZW5ndGghPT0wJiYoRkRbYy5WZ109PT1GRC5CYiYmKGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4hUkkudGVzdChmLkNhKX0pLGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4gZi5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCJ9KSxlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIXJJKGYuZWxlbWVudCl9KSksYi5wdXNoKGVbMF0pKX1yZXR1cm4gYn0sR0k9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZWxlbWVudCxlPWEuT2MsZj17Q2E6YS5DYSx0eXBlOmEuRGEsdGFnTmFtZTpkLnRhZ05hbWV9O2lmKGIpe3ZhciBnLGg9U0koZCk7aWYoZz0oZT9lKyJ8IitoOmgpLnNsaWNlKDAsVEkpKWYucXVlcnlTZWxlY3Rvcj1nfWMmJihmLmlzVmlzaWJsZT0hckkoZCkpO2UmJihmLmRpPSEwKTtyZXR1cm4gZn0sekk9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU7Yj1hLmluY2x1ZGVTZWxlY3RvcjtjPWEuaW5jbHVkZVZpc2liaWxpdHk7ZD1hLmV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOwplPWEuZmllbGRGaWx0ZXJzO3ZhciBmPSEhYisiLiIrISFjO2QubGVuZ3RoJiYoZis9Ii4iK2Quam9pbigiLiIpKTtyZXR1cm4gZis9Ii4iK2UuZW1haWwrIi4iK2UucGhvbmUrIi4iK2UuYWRkcmVzc30sSUk9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGghPT0wKXt2YXIgYjtiPVFJKGEsZnVuY3Rpb24oYyl7cmV0dXJuIVJJLnRlc3QoYy5DYSl9KTtiPVFJKGIsZnVuY3Rpb24oYyl7cmV0dXJuIGMuZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQifSk7Yj1RSShiLGZ1bmN0aW9uKGMpe3JldHVybiFySShjLmVsZW1lbnQpfSk7cmV0dXJuIGJbMF19fSxFST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspe2Zvcih2YXIgZT0hMCxmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWJbZl07aWYoZyYmcEkoYVtkXS5lbGVtZW50LGcpKXtlPSExO2JyZWFrfX1hW2RdLkRhPT09RkQuQmImJk0oNjAyKSYmKFJJLnRlc3QoYVtkXS5DYSl8fGFbZF0uZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0KIkEiJiZhW2RdLmVsZW1lbnQuaGFzQXR0cmlidXRlKCJocmVmIikmJmFbZF0uZWxlbWVudC5nZXRBdHRyaWJ1dGUoImhyZWYiKS5pbmRleE9mKCJtYWlsdG86IikhPT0tMT9lPSExOmFbZF0uZWxlbWVudC5jbG9zZXN0KCJmb290ZXIiKSE9PW51bGwmJihlPSExKSk7ZSYmYy5wdXNoKGFbZF0pfXJldHVybiBjfSxRST1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPD0xKXJldHVybiBhO3ZhciBjPWEuZmlsdGVyKGIpO3JldHVybiBjLmxlbmd0aD09PTA/YTpjfSxTST1mdW5jdGlvbihhKXtpZihhPT09Qi5ib2R5KXJldHVybiJib2R5IjtpZihhLmlkKXJldHVybiIjIithLmlkO3ZhciBiPWEucGFyZW50RWxlbWVudDtpZihiKXt2YXIgYz1TSShiKSxkPVVJKGEsYiksZT1WSShhKSsiOm50aC1jaGlsZCgiK2QrIikiO3JldHVybiBjP2MrIj4iK2U6ZX12YXIgZj1hLnBhcmVudE5vZGU7aWYoZiBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Qpe3ZhciBnPVVJKGEsZik7cmV0dXJuIFZJKGEpKyI6bnRoLWNoaWxkKCIrCmcrIikifXJldHVybiBhLnRhZ05hbWU/YS50YWdOYW1lLnRvTG93ZXJDYXNlKCk6IiJ9LFZJPWZ1bmN0aW9uKGEpe2lmKGEuY2xhc3NMaXN0JiZhLmNsYXNzTGlzdC5sZW5ndGg+MCl7dmFyIGI9QXJyYXkuZnJvbShhLmNsYXNzTGlzdCxmdW5jdGlvbihjKXtyZXR1cm4gQ1NTLmVzY2FwZShjKX0pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYy5sZW5ndGg+MH0pO2lmKGIubGVuZ3RoPjApcmV0dXJuIi4iK2Iuam9pbigiLiIpfXJldHVybiIifSxVST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkcmVuLGQ9MDtkPGMubGVuZ3RoO2QrKylpZihjW2RdPT09YSlyZXR1cm4gZCsxO3JldHVybiAxfSxIST1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9ZC5lbGVtZW50LGY9ZC5PYyxnPWUudGV4dENvbnRlbnQ7ZS50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQiJiZlLnZhbHVlJiYoZz1lLnZhbHVlKTtpZihnKXt2YXIgaD0KZy5tYXRjaChLRCk7aWYoaCl7dmFyIGw9aFswXTtMRChsKXx8Yi5wdXNoKHtlbGVtZW50OmUsQ2E6bCxEYTpGRC5CYixPYzpmfSl9fX1yZXR1cm4gYn0sQUk9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPUIuYm9keTtpZighYilyZXR1cm57ZWxlbWVudHM6YSxzdGF0dXM6IjQifTt2YXIgYz1XSShiLDAsIiIsYSk7cmV0dXJue2VsZW1lbnRzOmEsc3RhdHVzOmN9fSxXST1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9YS5xdWVyeVNlbGVjdG9yQWxsKCIqIiksZj1lLmxlbmd0aD4xRTQ/IjIiOiIxIixnPTA7ZzxNYXRoLm1pbihlLmxlbmd0aCwxRTQpO2crKyl7dmFyIGg9ZVtnXTtpZighKFhJLmluZGV4T2YoaC50YWdOYW1lLnRvVXBwZXJDYXNlKCkpPj0wKSYmaC5jaGlsZHJlbiBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKXt2YXIgbD0hMTtpZihNKDU4MikmJmguc2hhZG93Um9vdCYmYjwxKXt2YXIgbj1TSShoKTtXSShoLnNoYWRvd1Jvb3QsYisxLGM/YysifCIrbjpuLGQpPT09IjIiJiYKKGY9IjIiKTtsPSEwfXZhciBwPSExO2lmKCFsKWZvcih2YXIgcT0wO3E8TWF0aC5taW4oaC5jaGlsZEVsZW1lbnRDb3VudCwxRTQpO3ErKylpZighKFlJLmluZGV4T2YoaC5jaGlsZHJlbltxXS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpPj0wKSl7cD0hMDticmVha30oIXAmJiFsfHxNKDU2OCkmJlBJLmluZGV4T2YoaC50YWdOYW1lKSE9PS0xKSYmZC5wdXNoKHtlbGVtZW50OmgsT2M6Yj4wP2M6dm9pZCAwfSl9fXJldHVybiBmfSxSST0vc3VwcG9ydHxub3JlcGx5L2ksWEk9IlNDUklQVCBTVFlMRSBJTUcgU1ZHIFBBVEggQlIgTk9TQ1JJUFQgVEVYVEFSRUEiLnNwbGl0KCIgIiksWUk9WyJCUiJdLFRJPU5mKDcwLDUwKSxQST1bIklOUFVUIiwiU0VMRUNUIl0sTEk9InRleHQgdGVsIHNlYXJjaCBudW1iZXIgaGlkZGVuIGVtYWlsIHNlbGVjdC1vbmUiLnNwbGl0KCIgIiksWkk9UmVnRXhwKCJwaG9uZXxtb2JpbGV8Y29udGFjdC4/bnVtYmVyfHRlbGVmb25udW1tZXJ8dGVsZWZvbm98dGVsXHUwMGU5Zm9ub3x0ZWxmaXhlfFx1OTZmYlx1OGE3MXx0ZWxlZm9uZXx0ZWxlbW92ZWx8XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDM1XHUwNDQ0XHUwNDNlXHUwNDNkfFx1MDkyZVx1MDk0Ylx1MDkyY1x1MDkzZVx1MDkwN1x1MDkzMnxcdTc1MzVcdThiZGR8XHU2MjRiXHU2NzNhXHU1M2Y3fFx1MGQyZVx1MGQ0YVx1MGQyY1x1MGQ0OFx1MGQzMlx1MGQ0ZFx1MjAwZHwoXnxbLV9dKXRlbFstX10/KFxcZCspKihcXFsuKlxcXSkqJHwoPzpcdWM4MDRcdWQ2NTR8XHVkNTc4XHViNGRjXHVkM2YwfFx1ZDczNFx1YjMwMFx1ZDNmMHxcdWQ3MzRcdWIzMDBcdWM4MDRcdWQ2NTQpKD86Lj9cdWJjODhcdWQ2MzgpP3woXFxifF98XFwqKXRlbGVmb24oXFxifF98XFwqKXx0ZWxlcG9ufHBvbnNlbHwobm9tb3J8bm9cXC4/KS4/KGhwfGhhbmRwaG9uZSkiLAoiaSIpLCRJPVJlZ0V4cCgiXm5hbWV8ZnVsbC4/bmFtZXx5b3VyLj9uYW1lfGN1c3RvbWVyLj9uYW1lfGJpbGwuP25hbWV8c2hpcC4/bmFtZXxuYW1lLipmaXJzdC4qbGFzdHxmaXJzdGFuZGxhc3RuYW1lfGNvbnRhY3QuPyhuYW1lfHBlcnNvbil8bm9tYnJlLip5LiphcGVsbGlkb3N8Xm5vbSg/IVthLXpBLVpdKXxcdTMwNGFcdTU0MGRcdTUyNGR8XHU2YzBmXHU1NDBkfF5ub21lfFx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2MmVcdTA2MjdcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmZcdTA2YWZcdTA2Y2N8XHU1OWQzXFxzKlx1NTQwZHxcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0MzBcdTA0M2FcdTA0NDJcdTA0M2RcdTA0M2VcdTA0MzUuP1x1MDQzYlx1MDQzOFx1MDQ0Nlx1MDQzZXwoXFxifF98XFwqKWFkW1x1MDEzMV0/IHNveWFkW1x1MDEzMV0/KFxcYnxffFxcKil8XHVjMTMxXHViYTg1fG5hbWEuPyhsZW5na2FwfHBlbmVyaW1hfGthbXUpIiwKImkiKSxhSj1SZWdFeHAoImZpcnN0LipuYW1lfGluaXRpYWxzfGZuYW1lfGZpcnN0JHxnaXZlbi4qbmFtZXx2b3JuYW1lfG5vbWJyZXxmb3JlbmFtZXxwclx1MDBlOW5vbXxwcmVub218XHU1NDBkfG5vbWV8XHUwNDE4XHUwNDNjXHUwNDRmfFx1MDY0Nlx1MDYyN1x1MDY0NXxcdWM3NzRcdWI5ODR8XHUwZDJhXHUwZDQ3XHUwZDMwXHUwZDRkfChcXGJ8X3xcXCopKGlzaW18YWR8YWQoaXxcdTAxMzF8aW5penxcdTAxMzFuXHUwMTMxeik/KShcXGJ8X3xcXCopfFx1MDkyOFx1MDkzZVx1MDkyZXxuYW1hIGRlcGFuIiwiaSIpLGJKPVJlZ0V4cCgibGFzdC4qbmFtZXxsbmFtZXxzdXJuYW1lKD8hXFxkKXxsYXN0JHxzZWNvbmRuYW1lfGZhbWlseS4qbmFtZXxuYWNobmFtZXxhcGVsbGlkb3M/fGZhbWlsbGV8Xm5vbSg/IVthLXpBLVpdKXxjb2dub21lfFx1NTlkM3xhcGVsaWRvc3xzdXJlbmFtZXxzb2JyZW5vbWV8XHUwNDI0XHUwNDMwXHUwNDNjXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDRmfFx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjJlXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJmXHUwNmFmXHUwNmNjfFx1MDkwOVx1MDkyYVx1MDkyOFx1MDkzZVx1MDkyZXxcdTBkMmVcdTBkMzFcdTBkNDFcdTBkMmFcdTBkNDdcdTBkMzBcdTBkNGR8KFxcYnxffFxcKikoc295aXNpbXxzb3lhZChpfFx1MDEzMXxpbml6fFx1MDEzMW5cdTAxMzF6KT8pKFxcYnxffFxcKil8XFxiXHVjMTMxKD86W15cdWJhODVdfFxcYil8bmFtYSBiZWxha2FuZyIsCiJpIiksY0o9UmVnRXhwKCJjb3VudHJ5fGNvdW50cmllc3xwYVx1MDBlZHN8cGFpc3woXFxifF8pbGFuZChcXGJ8XykoPyEuKihtYXJrLiopKXwoXnxbXihcdTUxNjV8XHU1MWZhKV0pXHU1NmZkfFx1NTZmZFx1NWJiNnxcdWFkNmRcdWFjMDB8XHViMDk4XHViNzdjfChcXGJ8XykoXHUwMGZjbGtlfHVsY2V8dWxrZSkoXFxifF8pfFx1MDZhOVx1MDYzNFx1MDY0OFx1MDYzMXxuZWdhcmEiLCJpIiksZEo9UmVnRXhwKCIoXnxbXi5dKXppcHxwb3N0YWx8cG9zdC4qY29kZXxwY29kZXxwaW4uP2NvZGV8cG9zdGxlaXR6YWhsfFxcYmNwXFxifFxcYmNkcFxcYnxcXGJjYXBcXGJ8XHU5MGY1XHU0ZmJmXHU3NTZhXHU1M2Y3fGNvZGlnb3xjb2Rwb3N8XFxiY2VwXFxifFx1MDQxZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQ0Ylx1MDQzOS4/XHUwNDE4XHUwNDNkXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDQxfFx1MDkyYVx1MDkzZlx1MDkyOC4/XHUwOTE1XHUwOTRiXHUwOTIxfFx1MGQyYVx1MGQzZlx1MGQyOFx1MGQ0ZFx1MjAwZFx1MGQxNVx1MGQ0Ylx1MGQyMVx1MGQ0ZHxcdTkwYWVcdTY1M2ZcdTdmMTZcdTc4MDF8XHU5MGFlXHU3ZjE2fFx1OTBmNVx1OTA1ZVx1NTM0MFx1ODY1ZnwoXFxifF8pcG9zdGEga29kdShcXGJ8Xyl8XHVjNmIwXHVkM2I4Lj9cdWJjODhcdWQ2Mzh8a29kZS4/cG9zIiwKImkiKSxlSj17fSxLST0oZUpbRkQuQmJdPXttZTohMSxuYTpNRH0sZUpbRkQuZWVdPXttZTohMCxhdXRvY29tcGxldGU6WyJ0ZWwiLCJ0ZWwtbmF0aW9uYWwiLCJ0ZWwtbG9jYWwiXSxuZTpaSSxuYTpmdW5jdGlvbihhKXtyZXR1cm4gR0QoYSwhMCl9fSxlSltGRC5LaF09e21lOiEwLGF1dG9jb21wbGV0ZTpbIm5hbWUiLCJjYy1uYW1lIl0sbmU6JEksbmE6TkR9LGVKW0ZELlhkXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiZ2l2ZW4tbmFtZSIsImNjLWdpdmVuLW5hbWUiXSxuZTphSixuYTpORH0sZUpbRkQuY2VdPXttZTohMCxhdXRvY29tcGxldGU6WyJmYW1pbHktbmFtZSIsImNjLWZhbWlseS1uYW1lIl0sbmU6YkosbmE6TkR9LGVKW0ZELnhmXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiY291bnRyeSIsImNvdW50cnktbmFtZSJdLG5lOmNKLG5hOk5EfSxlSltGRC5xZ109e21lOiEwLGF1dG9jb21wbGV0ZTpbInBvc3RhbC1jb2RlIl0sbmU6ZEosbmE6SUR9LGVKKTtmdW5jdGlvbiBmSihhKXt2YXIgYjtMKHRoaXMsImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiLCJhdXRvIik7dmFyIGM9VGQoYSl8fHt9LGQ9Skkoe2luY2x1ZGVTZWxlY3RvcjohIWMuaW5jbHVkZVNlbGVjdG9yLGluY2x1ZGVWaXNpYmlsaXR5OiEhYy5pbmNsdWRlVmlzaWJpbGl0eSxleGNsdWRlRWxlbWVudFNlbGVjdG9yczpjLmV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzLGZpZWxkRmlsdGVyczpjLmZpZWxkRmlsdGVycyxzZWxlY3RNdWx0aXBsZUVsZW1lbnRzOiEhYy5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzfSk7Yj1uZXcga2I7dmFyIGU9bmV3IEdkO2Iuc2V0KCJlbGVtZW50cyIsZSk7Zm9yKHZhciBmPWQuZWxlbWVudHMsZz0wO2c8Zi5sZW5ndGg7ZysrKWUucHVzaChnSihmW2ddKSk7ZC5naSE9PXZvaWQgMCYmYi5zZXQoInByZWZlcnJlZEVtYWlsRWxlbWVudCIsCmdKKGQuZ2kpKTtiLnNldCgic3RhdHVzIixkLnN0YXR1cyk7aWYoYy5yZWFkRnJvbURhdGFMYXllcil7aEooZSxjKTt2YXIgaD1QRCgpLGw9aC5zdDtiLnNldCgiZGF0YUxheWVyU2VhcmNoVGltZSIsaC52dCk7Yi5zZXQoImRhdGFMYXllclNlYXJjaENvdW50IixsKX1yZXR1cm4gYn0KdmFyIGlKPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIEZELkJiOnJldHVybiJlbWFpbCI7Y2FzZSBGRC5lZTpyZXR1cm4icGhvbmVfbnVtYmVyIjtjYXNlIEZELlhkOnJldHVybiJmaXJzdF9uYW1lIjtjYXNlIEZELmNlOnJldHVybiJsYXN0X25hbWUiO2Nhc2UgRkQudGo6cmV0dXJuInN0cmVldCI7Y2FzZSBGRC5saTpyZXR1cm4iY2l0eSI7Y2FzZSBGRC5qajpyZXR1cm4icmVnaW9uIjtjYXNlIEZELnFnOnJldHVybiJwb3N0YWxfY29kZSI7Y2FzZSBGRC54ZjpyZXR1cm4iY291bnRyeSJ9fSxqSj1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2IsYz1pSihhLkRhKTtjIT09dm9pZCAwJiZiLnNldCgidHlwZSIsYyk7Yi5zZXQoInVzZXJEYXRhIixhLkNhKTtiLnNldCgidGFnTmFtZSIsIkRMWVIiKTtyZXR1cm4gYn0saEo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1RRCgpO2lmKE0oNTY4KSlmb3IodmFyIGQ9bmV3IFNldChhLmhjKCkubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmdldCgidHlwZSIpfSkpLAplPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPW0oZi52YWx1ZSksaD1nLm5leHQoKS52YWx1ZSxsPWcubmV4dCgpLnZhbHVlLG49aCxwPWw7aWYoYi5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzKWEucHVzaChqSihwKSk7ZWxzZXt2YXIgcT1pSihuKTtxJiYhZC5oYXMocSkmJmEucHVzaChqSihwKSl9fWVsc2UgYy5oYXMoRkQuQmIpJiYoYi5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzfHxhLmxlbmd0aCgpPT09MCkmJmEucHVzaChqSihjLmdldChGRC5CYikpKX0sZ0o9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiO2Iuc2V0KCJ1c2VyRGF0YSIsYS5DYSk7Yi5zZXQoInRhZ05hbWUiLGEudGFnTmFtZSk7YS5xdWVyeVNlbGVjdG9yIT09dm9pZCAwJiZiLnNldCgicXVlcnlTZWxlY3RvciIsYS5xdWVyeVNlbGVjdG9yKTthLmlzVmlzaWJsZSE9PXZvaWQgMCYmYi5zZXQoImlzVmlzaWJsZSIsYS5pc1Zpc2libGUpO2lmKE0oNTY4KSl7dmFyIGM9aUooYS50eXBlKTtjIT09CnZvaWQgMCYmYi5zZXQoInR5cGUiLGMpfWVsc2Ugc3dpdGNoKGEudHlwZSl7Y2FzZSBGRC5CYjpiLnNldCgidHlwZSIsImVtYWlsIil9cmV0dXJuIGJ9O2ZKLlA9ImludGVybmFsLmRldGVjdFVzZXJQcm92aWRlZERhdGEiOwp2YXIga0o9ZnVuY3Rpb24oYSl7dmFyIGI9aGQoYSxbImJ1dHRvbiIsImlucHV0Il0sNTApO2lmKCFiKXJldHVybiBudWxsO3ZhciBjPVN0cmluZyhiLnRhZ05hbWUpLnRvTG93ZXJDYXNlKCk7aWYoYz09PSJidXR0b24iKXJldHVybiBiO2lmKGM9PT0iaW5wdXQiKXt2YXIgZD1lZChiLCJ0eXBlIik7aWYoZD09PSJidXR0b24ifHxkPT09InN1Ym1pdCJ8fGQ9PT0iaW1hZ2UifHxkPT09ImZpbGUifHxkPT09InJlc2V0IilyZXR1cm4gYn1yZXR1cm4gbnVsbH0sbEo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQpe3ZhciBlPSRGKGEsImluZGl2aWR1YWxFbGVtZW50SWRzIixbXSk7aWYoZS5sZW5ndGg+MCl7dmFyIGY9ZUcoZCxiLGUpO3VFKGYpfXZhciBnPSExLGg9JEYoYSwiY29tbW9uQnV0dG9uSWRzIixbXSk7aWYoaC5sZW5ndGg+MCl7dmFyIGw9a0ooZCk7aWYobCl7dmFyIG49ZUcobCxiLGgpO3VFKG4pO2c9ITB9fXZhciBwPSRGKGEsInNlbGVjdG9yVG9UcmlnZ2VySWRzIiwKe30pLHE7Zm9yKHEgaW4gcClpZihwLmhhc093blByb3BlcnR5KHEpKXt2YXIgcj1nP3BbcV0uZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiBoLmluZGV4T2Yodik9PT0tMX0pOnBbcV07aWYoci5sZW5ndGghPT0wKXt2YXIgdD1wSShkLHEpO2lmKHQpe3ZhciB1PWVHKHQsYixyKTt1RSh1KX19fX19OwpmdW5jdGlvbiBtSihhLGIpe2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGM9YT9UZChhKTp7fSxkPUpiKGMubWF0Y2hDb21tb25CdXR0b25zKSxlPSEhYy5jc3NTZWxlY3RvcixmPVpGKGIpO0wodGhpcywiZGV0ZWN0X2NsaWNrX2V2ZW50cyIsYy5tYXRjaENvbW1vbkJ1dHRvbnMsYy5jc3NTZWxlY3Rvcik7dmFyIGc9Yy51c2VWMkV2ZW50TmFtZT8iZ3RtLmNsaWNrLXYyIjoiZ3RtLmNsaWNrIixoPWMudXNlVjJFdmVudE5hbWU/ImVjbCI6ImNsIixsPWZ1bmN0aW9uKHApe3AucHVzaChmKTtyZXR1cm4gcH07aWYoZXx8ZCl7aWYoZCYmZEcoaCwiY29tbW9uQnV0dG9uSWRzIixsLFtdKSxlKXt2YXIgbj1MYihTdHJpbmcoYy5jc3NTZWxlY3RvcikpO2RHKGgsInNlbGVjdG9yVG9UcmlnZ2VySWRzIiwKZnVuY3Rpb24ocCl7cC5oYXNPd25Qcm9wZXJ0eShuKXx8KHBbbl09W10pO2wocFtuXSk7cmV0dXJuIHB9LHt9KX19ZWxzZSBkRyhoLCJpbmRpdmlkdWFsRWxlbWVudElkcyIsbCxbXSk7YkcoaCxmdW5jdGlvbigpeyRjKEIsImNsaWNrIixmdW5jdGlvbihwKXtsSihoLGcscCl9LCEwKX0pO3JldHVybiBmfW1KLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uQ2xpY2siOwpmdW5jdGlvbiB0SihhLGIpe3JldHVybiBwfXRKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRWxlbWVudFZpc2liaWxpdHkiO2Z1bmN0aW9uIHVKKCl7fXVKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRXJyb3IiOwpmdW5jdGlvbiBBSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGR9QUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtSW50ZXJhY3Rpb24iOwpmdW5jdGlvbiBGSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGZ9RkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0IjsKZnVuY3Rpb24gS0ooKXt2YXIgYT10aGlzO31LSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkdhU2VuZCI7CmZ1bmN0aW9uIFJKKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gZn1SSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiO3ZhciBTSj1bImh0dHA6Ly8iLCJodHRwczovLyIsImphdmFzY3JpcHQ6IiwiZmlsZTovLyJdOwpmdW5jdGlvbiBXSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGh9V0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siOwpmdW5jdGlvbiBnSyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGd9Z0suUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25TY3JvbGwiO2Z1bmN0aW9uIGhLKGEpe3JldHVybiBmdW5jdGlvbigpe2lmKGEubGltaXQmJmEuZ2s+PWEubGltaXQpYS5haSYmQS5jbGVhckludGVydmFsKGEuYWkpO2Vsc2V7YS5naysrO3ZhciBiPU5iKCk7dUUoe2V2ZW50OmEuZXZlbnROYW1lLCJndG0udGltZXJJZCI6YS5haSwiZ3RtLnRpbWVyRXZlbnROdW1iZXIiOmEuZ2ssImd0bS50aW1lckludGVydmFsIjphLmludGVydmFsLCJndG0udGltZXJMaW1pdCI6YS5saW1pdCwiZ3RtLnRpbWVyU3RhcnRUaW1lIjphLk1vLCJndG0udGltZXJDdXJyZW50VGltZSI6YiwiZ3RtLnRpbWVyRWxhcHNlZFRpbWUiOmItYS5NbywiZ3RtLnRyaWdnZXJzIjphLkx0fSl9fX0KZnVuY3Rpb24gaUsoYSxiKXsKcmV0dXJuIGZ9aUsuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25UaW1lciI7dmFyIEFjPUFhKFsiZGF0YS1ndG0teXQtaW5zcGVjdGVkLSJdKSxrSz1bInd3dy55b3V0dWJlLmNvbSIsInd3dy55b3V0dWJlLW5vY29va2llLmNvbSJdLGxLOwpmdW5jdGlvbiB2SyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGV9dksuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Zb3VUdWJlQWN0aXZpdHkiO2Z1bmN0aW9uIHdLKGEsYil7aWYoIWxoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPWI/VGQoYik6e307Yy5yZWdleENhY2hlPWFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pO3JldHVybiBHaChhLGMpfXdLLlA9ImludGVybmFsLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iO2Z1bmN0aW9uIHhLKGEpe3ZhciBiPSExO3JldHVybiBifXhLLlA9ImludGVybmFsLmV2YWx1YXRlTWF0Y2hpbmdSdWxlcyI7dmFyIHlLPW5ldyBNYXAoW1siYXciLDRdXSk7ZnVuY3Rpb24geksoYSl7dmFyIGI9dnJbYV0sYz15Sy5nZXQoYSk7cmV0dXJuIGM/KHdxKGIsYyl8fFtdKS5zb21lKGZ1bmN0aW9uKGQpe3JldHVybiBkLm09PT0iMCJ8fGQubT09PXZvaWQgMH0pOiExfQpmdW5jdGlvbiBBSyhhLGIpe2lmKE0oNDk1KSl7Zm9yKHZhciBjPW5ldyBNYXAsZD1tKHlLKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9bShlLnZhbHVlKSxnPWYubmV4dCgpLnZhbHVlLGg9Zi5uZXh0KCkudmFsdWUsbD1nLG49YVtsXSxwPUFycmF5LmlzQXJyYXkobik/blswXTpuO2lmKHAhPT12b2lkIDApe3ZhciBxPXt9LHI9KHEuaz1wLHEuaT1TdHJpbmcoTWF0aC5mbG9vcihEYXRlLm5vdygpLzFFMykpLHEuYj1bXSxxLm09IjEiLHEpLHQ9YXEocixoKTt0JiYoeksobCl8fGMuc2V0KGwsdCkpfX1pZihjLnNpemUpe3ZhciB1LHY9W10seD1iLnBhdGh8fCIvIjt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJwIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh4KSk7Yi5BciYmdi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiY2UiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiLkFyKSkpO3ZhciB5PWIuZG9tYWluJiZiLmRvbWFpbiE9PSJhdXRvIj8KYi5kb21haW46ImF1dG86IitBLmxvY2F0aW9uLmhvc3RuYW1lO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoImQiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHkpKTtmb3IodmFyIHo9bShjKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl7dmFyIEQ9bShDLnZhbHVlKSxJPUQubmV4dCgpLnZhbHVlLEc9RC5uZXh0KCkudmFsdWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEcpKX11PSJfL3NldF9jb29raWU/Iit2LmpvaW4oIiYiKTt2YXIgTixTPUUoNTgpO049RWYodSxTKTt2YXIgVz1YaigpKyIvIitOO21kKFcpfX19O2Z1bmN0aW9uIEJLKGEpe3JldHVybiJDV1ZXZWJWaWV3TWVzc2FnZSJpbiBhfWZ1bmN0aW9uIENLKGEpe3ZhciBiPUEsYz1iLndlYmtpdDtkZWxldGUgYi53ZWJraXQ7YShiLndlYmtpdCk7Yi53ZWJraXQ9Y31mdW5jdGlvbiBESyhhLGIpe3ZhciBjPXthY3Rpb246ImdjbF9zZXR1cCJ9O2lmKEJLKGEubWVzc2FnZUhhbmRsZXJzKSlyZXR1cm4gYS5tZXNzYWdlSGFuZGxlcnMuQ1dWV2ViVmlld01lc3NhZ2UucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6YixwYXlsb2FkOmN9KSwhMDt2YXIgZD1hLm1lc3NhZ2VIYW5kbGVyc1tiXTtyZXR1cm4gZD8oZC5wb3N0TWVzc2FnZShjKSwhMCk6ITF9O3ZhciBFSz17fSxGSz0oRUsuYXdiPXtub3RGb3VuZDoxNzh9LEVLLnl0Yj17bm90Rm91bmQ6MTk0fSxFSyk7ZnVuY3Rpb24gR0soYSl7dmFyIGIsYz0oYj1GS1thXSk9PW51bGw/dm9pZCAwOmIubm90Rm91bmQ7YyYmUChjKX0KZnVuY3Rpb24gSEsoYSl7aWYoIW5tKGptLmJhLmpuKSYmIndlYmtpdCJpbiBBJiZBLndlYmtpdC5tZXNzYWdlSGFuZGxlcnMpe3ZhciBiPWZ1bmN0aW9uKCl7dHJ5e0NLKGZ1bmN0aW9uKGMpe2lmKGMpe3ZhciBkO2Q9QksoYy5tZXNzYWdlSGFuZGxlcnMpfHwiYXdiImluIGMubWVzc2FnZUhhbmRsZXJzP3tjb21tYW5kOiJhd2IiLHNvdXJjZTo1fTooQksoYy5tZXNzYWdlSGFuZGxlcnMpfHwieXRiImluIGMubWVzc2FnZUhhbmRsZXJzKSYmTSg0OTkpP3tjb21tYW5kOiJ5dGIiLHNvdXJjZTo4fTp2b2lkIDA7ZCYmKG1tKGptLmJhLmpuLGZ1bmN0aW9uKGUpe3ZhciBmPWQuc291cmNlO2UuZ2NsaWQmJmxzKCJnY2xfYXciLGUuZ2NsaWQsZixhKTtlLndicmFpZCYmbHMoImdjbF9nYiIsZS53YnJhaWQsZixhKX0pLERLKGMsZC5jb21tYW5kKXx8R0soZC5jb21tYW5kKSl9fSl9Y2F0Y2goYyl7UCgxOTMpfX07SGwoZnVuY3Rpb24oKXtCcihmcCk/YigpOklsKGIsZnApfSxmcCl9fTt2YXIgSUs9WyJodHRwczovL3d3dy5nb29nbGUuY29tIiwiaHR0cHM6Ly93d3cueW91dHViZS5jb20iLCJodHRwczovL20ueW91dHViZS5jb20iXTtmdW5jdGlvbiBKSyhhKXtyZXR1cm4gYS5kYXRhLmFjdGlvbiE9PSJnY2xfdHJhbnNmZXIiPyhQKDE3MyksITApOmEuZGF0YS5nYWRTb3VyY2U/YS5kYXRhLmdjbGlkPyExOihQKDE4MSksITApOihQKDE4MCksITApfQpmdW5jdGlvbiBLSyhhLGIpe2lmKCFhfHxNKGEpKXtpZihubShqbS5iYS5WZSkpcmV0dXJuIFAoMTc2KSxqbS5iYS5WZTtpZihubShqbS5iYS5tbikpcmV0dXJuIFAoMTcwKSxqbS5iYS5WZTt2YXIgYz1GcCgpO2lmKCFjKVAoMTcxKTtlbHNlIGlmKGMub3BlbmVyKXt2YXIgZD1mdW5jdGlvbihnKXtpZighSUsuaW5jbHVkZXMoZy5vcmlnaW4pKVAoMTcyKTtlbHNlIGlmKCFKSyhnKSl7dmFyIGg9e2dhZFNvdXJjZTpnLmRhdGEuZ2FkU291cmNlfTtoLmdjbGlkPWcuZGF0YS5nY2xpZDttbShqbS5iYS5WZSxoKTtiJiZnLmRhdGEuZ2NsaWQmJmxzKCJnY2xfYXciLFN0cmluZyhnLmRhdGEuZ2NsaWQpLDYsYik7dmFyIGw7KGw9Zy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24pPT1udWxsfHxsLmNhbGwoZyk7bnQoYywibWVzc2FnZSIsZCl9fTtpZihtdChjLCJtZXNzYWdlIixkKSl7bW0oam0uYmEubW4sITApO2Zvcih2YXIgZT1tKElLKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSljLm9wZW5lci5wb3N0TWVzc2FnZSh7YWN0aW9uOiJnY2xfc2V0dXAifSwKZi52YWx1ZSk7UCgxNzQpO3JldHVybiBqbS5iYS5WZX1QKDE3NSl9fX07ZnVuY3Rpb24gVksoKXtyZXR1cm4gTXQoNykmJk10KDkpJiZNdCgxMCl9Owp2YXIgYUw9ZnVuY3Rpb24oYSxiKXthJiYoJEsoInNpZCIsYS50YXJnZXRJZCxiKSwkSygiY2MiLGEuY2xpZW50Q291bnQsYiksJEsoInRsIixhLnRvdGFsTGlmZU1zLGIpLCRLKCJoYyIsYS5oZWFydGJlYXRDb3VudCxiKSwkSygiY2wiLGEuY2xpZW50TGlmZU1zLGIpKX0sJEs9ZnVuY3Rpb24oYSxiLGMpe2IhPW51bGwmJmMucHVzaChhKyI9IitiKX0sYkw9ZnVuY3Rpb24oKXt2YXIgYT1CLnJlZmVycmVyO2lmKGEpe3ZhciBiO3JldHVybiBMaihSaihhKSwiaG9zdCIpPT09KChiPUEubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpiLmhvc3QpPzE6Mn1yZXR1cm4gMH0sZEw9ZnVuY3Rpb24oKXt0aGlzLmphPWNMO3RoaXMuTj0wO3RoaXMueWE9TmYoNTcsNSk7dGhpcy5SPU5mKDU4LDUwKTt0aGlzLmZhPURiKCk7dGhpcy5MYT0iaHR0cHM6Ly8iK0UoMjEpKyIvYT8ifTtkTC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyxkKXsKdmFyIGU9YkwoKSxmLGc9W107Zj1BPT09QS50b3AmJmUhPT0wJiZiPyhiPT1udWxsP3ZvaWQgMDpiLmNsaWVudENvdW50KT4xP2U9PT0yPzE6MjplPT09Mj8wOjM6NDthJiYkSygic2kiLGEuSmcsZyk7JEsoIm0iLDAsZyk7JEsoImlzcyIsZixnKTskSygiaWYiLGMsZyk7YUwoYixnKTtkJiYkSygiZm0iLGVuY29kZVVSSUNvbXBvbmVudChkLnN1YnN0cmluZygwLHRoaXMuUikpLGcpO3RoaXMuWihnKTt9O2RMLnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9W107JEsoIm0iLDEsZik7JEsoInMiLGEsZik7JEsoInBvIixiTCgpLGYpO2ImJigkSygic3QiLGIuc3RhdGUsZiksJEsoInNpIixiLkpnLGYpLCRLKCJzbSIsYi5VZyxmKSk7YUwoYyxmKTskSygiYyIsZCxmKTtlJiYkSygiZm0iLGVuY29kZVVSSUNvbXBvbmVudChlLnN1YnN0cmluZygwLAp0aGlzLlIpKSxmKTt0aGlzLlooZik7fTtkTC5wcm90b3R5cGUuWj1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTshZm4uTnx8dGhpcy5OPj10aGlzLnlhfHwoJEsoInBpZCIsdGhpcy5mYSxhKSwkSygiYmMiLCsrdGhpcy5OLGEpLGEudW5zaGlmdCgiY3RpZD0iK0UoNSkrIiZ0PXMiKSx0aGlzLmphKCIiK3RoaXMuTGErYS5qb2luKCImIikpKX07ZnVuY3Rpb24gZUwoYSl7cmV0dXJuIGEucGVyZm9ybWFuY2UmJmEucGVyZm9ybWFuY2Uubm93KCl8fERhdGUubm93KCl9CnZhciBmTD1mdW5jdGlvbihhLGIpe3ZhciBjPUEsZD1OZig1Myw1MDApLGU9TmYoNTQsNUUzKSxmPU5mKDgsMjApLGc9TmYoNTUsNUUzKSxoO3ZhciBsPWZ1bmN0aW9uKG4scCxxKXtxPXE9PT12b2lkIDA/e3FvOmZ1bmN0aW9uKCl7fSxzbzpmdW5jdGlvbigpe30scG86ZnVuY3Rpb24oKXt9LG9uRmFpbHVyZTpmdW5jdGlvbigpe319OnE7dGhpcy5Jaj1uO3RoaXMuSD1wO3RoaXMuTj1xO3RoaXMuZmE9dGhpcy5qYT10aGlzLmhlYXJ0YmVhdENvdW50PXRoaXMuRGo9MDt0aGlzLmZlPSExO3RoaXMuSz17fTt0aGlzLmlkPVN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKTt0aGlzLnN0YXRlPTA7dGhpcy5KZz1lTCh0aGlzLkgpO3RoaXMuVWc9ZUwodGhpcy5IKTt0aGlzLlo9MTB9O2wucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt0aGlzLlIoMSk7CnRoaXMuTGEoKX07bC5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm57c3RhdGU6dGhpcy5zdGF0ZSxKZzpNYXRoLnJvdW5kKGVMKHRoaXMuSCktdGhpcy5KZyksVWc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuVWcpfX07bC5wcm90b3R5cGUuUj1mdW5jdGlvbihuKXt0aGlzLnN0YXRlIT09biYmKHRoaXMuc3RhdGU9bix0aGlzLlVnPWVMKHRoaXMuSCkpfTtsLnByb3RvdHlwZS52Zz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy5EaisrKX07bC5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuaGVhcnRiZWF0Q291bnQrKzt0aGlzLnlhKHt0eXBlOjAsY2xpZW50SWQ6dGhpcy5pZCxyZXF1ZXN0SWQ6dGhpcy52ZygpLG1heERlbGF5OnRoaXMuaGUoKX0sZnVuY3Rpb24ocCl7aWYocC50eXBlPT09MCl7dmFyIHE7aWYoKChxPXAuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnEuZmFpbHVyZVR5cGUpIT1udWxsKWlmKHAuc3RhdHMmJihuLnN0YXRzPQpwLnN0YXRzKSxuLmZhKysscC5pc0RlYWR8fG4uZmE+Zil7dmFyIHI9cC5pc0RlYWQmJnAuZmFpbHVyZS5mYWlsdXJlVHlwZTtuLlo9cnx8MTA7bi5SKDQpO24uQWooKTt2YXIgdCx1Oyh1PSh0PW4uTikucG8pPT1udWxsfHx1LmNhbGwodCx7ZmFpbHVyZVR5cGU6cnx8MTAsZGF0YTpwLmZhaWx1cmUuZGF0YX0pfWVsc2Ugbi5SKDMpLG4uUGgoKTtlbHNle2lmKG4uaGVhcnRiZWF0Q291bnQ+cC5zdGF0cy5oZWFydGJlYXRDb3VudCtmKXtuLmhlYXJ0YmVhdENvdW50PXAuc3RhdHMuaGVhcnRiZWF0Q291bnQ7dmFyIHYseDsoeD0odj1uLk4pLm9uRmFpbHVyZSk9PW51bGx8fHguY2FsbCh2LHtmYWlsdXJlVHlwZToxM30pfW4uc3RhdHM9cC5zdGF0czt2YXIgeT1uLnN0YXRlO24uUigyKTtpZih5IT09MilpZihuLmZlKXt2YXIgeixDOyhDPSh6PW4uTikuc28pPT1udWxsfHxDLmNhbGwoeil9ZWxzZXtuLmZlPSEwO3ZhciBELEk7KEk9KEQ9bi5OKS5xbyk9PW51bGx8fEkuY2FsbChEKX1uLmZhPQowO24uTmooKTtuLlBoKCl9fX0pfTtsLnByb3RvdHlwZS5oZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlPT09Mj9lOmR9O2wucHJvdG90eXBlLlBoPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe24uTGEoKX0sTWF0aC5tYXgoMCx0aGlzLmhlKCktKGVMKHRoaXMuSCktdGhpcy5qYSkpKX07bC5wcm90b3R5cGUua3I9ZnVuY3Rpb24obixwLHEpe3ZhciByPXRoaXM7dGhpcy55YSh7dHlwZToxLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxjb21tYW5kOm59LGZ1bmN0aW9uKHQpe2lmKHQudHlwZT09PTEpaWYodC5yZXN1bHQpcCh0LnJlc3VsdCk7ZWxzZXt2YXIgdSx2LHgseT17ZmFpbHVyZVR5cGU6KHg9KHU9dC5mYWlsdXJlKT09bnVsbD92b2lkIDA6dS5mYWlsdXJlVHlwZSkhPW51bGw/eDoxMixkYXRhOih2PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnYuZGF0YX0seixDOyhDPSh6PXIuTikub25GYWlsdXJlKT09Cm51bGx8fEMuY2FsbCh6LHkpO3EoeSl9fSl9O2wucHJvdG90eXBlLnlhPWZ1bmN0aW9uKG4scCl7dmFyIHE9dGhpcztpZih0aGlzLnN0YXRlPT09NCluLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnRoaXMuWn0scChuKTtlbHNle3ZhciByPXRoaXMuc3RhdGUhPT0yJiZuLnR5cGUhPT0wLHQ9bi5yZXF1ZXN0SWQsdSx2PXRoaXMuSC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9cS5LW3RdO3kmJihpbSg2KSxxLmtkKHksNykpfSwodT1uLm1heERlbGF5KSE9bnVsbD91OmcpLHg9e3JlcXVlc3Q6bixIbzpwLHpvOnIsTnM6dn07dGhpcy5LW3RdPXg7cnx8dGhpcy5zZW5kUmVxdWVzdCh4KX19O2wucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKG4pe3RoaXMuamE9ZUwodGhpcy5IKTtuLnpvPSExO3RoaXMuSWoobi5yZXF1ZXN0KX07bC5wcm90b3R5cGUuTmo9ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyh0aGlzLkspKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9CnRoaXMuS1twLnZhbHVlXTtxLnpvJiZ0aGlzLnNlbmRSZXF1ZXN0KHEpfX07bC5wcm90b3R5cGUuQWo9ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyh0aGlzLkspKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl0aGlzLmtkKHRoaXMuS1twLnZhbHVlXSx0aGlzLlopfTtsLnByb3RvdHlwZS5rZD1mdW5jdGlvbihuLHApe3RoaXMuYWMobik7dmFyIHE9bi5yZXF1ZXN0O3EuZmFpbHVyZT17ZmFpbHVyZVR5cGU6cH07bi5IbyhxKX07bC5wcm90b3R5cGUuYWM9ZnVuY3Rpb24obil7ZGVsZXRlIHRoaXMuS1tuLnJlcXVlc3QucmVxdWVzdElkXTt0aGlzLkguY2xlYXJUaW1lb3V0KG4uTnMpfTtsLnByb3RvdHlwZS5rcz1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7dmFyIHA9dGhpcy5LW24ucmVxdWVzdElkXTtpZihwKXRoaXMuYWMocCkscC5IbyhuKTtlbHNle3ZhciBxLHI7KHI9KHE9dGhpcy5OKS5vbkZhaWx1cmUpPT1udWxsfHxyLmNhbGwocSx7ZmFpbHVyZVR5cGU6MTR9KX19OwpoPW5ldyBsKGEsYyxiKTtyZXR1cm4gaH07CnZhciBnTD1mdW5jdGlvbigpe3JldHVybiBhbCgxOCxmdW5jdGlvbigpe3JldHVybiBuZXcgZEx9KX0sY0w9ZnVuY3Rpb24oYSl7aW8obG8oY28uaWEuWmIpLGZ1bmN0aW9uKCl7WmMoYSl9KX0saEw9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi9fL3NlcnZpY2Vfd29ya2VyIikpO3JldHVybiImMXA9MSIrKGI/IiZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIiKX0saUw9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5vcmlnaW47aWYoIWIpcmV0dXJuIG51bGw7KE0oNDMyKT9XaigpOldqKCkmJiFhKSYmKGE9IiIrYitYaigpKyIvXy9zZXJ2aWNlX3dvcmtlciIpO3ZhciBjPWEsZCxlPUxmKDExKTtlPUxmKDEwKTtkPWU7Yz8oYy5jaGFyQXQoYy5sZW5ndGgtMSkhPT0iLyImJgooYys9Ii8iKSxhPWMrZCk6YT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vc3RhdGljL3NlcnZpY2Vfd29ya2VyLyIrZCsiLyI7dmFyIGY7dHJ5e2Y9bmV3IFVSTChhKX1jYXRjaChnKXtyZXR1cm4gbnVsbH1yZXR1cm4gZi5wcm90b2NvbCE9PSJodHRwczoiP251bGw6Zn0sakw9ZnVuY3Rpb24oYSl7dmFyIGI9bm0oam0uYmEuT2gpO3JldHVybiBiJiZiW2FdfSxrTD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuSz1nTCgpO3RoaXMuWj10aGlzLlI9ITE7dGhpcy5mYT1udWxsO3RoaXMuaW5pdFRpbWU9TWF0aC5yb3VuZChOYigpKTt0aGlzLkg9MTU7dGhpcy5OPXRoaXMuRnIoYSk7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5pbml0aWFsaXplKCl9LDFFMyk7YmQoZnVuY3Rpb24oKXtiLnpzKGEpfSl9O2s9a0wucHJvdG90eXBlO2suZGVsZWdhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZ2V0U3RhdGUoKSE9PTI/KHRoaXMuSy5IKHRoaXMuSCx7c3RhdGU6dGhpcy5nZXRTdGF0ZSgpLApKZzp0aGlzLmluaXRUaW1lLFVnOk1hdGgucm91bmQoTmIoKSktdGhpcy5pbml0VGltZX0sdm9pZCAwLGEuY29tbWFuZFR5cGUpLGMoe2ZhaWx1cmVUeXBlOnRoaXMuSH0pKTp0aGlzLk4ua3IoYSxiLGMpfTtrLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTi5nZXRTdGF0ZSgpLnN0YXRlfTtrLnpzPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luLGM9dGhpcyxkPVhjKCk7dHJ5e3ZhciBlPWQuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGY9YS5wYXRobmFtZSxnPWZbZi5sZW5ndGgtMV09PT0iLyI/YS50b1N0cmluZygpOmEudG9TdHJpbmcoKSsiLyIsaD1hLm9yaWdpbiE9PSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSI/aEwoZik6IiIsbDtNKDEzMykmJihsPXtzYW5kYm94OiJhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIn0pO1hjKGcrInN3X2lmcmFtZS5odG1sP29yaWdpbj0iK2VuY29kZVVSSUNvbXBvbmVudChiKSsKaCx2b2lkIDAsbCx2b2lkIDAsZSk7dmFyIG49ZnVuY3Rpb24oKXtkLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO2UuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtjLmZhPWUuY29udGVudFdpbmRvdztkLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24ocCl7cC5vcmlnaW49PT1hLm9yaWdpbiYmYy5OLmtzKHAuZGF0YSl9KTtjLmluaXRpYWxpemUoKX0pfTtkLmNvbnRlbnREb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIj9uKCk6ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7bigpfSl9Y2F0Y2gocCl7ZC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGQpLHRoaXMuSD0xMSx0aGlzLksuSyh2b2lkIDAsdm9pZCAwLHRoaXMuSCxwLnRvU3RyaW5nKCkpfX07ay5Gcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9ZkwoZnVuY3Rpb24oZCl7dmFyIGU7KGU9Yi5mYSk9PQpudWxsfHxlLnBvc3RNZXNzYWdlKGQsYS5vcmlnaW4pfSx7cW86ZnVuY3Rpb24oKXtiLlI9ITA7Yi5LLksoYy5nZXRTdGF0ZSgpLGMuc3RhdHMpfSxzbzpmdW5jdGlvbigpe30scG86ZnVuY3Rpb24oZCl7Yi5SPyhiLkg9KGQ9PW51bGw/dm9pZCAwOmQuZmFpbHVyZVR5cGUpfHwxMCxiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsdm9pZCAwLGQ9PW51bGw/dm9pZCAwOmQuZGF0YSkpOihiLkg9KGQ9PW51bGw/dm9pZCAwOmQuZmFpbHVyZVR5cGUpfHw0LGIuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzLGIuSCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKX0sb25GYWlsdXJlOmZ1bmN0aW9uKGQpe2IuSD1kLmZhaWx1cmVUeXBlO2IuSy5IKGIuSCxjLmdldFN0YXRlKCksYy5zdGF0cyxkLmNvbW1hbmQsZC5kYXRhKX19KTtyZXR1cm4gY307ay5pbml0aWFsaXplPWZ1bmN0aW9uKCl7dGhpcy5afHx0aGlzLk4uaW5pdCgpO3RoaXMuWj0hMH07CnZhciBsTD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZTtpZigoZT1qTChhKSk9PW51bGx8fCFlLmRlbGVnYXRlKXt2YXIgZj1JYygpPzE2OjY7Z0woKS5IKGYsdm9pZCAwLHZvaWQgMCxiLmNvbW1hbmRUeXBlKTtkKHtmYWlsdXJlVHlwZTpmfSk7cmV0dXJufWpMKGEpLmRlbGVnYXRlKGIsYyxkKTt9OwpmdW5jdGlvbiBtTChhLGIsYyxkKXt2YXIgZT1pTChhKTtpZihlPT09bnVsbCl7ZCgiX2lzX3N3PWYiKyhJYygpPzE2OjYpKyJ0ZSIpO3JldHVybn12YXIgZj1iPzE6MCxnPU1hdGgucm91bmQoTmIoKSksaCxsPShoPWpMKGUub3JpZ2luKSk9PW51bGw/dm9pZCAwOmguaW5pdFRpbWUsbj1sP2ctbDp2b2lkIDAscDtNKDQzMik/cD1XaigpP3ZvaWQgMDpBLmxvY2F0aW9uLmhyZWY6cD1BLmxvY2F0aW9uLmhyZWY7bEwoZS5vcmlnaW4se2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6Zix0ZW1wbGF0ZXM6Yyxib2R5OmJ8fCIiLHByb2Nlc3NSZXNwb25zZTohMCxzaW5jZUluaXQ6bixhdHRyaWJ1dGlvblJlcG9ydGluZzohMCxyZWZlcmVyOnAsc3RyaWN0Ok0oNTg0KX19LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbihxKXt2YXIgcj0iX2lzX3N3PWYiK3EuZmFpbHVyZVR5cGUsdCx1PSh0PWpMKGUub3JpZ2luKSk9PQpudWxsP3ZvaWQgMDp0LmdldFN0YXRlKCk7dSE9PXZvaWQgMCYmKHIrPSJzIit1KTtkKG4/cisoInQiK24pOnIrInRlIil9KTt9O2Z1bmN0aW9uIG5MKGEpe2lmKElmKDQ3KSYmZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSkmJldqKCkpe3ZhciBiPWEuTTtpZihJYygpJiZiZygiaW50ZXJuYWxfc3dfYWxsb3dlZCIsIiIpKXt2YXIgYz1layhiKSxkPVdqKCk/WGooKTp2b2lkIDAsZTtlPWQ/e3BhdGg6ZCxlbzoiZnVsbCJ9OmM/e3BhdGg6YyxlbzoibGl0ZSJ9OnZvaWQgMDtpZihlKXt2YXIgZj1lLmVvLGc9bmV3IFVSTChlLnBhdGgsQS5sb2NhdGlvbi5vcmlnaW4pO2lmKGcub3JpZ2luPT09QS5sb2NhdGlvbi5vcmlnaW4mJnB5KGYpPT09dm9pZCAwKXt2YXIgaD1vbShqbS5iYS5PaCx7fSk7aFtmXXx8KGhbZl09bmV3IG55KGcpKX19fX19O2Z1bmN0aW9uIHNMKCl7dmFyIGE7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7dmFyIGI7cmV0dXJuISgoYj1hLmZlYXR1cmVQb2xpY3kpPT1udWxsfHwhYi5hbGxvd2VkRmVhdHVyZXMoKS5pbmNsdWRlcygiYXR0cmlidXRpb24tcmVwb3J0aW5nIikpfTtmdW5jdGlvbiB3TChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1GcCgpLGY9RHAoZSk7aWYoZi51cmwpaWYoZCl7dmFyIGc9YyhmLnVybCk7YiE9PWcmJlUoYSxGLkQuUGUsZyl9ZWxzZXt2YXIgaD1mLnVybDtiIT09aCYmVShhLEYuRC5QZSxjKGgpKX19O2Z1bmN0aW9uIEFMKGEpe1YoYSxILkouSmEsITApO1YoYSxILkouRWIsTmIoKSk7VihhLEguSi55bixhLk0uZXZlbnRNZXRhZGF0YVtILkouSmFdKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBZTD17UmE6e0NrOjEsem46MixIbjozLEluOjQsSm46NSx3bjo2fX07WUwuUmFbWUwuUmEuQ2tdPSJBRE9CRV9DT01NRVJDRSI7WUwuUmFbWUwuUmEuem5dPSJTUVVBUkVTUEFDRSI7WUwuUmFbWUwuUmEuSG5dPSJXT09fQ09NTUVSQ0UiO1lMLlJhW1lMLlJhLkluXT0iV09PX0NPTU1FUkNFX0xFR0FDWSI7WUwuUmFbWUwuUmEuSm5dPSJXT1JEX1BSRVNTIjtZTC5SYVtZTC5SYS53bl09IlNIT1BJRlkiO2Z1bmN0aW9uIFpMKGEpe3ZhciBiPUE7cmV0dXJuIEtqKGIuZXNjYXBlKGIuYXRvYihhKSkpfQpmdW5jdGlvbiAkTCgpe3RyeXtpZighTSg0OTgpJiYhTSg0MjUpKXJldHVybltdO3ZhciBhPW5tKGptLmJhLmxuKTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBhO3ZhciBiPVtdLGM7YTp7dHJ5e2M9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtkYXRhLXJlcXVpcmVtb2R1bGVePSJtYWdlLyJdJyk7YnJlYWsgYX1jYXRjaCh5KXt9Yz0hMX1jJiZiLnB1c2goWUwuUmEuQ2spO3ZhciBkO2E6e3RyeXt2YXIgZT1aTCgiWVhOelpYUnpMbk54ZFdGeVpYTndZV05sTG1OdmJTOD0iKTtkPWU/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmNePSIvLycrZSsnIl0nKTohMTticmVhayBhfWNhdGNoKHkpe31kPSExfWQmJmIucHVzaChZTC5SYS56bik7dmFyIGY7YTp7aWYoTSg0MjUpKXRyeXt2YXIgZz1aTCgiYzJodmNHbG1lUzVqYjIwPSIpLGg9WkwoImMyaHZjR2xtZVdOa2JpNWpiMjA9Iik7Zj1nJiZoPyEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0iY2RuLicrZysnIl0sbWV0YVtwcm9wZXJ0eT0ib2c6aW1hZ2UiXVtjb250ZW50Kj0iY2RuLicrCihnKyciXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJjZG4uJykrKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImZvbnRzLicpKyhoKyciXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJpdGVyYWJsZS1zaG9waWZ5Il0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0idi4nKSsoZysnIl0nKSk6ITE7YnJlYWsgYX1jYXRjaCh5KXt9Zj0hMX1mJiZiLnB1c2goWUwuUmEud24pO3ZhciBsO2E6e3RyeXtsPSEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0id29vY29tbWVyY2UiXSxsaW5rW2hyZWYqPSJ3b29jb21tZXJjZSJdLFtjbGFzc3w9Indvb2NvbW1lcmNlIl0nKTticmVhayBhfWNhdGNoKHkpe31sPSExfWwmJmIucHVzaChZTC5SYS5Jbik7dmFyIG47YTp7dHJ5e3ZhciBwLHE9KChwPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpwLmhvc3RuYW1lKXx8IiIscix0PSgocj1CLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6ci5vcmlnaW4pfHwKIiIsdT1aTCgiTG5kdmNtUndjbVZ6Y3k1amIyMD0iKSx2PVpMKCJMeTl6TG5jdWIzSm4iKTtuPXUmJnY/VGIocSx1KXx8ISFCLnF1ZXJ5U2VsZWN0b3IoJ1tzcmNePSInK3QrJy93cC1jb250ZW50Il0sbWV0YVtuYW1lPSJnZW5lcmF0b3IiXVtjb250ZW50Xj0iV29yZFByZXNzICJdLGxpbmtbcmVsPSJkbnMtcHJlZmV0Y2giXVtocmVmPSInKyh2KyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31uPSExfW4mJmIucHVzaChZTC5SYS5Kbik7dmFyIHg7YTp7dHJ5e3g9ISFCLnF1ZXJ5U2VsZWN0b3IoJ1tjbGFzcyo9Indvb2NvbW1lcmNlIl0sbWV0YVtuYW1lPSJnZW5lcmF0b3IiXVtjb250ZW50Xj0iV29vQ29tbWVyY2UgIl0nKTticmVhayBhfWNhdGNoKHkpe314PSExfXgmJmIucHVzaChZTC5SYS5Ibik7VUIoKSYmbW0oam0uYmEubG4sYik7cmV0dXJuIGJ9Y2F0Y2goeSl7fXJldHVybltdfTtmdW5jdGlvbiB3TShhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXt2YXIgYj1OZig2NywxNTAwKSxjPWEubWVyZ2VIaXREYXRhRm9yS2V5LGQ9Ri5ELlRhLGU9e307Yy5jYWxsKGEsZCxlKX19O3ZhciB4TT0icGxhdGZvcm0gcGxhdGZvcm1WZXJzaW9uIGFyY2hpdGVjdHVyZSBtb2RlbCB1YUZ1bGxWZXJzaW9uIGJpdG5lc3MgZnVsbFZlcnNpb25MaXN0IHdvdzY0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIHlNKGEpe3ZhciBiO3JldHVybihiPWEuZ29vZ2xlX3RhZ19kYXRhKSE9bnVsbD9iOmEuZ29vZ2xlX3RhZ19kYXRhPXt9fWZ1bmN0aW9uIHpNKGEpe3ZhciBiLGM7cmV0dXJuKGM9KGI9YS5nb29nbGVfdGFnX2RhdGEpPT1udWxsP3ZvaWQgMDpiLnVhY2hfcHJvbWlzZSkhPW51bGw/YzpudWxsfWZ1bmN0aW9uIEFNKGEpe3ZhciBiLGM7cmV0dXJuIHR5cGVvZigoYj1hLm5hdmlnYXRvcik9PW51bGw/dm9pZCAwOihjPWIudXNlckFnZW50RGF0YSk9PW51bGw/dm9pZCAwOmMuZ2V0SGlnaEVudHJvcHlWYWx1ZXMpPT09ImZ1bmN0aW9uIn0KZnVuY3Rpb24gQk0oYSl7aWYoIUFNKGEpKXJldHVybiBudWxsO3ZhciBiPXlNKGEpO2lmKGIudWFjaF9wcm9taXNlKXJldHVybiBiLnVhY2hfcHJvbWlzZTt2YXIgYz1hLm5hdmlnYXRvci51c2VyQWdlbnREYXRhLmdldEhpZ2hFbnRyb3B5VmFsdWVzKHhNKS50aGVuKGZ1bmN0aW9uKGQpe2IudWFjaCE9bnVsbHx8KGIudWFjaD1kKTtyZXR1cm4gZH0pO3JldHVybiBiLnVhY2hfcHJvbWlzZT1jfTsKdmFyIENNPWZ1bmN0aW9uKCl7dGhpcy53aW5kb3c9QTt0aGlzLk49TmJ9O0NNLnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7aWYoQU0odGhpcy53aW5kb3cpJiYodGhpcy5aPXRoaXMuTigpLCF6TSh0aGlzLndpbmRvdykpKXt2YXIgYT1CTSh0aGlzLndpbmRvdyk7YSYmYS50aGVuKGZ1bmN0aW9uKCl7UCg5NSl9KS5jYXRjaChmdW5jdGlvbigpe1AoOTYpfSl9fTtDTS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3ZhciBhPXRoaXMud2luZG93Lmdvb2dsZV90YWdfZGF0YSxiO2lmKGEhPW51bGwmJmEudWFjaCl7dmFyIGM9YS51YWNoLGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjKTtjLmZ1bGxWZXJzaW9uTGlzdCYmKGQuZnVsbFZlcnNpb25MaXN0PWMuZnVsbFZlcnNpb25MaXN0LnNsaWNlKDApKTtiPWR9ZWxzZSBiPW51bGw7cmV0dXJuIGJ9O0NNLnByb3RvdHlwZS5mYT1mdW5jdGlvbihhKXt2YXIgYj0wLGM9dGhpcyxkPWZ1bmN0aW9uKGgsbCl7dHJ5e2EoaCxsKX1jYXRjaChuKXt9fSwKZT10aGlzLkgoKTtpZihlKWQoZSk7ZWxzZXt2YXIgZj16TSh0aGlzLndpbmRvdyk7aWYoZil7Yj1NYXRoLm1pbihNYXRoLm1heChpc0Zpbml0ZShiKT9iOjAsMCksMUUzKTt2YXIgZz10aGlzLndpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZC5LZ3x8KGQuS2c9ITAsUCgxMDYpLGQobnVsbCxFcnJvcigiVGltZW91dCIpKSl9LGIpO2YudGhlbihmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNCksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQoaCkpfSkuY2F0Y2goZnVuY3Rpb24oaCl7ZC5LZ3x8KGQuS2c9ITAsUCgxMDUpLGMud2luZG93LmNsZWFyVGltZW91dChnKSxkKG51bGwsaCkpfSl9ZWxzZSBkKG51bGwpfX07Q00ucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5aIT09dm9pZCAwfTt2YXIgRE09ZnVuY3Rpb24oKXt2YXIgYTthPWE9PT12b2lkIDA/QTphO3JldHVybiBBTShhKX0sRU09ZnVuY3Rpb24oYSl7dmFyIGI9e307YltGLkQuY2ddPWEuYXJjaGl0ZWN0dXJlOwpiW0YuRC5kZ109YS5iaXRuZXNzO2EuZnVsbFZlcnNpb25MaXN0JiYoYltGLkQuZWddPWEuZnVsbFZlcnNpb25MaXN0Lm1hcChmdW5jdGlvbihjKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGMuYnJhbmR8fCIiKSsiOyIrZW5jb2RlVVJJQ29tcG9uZW50KGMudmVyc2lvbnx8IiIpfSkuam9pbigifCIpKTtiW0YuRC5mZ109YS5tb2JpbGU/IjEiOiIwIjtiW0YuRC5nZ109YS5tb2RlbDtiW0YuRC5oZ109YS5wbGF0Zm9ybTtiW0YuRC5pZ109YS5wbGF0Zm9ybVZlcnNpb247YltGLkQuamddPWEud293NjQ/IjEiOiIwIjtyZXR1cm4gYn0sRk09bmV3IENNO2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9O3ZhciBlTj17enE6e1V0OiJjZCIsZnA6ImNlIixWdDoiY2YiLFd0OiJjcGYiLFh0OiJjdSJ9fTtmdW5jdGlvbiBnTihhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjPXdiKHJiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMfHxbXSk7YyYmKFUoYSxGLkQuVmYsYyksYiYmdWIoKSl9O2Z1bmN0aW9uIEZPKGEsYixjLGQpe31GTy5QPSJpbnRlcm5hbC5leGVjdXRlRXZlbnRQcm9jZXNzb3IiO2Z1bmN0aW9uIEdPKGEpe3ZhciBiO3JldHVybiBVZChiLHRoaXMuVCwxKX1HTy5QPSJpbnRlcm5hbC5leGVjdXRlSmF2YXNjcmlwdFN0cmluZyI7ZnVuY3Rpb24gSE8oYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO3JldHVybiBifUlPLlA9ImludGVybmFsLmdlbmVyYXRlQ2xpZW50SWQiO2Z1bmN0aW9uIEpPKGEpe3ZhciBiPXt9O3JldHVybiBVZChiKX1KTy5QPSJpbnRlcm5hbC5nZXRBZHNDb29raWVXcml0aW5nT3B0aW9ucyI7ZnVuY3Rpb24gS08oYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7cmV0dXJuIGJ9VU8uUD0iaW50ZXJuYWwuZ2V0RWNzaWRDb29raWVWYWx1ZSI7ZnVuY3Rpb24gVk8oYSxiKXt2YXIgYz1udWxsO2lmKCFraChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9YS5nZXRWYWx1ZSgpO2lmKCEoZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBFcnJvcigiZ2V0RWxlbWVudEF0dHJpYnV0ZSByZXF1aXJlcyBhbiBIVE1MIEVsZW1lbnQuIik7TCh0aGlzLCJnZXRfZWxlbWVudF9hdHRyaWJ1dGVzIixkLGIpO2M9ZWQoZCxiKTtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtpZigha2goYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9wYXF1ZVZhbHVlIl0sYXJndW1lbnRzKTt2YXIgYz1hLmdldFZhbHVlKCk7aWYoIShjIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXRocm93IEVycm9yKCJnZXRFbGVtZW50SW5uZXJUZXh0IHJlcXVpcmVzIGFuIEhUTUwgRWxlbWVudC4iKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRfdGV4dCIsYyk7Yj1mZChjKTtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO2lmKCFraChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9YS5nZXRWYWx1ZSgpO2lmKCEoZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBFcnJvcigiZ2V0RWxlbWVudFByb3BlcnR5IHJlcXVpcmVzIGFuIEhUTUwgZWxlbWVudC4iKTtMKHRoaXMsImFjY2Vzc19kb21fZWxlbWVudF9wcm9wZXJ0aWVzIixkLCJyZWFkIixiKTtjPWRbYl07cmV0dXJuIFVkKGMpfSRPLlA9ImludGVybmFsLmdldEVsZW1lbnRQcm9wZXJ0eSI7ZnVuY3Rpb24gYVAoYSl7dmFyIGI7aWYoIWtoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSJdLGFyZ3VtZW50cyk7dmFyIGM9YS5nZXRWYWx1ZSgpO2lmKCEoYyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBFcnJvcigiZ2V0RWxlbWVudFZhbHVlIHJlcXVpcmVzIGFuIEhUTUwgRWxlbWVudC4iKTtMKHRoaXMsImFjY2Vzc19lbGVtZW50X3ZhbHVlcyIsYywicmVhZCIpO2I9YyBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQ/Yy52YWx1ZTplZChjLCJ2YWx1ZSIpfHwiIjtyZXR1cm4gYn1hUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmFsdWUiO2Z1bmN0aW9uIGJQKGEpe3ZhciBiPTA7cmV0dXJuIGJ9YlAuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFZpc2liaWxpdHlSYXRpbyI7ZnVuY3Rpb24gY1AoYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1jUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiOwpmdW5jdGlvbiBkUChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7TCh0aGlzLCJyZWFkX2V2ZW50X2RhdGEiLGEpO3ZhciBjO2E6e3ZhciBkPWEsZT1YRih0aGlzKS5vcmlnaW5hbEV2ZW50RGF0YTtpZihlKXtmb3IodmFyIGY9ZSxnPXt9LGg9e30sbD17fSxuPVtdLHA9ZC5zcGxpdCgiXFxcXCIpLHE9MDtxPHAubGVuZ3RoO3ErKyl7Zm9yKHZhciByPXBbcV0uc3BsaXQoIlxcLiIpLHQ9MDt0PHIubGVuZ3RoO3QrKyl7Zm9yKHZhciB1PXJbdF0uc3BsaXQoIi4iKSx2PTA7djx1Lmxlbmd0aDt2Kyspbi5wdXNoKHVbdl0pLHYhPT11Lmxlbmd0aC0xJiZuLnB1c2gobCk7dCE9PXIubGVuZ3RoLTEmJm4ucHVzaChoKX1xIT09cC5sZW5ndGgtMSYmbi5wdXNoKGcpfWZvcih2YXIgeD1bXSx5PSIiLHo9bShuKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz0Kei5uZXh0KCkpe3ZhciBEPUMudmFsdWU7RD09PWw/KHgucHVzaCh5KSx5PSIiKTp5PUQ9PT1nP3krIlxcIjpEPT09aD95KyIuIjp5K0R9eSYmeC5wdXNoKHkpO2Zvcih2YXIgST1tKHgpLEc9SS5uZXh0KCk7IUcuZG9uZTtHPUkubmV4dCgpKXtpZihmPT1udWxsKXtjPXZvaWQgMDticmVhayBhfWY9ZltHLnZhbHVlXX1jPWZ9ZWxzZSBjPXZvaWQgMH1iPVVkKGMsdGhpcy5ULDEpO3JldHVybiBifWRQLlA9ImludGVybmFsLmdldEV2ZW50RGF0YSI7ZnVuY3Rpb24gZVAoYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1lUC5QPSJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiBmUCgpe3ZhciBhO3JldHVybiBhfWZQLlA9ImludGVybmFsLmdldEdzYUV4cGVyaW1lbnRJZCI7ZnVuY3Rpb24gZ1AoKXtyZXR1cm4gbmV3IFBkKFBrKX1nUC5QPSJpbnRlcm5hbC5nZXRIdG1sSWQiO2Z1bmN0aW9uIGhQKCl7dmFyIGE7cmV0dXJuIGF9aFAuUD0iaW50ZXJuYWwuZ2V0SWZyYW1pbmdTdGF0ZSI7ZnVuY3Rpb24gaVAoYSxiKXt2YXIgYz17fTtyZXR1cm4gVWQoYyl9aVAuUD0iaW50ZXJuYWwuZ2V0TGlua2VyVmFsdWVGcm9tTG9jYXRpb24iO2Z1bmN0aW9uIGpQKCl7dmFyIGE9bmV3IGtiO3JldHVybiBhfWpQLlA9ImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIjtmdW5jdGlvbiBrUChhLGIpe3ZhciBjO3JldHVybiBjfWtQLlA9ImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gbFAoYSxiKXt2YXIgYztyZXR1cm4gY31sUC5wdWJsaWNOYW1lPSJnZXRRdWVyeVBhcmFtZXRlcnMiO2Z1bmN0aW9uIG1QKGEsYil7dmFyIGM7cmV0dXJuIGN9bVAucHVibGljTmFtZT0iZ2V0UmVmZXJyZXJRdWVyeVBhcmFtZXRlcnMiO2Z1bmN0aW9uIG5QKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfcmVmZXJyZXIiLGEpO2I9TmooUmooQi5yZWZlcnJlciksYSk7cmV0dXJuIGJ9blAucHVibGljTmFtZT0iZ2V0UmVmZXJyZXJVcmwiO2Z1bmN0aW9uIG9QKCl7cmV0dXJuIHptKCl9b1AuUD0iaW50ZXJuYWwuZ2V0UmVnaW9uQ29kZSI7ZnVuY3Rpb24gcFAoYSxiKXt2YXIgYztyZXR1cm4gY31wUC5QPSJpbnRlcm5hbC5nZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIHFQKGEsYil7dmFyIGM9bnVsbDsKcmV0dXJuIGN9cVAuUD0iaW50ZXJuYWwuZ2V0U2NvcGVkRWxlbWVudHNCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiByUCgpe3ZhciBhPW5ldyBrYjthLnNldCgid2lkdGgiLDApO2Euc2V0KCJoZWlnaHQiLDApO3JldHVybiBhfXJQLlA9ImludGVybmFsLmdldFNjcmVlbkRpbWVuc2lvbnMiO2Z1bmN0aW9uIHNQKCl7dmFyIGE9IiI7cmV0dXJuIGF9c1AuUD0iaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCI7ZnVuY3Rpb24gdFAoKXt2YXIgYT0iIjtyZXR1cm4gYX10UC5QPSJpbnRlcm5hbC5nZXRUb3BXaW5kb3dVcmwiO2Z1bmN0aW9uIHVQKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIixhKTtiPUxqKFJqKEEubG9jYXRpb24uaHJlZiksYSk7cmV0dXJuIGJ9dVAucHVibGljTmFtZT0iZ2V0VXJsIjtmdW5jdGlvbiB2UCgpe0wodGhpcywiZ2V0X3VzZXJfYWdlbnQiKTtyZXR1cm4gSGMudXNlckFnZW50fXZQLnB1YmxpY05hbWU9ImdldFVzZXJBZ2VudCI7dlAuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50IjtmdW5jdGlvbiB3UCgpe3ZhciBhO3JldHVybiBhP1VkKEVNKGEpKTphfXdQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudENsaWVudEhpbnRzIjtmdW5jdGlvbiB6UCgpe3ZhciBhPUE7cmV0dXJuIGEuZ2FHbG9iYWw9YS5nYUdsb2JhbHx8e319ZnVuY3Rpb24gQVAoYSxiKXt2YXIgYz16UCgpO2lmKGMudmlkPT09dm9pZCAwfHxiJiYhYy5mcm9tX2Nvb2tpZSljLnZpZD1hLGMuZnJvbV9jb29raWU9Yn07ZnVuY3Rpb24gYlEoYSl7KGJrKFpLKGEpKXx8V2ooKSkmJlUoYSxGLkQub20sem0oKXx8eW0oKSk7IWJrKFpLKGEpKSYmV2ooKSYmVShhLEYuRC5ZaSwiOjoiKX1mdW5jdGlvbiBjUShhKXtXaigpJiYoYmsoWksoYSkpfHxEbSgpfHxVKGEsRi5ELlNsLCEwKSl9O2Z1bmN0aW9uIGhRKGEsYixjLGQpe3ZhciBlO2lmKChuZCgpfHxrZCgpKSYmWGooKSYmWGooKSE9PSIvIil7dmFyIGY9UmooYSk7ZT1JZig1MCkmJmQmJlRiKGYucGF0aG5hbWUsIi9nL2NvbGxlY3QiKT8yOihkfHwhV2ooKXx8RG0oKT8wOlRiKGYucGF0aG5hbWUsIi9nYS9nL2MiKXx8VGIoZi5wYXRobmFtZSwiL2FnL2cvYyIpKT8xOjB9ZWxzZSBlPTA7c3dpdGNoKGUpe2Nhc2UgMjp2YXIgZztpZihNKDU0Nikpe3ZhciBoPVRiKGEsIi9nL2NvbGxlY3QiKT9hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEwKTphLGw9aVEoKSxuPWgrbCxwPWpRKCIvZy9jb2xsZWN0IixiLGMpO2c9e0ljOm4sa2Y6IiIsYm9keTpwfX1lbHNlIGc9e0ljOmEsa2Y6Yixib2R5OmN9O3JldHVybiBnO2Nhc2UgMTp2YXIgcTtpZihNKDU0Nykpe3ZhciByPWlRKCksdD1hLmluZGV4T2YociksdT1hLnN1YnN0cmluZygwLHQpK3Isdj1qUShhLnN1YnN0cmluZyh0K3IubGVuZ3RoLTEpLGIsYyk7cT17SWM6dSxrZjoiIiwKYm9keTp2fX1lbHNlIHE9e0ljOmEsa2Y6Yixib2R5OmN9O3JldHVybiBxO2RlZmF1bHQ6cmV0dXJue0ljOmEsa2Y6Yixib2R5OmN9fX1mdW5jdGlvbiBpUSgpe3ZhciBhPVhqKCk7aWYoIWEpcmV0dXJuIiI7U2IoYSwiLyIpfHwoYT0iLyIrYSk7VGIoYSwiLyIpfHwoYSs9Ii8iKTtyZXR1cm4gYX1mdW5jdGlvbiBqUShhLGIsYyl7dmFyIGQ9W2FdO2ImJmQucHVzaCgiPyIsYik7YyYmZC5wdXNoKCJcclxuIixjKTtyZXR1cm4gZC5qb2luKCIiKX07ZnVuY3Rpb24gc1IoYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5mYik7dmFyIGI9TyhhLk0sRi5ELldkKTtiJiYoS0MoYixmdW5jdGlvbigpe30pLFUoYSxGLkQuV2QsYikpfTtmdW5jdGlvbiB2UihhKXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4hIWMmJmMuY29udmVyc2lvbn07VihhLEguSi5tZyxiKFhLKGEpKSk7UShhLEguSi5uZykmJlYoYSxILkouWW0sYihYSyhhLCJmaXJzdF92aXNpdCIpKSk7UShhLEguSi5UZSkmJlYoYSxILkouYm4sYihYSyhhLCJzZXNzaW9uX3N0YXJ0IikpKX07dmFyIEFSPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPVN0cmluZyh6Ui5jb29raWUpLnNwbGl0KCI7IiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLnNwbGl0KCI9IiksZj1lWzBdLnRyaW0oKTtpZihmJiZhKGYpKXt2YXIgZz1lLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7ZyYmKGc9ZGVjb2RlVVJJQ29tcG9uZW50KGcpKTt2YXIgaD12b2lkIDAsbD12b2lkIDA7KChoPWIpW2w9Zl18fChoW2xdPVtdKSkucHVzaChnKX19cmV0dXJuIGJ9O3ZhciBCUj13aW5kb3cselI9ZG9jdW1lbnQsQ1I9ZnVuY3Rpb24oYSl7dmFyIGI9QlIuX2dhVXNlclByZWZzO2lmKGImJmIuaW9vJiZiLmlvbygpfHx6Ui5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJkYXRhLWdvb2dsZS1hbmFseXRpY3Mtb3B0LW91dCIpfHxhJiZCUlsiZ2EtZGlzYWJsZS0iK2FdPT09ITApcmV0dXJuITA7dHJ5e3ZhciBjPUJSLmV4dGVybmFsO2lmKGMmJmMuX2dhVXNlclByZWZzJiZjLl9nYVVzZXJQcmVmcz09Im9vIilyZXR1cm4hMH1jYXRjaChmKXt9Zm9yKHZhciBkPUFSKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09IkFNUF9UT0tFTiJ9KS5BTVBfVE9LRU58fFtdLGU9MDtlPGQubGVuZ3RoO2UrKylpZihkW2VdPT0iJE9QVF9PVVQiKXJldHVybiEwO3JldHVybiB6Ui5nZXRFbGVtZW50QnlJZCgiX19nYU9wdE91dEV4dGVuc2lvbiIpPyEwOiExfTt2YXIgTVI9ImdjbGlkIGRjbGlkIGdjbHNyYyB3YnJhaWQgZ2JyYWlkIGdhZF9zb3VyY2UgZ2FkX2NhbXBhaWduaWQgdXRtX3NvdXJjZSB1dG1fbWVkaXVtIHV0bV9jYW1wYWlnbiB1dG1fdGVybSB1dG1fY29udGVudCB1dG1faWQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gTlIoKXt2YXIgYT1CLmxvY2F0aW9uLGIsYz1hPT1udWxsP3ZvaWQgMDooYj1hLnNlYXJjaCk9PW51bGw/dm9pZCAwOmIucmVwbGFjZSgiPyIsIiIpLGQ7aWYoYyl7Zm9yKHZhciBlPVtdLGY9SmooYywhMCksZz1tKE1SKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPWZbbF07aWYobilmb3IodmFyIHA9MDtwPG4ubGVuZ3RoO3ArKyl7dmFyIHE9bltwXTtxIT09dm9pZCAwJiZlLnB1c2goe25hbWU6bCx2YWx1ZTpxfSl9fWQ9ZX1lbHNlIGQ9W107cmV0dXJuIGR9O3ZhciBQUj1bRi5ELnJhLEYuRC5rYV0sUVI9W0YuRC5yYSxGLkQua2EsRi5ELm1hXTsKZnVuY3Rpb24gUlIoYSl7dmFyIGIsYz1NKDUwNikmJiFkSShhLCJjY2RfZ2FfYWRzX2lkc19vcHRfb3V0IiwhMSksZD0hIWRJKGEsImdvb2dsZV9uZyIsITEpLGU9WG8oYz9kP1FSOmZwOlBSKSxmO2Y9ZEkoYSxGLkQuVWYsTyhhLk0sRi5ELlVmKSl8fCEhZEkoYSwiZ29vZ2xlX25nIiwhMSk7Yj17aGY6YyxFczpkLEdvOmUsZmY6ZixMZzohIWRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSksYmk6QW0oKSxHajohVksoKSxGczpiayhaSyhhKSksRHM6ISFRKGEsSC5KLmJlKSxHczohIVEoYSxILkouVGUpLHVzOiEhTyhhLk0sRi5ELk5sKSxLczohIVEoYSxILkouZWopLHhnOk8oYS5NLEYuRC5TYyksbnI6TyhhLk0sRi5ELlNjLHZvaWQgMCw0KSxIczohIVEoYSxILkouRmMpfTtWKGEsSC5KLmNqLGIuZmYpO1YoYSxILkouYmosU1IoYikpO2IuaGYmJiFiLmZmJiZiLkxnJiZTUihiKSYmVShhLCJfJmlidCIsIjEiKTtTUihiKSYmYi5HbyYmKGIuaGY/Yi54ZyE9PSExfHxiLkxnOjEpJiZWKGEsCkguSi5ybiwhMCk7Yi5FcyYmIWIuYmkmJlUoYSxGLkQuTGUsMSk7KGIuaGY/Yi54ZzpiLm5yKT09PSExJiZVKGEsIl8mbmdzIiwiMSIpO1YoYSxILkouaGQsVFIoYikmJihiLkdzfHxiLnVzKSk7VihhLEguSi5yZyxUUihiKSYmYi5LcyYmIWIuYmkpfWZ1bmN0aW9uIFNSKGEpe3JldHVybiBhLmhmPyhhLkxnfHxhLmZmKSYmIWEuYmkmJiFhLkdqOmEuZmYmJmEueGchPT0hMSYmIWEuR2omJiFhLmJpfWZ1bmN0aW9uIFRSKGEpe2lmKGEuSHMpcmV0dXJuITE7aWYoYS5oZil7aWYoIWEuZmYmJiFhLkxnKXJldHVybiExfWVsc2UgaWYoIWEuZmYpcmV0dXJuITE7cmV0dXJuIGEuRnN8fGEuRHN8fGEuR2p8fChhLmhmP2EueGc9PT0hMSYmIWEuTGc6YS54Zz09PSExKXx8IWEuR28/ITE6ITB9O2Z1bmN0aW9uIGhTKGEpe31mdW5jdGlvbiBpUyhhKXt2YXIgYj1mdW5jdGlvbigpe307cmV0dXJuIGJ9CmZ1bmN0aW9uIGpTKGEsYil7fXZhciBrUz1KLlUucWwsbFM9Si5VLnJsO2Z1bmN0aW9uIG1TKGEsYil7dmFyIGM9dGsoKTtjJiZjLmluZGV4T2YoYik+LTEmJihhW0guSi5DY109ITApfXZhciBuUz1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspYS5oYXNPd25Qcm9wZXJ0eShiW2RdKSYmKGFbU3RyaW5nKGJbZF0pXT1jKGFbU3RyaW5nKGJbZF0pXSkpfTtmdW5jdGlvbiBvUyhhLGIsYyl7dmFyIGQ9dGhpcztpZighbGgoYSl8fCFmaChiKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yj9UZChiLHRoaXMuVCwxKTp7fTtURihbZnVuY3Rpb24oKXtyZXR1cm4gTChkLCJjb25maWd1cmVfZ29vZ2xlX3RhZ3MiLGEsZSl9XSk7dmFyIGY9Yz9UZChjKTp7fSxnPVhGKHRoaXMpO2Yub3JpZ2luYXRpbmdFbnRpdHk9dEcoZyk7Zy5wcmlvcml0eVF1ZXVlJiYoZi5wcmlvcml0eVF1ZXVlPWcucHJpb3JpdHlRdWV1ZSk7bUQockMoYSxlKSxnLmV2ZW50SWQsZik7fW9TLlA9ImludGVybmFsLmd0YWdDb25maWciO2Z1bmN0aW9uIHBTKGEsYixjLGQpe3ZhciBlPXRoaXM7fXBTLlA9ImludGVybmFsLmd0YWdEZXN0aW5hdGlvbkNvbmZpZyI7CmZ1bmN0aW9uIHJTKGEsYil7fQpyUy5wdWJsaWNOYW1lPSJndGFnU2V0IjtmdW5jdGlvbiBzUygpe3ZhciBhPXt9O3JldHVybiBhfTtmdW5jdGlvbiB0UyhhKXt9dFMuUD0iaW50ZXJuYWwuaW5pdGlhbGl6ZVNlcnZpY2VXb3JrZXIiO2Z1bmN0aW9uIHVTKGEsYil7fXVTLnB1YmxpY05hbWU9ImluamVjdEhpZGRlbklmcmFtZSI7ZnVuY3Rpb24gdlMoYSxiLGMsZCxlKXtpZighKChsaChhKXx8a2goYSkpJiZoaChiKSYmaGgoYykmJnBoKGQpJiZwaChlKSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3xPcGFxdWVWYWx1ZSIsImZ1bmN0aW9uIiwiZnVuY3Rpb24iLCJib29sZWFufHVuZGVmaW5lZCIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZj1YRih0aGlzKSxnPUNGKCk7ZCYmZygzKTtlJiYoZygxKSxnKDIpKTt2YXIgaD1mLmV2ZW50SWQsbD1mLlBiKCksbj1nKHZvaWQgMCk7REZ8fChERj1uZXcgQkYpO3ZhciBwPURGO2lmKGZuLk4pe3ZhciBxPVN0cmluZyhuKStsO3AuSFtoXT1wLkhbaF18fFtdO3AuSFtoXS5wdXNoKHEpO3AuS1toXT1wLktbaF18fFtdO3AuS1toXS5wdXNoKCJwIitsKX1pZihkJiZlKXRocm93IEVycm9yKCJ1c2VJZnJhbWUgYW5kIHN1cHBvcnREb2N1bWVudFdyaXRlIGNhbm5vdCBib3RoIGJlIHRydWUuIik7CkwodGhpcywidW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbCIsZCxlKTt2YXIgcj1UZChiLHRoaXMuVCksdD1UZChjLHRoaXMuVCksdT1UZChhLHRoaXMuVCwxKTt3Uyh1LHIsdCwhIWQsISFlLGYpO30KdmFyIHhTPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBmdW5jdGlvbigpe3RyeXtpZihiLmxlbmd0aD4wKXt2YXIgZT1iLnNoaWZ0KCksZj14UyhhLGIsYyxkKSxnPWU7aWYoU3RyaW5nKGcubm9kZU5hbWUpLnRvVXBwZXJDYXNlKCk9PT0iU0NSSVBUIiYmZy50eXBlPT09InRleHQvZ3Rtc2NyaXB0Iil7dmFyIGg9Zy50ZXh0fHxnLnRleHRDb250ZW50fHxnLmlubmVySFRNTHx8IiIsbD1nLmdldEF0dHJpYnV0ZSgiZGF0YS1ndG1zcmMiKSxuPWcuY2hhcnNldHx8IiI7bD9VYyhsLGYsZCx7YXN5bmM6ITEsaWQ6ZS5pZCx0ZXh0OmgsY2hhcnNldDpufSxhKTooZz1CLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGcuYXN5bmM9ITEsZy50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGcuaWQ9ZS5pZCxnLnRleHQ9aCxnLmNoYXJzZXQ9bixmJiYoZy5vbmxvYWQ9ZiksYS5pbnNlcnRCZWZvcmUoZyxudWxsKSk7bHx8ZigpfWVsc2UgaWYoZS5pbm5lckhUTUwmJmUuaW5uZXJIVE1MLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiPHNjcmlwdCIpPj0KMCl7Zm9yKHZhciBwPVtdO2UuZmlyc3RDaGlsZDspcC5wdXNoKGUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKSk7YS5pbnNlcnRCZWZvcmUoZSxudWxsKTt4UyhlLHAsZixkKSgpfWVsc2UgYS5pbnNlcnRCZWZvcmUoZSxudWxsKSxmKCl9ZWxzZSBjKCl9Y2F0Y2gocSl7ZCgpfX19LHdTPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihCLmJvZHkpe3ZhciBnPVNrKGEsYixjKTthPWcud3M7Yj1nLm9uU3VjY2VzcztpZihkKXt9ZWxzZSBlPwp5UyhhLGIsYyk6eFMoQi5ib2R5LGdkKGEpLGIsYykoKX1lbHNlIEEuc2V0VGltZW91dChmdW5jdGlvbigpe3dTKGEsYixjLGQsZSxmKX0pfTt2Uy5QPSJpbnRlcm5hbC5pbmplY3RIdG1sIjt2YXIgQVM9e2RsOjEsaWQ6MX07CmZ1bmN0aW9uIEJTKGEsYixjLGQpe31CUy5wdWJsaWNOYW1lPSJpbmplY3RTY3JpcHQiO2Z1bmN0aW9uIENTKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI1Il07cmV0dXJuIGJ9Q1MuUD0iaW50ZXJuYWwuaXNBdXRvUGlpRWxpZ2libGUiO2Z1bmN0aW9uIERTKGEpe3ZhciBiPSEwO3JldHVybiBifURTLnB1YmxpY05hbWU9ImlzQ29uc2VudEdyYW50ZWQiO2Z1bmN0aW9uIEVTKGEpe3ZhciBiPSExO3JldHVybiBifUVTLlA9ImludGVybmFsLmlzRGVidWdNb2RlIjtmdW5jdGlvbiBGUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1GUy5QPSJpbnRlcm5hbC5pc0Rlc3RpbmF0aW9uSW5pdGlhbGl6ZWQiO2Z1bmN0aW9uIEdTKCl7cmV0dXJuIEJtKCl9R1MuUD0iaW50ZXJuYWwuaXNEbWFSZWdpb24iO2Z1bmN0aW9uIEhTKCl7cmV0dXJuIFVCKCl9SFMuUD0iaW50ZXJuYWwuaXNEb21SZWFkeSI7ZnVuY3Rpb24gSVMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9SVMuUD0iaW50ZXJuYWwuaXNFbnRpdHlJbmZyYXN0cnVjdHVyZSI7ZnVuY3Rpb24gSlMoYSl7dmFyIGI9ITE7aWYoIXFoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiXSxbYV0pO2I9TShhKTtyZXR1cm4gYn1KUy5QPSJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIjtmdW5jdGlvbiBLUygpe3ZhciBhPSExO3JldHVybiBhfUtTLlA9ImludGVybmFsLmlzRnBmZSI7ZnVuY3Rpb24gTFMoKXt2YXIgYT0hMTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTtyZXR1cm4gYX1PUy5QPSJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciI7ZnVuY3Rpb24gUFMoKXt2YXIgYT1RaChmdW5jdGlvbihiKXtYRih0aGlzKS5sb2coImVycm9yIixiKX0pO2EucHVibGljTmFtZT0iSlNPTiI7cmV0dXJuIGF9O2Z1bmN0aW9uIFFTKGEpe3ZhciBiPXZvaWQgMDtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7Yj1SaihhKTtyZXR1cm4gVWQoYil9UVMuUD0iaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiO2Z1bmN0aW9uIFJTKCl7cmV0dXJuITF9CnZhciBTUz17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuITF9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7fX07ZnVuY3Rpb24gVFMoKXt0cnl7TCh0aGlzLCJsb2dnaW5nIil9Y2F0Y2goZCl7cmV0dXJufWlmKCFjb25zb2xlKXJldHVybjtmb3IodmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGI9MDtiPGEubGVuZ3RoO2IrKylhW2JdPVRkKGFbYl0sdGhpcy5UKTt2YXIgYz1YRih0aGlzKTtjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLGEpO3RHKGMpO31UUy5wdWJsaWNOYW1lPSJsb2dUb0NvbnNvbGUiO2Z1bmN0aW9uIFVTKGEsYil7fVVTLlA9ImludGVybmFsLm1lcmdlUmVtb3RlQ29uZmlnIjtmdW5jdGlvbiBWUyhhLGIsYyl7Yz1jPT09dm9pZCAwPyEwOmM7dmFyIGQ9W107cmV0dXJuIFVkKGQpfVZTLlA9ImludGVybmFsLnBhcnNlQ29va2llVmFsdWVzRnJvbVN0cmluZyI7ZnVuY3Rpb24gV1MoYSl7dmFyIGI9dm9pZCAwO2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuO2EmJlNiKGEsIi8vIikmJihhPUIubG9jYXRpb24ucHJvdG9jb2wrYSk7aWYodHlwZW9mIFVSTD09PSJmdW5jdGlvbiIpe3ZhciBjO2E6e3ZhciBkO3RyeXtkPW5ldyBVUkwoYSl9Y2F0Y2goeCl7Yz12b2lkIDA7YnJlYWsgYX1mb3IodmFyIGU9e30sZj1BcnJheS5mcm9tKGQuc2VhcmNoUGFyYW1zKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ11bMF0sbD1mW2ddWzFdO2UuaGFzT3duUHJvcGVydHkoaCk/dHlwZW9mIGVbaF09PT0ic3RyaW5nIj9lW2hdPVtlW2hdLGxdOmVbaF0ucHVzaChsKTplW2hdPWx9Yz17aHJlZjpkLmhyZWYsb3JpZ2luOmQub3JpZ2luLHByb3RvY29sOmQucHJvdG9jb2wsdXNlcm5hbWU6ZC51c2VybmFtZSxwYXNzd29yZDpkLnBhc3N3b3JkLGhvc3Q6ZC5ob3N0LGhvc3RuYW1lOmQuaG9zdG5hbWUsCnBvcnQ6ZC5wb3J0LHBhdGhuYW1lOmQucGF0aG5hbWUsc2VhcmNoOmQuc2VhcmNoLHNlYXJjaFBhcmFtczplLGhhc2g6ZC5oYXNofX1yZXR1cm4gVWQoYyl9dmFyIG47dHJ5e249UmooYSl9Y2F0Y2goeCl7cmV0dXJufWlmKCFuLnByb3RvY29sfHwhbi5ob3N0KXJldHVybjt2YXIgcD17fTtpZihuLnNlYXJjaClmb3IodmFyIHE9bi5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikscj0wO3I8cS5sZW5ndGg7cisrKXt2YXIgdD1xW3JdLnNwbGl0KCI9IiksdT10WzBdLHY9S2oodC5zcGxpY2UoMSkuam9pbigiPSIpKXx8IiI7dj12LnJlcGxhY2UoL1wrL2csIiAiKTtwLmhhc093blByb3BlcnR5KHUpP3R5cGVvZiBwW3VdPT09InN0cmluZyI/cFt1XT1bcFt1XSx2XTpwW3VdLnB1c2godik6cFt1XT12fW4uc2VhcmNoUGFyYW1zPXA7bi5vcmlnaW49bi5wcm90b2NvbCsiLy8iK24uaG9zdDtuLnVzZXJuYW1lPSIiO24ucGFzc3dvcmQ9IiI7Yj1VZChuKTsKcmV0dXJuIGJ9V1MucHVibGljTmFtZT0icGFyc2VVcmwiO2Z1bmN0aW9uIFhTKGEpe31YUy5QPSJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCI7ZnVuY3Rpb24gWVMoYSxiLGMpe3ZhciBkO3JldHVybiBkfVlTLlA9ImludGVybmFsLnB1c2hUb0RhdGFMYXllciI7ZnVuY3Rpb24gWlMoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9ITE7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1bdGhpcyxhXSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZC5wdXNoKFRkKGYudmFsdWUsdGhpcy5ULDEpKTt0cnl7TC5hcHBseShudWxsLGQpLGM9ITB9Y2F0Y2goZyl7cmV0dXJuITF9cmV0dXJuIGN9WlMucHVibGljTmFtZT0icXVlcnlQZXJtaXNzaW9uIjtmdW5jdGlvbiAkUyhhKXt2YXIgYj10aGlzO30kUy5QPSJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiI7ZnVuY3Rpb24gYVQoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWFULnB1YmxpY05hbWU9InJlYWRBbmFseXRpY3NTdG9yYWdlIjtmdW5jdGlvbiBiVCgpe3ZhciBhPSIiO3JldHVybiBhfWJULnB1YmxpY05hbWU9InJlYWRDaGFyYWN0ZXJTZXQiO2Z1bmN0aW9uIGNUKCl7cmV0dXJuIEUoMTkpfWNULlA9ImludGVybmFsLnJlYWREYXRhTGF5ZXJOYW1lIjtmdW5jdGlvbiBkVCgpe3ZhciBhPSIiO3JldHVybiBhfWRULnB1YmxpY05hbWU9InJlYWRUaXRsZSI7ZnVuY3Rpb24gZVQoYSxiKXt2YXIgYz10aGlzO31lVC5QPSJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIjtmdW5jdGlvbiBmVChhLGIpe3JldHVybiEwfWZULlA9ImludGVybmFsLnJlZ2lzdGVyRGVzdGluYXRpb24iO3ZhciBnVD1bImV2ZW50Il07ZnVuY3Rpb24gaFQoYSxiLGMpe31oVC5QPSJpbnRlcm5hbC5yZWdpc3Rlckd0YWdDb21tYW5kTGlzdGVuZXIiO2Z1bmN0aW9uIGlUKGEsYil7dmFyIGM9ITE7cmV0dXJuIGN9aVQuUD0iaW50ZXJuYWwucmVtb3ZlRGF0YUxheWVyRXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24galQoYSxiKXt9CmpULlA9ImludGVybmFsLnJlbW92ZUZvcm1EYXRhIjtmdW5jdGlvbiBrVCgpe31rVC5wdWJsaWNOYW1lPSJyZXNldERhdGFMYXllciI7ZnVuY3Rpb24gbFQoYSxiLGMpe3ZhciBkPXZvaWQgMDtyZXR1cm4gZH1sVC5QPSJpbnRlcm5hbC5zY3J1YlVybFBhcmFtcyI7ZnVuY3Rpb24gbVQoYSl7fW1ULlA9ImludGVybmFsLnNlbmRBZHNIaXQiO2Z1bmN0aW9uIG5UKGEsYixjLGQpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mnx8IWZoKGQpfHwhZmgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImFueSIsImFueSIsIk9iamVjdHx1bmRlZmluZWQiLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZT1jP1RkKGMsdGhpcy5ULDEpOnt9LGY9VGQoYSksZz1BcnJheS5pc0FycmF5KGYpP2Y6W2ZdO2I9U3RyaW5nKGIpO3ZhciBoPWQ/VGQoZCk6e30sbD1YRih0aGlzKTtoLm9yaWdpbmF0aW5nRW50aXR5PXRHKGwpO2wucHJpb3JpdHlRdWV1ZSYmKGgucHJpb3JpdHlRdWV1ZT1sLnByaW9yaXR5UXVldWUpO2Zvcih2YXIgbj0wO248Zy5sZW5ndGg7bisrKXt2YXIgcD1nW25dO2lmKHR5cGVvZiBwPT09InN0cmluZyIpe3ZhciBxPXt9O0VkKGUscSk7dmFyIHI9e307RWQoaCxyKTt2YXIgdD1zQyhwLGIscSk7bUQodCwKaC5ldmVudElkfHxsLmV2ZW50SWQscil9fX1uVC5QPSJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50IjtmdW5jdGlvbiBvVChhLGIsYyl7fW9ULnB1YmxpY05hbWU9InNlbmRQaXhlbCI7ZnVuY3Rpb24gcFQoYSxiKXt9cFQuUD0iaW50ZXJuYWwuc2V0QW5jaG9ySHJlZiI7ZnVuY3Rpb24gcVQoYSl7fXFULlA9ImludGVybmFsLnNldENvbnRhaW5lckNvbnNlbnREZWZhdWx0cyI7ZnVuY3Rpb24gclQoYSxiLGMsZCl7dmFyIGU9dGhpcztkPWQ9PT12b2lkIDA/ITA6ZDt2YXIgZj0hMTsKcmV0dXJuIGZ9clQucHVibGljTmFtZT0ic2V0Q29va2llIjtmdW5jdGlvbiBzVChhKXt9c1QuUD0iaW50ZXJuYWwuc2V0Q29yZVBsYXRmb3JtU2VydmljZXMiO2Z1bmN0aW9uIHRUKGEsYil7fXRULlA9ImludGVybmFsLnNldERhdGFMYXllclZhbHVlIjtmdW5jdGlvbiB1VChhKXt9dVQucHVibGljTmFtZT0ic2V0RGVmYXVsdENvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gdlQoYSxiKXt9dlQuUD0iaW50ZXJuYWwuc2V0RGVsZWdhdGVkQ29uc2VudFR5cGUiO2Z1bmN0aW9uIHdUKGEsYil7fXdULlA9ImludGVybmFsLnNldEZvcm1BY3Rpb24iO2Z1bmN0aW9uIHhUKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt9eFQuUD0iaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIHlUKGEsYixjKXtyZXR1cm4hMX15VC5wdWJsaWNOYW1lPSJzZXRJbldpbmRvdyI7ZnVuY3Rpb24gelQoYSxiLGMpe316VC5QPSJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIEFUKGEsYixjKXt9QVQuUD0iaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBCVChhLGIpe30KQlQuUD0iaW50ZXJuYWwuc2V0VHJhbnNtaXNzaW9uTW9kZSI7ZnVuY3Rpb24gQ1QoYSxiLGMsZCl7dmFyIGU9dGhpczt9Q1QucHVibGljTmFtZT0ic2hhMjU2IjtmdW5jdGlvbiBEVChhLGIsYyl7fQpEVC5QPSJpbnRlcm5hbC5zb3J0UmVtb3RlQ29uZmlnUGFyYW1ldGVycyI7ZnVuY3Rpb24gRVQoYSl7fUVULlA9ImludGVybmFsLnN0b3JlQWRzQnJhaWRMYWJlbHMiO2Z1bmN0aW9uIEZUKGEsYil7dmFyIGM9dm9pZCAwO3JldHVybiBjfUZULlA9ImludGVybmFsLnN1YnNjcmliZVRvQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBHVChhKXt9R1QuUD0iaW50ZXJuYWwudGFza1NlbmRBZHNIaXRzIjt2YXIgSFQ9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGM9WEYodGhpcykuUGIoKSxkPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2RbY10mJihiPWRbY10uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpP2RbY11bImd0bS4iK2FdOm51bGwpO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdPWRbY118fHt9O2RbY11bImd0bS4iK2FdPWI7fSwKcmVtb3ZlSXRlbTpmdW5jdGlvbihhKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGI9WEYodGhpcykuUGIoKSxjPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKCFjW2JdfHwhY1tiXS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLiIrYSkpcmV0dXJuO2RlbGV0ZSBjW2JdWyJndG0uIithXTt9LGNsZWFyOmZ1bmN0aW9uKCl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBhPVhGKHRoaXMpLlBiKCk7ZGVsZXRlIGFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2FdO30sCnB1YmxpY05hbWU6InRlbXBsYXRlU3RvcmFnZSJ9O2Z1bmN0aW9uIElUKGEsYil7dmFyIGM9ITE7aWYoIWtoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9wYXF1ZVZhbHVlIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgZD1hLmdldFZhbHVlKCk7aWYoIShkIGluc3RhbmNlb2YgUmVnRXhwKSlyZXR1cm4hMTtjPWQudGVzdChiKTtyZXR1cm4gY31JVC5QPSJpbnRlcm5hbC50ZXN0UmVnZXgiO2Z1bmN0aW9uIEpUKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBLVChhLGIpe31LVC5QPSJpbnRlcm5hbC50cmFja1VzYWdlIjtmdW5jdGlvbiBMVChhLGIpe3ZhciBjO3JldHVybiBjfUxULlA9ImludGVybmFsLnVuc3Vic2NyaWJlRnJvbUNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gTVQoYSl7fU1ULnB1YmxpY05hbWU9InVwZGF0ZUNvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gTlQoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9TlQuUD0iaW50ZXJuYWwudXNlckRhdGFOZWVkc0VuY3J5cHRpb24iO3ZhciBPVD1mdW5jdGlvbigpe3RoaXMuSD1uZXcgYWl9LFFUPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBiO3ZhciBjPVBULkg7aWYoYy5jb250YWlucyhhKSliPWMuZ2V0KGEsdGhpcyk7ZWxzZXt2YXIgZDtpZihkPWMuSC5oYXNPd25Qcm9wZXJ0eShhKSl7dmFyIGU9dGhpcy5ULnhiKCk7aWYoZSl7dmFyIGY9ITEsZz1lLlBiKCk7aWYoZyl7QmgoZyl8fChmPSEwKTt9ZD1mfWVsc2UgZD0hMH1pZihkKXt2YXIgaD1jLkguaGFzT3duUHJvcGVydHkoYSk/Yy5IW2FdOnZvaWQgMDtiPWh9ZWxzZSB0aHJvdyBFcnJvcihhKyIgaXMgbm90IGEgdmFsaWQgQVBJIG5hbWUuIik7fXJldHVybiBifX0sUFQ7ZnVuY3Rpb24gUlQoYSxiLGMpe1BUfHwoUFQ9bmV3IE9UKTtQVC5ILmFkZChhLGIsYyl9ZnVuY3Rpb24gU1QoYSxiKXtQVHx8KFBUPW5ldyBPVCk7dmFyIGM9UFQuSDtpZihjLkguaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgcHJpdmF0ZSBmdW5jdGlvbiB3aGljaCBhbHJlYWR5IGV4aXN0czogIithKyIuIik7aWYoYy5jb250YWlucyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBwcml2YXRlIGZ1bmN0aW9uIHdpdGggYW4gZXhpc3RpbmcgQVBJIG5hbWU6ICIrYSsiLiIpO2MuSFthXT15YihiKT90aChhLGIpOnVoKGEsYil9O2Z1bmN0aW9uIFRUKGEsYil7ZnVuY3Rpb24gYyhkKXtpZighZWgoZCkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGU9VGQoZCx0aGlzLlQsMSkucmIoKTthKGUpfWMuUD0iaW50ZXJuYWwuIitiO3JldHVybiBjfTtmdW5jdGlvbiBVVCgpe3ZhciBhPWZ1bmN0aW9uKGMpe3JldHVybiB2b2lkIFNUKGMuUCxjKX0sYj1mdW5jdGlvbihjKXtyZXR1cm4gdm9pZCBSVChjLnB1YmxpY05hbWUsYyl9O2IoUkYpO2IoWUYpO2IoUkcpO2IoVEcpO2IoVUcpO2IoZEgpO2IoZkgpO2IoaEkpO2IoUFMoKSk7YihqSSk7YihPTyk7YihQTyk7YihsUCk7YihtUCk7YihuUCk7Yih1UCk7Yih2UCk7YihyUyk7Yih1Uyk7YihCUyk7YihEUyk7YihUUyk7YihXUyk7YihaUyk7YihhVCk7YihiVCk7YihkVCk7YihvVCk7YihyVCk7Yih1VCk7Yih5VCk7YihDVCk7YihIVCk7YihNVCk7UlQoIk1hdGgiLHpoKCkpO1JUKCJPYmplY3QiLFpoKTtSVCgiVGVzdEhlbHBlciIsY2koKSk7UlQoImFzc2VydEFwaSIsd2gpO1JUKCJhc3NlcnRUaGF0Iix4aCk7UlQoImRlY29kZVVyaSIsQ2gpO1JUKCJkZWNvZGVVcmlDb21wb25lbnQiLERoKTtSVCgiZW5jb2RlVXJpIixFaCk7UlQoImVuY29kZVVyaUNvbXBvbmVudCIsRmgpO1JUKCJmYWlsIiwKTGgpO1JUKCJnZW5lcmF0ZVJhbmRvbSIsTmgpO1JUKCJnZXRUaW1lc3RhbXAiLE9oKTtSVCgiZ2V0VGltZXN0YW1wTWlsbGlzIixPaCk7UlQoImdldFR5cGUiLFBoKTtSVCgibWFrZUludGVnZXIiLFJoKTtSVCgibWFrZU51bWJlciIsU2gpO1JUKCJtYWtlU3RyaW5nIixUaCk7UlQoIm1ha2VUYWJsZU1hcCIsVWgpO1JUKCJtb2NrIixYaCk7UlQoIm1vY2tPYmplY3QiLFloKTtSVCgiZnJvbUJhc2U2NCIsSE8sISgiYXRvYiJpbiBBKSk7UlQoImxvY2FsU3RvcmFnZSIsU1MsIVJTKCkpO1JUKCJ0b0Jhc2U2NCIsSlQsISgiYnRvYSJpbiBBKSk7YShRRik7YShVRik7YShuRyk7YShzRyk7YShJRyk7YShQRyk7YShTRyk7YShWRyk7YShXRyk7YShaRyk7YSgkRyk7YShhSCk7YShiSCk7YShjSCk7YShlSCk7YShnSCk7YShnSSk7YShpSSk7YShrSSk7YShsSSk7YShtSSk7YShuSSk7YShvSSk7YShmSik7YShtSik7YSh0Sik7YSh1Sik7YShBSik7YShGSik7YShLSik7YShSSik7YShXSik7YShnSyk7CmEoaUspO2EodkspO2Eod0spO2EoeEspO2EoRk8pO2EoR08pO2EoSU8pO2EoSk8pO2EoS08pO2EoTE8pO2EoTU8pO2EoTk8pO2EoUU8pO2EoUk8pO2EoU08pO2EoVE8pO2EoVU8pO2EoVk8pO2EoV08pO2EoWE8pO2EoWU8pO2EoWk8pO2EoJE8pO2EoYVApO2EoYlApO2EoY1ApO2EoZFApO2EoZVApO2EoZlApO2EoZ1ApO2EoaFApO2EoaVApO2EoalApO2Eoa1ApO2Eob1ApO2EocFApO2EocVApO2EoclApO2Eoc1ApO2EodFApO2Eod1ApO2Eob1MpO2EocFMpO2EodFMpO2EodlMpO2EoQ1MpO2EoRVMpO2EoRlMpO2EoR1MpO2EoSFMpO2EoSVMpO2EoSlMpO2EoS1MpO2EoTFMpO2EoTVMpO2EoTlMpO2EoT1MpO2EoUVMpO2EoR0cpO2EoVVMpO2EoVlMpO2EoWFMpO2EoWVMpO2EoJFMpO2EoY1QpO2EoZVQpO2EoZlQpO2EoaFQpO2EoaVQpO2EoalQpO2EobFQpO2EobVQpO2EoblQpO2EocFQpO2EocVQpO2Eoc1QpO2EodFQpO2EodlQpO2Eod1QpO2EoeFQpO2EoelQpO2EoQVQpO2EoQlQpO2EoRFQpOwphKEVUKTthKEZUKTthKEdUKTthKElUKTthKEtUKTthKExUKTthKE5UKTtTVCgiaW50ZXJuYWwuSWZyYW1pbmdTdGF0ZVNjaGVtYSIsc1MoKSk7U1QoImludGVybmFsLnF1aWNrSGFzaCIsTWgpO1BUfHwoUFQ9bmV3IE9UKTtyZXR1cm4gUVQoKX07dmFyIEpGO2Z1bmN0aW9uIFZUKCl7SkYuc2QoZnVuY3Rpb24oYSxiLGMpe2xqKCk7dmFyIGQ9amo7ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU9ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkV8fDA7ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkUrKzt0cnl7cmV0dXJuIGEuYXBwbHkoYixjKX1maW5hbGx5e2xqKCksamouSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFLS19fSl9ZnVuY3Rpb24gV1QoYSl7aWYoYSYmYS5sZW5ndGgpZm9yKHZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10ucmVwbGFjZSgvXl8qLywiIik7YltkXT1bInNhbmRib3hlZFNjcmlwdHMiXX19CmZ1bmN0aW9uIFhUKGEpe2lmKGEpe3ZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtHYihhLGZ1bmN0aW9uKGMsZCl7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPWRbZV0ucmVwbGFjZSgvXl8qLywiIik7YltmXT1iW2ZdfHxbXTtiW2ZdLnB1c2goYyl9fSl9fTtmdW5jdGlvbiBaVChhKXttRChwQygiZGV2ZWxvcGVyX2lkLiIrYSwhMCksMCx7fSl9O2Z1bmN0aW9uICRUKGEsYil7cmV0dXJuIEVkKGEsYnx8bnVsbCl9ZnVuY3Rpb24gWShhKXtyZXR1cm4gd2luZG93LmVuY29kZVVSSUNvbXBvbmVudChhKX1mdW5jdGlvbiBhVShhKXtaYyhhLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIGJVKGEpe3ZhciBiPVsidmVpbnRlcmFjdGl2ZS5jb20iLCJ2ZS1pbnRlcmFjdGl2ZS5jbiJdO2lmKCFhKXJldHVybiExO3ZhciBjPUxqKFJqKGEpLCJob3N0Iik7aWYoIWMpcmV0dXJuITE7Zm9yKHZhciBkPTA7YiYmZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0mJmJbZF0udG9Mb3dlckNhc2UoKTtpZihlKXt2YXIgZj1jLmxlbmd0aC1lLmxlbmd0aDtmPjAmJmUuY2hhckF0KDApIT09Ii4iJiYoZi0tLGU9Ii4iK2UpO2lmKGY+PTAmJmMuaW5kZXhPZihlLGYpPT09ZilyZXR1cm4hMH19cmV0dXJuITF9CmZ1bmN0aW9uIGNVKGEsYixjKXtmb3IodmFyIGQ9e30sZT0hMSxmPTA7YSYmZjxhLmxlbmd0aDtmKyspYVtmXSYmYVtmXS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtmXS5oYXNPd25Qcm9wZXJ0eShjKSYmKGRbYVtmXVtiXV09YVtmXVtjXSxlPSEwKTtyZXR1cm4gZT9kOm51bGx9ZnVuY3Rpb24gZFUoYSxiKXt2YXIgYz17fTtpZihhKWZvcih2YXIgZCBpbiBhKWEuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPWFbZF0pO2lmKGIpe3ZhciBlPWNVKGIsInBhcmFtZXRlciIsInBhcmFtZXRlclZhbHVlIik7ZSYmKGM9JFQoZSxjKSl9cmV0dXJuIGN9ZnVuY3Rpb24gZVUoYSxiLGMpe3JldHVybiBhPT09dm9pZCAwfHxhPT09Yz9iOmF9ZnVuY3Rpb24gZlUoYSxiLGMpe3JldHVybiBVYyhhLGIsYyx2b2lkIDApfWZ1bmN0aW9uIGdVKGEsYil7QVthXT1ifWZ1bmN0aW9uIGhVKGEsYixjKXt2YXIgZD1BO2ImJihkW2FdPT09dm9pZCAwfHxjJiYhZFthXSkmJihkW2FdPWIpO3JldHVybiBkW2FdfXZhciBpVT17fSxqVT1YLlY7dmFyIFo9e3NlY3VyaXR5R3JvdXBzOnt9fTsKClouc2VjdXJpdHlHcm91cHMuYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2U9WyJnb29nbGUiXSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2U9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5PPSJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuaXNJbmZyYXN0cnVjdHVyZT0hMSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2VbIjUiXT0hMSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2VbIjYiXT0hMTsKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfZWxlbWVudF92YWx1ZXM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQsZSl7cmV0dXJue2VsZW1lbnQ6YyxvcGVyYXRpb246ZCxuZXdWYWx1ZTplfX0oZnVuY3Rpb24oYil7Wi5fX2FjY2Vzc19lbGVtZW50X3ZhbHVlcz1iO1ouX19hY2Nlc3NfZWxlbWVudF92YWx1ZXMuTz0iYWNjZXNzX2VsZW1lbnRfdmFsdWVzIjtaLl9fYWNjZXNzX2VsZW1lbnRfdmFsdWVzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2FjY2Vzc19lbGVtZW50X3ZhbHVlcy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19lbGVtZW50X3ZhbHVlcy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19hY2Nlc3NfZWxlbWVudF92YWx1ZXNbIjUiXT0hMTtaLl9fYWNjZXNzX2VsZW1lbnRfdmFsdWVzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd1JlYWQsZD1iLnZ0cF9hbGxvd1dyaXRlLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yOwpyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyxoLGwpe2lmKCEoZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBlKGYse30sIkVsZW1lbnQgbXVzdCBiZSBhIEhUTUxFbGVtZW50LiIpO2lmKGghPT0icmVhZCImJmghPT0id3JpdGUiKXRocm93IGUoZix7fSwiVW5rbm93biBvcGVyYXRpb246ICIraCsiLiIpO2lmKGg9PSJyZWFkIiYmIWMpdGhyb3cgZShmLHt9LCJBdHRlbXB0aW5nIHRvIHBlcmZvcm0gZGlzYWxsb3dlZCBvcGVyYXRpb246IHJlYWQuIik7aWYoaD09IndyaXRlIil7aWYoIWQpdGhyb3cgZShmLHt9LCJBdHRlbXB0aW5nIHRvIHBlcmZvcm0gZGlzYWxsb3dlZCBvcGVyYXRpb246IHdyaXRlLiIpO2lmKCF6YihsKSl0aHJvdyBlKGYse30sIkF0dGVtcHRpbmcgdG8gd3JpdGUgdmFsdWUgd2l0aG91dCB2YWxpZCBuZXcgdmFsdWUuIik7fX0sYWE6YX19KX0oKTsKClouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2dsb2JhbHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3ZhciBlPXtrZXk6ZCxyZWFkOiExLHdyaXRlOiExLGV4ZWN1dGU6ITF9O3N3aXRjaChjKXtjYXNlICJyZWFkIjplLnJlYWQ9ITA7YnJlYWs7Y2FzZSAid3JpdGUiOmUud3JpdGU9ITA7YnJlYWs7Y2FzZSAicmVhZHdyaXRlIjplLnJlYWQ9ZS53cml0ZT0hMDticmVhaztjYXNlICJleGVjdXRlIjplLmV4ZWN1dGU9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiSW52YWxpZCAiK2IrIiByZXF1ZXN0ICIrYyk7fXJldHVybiBlfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2dsb2JhbHM9YjtaLl9fYWNjZXNzX2dsb2JhbHMuTz0iYWNjZXNzX2dsb2JhbHMiO1ouX19hY2Nlc3NfZ2xvYmFscy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfZ2xvYmFscy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19nbG9iYWxzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7ClouX19hY2Nlc3NfZ2xvYmFsc1siNSJdPSExO1ouX19hY2Nlc3NfZ2xvYmFsc1siNiJdPSExfSkoZnVuY3Rpb24oYil7Zm9yKHZhciBjPWIudnRwX2tleXN8fFtdLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yLGU9W10sZj1bXSxnPVtdLGg9MDtoPGMubGVuZ3RoO2grKyl7dmFyIGw9Y1toXSxuPWwua2V5O2wucmVhZCYmZS5wdXNoKG4pO2wud3JpdGUmJmYucHVzaChuKTtsLmV4ZWN1dGUmJmcucHVzaChuKX1yZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKHAscSxyKXtpZighemIocikpdGhyb3cgZChwLHt9LCJLZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihxPT09InJlYWQiKXtpZihlLmluZGV4T2Yocik+LTEpcmV0dXJufWVsc2UgaWYocT09PSJ3cml0ZSIpe2lmKGYuaW5kZXhPZihyKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09InJlYWR3cml0ZSIpe2lmKGYuaW5kZXhPZihyKT4tMSYmZS5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIGlmKHE9PT0iZXhlY3V0ZSIpe2lmKGcuaW5kZXhPZihyKT4KLTEpcmV0dXJufWVsc2UgdGhyb3cgZChwLHt9LCJPcGVyYXRpb24gbXVzdCBiZSBlaXRoZXIgJ3JlYWQnLCAnd3JpdGUnLCBvciAnZXhlY3V0ZScsIHdhcyAiK3EpO3Rocm93IGQocCx7fSwiUHJvaGliaXRlZCAiK3ErIiBvbiBnbG9iYWwgdmFyaWFibGU6ICIrcisiLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfZG9tX2VsZW1lbnRfcHJvcGVydGllcz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCxlKXt2YXIgZj17cHJvcGVydHk6ZSxyZWFkOiExLHdyaXRlOiExfTtzd2l0Y2goZCl7Y2FzZSAicmVhZCI6Zi5yZWFkPSEwO2JyZWFrO2Nhc2UgIndyaXRlIjpmLndyaXRlPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkludmFsaWQgIitiKyIgb3BlcmF0aW9uICIrZCk7fXJldHVybiBmfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXM9YjtaLl9fYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXMuTz0iYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXMiO1ouX19hY2Nlc3NfZG9tX2VsZW1lbnRfcHJvcGVydGllcy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfZG9tX2VsZW1lbnRfcHJvcGVydGllcy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19kb21fZWxlbWVudF9wcm9wZXJ0aWVzLmlzSW5mcmFzdHJ1Y3R1cmU9CiExO1ouX19hY2Nlc3NfZG9tX2VsZW1lbnRfcHJvcGVydGllc1siNSJdPSExO1ouX19hY2Nlc3NfZG9tX2VsZW1lbnRfcHJvcGVydGllc1siNiJdPSExfSkoZnVuY3Rpb24oYil7Zm9yKHZhciBjPWIudnRwX3Byb3BlcnRpZXN8fFtdLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yLGU9W10sZj1bXSxnPTA7ZzxjLmxlbmd0aDtnKyspe3ZhciBoPWNbZ10sbD1oLnByb3BlcnR5O2gucmVhZCYmZS5wdXNoKGwpO2gud3JpdGUmJmYucHVzaChsKX1yZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKG4scCxxLHIpe2lmKCF6YihyKSl0aHJvdyBkKG4se30sIlByb3BlcnR5IG11c3QgYmUgYSBzdHJpbmcuIik7aWYocT09PSJyZWFkIil7aWYoZS5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIGlmKHE9PT0id3JpdGUiKXtpZihmLmluZGV4T2Yocik+LTEpcmV0dXJufWVsc2UgdGhyb3cgZChuLHt9LCdPcGVyYXRpb24gbXVzdCBiZSBlaXRoZXIgInJlYWQiIG9yICJ3cml0ZSInKTt0aHJvdyBkKG4se30sCiciJytxKyciIG9wZXJhdGlvbiBpcyBub3QgYWxsb3dlZC4nKTt9LGFhOmF9fSl9KCk7CgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZG9tX2VsZW1lbnRfdGV4dD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntlbGVtZW50OmN9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9kb21fZWxlbWVudF90ZXh0PWI7Wi5fX3JlYWRfZG9tX2VsZW1lbnRfdGV4dC5PPSJyZWFkX2RvbV9lbGVtZW50X3RleHQiO1ouX19yZWFkX2RvbV9lbGVtZW50X3RleHQuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9kb21fZWxlbWVudF90ZXh0LnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kb21fZWxlbWVudF90ZXh0LmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRfdGV4dFsiNSJdPSExO1ouX19yZWFkX2RvbV9lbGVtZW50X3RleHRbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGQsZSl7aWYoIShlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXRocm93IGMoZCwKe30sIldyb25nIGVsZW1lbnQgdHlwZS4gTXVzdCBiZSBIVE1MRWxlbWVudC4iKTt9LGFhOmF9fSl9KCk7CgpaLnNlY3VyaXR5R3JvdXBzLmdldF9yZWZlcnJlcj1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue2NvbXBvbmVudDpjLHF1ZXJ5S2V5OmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X3JlZmVycmVyPWI7Wi5fX2dldF9yZWZlcnJlci5PPSJnZXRfcmVmZXJyZXIiO1ouX19nZXRfcmVmZXJyZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3JlZmVycmVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZ2V0X3JlZmVycmVyLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF9yZWZlcnJlclsiNSJdPSExO1ouX19nZXRfcmVmZXJyZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX3VybFBhcnRzPT09ImFueSI/bnVsbDpbXTtjJiYoYi52dHBfcHJvdG9jb2wmJmMucHVzaCgicHJvdG9jb2wiKSxiLnZ0cF9ob3N0JiZjLnB1c2goImhvc3QiKSxiLnZ0cF9wb3J0JiZjLnB1c2goInBvcnQiKSxiLnZ0cF9wYXRoJiZjLnB1c2goInBhdGgiKSxiLnZ0cF9leHRlbnNpb24mJgpjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiZjLnB1c2goInF1ZXJ5IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMucmVhZF9ldmVudF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2tleTpjfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZXZlbnRfZGF0YT1iO1ouX19yZWFkX2V2ZW50X2RhdGEuTz0icmVhZF9ldmVudF9kYXRhIjtaLl9fcmVhZF9ldmVudF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjUiXT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9ldmVudERhdGFBY2Nlc3MsZD1iLnZ0cF9rZXlQYXR0ZXJuc3x8W10sZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKGchPW51bGwmJiF6YihnKSl0aHJvdyBlKGYse2tleTpnfSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7CmlmKGMhPT0iYW55Iil7dHJ5e2lmKGM9PT0ic3BlY2lmaWMiJiZnIT1udWxsJiZFZyhnLGQpKXJldHVybn1jYXRjaChoKXt0aHJvdyBlKGYse2tleTpnfSwiSW52YWxpZCBrZXkgZmlsdGVyLiIpO310aHJvdyBlKGYse2tleTpnfSwiUHJvaGliaXRlZCByZWFkIGZyb20gZXZlbnQgZGF0YS4iKTt9fSxhYTphfX0pfSgpOwoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2RhdGFfbGF5ZXI9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57a2V5OmN9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9kYXRhX2xheWVyPWI7Wi5fX3JlYWRfZGF0YV9sYXllci5PPSJyZWFkX2RhdGFfbGF5ZXIiO1ouX19yZWFkX2RhdGFfbGF5ZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9kYXRhX2xheWVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kYXRhX2xheWVyLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZGF0YV9sYXllclsiNSJdPSExO1ouX19yZWFkX2RhdGFfbGF5ZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRLZXlzfHwic3BlY2lmaWMiLGQ9Yi52dHBfa2V5UGF0dGVybnN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJLZXlzIG11c3QgYmUgc3RyaW5ncy4iKTsKaWYoYyE9PSJhbnkiKXt0cnl7aWYoRWcoZyxkKSlyZXR1cm59Y2F0Y2goaCl7dGhyb3cgZShmLHt9LCJJbnZhbGlkIGtleSBmaWx0ZXIuIik7fXRocm93IGUoZix7fSwiUHJvaGliaXRlZCByZWFkIGZyb20gZGF0YSBsYXllciB2YXJpYWJsZTogIitnKyIuIik7fX0sYWE6YX19KX0oKTsKCgoKCgoKCgpaLnNlY3VyaXR5R3JvdXBzLmdldF9lbGVtZW50X2F0dHJpYnV0ZXM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybntlbGVtZW50OmMsYXR0cmlidXRlOmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X2VsZW1lbnRfYXR0cmlidXRlcz1iO1ouX19nZXRfZWxlbWVudF9hdHRyaWJ1dGVzLk89ImdldF9lbGVtZW50X2F0dHJpYnV0ZXMiO1ouX19nZXRfZWxlbWVudF9hdHRyaWJ1dGVzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF9lbGVtZW50X2F0dHJpYnV0ZXMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfZWxlbWVudF9hdHRyaWJ1dGVzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF9lbGVtZW50X2F0dHJpYnV0ZXNbIjUiXT0hMTtaLl9fZ2V0X2VsZW1lbnRfYXR0cmlidXRlc1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dlZEF0dHJpYnV0ZXN8fCJzcGVjaWZpYyIsZD1iLnZ0cF9hdHRyaWJ1dGVzfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjsKcmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcsaCl7aWYoIXpiKGgpKXRocm93IGUoZix7fSwiQXR0cmlidXRlIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoIShnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXRocm93IGUoZix7fSwiV3JvbmcgZWxlbWVudCB0eXBlLiBNdXN0IGJlIEhUTUxFbGVtZW50LiIpO2lmKGg9PT0idmFsdWUifHxjIT09ImFueSImJihjIT09InNwZWNpZmljInx8ZC5pbmRleE9mKGgpPT09LTEpKXRocm93IGUoZix7fSwnUmVhZGluZyBhdHRyaWJ1dGUgIicraCsnIiBpcyBub3QgYWxsb3dlZC4nKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMubG9hZF9nb29nbGVfdGFncz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue3RhZ0lkOmMsZmlyc3RQYXJ0eVVybDpkfX0oZnVuY3Rpb24oYil7Wi5fX2xvYWRfZ29vZ2xlX3RhZ3M9YjtaLl9fbG9hZF9nb29nbGVfdGFncy5PPSJsb2FkX2dvb2dsZV90YWdzIjtaLl9fbG9hZF9nb29nbGVfdGFncy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19sb2FkX2dvb2dsZV90YWdzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fbG9hZF9nb29nbGVfdGFncy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19sb2FkX2dvb2dsZV90YWdzWyI1Il09ITE7Wi5fX2xvYWRfZ29vZ2xlX3RhZ3NbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRUYWdJZHN8fCJzcGVjaWZpYyIsZD1iLnZ0cF9hbGxvd0ZpcnN0UGFydHlVcmxzfHwhMSxlPWIudnRwX2FsbG93ZWRGaXJzdFBhcnR5VXJsc3x8InNwZWNpZmljIixmPWIudnRwX3VybHN8fApbXSxnPWIudnRwX3RhZ0lkc3x8W10saD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihsLG4scCl7KGZ1bmN0aW9uKHEpe2lmKCF6YihxKSl0aHJvdyBoKGwse30sIlRhZyBJRCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGMhPT0iYW55IiYmKGMhPT0ic3BlY2lmaWMifHxnLmluZGV4T2YocSk9PT0tMSkpdGhyb3cgaChsLHt9LCJQcm9oaWJpdGVkIFRhZyBJRDogIitxKyIuIik7fSkobik7KGZ1bmN0aW9uKHEpe2lmKHEhPT12b2lkIDApe2lmKCF6YihxKSl0aHJvdyBoKGwse30sIkZpcnN0IHBhcnR5IFVSTCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQpe2lmKGU9PT0iYW55IilyZXR1cm47aWYoZT09PSJzcGVjaWZpYyIpdHJ5e2lmKFdnKFJqKHEpLGYpKXJldHVybn1jYXRjaChyKXt0aHJvdyBoKGwse30sIkludmFsaWQgZmlyc3QgcGFydHkgVVJMIGZpbHRlci4iKTt9fXRocm93IGgobCx7fSwiUHJvaGliaXRlZCBmaXJzdCBwYXJ0eSBVUkw6ICIrCnEpO319KShwKX0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2RhdGFTb3VyY2U6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPWI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuTz0iZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNSJdPSExO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLAplKXtpZihlIT09ImF1dG8iJiZlIT09Im1hbnVhbCImJmUhPT0iY29kZSIpdGhyb3cgYyhkLHt9LCJVbmtub3duIHVzZXIgcHJvdmlkZWQgZGF0YSBzb3VyY2UuIik7aWYoYi52dHBfbGltaXREYXRhU291cmNlcylpZihlIT09ImF1dG8ifHxiLnZ0cF9hbGxvd0F1dG9EYXRhU291cmNlcyl7aWYoZT09PSJtYW51YWwiJiYhYi52dHBfYWxsb3dNYW51YWxEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgdmlhIG1hbnVhbGx5IHNwZWNpZmllZCBDU1Mgc2VsZWN0b3JzIGlzIG5vdCBhbGxvd2VkLiIpO2lmKGU9PT0iY29kZSImJiFiLnZ0cF9hbGxvd0NvZGVEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgZnJvbSBhbiBpbi1wYWdlIHZhcmlhYmxlIGlzIG5vdCBhbGxvd2VkLiIpO31lbHNlIHRocm93IGMoZCx7fSwiQXV0b21hdGljIGRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgaXMgbm90IGFsbG93ZWQuIik7Cn0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5nZXRfdXJsPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfdXJsPWI7Wi5fX2dldF91cmwuTz0iZ2V0X3VybCI7Wi5fX2dldF91cmwuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3VybC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF91cmwuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3VybFsiNSJdPSExO1ouX19nZXRfdXJsWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiZjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiYKYy5wdXNoKCJxdWVyeSIpLGIudnRwX2ZyYWdtZW50JiZjLnB1c2goImZyYWdtZW50IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7CgoKClouc2VjdXJpdHlHcm91cHMudW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue3VzZUlmcmFtZTpjLHN1cHBvcnREb2N1bWVudFdyaXRlOmR9fShmdW5jdGlvbihiKXtaLl9fdW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbD1iO1ouX191bnNhZmVfaW5qZWN0X2FyYml0cmFyeV9odG1sLk89InVuc2FmZV9pbmplY3RfYXJiaXRyYXJ5X2h0bWwiO1ouX191bnNhZmVfaW5qZWN0X2FyYml0cmFyeV9odG1sLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3Vuc2FmZV9pbmplY3RfYXJiaXRyYXJ5X2h0bWwucHJpb3JpdHlPdmVycmlkZT0wO1ouX191bnNhZmVfaW5qZWN0X2FyYml0cmFyeV9odG1sLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3Vuc2FmZV9pbmplY3RfYXJiaXRyYXJ5X2h0bWxbIjUiXT0hMTtaLl9fdW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbFsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9CmIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGQsZSxmKXtpZihlJiZmKXRocm93IGMoZCx7fSwiT25seSBvbmUgb2YgdXNlSWZyYW1lIGFuZCBzdXBwb3J0RG9jdW1lbnRXcml0ZSBjYW4gYmUgdHJ1ZS4iKTtpZihlIT09dm9pZCAwJiZ0eXBlb2YgZSE9PSJib29sZWFuIil0aHJvdyBjKGQse30sInVzZUlmcmFtZSBtdXN0IGJlIGEgYm9vbGVhbi4iKTtpZihmIT09dm9pZCAwJiZ0eXBlb2YgZiE9PSJib29sZWFuIil0aHJvdyBjKGQse30sInN1cHBvcnREb2N1bWVudFdyaXRlIG11c3QgYmUgYSBib29sZWFuLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfY2xpY2tfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57bWF0Y2hDb21tb25CdXR0b25zOmMsY3NzU2VsZWN0b3I6ZH19KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzPWI7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuTz0iZGV0ZWN0X2NsaWNrX2V2ZW50cyI7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLGUsZil7aWYoZSE9PXZvaWQgMCYmdHlwZW9mIGUhPT0KImJvb2xlYW4iKXRocm93IGMoZCx7fSwibWF0Y2hDb21tb25CdXR0b25zIG11c3QgYmUgYSBib29sZWFuLiIpO2lmKGYhPT12b2lkIDAmJnR5cGVvZiBmIT09InN0cmluZyIpdGhyb3cgYyhkLHt9LCJjc3NTZWxlY3RvciBtdXN0IGJlIGEgc3RyaW5nLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5sb2dnaW5nPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19sb2dnaW5nPWI7Wi5fX2xvZ2dpbmcuTz0ibG9nZ2luZyI7Wi5fX2xvZ2dpbmcuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fbG9nZ2luZy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2xvZ2dpbmcuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fbG9nZ2luZ1siNSJdPSExO1ouX19sb2dnaW5nWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9lbnZpcm9ubWVudHN8fCJkZWJ1ZyIsZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihlKXt2YXIgZjtpZihmPWMhPT0iYWxsIiYmITApe3ZhciBnPSExO2Y9IWd9aWYoZil0aHJvdyBkKGUse30sIkxvZ2dpbmcgaXMgbm90IGVuYWJsZWQgaW4gYWxsIGVudmlyb25tZW50cyIpOwp9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuY29uZmlndXJlX2dvb2dsZV90YWdzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57dGFnSWQ6Yyxjb25maWd1cmF0aW9uOmR9fShmdW5jdGlvbihiKXtaLl9fY29uZmlndXJlX2dvb2dsZV90YWdzPWI7Wi5fX2NvbmZpZ3VyZV9nb29nbGVfdGFncy5PPSJjb25maWd1cmVfZ29vZ2xlX3RhZ3MiO1ouX19jb25maWd1cmVfZ29vZ2xlX3RhZ3MuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fY29uZmlndXJlX2dvb2dsZV90YWdzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fY29uZmlndXJlX2dvb2dsZV90YWdzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2NvbmZpZ3VyZV9nb29nbGVfdGFnc1siNSJdPSExO1ouX19jb25maWd1cmVfZ29vZ2xlX3RhZ3NbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRUYWdJZHN8fCJzcGVjaWZpYyIsZD1iLnZ0cF90YWdJZHN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yOwpyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoIXpiKGcpKXRocm93IGUoZix7fSwiVGFnIElEIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoYyE9PSJhbnkiJiYoYyE9PSJzcGVjaWZpYyJ8fGQuaW5kZXhPZihnKT09PS0xKSl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgY29uZmlndXJhdGlvbiBmb3IgVGFnIElEOiAiK2crIi4iKTt9LGFhOmF9fSl9KCk7CgoKCmZ1bmN0aW9uIGtVKCl7dmFyIGE9e30sYj17ZGF0YUxheWVyOnRBLGNhbGxiYWNrOmZ1bmN0aW9uKGMpe2EuaGFzT3duUHJvcGVydHkoYykmJnliKGFbY10pJiZhW2NdKCk7ZGVsZXRlIGFbY119LGJvb3RzdHJhcDowfTtiLm9uSHRtbFN1Y2Nlc3M9VWsoITApLGIub25IdG1sRmFpbHVyZT1VayghMSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGxVKCl7dmFyIGE9a1UoKTtvaihhKTtDaygpO2pBKCk7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO1FiKGIsWi5zZWN1cml0eUdyb3Vwcyk7dmFyIGM9eWsoemsoKSksZCxlPWM9PW51bGw/dm9pZCAwOihkPWMuY29udGV4dCk9PW51bGw/dm9pZCAwOmQuc291cmNlO0tsKGUsYz09bnVsbD92b2lkIDA6Yy5wYXJlbnQpO2UhPT0yJiZlIT09NCYmZSE9PTN8fFAoMTQyKTtXa3x8KFdrPW5ldyBWayksUmt8fChSaz1uZXcgVGspO3JldHVybiBhfWZ1bmN0aW9uIG1VKCl7dmFyIGE9RSg2MCk7aWYoYSlmb3IodmFyIGI9YS5zcGxpdCgiLiIpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPVRMO2QmJihlLkhbZF09ITApfX0KZnVuY3Rpb24gblUoKXt6cCgpO2xqKCk7Zm9yKHZhciBhPWRhdGEucmVzb3VyY2V8fHt9LGI9Y0EsYz1hLm1hY3Jvc3x8W10sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWIubWFjcm9zLnB1c2gobmV3IFV6KGNbZF0sZCxiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGU9YS50YWdzfHxbXSxmPTA7ZjxlLmxlbmd0aDtmKyspYi50YWdzLnB1c2gobmV3IFl6KGVbZl0sZixiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGc9YS5wcmVkaWNhdGVzfHxbXSxoPTA7aDxnLmxlbmd0aDtoKyspYi5wcmVkaWNhdGVzLnB1c2gobmV3IFZ6KGdbaF0sYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBsPWEucnVsZXN8fFtdLG49MDtuPGwubGVuZ3RoO24rKyliLnJ1bGVzLnB1c2gobmV3IFd6KGxbbl0sbikpO1F6PVo7dmFyIHA9ZGF0YS5wZXJtaXNzaW9uc3x8e30scT1aO2RnPW5ldyBnZyhFKDUpLHAscSk7dmFyIHI9ZGF0YS5zYW5kYm94ZWRfc2NyaXB0cyx0PWRhdGEuc2VjdXJpdHlfZ3JvdXBzLHU9ZGF0YS5ydW50aW1lfHwKW10sdj1kYXRhLnJ1bnRpbWVfbGluZXM7SkY9bmV3IHBmO1ZUKCk7UHo9SUYoKTt2YXIgeD1KRix5PVVUKCksej1uZXcgTGQoInJlcXVpcmUiLHkpO3ouWmEoKTt4LkguSC5zZXQoInJlcXVpcmUiLHopO2RiLnNldCgicmVxdWlyZSIseik7Zm9yKHZhciBDPTA7Qzx1Lmxlbmd0aDtDKyspe3ZhciBEPXVbQ107aWYoIUFycmF5LmlzQXJyYXkoRCl8fEQubGVuZ3RoPDMpe2lmKEQubGVuZ3RoPT09MCljb250aW51ZTticmVha312JiZ2W0NdJiZ2W0NdLmxlbmd0aCYmUGYoRCx2W0NdKTt0cnl7SkYuZXhlY3V0ZShEKX1jYXRjaChvVSl7fX1XVChyKTtYVCh0KTt2YXIgST1sVSgpO2lGKCk7dm0uYmluZCgpO2lmKCFEailmb3IodmFyIEc9Qm0oKT9lcChMZig1KSk6ZXAoTGYoNCkpLE49bShSbyksUz1OLm5leHQoKTshUy5kb25lO1M9Ti5uZXh0KCkpe3ZhciBXPVMudmFsdWUsZWE9VyxqYT1HW1ddPyJncmFudGVkIjoiZGVuaWVkIjt0bCgpLmltcGxpY2l0KGVhLGphKX1oRS5iaW5kKCk7VEIoKTsKT0IoKTtmbi5OJiYoZ3ooKSxmeihBRiksZ0EoKSxjQj1uZXcgYkIsZnooaXopLE9DKCksREZ8fChERj1uZXcgQkYpLGZCfHwoZkI9bmV3IGVCKSxGRj1uZXcgRUYpO2lmKGZuLkspe0RFLmJpbmQoKTttQy5iaW5kKCk7d0UuYmluZCgpO3ZhciBmYT1BaygpO2lmKGZhKXt2YXIgc2E7YTp7dmFyIGRhLG1hPShkYT1mYS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZGEuc3JjO2lmKG1hKXt2YXIgUGE7dHJ5e3ZhciBGYTtQYT0oRmE9cmQoKSk9PW51bGw/dm9pZCAwOkZhLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIil9Y2F0Y2gob1Upe31pZihQYSl7Zm9yKHZhciBxYT0tMSxpYj1tKFBhKSxYYj1pYi5uZXh0KCk7IVhiLmRvbmU7WGI9aWIubmV4dCgpKXt2YXIgTGM9WGIudmFsdWU7aWYoTGMuaW5pdGlhdG9yVHlwZT09PQoic2NyaXB0IiYmKHFhKz0xLExjLm5hbWUucmVwbGFjZShORSwiIik9PT1tYS5yZXBsYWNlKE5FLCIiKSkpe3NhPXFhO2JyZWFrIGF9fVAoMTQ2KX1lbHNlIFAoMTQ1KX1zYT12b2lkIDB9dmFyIFFkPXNhO1FkIT09dm9pZCAwJiYoZmEuY2Fub25pY2FsQ29udGFpbmVySWQmJlVtKCJydGciLFN0cmluZyhmYS5jYW5vbmljYWxDb250YWluZXJJZCkpLFVtKCJzbG8iLFN0cmluZyhRZCkpLFVtKCJobG8iLGZhLmh0bWxMb2FkT3JkZXJ8fCItMSIpLFVtKCJsc3QiLFN0cmluZyhmYS5sb2FkU2NyaXB0VHlwZXx8IjAiKSkpfWVsc2UgUCgxNDQpO3ZhciBZYzt2YXIgRGQ9eGsoKTtpZihEZClpZihEZC5jYW5vbmljYWxDb250YWluZXJJZClZYz1EZC5jYW5vbmljYWxDb250YWluZXJJZDtlbHNle3ZhciBqZix2aD1EZC5zY3JpcHRDb250YWluZXJJZHx8KChqZj1EZC5kZXN0aW5hdGlvbnMpPT1udWxsP3ZvaWQgMDpqZlswXSk7WWM9dmg/Il8iK3ZoOnZvaWQgMH1lbHNlIFljPXZvaWQgMDt2YXIgSkU9ClljO0pFJiZVbSgicGNpZCIsSkUpO1VtKCJidCIsU3RyaW5nKElmKDQ3KT8yOklmKDUwKT8xOjApKTtVbSgiY3QiLFN0cmluZyhJZig0Nyk/MDpJZig1MCk/MTozKSk7QUUuYmluZCgpO2Zvcih2YXIgV3I9W10sWHI9W10sS0U9bShPYmplY3Qua2V5cyhHRSkpLFlyPUtFLm5leHQoKTshWXIuZG9uZTtZcj1LRS5uZXh0KCkpe3ZhciBybT1Zci52YWx1ZTtpZih3aW5kb3cuaXNTZWN1cmVDb250ZXh0fHwhSUVbcm1dKXt2YXIgTEU9R0Vbcm1dKCk7aWYoeWIoTEUpKXt2YXIgTUU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoTEUpO1RiKE1FLCJ7IFtuYXRpdmUgY29kZV0gfSIpfHxUYihNRSwie1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKXx8WHIucHVzaChybSl9ZWxzZSBXci5wdXNoKHJtKX19V3IubGVuZ3RoPjAmJlVtKCJqc20iLFdyLmpvaW4oIn4iKSk7WHIubGVuZ3RoPjAmJlVtKCJqc3AiLFhyLmpvaW4oIn4iKSk7RXl8fChFeT1uZXcgRHkpfWhGKCk7aW0oMSk7RUcoKTtyZXR1cm4gSX0KZnVuY3Rpb24gdW0oKXt0cnl7aWYoIWhrKCkmJihJZig0Nyl8fCFOaygpKSl7SWYoNjQpJiZ3ai5ILksuYWRkKDExODUxNzkxNyk7emooKTtmbi5IJiZzeigpO1dmWzVdPSEwO3ZhciBhPWtqKCJkZWJ1Z0dyb3VwSWQiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKX0pO1NsKGEpO2t0KCk7ekYoKTtGdCgpO1BCKCk7aWYoRGsoKSl7RSg1KTtERygpO2lCKCkucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnModmsoKSk7fWVsc2V7Rk0uUigpO25VKCkuYm9vdHN0cmFwPU5iKCk7SWYoNTEpJiZwRSgpOwpmbi5IJiZ0eigpO3R5cGVvZiBBLm5hbWU9PT0ic3RyaW5nIiYmU2IoQS5uYW1lLCJ3ZWItcGl4ZWwtc2FuZGJveC1DVVNUT00iKSYmc2QoKT9aVCgiZE1EZzBZeiIpOkEuU2hvcGlmeSYmKFpUKCJkTjJaa01qIiksc2QoKSYmWlQoImROVFUwWXoiKSk7bVUoKX19fWNhdGNoKGIpe2ltKDUpLGh6KCl9fQooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe249Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJlc2VudCIpO2dsKG4pJiYobD1oLnhtKX1mdW5jdGlvbiBjKCl7bCYmS2M/ZyhsKTphKCl9aWYoIUFbRSgzNyldKXt2YXIgZD0hMTtpZihCLnJlZmVycmVyKXt2YXIgZT1SaihCLnJlZmVycmVyKTtkPU5qKGUsImhvc3QiKT09PUUoMzgpfWlmKCFkKXt2YXIgZj1jcShFKDM5KSk7ZD0hKCFmLmxlbmd0aHx8IWZbMF0ubGVuZ3RoKX1kJiYoQVtFKDM3KV09ITAsVWMoRSg0MCkpKX12YXIgZz1mdW5jdGlvbih1KXt2YXIgdj0iR1RNIix4PSJHVE0iO0lmKDQ1KSYmKHY9Ik9HVCIseD0iR1RBRyIpO3ZhciB5PUUoMjMpLHo9QVt5XTt6fHwoej1bXSxBW3ldPXosVWMoImh0dHBzOi8vIitFKDMpKyIvZGVidWcvYm9vdHN0cmFwP2lkPSIrRSg1KSsiJnNyYz0iK3grIiZjb25kPSIrU3RyaW5nKHUpKyImZ3RtPSIrZHUoKSkpO3ZhciBDPXttZXNzYWdlVHlwZToiQ09OVEFJTkVSX1NUQVJUSU5HIiwKZGF0YTp7c2NyaXB0U291cmNlOktjLGNvbnRhaW5lclByb2R1Y3Q6dixkZWJ1ZzohMSxpZDpFKDUpLHRhcmdldFJlZjp7Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246c2soKSxjYW5vbmljYWxJZDpFKDYpfSxhbGlhc2VzOndrKCksZGVzdGluYXRpb25zOnRrKCl9fSxEPUMuZGF0YTtELnJlc3VtZT1mdW5jdGlvbigpe2EoKX07RC5yZXN1bWVXaXRoTWVtb3M9ZnVuY3Rpb24oKXtzbCgxKTthKCl9O0lmKDIpJiYoQy5kYXRhLmluaXRpYWxQdWJsaXNoPSEwKTt6LnB1c2goQyl9LGg9e0dxOjEsUG06MixvbjozLGpsOjQseG06NX07aFtoLkdxXT0iR1RNX0RFQlVHX0xFR0FDWV9QQVJBTSI7aFtoLlBtXT0iR1RNX0RFQlVHX1BBUkFNIjtoW2gub25dPSJSRUZFUlJFUiI7aFtoLmpsXT0iQ09PS0lFIjtoW2gueG1dPSJFWFRFTlNJT05fUEFSQU0iO3ZhciBsPXZvaWQgMCxuPXZvaWQgMCxwPUxqKEEubG9jYXRpb24sInF1ZXJ5IiwhMSx2b2lkIDAsImd0bV9kZWJ1ZyIpO2dsKHApJiYobD1oLlBtKTsKaWYoIWwmJkIucmVmZXJyZXIpe3ZhciBxPVJqKEIucmVmZXJyZXIpO05qKHEsImhvc3QiKT09PUUoMjQpJiYobD1oLm9uKX1pZighbCl7dmFyIHI9Y3EoIl9fVEFHX0FTU0lTVEFOVCIpO3IubGVuZ3RoJiZyWzBdLmxlbmd0aCYmKGw9aC5qbCl9bHx8YigpO2lmKCFsJiZmbChuKSl7dmFyIHQ9ITE7JGMoQiwiVEFEZWJ1Z1NpZ25hbCIsZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sITEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe3R8fCh0PSEwLGIoKSxjKCkpfSwyMDApfWVsc2UgYygpfSkoZnVuY3Rpb24oKXshSWYoNDcpfHx0bSgpWyIwIl0/dW0oKTp4bSgpfSk7Cgp9KSgpCgo="}},"time_used":133,"timings":{"blocked":0,"dns":2,"connect":16,"send":0,"wait":40,"receive":42,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DLI1yz3e.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.979Z","timestamp":1785139670979,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DLI1yz3e.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3ae-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 504\r\nKeep-Alive: timeout=5, max=87\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":942,"size_decoded":853,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (941)","md5":"2c3c858565cf7f189fb51c6422839234","sha1":"9f7ba0a609b6758e8a1e54cf849c8c7b6187cbbd","sha256":"5cdc264f4e284ea69ebc00d0e065464c48430e84a6deb2214ee28bc0241b761f","sha512":"7d47cabc9247df3184ff30c8eaea1f7864538844856b5dd5b8f4b3320de4dbba89ba71fa0511751d89ce33fbb045bb838c728aa781f7916cb67e6da1c5234363","ssdeep":"","tlshash":"45117d0bdc60c3f9b3b385e0f828901660399e4bb285d29d5ac845362fd98f3d5b97d6","first_seen":"2026-07-27T05:24:57.736826Z","last_seen":"2026-07-27T11:49:48.980401Z","times_seen":5,"resource_available":true,"data":"aW1wb3J0e18gYXMgY31mcm9tIi4vQ2hlN0toeDcuanMiO2ltcG9ydHtpLGwgYXMgbixjIGFzIHIsYiBhcyBlLHQgYXMgYSxmIGFzIG0sYSBhcyBffWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0Ii4vQzFEdFpuSXkuanMiO2ltcG9ydCIuL0JfMkZrUDhTLmpzIjtpbXBvcnQiLi9DMlFmYnE5Mi5qcyI7aW1wb3J0Ii4vQjhUeFR5YWsuanMiO2ltcG9ydCIuL0NNdVVUbFMyLmpzIjtjb25zdCBsPXtjbGFzczoiY29udGFpbmVyIHctZnVsbCBtZDp3LVs3MCVdIG14LWF1dG8gcHgtNCBsZzpteS0zMiJ9LHA9e2NsYXNzOiJtdC0xMiB0ZXh0LWNlbnRlciJ9LGQ9e2NsYXNzOiJ0ZXh0LWdyYXktOTAwIGRpc3BsYXktc20tYm9sZCBsZzpkaXNwbGF5LW1kLWJvbGQifSxmPXtjbGFzczoibXQtNCB0ZXh0LW1kLW1lZGl1bSJ9LHU9e2NsYXNzOiJtdC00In0sSD17X19uYW1lOiJmYXEiLHNldHVwKGgpe2NvbnN0e3R9PWkoKTtyZXR1cm4gbih7dGl0bGU6Ik5Db25uZWN0IHwgIit0KCJwZXJmZWN0X2Vfdm91Y2hlci5mYXEubWV0YVRpdGxlIiksbWV0YTpbe25hbWU6InRpdGxlIixjb250ZW50OiJOQ29ubmVjdCB8ICIrdCgicGVyZmVjdF9lX3ZvdWNoZXIuZmFxLm1ldGFUaXRsZSIpfSx7bmFtZToiZGVzY3JpcHRpb24iLGNvbnRlbnQ6dCgicGVyZmVjdF9lX3ZvdWNoZXIuZmFxLm1ldGFEZXNjcmlwdGlvbiIpfV19KSwocyx2KT0+e2NvbnN0IG89YztyZXR1cm4gXygpLHIoImRpdiIsbCxbZSgiZGl2IixwLFtlKCJoMSIsZCxhKHMuJHQoInBlcmZlY3RfZV92b3VjaGVyLmZhcS50aXRsZSIpKSwxKSxlKCJwIixmLGEocy4kdCgicGVyZmVjdF9lX3ZvdWNoZXIuZmFxLmRlc2NyaXB0aW9uIikpLDEpXSksZSgiZGl2IixudWxsLFtlKCJkaXYiLHUsW20obyx7aXRlbXM6cy4kdG0oImZhcSIpfSxudWxsLDgsWyJpdGVtcyJdKV0pXSldKX19fTtleHBvcnR7SCBhcyBkZWZhdWx0fTsK"}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/contact-us.feDXf4Hc.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.976Z","timestamp":1785139670976,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/contact-us.feDXf4Hc.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"53b-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 450\r\nKeep-Alive: timeout=5, max=79\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":1339,"size_decoded":785,"mime_type":"text/css","magic":"ASCII text, with very long lines (1338)","md5":"c51ac52df040486ed4f0f0133bacd903","sha1":"1533178cb757b6cf86926cbd7afe9116f8179f27","sha256":"ad9bb547379b00c7a0ef0a987ff50e4ed2ca7474dc907ccce39d523a4165e56e","sha512":"e1c7d2107a955b517fc1c3778df34ebc1305fa263449752724585a03c3412cdb2348e01a4a778a047d9d1ba651bec45e8bece0f69086a5b62d62adf6d9421c74","ssdeep":"","tlshash":"5121aca2acfb3c54352bc2a5d0e0d755663096c2bb2b0e3d604935e257124d53b51fab","first_seen":"2025-10-23T03:46:52.487201Z","last_seen":"2026-07-27T11:49:48.958834Z","times_seen":8,"resource_available":false,"data":"LmJ1YmJsZSAudG9vbHRpcFtkYXRhLXYtNTZkOWIzMjZde3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXR9LmJ1YmJsZTpob3ZlciAudG9vbHRpcFtkYXRhLXYtNTZkOWIzMjZde29wYWNpdHk6MX0uYnViYmxlIC50b29sdGlwW2RhdGEtdi01NmQ5YjMyNl17b3BhY2l0eTowO3RyYW5zaXRpb246LjJzIGVhc2UtaW4tb3V0fS50b29sdGlwW2RhdGEtdi01NmQ5YjMyNl06YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmY7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIDhweCAxMHB4O2JvdHRvbTotOHB4O2NvbnRlbnQ6IiI7aGVpZ2h0OjA7bGVmdDowO21hcmdpbjphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3dpZHRoOjB9LmJ1YmJsZVtkYXRhLXYtNTZkOWIzMjZdOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6IzJlOTBmYX0uYnViYmxlW2RhdGEtdi01NmQ5YjMyNl06YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojMmU5MGZhO2NvbnRlbnQ6IiI7bGVmdDoxcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjFweH0uYnViYmxlIC5idWJibGUtb3V0ZXItZG90W2RhdGEtdi01NmQ5YjMyNl0sLmJ1YmJsZVtkYXRhLXYtNTZkOWIzMjZdOmFmdGVye2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjhweDt3aWR0aDo4cHh9LmJ1YmJsZSAuYnViYmxlLW91dGVyLWRvdFtkYXRhLXYtNTZkOWIzMjZde2FuaW1hdGlvbjpidWJibGUtcHVsc2UtNTZkOWIzMjYgMS41cyBsaW5lYXIgaW5maW5pdGU7YmFja2dyb3VuZC1jb2xvcjojMmU5MGZhOTk7bWFyZ2luOjFweDtvcGFjaXR5OjE7dGV4dC1hbGlnbjpjZW50ZXJ9LmJ1YmJsZSAuYnViYmxlLWlubmVyLWRvdFtkYXRhLXYtNTZkOWIzMjZdLC5idWJibGUgLmJ1YmJsZS1pbm5lci1kb3RbZGF0YS12LTU2ZDliMzI2XTphZnRlcnthbmltYXRpb246YnViYmxlLXB1bHNlLTU2ZDliMzI2IDEuNXMgbGluZWFyIGluZmluaXRlO2JhY2tncm91bmQtY29sb3I6IzJlOTBmYTk5O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjhweDtvcGFjaXR5OjE7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6OHB4fS5idWJibGUgLmJ1YmJsZS1pbm5lci1kb3RbZGF0YS12LTU2ZDliMzI2XTphZnRlcntjb250ZW50OiIifUBrZXlmcmFtZXMgYnViYmxlLXB1bHNlLTU2ZDliMzI2ezAle29wYWNpdHk6Ljc1O3RyYW5zZm9ybTpzY2FsZSgxKX0yNSV7b3BhY2l0eTouNzU7dHJhbnNmb3JtOnNjYWxlKDEpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoMi41KX19Cg=="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Faq.Dhfr41Un.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.988Z","timestamp":1785139670988,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Faq.Dhfr41Un.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:51 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"320-654aa2b8318b2-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 402\r\nKeep-Alive: timeout=5, max=88\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":800,"size_decoded":737,"mime_type":"text/css","magic":"ASCII text, with very long lines (799)","md5":"ad6a81f2c731464c48f6ce1b3caee85b","sha1":"72595ac1ec3bbade4f0f60953b5824b00f95de94","sha256":"04d9c72d36d404cbfc2c8bc0d5c8c2d9163a706f95d9aeb796c42d3abdeecdc8","sha512":"1d1bff6d27c44ff3daa3e0dc3f444a8238268c81dce260e642bc8f46fbf8e6dd1b9184eb144d4277d5dae591d1166886dd453133b7c8dfbb29144c31c0cbd8bc","ssdeep":"","tlshash":"9001aba7f08170fef01fecd8a768af3e585ab514d987eff9a59521e26e451833831048","first_seen":"2025-10-23T03:46:52.637104Z","last_seen":"2026-07-27T11:49:48.933652Z","times_seen":9,"resource_available":false,"data":"LnYtZXhwYW5zaW9uLXBhbmVsX19zaGFkb3d7Ym94LXNoYWRvdzpub25lIWltcG9ydGFudH0udi1leHBhbnNpb24tcGFuZWwtdGV4dF9fd3JhcHBlcntwYWRkaW5nOjAhaW1wb3J0YW50fS52LWV4cGFuc2lvbi1wYW5lbDpub3QoOmZpcnN0LWNoaWxkKTphZnRlcntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kYXJrLWZhcS1wYW5lbHtiYWNrZ3JvdW5kOnZhcigtLUNhcmQtQkcsbGluZWFyLWdyYWRpZW50KDExNGRlZyxyZ2JhKDU3LDU3LDU3LC4wOCkgMi41NCUscmdiYSg2MCw2MCw2MCwuMTYpIDUyLjg2JSxyZ2JhKDIxLDIxLDI1LC4yNCkgOTkuOTUlKSkhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgdmFyKC0tU3Ryb2tlLCM0MzQzNDMpO2JvcmRlci1yYWRpdXM6MTZweH0uZGFyay1mYXEtcGFuZWwgLnRpdGxle2JhY2tncm91bmQ6dmFyKC0tVGV4dCxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNiM2IzYjMgMzAuNSUsI2Q0ZDRkNCA1Ny41JSwjYjdiN2I3IDgzLjUlKSk7YmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0uZGFyay1mYXEtcGFuZWwgLmFuc3dlcntiYWNrZ3JvdW5kOnZhcigtLUZBUS1BLCMxOTE5MWUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tU3Ryb2tlLCM0MzQzNDMpO2JvcmRlci1yYWRpdXM6MTZweH0uZGFyay1mYXEtcGFuZWxzIC52LWljb24tLXNpemUtZGVmYXVsdHtjb2xvcjojZmZmfS5saWdodC1mYXEtcGFuZWxzIC52LWljb24tLXNpemUtZGVmYXVsdHtjb2xvcjppbml0aWFsfQo="}},"time_used":36,"timings":{"blocked":10,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VBottomSheet.DEKGyUqe.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.994Z","timestamp":1785139670994,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VBottomSheet.DEKGyUqe.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:51 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"331-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 348\r\nKeep-Alive: timeout=5, max=84\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":817,"size_decoded":683,"mime_type":"text/css","magic":"ASCII text, with very long lines (816)","md5":"5e4ea8b59605ced41e17794cf20127b9","sha1":"1023a987095388b4d9c347e1c98dec5aaf31c729","sha256":"cf553cebe1f23d179973ad8678eaba237972405545f67e624218e57a42f6a948","sha512":"0da02b4fd3effe93191cd2519af2549558df47b11787981f458cc9e38faa5ec3c50f1597f4df2a2cccdc58af834953b2030e3e6487e6d121935c57ffb5e6e8f9","ssdeep":"","tlshash":"3901c97b26c8032d4b25e00887c2c098b22759a0cfa130c76784b2170ac6fe666ec209","first_seen":"2025-10-23T03:46:52.770019Z","last_seen":"2026-07-27T11:49:48.947388Z","times_seen":9,"resource_available":false,"data":"LmJvdHRvbS1zaGVldC10cmFuc2l0aW9uLWVudGVyLWZyb20sLmJvdHRvbS1zaGVldC10cmFuc2l0aW9uLWxlYXZlLXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfS52LWJvdHRvbS1zaGVldD4udi1ib3R0b20tc2hlZXRfX2NvbnRlbnQudi1vdmVybGF5X19jb250ZW50e2FsaWduLXNlbGY6ZmxleC1lbmQ7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6MCA3cHggOHB4IC00cHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMikpLDAgMTJweCAxN3B4IDJweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgNXB4IDIycHggNHB4IHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKTtmbGV4OjAgMSBhdXRvO2xlZnQ6MDttYXJnaW4taW5saW5lOjA7bWFyZ2luLWJvdHRvbTowO21heC13aWR0aDoxMDAlO292ZXJmbG93OnZpc2libGU7cmlnaHQ6MDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yczt3aWR0aDoxMDAlfS52LWJvdHRvbS1zaGVldD4udi1ib3R0b20tc2hlZXRfX2NvbnRlbnQudi1vdmVybGF5X19jb250ZW50Pi52LWNhcmQsLnYtYm90dG9tLXNoZWV0Pi52LWJvdHRvbS1zaGVldF9fY29udGVudC52LW92ZXJsYXlfX2NvbnRlbnQ+LnYtc2hlZXR7Ym9yZGVyLXJhZGl1czowfS52LWJvdHRvbS1zaGVldC52LWJvdHRvbS1zaGVldC0taW5zZXR7bWF4LXdpZHRoOm5vbmV9QG1lZGlhIChtaW4td2lkdGg6NjAwcHgpey52LWJvdHRvbS1zaGVldC52LWJvdHRvbS1zaGVldC0taW5zZXR7bWF4LXdpZHRoOjcwJX19Cg=="}},"time_used":51,"timings":{"blocked":25,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"in-automate.brevo.com/p?key=fw2fj490h6um6hv0jod7eh0m\u0026cuid=4c750956-9cde-4069-b82b-827421129e3f\u0026ma_url=https%3A%2F%2Fnconnect.org%2FEn%3Fcur_from%3DBTC%26cur_to%3DETH\u0026sib_type=page\u0026ma_title=NConnect%20%7C%20Your%20CryptoCurrency%20and%20DigitalCurrency%20Exchange\u0026sib_name=NConnect%20%7C%20Your%20CryptoCurrency%20and%20DigitalCurrency%20Exchange\u0026ma_referrer=\u0026ma_path=%2FEn","fqdn":"in-automate.brevo.com","domain":"brevo.com","tld":"com"},"ip":{"addr":"104.18.37.40","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:53.509Z","timestamp":1785139673509,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"brevo.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 31 May 2026 15:29:37 GMT","end":"Sat, 29 Aug 2026 16:29:24 GMT"},"fingerprint":{"sha1":"5E:91:DE:03:A7:1A:B0:3C:FD:34:F9:AF:B2:02:A8:12:84:A8:81:73","sha256":"39:0B:24:95:34:41:DE:77:22:4D:65:05:2B:CA:43:4D:6C:4D:06:4C:CB:8D:D8:D0:99:BF:E4:CF:A5:06:BA:69"}}},"request":{"raw":"GET /p?key=fw2fj490h6um6hv0jod7eh0m\u0026cuid=4c750956-9cde-4069-b82b-827421129e3f\u0026ma_url=https%3A%2F%2Fnconnect.org%2FEn%3Fcur_from%3DBTC%26cur_to%3DETH\u0026sib_type=page\u0026ma_title=NConnect%20%7C%20Your%20CryptoCurrency%20and%20DigitalCurrency%20Exchange\u0026sib_name=NConnect%20%7C%20Your%20CryptoCurrency%20and%20DigitalCurrency%20Exchange\u0026ma_referrer=\u0026ma_path=%2FEn HTTP/1.1\r\nHost: in-automate.brevo.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://nconnect.org\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 204 \r\ndate: Mon, 27 Jul 2026 08:07:53 GMT\r\naccess-control-allow-origin: *\r\ncache-control: no-cache\r\nx-envoy-upstream-service-time: 0\r\nserver: cloudflare\r\ncf-cache-status: DYNAMIC\r\ncf-ray: a21a272f8f0bb4ed-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Envoy","description":"Envoy is an open-source edge and service proxy, designed for cloud-native applications.","website":"https://www.envoyproxy.io/","common_platform_enumeration":"cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*","icon":"Envoy.png","categories":["Reverse proxies"]}],"data":{"size":0,"size_decoded":239,"mime_type":"text/xml","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-04T08:30:18.219238Z","times_seen":17705378,"resource_available":true,"data":""}},"time_used":82,"timings":{"blocked":0,"dns":2,"connect":1,"send":0,"wait":68,"receive":0,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/favicon.png","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.060Z","timestamp":1785139670060,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /favicon.png HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"137d-654aa2b8dc70d\"\r\nAccept-Ranges: bytes\r\nContent-Length: 4989\r\nKeep-Alive: timeout=5, max=86\r\nConnection: Keep-Alive\r\nContent-Type: image/png\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":4989,"size_decoded":5275,"mime_type":"image/png","magic":"PNG image data, 80 x 80, 8-bit/color RGBA, non-interlaced","md5":"fa89658a1918a6d11ae758b91628218f","sha1":"86467ee13c2db413d3e4678ce62e232726950dc5","sha256":"7a8aeff21d49b4ec9668cf599499c2887f151f0206d89886aeb14163a3451537","sha512":"7ca8978d64f44ee23e1a402a2d1a19b4b267e47750965e94eded89d796e4b9f27fe1d1651c65581302ae32885d1fe5b19359e79fd5d3ba25f42f48bcd3f6ee8e","ssdeep":"96:GEk0As1agVKIS8EPma/0miP1l8i6XzPIUKyhMYYIvSVYdWTGLKgkolU:GZfs1aiXFEua8lPAiv/U5vS6d+/oC","tlshash":"c0a18dba7cef49c66f0a085cb29611d1b87394bb9552393d2c86a443dd91c0fc9a2f03","first_seen":"2025-10-23T03:46:52.675564Z","last_seen":"2026-07-27T11:49:48.914096Z","times_seen":8,"resource_available":false,"data":"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"}},"time_used":26,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VCheckboxBtn.R52rMUqv.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.485Z","timestamp":1785139669485,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VCheckboxBtn.R52rMUqv.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3050-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2092\r\nKeep-Alive: timeout=5, max=91\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":12368,"size_decoded":2429,"mime_type":"text/css","magic":"ASCII text, with very long lines (12367)","md5":"e1be1bdbd2e4c20faa8b0432db1fb9ec","sha1":"395b05b962b5845b8d05d1b5db0cdf5b35c22b59","sha256":"1402a5ee7e270eff85272025cce087703063f568f8e0351a77344100c970b0ae","sha512":"a547257036c403f062dbf3f4c847213768295d048845cf3d4d9c4858c1196acbadf5063217b62bac909505e6fa7d9c61fac78d0a438ae0f9533a7d146983a0e9","ssdeep":"192:hGA0tEnFJp7p2dnprfGwYKgE/5vytEZNB3QjwcWJ4MX493+R2EtqRl1QKsQhBDuW:urA1Q8hF9","tlshash":"4a42bf0263d42530b87af975a651f37f913366edad100c568ce2dae18dbfba53a8700d","first_seen":"2025-10-23T03:46:52.726525Z","last_seen":"2026-07-27T11:49:48.926673Z","times_seen":9,"resource_available":false,"data":"LnYtY2hpcHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtmb250LXdlaWdodDo0MDA7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXB9LnYtY2hpcCAudi1pY29uey0tdi1pY29uLXNpemUtbXVsdGlwbGllcjouODU3MTQyODU3MX0udi1jaGlwLnYtY2hpcC0tc2l6ZS14LXNtYWxsey0tdi1jaGlwLXNpemU6LjYyNXJlbTstLXYtY2hpcC1oZWlnaHQ6MjBweDtmb250LXNpemU6LjYyNXJlbTtwYWRkaW5nOjAgOHB4fS52LWNoaXAudi1jaGlwLS1zaXplLXgtc21hbGwgLnYtYXZhdGFyey0tdi1hdmF0YXItaGVpZ2h0OjE0cHh9LnYtY2hpcC0tcGlsbC52LWNoaXAudi1jaGlwLS1zaXplLXgtc21hbGwgLnYtYXZhdGFyey0tdi1hdmF0YXItaGVpZ2h0OjIwcHh9LnYtY2hpcC52LWNoaXAtLXNpemUteC1zbWFsbCAudi1hdmF0YXItLXN0YXJ0e21hcmdpbi1pbmxpbmUtZW5kOjRweDttYXJnaW4taW5saW5lLXN0YXJ0Oi01LjZweH0udi1jaGlwLS1waWxsLnYtY2hpcC52LWNoaXAtLXNpemUteC1zbWFsbCAudi1hdmF0YXItLXN0YXJ0e21hcmdpbi1pbmxpbmUtc3RhcnQ6LThweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS14LXNtYWxsIC52LWF2YXRhci0tZW5ke21hcmdpbi1pbmxpbmUtZW5kOi01LjZweDttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0udi1jaGlwLS1waWxsLnYtY2hpcC52LWNoaXAtLXNpemUteC1zbWFsbCAudi1hdmF0YXItLWVuZHttYXJnaW4taW5saW5lLWVuZDotOHB4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS14LXNtYWxsIC52LWF2YXRhci0tZW5kKy52LWNoaXBfX2Nsb3Nle21hcmdpbi1pbmxpbmUtc3RhcnQ6MTJweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS14LXNtYWxsIC52LWNoaXBfX2ZpbHRlciwudi1jaGlwLnYtY2hpcC0tc2l6ZS14LXNtYWxsIC52LWljb24tLXN0YXJ0e21hcmdpbi1pbmxpbmUtZW5kOjRweDttYXJnaW4taW5saW5lLXN0YXJ0Oi00cHh9LnYtY2hpcC52LWNoaXAtLXNpemUteC1zbWFsbCAudi1jaGlwX19jbG9zZSwudi1jaGlwLnYtY2hpcC0tc2l6ZS14LXNtYWxsIC52LWljb24tLWVuZHttYXJnaW4taW5saW5lLWVuZDotNHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS52LWNoaXAudi1jaGlwLS1zaXplLXgtc21hbGwgLnYtYXZhdGFyLS1lbmQrLnYtY2hpcF9fY2xvc2UsLnYtY2hpcC52LWNoaXAtLXNpemUteC1zbWFsbCAudi1jaGlwX19hcHBlbmQrLnYtY2hpcF9fY2xvc2UsLnYtY2hpcC52LWNoaXAtLXNpemUteC1zbWFsbCAudi1pY29uLS1lbmQrLnYtY2hpcF9fY2xvc2V7bWFyZ2luLWlubGluZS1zdGFydDo4cHh9LnYtY2hpcC52LWNoaXAtLXNpemUtc21hbGx7LS12LWNoaXAtc2l6ZTouNzVyZW07LS12LWNoaXAtaGVpZ2h0OjI2cHg7Zm9udC1zaXplOi43NXJlbTtwYWRkaW5nOjAgMTBweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1zbWFsbCAudi1hdmF0YXJ7LS12LWF2YXRhci1oZWlnaHQ6MjBweH0udi1jaGlwLS1waWxsLnYtY2hpcC52LWNoaXAtLXNpemUtc21hbGwgLnYtYXZhdGFyey0tdi1hdmF0YXItaGVpZ2h0OjI2cHh9LnYtY2hpcC52LWNoaXAtLXNpemUtc21hbGwgLnYtYXZhdGFyLS1zdGFydHttYXJnaW4taW5saW5lLWVuZDo1cHg7bWFyZ2luLWlubGluZS1zdGFydDotN3B4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS1zbWFsbCAudi1hdmF0YXItLXN0YXJ0e21hcmdpbi1pbmxpbmUtc3RhcnQ6LTEwcHh9LnYtY2hpcC52LWNoaXAtLXNpemUtc21hbGwgLnYtYXZhdGFyLS1lbmR7bWFyZ2luLWlubGluZS1lbmQ6LTdweDttYXJnaW4taW5saW5lLXN0YXJ0OjVweH0udi1jaGlwLS1waWxsLnYtY2hpcC52LWNoaXAtLXNpemUtc21hbGwgLnYtYXZhdGFyLS1lbmR7bWFyZ2luLWlubGluZS1lbmQ6LTEwcHh9LnYtY2hpcC0tcGlsbC52LWNoaXAudi1jaGlwLS1zaXplLXNtYWxsIC52LWF2YXRhci0tZW5kKy52LWNoaXBfX2Nsb3Nle21hcmdpbi1pbmxpbmUtc3RhcnQ6MTVweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1zbWFsbCAudi1jaGlwX19maWx0ZXIsLnYtY2hpcC52LWNoaXAtLXNpemUtc21hbGwgLnYtaWNvbi0tc3RhcnR7bWFyZ2luLWlubGluZS1lbmQ6NXB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6LTVweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1zbWFsbCAudi1jaGlwX19jbG9zZSwudi1jaGlwLnYtY2hpcC0tc2l6ZS1zbWFsbCAudi1pY29uLS1lbmR7bWFyZ2luLWlubGluZS1lbmQ6LTVweDttYXJnaW4taW5saW5lLXN0YXJ0OjVweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1zbWFsbCAudi1hdmF0YXItLWVuZCsudi1jaGlwX19jbG9zZSwudi1jaGlwLnYtY2hpcC0tc2l6ZS1zbWFsbCAudi1jaGlwX19hcHBlbmQrLnYtY2hpcF9fY2xvc2UsLnYtY2hpcC52LWNoaXAtLXNpemUtc21hbGwgLnYtaWNvbi0tZW5kKy52LWNoaXBfX2Nsb3Nle21hcmdpbi1pbmxpbmUtc3RhcnQ6MTBweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0ey0tdi1jaGlwLXNpemU6Ljg3NXJlbTstLXYtY2hpcC1oZWlnaHQ6MzJweDtmb250LXNpemU6Ljg3NXJlbTtwYWRkaW5nOjAgMTJweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0IC52LWF2YXRhcnstLXYtYXZhdGFyLWhlaWdodDoyNnB4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0IC52LWF2YXRhcnstLXYtYXZhdGFyLWhlaWdodDozMnB4fS52LWNoaXAudi1jaGlwLS1zaXplLWRlZmF1bHQgLnYtYXZhdGFyLS1zdGFydHttYXJnaW4taW5saW5lLWVuZDo2cHg7bWFyZ2luLWlubGluZS1zdGFydDotOC40cHh9LnYtY2hpcC0tcGlsbC52LWNoaXAudi1jaGlwLS1zaXplLWRlZmF1bHQgLnYtYXZhdGFyLS1zdGFydHttYXJnaW4taW5saW5lLXN0YXJ0Oi0xMnB4fS52LWNoaXAudi1jaGlwLS1zaXplLWRlZmF1bHQgLnYtYXZhdGFyLS1lbmR7bWFyZ2luLWlubGluZS1lbmQ6LTguNHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NnB4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0IC52LWF2YXRhci0tZW5ke21hcmdpbi1pbmxpbmUtZW5kOi0xMnB4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0IC52LWF2YXRhci0tZW5kKy52LWNoaXBfX2Nsb3Nle21hcmdpbi1pbmxpbmUtc3RhcnQ6MThweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0IC52LWNoaXBfX2ZpbHRlciwudi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0IC52LWljb24tLXN0YXJ0e21hcmdpbi1pbmxpbmUtZW5kOjZweDttYXJnaW4taW5saW5lLXN0YXJ0Oi02cHh9LnYtY2hpcC52LWNoaXAtLXNpemUtZGVmYXVsdCAudi1jaGlwX19jbG9zZSwudi1jaGlwLnYtY2hpcC0tc2l6ZS1kZWZhdWx0IC52LWljb24tLWVuZHttYXJnaW4taW5saW5lLWVuZDotNnB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NnB4fS52LWNoaXAudi1jaGlwLS1zaXplLWRlZmF1bHQgLnYtYXZhdGFyLS1lbmQrLnYtY2hpcF9fY2xvc2UsLnYtY2hpcC52LWNoaXAtLXNpemUtZGVmYXVsdCAudi1jaGlwX19hcHBlbmQrLnYtY2hpcF9fY2xvc2UsLnYtY2hpcC52LWNoaXAtLXNpemUtZGVmYXVsdCAudi1pY29uLS1lbmQrLnYtY2hpcF9fY2xvc2V7bWFyZ2luLWlubGluZS1zdGFydDoxMnB4fS52LWNoaXAudi1jaGlwLS1zaXplLWxhcmdley0tdi1jaGlwLXNpemU6MXJlbTstLXYtY2hpcC1oZWlnaHQ6MzhweDtmb250LXNpemU6MXJlbTtwYWRkaW5nOjAgMTRweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1sYXJnZSAudi1hdmF0YXJ7LS12LWF2YXRhci1oZWlnaHQ6MzJweH0udi1jaGlwLS1waWxsLnYtY2hpcC52LWNoaXAtLXNpemUtbGFyZ2UgLnYtYXZhdGFyey0tdi1hdmF0YXItaGVpZ2h0OjM4cHh9LnYtY2hpcC52LWNoaXAtLXNpemUtbGFyZ2UgLnYtYXZhdGFyLS1zdGFydHttYXJnaW4taW5saW5lLWVuZDo3cHg7bWFyZ2luLWlubGluZS1zdGFydDotOS44cHh9LnYtY2hpcC0tcGlsbC52LWNoaXAudi1jaGlwLS1zaXplLWxhcmdlIC52LWF2YXRhci0tc3RhcnR7bWFyZ2luLWlubGluZS1zdGFydDotMTRweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS1sYXJnZSAudi1hdmF0YXItLWVuZHttYXJnaW4taW5saW5lLWVuZDotOS44cHg7bWFyZ2luLWlubGluZS1zdGFydDo3cHh9LnYtY2hpcC0tcGlsbC52LWNoaXAudi1jaGlwLS1zaXplLWxhcmdlIC52LWF2YXRhci0tZW5ke21hcmdpbi1pbmxpbmUtZW5kOi0xNHB4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS1sYXJnZSAudi1hdmF0YXItLWVuZCsudi1jaGlwX19jbG9zZXttYXJnaW4taW5saW5lLXN0YXJ0OjIxcHh9LnYtY2hpcC52LWNoaXAtLXNpemUtbGFyZ2UgLnYtY2hpcF9fZmlsdGVyLC52LWNoaXAudi1jaGlwLS1zaXplLWxhcmdlIC52LWljb24tLXN0YXJ0e21hcmdpbi1pbmxpbmUtZW5kOjdweDttYXJnaW4taW5saW5lLXN0YXJ0Oi03cHh9LnYtY2hpcC52LWNoaXAtLXNpemUtbGFyZ2UgLnYtY2hpcF9fY2xvc2UsLnYtY2hpcC52LWNoaXAtLXNpemUtbGFyZ2UgLnYtaWNvbi0tZW5ke21hcmdpbi1pbmxpbmUtZW5kOi03cHg7bWFyZ2luLWlubGluZS1zdGFydDo3cHh9LnYtY2hpcC52LWNoaXAtLXNpemUtbGFyZ2UgLnYtYXZhdGFyLS1lbmQrLnYtY2hpcF9fY2xvc2UsLnYtY2hpcC52LWNoaXAtLXNpemUtbGFyZ2UgLnYtY2hpcF9fYXBwZW5kKy52LWNoaXBfX2Nsb3NlLC52LWNoaXAudi1jaGlwLS1zaXplLWxhcmdlIC52LWljb24tLWVuZCsudi1jaGlwX19jbG9zZXttYXJnaW4taW5saW5lLXN0YXJ0OjE0cHh9LnYtY2hpcC52LWNoaXAtLXNpemUteC1sYXJnZXstLXYtY2hpcC1zaXplOjEuMTI1cmVtOy0tdi1jaGlwLWhlaWdodDo0NHB4O2ZvbnQtc2l6ZToxLjEyNXJlbTtwYWRkaW5nOjAgMTdweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS14LWxhcmdlIC52LWF2YXRhcnstLXYtYXZhdGFyLWhlaWdodDozOHB4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS14LWxhcmdlIC52LWF2YXRhcnstLXYtYXZhdGFyLWhlaWdodDo0NHB4fS52LWNoaXAudi1jaGlwLS1zaXplLXgtbGFyZ2UgLnYtYXZhdGFyLS1zdGFydHttYXJnaW4taW5saW5lLWVuZDo4LjVweDttYXJnaW4taW5saW5lLXN0YXJ0Oi0xMS45cHh9LnYtY2hpcC0tcGlsbC52LWNoaXAudi1jaGlwLS1zaXplLXgtbGFyZ2UgLnYtYXZhdGFyLS1zdGFydHttYXJnaW4taW5saW5lLXN0YXJ0Oi0xN3B4fS52LWNoaXAudi1jaGlwLS1zaXplLXgtbGFyZ2UgLnYtYXZhdGFyLS1lbmR7bWFyZ2luLWlubGluZS1lbmQ6LTExLjlweDttYXJnaW4taW5saW5lLXN0YXJ0OjguNXB4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS14LWxhcmdlIC52LWF2YXRhci0tZW5ke21hcmdpbi1pbmxpbmUtZW5kOi0xN3B4fS52LWNoaXAtLXBpbGwudi1jaGlwLnYtY2hpcC0tc2l6ZS14LWxhcmdlIC52LWF2YXRhci0tZW5kKy52LWNoaXBfX2Nsb3Nle21hcmdpbi1pbmxpbmUtc3RhcnQ6MjUuNXB4fS52LWNoaXAudi1jaGlwLS1zaXplLXgtbGFyZ2UgLnYtY2hpcF9fZmlsdGVyLC52LWNoaXAudi1jaGlwLS1zaXplLXgtbGFyZ2UgLnYtaWNvbi0tc3RhcnR7bWFyZ2luLWlubGluZS1lbmQ6OC41cHg7bWFyZ2luLWlubGluZS1zdGFydDotOC41cHh9LnYtY2hpcC52LWNoaXAtLXNpemUteC1sYXJnZSAudi1jaGlwX19jbG9zZSwudi1jaGlwLnYtY2hpcC0tc2l6ZS14LWxhcmdlIC52LWljb24tLWVuZHttYXJnaW4taW5saW5lLWVuZDotOC41cHg7bWFyZ2luLWlubGluZS1zdGFydDo4LjVweH0udi1jaGlwLnYtY2hpcC0tc2l6ZS14LWxhcmdlIC52LWF2YXRhci0tZW5kKy52LWNoaXBfX2Nsb3NlLC52LWNoaXAudi1jaGlwLS1zaXplLXgtbGFyZ2UgLnYtY2hpcF9fYXBwZW5kKy52LWNoaXBfX2Nsb3NlLC52LWNoaXAudi1jaGlwLS1zaXplLXgtbGFyZ2UgLnYtaWNvbi0tZW5kKy52LWNoaXBfX2Nsb3Nle21hcmdpbi1pbmxpbmUtc3RhcnQ6MTdweH0udi1jaGlwLnYtY2hpcC0tZGVuc2l0eS1kZWZhdWx0e2hlaWdodDpjYWxjKHZhcigtLXYtY2hpcC1oZWlnaHQpKX0udi1jaGlwLnYtY2hpcC0tZGVuc2l0eS1jb21mb3J0YWJsZXtoZWlnaHQ6Y2FsYyh2YXIoLS12LWNoaXAtaGVpZ2h0KSAtIDRweCl9LnYtY2hpcC52LWNoaXAtLWRlbnNpdHktY29tcGFjdHtoZWlnaHQ6Y2FsYyh2YXIoLS12LWNoaXAtaGVpZ2h0KSAtIDhweCl9LnYtY2hpcHtib3JkZXItY29sb3I6cmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MH0udi1jaGlwOmhvdmVyPi52LWNoaXBfX292ZXJsYXl7b3BhY2l0eTpjYWxjKHZhcigtLXYtaG92ZXItb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1jaGlwOmZvY3VzLXZpc2libGU+LnYtY2hpcF9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1mb2N1cy1vcGFjaXR5KSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfUBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmZvY3VzLXZpc2libGUpey52LWNoaXA6Zm9jdXM+LnYtY2hpcF9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1mb2N1cy1vcGFjaXR5KSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfX0udi1jaGlwLS1hY3RpdmU+LnYtY2hpcF9fb3ZlcmxheSwudi1jaGlwW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXT4udi1jaGlwX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfS52LWNoaXAtLWFjdGl2ZTpob3Zlcj4udi1jaGlwX19vdmVybGF5LC52LWNoaXBbYXJpYS1oYXNwb3B1cD1tZW51XVthcmlhLWV4cGFuZGVkPXRydWVdOmhvdmVyPi52LWNoaXBfX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtaG92ZXItb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9LnYtY2hpcC0tYWN0aXZlOmZvY3VzLXZpc2libGU+LnYtY2hpcF9fb3ZlcmxheSwudi1jaGlwW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpmb2N1cy12aXNpYmxlPi52LWNoaXBfX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtZm9jdXMtb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9QHN1cHBvcnRzIG5vdCBzZWxlY3Rvcig6Zm9jdXMtdmlzaWJsZSl7LnYtY2hpcC0tYWN0aXZlOmZvY3VzPi52LWNoaXBfX292ZXJsYXksLnYtY2hpcFthcmlhLWhhc3BvcHVwPW1lbnVdW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06Zm9jdXM+LnYtY2hpcF9fb3ZlcmxheXtvcGFjaXR5OmNhbGMoKHZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpICsgdmFyKC0tdi1mb2N1cy1vcGFjaXR5KSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX19LnYtY2hpcHtib3JkZXItcmFkaXVzOjk5OTlweH0udi1jaGlwLS12YXJpYW50LW91dGxpbmVkLC52LWNoaXAtLXZhcmlhbnQtcGxhaW4sLnYtY2hpcC0tdmFyaWFudC10ZXh0LC52LWNoaXAtLXZhcmlhbnQtdG9uYWx7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0fS52LWNoaXAtLXZhcmlhbnQtcGxhaW57b3BhY2l0eTouMjZ9LnYtY2hpcC0tdmFyaWFudC1wbGFpbjpmb2N1cywudi1jaGlwLS12YXJpYW50LXBsYWluOmhvdmVye29wYWNpdHk6MX0udi1jaGlwLS12YXJpYW50LXBsYWluIC52LWNoaXBfX292ZXJsYXl7ZGlzcGxheTpub25lfS52LWNoaXAtLXZhcmlhbnQtZWxldmF0ZWQsLnYtY2hpcC0tdmFyaWFudC1mbGF0e2JhY2tncm91bmQ6cmdiKHZhcigtLXYtdGhlbWUtc3VyZmFjZS12YXJpYW50KSk7Y29sb3I6cmdiKHZhcigtLXYtdGhlbWUtb24tc3VyZmFjZS12YXJpYW50KSl9LnYtY2hpcC0tdmFyaWFudC1lbGV2YXRlZHtib3gtc2hhZG93OjAgMnB4IDFweCAtMXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDFweCAxcHggMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgMXB4IDNweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKX0udi1jaGlwLS12YXJpYW50LWZsYXR7Ym94LXNoYWRvdzowIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjE0KSksMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSl9LnYtY2hpcC0tdmFyaWFudC1vdXRsaW5lZHtib3JkZXI6dGhpbiBzb2xpZH0udi1jaGlwLS12YXJpYW50LXRleHQgLnYtY2hpcF9fb3ZlcmxheXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcn0udi1jaGlwLS12YXJpYW50LXRvbmFsIC52LWNoaXBfX3VuZGVybGF5e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTp2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KTtwb2ludGVyLWV2ZW50czpub25lO3JpZ2h0OjA7dG9wOjB9LnYtY2hpcCAudi1jaGlwX191bmRlcmxheXtwb3NpdGlvbjphYnNvbHV0ZX0udi1jaGlwLS1ib3JkZXJ7Ym9yZGVyLXdpZHRoOnRoaW59LnYtY2hpcC0tbGlua3tjdXJzb3I6cG9pbnRlcn0udi1jaGlwLS1maWx0ZXIsLnYtY2hpcC0tbGlua3std2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnYtY2hpcF9fY29udGVudHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleH0udi1hdXRvY29tcGxldGVfX3NlbGVjdGlvbiAudi1jaGlwX19jb250ZW50LC52LWNvbWJvYm94X19zZWxlY3Rpb24gLnYtY2hpcF9fY29udGVudCwudi1zZWxlY3RfX3NlbGVjdGlvbiAudi1jaGlwX19jb250ZW50e292ZXJmbG93OmhpZGRlbn0udi1jaGlwX19hcHBlbmQsLnYtY2hpcF9fY2xvc2UsLnYtY2hpcF9fZmlsdGVyLC52LWNoaXBfX3ByZXBlbmR7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXh9LnYtY2hpcF9fY2xvc2V7Y3Vyc29yOnBvaW50ZXI7ZmxleDowIDEgYXV0bztmb250LXNpemU6MThweDttYXgtaGVpZ2h0OjE4cHg7bWF4LXdpZHRoOjE4cHg7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52LWNoaXBfX2Nsb3NlIC52LWljb257Zm9udC1zaXplOmluaGVyaXR9LnYtY2hpcF9fZmlsdGVye3RyYW5zaXRpb246LjE1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udi1jaGlwX19vdmVybGF5e2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtoZWlnaHQ6MTAwJTtsZWZ0OjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dDt3aWR0aDoxMDAlfS52LWNoaXAtLWRpc2FibGVke29wYWNpdHk6LjM7cG9pbnRlci1ldmVudHM6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnYtY2hpcC0tbGFiZWx7Ym9yZGVyLXJhZGl1czo0cHh9LnYtY2hpcC1ncm91cHtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmc6NHB4IDB9LnYtY2hpcC1ncm91cCAudi1jaGlwe21hcmdpbjo0cHggOHB4IDRweCAwfS52LWNoaXAtZ3JvdXAgLnYtY2hpcC52LWNoaXAtLXNlbGVjdGVkOm5vdCgudi1jaGlwLS1kaXNhYmxlZCkgLnYtY2hpcF9fb3ZlcmxheXtvcGFjaXR5OnZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpfS52LWNoaXAtZ3JvdXAtLWNvbHVtbiAudi1zbGlkZS1ncm91cF9fY29udGVudHtmbGV4LXdyYXA6d3JhcDttYXgtd2lkdGg6MTAwJTt3aGl0ZS1zcGFjZTpub3JtYWx9LnYtc2VsZWN0aW9uLWNvbnRyb2x7YWxpZ24taXRlbXM6Y2VudGVyO2NvbnRhaW46bGF5b3V0O2Rpc3BsYXk6ZmxleDtmbGV4OjEgMDtncmlkLWFyZWE6Y29udHJvbDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnYtc2VsZWN0aW9uLWNvbnRyb2wgLnYtbGFiZWx7aGVpZ2h0OjEwMCU7b3BhY2l0eToxO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LnYtc2VsZWN0aW9uLWNvbnRyb2wtLWRpc2FibGVke29wYWNpdHk6dmFyKC0tdi1kaXNhYmxlZC1vcGFjaXR5KTtwb2ludGVyLWV2ZW50czpub25lfS52LXNlbGVjdGlvbi1jb250cm9sLS1lcnJvcjpub3QoLnYtc2VsZWN0aW9uLWNvbnRyb2wtLWRpc2FibGVkKSAudi1sYWJlbHtjb2xvcjpyZ2IodmFyKC0tdi10aGVtZS1lcnJvcikpfS52LXNlbGVjdGlvbi1jb250cm9sLS1pbmxpbmV7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4OjAgMCBhdXRvO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS52LXNlbGVjdGlvbi1jb250cm9sLS1pbmxpbmUgLnYtbGFiZWx7d2lkdGg6YXV0b30udi1zZWxlY3Rpb24tY29udHJvbC0tZGVuc2l0eS1kZWZhdWx0ey0tdi1zZWxlY3Rpb24tY29udHJvbC1zaXplOjQwcHh9LnYtc2VsZWN0aW9uLWNvbnRyb2wtLWRlbnNpdHktY29tZm9ydGFibGV7LS12LXNlbGVjdGlvbi1jb250cm9sLXNpemU6MzZweH0udi1zZWxlY3Rpb24tY29udHJvbC0tZGVuc2l0eS1jb21wYWN0ey0tdi1zZWxlY3Rpb24tY29udHJvbC1zaXplOjI4cHh9LnYtc2VsZWN0aW9uLWNvbnRyb2xfX3dyYXBwZXJ7ZGlzcGxheTppbmxpbmUtZmxleH0udi1zZWxlY3Rpb24tY29udHJvbF9faW5wdXQsLnYtc2VsZWN0aW9uLWNvbnRyb2xfX3dyYXBwZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6bm9uZTtoZWlnaHQ6dmFyKC0tdi1zZWxlY3Rpb24tY29udHJvbC1zaXplKTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOnZhcigtLXYtc2VsZWN0aW9uLWNvbnRyb2wtc2l6ZSl9LnYtc2VsZWN0aW9uLWNvbnRyb2xfX2lucHV0e2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleH0udi1zZWxlY3Rpb24tY29udHJvbF9faW5wdXQgaW5wdXR7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEwMCU7bGVmdDowO29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS52LXNlbGVjdGlvbi1jb250cm9sX19pbnB1dDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czoxMDAlO2NvbnRlbnQ6IiI7aGVpZ2h0OjEwMCU7bGVmdDowO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LnYtc2VsZWN0aW9uLWNvbnRyb2xfX2lucHV0OmhvdmVyOmJlZm9yZXtvcGFjaXR5OmNhbGModmFyKC0tdi1ob3Zlci1vcGFjaXR5KSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfS52LXNlbGVjdGlvbi1jb250cm9sX19pbnB1dD4udi1pY29ue29wYWNpdHk6dmFyKC0tdi1tZWRpdW0tZW1waGFzaXMtb3BhY2l0eSl9LnYtc2VsZWN0aW9uLWNvbnRyb2wtLWRpcnR5IC52LXNlbGVjdGlvbi1jb250cm9sX19pbnB1dD4udi1pY29uLC52LXNlbGVjdGlvbi1jb250cm9sLS1kaXNhYmxlZCAudi1zZWxlY3Rpb24tY29udHJvbF9faW5wdXQ+LnYtaWNvbiwudi1zZWxlY3Rpb24tY29udHJvbC0tZXJyb3IgLnYtc2VsZWN0aW9uLWNvbnRyb2xfX2lucHV0Pi52LWljb257b3BhY2l0eToxfS52LXNlbGVjdGlvbi1jb250cm9sLS1lcnJvcjpub3QoLnYtc2VsZWN0aW9uLWNvbnRyb2wtLWRpc2FibGVkKSAudi1zZWxlY3Rpb24tY29udHJvbF9faW5wdXQ+LnYtaWNvbntjb2xvcjpyZ2IodmFyKC0tdi10aGVtZS1lcnJvcikpfS52LXNlbGVjdGlvbi1jb250cm9sLS1mb2N1cy12aXNpYmxlIC52LXNlbGVjdGlvbi1jb250cm9sX19pbnB1dDpiZWZvcmV7b3BhY2l0eTpjYWxjKHZhcigtLXYtZm9jdXMtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1zZWxlY3Rpb24tY29udHJvbC1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dyaWQtYXJlYTpjb250cm9sfS52LXNlbGVjdGlvbi1jb250cm9sLWdyb3VwLS1pbmxpbmV7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwfQo="}},"time_used":238,"timings":{"blocked":212,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CAlkWbu_.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.491Z","timestamp":1785139669491,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CAlkWbu_.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1737-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2379\r\nKeep-Alive: timeout=5, max=99\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":5943,"size_decoded":2730,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5942)","md5":"e9464d99e8c6d552c59e5b44542a6317","sha1":"2159735ae64f9df0fb46e1ae4d923526fecef735","sha256":"580c34d99a67edfd1b6a3571743e2997627e696c462a81858c1f234e12951ff3","sha512":"fb59a8e9f23cde7d11861907bbcff4c98b593771ce0fba370337715a396bb7d92f4882ec60fe02599441539f39592c558a164505ed83eb31a36f9f8bbd8a5e79","ssdeep":"96:dm/Ump95X1y9fr9F9th/un6ZHBa5CvCeg5J1ffCUEx/vEE/yKYZgHS9W0Q++Gl/h:dm/Ump95X1y9fr9F9th2n6/aYvCrffCm","tlshash":"b4c1e94c3a4bf8ffa733144850b74111a33c275b7621c4e4a0f6a95e8296e25f68a67b","first_seen":"2025-10-23T03:46:52.586369Z","last_seen":"2026-07-27T11:49:48.98539Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2JpIGFzIE8sJCBhcyBXLGE3IGFzICQsYTAgYXMgRCxhNSBhcyBFLGYgYXMgbixzIGFzIEksYWggYXMgRyxhaSBhcyBKLGF2IGFzIEssUiBhcyBiLHIgYXMgUSxqIGFzIFAsYkMgYXMgWSxhZyBhcyBaLGsgYXMgcCxJIGFzIFUsYWUgYXMgZWUsRiBhcyB0ZSxhMiBhcyBuZSxhZiBhcyByZSxYIGFzIGFlfWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0e20gYXMgc2UsdSBhcyBpZSxhIGFzIGxlLGIgYXMgb2V9ZnJvbSIuL0I4VHhUeWFrLmpzIjtpbXBvcnR7bSBhcyB1ZSxNIGFzIFJ9ZnJvbSIuL0NJOFZGc2dILmpzIjtmdW5jdGlvbiBjZShlLGwpe2lmKCFPKXJldHVybjtjb25zdCBpPWwubW9kaWZpZXJzfHx7fSxyPWwudmFsdWUse2hhbmRsZXI6ZyxvcHRpb25zOm19PXR5cGVvZiByPT0ib2JqZWN0Ij9yOntoYW5kbGVyOnIsb3B0aW9uczp7fX0seT1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXt2YXIgYztsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06W10saD1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtjb25zdCBhPShjPWUuX29ic2VydmUpPT1udWxsP3ZvaWQgMDpjW2wuaW5zdGFuY2UuJC51aWRdO2lmKCFhKXJldHVybjtjb25zdCBzPWQuc29tZShmPT5mLmlzSW50ZXJzZWN0aW5nKTtnJiYoIWkucXVpZXR8fGEuaW5pdCkmJighaS5vbmNlfHxzfHxhLmluaXQpJiZnKHMsZCxoKSxzJiZpLm9uY2U/TShlLGwpOmEuaW5pdD0hMH0sbSk7ZS5fb2JzZXJ2ZT1PYmplY3QoZS5fb2JzZXJ2ZSksZS5fb2JzZXJ2ZVtsLmluc3RhbmNlLiQudWlkXT17aW5pdDohMSxvYnNlcnZlcjp5fSx5Lm9ic2VydmUoZSl9ZnVuY3Rpb24gTShlLGwpe3ZhciByO2NvbnN0IGk9KHI9ZS5fb2JzZXJ2ZSk9PW51bGw/dm9pZCAwOnJbbC5pbnN0YW5jZS4kLnVpZF07aSYmKGkub2JzZXJ2ZXIudW5vYnNlcnZlKGUpLGRlbGV0ZSBlLl9vYnNlcnZlW2wuaW5zdGFuY2UuJC51aWRdKX1jb25zdCB2ZT17bW91bnRlZDpjZSx1bm1vdW50ZWQ6TX07ZnVuY3Rpb24gZGUoZSl7cmV0dXJue2FzcGVjdFN0eWxlczpJKCgpPT57Y29uc3QgbD1OdW1iZXIoZS5hc3BlY3RSYXRpbyk7cmV0dXJuIGw/e3BhZGRpbmdCb3R0b206U3RyaW5nKDEvbCoxMDApKyIlIn06dm9pZCAwfSl9fWNvbnN0IHE9Vyh7YXNwZWN0UmF0aW86W1N0cmluZyxOdW1iZXJdLGNvbnRlbnRDbGFzczpudWxsLGlubGluZTpCb29sZWFuLC4uLiQoKSwuLi5zZSgpfSwiVlJlc3BvbnNpdmUiKSxGPUQoKSh7bmFtZToiVlJlc3BvbnNpdmUiLHByb3BzOnEoKSxzZXR1cChlLGwpe2xldHtzbG90czppfT1sO2NvbnN0e2FzcGVjdFN0eWxlczpyfT1kZShlKSx7ZGltZW5zaW9uU3R5bGVzOmd9PWllKGUpO3JldHVybiBFKCgpPT57dmFyIG07cmV0dXJuIG4oImRpdiIse2NsYXNzOlsidi1yZXNwb25zaXZlIix7InYtcmVzcG9uc2l2ZS0taW5saW5lIjplLmlubGluZX0sZS5jbGFzc10sc3R5bGU6W2cudmFsdWUsZS5zdHlsZV19LFtuKCJkaXYiLHtjbGFzczoidi1yZXNwb25zaXZlX19zaXplciIsc3R5bGU6ci52YWx1ZX0sbnVsbCksKG09aS5hZGRpdGlvbmFsKT09bnVsbD92b2lkIDA6bS5jYWxsKGkpLGkuZGVmYXVsdCYmbigiZGl2Iix7Y2xhc3M6WyJ2LXJlc3BvbnNpdmVfX2NvbnRlbnQiLGUuY29udGVudENsYXNzXX0sW2kuZGVmYXVsdCgpXSldKX0pLHt9fX0pLGdlPVcoe2Fic29sdXRlOkJvb2xlYW4sYWx0OlN0cmluZyxjb3ZlcjpCb29sZWFuLGNvbG9yOlN0cmluZyxkcmFnZ2FibGU6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OnZvaWQgMH0sZWFnZXI6Qm9vbGVhbixncmFkaWVudDpTdHJpbmcsbGF6eVNyYzpTdHJpbmcsb3B0aW9uczp7dHlwZTpPYmplY3QsZGVmYXVsdDooKT0+KHtyb290OnZvaWQgMCxyb290TWFyZ2luOnZvaWQgMCx0aHJlc2hvbGQ6dm9pZCAwfSl9LHNpemVzOlN0cmluZyxzcmM6e3R5cGU6W1N0cmluZyxPYmplY3RdLGRlZmF1bHQ6IiJ9LGNyb3Nzb3JpZ2luOlN0cmluZyxyZWZlcnJlcnBvbGljeTpTdHJpbmcsc3Jjc2V0OlN0cmluZyxwb3NpdGlvbjpTdHJpbmcsLi4ucSgpLC4uLiQoKSwuLi5sZSgpLC4uLnVlKCl9LCJWSW1nIiksX2U9RCgpKHtuYW1lOiJWSW1nIixkaXJlY3RpdmVzOntpbnRlcnNlY3Q6dmV9LHByb3BzOmdlKCksZW1pdHM6e2xvYWRzdGFydDplPT4hMCxsb2FkOmU9PiEwLGVycm9yOmU9PiEwfSxzZXR1cChlLGwpe2xldHtlbWl0Omksc2xvdHM6cn09bDtjb25zdHtiYWNrZ3JvdW5kQ29sb3JDbGFzc2VzOmcsYmFja2dyb3VuZENvbG9yU3R5bGVzOm19PUcoSihlLCJjb2xvciIpKSx7cm91bmRlZENsYXNzZXM6eX09b2UoZSksZD1LKCJWSW1nIiksaD1iKCIiKSxhPVEoKSxzPWIoZS5lYWdlcj8ibG9hZGluZyI6ImlkbGUiKSxjPWIoKSxmPWIoKSx1PUkoKCk9PmUuc3JjJiZ0eXBlb2YgZS5zcmM9PSJvYmplY3QiP3tzcmM6ZS5zcmMuc3JjLHNyY3NldDplLnNyY3NldHx8ZS5zcmMuc3Jjc2V0LGxhenlTcmM6ZS5sYXp5U3JjfHxlLnNyYy5sYXp5U3JjLGFzcGVjdDpOdW1iZXIoZS5hc3BlY3RSYXRpb3x8ZS5zcmMuYXNwZWN0fHwwKX06e3NyYzplLnNyYyxzcmNzZXQ6ZS5zcmNzZXQsbGF6eVNyYzplLmxhenlTcmMsYXNwZWN0Ok51bWJlcihlLmFzcGVjdFJhdGlvfHwwKX0pLFM9SSgoKT0+dS52YWx1ZS5hc3BlY3R8fGMudmFsdWUvZi52YWx1ZXx8MCk7UCgoKT0+ZS5zcmMsKCk9Pnt6KHMudmFsdWUhPT0iaWRsZSIpfSksUChTLCh0LG8pPT57IXQmJm8mJmEudmFsdWUmJl8oYS52YWx1ZSl9KSxZKCgpPT56KCkpO2Z1bmN0aW9uIHoodCl7aWYoIShlLmVhZ2VyJiZ0KSYmIShPJiYhdCYmIWUuZWFnZXIpKXtpZihzLnZhbHVlPSJsb2FkaW5nIix1LnZhbHVlLmxhenlTcmMpe2NvbnN0IG89bmV3IEltYWdlO28uc3JjPXUudmFsdWUubGF6eVNyYyxfKG8sbnVsbCl9dS52YWx1ZS5zcmMmJlooKCk9Pnt2YXIgbztpKCJsb2Fkc3RhcnQiLCgobz1hLnZhbHVlKT09bnVsbD92b2lkIDA6by5jdXJyZW50U3JjKXx8dS52YWx1ZS5zcmMpLHNldFRpbWVvdXQoKCk9Pnt2YXIgdjtpZighZC5pc1VubW91bnRlZClpZigodj1hLnZhbHVlKSE9bnVsbCYmdi5jb21wbGV0ZSl7aWYoYS52YWx1ZS5uYXR1cmFsV2lkdGh8fHcoKSxzLnZhbHVlPT09ImVycm9yIilyZXR1cm47Uy52YWx1ZXx8XyhhLnZhbHVlLG51bGwpLHMudmFsdWU9PT0ibG9hZGluZyImJmsoKX1lbHNlIFMudmFsdWV8fF8oYS52YWx1ZSksVCgpfSl9KX19ZnVuY3Rpb24gaygpe3ZhciB0O2QuaXNVbm1vdW50ZWR8fChUKCksXyhhLnZhbHVlKSxzLnZhbHVlPSJsb2FkZWQiLGkoImxvYWQiLCgodD1hLnZhbHVlKT09bnVsbD92b2lkIDA6dC5jdXJyZW50U3JjKXx8dS52YWx1ZS5zcmMpKX1mdW5jdGlvbiB3KCl7dmFyIHQ7ZC5pc1VubW91bnRlZHx8KHMudmFsdWU9ImVycm9yIixpKCJlcnJvciIsKCh0PWEudmFsdWUpPT1udWxsP3ZvaWQgMDp0LmN1cnJlbnRTcmMpfHx1LnZhbHVlLnNyYykpfWZ1bmN0aW9uIFQoKXtjb25zdCB0PWEudmFsdWU7dCYmKGgudmFsdWU9dC5jdXJyZW50U3JjfHx0LnNyYyl9bGV0IEM9LTE7cCgoKT0+e2NsZWFyVGltZW91dChDKX0pO2Z1bmN0aW9uIF8odCl7bGV0IG89YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjEwMDtjb25zdCB2PSgpPT57aWYoY2xlYXJUaW1lb3V0KEMpLGQuaXNVbm1vdW50ZWQpcmV0dXJuO2NvbnN0e25hdHVyYWxIZWlnaHQ6aixuYXR1cmFsV2lkdGg6Tn09dDtqfHxOPyhjLnZhbHVlPU4sZi52YWx1ZT1qKTohdC5jb21wbGV0ZSYmcy52YWx1ZT09PSJsb2FkaW5nIiYmbyE9bnVsbD9DPXdpbmRvdy5zZXRUaW1lb3V0KHYsbyk6KHQuY3VycmVudFNyYy5lbmRzV2l0aCgiLnN2ZyIpfHx0LmN1cnJlbnRTcmMuc3RhcnRzV2l0aCgiZGF0YTppbWFnZS9zdmcreG1sIikpJiYoYy52YWx1ZT0xLGYudmFsdWU9MSl9O3YoKX1jb25zdCBWPUkoKCk9Pih7InYtaW1nX19pbWctLWNvdmVyIjplLmNvdmVyLCJ2LWltZ19faW1nLS1jb250YWluIjohZS5jb3Zlcn0pKSx4PSgpPT57dmFyIHY7aWYoIXUudmFsdWUuc3JjfHxzLnZhbHVlPT09ImlkbGUiKXJldHVybiBudWxsO2NvbnN0IHQ9bigiaW1nIix7Y2xhc3M6WyJ2LWltZ19faW1nIixWLnZhbHVlXSxzdHlsZTp7b2JqZWN0UG9zaXRpb246ZS5wb3NpdGlvbn0sY3Jvc3NvcmlnaW46ZS5jcm9zc29yaWdpbixzcmM6dS52YWx1ZS5zcmMsc3Jjc2V0OnUudmFsdWUuc3Jjc2V0LGFsdDplLmFsdCxyZWZlcnJlcnBvbGljeTplLnJlZmVycmVycG9saWN5LGRyYWdnYWJsZTplLmRyYWdnYWJsZSxzaXplczplLnNpemVzLHJlZjphLG9uTG9hZDprLG9uRXJyb3I6d30sbnVsbCksbz0odj1yLnNvdXJjZXMpPT1udWxsP3ZvaWQgMDp2LmNhbGwocik7cmV0dXJuIG4oUix7dHJhbnNpdGlvbjplLnRyYW5zaXRpb24sYXBwZWFyOiEwfSx7ZGVmYXVsdDooKT0+W1Uobz9uKCJwaWN0dXJlIix7Y2xhc3M6InYtaW1nX19waWN0dXJlIn0sW28sdF0pOnQsW1thZSxzLnZhbHVlPT09ImxvYWRlZCJdXSldfSl9LEE9KCk9Pm4oUix7dHJhbnNpdGlvbjplLnRyYW5zaXRpb259LHtkZWZhdWx0OigpPT5bdS52YWx1ZS5sYXp5U3JjJiZzLnZhbHVlIT09ImxvYWRlZCImJm4oImltZyIse2NsYXNzOlsidi1pbWdfX2ltZyIsInYtaW1nX19pbWctLXByZWxvYWQiLFYudmFsdWVdLHN0eWxlOntvYmplY3RQb3NpdGlvbjplLnBvc2l0aW9ufSxjcm9zc29yaWdpbjplLmNyb3Nzb3JpZ2luLHNyYzp1LnZhbHVlLmxhenlTcmMsYWx0OmUuYWx0LHJlZmVycmVycG9saWN5OmUucmVmZXJyZXJwb2xpY3ksZHJhZ2dhYmxlOmUuZHJhZ2dhYmxlfSxudWxsKV19KSxIPSgpPT5yLnBsYWNlaG9sZGVyP24oUix7dHJhbnNpdGlvbjplLnRyYW5zaXRpb24sYXBwZWFyOiEwfSx7ZGVmYXVsdDooKT0+WyhzLnZhbHVlPT09ImxvYWRpbmcifHxzLnZhbHVlPT09ImVycm9yIiYmIXIuZXJyb3IpJiZuKCJkaXYiLHtjbGFzczoidi1pbWdfX3BsYWNlaG9sZGVyIn0sW3IucGxhY2Vob2xkZXIoKV0pXX0pOm51bGwsTD0oKT0+ci5lcnJvcj9uKFIse3RyYW5zaXRpb246ZS50cmFuc2l0aW9uLGFwcGVhcjohMH0se2RlZmF1bHQ6KCk9PltzLnZhbHVlPT09ImVycm9yIiYmbigiZGl2Iix7Y2xhc3M6InYtaW1nX19lcnJvciJ9LFtyLmVycm9yKCldKV19KTpudWxsLFg9KCk9PmUuZ3JhZGllbnQ/bigiZGl2Iix7Y2xhc3M6InYtaW1nX19ncmFkaWVudCIsc3R5bGU6e2JhY2tncm91bmRJbWFnZTpgbGluZWFyLWdyYWRpZW50KCR7ZS5ncmFkaWVudH0pYH19LG51bGwpOm51bGwsQj1iKCExKTt7Y29uc3QgdD1QKFMsbz0+e28mJihyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntCLnZhbHVlPSEwfSl9KSx0KCkpfSl9cmV0dXJuIEUoKCk9Pntjb25zdCB0PUYuZmlsdGVyUHJvcHMoZSk7cmV0dXJuIFUobihGLG5lKHtjbGFzczpbInYtaW1nIix7InYtaW1nLS1hYnNvbHV0ZSI6ZS5hYnNvbHV0ZSwidi1pbWctLWJvb3RpbmciOiFCLnZhbHVlfSxnLnZhbHVlLHkudmFsdWUsZS5jbGFzc10sc3R5bGU6W3t3aWR0aDpyZShlLndpZHRoPT09ImF1dG8iP2MudmFsdWU6ZS53aWR0aCl9LG0udmFsdWUsZS5zdHlsZV19LHQse2FzcGVjdFJhdGlvOlMudmFsdWUsImFyaWEtbGFiZWwiOmUuYWx0LHJvbGU6ZS5hbHQ/ImltZyI6dm9pZCAwfSkse2FkZGl0aW9uYWw6KCk9Pm4odGUsbnVsbCxbbih4LG51bGwsbnVsbCksbihBLG51bGwsbnVsbCksbihYLG51bGwsbnVsbCksbihILG51bGwsbnVsbCksbihMLG51bGwsbnVsbCldKSxkZWZhdWx0OnIuZGVmYXVsdH0pLFtbZWUoImludGVyc2VjdCIpLHtoYW5kbGVyOnosb3B0aW9uczplLm9wdGlvbnN9LG51bGwse29uY2U6ITB9XV0pfSkse2N1cnJlbnRTcmM6aCxpbWFnZTphLHN0YXRlOnMsbmF0dXJhbFdpZHRoOmMsbmF0dXJhbEhlaWdodDpmfX19KTtleHBvcnR7dmUgYXMgSSxfZSBhcyBWfTsK"}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/C2Qfbq92.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.506Z","timestamp":1785139669506,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/C2Qfbq92.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"117-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 218\r\nKeep-Alive: timeout=5, max=97\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":279,"size_decoded":567,"mime_type":"application/javascript","magic":"Java source, ASCII text","md5":"24bae8f8968acb7ad6a237cfcc2c5de5","sha1":"ec63d03b7a9c84e98f89b7ba3d23a335913d63f5","sha256":"f6d8530bc5c44f97c64ed2e923a6995fe290c14140a8a53bf47b12044f820298","sha512":"a260f1d70f51e67ce690832a15c469b23748fd4f3e825849060e3412478dc597f9ecbdee16d3864f10ca6e64072472c5c91dd186cf34a62f543b6604118a596c","ssdeep":"","tlshash":"c3d0955cb84515b4c3fabde098351d2d4257d30835264bc01002d9bf57668d2c36bd7b","first_seen":"2025-10-23T03:46:52.294869Z","last_seen":"2026-07-27T11:49:48.911142Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0eyQgYXMgbixSIGFzIHIscyBhcyB1LGogYXMgbH1mcm9tIi4vU20ybUNmREUuanMiO2NvbnN0IGM9bih7ZWFnZXI6Qm9vbGVhbn0sImxhenkiKTtmdW5jdGlvbiBtKGUsbyl7Y29uc3QgYT1yKCExKSxzPXUoKCk9PmEudmFsdWV8fGUuZWFnZXJ8fG8udmFsdWUpO2wobywoKT0+YS52YWx1ZT0hMCk7ZnVuY3Rpb24gdCgpe2UuZWFnZXJ8fChhLnZhbHVlPSExKX1yZXR1cm57aXNCb290ZWQ6YSxoYXNDb250ZW50OnMsb25BZnRlckxlYXZlOnR9fWV4cG9ydHtjIGFzIG0sbSBhcyB1fTsK"}},"time_used":73,"timings":{"blocked":47,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/exchange/flow/active-direction.svg","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.593Z","timestamp":1785139670593,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/exchange/flow/active-direction.svg HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"73d-654aa2b99c940\"\r\nAccept-Ranges: bytes\r\nContent-Length: 1853\r\nKeep-Alive: timeout=5, max=89\r\nConnection: Keep-Alive\r\nContent-Type: image/svg+xml\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":1853,"size_decoded":2142,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"dc8a346f2ee549c81793eb5e6d6fa658","sha1":"461800b8f0d06dd10a067e638e3351766dbb61c0","sha256":"3b892886209f88e1df173e0c7b8699212d514cc6c71f834e457c607f5c2192d1","sha512":"a1d4a6eb0a754afebb7533ba6dd08e1f731c95a7bc6391453e096cc260d5a84e8319b637a7c819c79de5d64dffd73e40cb1d86ede8f560065033c55c9f084979","ssdeep":"","tlshash":"dc3104d4a3a052e1d0518ff7aa7a787435fa94fa2e04cd2ec57e2d91a729e4f04851c2","first_seen":"2025-10-23T03:46:52.989223Z","last_seen":"2026-07-27T11:49:48.990696Z","times_seen":9,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iNDEiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MSA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0yNy4xNjczIDMuMzMyMDNIMTMuODM0QzguMzMzOTggMy4zMzIwMyAzLjgzMzk4IDcuODMyMDMgMy44MzM5OCAxMy4zMzJWMjYuNjY1NEMzLjgzMzk4IDMyLjE2NTQgOC4zMzM5OCAzNi42NjU0IDEzLjgzNCAzNi42NjU0SDI3LjE2NzNDMzIuNjY3MyAzNi42NjU0IDM3LjE2NzMgMzIuMTY1NCAzNy4xNjczIDI2LjY2NTRWMTMuMzMyQzM3LjE2NzMgNy44MzIwMyAzMi42NjczIDMuMzMyMDMgMjcuMTY3MyAzLjMzMjAzWk0zMy44MzQgMjYuNjY1NEMzMy44MzQgMzAuMzMyIDMwLjgzNCAzMy4zMzIgMjcuMTY3MyAzMy4zMzJIMTMuODM0QzEwLjE2NzMgMzMuMzMyIDcuMTY3MzIgMzAuMzMyIDcuMTY3MzIgMjYuNjY1NFYxMy4zMzJDNy4xNjczMiA5LjY2NTM2IDEwLjE2NzMgNi42NjUzNiAxMy44MzQgNi42NjUzNkgyNy4xNjczQzMwLjgzNCA2LjY2NTM2IDMzLjgzNCA5LjY2NTM2IDMzLjgzNCAxMy4zMzJWMjYuNjY1NFoiIGZpbGw9IiNFMDc5MEIiLz4KICAgIDxwYXRoIGQ9Ik0xNi44MzI3IDEyLjMzNDZDMTYuNDk5MyAxMi4wMDEzIDE1Ljk5OTMgMTEuNjY4IDE1LjQ5OTMgMTEuNjY4QzE0Ljk5OTMgMTEuNjY4IDE0LjQ5OTMgMTIuMDAxMyAxNC4xNjYgMTIuMzM0NkMxNC4xNjYgMTIuMzM0NiAxNC4xNjYgMTIuMzM0NiAxMy45OTk0IDEyLjMzNDZMMTAuNjY2IDE3LjMzNDZDMTAuMTY2IDE4LjE2OCAxMC4zMzI3IDE5LjE2OCAxMS4xNjYgMTkuNjY4QzExLjk5OTMgMjAuMTY4IDEyLjk5OTMgMjAuMDAxMyAxMy40OTkzIDE5LjE2OEwxMy44MzI3IDE4LjgzNDZWMjYuNjY4QzEzLjgzMjcgMjcuNjY4IDE0LjQ5OTMgMjguMzM0NiAxNS40OTkzIDI4LjMzNDZDMTYuNDk5MyAyOC4zMzQ2IDE3LjE2NiAyNy42NjggMTcuMTY2IDI2LjY2OFYxOC44MzQ2TDE3LjQ5OTMgMTkuMzM0NkMxNy44MzI3IDE5LjgzNDYgMTguMzMyNyAyMC4wMDEzIDE4LjgzMjcgMjAuMDAxM0MxOS4xNjYgMjAuMDAxMyAxOS40OTkzIDE5LjgzNDYgMTkuODMyNyAxOS42NjhDMjAuNjY2IDE5LjE2OCAyMC44MzI3IDE4LjE2OCAyMC4zMzI3IDE3LjMzNDZMMTYuODMyNyAxMi4zMzQ2Wk0yNy40OTk0IDIwLjY2OEwyNy4xNjYgMjEuMTY4VjEzLjMzNDZDMjcuMTY2IDEyLjMzNDYgMjYuNDk5MyAxMS42NjggMjUuNDk5NCAxMS42NjhDMjQuNDk5NCAxMS42NjggMjMuODMyNyAxMi4zMzQ2IDIzLjgzMjcgMTMuMzM0NlYyMS4xNjhMMjMuNDk5MyAyMC42NjhDMjIuOTk5MyAxOS44MzQ2IDIxLjk5OTMgMTkuNjY4IDIxLjE2NiAyMC4xNjhDMjAuMzMyNyAyMC42NjggMjAuMTY2IDIxLjY2OCAyMC42NjYgMjIuNTAxM0wyMy45OTk0IDI3LjUwMTNMMjQuMTY2IDI3LjY2OEMyNC4zMzI3IDI3LjgzNDYgMjQuNDk5NCAyNy44MzQ2IDI0LjY2NiAyOC4wMDEzQzI0LjY2NiAyOC4wMDEzIDI0LjY2NiAyOC4wMDEzIDI0LjgzMjcgMjguMDAxM0MyNC45OTk0IDI4LjAwMTMgMjUuMTY2IDI4LjE2OCAyNS4zMzI3IDI4LjE2OEMyNS40OTkzIDI4LjE2OCAyNS42NjYgMjguMTY4IDI1LjgzMjcgMjguMDAxM0MyNS44MzI3IDI4LjAwMTMgMjUuODMyNyAyOC4wMDEzIDI1Ljk5OTQgMjguMDAxM0MyNi4xNjYgMjguMDAxMyAyNi4zMzI3IDI3LjgzNDYgMjYuNDk5NCAyNy42NjhMMjYuNjY2IDI3LjUwMTNMMjkuOTk5NCAyMi41MDEzQzMwLjQ5OTQgMjEuNjY4IDMwLjMzMjcgMjAuNjY4IDI5LjQ5OTMgMjAuMTY4QzI4Ljk5OTMgMTkuODM0NiAyNy45OTk0IDIwLjAwMTMgMjcuNDk5NCAyMC42NjhaIiBmaWxsPSIjRTA3OTBCIi8+Cjwvc3ZnPgo="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VGrid.D0S0a0cH.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.467Z","timestamp":1785139669467,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VGrid.D0S0a0cH.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"2541-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1304\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":9537,"size_decoded":1642,"mime_type":"text/css","magic":"ASCII text, with very long lines (9536)","md5":"175f644f4fcde11e07a93d5f653e7492","sha1":"b66b57d3fe73348005f68f8b7811965a158448a2","sha256":"96658eb475e7d378c59924e612b97ffa59b562a3a9fbde3f390fea94a4564c1d","sha512":"ca280f15854cbd30e0296d2072fb0544587d96327c87aee3fd080730e67429378f9fc5addce537c24d4862bb15c38a490e35a2b1d0ad1b5fb87701638f25b6a7","ssdeep":"192:B3vjEIxsX2iy5aiCj2IcRgYtrJqWW8ej3x7/B9gOkTjGjUEjbRtMeU3zWnEURhwh:B/jEIYrg","tlshash":"0912f647946a229d4923aa0f3281746ca15e18bf77b5ecf6b3da4de2203e3d01977c47","first_seen":"2024-05-16T10:00:02Z","last_seen":"2026-07-31T10:58:44.761327Z","times_seen":142,"resource_available":false,"data":"LnYtY29udGFpbmVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87cGFkZGluZzoxNnB4O3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6OTYwcHgpey52LWNvbnRhaW5lcnttYXgtd2lkdGg6OTAwcHh9fUBtZWRpYSAobWluLXdpZHRoOjEyODBweCl7LnYtY29udGFpbmVye21heC13aWR0aDoxMjAwcHh9fUBtZWRpYSAobWluLXdpZHRoOjE5MjBweCl7LnYtY29udGFpbmVye21heC13aWR0aDoxODAwcHh9fUBtZWRpYSAobWluLXdpZHRoOjI1NjBweCl7LnYtY29udGFpbmVye21heC13aWR0aDoyNDAwcHh9fS52LWNvbnRhaW5lci0tZmx1aWR7bWF4LXdpZHRoOjEwMCV9LnYtY29udGFpbmVyLmZpbGwtaGVpZ2h0e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LnYtcm93e2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZsZXgtd3JhcDp3cmFwO21hcmdpbjotMTJweH0udi1yb3crLnYtcm93e21hcmdpbi10b3A6MTJweH0udi1yb3crLnYtcm93LS1kZW5zZXttYXJnaW4tdG9wOjRweH0udi1yb3ctLWRlbnNle21hcmdpbjotNHB4fS52LXJvdy0tZGVuc2U+LnYtY29sLC52LXJvdy0tZGVuc2U+W2NsYXNzKj12LWNvbC1de3BhZGRpbmc6NHB4fS52LXJvdy52LXJvdy0tbm8tZ3V0dGVyc3ttYXJnaW46MH0udi1yb3cudi1yb3ctLW5vLWd1dHRlcnM+LnYtY29sLC52LXJvdy52LXJvdy0tbm8tZ3V0dGVycz5bY2xhc3MqPXYtY29sLV17cGFkZGluZzowfS52LXNwYWNlcntmbGV4LWdyb3c6MX0udi1jb2wsLnYtY29sLTEsLnYtY29sLTEwLC52LWNvbC0xMSwudi1jb2wtMTIsLnYtY29sLTIsLnYtY29sLTMsLnYtY29sLTQsLnYtY29sLTUsLnYtY29sLTYsLnYtY29sLTcsLnYtY29sLTgsLnYtY29sLTksLnYtY29sLWF1dG8sLnYtY29sLWxnLC52LWNvbC1sZy0xLC52LWNvbC1sZy0xMCwudi1jb2wtbGctMTEsLnYtY29sLWxnLTEyLC52LWNvbC1sZy0yLC52LWNvbC1sZy0zLC52LWNvbC1sZy00LC52LWNvbC1sZy01LC52LWNvbC1sZy02LC52LWNvbC1sZy03LC52LWNvbC1sZy04LC52LWNvbC1sZy05LC52LWNvbC1sZy1hdXRvLC52LWNvbC1tZCwudi1jb2wtbWQtMSwudi1jb2wtbWQtMTAsLnYtY29sLW1kLTExLC52LWNvbC1tZC0xMiwudi1jb2wtbWQtMiwudi1jb2wtbWQtMywudi1jb2wtbWQtNCwudi1jb2wtbWQtNSwudi1jb2wtbWQtNiwudi1jb2wtbWQtNywudi1jb2wtbWQtOCwudi1jb2wtbWQtOSwudi1jb2wtbWQtYXV0bywudi1jb2wtc20sLnYtY29sLXNtLTEsLnYtY29sLXNtLTEwLC52LWNvbC1zbS0xMSwudi1jb2wtc20tMTIsLnYtY29sLXNtLTIsLnYtY29sLXNtLTMsLnYtY29sLXNtLTQsLnYtY29sLXNtLTUsLnYtY29sLXNtLTYsLnYtY29sLXNtLTcsLnYtY29sLXNtLTgsLnYtY29sLXNtLTksLnYtY29sLXNtLWF1dG8sLnYtY29sLXhsLC52LWNvbC14bC0xLC52LWNvbC14bC0xMCwudi1jb2wteGwtMTEsLnYtY29sLXhsLTEyLC52LWNvbC14bC0yLC52LWNvbC14bC0zLC52LWNvbC14bC00LC52LWNvbC14bC01LC52LWNvbC14bC02LC52LWNvbC14bC03LC52LWNvbC14bC04LC52LWNvbC14bC05LC52LWNvbC14bC1hdXRvLC52LWNvbC14eGwsLnYtY29sLXh4bC0xLC52LWNvbC14eGwtMTAsLnYtY29sLXh4bC0xMSwudi1jb2wteHhsLTEyLC52LWNvbC14eGwtMiwudi1jb2wteHhsLTMsLnYtY29sLXh4bC00LC52LWNvbC14eGwtNSwudi1jb2wteHhsLTYsLnYtY29sLXh4bC03LC52LWNvbC14eGwtOCwudi1jb2wteHhsLTksLnYtY29sLXh4bC1hdXRve3BhZGRpbmc6MTJweDt3aWR0aDoxMDAlfS52LWNvbHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LnYtY29sLWF1dG97ZmxleDowIDAgYXV0bzttYXgtd2lkdGg6MTAwJTt3aWR0aDphdXRvfS52LWNvbC0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LnYtY29sLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS52LWNvbC0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS52LWNvbC00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0udi1jb2wtNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LnYtY29sLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LnYtY29sLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS52LWNvbC04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0udi1jb2wtOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0udi1jb2wtMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS52LWNvbC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LnYtY29sLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9Lm9mZnNldC0xe21hcmdpbi1pbmxpbmUtc3RhcnQ6OC4zMzMzMzMzMzMzJX0ub2Zmc2V0LTJ7bWFyZ2luLWlubGluZS1zdGFydDoxNi42NjY2NjY2NjY3JX0ub2Zmc2V0LTN7bWFyZ2luLWlubGluZS1zdGFydDoyNSV9Lm9mZnNldC00e21hcmdpbi1pbmxpbmUtc3RhcnQ6MzMuMzMzMzMzMzMzMyV9Lm9mZnNldC01e21hcmdpbi1pbmxpbmUtc3RhcnQ6NDEuNjY2NjY2NjY2NyV9Lm9mZnNldC02e21hcmdpbi1pbmxpbmUtc3RhcnQ6NTAlfS5vZmZzZXQtN3ttYXJnaW4taW5saW5lLXN0YXJ0OjU4LjMzMzMzMzMzMzMlfS5vZmZzZXQtOHttYXJnaW4taW5saW5lLXN0YXJ0OjY2LjY2NjY2NjY2NjclfS5vZmZzZXQtOXttYXJnaW4taW5saW5lLXN0YXJ0Ojc1JX0ub2Zmc2V0LTEwe21hcmdpbi1pbmxpbmUtc3RhcnQ6ODMuMzMzMzMzMzMzMyV9Lm9mZnNldC0xMXttYXJnaW4taW5saW5lLXN0YXJ0OjkxLjY2NjY2NjY2NjclfUBtZWRpYSAobWluLXdpZHRoOjYwMHB4KXsudi1jb2wtc217ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS52LWNvbC1zbS1hdXRve2ZsZXg6MCAwIGF1dG87bWF4LXdpZHRoOjEwMCU7d2lkdGg6YXV0b30udi1jb2wtc20tMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS52LWNvbC1zbS0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0udi1jb2wtc20tM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0udi1jb2wtc20tNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LnYtY29sLXNtLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS52LWNvbC1zbS02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS52LWNvbC1zbS03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0udi1jb2wtc20tOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LnYtY29sLXNtLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LnYtY29sLXNtLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0udi1jb2wtc20tMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS52LWNvbC1zbS0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5vZmZzZXQtc20tMHttYXJnaW4taW5saW5lLXN0YXJ0OjB9Lm9mZnNldC1zbS0xe21hcmdpbi1pbmxpbmUtc3RhcnQ6OC4zMzMzMzMzMzMzJX0ub2Zmc2V0LXNtLTJ7bWFyZ2luLWlubGluZS1zdGFydDoxNi42NjY2NjY2NjY3JX0ub2Zmc2V0LXNtLTN7bWFyZ2luLWlubGluZS1zdGFydDoyNSV9Lm9mZnNldC1zbS00e21hcmdpbi1pbmxpbmUtc3RhcnQ6MzMuMzMzMzMzMzMzMyV9Lm9mZnNldC1zbS01e21hcmdpbi1pbmxpbmUtc3RhcnQ6NDEuNjY2NjY2NjY2NyV9Lm9mZnNldC1zbS02e21hcmdpbi1pbmxpbmUtc3RhcnQ6NTAlfS5vZmZzZXQtc20tN3ttYXJnaW4taW5saW5lLXN0YXJ0OjU4LjMzMzMzMzMzMzMlfS5vZmZzZXQtc20tOHttYXJnaW4taW5saW5lLXN0YXJ0OjY2LjY2NjY2NjY2NjclfS5vZmZzZXQtc20tOXttYXJnaW4taW5saW5lLXN0YXJ0Ojc1JX0ub2Zmc2V0LXNtLTEwe21hcmdpbi1pbmxpbmUtc3RhcnQ6ODMuMzMzMzMzMzMzMyV9Lm9mZnNldC1zbS0xMXttYXJnaW4taW5saW5lLXN0YXJ0OjkxLjY2NjY2NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDo5NjBweCl7LnYtY29sLW1ke2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0udi1jb2wtbWQtYXV0b3tmbGV4OjAgMCBhdXRvO21heC13aWR0aDoxMDAlO3dpZHRoOmF1dG99LnYtY29sLW1kLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0udi1jb2wtbWQtMntmbGV4OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LnYtY29sLW1kLTN7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LnYtY29sLW1kLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS52LWNvbC1tZC01e2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0udi1jb2wtbWQtNntmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0udi1jb2wtbWQtN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LnYtY29sLW1kLTh7ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS52LWNvbC1tZC05e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS52LWNvbC1tZC0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LnYtY29sLW1kLTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0udi1jb2wtbWQtMTJ7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0ub2Zmc2V0LW1kLTB7bWFyZ2luLWlubGluZS1zdGFydDowfS5vZmZzZXQtbWQtMXttYXJnaW4taW5saW5lLXN0YXJ0OjguMzMzMzMzMzMzMyV9Lm9mZnNldC1tZC0ye21hcmdpbi1pbmxpbmUtc3RhcnQ6MTYuNjY2NjY2NjY2NyV9Lm9mZnNldC1tZC0ze21hcmdpbi1pbmxpbmUtc3RhcnQ6MjUlfS5vZmZzZXQtbWQtNHttYXJnaW4taW5saW5lLXN0YXJ0OjMzLjMzMzMzMzMzMzMlfS5vZmZzZXQtbWQtNXttYXJnaW4taW5saW5lLXN0YXJ0OjQxLjY2NjY2NjY2NjclfS5vZmZzZXQtbWQtNnttYXJnaW4taW5saW5lLXN0YXJ0OjUwJX0ub2Zmc2V0LW1kLTd7bWFyZ2luLWlubGluZS1zdGFydDo1OC4zMzMzMzMzMzMzJX0ub2Zmc2V0LW1kLTh7bWFyZ2luLWlubGluZS1zdGFydDo2Ni42NjY2NjY2NjY3JX0ub2Zmc2V0LW1kLTl7bWFyZ2luLWlubGluZS1zdGFydDo3NSV9Lm9mZnNldC1tZC0xMHttYXJnaW4taW5saW5lLXN0YXJ0OjgzLjMzMzMzMzMzMzMlfS5vZmZzZXQtbWQtMTF7bWFyZ2luLWlubGluZS1zdGFydDo5MS42NjY2NjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6MTI4MHB4KXsudi1jb2wtbGd7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS52LWNvbC1sZy1hdXRve2ZsZXg6MCAwIGF1dG87bWF4LXdpZHRoOjEwMCU7d2lkdGg6YXV0b30udi1jb2wtbGctMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS52LWNvbC1sZy0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0udi1jb2wtbGctM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0udi1jb2wtbGctNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LnYtY29sLWxnLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS52LWNvbC1sZy02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS52LWNvbC1sZy03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0udi1jb2wtbGctOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LnYtY29sLWxnLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LnYtY29sLWxnLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0udi1jb2wtbGctMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS52LWNvbC1sZy0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5vZmZzZXQtbGctMHttYXJnaW4taW5saW5lLXN0YXJ0OjB9Lm9mZnNldC1sZy0xe21hcmdpbi1pbmxpbmUtc3RhcnQ6OC4zMzMzMzMzMzMzJX0ub2Zmc2V0LWxnLTJ7bWFyZ2luLWlubGluZS1zdGFydDoxNi42NjY2NjY2NjY3JX0ub2Zmc2V0LWxnLTN7bWFyZ2luLWlubGluZS1zdGFydDoyNSV9Lm9mZnNldC1sZy00e21hcmdpbi1pbmxpbmUtc3RhcnQ6MzMuMzMzMzMzMzMzMyV9Lm9mZnNldC1sZy01e21hcmdpbi1pbmxpbmUtc3RhcnQ6NDEuNjY2NjY2NjY2NyV9Lm9mZnNldC1sZy02e21hcmdpbi1pbmxpbmUtc3RhcnQ6NTAlfS5vZmZzZXQtbGctN3ttYXJnaW4taW5saW5lLXN0YXJ0OjU4LjMzMzMzMzMzMzMlfS5vZmZzZXQtbGctOHttYXJnaW4taW5saW5lLXN0YXJ0OjY2LjY2NjY2NjY2NjclfS5vZmZzZXQtbGctOXttYXJnaW4taW5saW5lLXN0YXJ0Ojc1JX0ub2Zmc2V0LWxnLTEwe21hcmdpbi1pbmxpbmUtc3RhcnQ6ODMuMzMzMzMzMzMzMyV9Lm9mZnNldC1sZy0xMXttYXJnaW4taW5saW5lLXN0YXJ0OjkxLjY2NjY2NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDoxOTIwcHgpey52LWNvbC14bHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LnYtY29sLXhsLWF1dG97ZmxleDowIDAgYXV0bzttYXgtd2lkdGg6MTAwJTt3aWR0aDphdXRvfS52LWNvbC14bC0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LnYtY29sLXhsLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS52LWNvbC14bC0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS52LWNvbC14bC00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0udi1jb2wteGwtNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LnYtY29sLXhsLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LnYtY29sLXhsLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS52LWNvbC14bC04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0udi1jb2wteGwtOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0udi1jb2wteGwtMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS52LWNvbC14bC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LnYtY29sLXhsLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9Lm9mZnNldC14bC0we21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0ub2Zmc2V0LXhsLTF7bWFyZ2luLWlubGluZS1zdGFydDo4LjMzMzMzMzMzMzMlfS5vZmZzZXQteGwtMnttYXJnaW4taW5saW5lLXN0YXJ0OjE2LjY2NjY2NjY2NjclfS5vZmZzZXQteGwtM3ttYXJnaW4taW5saW5lLXN0YXJ0OjI1JX0ub2Zmc2V0LXhsLTR7bWFyZ2luLWlubGluZS1zdGFydDozMy4zMzMzMzMzMzMzJX0ub2Zmc2V0LXhsLTV7bWFyZ2luLWlubGluZS1zdGFydDo0MS42NjY2NjY2NjY3JX0ub2Zmc2V0LXhsLTZ7bWFyZ2luLWlubGluZS1zdGFydDo1MCV9Lm9mZnNldC14bC03e21hcmdpbi1pbmxpbmUtc3RhcnQ6NTguMzMzMzMzMzMzMyV9Lm9mZnNldC14bC04e21hcmdpbi1pbmxpbmUtc3RhcnQ6NjYuNjY2NjY2NjY2NyV9Lm9mZnNldC14bC05e21hcmdpbi1pbmxpbmUtc3RhcnQ6NzUlfS5vZmZzZXQteGwtMTB7bWFyZ2luLWlubGluZS1zdGFydDo4My4zMzMzMzMzMzMzJX0ub2Zmc2V0LXhsLTExe21hcmdpbi1pbmxpbmUtc3RhcnQ6OTEuNjY2NjY2NjY2NyV9fUBtZWRpYSAobWluLXdpZHRoOjI1NjBweCl7LnYtY29sLXh4bHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LnYtY29sLXh4bC1hdXRve2ZsZXg6MCAwIGF1dG87bWF4LXdpZHRoOjEwMCU7d2lkdGg6YXV0b30udi1jb2wteHhsLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0udi1jb2wteHhsLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS52LWNvbC14eGwtM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0udi1jb2wteHhsLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS52LWNvbC14eGwtNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LnYtY29sLXh4bC02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS52LWNvbC14eGwtN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LnYtY29sLXh4bC04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0udi1jb2wteHhsLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LnYtY29sLXh4bC0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LnYtY29sLXh4bC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LnYtY29sLXh4bC0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5vZmZzZXQteHhsLTB7bWFyZ2luLWlubGluZS1zdGFydDowfS5vZmZzZXQteHhsLTF7bWFyZ2luLWlubGluZS1zdGFydDo4LjMzMzMzMzMzMzMlfS5vZmZzZXQteHhsLTJ7bWFyZ2luLWlubGluZS1zdGFydDoxNi42NjY2NjY2NjY3JX0ub2Zmc2V0LXh4bC0ze21hcmdpbi1pbmxpbmUtc3RhcnQ6MjUlfS5vZmZzZXQteHhsLTR7bWFyZ2luLWlubGluZS1zdGFydDozMy4zMzMzMzMzMzMzJX0ub2Zmc2V0LXh4bC01e21hcmdpbi1pbmxpbmUtc3RhcnQ6NDEuNjY2NjY2NjY2NyV9Lm9mZnNldC14eGwtNnttYXJnaW4taW5saW5lLXN0YXJ0OjUwJX0ub2Zmc2V0LXh4bC03e21hcmdpbi1pbmxpbmUtc3RhcnQ6NTguMzMzMzMzMzMzMyV9Lm9mZnNldC14eGwtOHttYXJnaW4taW5saW5lLXN0YXJ0OjY2LjY2NjY2NjY2NjclfS5vZmZzZXQteHhsLTl7bWFyZ2luLWlubGluZS1zdGFydDo3NSV9Lm9mZnNldC14eGwtMTB7bWFyZ2luLWlubGluZS1zdGFydDo4My4zMzMzMzMzMzMzJX0ub2Zmc2V0LXh4bC0xMXttYXJnaW4taW5saW5lLXN0YXJ0OjkxLjY2NjY2NjY2NjclfX0K"}},"time_used":85,"timings":{"blocked":-1,"dns":0,"connect":25,"send":0,"wait":26,"receive":0,"ssl":34},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BIp5-3EK.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.500Z","timestamp":1785139669500,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/BIp5-3EK.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1850-654aa2b82d64a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2202\r\nKeep-Alive: timeout=5, max=98\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":6224,"size_decoded":2553,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (6223)","md5":"9fae8696acbb3e2ad4a7a65997719248","sha1":"867520d8404ecc74d2d07713c0cbe05fdf5bc4e6","sha256":"245b9f75817a2a4bd9027f37aa4db1b87f593113bed26c1b90348a943e116231","sha512":"4e9c0d2a8e7f8fbbaac31dddf209f567e7249808c0f63d1af0083069b3ffd7c5a7ab9b0822911207e9d3cbea28d9f7525dc35d385007d32b670185910dad14b7","ssdeep":"192:Zs0SiKD+um1X90dECUVXt9cBgViTqcOT0zWwHM:Km1XCETV99cBgVi5zWr","tlshash":"49d165552a76e9399b3b908ce4fde06297240b9ccad9d5e0f4f20e1c6399544b3a433f","first_seen":"2025-10-23T03:46:52.437035Z","last_seen":"2026-07-27T11:49:48.932164Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2EwIGFzIHUsYUUgYXMgZWUsYlogYXMgYWUsYTcgYXMgbyxiciBhcyB0ZSwkIGFzIEMsYXggYXMgZyxhVSBhcyBuZSxhOCBhcyBBLGE5IGFzIEwsYWEgYXMgVCxibSBhcyBsZSxhNSBhcyB5LGYgYXMgbixIIGFzIEksYWogYXMgc2UsRiBhcyB4LHMgYXMgQixJIGFzIGllLGFlIGFzIGRlLGEyIGFzIGNlfWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0e2UgYXMgRCxhIGFzIFMsZiBhcyBOLG8gYXMgeixqIGFzIFIsdSBhcyBGLG4gYXMgaixjIGFzIHJlLGggYXMgdWUsaSBhcyBvZSxkIGFzIHZlLGsgYXMgbWUsbCBhcyBnZSxMIGFzIHllfWZyb20iLi9aZk5aaXlDbS5qcyI7aW1wb3J0e2EgYXMgcCxiIGFzIEUsbSBhcyBmZSx1IGFzIGJlfWZyb20iLi9COFR4VHlhay5qcyI7aW1wb3J0e1YgYXMgSH1mcm9tIi4vQ0Fsa1didV8uanMiO2ltcG9ydHtWIGFzIGssYiBhcyBrZSxSIGFzIENlLGMgYXMgVmV9ZnJvbSIuL0NNdVVUbFMyLmpzIjtpbXBvcnR7ViBhcyBJZX1mcm9tIi4vREFjdlZHSmUuanMiO2ltcG9ydHttIGFzIEFlLHUgYXMgU2V9ZnJvbSIuL3hVbzVzS0dpLmpzIjtmdW5jdGlvbiBoZShlKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ImRpdiIsdD1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtyZXR1cm4gdSgpKHtuYW1lOnQ/P2VlKGFlKGUucmVwbGFjZSgvX18vZywiLSIpKSkscHJvcHM6e3RhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpsfSwuLi5vKCl9LHNldHVwKGEsYyl7bGV0e3Nsb3RzOnN9PWM7cmV0dXJuKCk9Pnt2YXIgZDtyZXR1cm4gdGUoYS50YWcse2NsYXNzOltlLGEuY2xhc3NdLHN0eWxlOmEuc3R5bGV9LChkPXMuZGVmYXVsdCk9PW51bGw/dm9pZCAwOmQuY2FsbChzKSl9fX0pfWNvbnN0IFBlPUMoe3N0YXJ0OkJvb2xlYW4sZW5kOkJvb2xlYW4saWNvbjpnLGltYWdlOlN0cmluZyx0ZXh0OlN0cmluZywuLi5EKCksLi4ubygpLC4uLlMoKSwuLi5wKCksLi4ubmUoKSwuLi5BKCksLi4uTCgpLC4uLk4oe3ZhcmlhbnQ6ImZsYXQifSl9LCJWQXZhdGFyIiksXz11KCkoe25hbWU6IlZBdmF0YXIiLHByb3BzOlBlKCksc2V0dXAoZSxsKXtsZXR7c2xvdHM6dH09bDtjb25zdHt0aGVtZUNsYXNzZXM6YX09VChlKSx7Ym9yZGVyQ2xhc3NlczpjfT16KGUpLHtjb2xvckNsYXNzZXM6cyxjb2xvclN0eWxlczpkLHZhcmlhbnRDbGFzc2VzOnZ9PVIoZSkse2RlbnNpdHlDbGFzc2VzOm19PUYoZSkse3JvdW5kZWRDbGFzc2VzOnJ9PUUoZSkse3NpemVDbGFzc2VzOmksc2l6ZVN0eWxlczpWfT1sZShlKTtyZXR1cm4geSgoKT0+bihlLnRhZyx7Y2xhc3M6WyJ2LWF2YXRhciIseyJ2LWF2YXRhci0tc3RhcnQiOmUuc3RhcnQsInYtYXZhdGFyLS1lbmQiOmUuZW5kfSxhLnZhbHVlLGMudmFsdWUscy52YWx1ZSxtLnZhbHVlLHIudmFsdWUsaS52YWx1ZSx2LnZhbHVlLGUuY2xhc3NdLHN0eWxlOltkLnZhbHVlLFYudmFsdWUsZS5zdHlsZV19LHtkZWZhdWx0OigpPT5bdC5kZWZhdWx0P24oayx7a2V5OiJjb250ZW50LWRlZmF1bHRzIixkZWZhdWx0czp7VkltZzp7Y292ZXI6ITAsc3JjOmUuaW1hZ2V9LFZJY29uOntpY29uOmUuaWNvbn19fSx7ZGVmYXVsdDooKT0+W3QuZGVmYXVsdCgpXX0pOmUuaW1hZ2U/bihILHtrZXk6ImltYWdlIixzcmM6ZS5pbWFnZSxhbHQ6IiIsY292ZXI6ITB9LG51bGwpOmUuaWNvbj9uKEkse2tleToiaWNvbiIsaWNvbjplLmljb259LG51bGwpOmUudGV4dCxqKCExLCJ2LWF2YXRhciIpXX0pKSx7fX19KSx4ZT11KCkoe25hbWU6IlZDYXJkQWN0aW9ucyIscHJvcHM6bygpLHNldHVwKGUsbCl7bGV0e3Nsb3RzOnR9PWw7cmV0dXJuIHNlKHtWQnRuOntzbGltOiEwLHZhcmlhbnQ6InRleHQifX0pLHkoKCk9Pnt2YXIgYTtyZXR1cm4gbigiZGl2Iix7Y2xhc3M6WyJ2LWNhcmQtYWN0aW9ucyIsZS5jbGFzc10sc3R5bGU6ZS5zdHlsZX0sWyhhPXQuZGVmYXVsdCk9PW51bGw/dm9pZCAwOmEuY2FsbCh0KV0pfSkse319fSksQmU9Qyh7b3BhY2l0eTpbTnVtYmVyLFN0cmluZ10sLi4ubygpLC4uLkEoKX0sIlZDYXJkU3VidGl0bGUiKSxfZT11KCkoe25hbWU6IlZDYXJkU3VidGl0bGUiLHByb3BzOkJlKCksc2V0dXAoZSxsKXtsZXR7c2xvdHM6dH09bDtyZXR1cm4geSgoKT0+bihlLnRhZyx7Y2xhc3M6WyJ2LWNhcmQtc3VidGl0bGUiLGUuY2xhc3NdLHN0eWxlOlt7Ii0tdi1jYXJkLXN1YnRpdGxlLW9wYWNpdHkiOmUub3BhY2l0eX0sZS5zdHlsZV19LHQpKSx7fX19KSxMZT1oZSgidi1jYXJkLXRpdGxlIiksVGU9Qyh7YXBwZW5kQXZhdGFyOlN0cmluZyxhcHBlbmRJY29uOmcscHJlcGVuZEF2YXRhcjpTdHJpbmcscHJlcGVuZEljb246ZyxzdWJ0aXRsZTpbU3RyaW5nLE51bWJlcl0sdGl0bGU6W1N0cmluZyxOdW1iZXJdLC4uLm8oKSwuLi5TKCl9LCJWQ2FyZEl0ZW0iKSxEZT11KCkoe25hbWU6IlZDYXJkSXRlbSIscHJvcHM6VGUoKSxzZXR1cChlLGwpe2xldHtzbG90czp0fT1sO3JldHVybiB5KCgpPT57dmFyIHI7Y29uc3QgYT0hIShlLnByZXBlbmRBdmF0YXJ8fGUucHJlcGVuZEljb24pLGM9ISEoYXx8dC5wcmVwZW5kKSxzPSEhKGUuYXBwZW5kQXZhdGFyfHxlLmFwcGVuZEljb24pLGQ9ISEoc3x8dC5hcHBlbmQpLHY9ISEoZS50aXRsZSE9bnVsbHx8dC50aXRsZSksbT0hIShlLnN1YnRpdGxlIT1udWxsfHx0LnN1YnRpdGxlKTtyZXR1cm4gbigiZGl2Iix7Y2xhc3M6WyJ2LWNhcmQtaXRlbSIsZS5jbGFzc10sc3R5bGU6ZS5zdHlsZX0sW2MmJm4oImRpdiIse2tleToicHJlcGVuZCIsY2xhc3M6InYtY2FyZC1pdGVtX19wcmVwZW5kIn0sW3QucHJlcGVuZD9uKGsse2tleToicHJlcGVuZC1kZWZhdWx0cyIsZGlzYWJsZWQ6IWEsZGVmYXVsdHM6e1ZBdmF0YXI6e2RlbnNpdHk6ZS5kZW5zaXR5LGltYWdlOmUucHJlcGVuZEF2YXRhcn0sVkljb246e2RlbnNpdHk6ZS5kZW5zaXR5LGljb246ZS5wcmVwZW5kSWNvbn19fSx0LnByZXBlbmQpOm4oeCxudWxsLFtlLnByZXBlbmRBdmF0YXImJm4oXyx7a2V5OiJwcmVwZW5kLWF2YXRhciIsZGVuc2l0eTplLmRlbnNpdHksaW1hZ2U6ZS5wcmVwZW5kQXZhdGFyfSxudWxsKSxlLnByZXBlbmRJY29uJiZuKEkse2tleToicHJlcGVuZC1pY29uIixkZW5zaXR5OmUuZGVuc2l0eSxpY29uOmUucHJlcGVuZEljb259LG51bGwpXSldKSxuKCJkaXYiLHtjbGFzczoidi1jYXJkLWl0ZW1fX2NvbnRlbnQifSxbdiYmbihMZSx7a2V5OiJ0aXRsZSJ9LHtkZWZhdWx0OigpPT57dmFyIGk7cmV0dXJuWygoaT10LnRpdGxlKT09bnVsbD92b2lkIDA6aS5jYWxsKHQpKT8/ZS50aXRsZV19fSksbSYmbihfZSx7a2V5OiJzdWJ0aXRsZSJ9LHtkZWZhdWx0OigpPT57dmFyIGk7cmV0dXJuWygoaT10LnN1YnRpdGxlKT09bnVsbD92b2lkIDA6aS5jYWxsKHQpKT8/ZS5zdWJ0aXRsZV19fSksKHI9dC5kZWZhdWx0KT09bnVsbD92b2lkIDA6ci5jYWxsKHQpXSksZCYmbigiZGl2Iix7a2V5OiJhcHBlbmQiLGNsYXNzOiJ2LWNhcmQtaXRlbV9fYXBwZW5kIn0sW3QuYXBwZW5kP24oayx7a2V5OiJhcHBlbmQtZGVmYXVsdHMiLGRpc2FibGVkOiFzLGRlZmF1bHRzOntWQXZhdGFyOntkZW5zaXR5OmUuZGVuc2l0eSxpbWFnZTplLmFwcGVuZEF2YXRhcn0sVkljb246e2RlbnNpdHk6ZS5kZW5zaXR5LGljb246ZS5hcHBlbmRJY29ufX19LHQuYXBwZW5kKTpuKHgsbnVsbCxbZS5hcHBlbmRJY29uJiZuKEkse2tleToiYXBwZW5kLWljb24iLGRlbnNpdHk6ZS5kZW5zaXR5LGljb246ZS5hcHBlbmRJY29ufSxudWxsKSxlLmFwcGVuZEF2YXRhciYmbihfLHtrZXk6ImFwcGVuZC1hdmF0YXIiLGRlbnNpdHk6ZS5kZW5zaXR5LGltYWdlOmUuYXBwZW5kQXZhdGFyfSxudWxsKV0pXSldKX0pLHt9fX0pLE5lPUMoe2FwcGVuZEF2YXRhcjpTdHJpbmcsYXBwZW5kSWNvbjpnLGRpc2FibGVkOkJvb2xlYW4sZmxhdDpCb29sZWFuLGhvdmVyOkJvb2xlYW4saW1hZ2U6U3RyaW5nLGxpbms6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OnZvaWQgMH0scHJlcGVuZEF2YXRhcjpTdHJpbmcscHJlcGVuZEljb246ZyxyaXBwbGU6e3R5cGU6W0Jvb2xlYW4sT2JqZWN0XSxkZWZhdWx0OiEwfSxzdWJ0aXRsZTpbU3RyaW5nLE51bWJlcl0sdGV4dDpbU3RyaW5nLE51bWJlcl0sdGl0bGU6W1N0cmluZyxOdW1iZXJdLC4uLkQoKSwuLi5vKCksLi4uUygpLC4uLmZlKCksLi4ua2UoKSwuLi5yZSgpLC4uLnVlKCksLi4ub2UoKSwuLi5wKCksLi4uQWUoKSwuLi5BKCksLi4uTCgpLC4uLk4oe3ZhcmlhbnQ6ImVsZXZhdGVkIn0pfSwiVkNhcmQiKSxNZT11KCkoe25hbWU6IlZDYXJkIixkaXJlY3RpdmVzOntSaXBwbGU6Q2V9LHByb3BzOk5lKCksc2V0dXAoZSxsKXtsZXR7YXR0cnM6dCxzbG90czphfT1sO2NvbnN0e3RoZW1lQ2xhc3NlczpjfT1UKGUpLHtib3JkZXJDbGFzc2VzOnN9PXooZSkse2NvbG9yQ2xhc3NlczpkLGNvbG9yU3R5bGVzOnYsdmFyaWFudENsYXNzZXM6bX09UihlKSx7ZGVuc2l0eUNsYXNzZXM6cn09RihlKSx7ZGltZW5zaW9uU3R5bGVzOml9PWJlKGUpLHtlbGV2YXRpb25DbGFzc2VzOlZ9PVZlKGUpLHtsb2FkZXJDbGFzc2VzOk19PXZlKGUpLHtsb2NhdGlvblN0eWxlczpPfT1tZShlKSx7cG9zaXRpb25DbGFzc2VzOnd9PWdlKGUpLHtyb3VuZGVkQ2xhc3NlczpVfT1FKGUpLGY9U2UoZSx0KSxaPUIoKCk9PmUubGluayE9PSExJiZmLmlzTGluay52YWx1ZSksYj1CKCgpPT4hZS5kaXNhYmxlZCYmZS5saW5rIT09ITEmJihlLmxpbmt8fGYuaXNDbGlja2FibGUudmFsdWUpKTtyZXR1cm4geSgoKT0+e2NvbnN0ICQ9Wi52YWx1ZT8iYSI6ZS50YWcscT0hIShhLnRpdGxlfHxlLnRpdGxlIT1udWxsKSxHPSEhKGEuc3VidGl0bGV8fGUuc3VidGl0bGUhPW51bGwpLEo9cXx8RyxLPSEhKGEuYXBwZW5kfHxlLmFwcGVuZEF2YXRhcnx8ZS5hcHBlbmRJY29uKSxRPSEhKGEucHJlcGVuZHx8ZS5wcmVwZW5kQXZhdGFyfHxlLnByZXBlbmRJY29uKSxXPSEhKGEuaW1hZ2V8fGUuaW1hZ2UpLFg9Snx8UXx8SyxZPSEhKGEudGV4dHx8ZS50ZXh0IT1udWxsKTtyZXR1cm4gaWUobigkLGNlKHtjbGFzczpbInYtY2FyZCIseyJ2LWNhcmQtLWRpc2FibGVkIjplLmRpc2FibGVkLCJ2LWNhcmQtLWZsYXQiOmUuZmxhdCwidi1jYXJkLS1ob3ZlciI6ZS5ob3ZlciYmIShlLmRpc2FibGVkfHxlLmZsYXQpLCJ2LWNhcmQtLWxpbmsiOmIudmFsdWV9LGMudmFsdWUscy52YWx1ZSxkLnZhbHVlLHIudmFsdWUsVi52YWx1ZSxNLnZhbHVlLHcudmFsdWUsVS52YWx1ZSxtLnZhbHVlLGUuY2xhc3NdLHN0eWxlOlt2LnZhbHVlLGkudmFsdWUsTy52YWx1ZSxlLnN0eWxlXSxvbkNsaWNrOmIudmFsdWUmJmYubmF2aWdhdGUsdGFiaW5kZXg6ZS5kaXNhYmxlZD8tMTp2b2lkIDB9LGYubGlua1Byb3BzKSx7ZGVmYXVsdDooKT0+e3ZhciBoO3JldHVybltXJiZuKCJkaXYiLHtrZXk6ImltYWdlIixjbGFzczoidi1jYXJkX19pbWFnZSJ9LFthLmltYWdlP24oayx7a2V5OiJpbWFnZS1kZWZhdWx0cyIsZGlzYWJsZWQ6IWUuaW1hZ2UsZGVmYXVsdHM6e1ZJbWc6e2NvdmVyOiEwLHNyYzplLmltYWdlfX19LGEuaW1hZ2UpOm4oSCx7a2V5OiJpbWFnZS1pbWciLGNvdmVyOiEwLHNyYzplLmltYWdlfSxudWxsKV0pLG4oeWUse25hbWU6InYtY2FyZCIsYWN0aXZlOiEhZS5sb2FkaW5nLGNvbG9yOnR5cGVvZiBlLmxvYWRpbmc9PSJib29sZWFuIj92b2lkIDA6ZS5sb2FkaW5nfSx7ZGVmYXVsdDphLmxvYWRlcn0pLFgmJm4oRGUse2tleToiaXRlbSIscHJlcGVuZEF2YXRhcjplLnByZXBlbmRBdmF0YXIscHJlcGVuZEljb246ZS5wcmVwZW5kSWNvbix0aXRsZTplLnRpdGxlLHN1YnRpdGxlOmUuc3VidGl0bGUsYXBwZW5kQXZhdGFyOmUuYXBwZW5kQXZhdGFyLGFwcGVuZEljb246ZS5hcHBlbmRJY29ufSx7ZGVmYXVsdDphLml0ZW0scHJlcGVuZDphLnByZXBlbmQsdGl0bGU6YS50aXRsZSxzdWJ0aXRsZTphLnN1YnRpdGxlLGFwcGVuZDphLmFwcGVuZH0pLFkmJm4oSWUse2tleToidGV4dCJ9LHtkZWZhdWx0OigpPT57dmFyIFA7cmV0dXJuWygoUD1hLnRleHQpPT1udWxsP3ZvaWQgMDpQLmNhbGwoYSkpPz9lLnRleHRdfX0pLChoPWEuZGVmYXVsdCk9PW51bGw/dm9pZCAwOmguY2FsbChhKSxhLmFjdGlvbnMmJm4oeGUsbnVsbCx7ZGVmYXVsdDphLmFjdGlvbnN9KSxqKGIudmFsdWUsInYtY2FyZCIpXX19KSxbW2RlKCJyaXBwbGUiKSxiLnZhbHVlJiZlLnJpcHBsZV1dKX0pLHt9fX0pO2V4cG9ydHtNZSBhcyBWLF8gYXMgYSxMZSBhcyBiLGhlIGFzIGN9Owo="}},"time_used":47,"timings":{"blocked":21,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/WBDhfoJ7.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.537Z","timestamp":1785139669537,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/WBDhfoJ7.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"5e22-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 4957\r\nKeep-Alive: timeout=5, max=94\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":24098,"size_decoded":5308,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"774cbeeb3f935b4846b8863d9a5b9582","sha1":"de80b2a693b2feb4c6c520f9821fbdaadd841281","sha256":"33f1ce95955c9a84a54d391e5744c0b79f9a61ec9bb89165da4b86d9ab242e49","sha512":"aac0ada75f4ee775288a9cc3955dcf1cfc945204f361eaa013b484b31061938d9cf9364fa61d1959ad7516a961930d5ddf8dab5d5d67a6476962a25ec0699e09","ssdeep":"384:lIY5nbRdEtgPD9p47SXB4Yc8+D+kw9mg3gopxO:lD5nbnsaASXB4u+D+kwppU","tlshash":"a3b24047baf624316bb3f0788baf8055a662438bce787ce4799d59041f0c41c62b63de","first_seen":"2025-10-23T03:46:52.050118Z","last_seen":"2026-07-27T11:49:48.915472Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICAkIGFzIHgsCiAgYUcgYXMgWiwKICBhNyBhcyBSLAogIGE4IGFzIGVlLAogIGE5IGFzIEssCiAgYTAgYXMgRiwKICBhYSBhcyBsZSwKICBhaiBhcyBhZSwKICBhaSBhcyBkLAogIGE1IGFzIEUsCiAgZiBhcyBuLAogIGEyIGFzIFAsCiAgYXggYXMgZywKICBhSyBhcyBxLAogIGFVIGFzIG1lLAogIGFjIGFzIHllLAogIGJtIGFzIGJlLAogIGExIGFzIF8sCiAgcyBhcyBjLAogIEkgYXMgeiwKICBhZSBhcyB0ZSwKICBIIGFzIHAsCiAgWCBhcyBDZSwKICBGIGFzIE0sCiAgYW4gYXMgbmUsCiAgYWQgYXMga2UsCiAgYXIgYXMgVmUsCiAgUiBhcyBKLAogIHIgYXMgaGUsCiAgYjMgYXMgSWUsCiAgeCBhcyBnZSwKICBheSBhcyBPLAogIGE0IGFzIFNlLAogIGFoIGFzIFBlLAogIGFCIGFzIHhlLAogIGFnIGFzIEJlLAogIGEzIGFzIEFlLAp9IGZyb20gIi4vU20ybUNmREUuanMiOwppbXBvcnQgeyBiIGFzIEdlIH0gZnJvbSAiLi9CXzJGa1A4Uy5qcyI7CmltcG9ydCB7IG0gYXMgcGUsIFYgYXMgUSB9IGZyb20gIi4vQ0R4QjVuT3kuanMiOwppbXBvcnQgewogIGQgYXMgX2UsCiAgdSBhcyBGZSwKICBiIGFzIERlLAogIG0gYXMgVGUsCiAgUiBhcyBvZSwKICBjIGFzICRlLAogIGEgYXMgd2UsCiAgViBhcyBMLAp9IGZyb20gIi4vQ011VVRsUzIuanMiOwppbXBvcnQgewogIGYgYXMgaWUsCiAgZSBhcyBMZSwKICBhIGFzIHVlLAogIG8gYXMgUmUsCiAgaiBhcyBFZSwKICB1IGFzIGNlLAogIG4gYXMgVWUsCn0gZnJvbSAiLi9aZk5aaXlDbS5qcyI7CmltcG9ydCB7IGEgYXMgamUsIGIgYXMgT2UgfSBmcm9tICIuL0I4VHhUeWFrLmpzIjsKaW1wb3J0IHsgbSBhcyB6ZSwgdSBhcyBNZSB9IGZyb20gIi4veFVvNXNLR2kuanMiOwppbXBvcnQgeyBhIGFzIFcgfSBmcm9tICIuL0JJcDUtM0VLLmpzIjsKaW1wb3J0IHsgaiBhcyBLZSB9IGZyb20gIi4vQ2hFckpuMDcuanMiOwpjb25zdCBzZSA9IFN5bWJvbC5mb3IoInZ1ZXRpZnk6di1jaGlwLWdyb3VwIiksCiAgSGUgPSB4KAogICAgewogICAgICBjb2x1bW46IEJvb2xlYW4sCiAgICAgIGZpbHRlcjogQm9vbGVhbiwKICAgICAgdmFsdWVDb21wYXJhdG9yOiB7IHR5cGU6IEZ1bmN0aW9uLCBkZWZhdWx0OiBaIH0sCiAgICAgIC4uLnBlKCksCiAgICAgIC4uLlIoKSwKICAgICAgLi4uX2UoeyBzZWxlY3RlZENsYXNzOiAidi1jaGlwLS1zZWxlY3RlZCIgfSksCiAgICAgIC4uLmVlKCksCiAgICAgIC4uLksoKSwKICAgICAgLi4uaWUoeyB2YXJpYW50OiAidG9uYWwiIH0pLAogICAgfSwKICAgICJWQ2hpcEdyb3VwIgogICksCiAgb2wgPSBGKCkoewogICAgbmFtZTogIlZDaGlwR3JvdXAiLAogICAgcHJvcHM6IEhlKCksCiAgICBlbWl0czogeyAidXBkYXRlOm1vZGVsVmFsdWUiOiAoZSkgPT4gITAgfSwKICAgIHNldHVwKGUsIHMpIHsKICAgICAgbGV0IHsgc2xvdHM6IHIgfSA9IHM7CiAgICAgIGNvbnN0IHsgdGhlbWVDbGFzc2VzOiB0IH0gPSBsZShlKSwKICAgICAgICB7IGlzU2VsZWN0ZWQ6IGEsIHNlbGVjdDogbSwgbmV4dDogdiwgcHJldjogbywgc2VsZWN0ZWQ6IHUgfSA9IEZlKGUsIHNlKTsKICAgICAgcmV0dXJuICgKICAgICAgICBhZSh7CiAgICAgICAgICBWQ2hpcDogewogICAgICAgICAgICBjb2xvcjogZChlLCAiY29sb3IiKSwKICAgICAgICAgICAgZGlzYWJsZWQ6IGQoZSwgImRpc2FibGVkIiksCiAgICAgICAgICAgIGZpbHRlcjogZChlLCAiZmlsdGVyIiksCiAgICAgICAgICAgIHZhcmlhbnQ6IGQoZSwgInZhcmlhbnQiKSwKICAgICAgICAgIH0sCiAgICAgICAgfSksCiAgICAgICAgRSgoKSA9PiB7CiAgICAgICAgICBjb25zdCBiID0gUS5maWx0ZXJQcm9wcyhlKTsKICAgICAgICAgIHJldHVybiBuKAogICAgICAgICAgICBRLAogICAgICAgICAgICBQKGIsIHsKICAgICAgICAgICAgICBjbGFzczogWwogICAgICAgICAgICAgICAgInYtY2hpcC1ncm91cCIsCiAgICAgICAgICAgICAgICB7ICJ2LWNoaXAtZ3JvdXAtLWNvbHVtbiI6IGUuY29sdW1uIH0sCiAgICAgICAgICAgICAgICB0LnZhbHVlLAogICAgICAgICAgICAgICAgZS5jbGFzcywKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHN0eWxlOiBlLnN0eWxlLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHsKICAgICAgICAgICAgICAgIHZhciBrOwogICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgKGsgPSByLmRlZmF1bHQpID09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgIDogay5jYWxsKHIsIHsKICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZDogYSwKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiBtLAogICAgICAgICAgICAgICAgICAgICAgICBuZXh0OiB2LAogICAgICAgICAgICAgICAgICAgICAgICBwcmV2OiBvLAogICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9CiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIHt9CiAgICAgICk7CiAgICB9LAogIH0pLAogIE5lID0geCgKICAgIHsKICAgICAgYWN0aXZlQ2xhc3M6IFN0cmluZywKICAgICAgYXBwZW5kQXZhdGFyOiBTdHJpbmcsCiAgICAgIGFwcGVuZEljb246IGcsCiAgICAgIGNsb3NhYmxlOiBCb29sZWFuLAogICAgICBjbG9zZUljb246IHsgdHlwZTogZywgZGVmYXVsdDogIiRkZWxldGUiIH0sCiAgICAgIGNsb3NlTGFiZWw6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiJHZ1ZXRpZnkuY2xvc2UiIH0sCiAgICAgIGRyYWdnYWJsZTogQm9vbGVhbiwKICAgICAgZmlsdGVyOiBCb29sZWFuLAogICAgICBmaWx0ZXJJY29uOiB7IHR5cGU6IGcsIGRlZmF1bHQ6ICIkY29tcGxldGUiIH0sCiAgICAgIGxhYmVsOiBCb29sZWFuLAogICAgICBsaW5rOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCB9LAogICAgICBwaWxsOiBCb29sZWFuLAogICAgICBwcmVwZW5kQXZhdGFyOiBTdHJpbmcsCiAgICAgIHByZXBlbmRJY29uOiBnLAogICAgICByaXBwbGU6IHsgdHlwZTogW0Jvb2xlYW4sIE9iamVjdF0sIGRlZmF1bHQ6ICEwIH0sCiAgICAgIHRleHQ6IFN0cmluZywKICAgICAgbW9kZWxWYWx1ZTogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMCB9LAogICAgICBvbkNsaWNrOiBxKCksCiAgICAgIG9uQ2xpY2tPbmNlOiBxKCksCiAgICAgIC4uLkxlKCksCiAgICAgIC4uLlIoKSwKICAgICAgLi4udWUoKSwKICAgICAgLi4uRGUoKSwKICAgICAgLi4uVGUoKSwKICAgICAgLi4uamUoKSwKICAgICAgLi4uemUoKSwKICAgICAgLi4ubWUoKSwKICAgICAgLi4uZWUoeyB0YWc6ICJzcGFuIiB9KSwKICAgICAgLi4uSygpLAogICAgICAuLi5pZSh7IHZhcmlhbnQ6ICJ0b25hbCIgfSksCiAgICB9LAogICAgIlZDaGlwIgogICksCiAgaWwgPSBGKCkoewogICAgbmFtZTogIlZDaGlwIiwKICAgIGRpcmVjdGl2ZXM6IHsgUmlwcGxlOiBvZSB9LAogICAgcHJvcHM6IE5lKCksCiAgICBlbWl0czogewogICAgICAiY2xpY2s6Y2xvc2UiOiAoZSkgPT4gITAsCiAgICAgICJ1cGRhdGU6bW9kZWxWYWx1ZSI6IChlKSA9PiAhMCwKICAgICAgImdyb3VwOnNlbGVjdGVkIjogKGUpID0+ICEwLAogICAgICBjbGljazogKGUpID0+ICEwLAogICAgfSwKICAgIHNldHVwKGUsIHMpIHsKICAgICAgbGV0IHsgYXR0cnM6IHIsIGVtaXQ6IHQsIHNsb3RzOiBhIH0gPSBzOwogICAgICBjb25zdCB7IHQ6IG0gfSA9IHllKCksCiAgICAgICAgeyBib3JkZXJDbGFzc2VzOiB2IH0gPSBSZShlKSwKICAgICAgICB7IGNvbG9yQ2xhc3NlczogbywgY29sb3JTdHlsZXM6IHUsIHZhcmlhbnRDbGFzc2VzOiBiIH0gPSBFZShlKSwKICAgICAgICB7IGRlbnNpdHlDbGFzc2VzOiBrIH0gPSBjZShlKSwKICAgICAgICB7IGVsZXZhdGlvbkNsYXNzZXM6IFMgfSA9ICRlKGUpLAogICAgICAgIHsgcm91bmRlZENsYXNzZXM6IEIgfSA9IE9lKGUpLAogICAgICAgIHsgc2l6ZUNsYXNzZXM6IFYgfSA9IGJlKGUpLAogICAgICAgIHsgdGhlbWVDbGFzc2VzOiB5IH0gPSBsZShlKSwKICAgICAgICBDID0gXyhlLCAibW9kZWxWYWx1ZSIpLAogICAgICAgIGwgPSB3ZShlLCBzZSwgITEpLAogICAgICAgIGYgPSBNZShlLCByKSwKICAgICAgICBEID0gYygoKSA9PiBlLmxpbmsgIT09ICExICYmIGYuaXNMaW5rLnZhbHVlKSwKICAgICAgICBoID0gYygKICAgICAgICAgICgpID0+CiAgICAgICAgICAgICFlLmRpc2FibGVkICYmCiAgICAgICAgICAgIGUubGluayAhPT0gITEgJiYKICAgICAgICAgICAgKCEhbCB8fCBlLmxpbmsgfHwgZi5pc0NsaWNrYWJsZS52YWx1ZSkKICAgICAgICApLAogICAgICAgIFQgPSBjKCgpID0+ICh7CiAgICAgICAgICAiYXJpYS1sYWJlbCI6IG0oZS5jbG9zZUxhYmVsKSwKICAgICAgICAgIG9uQ2xpY2soaSkgewogICAgICAgICAgICBpLnByZXZlbnREZWZhdWx0KCksCiAgICAgICAgICAgICAgaS5zdG9wUHJvcGFnYXRpb24oKSwKICAgICAgICAgICAgICAoQy52YWx1ZSA9ICExKSwKICAgICAgICAgICAgICB0KCJjbGljazpjbG9zZSIsIGkpOwogICAgICAgICAgfSwKICAgICAgICB9KSk7CiAgICAgIGZ1bmN0aW9uICQoaSkgewogICAgICAgIHZhciBJOwogICAgICAgIHQoImNsaWNrIiwgaSksCiAgICAgICAgICBoLnZhbHVlICYmCiAgICAgICAgICAgICgoSSA9IGYubmF2aWdhdGUpID09IG51bGwgfHwgSS5jYWxsKGYsIGkpLCBsID09IG51bGwgfHwgbC50b2dnbGUoKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gVShpKSB7CiAgICAgICAgKGkua2V5ID09PSAiRW50ZXIiIHx8IGkua2V5ID09PSAiICIpICYmIChpLnByZXZlbnREZWZhdWx0KCksICQoaSkpOwogICAgICB9CiAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgdmFyIE47CiAgICAgICAgY29uc3QgaSA9IGYuaXNMaW5rLnZhbHVlID8gImEiIDogZS50YWcsCiAgICAgICAgICBJID0gISEoZS5hcHBlbmRJY29uIHx8IGUuYXBwZW5kQXZhdGFyKSwKICAgICAgICAgIGogPSAhIShJIHx8IGEuYXBwZW5kKSwKICAgICAgICAgIHcgPSAhIShhLmNsb3NlIHx8IGUuY2xvc2FibGUpLAogICAgICAgICAgQSA9ICEhKGEuZmlsdGVyIHx8IGUuZmlsdGVyKSAmJiBsLAogICAgICAgICAgRyA9ICEhKGUucHJlcGVuZEljb24gfHwgZS5wcmVwZW5kQXZhdGFyKSwKICAgICAgICAgIGZlID0gISEoRyB8fCBhLnByZXBlbmQpLAogICAgICAgICAgSCA9ICFsIHx8IGwuaXNTZWxlY3RlZC52YWx1ZTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgQy52YWx1ZSAmJgogICAgICAgICAgeigKICAgICAgICAgICAgbigKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIFAoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgICAgICAgInYtY2hpcCIsCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgInYtY2hpcC0tZGlzYWJsZWQiOiBlLmRpc2FibGVkLAogICAgICAgICAgICAgICAgICAgICAgInYtY2hpcC0tbGFiZWwiOiBlLmxhYmVsLAogICAgICAgICAgICAgICAgICAgICAgInYtY2hpcC0tbGluayI6IGgudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAidi1jaGlwLS1maWx0ZXIiOiBBLAogICAgICAgICAgICAgICAgICAgICAgInYtY2hpcC0tcGlsbCI6IGUucGlsbCwKICAgICAgICAgICAgICAgICAgICAgIFtgJHtlLmFjdGl2ZUNsYXNzfWBdOgogICAgICAgICAgICAgICAgICAgICAgICBlLmFjdGl2ZUNsYXNzICYmCiAgICAgICAgICAgICAgICAgICAgICAgICgoTiA9IGYuaXNBY3RpdmUpID09IG51bGwgPyB2b2lkIDAgOiBOLnZhbHVlKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHkudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgdi52YWx1ZSwKICAgICAgICAgICAgICAgICAgICBIID8gby52YWx1ZSA6IHZvaWQgMCwKICAgICAgICAgICAgICAgICAgICBrLnZhbHVlLAogICAgICAgICAgICAgICAgICAgIFMudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgQi52YWx1ZSwKICAgICAgICAgICAgICAgICAgICBWLnZhbHVlLAogICAgICAgICAgICAgICAgICAgIGIudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgbCA9PSBudWxsID8gdm9pZCAwIDogbC5zZWxlY3RlZENsYXNzLnZhbHVlLAogICAgICAgICAgICAgICAgICAgIGUuY2xhc3MsCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgIHN0eWxlOiBbSCA/IHUudmFsdWUgOiB2b2lkIDAsIGUuc3R5bGVdLAogICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZS5kaXNhYmxlZCB8fCB2b2lkIDAsCiAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZTogZS5kcmFnZ2FibGUsCiAgICAgICAgICAgICAgICAgIHRhYmluZGV4OiBoLnZhbHVlID8gMCA6IHZvaWQgMCwKICAgICAgICAgICAgICAgICAgb25DbGljazogJCwKICAgICAgICAgICAgICAgICAgb25LZXlkb3duOiBoLnZhbHVlICYmICFELnZhbHVlICYmIFUsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZi5saW5rUHJvcHMKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHsKICAgICAgICAgICAgICAgICAgdmFyIFg7CiAgICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgVWUoaC52YWx1ZSwgInYtY2hpcCIpLAogICAgICAgICAgICAgICAgICAgIEEgJiYKICAgICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAgIEdlLAogICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogImZpbHRlciIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHooCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oImRpdiIsIHsgY2xhc3M6ICJ2LWNoaXBfX2ZpbHRlciIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZmlsdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJmaWx0ZXItZGVmYXVsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFlLmZpbHRlckljb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0czogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWSWNvbjogeyBpY29uOiBlLmZpbHRlckljb24gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmZpbHRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJmaWx0ZXItaWNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBlLmZpbHRlckljb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW0NlLCBsLmlzU2VsZWN0ZWQudmFsdWVdXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIGZlICYmCiAgICAgICAgICAgICAgICAgICAgICBuKCJkaXYiLCB7IGtleTogInByZXBlbmQiLCBjbGFzczogInYtY2hpcF9fcHJlcGVuZCIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgICBhLnByZXBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICA/IG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJwcmVwZW5kLWRlZmF1bHRzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogIUcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBdmF0YXI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGUucHJlcGVuZEF2YXRhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6ICEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZJY29uOiB7IGljb246IGUucHJlcGVuZEljb24sIHN0YXJ0OiAhMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJlcGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogbihNLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJlcGVuZEljb24gJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAicHJlcGVuZC1pY29uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogZS5wcmVwZW5kSWNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6ICEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXBlbmRBdmF0YXIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAicHJlcGVuZC1hdmF0YXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTogZS5wcmVwZW5kQXZhdGFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJ2LWNoaXBfX2NvbnRlbnQiLCAiZGF0YS1uby1hY3RpdmF0b3IiOiAiIiB9LAogICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAoKFggPSBhLmRlZmF1bHQpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgIDogWC5jYWxsKGEsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID09IG51bGwgPyB2b2lkIDAgOiBsLmlzU2VsZWN0ZWQudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCA9PSBudWxsID8gdm9pZCAwIDogbC5zZWxlY3RlZENsYXNzLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Q6IGwgPT0gbnVsbCA/IHZvaWQgMCA6IGwuc2VsZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGU6IGwgPT0gbnVsbCA/IHZvaWQgMCA6IGwudG9nZ2xlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbCA9PSBudWxsID8gdm9pZCAwIDogbC52YWx1ZS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGUuZGlzYWJsZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkgPz8gZS50ZXh0LAogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgaiAmJgogICAgICAgICAgICAgICAgICAgICAgbigiZGl2IiwgeyBrZXk6ICJhcHBlbmQiLCBjbGFzczogInYtY2hpcF9fYXBwZW5kIiB9LCBbCiAgICAgICAgICAgICAgICAgICAgICAgIGEuYXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAiYXBwZW5kLWRlZmF1bHRzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogIUksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBdmF0YXI6IHsgZW5kOiAhMCwgaW1hZ2U6IGUuYXBwZW5kQXZhdGFyIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWSWNvbjogeyBlbmQ6ICEwLCBpY29uOiBlLmFwcGVuZEljb24gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmFwcGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogbihNLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuYXBwZW5kSWNvbiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJhcHBlbmQtaWNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGUuYXBwZW5kSWNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5hcHBlbmRBdmF0YXIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAiYXBwZW5kLWF2YXRhciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlOiBlLmFwcGVuZEF2YXRhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgdyAmJgogICAgICAgICAgICAgICAgICAgICAgbigKICAgICAgICAgICAgICAgICAgICAgICAgImJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIFAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAiY2xvc2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJ2LWNoaXBfX2Nsb3NlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJidXR0b24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtdGVzdGlkIjogImNsb3NlLWNoaXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVC52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgYS5jbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAiY2xvc2UtZGVmYXVsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkljb246IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBlLmNsb3NlSWNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAieC1zbWFsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5jbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJjbG9zZS1pY29uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGUuY2xvc2VJY29uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogIngtc21hbGwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICksCiAgICAgICAgICAgIFtbdGUoInJpcHBsZSIpLCBoLnZhbHVlICYmIGUucmlwcGxlLCBudWxsXV0KICAgICAgICAgICkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9KSwKICByZSA9IFN5bWJvbC5mb3IoInZ1ZXRpZnk6c2VsZWN0aW9uLWNvbnRyb2wtZ3JvdXAiKSwKICBkZSA9IHgoCiAgICB7CiAgICAgIGNvbG9yOiBTdHJpbmcsCiAgICAgIGRpc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IG51bGwgfSwKICAgICAgZGVmYXVsdHNUYXJnZXQ6IFN0cmluZywKICAgICAgZXJyb3I6IEJvb2xlYW4sCiAgICAgIGlkOiBTdHJpbmcsCiAgICAgIGlubGluZTogQm9vbGVhbiwKICAgICAgZmFsc2VJY29uOiBnLAogICAgICB0cnVlSWNvbjogZywKICAgICAgcmlwcGxlOiB7IHR5cGU6IFtCb29sZWFuLCBPYmplY3RdLCBkZWZhdWx0OiAhMCB9LAogICAgICBtdWx0aXBsZTogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiBudWxsIH0sCiAgICAgIG5hbWU6IFN0cmluZywKICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogbnVsbCB9LAogICAgICBtb2RlbFZhbHVlOiBudWxsLAogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIHZhbHVlQ29tcGFyYXRvcjogeyB0eXBlOiBGdW5jdGlvbiwgZGVmYXVsdDogWiB9LAogICAgICAuLi5SKCksCiAgICAgIC4uLnVlKCksCiAgICAgIC4uLksoKSwKICAgIH0sCiAgICAiU2VsZWN0aW9uQ29udHJvbEdyb3VwIgogICksCiAgWGUgPSB4KAogICAgeyAuLi5kZSh7IGRlZmF1bHRzVGFyZ2V0OiAiVlNlbGVjdGlvbkNvbnRyb2wiIH0pIH0sCiAgICAiVlNlbGVjdGlvbkNvbnRyb2xHcm91cCIKICApOwpGKCkoewogIG5hbWU6ICJWU2VsZWN0aW9uQ29udHJvbEdyb3VwIiwKICBwcm9wczogWGUoKSwKICBlbWl0czogeyAidXBkYXRlOm1vZGVsVmFsdWUiOiAoZSkgPT4gITAgfSwKICBzZXR1cChlLCBzKSB7CiAgICBsZXQgeyBzbG90czogciB9ID0gczsKICAgIGNvbnN0IHQgPSBfKGUsICJtb2RlbFZhbHVlIiksCiAgICAgIGEgPSBuZSgpLAogICAgICBtID0gYygoKSA9PiBlLmlkIHx8IGB2LXNlbGVjdGlvbi1jb250cm9sLWdyb3VwLSR7YX1gKSwKICAgICAgdiA9IGMoKCkgPT4gZS5uYW1lIHx8IG0udmFsdWUpLAogICAgICBvID0gbmV3IFNldCgpOwogICAgcmV0dXJuICgKICAgICAga2UocmUsIHsKICAgICAgICBtb2RlbFZhbHVlOiB0LAogICAgICAgIGZvcmNlVXBkYXRlOiAoKSA9PiB7CiAgICAgICAgICBvLmZvckVhY2goKHUpID0+IHUoKSk7CiAgICAgICAgfSwKICAgICAgICBvbkZvcmNlVXBkYXRlOiAodSkgPT4gewogICAgICAgICAgby5hZGQodSksCiAgICAgICAgICAgIFZlKCgpID0+IHsKICAgICAgICAgICAgICBvLmRlbGV0ZSh1KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKICAgICAgfSksCiAgICAgIGFlKHsKICAgICAgICBbZS5kZWZhdWx0c1RhcmdldF06IHsKICAgICAgICAgIGNvbG9yOiBkKGUsICJjb2xvciIpLAogICAgICAgICAgZGlzYWJsZWQ6IGQoZSwgImRpc2FibGVkIiksCiAgICAgICAgICBkZW5zaXR5OiBkKGUsICJkZW5zaXR5IiksCiAgICAgICAgICBlcnJvcjogZChlLCAiZXJyb3IiKSwKICAgICAgICAgIGlubGluZTogZChlLCAiaW5saW5lIiksCiAgICAgICAgICBtb2RlbFZhbHVlOiB0LAogICAgICAgICAgbXVsdGlwbGU6IGMoCiAgICAgICAgICAgICgpID0+ICEhZS5tdWx0aXBsZSB8fCAoZS5tdWx0aXBsZSA9PSBudWxsICYmIEFycmF5LmlzQXJyYXkodC52YWx1ZSkpCiAgICAgICAgICApLAogICAgICAgICAgbmFtZTogdiwKICAgICAgICAgIGZhbHNlSWNvbjogZChlLCAiZmFsc2VJY29uIiksCiAgICAgICAgICB0cnVlSWNvbjogZChlLCAidHJ1ZUljb24iKSwKICAgICAgICAgIHJlYWRvbmx5OiBkKGUsICJyZWFkb25seSIpLAogICAgICAgICAgcmlwcGxlOiBkKGUsICJyaXBwbGUiKSwKICAgICAgICAgIHR5cGU6IGQoZSwgInR5cGUiKSwKICAgICAgICAgIHZhbHVlQ29tcGFyYXRvcjogZChlLCAidmFsdWVDb21wYXJhdG9yIiksCiAgICAgICAgfSwKICAgICAgfSksCiAgICAgIEUoKCkgPT4gewogICAgICAgIHZhciB1OwogICAgICAgIHJldHVybiBuKAogICAgICAgICAgImRpdiIsCiAgICAgICAgICB7CiAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgInYtc2VsZWN0aW9uLWNvbnRyb2wtZ3JvdXAiLAogICAgICAgICAgICAgIHsgInYtc2VsZWN0aW9uLWNvbnRyb2wtZ3JvdXAtLWlubGluZSI6IGUuaW5saW5lIH0sCiAgICAgICAgICAgICAgZS5jbGFzcywKICAgICAgICAgICAgXSwKICAgICAgICAgICAgc3R5bGU6IGUuc3R5bGUsCiAgICAgICAgICAgIHJvbGU6IGUudHlwZSA9PT0gInJhZGlvIiA/ICJyYWRpb2dyb3VwIiA6IHZvaWQgMCwKICAgICAgICAgIH0sCiAgICAgICAgICBbKHUgPSByLmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiB1LmNhbGwocildCiAgICAgICAgKTsKICAgICAgfSksCiAgICAgIHt9CiAgICApOwogIH0sCn0pOwpjb25zdCB2ZSA9IHgoCiAgewogICAgbGFiZWw6IFN0cmluZywKICAgIGJhc2VDb2xvcjogU3RyaW5nLAogICAgdHJ1ZVZhbHVlOiBudWxsLAogICAgZmFsc2VWYWx1ZTogbnVsbCwKICAgIHZhbHVlOiBudWxsLAogICAgLi4uUigpLAogICAgLi4uZGUoKSwKICB9LAogICJWU2VsZWN0aW9uQ29udHJvbCIKKTsKZnVuY3Rpb24gcWUoZSkgewogIGNvbnN0IHMgPSBnZShyZSwgdm9pZCAwKSwKICAgIHsgZGVuc2l0eUNsYXNzZXM6IHIgfSA9IGNlKGUpLAogICAgdCA9IF8oZSwgIm1vZGVsVmFsdWUiKSwKICAgIGEgPSBjKCgpID0+CiAgICAgIGUudHJ1ZVZhbHVlICE9PSB2b2lkIDAgPyBlLnRydWVWYWx1ZSA6IGUudmFsdWUgIT09IHZvaWQgMCA/IGUudmFsdWUgOiAhMAogICAgKSwKICAgIG0gPSBjKCgpID0+IChlLmZhbHNlVmFsdWUgIT09IHZvaWQgMCA/IGUuZmFsc2VWYWx1ZSA6ICExKSksCiAgICB2ID0gYygoKSA9PiAhIWUubXVsdGlwbGUgfHwgKGUubXVsdGlwbGUgPT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KHQudmFsdWUpKSksCiAgICBvID0gYyh7CiAgICAgIGdldCgpIHsKICAgICAgICBjb25zdCBWID0gcyA/IHMubW9kZWxWYWx1ZS52YWx1ZSA6IHQudmFsdWU7CiAgICAgICAgcmV0dXJuIHYudmFsdWUKICAgICAgICAgID8gTyhWKS5zb21lKCh5KSA9PiBlLnZhbHVlQ29tcGFyYXRvcih5LCBhLnZhbHVlKSkKICAgICAgICAgIDogZS52YWx1ZUNvbXBhcmF0b3IoViwgYS52YWx1ZSk7CiAgICAgIH0sCiAgICAgIHNldChWKSB7CiAgICAgICAgaWYgKGUucmVhZG9ubHkpIHJldHVybjsKICAgICAgICBjb25zdCB5ID0gViA/IGEudmFsdWUgOiBtLnZhbHVlOwogICAgICAgIGxldCBDID0geTsKICAgICAgICB2LnZhbHVlICYmCiAgICAgICAgICAoQyA9IFYKICAgICAgICAgICAgPyBbLi4uTyh0LnZhbHVlKSwgeV0KICAgICAgICAgICAgOiBPKHQudmFsdWUpLmZpbHRlcigobCkgPT4gIWUudmFsdWVDb21wYXJhdG9yKGwsIGEudmFsdWUpKSksCiAgICAgICAgICBzID8gKHMubW9kZWxWYWx1ZS52YWx1ZSA9IEMpIDogKHQudmFsdWUgPSBDKTsKICAgICAgfSwKICAgIH0pLAogICAgeyB0ZXh0Q29sb3JDbGFzc2VzOiB1LCB0ZXh0Q29sb3JTdHlsZXM6IGIgfSA9IFNlKAogICAgICBjKCgpID0+IHsKICAgICAgICBpZiAoIShlLmVycm9yIHx8IGUuZGlzYWJsZWQpKSByZXR1cm4gby52YWx1ZSA/IGUuY29sb3IgOiBlLmJhc2VDb2xvcjsKICAgICAgfSkKICAgICksCiAgICB7IGJhY2tncm91bmRDb2xvckNsYXNzZXM6IGssIGJhY2tncm91bmRDb2xvclN0eWxlczogUyB9ID0gUGUoCiAgICAgIGMoKCkgPT4gKG8udmFsdWUgJiYgIWUuZXJyb3IgJiYgIWUuZGlzYWJsZWQgPyBlLmNvbG9yIDogZS5iYXNlQ29sb3IpKQogICAgKSwKICAgIEIgPSBjKCgpID0+IChvLnZhbHVlID8gZS50cnVlSWNvbiA6IGUuZmFsc2VJY29uKSk7CiAgcmV0dXJuIHsKICAgIGdyb3VwOiBzLAogICAgZGVuc2l0eUNsYXNzZXM6IHIsCiAgICB0cnVlVmFsdWU6IGEsCiAgICBmYWxzZVZhbHVlOiBtLAogICAgbW9kZWw6IG8sCiAgICB0ZXh0Q29sb3JDbGFzc2VzOiB1LAogICAgdGV4dENvbG9yU3R5bGVzOiBiLAogICAgYmFja2dyb3VuZENvbG9yQ2xhc3NlczogaywKICAgIGJhY2tncm91bmRDb2xvclN0eWxlczogUywKICAgIGljb246IEIsCiAgfTsKfQpjb25zdCBZID0gRigpKHsKICAgIG5hbWU6ICJWU2VsZWN0aW9uQ29udHJvbCIsCiAgICBkaXJlY3RpdmVzOiB7IFJpcHBsZTogb2UgfSwKICAgIGluaGVyaXRBdHRyczogITEsCiAgICBwcm9wczogdmUoKSwKICAgIGVtaXRzOiB7ICJ1cGRhdGU6bW9kZWxWYWx1ZSI6IChlKSA9PiAhMCB9LAogICAgc2V0dXAoZSwgcykgewogICAgICBsZXQgeyBhdHRyczogciwgc2xvdHM6IHQgfSA9IHM7CiAgICAgIGNvbnN0IHsKICAgICAgICAgIGdyb3VwOiBhLAogICAgICAgICAgZGVuc2l0eUNsYXNzZXM6IG0sCiAgICAgICAgICBpY29uOiB2LAogICAgICAgICAgbW9kZWw6IG8sCiAgICAgICAgICB0ZXh0Q29sb3JDbGFzc2VzOiB1LAogICAgICAgICAgdGV4dENvbG9yU3R5bGVzOiBiLAogICAgICAgICAgYmFja2dyb3VuZENvbG9yQ2xhc3NlczogaywKICAgICAgICAgIGJhY2tncm91bmRDb2xvclN0eWxlczogUywKICAgICAgICAgIHRydWVWYWx1ZTogQiwKICAgICAgICB9ID0gcWUoZSksCiAgICAgICAgViA9IG5lKCksCiAgICAgICAgeSA9IEooITEpLAogICAgICAgIEMgPSBKKCExKSwKICAgICAgICBsID0gaGUoKSwKICAgICAgICBmID0gYygoKSA9PiBlLmlkIHx8IGBpbnB1dC0ke1Z9YCksCiAgICAgICAgRCA9IGMoKCkgPT4gIWUuZGlzYWJsZWQgJiYgIWUucmVhZG9ubHkpOwogICAgICBhID09IG51bGwgfHwKICAgICAgICBhLm9uRm9yY2VVcGRhdGUoKCkgPT4gewogICAgICAgICAgbC52YWx1ZSAmJiAobC52YWx1ZS5jaGVja2VkID0gby52YWx1ZSk7CiAgICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIGgoaSkgewogICAgICAgIEQudmFsdWUgJiYKICAgICAgICAgICgoeS52YWx1ZSA9ICEwKSwKICAgICAgICAgIHhlKGkudGFyZ2V0LCAiOmZvY3VzLXZpc2libGUiKSAhPT0gITEgJiYgKEMudmFsdWUgPSAhMCkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIFQoKSB7CiAgICAgICAgKHkudmFsdWUgPSAhMSksIChDLnZhbHVlID0gITEpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uICQoaSkgewogICAgICAgIGkuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gVShpKSB7CiAgICAgICAgaWYgKCFELnZhbHVlKSB7CiAgICAgICAgICBsLnZhbHVlICYmIChsLnZhbHVlLmNoZWNrZWQgPSBvLnZhbHVlKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZS5yZWFkb25seSAmJiBhICYmIEJlKCgpID0+IGEuZm9yY2VVcGRhdGUoKSksCiAgICAgICAgICAoby52YWx1ZSA9IGkudGFyZ2V0LmNoZWNrZWQpOwogICAgICB9CiAgICAgIHJldHVybiAoCiAgICAgICAgRSgoKSA9PiB7CiAgICAgICAgICB2YXIgQSwgRzsKICAgICAgICAgIGNvbnN0IGkgPSB0LmxhYmVsCiAgICAgICAgICAgICAgPyB0LmxhYmVsKHsgbGFiZWw6IGUubGFiZWwsIHByb3BzOiB7IGZvcjogZi52YWx1ZSB9IH0pCiAgICAgICAgICAgICAgOiBlLmxhYmVsLAogICAgICAgICAgICBbSSwgal0gPSBJZShyKSwKICAgICAgICAgICAgdyA9IG4oCiAgICAgICAgICAgICAgImlucHV0IiwKICAgICAgICAgICAgICBQKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICByZWY6IGwsCiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IG8udmFsdWUsCiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIWUuZGlzYWJsZWQsCiAgICAgICAgICAgICAgICAgIGlkOiBmLnZhbHVlLAogICAgICAgICAgICAgICAgICBvbkJsdXI6IFQsCiAgICAgICAgICAgICAgICAgIG9uRm9jdXM6IGgsCiAgICAgICAgICAgICAgICAgIG9uSW5wdXQ6IFUsCiAgICAgICAgICAgICAgICAgICJhcmlhLWRpc2FibGVkIjogISFlLmRpc2FibGVkLAogICAgICAgICAgICAgICAgICAiYXJpYS1sYWJlbCI6IGUubGFiZWwsCiAgICAgICAgICAgICAgICAgIHR5cGU6IGUudHlwZSwKICAgICAgICAgICAgICAgICAgdmFsdWU6IEIudmFsdWUsCiAgICAgICAgICAgICAgICAgIG5hbWU6IGUubmFtZSwKICAgICAgICAgICAgICAgICAgImFyaWEtY2hlY2tlZCI6IGUudHlwZSA9PT0gImNoZWNrYm94IiA/IG8udmFsdWUgOiB2b2lkIDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgagogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICApOwogICAgICAgICAgcmV0dXJuIG4oCiAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICBQKAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgICAgICJ2LXNlbGVjdGlvbi1jb250cm9sIiwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ2LXNlbGVjdGlvbi1jb250cm9sLS1kaXJ0eSI6IG8udmFsdWUsCiAgICAgICAgICAgICAgICAgICAgInYtc2VsZWN0aW9uLWNvbnRyb2wtLWRpc2FibGVkIjogZS5kaXNhYmxlZCwKICAgICAgICAgICAgICAgICAgICAidi1zZWxlY3Rpb24tY29udHJvbC0tZXJyb3IiOiBlLmVycm9yLAogICAgICAgICAgICAgICAgICAgICJ2LXNlbGVjdGlvbi1jb250cm9sLS1mb2N1c2VkIjogeS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAidi1zZWxlY3Rpb24tY29udHJvbC0tZm9jdXMtdmlzaWJsZSI6IEMudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgInYtc2VsZWN0aW9uLWNvbnRyb2wtLWlubGluZSI6IGUuaW5saW5lLAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBtLnZhbHVlLAogICAgICAgICAgICAgICAgICBlLmNsYXNzLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIEksCiAgICAgICAgICAgICAgeyBzdHlsZTogZS5zdHlsZSB9CiAgICAgICAgICAgICksCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGNsYXNzOiBbInYtc2VsZWN0aW9uLWNvbnRyb2xfX3dyYXBwZXIiLCB1LnZhbHVlXSwKICAgICAgICAgICAgICAgICAgc3R5bGU6IGIudmFsdWUsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAoQSA9IHQuZGVmYXVsdCkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgOiBBLmNhbGwodCwgewogICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3JDbGFzc2VzOiBrLAogICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3JTdHlsZXM6IFMsCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgeigKICAgICAgICAgICAgICAgICAgICBuKCJkaXYiLCB7IGNsYXNzOiBbInYtc2VsZWN0aW9uLWNvbnRyb2xfX2lucHV0Il0gfSwgWwogICAgICAgICAgICAgICAgICAgICAgKChHID0gdC5pbnB1dCkgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICA6IEcuY2FsbCh0LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDogbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvckNsYXNzZXM6IHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3JTdHlsZXM6IGIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3JDbGFzc2VzOiBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yU3R5bGVzOiBTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXROb2RlOiB3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdi52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7IG9uRm9jdXM6IGgsIG9uQmx1cjogVCwgaWQ6IGYudmFsdWUgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkgPz8KICAgICAgICAgICAgICAgICAgICAgICAgbihNLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgdi52YWx1ZSAmJiBuKHAsIHsga2V5OiAiaWNvbiIsIGljb246IHYudmFsdWUgfSwgbnVsbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdywKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICB0ZSgicmlwcGxlIiksCiAgICAgICAgICAgICAgICAgICAgICAgIGUucmlwcGxlICYmIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAhZS5kaXNhYmxlZCAmJiAhZS5yZWFkb25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgIFsiY2VudGVyIiwgImNpcmNsZSJdLAogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBpICYmIG4oS2UsIHsgZm9yOiBmLnZhbHVlLCBvbkNsaWNrOiAkIH0sIHsgZGVmYXVsdDogKCkgPT4gW2ldIH0pLAogICAgICAgICAgICBdCiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIHsgaXNGb2N1c2VkOiB5LCBpbnB1dDogbCB9CiAgICAgICk7CiAgICB9LAogIH0pLAogIEplID0geCgKICAgIHsKICAgICAgaW5kZXRlcm1pbmF0ZTogQm9vbGVhbiwKICAgICAgaW5kZXRlcm1pbmF0ZUljb246IHsgdHlwZTogZywgZGVmYXVsdDogIiRjaGVja2JveEluZGV0ZXJtaW5hdGUiIH0sCiAgICAgIC4uLnZlKHsgZmFsc2VJY29uOiAiJGNoZWNrYm94T2ZmIiwgdHJ1ZUljb246ICIkY2hlY2tib3hPbiIgfSksCiAgICB9LAogICAgIlZDaGVja2JveEJ0biIKICApLAogIHVsID0gRigpKHsKICAgIG5hbWU6ICJWQ2hlY2tib3hCdG4iLAogICAgcHJvcHM6IEplKCksCiAgICBlbWl0czogewogICAgICAidXBkYXRlOm1vZGVsVmFsdWUiOiAoZSkgPT4gITAsCiAgICAgICJ1cGRhdGU6aW5kZXRlcm1pbmF0ZSI6IChlKSA9PiAhMCwKICAgIH0sCiAgICBzZXR1cChlLCBzKSB7CiAgICAgIGxldCB7IHNsb3RzOiByIH0gPSBzOwogICAgICBjb25zdCB0ID0gXyhlLCAiaW5kZXRlcm1pbmF0ZSIpLAogICAgICAgIGEgPSBfKGUsICJtb2RlbFZhbHVlIik7CiAgICAgIGZ1bmN0aW9uIG0odSkgewogICAgICAgIHQudmFsdWUgJiYgKHQudmFsdWUgPSAhMSk7CiAgICAgIH0KICAgICAgY29uc3QgdiA9IGMoKCkgPT4gKHQudmFsdWUgPyBlLmluZGV0ZXJtaW5hdGVJY29uIDogZS5mYWxzZUljb24pKSwKICAgICAgICBvID0gYygoKSA9PiAodC52YWx1ZSA/IGUuaW5kZXRlcm1pbmF0ZUljb24gOiBlLnRydWVJY29uKSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgRSgoKSA9PiB7CiAgICAgICAgICBjb25zdCB1ID0gQWUoWS5maWx0ZXJQcm9wcyhlKSwgWyJtb2RlbFZhbHVlIl0pOwogICAgICAgICAgcmV0dXJuIG4oCiAgICAgICAgICAgIFksCiAgICAgICAgICAgIFAodSwgewogICAgICAgICAgICAgIG1vZGVsVmFsdWU6IGEudmFsdWUsCiAgICAgICAgICAgICAgIm9uVXBkYXRlOm1vZGVsVmFsdWUiOiBbKGIpID0+IChhLnZhbHVlID0gYiksIG1dLAogICAgICAgICAgICAgIGNsYXNzOiBbInYtY2hlY2tib3gtYnRuIiwgZS5jbGFzc10sCiAgICAgICAgICAgICAgc3R5bGU6IGUuc3R5bGUsCiAgICAgICAgICAgICAgdHlwZTogImNoZWNrYm94IiwKICAgICAgICAgICAgICBmYWxzZUljb246IHYudmFsdWUsCiAgICAgICAgICAgICAgdHJ1ZUljb246IG8udmFsdWUsCiAgICAgICAgICAgICAgImFyaWEtY2hlY2tlZCI6IHQudmFsdWUgPyAibWl4ZWQiIDogdm9pZCAwLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcgogICAgICAgICAgKTsKICAgICAgICB9KSwKICAgICAgICB7fQogICAgICApOwogICAgfSwKICB9KTsKZXhwb3J0IHsgdWwgYXMgViwgaWwgYXMgYSwgb2wgYXMgYiwgSmUgYXMgbSB9Owo="}},"time_used":149,"timings":{"blocked":119,"dns":0,"connect":0,"send":0,"wait":30,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Ck8zg9y4.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.542Z","timestamp":1785139669542,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Ck8zg9y4.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"b20-654aa2b830142-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1109\r\nKeep-Alive: timeout=5, max=92\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":2848,"size_decoded":1459,"mime_type":"application/javascript","magic":"ASCII text, with very long lines (2847)","md5":"54465880abe0dcdf100b43a961d3238e","sha1":"10aeb84494b3b99726c80c60f296124d28ef473f","sha256":"beea8bb0989b4ee9192705700f29b308b033a1754a610c268599421b1f31af00","sha512":"99b3c818dbe10972d87b851862b0c30bf3c3fa4e62877d2639ede1395495a9ba8b2040ef89034009363861771b56335c1b9741b6164dfcb1576cdba6d7ff853b","ssdeep":"","tlshash":"dc5152a07429f5b30bc59ca481f52061e8cc3f4ae096e4f0f2ef19ad1e530c463a6f89","first_seen":"2025-10-23T03:46:52.516017Z","last_seen":"2026-07-27T11:49:48.949391Z","times_seen":8,"resource_available":true,"data":"LyogZW1wdHkgY3NzICAgICAgICAqL2ltcG9ydHticSBhcyBpLGFFIGFzIHUsJCBhcyBiLGE3IGFzIEMsYTggYXMgUyxhMCBhcyBrLHMgYXMgTixiciBhcyBqfWZyb20iLi9TbTJtQ2ZERS5qcyI7Y29uc3QgVj1pLnJlZHVjZSgodCxhKT0+KHRbYV09e3R5cGU6W0Jvb2xlYW4sU3RyaW5nLE51bWJlcl0sZGVmYXVsdDohMX0sdCkse30pLHY9aS5yZWR1Y2UoKHQsYSk9Pntjb25zdCBlPSJvZmZzZXQiK3UoYSk7cmV0dXJuIHRbZV09e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6bnVsbH0sdH0se30pLEw9aS5yZWR1Y2UoKHQsYSk9Pntjb25zdCBlPSJvcmRlciIrdShhKTtyZXR1cm4gdFtlXT17dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDpudWxsfSx0fSx7fSkseT17Y29sOk9iamVjdC5rZXlzKFYpLG9mZnNldDpPYmplY3Qua2V5cyh2KSxvcmRlcjpPYmplY3Qua2V5cyhMKX07ZnVuY3Rpb24gRyh0LGEsZSl7bGV0IHM9dDtpZighKGU9PW51bGx8fGU9PT0hMSkpe2lmKGEpe2NvbnN0IG49YS5yZXBsYWNlKHQsIiIpO3MrPWAtJHtufWB9cmV0dXJuIHQ9PT0iY29sIiYmKHM9InYtIitzKSx0PT09ImNvbCImJihlPT09IiJ8fGU9PT0hMCl8fChzKz1gLSR7ZX1gKSxzLnRvTG93ZXJDYXNlKCl9fWNvbnN0IF89WyJhdXRvIiwic3RhcnQiLCJlbmQiLCJjZW50ZXIiLCJiYXNlbGluZSIsInN0cmV0Y2giXSxJPWIoe2NvbHM6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nLE51bWJlcl0sZGVmYXVsdDohMX0sLi4uVixvZmZzZXQ6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6bnVsbH0sLi4udixvcmRlcjp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDpudWxsfSwuLi5MLGFsaWduU2VsZjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpudWxsLHZhbGlkYXRvcjp0PT5fLmluY2x1ZGVzKHQpfSwuLi5DKCksLi4uUygpfSwiVkNvbCIpLHE9aygpKHtuYW1lOiJWQ29sIixwcm9wczpJKCksc2V0dXAodCxhKXtsZXR7c2xvdHM6ZX09YTtjb25zdCBzPU4oKCk9Pntjb25zdCBuPVtdO2xldCBsO2ZvcihsIGluIHkpeVtsXS5mb3JFYWNoKG89Pntjb25zdCBjPXRbb10sZz1HKGwsbyxjKTtnJiZuLnB1c2goZyl9KTtjb25zdCByPW4uc29tZShvPT5vLnN0YXJ0c1dpdGgoInYtY29sLSIpKTtyZXR1cm4gbi5wdXNoKHsidi1jb2wiOiFyfHwhdC5jb2xzLFtgdi1jb2wtJHt0LmNvbHN9YF06dC5jb2xzLFtgb2Zmc2V0LSR7dC5vZmZzZXR9YF06dC5vZmZzZXQsW2BvcmRlci0ke3Qub3JkZXJ9YF06dC5vcmRlcixbYGFsaWduLXNlbGYtJHt0LmFsaWduU2VsZn1gXTp0LmFsaWduU2VsZn0pLG59KTtyZXR1cm4oKT0+e3ZhciBuO3JldHVybiBqKHQudGFnLHtjbGFzczpbcy52YWx1ZSx0LmNsYXNzXSxzdHlsZTp0LnN0eWxlfSwobj1lLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpuLmNhbGwoZSkpfX19KSxmPVsic3RhcnQiLCJlbmQiLCJjZW50ZXIiXSwkPVsic3BhY2UtYmV0d2VlbiIsInNwYWNlLWFyb3VuZCIsInNwYWNlLWV2ZW5seSJdO2Z1bmN0aW9uIGQodCxhKXtyZXR1cm4gaS5yZWR1Y2UoKGUscyk9Pntjb25zdCBuPXQrdShzKTtyZXR1cm4gZVtuXT1hKCksZX0se30pfWNvbnN0IFI9Wy4uLmYsImJhc2VsaW5lIiwic3RyZXRjaCJdLGg9dD0+Ui5pbmNsdWRlcyh0KSx3PWQoImFsaWduIiwoKT0+KHt0eXBlOlN0cmluZyxkZWZhdWx0Om51bGwsdmFsaWRhdG9yOmh9KSksVD1bLi4uZiwuLi4kXSxQPXQ9PlQuaW5jbHVkZXModCksRT1kKCJqdXN0aWZ5IiwoKT0+KHt0eXBlOlN0cmluZyxkZWZhdWx0Om51bGwsdmFsaWRhdG9yOlB9KSksVT1bLi4uZiwuLi4kLCJzdHJldGNoIl0sQT10PT5VLmluY2x1ZGVzKHQpLE89ZCgiYWxpZ25Db250ZW50IiwoKT0+KHt0eXBlOlN0cmluZyxkZWZhdWx0Om51bGwsdmFsaWRhdG9yOkF9KSksbT17YWxpZ246T2JqZWN0LmtleXModyksanVzdGlmeTpPYmplY3Qua2V5cyhFKSxhbGlnbkNvbnRlbnQ6T2JqZWN0LmtleXMoTyl9LEI9e2FsaWduOiJhbGlnbiIsanVzdGlmeToianVzdGlmeSIsYWxpZ25Db250ZW50OiJhbGlnbi1jb250ZW50In07ZnVuY3Rpb24gTSh0LGEsZSl7bGV0IHM9Qlt0XTtpZihlIT1udWxsKXtpZihhKXtjb25zdCBuPWEucmVwbGFjZSh0LCIiKTtzKz1gLSR7bn1gfXJldHVybiBzKz1gLSR7ZX1gLHMudG9Mb3dlckNhc2UoKX19Y29uc3QgRj1iKHtkZW5zZTpCb29sZWFuLG5vR3V0dGVyczpCb29sZWFuLGFsaWduOnt0eXBlOlN0cmluZyxkZWZhdWx0Om51bGwsdmFsaWRhdG9yOmh9LC4uLncsanVzdGlmeTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpudWxsLHZhbGlkYXRvcjpQfSwuLi5FLGFsaWduQ29udGVudDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpudWxsLHZhbGlkYXRvcjpBfSwuLi5PLC4uLkMoKSwuLi5TKCl9LCJWUm93Iiksej1rKCkoe25hbWU6IlZSb3ciLHByb3BzOkYoKSxzZXR1cCh0LGEpe2xldHtzbG90czplfT1hO2NvbnN0IHM9TigoKT0+e2NvbnN0IG49W107bGV0IGw7Zm9yKGwgaW4gbSltW2xdLmZvckVhY2gocj0+e2NvbnN0IG89dFtyXSxjPU0obCxyLG8pO2MmJm4ucHVzaChjKX0pO3JldHVybiBuLnB1c2goeyJ2LXJvdy0tbm8tZ3V0dGVycyI6dC5ub0d1dHRlcnMsInYtcm93LS1kZW5zZSI6dC5kZW5zZSxbYGFsaWduLSR7dC5hbGlnbn1gXTp0LmFsaWduLFtganVzdGlmeS0ke3QuanVzdGlmeX1gXTp0Lmp1c3RpZnksW2BhbGlnbi1jb250ZW50LSR7dC5hbGlnbkNvbnRlbnR9YF06dC5hbGlnbkNvbnRlbnR9KSxufSk7cmV0dXJuKCk9Pnt2YXIgbjtyZXR1cm4gaih0LnRhZyx7Y2xhc3M6WyJ2LXJvdyIscy52YWx1ZSx0LmNsYXNzXSxzdHlsZTp0LnN0eWxlfSwobj1lLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpuLmNhbGwoZSkpfX19KTtleHBvcnR7cSBhcyBWLHogYXMgYX07Cg=="}},"time_used":161,"timings":{"blocked":135,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/C1DtZnIy.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.982Z","timestamp":1785139670982,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/C1DtZnIy.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"141b-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1866\r\nKeep-Alive: timeout=5, max=89\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":5147,"size_decoded":2217,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (5146)","md5":"3eb2b5a2ef2ac103fc94184bba6fdeb1","sha1":"b40a29c3f59fd4cb83f6df55369753b1795ee002","sha256":"0c4d4d899fcc41d137fbeb6dfc348feafc76106e27f016a1d232ac6415690ac7","sha512":"a8a8639c8f609a34c42552fa458ffee95565a2c3ee86b9353b0ea0a207e48b393cbe7f2012fb30758eba8a852d69526aab7516626e4f9f65f2c45fa093e523d0","ssdeep":"96:SHGE1DTqnOZoD4YHBkNaWDR5vtld0ZykQ+K4CE6xfd:SHGE1DTwD4YhkNaWDR51MyWCVl","tlshash":"edb16394788a69b0667f74dde4a004c0d62d0f8c7696d8f0d0f729662f489c9f16963f","first_seen":"2025-10-23T03:46:53.039542Z","last_seen":"2026-07-27T11:49:48.992887Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0eyQgYXMgbSxhNyBhcyBnLGEwIGFzIFAseCBhcyBDLGE1IGFzIGIsZiBhcyBsLEkgYXMgaCxYIGFzIEwsYXggYXMgayxhaCBhcyBULHMgYXMgdixhZSBhcyAkLEggYXMgaixhOCBhcyB3LGFkIGFzIHosYkIgYXMgRixhOSBhcyBILGFhIGFzIE4sYWogYXMgTyxhaSBhcyB0fWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0e1YgYXMgWH1mcm9tIi4vQl8yRmtQOFMuanMiO2ltcG9ydHttIGFzIHEsdSBhcyBKfWZyb20iLi9DMlFmYnE5Mi5qcyI7aW1wb3J0e20gYXMgSyx1IGFzIE0sYSBhcyBRLGIgYXMgVX1mcm9tIi4vQjhUeFR5YWsuanMiO2ltcG9ydHtSIGFzIFcsViBhcyBCLGIgYXMgWSxtIGFzIFosYSBhcyBlZSxjIGFzIGFlLGQgYXMgbmUsdSBhcyBsZX1mcm9tIi4vQ011VVRsUzIuanMiO2NvbnN0IHA9U3ltYm9sLmZvcigidnVldGlmeTp2LWV4cGFuc2lvbi1wYW5lbCIpLEE9bSh7Li4uZygpLC4uLnEoKX0sIlZFeHBhbnNpb25QYW5lbFRleHQiKSxJPVAoKSh7bmFtZToiVkV4cGFuc2lvblBhbmVsVGV4dCIscHJvcHM6QSgpLHNldHVwKGUsZCl7bGV0e3Nsb3RzOm59PWQ7Y29uc3QgYT1DKHApO2lmKCFhKXRocm93IG5ldyBFcnJvcigiW1Z1ZXRpZnldIHYtZXhwYW5zaW9uLXBhbmVsLXRleHQgbmVlZHMgdG8gYmUgcGxhY2VkIGluc2lkZSB2LWV4cGFuc2lvbi1wYW5lbCIpO2NvbnN0e2hhc0NvbnRlbnQ6byxvbkFmdGVyTGVhdmU6dX09SihlLGEuaXNTZWxlY3RlZCk7cmV0dXJuIGIoKCk9PmwoWCx7b25BZnRlckxlYXZlOnV9LHtkZWZhdWx0OigpPT57dmFyIGk7cmV0dXJuW2gobCgiZGl2Iix7Y2xhc3M6WyJ2LWV4cGFuc2lvbi1wYW5lbC10ZXh0IixlLmNsYXNzXSxzdHlsZTplLnN0eWxlfSxbbi5kZWZhdWx0JiZvLnZhbHVlJiZsKCJkaXYiLHtjbGFzczoidi1leHBhbnNpb24tcGFuZWwtdGV4dF9fd3JhcHBlciJ9LFsoaT1uLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDppLmNhbGwobildKV0pLFtbTCxhLmlzU2VsZWN0ZWQudmFsdWVdXSldfX0pKSx7fX19KSxfPW0oe2NvbG9yOlN0cmluZyxleHBhbmRJY29uOnt0eXBlOmssZGVmYXVsdDoiJGV4cGFuZCJ9LGNvbGxhcHNlSWNvbjp7dHlwZTprLGRlZmF1bHQ6IiRjb2xsYXBzZSJ9LGhpZGVBY3Rpb25zOkJvb2xlYW4sZm9jdXNhYmxlOkJvb2xlYW4sc3RhdGljOkJvb2xlYW4scmlwcGxlOnt0eXBlOltCb29sZWFuLE9iamVjdF0sZGVmYXVsdDohMX0scmVhZG9ubHk6Qm9vbGVhbiwuLi5nKCksLi4uSygpfSwiVkV4cGFuc2lvblBhbmVsVGl0bGUiKSxTPVAoKSh7bmFtZToiVkV4cGFuc2lvblBhbmVsVGl0bGUiLGRpcmVjdGl2ZXM6e1JpcHBsZTpXfSxwcm9wczpfKCksc2V0dXAoZSxkKXtsZXR7c2xvdHM6bn09ZDtjb25zdCBhPUMocCk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJbVnVldGlmeV0gdi1leHBhbnNpb24tcGFuZWwtdGl0bGUgbmVlZHMgdG8gYmUgcGxhY2VkIGluc2lkZSB2LWV4cGFuc2lvbi1wYW5lbCIpO2NvbnN0e2JhY2tncm91bmRDb2xvckNsYXNzZXM6byxiYWNrZ3JvdW5kQ29sb3JTdHlsZXM6dX09VChlLCJjb2xvciIpLHtkaW1lbnNpb25TdHlsZXM6aX09TShlKSxyPXYoKCk9Pih7Y29sbGFwc2VJY29uOmUuY29sbGFwc2VJY29uLGRpc2FibGVkOmEuZGlzYWJsZWQudmFsdWUsZXhwYW5kZWQ6YS5pc1NlbGVjdGVkLnZhbHVlLGV4cGFuZEljb246ZS5leHBhbmRJY29uLHJlYWRvbmx5OmUucmVhZG9ubHl9KSkseT12KCgpPT5hLmlzU2VsZWN0ZWQudmFsdWU/ZS5jb2xsYXBzZUljb246ZS5leHBhbmRJY29uKTtyZXR1cm4gYigoKT0+e3ZhciB4O3JldHVybiBoKGwoImJ1dHRvbiIse2NsYXNzOlsidi1leHBhbnNpb24tcGFuZWwtdGl0bGUiLHsidi1leHBhbnNpb24tcGFuZWwtdGl0bGUtLWFjdGl2ZSI6YS5pc1NlbGVjdGVkLnZhbHVlLCJ2LWV4cGFuc2lvbi1wYW5lbC10aXRsZS0tZm9jdXNhYmxlIjplLmZvY3VzYWJsZSwidi1leHBhbnNpb24tcGFuZWwtdGl0bGUtLXN0YXRpYyI6ZS5zdGF0aWN9LG8udmFsdWUsZS5jbGFzc10sc3R5bGU6W3UudmFsdWUsaS52YWx1ZSxlLnN0eWxlXSx0eXBlOiJidXR0b24iLHRhYmluZGV4OmEuZGlzYWJsZWQudmFsdWU/LTE6dm9pZCAwLGRpc2FibGVkOmEuZGlzYWJsZWQudmFsdWUsImFyaWEtZXhwYW5kZWQiOmEuaXNTZWxlY3RlZC52YWx1ZSxvbkNsaWNrOmUucmVhZG9ubHk/dm9pZCAwOmEudG9nZ2xlfSxbbCgic3BhbiIse2NsYXNzOiJ2LWV4cGFuc2lvbi1wYW5lbC10aXRsZV9fb3ZlcmxheSJ9LG51bGwpLCh4PW4uZGVmYXVsdCk9PW51bGw/dm9pZCAwOnguY2FsbChuLHIudmFsdWUpLCFlLmhpZGVBY3Rpb25zJiZsKEIse2RlZmF1bHRzOntWSWNvbjp7aWNvbjp5LnZhbHVlfX19LHtkZWZhdWx0OigpPT57dmFyIGY7cmV0dXJuW2woInNwYW4iLHtjbGFzczoidi1leHBhbnNpb24tcGFuZWwtdGl0bGVfX2ljb24ifSxbKChmPW4uYWN0aW9ucyk9PW51bGw/dm9pZCAwOmYuY2FsbChuLHIudmFsdWUpKT8/bChqLG51bGwsbnVsbCldKV19fSldKSxbWyQoInJpcHBsZSIpLGUucmlwcGxlXV0pfSkse319fSksRD1tKHt0aXRsZTpTdHJpbmcsdGV4dDpTdHJpbmcsYmdDb2xvcjpTdHJpbmcsLi4uWSgpLC4uLlooKSwuLi5RKCksLi4udygpLC4uLl8oKSwuLi5BKCl9LCJWRXhwYW5zaW9uUGFuZWwiKSxyZT1QKCkoe25hbWU6IlZFeHBhbnNpb25QYW5lbCIscHJvcHM6RCgpLGVtaXRzOnsiZ3JvdXA6c2VsZWN0ZWQiOmU9PiEwfSxzZXR1cChlLGQpe2xldHtzbG90czpufT1kO2NvbnN0IGE9ZWUoZSxwKSx7YmFja2dyb3VuZENvbG9yQ2xhc3NlczpvLGJhY2tncm91bmRDb2xvclN0eWxlczp1fT1UKGUsImJnQ29sb3IiKSx7ZWxldmF0aW9uQ2xhc3NlczppfT1hZShlKSx7cm91bmRlZENsYXNzZXM6cn09VShlKSx5PXYoKCk9PihhPT1udWxsP3ZvaWQgMDphLmRpc2FibGVkLnZhbHVlKXx8ZS5kaXNhYmxlZCkseD12KCgpPT5hLmdyb3VwLml0ZW1zLnZhbHVlLnJlZHVjZSgoYyxzLFYpPT4oYS5ncm91cC5zZWxlY3RlZC52YWx1ZS5pbmNsdWRlcyhzLmlkKSYmYy5wdXNoKFYpLGMpLFtdKSksZj12KCgpPT57Y29uc3QgYz1hLmdyb3VwLml0ZW1zLnZhbHVlLmZpbmRJbmRleChzPT5zLmlkPT09YS5pZCk7cmV0dXJuIWEuaXNTZWxlY3RlZC52YWx1ZSYmeC52YWx1ZS5zb21lKHM9PnMtYz09PTEpfSksUj12KCgpPT57Y29uc3QgYz1hLmdyb3VwLml0ZW1zLnZhbHVlLmZpbmRJbmRleChzPT5zLmlkPT09YS5pZCk7cmV0dXJuIWEuaXNTZWxlY3RlZC52YWx1ZSYmeC52YWx1ZS5zb21lKHM9PnMtYz09PS0xKX0pO3JldHVybiB6KHAsYSksYigoKT0+e2NvbnN0IGM9ISEobi50ZXh0fHxlLnRleHQpLHM9ISEobi50aXRsZXx8ZS50aXRsZSksVj1TLmZpbHRlclByb3BzKGUpLEc9SS5maWx0ZXJQcm9wcyhlKTtyZXR1cm4gbChlLnRhZyx7Y2xhc3M6WyJ2LWV4cGFuc2lvbi1wYW5lbCIseyJ2LWV4cGFuc2lvbi1wYW5lbC0tYWN0aXZlIjphLmlzU2VsZWN0ZWQudmFsdWUsInYtZXhwYW5zaW9uLXBhbmVsLS1iZWZvcmUtYWN0aXZlIjpmLnZhbHVlLCJ2LWV4cGFuc2lvbi1wYW5lbC0tYWZ0ZXItYWN0aXZlIjpSLnZhbHVlLCJ2LWV4cGFuc2lvbi1wYW5lbC0tZGlzYWJsZWQiOnkudmFsdWV9LHIudmFsdWUsby52YWx1ZSxlLmNsYXNzXSxzdHlsZTpbdS52YWx1ZSxlLnN0eWxlXX0se2RlZmF1bHQ6KCk9PltsKCJkaXYiLHtjbGFzczpbInYtZXhwYW5zaW9uLXBhbmVsX19zaGFkb3ciLC4uLmkudmFsdWVdfSxudWxsKSxsKEIse2RlZmF1bHRzOntWRXhwYW5zaW9uUGFuZWxUaXRsZTp7Li4uVn0sVkV4cGFuc2lvblBhbmVsVGV4dDp7Li4uR319fSx7ZGVmYXVsdDooKT0+e3ZhciBFO3JldHVybltzJiZsKFMse2tleToidGl0bGUifSx7ZGVmYXVsdDooKT0+W24udGl0bGU/bi50aXRsZSgpOmUudGl0bGVdfSksYyYmbChJLHtrZXk6InRleHQifSx7ZGVmYXVsdDooKT0+W24udGV4dD9uLnRleHQoKTplLnRleHRdfSksKEU9bi5kZWZhdWx0KT09bnVsbD92b2lkIDA6RS5jYWxsKG4pXX19KV19KX0pLHtncm91cEl0ZW06YX19fSksdGU9WyJkZWZhdWx0IiwiYWNjb3JkaW9uIiwiaW5zZXQiLCJwb3BvdXQiXSxzZT1tKHtmbGF0OkJvb2xlYW4sLi4ubmUoKSwuLi5GKEQoKSxbImJnQ29sb3IiLCJjb2xsYXBzZUljb24iLCJjb2xvciIsImVhZ2VyIiwiZWxldmF0aW9uIiwiZXhwYW5kSWNvbiIsImZvY3VzYWJsZSIsImhpZGVBY3Rpb25zIiwicmVhZG9ubHkiLCJyaXBwbGUiLCJyb3VuZGVkIiwidGlsZSIsInN0YXRpYyJdKSwuLi5IKCksLi4uZygpLC4uLncoKSx2YXJpYW50Ont0eXBlOlN0cmluZyxkZWZhdWx0OiJkZWZhdWx0Iix2YWxpZGF0b3I6ZT0+dGUuaW5jbHVkZXMoZSl9fSwiVkV4cGFuc2lvblBhbmVscyIpLHZlPVAoKSh7bmFtZToiVkV4cGFuc2lvblBhbmVscyIscHJvcHM6c2UoKSxlbWl0czp7InVwZGF0ZTptb2RlbFZhbHVlIjplPT4hMH0sc2V0dXAoZSxkKXtsZXR7c2xvdHM6bn09ZDtjb25zdHtuZXh0OmEscHJldjpvfT1sZShlLHApLHt0aGVtZUNsYXNzZXM6dX09TihlKSxpPXYoKCk9PmUudmFyaWFudCYmYHYtZXhwYW5zaW9uLXBhbmVscy0tdmFyaWFudC0ke2UudmFyaWFudH1gKTtyZXR1cm4gTyh7VkV4cGFuc2lvblBhbmVsOntiZ0NvbG9yOnQoZSwiYmdDb2xvciIpLGNvbGxhcHNlSWNvbjp0KGUsImNvbGxhcHNlSWNvbiIpLGNvbG9yOnQoZSwiY29sb3IiKSxlYWdlcjp0KGUsImVhZ2VyIiksZWxldmF0aW9uOnQoZSwiZWxldmF0aW9uIiksZXhwYW5kSWNvbjp0KGUsImV4cGFuZEljb24iKSxmb2N1c2FibGU6dChlLCJmb2N1c2FibGUiKSxoaWRlQWN0aW9uczp0KGUsImhpZGVBY3Rpb25zIikscmVhZG9ubHk6dChlLCJyZWFkb25seSIpLHJpcHBsZTp0KGUsInJpcHBsZSIpLHJvdW5kZWQ6dChlLCJyb3VuZGVkIiksc3RhdGljOnQoZSwic3RhdGljIil9fSksYigoKT0+bChlLnRhZyx7Y2xhc3M6WyJ2LWV4cGFuc2lvbi1wYW5lbHMiLHsidi1leHBhbnNpb24tcGFuZWxzLS1mbGF0IjplLmZsYXQsInYtZXhwYW5zaW9uLXBhbmVscy0tdGlsZSI6ZS50aWxlfSx1LnZhbHVlLGkudmFsdWUsZS5jbGFzc10sc3R5bGU6ZS5zdHlsZX0se2RlZmF1bHQ6KCk9Pnt2YXIgcjtyZXR1cm5bKHI9bi5kZWZhdWx0KT09bnVsbD92b2lkIDA6ci5jYWxsKG4se3ByZXY6byxuZXh0OmF9KV19fSkpLHtuZXh0OmEscHJldjpvfX19KTtleHBvcnR7dmUgYXMgVixTIGFzIGEsSSBhcyBiLHJlIGFzIGN9Owo="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VSlideGroup.BsYIg1rJ.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.486Z","timestamp":1785139669486,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VSlideGroup.BsYIg1rJ.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3c4-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 387\r\nKeep-Alive: timeout=5, max=91\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":964,"size_decoded":722,"mime_type":"text/css","magic":"ASCII text, with very long lines (963)","md5":"8015dc253fa64ef2b087f3267fad8cfa","sha1":"a046ba3ca7b7736986bdecbc1149095e4258d304","sha256":"63c79bf6419c687462b0beedca4e4c8bf24cba9e59b7250c3890efa2193dee7d","sha512":"e7ddb80f898993f7ea5cbf69e130c085b9fe2f563e4449aa5eb02e8acc190aa31526afdb6ca476a52d0ab498cb01eec7b74e39e8f8f0f08a3e48edc587d49986","ssdeep":"","tlshash":"6911573ef149292494c391d885e0ea0fd2a9c46af763cd2c149c4b8c41ce8d28ab31e8","first_seen":"2024-12-01T20:46:30.59917Z","last_seen":"2026-07-30T13:12:11.395213Z","times_seen":114,"resource_available":false,"data":"LnYtc2xpZGUtZ3JvdXB7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0udi1zbGlkZS1ncm91cF9fbmV4dCwudi1zbGlkZS1ncm91cF9fcHJldnthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6MCAxIDUycHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6NTJweH0udi1zbGlkZS1ncm91cF9fbmV4dC0tZGlzYWJsZWQsLnYtc2xpZGUtZ3JvdXBfX3ByZXYtLWRpc2FibGVke29wYWNpdHk6dmFyKC0tdi1kaXNhYmxlZC1vcGFjaXR5KTtwb2ludGVyLWV2ZW50czpub25lfS52LXNsaWRlLWdyb3VwX19jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4OjEgMCBhdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246YWxsIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt3aGl0ZS1zcGFjZTpub3dyYXB9LnYtc2xpZGUtZ3JvdXBfX2NvbnRlbnQ+Knt3aGl0ZS1zcGFjZTpub3JtYWx9LnYtc2xpZGUtZ3JvdXBfX2NvbnRhaW5lcntjb250YWluOmNvbnRlbnQ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbGJhci1jb2xvcjp0cmFuc3BhcmVudDtzY3JvbGxiYXItd2lkdGg6bm9uZX0udi1zbGlkZS1ncm91cF9fY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnYtc2xpZGUtZ3JvdXAtLXZlcnRpY2Fse21heC1oZWlnaHQ6aW5oZXJpdH0udi1zbGlkZS1ncm91cC0tdmVydGljYWwsLnYtc2xpZGUtZ3JvdXAtLXZlcnRpY2FsIC52LXNsaWRlLWdyb3VwX19jb250YWluZXIsLnYtc2xpZGUtZ3JvdXAtLXZlcnRpY2FsIC52LXNsaWRlLWdyb3VwX19jb250ZW50e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udi1zbGlkZS1ncm91cC0tdmVydGljYWwgLnYtc2xpZGUtZ3JvdXBfX2NvbnRhaW5lcntvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG99Cg=="}},"time_used":236,"timings":{"blocked":210,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"sibautomation.com/sa.js?key=fw2fj490h6um6hv0jod7eh0m","fqdn":"sibautomation.com","domain":"sibautomation.com","tld":"com"},"ip":{"addr":"141.101.90.106","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.097Z","timestamp":1785139670097,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"sibautomation.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 12:36:45 GMT","end":"Wed, 14 Oct 2026 13:36:32 GMT"},"fingerprint":{"sha1":"92:33:C4:6D:EB:E5:DE:7F:09:AD:31:97:81:B2:49:65:AE:F8:AE:57","sha256":"25:2C:F4:ED:AC:89:F7:C6:72:55:49:6E:0B:42:81:82:B5:60:0D:4B:8F:A5:2F:B1:1F:CE:50:40:C0:24:51:BE"}}},"request":{"raw":"GET /sa.js?key=fw2fj490h6um6hv0jod7eh0m HTTP/1.1\r\nHost: sibautomation.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 08:07:53 GMT\r\ncontent-type: text/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-powered-by: Sails \u003csailsjs.com\u003e\r\netag: W/\"3b49-1VD128iz8sCbogdw2gtyXMgW1Jw\"\r\nvary: Accept-Encoding\r\ncontent-encoding: br\r\naccess-control-allow-origin: *\r\nx-envoy-upstream-service-time: 41\r\nage: 5397\r\nexpires: Mon, 27 Jul 2026 08:08:53 GMT\r\ncache-control: public, max-age=60\r\ncf-cache-status: HIT\r\ncf-ray: a21a272df9fb8d51-HEL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Sails.js","description":"","website":"https://sailsjs.org","common_platform_enumeration":"","icon":"Sails.js.svg","categories":["Web frameworks"]},{"name":"Express","description":"Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.","website":"https://expressjs.com","common_platform_enumeration":"cpe:2.3:a:expressjs:express:*:*:*:*:*:*:*:*","icon":"Express.svg","categories":["Web frameworks","Web servers"]},{"name":"Envoy","description":"Envoy is an open-source edge and service proxy, designed for cloud-native applications.","website":"https://www.envoyproxy.io/","common_platform_enumeration":"cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*","icon":"Envoy.png","categories":["Reverse proxies"]}],"data":{"size":15177,"size_decoded":4590,"mime_type":"text/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (304)","md5":"7d3a6ff6130f9af2fe5eba252ab83c88","sha1":"d550f5dbc8b3f2c09ba20770da0b725cc816d49c","sha256":"6b768b4da851db4231a7da73e4d053a3aa235490376116e41de3eb046111b90b","sha512":"62f8afc53739226d28fd9d8f9be5764e3aac11e0499070dfdab7966fdd4d9c309a9bc9b4d6124e1e22df44b4b7f472e835624094f620a1671180823d659f046f","ssdeep":"384:CKxQzozLdKB0VdlZz3M4+zNISzKmacaDiV:lK8LdKWVdlZDM4+ZISGmacamV","tlshash":"ac62718e10e76076462370398b9fa40c7535486b2148dd207e5ce1ea6fb0929cafbfdd","first_seen":"2025-12-30T16:00:00.273173Z","last_seen":"2026-08-02T23:39:28.782025Z","times_seen":2504,"resource_available":true,"data":"KGZ1bmN0aW9uKCkgewogICAgInVzZSBzdHJpY3QiOwogICAgbGV0IGNrOwogICAgbGV0IGluaXRPcHRpb25zPXt9OwogICAgbGV0IGVxdWV1ZSA9IHdpbmRvdy5zaWIgPyB3aW5kb3cuc2liLmVxdWV1ZSB8fCBbXSA6IFtdOwogICAgaWYoIHdpbmRvdy5zaWIgJiYgd2luZG93LnNpYi5jbGllbnRfa2V5ICl7CiAgICAgICAgY2sgPSB3aW5kb3cuc2liLmNsaWVudF9rZXk7CiAgICAgICAgaWYgKHdpbmRvdy5zaWIuZW1haWxfaWQpeyAKICAgICAgICAgICAgaW5pdE9wdGlvbnMuZW1haWxfaWQgPSB3aW5kb3cuc2liLmVtYWlsX2lkOwogICAgICAgIH0KICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh3aW5kb3cuQnJldm8pICl7CiAgICAgICAgZm9yKGNvbnN0IGVsZW1lbnQgb2Ygd2luZG93LkJyZXZvKXsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShlbGVtZW50KSAmJgogICAgICAgICAgICAgICAgdHlwZW9mIGVsZW1lbnRbMF0gPT09ICJzdHJpbmciCiAgICAgICAgICAgICl7CiAgICAgICAgICAgICAgICBsZXQgZnVuY05hbWU9ZWxlbWVudFswXTsKICAgICAgICAgICAgICAgIGxldCBhcmdzID0gZWxlbWVudC5zbGljZSgxKTsKICAgICAgICAgICAgICAgIGlmKGZ1bmNOYW1lID09PSAiaW5pdCIgJiYgdHlwZW9mIGFyZ3NbMF0gPT09ICJvYmplY3QiKXsKICAgICAgICAgICAgICAgICAgICBpZih0eXBlb2YgYXJnc1swXS5jbGllbnRfa2V5ID09PSAic3RyaW5nIil7CiAgICAgICAgICAgICAgICAgICAgICAgIGNrPWFyZ3NbMF0uY2xpZW50X2tleTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaW5pdE9wdGlvbnM9YXJnc1swXTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZXF1ZXVlLnB1c2goe1tmdW5jTmFtZV06IGFyZ3N9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbGVtZW50ID09PSAiZnVuY3Rpb24iKXsKICAgICAgICAgICAgICAgIGVxdWV1ZS5wdXNoKGVsZW1lbnQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIEZvciB0aGUgbmV3IHNuaXBwZXQsIHdlIHdhbnQgdG8gc2VuZCB0aGUgcGFnZSB2aWV3cwogICAgICAgIC8vIEZyb20gdGhlIHRoZSBmcmFtZSBhbmQgcG9wdXAgd2luZG93IHdlIHdpbGwgdXNlIGFuIG9wdGlvbiAoaS5lLiBfbW9kZSkgdG8gYXZvaWQgc2VuZGluZyB0aGUgcGFnZSB2aWV3CiAgICAgICAgaWYgKGluaXRPcHRpb25zLl9tb2RlICE9PSAiZnJhbWUiICYmIGluaXRPcHRpb25zLl9tb2RlICE9PSAicG9wdXAiICYmICFpbml0T3B0aW9ucy5kb19ub3RfdHJhY2tfcGFnZSl7CiAgICAgICAgICAgIGVxdWV1ZS51bnNoaWZ0KHtwYWdlOltdfSk7CiAgICAgICAgfQogICAgfQogICAgaWYoIWNrKSByZXR1cm47CiAgICB2YXIgY29uZmlnID0gewogICAgICAgICAgICB1cmw6ICdodHRwczovL2luLWF1dG9tYXRlLmJyZXZvLmNvbS9wJywKICAgICAgICAgICAgdHJhY2tlcl91cmw6ICdodHRwczovL2luLWF1dG9tYXRlLmJyZXZvLmNvbScsCiAgICAgICAgICAgIGNvbV9lcnJfbXNnOiAnUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci8gUmVwb3J0IHRoaXMgZXJyb3IgdG8gU2VuZGluYmx1ZSBUZWFtJywKICAgICAgICAgICAgY29va2llX2V4cDogMTgyICogMjQsCiAgICAgICAgICAgIGlmX3VybDogJ2h0dHBzOi8vc2liYXV0b21hdGlvbi5jb20vY20uaHRtbD9rZXk9JyArIGNrLAogICAgICAgICAgICBpc19zZWN1cmU6ICdmYWxzZScsCiAgICAgICAgICAgIGJhc2VfdXJsOiAnaHR0cHM6Ly9pbi1hdXRvbWF0ZS5icmV2by5jb20nLAogICAgICAgICAgICBjdXN0b21fdXJsX3BhcnNpbmc6ICdbb2JqZWN0IE9iamVjdF0nLAogICAgICAgICAgICB0cmFja2luZ19lbmFibGVkOiB7IHRyYWNrOiAndHJ1ZScsIGlkZW50aWZ5OiAndHJ1ZScsIHBhZ2U6ICd0cnVlJywgdHJhY2tMaW5rOiAndHJ1ZScsIHZpZXdQcm9kdWN0OiAndHJ1ZScsIHZpZXdDYXRlZ29yeTogJ3RydWUnLCBzZWFyY2g6ICd0cnVlJyx9LAogICAgICAgICAgICB3b25kZXJwdXNoX3dlYmtleTogJycsCiAgICAgICAgfSwKICAgICAgICBIZWxwZXIgPSBuZXcgaGwoKTsKICAgIHZhciBpZnJhbWUsY207CiAgICBmdW5jdGlvbiBxKCkgewogICAgICAgIHdoaWxlIChlcXVldWUubGVuZ3RoKSB7IChmdW5jdGlvbihvYmopIHsgCiAgICAgICAgICAgIGlmKHR5cGVvZiBvYmogPT09ICJvYmplY3QiKSB7IAogICAgICAgICAgICAgICAgZm9yICh2YXIgayBpbiBvYmopIHsgCiAgICAgICAgICAgICAgICAgICAgaWYodHlwZW9mIHdpbmRvdy5zaWJba10gPT09ICJmdW5jdGlvbiIpIHsgCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodHlwZW9mIHdpbmRvdy5zaWJba10gPT09ICJmdW5jdGlvbiIpIHsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNpYltrXS5hcHBseShudWxsLCBvYmpba10pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwKTsgCiAgICAgICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmKHR5cGVvZiBvYmogPT09ICJmdW5jdGlvbiIpIHsgCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAgCiAgICAgICAgICAgICAgICAgICAgb2JqKCk7IAogICAgICAgICAgICAgICAgfSwgMjAwKTsgCiAgICAgICAgICAgIH0gCiAgICAgICAgfSkoZXF1ZXVlLnNoaWZ0KCkpO30KICAgIH0KICAgIGZ1bmN0aW9uIG1vKHQpIHsKICAgICAgICB2YXIgdG8gPSBPYmplY3QodCk7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7dmFyIG4gPSBhcmd1bWVudHNbaV07IGlmIChuICE9IG51bGwpIHsgZm9yICh2YXIgayBpbiBuKSB7IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCBrKSAmJiAodG9ba10gPSBuW2tdKTt9fX0gcmV0dXJuIHRvOwogICAgfQogICAgZnVuY3Rpb24gc3IobykgewogICAgICAgIHZhciBzID0gW107IGZvciAodmFyIHAgaW4gbykgeyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkgJiYgKHMucHVzaChlbmNvZGVVUklDb21wb25lbnQocCkgKyAiPSIgKyBlbmNvZGVVUklDb21wb25lbnQob1twXSkpKTsgfSByZXR1cm4gcy5qb2luKCImIik7CiAgICB9CiAgICBmdW5jdGlvbiBicihkKSB7CiAgICAgICAgdmFyIHRkID0geyBrZXk6IGNrLCBjdWlkOiBIZWxwZXIuY29va2llLmdldCgnc2liX2N1aWQnKSwgbWFfdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZiB9OyBpbml0T3B0aW9ucy5lbWFpbF9pZCAmJiAodGQuZW1haWxfaWQgPSBpbml0T3B0aW9ucy5lbWFpbF9pZCk7IHJldHVybiBtbyh0ZCwgZCk7CiAgICB9CiAgICBmdW5jdGlvbiBnZW5lcmF0ZVJlcUJvZHkoZXZlbnRfdHlwZSkgewogICAgICAgIHZhciBiID0geyBldmVudF90eXBlLCBtYV91cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLCBtYV9yZWZlcnJlcjogZG9jdW1lbnQucmVmZXJyZXIgfQogICAgICAgIGlmIChpbml0T3B0aW9ucy5lbWFpbF9pZCkgCiAgICAgICAgICAgIGIuZW1haWxfaWQgPSBpbml0T3B0aW9ucy5lbWFpbF9pZDsKICAgICAgICByZXR1cm4gYjsKICAgIH0KICAgIGZ1bmN0aW9uIGdlbmVyYXRlUmVxSGVhZGVycygpIHsKICAgICAgICByZXR1cm4geyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIsICJ2aXNpdG9yX2lkIjogSGVscGVyLmNvb2tpZS5nZXQoJ3NpYl9jdWlkJyksICJtYS1rZXkiOiBjayB9OwogICAgfQogICAgZnVuY3Rpb24gc2V0UmVxSGVhZGVycyhyZXEsIGhkcnMpIHsKICAgICAgICBmb3IgKHZhciBrZXkgaW4gaGRycykgewogICAgICAgICAgICByZXEuc2V0UmVxdWVzdEhlYWRlcihrZXksIGhkcnNba2V5XSk7CiAgICAgICAgfSAKICAgIH0KICAgIGZ1bmN0aW9uIGNyZWF0ZVJlcShldmVudF90eXBlLCB1cmxfc3VmZml4KSB7CiAgICAgICAgdmFyIHJlcUJvZHkgPSBnZW5lcmF0ZVJlcUJvZHkoZXZlbnRfdHlwZSk7CiAgICAgICAgdmFyIGhlYWRlcnMgPSBnZW5lcmF0ZVJlcUhlYWRlcnMoKTsKICAgICAgICB2YXIgdXJsID0gY29uZmlnLnRyYWNrZXJfdXJsICsgdXJsX3N1ZmZpeDsKICAgICAgICByZXR1cm4geyByZXFCb2R5LCBoZWFkZXJzLCB1cmwgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGhsKCkge30KICAgIGZ1bmN0aW9uIHNpYigpIHt9CiAgICBobC5wcm90b3R5cGUuY29va2llID0gewogICAgICAgIGdldDogZnVuY3Rpb24oY24pIHsgdmFyIG5hbWUgPSBjbiArICI9IiwgZGMgPSBkb2N1bWVudC5jb29raWUsIGNhID0gZGMuc3BsaXQoJzsnKTsgZm9yICh2YXIgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykgeyB2YXIgYyA9IGNhW2ldOyB3aGlsZSAoYy5jaGFyQXQoMCkgPT0gJyAnKSB7IGMgPSBjLnN1YnN0cmluZygxKTsgfSBpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHsgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpKTsgfX1yZXR1cm4gIiI7fSwKICAgICAgICBzZXQ6IGZ1bmN0aW9uKG4sIHYpIHsgdmFyIGNkID0gbmV3IERhdGUoKTsgY2Quc2V0SG91cnMoY29uZmlnLmNvb2tpZV9leHApOyB2YXIgY29va2llX3ZhbHVlID0gbiArICI9IiArIHYgKyAiO2RvbWFpbj0gIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICI7ZXhwaXJlcz0iICsgY2QudG9HTVRTdHJpbmcoKSArICI7cGF0aD0vIjsgaWYgKGNvbmZpZy5pc19zZWN1cmUgPT09ICd0cnVlJykgeyBjb29raWVfdmFsdWUgKz0gIjtzZWN1cmU9dHJ1ZSIgfTsgZG9jdW1lbnQuY29va2llID0gY29va2llX3ZhbHVlOyB9LAogICAgICAgIHJlbW92ZTogZnVuY3Rpb24obikgeyBkb2N1bWVudC5jb29raWUgPSBuICsgJz07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDsnOyB9CiAgICB9OwogICAgaGwucHJvdG90eXBlLmdlbl9zaWJfY3VpZCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7IHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHsgdmFyIHIgPSAoZCArIE1hdGgucmFuZG9tKCkgKiAxNikgJSAxNiB8IDA7IGQgPSBNYXRoLmZsb29yKGQgLyAxNik7IHJldHVybiAoYyA9PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpKS50b1N0cmluZygxNik7fSk7CiAgICB9OwogICAgaGwucHJvdG90eXBlLmNsb3Nlc3QgPSBmdW5jdGlvbihlbCwgZm4pIHsKICAgICAgICByZXR1cm4gZWwgJiYgKGZuKGVsKSA/IGVsIDogdGhpcy5jbG9zZXN0KGVsLnBhcmVudE5vZGUsIGZuKSk7CiAgICB9OwogICAgaGwucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbihkLCBjYikgewogICAgICAgIHZhciB1ID0gY29uZmlnLnVybCArICc/JyArIHNyKGQpLCB4ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHgub3BlbigiR0VUIiwgdSwgITApOyB4LnNlbmQoKTsgcmV0dXJuIGNiICYmIGNiKG51bGwpOwogICAgfTsKICAgIGhsLnByb3RvdHlwZS5wb3N0ID0gZnVuY3Rpb24oZCwgY2IpIHsKICAgICAgICB2YXIgdSA9IGNvbmZpZy51cmwsIHggPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgeC5vcGVuKCJQT1NUIiwgdSwgITApOyB4LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiKTsgeC5zZW5kKEpTT04uc3RyaW5naWZ5KGQpKTsgcmV0dXJuIGNiICYmIGNiKG51bGwpOwogICAgfTsKICAgIGhsLnByb3RvdHlwZS5wb3N0UmVxID0gZnVuY3Rpb24odXJsLCBiLCBoLCBjYikgewogICAgICAgIHZhciB1ID0gdXJsLCB4ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHgub3BlbigiUE9TVCIsIHUsICEwKTsgc2V0UmVxSGVhZGVycyh4LCBoKTsgeC5zZW5kKEpTT04uc3RyaW5naWZ5KGIpKTsKICAgIH07CiAgICBzaWIucHJvdG90eXBlLnRyYWNrID0gZnVuY3Rpb24obiwgZCwgcywgYSwgY2IpIHsKICAgICAgICBpZiAoY29uZmlnLnRyYWNraW5nX2VuYWJsZWQudHJhY2sgPT09ICdmYWxzZScpIHsKICAgICAgICAgICAgcmV0dXJuIGNiKCk7CiAgICAgICAgfQogICAgICAgIGlmIChuICYmIG4gIT0gdW5kZWZpbmVkICYmIG4gIT0gIiIpIHsKICAgICAgICAgICAgdmFyIG8gPSB7InNpYl90eXBlIjogJ3RyYWNrJywgInNpYl9uYW1lIjogbn07CiAgICAgICAgICAgIGlmKGQgJiYgdHlwZW9mIGQgPT0gJ29iamVjdCcpeyBvLmNvbnRhY3QgPSBkOyB9CiAgICAgICAgICAgIGlmKHMgJiYgdHlwZW9mIHMgPT0gJ29iamVjdCcpeyBvLmV2ZW50ID0gczsgfQogICAgICAgICAgICBpZihhICYmIHR5cGVvZiBhID09ICdvYmplY3QnKXsgby5hY3Rpb25kYXRhID0gYTsgfQogICAgICAgICAgICBvID0gYnIobyk7CiAgICAgICAgICAgIEhlbHBlci5wb3N0KG8sIGZ1bmN0aW9uKGVycikgeyByZXR1cm4gY2IgJiYgY2IoZXJyKTsgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGNiICYmIGNiKCJFdmVudCBuYW1lIG5vdCBwYXNzZWQuIik7CiAgICAgICAgfQogICAgfTsKICAgIHNpYi5wcm90b3R5cGUuaWRlbnRpZnkgPSBmdW5jdGlvbihlbSwgZCwgY2IpIHsKICAgICAgICBpZiAoY29uZmlnLnRyYWNraW5nX2VuYWJsZWQuaWRlbnRpZnkgPT09ICdmYWxzZScpIHsKICAgICAgICAgICAgcmV0dXJuIGNiKCk7CiAgICAgICAgfQogICAgICAgIHZhciBvID0geyJzaWJfdHlwZSI6ICdpZGVudGlmeSd9OwogICAgICAgIGlmKHR5cGVvZiBlbSA9PT0gJ29iamVjdCcpeyAKICAgICAgICAgICAgaWYoZW0uYXR0cmlidXRlcyAmJiB0eXBlb2YgZW0uYXR0cmlidXRlcyA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgby5jb250YWN0ID0gZW0uYXR0cmlidXRlczsKICAgICAgICAgICAgfQogICAgICAgICAgICBvID0gYnIobyk7CiAgICAgICAgICAgIGlmKGVtLmlkZW50aWZpZXJzICYmIGVtLmlkZW50aWZpZXJzLmVtYWlsX2lkKXsKICAgICAgICAgICAgICAgIG8uZW1haWxfaWQgPSBlbS5pZGVudGlmaWVycy5lbWFpbF9pZDsKICAgICAgICAgICAgfSBlbHNlewogICAgICAgICAgICAgICAgcmV0dXJuIGQgJiYgZCgiRW1haWwgbm90IHBhc3NlZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIEhlbHBlci5wb3N0KG8sIGZ1bmN0aW9uKGVycikgeyByZXR1cm4gZCAmJiBkKGVycik7IH0pOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICggZW0gIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZW0gPT09ICJzdHJpbmciICYmIGVtICE9PSAiIikgewogICAgICAgICAgICBpZihkICYmIHR5cGVvZiBkID09PSAnb2JqZWN0Jyl7IG8uY29udGFjdCA9IGQ7IH0KICAgICAgICAgICAgbyA9IGJyKG8pOwogICAgICAgICAgICBvLmVtYWlsX2lkID0gZW07CiAgICAgICAgICAgIEhlbHBlci5wb3N0KG8sIGZ1bmN0aW9uKGVycikgeyByZXR1cm4gY2IgJiYgY2IoZXJyKTsgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGNiICYmIGNiKCJFbWFpbCBub3QgcGFzc2VkIik7CiAgICAgICAgfQogICAgfTsKICAgIHNpYi5wcm90b3R5cGUudHJhY2tMaW5rID0gZnVuY3Rpb24obCwgZCwgY2IpIHsKICAgICAgICBpZiAoY29uZmlnLnRyYWNraW5nX2VuYWJsZWQudHJhY2tMaW5rID09PSAnZmFsc2UnKSB7CiAgICAgICAgICAgIHJldHVybiBjYigpOwogICAgICAgIH0KICAgICAgICBkID0gYnIoZCk7IGQuc2liX3R5cGUgPSAndHJhY2tMaW5rJzsKICAgICAgICB2YXIgbGlua3MgPSBsID8gKEFycmF5LmlzQXJyYXkobCkgPyBsIDogW2xdKSA6IFtdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlua3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgKGZ1bmN0aW9uKHYsIHRkKSB7CiAgICAgICAgICAgICAgICBpZiAodikgewogICAgICAgICAgICAgICAgICAgIHZhciBocmVmID0gdi5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTsKICAgICAgICAgICAgICAgICAgICB2YXIganNDbG9zZXN0ID0gSGVscGVyLmNsb3Nlc3QodiwgZnVuY3Rpb24oZWwpIHsgcmV0dXJuIGVsICYmIHR5cGVvZiBlbC50YWdOYW1lICE9ICJ1bmRlZmluZWQiICYmIGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PSAnYSc7IH0pOwogICAgICAgICAgICAgICAgICAgIGlmIChqc0Nsb3Nlc3QgJiYgaHJlZikgewogICAgICAgICAgICAgICAgICAgICAgICB2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGQuaHJlZiA9IGhyZWYsIHRkLmxpbmtpZCA9IHYuZ2V0QXR0cmlidXRlKCdpZCcpLCB0ZC5zaWJfbmFtZSA9IHYuZ2V0QXR0cmlidXRlKCdpZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscGVyLnNlbmQodGQsIGZ1bmN0aW9uKGVycikgeyBjYiAmJiBjYihlcnIpOyAodi5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpICE9PSAnX2JsYW5rJykgPyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGhyZWY7IH0sIDEwMDApOiB3aW5kb3cub3BlbihocmVmKTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkobGlua3NbaV0sIGQpOwogICAgICAgIH0KICAgIH07CiAgICBzaWIucHJvdG90eXBlLnBhZ2UgPSBmdW5jdGlvbihuLCBkLCBjYikgewogICAgICAgIGlmIChjb25maWcudHJhY2tpbmdfZW5hYmxlZC5wYWdlID09PSAnZmFsc2UnKSB7CiAgICAgICAgICAgIHJldHVybiBjYigpOwogICAgICAgIH0KICAgICAgICBkID0gYnIoZCk7IGQuc2liX3R5cGUgPSAncGFnZScsIGQubWFfdGl0bGUgPSBkLnRpdGxlIHx8IGQubWFfdGl0bGUgfHwgZG9jdW1lbnQudGl0bGUsIGQuc2liX25hbWUgPSBuIHx8IGQubWFfdGl0bGUsZC5tYV9yZWZlcnJlciA9IGQucmVmZXJyZXIgfHwgZC5tYV9yZWZlcnJlciB8fCBkb2N1bWVudC5yZWZlcnJlcixkLm1hX3BhdGggPSBkLnBhdGggfHwgZC5tYV9wYXRoIHx8IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKICAgICAgICBIZWxwZXIuc2VuZChkLCBmdW5jdGlvbihlcnIpIHsgcmV0dXJuIGNiICYmIGNiKGVycik7IH0pOwogICAgfTsKICAgIHNpYi5wcm90b3R5cGUudmlld0NhdGVnb3J5ID0gZnVuY3Rpb24obiwgY2IpIHsKICAgICAgICBpZiAoY29uZmlnLnRyYWNraW5nX2VuYWJsZWQudmlld0NhdGVnb3J5ID09PSAnZmFsc2UnKSB7CiAgICAgICAgICAgIHJldHVybiBjYigpOwogICAgICAgIH0KICAgICAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZVJlcSgidmlld19jYXRlZ29yeSIsICIvZWNvbW1lcmNlL2NhdGVnb3J5L3ZpZXciKTsKICAgICAgICByZXF1ZXN0LnJlcUJvZHkuY2F0ZWdvcnlfaWQgPSBuOwogICAgICAgIEhlbHBlci5wb3N0UmVxKHJlcXVlc3QudXJsLCByZXF1ZXN0LnJlcUJvZHksIHJlcXVlc3QuaGVhZGVycywgZnVuY3Rpb24oZXJyKSB7IHJldHVybiBjYiAmJiBjYihlcnIpOyB9KTsKICAgIH07CiAgICBzaWIucHJvdG90eXBlLnZpZXdQcm9kdWN0ID0gZnVuY3Rpb24obiwgY2IpIHsKICAgICAgICBpZiAoY29uZmlnLnRyYWNraW5nX2VuYWJsZWQudmlld1Byb2R1Y3QgPT09ICdmYWxzZScpIHsKICAgICAgICAgICAgcmV0dXJuIGNiKCk7CiAgICAgICAgfQogICAgICAgIHZhciByZXF1ZXN0ID0gY3JlYXRlUmVxKCJ2aWV3X3Byb2R1Y3QiLCAiL2Vjb21tZXJjZS9wcm9kdWN0L3ZpZXciKTsKICAgICAgICByZXF1ZXN0LnJlcUJvZHkucHJvZHVjdF9pZCA9IG47CiAgICAgICAgSGVscGVyLnBvc3RSZXEocmVxdWVzdC51cmwsIHJlcXVlc3QucmVxQm9keSwgcmVxdWVzdC5oZWFkZXJzLCBmdW5jdGlvbihlcnIpIHsgcmV0dXJuIGNiICYmIGNiKGVycik7IH0pOwogICAgfTsKICAgIHNpYi5wcm90b3R5cGUuc2VhcmNoID0gZnVuY3Rpb24ocSwgdSwgY2IpIHsKICAgICAgICBpZiAoY29uZmlnLnRyYWNraW5nX2VuYWJsZWQuc2VhcmNoID09PSAnZmFsc2UnKSB7CiAgICAgICAgICAgIHJldHVybiBjYigpOwogICAgICAgIH0KICAgICAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZVJlcSgiZWNvbW1lcmNlX3NlYXJjaCIsICIvZWNvbW1lcmNlL3NlYXJjaCIpOwogICAgICAgIHJlcXVlc3QucmVxQm9keS5xdWVyeSA9IHE7CiAgICAgICAgcmVxdWVzdC5yZXFCb2R5LnVybCA9IHU7CiAgICAgICAgSGVscGVyLnBvc3RSZXEocmVxdWVzdC51cmwsIHJlcXVlc3QucmVxQm9keSwgcmVxdWVzdC5oZWFkZXJzLCBmdW5jdGlvbihlcnIpIHsgcmV0dXJuIGNiICYmIGNiKGVycik7IH0pOwogICAgfTsKICAgIHNpYi5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uKGVsZSkgewogICAgICAgIGlmKHR5cGVvZiBlbGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgZWxlKCk7CiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGVsZSkgJiYgdHlwZW9mIGVsZVswXSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gZWxlWzBdOwogICAgICAgICAgICB2YXIgYXJncyA9IGVsZS5zbGljZSgxKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzW2Z1bmNOYW1lXSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgdGhpc1tmdW5jTmFtZV0uYXBwbHkobnVsbCwgYXJncyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwogICAgc2liLnByb3RvdHlwZS5zZXRJbkFwcE1lc3NhZ2VzU3VwcHJlc3NlZCA9IGZ1bmN0aW9uKGVsZSkgewogICAgICAgIAogICAgICAgIGNvbnNvbGUud2FybigiV29uZGVycHVzaCBpcyBub3QgZW5hYmxlZCIpOwogICAgICAgIAogICAgfTsKICAgIHdpbmRvdy5zaWIgPSBtbyhuZXcgc2liKCksIHdpbmRvdy5zaWIpOwogICAgd2luZG93LkJyZXZvID0gd2luZG93LnNpYjsgCiAgICB2YXIgY3VpZDsKICAgIHZhciBjbV9mbGFnID0gZmFsc2U7CiAgICBpZiAoSGVscGVyLmNvb2tpZS5nZXQoJ3NpYl9jdWlkJykpIHsKICAgICAgICBjdWlkID0gSGVscGVyLmNvb2tpZS5nZXQoJ3NpYl9jdWlkJyk7CiAgICB9IGVsc2UgewogICAgICAgIGN1aWQgPSBIZWxwZXIuZ2VuX3NpYl9jdWlkKCk7CiAgICAgICAgY21fZmxhZyA9IHRydWU7CiAgICAgICAgSGVscGVyLmNvb2tpZS5zZXQoJ3NpYl9jdWlkJywgY3VpZCk7CiAgICB9CiAgICAKICAgIHZhciBzZSA9ICcnLCBzYz0gJyc7CiAgICBmdW5jdGlvbiBsb2FkX2NtKGMpewogICAgICAgIGxldCBjb250YWN0X2VtYWlsID0gIiIsIHBhcmFtZXRlciA9ICIiLCBvcmdhbml6YXRpb25faWQgPSAwLCBjb250YWN0X2lkID0gMDsKICAgICAgICBsZXQgcGhvbmVfaWQgPSAiIiwgd2hhdHNhcHBfaWQgPSAiIjsKICAgICAgICBpZihpbml0T3B0aW9ucy5lbWFpbF9pZCAmJiBpbml0T3B0aW9ucy5lbWFpbF9pZC5sZW5ndGggPiAzKSB7CiAgICAgICAgICAgIGNvbnRhY3RfZW1haWwgPSBpbml0T3B0aW9ucy5lbWFpbF9pZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwogICAgICAgICAgICBzZSA9IHVybFBhcmFtcy5nZXQoJ19zZScpOwogICAgICAgICAgICBzYyA9IHVybFBhcmFtcy5nZXQoJ19zYycpOwogICAgICAgICAgICBjb25zdCBpZGYgPSB1cmxQYXJhbXMuZ2V0KCJfaWRmIik7CiAgICAgICAgICAgIGlmKHNlKSB7CiAgICAgICAgICAgICAgICBjb250YWN0X2VtYWlsID0gd2luZG93LmF0b2Ioc2UpOwogICAgICAgICAgICAgICAgcGFyYW1ldGVyID0gIl9zZSIKICAgICAgICAgICAgfSBlbHNlIGlmKHNjKSB7CiAgICAgICAgICAgICAgICB2YXIgY29udGFjdF9tZXRhZGF0YSA9IHdpbmRvdy5hdG9iKHNjKS5zcGxpdCgnIycpCiAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25faWQgPSBwYXJzZUludChjb250YWN0X21ldGFkYXRhWzBdLDEwKQogICAgICAgICAgICAgICAgY29udGFjdF9pZCA9IHBhcnNlSW50KGNvbnRhY3RfbWV0YWRhdGFbMV0sMTApCiAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgPSAiX3NjIgogICAgICAgICAgICB9IGVsc2UgaWYoaWRmKSB7CiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHdpbmRvdy5hdG9iKGlkZikuc3BsaXQoIiMiKTsKICAgICAgICAgICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gcGFydHNbMF07CiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0c1sxXTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICJwaWQiKSBwaG9uZV9pZCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAid2lkIikgd2hhdHNhcHBfaWQgPSB2YWx1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGN1aWQgJiYgKHBob25lX2lkLmxlbmd0aCA+IDAgfHwgd2hhdHNhcHBfaWQubGVuZ3RoID4gMCkgJiYgY29uZmlnLmN1c3RvbV91cmxfcGFyc2luZyA9PSAidHJ1ZSIpewogICAgICAgICAgICBjb25zdCBpZGVudGlmaWVycyA9IHt9OwogICAgICAgICAgICBpZiAocGhvbmVfaWQpIGlkZW50aWZpZXJzLnBob25lX2lkID0gcGhvbmVfaWQ7CiAgICAgICAgICAgIGlmICh3aGF0c2FwcF9pZCkgaWRlbnRpZmllcnMud2hhdHNhcHBfaWQgPSB3aGF0c2FwcF9pZDsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7dmlzaXRvcl9pZDogY3VpZCwgaWRlbnRpZmllcnM6IGlkZW50aWZpZXJzfTsKICAgICAgICAgICAgY29uc3QgaWRlbnRpZmljYXRpb25fdXJsID0gY29uZmlnLmJhc2VfdXJsICsgJy9pbnRlcm5hbC9pZGVudGlmaWNhdGlvbic7CiAgICAgICAgICAgIGNvbnN0IHggPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgCiAgICAgICAgICAgIHgub3BlbigiUE9TVCIsIGlkZW50aWZpY2F0aW9uX3VybCwgITApOyAKICAgICAgICAgICAgeC5zZXRSZXF1ZXN0SGVhZGVyKCJtYS1rZXkiLCBjayk7CiAgICAgICAgICAgIHguc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpOyAKICAgICAgICAgICAgeC5zZW5kKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTsKICAgICAgICAgICAgcmV0dXJuIGMgJiYgYygpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiAoY3VpZCAmJiAoY29udGFjdF9lbWFpbCB8fCBjb250YWN0X2lkKSAmJiBjb25maWcuY3VzdG9tX3VybF9wYXJzaW5nID09ICJ0cnVlIil7CiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7dmlzaXRvcl9pZDogY3VpZCwgZW1haWxfaWQ6IGNvbnRhY3RfZW1haWwsIG9yZ2FuaXphdGlvbl9pZCwgY29udGFjdF9pZCwgcGFyYW1ldGVyfTsKICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbl91cmwgPSBjb25maWcuYmFzZV91cmwgKyAnL3Zpc2l0b3IvJyArIGNrLCB4ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHgub3BlbigiUE9TVCIsIHNlc3Npb25fdXJsLCAhMCk7IHguc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpOyB4LnNlbmQoSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpOwogICAgICAgICAgICByZXR1cm4gYyAmJiBjKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCFjb25maWcuY3VzdG9tX3VybF9wYXJzaW5nIHx8IGNvbmZpZy5jdXN0b21fdXJsX3BhcnNpbmcgPT0gImZhbHNlIikgewogICAgICAgICAgICBjbSA9IHtjdWlkOiBjdWlkLCBjbV9mbGFnOiBjbV9mbGFnLCBhbGxvd19jb29raWU6SGVscGVyLmNvb2tpZS5nZXQoJ2Nvb2tpZWNvbnNlbnRfc3RhdHVzJyl9OwogICAgICAgICAgICBpbml0T3B0aW9ucy5lbWFpbF9pZCAmJiAoY20uZW1haWxfaWQgPSBpbml0T3B0aW9ucy5lbWFpbF9pZCk7CiAgICAgICAgICAgIHZhciBpPShjb25maWcuaWZfdXJsLmluZGV4T2YoJyMnKSA+IDApID8gY29uZmlnLmlmX3VybC5pbmRleE9mKCcjJykgOiAoY29uZmlnLmlmX3VybC5sZW5ndGgpOwogICAgICAgICAgICBjb25maWcuaWZfdXJsID0gY29uZmlnLmlmX3VybC5zdWJzdHIoMCxpKTsKICAgICAgICAgICAgY29uZmlnLmlmX3VybCA9IGNvbmZpZy5pZl91cmwgKyAnIycgKyBzcihjbSk7CiAgICAgICAgICAgIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO2lmcmFtZS5pZD0iY21faWZyYW1lIiwgaWZyYW1lLmhlaWdodCA9ICIwIiwgaWZyYW1lLndpZHRoID0gIjAiLCBpZnJhbWUuc3R5bGUuZGlzcGxheSA9ICJub25lIiwgaWZyYW1lLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIiwgaWZyYW1lLnNyYyA9IGNvbmZpZy5pZl91cmwgKyAiJmk9MCI7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKICAgICAgICAgICAgaWYgKGlmcmFtZS5yZWFkeVN0YXRlKSB7CiAgICAgICAgICAgICAgICBpZnJhbWUub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgeyBpZiAoaWZyYW1lLnJlYWR5U3RhdGUgPT0gImxvYWRlZCIgfHwgaWZyYW1lLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgeyBpZnJhbWUub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDsgcmV0dXJuIGMgJiYgYygpOyB9IH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZnJhbWUub25sb2FkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gYyAmJiBjKCk7IH07CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2V7CiAgICAgICAgICAgIHJldHVybiBjICYmIGMoKTsKICAgICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBvblNjcmlwdFJlYWR5KCl7CiAgICAgICAgdHlwZW9mIGNyZWF0ZV9jaGF0ID09ICJmdW5jdGlvbiIgJiYgY3JlYXRlX2NoYXQoKTsgCiAgICAgICAgdHlwZW9mIHRyaWdnZXJOb3RpZnlFbmdpbmUgPT0gImZ1bmN0aW9uIiAmJiB0cmlnZ2VyTm90aWZ5RW5naW5lKCk7IAogICAgICAgIHEoKTsgCiAgICB9CiAgICAKICAgIAogICAKICAgIAogICAgbG9hZF9jbShvblNjcmlwdFJlYWR5KTsKfSkoKTsK"}},"time_used":3197,"timings":{"blocked":0,"dns":4,"connect":1,"send":0,"wait":30,"receive":0,"ssl":3162},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VTextField.EQu_V7iV.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.478Z","timestamp":1785139669478,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VTextField.EQu_V7iV.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"5860-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 3613\r\nKeep-Alive: timeout=5, max=92\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":22624,"size_decoded":3950,"mime_type":"text/css","magic":"ASCII text, with very long lines (22623)","md5":"01560f3f274874ce537a21d453486c5f","sha1":"6ff852ee5ec7ee60a4fb2a9c14c1911bb4b41f02","sha256":"56c5b93419aafdbcd89e2b779143d29eb7d6d54ddcb99166da4f0f8395dd50d3","sha512":"103fac0d96a2d180ef96d65468e9bf075039af2b72c3b61b3fab1f2127ce586e0f061604892a89a71f97124f95671744b91b9607acd5decfdd0c916b61aed5a7","ssdeep":"384:pFBTruQlt79o2GajHOjNj9OEVgSaR/dAfpsZm15FF:XBTrBjmfp315FF","tlshash":"49a2b9715a807d289a06f9e4ddc5e938db0a4371cf0643a2df933d1f5386aa1173ad39","first_seen":"2025-10-23T03:46:52.834442Z","last_seen":"2026-07-27T11:49:48.924837Z","times_seen":11,"resource_available":false,"data":"LnYtdGV4dC1maWVsZCBpbnB1dHtjb2xvcjppbmhlcml0O2ZsZXg6MTttaW4td2lkdGg6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnYtdGV4dC1maWVsZCBpbnB1dDphY3RpdmUsLnYtdGV4dC1maWVsZCBpbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmV9LnYtdGV4dC1maWVsZCBpbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZX0udi10ZXh0LWZpZWxkIC52LWZpZWxke2N1cnNvcjp0ZXh0fS52LXRleHQtZmllbGQtLXByZWZpeGVkLnYtdGV4dC1maWVsZCAudi1maWVsZF9faW5wdXR7LS12LWZpZWxkLXBhZGRpbmctc3RhcnQ6NnB4fS52LXRleHQtZmllbGQtLXN1ZmZpeGVkLnYtdGV4dC1maWVsZCAudi1maWVsZF9faW5wdXR7LS12LWZpZWxkLXBhZGRpbmctZW5kOjB9LnYtdGV4dC1maWVsZCAudi1pbnB1dF9fZGV0YWlsc3twYWRkaW5nLWlubGluZToxNnB4fS52LWlucHV0LS1wbGFpbi11bmRlcmxpbmVkLnYtdGV4dC1maWVsZCAudi1pbnB1dF9fZGV0YWlsc3twYWRkaW5nLWlubGluZTowfS52LXRleHQtZmllbGQgLnYtZmllbGQtLWFjdGl2ZSBpbnB1dCwudi10ZXh0LWZpZWxkIC52LWZpZWxkLS1uby1sYWJlbCBpbnB1dHtvcGFjaXR5OjF9LnYtdGV4dC1maWVsZCAudi1maWVsZC0tc2luZ2xlLWxpbmUgaW5wdXR7dHJhbnNpdGlvbjpub25lfS52LXRleHQtZmllbGRfX3ByZWZpeCwudi10ZXh0LWZpZWxkX19zdWZmaXh7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LW1lZGl1bS1lbXBoYXNpcy1vcGFjaXR5KSk7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O21pbi1oZWlnaHQ6bWF4KHZhcigtLXYtaW5wdXQtY29udHJvbC1oZWlnaHQsNTZweCksMS41cmVtICsgdmFyKC0tdi1maWVsZC1pbnB1dC1wYWRkaW5nLXRvcCkgKyB2YXIoLS12LWZpZWxkLWlucHV0LXBhZGRpbmctYm90dG9tKSk7b3BhY2l0eTowO3BhZGRpbmctYm90dG9tOnZhcigtLXYtZmllbGQtcGFkZGluZy1ib3R0b20sNnB4KTtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXYtZmllbGQtcGFkZGluZy10b3AsIDRweCkgKyB2YXIoLS12LWlucHV0LXBhZGRpbmctdG9wLCAwKSk7dHJhbnNpdGlvbjppbmhlcml0O3doaXRlLXNwYWNlOm5vd3JhcH0udi1maWVsZC0tYWN0aXZlIC52LXRleHQtZmllbGRfX3ByZWZpeCwudi1maWVsZC0tYWN0aXZlIC52LXRleHQtZmllbGRfX3N1ZmZpeHtvcGFjaXR5OjF9LnYtZmllbGQtLWRpc2FibGVkIC52LXRleHQtZmllbGRfX3ByZWZpeCwudi1maWVsZC0tZGlzYWJsZWQgLnYtdGV4dC1maWVsZF9fc3VmZml4e2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWRpc2FibGVkLW9wYWNpdHkpKX0udi10ZXh0LWZpZWxkX19wcmVmaXh7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tdi1maWVsZC1wYWRkaW5nLXN0YXJ0KX0udi10ZXh0LWZpZWxkX19zdWZmaXh7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXYtZmllbGQtcGFkZGluZy1lbmQpfS52LWNvdW50ZXJ7Y29sb3I6cmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLHZhcigtLXYtbWVkaXVtLWVtcGhhc2lzLW9wYWNpdHkpKTtmbGV4OjAgMSBhdXRvO2ZvbnQtc2l6ZToxMnB4O3RyYW5zaXRpb24tZHVyYXRpb246LjE1c30udi1maWVsZHtib3JkZXItcmFkaXVzOjRweDtjb250YWluOmxheW91dDtkaXNwbGF5OmdyaWQ7ZmxleDoxIDA7Zm9udC1zaXplOjE2cHg7Z3JpZC1hcmVhOmNvbnRyb2w7Z3JpZC10ZW1wbGF0ZS1hcmVhczoicHJlcGVuZC1pbm5lciBmaWVsZCBjbGVhciBhcHBlbmQtaW5uZXIiO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW4tY29udGVudCBtaW5tYXgoMCwxZnIpIG1pbi1jb250ZW50IG1pbi1jb250ZW50O2xldHRlci1zcGFjaW5nOi4wMDkzNzVlbTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTstLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOjE7LS12LWZpZWxkLXBhZGRpbmctc3RhcnQ6MTZweDstLXYtZmllbGQtcGFkZGluZy1lbmQ6MTZweDstLXYtZmllbGQtcGFkZGluZy10b3A6OHB4Oy0tdi1maWVsZC1wYWRkaW5nLWJvdHRvbTo0cHg7LS12LWZpZWxkLWlucHV0LXBhZGRpbmctdG9wOmNhbGModmFyKC0tdi1maWVsZC1wYWRkaW5nLXRvcCwgOHB4KSArIHZhcigtLXYtaW5wdXQtcGFkZGluZy10b3AsIDApKTstLXYtZmllbGQtaW5wdXQtcGFkZGluZy1ib3R0b206dmFyKC0tdi1maWVsZC1wYWRkaW5nLWJvdHRvbSw0cHgpfS52LWZpZWxkLS1kaXNhYmxlZHtvcGFjaXR5OnZhcigtLXYtZGlzYWJsZWQtb3BhY2l0eSk7cG9pbnRlci1ldmVudHM6bm9uZX0udi1maWVsZCAudi1jaGlwey0tdi1jaGlwLWhlaWdodDoyNHB4fS52LWZpZWxkLS1wcmVwZW5kZWR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MTJweH0udi1maWVsZC0tYXBwZW5kZWR7cGFkZGluZy1pbmxpbmUtZW5kOjEycHh9LnYtZmllbGQtLXZhcmlhbnQtc29sbywudi1maWVsZC0tdmFyaWFudC1zb2xvLWZpbGxlZCwudi1maWVsZC0tdmFyaWFudC1zb2xvLWludmVydGVke2JhY2tncm91bmQ6cmdiKHZhcigtLXYtdGhlbWUtc3VyZmFjZSkpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3gtc2hhZG93OjAgM3B4IDFweCAtMnB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDJweCAycHggMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgMXB4IDVweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKTtjb2xvcjpyZ2JhKHZhcigtLXYtdGhlbWUtb24tc3VyZmFjZSksdmFyKC0tdi1oaWdoLWVtcGhhc2lzLW9wYWNpdHkpKX0udi1maWVsZC0tdmFyaWFudC1zb2xvLWludmVydGVkLnYtZmllbGQtLWZvY3VzZWR7Y29sb3I6cmdiKHZhcigtLXYtdGhlbWUtb24tc3VyZmFjZS12YXJpYW50KSl9LnYtZmllbGQtLXZhcmlhbnQtZmlsbGVke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS52LWlucHV0LS1kZW5zaXR5LWRlZmF1bHQgLnYtZmllbGQtLXZhcmlhbnQtZmlsbGVkLC52LWlucHV0LS1kZW5zaXR5LWRlZmF1bHQgLnYtZmllbGQtLXZhcmlhbnQtc29sbywudi1pbnB1dC0tZGVuc2l0eS1kZWZhdWx0IC52LWZpZWxkLS12YXJpYW50LXNvbG8tZmlsbGVkLC52LWlucHV0LS1kZW5zaXR5LWRlZmF1bHQgLnYtZmllbGQtLXZhcmlhbnQtc29sby1pbnZlcnRlZHstLXYtaW5wdXQtY29udHJvbC1oZWlnaHQ6NTZweDstLXYtZmllbGQtcGFkZGluZy1ib3R0b206NHB4fS52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LWZpbGxlZCwudi1pbnB1dC0tZGVuc2l0eS1jb21mb3J0YWJsZSAudi1maWVsZC0tdmFyaWFudC1zb2xvLC52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LXNvbG8tZmlsbGVkLC52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LXNvbG8taW52ZXJ0ZWR7LS12LWlucHV0LWNvbnRyb2wtaGVpZ2h0OjQ4cHg7LS12LWZpZWxkLXBhZGRpbmctYm90dG9tOjBweH0udi1pbnB1dC0tZGVuc2l0eS1jb21wYWN0IC52LWZpZWxkLS12YXJpYW50LWZpbGxlZCwudi1pbnB1dC0tZGVuc2l0eS1jb21wYWN0IC52LWZpZWxkLS12YXJpYW50LXNvbG8sLnYtaW5wdXQtLWRlbnNpdHktY29tcGFjdCAudi1maWVsZC0tdmFyaWFudC1zb2xvLWZpbGxlZCwudi1pbnB1dC0tZGVuc2l0eS1jb21wYWN0IC52LWZpZWxkLS12YXJpYW50LXNvbG8taW52ZXJ0ZWR7LS12LWlucHV0LWNvbnRyb2wtaGVpZ2h0OjQwcHg7LS12LWZpZWxkLXBhZGRpbmctYm90dG9tOjBweH0udi1maWVsZC0tbm8tbGFiZWwsLnYtZmllbGQtLXNpbmdsZS1saW5lLC52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkey0tdi1maWVsZC1wYWRkaW5nLXRvcDowcHh9LnYtaW5wdXQtLWRlbnNpdHktZGVmYXVsdCAudi1maWVsZC0tbm8tbGFiZWwsLnYtaW5wdXQtLWRlbnNpdHktZGVmYXVsdCAudi1maWVsZC0tc2luZ2xlLWxpbmUsLnYtaW5wdXQtLWRlbnNpdHktZGVmYXVsdCAudi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZHstLXYtZmllbGQtcGFkZGluZy1ib3R0b206MTZweH0udi1pbnB1dC0tZGVuc2l0eS1jb21mb3J0YWJsZSAudi1maWVsZC0tbm8tbGFiZWwsLnYtaW5wdXQtLWRlbnNpdHktY29tZm9ydGFibGUgLnYtZmllbGQtLXNpbmdsZS1saW5lLC52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkey0tdi1maWVsZC1wYWRkaW5nLWJvdHRvbToxMnB4fS52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3QgLnYtZmllbGQtLW5vLWxhYmVsLC52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3QgLnYtZmllbGQtLXNpbmdsZS1saW5lLC52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3QgLnYtZmllbGQtLXZhcmlhbnQtb3V0bGluZWR7LS12LWZpZWxkLXBhZGRpbmctYm90dG9tOjhweH0udi1maWVsZC0tdmFyaWFudC1wbGFpbiwudi1maWVsZC0tdmFyaWFudC11bmRlcmxpbmVke2JvcmRlci1yYWRpdXM6MDtwYWRkaW5nOjB9LnYtZmllbGQtLXZhcmlhbnQtcGxhaW4udi1maWVsZCwudi1maWVsZC0tdmFyaWFudC11bmRlcmxpbmVkLnYtZmllbGR7LS12LWZpZWxkLXBhZGRpbmctc3RhcnQ6MHB4Oy0tdi1maWVsZC1wYWRkaW5nLWVuZDowcHh9LnYtaW5wdXQtLWRlbnNpdHktZGVmYXVsdCAudi1maWVsZC0tdmFyaWFudC1wbGFpbiwudi1pbnB1dC0tZGVuc2l0eS1kZWZhdWx0IC52LWZpZWxkLS12YXJpYW50LXVuZGVybGluZWR7LS12LWlucHV0LWNvbnRyb2wtaGVpZ2h0OjQ4cHg7LS12LWZpZWxkLXBhZGRpbmctdG9wOjRweDstLXYtZmllbGQtcGFkZGluZy1ib3R0b206NHB4fS52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LXBsYWluLC52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LXVuZGVybGluZWR7LS12LWlucHV0LWNvbnRyb2wtaGVpZ2h0OjQwcHg7LS12LWZpZWxkLXBhZGRpbmctdG9wOjJweDstLXYtZmllbGQtcGFkZGluZy1ib3R0b206MHB4fS52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3QgLnYtZmllbGQtLXZhcmlhbnQtcGxhaW4sLnYtaW5wdXQtLWRlbnNpdHktY29tcGFjdCAudi1maWVsZC0tdmFyaWFudC11bmRlcmxpbmVkey0tdi1pbnB1dC1jb250cm9sLWhlaWdodDozMnB4Oy0tdi1maWVsZC1wYWRkaW5nLXRvcDowcHg7LS12LWZpZWxkLXBhZGRpbmctYm90dG9tOjBweH0udi1maWVsZC0tZmxhdHtib3gtc2hhZG93Om5vbmV9LnYtZmllbGQtLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czoyNHB4fS52LWZpZWxkLnYtZmllbGQtLXByZXBlbmRlZHstLXYtZmllbGQtcGFkZGluZy1zdGFydDo2cHh9LnYtZmllbGQudi1maWVsZC0tYXBwZW5kZWR7LS12LWZpZWxkLXBhZGRpbmctZW5kOjZweH0udi1maWVsZF9faW5wdXR7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOmluaGVyaXQ7LW1vei1jb2x1bW4tZ2FwOjJweDtjb2x1bW4tZ2FwOjJweDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bGV0dGVyLXNwYWNpbmc6LjAwOTM3NWVtO21pbi1oZWlnaHQ6bWF4KHZhcigtLXYtaW5wdXQtY29udHJvbC1oZWlnaHQsNTZweCksMS41cmVtICsgdmFyKC0tdi1maWVsZC1pbnB1dC1wYWRkaW5nLXRvcCkgKyB2YXIoLS12LWZpZWxkLWlucHV0LXBhZGRpbmctYm90dG9tKSk7bWluLXdpZHRoOjA7b3BhY2l0eTp2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSk7cGFkZGluZy1pbmxpbmU6dmFyKC0tdi1maWVsZC1wYWRkaW5nLXN0YXJ0KSB2YXIoLS12LWZpZWxkLXBhZGRpbmctZW5kKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS12LWZpZWxkLWlucHV0LXBhZGRpbmctYm90dG9tKTtwYWRkaW5nLXRvcDp2YXIoLS12LWZpZWxkLWlucHV0LXBhZGRpbmctdG9wKTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS52LWlucHV0LS1kZW5zaXR5LWRlZmF1bHQgLnYtZmllbGRfX2lucHV0e3Jvdy1nYXA6OHB4fS52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkX19pbnB1dHtyb3ctZ2FwOjZweH0udi1pbnB1dC0tZGVuc2l0eS1jb21wYWN0IC52LWZpZWxkX19pbnB1dHtyb3ctZ2FwOjRweH0udi1maWVsZF9faW5wdXQgaW5wdXR7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdH0udi1maWVsZF9faW5wdXQgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsaW5wdXQudi1maWVsZF9faW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsdGV4dGFyZWEudi1maWVsZF9faW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6Y3VycmVudENvbG9yO29wYWNpdHk6dmFyKC0tdi1kaXNhYmxlZC1vcGFjaXR5KX0udi1maWVsZF9faW5wdXQgaW5wdXQ6OnBsYWNlaG9sZGVyLGlucHV0LnYtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcix0ZXh0YXJlYS52LWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6Y3VycmVudENvbG9yO29wYWNpdHk6dmFyKC0tdi1kaXNhYmxlZC1vcGFjaXR5KX0udi1maWVsZF9faW5wdXQ6YWN0aXZlLC52LWZpZWxkX19pbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmV9LnYtZmllbGRfX2lucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lfS52LWZpZWxkX19maWVsZHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtmbGV4OjEgMDtncmlkLWFyZWE6ZmllbGQ7cG9zaXRpb246cmVsYXRpdmV9LnYtZmllbGRfX3ByZXBlbmQtaW5uZXJ7Z3JpZC1hcmVhOnByZXBlbmQtaW5uZXI7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXYtZmllbGQtcGFkZGluZy1hZnRlcil9LnYtZmllbGRfX2NsZWFyYWJsZXtncmlkLWFyZWE6Y2xlYXJ9LnYtZmllbGRfX2FwcGVuZC1pbm5lcntncmlkLWFyZWE6YXBwZW5kLWlubmVyO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXYtZmllbGQtcGFkZGluZy1hZnRlcil9LnYtZmllbGRfX2FwcGVuZC1pbm5lciwudi1maWVsZF9fY2xlYXJhYmxlLC52LWZpZWxkX19wcmVwZW5kLWlubmVye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZGlzcGxheTpmbGV4O3BhZGRpbmctdG9wOnZhcigtLXYtaW5wdXQtcGFkZGluZy10b3AsOHB4KX0udi1maWVsZC0tY2VudGVyLWFmZml4IC52LWZpZWxkX19hcHBlbmQtaW5uZXIsLnYtZmllbGQtLWNlbnRlci1hZmZpeCAudi1maWVsZF9fY2xlYXJhYmxlLC52LWZpZWxkLS1jZW50ZXItYWZmaXggLnYtZmllbGRfX3ByZXBlbmQtaW5uZXJ7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctdG9wOjB9LnYtZmllbGQudi1maWVsZC0tdmFyaWFudC1wbGFpbiAudi1maWVsZF9fYXBwZW5kLWlubmVyLC52LWZpZWxkLnYtZmllbGQtLXZhcmlhbnQtcGxhaW4gLnYtZmllbGRfX2NsZWFyYWJsZSwudi1maWVsZC52LWZpZWxkLS12YXJpYW50LXBsYWluIC52LWZpZWxkX19wcmVwZW5kLWlubmVyLC52LWZpZWxkLnYtZmllbGQtLXZhcmlhbnQtdW5kZXJsaW5lZCAudi1maWVsZF9fYXBwZW5kLWlubmVyLC52LWZpZWxkLnYtZmllbGQtLXZhcmlhbnQtdW5kZXJsaW5lZCAudi1maWVsZF9fY2xlYXJhYmxlLC52LWZpZWxkLnYtZmllbGQtLXZhcmlhbnQtdW5kZXJsaW5lZCAudi1maWVsZF9fcHJlcGVuZC1pbm5lcnthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmctYm90dG9tOnZhcigtLXYtZmllbGQtcGFkZGluZy1ib3R0b20sNHB4KTtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXYtZmllbGQtcGFkZGluZy10b3AsIDhweCkgKyB2YXIoLS12LWlucHV0LXBhZGRpbmctdG9wLCAwKSl9LnYtZmllbGQtLWZvY3VzZWQgLnYtZmllbGRfX2FwcGVuZC1pbm5lciwudi1maWVsZC0tZm9jdXNlZCAudi1maWVsZF9fcHJlcGVuZC1pbm5lcntvcGFjaXR5OjF9LnYtZmllbGRfX2FwcGVuZC1pbm5lcj4udi1pY29uLC52LWZpZWxkX19jbGVhcmFibGU+LnYtaWNvbiwudi1maWVsZF9fcHJlcGVuZC1pbm5lcj4udi1pY29ue29wYWNpdHk6dmFyKC0tdi1tZWRpdW0tZW1waGFzaXMtb3BhY2l0eSl9LnYtZmllbGQtLWRpc2FibGVkIC52LWZpZWxkX19hcHBlbmQtaW5uZXI+LnYtaWNvbiwudi1maWVsZC0tZGlzYWJsZWQgLnYtZmllbGRfX2NsZWFyYWJsZT4udi1pY29uLC52LWZpZWxkLS1kaXNhYmxlZCAudi1maWVsZF9fcHJlcGVuZC1pbm5lcj4udi1pY29uLC52LWZpZWxkLS1lcnJvciAudi1maWVsZF9fYXBwZW5kLWlubmVyPi52LWljb24sLnYtZmllbGQtLWVycm9yIC52LWZpZWxkX19jbGVhcmFibGU+LnYtaWNvbiwudi1maWVsZC0tZXJyb3IgLnYtZmllbGRfX3ByZXBlbmQtaW5uZXI+LnYtaWNvbntvcGFjaXR5OjF9LnYtZmllbGQtLWVycm9yOm5vdCgudi1maWVsZC0tZGlzYWJsZWQpIC52LWZpZWxkX19hcHBlbmQtaW5uZXI+LnYtaWNvbiwudi1maWVsZC0tZXJyb3I6bm90KC52LWZpZWxkLS1kaXNhYmxlZCkgLnYtZmllbGRfX2NsZWFyYWJsZT4udi1pY29uLC52LWZpZWxkLS1lcnJvcjpub3QoLnYtZmllbGQtLWRpc2FibGVkKSAudi1maWVsZF9fcHJlcGVuZC1pbm5lcj4udi1pY29ue2NvbG9yOnJnYih2YXIoLS12LXRoZW1lLWVycm9yKSl9LnYtZmllbGRfX2NsZWFyYWJsZXtjdXJzb3I6cG9pbnRlcjttYXJnaW4taW5saW5lOjRweDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246LjE1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksdHJhbnNmb3JtLHdpZHRofS52LWZpZWxkLS1mb2N1c2VkIC52LWZpZWxkX19jbGVhcmFibGUsLnYtZmllbGQtLXBlcnNpc3RlbnQtY2xlYXIgLnYtZmllbGRfX2NsZWFyYWJsZXtvcGFjaXR5OjF9QG1lZGlhIChob3Zlcjpob3Zlcil7LnYtZmllbGQ6aG92ZXIgLnYtZmllbGRfX2NsZWFyYWJsZXtvcGFjaXR5OjF9fUBtZWRpYSAoaG92ZXI6bm9uZSl7LnYtZmllbGRfX2NsZWFyYWJsZXtvcGFjaXR5OjF9fS52LWxhYmVsLnYtZmllbGQtbGFiZWx7Y29udGFpbjpsYXlvdXQgcGFpbnQ7ZGlzcGxheTpibG9jazttYXJnaW4taW5saW5lLWVuZDp2YXIoLS12LWZpZWxkLXBhZGRpbmctZW5kKTttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLXYtZmllbGQtcGFkZGluZy1zdGFydCk7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIHZhcigtLXYtZmllbGQtcGFkZGluZy1zdGFydCkgLSB2YXIoLS12LWZpZWxkLXBhZGRpbmctZW5kKSk7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6dmFyKC0tdi1pbnB1dC1wYWRkaW5nLXRvcCk7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGNlbnRlcjt0cmFuc2l0aW9uOi4xNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5LHRyYW5zZm9ybTt6LWluZGV4OjF9LnYtZmllbGQtLXZhcmlhbnQtcGxhaW4gLnYtbGFiZWwudi1maWVsZC1sYWJlbCwudi1maWVsZC0tdmFyaWFudC11bmRlcmxpbmVkIC52LWxhYmVsLnYtZmllbGQtbGFiZWx7dG9wOmNhbGModmFyKC0tdi1pbnB1dC1wYWRkaW5nLXRvcCkgKyB2YXIoLS12LWZpZWxkLXBhZGRpbmctdG9wKSl9LnYtZmllbGQtLWNlbnRlci1hZmZpeCAudi1sYWJlbC52LWZpZWxkLWxhYmVse3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnYtZmllbGQtLWFjdGl2ZSAudi1sYWJlbC52LWZpZWxkLWxhYmVse3Zpc2liaWxpdHk6aGlkZGVufS52LWZpZWxkLS1lcnJvciAudi1sYWJlbC52LWZpZWxkLWxhYmVsLC52LWZpZWxkLS1mb2N1c2VkIC52LWxhYmVsLnYtZmllbGQtbGFiZWx7b3BhY2l0eToxfS52LWZpZWxkLS1lcnJvcjpub3QoLnYtZmllbGQtLWRpc2FibGVkKSAudi1sYWJlbC52LWZpZWxkLWxhYmVse2NvbG9yOnJnYih2YXIoLS12LXRoZW1lLWVycm9yKSl9LnYtbGFiZWwudi1maWVsZC1sYWJlbC0tZmxvYXRpbmd7LS12LWZpZWxkLWxhYmVsLXNjYWxlOi43NWVtO2ZvbnQtc2l6ZTp2YXIoLS12LWZpZWxkLWxhYmVsLXNjYWxlKTt2aXNpYmlsaXR5OmhpZGRlbn0udi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZ3ttYXgtd2lkdGg6MTAwJX0udi1maWVsZC0tY2VudGVyLWFmZml4IC52LWxhYmVsLnYtZmllbGQtbGFiZWwtLWZsb2F0aW5ne3RyYW5zZm9ybTpub25lfS52LWZpZWxkLnYtZmllbGQtLWFjdGl2ZSAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZ3t2aXNpYmlsaXR5OnVuc2V0fS52LWlucHV0LS1kZW5zaXR5LWRlZmF1bHQgLnYtZmllbGQtLXZhcmlhbnQtZmlsbGVkIC52LWxhYmVsLnYtZmllbGQtbGFiZWwtLWZsb2F0aW5nLC52LWlucHV0LS1kZW5zaXR5LWRlZmF1bHQgLnYtZmllbGQtLXZhcmlhbnQtc29sbyAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZywudi1pbnB1dC0tZGVuc2l0eS1kZWZhdWx0IC52LWZpZWxkLS12YXJpYW50LXNvbG8tZmlsbGVkIC52LWxhYmVsLnYtZmllbGQtbGFiZWwtLWZsb2F0aW5nLC52LWlucHV0LS1kZW5zaXR5LWRlZmF1bHQgLnYtZmllbGQtLXZhcmlhbnQtc29sby1pbnZlcnRlZCAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZ3t0b3A6N3B4fS52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LWZpbGxlZCAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZywudi1pbnB1dC0tZGVuc2l0eS1jb21mb3J0YWJsZSAudi1maWVsZC0tdmFyaWFudC1zb2xvIC52LWxhYmVsLnYtZmllbGQtbGFiZWwtLWZsb2F0aW5nLC52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LXNvbG8tZmlsbGVkIC52LWxhYmVsLnYtZmllbGQtbGFiZWwtLWZsb2F0aW5nLC52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWZpZWxkLS12YXJpYW50LXNvbG8taW52ZXJ0ZWQgLnYtbGFiZWwudi1maWVsZC1sYWJlbC0tZmxvYXRpbmd7dG9wOjVweH0udi1pbnB1dC0tZGVuc2l0eS1jb21wYWN0IC52LWZpZWxkLS12YXJpYW50LWZpbGxlZCAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZywudi1pbnB1dC0tZGVuc2l0eS1jb21wYWN0IC52LWZpZWxkLS12YXJpYW50LXNvbG8gLnYtbGFiZWwudi1maWVsZC1sYWJlbC0tZmxvYXRpbmcsLnYtaW5wdXQtLWRlbnNpdHktY29tcGFjdCAudi1maWVsZC0tdmFyaWFudC1zb2xvLWZpbGxlZCAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZywudi1pbnB1dC0tZGVuc2l0eS1jb21wYWN0IC52LWZpZWxkLS12YXJpYW50LXNvbG8taW52ZXJ0ZWQgLnYtbGFiZWwudi1maWVsZC1sYWJlbC0tZmxvYXRpbmd7dG9wOjNweH0udi1maWVsZC0tdmFyaWFudC1wbGFpbiAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZywudi1maWVsZC0tdmFyaWFudC11bmRlcmxpbmVkIC52LWxhYmVsLnYtZmllbGQtbGFiZWwtLWZsb2F0aW5ne21hcmdpbjowO3RvcDp2YXIoLS12LWlucHV0LXBhZGRpbmctdG9wKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTZweCl9LnYtZmllbGQtLXZhcmlhbnQtb3V0bGluZWQgLnYtbGFiZWwudi1maWVsZC1sYWJlbC0tZmxvYXRpbmd7bWFyZ2luOjAgNHB4O3Bvc2l0aW9uOnN0YXRpYzt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0udi1maWVsZF9fb3V0bGluZXstLXYtZmllbGQtYm9yZGVyLXdpZHRoOjFweDstLXYtZmllbGQtYm9yZGVyLW9wYWNpdHk6LjM4O2FsaWduLWl0ZW1zOnN0cmV0Y2g7Y29udGFpbjpsYXlvdXQ7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2xlZnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7d2lkdGg6MTAwJX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsudi1maWVsZDpob3ZlciAudi1maWVsZF9fb3V0bGluZXstLXYtZmllbGQtYm9yZGVyLW9wYWNpdHk6dmFyKC0tdi1oaWdoLWVtcGhhc2lzLW9wYWNpdHkpfX0udi1maWVsZC0tZXJyb3I6bm90KC52LWZpZWxkLS1kaXNhYmxlZCkgLnYtZmllbGRfX291dGxpbmV7Y29sb3I6cmdiKHZhcigtLXYtdGhlbWUtZXJyb3IpKX0udi1maWVsZC52LWZpZWxkLS1mb2N1c2VkIC52LWZpZWxkX19vdXRsaW5lLC52LWlucHV0LnYtaW5wdXQtLWVycm9yIC52LWZpZWxkX19vdXRsaW5ley0tdi1maWVsZC1ib3JkZXItb3BhY2l0eToxfS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkLnYtZmllbGQtLWZvY3VzZWQgLnYtZmllbGRfX291dGxpbmV7LS12LWZpZWxkLWJvcmRlci13aWR0aDoycHh9LnYtZmllbGQtLXZhcmlhbnQtZmlsbGVkIC52LWZpZWxkX19vdXRsaW5lOmJlZm9yZSwudi1maWVsZC0tdmFyaWFudC11bmRlcmxpbmVkIC52LWZpZWxkX19vdXRsaW5lOmJlZm9yZXtib3JkZXItY29sb3I6Y3VycmVudENvbG9yO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAwIHZhcigtLXYtZmllbGQtYm9yZGVyLXdpZHRoKTtjb250ZW50OiIiO2hlaWdodDoxMDAlO2xlZnQ6MDtvcGFjaXR5OnZhcigtLXYtZmllbGQtYm9yZGVyLW9wYWNpdHkpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3dpZHRoOjEwMCV9LnYtZmllbGQtLXZhcmlhbnQtZmlsbGVkIC52LWZpZWxkX19vdXRsaW5lOmFmdGVyLC52LWZpZWxkLS12YXJpYW50LXVuZGVybGluZWQgLnYtZmllbGRfX291dGxpbmU6YWZ0ZXJ7Ym9yZGVyOnNvbGlkO2JvcmRlci13aWR0aDowIDAgMnB4O2NvbnRlbnQ6IiI7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3RyYW5zZm9ybTpzY2FsZVgoMCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt3aWR0aDoxMDAlfS52LWZpZWxkLS1mb2N1c2VkLnYtZmllbGQtLXZhcmlhbnQtZmlsbGVkIC52LWZpZWxkX19vdXRsaW5lOmFmdGVyLC52LWZpZWxkLS1mb2N1c2VkLnYtZmllbGQtLXZhcmlhbnQtdW5kZXJsaW5lZCAudi1maWVsZF9fb3V0bGluZTphZnRlcnt0cmFuc2Zvcm06c2NhbGVYKDEpfS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5le2JvcmRlci1yYWRpdXM6aW5oZXJpdH0udi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fZW5kLC52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19ub3RjaDphZnRlciwudi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fbm90Y2g6YmVmb3JlLC52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19zdGFydHtib3JkZXI6MCBzb2xpZDtvcGFjaXR5OnZhcigtLXYtZmllbGQtYm9yZGVyLW9wYWNpdHkpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19zdGFydHtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLXYtZmllbGQtYm9yZGVyLXdpZHRoKTtib3JkZXItZW5kLWVuZC1yYWRpdXM6MDtib3JkZXItZW5kLXN0YXJ0LXJhZGl1czppbmhlcml0O2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tdi1maWVsZC1ib3JkZXItd2lkdGgpO2JvcmRlci1zdGFydC1lbmQtcmFkaXVzOjA7Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czppbmhlcml0O2JvcmRlci10b3Atd2lkdGg6dmFyKC0tdi1maWVsZC1ib3JkZXItd2lkdGgpO2ZsZXg6MCAwIDEycHh9LnYtZmllbGQtLXJvdW5kZWQudi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fc3RhcnQsW2NsYXNzKj0iIHJvdW5kZWQtIl0udi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fc3RhcnQsW2NsYXNzXj1yb3VuZGVkLV0udi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fc3RhcnR7ZmxleC1iYXNpczpjYWxjKHZhcigtLXYtaW5wdXQtY29udHJvbC1oZWlnaHQpLzIgKyAycHgpfS52LWZpZWxkLS1yZXZlcnNlLnYtZmllbGQtLXZhcmlhbnQtb3V0bGluZWQgLnYtZmllbGRfX291dGxpbmVfX3N0YXJ0e2JvcmRlci1lbmQtZW5kLXJhZGl1czppbmhlcml0O2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjA7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tdi1maWVsZC1ib3JkZXItd2lkdGgpO2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6MDtib3JkZXItc3RhcnQtZW5kLXJhZGl1czppbmhlcml0O2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6MH0udi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fbm90Y2h7ZmxleDpub25lO21heC13aWR0aDpjYWxjKDEwMCUgLSAyNHB4KTtwb3NpdGlvbjpyZWxhdGl2ZX0udi1maWVsZC0tcm91bmRlZC52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19ub3RjaCxbY2xhc3MqPSIgcm91bmRlZC0iXS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19ub3RjaCxbY2xhc3NePXJvdW5kZWQtXS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19ub3RjaHttYXgtd2lkdGg6Y2FsYygxMDAlIC0gdmFyKC0tdi1pbnB1dC1jb250cm9sLWhlaWdodCkpfS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19ub3RjaDphZnRlciwudi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fbm90Y2g6YmVmb3Jle2NvbnRlbnQ6IiI7aGVpZ2h0OjEwMCU7bGVmdDowO29wYWNpdHk6dmFyKC0tdi1maWVsZC1ib3JkZXItb3BhY2l0eSk7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7d2lkdGg6MTAwJX0udi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fbm90Y2g6YmVmb3Jle2JvcmRlci13aWR0aDp2YXIoLS12LWZpZWxkLWJvcmRlci13aWR0aCkgMCAwfS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19vdXRsaW5lX19ub3RjaDphZnRlcntib3JkZXItd2lkdGg6MCAwIHZhcigtLXYtZmllbGQtYm9yZGVyLXdpZHRoKTtib3R0b206MH0udi1maWVsZC0tYWN0aXZlLnYtZmllbGQtLXZhcmlhbnQtb3V0bGluZWQgLnYtZmllbGRfX291dGxpbmVfX25vdGNoOmJlZm9yZXtvcGFjaXR5OjB9LnYtZmllbGQtLXZhcmlhbnQtb3V0bGluZWQgLnYtZmllbGRfX291dGxpbmVfX2VuZHtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLXYtZmllbGQtYm9yZGVyLXdpZHRoKTtib3JkZXItZW5kLWVuZC1yYWRpdXM6aW5oZXJpdDtib3JkZXItZW5kLXN0YXJ0LXJhZGl1czowO2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLXYtZmllbGQtYm9yZGVyLXdpZHRoKTtib3JkZXItc3RhcnQtZW5kLXJhZGl1czppbmhlcml0O2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6MDtib3JkZXItdG9wLXdpZHRoOnZhcigtLXYtZmllbGQtYm9yZGVyLXdpZHRoKTtmbGV4OjF9LnYtZmllbGQtLXJldmVyc2Uudi1maWVsZC0tdmFyaWFudC1vdXRsaW5lZCAudi1maWVsZF9fb3V0bGluZV9fZW5ke2JvcmRlci1lbmQtZW5kLXJhZGl1czowO2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOmluaGVyaXQ7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6MDtib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLXYtZmllbGQtYm9yZGVyLXdpZHRoKTtib3JkZXItc3RhcnQtZW5kLXJhZGl1czowO2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6aW5oZXJpdH0udi1maWVsZF9fbG9hZGVye2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6aW5oZXJpdDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czppbmhlcml0O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6Y2FsYygxMDAlIC0gMnB4KTt3aWR0aDoxMDAlfS52LWZpZWxkLS12YXJpYW50LW91dGxpbmVkIC52LWZpZWxkX19sb2FkZXJ7bGVmdDoxcHg7dG9wOmNhbGMoMTAwJSAtIDNweCk7d2lkdGg6Y2FsYygxMDAlIC0gMnB4KX0udi1maWVsZF9fb3ZlcmxheXtib3JkZXItcmFkaXVzOmluaGVyaXQ7aGVpZ2h0OjEwMCU7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0udi1maWVsZC0tdmFyaWFudC1maWxsZWQgLnYtZmllbGRfX292ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7b3BhY2l0eTouMDQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnYtZmllbGQtLXZhcmlhbnQtZmlsbGVkLnYtZmllbGQtLWhhcy1iYWNrZ3JvdW5kIC52LWZpZWxkX19vdmVybGF5e29wYWNpdHk6MH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsudi1maWVsZC0tdmFyaWFudC1maWxsZWQ6aG92ZXIgLnYtZmllbGRfX292ZXJsYXl7b3BhY2l0eTpjYWxjKCguMDQgKyB2YXIoLS12LWhvdmVyLW9wYWNpdHkpKSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfX0udi1maWVsZC0tdmFyaWFudC1maWxsZWQudi1maWVsZC0tZm9jdXNlZCAudi1maWVsZF9fb3ZlcmxheXtvcGFjaXR5OmNhbGMoKC4wNCArIHZhcigtLXYtZm9jdXMtb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9LnYtZmllbGQtLXZhcmlhbnQtc29sby1maWxsZWQgLnYtZmllbGRfX292ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7b3BhY2l0eTouMDQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9QG1lZGlhIChob3Zlcjpob3Zlcil7LnYtZmllbGQtLXZhcmlhbnQtc29sby1maWxsZWQ6aG92ZXIgLnYtZmllbGRfX292ZXJsYXl7b3BhY2l0eTpjYWxjKCguMDQgKyB2YXIoLS12LWhvdmVyLW9wYWNpdHkpKSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfX0udi1maWVsZC0tdmFyaWFudC1zb2xvLWZpbGxlZC52LWZpZWxkLS1mb2N1c2VkIC52LWZpZWxkX19vdmVybGF5e29wYWNpdHk6Y2FsYygoLjA0ICsgdmFyKC0tdi1mb2N1cy1vcGFjaXR5KSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1maWVsZC0tdmFyaWFudC1zb2xvLWludmVydGVkIC52LWZpZWxkX19vdmVybGF5e3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS52LWZpZWxkLS12YXJpYW50LXNvbG8taW52ZXJ0ZWQudi1maWVsZC0taGFzLWJhY2tncm91bmQgLnYtZmllbGRfX292ZXJsYXl7b3BhY2l0eTowfUBtZWRpYSAoaG92ZXI6aG92ZXIpey52LWZpZWxkLS12YXJpYW50LXNvbG8taW52ZXJ0ZWQ6aG92ZXIgLnYtZmllbGRfX292ZXJsYXl7b3BhY2l0eTpjYWxjKCguMDQgKyB2YXIoLS12LWhvdmVyLW9wYWNpdHkpKSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfX0udi1maWVsZC0tdmFyaWFudC1zb2xvLWludmVydGVkLnYtZmllbGQtLWZvY3VzZWQgLnYtZmllbGRfX292ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tdi10aGVtZS1zdXJmYWNlLXZhcmlhbnQpKTtvcGFjaXR5OjF9LnYtZmllbGQtLXJldmVyc2UgLnYtZmllbGRfX2ZpZWxkLC52LWZpZWxkLS1yZXZlcnNlIC52LWZpZWxkX19pbnB1dCwudi1maWVsZC0tcmV2ZXJzZSAudi1maWVsZF9fb3V0bGluZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0udi1maWVsZC0tcmV2ZXJzZSAudi1maWVsZF9faW5wdXQsLnYtZmllbGQtLXJldmVyc2UgaW5wdXR7dGV4dC1hbGlnbjplbmR9LnYtaW5wdXQtLWRpc2FibGVkIC52LWZpZWxkLS12YXJpYW50LWZpbGxlZCAudi1maWVsZF9fb3V0bGluZTpiZWZvcmUsLnYtaW5wdXQtLWRpc2FibGVkIC52LWZpZWxkLS12YXJpYW50LXVuZGVybGluZWQgLnYtZmllbGRfX291dGxpbmU6YmVmb3Jley1vLWJvcmRlci1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWRpc2FibGVkLW9wYWNpdHkpKSAwLHJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWRpc2FibGVkLW9wYWNpdHkpKSAycHgsdHJhbnNwYXJlbnQgMnB4LHRyYW5zcGFyZW50IDRweCkgMSByZXBlYXQ7Ym9yZGVyLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLHZhcigtLXYtZGlzYWJsZWQtb3BhY2l0eSkpIDAscmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLHZhcigtLXYtZGlzYWJsZWQtb3BhY2l0eSkpIDJweCx0cmFuc3BhcmVudCAycHgsdHJhbnNwYXJlbnQgNHB4KSAxIHJlcGVhdH0udi1maWVsZC0tbG9hZGluZyAudi1maWVsZF9fb3V0bGluZTphZnRlciwudi1maWVsZC0tbG9hZGluZyAudi1maWVsZF9fb3V0bGluZTpiZWZvcmV7b3BhY2l0eTowfS52LWxhYmVse2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjppbmhlcml0O2Rpc3BsYXk6aW5saW5lLWZsZXg7Zm9udC1zaXplOjFyZW07bGV0dGVyLXNwYWNpbmc6LjAwOTM3NWVtO21pbi13aWR0aDowO29wYWNpdHk6dmFyKC0tdi1tZWRpdW0tZW1waGFzaXMtb3BhY2l0eSk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS52LWxhYmVsLS1jbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9LnYtaW5wdXR7ZGlzcGxheTpncmlkO2ZsZXg6MSAxIGF1dG87Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNX0udi1pbnB1dC0tZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX0udi1pbnB1dC0tZGVuc2l0eS1kZWZhdWx0ey0tdi1pbnB1dC1jb250cm9sLWhlaWdodDo1NnB4Oy0tdi1pbnB1dC1wYWRkaW5nLXRvcDoxNnB4fS52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxley0tdi1pbnB1dC1jb250cm9sLWhlaWdodDo0OHB4Oy0tdi1pbnB1dC1wYWRkaW5nLXRvcDoxMnB4fS52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3R7LS12LWlucHV0LWNvbnRyb2wtaGVpZ2h0OjQwcHg7LS12LWlucHV0LXBhZGRpbmctdG9wOjhweH0udi1pbnB1dC0tdmVydGljYWx7Z3JpZC10ZW1wbGF0ZS1hcmVhczoiYXBwZW5kIiAiY29udHJvbCIgInByZXBlbmQiO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW4tY29udGVudDtncmlkLXRlbXBsYXRlLXJvd3M6bWF4LWNvbnRlbnQgYXV0byBtYXgtY29udGVudH0udi1pbnB1dC0tdmVydGljYWwgLnYtaW5wdXRfX3ByZXBlbmR7bWFyZ2luLWJsb2NrLXN0YXJ0OjE2cHh9LnYtaW5wdXQtLXZlcnRpY2FsIC52LWlucHV0X19hcHBlbmR7bWFyZ2luLWJsb2NrLWVuZDoxNnB4fS52LWlucHV0LS1ob3Jpem9udGFse2dyaWQtdGVtcGxhdGUtYXJlYXM6InByZXBlbmQgY29udHJvbCBhcHBlbmQiICJhIG1lc3NhZ2VzIGIiO2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCBtaW5tYXgoMCwxZnIpIG1heC1jb250ZW50O2dyaWQtdGVtcGxhdGUtcm93czoxZnIgYXV0b30udi1pbnB1dC0taG9yaXpvbnRhbCAudi1pbnB1dF9fcHJlcGVuZHttYXJnaW4taW5saW5lLWVuZDoxNnB4fS52LWlucHV0LS1ob3Jpem9udGFsIC52LWlucHV0X19hcHBlbmR7bWFyZ2luLWlubGluZS1zdGFydDoxNnB4fS52LWlucHV0X19kZXRhaWxze2FsaWduLWl0ZW1zOmZsZXgtZW5kO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtncmlkLWFyZWE6bWVzc2FnZXM7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bGV0dGVyLXNwYWNpbmc6LjAzMzMzMzMzMzNlbTtsaW5lLWhlaWdodDpub3JtYWw7bWluLWhlaWdodDoyMnB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLXRvcDo2cHh9LnYtaW5wdXRfX2FwcGVuZD4udi1pY29uLC52LWlucHV0X19kZXRhaWxzPi52LWljb24sLnYtaW5wdXRfX3ByZXBlbmQ+LnYtaWNvbntvcGFjaXR5OnZhcigtLXYtbWVkaXVtLWVtcGhhc2lzLW9wYWNpdHkpfS52LWlucHV0LS1kaXNhYmxlZCAudi1pbnB1dF9fYXBwZW5kIC52LW1lc3NhZ2VzLC52LWlucHV0LS1kaXNhYmxlZCAudi1pbnB1dF9fYXBwZW5kPi52LWljb24sLnYtaW5wdXQtLWRpc2FibGVkIC52LWlucHV0X19kZXRhaWxzIC52LW1lc3NhZ2VzLC52LWlucHV0LS1kaXNhYmxlZCAudi1pbnB1dF9fZGV0YWlscz4udi1pY29uLC52LWlucHV0LS1kaXNhYmxlZCAudi1pbnB1dF9fcHJlcGVuZCAudi1tZXNzYWdlcywudi1pbnB1dC0tZGlzYWJsZWQgLnYtaW5wdXRfX3ByZXBlbmQ+LnYtaWNvbiwudi1pbnB1dC0tZXJyb3IgLnYtaW5wdXRfX2FwcGVuZCAudi1tZXNzYWdlcywudi1pbnB1dC0tZXJyb3IgLnYtaW5wdXRfX2FwcGVuZD4udi1pY29uLC52LWlucHV0LS1lcnJvciAudi1pbnB1dF9fZGV0YWlscyAudi1tZXNzYWdlcywudi1pbnB1dC0tZXJyb3IgLnYtaW5wdXRfX2RldGFpbHM+LnYtaWNvbiwudi1pbnB1dC0tZXJyb3IgLnYtaW5wdXRfX3ByZXBlbmQgLnYtbWVzc2FnZXMsLnYtaW5wdXQtLWVycm9yIC52LWlucHV0X19wcmVwZW5kPi52LWljb257b3BhY2l0eToxfS52LWlucHV0LS1kaXNhYmxlZCAudi1pbnB1dF9fYXBwZW5kLC52LWlucHV0LS1kaXNhYmxlZCAudi1pbnB1dF9fZGV0YWlscywudi1pbnB1dC0tZGlzYWJsZWQgLnYtaW5wdXRfX3ByZXBlbmR7b3BhY2l0eTp2YXIoLS12LWRpc2FibGVkLW9wYWNpdHkpfS52LWlucHV0LS1lcnJvcjpub3QoLnYtaW5wdXQtLWRpc2FibGVkKSAudi1pbnB1dF9fYXBwZW5kIC52LW1lc3NhZ2VzLC52LWlucHV0LS1lcnJvcjpub3QoLnYtaW5wdXQtLWRpc2FibGVkKSAudi1pbnB1dF9fYXBwZW5kPi52LWljb24sLnYtaW5wdXQtLWVycm9yOm5vdCgudi1pbnB1dC0tZGlzYWJsZWQpIC52LWlucHV0X19kZXRhaWxzIC52LW1lc3NhZ2VzLC52LWlucHV0LS1lcnJvcjpub3QoLnYtaW5wdXQtLWRpc2FibGVkKSAudi1pbnB1dF9fZGV0YWlscz4udi1pY29uLC52LWlucHV0LS1lcnJvcjpub3QoLnYtaW5wdXQtLWRpc2FibGVkKSAudi1pbnB1dF9fcHJlcGVuZCAudi1tZXNzYWdlcywudi1pbnB1dC0tZXJyb3I6bm90KC52LWlucHV0LS1kaXNhYmxlZCkgLnYtaW5wdXRfX3ByZXBlbmQ+LnYtaWNvbntjb2xvcjpyZ2IodmFyKC0tdi10aGVtZS1lcnJvcikpfS52LWlucHV0X19hcHBlbmQsLnYtaW5wdXRfX3ByZXBlbmR7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtkaXNwbGF5OmZsZXg7cGFkZGluZy10b3A6dmFyKC0tdi1pbnB1dC1wYWRkaW5nLXRvcCl9LnYtaW5wdXQtLWNlbnRlci1hZmZpeCAudi1pbnB1dF9fYXBwZW5kLC52LWlucHV0LS1jZW50ZXItYWZmaXggLnYtaW5wdXRfX3ByZXBlbmR7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctdG9wOjB9LnYtaW5wdXRfX3ByZXBlbmR7Z3JpZC1hcmVhOnByZXBlbmR9LnYtaW5wdXRfX2FwcGVuZHtncmlkLWFyZWE6YXBwZW5kfS52LWlucHV0X19jb250cm9se2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6Y29udHJvbH0udi1pbnB1dC0taGlkZS1zcGluLWJ1dHRvbnMgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLnYtaW5wdXQtLWhpZGUtc3Bpbi1idXR0b25zIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbjowfS52LWlucHV0LS1oaWRlLXNwaW4tYnV0dG9ucyBpbnB1dFt0eXBlPW51bWJlcl17LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZH0udi1pbnB1dC0tcGxhaW4tdW5kZXJsaW5lZCAudi1pbnB1dF9fYXBwZW5kLC52LWlucHV0LS1wbGFpbi11bmRlcmxpbmVkIC52LWlucHV0X19wcmVwZW5ke2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnYtaW5wdXQtLWRlbnNpdHktZGVmYXVsdC52LWlucHV0LS1wbGFpbi11bmRlcmxpbmVkIC52LWlucHV0X19hcHBlbmQsLnYtaW5wdXQtLWRlbnNpdHktZGVmYXVsdC52LWlucHV0LS1wbGFpbi11bmRlcmxpbmVkIC52LWlucHV0X19wcmVwZW5ke3BhZGRpbmctdG9wOmNhbGModmFyKC0tdi1pbnB1dC1wYWRkaW5nLXRvcCkgKyA0cHgpfS52LWlucHV0LS1kZW5zaXR5LWNvbWZvcnRhYmxlLnYtaW5wdXQtLXBsYWluLXVuZGVybGluZWQgLnYtaW5wdXRfX2FwcGVuZCwudi1pbnB1dC0tZGVuc2l0eS1jb21mb3J0YWJsZS52LWlucHV0LS1wbGFpbi11bmRlcmxpbmVkIC52LWlucHV0X19wcmVwZW5ke3BhZGRpbmctdG9wOmNhbGModmFyKC0tdi1pbnB1dC1wYWRkaW5nLXRvcCkgKyAycHgpfS52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3Qudi1pbnB1dC0tcGxhaW4tdW5kZXJsaW5lZCAudi1pbnB1dF9fYXBwZW5kLC52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3Qudi1pbnB1dC0tcGxhaW4tdW5kZXJsaW5lZCAudi1pbnB1dF9fcHJlcGVuZHtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXYtaW5wdXQtcGFkZGluZy10b3ApKX0udi1tZXNzYWdlc3tmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxMnB4O21pbi1oZWlnaHQ6MTRweDttaW4td2lkdGg6MXB4O29wYWNpdHk6dmFyKC0tdi1tZWRpdW0tZW1waGFzaXMtb3BhY2l0eSk7cG9zaXRpb246cmVsYXRpdmV9LnYtbWVzc2FnZXNfX21lc3NhZ2V7bGluZS1oZWlnaHQ6MTJweDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkOy13ZWJraXQtaHlwaGVuczphdXRvO2h5cGhlbnM6YXV0bzt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXN9Cg=="}},"time_used":213,"timings":{"blocked":186,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/index.DdEBfgMY.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.484Z","timestamp":1785139669484,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/index.DdEBfgMY.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1dac-654aa2b834b7a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2007\r\nKeep-Alive: timeout=5, max=90\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":7596,"size_decoded":2344,"mime_type":"text/css","magic":"Unicode text, UTF-8 text","md5":"38cc88296c0641163aba1610c25ddc43","sha1":"8745923d94303c38eca5effe086f59779c492029","sha256":"4ce01fe4366b42471edcb7667980e5db10c0862d5db53d368586ce81e85c3121","sha512":"6b7510ecd443dc0e726b9a17a432f67955892bbe65c1f61227d93e4e42d7f49e1a411c8b54386a41659b0098d7186f2cff55ecce624e01579a84cc85eb35a713","ssdeep":"192:cTIryTEDkgwBqDtZNxtn3NO/tAM5dCCc1ByVIcVk0:c82M05","tlshash":"5bf16171a6a01dc87716fba9ed6dbb54a34c12019a0fac63b983100c3ec5fde9673658","first_seen":"2025-10-23T03:46:52.623465Z","last_seen":"2026-07-27T11:49:48.960615Z","times_seen":8,"resource_available":false,"data":"LnYtYWxlcnQgewogIGRpc3BsYXk6IGdyaWQ7CiAgZmxleDogMSAxOwogIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICJwcmVwZW5kIGNvbnRlbnQgYXBwZW5kIGNsb3NlIiAiLiBjb250ZW50IC4gLiI7CiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBhdXRvIG1heC1jb250ZW50IG1heC1jb250ZW50OwogIG92ZXJmbG93OiBoaWRkZW47CiAgcGFkZGluZzogMTZweDsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgLS12LWJvcmRlci1jb2xvcjogY3VycmVudENvbG9yOwp9Ci52LWFsZXJ0LS1hYnNvbHV0ZSB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci52LWFsZXJ0LS1maXhlZCB7CiAgcG9zaXRpb246IGZpeGVkOwp9Ci52LWFsZXJ0LS1zdGlja3kgewogIHBvc2l0aW9uOiBzdGlja3k7Cn0KLnYtYWxlcnQgewogIGJvcmRlci1yYWRpdXM6IDRweDsKfQoudi1hbGVydC0tdmFyaWFudC1vdXRsaW5lZCwKLnYtYWxlcnQtLXZhcmlhbnQtcGxhaW4sCi52LWFsZXJ0LS12YXJpYW50LXRleHQsCi52LWFsZXJ0LS12YXJpYW50LXRvbmFsIHsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICBjb2xvcjogaW5oZXJpdDsKfQoudi1hbGVydC0tdmFyaWFudC1wbGFpbiB7CiAgb3BhY2l0eTogMC42MjsKfQoudi1hbGVydC0tdmFyaWFudC1wbGFpbjpmb2N1cywKLnYtYWxlcnQtLXZhcmlhbnQtcGxhaW46aG92ZXIgewogIG9wYWNpdHk6IDE7Cn0KLnYtYWxlcnQtLXZhcmlhbnQtcGxhaW4gLnYtYWxlcnRfX292ZXJsYXkgewogIGRpc3BsYXk6IG5vbmU7Cn0KLnYtYWxlcnQtLXZhcmlhbnQtZWxldmF0ZWQsCi52LWFsZXJ0LS12YXJpYW50LWZsYXQgewogIGJhY2tncm91bmQ6IHJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UtbGlnaHQpKTsKICBjb2xvcjogcmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UtbGlnaHQpLCB2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSkpOwp9Ci52LWFsZXJ0LS12YXJpYW50LWVsZXZhdGVkIHsKICBib3gtc2hhZG93OiAwIDJweCAxcHggLTFweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgIDAgMXB4IDFweCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgIDAgMXB4IDNweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpOwp9Ci52LWFsZXJ0LS12YXJpYW50LWZsYXQgewogIGJveC1zaGFkb3c6IDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgIDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSk7Cn0KLnYtYWxlcnQtLXZhcmlhbnQtb3V0bGluZWQgewogIGJvcmRlcjogdGhpbiBzb2xpZDsKfQoudi1hbGVydC0tdmFyaWFudC10ZXh0IC52LWFsZXJ0X19vdmVybGF5IHsKICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7Cn0KLnYtYWxlcnQtLXZhcmlhbnQtdG9uYWwgLnYtYWxlcnRfX3VuZGVybGF5IHsKICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICBib3R0b206IDA7CiAgbGVmdDogMDsKICBvcGFjaXR5OiB2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICByaWdodDogMDsKICB0b3A6IDA7Cn0KLnYtYWxlcnQgLnYtYWxlcnRfX3VuZGVybGF5IHsKICBwb3NpdGlvbjogYWJzb2x1dGU7Cn0KLnYtYWxlcnQtLXByb21pbmVudCB7CiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogInByZXBlbmQgY29udGVudCBhcHBlbmQgY2xvc2UiICJwcmVwZW5kIGNvbnRlbnQgLiAuIjsKfQoudi1hbGVydC52LWFsZXJ0LS1ib3JkZXIgewogIC0tdi1ib3JkZXItb3BhY2l0eTogMC4zODsKfQoudi1hbGVydC52LWFsZXJ0LS1ib3JkZXIudi1hbGVydC0tYm9yZGVyLXN0YXJ0IHsKICBwYWRkaW5nLWlubGluZS1zdGFydDogMjRweDsKfQoudi1hbGVydC52LWFsZXJ0LS1ib3JkZXIudi1hbGVydC0tYm9yZGVyLWVuZCB7CiAgcGFkZGluZy1pbmxpbmUtZW5kOiAyNHB4Owp9Ci52LWFsZXJ0LS12YXJpYW50LXBsYWluIHsKICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKfQoudi1hbGVydC0tZGVuc2l0eS1kZWZhdWx0IHsKICBwYWRkaW5nLWJvdHRvbTogMTZweDsKICBwYWRkaW5nLXRvcDogMTZweDsKfQoudi1hbGVydC0tZGVuc2l0eS1kZWZhdWx0LnYtYWxlcnQtLWJvcmRlci10b3AgewogIHBhZGRpbmctdG9wOiAyNHB4Owp9Ci52LWFsZXJ0LS1kZW5zaXR5LWRlZmF1bHQudi1hbGVydC0tYm9yZGVyLWJvdHRvbSB7CiAgcGFkZGluZy1ib3R0b206IDI0cHg7Cn0KLnYtYWxlcnQtLWRlbnNpdHktY29tZm9ydGFibGUgewogIHBhZGRpbmctYm90dG9tOiAxMnB4OwogIHBhZGRpbmctdG9wOiAxMnB4Owp9Ci52LWFsZXJ0LS1kZW5zaXR5LWNvbWZvcnRhYmxlLnYtYWxlcnQtLWJvcmRlci10b3AgewogIHBhZGRpbmctdG9wOiAyMHB4Owp9Ci52LWFsZXJ0LS1kZW5zaXR5LWNvbWZvcnRhYmxlLnYtYWxlcnQtLWJvcmRlci1ib3R0b20gewogIHBhZGRpbmctYm90dG9tOiAyMHB4Owp9Ci52LWFsZXJ0LS1kZW5zaXR5LWNvbXBhY3QgewogIHBhZGRpbmctYm90dG9tOiA4cHg7CiAgcGFkZGluZy10b3A6IDhweDsKfQoudi1hbGVydC0tZGVuc2l0eS1jb21wYWN0LnYtYWxlcnQtLWJvcmRlci10b3AgewogIHBhZGRpbmctdG9wOiAxNnB4Owp9Ci52LWFsZXJ0LS1kZW5zaXR5LWNvbXBhY3Qudi1hbGVydC0tYm9yZGVyLWJvdHRvbSB7CiAgcGFkZGluZy1ib3R0b206IDE2cHg7Cn0KLnYtYWxlcnRfX2JvcmRlciB7CiAgYm9yZGVyOiAwIHNvbGlkOwogIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7CiAgYm90dG9tOiAwOwogIGxlZnQ6IDA7CiAgb3BhY2l0eTogdmFyKC0tdi1ib3JkZXItb3BhY2l0eSk7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwOwogIHRvcDogMDsKICB3aWR0aDogMTAwJTsKfQoudi1hbGVydF9fYm9yZGVyLS1ib3JkZXIgewogIGJvcmRlci13aWR0aDogOHB4OwogIGJveC1zaGFkb3c6IG5vbmU7Cn0KLnYtYWxlcnQtLWJvcmRlci1zdGFydCAudi1hbGVydF9fYm9yZGVyIHsKICBib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOiA4cHg7Cn0KLnYtYWxlcnQtLWJvcmRlci1lbmQgLnYtYWxlcnRfX2JvcmRlciB7CiAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDhweDsKfQoudi1hbGVydC0tYm9yZGVyLXRvcCAudi1hbGVydF9fYm9yZGVyIHsKICBib3JkZXItdG9wLXdpZHRoOiA4cHg7Cn0KLnYtYWxlcnQtLWJvcmRlci1ib3R0b20gLnYtYWxlcnRfX2JvcmRlciB7CiAgYm9yZGVyLWJvdHRvbS13aWR0aDogOHB4Owp9Ci52LWFsZXJ0X19jbG9zZSB7CiAgZmxleDogMCAxIGF1dG87CiAgZ3JpZC1hcmVhOiBjbG9zZTsKfQoudi1hbGVydF9fY29udGVudCB7CiAgYWxpZ24tc2VsZjogY2VudGVyOwogIGdyaWQtYXJlYTogY29udGVudDsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci52LWFsZXJ0X19hcHBlbmQsCi52LWFsZXJ0X19jbG9zZSB7CiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiAxNnB4Owp9Ci52LWFsZXJ0X19hcHBlbmQgewogIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgZ3JpZC1hcmVhOiBhcHBlbmQ7Cn0KLnYtYWxlcnRfX2FwcGVuZCArIC52LWFsZXJ0X19jbG9zZSB7CiAgbWFyZ2luLWlubGluZS1zdGFydDogMTZweDsKfQoudi1hbGVydF9fcHJlcGVuZCB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogIGRpc3BsYXk6IGZsZXg7CiAgZ3JpZC1hcmVhOiBwcmVwZW5kOwogIG1hcmdpbi1pbmxpbmUtZW5kOiAxNnB4Owp9Ci52LWFsZXJ0LS1wcm9taW5lbnQgLnYtYWxlcnRfX3ByZXBlbmQgewogIGFsaWduLXNlbGY6IGNlbnRlcjsKfQoudi1hbGVydF9fdW5kZXJsYXkgewogIGdyaWQtYXJlYTogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7Cn0KLnYtYWxlcnQtLWJvcmRlci1zdGFydCAudi1hbGVydF9fdW5kZXJsYXkgewogIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7CiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsKfQoudi1hbGVydC0tYm9yZGVyLWVuZCAudi1hbGVydF9fdW5kZXJsYXkgewogIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOwp9Ci52LWFsZXJ0LS1ib3JkZXItdG9wIC52LWFsZXJ0X191bmRlcmxheSB7CiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsKICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsKfQoudi1hbGVydC0tYm9yZGVyLWJvdHRvbSAudi1hbGVydF9fdW5kZXJsYXkgewogIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7CiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7Cn0KLnYtYWxlcnQtdGl0bGUgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgYWxpZ24tc2VsZjogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZm9udC1zaXplOiAxLjI1cmVtOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvOwogIGh5cGhlbnM6IGF1dG87CiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtOwogIGxpbmUtaGVpZ2h0OiAxLjc1cmVtOwogIG92ZXJmbG93LXdyYXA6IG5vcm1hbDsKICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICB3b3JkLWJyZWFrOiBub3JtYWw7CiAgd29yZC13cmFwOiBicmVhay13b3JkOwp9Ci52LWNoZWNrYm94LnYtaW5wdXQgewogIGZsZXg6IDAgMSBhdXRvOwp9Ci52LWNoZWNrYm94IC52LXNlbGVjdGlvbi1jb250cm9sIHsKICBtaW4taGVpZ2h0OiB2YXIoLS12LWlucHV0LWNvbnRyb2wtaGVpZ2h0KTsKfQoudi1maWxlLWlucHV0LS1oaWRlLnYtaW5wdXQgLnYtZmllbGQsCi52LWZpbGUtaW5wdXQtLWhpZGUudi1pbnB1dCAudi1pbnB1dF9fY29udHJvbCwKLnYtZmlsZS1pbnB1dC0taGlkZS52LWlucHV0IC52LWlucHV0X19kZXRhaWxzIHsKICBkaXNwbGF5OiBub25lOwp9Ci52LWZpbGUtaW5wdXQtLWhpZGUudi1pbnB1dCAudi1pbnB1dF9fcHJlcGVuZCB7CiAgZ3JpZC1hcmVhOiBjb250cm9sOwogIG1hcmdpbjogMCBhdXRvOwp9Ci52LWZpbGUtaW5wdXQtLWNoaXBzLnYtaW5wdXQtLWRlbnNpdHktY29tcGFjdAogIC52LWZpZWxkLS12YXJpYW50LWZpbGxlZAogIC52LWxhYmVsLnYtZmllbGQtbGFiZWwtLWZsb2F0aW5nLAoudi1maWxlLWlucHV0LS1jaGlwcy52LWlucHV0LS1kZW5zaXR5LWNvbXBhY3QKICAudi1maWVsZC0tdmFyaWFudC1zb2xvCiAgLnYtbGFiZWwudi1maWVsZC1sYWJlbC0tZmxvYXRpbmcsCi52LWZpbGUtaW5wdXQtLWNoaXBzLnYtaW5wdXQtLWRlbnNpdHktY29tcGFjdAogIC52LWZpZWxkLS12YXJpYW50LXNvbG8tZmlsbGVkCiAgLnYtbGFiZWwudi1maWVsZC1sYWJlbC0tZmxvYXRpbmcsCi52LWZpbGUtaW5wdXQtLWNoaXBzLnYtaW5wdXQtLWRlbnNpdHktY29tcGFjdAogIC52LWZpZWxkLS12YXJpYW50LXNvbG8taW52ZXJ0ZWQKICAudi1sYWJlbC52LWZpZWxkLWxhYmVsLS1mbG9hdGluZyB7CiAgdG9wOiAwOwp9Ci52LWZpbGUtaW5wdXQgaW5wdXRbdHlwZT0iZmlsZSJdIHsKICBoZWlnaHQ6IDEwMCU7CiAgbGVmdDogMDsKICBvcGFjaXR5OiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDA7CiAgd2lkdGg6IDEwMCU7CiAgei1pbmRleDogMTsKfQoudi1maWxlLWlucHV0IC52LWlucHV0X19kZXRhaWxzIHsKICBwYWRkaW5nLWlubGluZTogMTZweDsKfQoudi1pbnB1dC0tcGxhaW4tdW5kZXJsaW5lZC52LWZpbGUtaW5wdXQgLnYtaW5wdXRfX2RldGFpbHMgewogIHBhZGRpbmctaW5saW5lOiAwOwp9Ci5waW4tYW5pbWF0aW9uIHsKICBhbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjFzOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOwogIGFuaW1hdGlvbi1uYW1lOiBwaW47CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7CiAgaGVpZ2h0OiAzMnB4OwogIG9wYWNpdHk6IDAuNTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAxcHg7CiAgd2lkdGg6IDEwMCU7Cn0KQGtleWZyYW1lcyBwaW4gewogIDAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIHRvIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjUpOwogIH0KfQoucC02LmJvcmRlci5cIWJvcmRlci1ncmF5LTMwMC5yb3VuZGVkLTJ4bC5zaGFkb3cteHMubXQtNi53LWZ1bGx7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KCi8qINCh0LrRgNGL0LLQsNC10Lwg0LLRgdC1INC60L7Qu9C+0L3QutC4INCyINGE0YPRgtC10YDQtSDQutGA0L7QvNC1INC/0LXRgNCy0L7QuSDQuCDQv9C+0YHQu9C10LTQvdC10LkgKi8KLmdyaWQtY29scy0xLm1kXDpncmlkLWNvbHMtMi5sZ1w6Z3JpZC1jb2xzLTMueGxcOmdyaWQtY29scy02ID4gZGl2Om5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9CgovKiDQkiDQv9C+0YHQu9C10LTQvdC10Lkg0LrQvtC70L7QvdC60LUgKGxlZ2FsKSDRgdC60YDRi9Cy0LDQtdC8INCy0YLQvtGA0L7QuSDQsdC70L7QuiAqLwouZ3JpZC1jb2xzLTEubWRcOmdyaWQtY29scy0yLmxnXDpncmlkLWNvbHMtMy54bFw6Z3JpZC1jb2xzLTYgPiBkaXY6bGFzdC1jaGlsZCA+IGRpdjpsYXN0LWNoaWxkIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKLyog0KHQutGA0YvQstCw0LXQvCDRgdC10LrRhtC40Y4g0LPQuNC0ICovCmRpdi50ZXh0LWxlZnQubWRcOiF0ZXh0LWxlZnQ6aGFzKD4gaDUubXQtOCkgewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9CgovKiDQkNC70YzRgtC10YDQvdCw0YLQuNCy0L3Ri9C5INGB0LXQu9C10LrRgtC+0YAg0LTQu9GPINCz0LjQtNCwINC10YHQu9C4IDpoYXMg0L3QtSDQv9C+0LTQtNC10YDQttC40LLQsNC10YLRgdGPICovCmRpdi50ZXh0LWxlZnQubWRcOiF0ZXh0LWxlZnQgPiBoNS5tdC04LApkaXYudGV4dC1sZWZ0Lm1kXDohdGV4dC1sZWZ0ID4gZGl2LmdyaWQuZ3JpZC1jb2xzLTEuZ2FwLTQgewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9CgovKiDQodC60YDRi9Cy0LDQtdC8INCy0YHQtSDRgdC+0YYg0YHQtdGC0Lgg0LrRgNC+0LzQtSDRgtC10LvQtdCz0YDQsNC80LAgKi8KCgovKiDQo9C80LXQvdGM0YjQsNC10Lwg0L7RgtGB0YLRg9C/0YsgKi8KLmJvcmRlci1zb2xpZC5ib3JkZXItYi1cWzFweFxdLmJvcmRlci1ncmF5LTIwMCB7CiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50Owp9CgoudGVybXMtdGV4dCB7CiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogIHRleHQtaW5kZW50OiAyMHB4OwogIGxpbmUtaGVpZ2h0OiAxLjU7CiAgcGFkZGluZy1sZWZ0OiAyMHB4Owp9"}},"time_used":229,"timings":{"blocked":201,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/xUo5sKGi.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.502Z","timestamp":1785139669502,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/xUo5sKGi.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"918-654aa2b8391ca-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1031\r\nKeep-Alive: timeout=5, max=96\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":2328,"size_decoded":1381,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (2327)","md5":"6e2caf00adecd6d844a75d75c4944322","sha1":"40a82816c52f65369a6ae5b2111cd78d530e2f33","sha256":"1c714593c59ddc48eb0170c72ee61bd210978c1909013a2e630da173e577d1be","sha512":"49cf480cd6568f470600cc6bfe739b0a13b1df58af6f12cd1c6bb96e3c626a2e84591105530c519906c4b58b416fc49970118b38a393708e08d20fbc69ad07b7","ssdeep":"","tlshash":"814142cd72f92474b377c553c03f1b62928f2715242ed0f1e477ca62261a6a483e1a6f","first_seen":"2025-10-23T03:46:53.049509Z","last_seen":"2026-07-27T11:49:48.950187Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2J3IGFzIHYsYnggYXMgQSxzLGJ5IGFzIG0sYWkgYXMgeSxicyBhcyBFLGFHIGFzIFAsJCBhcyB3LGF2IGFzIFIsYXUgYXMgUyxhZyBhcyBCLGFyIGFzIEN9ZnJvbSIuL1NtMm1DZkRFLmpzIjtjb25zdCBMPVsidG9wIiwiYm90dG9tIl0sVD1bInN0YXJ0IiwiZW5kIiwibGVmdCIsInJpZ2h0Il07ZnVuY3Rpb24gRChlLHQpe2xldFthLG5dPWUuc3BsaXQoIiAiKTtyZXR1cm4gbnx8KG49dihMLGEpPyJzdGFydCI6dihULGEpPyJ0b3AiOiJjZW50ZXIiKSx7c2lkZTp4KGEsdCksYWxpZ246eChuLHQpfX1mdW5jdGlvbiB4KGUsdCl7cmV0dXJuIGU9PT0ic3RhcnQiP3Q/InJpZ2h0IjoibGVmdCI6ZT09PSJlbmQiP3Q/ImxlZnQiOiJyaWdodCI6ZX1mdW5jdGlvbiBJKGUpe3JldHVybntzaWRlOntjZW50ZXI6ImNlbnRlciIsdG9wOiJib3R0b20iLGJvdHRvbToidG9wIixsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQifVtlLnNpZGVdLGFsaWduOmUuYWxpZ259fWZ1bmN0aW9uIE8oZSl7cmV0dXJue3NpZGU6ZS5zaWRlLGFsaWduOntjZW50ZXI6ImNlbnRlciIsdG9wOiJib3R0b20iLGJvdHRvbToidG9wIixsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQifVtlLmFsaWduXX19ZnVuY3Rpb24gaihlKXtyZXR1cm57c2lkZTplLmFsaWduLGFsaWduOmUuc2lkZX19ZnVuY3Rpb24gRihlKXtyZXR1cm4gdihMLGUuc2lkZSk/InkiOiJ4In1mdW5jdGlvbiBxKCl7Y29uc3QgZT1SKCJ1c2VSb3V0ZSIpO3JldHVybiBzKCgpPT57dmFyIHQ7cmV0dXJuKHQ9ZT09bnVsbD92b2lkIDA6ZS5wcm94eSk9PW51bGw/dm9pZCAwOnQuJHJvdXRlfSl9ZnVuY3Rpb24gRygpe3ZhciBlLHQ7cmV0dXJuKHQ9KGU9UigidXNlUm91dGVyIikpPT1udWxsP3ZvaWQgMDplLnByb3h5KT09bnVsbD92b2lkIDA6dC4kcm91dGVyfWZ1bmN0aW9uIE4oZSx0KXt2YXIgcCxoO2NvbnN0IGE9QSgiUm91dGVyTGluayIpLG49cygoKT0+ISEoZS5ocmVmfHxlLnRvKSkscj1zKCgpPT4obj09bnVsbD92b2lkIDA6bi52YWx1ZSl8fG0odCwiY2xpY2siKXx8bShlLCJjbGljayIpKTtpZih0eXBlb2YgYT09InN0cmluZyJ8fCEoInVzZUxpbmsiaW4gYSkpe2NvbnN0IG89eShlLCJocmVmIik7cmV0dXJue2lzTGluazpuLGlzQ2xpY2thYmxlOnIsaHJlZjpvLGxpbmtQcm9wczpFKHtocmVmOm99KX19Y29uc3QgbD1zKCgpPT4oey4uLmUsdG86eSgoKT0+ZS50b3x8IiIpfSkpLGM9YS51c2VMaW5rKGwudmFsdWUpLGk9cygoKT0+ZS50bz9jOnZvaWQgMCksdT1xKCksZD1zKCgpPT57dmFyIG8sayxiO3JldHVybiBpLnZhbHVlP2UuZXhhY3Q/dS52YWx1ZT8oKGI9aS52YWx1ZS5pc0V4YWN0QWN0aXZlKT09bnVsbD92b2lkIDA6Yi52YWx1ZSkmJlAoaS52YWx1ZS5yb3V0ZS52YWx1ZS5xdWVyeSx1LnZhbHVlLnF1ZXJ5KTooKGs9aS52YWx1ZS5pc0V4YWN0QWN0aXZlKT09bnVsbD92b2lkIDA6ay52YWx1ZSk/PyExOigobz1pLnZhbHVlLmlzQWN0aXZlKT09bnVsbD92b2lkIDA6by52YWx1ZSk/PyExOiExfSksZz1zKCgpPT57dmFyIG87cmV0dXJuIGUudG8/KG89aS52YWx1ZSk9PW51bGw/dm9pZCAwOm8ucm91dGUudmFsdWUuaHJlZjplLmhyZWZ9KTtyZXR1cm57aXNMaW5rOm4saXNDbGlja2FibGU6cixpc0FjdGl2ZTpkLHJvdXRlOihwPWkudmFsdWUpPT1udWxsP3ZvaWQgMDpwLnJvdXRlLG5hdmlnYXRlOihoPWkudmFsdWUpPT1udWxsP3ZvaWQgMDpoLm5hdmlnYXRlLGhyZWY6ZyxsaW5rUHJvcHM6RSh7aHJlZjpnLCJhcmlhLWN1cnJlbnQiOnMoKCk9PmQudmFsdWU/InBhZ2UiOnZvaWQgMCl9KX19Y29uc3QgVz13KHtocmVmOlN0cmluZyxyZXBsYWNlOkJvb2xlYW4sdG86W1N0cmluZyxPYmplY3RdLGV4YWN0OkJvb2xlYW59LCJyb3V0ZXIiKTtsZXQgZj0hMTtmdW5jdGlvbiBfKGUsdCl7bGV0IGE9ITEsbixyO1MmJihlIT1udWxsJiZlLmJlZm9yZUVhY2gpJiYoQigoKT0+e3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsbCksbj1lLmJlZm9yZUVhY2goKGMsaSx1KT0+e2Y/YT90KHUpOnUoKTpzZXRUaW1lb3V0KCgpPT5hP3QodSk6dSgpKSxmPSEwfSkscj1lPT1udWxsP3ZvaWQgMDplLmFmdGVyRWFjaCgoKT0+e2Y9ITF9KX0pLEMoKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGwpLG49PW51bGx8fG4oKSxyPT1udWxsfHxyKCl9KSk7ZnVuY3Rpb24gbChjKXt2YXIgaTsoaT1jLnN0YXRlKSE9bnVsbCYmaS5yZXBsYWNlZHx8KGE9ITAsc2V0VGltZW91dCgoKT0+YT0hMSkpfX1leHBvcnR7TyBhcyBhLGogYXMgYixHIGFzIGMsXyBhcyBkLEkgYXMgZixGIGFzIGcsVyBhcyBtLEQgYXMgcCx4IGFzIHQsTiBhcyB1fTsK"}},"time_used":62,"timings":{"blocked":36,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/1WQF9nlZ.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.519Z","timestamp":1785139669519,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/1WQF9nlZ.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1103-654aa2b82ce7a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1920\r\nKeep-Alive: timeout=5, max=96\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":4355,"size_decoded":2271,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (4354)","md5":"41c9f16bf6242a4510358fabcf08ba2a","sha1":"01c833057b795ea2fc3ab0b5434fb53427941b82","sha256":"1a99812e99593b4a5c7e67ada0877809bb7ec30ef7100016a2a57433ffa8df50","sha512":"f883eed72da313ccbb0dad7cfbb2aea45dc22ac41b173521d427613a001226eb9d740495d10487096083bbcc2c2cd4a136fbad97a200ac47b9d4aebd8d30235b","ssdeep":"96:eQuydC9sT/wAFbPmOFk7pUSSxZftSGRkInPvuaUztpffP6ZD7/:eNydOE/wgiqkFYxZ9RkInubztpfad","tlshash":"1991a80572d0a17253fbf9cac2a62930c5741310f96285c9fa0f51eb14b6cd1a5b7d3b","first_seen":"2025-10-23T03:46:52.716788Z","last_seen":"2026-07-27T11:49:48.948128Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2IgYXMgb2V9ZnJvbSIuL1pmTlppeUNtLmpzIjtpbXBvcnR7JCBhcyBVLHggYXMgRSxhbiBhcyBuZSxhdiBhcyBaLGFkIGFzIEQsUiBhcyBYLGJTIGFzIGFlLGJUIGFzIHNlLHMsayBhcyB1ZSxyIGFzIGxlLGJzIGFzIEwsYWYgYXMgUixvIGFzIGllLGJ1IGFzIHJlfWZyb20iLi9TbTJtQ2ZERS5qcyI7Y29uc3QgTT1TeW1ib2wuZm9yKCJ2dWV0aWZ5OmxheW91dCIpLHE9U3ltYm9sLmZvcigidnVldGlmeTpsYXlvdXQtaXRlbSIpLE49MWUzLHllPVUoe292ZXJsYXBzOnt0eXBlOkFycmF5LGRlZmF1bHQ6KCk9PltdfSxmdWxsSGVpZ2h0OkJvb2xlYW59LCJsYXlvdXQiKSxwZT1VKHtuYW1lOnt0eXBlOlN0cmluZ30sb3JkZXI6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MH0sYWJzb2x1dGU6Qm9vbGVhbn0sImxheW91dC1pdGVtIik7ZnVuY3Rpb24gbWUoKXtjb25zdCB1PUUoTSk7aWYoIXUpdGhyb3cgbmV3IEVycm9yKCJbVnVldGlmeV0gQ291bGQgbm90IGZpbmQgaW5qZWN0ZWQgbGF5b3V0Iik7cmV0dXJue2dldExheW91dEl0ZW06dS5nZXRMYXlvdXRJdGVtLG1haW5SZWN0OnUubWFpblJlY3QsbWFpblN0eWxlczp1Lm1haW5TdHlsZXN9fWZ1bmN0aW9uIGdlKHUpe2NvbnN0IGw9RShNKTtpZighbCl0aHJvdyBuZXcgRXJyb3IoIltWdWV0aWZ5XSBDb3VsZCBub3QgZmluZCBpbmplY3RlZCBsYXlvdXQiKTtjb25zdCBkPXUuaWQ/P2BsYXlvdXQtaXRlbS0ke25lKCl9YCxyPVooInVzZUxheW91dEl0ZW0iKTtEKHEse2lkOmR9KTtjb25zdCBuPVgoITEpO2FlKCgpPT5uLnZhbHVlPSEwKSxzZSgoKT0+bi52YWx1ZT0hMSk7Y29uc3R7bGF5b3V0SXRlbVN0eWxlczpjLGxheW91dEl0ZW1TY3JpbVN0eWxlczp2fT1sLnJlZ2lzdGVyKHIsey4uLnUsYWN0aXZlOnMoKCk9Pm4udmFsdWU/ITE6dS5hY3RpdmUudmFsdWUpLGlkOmR9KTtyZXR1cm4gdWUoKCk9PmwudW5yZWdpc3RlcihkKSkse2xheW91dEl0ZW1TdHlsZXM6YyxsYXlvdXRSZWN0OmwubGF5b3V0UmVjdCxsYXlvdXRJdGVtU2NyaW1TdHlsZXM6dn19Y29uc3QgY2U9KHUsbCxkLHIpPT57bGV0IG49e3RvcDowLGxlZnQ6MCxyaWdodDowLGJvdHRvbTowfTtjb25zdCBjPVt7aWQ6IiIsbGF5ZXI6ey4uLm59fV07Zm9yKGNvbnN0IHYgb2YgdSl7Y29uc3QgbT1sLmdldCh2KSxnPWQuZ2V0KHYpLHo9ci5nZXQodik7aWYoIW18fCFnfHwheiljb250aW51ZTtjb25zdCBiPXsuLi5uLFttLnZhbHVlXTpwYXJzZUludChuW20udmFsdWVdLDEwKSsoei52YWx1ZT9wYXJzZUludChnLnZhbHVlLDEwKTowKX07Yy5wdXNoKHtpZDp2LGxheWVyOmJ9KSxuPWJ9cmV0dXJuIGN9O2Z1bmN0aW9uIGJlKHUpe2NvbnN0IGw9RShNLG51bGwpLGQ9cygoKT0+bD9sLnJvb3RaSW5kZXgudmFsdWUtMTAwOk4pLHI9bGUoW10pLG49TChuZXcgTWFwKSxjPUwobmV3IE1hcCksdj1MKG5ldyBNYXApLG09TChuZXcgTWFwKSxnPUwobmV3IE1hcCkse3Jlc2l6ZVJlZjp6LGNvbnRlbnRSZWN0OmJ9PW9lKCksRj1zKCgpPT57Y29uc3QgdD1uZXcgTWFwLGk9dS5vdmVybGFwcz8/W107Zm9yKGNvbnN0IGUgb2YgaS5maWx0ZXIoYT0+YS5pbmNsdWRlcygiOiIpKSl7Y29uc3RbYSxvXT1lLnNwbGl0KCI6Iik7aWYoIXIudmFsdWUuaW5jbHVkZXMoYSl8fCFyLnZhbHVlLmluY2x1ZGVzKG8pKWNvbnRpbnVlO2NvbnN0IGY9bi5nZXQoYSkscD1uLmdldChvKSxTPWMuZ2V0KGEpLHc9Yy5nZXQobyk7IWZ8fCFwfHwhU3x8IXd8fCh0LnNldChvLHtwb3NpdGlvbjpmLnZhbHVlLGFtb3VudDpwYXJzZUludChTLnZhbHVlLDEwKX0pLHQuc2V0KGEse3Bvc2l0aW9uOnAudmFsdWUsYW1vdW50Oi1wYXJzZUludCh3LnZhbHVlLDEwKX0pKX1yZXR1cm4gdH0pLGg9cygoKT0+e2NvbnN0IHQ9Wy4uLm5ldyBTZXQoWy4uLnYudmFsdWVzKCldLm1hcChlPT5lLnZhbHVlKSldLnNvcnQoKGUsYSk9PmUtYSksaT1bXTtmb3IoY29uc3QgZSBvZiB0KXtjb25zdCBhPXIudmFsdWUuZmlsdGVyKG89Pnt2YXIgZjtyZXR1cm4oKGY9di5nZXQobykpPT1udWxsP3ZvaWQgMDpmLnZhbHVlKT09PWV9KTtpLnB1c2goLi4uYSl9cmV0dXJuIGNlKGksbixjLG0pfSksVD1zKCgpPT4hQXJyYXkuZnJvbShnLnZhbHVlcygpKS5zb21lKHQ9PnQudmFsdWUpKSxJPXMoKCk9PmgudmFsdWVbaC52YWx1ZS5sZW5ndGgtMV0ubGF5ZXIpLFc9cygoKT0+KHsiLS12LWxheW91dC1sZWZ0IjpSKEkudmFsdWUubGVmdCksIi0tdi1sYXlvdXQtcmlnaHQiOlIoSS52YWx1ZS5yaWdodCksIi0tdi1sYXlvdXQtdG9wIjpSKEkudmFsdWUudG9wKSwiLS12LWxheW91dC1ib3R0b20iOlIoSS52YWx1ZS5ib3R0b20pLC4uLlQudmFsdWU/dm9pZCAwOnt0cmFuc2l0aW9uOiJub25lIn19KSkseD1zKCgpPT5oLnZhbHVlLnNsaWNlKDEpLm1hcCgodCxpKT0+e2xldHtpZDplfT10O2NvbnN0e2xheWVyOmF9PWgudmFsdWVbaV0sbz1jLmdldChlKSxmPW4uZ2V0KGUpO3JldHVybntpZDplLC4uLmEsc2l6ZTpOdW1iZXIoby52YWx1ZSkscG9zaXRpb246Zi52YWx1ZX19KSksSD10PT54LnZhbHVlLmZpbmQoaT0+aS5pZD09PXQpLE89WigiY3JlYXRlTGF5b3V0Iiksaj1YKCExKTtpZSgoKT0+e2oudmFsdWU9ITB9KSxEKE0se3JlZ2lzdGVyOih0LGkpPT57bGV0e2lkOmUsb3JkZXI6YSxwb3NpdGlvbjpvLGxheW91dFNpemU6ZixlbGVtZW50U2l6ZTpwLGFjdGl2ZTpTLGRpc2FibGVUcmFuc2l0aW9uczp3LGFic29sdXRlOkd9PWk7di5zZXQoZSxhKSxuLnNldChlLG8pLGMuc2V0KGUsZiksbS5zZXQoZSxTKSx3JiZnLnNldChlLHcpO2NvbnN0IGs9cmUocSxPPT1udWxsP3ZvaWQgMDpPLnZub2RlKS5pbmRleE9mKHQpO2s+LTE/ci52YWx1ZS5zcGxpY2UoaywwLGUpOnIudmFsdWUucHVzaChlKTtjb25zdCBCPXMoKCk9PngudmFsdWUuZmluZEluZGV4KCQ9PiQuaWQ9PT1lKSksQT1zKCgpPT5kLnZhbHVlK2gudmFsdWUubGVuZ3RoKjItQi52YWx1ZSoyKSxKPXMoKCk9Pntjb25zdCAkPW8udmFsdWU9PT0ibGVmdCJ8fG8udmFsdWU9PT0icmlnaHQiLEM9by52YWx1ZT09PSJyaWdodCIsZWU9by52YWx1ZT09PSJib3R0b20iLFA9cC52YWx1ZT8/Zi52YWx1ZSx0ZT1QPT09MD8iJSI6InB4IixLPXtbby52YWx1ZV06MCx6SW5kZXg6QS52YWx1ZSx0cmFuc2Zvcm06YHRyYW5zbGF0ZSR7JD8iWCI6IlkifSgkeyhTLnZhbHVlPzA6LShQPT09MD8xMDA6UCkpKihDfHxlZT8tMToxKX0ke3RlfSlgLHBvc2l0aW9uOkcudmFsdWV8fGQudmFsdWUhPT1OPyJhYnNvbHV0ZSI6ImZpeGVkIiwuLi5ULnZhbHVlP3ZvaWQgMDp7dHJhbnNpdGlvbjoibm9uZSJ9fTtpZighai52YWx1ZSlyZXR1cm4gSztjb25zdCB5PXgudmFsdWVbQi52YWx1ZV07aWYoIXkpdGhyb3cgbmV3IEVycm9yKGBbVnVldGlmeV0gQ291bGQgbm90IGZpbmQgbGF5b3V0IGl0ZW0gIiR7ZX0iYCk7Y29uc3QgVj1GLnZhbHVlLmdldChlKTtyZXR1cm4gViYmKHlbVi5wb3NpdGlvbl0rPVYuYW1vdW50KSx7Li4uSyxoZWlnaHQ6JD9gY2FsYygxMDAlIC0gJHt5LnRvcH1weCAtICR7eS5ib3R0b219cHgpYDpwLnZhbHVlP2Ake3AudmFsdWV9cHhgOnZvaWQgMCxsZWZ0OkM/dm9pZCAwOmAke3kubGVmdH1weGAscmlnaHQ6Qz9gJHt5LnJpZ2h0fXB4YDp2b2lkIDAsdG9wOm8udmFsdWUhPT0iYm90dG9tIj9gJHt5LnRvcH1weGA6dm9pZCAwLGJvdHRvbTpvLnZhbHVlIT09InRvcCI/YCR7eS5ib3R0b219cHhgOnZvaWQgMCx3aWR0aDokP3AudmFsdWU/YCR7cC52YWx1ZX1weGA6dm9pZCAwOmBjYWxjKDEwMCUgLSAke3kubGVmdH1weCAtICR7eS5yaWdodH1weClgfX0pLFE9cygoKT0+KHt6SW5kZXg6QS52YWx1ZS0xfSkpO3JldHVybntsYXlvdXRJdGVtU3R5bGVzOkosbGF5b3V0SXRlbVNjcmltU3R5bGVzOlEsekluZGV4OkF9fSx1bnJlZ2lzdGVyOnQ9Pnt2LmRlbGV0ZSh0KSxuLmRlbGV0ZSh0KSxjLmRlbGV0ZSh0KSxtLmRlbGV0ZSh0KSxnLmRlbGV0ZSh0KSxyLnZhbHVlPXIudmFsdWUuZmlsdGVyKGk9PmkhPT10KX0sbWFpblJlY3Q6SSxtYWluU3R5bGVzOlcsZ2V0TGF5b3V0SXRlbTpILGl0ZW1zOngsbGF5b3V0UmVjdDpiLHJvb3RaSW5kZXg6ZH0pO2NvbnN0IFk9cygoKT0+WyJ2LWxheW91dCIseyJ2LWxheW91dC0tZnVsbC1oZWlnaHQiOnUuZnVsbEhlaWdodH1dKSxfPXMoKCk9Pih7ekluZGV4Omw/ZC52YWx1ZTp2b2lkIDAscG9zaXRpb246bD8icmVsYXRpdmUiOnZvaWQgMCxvdmVyZmxvdzpsPyJoaWRkZW4iOnZvaWQgMH0pKTtyZXR1cm57bGF5b3V0Q2xhc3NlczpZLGxheW91dFN0eWxlczpfLGdldExheW91dEl0ZW06SCxpdGVtczp4LGxheW91dFJlY3Q6YixsYXlvdXRSZWY6en19ZXhwb3J0e00gYXMgVixnZSBhcyBhLHllIGFzIGIsYmUgYXMgYyxwZSBhcyBtLG1lIGFzIHV9Owo="}},"time_used":97,"timings":{"blocked":71,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DnaGcmTr.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.999Z","timestamp":1785139670999,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DnaGcmTr.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:51 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"98-654aa2b8310e2-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 151\r\nKeep-Alive: timeout=5, max=88\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":152,"size_decoded":499,"mime_type":"application/javascript","magic":"ASCII text","md5":"d1ab253d4c1e3dd16e7cc8a71b92b716","sha1":"ebfd30ce821a72bf7063365a8b8a55d53a7df9dd","sha256":"35518043bb5a6edd6d3b7a6c3800440b0425773029bfe20203e65e8765c64aa0","sha512":"eaa1b52aa875e40c18c860acbe8104675941988de598bade262c4c4abd3451cd1cb73c2bffe67bd01da5129debf3269898eede5603305523169fc663aa538d90","ssdeep":"","tlshash":"44c08c9b3421592531980b8fc336a764750090203a5334c8a42c0a2aa120643c01edc5","first_seen":"2025-10-23T03:46:52.74891Z","last_seen":"2026-07-27T11:49:48.929942Z","times_seen":9,"resource_available":true,"data":"Y29uc3Qgcz1vPT57Y29uc3QgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChvKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0LTkwO3dpbmRvdy5zY3JvbGxUbyh7dG9wOnQsYmVoYXZpb3I6InNtb290aCJ9KX07ZXhwb3J0e3N9Owo="}},"time_used":32,"timings":{"blocked":6,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/recaptcha/api2/logo_48.png","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.google.com/recaptcha/api2/anchor?ar=1\u0026k=6LfRUoYnAAAAAKfevHpSKXaw8gRuE6AJVb9YJKYH\u0026co=aHR0cHM6Ly9uY29ubmVjdC5vcmc6NDQz\u0026hl=en\u0026v=A7KpaEASfhDcK0nXxgQEyyYv\u0026size=invisible\u0026anchor-ms=20000\u0026execute-ms=30000\u0026cb=xxau4owkhj73","date":"2026-07-27T08:07:51.095Z","timestamp":1785139671095,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /recaptcha/api2/logo_48.png HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.gstatic.com/recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/styles__ltr.css\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/recaptcha-scs\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups; report-to=\"recaptcha-scs\"\r\nreport-to: {\"group\":\"recaptcha-scs\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/recaptcha-scs\"}]}\r\ncontent-length: 2228\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:29:48 GMT\r\nexpires: Thu, 30 Jul 2026 02:29:48 GMT\r\ncache-control: public, max-age=604800\r\nage: 365883\r\nlast-modified: Tue, 03 Mar 2020 20:15:00 GMT\r\ncontent-type: image/png\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":2228,"size_decoded":3002,"mime_type":"image/png","magic":"PNG image data, 48 x 48, 8-bit/color RGBA, non-interlaced","md5":"ef9941290c50cd3866e2ba6b793f010d","sha1":"4736508c795667dcea21f8d864233031223b7832","sha256":"1b9efb22c938500971aac2b2130a475fa23684dd69e43103894968df83145b8a","sha512":"a0c69c70117c5713caf8b12f3b6e8bbb9cdaf72768e5db9db5831a3c37541b87613c6b020dd2f9b8760064a8c7337f175e7234bfe776eee5e3588dc5662419d9","ssdeep":"","tlshash":"c34149bb68287f1be14b501d319001e4b5bb891327c8f24180bf974e4662eaad10f118","first_seen":"2023-04-05T07:17:57Z","last_seen":"2026-08-04T08:23:38.875238Z","times_seen":701727,"resource_available":false,"data":"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"}},"time_used":16,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/builds/meta/187b5c13-c280-4742-be22-e62507598e21.json","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.546Z","timestamp":1785139669546,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/builds/meta/187b5c13-c280-4742-be22-e62507598e21.json HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"8b-654aa2b834792\"\r\nAccept-Ranges: bytes\r\nContent-Length: 139\r\nKeep-Alive: timeout=5, max=92\r\nConnection: Keep-Alive\r\nContent-Type: application/json\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":139,"size_decoded":429,"mime_type":"application/json","magic":"JSON text data","md5":"0fc9d9517b04323501cbbf899cad83ae","sha1":"689fc27a0bf0b8faca8225230f2c6340d664f539","sha256":"705e48bf2d69b0381fa3cd91a8b35e5a59608bc59b190a2950d2ccb42942654f","sha512":"960bfe735a1eae684e8661dd709b2de25346fa38021bfbc1564f10d4574e6a3eacd5a3d1be14d3f6fc8bb78d3977f038f206ba9f65a4166b889500304a6e7c93","ssdeep":"","tlshash":"64c02b370c8c106bacb18ca9dc007960c05f0131a13c5d1d8578092d156c08b2148803","first_seen":"2025-10-23T03:46:52.51338Z","last_seen":"2026-07-27T11:49:48.957584Z","times_seen":8,"resource_available":false,"data":"eyJpZCI6IjE4N2I1YzEzLWMyODAtNDc0Mi1iZTIyLWU2MjUwNzU5OGUyMSIsInRpbWVzdGFtcCI6MTc0MjA0NjI3MDA3NCwibWF0Y2hlciI6eyJzdGF0aWMiOnt9LCJ3aWxkY2FyZCI6e30sImR5bmFtaWMiOnt9fSwicHJlcmVuZGVyZWQiOltdfQ=="}},"time_used":233,"timings":{"blocked":207,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/B9T8tgGX.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.900Z","timestamp":1785139669900,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/B9T8tgGX.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/_nuxt/Sm2mCfDE.js\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3e75e-654aa2b82d64a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 41938\r\nKeep-Alive: timeout=5, max=88\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":255838,"size_decoded":42291,"mime_type":"application/javascript","magic":"Unicode text, UTF-8 text, with very long lines (912)","md5":"a49fb4f8ce6743bd84fa99b0fe29c669","sha1":"7807aed933d9d6160a7ad8e456f2f2eefcda480a","sha256":"c6d39934f556b20ce3c3a5a51a43df348ec7cccc143584cd51571d1b2f570561","sha512":"25e74b2db3eb380086d1b6b96cf63ec6a55156713d06934300911a80f8e4e9ddf4f193a55a3bef2d6eba7bd080e140279b3680642efbd56316376601a9bdc3b1","ssdeep":"3072:6SyBBFu9pAJZDyHSwWGBwqXzPyF9FvU9neLM:VAJZDyHSwWGQOn5","tlshash":"234443ce55f83a538646b1f2248b8fc9b325028f6df67d22392c46494f0d43d6a7926f","first_seen":"2026-07-27T05:24:57.729711Z","last_seen":"2026-07-27T11:49:48.99688Z","times_seen":5,"resource_available":true,"data":"Y29uc3QgdCA9IHsKICBIaVdhbGxldDogewogICAgdGl0bGU6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiSGlXYWxsZXQg4oCTIFlvdXIgTW9uZXksIFlvdXIgUnVsZXMsIE5vIERyYW1hISIsCiAgICAgIH0sCiAgICB9LAogICAgZGVzY3JpcHRpb246IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAnSGlXYWxsZXQgaXMgeW91ciB1bHRpbWF0ZSBwYXltZW50IGNvbXBhbmlvbi4gRW5qb3kgYSBzbW9vdGhlciwgc21hcnRlciB3YXkgdG8gbWFuYWdlIHlvdXIgYXNzZXRzIHdpdGggZXhjbHVzaXZlIGZlYXR1cmVzIGRlc2lnbmVkIGp1c3QgZm9yIE5Db25uZWN0IHVzZXJzLiBSZWFkeSB0byB1cGdyYWRlIHRoZSB3YXkgeW91IHBheT8gTGV04oCZcyBnbyEiJywKICAgICAgfSwKICAgIH0sCiAgICBzdWJ0aXRsZTogWwogICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkluc3RhbnQiIH0gfSwKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJObyBLWUMiIH0gfSwKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJMb3cgUmF0ZXMiIH0gfSwKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IFN1cHBvcnQiIH0gfSwKICAgIF0sCiAgICBjdGE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2lnbiBVcCBvbiBOQ29ubmVjdCIgfSB9LAogICAgbG92ZUhpV2FsbGV0OiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIllvdSBXaWxsIExvdmUgSGlXYWxsZXQhIiB9IH0sCiAgICAgIGl0ZW1zOiBbCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiWmVybyBGZWVzLCBBbGwgUGVya3Mg4oCTIE5vIGhpZGRlbiBjb3N0cywganVzdCBiZW5lZml0cyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIjIwMCsgQ3VycmVuY2llcyBTdXBwb3J0ZWQg4oCTIFRyYWRlLCBwYXksIGFuZCBwbGF5IiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQ2FzaGJhY2sgJiBSZXdhcmRzIOKAkyBFYXJuIHdoaWxlIHlvdSBzcGVuZCIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkluc3RhbnQgRGVwb3NpdHMgJiBXaXRoZHJhd2FscyDigJMgU2F2ZSBvbiB0aW1lIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiS2VlcCBDcmVkaXQgZm9yIE5leHQgVHJhbnNhY3Rpb24g4oCTIExpa2UgYSBwcm8hIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICBmYXE6IFsKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IGRvIEkgY3JlYXRlIG15IG93biBIaVdhbGxldD8iIH0sCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkFsbCB5b3UgbmVlZCB0byBkbyBpcyBTaWduIFVwIG9uIE5Db25uZWN0LiBZb3Ugd2lsbCBzZWUgdGhlIEhpV2FsbGV0IFNlY3Rpb24gb24geW91ciB1c2VyIERhc2hib2FyZC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBcmUgdGhlcmUgYW55IGZlZXMgZm9yIEhpV2FsbGV0PyIgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiVGhlIHNpbXBsZSBhbnN3ZXIgaXMgbm8uIFRoZXJlIGlzIG5vIGZlZSBhc3NvY2lhdGVkIHdpdGggdXNpbmcgSGlXYWxsZXQuIFRoZXJlIHdpbGwgYmUgbm8gY2hhcmdlIGZvciBjcmVhdGluZyBIaVdhbGxldCBvciBob2xkaW5nIGFzc2V0cyB3aXRoaW4gSGlXYWxsZXQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiV2hpY2ggdHlwZSBvZiBDdXJyZW5jaWVzIGRvZXMgSGlXYWxsZXQgc3VwcG9ydD8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQXQgdGhpcyBtb21lbnQsIEhpV2FsbGV0IHN1cHBvcnRzIGFsbCB0aGUgY3J5cHRvY3VycmVuY2llcyBhdmFpbGFibGUgb24gTkNvbm5lY3QuIEFuZCBzb29uLCBpdCB3aWxsIGFsc28gc3VwcG9ydCBkaWdpdGFsIGN1cnJlbmNpZXMgc3VjaCBhcyBQYXlQYWwuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSG93IGxvbmcgZG9lcyBpdCB0YWtlIHRvIGRlcG9zaXQgYW5kIHdpdGhkcmF3IGluIGFuZCBvdXQgb2YgSGlXYWxsZXQ/IiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkFsbCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBpbnN0YW50LCBzbyBubyB0aW1lIGF0IGFsbCEiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJIb3cgZG8gSSByZWNlaXZlIGNhc2hiYWNrcyBhbmQgcmV3YXJkcz8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiV2l0aCBlYWNoIHRyYW5zYWN0aW9uLCB5b3Ugd2lsbCBoYXZlIHRoZSBhYmlsaXR5IHRvIHJlY2VpdmUgY2FzaGJhY2tzLCByZXdhcmRzLCBhbmQgb2NjYXNpb25hbCBkaXNjb3VudCBjb2RlcyBhdXRvbWF0aWNhbGx5LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkNhbiBzb21lb25lIHNlbmQgbW9uZXkgdG8gbXkgSGlXYWxsZXQgYWRkcmVzcz8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGhpcyBmZWF0dXJlIGlzIGNvbWluZyBzb29uISIgfSwKICAgICAgICB9LAogICAgICB9LAogICAgXSwKICAgIGNvbW1vblF1ZXN0aW9uc1RpdGxlOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbW1vbiBRdWVzdGlvbnMgQWJvdXQgRGlnaXRhbCBXYWxsZXRzIiB9LAogICAgfSwKICAgIGNvbW1vblF1ZXN0aW9uc1VTRFQ6IFsKICAgICAgewogICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiV2hhdCBpcyBhIGRpZ2l0YWwgd2FsbGV0LCBhbmQgaG93IGRvZXMgaXQgd29yaz8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGFuc3dlcjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkEgZGlnaXRhbCB3YWxsZXQgaXMgYSBzZWN1cmUgd2F5IHRvIHN0b3JlIGFuZCBtYW5hZ2UgeW91ciBwYXltZW50IGluZm9ybWF0aW9uIG9ubGluZS4gSXQgbGV0cyB5b3UgbWFrZSB0cmFuc2FjdGlvbnMsIHN0b3JlIGN1cnJlbmNpZXMsIGFuZCBldmVuIGVhcm4gcmV3YXJkcyB3aXRob3V0IG5lZWRpbmcgcGh5c2ljYWwgY2FyZHMgb3IgY2FzaC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJBcmUgZGlnaXRhbCB3YWxsZXRzIHNhZmUgdG8gdXNlIGZvciBvbmxpbmUgcGF5bWVudHM/IiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJZZXMhIERpZ2l0YWwgd2FsbGV0cyB1c2UgYWR2YW5jZWQgZW5jcnlwdGlvbiBhbmQgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uIHRvIHByb3RlY3QgeW91ciBwZXJzb25hbCBhbmQgZmluYW5jaWFsIGluZm9ybWF0aW9uLiBUaGlzIG1ha2VzIG9ubGluZSBwYXltZW50cyBzYWZlciBhbmQgbW9yZSBzZWN1cmUgdGhhbiB0cmFkaXRpb25hbCBtZXRob2RzLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkNhbiBJIHVzZSBteSBkaWdpdGFsIHdhbGxldCBmb3IgYm90aCBjcnlwdG9jdXJyZW5jeSBhbmQgZmlhdCBjdXJyZW5jaWVzPyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQWJzb2x1dGVseSEgTWFueSBkaWdpdGFsIHdhbGxldHMgc3VwcG9ydCBib3RoIGZpYXQgY3VycmVuY2llcyAobGlrZSBVU0QsIEVVUikgYW5kIGNyeXB0b2N1cnJlbmNpZXMgKHN1Y2ggYXMgQml0Y29pbiBhbmQgRXRoZXJldW0pLCBtYWtpbmcgdGhlbSB2ZXJzYXRpbGUgdG9vbHMgZm9yIG1hbmFnaW5nIHZhcmlvdXMgdHlwZXMgb2YgYXNzZXRzLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkhvdyBjYW4gZGlnaXRhbCB3YWxsZXRzIGhlbHAgbWUgc2F2ZSBtb25leT8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGFuc3dlcjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkRpZ2l0YWwgd2FsbGV0cyBvZnRlbiBvZmZlciBjYXNoYmFjaywgcmV3YXJkcywgYW5kIGV4Y2x1c2l2ZSBkaXNjb3VudHMsIGFsbG93aW5nIHlvdSB0byBzYXZlIG1vbmV5IHdpdGggZWFjaCB0cmFuc2FjdGlvbi4gQWRkaXRpb25hbGx5LCB0aGV5IHJlZHVjZSB0aGUgbmVlZCBmb3IgcGh5c2ljYWwgY2FyZHMgYW5kIG1pbmltaXplIHRyYW5zYWN0aW9uIGZlZXMuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQ2FuIEkgdXNlIGEgZGlnaXRhbCB3YWxsZXQgZm9yIGluc3RhbnQgcGF5bWVudHMgYW5kIHdpdGhkcmF3YWxzPyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiWWVzISBNYW55IGRpZ2l0YWwgd2FsbGV0cyBvZmZlciBpbnN0YW50IGRlcG9zaXRzIGFuZCB3aXRoZHJhd2FscywgZW5zdXJpbmcgdGhhdCB5b3VyIGZ1bmRzIGFyZSBhdmFpbGFibGUgaW4gcmVhbCB0aW1lIHdpdGhvdXQgYW55IGRlbGF5c+KAlHBlcmZlY3QgZm9yIGZhc3QtcGFjZWQgdHJhbnNhY3Rpb25zIGFuZCB0cmFkaW5nLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICBdLAogICAgY29udGFjdFVzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbnRhY3QgVXMiIH0gfSwKICB9LAogIFBheXBhbFBheW1lbnQ6IHsKICAgIHRpdGxlOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk1ha2UgT25saW5lIFBheW1lbnRzIEFub255bW91cyIgfSwKICAgIH0sCiAgICB0aXRsZTI6IHsKICAgICAgdDogMCwKICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2l0aCBZb3VyIE93biBQcml2YXRlIFBvcnRhbCEiIH0sCiAgICB9LAogICAgc3VidGl0bGU6IFsKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJJbnN0YW50IiB9IH0sCiAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gS1lDIiB9IH0sCiAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTG93IFJhdGVzIiB9IH0sCiAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMjQvNyBTdXBwb3J0IiB9IH0sCiAgICBdLAogICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlN0YXJ0IFBheW1lbnRzIiB9IH0sCiAgICB0YWlsb3JNYWRlOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUYWlsb3ItTWFkZSBmb3IgWW91ciBCdXNpbmVzcyEiIH0sCiAgICAgIH0sCiAgICAgIGl0ZW1zOiBbCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRmluYW5jaWFsIE9wdGltaXphdGlvbiIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJNYWtlIHRheCBsaWFiaWxpdGllcyBtb3JlIGVmZmljaWVudCBiYXNlZCBvbiB5b3VyIGNvdW50cnksIGJ5IGZ1bm5lbGluZyB5b3VyIHBheW1lbnRzIHRocm91Z2ggTkNvbm5lY3QuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZWd1bGF0b3J5IE9wdGltaXphdGlvbiIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJNYW5hZ2Ugc3RyaWN0IGZpbmFuY2lhbCBvdmVyc2lnaHQgYW5kIHJlc3RyaWN0aW9ucyBmb3IgdGhvc2Ugb3BlcmF0aW5nIGluIGhlYXZpbHkgcmVndWxhdGVkIGluZHVzdHJpZXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdGFmZiBQYXltZW50cyIgfSB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVXRpbGl6ZSDigJxPbmxpbmUgUGF5bWVudHPigJ0gdG8gcGF5IGVtcGxveWVlcyBvciBjb250cmFjdG9ycyB3aXRoIGZ1bGwgZGlzY3JldGlvbiBhbmQgZWZmaWNpZW5jeS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkludGVybmF0aW9uYWwgRmxleGliaWxpdHkiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSGFuZGxlIGNyb3NzLWJvcmRlciBwYXltZW50cyB3aXRoIGVhc2UsIGF2b2lkaW5nIGNvbnZlcnNpb24gZmVlcyBvciByZXN0cmljdGlvbnMgaW1wb3NlZCBieSBiYW5rcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkN1c3RvbWVyIFByaXZhY3kiIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkd1YXJhbnRlZXMgcHJpdmF0ZSBjdXN0b21lciBwYXltZW50cywgcHJvdmlkaW5nIGFuIGFkZGl0aW9uYWwgcHJvdGVjdGl2ZSBsYXllciBmb3IgYm90aCB0aGUgYnVzaW5lc3MgYW5kIGNsaWVudHMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJObyBCYW5rIERlcGVuZGVuY2UiIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk9wZXJhdGUgd2l0aG91dCBiYW5rcyB0aGF0IGZvcmNlIHJlc3RyaWN0aW9ucywgZnJlZXplIGFjY291bnRzLCBvciBkZW55IHNlcnZpY2VzIGR1ZSB0byB0aGUgbmF0dXJlIG9mIHRoZSBidXNpbmVzcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNjYWxhYmlsaXR5IiB9IH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJIYW5kbGUgaGlnaCB0cmFuc2FjdGlvbiB2b2x1bWVzLCBzY2FsZSBvcGVyYXRpb25zIHdpdGhvdXQgYW55IGNvbmNlcm4gYWJvdXQgcGF5bWVudCBib3R0bGVuZWNrcyBvciBjYXBhY2l0eSBpc3N1ZXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCdXNpbmVzcyBDb250aW51aXR5IiB9IH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJFbnN1cmUgYW4gdW5pbnRlcnJ1cHRlZCBjYXNoIGZsb3cgZXZlbiBpbiBoZWF2aWx5IHJlZ3VsYXRlZCBhbmQgc3RyaWN0IGNvdW50cmllcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgfSwKICAgIGZhcTogWwogICAgICB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJEbyBJIG5lZWQgYSBWaXNhIG9yIE1hc3RlcmNhcmQgYWNjb3VudCB0byB1c2UgdGhlIOKAnE9ubGluZSBQYXltZW50c+KAnSBzZXJ2aWNlPyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJObywgT25saW5lIFBheW1lbnRzIGlzIGRlc2lnbmVkIGZvciB0aG9zZSB3aG8gZG8gbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBzZXJ2aWNlcyBvciB0aG9zZSB3aG8gbmVlZCBhbiBleHRyYSBsYXllciBvZiBwcm90ZWN0aW9uIGZvciB0aGVpciBwYXltZW50cy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJEb2VzIE5Db25uZWN0IGNoYXJnZSBleHRyYSBmZWVzIGZvciBNYXN0ZXIgY2FyZCBhbmQgVmlzYSDigJxPbmxpbmUgUGF5bWVudHPigJ0gPyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJUaGVyZSBpcyBubyBoaWRkZW4gb3IgZml4ZWQgZmVlIGFzc29jaWF0ZWQgd2l0aCBPbmxpbmUgUGF5bWVudCBzZXJ2aWNlLiBNZXJjaGFudHMgY2FuIHNlZSBleGFjdGx5IGhvdyBtdWNoIHRoZXkgc2VuZCBhbmQgaG93IG11Y2ggdGhleSByZWNlaXZlIGluIHRoZSBkZXNpZ25hdGVkIHNlY3Rpb24gb24gdGhlIGV4Y2hhbmdlIGJveC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJXaGF0IGluZm9ybWF0aW9uIGRvIEkgaGF2ZSB0byBzaGFyZSBmb3Ig4oCcT25saW5lIFBheW1lbnRz4oCdIEludm9pY2U/IiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlNpbmNlIE5Db25uZWN0IG1ha2VzIHRoZSBwYXltZW50IG9uIGJlaGFsZiBvZiB0aGUgY3VzdG9tZXIsIHRoZXkgbXVzdCBzaGFyZSBhbGwgcmVsZXZhbnQgZGF0YSBpbmNsdWRpbmcgdGhlIGRlc3RpbmF0aW9uIHdlYnNpdGUgdXJsLiBIb3dldmVyLCB0aGVyZSBpcyBubyBuZWVkIHRvIGRpc2Nsb3NlIG5hbWUgb3IgYWRkcmVzcyBvciBhbnkga2luZCBvZiBwZXJzb25hbCBpbmZvcm1hdGlvbi4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJXaWxsIE5Db25uZWN0IHNhdmUgdHJhbnNhY3Rpb24gZGF0YT8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiTm8sIE5Db25uZWN0IHdpbGwgZGVsaXZlciB0aGUgcGF5bWVudCBjb25maXJtYXRpb24gdG8gdGhlIG1lcmNoYW50IGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgZXJhc2UgYWxsIGRhdGEuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiRG9lcyBOQ29ubmVjdCBwcm92aWRlIEZyaWVuZHMgYW5kIEZhbWlseSBQYXlQYWwgcGF5bWVudHM/IiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlllcywgbWVyY2hhbnRzIGNhbiByZXF1ZXN0IGZvciBmcmllbmRzIGFuZCBmYW1pbHkgcGF5bWVudHMgdmlhIHRoZSBvbmxpbmUgc3VwcG9ydCBjaGF0IHNlY3Rpb24uIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIF0sCiAgfSwKICBvbmxpbmVQYXltZW50OiB7CiAgICB0aXRsZTogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJBIFNob3J0Y3V0IGZvciBPbmxpbmUgUGF5bWVudHM7IFdlIFBheSBmb3IgWW91ISIsCiAgICAgIH0sCiAgICB9LAogICAgZGVzY3JpcHRpb246IFsKICAgICAgewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRG9uYHQgSGF2ZSBQYXlQYWw/IE5vIFZpc2EvTWFzdGVyPyIgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQnV5IFdoYXRldmVyIFlvdSBXYW50IE9ubHkgVXNpbmcgQ3J5cHRvIiwKICAgICAgICB9LAogICAgICB9LAogICAgXSwKICAgIGlucHV0OiBbCiAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiWW91ciBFeGNsdXNpdmUgNSUgT2ZmIENvZGUiIH0gfSwKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJVcCB0byAkNSIgfSB9LAogICAgXSwKICAgIGJ1dHRvbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUcnkgaXQgTm93ISIgfSB9LAogICAgc3RhcnRQYXltZW50czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdGFydCBQYXltZW50cyIgfSB9LAogICAgaG93T25saW5lUGF5bWVudFdvcmtzOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cg4oCcT25saW5lIFBheW1lbnRz4oCdIFdvcmtzPyIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIllvdSBzZW5kIGRpZ2l0YWwgYXNzZXRzIHRvIE5Db25uZWN0IGFuZCB3ZSB3aWxsIHBheSB3aXRoIHBheXBhbCwgdmlzYSwgbWFzdGVyY2FyZCBvbiB5b3VyIGJlaGFsZi4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJBIHdpZGUgdmFyaWV0eSBvZiBkaWdpdGFsIGN1cnJlbmNpZXMgc3VwcG9ydGVkIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIGNvdW50ZG93bjogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQWN0IEZhc3QgLSBPZmZlciBFbmRzIFNvb24iIH0sCiAgICAgIH0sCiAgICAgIHN1YnRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlVudGlsIDMxIERlY2VtYmVyIiB9IH0sCiAgICAgIGRheXM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGF5cyIgfSB9LAogICAgICBob3VyczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3VycyIgfSB9LAogICAgICBtaW51dGVzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk1pbnV0ZXMiIH0gfSwKICAgICAgc2Vjb25lZHM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2Vjb25kcyIgfSB9LAogICAgfSwKICAgIGdldERpc2NvdW50OiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJGYXN0LCBObyBLWUMsIDI0LzcgU3VwcG9ydCIgfSwKICAgICAgfSwKICAgICAgaXRlbXM6IFsKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJZb3UgU2VuZCIgfSB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ3J5cHRvICsgUHVyY2hhc2UgTGluayIgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXZSBQYXkgV2l0aCIgfSB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5UGFsLCBWaXNhLCBNYXN0ZXJjYXJkIiB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIllvdSBSZWNlaXZlIiB9IH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJQYXltZW50IENvbmZpcm1hdGlvbiArIENoYXJnZWQgQWNjb3VudCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogICAgc2VydmljZTogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGhpcyBzZXJ2aWNlIGlzIG1hZGUganVzdCBmb3IgeW91IiB9LAogICAgICB9LAogICAgICB0YWJzOiBbCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQZXJzb25hbCIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQnVzaW5lc3MiIH0gfSwKICAgICAgXSwKICAgICAgcGVyc29uYWw6IFsKICAgICAgICB7CiAgICAgICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJwZXJzb25hbC0xIiB9IH0sCiAgICAgICAgICBzbHVnOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZyZWVsYW5jZXJzIiB9IH0sCiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJZb3UgZGVzZXJ2ZSB0byB3b3JrIHdpdGggY2xpZW50cyB3b3JsZHdpZGUuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBzdWJ0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJHbyBHbG9iYWw6IEdldCBQYWlkIEZhc3QsIFdvcmsgU3RyZXNzLWZyZWUiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk91ciBzZXJ2aWNlIGxldHMgeW91IG1ha2UgcGF5bWVudHMgZWFzaWx5IG9uIHBsYXRmb3JtcyBsaWtlIFVwd29yaywgRnJlZWxhbmNlciwgYW5kIEZpdmVyciwgd2l0aG91dCB0aGUgZGVsYXlzIG9yIHN0cmVzcyBvZiB0cmFkaXRpb25hbCBtZXRob2Rz4oCUanVzdCBzZWN1cmUsIHNpbXBsZSB0cmFuc2FjdGlvbnMgc28geW91IGNhbiBmb2N1cyBvbiB5b3VyIHdvcmsuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJwZXJzb25hbC0yIiB9IH0sCiAgICAgICAgICBzbHVnOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdhbWVycyIgfSB9LAogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5IGZvciBHYW1pbmcgTWFkZSBFYXN5ISIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBzdWJ0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJwYXkgc21hcnRlciwgZ2FtZSBmYXN0ZXIiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiV2l0aCBvdXIgc2VydmljZSwgeW91IGNhbiBtYWtlIHBheW1lbnRzIHNlY3VyZWx5IG9uIHBsYXRmb3JtcyBsaWtlIFN0ZWFtLCBUd2l0Y2gsIGFuZCBFcGljIEdhbWVzLiBObyBmZWVzLCBubyBLWUPigJRqdXN0IHNpbXBsZSwgaGFzc2xlLWZyZWUgdHJhbnNhY3Rpb25zLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAicGVyc29uYWwtMyIgfSB9LAogICAgICAgICAgc2x1ZzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTaG9wcGVycyIgfSB9LAogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiUGF5IFNlY3VyZWx5IGZvciBEaWdpdGFsIEFzc2V0cyBhbmQgQmV0cyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgc3VidGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU3RyZXNzLUZyZWUgUGF5bWVudHMgZm9yIEJldHMgJiBHYW1pbmchIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGV0aGVyIHlvdSdyZSBidXlpbmcgc3Vic2NyaXB0aW9ucywgYmV0dGluZyBjcmVkaXRzLCBvciBmdW5kaW5nIHlvdXIgb25saW5lIGNhc2lubyB3YWxsZXQgb24gcGxhdGZvcm1zIGxpa2UgQmV0MzY1LCBQb2tlclN0YXJzLCBvciBGYW5EdWVsLCBwYXltZW50IHJlc3RyaWN0aW9ucyBjYW4gaG9sZCB5b3UgYmFjay4gT3VyIHNlcnZpY2UgbGV0cyB5b3UgcGF5IHNlY3VyZWx5IGFuZCBlYXNpbHksIHdpdGggbm8gZmVlcyBhbmQgbm8gS1lDIHJlcXVpcmVkLiBKdXN0IHNlbmQgeW91ciBsaW5rIGFuZCBjb21wbGV0ZSB5b3VyIHRyYW5zYWN0aW9uIHdpdGhvdXQgdGhlIHN0cmVzcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogInBlcnNvbmFsLTQiIH0gfSwKICAgICAgICAgIHNsdWc6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3R1ZGVudHMiIH0gfSwKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkFjY2VzcyBZb3VyIFBheW1lbnRzIFdpdGhvdXQgTGltaXRzIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBzdWJ0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJTaW1wbGUgUGF5bWVudHMgZm9yIFNtYXJ0ZXIgTGVhcm5pbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkFzIGEgc3R1ZGVudCwgeW91IG1pZ2h0IHN0cnVnZ2xlIHRvIHBheSBmb3Igb25saW5lIGNvdXJzZXMgb3IgcmVzb3VyY2VzIG9uIHBsYXRmb3JtcyBsaWtlIFVkZW15LCBDb3Vyc2VyYSwgb3IgU2tpbGxzaGFyZS4gT3VyIHNlcnZpY2UgbGV0cyB5b3UgcGF5IGZvciBlZHVjYXRpb24gYW5kIG90aGVyIG5lZWRzIGVhc2lseSwgd2l0aCBubyBmZWVzIGFuZCBubyBLWUMuIEp1c3Qgc2VuZCB5b3VyIGxpbmsgYW5kIGdldCBzdGFydGVkLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAicGVyc29uYWwtNSIgfSB9LAogICAgICAgICAgc2x1ZzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUcmF2ZWxlciIgfSB9LAogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRWFzeSBQYXltZW50cyBXaGlsZSBZb3UgVHJhdmVsIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRyYXZlbCBFYXN5OiBQYXkgV2l0aG91dCBMaW1pdHMiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVHJhdmVsaW5nIGNhbiBtYWtlIHBheW1lbnRzIHRvdWdoLCBlc3BlY2lhbGx5IHdpdGggcmVzdHJpY3Rpb25zIG9uIHBsYXRmb3JtcyBsaWtlIEFpcmJuYiwgQm9va2luZy5jb20sIG9yIEV4cGVkaWEuIE91ciBzZXJ2aWNlIGFsbG93cyB5b3UgdG8gcGF5IHF1aWNrbHkgYW5kIHNlY3VyZWx5LCB3aXRoIG5vIGZlZXMgYW5kIG5vIEtZQy4gSnVzdCBzZW5kIHlvdXIgbGluayBhbmQgZW5qb3kgZWFzeSBwYXltZW50cyB3aGlsZSB5b3UgdHJhdmVsLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIGJ1c2luZXNzOiBbCiAgICAgICAgewogICAgICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiYnVzaW5lc3MtMSIgfSB9LAogICAgICAgICAgc2x1ZzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3N0aW5nIiB9IH0sCiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTaW1wbGUgUGF5bWVudHMgZm9yIEhvc3RpbmciIH0sCiAgICAgICAgICB9LAogICAgICAgICAgc3VidGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRmFzdCBIb3N0aW5nIFBheW1lbnRzIE1hZGUgRWFzeSEiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiTG9va2luZyB0byBidXkgaG9zdGluZyBvciByZW5ldyBzdWJzY3JpcHRpb25zIG9uIHBsYXRmb3JtcyBsaWtlIHJkcGFyZW5hLCBIZXR6bmVyLCBvciBzdGFybGluaz8gT3VyIHNlcnZpY2UgbWFrZXMgaXQgcXVpY2sgYW5kIGVhc3kuIE5vIHBheW1lbnQgbGltaXRzLCBubyBleHRyYSBmZWVzLCBhbmQgbm8gS1lDIHJlcXVpcmVkLiBKdXN0IHNlbmQgeW91ciBsaW5rIGFuZCBtYWtlIHlvdXIgcGF5bWVudCBzZWN1cmVseS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogImJ1c2luZXNzLTIiIH0gfSwKICAgICAgICAgIHNsdWc6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5IFNhbGFyeSIgfSB9LAogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5IFNhbGFyaWVzIFF1aWNrbHkgYW5kIFNlY3VyZWx5IiB9LAogICAgICAgICAgfSwKICAgICAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNlYW1sZXNzIFNhbGFyeSBQYXltZW50cyEiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiUGF5IFNhbGFyaWVzIFF1aWNrbHkgYW5kIFNlY3VyZWx5IE5lZWQgdG8gcGF5IHlvdXIgdGVhbSBvciBjb250cmFjdG9ycz8gT3VyIHNlcnZpY2UgbWFrZXMgc2FsYXJ5IHBheW1lbnRzIGZhc3QgYW5kIGVhc3kuIE5vIHBheW1lbnQgcmVzdHJpY3Rpb25zLCBubyBleHRyYSBmZWVzLCBhbmQgbm8gS1lDIHJlcXVpcmVkLiBKdXN0IGNob29zZSB5b3VyIHBheW1lbnQgbWV0aG9kLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiYnVzaW5lc3MtMyIgfSB9LAogICAgICAgICAgc2x1ZzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQYXkgaW52b2ljZSIgfSB9LAogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5IEludm9pY2VzIFdpdGhvdXQgUGF5UGFsIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBheSBJbnZvaWNlcyBXaXRob3V0IExpbWl0cyEiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiUmVjZWl2ZWQgYSBQYXlQYWwgaW52b2ljZSBidXQgY2Fu4oCZdCB1c2UgUGF5UGFsPyBObyBwcm9ibGVtLiBPdXIgc2VydmljZSBsZXRzIHlvdSBwYXkgaW52b2ljZXMgc2VjdXJlbHkgd2l0aG91dCB0aGUgbmVlZCBmb3IgUGF5UGFsIG9yIG90aGVyIHJlc3RyaWN0ZWQgcGF5bWVudCBtZXRob2RzLiBTaW1wbHkgc2VuZCB5b3VyIGxpbmssIGFuZCBtYWtlIHlvdXIgcGF5bWVudCBxdWlja2x5IGFuZCBlYXNpbHkuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJidXNpbmVzcy00IiB9IH0sCiAgICAgICAgICBzbHVnOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRvbWFpbiIgfSB9LAogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRmFzdCAmIEVhc3kgRG9tYWluIFBheW1lbnRzIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNlY3VyZSBEb21haW4gUGF5bWVudHMiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiV2FudCB0byByZWdpc3RlciBvciByZW5ldyB5b3VyIGRvbWFpbnMgd2l0aCBwcm92aWRlcnMgbGlrZSBHb0RhZGR5LCBOYW1lY2hlYXAsIG9yIEdvb2dsZSBEb21haW5zPyBXZSBtYWtlIHRoZSBwcm9jZXNzIHNpbXBsZSBhbmQgc3RyYWlnaHRmb3J3YXJkLiBObyByZXN0cmljdGlvbnMgb24gcGF5bWVudHMsIG5vIGhpZGRlbiBjaGFyZ2VzLCBhbmQgbm8gS1lDIG5lZWRlZC4gSnVzdCBzZW5kIHVzIHlvdXIgbGluayBhbmQgY29tcGxldGUgeW91ciBwYXltZW50IHNlY3VyZWx5ISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiYnVzaW5lc3MtNSIgfSB9LAogICAgICAgICAgc2x1ZzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDbG91ZCBTZXJ2aWNlcyIgfSB9LAogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSW5zdGFudCAmIFNlY3VyZSBDbG91ZCBTZXJ2aWNlIFBheW1lbnRzIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBzdWJ0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDbG91ZCBQYXltZW50cyBNYWRlIFNpbXBsZSIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJMb29raW5nIHRvIG1hbmFnZSBwYXltZW50cyBmb3IgY2xvdWQgc2VydmljZXMgbGlrZSBBV1MsIEdvb2dsZSBDbG91ZCwgb3IgQXp1cmU/IFdlIHNpbXBsaWZ5IHRoZSBwcm9jZXNzIGZvciB5b3UuIE5vIHBheW1lbnQgY2Fwcywgbm8gZXh0cmEgY29zdHMsIGFuZCBubyBLWUMgcmVxdWlyZWQuIEp1c3Qgc2hhcmUgeW91ciBsaW5rIGFuZCBjb21wbGV0ZSB5b3VyIHBheW1lbnQgc2VjdXJlbHkiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgfSwKICAgIHN1cHBvcnQ6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMjQvNyBTdXBwb3J0IiB9IH0sCiAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJDb250YWN0IG91ciBjdXN0b21lciBzdXBwb3J0IHRlYW0hIFdlIGFyZSBvbmxpbmUgYWxsIGRheSwgRXZlcnlkYXkiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdGFydCBDb252ZXJzYXRpb24iIH0gfSwKICAgIH0sCiAgfSwKICBzZXJ2aWNlczogewogICAgcGVyZmVjdE1vbmV5OiB7CiAgICAgIG1ldGE6IHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIFBlcmZlY3QgTW9uZXkgdG8gUGF5cGFsIiB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJOQ29ubmVjdCB3aWxsIGVuYWJsZSB5b3UgdG8gZXhjaGFuZ2UgcGVyZmVjdCBtb25leSB0byBwYXlwYWwgaW4gYSBmYXN0IGFuZCBzZWN1cmUgd2F5LCB3aXRoIG5vIEtZQyBhbmQgbm8gU2lnbiB1cCBpcyBuZWVkZWQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkV4Y2hhbmdlIFBlcmZlY3QgTW9uZXkgdG8gUGF5cGFsIChQTSB0byBQYXlQYWwpIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiSW4gdGhlIGRpZ2l0YWwgY3VycmFuY3kgd29ybGQsIFBlcmZlY3QgTW9uZXkgYW5kIFBheVBhbCBhcmUgYmlnIHBsYXllcnMuIEJ1dCBzb21ldGltZXMsIHlvdSBuZWVkIHRvIGV4Y2hhbmdlIHlvdXIgUGVyZmVjdE1vbmV5IHRvIFBheVBhbCBmb3IgY2VydGFpbiB0aGluZ3MuIFBheVBhbCBpcyBncmVhdCBmb3Igb25saW5lIHNob3BwaW5nIG9uIGxvdHMgb2Ygd2Vic2l0ZXMuIFNvLCBpZiB5b3UndmUgZ290IFBlcmZlY3QgTW9uZXksIGNoYW5naW5nIGl0IHRvIFBheVBhbCBvcGVucyB1cCBhIHdob2xlIG5ldyB3b3JsZCBvZiBidXlpbmcgc3R1ZmYgb25saW5lLiBJdCdzIGxpa2Ugc3dhcHBpbmcgb25lIGtpbmQgb2YgbW9uZXkgZm9yIGFub3RoZXIsIGJ1dCB3aXRoIFBheVBhbCwgeW91IGNhbiBzaG9wIGFsbW9zdCBhbnl3aGVyZSBvbmxpbmUhIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBjdGE6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIFBlcmZlY3QgTW9uZXkgdG8gUGF5cGFsIiB9LAogICAgICB9LAogICAgICBuZWVkVG86IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5lZWQgdG8gRXhjaGFuZ2UgUE0gZm9yIFBheVBhbD8iIH0sCiAgICAgIH0sCiAgICAgIG5lZWRUb0Rlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6IGAiTG9va2luZyB0byBzd2FwIHlvdXIgUGVyZmVjdCBNb25leSBVU0QgZm9yIFBheVBhbD8gSWYgdGhhdCdzIHRoZSBjYXNlLCB5b3UncmUgaW4gbHVjayB3aXRoIE5Db25uZWN0ISBPdXIgcGxhdGZvcm0gb2ZmZXJzIGFuIGVhc3ksIHVzZXItZnJpZW5kbHkgaW50ZXJmYWNlIGFuZCB0aGUgYmVzdCByYXRlcyBmb3IgY29udmVydGluZyBQZXJmZWN0IE1vbmV5IHRvIFBheVBhbC4gSXQncyBhIGJyZWV6ZSB0byBleGNoYW5nZSBoZXJlIC0gcXVpY2ssIGhhc3NsZS1mcmVlLCBhbmQgZWZmaWNpZW50ISBKdXN0IGZvbGxvdyBvdXIgc2ltcGxlIHZpZGVvIGd1aWRlLCBhbmQgeW91J2xsIGJlIGFsbCBzZXQgdG8gZXhjaGFuZ2UgeW91ciBQZXJmZWN0IE1vbmV5IGZvciBQYXlQYWwuIEluIHRoZSB3b3JsZCBvZiBkaWdpdGFsIHRyYW5zYWN0aW9ucywgYm90aCBQZXJmZWN0IE1vbmV5IGFuZCBQYXlQYWwgaGF2ZSB0aGVpciBwbGFjZSwgYnV0IHRoZXJlIGFyZSB0aW1lcyB3aGVuIHlvdSdsbCB3YW50IHRvIHN3aXRjaCBmcm9tIFBlcmZlY3QgTW9uZXkgdG8gUGF5UGFsLiBXaHk/IEJlY2F1c2UgUGF5UGFsIGlzIHdpZGVseSBhY2NlcHRlZCBhY3Jvc3MgbnVtZXJvdXMgb25saW5lIHN0b3JlcywgbWFraW5nIGl0IGlkZWFsIGZvciBtYWtpbmcgcHVyY2hhc2VzIG9uIHRoZSB3ZWIuIFNvLCBzYXkgZ29vZGJ5ZSB0byBhbnkgaGVhZGFjaGVzIHdpdGggY3VycmVuY3kgZXhjaGFuZ2U7IHdpdGggTkNvbm5lY3QsIGV4Y2hhbmdpbmcgUGVyZmVjdCBNb25leSBmb3IgUGF5UGFsIGlzIGEgc21vb3RoLCBlYXN5IHByb2Nlc3MuIFdhdGNoIG91ciB2aWRlbyBndWlkZSBmb3IgYSBxdWljaywgaGFzc2xlLWZyZWUsIGFuZCBlZmZpY2llbnQgUGVyZmVjdCBNb25leSB0byBQYXlQYWwgZXhjaGFuZ2UhImAsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbmVlZFRvQ3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIE5vdyIgfSB9LAogICAgICBzdGVwc1RpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJFeGNoYW5nZSBQZXJmZWN0IE1vbmV5IHRvIFBheVBhbCBvbiBOQ29ubmVjdCwgaW4gSnVzdCA0IEVhc3kgU3RlcHMiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHN0ZXBzRGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkF0IE5Db25uZWN0LCB3ZSd2ZSBnb3QgeW91IGNvdmVyZWQgd2hlbiBpdCBjb21lcyB0byBjYXNoaW5nIG91dCB5b3VyIFBlcmZlY3QgTW9uZXkgZnVuZHMgaW50byBQYXlQYWwsIHdoZXRoZXIgaXQncyBpbiBVU0QsIEVVUiwgb3IgR0JQLiBXaXRoIHRoZSByaXNpbmcgcG9wdWxhcml0eSBvZiBkaWdpdGFsIGN1cnJlbmNpZXMsIHRoZSBkZW1hbmQgZm9yIGNvbnZlcnRpbmcgUGVyZmVjdCBNb25leSB0byBQYXlQYWwgaXMgc2t5cm9ja2V0aW5nLiBMdWNraWx5LCB3ZSd2ZSBjcmFmdGVkIGEgc2ltcGxlIHNvbHV0aW9uIGZvciB5b3VyIFBlcmZlY3QgTW9uZXkgZXhjaGFuZ2UgbmVlZHMgcmlnaHQgaGVyZS4gSXQncyBhcyBlYXN5IGFzIHBpZSBhbmQgaGFwcGVucyBpbiBqdXN0IGZvdXIgc2ltcGxlIHN0ZXBzISIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgc3RlcHM6IHsKICAgICAgICBzdGVwOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlN0ZXAiIH0gfSwKICAgICAgICBpdGVtczogewogICAgICAgICAgZmlyc3Q6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU2VsZWN0IFBlcmZlY3QgTW9uZXkgb24gdGhlIGxlZnQgYm94IGFuZCBQYXlQYWwgKFVTRC9FVVIvR0JQKSBvbiB0aGUgcmlnaHQuIEVudGVyIHlvdXIgZGVzaXJlZCBleGNoYW5nZSBhbW91bnQuIFdhaXQgZm9yIHRoZSByYXRlcyB0byBhcHBseS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHNlY29uZWQ6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ2xpY2sg4oCcRXhjaGFuZ2XigJ0gYW5kIGVudGVyIHlvdXIgUGF5UGFsIGRldGFpbHMgYW5kIGVtYWlsIGFkZHJlc3MuIE9uY2UgYWdhaW4sIENsaWNrIG9uIHRoZSDigJxFeGNoYW5nZeKAnSBidXR0b24gYW5kIGNvbXBsZXRlIHRoZSBDYXB0Y2hhLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgdGhpcmQ6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiUmV2aWV3IHlvdXIgb3JkZXIgZGV0YWlscyBhbmQgcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zIGNhcmVmdWxseSEgb2J0YWluIGEgdHJhY2tpbmcgSUQsIGFuIGFkZHJlc3MsIGFuZCBhbiBFeHBsb3JlciBVUkwuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBmb3J0aDogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJUcmFuc2ZlciB0aGUgQWR2Y2FzaCB0byBOQ29ubmVjdOKAmXMgYWNjb3VudCBhdmFpbGFibGUgb24gdGhlIHBhZ2UgYW5kIGNsaWNrIG9uIOKAnFBheSBPcmRlcuKAnSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgc3RlcHNDdGE6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJPcmRlciBZb3VyIEV4Y2hhbmdlIFJpZ2h0IE5vdyIgfSwKICAgICAgICB9LAogICAgICAgIGp1c3RMaWtlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkp1c3QgbGlrZSB0aGF0IiB9IH0sCiAgICAgICAgZ2l2ZVRyeTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIiBZb3UgY2FuIGV4Y2hhbmdlIHlvdXIgUGVyZmVjdCBNb25leSBVU0QgZm9yIFBheVBhbCBpbnN0YW50bHkiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJMZXTigJlzIEdpdmUgaXQgYSBUcnkiIH0gfSwKICAgICAgfSwKICAgIH0sCiAgICB3ZWJtb25leTogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgV2VibW9uZXkgdG8gUGF5UGFsIFtObyBLWUNdIiB9LAogICAgICB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiVHJhbnNmZXIgV2ViTW9uZXkgdG8gUGF5UGFsIG9uIE5Db25uZWN0IGluIGp1c3QgYSBmZXcgbWludXRlcyB3aXRoIHRoZSBMb3dlc3QgZXhjaGFuZ2UgcmF0ZXMuIFdlIG9mZmVyIGFuIGV4Y2hhbmdlIHBsYXRmb3JtIHdpdGggMTAwJSBhbm9ueW1pdHkgdG8gdGVyYW5zZmVyIFdlYm1vbmV5IGFuZCAyMDArIGRpZ2l0YWwgY3VycmVuY2llcy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHN1YnRpdGxlOiBbCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJJbnN0YW50IiB9IH0sCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJMb3dlc3QgRmVlcyIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMjQvNyBTdXBwb3J0IiB9IH0sCiAgICAgIF0sCiAgICAgIGN0YTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgV2ViTW9uZXkgdG8gUGF5UGFsIiB9LAogICAgICB9LAogICAgICBob3dUb0V4Y2hhbmdlOiB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJXZWJNb25leSBUcmFuc2ZlciB0byBQYXlQYWwgaW4gNCBTdGVwczoiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlNldCB0aGUgRXhjaGFuZ2UgUGFpciBhbmQgVHlwZSB0aGUgQW1vdW50IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkVudGVyIFlvdXIgUGF5UGFsIERlc3RpbmF0aW9uIEFkZHJlc3MiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU2VuZCBXZWJNb25leSB0byBOQ29ubmVjdGBzIEFkZHJlc3MiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRWFzeSBhcyBUaGF0LCBDaGVjayBFbWFpbCBmb3IgQ29uZmlybWF0aW9uISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2ViTW9uZXkgdG8gUGF5UGFsIFdpdGhkcmF3YWwiIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZmFxOiBbCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRG8gSSBSZWNlaXZlIFBheVBhbCB2aWEgR29vZHMgYW5kIFNlcnZpY2VzIG9yIEZyaWVuZHMgYW5kIEZhbWlseT8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIllvdSBjYW4gYXNrIGZvciBmcmllbmRzIGFuZCBmYW1pbHkgaW4gdGhlIHNlY29uZCBzdGVwcywgaWYgcG9zc2libGUsIE5Db25uZWN0IHdpbGwgcGF5IHZpYSBGcmllbmRzIGFuZCBGYW1pbHkuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEb2VzIE5Db25uZWN0IGNoYXJnZSBleHRyYSBmZWVzIGZvciBXZWJNb25leSB0cmFuc2ZlciB0byBQYXlQYWw/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJObywgWW91IHdpbGwgc2VlIGV4YWN0bHkgaG93IG11Y2ggeW91IHNlbmQgYW5kIGhvdyBtdWNoIHdlIHNlbmQgb24gdGhlIGV4Y2hhbmdlIGJveC4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkRvIEkgaGF2ZSB0byBzaWduIHVwIHRvIGV4Y2hhbmdlIG15IFdlYk1vbmV5IFdNWj8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5vLCB0aGVyZSBpcyBubyBuZWVkIHRvIHNpZ24gdXAgb24gTkNvbm5lY3QgaW4gb3JkZXIgdG8gdHJhbnNmZXIgV2ViTW9uZXkuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cgZG8gSSBzZW5kIG15IFdNWiB0byBOQ29ubmVjdCIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJbiBzdGVwIDQsIFlvdSB3aWxsIHNlIE5Db25uZWN0J3MgV2ViTW9uZXkgV2FsbGV0IGFkZHJlc3MuIHNlbmQgTkNvbm5lY3QgeW91ciBXTVogYW5kIHR5cGUgaW4gdGhlIHRyYWNrIGlkIGFzIGNvbW1lbnQsIHRoZW4gY2xpY2sgb24gZmluYWxpemUgb3JkZXIuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJIb3cgbG9uZyBkb2VzIGl0IHRha2UgdG8gRXhjaGFuZ2UgV2ViTW9uZXkgdG8gUGF5UGFsPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVGhlIHByb2Nlc3Mgd2lsbCB0YWtlIG9ubHkgYSBmZXcgbWludXRlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkNhbiBJIHRyYW5zZmVyIG15IFdlYk1vbmV5IHRvIG15IEJhbmsgQWNjb3VudD8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlllcywgWW91IGNhbiBzZXQgdXAgeW91ciBXZWJNb25leSBhY2NvdW50IHRvIGJlIGFibGUgdG8gd2l0aGRyYXcgV01aIHRvIHlvdXIgYmFuayBhY2NvdW50LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIGVuam95OiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW5qb3kgRnVsbCBQcml2YWN5ISIgfSB9LAogICAgICAgIGN0YTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIFdlYk1vbmV5IFVTRCB0byBQYXlQYWwiIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY29tbW9uUXVlc3Rpb25zVGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbW1vbiBRdWVzdGlvbnMgQWJvdXQgV2ViTW9uZXkiIH0sCiAgICAgIH0sCiAgICAgIGNvbW1vblF1ZXN0aW9uc1VTRFQ6IFsKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGF0IGlzIGFuIGlkZWFsIHBsYXRmb3JtIHRvIGV4Y2hhbmdlIFdlYk1vbmV5IFdNWiB0byBQYXlQYWw/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQmFzaWNhbGx5LCBsb3cgZXhjaGFuZ2UgZmVlcywgcHJpdmFjeSBhbmQgcmVhZGlseSBhdmFpbGFibGUgc3VwcG9ydCBpcyBleGFjdGx5IHdoYXQgeW91IG5lZWQuICBTYWRseSwgbW9zdCBjb252ZW50aW9uYWwgcGxhdGZvcm1zIGZhaWwgdG8gZGVsaXZlciBvbiBwcml2YWN5IGRlc3BpdGUgaGF2aW5nIGxvdyBmZWVzLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSXMgV2ViTW9uZXkgYSBSZWxpYWJsZSBQYXltZW50IFN5c3RlbSBpbiAyMDI2PyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlllcywgV2ViTW9uZXkgaGFzIGhhZCBhIGZsYXdsZXNzIHJlbGlhYmlsaXR5IHJlY29yZCBzaW5jZSBpdCB3YXMgZm91bmRlZCBpbiAxOTk4LiBBbHNvLCBpdCBvZmZlcnMgZmFzdCBwYXltZW50IHNldHRsZW1lbnQgYW5kIGxvdyBmZWVzIGFzc2V0cyBmb3IgaXRzIGNsaWVudHMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGF0IGlzIHRoZSBXZWJNb25leSBXTVogdG8gUGF5UGFsIFVTRCBleGNoYW5nZSByYXRlIGluIDIwMjY/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ3VycmVudGx5LCBXZWJNb25leSBlcXVhbHMgMSBQYXlQYWwgVVNELiBIb3dldmVyLCBiYXNlZCBvbiB3aGljaCBwbGF0Zm9ybSB5b3UgdXNlLCB0aGVyZSBtaWdodCBiZSBleGNoYW5nZSBmZWVzIGFkZGVkIHRvIHlvdXIgZXhjaGFuZ2UuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEb2VzIFdlYk1vbmV5IFN1cHBvcnQgQ3J5cHRvY3VycmVuY2llcz8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGFuc3dlcjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJZZXMsIFdlYk1vbmV5IFdhbGxldCBhY2NlcHRzIGEgbGltaXRlZCBudW1iZXIgb2YgY3J5cHRvY3VycmVuY2llcyBmb3Igc3dhcHBpbmcgd2l0aCBsb3cgZmVlcy4gSG93ZXZlciwgdGhlIGFzc2V0cyBhcmUgbm90IGFzIGRpdndlcnNlIGFzIG90aGVyIGNvbXBldGl0b3JzLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSXMgUGF5UGFsIGEgdmlhYmxlIG9wdGlvbiBmb3Igb25saW5lIHBheW1lbnRzPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkFzIG9mIDIwMjYsIFBheVBhbCByZW1haW5zIGFzIHRoZSAjMSBwYXltZW50IHByb2Nlc3NvciBpbiB0aGUgd29ybGQgd2l0aCBvdmVyIDQyNiBtaWxsaW9uIGFjdGl2ZSB1c2Vycy4gRnVydGhlcm1vcmUsIFBheVBhbCBtYWludGFpbnMgNDUlIG9mIHRoZSBnbG9iYWwgcGF5bWVudHMgbWFya2V0IHNoYXJlIHdpdGggYSBtYXJrZXQgY2FwIG9mICQ2OS40MiBiaWxsaW9uLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIGNvbnRhY3RVczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb250YWN0IFVzIiB9IH0sCiAgICB9LAogICAgcGF5ZWVyOiB7CiAgICAgIG1ldGE6IHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIFBheWVlciB0byBQYXlQYWwiIH0sCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkV4Y2hhbmdlIFBheWVlciB0byBQYXlQYWwgd2l0aCBOQ29ubmVjdCBlYXNpbHkuIE91ciBleGNoYW5nZSBwbGF0Zm9ybSBvZmZlcnMgc2VjdXJlIFBheWVlciB0byBQYXlQYWwgdHJhbnNhY3Rpb25zIGFuZCBjb21wZXRpdGl2ZSByYXRlcywgZW5zdXJpbmcgYSBzbW9vdGggZXhjaGFuZ2UgZXhwZXJpZW5jZS4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgUGF5ZWVyIHRvIFBheVBhbCIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRoZSBuZWVkIGZvciBleGNoYW5naW5nIFBheWVlciB0byBQYXlQYWwgaXMgZ3Jvd2luZyBpbiB0b2RheeKAmXMgd29ybGQuIEJvdGggUGF5ZWVyIGFuZCBQYXlQYWwgYXJlIGhpZ2hseSBwb3B1bGFyIGluIHRoZSB3b3JsZCBvZiBkaWdpdGFsIGZpbmFuY2UsIGVzcGVjaWFsbHkgYW1vbmcgdGhvc2Ugd2l0aCBhIHRvdWNoIG9mIGNyeXB0b2N1cnJlbmNpZXMgaW4gdGhlaXIgaW52ZXN0bWVudCBiYWcuIE5Db25uZWN0IG9mZmVycyBhbiBlYXN5IHRvIHVzZSBhbmQgcXVpY2sgc2VydmljZSBmb3IgdGhpcyBleGNoYW5nZSBwYWlyLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIFBheWVlciB0byBQYXlwYWwiIH0gfSwKICAgICAgbmVlZFRvOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJOZWVkIHRvIEV4Y2hhbmdlIFBheWVlciB0byBQYXlQYWw/IiB9LAogICAgICB9LAogICAgICBuZWVkVG9EZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQXMgdGhlIGRlbWFuZCBmb3IgZGlnaXRhbCBjdXJyZW5jaWVzIGdyb3dzLCBtb3JlIGFuZCBtb3JlIHBlb3BsZSBmaW5kIHRoZW1zZWx2ZXMgaW4gbmVlZCBvZiBhbiBlYXN5IHdheSB0byBjYXNoIG91dCB0aGVpciBmdW5kcyB0byBidXkgZ29vZHMgYW5kIHNlcnZpY2VzIHRocm91Z2hvdXQgdGhlIGludGVybmV0LiBFeGNoYW5naW5nIFBheWVlciBVU0QgdG8gUGF5UGFsIGlzIG9uZSBvZiB0aGUgd2F5cyB0byBtYWtlIHVzZSBvZiB5b3VyIGNyeXB0byBlYXJuaW5ncy4gSWYgdGhpcyBpcyB3aGF0IHlvdeKAmXJlIGxvb2tpbmcgZm9yLCBOQ29ubmVjdCBvZmZlcnMgYW4gZWFzeSB0byB1c2UgcGxhdGZvcm0gYW5kIGRlbWFuZGluZyByYXRlcy4gVG8gZXhjaGFuZ2UgaGVyZSBpcyBxdWljaywgaGFzc2xlLWZyZWUgYW5kIGVmZmljaWVudCEgSnVzdCB3YXRjaCB0aGlzIHZpZGVvIGd1aWRlIGFuZCB5b3XigJlyZSBnb29kIHRvIGdvIGZvciBleGNoYW5naW5nIHlvdXIgUGF5ZWVyIGZ1bmRzIHRvIFBheVBhbC4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIG5lZWRUb0N0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBOb3ciIH0gfSwKICAgICAgc3RlcHNUaXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiRXhjaGFuZ2luZyB5b3VyIFBheWVlciB0byBQYXlQYWwgb24gTkNvbm5lY3QsIHRha2VzIGp1c3QgNCBlYXN5IHN0ZXBzIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzdGVwc0Rlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3UgY2FuIGNvdW50IG9uIE5Db25uZWN0IGZvciBjYXNoaW5nIG91dCB5b3VyIFBheWVlciBmdW5kcyBpbiB0aGUgZm9ybSBvZiBQYXlQYWwgVVNELCBFVVIgYW5kIEdCUC4gQXMgdGhlIGRlbWFuZCBmb3IgZGlnaXRhbCBjdXJyZW5jaWVzIGdyb3dzLCBQYXllZXIgdG8gUGF5UGFsIHRyYW5zZmVyIGJlY29tZXMgb25lIG9mIHRoZSBtb3N0IGRlbWFuZGluZyBleGNoYW5nZSBkaXJlY3Rpb25zLldlIGhhdmUgdGFpbG9yZWQgYW4gZWFzeSBzb2x1dGlvbiBmb3IgeW91ciBQYXllZXIgZXhjaGFuZ2UgaGVyZS4gSXQgYWxsIGhhcHBlbnMgaW4ganVzdCA0IHN0ZXBzIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzdGVwczogewogICAgICAgIHN0ZXA6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3RlcCIgfSB9LAogICAgICAgIGl0ZW1zOiB7CiAgICAgICAgICBmaXJzdDogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJTZWxlY3QgUGF5ZWVyIG9uIHRoZSBsZWZ0IGJveCBhbmQgUGF5UGFsIChVU0QvRVVSL0dCUCkgb24gdGhlIHJpZ2h0LiBFbnRlciB5b3VyIGRlc2lyZWQgZXhjaGFuZ2UgYW1vdW50LiBXYWl0IGZvciB0aGUgcmF0ZXMgdG8gYXBwbHkuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBzZWNvbmVkOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkNsaWNrIOKAnEV4Y2hhbmdl4oCdIGFuZCBlbnRlciB5b3VyIFBheVBhbCBkZXRhaWxzIGFuZCBlbWFpbCBhZGRyZXNzLiBPbmNlIGFnYWluLCBDbGljayBvbiB0aGUg4oCcRXhjaGFuZ2XigJ0gYnV0dG9uIGFuZCBjb21wbGV0ZSB0aGUgQ2FwdGNoYS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHRoaXJkOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlJldmlldyB5b3VyIG9yZGVyIGRldGFpbHMgYW5kIHJlYWQgdGhlIGluc3RydWN0aW9ucyBjYXJlZnVsbHkhIG9idGFpbiBhIHRyYWNraW5nIElELCBhbiBhZGRyZXNzLCBhbmQgYW4gRXhwbG9yZXIgVVJMLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZm9ydGg6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVHJhbnNmZXIgdGhlIFBheWVlciBVU0QgdG8gTkNvbm5lY3QgUGF5ZWVyIGFjY291bnQgYXZhaWxhYmxlIG9uIHRoZSBwYWdlIGFuZCBjbGljayBvbiDigJxQYXkgT3JkZXLigJ0iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHN0ZXBzQ3RhOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiT3JkZXIgWW91ciBFeGNoYW5nZSBSaWdodCBOb3ciIH0sCiAgICAgICAgfSwKICAgICAgICBqdXN0TGlrZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJKdXN0IGxpa2UgdGhhdCIgfSB9LAogICAgICAgIGdpdmVUcnk6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICIgWW91IGNhbiBleGNoYW5nZSB5b3VyIFBheWVlciBmb3IgUGF5UGFsIGluc3RhbnRseSIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkxldOKAmXMgR2l2ZSBpdCBhIFRyeSIgfSB9LAogICAgICB9LAogICAgfSwKICAgIHZvbGV0OiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBWb2xldCBVU0QgdG8gUGF5UGFsIFtObyBLWUNdIiB9LAogICAgICB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiU3dhcCBWb2xldCAoQWR2Q2FzaCkgVVNEIHRvIFBheVBhbCBvbiBOQ29ubmVjdCBpbiBqdXN0IGEgZmV3IG1pbnV0ZXMgd2l0aCB0aGUgTG93ZXN0IGV4Y2hhbmdlIHJhdGVzLiBXZSBvZmZlciBhbiBleGNoYW5nZSBwbGF0Zm9ybSB3aXRoIDEwMCUgYW5vbnltaXR5IHRvIGNvbnZlcnQgVm9sZXQgVVNEIGFuZCAyMDArIGRpZ2l0YWwgY3VycmVuY2llcy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHByb3M6IFsKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkluc3RhbnQiIH0gfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkxvd2VzdCBGZWVzIiB9IH0sCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IFN1cHBvcnQiIH0gfSwKICAgICAgXSwKICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIEFkdkNhc2giIH0gfSwKICAgICAgaG93VG9FeGNoYW5nZTogewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IHRvIEV4Y2hhbmdlIFZvbGV0IFVTRCB0byBQYXlQYWw/IiB9LAogICAgICAgIH0sCiAgICAgICAgaXRlbXM6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiMS4gU2V0IHRoZSBFeGNoYW5nZSBQYWlyIGFuZCBUeXBlIHRoZSBBbW91bnQiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiMi4gRW50ZXIgWW91ciBQYXlQYWwgRGVzdGluYXRpb24gQWRkcmVzcyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICIzLiBTZW5kIFZvbGV0IFVTRCB0byBOQ29ubmVjdGBzIEFkZHJlc3MiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiNC4gRWFzeSBhcyBUaGF0LCBDaGVjayBFbWFpbCBmb3IgQ29uZmlybWF0aW9uISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhc25zZmVyIFZvbGV0IFVTRCB0byBQYXlQYWwiIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgd2h5am9saXhvOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2h5IE5Db25uZWN0PyIgfSB9LAogICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjIwMCsgQ3VycmVuY2llcyIgfSB9LAogICAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiTkNvbm5lY3QgU3VwcG9ydHMgYSB2YXN0IHZhcmlldHkgb2YgY3J5cHRvIGFuZCBkaWdpdGFsIGN1cnJlbmNpZXMuIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTG93ZXN0IEZlZXMiIH0gfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIldoYXQgeW91IHNlZSBpcyBleGFjdGx5IGhvdyBtdWNoIHdlIGNoYXJnZSwgdGhlcmUgaXMgbm8gaGlkZGVuIGZlZSEiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IFN1cHBvcnQiIH0gfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIk5lZWQgc3VwcG9ydD8gT3VyIHRlYW0gaXMgcmVhZHkgdG8gYW5zd2VyIGFsbCB5b3VyIHF1ZXN0aW9ucyAyNC83IiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gS1lDIiB9IH0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJBdCBOQ29ubmVjdCwgV2Ugd29u4oCZdCBzbG93IHlvdSBkb3duIHdpdGggYW5ub3lpbmcgcXVlc3Rpb25zLiBJdOKAmXMgYWxsIGZhc3QgYW5kIGl04oCZcyBhbGwgZWFzeSEiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29udGFjdCBVcyBmb3IgTW9yZSBJbmZvcm1hdGlvbiIgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICBmYXE6IFsKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEbyBJIFJlY2VpdmUgUGF5UGFsIHZpYSBHb29kcyBhbmQgU2VydmljZXMgb3IgRnJpZW5kcyBhbmQgRmFtaWx5PyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiWW91IGNhbiBhc2sgZm9yIGZyaWVuZHMgYW5kIGZhbWlseSBpbiB0aGUgc2Vjb25kIHN0ZXBzLCBpZiBwb3NzaWJsZSwgTkNvbm5lY3Qgd2lsbCBwYXkgdmlhIEZyaWVuZHMgYW5kIEZhbWlseS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkRvZXMgTkNvbm5lY3QgY2hhcmdlIGV4dHJhIGZlZXMgZm9yIFZvbGV0IFVTRCB0byBQYXlQYWwgd2l0aGRyYXdhbD8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5vLCBZb3Ugd2lsbCBzZWUgZXhhY3RseSBob3cgbXVjaCB5b3Ugc2VuZCBhbmQgaG93IG11Y2ggd2Ugc2VuZCBvbiB0aGUgZXhjaGFuZ2UgYm94LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRG8gSSBoYXZlIHRvIHNpZ24gdXAgdG8gZXhjaGFuZ2UgbXkgVm9sZXQgKEFkdkNhc2gpPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiTm8sIHRoZXJlIGlzIG5vIG5lZWQgdG8gc2lnbiB1cCBvbiBOQ29ubmVjdCBpbiBvcmRlciB0byBleGNoYW5nZSBWb2xldCBVU0QuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJIb3cgZG8gSSBzZW5kIG15IFZvbGV0IFVTRCB0byBOQ29ubmVjdCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSW4gc3RlcCA0LCBjbGljayBvbiB0aGUgbWFrZSBwYXltZW50IGJ1dHRvbiBhbmQgeW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byBWb2xldCBVU0Qgd2Vic2l0ZSB0byBwYXkgZm9yIHlvdXIgaW52b2ljZS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkhvdyBsb25nIGRvZXMgaXQgdGFrZSB0byBTd2FwIFZvbGV0IFVTRCB0byBQYXlQYWw/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJUaGUgcHJvY2VzcyB3aWxsIHRha2Ugb25seSBhIGZldyBtaW51dGVzLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRG9lcyBOQ29ubmVjdCBTdXBwb3J0IG9ubHkgUGF5UGFsIFVTRD8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5vLCBOQ29ubmVjdCBkb2VzIGFsc28gb2ZmZXIgUGF5UGFsIEVVUiBhbmQgUGF5UGFsIEdCUCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIGVuam95OiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW5qb3kgRnVsbCBQcml2YWN5ISIgfSB9LAogICAgICAgIGN0YTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIFZvbGV0IFVTRCB0byBQYXlQYWwiIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY29tbW9uUXVlc3Rpb25zVGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbW1vbiBRdWVzdGlvbnMgQWJvdXQgVm9sZXQgKEFkdkNhc2gpIiB9LAogICAgICB9LAogICAgICBjb21tb25RdWVzdGlvbnNVU0RUOiBbCiAgICAgICAgewogICAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiV2hhdCBpcyBhbiBpZGVhbCBwbGF0Zm9ybSB0byBleGNoYW5nZSBWb2xldCBVU0QgdG8gUGF5UGFsPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkJhc2ljYWxseSwgbG93IGV4Y2hhbmdlIGZlZXMsIHByaXZhY3kgYW5kIHJlYWRpbHkgYXZhaWxhYmxlIHN1cHBvcnQgaXMgZXhhY3RseSB3aGF0IHlvdSBuZWVkLiAgU2FkbHksIG1vc3QgY29udmVudGlvbmFsIHBsYXRmb3JtcyBmYWlsIHRvIGRlbGl2ZXIgb24gcHJpdmFjeSBkZXNwaXRlIGhhdmluZyBsb3cgZmVlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIklzIFZvbGV0IGEgUmVsaWFibGUgRGlnaXRhbCBXYWxsZXQgaW4gMjAyNj8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGFuc3dlcjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJZZXMsIFZvbGV0LCBQcmV2aW91c2x5IGtub3duIGFzIEFkdkNhc2ggaGFzIGhhZCBhIGdyZWF0IHRyYWNrIHJlY29yZCBhcyBhIGRpZ2l0YWwgd2FsbGV0IHRoYXQgb2ZmZXIgYSB3aWRlIHZhcmlldHkgb2YgYXNzZXRzIGF0IGdvb2QgcmF0ZXMgb2YgZXhjaGFuZ2UuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGF0IGlzIHRoZSBWb2xldCBVU0QgdG8gUGF5UGFsIFVTRCBleGNoYW5nZSByYXRlIGluIDIwMjY/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ3VycmVudGx5LCAxIFZvbGV0IFVTRCBlcXVhbHMgMSBQYXlQYWwgVVNELiBIb3dldmVyLCBiYXNlZCBvbiB3aGljaCBwbGF0Zm9ybSB5b3UgdXNlLCB0aGVyZSBtaWdodCBiZSBleGNoYW5nZSBmZWVzIGFkZGVkIHRvIHlvdXIgZXhjaGFuZ2UuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEb2VzIEFkdkNhc2ggKFZvbGV0KSBTdXBwb3J0IENyeXB0b2N1cnJlbmNpZXM/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiWWVzLCBWb2xldCBwcm92aWRlcyBzdXBwb3J0IGZvciBib3RoIGNyeXB0b2N1cnJlbmNpZXMgYW5kIGZpYXQgd2l0aCBhIHdpZGUgdmFyaWV0eSBvZiBhc3NldHMgYXZhaWxhYmxlIHRvIHN3YXAuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJcyBQYXlQYWwgYSB2aWFibGUgb3B0aW9uIGZvciBvbmxpbmUgcGF5bWVudHM/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQXMgb2YgMjAyNiwgUGF5UGFsIHJlbWFpbnMgYXMgdGhlICMxIHBheW1lbnQgcHJvY2Vzc29yIGluIHRoZSB3b3JsZCB3aXRoIG92ZXIgNDI2IG1pbGxpb24gYWN0aXZlIHVzZXJzLiBGdXJ0aGVybW9yZSwgUGF5UGFsIG1haW50YWlucyA0NSUgb2YgdGhlIGdsb2JhbCBwYXltZW50cyBtYXJrZXQgc2hhcmUgd2l0aCBhIG1hcmtldCBjYXAgb2YgJDY5LjQyIGJpbGxpb24uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICBiaXRjb2luOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBCaXRjb2luIHRvIFBheVBhbCBbTm8gS1lDXSIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkV4Y2hhbmdlIEJpdGNvaW4gZm9yIFBheVBhbCBvbiBOQ29ubmVjdCBpbiBpbnN0YW50bHkgd2l0aCB0aGUgemVybyBleGNoYW5nZSBmZWVzLiBFbmpveSB5b3VyIEJUQyBleGNoYW5nZSBwbGF0Zm9ybSB3aXRoIDEwMCUgYW5vbnltaXR5LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgc3VidGl0bGU6IFsKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkluc3RhbnQiIH0gfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkxvd2VzdCBGZWVzIiB9IH0sCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IFN1cHBvcnQiIH0gfSwKICAgICAgXSwKICAgICAgY3RhOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBCaXRjb2luIHRvIFBheVBhbCIgfSwKICAgICAgfSwKICAgICAgaG93VG9FeGNoYW5nZTogewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQlRDIFRyYW5zZmVyIHRvIFBheVBhbCBpbiA0IFN0ZXBzOiIgfSwKICAgICAgICB9LAogICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlNldCB0aGUgRXhjaGFuZ2UgUGFpciBhbmQgVHlwZSB0aGUgQW1vdW50IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkVudGVyIFlvdXIgUGF5UGFsIERlc3RpbmF0aW9uIEFkZHJlc3MiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2VuZCBCVEMgdG8gTkNvbm5lY3RgcyBBZGRyZXNzIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRWFzeSBhcyBUaGF0LCBDaGVjayBFbWFpbCBmb3IgQ29uZmlybWF0aW9uISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIEJpdGNvaW4iIH0gfSwKICAgICAgfSwKICAgICAgZmFxOiBbCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRG8gSSBSZWNlaXZlIFBheVBhbCB2aWEgR29vZHMgYW5kIFNlcnZpY2VzIG9yIEZyaWVuZHMgYW5kIEZhbWlseT8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIllvdSBjYW4gYXNrIGZvciBmcmllbmRzIGFuZCBmYW1pbHkgaW4gdGhlIHNlY29uZCBzdGVwcywgaWYgcG9zc2libGUsIE5Db25uZWN0IHdpbGwgcGF5IHZpYSBGcmllbmRzIGFuZCBGYW1pbHkuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEb2VzIE5Db25uZWN0IGNoYXJnZSBleHRyYSBmZWVzIHRvIFNlbGwgQml0Y29pbj8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5vLCBZb3Ugd2lsbCBzZWUgZXhhY3RseSBob3cgbXVjaCB5b3Ugc2VuZCBhbmQgaG93IG11Y2ggd2Ugc2VuZCBvbiB0aGUgZXhjaGFuZ2UgYm94LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRG8gSSBoYXZlIHRvIHNpZ24gdXAgdG8gZXhjaGFuZ2UgQml0Y29pbj8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5vLCB0aGVyZSBpcyBubyBuZWVkIHRvIHNpZ24gdXAgb24gTkNvbm5lY3QgaW4gb3JkZXIgdG8gc2VsbCBCVEMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJIb3cgZG8gSSBzZW5kIG15IEJpdGNvaW4gKEJUQykgdG8gTkNvbm5lY3QiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkluIHN0ZXAgNCwgeW91IHdpbGwgc2VlIGFuIGludm9pY2UgbGluay4gRm9sbG93IHRoZSBsaW5rICBhbmQgc2VuZCBOQ29ubmVjdCB5b3VyIEJUQy4gQW5kIHRoYXQncyBpdCEiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkhvdyBsb25nIGRvZXMgQml0Y29pbiB0YWtlIHRvIHdpdGhkcmF3PyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVGhlIHByb2Nlc3Mgd2lsbCB0YWtlIG9ubHkgYSBmZXcgbWludXRlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkhvdyB0byBjYXNoIG91dCBCaXRjb2luPyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJTZWxlY3QgQml0Y29pbiBvbiB0aGUgbGVmdCBib3ggYW5kIFBheVBhbCBvbiB0aGUgcmlnaHQgc2lkZS4gVGhlbiwgaGVhZCB0byB0aGUgbmV4dCBzdGVwIHRvIGZpbmFsaXplIG9yZGVyLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIGVuam95OiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW5qb3kgRnVsbCBQcml2YWN5ISIgfSB9LAogICAgICAgIGN0YTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2hhbmdlIEJpdGNvaW4gdG8gUGF5UGFsIiB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGNvbW1vblF1ZXN0aW9uc1RpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb21tb24gUXVlc3Rpb25zIEFib3V0IEJpdGNvaW4iIH0sCiAgICAgIH0sCiAgICAgIGNvbW1vblF1ZXN0aW9uc1VTRFQ6IFsKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGF0IGlzIGFuIGlkZWFsIHBsYXRmb3JtIHRvIGV4Y2hhbmdlIEJpdGNvaW4gKEJUQyk/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQmFzaWNhbGx5LCBsb3cgZXhjaGFuZ2UgZmVlcywgcHJpdmFjeSBhbmQgMjQvNyBzdXBwb3J0IGlzIGV4YWN0bHkgd2hhdCB5b3UgbmVlZC4gIFNhZGx5LCBtb3N0IGNvbnZlbnRpb25hbCBwbGF0Zm9ybXMgZmFpbCB0byBkZWxpdmVyIG9uIHByaXZhY3kgZGVzcGl0ZSBoYXZpbmcgbG93IGZlZXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cgdG8gU2VsbCBCaXRjb2luPyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU2VsZWN0IEJpdGNvaW4gb24gdGhlIGV4Y2hhbmdlIGJveCwgdGhlbiBzZWxlY3QgdGhlIGN1cnJlbmN5IHlvdSB3YW50IHRvIHJlY2VpdmUuIFRoZW4gcHJvY2VlZCB0byB0aGUgbmV4dCBzdGVwISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2hhdCBpcyB0aGUgQlRDIFJhdGU/IiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGFuc3dlcjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJCVEMgcmF0ZSBpcyB0aGUgcmF0ZSBvZiBleGNoYW5nZSBmb3IgdGhlIHRhcmdldCBjdXJyZW5jeS4gWW91IGNhbiBjaGVjayBOQ29ubmVjdCBmb3IgdGhlIEJUQyByYXRlIHRvZGF5LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IENhbiBJIEJ1eSBCaXRjb2luPyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU2VsZWN0IHlvdXIgcGF5bWVudCBtZXRob2Qgb24gdGhlIGV4Y2hhbmdlIGJveCwgdGhlbiBzZWxlY3QgQml0Y29pbiAoQlRDKSBvbiB0aGUgcmlnaHQgYm94LiBUeXBlIGluIHlvdXIgYW1vdW50IGFuZCB5b3UncmUgZ29vZCB0byBnbyEiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldoeSBpcyBCaXRjb2luIERyb3BwaW5nPyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQlRDIGlzIGEgdm9sYXRpbGUgYXNzZXQuIEhvd2V2ZXIsIHRoZSB2b2xhdGlsaXR5IG1lYW5zIHRoYXQgaXQgY291bGQgYWxzbyBqdW1wIGluIHZhbHVlLiBMb25nIHRlcm0gaG9sZGluZyBvZiBCVEMgaGFzIHByb3ZlbiB0byBiZSB0aGUgYmVzdCBtdGhvZCBvZiBCVEMgaW52ZXN0bWVudC4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkhvdyBsb25nIGRvZXMgaXQgdGFrZSB0byBtaW5lIDEgQml0Y29pbj8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGFuc3dlcjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJCZXR3ZWVuIDEwIG1pbnV0ZXMgdG8gYSB5ZWFyISBJdCBkZXBlbmRzIG9uIHlvdXIgbWluaW5nIHNldHVwLiBIb3dldmVyLCB0aGUgZWZmaWNpZW5jeSBhbmQgdGhlIHByaWNlIHRvIHBlcmZvcm1hbmNlIHJhdGlvIGlzIHdoYXQgcmVhbGx5IG1hdHRlcnMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJIb3cgbG9uZyBkb2VzIEJpdGNvaW4gdGFrZSB0byBzZW5kPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkJUQyB0cmFuc2FjdGlvbiBjb25maXJtYXRpb24gdGFrZXMgbGVzcyB0aGFuIDEwIG1pbnV0ZXMuIEFuZCB0aGUgdHJhbnNhY3Rpb24gc2V0dGxlbWVudCB0YWtlcyBhcm91bmQgMS0yIGhvdXJzLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIGNvbnRhY3RVczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb250YWN0IFVzIiB9IH0sCiAgICB9LAogICAgdGV0aGVyOiB7CiAgICAgIG1ldGE6IHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkV4Y2hhbmdlIFRldGhlciBVU0RUIHRvIFBheVBhbCBbTm8gS1lDXSIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJFeGNoYW5nZSBVU0RUIHRvIFBheVBhbCB3aXRoIGZ1bGwgYW5vbnltaXR5LCBsb3dlc3QgZXhjaGFuZ2UgcmF0ZXMgYW5kIDI0Lzcgb25saW5lIHN1cHBvcnQgaW4gb25seSBhIG1hdHRlciBvZiBtaW51dGVzIG9uIE5Db25uZWN0IiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBrZXl3b3JkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlVTRFQgdG8gUGF5UGFsIiB9IH0sCiAgICAgIH0sCiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJFeGNoYW5nZSBUZXRoZXIgVVNEVCB0byBQYXlQYWwgW05vIEtZQ10iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJTd2FwIFVTRFQgdG8gUGF5UGFsIG9uIE5Db25uZWN0IGluIGp1c3QgYSBmZXcgbWludXRlcyB3aXRoIHRoZSBiZXN0IGV4Y2hhbmdlIHJhdGVzLiBXZSBvZmZlciBhbiBleGNoYW5nZSBwbGF0Zm9ybSB3aXRoIDEwMCUgYW5vbnltaXR5IHRvIGNvbnZlcnQgVVNEVCBhbmQgMjAwKyBkaWdpdGFsIGN1cnJlbmNpZXMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBwcm9zOiBbCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJJbnN0YW50IiB9IH0sCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJMb3dlc3QgRmVlcyIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMjQvNyBTdXBwb3J0IiB9IH0sCiAgICAgIF0sCiAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBVU0RUIHRvIFBheVBhbCIgfSB9LAogICAgICBob3dUb0V4Y2hhbmdlOiB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cgdG8gRXhjaGFuZSBVU0RUIHRvIFBheVBhbD8iIH0sCiAgICAgICAgfSwKICAgICAgICBpdGVtczogWwogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICIxLiBTZXQgdGhlIEV4Y2hhbmdlIFBhaXIgYW5kIFR5cGUgdGhlIEFtb3VudCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICIyLiBFbnRlciBZb3VyIFBheVBhbCBEZXN0aW5hdGlvbiBBZGRyZXNzIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIjMuIFNlbmQgVVNEVCB0byBOQ29ubmVjdGBzIEFkZHJlc3MiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiNC4gRWFzeSBhcyBUaGF0LCBDaGVjayBFbWFpbCBmb3IgQ29uZmlybWF0aW9uISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJFYXN5IGFzIFRoYXQsIENoZWNrIEVtYWlsIGZvciBDb25maXJtYXRpb24hIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBjdGE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgVVNEVCB0byBQYXlQYWwiIH0gfSwKICAgICAgfSwKICAgICAgd2h5am9saXhvOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2h5IE5Db25uZWN0PyIgfSB9LAogICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjIwMCsgQ3VycmVuY2llcyIgfSB9LAogICAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiTkNvbm5lY3QgU3VwcG9ydHMgYSB2YXN0IHZhcmlldHkgb2YgY3J5cHRvIGFuZCBkaWdpdGFsIGN1cnJlbmNpZXMuIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTG93ZXN0IEZlZXMiIH0gfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIldoYXQgeW91IHNlZSBpcyBleGFjdGx5IGhvdyBtdWNoIHdlIGNoYXJnZSwgdGhlcmUgaXMgbm8gaGlkZGVuIGZlZSEiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IFN1cHBvcnQiIH0gfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIk5lZWQgc3VwcG9ydD8gT3VyIHRlYW0gaXMgcmVhZHkgdG8gYW5zd2VyIGFsbCB5b3VyIHF1ZXN0aW9ucyAyNC83IiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gS1lDIiB9IH0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJBdCBOQ29ubmVjdCwgV2Ugd29u4oCZdCBzbG93IHlvdSBkb3duIHdpdGggYW5ub3lpbmcgcXVlc3Rpb25zLiBJdOKAmXMgYWxsIGZhc3QgYW5kIGl04oCZcyBhbGwgZWFzeSEiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29udGFjdCBVcyBmb3IgTW9yZSBJbmZvcm1hdGlvbiIgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICBmYXE6IFsKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEbyBJIFJlY2VpdmUgUGF5UGFsIHZpYSBHb29kcyBhbmQgU2VydmljZXMgb3IgRnJpZW5kcyBhbmQgRmFtaWx5PyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiWW91IGNhbiBhc2sgZm9yIGZyaWVuZHMgYW5kIGZhbWlseSBpbiB0aGUgc2Vjb25kIHN0ZXBzLCBpZiBwb3NzaWJsZSwgTkNvbm5lY3Qgd2lsbCBwYXkgdmlhIEZyaWVuZHMgYW5kIEZhbWlseS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRvZXMgTkNvbm5lY3QgY2hhcmdlIGV4dHJhIGZlZXM/IiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5vLCBZb3Ugd2lsbCBzZWUgZXhhY3RseSBob3cgbXVjaCB5b3Ugc2VuZCBhbmQgaG93IG11Y2ggd2Ugc2VuZCBvbiB0aGUgZXhjaGFuZ2UgYm94LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRG9lcyBOQ29ubmVjdCByZWNlaXZlIFVTRFQgb24gVFJDMjAgb3IgRVJDMjA/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJOQ29ubmVjdCBzdXBwb3J0cyBib3RoIEVSQzIwIGFuZCBUUkMyMCBuZXR3b3Jrcy4gV2UgcmVjb21tZW5kIFRSQzIwIGZvciBsb3dlciB0cmFuc2ZlciBmZWVzLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ2FuIEkgc2VuZCBUZXRoZXIgVVNEVCBmb3Igb25saW5lIHB1cmNoYXNlcyB2aWEgUGF5UGFsPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiWWVzLCBidXQgeW91IHdpbGwgbmVlZCB0byBjaG9vc2UgUGF5UGFsIFBheW1lbnRzIG9uIHRoZSBsZWZ0LiBXaXRoIHRoYXQgc2VydmljZSwgTkNvbm5lY3Qgd2lsbCBtYWtlIHBheW1lbnRzIG9uIHlvdXIgYmVoYWxmLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSG93IGxvbmcgZG9lcyBpdCB0YWtlIHRvIGV4Y2hhbmdlIFVTRFQgdG8gUGF5UGFsPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVGhlIHByb2Nlc3Mgd2lsbCB0YWtlIG9ubHkgYSBmZXcgbWludXRlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIldoYXQgaW5mb3JtYXRpb24gZG8gSSBoYXZlIHRvIHNoYXJlIG9uIE5Db25uZWN0PyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQWxsIHlvdSBuZWVkIHRvIHNoYXJlIGlzIHRoZSBQYXlQYWwgRGVzdGluYXRpb24gYWRkcmVzcyBhbmQgYW4gZW1haWwgYWRkcmVzcy4gV2UgZG8gbm90IGFzayBmb3IgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiEiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgICBlbmpveTogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVuam95IEZ1bGwgUHJpdmFjeSEiIH0gfSwKICAgICAgICBjdGE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgVVNEVCB0byBQYXlQYWwiIH0gfSwKICAgICAgfSwKICAgICAgY29tbW9uUXVlc3Rpb25zVGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbW1vbiBRdWVzdGlvbnMgQWJvdXQgVVNEVCIgfSwKICAgICAgfSwKICAgICAgY29tbW9uUXVlc3Rpb25zVVNEVDogWwogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIldoYXQgaXMgYW4gaWRlYWwgcGxhdGZvcm0gdG8gZXhjaGFuZ2UgVVNEVCB0byBQYXlQYWw/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiTG93IGV4Y2hhbmdlIGZlZXMsIHByaXZhY3ksIGFuZCBhdmFpbGFibGUgc3VwcG9ydCBhcmUga2V5IGZhY3RvcnMuIE1vc3QgY29udmVudGlvbmFsIHBsYXRmb3JtcyBmYWlsIG9uIHByaXZhY3kgZGVzcGl0ZSBsb3cgZmVlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIldoYXQgaXMgdGhlIG1hcmtldCBjYXAgb2YgVVNEVCBpbiAyMDI2PyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkFzIG9mIEphbnVhcnkgMjAyNiwgVGV0aGVyIFVTRFQgbWFpbnRhaW5zIGEgbWFya2V0IGNhcCBvZiAxMzcuNSBCaWxsaW9uIFVTRCBhbmQgc3RhbmRzIGF0IG51bWJlciA0IGluIHRoZSB0b3AgY3J5cHRvY3VycmVuY2llcyBieSBtYXJrZXQgY2FwLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiV2hhdCBpcyB0aGUgVVNEVCB0byBQYXlQYWwgVVNEIGV4Y2hhbmdlIHJhdGUgaW4gMjAyNj8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGFuc3dlcjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJDdXJyZW50bHksIDEgVGV0aGVyIFVTRFQgZXF1YWxzIDEgUGF5UGFsIFVTRC4gSG93ZXZlciwgYmFzZWQgb24gd2hpY2ggcGxhdGZvcm0geW91IHVzZSwgdGhlcmUgbWlnaHQgYmUgZXhjaGFuZ2UgZmVlcyBhZGRlZCB0byB5b3VyIGV4Y2hhbmdlLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgcXVlc3Rpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSXMgVGV0aGVyIFVTRFQgYSBSZWxpYWJsZSBTdGFibGVjb2luIGluIDIwMjY/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ3VycmVudGx5LCBVU0RUIGlzIHRoZSBvbGRlc3QgYW5kIG1vc3QgcG9wdWxhciBzdGFibGVjb2luIGluIHRoZSBtYXJrZXQgd2l0aCBhIHNvbGlkIHRyYWNrIHJlY29yZC4gSG93ZXZlciwgb3RoZXIgY29tcGV0aXRvcnMgYXJlIHNsb3dseSBjbGltYmluZyB1cCB0aGUgcmFua3MuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJcyBQYXlQYWwgYSB2aWFibGUgb3B0aW9uIGZvciBvbmxpbmUgcGF5bWVudHM/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQXMgb2YgMjAyNiwgUGF5UGFsIHJlbWFpbnMgdGhlICMxIHBheW1lbnQgcHJvY2Vzc29yIGluIHRoZSB3b3JsZCB3aXRoIG92ZXIgNDI2IG1pbGxpb24gYWN0aXZlIHVzZXJzLiBGdXJ0aGVybW9yZSwgUGF5UGFsIG1haW50YWlucyA0NSUgb2YgdGhlIGdsb2JhbCBwYXltZW50cyBtYXJrZXQgc2hhcmUgd2l0aCBhIG1hcmtldCBjYXAgb2YgJDY5LjQyIGJpbGxpb24uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICB1c2R0VHJ4OiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBVU0RUIHRvIFRSWCBbTm8gU2lnbiBVcF0iIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJCdXkgVHJ4IHdpdGggVVNEVCBvbiBOQ29ubmVjdCBpbnN0YW50bHkgd2l0aCB0aGUgemVybyBleGNoYW5nZSBmZWVzLiBCdXkgVHJvbiBvbiB0aGUgb25seSBleGNoYW5nZSBwbGF0Zm9ybSB3aXRoIDEwMCUgYW5vbnltaXR5LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgcHJvczogWwogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSW5zdGFudCIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTG93ZXN0IEZlZXMiIH0gfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjI0LzcgU3VwcG9ydCIgfSB9LAogICAgICBdLAogICAgICBjdGE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgVVNEVCB0byBUUlggIiB9IH0sCiAgICAgIGhvd1RvRXhjaGFuZ2U6IHsKICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCdXkgVFJYIGluIDQgU3RlcHM6IiB9IH0sCiAgICAgICAgaXRlbXM6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiMS4gU2V0IHRoZSBFeGNoYW5nZSBQYWlyIGFuZCBUeXBlIHRoZSBBbW91bnQiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiMi4gRW50ZXIgWW91ciBUcm9uIChUUlgpIFdhbGxldCBBZGRyZXNzIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIjMuIFNlbmQgVVNEVCB0byBOQ29ubmVjdGBzIEFkZHJlc3MiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiNC4gRWFzeSBhcyBUaGF0LCBDaGVjayBFbWFpbCBmb3IgQ29uZmlybWF0aW9uISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJ1eSBUcm9uIiB9IH0sCiAgICAgIH0sCiAgICAgIHdoeWpvbGl4bzogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldoeSBOQ29ubmVjdD8iIH0gfSwKICAgICAgICBpdGVtczogWwogICAgICAgICAgewogICAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyMDArIEN1cnJlbmNpZXMiIH0gfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIk5Db25uZWN0IFN1cHBvcnRzIGEgdmFzdCB2YXJpZXR5IG9mIGNyeXB0byBhbmQgZGlnaXRhbCBjdXJyZW5jaWVzLiIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkxvd2VzdCBGZWVzIiB9IH0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJXaGF0IHlvdSBzZWUgaXMgZXhhY3RseSBob3cgbXVjaCB3ZSBjaGFyZ2UsIHRoZXJlIGlzIG5vIGhpZGRlbiBmZWUhIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMjQvNyBTdXBwb3J0IiB9IH0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJOZWVkIHN1cHBvcnQ/IE91ciB0ZWFtIGlzIHJlYWR5IHRvIGFuc3dlciBhbGwgeW91ciBxdWVzdGlvbnMgMjQvNyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5vIEtZQyIgfSB9LAogICAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiQXQgTkNvbm5lY3QsIFdlIHdvbuKAmXQgc2xvdyB5b3UgZG93biB3aXRoIGFubm95aW5nIHF1ZXN0aW9ucy4gSXTigJlzIGFsbCBmYXN0IGFuZCBpdOKAmXMgYWxsIGVhc3khIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIGN0YTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbnRhY3QgVXMgZm9yIE1vcmUgSW5mb3JtYXRpb24iIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZmFxOiBbCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSG93IGxvbmcgZG9lcyBpdCB0YWtlIGZvciBtZSB0byByZWNlaXZlIG15IFRyb24gKFRSWCkiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlRoZSBwcm9jZXNzIHdpbGwgdGFrZSBvbmx5IGEgZmV3IG1pbnV0ZXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cgdG8gQnV5IFRSWD8iIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogJ1NlbGVjdCB5b3VyIFBheW1lbnQgY3VycmVuY3ksIHRoZW4gc2VsZWN0IFRyb24gVFJYIG9uIHRoZSBsZWZ0IGJveC4gY2xpY2sgb24gIk5leHQiIHRvIGJ1eSBUUlgnLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkRvZXMgTkNvbm5lY3QgY2hhcmdlIGV4dHJhIGZlZXMgdG8gYnV5IFRSWD8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5vLCBZb3Ugd2lsbCBzZWUgZXhhY3RseSBob3cgbXVjaCB5b3Ugc2VuZCBhbmQgaG93IG11Y2ggd2Ugc2VuZCBvbiB0aGUgZXhjaGFuZ2UgYm94LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRG8gSSBoYXZlIHRvIHNpZ24gdXAgdG8gZXhjaGFuZ2UgVVNEVCB0byBUUlg/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJObywgdGhlcmUgaXMgbm8gbmVlZCB0byBzaWduIHVwIG9uIE5Db25uZWN0IGluIG9yZGVyIHRvIEJ1eSBUUlguIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJIb3cgZG8gSSBzZW5kIG15IFRldGhlciBVU0RUIHRvIE5Db25uZWN0IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJbiBzdGVwIDQsIHlvdSB3aWxsIHNlZSBhbiBpbnZvaWNlIGxpbmsuIEZvbGxvdyB0aGUgbGluayAgYW5kIHNlbmQgTkNvbm5lY3QgeW91ciBVU0RULiBBbmQgdGhhdCdzIGl0ISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIGVuam95OiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW5qb3kgRnVsbCBQcml2YWN5ISIgfSB9LAogICAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBVU0RUIHRvIFRSWCIgfSB9LAogICAgICB9LAogICAgICBjb21tb25RdWVzdGlvbnNUaXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29tbW9uIFF1ZXN0aW9ucyBBYm91dCBVU0RUIHRvIFRSWCIgfSwKICAgICAgfSwKICAgICAgY29tbW9uUXVlc3Rpb25zVVNEVDogWwogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIldoYXQgaXMgYW4gSWRlYWwgUGxhdGZvcm0gdG8gRXhjaGFuZ2UgVVNEVCB0byBUUlg/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQmFzaWNhbGx5LCBsb3cgZXhjaGFuZ2UgZmVlcywgcHJpdmFjeSBhbmQgMjQvNyBzdXBwb3J0IGlzIGV4YWN0bHkgd2hhdCB5b3UgbmVlZC4gU2FkbHksIG1vc3QgY29udmVudGlvbmFsIHBsYXRmb3JtcyBmYWlsIHRvIGRlbGl2ZXIgb24gcHJpdmFjeSBkZXNwaXRlIGhhdmluZyBsb3cgZmVlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkhvdyB0byBFeGNoYW5nZSBUUlggdG8gVVNEVD8iIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlNlbGVjdCBUUlggYW5kIFVTRFQgb24gTkNvbm5lY3QgYW5kIHNlbGwgVFJYIGluIG9ubHkgYSBmZXcgbWludXRlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHF1ZXN0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkhvdyBDYW4gSSBCdXkgVFJYPyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBhbnN3ZXI6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU2VsZWN0IHlvdXIgcGF5bWVudCBtZXRob2Qgb24gdGhlIGV4Y2hhbmdlIGJveCwgdGhlbiBzZWxlY3QgVHJvbiBUUlggb24gdGhlIHJpZ2h0IGJveC4gVHlwZSBpbiB5b3VyIGFtb3VudCBhbmQgeW91J3JlIGdvb2QgdG8gZ28hIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaGF0IGRvZXMgVFJYIHN0YW5kIGZvcj8iIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW5zd2VyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlRSWCBpcyBzaG9ydCBmb3IgVHJvbml4LCBhIHRva2VuIGNyZWF0ZWQgYmFjayBpbiAyMDE3IGJ5IHRoZSBUcm9uIGZvdW5kYXRpb24uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxdWVzdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJJcyBUUlggYSBnb29kIGludmVzdG1lbnQ/IiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGFuc3dlcjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJZZXMsIENvbnNpZGVyaW5nIHRoIGV0cmFjayByZWNvcmQgc28gZmFyLiBIb3dldmVyLCBjcnlwdG9jdXJyZW5jaWVzIGFyZSB2b2xhdGlsZSBpbiBlc3NlbnNlIGFuZCBtdXN0IGJlIHRyZWF0ZWQgYXMgc3VjaC4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgfSwKICB9LAogIGFmZmlsaWF0ZTogewogICAgbWV0YTogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBZmZpbGlhdGUiIH0gfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkVhcm4gTW9uZXkgd2l0aCBOQ29ubmVjdCBBZmZpbGlhdGUgUHJvZ3JhbSB3aXRoIFN1cGVyIEVhc3kgUmVxdWlyZW1lbnRzIGFuZCBBbXppbmcgUmV3YXJkIFJhdGVzLiBFYXJuIFBhc3NpdmUgSW5jb21lIE9ubGluZSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICB0aXRsZTogWwogICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkpvaW4gdGhlIE5Db25uZWN0IiB9IH0sCiAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQWZmaWxpYXRlIFByb2dyYW0gVG9kYXkiIH0gfSwKICAgIF0sCiAgICBkZXNjcmlwdGlvbjogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJFYXJuIGVhc3kgbW9uZXkgYnkgcmVmZXJyaW5nIGN1c3RvbWVycy4gRmFzdCBwYXlvdXRzLCBjb21wZXRpdGl2ZSBjb21taXNzaW9ucywgYW5kIDI0Lzcgc3VwcG9ydC4iLAogICAgICB9LAogICAgfSwKICAgIGN0YTogWwogICAgICB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBbHJlYWR5IGhhdmUgYW4gYWNjb3VudD8gU2lnbiBJbiIgfSwKICAgICAgfSwKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCZWNvbWUgYSBQYXJ0bmVyIE5vdyIgfSB9LAogICAgXSwKICAgIGVhcm5TdGVwczogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRWFybiBNb25leSBpbiBUaHJlZSBTaW1wbGUgU3RlcHMiIH0sCiAgICAgIH0sCiAgICAgIHN0ZXBzOiBbCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiUmVnaXN0ZXIgYW5kIEdldCBZb3VyIFVuaXF1ZSBSZWZlcnJhbCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVXNlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyBmb3IgY3JlYXRpbmcgeW91ciBhY2NvdW50IG9uIE5Db25uZWN0IHRoZW4gTG9naW4gdG8geW91ciBhY2NvdW50LCBnZXQgeW91ciByZWZlcnJhbCBsaW5rLCBzaGFyZSBpdCB3aXRoIHlvdXIgZnJpZW5kcyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2FpdCBmb3IgVGhlbSB0byBVc2UgTkNvbm5lY3QiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiV2hlbiB5b3VyIHJlZmVycmFscyBwbGFjZSBvcmRlcnMgb24gTkNvbm5lY3QsIHdlIHNoYXJlIHRoZSBwcm9maXQgZnJvbSB0aGVpciB0cmFuc2FjdGlvbnMgd2l0aCB5b3UuIEJlY2F1c2UgLCB5b3UgYXJlIG91ciBwYXJ0bmVyIG5vdyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiR2V0IFBhaWQgdG8gWW91ciBBY2NvdW50IiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkFzIHNvb24gYXMgeW91ciByZWZlcnJhbCBwb2ludHMgcmVhY2ggJDEwLCB5b3UgY2FuIHdpdGhkcmF3IHRoZW0gdXNpbmcgdGhlIHBheW1lbnQgbWV0aG9kIG9mIHlvdXIgY2hvaWNlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlN0YXJ0IEVhcm5pbmcgVG9kYXkiIH0gfSwKICAgIH0sCiAgICBwYXJ0bmVyOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaHkgUGFydG5lciB3aXRoIE5Db25uZWN0PyIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIldlIG9mZmVyIGFuIHVubWF0Y2hlZCByZWZlcnJhbCBwcm9ncmFtIHRoYXQgbGV0cyB5b3UgZ3JvdyB5b3VyIGluY29tZSBlZmZvcnRsZXNzbHkuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBidWxsZXRzOiB7CiAgICAgICAgIkhpZ2ggQ29tbWlzc2lvbnMiOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQ29tcGV0aXRpdmUgcmF0ZXMgdGhhdCBpbmNyZWFzZSBhcyB5b3VyIHJlZmVycmFscyBncm93LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgIkZhc3QgUGF5b3V0cyI6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDYXNoIG91dCBhbnl0aW1lLCB3aXRoIG5vIGRlbGF5cy4iIH0sCiAgICAgICAgfSwKICAgICAgICAiRnVsbCBUcmFuc3BhcmVuY3kiOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhY2sgeW91ciBlYXJuaW5ncyBpbiByZWFsIHRpbWUuIiB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGN0YTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhwbG9yZSBPdXIgUmVmZXJyYWwgUHJvZ3JhbSIgfSwKICAgICAgfSwKICAgIH0sCiAgICBlYXJuTW9yZTogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFYXJuIE1vcmUgYXMgWW91IEdyb3ciIH0gfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIiBPdXIgY29tbWlzc2lvbiByYXRlcyBpbmNyZWFzZSBhcyB5b3VyIHJlZmVycmFsIHZvbHVtZSByaXNlcy4gVGhlIG1vcmUgeW91IHJlZmVyLCB0aGUgbW9yZSB5b3UgZWFybi4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgcmVmZXJhbFByb2dyYW06IHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIldoYXQgU2V0cyB0aGUgTkNvbm5lY3QgUmVmZXJyYWwgUHJvZ3JhbSBBcGFydD8iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJXZSBvZmZlciBhbiB1bm1hdGNoZWQgcmVmZXJyYWwgcHJvZ3JhbSB0aGF0IGxldHMgeW91IGdyb3cgeW91ciBpbmNvbWUgZWZmb3J0bGVzc2x5LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgYnVsbGV0czogewogICAgICAgICJObyBTYWxlcyBUYXJnZXRzIjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkdldCBwYWlkIGZyb20geW91ciByZWZlcnJhbHMnIHRyYW5zYWN0aW9ucywgbm90IHByb2ZpdC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgICJJbnN0YW50IFdpdGhkcmF3YWxzIjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkFjY2VzcyB5b3VyIGVhcm5pbmdzIGFzIHNvb24gYXMgeW91IGhpdCAkMTAuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICAiVW5saW1pdGVkIFBvdGVudGlhbCI6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJSZWZlciBhcyBtYW55IHVzZXJzIGFzIHlvdSBsaWtlIHdpdGggbm8gcmVzdHJpY3Rpb25zLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdGFydCBFYXJuaW5nIE5vdyIgfSB9LAogICAgfSwKICAgIGxhcmdlclJlZmVyYWxQcm9ncmFtOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZWZlcnJhbCBQcm9ncmFtIGZvciBMYXJnZXIgQnVzaW5lc3NlcyIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlVubG9jayBzcGVjaWFsIHBhcnRuZXJzaGlwIG9wcG9ydHVuaXRpZXMgd2l0aCBoaWdoZXIgY29tbWlzc2lvbnMgYW5kIGRlZGljYXRlZCBzdXBwb3J0IGZvciBjb21wYW5pZXMgd2l0aCBsYXJnZXIgY3VzdG9tZXIgYmFzZXMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiV2FudCB0byBMZWFybiBNb3JlIEFib3V0IE91ciBCdXNpbmVzcyBQbGFuPyIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbnRhY3QgVXMiIH0gfSwKICAgIH0sCiAgICBmYXE6IFsKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiRm9yIGhvdyBsb25nIEkgbWFrZSBtb25leSBmcm9tIGVhY2ggcGVyc29uIHRoYXQgcmVnaXN0ZXJzIHVzaW5nIG15IHJlZmVycmFsPyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJZiBzb21lb25lIGlzIHJlZ2lzdGVyZWQgb24gb3VyIHdlYnNpdGUgdXNpbmcgeW91ciByZWZlcnJhbCBsaW5rLCB5b3Ugd2lsbCBiZW5lZml0IGZyb20gdGhlaXIgdHJhbnNhY3Rpb25zIGFzIGxvbmcgYXMgdGhleSBhcmUgcGxhY2luZyBvcmRlcnMgb24gb3VyIHdlYnNpdGUuIFRoaXMgbWVhbnMgdGhhdCBzdGFydGluZyBmcm9tIHRoZSBkYXkgdGhleSBoYXZlIHJlZ2lzdGVyZWQgb24gb3VyIHdlYnNpdGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdGltZSIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkRvIHVzZXJzIGhhdmUgdG8gcmVnaXN0ZXIgc28gSSBjYW4gbWFrZSBtb25leSBmcm9tIHRoZWlyIHRyYW5zYWN0aW9ucz8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiTm8sIFlvdSB0YWtlIHlvdXIgc2hhcmUgZnJvbSBldmVyeSB0cmFuc2FjdGlvbiB0aGF0IGlzIG1hZGUgdGhyb3VnaCB5b3VyIHJlZmVycmFsIGxpbmsuIFVzZXJzIGNvdWxkIGJlIHJlZ2lzdGVyZWQgb3Igbm90IHJlZ2lzdGVyZWQuIE9uY2UgYSB1c2VyIGxhbmRzIG9uIG91ciB3ZWJzaXRlIHVzaW5nIHlvdXIgcmVmZXJyYWwgbGluaywgdGhleSBhcmUgY291bnRlZCBhcyB5b3VyIGFmZmlsaWF0ZSBhbmQgdGhlaXIgdHJhbnNhY3Rpb25zIHdpbGwgYmUgbGlua2VkIHRvIHlvdXIgYWNjb3VudCIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIldoZW4gY2FuIEkgd2l0aGRyYXcgbXkgYWZmaWxpYXRlIGluY29tZSBmcm9tIE5Db25uZWN0PyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJBcyBzb29uIGFzIHlvdXIgaW5jb21lIGhhcyByZWFjaGVkICQxMCB5b3UgY2FuIHdpdGhkcmF3IHlvdXIgaW5jb21lIGZyb20geW91ciBVc2Vyc+KAmSBhY2NvdW50LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkNhbiBzb21lb25lIHBhcnRpY2lwYXRlIHdpdGggbW9yZSB0aGFuIG9uZSBlbWFpbCBhbmQgYWNjb3VudD8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiWW91IGNhbiBlYXNpbHkgMTBYIHlvdXIgY2hhbmNlcyBvZiB3aW5uaW5nIGJ5IHBhcnRpY2lwYXRpbmcgd2l0aCBib3RoIEluc3RhZ3JhbSBhbmQgVHdpdHRlciB1c2VyIGFjY291bnRzIGFuZCB3ZSB3YW50IHlvdXIgcmV2aWV3cyB0byBiZSBob25lc3QgYW5kIHNoYXJlIHlvdXIgZXhwZXJpZW5jZSB3aXRoIE5Db25uZWN0LiBTbywgd2Ugc3VnZ2VzdCB1c2VycyB0byBvbmx5IHBhcnRpY2lwYXRlIG9uY2UiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB7CiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cgY2FuIEkgZ2V0IG15IHJlZmVycmFsIGxpbms/IiB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJUbyBiZWNvbWUgYW4gYWZmaWxpYXRlIG9mIE5Db25uZWN0IHlvdSBoYXZlIHRvIHJlZ2lzdGVyIHdpdGggYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGFuZCBsb2dpbiB0byB5b3VyIGFjY291bnQuIFlvdSBjYW4gZWFzaWx5IGZpbmQgeW91ciB1bmlxdWUgcmVmZXJyYWwgbGluayBpbiB5b3VyIHVzZXJz4oCZIGFjY291bnQgYXJlYSIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkhvdyBkbyB5b3UgY2FsY3VsYXRlIGFmZmlsaWF0ZXM/IiB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJZb3XigJlsbCByZWNlaXZlIGF0IGxlYXN0IDAuMyUgYW5kIGEgbWF4aW11bSBvZiAwLjglIG9mIHlvdXIgYWZmaWxpYXRlcyB0cmFuc2FjdGlvbnMgd2hlbiB0aGVpciBvcmRlcnMgYXJlIOKAnERvbmXigJ0uIElmIGEgdXNlciByZWZ1bmRzIHRoZWlyIHRyYW5zYWN0aW9uLCB0aGUgbW9uZXkgeW91IGhhdmUgZWFybmVkIGZyb20gdGhhdCB0cmFuc2FjdGlvbiB3b3VsZCBhbHNvIGJlIGRlZHVjdGVkIGZyb20geW91ciBhY2NvdW50LiBQbGVhc2Ugbm90IHRoYXQgeW91IG9ubHkgZWFybiBtb25leSBmcm9tIG9yZGVycyB3aXRoIOKAnERPTkXigJ0gc3RhdHVzIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSG93IG11Y2ggbW9uZXkgY2FuIEkgZWFybiBmcm9tIE5Db25uZWN0PyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJdCBkZXBlbmRzIG9uIHlvdSBhbmQgaG93IGFjdGl2ZSB5b3UgYXJlLiBZb3UgY2FuIG1ha2UgdXAgdG8gMC44JSBvZiB0aGUgdHJhbnNhY3Rpb25zIHlvdXIgcmVmZXJyYWxzIG1ha2Ugb24gb3VyIHdlYnNpdGUuIEJ1dCB0byByZWFjaCB0aGVyZSwgeW91ciByZWZlcnJhbHMgc2hvdWxkIG1ha2UgbW9yZSB0aGFuICQ0NTAwMCBvZiB0cmFuc2FjdGlvbnMgaW4gYSBtb250aCBvbiBOQ29ubmVjdCB3aGljaCBpcyBub3QgYSBiaWcgbnVtYmVyIGFuZCB5b3UgY2FuIGVhc2lseSBnZXQgdGhlcmUuIFBsZWFzZSBub3RlIHRoYXQgYSBtb250aCBpcyB0aGUgc3RhcnQgb2Ygb25lIGNhbGVuZGFyIG1vbnRoIHRvIHRoZSBlbmQgb2YgaXQgYW5kIGl0IGRvZXMgbm90IGNvdW50IGFzIHRoZSBzdGFydCBvZiB5b3VyIHJlZ2lzdHJhdGlvbi4gSWYgeW91ciByZWZlcnJhbHMgbWFrZSB0cmFuc2FjdGlvbnMgd29ydGggJDQ1MDAwIGZyb20gSmFudWFyeSAxc3QgdW50aWwgdGhlIGVuZCBvZiBKYW51YXJ5IDMxc3QsIHlvdeKAmWxsIHJlY2VpdmUgJDM2MCBpbiB5b3VyIGFmZmlsaWF0ZSBhY2NvdW50IiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiV2hhdCBoYXBwZW5zIGlmIEkgbWFrZSBmYWxzZSBjbGFpbXMgYWJvdXQgTkNvbm5lY3QgdG8gYXR0cmFjdCBtb3JlIHBlb3BsZSB0byBjbGljayBvbiBteSByZWZlcnJhbCBsaW5rPyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJXZSBlbmNvdXJhZ2Ugb3VyIHVzZXJzIHRvIGFsd2F5cyBhdm9pZCBmYWtlIGNsYWltcyBhbmQgZ2l2ZSBhY2N1cmF0ZSBhbmQgdHJ1dGhmdWwgY2xhaW1zIGFib3V0IE5Db25uZWN0IGFuZCBpdHMgc2VydmljZXMuIElmIE5Db25uZWN0IGZpbmRzIG91dCB0aGF0IGEgdXNlciBpcyB0cnlpbmcgdG8gdXNlIHVuZXRoaWNhbCB0ZWNobmlxdWVzIGFuZCBjbGFpbXMgdG8gYXR0cmFjdCBtb3JlIHVzZXJzLCB3ZSBrZWVwIHRoZSByaWdodCB0byBiYW4gdGhlIHVzZXIgYW5kIGJsb2NrIHRoZWlyIGFmZmlsaWF0ZSBpbmNvbWUuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQ2FuIEkgbWFrZSB0cmFuc2FjdGlvbnMgdXNpbmcgbXkgb3duIHJlZmVycmFsIGxpbmsgdG8gbWFrZSBtb3JlIGluY29tZT8iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSXQgaXMgZm9yYmlkZGVuIHRvIGNsaWNrIG9uIHlvdXIgb3duIGFmZmlsaWF0ZSBsaW5rcyBvciBhdHRlbXB0IHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgeW91ciByZWZlcnJhbHMgaW4gYW55IG90aGVyIGZyYXVkdWxlbnQgd2F5LiBEb2luZyBzbyB3aWxsIGxlYWQgdG8gYmxvY2tpbmcgb2YgeW91ciBhZmZpbGlhdGUgYWNjb3VudCBhbmQgeW91ciBwcmV2aW91cyBpbmNvbWUuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIF0sCiAgICB0ZXJtc0FuZENvbmRpdGlvbnM6IHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlByb2dyYW0gVGVybXMgYW5kIENvbmRpdGlvbnMiIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJVbmRlcnN0YW5kIHRoZSBydWxlcyBhbmQgcmVxdWlyZW1lbnRzIG9mIHRoZSBOQ29ubmVjdCBhZmZpbGlhdGUgcHJvZ3JhbS4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHRlcm1zOiBbCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVmZXJyYWwgTGluayBVc2FnZSIgfSB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVG8gZ2V0IHBhaWQgYnkgeW91ciByZWZlcnJhbHMgdGhleSBtdXN0IHVzZSB5b3VyIHVuaXF1ZSByZWZlcnJhbCBsaW5rIHRvIHVzZSBOQ29ubmVjdCBzZXJ2aWNlcy4gVGhlIG1vcmUgeW91ciByZWZlcnJhbHMgdXNlIE5Db25uZWN0LCB0aGUgbW9yZSB5b3UgZWFybiBmcm9tIHRoZWlyIGV4Y2hhbmdlcy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJlZmVycmFsIFJlZ2lzdHJhdGlvbiBCZW5lZml0cyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJZiB5b3VyIHJlZmVycmFscyByZWdpc3RlciBvbiBvdXIgd2Vic2l0ZSwgeW91IGdldCByZWZlcnJhbCBwb2ludHMgYXMgbG9uZyBhcyB0aGV54oCZcmUgcGxhY2luZyBvcmRlcnMgb24gTkNvbm5lY3QuIFRoZW4gd2h5IG5vdCBpbnZpdGUgdGhlbSB0byByZWdpc3RlciBhbmQgdXNlIG1hbnkgbW9yZSBhZHZhbnRhZ2VzIG9mIGEgcmVnaXN0ZXJlZCB1c2VyPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVmZXJyYWwgUG9pbnRzIGFuZCBXaXRoZHJhd2FsIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIllvdXIgcmVmZXJyYWwgcG9pbnRzIHdpbGwgYmUgYWRkZWQgdG8geW91ciBhY2NvdW50IGluIFVTRC4gRm9yIHdpdGhkcmF3YWwsIHRoZSBtaW5pbXVtIGFtb3VudCBpcyAkMTAgYW5kIHlvdSBzaG91bGQgY2hvb3NlIGZyb20gc3VwcG9ydGVkIHBheW1lbnQgc3lzdGVtcyB0byByZWNlaXZlIHlvdXIgcmVmZXJyYWwgYm9udXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb21taXNzaW9uIENoYW5nZXMiIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5Db25uZWN0IHJlc2VydmVzIHRoZSByaWdodCB0byBjaGFuZ2UgdGhlIGFmZmlsaWF0ZSBjb21taXNzaW9uIGF0IGFueSBtb21lbnQuIEluIHN1Y2ggYSBjYXNlLCBwcmV2aW91c2x5IHJlZmVycmVkIHVzZXJz4oCZIGNvbW1pc3Npb25zIHdpbGwgbm90IGJlIGFmZmVjdGVkIGFuZCB1c2VycyB3aWxsIGJlIG5vdGlmaWVkIGFib3V0IGNoYW5nZXMgaW4gdGhlIGNvbW1pc3Npb24uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUcmFmZmljIFNvdXJjZSBWZXJpZmljYXRpb24iIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiTkNvbm5lY3QgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHJlcXVlc3QgZGV0YWlsZWQgaW5mb3JtYXRpb24gb24gdHJhZmZpYyBzb3VyY2VzIGZyb20gdGhlIHJlZ2lzdGVyZWQgYWZmaWxpYXRlcy4gSWYgdGhlIHVzZXIgZmFpbHMgdG8gcHJvdmlkZSBhZGVxdWF0ZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGNyZWRpYmlsaXR5IG9mIHRyYWZmaWMgc291cmNlcywgdGhlaXIgYWZmaWxpYXRlIGFjY291bnQgd2lsbCBiZSBibG9ja2VkIGFuZCBmdW5kcyB3aWxsIGJlIGhlbGQgZnJvemVuLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG9uZXN0IFByb21vdGlvbiIgfSB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQWx3YXlzIHByb3ZpZGUgb3RoZXJzIHdpdGggZ2VudWluZSBpbmZvcm1hdGlvbiB3aGlsZSBwcm9tb3RpbmcgTkNvbm5lY3QuIFdlIHZhbHVlIGhvbmVzdHkgYW5kIGV4cGVjdCBvdXIgYWZmaWxpYXRlcyB0byBwcm9tb3RlIE5Db25uZWN0IGZvciB3aGF0IHdlIHRydWx5IG9mZmVyIG91ciB1c2Vycy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgfSwKICB9LAogIGFib3V0VXM6IHsKICAgIHN1YlRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFib3V0IFVzIiB9IH0sCiAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJOQ29ubmVjdCIgfSB9LAogICAgZGVzY3JpcHRpb246IFsKICAgICAgewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiRWlnaHQgeWVhcnMgYWdvLCB0aGUgTkNvbm5lY3QgdGVhbSBlbWJhcmtlZCBvbiBhIGpvdXJuZXkgaW4gdGhlIGZpbnRlY2ggaW5kdXN0cnkuIFNpbmNlIHRoZW4sIHdlIGhhdmUgaGVscGVkIGNvdW50bGVzcyBjdXN0b21lcnMgZXhjaGFuZ2UgdGhlaXIgY3J5cHRvY3VycmVuY2llcyBhbmQgRS1DdXJyZW5jaWVzLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiT3VyIHN0b3J5IGJlZ2FuIHdpdGggZXhjaGFuZ2luZyBFLUN1cnJlbmNpZXMgbGlrZSBQYXlQYWwsIFdlYk1vbmV5LCBhbmQgUGVyZmVjdCBNb25leS4gQXMgd2UgZ3Jldywgd2UgY2FyZWZ1bGx5IGV4cGFuZGVkIGludG8gdGhlIGNyeXB0b2N1cnJlbmN5IGV4Y2hhbmdlIGZpZWxkIHRvIG1lZXQgdGhlIG5lZWRzIG9mIG91ciBsb3lhbCBjdXN0b21lcnMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgXSwKICAgIHdoeUNob29zZWpvbGl4bzogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaHkgQ2hvb3NlIE5Db25uZWN0PyIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiRmFzdCwgc2VjdXJlLCBhbmQgYW5vbnltb3VzIHNlcnZpY2VzIGF2YWlsYWJsZSAyNC834oCUbm8gS1lDIHJlcXVpcmVkLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgaXRlbXM6IFsKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTYWZlICYgRmFzdCBFeGNoYW5nZSIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXZSBvZmZlciByb3VuZC10aGUtY2xvY2sgZXhjaGFuZ2Ugc2VydmljZXMgYW5kIHN1cHBvcnQuIE91ciBleHBlcnQgdGVhbSBpcyBoZXJlIHRvIG1ha2UgeW91ciBCaXRjb2luIGV4Y2hhbmdlIGV4cGVyaWVuY2Ugc21vb3RoIGFuZCBtZW1vcmFibGUuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IFNlcnZpY2UgYW5kIFN1cHBvcnQiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiV2Ugb2ZmZXIgcm91bmQtdGhlLWNsb2NrIGV4Y2hhbmdlIHNlcnZpY2VzIGFuZCBzdXBwb3J0LiBPdXIgZXhwZXJ0IHRlYW0gaXMgaGVyZSB0byBtYWtlIHlvdXIgQml0Y29pbiBleGNoYW5nZSBleHBlcmllbmNlIHNtb290aCBhbmQgbWVtb3JhYmxlLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGlnaXRhbCBDdXJyZW5jeT8gV2UgQWNjZXB0IEl0IiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkV4Y2hhbmdlIEJpdGNvaW4gZm9yIFBheVBhbCBvciBidXkgY3J5cHRvIHdpdGggV2ViTW9uZXkgYXQgTkNvbm5lY3QuIEVuam95IDI0Lzcgc2VydmljZSB3aXRob3V0IG5lZWRpbmcgYSBLWUMgcHJvY2VzcyBvciBzaWduLXVwLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogICAgY29udGFjdFVzOiB7CiAgICAgIGVtYWlsOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW1haWwiIH0gfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkNvbnRhY3QgdXM7IHdlIGFyZSBvbmxpbmUgYXJvdW5kIHRoZSBjbG9jay4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICB0ZWxlZ3JhbTogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRlbGVncmFtIiB9IH0sCiAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJHZXQgY3J5cHRvIG5ld3MgYW5kIHVwZGF0ZXMgb24gcHJvbW90aW9ucy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICBtZXRhOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29udGFjdCBVcyIgfSB9LAogICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQ29udGFjdCBVcyBhdCBOQ29ubmVjdCBPZmZpY2UuIFdlIGFyZSBPbmxpbmUgMjQvNyBhbmQgUmVhZHkgdG8gQW5zd2VyIFlvdXIgUXVlc3Rpb25zIG9yIFJlc3BvbmQgdG8gWW91IEJ1c2luZXNzIE9mZmVycyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogIH0sCiAgYW1sa3ljOiB7CiAgICAiQU1ML0tZQyBQb2xpY3kiOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFNTC9LWUMgUG9saWN5IiB9IH0sCiAgICBtZXRhVGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQU1ML0tZQyBQb2xpY3kiIH0gfSwKICAgIG1ldGFEZXNjcmlwdGlvbjogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJOQ29ubmVjdCBQbGF0Zm9ybSBUZXJtcyBvZiBTZXJ2aWNlIEluY2x1ZGluZyBCb3RoIEdlbmVyYWwgVGVybXMgYW5kIENvbmRpdGlvbnMgYW5kIFNwZWNpZmljIFJlcXVpcmVtZW50cyBmb3IgQWxsIFBheW1lbnQgU2VydmljZXMuIiwKICAgICAgfSwKICAgIH0sCiAgICBhbWxreWNUaXRsZXM6IHsKICAgICAgSW50cm9kdWN0aW9uOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkludHJvZHVjdGlvbiIgfSB9LAogICAgICBQdXJwb3NlT2ZJbnRlcm5hbFJlZ3VsYXRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlB1cnBvc2Ugb2YgSW50ZXJuYWwgUmVndWxhdGlvbiIgfSwKICAgICAgfSwKICAgICAgQ2F1dGlvbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDYXV0aW9uIiB9IH0sCiAgICAgIFJlcXVpcmVtZW50czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZXF1aXJlbWVudHMiIH0gfSwKICAgICAgVmVyaWZpY2F0aW9uUHJvY2VkdXJlczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVmVyaWZpY2F0aW9uIFByb2NlZHVyZXMiIH0sCiAgICAgIH0sCiAgICAgIFJlc3BvbnNpYmxlT2ZmaWNpYWw6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJlc3BvbnNpYmxlIE9mZmljaWFsIiB9LAogICAgICB9LAogICAgICBTeXN0ZW1GdW5jdGlvbnM6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlN5c3RlbSBGdW5jdGlvbnMiIH0sCiAgICAgIH0sCiAgICAgIEJlaGF2aW9yQW5hbHlzaXM6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJlaGF2aW9yIEFuYWx5c2lzIiB9LAogICAgICB9LAogICAgICByaXNrQXNzZXNzbWVudHM6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJpc2sgQXNzZXNzbWVudHMiIH0sCiAgICAgIH0sCiAgICAgIFBlcmZvcm1DdXN0b21lckNoZWNrczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGVyZm9ybSBDdXN0b21lciBDaGVja3MiIH0sCiAgICAgIH0sCiAgICAgIFByaXZhY3k6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUHJpdmFjeSIgfSB9LAogICAgICBDb25jbHVzaW9uOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbmNsdXNpb24iIH0gfSwKICAgIH0sCiAgICBJbnRyb2R1Y3Rpb246IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMS4gSW50cm9kdWN0aW9uIiB9IH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICdOQ29ubmVjdCBoYXMgaW1wbGVtZW50ZWQgYW4gQW50aS1Nb25leSBMYXVuZGVyaW5nIGFuZCBLbm93IFlvdXIgQ3VzdG9tZXIgUG9saWN5IChyZWZlcnJlZCB0byBhcyAiQU1ML0tZQyBQb2xpY3kiKSB0byBwcmV2ZW50IGFuZCBtaXRpZ2F0ZSB0aGUgcmlza3Mgb2YgYmVpbmcgaW52b2x2ZWQgaW4gaWxsZWdhbCBhY3Rpdml0aWVzLicsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICAiUHVycG9zZSBvZiBJbnRlcm5hbCBSZWd1bGF0aW9uIjogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMi4gUHVycG9zZSBvZiBJbnRlcm5hbCBSZWd1bGF0aW9uICIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIk5Db25uZWN0IGlzIGNvbW1pdHRlZCB0byBpbXBsZW1lbnRpbmcgcHJhY3RpY2VzIGFuZCBtZWFzdXJlcyB0byBjb21iYXQgbW9uZXkgbGF1bmRlcmluZyBhbmQgdGVycm9yaXNtIGZpbmFuY2luZy4gVGhlc2UgbWVhc3VyZXMgZGVtb25zdHJhdGUgTkNvbm5lY3QncyBjb21taXRtZW50IHRvIHByZXZlbnRpbmcgYW55IG1pc3VzZSBvZiBpdHMgc2VydmljZXMgZm9yIGlsbGVnYWwgcHVycG9zZXMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIENhdXRpb246IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMy4gQ2F1dGlvbiIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiVXNlcnMgYXJlIHN0cmljdGx5IHdhcm5lZCBhZ2FpbnN0IGF0dGVtcHRpbmcgdG8gdXNlIE5Db25uZWN0IGZvciBtb25leSBsYXVuZGVyaW5nLCB0ZXJyb3Jpc3QgZmluYW5jaW5nLCBmcmF1ZCwgb3IgdGhlIHB1cmNoYXNlIG9mIHByb2hpYml0ZWQgZ29vZHMgYW5kIHNlcnZpY2VzLiBOQ29ubmVjdCwgaW5jbHVkaW5nIGl0cyBhZG1pbmlzdHJhdGlvbiwgZW1wbG95ZWVzLCBhbmQgZG9tYWluIG93bmVycywgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgYW55IG1pc3VzZSBvZiBpdHMgc2VydmljZXMgYnkgdGhpcmQgcGFydGllcyBvciBhbnkgZGFtYWdlcyBhc3NvY2lhdGVkIHdpdGggc3VjaCBtaXN1c2UuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIFJlcXVpcmVtZW50czogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICI0LiBSZXF1aXJlbWVudHMiIH0gfSwKICAgICAgcHJldmVudDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiVG8gcHJldmVudCBpbGxlZ2FsIHRyYW5zYWN0aW9ucywgTkNvbm5lY3Qgc2V0cyBjZXJ0YWluIHJlcXVpcmVtZW50cyBmb3IgYWxsIHVzZXIgYXBwbGljYXRpb25zOiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZmlyc3REZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiNC4xLiBUaGUgc2VuZGVyIGFuZCByZWNpcGllbnQgb2YgcGF5bWVudHMgbXVzdCBiZSB0aGUgc2FtZSBwZXJzb24uIFRyYW5zZmVycyBpbiBmYXZvciBvZiB0aGlyZCBwYXJ0aWVzIGFyZSBzdHJpY3RseSBwcm9oaWJpdGVkLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgc2Vjb25lZERlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICI0LjIuIEFsbCBjb250YWN0IGluZm9ybWF0aW9uIGFuZCBwZXJzb25hbCBkYXRhIHByb3ZpZGVkIGJ5IHVzZXJzIG11c3QgYmUgdXAtdG8tZGF0ZSBhbmQgYWNjdXJhdGUuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICB0aGlyZERlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICI0LjMuIFVzZXJzIGFyZSBwcm9oaWJpdGVkIGZyb20gY3JlYXRpbmcgYXBwbGljYXRpb25zIHVzaW5nIGFub255bW91cyBwcm94eSBzZXJ2ZXJzLCBWUE4sIFRvciwgb3IgYW55IG90aGVyIGFub255bW91cyBpbnRlcm5ldCBjb25uZWN0aW9ucy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgIlZlcmlmaWNhdGlvbiBQdXJwb3NlIjogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiNS4gVmVyaWZpY2F0aW9uIFByb2NlZHVyZXMiIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJOQ29ubmVjdCBmb2xsb3dzIGludGVybmF0aW9uYWwgc3RhbmRhcmRzIGZvciBjdXN0b21lciBkdWUgZGlsaWdlbmNlLCBpbXBsZW1lbnRpbmcgaXRzIG93biB2ZXJpZmljYXRpb24gcHJvY2VkdXJlcyBpbiBzdHJpY3QgYWRoZXJlbmNlIHRvIGFudGktbW9uZXkgbGF1bmRlcmluZyBhbmQgS25vdyBZb3VyIEN1c3RvbWVyIHJlZ3VsYXRpb25zLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZmlyc3REZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiNS4xLiBWZXJpZmljYXRpb24gUmVxdWlyZW1lbnRzIEluIG9yZGVyIHRvIHBhc3MgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzIGFuZCBjb25maXJtIHRoZSBvcmlnaW4gb2YgZnVuZHMsIE5Db25uZWN0IG1heSByZXF1aXJlIFVzZXJzIHRvIHByb3ZpZGUgcmVsaWFibGUgYW5kIGluZGVwZW5kZW50IHNvdXJjZSBkb2N1bWVudHMgb3IgaW5mb3JtYXRpb24uIFRoaXMgbWF5IGluY2x1ZGU6IiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzZWNvbmVkRGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkEgY2xlYXIgYW5kIGV4cGFuZGVkIHBob3RvIG9mIHRoZSBwYXNzcG9ydCB3aXRoIHRoZSB1c2VyJ3MgcGhvdG8gYW5kIGZ1bGwgbmFtZSB2aXNpYmxlOyIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgdGhpcmREZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQSBzY2FuIG9yIHBob3RvIG9mIHRoZSBwYXNzcG9ydCdzIGZpcnN0LCBzZWNvbmQsIGFuZCByZWdpc3RyYXRpb24gcGFnZXMgaW4gZ29vZCBxdWFsaXR5OyIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZm9ydGhEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQ29uZmlybWF0aW9uIG9mIHRoZSBzb3VyY2VzIG9mIGZ1bmRzIHdpdGggcGhvdG9zLCBzY3JlZW5zaG90cywgb3IgZXh0cmFjdHM7IiwKICAgICAgICB9LAogICAgICB9LAogICAgICBmaWZ0aERlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJBIHZpZGVvIGluIHdoaWNoIHRoZSBwZXJzb24gd2hvIHNlbnQgdGhlIGZ1bmRzIGhvbGRzIGFuIGV4cGFuZGVkIHBhc3Nwb3J0ICh3aXRoIHRoZSBwaG90byBhbmQgZnVsbCBuYW1lIHZpc2libGUpLCBzdGF0ZXMgdGhlaXIgTkNvbm5lY3QgYXBwbGljYXRpb24gSUQgKGFwcGxpY2F0aW9uIG51bWJlciksIGNvbmZpcm1zIHRoYXQgdGhlIGZ1bmRzIHNlbnQgYXJlIHRoZWlyIG93biBhbmQgdGhhdCB0aGV5IGJlYXIgZnVsbCBsZWdhbCByZXNwb25zaWJpbGl0eSBmb3IgdGhlIGNyeXB0b2N1cnJlbmN5LCBhbmQgbWVudGlvbnMgdGhlIHNvdXJjZSBvZiB0aGUgZnVuZHMgb24gdGhlIHZpZGVvOyIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgc2l4c0Rlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJBIHZpZGVvIHJlY29yZGluZyB0YWtlbiBmcm9tIHRoZSBwbGF0Zm9ybSB3aGVyZSB0aGUgZnVuZHMgd2VyZSBzZW50IGZyb20sIHNob3dpbmcgdGhlIGhhc2gsIHNlbmRlciBhbmQgcmVjaXBpZW50IGFkZHJlc3NlcywgYW1vdW50IHdpdGggdGhlIHRpY2tlciwgYW5kIGRhdGUgb2YgdGhlIHRyYW5zYWN0aW9uLiBUaGUgdmlkZW8gbXVzdCBiZSBhdCBsZWFzdCAxMCBzZWNvbmRzIGxvbmcuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzZXZlbnRoRGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIjUuMi4gVmVyaWZpY2F0aW9uIERlbGF5cyBJbiBjYXNlIG9mIGhpZ2ggcmlzayBvciBvZmZpY2lhbCBpbnZlc3RpZ2F0aW9uLCBmdW5kcyBtYXkgYmUgaGVsZCB1bnRpbCB0aGUgdmVyaWZpY2F0aW9uIHByb2Nlc3Mgb3IgaW52ZXN0aWdhdGlvbiBpcyBjb21wbGV0ZWQuIE5Db25uZWN0IHJlc2VydmVzIHRoZSByaWdodCB0byBjb2xsZWN0IHRoZSBVc2VyJ3MgaWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24gZm9yIGNvbXBsaWFuY2Ugd2l0aCB0aGUgQU1ML0tZQyBQb2xpY3kuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBlaWdodGhEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiNS4zLiBBdXRoZW50aWNpdHkgVmVyaWZpY2F0aW9uIE5Db25uZWN0IHdpbGwgdGFrZSBzdGVwcyB0byB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiBkb2N1bWVudHMgYW5kIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IFVzZXJzLCB1c2luZyBsZWdhbCBtZXRob2RzIGZvciBkb3VibGUgdmVyaWZpY2F0aW9uIG9mIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uLiBOQ29ubmVjdCBhbHNvIHJlc2VydmVzIHRoZSByaWdodCB0byBpbnZlc3RpZ2F0ZSBjYXNlcyB3aGVyZSBhIFVzZXIncyBpZGVudGl0eSBpcyBjb25zaWRlcmVkIGRhbmdlcm91cyBvciBzdXNwaWNpb3VzLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbmludGhEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiNS40LiBPbmdvaW5nIElkZW50aXR5IENoZWNrcyBOQ29ubmVjdCBtYXkgY2hlY2sgdGhlIFVzZXIncyBpZGVudGl0eSBvbiBhbiBvbmdvaW5nIGJhc2lzLCBlc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdG8gdGhlIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIG9yIHN1c3BpY2lvdXMgYWN0aXZpdHkgaXMgZGV0ZWN0ZWQuIE5Db25uZWN0IG1heSBhbHNvIHJlcXVlc3QgdXAtdG8tZGF0ZSBkb2N1bWVudHMgZnJvbSBVc2VycywgZXZlbiBpZiB0aGV5IGhhdmUgYmVlbiBhdXRoZW50aWNhdGVkIGluIHRoZSBwYXN0LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgdGVudGhEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiNS41LiBQcml2YWN5IGFuZCBEYXRhIFByb3RlY3Rpb24gVXNlciBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiB3aWxsIGJlIGNvbGxlY3RlZCwgc3RvcmVkLCBzaGFyZWQsIGFuZCBwcm90ZWN0ZWQgaW4gc3RyaWN0IGFjY29yZGFuY2Ugd2l0aCBOQ29ubmVjdCdzIFByaXZhY3kgUG9saWN5IGFuZCByZWxhdGVkIHJ1bGVzLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZWxldmVudGhEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiNS42LiBSZWZ1c2FsIG9mIFNlcnZpY2VzIEFmdGVyIGNvbmZpcm1pbmcgdGhlIFVzZXIncyBpZGVudGl0eSwgTkNvbm5lY3QgbWF5IHJlZnVzZSB0byBwcm92aWRlIHNlcnZpY2VzIGlmIHRoZSBVc2VyJ3MgYWNjb3VudCBpcyBmb3VuZCB0byBiZSB1c2VkIGZvciBpbGxlZ2FsIGFjdGl2aXRpZXMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICB0d2VsZnRoRGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIjUuNy4gUGF5bWVudCBDYXJkIFZlcmlmaWNhdGlvbiBVc2VycyBpbnRlbmRpbmcgdG8gdXNlIHBheW1lbnQgY2FyZHMgZm9yIHNlcnZpY2VzIG11c3QgdW5kZXJnbyBjYXJkIHZlcmlmaWNhdGlvbiBhcyBwZXIgdGhlIGluc3RydWN0aW9ucyBhdmFpbGFibGUgb24gdGhlIE5Db25uZWN0IHdlYnNpdGUuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICB0aGlydGVlbnRoRGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIjUuOC4gU291cmNlIG9mIEZ1bmRzIFZlcmlmaWNhdGlvbiBOQ29ubmVjdCBoYXMgcmVndWxhdG9yeSByZXF1aXJlbWVudHMgdG8gdmVyaWZ5IHRoZSBsZWdhbGl0eSBvZiB0aGUgc291cmNlIG9mIGZ1bmRzIG9yIGNyeXB0b2N1cnJlbmN5IHVzZWQgYnkgVXNlcnMgZm9yIHRyYWRpbmcuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHJlc3BvbnNpYmxlT2ZmaWNpYWw6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiNi4gUmVzcG9uc2libGUgT2ZmaWNpYWwiIH0gfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRoZSBOQ29ubmVjdCBTZXJ2aWNlIGFwcG9pbnRzIGEgcGVyc29uIHJlc3BvbnNpYmxlIGZvciBBTUwgY29tcGxpYW5jZSB3aG8gaXMgYXV0aG9yaXplZCB0byBlbnN1cmUgZWZmZWN0aXZlIGltcGxlbWVudGF0aW9uIGFuZCBlbmZvcmNlbWVudCBvZiB0aGUgQU1ML0tZQyBwb2xpY3kuIFRoaXMgcGVyc29uIGlzIHJlc3BvbnNpYmxlIGZvciB2YXJpb3VzIHRhc2tzIGluY2x1ZGluZyBjb2xsZWN0aW9uIG9mIHVzZXIgaWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24sIGNyZWF0aW5nIGFuZCB1cGRhdGluZyBpbnRlcm5hbCBwb2xpY2llcyBhbmQgcHJvY2VkdXJlcywgbW9uaXRvcmluZyB0cmFuc2FjdGlvbnMsIGltcGxlbWVudGluZyBhIHJlY29yZHMgbWFuYWdlbWVudCBzeXN0ZW0sIHVwZGF0aW5nIHJpc2sgYXNzZXNzbWVudCwgYW5kIHByb3ZpZGluZyBpbmZvcm1hdGlvbiB0byBsYXcgZW5mb3JjZW1lbnQgYWdlbmNpZXMgYXMgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXdzIGFuZCByZWd1bGF0aW9ucy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgc3lzdGVtRnVuY3Rpb25zOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjcuIFN5c3RlbSBGdW5jdGlvbnMiIH0gfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRoZSBOQ29ubmVjdCBTZXJ2aWNlIHBlcmZvcm1zIHZhcmlvdXMgY29tcGxpYW5jZSB0YXNrcyBzdWNoIGFzIGRhdGEgY29sbGVjdGlvbiwgZmlsdGVyaW5nLCByZWNvcmQga2VlcGluZywgaW52ZXN0aWdhdGlvbiBtYW5hZ2VtZW50LCBhbmQgcmVwb3J0aW5nLiBTeXN0ZW0gZmVhdHVyZXMgaW5jbHVkZSBjaGVja2luZyB1c2VycyBhZ2FpbnN0IHJlY29nbml6ZWQgYmxhY2tsaXN0cywgYWdncmVnYXRpbmcgdHJhbnNmZXJzLCBwbGFjaW5nIHVzZXJzIG9uIHdhdGNobGlzdHMgYW5kIGRlbmlhbCBvZiBzZXJ2aWNlIGxpc3RzLCBvcGVuaW5nIGNhc2VzIGZvciBpbnZlc3RpZ2F0aW9uLCBzZW5kaW5nIGludGVybmFsIG1lc3NhZ2VzLCBhbmQgZmlsbGluZyBtYW5kYXRvcnkgcmVwb3J0aW5nIGlmIGFwcGxpY2FibGUuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIGJlaGF2aW9yQW5hbHlzaXM6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiOC4gQmVoYXZpb3IgQW5hbHlzaXMiIH0gfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRoZSBOQ29ubmVjdCBTZXJ2aWNlIHZlcmlmaWVzIHVzZXJzIG5vdCBvbmx5IGJ5IHZlcmlmeWluZyB0aGVpciBpZGVudGl0eSwgYnV0IGFsc28gYnkgYW5hbHl6aW5nIHRoZWlyIGJlaGF2aW9yIGluIHRyYW5zYWN0aW9ucy4gRGF0YSBhbmFseXNpcyBpcyB1c2VkIGFzIGEgcmlzayBhc3Nlc3NtZW50IGFuZCBzdXNwaWNpb24gZGV0ZWN0aW9uIHRvb2wuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHJpc2tBc3Nlc3NtZW50czogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICI5LiBSaXNrIEFzc2Vzc21lbnRzIiB9IH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJUaGUgTkNvbm5lY3QgU2VydmljZSBhcHBsaWVzIHRoZSBwcmFjdGljZSBvZiByaXNrIGFzc2Vzc21lbnQgdG8gY29tYmF0IG1vbmV5IGxhdW5kZXJpbmcgYW5kIHRlcnJvcmlzdCBmaW5hbmNpbmcsIGluIGFjY29yZGFuY2Ugd2l0aCBpbnRlcm5hdGlvbmFsIHJlcXVpcmVtZW50cy4gVGhpcyBlbnN1cmVzIHRoYXQgbWVhc3VyZXMgdG8gcHJldmVudCBvciByZWR1Y2UgbW9uZXkgbGF1bmRlcmluZyBhbmQgdGVycm9yaXN0IGZpbmFuY2luZyBhcmUgcHJvcG9ydGlvbmF0ZSB0byB0aGUgaWRlbnRpZmllZCByaXNrcy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgcGVyZm9ybUN1c3RvbWVyQ2hlY2tzOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIxMC4gUGVyZm9ybSBDdXN0b21lciBDaGVja3MiIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJJbiBvcmRlciB0byBjb21iYXQgbW9uZXkgbGF1bmRlcmluZyBhbmQgaWxsZWdhbCBhY3Rpdml0aWVzLCBOQ29ubmVjdCBzZXJ2aWNlIGhhcyB0aGUgYXV0aG9yaXR5IHRvIHN1c3BlbmQgdXNlcidzIGV4Y2hhbmdlIG9wZXJhdGlvbiwgcmVxdWVzdCBpZGVudGlmaWNhdGlvbiBkb2N1bWVudHMsIGFuZCBzZWVrIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIHN1c3BpY2lvdXMgdHJhbnNhY3Rpb25zIGlmIHRoZSBhZG1pbmlzdHJhdGlvbiBoYXMgcmVhc29uYWJsZSBzdXNwaWNpb25zLiBUaGV5IGFsc28gaGF2ZSB0aGUgcmVzcG9uc2liaWxpdHkgdG8gcmVwb3J0IGFueSBzdXNwaWNpb3VzIHRyYW5zYWN0aW9ucyB0byBsYXcgZW5mb3JjZW1lbnQgYXV0aG9yaXRpZXMgdGhyb3VnaCB0aGUgZGVzaWduYXRlZCBBTUwgQ29tcGxpYW5jZSBPZmZpY2VyLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICBwcml2YWN5OiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjExLiBQcml2YWN5IiB9IH0sCiAgICAgIGZpcnN0RGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIk5Db25uZWN0IHNlcnZpY2UgcGxhY2VzIGEgaGlnaCB2YWx1ZSBvbiBjbGllbnQgY29uZmlkZW50aWFsaXR5IGFuZCBlbnN1cmVzIHRoYXQgZW1wbG95ZWVzIG1haW50YWluIHN0cmljdCBjb25maWRlbnRpYWxpdHkgcmVnYXJkaW5nIGFueSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHF1ZXN0aW9uYWJsZSB0cmFuc2FjdGlvbnMuIFRoaXMgb2JsaWdhdGlvbiBleHRlbmRzIGV2ZW4gYWZ0ZXIgdGVybWluYXRpb24gb2YgZW1wbG95bWVudCBvciBjb250cmFjdHVhbCByZWxhdGlvbnNoaXAuIEhvd2V2ZXIsIGRpc2Nsb3N1cmUgb2YgaW5mb3JtYXRpb24gdG8gZ292ZXJubWVudCwgbGF3IGVuZm9yY2VtZW50IGFnZW5jaWVzLCBhbmQgb3RoZXIgZW50aXRpZXMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBsYXcgaXMgbm90IGNvbnNpZGVyZWQgYSB2aW9sYXRpb24gb2YgY29uZmlkZW50aWFsaXR5IG9ibGlnYXRpb25zLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgc2Vjb25lZERlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICIxMS4xLiBUaGUgTkNvbm5lY3Qgc2VydmljZSBhbmQgaXRzIGVtcGxveWVlcyB1bmRlcnRha2UgdG8gbWFpbnRhaW4gY29uZmlkZW50aWFsaXR5IHJlZ2FyZGluZyBhbnkgZmFjdHMgcmV2ZWFsZWQgaW4gY29ubmVjdGlvbiB3aXRoIGFueSBxdWVzdGlvbmFibGUgdHJhbnNhY3Rpb24uIFRoaXMgb2JsaWdhdGlvbiBhbHNvIGFwcGxpZXMgdG8gdXNlcnMgb2YgdGhlIFNlcnZpY2UgYW5kIHRvIHRoaXJkIHBhcnRpZXMgdG8gd2hvbSBpbmZvcm1hdGlvbiBvbiB0aGUgdHJhbnNhY3Rpb24gd2FzIHRyYW5zZmVycmVkLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgdGhpcmREZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiMTEuMi4gVGhlIGNvbmZpZGVudGlhbGl0eSBvYmxpZ2F0aW9uIGltcG9zZWQgb24gdGhlIGVtcGxveWVlcyBvZiB0aGUgTkNvbm5lY3QgU2VydmljZSByZW1haW5zIGluIGZvcmNlIGFmdGVyIHRoZSB0ZXJtaW5hdGlvbiBvZiB0aGVpciB3b3JrIG9yIGFueSBvdGhlciBjb250cmFjdHVhbCByZWxhdGlvbnNoaXAgd2l0aCB0aGUgTkNvbm5lY3QgU2VydmljZSwgYXMgd2VsbCBhcyB3aGVuIHN1Y2ggZW1wbG95ZWVzIGFyZSB0cmFuc2ZlcnJlZCB0byBhbm90aGVyIHdvcmtwbGFjZS4gRGlzY2xvc3VyZSBvZiBzdWNoIGluZm9ybWF0aW9uIHRvIGdvdmVybm1lbnQsIGxhdyBlbmZvcmNlbWVudCBhZ2VuY2llcyBhbmQgb3RoZXIgZW50aXRpZXMgaW4gY2FzZXMgc3BlY2lmaWVkIGJ5IGxhdyBpcyBub3QgYSB2aW9sYXRpb24gb2YgY29uZmlkZW50aWFsaXR5IG9ibGlnYXRpb25zLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZm9ydGhEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiMTEuMy4gVGhlIG9ibGlnYXRpb24gdG8gbWFpbnRhaW4gY29uZmlkZW50aWFsaXR5LCBwcm92aWRlZCB0aGF0IHRoZSB1c2Ugb2YgdGhlIGluZm9ybWF0aW9uIGRpc2Nsb3NlZCBpcyBsaW1pdGVkIHRvIHByZXZlbnRpbmcgdGhlIGxlZ2l0aW1pemF0aW9uIG9mIHByb2NlZWRzIG9mIGNyaW1lIGFuZCB0ZXJyb3Jpc3QgZmluYW5jaW5nLCBjYW5ub3QgYXBwbHkgdG8gdGhlIGRpc2Nsb3N1cmUgb2YgaW5mb3JtYXRpb24gYmV0d2VlbiBmaW5hbmNpYWwgaW5zdGl0dXRpb25zIHRoYXQgZm9ybSBhIGNvbnNvbGlkYXRlZCBncm91cCB0aGF0IGNvb3BlcmF0ZXMgd2l0aCB0aGUgTkNvbm5lY3QgU2VydmljZS4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgQ29uY2x1c2lvbjogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIxMi4gQ29uY2x1c2lvbiIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiTkNvbm5lY3Qgc2VydmljZSBhY2tub3dsZWRnZXMgdGhhdCBpdCBkb2VzIG5vdCBob2xkIGxlZ2FsIHJlc3BvbnNpYmlsaXR5IGZvciBhbnkgbWlzdXNlIG9mIGl0cyBzZXJ2aWNlcyBmb3IgbW9uZXkgbGF1bmRlcmluZywgdGVycm9yaXN0IGZpbmFuY2luZywgb3IgcHVyY2hhc2luZyBwcm9oaWJpdGVkIGdvb2RzL3NlcnZpY2VzLiBOZXZlcnRoZWxlc3MsIE5Db25uZWN0IHNlcnZpY2UgaXMgY29tbWl0dGVkIHRvIHRha2luZyBhbGwgcG9zc2libGUgYW5kIGF2YWlsYWJsZSBhY3Rpb25zIHRvIHByZXZlbnQgYW55IGF0dGVtcHRzIHRvIHVzZSBpdHMgcGxhdGZvcm0gZm9yIGlsbGVnYWwgcHVycG9zZXMuIEJ5IG1ha2luZyBhbiBleGNoYW5nZSwgdXNlcnMgYWdyZWUgdG8gY29tcGx5IHdpdGggdGhlIEFNTC9LWUMgcG9saWNpZXMgYW5kIGV4Y2hhbmdlIHJ1bGVzIGluIGZvcmNlIG9uIE5Db25uZWN0LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgfSwKICBwcml2YWN5OiB7CiAgICBtZXRhVGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUHJpdmFjeSBQb2xpY3kiIH0gfSwKICAgIG1ldGFEZXNjcmlwdGlvbjogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJBbiBPdmVydmlldyBvbiBDb29raWVzLCBQZXJzb25hbCBJbmZvcm1hdGlvbiwgU2VjdXJpdHkgVGVjaG5vbG9naWVzLCBUaGlyZCBQYXJ0eSBhbmQgT3RoZXIgUG9saWNpZXMiLAogICAgICB9LAogICAgfSwKICAgIHRpdGxlczogewogICAgICBOQ29ubmVjdDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJOQ29ubmVjdCIgfSB9LAogICAgICBDb29raWVzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvb2tpZXMiIH0gfSwKICAgICAgUGVyc29uYWxJbmZvcm1hdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGVyc29uYWwgSW5mb3JtYXRpb24iIH0sCiAgICAgIH0sCiAgICAgIFNlY3VyaXR5VGVjaG5vbG9naWVzOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTZWN1cml0eSBUZWNobm9sb2dpZXMiIH0sCiAgICAgIH0sCiAgICAgIFRyYW5zZmVyaW5mb3JtYXRpb25Ub1RoaXJkUGFydGllczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhbnNmZXIgaW5mb3JtYXRpb24gdG8gdGhpcmQgcGFydGllcyIgfSwKICAgICAgfSwKICAgICAgVHJhbnNtaXNzaW9uT2ZJbmZvcm1hdGlvblRvUmVndWxhdG9yczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiVHJhbnNtaXNzaW9uIG9mIGluZm9ybWF0aW9uIHRvIHJlZ3VsYXRvcnMiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIFJlZnVzYWxUb1Byb3ZpZGVJbmZvcm1hdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVmdXNhbCB0byBwcm92aWRlIGluZm9ybWF0aW9uIiB9LAogICAgICB9LAogICAgfSwKICAgIG1haW5UaXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQcml2YWN5IGFuZCBQb2xpY3kiIH0gfSwKICAgIGhpMTogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJOQ29ubmVjdCBpcyBhIGZpbmFuY2lhbCB0ZWFtIHdpdGggbW9yZSB0aGFuIDggeWVhcnMgb2YgZXhwZXJpZW5jZSBpbiBmaW50ZWNoIGFuZCBleGNoYW5nZSBidXNpbmVzc2VzLiBEdWUgdG8gdGhlIGVtcGxveW1lbnQgb2YgaGlnaC10ZWNoIGluZnJhc3RydWN0dXJlcywgb3VyIHNlcnZpY2VzIGFyZSBtb3JlIHJlbGlhYmxlIGFuZCByYXRlcyBhcmUga2VwdCBhdCB0aGUgbG93ZXN0IGFsbCB0aGUgdGltZS4gTW9yZSBjdXJyZW5jeSBwYWlycyB3aWxsIGJlIGFkZGVkIHRvIHRoZSB3ZWJzaXRlIGluIHRoZSBuZWFyIGZ1dHVyZSBzbyBrZWVwIGFuIGV5ZSBvbiB1cy4iLAogICAgICB9LAogICAgfSwKICAgIGhpMjogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICIgT3VyIGN1c3RvbWVyIGluZm9ybWF0aW9uIHNhZmV0eSBpcyBpbXBvcnRhbnQgdG8gdXMiLAogICAgICB9LAogICAgfSwKICAgIHNlY3VyaXR5OiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsKICAgICAgICB0OiAyLAogICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgczogIldlIHVzZSBzZWN1cmUgY29ubmVjdGlvbnMgKFNTTCkgdG8gcHJvdGVjdCBjb25maWRlbnRpYWwgYW5kIHNlbnNpdGl2ZSB0byB0aGUgaW50ZXJjZXB0aW9uIG9mIGluZm9ybWF0aW9uIHRoYXQgdGhlIGNsaWVudCBwcm92aWRlcyB0aGUgc2VydmljZS4gVGhpcyB0ZWNobm9sb2d5IHByb3RlY3RzIGluZm9ybWF0aW9uIGZyb20gYmVpbmcgaW50ZXJjZXB0ZWQgYnkgYSB0aGlyZCBwYXJ0eSBkdXJpbmcgdHJhbnNtaXNzaW9uIGZyb20gdGhlIGNsaWVudCB0byBvdXIgc2VydmVyIGFuZCBiYWNrd2FyZC4gV2UgYXJlIGNvbnN0YW50bHkgd29ya2luZyB0byBlbnN1cmUgdGhlIHNhZmV0eSBvZiBvdXIgd2Vic2l0ZXMgYW5kIHRoZWlyIGNvbXBsaWFuY2Ugd2l0aCB0aGUgc3RhbmRhcmRzIG9mIHRoZSBtYXJrZXQuIFdlIHVzZSB0b29scyBzdWNoIGFzIGZpcmV3YWxscywgYXV0aGVudGljYXRpb24gc3lzdGVtcyAoZWcsIG9uZS10aW1lIHBhc3N3b3JkcyBhbmQgcGVyc29uYWwgaWRlbnRpZmljYXRpb24gbnVtYmVycykgYW5kIGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbXMgdG8gbW9uaXRvciBhbnkgYXR0ZW1wdHMgYXQgdW5hdXRob3JpemVkIGFjY2VzcyB0byBzeXN0ZW1zIGFuZCBkYXRhLiIsCiAgICAgIH0sCiAgICB9LAogICAgYXR0ZW5kYW50czogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJBdHRlbmRhbnRzIE5Db25uZWN0IGhhcyBkaWZmZXJlbnQgbGV2ZWxzIG9mIGFjY2VzcyB0byBjb25maWRlbnRpYWwgY3VzdG9tZXIgaW5mb3JtYXRpb24g4oCUIHRoaXMgZW5zdXJlcyBwcmV2ZW50aW9uIG9mIGxlYWthZ2Ugb2Ygc2Vuc2l0aXZlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBkaXNtaXNzYWwgb2YgYW55IG9mIG91ciBlbXBsb3llZXMuIiwKICAgICAgfSwKICAgIH0sCiAgICBjb29raWUxOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsKICAgICAgICB0OiAyLAogICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgczogIkNvb2tpZXMgcmVmZXIgdG8gZmlsZXMgY29udGFpbmluZyBpbmZvcm1hdGlvbiB0aGF0IGEgd2Vic2l0ZSB1c2VzIHRvIHRyYWNrIGl0cyB2aXNpdG9ycy4gTkNvbm5lY3QgbWF5IHNldCBhbmQgYWNjZXNzIHRvIGZpbGVzIG9ubHkgY29va2llcyB3ZWJzaXRlcyAgb24geW91ciBjb21wdXRlciB0aGF0IGFsbG93cyB1cyB0byBzZWUgd2hpY2ggYWRzIGF0dHJhY3QgdXNlcnMgYW5kIHJlc291cmNlcyBvbiBvdXIgd2Vic2l0ZS4gU2VydmljZSBOQ29ubmVjdCBtYXkgdXNlIGNvb2tpZXMgdG8gbWVhc3VyZSB5b3VyIGludGVyZXN0IGluIG91ciBwcm9kdWN0cyBhbmQgc2VydmljZXMsIGFzIHdlbGwgYXMgdG8gdHJhY2sgeW91ciBhY3Rpdml0eSBvbiB0aGUgd2Vic2l0ZS4gVGhlIGluZm9ybWF0aW9uIHdlIGNvbGxlY3QgYW5kIHByb3ZpZGUgdG8gb3VyIHBhcnRuZXJzIGlzIGFub255bW91cyBhbmQgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgcGFydGljdWxhciBjdXN0b21lci4iLAogICAgICB9LAogICAgfSwKICAgIGNvb2tpZTI6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiSWYgeW91IHB1dCBhbiBvcmRlciwgY29tbWVudCBvciByZXZpZXcgb24gIHdlIGNvbGxlY3QgdGhlIGRhdGEgc2hvd24gaW4gdGhlIGNvbW1lbnRzIGZvcm0sIGFuZCBhbHNvIHRoZSB2aXNpdG9y4oCZcyBJUCBhZGRyZXNzIGFuZCBicm93c2VyIHVzZXIgYWdlbnQgc3RyaW5nIHRvIGhlbHAgc3BhbSBkZXRlY3Rpb24uIiwKICAgICAgfSwKICAgIH0sCiAgICBwZXJzb25hbDE6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiV2hlbiB5b3Ugb3BlbiBhbiBhY2NvdW50IGFuZCBjYXJyeWluZyBvdXQgYW55IG9wZXJhdGlvbnMgaW4gdGhlIE5Db25uZWN0IHdlIGNvbGxlY3QgcGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gc29sZWx5IGZvciBidXNpbmVzcyBwdXJwb3NlcyB0byBkZXRlcm1pbmUgdGhlIHByZWZlcmVuY2VzIGFuZCBpbXByb3ZlIGN1c3RvbWVyIGxveWFsdHkuIER1cmluZyB0aGUgd29yayB3aXRoIHRoZSBzeXN0ZW0gd2UgY2FuIGdldCB5b3UgdG8gdGhlIGZvbGxvd2luZyBjb25maWRlbnRpYWwgaW5mb3JtYXRpb246IiwKICAgICAgfSwKICAgIH0sCiAgICBwZXJzb25hbDI6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiUGVyc29uYWwgaW5mb3JtYXRpb24gLSBmdWxsIG5hbWUsIGRhdGUgb2YgYmlydGgsIGNvbnRhY3QgZGV0YWlscywgYWRkcmVzcyBvciByZWdpc3RyYXRpb24sIGUtbWFpbCBhZGRyZXNzLCBtb2JpbGUgbnVtYmVyIG9yIGhvbWUgdGVsZXBob25lIG51bWJlcjsiLAogICAgICB9LAogICAgfSwKICAgIHBlcnNvbmFsMzogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJJbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXltZW50IHRyYW5zYWN0aW9ucyAtIEluZm9ybWF0aW9uIGFib3V0IHlvdXIgdHJhbnNhY3Rpb25zIGluIHBheW1lbnQgc3lzdGVtcyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIG9wZXJhdGlvbiBvZiB0aGUgc2VydmljZTsiLAogICAgICB9LAogICAgfSwKICAgIHBlcnNvbmFsNDogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJJZGVudGlmaWNhdGlvbiBJbmZvcm1hdGlvbiAtIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgaWRlbnRpZmljYXRpb24gYW5kIGN1c3RvbWVyIGlkZW50aWZpY2F0aW9uLCBzdWNoIGFzIHBhc3Nwb3J0IGRldGFpbHMsIHV0aWxpdHkgYmlsbHMuIiwKICAgICAgfSwKICAgIH0sCiAgICB0cmFuc2ZlcjE6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiTkNvbm5lY3QgZGlkIG5vdCBkaXNjbG9zZSBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBjdXN0b21lciBpbmZvcm1hdGlvbiB0byB0aGlyZCBwYXJ0aWVzIG90aGVyIHRoYW4gdGhvc2UgZGVzY3JpYmVkIGluIHRoaXMgUHJpdmFjeSBQb2xpY3kgb2YgTkNvbm5lY3QgLiBEaXNjbG9zdXJlIHRvIHRoaXJkIHBhcnRpZXMgaXMgcG9zc2libGUgb25seSBpZiB0aGUgY29tcGFueSdzIG5vbi1wYXJ0bmVycyBOQ29ubmVjdCwgcHJvdmlkaW5nIGEgdGVjaG5pY2FsIHN1cHBvcnQgc3lzdGVtLCBpbmNsdWRpbmcgdGhlIHByb3Zpc2lvbiBvZiBwcm9mZXNzaW9uYWwsIGxlZ2FsIG9yIGFjY291bnRpbmcgaGVscCBOQ29ubmVjdCAuIiwKICAgICAgfSwKICAgIH0sCiAgICB0cmFuc2ZlcjI6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiV2UgbWF5IGFsc28gZGlzY2xvc2UgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiB0byB0aGlyZCBwYXJ0aWVzIHdpdGhvdXQgeW91ciBjb25zZW50LCBvciB0byBjYXJyeSBvdXQgeW91ciBpbnN0cnVjdGlvbnMuIE5Db25uZWN0IHVuZGVyIGFueSBjaXJjdW1zdGFuY2VzIGRvZXMgbm90IHNlbGwgcGVyc29uYWwgY3VzdG9tZXIgaW5mb3JtYXRpb24uIiwKICAgICAgfSwKICAgIH0sCiAgICB0cmFuc21pc3Npb24xOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsKICAgICAgICB0OiAyLAogICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgczogIkluIGV4Y2VwdGlvbmFsIGNhc2VzLCBOQ29ubmVjdCBtYXkgZGlzY2xvc2UgcGVyc29uYWxseSBpZGVudGlmaWFibGUgY3VzdG9tZXIgaW5mb3JtYXRpb24gdG8gdGhpcmQgcGFydGllcyBpZiBpdCBpcyBwZXJtaXR0ZWQgb3IgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsZWdpc2xhdGlvbiBvciBvdGhlciByZWd1bGF0aW9ucy4iLAogICAgICB9LAogICAgfSwKICAgIHRyYW5zbWlzc2lvbjI6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiRm9yIGV4YW1wbGUsIHdlIG1heSBkaXNjbG9zZSBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBpbiBjb29wZXJhdGlvbiB3aXRoIHJlZ3VsYXRvcnMgYW5kIGxhdyBlbmZvcmNlbWVudCBhZ2VuY2llcywgdW5kZXIgdGhlIG9yZGVycyBvZiB0aGUgY291cnQgb3Igd2hlbiByZXNwb25kaW5nIHRvIG90aGVyIG9mZmljaWFsIHJlcXVlc3RzLCBhcyB3ZWxsIGFzIGluIHRoZSBjYXNlIG9mIHRoZSBuZWVkIHRvIHByb3RlY3Qgb3VyIHJpZ2h0cyBvciBwcm9wZXJ0eS4iLAogICAgICB9LAogICAgfSwKICAgIHRyYW5zbWlzc2lvbjM6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiV2Ugd2lsbCBub3QgdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gZm9yIGFueSBwdXJwb3NlcyBvdGhlciB0aGFuIHRob3NlIGRlc2NyaWJlZCBpbiB0aGlzIFByaXZhY3kgUG9saWN5LiIsCiAgICAgIH0sCiAgICB9LAogICAgcmVmdXNhbDE6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiWW91IGFyZSBub3Qgb2JsaWdlZCB0byBwcm92aWRlIHVzIHdpdGggYW55IHBlcnNvbmFsIGluZm9ybWF0aW9uIHRoYXQgd2UgaGF2ZSB0byBhc2sgeW91LiBIb3dldmVyLCB0aGUgcmVmdXNhbCBvZiB0aGUgY2xpZW50IHRvIHByb3ZpZGUgaW5mb3JtYXRpb24gY291bGQgcmVzdWx0IGluIGEgZGVuaWFsIG9mIHNlcnZpY2UgTkNvbm5lY3QuIiwKICAgICAgfSwKICAgIH0sCiAgICByZWZ1c2FsMjogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICIgV2UgbWFrZSBldmVyeSBlZmZvcnQgdG8gZW5zdXJlIHRoZSBhY2N1cmFjeSwgY29tcGxldGVuZXNzLCBhbmQgdGltZWxpbmVzcyBvZiBpbmZvcm1hdGlvbiByZWNlaXZlZCBmcm9tIHlvdS4gWW91IGNhbiBoZWxwIHVzIGdyZWF0bHkgaW4gdGhpcyByZXNwZWN0LCBwcm9tcHRseSBub3RpZnlpbmcgdXMgb2YgYW55IGNoYW5nZXMgaW4geW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbi4iLAogICAgICB9LAogICAgfSwKICB9LAogIGZhcTogWwogICAgewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IGRvZXMgSGkgRXhjaGFuZ2Ugd29yayIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0OiAzLAogICAgICAgICAgICAgIHY6ICJJdOKAmXMgc2ltcGxlIGFuZCBmYXN0LiBUbyBzdGFydCB5b3VyIGNyeXB0b2N1cnJlbmN5IG9yIGUtY3VycmVuY3kgZXhjaGFuZ2UsIHlvdSBvbmx5IG5lZWQgdG8gZ28gdG8gdGhlICIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsgdDogNCwgazogImFjdGlvbiIgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHQ6IDMsCiAgICAgICAgICAgICAgdjogIi4gRnJvbSB0aGUgZXhjaGFuZ2UgYm94IHRoZXJlLCBjaG9vc2UgdGhlIGN1cnJlbmN5IHlvdSB3YW50IHRvIGV4Y2hhbmdlIGFuZCB0aGUgY3VycmVuY3kgeW91IHdhbnQgdG8gcmVjZWl2ZSBpbiBleGNoYW5nZSBmb3IgdGhhdC4gTm93IHlvdSBvbmx5IG5lZWQgdG8gZW50ZXIgdGhlIGFtb3VudCB5b3Ugd2FudCB0byBzZW5kIHRvIHVzIGFuZCB0aGUgc3lzdGVtIHdpbGwgY2FsY3VsYXRlIHRoZSBhbW91bnQgeW91IHJlY2VpdmUgaW4geW91ciBkZXNpcmVkIHBhaXIuIE5vdyB5b3UganVzdCBoYXZlIDIgbW9yZSBzaW1wbGUgc3RlcHMgdG8gY29tcGxldGUuIEJ5IHByZXNzaW5nIHRoZSDigJxFeGNoYW5nZeKAnSBidXR0b24geW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgbmV4dCBzdGVwIHdoZXJlIHlvdSBoYXZlIHRvIGZpbGwgaW4gdGhlIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB5b3VyIHdhbGxldCB0byByZWNlaXZlIHRoZSBleGNoYW5nZWQgYW1vdW50IGZyb20gdXMuIE9uY2UgYWdhaW4gcHJlc3MgdGhlIGV4Y2hhbmdlIGJ1dHRvbiBhbmQgeW91IGFyZSBwcm92aWRlZCB3aXRoIG91ciB3YWxsZXQgaW5mb3JtYXRpb24uIE9uY2UgeW91IHBhaWQgdGhlIG9yZGVyIGFuZCB0aGUgdHJhbnNhY3Rpb24gaXMgY29uZmlybWVkLCB3ZSB3aWxsIHRyYW5zZmVyIHRoZSBleGNoYW5nZWQgYW1vdW50IHRvIHlvdXIgd2FsbGV0LiBJdOKAmXMgYWxsIGFzIGVhc3kgYXMgaXQgc291bmRzIHBsdXMgaXTigJlzIHNhZmUgYW5kIGZhc3QhIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJXaGF0IGhhcHBlbnMgaWYgSSBtYWtlIGEgbWlzdGFrZSBhbmQgdHJhbnNmZXIgYSBkaWZmZXJlbnQgYW1vdW50IHRoYW4gd2hhdCBJIGZpbGxlZCBpbiB0aGUgZXhjaGFuZ2Ugc3RlcHMiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJXaGVuIHlvdSB3b3JrIHdpdGggSGkgRXhjaGFuZ2UsIHRoZXJl4oCZcyBub3RoaW5nIHRvIGJlIHdvcnJpZWQgYWJvdXQuIE1vc3Qgb2YgdGhlIHRpbWUgb3VyIHN1cHBvcnQgdGVhbSB3aWxsIGNvbnRhY3QgeW91IHdpdGggdGhlIGVtYWlsIHlvdSBoYXZlIHByb3ZpZGVkIHRvIGdldCBjb25maXJtYXRpb24gYWJvdXQgdGhlIG5leHQgc3RlcHMgaW4gY2FzZSBvZiBhbnkgaW5jb25zaXN0ZW5jeSBpbiB0aGUgb3JkZXIgZGV0YWlscyBhbmQgdGhlIGFtb3VudCByZWNlaXZlZC4gU29tZXRpbWVzIGlmIHRoZSBvcmRlciBpcyBvZiB0aG9zZSBhdXRvbWF0aWMgcGFpcnMsIHRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgb3JkZXIgaW5mb3JtYXRpb24gYW5kIHNlbmQgdGhlIGV4Y2hhbmdlIGFtb3VudCBpbiBhY2NvcmRhbmNlIHdpdGggd2hhdCBpcyByZWNlaXZlZCBmcm9tIHlvdS4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2h5IGlzIG15IG1vbmV5IG9uIGhvbGQgaW4gUGF5UGFsIiB9LAogICAgICB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQWNjb3JkaW5nIHRvIFBheVBhbCwgeW91ciBtb25leSB3aWxsIGJlIGluIHlvdXIgcGVuZGluZyBiYWxhbmNlIHJhdGhlciB0aGFuIHRoZSBhdmFpbGFibGUgYmFsYW5jZSBiZWNhdXNlOiBUaGUgcGF5bWVudCB5b3UgcmVjZWl2ZWQgbWF5IGJlIGNvbnNpZGVyZWQgdW51c3VhbCBmb3IgeW91ciBzZWxsaW5nIHBhdHRlcm4gWW91ciBhY2NvdW50IHdhcyBpbmFjdGl2ZSBmb3IgYSB3aGlsZS4gV2UgZm91bmQgYW4gdW51c3VhbCBjaGFuZ2UgaW4gc2VsbGluZyBwcmljZSBvZiB0aGlzIHRyYW5zYWN0aW9uIElmIHRoZSBwcm9ibGVtIGlzIGR1ZSB0byBhIG5lZWQgZm9yIHVzIHRvIGFwcHJvdmUgdGhlIHRyYW5zYWN0aW9uLCB3ZSB3aWxsIHRha2UgY2FyZSBvZiBpdCBhcyBzb29uIGFzIHlvdSBjb250YWN0IHVzLiBvdGhlcndpc2UgLCB5b3UgbWlnaHQgbmVlZCB0byBwcm92aWRlIHVzIHdpdGggYW5vdGhlciBQYXlQYWwgYWNjb3VudCB3aGljaCBpcyB3b3JraW5nIGFuZCB5b3UgY2FuIHJlY2VpdmUgbW9uZXkgaW4gaXQuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkhvdyBsb25nIGRvZXMgaXQgdGFrZSBmb3IgYW4gb3JkZXIgdG8gYmUgY29uZmlybWVkIGFuZCBJIHJlY2VpdmUgdGhlIG1vbmV5IGluIG15IHdhbGxldCIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkl0IGRlcGVuZHMgb24gdGhlIHR5cGUgb2Ygb3JkZXIgeW914oCZcmUgcHV0dGluZyBvbiBvdXIgd2Vic2l0ZS4gV2UgdXN1YWxseSB0YWtlIGNhcmUgb2YgYWxsIG9yZGVycyBpbiBsZXNzIHRoYW4gNSBtaW51dGVzIChzb21ldGltZXMgaW4gYSBjb3VwbGUgb2YgbWludXRlcykuIEJ1dCBpZiB5b3XigJlyZSBwdXR0aW5nIGEgY3J5cHRvY3VycmVuY3kgZXhjaGFuZ2Ugb3JkZXIsIHRoZSBjb25maXJtYXRpb24gdGltZSBtaWdodCBtYWtlIHRoaXMgcHJvY2VzcyBsb25nZXIgdGhhbiB3ZSBleHBlY3RlZC4gSW5mYWN0LCB3ZSB3aWxsIHRyYW5zZmVyIHRoZSBleGNoYW5nZWQgYW1vdW50IHRvIHlvdXIgd2FsbGV0IHJpZ2h0IGFmdGVyIHRoZSB0cmFuc2FjdGlvbiBpcyBjb25maXJtZWQgb24gdGhlIG5ldHdvcmsuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkhvdyBjYW4gSSBtYWtlIG1vbmV5IHVzaW5nIEhpIEV4Y2hhbmdlIiB9LAogICAgICB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiSXTigJlzIGFzIGVhc3kgYXMgcHV0dGluZyBhbiBvcmRlciBvbiBvdXIgd2Vic2l0ZS4gWW91IGp1c3QgbmVlZCB0byBzaWduIHVwIHdpdGggYSB2YWxpZCBlbWFpbC4gV2Ugd2lsbCBwcm92aWRlIHlvdSB3aXRoIGEgcmVmZXJyYWwgbGluayB0aGF0IHlvdSBjYW4gc2hhcmUgb24geW91ciBzb2NpYWwgbWVkaWEsIHdlYnNpdGUgb3IganVzdCBzaGFyZSBpdCB3aXRoIHlvdXIgZnJpZW5kcy4gV2hlbiBzb21lb25lIHB1dHMgYW4gb3JkZXIgdXNpbmcgeW91ciBsaW5rLCB5b3Ugd2lsbCByZWNlaXZlIDAuMyUgb2YgZWFjaCB0cmFuc2FjdGlvbiBpbiB5b3VyIGFjY291bnQgYW5kIHlvdSBjYW4gcHV0IGEgcmVxdWVzdCB0byBjYXNoIG91dCB5b3VyIHJld2FyZCBhcyBzb29uIGFzIHRoZSBhbW91bnQgaXMgbW9yZSB0aGFuICQxMC4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiV2hhdCBpcyB0aGUgbmV0d29yayBmZWU/IFdoeSBhbSBJIGNoYXJnZWQgZm9yIHRoYXQgZmVlIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiV2UgZG9u4oCZdCBjaGFyZ2UgeW91IHdpdGggdGhlIG5ldHdvcmsgZmVlLiBJdOKAmXMgc2ltcGx5IGFuIGluZm9ybWF0aW9uIHdlIHByb3ZpZGUgeW91IHdpdGggc28geW91IGtub3cgaG93IG11Y2ggb2YgeW91ciBkZXNpcmVkIENyeXB0b2N1cnJlbmN5IHlvdSBuZWVkIHRvIHNlbmQgaW4gdG90YWwuIEZvciBleGFtcGxlIHdoZW4geW914oCZcmUgc2VuZGluZyBCaXRjb2luLCB0aGUgbmV0d29yayBjaGFyZ2VzIHlvdSBmb3Igc29tZSBwZXJjZW50YWdlIG9mIHRoZSBhbW91bnQgeW914oCZcmUgc2VuZGluZy4gV2UgZG9u4oCZdCByZWNlaXZlIHRoZSBuZXR3b3JrIGZlZSwgd2Ugd2lsbCBqdXN0IHJlY2VpdmUgdGhlIGFtb3VudCB0aGF0IGlzIHNlbnQgdG8gb3VyIHdhbGxldC4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IHRvIGV4Y2hhbmdlIEJpdGNvaW4gZm9yIFBheVBhbCIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIllvdSBjYW4gcmVjZWl2ZSB5b3VyIEJpdGNvaW4gdmFsdWUgaW4gdGhlIGZvcm0gb2YgUGF5UGFsIFVTRC9FVVIvR0JQIHNhZmUgYW5kIGZhc3QgdXNpbmcgb3VyIHNlcnZpY2VzLiBZb3UgY2FuIGJlIGNvbmZpZGVudCB0aGF0IHlvdXIgaW5mb3JtYXRpb24gYW5kIGRhdGEgYXJlIHNhZmUgd2l0aCB1cyBhbmQgdGhlIHdob2xlIHByb2Nlc3MgaXMgZG9uZSBhbm9ueW1vdXNseS4gVG8ga25vdyBtb3JlIGFib3V0IGhvdyB0byBkbyB0aGUgdHJhbnNhY3Rpb24geW91IGNhbiByZWFkIOKAnEhvdyB0byBleGNoYW5nZSBCaXRjb2luIHRvIFBheVBhbOKAnSBvbiBvdXIgYmxvZy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2h5IGRvIHlvdSBuZWVkIG15IGVtYWlsIGFkZHJlc3MiIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJXZSBuZWVkIHNvbWUgd2F5IHRvIGNvbnRhY3QgeW91IGluIGNhc2UgdGhlcmXigJlzIGEgcHJvYmxlbSBpbiB5b3VyIG9yZGVyLiBXZSBhc3N1cmUgeW91IHRoYXQgd2UgbmV2ZXIgc3RvcmUgb3Igc2hhcmUgeW91ciBpbmZvcm1hdGlvbiB3aXRoIHRoaXJkIHBhcnRpZXMuIFdoYXQgaGFwcGVucyBpbiBIaSBFeGNoYW5nZSBzdGF5cyBpbiBIaSBFeGNoYW5nZS4gIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIldoYXTigJlzIGluIGl0IGZvciBtZSBpZiBJIHJlZ2lzdGVyIG9uIHlvdXIgd2Vic2l0ZSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkJ5IHJlZ2lzdGVyaW5nIG9uIG91ciB3ZWJzaXRlIGFuZCBiZWNvbWluZyBhIG1lbWJlcjogWW91IGhhdmUgYWNjZXNzIHRvIGFsbCB5b3VyIHRyYW5zYWN0aW9uIGhpc3Rvcmllcy4gWW91IGNhbiBlYXNpbHkgc3VibWl0IGEgdGlja2V0IGFuZCBiZSBub3RpZmllZCBhcyBmYXN0IGFzIHlvdSBnZXQgYSByZXBseS4gWW91IGdldCBhIHJlZmVycmFsIGxpbmsgdGhhdCB5b3UgY2FuIG1ha2UgbW9uZXkgd2l0aC4gWW91IHdpbGwgYmUgdGhlIGZpcnN0IHBlcnNvbiB0byBrbm93IGFib3V0IG91ciBkZWFscyBhbmQgb2ZmZXIgYW5kIG5ldyBzZXJ2aWNlcyBBbmQgbWFueSBtb3JlIGFkdmFudGFnZXMiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTXkgb3JkZXIgZGlkbuKAmXQgYXJyaXZlLiBXaGF0IGNhbiBJIGRvIiB9LAogICAgICB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgIHQ6IDMsCiAgICAgICAgICAgICAgdjogIldlIHN1Z2dlc3QgeW91IHdhaXQgYSBsaXR0bGUgbG9uZ2VyIGlmIHlvdSBkaWRu4oCZdCByZWNlaXZlIHlvdXIgb3JkZXIgYWZ0ZXIgMzAgbWludXRlcyBvZiBnZXR0aW5nIHRoZSBuZXR3b3JrIGNvbmZpcm1hdGlvbi4gQnV0IElmIHlvdSB3YW50IHRvIGtub3cgYWJvdXQgeW91ciBvcmRlciBjb25kaXRpb24sIHlvdSBjYW4gYWx3YXlzIHNlbmQgdXMgYW4gZW1haWwgdG8gb3VyIHN1cHBvcnQgb3IgY29udGFjdCB1cyB2aWEgdGhlIGxpdmUgY2hhdCBvbiBvdXIgd2Vic2l0ZSBvciAiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7IHQ6IDQsIGs6ICJhY3Rpb24iIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0OiAzLAogICAgICAgICAgICAgIHY6ICIuIFN1Ym1pdHRpbmcgYSB0aWNrZXQgaXMgYW5vdGhlciB3YXkgdG8gZm9sbG93IHlvdXIgb3JkZXIuIFdlIHdvcmsgYXJvdW5kIHRoZSBjbG9jayB0byBlbnN1cmUgeW91ciBvcmRlciBpcyB0YWtpbmcgY2FyZSBvZiBhbmQgeW91IGdldCB0aGUgc3VwcG9ydCB5b3UgbWlnaHQgbmVlZC4iLAogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICBdLAogIHBlcmZlY3RfZV92b3VjaGVyOiB7CiAgICBtZXRhOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCdXkgU2VsbCBQZXJmZWN0bW9uZXkgVm91Y2hlciIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIk5Db25uZWN0IHdpbGwgZW5hYmxlIHlvdSB0byBidXkgUE0gdm91Y2hlciB2aWEgYSB3aWRlIHZhcmlldHkgb2YgY3J5cHRvIGFuZCBkaWdpdGFsIGN1cnJlbmNpZXMuIEFzbyB5b3UgY2FuIHJlZGVlbSBQZXJmZWN0IE1vbmV5IEUtVm91Y2hlciBvbiBOQ29ubmVjdCBhbmQgcmVjZWl2ZSB0aGUgY3VycmVuY3kgb2YgeW91ciBjaG9pY2UuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIGhlcm86IHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkJ1eSBhbmQgUmVkZWVtIFBlcmZlY3QgTW9uZXkgRS1Wb3VjaGVyIHdpdGggSGlFeGhjYW5nZSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgc3VidGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkFzIGEgY2VydGlmaWVkIFBlcmZlY3QgTW9uZXkgUGFydG5lciwgTkNvbm5lY3Qgd2lsbCBlbmFibGUgeW91IHRvIGNyZWF0ZSB5b3VyIFBNIHZvdWNoZXIgdmlhIGEgd2lkZSB2YXJpZXR5IG9mIGNyeXB0byBhbmQgZGlnaXRhbCBjdXJyZW5jaWVzLiBGdXJ0aGVybW9yZSwgeW91IGNhbiByZWRlZW0gdGhlIFBNIGUtdm91Y2hlciBvbiBOQ29ubmVjdCBhbmQgcmVjZWl2ZSB0aGUgY3VycmVuY3kgb2YgeW91ciBjaG9pY2UuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBjdGE6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdlbmVyYXRlIFBlcmZlY3QgTW9uZXkgVm91Y2hlciIgfSwKICAgICAgfSwKICAgIH0sCiAgICB2aWRlbzogewogICAgICB0aXRsZTogWwogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IHRvIE1ha2UiIH0gfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBlcmZlY3QgTW9uZXkgRS1Wb3VjaGVyPyIgfSB9LAogICAgICBdLAogICAgICBzdWJ0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBbGwgaW4gMyBlYXN5IHN0ZXBzOiIgfSB9LAogICAgfSwKICAgIHdoYXRJc1ZvdWNoZXI6IHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldoYXQgaXMgYSBQZXJmZWN0IE1vbmV5IEUtVm91Y2hlcj8iIH0sCiAgICAgIH0sCiAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJBbiBlLXZvdWNoZXIgaXMgYW4gaW5zdGFudGx5IHJlZGVlbWFibGUgZGlnaXRhbCBjaGVxdWUgd2l0aCBudW1lcm91cyBhcHBsaWNhdGlvbnMuIE5Db25uZWN0IHdpbGwgZW5hYmxlIHlvdSB0byBwYXkgZm9yIHlvdXIgUE0gdm91Y2hlciB3aXRoIHZhcmlvdXMgZGlnaXRhbCBhc3NldHMgYW5kIGRvZXMgbm90IGNoYXJnZSBhbnkgZXh0cmEgZmVlcy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJHZXQgWW91ciBQTSBWb3VjaGVyISIgfSB9LAogICAgfSwKICAgIG1ha2VQZXJmZWN0OiBbCiAgICAgIHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjEuIFNlbGVjdCBZb3VyIFBheW1lbnQgTWV0aG9kIiB9LAogICAgICAgIH0sCiAgICAgICAgc3VidGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJGaXJzdCwgY2hvb3NlIHlvdXIgcHJlZmVycmVkIGN1cnJlbmN5IGZvciBwYXltZW50IGluIHRoZSDigJxZb3UgU2VuZOKAnSBzZWN0aW9uIGFuZCBQTSBWb3VjaGVyIGluIHRoZSDigJxXZSBTZW5k4oCdIHNlY3Rpb24gb24gTkNvbm5lY3QuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjIuIE1ha2UgdGhlIFBheW1lbnQiIH0gfSwKICAgICAgICBzdWJ0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlByZXNzIHRoZSDigJxQYXkgT3JkZXLigJ0gYnV0dG9uIG9uY2UgeW91IGhhdmUgdHJhbnNmZXJyZWQgdGhlIGZ1bmRzIGFuZCBtYWRlIHRoZSBwYXltZW50IHRvIE5Db25uZWN04oCZcyBhY2NvdW50LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIjMuIFJlY2VpdmUgWW91ciBQZXJmZWN0IE1vbmV5IFZvdWNoZXIgQ29kZSIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgc3VidGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJOQ29ubmVjdCB3aWxsIHNob3cgeW91ciBFLVZvdWNoZXIgaW5mb3JtYXRpb24gaW4gdGhlIGFkbWluIGRlc2NyaXB0aW9uIHNlY3Rpb24gb25jZSB5b3VyIG9yZGVyIGlzIGNvbXBsZXRlZC4gWW91IGNhbiB1c2UgeW91ciB0cmFjayBJRCB0byBhY2Nlc3MgdGhlIGluZm9ybWF0aW9uIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIF0sCiAgICBwYXlGb3I6IHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlBheSBmb3IgUGVyZmVjdE1vbmV5IFZvdWNoZXIgd2l0aCBDcnlwdG8iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHN1YnRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJPdGhlciB0aGFuIFBlcmZlY3QgTW9uZXkgVVNELCB5b3UgY2FuIG1ha2UgdGhlIHBheW1lbnQgd2l0aCB2YXJpb3VzIGUtY3VycmVuY2llcyBzdWNoIGFzLCBQYXllZXIgYW5kIEFkdkNhc2guIE9yLCB5b3UgY2FuIG1ha2UgdGhlIHBheW1lbnQgdmlhIHBvcHVsYXIgY3J5cHRvY3VycmVuY2llcyBzdWNoIGFzIEJpdGNvaW4gKEJUQyksIFRldGhlciAoVVNEVCksIEV0aGVyZXVtIChFVEgpIGFuZCBtb3JlLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdyYWIgWW91ciBQTSBWb3VjaGVyIiB9IH0sCiAgICB9LAogICAgcmVkZWVtOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cgdG8gUmVkZWVtIFBlcmZlY3QgTW9uZXkgRS1Wb3VjaGVyPyIgfSwKICAgICAgfSwKICAgICAgc3VidGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkNhc2hpbmcgb3V0IHlvdXIgUGVyZmVjdCBNb25leSB2b3VjaGVyIGlzIHN1cGVyIGVhc3khIEFsbCB5b3UgbmVlZCBpcyB0byBzaGFyZSB5b3VyIFZvdWNoZXIgYW5kIGFjdGl2YXRpb24gY29kZSwgdGhlbiBOQ29ubmVjdCB3aWxsIGluc3RhbnRseSBzZW5kIHRoZSBjdXJyZW5jeSBvZiB5b3VyIGNob2ljZSB0byB5b3VyIHdhbGxldCEgWW91IGdldCB0byBjaG9vc2UgaG93IHRvIGdldCBwYWlkLCB3aXRob3V0IGFueSBoaWRkZW4gZmVlcy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZWRlZW0gRS1Wb3VjaGVyIiB9IH0sCiAgICB9LAogICAgZmFxOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZBUSIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiIFlvdXIgUXVlc3Rpb25zIEFuc3dlcmVkIGhlcmUhIiB9LAogICAgICB9LAogICAgICBtZXRhVGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTkNvbm5lY3QgRkFRIiB9IH0sCiAgICAgIG1ldGFEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiRmluZCB0aGUgYW5zd2VyIHRvIHNvbWUgb2YgdGhlIG1vc3QgZnJlcXVlbnRseSBhc2tlZCBxdWVzdGlvbnMgcmVnYXJkaW5nIG91ciBjcnlwdG8gZXhjaGFuZ2Ugc2VydmljZXMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBpdGVtczogWwogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkhvdyBkbyBJIFJlY2VpdmUgbXkgUGVyZmVjdCBNb25leSBWb3VjaGVyIGFuZCBBY3RpdmF0aW9uIENvZGU/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGVuIHRoZSBvcmRlciBpcyBkb25lIHN1Y2Nlc3NmdWxseSwgTkNvbm5lY3QgY3VzdG9tZXJzIGNhbiBpbnNlcnQgdGhlaXIg4oCcVHJhY2sgSWTigJ0gaW4gdGhlIGRlc2lnbmF0ZWQgZmllbGQgb24gdGhlIHdlYnNpdGUgYW5kIHJlY2VpdmUgdGhlaXIgY29kZSBpbiB0aGUgb3JkZXIgZGV0YWlsIHNlY3Rpb24uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEb2VzIE5Db25uZWN0IGNoYXJnZSBleHRyYSBmZWVzIG9uIGNyZWF0aW5nIG9yIHJlZGVlbWluZyBQZXJmZWN0IE1vbmV5IGUtdm91Y2hlcnM/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJObywgTkNvbm5lY3QgaXMgYW4gb2ZmaWNpYWwgUGVyZmVjdCBNb25leSBwYXJ0bmVyIGFuZCB3aWxsIG5vdCBjaGFyZ2UgYW55IGhpZGRlbiBmZWVzLiBUaGUgZXhhY3QgYW1vdW50IG9mIGZlZXMgYXJlIGNsZWFybHkgc3RhdGVkIHdpdGhpbiB0aGUgZXhjaGFuZ2UgYm94LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ2FuIEkgYnV5IGEgUGVyZmVjdCBNb25leSB2b3VjaGVyIHZpYSBjcnlwdG9jdXJyZW5jaWVzPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiWWVzLCB5b3UgY2FuIGNyZWF0ZSBhbiBlLXZvdWNoZXIgb24gTkNvbm5lY3QgYW5kIHBheSB3aXRoIGEgdmFyaWV0eSBvZiBjcnlwdG8gYXNzZXRzIHN1Y2ggYXMgQml0Y29pbiwgVGV0aGVyLCBVU0QgQ29pbiwgRXRoZXJldW0gZXRjLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSG93IGRvIEkgcmVkZWVtIG15IFBlcmZlY3QgTW9uZXkgdm91Y2hlcj8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIllvdSBjYW4gZWFzaWx5IHNlbGVjdCB0aGUgY3VycmVuY3kgeW91IHdhbnQgdG8gcmVjZWl2ZSwgdGhlbiBzaGFyZSB5b3VyIHZvdWNoZXIgY29kZSBhbmQgdm91Y2hlciBhY3RpdmF0aW9uIGNvZGUgd2l0aCBOQ29ubmVjdCB0byBtYWtlIHRoZSBwYXltZW50IHRvIHlvdXIgYWNjb3VudC4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkRvIEkgbmVlZCB0byBzaWduIHVwIHRvIHJlZGVlbSBteSBQZXJmZWN0IE1vbmV5IHZvdWNoZXI/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJObywgYWxsIHlvdSBuZWVkIGlzIHRvIHNoYXJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyB3aXRoIE5Db25uZWN0IHRvIHJlZGVlbSB5b3VyIGUtdm91Y2hlci4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkRvIEkgbmVlZCB0byBoYXZlIGEgUGVyZmVjdCBNb25leSBhY2NvdW50IHRvIGJ1eSBvciByZWRlZW0gYW4gZS12b3VjaGVyPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ3VzdG9tZXJzIGNhbiBidXkgYW5kIHJlZGVlbSBQTSB2b3VjaGVycyBvbiBOQ29ubmVjdCBwbGF0Zm9ybSB3aXRob3V0IHRoZSBuZWVkIHRvIGhhdmUgYSBQZXJmZWN0IE1vbmV5IGFjY291bnQuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJcyB0aGVyZSBhbnkgbGltaXQgb24gY3JlYXRpbmcgYSBQZXJmZWN0IE1vbmV5IHZvdWNoZXI/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJObywgdGhlcmUgaXMgbm8gbGltaXQgb24gdGhlIGUtdm91Y2hlciBhbW91bnQuIFRoZSBjdXN0b21lcnMgbXVzdCBjaG9vc2UgdGhlaXIgZGVzaXJlZCBhbW91bnQgZm9yIHRoZSB2b3VjaGVyIHdpdGhpbiB0aGUgbGltaXRzIG9mIE5Db25uZWN0IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGF0IGRvIEkgZG8gaWYgTkNvbm5lY3QgZGVjbGFyZXMgbXkgVm91Y2hlciBpZCBhcyBpbnZhbGlkPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSW4gc3VjaCBhIGNhc2UsIHlvdSBjYW4gY29udGFjdCBOQ29ubmVjdCBzdXBwb3J0IGFuZCBhc2sgZm9yIGZ1cnRoZXIgaW5zdHJ1Y3Rpb25zLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogICAgdGVybXNfb2Zfc2VydmljZXM6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGVybXMgb2YgU2VydmljZSIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogWwogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGxlYXNlIHNlZSBOQ29ubmVjdCIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGVybXMgYW5kIENvbmRpdGlvbnMiIH0gfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiZm9yIHJlbGV2YW50IGluZm9ybWF0aW9uIHJlZ2FyZGluZyB1c2luZyB0aGlzIHNlcnZpY2UuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICBwcm9zOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJOQ29ubmVjdCwgWW91ciBPbmUtU3RvcCBTaG9wIGZvciBQZXJmZWN0IE1vbmV5IEUtVm91Y2hlciIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgaXRlbXM6IFsKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJMYXJnZSBTZWxlY3Rpb24gb2YgQ3VycmVuY2llcyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJZb3Ugd2lsbCBoYXZlIGxvdHMgb2Ygb3B0aW9ucyBpbiB0ZXJtcyBvZiBjcnlwdG8gYW5kIGUtY3VycmVuY2llcyB3aGlsZSBleGNoYW5naW5nLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gSGlkZGVuIEZlZXMiIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIldoYXQgeW91IHNlZSBpcyBleGFjdGx5IGhvdyBtdWNoIHdlIGNoYXJnZSwgdGhlcmUgaXMgbm8gaGlkZGVuIGZlZSEiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIjI0LzcgT25saW5lIFN1cHBvcnQiIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5lZWQgc3VwcG9ydD8gT3VyIHRlYW0gaXMgcmVhZHkgdG8gYW5zd2VyIGFsbCB5b3VyIHF1ZXN0aW9ucyAyNC83IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIYXNzbGUtRnJlZSBLWUMiIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkF0IE5Db25uZWN0LCBXZSB3b27igJl0IHNsb3cgeW91IGRvd24gd2l0aCBhbm5veWluZyBxdWVzdGlvbnMuIEl04oCZcyBhbGwgZmFzdCBhbmQgaXTigJlzIGFsbCBlYXN5ISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogIH0sCiAgcmVjZWl2ZV9wYXlwYWw6IHsKICAgIG1ldGE6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgUGF5UGFsIiB9IH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3UgY2FuIGV4Y2hhbmdlIHlvdXIgUGF5UGFsIHRvIGEgd2lkZSB2YXJpZXR5IG9mIGRpZ2l0YWwgYW5kIGNyeXB0byBhc3NldHMgb24gTkNvbm5lY3Qgd2l0aCB1bnBhcmFsbGVsZWQgcHJpdmFjeS4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgaGVybzogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiRXhjaGFuZ2UgUGF5UGFsIHRvIEJpdGNvaW5zIG9yIFlvdXIgUHJlZmVycmVkIEN1cnJlbmN5IiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiWWVzLCB5b3UgY2FuIGV4Y2hhbmdlIHlvdXIgUGF5UGFsIHRvIGEgd2lkZSB2YXJpZXR5IG9mIGRpZ2l0YWwgYW5kIGNyeXB0byBhc3NldHMgb24gTkNvbm5lY3Qgd2l0aCB1bnBhcmFsbGVsZWQgcHJpdmFjeS4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHF1b3RlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJHZXQgYSBmcmVlIHF1b3RlIGZyb20gTkNvbm5lY3Q6IiB9LAogICAgICB9LAogICAgICBlbWFpbFBsYWNlaG9sZGVyOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbnRlciBZb3VyIEVtYWlsbCBBZGRyZXNzIiB9LAogICAgICB9LAogICAgICBzdWJtaXQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3VibWl0IiB9IH0sCiAgICB9LAogICAgYmVuZWZpdDogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiV2hvIGNhbiBCZW5lZml0IHRoZSBtb3N0IEZyb20gU3dhcHBpbmcgUGF5UGFsPyIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIldpdGggdGhpcyBzZXJ2aWNlLCBOQ29ubmVjdCBoYXMgZWxpbWluYXRlZCBhbGwgdGhlIGRvd25zaWRlcyBvZiBQYXlQYWwgUGF5bWVudHMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBpdGVtczogWwogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRnJlZWxhbmNlcnMiIH0gfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSW5kaXZpZHVhbHMgd2l0aCByZXN0cmljdGVkIGFjY2VzcyB0byBQYXlQYWwiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJUaG9zZSB3aG8gd2FudCB0byBzYXZlIG9uIGV4Y2hhbmdlIGZlZXMiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgICBjdGE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiR2V0IGEgUXVvdGUgTm93ISIgfSB9LAogICAgfSwKICAgIHJldmlld3M6IHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogInRydXN0ZWQgYnkgb3ZlciArNTAwIEN1c3RvbWVyIHdvcmxkd2lkZSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgYmVzdGNoYW5nZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmV2aWV3cyBvbiBCZXN0Q2hhbmdlIiB9LAogICAgICB9LAogICAgICB0cnVzdHBpbG90OiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZXZpZXdzIG9uIFRydXN0UGlsb3QiIH0sCiAgICAgIH0sCiAgICAgIGNvbW1lbnRzOiB7CiAgICAgICAgZmlyc3Q6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiTkNvbm5lY3QgaXMgdGhlIEdyZWF0IEV4Y2hhbmdlLiBXaXRoaW4gNSBtaW51dGVzIHRoZXkgY29tcGxldGVkIG15IHRyYW5zYWN0aW9uIHdpdGggdGhlIGxvd2VzdCBmZWUuIFlvdSBjYW4gdHJ1c3QgYW5kIHByb2NlZWQgd2l0aCB0aGVtLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJGaXJzdCB0aW1lIHRyeWluZyB0aGlzIHNlcnZpY2Ugc28gbmF0dXJhbGx5IEkgd2FzIGEgYml0IHdvcnJpZWQgYnV0IGFmdGVyIGEgZmV3IGhvdXJzIGV2ZXJ5dGhpbmcgd2VudCB0aHJvdWdoIGFzIGl0IHdhcyBzdXBwb3NlZCB0by4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSSB3YXMgYW54aW91cyB0byB1c2UgdGhlaXIgc2VydmljZSwgYnV0IHRoZXkgbWFuYWdlZCB0byBnZXQgbXkgY29uZmlkZW5jZSB3aXRoIGNvdXJ0ZXN5IGFuZCBwcm9tcHRseSByZXNwb25kaW5nIHRvIG15IHF1ZXJpZXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkFzIGFsd2F5cyBpJ20gc28gcGxlYXNlZCwgSSB0cmFuc2ZlciBMVEMgdG8gUGF5UGFsIGFuZCB0aGVuIHdlbnQgdG8gc2xlZXAsIGJ5IHRoZSB0aW1lIGkgd29rZSB1cCwgSSBjaGVjayBteSBtYWlsLCBQYXlQYWwgcGF5bWVudHMgd2VyZSBzdWNjZXNzZnVsbHkgcmVjZWl2ZWQuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkkgdHJhbnNmZXJyZWQgZnJvbSBVU1REIHRvIFBheVBhbC4gSW4gZ2VuZXJhbCwgdGhlIGRlYWwgd2VudCB0aHJvdWdoLiBJIGNvbnNpZGVyIHRoZSBleHBlcmllbmNlIHN1Y2Nlc3NmdWwuIEkgd2lsbCBhcHBseSBhZ2Fpbi4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIHNlY29uZDogWwogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJHcmVhdCBleGNoYW5nZSwgd29ya3MgZXZlcnkgdGltZS4gUGF5UGFsIHdpdGhkcmF3YWwgdGFrZXMgYWJvdXQgMjQgaG91cnMuICIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJbnRlcmZhY2UgaXMgY29tZm9ydGFibGUgYW5kIGdpdmVzIHlvdSBhbGwgbmVjZXNzYXJ5IGluZm8gb24gdHJhbnNhY3Rpb25zLiBKdXN0IGZvbGxvdyBzaW1wbGUgc3RlcHMgYW5kIHlvdSB3aWxsIGRvIGZpbmUuRXhjaGFuZ2UuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkxhc3QgY291cGxlIG9mIGV4Y2hhbmdlcyB3YXMgbWFudWFsIGFuZCBkb25lIGluIDE1IG1pbnV0ZXMgYm90aCAoZXhjZXB0IFBheVBhbCwgd2hpY2ggdGhvdWdoIHRvb2sgMjQgaG91cnMgYW5kIHdhcyBleHBlbnNpdmUpLiBSYXRlIHdhcyBnb29kLiAiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAib25saW5lIHN1cHBvcnQgc3RhZmYgaXMgaGVscGZ1bCBpbiBnaXZpbmcgcHJvYmFibGUgdGltZSBvZiBleGNoYW5nZSAsIGV2ZW4gdGhvdWdoIG15IGV4Y2hhbmdlIGFtb3VudCB3YXMgbm90IGJpZy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAibXkgVVNEIGFycml2ZWQgaW50byBteSBwYXlwYWwgYWNjb3VudCBpbiBhYm91dCAxLTIgaG91cnMuIFZlcnkgaGFwcHkgd2l0aCB0aGUgZXhwZXJpZW5jZSBhbmQgd2lsbCBkZWZpbml0ZWx5IGJlIHV0aWxpemluZyB0aGVpciBzZXJ2aWNlIGFnYWluISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgIH0sCiAgICB9LAogICAgbWFrZUJldHRlcjogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2hhdCBtYWtlcyBOQ29ubmVjdCBCZXR0ZXI/IiB9LAogICAgICB9LAogICAgICBpdGVtczogWwogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZ1bGwgQW5vbnltaXR5IiB9IH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJVdGlsaXppbmcgTkNvbm5lY3QgdG8gRXhjaGFuZ2UgUGF5UGFsIHByb3ZpZGVzIGJldHRlciBwcml2YWN5IGFuZCBzZWN1cml0eSBhbmQgbGVzcyByZXN0cmljdGlvbnMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJNb3JlIEV4Y2hhbmdlIE9wdGlvbnMiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiWW91IHdpbGwgaGF2ZSB0aGUgb3B0aW9uIHRvIGNvbnZlcnQgUGF5UGFsIHRvIHRoZSBjcnlwdG9jdXJyZW5jaWVzIGFuZCBlLWN1cnJlbmNpZXMgd2l0aG91dCBwYXlpbmcgYW55IGV4dHJhIGZlZXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJGaW5hbmNpYWwgRnJlZWRvbSIgfSB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiV2l0aCBvciB3aXRob3V0IGEgUGF5UGFsIGFjY291bnQsIHlvdSB3aWxsIGVuam95IHRoZSBhYmlsaXR5IHRvIGV4Y2hhbmdlIFBheVBhbCB3aXRob3V0IGdlb2dyYXBoaWNhbCByZXN0cmljdGlvbnMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICBzZWFtbGVzczogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTZWFtbGVzcyBXb3JrZmxvdyIgfSB9LAogICAgICBzdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiU3VibWl0IFlvdXIgT3JkZXIgYW5kIEV4cGVyaWVuY2UgdGhlIFNtb290aCBKb3VybmV5IHdpdGggTkNvbm5lY3QiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHRhYnM6IFsKICAgICAgICB7IHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIknigJltIGEgZnJlZWxhbmNlciIgfSB9IH0sCiAgICAgICAgewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhbnNmZXIgZnJvbSBQZXJzb25hbCBQYXlQYWwiIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICAgIHRhYjogewogICAgICAgIGZyZWVsYW5jZXI6IHsKICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkknbSBhIGZyZWVsYW5jZXIiIH0gfSwKICAgICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgICAgczogIkdldCBpbiBUb3VjaCBXaXRoIE91ciBTYWxlcyBUZWFtIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgICAgczogIkJlZm9yZSBhbnkgc3RlcHMsIHlvdSBzaG91bGQgc3VibWl0IGEgcmVxdWVzdCB0byBleGNoYW5nZSBQYXlQYWwuIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgICBzOiAiUmVjZWl2ZSBvdXIgUGF5UGFsIEFjY291bnQgRGV0YWlscyIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICAgIHM6ICJXZSByZWNlaXZlIHRoZSBkZXBvc2l0IG9uIHlvdXIgYmVoYWxmIG9uIHRoZSBQYXlQYWwgYWNjb3VudCBwcm92aWRlZCB0byB5b3UgYW5kIGV4Y2hhbmdlIGl0IGluIG5vIHRpbWUhIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNreSdzIHRoZSBMaW1pdCIgfSB9LAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgICBzOiAiVHJhbnNmZXJyaW5nIGZyb20gbGVnaXRpbWF0ZSBjb21wYW55IFBheVBhbCBhY2NvdW50cywgVGhlcmUncyBubyBsaW1pdCB0byB5b3VyIGV4Y2hhbmdlLiIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNob29zZSBZb3VyIFByZWZlcnJlZCBDdXJyZW5jeSIgfSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgICBzOiAiQ2hvb3NlIHdoYXQgeW91IHdhbnQgdG8gcmVjZWl2ZSBpbiBleGNoYW5nZSBmb3IgdGhlIHRyYW5zZmVycmVkIFBheVBhbCBhbW91bnQuIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBwZXJzb25hbF9wYXlwYWw6IHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRyYW5zZmVyIGZyb20gUGVyc29uYWwgUGF5UGFsIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgICAgczogIkdldCBpbiBUb3VjaCBXaXRoIE91ciBTYWxlcyBUZWFtIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgICAgczogIkJlZm9yZSBhbnkgc3RlcHMsIHlvdSBzaG91bGQgc3VibWl0IGEgcmVxdWVzdCB0byBleGNoYW5nZSBQYXlQYWwuIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgICBzOiAiUmVjZWl2ZSBvdXIgUGF5UGFsIEFjY291bnQgRGV0YWlscyIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICAgIHM6ICJDb2xsZWN0IFRyYW5zYWN0aW9uIERldGFpbHMgQmVmb3JlIEVhY2ggRXhjaGFuZ2U7IE91ciBQYXlQYWwgbWlnaHQgY2hhbmdlLiIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk1pbmQgdGhlIHRyYW5zZmVyIExpbWl0cyIgfSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgICBzOiAiU2VuZGluZyBmcm9tIHlvdXIgb3duIGFjY291bnQsIHdlIHN0YXJ0IHdpdGggYSAkMTAwIGxpbWl0IGFuZCBpbmNyZWFzZSBpdCBncmFkdWFsbHkuIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ2hvb3NlIFlvdXIgUHJlZmVycmVkIEN1cnJlbmN5IiB9LAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICAgIHM6ICJDaG9vc2Ugd2hhdCB5b3Ugd2FudCB0byByZWNlaXZlIGluIGV4Y2hhbmdlIGZvciB0aGUgdHJhbnNmZXJyZWQgUGF5UGFsIGFtb3VudC4gIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICBmYXE6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRkFRIiB9IH0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJZb3VyIFF1ZXN0aW9ucyBBbnN3ZXJkIGhlcmUhIiB9LAogICAgICB9LAogICAgICBzdWJ0aXRsZTogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEaWRuJ3QgZmluZCB5b3VyIHF1ZXN0aW9uIGhlcmU/IiB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkRvbid0IHdvcnJ5ISBDb250YWN0IG91ciAyNC83IGN1c3RvbWVyIHN1cHBvcnQiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgICBhbGxJbk9uZVRpdGxlOiBbCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJOQ29ubmVjdCwiIH0gfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGhlIFVsdGltYXRlIHNvbHV0aW9uIGZvciBQYXlQYWwiIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgICAgYnV0dG9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDaGF0IFdpdGggQ3VzdG9tZXIgU3VwcG9ydCIgfSwKICAgICAgfSwKICAgICAgZnJlZWxhbmNlcjogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIknigJltIGEgRnJlZWxhbmNlciIgfSB9LAogICAgICAgIHF1ZXN0aW9uczogWwogICAgICAgICAgewogICAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiSSBkb27igJl0IGhhdmUgYSBQYXlQYWwgYWNjb3VudCBvZiBteSBvd24uIEhvdyBjYW4gSSB0cmFuc2ZlciBteSBlYXJuaW5ncyB0byB5b3VyIFBheVBhbCBhbmQgY2FzaCB0aGVtIG91dD8iLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJJZiB5b3UgZG9u4oCZdCBoYXZlIGEgUGF5UGFsIGFjY291bnQgeW91cnNlbGYsIHlvdSBjYW4gdXNlIE5Db25uZWN0IHNlcnZpY2VzIHRvIHJlY2VpdmUgeW91ciBlYXJuaW5ncyB0aHJvdWdoIG91ciBhY2NvdW50cyBhbmQgcmVjZWl2ZSB0aGUgZXF1aXZhbGVudCBpbiB0aGUgY3VycmVuY3kgb2YgeW91ciBjaG9pY2UuIFRvIHN0YXJ0IHRoZSBwcm9jZXNzLCBQbGVhc2UgZW50ZXIgeW91ciBlbWFpbCBhZGRyZXNzIGluIHRoZSBmb3JtIG9uIHRoaXMgcGFnZS4gV2XigJlsbCBnZXQgYmFjayB0byB5b3UgYXMgc29vbiBhcyBwb3NzaWJsZSIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJBcmUgdGhlcmUgYW55IGxpbWl0cyBhYm91dCB0aGUgYW1vdW50IG9mIG1vbmV5IHNlbnQgdG8geW91ciBQYXlQYWwgYWNjb3VudHMgZnJvbSBmcmVlbGFuY2luZyB3ZWJzaXRlcz8iLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJJdCBkZXBlbmRzIG9uIHRoZSB3ZWJzaXRlIHRoYXQgeW91IGFyZSBjb2xsYWJvcmF0aW5nIHdpdGguIFVzdWFsbHksIGlmIHRoZSB3ZWJzaXRlIGlzIHdlbGwta25vd24sIHRoZXJlIGFyZSBubyBsaW1pdHMuIE91ciBjdXN0b21lciBzZXJ2aWNlIHdpbGwgYW5hbHl6ZSB0aGUgd2Vic2l0ZSBhbmQgbGV0IHlvdSBrbm93IGFib3V0IHRoZSBkZXBvc2l0IGxpbWl0cyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJXaGF0IGNhbiBJIHJlY2VpdmUgaW4gZXhjaGFuZ2UgZm9yIHRoZSBQYXlQYWwgdGhhdCBpcyBkZXBvc2l0ZWQgdG8geW91ciBhY2NvdW50cz8iLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJZb3UgaGF2ZSBhIHdpZGUgdmFyaWV0eSBvZiBjaG9pY2VzIHNpbmNlIE5Db25uZWN0IHN1cHBvcnRzIHZhcmlvdXMgY3J5cHRvY3VycmVuY3kgYW5kIGRpZ2l0YWwgY3VycmVuY2llcy4gV2VibW9uZXksIFBlcmZlY3QgTW9uZXksIFBheWVlciwgYW5kIFVTRFQgVGV0aGVyIGFyZSBhbW9uZyB0aGUgbW9zdCBwb3B1bGFyIGN1cnJlbmNpZXMgZnJlZWxhbmNlcnMgd2FudCBpbiBleGNoYW5nZSBmb3IgdGhlaXIgUGF5UGFsIGVhcm5pbmdzLiIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICAgIHM6ICJEbyBJIGhhdmUgdG8gZ28gdGhyb3VnaCB0aGUgZXhjaGFuZ2UgcHJvY2VzcyBmb3IgdGhpcyBwdXJwb3NlPyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIk5vLCBzaW5jZSB0aGUgc2VydmljZSBpcyBhdCB0aGUgYmVnaW5uaW5nIHN0YWdlcyBub3csIGFsbCBvZiB0aGUgc3RlcHMgZnJvbSBwbGFjaW5nIHRoZSBvcmRlciB0byByZWNlaXZpbmcgeW91ciBtb25leSB3aWxsIGJlIGhhbmRsZWQgZGlyZWN0bHkgYnkgb3VyIGN1c3RvbWVyIHN1cHBvcnQgYW5kIGZpbmFuY2lhbCBkZXBhcnRtZW50LiDQndGD0LbQvdC+INC70Lgg0LzQvdC1INC/0YDQvtC50YLQuCDQv9GA0L7RhtC10YHRgSDQvtCx0LzQtdC90LAg0LIg0Y3RgtC+0Lwg0YHQu9GD0YfQsNC1PyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgfSwKICAgICAgdHJhbnNmZXJGcm9tQWNjb3VudDogewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhbnNmZXIgZnJvbSBQZXJzb25hbCBQYXlQYWwiIH0sCiAgICAgICAgfSwKICAgICAgICBxdWVzdGlvbnM6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIkhvdyBjYW4gSSB0cmFuc2ZlciBmcm9tIG15IFBheVBhbCBhY2NvdW50IHRvIE5Db25uZWN04oCZcyBQYXlQYWw/IiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiRWFzaWx5IGVudGVyIHlvdXIgZW1haWwgYWRkcmVzcyBpbiB0aGUgZm9ybSBvbiB0aGlzIHBhZ2UgYW5kIG91ciBjdXN0b21lciBzZXJ2aWNlIHJlcHJlc2VudGF0aXZlcyB3aWxsIGdldCBiYWNrIHRvIHlvdSB0byBwcm92aWRlIHlvdSB3aXRoIGEgUGF5UGFsIGFjY291bnQgdG8gdHJhbnNmZXIgeW91ciBmdW5kcyB0by4iLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiQXJlIHRoZXJlIGFueSBsaW1pdHMgb24gdGhlIGFtb3VudCBJIGNhbiBleGNoYW5nZSB0aHJvdWdoIHRoaXMgbWV0aG9kPyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIlRoZXJlIGFyZSBjZXJ0YWluIGxpbWl0cyB3aGVuIHlvdSBhcmUgc2VuZGluZyB0aGUgbW9uZXkgZnJvbSB5b3VyIHBlcnNvbmFsIFBheVBhbCBhY2NvdW50LiBCdXQgdGhvc2UgbGltaXRzIHdpbGwgaW5jcmVhc2UgZHVyaW5nIHRoZSB0aW1lIGFuZCBiYXNlZCBvbiB0aGUgbnVtYmVyIGFuZCB0aGUgYW1vdW50IG9mIHlvdXIgb3JkZXJzLiBXZSB3aWxsIHByb3ZpZGUgeW91IHdpdGggbW9yZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhvc2UgbGltaXRzIG9uY2Ugd2UgZ2V0IGluIGNvbnRhY3Qgd2l0aCB5b3UuIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIldoYXQgY2FuIEkgcmVjZWl2ZSBpbiBleGNoYW5nZSBmb3IgdGhlIFBheVBhbCB0aGF0IGlzIGRlcG9zaXRlZCB0byB5b3VyIGFjY291bnRzPyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIllvdSBoYXZlIGEgd2lkZSB2YXJpZXR5IG9mIGNob2ljZXMgc2luY2UgTkNvbm5lY3Qgc3VwcG9ydHMgdmFyaW91cyBjcnlwdG9jdXJyZW5jeSBhbmQgZGlnaXRhbCBjdXJyZW5jaWVzLiBXZWJtb25leSwgUGVyZmVjdCBNb25leSwgUGF5ZWVyLCBhbmQgVVNEVCBUZXRoZXIgYXJlIGFtb25nIHRoZSBtb3N0IHBvcHVsYXIgY3VycmVuY2llcyBmcmVlbGFuY2VycyB3YW50IGluIGV4Y2hhbmdlIGZvciB0aGVpciBQYXlQYWwgZWFybmluZ3MuIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIkRvIEkgaGF2ZSB0byBnbyB0aHJvdWdoIHRoZSBleGNoYW5nZSBwcm9jZXNzIGZvciB0aGlzIHB1cnBvc2U/IiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiTm8sIHNpbmNlIHRoZSBzZXJ2aWNlIGlzIGF0IHRoZSBiZWdpbm5pbmcgc3RhZ2VzIG5vdywgYWxsIG9mIHRoZSBzdGVwcyBmcm9tIHBsYWNpbmcgdGhlIG9yZGVyIHRvIHJlY2VpdmluZyB5b3VyIG1vbmV5IHdpbGwgYmUgaGFuZGxlZCBkaXJlY3RseSBieSBvdXIgY3VzdG9tZXIgc3VwcG9ydCBhbmQgZmluYW5jaWFsIGRlcGFydG1lbnQuIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICB9LAogICAgfSwKICAgIHJlcXVlc3RFeGNoYW5nZTogewogICAgICB0aXRsZTogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZXF1ZXN0IGFuIEV4Y2hhbmdlIGZvciB5b3VyIFBheVBhbDoiIH0sCiAgICAgICAgfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkxlYXJuIG1vcmUgYWJvdXQgb3VyIG9mZmVyIiB9IH0sCiAgICAgIF0sCiAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJIZWFyIG91ciBvZmZlciBpbiBleGNoYW5nZSBmb3IgeW91ciBQYXlQYWwsIGluIHlvdXIgaW5ib3guIFdl4oCZbGwgZ2V0IGJhYyBrIHRvIHlvdSBvbmNlIHdlIHJlY2VpdmUgeW91ciBlbWFpbCBhZGRyZXNzLiBMZXQgTkNvbm5lY3QgdGFrZSBjYXJlIG9mIHlvdXIgUGF5UGFsIGV4Y2hhbmdlLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgfSwKICBwYXltZW50R2F0ZTogewogICAgbWV0YTogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiT25saW5lIFBheW1lbnQgR2F0ZXdheSBXaXRoIEFueSBDcnlwdG9DdXJyYW5jeSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlB1cmNoYXNlIG9uIGFueSBzaXRlIHdpdGggVmlzYVQgbWFzdGVyQ2FyZCBvciBQYXlQYWwuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHRpdGxlOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJyZWFraW5nIEJhcnJpZXJzIGluIFBheW1lbnRzIiB9LAogICAgfSwKICAgIHN1YnRpdGxlOiBbCiAgICAgIHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkZyb20gVmlzYSB0byBQYXlQYWwsIHlvdXIgY2hvaWNlcyBhcmUgdmFzdCB3aXRoIFBheW1lbnQgR2F0ZS4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkVuam95IHRoZSBmbGV4aWJpbGl0eSBvZiBtdWx0aXBsZSBwYXltZW50IG1ldGhvZHMgdGFpbG9yZWQgdG8geW91ciBuZWVkcy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICBdLAogICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBheSBOb3ciIH0gfSwKICAgIHNvbHV0aW9uczogewogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiT25lIFNvbHV0aW9uIEZvciBBbGwgT3JkZXIgUGF5bWVudHMiIH0sCiAgICAgIH0sCiAgICAgIGl0ZW1zOiBbCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJObyBGZWUiIH0gfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBheSBRdWljayIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gS1lDIiB9IH0sCiAgICAgIF0sCiAgICB9LAogICAgcGF5bWVudF9tZXRob2RzOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaGF0IFBheW1lbnQgTWV0aG9kcyBhcmUgc3VwcG9ydGVkIiB9LAogICAgICB9LAogICAgfSwKICAgIHNlcnZpY2U6IHsKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRoaXMgc2VydmljZSBpcyBleGNsdXNpdmVseSBkZXNpZ25lZCBmb3IgeW91IiwKICAgICAgICB9LAogICAgICB9LAogICAgICBwZXJzb25hbDogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBlcnNvbmFsIiB9IH0sCiAgICAgICAgc3VidGl0bGU6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJPdXIgc2VydmljZSBvZmZlcnMgaW5kaXZpZHVhbHMgYSBjb252ZW5pZW50IHdheSB0byBtYW5hZ2UgcGVyc29uYWwgdHJhbnNhY3Rpb25zLCB3aGV0aGVyIGl0J3MgcGF5aW5nIGJpbGxzLCBtYWtpbmcgcHVyY2hhc2VzLCBvciBDaGFyZ2luZyB0aGUgYWNjb3VudC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZyZWVsYW5jZXIiIH0gfSwKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3R1ZGVudHMiIH0gfSwKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhdmVsZXJzIiB9IH0sCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNob3BwZXJzIiB9IH0sCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdhbWVycyIgfSB9LAogICAgICAgIF0sCiAgICAgIH0sCiAgICAgIGJ1c2luZXNzOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQnVzaW5lc3MiIH0gfSwKICAgICAgICBzdWJ0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIllvdSB3aWxsIGJlbmVmaXQgZnJvbSB0aGUgZWZmaWNpZW5jeSBvZiBvdXIgcGF5bWVudCBzZXJ2aWNlLCBzdWNoIGFzIGludm9pY2luZywgcGF5cm9sbCwgYW5kIHZlbmRvciBwYXltZW50cyAsIHdpdGhvdXQgcGF5aW5nIGFueSBleHRyYSBmZWVzIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBpdGVtczogWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3N0aW5nIiB9IH0sCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkludm9pY2UiIH0gfSwKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5IHNhbGFyeSIgfSB9LAogICAgICAgIF0sCiAgICAgIH0sCiAgICB9LAogICAgcGFydG5lcnNUaXRsZTogewogICAgICB0OiAwLAogICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXZSBDb3ZlciBZb3VyIE9yZGVycyBQYXltZW50IG9uIiB9LAogICAgfSwKICAgIGNvbW1lbnRzOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJUcnVzdGVkIGJ5IG92ZXIgKzUwMCBDdXN0b21lciB3b3JsZHdpZGUiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGJlc3RjaGFuZ2U6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJldmlld3Mgb24gQmVzdENoYW5nZSIgfSwKICAgICAgfSwKICAgICAgdHJ1c3RwaWxvdDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmV2aWV3cyBvbiBUcnVzdFBpbG90IiB9LAogICAgICB9LAogICAgfSwKICAgIHN1cHBvcnQ6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ291bnQgb24gdXMgMjQvNyIgfSB9LAogICAgICBzdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiWW91IGNhbiBjb250YWN0IG91ciBjdXN0b21lciBzdXBwb3J0IHRlYW0uIFdlIGFyZSBvbmxpbmUgYWxsIGRheSwgRXZlcnlkYXkuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBjdGE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3RhcnQgQ29udmVyc2F0aW9uIiB9IH0sCiAgICB9LAogICAgZmFxOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb21tb24gUXVlc3Rpb25zIGFib3V0IE9ubGluZSBQYXltZW50IiB9LAogICAgICB9LAogICAgICBxdWVzdGlvbnM6IFsKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEbyBJIG5lZWQgYSBWaXNhIG9yIE1hc3RlcmNhcmQgYWNjb3VudCB0byB1c2UgdGhlIOKAnE9ubGluZSBQYXltZW50c+KAnSBzZXJ2aWNlPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiTm8sIE9ubGluZSBQYXltZW50cyBpcyBkZXNpZ25lZCBmb3IgdGhvc2Ugd2hvIGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgc2VydmljZXMgZm9yIGFueSByZWFzb24uIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJEb2VzIE5Db25uZWN0IGNoYXJnZSBleHRyYSBmZWVzIGZvciBNYXN0ZXIgY2FyZCBhbmQgVmlzYSDigJxPbmxpbmUgUGF5bWVudHPigJ0gPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVGhlcmUgaXMgbm8gaGlkZGVuIG9yIGZpeGVkIGZlZSBhc3NvY2lhdGVkIHdpdGggT25saW5lIFBheW1lbnQgc2VydmljZS4gQ3VzdG9tZXJzIGNhbiBzZWUgZXhhY3RseSBob3cgbXVjaCB0aGV5IHNlbmQgYW5kIGhvdyBtdWNoIHRoZXkgcmVjZWl2ZSBpbiB0aGUgZGVzaWduYXRlZCBzZWN0aW9uIG9uIHRoZSBleGNoYW5nZSBib3guIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGF0IGluZm9ybWF0aW9uIGRvIEkgaGF2ZSB0byBzaGFyZSBmb3Ig4oCcT25saW5lIFBheW1lbnRz4oCdIEludm9pY2U/IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJTaW5jZSBOQ29ubmVjdCBtYWtlcyB0aGUgcGF5bWVudCBvbiBiZWhhbGYgb2YgdGhlIGN1c3RvbWVyLCB0aGV5IG11c3Qgc2hhcmUgYWxsIHJlbGV2YW50IGRhdGEgaW5jbHVkaW5nIHRoZSBkZXN0aW5hdGlvbiB3ZWJzaXRlIHVybCwgdXNlcm5hbWUsIHBhc3N3b3JkIGFuZCBhbnkgb3RoZXIgcGllY2Ugb2YgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWNlc3NhcnkgZm9yIHRoZSBwdXJjaGFzZS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHRpdGxlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIldpbGwgTkNvbm5lY3Qgc2F2ZSBteSBsb2dpbiBkYXRhPyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiTm8sIE5Db25uZWN0IHdpbGwgZGVsaXZlciB0aGUgcHVyY2hhc2UgZGF0YSB0byB0aGUgY3VzdG9tZXIgYW5kIHdpbGwgbm90IHNhdmUgaXQgb3IgdXNlIGl0IGZvciBhbnkgcHVycG9zZS4gRm9yIHNhZmV0eSBtZWFzdXJlcywgd2UgcmVjb21tZW5kIG91ciBjdXN0b21lcnMgdG8gY2hhbmdlIHRoZWlyIGxvZ2luIGRhdGEgYWZ0ZXIgdGhlIHB1cmNoYXNlIGhhcyBiZWVuIG1hZGUuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJXaGF0IGlmIEkgZG8gbm90IGhhdmUgYW4gYWNjb3VudCBJIHdhbnQgdG8gcHVyY2hhc2UgZnJvbT8iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIk5Db25uZWN0IHdpbGwgbm90IGFjY2VwdCB0aGUgcmVzcG9uc2liaWxpdHkgdG8gY3JlYXRlIGFuIGFjY291bnQgZm9yIHRoZSBjdXN0b21lciBvbiBhIHNwZWNpZmljIHdlYnNpdGUuIEN1c3RvbWVycyBtdXN0IGNyZWF0ZSB0aGVpciBvd24gYWNjb3VudCBiZWZvcmVoYW5kLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogIH0sCiAgcHJvZmlsZURhc2hib2FyZDogewogICAgb3ZlcnZpZXdNZXRhOiB7CiAgICAgIG1ldGFUaXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJVc2VyIFByb2ZpbGUiIH0gfSwKICAgICAgbWV0YURlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJHZW5lcmFsIG92ZXJ2aWV3IG9mIHBsYWNpbmcgYW4gb3JkZXIsIHZpZXdpbmcgeW91ciBhZmZpbGlhdGUsIGFuZCB2aWV3aW5nIHRoZSBsYXN0IDUgb3JkZXJzLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICBvcmRlcnNNZXRhOiB7CiAgICAgIG1ldGFUaXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJPcmRlcnMiIH0gfSwKICAgICAgbWV0YURlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJWaWV3IGFsbCBkZXRhaWxzIG9mIGFsbCBwbGFjZWQgb3JkZXJzIGhlcmUgaW4gTkNvbm5lY3QgZGFzaGJvYXJkJ3Mgb3JkZXIgcGFnZSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICBhZmZpbGlhdGVNZXRhOiB7CiAgICAgIG1ldGFUaXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBZmZpbGlhdGUiIH0gfSwKICAgICAgbWV0YURlc2NyaXB0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJBYmlsaXR5IHRvIGNvcHkgeW91ciBhZmZpbGlhdGUgbGluaywgdmlldyByZWNlaXZlZCBhZmZpbGlhdGUgYW1vdW50cywgcmVxdWVzdCB3aXRoZHJhd2FsLCBhbmQgdmlldyBhZmZpbGlhdGUgaGlzdG9yeSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICBhY2NvdW50TWV0YTogewogICAgICBtZXRhVGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVXNlciBBY2NvdW50IiB9IH0sCiAgICAgIG1ldGFEZXNjcmlwdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQWNjZXNzIGFuZCBhYmlsaXR5IHRvIHVwZGF0ZSB1c2VyIGluZm9ybWF0aW9uLCBzdWNoIGFzIGNoYW5naW5nIHBhc3N3b3JkLCBlbWFpbCwgbW9iaWxlIG51bWJlciwgYW5kIGVuYWJsaW5nIDItU3RlcCB2ZXJpZmljYXRpb24iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgZW1wdHlfc3RhdGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gb3JkZXJzIHlldCIgfSB9LAogICAgbGF5b3V0OiB7CiAgICAgIERhc2hib2FyZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEYXNoYm9hcmQiIH0gfSwKICAgICAgT3JkZXJzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk9yZGVycyIgfSB9LAogICAgICBBZmZpbGlhdGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQWZmaWxpYXRlIFByb2dyYW0iIH0gfSwKICAgICAgQWNjb3VudDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBY2NvdW50IiB9IH0sCiAgICAgIFdhbGxldDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXYWxsZXQiIH0gfSwKICAgICAgT3ZlcnZpZXc6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiT3ZlcnZpZXciIH0gfSwKICAgICAgRGVwb3NpdDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEZXBvc2l0IiB9IH0sCiAgICAgIFdpdGhkcmF3OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldpdGhkcmF3IiB9IH0sCiAgICAgIEFzc2V0czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBc3NldHMiIH0gfSwKICAgICAgVHJhbnNhY3Rpb246IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhbnNhY3Rpb24iIH0gfSwKICAgICAgZGlzY291bnQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGlzY291bnQgQ29kZXMiIH0gfSwKICAgICAgbmV3T3JkZXI6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ3JlYXRlIE5ldyBPcmRlciIgfSB9LAogICAgICBjcmVhdGVPcmRlcjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDcmVhdGUgT3JkZXIiIH0gfSwKICAgICAgbmV3OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5ldyIgfSB9LAogICAgfSwKICAgIGRpc2NvdW50OiB7CiAgICAgIHR5cGU6IHsKICAgICAgICBhbGw6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQWxsIiB9IH0sCiAgICAgICAgYWN0aXZlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFjdGl2ZSIgfSB9LAogICAgICAgIGluYWN0aXZlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4cGlyZWQiIH0gfSwKICAgICAgfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGlzY291bnQgQ29kZSIgfSB9LAogICAgICBjYXJkOiB7CiAgICAgICAgdmFsaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVmFsaWQgVW50aWwiIH0gfSwKICAgICAgICB1c2FnZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUZXJtcyBvZiB1c2UiIH0gfSwKICAgICAgICBsZWZ0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlVzYWdlIGxlZnQiIH0gfSwKICAgICAgICBkaXNjb3VudDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEaXNjb3VudCIgfSB9LAogICAgICAgIG1pbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJNaW4uIE9yZGVyIiB9IH0sCiAgICAgIH0sCiAgICAgIHRhcmdldDogewogICAgICAgIGFsbDogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlRoaXMgY29kZSBjYW4gdXNlIG9uIGFsbCBwYWlycyB3aXRob3V0IGFueSBsaW1pdC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHNlbmQ6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJUaGlzIGNvZGUgY2FuIHVzZSBvbiDigJxZb3Ugc2VuZOKAnSBjdXJyZW5jaWVzOiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgcmVjZWl2ZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlRoaXMgY29kZSBjYW4gdXNlIG9uIOKAnFdlIHNlbmTigJ0gY3VycmVuY2llczoiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIGRpcmVjdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRoaXMgY29kZSBjYW4gdXNlIG9uIHRoZXNlIHBhaXJzOiIgfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIG92ZXJ2aWV3OiB7CiAgICAgIGZpbmFuY2Vfb3ZlcnZpZXc6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZpbmFuY2UgT3ZlcnZpZXciIH0sCiAgICAgIH0sCiAgICAgIGNyZWF0ZU5ld09yZGVyOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDcmVhdGUgTmV3IE9yZGVyIiB9LAogICAgICB9LAogICAgICBjb21pbmdfc29vbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJjb21pbmcgc29vbiIgfSB9LAogICAgICBjYXNoYmFjazogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDYXNoYmFjayIgfSB9LAogICAgICBkZXBvc2l0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRlcG9zaXQiIH0gfSwKICAgICAgYmFsYW5jZV9vdmVydmlldzogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQmFsYW5jZSBPdmVydmlldyIgfSwKICAgICAgfSwKICAgICAgdG90YWxfYXNzZXRzOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFc3QuIFRvdGFsIEFzc2V0cyIgfSwKICAgICAgfSwKICAgICAgYWZmaWxpYXRlX2Vhcm5pbmdzOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBZmZpbGlhdGUgRWFybmluZ3MiIH0sCiAgICAgIH0sCiAgICAgIHF1aWNrX2NvbnZlcnQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUXVpY2sgQ29udmVydCIgfSB9LAogICAgICBjb252ZXJ0X2NyeXB0b19wYXlwYWw6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkNvbnZlcnQgeW91ciBjcnlwdG8gdG8gUGF5UGFsIGluc3RhbnRseSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbm9fcGF5cGFsX2FjY291bnQ6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRvbid0IGhhdmUgYSBQYXlQYWwgYWNjb3VudD8iIH0sCiAgICAgIH0sCiAgICAgIGJ1eV93aXRoX2NyeXB0bzogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQnV5IFdoYXRldmVyIFlvdSBXYW50IE9ubHkgVXNpbmcgQ3J5cHRvIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzdGFydF9wYXltZW50czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdGFydCBQYXltZW50cyIgfSB9LAogICAgICB1bmxvY2tfZGlzY291bnRzOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJVbmxvY2sgRXhjbHVzaXZlIERpc2NvdW50cyIgfSwKICAgICAgfSwKICAgICAgc3BlY2lhbF9jb2RlczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiR2V0IHNwZWNpYWwgY29kZXMgYW5kIGVuam95IGxvd2VyIGZlZXMgb24geW91ciBuZXh0IGV4Y2hhbmdlLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY2xhaW1fY29kZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDbGFpbSBZb3VyIENvZGUiIH0gfSwKICAgICAgb3JkZXI6IHsKICAgICAgICB2aWV3X2FsbDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJWaWV3IEFsbCIgfSB9LAogICAgICAgIGxhdGVzdF9vcmRlcjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJMYXRlc3QgT3JkZXIiIH0gfSwKICAgICAgICB0cmFja19pZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUcmFjayBJRCIgfSB9LAogICAgICAgIGFtb3VudDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBbW91bnQiIH0gfSwKICAgICAgICBkaXJlY3Rpb246IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGlyZWN0aW9uIiB9IH0sCiAgICAgICAgdHhfaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVFggSUQiIH0gfSwKICAgICAgICBzdGF0dXM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3RhdHVzIiB9IH0sCiAgICAgICAgZGF0ZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEYXRlIiB9IH0sCiAgICAgICAgYWN0aW9uOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFjdGlvbiIgfSB9LAogICAgICAgIHN0YXR1c2VzOiB7CiAgICAgICAgICBQRU5ESU5HOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBlbmRpbmciIH0gfSwKICAgICAgICAgIERPTkU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRG9uZSIgfSB9LAogICAgICAgICAgQ0FOQ0VMOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNhbmNlbCIgfSB9LAogICAgICAgICAgUFJPQ0VTU0lORzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQcm9jZXNzaW5nIiB9IH0sCiAgICAgICAgICBVTlBBSUQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVW5wYWlkIiB9IH0sCiAgICAgICAgICBSRUZVTkQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVmdW5kIiB9IH0sCiAgICAgICAgICBTVVNQRU5EOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlN1c3BlbmQiIH0gfSwKICAgICAgICAgIFJFSkVDVDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZWplY3QiIH0gfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIGFmZmlsaWF0ZTogewogICAgICBiYW5uZXI6IHsKICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJOQ29ubmVjdCBBZmZpbGlhdGUiIH0gfSwKICAgICAgICBkZXNjcmlwdGlvbjogWwogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFYXJuIE1vbmV5IGluIFRocmVlIEVhc3kgU3RlcHM6IiB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiUmVnaXN0ZXIgYW5kIEdldCBZb3VyIFVuaXF1ZSBSZWZlcnJhbCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXYWl0IGZvciBUaGVtIHRvIFVzZSBOQ29ubmVjdCIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdldCBQYWlkIHRvIFlvdXIgQWNjb3VudCIgfSB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNob3cgbW9yZSIgfSB9LAogICAgICAgIGxhYmVsOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk15IEFmZmlsaWF0ZSBsaW5rIiB9IH0sCiAgICAgICAgY29weTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb3B5IiB9IH0sCiAgICAgIH0sCiAgICAgIHJlY2VudF9hZmZpbGlhdGU6IHsKICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZWNlbnQgQWZmaWxpYXRlIiB9IH0sCiAgICAgICAgeW91cl9ibGFsYW5jZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJZb3VyIEJhbGFuY2U6IiB9IH0sCiAgICAgICAgYW1vdW50OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFtb3VudCIgfSB9LAogICAgICAgIGN1cnJlbmN5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkN1cnJlbmN5IiB9IH0sCiAgICAgICAgZGF0ZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEYXRlICIgfSB9LAogICAgICB9LAogICAgICB3aXRoZHJhd19oaXN0b3J5OiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2l0aGRyYXcgSGlzdG9yeSIgfSB9LAogICAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaXRoZHJhdyBSZXF1ZXN0IiB9IH0sCiAgICAgICAgYW1vdW50OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFtb3VudCIgfSB9LAogICAgICAgIGN1cnJlbmN5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkN1cnJlbmN5IiB9IH0sCiAgICAgICAgZGF0ZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEYXRlIiB9IH0sCiAgICAgIH0sCiAgICAgIHdpdGhkcmF3X3JlcXVlc3Q6IHsKICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaXRoZHJhd2FsIFJlcXVlc3QiIH0gfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkZpbGwgb3V0IHRoZSBmb3JtIHRvIHdpdGhkcmF3IHlvdXIgZWFybmluZ3Mgc2FmZWx5LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgZm9ybTogewogICAgICAgICAgc2VsZWN0Q3VycmVuY3k6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2VsZWN0IGEgQ3VycmVuY3kiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYW1vdW50OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFtb3VudCIgfSB9LAogICAgICAgICAgYW1vdW50X3BsYWNlaG9sZGVyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkhvdyBNdWNoIERvIFlvdSBXYW50IFRvIFJlY2VpdmUiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYmFsYW5jZV90aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJZb3VyIEJhbGFuY2UiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYWRkcmVzczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBZGRyZXNzIiB9IH0sCiAgICAgICAgICBhZGRyZXNzX3BsYWNlaG9sZGVyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVudGVyIFlvdXIgRW1haWwgb3IgV2FsbGV0IEFkZHJlc3MiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGVzY3JpcHRpb24iIH0gfSwKICAgICAgICAgIGRlc2NyaXB0aW9uX3BsYWNlaG9sZGVyOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlR5cGUgWW91ciBEZXNjcmlwdGlvbiBIZXJlIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIHN1Ym1pdDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdWJtaXQgIiB9IH0sCiAgICAgICAgfSwKICAgICAgICB3aXRoZHJhd19zdWNjZXNzOiB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaXRoZHJhd2FsIFJlcXVlc3QgU3VjY2Vzc2Z1bCEiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiWW91ciByZXF1ZXN0IHRvIHdpdGhkcmF3IGZ1bmRzIGhhcyBiZWVuIHJlY2VpdmVkLiBXZSdyZSBwcm9jZXNzaW5nIGl0IGFuZCB5b3UnbGwgcmVjZWl2ZSB5b3VyIGVhcm5pbmdzIHNob3J0bHkuIFRoYW5rIHlvdSBmb3IgdXNpbmcgb3VyIHNlcnZpY2VzISIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk9rYXkiIH0gfSwKICAgICAgICB9LAogICAgICB9LAogICAgICBub19oaXN0b3J5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5vIEhpc3RvcnkgeWV0IiB9IH0sCiAgICAgIG5vX2FmZmlsaWF0ZXM6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5vIEFmZmlsaWF0ZXMgeWV0IiB9LAogICAgICB9LAogICAgfSwKICAgIGFjY291bnQ6IHsKICAgICAgZWRpdF9wcm9maWxlOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRWRpdCBQcm9maWxlIiB9IH0sCiAgICAgICAgYmFzaWNJbmZvOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJhc2ljIEluZm86IiB9IH0sCiAgICAgICAgZmlyc3RfbmFtZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJGaXJzdCBOYW1lIiB9IH0sCiAgICAgICAgbGFzdF9uYW1lOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkxhc3QgTmFtZSIgfSB9LAogICAgICAgIGVtYWlsOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVtYWlsIiB9IH0sCiAgICAgICAgdmVyaWZ5X2VtYWlsOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlZlcmlmeSBFbWFpbCAiIH0gfSwKICAgICAgICBlbWFpbF92ZXJpZmllZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJWZXJpZmllZCIgfSB9LAogICAgICAgIHBob25lOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBob25lIE51bWJlciIgfSB9LAogICAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTYXZlIENoYW5nZXMiIH0gfSwKICAgICAgICB2ZXJpZnk6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVmVyaWZ5IiB9IH0sCiAgICAgIH0sCiAgICAgIGNoYW5nZV9wYXNzd29yZDogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNoYW5nZSBQYXNzd29yZCIgfSB9LAogICAgICAgIGN1cnJlbnRfcGFzc3dvcmQ6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDdXJyZW50IFBhc3N3b3JkIiB9LAogICAgICAgIH0sCiAgICAgICAgbmV3X3Bhc3N3b3JkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5ldyBQYXNzd29yZCIgfSB9LAogICAgICAgIGNvbmZpcm1fcGFzc3dvcmQ6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb25maXJtIFBhc3N3b3JkIiB9LAogICAgICAgIH0sCiAgICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNhdmUgQ2hhbmdlcyAgIiB9IH0sCiAgICAgIH0sCiAgICAgIHR3b0ZhOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiMi1TdGVwIFZlcmlmaWNhdGlvbiIgfSB9LAogICAgICAgIGFjdGl2ZTogewogICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVnaXN0ZXIgVHdvLUZhY3RvciBBdXRoZW50aWNhdG9yIiB9LAogICAgICAgICAgfSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlVzZSBhbiBvbmUgdGltZSBwYXNzd29yZCBhdXRoZW50aWNhdG9yIG9uIHlvdXIgbW9iaWxlIGRldmljZSBvciBjb21wdXRlciB0byBlbmFibGUgdHdvLWZhY3RvciBhdXRoZW50aWNhdGlvbiAoMkZBKS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGdyY29kZV9kZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJJbnN0YWxsIGEgc29mdCB0b2tlbiBhdXRoZW50aWNhdG9yIGxpa2UgRnJlZU9UUCBvciBHb29nbGUgQXV0aGVudGljYXRvciBmcm9tIHlvdXIgYXBwbGljYXRpb24gcmVwb3NpdG9yeSBhbmQgdXNlIHRoYXQgYXBwIHRvIHNjYW4gdGhpcyBRUiBjb2RlLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgbWFudWFsX2NvZGVfZGVzY3JpcHRpb246IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQ2FuJ3Qgc2NhbiB0aGUgY29kZSA/IFRvIGFkZCB0aGUgZW50cnkgbWFudWFsbHksIHByb3ZpZGUgdGhlIGZvbGxvd2luZyBkZXRhaWxzIHRvIHRoZSBhcHBsaWNhdGlvbiBvbiB5b3VyIHBob25lLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgYWNjb3VudDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBY2NvdW50OiIgfSB9LAogICAgICAgICAga2V5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIktleToiIH0gfSwKICAgICAgICAgIHBpbl9jb2RlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBpbiBDb2RlIiB9IH0sCiAgICAgICAgICBwaW5fY29kZV9wbGFjZWhvbGRlcjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbnRlciBQaW4gQ29kZSBIZXJlICIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBjb25maXJtOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbmZpcm0iIH0gfSwKICAgICAgICB9LAogICAgICAgIGRlYWN0aXZlOiB7CiAgICAgICAgICB0aXRsZTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEaXNhYmxlIFR3by1GYWN0b3IgQXV0aGVudGljYXRvciIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJUdXJuaW5nIG9mZiAyRkEgbWlnaHQgbG9vayBlYXN5LCBidXQgaXQncyBpbXBvcnRhbnQgdG8ga25vdyB0aGUgZGFuZ2Vycy4gSGVyZSdzIHdoeSBrZWVwaW5nIDJGQSBvbiBpcyBhIGdvb2QgaWRlYToiLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGl0ZW1zOiBbCiAgICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW5oYW5jZWQgU2VjdXJpdHkiIH0gfSwKICAgICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJGcmF1ZCBQcmV2ZW50aW9uIiB9IH0sCiAgICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGF0YSBQcm90ZWN0aW9uIiB9IH0sCiAgICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGVhY2Ugb2YgTWluZCIgfSB9LAogICAgICAgICAgXSwKICAgICAgICAgIGtlZXBTYWZlOiB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIiogS2VlcCB5b3VyIGFjY291bnQgc2FmZS4gVHVybmluZyBvZmYgMkZBIG1pZ2h0IHNlZW0gZmFzdGVyLCBidXQgaXQncyByZWFsbHkgaW1wb3J0YW50IGZvciBwcm90ZWN0aW5nIHlvdXIgYWNjb3VudC4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIGN0YTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEZWFjdGl2ZSIgfSB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIG90cF9tb2RhbDogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNoZWNrIFlvdXIgRW1haWwiIH0gfSwKICAgICAgICB2ZXJpZmljYXRpb246IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJWZXJpZmljYXRpb24gY29kZSIgfSwKICAgICAgICB9LAogICAgICAgIGRlc2NyaXB0aW9uOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIldlIGhhdmUgc2VudCBhIE9UUCB0byB5b3VyIGVtYWlsIGFkZHJlc3M6IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlBsZWFzZSBlbnRlciB0aGUgQ29kZSBoZXJlIHRvIHZlcmlmeSB5b3VyIGVtYWlsLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUaGUgY29kZSBpcyB2YWxpZCBmb3IgMTAgbWludXRlcy4iIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgY3RhOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlZlcmlmeSIgfSB9LAogICAgICAgIHJlc2VuZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZXNlbmQgRW1haWwiIH0gfSwKICAgICAgICBvdHBfZXJyb3I6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiVGhlIE9UUCBlbnRlcmVkIGlzIGluY29ycmVjdC4gUGxlYXNlIGNoZWNrIHlvdXIgZW1haWw6IiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogImZvciB0aGUgY29ycmVjdCBPVFAgYW5kIHRyeSBhZ2Fpbi4iIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgb3RwX3ZlcmlmaWVkOiB7CiAgICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbWFpbCBWZXJpZmllZCIgfSB9LAogICAgICAgICAgZGVzY3JpcHRpb246IFsKICAgICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUaGFuayB5b3UhIiB9IH0sCiAgICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiWW91ciBlbWFpbCBhZGRyZXNzOiIgfSB9LAogICAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogInN1Y2Nlc3NmdWxseSB2ZXJpZmllZC4iIH0gfSwKICAgICAgICAgIF0sCiAgICAgICAgICBjdGE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29udGludWUiIH0gfSwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHdhbGxldDogewogICAgICB3YWxsZXQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2FsbGV0IiB9IH0sCiAgICAgIEFmZmlsaWF0ZVByb2dyYW06IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFmZmlsaWF0ZSBQcm9ncmFtIiB9LAogICAgICB9LAogICAgICBOb0N1cnJlbmNpZXNGb3VuZDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gQ3VycmVuY2llcyBGb3VuZCIgfSwKICAgICAgfSwKICAgICAgQWNjb3VudDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBY2NvdW50IiB9IH0sCiAgICAgIFRvdGFsQmFsYW5jZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUb3RhbCBCYWxhbmNlIiB9IH0sCiAgICAgIE9wZXJhdGlvbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJPcGVyYXRpb24iIH0gfSwKICAgICAgSWNvbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJJY29uIiB9IH0sCiAgICAgIEF2YWlsYWJsZUFtb3VudDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQXZhaWxhYmxlIEFtb3VudCIgfSwKICAgICAgfSwKICAgICAgb25PcmRlckJhbGFuY2U6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkluIE9yZGVyIEJhbGFuY2UiIH0sCiAgICAgIH0sCiAgICAgIEFsbDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBbGwiIH0gfSwKICAgICAgQ3J5cHRvOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNyeXB0byIgfSB9LAogICAgICBFQ3VycmVuY3k6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRS1DdXJyZW5jeSIgfSB9LAogICAgICBTZWFyY2hDdXJyZW5jeTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2VhcmNoIEN1cnJlbmN5IiB9LAogICAgICB9LAogICAgICBDdXJyZW5jaWVzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkN1cnJlbmNpZXMiIH0gfSwKICAgICAgQmFsYW5jZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCYWxhbmNlIiB9IH0sCiAgICAgIERlcG9zaXQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGVwb3NpdCIgfSB9LAogICAgICBXaXRoZHJhdzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaXRoZHJhdyIgfSB9LAogICAgICBUcmFuc2FjdGlvbnM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHJhbnNhY3Rpb25zIiB9IH0sCiAgICAgIERlcG9zaXRzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRlcG9zaXRzIiB9IH0sCiAgICAgIFdpdGhkcmF3czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaXRoZHJhd3MiIH0gfSwKICAgICAgRGF0ZUFuZFRpbWU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGF0ZSBhbmQgVGltZSIgfSB9LAogICAgICBOZXR3b3JrOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5ldHdvcmsiIH0gfSwKICAgICAgQW1vdW50OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFtb3VudCIgfSB9LAogICAgICBTdGF0dXM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3RhdHVzIiB9IH0sCiAgICAgIERldGFpbHM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGV0YWlscyIgfSB9LAogICAgICBQcmV2aW91czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQcmV2aW91cyIgfSB9LAogICAgICBOZXh0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5leHQiIH0gfSwKICAgIH0sCiAgICBEZXBvc2l0OiB7CiAgICAgIGNyeXB0bzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDcnlwdG8iIH0gfSwKICAgICAgZUN1cnJlbmN5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkUtQ3VycmVuY3kiIH0gfSwKICAgICAgY3J5cHRvY3VycmVuY3k6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNyeXB0byBDdXJyZW5jeSIgfSwKICAgICAgfSwKICAgICAgRGVwb3NpdENvbmRpdGlvbjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGVwb3NpdCBDb25kaXRpb24iIH0sCiAgICAgIH0sCiAgICAgIG5ldHdvcms6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTmV0d29yayIgfSB9LAogICAgICBsb3NzT2ZBZGRyZXNzOiBbCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRlcG9zaXRpbmcgQW55IEN1cnJlbmN5IGV4Y2VwdCIgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICIgdG8gdGhpcyBhZGRyZXNzIHdpbGwgcmVzdWx0IGluIHRoZSBsb3NzIG9mIHlvdXIgYXNzZXRzIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgICAgY3JlYXRlQWRlcG9zaXRBZGRyZXNzOiBbCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUbyBkZXBvc2l0IiB9IH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogInRvIHlvdXIgd2FsbGV0IGluIE5Db25uZWN0LCB5b3UgbmVlZCB0byBjcmVhdGUgYSBkZXBvc2l0IGFkZHJlc3MiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgICBnZW5lcmF0ZU5ld0FkZHJlc3M6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdlbmVyYXRlIE5ldyBBZGRyZXNzIiB9LAogICAgICB9LAogICAgICBsYXRlc3REZXBvc2l0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkxhdGVzdCBEZXBvc2l0IiB9IH0sCiAgICAgIHNob3dIaXN0b3J5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNob3cgSGlzdG9yeSIgfSB9LAogICAgICBUaGVNaW51bUFtb3VudDogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJUaGUgbWluaW11bSBhbW91bnQgdGhhdCBjYW4gYmUgZGVwb3NpdGVkIG9uIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogImluIE5Db25uZWN0IGlzIiB9IH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIiwgYW5kIHNtYWxsZXIgYW1vdW50cyBzZW50IHdpbGwgbm90IGJlIGNoYXJnZWQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgICAgdHJhY2tZb3VyT3JkZXJTdGF0dXM6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRyYWNrIFlvdXIgT3JkZXIgU3RhdHVzIiB9LAogICAgICB9LAogICAgICBjaGVja1N0YXR1czogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQ2hlY2sgdGhlIGN1cnJlbnQgU3RhdHVzIG9mIHlvdXIgT25nb2luZyBPcmRlciIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgeW91clVuaXF1ZUFkZHJlc3M6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIllvdXIgVW5pcXVlIEFkZHJlc3MiIH0sCiAgICAgIH0sCiAgICB9LAogICAgd2l0aGRyYXc6IHsKICAgICAgV2l0aGRyYXc6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2l0aGRyYXciIH0gfSwKICAgICAgQ3J5cHRvOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNyeXB0byIgfSB9LAogICAgICBFQ3VycmVuY3k6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRS1DdXJyZW5jeSIgfSB9LAogICAgICBDcnlwdG9jdXJyZW5jeTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ3J5cHRvIGN1cnJlbmN5IiB9LAogICAgICB9LAogICAgICBOZXR3b3JrOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5ldHdvcmsiIH0gfSwKICAgICAgVG90YWxCYWxhbmNlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRvdGFsIEJhbGFuY2UiIH0gfSwKICAgICAgQXZhaWxhYmxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkF2YWlsYWJsZSIgfSB9LAogICAgICBBbW91bnQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQW1vdW50IiB9IH0sCiAgICAgIHdpdGhkcmF3Q29uZGl0aW9uOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaXRoZHJhdyBDb25kaXRpb24iIH0sCiAgICAgIH0sCiAgICAgIERlc3RpbmF0aW9uV2FsbGV0QWRkcmVzczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGVzdGluYXRpb24gV2FsbGV0IEFkZHJlc3MiIH0sCiAgICAgIH0sCiAgICAgIE1pbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJNaW4iIH0gfSwKICAgICAgTWF4OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk1heCIgfSB9LAogICAgICBOZXR3b3JrRmVlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5ldHdvcmsgRmVlIiB9IH0sCiAgICAgIExhdGVzdFdpdGhkcmF3OiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJMYXRlc3QgV2l0aGRyYXciIH0sCiAgICAgIH0sCiAgICAgIERhdGVBbmRUaW1lOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRhdGUgYW5kIFRpbWUiIH0gfSwKICAgICAgQ3VycmVuY2llczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDdXJyZW5jaWVzIiB9IH0sCiAgICAgIFN0YXR1czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdGF0dXMiIH0gfSwKICAgICAgRGV0YWlsczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEZXRhaWxzIiB9IH0sCiAgICAgIFNob3dIaXN0b3J5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNob3cgSGlzdG9yeSIgfSB9LAogICAgICBUd29GYWN0b3JBdXRoZW50aWNhdGlvblJlcXVpcmVkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUd28tRmFjdG9yLUF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkIiB9LAogICAgICB9LAogICAgICBFbmFibGUyRkFOb3c6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW5hYmxlIDJGQSBOb3ciIH0gfSwKICAgICAgTXVzdEVuYWJsZVR3b0ZhOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3UgbXVzdCBlbmFibGUgR29vZ2xlIEF1dGhlbnRpY2F0b3IgKDJGQSkgYmVmb3JlIHByb2NlZWRpbmcgd2l0aCB5b3VyIHdpdGhkcmF3YWwuIFRoaXMgZXh0cmEgc3RlcCBlbnN1cmVzIHRoZSBzZWN1cml0eSBvZiB5b3VyIGFjY291bnQuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBMYXRlc3REZXBvc2l0czogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTGF0ZXN0IERlcG9zaXRzIiB9LAogICAgICB9LAogICAgICBOb0RlcG9zaXRzWWV0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5vIERlcG9zaXRzIFlldCIgfSB9LAogICAgICBZb3VIYXZlTm90TWFkZUFueURlcG9zaXRzWWV0OiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3UgaGF2ZSBub3QgbWFkZSBhbnkgZGVwb3NpdHMgeWV0LiBPbmNlIHlvdSBkbywgdGhleSB3aWxsIGFwcGVhciBoZXJlIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBNYWtlQURlcG9zaXQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTWFrZSBhIERlcG9zaXQiIH0gfSwKICAgICAgTm9XaXRoZHJhd2Fsc1lldDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTm8gV2l0aGRyYXdhbHMgWWV0IiB9LAogICAgICB9LAogICAgICBZb3VIYXZlTm90TWFkZUFueVdpdGhkcmF3YWxzWWV0OiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3UgaGF2ZSBub3QgbWFkZSBhbnkgd2l0aGRyYXdhbHMgeWV0LiBPbmNlIHlvdSBkbywgdGhleSB3aWxsIGFwcGVhciBoZXJlLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgUGxlYXNlRW5zdXJlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJQbGVhc2UgZW5zdXJlIHlvdSBzZWxlY3QgdGhlIGNvcnJlY3Qgd2l0aGRyYXdhbCBuZXR3b3JrIGFuZCB5b3VyIGRlc3RpbmF0aW9uIHdhbGxldCBzdXBwb3J0cyB0aGUgY2hvc2VuIG5ldHdvcmsgYmVmb3JlIHByb2NlZWRpbmcuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBXaXRoZHJhd0Z1bmRzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldpdGhkcmF3IEZ1bmRzIiB9IH0sCiAgICAgIERlc3RpbmF0aW9uQWRkcmVzc1JlcXVpcmVkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEZXN0aW5hdGlvbiBXYWxsZXQgQWRkcmVzcyBpcyByZXF1aXJlZCIgfSwKICAgICAgfSwKICAgICAgQW1vdW50UmVxdWlyZWQ6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkN1cnJlbmN5IGFtb3VudCBpcyByZXF1aXJlZCIgfSwKICAgICAgfSwKICAgICAgYW1vdW50UGxhY2Vob2xkZXI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlR5cGUgWW91ciBEZXNpcmUgQW1vdW50IiB9LAogICAgICB9LAogICAgICBkZXN0aW5hdGlvbkFkZHJlc3NQbGFjZWhvbGRlcjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVHlwZSBZb3VyIERlc3RpbmF0aW9uIFdhbGxldCBBZGRyZXNzIiB9LAogICAgICB9LAogICAgICBub1dhbGxldHM6IHsKICAgICAgICB0aXRsZTogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5vIGRlcG9zaXQgYWRkcmVzcyBmb3VuZC4iIH0sCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlBsZWFzZSBnZW5lcmF0ZSBhIGRlcG9zaXQgYWRkcmVzcyBmaXJzdCIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGFtb3VudEV4ZWVkczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiVGhlIGFtb3VudCB5b3UgZW50ZXJlZCBleGNlZWRzIHlvdXIgYmFsYW5jZSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgYW1vdW50QmV0d2VlbjogWwogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQW1vdW50IGZpZWxkIG11c3QgYmUgYmV0d2VlbiIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiYW5kIiB9IH0sCiAgICAgIF0sCiAgICB9LAogICAgcmVqZWN0UmVzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIiBSZWplY3QgUmVhc29uIiB9IH0sCiAgfSwKICBoZWFkZXJBbmRGb290ZXI6IHsKICAgIHNlcnZpY2VzOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNlcnZpY2VzIiB9IH0sCiAgICAgIGVjVG9FYzogewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRS1DdXJyZW5jeSBUbyBFLUN1cnJlbmN5IiB9LAogICAgICAgIH0sCiAgICAgICAgcGVyZmVjdFRvUGF5cGFsOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGVyZmVjdCBNb25leSB0byBQYXlQYWwiIH0sCiAgICAgICAgfSwKICAgICAgICB3ZWJtb25leVRvUGF5cGFsOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2VibW9uZXkgdG8gUGF5UGFsIiB9LAogICAgICAgIH0sCiAgICAgICAgcGF5ZWVyVG9QYXlwYWw6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQYXllZXIgdG8gUGF5UGFsIiB9LAogICAgICAgIH0sCiAgICAgICAgYWR2Y2FzaFRvUGF5cGFsOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVm9sZXQgKEFkdmNhc2gpIHRvIFBheVBhbCIgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICBjcnlwdG9Ub0VjOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ3J5cHRvIFRvIEUtQ3VycmVuY3kiIH0gfSwKICAgICAgICBiaXRjb2luVG9QYXlwYWw6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCaXRjb2luIHRvIFBheVBhbCIgfSwKICAgICAgICB9LAogICAgICAgIHRldGhlclRvUGF5cGFsOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGV0aGVyIHRvIFBheVBhbCIgfSwKICAgICAgICB9LAogICAgICB9LAogICAgICBjcnlwdG9Ub0NyeXB0bzogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNyeXB0byBUbyBDcnlwdG8iIH0gfSwKICAgICAgICB1c2R0VG9Ucng6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGV0aGVyIFRvIFRyb24iIH0gfSwKICAgICAgfSwKICAgIH0sCiAgICBzb2x1dGlvbnM6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU29sdXRpb25zIiB9IH0sCiAgICAgIGhpV2FsbGV0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkhpV2FsbGV0IiB9IH0sCiAgICAgIHBheXBhbFBheW1lbnQ6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBheSBmb3IgQnVzaW5lc3MiIH0sCiAgICAgIH0sCiAgICAgIHBheW1lbnRHYXRlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk9ubGluZSBQYXltZW50IiB9IH0sCiAgICAgIGV4Y2hhbmdlUGF5cGFsOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSBQYXlwYWwiIH0sCiAgICAgIH0sCiAgICAgIFBlcmZlY3RNb25leUVWb3VjaGVyOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQZXJmZWN0TW9uZXkgRS1Wb3VjaGVyIiB9LAogICAgICB9LAogICAgfSwKICAgIGVhcm5Nb25leTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFYXJuIE1vbmV5IiB9IH0sCiAgICBibG9nOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJsb2ciIH0gfSwKICAgICAgYXJ0aWNsZXM6IHsKICAgICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBcnRpY2xlcyIgfSB9LAogICAgICAgIGl0ZW1zOiB7CiAgICAgICAgICBlY3VycmVuY3lUb0VDdXJyZW5jeTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJlLWN1cnJlbmN5IHRvIGUtY3VycmVuY3kiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgY3J5cHRvVG9DcnlwdG86IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiY3J5cHRvIHRvIGNyeXB0byIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBjcnlwdG9Ub0VDdXJyZW5jeTogewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJjcnlwdG8gdG8gZS1jdXJyZW5jeSIgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbmV3czogewogICAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5ld3MiIH0gfSwKICAgICAgICBpdGVtczogewogICAgICAgICAgZWN1cnJlbmN5VG9FQ3VycmVuY3k6IHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgTmV3cyIgfSwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICBhYm91dFVzOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFib3V0IFVzIiB9IH0sCiAgICAgIHN0b3J5T2ZVczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdG9yeSBvZiBVcyIgfSB9LAogICAgICBjb250YWN0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbnRhY3QiIH0gfSwKICAgICAgZmFxOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZBUSIgfSB9LAogICAgICBwcml2YWN5UG9saWN5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlByaXZhY3kgUG9saWN5IiB9IH0sCiAgICAgIGFtbEt5Y1BvbGljeTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBTUwvS1lDIFBvbGljeSIgfSB9LAogICAgfSwKICAgIHNpZ25JbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTaWduIGluIiB9IH0sCiAgICBzaWduVXA6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2lnbiB1cCIgfSB9LAogICAgZGVzY3JpcHRpb246IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiTkNvbm5lY3QgaXMgYW4gb25saW5lIENyeXB0b2N1cnJlbmN5IGFuZCBEaWdpdGFsIEN1cnJlbmN5IGV4Y2hhbmdlLiBXZSB2YWx1ZSBvdXIgY3VzdG9tZXJzIGFub255bWl0eSBhbmQgcHJvdGVjdGlvbiBvZiB0aGVpciBkYXRhLiIsCiAgICAgIH0sCiAgICB9LAogICAgY29tcGFueTogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb21wYW55IiB9IH0sCiAgICAgIGFib3V0VXM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQWJvdXQgVXMiIH0gfSwKICAgICAgd2h5U2lnblVwOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldoeSBTaWduVXAiIH0gfSwKICAgICAgYW5ub3VuY2VtZW50czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBbm5vdW5jZW1lbnRzIiB9IH0sCiAgICAgIGJsb2c6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQmxvZyIgfSB9LAogICAgICBmYXE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRkFRIiB9IH0sCiAgICB9LAogICAgbGVnYWw6IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTGVnYWwiIH0gfSwKICAgICAgdGVybXM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGVybXMiIH0gfSwKICAgICAgcHJpdmFjeTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQcml2YWN5IiB9IH0sCiAgICAgIGRpc2NsYWltZXI6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGlzY2xhaW1lciIgfSB9LAogICAgfSwKICAgIGd1aWRlczogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJHdWlkZXMiIH0gfSwKICAgICAgZXRoZXJldW1Ub1BheXBhbDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IHRvIEV4Y2hhbmdlIEV0aGVyZXVtIHRvIFBheVBhbCIgfSwKICAgICAgfSwKICAgICAgYml0Y29pblRvUGF5cGFsOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb3cgdG8gQnV5IEJpdGNvaW4gd2l0aCBQZXJmZWN0IE1vbmV5IiB9LAogICAgICB9LAogICAgICB0ZXRoZXJUb1BheXBhbDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IHRvIEV4Y2hhbmdlIFRldGhlciB0byBQYXlQYWwiIH0sCiAgICAgIH0sCiAgICAgIGRhc2hUb1BheXBhbDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSG93IHRvIEV4Y2hhbmdlIERhc2ggdG8gUGF5UGFsIiB9LAogICAgICB9LAogICAgfSwKICAgIGNvcHlyaWdodDogewogICAgICB0OiAwLAogICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJOQ29ubmVjdCBDbyBBbGwgUmlnaHRzIFJlc2VydmVkIiB9LAogICAgfSwKICB9LAogIGV4Y2hhbmdlOiB7CiAgICBuZXh0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5leHQiIH0gfSwKICAgIGFuZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJhbmQiIH0gfSwKICAgIGJhY2s6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQmFjayIgfSB9LAogICAgY29uZmlybTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb25maXJtIFBheW1lbnQiIH0gfSwKICAgIGNhbmNlbDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDYW5jZWwiIH0gfSwKICAgIHZpZXdBbmRDaGVjazogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJWaWV3IEFuZCBDaGVjayIgfSB9LAogICAgeW91U2VuZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJZb3UgU2VuZCIgfSB9LAogICAgd2VTZW5kOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldlIFNlbmQiIH0gfSwKICAgIG1vcmVEZXRhaWw6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTW9yZSBEZXRhaWwiIH0gfSwKICAgIGxlc3NEZXRhaWw6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTGVzcyBEZXRhaWwiIH0gfSwKICAgIHRvdGFsU2VuZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUb3RhbCBTZW5kIiB9IH0sCiAgICB3ZVJlY2VpdmU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAi0JLRiyDQvtGC0L/RgNCw0LLQu9GP0LXRgtC1IiB9IH0sCiAgICBuZXR3b3JrRmVlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5ldHdvcmsgRmVlIiB9IH0sCiAgICBnYXRld2F5RmVlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdhdGV3YXkgRmVlIiB9IH0sCiAgICB5b3VSZWNlaXZlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIllvdSBSZWNlaXZlIiB9IH0sCiAgICB5b3VyRW1haWxBZGQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAieW91ciBlbWFpbCBhZGRyZXNzIiB9IH0sCiAgICB0aGFua3M6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGhhbmsgeW91IiB9IH0sCiAgICB0cmFja09yZGVyOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRyYWNrIFlvdXIgT3JkZXIgU3RhdHVzIiB9LAogICAgfSwKICAgIHRyYWNrT3JkZXJTdWI6IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiQ2hlY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHlvdXIgb25nb2luZyBvcmRlci4iLAogICAgICB9LAogICAgfSwKICAgIGN1cklzUmVxOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkN1cnJlbmN5IGFtb3VudCBpcyByZXF1aXJlZCIgfSwKICAgIH0sCiAgICBtdXN0QmU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTXVzdCBiZSBiZXR3ZWVuIiB9IH0sCiAgICBwYXlwYWxHdWlkOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBsZWFzZSBub3RlIiB9IH0sCiAgICAgIGRlczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAnV2Ugc2VuZCBleGFjdGx5IHRoZSBhbW91bnQgd2UgaGF2ZSBtZW50aW9uZWQgImFzIEdvb2RzIGFuZCBTZXJ2aWNlcyIuIFBheVBhbCBjdXRzIDQlIHRvIDYlIG9mIHRoZSBvcmlnaW5hbCBhbW91bnQuJywKICAgICAgICB9LAogICAgICB9LAogICAgICBidG46IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5UGFsIGZlZXMgZ3VpZGUiIH0gfSwKICAgIH0sCiAgICB3YWxsZXRJbmZvOiB7CiAgICAgIGRlc3RpbmF0aW9uUGF5UGFsQWNjb3VudDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGVzdGluYXRpb24gUGF5UGFsIEFjY291bnQiIH0sCiAgICAgIH0sCiAgICAgICJub3RlT3JDb21tZW50KE9wdGlvbmFsKSI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5vdGUgb3IgY29tbWVudCAoT3B0aW9uYWwpIiB9LAogICAgICB9LAogICAgICBlbWFpbEFkZHJlc3M6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW1haWwgQWRkcmVzcyIgfSB9LAogICAgICBlbWFpbERlczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVG8gaW5mb3JtIHlvdSBhYm91dCB0aGUgb3JkZXIgcHJvY2VzcyIgfSwKICAgICAgfSwKICAgICAgb3B0aW9uYWw6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRlc3RpbmF0aW9uIFBheVBhbCBBY2NvdW50IiB9LAogICAgICB9LAogICAgICB2YWxpZGF0aW9uTXNnOiB7CiAgICAgICAgcmVxdWlyZWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAi0J7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1LiIgfSB9LAogICAgICAgIGludmFsaWRFbWFpbDogewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogItCd0LXQutC+0YDRgNC10LrRgtC90YvQuSBlbWFpbCIgfSwKICAgICAgICB9LAogICAgICAgIHBob25lOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogItCd0L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsCDQstCy0LXQtNC10L0g0L3QtdCy0LXRgNC90L4iIH0gfSwKICAgICAgICBtaW46IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAi0JzQuNC90LjQvNGD0LwgMTAg0YHQuNC80LLQvtC70L7Qsi4iIH0gfSwKICAgICAgfSwKICAgICAgcmVhZFRlcm1zU2VydmljZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUbyByZWFkIG91ciIgfSB9LAogICAgICByZWFkVGVybXNTZXJ2aWNlMjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGVybXMgb2YgU2VydmljZSAiIH0sCiAgICAgIH0sCiAgICAgIHJlYWRUZXJtc1NlcnZpY2UzOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJhbmQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBjbGljayBvbiDigJx2aWV3IGFuZCBjaGVja+KAnSBidXR0b24gYmVsbG93LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgd3JvbmdFbWFpbDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiKElmIHlvdSBlbnRlcmVkIHRoZSB3cm9uZyBlbWFpbCwgeW91IGNhbiBjb3JyZWN0IGl0IGJ5IGNsaWNrIG9uIGJhY2sgYnV0dG9uLikiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGFmdGVyQ2xpY2s6IFsKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogImFmdGVyIGNoZWNraW5nICIgfSB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAidGhlIGRldGFpbHMiIH0gfSwKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogInRoZSBlbWFpbCIgfSB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJhbmQgbWFraW5nIHN1cmUgaXQgaXMgY29ycmVjdCwgY2xpY2sgb24gbmV4dCBidXR0b24uIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgICAgcGxlYXNlTm90ZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiIFBsZWFzZSBub3RlIHRoYXQgd2UgaW50ZW5kIHRvIGRlcG9zaXQgdGhlIGFtb3VudCB5b3Ugd2FudCBpbnRvIHRoaXMgYWNjb3VudCwiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGZpbmFsQ2hlY2s6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZpbmFsIENoZWNrIG9mIHlvdXIgRW1haWwgQWRkcmVzcyIgfSwKICAgICAgfSwKICAgICAgYnlDbGlja2luZzogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiYnkgY2xpY2tpbmcgb24g4oCcY29uZmlybeKAnSB5b3UgYWdyZWUgdG8gb3VyIiwKICAgICAgICB9LAogICAgICB9LAogICAgICB0ZXJtc1NlcnZpY2U6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGVybXMgb2YgU2VydmljZSIgfSB9LAogICAgICBhbWw6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiIEFNTC9LWUMgcG9saWN5ICIgfSB9LAogICAgICBhZGRpdGlvbmFsSW5mb3JtYXRpb246IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFkZGl0aW9uYWwgaW5mb3JtYXRpb24iIH0sCiAgICAgIH0sCiAgICAgIG5leHQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTmV4dCBTdGVwIiB9IH0sCiAgICAgIHN1Z2dlc3RMb2dpbjogewogICAgICAgIHRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiVW5sb2NrIHRoZSBGdWxsIFBvdGVudGlhbCBvZiBZb3VyIEFjY291bnQiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHN1YlRpdGxlOiB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQWNjZXNzIGV4Y2x1c2l2ZSBmZWF0dXJlcyBsaWtlIHNlY3VyZSB3YWxsZXRzLCBkaXNjb3VudHMsIG9yZGVyIGhpc3RvcnksIGFuZCBhZmZpbGlhdGUgcmV3YXJkcyB3aGVuIHlvdSBzaWduIGluOiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgaXRlbXM6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgaXRlbTogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiU2VjdXJlIFdhbGxldCBmb3IgWW91ciBUcmFuc2FjdGlvbnMg8J+boSIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIGl0ZW06IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkV4Y2x1c2l2ZSBEaXNjb3VudCBDb2RlcyDwn46BIiB9LAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgaXRlbTogewogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgYjogewogICAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgICBzOiAiT3JkZXIgSGlzdG9yeSBhdCBZb3VyIEZpbmdlcnRpcHMg8J+TnCIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIGl0ZW06IHsKICAgICAgICAgICAgICB0OiAwLAogICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgICAgczogIkVhcm4gUHJvZml0cyB3aXRoIEFmZmlsaWF0ZSBSZXdhcmRzIPCfkrAiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgYnRuTGFiZWw6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2lnbiBJbiAmIENvbnRpbnVlIiB9IH0sCiAgICAgIH0sCiAgICB9LAogICAgcGF5T3JkZXI6IHsKICAgICAgb3JkZXJQcm9jZXNzOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJZb3VyIG9yZGVyIHdpbGwgYmUgcHJvY2Vzc2VkIiB9LAogICAgICB9LAogICAgICB3aGF0TmV4dDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaGF0IGhhcHBlbnMgbmV4dCIgfSB9LAogICAgICBwYXltZW50Q29uZmlybWVkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3VyIHBheW1lbnQgd2lsbCBiZSBjb25maXJtZWQgYnkgb3VyIGZpbmFuY2lhbCB0ZWFtLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgcGF5bWVudFByb2Nlc3NlZDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiSWYgY29uZmlybWVkLCB5b3VyIG9yZGVyIHdpbGwgYmUgcHJvY2Vzc2VkLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZnVuZHM6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIllvdSB3aWxsIHJlY2VpdmUgeW91ciBmdW5kcyBhcyBzb29uIGFzIHBvc3NpYmxlLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgaGVzaXRhdGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkRvIG5vdCBoZXNpdGF0ZSB0byBjb250YWN0IHVzIGlmIHlvdSBoYWQgYW55IHF1ZXN0aW9ucy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHN0YXR1czogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJWaWV3IG9yZGVyIHN0YXR1cyIgfSB9LAogICAgICBvbmxpbmU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2UncmUgb25saW5lIDI0LzchIiB9IH0sCiAgICAgIHVucGFpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJVbnBhaWQiIH0gfSwKICAgICAgcGVuZGluZzogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQZW5kaW5nIiB9IH0sCiAgICAgIHByb2Nlc3Npbmc6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUHJvY2Vzc2luZyIgfSB9LAogICAgICBkb25lOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkRvbmUiIH0gfSwKICAgICAgY2FuY2VsOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNhbmNlbCIgfSB9LAogICAgICBzdXNwZW5kOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlN1c3BlbmQiIH0gfSwKICAgICAgcmVmdW5kOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJlZnVuZCIgfSB9LAogICAgICBtYWtlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk1ha2UgYSBQYXltZW50IiB9IH0sCiAgICAgIGNyZWF0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNyZWF0ZSBuZXcgb3JkZXIiIH0gfSwKICAgICAgcGVuZGluZ1BheW1lbnQ6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBlbmRpbmcgcGF5bWVudCIgfSwKICAgICAgfSwKICAgICAgY29tcGxldGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRvIENvbXBsZXRlIFlvdXIgT3JkZXIsIFBsZWFzZSBEZXBvc2l0IHRoZSBQYXltZW50IEFtb3VudCB0byBPdXIgU2VjdXJlIFdhbGxldCBBZGRyZXNzLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY29uZmlybTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiIE9uY2UgQ29uZmlybWVkLCBZb3VyIFBheW1lbnQgU3RhdHVzIFdpbGwgYmUgQXV0b21hdGljYWxseSBVcGRhdGVkIGZvciBhIEhhc3NsZS1GcmVlIENoZWNrb3V0IEV4cGVyaWVuY2UuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICB0cmFja0lkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIllvdXIgVHJhY2sgSUQiIH0gfSwKICAgICAgdHJhY2tJZFN1YjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiKHRoaXMgY29kZSBoYXMgYmVlbiBzZW50IHRvIHlvdXIgZW1haWwgdG9vKSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY29weTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJjb3B5IiB9IH0sCiAgICAgIGltcDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJJbXBvcnRhbnQgUmVtaW5kZXIiIH0gfSwKICAgICAgaW1wU3ViOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJNZW1vIGFuZCBhZGRyZXNzIGFyZSBib3RoIHJlcXVpcmVkIGZvciBEZXBvc2l0aW5nLiBTZW5kaW5nIHRoaXMgQ3VycmVuY3kgd2l0aG91dCBtZW1vIHdpbGwgbGVhZCB0byBwZXJtYW5lbnQgYXNzZXQgbG9zcyIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgaGlXYWxsOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk5Db25uZWN0IHdhbGxldCIgfSB9LAogICAgICBoaVdhbGxEZXM6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIm9uZSB0aW1lIHVzaW5nIGFkZHJlc3MgZm9yIFRldGhlciBUUkMyMCBXYWxsZXQiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGhpV2FsbEhpbnQ6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIihDb3B5IGFkZHJlc3MgdG8gZGVwb3NpdCAgYW1vdW50IHlvdXIgd2FsbGV0KSIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgZGVwb3NpdFJlY2VpdmVkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEZXBvc2l0IFJlY2VpdmVkIiB9LAogICAgICB9LAogICAgICBkZXBvc2l0UmVjZWl2ZWRTdWI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIldlIGhhdmUgc3VjY2Vzc2Z1bGx5IHJlY2VpdmVkIHlvdXIgZGVwb3NpdCIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgYWRtaW5EZXM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQWRtaW4gRGVzY3JpcHRpb24iIH0gfSwKICAgICAgYWRtaW5EZXNCdG46IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVmlldyBSZWNlaXB0IiB9IH0sCiAgICAgIHBheUZhaWw6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5bWVudCBGYWlsZWQhIiB9IH0sCiAgICAgIHBheUZhaWxTdWI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogInRoaXMgcHJvYmxlbSBpcyBkdWUgdG8gc29tZSB0ZWNobmljYWwgaXNzdWVzIGluIHBlcmZlY3QgbW9uZXkgcGF5bWVudCBnYXRld2F5LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgcGF5RmFpbERlczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiSWYgdGhlIGFtb3VudCBoYXMgbm90IGJlZW4gZGVkdWN0ZWQgZnJvbSB5b3VyIFBlcmZlY3QgTW9uZXkgYWNjb3VudCwgZG9u4oCZdCB3b3JyeSwgcGxlYXNlIGNvbnRhY3Qgb3VyIDI0Lzcgc3VwcG9ydCBmb3IgZnVydGhlciBhc3Npc3RhbmNlLiBXZSB3aWxsIGJlIGFibGUgdG8gaGVscCB5b3UgdG8gcmVzb2x2ZSB0aGUgaXNzdWUuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICB0cnlBZ2FpbjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUcnkgQWdhaW4iIH0gfSwKICAgICAgdmlld0RldGFpbDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVmlldyB5b3VyIG9yZGVyIGRldGFpbCIgfSwKICAgICAgfSwKICAgICAgZmluYWxpemU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRmluYWxpemUgT3JkZXIiIH0gfSwKICAgICAgcGF5U3VjY2VzczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGhhbmtzIGZvciB5b3VyIHBheW1lbnQiIH0sCiAgICAgIH0sCiAgICAgIHBheURlczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiUGxlYXNlIGZvbGxvdyB5b3VyIE9yZGVyIEJ5IGNsaWNrIG9uIGJ1dHRvbiBiZWxvdy4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIHBvd2VyOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBvd2VyZWQgYnkiIH0gfSwKICAgIH0sCiAgICByZXZpZXdPcmRlcjogewogICAgICBmaW5hbENoZWNrOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZpbmFsIGNoZWNrIiB9IH0sCiAgICB9LAogICAgY291cG9uOiB7CiAgICAgIHdhcm46IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIldlIGNhbGN1bGF0ZSBleGNoYW5nZXMgYmFzZWQgb24gdGhlIGFtb3VudCByZWNlaXZlZCBpbiBvdXIgYWNjb3VudC4gUGxlYXNlIGNvbnNpZGVyIHdhbGxldCBmZWVzIHdoZW4gc2VuZGluZyB5b3VyIGN1cnJlbmN5LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSGF2ZSBhIERpc2NvdW50IENvZGU/IiB9IH0sCiAgICAgIGFwcGx5OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFwcGx5IGRpc2NvdW50IiB9IH0sCiAgICAgIGNhbmNlbDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDYW5jZWwiIH0gfSwKICAgICAgZW1wdHlFcnI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlBsZWFzZSB0eXBlIHlvdXIgZGlzY291bnQgY29kZSB0aGVuIGNsaWNrIG9uIGFwcGx5LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgc3ViOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJQcmVzcyDigJhBcHBseSBkaXNjb3VudOKAmSB0byBjb25maXJtIHlvdXIgZGlzY291bnQiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgbWluOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk1pbiIgfSB9LAogICAgbWF4OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk1heCIgfSB9LAogICAgcmVzZXJ2ZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZXNlcnZlIiB9IH0sCiAgICAiRXhjaGFuZ2UgSW5mbyI6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgSW5mbyIgfSB9LAogICAgIldhbGxldCBJbmZvIjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXYWxsZXQgSW5mbyIgfSB9LAogICAgIlJldmlldyBPcmRlciI6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmV2aWV3IE9yZGVyIiB9IH0sCiAgICAiUGF5IE9yZGVyIjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQYXkgT3JkZXIiIH0gfSwKICAgICJQcm9vZiBvZiBwYXltZW50IjogewogICAgICB0OiAwLAogICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQcm9vZiBvZiBwYXltZW50IiB9LAogICAgfSwKICAgIHVwbG9hZFRyYW5zYWN0aW9uRGVzY3JpcHRpb246IHsKICAgICAgdDogMCwKICAgICAgYjogewogICAgICAgIHQ6IDIsCiAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICBzOiAiQWZ0ZXIgdGhlIHdpdGhkcmF3YWwgZnJvbSB5b3VyIHdhbGxldCBvciBhY2NvdW50IGlzIGNvbmZpcm1lZCwgcGxlYXNlIHRha2UgYSBzY3JlZW5zaG90IGFuZCB1cGxvYWQgaXQgaGVyZSBzbyB0aGF0IG91ciBmaW5hbmNpYWwgdGVhbSBjYW4gY29uZmlybSB5b3VyIHBheW1lbnQuIiwKICAgICAgfSwKICAgIH0sCiAgfSwKICBhdXRoOiB7CiAgICBiYWNrOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJhY2siIH0gfSwKICAgIG9yOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk9SIiB9IH0sCiAgICBydWxlczogewogICAgICBtaW46IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTWluaW11bSA4IGNoYXJhY3RlcnMuIiB9IH0sCiAgICAgIHVwcGVyOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkF0IGxlYXN0IDEgVVBQRVJDQVNFLiIgfSB9LAogICAgICBsb3dlcjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBdCBsZWFzdCAxIGxvd2VyY2FzZS4iIH0gfSwKICAgICAgb25lTnVtOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkF0IGxlYXN0IDEgbnVtYmVyLiIgfSB9LAogICAgfSwKICAgIG5vTWF0Y2g6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGFzc3dvcmQgZG8gbm90IG1hdGNoLiIgfSB9LAogICAgaG9tZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJIb21lIiB9IH0sCiAgICBkYXNoYm9hcmQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRGFzaGJvYXJkIiB9IH0sCiAgICBsb2dvdXQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTG9nb3V0IiB9IH0sCiAgICBzaWduSW46IHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2VsY29tZSBCYWNrISIgfSB9LAogICAgICBzdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiUGxlYXNlIGVudGVyIHlvdXIgZW1haWwgdG8gc2lnbiBpbiB0byB5b3VyIGFjY291bnQuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBsYWJlbDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbWFpbCBBZGRyZXNzIiB9IH0sCiAgICAgIGRlczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbnRlciB5b3VyIGVtYWlsIGFkZHJlc3MiIH0gfSwKICAgICAgY29udGludWU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29udGludWUiIH0gfSwKICAgICAgbm9BY2NvdW50OiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJEb24ndCBoYXZlIGFuIGFjY291bnQ/IiB9LAogICAgICB9LAogICAgICBzaWduVXBOb3c6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2lnbiB1cCBOb3ciIH0gfSwKICAgICAgZ29vZ2xlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNpZ24gaW4gd2l0aCBHb29nbGUiIH0gfSwKICAgICAgYWxtb3N0OiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFsbW9zdCBUaGVyZSEiIH0gfSwKICAgICAgcGFzc3dvcmRTdWJ0aXRsZTogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJOb3csIHBsZWFzZSBlbnRlciB0aGUgcGFzc3dvcmQgZm9yIHlvdXIgZW1haWwgYWRkcmVzcyIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJ0byBjb21wbGV0ZSB5b3VyIHNpZ24taW4uIiB9IH0sCiAgICAgIF0sCiAgICAgIHBhc3N3b3JkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBhc3N3b3JkIiB9IH0sCiAgICAgIGVudGVyUGFzczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW50ZXIgWW91ciBQYXNzd29yZCBIZXJlIiB9LAogICAgICB9LAogICAgICBzaWduSW46IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2lnbiBpbiIgfSB9LAogICAgICBmb3JnZXRQYXNzOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJGb3JnZXQgeW91ciBQYXNzd29yZD8iIH0sCiAgICAgIH0sCiAgICAgIGF1dGhlbnRpY2F0b3I6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkdvb2dsZSBBdXRoZW50aWNhdG9yIGNvZGUiIH0sCiAgICAgIH0sCiAgICAgIGVudGVyQ29kZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGxlYXNlIEVudGVyIHlvdXIgY29kZSIgfSwKICAgICAgfSwKICAgICAgdHdvRmFjdG9yOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlR3byBGYWN0b3IgQ29kZSIgfSB9LAogICAgfSwKICAgIGZvcmdldFBhc3N3b3JkOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZvcmdvdCBZb3VyIFBhc3N3b3JkPyIgfSB9LAogICAgICBzdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiUGxlYXNlIGVudGVyIHlvdXIgZW1haWwgdG8gcmVzZXQgeW91ciBwYXNzd29yZC4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIEVtYWlsQWRkcmVzczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbWFpbCBBZGRyZXNzIiB9IH0sCiAgICAgIEVudGVyWW91ckVtYWlsQWRkcmVzczogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW50ZXIgeW91ciBlbWFpbCBhZGRyZXNzIiB9LAogICAgICB9LAogICAgICBjb250aW51ZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb250aW51ZSIgfSB9LAogICAgICBWZXJpZnlFbWFpbFRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJWZXJpZnkgWW91ciBFbWFpbCIgfSwKICAgICAgfSwKICAgICAgVmVyaWZ5RW1haWxTdWJ0aXRsZTogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbnRlciB0aGUgY29kZSBzZW50IHRvIHlvdXIgZW1haWwiIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiZm9yIHZlcmlmaWNhdGlvbi4gVGhlIGNvZGUgaXMgdmFsaWQgZm9yIDEwIG1pbnV0ZXMuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgICAgUmVzZW5kRW1haWw6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVzZW5kIGVtYWlsIiB9IH0sCiAgICAgIFNldE5ld1Bhc3N3b3JkVGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNldCBZb3VyIE5ldyBQYXNzd29yZCIgfSwKICAgICAgfSwKICAgICAgU2V0TmV3UGFzc3dvcmRTdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQ3JlYXRlIGEgc2VjdXJlIHBhc3N3b3JkIGZvciB5b3VyIGFjY291bnQuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBFbnRlckFOZXdQYXNzd29yZDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW50ZXIgYSBuZXcgcGFzc3dvcmQiIH0sCiAgICAgIH0sCiAgICAgIEVudGVyQU5ld1Bhc3N3b3JkSGVyZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW50ZXIgYSBuZXcgcGFzc3dvcmQgaGVyZSIgfSwKICAgICAgfSwKICAgICAgQ29uZmlybVlvdXJQYXNzd29yZDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29uZmlybSB5b3VyIHBhc3N3b3JkIiB9LAogICAgICB9LAogICAgICBDb25maXJtWW91clBhc3N3b3JkSGVyZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29uZmlybSB5b3VyIHBhc3N3b3JkIGhlcmUiIH0sCiAgICAgIH0sCiAgICAgIFNldE5ld1Bhc3N3b3JkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTZXQgTmV3IFBhc3N3b3JkIiB9LAogICAgICB9LAogICAgICBwYXNzQ2hhbmdlZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQYXNzd29yZCBDaGFuZ2VkISIgfSB9LAogICAgICBwYXNzd29yZENoYW5nZWRTdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiQ29uZ3JhdHVsYXRpb25zLCB5b3VyIHBhc3N3b3JkIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgY29udGludWVUb0Rhc2hib2FyZDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29udGludWUgdG8gRGFzaGJvYXJkIiB9LAogICAgICB9LAogICAgfSwKICAgIHNpZ25VcDogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJKb2luIFVzIFRvZGF5ISIgfSB9LAogICAgICBzdWJ0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiU3RhcnQgYnkgZW50ZXJpbmcgeW91ciBlbWFpbCB0byBjcmVhdGUgYW4gYWNjb3VudC4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGFscmVhZHk6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFscmVhZHkgaGF2ZSBhbiBhY2NvdW50PyIgfSwKICAgICAgfSwKICAgICAgc2lnbkluOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNpZ24gaW4iIH0gfSwKICAgICAgZ29vZ2xlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlNpZ24gdXAgd2l0aCBHb29nbGUiIH0gfSwKICAgICAgY3JlYXRQYXNzOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNyZWF0ZSBhIFBhc3N3b3JkIiB9IH0sCiAgICAgIHN1YjI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkNob29zZSBhIHN0cm9uZyBwYXNzd29yZCBmb3IgeW91ciBhY2NvdW50LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgcGFzczE6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW50ZXIgYSBuZXcgcGFzc3dvcmQiIH0gfSwKICAgICAgcGFzczFQbGFjZWhvbGRlcjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRW50ZXIgYSBuZXcgcGFzc3dvcmQgaGVyZSIgfSwKICAgICAgfSwKICAgICAgcGFzczI6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29uZmlybSB5b3VyIHBhc3N3b3JkIiB9IH0sCiAgICAgIHBhc3MyUGxhY2Vob2xkZXI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbmZpcm0geW91ciBwYXNzd29yZCBoZXJlIiB9LAogICAgICB9LAogICAgICBjb25maXJtRW1haWw6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbmZpcm0gWW91ciBFbWFpbCIgfSwKICAgICAgfSwKICAgICAgY29uZmlybUVtYWlsU3ViOiBbCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVudGVyIHRoZSBjb2RlIHNlbnQgdG8geW91ciBlbWFpbCIgfSwKICAgICAgICB9LAogICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiZm9yIGFjY291bnQgc2V0dXAuIiB9IH0sCiAgICAgIF0sCiAgICAgIFNpZ25VcDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTaWduIHVwIiB9IH0sCiAgICAgIGVudGVyT1RQOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVudGVyIFRoZSBDb2RlIiB9IH0sCiAgICAgIEVudGVyT1RQUGxhY2Vob2xkZXI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVudGVyIHlvdXIgb3RwIGNvZGUgaGVyZSIgfSwKICAgICAgfSwKICAgICAgcmVzZW5kOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJlc2VuZCBlbWFpbCIgfSB9LAogICAgICB3ZWxjb21lVGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2VsY29tZSBhYm9hcmQhIiB9IH0sCiAgICAgIHdlbGNvbWVTdWI6IFsKICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbmdyYXR1bGF0aW9ucyEgWW91ciBlbWFpbCIgfSB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY29uZmlybWVkLiIgfSwKICAgICAgICB9LAogICAgICBdLAogICAgICBjb250aW51ZVRvRGFzaGJvYXJkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJDb250aW51ZSB0byBEYXNoYm9hcmQiIH0sCiAgICAgIH0sCiAgICB9LAogIH0sCiAgcXVpY2tBY2Nlc3M6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUXVpY2sgQWNjZXNzIiB9IH0sCiAgdGVybXNBbmRSdWxlc1RpdGxlOiB7CiAgICB0OiAwLAogICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVGVybXMgYW5kIENvbmRpdGlvbnMiIH0sCiAgfSwKICB0ZXJtc0FuZENvbmRpdGlvbnNEZXNjcmlwdGlvbjogewogICAgdDogMCwKICAgIGI6IHsKICAgICAgdDogMiwKICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgczogIkl0IGlzIG1hbmRhdG9yeSBmb3IgYWxsIGN1c3RvbWVycyB0byByZWFkIGFuZCBhZ3JlZSB3aXRoIE5Db25uZWN0IHRlcm1zIG9mIHNlcnZpY2UgYmVmb3JlIHBsYWNpbmcgYW55IG9yZGVyLiBUaGUgZm9sbG93aW5nIHRlcm1zIGFuZCBjb25kaXRpb25zIGFyZSBjYXRlZ29yaXplZCBiYXNlZCBvbiB0aGVpciBnZW5lcmFsIG9yIHNwZWNpZmljIGFwcGxpY2F0aW9uLiBGdXJ0aGVybW9yZSwgdGhlcmUgaXMgYSBkZWRpY2F0ZWQgc2VjdGlvbiBmb3IgZWFjaCBkZXN0aW5hdGlvbiBjdXJyZW5jeSAoZm9yIGV4YW1wbGUgUGF5UGFsLCBQZXJmZWN0IE1vbmV5IGFuZCBzbyBvbikgdGhhdCBOQ29ubmVjdCBvZmZlcnMgc2VydmljZXMgZm9yLiBJdCBpcyBuZWNlc3NhcnkgZm9yIGN1c3RvbWVycyB0byByZWFkIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBzcGVjaWZpYyB0byB0aGUgZS1jdXJyZW5jeSBiZWZvcmUgaW5pdGlhdGluZyB0aGUgZXhjaGFuZ2UgcHJvY2VzcyBvbiBOQ29ubmVjdCBwbGF0Zm9ybS4iLAogICAgfSwKICB9LAogIFRlcm1zTWV0YVRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlRlcm1zIG9mIFNlcnZpY2VzIiB9IH0sCiAgdGVybXNNZXRhRGVzY3JpcHRpb246IHsKICAgIHQ6IDAsCiAgICBiOiB7CiAgICAgIHQ6IDIsCiAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgIHM6ICJUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVkaWNhdGVkIHRvIE5Db25uZWN0IHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBlYWNoIGRlc3RpbmF0aW9uIGN1cnJlbmN5IChQYXlQYWwsIFBlcmZlY3QgTW9uZXkgYW5kIHNvIG9uKSB0aGF0IE5Db25uZWN0IG9mZmVycyBzZXJ2aWNlcyBmb3IuIiwKICAgIH0sCiAgfSwKICB0ZXJtc0FuZENvbmRpdGlvbnM6IFsKICAgIHsKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiR2VuZXJhbCBSdWxlcyIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICIxLiBBbGwgZXhjaGFuZ2Ugb3BlcmF0aW9ucyBtdXN0IG9ubHkgdGFrZSBwbGFjZSBvbiBOQ29ubmVjdCBwbGF0Zm9ybSB3aXRoIGhpLmV4Y2hhbmdlIFVSTCBhZGRyZXNzLiBBbGwgd2FsbGV0IGFkZHJlc3NlcyBhbmQgYWNjb3VudCBudW1iZXJzIGFyZSBwcm92aWRlZCBpbiB0aGUgNHRoIHN0ZXAgaW4gdGhlIGV4Y2hhbmdlIHByb2Nlc3MuIE5vIG9uZSBmcm9tIE5Db25uZWN0IHByb3ZpZGVzIHlvdSB3aXRoIHdhbGxldCBhZGRyZXNzLCBiYW5rIGFjY291bnQgbnVtYmVyLCBJQkFOIG9yIGFueSBvdGhlciBmb3JtcyBvZiBhY2NvdW50IG51bWJlciBmb3IgdHJhbnNmZXJyaW5nIG1vbmV5IG9yIGFza2luZyBmb3IgYWRkaXRpb25hbCBmZWVzLiBJbiBjYXNlIHRoZXJlIGFyZSBhZGRpdGlvbmFsIGZlZXMsIE5Db25uZWN0IHN1cHBvcnQgdGVhbSB3aWxsIHJlYWNoIG91dCB0byB0aGUgY3VzdG9tZXIgdmlhIGVtYWlsICh0aGUgZW1haWwgYWRkcmVzcyBjb250YWlucyBOQ29ubmVjdCBkb21haW4gbmFtZSkgdG8gbm90aWZ5IHRoZW0uIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiMy4gQWxsIGZlZXMgYW5kIGV4cGVuc2VzIGFyZSBzdGF0ZWQgY2xlYXJseSBpbiB0aGUgZmluYWwgc3RlcCBvZiB5b3VyIG9yZGVyIHByb2Nlc3MuIFBsZWFzZSBwYXkgYXR0ZW50aW9uIHRvIHRoZSBmaW5hbCBhbW91bnQgc3RhdGVkIHdpdGhpbiB0aGUg4oCcWW91IFJlY2VpdmXigJ0gc2VjdGlvbi4gQ3VzdG9tZXJzIGNhbiBhbHNvIHNlZSB0aGUgYWRkaXRpb25hbCBmZWVzIGFuZCBvdGhlciBjaGFyZ2VzIG9uIHRoYXQgc2VjdGlvbi4gTm8gb25lIGZyb20gTkNvbm5lY3Qgd2lsbCBldmVyIGFzayB5b3UgZm9yIGFkZGl0aW9uYWwgZmVlcyB0aGF0IGFyZSBub3Qgc3RhdGVkIGluIHRoZSBmaW5hbCBzdGVwIG9mIHlvdXIgb3JkZXIuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiNC4gT3JkZXJzIGludm9sdmluZyBjcnlwdG9jdXJyZW5jaWVzIG9uIG9uZSBvciBib3RoIHNpZGVzIG9mIHRoZSBleGNoYW5nZSBkaXJlY3Rpb24gc2hvdWxkIGJlIHBhaWQgaW4gbGVzcyB0aGFuIDIwIG1pbnV0ZXMuIER1ZSB0byB0aGUgdm9sYXRpbGUgbmF0dXJlIG9mIGNyeXB0b2N1cnJlbmNpZXMsIHVucGFpZCBvcmRlcnMgd2lsbCBiZSBjYW5jZWxlZCBhZnRlciAyMCBtaW51dGVzIGZyb20gcGxhY2luZyB0aGUgb3JkZXIgYW5kIHVzZXJzIGhhdmUgdG8gcGxhY2UgYSBuZXcgb3JkZXIgZm9yIHRoZSBzYW1lIG9wZXJhdGlvbi4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICI1LiBGb3IgcGVuZGluZyBvcmRlcnMsIGlmIHRoZSBzZW50IGFtb3VudCBmcm9tIHRoZSBjdXN0b21lciB0YWtlcyBtb3JlIHRoYW4gMjAgbWludXRlcyB0byBzZXR0bGUgaW50byBOQ29ubmVjdOKAmXMgd2FsbGV0LCB0aGUgcGxhdGZvcm0gd2lsbCBhdXRvbWF0aWNhbGx5IGNhbmNlbCB0aGUgb3JkZXIuIEhvd2V2ZXIsIGlmIHRoZSBzZW50IGFtb3VudCBpcyBkZXBvc2l0ZWQgaW50byBOQ29ubmVjdCBhY2NvdW50IGFmdGVyIDIwIG1pbnV0ZXMsIHRoZSBwbGF0Zm9ybSB3aWxsIHJlZG8gdGhlIG9yZGVyIGJhc2VkIG9uIG5ldyBwcmljZXMgYW5kIGZlZXMuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiNi4gUmVnYXJkbGVzcyBvZiB0aGUgS1lDIG9yIFNpZ24gVXAgcmVxdWlyZW1lbnRzIG9uIHRoZSBwbGF0Zm9ybSwgTkNvbm5lY3QgY2FuIGNvbnRhY3QgdGhlIGN1c3RvbWVycyBhbmQgYXNrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGluIGNhc2UgYW55IHByb2JsZW0gb2NjdXJzIHdpdGggYSB0cmFuc2FjdGlvbi4gU3Vic2VxdWVudGx5LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIjcuIGN1c3RvbWVycyBtdXN0IHByb3ZpZGUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGluIGNhc2UgdGhlcmXigJlzIGEgbmVlZCBmb3IgZnVydGhlciBjb21tdW5pY2F0aW9uLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIjguIFVzZXJzIG11c3QgcGF5IGV4YWN0bHkgdGhlIGFtb3VudCB0aGF0IGlzIHN0YXRlZCBvbiB0aGUgZmluYWwgc3RhZ2Ugb2YgcGxhY2luZyB0aGVpciBvcmRlci4gU2VuZGluZyBhbiBhbW91bnQgdGhhdCBkb2VzIG5vdCBtYXRjaCB0aGUgaW5pdGlhbCBvcmRlciwgd2lsbCBsZWFkIHRvIHN1c3BlbnNpb24gb2YgdGhlIG9yZGVyLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIjkuIE9yZGVycyBtdXN0IGJlIHBhaWQgb25seSB0byB0aGUgd2FsbGV0IGFkZHJlc3MvQWNjb3VudCBudW1iZXIgc3RhdGVkIGJ5IE5Db25uZWN0IG9uIHRoZSBmaW5hbCBzdGVwIG9mIHRoZWlyIG9yZGVyLiBOQ29ubmVjdCBuZXZlciBhbm5vdW5jZXMgYWNjb3VudCBudW1iZXJzIG9yIHdhbGxldCBhZGRyZXNzZXMgdmlhIFRlbGVncmFtLCBXaGF0c0FwcCBvciBvdGhlciBzaW1pbGFyIHBsYXRmb3Jtcy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICIxMC4gUmVzcG9uc2liaWxpdHkgb24gYm90aCBzaWRlcyBpcyByZW1vdmVkIGluIHRoZSBldmVudCBvZiB0aGUgb2NjdXJyZW5jZSBvZiBjaXJjdW1zdGFuY2VzIHRoYXQgdGhleSBhcmUgdW5hYmxlIHRvIGNoYW5nZSBvciBwcmV2ZW50LiBTdWNoIGNpcmN1bXN0YW5jZXMgaW5jbHVkZSBnZW5lcmFsIG1vbWVudHM6IG5hdHVyYWwgZGlzYXN0ZXJzLCB0ZXJyb3Jpc3QgYXR0YWNrcywgY2l2aWwgZGlzdHVyYmFuY2VzLCBzdHJpa2VzLiBOZXR3b3JrIGZhaWx1cmVzLCBwb3dlciBzdXBwbHkgcHJvYmxlbXMgYW5kIG90aGVyIHVuZm9yZXNlZW4gY2F1c2VzIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICIxMS4gQWRtaW5pc3RyYXRpb24gTkNvbm5lY3QgaGFzIHRoZSByaWdodCB0byBjaGFuZ2Ugb3Igc3VwcGxlbWVudCB0aGUgdGV4dCBvZiB0aGUgYWJvdmUgYWdyZWVtZW50LiBDaGFuZ2VzIGNvbWUgaW50byBmb3JjZSBmcm9tIHRoZSBtb21lbnQgdGhleSBhcmUgcG9zdGVkIG9uIHRoZSBzaXRlLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIjEyLiBBbGwgcHJpY2VzIGFuZCBmZWVzIGFyZSBvbmx5IHZhbGlkIGZvciAyMCBtaW51dGVzLiBJbiBjYXNlIHRoZSBjdXN0b21lciBmYWlscyB0byBwYXkgdGhlIHRyYW5zYWN0aW9uIGFtb3VudCB3aXRoaW4gMjAgbWludXRlcywgdGhlaXIgb3JkZXIgd2lsbCBiZSBjb25kdWN0ZWQgYmFzZWQgb24gbmV3IHByaWNlcyBhbmQgZmVlcy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJnZW5lcmFsX3J1bGVzIiB9IH0sCiAgICB9LAogICAgewogICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJ3ZWJtb25leV9ydWxlcyIgfSB9LAogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2VibW9uZXkgKFdNWikgRXhjaGFuZ2UgUnVsZXMiIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiBbCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlVzZXJzIG11c3QgcHV0IHRoZSBUcmFjayBJRCAoT3JkZXIgSUQpIGFzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlbiBzZW5kaW5nIFdlYm1vbmV5IHRvIE5Db25uZWN04oCZcyBwdXJzZS4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJXZWJtb25leSBvcmRlcnMgd2l0aCBhIG1pc3NpbmcgVHJhY2sgSUQgd2lsbCBiZSBzdXNwZW5kZWQuIENvbnNlcXVlbnRseSwgY3VzdG9tZXJzIGNhbiBzdWJtaXQgYSByZWZ1bmQgcmVxdWVzdCB0byB0aGUgTkNvbm5lY3Qgc3VwcG9ydCB0ZWFtLiBOQ29ubmVjdCB0ZWFtIHJlc2VydmVzIHRoZSByaWdodCB0byBhcHByb3ZlIG9yIGRpc2FwcHJvdmUgdGhlIHJlZnVuZCByZXF1ZXN0IGJhc2VkIG9uIHRoZSBjaXJjdW1zdGFuY2VzLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlRoZSByZWZ1bmQgZmVlIHdpbGwgYmUgMC44JSBvZiB0aGUgcmVjZWl2ZWQgZnVuZHMuIEZ1cnRoZXJtb3JlLCB0aGVyZSBtYXkgb3IgbWF5IG5vdCBiZSBhIHBlbmFsdHkgY2hhcmdlZCBmb3IgdGhlIHJlZnVuZGVkIHRyYW5zYWN0aW9uLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIk5Db25uZWN0IGNhbm5vdCBleGNoYW5nZSBXZWJNb25leSBmb3IgQ3J5cHRvY3VycmVuY2llcyBvciBQZXJmZWN0IE1vbmV5IGFzIGl0IGlzIHN0cmljdGx5IGZvcmJpZGRlbiBieSBXZWJNb25leS4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJQbGVhc2Ugbm90ZSB0aGF0IFdlYk1vbmV5IGFjY291bnRzLCBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdGhlIGFjY291bnQsIGFyZSBzdWJqZWN0IHRvIGRhaWx5IGFuZCBtb250aGx5IHRyYW5zZmVyIGxpbWl0cy4gVXNlcnMgbXVzdCBiZSBhd2FyZSBvZiB0aGVpciBhY2NvdW50IGxpbWl0IGJlZm9yZSBwbGFjaW5nIGEgV2ViTW9uZXkgZXhjaGFuZ2Ugb3JkZXIuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSWYgTkNvbm5lY3QgaXMgc2VuZGluZyBXZWJNb25leSB0byB1c2Vyc+KAmSBwdXJzZSwgdGhlIFdlYk1vbmV5IGZlZSBpcyBwYWlkIGJ5IE5Db25uZWN0LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIllvdSBjYW4gZmluZCB5b3VyIFdlYk1vbmV5IGFjY291bnQgbGltaXQgYnkgY2hlY2tpbmcgdGhlIHRhYmxlIGJlbG93OiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogICAgewogICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJwYXlQYWxfZXhjaGFuZ2VfcnVsZXMiIH0gfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5UGFsIEV4Y2hhbmdlIFJ1bGVzIiB9IH0sCiAgICAgIGRlc2NyaXB0aW9uOiBbCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIk5Db25uZWN0IHdpbGwgc2VuZCBQYXlQYWwgZnVuZHMgdGhyb3VnaCDigJxTZWxsaW5nIGdvb2RzIGFuZCBzZXJ2aWNlcywgdGhlIHRyYW5zYWN0aW9uIGZlZSBpcyB2YXJpYWJsZSBmcm9tIDIuOSAlIHRvIDUuOSAlICsgMC4zMCAkIGZpeGVkIGZlZS4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJOQ29ubmVjdCBjYW4gc2VuZCBQYXlQYWwgZnVuZHMgdmlhIOKAnEZyaWVuZHMgYW5kIEZhbWlseeKAnSB1cG9uIHJlcXVlc3QgZm9yIHRob3NlIHdobyBjYW5ub3QgcmVjZWl2ZSB2aWEgdGhlIOKAnEdvb2RzIGFuZCBTZXJ2aWNlc+KAnSBtZXRob2RzLiBGb3IgdGhhdCwgY3VzdG9tZXJzIGNhbiBnZXQgaW4gdG91Y2ggd2l0aCBOQ29ubmVjdOKAmXMgc3VwcG9ydCB0ZWFtIHRvIG1ha2UgYW4gaW5xdWlyeS4gRnVydGhlcm1vcmUsIHRoZSBjdXN0b21lciB3aG8gaXMgcmVjZWl2aW5nIFBheVBhbCBmdW5kcyB2aWEg4oCcRnJpZW5kcyBhbmQgRmFtaWx54oCdIG11c3QgYWdyZWUgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgYXJlIHNlbnQgdG8gdGhlbSB2aWEgZW1haWwuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQ3VzdG9tZXJzIG11c3QgcHJvdmlkZSBOQ29ubmVjdCB3aXRoIGEgdmFsaWQgYW5kIGFjdGl2ZSBQYXlQYWwgYWNjb3VudCBjYXBhYmxlIG9mIHJlY2VpdmluZyB0aGUgZnVuZHMgd2l0aG91dCBsaW1pdGF0aW9ucy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJbiBjYXNlIG9mIGEgZmFpbHVyZSB0byBzZW5kIGZ1bmRzIHRvIHRoZSBwcm92aWRlZCBQYXlQYWwgYWNjb3VudCwgTkNvbm5lY3QgdGVhbSB3aWxsIG5vdGlmeSB0aGUgY3VzdG9tZXIgYW5kIGNvbnRhY3QgdGhlbSBpbiBvcmRlciB0byByZWNlaXZlIHRoZSBjb3JyZWN0IGFkZHJlc3MuIEhvd2V2ZXIsIHNob3VsZCB0aGUgY3VzdG9tZXIgZmFpbCB0byBnZXQgaW4gY29udGFjdCB3aXRoIE5Db25uZWN0LCB0aGUgYXNzZXRzIHdpbGwgYmUgZnJvemVuIHVudGlsIE5Db25uZWN0IGNhbiBjb21tdW5pY2F0ZSB3aXRoIHRoZSBjdXN0b21lci4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJOQ29ubmVjdCB3aWxsIGtlZXAgdGhlIGFzc2V0cyBmcm96ZW4gaW4gY2FzZSBhIHRyYW5zYWN0aW9uIGZhaWxzIHRvIGdvIHRocm91Z2guIEFsdGhvdWdoIE5Db25uZWN0IGRvZXMgbm90IHByb3ZpZGUgcmVmdW5kcywgaW4gY2FzZSBhIHJlZnVuZCBpcyBhcHByb3ZlZCBieSB0aGUgcGxhdGZvcm0sIGFsbCBmZWVzIGFuZCBjaGFyZ2VzIHdpbGwgYmUgZGVkdWN0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgYW1vdW50LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkluIGNhc2UgYSBjdXN0b21lciB3aXNoZXMgdG8gc2VuZCBiYWNrIHRoZSByZWNlaXZlZCBmdW5kcyB2aWEgUGF5UGFsLCBOQ29ubmVjdCByZXNlcnZlcyB0aGUgcmlnaHQgdG8gZmlyc3QsIGFwcHJvdmUgdGhlIHJlcXVlc3QgYW5kIHNlY29uZCwgZGVjaWRlIGZvciB0aGUgdGltaW5nIG9mIHRoZSByZWZ1bmQgdHJhbnNhY3Rpb24uIEluIHRoaXMgY2FzZSwgTkNvbm5lY3Qgd2lsbCBzZW5kIGJhY2sgdGhlIGZ1bmRzIHdpdGhpbiBhIG1pbmltdW0gb2YgNzIgaG91cnMuIE1vcmVvdmVyLCB0aGUgcmVmdW5kIGZlZXMgcGx1cyBhIHBvc3NpYmxlIHBlbmFsdHkgbWF5IGFsc28gYmUgZGVkdWNlZCBmcm9tIHRoZSBvcmlnaW5hbCBhbW91bnQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSWYgY3VzdG9tZXJzIHdhbnQgdG8gcmVxdWVzdCBhIHJlZnVuZCBhZnRlciByZWNlaXZpbmcgUGF5UGFsIGluIHRoZWlyIGFjY291bnQsIHRoZXkgbXVzdCBub3QgY29tbWl0IHRvIHRoZSByZWZ1bmQgd2l0aG91dCBjb25zdWx0aW5nIHRoZSBOQ29ubmVjdCBzdXBwb3J0IHRlYW0gZmlyc3QuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiUmVmdW5kaW5nIFBheVBhbCBhbW91bnRzIHdpdGhvdXQgZGlzY3Vzc2luZyBpdCB3aXRoIE5Db25uZWN0IHN1cHBvcnQgdGVhbSBtaWdodCBsZWFkIHRvIGxvc2luZyB0aGUgYXNzZXRzLiBJbiB0aGUgYmVzdC1jYXNlIHNjZW5hcmlvLCAxLjUlIHRvIDIlIG9mIHRoZSByZWZ1bmRlZCBhbW91bnQgd2lsbCBiZSBkZWR1Y3RlZCBmcm9tIHlvdXIgb3JpZ2luYWwgYW1vdW50LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIk5Db25uZWN0IHJlc2VydmVzIHRoZSByaWdodCB0byBzZW5kIGZ1bmRzIHZpYSBQYXlQYWwgdXNpbmcgbXVsdGlwbGUgYWNjb3VudHMuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiUGF5UGFsIGNhbiBob2xkIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMgZnJvbSAyNCBob3VycyB0byAyMSBkYXlzIGZvciBhIGNvbmZpcm1hdGlvbi4gSWYgdGhlIGNvbmZpcm1hdGlvbiBidXR0b24gaXMgYWNjZXNzaWJsZSBmcm9tIG91ciBzaWRlLCB3ZSB3aWxsIGNvbmZpcm0gdGhlIHBheW1lbnQgcXVpY2tseS4gT3RoZXJ3aXNlLCBjdXN0b21lcnMgd2lsbCBoYXZlIHRvIHdhaXQgZm9yIFBheVBhbCB0byB1bmhvbGQgdGhlIHNlbnQgYW1vdW50LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIk5Db25uZWN0IHdpbGwgbm90IGJlIGFjY291bnRhYmxlIGluIGNhc2UgdGhlIHVzZXJzIFBheVBhbCBhY2NvdW50IGdldHMgbGltaXRlZCBieSBQYXlQYWwgZHVlIHRvIGFueSByZWFzb24uIEJ1dCBpbiBjYXNlIG9mIHN1Y2ggaW5jaWRlbnRzIGhhcHBlbmluZywgeW91IGNhbiBhbHdheXMgY29udGFjdCBOQ29ubmVjdCBTdXBwb3J0IHRlYW0gdG8gZ3VpZGUgeW91IGZvciBsaWZ0aW5nIHRoZSBsaW1pdGF0aW9ucy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJUaGVyZSBhcmUgYSB2YXJpZXR5IG9mIHJlYXNvbnMgb24gd2h5IFBheVBhbCBtYXkgbGltaXQgYW4gYWNjb3VudC4gVGhlIHJlYXNvbnMgYmVsb3cgYXJlIHNvbWUgb2YgdGhlIG1vcmUgY29tbW9uIHJlYXNvbjoiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJZb3UgYXJlIG5ldyB0byByZWNlaXZpbmcgcGF5bWVudHMgdmlhIFBheVBhbCIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIllvdXIgYWNjb3VudCB3YXMgaW5hY3RpdmUgZm9yIGEgbG9uZyB0aW1lIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiWW91ciBwcmV2aW91cyBjdXN0b21lcnMgZmlsZWQgZm9ybWFsIGNvbXBsYWludHMgZm9yIGEgcmVmdW5kLCBkaXNwdXRlLCBvciBjaGFyZ2ViYWNrIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiWW91IGhhdmUgYSBzdXNwaWNpb3VzIHNlbGxpbmcgcGF0dGVybiBkdWUgdG8gUGF5UGFsIGFsZ29yaXRobXMiLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJZb3UgYXJlIHNlbGxpbmcgcmlza2llciBpdGVtcyIgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGlzc3VlIHlvdSBtYXkgdmlzaXQgdGhpcyBwYWdlOiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogICAgewogICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJwYXlQYWxfcmVmdW5kX3J1bGVzIiB9IH0sCiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBheVBhbCBSZWZ1bmQgUnVsZXMiIH0gfSwKICAgICAgZGVzY3JpcHRpb246IFsKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiTkNvbm5lY3QgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIGFwcHJvdmUgb3IgZGlzYXBwcm92ZSBhbGwgUGF5UGFsIHJlZnVuZCByZXF1ZXN0cyBiYXNlZCBvbiB0aGUgY2lyY3Vtc3RhbmNlcy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJbiBjYXNlIHRoZSBjdXN0b21lcuKAmXMgUGF5UGFsIGFjY291bnQgY2Fubm90IHJlY2VpdmUgZnVuZHMgYW5kIHRoZSBwYXltZW50IGlzIHN1c3BlbmRlZCwgLCB0aGUgcGxhdGZvcm0gd2lsbCByZWZ1bmQgdGhlIGFtb3VudCByZWNlaXZlZCBpbiBvdXIgYWNjb3VudCBhbmQgTkNvbm5lY3QgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBQYXlQYWwgZmVlcyBkZWR1Y3RlZCBmcm9tIHRoZSBjdXN0b21lcuKAmXMgYWNjb3VudCBhZnRlciByZWNlaXZpbmcgdGhlIGFtb3VudC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICBdLAogICAgfSwKICAgIHsKICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAicGF5cGFsX2ludm9pY2VfcnVsZXMiIH0gfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGF5UGFsIEludm9pY2UgUnVsZXMiIH0gfSwKICAgICAgZGVzY3JpcHRpb246IFsKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQWxsIFBheVBhbCBJbnZvaWNlIG9yZGVycyBhcmUgbm9uLXJlZnVuZGFibGUuIE9uY2UgdGhlIHBheW1lbnQgaW4gdGhlIGRlc3RpbmF0aW9uIHdlYnNpdGUgaXMgZG9uZSwgaXQgY2Fubm90IGJlIHJldmVyc2VkLsKgIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiVGhlIGN1c3RvbWVycyBtdXN0IHByb3ZpZGUgYWxsIHRoZSByZWxhdGVkIGluZm9ybWF0aW9uIHRoYXQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgcHVyY2hhc2UuIEluIGNhc2UgdGhleSBmYWlsIHRvIHByb3ZpZGUgc3VmZmljaWVudCBpbmZvcm1hdGlvbiwgdGhlIG9yZGVyIHdpbGwgYmUgc3VzcGVuZGVkLiBJbiBzdWNoIGEgY2FzZSwgdGhlIE5Db25uZWN0IHN1cHBvcnQgdGVhbSB3aWxsIGNvbnRhY3QgdGhlbSB2aWEgdGhlIGVtYWlsIGFkZHJlc3MgdGhleSBoYXZlIHByb3ZpZGVkLiBTaG91bGQgdGhlIGN1c3RvbWVyIGZhaWwgdG8gYW5zd2VyIE5Db25uZWN0IHN1cHBvcnQsIHRoZSBvcmRlciB3aWxsIHJlbWFpbiBzdXNwZW5kZWQgdW50aWwgdGhlIGlzc3VlIGlzIHJlc29sdmVkIGJ5IHRoZSBjdXN0b21lci4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJOQ29ubmVjdCB3aWxsIG5vdCBzaWduIHVwIG9yIG9wZW4gYW4gYWNjb3VudCBvbiBhbnkgd2Vic2l0ZSBvbiBiZWhhbGYgb2YgdGhlIGN1c3RvbWVycyBmb3IgdGhlIFBheVBhbCBJbnZvaWNlIG9yZGVyLiBUaGUgY3VzdG9tZXIgbXVzdCBwcm92aWRlIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgZm9yIHRoZWlyIGFjY291bnQgb24gdGhlIHdlYnNpdGUgdG8gZ3JhbnQgTkNvbm5lY3Qgc2FsZXMgdGVhbSBhY2Nlc3MgZm9yIHRoZSBwdXJjaGFzZS4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJbiBjYXNlIHRoZSBkZXN0aW5hdGlvbiB3ZWJzaXRlIGZvciB0aGUgUGF5UGFsIEludm9pY2UgcHVyY2hhc2UgcmVxdWlyZXMgYW55IHNvcnQgb2YgYXV0aGVudGljYXRpb24gc3VjaCBhcyBlbWFpbCB2ZXJpZmljYXRpb24gb3IgcGhvbmUgbnVtYmVyIHZlcmlmaWNhdGlvbiwgdGhlIG9yZGVyIHdpbGwgYmUgc3VzcGVuZGVkIGFuZCB0aGUgTkNvbm5lY3QgdGVhbSB3aWxsIGNvbnRhY3QgdGhlIGN1c3RvbWVyIHdpdGggaW5zdHJ1Y3Rpb25zLiBJbiBjYXNlIHRoZSBjdXN0b21lciBmYWlscyB0byBhbnN3ZXIgTkNvbm5lY3QsIHRoZSBvcmRlciB3aWxsIHJlbWFpbiBzdXNwZW5kZWQgdW50aWwgdGhlIGlzc3VlIGlzIHJlc29sdmVkLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIklmIHRoZXJlIGlzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBJbnZvaWNlIG9yZGVyIHRoYXQgdGhlIGN1c3RvbWVyIHdhbnRzIHRvIHNoYXJlIHdpdGggTkNvbm5lY3QsIHRoZXkgbXVzdCBjb250YWN0IE5Db25uZWN0IHN1cHBvcnQgdGVhbSBhbmQgbm90aWZ5IHRoZW0gYmVmb3JlIG1ha2luZyB0aGVpciBwYXltZW50cy4gRmFpbGluZyB0byBwcm92aWRlIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gY2FuIGxlYWQgdG8gdGhlIHN1c3BlbnNpb24gb2YgdGhlIEludm9pY2Ugb3JkZXIuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgIGlkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJjcnlwdG9jdXJyZW5jaWVzX2V4Y2hhbmdlX3J1bGVzIiB9LAogICAgICB9LAogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ3J5cHRvY3VycmVuY2llcyBFeGNoYW5nZSBSdWxlcyIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IFsKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiV2hlbiBzZW5kaW5nIGFueSBmb3JtIG9mIGNyeXB0b2N1cnJlbmN5IHRvIE5Db25uZWN0IHdhbGxldHMsIGN1c3RvbWVycyBtdXN0IGF0dGFjaCBhIHNjcmVlbnNob3Qgb2YgdGhlaXIgd2FsbGV0IHRoYXQgaW5jbHVkZXMgdGhlIFRYSUQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQSBjcnlwdG9jdXJyZW5jeSBleGNoYW5nZSBvcmRlciB3aXRob3V0IFRYSUQgb3Igb3RoZXIgcmVxdWlyZWQgaW5mb3JtYXRpb24gaW5jbHVkZWQgaW4gdGhlIHNjcmVlbnNob3QsIHdpbGwgbGVhZCB0byBzdXNwZW5kaW5nIHRoZSBvcmRlciBmcm9tIE5Db25uZWN0IHVudGlsIHRoZSBjdXN0b21lciBwcm92aWRlcyBhIHNjcmVlbnNob3Qgd2l0aCBhbGwgcmVxdWlyZWQgZGF0YS4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJZiBjdXN0b21lcnMgYXJlIHNlbmRpbmcgQmluYW5jZSBDb2luIChCTkIpIG9yIFJpcHBsZSAoWFJQKSB0aGV5IHNob3VsZCBhbHNvIGluY2x1ZGUgdGhlIFRhZyBpbiB0aGVpciBvcmRlciBkZXRhaWxzLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkFsbCBjcnlwdG9jdXJyZW5jeSBleGNoYW5nZSBvcmRlcnMgd2lsbCBiZSBwcm9jZXNzZWQgYWZ0ZXIgdGhlIHRyYW5zZmVycmVkIGNyeXB0byBhc3NldHMgYXJlIHJlY2VpdmVkIGluIE5Db25uZWN0IHdhbGxldHMuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiVHJhbnNhY3Rpb24gZmVlcyB0byBOQ29ubmVjdCB3YWxsZXRzIGFyZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSB1c2VyLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIk5Db25uZWN0IHdpbGwgdHJhbnNmZXIgdGhlIGV4Y2hhbmdlZCBhbW91bnQgdG8gdGhlIGRlc2lnbmF0ZWQgYWNjb3VudCBzdGF0ZWQgYnkgdGhlIGN1c3RvbWVyLiBUaGUgZXhjaGFuZ2VkIGFzc2V0cyBhcmUgZXhhY3RseSBiYXNlZCBvbiB0aGUgYW1vdW50IHJlY2VpdmVkIGluIHRoZSB3YWxsZXQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiRXZlcnkgQ3J5cHRvIGV4Y2hhbmdlIG9yZGVyIG11c3QgYmUgcGFpZCBpbiBsZXNzIHRoYW4gMjAtbWludXRlcy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJZiBhIGNyeXB0byBvcmRlciBzdGF5cyBpbiB0aGUgdW5wYWlkIHNpdHVhdGlvbiBmb3IgbW9yZSB0aGFuIDEgaG91ciwgdGhlIG9yZGVyIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYW5jZWxlZCBhbmQgdXNlcnMgc2hvdWxkIHBsYWNlIGEgbmV3IG9yZGVyLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkNyeXB0b2N1cnJlbmN5IGV4Y2hhbmdlcyBhcmUgbm9uLXJlZnVuZGFibGUuIENyeXB0byB0cmFuc2FjdGlvbnMgYXJlIGlycmV2ZXJzaWJsZSBhbmQgY2FuIG9ubHkgYmUgcmVmdW5kZWQgYnkgdGhlIHJlY2VpdmluZyBwYXJ0eS4gSW4gY2FzZSB0aGVyZSBpcyBhIHJlZnVuZCByZXF1ZXN0IHN1Ym1pdHRlZCBieSB0aGUgY3VzdG9tZXIsIE5Db25uZWN0IHJlc2VydmVzIHRoZSByaWdodCB0byBhcHByb3ZlIG9yIGRpc2FwcHJvdmUgdGhlIHJlcXVlc3QgYmFzZWQgb24gdGhlIGNpcmN1bXN0YW5jZXMuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSW4gY2FzZSB0aGUgY3VzdG9tZXIgaGFzIGZhaWxlZCB0byBkZWxpdmVyIHRoZSBmdW5kcyB0byBOQ29ubmVjdCB3YWxsZXQgYWRkcmVzcywgYSByZWZ1bmQgd2lsbCBub3QgYmUgYWNjZXB0ZWQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiSW4gY2FzZSB0aGUgY3VzdG9tZXIgaGFzIHN1Y2Nlc3NmdWxseSBzZW50IGZ1bmRzIHRvIE5Db25uZWN04oCZcyB3YWxsZXQsIHRoZXkgY2FuIHN1Ym1pdCBhIHJlZnVuZCByZXF1ZXN0IHRvIHRoZSBzdXBwb3J0IHRlYW0uIEdlbmVyYWxseSBzcGVha2luZywgdGhlIGFzc29jaWF0ZWQgZmVlcyBhbmQgYSBwb3NzaWJsZSBwZW5hbHR5IGNhbiBiZSByZWR1Y2VkIGZyb20gdGhlIGluaXRpYWwgdHJhbnNhY3Rpb24gYW1vdW50IGZyb20gdGhlIHBhcnR5IHdobyBpcyBhdCBmYXVsdCBmb3IgdGhlIHJlZnVuZGVkIG9yZGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhZCBSZWZ1bmQgUG9saWN5LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogICAgewogICAgICBpZDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAicGVyZmVjdF9tb25leV9leGNoYW5nZV9ydWxlcyIgfSwKICAgICAgfSwKICAgICAgdGl0bGU6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBlcmZlY3QgTW9uZXkgRXhjaGFuZ2UgUnVsZXMiIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiBbCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlRoZSB0cmFuc2FjdGlvbiBmZWUgZm9yIHNlbmRpbmcgYXNzZXRzIHRvIE5Db25uZWN04oCZcyBQZXJmZWN0IE1vbmV5IGFjY291bnRzIGFyZSB0byBiZSBwYWlkIGJ5IHRoZSB1c2VyLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIk5Db25uZWN0IHdpbGwgbm90IHByb3ZpZGUgcmVmdW5kcyBvbiBQZXJmZWN0IE1vbmV5IG9yZGVycyBvbiBhIHN0YW5kYXJkIGJhc2lzLiBIb3dldmVyLCB1c2VycyBjYW4gc3VibWl0IGEgcmVxdWVzdCBmb3IgYSByZWZ1bmQgYW5kIE5Db25uZWN0IHJlc2VydmVzIHRoZSByaWdodCB0byBhcHByb3ZlIG9yIGRpc2FwcHJvdmUgdGhlIHJlZnVuZCByZXF1ZXN0IGJhc2VkIG9uIHRoZSBjaXJjdW1zdGFuY2VzLiBJbiBjYXNlIG9mIGEgcmVmdW5kIGFwcHJvdmFsLCBhIHRyYW5zYWN0aW9uIGZlZSBvZiAwLjUlIG9mIHRoZSByZWNlaXZlZCBhbW91bnQgd2lsbCBiZSBkZWR1Y3RlZC4gRnVydGhlcm1vcmUsIHRoZXJlIG1heSBvciBtYXkgbm90IGJlIGEgcGVuYWx0eSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZnVuZC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJCYXNlZCBvbiBQZXJmZWN0IE1vbmV5IHBvbGljeSwgdGhlIHRyYW5zYWN0aW9uIGZlZSBmb3Igc2VuZGluZyBtb25leSBmcm9tIHVudmVyaWZpZWQgYWNjb3VudHMgaXMgMS45OSUuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgIGlkOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJwZXJmZWN0X21vbmV5X3ZvdWNoZXJfcnVsZXMiIH0sCiAgICAgIH0sCiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJQZXJmZWN0IE1vbmV5IFZvdWNoZXIgUnVsZXMiIH0sCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiBbCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlBlcmZlY3QgTW9uZXkgZS12b3VjaGVyIG9yZGVycyBhcmUgaXJyZXZlcnNpYmxlIGFuZCB3aWxsIGhhdmUgbm8gcmVmdW5kLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlRoZSBlLXZvdWNoZXIgY29kZSBhbmQgYWN0aXZhdGlvbiBjb2RlIHdpbGwgYmUgZGVsaXZlcmVkIHRvIHRoZSBjdXN0b21lciBieSBmb2xsb3dpbmcgdXAgd2l0aCB0aGUgdHJhY2sgaWQgcHJvdmlkZWQgZm9yIHRoZSBjdXN0b21lci4gVGhlIGN1c3RvbWVycyB3aWxsIGhhdmUgZnVsbCByZXNwb25zaWJpbGl0eSBmb3Iga2VlcGluZyB0aGVpciB0cmFjayBpZCBzYWZlLiBJbiBjYXNlIHRoZSBjdXN0b21lcnMgZmFpbCB0byBrZWVwIHRoZWlyIHRyYWNrIGlkIHNlY3VyZSBhbmQgc29tZW9uZSBmaW5kcyBhY2Nlc3MgdG8gdGhlaXIgdm91Y2hlciBjb2RlLCBOQ29ubmVjdCB3aWxsIG5vdCBiZSBoZWxkIHJlc3BvbnNpYmxlIGZvciB0aGUgbG9zcyBvZiBmdW5kcy4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJGb3IgcmVkZWVtaW5nIGUtdm91Y2hlcnMsIEluIGNhc2UgdGhlIGN1c3RvbWVyIHByb3ZpZGVzIGFuIGludmFsaWQgdm91Y2hlciBjb2RlLCBOQ29ubmVjdCB3aWxsIG5vdCBmb2xsb3cgdXAgd2l0aCB0aGUgb3JkZXIuIEluIHRoaXMgY2FzZSwgdGhlIGN1c3RvbWVyIGNhbiB2ZXJpZnkgdGhlaXIgY29kZSBtYW51YWxseSBhbmQgY3JlYXRlIGFub3RoZXIgb3JkZXIuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogImFkdkNhc2hfcnVsZXMiIH0gfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQWR2Q2FzaCBSdWxlcyIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJGb3IgQWR2Q2FzaCBvcmRlcnMsIHRoZSBjdXN0b21lciBtdXN0IHByb3ZpZGUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIHRoYXQgaXMgdGhlIHNhbWUgYWRkcmVzcyB1c2VkIGZvciByZWdpc3RlcmluZyB0aGVpciBBZHZDYXNoIGFjY291bnQuIEluIGNhc2UgdGhlIGVtYWlsIGFkZHJlc3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIgZG9lcyBub3QgbWF0Y2ggdGhlIGVtYWlsIGFkZHJlc3MgdXNlZCBmb3IgdGhlIEFkdkNhc2ggYWNjb3VudCwgdGhlIG9yZGVyIHdpbGwgYmUgc3VzcGVuZGVkIGFuZCB0aGUgcGF5bWVudCB2ZXJpZmljYXRpb24gd2lsbCBiZSBzZW50IHRvIHRoZSBlbWFpbCBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgQWR2Q2FzaCBhY2NvdW50LiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIF0sCiAgICB9LAogICAgewogICAgICBpZDogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAibWFzdGVyY2FyZF9hbmRfdmlzYV9pbnZvaWNlX3J1bGVzIiB9LAogICAgICB9LAogICAgICB0aXRsZTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiTWFzdGVyY2FyZCAmIFZpc2EgSW52b2ljZSBSdWxlcyIgfSwKICAgICAgfSwKICAgICAgZGVzY3JpcHRpb246IFsKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiQWxsIE1hc3RlcmNhcmQgJiBWaXNhIEludm9pY2Ugb3JkZXJzIGFyZSBub24tcmVmdW5kYWJsZS4gT25jZSB0aGUgcGF5bWVudCBpbiB0aGUgZGVzdGluYXRpb24gd2Vic2l0ZSBpcyBkb25lLCBpdCBjYW5ub3QgYmUgcmV2ZXJzZWQuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB0OiAwLAogICAgICAgICAgYjogewogICAgICAgICAgICB0OiAyLAogICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICBzOiAiVGhlIGN1c3RvbWVycyBtdXN0IHByb3ZpZGUgYWxsIHRoZSByZWxhdGVkIGluZm9ybWF0aW9uIHRoYXQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgcHVyY2hhc2UuIEluIGNhc2UgdGhleSBmYWlsIHRvIHByb3ZpZGUgc3VmZmljaWVudCBpbmZvcm1hdGlvbiwgdGhlIG9yZGVyIHdpbGwgYmUgc3VzcGVuZGVkLiBJbiBzdWNoIGEgY2FzZSwgdGhlIE5Db25uZWN0IHN1cHBvcnQgdGVhbSB3aWxsIGNvbnRhY3QgdGhlbSB2aWEgdGhlIGVtYWlsIGFkZHJlc3MgdGhleSBoYXZlIHByb3ZpZGVkLiBTaG91bGQgdGhlIGN1c3RvbWVyIGZhaWwgdG8gYW5zd2VyIE5Db25uZWN0IHN1cHBvcnQsIHRoZSBvcmRlciB3aWxsIHJlbWFpbiBzdXNwZW5kZWQgdW50aWwgdGhlIGlzc3VlIGlzIHJlc29sdmVkIGJ5IHRoZSBjdXN0b21lci4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJOQ29ubmVjdCB3aWxsIG5vdCBzaWduIHVwIG9yIG9wZW4gYW4gYWNjb3VudCBvbiBhbnkgd2Vic2l0ZSBvbiBiZWhhbGYgb2YgdGhlIGN1c3RvbWVycyBmb3IgdGhlIE1hc3RlcmNhcmQgJiBWaXNhIEludm9pY2Ugb3JkZXIuIFRoZSBjdXN0b21lciBtdXN0IHByb3ZpZGUgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmb3IgdGhlaXIgYWNjb3VudCBvbiB0aGUgd2Vic2l0ZSB0byBncmFudCBOQ29ubmVjdCBzYWxlcyB0ZWFtIGFjY2VzcyBmb3IgdGhlIHB1cmNoYXNlLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkluIGNhc2UgdGhlIGRlc3RpbmF0aW9uIHdlYnNpdGUgZm9yIHRoZSBNYXN0ZXJjYXJkICYgVmlzYSBJbnZvaWNlIHB1cmNoYXNlIHJlcXVpcmVzIGFueSBzb3J0IG9mIGF1dGhlbnRpY2F0aW9uIHN1Y2ggYXMgZW1haWwgdmVyaWZpY2F0aW9uIG9yIHBob25lIG51bWJlciB2ZXJpZmljYXRpb24sIHRoZSBvcmRlciB3aWxsIGJlIHN1c3BlbmRlZCBhbmQgdGhlIE5Db25uZWN0IHRlYW0gd2lsbCBjb250YWN0IHRoZSBjdXN0b21lciB3aXRoIGluc3RydWN0aW9ucy4gSW4gY2FzZSB0aGUgY3VzdG9tZXIgZmFpbHMgdG8gYW5zd2VyIE5Db25uZWN0LCB0aGUgb3JkZXIgd2lsbCByZW1haW4gc3VzcGVuZGVkIHVudGlsIHRoZSBpc3N1ZSBpcyByZXNvbHZlZC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJJZiB0aGVyZSBpcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgSW52b2ljZSBvcmRlciB0aGF0IHRoZSBjdXN0b21lciB3YW50cyB0byBzaGFyZSB3aXRoIE5Db25uZWN0LCB0aGV5IG11c3QgY29udGFjdCBOQ29ubmVjdCBzdXBwb3J0IHRlYW0gYW5kIG5vdGlmeSB0aGVtIGJlZm9yZSBtYWtpbmcgdGhlaXIgcGF5bWVudHMuIEZhaWxpbmcgdG8gcHJvdmlkZSBzdWZmaWNpZW50IGluZm9ybWF0aW9uIGNhbiBsZWFkIHRvIHRoZSBzdXNwZW5zaW9uIG9mIHRoZSBJbnZvaWNlIG9yZGVyIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogImJhbmtfdHJhbnNmZXJfcnVsZXMiIH0gfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQmFuayBUcmFuc2ZlciBSdWxlcyIgfSB9LAogICAgICBkZXNjcmlwdGlvbjogWwogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJUaGUgY3VzdG9tZXJzIG11c3QgcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZGF0YSBwcm92aWRlZCBieSBOQ29ubmVjdCBpbmNsdWRpbmcgZmlyc3QgbmFtZSwgbGFzdCBuYW1lLCBSb3V0aW5nIE51bWJlciwgQWNjb3VudCBOdW1iZXIsIElCQU4sIGVtYWlsIGFkZHJlc3MsIGV0Yy4gSW4gY2FzZSB0aGUgY3VzdG9tZXIgZmFpbHMgdG8gbWFrZSBhIHRyYW5zYWN0aW9uIGJhc2VkIG9uIHRoZSBjb3JyZWN0IGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBwbGF0Zm9ybSwgTkNvbm5lY3Qgd2lsbCBub3QgaGF2ZSBhbnkgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBsb3NzIG9mIGZ1bmRzLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIlRoZSBiYW5rIGFjY291bnQgcHJvdmlkZWQgYnkgTkNvbm5lY3QgcGxhdGZvcm0gd2lsbCBvbmx5IGJlIHZhbGlkIGZvciAyIGhvdXJzLiBJZiB0aGUgY3VzdG9tZXIgcmVxdWlyZXMgbW9yZSB0aW1lIHRvIG1ha2UgdGhlIHBheW1lbnQsIHRoZXkgbXVzdCByZWFjaCBvdXQgdG/CoCB0aGUgTkNvbm5lY3Qgc3VwcG9ydCB0ZWFtLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIk5Db25uZWN0IHdpbGwgb25seSBhY2NlcHQgYSBiYW5rIHJlY2VpcHQgb3IgYSBzY3JlZW5zaG90IG9mIHRoZSBwYXltZW50IHJlY2VpcHQgcHJvdiBpZGVkIGJ5IHRoZSBiYW5rIGFzIGEgdmFsaWQgcHJvb2Ygb2YgcGF5bWVudC4iLAogICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJDdXN0b21lcnMgbXVzdCBzZW5kIHRoZSBjdXJyZW5jeSB0aGF0IGlzIGNob3NlbiBpbiB0aGUgZXhjaGFuZ2UgcHJvY2Vzcy4gSW4gY2FzZSBhIGN1c3RvbWVyIHNlbmRzIGFub3RoZXIgdHlwZSBvZiBjdXJyZW5jeSB0aGF0IGlzIG5vdCBzZWxlY3RlZCBpbiB0aGUgb3JkZXIsIE5Db25uZWN0IHBsYXRmb3JtIHdpbGwgZmlyc3QgY29udmVydCB0aGUgcmVjZWl2ZWQgY3VycmVuY3kgdG8gdGhlIGN1cnJlbmN5IHNlbGVjdGVkIGluIHRoZSBleGNoYW5nZSBvcmRlci4gQnkgZG9pbmcgc28sIHRoZSBleGNoYW5nZSBhbmQgbmV0d29yayBmZWVzIGZvciB0aGUgY29udmVyc2lvbiB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIG9yZGVyIGFuZCBjaGFyZ2VkIGZyb20gdGhlIGN1c3RvbWVyLiIsCiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdDogMCwKICAgICAgICAgIGI6IHsKICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgczogIkluIGNhc2UgdGhlIGJhbmsgdHJhbnNmZXIgZnJvbSB0aGUgY3VzdG9tZXIgaXMgc3VzcGVuZGVkIGJ5IHRoZSBiYW5rLCAoZm9yIHNlY3VyaXR5IHJlYXNvbnMgb3Igb3RoZXIpIE5Db25uZWN0IHdpbGwgbm90IG1ha2UgdGhlIHBheW1lbnQgdG8gdGhlIGN1c3RvbWVycyBhcyBsb25nIGFzIHRoZWlyIGJhbmsgdHJhbnNmZXIgaXMgcGVuZGluZy4gSWYgdGhlIGJhbmsgdHJhbnNmZXIgaXMgcmVqZWN0ZWQgYnkgdGhlIGJhbmssIE5Db25uZWN0IHdpbGwgbm90IHByb2Nlc3MgdGhlIG9yZGVyIGFuZCB3aWxsIG5vdCBzZW5kIGFueSBmdW5kcyB0byB0aGUgY3VzdG9tZXIuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgXSwKICAgIH0sCiAgXSwKICBuZXdCcmFuZFRpdGxlOiB7CiAgICB0OiAwLAogICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiV2VsY29tZSB0byB0aGUgTmV3IE5Db25uZWN0IiB9LAogIH0sCiAgbmV3QnJhbmREZXNjcmlwdGlvbjogewogICAgdDogMCwKICAgIGI6IHsKICAgICAgdDogMiwKICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgczogIldlIGFyZSB0aHJpbGxlZCB0byB1bnZlaWwgdGhlIGNvbXBsZXRlbHkgcmVkZXNpZ25lZCBOQ29ubmVjdOKAlGEgcGxhdGZvcm0gY3JhZnRlZCB0byBlbmhhbmNlIHlvdXIgdHJhZGluZyBleHBlcmllbmNlLiBEaXNjb3ZlciBhIHNlYW1sZXNzLCBpbnR1aXRpdmUsIGFuZCBlZmZpY2llbnQgd2F5IHRvIG5hdmlnYXRlIHRoZSB3b3JsZCBvZiBjcnlwdG8gYW5kIGZpYXQgY29udmVyc2lvbnMuIiwKICAgIH0sCiAgfSwKICBuZXdCcmFuZE1ldGFUaXRsZTogewogICAgdDogMCwKICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJyYW5kIEd1aWRlbGluZXMuIiB9LAogIH0sCiAgbmV3QnJhbmRDb250ZW50OiBbCiAgICB7CiAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIm91cl9uZXdfbG9nbyIgfSB9LAogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJPdXIgTmV3IExvZ28iIH0gfSwKICAgICAgZGVzYzE6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIk91ciBuZXcgbG9nbyBpc24ndCBqdXN0IGEgZnJlc2ggbG9vazsgaXQncyBhIHZpc3VhbCBzdG9yeSBvZiB0aGUgbWFya2V0J3MgZHluYW1pYyBuYXR1cmUgYW5kIG91ciByb2xlIHdpdGhpbiBpdC4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGxpc3Q6IFsKICAgICAgICBbCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJlZCBEb3dud2FyZCBBcnJvdzoiIH0gfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiUmVwcmVzZW50cyBjaGFsbGVuZ2luZyBtYXJrZXQgZmx1Y3R1YXRpb25zLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJHcmVlbiBVcHdhcmQgQXJyb3ciIH0gfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU3ltYm9saXplcyBwcm9maXRhYmxlIHBlYWtzIGFuZCBncm93dGguIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICBbCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkJsYWNrIEFycm93IGluIHRoZSBNaWRkbGU6IiB9IH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlNpZ25pZmllcyBOQ29ubmVjdCBhcyB0aGUgTkNvbm5lY3QgZ3JlZXRpbmcgeW91ciBuZWVkcywgZmFjaWxpdGF0aW5nIHNlYW1sZXNzIGNvbnZlcnNpb25zIGJldHdlZW4gY3J5cHRvIGFuZCBmaWF0IGN1cnJlbmNpZXMuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgXSwKICAgICAgZGVzYzI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRoaXMgZW1ibGVtIGVtYm9kaWVzIG91ciBjb21taXRtZW50IHRvIHN1cHBvcnQgeW91IHRocm91Z2ggZXZlcnkgbWFya2V0IG1vdmVtZW50LiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogInJlZGVzaWduZWRfaG9tZXBhZ2UiIH0gfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVkZXNpZ25lZCBIb21lcGFnZSIgfSB9LAogICAgICBkZXNjMTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiT3VyIGhvbWVwYWdlIGhhcyBiZWVuIHRyYW5zZm9ybWVkIHRvIG1ha2UgeW91ciBqb3VybmV5IHNpbXBsZXIgYW5kIG1vcmUgZW5nYWdpbmcuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBsaXN0OiBbCiAgICAgICAgWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJTdHJlYW1saW5lZCBOYXZpZ2F0aW9uOiIgfSB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJGaW5kIHdoYXQgeW91IG5lZWQgcXVpY2tseSBhbmQgZWFzaWx5LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJNb2Rlcm4gRGVzaWduOiIgfSB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJTeW1ib2xpemVzIHByb2ZpdGFibGUgcGVha3MgYW5kIGdyb3d0aC4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGVyc29uYWxpemVkIENvbnRlbnQ6IiB9IH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlRhaWxvcmVkIHRvIHlvdXIgaW50ZXJlc3RzIGFuZCB0cmFkaW5nIGhhYml0cy4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICBdLAogICAgICBkZXNjMjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiU3RhcnQgZWFjaCBzZXNzaW9uIHdpdGggYSBob21lcGFnZSB0aGF0IGFudGljaXBhdGVzIHlvdXIgbmVlZHMuIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHsKICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAicmVkZXNpZ25lZF9kYXNoYm9hcmQiIH0gfSwKICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmVkZXNpZ25lZCBEYXNoYm9hcmQiIH0gfSwKICAgICAgZGVzYzE6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIk5hdmlnYXRlIHdpdGggZWFzZSB1c2luZyBvdXIgdXBncmFkZWQgZGFzaGJvYXJkLCBkZXNpZ25lZCB3aXRoIHlvdSBpbiBtaW5kLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbGlzdDogWwogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSW1wcm92ZWQgQWNjZXNzaWJpbGl0eToiIH0gfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSW50dWl0aXZlIGxheW91dHMgbWFrZSB0cmFkaW5nIGVmZm9ydGxlc3MuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICBbCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVuaGFuY2VkIFZpc3VhbHM6IiB9IH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlZpYnJhbnQgY29sb3JzIGFuZCBjbGVhciBmb250cyBpbXByb3ZlIHJlYWRhYmlsaXR5LiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCb29zdGVkIFBlcmZvcm1hbmNlOiIgfSB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJFbmpveSB1cCB0byA4MCUgZmFzdGVyIHNwZWVkcyBmb3IgYSBzbW9vdGhlciBleHBlcmllbmNlLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgIF0sCiAgICAgIGRlc2MyOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3VyIGNvbW1hbmQgY2VudGVyIGlzIG5vdyBtb3JlIHBvd2VyZnVsIGFuZCB1c2VyLWZyaWVuZGx5IHRoYW4gZXZlci4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgewogICAgICBpZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJvcHRpbWl6ZWRfZXhjaGFuZ2VfYm94IiB9IH0sCiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk9wdGltaXplZCBFeGNoYW5nZSBCb3giIH0gfSwKICAgICAgZGVzYzE6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlRyYW5zYWN0IGZhc3RlciB3aXRoIG91ciBpbXByb3ZlZCBleGNoYW5nZSBib3guIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBsaXN0OiBbCiAgICAgICAgWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJVc2VyLUZyaWVuZGx5IEludGVyZmFjZToiIH0gfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiRGVzaWduZWQgZm9yIGJvdGggbmV3Y29tZXJzIGFuZCBzZWFzb25lZCB0cmFkZXJzLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJSZWFsLVRpbWUgVXBkYXRlczoiIH0gfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiQWNjZXNzIHRoZSBsYXRlc3QgbWFya2V0IHJhdGVzIGluc3RhbnRseS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2ltcGxpZmllZCBQcm9jZXNzOiIgfSB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJGZXdlciBzdGVwcyBtZWFuIHF1aWNrZXIgdHJhbnNhY3Rpb25zLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgIF0sCiAgICAgIGRlc2MyOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJFeHBlcmllbmNlIHRoZSBlZmZpY2llbmN5IG9mIHNlYW1sZXNzIGFzc2V0IGNvbnZlcnNpb24uIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICAgIHsKICAgICAgaWQ6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiY29uc2lzdGVudF9leHBlcmllbmNlIiB9IH0sCiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkNvbnNpc3RlbnQgRXhwZXJpZW5jZSIgfSB9LAogICAgICBkZXNjMTogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiV2hldGhlciB5b3UncmUgb24gYSBkZXNrdG9wLCB0YWJsZXQsIG9yIHNtYXJ0cGhvbmUsIE5Db25uZWN0IG9mZmVycyBhIHVuaWZpZWQgZXhwZXJpZW5jZS4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGxpc3Q6IFsKICAgICAgICBbCiAgICAgICAgICB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlJlc3BvbnNpdmUgRGVzaWduOiIgfSB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJFbmpveSBmdWxsIGZ1bmN0aW9uYWxpdHkgb24gYW55IGRldmljZS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVW5pZmllZCBMb29rIGFuZCBGZWVsOiIgfSB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJDb25zaXN0ZW5jeSBlbGltaW5hdGVzIHRoZSBsZWFybmluZyBjdXJ2ZS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiT24tdGhlLUdvIEFjY2VzczoiIH0gfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiU3RheSBjb25uZWN0ZWQgdG8gdGhlIG1hcmtldCB3aGVyZXZlciB5b3UgYXJlLiIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgIF0sCiAgICAgIGRlc2MyOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJZb3VyIEV4Y2hhbmdlIHBsYXRmb3JtIGFkYXB0cyB0byB5b3VyIGxpZmVzdHlsZSwgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogImVuaGFuY2VkX3BlcmZvcm1hbmNlIiB9IH0sCiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkVuaGFuY2VkIFBlcmZvcm1hbmNlIiB9IH0sCiAgICAgIGRlc2MxOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJXZSd2ZSBzdXBlcmNoYXJnZWQgb3VyIHBsYXRmb3JtIHRvIGtlZXAgeW91IGFoZWFkIGluIHRoZSBmYXN0LXBhY2VkIHRyYWRpbmcgZW52aXJvbm1lbnQuIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBsaXN0OiBbCiAgICAgICAgWwogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJVcCB0byA4MCUgRmFzdGVyIFBlcmZvcm1hbmNlOiIgfSwKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlN3aWZ0IG5hdmlnYXRpb24gYW5kIGV4ZWN1dGlvbi4iIH0sCiAgICAgICAgICB9LAogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJPcHRpbWl6ZWQgTG9hZCBUaW1lczoiIH0gfSwKICAgICAgICAgIHsKICAgICAgICAgICAgdDogMCwKICAgICAgICAgICAgYjogewogICAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgICAgICBzOiAiSW1tZWRpYXRlIGFjY2VzcyB0byB2aXRhbCBpbmZvcm1hdGlvbi4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSW1wcm92ZWQgU3RhYmlsaXR5OiIgfSB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJSZWxpYWJsZSBwZXJmb3JtYW5jZSB3aXRoIG1pbmltYWwgZG93bnRpbWUuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgXSwKICAgICAgZGVzYzI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkV2ZXJ5IHNlY29uZCBjb3VudHMsIGFuZCBOQ29ubmVjdCBlbnN1cmVzIHlvdSBtYWtlIHRoZSBtb3N0IG9mIGVhY2ggb25lLiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgIGlkOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogInVwY29taW5nX2ZlYXR1cmVzIiB9IH0sCiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlVwY29taW5nIEZlYXR1cmVzIiB9IH0sCiAgICAgIGRlc2MxOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJXZSBhcmUgY29udGludW91c2x5IGVuaGFuY2luZyBOQ29ubmVjdCB0byBicmluZyB5b3UgbW9yZSB2YWx1ZSBhbmQgYW4gZXZlbiBiZXR0ZXIgdHJhZGluZyBleHBlcmllbmNlLiBIZXJlJ3Mgd2hhdCdzIG9uIHRoZSBob3Jpem9uOiIsCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbGlzdDogWwogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjbHVzaXZlIERpc2NvdW50IENvZGVzIiB9IH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIlVubG9jayBzYXZpbmdzIHdpdGggZXZlcnkgdHJhZGUuIFNvb24sIHJlZ2lzdGVyZWQgdXNlcnMgd2lsbCBoYXZlIGFjY2VzcyB0byBleGNsdXNpdmUgZGlzY291bnQgY29kZXMsIGFsbG93aW5nIHlvdSB0byByZWR1Y2UgdHJhbnNhY3Rpb24gZmVlcyBhbmQgZ2V0IG1vcmUgb3V0IG9mIGV2ZXJ5IGV4Y2hhbmdlLiBJdCdzIG91ciB3YXkgb2YgdGhhbmtpbmcgeW91IGZvciBiZWluZyBwYXJ0IG9mIHRoZSBOQ29ubmVjdCBjb21tdW5pdHkuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICBbCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIk11bHRpLUN1cnJlbmN5IFdhbGxldCBJbnRlZ3JhdGlvbjoiIH0sCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICB0OiAwLAogICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgdDogMiwKICAgICAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgICAgIHM6ICJBbGwgeW91ciBhc3NldHMgaW4gb25lIHNlY3VyZSBwbGFjZS4gTWFuYWdlIGFuZCBzdG9yZSBhIHZhcmlldHkgb2YgY3J5cHRvY3VycmVuY2llcyBkaXJlY3RseSB3aXRoaW4geW91ciBOQ29ubmVjdCBhY2NvdW50LiBXaXRoIGRlZGljYXRlZCB3YWxsZXRzIGZvciBkaWZmZXJlbnQgY3VycmVuY2llcywgeW91J2xsIGJlIGFibGUgdG8gc2VuZCwgcmVjZWl2ZSwgYW5kIGhvbGQgYXNzZXRzIHdpdGhvdXQgbGVhdmluZyB0aGUgcGxhdGZvcm0uIEV4cGVyaWVuY2UgdW5tYXRjaGVkIGNvbnZlbmllbmNlIGFuZCBzZWN1cml0eS4iLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3Rha2luZyBPcHBvcnR1bml0aWVzIiB9IH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICB0OiAyLAogICAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgICAgczogIkVhcm4gcGFzc2l2ZSBpbmNvbWUgZWZmb3J0bGVzc2x5LiBNYXhpbWl6ZSB5b3VyIGhvbGRpbmdzIGJ5IHN0YWtpbmcgeW91ciBmdW5kcyByaWdodCBpbiB5b3VyIE5Db25uZWN0IHdhbGxldHMuIFNvb24sIHlvdSdsbCBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byBlYXJuIHByb2ZpdHMgc2ltcGx5IGJ5IGtlZXBpbmcgeW91ciBhc3NldHMgb24gb3VyIHBsYXRmb3JtLiBMZXQgeW91ciBjcnlwdG9jdXJyZW5jeSB3b3JrIGZvciB5b3UgYW5kIHdhdGNoIHlvdXIgZWFybmluZ3MgZ3JvdyBvdmVyIHRpbWUuIiwKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgXSwKICAgICAgc3RheVR1bmVkOiB7CiAgICAgICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU3RheSBUdW5lZCBmb3IgTW9yZSIgfSB9LAogICAgICAgIGRlc2M6IHsKICAgICAgICAgIHQ6IDAsCiAgICAgICAgICBiOiB7CiAgICAgICAgICAgIHQ6IDIsCiAgICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICAgIHM6ICJXZSdyZSBqdXN0IGdldHRpbmcgc3RhcnRlZC4gT3VyIGNvbW1pdG1lbnQgdG8gaW5ub3ZhdGlvbiBtZWFucyB0aGVyZSdzIGFsd2F5cyBzb21ldGhpbmcgbmV3IG9uIHRoZSB3YXkuIEtlZXAgYW4gZXllIG91dCBmb3IgYWRkaXRpb25hbCB1cGRhdGVzIGFuZCBmZWF0dXJlcyBkZXNpZ25lZCB0byBlbmhhbmNlIHlvdXIgdHJhZGluZyBleHBlcmllbmNlLiBUaGUgZnV0dXJlIGlzIGJyaWdodCwgYW5kIHdlJ3JlIGV4Y2l0ZWQgdG8gaGF2ZSB5b3Ugd2l0aCB1cyBvbiB0aGlzIGpvdXJuZXkuIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgXSwKICBob21lOiB7CiAgICBleGNoYW5nZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSIgfSB9LAogICAgZmFzdDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJGYXN0ZXIiIH0gfSwKICAgIHNhZmU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiU2FmZXIiIH0gfSwKICAgIG9ubGluZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IiB9IH0sCiAgICBub1NpZ25VcDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXaXRob3V0IFNpZ24gVXAiIH0gfSwKICAgIG5vRmVlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldpdGhvdXQgRXh0cmEgRmVlcyIgfSB9LAogICAgcmV2aWV3VGl0bGU6IHsKICAgICAgdDogMCwKICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiSGVhciBmcm9tIE5Db25uZWN0IEN1c3RvbWVycyIgfSwKICAgIH0sCiAgICBleHBsb3JlOiB7CiAgICAgIHRpdGxlOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJFeHBsb3JlIFRoZSBXb3JsZCBvZiBDcnlwdG8gQW5kIEUtQ3VycmVuY3kgRXhjaGFuZ2VzIiwKICAgICAgICB9LAogICAgICB9LAogICAgICBzdWI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkpvaW4gb3ZlciA0MCwwMDArIEN1c3RvbWVyIGFscmVhZHkgZ3Jvd2luZyB0aGVpciB3ZWFsdGggd2l0aCBOQ29ubmVjdC4iLAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIGJ0bjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJHaXZlIGl0IGEgdHJ5ISIgfSB9LAogICAgfSwKICAgIGVudGVyVHJhY2tJZDogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFbnRlciBUcmFjayBJRCIgfSB9LAogICAgdHJhY2tPcmRlcjogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJUcmFjayBPcmRlciIgfSB9LAogIH0sCiAgdHJ1c3RNYXJrOiB7CiAgICB0aXRsZTogewogICAgICB0OiAwLAogICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNoYW5nZSAmIFN3YXAgQ3J5cHRvIGFuZCBFLUN1cnJlbmN5IiB9LAogICAgfSwKICAgIHN1YjogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJZb3VyIFRydXN0ZWQgUGxhdGZvcm0gZm9yIFNlYW1sZXNzIENyeXB0b2N1cnJlbmN5IGFuZCBFLUN1cnJlbmN5IFRyYW5zYWN0aW9ucy4iLAogICAgICB9LAogICAgfSwKICB9LAogIHRvcFNlcnZpY2VzOiB7CiAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJPdXIgU2VydmljZXMiIH0gfSwKICAgIHBtOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBlcmZlY3QgTW9uZXkgRS1Wb3VjaGVyIiB9IH0sCiAgICAgIHN1YjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiU2ltcGxlIGJ1eWluZyBhbmQgcmVkZWVtaW5nIG9mIFBlcmZlY3QgTW9uZXkgVm91Y2hlcnMiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgcGF5cGFsOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBheVBhbCBFeGNoYW5nZSIgfSB9LAogICAgICBzdWI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkNvbnZlcnQgeW91ciBQYXlQYWwgZnVuZHMgaW50byB0aGUgY3VycmVuY3kgb2YgeW91ciBjaG9pY2UiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgYWxsOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkFsbC1pbmNsdXNpdmUgU2VydmljZXMiIH0gfSwKICAgICAgc3ViOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJDcnlwdG8gdG8gQ3J5cHRvLCBFLUN1cnJlbmN5IHRvIEUtQ3VycmVuY3ksIENyeXB0byB0byBFLUN1cnJlbmN5ICIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH0sCiAgICBnYXRlOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIlBheW1lbnQgR2F0ZSIgfSB9LAogICAgICBzdWI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIkFuIGFsbC1pbi1vbmUgcGF5bWVudCBzb2x1dGlvbiwgc3VwcG9ydGluZyBtdWx0aXBsZSBjdXJyZW5jaWVzIGFuZCBkaXZlcnNlIHBheW1lbnQgbWV0aG9kcywgaW5jbHVkaW5nIE1hc3RlckNhcmQiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogIH0sCiAgaG9tZVZpZGVvOiB7CiAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJJdOKAmXMgVmlkZW8gVGltZSEiIH0gfSwKICAgIHN1YjogewogICAgICB0OiAwLAogICAgICBiOiB7CiAgICAgICAgdDogMiwKICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgIHM6ICJXYXRjaCB0byBMZWFybiBNb3JlIEFib3V0IE5Db25uZWN0IFNlcnZpY2VzLiIsCiAgICAgIH0sCiAgICB9LAogICAgYnRuVGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiRXhjaGFuZ2UgTm93IiB9IH0sCiAgfSwKICBiZW5lZml0czogewogICAgdGl0bGU6IHsKICAgICAgdDogMCwKICAgICAgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVW5sb2NrIHlvdXIgQmVuZWZpdHMgd2l0aCBOQ29ubmVjdCIgfSwKICAgIH0sCiAgICBmcmVlOiB7CiAgICAgIHRpdGxlOiB7IHQ6IDAsIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIkZlZS1GcmVlIFRyYW5zYWN0aW9ucyIgfSB9LAogICAgICBzdWI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsgdDogMiwgaTogW3sgdDogMyB9XSwgczogIldoYXQgeW91IHNlZSBpcyB3aGF0IHlvdSBnZXQhIiB9LAogICAgICB9LAogICAgfSwKICAgIGFub255bW91czogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBbm9ueW1vdXMgRXhjaGFuZ2VzIiB9IH0sCiAgICAgIHN1YjogewogICAgICAgIHQ6IDAsCiAgICAgICAgYjogewogICAgICAgICAgdDogMiwKICAgICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgICBzOiAiRW5qb3kgdGhlIGFub255bW91cyBuYXR1cmUgb2YgQ3J5cHRvIHdpdGggTkNvbm5lY3QiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgZmFzdDogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJGYXN0IFRyYW5zYWN0aW9ucyIgfSB9LAogICAgICBzdWI6IHsKICAgICAgICB0OiAwLAogICAgICAgIGI6IHsKICAgICAgICAgIHQ6IDIsCiAgICAgICAgICBpOiBbeyB0OiAzIH1dLAogICAgICAgICAgczogIlJlY2VpdmUgeW91ciBmdW5kcyBhcyBzb29uIGFzIHRoZSB0cmFuc2FjdGlvbiBpcyBjb25maXJtZWQiLAogICAgICAgIH0sCiAgICAgIH0sCiAgICB9LAogICAgc3VwcG9ydDogewogICAgICB0aXRsZTogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICIyNC83IFN1cHBvcnQiIH0gfSwKICAgICAgc3ViOiB7CiAgICAgICAgdDogMCwKICAgICAgICBiOiB7CiAgICAgICAgICB0OiAyLAogICAgICAgICAgaTogW3sgdDogMyB9XSwKICAgICAgICAgIHM6ICJXZSBvZmZlcnMgdG9wLW5vdGNoIGV4Y2hhbmdlIHNlcnZpY2VzLCByb3VuZCB0aGUgY2xvY2suIiwKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICB9LAogIGNvbW11bml0eVNlYzogewogICAgdGl0bGU6IFsKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXZSBBcmUiIH0gfSwKICAgICAgeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJFeGNpdGVkIiB9IH0sCiAgICAgIHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiVG8gSGF2ZSIgfSB9LAogICAgXSwKICAgIHBvc2l0aXZlQ29tbWVudHM6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUmV2aWV3IiB9IH0sCiAgICBhY3RpdmVVc2VyczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJBY3RpdmUgdXNlcnMiIH0gfSwKICAgIG9yZGVyczogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJPcmRlcnMiIH0gfSwKICB9LAogIGJyYW5kaW5nQmFubmVyOiB7CiAgICB0ZXh0MTogewogICAgICB0OiAwLAogICAgICBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJXZeKAmXZlIGp1c3QgUmVkZXNpZ25lZCBvdXIgbG9nbyEiIH0sCiAgICB9LAogICAgdGV4dDI6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ2hlY2sgb3V0IHRoZSIgfSB9LAogICAgbGluazogeyB0OiAwLCBiOiB7IHQ6IDIsIGk6IFt7IHQ6IDMgfV0sIHM6ICJCcmFuZCBHdWlkZWxpbmVzLiIgfSB9LAogIH0sCiAgdG9hc3Q6IHsKICAgIGFuRXJyb3I6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQW4gZXJyb3IgaGFzIG9jY3VycmVkMTIiIH0gfSwKICAgIGNvcHk6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiQ29waWVkIHN1Y2Nlc3NmdWxseSEiIH0gfSwKICB9LAogIGVycm9yUGFnZTogewogICAgdGl0bGU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiUGFnZSBub3QgZm91bmQiIH0gfSwKICAgIGRlc2NyaXB0aW9uOiB7CiAgICAgIHQ6IDAsCiAgICAgIGI6IHsKICAgICAgICB0OiAyLAogICAgICAgIGk6IFt7IHQ6IDMgfV0sCiAgICAgICAgczogIlNvcnJ5ISBUaGUgcGFnZSB5b3XigJlyZSBsb29raW5nIGZvciBjYW5ub3QgYmUgZm91bmQuIiwKICAgICAgfSwKICAgIH0sCiAgICBnb0JhY2s6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiR28gYmFjayIgfSB9LAogICAgZ29Ub0hvbWU6IHsgdDogMCwgYjogeyB0OiAyLCBpOiBbeyB0OiAzIH1dLCBzOiAiR28gdG8gSG9tZXBhZ2UiIH0gfSwKICB9LAp9OwpleHBvcnQgeyB0IGFzIGRlZmF1bHQgfTsK"}},"time_used":32,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":31,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DalnjcH7.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.974Z","timestamp":1785139670974,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DalnjcH7.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"353c-654aa2b830cfa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2241\r\nKeep-Alive: timeout=5, max=86\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":13628,"size_decoded":2592,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text","md5":"df4aaa94a69b729548b47ad8b936ce9b","sha1":"dc96bdb9b95e82543b13ade03001e334d53cba62","sha256":"0eaa4a66e87acf966be9dd97e1d472aaf882269719544080ae205e5fc36e10de","sha512":"3f72ce5e367f32e9cb1806ec552a9c258dae94fd6da4b89b43aece03268e2ea35e22842e38769e6b8d7fdd311c8fe92716b64a370d696b07f1be54dea21afa39","ssdeep":"96:vW4WlqmFJVZZiMXmzI0lZ/8dE00k4B5gAe7KuBP1bVEfyabJ9kc0FCdOIEOh6VB7:6vbKy4vL3m9bPFbaiBGj1e7EGCkKq","tlshash":"5952bb54c4b90635f2a3b1712957ac8baa60d20fddafbd58bbec85011f4e83e09b435d","first_seen":"2026-07-27T05:24:57.806615Z","last_seen":"2026-07-27T11:49:48.943491Z","times_seen":5,"resource_available":true,"data":"aW1wb3J0IHsKICBpIGFzIG4sCiAgbCBhcyBjLAogIGMgYXMgbSwKICBiIGFzIHQsCiAgZiBhcyBpLAogIHcgYXMgeCwKICB0IGFzIG8sCiAgcCBhcyBhLAogIF8gYXMgcCwKICBhIGFzIGIsCn0gZnJvbSAiLi9TbTJtQ2ZERS5qcyI7CmltcG9ydCB7IF8gYXMgaCB9IGZyb20gIi4vYk5lcHVkcDEuanMiOwppbXBvcnQgeyBfIGFzIGcgfSBmcm9tICIuL0RsQVVxSzJVLmpzIjsKaW1wb3J0ICIuL0NBbGtXYnVfLmpzIjsKaW1wb3J0ICIuL0I4VHhUeWFrLmpzIjsKaW1wb3J0ICIuL0NJOFZGc2dILmpzIjsKY29uc3QgdSA9IHsgY2xhc3M6ICJweC00IHB5LTE2IHRleHQtY2VudGVyIG1kOnB5LTI0IiB9LAogIF8gPSB7IGNsYXNzOiAidGV4dC1wcmltYXJ5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIGhpZGRlbiIgfSwKICB5ID0geyBjbGFzczogIm10LTMgZGlzcGxheS1tZC1zZW1pYm9sZCBtZDpkaXNwbGF5LWxnLXNlbWlib2xkIiB9LAogIHYgPSB7CiAgICBjbGFzczoKICAgICAgIm10LTYgdGV4dC1sZy1yZWd1bGFyIG1kOnRleHQteGwtYm9sZCBtYXgtdy1bNzY4cHhdIHRleHQtZ3JheS02MDAgY29udGFpbmVyIG14LWF1dG8iLAogIH0sCiAgdyA9IHsgY2xhc3M6ICJweC00IHB0LTE2IG1kOnB0LTI0IiB9LAogIGsgPSB7CiAgICBjbGFzczoKICAgICAgInRleHQtY2VudGVyIHRleHQtZ3JheS05MDAgZGlzcGxheS1zbS1zZW1pYm9sZCBtZDpkaXNwbGF5LW1kLXNlbWlib2xkIiwKICB9LAogIFUgPSB7CiAgICBjbGFzczogIm10LTUgdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTYwMCB0ZXh0LWxnLXJldWdsYXIgbWQ6dGV4dC14bC1yZWd1bGFyIiwKICB9LAogIGYgPSB7IGNsYXNzOiAicHQtMTIgcGItMjQgbWQ6cHQtMTYiIH0sCiAgJCA9IHsKICAgIGNsYXNzOgogICAgICAiY29udGFpbmVyIGdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTEwIHB4LTQgbXgtYXV0byBtZDpncmlkLWNvbHMtMyBtZDpnYXAtOCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXIiLAogIH0sCiAgSCA9IHsKICAgIGNsYXNzOgogICAgICAicC0zIGlubGluZS1ibG9jayByb3VuZGVkLVsxMHB4XSBiZy13aGl0ZSBib3JkZXItc29saWQgYm9yZGVyLVsxcHhdIGJvcmRlci1ncmF5LTIwMCIsCiAgfSwKICBDID0geyBjbGFzczogIm10LTUgdGV4dC1ncmF5LTkwMCB0ZXh0LWxnLXNlbWlib2xkIG1kOnRleHQteGwtc2VtaWJvbGQiIH0sCiAgQiA9IHsgY2xhc3M6ICJtdC0yIHRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogIE4gPSB7CiAgICBjbGFzczoKICAgICAgInAtMyBpbmxpbmUtYmxvY2sgcm91bmRlZC1bMTBweF0gYmctd2hpdGUgYm9yZGVyLXNvbGlkIGJvcmRlci1bMXB4XSBib3JkZXItZ3JheS0yMDAiLAogIH0sCiAgRCA9IHsgY2xhc3M6ICJtdC01IHRleHQtZ3JheS05MDAgdGV4dC1sZy1zZW1pYm9sZCBtZDp0ZXh0LXhsLXNlbWlib2xkIiB9LAogIEkgPSB7IGNsYXNzOiAibXQtMiB0ZXh0LWdyYXktNjAwIHRleHQtbWQtcmVndWxhciIgfSwKICBUID0gewogICAgY2xhc3M6CiAgICAgICJwLTMgaW5saW5lLWJsb2NrIHJvdW5kZWQtWzEwcHhdIGJnLXdoaXRlIGJvcmRlci1zb2xpZCBib3JkZXItWzFweF0gYm9yZGVyLWdyYXktMjAwIiwKICB9LAogIFYgPSB7IGNsYXNzOiAibXQtNSB0ZXh0LWdyYXktOTAwIHRleHQtbGctc2VtaWJvbGQgbWQ6dGV4dC14bC1zZW1pYm9sZCIgfSwKICBTID0geyBjbGFzczogIm10LTIgdGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXJlZ3VsYXIiIH0sCiAgeiA9IHsgY2xhc3M6ICJjb250YWluZXIgcHktMTYgbXgtYXV0byBtZDpweS0yNCBtZDpweC0yNCIgfSwKICBFID0geyBjbGFzczogInJlbGF0aXZlICFoaWRkZW4gbWQ6IWJsb2NrIiB9LAogIEYgPSB7CiAgICBjbGFzczoKICAgICAgImJ1YmJsZSB0b3AtWzM3JV0gcmlnaHQtWzQwJV0gZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUiLAogIH0sCiAgTyA9IHsKICAgIGNsYXNzOgogICAgICAidG9vbHRpcCBhYnNvbHV0ZSBib3R0b20tWzMwcHhdIHJpZ2h0LVstNjBweF0gdGV4dC1jZW50ZXIgYmctd2hpdGUgcm91bmRlZC1bOHB4XSB3LVsxNDFweF0gaC1bMTEwcHhdIiwKICB9LAogIFIgPSB7IGNsYXNzOiAiYnViYmxlIHRvcC1bNDAlXSByaWdodC1bNDQlXSBibG9jayBjdXJzb3ItcG9pbnRlciBhYnNvbHV0ZSIgfSwKICBqID0gewogICAgY2xhc3M6CiAgICAgICJ0b29sdGlwIGFic29sdXRlIGJvdHRvbS1bMzBweF0gcmlnaHQtWy02MHB4XSB0ZXh0LWNlbnRlciBiZy13aGl0ZSByb3VuZGVkLVs4cHhdIHctWzE0MXB4XSBoLVsxMTBweF0iLAogIH0sCiAgcSA9IHsgY2xhc3M6ICJibG9jayBtZDpoaWRkZW4iIH0sCiAgTSA9IHsgY2xhc3M6ICJteC1hdXRvICF0ZXh0LWNlbnRlciIgfSwKICBBID0geyBjbGFzczogIm14LWF1dG8gbXQtNiAhdGV4dC1jZW50ZXIiIH0sCiAgRyA9IHsKICAgIGNsYXNzOiAiY29udGFpbmVyIGZsZXgganVzdGlmeS1jZW50ZXIgZ2FwLTggcHgtOCBweS0yNCBteC1hdXRvIG1kOmdyaWQtY29scy0yIiwKICB9LAogIEogPSB7IGNsYXNzOiAidGV4dC1jZW50ZXIgaGlkZGVuIiB9LAogIEsgPSB7CiAgICBjbGFzczoKICAgICAgInAtMyBpbmxpbmUtYmxvY2sgcm91bmRlZC1bMTBweF0gYmctd2hpdGUgYm9yZGVyLXNvbGlkIGJvcmRlci1bMXB4XSBib3JkZXItZ3JheS0yMDAiLAogIH0sCiAgTCA9IHsgY2xhc3M6ICJtdC01IHRleHQtZ3JheS05MDAgdGV4dC1sZy1zZW1pYm9sZCBtZDp0ZXh0LXhsLXNlbWlib2xkIiB9LAogIFAgPSB7IGNsYXNzOiAibXQtMiB0ZXh0LWdyYXktNjAwIHRleHQtbWQtYm9sZCIgfSwKICBRID0geyBjbGFzczogInRleHQtY2VudGVyIiB9LAogIFcgPSB7CiAgICBjbGFzczoKICAgICAgInAtMyBpbmxpbmUtYmxvY2sgcm91bmRlZC1bMTBweF0gYmctd2hpdGUgYm9yZGVyLXNvbGlkIGJvcmRlci1bMXB4XSBib3JkZXItZ3JheS0yMDAiLAogIH0sCiAgWCA9IHsgY2xhc3M6ICJtdC01IHRleHQtZ3JheS05MDAgdGV4dC1sZy1zZW1pYm9sZCBtZDp0ZXh0LXhsLXNlbWlib2xkIiB9LAogIFkgPSB7IGNsYXNzOiAibXQtMiB0ZXh0LWdyYXktNjAwIHRleHQtbWQtYm9sZCIgfSwKICBaID0gewogICAgX19uYW1lOiAiY29udGFjdC11cyIsCiAgICBzZXR1cCh0dCkgewogICAgICBjb25zdCB7IHQ6IGQgfSA9IG4oKTsKICAgICAgcmV0dXJuICgKICAgICAgICBjKHsKICAgICAgICAgIHRpdGxlOiAiTkNvbm5lY3QgfCAiICsgZCgiYWJvdXRVcy5jb250YWN0VXMubWV0YS50aXRsZSIpLAogICAgICAgICAgbWV0YTogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgbmFtZTogInRpdGxlIiwKICAgICAgICAgICAgICBjb250ZW50OiAiTkNvbm5lY3QgfCAiICsgZCgiYWJvdXRVcy5jb250YWN0VXMubWV0YS50aXRsZSIpLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgbmFtZTogImRlc2NyaXB0aW9uIiwKICAgICAgICAgICAgICBjb250ZW50OiBkKCJhYm91dFVzLmNvbnRhY3RVcy5tZXRhLmRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pLAogICAgICAgIChlLCBzKSA9PiB7CiAgICAgICAgICBjb25zdCByID0gcCwKICAgICAgICAgICAgbCA9IGg7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBiKCksCiAgICAgICAgICAgIG0oImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICB0KCJkaXYiLCB1LCBbCiAgICAgICAgICAgICAgICBpKAogICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdG86IHsKICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICIvRW4vcGF5bWVudC9mYWlsLyIsCiAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogeyB0cmFja19pZDogInhjaF9NZFZtN1JkUml4c2hpZGgiIH0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHgoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgdCgiaDQiLCBfLCBvKGUuJHQoImFib3V0VXMuc3ViVGl0bGUiKSksIDEpLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB0KCJoMSIsIHksIG8oZS4kdCgiYWJvdXRVcy50aXRsZSIpKSwgMSksCiAgICAgICAgICAgICAgICB0KCJwIiwgdiwgWwogICAgICAgICAgICAgICAgICBhKG8oZS4kdCgiYWJvdXRVcy5kZXNjcmlwdGlvblswXSIpKSArICIgIiwgMSksCiAgICAgICAgICAgICAgICAgIHNbMF0gfHwgKHNbMF0gPSB0KCJiciIsIG51bGwsIG51bGwsIC0xKSksCiAgICAgICAgICAgICAgICAgIHNbMV0gfHwgKHNbMV0gPSB0KCJiciIsIG51bGwsIG51bGwsIC0xKSksCiAgICAgICAgICAgICAgICAgIGEoIiAiICsgbyhlLiR0KCJhYm91dFVzLmRlc2NyaXB0aW9uWzFdIikpLCAxKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIHQoImRpdiIsIHcsIFsKICAgICAgICAgICAgICAgIHQoImgyIiwgaywgbyhlLiR0KCJhYm91dFVzLndoeUNob29zZWpvbGl4by50aXRsZSIpKSwgMSksCiAgICAgICAgICAgICAgICB0KCJwIiwgVSwgbyhlLiR0KCJhYm91dFVzLndoeUNob29zZWpvbGl4by5kZXNjcmlwdGlvbiIpKSwgMSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgdCgiZGl2IiwgZiwgWwogICAgICAgICAgICAgICAgdCgiZGl2IiwgJCwgWwogICAgICAgICAgICAgICAgICB0KCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgSCwgWwogICAgICAgICAgICAgICAgICAgICAgaShsLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjIwcHgiLAogICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9sb2NrLWtleWhvbGUtY2lyY2xlLnN2ZyIsCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgImg1IiwKICAgICAgICAgICAgICAgICAgICAgIEMsCiAgICAgICAgICAgICAgICAgICAgICBvKGUuJHQoImFib3V0VXMud2h5Q2hvb3Nlam9saXhvLml0ZW1zWzBdLnRpdGxlIikpLAogICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAgICJwIiwKICAgICAgICAgICAgICAgICAgICAgIEIsCiAgICAgICAgICAgICAgICAgICAgICBvKGUuJHQoImFib3V0VXMud2h5Q2hvb3Nlam9saXhvLml0ZW1zWzBdLmRlc2NyaXB0aW9uIikpLAogICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICB0KCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgTiwgWwogICAgICAgICAgICAgICAgICAgICAgaShsLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjIwcHgiLAogICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9jbG9jay1jaGVjay5zdmciLAogICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAgICJoNSIsCiAgICAgICAgICAgICAgICAgICAgICBELAogICAgICAgICAgICAgICAgICAgICAgbyhlLiR0KCJhYm91dFVzLndoeUNob29zZWpvbGl4by5pdGVtc1sxXS50aXRsZSIpKSwKICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAicCIsCiAgICAgICAgICAgICAgICAgICAgICBJLAogICAgICAgICAgICAgICAgICAgICAgbyhlLiR0KCJhYm91dFVzLndoeUNob29zZWpvbGl4by5pdGVtc1sxXS5kZXNjcmlwdGlvbiIpKSwKICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIFQsIFsKICAgICAgICAgICAgICAgICAgICAgIGkobCwgewogICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjIwcHgiLAogICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICIyMHB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiAiaWNvbnMvY3VycmVuY3ktYml0Y29pbi1jaXJjbGUuc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAiaDUiLAogICAgICAgICAgICAgICAgICAgICAgViwKICAgICAgICAgICAgICAgICAgICAgIG8oZS4kdCgiYWJvdXRVcy53aHlDaG9vc2Vqb2xpeG8uaXRlbXNbMl0udGl0bGUiKSksCiAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgInAiLAogICAgICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgICAgIG8oZS4kdCgiYWJvdXRVcy53aHlDaG9vc2Vqb2xpeG8uaXRlbXNbMl0uZGVzY3JpcHRpb24iKSksCiAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICB0KCJkaXYiLCB6LCBbCiAgICAgICAgICAgICAgICB0KCJkaXYiLCBFLCBbCiAgICAgICAgICAgICAgICAgIGkobCwgeyBzcmM6ICJzdGF0aWNzL21hcC5wbmciIH0pLAogICAgICAgICAgICAgICAgICB0KCJkaXYiLCBGLCBbCiAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgTywgWwogICAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICBpKGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjI0cHgiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjI0cHgiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibXgtYXV0byB0ZXh0LWNlbnRlciBmbGV4IGl0ZW1zLWNlbnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiAiaWNvbnMvbmFkaXJhc2h2aWxpLnN2ZyIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBzWzJdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIChzWzJdID0gdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAiaDYiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtdC0zIHRleHQtZ3JheS05MDAgdGV4dC14cy1zZW1pYm9sZCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAiIE5hZGlyYXNodmlsaSwgVGJpbGlzaSAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgc1szXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoc1szXSA9IHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtdC0yIHRleHQtZ3JheS02MDAgdGV4dC14cy1yZWd1bGFyIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICIgTm80NDksIEZsb29yIDIwLCBCbG9jayAyMUIsIERpcnNpICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgc1s0XSB8fAogICAgICAgICAgICAgICAgICAgICAgKHNbNF0gPSB0KAogICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJidWJibGUtb3V0ZXItZG90IiB9LAogICAgICAgICAgICAgICAgICAgICAgICBbdCgic3BhbiIsIHsgY2xhc3M6ICJidWJibGUtaW5uZXItZG90IiB9KV0sCiAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIHQoImRpdiIsIFIsIFsKICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBqLCBbCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIGkobCwgewogICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMjRweCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiMjRweCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJteC1hdXRvIHRleHQtY2VudGVyIGZsZXggaXRlbXMtY2VudGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy90dXJrZXkuc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIHNbNV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgKHNbNV0gPSB0KAogICAgICAgICAgICAgICAgICAgICAgICAgICJoNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogIm10LTMgdGV4dC1ncmF5LTkwMCB0ZXh0LXhzLXNlbWlib2xkIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICIgSXN0YW5idWwsIMOcc2vDvGRhciAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgc1s2XSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoc1s2XSA9IHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtdC0yIHRleHQtZ3JheS02MDAgdGV4dC14cy1yZWd1bGFyIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICIgRGVuaXptZW4gU2suICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgc1s3XSB8fAogICAgICAgICAgICAgICAgICAgICAgKHNbN10gPSB0KAogICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJidWJibGUtb3V0ZXItZG90IiB9LAogICAgICAgICAgICAgICAgICAgICAgICBbdCgic3BhbiIsIHsgY2xhc3M6ICJidWJibGUtaW5uZXItZG90IiB9KV0sCiAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIHQoImRpdiIsIHEsIFsKICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgTSwgWwogICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgIGkobCwgewogICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjI0cHgiLAogICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICIyNHB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJteC1hdXRvIHRleHQtY2VudGVyIGZsZXggaXRlbXMtY2VudGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiAiaWNvbnMvbmFkaXJhc2h2aWxpLnN2ZyIsCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICBzWzhdIHx8CiAgICAgICAgICAgICAgICAgICAgICAoc1s4XSA9IHQoCiAgICAgICAgICAgICAgICAgICAgICAgICJoNiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtdC0zIHRleHQtZ3JheS05MDAgdGV4dC1sZy1zZW1pYm9sZCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIiBOYWRpcmFzaHZpbGksIFRiaWxpc2kgIiwKICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgIHNbOV0gfHwKICAgICAgICAgICAgICAgICAgICAgIChzWzldID0gdCgKICAgICAgICAgICAgICAgICAgICAgICAgInAiLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAibXQtMiB0ZXh0LWdyYXktNjAwIHRleHQtbWQtcmVndWxhciIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIiBObzQ0OSwgRmxvb3IgMjAsIEJsb2NrIDIxQiwgRGlyc2kgIiwKICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgQSwgWwogICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgIGkobCwgewogICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjI0cHgiLAogICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICIyNHB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJteC1hdXRvIHRleHQtY2VudGVyIGZsZXggaXRlbXMtY2VudGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiAiaWNvbnMvdHVya2V5LnN2ZyIsCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICBzWzEwXSB8fAogICAgICAgICAgICAgICAgICAgICAgKHNbMTBdID0gdCgKICAgICAgICAgICAgICAgICAgICAgICAgImg2IiwKICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogIm10LTMgdGV4dC1ncmF5LTkwMCB0ZXh0LWxnLXNlbWlib2xkIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAiIElzdGFuYnVsLCDDnHNrw7xkYXIgIiwKICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgIHNbMTFdIHx8CiAgICAgICAgICAgICAgICAgICAgICAoc1sxMV0gPSB0KAogICAgICAgICAgICAgICAgICAgICAgICAicCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtdC0yIHRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAiIERlbml6bWVuIFNrLiAiLAogICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgdCgiZGl2IiwgRywgWwogICAgICAgICAgICAgICAgdCgiZGl2IiwgSiwgWwogICAgICAgICAgICAgICAgICB0KCJkaXYiLCBLLCBbCiAgICAgICAgICAgICAgICAgICAgaShsLCB7CiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjIwcHgiLAogICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9lbWFpbC5zdmciLAogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgdCgiaDUiLCBMLCBvKGUuJHQoImFib3V0VXMuY29udGFjdFVzLmVtYWlsLnRpdGxlIikpLCAxKSwKICAgICAgICAgICAgICAgICAgdCgicCIsIFAsIG8oZS4kdCgiYWJvdXRVcy5jb250YWN0VXMuZW1haWwuZGVzY3JpcHRpb24iKSksIDEpLAogICAgICAgICAgICAgICAgICBzWzEyXSB8fAogICAgICAgICAgICAgICAgICAgIChzWzEyXSA9IHQoCiAgICAgICAgICAgICAgICAgICAgICAiYSIsCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICJwdC00IHRleHQtbWQtc2VtaWJvbGQgdGV4dC1wcmltYXJ5LTcwMCBkLWJsb2NrIG1kOm10LTUiLAogICAgICAgICAgICAgICAgICAgICAgICBocmVmOiAiaHR0cHM6Ly9tYWlsLmdvb2dsZS5jb20vbWFpbC8/dmlldz1jbSZmcz0xJnRmPTEmdG89c3VwcG9ydEBoaS5leGNoYW5nZSIsCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogIl9ibGFuayIsCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgInN1cHBvcnRAaGkuZXhjaGFuZ2UiLAogICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgdCgiZGl2IiwgUSwgWwogICAgICAgICAgICAgICAgICB0KCJkaXYiLCBXLCBbCiAgICAgICAgICAgICAgICAgICAgaShsLCB7CiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIjIwcHgiLAogICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiMjBweCIsCiAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy90ZWxlZ3JhbS5zdmciLAogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgdCgiaDUiLCBYLCBvKGUuJHQoImFib3V0VXMuY29udGFjdFVzLnRlbGVncmFtLnRpdGxlIikpLCAxKSwKICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAicCIsCiAgICAgICAgICAgICAgICAgICAgWSwKICAgICAgICAgICAgICAgICAgICBvKGUuJHQoImFib3V0VXMuY29udGFjdFVzLnRlbGVncmFtLmRlc2NyaXB0aW9uIikpLAogICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgc1sxM10gfHwKICAgICAgICAgICAgICAgICAgICAoc1sxM10gPSB0KAogICAgICAgICAgICAgICAgICAgICAgImEiLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAicHQtNCB0ZXh0LW1kLXNlbWlib2xkIHRleHQtcHJpbWFyeS03MDAgZC1ibG9jayBtZDptdC01IiwKICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiAiX2JsYW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogImh0dHBzOi8vdC5tZS9uY29ubmVjdF9vcmcgIiwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAidC5tZS9uY29ubmVjdF9vcmcgIiwKICAgICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgXSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICB9LAogIGF0ID0gZyhaLCBbWyJfX3Njb3BlSWQiLCAiZGF0YS12LTU2ZDliMzI2Il1dKTsKZXhwb3J0IHsgYXQgYXMgZGVmYXVsdCB9Owo="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-VVBQ0TLCDN\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.094Z","timestamp":1785139670094,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=G-VVBQ0TLCDN\u0026cx=c\u0026gtm=4e67m0 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 08:07:50 GMT\r\nexpires: Mon, 27 Jul 2026 08:07:50 GMT\r\ncache-control: private, max-age=900\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 165261\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":489500,"size_decoded":165845,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (9920)","md5":"37a8e36944e1a6185c31966868b61660","sha1":"ca3ee3547b75a0f5fc327dfaf81510167c6919f5","sha256":"9c1d708b81e817d97c2360771fb81bcfd5d2e1a6bff381913c8dc21e1fe953e7","sha512":"8877ebc81c3ce823b5ac8ff1d2a60b2530eb22a8b65e02ccd517e1ea738696c1c733a7dba6a92108bb5f81f5f32fd62ad1eb416641f85e2a17465139c6ce3be2","ssdeep":"6144:WmJkU0jIWXbP69FMxmRknhqsScPmfxNf3EjxxVGaHoXzRYab:XJh1WLP69VwzxVHO3b","tlshash":"88a40aceb3d674265396f478503f018ba57b29e2b44cc89af189cce02d7465a8167f7c","first_seen":"2026-07-27T08:08:31.036183Z","last_seen":"2026-07-27T11:49:48.946346Z","times_seen":3,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiZ29vZ2xlLm5vIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6MH1dLAogICJ0YWdzIjpbeyJmdW5jdGlvbiI6Il9fb2d0XzFwX2RhdGFfdjIiLCJwcmlvcml0eSI6MjEsInZ0cF9pc0F1dG9FbmFibGVkIjp0cnVlLCJ2dHBfYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiOlsibGlzdCIsWyJtYXAiLCJleGNsdXNpb25TZWxlY3RvciIsIiJdXSwidnRwX2lzRW5hYmxlZCI6dHJ1ZSwidnRwX21hbnVhbEVtYWlsRW5hYmxlZCI6ZmFsc2UsInZ0cF9jaXR5VmFsdWUiOiIiLCJ2dHBfYXV0b0VtYWlsRW5hYmxlZCI6dHJ1ZSwidnRwX3Bvc3RhbENvZGVWYWx1ZSI6IiIsInZ0cF9sYXN0TmFtZVZhbHVlIjoiIiwidnRwX3Bob25lVmFsdWUiOiIiLCJ2dHBfYXV0b1Bob25lRW5hYmxlZCI6ZmFsc2UsInZ0cF9lbWFpbFZhbHVlIjoiIiwidnRwX2ZpcnN0TmFtZVZhbHVlIjoiIiwidnRwX3N0cmVldFZhbHVlIjoiIiwidnRwX2F1dG9BZGRyZXNzRW5hYmxlZCI6ZmFsc2UsInZ0cF9yZWdpb25WYWx1ZSI6IiIsInZ0cF9jb3VudHJ5VmFsdWUiOiIiLCJ2dHBfaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIjpmYWxzZSwidGFnX2lkIjo0fSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfZmlyc3QiLCJwcmlvcml0eSI6MjAsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZWQlEwVExDRE4iLCJ0YWdfaWQiOjI2fSx7ImZ1bmN0aW9uIjoiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyIsInByaW9yaXR5IjoxOSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInZ0cF9mb3JlaWduVGxkTWFjcm9SZXN1bHQiOlsibWFjcm8iLDFdLCJ2dHBfaXNDaGluYVZpcFJlZ2lvbk1hY3JvUmVzdWx0IjpbIm1hY3JvIiwyXSwidGFnX2lkIjoyNX0seyJmdW5jdGlvbiI6Il9fb2d0X2dvb2dsZV9zaWduYWxzIiwicHJpb3JpdHkiOjE4LCJ2dHBfZ29vZ2xlU2lnbmFscyI6IkVOQUJMRUQiLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WVkJRMFRMQ0ROIiwidGFnX2lkIjoyNH0seyJmdW5jdGlvbiI6Il9fY2NkX2dhX3JlZ3Njb3BlIiwicHJpb3JpdHkiOjE3LCJ2dHBfc2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInJlZGFjdEZpZWxkR3JvdXAiLCJERVZJQ0VfQU5EX0dFTyIsImRpc2FsbG93QWxsUmVnaW9ucyIsZmFsc2UsImRpc2FsbG93ZWRSZWdpb25zIiwiIl0sWyJtYXAiLCJyZWRhY3RGaWVsZEdyb3VwIiwiR09PR0xFX1NJR05BTFMiLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLGZhbHNlLCJkaXNhbGxvd2VkUmVnaW9ucyIsIiJdXSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInRhZ19pZCI6MjN9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9kb3dubG9hZCIsInByaW9yaXR5IjoxNiwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZWQlEwVExDRE4iLCJ0YWdfaWQiOjIyfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siLCJwcmlvcml0eSI6MTUsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WVkJRMFRMQ0ROIiwidGFnX2lkIjoyMX0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3BhZ2VfdmlldyIsInByaW9yaXR5IjoxNCwidnRwX2hpc3RvcnlFdmVudHMiOnRydWUsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WVkJRMFRMQ0ROIiwidGFnX2lkIjoyMH0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3Njcm9sbCIsInByaW9yaXR5IjoxMywidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZWQlEwVExDRE4iLCJ0YWdfaWQiOjE5fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fc2l0ZV9zZWFyY2giLCJwcmlvcml0eSI6MTIsInZ0cF9zZWFyY2hRdWVyeVBhcmFtcyI6InEscyxzZWFyY2gscXVlcnksa2V5d29yZCIsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WVkJRMFRMQ0ROIiwidGFnX2lkIjoxOH0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3ZpZGVvIiwicHJpb3JpdHkiOjExLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInRhZ19pZCI6MTd9LHsiZnVuY3Rpb24iOiJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciLCJwcmlvcml0eSI6MTAsInZ0cF9jb252ZXJzaW9uUnVsZXMiOlsibGlzdCIsWyJtYXAiLCJtYXRjaGluZ1J1bGVzIiwie1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJwdXJjaGFzZVwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdLFsibWFwIiwibWF0Y2hpbmdSdWxlcyIsIntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwiYmVzdGNoYW5nZV9yZWZlcnJhbFwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdLFsibWFwIiwibWF0Y2hpbmdSdWxlcyIsIntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwiZmFpbGVkX3BlcmZlY3RfbW9uZXlcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXSxbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInBheXBhbF9iYW5uZXJcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXSxbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInN0ZXBfM1wifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdLFsibWFwIiwibWF0Y2hpbmdSdWxlcyIsIntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwidGhhbmtfeW91X3BhZ2VcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXV0sInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZWQlEwVExDRE4iLCJ0YWdfaWQiOjE2fSx7ImZ1bmN0aW9uIjoiX19vZ3RfZXZlbnRfY3JlYXRlIiwicHJpb3JpdHkiOjksInZ0cF9ldmVudE5hbWUiOiJUZXN0aW5nX1N0ZXBfNF9CIiwidnRwX2lzQ29weSI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInZ0cF9wcmVjb21waWxlZFJ1bGUiOlsibWFwIiwibmV3X2V2ZW50X25hbWUiLCJUZXN0aW5nX1N0ZXBfNF9CIiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyIsdHJ1ZSwiZXZlbnRfbmFtZV9wcmVkaWNhdGUiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfbmFtZSJdLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJldmVudF9uYW1lIl1dLCJ0eXBlIiwiZXEiXV0sImNvbmRpdGlvbnMiLFsibGlzdCIsWyJtYXAiLCJwcmVkaWNhdGVzIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X3BhcmFtIiwiZXZlbnRfcGFyYW0iLFsibWFwIiwicGFyYW1fbmFtZSIsInBhZ2VfbG9jYXRpb24iXV0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsImh0dHBzOlwvXC9oaS5leGNoYW5nZVwvP3N0ZXA9NCJdXSwidHlwZSIsImNuIl1dXV1dLCJ0YWdfaWQiOjE1fSx7ImZ1bmN0aW9uIjoiX19vZ3RfZXZlbnRfY3JlYXRlIiwicHJpb3JpdHkiOjgsInZ0cF9ldmVudE5hbWUiOiJUZXN0X1N0ZXA0IiwidnRwX2lzQ29weSI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInZ0cF9wcmVjb21waWxlZFJ1bGUiOlsibWFwIiwibmV3X2V2ZW50X25hbWUiLCJUZXN0X1N0ZXA0IiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyIsdHJ1ZSwiZXZlbnRfbmFtZV9wcmVkaWNhdGUiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfbmFtZSJdLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJQYWdlX3ZpZXciXV0sInR5cGUiLCJlcSJdXSwiY29uZGl0aW9ucyIsWyJsaXN0IixbIm1hcCIsInByZWRpY2F0ZXMiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9sb2NhdGlvbiJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiaHR0cHM6XC9cL2hpLmV4Y2hhbmdlXC8/c3RlcD00Il1dLCJ0eXBlIiwic3dpIl1dXV1dLCJ0YWdfaWQiOjE0fSx7ImZ1bmN0aW9uIjoiX19vZ3RfZXZlbnRfY3JlYXRlIiwicHJpb3JpdHkiOjcsInZ0cF9ldmVudE5hbWUiOiJiZXN0Y2hhbmdlX3JlZmVycmFsIiwidnRwX2lzQ29weSI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInZ0cF9wcmVjb21waWxlZFJ1bGUiOlsibWFwIiwibmV3X2V2ZW50X25hbWUiLCJiZXN0Y2hhbmdlX3JlZmVycmFsIiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyIsdHJ1ZSwiZXZlbnRfbmFtZV9wcmVkaWNhdGUiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfbmFtZSJdLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJwYWdlX3ZpZXciXV0sInR5cGUiLCJlcSJdXSwiY29uZGl0aW9ucyIsWyJsaXN0IixbIm1hcCIsInByZWRpY2F0ZXMiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9wYXRoIl1dLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJcLyJdXSwidHlwZSIsInN3aSJdLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X3BhcmFtIiwiZXZlbnRfcGFyYW0iLFsibWFwIiwicGFyYW1fbmFtZSIsInBhZ2VfaG9zdG5hbWUiXV0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsImh0dHBzOlwvXC9zdGFnaW5nLmhpLmV4Y2hhbmdlXC8iXV0sInR5cGUiLCJzd2kiLCJuZWdhdGUiLHRydWVdXV1dXSwidGFnX2lkIjoxM30seyJmdW5jdGlvbiI6Il9fb2d0X2V2ZW50X2NyZWF0ZSIsInByaW9yaXR5Ijo2LCJ2dHBfZXZlbnROYW1lIjoicGF5cGFsX2Jhbm5lciIsInZ0cF9pc0NvcHkiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZWQlEwVExDRE4iLCJ2dHBfcHJlY29tcGlsZWRSdWxlIjpbIm1hcCIsIm5ld19ldmVudF9uYW1lIiwicGF5cGFsX2Jhbm5lciIsIm1lcmdlX3NvdXJjZV9ldmVudF9wYXJhbXMiLHRydWUsImV2ZW50X25hbWVfcHJlZGljYXRlIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X25hbWUiXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwicGF5cGFsYmFubmVyIGFjdGlvbiJdXSwidHlwZSIsImVxaSJdXSwiY29uZGl0aW9ucyIsWyJsaXN0IixbIm1hcCIsInByZWRpY2F0ZXMiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwiZXZlbnRfY2F0ZWdvcnkiXV0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsInBheXBhbGJhbm5lciBjYXRlZ29yeSJdXSwidHlwZSIsImVxaSJdLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X3BhcmFtIiwiZXZlbnRfcGFyYW0iLFsibWFwIiwicGFyYW1fbmFtZSIsImV2ZW50X2xhYmVsIl1dLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJwYXlwYWxiYW5uZXIgbGFiZWwiXV0sInR5cGUiLCJlcWkiXSxbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9wYXJhbSIsImV2ZW50X3BhcmFtIixbIm1hcCIsInBhcmFtX25hbWUiLCJwYWdlX2hvc3RuYW1lIl1dLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJodHRwczpcL1wvc3RhZ2luZy5oaS5leGNoYW5nZVwvIl1dLCJ0eXBlIiwic3dpIiwibmVnYXRlIix0cnVlXV1dXV0sInRhZ19pZCI6MTJ9LHsiZnVuY3Rpb24iOiJfX29ndF9ldmVudF9jcmVhdGUiLCJwcmlvcml0eSI6NSwidnRwX2V2ZW50TmFtZSI6InN1Y2Nlc3NfcGVyZmVjdF9tb25leSIsInZ0cF9pc0NvcHkiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZWQlEwVExDRE4iLCJ2dHBfcHJlY29tcGlsZWRSdWxlIjpbIm1hcCIsIm5ld19ldmVudF9uYW1lIiwic3VjY2Vzc19wZXJmZWN0X21vbmV5IiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyIsdHJ1ZSwiZXZlbnRfbmFtZV9wcmVkaWNhdGUiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfbmFtZSJdLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJwYWdlX3ZpZXciXV0sInR5cGUiLCJlcSJdXSwiY29uZGl0aW9ucyIsWyJsaXN0IixbIm1hcCIsInByZWRpY2F0ZXMiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9wYXRoIl1dLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJcL3BheW1lbnRcL3N1Y2Nlc3MiXV0sInR5cGUiLCJlcWkiXSxbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9wYXJhbSIsImV2ZW50X3BhcmFtIixbIm1hcCIsInBhcmFtX25hbWUiLCJwYWdlX2hvc3RuYW1lIl1dLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJodHRwczpcL1wvc3RhZ2luZy5oaS5leGNoYW5nZVwvIl1dLCJ0eXBlIiwic3dpIiwibmVnYXRlIix0cnVlXV1dXV0sInRhZ19pZCI6MTF9LHsiZnVuY3Rpb24iOiJfX29ndF9ldmVudF9jcmVhdGUiLCJwcmlvcml0eSI6NCwidnRwX2V2ZW50TmFtZSI6ImZhaWxlZF9wZXJmZWN0X21vbmV5IiwidnRwX2lzQ29weSI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInZ0cF9wcmVjb21waWxlZFJ1bGUiOlsibWFwIiwibmV3X2V2ZW50X25hbWUiLCJmYWlsZWRfcGVyZmVjdF9tb25leSIsIm1lcmdlX3NvdXJjZV9ldmVudF9wYXJhbXMiLHRydWUsImV2ZW50X25hbWVfcHJlZGljYXRlIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X25hbWUiXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwicGFnZV92aWV3Il1dLCJ0eXBlIiwiZXEiXV0sImNvbmRpdGlvbnMiLFsibGlzdCIsWyJtYXAiLCJwcmVkaWNhdGVzIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X3BhcmFtIiwiZXZlbnRfcGFyYW0iLFsibWFwIiwicGFyYW1fbmFtZSIsInBhZ2VfcGF0aCJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiXC9wYXltZW50XC9mYWlsIl1dLCJ0eXBlIiwiZXFpIl0sWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9ob3N0bmFtZSJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiaHR0cHM6XC9cL3N0YWdpbmcuaGkuZXhjaGFuZ2VcLyJdXSwidHlwZSIsInN3aSIsIm5lZ2F0ZSIsdHJ1ZV1dXV1dLCJ0YWdfaWQiOjEwfSx7ImZ1bmN0aW9uIjoiX19vZ3RfZXZlbnRfY3JlYXRlIiwicHJpb3JpdHkiOjMsInZ0cF9ldmVudE5hbWUiOiJzdGVwXzMiLCJ2dHBfaXNDb3B5Ijp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WVkJRMFRMQ0ROIiwidnRwX3ByZWNvbXBpbGVkUnVsZSI6WyJtYXAiLCJuZXdfZXZlbnRfbmFtZSIsInN0ZXBfMyIsIm1lcmdlX3NvdXJjZV9ldmVudF9wYXJhbXMiLHRydWUsImV2ZW50X25hbWVfcHJlZGljYXRlIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X25hbWUiXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwicGFnZV92aWV3Il1dLCJ0eXBlIiwiZXEiXV0sImNvbmRpdGlvbnMiLFsibGlzdCIsWyJtYXAiLCJwcmVkaWNhdGVzIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X3BhcmFtIiwiZXZlbnRfcGFyYW0iLFsibWFwIiwicGFyYW1fbmFtZSIsInBhZ2VfcGF0aCJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiXC8/c3RlcD0zIl1dLCJ0eXBlIiwic3dpIl0sWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9ob3N0bmFtZSJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiaHR0cHM6XC9cL3N0YWdpbmcuaGkuZXhjaGFuZ2VcLyJdXSwidHlwZSIsInN3aSIsIm5lZ2F0ZSIsdHJ1ZV1dXV1dLCJ0YWdfaWQiOjl9LHsiZnVuY3Rpb24iOiJfX29ndF9ldmVudF9jcmVhdGUiLCJwcmlvcml0eSI6MiwidnRwX2V2ZW50TmFtZSI6InRoYW5rX3lvdV9wYWdlIiwidnRwX2lzQ29weSI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInZ0cF9wcmVjb21waWxlZFJ1bGUiOlsibWFwIiwibmV3X2V2ZW50X25hbWUiLCJ0aGFua195b3VfcGFnZSIsIm1lcmdlX3NvdXJjZV9ldmVudF9wYXJhbXMiLHRydWUsImV2ZW50X25hbWVfcHJlZGljYXRlIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X25hbWUiXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwicGFnZV92aWV3Il1dLCJ0eXBlIiwiZXEiXV0sImNvbmRpdGlvbnMiLFsibGlzdCIsWyJtYXAiLCJwcmVkaWNhdGVzIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X3BhcmFtIiwiZXZlbnRfcGFyYW0iLFsibWFwIiwicGFyYW1fbmFtZSIsInBhZ2VfcGF0aCJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiXC8/c3RlcD00Il1dLCJ0eXBlIiwic3dpIl0sWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9ob3N0bmFtZSJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiaHR0cHM6XC9cL3N0YWdpbmcuaGkuZXhjaGFuZ2VcLyJdXSwidHlwZSIsInN3aSIsIm5lZ2F0ZSIsdHJ1ZV1dXV1dLCJ0YWdfaWQiOjh9LHsiZnVuY3Rpb24iOiJfX2NjZF9hdXRvX3JlZGFjdCIsInByaW9yaXR5IjoxLCJ2dHBfcmVkYWN0RW1haWwiOmZhbHNlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WVkJRMFRMQ0ROIiwidGFnX2lkIjo3fSx7ImZ1bmN0aW9uIjoiX19nY3QiLCJ2dHBfdHJhY2tpbmdJZCI6IkctVlZCUTBUTENETiIsInZ0cF9zZXNzaW9uRHVyYXRpb24iOjAsInRhZ19pZCI6MX0seyJmdW5jdGlvbiI6Il9fY2NkX2dhX2xhc3QiLCJwcmlvcml0eSI6MCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVlZCUTBUTENETiIsInRhZ19pZCI6Nn1dLAogICJwcmVkaWNhdGVzIjpbeyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmpzIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmluaXQifV0sCiAgInJ1bGVzIjpbW1siaWYiLDBdLFsiYWRkIiwyMV1dLFtbImlmIiwxXSxbImFkZCIsMCwyMiwyMCwxOSwxOCwxNywxNiwxNSwxNCwxMywxMiwxMSwxMCw5LDgsNyw2LDUsNCwzLDIsMV1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fYyIsWzQ2LCJhIl0sWzM2LFsxNyxbMTUsImEiXSwidmFsdWUiXV1dCiAsWzUwLCJfX2NjZF9hdXRvX3JlZGFjdCIsWzQ2LCJhIl0sWzUwLCJ2IixbNDYsImFGIl0sWzM2LFsyLFsxNSwiYUYiXSwicmVwbGFjZSIsWzcsWzE1LCJ1Il0sIlxcJDEiXV1dXSxbNTAsInciLFs0NiwiYUYiXSxbNTIsImFHIixbMzAsWyJjIixbMTUsImFGIl1dLFsxNSwiYUYiXV1dLFs1MiwiYUgiLFs3XV0sWzY1LCJhSSIsWzIsWzE1LCJhRyJdLCJzcGxpdCIsWzcsIiJdXSxbNDYsWzUzLFs1MiwiYUoiLFs3LFsidiIsWzE1LCJhSSJdXV1dLFs1MiwiYUsiLFsiZCIsWzE1LCJhSSJdXV0sWzIyLFsxMixbMTUsImFLIl0sWzQ1XV0sWzQ2LFs1MyxbMzYsWyJkIixbInYiLFsxNSwiYUYiXV1dXV1dXSxbMjIsWzIxLFsxNSwiYUsiXSxbMTUsImFJIl1dLFs0NixbNTMsWzIsWzE1LCJhSiJdLCJwdXNoIixbNyxbMTUsImFLIl1dXSxbMjIsWzIxLFsxNSwiYUkiXSxbMixbMTUsImFJIl0sInRvTG93ZXJDYXNlIixbN11dXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWyJkIixbMixbMTUsImFJIl0sInRvTG93ZXJDYXNlIixbN11dXV1dXV0sWzQ2LFsyMixbMjEsWzE1LCJhSSJdLFsyLFsxNSwiYUkiXSwidG9VcHBlckNhc2UiLFs3XV1dLFs0NixbNTMsWzIsWzE1LCJhSiJdLCJwdXNoIixbNyxbImQiLFsyLFsxNSwiYUkiXSwidG9VcHBlckNhc2UiLFs3XV1dXV1dXV1dXV1dXSxbMjIsWzE4LFsxNyxbMTUsImFKIl0sImxlbmd0aCJdLDFdLFs0NixbNTMsWzIsWzE1LCJhSCJdLCJwdXNoIixbNyxbMCxbMCwiKD86IixbMixbMTUsImFKIl0sImpvaW4iLFs3LCJ8Il1dXSwiKSJdXV1dXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzE2LFsxNSwiYUoiXSwwXV1dXV1dXV1dLFszNixbMixbMTUsImFIIl0sImpvaW4iLFs3LCIiXV1dXSxbNTAsIngiLFs0NiwiYUYiLCJhRyIsImFIIl0sWzUyLCJhSSIsWyJ6IixbMTUsImFGIl0sWzE1LCJhSCJdXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbMzYsWzE1LCJhRiJdXV1dLFsyMixbMjgsWzE3LFsxNSwiYUkiXSwic2VhcmNoIl1dLFs0NixbMzYsWzE1LCJhRiJdXV1dLFs0MSwiYUoiXSxbMywiYUoiLFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNjUsImFLIixbMTUsImFHIl0sWzQ2LFs1MyxbNTIsImFMIixbNyxbInYiLFsxNSwiYUsiXV0sWyJ3IixbMTUsImFLIl1dXV0sWzY1LCJhTSIsWzE1LCJhTCJdLFs0NixbNTMsWzUyLCJhTiIsWzMwLFsxNixbMTUsInQiXSxbMTUsImFNIl1dLFs0MyxbMTUsInQiXSxbMTUsImFNIl0sWyJiIixbMCxbMCwiKFs/Jl0iLFsxNSwiYU0iXV0sIj0pKFteJl0qKSJdLCJnaSJdXV1dLFszLCJhSiIsWzIsWzE1LCJhSiJdLCJyZXBsYWNlIixbNyxbMTUsImFOIl0sWzAsIiQxIixbMTUsInIiXV1dXV1dXV1dXV0sWzIyLFsyMCxbMTUsImFKIl0sWzE3LFsxNSwiYUkiXSwic2VhcmNoIl1dLFs0NixbMzYsWzE1LCJhRiJdXV1dLFsyMixbMjAsWzE2LFsxNSwiYUoiXSwwXSwiJiJdLFs0NixbMywiYUoiLFsyLFsxNSwiYUoiXSwic3Vic3RyaW5nIixbNywxXV1dXV0sWzIyLFsyMSxbMTYsWzE1LCJhSiJdLDBdLCI/Il0sWzQ2LFszLCJhSiIsWzAsIj8iLFsxNSwiYUoiXV1dXV0sWzIyLFsyMCxbMTUsImFKIl0sIj8iXSxbNDYsWzMsImFKIiwiIl1dXSxbNDMsWzE1LCJhSSJdLCJzZWFyY2giLFsxNSwiYUoiXV0sWzM2LFsiYUEiLFsxNSwiYUkiXSxbMTUsImFIIl1dXV0sWzUwLCJ6IixbNDYsImFGIiwiYUciXSxbMjIsWzIwLFsxNSwiYUciXSxbMTcsWzE1LCJzIl0sIlBBVEgiXV0sWzQ2LFs1MyxbMywiYUYiLFswLFsxNSwieSJdLFsxNSwiYUYiXV1dXV1dLFszNixbImYiLFsxNSwiYUYiXV1dXSxbNTAsImFBIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIiwiIl0sWzIyLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJVUkwiXV0sWzQ2LFs1MyxbNDEsImFJIl0sWzMsImFJIiwiIl0sWzIyLFszMCxbMTcsWzE1LCJhRiJdLCJ1c2VybmFtZSJdLFsxNyxbMTUsImFGIl0sInBhc3N3b3JkIl1dLFs0NixbNTMsWzMsImFJIixbMCxbMTUsImFJIl0sWzAsWzAsWzAsWzE3LFsxNSwiYUYiXSwidXNlcm5hbWUiXSxbMzksWzE3LFsxNSwiYUYiXSwicGFzc3dvcmQiXSwiOiIsIiJdXSxbMTcsWzE1LCJhRiJdLCJwYXNzd29yZCJdXSwiQCJdXV1dXV0sWzMsImFIIixbMCxbMCxbMCxbMTcsWzE1LCJhRiJdLCJwcm90b2NvbCJdLCIvLyJdLFsxNSwiYUkiXV0sWzE3LFsxNSwiYUYiXSwiaG9zdCJdXV1dXV0sWzM2LFswLFswLFswLFsxNSwiYUgiXSxbMTcsWzE1LCJhRiJdLCJwYXRobmFtZSJdXSxbMTcsWzE1LCJhRiJdLCJzZWFyY2giXV0sWzE3LFsxNSwiYUYiXSwiaGFzaCJdXV1dLFs1MCwiYUIiLFs0NiwiYUYiLCJhRyJdLFs0MSwiYUgiXSxbMywiYUgiLFsyLFsxNSwiYUYiXSwicmVwbGFjZSIsWzcsWzE1LCJuIl0sWzE1LCJyIl1dXV0sWzIyLFszMCxbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiVVJMIl1dLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJQQVRIIl1dXSxbNDYsWzUzLFs1MiwiYUkiLFsieiIsWzE1LCJhSCJdLFsxNSwiYUciXV1dLFsyMixbMjAsWzE1LCJhSSJdLFs0NF1dLFs0NixbMzYsWzE1LCJhSCJdXV1dLFs1MiwiYUoiLFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNTIsImFLIixbMixbMTUsImFKIl0sInJlcGxhY2UiLFs3LFsxNSwibyJdLFsxNSwiciJdXV1dLFsyMixbMjAsWzE1LCJhSiJdLFsxNSwiYUsiXV0sWzQ2LFszNixbMTUsImFIIl1dXV0sWzQzLFsxNSwiYUkiXSwic2VhcmNoIixbMTUsImFLIl1dLFszLCJhSCIsWyJhQSIsWzE1LCJhSSJdLFsxNSwiYUciXV1dXV1dLFszNixbMTUsImFIIl1dXSxbNTAsImFDIixbNDYsImFGIl0sWzIyLFsyMCxbMTUsImFGIl0sWzE1LCJxIl1dLFs0NixbNTMsWzM2LFsxNyxbMTUsInMiXSwiUEFUSCJdXV1dLFs0NixbMjIsWzIxLFsyLFsxNSwicCJdLCJpbmRleE9mIixbNyxbMTUsImFGIl1dXSxbMjcsMV1dLFs0NixbNTMsWzM2LFsxNyxbMTUsInMiXSwiVVJMIl1dXV0sWzQ2LFs1MyxbMzYsWzE3LFsxNSwicyJdLCJURVhUIl1dXV1dXV1dLFs1MCwiYUQiLFs0NiwiYUYiLCJhRyJdLFs0MSwiYUgiXSxbMywiYUgiLGZhbHNlXSxbNTIsImFJIixbImUiLFsxNSwiYUYiXV1dLFszOCxbMTUsImFJIl0sWzQ2LCJzdHJpbmciLCJhcnJheSIsIm9iamVjdCJdLFs0NixbNSxbNDYsWzUyLCJhSiIsWyJhQiIsWzE1LCJhRiJdLFsxNSwiYUciXV1dLFsyMixbMjEsWzE1LCJhRiJdLFsxNSwiYUoiXV0sWzQ2LFs1MyxbMzYsWzE1LCJhSiJdXV1dXSxbNF1dXSxbNSxbNDYsWzUzLFs0MSwiYUsiXSxbMywiYUsiLDBdLFs2MyxbNywiYUsiXSxbMjMsWzE1LCJhSyJdLFsxNyxbMTUsImFGIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhSyJdLFszLCJhSyIsWzAsWzE1LCJhSyJdLDFdXV0sWzQ2LFs1MyxbNTIsImFMIixbImFEIixbMTYsWzE1LCJhRiJdLFsxNSwiYUsiXV0sWzE3LFsxNSwicyJdLCJURVhUIl1dXSxbMjIsWzIxLFsxNSwiYUwiXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImFGIl0sWzE1LCJhSyJdLFsxNSwiYUwiXV0sWzMsImFIIix0cnVlXV1dXV1dXV0sWzRdXV0sWzUsWzQ2LFs1NCwiYUsiLFsxNSwiYUYiXSxbNDYsWzUzLFs1MiwiYUwiLFsiYUQiLFsxNixbMTUsImFGIl0sWzE1LCJhSyJdXSxbMTcsWzE1LCJzIl0sIlRFWFQiXV1dLFsyMixbMjEsWzE1LCJhTCJdLFs0NF1dLFs0NixbNTMsWzQzLFsxNSwiYUYiXSxbMTUsImFLIl0sWzE1LCJhTCJdXSxbMywiYUgiLHRydWVdXV1dXV1dLFs0XV1dXV0sWzM2LFszOSxbMTUsImFIIl0sWzE1LCJhRiJdLFs0NF1dXV0sWzUwLCJhRSIsWzQ2LCJhRiIsImFHIl0sWzUyLCJhSCIsWzMwLFsyLFsxNSwiYUYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQUMiXV1dLFs3XV1dLFsyMixbMjAsWzIsWzE1LCJhSCJdLCJpbmRleE9mIixbNyxbMTUsImFHIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJhSCJdLCJwdXNoIixbNyxbMTUsImFHIl1dXV1dXSxbMixbMTUsImFGIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl0sWzE1LCJhSCJdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJkZWNvZGVVcmlDb21wb25lbnQiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJlbmNvZGVVcmlDb21wb25lbnQiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwicGFyc2VVcmwiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImoiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFs1MiwiayIsWzE3LFsxNSwiYSJdLCJyZWRhY3RFbWFpbCJdXSxbNTIsImwiLFsxNyxbMTUsImEiXSwicmVkYWN0UXVlcnlQYXJhbXMiXV0sWzUyLCJtIixbMzksWzE1LCJsIl0sWzIsWzE1LCJsIl0sInNwbGl0IixbNywiLCJdXSxbN11dXSxbMjIsWzEsWzI4LFsxNyxbMTUsIm0iXSwibGVuZ3RoIl1dLFsyOCxbMTUsImsiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwibiIsWyJiIiwiW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcXC5bQS1aXXsyLH0iLCJnaSJdXSxbNTIsIm8iLFsiYiIsWzAsIihbQS1aMC05Ll8tXXwlMjV8JTJCKSslNDBbQS1aMC05Li1dIiwiK1xcLltBLVpdezIsfSJdLCJnaSJdXSxbNTIsInAiLFs3LCJwYWdlX2xvY2F0aW9uIiwicGFnZV9yZWZlcnJlciIsInBhZ2VfcGF0aCIsImxpbmtfdXJsIiwidmlkZW9fdXJsIiwiZm9ybV9kZXN0aW5hdGlvbiJdXSxbNTIsInEiLCJwYWdlX3BhdGgiXSxbNTIsInIiLCIocmVkYWN0ZWQpIl0sWzUyLCJzIixbOCwiVEVYVCIsMCwiVVJMIiwxLCJQQVRIIiwyXV0sWzUyLCJ0IixbOF1dLFs1MiwidSIsWyJiIiwiKFtcXFxcXiQufD8qKygpe31dfFxcW3xcXFspIiwiZyJdXSxbNTIsInkiLCJodHRwOi8vLiJdLFsiZyIsWzE1LCJqIl0sWzUxLCIiLFs3LCJhRiJdLFsyMixbMTUsImsiXSxbNDYsWzUzLFs1MiwiYUciLFsyLFsxNSwiYUYiXSwiZ2V0SGl0S2V5cyIsWzddXV0sWzY1LCJhSCIsWzE1LCJhRyJdLFs0NixbNTMsWzIyLFsyMCxbMTUsImFIIl0sIl9zc3RfcGFyYW1ldGVycyJdLFs0NixbNl1dXSxbNTIsImFJIixbMixbMTUsImFGIl0sImdldEhpdERhdGEiLFs3LFsxNSwiYUgiXV1dXSxbMjIsWzI4LFsxNSwiYUkiXV0sWzQ2LFs2XV1dLFs1MiwiYUoiLFsiYUMiLFsxNSwiYUgiXV1dLFs1MiwiYUsiLFsiYUQiLFsxNSwiYUkiXSxbMTUsImFKIl1dXSxbMjIsWzIxLFsxNSwiYUsiXSxbNDRdXSxbNDYsWzUzLFsyLFsxNSwiYUYiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJhSCJdLFsxNSwiYUsiXV1dLFsiYUUiLFsxNSwiYUYiXSxbMzksWzIsWzE1LCJhRiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJCTyJdXV0sWzE3LFsxNSwiaSJdLCJXIl0sWzE3LFsxNSwiaSJdLCJPIl1dXV1dXV1dXV1dXSxbMjIsWzE3LFsxNSwibSJdLCJsZW5ndGgiXSxbNDYsWzUzLFs2NSwiYUciLFsxNSwicCJdLFs0NixbNTMsWzUyLCJhSCIsWzIsWzE1LCJhRiJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFHIl1dXV0sWzIyLFsyOCxbMTUsImFIIl1dLFs0NixbNl1dXSxbNTIsImFJIixbMzksWzIwLFsxNSwiYUciXSxbMTUsInEiXV0sWzE3LFsxNSwicyJdLCJQQVRIIl0sWzE3LFsxNSwicyJdLCJVUkwiXV1dLFs1MiwiYUoiLFsieCIsWzE1LCJhSCJdLFsxNSwibSJdLFsxNSwiYUkiXV1dLFsyMixbMjEsWzE1LCJhSiJdLFsxNSwiYUgiXV0sWzQ2LFs1MyxbMixbMTUsImFGIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYUciXSxbMTUsImFKIl1dXSxbImFFIixbMTUsImFGIl0sWzM5LFsyLFsxNSwiYUYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQk8iXV1dLFsxNyxbMTUsImkiXSwiWCJdLFsxNyxbMTUsImkiXSwiUCJdXV1dXV1dXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIixbNDYsImEiXSxbMjIsWzMwLFsyOCxbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdXSxbMjAsWzE3LFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlQcmVIaXQiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJmIiwiZmlyc3RfdmlzaXQiXSxbNTIsImciLCJzZXNzaW9uX3N0YXJ0Il0sWzQxLCJoIl0sWzQxLCJpIl0sWyJkIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiaiJdLFs1MiwiayIsWzgsInByZUhpdCIsWzE1LCJqIl1dXSxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiUCJdLHRydWVdXSxbNjUsImwiLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJsIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQVYiXSx0cnVlXV0sWzRdXV1dXV1dLFsyMixbMixbMTUsImoiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQVoiXV1dLFs0NixbNTMsWzIyLFsyOCxbMTUsImgiXV0sWzQ2LFs1MyxbNTIsImwiLFsiYiIsWzE1LCJqIl0sWzgsIm9taXRIaXREYXRhIix0cnVlLCJvbWl0TWV0YWRhdGEiLHRydWVdXV0sWzIsWzE1LCJsIl0sInNldEV2ZW50TmFtZSIsWzcsWzE1LCJmIl1dXSxbMywiaCIsWzgsInByZUhpdCIsWzE1LCJsIl1dXV1dXSxbNjUsImwiLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJsIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImgiXV0sWzQ2LFs1MyxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQkEiXSx0cnVlXV0sWzRdXV1dXV1dXV1dLFsyMixbMixbMTUsImoiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQkwiXV1dLFs0NixbNTMsWzIyLFsyOCxbMTUsImkiXV0sWzQ2LFs1MyxbNTIsImwiLFsiYiIsWzE1LCJqIl0sWzgsIm9taXRIaXREYXRhIix0cnVlLCJvbWl0TWV0YWRhdGEiLHRydWVdXV0sWzIsWzE1LCJsIl0sInNldEV2ZW50TmFtZSIsWzcsWzE1LCJnIl1dXSxbMywiaSIsWzgsInByZUhpdCIsWzE1LCJsIl1dXV1dXSxbNjUsImwiLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJsIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImkiXV0sWzQ2LFs1MyxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQk0iXSx0cnVlXV0sWzRdXV1dXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXQogLFs1MCwiX19jY2RfZW1fZG93bmxvYWQiLFs0NiwiYSJdLFs1MCwicSIsWzQ2LCJ2Il0sWzM2LFsxLFsxNSwidiJdLFsyMSxbMixbMixbMTUsInYiXSwidG9Mb3dlckNhc2UiLFs3XV0sIm1hdGNoIixbNyxbMTUsInAiXV1dLFs0NV1dXV1dLFs1MCwiciIsWzQ2LCJ2Il0sWzUyLCJ3IixbMixbMTcsWzE1LCJ2Il0sInBhdGhuYW1lIl0sInNwbGl0IixbNywiLiJdXV0sWzUyLCJ4IixbMzksWzE4LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sMV0sWzE2LFsxNSwidyJdLFszNyxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLDFdXSwiIl1dLFszNixbMTYsWzIsWzE1LCJ4Il0sInNwbGl0IixbNywiLyJdXSwwXV1dLFs1MCwicyIsWzQ2LCJ2Il0sWzM2LFszOSxbMTIsWzIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdLCJzdWJzdHJpbmciLFs3LDAsMV1dLCIvIl0sWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdLFswLCIvIixbMTcsWzE1LCJ2Il0sInBhdGhuYW1lIl1dXV1dLFs1MCwidCIsWzQ2LCJ2Il0sWzQxLCJ3Il0sWzMsInciLCIiXSxbMjIsWzEsWzE1LCJ2Il0sWzE3LFsxNSwidiJdLCJocmVmIl1dLFs0NixbNTMsWzQxLCJ4Il0sWzMsIngiLFsyLFsxNyxbMTUsInYiXSwiaHJlZiJdLCJpbmRleE9mIixbNywiIyJdXV0sWzMsInciLFszOSxbMjMsWzE1LCJ4Il0sMF0sWzE3LFsxNSwidiJdLCJocmVmIl0sWzIsWzE3LFsxNSwidiJdLCJocmVmIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsIngiXV1dXV1dXV0sWzM2LFsxNSwidyJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbURvd25sb2FkQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkEiXV0sWzUyLCJnIiwiZmlsZV9kb3dubG9hZCJdLFs1MiwiaCIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiaSIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImMiXSwiZ2V0SXRlbSIsWzcsWzE1LCJoIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkxpbmtDbGljayJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm0iLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwibiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsIm8iLFsyLFsxNSwibCJdLCJBIixbNywiZG93bmxvYWQiXV1dLFs1MiwicCIsWzAsIl4ocGRmfHhsc3g/fGRvY3g/fHR4dHxydGZ8Y3N2fGV4ZXxrZXl8cHAoc3x0fHR4KXw3enxwa2d8cmFyfGd6fHppcHxhdml8IiwibW92fG1wNHxtcGU/Z3x3bXZ8bWlkaT98bXAzfHdhdnx3bWEpJCJdXSxbNTIsInUiLFsiayIsWzgsImNoZWNrVmFsaWRhdGlvbiIsdHJ1ZV1dXSxbMjIsWzI4LFsxNSwidSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJoIl0sdHJ1ZV1dLFsiaiIsImd0bS5saW5rQ2xpY2siLFs1MSwiIixbNywidiIsInciXSxbInciXSxbNTIsIngiLFs4LCJldmVudElkIixbMTYsWzE1LCJ2Il0sImd0bS51bmlxdWVFdmVudElkIl0sImRlZmVycmFibGUiLHRydWVdXSxbNTIsInkiLFsxNixbMTUsInYiXSwiZ3RtLmVsZW1lbnRVcmwiXV0sWzUyLCJ6IixbIm0iLFsxNSwieSJdXV0sWzIyLFsyOCxbMTUsInoiXV0sWzQ2LFszNl1dXSxbNTIsImFBIixbInIiLFsxNSwieiJdXV0sWzIyLFsyOCxbInEiLFsxNSwiYUEiXV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImFCIixbOCwibGlua19pZCIsWzE2LFsxNSwidiJdLCJndG0uZWxlbWVudElkIl0sImxpbmtfdXJsIixbInQiLFsxNSwieiJdXSwibGlua190ZXh0IixbMTYsWzE1LCJ2Il0sImd0bS5lbGVtZW50VGV4dCJdLCJmaWxlX25hbWUiLFsicyIsWzE1LCJ6Il1dLCJmaWxlX2V4dGVuc2lvbiIsWzE1LCJhQSJdXV0sWzIsWzE1LCJsIl0sIkIiLFs3LFsxNSwieCJdXV0sWyJuIixbMTUsIm8iXSxbMTUsImciXSxbMTUsImFCIl0sWzE1LCJ4Il1dXSxbMTUsInUiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX291dGJvdW5kX2NsaWNrIixbNDYsImEiXSxbNTAsInIiLFs0NiwidyJdLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzYsWzQ0XV1dXSxbNDEsIngiXSxbMywieCIsIiJdLFsyMixbMSxbMTUsInciXSxbMTcsWzE1LCJ3Il0sImhyZWYiXV0sWzQ2LFs1MyxbNDEsInkiXSxbMywieSIsWzIsWzE3LFsxNSwidyJdLCJocmVmIl0sImluZGV4T2YiLFs3LCIjIl1dXSxbMywieCIsWzM5LFsyMyxbMTUsInkiXSwwXSxbMTcsWzE1LCJ3Il0sImhyZWYiXSxbMixbMTcsWzE1LCJ3Il0sImhyZWYiXSwic3Vic3RyaW5nIixbNywwLFsxNSwieSJdXV1dXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNTAsInMiLFs0NiwidyJdLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzYsWzQ0XV1dXSxbNDEsIngiXSxbMywieCIsWzE3LFsxNSwidyJdLCJob3N0bmFtZSJdXSxbNTIsInkiLFsyLFsxNSwieCJdLCJtYXRjaCIsWzcsIl53d3dcXGQqXFwuIl1dXSxbMjIsWzEsWzE1LCJ5Il0sWzE2LFsxNSwieSJdLDBdXSxbNDYsWzMsIngiLFsyLFsxNSwieCJdLCJzdWJzdHJpbmciLFs3LFsxNyxbMTYsWzE1LCJ5Il0sMF0sImxlbmd0aCJdXV1dXV0sWzM2LFsxNSwieCJdXV0sWzUwLCJ0IixbNDYsInciXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LGZhbHNlXV1dLFs1MiwieCIsWzIsWzE3LFsxNSwidyJdLCJob3N0bmFtZSJdLCJ0b0xvd2VyQ2FzZSIsWzddXV0sWzIyLFsyOCxbMTUsIngiXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFs0MSwieSJdLFszLCJ5IixbMixbInMiLFsibyIsWyJuIl1dXSwidG9Mb3dlckNhc2UiLFs3XV1dLFs0MSwieiJdLFszLCJ6IixbMzcsWzE3LFsxNSwieCJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ5Il0sImxlbmd0aCJdXV0sWzIyLFsxLFsxOCxbMTUsInoiXSwwXSxbMjksWzIsWzE1LCJ5Il0sImNoYXJBdCIsWzcsMF1dLCIuIl1dLFs0NixbNTMsWzMyLFsxNSwieiJdLFszLCJ6IixbMzcsWzE1LCJ6Il0sMV1dXSxbMywieSIsWzAsIi4iLFsxNSwieSJdXV1dXV0sWzIyLFsxLFsxOSxbMTUsInoiXSwwXSxbMTIsWzIsWzE1LCJ4Il0sImluZGV4T2YiLFs3LFsxNSwieSJdLFsxNSwieiJdXV0sWzE1LCJ6Il1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzM2LHRydWVdXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtT3V0Ym91bmRDbGlja0FjdGl2aXR5Il1dLFs1MiwiZiIsWzE3LFsxNSwiZCJdLCJEIl1dLFs1MiwiZyIsImNsaWNrIl0sWzUyLCJoIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJpIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaSJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImgiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uTGlua0NsaWNrIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwibiIsWyJyZXF1aXJlIiwiZ2V0VXJsIl1dLFs1MiwibyIsWyJyZXF1aXJlIiwicGFyc2VVcmwiXV0sWzUyLCJwIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwicSIsWzIsWzE1LCJsIl0sIkEiLFs3LCJvdXRib3VuZF9jbGljayJdXV0sWzUyLCJ1IixbIm0iLFsxNSwiaSJdLCJjcm9zc19kb21haW5fY29uZGl0aW9ucyJdXSxbNTIsInYiLFsiayIsWzgsImFmZmlsaWF0ZURvbWFpbnMiLFsxNSwidSJdLCJjaGVja1ZhbGlkYXRpb24iLHRydWUsIndhaXRGb3JUYWdzIixmYWxzZV1dXSxbMjIsWzI4LFsxNSwidiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJoIl0sdHJ1ZV1dLFsiaiIsImd0bS5saW5rQ2xpY2siLFs1MSwiIixbNywidyIsIngiXSxbNTIsInkiLFsibyIsWzE2LFsxNSwidyJdLCJndG0uZWxlbWVudFVybCJdXV0sWzIyLFsyOCxbInQiLFsxNSwieSJdXV0sWzQ2LFs1MyxbIngiXSxbMzZdXV1dLFs1MiwieiIsWzgsImxpbmtfaWQiLFsxNixbMTUsInciXSwiZ3RtLmVsZW1lbnRJZCJdLCJsaW5rX2NsYXNzZXMiLFsxNixbMTUsInciXSwiZ3RtLmVsZW1lbnRDbGFzc2VzIl0sImxpbmtfdXJsIixbInIiLFsxNSwieSJdXSwibGlua19kb21haW4iLFsicyIsWzE1LCJ5Il1dLCJvdXRib3VuZCIsdHJ1ZV1dLFs0MyxbMTUsInoiXSwiZXZlbnRfY2FsbGJhY2siLFsxNSwieCJdXSxbNTIsImFBIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwidyJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzIsWzE1LCJsIl0sIkIiLFs3LFsxNSwiYUEiXV1dLFsicCIsWzE1LCJxIl0sWzE1LCJnIl0sWzE1LCJ6Il0sWzE1LCJhQSJdXV0sWzE1LCJ2Il1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9wYWdlX3ZpZXciLFs0NiwiYSJdLFsyMixbMjgsWzE3LFsxNSwiYSJdLCJoaXN0b3J5RXZlbnRzIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbVBhZ2VWaWV3QWN0aXZpdHkiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZyIsWzE3LFsxNSwiZiJdLCJDIl1dLFs1MiwiaCIsInBhZ2VfdmlldyJdLFs1MiwiaSIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiaiIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJqIl0sWzE1LCJnIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImoiXV1dLFsyMixbMixbMTUsImQiXSwiZ2V0SXRlbSIsWzcsWzE1LCJpIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJsIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiXV0sWzUyLCJtIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJuIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwibyIsWzIsWzE1LCJtIl0sIkEiLFs3LCJwYWdlX3ZpZXciXV1dLFs1MiwicCIsWzgsImludGVydmFsIiwxMDAwLCJ1c2VWMkV2ZW50TmFtZSIsdHJ1ZV1dLFs1MiwicSIsWyJsIixbMTUsInAiXV1dLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZCJdLCJzZXRJdGVtIixbNyxbMTUsImkiXSx0cnVlXV0sWyJrIiwiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiLFs1MSwiIixbNywiciIsInMiXSxbInMiXSxbNTIsInQiLFsxNixbMTUsInIiXSwiZ3RtLm9sZFVybCJdXSxbMjIsWzIwLFsxNixbMTUsInIiXSwiZ3RtLm5ld1VybCJdLFsxNSwidCJdXSxbNDYsWzM2XV1dLFs1MiwidSIsWzE2LFsxNSwiciJdLCJndG0uaGlzdG9yeUNoYW5nZVNvdXJjZSJdXSxbMjIsWzEsWzEsWzIxLFsxNSwidSJdLCJwdXNoU3RhdGUiXSxbMjEsWzE1LCJ1Il0sInBvcHN0YXRlIl1dLFsyMSxbMTUsInUiXSwicmVwbGFjZVN0YXRlIl1dLFs0NixbNTMsWzM2XV1dXSxbNTIsInYiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJwYWdlX2xvY2F0aW9uIixbMTYsWzE1LCJyIl0sImd0bS5uZXdVcmwiXV0sWzQzLFsxNSwidiJdLCJwYWdlX3JlZmVycmVyIixbMTUsInQiXV1dXV0sWzUyLCJ3IixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiciJdLCJndG0udW5pcXVlRXZlbnRJZCJdXV0sWzIyLFsyMSxbMTcsWzE1LCJhIl0sImRlZmVyUGFnZVZpZXciXSxmYWxzZV0sWzQ2LFs1MyxbNDMsWzE1LCJ3Il0sImRlZmVycmFibGUiLHRydWVdXV1dLFsyLFsxNSwibSJdLCJCIixbNyxbMTUsInciXV1dLFsibiIsWzE1LCJvIl0sWzE1LCJoIl0sWzE1LCJ2Il0sWzE1LCJ3Il1dXSxbMTUsInEiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3Njcm9sbCIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbVNjcm9sbEFjdGl2aXR5Il1dLFs1MiwiZiIsWzE3LFsxNSwiZCJdLCJFIl1dLFs1MiwiZyIsInNjcm9sbCJdLFs1MiwiaCIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiaSIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImMiXSwiZ2V0SXRlbSIsWzcsWzE1LCJoIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblNjcm9sbCJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJuIixbMixbMTUsImwiXSwiQSIsWzcsInNjcm9sbCJdXV0sWzUyLCJvIixbImsiLFs4LCJ2ZXJ0aWNhbFRocmVzaG9sZFVuaXRzIiwiUEVSQ0VOVCIsInZlcnRpY2FsVGhyZXNob2xkcyIsOTBdXV0sWzIyLFsyOCxbMTUsIm8iXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaCJdLHRydWVdXSxbImoiLCJndG0uc2Nyb2xsRGVwdGgiLFs1MSwiIixbNywicCIsInEiXSxbInEiXSxbNTIsInIiLFs4LCJldmVudElkIixbMTYsWzE1LCJwIl0sImd0bS51bmlxdWVFdmVudElkIl0sImRlZmVycmFibGUiLHRydWVdXSxbNTIsInMiLFs4LCJwZXJjZW50X3Njcm9sbGVkIixbMTYsWzE1LCJwIl0sImd0bS5zY3JvbGxUaHJlc2hvbGQiXV1dLFsyLFsxNSwibCJdLCJCIixbNyxbMTUsInIiXV1dLFsibSIsWzE1LCJuIl0sWzE1LCJnIl0sWzE1LCJzIl0sWzE1LCJyIl1dXSxbMTUsIm8iXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3NpdGVfc2VhcmNoIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImdldFF1ZXJ5UGFyYW1ldGVycyJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJnZXRDb250YWluZXJWZXJzaW9uIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9jY2RFbVNpdGVTZWFyY2hBY3Rpdml0eSJdXSxbNTIsImkiLFsyLFsxNSwiaCJdLCJBIixbNyxbMTcsWzE1LCJhIl0sInNlYXJjaFF1ZXJ5UGFyYW1zIl0sWzE1LCJiIl1dXV0sWzUyLCJqIixbMzAsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTcsWyJkIl0sImNvbnRhaW5lcklkIl1dXSxbNTIsImsiLFs4LCJkZWZlcnJhYmxlIix0cnVlLCJldmVudElkIixbMTcsWzE1LCJhIl0sImd0bUV2ZW50SWQiXSwiZXZlbnRNZXRhZGF0YSIsWzgsImVtX2V2ZW50Iix0cnVlXV1dLFsyMixbMTUsImkiXSxbNDYsWzUzLFs1MiwibCIsWzM5LFsyOCxbMjgsWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMixbMTUsImgiXSwiQiIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJhZGRpdGlvbmFsUXVlcnlQYXJhbXMiXSxbMTUsImIiXV1dLFs4XV1dLFs0MyxbMTcsWzE1LCJrIl0sImV2ZW50TWV0YWRhdGEiXSxbMTcsWzE1LCJnIl0sIloiXSwiYSJdLFsiYyIsWzE1LCJqIl0sInZpZXdfc2VhcmNoX3Jlc3VsdHMiLFsxNSwibCJdLFsxNSwiayJdXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fdmlkZW8iLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1WaWRlb0FjdGl2aXR5Il1dLFs1MiwiZiIsWzE3LFsxNSwiZCJdLCJGIl1dLFs1MiwiZyIsInZpZGVvX3N0YXJ0Il0sWzUyLCJoIiwidmlkZW9fcHJvZ3Jlc3MiXSxbNTIsImkiLCJ2aWRlb19jb21wbGV0ZSJdLFs1MiwiaiIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiayIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJrIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImsiXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImMiXSwiZ2V0SXRlbSIsWzcsWzE1LCJqIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbllvdVR1YmVBY3Rpdml0eSJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm8iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJwIixbMixbMTUsIm4iXSwiQSIsWzcsInZpZGVvIl1dXSxbNTIsInEiLFsibSIsWzgsImNhcHR1cmVDb21wbGV0ZSIsdHJ1ZSwiY2FwdHVyZVN0YXJ0Iix0cnVlLCJwcm9ncmVzc1RocmVzaG9sZHNQZXJjZW50IixbNywxMCwyNSw1MCw3NV1dXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaiJdLHRydWVdXSxbImwiLCJndG0udmlkZW8iLFs1MSwiIixbNywiciIsInMiXSxbInMiXSxbNTIsInQiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvU3RhdHVzIl1dLFs0MSwidSJdLFsyMixbMjAsWzE1LCJ0Il0sInN0YXJ0Il0sWzQ2LFs1MyxbMywidSIsWzE1LCJnIl1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ0Il0sInByb2dyZXNzIl0sWzQ2LFs1MyxbMywidSIsWzE1LCJoIl1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ0Il0sImNvbXBsZXRlIl0sWzQ2LFs1MyxbMywidSIsWzE1LCJpIl1dXV0sWzQ2LFs1MyxbMzZdXV1dXV1dXSxbNTIsInYiLFs4LCJ2aWRlb19jdXJyZW50X3RpbWUiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvQ3VycmVudFRpbWUiXSwidmlkZW9fZHVyYXRpb24iLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvRHVyYXRpb24iXSwidmlkZW9fcGVyY2VudCIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9QZXJjZW50Il0sInZpZGVvX3Byb3ZpZGVyIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1Byb3ZpZGVyIl0sInZpZGVvX3RpdGxlIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1RpdGxlIl0sInZpZGVvX3VybCIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9VcmwiXSwidmlzaWJsZSIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9WaXNpYmxlIl1dXSxbNTIsInciLFs4LCJldmVudElkIixbMTYsWzE1LCJyIl0sImd0bS51bmlxdWVFdmVudElkIl0sImRlZmVycmFibGUiLHRydWVdXSxbMixbMTUsIm4iXSwiQiIsWzcsWzE1LCJ3Il1dXSxbIm8iLFsxNSwicCJdLFsxNSwidSJdLFsxNSwidiJdLFsxNSwidyJdXV0sWzE1LCJxIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9maXJzdCIsWzQ2LCJhIl0sWzUwLCJlIixbNDYsImYiXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJmIl1dXSxbMixbMTUsImQiXSwiQSIsWzcsWzE1LCJmIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRUZXN0SGl0UGFyYW1zIl1dLFsiYiIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbNTEsIiIsWzcsImYiXSxbImUiLFsxNSwiZiJdXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9sYXN0IixbNDYsImEiXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZ2FfcmVnc2NvcGUiLFs0NiwiYSJdLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9jY2RHYVJlZ2lvblNjb3BlZFNldHRpbmdzIl1dLFs1MiwiYyIsWzIsWzE1LCJiIl0sIkIiLFs3LFsxNSwiYSJdXV1dLFsyLFsxNSwiYiJdLCJBIixbNyxbMTUsImEiXSxbMTUsImMiXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2UiLFs0NiwiYSJdLFszNixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RXZlbnREYXRhIl1dLFsiJDAiLCJldmVudCJdXV1dCiAsWzUwLCJfX2djdCIsWzQ2LCJhIl0sWzUwLCJnIixbNDYsIm0iXSxbNTIsIm4iLFs3XV0sWzY1LCJvIixbMTUsIm0iXSxbNDYsWzUzLFs1MiwicCIsWyJiIixbMTUsIm8iXV1dLFsyMixbMjEsWzE1LCJwIl0sWzQ1XV0sWzQ2LFsyLFsxNSwibiJdLCJwdXNoIixbNyxbMTUsInAiXV1dXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUwLCJoIixbNDYsIm0iXSxbNTIsIm4iLFsxNyxbMTUsIm0iXSwibGlua2VyIl1dLFsyMixbMSxbMTUsIm4iXSxbMTYsWzE1LCJuIl0sImRvbWFpbnMiXV0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sImRvbWFpbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJkb21haW5zIl1dXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImkiLFs0NiwibSJdLFs1MiwibiIsWzE3LFsxNSwibSJdLCJyZWZlcnJhbEV4Y2x1c2lvbkRlZmluaXRpb24iXV0sWzIyLFsxLFsxNSwibiJdLFsxNixbMTUsIm4iXSwiaW5jbHVkZV9jb25kaXRpb25zIl1dLFs0NixbNTMsWzQzLFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiXV1dXV1dLFszNixbMTUsIm4iXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwubWVyZ2VSZW1vdGVDb25maWciXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiaiIsWzMwLFsyLFsxNSwiZiJdLCJnZXRJdGVtIixbNywicmVnZXgiXV0sWyJiIiwiWy4qK1xcLT9eJHt9KCl8W1xcXVxcXFxdIiwiZyJdXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LCJyZWdleCIsWzE1LCJqIl1dXSxbNTIsImsiLFs4XV0sWzUyLCJsIixbMTcsWzE1LCJhIl0sInNlc3Npb25EdXJhdGlvbiJdXSxbMjIsWzE4LFsxNSwibCJdLDBdLFs0NixbNTMsWzQzLFsxNSwiayJdLCJzZXNzaW9uX2R1cmF0aW9uIixbMTUsImwiXV1dXV0sWzQzLFsxNSwiayJdLCJldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzIl1dLFs0MyxbMTUsImsiXSwiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJkeW5hbWljRXZlbnRTZXR0aW5ncyJdXSxbNDMsWzE1LCJrIl0sImdvb2dsZV9zaWduYWxzIixbMjAsWzE3LFsxNSwiYSJdLCJnb29nbGVTaWduYWxzIl0sMV1dLFs0MyxbMTUsImsiXSwiZ29vZ2xlX3RsZCIsWzE3LFsxNSwiYSJdLCJmb3JlaWduVGxkIl1dLFs0MyxbMTUsImsiXSwiZ2FfcmVzdHJpY3RfZG9tYWluIixbMjAsWzE3LFsxNSwiYSJdLCJyZXN0cmljdERvbWFpbiJdLDFdXSxbNDMsWzE1LCJrIl0sImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsWzE3LFsxNSwiYSJdLCJpbnRlcm5hbFRyYWZmaWNSZXN1bHRzIl1dLFs0MyxbMTUsImsiXSwibGlua2VyIixbImgiLFsxNSwiYSJdXV0sWzQzLFsxNSwiayJdLCJyZWZlcnJhbF9leGNsdXNpb25fZGVmaW5pdGlvbiIsWyJpIixbMTUsImEiXV1dLFsiZCIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl0sWzE1LCJrIl1dLFsiZSIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF8xcF9kYXRhX3YyIixbNDYsImEiXSxbNTAsInAiLFs0NiwiciIsInMiLCJ0IiwidSJdLFsyMixbMjAsWzE2LFsxNSwicyJdLCJ0eXBlIl0sWzE1LCJ0Il1dLFs0NixbNTMsWzIyLFsyOCxbMTUsInIiXV0sWzQ2LFs1MyxbMywiciIsWzhdXV1dXSxbMjIsWzI4LFsxNixbMTUsInIiXSxbMTUsInQiXV1dLFs0NixbNTMsWzQzLFsxNSwiciJdLFsxNSwidCJdLFsxNixbMTUsInMiXSwidXNlckRhdGEiXV0sWzUyLCJ2IixbOCwibW9kZSIsImEiXV0sWzIyLFsxNixbMTUsInMiXSwidGFnTmFtZSJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJsb2NhdGlvbiIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl1dXV1dLFsyMixbMTYsWzE1LCJzIl0sInF1ZXJ5U2VsZWN0b3IiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwic2VsZWN0b3IiLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdXV1dXSxbNDMsWzE1LCJ1Il0sWzE1LCJ0Il0sWzE1LCJ2Il1dXV1dXV1dLFszNixbMTUsInIiXV1dLFs1MCwicSIsWzQ2LCJyIiwicyIsInQiXSxbMjIsWzI4LFsxNixbMTUsImEiXSxbMTUsInQiXV1dLFs0NixbMzZdXV0sWzQzLFsxNSwiciJdLFsxNSwicyJdLFs4LCJ2YWx1ZSIsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV1dXSxbMjIsWzI4LFsxNyxbMTUsImEiXSwiaXNFbmFibGVkIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSJdXSxbNTIsImgiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbNTIsImkiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibSIsWyJjIixbMTcsWzE1LCJlIl0sIkFUIl1dXSxbNTIsIm4iLFszMCxbImYiXSxbN11dXSxbNTIsIm8iLFs4LCJlbmFibGVfY29kZSIsdHJ1ZV1dLFsyMixbMTcsWzE1LCJhIl0sImlzQXV0b0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzddXSxbMjIsWzEsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbNDYsWzUzLFs1MyxbNDEsInUiXSxbMywidSIsMF0sWzYzLFs3LCJ1Il0sWzIzLFsxNSwidSJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJ1Il0sWzMsInUiLFswLFsxNSwidSJdLDFdXV0sWzQ2LFs1MyxbNTIsInYiLFsxNyxbMTYsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNSwidSJdXSwiZXhjbHVzaW9uU2VsZWN0b3IiXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzIsWzE1LCJyIl0sInB1c2giLFs3LFsxNSwidiJdXV1dXV1dXV1dXV1dLFs1MiwicyIsWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXV0sWzUyLCJ0IixbMzksWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXSxbMTcsWzE1LCJhIl0sImF1dG9FbWFpbEVuYWJsZWQiXSx0cnVlXV0sWzQzLFsxNSwibyJdLCJhdXRvX2RldGVjdCIsWzgsImVtYWlsIixbMTUsInQiXSwicGhvbmUiLFsxLFsxNSwicyJdLFsxNyxbMTUsImEiXSwiYXV0b1Bob25lRW5hYmxlZCJdXSwiYWRkcmVzcyIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvQWRkcmVzc0VuYWJsZWQiXV0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiLFsxNSwiciJdXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNNYW51YWxFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInIiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsRW1haWxFbmFibGVkIl0sWzQ2LFs1MyxbInEiLFsxNSwiciJdLCJlbWFpbCIsImVtYWlsVmFsdWUiXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxQaG9uZUVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sInBob25lIiwicGhvbmVWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbEFkZHJlc3NFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInMiLFs4XV0sWyJxIixbMTUsInMiXSwiZmlyc3RfbmFtZSIsImZpcnN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwibGFzdF9uYW1lIiwibGFzdE5hbWVWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInN0cmVldCIsInN0cmVldFZhbHVlIl0sWyJxIixbMTUsInMiXSwiY2l0eSIsImNpdHlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInJlZ2lvbiIsInJlZ2lvblZhbHVlIl0sWyJxIixbMTUsInMiXSwiY291bnRyeSIsImNvdW50cnlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInBvc3RhbF9jb2RlIiwicG9zdGFsQ29kZVZhbHVlIl0sWzQzLFsxNSwiciJdLCJuYW1lX2FuZF9hZGRyZXNzIixbNyxbMTUsInMiXV1dXV1dLFs0MyxbMTUsIm8iXSwic2VsZWN0b3JzIixbMTUsInIiXV1dXV0sWzY1LCJyIixbMTUsIm4iXSxbNDYsWzUzLFsiaSIsWzE1LCJyIl0sInVzZXJfZGF0YV9zZXR0aW5ncyIsWzE1LCJvIl1dLFs1MiwicyIsWzE2LFsxNSwibyJdLCJhdXRvX2RldGVjdCJdXSxbMjIsWzI4LFsxNSwicyJdXSxbNDYsWzUzLFs2XV1dXSxbNTIsInQiLFs1MSwiIixbNywidSJdLFs1MiwidiIsWzIsWzE1LCJ1Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNYIl1dXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzM2LFsxNSwidiJdXV1dXSxbNTIsInciLFsiYyIsWzE3LFsxNSwiZSJdLCJCViJdXV0sWzUyLCJ4IixbImMiLFsxNyxbMTUsImUiXSwiQ0kiXV1dLFs0MSwieSJdLFsyMixbImgiLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byJdLFs0NixbNTMsWzMsInkiLFsiZyIsWzgsImV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzIixbMTYsWzE1LCJzIl0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiXSwiZmllbGRGaWx0ZXJzIixbOCwiZW1haWwiLFsxNixbMTUsInMiXSwiZW1haWwiXSwicGhvbmUiLFsxNixbMTUsInMiXSwicGhvbmUiXSwiYWRkcmVzcyIsWzE2LFsxNSwicyJdLCJhZGRyZXNzIl1dLCJpbmNsdWRlU2VsZWN0b3IiLFsxNSwidyJdLCJyZWFkRnJvbURhdGFMYXllciIsWzE1LCJ4Il1dXV1dXV0sWzUyLCJ6IixbMSxbMTUsInkiXSxbMTYsWzE1LCJ5Il0sImVsZW1lbnRzIl1dXSxbNTIsImFBIixbOF1dLFs1MiwiYUIiLFs4XV0sWzIyLFsxLFsxNSwieiJdLFsxOCxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFs0MSwiYUMiXSxbNDEsImFEIl0sWzMsImFEIixbOF1dLFs1MyxbNDEsImFFIl0sWzMsImFFIiwwXSxbNjMsWzcsImFFIl0sWzIzLFsxNSwiYUUiXSxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJhRSJdLFszLCJhRSIsWzAsWzE1LCJhRSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFGIixbMTYsWzE1LCJ6Il0sWzE1LCJhRSJdXV0sWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJlbWFpbCIsWzE1LCJhQiJdXSxbMjIsWyJjIixbMTcsWzE1LCJlIl0sIkJPIl1dLFs0NixbNTMsWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJwaG9uZV9udW1iZXIiLFsxNSwiYUIiXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImZpcnN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJsYXN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJjb3VudHJ5IixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwicG9zdGFsX2NvZGUiLFsxNSwiYUQiXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJhQyJdLFsyOCxbMTYsWzE1LCJhQSJdLCJhZGRyZXNzIl1dXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sImFkZHJlc3MiLFsxNSwiYUMiXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzQzLFsxNixbMTUsImFBIl0sImFkZHJlc3MiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhRCJdXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJ5Il0sWzE1LCJ4Il1dLFs0NixbNTMsWzUyLCJhQyIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hUaW1lIl1dLFs1MiwiYUQiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoQ291bnQiXV0sWzIsWzE1LCJ1Il0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwibCJdLCJGVCJdLFs4LCJkbHN0IixbMTUsImFDIl0sImRsc2MiLFsxNSwiYUQiXV1dXV1dXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbMjIsWzMwLFsxNixbMTUsImFBIl0sImVtYWlsIl0sWzE2LFsxNSwiYUEiXSwicGhvbmVfbnVtYmVyIl1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhQiJdXV1dXV1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXSxbMTUsImFBIl1dXSxbMzYsWzE1LCJhQSJdXV1dLFsiaiIsWzE1LCJyIl0sWzUxLCIiLFs3LCJ1Il0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNZIl0sWzE1LCJ0Il1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9ldmVudF9jcmVhdGUiLFs0NiwiYSJdLFs1MCwiciIsWzQ2LCJzIiwidCJdLFsyMixbMjgsWzIsWzE1LCJjIl0sIkIiLFs3LFsxNSwicyJdLFsxNixbMTUsInQiXSxbMTUsIm4iXV0sWzMwLFsxNixbMTUsInQiXSxbMTUsIm8iXV0sWzddXV1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzUyLCJ1IixbMTYsWzE1LCJ0Il0sWzE1LCJwIl1dXSxbMjIsWzIsWzE1LCJjIl0sIkQiLFs3LFsxNSwidSJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzI4LFsxNixbMTUsInQiXSxbMTUsInEiXV1dXSxbNDEsInciXSxbMywidyIsWzE1LCJ2Il1dLFsyMixbImkiLFsxNyxbMTUsImoiXSwiQUUiXV0sWzQ2LFs1MyxbMywidyIsWzMwLFsxNSwidyJdLFsyOCxbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQk8iXV1dXV1dXV1dLFs1MiwieCIsWzMwLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJBQyJdXV0sWzddXV0sWzIyLFsyMCxbMixbMTUsIngiXSwiaW5kZXhPZiIsWzcsWzE3LFsxNSwiaCJdLCJBIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImgiXSwiQSJdXV1dXV0sWzIsWzE1LCJzIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkFDIl0sWzE1LCJ4Il1dXSxbNTIsInkiLFsiYiIsWzE1LCJzIl0sWzgsIm9taXRIaXREYXRhIixbMTUsInciXSwib21pdEV2ZW50Q29udGV4dCIsWzE1LCJ2Il0sIm9taXRNZXRhZGF0YSIsdHJ1ZV1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJ5Il0sWzE1LCJ0Il1dXSxbMixbMTUsInkiXSwic2V0RXZlbnROYW1lIixbNyxbMTUsInUiXV1dLFsyLFsxNSwieSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCUiJdLHRydWVdXSxbMixbMTUsInkiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQUMiXSxbNyxbMTcsWzE1LCJoIl0sIksiXV1dXSxbImQiLFsxNSwieSJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ldmVudEVkaXRpbmdBbmRTeW50aGVzaXMiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJmIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJrIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNDEsImwiXSxbMywibCIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwiayJdXV1dLFs0MSwibSJdLFszLCJtIixbMjgsWzI4LFsxNSwibCJdXV1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFsyLFsxNSwibCJdLCJwdXNoIixbNyxbMTcsWzE1LCJhIl0sInByZWNvbXBpbGVkUnVsZSJdXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZiJdLCJzZXRJdGVtIixbNyxbMTUsImsiXSxbNyxbMTcsWzE1LCJhIl0sInByZWNvbXBpbGVkUnVsZSJdXV1dLFs1MiwibiIsImV2ZW50X25hbWVfcHJlZGljYXRlIl0sWzUyLCJvIiwiY29uZGl0aW9ucyJdLFs1MiwicCIsIm5ld19ldmVudF9uYW1lIl0sWzUyLCJxIiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyJdLFsiZSIsWzE1LCJrIl0sWzUxLCIiLFs3LCJzIl0sWzIyLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCUiJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidCIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwiayJdXV1dLFs2NiwidSIsWzE1LCJ0Il0sWzQ2LFs1MyxbInIiLFsxNSwicyJdLFsxNSwidSJdXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9nb29nbGVfc2lnbmFscyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRDb250YWluZXJWZXJzaW9uIl1dLFs1MiwiZCIsWzMwLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzE3LFsiYyJdLCJjb250YWluZXJJZCJdXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX3NpZ25hbHMiLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiRU5BQkxFRCJdXSxbNTIsImUiLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiTk9OX0dBSUFfUkVNQVJLRVRJTkciXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX29ubyIsWzE1LCJlIl1dLFs1MiwiZiIsWzMwLFsxNSwiZSJdLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiTElNSVRFRF9FWFRFUk5BTCJdXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX25nIixbMTUsImYiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiLFs0NiwiYSJdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUyLCJfX21vZHVsZV9ndGFnU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJjIiwiYWRfc3RvcmFnZSJdLFs1MiwiZCIsImFkX3VzZXJfZGF0YSJdLFs1MiwiZSIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZiIsImFwcF9yZW1vdmUiXSxbNTIsImciLCJhcHBfc3RvcmVfcmVmdW5kIl0sWzUyLCJoIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiXSxbNTIsImkiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiXSxbNTIsImoiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Il0sWzUyLCJrIiwiY29udmVyc2lvbiJdLFs1MiwibCIsInB1cmNoYXNlIl0sWzUyLCJtIiwiZmlyc3Rfb3BlbiJdLFs1MiwibiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJvIiwiZ3RhZy5jb25maWciXSxbNTIsInAiLCJpbl9hcHBfcHVyY2hhc2UiXSxbNTIsInEiLCJwYWdlX3ZpZXciXSxbNTIsInIiLCJzZXNzaW9uX3N0YXJ0Il0sWzUyLCJzIiwidXNlcl9lbmdhZ2VtZW50Il0sWzUyLCJ0IiwiYWRzX2RhdGFfcmVkYWN0aW9uIl0sWzUyLCJ1IiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiXSxbNTIsInYiLCJhbGxvd19jdXN0b21fc2NyaXB0cyJdLFs1MiwidyIsImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIl0sWzUyLCJ4IiwiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiXSxbNTIsInkiLCJhdWlkIl0sWzUyLCJ6IiwiYXdfcmVtYXJrZXRpbmdfb25seSJdLFs1MiwiYUEiLCJkaXNjb3VudCJdLFs1MiwiYUIiLCJhd19mZWVkX2NvdW50cnkiXSxbNTIsImFDIiwiYXdfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYUQiLCJpdGVtcyJdLFs1MiwiYUUiLCJhd19tZXJjaGFudF9pZCJdLFs1MiwiYUYiLCJhd19iYXNrZXRfdHlwZSJdLFs1MiwiYUciLCJjbGllbnRfaWQiXSxbNTIsImFIIiwiY29udmVyc2lvbl9jb29raWVfcHJlZml4Il0sWzUyLCJhSSIsImNvbnZlcnNpb25faWQiXSxbNTIsImFKIiwiY29udmVyc2lvbl9saW5rZXIiXSxbNTIsImFLIiwiY29udmVyc2lvbl9hcGkiXSxbNTIsImFMIiwiY29va2llX2RlcHJlY2F0aW9uIl0sWzUyLCJhTSIsImNvb2tpZV9leHBpcmVzIl0sWzUyLCJhTiIsImNvb2tpZV9wcmVmaXgiXSxbNTIsImFPIiwiY29va2llX3VwZGF0ZSJdLFs1MiwiYVAiLCJjb3VudHJ5Il0sWzUyLCJhUSIsImN1cnJlbmN5Il0sWzUyLCJhUiIsImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIl0sWzUyLCJhUyIsImN1c3RvbWVyX3R5cGUiXSxbNTIsImFUIiwiZGVidWdfbW9kZSJdLFs1MiwiYVUiLCJzaGlwcGluZyJdLFs1MiwiYVYiLCJlbmdhZ2VtZW50X3RpbWVfbXNlYyJdLFs1MiwiYVciLCJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSJdLFs1MiwiYVgiLCJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJhWSIsImV2ZW50X2lkIl0sWzUyLCJhWiIsImV2ZW50Il0sWzUyLCJiQSIsIl8mYWUiXSxbNTIsImJCIiwiZXZlbnRfdGltZW91dCJdLFs1MiwiYkMiLCJleHRfY2xpZW50X2lkIl0sWzUyLCJiRCIsImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iXSxbNTIsImJFIiwibWF0Y2hfaWQiXSxbNTIsImJGIiwiZ2Rwcl9hcHBsaWVzIl0sWzUyLCJiRyIsIl9ndF9tZXRhZGF0YSJdLFs1MiwiYkgiLCJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIl0sWzUyLCJiSSIsIl9nb29nbGVfbmciXSxbNTIsImJKIiwiX29ubyJdLFs1MiwiYksiLCJncHBfc2lkIl0sWzUyLCJiTCIsImdwcF9zdHJpbmciXSxbNTIsImJNIiwiZ3NhX2V4cGVyaW1lbnRfaWQiXSxbNTIsImJOIiwiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIl0sWzUyLCJiTyIsImlmcmFtZV9zdGF0ZSJdLFs1MiwiYlAiLCJpZ25vcmVfcmVmZXJyZXIiXSxbNTIsImJRIiwiaXNfcGFzc3Rocm91Z2giXSxbNTIsImJSIiwibGFuZ3VhZ2UiXSxbNTIsImJTIiwibWVyY2hhbnRfZmVlZF9sYWJlbCJdLFs1MiwiYlQiLCJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIl0sWzUyLCJiVSIsIm1lcmNoYW50X2lkIl0sWzUyLCJiViIsIm5ld19jdXN0b21lciJdLFs1MiwiYlciLCJwYWdlX2hvc3RuYW1lIl0sWzUyLCJiWCIsInBhZ2VfcGF0aCJdLFs1MiwiYlkiLCJwYWdlX3JlZmVycmVyIl0sWzUyLCJiWiIsInBhZ2VfdGl0bGUiXSxbNTIsImNBIiwiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIl0sWzUyLCJjQiIsInF1YW50aXR5Il0sWzUyLCJjQyIsInJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIl0sWzUyLCJjRCIsInNjcmVlbl9yZXNvbHV0aW9uIl0sWzUyLCJjRSIsInNlbmRfcGFnZV92aWV3Il0sWzUyLCJjRiIsInNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCJdLFs1MiwiY0ciLCJzZXJ2ZXJfY29udGFpbmVyX3VybCJdLFs1MiwiY0giLCJzZXNzaW9uX2R1cmF0aW9uIl0sWzUyLCJjSSIsInNlc3Npb25fZW5nYWdlZF90aW1lIl0sWzUyLCJjSiIsInNlc3Npb25faWQiXSxbNTIsImNLIiwiX3NoYXJlZF91c2VyX2lkIl0sWzUyLCJjTCIsImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIl0sWzUyLCJjTSIsInRlc3Rvbmx5Il0sWzUyLCJjTiIsInRvcG1vc3RfdXJsIl0sWzUyLCJjTyIsInRyYW5zYWN0aW9uX2lkIl0sWzUyLCJjUCIsInRyYW5zYWN0aW9uX2lkX3NvdXJjZSJdLFs1MiwiY1EiLCJ0cmFuc3BvcnRfdXJsIl0sWzUyLCJjUiIsInVwZGF0ZSJdLFs1MiwiY1MiLCJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiXSxbNTIsImNUIiwiX3VzZXJfYWdlbnRfYml0bmVzcyJdLFs1MiwiY1UiLCJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCJdLFs1MiwiY1YiLCJfdXNlcl9hZ2VudF9tb2JpbGUiXSxbNTIsImNXIiwiX3VzZXJfYWdlbnRfbW9kZWwiXSxbNTIsImNYIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm0iXSxbNTIsImNZIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiJdLFs1MiwiY1oiLCJfdXNlcl9hZ2VudF93b3c2NCJdLFs1MiwiZEEiLCJ1c2VyX2RhdGEiXSxbNTIsImRCIiwidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSJdLFs1MiwiZEMiLCJ1c2VyX2RhdGFfYXV0b19tZXRhIl0sWzUyLCJkRCIsInVzZXJfZGF0YV9hdXRvX211bHRpIl0sWzUyLCJkRSIsInVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyJdLFs1MiwiZEYiLCJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiXSxbNTIsImRHIiwidXNlcl9kYXRhX21vZGUiXSxbNTIsImRIIiwidXNlcl9pZCJdLFs1MiwiZEkiLCJ1c2VyX3Byb3BlcnRpZXMiXSxbNTIsImRKIiwidXNfcHJpdmFjeV9zdHJpbmciXSxbNTIsImRLIiwidmFsdWUiXSxbNTIsImRMIiwiX2ZwbV9wYXJhbWV0ZXJzIl0sWzUyLCJkTSIsIl9ob3N0X25hbWUiXSxbNTIsImROIiwiX2luX3BhZ2VfY29tbWFuZCJdLFs1MiwiZE8iLCJfbWVhc3VyZW1lbnRfdHlwZSJdLFs1MiwiZFAiLCJub25fcGVyc29uYWxpemVkX2FkcyJdLFs1MiwiZFEiLCJjb252ZXJzaW9uX2xhYmVsIl0sWzUyLCJkUiIsInBhZ2VfbG9jYXRpb24iXSxbNTIsImRTIiwiX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJkVCIsImdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJkVSIsInRjX3ByaXZhY3lfc3RyaW5nIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiSSIsWzE1LCJmIl0sIkoiLFsxNSwiZyJdLCJLIixbMTUsImgiXSwiTCIsWzE1LCJpIl0sIk0iLFsxNSwiaiJdLCJPIixbMTUsImsiXSwiQUEiLFsxNSwibCJdLCJBRiIsWzE1LCJtIl0sIkFHIixbMTUsIm4iXSwiQUgiLFsxNSwibyJdLCJBSiIsWzE1LCJwIl0sIkFLIixbMTUsInEiXSwiQU0iLFsxNSwiciJdLCJBUSIsWzE1LCJzIl0sIkJDIixbMTUsInQiXSwiQkoiLFsxNSwidSJdLCJCSyIsWzE1LCJ2Il0sIkJNIixbMTUsInciXSwiQk4iLFsxNSwieCJdLCJCVCIsWzE1LCJ5Il0sIkJYIixbMTUsInoiXSwiQlkiLFsxNSwiYUEiXSwiQloiLFsxNSwiYUIiXSwiQ0EiLFsxNSwiYUMiXSwiQ0IiLFsxNSwiYUQiXSwiQ0MiLFsxNSwiYUUiXSwiQ0QiLFsxNSwiYUYiXSwiQ0wiLFsxNSwiYUciXSwiQ1EiLFsxNSwiYUgiXSwiQ1IiLFsxNSwiYUkiXSwiS0ciLFsxNSwiZFEiXSwiQ1MiLFsxNSwiYUoiXSwiQ1UiLFsxNSwiYUsiXSwiQ1ciLFsxNSwiYUwiXSwiQ1kiLFsxNSwiYU0iXSwiREMiLFsxNSwiYU4iXSwiREQiLFsxNSwiYU8iXSwiREUiLFsxNSwiYVAiXSwiREYiLFsxNSwiYVEiXSwiREciLFsxNSwiYVIiXSwiREgiLFsxNSwiYVMiXSwiRE4iLFsxNSwiYVQiXSwiRUEiLFsxNSwiYVUiXSwiRUMiLFsxNSwiYVYiXSwiRUciLFsxNSwiYVciXSwiRUoiLFsxNSwiYVgiXSwiRUsiLFsxNSwiYVkiXSwiRU4iLFsxNSwiYVoiXSwiRU8iLFsxNSwiYkEiXSwiRVEiLFsxNSwiYkIiXSwiS0kiLFsxNSwiZFMiXSwiRVUiLFsxNSwiYkMiXSwiRVciLFsxNSwiYkQiXSwiRkUiLFsxNSwiYkUiXSwiRk8iLFsxNSwiYkYiXSwiRlAiLFsxNSwiYkciXSwiS0oiLFsxNSwiZFQiXSwiRlQiLFsxNSwiYkgiXSwiRlUiLFsxNSwiYkkiXSwiRlYiLFsxNSwiYkoiXSwiRlkiLFsxNSwiYksiXSwiRloiLFsxNSwiYkwiXSwiR0IiLFsxNSwiYk0iXSwiR0MiLFsxNSwiYk4iXSwiR0UiLFsxNSwiYk8iXSwiR0YiLFsxNSwiYlAiXSwiR0siLFsxNSwiYlEiXSwiR00iLFsxNSwiYlIiXSwiR1QiLFsxNSwiYlMiXSwiR1UiLFsxNSwiYlQiXSwiR1YiLFsxNSwiYlUiXSwiR1oiLFsxNSwiYlYiXSwiSEMiLFsxNSwiYlciXSwiS0giLFsxNSwiZFIiXSwiSEQiLFsxNSwiYlgiXSwiSEUiLFsxNSwiYlkiXSwiSEYiLFsxNSwiYloiXSwiSE4iLFsxNSwiY0EiXSwiSFAiLFsxNSwiY0IiXSwiSFQiLFsxNSwiY0MiXSwiSFgiLFsxNSwiY0QiXSwiSUEiLFsxNSwiY0UiXSwiSUMiLFsxNSwiY0YiXSwiSUQiLFsxNSwiY0ciXSwiSUYiLFsxNSwiY0giXSwiSUgiLFsxNSwiY0kiXSwiSUkiLFsxNSwiY0oiXSwiSUsiLFsxNSwiY0siXSwiSUwiLFsxNSwiY0wiXSwiS0siLFsxNSwiZFUiXSwiSVAiLFsxNSwiY00iXSwiSVIiLFsxNSwiY04iXSwiSVUiLFsxNSwiY08iXSwiSVYiLFsxNSwiY1AiXSwiSVciLFsxNSwiY1EiXSwiSVkiLFsxNSwiY1IiXSwiSkIiLFsxNSwiY1MiXSwiSkMiLFsxNSwiY1QiXSwiSkQiLFsxNSwiY1UiXSwiSkUiLFsxNSwiY1YiXSwiSkYiLFsxNSwiY1ciXSwiSkciLFsxNSwiY1giXSwiSkgiLFsxNSwiY1kiXSwiSkkiLFsxNSwiY1oiXSwiSkoiLFsxNSwiZEEiXSwiSksiLFsxNSwiZEIiXSwiSkwiLFsxNSwiZEMiXSwiSk0iLFsxNSwiZEQiXSwiSk4iLFsxNSwiZEUiXSwiSk8iLFsxNSwiZEYiXSwiSlAiLFsxNSwiZEciXSwiSlIiLFsxNSwiZEgiXSwiSlMiLFsxNSwiZEkiXSwiSlUiLFsxNSwiZEoiXSwiSlYiLFsxNSwiZEsiXSwiSlgiLFsxNSwiZEwiXSwiSlkiLFsxNSwiZE0iXSwiSloiLFsxNSwiZE4iXSwiS0MiLFsxNSwiZE8iXSwiS0QiLFsxNSwiZFAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWJvcnRfd2l0aG91dF9mYWlsIl0sWzUyLCJjIiwiYWNjZXB0X2J5X2RlZmF1bHQiXSxbNTIsImQiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImUiLCJjb25zZW50X3N0YXRlIl0sWzUyLCJmIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJnIiwiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCJdLFs1MiwiaCIsImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiXSxbNTIsImkiLCJjb29raWVfb3B0aW9ucyJdLFs1MiwiaiIsImRlZHVwZV9pZCJdLFs1MiwiayIsImVtX2V2ZW50Il0sWzUyLCJsIiwiZXZlbnRfcHJvdmVuYW5jZSJdLFs1MiwibSIsImV2ZW50X3NvdXJjZSJdLFs1MiwibiIsImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyJdLFs1MiwibyIsImV2ZW50X3VzYWdlIl0sWzUyLCJwIiwiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIl0sWzUyLCJxIiwiZm9ybV9ldmVudF9jYW5jZWxlZCJdLFs1MiwiciIsImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiJdLFs1MiwicyIsImd0bV9leHRyYWN0ZWRfZGF0YSJdLFs1MiwidCIsImhhbmRsZV9pbnRlcm5hbGx5Il0sWzUyLCJ1IiwiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiXSxbNTIsInYiLCJoaXRfdHlwZSJdLFs1MiwidyIsImhpdF90eXBlX292ZXJyaWRlIl0sWzUyLCJ4IiwiaWdub3JlX2R1cGVfY29uZmlnIl0sWzUyLCJ5IiwiaXNfY29udmVyc2lvbiJdLFs1MiwieiIsImlzX2V4dGVybmFsX2V2ZW50Il0sWzUyLCJhQSIsImlzX2ZpcnN0X3Zpc2l0Il0sWzUyLCJhQiIsImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iXSxbNTIsImFDIiwiaXNfZnBtX2VuY3J5cHRpb24iXSxbNTIsImFEIiwiaXNfZnBtX3NwbGl0Il0sWzUyLCJhRSIsImlzX2djcF9icm93c2VyIl0sWzUyLCJhRiIsImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIl0sWzUyLCJhRyIsImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIl0sWzUyLCJhSCIsImlzX3Nlc3Npb25fc3RhcnQiXSxbNTIsImFJIiwiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIl0sWzUyLCJhSiIsImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCJdLFs1MiwiYUsiLCJpc19zZ3RtX3ByZWhpdCJdLFs1MiwiYUwiLCJpc19zcGxpdF9jb252ZXJzaW9uIl0sWzUyLCJhTSIsImlzX3N5biJdLFs1MiwiYU4iLCJpc190ZXN0X2V2ZW50Il0sWzUyLCJhTyIsInByZWhpdF9mb3JfcmV0cnkiXSxbNTIsImFQIiwicmVkYWN0X2Fkc19kYXRhIl0sWzUyLCJhUSIsInJlZGFjdF9jbGlja19pZHMiXSxbNTIsImFSIiwic2VuZF9jY21fcGFyYWxsZWxfcGluZyJdLFs1MiwiYVMiLCJzZW5kX3VzZXJfZGF0YV9oaXQiXSxbNTIsImFUIiwic3BlY3VsYXRpdmUiXSxbNTIsImFVIiwic3luX29yX21vZCJdLFs1MiwiYVYiLCJ0cmFuc2llbnRfZWNzaWQiXSxbNTIsImFXIiwidXNlcl9kYXRhIl0sWzUyLCJhWCIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyJdLFs1MiwiYVkiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIl0sWzUyLCJhWiIsInVzZXJfZGF0YV9mcm9tX2NvZGUiXSxbNTIsImJBIiwidXNlcl9kYXRhX2Zyb21fbWFudWFsIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZCJdLCJNIixbMTUsImUiXSwiTiIsWzE1LCJmIl0sIk8iLFsxNSwiZyJdLCJQIixbMTUsImgiXSwiUSIsWzE1LCJpIl0sIlMiLFsxNSwiaiJdLCJUIixbMTUsImsiXSwiWiIsWzE1LCJsIl0sIkFBIixbMTUsIm0iXSwiQUIiLFsxNSwibiJdLCJBQyIsWzE1LCJvIl0sIkFEIixbMTUsInAiXSwiQUoiLFsxNSwicSJdLCJBSyIsWzE1LCJyIl0sIkFOIixbMTUsInMiXSwiQU8iLFsxNSwidCJdLCJBUCIsWzE1LCJ1Il0sIkFRIixbMTUsInYiXSwiQVIiLFsxNSwidyJdLCJBUyIsWzE1LCJ4Il0sIkFWIixbMTUsInkiXSwiQVkiLFsxNSwieiJdLCJBWiIsWzE1LCJhQSJdLCJCQSIsWzE1LCJhQiJdLCJCQyIsWzE1LCJhQyJdLCJCRCIsWzE1LCJhRCJdLCJCRSIsWzE1LCJhRSJdLCJCRiIsWzE1LCJhRiJdLCJCSyIsWzE1LCJhRyJdLCJCTCIsWzE1LCJhSCJdLCJCTSIsWzE1LCJhSSJdLCJCTiIsWzE1LCJhSiJdLCJCTyIsWzE1LCJhSyJdLCJCUSIsWzE1LCJhTCJdLCJCUiIsWzE1LCJhTSJdLCJCUyIsWzE1LCJhTiJdLCJCWSIsWzE1LCJhTyJdLCJDQiIsWzE1LCJhUCJdLCJDQyIsWzE1LCJhUSJdLCJDRSIsWzE1LCJhUiJdLCJDTiIsWzE1LCJhUyJdLCJDUSIsWzE1LCJhVCJdLCJDVCIsWzE1LCJhVSJdLCJDVSIsWzE1LCJhViJdLCJDVyIsWzE1LCJhVyJdLCJDWCIsWzE1LCJhWCJdLCJDWSIsWzE1LCJhWSJdLCJDWiIsWzE1LCJhWiJdLCJEQSIsWzE1LCJiQSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0NV0sWzUyLCJjIiw0Nl0sWzUyLCJkIiw0N10sWzUyLCJlIiwxNzRdLFs1MiwiZiIsMjc2XSxbMzYsWzgsIkYiLFsxNSwiYiJdLCJHIixbMTUsImMiXSwiSCIsWzE1LCJkIl0sIlYiLFsxNSwiZSJdLCJBRCIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDI1XSxbNTIsImMiLDQzNV0sWzUyLCJkIiw0ODhdLFs1MiwiZSIsNDg5XSxbNTIsImYiLDQ5OF0sWzUyLCJnIiw1MDNdLFs1MiwiaCIsNTA0XSxbNTIsImkiLDUwNl0sWzUyLCJqIiw1MjNdLFs1MiwiayIsNTMyXSxbNTIsImwiLDU1M10sWzUyLCJtIiw1NjhdLFs1MiwibiIsNTc3XSxbNTIsIm8iLDU4MV0sWzUyLCJwIiw1ODNdLFs1MiwicSIsNTkyXSxbNTIsInIiLDU5NF0sWzUyLCJzIiw1OTldLFszNixbOCwiQVYiLFsxNSwiayJdLCJBRCIsWzE1LCJkIl0sIkNJIixbMTUsInEiXSwiQlYiLFsxNSwibiJdLCJCTyIsWzE1LCJtIl0sIkNLIixbMTUsInIiXSwiQ1AiLFsxNSwicyJdLCJBTSIsWzE1LCJnIl0sIkJaIixbMTUsIm8iXSwiQVQiLFsxNSwiaiJdLCJBRSIsWzE1LCJlIl0sIkFOIixbMTUsImgiXSwiTCIsWzE1LCJjIl0sIkJDIixbMTUsImwiXSwiQU8iLFsxNSwiaSJdLCJDQiIsWzE1LCJwIl0sIkFJIixbMTUsImYiXSwiSSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCJdLFs1MiwiYyIsInBsZCJdLFs1MiwiZCIsInNoYXJlZF91c2VyX2lkIl0sWzUyLCJlIiwic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIl0sWzUyLCJmIiwic2hhcmVkX3VzZXJfaWRfc291cmNlIl0sWzM2LFs4LCJCIixbMTUsImIiXSwiTiIsWzE1LCJjIl0sIlMiLFsxNSwiZCJdLCJUIixbMTUsImUiXSwiVSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDNdLFs1MiwiZSIsNF0sWzUyLCJmIiw1XSxbNTIsImciLDZdLFszNixbOCwiQSIsWzE1LCJiIl0sIkYiLFsxNSwiZyJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiw1XSxbNTIsImUiLDZdLFs1MiwiZiIsN10sWzUyLCJnIiw4XSxbNTIsImgiLDldLFs1MiwiaSIsMTFdLFs1MiwiaiIsMTVdLFs1MiwiayIsMTZdLFs1MiwibCIsMjBdLFs1MiwibSIsMjFdLFs1MiwibiIsMjNdLFs1MiwibyIsMjRdLFs1MiwicCIsMjddLFs1MiwicSIsNDBdLFs1MiwiciIsNDFdLFszNixbOCwiTyIsWzE1LCJqIl0sIlciLFsxNSwibiJdLCJQIixbMTUsImsiXSwiWCIsWzE1LCJvIl0sIksiLFsxNSwiaSJdLCJBIixbMTUsImIiXSwiVCIsWzE1LCJsIl0sIkUiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiQiIsWzE1LCJjIl0sIkgiLFsxNSwiZyJdLCJBTiIsWzE1LCJxIl0sIkkiLFsxNSwiaCJdLCJHIixbMTUsImYiXSwiVSIsWzE1LCJtIl0sIkFPIixbMTUsInIiXSwiQUEiLFsxNSwicCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZV9ibG9ja19kb3dubG9hZHMiXSxbNTIsImMiLCJhZV9ibG9ja19mb3JtIl0sWzUyLCJkIiwiYWVfYmxvY2tfaGlzdG9yeSJdLFs1MiwiZSIsImFlX2Jsb2NrX291dGJvdW5kX2NsaWNrIl0sWzUyLCJmIiwiYWVfYmxvY2tfc2Nyb2xsIl0sWzUyLCJnIiwiYWVfYmxvY2tfdmlkZW8iXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXSwiRiIsWzE1LCJnIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVNpdGVTZWFyY2hBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYiIsWzQ2LCJkIiwiZSJdLFs1MiwiZiIsWzIsWzMwLFsxNSwiZCJdLCIiXSwic3BsaXQiLFs3LCIsIl1dXSxbNTMsWzQxLCJnIl0sWzMsImciLDBdLFs2MyxbNywiZyJdLFsyMyxbMTUsImciXSxbMTcsWzE1LCJmIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJnIl0sWzMsImciLFswLFsxNSwiZyJdLDFdXV0sWzQ2LFs1MyxbNTIsImgiLFsiZSIsWzIsWzE2LFsxNSwiZiJdLFsxNSwiZyJdXSwidHJpbSIsWzddXV1dLFsyMixbMjEsWzE1LCJoIl0sWzQ0XV0sWzQ2LFs1MyxbMzYsWzE1LCJoIl1dXV1dXV1dXV0sWzUwLCJjIixbNDYsImQiLCJlIiwiZiJdLFs1MiwiZyIsWzgsInNlYXJjaF90ZXJtIixbMTUsImQiXV1dLFs1MiwiaCIsWzIsWzMwLFsxNSwiZSJdLCIiXSwic3BsaXQiLFs3LCIsIl1dXSxbNTMsWzQxLCJpIl0sWzMsImkiLDBdLFs2MyxbNywiaSJdLFsyMyxbMTUsImkiXSxbMTcsWzE1LCJoIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJpIl0sWzMsImkiLFswLFsxNSwiaSJdLDFdXV0sWzQ2LFs1MyxbNTIsImoiLFsyLFsxNixbMTUsImgiXSxbMTUsImkiXV0sInRyaW0iLFs3XV1dLFs1MiwiayIsWyJmIixbMTUsImoiXV1dLFsyMixbMjEsWzE1LCJrIl0sWzQ0XV0sWzQ2LFs1MyxbNDMsWzE1LCJnIl0sWzAsInFfIixbMTUsImoiXV0sWzE1LCJrIl1dXV1dXV1dXSxbMzYsWzE1LCJnIl1dXSxbMzYsWzgsIkIiLFsxNSwiYyJdLCJBIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2FjdGl2aXRpZXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImIiLFs0NiwiYyIsImQiXSxbMzYsWzM5LFsxNSwiZCJdLFsiZCIsWzE1LCJjIl1dLFsxNSwiYyJdXV1dLFszNixbOCwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wbGF0Zm9ybURldGVjdGlvbiIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibyIsWzQ2XSxbNjgsInciLFs1MyxbMjIsWzEsWzI4LFsiZSIsWzE3LFsxNSwiaCJdLCJBSSJdXV0sWzI4LFsiZSIsWzE3LFsxNSwiaCJdLCJJIl1dXV0sWzQ2LFs1MyxbMzYsWzddXV1dXSxbNTIsInciLFsiYiIsWzE3LFsxNSwiZyJdLCJOIl1dXSxbMjIsWyJuIixbMTUsInciXV0sWzQ2LFs1MyxbMzYsWzE1LCJ3Il1dXV1dLFs1MiwieCIsWzddXSxbMjIsWyJwIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkEiXV1dXV0sWzIyLFsicSJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJCIl1dXV1dLFsyMixbInIiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRiJdXV1dXSxbMjIsWyJ1Il0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkQiXV1dXV0sWzIyLFsicyJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJFIl1dXV1dLFsyMixbInQiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQyJdXV1dXSxbMjIsWyJsIl0sWzQ2LFs1MyxbImYiLFsxNyxbMTUsImciXSwiTiJdLFsxNSwieCJdLHRydWVdXV1dLFszNixbMTUsIngiXV1dLFs0Nl1dLFszNixbN11dXSxbNTAsInAiLFs0Nl0sWzY4LCJ3IixbNTMsWzM2LFsyOCxbMjgsWyJjIiwic2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49XCJtYWdlL1wiXSJdXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInEiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbIm0iLCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSJdXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LGZhbHNlXV1dLFszNixbMjgsWzI4LFsiYyIsWzAsWzAsInNjcmlwdFtzcmNePVwiLy8iLFsxNSwidyJdXSwiXCJdIl1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInIiLFs0Nl0sWzIyLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiSSJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFs2OCwidyIsWzUzLFs1MiwidyIsWyJtIiwiYzJodmNHbG1lUzVqYjIwPSJdXSxbNTIsIngiLFsibSIsImMyaHZjR2xtZVdOa2JpNWpiMjA9Il1dLFsyMixbMzAsWzI4LFsxNSwidyJdXSxbMjgsWzE1LCJ4Il1dXSxbNDYsWzM2LGZhbHNlXV1dLFszNixbMjgsWzI4LFsiYyIsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsInNjcmlwdFtzcmMqPVwiY2RuLiIsWzE1LCJ3Il1dLCJcIl0sIl0sIm1ldGFbcHJvcGVydHk9XCJvZzppbWFnZVwiXVtjb250ZW50Kj1cImNkbi4iXSxbMTUsInciXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiY2RuLiJdLFsxNSwidyJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJmb250cy4iXSxbMTUsIngiXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiaXRlcmFibGUtc2hvcGlmeVwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwidi4iXSxbMTUsInciXV0sIlwiXSJdXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJzIixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWyJkIiwicHJvdG9jb2wiXV0sWzUyLCJ4IixbImQiLCJob3N0Il1dLFs1MiwieSIsWzM5LFsxLFsxNSwidyJdLFsxNSwieCJdXSxbMCxbMCxbMCxbMCwiW3NyY149XCIiLFsxNSwidyJdXSwiOi8vIl0sWzE1LCJ4Il1dLCIvd3AtY29udGVudFwiXSwiXSwiIl1dLFs1MiwieiIsWyJtIiwiTG5kdmNtUndjbVZ6Y3k1amIyMD0iXV0sWzUyLCJhQSIsWyJtIiwiTHk5ekxuY3ViM0puIl1dLFsyMixbMzAsWzI4LFsxNSwieiJdXSxbMjgsWzE1LCJhQSJdXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzMwLFsidiIsWzE1LCJ4Il0sWzE1LCJ6Il1dLFsyOCxbMjgsWyJjIixbMCxbMCxbMCxbMCxbMTUsInkiXSwibWV0YVtuYW1lPVwiZ2VuZXJhdG9yXCJdW2NvbnRlbnRePVwiV29yZFByZXNzIFwiXSwiXSwibGlua1tyZWw9XCJkbnMtcHJlZmV0Y2hcIl1baHJlZj1cIiJdLFsxNSwiYUEiXV0sIlwiXSJdXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidCIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsyOCxbMjgsWyJjIixbMCwiW2NsYXNzKj1cIndvb2NvbW1lcmNlXCJdLCIsIm1ldGFbbmFtZT1cImdlbmVyYXRvclwiXVtjb250ZW50Xj1cIldvb0NvbW1lcmNlIFwiXSJdXV1dXSxbMjIsWzE1LCJ3Il0sWzQ2LFs1M11dXSxbMzYsWzE1LCJ3Il1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInUiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbMjgsWzI4LFsiYyIsWzAsWzAsInNjcmlwdFtzcmMqPVwid29vY29tbWVyY2VcIl0sIiwibGlua1tocmVmKj1cIndvb2NvbW1lcmNlXCJdLCJdLCJbY2xhc3N8PVwid29vY29tbWVyY2VcIl0iXV1dXV0sWzIyLFsxNSwidyJdLFs0NixbNTNdXV0sWzM2LFsxNSwidyJdXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ2IixbNDYsInciLCJ4Il0sWzM2LFsxLFsxOSxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLFsxNyxbMTUsIngiXSwibGVuZ3RoIl1dLFsyMCxbMixbMTUsInciXSwic3Vic3RyaW5nIixbNyxbMzcsWzE3LFsxNSwidyJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdXSxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdXV0sWzE1LCJ4Il1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0VXJsIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldEluQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfcGxhdGZvcm1TY2hlbWEiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNEb21SZWFkeSJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImZyb21CYXNlNjQiXV0sWzUyLCJuIixbNTEsIiIsWzcsInciXSxbMzYsWzIwLFsiayIsWzE1LCJ3Il1dLCJhcnJheSJdXV1dLFszNixbOCwiQSIsWzE1LCJvIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbURvd25sb2FkQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImgiLFs0NiwiaSIsImoiXSxbImMiLFsxNSwiaSJdLFs1MSwiIixbNywiayJdLFsyMixbMzAsWzIxLFsyLFsxNSwiayJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE1LCJnIl1dLFsyOCxbMixbMTUsImsiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIsWzE1LCJrIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNRIl0sZmFsc2VdXSxbMjIsWzI4LFsxNSwiaiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua19pZCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua191cmwiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfdGV4dCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywiZmlsZV9uYW1lIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJmaWxlX2V4dGVuc2lvbiIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJBIl1dLFs1MiwiZyIsImZpbGVfZG93bmxvYWQiXSxbMzYsWzgsIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJnIl0sWzUyLCJoIixbImIiXV0sWzUyLCJpIixbN11dLFs1MyxbNDEsImoiXSxbMywiaiIsMF0sWzYzLFs3LCJqIl0sWzIzLFsxNSwiaiJdLFsxNyxbMTUsImgiXSwibGVuZ3RoIl1dLFszMyxbMTUsImoiXSxbMywiaiIsWzAsWzE1LCJqIl0sMV1dXSxbNDYsWzUzLFs1MiwiayIsWzE2LFsxNSwiaCJdLFsxNSwiaiJdXV0sWzIyLFsiZCIsWzE1LCJnIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJpIl0sInB1c2giLFs3LFsxNSwiayJdXV1dXV1dXV1dLFszNixbMTUsImkiXV1dLFs1MCwiZiIsWzQ2LCJnIiwiaCJdLFs1MiwiaSIsWzMwLFsxNSwiaCJdLFs4XV1dLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIlQiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJDUSJdLHRydWVdLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIloiXSwiYSJdLFs0MyxbMTUsImciXSwiZXZlbnRNZXRhZGF0YSIsWzE1LCJpIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNsYWltRGVzdGluYXRpb24iXV0sWzM2LFs4LCJBIixbMTUsImUiXSwiQiIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbU91dGJvdW5kQ2xpY2tBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFsiYyIsWzE1LCJpIl0sWzUxLCIiLFs3LCJrIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJrIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImciXV0sWzI4LFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsImsiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2lkIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2NsYXNzZXMiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfdXJsIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2RvbWFpbiIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywib3V0Ym91bmQiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRCJdXSxbNTIsImciLCJjbGljayJdLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVBhZ2VWaWV3QWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwiayJdLFsiYyIsWzE1LCJrIl0sWzUxLCIiLFs3LCJsIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJsIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImkiXV0sWzI4LFsyLFsxNSwibCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImgiXV0sWzQ2LFs1MyxbMixbMTUsImwiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMjIsWzI4LFsyLFsxNSwibCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCTyJdXV1dLFs0NixbNTMsWyJkIixbMTUsImsiXSxbMTcsWzE1LCJmIl0sIkhFIl0sWzIsWzE1LCJsIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImYiXSwiSEUiXV1dXV1dXSxbMixbMTUsImwiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQ1EiXSxmYWxzZV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiaCIsWzE3LFsxNSwiZyJdLCJDIl1dLFs1MiwiaSIsWzE3LFsxNSwiZiJdLCJBSyJdXSxbMzYsWzgsIkEiLFsxNSwiaiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1TY3JvbGxBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFsiYyIsWzE1LCJpIl0sWzUxLCIiLFs3LCJrIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJrIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImciXV0sWzI4LFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsImsiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJwZXJjZW50X3Njcm9sbGVkIixbNDRdXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJmIixbMTcsWzE1LCJlIl0sIkUiXV0sWzUyLCJnIiwic2Nyb2xsIl0sWzM2LFs4LCJBIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtVmlkZW9BY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJrIiwibCJdLFsiYyIsWzE1LCJrIl0sWzUxLCIiLFs3LCJtIl0sWzUyLCJuIixbMixbMTUsIm0iXSwiZ2V0RXZlbnROYW1lIixbN11dXSxbNTIsIm8iLFszMCxbMzAsWzIwLFsxNSwibiJdLFsxNSwiZyJdXSxbMjAsWzE1LCJuIl0sWzE1LCJoIl1dXSxbMjAsWzE1LCJuIl0sWzE1LCJpIl1dXV0sWzIyLFszMCxbMjgsWzE1LCJvIl1dLFsyOCxbMixbMTUsIm0iXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJrIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJtIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIsWzE1LCJtIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNRIl0sZmFsc2VdXSxbMjIsWzI4LFsxNSwibCJdXSxbNDYsWzUzLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fY3VycmVudF90aW1lIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19kdXJhdGlvbiIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fcGVyY2VudCIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fcHJvdmlkZXIiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX3RpdGxlIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb191cmwiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpc2libGUiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRiJdXSxbNTIsImciLCJ2aWRlb19zdGFydCJdLFs1MiwiaCIsInZpZGVvX3Byb2dyZXNzIl0sWzUyLCJpIiwidmlkZW9fY29tcGxldGUiXSxbMzYsWzgsIkEiLFsxNSwiaiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImYiLFs0NiwiZyJdLFsyMixbMixbMTUsImciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQlMiXV1dLFs0NixbNTMsWzIsWzE1LCJnIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiSVAiXSwiMSJdXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2V2ZW50RWRpdGluZ0FuZFN5bnRoZXNpcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYUEiLFs0NiwiYU4iLCJhTyJdLFs1MiwiYVAiLFszMCxbMTYsWzE1LCJhTyJdLFsxNSwibSJdXSxbN11dXSxbNjYsImFRIixbMTUsImFQIl0sWzQ2LFs1MyxbMjIsWzE2LFsxNSwiYVEiXSxbMTUsIm4iXV0sWzQ2LFs1MyxbNTIsImFSIixbMTYsWzE2LFsxNSwiYVEiXSxbMTUsIm4iXV0sWzE1LCJwIl1dXSxbNTIsImFTIixbImFGIixbMTUsImFOIl0sWzE2LFsxNixbMTUsImFRIl0sWzE1LCJuIl1dLFsxNSwicSJdXV1dLFsyLFsxNSwiYU4iXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJhUiJdLFsiYUIiLFsxNSwiYVMiXV1dXV1dLFs0NixbMjIsWzE2LFsxNSwiYVEiXSxbMTUsIm8iXV0sWzQ2LFs1MyxbNTIsImFSIixbMTYsWzE2LFsxNSwiYVEiXSxbMTUsIm8iXV0sWzE1LCJwIl1dXSxbMixbMTUsImFOIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYVIiXSxbNDRdXV1dXV1dXV1dXV0sWzUwLCJhQiIsWzQ2LCJhTiJdLFsyMixbMjgsWzE1LCJhTiJdXSxbNDYsWzM2LFsxNSwiYU4iXV1dXSxbNTIsImFPIixbImIiLFsxNSwiYU4iXV1dLFs1MiwiYVAiLFsyMSxbMTUsImFPIl0sWzE1LCJhTyJdXV0sWzIyLFsxNSwiYVAiXSxbNDYsWzM2LFsxNSwiYU4iXV1dXSxbMzYsWzE1LCJhTyJdXV0sWzUwLCJhQyIsWzQ2LCJhTiIsImFPIiwiYVAiXSxbNDEsImFRIl0sWzMsImFRIixbMzAsWzE1LCJhTyJdLFs3XV1dLFszLCJhUSIsWzM5LFsibCIsWzE1LCJhUSJdXSxbMTUsImFRIl0sWzcsWzE1LCJhUSJdXV1dLFsyMixbMjgsWyJhRCIsWzE1LCJhTiJdLFsxNSwiYVEiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMjIsWzMwLFsyOCxbMTUsImFQIl1dLFsyMCxbMTcsWzE1LCJhUCJdLCJsZW5ndGgiXSwwXV0sWzQ2LFszNix0cnVlXV1dLFs1MyxbNDEsImFSIl0sWzMsImFSIiwwXSxbNjMsWzcsImFSIl0sWzIzLFsxNSwiYVIiXSxbMTcsWzE1LCJhUCJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYVIiXSxbMywiYVIiLFswLFsxNSwiYVIiXSwxXV1dLFs0NixbNTMsWzUyLCJhUyIsWzMwLFsxNixbMTYsWzE1LCJhUCJdLFsxNSwiYVIiXV0sWzE1LCJ1Il1dLFs3XV1dLFsyMixbImFEIixbMTUsImFOIl0sWzE1LCJhUyJdLHRydWVdLFs0NixbNTMsWzM2LHRydWVdXV1dXV1dXSxbMzYsZmFsc2VdXSxbNTAsImFEIixbNDYsImFOIiwiYU8iLCJhUCJdLFs1MyxbNDEsImFRIl0sWzMsImFRIiwwXSxbNjMsWzcsImFRIl0sWzIzLFsxNSwiYVEiXSxbMTcsWzE1LCJhTyJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYVEiXSxbMywiYVEiLFswLFsxNSwiYVEiXSwxXV1dLFs0NixbNTMsWzUyLCJhUiIsWzE2LFsxNSwiYU8iXSxbMTUsImFRIl1dXSxbNTIsImFTIixbImFFIixbMTUsImFOIl0sWzE1LCJhUiJdLGZhbHNlXV0sWzIyLFsxNSwiYVAiXSxbNDYsWzUzLFs1MiwiYVQiLFsxNixbMzAsWzE2LFsxNSwiYVIiXSxbMTUsIngiXV0sWzddXSwwXV0sWzIyLFsxLFsxLFsxNSwiYVQiXSxbMjAsWzE2LFsxNSwiYVQiXSxbMTUsInkiXV0sWzE1LCJ0Il1dXSxbMjEsWzIsWzE1LCJ6Il0sImluZGV4T2YiLFs3LFsxNixbMTYsWzE1LCJhVCJdLFsxNSwidCJdXSxbMTUsInMiXV1dXSxbMjcsMV1dXSxbNDYsWzUzLFs1MiwiYVUiLFsiYUUiLFsxNSwiYU4iXSxbMTUsImFSIl0sdHJ1ZV1dLFsyMixbMjEsWzE1LCJhUyJdLFsxNSwiYVUiXV0sWzQ2LFs1MyxbNTIsImFWIixbMzAsWzIsWzE1LCJhTiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJBQyJdXV0sWzddXV0sWzIsWzE1LCJhViJdLCJwdXNoIixbNyxbMzksWzE1LCJhUyJdLFsxNyxbMTUsImsiXSwiVSJdLFsxNyxbMTUsImsiXSwiVCJdXV1dLFsyLFsxNSwiYU4iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQUMiXSxbMTUsImFWIl1dXV1dXV1dXV1dXSxbMjIsWzI4LFsxNSwiYVMiXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dXV1dXSxbMzYsdHJ1ZV1dLFs1MCwiYUUiLFs0NiwiYU4iLCJhTyIsImFQIl0sWzUyLCJhUSIsWzMwLFsxNixbMTUsImFPIl0sWzE1LCJ4Il1dLFs3XV1dLFs0MSwiYVIiXSxbMywiYVIiLFsiYUYiLFsxNSwiYU4iXSxbMTYsWzE1LCJhUSJdLDBdXV0sWzQxLCJhUyJdLFszLCJhUyIsWyJhRiIsWzE1LCJhTiJdLFsxNixbMTUsImFRIl0sMV1dXSxbMjIsWzEsWzE1LCJhUCJdLFsxNSwiYVIiXV0sWzQ2LFs1MyxbMywiYVIiLFszMCxbImciLFsxNSwiYVIiXV0sWzE1LCJhUiJdXV1dXV0sWzIyLFsxNSwiYVMiXSxbNDYsWzUzLFs1MiwiYVkiLFsxNixbMzAsWzE2LFsxNSwiYU8iXSxbMTUsIngiXV0sWzddXSwwXV0sWzIyLFsxLFsxLFsxNSwiYVkiXSxbMjAsWzE2LFsxNSwiYVkiXSxbMTUsInkiXV0sWzE1LCJ0Il1dXSxbMjEsWzIsWzE1LCJ6Il0sImluZGV4T2YiLFs3LFsxNixbMTYsWzE1LCJhWSJdLFsxNSwidCJdXSxbMTUsInMiXV1dXSxbMjcsMV1dXSxbNDYsWzUzLFs1MiwiYVoiLFsyLFsxNSwiYVMiXSwiaW5kZXhPZiIsWzcsIj8iXV1dLFsyMixbMjAsWzE1LCJhWiJdLFsyNywxXV0sWzQ2LFs1MyxbMywiYVMiLFszMCxbImciLFsxNSwiYVMiXV0sWzE1LCJhUyJdXV1dXSxbNDYsWzUzLFs1MiwiYkEiLFsyLFsxNSwiYVMiXSwic3Vic3RyaW5nIixbNywwLFsxNSwiYVoiXV1dXSxbMywiYVMiLFswLFszMCxbImciLFsxNSwiYkEiXV0sWzE1LCJiQSJdXSxbMixbMTUsImFTIl0sInN1YnN0cmluZyIsWzcsWzE1LCJhWiJdXV1dXV1dXV1dXV1dXSxbNTIsImFUIixbMTYsWzE1LCJhTyJdLFsxNSwidyJdXV0sWzIyLFszMCxbMzAsWzMwLFsyMCxbMTUsImFUIl0sImVxaSJdLFsyMCxbMTUsImFUIl0sInN3aSJdXSxbMjAsWzE1LCJhVCJdLCJld2kiXV0sWzIwLFsxNSwiYVQiXSwiY25pIl1dLFs0NixbNTMsWzIyLFsxNSwiYVIiXSxbNDYsWzMsImFSIixbMixbImQiLFsxNSwiYVIiXV0sInRvTG93ZXJDYXNlIixbN11dXV1dLFsyMixbMTUsImFTIl0sWzQ2LFszLCJhUyIsWzIsWyJkIixbMTUsImFTIl1dLCJ0b0xvd2VyQ2FzZSIsWzddXV1dXV1dXSxbNDEsImFVIl0sWzMsImFVIixmYWxzZV0sWzM4LFsxNSwiYVQiXSxbNDYsImVxIiwiZXFpIiwic3ciLCJzd2kiLCJldyIsImV3aSIsImNuIiwiY25pIiwibHQiLCJsZSIsImd0IiwiZ2UiLCJyZSIsInJlaSJdLFs0NixbNSxbNDZdXSxbNSxbNDYsWzMsImFVIixbMjAsWyJkIixbMTUsImFSIl1dLFsiZCIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0Nl1dLFs1LFs0NixbMywiYVUiLFsyMCxbMixbImQiLFsxNSwiYVIiXV0sImluZGV4T2YiLFs3LFsiZCIsWzE1LCJhUyJdXV1dLDBdXSxbNF1dXSxbNSxbNDZdXSxbNSxbNDYsWzQxLCJhViJdLFszLCJhViIsWyJkIixbMTUsImFSIl1dXSxbNDEsImFXIl0sWzMsImFXIixbImQiLFsxNSwiYVMiXV1dLFs1MiwiYVgiLFszNyxbMTcsWzE1LCJhViJdLCJsZW5ndGgiXSxbMTcsWzE1LCJhVyJdLCJsZW5ndGgiXV1dLFszLCJhVSIsWzEsWzE5LFsxNSwiYVgiXSwwXSxbMjAsWzIsWzE1LCJhViJdLCJpbmRleE9mIixbNyxbMTUsImFXIl0sWzE1LCJhWCJdXV0sWzE1LCJhWCJdXV1dLFs0XV1dLFs1LFs0Nl1dLFs1LFs0NixbMywiYVUiLFsxOSxbMixbImQiLFsxNSwiYVIiXV0sImluZGV4T2YiLFs3LFsiZCIsWzE1LCJhUyJdXV1dLDBdXSxbNF1dXSxbNSxbNDYsWzMsImFVIixbMjMsWyJiIixbMTUsImFSIl1dLFsiYiIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0NixbMywiYVUiLFsyNCxbImIiLFsxNSwiYVIiXV0sWyJiIixbMTUsImFTIl1dXV0sWzRdXV0sWzUsWzQ2LFszLCJhVSIsWzE4LFsiYiIsWzE1LCJhUiJdXSxbImIiLFsxNSwiYVMiXV1dXSxbNF1dXSxbNSxbNDYsWzMsImFVIixbMTksWyJiIixbMTUsImFSIl1dLFsiYiIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0NixbMjIsWzIxLFsxNSwiYVIiXSxbNDRdXSxbNDYsWzUzLFs1MiwiYVkiLFsiZSIsWzE1LCJhUyJdXV0sWzIyLFsxNSwiYVkiXSxbNDYsWzMsImFVIixbImYiLFsxNSwiYVkiXSxbMTUsImFSIl1dXV1dXV1dLFs0XV1dLFs1LFs0NixbMjIsWzIxLFsxNSwiYVIiXSxbNDRdXSxbNDYsWzUzLFs1MiwiYVkiLFsiZSIsWzE1LCJhUyJdLCJpIl1dLFsyMixbMTUsImFZIl0sWzQ2LFszLCJhVSIsWyJmIixbMTUsImFZIl0sWzE1LCJhUiJdXV1dXV1dXSxbNF1dXSxbOSxbNDZdXV1dLFsyMixbMjgsWzI4LFsxNixbMTUsImFPIl0sWzE1LCJ2Il1dXV0sWzQ2LFszNixbMjgsWzE1LCJhVSJdXV1dXSxbMzYsWzE1LCJhVSJdXV0sWzUwLCJhRiIsWzQ2LCJhTiIsImFPIl0sWzIyLFsyOCxbMTUsImFPIl1dLFs0NixbMzYsWzQ0XV1dXSxbMzgsWzE2LFsxNSwiYU8iXSxbMTUsInkiXV0sWzQ2LCJldmVudF9uYW1lIiwiY29uc3QiLCJldmVudF9wYXJhbSJdLFs0NixbNSxbNDYsWzM2LFsyLFsxNSwiYU4iXSwiZ2V0RXZlbnROYW1lIixbN11dXV1dLFs1LFs0NixbMzYsWzE2LFsxNSwiYU8iXSxbMTUsInIiXV1dXV0sWzUsWzQ2LFs1MiwiYVAiLFsxNixbMTYsWzE1LCJhTyJdLFsxNSwidCJdXSxbMTUsInMiXV1dLFsyMixbMjAsWzE1LCJhUCJdLFsxNyxbMTUsImoiXSwiSEQiXV0sWzQ2LFs1MyxbMzYsWyJhSSIsWzE1LCJhTiJdXV1dXV0sWzIyLFsyMCxbMTUsImFQIl0sWzE3LFsxNSwiaiJdLCJIQyJdXSxbNDYsWzUzLFszNixbImFKIixbMTUsImFOIl1dXV1dXSxbMzYsWzIsWzE1LCJhTiJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFQIl1dXV1dXSxbOSxbNDYsWzM2LFs0NF1dXV1dXV0sWzUwLCJhSCIsWzQ2LCJhTiJdLFsyMixbMjgsWzE1LCJhTiJdXSxbNDYsWzUzLFszNixbMTUsImFOIl1dXV1dLFs1MiwiYU8iLFsyLFsxNSwiYU4iXSwic3BsaXQiLFs3LCImIl1dXSxbNTIsImFQIixbN11dLFs0MyxbMTUsImFPIl0sMCxbMixbMTYsWzE1LCJhTyJdLDBdLCJzdWJzdHJpbmciLFs3LDFdXV0sWzUzLFs0MSwiYVEiXSxbMywiYVEiLDBdLFs2MyxbNywiYVEiXSxbMjMsWzE1LCJhUSJdLFsxNyxbMTUsImFPIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhUSJdLFszLCJhUSIsWzAsWzE1LCJhUSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFSIixbMTYsWzE1LCJhTyJdLFsxNSwiYVEiXV1dLFs1MiwiYVMiLFsyLFsxNSwiYVIiXSwiaW5kZXhPZiIsWzcsIj0iXV1dLFs1MiwiYVQiLFszOSxbMTksWzE1LCJhUyJdLDBdLFsyLFsxNSwiYVIiXSwic3Vic3RyaW5nIixbNywwLFsxNSwiYVMiXV1dLFsxNSwiYVIiXV1dLFsyMixbMjgsWzE2LFsxNSwiYUciXSxbMTUsImFUIl1dXSxbNDYsWzUzLFsyLFsxNSwiYVAiXSwicHVzaCIsWzcsWzE2LFsxNSwiYU8iXSxbMTUsImFRIl1dXV1dXV1dXV1dLFsyMixbMTcsWzE1LCJhUCJdLCJsZW5ndGgiXSxbNDYsWzUzLFszNixbMCwiPyIsWzIsWzE1LCJhUCJdLCJqb2luIixbNywiJiJdXV1dXV1dLFszNiwiIl1dLFs1MCwiYUkiLFs0NiwiYU4iXSxbNTIsImFPIixbMixbMTUsImFOIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSEQiXV1dXSxbMjIsWzE1LCJhTyJdLFs0NixbMzYsWzE1LCJhTyJdXV1dLFs1MiwiYVAiLFsyLFsxNSwiYU4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJLSCJdXV1dLFsyMixbMjEsWzQwLFsxNSwiYVAiXV0sInN0cmluZyJdLFs0NixbMzYsWzQ0XV1dXSxbNTIsImFRIixbImMiLFsxNSwiYVAiXV1dLFsyMixbMjgsWzE1LCJhUSJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJhUiJdLFszLCJhUiIsWzE3LFsxNSwiYVEiXSwicGF0aG5hbWUiXV0sWzMsImFSIixbMzAsWyJnIixbMTUsImFSIl1dLFsxNSwiYVIiXV1dLFszNixbMCxbMTUsImFSIl0sWyJhSCIsWzE3LFsxNSwiYVEiXSwic2VhcmNoIl1dXV1dLFs1MCwiYUoiLFs0NiwiYU4iXSxbNTIsImFPIixbMixbMTUsImFOIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSEMiXV1dXSxbMjIsWzE1LCJhTyJdLFs0NixbMzYsWzE1LCJhTyJdXV1dLFs1MiwiYVAiLFsyLFsxNSwiYU4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJLSCJdXV1dLFsyMixbMjEsWzQwLFsxNSwiYVAiXV0sInN0cmluZyJdLFs0NixbMzYsWzQ0XV1dXSxbNTIsImFRIixbImMiLFsxNSwiYVAiXV1dLFsyMixbMjgsWzE1LCJhUSJdXSxbNDYsWzM2LFs0NF1dXV0sWzM2LFsxNyxbMTUsImFRIl0sImhvc3RuYW1lIl1dXSxbNTAsImFNIixbNDYsImFOIl0sWzIyLFsyOCxbMTUsImFOIl1dLFs0NixbMzYsdHJ1ZV1dXSxbMywiYU4iLFsiZCIsWzE1LCJhTiJdXV0sWzY2LCJhTyIsWzE1LCJhTCJdLFs0NixbNTMsWzIyLFsyMCxbMixbMTUsImFOIl0sImluZGV4T2YiLFs3LFsxNSwiYU8iXV1dLDBdLFs0NixbMzYsdHJ1ZV1dXV1dXSxbMjIsWzE4LFsyLFsxNSwiYUsiXSwiaW5kZXhPZiIsWzcsWzE1LCJhTiJdXV0sWzI3LDFdXSxbNDYsWzM2LHRydWVdXV0sWzM2LGZhbHNlXV0sWzUyLCJiIixbInJlcXVpcmUiLCJtYWtlTnVtYmVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwicGFyc2VVcmwiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC50ZXN0UmVnZXgiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJkZWNvZGVVcmlDb21wb25lbnQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImwiLFs1MSwiIixbNywiYU4iXSxbMzYsWzIwLFsiaCIsWzE1LCJhTiJdXSwiYXJyYXkiXV1dXSxbNTIsIm0iLCJldmVudF9wYXJhbV9vcHMiXSxbNTIsIm4iLCJlZGl0X3BhcmFtIl0sWzUyLCJvIiwiZGVsZXRlX3BhcmFtIl0sWzUyLCJwIiwicGFyYW1fbmFtZSJdLFs1MiwicSIsInBhcmFtX3ZhbHVlIl0sWzUyLCJyIiwiY29uc3RfdmFsdWUiXSxbNTIsInMiLCJwYXJhbV9uYW1lIl0sWzUyLCJ0IiwiZXZlbnRfcGFyYW0iXSxbNTIsInUiLCJwcmVkaWNhdGVzIl0sWzUyLCJ2IiwibmVnYXRlIl0sWzUyLCJ3IiwidHlwZSJdLFs1MiwieCIsInZhbHVlcyJdLFs1MiwieSIsInR5cGUiXSxbNTIsInoiLFs3LFsxNyxbMTUsImoiXSwiSEQiXSxbMTcsWzE1LCJqIl0sIktIIl0sWzE3LFsxNSwiaiJdLCJIRSJdXV0sWzUyLCJhRyIsWzgsIl9fZ2EiLDEsIl9fdXRtYSIsMSwiX191dG1iIiwxLCJfX3V0bWMiLDEsIl9fdXRtayIsMSwiX191dG12IiwxLCJfX3V0bXgiLDEsIl9fdXRteiIsMSwiX2dhYyIsMSwiX2dsIiwxLCJkY2xpZCIsMSwiZ2FkX2NhbXBhaWduaWQiLDEsImdhZF9zb3VyY2UiLDEsImdicmFpZCIsMSwiZ2NsaWQiLDEsImdjbHNyYyIsMSwidXRtX2NhbXBhaWduIiwxLCJ1dG1fY29udGVudCIsMSwidXRtX2V4cGlkIiwxLCJ1dG1faWQiLDEsInV0bV9tZWRpdW0iLDEsInV0bV9ub292ZXJyaWRlIiwxLCJ1dG1fcmVmZXJyZXIiLDEsInV0bV9zb3VyY2UiLDEsInV0bV90ZXJtIiwxLCJ3YnJhaWQiLDFdXSxbNTIsImFLIixbNyxbMTcsWzE1LCJqIl0sIkkiXSxbMTcsWzE1LCJqIl0sIkoiXSxbMTcsWzE1LCJqIl0sIksiXSxbMTcsWzE1LCJqIl0sIkwiXSxbMTcsWzE1LCJqIl0sIk0iXSxbMTcsWzE1LCJqIl0sIkFGIl0sWzE3LFsxNSwiaiJdLCJBRyJdLFsxNyxbMTUsImoiXSwiQUoiXSxbMTcsWzE1LCJqIl0sIkFNIl0sWzE3LFsxNSwiaiJdLCJBUSJdXV0sWzUyLCJhTCIsWzcsIl8iLCJnYV8iLCJnb29nbGVfIiwiZ3RhZy4iLCJmaXJlYmFzZV8iXV0sWzM2LFs4LCJBIixbMTUsImFBIl0sIkQiLFsxNSwiYU0iXSwiQiIsWzE1LCJhQyJdLCJDIixbMTUsImFGIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RHYVJlZ2lvblNjb3BlZFNldHRpbmdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsIm0iLCJuIiwibyJdLFs1MCwidCIsWzQ2LCJ2Il0sWzUyLCJ3IixbMTYsWzE1LCJpIl0sWzE1LCJ2Il1dXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2XV1dLFs1MyxbNDEsIngiXSxbMywieCIsMF0sWzYzLFs3LCJ4Il0sWzIzLFsxNSwieCJdLFsxNyxbMTUsInciXSwibGVuZ3RoIl1dLFszMyxbMTUsIngiXSxbMywieCIsWzAsWzE1LCJ4Il0sMV1dXSxbNDYsWzUzLFs1MiwieSIsWzE2LFsxNSwidyJdLFsxNSwieCJdXV0sWyJxIixbMTUsInAiXSxbMTcsWzE1LCJ5Il0sIm5hbWUiXSxbMTcsWzE1LCJ5Il0sInZhbHVlIl1dXV1dXV0sWzUwLCJ1IixbNDYsInYiXSxbMjIsWzMwLFsyOCxbMTUsInIiXV0sWzIxLFsxNyxbMTUsInIiXSwibGVuZ3RoIl0sMl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNDEsInciXSxbMywidyIsWzE2LFsxNSwidiJdLFsxNSwicyJdXV0sWzIyLFsyMCxbMTUsInciXSxbNDRdXSxbNDYsWzUzLFszLCJ3IixbMTYsWzE1LCJ2Il0sWzE1LCJyIl1dXV1dXSxbMzYsWzI4LFsyOCxbMTUsInciXV1dXV0sWzIyLFsyOCxbMTUsIm4iXV0sWzQ2LFszNl1dXSxbNTIsInAiLFszMCxbMTcsWzE1LCJtIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbImMiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicSIsWyJoIixbMTUsImYiXSxbMTUsIm8iXV1dLFs1MiwiciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFsiaCIsWzE1LCJkIl0sWzE1LCJvIl1dXSxbIiQwIl1dXSxbNTIsInMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbImgiLFsxNSwiZSJdLFsxNSwibyJdXV0sWyIkMCJdXV0sWzUzLFs0MSwidiJdLFszLCJ2IiwwXSxbNjMsWzcsInYiXSxbMjMsWzE1LCJ2Il0sWzE3LFsxNSwibiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwidiJdLFszLCJ2IixbMCxbMTUsInYiXSwxXV1dLFs0NixbNTMsWzUyLCJ3IixbMTYsWzE1LCJuIl0sWzE1LCJ2Il1dXSxbMjIsWzMwLFsxNyxbMTUsInciXSwiZGlzYWxsb3dBbGxSZWdpb25zIl0sWyJ1IixbMTcsWzE1LCJ3Il0sImRpc2FsbG93ZWRSZWdpb25zIl1dXSxbNDYsWzUzLFsidCIsWzE3LFsxNSwidyJdLCJyZWRhY3RGaWVsZEdyb3VwIl1dXV1dXV1dXV0sWzUwLCJrIixbNDYsIm0iXSxbNTIsIm4iLFs4XV0sWzIyLFsyOCxbMTUsIm0iXV0sWzQ2LFszNixbMTUsIm4iXV1dXSxbNTIsIm8iLFsyLFsxNSwibSJdLCJzcGxpdCIsWzcsIiwiXV1dLFs1MyxbNDEsInAiXSxbMywicCIsMF0sWzYzLFs3LCJwIl0sWzIzLFsxNSwicCJdLFsxNyxbMTUsIm8iXSwibGVuZ3RoIl1dLFszMyxbMTUsInAiXSxbMywicCIsWzAsWzE1LCJwIl0sMV1dXSxbNDYsWzUzLFs1MiwicSIsWzIsWzE2LFsxNSwibyJdLFsxNSwicCJdXSwidHJpbSIsWzddXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs2XV1dLFs1MiwiciIsWzIsWzE1LCJxIl0sInNwbGl0IixbNywiLSJdXV0sWzUyLCJzIixbMTYsWzE1LCJyIl0sMF1dLFs1MiwidCIsWzM5LFsyMCxbMTcsWzE1LCJyIl0sImxlbmd0aCJdLDJdLFsxNSwicSJdLFs0NF1dXSxbMjIsWzMwLFsyOCxbMTUsInMiXV0sWzIxLFsxNyxbMTUsInMiXSwibGVuZ3RoIl0sMl1dLFs0NixbNTMsWzZdXV1dLFsyMixbMSxbMjEsWzE1LCJ0Il0sWzQ0XV0sWzMwLFsyMyxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDRdLFsxOCxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDZdXV0sWzQ2LFs1MyxbNl1dXV0sWzQzLFsxNSwibiJdLFsxNSwicSJdLHRydWVdXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImwiLFs0NiwibSJdLFsyMixbMjgsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl1dLFs0NixbMzYsWzddXV1dLFs1MiwibiIsWzhdXSxbNTMsWzQxLCJvIl0sWzMsIm8iLDBdLFs2MyxbNywibyJdLFsyMyxbMTUsIm8iXSxbMTcsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJvIl0sWzMsIm8iLFswLFsxNSwibyJdLDFdXV0sWzQ2LFs1MyxbNTIsInAiLFsxNixbMTcsWzE1LCJtIl0sInNldHRpbmdzVGFibGUiXSxbMTUsIm8iXV1dLFs1MiwicSIsWzE3LFsxNSwicCJdLCJyZWRhY3RGaWVsZEdyb3VwIl1dLFsyMixbMjgsWzE2LFsxNSwiaSJdLFsxNSwicSJdXV0sWzQ2LFs2XV1dLFs0MyxbMTUsIm4iXSxbMTUsInEiXSxbOCwicmVkYWN0RmllbGRHcm91cCIsWzE1LCJxIl0sImRpc2FsbG93QWxsUmVnaW9ucyIsZmFsc2UsImRpc2FsbG93ZWRSZWdpb25zIixbOF1dXSxbNTIsInIiLFsxNixbMTUsIm4iXSxbMTUsInEiXV1dLFsyMixbMTcsWzE1LCJwIl0sImRpc2FsbG93QWxsUmVnaW9ucyJdLFs0NixbNTMsWzQzLFsxNSwiciJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLHRydWVdLFs2XV1dXSxbNDMsWzE1LCJyIl0sImRpc2FsbG93ZWRSZWdpb25zIixbImsiLFsxNyxbMTUsInAiXSwiZGlzYWxsb3dlZFJlZ2lvbnMiXV1dXV1dXSxbMzYsWzIsWzE1LCJiIl0sInZhbHVlcyIsWzcsWzE1LCJuIl1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmdldENvdW50cnlDb2RlIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UmVnaW9uQ29kZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfYWN0aXZpdGllcyJdXSxbNTIsImgiLFsxNyxbMTUsImciXSwiQSJdXSxbNTIsImkiLFs4LCJHT09HTEVfU0lHTkFMUyIsWzcsWzgsIm5hbWUiLCJhbGxvd19nb29nbGVfc2lnbmFscyIsInZhbHVlIixmYWxzZV1dLCJERVZJQ0VfQU5EX0dFTyIsWzcsWzgsIm5hbWUiLCJnZW9fZ3JhbnVsYXJpdHkiLCJ2YWx1ZSIsdHJ1ZV0sWzgsIm5hbWUiLCJyZWRhY3RfZGV2aWNlX2luZm8iLCJ2YWx1ZSIsdHJ1ZV1dXV0sWzM2LFs4LCJBIixbMTUsImoiXSwiQiIsWzE1LCJsIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWzIsWzE1LCJjIl0sIkEiLFs3XV1dLFsyMixbMSxbMTUsImYiXSxbMTgsWzE3LFsxNSwiZiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJiIl0sIkZUIl0sWzgsInBsZiIsWzIsWzE1LCJmIl0sImpvaW4iLFs3LCIuIl1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KIApdCiwiZW50aXRpZXMiOnsKIl9fYyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9hdXRvX3JlZGFjdCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fZG93bmxvYWQiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX3Njcm9sbCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV92aWRlbyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9maXJzdCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9sYXN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2dhX3JlZ3Njb3BlIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2djdCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF8xcF9kYXRhX3YyIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2V2ZW50X2NyZWF0ZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF9nb29nbGVfc2lnbmFscyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CgoKfQosImJsb2IiOnsiMSI6IjEiLCIxMCI6IkctVlZCUTBUTENETiIsIjE0IjoiNjdtMCIsIjE1IjoiMCIsIjE2IjoiQ2hFSThJT2Mwd1lRZ09tc2t2dWx4S3FSQVJJZEFMMlBZWlpNNEU4UmF4dE1aU3d6dzBZMDU1U0lOditTelcrVlk5UWFBa3FNIiwiMTciOiJjIiwiMTkiOiJkYXRhTGF5ZXIiLCIyIjp0cnVlLCIyMCI6IiIsIjIxIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMjIiOiJleUl3SWpvaVRrOGlMQ0l4SWpvaVRrOHRNRE1pTENJeUlqcG1ZV3h6WlN3aU15STZJbWR2YjJkc1pTNXVieUlzSWpRaU9pSnlaV2RwYjI0eElpd2lOU0k2Wm1Gc2MyVXNJallpT25SeWRXVXNJamNpT2lKaFpGOXpkRzl5WVdkbGZHRnVZV3g1ZEdsamMxOXpkRzl5WVdkbGZHRmtYM1Z6WlhKZlpHRjBZWHhoWkY5d1pYSnpiMjVoYkdsNllYUnBiMjRpTENJNUlqcDBjblZsZlEiLCIyMyI6Imdvb2dsZS50YWdtYW5hZ2VyLmRlYnVndWkyLnF1ZXVlIiwiMjQiOiJ0YWdhc3Npc3RhbnQuZ29vZ2xlLmNvbSIsIjI3IjowLjAwNSwiMyI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjMwIjoiTk8iLCIzMSI6Ik5PLTAzIiwiMzIiOmZhbHNlLCIzMyI6InJlZ2lvbjEiLCIzNCI6IkctVlZCUTBUTENETiIsIjM1IjoiRyIsIjM2IjoiaHR0cHM6Ly9hZHNlcnZpY2UuZ29vZ2xlLmNvbS9wYWdlYWQvcmVnY2xrIiwiMzciOiJfX1RBR0dZX0lOU1RBTExFRCIsIjM4IjoiY2N0Lmdvb2dsZSIsIjM5IjoiZ29vZ1RhZ2d5UmVmZXJyZXIiLCI0MCI6Imh0dHBzOi8vY2N0Lmdvb2dsZS90YWdneS9hZ2VudC5qcyIsIjQxIjoiZ29vZ2xlLnRhZ21hbmFnZXIudGEucHJvZHF1ZXVlIiwiNDIiOjAuMDEsIjQzIjoie1wia2V5c1wiOlt7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQktseVRYMmp5b2JwUUNtZlV5QmJoQnlRSGs5WjJIZE41bEh4cEJBdElLR01jbXp3MGdFK2VibFlDbW0xR2E3YlllVGR5ZG9KbWU2SXBhU29DVTBJVVVvPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcImRlZTRiMzUxLWIwZjUtNGMyNy1hOGM4LWVkNjYwNDc3YTQ0Y1wifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkR0WUJSblBCUzFnNm1lWE8xclE1YTUyQjVGYm5oN0RDNWpxdjAyaXhKc3NuMGsxSjlyY0hDYVZjL3p6UnNuc0hCelNvRktzNko4cEg3Q2NuUVAzRWp3PVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcImFkMTkzYjJhLTRhOTAtNGMxYS1iNzllLWRlMzdhYzM5MWJkMlwifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQk1aMFVNdWRBZTRQb2FmU1RwVXhQdElrZkJlQ01iRkJYdnR5Ull2SExDU1EvRVV2RUpzbXNWNHQ2TkIvQkVWcHFMM0h2OGdOU1FoN0srU1Vvb2YyNWFvPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjQ4YzRlZmUxLWZkZDAtNDM2YS1hYzhmLTkyM2YxMTkxODc4N1wifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkZmbHZVbCt4cEhhRlZDSVlPMUtQTHhrditBamRsNGQ4cnZyWGhJNnpmcG5iQkRxSTUxRERrdEhIYjNaV0lTNTdvRGgwS2lyOUF1Q09vbjJNT3hOVjlZPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjQzMmJjMjcwLTk5ZWEtNDIyMC1iNTYyLWUyYzVhZTc3ZDRkOVwifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkFROFRreTRETFdPSmJIT0hiVllEYlFaRWZFZWxiNEZUQjhFWU1RZVJRaUwxbTFMdEFkMHIzemV5TGpnWjMvVzI0UjhWZmIyMnpZMml4NlcvVGZDampBPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjA1MGE2ZTExLTM4YWItNGY4MC04OWNiLTdiMzE5Yjk3MDRjMFwifV19IiwiNDQiOiIxMTg4OTc5MjB+MTE4ODk3OTMwIiwiNDUiOnRydWUsIjQ2Ijp7IjEiOiIxMDAwIiwiMTAiOiI2NnUwIiwiMTEiOiI2NmcwIiwiMTQiOiIxMDAwIiwiMTYiOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjE3IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIyIjoiOSIsIjIwIjoiNTAwMCIsIjIxIjoiNTAwMCIsIjIyIjoiNC40LjAiLCIyMyI6IjAuMC4wIiwiMjUiOiIxIiwiMjYiOiI0MDAwIiwiMjciOiIxMDAiLCIzIjoiNSIsIjQiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YXxhZF9wZXJzb25hbGl6YXRpb24iLCI0NCI6IjE1MDAwIiwiNDgiOiIzMDAwMCIsIjUiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YSIsIjYiOiIxIiwiNjEiOiIxMDAwIiwiNjIiOiJBNk9OSFJZNy9idkJybytJTVpkL2E2TE5qbjdTU3Y5OTlTa04vaEZBRTlMNnZNcjM0ZE5nZmRTVmRZbXY0VStOSFpnMXN4ZDM4UnRjaVJwUlV0SVJQZ1FBQUFDQ2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzZDNkeTVuYjI5bmJHVjBZV2R0WVc1aFoyVnlMbU52YlRvME5ETWlMQ0ptWldGMGRYSmxJam9pVTJoaGNtVmtWMjl5YTJWeVJYaDBaVzVrWldSTWFXWmxkR2x0WlNJc0ltVjRjR2x5ZVNJNk1UYzNOamN5T1RZd01Dd2lhWE5VYUdseVpGQmhjblI1SWpwMGNuVmxmUT09IiwiNjMiOiIxMDAwIiwiNjYiOiIxMDAiLCI3IjoiMTAifSwiNDgiOnRydWUsIjUiOiJHLVZWQlEwVExDRE4iLCI1MSI6dHJ1ZSwiNTUiOlsiRy1WVkJRMFRMQ0ROIl0sIjU2IjpbeyIxIjo0MDMsIjMiOjAuNSwiNCI6MTE1OTM4NDY1LCI1IjoxMTU5Mzg0NjYsIjYiOjAsIjciOjJ9LHsiMSI6NDA0LCIzIjowLjUsIjQiOjExNTkzODQ2OCwiNSI6MTE1OTM4NDY5LCI2IjowLCI3IjoxfSx7IjEiOjYwMiwiMyI6MC4wMSwiNCI6MTIwMTI0NDU1LCI1IjoxMjAxMjQ0NTMsIjYiOjEyMDEyNDQ1NCwiNyI6M30seyIxIjo1NjksIjIiOnRydWV9LHsiMSI6NDc1LCIyIjp0cnVlfSx7IjEiOjUwMiwiMiI6dHJ1ZX0seyIxIjo1NzcsIjIiOnRydWV9LHsiMSI6NTY4LCIzIjowLjAxLCI0IjoxMTk3OTE3NDksIjUiOjExOTc5MTc0OCwiNiI6MCwiNyI6MX0seyIxIjo0OTAsIjIiOnRydWV9LHsiMSI6NDkxLCIzIjowLjAxLCI0IjoxMTgwMTIwMDcsIjUiOjExODAxMjAwOCwiNiI6MTE4MDEyMDA5LCI3IjoxfSx7IjEiOjQ4MCwiMiI6dHJ1ZX0seyIxIjo1OTQsIjMiOjAuMDEsIjQiOjExOTc5Mzk3NCwiNSI6MTE5NzkzOTcyLCI2IjoxMTk3OTM5NzMsIjciOjF9LHsiMSI6NTk5LCIyIjp0cnVlfSx7IjEiOjU4MCwiMyI6MC4xLCI0IjoxMTk1MjcwMjAsIjUiOjExOTUyNzAxOSwiNiI6MCwiNyI6MX0seyIxIjo1MjMsIjIiOnRydWV9LHsiMSI6NTgxLCIzIjowLjAxLCI0IjoxMTk5NDg4NTQsIjUiOjExOTk0ODg1MiwiNiI6MTE5OTQ4ODUzLCI3IjozfSx7IjEiOjU1NSwiMyI6MC4wMSwiNCI6MTE5MjU5NjA2LCI1IjoxMTkyNTk2MDUsIjYiOjAsIjciOjJ9LHsiMSI6NTA0LCIyIjp0cnVlfSx7IjEiOjQ2MiwiMyI6MC4wNSwiNCI6MTE4ODA2NTI0LCI1IjoxMTg4MDY1MjUsIjYiOjExODgwNjUyNiwiNyI6MX0seyIxIjo0MTMsIjIiOnRydWV9LHsiMSI6NTkzLCIyIjp0cnVlfSx7IjEiOjUwNiwiMiI6dHJ1ZX0seyIxIjo1MDAsIjIiOnRydWV9LHsiMSI6NTYxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAzLCI1IjoxMTk0MDQ3MDIsIjYiOjAsIjciOjF9LHsiMSI6NDgxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAxLCI1IjoxMTk0MDQ3MDAsIjYiOjAsIjciOjF9LHsiMSI6NDUwLCIzIjowLjAxLCI0IjoxMTcyMjc3MTQsIjUiOjExNzIyNzcxNSwiNiI6MTE3MjI3NzE2LCI3IjozfSx7IjEiOjU4MywiMyI6MC41LCI0IjoxMTk4OTY4MDMsIjUiOjExOTg5NjgwMiwiNiI6MCwiNyI6MX0seyIxIjo0NTgsIjIiOnRydWV9LHsiMSI6NTgyLCIzIjowLjAxLCI0IjoxMTkzODE2NjQsIjUiOjExOTM4MTY2MiwiNiI6MTE5MzgxNjYzLCI3IjoxfSx7IjEiOjU3MCwiMiI6dHJ1ZX0seyIxIjo0OTgsIjMiOjAuMiwiNCI6MTE1NjE2OTg1LCI1IjoxMTU2MTY5ODYsIjYiOjAsIjciOjF9LHsiMSI6NTk1LCIyIjp0cnVlfSx7IjEiOjU4OSwiMyI6MC4wMSwiNCI6MTIwMDg0MjE1LCI1IjoxMjAwODQyMTQsIjYiOjAsIjciOjF9LHsiMSI6NDk1LCIzIjowLjA1LCI0IjoxMTgxMzE4MTAsIjUiOjExODEzMTgwOCwiNiI6MTE4MTMxODA5LCI3IjozfSx7IjEiOjU4NywiMyI6MC4xLCI0IjoxMTk3MzIxNzEsIjUiOjExOTczMjE3MCwiNiI6MCwiNyI6M30seyIxIjo1ODQsIjIiOnRydWV9LHsiMSI6NTY0LCIzIjowLjAwMDEsIjQiOjExOTIwNTMxNywiNSI6MTE5MjA1MzE1LCI2IjoxMTkyMDUzMTYsIjciOjF9LHsiMSI6NTU3LCIyIjp0cnVlfSx7IjEiOjQyNywiMyI6MC4xLCI0IjoxMTk3MjQzMjIsIjUiOjExOTcyNDMyMCwiNiI6MTE5NzI0MzIxLCI3IjoyfSx7IjEiOjU3NiwiMyI6MC4wMSwiNCI6MTE5MzE3ODEwLCI1IjoxMTkzMTc4MTEsIjYiOjExOTMxODE3NywiNyI6M30seyIxIjo1NzMsIjIiOnRydWV9LHsiMSI6NDk5LCIyIjp0cnVlfSx7IjEiOjUxNiwiMyI6MC4xLCI0IjoxMTgzOTUzMzUsIjUiOjExODM5NTMzMywiNiI6MTE4Mzk1MzM0LCI3IjoxfSx7IjEiOjUyNCwiMiI6dHJ1ZX1dLCI1OSI6WyJHLVZWQlEwVExDRE4iXSwiNiI6Ijc1MjY0MDM5IiwiNjIiOnRydWUsIjYzIjowLjAwNX0KLCJwZXJtaXNzaW9ucyI6ewoiX19jIjp7fQosCiJfX2NjZF9hdXRvX3JlZGFjdCI6e30KLAoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIjp7fQosCiJfX2NjZF9lbV9kb3dubG9hZCI6eyJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5saW5rQ2xpY2siXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIjp7ImFsbG93V2FpdEZvclRhZ3MiOiIifX0KLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siOnsiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6ImFueSIsInF1ZXJpZXNBbGxvd2VkIjoiYW55In0sImxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmxpbmtDbGljayJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9fQosCiJfX2NjZF9lbV9wYWdlX3ZpZXciOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uaGlzdG9yeUNoYW5nZS12MiJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIjp7fX0KLAoiX19jY2RfZW1fc2Nyb2xsIjp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLnNjcm9sbERlcHRoIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9zY3JvbGxfZXZlbnRzIjp7fX0KLAoiX19jY2RfZW1fc2l0ZV9zZWFyY2giOnsiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6ImFueSIsInF1ZXJpZXNBbGxvd2VkIjoiYW55In0sInJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX2NjZF9lbV92aWRlbyI6eyJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS52aWRlbyJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiOnsiYWxsb3dGaXhNaXNzaW5nSmF2YVNjcmlwdEFwaSI6ZmFsc2V9fQosCiJfX2NjZF9nYV9maXJzdCI6eyJyZWFkX2RvbV9lbGVtZW50cyI6eyJhbGxvd2VkQ3NzU2VsZWN0b3JzIjoiYW55In0sImdldF91cmwiOnsidXJsUGFydHMiOiJzcGVjaWZpYyIsInByb3RvY29sIjp0cnVlLCJob3N0Ijp0cnVlfX0KLAoiX19jY2RfZ2FfbGFzdCI6e30KLAoiX19jY2RfZ2FfcmVnc2NvcGUiOnsicmVhZF9jb250YWluZXJfZGF0YSI6e319CiwKIl9fZSI6eyJyZWFkX2V2ZW50X2RhdGEiOnsiZXZlbnREYXRhQWNjZXNzIjoic3BlY2lmaWMiLCJrZXlQYXR0ZXJucyI6WyJldmVudCJdfX0KLAoiX19nY3QiOnsiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9fQosCiJfX29ndF8xcF9kYXRhX3YyIjp7ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiOnsibGltaXREYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dBdXRvRGF0YVNvdXJjZXMiOnRydWUsImFsbG93TWFudWFsRGF0YVNvdXJjZXMiOmZhbHNlLCJhbGxvd0NvZGVEYXRhU291cmNlcyI6ZmFsc2V9fQosCiJfX29ndF9ldmVudF9jcmVhdGUiOnsiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9fQosCiJfX29ndF9nb29nbGVfc2lnbmFscyI6eyJyZWFkX2NvbnRhaW5lcl9kYXRhIjp7fX0KLAoiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyI6e30KCgp9CgoKCiwic2VjdXJpdHlfZ3JvdXBzIjp7CiJnb29nbGUiOlsKIl9fYyIKLAoiX19jY2RfYXV0b19yZWRhY3QiCiwKIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIKLAoiX19jY2RfZW1fZG93bmxvYWQiCiwKIl9fY2NkX2VtX291dGJvdW5kX2NsaWNrIgosCiJfX2NjZF9lbV9wYWdlX3ZpZXciCiwKIl9fY2NkX2VtX3Njcm9sbCIKLAoiX19jY2RfZW1fc2l0ZV9zZWFyY2giCiwKIl9fY2NkX2VtX3ZpZGVvIgosCiJfX2NjZF9nYV9maXJzdCIKLAoiX19jY2RfZ2FfbGFzdCIKLAoiX19jY2RfZ2FfcmVnc2NvcGUiCiwKIl9fZSIKLAoiX19nY3QiCiwKIl9fb2d0XzFwX2RhdGFfdjIiCiwKIl9fb2d0X2V2ZW50X2NyZWF0ZSIKLAoiX19vZ3RfZ29vZ2xlX3NpZ25hbHMiCiwKIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiCgpdCgoKfQoKCgoKCn07CgoKCgp2YXIgayxhYT10eXBlb2YgT2JqZWN0LmNyZWF0ZT09ImZ1bmN0aW9uIj9PYmplY3QuY3JlYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtiLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn0sYmE9dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPT0iZnVuY3Rpb24iP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX0sY2E9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXSxjPTA7YzxiLmxlbmd0aDsrK2Mpe3ZhciBkPWJbY107aWYoZCYmZC5NYXRoPT1NYXRoKXJldHVybiBkfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7Cn0saGE9Y2EodGhpcyksaWE9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woIngiKT09PSJzeW1ib2wiLGthPXt9LGxhPXt9LG5hPWZ1bmN0aW9uKGEsYixjKXtpZighY3x8YSE9bnVsbCl7dmFyIGQ9bGFbYl07aWYoZD09bnVsbClyZXR1cm4gYVtiXTt2YXIgZT1hW2RdO3JldHVybiBlIT09dm9pZCAwP2U6YVtiXX19LG9hPWZ1bmN0aW9uKGEsYixjKXtpZihiKWE6e3ZhciBkPWEuc3BsaXQoIi4iKSxlPWQubGVuZ3RoPT09MSxmPWRbMF0sZzshZSYmZiBpbiBrYT9nPWthOmc9aGE7Zm9yKHZhciBoPTA7aDxkLmxlbmd0aC0xO2grKyl7dmFyIGw9ZFtoXTtpZighKGwgaW4gZykpYnJlYWsgYTtnPWdbbF19dmFyIG49ZFtkLmxlbmd0aC0xXSxwPWlhJiZjPT09ImVzNiI/Z1tuXTpudWxsLHE9YihwKTtpZihxIT1udWxsKWlmKGUpYmEoa2Esbix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KTtlbHNlIGlmKHEhPT1wKXtpZihsYVtuXT09PXZvaWQgMCl7dmFyIHI9Ck1hdGgucmFuZG9tKCkqMUU5Pj4+MDtsYVtuXT1pYT9oYS5TeW1ib2wobik6IiRqc2NwJCIrcisiJCIrbn1iYShnLGxhW25dLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pfX19LHBhO2lmKGlhJiZ0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKXBhPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciByYTthOnt2YXIgdGE9e2E6ITB9LHVhPXt9O3RyeXt1YS5fX3Byb3RvX189dGE7cmE9dWEuYTticmVhayBhfWNhdGNoKGEpe31yYT0hMX1wYT1yYT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGx9CnZhciB2YT1wYSx3YT1mdW5jdGlvbihhLGIpe2EucHJvdG90eXBlPWFhKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2lmKHZhKXZhKGEsYik7ZWxzZSBmb3IodmFyIGMgaW4gYilpZihjIT0icHJvdG90eXBlIilpZihPYmplY3QuZGVmaW5lUHJvcGVydGllcyl7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpO2QmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGMsZCl9ZWxzZSBhW2NdPWJbY107YS5GdD1iLnByb3RvdHlwZX0seGE9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19LG09ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO2lmKGIpcmV0dXJuIGIuY2FsbChhKTtpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OnhhKGEpfTsKdGhyb3cgRXJyb3IoU3RyaW5nKGEpKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO30seWE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7cmV0dXJuIGN9LHc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBBcnJheT9hOnlhKG0oYSkpfSxBYT1mdW5jdGlvbihhKXtyZXR1cm4gemEoYSxhKX0semE9ZnVuY3Rpb24oYSxiKXthLnJhdz1iO09iamVjdC5mcmVlemUmJihPYmplY3QuZnJlZXplKGEpLE9iamVjdC5mcmVlemUoYikpO3JldHVybiBhfSxCYT1pYSYmdHlwZW9mIG5hKE9iamVjdCwiYXNzaWduIik9PSJmdW5jdGlvbiI/bmEoT2JqZWN0LCJhc3NpZ24iKTpmdW5jdGlvbihhLGIpe2lmKGE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gbnVsbGlzaCBhcmciKTthPU9iamVjdChhKTtmb3IodmFyIGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXt2YXIgZD1hcmd1bWVudHNbY107CmlmKGQpZm9yKHZhciBlIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTtvYSgiT2JqZWN0LmFzc2lnbiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fEJhfSwiZXM2Iik7dmFyIENhPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9LERhPWZ1bmN0aW9uKCl7dGhpcy5mYT0hMTt0aGlzLlI9bnVsbDt0aGlzLmphPXZvaWQgMDt0aGlzLkg9MTt0aGlzLk49dGhpcy5aPTA7dGhpcy5MYT10aGlzLks9bnVsbH0sRWE9ZnVuY3Rpb24oYSl7aWYoYS5mYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7YS5mYT0hMH07RGEucHJvdG90eXBlLnlhPWZ1bmN0aW9uKGEpe3RoaXMuamE9YX07CnZhciBHYT1mdW5jdGlvbihhLGIpe2EuSz17YW86Yixpc0V4Y2VwdGlvbjohMH07YS5IPWEuWnx8YS5OfTtEYS5wcm90b3R5cGUuZ2V0TmV4dEFkZHJlc3NKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtEYS5wcm90b3R5cGUuZ2V0WWllbGRSZXN1bHRKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qYX07RGEucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLks9e3JldHVybjphfTt0aGlzLkg9dGhpcy5OfTtEYS5wcm90b3R5cGVbInJldHVybiJdPURhLnByb3RvdHlwZS5yZXR1cm47RGEucHJvdG90eXBlLkFqPWZ1bmN0aW9uKGEpe3RoaXMuSz17bmQ6YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuQWo7RGEucHJvdG90eXBlLmFjPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWI7cmV0dXJue3ZhbHVlOmF9fTtEYS5wcm90b3R5cGUueWllbGQ9RGEucHJvdG90eXBlLmFjOwpEYS5wcm90b3R5cGUueHM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1tKGEpLGQ9Yy5uZXh0KCk7Q2EoZCk7aWYoZC5kb25lKXRoaXMuamE9ZC52YWx1ZSx0aGlzLkg9YjtlbHNlIHJldHVybiB0aGlzLlI9Yyx0aGlzLmFjKGQudmFsdWUsYil9O0RhLnByb3RvdHlwZS55aWVsZEFsbD1EYS5wcm90b3R5cGUueHM7RGEucHJvdG90eXBlLm5kPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtEYS5wcm90b3R5cGUuanVtcFRvPURhLnByb3RvdHlwZS5uZDtEYS5wcm90b3R5cGUuRGo9ZnVuY3Rpb24oKXt0aGlzLkg9MH07RGEucHJvdG90eXBlLmp1bXBUb0VuZD1EYS5wcm90b3R5cGUuRGo7RGEucHJvdG90eXBlLk5qPWZ1bmN0aW9uKGEsYil7dGhpcy5aPWE7YiE9dm9pZCAwJiYodGhpcy5OPWIpfTtEYS5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPURhLnByb3RvdHlwZS5OajtEYS5wcm90b3R5cGUudmc9ZnVuY3Rpb24oYSl7dGhpcy5aPTA7dGhpcy5OPWF8fDB9OwpEYS5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPURhLnByb3RvdHlwZS52ZztEYS5wcm90b3R5cGUuSWo9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLlo9Ynx8MH07RGEucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9RGEucHJvdG90eXBlLklqO0RhLnByb3RvdHlwZS5QaD1mdW5jdGlvbihhKXt0aGlzLlo9YXx8MDt2YXIgYj10aGlzLksuYW87dGhpcy5LPW51bGw7cmV0dXJuIGJ9O0RhLnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9RGEucHJvdG90eXBlLlBoO0RhLnByb3RvdHlwZS5rZD1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLkxhW2NdPXRoaXMuSzp0aGlzLkxhPVt0aGlzLktdO3RoaXMuWj1hfHwwO3RoaXMuTj1ifHwwfTtEYS5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLmtkOwpEYS5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkxhLnNwbGljZShifHwwKVswXSxkPXRoaXMuSz10aGlzLkt8fGM7ZD9kLmlzRXhjZXB0aW9uP3RoaXMuSD10aGlzLlp8fHRoaXMuTjpkLm5kIT12b2lkIDAmJnRoaXMuTjxkLm5kPyh0aGlzLkg9ZC5uZCx0aGlzLks9bnVsbCk6dGhpcy5IPXRoaXMuTjp0aGlzLkg9YX07RGEucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5oZTtEYS5wcm90b3R5cGUuZmU9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBIYShhKX07RGEucHJvdG90eXBlLmZvckluPURhLnByb3RvdHlwZS5mZTt2YXIgSGE9ZnVuY3Rpb24oYSl7dGhpcy5LPWE7dGhpcy5IPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMuSC5wdXNoKGIpO3RoaXMuSC5yZXZlcnNlKCl9O0hhLnByb3RvdHlwZS5obz1mdW5jdGlvbigpe2Zvcig7dGhpcy5ILmxlbmd0aD4wOyl7dmFyIGE9dGhpcy5ILnBvcCgpO2lmKGEgaW4gdGhpcy5LKXJldHVybiBhfXJldHVybiBudWxsfTsKSGEucHJvdG90eXBlLmdldE5leHQ9SGEucHJvdG90eXBlLmhvOwp2YXIgSWE9ZnVuY3Rpb24oYSl7dGhpcy5IPW5ldyBEYTt0aGlzLks9YX0sTGE9ZnVuY3Rpb24oYSxiKXtFYShhLkgpO3ZhciBjPWEuSC5SO2lmKGMpcmV0dXJuIEphKGEsInJldHVybiJpbiBjP2NbInJldHVybiJdOmZ1bmN0aW9uKGQpe3JldHVybnt2YWx1ZTpkLGRvbmU6ITB9fSxiLGEuSC5yZXR1cm4pO2EuSC5yZXR1cm4oYik7cmV0dXJuIEthKGEpfSxKYT1mdW5jdGlvbihhLGIsYyxkKXt0cnl7dmFyIGU9Yi5jYWxsKGEuSC5SLGMpO0NhKGUpO2lmKCFlLmRvbmUpcmV0dXJuIGEuSC5mYT0hMSxlO3ZhciBmPWUudmFsdWV9Y2F0Y2goZyl7cmV0dXJuIGEuSC5SPW51bGwsR2EoYS5ILGcpLEthKGEpfWEuSC5SPW51bGw7ZC5jYWxsKGEuSCxmKTtyZXR1cm4gS2EoYSl9LEthPWZ1bmN0aW9uKGEpe2Zvcig7YS5ILkg7KXRyeXt2YXIgYj1hLksoYS5IKTtpZihiKXJldHVybiBhLkguZmE9ITEse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goZCl7YS5ILmphPXZvaWQgMCxHYShhLkgsCmQpfWEuSC5mYT0hMTtpZihhLkguSyl7dmFyIGM9YS5ILks7YS5ILks9bnVsbDtpZihjLmlzRXhjZXB0aW9uKXRocm93IGMuYW87cmV0dXJue3ZhbHVlOmMucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19LE1hPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUi5uZXh0LGIsYS5ILnlhKTooYS5ILnlhKGIpLGM9S2EoYSkpO3JldHVybiBjfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3ZhciBjO0VhKGEuSCk7YS5ILlI/Yz1KYShhLGEuSC5SWyJ0aHJvdyJdLGIsYS5ILnlhKTooR2EoYS5ILGIpLGM9S2EoYSkpO3JldHVybiBjfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gTGEoYSxiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSxOYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBNYShuZXcgSWEoYikpO3ZhJiZhLnByb3RvdHlwZSYmdmEoYywKYS5wcm90b3R5cGUpO3JldHVybiBjfSxPYT1mdW5jdGlvbigpe2Zvcih2YXIgYT1OdW1iZXIodGhpcyksYj1bXSxjPWE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliW2MtYV09YXJndW1lbnRzW2NdO3JldHVybiBifSxRYT1mdW5jdGlvbihhKXtyZXR1cm4gYX07LyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIFJhPXRoaXN8fHNlbGYsU2E9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuRnQ9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLm52PWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxoPTI7aDxhcmd1bWVudHMubGVuZ3RoO2grKylnW2gtMl09YXJndW1lbnRzW2hdO3JldHVybiBiLnByb3RvdHlwZVtlXS5hcHBseShkLGcpfX07dmFyIFRhPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5kYXRhPWJ9O3ZhciBVYT1mdW5jdGlvbigpe3RoaXMubWFwPXt9O3RoaXMuSD17fX07VWEucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXBbImR1c3QuIithXX07VWEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPSJkdXN0LiIrYTt0aGlzLkguaGFzT3duUHJvcGVydHkoYyl8fCh0aGlzLm1hcFtjXT1iKX07VWEucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkoImR1c3QuIithKX07VWEucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihhKXt2YXIgYj0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGIpfHxkZWxldGUgdGhpcy5tYXBbYl19Owp2YXIgVmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGEubWFwKWlmKGEubWFwLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1kLnN1YnN0cmluZyg1KTtzd2l0Y2goYil7Y2FzZSAxOmMucHVzaChlKTticmVhaztjYXNlIDI6Yy5wdXNoKGEubWFwW2RdKTticmVhaztjYXNlIDM6Yy5wdXNoKFtlLGEubWFwW2RdXSl9fXJldHVybiBjfTtVYS5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywxKX07VWEucHJvdG90eXBlLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMil9O1VhLnByb3RvdHlwZS5mYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDMpfTt2YXIgV2E9ZnVuY3Rpb24oKXt9O1dhLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe307dmFyIFhhPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT17fTt0aGlzLnByZWZpeD0iZ3RtLiJ9O2s9WGEucHJvdG90eXBlO2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldPWJ9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlW3RoaXMucHJlZml4K1N0cmluZyhhKV19O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlLmhhc093blByb3BlcnR5KHRoaXMucHJlZml4K1N0cmluZyhhKSl9O2suZGVsZXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucHJlZml4K1N0cmluZyhhKTtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eShiKT8oZGVsZXRlIHRoaXMudmFsdWVbYl0sITApOiExfTtrLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT17fX07CmsudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztyZXR1cm4gZnVuY3Rpb24gYygpe3ZhciBkLGUsZjtyZXR1cm4gTmEoYyxmdW5jdGlvbihnKXtzd2l0Y2goZy5IKXtjYXNlIDE6Zy52ZygyKSxlPWcuZmUoYS52YWx1ZSk7Y2FzZSA0OmlmKChkPWUuaG8oKSk9PW51bGwpe2cubmQoMik7YnJlYWt9aWYoIWEudmFsdWUuaGFzT3duUHJvcGVydHkoZCkpe2cubmQoNCk7YnJlYWt9Zj1RYTtyZXR1cm4gZy5hYyhhLnZhbHVlW2RdLDgpO2Nhc2UgODpmKGcuamEpO2cubmQoNCk7YnJlYWs7Y2FzZSAyOmcua2QoKSxnLmhlKDApfX0pfSgpfTtoYS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhYYS5wcm90b3R5cGUse3NpemU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlKS5sZW5ndGh9fX0pOwpmdW5jdGlvbiBZYSgpe3RyeXtpZihNYXApcmV0dXJuIG5ldyBNYXB9Y2F0Y2goYSl7fXJldHVybiBuZXcgWGF9O3ZhciBaYT1mdW5jdGlvbigpe3RoaXMudmFsdWVzPVtdfTtaYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWVzLmluZGV4T2YoYSk9PT0tMSYmdGhpcy52YWx1ZXMucHVzaChhKX07WmEucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaW5kZXhPZihhKT4tMX07dmFyICRhPWZ1bmN0aW9uKGEsYil7dGhpcy5mYT1hO3RoaXMucGFyZW50PWI7dGhpcy5SPXRoaXMuSz12b2lkIDA7dGhpcy5IYj0hMTt0aGlzLk49ZnVuY3Rpb24oZCxlLGYpe3JldHVybiBkLmFwcGx5KGUsZil9O3RoaXMuSD1ZYSgpO3ZhciBjO2E6e3RyeXtpZihTZXQpe2M9bmV3IFNldDticmVhayBhfX1jYXRjaChkKXt9Yz1uZXcgWmF9dGhpcy5aPWN9OyRhLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMSl9OyRhLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2FiKHRoaXMsYSxiLCEwKX07dmFyIGFiPWZ1bmN0aW9uKGEsYixjLGQpe2EuSGJ8fGEuWi5oYXMoYil8fChkJiZhLlouYWRkKGIpLGEuSC5zZXQoYixjKSl9O2s9JGEucHJvdG90eXBlOwprLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuSGJ8fCghdGhpcy5ILmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLlouaGFzKGEpfHx0aGlzLkguc2V0KGEsYikpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ILmhhcyhhKT90aGlzLkguZ2V0KGEpOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldChhKTp2b2lkIDB9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy5ILmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3ICRhKHRoaXMuZmEsdGhpcyk7dGhpcy5LJiZhLlFiKHRoaXMuSyk7YS5zZCh0aGlzLk4pO2EudWUodGhpcy5SKTtyZXR1cm4gYX07ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZhfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSz1hfTtrLmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307Cmsuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLlI9YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O3ZhciBiYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1FcnJvci5jYWxsKHRoaXMsYS5tZXNzYWdlKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnZvPWE7dGhpcy5Tbj1jPT09dm9pZCAwPyExOmM7dGhpcy5LPVtdO3RoaXMuSD1ifTt3YShiYixFcnJvcik7dmFyIGNiPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgYmI/YTpuZXcgYmIoYSx2b2lkIDAsITApfTt2YXIgZGI9WWEoKTtmdW5jdGlvbiBlYihhLGIpe2Zvcih2YXIgYyxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lJiYhKGM9ZmIoYSxlLnZhbHVlKSxjIGluc3RhbmNlb2YgVGEpO2U9ZC5uZXh0KCkpO3JldHVybiBjfWZ1bmN0aW9uIGZiKGEsYil7dHJ5e3ZhciBjPWJbMF0sZD1iLnNsaWNlKDEpLGU9U3RyaW5nKGMpLGY9ZGIuaGFzKGUpP2RiLmdldChlKTphLmdldChlKTtpZighZnx8dHlwZW9mIGYuaW52b2tlIT09ImZ1bmN0aW9uIil0aHJvdyBjYihFcnJvcigiQXR0ZW1wdGluZyB0byBleGVjdXRlIG5vbi1mdW5jdGlvbiAiK2JbMF0rIi4iKSk7cmV0dXJuIGYuYXBwbHkoYSxkKX1jYXRjaChoKXt2YXIgZz1hLmZvKCk7ZyYmZyhoLGIuY29udGV4dD97aWQ6YlswXSxsaW5lOmIuY29udGV4dC5saW5lfTpudWxsKTt0aHJvdyBoO319O3ZhciBnYj1mdW5jdGlvbigpe3RoaXMuSz1uZXcgV2E7dGhpcy5IPW5ldyAkYSh0aGlzLkspfTtrPWdiLnByb3RvdHlwZTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307ay5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTtrLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucmsoW2FdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKX07ay5yaz1mdW5jdGlvbigpe2Zvcih2YXIgYSxiPW0oT2EuYXBwbHkoMCxhcmd1bWVudHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhPWZiKHRoaXMuSCxjLnZhbHVlKTtyZXR1cm4gYX07ay5KcT1mdW5jdGlvbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyksYz10aGlzLkgud2IoKTtjLnVlKGEpO2Zvcih2YXIgZCxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZD1mYihjLGYudmFsdWUpO3JldHVybiBkfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5ILlphKCl9O3ZhciBoYj1mdW5jdGlvbihhLGIpe3RoaXMuUj1hO3RoaXMucGFyZW50PWI7dGhpcy5OPXRoaXMuSD12b2lkIDA7dGhpcy5IYj0hMTt0aGlzLks9ZnVuY3Rpb24oYyxkLGUpe3JldHVybiBjLmFwcGx5KGQsZSl9O3RoaXMudmFsdWVzPW5ldyBVYX07aGIucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCExKX07aGIucHJvdG90eXBlLlFoPWZ1bmN0aW9uKGEsYil7amIodGhpcyxhLGIsITApfTt2YXIgamI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIWEuSGIpaWYoZCl7dmFyIGU9YS52YWx1ZXM7ZS5zZXQoYixjKTtlLkhbImR1c3QuIitiXT0hMH1lbHNlIGEudmFsdWVzLnNldChiLGMpfTtrPWhiLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuSGJ8fCghdGhpcy52YWx1ZXMuaGFzKGEpJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKGEpP3RoaXMucGFyZW50LnNldChhLGIpOnRoaXMudmFsdWVzLnNldChhLGIpKX07CmsuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlcy5oYXMoYSk/dGhpcy52YWx1ZXMuZ2V0KGEpOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldChhKTp2b2lkIDB9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy52YWx1ZXMuaGFzKGEpfHwhKCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmhhcyhhKSl9O2sud2I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgaGIodGhpcy5SLHRoaXMpO3RoaXMuSCYmYS5RYih0aGlzLkgpO2Euc2QodGhpcy5LKTthLnVlKHRoaXMuTik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtrLmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ay5zZD1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5Qaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkhiPSEwfTtrLnVlPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLnhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07dmFyIGtiPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMTt0aGlzLmxhPW5ldyBVYX07az1rYi5wcm90b3R5cGU7ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O2Z1bmN0aW9uIGxiKCl7Zm9yKHZhciBhPW1iLGI9e30sYz0wO2M8YS5sZW5ndGg7KytjKWJbYVtjXV09YztyZXR1cm4gYn1mdW5jdGlvbiBuYigpe3ZhciBhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7YSs9YS50b0xvd2VyQ2FzZSgpKyIwMTIzNDU2Nzg5LV8iO3JldHVybiBhKyIuIn12YXIgbWIsb2I7ZnVuY3Rpb24gcGIoYSl7bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrPTMpe3ZhciBkPWMrMTxhLmxlbmd0aCxlPWMrMjxhLmxlbmd0aCxmPWEuY2hhckNvZGVBdChjKSxnPWQ/YS5jaGFyQ29kZUF0KGMrMSk6MCxoPWU/YS5jaGFyQ29kZUF0KGMrMik6MCxsPWY+PjIsbj0oZiYzKTw8NHxnPj40LHA9KGcmMTUpPDwyfGg+PjYscT1oJjYzO2V8fChxPTY0LGR8fChwPTY0KSk7Yi5wdXNoKG1iW2xdLG1iW25dLG1iW3BdLG1iW3FdKX1yZXR1cm4gYi5qb2luKCIiKX0KZnVuY3Rpb24gcWIoYSl7ZnVuY3Rpb24gYihsKXtmb3IoO2Q8YS5sZW5ndGg7KXt2YXIgbj1hLmNoYXJBdChkKyspLHA9b2Jbbl07aWYocCE9bnVsbClyZXR1cm4gcDtpZighL15bXHNceGEwXSokLy50ZXN0KG4pKXRocm93IEVycm9yKCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiAiK24pO31yZXR1cm4gbH1tYj1tYnx8bmIoKTtvYj1vYnx8bGIoKTtmb3IodmFyIGM9IiIsZD0wOzspe3ZhciBlPWIoLTEpLGY9YigwKSxnPWIoNjQpLGg9Yig2NCk7aWYoaD09PTY0JiZlPT09LTEpcmV0dXJuIGM7Yys9U3RyaW5nLmZyb21DaGFyQ29kZShlPDwyfGY+PjQpO2chPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZjw8NCYyNDB8Zz4+MiksaCE9PTY0JiYoYys9U3RyaW5nLmZyb21DaGFyQ29kZShnPDw2JjE5MnxoKSkpfX07dmFyIHJiPXt9O2Z1bmN0aW9uIHNiKGEsYil7dmFyIGM9cmJbYV07Y3x8KGM9cmJbYV09W10pO2NbYl09ITB9ZnVuY3Rpb24gdGIoKXtkZWxldGUgcmIuR0E0X0VWRU5UfWZ1bmN0aW9uIHViKCl7dmFyIGE9dmIuSC5zbGljZSgpO3JiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMPWF9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspZCU4PT09MCYmZD4wJiYoYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpLGM9MCksYVtkXSYmKGN8PTE8PGQlOCk7Yz4wJiZiLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7cmV0dXJuIHBiKGIuam9pbigiIikpLnJlcGxhY2UoL1wuKyQvLCIiKX07ZnVuY3Rpb24geGIoKXt9ZnVuY3Rpb24geWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiB6YihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn1mdW5jdGlvbiBBYihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmIWlzTmFOKGEpfWZ1bmN0aW9uIEJiKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6W2FdfWZ1bmN0aW9uIENiKGEsYil7aWYoYSYmQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2NdJiZiKGFbY10pKXJldHVybiBhW2NdfWZ1bmN0aW9uIERiKGEsYil7aWYoIUFiKGEpfHwhQWIoYil8fGE+YilhPTAsYj0yMTQ3NDgzNjQ3O3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGItYSsxKSthKX0KZnVuY3Rpb24gRWIoYSxiKXtmb3IodmFyIGM9bmV3IEZiLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnNldChhW2RdLCEwKTtmb3IodmFyIGU9MDtlPGIubGVuZ3RoO2UrKylpZihjLmdldChiW2VdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBHYihhLGIpe2Zvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiZiKGMsYVtjXSl9ZnVuY3Rpb24gSGIoYSl7cmV0dXJuISFhJiYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpPT09IltvYmplY3QgQXJndW1lbnRzXSJ8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCJjYWxsZWUiKSl9ZnVuY3Rpb24gSWIoYSl7cmV0dXJuIE1hdGgucm91bmQoTnVtYmVyKGEpKXx8MH1mdW5jdGlvbiBKYihhKXtyZXR1cm4iZmFsc2UiPT09U3RyaW5nKGEpLnRvTG93ZXJDYXNlKCk/ITE6ISFhfQpmdW5jdGlvbiBLYihhKXt2YXIgYj1bXTtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaChTdHJpbmcoYVtjXSkpO3JldHVybiBifWZ1bmN0aW9uIExiKGEpe3JldHVybiBhP2EucmVwbGFjZSgvXlxzK3xccyskL2csIiIpOiIifWZ1bmN0aW9uIE1iKCl7cmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkpfWZ1bmN0aW9uIE5iKCl7cmV0dXJuIE1iKCkuZ2V0VGltZSgpfXZhciBGYj1mdW5jdGlvbigpe3RoaXMucHJlZml4PSJndG0uIjt0aGlzLnZhbHVlcz17fX07RmIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVzW3RoaXMucHJlZml4K2FdPWJ9O0ZiLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzW3RoaXMucHJlZml4K2FdfTtGYi5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0KGEpIT09dm9pZCAwfTsKZnVuY3Rpb24gT2IoYSxiLGMpe3JldHVybiBhJiZhLmhhc093blByb3BlcnR5KGIpP2FbYl06Y31mdW5jdGlvbiBQYihhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj12b2lkIDA7dHJ5e2MoKX1jYXRjaChkKXt9fX19ZnVuY3Rpb24gUWIoYSxiKXtmb3IodmFyIGMgaW4gYiliLmhhc093blByb3BlcnR5KGMpJiYoYVtjXT1iW2NdKX1mdW5jdGlvbiBSYihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspYy5wdXNoKGFbZF0pLGMucHVzaC5hcHBseShjLGJbYVtkXV18fFtdKTtyZXR1cm4gY31mdW5jdGlvbiBTYihhLGIpe3JldHVybiBhLmxlbmd0aD49Yi5sZW5ndGgmJmEuc3Vic3RyaW5nKDAsYi5sZW5ndGgpPT09Yn1mdW5jdGlvbiBUYihhLGIpe3JldHVybiBhLmxlbmd0aD49Yi5sZW5ndGgmJmEuc3Vic3RyaW5nKGEubGVuZ3RoLWIubGVuZ3RoLGEubGVuZ3RoKT09PWJ9CmZ1bmN0aW9uIFViKGEsYixjKXtjPWN8fFtdO2Zvcih2YXIgZD1hLGU9MDtlPGIubGVuZ3RoLTE7ZSsrKXtpZighZC5oYXNPd25Qcm9wZXJ0eShiW2VdKSlyZXR1cm47ZD1kW2JbZV1dO2lmKGMuaW5kZXhPZihkKT49MClyZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gVmIoYSxiKXtmb3IodmFyIGM9e30sZD1jLGU9YS5zcGxpdCgiLiIpLGY9MDtmPGUubGVuZ3RoLTE7ZisrKWQ9ZFtlW2ZdXT17fTtkW2VbZS5sZW5ndGgtMV1dPWI7cmV0dXJuIGN9dmFyIFdiPS9eXHd7MSw5fSQvO2Z1bmN0aW9uIFliKGEsYil7YT1hfHx7fTtiPWJ8fCIsIjt2YXIgYz1bXTtHYihhLGZ1bmN0aW9uKGQsZSl7V2IudGVzdChkKSYmZSYmYy5wdXNoKGQpfSk7cmV0dXJuIGMuam9pbihiKX0KZnVuY3Rpb24gWmIoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YS5jaGFyQ29kZUF0KGMpO2Q8MTI4P2IucHVzaChkKTpkPDIwNDg/Yi5wdXNoKDE5MnxkPj42LDEyOHxkJjYzKTpkPDU1Mjk2fHxkPj01NzM0ND9iLnB1c2goMjI0fGQ+PjEyLDEyOHxkPj42JjYzLDEyOHxkJjYzKTooZD02NTUzNisoKGQmMTAyMyk8PDEwfGEuY2hhckNvZGVBdCgrK2MpJjEwMjMpLGIucHVzaCgyNDB8ZD4+MTgsMTI4fGQ+PjEyJjYzLDEyOHxkPj42JjYzLDEyOHxkJjYzKSl9cmV0dXJuIG5ldyBVaW50OEFycmF5KGIpfWZ1bmN0aW9uICRiKGEpe2lmKCFhKXJldHVybiBhO3ZhciBiPWE7dHJ5e2I9ZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKGQpe312YXIgYz1iLnNwbGl0KCIsIik7cmV0dXJuIGMubGVuZ3RoPT09MiYmY1swXT09PWNbMV0/Y1swXTphfQpmdW5jdGlvbiBhYyhhLGIsYyl7ZnVuY3Rpb24gZChuKXt2YXIgcD1uLnNwbGl0KCI9IilbMF07aWYoYS5pbmRleE9mKHApPDApcmV0dXJuIG47aWYoYyE9PXZvaWQgMClyZXR1cm4gcCsiPSIrY31mdW5jdGlvbiBlKG4pe3JldHVybiBuLnNwbGl0KCImIikubWFwKGQpLmZpbHRlcihmdW5jdGlvbihwKXtyZXR1cm4gcCE9PXZvaWQgMH0pLmpvaW4oIiYiKX12YXIgZj1iLmhyZWYuc3BsaXQoL1s/I10vKVswXSxnPWIuc2VhcmNoLGg9Yi5oYXNoO2dbMF09PT0iPyImJihnPWcuc3Vic3RyaW5nKDEpKTtoWzBdPT09IiMiJiYoaD1oLnN1YnN0cmluZygxKSk7Zz1lKGcpO2g9ZShoKTtnIT09IiImJihnPSI/IitnKTtoIT09IiImJihoPSIjIitoKTt2YXIgbD0iIitmK2craDtsW2wubGVuZ3RoLTFdPT09Ii8iJiYobD1sLnN1YnN0cmluZygwLGwubGVuZ3RoLTEpKTtyZXR1cm4gbH0KZnVuY3Rpb24gYmMoYSl7Zm9yKHZhciBiPTA7YjwzOysrYil0cnl7dmFyIGM9ZGVjb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UoL1wrL2csIiAiKTtpZihjPT09YSlicmVhazthPWN9Y2F0Y2goZCl7cmV0dXJuIiJ9cmV0dXJuIGF9ZnVuY3Rpb24gY2MoKXt2YXIgYT1BLGI7YTp7dmFyIGM9YS5jcnlwdG98fGEubXNDcnlwdG87aWYoYyYmYy5nZXRSYW5kb21WYWx1ZXMpdHJ5e3ZhciBkPW5ldyBVaW50OEFycmF5KDI1KTtjLmdldFJhbmRvbVZhbHVlcyhkKTtiPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhkKSkpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIik7YnJlYWsgYX1jYXRjaChlKXt9Yj12b2lkIDB9cmV0dXJuIGJ9Oy8qCgogQ29weXJpZ2h0IEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBkYz1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcyxlYztmdW5jdGlvbiBmYygpe3ZhciBhPW51bGw7aWYoIWRjKXJldHVybiBhO3RyeXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4gY307YT1kYy5jcmVhdGVQb2xpY3koImdvb2cjaHRtbCIse2NyZWF0ZUhUTUw6YixjcmVhdGVTY3JpcHQ6YixjcmVhdGVTY3JpcHRVUkw6Yn0pfWNhdGNoKGMpe31yZXR1cm4gYX1mdW5jdGlvbiBoYygpe2VjPT09dm9pZCAwJiYoZWM9ZmMoKSk7cmV0dXJuIGVjfTt2YXIgaWM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O2ljLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgrIiJ9O2Z1bmN0aW9uIGpjKGEpe3ZhciBiPWEsYz1oYygpLGQ9Yz9jLmNyZWF0ZVNjcmlwdFVSTChiKTpiO3JldHVybiBuZXcgaWMoZCl9ZnVuY3Rpb24ga2MoYSl7aWYoYSBpbnN0YW5jZW9mIGljKXJldHVybiBhLkg7dGhyb3cgRXJyb3IoIiIpO307dmFyIGxjPUFhKFsiIl0pLG1jPXphKFsiXHgwMCJdLFsiXFwwIl0pLG5jPXphKFsiXG4iXSxbIlxcbiJdKSxvYz16YShbIlx4MDAiXSxbIlxcdTAwMDAiXSk7ZnVuY3Rpb24gcGMoYSl7cmV0dXJuIGEudG9TdHJpbmcoKS5pbmRleE9mKCJgIik9PT0tMX1wYyhmdW5jdGlvbihhKXtyZXR1cm4gYShsYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobWMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG5jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShvYyl9KTt2YXIgcWM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O3FjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O3ZhciByYz1mdW5jdGlvbihhKXt0aGlzLkpzPWF9O2Z1bmN0aW9uIHNjKGEpe3JldHVybiBuZXcgcmMoZnVuY3Rpb24oYil7cmV0dXJuIGIuc3Vic3RyKDAsYS5sZW5ndGgrMSkudG9Mb3dlckNhc2UoKT09PWErIjoifSl9dmFyIHRjPVtzYygiZGF0YSIpLHNjKCJodHRwIiksc2MoImh0dHBzIiksc2MoIm1haWx0byIpLHNjKCJmdHAiKSxuZXcgcmMoZnVuY3Rpb24oYSl7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChhKX0pXTtmdW5jdGlvbiB1YyhhKXt2YXIgYjtiPWI9PT12b2lkIDA/dGM6YjtpZihhIGluc3RhbmNlb2YgcWMpcmV0dXJuIGE7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2Mpe3ZhciBkPWJbY107aWYoZCBpbnN0YW5jZW9mIHJjJiZkLkpzKGEpKXJldHVybiBuZXcgcWMoYSl9fXZhciB2Yz0vXlxzKig/IWphdmFzY3JpcHQ6KSg/OltcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pOwpmdW5jdGlvbiB3YyhhKXt2YXIgYjtpZihhIGluc3RhbmNlb2YgcWMpaWYoYSBpbnN0YW5jZW9mIHFjKWI9YS5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO2Vsc2UgYj12Yy50ZXN0KGEpP2E6dm9pZCAwO3JldHVybiBifTtmdW5jdGlvbiB4YyhhLGIpe3ZhciBjPXdjKGIpO2MhPT12b2lkIDAmJihhLmFjdGlvbj1jKX07ZnVuY3Rpb24geWMoYSxiKXt0aHJvdyBFcnJvcihiPT09dm9pZCAwPyJ1bmV4cGVjdGVkIHZhbHVlICIrYSsiISI6Yik7fTt2YXIgemM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O3pjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgrIiJ9O3ZhciBCYz1mdW5jdGlvbigpe3RoaXMuSD1BY1swXS50b0xvd2VyQ2FzZSgpfTtCYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtmdW5jdGlvbiBDYyhhLGIpe3ZhciBjPVtuZXcgQmNdO2lmKGMubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiIik7dmFyIGQ9Yy5tYXAoZnVuY3Rpb24oZil7dmFyIGc7aWYoZiBpbnN0YW5jZW9mIEJjKWc9Zi5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO3JldHVybiBnfSksZT1iLnRvTG93ZXJDYXNlKCk7aWYoZC5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZS5pbmRleE9mKGYpIT09MH0pKXRocm93IEVycm9yKCdBdHRyaWJ1dGUgIicrYisnIiBkb2VzIG5vdCBtYXRjaCBhbnkgb2YgdGhlIGFsbG93ZWQgcHJlZml4ZXMuJyk7YS5zZXRBdHRyaWJ1dGUoYiwidHJ1ZSIpfTt2YXIgRGM9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTsiQVJUSUNMRSBTRUNUSU9OIE5BViBBU0lERSBIMSBIMiBIMyBINCBINSBINiBIRUFERVIgRk9PVEVSIEFERFJFU1MgUCBIUiBQUkUgQkxPQ0tRVU9URSBPTCBVTCBMSCBMSSBETCBEVCBERCBGSUdVUkUgRklHQ0FQVElPTiBNQUlOIERJViBFTSBTVFJPTkcgU01BTEwgUyBDSVRFIFEgREZOIEFCQlIgUlVCWSBSQiBSVCBSVEMgUlAgREFUQSBUSU1FIENPREUgVkFSIFNBTVAgS0JEIFNVQiBTVVAgSSBCIFUgTUFSSyBCREkgQkRPIFNQQU4gQlIgV0JSIE5PQlIgSU5TIERFTCBQSUNUVVJFIFBBUkFNIFRSQUNLIE1BUCBUQUJMRSBDQVBUSU9OIENPTEdST1VQIENPTCBUQk9EWSBUSEVBRCBURk9PVCBUUiBURCBUSCBTRUxFQ1QgREFUQUxJU1QgT1BUR1JPVVAgT1BUSU9OIE9VVFBVVCBQUk9HUkVTUyBNRVRFUiBGSUVMRFNFVCBMRUdFTkQgREVUQUlMUyBTVU1NQVJZIE1FTlUgRElBTE9HIFNMT1QgQ0FOVkFTIEZPTlQgQ0VOVEVSIEFDUk9OWU0gQkFTRUZPTlQgQklHIERJUiBIR1JPVVAgU1RSSUtFIFRUIi5zcGxpdCgiICIpLmNvbmNhdChbIkJVVFRPTiIsCiJJTlBVVCJdKTtmdW5jdGlvbiBFYyhhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YX07dmFyIEE9d2luZG93LEZjPVtdLEdjPXdpbmRvdy5oaXN0b3J5LEI9ZG9jdW1lbnQsSGM9bmF2aWdhdG9yO2Z1bmN0aW9uIEljKCl7dmFyIGE7dHJ5e2E9SGMuc2VydmljZVdvcmtlcn1jYXRjaChiKXtyZXR1cm59cmV0dXJuIGF9dmFyIEpjPUIuY3VycmVudFNjcmlwdCxLYz1KYyYmSmMuc3JjO2Z1bmN0aW9uIE1jKGEsYil7dmFyIGM9QSxkPWNbYV07Y1thXT1kPT09dm9pZCAwP2I6ZDtyZXR1cm4gY1thXX1mdW5jdGlvbiBOYyhhKXtyZXR1cm4oSGMudXNlckFnZW50fHwiIikuaW5kZXhPZihhKSE9PS0xfWZ1bmN0aW9uIE9jKCl7cmV0dXJuIE5jKCJGaXJlZm94Iil8fE5jKCJGeGlPUyIpfWZ1bmN0aW9uIFBjKCl7cmV0dXJuKE5jKCJHU0EiKXx8TmMoIkdvb2dsZUFwcCIpKSYmKE5jKCJpUGhvbmUiKXx8TmMoImlQYWQiKSl9ZnVuY3Rpb24gUWMoKXtyZXR1cm4gTmMoIkVkZy8iKXx8TmMoIkVkZ0EvIil8fE5jKCJFZGdpT1MvIil9CnZhciBSYz17YXN5bmM6MSxub25jZToxLG9uZXJyb3I6MSxvbmxvYWQ6MSxzcmM6MSx0eXBlOjF9LFNjPXtoZWlnaHQ6MSxvbmxvYWQ6MSxzcmM6MSxzdHlsZToxLHdpZHRoOjF9O2Z1bmN0aW9uIFRjKGEsYixjKXtiJiZHYihiLGZ1bmN0aW9uKGQsZSl7ZD1kLnRvTG93ZXJDYXNlKCk7Yy5oYXNPd25Qcm9wZXJ0eShkKXx8YS5zZXRBdHRyaWJ1dGUoZCxlKX0pfQpmdW5jdGlvbiBVYyhhLGIsYyxkLGUpe3ZhciBmPUIuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VGMoZixkLFJjKTtmLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Zi5hc3luYz1kJiZkLmFzeW5jPT09ITE/ITE6ITA7dmFyIGc7Zz1qYyhFYyhhKSk7Zi5zcmM9a2MoZyk7dmFyIGgsbD1mLm93bmVyRG9jdW1lbnQ7bD1sPT09dm9pZCAwP2RvY3VtZW50Omw7dmFyIG4scCxxPShwPShuPWwpLnF1ZXJ5U2VsZWN0b3IpPT1udWxsP3ZvaWQgMDpwLmNhbGwobiwic2NyaXB0W25vbmNlXSIpOyhoPXE9PW51bGw/IiI6cS5ub25jZXx8cS5nZXRBdHRyaWJ1dGUoIm5vbmNlIil8fCIiKSYmZi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixoKTtiJiYoZi5vbmxvYWQ9Yik7YyYmKGYub25lcnJvcj1jKTtlP2UuYXBwZW5kQ2hpbGQoZik6VmMuQnMoZik7cmV0dXJuIGZ9CmZ1bmN0aW9uIFdjKCl7aWYoS2Mpe3ZhciBhPUtjLnRvTG93ZXJDYXNlKCk7aWYoYS5pbmRleE9mKCJodHRwczovLyIpPT09MClyZXR1cm4gMjtpZihhLmluZGV4T2YoImh0dHA6Ly8iKT09PTApcmV0dXJuIDN9cmV0dXJuIDF9ZnVuY3Rpb24gWGMoYSxiLGMsZCxlLGYpe2Y9Zj09PXZvaWQgMD8hMDpmO3ZhciBnPWUsaD0hMTtnfHwoZz1CLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGg9ITApO1RjKGcsYyxTYyk7ZCYmR2IoZCxmdW5jdGlvbihuLHApe2cuZGF0YXNldFtuXT1wfSk7ZiYmKGcuaGVpZ2h0PSIwIixnLndpZHRoPSIwIixnLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGcuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIik7YSE9PXZvaWQgMCYmKGcuc3JjPWEpO2lmKGgpe3ZhciBsPUIuYm9keSYmQi5ib2R5Lmxhc3RDaGlsZHx8Qi5ib2R5fHxCLmhlYWQ7bC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLGwpfWImJihnLm9ubG9hZD1iKTtyZXR1cm4gZ30KZnVuY3Rpb24gWmMoKXtyZXR1cm4gVmMuRXIuYXBwbHkoVmMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX1mdW5jdGlvbiAkYyhhLGIsYyxkKXthLmFkZEV2ZW50TGlzdGVuZXImJmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsISFkKX1mdW5jdGlvbiBhZChhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX1mdW5jdGlvbiBiZChhKXtBLnNldFRpbWVvdXQoYSwwKX1mdW5jdGlvbiBjZChhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkLGU9KGQ9QSkuc2V0SW50ZXJ2YWwuYXBwbHkoZCxbYSxiXS5jb25jYXQodyhjKSkpO0ZjLnB1c2goZSk7cmV0dXJuIGV9CmZ1bmN0aW9uIGRkKGEpe3ZhciBiPUE7eWIoYi5xdWV1ZU1pY3JvdGFzayk/Yi5xdWV1ZU1pY3JvdGFzayhhKTp5YihiLlByb21pc2UpJiZiLlByb21pc2UucmVzb2x2ZT9iLlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXthKCl9KS5jYXRjaChmdW5jdGlvbigpe30pOmJkKGEpfWZ1bmN0aW9uIGVkKGEsYil7cmV0dXJuIGEmJmImJmEuYXR0cmlidXRlcyYmYS5hdHRyaWJ1dGVzW2JdP2EuYXR0cmlidXRlc1tiXS52YWx1ZTpudWxsfWZ1bmN0aW9uIGZkKGEpe3ZhciBiPWEuaW5uZXJUZXh0fHxhLnRleHRDb250ZW50fHwiIjtiJiZiIT09IiAiJiYoYj1iLnJlcGxhY2UoL15bXHNceGEwXSsvZywiIiksYj1iLnJlcGxhY2UoL1tcc1x4YTBdKyQvZywiIikpO2ImJihiPWIucmVwbGFjZSgvKFx4YTArfFxzezIsfXxcbnxcclx0KS9nLCIgIikpO3JldHVybiBifQpmdW5jdGlvbiBnZChhKXt2YXIgYj1CLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGM9YixkLGU9RWMoIkE8ZGl2PiIrYSsiPC9kaXY+IiksZj1oYygpLGc9Zj9mLmNyZWF0ZUhUTUwoZSk6ZTtkPW5ldyB6YyhnKTtpZihjLm5vZGVUeXBlPT09MSYmL14oc2NyaXB0fHN0eWxlKSQvaS50ZXN0KGMudGFnTmFtZSkpdGhyb3cgRXJyb3IoIiIpO3ZhciBoO2lmKGQgaW5zdGFuY2VvZiB6YyloPWQuSDtlbHNlIHRocm93IEVycm9yKCIiKTtjLmlubmVySFRNTD1oO2I9Yi5sYXN0Q2hpbGQ7Zm9yKHZhciBsPVtdO2ImJmIuZmlyc3RDaGlsZDspbC5wdXNoKGIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGhkKGEsYixjKXtjPWN8fDEwMDtmb3IodmFyIGQ9e30sZT0wO2U8Yi5sZW5ndGg7ZSsrKWRbYltlXV09ITA7Zm9yKHZhciBmPWEsZz0wO2YmJmc8PWM7ZysrKXtpZihkW1N0cmluZyhmLnRhZ05hbWUpLnRvTG93ZXJDYXNlKCldKXJldHVybiBmO2Y9Zi5wYXJlbnRFbGVtZW50fXJldHVybiBudWxsfWZ1bmN0aW9uIGlkKGEsYixjKXt2YXIgZDt0cnl7ZD1IYy5zZW5kQmVhY29uJiZIYy5zZW5kQmVhY29uKGEpfWNhdGNoKGUpe3NiKCJUQUdHSU5HIiwxNSl9ZD9iPT1udWxsfHxiKCk6WmMoYSxiLGMpfWZ1bmN0aW9uIGpkKGEsYil7dHJ5e2lmKEhjLnNlbmRCZWFjb24hPT12b2lkIDApcmV0dXJuIEhjLnNlbmRCZWFjb24oYSxiKX1jYXRjaChjKXtzYigiVEFHR0lORyIsMTUpfXJldHVybiExfWZ1bmN0aW9uIGtkKCl7cmV0dXJuIEhjLnNlbmRCZWFjb24hPT12b2lkIDB9CnZhciBsZD17Y2FjaGU6Im5vLXN0b3JlIixjcmVkZW50aWFsczoiaW5jbHVkZSIsa2VlcGFsaXZlOiEwLG1ldGhvZDoiUE9TVCIsbW9kZToibm8tY29ycyIscmVkaXJlY3Q6ImZvbGxvdyJ9OwpmdW5jdGlvbiBtZChhLGIsYyxkLGUpe2lmKG5kKCkpe3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpO2ImJihmLmJvZHk9Yik7YyYmKGMuYXR0cmlidXRpb25SZXBvcnRpbmcmJihmLmF0dHJpYnV0aW9uUmVwb3J0aW5nPWMuYXR0cmlidXRpb25SZXBvcnRpbmcpLGMuYnJvd3NpbmdUb3BpY3MhPT12b2lkIDAmJihmLmJyb3dzaW5nVG9waWNzPWMuYnJvd3NpbmdUb3BpY3MpLGMuY3JlZGVudGlhbHMmJihmLmNyZWRlbnRpYWxzPWMuY3JlZGVudGlhbHMpLGMua2VlcGFsaXZlIT09dm9pZCAwJiYoZi5rZWVwYWxpdmU9Yy5rZWVwYWxpdmUpLGMubWV0aG9kJiYoZi5tZXRob2Q9Yy5tZXRob2QpLGMubW9kZSYmKGYubW9kZT1jLm1vZGUpKTt0cnl7dmFyIGc9QS5mZXRjaChhLGYpO2lmKGcpcmV0dXJuIGcudGhlbihmdW5jdGlvbihsKXtsJiYobC5va3x8bC5zdGF0dXM9PT0wKT9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtlPT0KbnVsbHx8ZSgpfSksITB9Y2F0Y2gobCl7fX1pZigoYz09bnVsbD8wOmMuUWcpfHwoYz09bnVsbD8wOmMuY3JlZGVudGlhbHMpJiZjLmNyZWRlbnRpYWxzIT09ImluY2x1ZGUiKXJldHVybiBlPT1udWxsfHxlKCksITE7aWYoYil7dmFyIGg9amQoYSxiKTtoP2Q9PW51bGx8fGQoKTplPT1udWxsfHxlKCk7cmV0dXJuIGh9VmMud3QoYSxkLGUpO3JldHVybiEwfWZ1bmN0aW9uIG5kKCl7cmV0dXJuIHliKEEuZmV0Y2gpfWZ1bmN0aW9uIG9kKGEsYil7dmFyIGM9YVtiXTtjJiZ0eXBlb2YgYy5hbmltVmFsPT09InN0cmluZyImJihjPWMuYW5pbVZhbCk7cmV0dXJuIGN9ZnVuY3Rpb24gcGQoKXt2YXIgYT1BLnBlcmZvcm1hbmNlO2lmKGEmJnliKGEubm93KSlyZXR1cm4gYS5ub3coKX0KZnVuY3Rpb24gcWQoKXt2YXIgYSxiPUEucGVyZm9ybWFuY2U7aWYoYiYmYi5nZXRFbnRyaWVzQnlUeXBlKXRyeXt2YXIgYz1iLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKTtjJiZjLmxlbmd0aD4wJiYoYT1jWzBdLnR5cGUpfWNhdGNoKGQpe3JldHVybiJlIn1pZighYSlyZXR1cm4idSI7c3dpdGNoKGEpe2Nhc2UgIm5hdmlnYXRlIjpyZXR1cm4ibiI7Y2FzZSAiYmFja19mb3J3YXJkIjpyZXR1cm4iaCI7Y2FzZSAicmVsb2FkIjpyZXR1cm4iciI7Y2FzZSAicHJlcmVuZGVyIjpyZXR1cm4icCI7ZGVmYXVsdDpyZXR1cm4ieCJ9fWZ1bmN0aW9uIHJkKCl7cmV0dXJuIEEucGVyZm9ybWFuY2V8fHZvaWQgMH1mdW5jdGlvbiBzZCgpe3ZhciBhPUEud2ViUGl4ZWxzTWFuYWdlcjtyZXR1cm4gYT9hLmNyZWF0ZVNob3BpZnlFeHRlbmQhPT12b2lkIDA6ITF9CnZhciBWYz17RXI6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IEltYWdlKDEsMSk7VGMoZSxkLHt9KTtlLm9ubG9hZD1mdW5jdGlvbigpe2Uub25sb2FkPW51bGw7YiYmYigpfTtlLm9uZXJyb3I9ZnVuY3Rpb24oKXtlLm9uZXJyb3I9bnVsbDtjJiZjKCl9O2Uuc3JjPWE7cmV0dXJuIGV9LEJzOmZ1bmN0aW9uKGEpe3ZhciBiPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdfHxCLmJvZHl8fEIuaGVhZDtiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYil9LHd0OmlkfTtmdW5jdGlvbiB0ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJiZ0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHVkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk9PT10aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHZkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl8fHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gd2QoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtyZXR1cm4gU3RyaW5nKGMpLmluZGV4T2YoU3RyaW5nKGQpKT4tMX1mdW5jdGlvbiB4ZChhLGIpe3ZhciBjPVN0cmluZyh0aGlzLmV2YWx1YXRlKGEpKSxkPVN0cmluZyh0aGlzLmV2YWx1YXRlKGIpKTtyZXR1cm4gYy5zdWJzdHJpbmcoMCxkLmxlbmd0aCk9PT1kfQpmdW5jdGlvbiB5ZChhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO3N3aXRjaChjKXtjYXNlICJwYWdlTG9jYXRpb24iOnZhciBlPUEubG9jYXRpb24uaHJlZjtkIGluc3RhbmNlb2Yga2ImJmQuZ2V0KCJzdHJpcFByb3RvY29sIikmJihlPWUucmVwbGFjZSgvXmh0dHBzPzpcL1wvLywiIikpO3JldHVybiBlfX07LyoKIGpRdWVyeSAoYykgMjAwNSwgMjAxMiBqUXVlcnkgRm91bmRhdGlvbiwgSW5jLiBqcXVlcnkub3JnL2xpY2Vuc2UuCiovCnZhciB6ZD0vXFtvYmplY3QgKEJvb2xlYW58TnVtYmVyfFN0cmluZ3xGdW5jdGlvbnxBcnJheXxEYXRlfFJlZ0V4cClcXS8sQWQ9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gU3RyaW5nKGEpO3ZhciBiPXpkLmV4ZWMoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdChhKSkpO3JldHVybiBiP2JbMV0udG9Mb3dlckNhc2UoKToib2JqZWN0In0sQmQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE9iamVjdChhKSxiKX0sQ2Q9ZnVuY3Rpb24oYSl7aWYoIWF8fEFkKGEpIT0ib2JqZWN0Inx8YS5ub2RlVHlwZXx8YT09YS53aW5kb3cpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFCZChhLCJjb25zdHJ1Y3RvciIpJiYhQmQoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChjKXtyZXR1cm4hMX1mb3IodmFyIGIgaW4gYSk7cmV0dXJuIGI9PT12b2lkIDB8fApCZChhLGIpfSxFZD1mdW5jdGlvbihhLGIpe3ZhciBjPWJ8fChBZChhKT09ImFycmF5Ij9bXTp7fSksZDtmb3IoZCBpbiBhKWlmKEJkKGEsZCkpe3ZhciBlPWFbZF07QWQoZSk9PSJhcnJheSI/KEFkKGNbZF0pIT0iYXJyYXkiJiYoY1tkXT1bXSksY1tkXT1FZChlLGNbZF0pKTpDZChlKT8oQ2QoY1tkXSl8fChjW2RdPXt9KSxjW2RdPUVkKGUsY1tkXSkpOmNbZF09ZX1yZXR1cm4gY307ZnVuY3Rpb24gRmQoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJmE+PTAmJmlzRmluaXRlKGEpJiZhJTE9PT0wfHx0eXBlb2YgYT09PSJzdHJpbmciJiZhWzBdIT09Ii0iJiZhPT09IiIrcGFyc2VJbnQoYSl9O3ZhciBHZD1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTt0aGlzLmxhPW5ldyBVYTt0aGlzLnZhbHVlcz1bXTt0aGlzLk5hPSExO2Zvcih2YXIgYiBpbiBhKWEuaGFzT3duUHJvcGVydHkoYikmJihGZChiKT90aGlzLnZhbHVlc1tOdW1iZXIoYildPWFbTnVtYmVyKGIpXTp0aGlzLmxhLnNldChiLGFbYl0pKX07az1HZC5wcm90b3R5cGU7ay50b1N0cmluZz1mdW5jdGlvbihhKXtpZihhJiZhLmluZGV4T2YodGhpcyk+PTApcmV0dXJuIiI7Zm9yKHZhciBiPVtdLGM9MDtjPHRoaXMudmFsdWVzLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMudmFsdWVzW2NdO2Q9PT1udWxsfHxkPT09dm9pZCAwP2IucHVzaCgiIik6ZCBpbnN0YW5jZW9mIEdkPyhhPWF8fFtdLGEucHVzaCh0aGlzKSxiLnB1c2goZC50b1N0cmluZyhhKSksYS5wb3AoKSk6Yi5wdXNoKFN0cmluZyhkKSl9cmV0dXJuIGIuam9pbigiLCIpfTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXtpZighdGhpcy5OYSlpZihhPT09Imxlbmd0aCIpe2lmKCFGZChiKSl0aHJvdyBjYihFcnJvcigiUmFuZ2VFcnJvcjogTGVuZ3RoIHByb3BlcnR5IG11c3QgYmUgYSB2YWxpZCBpbnRlZ2VyLiIpKTt0aGlzLnZhbHVlcy5sZW5ndGg9TnVtYmVyKGIpfWVsc2UgRmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXT1iOnRoaXMubGEuc2V0KGEsYil9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Imxlbmd0aCI/dGhpcy5sZW5ndGgoKTpGZChhKT90aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMubGEuZ2V0KGEpfTtrLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9O2suRmE9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5GYSgpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChTdHJpbmcoYikpO3JldHVybiBhfTsKay5oYz1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLmhjKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKHRoaXMudmFsdWVzW2JdKTtyZXR1cm4gYX07ay5mYz1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLmZjKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKFtTdHJpbmcoYiksdGhpcy52YWx1ZXNbYl1dKTtyZXR1cm4gYX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7RmQoYSk/ZGVsZXRlIHRoaXMudmFsdWVzW051bWJlcihhKV06dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2sucG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnBvcCgpfTtrLnB1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMucHVzaC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnNoaWZ0KCl9OwprLnNwbGljZT1mdW5jdGlvbihhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKTtyZXR1cm4gYj09PXZvaWQgMCYmYy5sZW5ndGg9PT0wP25ldyBHZCh0aGlzLnZhbHVlcy5zcGxpY2UoYSkpOm5ldyBHZCh0aGlzLnZhbHVlcy5zcGxpY2UuYXBwbHkodGhpcy52YWx1ZXMsW2EsYnx8MF0uY29uY2F0KHcoYykpKSl9O2sudW5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy51bnNoaWZ0LmFwcGx5KHRoaXMudmFsdWVzLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiBGZChhKSYmdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYSl8fHRoaXMubGEuaGFzKGEpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMDtPYmplY3QuZnJlZXplKHRoaXMudmFsdWVzKX07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTsKZnVuY3Rpb24gSGQoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoKCk7YysrKWEuaGFzKGMpJiYoYltjXT1hLmdldChjKSk7cmV0dXJuIGJ9O3ZhciBJZD1mdW5jdGlvbihhLGIpe3RoaXMuZnVuY3Rpb25OYW1lPWE7dGhpcy5pZT1iO3RoaXMubGE9bmV3IFVhO3RoaXMuTmE9ITF9O2s9SWQucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bmN0aW9uTmFtZX07ay5nZXRLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBHZCh0aGlzLkZhKCkpfTtrLmludm9rZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pZS5jYWxsLmFwcGx5KHRoaXMuaWUsW25ldyBKZCh0aGlzLGEpXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2suYXBwbHk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pZS5hcHBseShuZXcgSmQodGhpcyxhKSxiKX07ay5OYz1mdW5jdGlvbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7dHJ5e3JldHVybiB0aGlzLmludm9rZS5hcHBseSh0aGlzLFthXS5jb25jYXQodyhiKSkpfWNhdGNoKGMpe319OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07dmFyIEtkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKEtkLElkKTt2YXIgTGQ9ZnVuY3Rpb24oYSxiKXtJZC5jYWxsKHRoaXMsYSxiKX07d2EoTGQsSWQpO3ZhciBKZD1mdW5jdGlvbihhLGIpe3RoaXMuaWU9YTt0aGlzLlQ9Yn07CkpkLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLlQ7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/ZmIoYixhKTphfTtKZC5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmllLmdldE5hbWUoKX07SmQucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVC5qZSgpfTt2YXIgTWQ9ZnVuY3Rpb24oKXt0aGlzLm1hcD1uZXcgTWFwfTtNZC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5tYXAuc2V0KGEsYil9O01kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmdldChhKX07dmFyIE5kPWZ1bmN0aW9uKCl7dGhpcy5rZXlzPVtdO3RoaXMudmFsdWVzPVtdfTtOZC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5rZXlzLnB1c2goYSk7dGhpcy52YWx1ZXMucHVzaChiKX07TmQucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmtleXMuaW5kZXhPZihhKTtpZihiPi0xKXJldHVybiB0aGlzLnZhbHVlc1tiXX07ZnVuY3Rpb24gT2QoKXt0cnl7cmV0dXJuIE1hcD9uZXcgTWQ6bmV3IE5kfWNhdGNoKGEpe3JldHVybiBuZXcgTmR9fTt2YXIgUGQ9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIFBkKXJldHVybiBhO3ZhciBiO2E6aWYoYT09dm9pZCAwfHxBcnJheS5pc0FycmF5KGEpfHxDZChhKSliPSEwO2Vsc2V7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAiZnVuY3Rpb24iOmI9ITA7YnJlYWsgYX1iPSExfWlmKGIpdGhyb3cgRXJyb3IoIlR5cGUgb2YgZ2l2ZW4gdmFsdWUgaGFzIGFuIGVxdWl2YWxlbnQgUGl4aWUgdHlwZS4iKTt0aGlzLnZhbHVlPWF9O1BkLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTtQZC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpfTt2YXIgU2Q9ZnVuY3Rpb24oYSl7dGhpcy5wcm9taXNlPWE7dGhpcy5OYT0hMTt0aGlzLmxhPW5ldyBVYTt0aGlzLmxhLnNldCgidGhlbiIsUmQodGhpcykpO3RoaXMubGEuc2V0KCJjYXRjaCIsUmQodGhpcywhMCkpO3RoaXMubGEuc2V0KCJmaW5hbGx5IixSZCh0aGlzLCExLCEwKSl9O2s9U2QucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTsKdmFyIFJkPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKGQsZSl7YiYmKGU9ZCxkPXZvaWQgMCk7YyYmKGU9ZCk7ZCBpbnN0YW5jZW9mIEtkfHwoZD12b2lkIDApO2UgaW5zdGFuY2VvZiBLZHx8KGU9dm9pZCAwKTt2YXIgZj10aGlzLlQud2IoKSxnPWZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXt0cnl7cmV0dXJuIGM/KGwuaW52b2tlKGYpLGEucHJvbWlzZSk6bC5pbnZva2UoZixuKX1jYXRjaChwKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QocCBpbnN0YW5jZW9mIEVycm9yP25ldyBQZChwKTpTdHJpbmcocCkpfX19LGg9YS5wcm9taXNlLnRoZW4oZCYmZyhkKSxlJiZnKGUpKTtyZXR1cm4gbmV3IFNkKGgpfSl9O1NkLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O1NkLnByb3RvdHlwZS5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBUZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsPWcuRmEoKSxuPTA7bjxsLmxlbmd0aDtuKyspaFtsW25dXT1mKGcuZ2V0KGxbbl0pKX0sZj1mdW5jdGlvbihnKXtpZihnPT09bnVsbHx8Zz09PXZvaWQgMClyZXR1cm4gZzt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKGcgaW5zdGFuY2VvZiBHZCl7dmFyIGw9W107ZC5zZXQoZyxsKTtmb3IodmFyIG49Zy5GYSgpLHA9MDtwPG4ubGVuZ3RoO3ArKylsW25bcF1dPWYoZy5nZXQobltwXSkpO3JldHVybiBsfWlmKGcgaW5zdGFuY2VvZiBTZClyZXR1cm4gZy5wcm9taXNlLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIFRkKHUsYiwxKX0sZnVuY3Rpb24odSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFRkKHUsYiwxKSl9KTtpZihnIGluc3RhbmNlb2Yga2Ipe3ZhciBxPXt9O2Quc2V0KGcscSk7ZShnLHEpO3JldHVybiBxfWlmKGcgaW5zdGFuY2VvZiBLZCl7dmFyIHI9ZnVuY3Rpb24oKXtmb3IodmFyIHU9CltdLHY9MDt2PGFyZ3VtZW50cy5sZW5ndGg7disrKXVbdl09VWQoYXJndW1lbnRzW3ZdLGIsYyk7dmFyIHg9bmV3IGhiKGI/Yi5qZSgpOm5ldyBXYSk7YiYmeC51ZShiLnhiKCkpO3JldHVybiBmKGcuYXBwbHkoeCx1KSl9O2Quc2V0KGcscik7ZShnLHIpO3JldHVybiByfXZhciB0PSExO3N3aXRjaChjKXtjYXNlIDE6dD0hMDticmVhaztjYXNlIDI6dD0hMTticmVhaztjYXNlIDM6dD0hMTticmVhaztkZWZhdWx0On1pZihnIGluc3RhbmNlb2YgUGQmJnQpcmV0dXJuIGcuZ2V0VmFsdWUoKTtzd2l0Y2godHlwZW9mIGcpe2Nhc2UgImJvb2xlYW4iOmNhc2UgIm51bWJlciI6Y2FzZSAic3RyaW5nIjpjYXNlICJ1bmRlZmluZWQiOnJldHVybiBnO2Nhc2UgIm9iamVjdCI6aWYoZz09PQpudWxsKXJldHVybiBudWxsfX07cmV0dXJuIGYoYSl9CmZ1bmN0aW9uIFVkKGEsYixjKXt2YXIgZD1PZCgpLGU9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIGwgaW4gZylnLmhhc093blByb3BlcnR5KGwpJiZoLnNldChsLGYoZ1tsXSkpfSxmPWZ1bmN0aW9uKGcpe3ZhciBoPWQuZ2V0KGcpO2lmKGgpcmV0dXJuIGg7aWYoQXJyYXkuaXNBcnJheShnKXx8SGIoZykpe3ZhciBsPW5ldyBHZDtkLnNldChnLGwpO2Zvcih2YXIgbiBpbiBnKWcuaGFzT3duUHJvcGVydHkobikmJmwuc2V0KG4sZihnW25dKSk7cmV0dXJuIGx9aWYoQ2QoZykpe3ZhciBwPW5ldyBrYjtkLnNldChnLHApO2UoZyxwKTtyZXR1cm4gcH1pZih0eXBlb2YgZz09PSJmdW5jdGlvbiIpe3ZhciBxPW5ldyBLZCgiIixmdW5jdGlvbigpe2Zvcih2YXIgdT1PYS5hcHBseSgwLGFyZ3VtZW50cyksdj1bXSx4PTA7eDx1Lmxlbmd0aDt4Kyspdlt4XT1UZCh0aGlzLmV2YWx1YXRlKHVbeF0pLGIsYyk7cmV0dXJuIGYodGhpcy5ULlBqKCkoZyxnLHYpKX0pO2Quc2V0KGcscSk7ZShnLHEpO3JldHVybiBxfXZhciByPXR5cGVvZiBnO2lmKGc9PT1udWxsfHxyPT09InN0cmluZyJ8fHI9PT0ibnVtYmVyInx8cj09PSJib29sZWFuIilyZXR1cm4gZzt2YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyE9PXZvaWQgMCYmdClyZXR1cm4gbmV3IFBkKGcpfTtyZXR1cm4gZihhKX07dmFyIFZkPXtzdXBwb3J0ZWRNZXRob2RzOiJjb25jYXQgZXZlcnkgZmlsdGVyIGZvckVhY2ggaGFzT3duUHJvcGVydHkgaW5kZXhPZiBqb2luIGxhc3RJbmRleE9mIG1hcCBwb3AgcHVzaCByZWR1Y2UgcmVkdWNlUmlnaHQgcmV2ZXJzZSBzaGlmdCBzbGljZSBzb21lIHNvcnQgc3BsaWNlIHVuc2hpZnQgdG9TdHJpbmciLnNwbGl0KCIgIiksY29uY2F0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLmxlbmd0aCgpO2MrKyliLnB1c2godGhpcy5nZXQoYykpO2Zvcih2YXIgZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspaWYoYXJndW1lbnRzW2RdaW5zdGFuY2VvZiBHZClmb3IodmFyIGU9YXJndW1lbnRzW2RdLGY9MDtmPGUubGVuZ3RoKCk7ZisrKWIucHVzaChlLmdldChmKSk7ZWxzZSBiLnB1c2goYXJndW1lbnRzW2RdKTtyZXR1cm4gbmV3IEdkKGIpfSxldmVyeTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJgpkPGM7ZCsrKWlmKHRoaXMuaGFzKGQpJiYhYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiExO3JldHVybiEwfSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSYmZC5wdXNoKHRoaXMuZ2V0KGUpKTtyZXR1cm4gbmV3IEdkKGQpfSxmb3JFYWNoOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKyl0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpfSxoYXNPd25Qcm9wZXJ0eTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmhhcyhiKX0saW5kZXhPZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlPWM9PT12b2lkIDA/MDpOdW1iZXIoYyk7ZTwwJiYoZT1NYXRoLm1heChkK2UsMCkpO2Zvcih2YXIgZj0KZTtmPGQ7ZisrKWlmKHRoaXMuaGFzKGYpJiZ0aGlzLmdldChmKT09PWIpcmV0dXJuIGY7cmV0dXJuLTF9LGpvaW46ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8dGhpcy5sZW5ndGgoKTtkKyspYy5wdXNoKHRoaXMuZ2V0KGQpKTtyZXR1cm4gYy5qb2luKGIpfSxsYXN0SW5kZXhPZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlPWQtMTtjIT09dm9pZCAwJiYoZT1jPDA/ZCtjOk1hdGgubWluKGMsZSkpO2Zvcih2YXIgZj1lO2Y+PTA7Zi0tKWlmKHRoaXMuaGFzKGYpJiZ0aGlzLmdldChmKT09PWIpcmV0dXJuIGY7cmV0dXJuLTF9LG1hcDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9W10sZT0wO2U8dGhpcy5sZW5ndGgoKSYmZTxjO2UrKyl0aGlzLmhhcyhlKSYmKGRbZV09Yi5pbnZva2UoYSx0aGlzLmdldChlKSxlLHRoaXMpKTtyZXR1cm4gbmV3IEdkKGQpfSxwb3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3AoKX0scHVzaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoLmFwcGx5KHRoaXMsCncoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSl9LHJlZHVjZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlLGY9MDtpZihjIT09dm9pZCAwKWU9YztlbHNle2lmKGQ9PT0wKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO2Zvcih2YXIgZz0wO2c8ZDtnKyspaWYodGhpcy5oYXMoZykpe2U9dGhpcy5nZXQoZyk7Zj1nKzE7YnJlYWt9aWYoZz09PWQpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlIG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7fWZvcih2YXIgaD1mO2g8ZDtoKyspdGhpcy5oYXMoaCkmJihlPWIuaW52b2tlKGEsZSx0aGlzLmdldChoKSxoLHRoaXMpKTtyZXR1cm4gZX0scmVkdWNlUmlnaHQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPWQtMTtpZihjIT09dm9pZCAwKWU9YztlbHNle2lmKGQ9PT0wKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZVJpZ2h0IG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7CmZvcih2YXIgZz0xO2c8PWQ7ZysrKWlmKHRoaXMuaGFzKGQtZykpe2U9dGhpcy5nZXQoZC1nKTtmPWQtKGcrMSk7YnJlYWt9aWYoZz5kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZVJpZ2h0IG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7fWZvcih2YXIgaD1mO2g+PTA7aC0tKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJldmVyc2U6ZnVuY3Rpb24oKXtmb3IodmFyIGE9SGQodGhpcyksYj1hLmxlbmd0aC0xLGM9MDtiPj0wO2ItLSxjKyspYS5oYXNPd25Qcm9wZXJ0eShiKT90aGlzLnNldChjLGFbYl0pOnRoaXMucmVtb3ZlKGMpO3JldHVybiB0aGlzfSxzaGlmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoaWZ0KCl9LHNsaWNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpO2I9PT12b2lkIDAmJihiPTApO2I9YjwwP01hdGgubWF4KGQrYiwwKTpNYXRoLm1pbihiLGQpO2M9Yz09PQp2b2lkIDA/ZDpjPDA/TWF0aC5tYXgoZCtjLDApOk1hdGgubWluKGMsZCk7Yz1NYXRoLm1heChiLGMpO2Zvcih2YXIgZT1bXSxmPWI7ZjxjO2YrKyllLnB1c2godGhpcy5nZXQoZikpO3JldHVybiBuZXcgR2QoZSl9LHNvbWU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiZkPGM7ZCsrKWlmKHRoaXMuaGFzKGQpJiZiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcykpcmV0dXJuITA7cmV0dXJuITF9LHNvcnQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1IZCh0aGlzKTtiPT09dm9pZCAwP2Muc29ydCgpOmMuc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBOdW1iZXIoYi5pbnZva2UoYSxlLGYpKX0pO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWMuaGFzT3duUHJvcGVydHkoZCk/dGhpcy5zZXQoZCxjW2RdKTp0aGlzLnJlbW92ZShkKTtyZXR1cm4gdGhpc30sc3BsaWNlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5zcGxpY2UuYXBwbHkodGhpcywKW2IsY10uY29uY2F0KHcoT2EuYXBwbHkoMyxhcmd1bWVudHMpKSkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCl9LHVuc2hpZnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudW5zaGlmdC5hcHBseSh0aGlzLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSl9fTt2YXIgV2Q9e2NoYXJBdDoxLGNvbmNhdDoxLGluZGV4T2Y6MSxsYXN0SW5kZXhPZjoxLG1hdGNoOjEscmVwbGFjZToxLHNlYXJjaDoxLHNsaWNlOjEsc3BsaXQ6MSxzdWJzdHJpbmc6MSx0b0xvd2VyQ2FzZToxLHRvTG9jYWxlTG93ZXJDYXNlOjEsdG9TdHJpbmc6MSx0b1VwcGVyQ2FzZToxLHRvTG9jYWxlVXBwZXJDYXNlOjEsdHJpbToxfSxYZD1uZXcgVGEoImJyZWFrIiksWWQ9bmV3IFRhKCJjb250aW51ZSIpO2Z1bmN0aW9uIFpkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkrdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiAkZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJiZ0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBhZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCEoZiBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEFwcGx5IGluc3RydWN0aW9uLiIpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHJlYWQgcHJvcGVydHkgIitlKyIgb2YgIitkKyIuIikpO3ZhciBnPXR5cGVvZiBkPT09Im51bWJlciI7aWYodHlwZW9mIGQ9PT0iYm9vbGVhbiJ8fGcpe2lmKGU9PT0idG9TdHJpbmciKXtpZihnJiZmLmxlbmd0aCgpKXt2YXIgaD1UZChmLmdldCgwKSk7dHJ5e3JldHVybiBkLnRvU3RyaW5nKGgpfWNhdGNoKHUpe319cmV0dXJuIGQudG9TdHJpbmcoKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2QrIi4iK2UrIiBpcyBub3QgYSBmdW5jdGlvbi4iKSk7fWlmKHR5cGVvZiBkPT09CiJzdHJpbmciKXtpZihXZC5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGw9VGQoZix2b2lkIDAsMSk7cmV0dXJuIFVkKGRbZV0uYXBwbHkoZCxsKSx0aGlzLlQpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihkIGluc3RhbmNlb2YgR2Qpe2lmKGQuaGFzKGUpKXt2YXIgbj1kLmdldChTdHJpbmcoZSkpO2lmKG4gaW5zdGFuY2VvZiBLZCl7dmFyIHA9SGQoZik7cmV0dXJuIG4uYXBwbHkodGhpcy5ULHApfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihWZC5zdXBwb3J0ZWRNZXRob2RzLmluZGV4T2YoZSk+PTApe3ZhciBxPUhkKGYpO3JldHVybiBWZFtlXS5jYWxsLmFwcGx5KFZkW2VdLFtkLHRoaXMuVF0uY29uY2F0KHcocSkpKX19aWYoZCBpbnN0YW5jZW9mIEtkfHxkIGluc3RhbmNlb2Yga2J8fGQgaW5zdGFuY2VvZiBTZCl7aWYoZC5oYXMoZSkpe3ZhciByPWQuZ2V0KGUpOwppZihyIGluc3RhbmNlb2YgS2Qpe3ZhciB0PUhkKGYpO3JldHVybiByLmFwcGx5KHRoaXMuVCx0KX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZT09PSJ0b1N0cmluZyIpcmV0dXJuIGQgaW5zdGFuY2VvZiBLZD9kLmdldE5hbWUoKTpkLnRvU3RyaW5nKCk7aWYoZT09PSJoYXNPd25Qcm9wZXJ0eSIpcmV0dXJuIGQuaGFzKGYuZ2V0KDApKX1pZihkIGluc3RhbmNlb2YgUGQmJmU9PT0idG9TdHJpbmciKXJldHVybiBkLnRvU3RyaW5nKCk7dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogT2JqZWN0IGhhcyBubyAnIitlKyInIHByb3BlcnR5LiIpKTt9CmZ1bmN0aW9uIGJlKGEsYil7YT10aGlzLmV2YWx1YXRlKGEpO2lmKHR5cGVvZiBhIT09InN0cmluZyIpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IG5hbWUgZ2l2ZW4gZm9yIGFzc2lnbm1lbnQuIik7dmFyIGM9dGhpcy5UO2lmKCFjLmhhcyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhc3NpZ24gdG8gdW5kZWZpbmVkIHZhbHVlICIrYik7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtjLnNldChhLGQpO3JldHVybiBkfWZ1bmN0aW9uIGNlKCl7dmFyIGE9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGI9dGhpcy5ULndiKCksYz1lYihiLGEpO2lmKGMgaW5zdGFuY2VvZiBUYSlyZXR1cm4gY31mdW5jdGlvbiBkZSgpe3JldHVybiBYZH1mdW5jdGlvbiBlZShhKXtmb3IodmFyIGI9dGhpcy5ldmFsdWF0ZShhKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMuZXZhbHVhdGUoYltjXSk7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfX0KZnVuY3Rpb24gZmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1hcmd1bWVudHNbYl07aWYodHlwZW9mIGM9PT0ic3RyaW5nIil7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYisxXSk7YS5RaChjLGQpfX19ZnVuY3Rpb24gZ2UoKXtyZXR1cm4gWWR9ZnVuY3Rpb24gaGUoYSxiKXtyZXR1cm4gbmV3IFRhKGEsdGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaWUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtkPW5ldyBHZDtmb3IodmFyIGU9dGhpcy5ldmFsdWF0ZShiKSxmPTA7ZjxlLmxlbmd0aDtmKyspZC5wdXNoKGVbZl0pO3ZhciBnPVs1MSxhLGRdLmNvbmNhdCh3KGMpKTt0aGlzLlQuYWRkKGEsdGhpcy5ldmFsdWF0ZShnKSl9ZnVuY3Rpb24gamUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS90aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBrZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpLGU9YyBpbnN0YW5jZW9mIFBkLGY9ZCBpbnN0YW5jZW9mIFBkO3JldHVybiBlfHxmP2UmJmY/Yy5nZXRWYWx1ZSgpPT09ZC5nZXRWYWx1ZSgpOiExOmM9PWR9ZnVuY3Rpb24gbGUoKXtmb3IodmFyIGEsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspYT10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSk7cmV0dXJuIGF9ZnVuY3Rpb24gbWUoYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxiKCk7ZSsrKXt2YXIgZj1hKGMoZSkpLGc9ZWIoZixkKTtpZihnIGluc3RhbmNlb2YgVGEpe2lmKGcudHlwZT09PSJicmVhayIpYnJlYWs7aWYoZy50eXBlPT09InJldHVybiIpcmV0dXJuIGd9fX0KZnVuY3Rpb24gbmUoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGYpe3JldHVybiBmfSxjKTtpZihiIGluc3RhbmNlb2Yga2J8fGIgaW5zdGFuY2VvZiBTZHx8YiBpbnN0YW5jZW9mIEdkfHxiIGluc3RhbmNlb2YgS2Qpe3ZhciBkPWIuRmEoKSxlPWQubGVuZ3RoO3JldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGZ1bmN0aW9uKGYpe3JldHVybiBkW2ZdfSxjKX19ZnVuY3Rpb24gb2UoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gcGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiBxZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiByZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXtnLnNldChkLGgpO3JldHVybiBnfSxlLGYpfQpmdW5jdGlvbiB0ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5RaChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHVlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLmFkZChkLGgpO3JldHVybiBsfSxlLGYpfQpmdW5jdGlvbiBzZShhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sZnVuY3Rpb24oZCl7cmV0dXJuIGJbZF19LGMpO2lmKGIgaW5zdGFuY2VvZiBHZClyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aCgpfSxmdW5jdGlvbihkKXtyZXR1cm4gYi5nZXQoZCl9LGMpO3Rocm93IGNiKEVycm9yKCJUaGUgdmFsdWUgaXMgbm90IGl0ZXJhYmxlLiIpKTt9CmZ1bmN0aW9uIHZlKGEsYixjLGQpe2Z1bmN0aW9uIGUocSxyKXtmb3IodmFyIHQ9MDt0PGYubGVuZ3RoKCk7dCsrKXt2YXIgdT1mLmdldCh0KTtyLmFkZCh1LHEuZ2V0KHUpKX19dmFyIGY9dGhpcy5ldmFsdWF0ZShhKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIlR5cGVFcnJvcjogTm9uLUxpc3QgYXJndW1lbnQgZ2l2ZW4gdG8gRm9yTGV0IGluc3RydWN0aW9uLiIpO3ZhciBnPXRoaXMuVCxoPXRoaXMuZXZhbHVhdGUoZCksbD1nLndiKCk7Zm9yKGUoZyxsKTtmYihsLGIpOyl7dmFyIG49ZWIobCxoKTtpZihuIGluc3RhbmNlb2YgVGEpe2lmKG4udHlwZT09PSJicmVhayIpYnJlYWs7aWYobi50eXBlPT09InJldHVybiIpcmV0dXJuIG59dmFyIHA9Zy53YigpO2UobCxwKTtmYihwLGMpO2w9cH19CmZ1bmN0aW9uIHdlKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9dGhpcy5ULGU9dGhpcy5ldmFsdWF0ZShiKTtpZighKGUgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBub24tTGlzdCB2YWx1ZSBnaXZlbiBmb3IgRm4gYXJndW1lbnQgbmFtZXMuIik7cmV0dXJuIG5ldyBLZChhLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGc9ZC53YigpO2cueGIoKT09PXZvaWQgMCYmZy51ZSh0aGlzLlQueGIoKSk7Zm9yKHZhciBoPVtdLGw9MDtsPGYubGVuZ3RoO2wrKyl7dmFyIG49dGhpcy5ldmFsdWF0ZShmW2xdKTtoW2xdPW59Zm9yKHZhciBwPWUuZ2V0KCJsZW5ndGgiKSxxPTA7cTxwO3ErKylxPGgubGVuZ3RoP2cuYWRkKGUuZ2V0KHEpLGhbcV0pOmcuYWRkKGUuZ2V0KHEpLHZvaWQgMCk7Zy5hZGQoImFyZ3VtZW50cyIsbmV3IEdkKGgpKTt2YXIgcj1lYihnLGMpO2lmKHIgaW5zdGFuY2VvZiBUYSlyZXR1cm4gci50eXBlPT09CiJyZXR1cm4iP3IuZGF0YTpyfX0oKSl9ZnVuY3Rpb24geGUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKSxjPXRoaXMuVDtpZih5ZSYmIWMuaGFzKGIpKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihiKyIgaXMgbm90IGRlZmluZWQuIik7cmV0dXJuIGMuZ2V0KGIpfQpmdW5jdGlvbiB6ZShhLGIpe3ZhciBjLGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYik7aWYoZD09PXZvaWQgMHx8ZD09PW51bGwpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiAiK2QrIiAocmVhZGluZyAnIitlKyInKSIpKTtpZihkIGluc3RhbmNlb2Yga2J8fGQgaW5zdGFuY2VvZiBTZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2YgS2QpYz1kLmdldChlKTtlbHNlIGlmKHR5cGVvZiBkPT09InN0cmluZyIpZT09PSJsZW5ndGgiP2M9ZC5sZW5ndGg6RmQoZSkmJihjPWRbZV0pO2Vsc2UgaWYoZCBpbnN0YW5jZW9mIFBkKXJldHVybjtyZXR1cm4gY31mdW5jdGlvbiBBZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gQmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT49dGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gQ2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtjIGluc3RhbmNlb2YgUGQmJihjPWMuZ2V0VmFsdWUoKSk7ZCBpbnN0YW5jZW9mIFBkJiYoZD1kLmdldFZhbHVlKCkpO3JldHVybiBjPT09ZH1mdW5jdGlvbiBEZShhLGIpe3JldHVybiFDZS5jYWxsKHRoaXMsYSxiKX1mdW5jdGlvbiBFZShhLGIsYyl7dmFyIGQ9W107dGhpcy5ldmFsdWF0ZShhKT9kPXRoaXMuZXZhbHVhdGUoYik6YyYmKGQ9dGhpcy5ldmFsdWF0ZShjKSk7dmFyIGU9ZWIodGhpcy5ULGQpO2lmKGUgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZX12YXIgeWU9ITE7CmZ1bmN0aW9uIEZlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBHZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPD10aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEhlKCl7Zm9yKHZhciBhPW5ldyBHZCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl7dmFyIGM9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO2EucHVzaChjKX1yZXR1cm4gYX1mdW5jdGlvbiBJZSgpe2Zvcih2YXIgYT1uZXcga2IsYj0wO2I8YXJndW1lbnRzLmxlbmd0aC0xO2IrPTIpe3ZhciBjPVN0cmluZyh0aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSkpLGQ9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYisxXSk7YS5zZXQoYyxkKX1yZXR1cm4gYX1mdW5jdGlvbiBKZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIEtlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkqdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBMZShhKXtyZXR1cm4tdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBNZShhKXtyZXR1cm4hdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBOZShhLGIpe3JldHVybiFrZS5jYWxsKHRoaXMsYSxiKX1mdW5jdGlvbiBPZSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIFBlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl8fHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gUWUoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpO3RoaXMuZXZhbHVhdGUoYik7cmV0dXJuIGN9ZnVuY3Rpb24gUmUoYSl7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gU2UoKXtyZXR1cm4gT2EuYXBwbHkoMCxhcmd1bWVudHMpfWZ1bmN0aW9uIFRlKGEpe3JldHVybiBuZXcgVGEoInJldHVybiIsdGhpcy5ldmFsdWF0ZShhKSl9CmZ1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2FuJ3Qgc2V0IHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTsoZCBpbnN0YW5jZW9mIEtkfHxkIGluc3RhbmNlb2YgR2R8fGQgaW5zdGFuY2VvZiBrYikmJmQuc2V0KFN0cmluZyhlKSxmKTtyZXR1cm4gZn1mdW5jdGlvbiBWZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpLXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIFdlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoIUFycmF5LmlzQXJyYXkoZSl8fCFBcnJheS5pc0FycmF5KGYpKXRocm93IEVycm9yKCJFcnJvcjogTWFsZm9ybWVkIHN3aXRjaCBpbnN0cnVjdGlvbi4iKTtmb3IodmFyIGcsaD0hMSxsPTA7bDxlLmxlbmd0aDtsKyspaWYoaHx8ZD09PXRoaXMuZXZhbHVhdGUoZVtsXSkpaWYoZz10aGlzLmV2YWx1YXRlKGZbbF0pLGcgaW5zdGFuY2VvZiBUYSl7dmFyIG49Zy50eXBlO2lmKG49PT0iYnJlYWsiKXJldHVybjtpZihuPT09InJldHVybiJ8fG49PT0iY29udGludWUiKXJldHVybiBnfWVsc2UgaD0hMDtpZihmLmxlbmd0aD09PWUubGVuZ3RoKzEmJihnPXRoaXMuZXZhbHVhdGUoZltmLmxlbmd0aC0xXSksZyBpbnN0YW5jZW9mIFRhJiYoZy50eXBlPT09InJldHVybiJ8fGcudHlwZT09PSJjb250aW51ZSIpKSlyZXR1cm4gZ30KZnVuY3Rpb24gWGUoYSxiLGMpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpP3RoaXMuZXZhbHVhdGUoYik6dGhpcy5ldmFsdWF0ZShjKX1mdW5jdGlvbiBZZShhKXt2YXIgYj10aGlzLmV2YWx1YXRlKGEpO3JldHVybiBiIGluc3RhbmNlb2YgS2Q/ImZ1bmN0aW9uIjp0eXBlb2YgYn1mdW5jdGlvbiBaZSgpe2Zvcih2YXIgYT10aGlzLlQsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPWFyZ3VtZW50c1tiXTt0eXBlb2YgYyE9PSJzdHJpbmcifHxhLmFkZChjLHZvaWQgMCl9fQpmdW5jdGlvbiAkZShhLGIsYyxkKXt2YXIgZT10aGlzLmV2YWx1YXRlKGQpO2lmKHRoaXMuZXZhbHVhdGUoYykpe3ZhciBmPWViKHRoaXMuVCxlKTtpZihmIGluc3RhbmNlb2YgVGEpe2lmKGYudHlwZT09PSJicmVhayIpcmV0dXJuO2lmKGYudHlwZT09PSJyZXR1cm4iKXJldHVybiBmfX1mb3IoO3RoaXMuZXZhbHVhdGUoYSk7KXt2YXIgZz1lYih0aGlzLlQsZSk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfXRoaXMuZXZhbHVhdGUoYil9fWZ1bmN0aW9uIGFmKGEpe3JldHVybn5OdW1iZXIodGhpcy5ldmFsdWF0ZShhKSl9ZnVuY3Rpb24gYmYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPDxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gY2YoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9CmZ1bmN0aW9uIGRmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+Pk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBlZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSkmTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGZmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKV5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZ2YoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfE51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBoZigpe30KZnVuY3Rpb24ga2YoYSxiLGMpe3RyeXt2YXIgZD10aGlzLmV2YWx1YXRlKGIpO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH1jYXRjaChoKXtpZighKGggaW5zdGFuY2VvZiBiYiYmaC5TbikpdGhyb3cgaDt2YXIgZT10aGlzLlQud2IoKTthIT09IiImJihoIGluc3RhbmNlb2YgYmImJihoPWgudm8pLGUuYWRkKGEsbmV3IFBkKGgpKSk7dmFyIGY9dGhpcy5ldmFsdWF0ZShjKSxnPWViKGUsZik7aWYoZyBpbnN0YW5jZW9mIFRhKXJldHVybiBnfX1mdW5jdGlvbiBsZihhLGIpe3ZhciBjLGQ7dHJ5e2Q9dGhpcy5ldmFsdWF0ZShhKX1jYXRjaChmKXtpZighKGYgaW5zdGFuY2VvZiBiYiYmZi5TbikpdGhyb3cgZjtjPWZ9dmFyIGU9dGhpcy5ldmFsdWF0ZShiKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGU7aWYoYyl0aHJvdyBjO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH07dmFyIG5mPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBnYjttZih0aGlzKX07bmYucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5yayhhKX07dmFyIG1mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9bmV3IExkKFN0cmluZyhjKSxkKTtlLlphKCk7dmFyIGY9U3RyaW5nKGMpO2EuSC5ILnNldChmLGUpO2RiLnNldChmLGUpfTtiKCJtYXAiLEllKTtiKCJhbmQiLHRkKTtiKCJjb250YWlucyIsd2QpO2IoImVxdWFscyIsdWQpO2IoIm9yIix2ZCk7Yigic3RhcnRzV2l0aCIseGQpO2IoInZhcmlhYmxlIix5ZCl9O25mLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O3ZhciBwZj1mdW5jdGlvbigpe3RoaXMuSz0hMTt0aGlzLkg9bmV3IGdiO29mKHRoaXMpO3RoaXMuSz0hMH07cGYucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHFmKHRoaXMuSC5yayhhKSl9O3ZhciByZj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHFmKGEuSC5KcShiLGMpKX07cGYucHJvdG90eXBlLlphPWZ1bmN0aW9uKCl7dGhpcy5ILlphKCl9Owp2YXIgb2Y9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYyxkKXt2YXIgZT1TdHJpbmcoYyksZj1uZXcgTGQoZSxkKTtmLlphKCk7YS5ILkguc2V0KGUsZik7ZGIuc2V0KGUsZil9O2IoMCxaZCk7YigxLCRkKTtiKDIsYWUpO2IoMyxiZSk7Yig1NixlZik7Yig1NyxiZik7Yig1OCxhZik7Yig1OSxnZik7Yig2MCxjZik7Yig2MSxkZik7Yig2MixmZik7Yig1MyxjZSk7Yig0LGRlKTtiKDUsZWUpO2IoNjgsa2YpO2IoNTIsZmUpO2IoNixnZSk7Yig0OSxoZSk7Yig3LEhlKTtiKDgsSWUpO2IoOSxlZSk7Yig1MCxpZSk7YigxMCxqZSk7YigxMixrZSk7YigxMyxsZSk7Yig2NyxsZik7Yig1MSx3ZSk7Yig0NyxvZSk7Yig1NCxwZSk7Yig1NSxxZSk7Yig2Myx2ZSk7Yig2NCxyZSk7Yig2NSx0ZSk7Yig2Nix1ZSk7YigxNSx4ZSk7YigxNix6ZSk7YigxNyx6ZSk7YigxOCxBZSk7YigxOSxCZSk7YigyMCxDZSk7YigyMSxEZSk7YigyMixFZSk7YigyMyxGZSk7YigyNCxHZSk7YigyNSxKZSk7YigyNiwKS2UpO2IoMjcsTGUpO2IoMjgsTWUpO2IoMjksTmUpO2IoNDUsT2UpO2IoMzAsUGUpO2IoMzIsUWUpO2IoMzMsUWUpO2IoMzQsUmUpO2IoMzUsUmUpO2IoNDYsU2UpO2IoMzYsVGUpO2IoNDMsVWUpO2IoMzcsVmUpO2IoMzgsV2UpO2IoMzksWGUpO2IoNDAsWWUpO2IoNDQsaGYpO2IoNDEsWmUpO2IoNDIsJGUpfTtwZi5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ILmplKCl9O3BmLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O3BmLnByb3RvdHlwZS5zZD1mdW5jdGlvbihhKXt0aGlzLkguc2QoYSl9OwpmdW5jdGlvbiBxZihhKXtpZihhIGluc3RhbmNlb2YgVGF8fGEgaW5zdGFuY2VvZiBLZHx8YSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZHx8YSBpbnN0YW5jZW9mIFBkfHxhPT09bnVsbHx8YT09PXZvaWQgMHx8dHlwZW9mIGE9PT0ic3RyaW5nInx8dHlwZW9mIGE9PT0ibnVtYmVyInx8dHlwZW9mIGE9PT0iYm9vbGVhbiIpcmV0dXJuIGF9O3ZhciBzZj1mdW5jdGlvbihhKXt0aGlzLm1lc3NhZ2U9YX07ZnVuY3Rpb24gdGYoYSl7YS5xdj0hMDtyZXR1cm4gYX07dmFyIHVmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifSksdmY9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9KSx3Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiJ9KTtmdW5jdGlvbiB4ZihhKXt2YXIgYj0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbYV07cmV0dXJuIGI9PT12b2lkIDA/bmV3IHNmKCJWYWx1ZSAiK2ErIiBjYW4gbm90IGJlIGVuY29kZWQgaW4gd2ViLXNhZmUgYmFzZTY0IGRpY3Rpb25hcnkuIik6Yn07ZnVuY3Rpb24geWYoYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4iMSI7Y2FzZSAyOmNhc2UgNDpyZXR1cm4iMCI7ZGVmYXVsdDpyZXR1cm4iLSJ9fTt2YXIgemY9L15bMS05YS16QS1aXy1dWzEtOWEtY11bMS05YS12XVxkJC87ZnVuY3Rpb24gQWYoYSxiKXtmb3IodmFyIGM9IiIsZD0hMDthPjc7KXt2YXIgZT1hJjMxO2E+Pj01O2Q/ZD0hMTplfD0zMjtjPSIiK3hmKGUpK2N9YTw8PTI7ZHx8KGF8PTMyKTtyZXR1cm4gYz0iIit4ZihhfGIpK2N9ZnVuY3Rpb24gQmYoYSxiKXtyZXR1cm4gYj09PXZvaWQgMHx8Yj09PTA/IiI6IiIrQWYoYSwxKSt4ZihiKX0KZnVuY3Rpb24gQ2YoYSxiKXt2YXIgYzt2YXIgZD1hLmhpLGU9YS5iaztkPT09dm9pZCAwP2M9IiI6KGV8fChlPTApLGM9IiIrQWYoMSwxKSt4ZihkPDwyfGUpKTt2YXIgZj0iNCIrYytCZigyLGEucXIpLGcsaD1hLklvO2c9aCYmemYudGVzdChoKT8iIitBZigzLDIpK2g6IiI7dmFyIGw7dmFyIG49YS5jdGlkO2lmKG4mJmIpe3ZhciBwPUFmKDUsMykscT1uLnNwbGl0KCItIikscj1xWzBdLnRvVXBwZXJDYXNlKCk7aWYociE9PSJHVE0iJiZyIT09Ik9QVCIpbD0iIjtlbHNle3ZhciB0PXFbMV07bD0iIitwK3hmKDErdC5sZW5ndGgpKyhhLkxzfHwwKSt0fX1lbHNlIGw9IiI7dmFyIHU9YS5jYW5vbmljYWxJZCx2PWEubWMseD1hLnp2LHk9ZitnK0JmKDQsYS5EbykrbCtCZig2LGEuRHQpKyh1PyIiK0FmKDcsMykreGYodS5sZW5ndGgpK3U6IiIpKyh2PyIiK0FmKDgsMykreGYodi5sZW5ndGgpK3Y6IiIpKyh4PyIiK0FmKDksMykreGYoeC5sZW5ndGgpK3g6IiIpLHo7dmFyIEM9YS56cjtDPQpDPT09dm9pZCAwP3t9OkM7Zm9yKHZhciBEPVtdLEk9bShPYmplY3Qua2V5cyhDKSksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe3ZhciBOPUcudmFsdWU7RFtOdW1iZXIoTildPUNbTl19aWYoRC5sZW5ndGgpe3ZhciBTPUFmKDEwLDMpLFc7aWYoRC5sZW5ndGg9PT0wKVc9eGYoMCk7ZWxzZXtmb3IodmFyIGVhPVtdLGphPTAsZmE9ITEsc2E9MDtzYTxELmxlbmd0aDtzYSsrKXtmYT0hMDt2YXIgZGE9c2ElNjtEW3NhXSYmKGphfD0xPDxkYSk7ZGE9PT01JiYoZWEucHVzaCh4ZihqYSkpLGphPTAsZmE9ITEpfWZhJiZlYS5wdXNoKHhmKGphKSk7Vz1lYS5qb2luKCIiKX12YXIgbWE9Vzt6PSIiK1MreGYobWEubGVuZ3RoKSttYX1lbHNlIHo9IiI7dmFyIFBhPWEuVXMsRmE9YS5udDtyZXR1cm4geSt6KyhQYT8iIitBZigxMSwzKSt4ZihQYS5sZW5ndGgpK1BhOiIiKSsoRmE/IiIrQWYoMTMsMykreGYoRmEubGVuZ3RoKStGYToiIikrQmYoMTQsYS5FdCkrQmYoMTUsYS5ydikrQmYoMTYsCmEuQXYpfTtmdW5jdGlvbiBEZihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGQpO2U8MTI4P2JbYysrXT1lOihlPDIwNDg/YltjKytdPWU+PjZ8MTkyOigoZSY2NDUxMik9PTU1Mjk2JiZkKzE8YS5sZW5ndGgmJihhLmNoYXJDb2RlQXQoZCsxKSY2NDUxMik9PTU2MzIwPyhlPTY1NTM2KygoZSYxMDIzKTw8MTApKyhhLmNoYXJDb2RlQXQoKytkKSYxMDIzKSxiW2MrK109ZT4+MTh8MjQwLGJbYysrXT1lPj4xMiY2M3wxMjgpOmJbYysrXT1lPj4xMnwyMjQsYltjKytdPWU+PjYmNjN8MTI4KSxiW2MrK109ZSY2M3wxMjgpfXJldHVybiBifTtmdW5jdGlvbiBFZihhLGIpe2Zvcih2YXIgYz1xYihiKSxkPW5ldyBVaW50OEFycmF5KGMubGVuZ3RoKSxlPTA7ZTxjLmxlbmd0aDtlKyspZFtlXT1jLmNoYXJDb2RlQXQoZSk7aWYoZC5sZW5ndGghPT0zMil0aHJvdyBFcnJvcigiS2V5IGlzIG5vdCAzMiBieXRlcy4iKTtyZXR1cm4gRmYoYSxkKX1mdW5jdGlvbiBGZihhLGIpe2lmKGE9PT0iIilyZXR1cm4iIjt2YXIgYz1aYihhKSxkPWIuc2xpY2UoLTIpLGU9W10uY29uY2F0KHcoZCksdyhjKSkubWFwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGdeYltoJWIubGVuZ3RoXX0pLGY9bmV3IFVpbnQ4QXJyYXkoW10uY29uY2F0KHcoZSksdyhkKSkpO3JldHVybiBwYihTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KGYpKSkucmVwbGFjZSgvXC4rJC8sIiIpfTt2YXIgR2Y9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3JldHVybnt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBifX19cmV0dXJue2NwOmEoImNvbnNlbnQiKSxaazphKCJjb252ZXJ0X2Nhc2VfdG8iKSxhbDphKCJjb252ZXJ0X2ZhbHNlX3RvIiksYmw6YSgiY29udmVydF9udWxsX3RvIiksZXA6YSgiY29udmVydF90b19ib29sZWFuIiksYWg6YSgiY29udmVydF90b19udW1iZXIiKSxmbDphKCJjb252ZXJ0X3RydWVfdG8iKSxpbDphKCJjb252ZXJ0X3VuZGVmaW5lZF90byIpLFl0OmEoImRlYnVnX21vZGVfbWV0YWRhdGEiKSxZYjphKCJmdW5jdGlvbiIpLFJtOmEoImluc3RhbmNlX25hbWUiKSxOcTphKCJsaXZlX29ubHkiKSxPcTphKCJtYWx3YXJlX2Rpc2FibGVkIiksTUVUQURBVEE6YSgibWV0YWRhdGEiKSxScTphKCJvcmlnaW5hbF9hY3Rpdml0eV9pZCIpLFR1OmEoIm9yaWdpbmFsX3ZlbmRvcl90ZW1wbGF0ZV9pZCIpLFN1OmEoIm9uY2Vfb25fbG9hZCIpLFFxOmEoIm9uY2VfcGVyX2V2ZW50IiksCmtuOmEoIm9uY2VfcGVyX2xvYWQiKSxWdTphKCJwcmlvcml0eV9vdmVycmlkZSIpLFl1OmEoInJlc3BlY3RlZF9jb25zZW50X3R5cGVzIiksdG46YSgic2V0dXBfdGFncyIpLHlqOmEoInRhZ19pZCIpLERuOmEoInRlYXJkb3duX3RhZ3MiKSxwbDphKCJkaXNhYmxlZF9pbl9nb29nbGVfbW9kZSIpLEZxOmEoImdlbmVyYXRlZF90YWdnaW5nX21ldGFkYXRhIil9fSgpO2Z1bmN0aW9uIEhmKGEsYil7dmFyIGM9e307Y1tHZi5ZYl09Il9fIithO2Zvcih2YXIgZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjWyJ2dHBfIitkXT1iW2RdKTtyZXR1cm4gY307ZnVuY3Rpb24gSWYoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYyxkO3JldHVybigoYz1kYXRhKT09bnVsbD8wOihkPWMuYmxvYik9PW51bGw/MDpkLmhhc093blByb3BlcnR5KGEpKT8hIWRhdGEuYmxvYlthXTpifWZ1bmN0aW9uIEUoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyIiOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGRhdGEuYmxvYlthXSk6Yn1mdW5jdGlvbiBKZihhKXt2YXIgYixjO3JldHVybigoYj1kYXRhKT09bnVsbD8wOihjPWIuYmxvYik9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9OdW1iZXIoZGF0YS5ibG9iW2FdKTowfWZ1bmN0aW9uIEtmKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD9bXTpiO3ZhciBjLGQsZT0oYz1kYXRhKT09bnVsbD92b2lkIDA6KGQ9Yy5ibG9iKT09bnVsbD92b2lkIDA6ZFthXTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOmJ9CmZ1bmN0aW9uIExmKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjPU1mKDQ2KTtyZXR1cm4gYyYmKGM9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9TdHJpbmcoY1thXSk6Yn1mdW5jdGlvbiBOZihhLGIpe3ZhciBjPU1mKDQ2KTtyZXR1cm4gYyYmKGM9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9OdW1iZXIoY1thXSk6Yn1mdW5jdGlvbiBNZihhKXt2YXIgYixjO3JldHVybihiPWRhdGEpPT1udWxsP3ZvaWQgMDooYz1iLmJsb2IpPT1udWxsP3ZvaWQgMDpjW2FdfTt2YXIgT2Y9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGMpO3RoaXMubWVzc2FnZT1kLm1lc3NhZ2U7InN0YWNrImluIGQmJih0aGlzLnN0YWNrPWQuc3RhY2spO3RoaXMucGVybWlzc2lvbklkPWE7dGhpcy5wYXJhbWV0ZXJzPWI7dGhpcy5uYW1lPSJQZXJtaXNzaW9uRXJyb3IifTt3YShPZixFcnJvcik7T2YucHJvdG90eXBlLmdldE1lc3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlfTtmdW5jdGlvbiBQZihhLGIpe2lmKEFycmF5LmlzQXJyYXkoYSkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJjb250ZXh0Iix7dmFsdWU6e2xpbmU6YlswXX19KTtmb3IodmFyIGM9MTtjPGEubGVuZ3RoO2MrKylQZihhW2NdLGJbY10pfX07ZnVuY3Rpb24gUWYoKXtyZXR1cm4gZnVuY3Rpb24oYSxiKXt2YXIgYzt2YXIgZD1SZjthIGluc3RhbmNlb2YgYmI/KGEuSD1kLGM9YSk6Yz1uZXcgYmIoYSxkKTt2YXIgZT1jO2ImJmUuSy5wdXNoKGIpO3Rocm93IGU7fX1mdW5jdGlvbiBSZihhKXtpZighYS5sZW5ndGgpcmV0dXJuIGE7YS5wdXNoKHtpZDoibWFpbiIsbGluZTowfSk7Zm9yKHZhciBiPWEubGVuZ3RoLTE7Yj4wO2ItLSlBYihhW2JdLmlkKSYmYS5zcGxpY2UoYisrLDEpO2Zvcih2YXIgYz1hLmxlbmd0aC0xO2M+MDtjLS0pYVtjXS5saW5lPWFbYy0xXS5saW5lO2Euc3BsaWNlKDAsMSk7cmV0dXJuIGF9O3ZhciBTZj1SZWdFeHAoIlteMC05XFwuKy1dIiwiZyIpLFRmPVJlZ0V4cCgiW14wLTlcXCwrLV0iLCJnIiksVWY9UmVnRXhwKCJbXjAtOSstXSIsImciKTsKZnVuY3Rpb24gVmYoYSxiKXtpZih0eXBlb2YgYT09PSJudW1iZXIiKXJldHVybiBhO3ZhciBjPVN0cmluZyhhKSxkO2lmKGI9PT0iQVVUT01BVElDIil7dmFyIGU9KGMubWF0Y2goL1wuL2cpfHxbXSkubGVuZ3RoLGY9KGMubWF0Y2goLywvZyl8fFtdKS5sZW5ndGgsZz0iTk9ORSI7aWYoZT4wJiZmPjApe3ZhciBoPWMubGFzdEluZGV4T2YoIi4iKT5jLmxhc3RJbmRleE9mKCIsIik7aCYmZT09PTE/Zz0iUEVSSU9EIjpofHxmIT09MXx8KGc9IkNPTU1BIil9ZWxzZSBlPT09MT9nPShjLnNwbGl0KCIuIilbMV0ubWF0Y2goL1swLTldL2cpfHxbXSkubGVuZ3RoIT09Mz8iUEVSSU9EIjoiTk9ORSI6Zj09PTEmJihnPShjLnNwbGl0KCIsIilbMV0ubWF0Y2goL1swLTldL2cpfHxbXSkubGVuZ3RoIT09Mz8iQ09NTUEiOiJOT05FIik7ZD1nfWVsc2UgZD1iPT09IkNPTU1BIj8iQ09NTUEiOiJQRVJJT0QiO3ZhciBsLG47ZD09PSJQRVJJT0QiPyhsPSIuIixuPVNmKTpkPT09IkNPTU1BIj8obD0iLCIsCm49VGYpOihsPSIiLG49VWYpO3ZhciBwPWMucmVwbGFjZShuLCIiKTtpZihsIT09IiImJnAuc3BsaXQobCkubGVuZ3RoPjIpcmV0dXJuIGE7dmFyIHE9cC5yZXBsYWNlKC8sL2csIi4iKTtpZihxPT09IiIpcmV0dXJuIGE7dmFyIHI9TnVtYmVyKHEpO3JldHVybiBpc05hTihyKT9hOnJ9O3ZhciBXZj1bXSxYZj17fTtmdW5jdGlvbiBZZihhKXtyZXR1cm4gV2ZbYV09PT12b2lkIDA/ITE6V2ZbYV19O3ZhciBaZj1mdW5jdGlvbigpe3RoaXMuSD17fX0sJGY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTthLkhbYl0ucHVzaChmdW5jdGlvbigpe3JldHVybiBjLmFwcGx5KG51bGwsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX0pfTtmdW5jdGlvbiBhZyhhLGIsYyxkKXtpZihhKWZvcih2YXIgZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgZj12b2lkIDAsZz0iQSBwb2xpY3kgZnVuY3Rpb24gZGVuaWVkIHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QiO3RyeXtmPWFbZV0oYixjLGQpLGcrPSIuIn1jYXRjaChoKXtnPXR5cGVvZiBoPT09InN0cmluZyI/ZysoIjogIitoKTpoIGluc3RhbmNlb2YgRXJyb3I/ZysoIjogIitoLm1lc3NhZ2UpOmcrIi4ifWlmKCFmKXRocm93IG5ldyBPZihjLGQsZyk7fX0KZnVuY3Rpb24gYmcoYSxiKXt2YXIgYz1jZyhkZy5ILGIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO3RyeXtyZXR1cm4gYyhhKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rpb24gY2coYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtpZihkKXt2YXIgZT1hLkhbZF0sZj1hLkguYWxsO2lmKGV8fGYpe3ZhciBnPWMuYXBwbHkodm9pZCAwLFtkXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk7YWcoZSxiLGQsZyk7YWcoZixiLGQsZyl9fX19O3ZhciBnZz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLks9e307dGhpcy5IPW5ldyBaZjt2YXIgZT17fSxmPXt9LGc9Y2codGhpcy5ILGEsZnVuY3Rpb24oaCl7cmV0dXJuIGgmJmVbaF0/ZVtoXS5hcHBseSh2b2lkIDAsW2hdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKTp7fX0pO0diKGIsZnVuY3Rpb24oaCxsKXtmdW5jdGlvbiBuKHEpe3ZhciByPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtpZighcFtxXSl0aHJvdyBlZyhxLHt9LCJUaGUgcmVxdWVzdGVkIGFkZGl0aW9uYWwgcGVybWlzc2lvbiAiK3ErIiBpcyBub3QgY29uZmlndXJlZC4iKTtnLmFwcGx5KG51bGwsW3FdLmNvbmNhdCh3KHIpKSl9dmFyIHA9e307R2IobCxmdW5jdGlvbihxLHIpe3ZhciB0PWZnKHEscixjKTtwW3FdPXQuYXNzZXJ0O2VbcV18fChlW3FdPXQuYWEpO3QuT24mJiFmW3FdJiYoZltxXT10Lk9uKX0pO2QuS1toXT1mdW5jdGlvbihxLHIpe3ZhciB0PXBbcV07aWYoIXQpdGhyb3cgZWcocSwKe30sIlRoZSByZXF1ZXN0ZWQgcGVybWlzc2lvbiAiK3ErIiBpcyBub3QgY29uZmlndXJlZC4iKTt2YXIgdT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7dC5hcHBseSh2b2lkIDAsdSk7Zy5hcHBseSh2b2lkIDAsdSk7dmFyIHY9ZltxXTt2JiZ2LmFwcGx5KG51bGwsW25dLmNvbmNhdCh3KHUuc2xpY2UoMSkpKSl9fSl9LGhnPWZ1bmN0aW9uKGEpe3JldHVybiBkZy5LW2FdfHxmdW5jdGlvbigpe319OwpmdW5jdGlvbiBmZyhhLGIsYyl7dHJ5e3ZhciBkPWNbIl9fIithXTtpZighZCl0aHJvdyBFcnJvcigiTm8gZnVuY3Rpb24gZm91bmQgZm9yIHBlcm1pc3Npb246ICIrYSsiLiIpO3ZhciBlPUhmKGEsYik7ZS52dHBfcGVybWlzc2lvbk5hbWU9YTtlLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I9ZWc7ZGVsZXRlIGVbR2YuWWJdO3JldHVybiBkKGUpfWNhdGNoKGYpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZyl7dGhyb3cgbmV3IE9mKGcse30sIlBlcm1pc3Npb24gIitnKyIgaXMgdW5rbm93bi4iKTt9LGFhOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IE9mKGEse30sIlBlcm1pc3Npb24gIithKyIgaXMgdW5rbm93bi4iKTt9fX19ZnVuY3Rpb24gZWcoYSxiLGMpe3JldHVybiBuZXcgT2YoYSxiLGMpfTt2YXIgaWc9RSg1KSxqZz1FKDIwKSxrZz1FKDEpLGxnPSExO3ZhciBtZz17fTttZy5Qbz1JZigyOSk7bWcuS3I9SWYoMjgpO2Z1bmN0aW9uIG5nKGEpe3ZhciBiPTEsYyxkLGU7aWYoYSlmb3IoYj0wLGQ9YS5sZW5ndGgtMTtkPj0wO2QtLSllPWEuY2hhckNvZGVBdChkKSxiPShiPDw2JjI2ODQzNTQ1NSkrZSsoZTw8MTQpLGM9YiYyNjYzMzgzMDQsYj1jIT09MD9iXmM+PjIxOmI7cmV0dXJuIGJ9O3ZhciBvZz1mdW5jdGlvbihhKXt0aGlzLmNhY2hlPWF9O29nLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmcoYSksYz10aGlzLmNhY2hlLmdldChiKTtpZighYylyZXR1cm57cHJvbWlzZTp2b2lkIDAsS2o6MH07aWYoRGF0ZS5ub3coKT49Yy50aW1lc3RhbXArOUU1KXJldHVybiB0aGlzLmNhY2hlLmRlbGV0ZShiKSx7cHJvbWlzZTp2b2lkIDAsS2o6M307dmFyIGQ9Yy5yZXNvbHZlZFZhbHVlPzI6MTtyZXR1cm57cHJvbWlzZTpjLnJlc29sdmVkVmFsdWU/UHJvbWlzZS5yZXNvbHZlKGMucmVzb2x2ZWRWYWx1ZSk6Yy5wcm9taXNlLEtqOmR9fTtvZy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9e3Byb21pc2U6YixyZXNvbHZlZFZhbHVlOnZvaWQgMCx0aW1lc3RhbXA6RGF0ZS5ub3coKX07dGhpcy5jYWNoZS5zZXQobmcoYSksYyk7Yi50aGVuKGZ1bmN0aW9uKGQpe2MucmVzb2x2ZWRWYWx1ZT1kfSl9O2Z1bmN0aW9uIHBnKGEpe3N3aXRjaChhKXtjYXNlIDA6YnJlYWs7Y2FzZSA5OnJldHVybiJlNCI7Y2FzZSA2OnJldHVybiJlNSI7Y2FzZSAxNDpyZXR1cm4iZTYiO2RlZmF1bHQ6cmV0dXJuImU3In19O3ZhciBGPXtEOntYYToiYWRfcGVyc29uYWxpemF0aW9uIixrYToiYWRfc3RvcmFnZSIsbWE6ImFkX3VzZXJfZGF0YSIscmE6ImFuYWx5dGljc19zdG9yYWdlIixuYzoicmVnaW9uIixzYToiY29uc2VudF91cGRhdGVkIixZZzoid2FpdF9mb3JfdXBkYXRlIixlaDoiZW5kcG9pbnRfdHlwZSIscXA6ImFwcF9yZW1vdmUiLHJwOiJhcHBfc3RvcmVfcmVmdW5kIix0cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiLHVwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiLHZwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Iix3cDoiY29uc2VudF91cGRhdGUiLHhwOiJjb252ZXJzaW9uIix2bDoiYWRkX3BheW1lbnRfaW5mbyIsd2w6ImFkZF9zaGlwcGluZ19pbmZvIix4ZToiYWRkX3RvX2NhcnQiLHllOiJyZW1vdmVfZnJvbV9jYXJ0Iix4bDoidmlld19jYXJ0IixBZDoiYmVnaW5fY2hlY2tvdXQiLGV1OiJnZW5lcmF0ZV9sZWFkIix6ZToic2VsZWN0X2l0ZW0iLG9jOiJ2aWV3X2l0ZW1fbGlzdCIsClFjOiJzZWxlY3RfcHJvbW90aW9uIixxYzoidmlld19wcm9tb3Rpb24iLEliOiJwdXJjaGFzZSIsQWU6InJlZnVuZCIscmM6InZpZXdfaXRlbSIseWw6ImFkZF90b193aXNobGlzdCIseXA6ImV4Y2VwdGlvbiIsenA6ImZpcnN0X29wZW4iLEFwOiJmaXJzdF92aXNpdCIsd2E6Imd0YWcuY29uZmlnIixKYjoiZ3RhZy5nZXQiLEJwOiJpbl9hcHBfcHVyY2hhc2UiLHNjOiJwYWdlX3ZpZXciLENwOiJzY3JlZW5fdmlldyIsRHA6InNlc3Npb25fc3RhcnQiLEVwOiJzb3VyY2VfdXBkYXRlIixGcDoidGltaW5nX2NvbXBsZXRlIixHcDoidHJhY2tfc29jaWFsIix5ZjoidXNlcl9lbmdhZ2VtZW50IixIcDoidXNlcl9pZF91cGRhdGUiLGZoOiJicmFpZF9saW5rX2RlY29yYXRpb25fc291cmNlIixnaDoiYnJhaWRfc3RvcmFnZV9zb3VyY2UiLEJkOiJnY2xpZF9saW5rX2RlY29yYXRpb25fc291cmNlIixDZDoiZ2NsaWRfc3RvcmFnZV9zb3VyY2UiLFNiOiJnY2xnYiIsbGI6ImdjbGlkIix6bDoiZ2NsaWRfbGVuIiwKQmU6ImdjbGdzIixDZToiZ2NsbHAiLERlOiJnY2xzdCIsbWI6ImFkc19kYXRhX3JlZGFjdGlvbiIsemY6ImdhZF9zb3VyY2UiLEFmOiJnYWRfc291cmNlX3NyYyIsRGQ6ImdjbGlkX3VybCIsQWw6ImdjbHNyYyIsQmY6ImdicmFpZCIsRWU6IndicmFpZCIsUmM6ImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbl9zaWduYWxzIixyaToiYWxsb3dfY3VzdG9tX3NjcmlwdHMiLGhoOiJhbGxvd19kaXNwbGF5X2ZlYXR1cmVzIixzaToiYWxsb3dfZW5oYW5jZWRfY29udmVyc2lvbnMiLFNjOiJhbGxvd19nb29nbGVfc2lnbmFscyIsdWk6ImFsbG93X2ludGVyZXN0X2dyb3VwcyIsSXA6ImFwcF9pZCIsSnA6ImFwcF9pbnN0YWxsZXJfaWQiLEtwOiJhcHBfbmFtZSIsTHA6ImFwcF92ZXJzaW9uIixFZDoiYXVpZCIsZnU6ImF1dG9fZGV0ZWN0aW9uX2VuYWJsZWQiLEJsOiJhdXRvX2V2ZW50IixDbDoiYXdfcmVtYXJrZXRpbmciLGloOiJhd19yZW1hcmtldGluZ19vbmx5IixDZjoiZGlzY291bnQiLERmOiJhd19mZWVkX2NvdW50cnkiLApFZjoiYXdfZmVlZF9sYW5ndWFnZSIsSGE6Iml0ZW1zIixGZjoiYXdfbWVyY2hhbnRfaWQiLHdpOiJhd19iYXNrZXRfdHlwZSIsR2Y6ImNhbXBhaWduX2NvbnRlbnQiLEhmOiJjYW1wYWlnbl9pZCIsSWY6ImNhbXBhaWduX21lZGl1bSIsSmY6ImNhbXBhaWduX25hbWUiLEtmOiJjYW1wYWlnbiIsTGY6ImNhbXBhaWduX3NvdXJjZSIsTWY6ImNhbXBhaWduX3Rlcm0iLEtiOiJjbGllbnRfaWQiLERsOiJybmQiLHhpOiJjb25zZW50X3VwZGF0ZV90eXBlIixNcDoiY29udGVudF9ncm91cCIsTnA6ImNvbnRlbnRfdHlwZSIsRmQ6ImNvbnZlcnNpb25fY29va2llX3ByZWZpeCIseWk6ImNvbnZlcnNpb25faWQiLHVjOiJjb252ZXJzaW9uX2xpbmtlciIsSGQ6ImNvbnZlcnNpb25fbGlua2VyX2Rpc2FibGVkIixGZToiY29udmVyc2lvbl9hcGkiLHppOiJfJnJjYiIsamg6ImNvb2tpZV9kZXByZWNhdGlvbiIsTGI6ImNvb2tpZV9kb21haW4iLENiOiJjb29raWVfZXhwaXJlcyIsVGI6ImNvb2tpZV9mbGFncyIsCklkOiJjb29raWVfbmFtZSIsdmM6ImNvb2tpZV9wYXRoIixuYjoiY29va2llX3ByZWZpeCIsSmQ6ImNvb2tpZV91cGRhdGUiLFRjOiJjb3VudHJ5IixlYjoiY3VycmVuY3kiLEdlOiJjdXN0b21lcl9saWZldGltZV92YWx1ZSIsa2g6ImN1c3RvbWVyX3R5cGUiLEhlOiJjdXN0b21fbWFwIixBaToiZ2NsZGNfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQmk6ImdjbGRjX3N0b3JhZ2Vfc291cmNlIixOZjoiZ2NsZGMiLEtkOiJkY2xpZCIsRWw6ImRlYnVnX21vZGUiLE9hOiJkZXZlbG9wZXJfaWQiLE9wOiJkaXNhYmxlX21lcmNoYW50X3JlcG9ydGVkX3B1cmNoYXNlcyIsVWM6ImRjX2N1c3RvbV9wYXJhbXMiLFBwOiJkY19uYXR1cmFsX3NlYXJjaCIsUXA6ImR5bmFtaWNfZXZlbnRfc2V0dGluZ3MiLEZsOiJhZmZpbGlhdGlvbiIsbWg6ImNoZWNrb3V0X29wdGlvbiIsQ2k6ImNoZWNrb3V0X3N0ZXAiLEdsOiJjb3Vwb24iLE9mOiJpdGVtX2xpc3RfbmFtZSIsRGk6Imxpc3RfbmFtZSIsUnA6InByb21vdGlvbnMiLApMZDoic2hpcHBpbmciLEhsOiJ0YXgiLG5oOiJlbmdhZ2VtZW50X3RpbWVfbXNlYyIsb2g6ImVuaGFuY2VkX2NsaWVudF9pZCIsU3A6ImVuaGFuY2VkX2NvbnZlcnNpb25zIixndToiZW5oYW5jZWRfY29udmVyc2lvbnNfYXV0b21hdGljX3NldHRpbmdzIixJZToiZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGUiLFBmOiJldmVudF9jYWxsYmFjayIsVHA6ImV2ZW50X2NhdGVnb3J5IixWYzoiZXZlbnRfZGV2ZWxvcGVyX2lkX3N0cmluZyIsTWQ6ImV2ZW50X2lkIixFaToiX2V2ZW50X2pvaW5faWQiLFVwOiJldmVudF9sYWJlbCIsVWI6ImV2ZW50IixJbDoiXyZhZSIsRmk6ImV2ZW50X3NldHRpbmdzIixwaDoiZXZlbnRfdGltZW91dCIsVnA6ImRlc2NyaXB0aW9uIixXcDoiZmF0YWwiLFhwOiJleHBlcmltZW50cyIsTmQ6ImV4dF9jbGllbnRfaWQiLEdpOiJmaXJlYmFzZV9pZCIsUWY6ImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iLFJmOiJfeF8yMCIsVmI6Il94XzE5IixZcDoiZmxpZ2h0X2Vycm9yX2NvZGUiLApacDoiZmxpZ2h0X2Vycm9yX21lc3NhZ2UiLEhpOiJmbF9hY3Rpdml0eV9jYXRlZ29yeSIsSWk6ImZsX2FjdGl2aXR5X2dyb3VwIixxaDoiZmxfYWR2ZXJ0aXNlcl9pZCIsSmk6Im1hdGNoX2lkIixKbDoiZmxfcmFuZG9tX251bWJlciIsS2w6InRyYW4iLExsOiJ1IixyaDoiZ2FjX2djbGlkIixKZToiZ2FjX3dicmFpZCIsTWw6ImdhY193YnJhaWRfbXVsdGlwbGVfY29udmVyc2lvbnMiLGFxOiJnYV9yZXN0cmljdF9kb21haW4iLE5sOiJnYV90ZW1wX2NsaWVudF9pZCIsYnE6ImdhX3RlbXBfZWNpZCIsS2U6ImdkcHJfYXBwbGllcyIsc2g6Il9ndF9tZXRhZGF0YSIsT2w6Imdlb19ncmFudWxhcml0eSIsU2Y6InZhbHVlX2NhbGxiYWNrIixUZjoidmFsdWVfa2V5IixUYToiZ29vZ2xlX2FuYWx5c2lzX3BhcmFtcyIsTGU6Il9nb29nbGVfbmciLGNxOiJfb25vIixVZjoiZ29vZ2xlX3NpZ25hbHMiLGZxOiJnb29nbGVfdGxkIix0aDoiZ3BwX3NpZCIsdWg6ImdwcF9zdHJpbmciLE9kOiJncm91cHMiLApQbDoiZ3NhX2V4cGVyaW1lbnRfaWQiLFZmOiJndGFnX2V2ZW50X2ZlYXR1cmVfdXNhZ2UiLFFsOiJndG1fdXAiLE1lOiJpZnJhbWVfc3RhdGUiLFdmOiJpZ25vcmVfcmVmZXJyZXIiLFJsOiJpbnRlcm5hbF90cmFmZmljX3Jlc3VsdHMiLFNsOiJfaXNfZnBtIixZYzoiaXNfbGVnYWN5X2NvbnZlcnRlZCIsWmM6ImlzX2xlZ2FjeV9sb2FkZWQiLEtpOiJpc19wYXNzdGhyb3VnaCIsUGQ6Il9scHMiLHRiOiJsYW5ndWFnZSIsTGk6ImxlZ2FjeV9kZXZlbG9wZXJfaWRfc3RyaW5nIixEYjoibGlua2VyIixYZjoiYWNjZXB0X2luY29taW5nIix3YzoiZGVjb3JhdGVfZm9ybXMiLEFhOiJkb21haW5zIixhZDoidXJsX3Bvc2l0aW9uIixRZDoibWVyY2hhbnRfZmVlZF9sYWJlbCIsUmQ6Im1lcmNoYW50X2ZlZWRfbGFuZ3VhZ2UiLFNkOiJtZXJjaGFudF9pZCIsVGw6Im1ldGhvZCIsZ3E6Im5hbWUiLFVsOiJuYXZpZ2F0aW9uX3R5cGUiLE5lOiJuZXdfY3VzdG9tZXIiLE1pOiJub25faW50ZXJhY3Rpb24iLApocToib3B0aW1pemVfaWQiLFZsOiJwYWdlX2hvc3RuYW1lIixZZjoicGFnZV9wYXRoIixVYToicGFnZV9yZWZlcnJlciIsTWI6InBhZ2VfdGl0bGUiLGlxOiJwYXNzZW5nZXJzIixXbDoicGhvbmVfY29udmVyc2lvbl9jYWxsYmFjayIsanE6InBob25lX2NvbnZlcnNpb25fY291bnRyeV9jb2RlIixYbDoicGhvbmVfY29udmVyc2lvbl9jc3NfY2xhc3MiLGtxOiJwaG9uZV9jb252ZXJzaW9uX2lkcyIsWWw6InBob25lX2NvbnZlcnNpb25fbnVtYmVyIixabDoicGhvbmVfY29udmVyc2lvbl9vcHRpb25zIixscToiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIixtcToiX3Byb3RlY3RlZF9hdWRpZW5jZV9lbmFibGVkIix3aDoicXVhbnRpdHkiLHhoOiJyZWRhY3RfZGV2aWNlX2luZm8iLGFtOiJyZWZlcnJhbF9leGNsdXNpb25fZGVmaW5pdGlvbiIsaHU6Il9yZXF1ZXN0X3N0YXJ0X3RpbWUiLFdiOiJyZXN0cmljdGVkX2RhdGFfcHJvY2Vzc2luZyIsbnE6InJldG9rZW4iLG9xOiJzYW1wbGVfcmF0ZSIsCk5pOiJzY3JlZW5fbmFtZSIsYmQ6InNjcmVlbl9yZXNvbHV0aW9uIixibToiX3NjcmlwdF9zb3VyY2UiLHBxOiJzZWFyY2hfdGVybSIsVGQ6InNlbmRfcGFnZV92aWV3IixYYjoic2VuZF90byIsT2k6InNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCIsZGQ6InNlcnZlcl9jb250YWluZXJfdXJsIixxcToic2Vzc2lvbl9hdHRyaWJ1dGVzX2VuY29kZWQiLHloOiJzZXNzaW9uX2R1cmF0aW9uIix6aDoic2Vzc2lvbl9lbmdhZ2VkIixQaToic2Vzc2lvbl9lbmdhZ2VkX3RpbWUiLHhjOiJzZXNzaW9uX2lkIixBaDoic2Vzc2lvbl9udW1iZXIiLFpmOiJfc2hhcmVkX3VzZXJfaWQiLFVkOiJkZWxpdmVyeV9wb3N0YWxfY29kZSIsaXU6Il90YWdfZmlyaW5nX2RlbGF5IixqdToiX3RhZ19maXJpbmdfdGltZSIsa3U6InRlbXBvcmFyeV9jbGllbnRfaWQiLFFpOiJ0ZXN0b25seSIscnE6Il90aW1lem9uZSIsUGU6InRvcG1vc3RfdXJsIixRZToidHJhY2tpbmdfaWQiLFJpOiJ0cmFmZmljX3R5cGUiLApQYToidHJhbnNhY3Rpb25faWQiLGRtOiJ0cmFuc2FjdGlvbl9pZF9zb3VyY2UiLHljOiJ0cmFuc3BvcnRfdXJsIixzcToidHJpcF90eXBlIixWZDoidXBkYXRlIix6YzoidXJsX3Bhc3N0aHJvdWdoIixmbToidXB0Z3MiLGNnOiJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiLGRnOiJfdXNlcl9hZ2VudF9iaXRuZXNzIixlZzoiX3VzZXJfYWdlbnRfZnVsbF92ZXJzaW9uX2xpc3QiLGZnOiJfdXNlcl9hZ2VudF9tb2JpbGUiLGdnOiJfdXNlcl9hZ2VudF9tb2RlbCIsaGc6Il91c2VyX2FnZW50X3BsYXRmb3JtIixpZzoiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiIsamc6Il91c2VyX2FnZW50X3dvdzY0IixBYzoidXNlcl9kYXRhIixnbToidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSIsaG06InVzZXJfZGF0YV9hdXRvX21ldGEiLGltOiJ1c2VyX2RhdGFfYXV0b19tdWx0aSIsam06InVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyIsa206InVzZXJfZGF0YV9hdXRvX3N0YXR1cyIsQmM6InVzZXJfZGF0YV9tb2RlIiwKbG06InVzZXJfZGF0YV9zZXR0aW5ncyIsZmI6InVzZXJfaWQiLFdkOiJ1c2VyX3Byb3BlcnRpZXMiLG9tOiJfdXNlcl9yZWdpb24iLGtnOiJ1c19wcml2YWN5X3N0cmluZyIsUWE6InZhbHVlIixxbToid2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixlZDoiX2ZwbV9wYXJhbWV0ZXJzIixXaToiX2hvc3RfbmFtZSIsVm06Il9pbl9wYWdlX2NvbW1hbmQiLFlpOiJfaXBfb3ZlcnJpZGUiLFptOiJfaXNfcGFzc3Rocm91Z2hfY2lkIixKaDoiX21lYXN1cmVtZW50X3R5cGUiLGRlOiJub25fcGVyc29uYWxpemVkX2FkcyIsb2o6Il9zc3RfcGFyYW1ldGVycyIsWXE6InNndG1fZ2VvX3VzZXJfY291bnRyeSIsR2Q6ImNvbnZlcnNpb25fbGFiZWwiLHphOiJwYWdlX2xvY2F0aW9uIixXYzoiX2V4dHJhY3RlZF9kYXRhIixYYzoiZ2xvYmFsX2RldmVsb3Blcl9pZF9zdHJpbmciLE9lOiJ0Y19wcml2YWN5X3N0cmluZyJ9fTt2YXIgSD17Sjp7U286ImFib3J0X3dpdGhvdXRfZmFpbCIsa2k6ImFjY2VwdF9ieV9kZWZhdWx0IixCazoiYWRkX3RhZ190aW1pbmciLERrOiJhZHNfY29uc2VudF9ncmFudGVkIix2ZDoiYWRzX2V2ZW50X3BhZ2VfdmlldyIsd2Q6ImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbiIsUXQ6ImF1dG9fZXZlbnQiLEtrOiJiYXRjaF9vbl9uYXZpZ2F0aW9uIixYZzoiYmlzY290dGlfam9pbl9pZCIsUGs6ImNsaWVudF9pZF9zb3VyY2UiLHVmOiJjb25zZW50X2V2ZW50X2lkIix2ZjoiY29uc2VudF9wcmlvcml0eV9pZCIsU3Q6ImNvbnNlbnRfc3RhdGUiLHNhOiJjb25zZW50X3VwZGF0ZWQiLHdmOiJjb252ZXJzaW9uX2xpbmtlcl9lbmFibGVkIixUdDoiY29udmVyc2lvbl9tYXJraW5nX2NhbGxlZCIsR2E6ImNvb2tpZV9vcHRpb25zIixvbDoiZGNfcmFuZG9tIixadDoiZGVkdXBlX2lkIixQYzoiZW1fZXZlbnQiLGJ1OiJlbmRwb2ludF9mb3JfZGVidWciLHRsOiJlbmhhbmNlZF9jbGllbnRfaWRfc291cmNlIiwKcHA6ImVuaGFuY2VkX21hdGNoX3Jlc3VsdCIscm06ImV1aWRfbG9nZ2VkX2luX3N0YXRlIixsZzoiZXVpZF9tb2RlX2VuYWJsZWQiLHRxOiJldmVudF9wcm92ZW5hbmNlIixtdToiZXZlbnRfc291cmNlIixFYjoiZXZlbnRfc3RhcnRfdGltZXN0YW1wX21zIix3bToiZXZlbnRfdXNhZ2UiLENoOiJleHRyYV90YWdfZXhwZXJpbWVudF9pZHMiLHB1OiJhZGRfcGFyYW1ldGVyIixVaToiY291bnRpbmdfbWV0aG9kIixEaDoic2VuZF9hc19pZnJhbWUiLHF1OiJwYXJhbWV0ZXJfb3JkZXIiLEVoOiJwYXJzZWRfdGFyZ2V0IixzdToiZm9ybV9ldmVudF9jYW5jZWxlZCIsQXE6ImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiIsVmk6ImdhNF9yZXF1ZXN0X2ZsYWdzIixObToiZ2JyYWlkX2Nvb2tpZV9tYXJrZWQiLFFtOiJndG1fZXh0cmFjdGVkX2RhdGEiLENjOiJoYW5kbGVfaW50ZXJuYWxseSIsdXU6Imhhc19nYV9jb252ZXJzaW9uX2NvbnNlbnRzIixkYToiaGl0X3R5cGUiLERjOiJoaXRfdHlwZV9vdmVycmlkZSIsCkhxOiJpZ25vcmVfZHVwZV9jb25maWciLE91OiJpc19jb25maWdfY29tbWFuZCIsR2g6ImlzX2NvbnNlbnRfdXBkYXRlIixtZzoiaXNfY29udmVyc2lvbiIsV206ImlzX2Vjb21tZXJjZSIsWG06ImlzX2VjX2NtX3NwbGl0IixhZToiaXNfZXh0ZXJuYWxfZXZlbnQiLG5nOiJpc19maXJzdF92aXNpdCIsWW06ImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iLFppOiJpc19mbF9mYWxsYmFja19jb252ZXJzaW9uX2Zsb3dfYWxsb3dlZCIsZmQ6ImlzX2ZwbV9lbmNyeXB0aW9uIixhajoiaXNfZnBtX3NwbGl0IixvYjoiaXNfZ2NwX2Jyb3dzZXIiLGJqOiJpc19nb29nbGVfbWVhc3VyZW1lbnRfYWxsb3dlZCIsY2o6ImlzX2dvb2dsZV9zaWduYWxzX2VuYWJsZWQiLGJlOiJpc19tZXJjaGFudF9jZW50ZXIiLEhoOiJpc19uZXdfdG9fc2l0ZSIsRWM6ImlzX3BlcnNvbmFsaXphdGlvbiIsZGo6ImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIixUZToiaXNfc2Vzc2lvbl9zdGFydCIsYm46ImlzX3Nlc3Npb25fc3RhcnRfY29udmVyc2lvbiIsClB1OiJpc19zZ3RtX2dhX2Fkc19jb252ZXJzaW9uX3N0dWR5X2NvbnRyb2xfZ3JvdXAiLFF1OiJpc19zZ3RtX3ByZWhpdCIsZG46ImlzX3NndG1fc2VydmljZV93b3JrZXIiLEloOiJpc19zcGxpdF9jb252ZXJzaW9uIixJcToiaXNfc3luIixGYzoiaXNfdGVzdF9ldmVudCIsb2c6ImpvaW5faWQiLGVqOiJqb2luX2VsYXBzZWQiLHBnOiJqb2luX3RpbWVyX3NlYyIsZ246ImxvY2FsX3N0b3JhZ2VfYXdfY29udmVyc2lvbl9jb3VudGVycyIsV2U6InR1bm5lbF91cGRhdGVkIixVdToicHJlaGl0X2Zvcl9yZXRyeSIsV3U6InByb21pc2VzIixYdToicmVjb3JkX2F3X2xhdGVuY3kiLFhlOiJyZWRhY3RfYWRzX2RhdGEiLFllOiJyZWRhY3RfY2xpY2tfaWRzIixwbjoicmVtYXJrZXRpbmdfb25seSIsbGo6InNlbmRfY2NtX3BhcmFsbGVsX3BpbmciLGhkOiJzZW5kX2RvdWJsZWNsaWNrX2pvaW4iLE1oOiJzZW5kX2ZwbV9nZW9fam9pbiIsTmg6InNlbmRfZnBtX2dvb2dsZV9qb2luIixadToic2VuZF9jY21fcGFyYWxsZWxfdGVzdF9waW5nIiwKcm46InNlbmRfZ29vZ2xlX21lYXN1cmVtZW50IixyZzoic2VuZF90bGRfam9pbiIsc2c6InNlbmRfdG9fZGVzdGluYXRpb25zIixtajoic2VuZF90b190YXJnZXRzIixzbjoic2VuZF91c2VyX2RhdGFfaGl0Iixwajoic2VydmljZV93b3JrZXJfY29udGV4dCIsTmI6InNvdXJjZV9jYW5vbmljYWxfaWQiLEphOiJzcGVjdWxhdGl2ZSIseW46InNwZWN1bGF0aXZlX2luX21lc3NhZ2UiLEFuOiJzdXBwcmVzc19zY3JpcHRfbG9hZCIsQm46InN5bl9vcl9tb2QiLHpqOiJ0cmFuc2llbnRfZWNzaWQiLHRnOiJ0cmFuc21pc3Npb25fdHlwZSIsWWE6InVzZXJfZGF0YSIsZ3Y6InVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyIsaHY6InVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpY19nZXR0ZXIiLEduOiJ1c2VyX2RhdGFfZnJvbV9jb2RlIixpcjoidXNlcl9kYXRhX2Zyb21fbWFudWFsIixqdjoidXNlcl9kYXRhX21vZGUiLHVnOiJ1c2VyX2lkX3VwZGF0ZWQifX07CnZhciB0Zz1mdW5jdGlvbihhKXt2YXIgYj17fSxjPTA7R2IoYSxmdW5jdGlvbihlLGYpe2lmKGYhPW51bGwpe3ZhciBnPSgiIitmKS5yZXBsYWNlKC9+L2csIn5+Iik7aWYocWcuaGFzT3duUHJvcGVydHkoZSkpYltxZ1tlXV09ZztlbHNlIGlmKHJnLmhhc093blByb3BlcnR5KGUpKXt2YXIgaD1yZ1tlXTtiLmhhc093blByb3BlcnR5KGgpfHwoYltoXT1nKX1lbHNlIGlmKGU9PT0iY2F0ZWdvcnkiKWZvcih2YXIgbD1nLnNwbGl0KCIvIiw1KSxuPTA7bjxsLmxlbmd0aDtuKyspe3ZhciBwPWIscT1zZ1tuXSxyPWxbbl07cC5oYXNPd25Qcm9wZXJ0eShxKXx8KHBbcV09cil9ZWxzZSBpZihjPDI3KXt2YXIgdD1TdHJpbmcuZnJvbUNoYXJDb2RlKGM8MTA/NDgrYzo2NStjLTEwKTtiWyJrIit0XT0oIiIrU3RyaW5nKGUpKS5yZXBsYWNlKC9+L2csIn5+Iik7YlsidiIrdF09ZztjKyt9fX0pO3ZhciBkPVtdO0diKGIsZnVuY3Rpb24oZSxmKXtkLnB1c2goIiIrZStmKX0pO3JldHVybiBkLmpvaW4oIn4iKX0sCnFnPXtpdGVtX2lkOiJpZCIsaXRlbV9uYW1lOiJubSIsaXRlbV9icmFuZDoiYnIiLGl0ZW1fY2F0ZWdvcnk6ImNhIixpdGVtX2NhdGVnb3J5MjoiYzIiLGl0ZW1fY2F0ZWdvcnkzOiJjMyIsaXRlbV9jYXRlZ29yeTQ6ImM0IixpdGVtX2NhdGVnb3J5NToiYzUiLGl0ZW1fdmFyaWFudDoidmEiLHByaWNlOiJwciIscXVhbnRpdHk6InF0Iixjb3Vwb246ImNwIixpdGVtX2xpc3RfbmFtZToibG4iLGluZGV4OiJscCIsaXRlbV9saXN0X2lkOiJsaSIsZGlzY291bnQ6ImRzIixhZmZpbGlhdGlvbjoiYWYiLHByb21vdGlvbl9pZDoicGkiLHByb21vdGlvbl9uYW1lOiJwbiIsY3JlYXRpdmVfbmFtZToiY24iLGNyZWF0aXZlX3Nsb3Q6ImNzIixsb2NhdGlvbl9pZDoibG8ifSxyZz17aWQ6ImlkIixuYW1lOiJubSIsYnJhbmQ6ImJyIix2YXJpYW50OiJ2YSIsbGlzdF9uYW1lOiJsbiIsbGlzdF9wb3NpdGlvbjoibHAiLGxpc3Q6ImxuIixwb3NpdGlvbjoibHAiLGNyZWF0aXZlOiJjbiJ9LHNnPVsiY2EiLAoiYzIiLCJjMyIsImM0IiwiYzUiXTt2YXIgdWc9ZnVuY3Rpb24oYSl7dmFyIGI9W107R2IoYSxmdW5jdGlvbihjLGQpe2QhPW51bGwmJmIucHVzaChlbmNvZGVVUklDb21wb25lbnQoYykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpKX0pO3JldHVybiBiLmpvaW4oIiYiKX0sdmc9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt0aGlzLmJhc2VVcmw9Yjt0aGlzLmVuZHBvaW50PWM7dGhpcy5kZXN0aW5hdGlvbklkPWY7dGhpcy5ldmVudElkPWc7dGhpcy5wcmlvcml0eUlkPWg7dGhpcy5CYT1hLkJhO3RoaXMudmU9YS52ZTt0aGlzLkxqPWEuTGo7dGhpcy5OPWQ7dGhpcy5LPXVnKGEuQmEpO3RoaXMuSD11ZyhhLkxqKTt0aGlzLlI9dGhpcy5ILmxlbmd0aDtpZihlJiZ0aGlzLlI+MTYzODQpdGhyb3cgRXJyb3IoIkVWRU5UX1RPT19MQVJHRSIpO307CnZhciB3Zz1mdW5jdGlvbigpe3RoaXMuZXZlbnRzPVtdO3RoaXMuSD0iIjt0aGlzLkJhPXt9O3RoaXMuYmFzZVVybD0iIjt0aGlzLk49MDt0aGlzLks9MTt0aGlzLmVuZHBvaW50PTB9O3dnLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuUihhKT8odGhpcy5ldmVudHMucHVzaChhKSx0aGlzLkg9YS5LLHRoaXMuQmE9YS5CYSx0aGlzLmJhc2VVcmw9YS5iYXNlVXJsLHRoaXMuTis9YS5SLHRoaXMuSz1hLk4sdGhpcy5lbmRwb2ludD1hLmVuZHBvaW50LHRoaXMuZGVzdGluYXRpb25JZD1hLmRlc3RpbmF0aW9uSWQsdGhpcy5aPWEuZXZlbnRJZCx0aGlzLmZhPWEucHJpb3JpdHlJZCwhMCk6ITF9O3dnLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmV2ZW50cy5sZW5ndGg/dGhpcy5ldmVudHMubGVuZ3RoPj0yMHx8YS5SK3RoaXMuTj49MTYzODQ/ITE6dGhpcy5iYXNlVXJsPT09YS5iYXNlVXJsJiZ0aGlzLks9PT1hLk4mJnRoaXMuamEoYSk6ITB9Owp3Zy5wcm90b3R5cGUuamE9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSD09PWEuS307dmFyIEo9e1U6e2twOjEsbXA6MixFbjozLG5uOjQscWw6NSxybDo2LEVxOjcsbnA6OCxEcTo5LGpwOjEwLGhwOjExLHhuOjEyLHZuOjEzLE5rOjE0LFVvOjE1LFdvOjE2LGhuOjE3LHNsOjE4LGZuOjE5LGxwOjIwLFBxOjIxLGFwOjIyLFZvOjIzLFhvOjI0LG5sOjI1LExrOjI2LGVyOjI3LEptOjI4LFVtOjI5LFRtOjMwLFNtOjMxLE1tOjMyLEttOjMzLExtOjM0LEdtOjM1LEZtOjM2LEhtOjM3LEltOjM4LEJxOjM5LENxOjQwLFVxOjQxfX07Si5VW0ouVS5rcF09IkNSRUFURV9FVkVOVF9TT1VSQ0UiO0ouVVtKLlUubXBdPSJFRElUX0VWRU5UIjtKLlVbSi5VLkVuXT0iVFJBRkZJQ19UWVBFIjtKLlVbSi5VLm5uXT0iUkVGRVJSQUxfRVhDTFVTSU9OIjtKLlVbSi5VLnFsXT0iRUNPTU1FUkNFX0ZST01fR1RNX1RBRyI7Si5VW0ouVS5ybF09IkVDT01NRVJDRV9GUk9NX0dUTV9VQV9TQ0hFTUEiO0ouVVtKLlUuRXFdPSJHQV9TRU5EIjtKLlVbSi5VLm5wXT0iRU1fRk9STSI7CkouVVtKLlUuRHFdPSJHQV9HQU1fTElOSyI7Si5VW0ouVS5qcF09IkNSRUFURV9FVkVOVF9BVVRPX1BBR0VfUEFUSCI7Si5VW0ouVS5ocF09IkNSRUFURURfRVZFTlQiO0ouVVtKLlUueG5dPSJTSURFTE9BREVEIjtKLlVbSi5VLnZuXT0iU0dUTV9MRUdBQ1lfQ09ORklHVVJBVElPTiI7Si5VW0ouVS5Oa109IkNDRF9FTV9FVkVOVCI7Si5VW0ouVS5Vb109IkFVVE9fUkVEQUNUX0VNQUlMIjtKLlVbSi5VLldvXT0iQVVUT19SRURBQ1RfUVVFUllfUEFSQU0iO0ouVVtKLlUuaG5dPSJNVUxUSVBMRV9QQUdFVklFV19GUk9NX0NPTkZJRyI7Si5VW0ouVS5zbF09IkVNX0VWRU5UX1NFTlRfQkVGT1JFX0NPTkZJRyI7Si5VW0ouVS5mbl09IkxPQURFRF9WSUFfQ1NUX09SX1NJREVMT0FESU5HIjtKLlVbSi5VLmxwXT0iREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5QcV09Ik5PTl9ERUNPREVEX1BBUkFNX01BVENIIjtKLlVbSi5VLmFwXT0iQ0NEX0VWRU5UX1NHVE0iOwpKLlVbSi5VLlZvXT0iQVVUT19SRURBQ1RfRU1BSUxfU0dUTSI7Si5VW0ouVS5Yb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNX1NHVE0iO0ouVVtKLlUubmxdPSJEQUlMWV9MSU1JVF9SRUFDSEVEIjtKLlVbSi5VLkxrXT0iQlVSU1RfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5lcl09IlNIQVJFRF9VU0VSX0lEX1NFVF9BRlRFUl9SRVFVRVNUIjtKLlVbSi5VLkptXT0iR0E0X01VTFRJUExFX1NFU1NJT05fQ09PS0lFUyI7Si5VW0ouVS5VbV09IklOVkFMSURfR0E0X1NFU1NJT05fQ09VTlQiO0ouVVtKLlUuVG1dPSJJTlZBTElEX0dBNF9MQVNUX0VWRU5UX1RJTUVTVEFNUCI7Si5VW0ouVS5TbV09IklOVkFMSURfR0E0X0pPSU5fVElNRVIiO0ouVVtKLlUuTW1dPSJHQTRfU1RBTEVfU0VTU0lPTl9DT09LSUVfU0VMRUNURUQiO0ouVVtKLlUuS21dPSJHQTRfU0VTU0lPTl9DT09LSUVfR1MxX1JFQUQiO0ouVVtKLlUuTG1dPSJHQTRfU0VTU0lPTl9DT09LSUVfR1MyX1JFQUQiOwpKLlVbSi5VLkdtXT0iR0E0X0RMX1BBUkFNX1JFQ09WRVJZX0FWQUlMQUJMRSI7Si5VW0ouVS5GbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BUFBMSUVEIjtKLlVbSi5VLkhtXT0iR0E0X0dPT0dMRV9NRUFTVVJFTUVOVF9BTExPV0VEIjtKLlVbSi5VLkltXT0iR0E0X0dPT0dMRV9TSUdOQUxTX0VOQUJMRUQiO0ouVVtKLlUuQnFdPSJHQTRfRkFMTEJBQ0tfUkVRVUVTVCI7Si5VW0ouVS5DcV09IkdBX0FEU19MSU5LX0JFRk9SRV9DT05WRVJTSU9OX01BUktJTkciO0ouVVtKLlUuVXFdPSJQTEFUSU5VTV9FTElHSUJMRSI7dmFyIHhnPXt9LHlnPSh4Zy51YWE9ITAseGcudWFiPSEwLHhnLnVhZnZsPSEwLHhnLnVhbWI9ITAseGcudWFtPSEwLHhnLnVhcD0hMCx4Zy51YXB2PSEwLHhnLnVhdz0hMCx4Zyk7CnZhciBCZz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZXZlbnRzO2lmKGMubGVuZ3RoPT09MSlyZXR1cm4gemcoY1swXSxiKTt2YXIgZD1bXTthLkgmJmQucHVzaChhLkgpO2Zvcih2YXIgZT17fSxmPTA7ZjxjLmxlbmd0aDtmKyspR2IoY1tmXS52ZSxmdW5jdGlvbih0LHUpe3UhPW51bGwmJihlW3RdPWVbdF18fHt9LGVbdF1bU3RyaW5nKHUpXT1lW3RdW1N0cmluZyh1KV0rMXx8MSl9KTt2YXIgZz17fTtHYihlLGZ1bmN0aW9uKHQsdSl7dmFyIHYseD0tMSx5PTA7R2IodSxmdW5jdGlvbih6LEMpe3krPUM7dmFyIEQ9KHoubGVuZ3RoK3QubGVuZ3RoKzIpKihDLTEpO0Q+eCYmKHY9eix4PUQpfSk7eT09PWMubGVuZ3RoJiYoZ1t0XT12KX0pO0FnKGcsZCk7YiYmZC5wdXNoKCJfcz0iK2IpO2Zvcih2YXIgaD1kLmpvaW4oIiYiKSxsPVtdLG49e30scD0wO3A8Yy5sZW5ndGg7bj17Zms6dm9pZCAwfSxwKyspe3ZhciBxPVtdO24uZms9e307R2IoY1twXS52ZSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odSwKdil7Z1t1XSE9PSIiK3YmJih0LmZrW3VdPXYpfX0obikpO2NbcF0uSCYmcS5wdXNoKGNbcF0uSCk7QWcobi5mayxxKTtsLnB1c2gocS5qb2luKCImIikpfXZhciByPWwuam9pbigiXHJcbiIpO3JldHVybntwYXJhbXM6aCxib2R5OnJ9fSx6Zz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2EuSyYmYy5wdXNoKGEuSyk7YiYmYy5wdXNoKCJfcz0iK2IpO0FnKGEudmUsYyk7dmFyIGQ9ITE7YS5IJiYoYy5wdXNoKGEuSCksZD0hMCk7dmFyIGU9Yy5qb2luKCImIiksZj0iIixnPWUubGVuZ3RoK2EuYmFzZVVybC5sZW5ndGgrMTtkJiZnPjIwNDgmJihmPWMucG9wKCksZT1jLmpvaW4oIiYiKSk7cmV0dXJue3BhcmFtczplLGJvZHk6Zn19LEFnPWZ1bmN0aW9uKGEsYil7R2IoYSxmdW5jdGlvbihjLGQpe2QhPW51bGwmJmIucHVzaChlbmNvZGVVUklDb21wb25lbnQoYykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChkKSl9KX07CnZhciBFZz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1hLGU9YltjXTtpZighQ2cuZXhlYyhlKSl0aHJvdyBFcnJvcigiSW52YWxpZCBrZXkgd2lsZGNhcmQiKTt2YXIgZj1lLmluZGV4T2YoIi4qIiksZz1mIT09LTEmJmY9PT1lLmxlbmd0aC0yLGg9Zz9lLnNsaWNlKDAsZS5sZW5ndGgtMik6ZSxsO2E6aWYoZC5sZW5ndGg9PT0wKWw9ITE7ZWxzZXtmb3IodmFyIG49ZC5zcGxpdCgiLiIpLHA9MDtwPG4ubGVuZ3RoO3ArKylpZighRGcuZXhlYyhuW3BdKSl7bD0hMTticmVhayBhfWw9ITB9aWYoIWx8fGgubGVuZ3RoPmQubGVuZ3RofHwhZyYmZC5sZW5ndGghPT1lLmxlbmd0aD8wOmc/U2IoZCxoKSYmKGQ9PT1ofHxkLmNoYXJBdChoLmxlbmd0aCk9PT0iLiIpOmQ9PT1oKXJldHVybiEwfXJldHVybiExfSxEZz0vXlthLXokX11bXHctJF0qJC9pLENnPS9eKD86W2Etel8kXVthLXotXyQwLTldKlwuKSpbYS16XyRdW2Etei1fJDAtOV0qKD86XC5cKik/JC9pOwp2YXIgRmc9WyJtYXRjaGVzIiwid2Via2l0TWF0Y2hlc1NlbGVjdG9yIiwibW96TWF0Y2hlc1NlbGVjdG9yIiwibXNNYXRjaGVzU2VsZWN0b3IiLCJvTWF0Y2hlc1NlbGVjdG9yIl07ZnVuY3Rpb24gR2coYSxiKXtpZighYSlyZXR1cm4hMTt0cnl7Zm9yKHZhciBjPTA7YzxGZy5sZW5ndGg7YysrKXt2YXIgZD1GZ1tjXTtpZihhW2RdIT1udWxsKXJldHVybiBhW2RdKGIpfX1jYXRjaChlKXt9cmV0dXJuITF9ZnVuY3Rpb24gSGcoYSxiKXt2YXIgYz1TdHJpbmcoYSksZD1TdHJpbmcoYiksZT1jLmxlbmd0aC1kLmxlbmd0aDtyZXR1cm4gZT49MCYmYy5pbmRleE9mKGQsZSk9PT1lfWZ1bmN0aW9uIElnKGEsYil7cmV0dXJuIFN0cmluZyhhKS5zcGxpdCgiLCIpLmluZGV4T2YoU3RyaW5nKGIpKT49MH0KZnVuY3Rpb24gSmcoYSxiLGMsZCl7dmFyIGU9Yz8iaSI6dm9pZCAwO3RyeXt2YXIgZj1TdHJpbmcoYikrU3RyaW5nKGUpLGc9ZD09bnVsbD92b2lkIDA6ZC5nZXQoZik7Z3x8KGc9bmV3IFJlZ0V4cChiLGUpLGQ9PW51bGx8fGQuc2V0KGYsZykpO3JldHVybiBnLnRlc3QoYSl9Y2F0Y2goaCl7cmV0dXJuITF9fWZ1bmN0aW9uIEtnKGEsYil7cmV0dXJuIFN0cmluZyhhKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9ZnVuY3Rpb24gTGcoYSxiKXtyZXR1cm4gU3RyaW5nKGEpPT09U3RyaW5nKGIpfWZ1bmN0aW9uIE1nKGEsYil7cmV0dXJuIE51bWJlcihhKT49TnVtYmVyKGIpfWZ1bmN0aW9uIE5nKGEsYil7cmV0dXJuIE51bWJlcihhKTw9TnVtYmVyKGIpfWZ1bmN0aW9uIE9nKGEsYil7cmV0dXJuIE51bWJlcihhKT5OdW1iZXIoYil9ZnVuY3Rpb24gUGcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPE51bWJlcihiKX0KZnVuY3Rpb24gUWcoYSxiKXtyZXR1cm4gU2IoU3RyaW5nKGEpLFN0cmluZyhiKSl9O2Z1bmN0aW9uIFhnKGEpe3ZhciBiPWEuc2VhcmNoO3JldHVybiBhLnByb3RvY29sKyIvLyIrYS5ob3N0bmFtZSthLnBhdGhuYW1lKyhiP2IrIiZyaWNoc3N0c3NlIjoiP3JpY2hzc3Rzc2UiKX07dmFyIFlnPWZ1bmN0aW9uKCl7dGhpcy5SPSIifSwkZz1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPWIuZmFsbGJhY2tfdXJsLGQ9Yi5mYWxsYmFja191cmxfbWV0aG9kO2lmKGMmJmQpe3ZhciBlPXt9O1pnKGEsKGVbZF09W2NdLGUub3B0aW9ucz17fSxlKSl9fX0sYWg9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7dHlwZW9mIGY9PT0ic3RyaW5nIiYmYyhmLGIpfX0sWmc9ZnVuY3Rpb24oYSxiKXtpZihiKWZvcih2YXIgYz1DZChiLm9wdGlvbnMpP2Iub3B0aW9uczp7fSxkPW0oT2JqZWN0LmtleXMoYikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9YltmXTtzd2l0Y2goZil7Y2FzZSAic2VuZF9waXhlbCI6YWgoZyxjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5LKGgsbCl9KTticmVhaztjYXNlICJmZXRjaCI6YWgoZywKYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSChoLGwpfSl9fX07dmFyIGJoPS9eKFthLXpdW2EtejAtOV0qKTooIXxcPykoXCp8c3RyaW5nfGJvb2xlYW58bnVtYmVyfEZufFBpeGllTWFwfExpc3R8T3BhcXVlVmFsdWUpJC9pLGNoPXtGbjoiZnVuY3Rpb24iLFBpeGllTWFwOiJPYmplY3QiLExpc3Q6IkFycmF5In07CmZ1bmN0aW9uIGRoKGEsYil7Zm9yKHZhciBjPVsiaW5wdXQ6ISoiXSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWJoLmV4ZWMoY1tkXSk7aWYoIWUpdGhyb3cgRXJyb3IoIkludGVybmFsIEVycm9yIGluICIrYSk7dmFyIGY9ZVsxXSxnPWVbMl09PT0iISIsaD1lWzNdLGw9YltkXTtpZihsPT1udWxsKXtpZihnKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gUmVxdWlyZWQgYXJndW1lbnQgIitmKyIgbm90IHN1cHBsaWVkLiIpO31lbHNlIGlmKGghPT0iKiIpe3ZhciBuPXR5cGVvZiBsO2wgaW5zdGFuY2VvZiBLZD9uPSJGbiI6bCBpbnN0YW5jZW9mIEdkP249Ikxpc3QiOmwgaW5zdGFuY2VvZiBrYj9uPSJQaXhpZU1hcCI6bCBpbnN0YW5jZW9mIFNkP249IlBpeGllUHJvbWlzZSI6bCBpbnN0YW5jZW9mIFBkJiYobj0iT3BhcXVlVmFsdWUiKTtpZihuIT09aCl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIEFyZ3VtZW50ICIrZisiIGhhcyB0eXBlICIrKChjaFtuXXx8bikrIiwgd2hpY2ggZG9lcyBub3QgbWF0Y2ggcmVxdWlyZWQgdHlwZSAiKSsKKChjaFtoXXx8aCkrIi4iKSk7fX19ZnVuY3Rpb24gSyhhLGIsYyl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtnIGluc3RhbmNlb2YgS2Q/ZC5wdXNoKCJmdW5jdGlvbiIpOmcgaW5zdGFuY2VvZiBHZD9kLnB1c2goIkFycmF5Iik6ZyBpbnN0YW5jZW9mIGtiP2QucHVzaCgiT2JqZWN0Iik6ZyBpbnN0YW5jZW9mIFNkP2QucHVzaCgiUHJvbWlzZSIpOmcgaW5zdGFuY2VvZiBQZD9kLnB1c2goIk9wYXF1ZVZhbHVlIik6ZC5wdXNoKHR5cGVvZiBnKX1yZXR1cm4gRXJyb3IoIkFyZ3VtZW50IGVycm9yIGluICIrYSsiLiBFeHBlY3RlZCBhcmd1bWVudCB0eXBlcyBbIisoYi5qb2luKCIsIikrIl0sIGJ1dCByZWNlaXZlZCBbIikrKGQuam9pbigiLCIpKyJdLiIpKX1mdW5jdGlvbiBlaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGtifWZ1bmN0aW9uIGZoKGEpe3JldHVybiBlaChhKXx8YT09PW51bGx8fGdoKGEpfQpmdW5jdGlvbiBoaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEtkfWZ1bmN0aW9uIGloKGEpe3JldHVybiBoaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIGpoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgR2R9ZnVuY3Rpb24ga2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBQZH1mdW5jdGlvbiBsaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn1mdW5jdGlvbiBtaChhKXtyZXR1cm4gbGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBuaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiJ9ZnVuY3Rpb24gb2goYSl7cmV0dXJuIG5oKGEpfHxnaChhKX1mdW5jdGlvbiBwaChhKXtyZXR1cm4gbmgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBxaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn1mdW5jdGlvbiBnaChhKXtyZXR1cm4gYT09PXZvaWQgMH07ZnVuY3Rpb24gcmgoYSl7cmV0dXJuIiIrYX0KZnVuY3Rpb24gc2goYSxiKXt2YXIgYz1bXTtyZXR1cm4gY307ZnVuY3Rpb24gdGgoYSxiKXt2YXIgYz1uZXcgS2QoYSxmdW5jdGlvbigpe2Zvcih2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCksZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV09dGhpcy5ldmFsdWF0ZShkW2VdKTt0cnl7cmV0dXJuIGIuYXBwbHkodGhpcyxkKX1jYXRjaChnKXt0aHJvdyBjYihnKTt9fSk7Yy5aYSgpO3JldHVybiBjfQpmdW5jdGlvbiB1aChhLGIpe3ZhciBjPW5ldyBrYixkO2ZvcihkIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9YltkXTt5YihlKT9jLnNldChkLHRoKGErIl8iK2QsZSkpOkNkKGUpP2Muc2V0KGQsdWgoYSsiXyIrZCxlKSk6KEFiKGUpfHx6YihlKXx8dHlwZW9mIGU9PT0iYm9vbGVhbiIpJiZjLnNldChkLGUpfWMuWmEoKTtyZXR1cm4gY307ZnVuY3Rpb24gd2goYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRBcGlTdWJqZWN0IiwKYyl9O2Z1bmN0aW9uIHhoKGEsYil7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBTZCl0aHJvdyBFcnJvcigiQXJndW1lbnQgYWN0dWFsIGNhbm5vdCBoYXZlIHR5cGUgUHJvbWlzZS4gQXNzZXJ0aW9ucyBvbiBhc3luY2hyb25vdXMgY29kZSBhcmVuJ3Qgc3VwcG9ydGVkLiIpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRUaGF0U3ViamVjdCIsYyl9O2Z1bmN0aW9uIHloKGEpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgYj1PYS5hcHBseSgwLGFyZ3VtZW50cyksYz1bXSxkPXRoaXMuVCxlPTA7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKFRkKGJbZV0sZCkpO3JldHVybiBVZChhLmFwcGx5KG51bGwsYykpfX1mdW5jdGlvbiB6aCgpe2Zvcih2YXIgYT1NYXRoLGI9QWgsYz17fSxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07YS5oYXNPd25Qcm9wZXJ0eShlKSYmKGNbZV09eWgoYVtlXS5iaW5kKGEpKSl9cmV0dXJuIGN9O2Z1bmN0aW9uIEJoKGEpe3JldHVybiBhIT1udWxsJiZTYihhLCJfX2N2dF8iKX07ZnVuY3Rpb24gQ2goYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIERoKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYyl7fXJldHVybiBifTtmdW5jdGlvbiBFaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSShhKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBGaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEdoKGEsYil7dmFyIGM9ITE7dmFyIGQ9SlNPTi5wYXJzZShhKTtpZighZCl0aHJvdyBFcnJvcigiSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gc3RyaW5nIHdhcyBnaXZlbi4iKTtjPUhoKGQsYik7cmV0dXJuIGN9CnZhciBJaD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXtpZihhPT09dm9pZCAwKXJldHVybjthPWFbYltjXV19cmV0dXJuIGF9LEpoPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5wcmVIaXQ7aWYoYyl7dmFyIGQ9YVswXTtzd2l0Y2goZCl7Y2FzZSAiaGl0RGF0YSI6cmV0dXJuIGEubGVuZ3RoPDI/dm9pZCAwOkloKGMuZ2V0SGl0RGF0YShhWzFdKSxhLnNsaWNlKDIpKTtjYXNlICJtZXRhZGF0YSI6cmV0dXJuIGEubGVuZ3RoPDI/dm9pZCAwOkloKGMuZ2V0TWV0YWRhdGEoYVsxXSksYS5zbGljZSgyKSk7Y2FzZSAiZXZlbnROYW1lIjpyZXR1cm4gYy5nZXRFdmVudE5hbWUoKTtjYXNlICJkZXN0aW5hdGlvbklkIjpyZXR1cm4gYy5nZXREZXN0aW5hdGlvbklkKCk7ZGVmYXVsdDp0aHJvdyBFcnJvcihkKyIgaXMgbm90IGEgdmFsaWQgZmllbGQgdGhhdCBjYW4gYmUgYWNjZXNzZWRcbiAgICAgICAgICAgICAgICAgICAgICBmcm9tIFByZUhpdCBkYXRhLiIpO319fSwKS2g9ZnVuY3Rpb24oYSxiKXtpZihhKXtpZihhLmNvbnRleHRWYWx1ZSE9PXZvaWQgMCl7dmFyIGM7YTp7dmFyIGQ9YS5jb250ZXh0VmFsdWUsZT1kLmtleVBhcnRzO2lmKGUmJmUubGVuZ3RoIT09MCl7dmFyIGY9ZC5uYW1lc3BhY2VUeXBlO3N3aXRjaChmKXtjYXNlIDE6Yz1KaChlLGIpO2JyZWFrIGE7Y2FzZSAyOnZhciBnPWIubWFjcm87Yz1nP2dbZVswXV06dm9pZCAwO2JyZWFrIGE7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2UgVHlwZSB1c2VkOiAiK2YpO319Yz12b2lkIDB9cmV0dXJuIGN9aWYoYS5ib29sZWFuRXhwcmVzc2lvblZhbHVlIT09dm9pZCAwKXJldHVybiBIaChhLmJvb2xlYW5FeHByZXNzaW9uVmFsdWUsYik7aWYoYS5ib29sZWFuVmFsdWUhPT12b2lkIDApcmV0dXJuISFhLmJvb2xlYW5WYWx1ZTtpZihhLnN0cmluZ1ZhbHVlIT09dm9pZCAwKXJldHVybiBTdHJpbmcoYS5zdHJpbmdWYWx1ZSk7aWYoYS5pbnRlZ2VyVmFsdWUhPT12b2lkIDApcmV0dXJuIE51bWJlcihhLmludGVnZXJWYWx1ZSk7CmlmKGEuZG91YmxlVmFsdWUhPT12b2lkIDApcmV0dXJuIE51bWJlcihhLmRvdWJsZVZhbHVlKTt0aHJvdyBFcnJvcigiVW5rbm93biBmaWVsZCB1c2VkIGZvciB2YXJpYWJsZSBvZiB0eXBlIEV4cHJlc3Npb25WYWx1ZToiK2EpO319LEhoPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5hcmdzO2lmKCFBcnJheS5pc0FycmF5KGMpfHxjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIGZvcm1hdC4gRXhwZWN0ZWQgImFyZ3MiOicrYysiIHByb3BlcnR5IHRvXG4gICAgICAgICBiZSBub24tZW1wdHkgYXJyYXkuIik7dmFyIGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEtoKGcsYil9O3N3aXRjaChhLnR5cGUpe2Nhc2UgMTpmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKylpZihkKGNbZV0pKXJldHVybiEwO3JldHVybiExO2Nhc2UgMjpmb3IodmFyIGY9MDtmPGMubGVuZ3RoO2YrKylpZighZChjW2ZdKSlyZXR1cm4hMTtyZXR1cm4gYy5sZW5ndGg+MDtjYXNlIDM6cmV0dXJuIWQoY1swXSk7CmNhc2UgNDpyZXR1cm4gSmcoZChjWzBdKSxkKGNbMV0pLCExLGIucmVnZXhDYWNoZSk7Y2FzZSA1OnJldHVybiBMZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgNjpyZXR1cm4gUWcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDc6cmV0dXJuIEhnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA4OnJldHVybiBLZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgOTpyZXR1cm4gUGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEwOnJldHVybiBOZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTE6cmV0dXJuIE9nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMjpyZXR1cm4gTWcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEzOnJldHVybiBJZyhkKGNbMF0pLFN0cmluZyhkKGNbMV0pKSk7ZGVmYXVsdDp0aHJvdyBFcnJvcignSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gZm9ybWF0LiBFeHBlY3RlZCAidHlwZSIgcHJvcGVydHkgdG9iZSBhIHBvc2l0aXZlIGludGVnZXIgd2hpY2ggaXMgbGVzcyB0aGFuIDE0LicpO319OwpmdW5jdGlvbiBMaChhKXtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO307ZnVuY3Rpb24gTWgoYSl7dmFyIGI9VGQoYSk7cmV0dXJuIG5nKGI/IiIrYjoiIil9O2Z1bmN0aW9uIE5oKGEsYil7aWYoIXFoKGEpfHwhcWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIm51bWJlciIsIm51bWJlciJdLGFyZ3VtZW50cyk7cmV0dXJuIERiKGEsYil9O2Z1bmN0aW9uIE9oKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9O2Z1bmN0aW9uIFBoKGEpe2lmKGE9PT1udWxsKXJldHVybiJudWxsIjtpZihhIGluc3RhbmNlb2YgR2QpcmV0dXJuImFycmF5IjtpZihhIGluc3RhbmNlb2YgS2QpcmV0dXJuImZ1bmN0aW9uIjtpZihhIGluc3RhbmNlb2YgUGQpe3ZhciBiPWEuZ2V0VmFsdWUoKTtpZigoYj09bnVsbD92b2lkIDA6Yi5jb25zdHJ1Y3Rvcik9PT12b2lkIDB8fGIuY29uc3RydWN0b3IubmFtZT09PXZvaWQgMCl7dmFyIGM9U3RyaW5nKGIpO3JldHVybiBjLnN1YnN0cmluZyg4LGMubGVuZ3RoLTEpfXJldHVybiBTdHJpbmcoYi5jb25zdHJ1Y3Rvci5uYW1lKX1yZXR1cm4gdHlwZW9mIGF9O2Z1bmN0aW9uIFFoKGEpe2Z1bmN0aW9uIGIoYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3RyeXtyZXR1cm4gYyhkKX1jYXRjaChlKXsobGd8fG1nLlBvKSYmYS5jYWxsKHRoaXMsZS5tZXNzYWdlKX19fXJldHVybntwYXJzZTpiKGZ1bmN0aW9uKGMpe3JldHVybiBVZChKU09OLnBhcnNlKGMpKX0pLHN0cmluZ2lmeTpiKGZ1bmN0aW9uKGMpe3JldHVybiBKU09OLnN0cmluZ2lmeShUZChjKSl9KSxwdWJsaWNOYW1lOiJKU09OIn19O2Z1bmN0aW9uIFJoKGEpe3JldHVybiBJYihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBTaChhKXtyZXR1cm4gTnVtYmVyKFRkKGEsdGhpcy5UKSl9O2Z1bmN0aW9uIFRoKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIFVoKGEsYixjKXt2YXIgZD1udWxsLGU9ITE7cmV0dXJuIGU/ZDpudWxsfTt2YXIgQWg9ImZsb29yIGNlaWwgcm91bmQgbWF4IG1pbiBhYnMgcG93IHNxcnQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gVmgoKXt2YXIgYT17fTtyZXR1cm57V3I6ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoYik/YVtiXTp2b2lkIDB9LEtvOmZ1bmN0aW9uKGIsYyl7YVtiXT1jfSxyZXNldDpmdW5jdGlvbigpe2E9e319fX1mdW5jdGlvbiBXaChhLGIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBLZC5wcm90b3R5cGUuaW52b2tlLmFwcGx5KGEsW2JdLmNvbmNhdCh3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpKX19CmZ1bmN0aW9uIFhoKGEsYil7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJhbnkiXSxhcmd1bWVudHMpO30KZnVuY3Rpb24gWWgoYSxiKXtpZighbGgoYSl8fCFlaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiUGl4aWVNYXAiXSxhcmd1bWVudHMpO307dmFyIFpoPXt9O3ZhciAkaD1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2I7aWYoYSBpbnN0YW5jZW9mIEdkKWZvcih2YXIgYz1hLkZhKCksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO2EuaGFzKGUpJiZiLnNldChlLGEuZ2V0KGUpKX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBLZClmb3IodmFyIGY9YS5GYSgpLGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGg9ZltnXTtiLnNldChoLGEuZ2V0KGgpKX1lbHNlIGZvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKWIuc2V0KGwsYVtsXSk7cmV0dXJuIGJ9OwpaaC5rZXlzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuRmEoKSk7cmV0dXJuIG5ldyBHZH07ClpoLnZhbHVlcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmhjKCkpO3JldHVybiBuZXcgR2R9OwpaaC5lbnRyaWVzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuZmMoKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBHZChiKX0pKTtyZXR1cm4gbmV3IEdkfTsKWmguZnJlZXplPWZ1bmN0aW9uKGEpeyhhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZHx8YSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2QpJiZhLlphKCk7cmV0dXJuIGF9O1poLmRlbGV0ZT1mdW5jdGlvbihhLGIpe2lmKGEgaW5zdGFuY2VvZiBrYiYmIWEuSGIoKSlyZXR1cm4gYS5yZW1vdmUoYiksITA7cmV0dXJuITF9O2Z1bmN0aW9uIEwoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZD1hLlQueGIoKTtpZighZCl0aHJvdyBFcnJvcigiTWlzc2luZyBwcm9ncmFtIHN0YXRlLiIpO2lmKGQuaXQpe3RyeXtkLlJuLmFwcGx5KG51bGwsW2JdLmNvbmNhdCh3KGMpKSl9Y2F0Y2goZSl7dGhyb3cgc2IoIlRBR0dJTkciLDIxKSxlO31yZXR1cm59ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfTt2YXIgYWk9ZnVuY3Rpb24oKXt0aGlzLks9e307dGhpcy5IPXt9O3RoaXMuTj0hMDt9O2FpLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRhaW5zKGEpP3RoaXMuS1thXTp2b2lkIDA7cmV0dXJuIGN9O2FpLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5LLmhhc093blByb3BlcnR5KGEpfTsKYWkucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIsYyl7aWYodGhpcy5jb250YWlucyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBmdW5jdGlvbiB3aGljaCBhbHJlYWR5IGV4aXN0czogIithKyIuIik7aWYodGhpcy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhbiBBUEkgd2l0aCBhbiBleGlzdGluZyBwcml2YXRlIEFQSSBuYW1lOiAiK2ErIi4iKTt0aGlzLktbYV09Yz92b2lkIDA6eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBiaShhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY307ZnVuY3Rpb24gY2koKXt2YXIgYT17fTsKcmV0dXJuIGF9O3ZhciBkaT17fSxlaT0oZGlbRi5ELnNhXT0iZ2N1IixkaVtGLkQuZWhdPSJlcHQiLGRpW0YuRC5TYl09ImdjbGdiIixkaVtGLkQubGJdPSJnY2xhdyIsZGlbRi5ELnpsXT0iZ2NsaWRfbGVuIixkaVtGLkQuQmVdPSJnY2xncyIsZGlbRi5ELkNlXT0iZ2NsbHAiLGRpW0YuRC5EZV09ImdjbHN0IixkaVtGLkQuRWRdPSJhdWlkIixkaVtGLkQuQmxdPSJhZSIsZGlbRi5ELkNmXT0iZHNjbnQiLGRpW0YuRC5EZl09ImZjbnRyIixkaVtGLkQuRWZdPSJmbG5nIixkaVtGLkQuRmZdPSJtaWQiLGRpW0YuRC53aV09ImJ0dHlwZSIsZGlbRi5ELktiXT0iZ2FjaWQiLGRpW0YuRC5HZF09ImxhYmVsIixkaVtGLkQuRmVdPSJjYXBpIixkaVtGLkQuamhdPSJwc2NkbCIsZGlbRi5ELmViXT0iY3VycmVuY3lfY29kZSIsZGlbRi5ELkdlXT0idmRsdHYiLGRpW0YuRC5raF09ImNsb2N0IixkaVtGLkQuRWxdPSJfZGJnIixkaVtGLkQuSWVdPSJvZWRlbGQiLGRpW0YuRC5WY109ImVkaWQiLGRpW0YuRC5NZF09ImV2bmlkIiwKZGlbRi5ELkVpXT0iZXZqaWQiLGRpW0YuRC5OZF09ImV4Y2lkIixkaVtGLkQucmhdPSJnYWMiLGRpW0YuRC5KZV09ImdhY2diIixkaVtGLkQuTWxdPSJnYWNtY292IixkaVtGLkQuS2VdPSJnZHByIixkaVtGLkQuWGNdPSJnZGlkIixkaVtGLkQuTGVdPSJfbmciLGRpW0YuRC5jcV09Il9vbm8iLGRpW0YuRC50aF09ImdwcF9zaWQiLGRpW0YuRC51aF09ImdwcCIsZGlbRi5ELlBsXT0iZ3NhZXhwIixkaVtGLkQuVmZdPSJfdHUiLGRpW0YuRC5NZV09ImZybSIsZGlbRi5ELktpXT0iZ3RtX3VwIixkaVtGLkQuUGRdPSJscHMiLGRpW0YuRC5MaV09ImRpZCIsZGlbRi5ELlFkXT0iZmNudHIiLGRpW0YuRC5SZF09ImZsbmciLGRpW0YuRC5TZF09Im1pZCIsZGlbRi5ELk5lXT12b2lkIDAsZGlbRi5ELk1iXT0idGliYSIsZGlbRi5ELldiXT0icmRwIixkaVtGLkQueGNdPSJlY3NpZCIsZGlbRi5ELlpmXT0iZ2FfdWlkIixkaVtGLkQuVWRdPSJkZWxvcGMiLGRpW0YuRC5PZV09ImdkcHJfY29uc2VudCIsCmRpW0YuRC5QYV09Im9pZCIsZGlbRi5ELmRtXT0ib2lkc3JjIixkaVtGLkQuZm1dPSJ1cHRncyIsZGlbRi5ELmNnXT0idWFhIixkaVtGLkQuZGddPSJ1YWIiLGRpW0YuRC5lZ109InVhZnZsIixkaVtGLkQuZmddPSJ1YW1iIixkaVtGLkQuZ2ddPSJ1YW0iLGRpW0YuRC5oZ109InVhcCIsZGlbRi5ELmlnXT0idWFwdiIsZGlbRi5ELmpnXT0idWF3IixkaVtGLkQuZ21dPSJlY19sYXQiLGRpW0YuRC5obV09ImVjX21ldGEiLGRpW0YuRC5pbV09ImVjX20iLGRpW0YuRC5qbV09ImVjX3NlbCIsZGlbRi5ELmttXT0iZWNfcyIsZGlbRi5ELkJjXT0iZWNfbW9kZSIsZGlbRi5ELmZiXT0idXNlcklkIixkaVtGLkQua2ddPSJ1c19wcml2YWN5IixkaVtGLkQuUWFdPSJ2YWx1ZSIsZGlbRi5ELnFtXT0ibWNvdiIsZGlbRi5ELldpXT0iaG4iLGRpW0YuRC5WbV09Imd0bV9lZSIsZGlbRi5ELllpXT0idWlwIixkaVtGLkQuSmhdPSJtdCIsZGlbRi5ELmRlXT0ibnBhIixkaVtGLkQuWXFdPSJzZ191YyIsZGlbRi5ELnlpXT0KbnVsbCxkaVtGLkQuYmRdPW51bGwsZGlbRi5ELnRiXT1udWxsLGRpW0YuRC5IYV09bnVsbCxkaVtGLkQuemFdPW51bGwsZGlbRi5ELlVhXT1udWxsLGRpW0YuRC5QZV09bnVsbCxkaVtGLkQuZWRdPW51bGwsZGlbRi5ELnNoXT1udWxsLGRpW0YuRC5CZF09bnVsbCxkaVtGLkQuQ2RdPW51bGwsZGlbRi5ELmZoXT1udWxsLGRpW0YuRC5naF09bnVsbCxkaVtGLkQuVGFdPW51bGwsZGlbRi5ELldjXT1udWxsLGRpKTtmdW5jdGlvbiBmaShhLGIpe2lmKGEpe3ZhciBjPWEuc3BsaXQoIngiKTtjLmxlbmd0aD09PTImJihnaShiLCJ1X3ciLGNbMF0pLGdpKGIsInVfaCIsY1sxXSkpfX1mdW5jdGlvbiBoaShhKXt2YXIgYj1paTtiPWI9PT12b2lkIDA/amk6YjtyZXR1cm4ga2kobGkoYSxiKSl9ZnVuY3Rpb24ga2koYSl7cmV0dXJuKGF8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiIoIitbbWkoYi52YWx1ZSksbWkoYi5xdWFudGl0eSksbWkoYi5pdGVtX2lkKSxtaShiLnN0YXJ0X2RhdGUpLG1pKGIuZW5kX2RhdGUpXS5qb2luKCIqIikrIikifSkuam9pbigiIil9CmZ1bmN0aW9uIGxpKGEsYil7cmV0dXJuKGF8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybntpdGVtX2lkOmIoYykscXVhbnRpdHk6Yy5xdWFudGl0eSx2YWx1ZTpjLnByaWNlLHN0YXJ0X2RhdGU6Yy5zdGFydF9kYXRlLGVuZF9kYXRlOmMuZW5kX2RhdGV9fSl9ZnVuY3Rpb24gamkoYSl7cmV0dXJuW2EuaXRlbV9pZCxhLmlkLGEuaXRlbV9uYW1lXS5maW5kKGZ1bmN0aW9uKGIpe3JldHVybiBiIT1udWxsfSl9ZnVuY3Rpb24gbmkoYSl7aWYoYSYmYS5sZW5ndGgpcmV0dXJuIGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiJiZiLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlP2IuZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGU6IiJ9KS5qb2luKCIsIil9ZnVuY3Rpb24gZ2koYSxiLGMpe2M9PT12b2lkIDB8fGM9PT1udWxsfHxjPT09IiImJiF5Z1tiXXx8KGFbYl09Yyl9CmZ1bmN0aW9uIG1pKGEpe3JldHVybiB0eXBlb2YgYSE9PSJudW1iZXIiJiZ0eXBlb2YgYSE9PSJzdHJpbmciPyIiOmEudG9TdHJpbmcoKX07ZnVuY3Rpb24gb2koKXt0aGlzLmJsb2NrU2l6ZT0tMX07ZnVuY3Rpb24gcGkoYSxiKXt0aGlzLmJsb2NrU2l6ZT0tMTt0aGlzLmJsb2NrU2l6ZT02NDt0aGlzLk49UmEuVWludDhBcnJheT9uZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk6QXJyYXkodGhpcy5ibG9ja1NpemUpO3RoaXMuUj10aGlzLks9MDt0aGlzLkg9W107dGhpcy5mYT1hO3RoaXMuWj1iO3RoaXMuamE9UmEuSW50MzJBcnJheT9uZXcgSW50MzJBcnJheSg2NCk6QXJyYXkoNjQpO3FpPT09dm9pZCAwJiYoUmEuSW50MzJBcnJheT9xaT1uZXcgSW50MzJBcnJheShyaSk6cWk9cmkpO3RoaXMucmVzZXQoKX1TYShwaSxvaSk7Zm9yKHZhciBzaT1bXSx0aT0wO3RpPDYzO3RpKyspc2lbdGldPTA7dmFyIHVpPVtdLmNvbmNhdCgxMjgsc2kpOwpwaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLlI9dGhpcy5LPTA7dmFyIGE7aWYoUmEuSW50MzJBcnJheSlhPW5ldyBJbnQzMkFycmF5KHRoaXMuWik7ZWxzZXt2YXIgYj10aGlzLlosYz1iLmxlbmd0aDtpZihjPjApe2Zvcih2YXIgZD1BcnJheShjKSxlPTA7ZTxjO2UrKylkW2VdPWJbZV07YT1kfWVsc2UgYT1bXX10aGlzLkg9YX07CnZhciB2aT1mdW5jdGlvbihhKXtmb3IodmFyIGI9YS5OLGM9YS5qYSxkPTAsZT0wO2U8Yi5sZW5ndGg7KWNbZCsrXT1iW2VdPDwyNHxiW2UrMV08PDE2fGJbZSsyXTw8OHxiW2UrM10sZT1kKjQ7Zm9yKHZhciBmPTE2O2Y8NjQ7ZisrKXt2YXIgZz1jW2YtMTVdfDAsaD1jW2YtMl18MDtjW2ZdPSgoY1tmLTE2XXwwKSsoKGc+Pj43fGc8PDI1KV4oZz4+PjE4fGc8PDE0KV5nPj4+Myl8MCkrKChjW2YtN118MCkrKChoPj4+MTd8aDw8MTUpXihoPj4+MTl8aDw8MTMpXmg+Pj4xMCl8MCl8MH1mb3IodmFyIGw9YS5IWzBdfDAsbj1hLkhbMV18MCxwPWEuSFsyXXwwLHE9YS5IWzNdfDAscj1hLkhbNF18MCx0PWEuSFs1XXwwLHU9YS5IWzZdfDAsdj1hLkhbN118MCx4PTA7eDw2NDt4Kyspe3ZhciB5PSgobD4+PjJ8bDw8MzApXihsPj4+MTN8bDw8MTkpXihsPj4+MjJ8bDw8MTApKSsobCZuXmwmcF5uJnApfDAsej0odisoKHI+Pj42fHI8PDI2KV4ocj4+PjExfHI8PDIxKV4ocj4+PjI1fHI8PDcpKXwKMCkrKCgociZ0Xn5yJnUpKyhxaVt4XXwwKXwwKSsoY1t4XXwwKXwwKXwwO3Y9dTt1PXQ7dD1yO3I9cSt6fDA7cT1wO3A9bjtuPWw7bD16K3l8MH1hLkhbMF09YS5IWzBdK2x8MDthLkhbMV09YS5IWzFdK258MDthLkhbMl09YS5IWzJdK3B8MDthLkhbM109YS5IWzNdK3F8MDthLkhbNF09YS5IWzRdK3J8MDthLkhbNV09YS5IWzVdK3R8MDthLkhbNl09YS5IWzZdK3V8MDthLkhbN109YS5IWzddK3Z8MH07CnBpLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hLmxlbmd0aCk7dmFyIGM9MCxkPXRoaXMuSztpZih0eXBlb2YgYT09PSJzdHJpbmciKWZvcig7YzxiOyl0aGlzLk5bZCsrXT1hLmNoYXJDb2RlQXQoYysrKSxkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCk7ZWxzZXt2YXIgZSxmPXR5cGVvZiBhO2U9ZiE9Im9iamVjdCI/ZjphP0FycmF5LmlzQXJyYXkoYSk/ImFycmF5IjpmOiJudWxsIjtpZihlPT0iYXJyYXkifHxlPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilmb3IoO2M8Yjspe3ZhciBnPWFbYysrXTtpZighKCJudW1iZXIiPT10eXBlb2YgZyYmMDw9ZyYmMjU1Pj1nJiZnPT0oZ3wwKSkpdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBhIGJ5dGUgYXJyYXkiKTt0aGlzLk5bZCsrXT1nO2Q9PXRoaXMuYmxvY2tTaXplJiYodmkodGhpcyksZD0wKX1lbHNlIHRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgc3RyaW5nIG9yIGFycmF5Iik7Cn10aGlzLks9ZDt0aGlzLlIrPWJ9O3BpLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMuUio4O3RoaXMuSzw1Nj90aGlzLnVwZGF0ZSh1aSw1Ni10aGlzLkspOnRoaXMudXBkYXRlKHVpLHRoaXMuYmxvY2tTaXplLSh0aGlzLkstNTYpKTtmb3IodmFyIGM9NjM7Yz49NTY7Yy0tKXRoaXMuTltjXT1iJjI1NSxiLz0yNTY7dmkodGhpcyk7Zm9yKHZhciBkPTAsZT0wO2U8dGhpcy5mYTtlKyspZm9yKHZhciBmPTI0O2Y+PTA7Zi09OClhW2QrK109dGhpcy5IW2VdPj5mJjI1NTtyZXR1cm4gYX07CnZhciByaT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LAo0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0scWk7ZnVuY3Rpb24gd2koKXtwaS5jYWxsKHRoaXMsOCx4aSl9U2Eod2kscGkpO3ZhciB4aT1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdO3ZhciB5aT0vXlswLTlBLUZhLWZdezY0fSQvO2Z1bmN0aW9uIHppKGEpe3RyeXtyZXR1cm4obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoYSl9Y2F0Y2goYil7cmV0dXJuIFpiKGEpfX1mdW5jdGlvbiBBaShhKXt2YXIgYj1BO2lmKGE9PT0iInx8YT09PSJlMCIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt2YXIgYztpZigoYz1iLmNyeXB0byk9PW51bGw/MDpjLnN1YnRsZSl7aWYoeWkudGVzdChhKSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpO3RyeXt2YXIgZD16aShhKTtyZXR1cm4gYi5jcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gQmkoZSxiKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuImUyIn0pfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUoImUyIil9fWVsc2UgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgiZTEiKX0KZnVuY3Rpb24gQ2koYSl7dHJ5e3ZhciBiPW5ldyB3aTtiLnVwZGF0ZSh6aShhKSk7cmV0dXJuIGIuZGlnZXN0KCl9Y2F0Y2goYyl7cmV0dXJuImUyIn19ZnVuY3Rpb24gRGkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAifHx5aS50ZXN0KGEpKXJldHVybiBhO3ZhciBjPUNpKGEpO2lmKGM9PT0iZTIiKXJldHVybiJlMiI7dHJ5e3JldHVybiBCaShjLGIpfWNhdGNoKGQpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIEJpKGEsYil7dmFyIGM9QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGQpfSkuam9pbigiIik7cmV0dXJuIGIuYnRvYShjKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfTtmdW5jdGlvbiBFaSgpe2Zvcih2YXIgYT0hMSxiPSExLGM9MDthPT09YjspaWYoYT1EYigwLDEpPT09MCxiPURiKDAsMSk9PT0wLGMrKyxjPjMwKXJldHVybjtyZXR1cm4gYX12YXIgR2k9e3NrOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gRmkuc2soYSxiLGMpfX0sSGk9ZnVuY3Rpb24oKXt0aGlzLnN0dWRpZXM9e307dGhpcy5IPUVpfTsKSGkucHJvdG90eXBlLnNrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnN0dWRpZXNbYl07aWYoISgoYz09PXZvaWQgMD9EYigwLDk5OTkpOmMlMUU0KTxkLnByb2JhYmlsaXR5KihkLmNvbnRyb2xJZDI/NDoyKSoxRTQpKXJldHVybiBhO2E6e3ZhciBlPWQuc3R1ZHlJZCxmPWQuZXhwZXJpbWVudElkLGc9ZC5jb250cm9sSWQsaD1kLmNvbnRyb2xJZDI7aWYoISgoYS5leHB8fHt9KVtmXXx8KGEuZXhwfHx7fSlbZ118fGgmJihhLmV4cHx8e30pW2hdKSl7dmFyIGw9YyE9PXZvaWQgMD9jJTI9PT0wOnRoaXMuSCgpO2lmKGwhPT12b2lkIDApe3ZhciBuPWw/MDoxO2lmKGgpe3ZhciBwPWMhPT12b2lkIDA/KGM+PjEpJTI9PT0wOnRoaXMuSCgpO2lmKHA9PT12b2lkIDApYnJlYWsgYTtufD0ocD8wOjEpPDwxfW49PT0wP0lpKGEsZixlKTpuPT09MT9JaShhLGcsZSk6bj09PTImJklpKGEsaCxlKX19fXJldHVybiBhfTsKdmFyIEtpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXT9KaShjLGIpfHwhIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5leHBlcmltZW50SWRdOiExfSxMaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQmJiFKaShjLGIpPyEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmNvbnRyb2xJZF06ITF9LE1pPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXSYmYy5zdHVkaWVzW2JdLmNvbnRyb2xJZDImJiFKaShjLGIpPyEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmNvbnRyb2xJZDJdOiExfSxOaT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmV4cHx8e30sZD1tKE9iamVjdC5rZXlzKGMpLm1hcChOdW1iZXIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtpZihjW2ZdPT09YilyZXR1cm4gZn19LEppPWZ1bmN0aW9uKGEsCmIpe3JldHVybiEhYS5zdHVkaWVzW2JdLmFjdGl2ZXx8YS5zdHVkaWVzW2JdLnByb2JhYmlsaXR5Pi41fSxJaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5leHB8fHt9O2RbYl09YzthLmV4cD1kfSxGaT1uZXcgSGk7dmFyIGlqPWZ1bmN0aW9uKCl7dGhpcy5IPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyfHx7fX0samo7ZnVuY3Rpb24ga2ooYSxiKXtsaigpO3ZhciBjPWpqO3JldHVybiBjLkhbYV09Yy5IW2FdfHxiKCl9ZnVuY3Rpb24gbWooYSl7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiBuaihhLGIpe2xqKCk7amouSFthXT1ifWZ1bmN0aW9uIG9qKGEpe3ZhciBiPUUoNSk7bGooKTt2YXIgYz1qajtjLkhbYl09Yy5IW2JdfHxhfWZ1bmN0aW9uIHBqKCl7dmFyIGE9RSgxOSk7bGooKTt2YXIgYj1qajtyZXR1cm4gYi5IW2FdPWIuSFthXXx8e319ZnVuY3Rpb24gcWooKXt2YXIgYT1FKDE5KTtsaigpO3JldHVybiBqai5IW2FdfWZ1bmN0aW9uIHJqKCl7bGooKTt2YXIgYT1qaixiPWEuSC5zZXF1ZW5jZXx8MTthLkguc2VxdWVuY2U9YisxO3JldHVybiBifWZ1bmN0aW9uIGxqKCl7amp8fChqaj1uZXcgaWopfTt2YXIgc2o9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4gMDtjYXNlIDQ5MTpyZXR1cm4gMTI7Y2FzZSA0ODA6cmV0dXJuIDExO2Nhc2UgNDk5OnJldHVybiAxMDtjYXNlIDUwMDpyZXR1cm4gNjtjYXNlIDQyMTpyZXR1cm4gOTtjYXNlIDU2MTpyZXR1cm4gMTc7Y2FzZSA0ODI6cmV0dXJuIDE1O2Nhc2UgNTcwOnJldHVybiAxOTtjYXNlIDQ5NTpyZXR1cm4gMTM7Y2FzZSA1MTQ6cmV0dXJuIDE2O2Nhc2UgNTczOnJldHVybiAxODtjYXNlIDIzNTpyZXR1cm4gODtjYXNlIDUzOnJldHVybiAxO2Nhc2UgNTQ6cmV0dXJuIDI7Y2FzZSA1MjpyZXR1cm4gNDtjYXNlIDc1OnJldHVybiAzfX0sdGo9ZnVuY3Rpb24oYSxiKXthLk5bYl09ITA7dmFyIGM9c2ooYik7YyE9PXZvaWQgMCYmKFdmW2NdPSEwKX0sTT1mdW5jdGlvbihhKXtyZXR1cm4hIXVqLk5bYV19LHVqPW5ldyBmdW5jdGlvbigpe3RoaXMuTj1bXTt0aGlzLks9W107dGhpcy5IPVtdOwp0aih0aGlzLDEzMik7dmFyIGE9TmYoNiw2RTQpO1hmWzFdPWE7dmFyIGI9TmYoNywxKTtYZlszXT1iO3ZhciBjPU5mKDM1LDUwKTtYZlsyXT1jO3ZhciBkPU5mKDY5LDE3NzY0NDg5MjApO1hmWzRdPWQ7CnRqKHRoaXMsNDM1KTt0aih0aGlzLDE0MSk7Cn07dmFyIHZqPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBTZXQ7dGhpcy5LPW5ldyBTZXR9LHhqPWZ1bmN0aW9uKGEpe3ZhciBiPXdqLkg7YT1hPT09dm9pZCAwP1tdOmE7dmFyIGM9W10uY29uY2F0KHcoYi5IKSkuY29uY2F0KFtdLmNvbmNhdCh3KGIuSykpKS5jb25jYXQoYSk7Yy5zb3J0KGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGQtZX0pO3JldHVybiBjfSx5aj1mdW5jdGlvbigpe3ZhciBhPVtdLmNvbmNhdCh3KHdqLkguSCkpO2Euc29ydChmdW5jdGlvbihiLGMpe3JldHVybiBiLWN9KTtyZXR1cm4gYX0semo9ZnVuY3Rpb24oKXt2YXIgYT13ai5ILGI9RSg0NCk7YS5IPW5ldyBTZXQ7aWYoYiE9PSIiKWZvcih2YXIgYz1tKGIuc3BsaXQoIn4iKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPU51bWJlcihkLnZhbHVlKTtpc05hTihlKXx8YS5ILmFkZChlKX19O3ZhciBBaj17fSxCaj17X19jbDoxLF9fZWNsOjEsX19laGw6MSxfX2V2bDoxLF9fZmFsOjEsX19maWw6MSxfX2ZzbDoxLF9faGw6MSxfX2plbDoxLF9fbGNsOjEsX19zZGw6MSxfX3RsOjEsX195dGw6MX0sQ2o9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx7X19wYXVzZWQ6MSxfX3RnOjF9LEJqKSxEaixFaj0hMTtEaj1Fajt2YXIgRmo9IiI7QWoucWo9Rmo7dmFyIHdqPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1uZXcgdmp9O3ZhciBHaj0vOlswLTldKyQvLEhqPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLztmdW5jdGlvbiBJaihhLGIsYyxkKXt2YXIgZT1KaihhLCEhZCxiKSxmLGc7cmV0dXJuIGM/KGc9ZVtiXSkhPW51bGw/ZzpbXTooZj1lW2JdKT09bnVsbD92b2lkIDA6ZlswXX1mdW5jdGlvbiBKaihhLGIsYyl7Zm9yKHZhciBkPXt9LGU9bShhLnNwbGl0KCImIikpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUuc3BsaXQoIj0iKSksaD1nLm5leHQoKS52YWx1ZSxsPXlhKGcpLG49ZGVjb2RlVVJJQ29tcG9uZW50KGgucmVwbGFjZSgvXCsvZywiICIpKTtpZihjPT09dm9pZCAwfHxuPT09Yyl7dmFyIHA9bC5qb2luKCI9Iik7ZFtuXXx8KGRbbl09W10pO2Rbbl0ucHVzaChiP3A6ZGVjb2RlVVJJQ29tcG9uZW50KHAucmVwbGFjZSgvXCsvZywiICIpKSl9fXJldHVybiBkfQpmdW5jdGlvbiBLaihhKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChiKXt9fWZ1bmN0aW9uIExqKGEsYixjLGQsZSl7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO2lmKGI9PT0icHJvdG9jb2wifHxiPT09InBvcnQiKWEucHJvdG9jb2w9TWooYS5wcm90b2NvbCl8fE1qKEEubG9jYXRpb24ucHJvdG9jb2wpO2I9PT0icG9ydCI/YS5wb3J0PVN0cmluZyhOdW1iZXIoYS5ob3N0bmFtZT9hLnBvcnQ6QS5sb2NhdGlvbi5wb3J0KXx8KGEucHJvdG9jb2w9PT0iaHR0cCI/ODA6YS5wcm90b2NvbD09PSJodHRwcyI/NDQzOiIiKSk6Yj09PSJob3N0IiYmKGEuaG9zdG5hbWU9KGEuaG9zdG5hbWV8fEEubG9jYXRpb24uaG9zdG5hbWUpLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBOaihhLGIsYyxkLGUpfQpmdW5jdGlvbiBOaihhLGIsYyxkLGUpe3ZhciBmLGc9TWooYS5wcm90b2NvbCk7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO3N3aXRjaChiKXtjYXNlICJ1cmxfbm9fZnJhZ21lbnQiOmY9T2ooYSk7YnJlYWs7Y2FzZSAicHJvdG9jb2wiOmY9ZzticmVhaztjYXNlICJob3N0IjpmPWEuaG9zdG5hbWUucmVwbGFjZShHaiwiIikudG9Mb3dlckNhc2UoKTtpZihjKXt2YXIgaD0vXnd3d1xkKlwuLy5leGVjKGYpO2gmJmhbMF0mJihmPWYuc3Vic3RyaW5nKGhbMF0ubGVuZ3RoKSl9YnJlYWs7Y2FzZSAicG9ydCI6Zj1TdHJpbmcoTnVtYmVyKGEucG9ydCl8fChnPT09Imh0dHAiPzgwOmc9PT0iaHR0cHMiPzQ0MzoiIikpO2JyZWFrO2Nhc2UgInBhdGgiOmEucGF0aG5hbWV8fGEuaG9zdG5hbWV8fHNiKCJUQUdHSU5HIiwxKTtmPWEucGF0aG5hbWUuc3Vic3RyaW5nKDAsMSk9PT0iLyI/YS5wYXRobmFtZToiLyIrYS5wYXRobmFtZTt2YXIgbD1mLnNwbGl0KCIvIik7KGR8fFtdKS5pbmRleE9mKGxbbC5sZW5ndGgtCjFdKT49MCYmKGxbbC5sZW5ndGgtMV09IiIpO2Y9bC5qb2luKCIvIik7YnJlYWs7Y2FzZSAicXVlcnkiOmY9YS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpO2UmJihmPUlqKGYsZSwhMSkpO2JyZWFrO2Nhc2UgImV4dGVuc2lvbiI6dmFyIG49YS5wYXRobmFtZS5zcGxpdCgiLiIpO2Y9bi5sZW5ndGg+MT9uW24ubGVuZ3RoLTFdOiIiO2Y9Zi5zcGxpdCgiLyIpWzBdO2JyZWFrO2Nhc2UgImZyYWdtZW50IjpmPWEuaGFzaC5yZXBsYWNlKCIjIiwiIik7YnJlYWs7ZGVmYXVsdDpmPWEmJmEuaHJlZn1yZXR1cm4gZn1mdW5jdGlvbiBNaihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoIjoiLCIiKS50b0xvd2VyQ2FzZSgpOiIifWZ1bmN0aW9uIE9qKGEpe3ZhciBiPSIiO2lmKGEmJmEuaHJlZil7dmFyIGM9YS5ocmVmLmluZGV4T2YoIiMiKTtiPWM8MD9hLmhyZWY6YS5ocmVmLnN1YnN0cmluZygwLGMpfXJldHVybiBifXZhciBQaj17fSxRaj0wOwpmdW5jdGlvbiBSaihhKXt2YXIgYj1QalthXTtpZighYil7dmFyIGM9Qi5jcmVhdGVFbGVtZW50KCJhIik7YSYmKGMuaHJlZj1hKTt2YXIgZD1jLnBhdGhuYW1lO2RbMF0hPT0iLyImJihhfHxzYigiVEFHR0lORyIsMSksZD0iLyIrZCk7dmFyIGU9Yy5ob3N0bmFtZS5yZXBsYWNlKEdqLCIiKTtiPXtocmVmOmMuaHJlZixwcm90b2NvbDpjLnByb3RvY29sLGhvc3Q6Yy5ob3N0LGhvc3RuYW1lOmUscGF0aG5hbWU6ZCxzZWFyY2g6Yy5zZWFyY2gsaGFzaDpjLmhhc2gscG9ydDpjLnBvcnR9O1FqPDUmJihQalthXT1iLFFqKyspfXJldHVybiBifWZ1bmN0aW9uIFNqKGEsYixjKXt2YXIgZD1SaihhKTtyZXR1cm4gYWMoYixkLGMpfQpmdW5jdGlvbiBUaihhKXt2YXIgYj1SaihBLmxvY2F0aW9uLmhyZWYpLGM9TGooYiwiaG9zdCIsITEpO2lmKGMmJmMubWF0Y2goSGopKXt2YXIgZD1MaihiLCJwYXRoIik7aWYoZCl7dmFyIGU9ZC5zcGxpdChhKyI9Iik7aWYoZS5sZW5ndGg+MSlyZXR1cm4gZVsxXS5zcGxpdCgiOyIpWzBdLnNwbGl0KCI/IilbMF19fX07dmFyIFVqPXsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSI6Ii9nIiwiaHR0cHM6Ly93d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iOiIvYXMiLCJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIjoiL2dzIn0sVmo9WyIvYXMvZC9jY20vY29udmVyc2lvbiIsIi9nL2QvY2NtL2NvbnZlcnNpb24iLCIvZ3MvY2NtL2NvbnZlcnNpb24iLCIvZC9jY20vZm9ybS1kYXRhIl07ZnVuY3Rpb24gV2ooKXtyZXR1cm4gSWYoNDcpP0pmKDU0KSE9PTE6ITF9ZnVuY3Rpb24gWGooKXt2YXIgYT1FKDE4KSxiPWEubGVuZ3RoO3JldHVybiBhW2ItMV09PT0iLyI/YS5zdWJzdHJpbmcoMCxiLTEpOmF9CmZ1bmN0aW9uIFlqKGEsYil7aWYoYSl7dmFyIGM9IiIrYTtjLmluZGV4T2YoImh0dHA6Ly8iKSE9PTAmJmMuaW5kZXhPZigiaHR0cHM6Ly8iKSE9PTAmJihjPSJodHRwczovLyIrYyk7Y1tjLmxlbmd0aC0xXT09PSIvIiYmKGM9Yy5zdWJzdHJpbmcoMCxjLmxlbmd0aC0xKSk7cmV0dXJuIFJqKCIiK2MrYikuaHJlZn19ZnVuY3Rpb24gWmooYSl7aWYoYWsoKSlyZXR1cm4gWWooYSwiL2FuYWx5dGljcy5qcyIpfWZ1bmN0aW9uIGJrKGEpe3JldHVybiBhPT09Mnx8YT09PTN9ZnVuY3Rpb24gY2soYSl7cmV0dXJuIE0oNTg4KSYmYT09PTN9ZnVuY3Rpb24gYWsoKXtyZXR1cm4gV2ooKXx8SWYoNTApfWZ1bmN0aW9uIGRrKCl7cmV0dXJuISFBai5xaiYmQWoucWouc3BsaXQoIkBAIikuam9pbigiIikhPT0iU0dUTV9UT0tFTiJ9CmZ1bmN0aW9uIGVrKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPU8oYSxjLnZhbHVlKTtpZihkKXJldHVybiBkfX1mdW5jdGlvbiBmayhhLGIsYyl7Yz1jPT09dm9pZCAwPyIiOmM7aWYoIVdqKCkpcmV0dXJuIGE7dmFyIGQ9Yj9ValthXXx8IiI6IiI7ZD09PSIvZ3MiJiYoYz0iIik7cmV0dXJuIiIrWGooKStkK2N9ZnVuY3Rpb24gZ2soYSl7aWYoV2ooKSlmb3IodmFyIGI9bShWaiksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoU2IoYSwiIitYaigpK2QpKXJldHVybiI6OiJ9fQpmdW5jdGlvbiBoaygpe3ZhciBhPUE7aWYoIWEpcmV0dXJuITE7dHJ5e2lmKGE9PT1hLnRvcClyZXR1cm4hMTt2YXIgYj1hLmxvY2F0aW9uLnBhdGhuYW1lO3JldHVybiBiLmluZGV4T2YoIi9fL3NlcnZpY2Vfd29ya2VyLyIpIT09LTEmJlRiKGIsIi9zd19pZnJhbWUuaHRtbCIpfWNhdGNoKGMpe3JldHVybiExfX07dmFyIGlrPS9ndGFnWy5cL11qcy8sams9L2d0bVsuXC9danMvLGxrPWZ1bmN0aW9uKGEpe3ZhciBiPWtrO2lmKChhLnNjcmlwdENvbnRhaW5lcklkfHwiIikuaW5kZXhPZigiR1RNLSIpPj0wKXt2YXIgYzthOnt2YXIgZCxlPShkPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmQuc3JjO2lmKGUpe2Zvcih2YXIgZj1JZig0NyksZz1SaihlKSxoPWY/Zy5wYXRobmFtZToiIitnLmhvc3RuYW1lK2cucGF0aG5hbWUsbD1CLnNjcmlwdHMsbj0iIixwPTA7cDxsLmxlbmd0aDsrK3Ape3ZhciBxPWxbcF07aWYoIShxLmlubmVySFRNTC5sZW5ndGg9PT0wfHwhZiYmcS5pbm5lckhUTUwuaW5kZXhPZihhLnNjcmlwdENvbnRhaW5lcklkfHwiU0hPVUxEX05PVF9CRV9TRVQiKTwwfHxxLmlubmVySFRNTC5pbmRleE9mKGgpPDApKXtpZihxLmlubmVySFRNTC5pbmRleE9mKCIoZnVuY3Rpb24odyxkLHMsbCxpKSIpPj0wKXtjPVN0cmluZyhwKTticmVhayBhfW49U3RyaW5nKHApfX1pZihuKXtjPQpuO2JyZWFrIGF9fWM9dm9pZCAwfXZhciByPWM7aWYocilyZXR1cm4gYi5IPSEwLHJ9dmFyIHQ9W10uc2xpY2UuY2FsbChCLnNjcmlwdHMpO3JldHVybiBhLnNjcmlwdEVsZW1lbnQ/U3RyaW5nKHQuaW5kZXhPZihhLnNjcmlwdEVsZW1lbnQpKToiLTEifSxtaz1mdW5jdGlvbihhKXtpZihray5IKXJldHVybiIxIjt2YXIgYixjPShiPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmIuc3JjO2lmKGMpe2lmKGlrLnRlc3QoYykpcmV0dXJuIjMiO2lmKGprLnRlc3QoYykpcmV0dXJuIjIifXJldHVybiIwIn0sa2s9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTtmdW5jdGlvbiBQKGEpe3NiKCJHVE0iLGEpfTtmdW5jdGlvbiBuayhhKXt2YXIgYj1vaygpLmRlc3RpbmF0aW9uQXJyYXlbYV0sYz1vaygpLmRlc3RpbmF0aW9uW2FdO3JldHVybiBiJiZiLmxlbmd0aD4wP2JbMF06Y31mdW5jdGlvbiBwayhhLGIpe3ZhciBjPW9rKCk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtDYihjLnBlbmRpbmcsZnVuY3Rpb24oZCl7cmV0dXJuIGQudGFyZ2V0LmN0aWQ9PT1hLmN0aWQmJmQudGFyZ2V0LmlzRGVzdGluYXRpb249PT1hLmlzRGVzdGluYXRpb259KXx8Yy5wZW5kaW5nLnB1c2goe3RhcmdldDphLG9uTG9hZDpifSl9ZnVuY3Rpb24gcWsoKXt2YXIgYT1BLmdvb2dsZV90YWdzX2ZpcnN0X3BhcnR5O0FycmF5LmlzQXJyYXkoYSl8fChhPVtdKTtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIE9iamVjdC5mcmVlemUoYil9CnZhciByaz1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuZGVzdGluYXRpb249e307dGhpcy5kZXN0aW5hdGlvbkFycmF5PXt9O3RoaXMuY2Fub25pY2FsPXt9O3RoaXMucGVuZGluZz1bXTt0aGlzLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9e307dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCl9OwpmdW5jdGlvbiBvaygpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEudGlkcjtiJiZ0eXBlb2YgYj09PSJvYmplY3QifHwoYj1uZXcgcmssYS50aWRyPWIpO3ZhciBjPWI7Yy5jb250YWluZXJ8fChjLmNvbnRhaW5lcj17fSk7Yy5kZXN0aW5hdGlvbnx8KGMuZGVzdGluYXRpb249e30pO2MuZGVzdGluYXRpb25BcnJheXx8KGMuZGVzdGluYXRpb25BcnJheT17fSk7Yy5jYW5vbmljYWx8fChjLmNhbm9uaWNhbD17fSk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnN8fChjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9cWsoKSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHNrKCl7cmV0dXJuIElmKDcpJiZ0aygpLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1FKDUpfSl9ZnVuY3Rpb24gdWsoKXt2YXIgYTtyZXR1cm4oYT1LZig1NSkpIT1udWxsP2E6W119ZnVuY3Rpb24gdmsoKXtyZXR1cm4gRSg2KXx8Il8iK0UoNSl9ZnVuY3Rpb24gd2soKXt2YXIgYT1FKDEwKTtyZXR1cm4gYT9hLnNwbGl0KCJ8Iik6W0UoNSldfWZ1bmN0aW9uIHRrKCl7dmFyIGE9S2YoNTkpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2EuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmcifSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmluZGV4T2YoIkdUTS0iKSE9PTB9KTpbXX1mdW5jdGlvbiB4aygpe3ZhciBhPXlrKHprKCkpLGI9YSYmYS5wYXJlbnQ7aWYoYilyZXR1cm4geWsoYil9CmZ1bmN0aW9uIEFrKCl7dmFyIGE9eWsoemsoKSk7aWYoYSl7Zm9yKDthLnBhcmVudDspe3ZhciBiPXlrKGEucGFyZW50KTtpZighYilicmVhazthPWJ9cmV0dXJuIGF9fWZ1bmN0aW9uIHlrKGEpe3ZhciBiPW9rKCk7cmV0dXJuIGEuaXNEZXN0aW5hdGlvbj9uayhhLmN0aWQpOmIuY29udGFpbmVyW2EuY3RpZF19ZnVuY3Rpb24gQmsoKXt2YXIgYT1vaygpO2lmKGEucGVuZGluZyl7Zm9yKHZhciBiLGM9W10sZD0hMSxlPXdrKCksZj10aygpLGc9e30saD0wO2g8YS5wZW5kaW5nLmxlbmd0aDtnPXtSZzp2b2lkIDB9LGgrKylnLlJnPWEucGVuZGluZ1toXSxDYihnLlJnLnRhcmdldC5pc0Rlc3RpbmF0aW9uP2Y6ZSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG49PT1sLlJnLnRhcmdldC5jdGlkfX0oZykpP2R8fChiPWcuUmcub25Mb2FkLGQ9ITApOmMucHVzaChnLlJnKTthLnBlbmRpbmc9YztpZihiKXRyeXtiKHZrKCkpfWNhdGNoKGwpe319fQpmdW5jdGlvbiBDaygpe2Zvcih2YXIgYT1FKDUpLGI9d2soKSxjPXRrKCksZD11aygpLGU9ZnVuY3Rpb24ocSxyKXt2YXIgdD17Y2Fub25pY2FsQ29udGFpbmVySWQ6RSg2KSxzY3JpcHRDb250YWluZXJJZDphLHN0YXRlOjIsY29udGFpbmVyczpiLnNsaWNlKCksZGVzdGluYXRpb25zOmMuc2xpY2UoKX07SmMmJih0LnNjcmlwdEVsZW1lbnQ9SmMpO0tjJiYodC5zY3JpcHRTb3VyY2U9S2MpO3hrKCk9PT12b2lkIDAmJih0Lmh0bWxMb2FkT3JkZXI9bGsodCksdC5sb2FkU2NyaXB0VHlwZT1tayh0KSk7dmFyIHUsdjtzd2l0Y2gocil7Y2FzZSAwOnU9ZnVuY3Rpb24oeil7Zi5jb250YWluZXJbcV09en07dj1mLmNvbnRhaW5lcltxXTticmVhaztjYXNlIDE6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0udW5zaGlmdCh6KX07dmFyIHgseT0oKHg9Zi5kZXN0aW5hdGlvbkFycmF5W3FdKT09Cm51bGw/dm9pZCAwOnhbMF0pfHxmLmRlc3RpbmF0aW9uW3FdOyF5fHx5LnN0YXRlIT09MCYmeS5zdGF0ZSE9PTF8fCh2PXkpO2JyZWFrO2Nhc2UgMjp1PWZ1bmN0aW9uKHope2YuZGVzdGluYXRpb25BcnJheVtxXT1mLmRlc3RpbmF0aW9uQXJyYXlbcV18fFtdO2YuZGVzdGluYXRpb25BcnJheVtxXS5wdXNoKHopfSx2PXZvaWQgMH11JiYodj8odi5zdGF0ZT09PTAmJlAoOTMpLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qsdix0KSk6dSh0KSl9LGY9b2soKSxnPW0oYiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpZShoLnZhbHVlLDApO2Zvcih2YXIgbD1tKGMpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2QuaW5jbHVkZXMocCk/ZShwLDEpOmUocCwyKX1mLmNhbm9uaWNhbFt2aygpXT17fTtCaygpfWZ1bmN0aW9uIERrKCl7dmFyIGE9dmsoKTtyZXR1cm4hIW9rKCkuY2Fub25pY2FsW2FdfQpmdW5jdGlvbiBFayhhKXtyZXR1cm4hIW9rKCkuY29udGFpbmVyW2FdfWZ1bmN0aW9uIEZrKCl7dmFyIGE9emsoKSxiPXlrKGEpO3JldHVybiBiJiZiLmNvbnRleHR9ZnVuY3Rpb24gR2soYSl7dmFyIGI9bmsoYSk7cmV0dXJuIGI/Yi5zdGF0ZSE9PTA6ITF9ZnVuY3Rpb24gemsoKXtyZXR1cm57Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246SWYoNyl9fWZ1bmN0aW9uIEhrKGEsYixjKXt2YXIgZD16aygpLGU9b2soKS5jb250YWluZXJbYV07ZSYmZS5zdGF0ZSE9PTN8fChvaygpLmNvbnRhaW5lclthXT17c3RhdGU6MSxjb250ZXh0OmIscGFyZW50OmR9LHBrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMX0sYykpfWZ1bmN0aW9uIElrKGEsYixjKXt2YXIgZD1vaygpLGU9bmsoYSk7ZT9lLnN0YXRlPTE6KGU9e2NvbnRleHQ6YixzdGF0ZToxLHBhcmVudDp6aygpfSxkLmRlc3RpbmF0aW9uQXJyYXlbYV09W2VdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGMpfQpmdW5jdGlvbiBKayhhLGIsYyxkKXt2YXIgZT1vaygpLGY9bmsoYSk7Zj9mLnN0YXRlPTA6KGY9e3N0YXRlOjAsdHJhbnNwb3J0VXJsOmIsY29udGV4dDpjLHBhcmVudDp6aygpfSxlLmRlc3RpbmF0aW9uQXJyYXlbYV09W2ZdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGQpO1AoOTEpfWZ1bmN0aW9uIEtrKCl7dmFyIGE9b2soKS5jb250YWluZXIsYjtmb3IoYiBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkoYikmJmFbYl0uc3RhdGU9PT0xKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIExrKCl7dmFyIGE9e307R2Iob2soKS5kZXN0aW5hdGlvbixmdW5jdGlvbihiLGMpeyhjPT1udWxsP3ZvaWQgMDpjLnN0YXRlKT09PTAmJihhW2JdPWMpfSk7R2Iob2soKS5kZXN0aW5hdGlvbkFycmF5LGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Y1swXTsoZD09bnVsbD92b2lkIDA6ZC5zdGF0ZSk9PT0wJiYoYVtiXT1kKX0pO3JldHVybiBhfQpmdW5jdGlvbiBNayhhKXtyZXR1cm4hIShhJiZhLnBhcmVudCYmYS5jb250ZXh0JiZhLmNvbnRleHQuc291cmNlPT09MSYmYS5wYXJlbnQuY3RpZC5pbmRleE9mKCJHVE0tIikhPT0wKX1mdW5jdGlvbiBOaygpe2Zvcih2YXIgYT1vaygpLGI9bSh3aygpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihhLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnNbYy52YWx1ZV0pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBPaz1mdW5jdGlvbigpe307T2sucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCJ9O3ZhciBQaz1uZXcgT2s7dmFyIFhrPWZ1bmN0aW9uKCl7dGhpcy5zdG9yYWdlPVlhKCl9O1hrLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKX07WGsucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTt2YXIgWWs7ZnVuY3Rpb24gWmsoYSxiKXtZa3x8KFlrPW5ldyBYayk7WWsuc2V0KGEsYil9ZnVuY3Rpb24gJGsoYSl7WWt8fChZaz1uZXcgWGspO3JldHVybiBZay5nZXQoYSl9ZnVuY3Rpb24gYWwoYSxiKXtZa3x8KFlrPW5ldyBYayk7dmFyIGM9WWs7Yy5zdG9yYWdlLmhhcyhTdHJpbmcoYSkpfHxjLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKCkpO3JldHVybiBjLnN0b3JhZ2UuZ2V0KFN0cmluZyhhKSl9O2Z1bmN0aW9uIGJsKGEsYil7ZnVuY3Rpb24gYyhnKXt2YXIgaD1SaihnKSxsPUxqKGgsInByb3RvY29sIiksbj1MaihoLCJob3N0IiwhMCkscD1MaihoLCJwb3J0IikscT1MaihoLCJwYXRoIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cLyQvLCIiKTtpZihsPT09dm9pZCAwfHxsPT09Imh0dHAiJiZwPT09IjgwInx8bD09PSJodHRwcyImJnA9PT0iNDQzIilsPSJ3ZWIiLHA9ImRlZmF1bHQiO3JldHVybltsLG4scCxxXX1mb3IodmFyIGQ9YyhTdHJpbmcoYSkpLGU9YyhTdHJpbmcoYikpLGY9MDtmPGQubGVuZ3RoO2YrKylpZihkW2ZdIT09ZVtmXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBjbChhKXtyZXR1cm4gZGwoYSk/MTowfQpmdW5jdGlvbiBkbChhKXt2YXIgYj1hLmFyZzAsYz1hLmFyZzE7aWYoYS5hbnlfb2YmJkFycmF5LmlzQXJyYXkoYykpe2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1FZChhLHt9KTtFZCh7YXJnMTpjW2RdLGFueV9vZjp2b2lkIDB9LGUpO2lmKGNsKGUpKXJldHVybiEwfXJldHVybiExfXN3aXRjaChhWyJmdW5jdGlvbiJdKXtjYXNlICJfY24iOnJldHVybiBLZyhiLGMpO2Nhc2UgIl9jc3MiOnJldHVybiBHZyhiLGMpO2Nhc2UgIl9ldyI6cmV0dXJuIEhnKGIsYyk7Y2FzZSAiX2VxIjpyZXR1cm4gTGcoYixjKTtjYXNlICJfZ2UiOnJldHVybiBNZyhiLGMpO2Nhc2UgIl9ndCI6cmV0dXJuIE9nKGIsYyk7Y2FzZSAiX2xjIjpyZXR1cm4gSWcoYixjKTtjYXNlICJfbGUiOnJldHVybiBOZyhiLGMpO2Nhc2UgIl9sdCI6cmV0dXJuIFBnKGIsYyk7Y2FzZSAiX3JlIjpyZXR1cm4gSmcoYixjLGEuaWdub3JlX2Nhc2UsYWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSkpO2Nhc2UgIl9zdyI6cmV0dXJuIFFnKGIsCmMpO2Nhc2UgIl91bSI6cmV0dXJuIGJsKGIsYyl9cmV0dXJuITF9O2Z1bmN0aW9uIGVsKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGY7c3dpdGNoKGFbMF0pe2Nhc2UgImZ1bmN0aW9uX2lkIjpyZXR1cm4gYVsxXTtjYXNlICJsaXN0IjpmPVtdO2Zvcih2YXIgZz0xO2c8YS5sZW5ndGg7ZysrKWYucHVzaChlbChhW2ddLGIsYyxkLGUpKTtyZXR1cm4gZjtjYXNlICJtYWNybyI6dmFyIGg9ZFthWzFdXTtyZXR1cm4gaD9oLmV2YWx1YXRlKGIsZSk6dm9pZCAwO2Nhc2UgIm1hcCI6Zj17fTtmb3IodmFyIGw9MTtsPGEubGVuZ3RoO2wrPTIpZltlbChhW2xdLGIsYyxkLGUpXT1lbChhW2wrMV0sYixjLGQsZSk7cmV0dXJuIGY7Y2FzZSAidGVtcGxhdGUiOmY9W107Zm9yKHZhciBuPSExLHA9MTtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9ZWwoYVtwXSxiLGMsZCxlKTtmLnB1c2gocSl9cmV0dXJuIGYuam9pbigiIik7Y2FzZSAiZXNjYXBlIjpmPWVsKGFbMV0sYixjLGQsZSk7Zj1TdHJpbmcoZik7Zm9yKHZhciB5PTI7eTxhLmxlbmd0aDt5KyspVWlbYVt5XV0mJihmPVVpW2FbeV1dKGYpKTtyZXR1cm4gZjtjYXNlICJ0YWciOnZhciB6PWFbMV07aWYoIWNbel0pdGhyb3cgRXJyb3IoIlVuYWJsZSB0byByZXNvbHZlIHRhZyByZWZlcmVuY2UgIisKeisiLiIpO3JldHVybntibzphWzJdLGluZGV4Onp9O2Nhc2UgInpiIjp2YXIgQz17fSxEPShDW0dmLlliXT1hWzFdLEMuYXJnMD1lbChhWzJdLGIsYyxkLGUpLEMuYXJnMT1lbChhWzNdLGIsYyxkLGUpLEMuaWdub3JlX2Nhc2U9ZWwoYVs1XSxiLGMsZCxlKSxDKSxJPWNsKEQpLEc9ISFhWzRdO3JldHVybiBHfHxJIT09Mj9HIT09KEk9PT0xKTpudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhwYW5kIHVua25vd24gVmFsdWUgdHlwZTogIithWzBdKyIuIik7fX1yZXR1cm4gYX07ZnVuY3Rpb24gZmwoYSl7cmV0dXJuIGEmJmEuaW5kZXhPZigicGVuZGluZzoiKT09PTA/Z2woYS5zdWJzdHIoOCkpOiExfWZ1bmN0aW9uIGdsKGEpe2lmKGE9PW51bGx8fGEubGVuZ3RoPT09MClyZXR1cm4hMTt2YXIgYj1OdW1iZXIoYSksYz1OYigpO3JldHVybiBiPGMrM0U1JiZiPmMtOUU1fTt2YXIgaGw9ITEsaWw9ITEsamw9ITEsa2w9MCxsbD0hMSxtbD12b2lkIDAsbmw9W107ZnVuY3Rpb24gb2woYSl7aWYoa2w9PT0wKWxsJiZubCYmKG5sLmxlbmd0aD49MTAwJiZubC5zaGlmdCgpLG5sLnB1c2goYSkpO2Vsc2UgaWYocGwoKSl7dmFyIGI9RSg0MSksYz1NYyhiLFtdKTtjLmxlbmd0aD49NTAmJmMuc2hpZnQoKTtjLnB1c2goYSl9fWZ1bmN0aW9uIHFsKCl7aWx8fChybCgpLHNsKGtsKSl9ZnVuY3Rpb24gc2woYSl7aWYoIWlsfHxrbD09PTImJmE9PT0xKWlmKGlsPSEwLGpsJiYoYWQoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsKSxqbD0hMSksbWwhPT12b2lkIDAmJihBLmNsZWFyVGltZW91dChtbCksbWw9dm9pZCAwKSxrbD1hLGE9PT0xKXt2YXIgYj1ubDtubD12b2lkIDA7Yj09bnVsbHx8Yi5mb3JFYWNoKGZ1bmN0aW9uKGMpe29sKGMpfSl9fQpmdW5jdGlvbiBybCgpe3ZhciBhPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByb2QtcHJlc2VudCIpO2dsKGEpP2tsPTE6IWZsKGEpfHxobHx8amw/a2w9Mjooamw9ITAsJGMoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsLCExKSxtbD1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpbHx8KHJsKCksc2woa2wpKTtobD0hMH0sMjAwKSl9ZnVuY3Rpb24gcGwoKXtpZighbGwpcmV0dXJuITE7c3dpdGNoKGtsKXtjYXNlIDE6Y2FzZSAwOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiExfX07ZnVuY3Rpb24gdGwoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7cmV0dXJuIGEuaWNzPWEuaWNzfHxuZXcgdWx9dmFyIHVsPWZ1bmN0aW9uKCl7dGhpcy5lbnRyaWVzPXt9O3RoaXMud2FpdFBlcmlvZFRpbWVkT3V0PXRoaXMud2FzU2V0TGF0ZT10aGlzLmFjY2Vzc2VkQW55PXRoaXMuYWNjZXNzZWREZWZhdWx0PXRoaXMudXNlZEltcGxpY2l0PXRoaXMudXNlZFVwZGF0ZT10aGlzLnVzZWREZWZhdWx0PXRoaXMudXNlZERlY2xhcmU9dGhpcy5hY3RpdmU9ITE7dGhpcy5IPVtdfTsKdWwucHJvdG90eXBlLmRlZmF1bHQ9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8IXRoaXMuYWNjZXNzZWREZWZhdWx0JiYhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkRGVmYXVsdD10aGlzLmFjdGl2ZT0hMDtzYigiVEFHR0lORyIsMTkpO2I9PW51bGw/c2IoIlRBR0dJTkciLDE4KTp2bCh0aGlzLGEsYj09PSJncmFudGVkIixjLGQsZSxmLGcpfTt1bC5wcm90b3R5cGUud2FpdEZvclVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspdmwodGhpcyxhW2RdLHZvaWQgMCx2b2lkIDAsIiIsIiIsYixjKX07CnZhciB2bD1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPWEuZW50cmllcyxuPWxbYl18fHt9LHA9bi5yZWdpb24scT1kJiZ6YihkKT9kLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2U9ZS50b1VwcGVyQ2FzZSgpO2Y9Zi50b1VwcGVyQ2FzZSgpO2lmKGU9PT0iInx8cT09PWZ8fChxPT09ZT9wIT09ZjohcSYmIXApKXt2YXIgcj0hIShnJiZnPjAmJm4udXBkYXRlPT09dm9pZCAwKSx0PXtyZWdpb246cSxkZWNsYXJlX3JlZ2lvbjpuLmRlY2xhcmVfcmVnaW9uLGltcGxpY2l0Om4uaW1wbGljaXQsZGVmYXVsdDpjIT09dm9pZCAwP2M6bi5kZWZhdWx0LGRlY2xhcmU6bi5kZWNsYXJlLHVwZGF0ZTpuLnVwZGF0ZSxxdWlldDpyfTtpZihlIT09IiJ8fG4uZGVmYXVsdCE9PSExKWxbYl09dDtyJiZBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsW2JdPT09dCYmdC5xdWlldCYmKHNiKCJUQUdHSU5HIiwyKSxhLndhaXRQZXJpb2RUaW1lZE91dD0hMCxhLmNsZWFyVGltZW91dChiLHZvaWQgMCxoKSwKYS5ub3RpZnlMaXN0ZW5lcnMoKSl9LGcpfX07az11bC5wcm90b3R5cGU7ay5jbGVhclRpbWVvdXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVthXSxlPWMuZGVsZWdhdGVkQ29uc2VudFR5cGVzLGY7Zm9yKGYgaW4gZSllLmhhc093blByb3BlcnR5KGYpJiZlW2ZdPT09YSYmZC5wdXNoKGYpO3ZhciBnPXRoaXMuZW50cmllc1thXXx8e30saD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpO2lmKGcucXVpZXQpe2cucXVpZXQ9ITE7Zm9yKHZhciBsPW0oZCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpd2wodGhpcyxuLnZhbHVlKX1lbHNlIGlmKGIhPT12b2lkIDAmJmghPT1iKWZvcih2YXIgcD1tKGQpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXdsKHRoaXMscS52YWx1ZSl9OwprLnVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8dGhpcy51c2VkVXBkYXRlfHwhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkVXBkYXRlPXRoaXMuYWN0aXZlPSEwO2lmKGIhPW51bGwpe3ZhciBkPXRoaXMuZ2V0Q29uc2VudFN0YXRlKGEsYyksZT10aGlzLmVudHJpZXM7KGVbYV09ZVthXXx8e30pLnVwZGF0ZT1iPT09ImdyYW50ZWQiO3RoaXMuY2xlYXJUaW1lb3V0KGEsZCxjKX19OwprLmRlY2xhcmU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSEwO3ZhciBmPXRoaXMuZW50cmllcyxnPWZbYV18fHt9LGg9Zy5kZWNsYXJlX3JlZ2lvbixsPWMmJnpiKGMpP2MudG9VcHBlckNhc2UoKTp2b2lkIDA7ZD1kLnRvVXBwZXJDYXNlKCk7ZT1lLnRvVXBwZXJDYXNlKCk7aWYoZD09PSIifHxsPT09ZXx8KGw9PT1kP2ghPT1lOiFsJiYhaCkpe3ZhciBuPXtyZWdpb246Zy5yZWdpb24sZGVjbGFyZV9yZWdpb246bCxkZWNsYXJlOmI9PT0iZ3JhbnRlZCIsaW1wbGljaXQ6Zy5pbXBsaWNpdCxkZWZhdWx0OmcuZGVmYXVsdCx1cGRhdGU6Zy51cGRhdGUscXVpZXQ6Zy5xdWlldH07aWYoZCE9PSIifHxnLmRlY2xhcmUhPT0hMSlmW2FdPW59fTsKay5pbXBsaWNpdD1mdW5jdGlvbihhLGIpe3RoaXMudXNlZEltcGxpY2l0PSEwO3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV09Y1thXXx8e307ZC5pbXBsaWNpdCE9PSExJiYoZC5pbXBsaWNpdD1iPT09ImdyYW50ZWQiKX07CmsuZ2V0Q29uc2VudFN0YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5lbnRyaWVzLGQ9Y1thXXx8e30sZT1kLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGY9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1thXTtpZihmPT09MylyZXR1cm4gMTtpZihmPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9ZC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGI9PW51bGw/MDpiLmRlbGVnYXRlZENvbnNlbnRUeXBlcy5oYXNPd25Qcm9wZXJ0eShhKSl7dmFyIGc9Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbYV0saD1jW2ddfHx7fTtlPWgudXBkYXRlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGIudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXt2YXIgbD1iLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2ddO2lmKGw9PT0zKXJldHVybiAxO2lmKGw9PT0yKXJldHVybiAyfWVsc2UgaWYoZT0KaC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyfWU9ZC5kZWNsYXJlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2U9ZC5pbXBsaWNpdDtyZXR1cm4gZSE9PXZvaWQgMD9lPzM6NDowfTtrLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dGhpcy5ILnB1c2goe2NvbnNlbnRUeXBlczphLGllOmJ9KX07dmFyIHdsPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxhLkgubGVuZ3RoOysrYyl7dmFyIGQ9YS5IW2NdO0FycmF5LmlzQXJyYXkoZC5jb25zZW50VHlwZXMpJiZkLmNvbnNlbnRUeXBlcy5pbmRleE9mKGIpIT09LTEmJihkLnhvPSEwKX19O3VsLnByb3RvdHlwZS5ub3RpZnlMaXN0ZW5lcnM9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPHRoaXMuSC5sZW5ndGg7KytjKXt2YXIgZD10aGlzLkhbY107aWYoZC54byl7ZC54bz0hMTt0cnl7ZC5pZSh7Y29uc2VudEV2ZW50SWQ6YSxjb25zZW50UHJpb3JpdHlJZDpifSl9Y2F0Y2goZSl7fX19fTt2YXIgeGw9ITEseWw9ITEsemw9e30sQWw9e2RlbGVnYXRlZENvbnNlbnRUeXBlczp7fSxjb3JlUGxhdGZvcm1TZXJ2aWNlczp7fSx1c2VkQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsc2VsZWN0ZWRBbGxDb3JlUGxhdGZvcm1TZXJ2aWNlczohMSxjb250YWluZXJTY29wZWREZWZhdWx0czooemwuYWRfc3RvcmFnZT0xLHpsLmFuYWx5dGljc19zdG9yYWdlPTEsemwuYWRfdXNlcl9kYXRhPTEsemwuYWRfcGVyc29uYWxpemF0aW9uPTEsemwpLHVzZWRDb250YWluZXJTY29wZWREZWZhdWx0czohMX07ZnVuY3Rpb24gQmwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybih6YihhKT9bYV06YSkuZXZlcnkoZnVuY3Rpb24oYyl7c3dpdGNoKGIuZ2V0Q29uc2VudFN0YXRlKGMsQWwpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KX0KZnVuY3Rpb24gQ2woYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiBiLmdldENvbnNlbnRTdGF0ZShhLEFsKX1mdW5jdGlvbiBEbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuIShiLmVudHJpZXNbYV18fHt9KS5xdWlldH1mdW5jdGlvbiBFbCgpe2lmKCFZZig1KSlyZXR1cm4hMTt2YXIgYT10bCgpO2EuYWNjZXNzZWRBbnk9ITA7aWYoYS5hY3RpdmUpcmV0dXJuITA7aWYoIUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cylyZXR1cm4hMTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhBbC5jb250YWluZXJTY29wZWREZWZhdWx0cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2MudmFsdWVdIT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGbChhLGIpe3RsKCkuYWRkTGlzdGVuZXIoYSxiKX0KZnVuY3Rpb24gR2woYSxiKXt0bCgpLm5vdGlmeUxpc3RlbmVycyhhLGIpfWZ1bmN0aW9uIEhsKGEsYil7aWYoYi5ldmVyeShEbCkpYSh7fSk7ZWxzZXt2YXIgYz0hMTtGbChiLGZ1bmN0aW9uKGQpeyFjJiZiLmV2ZXJ5KERsKSYmKGM9ITAsYShkKSl9KX19CmZ1bmN0aW9uIElsKGEsYil7dmFyIGM9emIoYik/W2JdOmIsZD17fSxlPWZ1bmN0aW9uKCl7cmV0dXJuIGMuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBCbChoKSYmIWRbaF19KX0sZj1lKCk7aWYoZi5sZW5ndGghPT1jLmxlbmd0aCl7dmFyIGc9ZnVuY3Rpb24oaCl7Zm9yKHZhciBsPW0oaCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpZFtuLnZhbHVlXT0hMH07ZyhmKTtGbChjLGZ1bmN0aW9uKGgpe2Z1bmN0aW9uIGwocSl7cS5sZW5ndGghPT0wJiYoZyhxKSxoLmNvbnNlbnRUeXBlcz1xLGEoaCkpfXZhciBuPWUoKTtpZihuLmxlbmd0aCE9PTApe3ZhciBwPU9iamVjdC5rZXlzKGQpLmxlbmd0aDtuLmxlbmd0aCtwPj1jLmxlbmd0aD9sKG4pOkEuc2V0VGltZW91dChmdW5jdGlvbigpe2woZSgpKX0sNTAwKX19KX19O3ZhciBKbD0hMTtmdW5jdGlvbiBLbChhLGIpe3ZhciBjPXdrKCksZD10aygpO0UoMjYpO3ZhciBlPUlmKDQ3KT8wOklmKDUwKT8xOjMsZj1YaigpO2lmKHBsKCkpe3ZhciBnPUxsKCJJTklUIik7Zy5jb250YWluZXJMb2FkU291cmNlPWEhPW51bGw/YTowO2ImJihnLnBhcmVudFRhcmdldFJlZmVyZW5jZT1iKTtnLmFsaWFzZXM9YztnLmRlc3RpbmF0aW9ucz1kO2UhPT12b2lkIDAmJihnLmd0Zz17c291cmNlOmUsbVBhdGg6ZiE9bnVsbD9mOiIifSk7b2woZyl9fQpmdW5jdGlvbiBNbChhKXt2YXIgYixjLGQsZTtiPWEudGFyZ2V0SWQ7Yz1hLnJlcXVlc3Q7ZD1hLnFiO2U9YS5pc0JhdGNoZWQ7dmFyIGY7aWYoZj1wbCgpKXt2YXIgZzthOnN3aXRjaChjLmVuZHBvaW50KXtjYXNlIDY4OmNhc2UgNjk6Y2FzZSAxOTpjYXNlIDYyOmNhc2UgNDc6Zz0hMDticmVhayBhO2RlZmF1bHQ6Zz0hMX1mPSFnfWlmKGYpe3ZhciBoPUxsKCJHVEFHX0hJVCIse2V2ZW50SWQ6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZC5wcmlvcml0eUlkfSk7aC50YXJnZXQ9YjtoLnVybD1jLnVybDtjLnBvc3RCb2R5JiYoaC5wb3N0Qm9keT1jLnBvc3RCb2R5KTtoLnBhcmFtZXRlckVuY29kaW5nPWMucGFyYW1ldGVyRW5jb2Rpbmc7aC5lbmRwb2ludD1jLmVuZHBvaW50O2UhPT12b2lkIDAmJihoLmlzQmF0Y2hlZD1lKTtvbChoKX19ZnVuY3Rpb24gTmwoYSl7cGwoKSYmTWwoYSgpKX0KZnVuY3Rpb24gTGwoYSxiKXtiPWI9PT12b2lkIDA/e306YjtiLmdyb3VwSWQ9T2w7dmFyIGMsZD1iLGU9UGwsZj17cHVibGljSWQ6UWx9O2QuZXZlbnRJZCE9bnVsbCYmKGYuZXZlbnRJZD1kLmV2ZW50SWQpO2QucHJpb3JpdHlJZCE9bnVsbCYmKGYucHJpb3JpdHlJZD1kLnByaW9yaXR5SWQpO2QuZXZlbnROYW1lJiYoZi5ldmVudE5hbWU9ZC5ldmVudE5hbWUpO2QuZ3JvdXBJZCYmKGYuZ3JvdXBJZD1kLmdyb3VwSWQpO2QudGFnTmFtZSYmKGYudGFnTmFtZT1kLnRhZ05hbWUpO2M9e2NvbnRhaW5lclByb2R1Y3Q6IkdUTSIsa2V5OmYsdmVyc2lvbjplLG1lc3NhZ2VUeXBlOmF9O2MuY29udGFpbmVyUHJvZHVjdD1KbD8iT0dUIjoiR1RNIjtjLmtleS50YXJnZXRSZWY9Umw7cmV0dXJuIGN9dmFyIFFsPSIiLFBsPSIiLFJsPXtjdGlkOiIiLGlzRGVzdGluYXRpb246ITF9LE9sOwpmdW5jdGlvbiBTbChhKXt2YXIgYj1FKDUpLGM9SWYoNDUpLGQ9c2soKSxlPUUoNiksZj1FKDEpO0UoMjMpO2tsPTA7bGw9ITA7cmwoKTtPbD1hO1FsPWI7UGw9ZjtKbD1jO1JsPXtjdGlkOmIsaXNEZXN0aW5hdGlvbjpkLGNhbm9uaWNhbElkOmV9fTtmdW5jdGlvbiBUbChhLGIsYyxkKXtpZihwbCgpKXt2YXIgZT1iLk07TWwoe3RhcmdldElkOmR8fFtiLnRhcmdldC5kZXN0aW5hdGlvbklkXSxyZXF1ZXN0Ont1cmw6YSxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OmN9LHFiOntldmVudElkOmUuZXZlbnRJZCxwcmlvcml0eUlkOmUucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShiLEguSi51ZikscHJpb3JpdHlJZDpRKGIsSC5KLnZmKX19KX19O2Z1bmN0aW9uIFVsKGEsYixjKXt2YXIgZD0iaHR0cHM6Ly8iK2ErYjtyZXR1cm4gYz9mdW5jdGlvbigpe3JldHVybiBXaigpP1hqKCkrYytiOmR9OmZ1bmN0aW9uKCl7cmV0dXJuIGR9fTt2YXIgVmw9e30sV2w9KFZsWzIyXT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2FzL2QiKSxWbFs2MF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2dzIiksVmxbMjNdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9nL2QiKSxWbCk7dmFyIFhsPXt9LFlsPShYbFs1XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiksWGxbNl09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbOF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNjZdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvdWNvbnZlcnNpb24iKSxYbFs2M109VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzY0XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iLCIvZ3MiKSxYbFs2NV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNzRdPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9hcy9wL2MifSxYbCk7dmFyIFpsPXt9LCRsPShabFs0NV09VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9jb2xsZWN0IiksWmxbNDZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29sbGVjdCIsIi9ncyIpLFpsWzY5XT1VbCgiYWQuZG91YmxlY2xpY2submV0IiwiL2NjbS9zL2NvbGxlY3QiKSxabFs1OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmxbNTddPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL3NldF9wYXJ0aXRpb25lZF9jb29raWUiKSxabCk7dmFyIGFtPXt9LGJtPShhbVs5XT1VbCgiZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0IiwiL3BhZ2VhZC92aWV3dGhyb3VnaGNvbnZlcnNpb24iKSxhbVs2OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3Jta3QvY29sbGVjdCIpLGFtKTt2YXIgY209e30sZG09KGNtWzExXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bMjFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbVs3Ml09VWwoImdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bNzNdPVVsKCJnb29nbGUuY29tIiwiL2NjbS9mb3JtLWRhdGEiLCIvZCIpLGNtKTt2YXIgZW09e30sZm09KGVtWzUxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvdHJhdmVsL2ZsaWdodHMvY2xpY2svY29udmVyc2lvbiIpLGVtKTt2YXIgZ209e30saG09KGdtWzFdPWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOi8vYWQuZG91YmxlY2xpY2submV0L2FjdGl2aXR5OyJ9LGdtWzJdPWZ1bmN0aW9uKCl7cmV0dXJuKFdqKCk/WGooKToiaHR0cHM6Ly9hZGUuZ29vZ2xlc3luZGljYXRpb24uY29tIikrIi9kZG0vYWN0aXZpdHkiKyhNKDQ2Nyk/IjsiOiIvIil9LGdtWzNdPWZ1bmN0aW9uKGEpe3JldHVybiJodHRwczovLyIrYS5scisiLmZscy5kb3VibGVjbGljay5uZXQvYWN0aXZpdHlpOyJ9LGdtKTtmdW5jdGlvbiBpbShhKXtzYigiSEVBTFRIIixhKX07dmFyIGptPXtiYTp7UHQ6ImF3X3VzZXJfZGF0YV9jYWNoZSIsb2k6ImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCIsYmg6ImRpYWdub3N0aWNzX3BhZ2VfaWQiLG9wOiJlbWVtbyIsZHU6ImVtX3JlZ2lzdHJ5IixTaToiZWFiIixydToiZmxfdXNlcl9kYXRhX2NhY2hlIix0dToiZ2E0X3VzZXJfZGF0YV9jYWNoZSIsTHU6ImlkY19wdl9jbGFpbSIsU2U6ImlwX2dlb19kYXRhX2NhY2hlIixYaToiaXBfZ2VvX2ZldGNoX2luX3Byb2dyZXNzIixqbjoibmJfZGF0YSIsVHE6InBhZ2VfZXhwZXJpbWVudF9pZHMiLGxuOiJwbGQiLFZlOiJwdF9kYXRhIixtbjoicHRfbGlzdGVuZXJfc2V0IixrajoicmV0cnlfY29udGFpbmVycyIsT2g6InNlcnZpY2Vfd29ya2VyX2VuZHBvaW50IixacToic2hhcmVkX3VzZXJfaWQiLGFyOiJzaGFyZWRfdXNlcl9pZF9yZXF1ZXN0ZWQiLHNqOiJzaGFyZWRfdXNlcl9pZF9zb3VyY2UiLGJ2OiJhd2giLGhyOiJ1bml2ZXJzYWxfY2xhaW1fcmVnaXN0cnkifX07dmFyIGttPWZ1bmN0aW9uKGEpe3JldHVybiB0ZihmdW5jdGlvbihiKXtmb3IodmFyIGMgaW4gYSlpZihiPT09YVtjXSYmIS9eWzAtOV0rJC8udGVzdChjKSlyZXR1cm4hMDtyZXR1cm4hMX0pfShqbS5iYSk7CmZ1bmN0aW9uIGxtKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7aWYoa20oYSkpe3ZhciBjLGQsZT0oZD0oYz1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSkpLnhjZCkhPW51bGw/ZDpjLnhjZD17fTtpZihlW2FdKXJldHVybiBlW2FdO2lmKGIpe3ZhciBmPXZvaWQgMCxnPTEsaD17fSxsPXtzZXQ6ZnVuY3Rpb24obil7Zj1uO2wubm90aWZ5KCl9LGdldDpmdW5jdGlvbigpe3JldHVybiBmfSxzdWJzY3JpYmU6ZnVuY3Rpb24obil7aFtTdHJpbmcoZyldPW47cmV0dXJuIGcrK30sdW5zdWJzY3JpYmU6ZnVuY3Rpb24obil7dmFyIHA9U3RyaW5nKG4pO3JldHVybiBoLmhhc093blByb3BlcnR5KHApPyhkZWxldGUgaFtwXSwhMCk6ITF9LG5vdGlmeTpmdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKGgpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTt0cnl7aFtxXShhLGYpfWNhdGNoKHIpe319fX07cmV0dXJuIGVbYV09bH19fQpmdW5jdGlvbiBtbShhLGIpe3ZhciBjPWxtKGEsITApO2MmJmMuc2V0KGIpfWZ1bmN0aW9uIG5tKGEpe3ZhciBiO3JldHVybihiPWxtKGEpKT09bnVsbD92b2lkIDA6Yi5nZXQoKX1mdW5jdGlvbiBvbShhLGIpe3ZhciBjPWxtKGEpO2lmKCFjKXtjPWxtKGEsITApO2lmKCFjKXJldHVybjtjLnNldChiKX1yZXR1cm4gYy5nZXQoKX1mdW5jdGlvbiBwbShhLGIpe2lmKHR5cGVvZiBiPT09ImZ1bmN0aW9uIil7dmFyIGM7cmV0dXJuKGM9bG0oYSwhMCkpPT1udWxsP3ZvaWQgMDpjLnN1YnNjcmliZShiKX19ZnVuY3Rpb24gcW0oYSxiKXt2YXIgYz1sbShhKTtyZXR1cm4gYz9jLnVuc3Vic2NyaWJlKGIpOiExfTt2YXIgc209ZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5LPSExfTtzbS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3RoaXMuS3x8KHRoaXMuSD10bSgpLHRoaXMuSFsiMCJdJiZvbShqbS5iYS5TZSxKU09OLnN0cmluZ2lmeSh0aGlzLkgpKSl9Owp2YXIgeG09ZnVuY3Rpb24oKXt2YXIgYT11bSxiPXZtLGM9dm9pZCAwLGQ9ZnVuY3Rpb24oKXtjIT09dm9pZCAwJiZxbShqbS5iYS5TZSxjKTt0cnl7dmFyIGY9bm0oam0uYmEuU2UpO2IuSD1KU09OLnBhcnNlKGYpfWNhdGNoKGcpe1AoMTIzKSxpbSgyKSxiLkg9e319Yi5LPSEwO2EoKX0sZT1ubShqbS5iYS5TZSk7ZT9kKGUpOihjPXBtKGptLmJhLlNlLGQpLHdtKCkpfSx3bT1mdW5jdGlvbigpe2lmKCFubShqbS5iYS5YaSkpe21tKGptLmJhLlhpLCEwKTt2YXIgYT1mdW5jdGlvbihiKXttbShqbS5iYS5TZSxifHwie30iKTttbShqbS5iYS5YaSwhMSl9O3RyeXtBLmZldGNoKCJodHRwczovL3d3dy5nb29nbGUuY29tL2NjbS9nZW8iLHttZXRob2Q6IkdFVCIsY2FjaGU6Im5vLXN0b3JlIixtb2RlOiJjb3JzIixjcmVkZW50aWFsczoib21pdCJ9KS50aGVuKGZ1bmN0aW9uKGIpe2Iub2s/Yi50ZXh0KCkudGhlbihmdW5jdGlvbihjKXthKGMpfSxmdW5jdGlvbigpe2EoKX0pOmEoKX0sZnVuY3Rpb24oKXthKCl9KX1jYXRjaChiKXthKCl9fX0sCnRtPWZ1bmN0aW9uKCl7dmFyIGE9RSgyMik7dHJ5e3JldHVybiBKU09OLnBhcnNlKHFiKGEpKX1jYXRjaChiKXtyZXR1cm4gUCgxMjMpLGltKDIpLHt9fX0seW09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMCJdfHwiIn0sem09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMSJdfHwiIn0sQW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjIiXTtyZXR1cm4gYn0sQm09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiNiJdIT09ITF9LENtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI5Il07cmV0dXJuIGJ9LERtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjtiPWEuSFsiNCJdfHwiIjsKcmV0dXJuIGJ9LEVtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjtiPWEuSFsiMyJdfHwiIjtyZXR1cm4gYn0sdm09bmV3IHNtO2Z1bmN0aW9uIEZtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiJodHRwczovLyIrKERtKCl8fCJ3d3ciKSsiLmdvb2dsZS1hbmFseXRpY3MuY29tLyIrYX1mdW5jdGlvbiBHbShhKXthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTt2YXIgYj1EbSgpO3JldHVybiJodHRwczovLyIrKGI/YisiLiI6IiIpKyJhbmFseXRpY3MuZ29vZ2xlLmNvbS8iK2F9dmFyIEhtPXt9LEltPShIbVsxN109ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2FnL2cvYyI6R20oKX0sSG1bMTZdPWZ1bmN0aW9uKCl7cmV0dXJuIFdqKCkmJiFEbSgpP1hqKCkrIi9nYS9nL2MiOkZtKCl9LEhtWzY3XT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiBEbSgpPyIiOiJodHRwczovL3d3dy5nb29nbGUuY29tLyIrYX0sSG0pO2Z1bmN0aW9uIEptKGEsYixjKXt2YXIgZD1VbChiLCIvbWVhc3VyZW1lbnQvY29udmVyc2lvbiIsYyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIERtKCk/YSgibWVhc3VyZW1lbnQvY29udmVyc2lvbiIpOmQoKX19dmFyIEttPXt9LExtPShLbVs1NV09Sm0oRm0sInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2dzIiksS21bNTRdPUptKEdtLCJ3d3cuZ29vZ2xlLmNvbSIsIi9nIiksS20pO3ZhciBNbT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LFdsLFlsLCRsLGJtLGRtLGZtLGhtLExtLEltKTtmdW5jdGlvbiBObShhLGIpe3ZhciBjPU9iamVjdC5rZXlzKGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYltkXSE9bnVsbH0pLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZCsiPSIrYltkXX0pLmpvaW4oIiYiKTtyZXR1cm4gTW1bYV0odm9pZCAwKSsiPyIrY307dmFyIE9tPXt9LFBtPShPbS50ZHA9MSxPbS5leHA9MSxPbS5ndG09MSxPbS5waWQ9MSxPbS5kbD0xLE9tLnNlcT0xLE9tLnQ9MSxPbS52PTEsT20pLFJtPWZ1bmN0aW9uKCl7dmFyIGE9UW07cmV0dXJuIE9iamVjdC5rZXlzKGEuSCkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBhLkhbYl19KX0sU209ZnVuY3Rpb24oYSxiLGMpe2lmKGEuSFtiXT09PXZvaWQgMHx8KGM9PT12b2lkIDA/MDpjKSlhLkhbYl09ITB9LFRtPWZ1bmN0aW9uKGEpe2EuZm9yRWFjaChmdW5jdGlvbihiKXtQbVtiXXx8KFFtLkhbYl09ITEpfSl9LFFtPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9e319O2Z1bmN0aW9uIFVtKGEsYixjKXt2YXIgZD1jPT09dm9pZCAwPyEwOmMsZT1RbTtlLktbYV09YjsoZD09PXZvaWQgMHx8ZCkmJlNtKGUsYSl9ZnVuY3Rpb24gVm0oYSxiKXtTbShRbSxhLGI9PT12b2lkIDA/ITE6Yil9O2Z1bmN0aW9uIFdtKGEpe3ZhciBiPTA7YS5HYy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2J8PTE8PGN9KTtyZXR1cm4gYn1mdW5jdGlvbiBYbSgpe3JldHVybnt0b3RhbDowLGpiOjAsR2M6bmV3IFNldCxsZjp7fX19ZnVuY3Rpb24gWW0oYSxiLGMsZCl7dmFyIGU9T2JqZWN0LmtleXMoYS5uZikuc29ydChmdW5jdGlvbihmLGcpe3JldHVybiBOdW1iZXIoZiktTnVtYmVyKGcpfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybltmLGIoYS5uZltmXSldfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmWzFdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmpvaW4oYyl9KS5qb2luKGQpO3JldHVybiBlP2U6dm9pZCAwfQpmdW5jdGlvbiBabShhLGIpe3ZhciBjLGQsZTtjPWM9PT12b2lkIDA/Il8iOmM7ZD1kPT09dm9pZCAwPyI7IjpkO2U9ZT09PXZvaWQgMD8ifiI6ZTtmb3IodmFyIGY9W10sZz1tKE9iamVjdC5rZXlzKGEubGYpLnNvcnQoKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1ZbShhLmxmW2xdLGIsYyxkKTtpZihuKXt2YXIgcD12b2lkIDA7Zi5wdXNoKCIiKygocD1sKSE9bnVsbD9wOiIiKStkK24pfX1yZXR1cm4gZi5sZW5ndGg/Zi5qb2luKGUpOnZvaWQgMH0KZnVuY3Rpb24gJG0oYSl7YS5qYj0wO2EuR2MuY2xlYXIoKTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhLmxmKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWEubGZbYy52YWx1ZV07ZC5qYj0wO2QuR2MuY2xlYXIoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkLm5mKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWQubmZbZi52YWx1ZV07Zy5qYj0wO2cuR2MuY2xlYXIoKX19fQpmdW5jdGlvbiBhbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8xOmQ7YS50b3RhbCs9ZDthLmpiKz1kO3ZhciBmLGc9Yj09PXZvaWQgMD8iIjpiO2Y9YS5sZltnXXx8KGEubGZbZ109e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LG5mOnt9fSk7Zi50b3RhbCs9ZDtmLmpiKz1kO3ZhciBoLGw9U3RyaW5nKGMpO2g9Zi5uZltsXXx8KGYubmZbbF09e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0fSk7aC50b3RhbCs9ZDtoLmpiKz1kO2UhPT12b2lkIDAmJihhLkdjLmFkZChlKSxmLkdjLmFkZChlKSxoLkdjLmFkZChlKSl9O3ZhciBibj1mdW5jdGlvbigpe3RoaXMuSD1YbSgpfTtibi5wcm90b3R5cGUuaW5jcmVtZW50PWZ1bmN0aW9uKGEsYil7YW4odGhpcy5ILGEsYil9O3ZhciBjbj1uZXcgYm47ZnVuY3Rpb24gZG4oYSl7dmFyIGI9U3RyaW5nKGFbR2YuWWJdfHwiIikucmVwbGFjZSgvXy9nLCIiKTtyZXR1cm4gU2IoYiwiY3Z0Iik/ImN2dCI6Yn12YXIgZW49QS5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiP2d0bV9sYXRlbmN5PSIpPj0wfHxBLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCImZ3RtX2xhdGVuY3k9Iik+PTA7dmFyIGduPWZ1bmN0aW9uKCl7dmFyIGE9Zm47cmV0dXJuIE0oNjAzKSYmSWYoNjUsITEpJiYhYS5afSxmbj1uZXcgZnVuY3Rpb24oYSl7dGhpcy5SPWEoKTt2YXIgYj1KZigyNyk7dGhpcy5OPWVufHx0aGlzLlI8Yjt2YXIgYz1KZig0Mik7dGhpcy5aPWVufHx0aGlzLlI+PTEtYzt2YXIgZD1NKDYwMykmJklmKDY1LCExKTt0aGlzLks9dGhpcy5afHxkO3ZhciBlPUpmKDI3KSxmPUpmKDYzKTt0aGlzLkg9ZW58fGY9PT0xfHx0aGlzLlI+PWUmJnRoaXMuUjxlK2Z9KGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9KTt2YXIgaG49ZnVuY3Rpb24oKXt0aGlzLkg9e319O2huLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyl7aWYoZm4uSyl7dmFyIGQ9am4oYixjKTtpZihkKXt2YXIgZSxmPWI7Zj09PTQmJihmPTUpO3ZhciBnPXRoaXMuSFtmXTtnfHwoZz10aGlzLkhbZl09e30pO2U9Zzt2YXIgaD1lW2RdO2h8fChoPWVbZF09W10pO2gucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpKTtjbi5pbmNyZW1lbnQoYS5kZXN0aW5hdGlvbklkLGEuZW5kcG9pbnQpO2EuZW5kcG9pbnQhPT01NiYmYS5lbmRwb2ludCE9PTYxJiZWbSgibWRlIiwhMCl9fX07CnZhciBtbj1mdW5jdGlvbihhLGIpe3ZhciBjPWtuLGQ9am4oYSxiKTtpZihkKXt2YXIgZT1sbihjLGEpO2lmKGUpe3ZhciBmPWVbZF07ZiYmKGVbZF09Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWcuRW99KSl9fX0sbG49ZnVuY3Rpb24oYSxiKXtiPT09NCYmKGI9NSk7cmV0dXJuIGEuSFtiXX0sam49ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2lmKGJbMF09PT0iLyIpe3ZhciBkO2M9KChkPUEubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpkLm9yaWdpbikrYn10cnl7dmFyIGU9bmV3IFVSTChjKTtyZXR1cm4gYT09PTI/ZS5vcmlnaW46ZS5vcmlnaW4rZS5wYXRobmFtZX1jYXRjaChmKXt9fSxrbj1uZXcgaG47CmZ1bmN0aW9uIG5uKGEpe3N3aXRjaChhKXtjYXNlICJzY3JpcHQtc3JjIjpyZXR1cm4gNDtjYXNlICJzY3JpcHQtc3JjLWVsZW0iOnJldHVybiA1O2Nhc2UgImZyYW1lLXNyYyI6cmV0dXJuIDI7Y2FzZSAiY29ubmVjdC1zcmMiOnJldHVybiAxO2Nhc2UgImltZy1zcmMiOnJldHVybiAzfX07ZnVuY3Rpb24gb24oYSxiLGMpe3ZhciBkLGU9YS5Hb29nbGViUWhDc087ZXx8KGU9e30sYS5Hb29nbGViUWhDc089ZSk7ZD1lO2lmKGRbYl0pcmV0dXJuITE7ZFtiXT1bXTtkW2JdWzBdPWM7cmV0dXJuITB9O3ZhciBwbixxbjthOntmb3IodmFyIHJuPVsiQ0xPU1VSRV9GTEFHUyJdLHNuPVJhLHRuPTA7dG48cm4ubGVuZ3RoO3RuKyspaWYoc249c25bcm5bdG5dXSxzbj09bnVsbCl7cW49bnVsbDticmVhayBhfXFuPXNufXZhciB1bj1xbiYmcW5bNjEwNDAxMzAxXTtwbj11biE9bnVsbD91bjohMTtmdW5jdGlvbiB2bigpe3ZhciBhPVJhLm5hdmlnYXRvcjtpZihhKXt2YXIgYj1hLnVzZXJBZ2VudDtpZihiKXJldHVybiBifXJldHVybiIifXZhciB3bix4bj1SYS5uYXZpZ2F0b3I7d249eG4/eG4udXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2Z1bmN0aW9uIHluKGEpe2lmKCFwbnx8IXduKXJldHVybiExO2Zvcih2YXIgYj0wO2I8d24uYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPXduLmJyYW5kc1tiXS5icmFuZDtpZihjJiZjLmluZGV4T2YoYSkhPS0xKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHpuKGEpe3JldHVybiB2bigpLmluZGV4T2YoYSkhPS0xfTtmdW5jdGlvbiBBbigpe3JldHVybiBwbj8hIXduJiZ3bi5icmFuZHMubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gQm4oKXtyZXR1cm4gQW4oKT8hMTp6bigiT3BlcmEiKX1mdW5jdGlvbiBDbigpe3JldHVybiB6bigiRmlyZWZveCIpfHx6bigiRnhpT1MiKX1mdW5jdGlvbiBEbigpe3JldHVybiBBbigpP3luKCJDaHJvbWl1bSIpOih6bigiQ2hyb21lIil8fHpuKCJDcmlPUyIpKSYmIShBbigpPzA6em4oIkVkZ2UiKSl8fHpuKCJTaWxrIil9O2Z1bmN0aW9uIEVuKCl7cmV0dXJuIHBuPyEhd24mJiEhd24ucGxhdGZvcm06ITF9ZnVuY3Rpb24gRm4oKXtyZXR1cm4gem4oImlQaG9uZSIpJiYhem4oImlQb2QiKSYmIXpuKCJpUGFkIil9ZnVuY3Rpb24gR24oKXtGbigpfHx6bigiaVBhZCIpfHx6bigiaVBvZCIpfTt2YXIgSG49ZnVuY3Rpb24oYSl7SG5bIiAiXShhKTtyZXR1cm4gYX07SG5bIiAiXT1mdW5jdGlvbigpe307Qm4oKTtBbigpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpO3puKCJFZGdlIik7IXpuKCJHZWNrbyIpfHx2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKXx8em4oIlRyaWRlbnQiKXx8em4oIk1TSUUiKXx8em4oIkVkZ2UiKTt2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKSYmem4oIk1vYmlsZSIpO0VuKCl8fHpuKCJNYWNpbnRvc2giKTtFbigpfHx6bigiV2luZG93cyIpOyhFbigpP3duLnBsYXRmb3JtPT09IkxpbnV4Ijp6bigiTGludXgiKSl8fEVuKCl8fHpuKCJDck9TIik7RW4oKXx8em4oIkFuZHJvaWQiKTtGbigpO3puKCJpUGFkIik7em4oImlQb2QiKTtHbigpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJrYWlvcyIpO0NuKCk7Rm4oKXx8em4oImlQb2QiKTt6bigiaVBhZCIpOyF6bigiQW5kcm9pZCIpfHxEbigpfHxDbigpfHxCbigpfHx6bigiU2lsayIpO0RuKCk7IXpuKCJTYWZhcmkiKXx8RG4oKXx8KEFuKCk/MDp6bigiQ29hc3QiKSl8fEJuKCl8fChBbigpPzA6em4oIkVkZ2UiKSl8fChBbigpP3luKCJNaWNyb3NvZnQgRWRnZSIpOnpuKCJFZGcvIikpfHwoQW4oKT95bigiT3BlcmEiKTp6bigiT1BSIikpfHxDbigpfHx6bigiU2lsayIpfHx6bigiQW5kcm9pZCIpfHxHbigpO3ZhciBJbj17fSxKbj1udWxsOwpmdW5jdGlvbiBLbihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGQpO2U+MjU1JiYoYltjKytdPWUmMjU1LGU+Pj04KTtiW2MrK109ZX12YXIgZj00O2Y9PT12b2lkIDAmJihmPTApO2lmKCFKbil7Sm49e307Zm9yKHZhciBnPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGg9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sbD0wO2w8NTtsKyspe3ZhciBuPWcuY29uY2F0KGhbbF0uc3BsaXQoIiIpKTtJbltsXT1uO2Zvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO0puW3FdPT09dm9pZCAwJiYoSm5bcV09cCl9fX1mb3IodmFyIHI9SW5bZl0sdD1BcnJheShNYXRoLmZsb29yKGIubGVuZ3RoLzMpKSx1PXJbNjRdfHwiIix2PTAseD0wO3Y8Yi5sZW5ndGgtMjt2Kz0zKXt2YXIgeT1iW3ZdLHo9Ylt2KzFdLEM9Ylt2KzJdLApEPXJbeT4+Ml0sST1yWyh5JjMpPDw0fHo+PjRdLEc9clsoeiYxNSk8PDJ8Qz4+Nl0sTj1yW0MmNjNdO3RbeCsrXT0iIitEK0krRytOfXZhciBTPTAsVz11O3N3aXRjaChiLmxlbmd0aC12KXtjYXNlIDI6Uz1iW3YrMV0sVz1yWyhTJjE1KTw8Ml18fHU7Y2FzZSAxOnZhciBlYT1iW3ZdO3RbeF09IiIrcltlYT4+Ml0rclsoZWEmMyk8PDR8Uz4+NF0rVyt1fXJldHVybiB0LmpvaW4oIiIpfTt2YXIgTG49ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSl9O3ZhciBNbj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO2Z1bmN0aW9uIE5uKGEsYixjLGQpe2Zvcih2YXIgZT1iLGY9Yy5sZW5ndGg7KGU9YS5pbmRleE9mKGMsZSkpPj0wJiZlPGQ7KXt2YXIgZz1hLmNoYXJDb2RlQXQoZS0xKTtpZihnPT0zOHx8Zz09NjMpe3ZhciBoPWEuY2hhckNvZGVBdChlK2YpO2lmKCFofHxoPT02MXx8aD09Mzh8fGg9PTM1KXJldHVybiBlfWUrPWYrMX1yZXR1cm4tMX12YXIgT249LyN8JC87CmZ1bmN0aW9uIFBuKGEsYil7dmFyIGM9YS5zZWFyY2goT24pLGQ9Tm4oYSwwLGIsYyk7aWYoZDwwKXJldHVybiBudWxsO3ZhciBlPWEuaW5kZXhPZigiJiIsZCk7aWYoZTwwfHxlPmMpZT1jO2QrPWIubGVuZ3RoKzE7cmV0dXJuIExuKGEuc2xpY2UoZCxlIT09LTE/ZTowKSl9dmFyIFFuPS9bPyZdKCR8IykvOwpmdW5jdGlvbiBSbihhLGIsYyl7Zm9yKHZhciBkLGU9YS5zZWFyY2goT24pLGY9MCxnLGg9W107KGc9Tm4oYSxmLGIsZSkpPj0wOyloLnB1c2goYS5zdWJzdHJpbmcoZixnKSksZj1NYXRoLm1pbihhLmluZGV4T2YoIiYiLGcpKzF8fGUsZSk7aC5wdXNoKGEuc2xpY2UoZikpO2Q9aC5qb2luKCIiKS5yZXBsYWNlKFFuLCIkMSIpO3ZhciBsLG49YyE9bnVsbD8iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSk6IiI7dmFyIHA9YituO2lmKHApe3ZhciBxLHI9ZC5pbmRleE9mKCIjIik7cjwwJiYocj1kLmxlbmd0aCk7dmFyIHQ9ZC5pbmRleE9mKCI/IiksdTt0PDB8fHQ+cj8odD1yLHU9IiIpOnU9ZC5zdWJzdHJpbmcodCsxLHIpO3E9W2Quc2xpY2UoMCx0KSx1LGQuc2xpY2UocildO3ZhciB2PXFbMV07cVsxXT1wP3Y/disiJiIrcDpwOnY7bD1xWzBdKyhxWzFdPyI/IitxWzFdOiIiKStxWzJdfWVsc2UgbD1kO3JldHVybiBsfTtmdW5jdGlvbiBTbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPVBuKGMsImZtdCIpO2lmKGQpe3ZhciBuPVBuKGMsInJhbmRvbSIpLHA9UG4oYywibGFiZWwiKXx8IiI7aWYoIW4pcmV0dXJuO3ZhciBxPUtuKExuKHApKyI6IitMbihuKSk7aWYoIW9uKGEscSxkKSlyZXR1cm59bCYmTnVtYmVyKGwpIT09ND8oYz1SbihjLCJyZm10IixsKSxjPVJuKGMsImZtdCIsNCkpOmx8fChjPVJuKGMsImZtdCIsNCkpO1VjKGMsZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2EuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cyYmZCYmKGEuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cz1udWxsLGQoKSl9LGZ1bmN0aW9uKCl7Zz09bnVsbHx8VG4oZyk7aD09bnVsbHx8VW4oaCxjKTtlPT1udWxsfHxlKCl9LGYsYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0ucGFyZW50RWxlbWVudHx8dm9pZCAwKTtyZXR1cm4gY307ZnVuY3Rpb24gVm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtpZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFduKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIGpkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWG4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMyxiWzBdKTtaYy5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFluKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIG1kLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsNSxiWzBdKTtVYy5hcHBseShudWxsLHcoYikpfQpmdW5jdGlvbiAkbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7YlswXSYma24ucmVnaXN0ZXIoYSwyLGJbMF0pO1hjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gYW8oYSl7dmFyIGI9U24uYXBwbHkobnVsbCx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpO2ImJmtuLnJlZ2lzdGVyKGEsNCxiKTtyZXR1cm4gYn07dmFyIGJvPXtNYTp7UmU6MCxVZToxLExoOjJ9fTtiby5NYVtiby5NYS5SZV09IkZVTExfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5VZV09IkxJTUlURURfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5MaF09Ik5PX1RSQU5TTUlTU0lPTiI7dmFyIGNvPXtpYTp7Z2Q6MCxjYjoxLHhkOjIsWmI6M319O2NvLmlhW2NvLmlhLmdkXT0iTk9fUVVFVUUiO2NvLmlhW2NvLmlhLmNiXT0iQURTIjtjby5pYVtjby5pYS54ZF09IkFOQUxZVElDUyI7Y28uaWFbY28uaWEuWmJdPSJNT05JVE9SSU5HIjt2YXIgZW89ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLmNvbnNlbnRUeXBlcz1ifTtlby5wcm90b3R5cGUuaXNDb25zZW50R3JhbnRlZD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLkgpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25zZW50VHlwZXMuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7Y2FzZSAxOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBCbChhKX0pO2RlZmF1bHQ6eWModGhpcy5ILCJjb25zZW50c1JlcXVpcmVkIGhhZCBhbiB1bmtub3duIHR5cGUiKX19Owp2YXIgZm89bmV3IGZ1bmN0aW9uKCl7dmFyIGE9e307dGhpcy5IPShhW2NvLmlhLmdkXT1iby5NYS5SZSxhW2NvLmlhLmNiXT1iby5NYS5SZSxhW2NvLmlhLnhkXT1iby5NYS5SZSxhW2NvLmlhLlpiXT1iby5NYS5SZSxhKTt2YXIgYj17fTt0aGlzLks9KGJbY28uaWEuZ2RdPW5ldyBlbygwLFtdKSxiW2NvLmlhLmNiXT1uZXcgZW8oMCxbImFkX3N0b3JhZ2UiXSksYltjby5pYS54ZF09bmV3IGVvKDAsWyJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiW2NvLmlhLlpiXT1uZXcgZW8oMSxbImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiKX07dmFyIGhvPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy50eXBlPWE7dGhpcy5IPVtdO0ZsKGZvLktbYV0uY29uc2VudFR5cGVzLGZ1bmN0aW9uKCl7Z28oYil8fGIuZmx1c2goKX0pfTtoby5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGE9bSh0aGlzLkgpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKXt2YXIgYz1iLnZhbHVlO2MoKX10aGlzLkg9W119O3ZhciBnbz1mdW5jdGlvbihhKXtyZXR1cm4gZm8uSFthLnR5cGVdPT09Ym8uTWEuTGgmJiFmby5LW2EudHlwZV0uaXNDb25zZW50R3JhbnRlZCgpfSxpbz1mdW5jdGlvbihhLGIpe2dvKGEpP2EuSC5wdXNoKGIpOmIoKX0sam89ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IE1hcH0sbG89ZnVuY3Rpb24oYSl7dmFyIGI9a287Yi5ILmhhcyhhKXx8Yi5ILnNldChhLG5ldyBobyhhKSk7cmV0dXJuIGIuSC5nZXQoYSl9O2pvLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuSC5jbGVhcigpfTsKdmFyIGtvPW5ldyBqbzt2YXIgbW89WyJmaW4iLCJmcyIsIm1jYyIsIm5jYyJdLG5vPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD8hMTphO3ZhciBiPVJtKCksYz1RbS5LLGQ9Yi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV0hPT12b2lkIDAmJihhfHwhbW8uaW5jbHVkZXMoZSkpfSk7VG0oZCk7cmV0dXJuIGQubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPWNbZV07dHlwZW9mIGY9PT0iZnVuY3Rpb24iJiYoZj1mKCkpO3JldHVybiBmPyImIitlKyI9IitmOiIifSkuam9pbigiIikrIiZ6PTAifSxvbz1mdW5jdGlvbihhKXt2YXIgYj0iaHR0cHM6Ly8iK0UoMjEpLGM9Ii90ZD9pZD0iK0UoNSk7cmV0dXJuIiIrZmsoYikrYythfSxwbz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7aWYoJGsoMjYpJiZmbi5LJiZFKDUpJiYoY3x8IWduKCkpKXt2YXIgZD1sbyhjby5pYS5aYik7aWYoZ28oZCkpYS5IfHwoYS5IPSEwLGlvKGQsZnVuY3Rpb24oKXtyZXR1cm4gcG8oYSl9KSk7CmVsc2V7YiYmVW0oImZpbiIsIjEiKTt2YXIgZT1ubyhiKSxmPW9vKGUpLGc9e2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo2MX07Yj9ZbihnLGYsdm9pZCAwLHtRZzohMH0sdm9pZCAwLGZ1bmN0aW9uKCl7WmMoZisiJmltZz0xIil9KTpYbihnLGYpO2EuSD0hMTtxbyhlKX19fSxxbz1mdW5jdGlvbihhKXtpZihLYyYmKFNiKEtjLCJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS8iKXx8SWYoNDcpKSYmIShhLmluZGV4T2YoIiZjc3A9Iik8MCYmYS5pbmRleE9mKCImbWRlPSIpPDApKXt2YXIgYjthOnt0cnl7aWYoS2Mpe2I9bmV3IFVSTChLYyk7YnJlYWsgYX19Y2F0Y2goYyl7fWI9dm9pZCAwfWImJlVjKCIiK0tjKyhLYy5pbmRleE9mKCI/Iik+PTA/IiYiOiI/IikrImlzX3RkPTEiK2EpfX0scm89ZnVuY3Rpb24oYSl7Um0oKS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiFQbVtiXX0pJiZwbyhhLCEwKX0sc289bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9ITE7CiRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3JvKGEpfSl9O2Z1bmN0aW9uIHRvKGEsYil7cG8oc28sYT09PXZvaWQgMD8hMTphLGI9PT12b2lkIDA/ITE6Yil9O3ZhciB1bz1bImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSIsImFkX3BlcnNvbmFsaXphdGlvbiJdLHZvPVtGLkQuZGQsRi5ELnljLEYuRC5RZixGLkQuS2IsRi5ELnhjLEYuRC5mYixGLkQuRGIsRi5ELm5iLEYuRC5MYixGLkQudmNdLHlvPWZ1bmN0aW9uKCl7dmFyIGE9d287IWEuUiYmYS5IJiYodW8uc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYl0hPT0xfSl8fHhvKCJtYmMiKSk7YS5SPSEwfSx4bz1mdW5jdGlvbihhKXtmbi5LJiYoVW0oYSwiMSIpLHRvKCkpfSx6bz1mdW5jdGlvbihhLGIpe3ZhciBjPXdvO2lmKCFjLk5bYl0mJihjLk5bYl09ITAsYy5LW2JdKSlmb3IodmFyIGQ9bSh2byksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpaWYoTyhhLGUudmFsdWUpKXt4bygiZXJjIik7YnJlYWt9fSx3bz1uZXcgZnVuY3Rpb24oKXt0aGlzLlI9dGhpcy5IPSExO3RoaXMuTj17fTt0aGlzLks9e319O3ZhciBBbz17fSxCbz1PYmplY3QuZnJlZXplKChBb1tGLkQuUmNdPTEsQW9bRi5ELmhoXT0xLEFvW0YuRC5zaV09MSxBb1tGLkQuU2NdPTEsQW9bRi5ELkhhXT0xLEFvW0YuRC5MYl09MSxBb1tGLkQuQ2JdPTEsQW9bRi5ELlRiXT0xLEFvW0YuRC5JZF09MSxBb1tGLkQudmNdPTEsQW9bRi5ELm5iXT0xLEFvW0YuRC5KZF09MSxBb1tGLkQuSGVdPTEsQW9bRi5ELk9hXT0xLEFvW0YuRC5RcF09MSxBb1tGLkQuUGZdPTEsQW9bRi5ELkZpXT0xLEFvW0YuRC5waF09MSxBb1tGLkQuV2NdPTEsQW9bRi5ELlFmXT0xLEFvW0YuRC5hcV09MSxBb1tGLkQuVGFdPTEsQW9bRi5ELlVmXT0xLEFvW0YuRC5mcV09MSxBb1tGLkQuT2RdPTEsQW9bRi5ELlJsXT0xLEFvW0YuRC5ZY109MSxBb1tGLkQuWmNdPTEsQW9bRi5ELkRiXT0xLEFvW0YuRC5hbV09MSxBb1tGLkQuV2JdPTEsQW9bRi5ELlRkXT0xLEFvW0YuRC5YYl09MSxBb1tGLkQuT2ldPTEsQW9bRi5ELmRkXT0xLEFvW0YuRC55aF09MSxBb1tGLkQuUGldPQoxLEFvW0YuRC5VZF09MSxBb1tGLkQueWNdPTEsQW9bRi5ELlZkXT0xLEFvW0YuRC5sbV09MSxBb1tGLkQuV2RdPTEsQW9bRi5ELmVkXT0xLEFvW0YuRC5val09MSxBbykpO09iamVjdC5mcmVlemUoW0YuRC56YSxGLkQuVWEsRi5ELk1iLEYuRC50YixGLkQuTmksRi5ELmZiLEYuRC5HaSxGLkQuTXBdKTsKdmFyIENvPXt9LERvPU9iamVjdC5mcmVlemUoKENvW0YuRC5xcF09MSxDb1tGLkQucnBdPTEsQ29bRi5ELnRwXT0xLENvW0YuRC51cF09MSxDb1tGLkQudnBdPTEsQ29bRi5ELnpwXT0xLENvW0YuRC5BcF09MSxDb1tGLkQuQnBdPTEsQ29bRi5ELkRwXT0xLENvW0YuRC55Zl09MSxDbykpLEVvPXt9LEZvPU9iamVjdC5mcmVlemUoKEVvW0YuRC52bF09MSxFb1tGLkQud2xdPTEsRW9bRi5ELnhlXT0xLEVvW0YuRC55ZV09MSxFb1tGLkQueGxdPTEsRW9bRi5ELkFkXT0xLEVvW0YuRC56ZV09MSxFb1tGLkQub2NdPTEsRW9bRi5ELlFjXT0xLEVvW0YuRC5xY109MSxFb1tGLkQuSWJdPTEsRW9bRi5ELkFlXT0xLEVvW0YuRC5yY109MSxFb1tGLkQueWxdPTEsRW8pKSxHbz1PYmplY3QuZnJlZXplKFtGLkQuUmMsRi5ELlNjLEYuRC5KZCxGLkQuUWYsRi5ELldmLEYuRC5UZCxGLkQuT2ksRi5ELlZkXSksSG89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhHbykpKSxJbz1PYmplY3QuZnJlZXplKFtGLkQuQ2IsCkYuRC5waCxGLkQueWgsRi5ELlBpLEYuRC5uaF0pLEpvPU9iamVjdC5mcmVlemUoW10uY29uY2F0KHcoSW8pKSksS289e30sTG89KEtvW0YuRC5rYV09IjEiLEtvW0YuRC5yYV09IjIiLEtvW0YuRC5tYV09IjMiLEtvW0YuRC5YYV09IjQiLEtvKSxNbz17fSxObz1PYmplY3QuZnJlZXplKChNby5zZWFyY2g9InMiLE1vLnlvdXR1YmU9InkiLE1vLnBsYXlzdG9yZT0icCIsTW8uc2hvcHBpbmc9ImgiLE1vLmFkcz0iYSIsTW8ubWFwcz0ibSIsTW8pKTtmdW5jdGlvbiBPbyhhKXtyZXR1cm4gdHlwZW9mIGEhPT0ib2JqZWN0Inx8YT09PW51bGw/e306YX1mdW5jdGlvbiBQbyhhKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PW51bGw/IiI6dHlwZW9mIGE9PT0ib2JqZWN0Ij9hLnRvU3RyaW5nKCk6U3RyaW5nKGEpfWZ1bmN0aW9uIFFvKGEpe2lmKGEhPT12b2lkIDAmJmEhPT1udWxsKXJldHVybiBQbyhhKX07dmFyIFJvPVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdO2Z1bmN0aW9uIFNvKGEpe2Zvcih2YXIgYj1tKGFbRi5ELm5jXXx8WyIiXSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17cmVnaW9uOnZvaWQgMH0sYz1iLm5leHQoKSlkLnJlZ2lvbj1jLnZhbHVlLEdiKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYsZyl7aWYoZiE9PUYuRC5uYyl7dmFyIGg9UG8oZyksbD1lLnJlZ2lvbixuPXltKCkscD16bSgpO3lsPSEwO3hsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVjbGFyZShmLGgsbCxuLHApfX19KGQpKX0KZnVuY3Rpb24gVG8oYSl7eW8oKTt2YXIgYj1hbCgxNyxmdW5jdGlvbigpe3JldHVybiExfSksYz1hbCgxNixmdW5jdGlvbigpe3JldHVybiExfSk7IWImJmMmJnhvKCJjcmMiKTtaaygxNywhMCk7dmFyIGQ9YVtGLkQuWWddO2QmJlAoNDEpO3ZhciBlPWFbRi5ELm5jXTtlP1AoNDApOmU9WyIiXTtmb3IodmFyIGY9bShlKSxnPWYubmV4dCgpLGg9e307IWcuZG9uZTtoPXtCbzp2b2lkIDB9LGc9Zi5uZXh0KCkpaC5Cbz1nLnZhbHVlLEdiKGEsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4scCl7aWYobiE9PUYuRC5uYyYmbiE9PUYuRC5ZZyl7dmFyIHE9UW8ocCkscj1sLkJvLHQ9TnVtYmVyKGQpLHU9eW0oKSx2PXptKCk7dD10PT09dm9pZCAwPzA6dDt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLmRlZmF1bHQobixxLHIsdSx2LHQsQWwpfX19KGgpKX0KZnVuY3Rpb24gVW8oYSl7QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO3ZhciBiPWFbRi5ELm5jXTtpZihiKXt2YXIgYz1BcnJheS5pc0FycmF5KGIpP2I6W2JdO2lmKCFjLmluY2x1ZGVzKHptKCkpJiYhYy5pbmNsdWRlcyh5bSgpKSlyZXR1cm59R2IoYSxmdW5jdGlvbihkLGUpe3N3aXRjaChkKXtjYXNlICJhZF9zdG9yYWdlIjpjYXNlICJhbmFseXRpY3Nfc3RvcmFnZSI6Y2FzZSAiYWRfdXNlcl9kYXRhIjpjYXNlICJhZF9wZXJzb25hbGl6YXRpb24iOmJyZWFrO2RlZmF1bHQ6cmV0dXJufUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz0hMDtBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tkXT1lPT09ImdyYW50ZWQiPzM6Mn0pfQpmdW5jdGlvbiBWbyhhLGIpe3lvKCk7WmsoMTYsITApO0diKGEsZnVuY3Rpb24oYyxkKXt2YXIgZT1QbyhkKTt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLnVwZGF0ZShjLGUsQWwpfSk7R2woYi5ldmVudElkLGIucHJpb3JpdHlJZCl9ZnVuY3Rpb24gV28oYSl7YS5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihBbC5zZWxlY3RlZEFsbENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwLEdiKE5vLGZ1bmN0aW9uKGIpe0FsLmNvcmVQbGF0Zm9ybVNlcnZpY2VzW2JdPWEuYWxsPT09ImdyYW50ZWQiO0FsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMH0pKTtHYihhLGZ1bmN0aW9uKGIsYyl7YiE9PSJhbGwiJiYoQWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09Yz09PSJncmFudGVkIixBbC51c2VkQ29yZVBsYXRmb3JtU2VydmljZXM9ITApfSl9CmZ1bmN0aW9uIFhvKGEpe0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gWW8oKXt2YXIgYT1abztBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gJG8oYSxiKXtGbChhLGIpfWZ1bmN0aW9uIGFwKGEsYil7SWwoYSxiKX1mdW5jdGlvbiBicChhLGIpe0hsKGEsYil9ZnVuY3Rpb24gY3AoKXt2YXIgYT1bRi5ELmthLEYuRC5YYSxGLkQubWFdO3RsKCkud2FpdEZvclVwZGF0ZShhLDUwMCxBbCl9ZnVuY3Rpb24gZHAoYSl7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7dGwoKS5jbGVhclRpbWVvdXQoZCx2b2lkIDAsQWwpfUdsKCl9CmZ1bmN0aW9uIGVwKGEpe2Zvcih2YXIgYj17fSxjPW0oYS5zcGxpdCgifCIpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBifTt2YXIgZnA9T2JqZWN0LmZyZWV6ZShbRi5ELmthLEYuRC5tYV0pOwp2YXIgaHA9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YltncFtlXXx8ZV09YVtlXX1yZXR1cm4gYn0saXA9ZnVuY3Rpb24oYSl7cmV0dXJuISFRKGEsSC5KLnZkKSYmUihhLEYuRC5QZCk9PT0iMSImJlIoYSxGLkQuSGQpIT09IjEiJiZYbyhmcCl9LGpwPWZ1bmN0aW9uKGEsYil7aWYoIWlwKGEpKXJldHVybiExO3ZhciBjPVFjKCl8fE9jKCk/NTg6NTcsZD1ObShjLGhwKGIpKTtUbChkLGEsYyk7WW4oe2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCsiJmZtdD04Iix2b2lkIDAse1FnOiEwLG1ldGhvZDoiR0VUIn0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7WmMoZCsiJmZtdD0zIil9KTtyZXR1cm4hMH0sa3A9e30sZ3A9KGtwLmRsPSJ1cmwiLGtwLmRyPQoicmVmIixrcC51aWQ9InVzZXJJZCIsa3ApO3ZhciBscD1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ9ZnVuY3Rpb24oZSl7YltlXSE9bnVsbCYmYltlXSE9PSIiJiYoY1tlXT1iW2VdKX07TSg0NzQpJiZkKCJfZ3NpZCIpO1IoYSxGLkQuSGQpIT09IjEiJiYoZCgiZ2NsaWQiKSxkKCJnY2xzcmMiKSxkKCJhdWlkIiksZCgiZGNsaWQiKSk7aWYoT2JqZWN0LmtleXMoYykubGVuZ3RoKXJldHVybiBkKCJndG0iKSxjfTsKdmFyIG1wPXt9LG5wPShtcFtGLkQuc2FdPSJnY3UiLG1wW0YuRC5TYl09ImdjbGdiIixtcFtGLkQubGJdPSJnY2xhdyIsbXBbRi5ELnpmXT0iZ2FkX3NvdXJjZSIsbXBbRi5ELkFmXT0iZ2FkX3NvdXJjZV9zcmMiLG1wW0YuRC5EZF09ImdjbGlkIixtcFtGLkQuQWxdPSJnY2xzcmMiLG1wW0YuRC5CZl09ImdicmFpZCIsbXBbRi5ELkVlXT0id2JyYWlkIixtcFtGLkQuRWRdPSJhdWlkIixtcFtGLkQuQmxdPSJhZSIsbXBbRi5ELkhhXT1udWxsLG1wW0YuRC5EbF09InJuZCIsbXBbRi5ELkhkXT0ibmNsIixtcFtGLkQuTmZdPSJnY2xkYyIsbXBbRi5ELktkXT0iZGNsaWQiLG1wW0YuRC5WY109ImVkaWQiLG1wW0YuRC5VYl09ImVuIixtcFtGLkQuS2VdPSJnZHByIixtcFtGLkQuWGNdPSJnZGlkIixtcFtGLkQuVGFdPW51bGwsbXBbRi5ELkxlXT0iX25nIixtcFtGLkQudGhdPSJncHBfc2lkIixtcFtGLkQudWhdPSJncHAiLG1wW0YuRC5WZl09Il90dSIsbXBbRi5ELlFsXT0iZ3RtX3VwIixtcFtGLkQuTWVdPQoiZnJtIixtcFtGLkQuUGRdPSJscHMiLG1wW0YuRC5MaV09ImRpZCIsbXBbRi5ELlVsXT0ibmF2dCIsbXBbRi5ELnphXT0iZGwiLG1wW0YuRC5VYV09ImRyIixtcFtGLkQuTWJdPSJkdCIsbXBbRi5ELmJtXT0ic2Nyc3JjIixtcFtGLkQuWmZdPSJnYV91aWQiLG1wW0YuRC5PZV09ImdkcHJfY29uc2VudCIsbXBbRi5ELlFpXT0idGVzdG9ubHkiLG1wW0YuRC5ycV09InVfdHoiLG1wW0YuRC5QZV09InRvcCIsbXBbRi5ELlFlXT0idGlkIixtcFtGLkQuZmJdPSJ1aWQiLG1wW0YuRC5rZ109InVzX3ByaXZhY3kiLG1wW0YuRC5lZF09bnVsbCxtcFtGLkQuZGVdPSJucGEiLG1wKTtmdW5jdGlvbiBvcChhLGIpe2lmKGIhPW51bGwmJmIhPT0iIil7dmFyIGM9Yj09PSEwPyIxIjpiPT09ITE/IjAiOmVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYikpO2lmKFNiKGEsIl8mIikpcmV0dXJue2tleTphLnN1YnN0cmluZygyKSx2YWx1ZTpjfTt2YXIgZD1ucFthXTtpZihkIT09bnVsbClyZXR1cm4gZD97a2V5OmQsdmFsdWU6Y306e2tleTpBYihiKT8iZXBuLiIrYToiZXAuIithLHZhbHVlOmN9fX07ZnVuY3Rpb24gcHAoYSl7YT1hPT09dm9pZCAwP1tdOmE7cmV0dXJuIHhqKGEpLmpvaW4oIn4iKX07ZnVuY3Rpb24gcXAoKXt2YXIgYT1bXSxiPU51bWJlcignJyl8fDAsYz1OdW1iZXIoJycpfHwwO2N8fChjPWIvMTAwKTt2YXIgZD1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjI4LHN0dWR5SWQ6MjI4LGV4cGVyaW1lbnRJZDoxMDUxNzcxNTQsY29udHJvbElkOjEwNTE3NzE1NSxjb250cm9sSWQyOjEwNTI1NTI0NSxwcm9iYWJpbGl0eTpjLGFjdGl2ZTpkLFplOjB9KTt2YXIgZT1OdW1iZXIoJycpfHwKMCxmPU51bWJlcignJyl8fDA7Znx8KGY9ZS8xMDApO3ZhciBnPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMzUsc3R1ZHlJZDoyMzUsZXhwZXJpbWVudElkOjEwNTM1NzE1MCxjb250cm9sSWQ6MTA1MzU3MTUxLGNvbnRyb2xJZDI6MCxwcm9iYWJpbGl0eTpmLGFjdGl2ZTpnLFplOjF9KTt2YXIgaD1OdW1iZXIoJycpfHwwLGw9TnVtYmVyKCcnKXx8CjA7bHx8KGw9aC8xMDApO3ZhciBuPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyNjYsc3R1ZHlJZDoyNjYsZXhwZXJpbWVudElkOjExNTcxODUyOSxjb250cm9sSWQ6MTE1NzE4NTMwLGNvbnRyb2xJZDI6MTE1NzE4NTMxLHByb2JhYmlsaXR5OmwsYWN0aXZlOm4sWmU6MH0pO3ZhciBwPU51bWJlcignJyl8fDAscT1OdW1iZXIoJycpfHwKMDtxfHwocT1wLzEwMCk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NyxzdHVkeUlkOjI2NyxleHBlcmltZW50SWQ6MTE1NzE4NTI2LGNvbnRyb2xJZDoxMTU3MTg1MjcsY29udHJvbElkMjoxMTU3MTg1MjgscHJvYmFiaWxpdHk6cSxhY3RpdmU6cixaZTowfSk7cmV0dXJuIGF9O3ZhciBycD1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj1uZXcgU2V0fSx4cD1mdW5jdGlvbihhLGIpe3ZhciBjPWIsZD1iPWEuTltjLnN0dWR5SWRdP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7YWN0aXZlOiEwfSk6YyxlPUZpO2QuY29udHJvbElkMiYmZC5wcm9iYWJpbGl0eTw9LjI1fHwoZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGQse2NvbnRyb2xJZDI6MH0pKTtlLnN0dWRpZXNbZC5zdHVkeUlkXT1kO2IuZm9jdXNlZCYmKGEuS1tiLnN0dWR5SWRdPSEwKTtpZihiLlplPT09MSl7dmFyIGY9Yi5zdHVkeUlkO3NwKGEsdHAoKSxmKTt1cChhLGYpP3RqKHVqLGYpOnZwKGEsZik/dWouS1tmXT0hMDp3cChhLGYpJiYodWouSFtmXT0hMCl9ZWxzZSBpZihiLlplPT09MCl7dmFyIGc9Yi5zdHVkeUlkO3NwKGEsYS5ILGcpO3VwKGEsZyk/dGoodWosZyk6dnAoYSxnKT91ai5LW2ddPSEwOndwKGEsZykmJgoodWouSFtnXT0hMCl9fSxzcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1GaTtpZihlLnN0dWRpZXNbY10pe3ZhciBmPWUuc3R1ZGllc1tjXSxnPWYuZXhwZXJpbWVudElkLGg9Zi5wcm9iYWJpbGl0eTtpZighKGIuc3R1ZGllc3x8e30pW2NdKXt2YXIgbD1iLnN0dWRpZXN8fHt9O2xbY109ITA7Yi5zdHVkaWVzPWw7aWYoIWUuc3R1ZGllc1tjXS5hY3RpdmUpaWYoZS5zdHVkaWVzW2NdLnByb2JhYmlsaXR5Pi41KUlpKGIsZyxjKTtlbHNlIGlmKCEoaDw9MHx8aD4xKSl7dmFyIG49dm9pZCAwO2lmKGQpe3ZhciBwPUNpKGQrIn4iK2MpO2lmKHA9PT0iZTIiKW49LTE7ZWxzZXtmb3IodmFyIHE9bmV3IFVpbnQ4QXJyYXkocCkscj1CaWdJbnQoMCksdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXI9cjw8QmlnSW50KDgpfEJpZ0ludCh1LnZhbHVlKTtuPU51bWJlcihyJUJpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpfX1HaS5zayhiLGMsbil9fX1pZighYS5LW2NdKXt2YXIgdj0KTmkoYixjKTt2JiZ3ai5ILksuYWRkKHYpfX0sdHA9ZnVuY3Rpb24oKXtyZXR1cm4gb20oam0uYmEuVHEse30pfSx1cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIEtpKGMsYil8fEtpKGEuSCxiKX0sdnA9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBMaShjLGIpfHxMaShhLkgsYil9LHdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gTWkoYyxiKXx8TWkoYS5ILGIpfSx5cDsKZnVuY3Rpb24genAoKXtpZigheXApe3ZhciBhPXlwPW5ldyBycCxiLGMsZD0oKGI9QSk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhhc2gpfHwiIjtpZihkWzBdPT09IiMiJiZkWzFdPT09Il8iJiZkWzJdPT09InQiJiZkWzNdPT09ImUiJiZkWzRdPT09Ij0iKXt2YXIgZT1kLnN1YnN0cmluZyg1KTtpZihlKWZvcih2YXIgZj1tKGUuc3BsaXQoIn4iKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPU51bWJlcihnLnZhbHVlKTtoJiYoYS5OW2hdPSEwLHRqKHVqLGgpKX19Zm9yKHZhciBsPW0ocXAoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpeHAoYSxuLnZhbHVlKTtmb3IodmFyIHA9W10scT1tKE1mKDU2KXx8W10pLHI9cS5uZXh0KCk7IXIuZG9uZTtyPXEubmV4dCgpKXt2YXIgdD1yLnZhbHVlLHU9e3N0dWR5SWQ6dFsxXSxhY3RpdmU6ISF0WzJdLHByb2JhYmlsaXR5OnRbM118fDAsZXhwZXJpbWVudElkOnRbNF18fAowLGNvbnRyb2xJZDp0WzVdfHwwLGNvbnRyb2xJZDI6dFs2XXx8MH0sdj0wO3N3aXRjaCh0WzddKXtjYXNlIDI6dj0xO2JyZWFrO2Nhc2UgMzp2PTI7YnJlYWs7Y2FzZSAxOmNhc2UgNDpjYXNlIDU6Y2FzZSAwOnY9MH12YXIgeDthOnN3aXRjaCh1LnN0dWR5SWQpe2Nhc2UgNTY3OmNhc2UgNDYyOng9ITA7YnJlYWsgYTtkZWZhdWx0Ong9ITF9dmFyIHk9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx1LHtaZTp2LGZvY3VzZWQ6eH0pOyh5LmFjdGl2ZXx8eS5wcm9iYWJpbGl0eT4uNSYmeS5leHBlcmltZW50SWR8fHkuZXhwZXJpbWVudElkJiZ5LmNvbnRyb2xJZCkmJnAucHVzaCh5KX1mb3IodmFyIHo9bShwKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl4cChhLEMudmFsdWUpfX0KZnVuY3Rpb24gQXAoYSxiKXt6cCgpO3ZhciBjPXlwO3NwKGMsdHAoKSxhLGIpO3VwKGMsYSk/dGoodWosYSk6dnAoYyxhKT91ai5LW2FdPSEwOndwKGMsYSkmJih1ai5IW2FdPSEwKX1mdW5jdGlvbiBCcCgpe3pwKCk7dmFyIGE9eXAsYj11cChhLDU2Nyk7aWYoYS5LWzU2N10pe3ZhciBjLGQ9dHAoKTsoYz1OaShkLDU2Nyl8fE5pKGEuSCw1NjcpKSYmYS5SLmFkZChjKX1yZXR1cm4gYn1mdW5jdGlvbiBDcChhKXt6cCgpO3ZhciBiPW5ldyBTZXQoeXAuUik7aWYoYSlmb3IodmFyIGM9UShhLEguSi5DaCl8fFtdLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSliLmFkZChlLnZhbHVlKTtyZXR1cm4gcHAoW10uY29uY2F0KHcoYikpKX07ZnVuY3Rpb24gRHAoYSl7dmFyIGI9YS5sb2NhdGlvbi5ocmVmO2lmKGE9PT1hLnRvcClyZXR1cm57dXJsOmIsSXM6ITB9O3ZhciBjPSExLGQ9YS5kb2N1bWVudDtkJiZkLnJlZmVycmVyJiYoYj1kLnJlZmVycmVyLGEucGFyZW50PT09YS50b3AmJihjPSEwKSk7dmFyIGU9YS5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7aWYoZSl7dmFyIGY9ZVtlLmxlbmd0aC0xXSxnO2YmJigoZz1iKT09bnVsbD92b2lkIDA6Zy5pbmRleE9mKGYpKT09PS0xJiYoYz0hMSxiPWYpfXJldHVybnt1cmw6YixJczpjfX1mdW5jdGlvbiBFcChhKXt0cnl7dmFyIGI7aWYoYj0hIWEmJmEubG9jYXRpb24uaHJlZiE9bnVsbClhOnt0cnl7SG4oYS5mb28pO2I9ITA7YnJlYWsgYX1jYXRjaChjKXt9Yj0hMX1yZXR1cm4gYn1jYXRjaChjKXtyZXR1cm4hMX19ZnVuY3Rpb24gRnAoKXtmb3IodmFyIGE9QSxiPWE7YSYmYSE9PWEucGFyZW50OylhPWEucGFyZW50LEVwKGEpJiYoYj1hKTtyZXR1cm4gYn07dmFyIEdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oKXt9O2MucHJvdG90eXBlPWEucHJvdG90eXBlO3ZhciBkPW5ldyBjO2EuYXBwbHkoZCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO3JldHVybiBkfSxIcD1mdW5jdGlvbihhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj1udWxsO2MoKX19fTtmdW5jdGlvbiBJcChhLGIpe2lmKGEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYVtjXSxjLGEpfTtmdW5jdGlvbiBKcChhKXt2YXIgYj1hLnNwbGl0KC9bPyNdLyksYz0vWz9dLy50ZXN0KGEpPyI/IitiWzFdOiIiO3JldHVybnt6azpiWzBdLHBhcmFtczpjLGZyYWdtZW50Oi9bI10vLnRlc3QoYSk/IiMiKyhjP2JbMl06YlsxXSk6IiJ9fWZ1bmN0aW9uIEtwKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGpjKGFbMF0pO2Zvcih2YXIgYz1hWzBdLGQ9MDtkPGIubGVuZ3RoO2QrKyljKz1lbmNvZGVVUklDb21wb25lbnQoYltkXSkrYVtkKzFdO3JldHVybiBqYyhjKX0KZnVuY3Rpb24gTHAoYSxiLGMsZCl7ZnVuY3Rpb24gZShnLGgpe2chPW51bGwmJihBcnJheS5pc0FycmF5KGcpP2cuZm9yRWFjaChmdW5jdGlvbihsKXtyZXR1cm4gZShsLGgpfSk6KGIrPWYrZW5jb2RlVVJJQ29tcG9uZW50KGgpKyI9IitlbmNvZGVVUklDb21wb25lbnQoZyksZj0iJiIpKX12YXIgZj1iLmxlbmd0aD8iJiI6Ij8iO2QuY29uc3RydWN0b3I9PT1PYmplY3QmJihkPU9iamVjdC5lbnRyaWVzKGQpKTtBcnJheS5pc0FycmF5KGQpP2QuZm9yRWFjaChmdW5jdGlvbihnKXtyZXR1cm4gZShnWzFdLGdbMF0pfSk6ZC5mb3JFYWNoKGUpO3JldHVybiBqYyhhK2IrYyl9ZnVuY3Rpb24gTXAoYSxiKXt2YXIgYz1KcChrYyhhKS50b1N0cmluZygpKSxkPWMuemsuc2xpY2UoLTEpPT09Ii8iPyIiOiIvIixlPWMuemsrZCtlbmNvZGVVUklDb21wb25lbnQoYik7cmV0dXJuIGpjKGUrYy5wYXJhbXMrYy5mcmFnbWVudCl9O3ZhciBOcD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLGQ9MDtkPDUwOysrZCl7dmFyIGU7dHJ5e2U9ISghYy5mcmFtZXN8fCFjLmZyYW1lc1tiXSl9Y2F0Y2goaCl7ZT0hMX1pZihlKXJldHVybiBjO3ZhciBmO2E6e3RyeXt2YXIgZz1jLnBhcmVudDtpZihnJiZnIT09Yyl7Zj1nO2JyZWFrIGF9fWNhdGNoKGgpe31mPW51bGx9aWYoIShjPWYpKWJyZWFrfXJldHVybiBudWxsfSxPcD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIudG9wPT1iKXJldHVybiAwO2lmKGE9PT12b2lkIDA/MDphKXt2YXIgYz1iLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihjKXJldHVybiBjW2MubGVuZ3RoLTFdPT1iLmxvY2F0aW9uLm9yaWdpbj8xOjJ9cmV0dXJuIEVwKGIudG9wKT8xOjJ9LFBwPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImltZyIpfTtmdW5jdGlvbiBRcChhKXtmb3IodmFyIGI9W10sYz1CLmNvb2tpZS5zcGxpdCgiOyIpLGQ9bmV3IFJlZ0V4cCgiXlxccyoiKyhhfHwiX2dhYyIpKyJfKFVBLVxcZCstXFxkKyk9XFxzKiguKz8pXFxzKiQiKSxlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0ubWF0Y2goZCk7ZiYmYi5wdXNoKHt1ZDpmWzFdLHZhbHVlOmZbMl0sdGltZXN0YW1wOk51bWJlcihmWzJdLnNwbGl0KCIuIilbMV0pfHwwfSl9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGgudGltZXN0YW1wLWcudGltZXN0YW1wfSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIFJwKGEsYil7dmFyIGM9UXAoYSksZD17fTtpZighY3x8IWMubGVuZ3RoKXJldHVybiBkO2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdLnZhbHVlLnNwbGl0KCIuIik7aWYoIShmWzBdIT09IjEifHxiJiZmLmxlbmd0aDwzfHwhYiYmZi5sZW5ndGghPT0zKSYmTnVtYmVyKGZbMV0pKXtkW2NbZV0udWRdfHwoZFtjW2VdLnVkXT1bXSk7dmFyIGc9e3ZlcnNpb246ZlswXSx0aW1lc3RhbXA6TnVtYmVyKGZbMV0pKjFFMyxnY2xpZDpmWzJdfTtiJiZmLmxlbmd0aD4zJiYoZy5sYWJlbHM9Zi5zbGljZSgzKSk7ZFtjW2VdLnVkXS5wdXNoKGcpfX1yZXR1cm4gZH07ZnVuY3Rpb24gU3AoYSl7cmV0dXJuIGEub3JpZ2luIT09Im51bGwifTt2YXIgVHA9e30sVXA9KFRwLms9e25hOi9eW1x3LV0rJC99LFRwLmI9e25hOi9eW1x3LV0rJC8sbms6ITB9LFRwLmk9e25hOi9eWzEtOV1cZCokL30sVHAuaD17bmE6L15cZCskL30sVHAudD17bmE6L15bMS05XVxkKiQvfSxUcC5kPXtuYTovXltBLVphLXowLTlfLV0rJC99LFRwLmo9e25hOi9eXGQrJC99LFRwLnU9e25hOi9eWzEtOV1cZCokL30sVHAubD17bmE6L15bMDFdJC99LFRwLm89e25hOi9eWzEtOV1cZCokL30sVHAuZz17bmE6L15bMDFdJC99LFRwLnM9e25hOi9eLiskL30sVHAubT17bmE6L15bMDFdJC99LFRwKTt2YXIgVnA9e30sWnA9KFZwWzVdPXtqaTp7MjpXcH0sWmo6IjIiLFJoOlsiayIsImkiLCJiIiwidSJdfSxWcFs0XT17amk6ezI6V3AsR0NMOlhwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJtIl19LFZwWzJdPXtqaTp7R1MyOldwLEdTMTpZcH0sWmo6IkdTMiIsUmg6InNvZ3RqbGhkIi5zcGxpdCgiIil9LFZwKTtmdW5jdGlvbiAkcChhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZCl7dmFyIGU9YS5zcGxpdCgiLiIpWzBdO2M9PW51bGx8fGMoZSk7aWYoZSl7dmFyIGY9ZC5qaVtlXTtpZihmKXJldHVybiBmKGEsYil9fX0KZnVuY3Rpb24gV3AoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIik7aWYoYy5sZW5ndGg9PT0zKXt2YXIgZD1jWzJdO2lmKGQuaW5kZXhPZigiJCIpPT09LTEmJmQuaW5kZXhPZigiJTI0IikhPT0tMSl0cnl7ZD1kZWNvZGVVUklDb21wb25lbnQoZCl9Y2F0Y2godCl7fXZhciBlPXt9LGY9WnBbYl07aWYoZil7Zm9yKHZhciBnPWYuUmgsaD1tKGQuc3BsaXQoIiQiKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD1uWzBdO2lmKGcuaW5kZXhPZihwKSE9PS0xKXRyeXt2YXIgcT1kZWNvZGVVUklDb21wb25lbnQobi5zdWJzdHJpbmcoMSkpLHI9VXBbcF07ciYmKHIubms/KGVbcF09ZVtwXXx8W10sZVtwXS5wdXNoKHEpKTplW3BdPXEpfWNhdGNoKHQpe319cmV0dXJuIGV9fX1mdW5jdGlvbiBhcShhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZClyZXR1cm5bZC5aaixjfHwiMSIsYnEoYSxiKV0uam9pbigiLiIpfQpmdW5jdGlvbiBicShhLGIpe3ZhciBjPVpwW2JdO2lmKGMpe2Zvcih2YXIgZD1bXSxlPW0oYy5SaCksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1VcFtnXTtpZihoKXt2YXIgbD1hW2ddO2lmKGwhPT12b2lkIDApaWYoaC5uayYmQXJyYXkuaXNBcnJheShsKSlmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSlkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crcC52YWx1ZSkpO2Vsc2UgZC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiIitnK2wpKX19cmV0dXJuIGQuam9pbigiJCIpfX1mdW5jdGlvbiBYcChhKXt2YXIgYj1hLnNwbGl0KCIuIik7Yi5zaGlmdCgpO3ZhciBjPWIuc2hpZnQoKSxkPWIuc2hpZnQoKSxlPXt9O3JldHVybiBlLms9ZCxlLmk9YyxlLmI9YixlfQpmdW5jdGlvbiBZcChhKXt2YXIgYj1hLnNwbGl0KCIuIikuc2xpY2UoMik7aWYoIShiLmxlbmd0aDw1fHxiLmxlbmd0aD43KSl7dmFyIGM9e307cmV0dXJuIGMucz1iWzBdLGMubz1iWzFdLGMuZz1iWzJdLGMudD1iWzNdLGMuaj1iWzRdLGMubD1iWzVdLGMuaD1iWzZdLGN9fTtmdW5jdGlvbiBjcShhLGIsYyxkKXt2YXIgZTtyZXR1cm4oZT1kcShmdW5jdGlvbihmKXtyZXR1cm4gZj09PWF9LGIsYyxkKVthXSkhPW51bGw/ZTpbXX1mdW5jdGlvbiBkcShhLGIsYyxkKXt2YXIgZTtpZihlcShkKSl7Zm9yKHZhciBmPXt9LGc9U3RyaW5nKGJ8fGZxKCkpLnNwbGl0KCI7IiksaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgbD1nW2hdLnNwbGl0KCI9Iiksbj1sWzBdLnRyaW0oKTtpZihuJiZhKG4pKXt2YXIgcD1sLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7cCYmYyYmKHA9ZGVjb2RlVVJJQ29tcG9uZW50KHApKTt2YXIgcT12b2lkIDAscj12b2lkIDA7KChxPWYpW3I9bl18fChxW3JdPVtdKSkucHVzaChwKX19ZT1mfWVsc2UgZT17fTtyZXR1cm4gZX0KZnVuY3Rpb24gZ3EoYSxiLGMsZCxlKXtpZihlcShlKSl7dmFyIGY9aHEoYSxkLGUpO2lmKGYubGVuZ3RoPT09MSlyZXR1cm4gZlswXTtpZihmLmxlbmd0aCE9PTApe2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Kcn0sYik7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Xc30sYyk7cmV0dXJuIGZbMF19fX1mdW5jdGlvbiBqcShhLGIsYyxkKXt2YXIgZT1mcSgpLGY9QTtTcChmKSYmKGYuZG9jdW1lbnQuY29va2llPWEpO3ZhciBnPWZxKCk7cmV0dXJuIGUhPT1nfHxjIT09dm9pZCAwJiZjcShiLGcsITEsZCkuaW5kZXhPZihjKT49MH0KZnVuY3Rpb24ga3EoYSxiLGMsZCl7ZnVuY3Rpb24gZSh4LHkseil7aWYoej09bnVsbClyZXR1cm4gZGVsZXRlIGhbeV0seDtoW3ldPXo7cmV0dXJuIHgrIjsgIit5KyI9Iit6fWZ1bmN0aW9uIGYoeCx5KXtpZih5PT1udWxsKXJldHVybiB4O2hbeV09ITA7cmV0dXJuIHgrIjsgIit5fWlmKCFlcShjLk1jKSlyZXR1cm4gMjt2YXIgZztiPT1udWxsP2c9YSsiPWRlbGV0ZWQ7IGV4cGlyZXM9IisobmV3IERhdGUoMCkpLnRvVVRDU3RyaW5nKCk6KGMuZW5jb2RlJiYoYj1lbmNvZGVVUklDb21wb25lbnQoYikpLGI9bHEoYiksZz1hKyI9IitiKTt2YXIgaD17fTtnPWUoZywicGF0aCIsYy5wYXRoKTt2YXIgbDtjLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRlP2w9Yy5leHBpcmVzLnRvVVRDU3RyaW5nKCk6Yy5leHBpcmVzIT1udWxsJiYobD0iIitjLmV4cGlyZXMpO2c9ZShnLCJleHBpcmVzIixsKTtnPWUoZywibWF4LWFnZSIsYy5Pcyk7Zz1lKGcsInNhbWVzaXRlIixjLnJ0KTtjLnNlY3VyZSYmCihnPWYoZywic2VjdXJlIikpO3ZhciBuPWMuZG9tYWluO2lmKG4mJm4udG9Mb3dlckNhc2UoKT09PSJhdXRvIil7Zm9yKHZhciBwPW1xKCkscT12b2lkIDAscj0hMSx0PTA7dDxwLmxlbmd0aDsrK3Qpe3ZhciB1PXBbdF0hPT0ibm9uZSI/cFt0XTp2b2lkIDAsdj1lKGcsImRvbWFpbiIsdSk7dj1mKHYsYy5mbGFncyk7dHJ5e2QmJmQoYSxoKX1jYXRjaCh4KXtxPXg7Y29udGludWV9cj0hMDtpZighbnEodSxjLnBhdGgpJiZqcSh2LGEsYixjLk1jKSlyZXR1cm4gMH1pZihxJiYhcil0aHJvdyBxO3JldHVybiAxfW4mJm4udG9Mb3dlckNhc2UoKSE9PSJub25lIiYmKGc9ZShnLCJkb21haW4iLG4pKTtnPWYoZyxjLmZsYWdzKTtkJiZkKGEsaCk7cmV0dXJuIG5xKG4sYy5wYXRoKT8xOmpxKGcsYSxiLGMuTWMpPzA6MX1mdW5jdGlvbiBvcShhLGIsYyl7Yy5wYXRoPT1udWxsJiYoYy5wYXRoPSIvIik7Yy5kb21haW58fChjLmRvbWFpbj0iYXV0byIpO3JldHVybiBrcShhLGIsYyl9CmZ1bmN0aW9uIGlxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmLGc9MDtnPGEubGVuZ3RoO2crKyl7dmFyIGg9YVtnXSxsPWIoaCk7bD09PWM/ZC5wdXNoKGgpOmY9PT12b2lkIDB8fGw8Zj8oZT1baF0sZj1sKTpsPT09ZiYmZS5wdXNoKGgpfXJldHVybiBkLmxlbmd0aD4wP2Q6ZX1mdW5jdGlvbiBocShhLGIsYyl7Zm9yKHZhciBkPVtdLGU9Y3EoYSx2b2lkIDAsdm9pZCAwLGMpLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9ZVtmXS5zcGxpdCgiLiIpLGg9Zy5zaGlmdCgpO2lmKCFifHwhaHx8Yi5pbmRleE9mKGgpIT09LTEpe3ZhciBsPWcuc2hpZnQoKTtpZihsKXt2YXIgbj1sLnNwbGl0KCItIik7ZC5wdXNoKHtCcjplW2ZdLENyOmcuam9pbigiLiIpLEpyOk51bWJlcihuWzBdKXx8MSxXczpOdW1iZXIoblsxXSl8fDF9KX19fXJldHVybiBkfWZ1bmN0aW9uIGxxKGEpe2EmJmEubGVuZ3RoPjEyMDAmJihhPWEuc3Vic3RyaW5nKDAsMTIwMCkpO3JldHVybiBhfQp2YXIgcHE9L14od3d3XC4pP2dvb2dsZShcLmNvbT8pPyhcLlthLXpdezJ9KT8kLyxxcT0vKF58XC4pZG91YmxlY2xpY2tcLm5ldCQvaTtmdW5jdGlvbiBucShhLGIpe3JldHVybiBhIT09dm9pZCAwJiYocXEudGVzdChBLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKXx8Yj09PSIvIiYmcHEudGVzdChhKSl9ZnVuY3Rpb24gcnEoYSl7aWYoIWEpcmV0dXJuIDE7dmFyIGI9YTtZZig0KSYmYT09PSJub25lIiYmKGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSk7Yj1iLmluZGV4T2YoIi4iKT09PTA/Yi5zdWJzdHJpbmcoMSk6YjtyZXR1cm4gYi5zcGxpdCgiLiIpLmxlbmd0aH1mdW5jdGlvbiBzcShhKXtpZighYXx8YT09PSIvIilyZXR1cm4gMTthWzBdIT09Ii8iJiYoYT0iLyIrYSk7YVthLmxlbmd0aC0xXSE9PSIvIiYmKGErPSIvIik7cmV0dXJuIGEuc3BsaXQoIi8iKS5sZW5ndGgtMX0KZnVuY3Rpb24gdHEoYSxiKXt2YXIgYz0iIitycShhKSxkPXNxKGIpO2Q+MSYmKGMrPSItIitkKTtyZXR1cm4gY30KdmFyIGZxPWZ1bmN0aW9uKCl7dmFyIGE9QTtyZXR1cm4gU3AoYSk/YS5kb2N1bWVudC5jb29raWU6IiJ9LGVxPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZZZig1KT8oQXJyYXkuaXNBcnJheShhKT9hOlthXSkuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIERsKGIpJiZCbChiKX0pOiEwfSxtcT1mdW5jdGlvbigpe3ZhciBhPVtdLGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpO2lmKGIubGVuZ3RoPT09NCl7dmFyIGM9YltiLmxlbmd0aC0xXTtpZihOdW1iZXIoYykudG9TdHJpbmcoKT09PWMpcmV0dXJuWyJub25lIl19Zm9yKHZhciBkPWIubGVuZ3RoLTI7ZD49MDtkLS0pYS5wdXNoKGIuc2xpY2UoZCkuam9pbigiLiIpKTt2YXIgZT1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lO3FxLnRlc3QoZSl8fHBxLnRlc3QoZSl8fGEucHVzaCgibm9uZSIpO3JldHVybiBhfTtmdW5jdGlvbiB1cShhLGIsYyxkKXt2YXIgZSxmPU51bWJlcihhLnBkIT1udWxsP2EucGQ6dm9pZCAwKTtmIT09MCYmKGU9bmV3IERhdGUoKGJ8fE5iKCkpKzFFMyooZnx8Nzc3NkUzKSkpO3JldHVybntwYXRoOmEucGF0aCxkb21haW46YS5kb21haW4sZmxhZ3M6YS5mbGFncyxlbmNvZGU6ISFjLGV4cGlyZXM6ZSxNYzpkfX07dmFyIHZxPW5ldyBNYXAoW1s1LCJhZF9zdG9yYWdlIl0sWzQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl1dLFsyLCJhbmFseXRpY3Nfc3RvcmFnZSJdXSk7ZnVuY3Rpb24gd3EoYSxiLGMpe2lmKFpwW2JdKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsdnEuZ2V0KGIpKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPSRwKGcudmFsdWUsYixjKTtoJiZkLnB1c2goeHEoaCkpfXJldHVybiBkfX0KZnVuY3Rpb24geXEoYSl7dmFyIGI9enE7aWYoWnBbMl0pe2Zvcih2YXIgYz17fSxkPWRxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoMikpLGU9T2JqZWN0LmtleXMoZCkuc29ydCgpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPW0oZFtoXSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPSRwKG4udmFsdWUsMixiKTtwJiYoY1toXXx8KGNbaF09W10pLGNbaF0ucHVzaCh4cShwKSkpfXJldHVybiBjfX1mdW5jdGlvbiBBcShhLGIsYyxkLGUpe2Q9ZHx8e307dmFyIGY9dHEoZC5kb21haW4sZC5wYXRoKSxnPWFxKGIsYyxmKTtpZighZylyZXR1cm4gMTt2YXIgaD11cShkLGUsdm9pZCAwLHZxLmdldChjKSk7cmV0dXJuIG9xKGEsZyxoKX1mdW5jdGlvbiBCcShhLGIpe3ZhciBjPWIubmE7cmV0dXJuIHR5cGVvZiBjPT09ImZ1bmN0aW9uIj9jKGEpOmMudGVzdChhKX0KZnVuY3Rpb24geHEoYSl7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoYSkpLGM9Yi5uZXh0KCksZD17fTshYy5kb25lO2Q9e0FnOnZvaWQgMH0sYz1iLm5leHQoKSl7dmFyIGU9Yy52YWx1ZSxmPWFbZV07ZC5BZz1VcFtlXTtkLkFnP2QuQWcubms/YVtlXT1BcnJheS5pc0FycmF5KGYpP2YuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gQnEoaCxnLkFnKX19KGQpKTp2b2lkIDA6dHlwZW9mIGY9PT0ic3RyaW5nIiYmQnEoZixkLkFnKXx8KGFbZV09dm9pZCAwKTphW2VdPXZvaWQgMH1yZXR1cm4gYX07dmFyIENxO2Z1bmN0aW9uIERxKCl7ZnVuY3Rpb24gYShnKXtjKGcudGFyZ2V0fHxnLnNyY0VsZW1lbnR8fHt9KX1mdW5jdGlvbiBiKGcpe2QoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfXZhciBjPUVxLGQ9RnEsZT1HcSgpO2lmKCFlLmluaXQpeyRjKEIsIm1vdXNlZG93biIsYSk7JGMoQiwia2V5dXAiLGEpOyRjKEIsInN1Ym1pdCIsYik7dmFyIGY9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXtkKHRoaXMpO2YuY2FsbCh0aGlzKX07ZS5pbml0PSEwfX1mdW5jdGlvbiBIcShhLGIsYyxkLGUpe3ZhciBmPXtjYWxsYmFjazphLGRvbWFpbnM6YixmcmFnbWVudDpjPT09MixwbGFjZW1lbnQ6Yyxmb3JtczpkLHNhbWVIb3N0OmV9O0dxKCkuZGVjb3JhdG9ycy5wdXNoKGYpfQpmdW5jdGlvbiBJcShhLGIsYyl7Zm9yKHZhciBkPUdxKCkuZGVjb3JhdG9ycyxlPXt9LGY9MDtmPGQubGVuZ3RoOysrZil7dmFyIGc9ZFtmXSxoO2lmKGg9IWN8fGcuZm9ybXMpYTp7dmFyIGw9Zy5kb21haW5zLG49YSxwPSEhZy5zYW1lSG9zdDtpZihsJiYocHx8biE9PUIubG9jYXRpb24uaG9zdG5hbWUpKWZvcih2YXIgcT0wO3E8bC5sZW5ndGg7cSsrKWlmKGxbcV1pbnN0YW5jZW9mIFJlZ0V4cCl7aWYobFtxXS50ZXN0KG4pKXtoPSEwO2JyZWFrIGF9fWVsc2UgaWYobi5pbmRleE9mKGxbcV0pPj0wfHxwJiZsW3FdLmluZGV4T2Yobik+PTApe2g9ITA7YnJlYWsgYX1oPSExfWlmKGgpe3ZhciByPWcucGxhY2VtZW50O3I9PT12b2lkIDAmJihyPWcuZnJhZ21lbnQ/MjoxKTtyPT09YiYmUWIoZSxnLmNhbGxiYWNrKCkpfX1yZXR1cm4gZX0KZnVuY3Rpb24gR3EoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLmdsO2ImJmIuZGVjb3JhdG9yc3x8KGI9e2RlY29yYXRvcnM6W119LGEuZ2w9Yik7cmV0dXJuIGJ9O3ZhciBKcT0vKC4qPylcKiguKj8pXCooLiopLyxLcT0vXmh0dHBzPzpcL1wvKFteXC9dKj8pXC4/Y2RuXC5hbXBwcm9qZWN0XC5vcmdcLz8oLiopLyxMcT0vXig/Ond3d1wufG1cLnxhbXBcLikrLyxNcT0vKFtePyNdKykoXD9bXiNdKik/KCMuKik/LztmdW5jdGlvbiBOcShhKXt2YXIgYj1NcS5leGVjKGEpO2lmKGIpcmV0dXJue2hrOmJbMV0scXVlcnk6YlsyXSxmcmFnbWVudDpiWzNdfX1mdW5jdGlvbiBPcShhKXtyZXR1cm4gbmV3IFJlZ0V4cCgiKC4qPykoXnwmKSIrYSsiPShbXiZdKikmPyguKikiKX0KZnVuY3Rpb24gUHEoYSxiKXt2YXIgYz1bSGMudXNlckFnZW50LChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSxIYy51c2VyTGFuZ3VhZ2V8fEhjLmxhbmd1YWdlLE1hdGguZmxvb3IoTmIoKS82MC8xRTMpLShiPT09dm9pZCAwPzA6YiksYV0uam9pbigiKiIpLGQ7aWYoIShkPUNxKSl7Zm9yKHZhciBlPUFycmF5KDI1NiksZj0wO2Y8MjU2O2YrKyl7Zm9yKHZhciBnPWYsaD0wO2g8ODtoKyspZz1nJjE/Zz4+PjFeMzk4ODI5MjM4NDpnPj4+MTtlW2ZdPWd9ZD1lfUNxPWQ7Zm9yKHZhciBsPTQyOTQ5NjcyOTUsbj0wO248Yy5sZW5ndGg7bisrKWw9bD4+PjheQ3FbKGxeYy5jaGFyQ29kZUF0KG4pKSYyNTVdO3JldHVybigobF4tMSk+Pj4wKS50b1N0cmluZygzNil9CmZ1bmN0aW9uIFFxKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1SaihBLmxvY2F0aW9uLmhyZWYpLGQ9Yy5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGU9SWooZCwiX2dsIiwhMSwhMCl8fCIiO2IucXVlcnk9UnEoZSl8fHt9O3ZhciBmPUxqKGMsImZyYWdtZW50IiksZzt2YXIgaD0tMTtpZihTYihmLCJfZ2w9IikpaD00O2Vsc2V7dmFyIGw9Zi5pbmRleE9mKCImX2dsPSIpO2w+MCYmKGg9bCszKzIpfWlmKGg8MClnPXZvaWQgMDtlbHNle3ZhciBuPWYuaW5kZXhPZigiJiIsaCk7Zz1uPDA/Zi5zdWJzdHJpbmcoaCk6Zi5zdWJzdHJpbmcoaCxuKX1iLmZyYWdtZW50PVJxKGd8fCIiKXx8e307YSYmU3EoYyxkLGYpfX1mdW5jdGlvbiBUcShhLGIpe3ZhciBjPU9xKGEpLmV4ZWMoYiksZD1iO2lmKGMpe3ZhciBlPWNbMl0sZj1jWzRdO2Q9Y1sxXTtmJiYoZD1kK2UrZil9cmV0dXJuIGR9CmZ1bmN0aW9uIFNxKGEsYixjKXtmdW5jdGlvbiBkKGcsaCl7dmFyIGw9VHEoIl9nbCIsZyk7bC5sZW5ndGgmJihsPWgrbCk7cmV0dXJuIGx9aWYoR2MmJkdjLnJlcGxhY2VTdGF0ZSl7dmFyIGU9T3EoIl9nbCIpO2lmKGUudGVzdChiKXx8ZS50ZXN0KGMpKXt2YXIgZj1MaihhLCJwYXRoIik7Yj1kKGIsIj8iKTtjPWQoYywiIyIpO0djLnJlcGxhY2VTdGF0ZSh7fSwiIiwiIitmK2IrYyl9fX1mdW5jdGlvbiBVcShhLGIpe3ZhciBjPVFxKCEhYiksZD1HcSgpO2QuZGF0YXx8KGQuZGF0YT17cXVlcnk6e30sZnJhZ21lbnQ6e319LGMoZC5kYXRhKSk7dmFyIGU9e30sZj1kLmRhdGE7ZiYmKFFiKGUsZi5xdWVyeSksYSYmUWIoZSxmLmZyYWdtZW50KSk7cmV0dXJuIGV9CnZhciBScT1mdW5jdGlvbihhKXt0cnl7dmFyIGI9VnEoYSwzKTtpZihiIT09dm9pZCAwKXtmb3IodmFyIGM9e30sZD1iP2Iuc3BsaXQoIioiKTpbXSxlPTA7ZSsxPGQubGVuZ3RoO2UrPTIpe3ZhciBmPWRbZV0sZz1xYihkW2UrMV0pO2NbZl09Z31zYigiVEFHR0lORyIsNik7cmV0dXJuIGN9fWNhdGNoKGgpe3NiKCJUQUdHSU5HIiw4KX19O2Z1bmN0aW9uIFZxKGEsYil7aWYoYSl7dmFyIGM7YTp7Zm9yKHZhciBkPWEsZT0wO2U8MzsrK2Upe3ZhciBmPUpxLmV4ZWMoZCk7aWYoZil7Yz1mO2JyZWFrIGF9ZD1LaihkKXx8IiJ9Yz12b2lkIDB9dmFyIGc9YztpZihnJiZnWzFdPT09IjEiKXt2YXIgaD1nWzNdLGw7YTp7Zm9yKHZhciBuPWdbMl0scD0wO3A8YjsrK3ApaWYobj09PVBxKGgscCkpe2w9ITA7YnJlYWsgYX1sPSExfWlmKGwpcmV0dXJuIGg7c2IoIlRBR0dJTkciLDcpfX19CmZ1bmN0aW9uIFdxKGEsYixjLGQsZSl7ZnVuY3Rpb24gZihwKXtwPVRxKGEscCk7dmFyIHE9cC5jaGFyQXQocC5sZW5ndGgtMSk7cCYmcSE9PSImIiYmKHArPSImIik7cmV0dXJuIHArbn1kPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZz1OcShjKTtpZighZylyZXR1cm4iIjt2YXIgaD1nLnF1ZXJ5fHwiIixsPWcuZnJhZ21lbnR8fCIiLG49YSsiPSIrYjtkP2wuc3Vic3RyaW5nKDEpLmxlbmd0aCE9PTAmJmV8fChsPSIjIitmKGwuc3Vic3RyaW5nKDEpKSk6aD0iPyIrZihoLnN1YnN0cmluZygxKSk7cmV0dXJuIiIrZy5oaytoK2x9CmZ1bmN0aW9uIFhxKGEsYil7ZnVuY3Rpb24gYyhuLHAscSl7dmFyIHI7YTp7Zm9yKHZhciB0IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh0KSl7cj0hMDticmVhayBhfXI9ITF9aWYocil7dmFyIHUsdj1bXSx4O2Zvcih4IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh4KSl7dmFyIHk9blt4XTt5IT09dm9pZCAwJiZ5PT09eSYmeSE9PW51bGwmJnkudG9TdHJpbmcoKSE9PSJbb2JqZWN0IE9iamVjdF0iJiYodi5wdXNoKHgpLHYucHVzaChwYihTdHJpbmcoeSkpKSl9dmFyIHo9di5qb2luKCIqIik7dT1bIjEiLFBxKHopLHpdLmpvaW4oIioiKTtkPyhZZigzKXx8WWYoMSl8fCFwKSYmWXEoIl9nbCIsdSxhLHAscSk6WnEoIl9nbCIsdSxhLHAscSl9fXZhciBkPShhLnRhZ05hbWV8fCIiKS50b1VwcGVyQ2FzZSgpPT09IkZPUk0iLGU9SXEoYiwxLGQpLGY9SXEoYiwyLGQpLGc9SXEoYiw0LGQpLGg9SXEoYiwzLGQpO2MoZSwhMSwhMSk7YyhmLCEwLCExKTtZZigxKSYmYyhnLCEwLCEwKTtmb3IodmFyIGwgaW4gaCloLmhhc093blByb3BlcnR5KGwpJiYKJHEobCxoW2xdLGEpfWZ1bmN0aW9uICRxKGEsYixjKXtjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJhIj9acShhLGIsYyk6Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iZm9ybSImJllxKGEsYixjKX1mdW5jdGlvbiBacShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmO2lmKGY9Yy5ocmVmKXt2YXIgZztpZighKGc9ZCkpe3ZhciBoPUEubG9jYXRpb24uaHJlZixsPU5xKGMuaHJlZiksbj1OcShoKTtnPSEobCYmbiYmbC5oaz09PW4uaGsmJmwucXVlcnk9PT1uLnF1ZXJ5JiZsLmZyYWdtZW50KX1mPWd9aWYoZil7dmFyIHA9V3EoYSxiLGMuaHJlZixkLGUpO3ZjLnRlc3QocCkmJihjLmhyZWY9cCl9fQpmdW5jdGlvbiBZcShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO2lmKGMpe3ZhciBmPWMuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKXx8IiI7aWYoZil7dmFyIGc9KGMubWV0aG9kfHwiIikudG9Mb3dlckNhc2UoKTtpZihnIT09ImdldCJ8fGQpe2lmKGc9PT0iZ2V0Inx8Zz09PSJwb3N0Iil7dmFyIGg9V3EoYSxiLGYsZCxlKTt2Yy50ZXN0KGgpJiYoYy5hY3Rpb249aCl9fWVsc2V7Zm9yKHZhciBsPWMuY2hpbGROb2Rlc3x8W10sbj0hMSxwPTA7cDxsLmxlbmd0aDtwKyspe3ZhciBxPWxbcF07aWYocS5uYW1lPT09YSl7cS5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtuPSEwO2JyZWFrfX1pZighbil7dmFyIHI9Qi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIik7ci5zZXRBdHRyaWJ1dGUoIm5hbWUiLGEpO3Iuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYik7Yy5hcHBlbmRDaGlsZChyKX19fX19CmZ1bmN0aW9uIEVxKGEpe3RyeXt2YXIgYjthOntmb3IodmFyIGM9YSxkPTEwMDtjJiZkPjA7KXtpZihjLmhyZWYmJmMubm9kZU5hbWUubWF0Y2goL15hKD86cmVhKT8kL2kpKXtiPWM7YnJlYWsgYX1jPWMucGFyZW50Tm9kZTtkLS19Yj1udWxsfXZhciBlPWI7aWYoZSl7dmFyIGY9ZS5wcm90b2NvbDtmIT09Imh0dHA6IiYmZiE9PSJodHRwczoifHxYcShlLGUuaG9zdG5hbWUpfX1jYXRjaChnKXt9fWZ1bmN0aW9uIEZxKGEpe3RyeXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgiYWN0aW9uIik7aWYoYil7dmFyIGM9TGooUmooYiksImhvc3QiKTtYcShhLGMpfX1jYXRjaChkKXt9fWZ1bmN0aW9uIGFyKGEsYixjLGQpe0RxKCk7dmFyIGU9Yz09PSJmcmFnbWVudCI/MjoxO2Q9ISFkO0hxKGEsYixlLGQsITEpO2U9PT0yJiZzYigiVEFHR0lORyIsMjMpO2QmJnNiKCJUQUdHSU5HIiwyNCl9CmZ1bmN0aW9uIGJyKGEsYil7RHEoKTtIcShhLFtOaihBLmxvY2F0aW9uLCJob3N0IiwhMCldLGIsITAsITApfWZ1bmN0aW9uIGNyKCl7dmFyIGE9Qi5sb2NhdGlvbi5ob3N0bmFtZSxiPUtxLmV4ZWMoQi5yZWZlcnJlcik7aWYoIWIpcmV0dXJuITE7dmFyIGM9YlsyXSxkPWJbMV0sZT0iIjtpZihjKXt2YXIgZj1jLnNwbGl0KCIvIiksZz1mWzFdO2U9Zz09PSJzIj9LaihmWzJdKXx8IiI6S2ooZyl8fCIifWVsc2UgaWYoZCl7aWYoZC5pbmRleE9mKCJ4bi0tIik9PT0wKXJldHVybiExO2U9ZC5yZXBsYWNlKC8tL2csIi4iKS5yZXBsYWNlKC9cLlwuL2csIi0iKX12YXIgaD1hLnJlcGxhY2UoTHEsIiIpLGw9ZS5yZXBsYWNlKExxLCIiKTtyZXR1cm4gaD09PWx8fFRiKGgsIi4iK2wpfWZ1bmN0aW9uIGRyKGEsYil7cmV0dXJuIGE9PT0hMT8hMTphfHxifHxjcigpfTt2YXIgZXI9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT0wO3RoaXMudmFsdWU9YT09PXZvaWQgMD8wOmF9O2VyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWV8PTE8PGF9O3ZhciBmcj1mdW5jdGlvbihhLGIpe2I8PTB8fChhLnZhbHVlfD0xPDxiLTEpfTtlci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O2VyLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlJj1+KDE8PGEpfTtlci5wcm90b3R5cGUuY2xlYXJBbGw9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPTB9O2VyLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWU9PT1hLnZhbHVlfTtmdW5jdGlvbiBncihhKXtpZihhKXRyeXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXRvYihhLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpKS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmNoYXJDb2RlQXQoMCl9KSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBocihhLGIpe3ZhciBjPTAsZD0wLGUsZj1iO2Rve2lmKGY+PWEubGVuZ3RoKXJldHVybjtlPWFbZisrXTtjfD0oZSYxMjcpPDxkO2QrPTd9d2hpbGUoZSYxMjgpO3JldHVybltjLGZdfTtmdW5jdGlvbiBpcigpe3ZhciBhPVN0cmluZyxiPUEubG9jYXRpb24uaG9zdG5hbWUsYz1BLmxvY2F0aW9uLnBhdGhuYW1lLGQ9Yj1iYyhiKTtkLnNwbGl0KCIuIikubGVuZ3RoPjImJihkPWQucmVwbGFjZSgvXih3d3dbMC05XSp8d2VifGZ0cHx3YXB8aG9tZXxtfHd8YW1wfG1vYmlsZSlcLi8sIiIpKTtiPWQ7Yz1iYyhjKTt2YXIgZT1jLnNwbGl0KCI7IilbMF07ZT1lLnJlcGxhY2UoL1wvKGFyfHNscHx3ZWJ8aW5kZXgpP1wvPyQvLCIiKTtyZXR1cm4gYShuZygoIiIrYitlKS50b0xvd2VyQ2FzZSgpKSl9O3ZhciBqcj1bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTtmdW5jdGlvbiBrcihhLGIpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMzIpLDEwO2lmKGI9PT1udWxsfHxiPT09dm9pZCAwfHxiPT09IiIpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMyksMTE7dmFyIGM9bHIoITEpO2lmKGMuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMzQpLGMuZXJyb3I7aWYoIWMudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzNSksMjtjLnZhbHVlW2FdPWI7dmFyIGQ9bXIoYyk7ZCE9PTAmJnNiKCJUQUdHSU5HIiwzNik7cmV0dXJuIGR9CmZ1bmN0aW9uIG5yKGEpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMjcpLHtlcnJvcjoxMH07dmFyIGI9bHIoKTtpZihiLmVycm9yIT09MClyZXR1cm4gc2IoIlRBR0dJTkciLDI5KSxiO2lmKCFiLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsMzApLHtlcnJvcjoyfTtpZighKGEgaW4gYi52YWx1ZSkpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMSkse3ZhbHVlOnZvaWQgMCxlcnJvcjoxNX07dmFyIGM9Yi52YWx1ZVthXTtyZXR1cm4gYz09PW51bGx8fGM9PT12b2lkIDB8fGM9PT0iIj8oc2IoIlRBR0dJTkciLDI4KSx7dmFsdWU6dm9pZCAwLGVycm9yOjExfSk6e3ZhbHVlOmMsZXJyb3I6MH19CmZ1bmN0aW9uIG9yKGEpe2lmKGEpe3ZhciBiPWxyKCExKTtiLmVycm9yIT09MD9zYigiVEFHR0lORyIsMzgpOmIudmFsdWU/YSBpbiBiLnZhbHVlPyhkZWxldGUgYi52YWx1ZVthXSxtcihiKSE9PTAmJnNiKCJUQUdHSU5HIiw0MSkpOnNiKCJUQUdHSU5HIiw0MCk6c2IoIlRBR0dJTkciLDM5KX1lbHNlIHNiKCJUQUdHSU5HIiwzNyl9CmZ1bmN0aW9uIGxyKGEpe2E9YT09PXZvaWQgMD8hMDphO2lmKCFCbChqcikpcmV0dXJuIHNiKCJUQUdHSU5HIiw0Mykse2Vycm9yOjN9O3RyeXtpZighQS5sb2NhbFN0b3JhZ2UpcmV0dXJuIHNiKCJUQUdHSU5HIiw0NCkse2Vycm9yOjF9fWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDUpLHtlcnJvcjoxNH19dmFyIGI9e3NjaGVtYToiZ2NsIix2ZXJzaW9uOjF9LGM9dm9pZCAwO3RyeXtjPUEubG9jYWxTdG9yYWdlLmdldEl0ZW0oIl9nY2xfbHMiKX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ2KSx7ZXJyb3I6MTN9fXRyeXtpZihjKXt2YXIgZD1KU09OLnBhcnNlKGMpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpYj1kO2Vsc2UgcmV0dXJuIHNiKCJUQUdHSU5HIiw0Nykse2Vycm9yOjEyfX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fWlmKGIuc2NoZW1hIT09ImdjbCIpcmV0dXJuIHNiKCJUQUdHSU5HIiw0OSkse2Vycm9yOjR9OwppZihiLnZlcnNpb24hPT0xKXJldHVybiBzYigiVEFHR0lORyIsNTApLHtlcnJvcjo1fTt0cnl7dmFyIGU9cHIoYik7YSYmZSYmbXIoe3ZhbHVlOmIsZXJyb3I6MH0pfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDgpLHtlcnJvcjo4fX1yZXR1cm57dmFsdWU6YixlcnJvcjowfX0KZnVuY3Rpb24gcHIoYSl7aWYoIWF8fHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuITE7aWYoImV4cGlyZXMiaW4gYSYmInZhbHVlImluIGEpe3ZhciBiO3R5cGVvZiBhLmV4cGlyZXM9PT0ibnVtYmVyIj9iPWEuZXhwaXJlczpiPXR5cGVvZiBhLmV4cGlyZXM9PT0ic3RyaW5nIj9OdW1iZXIoYS5leHBpcmVzKTpOYU47aWYoaXNOYU4oYil8fCEoRGF0ZS5ub3coKTw9YikpcmV0dXJuIGEudmFsdWU9bnVsbCxhLmVycm9yPTksc2IoIlRBR0dJTkciLDU0KSwhMH1lbHNle2Zvcih2YXIgYz0hMSxkPW0oT2JqZWN0LmtleXMoYSkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWM9cHIoYVtlLnZhbHVlXSl8fGM7cmV0dXJuIGN9cmV0dXJuITF9CmZ1bmN0aW9uIG1yKGEpe2lmKGEuZXJyb3IpcmV0dXJuIGEuZXJyb3I7aWYoIWEudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiw0MiksMjt2YXIgYj1hLnZhbHVlLGM7dHJ5e2M9SlNPTi5zdHJpbmdpZnkoYil9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MiksNn10cnl7QS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiX2djbF9scyIsYyl9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MyksN31yZXR1cm4gMH07dmFyIHFyPXt9LHJyPShxci5nY2xpZD0hMCxxci5kY2xpZD0hMCxxci5nYnJhaWQ9ITAscXIud2JyYWlkPSEwLHFyKSxzcj0vXlx3KyQvLHRyPS9eW1x3LV0rJC8sdXI9e30sdnI9KHVyLmF3PSJGUEdDTEFXIix1ciksd3I9e30seHI9KHdyLmFnPSJfYWciLHdyLmdiPSJfZ2IiLHdyLmF3PSJfYXciLHdyLmRjPSJfZGMiLHdyLmdmPSJfZ2YiLHdyLmhhPSJfaGEiLHdyLmdwPSJfZ3AiLHdyLmdzPSJfZ3MiLHdyKSx5cj0vXig/Ond3d1wuKT9nb29nbGUoPzpcLmNvbT8pPyg/OlwuW2Etel17Mn10Pyk/JC8senI9L153d3dcLmdvb2dsZWFkc2VydmljZXNcLmNvbSQvO2Z1bmN0aW9uIEFyKCl7cmV0dXJuWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl19ZnVuY3Rpb24gQnIoYSl7cmV0dXJuIVlmKDUpfHxCbChhKX1mdW5jdGlvbiBDcihhLGIpe2Z1bmN0aW9uIGMoKXt2YXIgZD1CcihiKTtkJiZhKCk7cmV0dXJuIGR9SGwoZnVuY3Rpb24oKXtjKCl8fElsKGMsYil9LGIpfQpmdW5jdGlvbiBEcihhKXtyZXR1cm4gRXIoYSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gRnIoYSl7cmV0dXJuIEdyKGEpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pfWZ1bmN0aW9uIEdyKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9SHIoYS5wcmVmaXgpLGQ9SXIoImdiIixjKSxlPUlyKCJhZyIsYyk7aWYoIWV8fCFkKXJldHVybltdO3ZhciBmPWZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXtuLnpnPWw7cmV0dXJuIG59fSxnPUVyKGQsYikubWFwKGYoImdiIikpLGg9SnIoZSkubWFwKGYoImFnIikpO3JldHVybiBnLmNvbmNhdChoKS5zb3J0KGZ1bmN0aW9uKGwsbil7cmV0dXJuIG4udGltZXN0YW1wLWwudGltZXN0YW1wfSl9CmZ1bmN0aW9uIEtyKGEsYixjLGQsZSl7dmFyIGY9Q2IoYSxmdW5jdGlvbihnKXtyZXR1cm4gZy5nY2xpZD09PWJ9KTtmPyhmLnRpbWVzdGFtcDxjJiYoZi50aW1lc3RhbXA9YyxmLm9kPWUpLGYubGFiZWxzPUxyKGYubGFiZWxzfHxbXSxkfHxbXSkpOmEucHVzaCh7dmVyc2lvbjoiMiIsZ2NsaWQ6Yix0aW1lc3RhbXA6YyxsYWJlbHM6ZCxvZDplfSl9ZnVuY3Rpb24gTXIoYSl7Zm9yKHZhciBiPXdxKGEsNSl8fFtdLGM9W10sZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9ZixoPU5yKGYpO2gmJktyKGMsZy5rLGgsZy5ifHxbXSxmLnUpfXJldHVybiBjLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gRXIoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtPcihjLGEsMSk7aWYoYilpZihUYihhLCJfYXciKSl7dmFyIGQ9UHIoKTtkJiYoZC5vZD12b2lkIDAsZC5vYT1kLm9hfHxbMl0sUXIoYyxkKSk7T3IoYywiZ2NsX2F3IiwyKX1lbHNlIFRiKGEsIl9nYiIpJiZZZig2KSYmT3IoYywiZ2NsX2diIiwyKTtjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gZi50aW1lc3RhbXAtZS50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYyl9ZnVuY3Rpb24gU3IoYSxiKXtmb3IodmFyIGM9W10sZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2MuaW5jbHVkZXMoZil8fGMucHVzaChmKX1mb3IodmFyIGc9bShiKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTtjLmluY2x1ZGVzKGwpfHxjLnB1c2gobCl9cmV0dXJuIGN9CmZ1bmN0aW9uIFFyKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGQsZSxmPW0oYSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoaC5nY2xpZD09PWIuZ2NsaWQpe2Q9aDticmVha31oLnFhJiZiLnFhJiZoLnFhLmVxdWFscyhiLnFhKSYmKGU9aCl9aWYoZCl7dmFyIGwsbixwPShsPWQucWEpIT1udWxsP2w6bmV3IGVyLHE9KG49Yi5xYSkhPW51bGw/bjpuZXcgZXI7cC52YWx1ZXw9cS52YWx1ZTtkLnFhPXA7ZC50aW1lc3RhbXA8Yi50aW1lc3RhbXAmJihkLnRpbWVzdGFtcD1iLnRpbWVzdGFtcCxkLm9kPWIub2QpO2QubGFiZWxzPVNyKGQubGFiZWxzfHxbXSxiLmxhYmVsc3x8W10pO2Qub2E9U3IoZC5vYXx8W10sYi5vYXx8W10pfWVsc2UgYyYmZT9uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsYik6YS5wdXNoKGIpfQpmdW5jdGlvbiBUcihhKXtpZighYSlyZXR1cm4gbmV3IGVyO3ZhciBiPW5ldyBlcjtpZihhPT09MSlyZXR1cm4gZnIoYiwyKSxmcihiLDMpLGI7ZnIoYixhKTtyZXR1cm4gYn0KZnVuY3Rpb24gUHIoKXt2YXIgYT1ucigiZ2NsaWQiKTtpZighYXx8YS5lcnJvcnx8IWEudmFsdWV8fHR5cGVvZiBhLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGI9YS52YWx1ZTt0cnl7aWYoISgidmFsdWUiaW4gYiYmYi52YWx1ZSl8fHR5cGVvZiBiLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGM9Yi52YWx1ZSxkPWMudmFsdWU7aWYoIWR8fCFkLm1hdGNoKHRyKSlyZXR1cm4gbnVsbDt2YXIgZT1jLmxpbmtEZWNvcmF0aW9uU291cmNlLGY9Yy5saW5rRGVjb3JhdGlvblNvdXJjZXMsZz1uZXcgZXI7dHlwZW9mIGU9PT0ibnVtYmVyIj9nPVRyKGUpOnR5cGVvZiBmPT09Im51bWJlciImJihnLnZhbHVlPWYpO3JldHVybnt2ZXJzaW9uOiIiLGdjbGlkOmQsdGltZXN0YW1wOk51bWJlcihjLmNyZWF0aW9uVGltZU1zKXx8MCxsYWJlbHM6W10scWE6ZyxvYTpbMl19fWNhdGNoKGgpe3JldHVybiBudWxsfX0KZnVuY3Rpb24gVXIoYSl7dmFyIGI9bnIoYSk7aWYoYi5lcnJvciE9PTApcmV0dXJuIG51bGw7dHJ5e3JldHVybiBiLnZhbHVlLnJlZHVjZShmdW5jdGlvbihjLGQpe2lmKCFkLnZhbHVlfHx0eXBlb2YgZC52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBjO3ZhciBlPWQudmFsdWUsZj1lLnZhbHVlO2lmKCFmfHwhZi5tYXRjaCh0cikpcmV0dXJuIGM7dmFyIGc9bmV3IGVyLGg9ZS5saW5rRGVjb3JhdGlvblNvdXJjZXM7dHlwZW9mIGg9PT0ibnVtYmVyIiYmKGcudmFsdWU9aCk7dmFyIGw7Yy5wdXNoKHt2ZXJzaW9uOiIiLGdjbGlkOmYsdGltZXN0YW1wOk51bWJlcihlLmNyZWF0aW9uVGltZU1zKXx8MCxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfHwwLGxhYmVsczoobD1lLmxhYmVscykhPW51bGw/bDpbXSxxYTpnLG9hOlsyXX0pO3JldHVybiBjfSxbXSl9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBPcihhLGIsYyl7aWYoYz09PTEpZm9yKHZhciBkPWNxKGIsQi5jb29raWUsdm9pZCAwLEFyKCkpLGU9bShkKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9VnIoZi52YWx1ZS5zcGxpdCgiLiIpKSxoPWcubGVuZ3RoPT09MD9udWxsOnt2ZXJzaW9uOmdbMF0sZ2NsaWQ6Z1syXSx0aW1lc3RhbXA6KE51bWJlcihnWzFdKXx8MCkqMUUzLGxhYmVsczpnLnNsaWNlKDMpfTtoIT1udWxsJiYoaC5vZD12b2lkIDAsaC5xYT1uZXcgZXIsaC5vYT1bY10sUXIoYSxoKSl9ZWxzZSBpZihjPT09Mil7dmFyIGw9VXIoYik7aWYobClmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLm9kPXZvaWQgMDtxLm9hPXEub2E7UXIoYSxxKX19fQpmdW5jdGlvbiBacihhKXt2YXIgYj1FcihhKSxjPVVyKCJnY2xfZGMiKTtpZihjKWZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2Yub2Q9dm9pZCAwO2Yub2E9Zi5vYXx8WzJdO1FyKGIsZil9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7dmFyIGw9Zy5vYSYmZy5vYS5pbmNsdWRlcygxKSxuPWgub2EmJmgub2EuaW5jbHVkZXMoMSk7cmV0dXJuIGwmJiFuPy0xOiFsJiZuPzE6aC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYil9ZnVuY3Rpb24gSnIoYSl7cmV0dXJuIE1yKGEpLm1hcChmdW5jdGlvbihiKXtiLnFhPW5ldyBlcjtiLm9hPVsxXTtyZXR1cm4gYn0pfQpmdW5jdGlvbiBMcihhLGIpe2lmKCFhLmxlbmd0aClyZXR1cm4gYjtpZighYi5sZW5ndGgpcmV0dXJuIGE7dmFyIGM9e307cmV0dXJuIGEuY29uY2F0KGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYy5oYXNPd25Qcm9wZXJ0eShkKT8hMTpjW2RdPSEwfSl9ZnVuY3Rpb24gSHIoYSl7cmV0dXJuIGEmJnR5cGVvZiBhPT09InN0cmluZyImJmEubWF0Y2goc3IpP2E6Il9nY2wifWZ1bmN0aW9uICRyKGEsYil7aWYoYSl7dmFyIGM9e3ZhbHVlOmEscWE6bmV3IGVyfTtmcihjLnFhLGIpO3JldHVybiBjfX0KZnVuY3Rpb24gYXMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKTtpZihiJiYoIWZ8fCFlKSl7dmFyIGc9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtmfHwoZj0kcihJaihnLCJnY2xpZCIsITEpLDMpKTtlfHwoZT1JaihnLCJnY2xzcmMiLCExKSl9cmV0dXJuIGYmJihlPT09dm9pZCAwfHxlPT09ImF3Inx8ZT09PSJhdy5kcyJ8fFlmKDgpJiZlPT09ImF3LmR2Iik/W2ZdOltdfQpmdW5jdGlvbiBicyhhLGIpe3ZhciBjPVJqKGEpLGQ9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxlPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9TGooYywicXVlcnkiLCExLHZvaWQgMCwid2JyYWlkIik7Zj0kYihmKTt2YXIgZz1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnYnJhaWQiKSxoPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKSxsPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIik7aWYoYiYmIShkJiZlJiZmJiZnKSl7dmFyIG49Yy5oYXNoLnJlcGxhY2UoIiMiLCIiKTtkPWR8fElqKG4sImdjbGlkIiwhMSk7ZT1lfHxJaihuLCJnY2xzcmMiLCExKTtmPWZ8fElqKG4sIndicmFpZCIsITEpO2c9Z3x8SWoobiwiZ2JyYWlkIiwhMSk7aD1ofHxJaihuLCJnYWRfc291cmNlIiwhMSl9cmV0dXJuIGNzKGQsZSxsLGYsZyxoKX0KZnVuY3Rpb24gZHMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKSxnPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIiksYz80OjIpO2lmKGImJighZXx8IWYpKXt2YXIgaD1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGgsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGgsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmZSYmKGU9PT0iYXcuZHMifHxlPT09ImF3LmR2Inx8ZT09PSIzcC5kcyJ8fGU9PT0iZHMiKT9bZl06Zz9bZ106W119ZnVuY3Rpb24gZXMoKXtyZXR1cm4gYnMoQS5sb2NhdGlvbi5ocmVmLCEwKX0KZnVuY3Rpb24gY3MoYSxiLGMsZCxlLGYpe3ZhciBnPXt9LGg9ZnVuY3Rpb24obCxuKXtnW25dfHwoZ1tuXT1bXSk7Z1tuXS5wdXNoKGwpfTtnLmdjbGlkPWE7Zy5nY2xzcmM9YjtnLmRjbGlkPWM7aWYoYSE9PXZvaWQgMCYmYS5tYXRjaCh0cikpc3dpdGNoKGIpe2Nhc2Ugdm9pZCAwOmgoYSwiYXciKTticmVhaztjYXNlICJhdy5kcyI6aChhLCJhdyIpO2goYSwiZGMiKTticmVhaztjYXNlICJhdy5kdiI6WWYoOCkmJihoKGEsImF3IiksaChhLCJkYyIpKTticmVhaztjYXNlICJkcyI6aChhLCJkYyIpO2JyZWFrO2Nhc2UgIjNwLmRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiZ2YiOmgoYSwiZ2YiKTticmVhaztjYXNlICJoYSI6aChhLCJoYSIpfWMmJmgoYywiZGMiKTtkIT09dm9pZCAwJiZ0ci50ZXN0KGQpJiYoZy53YnJhaWQ9ZCxoKGQsImdiIikpO2UhPT12b2lkIDAmJnRyLnRlc3QoZSkmJihnLmdicmFpZD1lLGgoZSwiYWciKSk7ZiE9PXZvaWQgMCYmdHIudGVzdChmKSYmKGcuZ2FkX3NvdXJjZT0KZixoKGYsImdzIikpO3JldHVybiBnfWZ1bmN0aW9uIGZzKCl7Zm9yKHZhciBhPWVzKCksYj0hMCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWlmKGFbZC52YWx1ZV0hPT12b2lkIDApe2I9ITE7YnJlYWt9YiYmKGE9YnMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSksYS5nYWRfc291cmNlPXZvaWQgMCk7cmV0dXJuIGF9ZnVuY3Rpb24gZ3MoYSl7dmFyIGI9ZnMoKTtocyhiLCExLGEpfQpmdW5jdGlvbiBpcyhhKXt2YXIgYj1hcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpO2IubGVuZ3RofHwoYj1hcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7YT1hfHx7fTtqcyhhKTtpZihiLmxlbmd0aCl7dmFyIGM9YlswXSxkPU5iKCksZT11cShhLGQsITApLGY9QXIoKSxnPWZ1bmN0aW9uKCl7QnIoZikmJmUuZXhwaXJlcyE9PXZvaWQgMCYma3IoImdjbGlkIix7dmFsdWU6e3ZhbHVlOmMudmFsdWUsY3JlYXRpb25UaW1lTXM6ZCxsaW5rRGVjb3JhdGlvblNvdXJjZXM6Yy5xYS5nZXQoKX0sZXhwaXJlczpOdW1iZXIoZS5leHBpcmVzKX0pfTtIbChmdW5jdGlvbigpe2coKTtCcihmKXx8SWwoZyxmKX0sZil9fQpmdW5jdGlvbiBqcyhhKXt2YXIgYj1CLnJlZmVycmVyP0xqKFJqKEIucmVmZXJyZXIpLCJob3N0Iik6IiI7aWYoeXIudGVzdChiKXx8enIudGVzdChiKXx8a3MoKSl7dmFyIGM7YTp7Zm9yKHZhciBkPVJqKEEubG9jYXRpb24uaHJlZiksZT1KaihMaihkLCJxdWVyeSIpKSxmPW0oT2JqZWN0LmtleXMoZSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2lmKCFycltoXSl7dmFyIGw9ZVtoXVswXXx8IiIsbjtpZighbHx8bC5sZW5ndGg8NTB8fGwubGVuZ3RoPjIwMCluPSExO2Vsc2V7dmFyIHA9Z3IobCkscTtpZihwKWM6e3ZhciByPXA7aWYociYmci5sZW5ndGghPT0wKXt2YXIgdD0wO3RyeXtmb3IodmFyIHU9MTA7dDxyLmxlbmd0aCYmISh1LS08PTApOyl7dmFyIHY9aHIocix0KTtpZih2PT09dm9pZCAwKWJyZWFrO3ZhciB4PW0odikseT14Lm5leHQoKS52YWx1ZSx6PXgubmV4dCgpLnZhbHVlLEM9eSxEPXosST1DJjc7aWYoQz4+Mz09PTE2MzgyKXtpZihJIT09CjApYnJlYWs7dmFyIEc9aHIocixEKTtpZihHPT09dm9pZCAwKWJyZWFrO3E9bShHKS5uZXh0KCkudmFsdWU9PT0xO2JyZWFrIGN9dmFyIE47ZDp7dmFyIFM9dm9pZCAwLFc9cixlYT1EO3N3aXRjaChJKXtjYXNlIDA6Tj0oUz1ocihXLGVhKSk9PW51bGw/dm9pZCAwOlNbMV07YnJlYWsgZDtjYXNlIDE6Tj1lYSs4O2JyZWFrIGQ7Y2FzZSAyOnZhciBqYT1ocihXLGVhKTtpZihqYT09PXZvaWQgMClicmVhazt2YXIgZmE9bShqYSksc2E9ZmEubmV4dCgpLnZhbHVlO049ZmEubmV4dCgpLnZhbHVlK3NhO2JyZWFrIGQ7Y2FzZSA1Ok49ZWErNDticmVhayBkfU49dm9pZCAwfWlmKE49PT12b2lkIDB8fE4+ci5sZW5ndGh8fE48PXQpYnJlYWs7dD1OfX1jYXRjaChtYSl7fX1xPSExfWVsc2UgcT0hMTtuPXF9aWYobil7Yz1sO2JyZWFrIGF9fX1jPXZvaWQgMH12YXIgZGE9YztkYSYmbHMoImdjbF9hdyIsZGEsNyxhKX19CmZ1bmN0aW9uIGxzKGEsYixjLGQpe21zKGEsW3t2ZXJzaW9uOiIiLGdjbGlkOmIsdGltZXN0YW1wOk5iKCkscWE6VHIoYyl9XSxkKX0KZnVuY3Rpb24gbXMoYSxiLGMpe2M9Y3x8e307dmFyIGQ9QXIoKSxlPWZ1bmN0aW9uKCl7aWYoQnIoZCkmJmIubGVuZ3RoPjApe3ZhciBmPVVyKGEpfHxbXTtiLmZvckVhY2goZnVuY3Rpb24oZyl7dmFyIGg9dXEoYyxnLnRpbWVzdGFtcCwhMCk7aC5leHBpcmVzIT09dm9pZCAwJiZRcihmLHt2ZXJzaW9uOiIiLGdjbGlkOmcuZ2NsaWQsdGltZXN0YW1wOmcudGltZXN0YW1wLGV4cGlyZXM6TnVtYmVyKGguZXhwaXJlcykscWE6Zy5xYSxsYWJlbHM6Zy5sYWJlbHN9LCEwKX0pO2YubGVuZ3RoJiZrcihhLGYubWFwKGZ1bmN0aW9uKGcpe3ZhciBoPXt2YWx1ZTpnLmdjbGlkLGNyZWF0aW9uVGltZU1zOmcudGltZXN0YW1wLGxpbmtEZWNvcmF0aW9uU291cmNlczpnLnFhP2cucWEuZ2V0KCk6MH0sbDtpZigobD1nLmxhYmVscyk9PW51bGw/MDpsLmxlbmd0aCloLmxhYmVscz1nLmxhYmVscztyZXR1cm57dmFsdWU6aCxleHBpcmVzOk51bWJlcihnLmV4cGlyZXMpfX0pKX19O0hsKGZ1bmN0aW9uKCl7QnIoZCk/CmUoKTpJbChlLGQpfSxkKX0KZnVuY3Rpb24gaHMoYSxiLGMsZCxlKXtjPWN8fHt9O2U9ZXx8W107dmFyIGY9SHIoYy5wcmVmaXgpLGc9ZHx8TmIoKSxoPU1hdGgucm91bmQoZy8xRTMpLGw9QXIoKSxuPSExLHA9ITEscT1ZZig5KSxyPWZ1bmN0aW9uKCl7aWYoQnIobCkpe3ZhciB0PXVxKGMsZywhMCk7dC5NYz1sO2Zvcih2YXIgdT1mdW5jdGlvbihXLGVhKXt2YXIgamE9SXIoVyxmKTtqYSYmKG9xKGphLGVhLHQpLFchPT0iZ2IiJiYobj0hMCkpfSx2PWZ1bmN0aW9uKFcpe3ZhciBlYT1bIkdDTCIsaCxXXTtlLmxlbmd0aD4wJiZlYS5wdXNoKGUuam9pbigiLiIpKTtyZXR1cm4gZWEuam9pbigiLiIpfSx4PW0oWyJhdyIsImRjIiwiZ2YiLCJoYSIsImdwIl0pLHk9eC5uZXh0KCk7IXkuZG9uZTt5PXgubmV4dCgpKXt2YXIgej15LnZhbHVlO2Fbel0mJnUoeix2KGFbel1bMF0pKX1pZigoIW58fHEpJiZhLmdiKXt2YXIgQz1hLmdiWzBdLEQ9SXIoImdiIixmKTshYiYmRXIoRCkuc29tZShmdW5jdGlvbihXKXtyZXR1cm4gVy5nY2xpZD09PUMmJgpXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KXx8dSgiZ2IiLHYoQykpfX1pZighcCYmYS5nYnJhaWQmJkJyKCJhZF9zdG9yYWdlIikmJihwPSEwLCFufHxxKSl7dmFyIEk9YS5nYnJhaWQsRz1JcigiYWciLGYpO2lmKGJ8fCFKcihHKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09SSYmVy5sYWJlbHMmJlcubGFiZWxzLmxlbmd0aD4wfSkpe3ZhciBOPXt9LFM9KE4uaz1JLE4uaT0iIitoLE4uYj1lLE4pO0FxKEcsUyw1LGMsZyl9fW5zKGEsZixnLGMpfTtIbChmdW5jdGlvbigpe3IoKTtCcihsKXx8SWwocixsKX0sbCl9CmZ1bmN0aW9uIG5zKGEsYixjLGQpe2lmKGEuZ2FkX3NvdXJjZSE9PXZvaWQgMCYmQnIoImFkX3N0b3JhZ2UiKSl7dmFyIGU9cWQoKTtpZihlIT09InIiJiZlIT09ImgiKXt2YXIgZj1hLmdhZF9zb3VyY2UsZz1JcigiZ3MiLGIpO2lmKGcpe3ZhciBoPU1hdGguZmxvb3IoKE5iKCktKHBkKCl8fDApKS8xRTMpLGwsbj1pcigpLHA9e307bD0ocC5rPWYscC5pPSIiK2gscC51PW4scCk7QXEoZyxsLDUsZCxjKX19fX1mdW5jdGlvbiBvcyhhLGIsYyl7Zm9yKHZhciBkPXdxKGIsYyksZT0wO2U8ZC5sZW5ndGg7KytlKWlmKE5yKGRbZV0pPmEpcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIHBzKGEpe3ZhciBiPXFzLGM9cnMoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1jW2ddO2lmKGgpe3ZhciBsPU1hdGgubWluKHNzKGgpLE5iKCkpLG49dXEoYSxsLCEwKTtuLk1jPUFyKCk7dmFyIHA9SXIoZyxkKTtwJiZvcShwLGgsbil9fXZhciBxPVVxKCEwKTtocyhjcyhxLmdjbGlkLHEuZ2Nsc3JjKSwhMSxhKX0sQXIoKSl9CmZ1bmN0aW9uIHJzKGEpe3ZhciBiPVVxKCEwKSxjPUhyKGEpLGQ9e30sZTtmb3IoZSBpbiB4cilpZih4ci5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9ZSxnPUlyKGYsYyk7aWYoZyE9PXZvaWQgMCl7dmFyIGg9YltnXTtpZihoKXt2YXIgbD1zcyhoKSxuO2E6e2Zvcih2YXIgcD1NYXRoLm1pbihsLE5iKCkpfHxOYigpLHE9Y3EoZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSkscj0wO3I8cS5sZW5ndGg7KytyKWlmKHNzKHFbcl0pPnApe249ITA7YnJlYWsgYX1uPSExfW58fChkW2ZdPWgpfX19cmV0dXJuIGR9CmZ1bmN0aW9uIHRzKGEpe3ZhciBiPVsiYWciXSxjPVVxKCEwKSxkPUhyKGEucHJlZml4KTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKGYpe3ZhciBnPWNbZl07aWYoZyl7dmFyIGg9JHAoZyw1KTtpZihoKXt2YXIgbD1OcihoKTtsfHwobD1OYigpKTtpZihvcyhsLGYsNSkpYnJlYWs7aC5pPSIiK01hdGgucm91bmQobC8xRTMpO0FxKGYsaCw1LGEsbCl9fX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24gSXIoYSxiKXt2YXIgYz14clthXTtpZihjIT09dm9pZCAwKXJldHVybiBiK2N9ZnVuY3Rpb24gc3MoYSl7cmV0dXJuIFZyKGEuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD8oTnVtYmVyKGEuc3BsaXQoIi4iKVsxXSl8fDApKjFFMzowfWZ1bmN0aW9uIE5yKGEpe3JldHVybiBhPyhOdW1iZXIoYS5pKXx8MCkqMUUzOjB9CmZ1bmN0aW9uIFZyKGEpe3JldHVybiBhLmxlbmd0aDwzfHxhWzBdIT09IkdDTCImJmFbMF0hPT0iMSJ8fCEvXlxkKyQvLnRlc3QoYVsxXSl8fCF0ci50ZXN0KGFbMl0pP1tdOmF9ZnVuY3Rpb24gdXMoYSxiLGMsZCl7dmFyIGU9cXM7aWYoQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBmPUhyKGQpLGc9ZnVuY3Rpb24oKXtmb3IodmFyIGg9e30sbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgbj1JcihlW2xdLGYpO2lmKG4pe3ZhciBwPWNxKG4sQi5jb29raWUsdm9pZCAwLEFyKCkpO3AubGVuZ3RoJiYoaFtuXT1wLnNvcnQoKVtwLmxlbmd0aC0xXSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHZzKGEsYixjKXt2YXIgZD1xcztpZihZZigxMykmJkFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgZj17fSxnPTA7ZzxkLmxlbmd0aDsrK2cpe3ZhciBoPXZyW2RbZ11dO2lmKGgpe3ZhciBsPWNxKGgsQi5jb29raWUsdm9pZCAwLEFyKCkpO2lmKGwubGVuZ3RoKXtmb3IodmFyIG49dm9pZCAwLHA9MCxxPW0obCkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT0kcCh0LDQpO2lmKHUmJih1Lm09PT0iMSJ8fFlmKDE2KSkpe3ZhciB2PU5yKHUpO3Y+PXAmJihwPXYsbj10KX19biYmKGZbaF09bil9fX1yZXR1cm4gZn07Q3IoZnVuY3Rpb24oKXthcihlLGEsYixjKX0sQXIoKSl9fQpmdW5jdGlvbiB3cyhhLGIsYyxkKXtpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGU9WyJhZyJdLGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYoIW4pcmV0dXJue307dmFyIHA9d3Eobiw1KTtpZihwLmxlbmd0aCl7dmFyIHE9cC5zb3J0KGZ1bmN0aW9uKHIsdCl7cmV0dXJuIE5yKHQpLU5yKHIpfSlbMF07aFtuXT1hcShxLDUpfX1yZXR1cm4gaH07Q3IoZnVuY3Rpb24oKXthcihnLGEsYixjKX0sWyJhZF9zdG9yYWdlIl0pfX1mdW5jdGlvbiBScihhKXtyZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIHRyLnRlc3QoYi5nY2xpZCl9KX0KZnVuY3Rpb24geHMoYSxiKXtpZihTcChBKSl7Zm9yKHZhciBjPUhyKGIucHJlZml4KSxkPXt9LGU9MDtlPGEubGVuZ3RoO2UrKyl4clthW2VdXSYmKGRbYVtlXV09eHJbYVtlXV0pO0NyKGZ1bmN0aW9uKCl7R2IoZCxmdW5jdGlvbihmLGcpe3ZhciBoPWNxKGMrZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aC5zb3J0KGZ1bmN0aW9uKHQsdSl7cmV0dXJuIHNzKHUpLXNzKHQpfSk7aWYoaC5sZW5ndGgpe3ZhciBsPWhbMF0sbj1zcyhsKSxwPVZyKGwuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD9sLnNwbGl0KCIuIikuc2xpY2UoMyk6W10scT17fSxyO3I9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKVsyXTp2b2lkIDA7cVtmXT1bcl07aHMocSwhMCxiLG4scCl9fSl9LEFyKCkpfX0KZnVuY3Rpb24geXMoYSl7dmFyIGI9WyJhZyJdLGM9WyJnYnJhaWQiXTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZD1IcihhLnByZWZpeCksZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKCFmKWJyZWFrO3ZhciBnPXdxKGYsNSk7aWYoZy5sZW5ndGgpe3ZhciBoPWcuc29ydChmdW5jdGlvbihxLHIpe3JldHVybiBOcihyKS1OcihxKX0pWzBdLGw9TnIoaCksbj1oLmIscD17fTtwW2NbZV1dPWguaztocyhwLCEwLGEsbCxuKX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24genMoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZihhW2JbY11dKXJldHVybiEwO3JldHVybiExfQpmdW5jdGlvbiBBcyhhKXtmdW5jdGlvbiBiKGgsbCxuKXtuJiYoaFtsXT1uKX1pZihFbCgpKXt2YXIgYz1lcygpLGQ7YS5pbmNsdWRlcygiZ2FkX3NvdXJjZSIpJiYoZD1jLmdhZF9zb3VyY2UhPT12b2lkIDA/Yy5nYWRfc291cmNlOlVxKCExKS5fZ3MpO2lmKHpzKGMsYSl8fGQpe3ZhciBlPXt9O2IoZSwiZ2NsaWQiLGMuZ2NsaWQpO2IoZSwiZGNsaWQiLGMuZGNsaWQpO2IoZSwiZ2Nsc3JjIixjLmdjbHNyYyk7YihlLCJ3YnJhaWQiLGMud2JyYWlkKTtiKGUsImdicmFpZCIsYy5nYnJhaWQpO2JyKGZ1bmN0aW9uKCl7cmV0dXJuIGV9LDMpO3ZhciBmPXt9LGc9KGYuX3VwPSIxIixmKTtiKGcsIl9ncyIsZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZ30sMSl9fX1mdW5jdGlvbiBrcygpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZik7cmV0dXJuIExqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKX0KZnVuY3Rpb24gQnMoYSl7aWYoIVlmKDEpKXJldHVybiBudWxsO3ZhciBiPVVxKCEwKS5nYWRfc291cmNlO2lmKGIhPW51bGwpcmV0dXJuIEEubG9jYXRpb24uaGFzaD0iIixiO2lmKFlmKDIpKXtiPWtzKCk7aWYoYiE9bnVsbClyZXR1cm4gYjt2YXIgYz1lcygpO2lmKHpzKGMsYSkpcmV0dXJuIjAifXJldHVybiBudWxsfWZ1bmN0aW9uIENzKGEpe3ZhciBiPUJzKGEpO2IhPW51bGwmJmJyKGZ1bmN0aW9uKCl7dmFyIGM9e307cmV0dXJuIGMuZ2FkX3NvdXJjZT1iLGN9LDQpfQpmdW5jdGlvbiBEcyhhLGIsYyl7dmFyIGQ9W107aWYoYi5sZW5ndGg9PT0wKXJldHVybiBkO2Zvcih2YXIgZT17fSxmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWJbZl0saD1nLnpnP2cuemc6ImdjbCI7aWYoKGcubGFiZWxzfHxbXSkuaW5kZXhPZihjKT09PS0xKXthLnB1c2goMCk7dmFyIGw9ITEsbj12b2lkIDA7aWYoKG49Zy5vYSk9PW51bGw/MDpuLmluY2x1ZGVzKDIpKWw9ITA7dmFyIHA9dm9pZCAwOygocD1nLm9hKT09bnVsbD8wOnAuaW5jbHVkZXMoMSkpJiYhZVtoXSYmKGw9ITAsZVtoXT0hMCk7bCYmZC5wdXNoKGcpfWVsc2V7YS5wdXNoKDEpO3ZhciBxPXZvaWQgMDtpZigocT1nLm9hKT09bnVsbD8wOnEuaW5jbHVkZXMoMSkpZVtoXT0hMH19cmV0dXJuIGR9CmZ1bmN0aW9uIEVzKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY9W107Yz1jfHx7fTtpZighQnIoQXIoKSkpcmV0dXJuIGY7dmFyIGc9RXIoYSxlKSxoPURzKGYsZyxiKTtpZihoLmxlbmd0aCYmIWQpe2Zvcih2YXIgbD1bXSxuPSExLHA9bShoKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl7dmFyIHI9cS52YWx1ZSx0PXIsdT10LnZlcnNpb24sdj10LmdjbGlkLHg9dC50aW1lc3RhbXAseT10Lm9hLHo9KHQubGFiZWxzfHxbXSkuY29uY2F0KFtiXSksQz12b2lkIDA7aWYoKChDPXkpPT1udWxsPzA6Qy5pbmNsdWRlcygxKSkmJiFuKXt2YXIgRD1bdSxNYXRoLnJvdW5kKHgvMUUzKSx2XS5jb25jYXQoeikuam9pbigiLiIpLEk9dXEoYyx4LCEwKTtJLk1jPUFyKCk7b3EoYSxELEkpO249ITB9dmFyIEc9dm9pZCAwO2UmJigoRz15KT09bnVsbD8wOkcuaW5jbHVkZXMoMikpJiZsLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxyLHtsYWJlbHM6en0pKX1sLmxlbmd0aCYmCm1zKCJnY2xfZ2IiLGwsYyl9cmV0dXJuIGZ9CmZ1bmN0aW9uIEZzKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZD1bXTtiPWJ8fHt9O3ZhciBlPUdyKGIsYyksZj1EcyhkLGUsYSk7aWYoZi5sZW5ndGgpe2Zvcih2YXIgZz1bXSxoPXt9LGw9bShmKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZSxxPUhyKGIucHJlZml4KSxyPUlyKHAuemcscSk7aWYoIXIpcmV0dXJuIGQ7dmFyIHQ9cCx1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej1NYXRoLnJvdW5kKHgvMUUzKSxDPUxyKHQubGFiZWxzfHxbXSxbYV0pLEQ9dm9pZCAwO2lmKChEPXkpPT1udWxsPzA6RC5pbmNsdWRlcygxKSlpZihwLnpnPT09ImFnIiYmIWguYWcpe3ZhciBJPXt9LEc9KEkuaz12LEkuaT0iIit6LEkuYj1DLEkpO0FxKHIsRyw1LGIseCk7aC5hZz0hMH1lbHNlIGlmKHAuemc9PT0iZ2IiJiYhaC5nYil7dmFyIE49W3Useix2XS5jb25jYXQoQykuam9pbigiLiIpLFM9dXEoYix4LCEwKTtTLk1jPQpBcigpO29xKHIsTixTKTtoLmdiPSEwfXZhciBXPXZvaWQgMDtjJiYoKFc9eSk9PW51bGw/MDpXLmluY2x1ZGVzKDIpKSYmZy5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scCx7bGFiZWxzOkN9KSl9Zy5sZW5ndGgmJm1zKCJnY2xfZ2IiLGcsYil9cmV0dXJuIGR9ZnVuY3Rpb24gR3MoYSxiKXt2YXIgYz1IcihiKSxkPUlyKGEsYyk7aWYoIWQpcmV0dXJuIDA7dmFyIGU7ZT1hPT09ImFnIj9KcihkKTpFcihkKTtmb3IodmFyIGY9MCxnPTA7ZzxlLmxlbmd0aDtnKyspZj1NYXRoLm1heChmLGVbZ10udGltZXN0YW1wKTtyZXR1cm4gZn1mdW5jdGlvbiBIcyhhKXtmb3IodmFyIGI9MCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWZvcih2YXIgZT1hW2QudmFsdWVdLGY9MDtmPGUubGVuZ3RoO2YrKyliPU1hdGgubWF4KGIsTnVtYmVyKGVbZl0udGltZXN0YW1wKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIElzKGEpe3ZhciBiPU1hdGgubWF4KEdzKCJhdyIsYSksSHMoQnIoQXIoKSk/UnAoKTp7fSkpLGM9TWF0aC5tYXgoR3MoImdiIixhKSxIcyhCcihBcigpKT9ScCgiX2dhY19nYiIsITApOnt9KSk7Yz1NYXRoLm1heChjLEdzKCJhZyIsYSkpO3JldHVybiBjPmJ9O3ZhciBKcz1SZWdFeHAoIl5VQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKD86JTNCVUEtXFxkKy1cXGQrJTNBW1xcdy1dKyg/OiUyQ1tcXHctXSspKikqJCIpLEtzPS9efj9bXHctXSsoPzpcLn4/W1x3LV0rKSokLyxMcz0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC8sTXM9LztnYWM9KFteOz9dKykvLE5zPS87Z2FjZ2I9KFteOz9dKykvOwpmdW5jdGlvbiBPcyhhLGIpe2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGM9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKGIpO3JldHVybiBjJiZjLmxlbmd0aD09PTImJmNbMV0ubWF0Y2goSnMpP0tqKGNbMV0pfHwiIjoiIn1mb3IodmFyIGQ9W10sZT1tKE9iamVjdC5rZXlzKGEpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUsaD1bXSxsPWFbZ10sbj0wO248bC5sZW5ndGg7bisrKWgucHVzaChsW25dLmdjbGlkKTtkLnB1c2goZysiOiIraC5qb2luKCIsIikpfXJldHVybiBkLmxlbmd0aD4wP2Quam9pbigiOyIpOiIifQpmdW5jdGlvbiBQcyhhLGIsYyl7Zm9yKHZhciBkPUJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30sZT1bXSxmPSExLGc9bShPYmplY3Qua2V5cyhkKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1FcygiX2dhY19nYl8iK2wsYSxiLGMpO2Y9Znx8bi5sZW5ndGghPT0wJiZuLnNvbWUoZnVuY3Rpb24ocCl7cmV0dXJuIHA9PT0xfSk7ZS5wdXNoKGwrIjoiK24uam9pbigiLCIpKX1yZXR1cm57UnI6Zj9lLmpvaW4oIjsiKToiIixRcjpPcyhkLE5zKX19ZnVuY3Rpb24gUXMoYSl7dmFyIGI9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKG5ldyBSZWdFeHAoIjsiK2ErIj0oW147P10rKSIpKTtyZXR1cm4gYiYmYi5sZW5ndGg9PT0yJiZiWzFdLm1hdGNoKEtzKT9iWzFdOnZvaWQgMH0KZnVuY3Rpb24gUnMoYSl7dmFyIGI9e30sYyxkLGU7THMudGVzdChCLmxvY2F0aW9uLmhvc3QpJiYoYz1RcygiZ2NsZ3MiKSxkPVFzKCJnY2xzdCIpLGU9UXMoImdjbGxwIikpO2lmKGMmJmQmJmUpYi5FZz1jLGIuV2g9ZCxiLlVoPWU7ZWxzZXt2YXIgZj1OYigpLGc9TXIoKGF8fCJfZ2NsIikrIl9ncyIpLGg9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAuZ2NsaWR9KSxsPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBmLXAudGltZXN0YW1wfSksbj1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5vZH0pO2gubGVuZ3RoPjAmJmwubGVuZ3RoPjAmJm4ubGVuZ3RoPjAmJihiLkVnPWguam9pbigiLiIpLGIuV2g9bC5qb2luKCIuIiksYi5VaD1uLmpvaW4oIi4iKSl9cmV0dXJuIGJ9CmZ1bmN0aW9uIFNzKGEsYil7dmFyIGM9YS5zcGxpdCgiLiIpLGQ9Yj9iLnNwbGl0KCIuIik6W10sZT1kLmxlbmd0aD09PWMubGVuZ3RoP2Q6dm9pZCAwO3JldHVybiBjLm1hcChmdW5jdGlvbihmLGcpe3ZhciBoPXtnY2xpZDpmfTtpZihlKXt2YXIgbD1lW2ddLnNwbGl0KCJfIik7aWYobC5sZW5ndGg9PT0yKXtoLnFhPW5ldyBlcihOdW1iZXIobFswXSkpO3ZhciBuO3ZhciBwPU51bWJlcihsWzFdKTtpZihwPT09MCluPVswXTtlbHNle3ZhciBxPVtdO3AmMSYmcS5wdXNoKDEpO3AmMiYmcS5wdXNoKDIpO3AmNCYmcS5wdXNoKDMpO3AmOCYmcS5wdXNoKDQpO3AmMTYmJnEucHVzaCg1KTtuPXF9aC5vYT1ufX1yZXR1cm4gaH0pfQpmdW5jdGlvbiBUcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZihMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkpe3ZhciBlPVFzKGMpO2lmKGUpe2lmKFlmKDE3KSl7dmFyIGY9UXMoYysiX3NyYyIpO3JldHVybiBTcyhlLGYpfWlmKGQpe3ZhciBnPW5ldyBlcjtmcihnLDIpO2ZyKGcsMyk7cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6ZyxvYTpbMV19fSl9cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6bmV3IGVyLG9hOlsxXX19KX19ZWxzZXtpZihiPT09ImdjbGlkIil7Zm9yKHZhciBoPUVyKChhfHwiX2djbCIpKyJfYXciLGQpLGw9TnVtYmVyKFhmWzRdPT09dm9pZCAwPzA6WGZbNF0pLG49bShVcygpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLnRpbWVzdGFtcD5sJiZRcihoLHEpfXJldHVybiBofWlmKGI9PT0id2JyYWlkIilyZXR1cm4gRXIoKGF8fAoiX2djbCIpKyJfZ2IiLGQpO2lmKGI9PT0iYnJhaWRzIilyZXR1cm4gR3Ioe3ByZWZpeDphfSxkKX1yZXR1cm5bXX1mdW5jdGlvbiBVcygpe3JldHVybih3cSh2ci5hdyw0KXx8W10pLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5tPT09IjEifSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybntnY2xpZDphLmssdGltZXN0YW1wOk51bWJlcihhLmkpLHZlcnNpb246IiIsb2E6WzVdfX0pfWZ1bmN0aW9uIFZzKGEpe2Zvcih2YXIgYj0wLGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlPjAmJihifD0xPDxlLTEpfXJldHVybiBiLnRvU3RyaW5nKCl9ZnVuY3Rpb24gV3MoYSl7cmV0dXJuIExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KT8hKFFzKCJnY2xhdyIpfHxRcygiZ2FjIikpOklzKGEpfQpmdW5jdGlvbiBYcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZTtlPWM/RnMoYSxiLGQpOkVzKChiJiZiLnByZWZpeHx8Il9nY2wiKSsiX2diIixhLGIsdm9pZCAwLGQpO3JldHVybiBlLmxlbmd0aD09PTB8fGUuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0wfSk/IiI6ZS5qb2luKCIuIil9Owp2YXIgWXM9ZnVuY3Rpb24oYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9a2ooImFkc19wYWdldmlldyIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKGNbYV0pcmV0dXJuITE7Ynx8KGNbYV09ITApO3JldHVybiEwfSxacz1mdW5jdGlvbihhKXtyZXR1cm4gU2ooYSwiZ2NsaWQgZGNsaWQgZ2JyYWlkIHdicmFpZCBnY2xhdyBnY2xkYyBnY2xoYSBnY2xnZiBnY2xnYiBfZ2wiLnNwbGl0KCIgIiksIjAiKX0sYXQ9ZnVuY3Rpb24oKXt2YXIgYT1SaihBLmxvY2F0aW9uLmhyZWYpLGI9dm9pZCAwLGM9dm9pZCAwLGQ9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGU9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX2NhbXBhaWduaWQiKSxmLGc9YS5oYXNoLnJlcGxhY2UoIiMiLCIiKS5tYXRjaCgkcyk7Zj1nP2dbMV06dm9pZCAwO2QmJmY/KGI9ZCxjPTEpOmQ/KGI9ZCxjPTIpOmYmJihiPWYsYz0zKTtyZXR1cm57RGc6YixTcjpjLFRoOmV9fSxidD1mdW5jdGlvbihhKXt2YXIgYj0KT3AoITEpPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZjtyZXR1cm4gYShiKX0sY3Q9ZnVuY3Rpb24oYSl7dmFyIGI9W107R2IoYSxmdW5jdGlvbihjLGQpe2Q9UnIoZCk7Zm9yKHZhciBlPVtdLGY9MDtmPGQubGVuZ3RoO2YrKyllLnB1c2goZFtmXS5nY2xpZCk7ZS5sZW5ndGgmJmIucHVzaChjKyI6IitlLmpvaW4oIiwiKSl9KTtyZXR1cm4gYi5qb2luKCI7Iil9LGV0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1kdChhKTtpZihkKXJldHVybiBkO3ZhciBlPUhyKGIpO2lmKGU9PT0iX2djbCIpe3ZhciBmPSFYbyhmcCkmJmMsZz1bXTthPT09ImF3Ij9nPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk6YT09PSJkYyImJihnPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSkpO2lmKGcubGVuZ3RoPjApcmV0dXJuIGY/W3t2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOiIwIn1dOmcubWFwKGZ1bmN0aW9uKGwpe3JldHVybnt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLApnY2xpZDpsLnZhbHVlLHFhOmwucWEsb2E6WzFdfX0pfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/YT09PSJhdyI/RXIoaCxNKDU2MikpOlpyKGgpOltdfSxkdD1mdW5jdGlvbihhKXt2YXIgYj1UaigiZ2NsIithKSxjPWE9PT0iZGMifHxhPT09ImF3Ij9UaigiZ2NsIithKyJfc3JjIik6dm9pZCAwO2lmKGIpcmV0dXJuIFNzKGIsYyl9LGZ0PWZ1bmN0aW9uKGEsYixjKXtpZihhPT09ImF3Inx8YT09PSJkYyJ8fGE9PT0iZ2IiKXt2YXIgZD1UaigiZ2NsIithKTtpZihkKXJldHVybiBkLnNwbGl0KCIuIil9dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnO2c9ZXMoKVthXXx8W107aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9bIjAiXTpnfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/RHIoaCk6W119LGd0PWZ1bmN0aW9uKGEsYixjKXtpZighUihhLGIpfHwhUihhLGMpKXJldHVybiIiO3ZhciBkPVIoYSxiKS5zcGxpdCgiLiIpLGU9UihhLGMpLnNwbGl0KCIuIik7cmV0dXJuIGQubGVuZ3RoJiYKZS5sZW5ndGgmJmQubGVuZ3RoPT09ZS5sZW5ndGgmJmRbMF0mJmVbMF0/ZC5tYXAoZnVuY3Rpb24oZixnKXtyZXR1cm4gZisiXyIrZVtnXX0pLmpvaW4oIi4iKToiIn0sJHM9L15nYWRfc291cmNlW189XShcZCspJC87ZnVuY3Rpb24gaHQoYSxiLGMpe3ZhciBkPVIoYSxGLkQuVGEpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpZm9yKHZhciBlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9ZFtnXTtpZihoIT09dm9pZCAwKXtoPT09bnVsbCYmKGg9IiIpO3ZhciBsPSJnYXAuIitnLG49U3RyaW5nKGgpO2M/YyhsLG4pOmJbbF09bn19fTt2YXIgaXQ9ITEsanQ9W107ZnVuY3Rpb24ga3QoKXtpZighaXQpe2l0PSEwO2Zvcih2YXIgYT1qdC5sZW5ndGgtMTthPj0wO2EtLSlqdFthXSgpO2p0PVtdfX07ZnVuY3Rpb24gbHQoYSl7dmFyIGI9W10sYz0wLGQ7Zm9yKGQgaW4gYSliW2MrK109YVtkXTtyZXR1cm4gYn07ZnVuY3Rpb24gbXQoYSxiLGMpe3JldHVybiB0eXBlb2YgYS5hZGRFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIj8oYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSksITApOiExfWZ1bmN0aW9uIG50KGEsYixjKXt0eXBlb2YgYS5yZW1vdmVFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIiYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9O2Z1bmN0aW9uIG90KGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzfHwoYS5nb29nbGVfaW1hZ2VfcmVxdWVzdHM9W10pO3ZhciBlPVBwKGEuZG9jdW1lbnQpO2lmKGMpe3ZhciBmPWZ1bmN0aW9uKCl7aWYoYyl7dmFyIGc9YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMsaD1EYyhnLGUpO2g+PTAmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChnLGgsMSl9bnQoZSwibG9hZCIsZik7bnQoZSwiZXJyb3IiLGYpfTttdChlLCJsb2FkIixmKTttdChlLCJlcnJvciIsZil9ZCYmKGUuYXR0cmlidXRpb25TcmM9IiIpO2Uuc3JjPWI7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMucHVzaChlKX0KZnVuY3Rpb24gcHQoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Imh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2dlbl8yMDQ/aWQ9dGNmZSI7SXAoYSxmdW5jdGlvbihkLGUpe2lmKGR8fGQ9PT0wKWMrPSImIitlKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGQpKX0pO3F0KGMsYil9CmZ1bmN0aW9uIHF0KGEsYil7dmFyIGM9d2luZG93LGQ7Yj1iPT09dm9pZCAwPyExOmI7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYy5mZXRjaCl7dmFyIGU9e2tlZXBhbGl2ZTohMCxjcmVkZW50aWFsczoiaW5jbHVkZSIscmVkaXJlY3Q6ImZvbGxvdyIsbWV0aG9kOiJnZXQiLG1vZGU6Im5vLWNvcnMifTtkJiYoZS5tb2RlPSJjb3JzIiwic2V0QXR0cmlidXRpb25SZXBvcnRpbmciaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlP2UuYXR0cmlidXRpb25SZXBvcnRpbmc9e2V2ZW50U291cmNlRWxpZ2libGU6InRydWUiLHRyaWdnZXJFbGlnaWJsZToiZmFsc2UifTplLmhlYWRlcnM9eyJBdHRyaWJ1dGlvbi1SZXBvcnRpbmctRWxpZ2libGUiOiJldmVudC1zb3VyY2UifSk7Yy5mZXRjaChhLGUpfWVsc2Ugb3QoYyxhLGI9PT12b2lkIDA/ITE6YixkPT09dm9pZCAwPyExOmQpfTtmdW5jdGlvbiBydCgpe3RoaXMuZmE9dGhpcy5mYTt0aGlzLlI9dGhpcy5SfXJ0LnByb3RvdHlwZS5mYT0hMTtydC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZmF8fCh0aGlzLmZhPSEwLHRoaXMuTigpKX07cnQucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtydC5wcm90b3R5cGUuYWRkT25EaXNwb3NlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhP2IhPT12b2lkIDA/YS5jYWxsKGIpOmEoKToodGhpcy5SfHwodGhpcy5SPVtdKSxiJiYoYT1hLmJpbmQoYikpLHRoaXMuUi5wdXNoKGEpKX07cnQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtpZih0aGlzLlIpZm9yKDt0aGlzLlIubGVuZ3RoOyl0aGlzLlIuc2hpZnQoKSgpfTtmdW5jdGlvbiBzdChhKXthLmFkZHRsQ29uc2VudD09PXZvaWQgMHx8dmYoYS5hZGR0bENvbnNlbnQpfHwoYS5hZGR0bENvbnNlbnQ9dm9pZCAwKTthLmdkcHJBcHBsaWVzPT09dm9pZCAwfHx3ZihhLmdkcHJBcHBsaWVzKXx8KGEuZ2RwckFwcGxpZXM9dm9pZCAwKTtyZXR1cm4gYS50Y1N0cmluZyE9PXZvaWQgMCYmIXZmKGEudGNTdHJpbmcpfHxhLmxpc3RlbmVySWQhPT12b2lkIDAmJiF1ZihhLmxpc3RlbmVySWQpPzI6YS5jbXBTdGF0dXMmJmEuY21wU3RhdHVzIT09ImVycm9yIj8wOjN9dmFyIHR0PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7cnQuY2FsbCh0aGlzKTt0aGlzLkg9bnVsbDt0aGlzLmphPXt9O3RoaXMueWE9MDt0aGlzLlo9bnVsbDt0aGlzLks9YTt2YXIgYzt0aGlzLnRpbWVvdXRNcz0oYz1iLnRpbWVvdXRNcykhPW51bGw/Yzo1MDA7dmFyIGQ7dGhpcy5Faj0oZD1iLkVqKSE9bnVsbD9kOiExfTt3YSh0dCxydCk7CnR0LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7dGhpcy5qYT17fTt0aGlzLlomJihudCh0aGlzLkssIm1lc3NhZ2UiLHRoaXMuWiksZGVsZXRlIHRoaXMuWik7ZGVsZXRlIHRoaXMuamE7ZGVsZXRlIHRoaXMuSztkZWxldGUgdGhpcy5IO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9O3ZhciB2dD1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEuSy5fX3RjZmFwaT09PSJmdW5jdGlvbiJ8fHV0KGEpIT1udWxsfTsKdHQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXtpbnRlcm5hbEJsb2NrT25FcnJvcnM6dGhpcy5Fan0sZD1IcChmdW5jdGlvbigpe2EoYyl9KSxlPTA7dGhpcy50aW1lb3V0TXMhPT0tMSYmKGU9c2V0VGltZW91dChmdW5jdGlvbigpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiO2MuaW50ZXJuYWxFcnJvclN0YXRlPTE7ZCgpfSx0aGlzLnRpbWVvdXRNcykpO3ZhciBmPWZ1bmN0aW9uKGcsaCl7Y2xlYXJUaW1lb3V0KGUpO2c/KGM9ZyxjLmludGVybmFsRXJyb3JTdGF0ZT1zdChjKSxjLmludGVybmFsQmxvY2tPbkVycm9ycz1iLkVqLGgmJmMuaW50ZXJuYWxFcnJvclN0YXRlPT09MHx8KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGh8fChjLmludGVybmFsRXJyb3JTdGF0ZT0zKSkpOihjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixjLmludGVybmFsRXJyb3JTdGF0ZT0zKTthKGMpfTt0cnl7d3QodGhpcywiYWRkRXZlbnRMaXN0ZW5lciIsCmYpfWNhdGNoKGcpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMsZSYmKGNsZWFyVGltZW91dChlKSxlPTApLGQoKX19O3R0LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2EmJmEubGlzdGVuZXJJZCYmd3QodGhpcywicmVtb3ZlRXZlbnRMaXN0ZW5lciIsbnVsbCxhLmxpc3RlbmVySWQpfTsKdmFyIHp0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPWQ9PT12b2lkIDA/Ijc1NSI6ZDt2YXIgZTthOntpZihhLnB1Ymxpc2hlciYmYS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zKXt2YXIgZj1hLnB1Ymxpc2hlci5yZXN0cmljdGlvbnNbYl07aWYoZiE9PXZvaWQgMCl7ZT1mW2Q9PT12b2lkIDA/Ijc1NSI6ZF07YnJlYWsgYX19ZT12b2lkIDB9dmFyIGc9ZTtpZihnPT09MClyZXR1cm4hMTt2YXIgaD1jO2M9PT0yPyhoPTAsZz09PTImJihoPTEpKTpjPT09MyYmKGg9MSxnPT09MSYmKGg9MCkpO3ZhciBsO2lmKGg9PT0wKWlmKGEucHVycG9zZSYmYS52ZW5kb3Ipe3ZhciBuPXh0KGEudmVuZG9yLmNvbnNlbnRzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk7bD1uJiZiPT09IjEiJiZhLnB1cnBvc2VPbmVUcmVhdG1lbnQmJmEucHVibGlzaGVyQ0M9PT0iQ0giPyEwOm4mJnh0KGEucHVycG9zZS5jb25zZW50cyxiKX1lbHNlIGw9ITA7ZWxzZSBsPWg9PT0xP2EucHVycG9zZSYmYS52ZW5kb3I/eHQoYS5wdXJwb3NlLmxlZ2l0aW1hdGVJbnRlcmVzdHMsCmIpJiZ4dChhLnZlbmRvci5sZWdpdGltYXRlSW50ZXJlc3RzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk6ITA6ITA7cmV0dXJuIGx9LHh0PWZ1bmN0aW9uKGEsYil7cmV0dXJuISghYXx8IWFbYl0pfSx3dD1mdW5jdGlvbihhLGIsYyxkKXtjfHwoYz1mdW5jdGlvbigpe30pO3ZhciBlPWEuSztpZih0eXBlb2YgZS5fX3RjZmFwaT09PSJmdW5jdGlvbiIpe3ZhciBmPWUuX190Y2ZhcGk7ZihiLDIsYyxkKX1lbHNlIGlmKHV0KGEpKXtBdChhKTt2YXIgZz0rK2EueWE7YS5qYVtnXT1jO2lmKGEuSCl7dmFyIGg9e307YS5ILnBvc3RNZXNzYWdlKChoLl9fdGNmYXBpQ2FsbD17Y29tbWFuZDpiLHZlcnNpb246MixjYWxsSWQ6ZyxwYXJhbWV0ZXI6ZH0saCksIioiKX19ZWxzZSBjKHt9LCExKX0sdXQ9ZnVuY3Rpb24oYSl7aWYoYS5IKXJldHVybiBhLkg7YS5IPU5wKGEuSywiX190Y2ZhcGlMb2NhdG9yIik7cmV0dXJuIGEuSH0sQXQ9ZnVuY3Rpb24oYSl7aWYoIWEuWil7dmFyIGI9ZnVuY3Rpb24oYyl7aWYoYy5zb3VyY2U9PT0KYS5IKXRyeXt2YXIgZDtkPSh2ZihjLmRhdGEpP0pTT04ucGFyc2UoYy5kYXRhKTpjLmRhdGEpLl9fdGNmYXBpUmV0dXJuO2EuamFbZC5jYWxsSWRdKGQucmV0dXJuVmFsdWUsZC5zdWNjZXNzKX1jYXRjaChlKXt9fTthLlo9YjttdChhLkssIm1lc3NhZ2UiLGIpfX0sQnQ9ZnVuY3Rpb24oYSl7aWYoYS5nZHByQXBwbGllcz09PSExKXJldHVybiEwO2EuaW50ZXJuYWxFcnJvclN0YXRlPT09dm9pZCAwJiYoYS5pbnRlcm5hbEVycm9yU3RhdGU9c3QoYSkpO3JldHVybiBhLmNtcFN0YXR1cz09PSJlcnJvciJ8fGEuaW50ZXJuYWxFcnJvclN0YXRlIT09MD9hLmludGVybmFsQmxvY2tPbkVycm9ycz8ocHQoe2U6U3RyaW5nKGEuaW50ZXJuYWxFcnJvclN0YXRlKX0pLCExKTohMDphLmNtcFN0YXR1cyE9PSJsb2FkZWQifHxhLmV2ZW50U3RhdHVzIT09InRjbG9hZGVkIiYmYS5ldmVudFN0YXR1cyE9PSJ1c2VyYWN0aW9uY29tcGxldGUiPyExOiEwfTt2YXIgQ3Q9ezE6MCwzOjAsNDowLDc6Myw5OjMsMTA6M307ZnVuY3Rpb24gRHQoKXtyZXR1cm4ga2ooInRjZiIsZnVuY3Rpb24oKXtyZXR1cm57fX0pfXZhciBFdD1mdW5jdGlvbigpe3JldHVybiBuZXcgdHQoQSx7dGltZW91dE1zOi0xfSl9OwpmdW5jdGlvbiBGdCgpe3ZhciBhPUR0KCksYj1FdCgpO3Z0KGIpJiYhR3QoKSYmIUh0KCkmJlAoMTI0KTtpZighYS5hY3RpdmUmJnZ0KGIpKXtHdCgpJiYoYS5hY3RpdmU9ITAsYS5wdXJwb3Nlcz17fSxhLmNtcElkPTAsYS50Y2ZQb2xpY3lWZXJzaW9uPTAsdGwoKS5hY3RpdmU9ITAsYS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIpO2NwKCk7dHJ5e2IuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbihjKXtpZihjLmludGVybmFsRXJyb3JTdGF0ZSE9PTApSXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITA7ZWxzZSBpZihhLmdkcHJBcHBsaWVzPWMuZ2RwckFwcGxpZXMsYS5jbXBJZD1jLmNtcElkLGEuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPWMuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlLEh0KCkmJihhLmFjdGl2ZT0hMCksIUp0KGMpfHxHdCgpfHxIdCgpKXthLnRjZlBvbGljeVZlcnNpb249Yy50Y2ZQb2xpY3lWZXJzaW9uO3ZhciBkO2lmKGMuZ2RwckFwcGxpZXM9PT0KITEpe3ZhciBlPXt9LGY7Zm9yKGYgaW4gQ3QpQ3QuaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPSEwKTtkPWU7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMpfWVsc2UgaWYoSnQoYykpe3ZhciBnPXt9LGg7Zm9yKGggaW4gQ3QpaWYoQ3QuaGFzT3duUHJvcGVydHkoaCkpaWYoaD09PSIxIil7dmFyIGwsbj1jLHA9e1VyOiEwfTtwPXA9PT12b2lkIDA/e306cDtsPUJ0KG4pP24uZ2RwckFwcGxpZXM9PT0hMT8hMDpuLnRjU3RyaW5nPT09InRjdW5hdmFpbGFibGUiPyFwLmlkcGNBcHBsaWVzOihwLmlkcGNBcHBsaWVzfHxuLmdkcHJBcHBsaWVzIT09dm9pZCAwfHxwLlVyKSYmKHAuaWRwY0FwcGxpZXN8fHZmKG4udGNTdHJpbmcpJiZuLnRjU3RyaW5nLmxlbmd0aCk/enQobiwiMSIsMCk6ITA6ITE7Z1siMSJdPWx9ZWxzZSBnW2hdPXp0KGMsaCxDdFtoXSk7ZD1nfWlmKGQpe2EudGNTdHJpbmc9Yy50Y1N0cmluZ3x8InRjZW1wdHkiO2EucHVycG9zZXM9ZDt2YXIgcT17fSxyPShxW0YuRC5rYV09CmEucHVycG9zZXNbIjEiXT8iZ3JhbnRlZCI6ImRlbmllZCIscSk7YS5nZHByQXBwbGllcyE9PSEwPyhkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMCk6KHJbRi5ELlhhXT1hLnB1cnBvc2VzWyIzIl0mJmEucHVycG9zZXNbIjQiXT8iZ3JhbnRlZCI6ImRlbmllZCIsdHlwZW9mIGEudGNmUG9saWN5VmVyc2lvbj09PSJudW1iZXIiJiZhLnRjZlBvbGljeVZlcnNpb24+PTQ/cltGLkQubWFdPWEucHVycG9zZXNbIjEiXSYmYS5wdXJwb3Nlc1siNyJdPyJncmFudGVkIjoiZGVuaWVkIjpkcChbRi5ELm1hXSksVm8ocix7ZXZlbnRJZDowfSx7Z2RwckFwcGxpZXM6YT9hLmdkcHJBcHBsaWVzOnZvaWQgMCx0Y1N0cmluZzpLdCgpfHwiIn0pKX19ZWxzZSBkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKX0pfWNhdGNoKGMpe0l0KGEpLGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwfX19CmZ1bmN0aW9uIEl0KGEpe2EudHlwZT0iZSI7YS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSJ9ZnVuY3Rpb24gSnQoYSl7cmV0dXJuIGEuZXZlbnRTdGF0dXM9PT0idGNsb2FkZWQifHxhLmV2ZW50U3RhdHVzPT09InVzZXJhY3Rpb25jb21wbGV0ZSJ8fGEuZXZlbnRTdGF0dXM9PT0iY21wdWlzaG93biJ9ZnVuY3Rpb24gR3QoKXtyZXR1cm4gQS5ndGFnX2VuYWJsZV90Y2Zfc3VwcG9ydD09PSEwfWZ1bmN0aW9uIEh0KCl7cmV0dXJuIER0KCkuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPT09ITB9ZnVuY3Rpb24gS3QoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlKXJldHVybiBhLnRjU3RyaW5nfWZ1bmN0aW9uIEx0KCl7dmFyIGE9RHQoKTtpZihhLmFjdGl2ZSYmYS5nZHByQXBwbGllcyE9PXZvaWQgMClyZXR1cm4gYS5nZHByQXBwbGllcz8iMSI6IjAifQpmdW5jdGlvbiBNdChhKXtpZighQ3QuaGFzT3duUHJvcGVydHkoU3RyaW5nKGEpKSlyZXR1cm4hMDt2YXIgYj1EdCgpO3JldHVybiBiLmFjdGl2ZSYmYi5wdXJwb3Nlcz8hIWIucHVycG9zZXNbU3RyaW5nKGEpXTohMH07dmFyIE50PVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdLE90PXt9LFB0PShPdFtGLkQua2FdPTEsT3RbRi5ELnJhXT0yLE90KTtmdW5jdGlvbiBRdChhKXtpZihhPT09dm9pZCAwKXJldHVybiAwO3N3aXRjaChPKGEsRi5ELlJjKSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMTpyZXR1cm4gMztkZWZhdWx0OnJldHVybiAyfX1mdW5jdGlvbiBSdCgpe3JldHVybihNKDE4Myk/TGYoMTYpLnNwbGl0KCJ+Iik6TGYoMTcpLnNwbGl0KCJ+IikpLmluZGV4T2Yoem0oKSkhPT0tMSYmSGMuZ2xvYmFsUHJpdmFjeUNvbnRyb2w9PT0hMH1mdW5jdGlvbiBTdChhKXtpZihSdCgpKXJldHVybiExO3ZhciBiPVF0KGEpO2lmKGI9PT0zKXJldHVybiExO3N3aXRjaChDbChGLkQuWGEpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtjYXNlIDQ6cmV0dXJuIGI9PT0yO2Nhc2UgMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0KZnVuY3Rpb24gVHQoKXtyZXR1cm4gRWwoKXx8IUJsKEYuRC5rYSl8fCFCbChGLkQucmEpfWZ1bmN0aW9uIFV0KCl7dmFyIGE9e30sYjtmb3IoYiBpbiBQdClQdC5oYXNPd25Qcm9wZXJ0eShiKSYmKGFbUHRbYl1dPUNsKGIpKTtyZXR1cm4iRzEiK3lmKGFbMV18fDApK3lmKGFbMl18fDApfXZhciBWdD17fSxXdD0oVnRbRi5ELmthXT0wLFZ0W0YuRC5yYV09MSxWdFtGLkQubWFdPTIsVnRbRi5ELlhhXT0zLFZ0KTtmdW5jdGlvbiBYdChhKXtzd2l0Y2goYSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMDpyZXR1cm4gMztjYXNlICExOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fQpmdW5jdGlvbiBZdChhKXtmb3IodmFyIGI9IjEiLGM9MDtjPE50Lmxlbmd0aDtjKyspe3ZhciBkPWIsZSxmPU50W2NdLGc9QWwuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2ZdO2U9Zz09PXZvaWQgMD8wOld0Lmhhc093blByb3BlcnR5KGcpPzEyfFd0W2ddOjg7dmFyIGg9dGwoKTtoLmFjY2Vzc2VkQW55PSEwO3ZhciBsPWguZW50cmllc1tmXXx8e307ZT1lPDwyfFh0KGwuaW1wbGljaXQpO2I9ZCsoIiIrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2VdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltYdChsLmRlY2xhcmUpPDw0fFh0KGwuZGVmYXVsdCk8PDJ8WHQobC51cGRhdGUpXSl9dmFyIG49YixwPShSdCgpPzE6MCk8PDMscT0oRWwoKT8xOjApPDwyLHI9UXQoYSk7Yj1uKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltwfApxfHJdO3JldHVybiBiKz0iIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfc3RvcmFnZTw8NHxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hbmFseXRpY3Nfc3RvcmFnZTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF91c2VyX2RhdGFdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlsoQWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPzE6MCk8PDJ8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfcGVyc29uYWxpemF0aW9uXX1mdW5jdGlvbiBadCgpe3JldHVybiBCbChGLkQubWEpPyJhIjoiLSJ9ZnVuY3Rpb24gJHQoKXtyZXR1cm4gQm0oKXx8KEd0KCl8fEh0KCkpJiZMdCgpPT09IjEiPyIxIjoiMCJ9CmZ1bmN0aW9uIGF1KCl7cmV0dXJuKEJtKCk/ITA6ISghR3QoKSYmIUh0KCkpJiZMdCgpPT09IjEiKXx8IUJsKEYuRC5tYSl9CmZ1bmN0aW9uIGJ1KCl7dmFyIGE9IjAiLGI9IjAiLGM7dmFyIGQ9RHQoKTtjPWQuYWN0aXZlP2QuY21wSWQ6dm9pZCAwO3R5cGVvZiBjPT09Im51bWJlciImJmM+PTAmJmM8PTQwOTUmJihhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjPj42JjYzXSxiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjJjYzXSk7dmFyIGU9IjAiLGY7dmFyIGc9RHQoKTtmPWcuYWN0aXZlP2cudGNmUG9saWN5VmVyc2lvbjp2b2lkIDA7dHlwZW9mIGY9PT0ibnVtYmVyIiYmZj49MCYmZjw9NjMmJihlPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltmXSk7dmFyIGg9MDtCbSgpJiYoaHw9MSk7THQoKT09PSIxIiYmKGh8PTIpO0d0KCkmJihofD00KTt2YXIgbDt2YXIgbj1EdCgpO2w9bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUhPT0Kdm9pZCAwP24uZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPyIxIjoiMCI6dm9pZCAwO2w9PT0iMSImJihofD04KTt0bCgpLndhaXRQZXJpb2RUaW1lZE91dCYmKGh8PTE2KTtyZXR1cm4iMSIrYStiK2UrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2hdfTt2YXIgY3U9e1VBOjEsQVc6MixEQzozLEc6NCxHRjo1LEdUOjEyLEdUTToxNCxIQTo2LE1DOjd9OwpmdW5jdGlvbiBkdShhKXthPWE9PT12b2lkIDA/e306YTt2YXIgYj1FKDUpLnNwbGl0KCItIilbMF0udG9VcHBlckNhc2UoKSxjLGQ9e2N0aWQ6RSg1KSxEbzpKZigxNSksSW86RSgxNCksTHM6SWYoNyk/MjoxLER0OmEucGYsY2Fub25pY2FsSWQ6RSg2KSxudDooYz1BaygpKT09bnVsbD92b2lkIDA6Yy5jYW5vbmljYWxDb250YWluZXJJZCxFdDphLlRnPT09dm9pZCAwP3ZvaWQgMDphLlRnPzEwOjEyfTtkLmNhbm9uaWNhbElkIT09YS5tYyYmKGQubWM9YS5tYyk7dmFyIGU9eGsoKTtkLlVzPWU/ZS5jYW5vbmljYWxDb250YWluZXJJZDp2b2lkIDA7SWYoNDUpPyhkLmhpPWN1W2JdLGQuaGl8fChkLmhpPTApKTpkLmhpPURqPzEzOjEwO0lmKDQ3KT8oZC5iaz0wLGQucXI9Mik6SWYoNTApP2QuYms9MTpkLmJrPTM7dmFyIGY9YSxnPXs2OiExfTtKZig1NCk9PT0yP2dbN109ITA6SmYoNTQpPT09MSYmKGdbMl09ITApO2lmKEtjKXt2YXIgaD1MaihSaihLYyksImhvc3QiKTtoJiYoZ1s4XT0KaC5tYXRjaCgvXih3d3dcLik/Z29vZ2xldGFnbWFuYWdlclwuY29tJC8pPT09bnVsbCl9dmFyIGw7Z1s5XT0obD1mLmVmKSE9bnVsbD9sOiExO3ZhciBuPUZrKCkscDtnWzEwXT0ocD1uPT1udWxsP3ZvaWQgMDpuLmZyb21Db250YWluZXJFeGVjdXRpb24pIT1udWxsP3A6ITE7ZC56cj1nO3JldHVybiBDZihkLGEuUG4pfTsKdmFyIGZ1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oZXUoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9UihhLGUpLGc9UShhLEguSi5ZZSk7TSg1ODkpJiZnJiYoZT09PUYuRC56YXx8ZT09PUYuRC5VYXx8ZT09PUYuRC5QZSkmJnR5cGVvZiBmPT09InN0cmluZyImJihmPVpzKGYpKTt2YXIgaD1vcChlLGYpO2gmJighZ3x8ZSE9PUYuRC5EZCYmZSE9PUYuRC5LZCYmZSE9PUYuRC5FZSYmZSE9PUYuRC5CZnx8KGgudmFsdWU9IjAiKSxNKDUwNCkmJihlPT09Ri5ELk1kP2gua2V5PSJldm5pZCI6ZT09PUYuRC5OZCYmKGgua2V5PSJleGNpZCIpKSxiW2gua2V5XT1oLnZhbHVlKX1iLmd0bT1kdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYyl9KTtUdCgpJiYoYi5nY3M9Yi5nY3N8fFV0KCkpO2IuZ2NkPWIuZ2NkfHxZdChhLk0pO2F1KCkmJihiLmRtYV9jcHM9WnQoKSk7Yi5kbWE9JHQoKTt2dChFdCgpKSYmCihiLnRjZmQ9YnUoKSk7dmFyIGw9Q3AoYSk7bCYmKGIudGFnX2V4cD1sKTtpZihRKGEsSC5KLkJrKSl7Yi50ZnQ9U3RyaW5nKE5iKCkpO3ZhciBuPXBkKCk7biE9PXZvaWQgMCYmKGIudGZkPVN0cmluZyhNYXRoLnJvdW5kKG4pKSl9Yi5hcHZlPSIxIjtiLmFwdmY9bmQoKT8iZiI6Im5mIjtmby5IW2NvLmlhLmNiXSE9PWJvLk1hLlVlfHxmby5LW2NvLmlhLmNiXS5pc0NvbnNlbnRHcmFudGVkKCl8fChiLmxpbWl0ZWRfYWRzPSIxIik7dmFyIHA9UShhLEguSi5YZyk7TSg0NzQpJiZwIT1udWxsJiZwIT09IiImJihiLl9nc2lkPXApO2h0KGEsYixmdW5jdGlvbihxLHIpe2JbcV09ZW5jb2RlVVJJQ29tcG9uZW50KHIpfSk7cmV0dXJuIGJ9O3ZhciBndT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMuZW5kcG9pbnQ9YTt0aGlzLmZhPWM7dGhpcy5qYT1kO3RoaXMucGFyYW1ldGVyRW5jb2Rpbmc9ZTt0aGlzLlo9Yi5zbGljZSgpfTtndS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBYbyh0aGlzLlopfTtndS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Z3UucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXt2YXIgYT1NbVt0aGlzLmVuZHBvaW50XSh2b2lkIDApO3JldHVybiBTYihhLCJodHRwczovLyIpP2Euc3Vic3RyaW5nKDgpOlNiKGEsImh0dHA6Ly8iKT9hLnN1YnN0cmluZyg3KTphfTt2YXIgaHU9ZnVuY3Rpb24oYSxiKXt0aGlzLm1ldGhvZE5hbWU9YTt0aGlzLlI9Yn07aHUucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmlzU3VwcG9ydGVkKCkpaWYoKGM9PW51bGw/dm9pZCAwOmMuYm9keSk9PT12b2lkIDB8fHRoaXMuSCgpKXRyeXt0aGlzLksoYSxiLGMpfWNhdGNoKGQpe2EucmQoZCl9ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGRvZXMgbm90IHN1cHBvcnQgYSByZXF1ZXN0IGJvZHkuIik7ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGlzIG5vdCBzdXBwb3J0ZWQuIil9O3ZhciBpdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW1hZ2VQaXhlbCIsMyl9O3dhKGl1LGh1KTtpdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07aXUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07Cml1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtaYyhiLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbigpe2Eub25GYWlsdXJlKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIganU9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIlNlbmRCZWFjb24iLDEpfTt3YShqdSxodSk7anUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIGtkKCl9O2p1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2p1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtqZChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSk/YS5qZigpOmEucmQodm9pZCAwKX07dmFyIGt1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJGZXRjaCIsMSl9O3dhKGt1LGh1KTtrdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O2t1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9OwprdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7QS5mZXRjaChiLGM9PW51bGw/dm9pZCAwOmMuR2IpLnRoZW4oZnVuY3Rpb24oZCl7aWYoZC5vaylhLnBlKGQpO2Vsc2UgaWYoZC5zdGF0dXM9PT0wKWEuamYoKTtlbHNlIGEub25GYWlsdXJlKCJGZXRjaCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Quc3RhdHVzKyIuIil9KS5jYXRjaChmdW5jdGlvbihkKXthLnJkKGQpfSl9O3ZhciBsdT1uZXcgaXUsbXU9bmV3IGp1LG51PW5ldyBrdTt2YXIgb3U9ZnVuY3Rpb24oKXt9O291LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuW119Owp2YXIgcHU9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl06YjtndS5jYWxsKHRoaXMsYSxiLDEsITAsMil9O3dhKHB1LGd1KTtwdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtpZih0aGlzLloubGVuZ3RoKXt2YXIgYj1RKGEsSC5KLkRrKTtpZihiIT09dm9pZCAwKXJldHVybiBifXJldHVybiBndS5wcm90b3R5cGUuSy5jYWxsKHRoaXMsYSl9O3B1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnUoYSk7YS50YXJnZXQuZGVzdGluYXRpb25JZCYmKGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO2IubWV0aG9kIGluc3RhbmNlb2Yga3U/Yy5mbXQ9IjgiOmIubWV0aG9kIGluc3RhbmNlb2YganU/Yy5mbXQ9IjUiOmIubWV0aG9kIGluc3RhbmNlb2YgaXUmJihjLmZtdD0iMyIpO3JldHVybiBjfTtwdS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLk4oYSxiKTtyZXR1cm4iPyIrT2JqZWN0LmtleXMoYykubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKwoiPSIrY1tkXX0pLmpvaW4oIiYiKX07cHUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMueWEoYSxiKSxlPXt9O2lmKGIubWV0aG9kIGluc3RhbmNlb2Yga3Upe2UuR2I9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7aWYodGhpcy5lbmRwb2ludD09PTU4fHx0aGlzLmVuZHBvaW50PT09NTcpZS5HYi5tZXRob2Q9IkdFVCI7dGhpcy5lbmRwb2ludCE9PTQ1fHxxdS5LKGEpfHwoZS5HYi5jcmVkZW50aWFscz0ib21pdCIsZCs9IiZnYXAudWNmYj0xIil9YyhkLGUpfTt2YXIgcXU9bmV3IHB1KDQ1KSxydT1uZXcgcHUoNDUsW10pLHN1PW5ldyBwdSg0NixbXSksdHU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNjkpfTt3YSh0dSxwdSk7dHUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3ZhciBiPU0oNDc0KSYmKCEhUihhLCJfZ3NpZCIpfHwhIVEoYSxILkouWGcpKSxjPVIoYSxGLkQuSGQpIT09IjEiJiYoISFSKGEsImdjbGlkIil8fAohIVIoYSwiZGNsaWQiKXx8ISFSKGEsImdjbHNyYyIpfHwhIVIoYSwiYXVpZCIpKTtyZXR1cm4gYnx8Y307dHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKSxkPWxwKGEsYyl8fHt9O09iamVjdC5rZXlzKGQpLmxlbmd0aD4wJiYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdT9kLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9kLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGQuZm10PSIzIikpO3JldHVybiBkfTt2YXIgdXU9bmV3IHR1LHZ1PWZ1bmN0aW9uKCl7cHUuY2FsbCh0aGlzLDQ1KX07d2EodnUscHUpO3Z1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9nL2QvY2NtL2NvbGxlY3QifTt2dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXB1LnByb3RvdHlwZS5OLmNhbGwodGhpcyxhLGIpO2NbImdhcC4xcGZiIl09IjEiO3JldHVybiBjfTt2YXIgd3U9ZnVuY3Rpb24oYSl7cHUuY2FsbCh0aGlzLGEsWyJhZF9zdG9yYWdlIiwKImFkX3VzZXJfZGF0YSJdKX07d2Eod3UscHUpO3d1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7cmV0dXJuIGhwKGMpfTt2YXIgeHU9bmV3IHd1KDU4KSx5dT1uZXcgd3UoNTcpLHp1PWZ1bmN0aW9uKCl7fTt3YSh6dSxvdSk7enUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9cXUuSyhhKSxjPWI/cXU6c3UsZD1be2VuZHBvaW50OmMsbWV0aG9kOm5kKCk/bnU6bXV9LHtlbmRwb2ludDpjLG1ldGhvZDpsdX1dO2I/TSg1MTcpJiZJZig0NykmJmQucHVzaCh7ZW5kcG9pbnQ6bmV3IHZ1LG1ldGhvZDpudX0pOk0oNjAwKSYmZC5wdXNoKHtlbmRwb2ludDpydSxtZXRob2Q6bnV9KTtyZXR1cm4gZH07enUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9W10sYz0hIVEoYSxILkoudmQpLGQ9UihhLEYuRC5QZCk9PT0iMSIsZT1SKGEsRi5ELkhkKT09PSIxIixmPXF1LksoYSksZz1jJiZkJiYhZSYmZjtpZihnKXt2YXIgaD0KUWMoKXx8T2MoKT94dTp5dTtiLnB1c2goW3tlbmRwb2ludDpoLG1ldGhvZDpudX0se2VuZHBvaW50OmgsbWV0aG9kOmx1fV0pfWYmJihnfHxRKGEsSC5KLmhkKSkmJmIucHVzaChbe2VuZHBvaW50OnV1LG1ldGhvZDpuZCgpP251Omx1fV0pO3JldHVybiBifTt2YXIgQXU9bmV3IHp1O3ZhciBUPXtXOntKazoxLG5qOjIsRms6MyxtbDo0LEdrOjUseWQ6NixrbDo3LE1xOjgscW46OSxIazoxMCxJazoxMSxGaDoxMixEbToxMyxBbToxNCxDbToxNSx6bToxNixCbToxNyx5bToxOCxUbzoxOSx4cToyMCx5cToyMSxmajoyMix1bjoyNCxPbToyNSxTazoyNixUazoyNyxSazoyOCxVazoyOSxyajozMCxPazozMSxabzozMn19O1QuV1tULlcuSmtdPSJBTExPV19JTlRFUkVTVF9HUk9VUFMiO1QuV1tULlcubmpdPSJTRVJWRVJfQ09OVEFJTkVSX1VSTCI7VC5XW1QuVy5Ga109IkFEU19EQVRBX1JFREFDVElPTiI7VC5XW1QuVy5tbF09IkNVU1RPTUVSX0xJRkVUSU1FX1ZBTFVFIjtULldbVC5XLkdrXT0iQUxMT1dfQ1VTVE9NX1NDUklQVFMiO1QuV1tULlcueWRdPSJBTllfQ09PS0lFX1BBUkFNUyI7VC5XW1QuVy5rbF09IkNPT0tJRV9FWFBJUkVTIjtULldbVC5XLk1xXT0iTEVHQUNZX0VOSEFOQ0VEX0NPTlZFUlNJT05fSlNfVkFSSUFCTEUiO1QuV1tULlcucW5dPSJSRVNUUklDVEVEX0RBVEFfUFJPQ0VTU0lORyI7ClQuV1tULlcuSGtdPSJBTExPV19ESVNQTEFZX0ZFQVRVUkVTIjtULldbVC5XLklrXT0iQUxMT1dfR09PR0xFX1NJR05BTFMiO1QuV1tULlcuRmhdPSJHRU5FUkFURURfVFJBTlNBQ1RJT05fSUQiO1QuV1tULlcuRG1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTktOT1dOIjtULldbVC5XLkFtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfU1RBTkRBUkQiO1QuV1tULlcuQ21dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTklRVUUiO1QuV1tULlcuem1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9QRVJfU0VTU0lPTiI7VC5XW1QuVy5CbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1RSQU5TQUNUSU9OUyI7VC5XW1QuVy55bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX0lURU1TX1NPTEQiO1QuV1tULlcuVG9dPSJBRFNfT0dUX1YxX1VTQUdFIjtULldbVC5XLnhxXT0iRk9STV9JTlRFUkFDVElPTl9QRVJNSVNTSU9OX0RFTklFRCI7ClQuV1tULlcueXFdPSJGT1JNX1NVQk1JVF9QRVJNSVNTSU9OX0RFTklFRCI7VC5XW1QuVy5mal09Ik1JQ1JPVEFTS19OT1RfU1VQUE9SVEVEIjtULldbVC5XLnVuXT0iU0VUX0VOQ1JZUFRFRF9EQVRBX1RPX0NBQ0hFIjtULldbVC5XLk9tXT0iR0VUX0VOQ1JZUFRFRF9EQVRBX0ZST01fQ0FDSEUiO1QuV1tULlcuU2tdPSJDT05GSUdfREVURUNURURfV0lUSF9OT19QQVJBTSI7VC5XW1QuVy5Ua109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX1BBUkFNIjtULldbVC5XLlJrXT0iQ09ORklHX0NPTlNFTlRfU0VUX0JFRk9SRSI7VC5XW1QuVy5Va109IkNPTkZJR19TRVRfVVNFRF9CRUZPUkUiO1QuV1tULlcucmpdPSJTSEFET1dfRE9NX0FVVE9fUElJIjtULldbVC5XLk9rXT0iQ0NEX1VTRVJfREFUQV9XRUJfT05fQ09ORklHIjtULldbVC5XLlpvXT0iQkxFTkRFRF9VU0VSX0RBVEEiO3ZhciBCdT17fSxDdT0oQnVbRi5ELnVpXT1ULlcuSmssQnVbRi5ELmRkXT1ULlcubmosQnVbRi5ELnljXT1ULlcubmosQnVbRi5ELm1iXT1ULlcuRmssQnVbRi5ELkdlXT1ULlcubWwsQnVbRi5ELnJpXT1ULlcuR2ssQnVbRi5ELkpkXT1ULlcueWQsQnVbRi5ELm5iXT1ULlcueWQsQnVbRi5ELkxiXT1ULlcueWQsQnVbRi5ELklkXT1ULlcueWQsQnVbRi5ELnZjXT1ULlcueWQsQnVbRi5ELlRiXT1ULlcueWQsQnVbRi5ELkNiXT1ULlcua2wsQnVbRi5ELldiXT1ULlcucW4sQnVbRi5ELmhoXT1ULlcuSGssQnVbRi5ELlNjXT1ULlcuSWssQnUpLER1PXt9LEV1PShEdS51bmtub3duPVQuVy5EbSxEdS5zdGFuZGFyZD1ULlcuQW0sRHUudW5pcXVlPVQuVy5DbSxEdS5wZXJfc2Vzc2lvbj1ULlcuem0sRHUudHJhbnNhY3Rpb25zPVQuVy5CbSxEdS5pdGVtc19zb2xkPVQuVy55bSxEdSk7dmFyIEZ1PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLGIpO2MmJihhLkhbYl09ITApfSx2Yj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9W119O2Z1bmN0aW9uIEd1KGEpe0Z1KHZiLGEsITEpfWZ1bmN0aW9uIEh1KGEsYil7dmFyIGM9Yj09PXZvaWQgMD8hMTpiLGQ9dmI7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBlPU9iamVjdC5rZXlzKGEpLGY9bShPYmplY3Qua2V5cyhDdSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2UuaW5jbHVkZXMoaCkmJkZ1KGQsQ3VbaF0sYyl9fTtmdW5jdGlvbiBJdShhLGIpe2E/YS50aGVuKGIpOmIodm9pZCAwKX1mdW5jdGlvbiBKdShhKXtyZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGEpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLnN0YXR1cz09PSJmdWxmaWxsZWQifSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLnZhbHVlfSl9KX1mdW5jdGlvbiBLdSgpe3ZhciBhLGI7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX07ZnVuY3Rpb24gTHUoYSxiLGMsZCxlLGYpe3ZhciBnPWMuc2xpY2UoKSxoO2Q9PW51bGx8fChoPWQudXYpPT1udWxsfHxoLmNhbGwoZCxhLGIsYyxlKTt2YXIgbD1LdSgpLG49bC5wcm9taXNlLHA9bC5yZXNvbHZlLHE9W10scj1mdW5jdGlvbigpe3AocSk7dmFyIHU7ZD09bnVsbHx8KHU9ZC5Scyk9PW51bGx8fHUuY2FsbChkLGEsYixjLGUscSl9LHQ9ZnVuY3Rpb24oKXt2YXIgdT1nLnNoaWZ0KCk7dT91Lm1ldGhvZC5pc1N1cHBvcnRlZCgpP011KGEsYix1LmVuZHBvaW50LGQscSx1Lm1ldGhvZCxlLGYsdCxyKTp0KCk6cigpfTt0KCk7cmV0dXJuIG59CmZ1bmN0aW9uIE11KGEsYixjLGQsZSxmLGcsaCxsLG4pe3ZhciBwPWMuUihhKSxxPXt0azpiLGVuZHBvaW50OmMsaXNQcmltYXJ5Omcsc2I6dm9pZCAwLHBrOmYsanQ6e319LHI9ITEsdD1mdW5jdGlvbih6LEMpe2lmKHIpUCgxODcpO2Vsc2UgaWYocj0hMCwhdSl7dmFyIEQ9Q3x8e30sST1ELmJvZHksRz1ELkdiLE49RC5hZjtDPU9iamVjdC5mcmVlemUobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxJP3tib2R5Okl9Ont9LEc/e0diOkd9Ont9LE4/e2FmOk59Ont9KSk7aWYoSSYmIWYuSCgpKXgoKSxsKCk7ZWxzZXt2YXIgUz1OdSh6KSxXPXBbMF09PT0iLyI/IiIrcCtTOiJodHRwczovLyIrcCtTO3Euc2I9VztxLmp0PUM7dmFyIGVhO2Q9PW51bGx8fChlYT1kLlNzKT09bnVsbHx8ZWEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSk7dmFyIGphPXtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6Yy5lbmRwb2ludCwKZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfTtmLlI9PT12b2lkIDB8fGMuZmEhPT0yJiYoYy5mYSE9PTF8fGUubGVuZ3RoKXx8a24ucmVnaXN0ZXIoamEsZi5SLFcpO3ZhciBmYT1mdW5jdGlvbihkYSxtYSl7eCgpO2lmKHEuc3RhdHVzIT09dm9pZCAwKXJldHVybiBQKDE5MiksITE7cS5zdGF0dXM9ZGE7ZS5wdXNoKHEpO3ZhciBQYTtkPT1udWxsfHwoUGE9ZC51byk9PW51bGx8fFBhLmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksbWEpO3JldHVybiEwfSxzYT17Rm86amEscmQ6ZnVuY3Rpb24oKXtmYSgyKSYmbCgpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXtmYSgzKSYmbCgpfSxwZTpmdW5jdGlvbihkYSl7ZmEoZGEuc3RhdHVzPT09MD8xOmRhLm9rPzA6MyxkYSkmJm4oKX0samY6ZnVuY3Rpb24oKXtmYSgxKSYmbigpfX07T3UoYyxhLFcsUyxJKTtmLnNlbmRSZXF1ZXN0KHNhLFcsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCwKe30sSSYme2JvZHk6SX0sRyYme0diOkd9LE4mJnthZjpOfSkpfX19LHU9ITEsdix4PWZ1bmN0aW9uKCl7diE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KHYpLHY9dm9pZCAwKX07TSg1NzQpJiYodj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PXZvaWQgMDt1PSEwO2lmKHEuc3RhdHVzPT09dm9pZCAwKXtxLnN0YXR1cz00O3Euc2I9PT12b2lkIDAmJihxLnNiPSJbZmFpbGVkIHRvIGJ1aWxkXSAiK3ApO2UucHVzaChxKTt2YXIgejtkPT1udWxsfHwoej1kLnVvKT09bnVsbHx8ei5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpLHZvaWQgMCk7bCgpfX0sNUUzKSk7dmFyIHk9e0ljOnAsbWV0aG9kOmYseXY6ZSxpc1ByaW1hcnk6ZyxDdDpofTt0cnl7Yy5IKGEseSx0KX1jYXRjaCh6KXt4KCksUCgxODgpLGwoKX19CmZ1bmN0aW9uIE91KGEsYixjLGQsZSl7aWYoYS5qYSl7dmFyIGY9Yi50YXJnZXQuZGVzdGluYXRpb25JZCxnPWEuZW5kcG9pbnQ7aWYoZz09PTQ1fHxnPT09NDZ8fGc9PT02OXx8Zz09PTU4fHxnPT09NTcpe3ZhciBoPS9bPyZddGlkcz0oW14mXSspLy5leGVjKGQpO2Y9aD9kZWNvZGVVUklDb21wb25lbnQoaFsxXSkuc3BsaXQoIn4iKTpbZl19TWwoe3RhcmdldElkOmYscmVxdWVzdDpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHt1cmw6YyxwYXJhbWV0ZXJFbmNvZGluZzphLnBhcmFtZXRlckVuY29kaW5nLGVuZHBvaW50OmEuZW5kcG9pbnR9LGU/e3Bvc3RCb2R5OmV9Ont9KSxxYjp7ZXZlbnRJZDpiLk0uZXZlbnRJZCxwcmlvcml0eUlkOmIuTS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX0KZnVuY3Rpb24gTnUoYSl7cmV0dXJuIGEmJmEhPT0iPyI/YVswXSE9PSI/Ij8iPyIuY29uY2F0KGEpOmE6IiJ9O2Z1bmN0aW9uIFB1KGEsYixjLGQsZSl7dmFyIGY7ZT09bnVsbHx8KGY9ZS52dik9PW51bGx8fGYuY2FsbChlLGEsYik7aWYoIWMubGVuZ3RoKXt2YXIgZztlPT1udWxsfHwoZz1lLlRzKT09bnVsbHx8Zy5jYWxsKGUsYSxiLFtdKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKX12YXIgaD1bXSxsPXt0azpiLG1rOmMsams6ZH07aC5wdXNoKEx1KGEsYixjLGUsITAsbCkpO2Zvcih2YXIgbj1tKGQpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWgucHVzaChMdShhLGIscC52YWx1ZSxlLCExLGwpKTtyZXR1cm4gSnUoaCkudGhlbihmdW5jdGlvbihxKXtmb3IodmFyIHI9W10sdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXIucHVzaC5hcHBseShyLHcodS52YWx1ZSkpO3ZhciB2O2U9PW51bGx8fCh2PWUuVHMpPT1udWxsfHx2LmNhbGwoZSxhLGIscik7cmV0dXJuIHJ9KX07ZnVuY3Rpb24gUXUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtiPT1udWxsfHwoZD1iLnd2KT09bnVsbHx8ZC5jYWxsKGIsYSxjKTtmb3IodmFyIGU9W10sZj1tKGMpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWUucHVzaChSdShhLGcudmFsdWUpKTtmb3IodmFyIGg9W10sbD1tKGUpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2gucHVzaChQdShhLHAudGsscC5tayxwLmprLGIpKX1KdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7Yj09bnVsbHx8KHY9Yi5Rcyk9PW51bGx8fHYuY2FsbChiLGEsYyxyKX0pfQpmdW5jdGlvbiBSdShhLGIpe3ZhciBjPWZ1bmN0aW9uKGYpe3JldHVybiBmLm1ldGhvZC5pc1N1cHBvcnRlZCgpJiZmLmVuZHBvaW50LmlzU3VwcG9ydGVkKGEpJiZmLmVuZHBvaW50LksoYSl9LGQ9KGIuSChhKXx8W10pLmZpbHRlcihjKSxlPVtdO2QubGVuZ3RoJiYoZT0oYi5LKGEpfHxbXSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmZpbHRlcihjKX0pLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZi5sZW5ndGg+MH0pKTtyZXR1cm57dGs6YixtazpkLGprOmV9fTsKdmFyIFN1PWZ1bmN0aW9uKGEsYil7aWYoTSg1MTcpJiZJZig0NykmJmE9PT00NSlyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdD8iK2Iuc3BsaXQoIj8iKVsxXSsiJmdhcC4xcGZiPTEifSxXdT1mdW5jdGlvbigpe3ZhciBhPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihhLmxlbmd0aCl7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPVR1KGUua2UsImFwdmMiKSxnPVR1KGUua2UsInRmdCIpLGg9VHUoZS5rZSwidGZkIiksbD1UdShlLmtlLCJ0aWQiKSxuPU5tKGUuZW5kcG9pbnQsZS5rZSkscD1iW25dPWJbbl18fHt4azpbXSxaaDpbXX07cC5aaC5wdXNoKGUpO2w/KHAueGsucHVzaChsKSxwLnVkfHwocC51ZD1sKSk6cC54ay5wdXNoKCIiKTtmPT09IjEiJiYocC5Rbj0hMCk7aWYoZ3x8aClwLk5uPSEwfWEubGVuZ3RoPTA7Zm9yKHZhciBxPW0oT2JqZWN0LmtleXMoYikpLHI9cS5uZXh0KCksdD17fTshci5kb25lO3Q9Cnt5azp2b2lkIDB9LHI9cS5uZXh0KCkpe3ZhciB1PXIudmFsdWUsdj1iW3VdO3QueWs9di54azt2YXIgeD10LnlrLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gZnVuY3Rpb24oSSxHKXtyZXR1cm4gRC55ay5pbmRleE9mKEkpPT09R319KHQpKS5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuISFEfSk7aWYoTSg0MjcpKXt2YXIgeT1VdSh2LHgpO1F1KHksdm9pZCAwLEF1KX1lbHNle3ZhciB6PXUrIiZhcHZjPSIrKHYuUW4/IjEiOiIwIik7eC5sZW5ndGgmJih6Kz0iJnRpZHM9Iit4LmpvaW4oIn4iKSk7di51ZCYmKHorPSImdGlkPSIrdi51ZCk7aWYodi5Obil7eis9IiZ0ZnQ9IitTdHJpbmcoTmIoKSk7dmFyIEM9cGQoKTtDIT09dm9pZCAwJiYoeis9IiZ0ZmQ9IitTdHJpbmcoTWF0aC5yb3VuZChDKSkpfVZ1KHYuWmhbMF0uZXZlbnQseix2LlpoWzBdLmVuZHBvaW50LHgubGVuZ3RoP3g6WyIiXSl9fX19LFR1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVtiXTtpZihjIT09dm9pZCAwKXJldHVybiBkZWxldGUgYVtiXSwKY30sVnU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZj1mdW5jdGlvbihsLG4pe3ZhciBwPWIrWHUobCk7VGwocCxhLGMsZCk7cmV0dXJuIG4ocCl9O2lmKG5kKCkpe3ZhciBnPWZ1bmN0aW9uKCl7fSxoPVN1KGMsYik7aCE9PXZvaWQgMCYmKGc9ZnVuY3Rpb24oKXtZbihlLGgrWHUoOCksdm9pZCAwLHtRZzohMH0pfSk7Zig4LGZ1bmN0aW9uKGwpe1luKGUsbCx2b2lkIDAse1FnOiEwfSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhiK1h1KDMpLGZ1bmN0aW9uKCl7fSxnKX0pfSl9ZWxzZSBmKDUsZnVuY3Rpb24obCl7cmV0dXJuIFduKGUsbCl9KXx8WmMoYitYdSgzKSl9LFV1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5aaFswXSxkPXsiXyZhcHZjIjphLlFuPyIxIjoiMCJ9O2IubGVuZ3RoPjAmJihkWyJfJnRpZHMiXT0KYi5qb2luKCJ+IikpO2lmKGEuTm4pe2RbIl8mdGZ0Il09U3RyaW5nKE5iKCkpO3ZhciBlPXBkKCk7ZSE9PXZvaWQgMCYmKGRbIl8mdGZkIl09U3RyaW5nKE1hdGgucm91bmQoZSkpKX1yZXR1cm4gWXUoYy5ldmVudCxhLnVkfHwiIixkKX0sWXU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS50YXJnZXQse2Rlc3RpbmF0aW9uSWQ6Yn0pLGU9WnUoYSx7dGFyZ2V0OmR9KTtifHxVKGUsRi5ELlFlKTtmb3IodmFyIGY9bShPYmplY3Qua2V5cyhjKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7VShlLGgsY1toXSl9cmV0dXJuIGV9LFh1PWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDg6Y2FzZSAzOmNhc2UgNTpyZXR1cm4iJmZtdD0iK2E7ZGVmYXVsdDpyZXR1cm4iIn19LCR1PWZ1bmN0aW9uKGEsYil7YT1adShhKTtWKGEsSC5KLkRrLFhvKGZwKSk7VHQoKSYmVShhLCJfJmdjcyIsVXQoKSk7ClUoYSwiXyZnY2QiLFl0KGEuTSkpO3ZhciBjPVhvKGZwKT80NTo0NixkPWZ1bmN0aW9uKCl7dmFyIGY9Yi50aWQ7aWYoTSg0MjcpKXt2YXIgZz1ZdShhLGYsYik7UXUoZyx2b2lkIDAsQXUpfWVsc2V7dmFyIGg9Tm0oYyxiKTtWdShhLGgsYyxbZl0pfX07aWYoeWIoQS5xdWV1ZU1pY3JvdGFzaykpe3ZhciBlPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihlLmxlbmd0aD09PTApdHJ5e0EucXVldWVNaWNyb3Rhc2soV3UpfWNhdGNoKGYpe0d1KFQuVy5maik7ZCgpO3JldHVybn1iPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYik7ZS5wdXNoKHtldmVudDphLGtlOmIsZW5kcG9pbnQ6Y30pfWVsc2UgR3UoVC5XLmZqKSxkKCl9O3ZhciBYPXtWOntNazoiY2FsbF9jb252ZXJzaW9uIix6ZDoiY2NtX2NvbnZlcnNpb24iLFFrOiJjb21tb25fYXciLHhhOiJjb252ZXJzaW9uIix3cToiZmxvb2RsaWdodCIsWWQ6ImdhX2NvbnZlcnNpb24iLFpkOiJnY3BfcmVtYXJrZXRpbmciLEthOiJwYWdlX3ZpZXciLHViOiJyZW1hcmtldGluZyIsT2I6InVzZXJfZGF0YV9sZWFkIixGYjoidXNlcl9kYXRhX3dlYiJ9fTtmdW5jdGlvbiBidihhLGIpe2ImJkdiKGIsZnVuY3Rpb24oYyxkKXt0eXBlb2YgZCE9PSJvYmplY3QiJiZkIT09dm9pZCAwJiYoYVsiMXAuIitjXT1TdHJpbmcoZCkpfSl9O3ZhciBtdj17Tmc6InZhbHVlIixwYjoiY29udmVyc2lvbkNvdW50IixPZzoxfSxudj17Tmc6InRpbWVvdXRzIixwYjoidGltZW91dHMiLE9nOjB9LG92PXtOZzoiZW9wQ291bnQiLHBiOiJlbmRPZlBhZ2VDb3VudCIsT2c6MH0scHY9e05nOiJlcnJvcnMiLHBiOiJlcnJvcnMiLE9nOjB9LHF2PVttdixudixwdixvdl07ZnVuY3Rpb24gcnYoYSxiKXtiPWI9PT12b2lkIDA/MTpiO2lmKCFzdihhKSlyZXR1cm57fTt2YXIgYz10dihxdiksZD1jW2EucGJdO2lmKGQ9PT12b2lkIDB8fGQ9PT0tMSlyZXR1cm4gYzt2YXIgZT17fSxmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYywoZVthLnBiXT1kK2IsZSkpO3JldHVybiB1dihmKT9mOmN9CmZ1bmN0aW9uIHR2KGEpe3ZhciBiO2E6e3ZhciBjPW5yKCJnY2xfY3RyIik7aWYoYy5lcnJvcj09PTAmJmMudmFsdWUmJnR5cGVvZiBjLnZhbHVlPT09Im9iamVjdCIpe3ZhciBkPWMudmFsdWU7dHJ5e2I9InZhbHVlImluIGQmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCI/ZC52YWx1ZTp2b2lkIDA7YnJlYWsgYX1jYXRjaChwKXt9fWI9dm9pZCAwfWZvcih2YXIgZT1iLGY9e30sZz1tKGEpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2lmKGUmJnN2KGwpKXt2YXIgbj1lW2wuTmddO249PT12b2lkIDB8fE51bWJlci5pc05hTihuKT9mW2wucGJdPS0xOmZbbC5wYl09TnVtYmVyKG4pfWVsc2UgZltsLnBiXT0tMX1yZXR1cm4gZn0KZnVuY3Rpb24gdXYoYSxiKXtiPWJ8fHt9O2Zvcih2YXIgYz1OYigpLGQ9dXEoYixjLCEwKSxlPXt9LGY9bShxdiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWUsbD1hW2gucGJdO2whPT12b2lkIDAmJmwhPT0tMSYmKGVbaC5OZ109bCl9ZS5jcmVhdGlvblRpbWVNcz1jO3JldHVybiBrcigiZ2NsX2N0ciIse3ZhbHVlOmUsZXhwaXJlczpOdW1iZXIoZC5leHBpcmVzKX0pPT09MD8hMDohMX1mdW5jdGlvbiBzdihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLmZ0fHxZZihhLmZ0KTohMX1mdW5jdGlvbiB2dihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLkFzfHxZZihhLkFzKTohMX07ZnVuY3Rpb24gd3YoKXtpZih4digpKXt2YXIgYT1ucigibGFzdF9jb252cyIpO2lmKGEuZXJyb3I9PT0wJiZhLnZhbHVlJiZ0eXBlb2YgYS52YWx1ZT09PSJvYmplY3QiKXt2YXIgYj1hLnZhbHVlO2lmKGIudmFsdWUmJkFycmF5LmlzQXJyYXkoYi52YWx1ZSkpe3ZhciBjPWIudmFsdWU7aWYoIShjLmxlbmd0aD4xKSl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZih0eXBlb2YgZyE9PSJvYmplY3QifHxnPT09bnVsbHx8dHlwZW9mIGcucmFuZG9tIT09Im51bWJlciJ8fHR5cGVvZiBnLmxhYmVsIT09InN0cmluZyJ8fGcubGFiZWwubGVuZ3RoPjIwMClyZXR1cm47ZC5wdXNoKHtyYW5kb206Zy5yYW5kb20sbGFiZWw6Zy5sYWJlbH0pfXJldHVybiBkfX19fX0KZnVuY3Rpb24geXYoYSxiKXsheHYoKXx8YS5sZW5ndGg+MXx8YS5sZW5ndGg9PT0xJiZhWzBdLmxhYmVsLmxlbmd0aD4yMDB8fChiPWJ8fHt9LGtyKCJsYXN0X2NvbnZzIix7dmFsdWU6YSxleHBpcmVzOk51bWJlcih1cShiKS5leHBpcmVzKX0pKX1mdW5jdGlvbiB4digpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkmJllmKDExKX07ZnVuY3Rpb24genYoYSl7dmFyIGI9TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjIxNDc0ODM2NDcpO3JldHVybiBhP1N0cmluZyhiXm5nKGEpJjIxNDc0ODM2NDcpOlN0cmluZyhiKX1mdW5jdGlvbiBBdihhKXtyZXR1cm5benYoYSksTWF0aC5yb3VuZChOYigpLzFFMyldLmpvaW4oIi4iKX1mdW5jdGlvbiBCdihhLGIsYyxkLGUpe3ZhciBmPXJxKGIpLGc7cmV0dXJuKGc9Z3EoYSxmLHNxKGMpLGQsZSkpPT1udWxsP3ZvaWQgMDpnLkNyfTt2YXIgQ3Y9WyIxIl0sRHY9e30sRXY9e307ZnVuY3Rpb24gRnYoYSl7cmV0dXJuIEV2W0d2KGEpXX1mdW5jdGlvbiBIdihhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjPUd2KGEucHJlZml4KTtpZihEdltjXSlJdihhKSxKdihhKTtlbHNlIGlmKEt2KGMsYS5wYXRoLGEuZG9tYWluKSl7dmFyIGQ9RnYoYS5wcmVmaXgpfHx7aWQ6dm9pZCAwLGtjOnZvaWQgMH07YiYmTHYoYSxkKTtJdihhKTtKdihhKX1lbHNle3ZhciBlPVRqKCJhdWlkZGMiKTtpZihlKXNiKCJUQUdHSU5HIiwxNyksRHZbY109ZTtlbHNlIGlmKGIpe3ZhciBmPUd2KGEucHJlZml4KSxnPUF2KCk7TXYoZixnLGEpO0t2KGMsYS5wYXRoLGEuZG9tYWluKTtJdihhLCEwKTtKdihhLCEwKX19fQpmdW5jdGlvbiBJdihhLGIpeyhiPT09dm9pZCAwPzA6YikmJnN2KG12KSYmb3IoImdjbF9jdHIiKTtpZih2dihtdikmJnR2KFttdl0pW212LnBiXT09PS0xKXtmb3IodmFyIGM9e30sZD0oY1ttdi5wYl09MCxjKSxlPW0ocXYpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2chPT1tdiYmdnYoZykmJihkW2cucGJdPTApfXV2KGQsYSl9fWZ1bmN0aW9uIEp2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmeHYoKSYmb3IoImxhc3RfY29udnMiKTshQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pfHwhWWYoMTIpfHx3digpfHx5dihbXSxhKX0KZnVuY3Rpb24gTHYoYSxiKXt2YXIgYz1HdihhLnByZWZpeCksZD1EdltjXTtpZihkKXt2YXIgZT1kLnNwbGl0KCIuIik7aWYoZS5sZW5ndGg9PT0yKXt2YXIgZj1OdW1iZXIoZVsxXSl8fDA7aWYoZil7dmFyIGc9ZDtZZigxOSkmJmIuZmk/Zz1kKyIuIisoYi5zZXNzaW9uSWR8fCItLi0iKSsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkrIi4iK2IuZmkrIi4iKyhiLkxjP2IuTGM6TWF0aC5mbG9vcihOYigpLzFFMykpOmIuc2Vzc2lvbklkJiYoZz1kKyIuIitiLnNlc3Npb25JZCsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkpO012KGMsZyxhLGYqMUUzKX19fX1mdW5jdGlvbiBNdihhLGIsYyxkKXt2YXIgZTtlPVsiMSIsdHEoYy5kb21haW4sYy5wYXRoKSxiXS5qb2luKCIuIik7dmFyIGY9dXEoYyxkKTtmLk1jPU52KCk7b3EoYSxlLGYpfQpmdW5jdGlvbiBLdihhLGIsYyl7dmFyIGQ9QnYoYSxiLGMsQ3YsTnYoKSk7aWYoIWQpcmV0dXJuITE7T3YoYSxkKTtyZXR1cm4hMH1mdW5jdGlvbiBPdihhLGIpe3ZhciBjPWIuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpRXZbYV09e3Nlc3Npb25JZDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtlbHNlIGlmKGMubGVuZ3RoPj0yJiYoRHZbYV09Y1swXSsiLiIrY1sxXSxjLnNoaWZ0KCksYy5zaGlmdCgpLGMubGVuZ3RoPj0zKSl7dmFyIGQ9e3Nlc3Npb25JZDpjWzBdPT09Ii0iP3ZvaWQgMDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtpZihZZigxOSkmJmMubGVuZ3RoPj02KXt2YXIgZT1jWzNdKyIuIitjWzRdLGY9TnVtYmVyKGNbNV0pfHwwO2UmJmYhPT0wJiYoZC5maT1lLGQuTGM9Zil9RXZbYV09ZH19ZnVuY3Rpb24gR3YoYSl7cmV0dXJuKGF8fCJfZ2NsIikrIl9hdSJ9CmZ1bmN0aW9uIFB2KGEpe2Z1bmN0aW9uIGIoKXtCbChjKSYmYSgpfXZhciBjPU52KCk7SGwoZnVuY3Rpb24oKXtiKCk7QmwoYyl8fElsKGIsYyl9LGMpfWZ1bmN0aW9uIFF2KGEpe3ZhciBiPVVxKCEwKSxjPUd2KGEucHJlZml4KTtQdihmdW5jdGlvbigpe3ZhciBkPWJbY107aWYoZCl7T3YoYyxkKTt2YXIgZT1OdW1iZXIoRHZbY10uc3BsaXQoIi4iKVsxXSkqMUUzO2lmKGUpe3NiKCJUQUdHSU5HIiwxNik7dmFyIGY9dXEoYSxlKTtmLk1jPU52KCk7dmFyIGc9WyIxIix0cShhLmRvbWFpbixhLnBhdGgpLGRdLmpvaW4oIi4iKTtvcShjLGcsZil9fX0pfWZ1bmN0aW9uIFJ2KGEsYixjLGQsZSl7ZT1lfHx7fTt2YXIgZj1mdW5jdGlvbigpe3ZhciBnPXt9LGg9QnYoYSxlLnBhdGgsZS5kb21haW4sQ3YsTnYoKSk7aCYmKGdbYV09aCk7cmV0dXJuIGd9O1B2KGZ1bmN0aW9uKCl7YXIoZixiLGMsZCl9KX0KZnVuY3Rpb24gTnYoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX07dmFyIFZ2PSJlbWFpbCBlbWFpbF9hZGRyZXNzIHNoYTI1Nl9lbWFpbF9hZGRyZXNzIHBob25lX251bWJlciBzaGEyNTZfcGhvbmVfbnVtYmVyIGZpcnN0X25hbWUgbGFzdF9uYW1lIi5zcGxpdCgiICIpLFd2PSJmaXJzdF9uYW1lIHNoYTI1Nl9maXJzdF9uYW1lIGxhc3RfbmFtZSBzaGEyNTZfbGFzdF9uYW1lIHN0cmVldCBzaGEyNTZfc3RyZWV0IGNpdHkgcmVnaW9uIGNvdW50cnkgcG9zdGFsX2NvZGUiLnNwbGl0KCIgIik7ZnVuY3Rpb24gWHYoYSxiKXtpZighYi5fdGFnX21ldGFkYXRhKXtmb3IodmFyIGM9e30sZD0wLGU9MDtlPGEubGVuZ3RoO2UrKylkKz1ZdihhW2VdLGIsYyk/MTowO2Q+MCYmKGIuX3RhZ19tZXRhZGF0YT1jKX19CmZ1bmN0aW9uIFl2KGEsYixjKXt2YXIgZD1iW2FdO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXJldHVybiExO2NbYV09QXJyYXkuaXNBcnJheShkKT9kLm1hcChmdW5jdGlvbigpe3JldHVybnttb2RlOiJjIn19KTp7bW9kZToiYyJ9O3JldHVybiEwfWZ1bmN0aW9uIFp2KGEpe2lmKE0oNTIzKSYmYSl7WHYoVnYsYSk7Zm9yKHZhciBiPUJiKGEuYWRkcmVzcyksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2QmJlh2KFd2LGQpfXZhciBlPWEuaG9tZV9hZGRyZXNzO2UmJlh2KFd2LGUpfX0KZnVuY3Rpb24gJHYoYSxiLGMpe2Z1bmN0aW9uIGQoZixnKXtnPVN0cmluZyhnKS5zdWJzdHJpbmcoMCwxMDApO2UucHVzaCgiIitmK2VuY29kZVVSSUNvbXBvbmVudChnKSl9aWYoIWMpcmV0dXJuIiI7dmFyIGU9W107ZCgiaSIsU3RyaW5nKGEpKTtkKCJmIixiKTtjLm1vZGUmJmQoIm0iLGMubW9kZSk7Yy5pc1ByZUhhc2hlZCYmZCgicCIsIjEiKTtjLnJhd0xlbmd0aCYmZCgiciIsU3RyaW5nKGMucmF3TGVuZ3RoKSk7Yy5ub3JtYWxpemVkTGVuZ3RoJiZkKCJuIixTdHJpbmcoYy5ub3JtYWxpemVkTGVuZ3RoKSk7Yy5sb2NhdGlvbiYmZCgibCIsYy5sb2NhdGlvbik7Yy5zZWxlY3RvciYmZCgicyIsYy5zZWxlY3Rvcik7cmV0dXJuIGUuam9pbigiLiIpfTt2YXIgYXc9dm9pZCAwO2Z1bmN0aW9uIGJ3KCl7aWYoIWF3KXt2YXIgYT1vbShqbS5iYS5vcCxuZXcgTWFwKTthdz1uZXcgb2coYSl9cmV0dXJuIGF3fTsKdmFyIGN3PWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBhO2Zvcih2YXIgYj17fSxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2UhPT0iYWRkcmVzcyImJmUhPT0icGhvbmVfbnVtYmVyIiYmZSE9PSJzaGEyNTZfcGhvbmVfbnVtYmVyIiYmKGJbZV09YVtlXSl9cmV0dXJuIGJ9LGZ3PWZ1bmN0aW9uKGEpe3ZhciBiPU0oNTIzKSxjPVsidHYuMSJdLGQ9WyJ0dmQuMSJdLGU9ZHcoYSk7aWYoZSlyZXR1cm4gYy5wdXNoKGUpLHtoYXNVcGQ6ITEsT286Yy5qb2luKCJ+IiksWW46Yy5qb2luKCJ+IiksZW5jcnlwdGlvbktleVN0cmluZzp2b2lkIDAsaWk6e30sbWV0YWRhdGFQYXJhbTpiP2Quam9pbigifiIpOnZvaWQgMH07dmFyIGY9e30sZz0wO3ZhciBoPTAsbD1ldyhhLGZ1bmN0aW9uKHEscix0KXtoKys7dmFyIHU9cS52YWx1ZSx2OwppZih0KXt2YXIgeD1yKyJfXyIrZysrO3Y9IiR7dXNlckRhdGEuIit4KyJ8c2hhMjU2fSI7Zlt4XT11fWVsc2Ugdj1lbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHUpKTtxLmluZGV4IT09dm9pZCAwJiYocis9cS5pbmRleCk7Yy5wdXNoKHIrIi4iK3YpO2lmKGIpe3ZhciB5PSR2KGgscixxLm1ldGFkYXRhKTt5JiZkLnB1c2goeSl9fSkuaGFzVXBkLG49ZC5qb2luKCJ+Iik7dmFyIHA9Yy5qb2luKCJ+Iik7cmV0dXJue2hhc1VwZDpsLE9vOnAsaWk6e3VzZXJEYXRhOmZ9LFluOiJ0di4xfiR7IisocCsifCIrKE0oNTU1KT8iZW5jcnlwdF93aXRoX21lbW8iOiJlbmNyeXB0IikrIn0iKSxlbmNyeXB0aW9uS2V5U3RyaW5nOkUoNDMpLG1ldGFkYXRhUGFyYW06Yj9uOnZvaWQgMH19LGh3PWZ1bmN0aW9uKGEpe2lmKCEoYSE9bnVsbCYmT2JqZWN0LmtleXMoYSkubGVuZ3RoPjApKXJldHVybiExOwp2YXIgYj1ndyhhKTtyZXR1cm4gZXcoYixmdW5jdGlvbigpe30pLmhhc1VwZH0sZXc9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ZnVuY3Rpb24oKXt9OmI7Zm9yKHZhciBjPSExLGQ9ITEsZT1tKGEpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKGcudmFsdWUpe3ZhciBoPWl3W2cubmFtZV07aWYoaCl7dmFyIGw9ancoZyk7bCYmKGM9ITApO2Q9ITA7YihnLGgsbCl9fX1yZXR1cm57aGFzVXBkOmQsaGFzVXBkVG9IYXNoOmN9fSxqdz1mdW5jdGlvbihhKXt2YXIgYj1rdyhhLm5hbWUpLGM9L15lXGQrJC8udGVzdChhLnZhbHVlKSxkO2lmKGQ9YiYmIWMpe3ZhciBlPWEudmFsdWU7ZD0hKGx3LnRlc3QoZSl8fHlpLnRlc3QoZSkpfXJldHVybiBkfSxrdz1mdW5jdGlvbihhKXtyZXR1cm4gbXcuaW5kZXhPZihhKSE9PS0xfSxzdz1mdW5jdGlvbihhLGIsYyl7aWYoeWIoQS5Qcm9taXNlKSl0cnl7dmFyIGQ9ITE7dmFyIGU9Z3coYSxkKSxmPW53KGUpLnRoZW4oZnVuY3Rpb24oaCl7dmFyIGw9aC55YixuPWwuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFTYihxLm5hbWUsInJhdyIpfSkscD1vdyh7eWI6bn0pO3JldHVybntyZXN1bHQ6e3BhcmFtOnAucGFyYW0saGFzVXBkVG9IYXNoOnAuaGFzVXBkVG9IYXNoLGhhc1VwZDpwLmhhc1VwZCxoYWRFcnJvcjpwLmhhZEVycm9yLG1ldGFkYXRhUGFyYW06cC5tZXRhZGF0YVBhcmFtfSx5YjpsfX0pO3JldHVybiBmLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJuIGgucmVzdWx0fSl9Y2F0Y2goaCl7fX0scXc9ZnVuY3Rpb24oYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifSxvdz1mdW5jdGlvbihhKXt2YXIgYj1NKDUyMyksYz1hLnliLGQ9WyJ0di4xIl0sZT1bInR2ZC4xIl0sZj1kdyhjKTtpZihmKXJldHVybiBkLnB1c2goZikse3BhcmFtOmQuam9pbigifiIpLGhhc1VwZFRvSGFzaDohMSxoYXNVcGQ6ITEsaGFkRXJyb3I6ITAsbWV0YWRhdGFQYXJhbTpiP2Uuam9pbigifiIpOnZvaWQgMH07dmFyIGc9Yy5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIWp3KHEpfSksaD0wLGw9ZXcoZyxmdW5jdGlvbihxLHIpe2grKzt2YXIgdD1xLnZhbHVlLHU9cS5pbmRleDt1IT09dm9pZCAwJiYocis9dSk7ZC5wdXNoKHIrIi4iK3QpO2lmKGIpe3ZhciB2PSR2KGgscixxLm1ldGFkYXRhKTt2JiZlLnB1c2godil9fSksbj1sLmhhc1VwZFRvSGFzaCxwPWwuaGFzVXBkO3JldHVybntwYXJhbTplbmNvZGVVUklDb21wb25lbnQoZC5qb2luKCJ+IikpLApoYXNVcGRUb0hhc2g6bixoYXNVcGQ6cCxoYWRFcnJvcjohMSxtZXRhZGF0YVBhcmFtOmI/ZS5qb2luKCJ+Iik6dm9pZCAwfX0sZHc9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xJiZhWzBdLm5hbWU9PT0iZXJyb3JfY29kZSIpcmV0dXJuIGl3LmVycm9yX2NvZGUrIi4iK2FbMF0udmFsdWV9LHB3PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MSYmYVswXS5uYW1lPT09ImVycm9yX2NvZGUiKXJldHVybiExO2Zvcih2YXIgYj1tKGEpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKGl3W2QubmFtZV0mJmQudmFsdWUpcmV0dXJuITB9cmV0dXJuITF9LGd3PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9W107aWYoQS5sb2NhdGlvbi5wcm90b2NvbCE9PSJodHRwczoiKXJldHVybiBjLnB1c2goe25hbWU6ImVycm9yX2NvZGUiLHZhbHVlOiJlMyIsaW5kZXg6dm9pZCAwfSksYzt2YXIgZD1jLnB1c2gsZT1kLmFwcGx5LGY9W10sCmc9Zi5jb25jYXQsaCxsPWEuX3RhZ19tZXRhZGF0YXx8e307aD1bXS5jb25jYXQodyh0dyh7bmFtZToiZW1haWwiLHJhdzphLmVtYWlsLFNhOmEuc2hhMjU2X2VtYWlsX2FkZHJlc3MsYWI6bC5lbWFpbCxtZDpsLnNoYTI1Nl9lbWFpbF9hZGRyZXNzfSx1dykpLHcodHcoe25hbWU6InBob25lX251bWJlciIscmF3OmEucGhvbmVfbnVtYmVyLFNhOmEuc2hhMjU2X3Bob25lX251bWJlcixhYjpsLnBob25lX251bWJlcixtZDpsLnNoYTI1Nl9waG9uZV9udW1iZXJ9LHZ3KSkpO3ZhciBuPXcoaCkscCxxPWEuX3RhZ19tZXRhZGF0YXx8e30scj1hLmhvbWVfYWRkcmVzc3x8e30sdD1yLl90YWdfbWV0YWRhdGF8fHt9O3A9W10uY29uY2F0KHcodHcoe25hbWU6ImZpcnN0X25hbWUiLHJhdzphLmZpcnN0X25hbWUsU2E6YS5zaGEyNTZfZmlyc3RfbmFtZSxhYjpxLmZpcnN0X25hbWUsbWQ6cS5zaGEyNTZfZmlyc3RfbmFtZX0sd3coeHcpKSksdyh0dyh7bmFtZToibGFzdF9uYW1lIixyYXc6YS5sYXN0X25hbWUsClNhOmEuc2hhMjU2X2xhc3RfbmFtZSxhYjpxLmxhc3RfbmFtZSxtZDpxLnNoYTI1Nl9sYXN0X25hbWV9LHd3KHh3KSkpLHcodHcoe25hbWU6InN0cmVldCIscmF3OnIuc3RyZWV0LFNhOnIuc2hhMjU2X3N0cmVldCxhYjp0LnN0cmVldCxtZDp0LnNoYTI1Nl9zdHJlZXR9LHd3KHl3KSkpLHcodHcoe25hbWU6ImNpdHkiLHJhdzpyLmNpdHksYWI6dC5jaXR5fSx3dyh5dykpKSx3KHR3KHtuYW1lOiJwb3N0YWxfY29kZSIscmF3OnIucG9zdGFsX2NvZGUsYWI6dC5wb3N0YWxfY29kZX0sd3coencpKSksdyh0dyh7bmFtZToicmVnaW9uIixyYXc6ci5yZWdpb24sYWI6dC5yZWdpb259LHd3KHl3KSkpLHcodHcoe25hbWU6ImNvdW50cnkiLHJhdzpyLmNvdW50cnksYWI6dC5jb3VudHJ5fSx3dyh6dykpKSk7Zm9yKHZhciB1PXcocCksdj1bXSx4PUJiKGEuYWRkcmVzc3x8e30pLHk9MDt5PHgubGVuZ3RoO3krKyl7Zm9yKHZhciB6PXhbeV0sQz16Ll90YWdfbWV0YWRhdGF8fHt9LEQ9W10uY29uY2F0KHcodHcoe25hbWU6ImZpcnN0X25hbWUiLApyYXc6ei5maXJzdF9uYW1lLFNhOnouc2hhMjU2X2ZpcnN0X25hbWUsYWI6Qy5maXJzdF9uYW1lLG1kOkMuc2hhMjU2X2ZpcnN0X25hbWV9LHh3KSksdyh0dyh7bmFtZToibGFzdF9uYW1lIixyYXc6ei5sYXN0X25hbWUsU2E6ei5zaGEyNTZfbGFzdF9uYW1lLGFiOkMubGFzdF9uYW1lLG1kOkMuc2hhMjU2X2xhc3RfbmFtZX0seHcpKSx3KHR3KHtuYW1lOiJzdHJlZXQiLHJhdzp6LnN0cmVldCxTYTp6LnNoYTI1Nl9zdHJlZXQsYWI6Qy5zdHJlZXQsbWQ6Qy5zaGEyNTZfc3RyZWV0fSx5dykpLHcodHcoe25hbWU6ImNpdHkiLHJhdzp6LmNpdHksYWI6Qy5jaXR5fSx5dykpLHcodHcoe25hbWU6InBvc3RhbF9jb2RlIixyYXc6ei5wb3N0YWxfY29kZSxhYjpDLnBvc3RhbF9jb2RlfSx6dykpLHcodHcoe25hbWU6InJlZ2lvbiIscmF3OnoucmVnaW9uLGFiOkMucmVnaW9ufSx5dykpLHcodHcoe25hbWU6ImNvdW50cnkiLHJhdzp6LmNvdW50cnksYWI6Qy5jb3VudHJ5fSx6dykpKSxJPTA7STwKRC5sZW5ndGg7SSsrKURbSV0uaW5kZXg9eTt2LnB1c2guYXBwbHkodix3KEQpKX1lLmNhbGwoZCxjLGcuY2FsbChmLG4sdSx3KHYpKSk7aWYoYiYmQnAoKSl7dmFyIEc9Yy5wdXNoLE49Ry5hcHBseSxTPVtdO1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZW1haWwiLHJhdzphLmVtYWlsLFNhOmEuc2hhMjU2X2VtYWlsX2FkZHJlc3N9KSksdyhBdyh7bmFtZToicmF3X3Bob25lX251bWJlciIscmF3OmEucGhvbmVfbnVtYmVyLFNhOmEuc2hhMjU2X3Bob25lX251bWJlcn0pKSkpO2Zvcih2YXIgVz1CYihhLmFkZHJlc3N8fHt9KSxlYT0wO2VhPFcubGVuZ3RoO2VhKyspe3ZhciBqYT1XW2VhXTtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2ZpcnN0X25hbWUiLHJhdzpqYS5maXJzdF9uYW1lLFNhOmphLnNoYTI1Nl9maXJzdF9uYW1lfSxlYSkpLHcoQXcoe25hbWU6InJhd19sYXN0X25hbWUiLHJhdzpqYS5sYXN0X25hbWUsU2E6amEuc2hhMjU2X2xhc3RfbmFtZX0sCmVhKSksdyhBdyh7bmFtZToicmF3X3N0cmVldCIscmF3OmphLnN0cmVldCxTYTpqYS5zaGEyNTZfc3RyZWV0fSxlYSkpKSl9aWYoYS5maXJzdF9uYW1lfHxhLmhvbWVfYWRkcmVzcyl7Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19maXJzdF9uYW1lIixyYXc6YS5maXJzdF9uYW1lLFNhOmEuc2hhMjU2X2ZpcnN0X25hbWV9KSksdyhBdyh7bmFtZToicmF3X2xhc3RfbmFtZSIscmF3OmEubGFzdF9uYW1lLFNhOmEuc2hhMjU2X2xhc3RfbmFtZX0pKSkpO3ZhciBmYT1hLmhvbWVfYWRkcmVzc3x8e307Uy5wdXNoLmFwcGx5KFMsdyhBdyh7bmFtZToicmF3X3N0cmVldCIscmF3OmZhLnN0cmVldCxTYTpmYS5zaGEyNTZfc3RyZWV0fSkpKX1OLmNhbGwoRyxjLHcoUykpfXJldHVybiBjfSx3dz1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7UCg2NCk7cmV0dXJuIGEoYil9fSxBdz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2lmKGEuU2EpcmV0dXJuIGM7Zm9yKHZhciBkPQpCYihhLnJhdyksZT0wO2U8ZC5sZW5ndGg7KytlKXt2YXIgZj1CdyhkW2VdKTtpZihmJiYheWkudGVzdChmKSlpZigvXmVcZCskLy50ZXN0KGYpKWMucHVzaCh7bmFtZTphLm5hbWUsdmFsdWU6ZixpbmRleDpifSk7ZWxzZXt2YXIgZz1jLGg9Zy5wdXNoLGw9YS5uYW1lLG47dmFyIHA9QTt0cnl7bj1CaShBcnJheS5mcm9tKFpiKGYpKSxwKX1jYXRjaChxKXtuPSJlMCJ9aC5jYWxsKGcse25hbWU6bCx2YWx1ZTpuLGluZGV4OmJ9KX19cmV0dXJuIGN9LHR3PWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1NKDUyMyksZT1hLnJhdyxmPWQ/YS5hYjp2b2lkIDA7Q3coZSwhMSk7YS5TYSYmKGUmJlAoOTApLGU9YS5TYSxmPWQ/YS5tZDp2b2lkIDAsQ3coZSwhMCkpO2Zvcih2YXIgZz1CYihlKSxoPUJiKGYpLGw9MDtsPGcubGVuZ3RoOysrbCl7dmFyIG47dmFyIHA9YS5uYW1lLHE9YixyPWhbbF0sdD1CdyhnW2xdKTtpZih0IT09IiIpaWYoeWkudGVzdCh0KSl7ciYmKHIuaXNQcmVIYXNoZWQ9ITApOwp2YXIgdT17bmFtZTpwLHZhbHVlOnQsaW5kZXg6dm9pZCAwfTtyJiYodS5tZXRhZGF0YT1yKTtuPXV9ZWxzZXt2YXIgdj1xKHQpLHg9e25hbWU6cCx2YWx1ZTp2LGluZGV4OnZvaWQgMH07ciYmKHgubWV0YWRhdGE9cix2JiYoci5yYXdMZW5ndGg9U3RyaW5nKHQpLmxlbmd0aCxyLm5vcm1hbGl6ZWRMZW5ndGg9di5sZW5ndGgpKTtuPXh9ZWxzZSBuPXZvaWQgMDt2YXIgeT1uO3kmJmMucHVzaCh5KX1yZXR1cm4gY30sQ3c9ZnVuY3Rpb24oYSxiKXtpZih6YihhKXx8QXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9QmIoYSksZD0wO2Q8Yy5sZW5ndGg7KytkKXt2YXIgZT1CdyhjW2RdKSxmPXlpLnRlc3QoZSk7YiYmIWYmJlAoODkpOyFiJiZmJiZQKDg4KX19LER3PWZ1bmN0aW9uKGEpe3ZhciBiPWE/Z3coYSk6W107cmV0dXJuIG93KHt5YjpifSl9LEV3PWZ1bmN0aW9uKGEpe3JldHVybiBhJiZhIT1udWxsJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCYmeWIoQS5Qcm9taXNlKT9ndyhhKS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiYKa3coYi5uYW1lKSYmIXlpLnRlc3QoYi52YWx1ZSl9KTohMX0sQnc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/IiI6emIoYSk/TGIoU3RyaW5nKGEpKToiZTAifSx6dz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKEZ3LCIiKX0seHc9ZnVuY3Rpb24oYSl7cmV0dXJuIHl3KGEucmVwbGFjZSgvXHMvZywiIikpfSx5dz1mdW5jdGlvbihhKXtyZXR1cm4gTGIoYS5yZXBsYWNlKEd3LCIiKS50b0xvd2VyQ2FzZSgpKX0sdnc9ZnVuY3Rpb24oYSl7YT1hLnJlcGxhY2UoL1tccy0oKS8uXS9nLCIiKTthLmNoYXJBdCgwKSE9PSIrIiYmKGE9IisiK2EpO3JldHVybihNKDU5Nyk/SHc6SXcpLnRlc3QoYSk/YToiZTAifSx1dz1mdW5jdGlvbihhKXt2YXIgYj1hLnRvTG93ZXJDYXNlKCkuc3BsaXQoIkAiKTtpZihiLmxlbmd0aD09PTIpe3ZhciBjPWJbMF07L14oZ21haWx8Z29vZ2xlbWFpbClcLi8udGVzdChiWzFdKSYmKGM9Yy5yZXBsYWNlKC9cLi9nLCIiKSk7Yz1jKyJAIitiWzFdO2lmKEp3LnRlc3QoYykpcmV0dXJuIGN9cmV0dXJuImUwIn0sCkt3PWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IudmFsdWUmJmt3KGIubmFtZSkmJihiLnZhbHVlPURpKGIudmFsdWUpKX0pLHt5YjphfX1jYXRjaChiKXtyZXR1cm57eWI6W119fX0sbnc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYma3coYi5uYW1lKX0pP3liKEEuUHJvbWlzZSk/UHJvbWlzZS5hbGwoYS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJmt3KGIubmFtZSk/QWkoYi52YWx1ZSkudGhlbihmdW5jdGlvbihjKXtiLnZhbHVlPWN9KTpQcm9taXNlLnJlc29sdmUoKX0pKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJue3liOmF9fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57eWI6W119fSk6e3RoZW46ZnVuY3Rpb24oYil7Yih7eWI6W119KX19OlByb21pc2UucmVzb2x2ZSh7eWI6YX0pfSxHdz0vWzAtOWB+IUAjJCVeJiooKV9cLSs9Ojs8PiwuP3wvXFxbXF1dL2csSnc9L15cUytAXFMrXC5cUyskLywKSXc9L15cK1xkezEwLDE1fSQvLEh3PS9eXCtcZHs3LDE1fSQvLEZ3PS9bLn5dL2csbHc9L15bMC05QS1aYS16Xy1dezQzfSQvLEx3PVsicmVtIiwicnBuIiwicmZuIiwicmxuIiwicnNhIl0sTXc9e30saXc9KE13LmVtYWlsPSJlbSIsTXcucGhvbmVfbnVtYmVyPSJwbiIsTXcuZmlyc3RfbmFtZT0iZm4iLE13Lmxhc3RfbmFtZT0ibG4iLE13LnN0cmVldD0ic2EiLE13LmNpdHk9ImN0IixNdy5yZWdpb249InJnIixNdy5jb3VudHJ5PSJjbyIsTXcucG9zdGFsX2NvZGU9InBjIixNdy5lcnJvcl9jb2RlPSJlYyIsTXcucmF3X2VtYWlsPSJyZW0iLE13LnJhd19waG9uZV9udW1iZXI9InJwbiIsTXcucmF3X2ZpcnN0X25hbWU9InJmbiIsTXcucmF3X2xhc3RfbmFtZT0icmxuIixNdy5yYXdfc3RyZWV0PSJyc2EiLE13KTt2YXIgbXc9T2JqZWN0LmZyZWV6ZShbImVtYWlsIiwKInBob25lX251bWJlciIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJzdHJlZXQiXSk7dmFyIG14PU9iamVjdC5mcmVlemUoe2F0dHJpYnV0aW9uc3JjOiIifSksbng9T2JqZWN0LmZyZWV6ZSh7ZXZlbnRTb3VyY2VFbGlnaWJsZTohMSx0cmlnZ2VyRWxpZ2libGU6ITB9KTtmdW5jdGlvbiBveCgpe3ZhciBhPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZTtyZXR1cm4gYSYmeWIoYS5zZXRBdHRyaWJ1dGlvblJlcG9ydGluZyl9O3ZhciBweD1PYmplY3QuZnJlZXplKHtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixtZXRob2Q6IkdFVCIsa2VlcGFsaXZlOiEwLHJlZGlyZWN0OiJmb2xsb3cifSk7CmZ1bmN0aW9uIHF4KGEsYixjLGQsZSxmKXtpZigheWIoQS5mZXRjaCkpcmV0dXJuIGY9PW51bGx8fGYodm9pZCAwLHZvaWQgMCksITE7dmFyIGc9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxweCk7YiYmKGcuYm9keT1iLGcubWV0aG9kPSJQT1NUIik7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxnLGQpO0EuZmV0Y2goYSxnKS50aGVuKGZ1bmN0aW9uKGgpe2lmKGgub2spe2lmKGguYm9keSl7dmFyIGw9aC5ib2R5LmdldFJlYWRlcigpLG49bmV3IFRleHREZWNvZGVyO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihwKXtmdW5jdGlvbiBxKCl7bC5yZWFkKCkudGhlbihmdW5jdGlvbihyKXt2YXIgdDt0PXIuZG9uZTt2YXIgdT1uLmRlY29kZShyLnZhbHVlLHtzdHJlYW06IXR9KTt1PWMuUit1O2Zvcih2YXIgdj11LmluZGV4T2YoIlxuXG4iKTt2IT09LTE7KXt2YXIgeD1aZyx5O2E6e3ZhciB6PW0odS5zdWJzdHJpbmcoMCx2KS5zcGxpdCgiXG4iKSksQz0Kei5uZXh0KCkudmFsdWUsRD16Lm5leHQoKS52YWx1ZTtpZihTYihDLCJldmVudDogbWVzc2FnZSIpJiZTYihELCJkYXRhOiAiKSl7dmFyIEk9RC5zdWJzdHJpbmcoNik7dHJ5e3k9SlNPTi5wYXJzZShJKTticmVhayBhfWNhdGNoKEcpe319eT12b2lkIDB9eChjLHkpO3U9dS5zdWJzdHJpbmcodisyKTt2PXUuaW5kZXhPZigiXG5cbiIpfWMuUj11O3Q/KGU9PW51bGx8fGUoaCkscCgpKTpxKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PW51bGx8fGUoaCk7cCgpfSl9cSgpfSl9ZT09bnVsbHx8ZShoKX1lbHNlIGY9PW51bGx8fGYoaCx2b2lkIDApfSkuY2F0Y2goZnVuY3Rpb24oaCl7Zj09bnVsbHx8Zih2b2lkIDAsaCl9KTtyZXR1cm4hMH07dmFyIHJ4PWZ1bmN0aW9uKGEpe2h1LmNhbGwodGhpcywiRmV0Y2hSaWNoUmVzcG9uc2UiLDEpO3RoaXMuTj1hfTt3YShyeCxodSk7cngucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHliKEEuZmV0Y2gpfTtyeC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTtyeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7cXgoYixjPT1udWxsP3ZvaWQgMDpjLmJvZHksdGhpcy5OLGM9PW51bGw/dm9pZCAwOmMuR2IsYS5wZSxmdW5jdGlvbihkLGUpe2Eub25GYWlsdXJlKGUpfSl9O3ZhciBDeD1mdW5jdGlvbigpe1lnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoQ3gsWWcpO0N4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7WmMoYSx2b2lkIDAsJGcodGhpcyxiKSxiLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT9teDp7fSl9O0N4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5hdHRyaWJ1dGlvbl9yZXBvcnRpbmcmJm94KCk/e2F0dHJpYnV0aW9uUmVwb3J0aW5nOm54fTp7fSxkPSRnKHRoaXMsYik7Yi5wcm9jZXNzX3Jlc3BvbnNlP3F4KGEsdm9pZCAwLHRoaXMsYyx2b2lkIDAsZCk6bWQoYSx2b2lkIDAsYyx2b2lkIDAsZCl9O3ZhciBReD1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMudGltZW91dE1zPWI7dGhpcy5SYj12b2lkIDB9LFJ4PWZ1bmN0aW9uKGEpe2EuUmJ8fChhLlJiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkgoKTthLlJiPXZvaWQgMH0sYS50aW1lb3V0TXMpKX0sVG49ZnVuY3Rpb24oYSl7YS5SYiYmKGNsZWFyVGltZW91dChhLlJiKSxhLlJiPXZvaWQgMCl9O3ZhciBTeD1mdW5jdGlvbigpe3ZhciBhPU5mKDY2LDApO3RoaXMuSz1bXTt0aGlzLlI9YTt0aGlzLkg9WWEoKX0sVXg9ZnVuY3Rpb24oYSl7dmFyIGI9VHg7Yi5LLnB1c2goYSk7Yi5OfHwoYi5OPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPW0oYi5LKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTt0cnl7ZSgpfWNhdGNoKGwpe319Zm9yKHZhciBmPW0oYi5ILnZhbHVlcygpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9dm9pZCAwOyhoPWcudmFsdWUud2UpPT1udWxsfHxUbihoKX1iLkguY2xlYXIoKX0sJGMoQSwicGFnZWhpZGUiLGIuTikpfSxWeD1mdW5jdGlvbihhKXt2YXIgYj1hLm1hdGNoKE1uKVszXXx8bnVsbCxjPShiP2RlY29kZVVSSShiKTpiKXx8IiIsZD1QbihhLCJsYWJlbCIpfHwiIixlPVBuKGEsInJhbmRvbSIpfHwiIjtyZXR1cm4gYysiOiIrTG4oZCkrIjoiK0xuKGUpfSxXeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VHgsCmU9VngoYSk7aWYoIShkLkguaGFzKGUpfHxkLkguc2l6ZT49ZC5SKSl7dmFyIGY9e307YiYmYj4wJiZjJiYoZi53ZT1uZXcgUXgoYyxiKSk7ZC5ILnNldChlLGYpO3ZhciBnOyhnPWYud2UpPT1udWxsfHxSeChnKX19LFVuPWZ1bmN0aW9uKGEsYil7dmFyIGM9VngoYiksZCxlOyhkPWEuSC5nZXQoYykpPT1udWxsfHwoZT1kLndlKT09bnVsbHx8VG4oZSk7YS5ILmRlbGV0ZShjKX07U3gucHJvdG90eXBlLmdldFNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ILnNpemV9O3ZhciBkZztmdW5jdGlvbiBoeShhLGIpe3ZhciBjOyhjPWRnKT09bnVsbHx8JGYoYy5ILGEsYil9O3ZhciBpeT1BYShbIi8iXSksank9ZnVuY3Rpb24oYSl7dGhpcy5IPWE7dGhpcy5mYWlsdXJlVHlwZT12b2lkIDB9O2p5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuSC5hY3RpdmU7ZD8oZC5wb3N0TWVzc2FnZSh7dHlwZToxLGNvbW1hbmQ6YX0pLGIoe2RhdGE6IiJ9KSk6Yyh7ZmFpbHVyZVR5cGU6MTMsZGF0YToiIn0pfWNhdGNoKGUpe2Moe2ZhaWx1cmVUeXBlOjExLGRhdGE6ZS5tZXNzYWdlfSl9fTt2YXIga3k9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhaWx1cmVUeXBlPWE7dGhpcy5IPWJ9O2t5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7Yyh7ZmFpbHVyZVR5cGU6dGhpcy5mYWlsdXJlVHlwZSxkYXRhOiJmIit0aGlzLmZhaWx1cmVUeXBlKygidCIrKChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuSCkpfSl9Owp2YXIgbnk9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLmluaXRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuSD1uZXcga3koMTUsdGhpcy5pbml0VGltZSk7dmFyIGM9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSgpfSwyMCl9KSxkPWx5KGEpLnRoZW4oZnVuY3Rpb24oZSl7Yi5IPW5ldyBqeShlKTtteShiLGUpfSkuY2F0Y2goZnVuY3Rpb24oKXtiLkg9bmV3IGt5KDQsYi5pbml0VGltZSl9KTt0aGlzLks9UHJvbWlzZS5yYWNlKFtjLGRdKX0sbXk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihkKXtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2lmKGQuc3RhdGU9PT0icmVkdW5kYW50Iil7dmFyIGU9Yi5hY3RpdmU7ZSYmZS5zdGF0ZSE9PSJyZWR1bmRhbnQifHwoYS5IPW5ldyBreSgxMCxhLmluaXRUaW1lKSl9fSl9O2MoYi5hY3RpdmUpO2MoYi53YWl0aW5nKTtjKGIuaW5zdGFsbGluZyk7CmIuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlZm91bmQiLGZ1bmN0aW9uKCl7YyhiLmluc3RhbGxpbmcpfSl9O255LnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLksudGhlbihmdW5jdGlvbigpe2QuSC5pbyhhLGIsYyl9KX07bnkucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIDJ9Owp2YXIgbHk9ZnVuY3Rpb24oYSl7dmFyIGIsYz1MZigxMSk7Yz1MZigxMCk7Yj1jO3ZhciBkPXtzY29wZTooVGIoYS5ocmVmLCIvIik/YS5ocmVmLnNsaWNlKDAsLTEpOmEuaHJlZikrIi9fL3NlcnZpY2Vfd29ya2VyIn07YiYmKGQudXBkYXRlVmlhQ2FjaGU9ImFsbCIpO3ZhciBlLGY9b3koYSxiKSxnPW5ldyBNYXAoW1sicGF0aCIsYS5wYXRobmFtZV1dKSxoPUpwKGtjKGYpLnRvU3RyaW5nKCkpO2U9THAoaC56ayxoLnBhcmFtcyxoLmZyYWdtZW50LGcpO3ZhciBsPUljKCksbj1rYyhlKTt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobixkKX1jYXRjaChwKXt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobi50b1N0cmluZygpLGQpfWNhdGNoKHEpe3JldHVybiBQcm9taXNlLnJlamVjdChxKX19fTsKZnVuY3Rpb24gb3koYSxiKXtmb3IodmFyIGM9S3AoaXkpLGQ9YS5wYXRobmFtZS5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gaC5sZW5ndGg+MH0pLGU9W10uY29uY2F0KHcoZCksWyJfIiwic2VydmljZV93b3JrZXIiLGIsInN3LmpzIl0pLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSljPU1wKGMsZy52YWx1ZSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHB5KGEpe3ZhciBiPW5tKGptLmJhLk9oKSxjPWI9PW51bGw/dm9pZCAwOmJbYV07Y3x8YSE9PSJsaXRlInx8KGM9Yj09bnVsbD92b2lkIDA6Yi5mdWxsKTtyZXR1cm4gY312YXIgcXk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXB5KCJmdWxsIik7ZD9kLmRlbGVnYXRlKGEsYixjKTpjKHtmYWlsdXJlVHlwZToxNn0pfTtmdW5jdGlvbiByeShhLGIsYyxkLGUpe3F5KHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOjEsdGVtcGxhdGVzOmIsYm9keToiIixwcm9jZXNzUmVzcG9uc2U6ITEsZW5jcnlwdGlvbktleVN0cmluZzplLHNvUmVmZXJyZXI6QS5sb2NhdGlvbi5ocmVmfX0sYyxmdW5jdGlvbihmKXtkKGYuZmFpbHVyZVR5cGUsZi5kYXRhKX0pfTt2YXIgRHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO3RoaXMuSz0hMTtNKDQ2MikmJlVtKCJmcyIsZnVuY3Rpb24oKXtyZXR1cm4gYS5IPjAmJmEuSDw1P1N0cmluZyhhLkgpOnZvaWQgMH0sITEpfSxFeTtmdW5jdGlvbiBGeShhLGIpe0V5fHwoRXk9bmV3IER5KTt2YXIgYz1FeTtNKDQ2MikmJmZuLksmJihiPT09Imd0bS5mb3JtU3VibWl0Inx8Yj09PSJmb3JtX3N1Ym1pdCImJklmKDQ1KSkmJihhPT09MXx8Yy5LKSYmKGMuSz0hMCxjLkg9YSxhIT09NT9WbSgiZnMiKTpRbS5ILmZzPSExKX07dmFyIEd5PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkthKXt2YXIgYj1mdShhKTtpZighTSg0MjcpJiYoanAoYSxiKXx8UShhLEguSi5oZCkpJiZYbyhmcCkpe3ZhciBjPWxwKGEsYik7aWYoYyl7dmFyIGQ9Tm0oNjksYyk7VGwoZCxhLDY5KTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OjY5LGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCl9fXZhciBlPXliKGEuTS5vblN1Y2Nlc3MpP2EuTS5vblN1Y2Nlc3M6eGI7JHUoYSxiKTtlKCl9fTt2YXIgSHk9e1g6e1dxOjAsRWs6MSxaZzoyLFhrOjMsbWk6NCxWazo1LFdrOjYsWWs6NyxuaTo4LHRtOjksc206MTAsVGk6MTEsdm06MTIsQmg6MTMsRW06MTQsaWo6MTUsU3E6MTYsamQ6MTcsdWo6MTgsdmo6MTksd2o6MjAsQ246MjEseGo6MjJ9fTtIeS5YW0h5LlguV3FdPSJSRVNFUlZFRF9aRVJPIjtIeS5YW0h5LlguRWtdPSJBRFNfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5aZ109IkNPTlRBSU5FUl9FWEVDVVRFX1NUQVJUIjtIeS5YW0h5LlguWGtdPSJDT05UQUlORVJfU0VUVVBfRU5EIjtIeS5YW0h5LlgubWldPSJDT05UQUlORVJfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5Wa109IkNPTlRBSU5FUl9CTE9DS0lOR19FTkQiO0h5LlhbSHkuWC5Xa109IkNPTlRBSU5FUl9FWEVDVVRFX0VORCI7SHkuWFtIeS5YLllrXT0iQ09OVEFJTkVSX1lJRUxEX0VORCI7SHkuWFtIeS5YLm5pXT0iQ09OVEFJTkVSX1lJRUxEX1NUQVJUIjtIeS5YW0h5LlgudG1dPSJFVkVOVF9FWEVDVVRFX0VORCI7Ckh5LlhbSHkuWC5zbV09IkVWRU5UX0VWQUxVQVRJT05fRU5EIjtIeS5YW0h5LlguVGldPSJFVkVOVF9FVkFMVUFUSU9OX1NUQVJUIjtIeS5YW0h5Llgudm1dPSJFVkVOVF9TRVRVUF9FTkQiO0h5LlhbSHkuWC5CaF09IkVWRU5UX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguRW1dPSJHQTRfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5pal09IlBBR0VfTE9BRCI7SHkuWFtIeS5YLlNxXT0iUEFHRVZJRVciO0h5LlhbSHkuWC5qZF09IlNOSVBQRVRfTE9BRCI7SHkuWFtIeS5YLnVqXT0iVEFHX0NBTExCQUNLX0VSUk9SIjtIeS5YW0h5LlgudmpdPSJUQUdfQ0FMTEJBQ0tfRkFJTFVSRSI7SHkuWFtIeS5YLndqXT0iVEFHX0NBTExCQUNLX1NVQ0NFU1MiO0h5LlhbSHkuWC5Dbl09IlRBR19FWEVDVVRFX0VORCI7SHkuWFtIeS5YLnhqXT0iVEFHX0VYRUNVVEVfU1RBUlQiO3ZhciBJeT17fTtJeS5YPUh5Llg7dmFyIEp5PXtSdToiTCIsWHE6IlMiLGt2OiJZIixSdDoiQiIsbnU6IkUiLE51OiJJIixmdjoiVEMiLHZ1OiJIVEMiLG91OiJGIixNdToiQyJ9LEt5PXtYcToiUyIsbHU6IlYiLGF1OiJFIixkdjoidGFnIn0sTHk9e30sTXk9KEx5W0l5LlgudmpdPSI2IixMeVtJeS5YLndqXT0iNSIsTHlbSXkuWC51al09IjciLEx5KTtmdW5jdGlvbiBOeShhKXt2YXIgYj1FKDUpLGM9TnVtYmVyKGEuZXZlbnRJZCksZD1OdW1iZXIoYS50YWdJZCk7cmV0dXJuKFNiKGIsIkdUTS0iKT9iOiJHVE0tIitiKSsiOiIrKEFiKGMpP2MrIjoiOiIiKSsoQWIoZCk/ZCsiOiI6IiIpK2Euc3RhZ2V9O2Z1bmN0aW9uIE95KCl7dmFyIGE9cmQoKTtyZXR1cm4hIShhJiZhLm1hcmsgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5tZWFzdXJlIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNZWFzdXJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWFya3MgaW5zdGFuY2VvZiBGdW5jdGlvbil9O3ZhciBQeT1mdW5jdGlvbigpe3RoaXMuSD17fX0sUXk7ZnVuY3Rpb24gUnkoKXtReXx8KFF5PW5ldyBQeSk7cmV0dXJuIFF5fWZ1bmN0aW9uIFN5KGEpe3ZhciBiPVJ5KCksYz1OeShhKTtyZXR1cm4gYi5IW2NdfWZ1bmN0aW9uIFR5KGEsYil7dmFyIGM7YTp7dmFyIGQ9UnkoKTtpZihPeSgpKXt2YXIgZT1OeShhKSxmLGc7aWYoZj0oZz1yZCgpKT09bnVsbD92b2lkIDA6Zy5tYXJrKGUsYikpe2M9ZC5IW2VdPWY7YnJlYWsgYX19Yz12b2lkIDB9cmV0dXJuIGN9O2Z1bmN0aW9uIFV5KGEsYil7aWYoT3koKSl7YS5lbnRyeT1OeShhKTt2YXIgYz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpO2Muc3RhZ2U9YjtkZWxldGUgYy5zZW50O3ZhciBkPVN5KGI9PT1JeS5YLmpkP3tzdGFnZTpJeS5YLmpkfTpjKSxlPVN5KGEpO2lmKGQmJmUmJiEoZC5zdGFydFRpbWU+ZS5zdGFydFRpbWUpKXtjLnN0YWdlPWIrIjoiK2Euc3RhZ2U7dmFyIGY9TnkoYyksZz17c3RhcnQ6ZC5uYW1lLGVuZDplLm5hbWV9LGgsbDtyZXR1cm4obD0oaD1yZCgpKT09bnVsbD92b2lkIDA6aC5tZWFzdXJlKGYsZykpPT1udWxsP3ZvaWQgMDpsLmR1cmF0aW9ufX19O3ZhciBXeT1mdW5jdGlvbigpe3ZhciBhPTU7VnkuUm8+MCYmKGE9VnkuUm8pO3RoaXMuSz1hO3RoaXMuSD0wO3RoaXMuTj1bXX0sWHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuSDxhLks/ITE6TmIoKS1hLk5bYS5IJWEuS108MUUzfSxZeT1mdW5jdGlvbihhKXt2YXIgYj1hLkgrKyVhLks7YS5OW2JdPU5iKCl9O3ZhciBWeT17Um86TmYoMywwKX0sJHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMueWE9W107dGhpcy5IPXZvaWQgMDt0aGlzLlo9e307dGhpcy5LPXZvaWQgMDt0aGlzLmphPW5ldyBXeTt0aGlzLkxhPTFFMzt0aGlzLlI9dGhpcy5OPSExO3RoaXMuZmE9RGIoKTtaeSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGI9W1sidiIsIjMiXSxbInQiLCJ0Il0sWyJwaWQiLFN0cmluZyhhLmZhKV1dLGM9ZHUoKTtjJiZiLnB1c2goWyJndG0iLGNdKTtyZXR1cm4gYn0pO2NkKGZ1bmN0aW9uKCl7YS5mYT1EYigpfSw4NjRFNSl9LFp5PWZ1bmN0aW9uKGEsYil7YS55YS5wdXNoKGIpfSxhej1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5IO2lmKGQ9PT12b2lkIDApaWYoYylkPXJqKCk7ZWxzZSByZXR1cm4iIjtmb3IodmFyIGU9W2ZrKCJodHRwczovLyIrRSgyMSkpLCIvYSIsIj9pZD0iK0UoNSldLGY9bShhLnlhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPQpoKHtldmVudElkOmQsdGY6ISFifSksbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1tKHAudmFsdWUpLHI9cS5uZXh0KCkudmFsdWUsdD1xLm5leHQoKS52YWx1ZTtlLnB1c2goIiYiK3IrIj0iK3QpfWUucHVzaCgiJno9MCIpO3JldHVybiBlLmpvaW4oIiIpfSxiej1mdW5jdGlvbihhKXtpZigkaygyNikmJihhLksmJihBLmNsZWFyVGltZW91dChhLkspLGEuSz12b2lkIDApLGEuSCE9PXZvaWQgMCYmYS5SKSl7dmFyIGI9bG8oY28uaWEuWmIpO2lmKGdvKGIpKWEuTnx8KGEuTj0hMCxpbyhiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9KSk7ZWxzZSBpZihhLlpbYS5IXXx8WHkoYS5qYSl8fGEuTGEtLTw9MClQKDEpLGEuWlthLkhdPSEwO2Vsc2V7WXkoYS5qYSk7dmFyIGM9YXooYSwhMCk7WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmEuSH0sYyk7YS5SPSExO2EuTj0hMX19fSxjej1mdW5jdGlvbihhKXthLkt8fChhLks9CkEuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSw1MDApKX0sZXo9ZnVuY3Rpb24oYSl7dmFyIGI9ZHo7Yi5aW2FdfHwoYSE9PWIuSCYmKGJ6KGIpLGIuSD1hKSxiLlI9ITAsY3ooYiksYXooYikubGVuZ3RoPj0yMDIyJiZieihiKSl9LGR6O2Z1bmN0aW9uIGZ6KGEpe2d6KCk7WnkoZHosYSl9ZnVuY3Rpb24gaHooKXt2YXIgYTthPWE9PT12b2lkIDA/ITE6YTtneigpO3ZhciBiPWEsYz1kejtiPWI9PT12b2lkIDA/ITE6YjtpZihmbi5OJiYkaygyNikpe3ZhciBkPWF6KGMsITAsITApO2I/Vm4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCk6WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCl9fWZ1bmN0aW9uIGd6KCl7ZHp8fChkej1uZXcgJHkpfTtmdW5jdGlvbiBpeigpe2Z1bmN0aW9uIGEoYyxkKXt2YXIgZT13YihyYltkXXx8W10pO2UmJmIucHVzaChbYyxlXSl9dmFyIGI9W107YSgidSIsIkdUTSIpO2EoInV0IiwiVEFHR0lORyIpO2EoImgiLCJIRUFMVEgiKTtyZXR1cm4gYn07dmFyIGp6PSJodHRwczovLyIrRSgyMSksa3o9ZnVuY3Rpb24oKXt0aGlzLk49ITE7dGhpcy5SPVtdO3RoaXMuWj1bXTt0aGlzLkg9e1RDOjAsSFRDOjB9O3RoaXMuSz17fX0sbHo9ZnVuY3Rpb24oYSxiLGMsZCl7YS5LW2JdfHwoYS5LW2JdPXt9KTthLktbYl1bY109ZH0sb3o9ZnVuY3Rpb24oYSl7dmFyIGI9IiIsYz0iIixkPW16KCk7QWIoZCkmJihhLkguST1NYXRoLmZsb29yKGQpKTtjPW56KGEuSCxKeSkudG9TdHJpbmcoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhhLkspKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWEuS1tnXS5uYW1lLGw9IiIsbj1ueihhLktbZ10sS3kpO24mJihsPWgrIi4iK24udG9TdHJpbmcoKSxiKz0ifiIrbCl9dmFyIHA9In5BV0NUIithLlIuam9pbigiLiIpLHE9In5HQSIrYS5aLmpvaW4oIi4iKSxyPSImY2NpZD0iK3ZrKCkudG9TdHJpbmcoKSsiJmNpZD0iK0UoNSkudG9TdHJpbmcoKSsiJmw9IitjK2IrKGEuUi5sZW5ndGg/CnA6IiIpKyhhLloubGVuZ3RoP3E6IiIpO2lmKE0oMjE0KSl7dmFyIHQsdT0odD1yZCgpKT09bnVsbD92b2lkIDA6dC5nZXRFbnRyaWVzQnlOYW1lKEtjKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIFN0cmluZyh2LmR1cmF0aW9uKX0pLmpvaW4oIi4iKTt1JiYocis9In5TUyIrdSl9cmV0dXJuIHJ9LHB6PWZ1bmN0aW9uKGEsYil7aWYoIWIuc3RhZ2V8fGEuTnx8IU95KCl8fFN5KGIpKXJldHVybiExO3ZhciBjLGQ9KGM9cmQoKSk9PW51bGw/dm9pZCAwOmMudGltZU9yaWdpbjtpZighQWIoZCkpYS5OPSEwO2Vsc2UgaWYoQWIoJGsoMjUpKSYmIVN5KHtzdGFnZTpJeS5YLmpkfSkmJiFhLk4mJk95KCkpdHJ5e3ZhciBlPU51bWJlcigkaygyNSkpO1R5KHtzdGFnZTpJeS5YLmpkfSx7c3RhcnRUaW1lOk1hdGgubWF4KGUtZCwwKX0pO1R5KHtzdGFnZTpJeS5YLmlqfSx7c3RhcnRUaW1lOjB9KTt2YXIgZj1VeSh7c3RhZ2U6SXkuWC5qZH0sSXkuWC5paik7ZiYmKGEuSC5MPU1hdGguZmxvb3IoZikpfWNhdGNoKGcpe2EuTj0KITB9aWYoYS5OKXJldHVybiExO3RyeXtpZighVHkoYikpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuIGEuTj0hMCwhMX1yZXR1cm4hMH0scXo9ZnVuY3Rpb24oYSxiLGMpe2lmKHB6KGEsYikpdHJ5e3ZhciBkPVV5KGIsYyk7aWYoZClyZXR1cm4gTWF0aC5mbG9vcihkKX1jYXRjaChlKXthLk49ITB9fSxzej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5taX0pfSx0ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCksYj1xeihhLHtzdGFnZTpJeS5YLlhrfSxJeS5YLm1pKTtiIT09dm9pZCAwJiYoYS5ILlM9Yil9LHV6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm5pfSl9LHZ6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLkJoLGV2ZW50SWQ6YX0pO2MuS1thXSYmYy5LW2FdLm5hbWV8fGx6KGMsYSwibmFtZSIsU2IoYiwiZ3RtLiIpP2I6IioiKX0sd3o9ZnVuY3Rpb24oYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llgudm0sCmV2ZW50SWQ6YX0sSXkuWC5CaCk7YyE9PXZvaWQgMCYmbHooYixhLCJTIixjKX0seXo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpLGQ9cXooYyx7c3RhZ2U6SXkuWC50bSxldmVudElkOmF9LEl5LlguQmgpO2QhPT12b2lkIDAmJmx6KGMsYSwiRSIsZCk7aWYoYj09PSJndG0ubG9hZCIpe3ZhciBlPXF6KGMse3N0YWdlOkl5LlguV2t9LEl5LlguWmcpO2UhPT12b2lkIDAmJihjLkguRT1lKTtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtpZighYy5OJiZPeSgpJiZFKDUpKXt2YXIgZj14eigpO2YhPT12b2lkIDAmJihjLkguRj1NYXRoLmZsb29yKGYpKTt0cnl7Zm9yKHZhciBnPWl6KHtldmVudElkOjAsdGY6ITF9KSxoPVtdLGw9bShnKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bShuLnZhbHVlKSxxPXAubmV4dCgpLnZhbHVlLHI9cC5uZXh0KCkudmFsdWU7aC5wdXNoKCImIitxKyI9IityKX12YXIgdD1DcCgpLHU9W1tmayhqeiksIi9hP3Y9MyZ0PWwiLCImcGlkPSIrCkRiKCkudG9TdHJpbmcoKSwiJnJ2PSIrRSgxNCksdD8iJnRhZ19leHA9Iit0OiIiLGguam9pbigiIildLmpvaW4oIiIpLCImZ3RtPSIsZHUoKSxveihjKV0uam9pbigiIik7aWYodS5sZW5ndGg+MjAyMil7dmFyIHY9TWF0aC5tYXgodS5sYXN0SW5kZXhPZigiLlRTIiwyMDIyKSx1Lmxhc3RJbmRleE9mKCJ+IiwyMDIyKSk7dT11LnNsaWNlKDAsdil9WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1Nn0sdSl9Y2F0Y2goeCl7fX19KX19LHp6O2Z1bmN0aW9uIHJ6KCl7enp8fCh6ej1uZXcga3opO3JldHVybiB6en1mdW5jdGlvbiBteigpe3RyeXt2YXIgYTtyZXR1cm4oKGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpWzBdKS5kb21JbnRlcmFjdGl2ZX1jYXRjaChiKXt9fQpmdW5jdGlvbiBueihhLGIpe3JldHVybiBPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGJbY119KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGFbY10hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuKCIiKyhjPT09InRhZyI/IiI6YykpLmNvbmNhdChhW2NdLnRvU3RyaW5nKCkpfSkuam9pbigiLiIpfWZ1bmN0aW9uIEF6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVtLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5aLnB1c2goYyl9ZnVuY3Rpb24gQnooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRWssZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLlIucHVzaChjKX1mdW5jdGlvbiBDeihhKXt2YXIgYj1yeigpO3B6KGIse3N0YWdlOkl5LlguVGksZXZlbnRJZDphfSl9CmZ1bmN0aW9uIER6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnNtLGV2ZW50SWQ6YX0sSXkuWC5UaSk7YyE9PXZvaWQgMCYmbHooYixhLCJWIixjKX1mdW5jdGlvbiB4eigpe3RyeXt2YXIgYSxiO3JldHVybihiPShhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoInBhaW50IikuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5uYW1lPT09ImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQifSkpPT1udWxsP3ZvaWQgMDpiLnN0YXJ0VGltZX1jYXRjaChjKXt9fWZ1bmN0aW9uIEV6KGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLnhqLGV2ZW50SWQ6YS5pZCx0YWdJZDpOdW1iZXIoYltHZi55al0pfSl9CmZ1bmN0aW9uIEZ6KGEsYixjKXt2YXIgZD1yeigpLGU9ZG4oYiksZj1OdW1iZXIoYltHZi55al0pLGc9cXooZCx7c3RhZ2U6YyxldmVudElkOmEuaWQsdGFnSWQ6Zn0sSXkuWC54aik7aWYoZyE9PXZvaWQgMCYmZC5LW2EuaWRdKXt2YXIgaD1kLktbYS5pZF0udGFnfHwiIixsLG49KGw9TXlbY10pIT1udWxsP2w6IjEiLHA9bmV3IFJlZ0V4cCgiVFNcXGQiK2UrIi5USSIrZikscT0iVFMiK24rZSsiLlRJIitmKyIuVEUiK2c7aC5zZWFyY2gocCk+PTA/biE9PSIxIiYmbHooZCxhLmlkLCJ0YWciLGgucmVwbGFjZShwLHEucmVwbGFjZSgiLlRFIitnLCIiKSkpOihseihkLGEuaWQsInRhZyIsKGg/aCsiLiI6IiIpK3EpLGU9PT0iaHRtbCImJihkLkguSFRDKz0xKSxkLkguVEMrPTEpfX07dmFyIEt6PXtnajp7YnA6IjEiLHVxOiIyIixWcToiMyJ9fTsKdmFyIEx6PXt9LE16PU9iamVjdC5mcmVlemUoKEx6W0YuRC5maF09MSxMeltGLkQuZ2hdPTEsTHpbRi5ELkJkXT0xLEx6W0YuRC5DZF09MSxMeltGLkQuUmNdPTEsTHpbRi5ELnNpXT0xLEx6W0YuRC51aV09MSxMeltGLkQuQ2xdPTEsTHpbRi5ELmloXT0xLEx6W0YuRC5DZl09MSxMeltGLkQuRGZdPTEsTHpbRi5ELkVmXT0xLEx6W0YuRC5IYV09MSxMeltGLkQuRmZdPTEsTHpbRi5ELkZkXT0xLEx6W0YuRC51Y109MSxMeltGLkQuSGRdPTEsTHpbRi5ELkxiXT0xLEx6W0YuRC5DYl09MSxMeltGLkQuVGJdPTEsTHpbRi5ELm5iXT0xLEx6W0YuRC5lYl09MSxMeltGLkQuR2VdPTEsTHpbRi5ELmtoXT0xLEx6W0YuRC5PYV09MSxMeltGLkQuT3BdPTEsTHpbRi5ELlNwXT0xLEx6W0YuRC5JZV09MSxMeltGLkQuR2ldPTEsTHpbRi5ELlFmXT0xLEx6W0YuRC5UYV09MSxMeltGLkQuWWNdPTEsTHpbRi5ELlpjXT0xLEx6W0YuRC50Yl09MSxMeltGLkQuUWRdPTEsTHpbRi5ELlJkXT0xLEx6W0YuRC5TZF09CjEsTHpbRi5ELk5lXT0xLEx6W0YuRC56YV09MSxMeltGLkQuVWFdPTEsTHpbRi5ELldsXT0xLEx6W0YuRC5YbF09MSxMeltGLkQuWWxdPTEsTHpbRi5ELlpsXT0xLEx6W0YuRC5XYl09MSxMeltGLkQuVGRdPTEsTHpbRi5ELlhiXT0xLEx6W0YuRC5kZF09MSxMeltGLkQuVWRdPTEsTHpbRi5ELlFlXT0xLEx6W0YuRC5QYV09MSxMeltGLkQueWNdPTEsTHpbRi5ELlZkXT0xLEx6W0YuRC56Y109MSxMeltGLkQuQWNdPTEsTHpbRi5ELmZiXT0xLEx6W0YuRC5RYV09MSxMeikpLE56PXt9LE96PShOeltGLkQuVWNdPTEsTnpbRi5ELlBwXT0xLE56W0YuRC5IZV09MSxOeltGLkQucmldPTEsTnoub3JlZj0xLE56KTt2YXIgUHosUXo7CmZ1bmN0aW9uIFJ6KGEsYil7dmFyIGM9YVtHZi5ZYl0sZD1iJiZiLmV2ZW50O2lmKCFjKXRocm93IEVycm9yKCJFcnJvcjogTm8gZnVuY3Rpb24gbmFtZSBnaXZlbiBmb3IgZnVuY3Rpb24gY2FsbC4iKTt2YXIgZT1ReltjXSxmPXt9LGc7Zm9yKGcgaW4gYSlhLmhhc093blByb3BlcnR5KGcpJiYoU2IoZywidnRwXyIpP2ZbZSE9PXZvaWQgMD9nOmcuc3Vic3RyaW5nKDQpXT1hW2ddOmc9PT1HZi5GcS50b1N0cmluZygpJiYoZltlIT09dm9pZCAwPyJ2dHBfZ3RtR2VuZXJhdGVkVGFnZ2luZ01ldGFkYXRhIjpnXT1hW2ddKSk7SWYoNjEpJiZlJiYoZi52dHBfZXh0cmFFeHBlcmltZW50SWRzPSEwKTtlJiZkJiZkLmNhY2hlZE1vZGVsVmFsdWVzJiYoZi52dHBfZ3RtQ2FjaGVkVmFsdWVzPWQuY2FjaGVkTW9kZWxWYWx1ZXMpO2ImJmUmJihmLnZ0cF9ndG1FbnRpdHlJbmRleD1iLmluZGV4LGYudnRwX2d0bUVudGl0eU5hbWU9Yi5uYW1lKTtyZXR1cm4gZSE9PXZvaWQgMD9lKGYpOlB6KGMsZiwKYil9dmFyIFR6PWZ1bmN0aW9uKCl7dmFyIGE9U3o7aWYoTSg1ODUpJiZmbi5LKXt2YXIgYj1FKDUpLmluZGV4T2YoIkdUTS0iKT09PTAmJklmKDYyKSxjLGQ9KChjPUZrKCkpPT1udWxsP3ZvaWQgMDpjLnNvdXJjZSk9PT0xO2ImJiFkfHxhLkh8fChhLkg9ITAsVW0oImFibCIsIjEiKSx0bygpKX19LFN6PW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIFV6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuaW5kZXg9Yjt0aGlzLnRhZ3M9Yzt0aGlzLm1hY3Jvcz1kO3RoaXMubmFtZT1TdHJpbmcodGhpcy5IW0dmLlJtXXx8IiIpfTsKVXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7aWYoIWJbdGhpcy5pbmRleF0mJiFhLmlzQmxvY2tlZCh0aGlzLkgpKXtiW3RoaXMuaW5kZXhdPSEwO3RoaXMuSFtHZi5wbC50b1N0cmluZygpXSYmVHooKTt2YXIgYz10aGlzLm5hbWUsZDt0cnl7dmFyIGU9e30sZjtmb3IoZiBpbiB0aGlzLkgpdGhpcy5ILmhhc093blByb3BlcnR5KGYpJiYoZVtmXT1lbCh0aGlzLkhbZl0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsYikpO2UudnRwX2d0bUV2ZW50SWQ9YS5pZDthLnByaW9yaXR5SWQmJihlLnZ0cF9ndG1Qcmlvcml0eUlkPWEucHJpb3JpdHlJZCk7dmFyIGc9ZD1SeihlLHtldmVudDphLGluZGV4OnRoaXMuaW5kZXgsdHlwZToyLG5hbWU6Y30pO2VbR2YuWmtdJiZ0eXBlb2YgZz09PSJzdHJpbmciJiYoZz1lW0dmLlprXT09PTE/Zy50b0xvd2VyQ2FzZSgpOmcudG9VcHBlckNhc2UoKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5haCkmJihnPVlmKDE4KT9lW0dmLmFoXT09PTE/ClZmKGcsIlBFUklPRCIpOmVbR2YuYWhdPT09Mj9WZihnLCJDT01NQSIpOlZmKGcsIkFVVE9NQVRJQyIpOmVbR2YuYWhdPT09MT9WZihnLCJQRVJJT0QiKTpWZihnLCJDT01NQSIpKTtlLmhhc093blByb3BlcnR5KEdmLmJsKSYmZz09PW51bGwmJihnPWVbR2YuYmxdKTtlLmhhc093blByb3BlcnR5KEdmLmlsKSYmZz09PXZvaWQgMCYmKGc9ZVtHZi5pbF0pO2UuaGFzT3duUHJvcGVydHkoR2YuZXApJiYoZz1KYihnKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5mbCkmJmc9PT0hMCYmKGc9ZVtHZi5mbF0pO2UuaGFzT3duUHJvcGVydHkoR2YuYWwpJiZnPT09ITEmJihnPWVbR2YuYWxdKTtkPWd9Y2F0Y2goaCl7YS5sb2dNYWNyb0Vycm9yJiZhLmxvZ01hY3JvRXJyb3IoaCxOdW1iZXIodGhpcy5pbmRleCksYyksZD0hMX1iW3RoaXMuaW5kZXhdPSExO3JldHVybiBkfX07VXoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5IKX07dmFyIFZ6PWZ1bmN0aW9uKGEsYixjKXt0aGlzLkg9YTt0aGlzLnRhZ3M9Yjt0aGlzLm1hY3Jvcz1jfTtWei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXt0cnl7Zm9yKHZhciBjPXt9LGQ9bShPYmplY3Qua2V5cyh0aGlzLkgpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtjW2ZdPWY9PT0iZnVuY3Rpb24iP3RoaXMuSFtmXTplbCh0aGlzLkhbZl0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsYil9cmV0dXJuIGNsKGMpfWNhdGNoKGcpe0pTT04uc3RyaW5naWZ5KHRoaXMuSCl9cmV0dXJuIDJ9O1Z6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBXej1mdW5jdGlvbihhLGIpe3RoaXMuaW5kZXg9Yjt0aGlzLk49W107dGhpcy5SPVtdO3RoaXMuSz1bXTt0aGlzLkg9W107dGhpcy5uYW1lPSIiO2Zvcih2YXIgYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1tKGQudmFsdWUpLGY9ZS5uZXh0KCkudmFsdWUsZz15YShlKSxoPWYsbD1nO2g9PT0iaWYiP3RoaXMuTj1sOmg9PT0idW5sZXNzIj90aGlzLlI9bDpoPT09ImFkZCI/dGhpcy5LPWw6aD09PSJibG9jayI/dGhpcy5IPWw6aD09PSJydWxlTmFtZSImJih0aGlzLm5hbWU9bFswXSl9fTsKV3oucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9WHoodGhpcyxiKSxkPVtdLGU9W107Yz8oZC5wdXNoLmFwcGx5KGQsdyh0aGlzLkspKSxlLnB1c2guYXBwbHkoZSx3KHRoaXMuSCkpKTpjPT09bnVsbCYmZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKTtyZXR1cm57ZmlyaW5nVGFnczpkLGJsb2NraW5nVGFnczplfX07CnZhciBYej1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1tKGEuTiksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWIoZC52YWx1ZSk7aWYoZT09PTApcmV0dXJuITE7aWYoZT09PTIpcmV0dXJuIG51bGx9Zm9yKHZhciBmPW0oYS5SKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9YihnLnZhbHVlKTtpZihoPT09MilyZXR1cm4gbnVsbDtpZihoPT09MSlyZXR1cm4hMX1yZXR1cm4hMH07V3oucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfTt2YXIgWXo9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5JYT1hO3RoaXMuaW5kZXg9Yjt0aGlzLnRhZ3M9Yzt0aGlzLm1hY3Jvcz1kO3RoaXMuTz1TdHJpbmcodGhpcy5JYVtHZi5ZYl0pO3RoaXMubmFtZT1TdHJpbmcodGhpcy5JYVtHZi5SbV18fCIiKTt0aGlzLnRhZ0lkPU51bWJlcih0aGlzLklhW0dmLnlqXSl9OwpZei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD97fTpjO3ZhciBkLGU9YztlPWU9PT12b2lkIDA/e306ZTt2YXIgZj17fSxnO2ZvcihnIGluIHRoaXMuSWEpdGhpcy5JYS5oYXNPd25Qcm9wZXJ0eShnKSYmKGZbZ109ZWwodGhpcy5JYVtnXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSkpO2Q9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLGUpO2QudnRwX2d0bVRhZ0lkPXRoaXMudGFnSWQ7dGhpcy5JYVtHZi5wbC50b1N0cmluZygpXSYmVHooKTtSeihkLHtldmVudDphLGluZGV4OnRoaXMuaW5kZXgsdHlwZToxLG5hbWU6dGhpcy5uYW1lfSl9O1l6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSWEpfTsKdmFyIFp6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi50bl0pcmV0dXJuIGVsKGEuSWFbR2YudG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sJHo9ZnVuY3Rpb24oYSxiKXtpZihhLklhW0dmLkRuXSlyZXR1cm4gZWwoYS5JYVtHZi5Ebl0sYixhLnRhZ3MsYS5tYWNyb3MsW10pfSxhQT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuSWFbR2YuY3BdO2lmKGMpcmV0dXJuIGVsKGMsYixhLnRhZ3MsYS5tYWNyb3MsW10pfTtZei5wcm90b3R5cGUuZ2V0TWV0YWRhdGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGVsKHRoaXMuSWFbR2YuTUVUQURBVEFdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfTt2YXIgYkE9ZnVuY3Rpb24oKXt0aGlzLm1hY3Jvcz1bXTt0aGlzLnJ1bGVzPVtdO3RoaXMucHJlZGljYXRlcz1bXTt0aGlzLnRhZ3M9W107dGhpcy52az1bXX07YkEucHJvdG90eXBlLmdldFJ1bGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucnVsZXN9O3ZhciBjQT1uZXcgYkE7ZnVuY3Rpb24gZEEoYSxiLGMsZCl7dmFyIGU9V2MoKSxmO2lmKGU9PT0xKWE6e3ZhciBnPUUoMyk7Zz1nLnRvTG93ZXJDYXNlKCk7Zm9yKHZhciBoPSJodHRwczovLyIrZyxsPSJodHRwOi8vIitnLG49MSxwPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLHE9MDtxPHAubGVuZ3RoJiZxPDEwMDtxKyspe3ZhciByPXBbcV0uc3JjO2lmKHIpe3I9ci50b0xvd2VyQ2FzZSgpO2lmKHIuaW5kZXhPZihsKT09PTApe2Y9MzticmVhayBhfW49PT0xJiZyLmluZGV4T2YoaCk9PT0wJiYobj0yKX19Zj1ufWVsc2UgZj1lO3JldHVybihmPT09Mnx8ZHx8Imh0dHA6IiE9PUEubG9jYXRpb24ucHJvdG9jb2w/YTpiKStjfTt2YXIgZUE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSz17fTt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLkspT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEuSyxkKSYmYy5wdXNoKGQrIn4iK2EuS1tkXSk7dmFyIGU9W10sZjtmb3IoZiBpbiBhLkgpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEuSCxmKSYmZS5wdXNoKGYrIn4iK2EuSFtmXSk7Yi50ZiYmKGEuSz17fSxhLkg9e30pO3ZhciBnPVtdO2MubGVuZ3RoPjAmJmcucHVzaChbImJjcyIsYy5qb2luKCIuIildKTtlLmxlbmd0aD4wJiZnLnB1c2goWyJiZXQiLGUuam9pbigiLiIpXSk7cmV0dXJuIGd9KX0sZkE7ZnVuY3Rpb24gZ0EoKXtmQXx8KGZBPW5ldyBlQSl9O2Z1bmN0aW9uIGhBKGEsYixjLGQsZSl7aWYoIUVrKGEpKXtkLmxvYWRFeHBlcmltZW50cz15aigpO0hrKGEsZCxlKTt2YXIgZj1pQShhKSxnPWZ1bmN0aW9uKCl7b2soKS5jb250YWluZXJbYV0mJihvaygpLmNvbnRhaW5lclthXS5zdGF0ZT0zKTtqQSgpfSxoPXtkZXN0aW5hdGlvbklkOmEsZW5kcG9pbnQ6MH07aWYoV2ooKSl7dmFyIGw9WGooKSxuPWwrIi8iK2tBKGYsYSk7Wm4oaCxuLHZvaWQgMCxmdW5jdGlvbigpe2xBKGEsbixsKyIvIitmLGgsZyl9KX1lbHNle3ZhciBwPVNiKGEsIkdUTS0iKSxxPWRrKCkscj1jPyIvZ3RhZy9qcyI6Ii9ndG0uanMiLHQ9bUEoYixyK2YsYSk7aWYoIXQpe3ZhciB1PUUoMykrcjtxJiZLYyYmcCYmKHU9S2MucmVwbGFjZSgvXig/Omh0dHBzPzpcL1wvKT8vaSwiIikuc3BsaXQoL1s/I10vKVswXSk7dD1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIix1K2YpfVpuKGgsdCx2b2lkIDAsZyl9fX0KZnVuY3Rpb24gakEoKXtLaygpfHxHYihMaygpLGZ1bmN0aW9uKGEsYil7bkEoYSxiLnRyYW5zcG9ydFVybCxiLmNvbnRleHQpO1AoOTIpfSl9ZnVuY3Rpb24gbkEoYSxiLGMsZCl7aWYoIUdrKGEpKWlmKGMubG9hZEV4cGVyaW1lbnRzfHwoYy5sb2FkRXhwZXJpbWVudHM9eWooKSksS2soKSlKayhhLGIsYyxkKTtlbHNle0lrKGEsYyxkKTt2YXIgZT17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBmPVhqKCksZz0iZ3RkIitpQShhLCEwKSxoPWYrIi8iK2tBKGcsYSk7Wm4oZSxoLHZvaWQgMCxmdW5jdGlvbigpe2xBKGEsaCxmKyIvIitnLGUpfSl9ZWxzZXt2YXIgbD0iL2d0YWcvZGVzdGluYXRpb24iK2lBKGEsITApLG49bUEoYixsLGEpO258fChuPWRBKCJodHRwczovLyIsImh0dHA6Ly8iLEUoMykrbCkpO1puKGUsbil9fX0KZnVuY3Rpb24gbEEoYSxiLGMsZCxlKXtpZihNKDQxMykpe2dBKCk7dmFyIGY9ZkE7aWYoZm4uTil7dmFyIGc9QS5wZXJmb3JtYW5jZSxoPS0xO2lmKGcmJmcuZ2V0RW50cmllc0J5VHlwZSl7dmFyIGw9UmooYikuaHJlZixuPWcuZ2V0RW50cmllc0J5TmFtZShsKS5wb3AoKTtpZighbilmb3IodmFyIHA9Zy5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9cFtxXTtpZihyLm5hbWUmJnIubmFtZS5pbmRleE9mKGIpIT09LTEpe249cjticmVha319biYmbi5yZXNwb25zZVN0YXR1cyE9PXZvaWQgMCYmKGg9bi5yZXNwb25zZVN0YXR1cyl9Zi5LW2FdPWh9UCgxOTApO3ZhciB0PW5tKGptLmJhLmtqKXx8e307dFthXT0hMDttbShqbS5iYS5raix0KTt2YXIgdT1jKyhjLmluZGV4T2YoIj8iKT09PS0xPyI/Zj0xIjoiJmY9MSIpO2U/Wm4oZCx1LHZvaWQgMCxlKTpabihkLHUpfWVsc2UgZSYmZSgpfQpmdW5jdGlvbiBpQShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPSI/aWQ9IitlbmNvZGVVUklDb21wb25lbnQoYSksZD1FKDE5KTtkIT09ImRhdGFMYXllciImJihjKz0iJmw9IitkKTt2YXIgZT1TYihhLCJHVE0tIik7aWYoIWV8fGIpYys9IiZjeD1jIjtlJiZJZig2MikmJihjKz0iJmdvb2dsZV9vbmx5PXRydWUiKTt2YXIgZj1jLGcsaD17RG86SmYoMTUpLElvOkUoMTQpfTtnPUNmKGgpO2M9ZisoIiZndG09IitnKTtkaygpJiYoYys9IiZzaWduPSIrQWoucWopO3ZhciBsPWMsbj1KZig1NCk7aWYobj09PTEpe2wrPSImZnBzPWZjIjt2YXIgcD1FKDYwKTtwJiYobCs9IiZnZGV2PSIrcCl9ZWxzZSBuPT09MiYmKGwrPSImZnBzPWZlIik7cmV0dXJuIGx9CmZ1bmN0aW9uIGtBKGEsYil7aWYoIU0oNDEzKXx8IVhqKCkpcmV0dXJuIGE7dmFyIGM9RSg1OCk7aWYoIWMpcmV0dXJuIFAoMTgyKSxhO3RyeXt2YXIgZD1OYigpLGU9RWYoYSxjKSxmPU5iKCktZDtnQSgpO3ZhciBnPWZBO2ZuLk4mJihnLkhbYl09Zik7cmV0dXJuIGV9Y2F0Y2goaCl7cmV0dXJuIFAoMTgzKSxhfX1mdW5jdGlvbiBtQShhLGIsYyl7aWYoYWsoKSYmYSl7dmFyIGQ9RSg1OCksZT1YaigpO2lmKGQmJmUpdHJ5e3ZhciBmPU5iKCk7Yj1lKyIvIitFZihiLGQpO3ZhciBnPU5iKCktZjtnQSgpO3ZhciBoPWZBO2ZuLk4mJihoLkhbY109Zyl9Y2F0Y2gobCl7UCgxODMpfXJldHVybiBZaihhLGIpfX07dmFyIHBBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9bmV3IEZiO3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPXtuYW1lOkUoMTkpLHNldDpmdW5jdGlvbihiLGMpe0VkKFZiKGIsYyksYS5IKTtvQShhKX0sZ2V0OmZ1bmN0aW9uKGIpe3JldHVybiBhLmdldChiLDIpfSxyZXNldDpmdW5jdGlvbigpe2EuSz1uZXcgRmI7YS5IPXt9O29BKGEpfX19O3BBLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYiE9Mj90aGlzLksuZ2V0KGEpOnFBKHRoaXMsYSl9O3ZhciBxQT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5zcGxpdCgiLiIpO2M9Y3x8W107Zm9yKHZhciBlPWEuSCxmPTA7ZjxkLmxlbmd0aDtmKyspe2lmKGU9PT1udWxsKXJldHVybiExO2lmKGU9PT12b2lkIDApYnJlYWs7ZT1lW2RbZl1dO2lmKGMuaW5kZXhPZihlKSE9PS0xKXJldHVybn1yZXR1cm4gZX07CnBBLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk4uaGFzT3duUHJvcGVydHkoYSl8fCh0aGlzLksuc2V0KGEsYiksRWQoVmIoYSxiKSx0aGlzLkgpLG9BKHRoaXMpKX07dmFyIHNBPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPVsiZ3RtLmFsbG93bGlzdCIsImd0bS5ibG9ja2xpc3QiLCJndG0ud2hpdGVsaXN0IiwiZ3RtLmJsYWNrbGlzdCIsInRhZ1R5cGVCbGFja2xpc3QiXSxiPXJBLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWIuZ2V0KGQsMSk7aWYoQXJyYXkuaXNBcnJheShlKXx8Q2QoZSkpZT1FZChlLG51bGwpO2IuTltkXT1lfX0sb0E9ZnVuY3Rpb24oYSxiKXtHYihhLk4sZnVuY3Rpb24oYyxkKXthLksuc2V0KGMsZCk7RWQoVmIoYyksYS5IKTtFZChWYihjLGQpLGEuSCk7YiYmZGVsZXRlIGEuTltjXX0pfSxyQT1uZXcgcEEsdEE9ckEuUjtmdW5jdGlvbiB1QShhLGIpe3JldHVybiByQS5nZXQoYSxiKX0KZnVuY3Rpb24gdkEoYSxiKXt2YXIgYz1iPT09dm9pZCAwPzI6YixkPXJBLGUsZj0oYz09PXZvaWQgMD8yOmMpIT09MT9xQShkLGEpOmQuSy5nZXQoYSk7QWQoZik9PT0iYXJyYXkifHxBZChmKT09PSJvYmplY3QiP2U9RWQoZixudWxsKTplPWY7cmV0dXJuIGV9O3ZhciB3QT1uZXcgUmVnRXhwKC9eKC4qXC4pPyhnb29nbGV8eW91dHViZXxibG9nZ2VyfHdpdGhnb29nbGUpKFwuY29tPyk/KFwuW2Etel17Mn0pP1wuPyQvKSx4QT17Y2w6WyJlY2wiXSxjdXN0b21QaXhlbHM6WyJub25Hb29nbGVQaXhlbHMiXSxlY2w6WyJjbCJdLGVobDpbImhsIl0sZ2Fhd2M6WyJnb29ndGFnIl0saGw6WyJlaGwiXSxodG1sOlsiY3VzdG9tU2NyaXB0cyIsImN1c3RvbVBpeGVscyIsIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sY3VzdG9tU2NyaXB0czpbImh0bWwiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLG5vbkdvb2dsZVBpeGVsczpbXSxub25Hb29nbGVTY3JpcHRzOlsibm9uR29vZ2xlUGl4ZWxzIl0sbm9uR29vZ2xlSWZyYW1lczpbIm5vbkdvb2dsZVBpeGVscyJdfSx5QT17Y2w6WyJlY2wiXSxjdXN0b21QaXhlbHM6WyJjdXN0b21TY3JpcHRzIiwKImh0bWwiXSxlY2w6WyJjbCJdLGVobDpbImhsIl0sZ2Fhd2M6WyJnb29ndGFnIl0saGw6WyJlaGwiXSxodG1sOlsiY3VzdG9tU2NyaXB0cyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIl0sbm9uR29vZ2xlUGl4ZWxzOlsiY3VzdG9tUGl4ZWxzIiwiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLG5vbkdvb2dsZVNjcmlwdHM6WyJjdXN0b21TY3JpcHRzIiwiaHRtbCJdLG5vbkdvb2dsZUlmcmFtZXM6WyJjdXN0b21TY3JpcHRzIiwiaHRtbCIsIm5vbkdvb2dsZVNjcmlwdHMiXX0sekE9Imdvb2dsZSBjdXN0b21QaXhlbHMgY3VzdG9tU2NyaXB0cyBodG1sIG5vbkdvb2dsZVBpeGVscyBub25Hb29nbGVTY3JpcHRzIG5vbkdvb2dsZUlmcmFtZXMiLnNwbGl0KCIgIik7CmZ1bmN0aW9uIEFBKCl7dmFyIGE9dUEoImd0bS5hbGxvd2xpc3QiKXx8dUEoImd0bS53aGl0ZWxpc3QiKTthJiZQKDkpO0lmKDYyKSYmKGE9dm9pZCAwKTtCQSgpJiYoSWYoNjIpP1AoMTE2KTooUCgxMTcpLElmKDQ4KSYmKGE9W10sd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZyYmd2luZG93LmNvbnNvbGUubG9nKCJHVE0gYmxvY2tlZC4gU2VlIGdvLzEzNjg3NzI4LiIpKSkpO3ZhciBiPWEmJlJiKEtiKGEpLHhBKSxjPXVBKCJndG0uYmxvY2tsaXN0Iil8fHVBKCJndG0uYmxhY2tsaXN0Iik7Y3x8KGM9dUEoInRhZ1R5cGVCbGFja2xpc3QiKSkmJlAoMyk7Yz9QKDgpOmM9W107QkEoKSYmKGM9S2IoYyksYy5wdXNoKCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwic2FuZGJveGVkU2NyaXB0cyIpKTtLYihjKS5pbmRleE9mKCJnb29nbGUiKT49MCYmUCgyKTt2YXIgZD1jJiZSYihLYihjKSx5QSksZT17fTtyZXR1cm4gZnVuY3Rpb24oZil7dmFyIGc9ZiYmCmZbR2YuWWJdO2lmKCFnfHx0eXBlb2YgZyE9PSJzdHJpbmciKXJldHVybiEwO2c9Zy5yZXBsYWNlKC9eXyovLCIiKTtpZihlW2ddIT09dm9pZCAwKXJldHVybiBlW2ddO3ZhciBoPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KVtnXXx8W10sbD0hMDthJiYobD1sJiZDQShnLGgsYikpO3ZhciBuPSExO2MmJihuPURBKGcsaCxkKSk7dmFyIHA9IWx8fG47IXAmJihoLmluZGV4T2YoInNhbmRib3hlZFNjcmlwdHMiKT09PS0xfHxiJiZiLmluZGV4T2YoInNhbmRib3hlZFNjcmlwdHMiKSE9PS0xPzA6RWIoZCx6QSkpJiYocD0hMCk7cmV0dXJuIGVbZ109cH19ZnVuY3Rpb24gQ0EoYSxiLGMpe2lmKGMuaW5kZXhPZihhKTwwKWlmKGImJmIubGVuZ3RoPjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe2lmKGMuaW5kZXhPZihiW2RdKTwwKXJldHVybiBQKDExKSwhMX1lbHNlIHJldHVybiExO3JldHVybiEwfQpmdW5jdGlvbiBEQShhLGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpPj0wO2lmKGQpcmV0dXJuIGQ7dmFyIGU9RWIoYyxifHxbXSk7ZSYmUCgxMCk7cmV0dXJuIGV9ZnVuY3Rpb24gQkEoKXtyZXR1cm4gd0EudGVzdChBLmxvY2F0aW9uJiZBLmxvY2F0aW9uLmhvc3RuYW1lKX07ZnVuY3Rpb24gRUEoYSl7Zm9yKHZhciBiPVtdLGM9W10sZD1GQShhKSxlPW0oY0EuZ2V0UnVsZXMoKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe2Zvcih2YXIgZz1mLnZhbHVlLmV2YWx1YXRlKGEsZCksaD1nLmZpcmluZ1RhZ3MsbD1nLmJsb2NraW5nVGFncyxuPTA7bjxoLmxlbmd0aDtuKyspYltoW25dXT0hMDtmb3IodmFyIHA9MDtwPGwubGVuZ3RoO3ArKyljW2xbcF1dPSEwfWZvcih2YXIgcT1bXSxyPTA7cjxjQS50YWdzLmxlbmd0aDtyKyspYltyXSYmIWNbcl0mJihxW3JdPSEwKTtyZXR1cm4gcX1mdW5jdGlvbiBGQShhKXt2YXIgYj1bXTtyZXR1cm4gZnVuY3Rpb24oYyl7YltjXT09PXZvaWQgMCYmKGJbY109Y0EucHJlZGljYXRlc1tjXS5ldmFsdWF0ZShhLFtdKSk7cmV0dXJuIGJbY119fTt2YXIgR0E9ZnVuY3Rpb24oKXt0aGlzLks9MDt0aGlzLkg9e319O0dBLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Kyt0aGlzLks7dGhpcy5IW2FdPXRoaXMuSFthXXx8e307dGhpcy5IW2FdW1N0cmluZyhkKV09e2xpc3RlbmVyOmIscmY6Y307cmV0dXJuIGR9O0dBLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXSxkPVN0cmluZyhiKTtpZighY3x8IWNbZF0pcmV0dXJuITE7ZGVsZXRlIGNbZF07cmV0dXJuITB9O3ZhciBJQT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO0diKEhBLkhbYV0sZnVuY3Rpb24oZCxlKXtjLmluZGV4T2YoZS5saXN0ZW5lcik8MCYmKGUucmY9PT12b2lkIDB8fGIuaW5kZXhPZihlLnJmKT49MCkmJmMucHVzaChlLmxpc3RlbmVyKX0pO3JldHVybiBjfTtmdW5jdGlvbiBKQShhLGIsYyl7cmV0dXJue2VudGl0eVR5cGU6YSxpbmRleEluT3JpZ2luQ29udGFpbmVyOmIsbmFtZUluT3JpZ2luQ29udGFpbmVyOmMsb3JpZ2luQ29udGFpbmVySWQ6RSg1KSxvcmlnaW5DSWQ6dmsoKX19O2Z1bmN0aW9uIEtBKGEsYil7aWYoZGF0YS5lbnRpdGllcyl7dmFyIGM9ZGF0YS5lbnRpdGllc1thXTtpZihjKXJldHVybiBjW2JdfX07dmFyIE1BPWZ1bmN0aW9uKGEsYil7dGhpcy5IPSExO3RoaXMuUj1bXTt0aGlzLmV2ZW50RGF0YT17dGFnczpbXX07dGhpcy5aPSExO3RoaXMuSz10aGlzLk49MDtMQSh0aGlzLGEsYil9LE5BPWZ1bmN0aW9uKGEsYixjLGQpe2lmKENqLmhhc093blByb3BlcnR5KGIpfHxiPT09Il9fem9uZSIpcmV0dXJuLTE7dmFyIGU9e307Q2QoZCkmJihlPUVkKGQsZSkpO2UuaWQ9YztlLnN0YXR1cz0idGltZW91dCI7cmV0dXJuIGEuZXZlbnREYXRhLnRhZ3MucHVzaChlKS0xfSxPQT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmV2ZW50RGF0YS50YWdzW2JdO2UmJihlLnN0YXR1cz1jLGUuZXhlY3V0aW9uVGltZT1kKX0sUEE9ZnVuY3Rpb24oYSl7aWYoIWEuSCl7Zm9yKHZhciBiPWEuUixjPTA7YzxiLmxlbmd0aDtjKyspYltjXSgpO2EuSD0hMDthLlIubGVuZ3RoPTB9fSxMQT1mdW5jdGlvbihhLGIsYyl7YiE9PXZvaWQgMCYmYS53ZyhiKTtjJiZBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtQQShhKX0sCk51bWJlcihjKSl9O01BLnByb3RvdHlwZS53Zz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9UGIoZnVuY3Rpb24oKXtiZChmdW5jdGlvbigpe2EoRSg1KSxiLmV2ZW50RGF0YSl9KX0pO3RoaXMuSD9jKCk6dGhpcy5SLnB1c2goYyl9O3ZhciBRQT1mdW5jdGlvbihhKXthLk4rKztyZXR1cm4gUGIoZnVuY3Rpb24oKXthLksrKzthLlomJmEuSz49YS5OJiZQQShhKX0pfSxSQT1mdW5jdGlvbihhKXthLlo9ITA7YS5LPj1hLk4mJlBBKGEpfTtmdW5jdGlvbiBTQSgpe3JldHVybiBBW1RBKCldfQpmdW5jdGlvbiBUQSgpe3JldHVybiBBLkdvb2dsZUFuYWx5dGljc09iamVjdHx8ImdhIn12YXIgV0E9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtmdW5jdGlvbiBYQSgpe2E6e3ZhciBhPUUoNSk7fX0KZnVuY3Rpb24gWUEoYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1TQSgpLGQ9YyYmYy5nZXRCeU5hbWUmJmMuZ2V0QnlOYW1lKGEpO2lmKGQpe3ZhciBlPWQuZ2V0KCJzZW5kSGl0VGFzayIpO2Quc2V0KCJzZW5kSGl0VGFzayIsZnVuY3Rpb24oZil7dmFyIGc9Zi5nZXQoImhpdFBheWxvYWQiKSxoPWYuZ2V0KCJoaXRDYWxsYmFjayIpLGw9Zy5pbmRleE9mKCImdGlkPSIrYik8MDtsJiYoZi5zZXQoImhpdFBheWxvYWQiLGcucmVwbGFjZSgvJnRpZD1VQS1bMC05XSstWzAtOV0rLywiJnRpZD0iK2IpLCEwKSxmLnNldCgiaGl0Q2FsbGJhY2siLHZvaWQgMCwhMCkpO2UoZik7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLCEwKSxmLnNldCgiaGl0Q2FsbGJhY2siLGgsITApLGYuc2V0KCJfeF8xOSIsdm9pZCAwLCEwKSxlKGYpKX0pfX19O3ZhciBhQj1bImVzIiwiMSJdLGJCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmV2ZW50RGF0YT17fTt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM7dmFyIGQ9Yi5ldmVudElkLGU9Yi50ZjtpZihhLmV2ZW50RGF0YVtkXSl7dmFyIGY9W107YS5IW2RdfHxmLnB1c2goYUIpO2YucHVzaC5hcHBseShmLHcoYS5ldmVudERhdGFbZF0pKTtlJiYoYS5IW2RdPSEwKTtjPWZ9ZWxzZSBjPVtdO3JldHVybiBjfSl9LGNCO2Z1bmN0aW9uIGRCKGEsYil7dmFyIGM7aWYoKGM9Y0IpIT1udWxsJiZmbi5OKXt2YXIgZD1jLmV2ZW50RGF0YSxlO2U9Yi5tYXRjaCgvXihndG18Z3RhZylcLi8pP2VuY29kZVVSSUNvbXBvbmVudChiKToiKiI7ZFthXT1bWyJlIixlXSxbImVpZCIsU3RyaW5nKGEpXV07Z3ooKTtleihhKX19O3ZhciBlQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O3RoaXMuSz17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1iLmV2ZW50SWQsZD1iLnRmLGU9W10sZj1hLkhbY118fFtdO2YubGVuZ3RoJiZlLnB1c2goWyJ0ciIsZi5qb2luKCIuIildKTt2YXIgZz1hLktbY118fFtdO2cubGVuZ3RoJiZlLnB1c2goWyJ0aSIsZy5qb2luKCIuIildKTtkJiYoZGVsZXRlIGEuSFtjXSxkZWxldGUgYS5LW2NdKTtyZXR1cm4gZX0pfSxmQjsKZnVuY3Rpb24gZ0IoYSxiLGMpe2ZCfHwoZkI9bmV3IGVCKTt2YXIgZD1mQjtpZihmbi5OJiZiKXt2YXIgZT1kbihiKTtkLkhbYV09ZC5IW2FdfHxbXTtkLkhbYV0ucHVzaChjK2UpO3ZhciBmPWJbR2YuWWJdO2lmKCFmKXRocm93IEVycm9yKCJFcnJvcjogTm8gZnVuY3Rpb24gbmFtZSBnaXZlbiBmb3IgZnVuY3Rpb24gY2FsbC4iKTt2YXIgZz0oUXpbZl0/IjEiOiIyIikrZTtkLktbYV09ZC5LW2FdfHxbXTtkLktbYV0ucHVzaChnKTtneigpO2V6KGEpfX07ZnVuY3Rpb24gaEIoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lCKCkuYWRkUmVzdHJpY3Rpb24oMCxhLGIsYyl9ZnVuY3Rpb24gakIoKXt2YXIgYT12aygpO3JldHVybiBpQigpLmdldFJlc3RyaWN0aW9ucygwLGEpfWZ1bmN0aW9uIGtCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDEsYSxiLGMpfWZ1bmN0aW9uIGxCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMSxhKX12YXIgbUI9ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj17fTt0aGlzLkg9e319LG5CPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5jb250YWluZXJbYl07Y3x8KGM9e19lbnRpdHk6e2ludGVybmFsOltdLGV4dGVybmFsOltdfSxfZXZlbnQ6e2ludGVybmFsOltdLGV4dGVybmFsOltdfX0sYS5jb250YWluZXJbYl09Yyk7cmV0dXJuIGN9OwptQi5wcm90b3R5cGUuYWRkUmVzdHJpY3Rpb249ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoIWR8fCF0aGlzLkhbYl0pe3ZhciBlPW5CKHRoaXMsYik7YT09PTA/ZD9lLl9lbnRpdHkuZXh0ZXJuYWwucHVzaChjKTplLl9lbnRpdHkuaW50ZXJuYWwucHVzaChjKTphPT09MSYmKGQ/ZS5fZXZlbnQuZXh0ZXJuYWwucHVzaChjKTplLl9ldmVudC5pbnRlcm5hbC5wdXNoKGMpKX19OwptQi5wcm90b3R5cGUuZ2V0UmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKTtpZihhPT09MCl7dmFyIGQsZTtyZXR1cm5bXS5jb25jYXQodygoYz09bnVsbD92b2lkIDA6KGQ9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZC5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZT1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDplLmV4dGVybmFsKXx8W10pKX1pZihhPT09MSl7dmFyIGYsZztyZXR1cm5bXS5jb25jYXQodygoYz09bnVsbD92b2lkIDA6KGY9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDpmLmludGVybmFsKXx8W10pLHcoKGM9PW51bGw/dm9pZCAwOihnPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zy5leHRlcm5hbCl8fFtdKSl9cmV0dXJuW119OwptQi5wcm90b3R5cGUuZ2V0RXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uQih0aGlzLGIpLGQsZTtyZXR1cm4gYT09PTA/KGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuZXh0ZXJuYWwpfHxbXTooYz09bnVsbD92b2lkIDA6KGU9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDplLmV4dGVybmFsKXx8W119O21CLnByb3RvdHlwZS5yZW1vdmVFeHRlcm5hbFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhKXt2YXIgYj1uQih0aGlzLGEpO2IuX2V2ZW50JiYoYi5fZXZlbnQuZXh0ZXJuYWw9W10pO2IuX2VudGl0eSYmKGIuX2VudGl0eS5leHRlcm5hbD1bXSk7dGhpcy5IW2FdPSEwfTtmdW5jdGlvbiBpQigpe3JldHVybiBraigiciIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG1CfSl9O2Z1bmN0aW9uIG9CKGEsYixjLGQpe3ZhciBlPWNBLnRhZ3NbYV0sZj1wQihhLGIsYyxkKTtpZighZilyZXR1cm4gbnVsbDt2YXIgZz1aeihlLGMpO2lmKGcmJmcubGVuZ3RoKXt2YXIgaD1nWzBdO2Y9b0IoaC5pbmRleCx7b25TdWNjZXNzOmYsb25GYWlsdXJlOmguYm89PT0xP2IudGVybWluYXRlOmYsdGVybWluYXRlOmIudGVybWluYXRlfSxjLGQpfXJldHVybiBmfQpmdW5jdGlvbiBwQihhLGIsYyxkKXtmdW5jdGlvbiBlKCl7ZnVuY3Rpb24geSgpe2ltKDMpO3ZhciBTPU5iKCktTjtKQSgxLGEsZi5nZXROYW1lKCkpO2dCKGMuaWQsZywiNyIpO09BKGMubGQsRCwiZXhjZXB0aW9uIixTKTtmbi5IJiZGeihjLGcsSXkuWC51aik7SXx8KEk9ITAsbCgpKX1pZihmLklhW0dmLk9xXSlsKCk7ZWxzZXt2YXIgej1hQShmLGMpO2lmKHohPW51bGwpZm9yKHZhciBDPTA7Qzx6Lmxlbmd0aDtDKyspaWYoIVhvKHpbQ10pKXtsKCk7cmV0dXJufXZhciBEPU5BKGMubGQsZi5PLGYudGFnSWQsZi5nZXRNZXRhZGF0YShjKSksST0hMSxHPXt2dHBfZ3RtT25TdWNjZXNzOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNSIpO09BKGMubGQsRCwic3VjY2VzcyIsUyk7Zm4uSCYmRnooYyxnLEl5Llgud2opO2goKX19LHZ0cF9ndG1PbkZhaWx1cmU6ZnVuY3Rpb24oKXtpZighSSl7ST0hMDt2YXIgUz1OYigpLU47Z0IoYy5pZCxnLCI2Iik7Ck9BKGMubGQsRCwiZmFpbHVyZSIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudmopO2woKX19fTtHLnZ0cF9ndG1FdmVudElkPWMuaWQ7Yy5wcmlvcml0eUlkJiYoRy52dHBfZ3RtUHJpb3JpdHlJZD1jLnByaW9yaXR5SWQpO2dCKGMuaWQsZywiMSIpO2ZuLkgmJkV6KGMsZyk7dmFyIE49TmIoKTt0cnl7Zi5ldmFsdWF0ZShjLGQsRyl9Y2F0Y2goUyl7eShTKX1mbi5IJiZGeihjLGcsSXkuWC5Dbil9fXZhciBmPWNBLnRhZ3NbYV0sZz1mLkZnKCksaD1iLm9uU3VjY2VzcyxsPWIub25GYWlsdXJlLG49Yi50ZXJtaW5hdGU7aWYoYy5pc0Jsb2NrZWQoZykpcmV0dXJuIG51bGw7dmFyIHA9JHooZixjKTtpZihwJiZwLmxlbmd0aCl7dmFyIHE9cFswXSxyPW9CKHEuaW5kZXgse29uU3VjY2VzczpoLG9uRmFpbHVyZTpsLHRlcm1pbmF0ZTpufSxjLGQpO2lmKCFyKXJldHVybiBudWxsO2g9cjtsPXEuYm89PT0yP246cn1pZihmLklhW0dmLmtuXXx8Zi5JYVtHZi5RcV0pe3ZhciB0PWYuSWFbR2Yua25dPwpjQS52azpjLnZrLHU9aCx2PWw7aWYoIXRbYV0pe3ZhciB4PXFCKGEsdCxQYihlKSk7aD14Lm9uU3VjY2VzcztsPXgub25GYWlsdXJlfXJldHVybiBmdW5jdGlvbigpe3RbYV0odSx2KX19cmV0dXJuIGV9ZnVuY3Rpb24gcUIoYSxiLGMpe3ZhciBkPVtdLGU9W107YlthXT1yQihkLGUsYyk7cmV0dXJue29uU3VjY2VzczpmdW5jdGlvbigpe2JbYV09c0I7Zm9yKHZhciBmPTA7ZjxkLmxlbmd0aDtmKyspZFtmXSgpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXtiW2FdPXRCO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKWVbZl0oKX19fWZ1bmN0aW9uIHJCKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCxlKXthLnB1c2goZCk7Yi5wdXNoKGUpO2MoKX19ZnVuY3Rpb24gc0IoYSl7YSgpfWZ1bmN0aW9uIHRCKGEsYil7YigpfTt2YXIgd0I9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8Y0EudGFncy5sZW5ndGg7ZCsrKWlmKGFbZF0pe3ZhciBlPWNBLnRhZ3NbZF07dmFyIGY9UUEoYi5sZCk7dHJ5e3ZhciBnPW9CKGQse29uU3VjY2VzczpmLG9uRmFpbHVyZTpmLHRlcm1pbmF0ZTpmfSxiLGQpO2lmKGcpe3ZhciBoPVF6W2UuT107Yy5wdXNoKHtObzpkLHByaW9yaXR5T3ZlcnJpZGU6KGg/aC5wcmlvcml0eU92ZXJyaWRlfHwwOjApfHxLQShlLk8sMSl8fDAsZXhlY3V0ZTpnfSl9ZWxzZSB1QihkLGIpLGYoKX1jYXRjaChuKXtmKCl9fWMuc29ydCh2Qik7Zm9yKHZhciBsPTA7bDxjLmxlbmd0aDtsKyspY1tsXS5leGVjdXRlKCk7cmV0dXJuIGMubGVuZ3RoPjB9OwpmdW5jdGlvbiB4QihhLGIpe2lmKCFIQSlyZXR1cm4hMTt2YXIgYz1hWyJndG0udHJpZ2dlcnMiXSYmU3RyaW5nKGFbImd0bS50cmlnZ2VycyJdKSxkPUlBKGEuZXZlbnQsYz9TdHJpbmcoYykuc3BsaXQoIiwiKTpbXSk7aWYoIWQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7KytlKXt2YXIgZj1RQShiKTt0cnl7ZFtlXShhLGYpfWNhdGNoKGcpe2YoKX19cmV0dXJuITB9ZnVuY3Rpb24gdkIoYSxiKXt2YXIgYyxkPWIucHJpb3JpdHlPdmVycmlkZSxlPWEucHJpb3JpdHlPdmVycmlkZTtjPWQ+ZT8xOmQ8ZT8tMTowO3ZhciBmO2lmKGMhPT0wKWY9YztlbHNle3ZhciBnPWEuTm8saD1iLk5vO2Y9Zz5oPzE6ZzxoPy0xOjB9cmV0dXJuIGZ9CmZ1bmN0aW9uIHVCKGEsYil7aWYoZm4uTil7dmFyIGM9ZnVuY3Rpb24oZCl7dmFyIGU9Yi5pc0Jsb2NrZWQoY0EudGFnc1tkXS5GZygpKT8iMyI6IjQiLGY9WnooY0EudGFnc1tkXSxiKTtmJiZmLmxlbmd0aCYmYyhmWzBdLmluZGV4KTtnQihiLmlkLGNBLnRhZ3NbZF0uRmcoKSxlKTt2YXIgZz0keihjQS50YWdzW2RdLGIpO2cmJmcubGVuZ3RoJiZjKGdbMF0uaW5kZXgpfTtjKGEpfX12YXIgSEE7ZnVuY3Rpb24geUIoKXtIQXx8KEhBPW5ldyBHQSk7cmV0dXJuIEhBfQpmdW5jdGlvbiB6QihhKXt2YXIgYj1hWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9YVsiZ3RtLnByaW9yaXR5SWQiXSxkPWFbImd0bS5wcmlvcml0eVF1ZXVlIl0sZT1hLmV2ZW50O2ZuLkgmJnZ6KGIsZSk7aWYoZT09PSJndG0uanMiKXtpZigkaygxMykpcmV0dXJuITE7WmsoMTMsITApfXZhciBmPSExLGc9bEIoKSxoPUVkKGEsbnVsbCk7aWYoIWcuZXZlcnkoZnVuY3Rpb24odSl7cmV0dXJuIHUoe29yaWdpbmFsRXZlbnREYXRhOmh9KX0pKXtpZihlIT09Imd0bS5qcyImJmUhPT0iZ3RtLmluaXQiJiZlIT09Imd0bS5pbml0X2NvbnNlbnQiKXJldHVybiExO2Y9ITB9ZEIoYixlKTt2YXIgbD1hLmV2ZW50Q2FsbGJhY2ssbj1hLmV2ZW50VGltZW91dCxwPXtpZDpiLHByaW9yaXR5SWQ6Yyxwcmlvcml0eVF1ZXVlOmQsbmFtZTplLGlzQmxvY2tlZDpBQihoLGYpLHZrOltdLGxvZ01hY3JvRXJyb3I6ZnVuY3Rpb24odSx2LHgpe1AoNik7aW0oNCk7SkEoMix2LHgpfSxjYWNoZWRNb2RlbFZhbHVlczpCQigpLApsZDpuZXcgTUEoZnVuY3Rpb24oKXtmbi5IJiZ5eihiLGUpO0Z5KDUsZSk7bCYmbC5hcHBseShsLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSl9LG4pLG9yaWdpbmFsRXZlbnREYXRhOmh9O2ZuLkgmJkN6KHAuaWQpO3ZhciBxPUVBKHApO2ZuLkgmJkR6KHAuaWQpO0Z5KDIsZSk7Y0EuZ2V0UnVsZXMoKTtmJiYocT1DQihxKSk7Zm4uSCYmd3ooYik7dmFyIHI9d0IocSxwKTtyJiZGeSg0LGUpO3ZhciB0PXhCKGEscC5sZCk7UkEocC5sZCk7ZSE9PSJndG0uanMiJiZlIT09Imd0bS5zeW5jInx8WEEoKTtyZXR1cm4gREIocSxyKXx8dH0KZnVuY3Rpb24gQkIoKXt2YXIgYT17fTthLmV2ZW50PXZBKCJldmVudCIsMSk7YS5lY29tbWVyY2U9dkEoImVjb21tZXJjZSIsMSk7YS5ndG09dkEoImd0bSIpO2EuZXZlbnRNb2RlbD12QSgiZXZlbnRNb2RlbCIpO3JldHVybiBhfQpmdW5jdGlvbiBBQihhLGIpe3ZhciBjPUFBKCk7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWMoZCk7aWYoZSlyZXR1cm4hMDt2YXIgZj1kJiZkW0dmLlliXTtpZighZnx8dHlwZW9mIGYhPT0ic3RyaW5nIilyZXR1cm4hMDtmPWYucmVwbGFjZSgvXl8qLywiIik7dmFyIGc9akIoKSxoPWE7YiYmKGg9RWQoYSxudWxsKSxoWyJndG0udW5pcXVlRXZlbnRJZCJdPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtmb3IodmFyIGw9ITEsbj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSlbZl18fFtdLHA9bShnKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl7dmFyIHI9cS52YWx1ZTt0cnl7cih7ZW50aXR5SWQ6ZixzZWN1cml0eUdyb3VwczpuLG9yaWdpbmFsRXZlbnREYXRhOmh9KXx8KGw9ITApfWNhdGNoKHQpe2w9ITB9fXJldHVybiBsfHxlfX0KZnVuY3Rpb24gQ0IoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2NdKXt2YXIgZD1jQS50YWdzW2NdLk87aWYoQmpbZF18fGNBLnRhZ3NbY10uSWFbR2YuUnFdIT09dm9pZCAwfHxLQShkLDIpKWJbY109ITB9cmV0dXJuIGJ9ZnVuY3Rpb24gREIoYSxiKXtpZighYilyZXR1cm4gYjtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2NdJiZjQS50YWdzW2NdJiYhQ2pbY0EudGFnc1tjXS5PXSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIEVCPU5mKDYxLDFFMyksRkI9TmYoNjgsMkUzKSxabz1bImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSJdO2Z1bmN0aW9uIEdCKGEsYil7aWYoYSl7dmFyIGM9a2ooImd0aCIsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGQ7YSE9PTJ8fCgoZD1IQigpKT09bnVsbD92b2lkIDA6ZC5zdGF0dXMpIT09M3x8YiE9PXZvaWQgMCYmYjw9RkJ8fChhPTMsYy5kbD1iP01hdGguZmxvb3IoYi8xRTMpOnZvaWQgMCk7Yy5zPWE7SUIoYyl9fWZ1bmN0aW9uIElCKGEpe2lmKGEucyl7dmFyIGI9ZnVuY3Rpb24oKXt2YXIgYz17c3RhdHVzOmEucyxleHBpcmVzOkRhdGUubm93KCkrODY0RTV9O2EuZGwhPT12b2lkIDAmJihjLmRlbGF5PWEuZGwpO2tyKCJndGdfbG9hZF9zdGF0dXMiLGMpfTticChmdW5jdGlvbigpe2lmKFlvKCkpYigpO2Vsc2UgZm9yKHZhciBjPVBiKGIpLGQ9bShabyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpSWwoYyxlLnZhbHVlKX0sWm8pfX0KZnVuY3Rpb24gSkIoKXt2YXIgYT1LQighMCk7cmV0dXJuIGE/KExCKGEuc3RhdHVzLGEuZGVsYXkpLCExKTohMH1mdW5jdGlvbiBLQihhKXthPWE9PT12b2lkIDA/ITE6YTtpZihhaygpKXt2YXIgYj1ucigiZ3RnX2xvYWRfc3RhdHVzIiksYz1iLnZhbHVlLGQ9YSYmQWIoYz09bnVsbD92b2lkIDA6Yy5leHBpcmVzKSYmKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcyk8RGF0ZS5ub3coKSszNkU1O2lmKGIuZXJyb3I9PT0wJiZBYihjPT1udWxsP3ZvaWQgMDpjLnN0YXR1cykmJiFkKXt2YXIgZT17c3RhdHVzOmMuc3RhdHVzfTsoYz09bnVsbD92b2lkIDA6Yy5kZWxheSkhPT12b2lkIDAmJihlLmRlbGF5PWMuZGVsYXkpO3JldHVybiBlfXJldHVybiBIQigpfX1mdW5jdGlvbiBMQihhLGIpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtjLnM9YTtiIT09dm9pZCAwJiYoYy5kbD1iKX0KZnVuY3Rpb24gSEIoKXt2YXIgYT1taigiZ3RoIik7aWYoYSE9bnVsbCYmYS5zKXt2YXIgYj17c3RhdHVzOmEuc307YS5kbCE9PXZvaWQgMCYmKGIuZGVsYXk9YS5kbCk7cmV0dXJuIGJ9fWZ1bmN0aW9uIE1CKCl7dmFyIGE7KChhPUhCKCkpPT1udWxsP3ZvaWQgMDphLnN0YXR1cyk9PT0xJiZHQigzKX1mdW5jdGlvbiBOQigpe2lmKEpCKCkpe3ZhciBhPURhdGUubm93KCk7bmooImd0aCIse2w6ZnVuY3Rpb24oKXtHQigyLERhdGUubm93KCktYSl9LHM6MX0pO3ZhciBiPUUoNSksYz1TYihiLCJHVE0tIik/Ii9ndG0uanMiOiIvZ3RhZy9qcyIsZD0iaHR0cHM6Ly8iK0UoMykrYysiP2lkPSIrYisiJmd0Z19oZWFsdGg9MSI7VWMoZCxNQixNQik7QS5zZXRUaW1lb3V0KE1CLEVCKX19O2Z1bmN0aW9uIE9CKCl7eUIoKS5hZGRMaXN0ZW5lcigiZ3RtLmluaXQiLGZ1bmN0aW9uKGEsYil7WmsoMjYsITApO00oNTU2KSYmYWsoKSYmIUlmKDQ1KSYmKGZvLkhbY28uaWEuWmJdPWJvLk1hLkxoKTtpZihhaygpKXt2YXIgYztjPWxvKGNvLmlhLlpiKTtnbyhjKT9pbyhjLE5CKTpOQigpfXRvKCExLCEwKTtiKCl9KX07ZnVuY3Rpb24gUEIoKXtpZihtaigicHNjZGwiKSE9PXZvaWQgMClubShqbS5iYS5vaSk9PT12b2lkIDAmJm1tKGptLmJhLm9pLG1qKCJwc2NkbCIpKTtlbHNle3ZhciBhPWZ1bmN0aW9uKGMpe25qKCJwc2NkbCIsYyk7bW0oam0uYmEub2ksYyl9LGI9ZnVuY3Rpb24oKXthKCJlcnJvciIpfTt0cnl7SGMuY29va2llRGVwcmVjYXRpb25MYWJlbD8oYSgicGVuZGluZyIpLEhjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWwuZ2V0VmFsdWUoKS50aGVuKGEpLmNhdGNoKGIpKTphKCJub2FwaSIpfWNhdGNoKGMpe2IoYyl9fX07dmFyIFJCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnJlYWR5PSExO3RoaXMuSz0wO3RoaXMuSD1bXTt2YXIgYj1BO2lmKEIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSImJiFCLmNyZWF0ZUV2ZW50T2JqZWN0fHxCLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXRoaXMub25SZWFkeSgpO2Vsc2V7JGMoQiwiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oZCl7cmV0dXJuIHZvaWQgYS5vblJlYWR5KGQpfSk7JGMoQiwicmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oZCl7cmV0dXJuIHZvaWQgYS5vblJlYWR5KGQpfSk7aWYoQi5jcmVhdGVFdmVudE9iamVjdCYmQi5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwpe3ZhciBjPSEwO3RyeXtjPSFiLmZyYW1lRWxlbWVudH1jYXRjaChkKXt9YyYmUUIodGhpcyl9JGMoYiwibG9hZCIsZnVuY3Rpb24oZCl7cmV0dXJuIHZvaWQgYS5vblJlYWR5KGQpfSl9fTtSQi5wcm90b3R5cGUuaXNSZWFkeT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWR5fTsKUkIucHJvdG90eXBlLm9uUmVhZHk9ZnVuY3Rpb24oYSl7aWYoIXRoaXMucmVhZHkpe3ZhciBiPUIuY3JlYXRlRXZlbnRPYmplY3QsYz1CLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiLGQ9Qi5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIjtpZighYXx8YS50eXBlIT09InJlYWR5c3RhdGVjaGFuZ2UifHxjfHwhYiYmZCl7dGhpcy5yZWFkeT0hMDtmb3IodmFyIGU9MDtlPHRoaXMuSC5sZW5ndGg7ZSsrKWJkKHRoaXMuSFtlXSl9dGhpcy5ILnB1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGY9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGc9MDtnPGYubGVuZ3RoO2crKyliZChmW2ddKTtyZXR1cm4gMH19fTsKdmFyIFFCPWZ1bmN0aW9uKGEpe2lmKCFhLnJlYWR5JiZhLks8MTQwKXthLksrKzt0cnl7dmFyIGIsYzsoYz0oYj1CLmRvY3VtZW50RWxlbWVudCkuZG9TY3JvbGwpPT1udWxsfHxjLmNhbGwoYiwibGVmdCIpO2Eub25SZWFkeSgpfWNhdGNoKGQpe0Euc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB2b2lkIFFCKGEpfSw1MCl9fX0sU0I7ZnVuY3Rpb24gVEIoKXtTQnx8KFNCPW5ldyBSQil9ZnVuY3Rpb24gVUIoKXtUQigpO3ZhciBhO3JldHVybihhPVNCKT09bnVsbD92b2lkIDA6YS5pc1JlYWR5KCl9ZnVuY3Rpb24gVkIoYSl7VEIoKTt2YXIgYjsoYj1TQikhPW51bGwmJihiLnJlYWR5P2JkKGEpOmIuSC5wdXNoKGEpKX07dmFyIFhCPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1XQixlO2lmKChlPWQuSCk9PW51bGx8fCFlLk9yKXt2YXIgZj1PYmplY3Qua2V5cyhiKS5sZW5ndGg+MD8yOjEsZyxoLGw9KGM9PW51bGw/dm9pZCAwOihoPWMub3JpZ2luYXRpbmdFbnRpdHkpPT1udWxsP3ZvaWQgMDpoLm9yaWdpbkNvbnRhaW5lcklkKXx8IiI7Zz1sP1NiKGwsIkdUTS0iKT8zOjI6MTtpZighYSlkLkg9e3R5cGU6Zixzb3VyY2U6ZyxwYXJhbXM6Yn07ZWxzZSBpZihkLkgpe1AoMTg0KTt2YXIgbj0hMTtkLkguc291cmNlPT09Z3x8ZC5ILnNvdXJjZSE9PTMmJmchPT0zfHwoVW0oImlkY3MiLCIxIiksbj0hMCk7ZC5ILnR5cGUhPT0yJiZmIT09Mnx8UCgxODYpO3ZhciBwO2lmKHA9ZC5ILnR5cGU9PT0yJiZmPT09MilhOnt2YXIgcT1kLkgucGFyYW1zLHI9T2JqZWN0LmtleXMocSksdD1PYmplY3Qua2V5cyhiKTtpZihyLmxlbmd0aCE9PXQubGVuZ3RoKXA9ITA7ZWxzZXtmb3IodmFyIHU9bShyKSx2PXUubmV4dCgpOyF2LmRvbmU7dj0KdS5uZXh0KCkpe3ZhciB4PXYudmFsdWU7aWYoIWIuaGFzT3duUHJvcGVydHkoeCl8fHFbeF0hPT1iW3hdKXtwPSEwO2JyZWFrIGF9fXA9ITF9fXAmJihVbSgiaWRjYyIsIjEiKSxuPSEwKTtuJiYodG8oKSxkLkguT3I9ITApfX19LFdCPW5ldyBmdW5jdGlvbigpe3RoaXMuSD12b2lkIDB9O3ZhciBaQj1mdW5jdGlvbihhKXt2YXIgYj1ZQjsoIWZuLkt8fFNiKEUoNSksIkdUTS0iKT8wOmE9PT12b2lkIDApJiZiLkg9PT0wJiYoVW0oIm1jYyIsIjEiKSxiLkg9MSl9LFlCPW5ldyBmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPTA7VW0oIm5jYyIsZnVuY3Rpb24oKXtpZihJZig0NSkmJmEuSCE9PTIpcmV0dXJuIjEifSl9O3ZhciAkQj0vXig/OkFXfERDfEd8R0Z8R1R8SEF8TUN8VUEpJC8sYUM9L1xzLzsKZnVuY3Rpb24gYkMoYSxiKXtpZih6YihhKSl7YT1MYihhKTt2YXIgYz1hLmluZGV4T2YoIi0iKTtpZighKGM8MCkpe3ZhciBkPWEuc3Vic3RyaW5nKDAsYyk7aWYoJEIudGVzdChkKSl7dmFyIGU9YS5zdWJzdHJpbmcoYysxKSxmO2lmKGIpe3ZhciBnPWZ1bmN0aW9uKG4pe3ZhciBwPW4uaW5kZXhPZigiLyIpO3JldHVybiBwPDA/W25dOltuLnN1YnN0cmluZygwLHApLG4uc3Vic3RyaW5nKHArMSldfTtmPWcoZSk7aWYoZD09PSJEQyImJmYubGVuZ3RoPT09Mil7dmFyIGg9ZyhmWzFdKTtoLmxlbmd0aD09PTImJihmWzFdPWhbMF0sZi5wdXNoKGhbMV0pKX19ZWxzZXtmPWUuc3BsaXQoIi8iKTtmb3IodmFyIGw9MDtsPGYubGVuZ3RoO2wrKylpZighZltsXXx8YUMudGVzdChmW2xdKSYmKGQhPT0iQVcifHxsIT09MSkpcmV0dXJufXJldHVybntpZDphLHByZWZpeDpkLGRlc3RpbmF0aW9uSWQ6ZCsiLSIrZlswXSxpZHM6ZixKYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlkIT09dGhpcy5kZXN0aW5hdGlvbklkfX19fX19CmZ1bmN0aW9uIGNDKGEsYil7Zm9yKHZhciBjPXt9LGQ9MDtkPGEubGVuZ3RoOysrZCl7dmFyIGU9YkMoYVtkXSxiKTtlJiYoY1tlLmlkXT1lKX12YXIgZj1bXSxnO2ZvcihnIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShnKSl7dmFyIGg9Y1tnXTtoLnByZWZpeD09PSJBVyImJmguaWRzW2RDWzFdXSYmZi5wdXNoKGguZGVzdGluYXRpb25JZCl9Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDsrK2wpZGVsZXRlIGNbZltsXV07Zm9yKHZhciBuPVtdLHA9bShPYmplY3Qua2V5cyhjKSkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpbi5wdXNoKGNbcS52YWx1ZV0pO3JldHVybiBufXZhciBlQz17fSxkQz0oZUNbMF09MCxlQ1sxXT0xLGVDWzJdPTIsZUNbM109MCxlQ1s0XT0xLGVDWzVdPTAsZUNbNl09MCxlQ1s3XT0wLGVDKTt2YXIgZkM9e2luaXRpYWxpemVkOjExLGNvbXBsZXRlOjEyLGludGVyYWN0aXZlOjEzfSxnQz17fSxoQz1PYmplY3QuZnJlZXplKChnQ1tGLkQuVGRdPSEwLGdDKSksaUM9ZnVuY3Rpb24oKXt0aGlzLlI9TmYoMzQsNTAwKTt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz12b2lkIDB9LGpDPWZ1bmN0aW9uKGEsYixjKXtpZihjLmxlbmd0aCYmZm4uSyl7dmFyIGQ7KGQ9YS5IKVtiXSE9bnVsbHx8KGRbYl09W10pO3ZhciBlOyhlPWEuTilbYl0hPW51bGx8fChlW2JdPVtdKTt2YXIgZj1jLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hYS5OW2JdLmluY2x1ZGVzKGcpfSk7YS5IW2JdLnB1c2guYXBwbHkoYS5IW2JdLHcoZikpO2EuTltiXS5wdXNoLmFwcGx5KGEuTltiXSx3KGYpKTshYS5LJiZmLmxlbmd0aD4wJiYoVm0oInRkYyIsITApLGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0bygpO2EuSD17fTthLks9dm9pZCAwfSxhLlIpKX19OwppQy5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7VW0oInRkYyIsZnVuY3Rpb24oKXthLksmJihBLmNsZWFyVGltZW91dChhLkspLGEuSz12b2lkIDApO3ZhciBiPVtdLGM7Zm9yKGMgaW4gYS5IKWEuSC5oYXNPd25Qcm9wZXJ0eShjKSYmYi5wdXNoKGMrIioiK2EuSFtjXS5qb2luKCIuIikpO3JldHVybiBiLmxlbmd0aD9iLmpvaW4oIiEiKTp2b2lkIDB9LCExKX07CnZhciBrQz1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ7Zm9yKGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT0hMCk7Zm9yKHZhciBlIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShlKSYmKGNbZV09ITApO3JldHVybiBjfSxsQz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD97fTpkO2U9ZT09PXZvaWQgMD8iIjplO2lmKGI9PT1jKXJldHVybltdO3ZhciBmPWZ1bmN0aW9uKHQsdSl7dmFyIHY7QWQodSk9PT0ib2JqZWN0Ij92PXVbdF06QWQodSk9PT0iYXJyYXkiJiYodj11W3RdKTtyZXR1cm4gdj09PXZvaWQgMD9oQ1t0XTp2fSxnPWtDKGIsYyksaDtmb3IoaCBpbiBnKWlmKGcuaGFzT3duUHJvcGVydHkoaCkmJmghPT1GLkQuWGIpe3ZhciBsPShlP2UrIi4iOiIiKStoLG49ZihoLGIpLHA9ZihoLGMpLHE9QWQobik9PT0ib2JqZWN0Inx8QWQobik9PT0iYXJyYXkiLHI9QWQocCk9PT0ib2JqZWN0Inx8QWQocCk9PT0iYXJyYXkiO2lmKHEmJnIpbEMoYSxuLHAsZCxsKTsKZWxzZSBpZihxfHxyfHxuIT09cClkW2xdPSEwfXJldHVybiBPYmplY3Qua2V5cyhkKX0sbUM9bmV3IGlDO3ZhciBuQz1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLks9TmIoKTt0aGlzLkg9Yjt0aGlzLmFyZ3M9Yzt0aGlzLm1lc3NhZ2VDb250ZXh0PWQ7dGhpcy50eXBlPWF9LG9DPWZ1bmN0aW9uKCl7dGhpcy5XYT17fTt0aGlzLmliPXt9O3RoaXMuSz17fTt0aGlzLk49bnVsbDt0aGlzLmhiPXt9O3RoaXMuSD0hMTt0aGlzLnN0YXR1cz0xfTtmdW5jdGlvbiBwQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygic2V0IixhKTpxQygic2V0IixhLGIpfWZ1bmN0aW9uIHJDKGEsYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3FDKCJjb25maWciLGEpOnFDKCJjb25maWciLGEsYil9ZnVuY3Rpb24gc0MoYSxiLGMpe2M9Y3x8e307Y1tGLkQuWGJdPWE7cmV0dXJuIHFDKCJldmVudCIsYixjKX1mdW5jdGlvbiBxQygpe3JldHVybiBhcmd1bWVudHN9O3ZhciB0Qz1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsbCxuLHAscSxyKXt0aGlzLmV2ZW50SWQ9YTt0aGlzLnByaW9yaXR5SWQ9Yjt0aGlzLnByaW9yaXR5UXVldWU9Yzt0aGlzLkVhPWQ7dGhpcy5XYT1lO3RoaXMuaGI9Zjt0aGlzLkhjPWc7dGhpcy5CZz1oO3RoaXMuaWI9bDt0aGlzLmV2ZW50TWV0YWRhdGE9bjt0aGlzLm9uU3VjY2Vzcz1wO3RoaXMub25GYWlsdXJlPXE7dGhpcy5pc0d0bUV2ZW50PXJ9LHVDPWZ1bmN0aW9uKGEpe3ZhciBiPXtvblN1Y2Nlc3M6eGIsb25GYWlsdXJlOnhifTtiPWI9PT12b2lkIDA/e306Yjt2YXIgYyxkLGUsZixnLGgsbCxuLHAscSxyLHQsdSx2LHgseSx6LEMsRCxJLEcsTixTLFcsZWEsamE7cmV0dXJuIG5ldyB0Qygodj0oYz1iKT09bnVsbD92b2lkIDA6Yy5ldmVudElkKSE9bnVsbD92OmEuZXZlbnRJZCwoeD0oZD1iKT09bnVsbD92b2lkIDA6ZC5wcmlvcml0eUlkKSE9bnVsbD94OmEucHJpb3JpdHlJZCwoeT0oZT1iKT09bnVsbD92b2lkIDA6ZS5wcmlvcml0eVF1ZXVlKSE9Cm51bGw/eTphLnByaW9yaXR5UXVldWUsKHo9KGY9Yik9PW51bGw/dm9pZCAwOmYuRWEpIT1udWxsP3o6YS5FYSwoQz0oZz1iKT09bnVsbD92b2lkIDA6Zy5XYSkhPW51bGw/QzphLldhLChEPShoPWIpPT1udWxsP3ZvaWQgMDpoLmhiKSE9bnVsbD9EOmEuaGIsKEk9KGw9Yik9PW51bGw/dm9pZCAwOmwuSGMpIT1udWxsP0k6YS5IYywoRz0obj1iKT09bnVsbD92b2lkIDA6bi5CZykhPW51bGw/RzphLkJnLChOPShwPWIpPT1udWxsP3ZvaWQgMDpwLmliKSE9bnVsbD9OOmEuaWIsKFM9KHE9Yik9PW51bGw/dm9pZCAwOnEuZXZlbnRNZXRhZGF0YSkhPW51bGw/UzphLmV2ZW50TWV0YWRhdGEsKFc9KHI9Yik9PW51bGw/dm9pZCAwOnIub25TdWNjZXNzKSE9bnVsbD9XOmEub25TdWNjZXNzLChlYT0odD1iKT09bnVsbD92b2lkIDA6dC5vbkZhaWx1cmUpIT1udWxsP2VhOmEub25GYWlsdXJlLChqYT0odT1iKT09bnVsbD92b2lkIDA6dS5pc0d0bUV2ZW50KSE9bnVsbD9qYTphLmlzR3RtRXZlbnQpfSwKdkM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtzd2l0Y2goYil7Y2FzZSAzOmMucHVzaChhLkVhKTtjLnB1c2goYS5XYSk7Yy5wdXNoKGEuaGIpO2MucHVzaChhLkhjKTtjLnB1c2goYS5pYik7YnJlYWs7Y2FzZSAyOmMucHVzaChhLkVhKTticmVhaztjYXNlIDE6Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgNDpjLnB1c2goYS5FYSksYy5wdXNoKGEuV2EpLGMucHVzaChhLmhiKSxjLnB1c2goYS5IYyl9cmV0dXJuIGN9LE89ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPW0odkMoYSxkPT09dm9pZCAwPzM6ZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKGdbYl0hPT12b2lkIDApcmV0dXJuIGdbYl19cmV0dXJuIGN9LHdDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPXZDKGEsNCksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWZvcih2YXIgZj1PYmplY3Qua2V5cyhlLnZhbHVlKSwKZz1tKGYpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWJbaC52YWx1ZV09MTtyZXR1cm4gT2JqZWN0LmtleXMoYil9O3RDLnByb3RvdHlwZS5nZXRNZXJnZWRWYWx1ZXM9ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8zOmI7dmFyIGQ9e30sZT0hMSxmPWZ1bmN0aW9uKG4pe0NkKG4pJiZHYihuLGZ1bmN0aW9uKHAscSl7ZT0hMDtkW3BdPXF9KX07YyYmZihjKTt2YXIgZz12Qyh0aGlzLGIpO2cucmV2ZXJzZSgpO2Zvcih2YXIgaD1tKGcpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKWYobC52YWx1ZVthXSk7cmV0dXJuIGU/ZDp2b2lkIDB9Owp2YXIgeEM9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtGLkQuS2YsRi5ELkdmLEYuRC5IZixGLkQuSWYsRi5ELkpmLEYuRC5MZixGLkQuTWZdLGM9dkMoYSwzKSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe2Zvcih2YXIgZj1lLnZhbHVlLGc9e30saD0hMSxsPW0oYiksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7ZltwXSE9PXZvaWQgMCYmKGdbcF09ZltwXSxoPSEwKX12YXIgcT1oP2c6dm9pZCAwO2lmKHEpcmV0dXJuIHF9cmV0dXJue319LHlDPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmV2ZW50SWQ9YTt0aGlzLnByaW9yaXR5SWQ9Yjt0aGlzLnByaW9yaXR5UXVldWU9Yzt0aGlzLkVhPXt9O3RoaXMuV2E9e307dGhpcy5oYj17fTt0aGlzLkhjPXt9O3RoaXMuQmc9e307dGhpcy5pYj17fTt0aGlzLmV2ZW50TWV0YWRhdGE9e307dGhpcy5pc0d0bUV2ZW50PSExO3RoaXMub25TdWNjZXNzPWZ1bmN0aW9uKCl7fTt0aGlzLm9uRmFpbHVyZT0KZnVuY3Rpb24oKXt9fSx6Qz1mdW5jdGlvbihhLGIpe2EuRWE9YjtyZXR1cm4gYX0sQUM9ZnVuY3Rpb24oYSxiKXthLldhPWI7cmV0dXJuIGF9LEJDPWZ1bmN0aW9uKGEsYil7YS5oYj1iO3JldHVybiBhfSxDQz1mdW5jdGlvbihhLGIpe2EuSGM9YjtyZXR1cm4gYX0sREM9ZnVuY3Rpb24oYSxiKXthLkJnPWI7cmV0dXJuIGF9LEVDPWZ1bmN0aW9uKGEsYil7YS5pYj1iO3JldHVybiBhfSxGQz1mdW5jdGlvbihhLGIpe2EuZXZlbnRNZXRhZGF0YT1ifHx7fTtyZXR1cm4gYX0sR0M9ZnVuY3Rpb24oYSxiKXthLm9uU3VjY2Vzcz1iO3JldHVybiBhfSxIQz1mdW5jdGlvbihhLGIpe2Eub25GYWlsdXJlPWI7cmV0dXJuIGF9LElDPWZ1bmN0aW9uKGEsYil7YS5pc0d0bUV2ZW50PWI7cmV0dXJuIGF9LEpDPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgdEMoYS5ldmVudElkLGEucHJpb3JpdHlJZCxhLnByaW9yaXR5UXVldWUsYS5FYSxhLldhLGEuaGIsYS5IYyxhLkJnLGEuaWIsYS5ldmVudE1ldGFkYXRhLAphLm9uU3VjY2VzcyxhLm9uRmFpbHVyZSxhLmlzR3RtRXZlbnQpfTtmdW5jdGlvbiBLQyhhLGIpe0diKGEsZnVuY3Rpb24oYyl7dmFyIGQ7aWYoZD1jLmNoYXJBdCgwKT09PSJfIil7dmFyIGU7YTpzd2l0Y2goYyl7Y2FzZSBGLkQuVmI6Y2FzZSBGLkQuUmY6Y2FzZSBGLkQuc2g6ZT0hMDticmVhayBhO2RlZmF1bHQ6ZT0hMX1kPSFlfWQmJihiJiZiKGMpLGRlbGV0ZSBhW2NdKX0pfTt2YXIgTEM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1iLmV2ZW50SWQsZD1iLnRmLGU9W10sZj1hLkhbY118fFtdO2YubGVuZ3RoJiZlLnB1c2goWyJlcHIiLGYuam9pbigiLiIpXSk7ZCYmZGVsZXRlIGEuSFtjXTtyZXR1cm4gZX0pfSxOQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9TUM7Zm4uTiYmYSE9PXZvaWQgMCYmKGQuSFthXT1kLkhbYV18fFtdLGQuSFthXS5wdXNoKGMrYiksZ3ooKSxleihhKSl9LE1DO2Z1bmN0aW9uIE9DKCl7TUN8fChNQz1uZXcgTEMpfTt2YXIgUEM9ZnVuY3Rpb24oKXt0aGlzLmRlc3RpbmF0aW9ucz17fTt0aGlzLkg9e307dGhpcy5jb21tYW5kcz1bXX0sUUM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXT1hLmRlc3RpbmF0aW9uc1tiLmRlc3RpbmF0aW9uSWRdfHxuZXcgb0N9LFJDPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGQuSCl7dmFyIGU9UUMoYSxkLkgpLGY9ZS5OO2lmKGYpe3ZhciBnPUVkKGMsbnVsbCksaD1FZChlLldhW2QuSC5kZXN0aW5hdGlvbklkXSxudWxsKSxsPUVkKGUuaGIsbnVsbCksbj1FZChlLmliLG51bGwpLHA9RWQoYS5ILG51bGwpLHE9e307aWYoZm4uTil0cnl7cT1FZChyQS5ILG51bGwpfWNhdGNoKHgpe1AoNzIpfXZhciByPWQuSC5wcmVmaXgsdD1mdW5jdGlvbih4KXt2YXIgeT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyh5LHIseCl9LHU9SkMoSUMoSEMoR0MoRkMoREMoQ0MoRUMoQkMoQUMoekMobmV3IHlDKGQubWVzc2FnZUNvbnRleHQuZXZlbnRJZCwKZC5tZXNzYWdlQ29udGV4dC5wcmlvcml0eUlkLGQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlRdWV1ZSksZyksaCksbCksbikscCkscSksZC5tZXNzYWdlQ29udGV4dC5ldmVudE1ldGFkYXRhKSxmdW5jdGlvbigpe2lmKHQpe3ZhciB4PXQ7dD12b2lkIDA7eCgiMiIpO2lmKGQubWVzc2FnZUNvbnRleHQub25TdWNjZXNzKWQubWVzc2FnZUNvbnRleHQub25TdWNjZXNzKCl9fSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjMiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uRmFpbHVyZSlkLm1lc3NhZ2VDb250ZXh0Lm9uRmFpbHVyZSgpfX0pLCEhZC5tZXNzYWdlQ29udGV4dC5pc0d0bUV2ZW50KSksdj1mdW5jdGlvbigpe3RyeXt2YXIgeD1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyh4LHIsIjEiKTt2YXIgeT1kLkguaWQsej1tQztpZihmbi5LJiZiPT09Ri5ELndhKXt2YXIgQyxEPShDPWJDKHkpKT09bnVsbD92b2lkIDA6Qy5pZHM7aWYoIShEJiZELmxlbmd0aD4KMSkpe3ZhciBJPXUuRWFbRi5ELlhiXTtpZighSXx8ST09PXkpe3ZhciBHLE49TWMoImdvb2dsZV90YWdfZGF0YSIse30pO04udGR8fChOLnRkPXt9KTtHPU4udGQ7dmFyIFM9RWQodS5IYyxudWxsKTtFZCh1LkVhLFMpO3ZhciBXPVtdLGVhO2ZvcihlYSBpbiBHKUcuaGFzT3duUHJvcGVydHkoZWEpJiZsQyh6LEdbZWFdLFMpLmxlbmd0aCYmVy5wdXNoKGVhKTtXLmxlbmd0aCYmKGpDKHoseSxXKSxzYigiVEFHR0lORyIsZkNbQi5yZWFkeVN0YXRlXXx8MTQpKTtHW3ldPVN9fX1mKGQuSC5pZCxiLGQuSyx1KX1jYXRjaChmYSl7dmFyIGphPWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKGphLHIsIjQiKX19O2I9PT0iZ3RhZy5nZXQiP3YoKTppbyhlLlIsdil9fX0sU0M9ZnVuY3Rpb24oYSxiKXtpZihiLnR5cGUhPT0icmVxdWlyZSIpe3ZhciBjPXZvaWQgMDtiLnR5cGU9PT0iZXZlbnQiJiYoYz1iLmFyZ3NbMV0pO2lmKGIuSClmb3IodmFyIGQ9UUMoYSxiLkgpLktbYi50eXBlXXx8CltdLGU9MDtlPGQubGVuZ3RoO2UrKylkW2VdKGMpO2Vsc2UgZm9yKHZhciBmIGluIGEuZGVzdGluYXRpb25zKWlmKGEuZGVzdGluYXRpb25zLmhhc093blByb3BlcnR5KGYpKXt2YXIgZz1hLmRlc3RpbmF0aW9uc1tmXTtpZihnJiZnLkspZm9yKHZhciBoPWcuS1tiLnR5cGVdfHxbXSxsPTA7bDxoLmxlbmd0aDtsKyspaFtsXShjKX19fTtQQy5wcm90b3R5cGUucmVnaXN0ZXI9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9UUModGhpcyxhKTtlLnN0YXR1cyE9PTMmJihlLk49YixlLnN0YXR1cz0zLGUuUj1sbyhjKSxUQyh0aGlzLGEsZHx8e30pLHRoaXMuZmx1c2goKSl9OwpQQy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIsYyxkKXtjIT09dm9pZCAwJiYoUUModGhpcyxjKS5zdGF0dXM9PT0xJiYoUUModGhpcyxjKS5zdGF0dXM9Mix0aGlzLnB1c2goInJlcXVpcmUiLFt7fV0sYyx7fSkpLFFDKHRoaXMsYykuSCYmKGQuZGVmZXJyYWJsZT0hMSksZC5ldmVudE1ldGFkYXRhfHwoZC5ldmVudE1ldGFkYXRhPXt9KSxkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXXx8KGQuZXZlbnRNZXRhZGF0YVtILkouc2ddPVtjLmRlc3RpbmF0aW9uSWRdKSxkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXXx8KGQuZXZlbnRNZXRhZGF0YVtILkoubWpdPVtjLmlkXSkpO3RoaXMuY29tbWFuZHMucHVzaChuZXcgbkMoYSxjLGIsZCkpO2QuZGVmZXJyYWJsZXx8dGhpcy5mbHVzaCgpfTsKUEMucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10aGlzLGM9W10sZD0hMSxlPXt9O3RoaXMuY29tbWFuZHMubGVuZ3RoO2U9e1puOnZvaWQgMH0pe3ZhciBmPXRoaXMuY29tbWFuZHNbMF0sZz1mLkg7aWYoZi5tZXNzYWdlQ29udGV4dC5kZWZlcnJhYmxlKSFnfHxRQyh0aGlzLGcpLkg/KGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZT0hMSx0aGlzLmNvbW1hbmRzLnB1c2goZikpOmMucHVzaChmKSx0aGlzLmNvbW1hbmRzLnNoaWZ0KCk7ZWxzZXtzd2l0Y2goZi50eXBlKXtjYXNlICJyZXF1aXJlIjppZihRQyh0aGlzLGcpLnN0YXR1cyE9PTMmJiFhKXt0aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtyZXR1cm59YnJlYWs7Y2FzZSAic2V0Ijp2YXIgaD1mLmFyZ3NbMF07S0MoaCk7VUMoaCk7R2IoaCxmdW5jdGlvbih4LHkpe0VkKFZiKHgseSksYi5IKX0pO0h1KGgsITApO2JyZWFrO2Nhc2UgImV2ZW50IjplLlpuPWYuYXJnc1sxXTt2YXIgbD0KVkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7fX0oZSkpLG49bFtGLkQuWGJdO24mJm4hPT1nLmlkfHxIdShsKTtSQyh0aGlzLGUuWm4sbCxmKTticmVhaztjYXNlICJnZXQiOnZhciBwPXt9LHE9KHBbRi5ELlRmXT1mLmFyZ3NbMF0scFtGLkQuU2ZdPWYuYXJnc1sxXSxwKTtSQyh0aGlzLEYuRC5KYixxLGYpO2JyZWFrO2Nhc2UgImNvbnRhaW5lcl9jb25maWciOnZhciByPVFDKHRoaXMsZyksdD1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh0LCEwKTtyLkg9ITA7RWQodCxyLmhiKTtkPSEwO2JyZWFrO2Nhc2UgImRlc3RpbmF0aW9uX2NvbmZpZyI6dmFyIHU9UUModGhpcyxnKSx2PVZDKGYuYXJnc1swXSxmdW5jdGlvbigpe30pO0h1KHYsITApO3UuV2FbZy5pZF18fCh1LldhW2cuaWRdPXt9KTt1Lkg9ITA7RWQodix1LldhW2cuaWRdKTtkPSEwO2JyZWFrO2Nhc2UgInJlc2V0X2NvbnRhaW5lcl9jb25maWciOlFDKHRoaXMsZykuaGI9e307YnJlYWs7CmNhc2UgInJlc2V0X3RhcmdldF9jb25maWciOlFDKHRoaXMsZykuV2FbZy5pZF09e319dGhpcy5jb21tYW5kcy5zaGlmdCgpO1NDKHRoaXMsZil9fXRoaXMuY29tbWFuZHMucHVzaC5hcHBseSh0aGlzLmNvbW1hbmRzLGMpO2QmJnRoaXMuZmx1c2goKX07dmFyIFRDPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1FZChjLG51bGwpO0VkKFFDKGEsYikuaWIsZCk7UUMoYSxiKS5pYj1kfTtmdW5jdGlvbiBWQyhhLGIpe3ZhciBjPXt9O0diKGEsZnVuY3Rpb24oZCxlKXtFZChWYihkLGUpLGMpfSk7S0MoYyxiKTtVQyhjKTtyZXR1cm4gY30KZnVuY3Rpb24gVUMoYSl7aWYoTSg2MDEpJiZCQSgpKXtmb3IodmFyIGI9ITEsYz1tKG5ldyBTZXQoW0YuRC55YyxGLkQuZGRdKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YVtlXSE9PXZvaWQgMCYmKGI9ITAsZGVsZXRlIGFbZV0pfWImJiFhbCgzNSxmdW5jdGlvbigpe3JldHVybiExfSkmJihaaygzNSwhMCksd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZyYmd2luZG93LmNvbnNvbGUubG9nKCJHb29nbGUgVGFnIE1hbmFnZXI6IFNlcnZlci1zaWRlIEdUTSBwYXJhbWV0ZXJzICh0cmFuc3BvcnRfdXJsL3NlcnZlcl9jb250YWluZXJfdXJsKSBhcmUgbm90IHBlcm1pdHRlZCBvbiB0aGlzIGRvbWFpbiBhbmQgaGF2ZSBiZWVuIGlnbm9yZWQuIiksUCgxOTcpKX19O3ZhciBXQz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgUEM7dGhpcy5LPSExfTtXQy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLkguZmx1c2goKX07dmFyIFhDO2Z1bmN0aW9uIFlDKCl7WEN8fChYQz1uZXcgV0MpO3JldHVybiBYQ31mdW5jdGlvbiBaQyhhLGIsYyxkKXt2YXIgZT1ZQygpLGY9YkMoYyxkLmlzR3RtRXZlbnQpO2YmJihlLksmJihkLmRlZmVycmFibGU9ITApLGUuSC5wdXNoKCJldmVudCIsW2IsYV0sZixkKSl9ZnVuY3Rpb24gJEMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiZlLkgucHVzaCgiZ2V0IixbYSxiXSxmLGQpfWZ1bmN0aW9uIGFEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJjb250YWluZXJfY29uZmlnIixbYl0sZSxjKX0KZnVuY3Rpb24gYkQoYSxiLGMpe3ZhciBkPVlDKCksZT1iQyhhLGMuaXNHdG1FdmVudCk7ZSYmZC5ILnB1c2goImRlc3RpbmF0aW9uX2NvbmZpZyIsW2JdLGUsYyl9ZnVuY3Rpb24gY0QoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF9jb250YWluZXJfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBkRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7YyYmYi5ILnB1c2goInJlc2V0X3RhcmdldF9jb25maWciLFtdLGMse30pfWZ1bmN0aW9uIGVEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtyZXR1cm4gYz9RQyhiLkgsYykuaWI6e319ZnVuY3Rpb24gZkQoYSl7cmV0dXJuIFlDKCkuSC5IW2FdfWZ1bmN0aW9uIGdEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtyZXR1cm4gYz9RQyhiLkgsYykuSDohMX07ZnVuY3Rpb24gaEQoYSxiKXthLmhhc093blByb3BlcnR5KCJndG0udW5pcXVlRXZlbnRJZCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiZ3RtLnVuaXF1ZUV2ZW50SWQiLHt2YWx1ZTpyaigpfSk7Yi5ldmVudElkPWFbImd0bS51bmlxdWVFdmVudElkIl07Yi5wcmlvcml0eUlkPWFbImd0bS5wcmlvcml0eUlkIl07cmV0dXJue2V2ZW50SWQ6Yi5ldmVudElkLHByaW9yaXR5SWQ6Yi5wcmlvcml0eUlkfX1mdW5jdGlvbiBpRChhKXtmb3IodmFyIGI9bShbRi5ELmRkLEYuRC55Y10pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlLGU9YSYmYVtkXXx8ZkQoZCk7aWYoZSlyZXR1cm4gZX19ZnVuY3Rpb24gakQoYSl7cmV0dXJuIWEuaXNHdG1FdmVudHx8YS5ldmVudE1ldGFkYXRhJiZhLmV2ZW50TWV0YWRhdGFbSC5KLkNjXSYmYS5ldmVudE1ldGFkYXRhW0guSi5OYl0hPT12aygpPyExOiEwfTt2YXIga0Q9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTt2YXIgbEQ9ZnVuY3Rpb24oKXt0aGlzLm1lc3NhZ2VzPVtdO3RoaXMuSD1bXX07bEQucHJvdG90eXBlLmVucXVldWU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubWVzc2FnZXMubGVuZ3RoKzE7YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1iO2FbImd0bS5wcmlvcml0eUlkIl09ZDt2YXIgZT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2V2ZW50SWQ6Yixwcmlvcml0eUlkOmQsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjohMH0pO2lmKE0oNTk1KSl7dmFyIGY9Yy5wcmlvcml0eVF1ZXVlP1tdLmNvbmNhdCh3KGMucHJpb3JpdHlRdWV1ZSksW2RdKTpbZF07YVsiZ3RtLnByaW9yaXR5UXVldWUiXT1mO2UucHJpb3JpdHlRdWV1ZT1mfXZhciBnPXttZXNzYWdlOmEsbm90QmVmb3JlRXZlbnRJZDpiLHByaW9yaXR5SWQ6ZCxtZXNzYWdlQ29udGV4dDplfTt0aGlzLm1lc3NhZ2VzLnB1c2goZyk7Zm9yKHZhciBoPTA7aDx0aGlzLkgubGVuZ3RoO2grKyl0cnl7dGhpcy5IW2hdKGcpfWNhdGNoKGwpe319OwpsRC5wcm90b3R5cGUubGlzdGVuPWZ1bmN0aW9uKGEpe3RoaXMuSC5wdXNoKGEpfTtsRC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXt9LGI9MDtiPHRoaXMubWVzc2FnZXMubGVuZ3RoO2IrKyl7dmFyIGM9dGhpcy5tZXNzYWdlc1tiXSxkPWFbYy5ub3RCZWZvcmVFdmVudElkXTtkfHwoZD1bXSxhW2Mubm90QmVmb3JlRXZlbnRJZF09ZCk7ZC5wdXNoKGMpfXJldHVybiBhfTtsRC5wcm90b3R5cGUucHJ1bmU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9W10sZD0wO2Q8dGhpcy5tZXNzYWdlcy5sZW5ndGg7ZCsrKXt2YXIgZT10aGlzLm1lc3NhZ2VzW2RdO2Uubm90QmVmb3JlRXZlbnRJZD09PWE/Yi5wdXNoKGUpOmMucHVzaChlKX10aGlzLm1lc3NhZ2VzPWM7cmV0dXJuIGJ9OwpmdW5jdGlvbiBtRChhLGIsYyl7Yy5ldmVudE1ldGFkYXRhPWMuZXZlbnRNZXRhZGF0YXx8e307Yy5ldmVudE1ldGFkYXRhW0guSi5OYl09TSg1NTApP3ZrKCk6RSg2KTtuRCgpLmVucXVldWUoYSxiLGMpfWZ1bmN0aW9uIG5EKCl7cmV0dXJuIGtqKCJtYiIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxEfSl9O3ZhciBwRD1mdW5jdGlvbihhLGIpe3ZhciBjPW9EO2I9U3RyaW5nKGIpLnNwbGl0KCIsIik7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWMuTltiW2RdXXx8W107Yy5OW2JbZF1dPWU7ZS5pbmRleE9mKGEpPDAmJmUucHVzaChhKX19LHFEPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW9ELGQ9W10sZT1bXSxmPXt9LGc9MDtnPGEubGVuZ3RoO2Y9e2xrOnZvaWQgMCxRajp2b2lkIDAsUmo6dm9pZCAwfSxnKyspe3ZhciBoPWFbZ107aWYoaC5pbmRleE9mKCItIik+PTApe2lmKGYubGs9YkMoaCxiKSxmLmxrKXt2YXIgbD10aygpO0NiKGwsZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiB4LmxrLmRlc3RpbmF0aW9uSWQ9PT15fX0oZikpP2QucHVzaChoKTplLnB1c2goaCl9fWVsc2V7aWYoTSg1NTApKXt2YXIgbj1jLktbaF18fFtdO2YuUmo9e307bi5mb3JFYWNoKGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXt4LlJqW3ldPSEwfX0oZikpO2Zvcih2YXIgcD0KdGsoKSxxPTA7cTxwLmxlbmd0aDtxKyspZi5SaltwW3FdXSYmZC5wdXNoKHBbcV0pfWVsc2V7dmFyIHI9Yy5IW2hdfHxbXTtmLlFqPXt9O3IuZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Ralt5XT0hMH19KGYpKTtmb3IodmFyIHQ9d2soKSx1PTA7dTx0Lmxlbmd0aDt1KyspaWYoZi5Ralt0W3VdXSl7ZD1kLmNvbmNhdCh0aygpKTticmVha319dmFyIHY9Yy5OW2hdfHxbXTt2Lmxlbmd0aCYmKGQ9ZC5jb25jYXQodikpfX1yZXR1cm57ZWs6ZCxQczplfX0sckQ9ZnVuY3Rpb24oYSl7R2Iob0QuSCxmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLDEpfSl9LHNEPWZ1bmN0aW9uKGEpe0diKG9ELkssZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSx0RD1mdW5jdGlvbihhKXtHYihvRC5OLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsCjEpfSl9LG9EPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5LPXt9fTtmdW5jdGlvbiB1RChhLGIsYyl7dmFyIGQ9RWQoYSxudWxsKTtkLmV2ZW50SWQ9dm9pZCAwO2QuaW5oZXJpdFBhcmVudENvbmZpZz12b2lkIDA7T2JqZWN0LmtleXMoYikuc29tZShmdW5jdGlvbihmKXtyZXR1cm4gYltmXSE9PXZvaWQgMH0pJiZQKDEzNik7dmFyIGU9RWQoYixudWxsKTtFZChjLGUpO21EKHJDKHdrKClbMF0sZSksYS5ldmVudElkLGQpfQpmdW5jdGlvbiB2RChhLGIsYyxkKXt2YXIgZT17fSxmPShlW0YuRC5VYl09Ri5ELndhLGVbImd0bS5jb25maWdDb250YWluZXJJZCJdPWEuaWQsZVsiZ3RtLmNvbmZpZ1BhcmFtZXRlcnMiXT1iLGVbImd0bS51bmlxdWVFdmVudElkIl09ZC5ldmVudElkLGUpO2MucHJpb3JpdHlRdWV1ZSYmKGZbImd0bS5wcmlvcml0eVF1ZXVlIl09Yy5wcmlvcml0eVF1ZXVlKTtjLmV2ZW50TWV0YWRhdGEmJihmWyJndG0uZXZlbnRNZXRhZGF0YSJdPWMuZXZlbnRNZXRhZGF0YSk7YS5KYygpJiYoZlsiZ3RtLmNvbmZpZ0NvbnRhaW5lcklkIl09d2soKVswXSxmWyJndG0ub3JpZ2luYWxDb25maWdUYXJnZXRJZCJdPWEuaWQpO3JldHVybiBmfWZ1bmN0aW9uIHdEKGEsYixjKXtpZihJZigxMSkmJiFjJiYhYVtGLkQuVmRdKXt2YXIgZD1hbCgxMCxmdW5jdGlvbigpe3JldHVybiExfSk7WmsoMTAsITApO1hCKGQsYSxiKTtpZihkKXJldHVybiEwfXJldHVybiExfTtmdW5jdGlvbiB4RChhLGIpe3ZhciBjPXt9LGQ9KGMuZXZlbnQ9YSxjKTtiJiYoZC5ldmVudE1vZGVsPUVkKGIsbnVsbCksYltGLkQuUGZdJiYoZC5ldmVudENhbGxiYWNrPWJbRi5ELlBmXSksYltGLkQucGhdJiYoZC5ldmVudFRpbWVvdXQ9YltGLkQucGhdKSk7cmV0dXJuIGR9CmZ1bmN0aW9uIHlEKGEsYil7dmFyIGM9YSYmYVtGLkQuWGJdO2M9PT12b2lkIDAmJihjPXVBKEYuRC5YYiwyKSxjPT09dm9pZCAwJiYoYz0iZGVmYXVsdCIpKTtpZih6YihjKXx8QXJyYXkuaXNBcnJheShjKSl7dmFyIGQ7ZD1iLmlzR3RtRXZlbnQ/emIoYyk/W2NdOmM6Yy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKS5zcGxpdCgiLCIpO3ZhciBlPXFEKGQsYi5pc0d0bUV2ZW50KSxmPWUuZWssZz1lLlBzO2lmKGcubGVuZ3RoKWZvcih2YXIgaD1pRChhKSxsPTA7bDxnLmxlbmd0aDtsKyspe3ZhciBuPWJDKGdbbF0sYi5pc0d0bUV2ZW50KTtpZihuKXt2YXIgcD1uLmRlc3RpbmF0aW9uSWQscT12b2lkIDA7KChxPW5rKG4uZGVzdGluYXRpb25JZCkpPT1udWxsP3ZvaWQgMDpxLnN0YXRlKT09PTB8fG5BKHAsaCx7c291cmNlOjMsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KX19dmFyIHI9Zi5jb25jYXQoZyk7cmV0dXJue2VrOmNDKGYsYi5pc0d0bUV2ZW50KSwKbXI6Y0MocixiLmlzR3RtRXZlbnQpfX19O3ZhciB6RD17fSxBRD0oekQuY29uZmlnPWZ1bmN0aW9uKGEsYil7dmFyIGM9aEQoYSxiKSxkO2E6e2lmKCEoYS5sZW5ndGg8MikmJnpiKGFbMV0pKXt2YXIgZT17fTtpZihhLmxlbmd0aD4yKXtpZihhWzJdIT09dm9pZCAwJiYhQ2QoYVsyXSl8fGEubGVuZ3RoPjMpe2Q9dm9pZCAwO2JyZWFrIGF9ZT1hWzJdfXZhciBmPWJDKGFbMV0sYi5pc0d0bUV2ZW50KTtpZihmKXtkPXt0YXJnZXQ6ZixwYXJhbXM6ZX07YnJlYWsgYX19ZD12b2lkIDB9dmFyIGc9ZDtpZihnKXt2YXIgaD1nLnRhcmdldCxsPWcucGFyYW1zLG47YTp7aWYoIUlmKDcpKXt2YXIgcD15ayh6aygpKTtpZihNayhwKSl7dmFyIHE9cC5wYXJlbnQscj1xLmlzRGVzdGluYXRpb247bj17VnM6eWsocSksTXM6cn07YnJlYWsgYX19bj12b2lkIDB9dmFyIHQ9bix1PXQ9PW51bGw/dm9pZCAwOnQuVnMsdj10PT1udWxsP3ZvaWQgMDp0Lk1zO2RCKGMuZXZlbnRJZCwiZ3RhZy5jb25maWciKTt2YXIgeCx5PWguZGVzdGluYXRpb25JZDsKaWYoaC5KYygpP3RrKCkuaW5kZXhPZih5KSE9PS0xOndrKCkuaW5kZXhPZih5KSE9PS0xKWE6e2lmKHUmJihQKDEyOCksdiYmUCgxMzApLGIuaW5oZXJpdFBhcmVudENvbmZpZykpe3ZhciB6O3ZhciBDPSRrKDEyKTtpZihDKXVEKGIsQyxsKSx6PSExO2Vsc2V7dmFyIEQ9JGsoMTEpOyFsW0YuRC5WZF0mJihNKDU1MCl8fElmKDExKSkmJkR8fFprKDExLEVkKGwsbnVsbCkpO3o9ITB9eiYmdS5jb250YWluZXJzJiZ1LmNvbnRhaW5lcnMuam9pbigiLCIpO3g9dm9pZCAwO2JyZWFrIGF9dmFyIEk9IUlmKDQ1KSxHPSFTYihoLmlkLCJHVE0tIik7SSYmRyYmKE9iamVjdC5rZXlzKGwpLmxlbmd0aD09PTA/R3UoVC5XLlNrKTpHdShULlcuVGspLEVsKCkmJkd1KFQuVy5SayksJGsoMzEpJiZHdShULlcuVWspKTt2YXIgTj1ZQjtmbi5LJiYoTi5IPT09MSYmKFFtLkgubWNjPSExKSxOLkg9Mik7aWYoTSg1NTApfHwhd0QobCxiLGguSmMoKSkpe2tELkh8fFAoNDMpO2lmKCFNKDU1MCkpe2lmKCFiLm5vVGFyZ2V0R3JvdXApe3ZhciBTPQpoLmlkO2lmKGguSmMoKSl0RChTKSxwRChTLGxbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3JEKFMpO3ZhciBXPWxbRi5ELk9kXXx8ImRlZmF1bHQiLGVhPW9EO1c9Vy50b1N0cmluZygpLnNwbGl0KCIsIik7Zm9yKHZhciBqYT0wO2phPFcubGVuZ3RoO2phKyspe3ZhciBmYT1lYS5IW1dbamFdXXx8W107ZWEuSFtXW2phXV09ZmE7ZmEuaW5kZXhPZihTKTwwJiZmYS5wdXNoKFMpfX19ZGVsZXRlIGxbRi5ELk9kXX12YXIgc2E9Yi5ldmVudE1ldGFkYXRhfHx7fTtzYS5oYXNPd25Qcm9wZXJ0eShILkouYWUpfHwoc2FbSC5KLmFlXT0hYi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uKTtiLmV2ZW50TWV0YWRhdGE9c2E7ZGVsZXRlIGxbRi5ELlBmXTtpZihNKDU1MCkpe3g9dkQoaCxsLGIsYyk7YnJlYWsgYX12YXIgZGE9ISFsW0YuRC5WZF07ZGVsZXRlIGxbRi5ELlZkXTt2YXIgbWE9dGsoKSxQYT1jRCxGYT1hRDtoLkpjKCkmJihtYT1baC5pZF0sUGE9ZEQsRmE9YkQpO2Zvcih2YXIgcWE9MDtxYTwKbWEubGVuZ3RoO3FhKyspe2RhfHxQYShtYVtxYV0pO3ZhciBpYj1nRChtYVtxYV0pO0ZhKG1hW3FhXSxFZChsLG51bGwpLEVkKGIsbnVsbCkpO2liJiZkYXx8WkMoRi5ELndhLEVkKGwsbnVsbCksbWFbcWFdLEVkKGIsbnVsbCkpfX14PXZvaWQgMH1lbHNlIGE6e2lmKCFiLmluaGVyaXRQYXJlbnRDb25maWcmJiFsW0YuRC5aY10pe3ZhciBYYj1pRChsKSxMYz1oLmRlc3RpbmF0aW9uSWQ7aWYoaC5KYygpKW5BKExjLFhiLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pO2Vsc2UgaWYodSE9PXZvaWQgMCYmdS5jb250YWluZXJzLmluZGV4T2YoTGMpIT09LTEpe3ZhciBRZD0kaygxMSksWWM9JGsoMTIpO1FkP3VEKGIsbCxRZCk6WWN8fFprKDEyLEVkKGwsbnVsbCkpfWVsc2UgaWYoaEEoTGMsWGIsITAse3NvdXJjZToyLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSksTSg1NTApKXt4PXZEKGgsCmwsYixjKTticmVhayBhfX14PXZvaWQgMH1yZXR1cm4geH19LHpELmNvbnNlbnQ9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aD09PTMpe1AoMzkpO3ZhciBjPWhEKGEsYiksZD1hWzFdLGU9e30sZj1PbyhhWzJdKSxnO2ZvcihnIGluIGYpaWYoZi5oYXNPd25Qcm9wZXJ0eShnKSl7dmFyIGg9ZltnXTtlW2ddPWc9PT1GLkQuWWc/QXJyYXkuaXNBcnJheShoKT9OYU46TnVtYmVyKGgpOmc9PT1GLkQubmM/KEFycmF5LmlzQXJyYXkoaCk/aDpbaF0pLm1hcChQbyk6UW8oaCl9Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufHwoZVtGLkQubWFdJiZQKDEzOSksZVtGLkQuWGFdJiZQKDE0MCkpO2Q9PT0iZGVmYXVsdCI/VG8oZSk6ZD09PSJ1cGRhdGUiP1ZvKGUsYyk6ZD09PSJkZWNsYXJlIiYmYi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZTbyhlKX19LHpELmNvbnRhaW5lcl9jb25maWc9ZnVuY3Rpb24oYSxiKXtpZihqRChiKSYmYS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmQ2QoYVsyXSkpe3ZhciBjPQphWzJdLGQ9YkMoYVsxXSwhMCk7ZCYmYUQoZC5kZXN0aW5hdGlvbklkLGMsRWQoYixudWxsKSl9fSx6RC5kZXN0aW5hdGlvbl9jb25maWc9ZnVuY3Rpb24oYSxiKXtpZihqRChiKSYmYS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmQ2QoYVsyXSkpe3ZhciBjPWFbMl0sZD1iQyhhWzFdLCEwKTtpZihkKXtpZihNKDU1MCkpe2lmKCFiLm5vVGFyZ2V0R3JvdXApe3ZhciBlPWQuaWQ7aWYoZC5KYygpKXREKGUpLHBEKGUsY1tGLkQuT2RdfHwiZGVmYXVsdCIpO2Vsc2V7c0QoZSk7dmFyIGY9Y1tGLkQuT2RdfHwiZGVmYXVsdCIsZz1vRDtmPVN0cmluZyhmKS5zcGxpdCgiLCIpO2Zvcih2YXIgaD0wO2g8Zi5sZW5ndGg7aCsrKXt2YXIgbD1nLktbZltoXV18fFtdO2cuS1tmW2hdXT1sO2wuaW5kZXhPZihlKTwwJiZsLnB1c2goZSl9fX1kZWxldGUgY1tGLkQuT2RdfWJEKGQuaWQsYyxFZChiLG51bGwpKX19fSx6RC5ldmVudD1mdW5jdGlvbihhLGIpe3ZhciBjPWFbMV07aWYoIShhLmxlbmd0aDwyKSYmCnpiKGMpKXt2YXIgZD12b2lkIDA7aWYoYS5sZW5ndGg+Mil7aWYoIUNkKGFbMl0pJiZhWzJdIT09dm9pZCAwfHxhLmxlbmd0aD4zKXJldHVybjtkPWFbMl19dmFyIGU9eEQoYyxkKSxmPWhEKGEsYiksZz1mLmV2ZW50SWQsaD1mLnByaW9yaXR5SWQ7ZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nO2gmJihlWyJndG0ucHJpb3JpdHlJZCJdPWgpO2IucHJpb3JpdHlRdWV1ZSYmKGVbImd0bS5wcmlvcml0eVF1ZXVlIl09Yi5wcmlvcml0eVF1ZXVlKTtpZihjPT09Im9wdGltaXplLmNhbGxiYWNrIilyZXR1cm4gZS5ldmVudE1vZGVsPWUuZXZlbnRNb2RlbHx8e30sZTt2YXIgbD15RChkLGIpO2lmKGwpe2Zvcih2YXIgbj1sLmVrLHA9bC5tcixxPXAubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmlkfSkscj1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5kZXN0aW5hdGlvbklkfSksdD1uLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHU9bSh0aygpKSx2PXUubmV4dCgpOyF2LmRvbmU7dj0KdS5uZXh0KCkpe3ZhciB4PXYudmFsdWU7ci5pbmRleE9mKHgpPDAmJnQucHVzaCh4KX1kQihnLGMpO2Zvcih2YXIgeT1tKHQpLHo9eS5uZXh0KCk7IXouZG9uZTt6PXkubmV4dCgpKXt2YXIgQz16LnZhbHVlLEQ9RWQoYixudWxsKSxJPUVkKGQsbnVsbCk7ZGVsZXRlIElbRi5ELlBmXTt2YXIgRz1ELmV2ZW50TWV0YWRhdGF8fHt9O0cuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KEdbSC5KLmFlXT0hRC5mcm9tQ29udGFpbmVyRXhlY3V0aW9uKTtHW0guSi5tal09cS5zbGljZSgpO0dbSC5KLnNnXT1yLnNsaWNlKCk7RC5ldmVudE1ldGFkYXRhPUc7WkMoYyxJLEMsRCl9ZS5ldmVudE1vZGVsPWUuZXZlbnRNb2RlbHx8e307cS5sZW5ndGg+MD9lLmV2ZW50TW9kZWxbRi5ELlhiXT1xLmpvaW4oIiwiKTpkZWxldGUgZS5ldmVudE1vZGVsW0YuRC5YYl07a0QuSHx8UCg0Myk7Yi5ub0d0bUV2ZW50PT09dm9pZCAwJiZiLmV2ZW50TWV0YWRhdGEmJmIuZXZlbnRNZXRhZGF0YVtILkouQm5dJiYoYi5ub0d0bUV2ZW50PQohMCk7ZS5ldmVudE1vZGVsW0YuRC5ZY10mJihiLm5vR3RtRXZlbnQ9ITApO3JldHVybiBiLm5vR3RtRXZlbnQ/dm9pZCAwOmV9fX0sekQuZ2V0PWZ1bmN0aW9uKGEsYil7UCg1Myk7aWYoYS5sZW5ndGg9PT00JiZ6YihhWzFdKSYmemIoYVsyXSkmJnliKGFbM10pKXt2YXIgYz1iQyhhWzFdLGIuaXNHdG1FdmVudCksZD1TdHJpbmcoYVsyXSksZT1hWzNdO2lmKGMpe2tELkh8fFAoNDMpO3ZhciBmPWlEKCk7aWYoQ2IodGsoKSxmdW5jdGlvbihoKXtyZXR1cm4gYy5kZXN0aW5hdGlvbklkPT09aH0pKXtoRChhLGIpO3ZhciBnPXt9O0VkKChnW0YuRC5UZl09ZCxnW0YuRC5TZl09ZSxnKSxudWxsKTskQyhkLGZ1bmN0aW9uKGgpe2JkKGZ1bmN0aW9uKCl7ZShoKX0pfSxjLmlkLGIpfWVsc2UgbkEoYy5kZXN0aW5hdGlvbklkLGYse3NvdXJjZTo0LGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fX0sekQuanM9ZnVuY3Rpb24oYSxiKXt2YXIgYztpZihhLmxlbmd0aD09PQoyJiZhWzFdLmdldFRpbWUpe2tELkg9ITA7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZCxnPXt9O2M9KGcuZXZlbnQ9Imd0bS5qcyIsZ1siZ3RtLnN0YXJ0Il09YVsxXS5nZXRUaW1lKCksZ1siZ3RtLnVuaXF1ZUV2ZW50SWQiXT1lLGdbImd0bS5wcmlvcml0eUlkIl09ZixnKX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfSx6RC5wb2xpY3k9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmeWIoYVsyXSkpe2lmKGh5KGFbMV0sYVsyXSksUCg3NCksYVsxXT09PSJhbGwiKXtQKDc1KTt2YXIgYj0hMTt0cnl7Yj1hWzJdKEUoNSksInVua25vd24iLHt9KX1jYXRjaChjKXt9Ynx8UCg3Nil9fWVsc2UgUCg3Myl9LHpELnJlc2V0X3RhcmdldF9jb25maWc9ZnVuY3Rpb24oYSxiKXtpZihqRChiKSYmYS5sZW5ndGg9PT0yJiZ6YihhWzFdKSl7dmFyIGM9YkMoYVsxXSwhMCk7YyYmZEQoYy5pZCl9fSx6RC5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz12b2lkIDA7CmEubGVuZ3RoPT09MiYmQ2QoYVsxXSk/Yz1FZChhWzFdLG51bGwpOmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJihjPXt9LENkKGFbMl0pfHxBcnJheS5pc0FycmF5KGFbMl0pP2NbYVsxXV09RWQoYVsyXSxudWxsKTpjW2FbMV1dPWFbMl0pO2lmKGMpe1prKDMxLCEwKTt2YXIgZD1oRChhLGIpLGU9ZC5ldmVudElkLGY9ZC5wcmlvcml0eUlkO0VkKGMsbnVsbCk7RSg1KTt2YXIgZz1FZChjLG51bGwpO1lDKCkuSC5wdXNoKCJzZXQiLFtnXSx2b2lkIDAsYik7Y1siZ3RtLnVuaXF1ZUV2ZW50SWQiXT1lO2YmJihjWyJndG0ucHJpb3JpdHlJZCJdPWYpO2RlbGV0ZSBjLmV2ZW50O2Iub3ZlcndyaXRlTW9kZWxGaWVsZHM9ITA7cmV0dXJuIGN9fSx6RCksQkQ9e30sQ0Q9KEJELnBvbGljeT0hMCxCRCk7dmFyIEVEPWZ1bmN0aW9uKGEpe2lmKEREKGEpKXJldHVybiBhO3RoaXMudmFsdWU9YX07RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTt2YXIgREQ9ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fEFkKGEpIT09Im9iamVjdCJ8fENkKGEpPyExOiJnZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWUiaW4gYX07RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZT1FRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlO3ZhciBGRD17QmI6IjEiLGVlOiIyIixYZDoiMyIsY2U6IjQiLHhmOiI1IixxZzoiNiIsS2g6IjciLHRqOiI4IixsaToiOSIsamo6IjEwIn07CnZhciBHRD1mdW5jdGlvbihhLGIpe2lmKGEpe3ZhciBjPWEudHJpbSgpLnJlcGxhY2VBbGwoL1xzKy9nLCIiKS5yZXBsYWNlQWxsKC8oXGR7Mix9KVwuL2csIiQxIikucmVwbGFjZUFsbCgvLS9nLCIiKS5yZXBsYWNlQWxsKC9cKChcZCspXCkvZywiJDEiKTtpZihiJiZjLm1hdGNoKC9eXCs/XGR7Myw0fSQvKSlyZXR1cm4gYztjLmNoYXJBdCgwKSE9PSIrIiYmKGM9IisiK2MpO2lmKGMubWF0Y2gobmV3IFJlZ0V4cCgiXlxcK1xcZHsiKyhNKDU5Nyk/NzoxMCkrIiwxNX0kIikpKXJldHVybiBjfX0sSUQ9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9YS50cmltKCk7aWYoSEQudGVzdChiKSlyZXR1cm4gYi50b0xvd2VyQ2FzZSgpLnJlcGxhY2VBbGwoL1stIF0rL2csIiIpfX0sTUQ9ZnVuY3Rpb24oYSl7dmFyIGI9SkQoS0QpKGEpO2lmKGImJiFMRChiKSlyZXR1cm4gYn0sTEQ9ZnVuY3Rpb24oYSl7aWYoIUEubG9jYXRpb24pcmV0dXJuITE7dmFyIGI9TmooQS5sb2NhdGlvbiwiaG9zdCIsITApLApjO2lmKE0oNjAyKSlhOntmb3IodmFyIGQ9Yi5zcGxpdCgiLiIpLGU9YS50b0xvd2VyQ2FzZSgpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXt2YXIgZz1kLnNsaWNlKGYpLmpvaW4oIi4iKTtpZihlLm1hdGNoKCJAIitnKyIkIikpe2M9ITA7YnJlYWsgYX19Yz0hMX1lbHNlIGM9YS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYik+PTA7cmV0dXJuIGN9LEpEPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm1hdGNoKGEpO3JldHVybiBjP2NbMF0udHJpbSgpLnRvTG93ZXJDYXNlKCk6dm9pZCAwfX0sS0Q9L1tBLVowLTkuXyUrLV0rQFtBLVowLTkuLV0rXC5bQS1aXXsyLH0vaSxORD1KRCgvXihbXlx4MDAtXHg0MFx4NWItXHg2MFx4N2ItXHhmZl18Wy4tXXxccykrJC8pLEhEPVJlZ0V4cCgiXig/OltBLVpdezEsMn1cXGRbQS1aXFxkXT9bIC1dP1xcZFtBLVpdezJ9fFtBLVpdXFxkW0EtWl1bIC1dP1xcZFtBLVpdXFxkfFxcZHs0fSA/W0EtWl17Mn18W0EtWl1cXGR7NH1bQS1aXXszfXxcXGR7NX0oPzotXFxkezR9KT98XFxkezV9LVxcZHszfXxcXGR7NH0tXFxkezN9fFxcZHszfS1cXGR7NH18XFxkezJ9LVxcZHszfXxcXGR7M30gP1xcZHsyfXxcXGR7NCw3fSkkIiwKImkiKSxPRD1KRCgvXihbXlx4MDAtXHg0MFx4NWItXHg2MFx4N2ItXHhmZl18Wy4tXXxcc3xcZCkrJC8pOwp2YXIgUEQ9ZnVuY3Rpb24oKXt2YXIgYT1TdHJpbmcoYWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pKTthLmluZGV4T2YoIi4iKSE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGEuaW5kZXhPZigiLiIpKzMpKTt2YXIgYj1hbCgzNCxmdW5jdGlvbigpe3JldHVybiAwfSk7cmV0dXJue3Z0Ok51bWJlcihhKSxzdDpifX0sUUQ9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pfSxTRD1mdW5jdGlvbihhKXt2YXIgYj1wZCgpfHwwLGM9W0ZELkJiXTtNKDU2OCkmJmMucHVzaChGRC5lZSxGRC5YZCxGRC5jZSxGRC54ZixGRC5xZyxGRC50aixGRC5saSxGRC5qaik7Zm9yKHZhciBkPVJEKGEsbmV3IFNldChjKSksZT1hbCgzMixmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSksZj1tKGQpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2Uuc2V0KGguRGEsaCl9dmFyIGw9KHBkKCl8fDApLWIsbj1hbCgzMyxmdW5jdGlvbigpe3JldHVybiAwfSk7ClprKDMzLG4rbCk7dmFyIHA9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO1prKDM0LHArMSl9LFJEPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPU5mKDM2LDIpLGQ9W10sZT1be29vOmEsZGVwdGg6MH1dO2UubGVuZ3RoPjA7KWZvcih2YXIgZj1lLnNoaWZ0KCksZz1mLm9vLGg9Zi5kZXB0aCxsPW0oT2JqZWN0LmtleXMoZykpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2lmKCFURC5oYXMocCkpe3ZhciBxPWdbcF07aWYocSlpZihDZChxKSloKzE8PWMmJmUucHVzaCh7b286cSxkZXB0aDpoKzF9KTtlbHNle2Zvcih2YXIgcj1tKGIpLHQ9ci5uZXh0KCk7IXQuZG9uZTt0PXIubmV4dCgpKXt2YXIgdT10LnZhbHVlLHY9VURbdV07aWYodiYmdi5LYy50ZXN0KHApKXt2YXIgeD12Lm5hKFN0cmluZyhxKSk7aWYoeCl7ZC5wdXNoKHtDYTp4LERhOnV9KTtiLmRlbGV0ZSh1KTticmVha319fWlmKGIuc2l6ZT09PTApcmV0dXJuIGR9fX1yZXR1cm4gZH0sVEQ9Cm5ldyBTZXQoWyJpdGVtcyIsImVjb21tZXJjZSJdKSxWRD1SZWdFeHAoInBob25lIiwiaSIpLFdEPVJlZ0V4cCgiZmlyc3RfP25hbWUiLCJpIiksWEQ9UmVnRXhwKCJsYXN0Xz9uYW1lIiwiaSIpLFlEPVJlZ0V4cCgiY291bnRyeSIsImkiKSxaRD1SZWdFeHAoInBvc3R8emlwIiwiaSIpLCREPVJlZ0V4cCgiYWRkcmVzc3xzdHJlZXQiLCJpIiksYUU9UmVnRXhwKCJjaXR5IiwiaSIpLGJFPVJlZ0V4cCgicmVnaW9ufHN0YXRlfHByb3ZpbmNlIiwiaSIpLGNFPXt9LFVEPShjRVtGRC5CYl09e0tjOlJlZ0V4cCgiZW1haWwiLCJpIiksbmE6TUR9LGNFW0ZELmVlXT17S2M6VkQsbmE6ZnVuY3Rpb24oYSl7cmV0dXJuIEdEKGEsITEpfX0sY0VbRkQuWGRdPXtLYzpXRCxuYTpORH0sY0VbRkQuY2VdPXtLYzpYRCxuYTpORH0sY0VbRkQudGpdPXtLYzokRCxuYTpPRH0sY0VbRkQubGldPXtLYzphRSxuYTpORH0sY0VbRkQuampdPXtLYzpiRSxuYTpORH0sY0VbRkQucWddPXtLYzpaRCxuYTpJRH0sY0VbRkQueGZdPQp7S2M6WUQsbmE6TkR9LGNFKTt2YXIgZEU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMubG9hZGVkPSExO3RoaXMuSD1bXTtpZihCLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXRoaXMub25Mb2FkKCk7ZWxzZSAkYyhBLCJsb2FkIixmdW5jdGlvbigpe3JldHVybiB2b2lkIGEub25Mb2FkKCl9KX07ZEUucHJvdG90eXBlLm9uTG9hZD1mdW5jdGlvbigpe2lmKCF0aGlzLmxvYWRlZCl7dGhpcy5sb2FkZWQ9ITA7Zm9yKHZhciBhPTA7YTx0aGlzLkgubGVuZ3RoO2ErKyliZCh0aGlzLkhbYV0pfX07dmFyIGZFPWZ1bmN0aW9uKGEpe3ZhciBiPWVFO2IubG9hZGVkP2JkKGEpOmIuSC5wdXNoKGEpfSxlRT1uZXcgZEU7dmFyIGdFPWZ1bmN0aW9uKCl7dGhpcy5aPTA7dGhpcy5LPXt9O3RoaXMuSD1bXTt0aGlzLk49W107dGhpcy5mYT10aGlzLlI9dGhpcy5qYT0hMX0saUU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWhFO2EuZXZlbnRDYWxsYmFjaz1iO2MmJihhLmV2ZW50VGltZW91dD1jKTtyZXR1cm4gZC5wdXNoKGEpfSxqRT1mdW5jdGlvbihhLGIpe2lmKCFBYihiKXx8YjwwKWI9MDt2YXIgYz1xaigpLGQ9MCxlPSExLGY9dm9pZCAwO2Y9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZXx8KGU9ITAsYSgpKTtmPXZvaWQgMH0sYik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGc9Yz9jLnN1YnNjcmliZXJzOjE7KytkPT09ZyYmKGYmJihBLmNsZWFyVGltZW91dChmKSxmPXZvaWQgMCksZXx8KGEoKSxlPSEwKSl9fSxsRT1mdW5jdGlvbihhKXt2YXIgYjtpZihhLk4ubGVuZ3RoKWI9YS5OLnNoaWZ0KCk7ZWxzZSBpZihhLkgubGVuZ3RoKWI9YS5ILnNoaWZ0KCk7ZWxzZSByZXR1cm47dmFyIGM7dmFyIGQ9YjtpZihhLmphfHwKIWtFKGQubWVzc2FnZSkpYz1kO2Vsc2V7YS5qYT0hMDt2YXIgZT1kLm1lc3NhZ2VbImd0bS51bmlxdWVFdmVudElkIl0sZixnO3R5cGVvZiBlPT09Im51bWJlciI/KGY9ZS0yLGc9ZS0xKTooZj1yaigpLGc9cmooKSxkLm1lc3NhZ2VbImd0bS51bmlxdWVFdmVudElkIl09cmooKSk7dmFyIGg9e30sbD17bWVzc2FnZTooaC5ldmVudD0iZ3RtLmluaXRfY29uc2VudCIsaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1mLGgpLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmZ9fSxuPXt9LHA9e21lc3NhZ2U6KG4uZXZlbnQ9Imd0bS5pbml0IixuWyJndG0udW5pcXVlRXZlbnRJZCJdPWcsbiksbWVzc2FnZUNvbnRleHQ6e2V2ZW50SWQ6Z319O2EuSC51bnNoaWZ0KHAsZCk7Yz1sfXJldHVybiBjfSxvRT1mdW5jdGlvbihhKXthLmZhfHxQKDE5Nik7Zm9yKHZhciBiPSExLGM7IWEuUiYmKGM9bEUoYSkpOyl7YS5SPSEwO3ZhciBkPXJBO2RlbGV0ZSBkLkguZXZlbnRNb2RlbDtvQShkKTt2YXIgZT1jLGY9CmUubWVzc2FnZSxnPWUubWVzc2FnZUNvbnRleHQ7aWYoZj09bnVsbClhLlI9ITE7ZWxzZXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJnNBKCk7dHJ5e2lmKHliKGYpKXRyeXtmLmNhbGwodEEpfWNhdGNoKFMpe31lbHNlIGlmKEFycmF5LmlzQXJyYXkoZikpe2lmKHpiKGZbMF0pKXt2YXIgaD1mWzBdLnNwbGl0KCIuIiksbD1oLnBvcCgpLG49Zi5zbGljZSgxKSxwPXVBKGguam9pbigiLiIpLDIpO2lmKHAhPW51bGwpdHJ5e3BbbF0uYXBwbHkocCxuKX1jYXRjaChTKXt9fX1lbHNle3ZhciBxPXZvaWQgMDtpZihIYihmKSlhOntpZihmLmxlbmd0aCYmemIoZlswXSkpe3ZhciByPUFEW2ZbMF1dO2lmKHImJighZy5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufHwhQ0RbZlswXV0pKXtxPXIoZixnKTticmVhayBhfX1xPXZvaWQgMH1lbHNlIHE9ZjtpZihxKXt2YXIgdDtmb3IodmFyIHU9cSx2PXUuX2NsZWFyfHxnLm92ZXJ3cml0ZU1vZGVsRmllbGRzLHg9bShPYmplY3Qua2V5cyh1KSkseT14Lm5leHQoKTsheS5kb25lO3k9CngubmV4dCgpKXt2YXIgej15LnZhbHVlO3ohPT0iX2NsZWFyIiYmKHYmJnJBLnNldCh6LHZvaWQgMCksckEuc2V0KHosdVt6XSkpfU0oNTkyKSYmU0QodSk7JGsoMjUpfHxaaygyNSx1WyJndG0uc3RhcnQiXSk7dmFyIEM9dVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTt1LmV2ZW50Pyh0eXBlb2YgQyE9PSJudW1iZXIiJiYoQz1yaigpLHVbImd0bS51bmlxdWVFdmVudElkIl09QyxyQS5zZXQoImd0bS51bmlxdWVFdmVudElkIixDKSksdD16Qih1KSk6dD0hMTtiPXR8fGJ9fX1maW5hbGx5e2cuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmb0EockEsITApO3ZhciBEPWZbImd0bS51bmlxdWVFdmVudElkIl07aWYodHlwZW9mIEQ9PT0ibnVtYmVyIil7Zm9yKHZhciBJPWEsRz1JLktbU3RyaW5nKEQpXXx8W10sTj0wO048Ry5sZW5ndGg7TisrKUkuTi5wdXNoKG1FKEdbTl0pKTtHLmxlbmd0aCYmSS5OLnNvcnQobkUpO2RlbGV0ZSBJLktbU3RyaW5nKEQpXTtEPmEuWiYmKGEuWj1EKX1hLlI9ITF9fX1yZXR1cm4hYn0sCnBFPWZ1bmN0aW9uKCl7dmFyIGE9aEU7YS5mYSYmUCgxOTUpO2EuZmE9ITA7aWYoZm4uSCl7dmFyIGI9IUlmKDUxKSxjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC5aZ30pO2lmKGIpe3ZhciBkPXF6KGMse3N0YWdlOkl5LlguWWt9LEl5LlgubmkpO2QhPT12b2lkIDAmJihjLkguWT1kKX12YXIgZT1hLkgubGVuZ3RoO3J6KCkuSC5DPWV9b0UoYSk7aWYoZm4uSCl7dmFyIGY9cnooKSxnPXF6KGYse3N0YWdlOkl5LlguVmt9LEl5LlguWmcpO2chPT12b2lkIDAmJihmLkguQj1nKX10cnl7dmFyIGg9QVtFKDE5KV0sbD1FKDUpLG49aC5oaWRlO2lmKG4mJm5bbF0hPT12b2lkIDAmJm4uZW5kKXtuW2xdPSExO3ZhciBwPSEwLHE7Zm9yKHEgaW4gbilpZihuLmhhc093blByb3BlcnR5KHEpJiZuW3FdPT09ITApe3A9ITE7YnJlYWt9cCYmKG4uZW5kKCksbi5lbmQ9bnVsbCl9fWNhdGNoKHIpe0UoNSl9fSxxRT1mdW5jdGlvbihhLGIpe2lmKGEuWjxiLm5vdEJlZm9yZUV2ZW50SWQpe3ZhciBjPVN0cmluZyhiLm5vdEJlZm9yZUV2ZW50SWQpOwphLktbY109YS5LW2NdfHxbXTthLktbY10ucHVzaChiKX1lbHNle2EuTi5wdXNoKG1FKGIpKTthLk4uc29ydChuRSk7dmFyIGQ9ZnVuY3Rpb24oKXthLlJ8fG9FKGEpfTtNKDU4MCk/ZGQoZCk6YmQoZCl9fTsKZ0UucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGgpe3ZhciBsPXt9O2lmKEREKGgpKXt2YXIgbj1oO2g9REQobik/bi5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWUoKTp2b2lkIDA7bC5mcm9tQ29udGFpbmVyRXhlY3V0aW9uPSEwfXJldHVybnttZXNzYWdlOmgsbWVzc2FnZUNvbnRleHQ6bH19dmFyIGI9dGhpcyxjPU1jKEUoMTkpLFtdKSxkPXBqKCk7ZC5wcnVuZWQ9PT0hMCYmUCg4Myk7dGhpcy5LPW5EKCkuZ2V0KCk7bkQoKS5saXN0ZW4oZnVuY3Rpb24oaCl7cUUoYixoKX0pO2Quc3Vic2NyaWJlcnM9KGQuc3Vic2NyaWJlcnN8fDApKzE7dmFyIGU9Yy5wdXNoLGY9dGhpcztjLnB1c2g9ZnVuY3Rpb24oKXt2YXIgaDtsaigpO2lmKGpqLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRT4wKXtoPVtdO2Zvcih2YXIgbD0wO2w8YXJndW1lbnRzLmxlbmd0aDtsKyspaFtsXT1uZXcgRUQoYXJndW1lbnRzW2xdKX1lbHNlIGg9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7CnZhciBuPWgubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBhKHQpfSk7Zi5ILnB1c2guYXBwbHkoZi5ILG4pO3ZhciBwPWUuYXBwbHkoYyxoKSxxPU1hdGgubWF4KDEwMCxOZigxLDMwMCkpO2lmKHRoaXMubGVuZ3RoPnEpZm9yKFAoNCksZC5wcnVuZWQ9ITA7dGhpcy5sZW5ndGg+cTspdGhpcy5zaGlmdCgpO3ZhciByPXR5cGVvZiBwIT09ImJvb2xlYW4ifHxwO3JldHVybiBvRShmKSYmcn07dmFyIGc9Yy5zbGljZSgwKS5tYXAoZnVuY3Rpb24oaCl7cmV0dXJuIGEoaCl9KTt0aGlzLkgucHVzaC5hcHBseSh0aGlzLkgsZyk7SWYoNTEpfHwoZm4uSCYmdXooKSxiZChyRSkpO1ZCKGZ1bmN0aW9uKCl7aWYoIWQuZ3RtRG9tKXtkLmd0bURvbT0hMDt2YXIgaD17fTtjLnB1c2goKGguZXZlbnQ9Imd0bS5kb20iLGgpKX19KTtmRShmdW5jdGlvbigpe2lmKCFkLmd0bUxvYWQpe2QuZ3RtTG9hZD0hMDt2YXIgaD17fTtjLnB1c2goKGguZXZlbnQ9Imd0bS5sb2FkIixoKSl9fSl9OwpnRS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhKXtyZXR1cm4gQVtFKDE5KV0ucHVzaChhKX07dmFyIGhFPW5ldyBnRTtmdW5jdGlvbiBuRShhLGIpe3ZhciBjPWEubWVzc2FnZUNvbnRleHQsZD1iLm1lc3NhZ2VDb250ZXh0O2lmKGMuZXZlbnRJZCE9PWQuZXZlbnRJZClyZXR1cm4gYy5ldmVudElkLWQuZXZlbnRJZDtpZighTSg1OTUpKXJldHVybiBjLnByaW9yaXR5SWQtZC5wcmlvcml0eUlkO3ZhciBlLGYsZzthOntmb3IodmFyIGg9KGU9Yy5wcmlvcml0eVF1ZXVlKSE9bnVsbD9lOltjLnByaW9yaXR5SWRdLGw9KGY9ZC5wcmlvcml0eVF1ZXVlKSE9bnVsbD9mOltkLnByaW9yaXR5SWRdLG49TWF0aC5taW4oaC5sZW5ndGgsbC5sZW5ndGgpLHA9MDtwPG47cCsrKWlmKGhbcF0hPT1sW3BdKXtnPWhbcF0tbFtwXTticmVhayBhfWc9aC5sZW5ndGgtbC5sZW5ndGh9cmV0dXJuIGd9CmZ1bmN0aW9uIGtFKGEpe2lmKGE9PW51bGx8fHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuITE7aWYoYS5ldmVudClyZXR1cm4hMDtpZihIYihhKSl7dmFyIGI9YVswXTtpZihiPT09ImNvbmZpZyJ8fGI9PT0iZXZlbnQifHxiPT09ImpzInx8Yj09PSJnZXQiKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIG1FKGEpe3JldHVybnttZXNzYWdlOmEubWVzc2FnZSxtZXNzYWdlQ29udGV4dDphLm1lc3NhZ2VDb250ZXh0fX1mdW5jdGlvbiBzRShhLGIsYyl7cmV0dXJuIGlFKGEsYixjKX1mdW5jdGlvbiB0RShhLGIpe3JldHVybiBqRShhLGIpfWZ1bmN0aW9uIHJFKCl7cEUoKX1mdW5jdGlvbiB1RShhKXtyZXR1cm4gaEUucHVzaChhKX07dmFyIHZFPWZ1bmN0aW9uKCl7fTt2RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhLGI9UmooQS5sb2NhdGlvbi5ocmVmKTsoYT1iLmhvc3RuYW1lK2IucGF0aG5hbWUpJiZVbSgiZGwiLGVuY29kZVVSSUNvbXBvbmVudChhKSk7dmFyIGM7dmFyIGQ9RSg1KTtpZihkKXt2YXIgZT1JZig3KT8xOjAsZj1GaygpLGc9ZiYmZi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uPzE6MCxoPWYmJmYuc291cmNlfHwwLGw9RSg2KTtjPWQrIjsiK2wrIjsiK2crIjsiK2grIjsiK2V9ZWxzZSBjPXZvaWQgMDt2YXIgbj1jO24mJlVtKCJ0ZHAiLG4pO3ZhciBwPU9wKCEwKTtwIT09dm9pZCAwJiZVbSgiZnJtIixTdHJpbmcocCkpfTt2YXIgd0U9bmV3IHZFO3ZhciB4RT1mdW5jdGlvbigpe3RoaXMuSD1YbSgpO3RoaXMuSz12b2lkIDB9LHlFPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFptKGEsZnVuY3Rpb24oYyl7cmV0dXJuIGMuamI+MD9iP2MuamIrIl8iK1dtKGMpOlN0cmluZyhjLmpiKTp2b2lkIDB9KX07CnhFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztpZihwbCgpfHxmbi5LKVVtKCJjc3AiLGZ1bmN0aW9uKCl7dmFyIGI9eUUoYS5ILCEwKTskbShhLkgpO3JldHVybiBifSwhMSksVW0oIm1kZSIsZnVuY3Rpb24oKXt2YXIgYj1jbi5ILGM9eUUoYiwhMSk7JG0oYik7cmV0dXJuIGN9LCExKSxBLmFkZEV2ZW50TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0aW9uIixmdW5jdGlvbihiKXtpZihiLmRpc3Bvc2l0aW9uPT09ImVuZm9yY2UiKXtQKDE3OSk7dmFyIGM9bm4oYi5lZmZlY3RpdmVEaXJlY3RpdmUpO2lmKGMpe3ZhciBkO2E6e3ZhciBlPWIuYmxvY2tlZFVSSSxmPWtuO2lmKGZuLksmJmUpe3ZhciBnPWpuKGMsZSk7aWYoZyl7dmFyIGg7ZD0oaD1sbihmLGMpKT09bnVsbD92b2lkIDA6aFtnXTticmVhayBhfX1kPXZvaWQgMH12YXIgbD1kO2lmKGwpe3ZhciBuO2E6e3RyeXt2YXIgcD1uZXcgVVJMKGIuYmxvY2tlZFVSSSkscT1wLnBhdGhuYW1lLmluZGV4T2YoIjsiKTsKbj1xPj0wP3Aub3JpZ2luK3AucGF0aG5hbWUuc3Vic3RyaW5nKDAscSk6cC5vcmlnaW4rcC5wYXRobmFtZTticmVhayBhfWNhdGNoKEQpe31uPXZvaWQgMH12YXIgcj1uO2lmKHIpe2Zvcih2YXIgdD1tKGwpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXt2YXIgdj11LnZhbHVlO2lmKCF2LkVvKXt2LkVvPSEwO3ZhciB4PXtldmVudElkOnYuZXZlbnRJZCxwcmlvcml0eUlkOnYucHJpb3JpdHlJZH07aWYocGwoKSl7dmFyIHk9eCx6PXt0eXBlOjEsYmxvY2tlZFVybDpyLGVuZHBvaW50OnYuZW5kcG9pbnQsdmlvbGF0aW9uOmIuZWZmZWN0aXZlRGlyZWN0aXZlfTtpZihwbCgpKXt2YXIgQz1MbCgiVEFHX0RJQUdOT1NUSUNTIix7ZXZlbnRJZDp5PT1udWxsP3ZvaWQgMDp5LmV2ZW50SWQscHJpb3JpdHlJZDp5PT1udWxsP3ZvaWQgMDp5LnByaW9yaXR5SWR9KTtDLnRhZ0RpYWdub3N0aWNzPXo7b2woQyl9fXpFKGEsdi5kZXN0aW5hdGlvbklkLHYuZW5kcG9pbnQsYyl9fW1uKGMsCmIuYmxvY2tlZFVSSSl9fX19fSl9O3ZhciB6RT1mdW5jdGlvbihhLGIsYyxkKXthbihhLkgsYixjLDEsZCk7Vm0oImNzcCIsITApO1ZtKCJtZGUiLCEwKTtjIT09NjEmJmMhPT01NiYmYS5LPT09dm9pZCAwJiYoYS5LPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2EuSC5qYj4wJiZ0byghMSk7YS5LPXZvaWQgMH0sNTAwKSl9LEFFPW5ldyB4RTt2YXIgQkU9ZnVuY3Rpb24oKXt0aGlzLnNlcXVlbmNlTnVtYmVyPTB9O0JFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztDRSh0aGlzKTtJZig2NSkmJlVtKCJtdGJsIiwiMSIpO1VtKCJ2IiwiMyIpO1VtKCJ0IiwidCIpO1VtKCJwaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhubShqbS5iYS5iaCkpfSk7VW0oImd0bSIsZnVuY3Rpb24oKXtyZXR1cm4gZHUoKX0pO1VtKCJzZXEiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZygrK2Euc2VxdWVuY2VOdW1iZXIpfSk7VW0oImV4cCIsZnVuY3Rpb24oKXtyZXR1cm4gQ3AoKX0pfTt2YXIgQ0U9ZnVuY3Rpb24oYSl7aWYobm0oam0uYmEuYmgpPT09dm9pZCAwKXt2YXIgYj1mdW5jdGlvbigpe21tKGptLmJhLmJoLERiKCkpO2Euc2VxdWVuY2VOdW1iZXI9MH07YigpO2NkKGIsODY0RTUpfWVsc2UgcG0oam0uYmEuYmgsZnVuY3Rpb24oKXthLnNlcXVlbmNlTnVtYmVyPTB9KTthLnNlcXVlbmNlTnVtYmVyPTB9LERFPW5ldyBCRTtmdW5jdGlvbiBFRShhKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQVthXX19CnZhciBGRT17fSxHRT0oRkVbMTRdPWZ1bmN0aW9uKCl7dmFyIGE7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDphLmdldFJhbmRvbVZhbHVlc30sRkVbMTVdPWZ1bmN0aW9uKCl7dmFyIGEsYjtyZXR1cm4oYT1BLmNyeXB0byk9PW51bGw/dm9pZCAwOihiPWEuc3VidGxlKT09bnVsbD92b2lkIDA6Yi5kaWdlc3R9LEZFWzFdPUVFKCJmZXRjaCIpLEZFWzZdPUVFKCJNYXAiKSxGRVsyXT1mdW5jdGlvbigpe3JldHVybiBNYXRoLnJhbmRvbX0sRkVbOF09ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKX0sRkVbOV09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXN9LEZFWzEwXT1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXN9LEZFWzVdPUVFKCJQcm9taXNlIiksRkVbMTNdPUVFKCJSZWdFeHAiKSxGRVszXT1mdW5jdGlvbigpe3JldHVybiBIYy5zZW5kQmVhY29ufSxGRVs3XT1FRSgiU2V0IiksRkVbMTJdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGh9LApGRVsxMV09ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRofSxGRVs0XT1FRSgiWE1MSHR0cFJlcXVlc3QiKSxGRSksSEU9e30sSUU9KEhFWzE1XT0hMCxIRSk7dmFyIE5FPS9eKGh0dHBzPzopP1wvXC8vOwoKZnVuY3Rpb24gaEYoKXt9O2Z1bmN0aW9uIGlGKCl7SWYoNjIpJiYoaHkoImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC5maXhNaXNzaW5nQXBpKSE9PSEwfSkpfTt2YXIgakY9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTtqRi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTt2YXIga0Y9bmV3IGpGO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7bHQoe0d1OjAsRnU6MSxDdToyLHh1OjMsRHU6NCx5dTo1LEV1OjYsQXU6NyxCdTo4LHd1OjksenU6MTAsSHU6MTF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO2x0KHtKdTowLEt1OjEsSXU6Mn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7dmFyIGxGPWZ1bmN0aW9uKGEsYixjLGQpe3J0LmNhbGwodGhpcyk7dGhpcy5mZT1iO3RoaXMua2Q9Yzt0aGlzLmFjPWQ7dGhpcy5MYT1uZXcgTWFwO3RoaXMuaGU9MDt0aGlzLmphPW5ldyBNYXA7dGhpcy55YT1uZXcgTWFwO3RoaXMuWj12b2lkIDA7dGhpcy5LPWF9O3dhKGxGLHJ0KTtsRi5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLkg7dGhpcy5MYS5jbGVhcigpO3RoaXMuamEuY2xlYXIoKTt0aGlzLnlhLmNsZWFyKCk7dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuYWM7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnZhciBtRj1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLmtkJiZhLmtkKGEuSyk/YS5IPWEuSzphLkg9TnAoYS5LLGEuZmUpO3ZhciBiO3JldHVybihiPWEuSCkhPW51bGw/YjpudWxsfSxvRj1mdW5jdGlvbihhLGIsYyl7aWYobUYoYSkpaWYoYS5IPT09YS5LKXt2YXIgZD1hLkxhLmdldChiKTtkJiZkKGEuSCxjKX1lbHNle3ZhciBlPWEuamEuZ2V0KGIpO2lmKGUmJmUuZGspe25GKGEpO3ZhciBmPSsrYS5oZTthLnlhLnNldChmLHtwZTplLnBlLElyOmUubm8oYykscGVyc2lzdGVudDpiPT09ImFkZEV2ZW50TGlzdGVuZXIifSk7YS5ILnBvc3RNZXNzYWdlKGUuZGsoYyxmKSwiKiIpfX19LG5GPWZ1bmN0aW9uKGEpe2EuWnx8KGEuWj1mdW5jdGlvbihiKXtpZihiLnNvdXJjZT09PWEuSCl0cnl7dmFyIGM7Yz1hLmFjP2EuYWMoYik6dm9pZCAwO2lmKGMpe3ZhciBkPWMuWXMsZT1hLnlhLmdldChkKTtpZihlKXtlLnBlcnNpc3RlbnR8fGEueWEuZGVsZXRlKGQpO3ZhciBmOyhmPQplLnBlKT09bnVsbHx8Zi5jYWxsKGUsZS5JcixjLnBheWxvYWQpfX19Y2F0Y2goZyl7fX0sbXQoYS5LLCJtZXNzYWdlIixhLlopKX07dmFyIHBGPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5saXN0ZW5lcixkPSgwLGEuX19ncHApKCJhZGRFdmVudExpc3RlbmVyIixjKTtkJiZjKGQsITApfSxxRj1mdW5jdGlvbihhLGIpeygwLGEuX19ncHApKCJyZW1vdmVFdmVudExpc3RlbmVyIixiLmxpc3RlbmVyLGIubGlzdGVuZXJJZCl9LHJGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6ImFkZEV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSJ9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybjthKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX19LHNGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSIsCnBhcmFtZXRlcjphLmxpc3RlbmVySWR9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybixkPWMucmV0dXJuVmFsdWUuZGF0YTthPT1udWxsfHxhKGQsYy5zdWNjZXNzKX19O2Z1bmN0aW9uIHRGKGEpe3ZhciBiPXt9O3ZmKGEuZGF0YSk/Yj1KU09OLnBhcnNlKGEuZGF0YSk6Yj1hLmRhdGE7cmV0dXJue3BheWxvYWQ6YixZczpiLl9fZ3BwUmV0dXJuLmNhbGxJZH19CnZhciB1Rj1mdW5jdGlvbihhLGIpe3ZhciBjO2M9KGI9PT12b2lkIDA/e306YikudGltZW91dE1zO3J0LmNhbGwodGhpcyk7dGhpcy5jYWxsZXI9bmV3IGxGKGEsIl9fZ3BwTG9jYXRvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkLl9fZ3BwPT09ImZ1bmN0aW9uIn0sdEYpO3RoaXMuY2FsbGVyLkxhLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIscEYpO3RoaXMuY2FsbGVyLmphLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIsckYpO3RoaXMuY2FsbGVyLkxhLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIscUYpO3RoaXMuY2FsbGVyLmphLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsc0YpO3RoaXMudGltZW91dE1zPWMhPW51bGw/Yzo1MDB9O3dhKHVGLHJ0KTt1Ri5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuY2FsbGVyLmRpc3Bvc2UoKTtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdUYucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPUhwKGZ1bmN0aW9uKCl7YSh2RiwhMCl9KSxkPXRoaXMudGltZW91dE1zPT09LTE/dm9pZCAwOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjKCl9LHRoaXMudGltZW91dE1zKTtvRih0aGlzLmNhbGxlciwiYWRkRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKGUsZil7Y2xlYXJUaW1lb3V0KGQpO3RyeXt2YXIgZzt2YXIgaDsoKGg9ZS5waW5nRGF0YSk9PW51bGw/dm9pZCAwOmguZ3BwVmVyc2lvbik9PT12b2lkIDB8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxInx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEuMCI/KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToxLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19JU19ERVBSRUNBVEVEX1NQRUMiLAphcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTpBcnJheS5pc0FycmF5KGUucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zKT9nPWU6KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19FWFBFQ1RFRF9BUFBMSUNBVElPTl9TRUNUSU9OX0FSUkFZIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTthKGcsZil9Y2F0Y2gobCl7aWYoZT09bnVsbD8wOmUubGlzdGVuZXJJZCl0cnl7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCl9Y2F0Y2gobil7YSh3RiwhMCk7cmV0dXJufWEoeEYsITApfX19KX07CnVGLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe29GKHRoaXMuY2FsbGVyLCJyZW1vdmVFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGxpc3RlbmVySWQ6YX0pfTsKdmFyIHhGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfVU5BVkFJTEFCTEUiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx2Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0xJU1RFTkVSX1JFR0lTVFJBVElPTl9USU1FT1VUIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sd0Y9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19SRU1PVkVfRVZFTlRfTElTVEVORVJfRVJST1IiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfTtmdW5jdGlvbiB5RihhKXt2YXIgYjtpZighKGI9YS5waW5nRGF0YS5zaWduYWxTdGF0dXM9PT0icmVhZHkiKSl7dmFyIGM9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnM7Yj0hY3x8Yy5sZW5ndGg9PT0xJiZjWzBdPT09LTF9aWYoYil7a0YuZ3BwU3RyaW5nPWEucGluZ0RhdGEuZ3BwU3RyaW5nO3ZhciBkPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zLmpvaW4oIiwiKTtrRi5IPWR9fWZ1bmN0aW9uIHpGKCl7dHJ5e3ZhciBhPW5ldyB1RihBLHt0aW1lb3V0TXM6LTF9KTttRihhLmNhbGxlcikmJmEuYWRkRXZlbnRMaXN0ZW5lcih5Ril9Y2F0Y2goYil7fX07ZnVuY3Rpb24gQUYoKXt2YXIgYT1bWyJjdiIsRSgxKV0sWyJydiIsRSgxNCldLFsidGMiLGNBLnRhZ3MuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkfSkubGVuZ3RoXV0sYj1KZigxNSk7YiYmYS5wdXNoKFsieCIsYl0pO3ZhciBjPUNwKCk7YyYmYS5wdXNoKFsidGFnX2V4cCIsY10pO3JldHVybiBhfTt2YXIgQkY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiaGYiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsiaHQiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sQ0Y9ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAxOmF8PTE7YnJlYWs7Y2FzZSAyOmF8PTI7YnJlYWs7Y2FzZSAzOmF8PTR9cmV0dXJuIGF9fSxERjt2YXIgRUY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0iIjtmbi5OJiZNKDUxNikmJmZ6KGZ1bmN0aW9uKCl7dmFyIGI9W107YS5IJiZiLnB1c2goWyJwc2QiLGEuSF0pO3JldHVybiBifSl9LEZGO2Z1bmN0aW9uIEdGKCl7cmV0dXJuITF9CmZ1bmN0aW9uIEhGKCl7dmFyIGE9e307cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt9fTtmdW5jdGlvbiBJRigpe3ZhciBhPUpGO3JldHVybiBmdW5jdGlvbihiLGMsZCl7dmFyIGU9ZCYmZC5ldmVudDtLRihjKTt2YXIgZj1CaChiKT92b2lkIDA6MSxnPW5ldyBrYjtHYihjLGZ1bmN0aW9uKHIsdCl7dmFyIHU9VWQodCx2b2lkIDAsZik7dT09PXZvaWQgMCYmdCE9PXZvaWQgMCYmUCg0NCk7Zy5zZXQocix1KX0pO2EuUWIoUWYoKSk7dmFyIGg9e1JuOmhnKGIpLGV2ZW50SWQ6ZT09bnVsbD92b2lkIDA6ZS5pZCxwcmlvcml0eUlkOmUhPT12b2lkIDA/ZS5wcmlvcml0eUlkOnZvaWQgMCxwcmlvcml0eVF1ZXVlOmUhPT12b2lkIDA/ZS5wcmlvcml0eVF1ZXVlOnZvaWQgMCx3ZzplIT09dm9pZCAwP2Z1bmN0aW9uKHIpe2UubGQud2cocil9OnZvaWQgMCxQYjpmdW5jdGlvbigpe3JldHVybiBifSxsb2c6ZnVuY3Rpb24oKXt9LE5yOntpbmRleDpkPT1udWxsP3ZvaWQgMDpkLmluZGV4LHR5cGU6ZD09bnVsbD92b2lkIDA6ZC50eXBlLG5hbWU6ZD09bnVsbD92b2lkIDA6ZC5uYW1lfSwKaXQ6ISFLQShiLDMpLG9yaWdpbmFsRXZlbnREYXRhOmU9PW51bGw/dm9pZCAwOmUub3JpZ2luYWxFdmVudERhdGF9O2UmJmUuY2FjaGVkTW9kZWxWYWx1ZXMmJihoLmNhY2hlZE1vZGVsVmFsdWVzPXtndG06ZS5jYWNoZWRNb2RlbFZhbHVlcy5ndG0sZWNvbW1lcmNlOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZWNvbW1lcmNlfSk7aWYoR0YoKSl7dmFyIGw9SEYoKSxuLHA7aC5BYj17d2s6W10seWc6e30samM6ZnVuY3Rpb24ocix0LHUpe3Q9PT0xJiYobj1yKTt0PT09NyYmKHA9dSk7bChyLHQsdSl9LGVpOlZoKCl9O2gubG9nPWZ1bmN0aW9uKHIpe3ZhciB0PU9hLmFwcGx5KDEsYXJndW1lbnRzKTtuJiZsKG4sNCx7bGV2ZWw6cixzb3VyY2U6cCxtZXNzYWdlOnR9KX19CnZhciBxPXJmKGEsaCxbYixnXSk7YS5RYigpO3EgaW5zdGFuY2VvZiBUYSYmKHEudHlwZT09PSJyZXR1cm4iP3E9cS5kYXRhOnE9dm9pZCAwKTtyZXR1cm4gVGQocSx2b2lkIDAsZil9fWZ1bmN0aW9uIEtGKGEpe3ZhciBiPWEuZ3RtT25TdWNjZXNzLGM9YS5ndG1PbkZhaWx1cmU7eWIoYikmJihhLmd0bU9uU3VjY2Vzcz1mdW5jdGlvbigpe2JkKGIpfSk7eWIoYykmJihhLmd0bU9uRmFpbHVyZT1mdW5jdGlvbigpe2JkKGMpfSl9O3ZhciBNRj1mdW5jdGlvbihhKXtWKGEsSC5KLnRnLGNvLmlhLmNiKX07ZnVuY3Rpb24gTkYoKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIwKX07dmFyIE9GPVtGLkQuemldLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5zbGljZSgyKX0pO3ZhciBQRj1mdW5jdGlvbihhKXtVKGEsRi5ELnppLGFsKDgsTkYpKX07ZnVuY3Rpb24gUUYoYSl7fVFGLlA9ImludGVybmFsLmFkZEFkc0NsaWNrSWRzIjtmdW5jdGlvbiBSRihhLGIpe3ZhciBjPXRoaXM7fVJGLnB1YmxpY05hbWU9ImFkZENvbnNlbnRMaXN0ZW5lciI7dmFyIFNGPSExO2Z1bmN0aW9uIFRGKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKWlmKFNGKXRyeXthW2JdKCl9Y2F0Y2goYyl7UCg3Nyl9ZWxzZSBhW2JdKCl9ZnVuY3Rpb24gVUYoYSxiLGMpe3ZhciBkPXRoaXMsZTtpZighbGgoYSl8fCFoaChiKXx8IW1oKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiIsInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woZCwibGlzdGVuX2RhdGFfbGF5ZXIiLGEpfV0pO2U9eUIoKS5hZGRMaXN0ZW5lcihhLFRkKGIsdm9pZCAwLDEpLGM9PT1udWxsP3ZvaWQgMDpjKTtyZXR1cm4gZX1VRi5QPSJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBWRihhLGIsYyl7fVZGLnB1YmxpY05hbWU9ImFkZERvY3VtZW50RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gV0YoYSxiLGMsZCl7fVdGLnB1YmxpY05hbWU9ImFkZEVsZW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBYRihhKXtyZXR1cm4gYS5ULnhiKCl9O2Z1bmN0aW9uIFlGKGEpe31ZRi5wdWJsaWNOYW1lPSJhZGRFdmVudENhbGxiYWNrIjsKdmFyIFpGPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmciP2E6U3RyaW5nKHJqKCkpfSxiRz1mdW5jdGlvbihhLGIpeyRGKGEsImluaXQiLCExKXx8KGFHKGEsImluaXQiLCEwKSxiKCkpfSwkRj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Y0coYSk7cmV0dXJuIE9iKGQsYixjKX0sZEc9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Y0coYSksZj1PYihlLGIsZCksZz1jKGYpO3JldHVybiBlW2JdPWd9LGFHPWZ1bmN0aW9uKGEsYixjKXtjRyhhKVtiXT1jfSxjRz1mdW5jdGlvbihhKXt2YXIgYj1raigiYXV0b0V2ZW50c1NldHRpbmdzIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yi5oYXNPd25Qcm9wZXJ0eShhKXx8KGJbYV09e30pO3JldHVybiBiW2FdfSxlRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9e2V2ZW50OmIsImd0bS5lbGVtZW50IjphLCJndG0uZWxlbWVudENsYXNzZXMiOm9kKGEsImNsYXNzTmFtZSIpLCJndG0uZWxlbWVudElkIjphLmZvcnx8ZWQoYSwiaWQiKXx8CiIiLCJndG0uZWxlbWVudFRhcmdldCI6YS5mb3JtVGFyZ2V0fHxvZChhLCJ0YXJnZXQiKXx8IiJ9O2MmJihkWyJndG0udHJpZ2dlcnMiXT1jLmpvaW4oIiwiKSk7ZFsiZ3RtLmVsZW1lbnRVcmwiXT0oYS5hdHRyaWJ1dGVzJiZhLmF0dHJpYnV0ZXMuZm9ybWFjdGlvbj9hLmZvcm1BY3Rpb246IiIpfHxhLmFjdGlvbnx8b2QoYSwiaHJlZiIpfHxhLnNyY3x8YS5jb2RlfHxhLmNvZGViYXNlfHwiIjtyZXR1cm4gZH07CmZ1bmN0aW9uIGlHKGEpe2lmKGEuZm9ybSl7dmFyIGI7cmV0dXJuKChiPWEuZm9ybSk9PW51bGw/MDpiLnRhZ05hbWUpP2EuZm9ybTpCLmdldEVsZW1lbnRCeUlkKGEuZm9ybSl9cmV0dXJuIGhkKGEsWyJmb3JtIl0sMTAwKX07CmZ1bmN0aW9uIG1HKGEpe31tRy5QPSJpbnRlcm5hbC5hZGRGb3JtQWJhbmRvbm1lbnRMaXN0ZW5lciI7ZnVuY3Rpb24gbkcoYSxiLGMsZCl7fQpuRy5QPSJpbnRlcm5hbC5hZGRGb3JtRGF0YSI7CmZ1bmN0aW9uIHNHKGEpe31zRy5QPSJpbnRlcm5hbC5hZGRHYVNlbmRMaXN0ZW5lciI7ZnVuY3Rpb24gdEcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9YS5OcjtyZXR1cm4gSkEoYi50eXBlLGIuaW5kZXgsYi5uYW1lKX1mdW5jdGlvbiB1RyhhKXtpZighYSlyZXR1cm57fTt2YXIgYj17b3JpZ2luYXRpbmdFbnRpdHk6dEcoYSl9O2EucHJpb3JpdHlRdWV1ZSYmKGIucHJpb3JpdHlRdWV1ZT1hLnByaW9yaXR5UXVldWUpO3JldHVybiBifTtmdW5jdGlvbiBDRyhhKXt2YXIgYj1taigiem9uZXMiKTtyZXR1cm4gYj9iLmdldElzQWxsb3dlZEZuKHdrKCksYSk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19ZnVuY3Rpb24gREcoKXt2YXIgYT1taigiem9uZXMiKTthJiZhLnVucmVnaXN0ZXJDaGlsZCh3aygpKX0KZnVuY3Rpb24gRUcoKXtrQih2aygpLGZ1bmN0aW9uKGEpe3ZhciBiPWEub3JpZ2luYWxFdmVudERhdGFbImd0bS51bmlxdWVFdmVudElkIl0sYz1taigiem9uZXMiKTtyZXR1cm4gYz9jLmlzQWN0aXZlKHdrKCksYik6ITB9KTtoQih2aygpLGZ1bmN0aW9uKGEpe3ZhciBiLGM7Yj1hLmVudGl0eUlkO2M9YS5zZWN1cml0eUdyb3VwcztyZXR1cm4gQ0coTnVtYmVyKGEub3JpZ2luYWxFdmVudERhdGFbImd0bS51bmlxdWVFdmVudElkIl0pKShiLGMpfSl9O3ZhciBGRz1mdW5jdGlvbihhLGIpe3RoaXMudGFnSWQ9YTt0aGlzLmNhbm9uaWNhbElkPWJ9OwpmdW5jdGlvbiBHRyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGF9R0cuUD0iaW50ZXJuYWwubG9hZEdvb2dsZVRhZyI7ZnVuY3Rpb24gSEcoYSl7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGIpO2lmKGMgaW5zdGFuY2VvZiBLZClyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKCl7dmFyIGQ9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGU9dGhpcyxmPUVkKFhGKHRoaXMpLG51bGwpO2YuZXZlbnRJZD1hLmV2ZW50SWQ7Zi5wcmlvcml0eUlkPWEucHJpb3JpdHlJZDtmLm9yaWdpbmFsRXZlbnREYXRhPWEub3JpZ2luYWxFdmVudERhdGE7dmFyIGc9ZC5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGUuZXZhbHVhdGUobCl9KSxoPXRoaXMuVC53YigpO2gudWUoZik7cmV0dXJuIGMuTmMuYXBwbHkoYyxbaF0uY29uY2F0KHcoZykpKX0pfSl9O2Z1bmN0aW9uIElHKGEsYixjKXt2YXIgZD10aGlzO31JRy5QPSJpbnRlcm5hbC5hZGRHb29nbGVUYWdSZXN0cmljdGlvbiI7CmZ1bmN0aW9uIFBHKGEsYil7fVBHLlA9ImludGVybmFsLmFkZEhpc3RvcnlDaGFuZ2VMaXN0ZW5lciI7ZnVuY3Rpb24gUUcoYSxiLGMpe31RRy5wdWJsaWNOYW1lPSJhZGRXaW5kb3dFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBSRyhhLGIpe3JldHVybiEwfVJHLnB1YmxpY05hbWU9ImFsaWFzSW5XaW5kb3ciO2Z1bmN0aW9uIFNHKGEsYixjKXt9U0cuUD0iaW50ZXJuYWwuYXBwZW5kUmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBURyhhKXt2YXIgYjtyZXR1cm4gYn0KVEcucHVibGljTmFtZT0iY2FsbEluV2luZG93IjtmdW5jdGlvbiBVRyhhKXt9VUcucHVibGljTmFtZT0iY2FsbExhdGVyIjtmdW5jdGlvbiBWRyhhKXt9VkcuUD0iY2FsbE9uRG9tUmVhZHkiO2Z1bmN0aW9uIFdHKGEpe31XRy5QPSJjYWxsT25XaW5kb3dMb2FkIjt2YXIgWUc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ubShYRyl8fHt9LGQ9Y1thXXx8e307aWYoZFtiXSlyZXR1cm4hMTt2YXIgZT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGQpO2VbYl09ITA7dmFyIGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjKTtmW2FdPWU7bW0oWEcsZik7cmV0dXJuITB9LFhHPWptLmJhLmhyO2Z1bmN0aW9uIFpHKGEsYil7aWYoIWxoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9WUcoYSxiKTtyZXR1cm4gY31aRy5QPSJpbnRlcm5hbC5jbGFpbURlc3RpbmF0aW9uIjtmdW5jdGlvbiAkRyhhLGIpe3ZhciBjO3JldHVybiBjfSRHLlA9ImludGVybmFsLmNvbXB1dGVHdG1QYXJhbWV0ZXIiO2Z1bmN0aW9uIGFIKGEsYil7dmFyIGM9dGhpczt9YUguUD0iaW50ZXJuYWwuY29uc2VudFNjaGVkdWxlRmlyc3RUcnkiO2Z1bmN0aW9uIGJIKGEsYil7dmFyIGM9dGhpczt9YkguUD0iaW50ZXJuYWwuY29uc2VudFNjaGVkdWxlUmV0cnkiO2Z1bmN0aW9uIGNIKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgYz1hO2lmKCFrbShjKSl0aHJvdyBFcnJvcigiY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEgcmVxdWlyZXMgdmFsaWQgQ3Jvc3NDb250YWluZXJTY2hlbWEga2V5LiIpO3ZhciBkPW5tKGMpO2I9VWQoZCx0aGlzLlQsMSk7cmV0dXJuIGJ9Y0guUD0iaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIGRIKGEsYil7dmFyIGM7dmFyIGU9VWQoYyx0aGlzLlQsQmgoWEYodGhpcykuUGIoKSk/MjoxKTtlPT09dm9pZCAwJiZjIT09dm9pZCAwJiZQKDQ1KTtyZXR1cm4gZX1kSC5wdWJsaWNOYW1lPSJjb3B5RnJvbURhdGFMYXllciI7CmZ1bmN0aW9uIGVIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn1lSC5QPSJpbnRlcm5hbC5jb3B5RnJvbURhdGFMYXllckNhY2hlIjtmdW5jdGlvbiBmSChhKXt2YXIgYjtyZXR1cm4gYn1mSC5wdWJsaWNOYW1lPSJjb3B5RnJvbVdpbmRvdyI7ZnVuY3Rpb24gZ0goYSl7dmFyIGI9dm9pZCAwO3JldHVybiBVZChiLHRoaXMuVCwxKX1nSC5QPSJpbnRlcm5hbC5jb3B5S2V5RnJvbVdpbmRvdyI7dmFyIGhIPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Y28uaWEuY2ImJmZvLkhbYV09PT1iby5NYS5VZSYmIVhvKEYuRC5rYSl9O3ZhciBpSD1mdW5jdGlvbigpe3JldHVybiIwIn0sakg9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ic3RyaW5nIilyZXR1cm4iIjt2YXIgYj1bImdjbGlkIiwiZGNsaWQiLCJ3YnJhaWQiLCJfZ2wiXTtNKDEwMikmJmIucHVzaCgiZ2JyYWlkIik7cmV0dXJuIFNqKGEsYiwiMCIpfTt2YXIga0g9e30sbEg9e30sbUg9e30sbkg9e30sb0g9e30scEg9e30scUg9e30sckg9e30sc0g9e30sdEg9e30sdUg9e30sdkg9e30sd0g9e30seEg9e30seUg9e30sekg9e30sQUg9e30sQkg9e30sQ0g9e30sREg9e30sRUg9e30sRkg9e30sR0g9e30sSEg9e30sSUg9e30sSkg9e30sS0g9KEpIW0YuRC5mYl09KGtIWzJdPVtoSF0sa0gpLEpIW0YuRC5aZl09KGxIWzJdPVtoSF0sbEgpLEpIW0YuRC5KaV09KG1IWzJdPVtoSF0sbUgpLEpIW0YuRC5nbV09KG5IWzJdPVtoSF0sbkgpLEpIW0YuRC5obV09KG9IWzJdPVtoSF0sb0gpLEpIW0YuRC5pbV09KHBIWzJdPVtoSF0scEgpLEpIW0YuRC5qbV09KHFIWzJdPVtoSF0scUgpLEpIW0YuRC5rbV09KHJIWzJdPVtoSF0sckgpLEpIW0YuRC5CY109KHNIWzJdPVtoSF0sc0gpLEpIW0YuRC5jZ109KHRIWzJdPVtoSF0sdEgpLEpIW0YuRC5kZ109KHVIWzJdPVtoSF0sdUgpLEpIW0YuRC5lZ109KHZIWzJdPVtoSF0sdkgpLEpIW0YuRC5mZ109KHdIWzJdPQpbaEhdLHdIKSxKSFtGLkQuZ2ddPSh4SFsyXT1baEhdLHhIKSxKSFtGLkQuaGddPSh5SFsyXT1baEhdLHlIKSxKSFtGLkQuaWddPSh6SFsyXT1baEhdLHpIKSxKSFtGLkQuamddPShBSFsyXT1baEhdLEFIKSxKSFtGLkQubGJdPShCSFsxXT1baEhdLEJIKSxKSFtGLkQuRGRdPShDSFsxXT1baEhdLENIKSxKSFtGLkQuS2RdPShESFsxXT1baEhdLERIKSxKSFtGLkQuRWVdPShFSFsxXT1baEhdLEVIKSxKSFtGLkQuQmZdPShGSFsxXT1bZnVuY3Rpb24oYSl7cmV0dXJuIE0oMTAyKSYmaEgoYSl9XSxGSCksSkhbRi5ELlVjXT0oR0hbMV09W2hIXSxHSCksSkhbRi5ELnphXT0oSEhbMV09W2hIXSxISCksSkhbRi5ELlVhXT0oSUhbMV09W2hIXSxJSCksSkgpLExIPXt9LE1IPShMSFtGLkQubGJdPWlILExIW0YuRC5EZF09aUgsTEhbRi5ELktkXT1pSCxMSFtGLkQuRWVdPWlILExIW0YuRC5CZl09aUgsTEhbRi5ELlVjXT1mdW5jdGlvbihhKXtpZighQ2QoYSkpcmV0dXJue307dmFyIGI9RWQoYSwKbnVsbCk7ZGVsZXRlIGIubWF0Y2hfaWQ7cmV0dXJuIGJ9LExIW0YuRC56YV09akgsTEhbRi5ELlVhXT1qSCxMSCksTkg9e30sT0g9e30sUEg9KE9IW0guSi5ZYV09KE5IWzJdPVtoSF0sTkgpLE9IKSxRSD17fTt2YXIgUkg9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5IPWE7dGhpcy5OPWI7dGhpcy5SPWM7dGhpcy5aPWR9O1JILnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/Y28uaWEuZ2Q6YTtpZighdGhpcy5OLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIoYSl9KSlyZXR1cm4gdGhpcy5SLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIoYSl9KT90aGlzLloodGhpcy5IKTp0aGlzLkh9O1JILnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIEFkKHRoaXMuSCk9PT0iYXJyYXkifHxDZCh0aGlzLkgpP0VkKHRoaXMuSCxudWxsKTp0aGlzLkh9Owp2YXIgU0g9ZnVuY3Rpb24oKXt9LFRIPWZ1bmN0aW9uKGEsYil7dGhpcy5jb25kaXRpb25zPWE7dGhpcy5IPWJ9LFVIPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPSgoZD1hLmNvbmRpdGlvbnNbYl0pPT1udWxsP3ZvaWQgMDpkWzJdKXx8W10sZixnPSgoZj1hLmNvbmRpdGlvbnNbYl0pPT1udWxsP3ZvaWQgMDpmWzFdKXx8W107cmV0dXJuIG5ldyBSSChjLGUsZyxhLkhbYl18fFNIKX0sVkgsV0g7dmFyIFlIPWZ1bmN0aW9uKGEpe2EuSz0hMDthLkg9ITE7aWYoSWYoNTIpKXtpZihNKDUxNikmJlhIKCkpe3ZhciBiO2Euc2V0dGluZ3M9KGI9ZGF0YS5wcm9kdWN0U2V0dGluZ3MpIT1udWxsP2I6e307YS5IPSEwfWVsc2V7dmFyIGM7YS5zZXR0aW5ncz0oYz1wcm9kdWN0U2V0dGluZ3MpIT1udWxsP2M6e319cHJvZHVjdFNldHRpbmdzPXZvaWQgMDtkYXRhLnByb2R1Y3RTZXR0aW5ncz12b2lkIDA7dmFyIGQ7KGQ9RkYpIT1udWxsJiZmbi5OJiZNKDUxNikmJihkLkg9YS5IPyIxIjoiMCIpfX0sJEg9ZnVuY3Rpb24oYSl7dmFyIGI9Wkg7Yi5LfHxZSChiKTtyZXR1cm4gYi5zZXR0aW5nc1thXX0sWkg9bmV3IGZ1bmN0aW9uKCl7dGhpcy5zZXR0aW5ncz17fTt0aGlzLks9dGhpcy5IPSExfTsKZnVuY3Rpb24gWEgoKXtpZighZGF0YS5wcm9kdWN0U2V0dGluZ3MmJiFwcm9kdWN0U2V0dGluZ3MpcmV0dXJuITA7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzfHwhcHJvZHVjdFNldHRpbmdzfHxPYmplY3Qua2V5cyhkYXRhLnByb2R1Y3RTZXR0aW5ncykubGVuZ3RoIT09T2JqZWN0LmtleXMocHJvZHVjdFNldHRpbmdzKS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBhIGluIHByb2R1Y3RTZXR0aW5ncylpZighZGF0YS5wcm9kdWN0U2V0dGluZ3MuaGFzT3duUHJvcGVydHkoYSl8fGRhdGEucHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkhPT1wcm9kdWN0U2V0dGluZ3NbYV0ucHJlQXV0b1BpaSlyZXR1cm4hMTtyZXR1cm4hMH07dmFyIGFJPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmV2ZW50TmFtZT1iO3RoaXMuTT1jO3RoaXMuSD17fTt0aGlzLmlzQWJvcnRlZD0hMTt0aGlzLnRhcmdldD1hO3RoaXMubWV0YWRhdGE9e307Zm9yKHZhciBkPWMuZXZlbnRNZXRhZGF0YXx8e30sZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtWKHRoaXMsZyxkW2ddKX19LFI9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO3JldHVybihjPWEuSFtiXSk9PW51bGw/dm9pZCAwOihkPWMuZ2V0VmFsdWUpPT1udWxsP3ZvaWQgMDpkLmNhbGwoYyxRKGEsSC5KLnRnKSl9LGV1PWZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3Qua2V5cyhhLkgpfSxVPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkgsZTtjPT09dm9pZCAwP2U9dm9pZCAwOihWSCE9bnVsbHx8KFZIPW5ldyBUSChLSCxNSCkpLGU9VUgoVkgsYixjKSk7ZFtiXT1lfTsKYUkucHJvdG90eXBlLm1lcmdlSGl0RGF0YUZvcktleT1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZTtjPShkPXRoaXMuSFthXSk9PW51bGw/dm9pZCAwOihlPWQuSyk9PW51bGw/dm9pZCAwOmUuY2FsbChkKTtpZighYylyZXR1cm4gVSh0aGlzLGEsYiksITA7aWYoIUNkKGMpKXJldHVybiExO1UodGhpcyxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsYyxiKSk7cmV0dXJuITB9O3ZhciBiST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEuSCkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9dm9pZCAwLGc9dm9pZCAwLGg9dm9pZCAwO2JbZV09KGY9YS5IW2VdKT09bnVsbD92b2lkIDA6KGg9KGc9ZikuSyk9PW51bGw/dm9pZCAwOmguY2FsbChnKX1yZXR1cm4gYn07CmFJLnByb3RvdHlwZS5jb3B5VG9IaXREYXRhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1PKHRoaXMuTSxhKTtkPT09dm9pZCAwJiYoZD1iKTtpZih6YihkKSYmYyE9PXZvaWQgMCl0cnl7ZD1jKGQpfWNhdGNoKGUpe31kIT09dm9pZCAwJiZVKHRoaXMsYSxkKX07CnZhciBRPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5tZXRhZGF0YVtiXTtpZihiPT09SC5KLnRnKXt2YXIgZDtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGQ9Yy5LKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMpfXZhciBlO3JldHVybiBjPT1udWxsP3ZvaWQgMDooZT1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZS5jYWxsKGMsUShhLEguSi50ZykpfSxWPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLm1ldGFkYXRhLGU7Yz09PXZvaWQgMD9lPWM6KFdIIT1udWxsfHwoV0g9bmV3IFRIKFBILFFIKSksZT1VSChXSCxiLGMpKTtkW2JdPWV9LGNJPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Zm9yKHZhciBjPW0oT2JqZWN0LmtleXMoYS5tZXRhZGF0YSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9dm9pZCAwLGc9dm9pZCAwLGg9dm9pZCAwO2JbZV09KGY9YS5tZXRhZGF0YVtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDoKaC5jYWxsKGcpfXJldHVybiBifSxkST1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JEgoYS50YXJnZXQuZGVzdGluYXRpb25JZCk7cmV0dXJuIGQmJmRbYl0hPT12b2lkIDA/ZFtiXTpjfSxadT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1uZXcgYUkoKGI9PW51bGw/dm9pZCAwOmIudGFyZ2V0KXx8YS50YXJnZXQsKGI9PW51bGw/dm9pZCAwOmIuZXZlbnROYW1lKXx8YS5ldmVudE5hbWUsKGI9PW51bGw/dm9pZCAwOmIuTSl8fGEuTSksZD1iSShhKSxlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO1UoYyxnLGRbZ10pfWZvcih2YXIgaD1jSShhKSxsPW0oT2JqZWN0LmtleXMoaCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO1YoYyxwLGhbcF0pfWMuaXNBYm9ydGVkPWEuaXNBYm9ydGVkO3JldHVybiBjfSxlST1mdW5jdGlvbihhKXt2YXIgYj1hLk0sYz1iLmV2ZW50SWQsZD1iLnByaW9yaXR5SWQ7CnJldHVybiBkP2MrIl8iK2Q6U3RyaW5nKGMpfTthSS5wcm90b3R5cGUuYWNjZXB0PWZ1bmN0aW9uKCl7dmFyIGE9b20oam0uYmEuU2kse30pLGI9ZUkodGhpcyksYz10aGlzLnRhcmdldC5kZXN0aW5hdGlvbklkO2FbYl18fChhW2JdPXt9KTthW2JdW2NdPXZrKCk7dmFyIGQ9am0uYmEuU2k7aWYoa20oZCkpe3ZhciBlOyhlPWxtKGQpKT09bnVsbHx8ZS5ub3RpZnkoKX19O2FJLnByb3RvdHlwZS5jYW5CZUFjY2VwdGVkPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLlNpKTtpZighYilyZXR1cm4hMDt2YXIgYz1iW2VJKHRoaXMpXTtpZighYylyZXR1cm4hMDt2YXIgZD1jW2EhPW51bGw/YTp0aGlzLnRhcmdldC5kZXN0aW5hdGlvbklkXTtyZXR1cm4gZD09PXZvaWQgMHx8ZD09PXZrKCl9O2Z1bmN0aW9uIGZJKGEpe3JldHVybntnZXREZXN0aW5hdGlvbklkOmZ1bmN0aW9uKCl7cmV0dXJuIGEudGFyZ2V0LmRlc3RpbmF0aW9uSWR9LGdldEV2ZW50TmFtZTpmdW5jdGlvbigpe3JldHVybiBhLmV2ZW50TmFtZX0sc2V0RXZlbnROYW1lOmZ1bmN0aW9uKGIpe2EuZXZlbnROYW1lPWJ9LGdldEhpdERhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFIoYSxiKX0sc2V0SGl0RGF0YTpmdW5jdGlvbihiLGMpe1UoYSxiLGMpfSxzZXRIaXREYXRhSWZOb3REZWZpbmVkOmZ1bmN0aW9uKGIsYyl7UihhLGIpPT09dm9pZCAwJiZVKGEsYixjKX0sY29weVRvSGl0RGF0YTpmdW5jdGlvbihiLGMpe2EuY29weVRvSGl0RGF0YShiLGMpfSxnZXRNZXRhZGF0YTpmdW5jdGlvbihiKXtyZXR1cm4gUShhLGIpfSxzZXRNZXRhZGF0YTpmdW5jdGlvbihiLGMpe1YoYSxiLGMpfSxpc0Fib3J0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5pc0Fib3J0ZWR9LGFib3J0OmZ1bmN0aW9uKCl7YS5pc0Fib3J0ZWQ9ITB9LApnZXRGcm9tRXZlbnRDb250ZXh0OmZ1bmN0aW9uKGIpe3JldHVybiBPKGEuTSxiKX0scmI6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZ2V0SGl0S2V5czpmdW5jdGlvbigpe3JldHVybiBldShhKX0sZ2V0TWVyZ2VkVmFsdWVzOmZ1bmN0aW9uKGIpe3JldHVybiBhLk0uZ2V0TWVyZ2VkVmFsdWVzKGIsMyl9LG1lcmdlSGl0RGF0YUZvcktleTpmdW5jdGlvbihiLGMpe3JldHVybiBDZChjKT9hLm1lcmdlSGl0RGF0YUZvcktleShiLGMpOiExfSxhY2NlcHQ6ZnVuY3Rpb24oKXthLmFjY2VwdCgpfSxjYW5CZUFjY2VwdGVkOmZ1bmN0aW9uKGIpe3JldHVybiBhLmNhbkJlQWNjZXB0ZWQoYil9fX07ZnVuY3Rpb24gZ0koYSxiKXt2YXIgYztpZighZWgoYSl8fCFmaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGQ9VGQoYil8fHt9LGU9VGQoYSx0aGlzLlQsMSkucmIoKSxmPWUuTTtkLm9taXRFdmVudENvbnRleHQmJihmPUpDKG5ldyB5QyhlLk0uZXZlbnRJZCxlLk0ucHJpb3JpdHlJZCkpKTt2YXIgZz1uZXcgYUkoZS50YXJnZXQsZS5ldmVudE5hbWUsZik7aWYoIWQub21pdEhpdERhdGEpZm9yKHZhciBoPWJJKGUpLGw9bShPYmplY3Qua2V5cyhoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7VShnLHAsaFtwXSl9aWYoZC5vbWl0TWV0YWRhdGEpZy5tZXRhZGF0YT17fTtlbHNlIGZvcih2YXIgcT1jSShlKSxyPW0oT2JqZWN0LmtleXMocSkpLHQ9ci5uZXh0KCk7IXQuZG9uZTt0PQpyLm5leHQoKSl7dmFyIHU9dC52YWx1ZTtWKGcsdSxxW3VdKX1nLmlzQWJvcnRlZD1lLmlzQWJvcnRlZDtjPVVkKGZJKGcpLHRoaXMuVCwxKTtyZXR1cm4gY31nSS5QPSJpbnRlcm5hbC5jb3B5UHJlSGl0IjtmdW5jdGlvbiBoSShhLGIpe3ZhciBjPW51bGw7cmV0dXJuIFVkKGMsdGhpcy5ULDIpfWhJLnB1YmxpY05hbWU9ImNyZWF0ZUFyZ3VtZW50c1F1ZXVlIjtmdW5jdGlvbiBpSShhKXtyZXR1cm4gVWQoZnVuY3Rpb24oYyl7dmFyIGQ9U0EoKTtpZih0eXBlb2YgYz09PSJmdW5jdGlvbiIpZChmdW5jdGlvbigpe2MoZnVuY3Rpb24oZixnLGgpe3ZhciBsPQpTQSgpLG49bCYmbC5nZXRCeU5hbWUmJmwuZ2V0QnlOYW1lKGYpO3JldHVybihuZXcgQS5nYXBsdWdpbnMuTGlua2VyKG4pKS5kZWNvcmF0ZShnLGgpfSl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYykpe3ZhciBlPVN0cmluZyhjWzBdKS5zcGxpdCgiLiIpO2JbZS5sZW5ndGg9PT0xP2VbMF06ZVsxXV0mJmQuYXBwbHkobnVsbCxjKX1lbHNlIGlmKGM9PT0iaXNMb2FkZWQiKXJldHVybiEhZC5sb2FkZWR9LHRoaXMuVCwxKX1pSS5QPSJpbnRlcm5hbC5jcmVhdGVHYUNvbW1hbmRRdWV1ZSI7ZnVuY3Rpb24gakkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKCl7aWYoIXliKGUucHVzaCkpdGhyb3cgRXJyb3IoIk9iamVjdCBhdCAiK2ErIiBpbiB3aW5kb3cgaXMgbm90IGFuIGFycmF5LiIpO2UucHVzaC5hcHBseShlLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSl9LHRoaXMuVCwKQmgoWEYodGhpcykuUGIoKSk/MjoxKX1qSS5wdWJsaWNOYW1lPSJjcmVhdGVRdWV1ZSI7ZnVuY3Rpb24ga0koYSxiKXt2YXIgYz1udWxsO2lmKCFsaChhKXx8IW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt0cnl7dmFyIGQ9KGJ8fCIiKS5zcGxpdCgiIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJpZyIuaW5kZXhPZihlKT49MH0pLmpvaW4oIiIpO2M9bmV3IFBkKG5ldyBSZWdFeHAoYSxkKSl9Y2F0Y2goZSl7fXJldHVybiBjfWtJLlA9ImludGVybmFsLmNyZWF0ZVJlZ2V4IjtmdW5jdGlvbiBsSShhKXt9bEkuUD0iaW50ZXJuYWwuZGVjbGFyZUNvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gbUkoYSl7dmFyIGI9IiI7cmV0dXJuIGJ9bUkuUD0iaW50ZXJuYWwuZGVjb2RlVXJsSHRtbEVudGl0aWVzIjtmdW5jdGlvbiBuSShhLGIsYyl7dmFyIGQ7cmV0dXJuIGR9bkkuUD0iaW50ZXJuYWwuZGVjb3JhdGVVcmxXaXRoR2FDb29raWVzIjtmdW5jdGlvbiBvSSgpe31vSS5QPSJpbnRlcm5hbC5kZWZlckN1c3RvbUV2ZW50cyI7ZnVuY3Rpb24gcEkoYSxiKXt0cnl7cmV0dXJuIGEuY2xvc2VzdChiKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19O2Z1bmN0aW9uIHFJKCl7dmFyIGE9QS5zY3JlZW47cmV0dXJue3dpZHRoOmE/YS53aWR0aDowLGhlaWdodDphP2EuaGVpZ2h0OjB9fQpmdW5jdGlvbiBySShhKXtpZihCLmhpZGRlbilyZXR1cm4hMDt2YXIgYj1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGIudG9wPT09Yi5ib3R0b218fGIubGVmdD09PWIucmlnaHR8fCFBLmdldENvbXB1dGVkU3R5bGUpcmV0dXJuITA7dmFyIGM9QS5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk7aWYoYy52aXNpYmlsaXR5PT09ImhpZGRlbiIpcmV0dXJuITA7Zm9yKHZhciBkPWEsZT1jO2Q7KXtpZihlLmRpc3BsYXk9PT0ibm9uZSIpcmV0dXJuITA7dmFyIGY9ZS5vcGFjaXR5LGc9ZS5maWx0ZXI7aWYoZyl7dmFyIGg9Zy5pbmRleE9mKCJvcGFjaXR5KCIpO2g+PTAmJihnPWcuc3Vic3RyaW5nKGgrOCxnLmluZGV4T2YoIikiLGgpKSxnLmNoYXJBdChnLmxlbmd0aC0xKT09PSIlIiYmKGc9Zy5zdWJzdHJpbmcoMCxnLmxlbmd0aC0xKSksZj1TdHJpbmcoTWF0aC5taW4oTnVtYmVyKGcpLE51bWJlcihmKSkpKX1pZihmIT09dm9pZCAwJiZOdW1iZXIoZik8PTApcmV0dXJuITA7KGQ9ZC5wYXJlbnRFbGVtZW50KSYmCihlPUEuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpKX1yZXR1cm4hMX0KdmFyIHRJPWZ1bmN0aW9uKGEpe3ZhciBiPXNJKCksYz1iLmhlaWdodCxkPWIud2lkdGgsZT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9ZS5ib3R0b20tZS50b3AsZz1lLnJpZ2h0LWUubGVmdDtyZXR1cm4gZiYmZz8oMS1NYXRoLm1pbigoTWF0aC5tYXgoMC1lLmxlZnQsMCkrTWF0aC5tYXgoZS5yaWdodC1kLDApKS9nLDEpKSooMS1NYXRoLm1pbigoTWF0aC5tYXgoMC1lLnRvcCwwKStNYXRoLm1heChlLmJvdHRvbS1jLDApKS9mLDEpKTowfSxzST1mdW5jdGlvbigpe3ZhciBhPUIuYm9keSxiPUIuZG9jdW1lbnRFbGVtZW50fHxhJiZhLnBhcmVudEVsZW1lbnQsYyxkO2lmKEIuY29tcGF0TW9kZSYmQi5jb21wYXRNb2RlIT09IkJhY2tDb21wYXQiKWM9Yj9iLmNsaWVudEhlaWdodDowLGQ9Yj9iLmNsaWVudFdpZHRoOjA7ZWxzZXt2YXIgZT1mdW5jdGlvbihmLGcpe3JldHVybiBmJiZnP01hdGgubWluKGYsZyk6TWF0aC5tYXgoZixnKX07Yz1lKGI/Yi5jbGllbnRIZWlnaHQ6MCxhPwphLmNsaWVudEhlaWdodDowKTtkPWUoYj9iLmNsaWVudFdpZHRoOjAsYT9hLmNsaWVudFdpZHRoOjApfXJldHVybnt3aWR0aDpkLGhlaWdodDpjfX07dmFyIHZJPWZ1bmN0aW9uKGEpe2lmKHVJKXt2YXIgYj1hbCgyNCxmdW5jdGlvbigpe3JldHVybltdfSk7aWYoYT49MCYmYTxiLmxlbmd0aCYmYlthXSl7dmFyIGM7KGM9YlthXSk9PW51bGx8fGMuZGlzY29ubmVjdCgpO2JbYV09dm9pZCAwfX1lbHNlIEEuY2xlYXJJbnRlcnZhbChhKX0seUk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWNbZF0+MT9jW2RdPTE6Y1tkXTwwJiYoY1tkXT0wKTtpZih1SSl7dmFyIGU9ITE7YmQoZnVuY3Rpb24oKXtlfHx3SShhLGIsYykoKX0pO3JldHVybiB4SShmdW5jdGlvbihmKXtlPSEwO2Zvcih2YXIgZz17SGc6MH07Zy5IZzxmLmxlbmd0aDtnPXtIZzpnLkhnfSxnLkhnKyspYmQoZnVuY3Rpb24oaCl7cmV0dXJuIGZ1bmN0aW9uKCl7YShmW2guSGddKX19KGcpKX0sCmIsYyl9cmV0dXJuIGNkKHdJKGEsYixjKSwxRTMpfSx3ST1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChoLGwpe3ZhciBuPXt0b3A6MCxib3R0b206MCxyaWdodDowLGxlZnQ6MCx3aWR0aDowLGhlaWdodDowfSxwPXtib3VuZGluZ0NsaWVudFJlY3Q6aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpbnRlcnNlY3Rpb25SYXRpbzpsLGludGVyc2VjdGlvblJlY3Q6bixpc0ludGVyc2VjdGluZzpsPjAscm9vdEJvdW5kczpuLHRhcmdldDpoLHRpbWU6TmIoKX07YmQoZnVuY3Rpb24oKXthKHApfSl9Zm9yKHZhciBlPVtdLGY9W10sZz0wO2c8Yi5sZW5ndGg7ZysrKWUucHVzaCgwKSxmLnB1c2goLTEpO2Muc29ydChmdW5jdGlvbihoLGwpe3JldHVybiBoLWx9KTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGg9MDtoPGIubGVuZ3RoO2grKyl7dmFyIGw9dEkoYltoXSk7aWYobD5lW2hdKWZvcig7ZltoXTxjLmxlbmd0aC0xJiZsPj1jW2ZbaF0rMV07KWQoYltoXSxsKSxmW2hdKys7ZWxzZSBpZihsPAplW2hdKWZvcig7ZltoXT49MCYmbDw9Y1tmW2hdXTspZChiW2hdLGwpLGZbaF0tLTtlW2hdPWx9fX0seEk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1uZXcgQS5JbnRlcnNlY3Rpb25PYnNlcnZlcihhLHt0aHJlc2hvbGQ6Y30pLGU9MDtlPGIubGVuZ3RoO2UrKylkLm9ic2VydmUoYltlXSk7Zm9yKHZhciBmPWFsKDI0LGZ1bmN0aW9uKCl7cmV0dXJuW119KSxnPTA7ZzxmLmxlbmd0aDtnKyspaWYoIWZbZ10pcmV0dXJuIGZbZ109ZCxnO3JldHVybiBmLnB1c2goZCktMX0sdUk9ISghQS5JbnRlcnNlY3Rpb25PYnNlcnZlcnx8IUEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSk7CnZhciBKST1mdW5jdGlvbihhKXt2YXIgYixjPShiPWE9PW51bGw/dm9pZCAwOmEuaW5jbHVkZVNlbGVjdG9yKSE9bnVsbD9iOiEwLGQsZT0oZD1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVWaXNpYmlsaXR5KSE9bnVsbD9kOiEwLGYsZz0oZj1hPT1udWxsP3ZvaWQgMDphLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpIT1udWxsP2Y6ITEsaD0oYT09bnVsbD92b2lkIDA6YS5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyl8fFtdLGw9KGE9PW51bGw/dm9pZCAwOmEuZmllbGRGaWx0ZXJzKXx8e2VtYWlsOiEwLHBob25lOiExLGFkZHJlc3M6ITF9LG49YWwoNixmdW5jdGlvbigpe3JldHVybnt9fSkscD16SSh7aW5jbHVkZVNlbGVjdG9yOmMsaW5jbHVkZVZpc2liaWxpdHk6ZSxleGNsdWRlRWxlbWVudFNlbGVjdG9yczpoLGZpZWxkRmlsdGVyczpsfSkscT1uW3BdO2lmKHEmJk5iKCktcS50aW1lc3RhbXA8MjAwKXt2YXIgcj1xLnJlc3VsdCx0OyhyLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwKKCh0PXIuZ2kpPT1udWxsPzA6dC5kaSkpJiZHdShULlcucmopO3JldHVybiByfXZhciB1PUFJKCksdj11LnN0YXR1cyx4PVtdLHkseixDPVtdO2lmKE0oNTY4KSl7dmFyIEQ9QkkobCksST1DSSh1LmVsZW1lbnRzLEQpLEc9REkoSSksTj1FSShHLGgpLFM9RkkoTik7eT1TLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIHFhLkRhPT09RkQuQmJ9KVswXTtmb3IodmFyIFc9W10sZWE9e0lnOjB9O2VhLklnPEQubGVuZ3RoO2VhPXtJZzplYS5JZ30sZWEuSWcrKyl7dmFyIGphPU4uZmlsdGVyKGZ1bmN0aW9uKHFhKXtyZXR1cm4gZnVuY3Rpb24oaWIpe3JldHVybiBpYi5EYT09PURbcWEuSWddfX0oZWEpKTtqYS5sZW5ndGg+MTAmJih2PSIzIixqYT1qYS5zbGljZSgwLDEwKSk7Vz1XLmNvbmNhdChqYSl9Tj1XOyFnJiZTJiYoTj1TKTtmb3IodmFyIGZhPTA7ZmE8Ti5sZW5ndGg7ZmErKyl7dmFyIHNhPU5bZmFdO3NhLkRhIT09RkQuS2gmJkMucHVzaChHSShzYSxjLGUpKX19ZWxzZXtpZihsLmVtYWlsKXt2YXIgZGE9CkhJKHUuZWxlbWVudHMpO3g9RUkoZGEsaCk7eT1JSSh4KTtkYS5sZW5ndGg+MTAmJih2PSIzIil9IWcmJnkmJih4PVt5XSk7Zm9yKHZhciBtYT0wO21hPHgubGVuZ3RoO21hKyspQy5wdXNoKEdJKHhbbWFdLGMsZSkpO0M9Qy5zbGljZSgwLDEwKX15JiYoej1HSSh5LGMsZSkpO3ZhciBQYT17ZWxlbWVudHM6QyxnaTp6LHN0YXR1czp2fTtuW3BdPXt0aW1lc3RhbXA6TmIoKSxyZXN1bHQ6UGF9O3ZhciBGYTsoUGEuZWxlbWVudHMuc29tZShmdW5jdGlvbihxYSl7cmV0dXJuIHFhLmRpfSl8fCgoRmE9UGEuZ2kpPT1udWxsPzA6RmEuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gUGF9LERJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuS2h9KSxjPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuWGR9KTtpZihhLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmNlfSkubGVuZ3RoPT09MCYmYy5sZW5ndGg9PT0KMClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWUuQ2Euc3BsaXQoIiAiKTtmLmxlbmd0aD4xJiZhLnB1c2goe0NhOmZbMF0sRGE6RkQuWGQsZWxlbWVudDplLmVsZW1lbnQsT2M6ZS5PY30se0NhOmYuc2xpY2UoMSkuam9pbigiICIpLERhOkZELmNlLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9KX1mb3IodmFyIGcsaD0wLGwsbj1mdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmVlJiZ1LkNhLmxlbmd0aD49MyYmdS5DYS5sZW5ndGg8PTR9LHA9MDtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9YVtwXTtpZihuKHEpJiZnJiZxLmVsZW1lbnQucGFyZW50RWxlbWVudD09PWcmJmg8Myl7aWYoaCs9MSxsKz1xLkNhLGg9PT0zKXt2YXIgcj1wLWgrMTtpZihsPUtJW0ZELmVlXS5uYShsKSlhW3JdLkNhPWx9fWVsc2UgaWYoaD0wLGw9IiIsZz12b2lkIDAsbihxKSl7aCsrO2w9cS5DYTt2YXIgdD12b2lkIDA7Zz0odD1xLmVsZW1lbnQucGFyZW50RWxlbWVudCkhPW51bGw/CnQ6dm9pZCAwfX1yZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIW4odSl9KX0sT0k9ZnVuY3Rpb24oYSxiKXtpZihhLnZhbHVlJiZMSS5pbmRleE9mKChhLnR5cGV8fCJ0ZXh0IikudG9Mb3dlckNhc2UoKSkhPT0tMSl7dmFyIGM9YS5hdXRvY29tcGxldGU7aWYoYylmb3IodmFyIGQ9Yy5zcGxpdCgiICIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9TUkoYS52YWx1ZSxiLGRbZV0pO2lmKGYpcmV0dXJuIGZ9dmFyIGcsaD1bYS5uYW1lLGEuaWQsKGc9YS5hcmlhTGFiZWwpIT1udWxsP2c6dm9pZCAwLGEucGxhY2Vob2xkZXJdLGw9YS5wYXJlbnRFbGVtZW50O2wmJmwudGFnTmFtZT09PSJMQUJFTCImJmgucHVzaChsLmlubmVyVGV4dCk7dmFyIG49YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO24mJm4udGFnTmFtZT09PSJMQUJFTCImJiFuLmh0bWxGb3ImJmgucHVzaChuLmlubmVyVGV4dCk7aWYoYS5pZCl7dmFyIHA9W107dHJ5e3A9ZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbFtmb3I9IicrCmEuaWQrJyJdJyl9Y2F0Y2goRCl7fWZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWgucHVzaChwW3FdLmlubmVyVGV4dCl9aD1oLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gRCYmRC50cmltKCl9KTtmb3IodmFyIHIsdD0wLHU9MDt1PGgubGVuZ3RoO3UrKyl7dmFyIHY9TkkoYSxiLGhbdV0pO2lmKHYpe3ZhciB4PXYseT14LkNhLHo9eC5EYSxDPXguWHM7Qz50JiYodD1DLHI9e0NhOnksRGE6en0pfX1yZXR1cm4gcn19LE5JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5uZSl7dmFyIGY9S0lbZV0ubmUuZXhlYyhjLnRyaW0oKSk7aWYoZil7dmFyIGc9YSxoPVtdLGw9Zy52YWx1ZS50cmltKCk7bCYmaC5wdXNoKGwpO2lmKGcudGFnTmFtZT09PSJTRUxFQ1QiKXRyeXt2YXIgbj1nLnF1ZXJ5U2VsZWN0b3IoJ1t2YWx1ZT0iJytnLnZhbHVlKyciXScpLHA9biYmbi5pbm5lclRleHQudHJpbSgpO3AmJmgucHVzaChwKX1jYXRjaCh1KXt9Zm9yKHZhciBxPQpoLHI9dm9pZCAwLHQ9MDt0PHEubGVuZ3RoJiYhcjt0Kyspcj1LSVtlXS5uYShxW3RdKTtpZihyKXJldHVybntEYTplLENhOnIsWHM6ZlswXS5sZW5ndGgvYy50cmltKCkubGVuZ3RofX19fX0sTUk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKEtJW2VdLmF1dG9jb21wbGV0ZSYmS0lbZV0uYXV0b2NvbXBsZXRlLmluZGV4T2YoYyk+PTApe3ZhciBmPUtJW2VdLm5hKGEudHJpbSgpKTtpZihmKXJldHVybntEYTplLENhOmZ9fX19LEJJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EuZW1haWwmJmIucHVzaChGRC5CYik7YS5waG9uZSYmYi5wdXNoKEZELmVlKTthLmFkZHJlc3MmJmIucHVzaChGRC5YZCxGRC5jZSxGRC54ZixGRC5xZyxGRC5LaCk7cmV0dXJuIGJ9LENJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YVtkXSxmPWUuZWxlbWVudCxnPWUuT2MsaDthOnt2YXIgbD1mLG49YiwKcD1sLmlubmVySFRNTDtQSS5pbmRleE9mKGwudGFnTmFtZSk+PTAmJihwPWwudmFsdWV8fHApO2lmKHApe3ZhciBxO2I6e2Zvcih2YXIgcj1wLHQ9bix1PTA7dTx0Lmxlbmd0aDt1Kyspe3ZhciB2PXRbdV07aWYoIUtJW3ZdLm1lKXt2YXIgeD1LSVt2XS5uYShyLnRyaW0oKSk7aWYoeCl7cT17RGE6dixDYTp4fTticmVhayBifX19cT12b2lkIDB9aWYocSl7aD1xO2JyZWFrIGF9aWYoUEkuaW5kZXhPZihsLnRhZ05hbWUpIT09LTEpe2g9T0kobCxuKTticmVhayBhfX1oPXZvaWQgMH12YXIgeT1oO2lmKHkpe3ZhciB6PXk7Yy5wdXNoKHtDYTp6LkNhLERhOnouRGEsZWxlbWVudDpmLE9jOmd9KX19cmV0dXJuIGN9LEZJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gYjt2YXIgYz17fSxkO2ZvcihkIGluIEZEKWlmKGM9e1ZnOmMuVmd9LGMuVmc9ZCxGRC5oYXNPd25Qcm9wZXJ0eShjLlZnKSl7dmFyIGU9YS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLkRhPT09CkZEW2YuVmddfX0oYykpO2UubGVuZ3RoIT09MCYmKEZEW2MuVmddPT09RkQuQmImJihlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIVJJLnRlc3QoZi5DYSl9KSxlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIGYuZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQifSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFySShmLmVsZW1lbnQpfSkpLGIucHVzaChlWzBdKSl9cmV0dXJuIGJ9LEdJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmVsZW1lbnQsZT1hLk9jLGY9e0NhOmEuQ2EsdHlwZTphLkRhLHRhZ05hbWU6ZC50YWdOYW1lfTtpZihiKXt2YXIgZyxoPVNJKGQpO2lmKGc9KGU/ZSsifCIraDpoKS5zbGljZSgwLFRJKSlmLnF1ZXJ5U2VsZWN0b3I9Z31jJiYoZi5pc1Zpc2libGU9IXJJKGQpKTtlJiYoZi5kaT0hMCk7cmV0dXJuIGZ9LHpJPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO2I9YS5pbmNsdWRlU2VsZWN0b3I7Yz1hLmluY2x1ZGVWaXNpYmlsaXR5O2Q9YS5leGNsdWRlRWxlbWVudFNlbGVjdG9yczsKZT1hLmZpZWxkRmlsdGVyczt2YXIgZj0hIWIrIi4iKyEhYztkLmxlbmd0aCYmKGYrPSIuIitkLmpvaW4oIi4iKSk7cmV0dXJuIGYrPSIuIitlLmVtYWlsKyIuIitlLnBob25lKyIuIitlLmFkZHJlc3N9LElJPWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoIT09MCl7dmFyIGI7Yj1RSShhLGZ1bmN0aW9uKGMpe3JldHVybiFSSS50ZXN0KGMuQ2EpfSk7Yj1RSShiLGZ1bmN0aW9uKGMpe3JldHVybiBjLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4hckkoYy5lbGVtZW50KX0pO3JldHVybiBiWzBdfX0sRUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdO2lmKGcmJnBJKGFbZF0uZWxlbWVudCxnKSl7ZT0hMTticmVha319YVtkXS5EYT09PUZELkJiJiZNKDYwMikmJihSSS50ZXN0KGFbZF0uQ2EpfHxhW2RdLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09CiJBIiYmYVtkXS5lbGVtZW50Lmhhc0F0dHJpYnV0ZSgiaHJlZiIpJiZhW2RdLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJocmVmIikuaW5kZXhPZigibWFpbHRvOiIpIT09LTE/ZT0hMTphW2RdLmVsZW1lbnQuY2xvc2VzdCgiZm9vdGVyIikhPT1udWxsJiYoZT0hMSkpO2UmJmMucHVzaChhW2RdKX1yZXR1cm4gY30sUUk9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aDw9MSlyZXR1cm4gYTt2YXIgYz1hLmZpbHRlcihiKTtyZXR1cm4gYy5sZW5ndGg9PT0wP2E6Y30sU0k9ZnVuY3Rpb24oYSl7aWYoYT09PUIuYm9keSlyZXR1cm4iYm9keSI7aWYoYS5pZClyZXR1cm4iIyIrYS5pZDt2YXIgYj1hLnBhcmVudEVsZW1lbnQ7aWYoYil7dmFyIGM9U0koYiksZD1VSShhLGIpLGU9VkkoYSkrIjpudGgtY2hpbGQoIitkKyIpIjtyZXR1cm4gYz9jKyI+IitlOmV9dmFyIGY9YS5wYXJlbnROb2RlO2lmKGYgaW5zdGFuY2VvZiBTaGFkb3dSb290KXt2YXIgZz1VSShhLGYpO3JldHVybiBWSShhKSsiOm50aC1jaGlsZCgiKwpnKyIpIn1yZXR1cm4gYS50YWdOYW1lP2EudGFnTmFtZS50b0xvd2VyQ2FzZSgpOiIifSxWST1mdW5jdGlvbihhKXtpZihhLmNsYXNzTGlzdCYmYS5jbGFzc0xpc3QubGVuZ3RoPjApe3ZhciBiPUFycmF5LmZyb20oYS5jbGFzc0xpc3QsZnVuY3Rpb24oYyl7cmV0dXJuIENTUy5lc2NhcGUoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMubGVuZ3RoPjB9KTtpZihiLmxlbmd0aD4wKXJldHVybiIuIitiLmpvaW4oIi4iKX1yZXR1cm4iIn0sVUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZHJlbixkPTA7ZDxjLmxlbmd0aDtkKyspaWYoY1tkXT09PWEpcmV0dXJuIGQrMTtyZXR1cm4gMX0sSEk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZWxlbWVudCxmPWQuT2MsZz1lLnRleHRDb250ZW50O2UudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIiYmZS52YWx1ZSYmKGc9ZS52YWx1ZSk7aWYoZyl7dmFyIGg9CmcubWF0Y2goS0QpO2lmKGgpe3ZhciBsPWhbMF07TEQobCl8fGIucHVzaCh7ZWxlbWVudDplLENhOmwsRGE6RkQuQmIsT2M6Zn0pfX19cmV0dXJuIGJ9LEFJPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1CLmJvZHk7aWYoIWIpcmV0dXJue2VsZW1lbnRzOmEsc3RhdHVzOiI0In07dmFyIGM9V0koYiwwLCIiLGEpO3JldHVybntlbGVtZW50czphLHN0YXR1czpjfX0sV0k9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPWEucXVlcnlTZWxlY3RvckFsbCgiKiIpLGY9ZS5sZW5ndGg+MUU0PyIyIjoiMSIsZz0wO2c8TWF0aC5taW4oZS5sZW5ndGgsMUU0KTtnKyspe3ZhciBoPWVbZ107aWYoIShYSS5pbmRleE9mKGgudGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkmJmguY2hpbGRyZW4gaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbil7dmFyIGw9ITE7aWYoTSg1ODIpJiZoLnNoYWRvd1Jvb3QmJmI8MSl7dmFyIG49U0koaCk7V0koaC5zaGFkb3dSb290LGIrMSxjP2MrInwiK246bixkKT09PSIyIiYmCihmPSIyIik7bD0hMH12YXIgcD0hMTtpZighbClmb3IodmFyIHE9MDtxPE1hdGgubWluKGguY2hpbGRFbGVtZW50Q291bnQsMUU0KTtxKyspaWYoIShZSS5pbmRleE9mKGguY2hpbGRyZW5bcV0udGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkpe3A9ITA7YnJlYWt9KCFwJiYhbHx8TSg1NjgpJiZQSS5pbmRleE9mKGgudGFnTmFtZSkhPT0tMSkmJmQucHVzaCh7ZWxlbWVudDpoLE9jOmI+MD9jOnZvaWQgMH0pfX1yZXR1cm4gZn0sUkk9L3N1cHBvcnR8bm9yZXBseS9pLFhJPSJTQ1JJUFQgU1RZTEUgSU1HIFNWRyBQQVRIIEJSIE5PU0NSSVBUIFRFWFRBUkVBIi5zcGxpdCgiICIpLFlJPVsiQlIiXSxUST1OZig3MCw1MCksUEk9WyJJTlBVVCIsIlNFTEVDVCJdLExJPSJ0ZXh0IHRlbCBzZWFyY2ggbnVtYmVyIGhpZGRlbiBlbWFpbCBzZWxlY3Qtb25lIi5zcGxpdCgiICIpLFpJPVJlZ0V4cCgicGhvbmV8bW9iaWxlfGNvbnRhY3QuP251bWJlcnx0ZWxlZm9ubnVtbWVyfHRlbGVmb25vfHRlbFx1MDBlOWZvbm98dGVsZml4ZXxcdTk2ZmJcdThhNzF8dGVsZWZvbmV8dGVsZW1vdmVsfFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQ0NFx1MDQzZVx1MDQzZHxcdTA5MmVcdTA5NGJcdTA5MmNcdTA5M2VcdTA5MDdcdTA5MzJ8XHU3NTM1XHU4YmRkfFx1NjI0Ylx1NjczYVx1NTNmN3xcdTBkMmVcdTBkNGFcdTBkMmNcdTBkNDhcdTBkMzJcdTBkNGRcdTIwMGR8KF58Wy1fXSl0ZWxbLV9dPyhcXGQrKSooXFxbLipcXF0pKiR8KD86XHVjODA0XHVkNjU0fFx1ZDU3OFx1YjRkY1x1ZDNmMHxcdWQ3MzRcdWIzMDBcdWQzZjB8XHVkNzM0XHViMzAwXHVjODA0XHVkNjU0KSg/Oi4/XHViYzg4XHVkNjM4KT98KFxcYnxffFxcKil0ZWxlZm9uKFxcYnxffFxcKil8dGVsZXBvbnxwb25zZWx8KG5vbW9yfG5vXFwuPykuPyhocHxoYW5kcGhvbmUpIiwKImkiKSwkST1SZWdFeHAoIl5uYW1lfGZ1bGwuP25hbWV8eW91ci4/bmFtZXxjdXN0b21lci4/bmFtZXxiaWxsLj9uYW1lfHNoaXAuP25hbWV8bmFtZS4qZmlyc3QuKmxhc3R8Zmlyc3RhbmRsYXN0bmFtZXxjb250YWN0Lj8obmFtZXxwZXJzb24pfG5vbWJyZS4qeS4qYXBlbGxpZG9zfF5ub20oPyFbYS16QS1aXSl8XHUzMDRhXHU1NDBkXHU1MjRkfFx1NmMwZlx1NTQwZHxebm9tZXxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjJlXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJmXHUwNmFmXHUwNmNjfFx1NTlkM1xccypcdTU0MGR8XHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDMwXHUwNDNhXHUwNDQyXHUwNDNkXHUwNDNlXHUwNDM1Lj9cdTA0M2JcdTA0MzhcdTA0NDZcdTA0M2V8KFxcYnxffFxcKilhZFtcdTAxMzFdPyBzb3lhZFtcdTAxMzFdPyhcXGJ8X3xcXCopfFx1YzEzMVx1YmE4NXxuYW1hLj8obGVuZ2thcHxwZW5lcmltYXxrYW11KSIsCiJpIiksYUo9UmVnRXhwKCJmaXJzdC4qbmFtZXxpbml0aWFsc3xmbmFtZXxmaXJzdCR8Z2l2ZW4uKm5hbWV8dm9ybmFtZXxub21icmV8Zm9yZW5hbWV8cHJcdTAwZTlub218cHJlbm9tfFx1NTQwZHxub21lfFx1MDQxOFx1MDQzY1x1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDV8XHVjNzc0XHViOTg0fFx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShpc2ltfGFkfGFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcdTA5MjhcdTA5M2VcdTA5MmV8bmFtYSBkZXBhbiIsImkiKSxiSj1SZWdFeHAoImxhc3QuKm5hbWV8bG5hbWV8c3VybmFtZSg/IVxcZCl8bGFzdCR8c2Vjb25kbmFtZXxmYW1pbHkuKm5hbWV8bmFjaG5hbWV8YXBlbGxpZG9zP3xmYW1pbGxlfF5ub20oPyFbYS16QS1aXSl8Y29nbm9tZXxcdTU5ZDN8YXBlbGlkb3N8c3VyZW5hbWV8c29icmVub21lfFx1MDQyNFx1MDQzMFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzOFx1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTA5MDlcdTA5MmFcdTA5MjhcdTA5M2VcdTA5MmV8XHUwZDJlXHUwZDMxXHUwZDQxXHUwZDJhXHUwZDQ3XHUwZDMwXHUwZDRkfChcXGJ8X3xcXCopKHNveWlzaW18c295YWQoaXxcdTAxMzF8aW5penxcdTAxMzFuXHUwMTMxeik/KShcXGJ8X3xcXCopfFxcYlx1YzEzMSg/OlteXHViYTg1XXxcXGIpfG5hbWEgYmVsYWthbmciLAoiaSIpLGNKPVJlZ0V4cCgiY291bnRyeXxjb3VudHJpZXN8cGFcdTAwZWRzfHBhaXN8KFxcYnxfKWxhbmQoXFxifF8pKD8hLioobWFyay4qKSl8KF58W14oXHU1MTY1fFx1NTFmYSldKVx1NTZmZHxcdTU2ZmRcdTViYjZ8XHVhZDZkXHVhYzAwfFx1YjA5OFx1Yjc3Y3woXFxifF8pKFx1MDBmY2xrZXx1bGNlfHVsa2UpKFxcYnxfKXxcdTA2YTlcdTA2MzRcdTA2NDhcdTA2MzF8bmVnYXJhIiwiaSIpLGRKPVJlZ0V4cCgiKF58W14uXSl6aXB8cG9zdGFsfHBvc3QuKmNvZGV8cGNvZGV8cGluLj9jb2RlfHBvc3RsZWl0emFobHxcXGJjcFxcYnxcXGJjZHBcXGJ8XFxiY2FwXFxifFx1OTBmNVx1NGZiZlx1NzU2YVx1NTNmN3xjb2RpZ298Y29kcG9zfFxcYmNlcFxcYnxcdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkuP1x1MDQxOFx1MDQzZFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQ0MXxcdTA5MmFcdTA5M2ZcdTA5MjguP1x1MDkxNVx1MDk0Ylx1MDkyMXxcdTBkMmFcdTBkM2ZcdTBkMjhcdTBkNGRcdTIwMGRcdTBkMTVcdTBkNGJcdTBkMjFcdTBkNGR8XHU5MGFlXHU2NTNmXHU3ZjE2XHU3ODAxfFx1OTBhZVx1N2YxNnxcdTkwZjVcdTkwNWVcdTUzNDBcdTg2NWZ8KFxcYnxfKXBvc3RhIGtvZHUoXFxifF8pfFx1YzZiMFx1ZDNiOC4/XHViYzg4XHVkNjM4fGtvZGUuP3BvcyIsCiJpIiksZUo9e30sS0k9KGVKW0ZELkJiXT17bWU6ITEsbmE6TUR9LGVKW0ZELmVlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsidGVsIiwidGVsLW5hdGlvbmFsIiwidGVsLWxvY2FsIl0sbmU6WkksbmE6ZnVuY3Rpb24oYSl7cmV0dXJuIEdEKGEsITApfX0sZUpbRkQuS2hdPXttZTohMCxhdXRvY29tcGxldGU6WyJuYW1lIiwiY2MtbmFtZSJdLG5lOiRJLG5hOk5EfSxlSltGRC5YZF09e21lOiEwLGF1dG9jb21wbGV0ZTpbImdpdmVuLW5hbWUiLCJjYy1naXZlbi1uYW1lIl0sbmU6YUosbmE6TkR9LGVKW0ZELmNlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiZmFtaWx5LW5hbWUiLCJjYy1mYW1pbHktbmFtZSJdLG5lOmJKLG5hOk5EfSxlSltGRC54Zl09e21lOiEwLGF1dG9jb21wbGV0ZTpbImNvdW50cnkiLCJjb3VudHJ5LW5hbWUiXSxuZTpjSixuYTpORH0sZUpbRkQucWddPXttZTohMCxhdXRvY29tcGxldGU6WyJwb3N0YWwtY29kZSJdLG5lOmRKLG5hOklEfSxlSik7ZnVuY3Rpb24gZkooYSl7dmFyIGI7TCh0aGlzLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byIpO3ZhciBjPVRkKGEpfHx7fSxkPUpJKHtpbmNsdWRlU2VsZWN0b3I6ISFjLmluY2x1ZGVTZWxlY3RvcixpbmNsdWRlVmlzaWJpbGl0eTohIWMuaW5jbHVkZVZpc2liaWxpdHksZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6Yy5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyxmaWVsZEZpbHRlcnM6Yy5maWVsZEZpbHRlcnMsc2VsZWN0TXVsdGlwbGVFbGVtZW50czohIWMuc2VsZWN0TXVsdGlwbGVFbGVtZW50c30pO2I9bmV3IGtiO3ZhciBlPW5ldyBHZDtiLnNldCgiZWxlbWVudHMiLGUpO2Zvcih2YXIgZj1kLmVsZW1lbnRzLGc9MDtnPGYubGVuZ3RoO2crKyllLnB1c2goZ0ooZltnXSkpO2QuZ2khPT12b2lkIDAmJmIuc2V0KCJwcmVmZXJyZWRFbWFpbEVsZW1lbnQiLApnSihkLmdpKSk7Yi5zZXQoInN0YXR1cyIsZC5zdGF0dXMpO2lmKGMucmVhZEZyb21EYXRhTGF5ZXIpe2hKKGUsYyk7dmFyIGg9UEQoKSxsPWguc3Q7Yi5zZXQoImRhdGFMYXllclNlYXJjaFRpbWUiLGgudnQpO2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hDb3VudCIsbCl9cmV0dXJuIGJ9CnZhciBpSj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSBGRC5CYjpyZXR1cm4iZW1haWwiO2Nhc2UgRkQuZWU6cmV0dXJuInBob25lX251bWJlciI7Y2FzZSBGRC5YZDpyZXR1cm4iZmlyc3RfbmFtZSI7Y2FzZSBGRC5jZTpyZXR1cm4ibGFzdF9uYW1lIjtjYXNlIEZELnRqOnJldHVybiJzdHJlZXQiO2Nhc2UgRkQubGk6cmV0dXJuImNpdHkiO2Nhc2UgRkQuamo6cmV0dXJuInJlZ2lvbiI7Y2FzZSBGRC5xZzpyZXR1cm4icG9zdGFsX2NvZGUiO2Nhc2UgRkQueGY6cmV0dXJuImNvdW50cnkifX0sako9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiLGM9aUooYS5EYSk7YyE9PXZvaWQgMCYmYi5zZXQoInR5cGUiLGMpO2Iuc2V0KCJ1c2VyRGF0YSIsYS5DYSk7Yi5zZXQoInRhZ05hbWUiLCJETFlSIik7cmV0dXJuIGJ9LGhKPWZ1bmN0aW9uKGEsYil7dmFyIGM9UUQoKTtpZihNKDU2OCkpZm9yKHZhciBkPW5ldyBTZXQoYS5oYygpLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5nZXQoInR5cGUiKX0pKSwKZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUpLGg9Zy5uZXh0KCkudmFsdWUsbD1nLm5leHQoKS52YWx1ZSxuPWgscD1sO2lmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50cylhLnB1c2goakoocCkpO2Vsc2V7dmFyIHE9aUoobik7cSYmIWQuaGFzKHEpJiZhLnB1c2goakoocCkpfX1lbHNlIGMuaGFzKEZELkJiKSYmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50c3x8YS5sZW5ndGgoKT09PTApJiZhLnB1c2goakooYy5nZXQoRkQuQmIpKSl9LGdKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIixhLnRhZ05hbWUpO2EucXVlcnlTZWxlY3RvciE9PXZvaWQgMCYmYi5zZXQoInF1ZXJ5U2VsZWN0b3IiLGEucXVlcnlTZWxlY3Rvcik7YS5pc1Zpc2libGUhPT12b2lkIDAmJmIuc2V0KCJpc1Zpc2libGUiLGEuaXNWaXNpYmxlKTtpZihNKDU2OCkpe3ZhciBjPWlKKGEudHlwZSk7YyE9PQp2b2lkIDAmJmIuc2V0KCJ0eXBlIixjKX1lbHNlIHN3aXRjaChhLnR5cGUpe2Nhc2UgRkQuQmI6Yi5zZXQoInR5cGUiLCJlbWFpbCIpfXJldHVybiBifTtmSi5QPSJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIjsKZnVuY3Rpb24gbUooYSxiKXtyZXR1cm4gZn1tSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIjsKdmFyIG5KPWZ1bmN0aW9uKCl7dGhpcy5IPVtdO3RoaXMuTj0hIUEuTXV0YXRpb25PYnNlcnZlcn07bkoucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZih0aGlzLkgubGVuZ3RoPT09MCl7dmFyIGM9ZnVuY3Rpb24oKXt2YXIgZD1CLmJvZHk7aWYoZClpZihiLk4pKG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBmPTA7ZjxiLkgubGVuZ3RoO2YrKyliZChiLkhbZl0pfSkpLm9ic2VydmUoZCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KTtlbHNle3ZhciBlPSExOyRjKGQsIkRPTU5vZGVJbnNlcnRlZCIsZnVuY3Rpb24oKXtlfHwoZT0hMCxiZChmdW5jdGlvbigpe2U9ITE7Zm9yKHZhciBmPTA7ZjxiLkgubGVuZ3RoO2YrKyliZChiLkhbZl0pfSkpfSl9fTtCLmJvZHk/YygpOmJkKGMpfXRoaXMuSC5wdXNoKGEpfTtuSi5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXtpZih0aGlzLkgpZm9yKHZhciBiPTA7Yjx0aGlzLkgubGVuZ3RoO2IrKyl0aGlzLkhbYl09PT0KYSYmdGhpcy5ILnNwbGljZShiLDEpfTt2YXIgb0o9bmV3IG5KOwpmdW5jdGlvbiB0SihhLGIpe3JldHVybiBwfXRKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRWxlbWVudFZpc2liaWxpdHkiO2Z1bmN0aW9uIHVKKCl7fXVKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRXJyb3IiOwpmdW5jdGlvbiBBSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGR9QUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtSW50ZXJhY3Rpb24iOwpmdW5jdGlvbiBGSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGZ9RkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0IjsKZnVuY3Rpb24gS0ooKXt2YXIgYT10aGlzO31LSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkdhU2VuZCI7CnZhciBNSj1mdW5jdGlvbihhLGIsYyxkKXtjPWM9PT12b2lkIDA/e306YztkPWQ9PT12b2lkIDA/W106ZDt2YXIgZT0iIitiO2lmKGNbZV0pY1tlXS5wdXNoKGEpO2Vsc2V7dmFyIGY9W2FdO2NbZV09Zjt2YXIgZz1MSigiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiKSxoPS0xO2QucHVzaChmdW5jdGlvbihsKXtoPj0wJiZBLmNsZWFyVGltZW91dChoKTtiP2g9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhsLGYpO2g9LTF9LGIpOmcobCxmKX0pfX0sTEo9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5ocmVmLGM9e3NvdXJjZTpudWxsLHN0YXRlOkEuaGlzdG9yeS5zdGF0ZXx8bnVsbCx1cmw6T2ooUmooYikpLGtiOkxqKFJqKGIpLCJmcmFnbWVudCIpfTtyZXR1cm4gZnVuY3Rpb24oZCxlKXt2YXIgZj1jLGc9e307Z1tmLnNvdXJjZV09ITA7Z1tkLnNvdXJjZV09ITA7aWYoIWcucG9wc3RhdGV8fCFnLmhhc2hjaGFuZ2V8fGYua2IhPT1kLmtiKXt2YXIgaD17ZXZlbnQ6YSwiZ3RtLmhpc3RvcnlDaGFuZ2VTb3VyY2UiOmQuc291cmNlLAoiZ3RtLm9sZFVybEZyYWdtZW50IjpjLmtiLCJndG0ubmV3VXJsRnJhZ21lbnQiOmQua2IsImd0bS5vbGRIaXN0b3J5U3RhdGUiOmMuc3RhdGUsImd0bS5uZXdIaXN0b3J5U3RhdGUiOmQuc3RhdGUsImd0bS5vbGRVcmwiOmMudXJsLCJndG0ubmV3VXJsIjpkLnVybH07ZSYmKGhbImd0bS50cmlnZ2VycyJdPWUuam9pbigiLCIpKTtjPWQ7dUUoaCl9fX0sTko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLmhpc3RvcnksZD1jW2FdO2lmKHliKGQpKXRyeXtjW2FdPWZ1bmN0aW9uKGUsZixnKXtkLmFwcGx5KGMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpO3ZhciBoPUEubG9jYXRpb24uaHJlZjtiKHtzb3VyY2U6YSxzdGF0ZTplLHVybDpPaihSaihoKSksa2I6TGooUmooaCksImZyYWdtZW50Iil9KX19Y2F0Y2goZSl7fX0sUEo9ZnVuY3Rpb24oYSl7QS5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJwb3BzdGF0ZSIsc3RhdGU6Yi5zdGF0ZSwKdXJsOk9qKFJqKGMpKSxrYjpMaihSaihjKSwiZnJhZ21lbnQiKX0pfSl9LFFKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJoYXNoY2hhbmdlIixzdGF0ZTpudWxsLHVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxPSj1mdW5jdGlvbihhKXt2YXIgYixjO3JldHVybigoYj1hLnRhcmdldCk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhyZWYpfHxBLmxvY2F0aW9uLmhyZWZ9OwpmdW5jdGlvbiBSSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiKX1dKTt2YXIgZD1hJiZhLmdldCgidXNlVjJFdmVudE5hbWUiKT8iZWhsIjoiaGwiLGU9TnVtYmVyKGEmJmEuZ2V0KCJpbnRlcnZhbCIpKTtlPjAmJmlzRmluaXRlKGUpfHwoZT0wKTt2YXIgZjtpZighJEYoZCwiaW5pdCIsITEpKXt2YXIgZz17fSxoPVtdLGw7ZD09PSJlaGwiPyhsPWZ1bmN0aW9uKHApe2Zvcih2YXIgcT0wO3E8aC5sZW5ndGg7cSsrKWhbcV0ocCl9LGY9WkYoYiksTUooZixlLGcsaCksYUcoZCwicmVnIixmdW5jdGlvbihwLHEpe01KKHAscSxnLGgpfSkpOmw9TEooImd0bS5oaXN0b3J5Q2hhbmdlIik7ClFKKGwpO1BKKGwpO05KKCJwdXNoU3RhdGUiLGwpO05KKCJyZXBsYWNlU3RhdGUiLGwpO2FHKGQsImluaXQiLCEwKX1lbHNlIGlmKGQ9PT0iZWhsIil7dmFyIG49JEYoZCwicmVnIik7biYmKGY9WkYoYiksbihmLGUpKX1kPT09ImhsIiYmKGY9dm9pZCAwKTtyZXR1cm4gZn1SSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiO3ZhciBTSj1bImh0dHA6Ly8iLCJodHRwczovLyIsImphdmFzY3JpcHQ6IiwiZmlsZTovLyJdOwp2YXIgVEo9ZnVuY3Rpb24oYSxiKXtpZihhLndoaWNoPT09Mnx8YS5jdHJsS2V5fHxhLnNoaWZ0S2V5fHxhLmFsdEtleXx8YS5tZXRhS2V5KXJldHVybiExO3ZhciBjPW9kKGIsImhyZWYiKTtpZihjLmluZGV4T2YoIjoiKSE9PS0xJiYhU0ouc29tZShmdW5jdGlvbihoKXtyZXR1cm4gU2IoYyxoKX0pKXJldHVybiExO3ZhciBkPWMuaW5kZXhPZigiIyIpLGU9b2QoYiwidGFyZ2V0Iik7aWYoZSYmZSE9PSJfc2VsZiImJmUhPT0iX3BhcmVudCImJmUhPT0iX3RvcCJ8fGQ9PT0wKXJldHVybiExO2lmKGQ+MCl7dmFyIGY9T2ooUmooYykpLGc9T2ooUmooQS5sb2NhdGlvbi5ocmVmKSk7cmV0dXJuIGYhPT1nfXJldHVybiEwfSxVSj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1MaihSaigoYi5hdHRyaWJ1dGVzJiZiLmF0dHJpYnV0ZXMuZm9ybWFjdGlvbj9iLmZvcm1BY3Rpb246IiIpfHxiLmFjdGlvbnx8b2QoYiwiaHJlZiIpfHxiLnNyY3x8Yi5jb2RlfHxiLmNvZGViYXNlfHwiIiksImhvc3QiKSwKZD0wO2Q8YS5sZW5ndGg7ZCsrKXRyeXtpZigobmV3IFJlZ0V4cChhW2RdKSkudGVzdChjKSlyZXR1cm4hMX1jYXRjaChlKXt9cmV0dXJuITB9LFZKPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjKXt2YXIgZD1jLnRhcmdldDtpZihkJiZjLndoaWNoIT09MyYmIShjLkh8fGMudGltZVN0YW1wJiZjLnRpbWVTdGFtcD09PWIpKXtiPWMudGltZVN0YW1wO2Q9aGQoZCxbImEiLCJhcmVhIl0sMTAwKTtpZighZClyZXR1cm4gYy5yZXR1cm5WYWx1ZTt2YXIgZT1jLmRlZmF1bHRQcmV2ZW50ZWR8fGMucmV0dXJuVmFsdWU9PT0hMSxmPSRGKCJsY2wiLGU/Im52Lm13dCI6Im13dCIsMCksZztnPWU/JEYoImxjbCIsIm52LmlkcyIsW10pOiRGKCJsY2wiLCJpZHMiLFtdKTtmb3IodmFyIGg9W10sbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1nW2xdLHA9JEYoImxjbCIsImFmZi5tYXAiLHt9KVtuXTtwJiYhVUoocCxkKXx8aC5wdXNoKG4pfWlmKGgubGVuZ3RoKXt2YXIgcT1USihjLGQpLHI9ZUcoZCwiZ3RtLmxpbmtDbGljayIsCmgpO3JbImd0bS5lbGVtZW50VGV4dCJdPWZkKGQpO3JbImd0bS53aWxsT3BlbkluTmV3V2luZG93Il09IXE7aWYocSYmIWUmJmYmJmQuaHJlZil7dmFyIHQ9ISFDYihTdHJpbmcob2QoZCwicmVsIil8fCIiKS5zcGxpdCgiICIpLGZ1bmN0aW9uKHkpe3JldHVybiB5LnRvTG93ZXJDYXNlKCk9PT0ibm9yZWZlcnJlciJ9KSx1PUFbKG9kKGQsInRhcmdldCIpfHwiX3NlbGYiKS5zdWJzdHJpbmcoMSldLHY9ITAseD10RShmdW5jdGlvbigpe3ZhciB5O2lmKHk9diYmdSl7dmFyIHo7YTppZih0KXt2YXIgQzt0cnl7Qz1uZXcgTW91c2VFdmVudChjLnR5cGUse2J1YmJsZXM6ITB9KX1jYXRjaChEKXtpZighQi5jcmVhdGVFdmVudCl7ej0hMTticmVhayBhfUM9Qi5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTtDLmluaXRFdmVudChjLnR5cGUsITAsITApfUMuSD0hMDtjLnRhcmdldC5kaXNwYXRjaEV2ZW50KEMpO3o9ITB9ZWxzZSB6PSExO3k9IXp9eSYmKHUubG9jYXRpb24uaHJlZj1vZChkLAoiaHJlZiIpKX0sZik7aWYoaUUocix4LGYpKXY9ITE7ZWxzZSByZXR1cm4gYy5wcmV2ZW50RGVmYXVsdCYmYy5wcmV2ZW50RGVmYXVsdCgpLGMucmV0dXJuVmFsdWU9ITF9ZWxzZSBzRShyLGZ1bmN0aW9uKCl7fSxmfHwyRTMpO3JldHVybiEwfX19dmFyIGI9MDskYyhCLCJjbGljayIsYSwhMSk7JGMoQiwiYXV4Y2xpY2siLGEsITEpfTsKZnVuY3Rpb24gV0ooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGQ9VGQoYSk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiLGQpfV0pO3ZhciBlPWQmJiEhZC53YWl0Rm9yVGFncyxmPWQmJiEhZC5jaGVja1ZhbGlkYXRpb24sZz1kP2QuYWZmaWxpYXRlRG9tYWluczp2b2lkIDAsaD1aRihiKTtpZihlKXt2YXIgbD1OdW1iZXIoZC53YWl0Rm9yVGFnc1RpbWVvdXQpO2w+MCYmaXNGaW5pdGUobCl8fChsPTJFMyk7dmFyIG49ZnVuY3Rpb24ocSl7cmV0dXJuIE1hdGgubWF4KGwscSl9O2RHKCJsY2wiLCJtd3QiLG4sMCk7Znx8ZEcoImxjbCIsIm52Lm13dCIsbiwwKX12YXIgcD1mdW5jdGlvbihxKXtxLnB1c2goaCk7CnJldHVybiBxfTtkRygibGNsIiwiaWRzIixwLFtdKTtmfHxkRygibGNsIiwibnYuaWRzIixwLFtdKTtnJiZkRygibGNsIiwiYWZmLm1hcCIsZnVuY3Rpb24ocSl7cVtoXT1nO3JldHVybiBxfSx7fSk7JEYoImxjbCIsImluaXQiLCExKXx8KFZKKCksYUcoImxjbCIsImluaXQiLCEwKSk7cmV0dXJuIGh9V0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siOwp2YXIgWEo9ZnVuY3Rpb24oYSl7cmV0dXJuICRGKCJzZGwiLGEse30pfSxZSj1mdW5jdGlvbihhLGIsYyl7aWYoYil7dmFyIGQ9QXJyYXkuaXNBcnJheShhKT9hOlthXTtkRygic2RsIixjLGZ1bmN0aW9uKGUpe2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgZz1TdHJpbmcoZFtmXSk7ZS5oYXNPd25Qcm9wZXJ0eShnKXx8KGVbZ109W10pO2VbZ10ucHVzaChiKX1yZXR1cm4gZX0se30pfX0sYUs9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7WkooYSxiKTskSihjLCEwKX1yZXR1cm4gY30sYks9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7aD9nPUEuc2V0VGltZW91dChjLGUpOihnPTAsWkooYSxiKSwkSihkKSk7aD0hMX1mdW5jdGlvbiBkKCl7ZiYmYigpO2c/aD0hMDooZz1BLnNldFRpbWVvdXQoYyxlKSxhRygic2RsIiwicGVuZGluZyIsITApKX12YXIgZT0yNTAsZj0hMTtCLnNjcm9sbGluZ0VsZW1lbnQmJkIuZG9jdW1lbnRFbGVtZW50JiYoZT01MCxmPSEwKTt2YXIgZz0KMCxoPSExO3JldHVybiBkfSwkSj1mdW5jdGlvbihhLGIpeyRGKCJzZGwiLCJpbml0IiwhMSkmJiFjSygpJiYoYj9hZChBLCJzY3JvbGxlbmQiLGEpOmFkKEEsInNjcm9sbCIsYSksYWQoQSwicmVzaXplIixhKSxhRygic2RsIiwiaW5pdCIsITEpKX0sWko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKCksZD1jLmRlcHRoWCxlPWMuZGVwdGhZLGY9ZC9hLnNjcm9sbFdpZHRoKjEwMCxnPWUvYS5zY3JvbGxIZWlnaHQqMTAwO2RLKGQsImhvcml6LnBpeCIsIlBJWEVMUyIsImhvcml6b250YWwiKTtkSyhmLCJob3Jpei5wY3QiLCJQRVJDRU5UIiwiaG9yaXpvbnRhbCIpO2RLKGUsInZlcnQucGl4IiwiUElYRUxTIiwidmVydGljYWwiKTtkSyhnLCJ2ZXJ0LnBjdCIsIlBFUkNFTlQiLCJ2ZXJ0aWNhbCIpO2FHKCJzZGwiLCJwZW5kaW5nIiwhMSl9LGRLPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVhKKGIpLGY9e30sZztmb3IoZyBpbiBlKWlmKGY9e3FmOmYucWZ9LGYucWY9ZyxlLmhhc093blByb3BlcnR5KGYucWYpKXt2YXIgaD0KTnVtYmVyKGYucWYpO2lmKCEoYTxoKSl7dmFyIGw9e307dUUoKGwuZXZlbnQ9Imd0bS5zY3JvbGxEZXB0aCIsbFsiZ3RtLnNjcm9sbFRocmVzaG9sZCJdPWgsbFsiZ3RtLnNjcm9sbFVuaXRzIl09Yy50b0xvd2VyQ2FzZSgpLGxbImd0bS5zY3JvbGxEaXJlY3Rpb24iXT1kLGxbImd0bS50cmlnZ2VycyJdPWVbZi5xZl0uam9pbigiLCIpLGwpKTtkRygic2RsIixiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihwKXtkZWxldGUgcFtuLnFmXTtyZXR1cm4gcH19KGYpLHt9KX19fSxmSz1mdW5jdGlvbigpe3ZhciBhPWRHKCJzZGwiLCJzY3IiLGZ1bmN0aW9uKGMpe2N8fChjPUIuc2Nyb2xsaW5nRWxlbWVudHx8Qi5ib2R5JiZCLmJvZHkucGFyZW50Tm9kZSk7cmV0dXJuIGN9LG51bGwpLGI9ZEcoInNkbCIsImRlcHRoIixmdW5jdGlvbihjKXtjfHwoYz1lSyhhKSk7cmV0dXJuIGN9KTtyZXR1cm57c2Nyb2xsaW5nRWxlbWVudDphLHZyOmJ9fSxlSz1mdW5jdGlvbihhKXt2YXIgYj0wLGM9CjA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9c0koKSxlPWQuaGVpZ2h0O2I9TWF0aC5tYXgoYS5zY3JvbGxMZWZ0K2Qud2lkdGgsYik7Yz1NYXRoLm1heChhLnNjcm9sbFRvcCtlLGMpO3JldHVybntkZXB0aFg6YixkZXB0aFk6Y319fSxjSz1mdW5jdGlvbigpe3JldHVybiEhKE9iamVjdC5rZXlzKFhKKCJob3Jpei5waXgiKSkubGVuZ3RofHxPYmplY3Qua2V5cyhYSigiaG9yaXoucGN0IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooInZlcnQucGl4IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooInZlcnQucGN0IikpLmxlbmd0aCl9OwpmdW5jdGlvbiBnSyhhLGIpe3ZhciBjPXRoaXM7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X3Njcm9sbF9ldmVudHMiKX1dKTt2YXIgZD1mSygpLGU9ZC5zY3JvbGxpbmdFbGVtZW50LGY9ZC52cjtpZighZSlyZXR1cm47dmFyIGc9WkYoYiksaD1UZChhKTtzd2l0Y2goaC5ob3Jpem9udGFsVGhyZXNob2xkVW5pdHMpe2Nhc2UgIlBJWEVMUyI6WUooaC5ob3Jpem9udGFsVGhyZXNob2xkcyxnLCJob3Jpei5waXgiKTticmVhaztjYXNlICJQRVJDRU5UIjpZSihoLmhvcml6b250YWxUaHJlc2hvbGRzLGcsImhvcml6LnBjdCIpfXN3aXRjaChoLnZlcnRpY2FsVGhyZXNob2xkVW5pdHMpe2Nhc2UgIlBJWEVMUyI6WUooaC52ZXJ0aWNhbFRocmVzaG9sZHMsCmcsInZlcnQucGl4Iik7YnJlYWs7Y2FzZSAiUEVSQ0VOVCI6WUooaC52ZXJ0aWNhbFRocmVzaG9sZHMsZywidmVydC5wY3QiKX0kRigic2RsIiwiaW5pdCIsITEpPyRGKCJzZGwiLCJwZW5kaW5nIiwhMSl8fGJkKGZ1bmN0aW9uKCl7WkooZSxmKX0pOihhRygic2RsIiwiaW5pdCIsITApLGFHKCJzZGwiLCJwZW5kaW5nIiwhMCksYmQoZnVuY3Rpb24oKXtaSihlLGYpO2lmKGNLKCkpe3ZhciBsPWJLKGUsZik7Im9uc2Nyb2xsZW5kImluIEE/KGw9YUsoZSxmKSwkYyhBLCJzY3JvbGxlbmQiLGwpKTokYyhBLCJzY3JvbGwiLGwpOyRjKEEsInJlc2l6ZSIsbCl9ZWxzZSBhRygic2RsIiwiaW5pdCIsITEpfSkpO3JldHVybiBnfWdLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uU2Nyb2xsIjtmdW5jdGlvbiBoSyhhKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihhLmxpbWl0JiZhLmdrPj1hLmxpbWl0KWEuYWkmJkEuY2xlYXJJbnRlcnZhbChhLmFpKTtlbHNle2EuZ2srKzt2YXIgYj1OYigpO3VFKHtldmVudDphLmV2ZW50TmFtZSwiZ3RtLnRpbWVySWQiOmEuYWksImd0bS50aW1lckV2ZW50TnVtYmVyIjphLmdrLCJndG0udGltZXJJbnRlcnZhbCI6YS5pbnRlcnZhbCwiZ3RtLnRpbWVyTGltaXQiOmEubGltaXQsImd0bS50aW1lclN0YXJ0VGltZSI6YS5NbywiZ3RtLnRpbWVyQ3VycmVudFRpbWUiOmIsImd0bS50aW1lckVsYXBzZWRUaW1lIjpiLWEuTW8sImd0bS50cmlnZ2VycyI6YS5MdH0pfX19CmZ1bmN0aW9uIGlLKGEsYil7CnJldHVybiBmfWlLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uVGltZXIiOwp2YXIgaks9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoKXt2YXIgZz1hKCk7Zis9ZT8oTmIoKS1lKSpnLnBsYXliYWNrUmF0ZS8xRTM6MDtlPU5iKCl9dmFyIGU9MCxmPTA7cmV0dXJue2NyZWF0ZUV2ZW50OmZ1bmN0aW9uKGcsaCxsKXt2YXIgbj1hKCkscD1uLlduLHE9bD9NYXRoLnJvdW5kKGwpOmg/TWF0aC5yb3VuZChuLlduKmgpOk1hdGgucm91bmQobi5Hcikscj1oIT09dm9pZCAwP01hdGgucm91bmQoaCoxMDApOnA8PTA/MDpNYXRoLnJvdW5kKHEvcCoxMDApLHQ9Qi5oaWRkZW4/ITE6dEkoYyk+PS41O2QoKTt2YXIgdT12b2lkIDA7YiE9PXZvaWQgMCYmKHU9W2JdKTt2YXIgdj1lRyhjLCJndG0udmlkZW8iLHUpO3ZbImd0bS52aWRlb1Byb3ZpZGVyIl09InlvdXR1YmUiO3ZbImd0bS52aWRlb1N0YXR1cyJdPWc7dlsiZ3RtLnZpZGVvVXJsIl09bi51cmw7dlsiZ3RtLnZpZGVvVGl0bGUiXT1uLnRpdGxlO3ZbImd0bS52aWRlb0R1cmF0aW9uIl09TWF0aC5yb3VuZChwKTt2WyJndG0udmlkZW9DdXJyZW50VGltZSJdPQpNYXRoLnJvdW5kKHEpO3ZbImd0bS52aWRlb0VsYXBzZWRUaW1lIl09TWF0aC5yb3VuZChmKTt2WyJndG0udmlkZW9QZXJjZW50Il09cjt2WyJndG0udmlkZW9WaXNpYmxlIl09dDtyZXR1cm4gdn0sbXQ6ZnVuY3Rpb24oKXtlPU5iKCl9LEJqOmZ1bmN0aW9uKCl7ZCgpfX19O3ZhciBBYz1BYShbImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iXSksa0s9WyJ3d3cueW91dHViZS5jb20iLCJ3d3cueW91dHViZS1ub2Nvb2tpZS5jb20iXSxsSzsKdmFyIG1LPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLm1hcChmdW5jdGlvbihnKXtyZXR1cm57dGU6ZyxKbzpnLHdvOnZvaWQgMH19KTtpZighYi5sZW5ndGgpcmV0dXJuIGQ7dmFyIGU9Yi5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue3RlOmcqYyxKbzp2b2lkIDAsd286Z319KTtpZighZC5sZW5ndGgpcmV0dXJuIGU7dmFyIGY9ZC5jb25jYXQoZSk7Zi5zb3J0KGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcudGUtaC50ZX0pO3JldHVybiBmfSxuSz1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWFbY108MHx8Yi5wdXNoKGFbY10pO2Iuc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gYn0sb0s9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylhW2NdPjEwMHx8YVtjXTwwfHwoYltjXT1hW2NdLzEwMCk7Yi5zb3J0KGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGQtCmV9KTtyZXR1cm4gYn0scEs9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO2Z1bmN0aW9uIGUoKXt0PWpLKGZ1bmN0aW9uKCl7cmV0dXJue3VybDp4LHRpdGxlOnksV246dixHcjphLmdldEN1cnJlbnRUaW1lKCkscGxheWJhY2tSYXRlOnp9fSxiLnJmLGEuZ2V0SWZyYW1lKCkpO3Y9MDt5PXg9IiI7ej0xO3JldHVybiBmfWZ1bmN0aW9uIGYoRyl7c3dpdGNoKEcpe2Nhc2UgMTp2PU1hdGgucm91bmQoYS5nZXREdXJhdGlvbigpKTt4PWEuZ2V0VmlkZW9VcmwoKTtpZihhLmdldFZpZGVvRGF0YSl7dmFyIE49YS5nZXRWaWRlb0RhdGEoKTt5PU4/Ti50aXRsZToiIn16PWEuZ2V0UGxheWJhY2tSYXRlKCk7Yi55cj91RSh0LmNyZWF0ZUV2ZW50KCJzdGFydCIpKTp0LkJqKCk7dT1tSyhiLmV0LGIuY3QsYS5nZXREdXJhdGlvbigpKTtyZXR1cm4gZyhHKTtkZWZhdWx0OnJldHVybiBmfX1mdW5jdGlvbiBnKCl7Qz1hLmdldEN1cnJlbnRUaW1lKCk7RD1NYigpLmdldFRpbWUoKTt0Lm10KCk7cigpO3JldHVybiBofQpmdW5jdGlvbiBoKEcpe3ZhciBOO3N3aXRjaChHKXtjYXNlIDA6cmV0dXJuIG4oRyk7Y2FzZSAyOk49InBhdXNlIjtjYXNlIDM6dmFyIFM9YS5nZXRDdXJyZW50VGltZSgpLUM7Tj1NYXRoLmFicygoTWIoKS5nZXRUaW1lKCktRCkvMUUzKnotUyk+MT8ic2VlayI6Tnx8ImJ1ZmZlcmluZyI7YS5nZXRDdXJyZW50VGltZSgpJiYoYi54cj91RSh0LmNyZWF0ZUV2ZW50KE4pKTp0LkJqKCkpO3EoKTtyZXR1cm4gbDtjYXNlIC0xOnJldHVybiBlKEcpO2RlZmF1bHQ6cmV0dXJuIGh9fWZ1bmN0aW9uIGwoRyl7c3dpdGNoKEcpe2Nhc2UgMDpyZXR1cm4gbihHKTtjYXNlIDE6cmV0dXJuIGcoRyk7Y2FzZSAtMTpyZXR1cm4gZShHKTtkZWZhdWx0OnJldHVybiBsfX1mdW5jdGlvbiBuKCl7Zm9yKDtkOyl7dmFyIEc9YztBLmNsZWFyVGltZW91dChkKTtHKCl9Yi53ciYmdUUodC5jcmVhdGVFdmVudCgiY29tcGxldGUiLDEpKTtyZXR1cm4gZSgtMSl9ZnVuY3Rpb24gcCgpe31mdW5jdGlvbiBxKCl7ZCYmCihBLmNsZWFyVGltZW91dChkKSxkPTAsYz1wKX1mdW5jdGlvbiByKCl7aWYodS5sZW5ndGgmJnohPT0wKXt2YXIgRz0tMSxOO2Rve049dVswXTtpZihOLnRlPmEuZ2V0RHVyYXRpb24oKSlyZXR1cm47Rz0oTi50ZS1hLmdldEN1cnJlbnRUaW1lKCkpL3o7aWYoRzwwJiYodS5zaGlmdCgpLHUubGVuZ3RoPT09MCkpcmV0dXJufXdoaWxlKEc8MCk7Yz1mdW5jdGlvbigpe2Q9MDtjPXA7dS5sZW5ndGg+MCYmdVswXS50ZT09PU4udGUmJih1LnNoaWZ0KCksdUUodC5jcmVhdGVFdmVudCgicHJvZ3Jlc3MiLE4ud28sTi5KbykpKTtyKCl9O2Q9QS5zZXRUaW1lb3V0KGMsRyoxRTMpfX12YXIgdCx1PVtdLHYseCx5LHosQyxELEk9ZSgtMSk7ZD0wO2M9cDtyZXR1cm57b25TdGF0ZUNoYW5nZTpmdW5jdGlvbihHKXtJPUkoRyl9LG9uUGxheWJhY2tSYXRlQ2hhbmdlOmZ1bmN0aW9uKEcpe0M9YS5nZXRDdXJyZW50VGltZSgpO0Q9TWIoKS5nZXRUaW1lKCk7dC5CaigpO3o9RztxKCk7cigpfX19LHJLPQpmdW5jdGlvbihhKXtiZChmdW5jdGlvbigpe2Z1bmN0aW9uIGIoKXtmb3IodmFyIGQ9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIiksZT1kLmxlbmd0aCxmPTA7ZjxlO2YrKylxSyhkW2ZdLGEpfXZhciBjPUI7YigpO29KLksoYil9KX0scUs9ZnVuY3Rpb24oYSxiKXtpZighYS5nZXRBdHRyaWJ1dGUoImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iK2IucmYpJiYoQ2MoYSwiZGF0YS1ndG0teXQtaW5zcGVjdGVkLSIrYi5yZiksc0soYSxiLmNvKSkpe2EuaWR8fChhLmlkPXRLKCkpO3ZhciBjPUEuWVQsZD1jLmdldChhLmlkKTtkfHwoZD1uZXcgYy5QbGF5ZXIoYS5pZCkpO3ZhciBlPXBLKGQsYiksZj17fSxnO2ZvcihnIGluIGUpZj17TWc6Zi5NZ30sZi5NZz1nLGUuaGFzT3duUHJvcGVydHkoZi5NZykmJmQuYWRkRXZlbnRMaXN0ZW5lcihmLk1nLGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gZVtoLk1nXShsLmRhdGEpfX0oZikpfX0sc0s9ZnVuY3Rpb24oYSwKYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGUoInNyYyIpO2lmKHVLKGMsImVtYmVkLyIpKXtpZihjLmluZGV4T2YoImVuYWJsZWpzYXBpPTEiKT4wKXJldHVybiEwO2lmKGIpe3ZhciBkO3ZhciBlPWMuaW5kZXhPZigiPyIpIT09LTE/IiYiOiI/IjtjLmluZGV4T2YoIm9yaWdpbj0iKT4tMT9kPWMrZSsiZW5hYmxlanNhcGk9MSI6KGxLfHwobEs9Qi5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK0IubG9jYXRpb24uaG9zdG5hbWUsQi5sb2NhdGlvbi5wb3J0JiYobEsrPSI6IitCLmxvY2F0aW9uLnBvcnQpKSxkPWMrZSsiZW5hYmxlanNhcGk9MSZvcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQobEspKTt2YXIgZjtmPWpjKGQpO2Euc3JjPWtjKGYpLnRvU3RyaW5nKCk7cmV0dXJuITB9fXJldHVybiExfSx1Sz1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiExO2Zvcih2YXIgYz0wO2M8a0subGVuZ3RoO2MrKylpZihhLmluZGV4T2YoIi8vIitrS1tjXSsiLyIrYik+PTApcmV0dXJuITA7cmV0dXJuITF9LAp0Sz1mdW5jdGlvbigpe3ZhciBhPSIiK01hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxRTkpO3JldHVybiBCLmdldEVsZW1lbnRCeUlkKGEpP3RLKCk6YX07CmZ1bmN0aW9uIHZLKGEsYil7dmFyIGM9dGhpczt2YXIgZD1mdW5jdGlvbigpe3JLKHEpfTtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLHtmaXhNaXNzaW5nQXBpOiEhYS5nZXQoImZpeE1pc3NpbmdBcGkiKX0pfV0pO3ZhciBlPVpGKGIpLGY9ISFhLmdldCgiY2FwdHVyZVN0YXJ0IiksZz0hIWEuZ2V0KCJjYXB0dXJlQ29tcGxldGUiKSxoPSEhYS5nZXQoImNhcHR1cmVQYXVzZSIpLGw9b0soVGQoYS5nZXQoInByb2dyZXNzVGhyZXNob2xkc1BlcmNlbnQiKSkpLG49bksoVGQoYS5nZXQoInByb2dyZXNzVGhyZXNob2xkc1RpbWVJblNlY29uZHMiKSkpLHA9ISFhLmdldCgiZml4TWlzc2luZ0FwaSIpOwppZighKGZ8fGd8fGh8fGwubGVuZ3RofHxuLmxlbmd0aCkpcmV0dXJuO3ZhciBxPXt5cjpmLHdyOmcseHI6aCxjdDpsLGV0Om4sY286cCxyZjplfSxyPUEuWVQ7aWYocilyZXR1cm4gci5yZWFkeSYmci5yZWFkeShkKSxlO3ZhciB0PUEsdT10Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5O3Qub25Zb3VUdWJlSWZyYW1lQVBJUmVhZHk9ZnVuY3Rpb24oKXt1JiZ1KCk7ZCgpfTtiZChmdW5jdGlvbigpe2Zvcih2YXIgdj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSx4PXYubGVuZ3RoLHk9MDt5PHg7eSsrKXt2YXIgej12W3ldLmdldEF0dHJpYnV0ZSgic3JjIik7aWYodUsoeiwiaWZyYW1lX2FwaSIpfHx1Syh6LCJwbGF5ZXJfYXBpIikpcmV0dXJuIGV9Zm9yKHZhciBDPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpLEQ9Qy5sZW5ndGgsST1hbCg1LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxHPTA7RzxEO0crKylpZighSSYmc0soQ1tHXSxxLmNvKSlyZXR1cm4gVWMoImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGkiKSwKWmsoNSwhMCksZX0pO3JldHVybiBlfXZLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uWW91VHViZUFjdGl2aXR5IjtmdW5jdGlvbiB3SyhhLGIpe2lmKCFsaChhKXx8IWZoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz1iP1RkKGIpOnt9O2MucmVnZXhDYWNoZT1hbCgzLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KTtyZXR1cm4gR2goYSxjKX13Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIjtmdW5jdGlvbiB4SyhhKXt2YXIgYj0hMTtyZXR1cm4gYn14Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZU1hdGNoaW5nUnVsZXMiO3ZhciB5Sz1uZXcgTWFwKFtbImF3Iiw0XV0pO2Z1bmN0aW9uIHpLKGEpe3ZhciBiPXZyW2FdLGM9eUsuZ2V0KGEpO3JldHVybiBjPyh3cShiLGMpfHxbXSkuc29tZShmdW5jdGlvbihkKXtyZXR1cm4gZC5tPT09IjAifHxkLm09PT12b2lkIDB9KTohMX0KZnVuY3Rpb24gQUsoYSxiKXtpZihNKDQ5NSkpe2Zvcih2YXIgYz1uZXcgTWFwLGQ9bSh5SyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPW0oZS52YWx1ZSksZz1mLm5leHQoKS52YWx1ZSxoPWYubmV4dCgpLnZhbHVlLGw9ZyxuPWFbbF0scD1BcnJheS5pc0FycmF5KG4pP25bMF06bjtpZihwIT09dm9pZCAwKXt2YXIgcT17fSxyPShxLms9cCxxLmk9U3RyaW5nKE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpKSxxLmI9W10scS5tPSIxIixxKSx0PWFxKHIsaCk7dCYmKHpLKGwpfHxjLnNldChsLHQpKX19aWYoYy5zaXplKXt2YXIgdSx2PVtdLHg9Yi5wYXRofHwiLyI7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgicCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeCkpO2IuQXImJnYucHVzaChlbmNvZGVVUklDb21wb25lbnQoImNlIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYi5BcikpKTt2YXIgeT1iLmRvbWFpbiYmYi5kb21haW4hPT0iYXV0byI/CmIuZG9tYWluOiJhdXRvOiIrQS5sb2NhdGlvbi5ob3N0bmFtZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJkIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh5KSk7Zm9yKHZhciB6PW0oYyksQz16Lm5leHQoKTshQy5kb25lO0M9ei5uZXh0KCkpe3ZhciBEPW0oQy52YWx1ZSksST1ELm5leHQoKS52YWx1ZSxHPUQubmV4dCgpLnZhbHVlO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoSSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChHKSl9dT0iXy9zZXRfY29va2llPyIrdi5qb2luKCImIik7dmFyIE4sUz1FKDU4KTtOPUVmKHUsUyk7dmFyIFc9WGooKSsiLyIrTjttZChXKX19fTtmdW5jdGlvbiBCSyhhKXtyZXR1cm4iQ1dWV2ViVmlld01lc3NhZ2UiaW4gYX1mdW5jdGlvbiBDSyhhKXt2YXIgYj1BLGM9Yi53ZWJraXQ7ZGVsZXRlIGIud2Via2l0O2EoYi53ZWJraXQpO2Iud2Via2l0PWN9ZnVuY3Rpb24gREsoYSxiKXt2YXIgYz17YWN0aW9uOiJnY2xfc2V0dXAifTtpZihCSyhhLm1lc3NhZ2VIYW5kbGVycykpcmV0dXJuIGEubWVzc2FnZUhhbmRsZXJzLkNXVldlYlZpZXdNZXNzYWdlLnBvc3RNZXNzYWdlKHtjb21tYW5kOmIscGF5bG9hZDpjfSksITA7dmFyIGQ9YS5tZXNzYWdlSGFuZGxlcnNbYl07cmV0dXJuIGQ/KGQucG9zdE1lc3NhZ2UoYyksITApOiExfTt2YXIgRUs9e30sRks9KEVLLmF3Yj17bm90Rm91bmQ6MTc4fSxFSy55dGI9e25vdEZvdW5kOjE5NH0sRUspO2Z1bmN0aW9uIEdLKGEpe3ZhciBiLGM9KGI9RktbYV0pPT1udWxsP3ZvaWQgMDpiLm5vdEZvdW5kO2MmJlAoYyl9CmZ1bmN0aW9uIEhLKGEpe2lmKCFubShqbS5iYS5qbikmJiJ3ZWJraXQiaW4gQSYmQS53ZWJraXQubWVzc2FnZUhhbmRsZXJzKXt2YXIgYj1mdW5jdGlvbigpe3RyeXtDSyhmdW5jdGlvbihjKXtpZihjKXt2YXIgZDtkPUJLKGMubWVzc2FnZUhhbmRsZXJzKXx8ImF3YiJpbiBjLm1lc3NhZ2VIYW5kbGVycz97Y29tbWFuZDoiYXdiIixzb3VyY2U6NX06KEJLKGMubWVzc2FnZUhhbmRsZXJzKXx8Inl0YiJpbiBjLm1lc3NhZ2VIYW5kbGVycykmJk0oNDk5KT97Y29tbWFuZDoieXRiIixzb3VyY2U6OH06dm9pZCAwO2QmJihtbShqbS5iYS5qbixmdW5jdGlvbihlKXt2YXIgZj1kLnNvdXJjZTtlLmdjbGlkJiZscygiZ2NsX2F3IixlLmdjbGlkLGYsYSk7ZS53YnJhaWQmJmxzKCJnY2xfZ2IiLGUud2JyYWlkLGYsYSl9KSxESyhjLGQuY29tbWFuZCl8fEdLKGQuY29tbWFuZCkpfX0pfWNhdGNoKGMpe1AoMTkzKX19O0hsKGZ1bmN0aW9uKCl7QnIoZnApP2IoKTpJbChiLGZwKX0sZnApfX07dmFyIElLPVsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSIsImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tIiwiaHR0cHM6Ly9tLnlvdXR1YmUuY29tIl07ZnVuY3Rpb24gSksoYSl7cmV0dXJuIGEuZGF0YS5hY3Rpb24hPT0iZ2NsX3RyYW5zZmVyIj8oUCgxNzMpLCEwKTphLmRhdGEuZ2FkU291cmNlP2EuZGF0YS5nY2xpZD8hMTooUCgxODEpLCEwKTooUCgxODApLCEwKX0KZnVuY3Rpb24gS0soYSxiKXtpZighYXx8TShhKSl7aWYobm0oam0uYmEuVmUpKXJldHVybiBQKDE3Niksam0uYmEuVmU7aWYobm0oam0uYmEubW4pKXJldHVybiBQKDE3MCksam0uYmEuVmU7dmFyIGM9RnAoKTtpZighYylQKDE3MSk7ZWxzZSBpZihjLm9wZW5lcil7dmFyIGQ9ZnVuY3Rpb24oZyl7aWYoIUlLLmluY2x1ZGVzKGcub3JpZ2luKSlQKDE3Mik7ZWxzZSBpZighSksoZykpe3ZhciBoPXtnYWRTb3VyY2U6Zy5kYXRhLmdhZFNvdXJjZX07aC5nY2xpZD1nLmRhdGEuZ2NsaWQ7bW0oam0uYmEuVmUsaCk7YiYmZy5kYXRhLmdjbGlkJiZscygiZ2NsX2F3IixTdHJpbmcoZy5kYXRhLmdjbGlkKSw2LGIpO3ZhciBsOyhsPWcuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKT09bnVsbHx8bC5jYWxsKGcpO250KGMsIm1lc3NhZ2UiLGQpfX07aWYobXQoYywibWVzc2FnZSIsZCkpe21tKGptLmJhLm1uLCEwKTtmb3IodmFyIGU9bShJSyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpYy5vcGVuZXIucG9zdE1lc3NhZ2Uoe2FjdGlvbjoiZ2NsX3NldHVwIn0sCmYudmFsdWUpO1AoMTc0KTtyZXR1cm4gam0uYmEuVmV9UCgxNzUpfX19Owp2YXIgTEs9ZnVuY3Rpb24oYSl7dmFyIGI9e3ByZWZpeDpPKGEuTSxGLkQuRmQpfHxPKGEuTSxGLkQubmIpLGRvbWFpbjpPKGEuTSxGLkQuTGIpLHBkOk8oYS5NLEYuRC5DYiksZmxhZ3M6TyhhLk0sRi5ELlRiKX07YS5NLmlzR3RtRXZlbnQmJihiLnBhdGg9TyhhLk0sRi5ELnZjKSk7cmV0dXJuIGJ9LE1LPWZ1bmN0aW9uKGEsYil7aWYoIVEoYSxILkouV2UpKXt2YXIgYz1LSygxMTkpO2lmKGMpe3ZhciBkPW5tKGMpLGU9ZnVuY3Rpb24oZyl7VihhLEguSi5XZSwhMCk7dmFyIGg9UihhLEYuRC56ZiksbD1SKGEsRi5ELkFmKTtVKGEsRi5ELnpmLFN0cmluZyhnLmdhZFNvdXJjZSkpO1UoYSxGLkQuQWYsNik7VihhLEguSi5zYSk7VihhLEguSi51Zyk7VShhLEYuRC5zYSk7YigpO1UoYSxGLkQuemYsaCk7VShhLEYuRC5BZixsKTtWKGEsSC5KLldlLCExKX07aWYoZCllKGQpO2Vsc2V7dmFyIGY9dm9pZCAwO2Y9cG0oYyxmdW5jdGlvbihnLGgpe2UoaCk7cW0oYyxmKX0pfX19fSxQSz1mdW5jdGlvbihhKXt2YXIgYiwKYyxkLGU7Yj1hLlRuO2M9YS5tbztkPWEuUW87ZT1hLlVuO2lmKGIpe2lmKGRyKGNbRi5ELlhmXSwhIWNbRi5ELkFhXSkpe2lmKFdqKCkmJkJyKEFyKCkpKXtmb3IodmFyIGY9VXEoITApLGc9e30saD1tKE9iamVjdC5rZXlzKHZyKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD12cltuXSxxPWZbcF07aWYocSl7dmFyIHI9JHAocSw0KTtyJiYob3MoTWF0aC5taW4oTnIociksTmIoKSl8fE5iKCkscCw0KXx8KGdbbl09cSkpfX1mb3IodmFyIHQ9e30sdT1tKE9iamVjdC5rZXlzKGcpKSx2PXUubmV4dCgpOyF2LmRvbmU7dj11Lm5leHQoKSl7dmFyIHg9di52YWx1ZSx5PWdbeF07aWYoeSE9PXZvaWQgMCl7dmFyIHo9JHAoeSw0KTt6JiZ6Lm09PT0iMSImJih0W3hdPXouayl9fUFLKHQsZSl9cHMoZSk7dHMoZSk7UXYoZSl9aWYoT3AoKSE9PTIpe2dzKGUpO2lzKGUpO2lmKFlmKDE1KSl7dmFyIEM9ZSxEPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7CkQubGVuZ3RofHwoRD1kcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7aWYoRC5sZW5ndGgpe0M9Q3x8e307dmFyIEk9RFswXTtJLnZhbHVlJiZtcygiZ2NsX2RjIixbe3ZlcnNpb246IiIsZ2NsaWQ6SS52YWx1ZSx0aW1lc3RhbXA6TmIoKSxxYTpJLnFhfV0sQyl9fUhLKGUpO0tLKHZvaWQgMCxlKX1lbHNlIGdzKGUpO2lmKFdqKCkmJkJyKEFyKCkpKXt2YXIgRz1mcygpO0FLKEcsZSl9eHMocXMsZSk7eXMoZSl9Y1tGLkQuQWFdJiYodnMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSksdXMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksd3MoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksUnYoR3YoZS5wcmVmaXgpLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSksUnYoIkZQQVUiLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSkpO2QmJkFzKE5LKTtDcyhPSyl9LHFzPVsiYXciLCJkYyIsCiJnYiJdLE9LPVsiYXciLCJkYyIsImdiIiwiYWciXSxOSz1bImF3IiwiZGMiLCJnYiIsImFnIiwiZ2FkX3NvdXJjZSJdO2Z1bmN0aW9uIFZLKCl7cmV0dXJuIE10KDcpJiZNdCg5KSYmTXQoMTApfTt2YXIgV0s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt9O2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5vaiwoZFtiXT1jLGQpKX0sWEs9ZnVuY3Rpb24oYSxiKXt2YXIgYz1kSShhLEYuRC5GaSxhLk0uaWJbRi5ELkZpXSk7aWYoYyYmY1tifHxhLmV2ZW50TmFtZV0hPT12b2lkIDApcmV0dXJuIGNbYnx8YS5ldmVudE5hbWVdfSxZSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLllhKTtpZihDZChiKSlyZXR1cm4gYn0sWks9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5iZSl8fCFlayhhLk0pKXJldHVybiAxO2lmKCFPKGEuTSxGLkQuZGQpKXt2YXIgYj1PKGEuTSxGLkQuUWYpO2lmKGIhPT0hMCYmYiE9PSJ0cnVlIilyZXR1cm4gMX12YXIgYz1PKGEuTSxGLkQuT2kpO3JldHVybiBjPT09ITF8fGM9PT0iZmFsc2UiPzM6Mn07CnZhciBhTD1mdW5jdGlvbihhLGIpe2EmJigkSygic2lkIixhLnRhcmdldElkLGIpLCRLKCJjYyIsYS5jbGllbnRDb3VudCxiKSwkSygidGwiLGEudG90YWxMaWZlTXMsYiksJEsoImhjIixhLmhlYXJ0YmVhdENvdW50LGIpLCRLKCJjbCIsYS5jbGllbnRMaWZlTXMsYikpfSwkSz1mdW5jdGlvbihhLGIsYyl7YiE9bnVsbCYmYy5wdXNoKGErIj0iK2IpfSxiTD1mdW5jdGlvbigpe3ZhciBhPUIucmVmZXJyZXI7aWYoYSl7dmFyIGI7cmV0dXJuIExqKFJqKGEpLCJob3N0Iik9PT0oKGI9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmIuaG9zdCk/MToyfXJldHVybiAwfSxkTD1mdW5jdGlvbigpe3RoaXMuamE9Y0w7dGhpcy5OPTA7dGhpcy55YT1OZig1Nyw1KTt0aGlzLlI9TmYoNTgsNTApO3RoaXMuZmE9RGIoKTt0aGlzLkxhPSJodHRwczovLyIrRSgyMSkrIi9hPyJ9O2RMLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjLGQpewp2YXIgZT1iTCgpLGYsZz1bXTtmPUE9PT1BLnRvcCYmZSE9PTAmJmI/KGI9PW51bGw/dm9pZCAwOmIuY2xpZW50Q291bnQpPjE/ZT09PTI/MToyOmU9PT0yPzA6Mzo0O2EmJiRLKCJzaSIsYS5KZyxnKTskSygibSIsMCxnKTskSygiaXNzIixmLGcpOyRLKCJpZiIsYyxnKTthTChiLGcpO2QmJiRLKCJmbSIsZW5jb2RlVVJJQ29tcG9uZW50KGQuc3Vic3RyaW5nKDAsdGhpcy5SKSksZyk7dGhpcy5aKGcpO307ZEwucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1bXTskSygibSIsMSxmKTskSygicyIsYSxmKTskSygicG8iLGJMKCksZik7YiYmKCRLKCJzdCIsYi5zdGF0ZSxmKSwkSygic2kiLGIuSmcsZiksJEsoInNtIixiLlVnLGYpKTthTChjLGYpOyRLKCJjIixkLGYpO2UmJiRLKCJmbSIsZW5jb2RlVVJJQ29tcG9uZW50KGUuc3Vic3RyaW5nKDAsCnRoaXMuUikpLGYpO3RoaXMuWihmKTt9O2RMLnByb3RvdHlwZS5aPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphOyFmbi5OfHx0aGlzLk4+PXRoaXMueWF8fCgkSygicGlkIix0aGlzLmZhLGEpLCRLKCJiYyIsKyt0aGlzLk4sYSksYS51bnNoaWZ0KCJjdGlkPSIrRSg1KSsiJnQ9cyIpLHRoaXMuamEoIiIrdGhpcy5MYSthLmpvaW4oIiYiKSkpfTtmdW5jdGlvbiBlTChhKXtyZXR1cm4gYS5wZXJmb3JtYW5jZSYmYS5wZXJmb3JtYW5jZS5ub3coKXx8RGF0ZS5ub3coKX0KdmFyIGZMPWZ1bmN0aW9uKGEsYil7dmFyIGM9QSxkPU5mKDUzLDUwMCksZT1OZig1NCw1RTMpLGY9TmYoOCwyMCksZz1OZig1NSw1RTMpLGg7dmFyIGw9ZnVuY3Rpb24obixwLHEpe3E9cT09PXZvaWQgMD97cW86ZnVuY3Rpb24oKXt9LHNvOmZ1bmN0aW9uKCl7fSxwbzpmdW5jdGlvbigpe30sb25GYWlsdXJlOmZ1bmN0aW9uKCl7fX06cTt0aGlzLklqPW47dGhpcy5IPXA7dGhpcy5OPXE7dGhpcy5mYT10aGlzLmphPXRoaXMuaGVhcnRiZWF0Q291bnQ9dGhpcy5Eaj0wO3RoaXMuZmU9ITE7dGhpcy5LPXt9O3RoaXMuaWQ9U3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIqTWF0aC5yYW5kb20oKSkpO3RoaXMuc3RhdGU9MDt0aGlzLkpnPWVMKHRoaXMuSCk7dGhpcy5VZz1lTCh0aGlzLkgpO3RoaXMuWj0xMH07bC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuUigxKTsKdGhpcy5MYSgpfTtsLnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybntzdGF0ZTp0aGlzLnN0YXRlLEpnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLkpnKSxVZzpNYXRoLnJvdW5kKGVMKHRoaXMuSCktdGhpcy5VZyl9fTtsLnByb3RvdHlwZS5SPWZ1bmN0aW9uKG4pe3RoaXMuc3RhdGUhPT1uJiYodGhpcy5zdGF0ZT1uLHRoaXMuVWc9ZUwodGhpcy5IKSl9O2wucHJvdG90eXBlLnZnPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLkRqKyspfTtsLnByb3RvdHlwZS5MYT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5oZWFydGJlYXRDb3VudCsrO3RoaXMueWEoe3R5cGU6MCxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksbWF4RGVsYXk6dGhpcy5oZSgpfSxmdW5jdGlvbihwKXtpZihwLnR5cGU9PT0wKXt2YXIgcTtpZigoKHE9cC5mYWlsdXJlKT09bnVsbD92b2lkIDA6cS5mYWlsdXJlVHlwZSkhPW51bGwpaWYocC5zdGF0cyYmKG4uc3RhdHM9CnAuc3RhdHMpLG4uZmErKyxwLmlzRGVhZHx8bi5mYT5mKXt2YXIgcj1wLmlzRGVhZCYmcC5mYWlsdXJlLmZhaWx1cmVUeXBlO24uWj1yfHwxMDtuLlIoNCk7bi5BaigpO3ZhciB0LHU7KHU9KHQ9bi5OKS5wbyk9PW51bGx8fHUuY2FsbCh0LHtmYWlsdXJlVHlwZTpyfHwxMCxkYXRhOnAuZmFpbHVyZS5kYXRhfSl9ZWxzZSBuLlIoMyksbi5QaCgpO2Vsc2V7aWYobi5oZWFydGJlYXRDb3VudD5wLnN0YXRzLmhlYXJ0YmVhdENvdW50K2Ype24uaGVhcnRiZWF0Q291bnQ9cC5zdGF0cy5oZWFydGJlYXRDb3VudDt2YXIgdix4Oyh4PSh2PW4uTikub25GYWlsdXJlKT09bnVsbHx8eC5jYWxsKHYse2ZhaWx1cmVUeXBlOjEzfSl9bi5zdGF0cz1wLnN0YXRzO3ZhciB5PW4uc3RhdGU7bi5SKDIpO2lmKHkhPT0yKWlmKG4uZmUpe3ZhciB6LEM7KEM9KHo9bi5OKS5zbyk9PW51bGx8fEMuY2FsbCh6KX1lbHNle24uZmU9ITA7dmFyIEQsSTsoST0oRD1uLk4pLnFvKT09bnVsbHx8SS5jYWxsKEQpfW4uZmE9CjA7bi5OaigpO24uUGgoKX19fSl9O2wucHJvdG90eXBlLmhlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT0yP2U6ZH07bC5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuSC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5MYSgpfSxNYXRoLm1heCgwLHRoaXMuaGUoKS0oZUwodGhpcy5IKS10aGlzLmphKSkpfTtsLnByb3RvdHlwZS5rcj1mdW5jdGlvbihuLHAscSl7dmFyIHI9dGhpczt0aGlzLnlhKHt0eXBlOjEsY2xpZW50SWQ6dGhpcy5pZCxyZXF1ZXN0SWQ6dGhpcy52ZygpLGNvbW1hbmQ6bn0sZnVuY3Rpb24odCl7aWYodC50eXBlPT09MSlpZih0LnJlc3VsdClwKHQucmVzdWx0KTtlbHNle3ZhciB1LHYseCx5PXtmYWlsdXJlVHlwZTooeD0odT10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp1LmZhaWx1cmVUeXBlKSE9bnVsbD94OjEyLGRhdGE6KHY9dC5mYWlsdXJlKT09bnVsbD92b2lkIDA6di5kYXRhfSx6LEM7KEM9KHo9ci5OKS5vbkZhaWx1cmUpPT0KbnVsbHx8Qy5jYWxsKHoseSk7cSh5KX19KX07bC5wcm90b3R5cGUueWE9ZnVuY3Rpb24obixwKXt2YXIgcT10aGlzO2lmKHRoaXMuc3RhdGU9PT00KW4uZmFpbHVyZT17ZmFpbHVyZVR5cGU6dGhpcy5afSxwKG4pO2Vsc2V7dmFyIHI9dGhpcy5zdGF0ZSE9PTImJm4udHlwZSE9PTAsdD1uLnJlcXVlc3RJZCx1LHY9dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgeT1xLktbdF07eSYmKGltKDYpLHEua2QoeSw3KSl9LCh1PW4ubWF4RGVsYXkpIT1udWxsP3U6ZykseD17cmVxdWVzdDpuLEhvOnAsem86cixOczp2fTt0aGlzLktbdF09eDtyfHx0aGlzLnNlbmRSZXF1ZXN0KHgpfX07bC5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO24uem89ITE7dGhpcy5JaihuLnJlcXVlc3QpfTtsLnByb3RvdHlwZS5Oaj1mdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKHRoaXMuSykpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT0KdGhpcy5LW3AudmFsdWVdO3Euem8mJnRoaXMuc2VuZFJlcXVlc3QocSl9fTtsLnByb3RvdHlwZS5Baj1mdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKHRoaXMuSykpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXRoaXMua2QodGhpcy5LW3AudmFsdWVdLHRoaXMuWil9O2wucHJvdG90eXBlLmtkPWZ1bmN0aW9uKG4scCl7dGhpcy5hYyhuKTt2YXIgcT1uLnJlcXVlc3Q7cS5mYWlsdXJlPXtmYWlsdXJlVHlwZTpwfTtuLkhvKHEpfTtsLnByb3RvdHlwZS5hYz1mdW5jdGlvbihuKXtkZWxldGUgdGhpcy5LW24ucmVxdWVzdC5yZXF1ZXN0SWRdO3RoaXMuSC5jbGVhclRpbWVvdXQobi5Ocyl9O2wucHJvdG90eXBlLmtzPWZ1bmN0aW9uKG4pe3RoaXMuamE9ZUwodGhpcy5IKTt2YXIgcD10aGlzLktbbi5yZXF1ZXN0SWRdO2lmKHApdGhpcy5hYyhwKSxwLkhvKG4pO2Vsc2V7dmFyIHEscjsocj0ocT10aGlzLk4pLm9uRmFpbHVyZSk9PW51bGx8fHIuY2FsbChxLHtmYWlsdXJlVHlwZToxNH0pfX07Cmg9bmV3IGwoYSxjLGIpO3JldHVybiBofTsKdmFyIGdMPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDE4LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBkTH0pfSxjTD1mdW5jdGlvbihhKXtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtaYyhhKX0pfSxoTD1mdW5jdGlvbihhKXt2YXIgYj1hLnN1YnN0cmluZygwLGEuaW5kZXhPZigiL18vc2VydmljZV93b3JrZXIiKSk7cmV0dXJuIiYxcD0xIisoYj8iJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQoYik6IiIpfSxpTD1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbjtpZighYilyZXR1cm4gbnVsbDsoTSg0MzIpP1dqKCk6V2ooKSYmIWEpJiYoYT0iIitiK1hqKCkrIi9fL3NlcnZpY2Vfd29ya2VyIik7dmFyIGM9YSxkLGU9TGYoMTEpO2U9TGYoMTApO2Q9ZTtjPyhjLmNoYXJBdChjLmxlbmd0aC0xKSE9PSIvIiYmCihjKz0iLyIpLGE9YytkKTphPSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9zdGF0aWMvc2VydmljZV93b3JrZXIvIitkKyIvIjt2YXIgZjt0cnl7Zj1uZXcgVVJMKGEpfWNhdGNoKGcpe3JldHVybiBudWxsfXJldHVybiBmLnByb3RvY29sIT09Imh0dHBzOiI/bnVsbDpmfSxqTD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5PaCk7cmV0dXJuIGImJmJbYV19LGtMPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5LPWdMKCk7dGhpcy5aPXRoaXMuUj0hMTt0aGlzLmZhPW51bGw7dGhpcy5pbml0VGltZT1NYXRoLnJvdW5kKE5iKCkpO3RoaXMuSD0xNTt0aGlzLk49dGhpcy5GcihhKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmluaXRpYWxpemUoKX0sMUUzKTtiZChmdW5jdGlvbigpe2IuenMoYSl9KX07az1rTC5wcm90b3R5cGU7ay5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy5nZXRTdGF0ZSgpIT09Mj8odGhpcy5LLkgodGhpcy5ILHtzdGF0ZTp0aGlzLmdldFN0YXRlKCksCkpnOnRoaXMuaW5pdFRpbWUsVWc6TWF0aC5yb3VuZChOYigpKS10aGlzLmluaXRUaW1lfSx2b2lkIDAsYS5jb21tYW5kVHlwZSksYyh7ZmFpbHVyZVR5cGU6dGhpcy5IfSkpOnRoaXMuTi5rcihhLGIsYyl9O2suZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OLmdldFN0YXRlKCkuc3RhdGV9O2suenM9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5vcmlnaW4sYz10aGlzLGQ9WGMoKTt0cnl7dmFyIGU9ZC5jb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksZj1hLnBhdGhuYW1lLGc9ZltmLmxlbmd0aC0xXT09PSIvIj9hLnRvU3RyaW5nKCk6YS50b1N0cmluZygpKyIvIixoPWEub3JpZ2luIT09Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIj9oTChmKToiIixsO00oMTMzKSYmKGw9e3NhbmRib3g6ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXNjcmlwdHMifSk7WGMoZysic3dfaWZyYW1lLmh0bWw/b3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKwpoLHZvaWQgMCxsLHZvaWQgMCxlKTt2YXIgbj1mdW5jdGlvbigpe2QuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7ZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe2MuZmE9ZS5jb250ZW50V2luZG93O2QuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihwKXtwLm9yaWdpbj09PWEub3JpZ2luJiZjLk4ua3MocC5kYXRhKX0pO2MuaW5pdGlhbGl6ZSgpfSl9O2QuY29udGVudERvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP24oKTpkLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtuKCl9KX1jYXRjaChwKXtkLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZCksdGhpcy5IPTExLHRoaXMuSy5LKHZvaWQgMCx2b2lkIDAsdGhpcy5ILHAudG9TdHJpbmcoKSl9fTtrLkZyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1mTChmdW5jdGlvbihkKXt2YXIgZTsoZT1iLmZhKT09Cm51bGx8fGUucG9zdE1lc3NhZ2UoZCxhLm9yaWdpbil9LHtxbzpmdW5jdGlvbigpe2IuUj0hMDtiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyl9LHNvOmZ1bmN0aW9uKCl7fSxwbzpmdW5jdGlvbihkKXtiLlI/KGIuSD0oZD09bnVsbD92b2lkIDA6ZC5mYWlsdXJlVHlwZSl8fDEwLGIuSy5IKGIuSCxjLmdldFN0YXRlKCksYy5zdGF0cyx2b2lkIDAsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSk6KGIuSD0oZD09bnVsbD92b2lkIDA6ZC5mYWlsdXJlVHlwZSl8fDQsYi5LLksoYy5nZXRTdGF0ZSgpLGMuc3RhdHMsYi5ILGQ9PW51bGw/dm9pZCAwOmQuZGF0YSkpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oZCl7Yi5IPWQuZmFpbHVyZVR5cGU7Yi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLGQuY29tbWFuZCxkLmRhdGEpfX0pO3JldHVybiBjfTtrLmluaXRpYWxpemU9ZnVuY3Rpb24oKXt0aGlzLlp8fHRoaXMuTi5pbml0KCk7dGhpcy5aPSEwfTsKdmFyIGxMPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlO2lmKChlPWpMKGEpKT09bnVsbHx8IWUuZGVsZWdhdGUpe3ZhciBmPUljKCk/MTY6NjtnTCgpLkgoZix2b2lkIDAsdm9pZCAwLGIuY29tbWFuZFR5cGUpO2Qoe2ZhaWx1cmVUeXBlOmZ9KTtyZXR1cm59akwoYSkuZGVsZWdhdGUoYixjLGQpO307CmZ1bmN0aW9uIG1MKGEsYixjLGQpe3ZhciBlPWlMKGEpO2lmKGU9PT1udWxsKXtkKCJfaXNfc3c9ZiIrKEljKCk/MTY6NikrInRlIik7cmV0dXJufXZhciBmPWI/MTowLGc9TWF0aC5yb3VuZChOYigpKSxoLGw9KGg9akwoZS5vcmlnaW4pKT09bnVsbD92b2lkIDA6aC5pbml0VGltZSxuPWw/Zy1sOnZvaWQgMCxwO00oNDMyKT9wPVdqKCk/dm9pZCAwOkEubG9jYXRpb24uaHJlZjpwPUEubG9jYXRpb24uaHJlZjtsTChlLm9yaWdpbix7Y29tbWFuZFR5cGU6MCxwYXJhbXM6e3VybDphLG1ldGhvZDpmLHRlbXBsYXRlczpjLGJvZHk6Ynx8IiIscHJvY2Vzc1Jlc3BvbnNlOiEwLHNpbmNlSW5pdDpuLGF0dHJpYnV0aW9uUmVwb3J0aW5nOiEwLHJlZmVyZXI6cCxzdHJpY3Q6TSg1ODQpfX0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKHEpe3ZhciByPSJfaXNfc3c9ZiIrcS5mYWlsdXJlVHlwZSx0LHU9KHQ9akwoZS5vcmlnaW4pKT09Cm51bGw/dm9pZCAwOnQuZ2V0U3RhdGUoKTt1IT09dm9pZCAwJiYocis9InMiK3UpO2Qobj9yKygidCIrbik6cisidGUiKX0pO307ZnVuY3Rpb24gbkwoYSl7aWYoSWYoNDcpJiZkSShhLCJjY2RfYWRkXzFwX2RhdGEiLCExKSYmV2ooKSl7dmFyIGI9YS5NO2lmKEljKCkmJmJnKCJpbnRlcm5hbF9zd19hbGxvd2VkIiwiIikpe3ZhciBjPWVrKGIpLGQ9V2ooKT9YaigpOnZvaWQgMCxlO2U9ZD97cGF0aDpkLGVvOiJmdWxsIn06Yz97cGF0aDpjLGVvOiJsaXRlIn06dm9pZCAwO2lmKGUpe3ZhciBmPWUuZW8sZz1uZXcgVVJMKGUucGF0aCxBLmxvY2F0aW9uLm9yaWdpbik7aWYoZy5vcmlnaW49PT1BLmxvY2F0aW9uLm9yaWdpbiYmcHkoZik9PT12b2lkIDApe3ZhciBoPW9tKGptLmJhLk9oLHt9KTtoW2ZdfHwoaFtmXT1uZXcgbnkoZykpfX19fX07ZnVuY3Rpb24gc0woKXt2YXIgYTthPWE9PT12b2lkIDA/ZG9jdW1lbnQ6YTt2YXIgYjtyZXR1cm4hKChiPWEuZmVhdHVyZVBvbGljeSk9PW51bGx8fCFiLmFsbG93ZWRGZWF0dXJlcygpLmluY2x1ZGVzKCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmciKSl9O2Z1bmN0aW9uIHdMKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlPUZwKCksZj1EcChlKTtpZihmLnVybClpZihkKXt2YXIgZz1jKGYudXJsKTtiIT09ZyYmVShhLEYuRC5QZSxnKX1lbHNle3ZhciBoPWYudXJsO2IhPT1oJiZVKGEsRi5ELlBlLGMoaCkpfX07CnZhciB4TD1mdW5jdGlvbihhKXtpZihhIT1udWxsKXt2YXIgYj1TdHJpbmcoYSkuc3Vic3RyaW5nKDAsNTEyKSxjPWIuaW5kZXhPZigiIyIpO3JldHVybiBjPT09LTE/YjpiLnN1YnN0cmluZygwLGMpfXJldHVybiIifSx5TD1mdW5jdGlvbigpe3ZhciBhPUIudGl0bGU7aWYoYT09PXZvaWQgMHx8YT09PSIiKXJldHVybiIiO2E9ZW5jb2RlVVJJQ29tcG9uZW50KGEpO2Zvcih2YXIgYj0yNTY7Yj4wJiZLaihhLnN1YnN0cmluZygwLGIpKT09PXZvaWQgMDspYi0tO3JldHVybiBLaihhLnN1YnN0cmluZygwLGIpKXx8IiJ9O2Z1bmN0aW9uIEFMKGEpe1YoYSxILkouSmEsITApO1YoYSxILkouRWIsTmIoKSk7VihhLEguSi55bixhLk0uZXZlbnRNZXRhZGF0YVtILkouSmFdKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19O2Z1bmN0aW9uIEZPKGEsYixjLGQpe31GTy5QPSJpbnRlcm5hbC5leGVjdXRlRXZlbnRQcm9jZXNzb3IiO2Z1bmN0aW9uIEdPKGEpe3ZhciBiO3JldHVybiBVZChiLHRoaXMuVCwxKX1HTy5QPSJpbnRlcm5hbC5leGVjdXRlSmF2YXNjcmlwdFN0cmluZyI7ZnVuY3Rpb24gSE8oYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPUE7dHJ5e2I9S2ooYy5lc2NhcGUoYy5hdG9iKGEpKSl9Y2F0Y2goZCl7cmV0dXJufXJldHVybiBifTtmdW5jdGlvbiBJTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1JTy5QPSJpbnRlcm5hbC5nZW5lcmF0ZUNsaWVudElkIjtmdW5jdGlvbiBKTyhhKXt2YXIgYj17fTtyZXR1cm4gVWQoYil9Sk8uUD0iaW50ZXJuYWwuZ2V0QWRzQ29va2llV3JpdGluZ09wdGlvbnMiO2Z1bmN0aW9uIEtPKGEsYil7dmFyIGM9ITE7cmV0dXJuIGN9S08uUD0iaW50ZXJuYWwuZ2V0QWxsb3dBZFBlcnNvbmFsaXphdGlvbiI7ZnVuY3Rpb24gTE8oKXt2YXIgYTtyZXR1cm4gYX1MTy5QPSJpbnRlcm5hbC5nZXRBbmRSZXNldEV2ZW50VXNhZ2UiO2Z1bmN0aW9uIE1PKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9TU8uUD0iaW50ZXJuYWwuZ2V0QXVpZCI7ZnVuY3Rpb24gTk8oKXt2YXIgYT1bXTtyZXR1cm4gVWQoYSl9Tk8uUD0iaW50ZXJuYWwuZ2V0Q29udGFpbmVySWRzIjtmdW5jdGlvbiBPTygpe3ZhciBhPW5ldyBrYjtMKHRoaXMsInJlYWRfY29udGFpbmVyX2RhdGEiKSxhLnNldCgiY29udGFpbmVySWQiLGlnKSxhLnNldCgidmVyc2lvbiIsa2cpLGEuc2V0KCJlbnZpcm9ubWVudE5hbWUiLGpnKSxhLnNldCgiZGVidWdNb2RlIixsZyksYS5zZXQoInByZXZpZXdNb2RlIixtZy5QbyksYS5zZXQoImVudmlyb25tZW50TW9kZSIsbWcuS3IpLGEuc2V0KCJmaXJzdFBhcnR5U2VydmluZyIsYWsoKSksYS5zZXQoImNvbnRhaW5lclVybCIsS2MpLGEuc2V0KCJpc0dvb2dsZU9ubHlNb2RlIixJZig2MikpLGEuWmEoKTtyZXR1cm4gYX1PTy5wdWJsaWNOYW1lPSJnZXRDb250YWluZXJWZXJzaW9uIjtmdW5jdGlvbiBQTyhhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjO3JldHVybiBjfVBPLnB1YmxpY05hbWU9ImdldENvb2tpZVZhbHVlcyI7ZnVuY3Rpb24gUU8oKXt2YXIgYT0iIjtyZXR1cm4gYX1RTy5QPSJpbnRlcm5hbC5nZXRDb3JlUGxhdGZvcm1TZXJ2aWNlc1BhcmFtIjtmdW5jdGlvbiBSTygpe3JldHVybiB5bSgpfVJPLlA9ImludGVybmFsLmdldENvdW50cnlDb2RlIjtmdW5jdGlvbiBTTygpe3ZhciBhPVtdO2E9dGsoKTtyZXR1cm4gVWQoYSl9U08uUD0iaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiO2Z1bmN0aW9uIFRPKGEpe3ZhciBiPW5ldyBrYjtyZXR1cm4gYn1UTy5QPSJpbnRlcm5hbC5nZXREZXZlbG9wZXJJZHMiO2Z1bmN0aW9uIFVPKGEpe3ZhciBiO3JldHVybiBifVVPLlA9ImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiO2Z1bmN0aW9uIFZPKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjKX0kTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiO2Z1bmN0aW9uIGFQKGEpe3ZhciBiO3JldHVybiBifWFQLlA9ImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSI7ZnVuY3Rpb24gYlAoYSl7dmFyIGI9MDtyZXR1cm4gYn1iUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmlzaWJpbGl0eVJhdGlvIjtmdW5jdGlvbiBjUChhKXt2YXIgYj1udWxsO3JldHVybiBifWNQLlA9ImludGVybmFsLmdldEVsZW1lbnRzQnlDc3NTZWxlY3RvciI7CmZ1bmN0aW9uIGRQKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZXZlbnRfZGF0YSIsYSk7dmFyIGM7YTp7dmFyIGQ9YSxlPVhGKHRoaXMpLm9yaWdpbmFsRXZlbnREYXRhO2lmKGUpe2Zvcih2YXIgZj1lLGc9e30saD17fSxsPXt9LG49W10scD1kLnNwbGl0KCJcXFxcIikscT0wO3E8cC5sZW5ndGg7cSsrKXtmb3IodmFyIHI9cFtxXS5zcGxpdCgiXFwuIiksdD0wO3Q8ci5sZW5ndGg7dCsrKXtmb3IodmFyIHU9clt0XS5zcGxpdCgiLiIpLHY9MDt2PHUubGVuZ3RoO3YrKyluLnB1c2godVt2XSksdiE9PXUubGVuZ3RoLTEmJm4ucHVzaChsKTt0IT09ci5sZW5ndGgtMSYmbi5wdXNoKGgpfXEhPT1wLmxlbmd0aC0xJiZuLnB1c2goZyl9Zm9yKHZhciB4PVtdLHk9IiIsej1tKG4pLEM9ei5uZXh0KCk7IUMuZG9uZTtDPQp6Lm5leHQoKSl7dmFyIEQ9Qy52YWx1ZTtEPT09bD8oeC5wdXNoKHkpLHk9IiIpOnk9RD09PWc/eSsiXFwiOkQ9PT1oP3krIi4iOnkrRH15JiZ4LnB1c2goeSk7Zm9yKHZhciBJPW0oeCksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe2lmKGY9PW51bGwpe2M9dm9pZCAwO2JyZWFrIGF9Zj1mW0cudmFsdWVdfWM9Zn1lbHNlIGM9dm9pZCAwfWI9VWQoYyx0aGlzLlQsMSk7cmV0dXJuIGJ9ZFAuUD0iaW50ZXJuYWwuZ2V0RXZlbnREYXRhIjtmdW5jdGlvbiBlUChhKXt2YXIgYj1udWxsO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRzIiwiY3NzIixhKTt0cnl7dmFyIGM9Qi5xdWVyeVNlbGVjdG9yKGEpO2MmJihiPW5ldyBQZChjKSl9Y2F0Y2goZCl7cmV0dXJuIG51bGx9cmV0dXJuIGJ9ZVAuUD0iaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciI7ZnVuY3Rpb24gZlAoKXt2YXIgYTtyZXR1cm4gYX1mUC5QPSJpbnRlcm5hbC5nZXRHc2FFeHBlcmltZW50SWQiO2Z1bmN0aW9uIGdQKCl7cmV0dXJuIG5ldyBQZChQayl9Z1AuUD0iaW50ZXJuYWwuZ2V0SHRtbElkIjtmdW5jdGlvbiBoUCgpe3ZhciBhO3JldHVybiBhfWhQLlA9ImludGVybmFsLmdldElmcmFtaW5nU3RhdGUiO2Z1bmN0aW9uIGlQKGEsYil7dmFyIGM9e307cmV0dXJuIFVkKGMpfWlQLlA9ImludGVybmFsLmdldExpbmtlclZhbHVlRnJvbUxvY2F0aW9uIjtmdW5jdGlvbiBqUCgpe3ZhciBhPW5ldyBrYjtyZXR1cm4gYX1qUC5QPSJpbnRlcm5hbC5nZXRQcml2YWN5U3RyaW5ncyI7ZnVuY3Rpb24ga1AoYSxiKXt2YXIgYztpZighbGgoYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307Yz1VZChkW2JdLHRoaXMuVCk7cmV0dXJuIGN9a1AuUD0iaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIjtmdW5jdGlvbiBsUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IXBoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIiwicXVlcnkiLGEpO3ZhciBkPUxqKFJqKEEubG9jYXRpb24uaHJlZiksInF1ZXJ5IiksZT1JaihkLGEsYik7Yz1VZChlLHRoaXMuVCk7cmV0dXJuIGN9bFAucHVibGljTmFtZT0iZ2V0UXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBtUChhLGIpe3ZhciBjO3JldHVybiBjfW1QLnB1YmxpY05hbWU9ImdldFJlZmVycmVyUXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBuUChhKXt2YXIgYj0iIjtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPWVEKGEpO2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7cmV0dXJuIGF9clAuUD0iaW50ZXJuYWwuZ2V0U2NyZWVuRGltZW5zaW9ucyI7ZnVuY3Rpb24gc1AoKXt2YXIgYT0iIjtyZXR1cm4gYX1zUC5QPSJpbnRlcm5hbC5nZXRUb3BTYW1lRG9tYWluVXJsIjtmdW5jdGlvbiB0UCgpe3ZhciBhPSIiO3JldHVybiBhfXRQLlA9ImludGVybmFsLmdldFRvcFdpbmRvd1VybCI7ZnVuY3Rpb24gdVAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF91cmwiLGEpO2I9TGooUmooQS5sb2NhdGlvbi5ocmVmKSxhKTtyZXR1cm4gYn11UC5wdWJsaWNOYW1lPSJnZXRVcmwiO2Z1bmN0aW9uIHZQKCl7TCh0aGlzLCJnZXRfdXNlcl9hZ2VudCIpO3JldHVybiBIYy51c2VyQWdlbnR9dlAucHVibGljTmFtZT0iZ2V0VXNlckFnZW50Ijt2UC5QPSJpbnRlcm5hbC5nZXRVc2VyQWdlbnQiO2Z1bmN0aW9uIHdQKCl7dmFyIGE7cmV0dXJuIGE/VWQoRU0oYSkpOmF9d1AuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50Q2xpZW50SGludHMiO3ZhciB5UD1mdW5jdGlvbihhKXt2YXIgYj1hLmV2ZW50TmFtZT09PUYuRC5zYyYmRWwoKSYmYmsoWksoYSkpLGM9UShhLEguSi5kbiksZD1RKGEsSC5KLktrKSxlPVEoYSxILkoubWcpLGY9UShhLEguSi5UZSksZz1RKGEsSC5KLkZjKSxoPVEoYSxILkouaGQpLGw9UShhLEguSi5yZyksbj1RKGEsSC5KLk1oKSxwPVEoYSxILkouTmgpLHE9ISFZSyhhKXx8ISFRKGEsSC5KLnBwKTtyZXR1cm4hKCFuZCgpJiYha2QoKXx8ZXx8cXx8Znx8Z3x8aHx8bHx8cHx8bnx8Ynx8Y3x8IWQmJnhQKCkpfSx4UD1mdW5jdGlvbigpe3JldHVybiBhbCg5LGZ1bmN0aW9uKCl7cmV0dXJuITF9KX07ZnVuY3Rpb24gelAoKXt2YXIgYT1BO3JldHVybiBhLmdhR2xvYmFsPWEuZ2FHbG9iYWx8fHt9fWZ1bmN0aW9uIEFQKGEsYil7dmFyIGM9elAoKTtpZihjLnZpZD09PXZvaWQgMHx8YiYmIWMuZnJvbV9jb29raWUpYy52aWQ9YSxjLmZyb21fY29va2llPWJ9O3ZhciBCUD1bIkdBMSJdOwp2YXIgQ1A9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVEoYSxILkouUGspO2lmKGQ9PT12b2lkIDB8fGM8PWQpVShhLEYuRC5LYixiKSxWKGEsSC5KLlBrLGMpfSxFUD1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQuS2IpO2lmKE8oYS5NLEYuRC5aYykmJk8oYS5NLEYuRC5ZYyl8fGImJmM9PT1iKXJldHVybiBjO2lmKGMpe2M9IiIrYztpZighRFAoYyxhKSlyZXR1cm4gUCgzMSksYS5pc0Fib3J0ZWQ9ITAsIiI7QVAoYyxYbyhGLkQucmEpKTtyZXR1cm4gY31QKDMyKTthLmlzQWJvcnRlZD0hMDtyZXR1cm4iIn0sRlA9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYz1iLnByZWZpeCsiX2dhIixkPUJ2KGIucHJlZml4KyJfZ2EiLGIuZG9tYWluLGIucGF0aCxCUCxGLkQucmEpO2lmKCFkKXt2YXIgZT1TdHJpbmcoTyhhLk0sRi5ELklkLCIiKSk7ZSYmZSE9PWMmJihkPUJ2KGUsYi5kb21haW4sYi5wYXRoLEJQLEYuRC5yYSkpfXJldHVybiBkfSxEUD1mdW5jdGlvbihhLGIpe3ZhciBjOwp2YXIgZD1RKGIsSC5KLkdhKSxlPWQucHJlZml4KyJfZ2EiLGY9dXEoZCx2b2lkIDAsdm9pZCAwLEYuRC5yYSk7aWYoTyhiLk0sRi5ELkpkKT09PSExJiZGUChiKT09PWEpYz0hMDtlbHNle3ZhciBnO2c9W0JQWzBdLHRxKGQuZG9tYWluLGQucGF0aCksYV0uam9pbigiLiIpO2M9b3EoZSxnLGYpIT09MX1yZXR1cm4gY307CnZhciBHUD1mdW5jdGlvbihhKXt2YXIgYj0wLGM9MDtyZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXtiPU5iKCl9LHN0b3A6ZnVuY3Rpb24oKXtjPXRoaXMuZ2V0KCl9LGdldDpmdW5jdGlvbigpe3ZhciBkPTA7YS5WaigpJiYoZD1OYigpLWIpO3JldHVybiBkK2N9fX0sSFA9ZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwO3RoaXMuSz0wO3RoaXMuaXNBY3RpdmU9dGhpcy5pc1Zpc2libGU9dGhpcy5OPSExO3RoaXMuWj10aGlzLlI9dm9pZCAwfTtrPUhQLnByb3RvdHlwZTtrLktxPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYoIXRoaXMuSCl7dGhpcy5OPUIuaGFzRm9jdXMoKTt0aGlzLmlzVmlzaWJsZT0hQi5oaWRkZW47dGhpcy5pc0FjdGl2ZT0hMDt2YXIgYz1mdW5jdGlvbihlLGYsZyl7JGMoZSxmLGZ1bmN0aW9uKGgpe2IuSC5zdG9wKCk7ZyhoKTtiLlZqKCkmJmIuSC5zdGFydCgpfSl9LGQ9QTtjKGQsImZvY3VzIixmdW5jdGlvbigpe2IuTj0hMH0pO2MoZCwiYmx1ciIsZnVuY3Rpb24oKXtiLk49CiExfSk7YyhkLCJwYWdlc2hvdyIsZnVuY3Rpb24oZSl7Yi5pc0FjdGl2ZT0hMDtlLnBlcnNpc3RlZCYmUCg1Nik7Yi5aJiZiLlooKX0pO2MoZCwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7Yi5pc0FjdGl2ZT0hMTtiLlImJmIuUigpfSk7YyhCLCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2IuaXNWaXNpYmxlPSFCLmhpZGRlbn0pO2JrKFpLKGEpKSYmIU9jKCkmJmMoZCwiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe1prKDksITApfSk7dGhpcy5xayghMCk7dGhpcy5LPTB9fTtrLnFrPWZ1bmN0aW9uKGEpe2lmKChhPT09dm9pZCAwPzA6YSl8fHRoaXMuSCl0aGlzLksrPXRoaXMuWWgoKSx0aGlzLkg9R1AodGhpcyksdGhpcy5WaigpJiZ0aGlzLkguc3RhcnQoKX07ay5LdD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLlloKCk7Yj4wJiZVKGEsRi5ELm5oLGIpfTtrLmxzPWZ1bmN0aW9uKGEpe1UoYSxGLkQubmgpO3RoaXMucWsoKTt0aGlzLks9MH07ay5Waj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4mJgp0aGlzLmlzVmlzaWJsZSYmdGhpcy5pc0FjdGl2ZX07ay5Ycj1mdW5jdGlvbigpe3JldHVybiB0aGlzLksrdGhpcy5ZaCgpfTtrLlloPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCYmdGhpcy5ILmdldCgpfHwwfTtrLmh0PWZ1bmN0aW9uKGEpe3RoaXMuUj1hfTtrLkNvPWZ1bmN0aW9uKGEpe3RoaXMuWj1hfTt2YXIgSVA9ZnVuY3Rpb24oYSl7c2IoIkdBNF9FVkVOVCIsYSl9O3ZhciBKUD1mdW5jdGlvbihhKXt2YXIgYixjPVEoYSxILkoud20pO2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspSVAoY1tkXSk7KGI9d2IocmIuR0E0X0VWRU5UfHxbXSkpJiZVKGEsIl9ldSIsYil9Owp2YXIgTVA9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFJlZ0V4cCgiXiIrKCgoYT09bnVsbD92b2lkIDA6YS5wcmVmaXgpfHwiIikrIl9nYV9cXHcrJCIpKSxjPXlxKGZ1bmN0aW9uKHApe3JldHVybiBiLnRlc3QocCl9KSxkPXt9LGU7Zm9yKGUgaW4gYylpZihjLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1LUChjW2VdKTtpZihmKXt2YXIgZz1icShmLDIpO2lmKGcpe3ZhciBoPUxQKGcpO2lmKGgpe3ZhciBsPXZvaWQgMCxuPSgoKGw9YSk9PW51bGw/dm9pZCAwOmwucHJlZml4KXx8IiIpLmxlbmd0aCs0O2RbIkctIitlLnN1YnN0cmluZyhuKV09aH19fX1yZXR1cm4gZH0sTlA9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI7YTp7dmFyIGM9KFNiKGEsInMiKSYmYS5pbmRleE9mKCIuIik9PT0tMT8iR1MyIjoiR1MxIikrIi4xLiIrYTt0cnl7Yj0kcChjLDIpO2JyZWFrIGF9Y2F0Y2goZCl7fWI9dm9pZCAwfXJldHVybiBifX0sS1A9ZnVuY3Rpb24oYSl7aWYoYSYmYS5sZW5ndGghPT0wKXtmb3IodmFyIGIsCmM9LUluZmluaXR5LGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtpZihmLnQhPT12b2lkIDApe3ZhciBnPU51bWJlcihmLnQpOyFpc05hTihnKSYmZz5jJiYoYz1nLGI9Zil9fXJldHVybiBifX0senE9ZnVuY3Rpb24oYSl7YSYmKGE9PT0iR1MxIj9JUChKLlUuS20pOmE9PT0iR1MyIiYmSVAoSi5VLkxtKSl9LExQPWZ1bmN0aW9uKGEpe3ZhciBiPU5QKGEpO2lmKGIpe3ZhciBjPU51bWJlcihiLm8pLGQ9TnVtYmVyKGIudCksZT1OdW1iZXIoYi5qfHwwKTtjfHxJUChKLlUuVW0pO2R8fElQKEouVS5UbSk7aXNOYU4oZSkmJklQKEouVS5TbSk7aWYoYyYmZCYmIWlzTmFOKGUpKXt2YXIgZj1iLmgsZz1mJiZmIT09IjAiP1N0cmluZyhmKTp2b2lkIDAsaD1iLmQ/U3RyaW5nKGIuZCk6dm9pZCAwLGw9e307cmV0dXJuIGwucz1TdHJpbmcoYi5zKSxsLm89YyxsLmc9ISFOdW1iZXIoYi5nKSxsLnQ9ZCxsLmQ9aCxsLmo9ZSxsLmw9Yi5sPT09IjEiLApsLmg9ZyxsfX19Owp2YXIgUFA9ZnVuY3Rpb24oYSxiLGMpe2lmKCFiKXJldHVybiBhO2lmKCFhKXJldHVybiBiO3ZhciBkPUxQKGEpO2lmKCFkKXJldHVybiBiO3ZhciBlLGY9SWIoKGU9TyhjLk0sRi5ELnloKSkhPW51bGw/ZTozMCksZz1RKGMsSC5KLkViKTtpZighKE1hdGguZmxvb3IoZy8xRTMpPmQudCtmKjYwKSlyZXR1cm4gYTt2YXIgaD1MUChiKTtpZighaClyZXR1cm4gYTtoLm89ZC5vKzE7dmFyIGw7cmV0dXJuKGw9T1AoaCkpIT1udWxsP2w6Yn0sUlA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1RKGIsSC5KLkdhKSxkPVFQKGIsYyksZT1OUChhKTtpZighZSlyZXR1cm4hMTt2YXIgZj11cShjfHx7fSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSk7b3EoZCx2b2lkIDAsZik7cmV0dXJuIEFxKGQsZSwyLGMpIT09MX0sU1A9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYzt2YXIgZD1RUChhLGIpLGU7Yjp7dmFyIGY9enEsZz1acFsyXTtpZihnKXt2YXIgaCxsPXJxKGIuZG9tYWluKSxuPXNxKGIucGF0aCksCnA9T2JqZWN0LmtleXMoZy5qaSkscT12cS5nZXQoMikscjtpZihoPShyPWdxKGQsbCxuLHAscSkpPT1udWxsP3ZvaWQgMDpyLkJyKXt2YXIgdD0kcChoLDIsZik7ZT10P3hxKHQpOnZvaWQgMDticmVhayBifX1lPXZvaWQgMH1pZihlKXt2YXIgdT13cShkLDIsenEpO2lmKHUmJnUubGVuZ3RoPjEpe0lQKEouVS5KbSk7dmFyIHY9S1AodSk7diYmdi50IT09ZS50JiYoSVAoSi5VLk1tKSxlPXYpfWM9YnEoZSwyKX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfSxUUD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLkViKSxjPXt9O2Mucz1SKGEsRi5ELnhjKTtjLm89UihhLEYuRC5BaCk7dmFyIGQ7ZD1SKGEsRi5ELnpoKTt2YXIgZT0oYy5nPWQsYy50PU1hdGguZmxvb3IoYi8xRTMpLGMuZD1RKGEsSC5KLm9nKSxjLmo9UShhLEguSi5wZyl8fDAsYy5sPSEhUShhLEguSi5ybSksYy5oPVIoYSxGLkQub2gpLGMpO3JldHVybiBPUChlKX0sT1A9ZnVuY3Rpb24oYSl7aWYoYS5zJiZhLm8pe3ZhciBiPQp7fSxjPShiLnM9YS5zLGIubz1TdHJpbmcoYS5vKSxiLmc9SWIoYS5nKT8iMSI6IjAiLGIudD1TdHJpbmcoYS50KSxiLmo9U3RyaW5nKGEuaiksYi5sPWEubD8iMSI6IjAiLGIuaD1hLmh8fCIwIixiLmQ9YS5kLGIpO3JldHVybiBicShjLDIpfX0sUVA9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5wcmVmaXgrIl9nYV8iK2EudGFyZ2V0Lmlkc1tkQ1s2XV19Owp2YXIgVVA9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMixmdW5jdGlvbigpe3JldHVybiExfSl9LFZQPWZ1bmN0aW9uKGEpe3ZhciBiPU8oYS5NLEYuRC5EYiksYz1hLk0uaWJbRi5ELkRiXTtpZihjPT09YilyZXR1cm4gYzt2YXIgZD1FZChiLG51bGwpO2MmJmNbRi5ELkFhXSYmKGRbRi5ELkFhXT0oZFtGLkQuQWFdfHxbXSkuY29uY2F0KGNbRi5ELkFhXSkpO3JldHVybiBkfSxXUD1mdW5jdGlvbihhLGIpe3ZhciBjPVVxKCEwKTtyZXR1cm4gYy5fdXAhPT0iMSI/e306e2NsaWVudElkOmNbYV0semI6Y1tiXX19LFhQPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1VcSghMCksZT1kW2JdO2UmJihDUChhLGUsMiksRFAoZSxhKSk7dmFyIGY9ZFtjXTtmJiZSUChmLGEpO3JldHVybntjbGllbnRJZDplLHpiOmZ9fSxZUD1mdW5jdGlvbigpe3ZhciBhPU5qKEEubG9jYXRpb24sImhvc3QiKSxiPU5qKFJqKEIucmVmZXJyZXIpLCJob3N0Iik7cmV0dXJuIGEmJmI/YT09PWJ8fGEuaW5kZXhPZigiLiIrYik+PQowfHxiLmluZGV4T2YoIi4iK2EpPj0wPyEwOiExOiExfSxaUD1mdW5jdGlvbihhKXtpZighTyhhLk0sRi5ELnpjKSlyZXR1cm57fTt2YXIgYj1RKGEsSC5KLkdhKSxjPWIucHJlZml4KyJfZ2EiLGQ9UVAoYSxiKTticihmdW5jdGlvbigpe3ZhciBlO2lmKFhvKCJhbmFseXRpY3Nfc3RvcmFnZSIpKWU9e307ZWxzZXt2YXIgZj17X3VwOiIxIn0sZztnPVIoYSxGLkQuS2IpO2U9KGZbY109ZyxmW2RdPVRQKGEpLGYpfXJldHVybiBlfSwxKTtyZXR1cm4hWG8oImFuYWx5dGljc19zdG9yYWdlIikmJllQKCk/V1AoYyxkKTp7fX0sJFA9ZnVuY3Rpb24oYSl7dmFyIGI9VlAoYSl8fHt9LGM9UShhLEguSi5HYSksZD1jLnByZWZpeCsiX2dhIixlPVFQKGEsYyksZj17fTtkcihiW0YuRC5YZl0sISFiW0YuRC5BYV0pJiYoZj1YUChhLGQsZSksZi5jbGllbnRJZCYmZi56YiYmWmsoMiwhMCkpO2JbRi5ELkFhXSYmYXIoZnVuY3Rpb24oKXt2YXIgZz17fSxoPUZQKGEpO2gmJihnW2RdPWgpO3ZhciBsPVNQKGEpOwpsJiYoZ1tlXT1sKTt2YXIgbj1jcSgiRlBMQyIsdm9pZCAwLHZvaWQgMCxGLkQucmEpO24ubGVuZ3RoJiYoZy5fZnBsYz1uWzBdKTtyZXR1cm4gZ30sYltGLkQuQWFdLGJbRi5ELmFkXSwhIWJbRi5ELndjXSk7cmV0dXJuIGZ9O3ZhciBhUT1mdW5jdGlvbihhKXtpZighUShhLEguSi5iZSkmJmVrKGEuTSkpe3ZhciBiPVZQKGEpfHx7fSxjPShkcihiW0YuRC5YZl0sISFiW0YuRC5BYV0pP1VxKCEwKS5fZnBsYzp2b2lkIDApfHwoY3EoIkZQTEMiLHZvaWQgMCx2b2lkIDAsRi5ELnJhKS5sZW5ndGg+MD92b2lkIDA6IjAiKTtVKGEsIl9mcGxjIixjKX19O2Z1bmN0aW9uIGJRKGEpeyhiayhaSyhhKSl8fFdqKCkpJiZVKGEsRi5ELm9tLHptKCl8fHltKCkpOyFiayhaSyhhKSkmJldqKCkmJlUoYSxGLkQuWWksIjo6Iil9ZnVuY3Rpb24gY1EoYSl7V2ooKSYmKGJrKFpLKGEpKXx8RG0oKXx8VShhLEYuRC5TbCwhMCkpfTt2YXIgZVE9ZnVuY3Rpb24oYSxiKXtraigiZ3JsIixmdW5jdGlvbigpe3JldHVybiBkUSgpfSkoYil8fChQKDM1KSxhLmlzQWJvcnRlZD0hMCl9LGRRPWZ1bmN0aW9uKCl7dmFyIGE9TmIoKSxiPWErODY0RTUsYz0yMCxkPTVFMztyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGY9TmIoKTtmPj1iJiYoYj1mKzg2NEU1LGQ9NUUzKTtjPU1hdGgubWluKGMrKGYtYSkvMUUzKjUsMjApO2E9Zjt2YXIgZz0hMTtkPDF8fGM8MXx8KGc9ITAsZC0tLGMtLSk7ZSYmKGUuSHI9ZCxlLnVyPWMpO3JldHVybiBnfX07CnZhciBmUT1mdW5jdGlvbihhKXt2YXIgYj1SKGEsRi5ELlVhKTtyZXR1cm4gTGooUmooYiksImhvc3QiLCEwKX0sZ1E9ZnVuY3Rpb24oYSl7aWYoTyhhLk0sRi5ELldmKSE9PXZvaWQgMClhLmNvcHlUb0hpdERhdGEoRi5ELldmKTtlbHNle3ZhciBiPU8oYS5NLEYuRC5hbSksYyxkO2E6e2lmKFVQKCkpe3ZhciBlPVZQKGEpfHx7fTtpZihlJiZlW0YuRC5BYV0pZm9yKHZhciBmPWZRKGEpLGc9ZVtGLkQuQWFdLGg9MDtoPGcubGVuZ3RoO2grKylpZihnW2hdaW5zdGFuY2VvZiBSZWdFeHApe2lmKGdbaF0udGVzdChmKSl7ZD0hMDticmVhayBhfX1lbHNlIGlmKGYuaW5kZXhPZihnW2hdKT49MCl7ZD0hMDticmVhayBhfX1kPSExfWlmKCEoYz1kKSl7dmFyIGw7aWYobD1iKWE6e2Zvcih2YXIgbj1iLmluY2x1ZGVfY29uZGl0aW9uc3x8W10scD1mUShhKSxxPTA7cTxuLmxlbmd0aDtxKyspaWYobltxXS50ZXN0KHApKXtsPSEwO2JyZWFrIGF9bD0hMX1jPWx9YyYmKFUoYSxGLkQuV2YsIjEiKSwKSVAoSi5VLm5uKSl9fTtmdW5jdGlvbiBoUShhLGIsYyxkKXt2YXIgZTtpZigobmQoKXx8a2QoKSkmJlhqKCkmJlhqKCkhPT0iLyIpe3ZhciBmPVJqKGEpO2U9SWYoNTApJiZkJiZUYihmLnBhdGhuYW1lLCIvZy9jb2xsZWN0Iik/MjooZHx8IVdqKCl8fERtKCk/MDpUYihmLnBhdGhuYW1lLCIvZ2EvZy9jIil8fFRiKGYucGF0aG5hbWUsIi9hZy9nL2MiKSk/MTowfWVsc2UgZT0wO3N3aXRjaChlKXtjYXNlIDI6dmFyIGc7aWYoTSg1NDYpKXt2YXIgaD1UYihhLCIvZy9jb2xsZWN0Iik/YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0xMCk6YSxsPWlRKCksbj1oK2wscD1qUSgiL2cvY29sbGVjdCIsYixjKTtnPXtJYzpuLGtmOiIiLGJvZHk6cH19ZWxzZSBnPXtJYzphLGtmOmIsYm9keTpjfTtyZXR1cm4gZztjYXNlIDE6dmFyIHE7aWYoTSg1NDcpKXt2YXIgcj1pUSgpLHQ9YS5pbmRleE9mKHIpLHU9YS5zdWJzdHJpbmcoMCx0KStyLHY9alEoYS5zdWJzdHJpbmcodCtyLmxlbmd0aC0xKSxiLGMpO3E9e0ljOnUsa2Y6IiIsCmJvZHk6dn19ZWxzZSBxPXtJYzphLGtmOmIsYm9keTpjfTtyZXR1cm4gcTtkZWZhdWx0OnJldHVybntJYzphLGtmOmIsYm9keTpjfX19ZnVuY3Rpb24gaVEoKXt2YXIgYT1YaigpO2lmKCFhKXJldHVybiIiO1NiKGEsIi8iKXx8KGE9Ii8iK2EpO1RiKGEsIi8iKXx8KGErPSIvIik7cmV0dXJuIGF9ZnVuY3Rpb24galEoYSxiLGMpe3ZhciBkPVthXTtiJiZkLnB1c2goIj8iLGIpO2MmJmQucHVzaCgiXHJcbiIsYyk7cmV0dXJuIGQuam9pbigiIil9Owp2YXIga1E9ZnVuY3Rpb24oYSxiKXtUdCgpJiYoYS5nY3M9VXQoKSxRKGIsSC5KLkdoKSYmKGEuZ2N1PSIxIikpO2EuZ2NkPVl0KGIuTSk7YS5ucGE9UShiLEguSi53ZCk/IjAiOiIxIjt6bSgpPT09IlVTLUNPIiYmKGEuX25nPSIxIil9LGxRPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouYmUpKXJldHVybnt1cmw6ZmsoImh0dHBzOi8vd3d3Lm1lcmNoYW50LWNlbnRlci1hbmFseXRpY3MuZ29vZyIsdm9pZCAwLCIiKSsiL21jL2NvbGxlY3QiLGVuZHBvaW50OjIwfTt2YXIgYj1ZaihlayhhLk0pLCIvZy9jb2xsZWN0Iik7aWYoYilyZXR1cm57dXJsOmIsZW5kcG9pbnQ6MTZ9O3ZhciBjO2M9UShhLEguSi5ybikmJiFRKGEsSC5KLkZjKT8xNzoxNjtyZXR1cm57dXJsOk1tW2NdKHZvaWQgMCksZW5kcG9pbnQ6Y319LG1RPXt9O21RW0YuRC5LYl09ImNpZCI7bVFbRi5ELnhpXT0iZ2N1dCI7bVFbRi5ELkZlXT0iYXJlIjttUVtGLkQuamhdPSJwc2NkbCI7bVFbRi5ELk5kXT0iZXhjaWQiO21RW0YuRC5HaV09CiJfZmlkIjttUVtGLkQuT2xdPSJfZ2VvIjttUVtGLkQuWGNdPSJnZGlkIjttUVtGLkQuTGVdPSJfbmciO21RW0YuRC5NZV09ImZybSI7bVFbRi5ELldmXT0iaXIiO21RW0YuRC5TbF09ImZwIjttUVtGLkQudGJdPSJ1bCI7bVFbRi5ELk1pXT0ibmkiO21RW0YuRC5tcV09InBhZSI7bVFbRi5ELnhoXT0iX3JkaSI7bVFbRi5ELmJkXT0ic3IiO21RW0YuRC5RaV09InRlc3Rvbmx5IjttUVtGLkQuUWVdPSJ0aWQiO21RW0YuRC5SaV09InR0IjttUVtGLkQuQmNdPSJlY19tb2RlIjttUVtGLkQuWm1dPSJndG1fdXAiO21RW0YuRC5jZ109InVhYSI7bVFbRi5ELmRnXT0idWFiIjttUVtGLkQuZWddPSJ1YWZ2bCI7bVFbRi5ELmZnXT0idWFtYiI7bVFbRi5ELmdnXT0idWFtIjsKbVFbRi5ELmhnXT0idWFwIjttUVtGLkQuaWddPSJ1YXB2IjttUVtGLkQuamddPSJ1YXciO21RW0YuRC5vbV09InVyIjttUVtGLkQuWWldPSJfdWlwIjttUVtGLkQubHFdPSJfcHJzIjttUVtGLkQuUGRdPSJscHMiO21RW0YuRC5CZV09ImdjbGdzIjttUVtGLkQuRGVdPSJnY2xzdCI7bVFbRi5ELkNlXT0iZ2NsbHAiO3ZhciBuUT17fTtuUVtGLkQuR2ZdPSJjYyI7blFbRi5ELkhmXT0iY2kiO25RW0YuRC5JZl09ImNtIjtuUVtGLkQuSmZdPSJjbiI7blFbRi5ELkxmXT0iY3MiO25RW0YuRC5NZl09ImNrIjtuUVtGLkQuZWJdPSJjdSI7blFbRi5ELlZmXT0iX3R1IjtuUVtGLkQuemFdPSJkbCI7blFbRi5ELllmXT0iZHAiO25RW0YuRC5VYV09ImRyIjtuUVtGLkQuTWJdPSJkdCI7blFbRi5ELnpoXT0ic2VnIjtuUVtGLkQueGNdPQoic2lkIjtuUVtGLkQuQWhdPSJzY3QiO25RW0YuRC5mYl09InVpZCI7dmFyIG9RPXt9O29RW0YuRC5uaF09Il9ldCI7b1FbRi5ELlZjXT0iZWRpZCI7b1FbRi5ELk1kXT0iZXZuaWQiO00oOTQpJiYob1EuX2V1PSJfZXUiKTt2YXIgcFE9e307cFFbRi5ELkdmXT0iY2MiO3BRW0YuRC5IZl09ImNpIjtwUVtGLkQuSWZdPSJjbSI7cFFbRi5ELkpmXT0iY24iO3BRW0YuRC5MZl09ImNzIjtwUVtGLkQuTWZdPSJjayI7dmFyIHFRPXt9LHJRPShxUVtGLkQuQWNdPTEscVEpLHNRPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGRhLG1hKXtpZihtYSE9PXZvaWQgMCYmIUJvLmhhc093blByb3BlcnR5KGRhKSl7bWE9PT1udWxsJiYobWE9IiIpO3ZhciBQYTt2YXIgRmE9bWE7ZGEhPT1GLkQub2g/UGE9ITE6UShhLEguSi5sZyl8fGJrKFpLKGEpKT8oZS5lY2lkPUZhLFBhPSEwKTpQYT12b2lkIDA7aWYoIVBhKXt2YXIgcWE9bWE7bWE9PT0hMCYmKHFhPSIxIik7bWE9PT0hMSYmKHFhPSIwIik7cWE9ClN0cmluZyhxYSk7dmFyIGliO2lmKGRhIT09Ri5ELk5kJiZkYSE9PUYuRC5NZHx8TSg1MDQpKWlmKG1RW2RhXSlpYj1tUVtkYV0sdltpYl09cWE7ZWxzZSBpZihuUVtkYV0paWI9blFbZGFdLGdbaWJdPXFhO2Vsc2UgaWYob1FbZGFdKWliPW9RW2RhXSxmW2liXT1xYTtlbHNlIGlmKFNiKGRhLCJfJiIpKWliPWRhLnN1YnN0cmluZygyKSx2W2liXT1xYTtlbHNlIGlmKGRhLmNoYXJBdCgwKT09PSJfIil2W2RhXT1xYTtlbHNle3ZhciBYYjtwUVtkYV0/WGI9ITA6ZGEhPT1GLkQuS2Y/WGI9ITE6KHR5cGVvZiBtYSE9PSJvYmplY3QiJiZ1KGRhLG1hKSxYYj0hMCk7WGJ8fHUoZGEsbWEpfWVsc2UgdShkYSxtYSl9fX12YXIgZT17fSxmPXt9LGc9e307ZS52PSIyIjtlLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkO2UuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxlZjpRKGEsSC5KLkNjKX0pO2UuX3A9JGsoMjUpO2MmJihjLmhhc1VwZHx8Yy5oYWRFcnJvcikmJihlLmVtPWMucGFyYW0pO1EoYSwKSC5KLnJnKSYmKGUuX2dhej0xKTtrUShlLGEpO2F1KCkmJihlLmRtYV9jcHM9WnQoKSk7ZS5kbWE9JHQoKTt2dChFdCgpKSYmKGUudGNmZD1idSgpKTt2YXIgaD1DcChhKTtoJiYoZy50YWdfZXhwPWgpO3ZhciBsPVIoYSxGLkQuWGMpO2wmJihlLmdkaWQ9bCk7Zi5lbj1TdHJpbmcoYS5ldmVudE5hbWUpO2lmKFEoYSxILkoubmcpKXt2YXIgbj1RKGEsSC5KLlltKTtmLl9mdj1uPzI6MX1RKGEsSC5KLkhoKSYmKGYuX25zaT0xKTtpZihRKGEsSC5KLlRlKSl7dmFyIHA9UShhLEguSi5ibik7Zi5fc3M9cD8yOjF9UShhLEguSi5tZykmJihmLl9jPTEpO1EoYSxILkouYWUpJiYoZi5fZWU9MSk7aWYoUShhLEguSi5XbSkpe3ZhciBxPVIoYSxGLkQuSGEpfHxPKGEuTSxGLkQuSGEpO2lmKEFycmF5LmlzQXJyYXkocSkpZm9yKHZhciByPTA7cjxxLmxlbmd0aCYmcjwyMDA7cisrKWZbInByIisocisxKV09dGcocVtyXSl9dmFyIHQ9UihhLEYuRC5WYyk7dCYmKGYuZWRpZD10KTtodChhLGYpO2Zvcih2YXIgdT0KZnVuY3Rpb24oZGEsbWEpe2lmKHR5cGVvZiBtYSE9PSJvYmplY3QifHwhclFbZGFdKXt2YXIgUGE9ImVwLiIrZGEsRmE9ImVwbi4iK2RhO2RhPUFiKG1hKT9GYTpQYTt2YXIgcWE9QWIobWEpP1BhOkZhO2YuaGFzT3duUHJvcGVydHkocWEpJiZkZWxldGUgZltxYV07ZltkYV09U3RyaW5nKG1hKX19LHY9e30seD1tKGV1KGEpKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTtkKHosUihhLHopKX1mb3IodmFyIEM9bShPYmplY3Qua2V5cyh2KS5zb3J0KCkpLEQ9Qy5uZXh0KCk7IUQuZG9uZTtEPUMubmV4dCgpKXt2YXIgST1ELnZhbHVlO2VbSV09dltJXX0oZnVuY3Rpb24oZGEpe2JrKFpLKGEpKSYmdHlwZW9mIGRhPT09Im9iamVjdCImJkdiKGRhfHx7fSxmdW5jdGlvbihtYSxQYSl7dHlwZW9mIFBhIT09Im9iamVjdCImJihlWyJzc3QuIittYV09U3RyaW5nKFBhKSl9KX0pKFIoYSxGLkQub2opKTtidihlLFIoYSxGLkQuZWQpKTt2YXIgRz1SKGEsRi5ELldkKXx8Cnt9O0diKEcsZnVuY3Rpb24oZGEsbWEpe21hIT09dm9pZCAwJiYoKG1hPT09bnVsbCYmKG1hPSIiKSxkYSE9PUYuRC5mYnx8Zy51aWQpP2JbZGFdIT09bWEmJihmWyhBYihtYSk/InVwbi4iOiJ1cC4iKStTdHJpbmcoZGEpXT1TdHJpbmcobWEpLGJbZGFdPW1hKTpnLnVpZD1TdHJpbmcobWEpKX0pO2lmKFdqKCkmJiFEbSgpJiYhYmsoWksoYSkpKXt2YXIgTj1RKGEsSC5KLm9nKTtOP2UuX2dzaWQ9TjplLm5qaWQ9IjEifXZhciBTPVEoYSxILkouVmkpOyhTPT1udWxsP3ZvaWQgMDpTLnZhbHVlKT4wJiYoZS5nYWY9Uy5nZXQoKSk7dmFyIFc9UihhLEYuRC5XYyk7aWYoVylmb3IodmFyIGVhPW0oT2JqZWN0LmtleXMoVykpLGphPWVhLm5leHQoKTshamEuZG9uZTtqYT1lYS5uZXh0KCkpe3ZhciBmYT1qYS52YWx1ZTtmWyJleHQuIitmYV09V1tmYV18fCIifXZhciBzYT1sUShhKTt2Zy5jYWxsKHRoaXMse0JhOmUsdmU6ZyxMajpmfSxzYS51cmwsc2EuZW5kcG9pbnQsWksoYSksdm9pZCAwLAphLnRhcmdldC5kZXN0aW5hdGlvbklkLGEuTS5ldmVudElkLGEuTS5wcmlvcml0eUlkKX07d2Eoc1EsdmcpOwp2YXIgdFE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5yZXBsYWNlKC9cJFx7KFteXH1dKylcfS9nLGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGJbZF18fGN9KX0sdVE9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz0iIixkPWEucGF0aG5hbWUuaW5kZXhPZigiL2cvY29sbGVjdCIpO2Q+PTAmJihjPWEucGF0aG5hbWUuc3Vic3RyaW5nKDAsZCkpO2IudHJhbnNwb3J0X3VybD1hLnByb3RvY29sKyIvLyIrYS5ob3N0bmFtZStjO3ZhciBlO3RyeXtlPWVuY29kZVVSSUNvbXBvbmVudChjfHwiLyIpfWNhdGNoKGYpe2U9ZW5jb2RlVVJJQ29tcG9uZW50KCIvIil9Yi5lbmNvZGVkX3BhdGg9ZTtyZXR1cm4gYn0sdlE9ZnVuY3Rpb24oYSxiKXtpZighTSg1NDYpKXJldHVybnt1cmw6YSxib2R5OmJ9O3ZhciBjPW0oYS5zcGxpdCgiPyIpKSxkPWMubmV4dCgpLnZhbHVlLGU9Yy5uZXh0KCkudmFsdWUsZj1oUShkLGV8fCIiLGJ8fCIiLCEwKSxnPWYuSWMsaD1mLmtmO2E9aCE9PSIiP2crIj8iK2g6ZztiPWYuYm9keTsKcmV0dXJue3VybDphLGJvZHk6Yn19LHhRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1SaihiKSxlPXVRKGQpLGY9dlEoWGcoZCksYyksZz1mdW5jdGlvbihoKXtxeChmLnVybCxmLmJvZHksbmV3IHdRKGUsaCkpJiZhJiZrbi5yZWdpc3RlcihhLDEsZi51cmwpfTshTSgxMzIpfHxOYygiOyB3diIpfHxOYygiRkJBTiIpfHxOYygiRkJBViIpfHxQYygpP2coKTptTChmLnVybCxmLmJvZHksZSxnKX0sd1E9ZnVuY3Rpb24oYSxiKXtDeC5jYWxsKHRoaXMpO3RoaXMudGVtcGxhdGVzPWE7dGhpcy5OPWJ9O3dhKHdRLEN4KTt3US5wcm90b3R5cGUuWj1mdW5jdGlvbihhKXt2YXIgYj10UShhLHRoaXMudGVtcGxhdGVzKTtyZXR1cm4gdGhpcy5OP2IucmVwbGFjZSgiX2lzX3N3PTAiLHRoaXMuTik6Yn07d1EucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLlooYSk7Q3gucHJvdG90eXBlLksuY2FsbCh0aGlzLGMsYil9O3dRLnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9CnRoaXMuWihhKTtDeC5wcm90b3R5cGUuSC5jYWxsKHRoaXMsYyxiKX07CnZhciB5UT1mdW5jdGlvbihhKXtyZXR1cm4hU2IoYSxGbSgpKSYmIVNiKGEsR20oKSl9LEFRPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZighbmQoKSlyZXR1cm4gelEoYSxiLGMsZCksITA7WW4oYyxiIT09IiI/YSsiPyIrYjphLGQsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxlfHx7fSx7UWc6ITB9KSx2b2lkIDAsZil8fHpRKGEsYixjLGQpO3JldHVybiEwfSx6UT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iIT09IiI/YSsiPyIrYjphO2Q/V24oYyxlLGQpOlZuKGMsZSl9LENRPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YixnPXBkKCk7ZyE9PXZvaWQgMCYmKGYrPSImdGZkPSIrTWF0aC5yb3VuZChnKSk7Yj1mO3ZhciBoPWErIj8iK2I7aWYoIWJrKGQpfHxjayhkKXx8eFAoKSl7dmFyIGw9aFEoYSxiLGMsYmsoZCkpO2E9bC5JYztiPWwua2Y7Yz1sLmJvZHk7QVEoYSxiLGUsYyx2b2lkIDAsQlEoYSxiLGUsYykpfHx6UShhLGIsZSxjKX1lbHNlIHhRKGUsaCxjKTsKYmsoZCkmJk0oNTY0KSYmbmQoKSYmVGIoYSwiL2cvY29sbGVjdCIpJiZBLmZldGNoKGEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApLHttZXRob2Q6IlBPU1QiLGJvZHk6IkNqQU9BVHdjQ0JnTyIsY3JlZGVudGlhbHM6Im9taXQifSl9LEJRPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCF5UShhKSl7dmFyIGU9TW1bNjddKHZvaWQgMCk7aWYoZSlyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZjt2YXIgZz1iLnJlcGxhY2UoL15cPy8sIiIpLGg9TnVtYmVyKElqKGcsImdhZiIsITEpKSxsPTA7TnVtYmVyLmlzSW50ZWdlcihoKSYmKGw9aCk7dmFyIG49bmV3IGVyKGwpO2ZyKG4sMSk7aWYobi52YWx1ZSE9PTApe3ZhciBwLHE9bi5nZXQoKSxyPVJlZ0V4cCgiKF58Wz8mXSlnYWY9W14mXSooJnwkKSIpO3A9ci50ZXN0KGcpP2cucmVwbGFjZShyLCIkMWdhZj0iK3ErIiQyIik6Zy5pbmRleE9mKCI/Iik+PTA/ZysiJmdhZj0iK3E6Z1swXT09PSIvInx8Zy5pbmRleE9mKCI6Ly8iKT49MD9nKyI/Z2FmPSIrCnE6Zy5sZW5ndGg+MD9nKyImZ2FmPSIrcToiZ2FmPSIrcTtmPWIuaW5kZXhPZigiPyIpPT09MD8iPyIrcDpwfWVsc2UgZj12b2lkIDA7QVEoZSxmfHxiLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7ZW5kcG9pbnQ6Njd9KSxkLGMuZW5kcG9pbnQ9PT0xNz92b2lkIDA6e2NyZWRlbnRpYWxzOiJvbWl0In0pfX19LERRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWZ1bmN0aW9uKGgpe2QucHVzaChoKyI9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS5CYVtoXSkpfTtkLnB1c2goInY9MiIpO2UoIl9nc2lkIik7ZSgiZ3RtIik7YS5CYS5fZ2VvJiZlKCJfZ2VvIik7dmFyIGY9Imh0dHBzOi8ve2dhNENvbGxlY3Rpb25TdWJkb21haW4ufWdvb2dsZS1hbmFseXRpY3MuY29tL2cvcy9jb2xsZWN0Ii5yZXBsYWNlKCJ7Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59IiwoYnx8Ind3dyIpKyIuIiksZz1kLmpvaW4oIiYiKTt6UShmLGcse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwKIiIsZW5kcG9pbnQ6NjIsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6ZisiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjYyfSxxYjpjfSl9LEVRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0iaHR0cHM6Ly97Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59YW5hbHl0aWNzLmdvb2dsZS5jb20vZy9zL2NvbGxlY3QiLnJlcGxhY2UoIntnYTRDb2xsZWN0aW9uU3ViZG9tYWluLn0iLGI/YisiLiI6IiIpLGU9W10sZj1mdW5jdGlvbihoKXtlLnB1c2goaCsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EuQmFbaF0pKX07ZigiX2dzaWQiKTtmKCJndG0iKTthLkJhLl9nZW8mJmYoIl9nZW8iKTt2YXIgZz1lLmpvaW4oIiYiKTt6UShkLGcse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDoxOCxldmVudElkOmEuZXZlbnRJZCxwcmlvcml0eUlkOmEucHJpb3JpdHlJZH0pOwpNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6ZCsiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjE4fSxxYjpjfSl9LEZRPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtjJiZiLnB1c2goInRhZ19leHA9IitjKTtiLnB1c2goIno9IitEYigpKTtpZighZSl7dmFyIGc9ZCYmU2IoZCwiZ29vZ2xlLiIpJiZkIT09Imdvb2dsZS5jb20iPyJodHRwczovL3d3dy4lL2Fkcy9nYS1hdWRpZW5jZXM/dj0xJnQ9c3Imc2xmX3JkPTEmX3I9NCYiLnJlcGxhY2UoIiUiLGQpOnZvaWQgMDtpZihnKXt2YXIgaD1nK2Iuam9pbigiJiIpO1huKHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6NDcsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9LGgpO01sKHt0YXJnZXRJZDpTdHJpbmcoYS5CYS50aWQpLHJlcXVlc3Q6e3VybDpoLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6NDd9LHFiOmZ9KX19fSxHUT0KZnVuY3Rpb24oYSxiLGMsZCl7YyYmYi5wdXNoKCJ0YWdfZXhwPSIrYyk7elEoImh0dHBzOi8vc3RhdHMuZy5kb3VibGVjbGljay5uZXQvZy9jb2xsZWN0Iiwidj0yJiIrYi5qb2luKCImIikse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDoxOSxldmVudElkOmEuZXZlbnRJZCxwcmlvcml0eUlkOmEucHJpb3JpdHlJZH0pO01sKHt0YXJnZXRJZDpTdHJpbmcoYS5CYS50aWQpLHJlcXVlc3Q6e3VybDoiaHR0cHM6Ly9zdGF0cy5nLmRvdWJsZWNsaWNrLm5ldC9nL2NvbGxlY3Q/dj0yJiIrYi5qb2luKCImIikscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDoxOX0scWI6ZH0pfSxIUT1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGModil7cS5wdXNoKHYrIj0iK2VuY29kZVVSSUNvbXBvbmVudCgiIithLkJhW3ZdKSl9dmFyIGQ9Yi54dCxlPWIuQnQsZj1iLkF0LGc9Yi56dCxoPWIuWnIsbD1iLkNzLG49Yi5QcixwPWIuR3Q7aWYoZHx8ZXx8Znx8Zyl7dmFyIHE9CltdO2EuQmEuX25nJiZjKCJfbmciKTthLkJhLm5ncyYmYygibmdzIik7YS5CYS5pYnQmJmMoImlidCIpO2MoInRpZCIpO2MoImNpZCIpO2MoImd0bSIpO2Zvcih2YXIgcj1tKE9GKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZTthLkJhW3VdIT1udWxsJiZjKHUpfXEucHVzaCgiYWlwPTEiKTthLnZlLnVpZCYmcS5wdXNoKCJ1aWQ9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS52ZS51aWQpKTtjKCJkbWEiKTthLkJhLmRtYV9jcHMhPW51bGwmJmMoImRtYV9jcHMiKTthLkJhLmdjcyE9bnVsbCYmYygiZ2NzIik7YygiZ2NkIik7YS5CYS5ucGEhPW51bGwmJmMoIm5wYSIpO2EuQmEuZnJtIT1udWxsJiZjKCJmcm0iKTtkJiZHUShhLHEuc2xpY2UoKSxwLGIucWIpO2UmJkZRKGEscS5zbGljZSgpLHAsaCxsLGIucWIpO2YmJkVRKGEsbixiLnFiKTtnJiZEUShhLG4sYi5xYil9fSxJUT1mdW5jdGlvbigpe3RoaXMuUj0xO3RoaXMuWj17fTt0aGlzLks9LTE7dGhpcy5IPQpuZXcgd2d9O0lRLnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPW5ldyBzUShhLHRoaXMuWixiKSxlPXtldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGY9eVAoYSksZyxoO2YmJnRoaXMuSC5SKGQpfHx0aGlzLmZsdXNoKCk7dmFyIGw9ZiYmdGhpcy5ILmFkZChkKTtpZihsKXtpZih0aGlzLks8MCl7dmFyIG49QSxwPW4uc2V0VGltZW91dCxxO2JrKFpLKGEpKT9KUT8oSlE9ITEscT1LUSk6cT1MUTpxPTVFMzt0aGlzLks9cC5jYWxsKG4sZnVuY3Rpb24oKXtjLmZsdXNoKCl9LHEpfX1lbHNle3ZhciByPXpnKGQsdGhpcy5SKyspLHQ9ci5wYXJhbXMsdT1yLmJvZHk7Zz10O2g9dTtGeSgzLGEuZXZlbnROYW1lKTtDUShkLmJhc2VVcmwsdCx1LGQuTix7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmQuZW5kcG9pbnQsZXZlbnRJZDpkLmV2ZW50SWQscHJpb3JpdHlJZDpkLnByaW9yaXR5SWR9KTsKdmFyIHY9UShhLEguSi5oZCkseD1RKGEsSC5KLnJnKSx5PVEoYSxILkouTmgpLHo9UShhLEguSi5NaCksQz1PKGEuTSxGLkQudWkpIT09ITEsRD1TdChhLk0pLEk9e3h0OnYsQnQ6eCxBdDp5LHp0OnosWnI6RW0oKSxtdjpDLGx2OkQsQ3M6QW0oKSxxYjplLE06YS5NLFByOkRtKCksR3Q6Q3AoYSl9O0hRKGQsSSl9Zm4uSCYmQXooYS5NLmV2ZW50SWQpO05sKGZ1bmN0aW9uKCl7aWYobCl7dmFyIEc9emcoZCksTj1HLmJvZHk7Zz1HLnBhcmFtcztoPU59cmV0dXJue3RhcmdldElkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQscmVxdWVzdDp7dXJsOmQuYmFzZVVybCsiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLHBvc3RCb2R5OmgsZW5kcG9pbnQ6ZC5lbmRwb2ludH0scWI6ZSxpc0JhdGNoZWQ6ITF9fSl9O0lRLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7WUsoYSkmJiF4UCgpP3RoaXMuZmEoYSk6dGhpcy5OKGEpfTtJUS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLkguZXZlbnRzLmxlbmd0aCl7dmFyIGE9CkJnKHRoaXMuSCx0aGlzLlIrKyk7Q1EodGhpcy5ILmJhc2VVcmwsYS5wYXJhbXMsYS5ib2R5LHRoaXMuSC5LLHtkZXN0aW5hdGlvbklkOnRoaXMuSC5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDp0aGlzLkguZW5kcG9pbnQsZXZlbnRJZDp0aGlzLkguWixwcmlvcml0eUlkOnRoaXMuSC5mYX0pO3RoaXMuSD1uZXcgd2c7dGhpcy5LPj0wJiYoQS5jbGVhclRpbWVvdXQodGhpcy5LKSx0aGlzLks9LTEpfX07SVEucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1ZSyhhKTtNKDU2OCkmJiFNKDU4NikmJlIoYSxGLkQuQmMpPT09ImEiJiYoYz1jdyhjKSk7aWYoRXcoYykpe3ZhciBkPXN3KGMpO2Q/ZC50aGVuKGZ1bmN0aW9uKGYpe2IuTihhLGYpfSxmdW5jdGlvbigpe2IuTihhKX0pOnRoaXMuTihhKX1lbHNle3ZhciBlPUR3KGMpO3RoaXMuTihhLGUpfX07dmFyIEtRPU5mKDI0LDUwMCksTFE9TmYoNTYsNUUzKSxKUT0hMDt2YXIgTVE9ZnVuY3Rpb24oYSl7dmFyIGI9U3QoYS5NKTtPKGEuTSxGLkQuV2IpPT09ITAmJihiPSExKTtWKGEsSC5KLndkLGIpfTsKdmFyIE5RPWZ1bmN0aW9uKGEsYixjKXtjPT09dm9pZCAwJiYoYz17fSk7aWYoYj09bnVsbClyZXR1cm4gYztpZih0eXBlb2YgYj09PSJvYmplY3QiKWZvcih2YXIgZD1tKE9iamVjdC5rZXlzKGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtOUShhKyIuIitmLGJbZl0sYyl9ZWxzZSBjW2FdPWI7cmV0dXJuIGN9LE9RPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YltlXT0hIVhvKGUpfXJldHVybiBifSxRUT1mdW5jdGlvbihhLGIpe3ZhciBjPVBRLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hWG8oZSl9KTtpZihjLmxlbmd0aCl7dmFyIGQ9T1EoYyk7JG8oYyxmdW5jdGlvbigpe2Zvcih2YXIgZT1PUShjKSxmPVtdLGc9bShjKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTshZFtsXSYmZVtsXSYmZi5wdXNoKGwpO2VbbF0mJgooZFtsXT0hMCl9aWYoZi5sZW5ndGgpe1YoYixILkouR2gsITApO3ZhciBuPWYubWFwKGZ1bmN0aW9uKHApe3JldHVybiBMb1twXX0pLmpvaW4oIi4iKTtuJiZXSyhiLCJnY3V0IixuKTtNUShiKTthKGIpfX0pfX0sUlE9ZnVuY3Rpb24oYSl7UihhLEYuRC5XYykmJiFiayhaSyhhKSkmJlUoYSxGLkQuV2MpfSxTUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJldLKGEsIm5hdnQiLHFkKCkpfSxUUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJldLKGEsImxwYyIsaXIoKSl9LFVRPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9TyhhLk0sRi5ELldiKSxjO2I9PT0hMCYmKGM9IjEiKTtiPT09ITEmJihjPSIwIik7YyYmV0soYSwicmRwIixjKX19LFZRPWZ1bmN0aW9uKGEsYil7aWYoYmsoWksoYikpKXt2YXIgYz1RKGIsSC5KLm1nKTsoYi5ldmVudE5hbWU9PT0icGFnZV92aWV3Inx8YykmJlFRKGEsYil9fSxXUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkmJmEuZXZlbnROYW1lPT09Ri5ELnlmJiYKUShhLEguSi5HaCkpe3ZhciBiPVIoYSxGLkQueGkpO2ImJihXSyhhLCJnY3V0IixiKSxXSyhhLCJzeW4iLDEpKX19LFhRPWZ1bmN0aW9uKGEsYixjKXtpZihhPT09YilyZXR1cm4gV2ooKSYmU2IoYysiLyIsWGooKSsiLyIpPyI3IjoiMSI7aWYoVGIoYSwiLiIrYikpcmV0dXJuIjIiO2lmKFRiKGIsIi4iK2EpKXJldHVybiIzIjt2YXIgZD1hLnNwbGl0KCIuIiksZT1iLnNwbGl0KCIuIiksZj1mdW5jdGlvbihnKXtpZihkLmxlbmd0aDxnfHxlLmxlbmd0aDxnKXJldHVybiExO2Zvcih2YXIgaD0xO2g8PWc7aCsrKWlmKGRbZC5sZW5ndGgtaF0hPT1lW2UubGVuZ3RoLWhdKXJldHVybiExO3JldHVybiEwfTtyZXR1cm4gZigzKT8iNiI6ZigyKT8iNSI6IjQifSxZUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPWVrKGEuTSk7aWYoYil7dmFyIGM9WWooYiwiLyIpLGQ9UmooYyksZT1OaihkLCJob3N0IiksZj1OaihBLmxvY2F0aW9uLCJob3N0Iik7aWYoZSYmZil7dmFyIGc9TmooZCwKInBhdGgiKTthLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEse3NzdGQ6WFEoZSxmLGcpfSl9fX19LFpRPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmVihhLEguSi5KYSwhMSl9LCRRPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmKFEoYSxILkouSmEpJiZXSyhhLCJzcCIsMSksUShhLEguSi5JcSkmJldLKGEsInN5biIsMSksUShhLEguSi5QYykmJihXSyhhLCJlbV9ldmVudCIsMSksV0soYSwic3AiLDEpKSl9LGFSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9JGsoMjUpO2ImJldLKGEsInRmdCIsTnVtYmVyKGIpKX19LGJSPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZSl7dmFyIGY9TlEoRi5ELkFjLGUpO0diKGYsZnVuY3Rpb24oZyxoKXtVKGEsZyxoKX0pfWlmKGJrKFpLKGEpKSl7dmFyIGM9ZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSk/MTowO1dLKGEsInVkZSIsYyk7dmFyIGQ9TyhhLk0sRi5ELkFjKTtkIT09dm9pZCAwPyhadihkKSxiKGQpLFUoYSxGLkQuQmMsImMiKSk6CmIoUShhLEguSi5ZYSkpO1YoYSxILkouWWEpfX0sY1I9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXt2YXIgYj1WTSgpO2ImJldLKGEsInVzX3ByaXZhY3kiLGIpO3ZhciBjPUx0KCk7YyYmV0soYSwiZ2RwciIsYyk7dmFyIGQ9S3QoKTtkJiZXSyhhLCJnZHByX2NvbnNlbnQiLGQpO3ZhciBlPWtGLmdwcFN0cmluZztlJiZXSyhhLCJncHAiLGUpO3ZhciBmPWtGLkg7ZiYmV0soYSwiZ3BwX3NpZCIsZil9fSxkUj1mdW5jdGlvbihhKXtiayhaSyhhKSkmJkVsKCkmJk8oYS5NLEYuRC5tYikmJldLKGEsImFkciIsMSl9LGVSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9RG0oKTtiJiZXSyhhLCJnY3N1YiIsYil9fSxmUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe08oYS5NLEYuRC5TYyx2b2lkIDAsNCk9PT0hMSYmV0soYSwibmdzIiwxKTtBbSgpJiZXSyhhLCJnYV9yZCIsMSk7VksoKXx8V0soYSwibmdzdCIsMSk7dmFyIGI9RW0oKTtiJiZXSyhhLCJldGxkIixiKX19LGdSPQpmdW5jdGlvbihhKXt9LGhSPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmRWwoKSYmV0soYSwicm5kIixRTSgpKX0sUFE9W0YuRC5rYSxGLkQubWEsRi5ELlhhXTsKdmFyIGlSPWZ1bmN0aW9uKGEsYil7dmFyIGM7YTp7aWYoIVEoYSxILkouRmMpKXt2YXIgZD1UUChhKTtpZihkKXtpZihSUChkLGEpKXtjPWQ7YnJlYWsgYX1QKDI1KTthLmlzQWJvcnRlZD0hMH19Yz12b2lkIDB9dmFyIGU9YztyZXR1cm57Y2xpZW50SWQ6RVAoYSxiKSx6YjplfX0salI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1RbyhPKGEuTSxGLkQuS2IpKTtpZihPKGEuTSxGLkQuWmMpJiZPKGEuTSxGLkQuWWMpKWY/Q1AoYSxmLDEpOihQKDEyNyksYS5pc0Fib3J0ZWQ9ITApO2Vsc2V7dmFyIGc9Zj8xOjg7VihhLEguSi5IaCwhMSk7Znx8KGY9RlAoYSksZz0zKTtmfHwoZj1iLGc9NSk7aWYoIWYpe3ZhciBoPVhvKEYuRC5yYSksbD16UCgpO2Y9IWwuZnJvbV9jb29raWV8fGg/bC52aWQ6dm9pZCAwO2c9Nn1mP2Y9IiIrZjooZj1BdigpLGc9NyxWKGEsSC5KLm5nLCEwKSxWKGEsSC5KLkhoLCEwKSk7Q1AoYSxmLGcpfVIoYSxGLkQuS2IpO2lmKCFRKGEsSC5KLkZjKSl7dmFyIG49ClEoYSxILkouRWIpLHA9TWF0aC5mbG9vcihuLzFFMykscT12b2lkIDA7UShhLEguSi5IaCl8fChxPVNQKGEpfHxjKTt2YXIgcj1JYihPKGEuTSxGLkQueWgsMzApKTtyPU1hdGgubWluKDQ3NSxyKTtyPU1hdGgubWF4KDUscik7dmFyIHQ9SWIoTyhhLk0sRi5ELlBpLDFFNCkpLHU9TFAocSk7VihhLEguSi5uZywhMSk7VihhLEguSi5UZSwhMSk7VihhLEguSi5wZywwKTt1JiZ1LmomJlYoYSxILkoucGcsTWF0aC5tYXgoMCx1LmotTWF0aC5tYXgoMCxwLXUudCkpKTt2YXIgdj0hMTtpZighdSl7VihhLEguSi5uZywhMCk7dj0hMDt2YXIgeD17fTt1PSh4LnM9U3RyaW5nKHApLHgubz0xLHguZz0hMSx4LnQ9cCx4Lmw9ITEseC5oPXZvaWQgMCx4KX1wPnUudCtyKjYwJiYodj0hMCx1LnM9U3RyaW5nKHApLHUubysrLHUuZz0hMSx1Lmg9dm9pZCAwKTtpZih2KVYoYSxILkouVGUsITApLGQubHMoYSk7ZWxzZSBpZihkLlhyKCk+dHx8YS5ldmVudE5hbWU9PT1GLkQuc2MpdS5nPSEwO1EoYSxILkoubGcpPwpPKGEuTSxGLkQuZmIpP3UubD0hMDp1Lmw9ITE6dS5sPSExO3ZhciB5PXUuaDtpZihRKGEsSC5KLmxnKXx8YmsoWksoYSkpKXt2YXIgej1PKGEuTSxGLkQub2gpLEM9ej8xOjg7enx8KHo9eSxDPTQpO3p8fCh6PXp2KCksQz03KTt2YXIgRD16LnRvU3RyaW5nKCksST1DLEc9UShhLEguSi50bCk7aWYoRz09PXZvaWQgMHx8STw9RylVKGEsRi5ELm9oLEQpLFYoYSxILkoudGwsSSl9ZT8oYS5jb3B5VG9IaXREYXRhKEYuRC54Yyx1LnMpLGEuY29weVRvSGl0RGF0YShGLkQuQWgsdS5vKSxhLmNvcHlUb0hpdERhdGEoRi5ELnpoLHUuZz8xOjApKTooVShhLEYuRC54Yyx1LnMpLFUoYSxGLkQuQWgsdS5vKSxVKGEsRi5ELnpoLHUuZz8xOjApKTtWKGEsSC5KLnJtLHUubD8xOjApO1dqKCkmJlYoYSxILkoub2csdS5kfHxjYygpKX19Owp2YXIga1I9ZnVuY3Rpb24oYSl7dmFyIGI9YS5pbmRleE9mKCI/IiksYz1iPT09LTE/YTphLnN1YnN0cmluZygwLGIpLGQ9S2ooYyk7ZCYmKGM9ZCk7cmV0dXJuIGI9PT0tMT9jOiIiK2MrYS5zdWJzdHJpbmcoYil9LGxSPWZ1bmN0aW9uKGEpe2lmKCFPKGEuTSxGLkQuWWMpfHwhTyhhLk0sRi5ELlpjKSl7dmFyIGI9YS5jb3B5VG9IaXREYXRhLGM9Ri5ELnphLGQ9IiIsZT1CLmxvY2F0aW9uO2lmKGUpe3ZhciBmPWUucGF0aG5hbWV8fCIiO2YuY2hhckF0KDApIT09Ii8iJiYoZj0iLyIrZik7dmFyIGc9ZS5zZWFyY2h8fCIiO2lmKGdbMF09PT0iPyIpZm9yKHZhciBoPWcuc3Vic3RyaW5nKDEpLnNwbGl0KCImIiksbD0wO2w8aC5sZW5ndGg7KytsKXt2YXIgbj1oW2xdLnNwbGl0KCI9Iik7biYmbi5sZW5ndGg9PT0yJiZuWzBdPT09IndicmFpZCImJihnPWcucmVwbGFjZSgvKFs/Jl0pd2JyYWlkPVteJl0rLywiJDF3YnJhaWQ9IiskYihuWzFdKSkpfWQ9ZS5wcm90b2NvbCsiLy8iK2UuaG9zdG5hbWUrCmYrZ31iLmNhbGwoYSxjLGQsa1IpO3ZhciBwPWEuY29weVRvSGl0RGF0YSxxPUYuRC5VYSxyPXVBKCJndG0uZ3RhZ1JlZmVycmVyLiIrYS50YXJnZXQuZGVzdGluYXRpb25JZCksdD1CLnJlZmVycmVyO3AuY2FsbChhLHEsKHI/IiIrcjp0KXx8dm9pZCAwLGtSKTthLmNvcHlUb0hpdERhdGEoRi5ELk1iLEIudGl0bGUpO2EuY29weVRvSGl0RGF0YShGLkQudGIsKEhjLmxhbmd1YWdlfHwiIikudG9Mb3dlckNhc2UoKSk7dmFyIHU9cUkoKTthLmNvcHlUb0hpdERhdGEoRi5ELmJkLHUud2lkdGgrIngiK3UuaGVpZ2h0KTthLmNvcHlUb0hpdERhdGEoRi5ELllmLHZvaWQgMCxrUik7VE0oKSYmYS5jb3B5VG9IaXREYXRhKEYuRC5QZCwiMSIpfX07dmFyIG5SPWZ1bmN0aW9uKGEpe3ZhciBiPXhDKGEuTSksYz1mdW5jdGlvbihkLGUpe21SW2RdJiZVKGEsZCxlKX07Q2QoYltGLkQuS2ZdKT9HYihiW0YuRC5LZl0sZnVuY3Rpb24oZCxlKXtjKChGLkQuS2YrIl8iK2QpLnRvTG93ZXJDYXNlKCksZSl9KTpHYihiLGMpfSxvUj17fSxtUj0ob1JbRi5ELkdmXT0xLG9SW0YuRC5IZl09MSxvUltGLkQuSWZdPTEsb1JbRi5ELkpmXT0xLG9SW0YuRC5MZl09MSxvUltGLkQuTWZdPTEsb1IpO3ZhciBwUj1mdW5jdGlvbihhKXtpZighYmsoWksoYSkpJiZRKGEsSC5KLm1nKSYmWG8oRi5ELmthKSYmZEkoYSwiZ2E0X2Fkc19saW5rZWQiLCExKSl7dmFyIGI9TEsoYSksYz1IcihiLnByZWZpeCksZD1ScyhjKTtVKGEsRi5ELkJlLGQuRWcpO1UoYSxGLkQuRGUsZC5XaCk7VShhLEYuRC5DZSxkLlVoKX19O3ZhciBxUj1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpO2ImJklQKEouVS54bik7UShhLEguSi5QYykmJklQKEouVS5Oayk7dmFyIGM9eWsoemsoKSk7KGJ8fE1rKGMpfHxjJiZjLnBhcmVudCYmYy5jb250ZXh0JiZjLmNvbnRleHQuc291cmNlPT09NSkmJklQKEouVS5mbik7UShhLEguSi5jaikmJklQKEouVS5JbSk7UShhLEguSi5iaikmJklQKEouVS5IbSl9O3ZhciByUj1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLlZpKXx8bmV3IGVyO1EoYSxILkouYmopJiZRKGEsSC5KLmNqKSYmZnIoYiwyKTtWKGEsSC5KLlZpLGIpfTtmdW5jdGlvbiBzUihhKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1PKGEuTSxGLkQuV2QpO2ImJihLQyhiLGZ1bmN0aW9uKCl7fSksVShhLEYuRC5XZCxiKSl9O3ZhciB1Uj1mdW5jdGlvbihhKXtpZih0Ui5Nci5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKS5pbmRleE9mKGEuZXZlbnROYW1lKT49MClhLmlzQWJvcnRlZD0hMDtlbHNle3ZhciBiPVhLKGEpO2ImJmIuYmxhY2tsaXN0ZWQmJihhLmlzQWJvcnRlZD0hMCl9fSx0Uj17TXI6TGYoMzEpfTtmdW5jdGlvbiB2UihhKXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4hIWMmJmMuY29udmVyc2lvbn07VihhLEguSi5tZyxiKFhLKGEpKSk7UShhLEguSi5uZykmJlYoYSxILkouWW0sYihYSyhhLCJmaXJzdF92aXNpdCIpKSk7UShhLEguSi5UZSkmJlYoYSxILkouYm4sYihYSyhhLCJzZXNzaW9uX3N0YXJ0IikpKX07dmFyIHdSPWZ1bmN0aW9uKGEpe0ZvLmhhc093blByb3BlcnR5KGEuZXZlbnROYW1lKSYmKFYoYSxILkouV20sITApLGEuY29weVRvSGl0RGF0YShGLkQuSGEpLGEuY29weVRvSGl0RGF0YShGLkQuZWIpKX07dmFyIHhSPWZ1bmN0aW9uKGEpe1EoYSxILkouYmUpP1YoYSxILkoubGcsITEpOmRJKGEsImNjZF9hZGRfZWNfc3RpdGNoaW5nIiwhMSkmJlYoYSxILkoubGcsITApfTt2YXIgeVI9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5wZyk7Yj1ifHwwO3ZhciBjPSEhUShhLEguSi5zYSksZD1iPT09MHx8YztWKGEsSC5KLmVqLGQpO2QmJlYoYSxILkoucGcsNjApfTt2YXIgQVI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9U3RyaW5nKHpSLmNvb2tpZSkuc3BsaXQoIjsiKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0uc3BsaXQoIj0iKSxmPWVbMF0udHJpbSgpO2lmKGYmJmEoZikpe3ZhciBnPWUuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtnJiYoZz1kZWNvZGVVUklDb21wb25lbnQoZykpO3ZhciBoPXZvaWQgMCxsPXZvaWQgMDsoKGg9YilbbD1mXXx8KGhbbF09W10pKS5wdXNoKGcpfX1yZXR1cm4gYn07dmFyIEJSPXdpbmRvdyx6Uj1kb2N1bWVudCxDUj1mdW5jdGlvbihhKXt2YXIgYj1CUi5fZ2FVc2VyUHJlZnM7aWYoYiYmYi5pb28mJmIuaW9vKCl8fHpSLmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtZ29vZ2xlLWFuYWx5dGljcy1vcHQtb3V0Iil8fGEmJkJSWyJnYS1kaXNhYmxlLSIrYV09PT0hMClyZXR1cm4hMDt0cnl7dmFyIGM9QlIuZXh0ZXJuYWw7aWYoYyYmYy5fZ2FVc2VyUHJlZnMmJmMuX2dhVXNlclByZWZzPT0ib28iKXJldHVybiEwfWNhdGNoKGYpe31mb3IodmFyIGQ9QVIoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0iQU1QX1RPS0VOIn0pLkFNUF9UT0tFTnx8W10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGRbZV09PSIkT1BUX09VVCIpcmV0dXJuITA7cmV0dXJuIHpSLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIik/ITA6ITF9O3ZhciBEUj1mdW5jdGlvbihhKXtpZihDUihhLnRhcmdldC5kZXN0aW5hdGlvbklkKSlQKDI4KSxhLmlzQWJvcnRlZD0hMDtlbHNle3ZhciBiPXhrKCk7aWYoYiYmQXJyYXkuaXNBcnJheShiLmRlc3RpbmF0aW9ucykpZm9yKHZhciBjPTA7YzxiLmRlc3RpbmF0aW9ucy5sZW5ndGg7YysrKWlmKENSKGIuZGVzdGluYXRpb25zW2NdKSl7UCgxMjUpO2EuaXNBYm9ydGVkPSEwO2JyZWFrfX19O3ZhciBFUj1mdW5jdGlvbihhKXt2YXIgYj1CLmxvY2F0aW9uLnByb3RvY29sO2IhPT0iaHR0cDoiJiZiIT09Imh0dHBzOiImJihQKDI5KSxhLmlzQWJvcnRlZD0hMCl9O3ZhciBGUj1mdW5jdGlvbihhKXtIYyYmSGMubG9hZFB1cnBvc2U9PT0icHJldmlldyImJihQKDMwKSxhLmlzQWJvcnRlZD0hMCl9O3ZhciBHUj1mdW5jdGlvbihhLGIpe2IuVGomJihWKGEsSC5KLnNhLCEwKSxiLlRqPSExLFdqKCkmJlYoYSxILkoub2csY2MoKSkpfTt2YXIgSFI9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihjLGQpe0JvW2NdfHxkPT09dm9pZCAwfHxVKGEsYyxkKX1NKDU1MCkmJkdiKGEuTS5XYSxiKTtHYihhLk0uaGIsYik7R2IoYS5NLkVhLGIpfTt2YXIgSVI9ZnVuY3Rpb24oYSl7YS5ldmVudE5hbWU9PT1GLkQud2EmJihPKGEuTSxGLkQuVGQsITApPyhhLk0uRWFbRi5ELk9hXSYmKE0oNTUwKSYmKGEuTS5XYVtGLkQuT2FdPWEuTS5FYVtGLkQuT2FdKSxhLk0uaGJbRi5ELk9hXT1hLk0uRWFbRi5ELk9hXSxhLk0uRWFbRi5ELk9hXT12b2lkIDAsVShhLEYuRC5PYSkpLGEuZXZlbnROYW1lPUYuRC5zYyk6YS5pc0Fib3J0ZWQ9ITApfTsKdmFyIEpSPWZ1bmN0aW9uKGEpe2lmKE0oMTMyKSl7dmFyIGI9WksoYSk7aWYoYmsoYikpaWYoY2soYikpY2soWksoYSkpJiZhLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEseyIzcGQiOiIxIn0pO2Vsc2UgaWYoIShOYygiOyB3diIpfHxOYygiRkJBTiIpfHxOYygiRkJBViIpfHxQYygpKSYmWG8oRi5ELnJhKSl7VihhLEguSi5kbiwhMCk7YmsoWksoYSkpJiZXSyhhLCJzd19leHAiLDEpO2E6e2lmKCFNKDEzMil8fCFiayhaSyhhKSl8fGNrKFpLKGEpKSlicmVhayBhO2I6e3ZhciBjPXtvdDpZaihlayhhLk0pLCIvXy9zZXJ2aWNlX3dvcmtlciIpfSxkO2Q9KGM9PT12b2lkIDA/e306Yykub3Q7dmFyIGU9aUwoZCk7aWYoZT09PW51bGx8fCFiZygiaW50ZXJuYWxfc3dfYWxsb3dlZCIsIiIpfHxqTChlLm9yaWdpbikpYnJlYWsgYjsKaWYoIUljKCkpe2dMKCkuSyh2b2lkIDAsdm9pZCAwLDYpO2JyZWFrIGJ9dmFyIGY9bmV3IGtMKGUpO29tKGptLmJhLk9oLHt9KVtlLm9yaWdpbl09Zjt9fX19fTt2YXIgTFI9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5PbCk7TyhhLk0sRi5ELnhoKSYmKFUoYSxGLkQueGgsITApLGJrKFpLKGEpKXx8S1IoYSkpfSxLUj1mdW5jdGlvbihhKXt2YXIgYj1GLkQuYmQsYztjfHwoYz1mdW5jdGlvbigpe30pO1IoYSxiKSE9PXZvaWQgMCYmVShhLGIsYyhSKGEsYikpKX07dmFyIE1SPSJnY2xpZCBkY2xpZCBnY2xzcmMgd2JyYWlkIGdicmFpZCBnYWRfc291cmNlIGdhZF9jYW1wYWlnbmlkIHV0bV9zb3VyY2UgdXRtX21lZGl1bSB1dG1fY2FtcGFpZ24gdXRtX3Rlcm0gdXRtX2NvbnRlbnQgdXRtX2lkIi5zcGxpdCgiICIpO2Z1bmN0aW9uIE5SKCl7dmFyIGE9Qi5sb2NhdGlvbixiLGM9YT09bnVsbD92b2lkIDA6KGI9YS5zZWFyY2gpPT1udWxsP3ZvaWQgMDpiLnJlcGxhY2UoIj8iLCIiKSxkO2lmKGMpe2Zvcih2YXIgZT1bXSxmPUpqKGMsITApLGc9bShNUiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1mW2xdO2lmKG4pZm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07cSE9PXZvaWQgMCYmZS5wdXNoKHtuYW1lOmwsdmFsdWU6cX0pfX1kPWV9ZWxzZSBkPVtdO3JldHVybiBkfTt2YXIgT1I9ZnVuY3Rpb24oYSl7dmFyIGI9TSgyNjYpLGM9TSgyNjcpO2lmKGJ8fGMpe3ZhciBkPVIoYSxGLkQuemEpO2lmKGQmJmQuaW5kZXhPZigiPyIpPT09LTEpe3ZhciBlPU5SKCk7aWYoZS5sZW5ndGghPT0wJiYoYiYmSVAoSi5VLkdtKSxjKSl7SVAoSi5VLkZtKTt2YXIgZj1lLm1hcChmdW5jdGlvbihnKXtyZXR1cm4gZy5uYW1lKyI9IitnLnZhbHVlfSkuam9pbigiJiIpO1UoYSxGLkQuemEsZCsiPyIrZil9fX19O3ZhciBQUj1bRi5ELnJhLEYuRC5rYV0sUVI9W0YuRC5yYSxGLkQua2EsRi5ELm1hXTsKZnVuY3Rpb24gUlIoYSl7dmFyIGIsYz1NKDUwNikmJiFkSShhLCJjY2RfZ2FfYWRzX2lkc19vcHRfb3V0IiwhMSksZD0hIWRJKGEsImdvb2dsZV9uZyIsITEpLGU9WG8oYz9kP1FSOmZwOlBSKSxmO2Y9ZEkoYSxGLkQuVWYsTyhhLk0sRi5ELlVmKSl8fCEhZEkoYSwiZ29vZ2xlX25nIiwhMSk7Yj17aGY6YyxFczpkLEdvOmUsZmY6ZixMZzohIWRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSksYmk6QW0oKSxHajohVksoKSxGczpiayhaSyhhKSksRHM6ISFRKGEsSC5KLmJlKSxHczohIVEoYSxILkouVGUpLHVzOiEhTyhhLk0sRi5ELk5sKSxLczohIVEoYSxILkouZWopLHhnOk8oYS5NLEYuRC5TYyksbnI6TyhhLk0sRi5ELlNjLHZvaWQgMCw0KSxIczohIVEoYSxILkouRmMpfTtWKGEsSC5KLmNqLGIuZmYpO1YoYSxILkouYmosU1IoYikpO2IuaGYmJiFiLmZmJiZiLkxnJiZTUihiKSYmVShhLCJfJmlidCIsIjEiKTtTUihiKSYmYi5HbyYmKGIuaGY/Yi54ZyE9PSExfHxiLkxnOjEpJiZWKGEsCkguSi5ybiwhMCk7Yi5FcyYmIWIuYmkmJlUoYSxGLkQuTGUsMSk7KGIuaGY/Yi54ZzpiLm5yKT09PSExJiZVKGEsIl8mbmdzIiwiMSIpO1YoYSxILkouaGQsVFIoYikmJihiLkdzfHxiLnVzKSk7VihhLEguSi5yZyxUUihiKSYmYi5LcyYmIWIuYmkpfWZ1bmN0aW9uIFNSKGEpe3JldHVybiBhLmhmPyhhLkxnfHxhLmZmKSYmIWEuYmkmJiFhLkdqOmEuZmYmJmEueGchPT0hMSYmIWEuR2omJiFhLmJpfWZ1bmN0aW9uIFRSKGEpe2lmKGEuSHMpcmV0dXJuITE7aWYoYS5oZil7aWYoIWEuZmYmJiFhLkxnKXJldHVybiExfWVsc2UgaWYoIWEuZmYpcmV0dXJuITE7cmV0dXJuIGEuRnN8fGEuRHN8fGEuR2p8fChhLmhmP2EueGc9PT0hMSYmIWEuTGc6YS54Zz09PSExKXx8IWEuR28/ITE6ITB9O3ZhciBVUj1mdW5jdGlvbihhKXtzTCgpJiZVKGEsRi5ELkZlLCIxIil9O3ZhciBWUj1mdW5jdGlvbihhKXt2YXIgYj17cHJlZml4OlN0cmluZyhPKGEuTSxGLkQubmIsIiIpKSxwYXRoOlN0cmluZyhPKGEuTSxGLkQudmMsIi8iKSksZmxhZ3M6U3RyaW5nKE8oYS5NLEYuRC5UYiwiIikpLGRvbWFpbjpTdHJpbmcoTyhhLk0sRi5ELkxiLCJhdXRvIikpLHBkOk51bWJlcihPKGEuTSxGLkQuQ2IsNjMwNzJFMykpfTtWKGEsSC5KLkdhLGIpfTt2YXIgV1I9ZnVuY3Rpb24oYSl7aWYoTSg0MzUpfHxNKDU1Mykpe3ZhciBiPURtKCk7YiYmVihhLEguSi5BcSxiKX19O3ZhciBZUj1mdW5jdGlvbihhKXthLmNvcHlUb0hpdERhdGEoRi5ELlJpKTtmb3IodmFyIGI9TyhhLk0sRi5ELlJsKXx8W10sYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2lmKGQucnVsZV9yZXN1bHQpe2EuY29weVRvSGl0RGF0YShGLkQuUmksZC50cmFmZmljX3R5cGUpO0lQKEouVS5Fbik7YnJlYWt9fX07dmFyIFpSPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSkmJmEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1PKGEuTSxGLkQudWMpIT09ITE7aWYoYil7dmFyIGM9TEsoYSk7Yy5wZCYmKGMucGQ9TWF0aC5taW4oYy5wZCw3Nzc2RTMpKTtQSyh7VG46YixtbzpPbyhPKGEuTSxGLkQuRGIpKSxRbzohIU8oYS5NLEYuRC56YyksVW46Y30pfX19O3ZhciAkUj1mdW5jdGlvbihhKXtWKGEsSC5KLk1oLCExKTtWKGEsSC5KLk5oLCExKTtpZighRG0oKSYmV2ooKSYmIWJrKFpLKGEpKSYmIVEoYSxILkouYmUpJiZRKGEsSC5KLmVqKSl7dmFyIGI9UShhLEguSi5yZyk7UShhLEguSi5vZykmJihiP1YoYSxILkouTmgsITApOlYoYSxILkouTWgsITApKX19O3ZhciBhUz1mdW5jdGlvbihhKXtPKGEuTSxGLkQuemMpJiYoWG8oRi5ELnJhKXx8TyhhLk0sRi5ELktiKXx8VShhLEYuRC5abSwhMCkpO3ZhciBiO3ZhciBjO2M9Yz09PXZvaWQgMD8zOmM7dmFyIGQ9QS5sb2NhdGlvbi5ocmVmO2lmKGQpe3ZhciBlPVJqKGQpLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZj1JaihlLCJfZ2wiLCExLCEwKXx8IiI7Yj1mP1ZxKGYsYykhPT12b2lkIDA6ITF9ZWxzZSBiPSExO2ImJmJrKFpLKGEpKSYmV0soYSwiZ2x2IiwxKTtpZihhLmV2ZW50TmFtZSE9PUYuRC53YSlyZXR1cm57fTtPKGEuTSxGLkQuemMpJiZBcyhbImF3IiwiZGMiXSk7Q3MoWyJhdyIsImRjIl0pO3ZhciBnPSRQKGEpLGg9WlAoYSk7cmV0dXJuIE9iamVjdC5rZXlzKGcpLmxlbmd0aD9nOmh9O3ZhciBiUz1mdW5jdGlvbihhKXt2YXIgYj0hMDtiPWI9PT12b2lkIDA/ITE6YjtpZihNKDQyNSkmJiEocGwoKXx8YiYmUShhLEguSi5kail8fGEuZXZlbnROYW1lIT09Ri5ELndhfHxRKGEsSC5KLkZjKSkpe3ZhciBjPXt9LGQ9e30sZT17ZXZlbnRNZXRhZGF0YTpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEuTS5ldmVudE1ldGFkYXRhLChjW0guSi5GY109ITAsYyksYj97fTooZFtILkouRGNdPVguVi5LYSxkKSksbm9HdG1FdmVudDohMH0sZj1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLCJzdHJ1Y3R1cmVkX2RhdGEiLGEuTS5FYSk7bUQoZixhLk0uZXZlbnRJZCxlKX19Owp2YXIgZFM9ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fGNTLnRlc3QoYSl8fERvLmhhc093blByb3BlcnR5KGEpfSxjUz0vXihffGdhX3xnb29nbGVffGd0YWdcLnxmaXJlYmFzZV8pLiokLyxlUz1mdW5jdGlvbihhKXt0aGlzLnlhPWE7dGhpcy5IPXRoaXMuemI9dGhpcy5jbGllbnRJZD12b2lkIDA7dGhpcy5qYT10aGlzLlI9ITE7dGhpcy5MYT0wO3RoaXMuTj0hMTt0aGlzLlo9e1RqOiExfTt0aGlzLmZhPW5ldyBJUTt0aGlzLks9bmV3IEhQfTtrPWVTLnByb3RvdHlwZTtrLlpzPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLGU9YkModGhpcy55YSk7aWYoZSlpZihjLmV2ZW50TWV0YWRhdGFbSC5KLmFlXSYmYS5jaGFyQXQoMCk9PT0iXyIpYy5vbkZhaWx1cmUoKTtlbHNle2EhPT1GLkQud2EmJmEhPT1GLkQuSmImJmRTKGEpJiZQKDU4KTt2YXIgZj1uZXcgYUkoZSxhLGMpO1YoZixILkouRWIsYik7dmFyIGc9W0YuRC5yYV0saD1iayhaSyhmKSk7VihmLEguSi5kaixoKTtpZihkSShmLEYuRC5VZiwKTyhmLk0sRi5ELlVmKSl8fGgpZy5wdXNoKEYuRC5rYSksZy5wdXNoKEYuRC5tYSk7Rk0uZmEoZnVuY3Rpb24oKXticChmdW5jdGlvbigpe2QuYnQoZil9LGcpfSl9ZWxzZSBjLm9uRmFpbHVyZSgpfTtrLmJ0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dHJ5e0hNKGEpO2lmKGEuaXNBYm9ydGVkKXt0YigpO3JldHVybn1KTShhKTtEUihhKTt1UihhKTtFUihhKTtGUihhKTtJTShhKTt2YXIgYz17fTtlUShhLGMpO2lmKGEuaXNBYm9ydGVkKXthLk0ub25GYWlsdXJlKCk7dGIoKTtyZXR1cm59dGhpcy5IPWE7dmFyIGQ9Yy51cjtjLkhyPT09MCYmSVAoSi5VLm5sKTtkPT09MCYmSVAoSi5VLkxrKTtaTShhKTtWKGEsSC5KLnRnLGNvLmlhLnhkKTtWUihhKTtIUihhKTt0aGlzLkxxKGEpO3RoaXMuSy5LdChhKTtVKGEsRi5ELnppLGFsKDgsTkYpKTt4UihhKTtwTihhKTtaUihhKTtNUShhKTt0aGlzLkFvKGFTKGEpKTtiUyhhKTt2YXIgZT1hLmV2ZW50TmFtZT09PUYuRC53YTtlJiYodGhpcy5OPQohMCk7SVIoYSk7ZSYmIWEuaXNBYm9ydGVkJiZ0aGlzLkxhKys+MCYmSVAoSi5VLmhuKTtVTChhKTtqUihhLHRoaXMuY2xpZW50SWQsdGhpcy56Yix0aGlzLkssIXRoaXMuamEpO25SKGEpO2xSKGEpO09SKGEpO1hMKGEpO0dSKGEsdGhpcy5aKTt5UihhKTt2UihhKTt3UihhKTtZUihhKTthUShhKTtnUShhKTt3TShhKTtoUihhKTtZUShhKTtnUihhKTtmUihhKTtlUihhKTtkUihhKTtjUihhKTthUihhKTskUShhKTtXUShhKTtVUShhKTtUUShhKTtTUShhKTtiUShhKTtjUShhKTtPKGEuTSxGLkQueGgpJiYhYmsoWksoYSkpfHxHTShhKTtVUihhKTtXUihhKTtpTihhKTtWTChhKTtTTChhKTtsTihhKTtoTihhKTtYTShhLCExKTtzUihhKTtSUihhKTskUihhKTtOTShhKTtyUihhKTtwUihhKTtiUihhKTtaUShhKTtSUShhKTtxUihhKTshdGhpcy5OJiZRKGEsSC5KLlBjKSYmSVAoSi5VLnNsKTtKUChhKTtpZihNKDU3NSkpe2lmKGEuaXNBYm9ydGVkKXtpZighUShhLEguSi5TbykpYS5NLm9uRmFpbHVyZSgpOwp0YigpO3JldHVybn1pZihRKGEsSC5KLkphKSl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufX1lbHNlIGlmKFEoYSxILkouSmEpfHxhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuQW8oaVIoYSx0aGlzLmNsaWVudElkKSk7dGhpcy5qYT0hMDt0aGlzLkh0KGEpO0pSKGEpO1ZRKGZ1bmN0aW9uKGYpe2IuTW4oZil9LGEpO3RoaXMuSy5xaygpO0xSKGEpO2dOKGEpO1dMKGEpO1lNKGEpO2lmKGEuaXNBYm9ydGVkKXthLk0ub25GYWlsdXJlKCk7dGIoKTtyZXR1cm59dGhpcy5NbihhKTthLk0ub25TdWNjZXNzKCl9Y2F0Y2goZil7YS5NLm9uRmFpbHVyZSgpfXRiKCl9O2suTW49ZnVuY3Rpb24oYSl7dGhpcy5mYS5hZGQoYSl9O2suQW89ZnVuY3Rpb24oYSl7dmFyIGI9YS5jbGllbnRJZCxjPWEuemI7YiYmYyYmKHRoaXMuY2xpZW50SWQ9Yix0aGlzLnpiPWMpfTtrLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5mYS5mbHVzaCgpfTtrLkh0PWZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzO2lmKCF0aGlzLlIpe3ZhciBjPVhvKEYuRC5tYSksZD1YbyhGLkQucmEpOyRvKFtGLkQubWEsRi5ELnJhLEYuRC5rYV0sZnVuY3Rpb24oZSl7dmFyIGY7Zj0oZT09PXZvaWQgMD97fTplKS5jb25zZW50RXZlbnRJZDt2YXIgZz1YbyhGLkQubWEpLGg9WG8oRi5ELnJhKSxsPSExLG49e30scD17fTtpZihkIT09aCYmYi5IJiZiLnpiJiZiLmNsaWVudElkKXt2YXIgcT1iLmNsaWVudElkLHI7dmFyIHQ9TFAoYi56Yik7cj10P3QuaDp2b2lkIDA7aWYoaCl7dmFyIHU9RlAoYi5IKTtpZih1KXtiLmNsaWVudElkPXU7dmFyIHY9U1AoYi5IKTt2JiYoYi56Yj1QUCh2LGIuemIsYi5IKSl9ZWxzZSBEUChiLmNsaWVudElkLGIuSCksQVAoYi5jbGllbnRJZCwhMCk7UlAoYi56YixiLkgpO2w9ITA7bltGLkQuTmxdPXE7ciYmKG5bRi5ELmJxXT1yKX1lbHNlIGIuemI9dm9pZCAwLGIuY2xpZW50SWQ9dm9pZCAwLEEuZ2FHbG9iYWw9e319ZyYmIWMmJihsPSEwLHBbSC5KLkdoXT0hMCxuW0YuRC54aV09CkxvW0YuRC5tYV0pO2lmKGwpe3ZhciB4PXNDKGIueWEsRi5ELnlmLG4pO21EKHgsZiE9bnVsbD9mOmEuTS5ldmVudElkLHtldmVudE1ldGFkYXRhOnB9KX1kPWg7Yz1nO2IuWi5Uaj0hMH0pO3RoaXMuUj0hMH19O2suTHE9ZnVuY3Rpb24oYSl7YS5ldmVudE5hbWUhPT1GLkQuSmImJnRoaXMuSy5LcShhKX07dmFyIGdTPWZ1bmN0aW9uKGEpe2lmKCFmUyhhKSl7dmFyIGI9ITEsYz1mdW5jdGlvbigpeyFiJiZmUyhhKSYmKGI9ITAsYWQoQiwidmlzaWJpbGl0eWNoYW5nZSIsYyksYWQoQiwicHJlcmVuZGVyaW5nY2hhbmdlIixjKSxQKDU1KSl9OyRjKEIsInZpc2liaWxpdHljaGFuZ2UiLGMpOyRjKEIsInByZXJlbmRlcmluZ2NoYW5nZSIsYyk7UCg1NCl9fSxmUz1mdW5jdGlvbihhKXtpZigicHJlcmVuZGVyaW5nImluIEI/Qi5wcmVyZW5kZXJpbmc6Qi52aXNpYmlsaXR5U3RhdGU9PT0icHJlcmVuZGVyIilyZXR1cm4hMTthKCk7cmV0dXJuITB9O2Z1bmN0aW9uIGhTKGEpe2dTKGZ1bmN0aW9uKCl7dmFyIGI9YkMoYSk7aWYoYil7dmFyIGM9aVMoYiksZD1jby5pYS54ZCxlPVlDKCksZj1iQyhhLCEwKTtmJiZlLkgucmVnaXN0ZXIoZixjLGQsdm9pZCAwKX19KTt9ZnVuY3Rpb24gaVMoYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O3ZhciBjPW5ldyBlUyhhLmlkKSxkPWEucHJlZml4PT09Ik1DIjtiPWZ1bmN0aW9uKGUsZixnLGgpe2QmJihoLmV2ZW50TWV0YWRhdGFbSC5KLmJlXT0hMCk7Yy5acyhmLGcsaCl9O2pTKGEsYyk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGpTKGEsYil7dmFyIGM9Yi5LO2MuaHQoZnVuY3Rpb24oKXtaayg5LCEwKTtZQygpLmZsdXNoKCk7aWYoYy5ZaCgpPj0xRTMmJmtkKCkpe3ZhciBkPXt9LGU9e2V2ZW50SWQ6cmooKSxldmVudE1ldGFkYXRhOihkW0guSi5La109ITAsZCksZGVmZXJyYWJsZTohMH07WkMoRi5ELnlmLHt9LGEuaWQsZSl9Yi5mbHVzaCgpO2MuQ28oZnVuY3Rpb24oKXtaayg5LCExKTtjLkNvKCl9KX0pO312YXIga1M9Si5VLnFsLGxTPUouVS5ybDtmdW5jdGlvbiBtUyhhLGIpe3ZhciBjPXRrKCk7YyYmYy5pbmRleE9mKGIpPi0xJiYoYVtILkouQ2NdPSEwKX1mdW5jdGlvbiBvUyhhLGIsYyl7dmFyIGQ9dGhpczt9b1MuUD0iaW50ZXJuYWwuZ3RhZ0NvbmZpZyI7ZnVuY3Rpb24gcFMoYSxiLGMsZCl7dmFyIGU9dGhpczt9cFMuUD0iaW50ZXJuYWwuZ3RhZ0Rlc3RpbmF0aW9uQ29uZmlnIjsKZnVuY3Rpb24gclMoYSxiKXt9CnJTLnB1YmxpY05hbWU9Imd0YWdTZXQiO2Z1bmN0aW9uIHNTKCl7dmFyIGE9e307cmV0dXJuIGF9O2Z1bmN0aW9uIHRTKGEpe310Uy5QPSJpbnRlcm5hbC5pbml0aWFsaXplU2VydmljZVdvcmtlciI7ZnVuY3Rpb24gdVMoYSxiKXt9dVMucHVibGljTmFtZT0iaW5qZWN0SGlkZGVuSWZyYW1lIjtmdW5jdGlvbiB2UyhhLGIsYyxkLGUpe312Uy5QPSJpbnRlcm5hbC5pbmplY3RIdG1sIjt2YXIgQVM9e2RsOjEsaWQ6MX07CmZ1bmN0aW9uIEJTKGEsYixjLGQpe31CUy5wdWJsaWNOYW1lPSJpbmplY3RTY3JpcHQiO2Z1bmN0aW9uIENTKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI1Il07cmV0dXJuIGJ9Q1MuUD0iaW50ZXJuYWwuaXNBdXRvUGlpRWxpZ2libGUiO2Z1bmN0aW9uIERTKGEpe3ZhciBiPSEwO3JldHVybiBifURTLnB1YmxpY05hbWU9ImlzQ29uc2VudEdyYW50ZWQiO2Z1bmN0aW9uIEVTKGEpe3ZhciBiPSExO3JldHVybiBifUVTLlA9ImludGVybmFsLmlzRGVidWdNb2RlIjtmdW5jdGlvbiBGUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1GUy5QPSJpbnRlcm5hbC5pc0Rlc3RpbmF0aW9uSW5pdGlhbGl6ZWQiO2Z1bmN0aW9uIEdTKCl7cmV0dXJuIEJtKCl9R1MuUD0iaW50ZXJuYWwuaXNEbWFSZWdpb24iO2Z1bmN0aW9uIEhTKCl7cmV0dXJuIFVCKCl9SFMuUD0iaW50ZXJuYWwuaXNEb21SZWFkeSI7ZnVuY3Rpb24gSVMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9SVMuUD0iaW50ZXJuYWwuaXNFbnRpdHlJbmZyYXN0cnVjdHVyZSI7ZnVuY3Rpb24gSlMoYSl7dmFyIGI9ITE7aWYoIXFoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiXSxbYV0pO2I9TShhKTtyZXR1cm4gYn1KUy5QPSJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIjtmdW5jdGlvbiBLUygpe3ZhciBhPSExO3JldHVybiBhfUtTLlA9ImludGVybmFsLmlzRnBmZSI7ZnVuY3Rpb24gTFMoKXt2YXIgYT0hMTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTtyZXR1cm4gYX1PUy5QPSJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciI7ZnVuY3Rpb24gUFMoKXt2YXIgYT1RaChmdW5jdGlvbihiKXtYRih0aGlzKS5sb2coImVycm9yIixiKX0pO2EucHVibGljTmFtZT0iSlNPTiI7cmV0dXJuIGF9O2Z1bmN0aW9uIFFTKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYil9UVMuUD0iaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiO2Z1bmN0aW9uIFJTKCl7cmV0dXJuITF9CnZhciBTUz17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuITF9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7fX07ZnVuY3Rpb24gVFMoKXt9VFMucHVibGljTmFtZT0ibG9nVG9Db25zb2xlIjtmdW5jdGlvbiBVUyhhLGIpe2lmKCFsaChhKXx8IWVoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPWEsZD1UZChiLHRoaXMuVCksZT1ZQygpLGY9YkMoYywhMCk7ZiYmVEMoZS5ILGYsZCk7fVVTLlA9ImludGVybmFsLm1lcmdlUmVtb3RlQ29uZmlnIjtmdW5jdGlvbiBWUyhhLGIsYyl7Yz1jPT09dm9pZCAwPyEwOmM7dmFyIGQ9W107cmV0dXJuIFVkKGQpfVZTLlA9ImludGVybmFsLnBhcnNlQ29va2llVmFsdWVzRnJvbVN0cmluZyI7ZnVuY3Rpb24gV1MoYSl7dmFyIGI9dm9pZCAwO2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuO2EmJlNiKGEsIi8vIikmJihhPUIubG9jYXRpb24ucHJvdG9jb2wrYSk7aWYodHlwZW9mIFVSTD09PSJmdW5jdGlvbiIpe3ZhciBjO2E6e3ZhciBkO3RyeXtkPW5ldyBVUkwoYSl9Y2F0Y2goeCl7Yz12b2lkIDA7YnJlYWsgYX1mb3IodmFyIGU9e30sZj1BcnJheS5mcm9tKGQuc2VhcmNoUGFyYW1zKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ11bMF0sbD1mW2ddWzFdO2UuaGFzT3duUHJvcGVydHkoaCk/dHlwZW9mIGVbaF09PT0ic3RyaW5nIj9lW2hdPVtlW2hdLGxdOmVbaF0ucHVzaChsKTplW2hdPWx9Yz17aHJlZjpkLmhyZWYsb3JpZ2luOmQub3JpZ2luLHByb3RvY29sOmQucHJvdG9jb2wsdXNlcm5hbWU6ZC51c2VybmFtZSxwYXNzd29yZDpkLnBhc3N3b3JkLGhvc3Q6ZC5ob3N0LGhvc3RuYW1lOmQuaG9zdG5hbWUsCnBvcnQ6ZC5wb3J0LHBhdGhuYW1lOmQucGF0aG5hbWUsc2VhcmNoOmQuc2VhcmNoLHNlYXJjaFBhcmFtczplLGhhc2g6ZC5oYXNofX1yZXR1cm4gVWQoYyl9dmFyIG47dHJ5e249UmooYSl9Y2F0Y2goeCl7cmV0dXJufWlmKCFuLnByb3RvY29sfHwhbi5ob3N0KXJldHVybjt2YXIgcD17fTtpZihuLnNlYXJjaClmb3IodmFyIHE9bi5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikscj0wO3I8cS5sZW5ndGg7cisrKXt2YXIgdD1xW3JdLnNwbGl0KCI9IiksdT10WzBdLHY9S2oodC5zcGxpY2UoMSkuam9pbigiPSIpKXx8IiI7dj12LnJlcGxhY2UoL1wrL2csIiAiKTtwLmhhc093blByb3BlcnR5KHUpP3R5cGVvZiBwW3VdPT09InN0cmluZyI/cFt1XT1bcFt1XSx2XTpwW3VdLnB1c2godik6cFt1XT12fW4uc2VhcmNoUGFyYW1zPXA7bi5vcmlnaW49bi5wcm90b2NvbCsiLy8iK24uaG9zdDtuLnVzZXJuYW1lPSIiO24ucGFzc3dvcmQ9IiI7Yj1VZChuKTsKcmV0dXJuIGJ9V1MucHVibGljTmFtZT0icGFyc2VVcmwiO2Z1bmN0aW9uIFhTKGEpe2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYj1UZChhLHRoaXMuVCwxKS5yYigpLGM9e307RWQoYi5NLkVhLGMpO2JJKGIsYyk7dmFyIGQ9e307Y0koYixkKTtkW0guSi5Cbl09ITA7dmFyIGU9e2V2ZW50TWV0YWRhdGE6ZH0sZj1iLk0uZXZlbnRJZCxnPXNDKGIudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYi5ldmVudE5hbWUsYyk7bUQoZyxmLGUpO31YUy5QPSJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCI7ZnVuY3Rpb24gWVMoYSxiLGMpe3ZhciBkO3JldHVybiBkfVlTLlA9ImludGVybmFsLnB1c2hUb0RhdGFMYXllciI7ZnVuY3Rpb24gWlMoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9ITE7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1bdGhpcyxhXSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZC5wdXNoKFRkKGYudmFsdWUsdGhpcy5ULDEpKTt0cnl7TC5hcHBseShudWxsLGQpLGM9ITB9Y2F0Y2goZyl7cmV0dXJuITF9cmV0dXJuIGN9WlMucHVibGljTmFtZT0icXVlcnlQZXJtaXNzaW9uIjtmdW5jdGlvbiAkUyhhKXt2YXIgYj10aGlzO30kUy5QPSJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiI7ZnVuY3Rpb24gYVQoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWFULnB1YmxpY05hbWU9InJlYWRBbmFseXRpY3NTdG9yYWdlIjtmdW5jdGlvbiBiVCgpe3ZhciBhPSIiO3JldHVybiBhfWJULnB1YmxpY05hbWU9InJlYWRDaGFyYWN0ZXJTZXQiO2Z1bmN0aW9uIGNUKCl7cmV0dXJuIEUoMTkpfWNULlA9ImludGVybmFsLnJlYWREYXRhTGF5ZXJOYW1lIjtmdW5jdGlvbiBkVCgpe3ZhciBhPSIiO3JldHVybiBhfWRULnB1YmxpY05hbWU9InJlYWRUaXRsZSI7ZnVuY3Rpb24gZVQoYSxiKXt2YXIgYz10aGlzO2lmKCFsaChhKXx8IWhoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7TE0oYSxmdW5jdGlvbihkKXtiLmludm9rZShjLlQsVWQoZCxjLlQsMSkpfSk7fWVULlA9ImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siO2Z1bmN0aW9uIGZUKGEsYil7aWYoIWxoKGEpfHwhZWgoYikmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoQmgoWEYodGhpcykuUGIoKSkpcmV0dXJuITE7dmFyIGMsZCxlPWJDKGEsITApO2lmKCFlKXJldHVybiExO3N3aXRjaChlLnByZWZpeCl7Y2FzZSAiQVciOmM9dE47ZD1jby5pYS5jYjticmVhaztjYXNlICJEQyI6Yz1JTjtkPWNvLmlhLmNiO2JyZWFrO2Nhc2UgIkdGIjpjPU5OO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiSEEiOmM9UE47ZD1jby5pYS5nZDticmVhaztjYXNlICJVQSI6Yz1mTztkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIk1DIjpjPWlTKGUpO2Q9Y28uaWEueGQ7YnJlYWs7Y2FzZSAiRyI6cmV0dXJuIGhTKGEpLCEwO2RlZmF1bHQ6cmV0dXJuITF9dmFyIGY9YSwKZz1jLGg9ZCxsPVRkKGIsdGhpcy5ULDEpLG49WUMoKSxwPWJDKGYsITApO3AmJm4uSC5yZWdpc3RlcihwLGcsaCxsKTtyZXR1cm4hMH1mVC5QPSJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIjt2YXIgZ1Q9WyJldmVudCJdO2Z1bmN0aW9uIGhUKGEsYixjKXt9aFQuUD0iaW50ZXJuYWwucmVnaXN0ZXJHdGFnQ29tbWFuZExpc3RlbmVyIjtmdW5jdGlvbiBpVChhLGIpe3ZhciBjPSExO3JldHVybiBjfWlULlA9ImludGVybmFsLnJlbW92ZURhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIGpUKGEsYil7fQpqVC5QPSJpbnRlcm5hbC5yZW1vdmVGb3JtRGF0YSI7ZnVuY3Rpb24ga1QoKXt9a1QucHVibGljTmFtZT0icmVzZXREYXRhTGF5ZXIiO2Z1bmN0aW9uIGxUKGEsYixjKXt2YXIgZD12b2lkIDA7cmV0dXJuIGR9bFQuUD0iaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiO2Z1bmN0aW9uIG1UKGEpe31tVC5QPSJpbnRlcm5hbC5zZW5kQWRzSGl0IjtmdW5jdGlvbiBuVChhLGIsYyxkKXtpZihhcmd1bWVudHMubGVuZ3RoPDJ8fCFmaChkKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJhbnkiLCJhbnkiLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yz9UZChjLHRoaXMuVCwxKTp7fSxmPVRkKGEpLGc9QXJyYXkuaXNBcnJheShmKT9mOltmXTtiPVN0cmluZyhiKTt2YXIgaD1kP1RkKGQpOnt9LGw9WEYodGhpcyk7aC5vcmlnaW5hdGluZ0VudGl0eT10RyhsKTtsLnByaW9yaXR5UXVldWUmJihoLnByaW9yaXR5UXVldWU9bC5wcmlvcml0eVF1ZXVlKTtmb3IodmFyIG49MDtuPGcubGVuZ3RoO24rKyl7dmFyIHA9Z1tuXTtpZih0eXBlb2YgcD09PSJzdHJpbmciKXt2YXIgcT17fTtFZChlLHEpO3ZhciByPXt9O0VkKGgscik7dmFyIHQ9c0MocCxiLHEpO21EKHQsCmguZXZlbnRJZHx8bC5ldmVudElkLHIpfX19blQuUD0iaW50ZXJuYWwuc2VuZEd0YWdFdmVudCI7ZnVuY3Rpb24gb1QoYSxiLGMpe31vVC5wdWJsaWNOYW1lPSJzZW5kUGl4ZWwiO2Z1bmN0aW9uIHBUKGEsYil7fXBULlA9ImludGVybmFsLnNldEFuY2hvckhyZWYiO2Z1bmN0aW9uIHFUKGEpe31xVC5QPSJpbnRlcm5hbC5zZXRDb250YWluZXJDb25zZW50RGVmYXVsdHMiO2Z1bmN0aW9uIHJUKGEsYixjLGQpe3ZhciBlPXRoaXM7ZD1kPT09dm9pZCAwPyEwOmQ7dmFyIGY9ITE7CnJldHVybiBmfXJULnB1YmxpY05hbWU9InNldENvb2tpZSI7ZnVuY3Rpb24gc1QoYSl7fXNULlA9ImludGVybmFsLnNldENvcmVQbGF0Zm9ybVNlcnZpY2VzIjtmdW5jdGlvbiB0VChhLGIpe310VC5QPSJpbnRlcm5hbC5zZXREYXRhTGF5ZXJWYWx1ZSI7ZnVuY3Rpb24gdVQoYSl7fXVULnB1YmxpY05hbWU9InNldERlZmF1bHRDb25zZW50U3RhdGUiO2Z1bmN0aW9uIHZUKGEsYil7fXZULlA9ImludGVybmFsLnNldERlbGVnYXRlZENvbnNlbnRUeXBlIjtmdW5jdGlvbiB3VChhLGIpe313VC5QPSJpbnRlcm5hbC5zZXRGb3JtQWN0aW9uIjtmdW5jdGlvbiB4VChhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aWYoIWxoKGEpfHwhb2goYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZigha20oYSkpdGhyb3cgRXJyb3IoInNldEluQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTsoY3x8bm0oYSk9PT12b2lkIDApJiZtbShhLFRkKGIsdGhpcy5ULDEpKTt9eFQuUD0iaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIHlUKGEsYixjKXtyZXR1cm4hMX15VC5wdWJsaWNOYW1lPSJzZXRJbldpbmRvdyI7ZnVuY3Rpb24gelQoYSxiLGMpe2lmKCFsaChhKXx8IWxoKGIpfHxhcmd1bWVudHMubGVuZ3RoIT09Myl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307ZFtiXT1UZChjLHRoaXMuVCk7dmFyIGU9YSxmPVpIO2YuS3x8WUgoZik7Zi5zZXR0aW5nc1tlXT1kO316VC5QPSJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIEFUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWVEKGEpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXtpZihlW2RbZl1dPT09dm9pZCAwKWVbZFtmXV09e307ZWxzZSBpZighQ2QoZVtkW2ZdXSkpdGhyb3cgRXJyb3IoInNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciBmYWlsZWQsIHBhdGggY29udGFpbnMgYSBub24tb2JqZWN0IHR5cGU6ICIrZFtmXSk7ZT1lW2RbZl1dfWVbZFtmXV09VGQoYyx0aGlzLlQsMSk7fUFULlA9ImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gQlQoYSxiKXt9CkJULlA9ImludGVybmFsLnNldFRyYW5zbWlzc2lvbk1vZGUiO2Z1bmN0aW9uIENUKGEsYixjLGQpe3ZhciBlPXRoaXM7fUNULnB1YmxpY05hbWU9InNoYTI1NiI7ZnVuY3Rpb24gRFQoYSxiLGMpe30KRFQuUD0iaW50ZXJuYWwuc29ydFJlbW90ZUNvbmZpZ1BhcmFtZXRlcnMiO2Z1bmN0aW9uIEVUKGEpe31FVC5QPSJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIjtmdW5jdGlvbiBGVChhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY31GVC5QPSJpbnRlcm5hbC5zdWJzY3JpYmVUb0Nyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gR1QoYSl7fUdULlA9ImludGVybmFsLnRhc2tTZW5kQWRzSGl0cyI7dmFyIEhUPXtnZXRJdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdJiYoYj1kW2NdLmhhc093blByb3BlcnR5KCJndG0uIithKT9kW2NdWyJndG0uIithXTpudWxsKTtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXT1kW2NdfHx7fTtkW2NdWyJndG0uIithXT1iO30sCnJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBiPVhGKHRoaXMpLlBiKCksYz1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZighY1tiXXx8IWNbYl0uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpKXJldHVybjtkZWxldGUgY1tiXVsiZ3RtLiIrYV07fSxjbGVhcjpmdW5jdGlvbigpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYT1YRih0aGlzKS5QYigpO2RlbGV0ZSBhbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KVthXTt9LApwdWJsaWNOYW1lOiJ0ZW1wbGF0ZVN0b3JhZ2UifTtmdW5jdGlvbiBJVChhLGIpe3ZhciBjPSExO2lmKCFraChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9YS5nZXRWYWx1ZSgpO2lmKCEoZCBpbnN0YW5jZW9mIFJlZ0V4cCkpcmV0dXJuITE7Yz1kLnRlc3QoYik7cmV0dXJuIGN9SVQuUD0iaW50ZXJuYWwudGVzdFJlZ2V4IjtmdW5jdGlvbiBKVChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gS1QoYSxiKXt9S1QuUD0iaW50ZXJuYWwudHJhY2tVc2FnZSI7ZnVuY3Rpb24gTFQoYSxiKXt2YXIgYztyZXR1cm4gY31MVC5QPSJpbnRlcm5hbC51bnN1YnNjcmliZUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIE1UKGEpe31NVC5wdWJsaWNOYW1lPSJ1cGRhdGVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIE5UKGEpe3ZhciBiPSExO3JldHVybiBifU5ULlA9ImludGVybmFsLnVzZXJEYXRhTmVlZHNFbmNyeXB0aW9uIjt2YXIgT1Q9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGFpfSxRVD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgYjt2YXIgYz1QVC5IO2lmKGMuY29udGFpbnMoYSkpYj1jLmdldChhLHRoaXMpO2Vsc2V7dmFyIGQ7aWYoZD1jLkguaGFzT3duUHJvcGVydHkoYSkpe3ZhciBlPXRoaXMuVC54YigpO2lmKGUpe3ZhciBmPSExLGc9ZS5QYigpO2lmKGcpe0JoKGcpfHwoZj0hMCk7fWQ9Zn1lbHNlIGQ9ITB9aWYoZCl7dmFyIGg9Yy5ILmhhc093blByb3BlcnR5KGEpP2MuSFthXTp2b2lkIDA7Yj1ofWVsc2UgdGhyb3cgRXJyb3IoYSsiIGlzIG5vdCBhIHZhbGlkIEFQSSBuYW1lLiIpO31yZXR1cm4gYn19LFBUO2Z1bmN0aW9uIFJUKGEsYixjKXtQVHx8KFBUPW5ldyBPVCk7UFQuSC5hZGQoYSxiLGMpfWZ1bmN0aW9uIFNUKGEsYil7UFR8fChQVD1uZXcgT1QpO3ZhciBjPVBULkg7aWYoYy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKGMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgcHJpdmF0ZSBmdW5jdGlvbiB3aXRoIGFuIGV4aXN0aW5nIEFQSSBuYW1lOiAiK2ErIi4iKTtjLkhbYV09eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBUVChhLGIpe2Z1bmN0aW9uIGMoZCl7aWYoIWVoKGQpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBlPVRkKGQsdGhpcy5ULDEpLnJiKCk7YShlKX1jLlA9ImludGVybmFsLiIrYjtyZXR1cm4gY307ZnVuY3Rpb24gVVQoKXt2YXIgYT1mdW5jdGlvbihjKXtyZXR1cm4gdm9pZCBTVChjLlAsYyl9LGI9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgUlQoYy5wdWJsaWNOYW1lLGMpfTtiKFJGKTtiKFlGKTtiKFJHKTtiKFRHKTtiKFVHKTtiKGRIKTtiKGZIKTtiKGhJKTtiKFBTKCkpO2IoakkpO2IoT08pO2IoUE8pO2IobFApO2IobVApO2IoblApO2IodVApO2IodlApO2IoclMpO2IodVMpO2IoQlMpO2IoRFMpO2IoVFMpO2IoV1MpO2IoWlMpO2IoYVQpO2IoYlQpO2IoZFQpO2Iob1QpO2IoclQpO2IodVQpO2IoeVQpO2IoQ1QpO2IoSFQpO2IoTVQpO1JUKCJNYXRoIix6aCgpKTtSVCgiT2JqZWN0IixaaCk7UlQoIlRlc3RIZWxwZXIiLGNpKCkpO1JUKCJhc3NlcnRBcGkiLHdoKTtSVCgiYXNzZXJ0VGhhdCIseGgpO1JUKCJkZWNvZGVVcmkiLENoKTtSVCgiZGVjb2RlVXJpQ29tcG9uZW50IixEaCk7UlQoImVuY29kZVVyaSIsRWgpO1JUKCJlbmNvZGVVcmlDb21wb25lbnQiLEZoKTtSVCgiZmFpbCIsCkxoKTtSVCgiZ2VuZXJhdGVSYW5kb20iLE5oKTtSVCgiZ2V0VGltZXN0YW1wIixPaCk7UlQoImdldFRpbWVzdGFtcE1pbGxpcyIsT2gpO1JUKCJnZXRUeXBlIixQaCk7UlQoIm1ha2VJbnRlZ2VyIixSaCk7UlQoIm1ha2VOdW1iZXIiLFNoKTtSVCgibWFrZVN0cmluZyIsVGgpO1JUKCJtYWtlVGFibGVNYXAiLFVoKTtSVCgibW9jayIsWGgpO1JUKCJtb2NrT2JqZWN0IixZaCk7UlQoImZyb21CYXNlNjQiLEhPLCEoImF0b2IiaW4gQSkpO1JUKCJsb2NhbFN0b3JhZ2UiLFNTLCFSUygpKTtSVCgidG9CYXNlNjQiLEpULCEoImJ0b2EiaW4gQSkpO2EoUUYpO2EoVUYpO2EobkcpO2Eoc0cpO2EoSUcpO2EoUEcpO2EoU0cpO2EoVkcpO2EoV0cpO2EoWkcpO2EoJEcpO2EoYUgpO2EoYkgpO2EoY0gpO2EoZUgpO2EoZ0gpO2EoZ0kpO2EoaUkpO2Eoa0kpO2EobEkpO2EobUkpO2EobkkpO2Eob0kpO2EoZkopO2EobUopO2EodEopO2EodUopO2EoQUopO2EoRkopO2EoS0opO2EoUkopO2EoV0opO2EoZ0spOwphKGlLKTthKHZLKTthKHdLKTthKHhLKTthKEZPKTthKEdPKTthKElPKTthKEpPKTthKEtPKTthKExPKTthKE1PKTthKE5PKTthKFFPKTthKFJPKTthKFNPKTthKFRPKTthKFVPKTthKFZPKTthKFdPKTthKFhPKTthKFlPKTthKFpPKTthKCRPKTthKGFQKTthKGJQKTthKGNQKTthKGRQKTthKGVQKTthKGZQKTthKGdQKTthKGhQKTthKGlQKTthKGpQKTthKGtQKTthKG9QKTthKHBQKTthKHFQKTthKHJQKTthKHNQKTthKHRQKTthKHdQKTthKG9TKTthKHBTKTthKHRTKTthKHZTKTthKENTKTthKEVTKTthKEZTKTthKEdTKTthKEhTKTthKElTKTthKEpTKTthKEtTKTthKExTKTthKE1TKTthKE5TKTthKE9TKTthKFFTKTthKEdHKTthKFVTKTthKFZTKTthKFhTKTthKFlTKTthKCRTKTthKGNUKTthKGVUKTthKGZUKTthKGhUKTthKGlUKTthKGpUKTthKGxUKTthKG1UKTthKG5UKTthKHBUKTthKHFUKTthKHNUKTthKHRUKTthKHZUKTthKHdUKTthKHhUKTthKHpUKTthKEFUKTthKEJUKTthKERUKTsKYShFVCk7YShGVCk7YShHVCk7YShJVCk7YShLVCk7YShMVCk7YShOVCk7U1QoImludGVybmFsLklmcmFtaW5nU3RhdGVTY2hlbWEiLHNTKCkpO1NUKCJpbnRlcm5hbC5xdWlja0hhc2giLE1oKTthKFRUKE1GLCJ0YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSIpKSxhKFRUKFBGLCJ0YXNrU2V0VW5pdmVyc2FsUGFyYW1zIikpO1BUfHwoUFQ9bmV3IE9UKTtyZXR1cm4gUVQoKX07dmFyIEpGO2Z1bmN0aW9uIFZUKCl7SkYuc2QoZnVuY3Rpb24oYSxiLGMpe2xqKCk7dmFyIGQ9amo7ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU9ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkV8fDA7ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkUrKzt0cnl7cmV0dXJuIGEuYXBwbHkoYixjKX1maW5hbGx5e2xqKCksamouSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFLS19fSl9ZnVuY3Rpb24gV1QoYSl7aWYoYSYmYS5sZW5ndGgpZm9yKHZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10ucmVwbGFjZSgvXl8qLywiIik7YltkXT1bInNhbmRib3hlZFNjcmlwdHMiXX19CmZ1bmN0aW9uIFhUKGEpe2lmKGEpe3ZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtHYihhLGZ1bmN0aW9uKGMsZCl7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPWRbZV0ucmVwbGFjZSgvXl8qLywiIik7YltmXT1iW2ZdfHxbXTtiW2ZdLnB1c2goYyl9fSl9fTtmdW5jdGlvbiBaVChhKXttRChwQygiZGV2ZWxvcGVyX2lkLiIrYSwhMCksMCx7fSl9O2Z1bmN0aW9uICRUKGEsYil7cmV0dXJuIEVkKGEsYnx8bnVsbCl9ZnVuY3Rpb24gWShhKXtyZXR1cm4gd2luZG93LmVuY29kZVVSSUNvbXBvbmVudChhKX1mdW5jdGlvbiBhVShhKXtaYyhhLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIGJVKGEpe3ZhciBiPVsidmVpbnRlcmFjdGl2ZS5jb20iLCJ2ZS1pbnRlcmFjdGl2ZS5jbiJdO2lmKCFhKXJldHVybiExO3ZhciBjPUxqKFJqKGEpLCJob3N0Iik7aWYoIWMpcmV0dXJuITE7Zm9yKHZhciBkPTA7YiYmZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0mJmJbZF0udG9Mb3dlckNhc2UoKTtpZihlKXt2YXIgZj1jLmxlbmd0aC1lLmxlbmd0aDtmPjAmJmUuY2hhckF0KDApIT09Ii4iJiYoZi0tLGU9Ii4iK2UpO2lmKGY+PTAmJmMuaW5kZXhPZihlLGYpPT09ZilyZXR1cm4hMH19cmV0dXJuITF9CmZ1bmN0aW9uIGNVKGEsYixjKXtmb3IodmFyIGQ9e30sZT0hMSxmPTA7YSYmZjxhLmxlbmd0aDtmKyspYVtmXSYmYVtmXS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtmXS5oYXNPd25Qcm9wZXJ0eShjKSYmKGRbYVtmXVtiXV09YVtmXVtjXSxlPSEwKTtyZXR1cm4gZT9kOm51bGx9ZnVuY3Rpb24gZFUoYSxiKXt2YXIgYz17fTtpZihhKWZvcih2YXIgZCBpbiBhKWEuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPWFbZF0pO2lmKGIpe3ZhciBlPWNVKGIsInBhcmFtZXRlciIsInBhcmFtZXRlclZhbHVlIik7ZSYmKGM9JFQoZSxjKSl9cmV0dXJuIGN9ZnVuY3Rpb24gZVUoYSxiLGMpe3JldHVybiBhPT09dm9pZCAwfHxhPT09Yz9iOmF9ZnVuY3Rpb24gZlUoYSxiLGMpe3JldHVybiBVYyhhLGIsYyx2b2lkIDApfWZ1bmN0aW9uIGdVKGEsYil7QVthXT1ifWZ1bmN0aW9uIGhVKGEsYixjKXt2YXIgZD1BO2ImJihkW2FdPT09dm9pZCAwfHxjJiYhZFthXSkmJihkW2FdPWIpO3JldHVybiBkW2FdfXZhciBpVT17fSxqVT1YLlY7dmFyIFo9e3NlY3VyaXR5R3JvdXBzOnt9fTsKClouc2VjdXJpdHlHcm91cHMuYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2U9WyJnb29nbGUiXSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2U9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5PPSJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuaXNJbmZyYXN0cnVjdHVyZT0hMSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2VbIjUiXT0hMSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2VbIjYiXT0hMTsKCgoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2V2ZW50X2RhdGE9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57a2V5OmN9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9ldmVudF9kYXRhPWI7Wi5fX3JlYWRfZXZlbnRfZGF0YS5PPSJyZWFkX2V2ZW50X2RhdGEiO1ouX19yZWFkX2V2ZW50X2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9ldmVudF9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9ldmVudF9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZXZlbnRfZGF0YVsiNSJdPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2V2ZW50RGF0YUFjY2VzcyxkPWIudnRwX2tleVBhdHRlcm5zfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoZyE9bnVsbCYmIXpiKGcpKXRocm93IGUoZix7a2V5Omd9LCJLZXkgbXVzdCBiZSBhIHN0cmluZy4iKTsKaWYoYyE9PSJhbnkiKXt0cnl7aWYoYz09PSJzcGVjaWZpYyImJmchPW51bGwmJkVnKGcsZCkpcmV0dXJufWNhdGNoKGgpe3Rocm93IGUoZix7a2V5Omd9LCJJbnZhbGlkIGtleSBmaWx0ZXIuIik7fXRocm93IGUoZix7a2V5Omd9LCJQcm9oaWJpdGVkIHJlYWQgZnJvbSBldmVudCBkYXRhLiIpO319LGFhOmF9fSl9KCk7CgpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntvcHRpb25zOntmaXhNaXNzaW5nQXBpOiEhYy5maXhNaXNzaW5nQXBpfX19KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHM9YjtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLk89ImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyI7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50c1siNiJdPQohMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPSEhYi52dHBfYWxsb3dGaXhNaXNzaW5nSmF2YVNjcmlwdEFwaSxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGUsZil7aWYoIWMmJmYmJmYuZml4TWlzc2luZ0FwaSl0aHJvdyBkKGUse30sIlByb2hpYml0ZWQgb3B0aW9uOiBmaXhNaXNzaW5nQXBpLiIpO30sYWE6YX19KX0oKTsKCgoKCgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPWI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuTz0iZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfbGlua19jbGlja19ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57b3B0aW9uczpjfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cz1iO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMuTz0iZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIjtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd1dhaXRGb3JUYWdzLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSwKZil7aWYoIWMmJmYmJmYud2FpdEZvclRhZ3MpdGhyb3cgZChlLHt9LCJQcm9oaWJpdGVkIG9wdGlvbiB3YWl0Rm9yVGFncy4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMucmVhZF9jb250YWluZXJfZGF0YT1bImdvb2dsZSJdLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5PPSJyZWFkX2NvbnRhaW5lcl9kYXRhIixaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhWyI1Il09ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjYiXT0hMTsKWi5zZWN1cml0eUdyb3Vwcy5saXN0ZW5fZGF0YV9sYXllcj1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntldmVudE5hbWU6Y319KGZ1bmN0aW9uKGIpe1ouX19saXN0ZW5fZGF0YV9sYXllcj1iO1ouX19saXN0ZW5fZGF0YV9sYXllci5PPSJsaXN0ZW5fZGF0YV9sYXllciI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjUiXT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FjY2Vzc1R5cGUsZD1iLnZ0cF9hbGxvd2VkRXZlbnRzfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoIXpiKGcpKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LAoiRXZlbnQgbmFtZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKCEoYz09PSJhbnkifHxjPT09InNwZWNpZmljIiYmZC5pbmRleE9mKGcpPj0wKSl0aHJvdyBlKGYse2V2ZW50TmFtZTpnfSwiUHJvaGliaXRlZCBsaXN0ZW4gb24gZGF0YSBsYXllciBldmVudC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntkYXRhU291cmNlOmN9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1iO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLk89ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGFbIjUiXT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZCwKZSl7aWYoZSE9PSJhdXRvIiYmZSE9PSJtYW51YWwiJiZlIT09ImNvZGUiKXRocm93IGMoZCx7fSwiVW5rbm93biB1c2VyIHByb3ZpZGVkIGRhdGEgc291cmNlLiIpO2lmKGIudnRwX2xpbWl0RGF0YVNvdXJjZXMpaWYoZSE9PSJhdXRvInx8Yi52dHBfYWxsb3dBdXRvRGF0YVNvdXJjZXMpe2lmKGU9PT0ibWFudWFsIiYmIWIudnRwX2FsbG93TWFudWFsRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIHZpYSBtYW51YWxseSBzcGVjaWZpZWQgQ1NTIHNlbGVjdG9ycyBpcyBub3QgYWxsb3dlZC4iKTtpZihlPT09ImNvZGUiJiYhYi52dHBfYWxsb3dDb2RlRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGZyb20gYW4gaW4tcGFnZSB2YXJpYWJsZSBpcyBub3QgYWxsb3dlZC4iKTt9ZWxzZSB0aHJvdyBjKGQse30sIkF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGlzIG5vdCBhbGxvd2VkLiIpOwp9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZ2V0X3VybD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue2NvbXBvbmVudDpjLHF1ZXJ5S2V5OmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X3VybD1iO1ouX19nZXRfdXJsLk89ImdldF91cmwiO1ouX19nZXRfdXJsLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF91cmwucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfdXJsLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF91cmxbIjUiXT0hMTtaLl9fZ2V0X3VybFsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfdXJsUGFydHM9PT0iYW55Ij9udWxsOltdO2MmJihiLnZ0cF9wcm90b2NvbCYmYy5wdXNoKCJwcm90b2NvbCIpLGIudnRwX2hvc3QmJmMucHVzaCgiaG9zdCIpLGIudnRwX3BvcnQmJmMucHVzaCgicG9ydCIpLGIudnRwX3BhdGgmJmMucHVzaCgicGF0aCIpLGIudnRwX2V4dGVuc2lvbiYmYy5wdXNoKCJleHRlbnNpb24iKSxiLnZ0cF9xdWVyeSYmCmMucHVzaCgicXVlcnkiKSxiLnZ0cF9mcmFnbWVudCYmYy5wdXNoKCJmcmFnbWVudCIpKTt2YXIgZD1jJiZiLnZ0cF9xdWVyaWVzQWxsb3dlZCE9PSJhbnkiP2IudnRwX3F1ZXJ5S2V5c3x8W106bnVsbCxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyxoKXtpZihnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJVUkwgY29tcG9uZW50IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoYyYmYy5pbmRleE9mKGcpPDApdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIFVSTCBjb21wb25lbnQ6ICIrZyk7aWYoZz09PSJxdWVyeSImJmQpe2lmKCFoKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCBxdWVyeSB3aGVuIHF1ZXJ5IGtleXMgYXJlIHNwZWNpZmllZC4iKTtpZighemIoaCkpdGhyb3cgZShmLHt9LCJRdWVyeSBrZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihkLmluZGV4T2YoaCk8MCl0aHJvdyBlKGYse30sCiJQcm9oaWJpdGVkIHF1ZXJ5IGtleTogIitoKTt9fWVsc2UgaWYoYyl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIik7fSxhYTphfX0pfSgpOwoKCgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZG9tX2VsZW1lbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57dHlwZTpjLHZhbHVlOmR9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9kb21fZWxlbWVudHM9YjtaLl9fcmVhZF9kb21fZWxlbWVudHMuTz0icmVhZF9kb21fZWxlbWVudHMiO1ouX19yZWFkX2RvbV9lbGVtZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX2RvbV9lbGVtZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI1Il09ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd2VkRWxlbWVudElkc3x8Im5vbmUiLGQ9Yi52dHBfYWxsb3dlZENzc1NlbGVjdG9yc3x8Im5vbmUiLGU9Yi52dHBfZWxlbWVudElkc3x8W10sZj1iLnZ0cF9jc3NTZWxlY3RvcnN8fFtdLGc9CmIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGgsbCxuKXtzd2l0Y2gobCl7Y2FzZSAiaWQiOmlmKGM9PT0ibm9uZSIpYnJlYWs7aWYoYz09PSJhbnkifHxlLmluZGV4T2Yobik+LTEpcmV0dXJuO2JyZWFrO2Nhc2UgImNzcyI6aWYoZD09PSJub25lIilicmVhaztpZihkPT09ImFueSJ8fGYuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7ZGVmYXVsdDp0aHJvdyBnKGgse30sIlVua25vd24gc2VsZWN0b3IgdHlwZSAiK2wrIi4iKTt9dGhyb3cgZyhoLHt9LCJQcm9oaWJpdGVkIHNlbGVjdG9yIHZhbHVlICIrbisiIGZvciBzZWxlY3RvciB0eXBlICIrbCsiLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3Rfc2Nyb2xsX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHM9YjtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHMuTz0iZGV0ZWN0X3Njcm9sbF9ldmVudHMiO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKCmZ1bmN0aW9uIGtVKCl7dmFyIGE9e30sYj17ZGF0YUxheWVyOnRBLGNhbGxiYWNrOmZ1bmN0aW9uKGMpe2EuaGFzT3duUHJvcGVydHkoYykmJnliKGFbY10pJiZhW2NdKCk7ZGVsZXRlIGFbY119LGJvb3RzdHJhcDowfTtyZXR1cm4gYn0KZnVuY3Rpb24gbFUoKXt2YXIgYT1rVSgpO29qKGEpO0NrKCk7akEoKTt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7UWIoYixaLnNlY3VyaXR5R3JvdXBzKTt2YXIgYz15ayh6aygpKSxkLGU9Yz09bnVsbD92b2lkIDA6KGQ9Yy5jb250ZXh0KT09bnVsbD92b2lkIDA6ZC5zb3VyY2U7S2woZSxjPT1udWxsP3ZvaWQgMDpjLnBhcmVudCk7ZSE9PTImJmUhPT00JiZlIT09M3x8UCgxNDIpO3JldHVybiBhfWZ1bmN0aW9uIG1VKCl7dmFyIGE9RSg2MCk7aWYoYSlmb3IodmFyIGI9YS5zcGxpdCgiLiIpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPVRMO2QmJihlLkhbZF09ITApfX0KZnVuY3Rpb24gblUoKXt6cCgpO2xqKCk7Zm9yKHZhciBhPWRhdGEucmVzb3VyY2V8fHt9LGI9Y0EsYz1hLm1hY3Jvc3x8W10sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWIubWFjcm9zLnB1c2gobmV3IFV6KGNbZF0sZCxiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGU9YS50YWdzfHxbXSxmPTA7ZjxlLmxlbmd0aDtmKyspYi50YWdzLnB1c2gobmV3IFl6KGVbZl0sZixiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGc9YS5wcmVkaWNhdGVzfHxbXSxoPTA7aDxnLmxlbmd0aDtoKyspYi5wcmVkaWNhdGVzLnB1c2gobmV3IFZ6KGdbaF0sYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBsPWEucnVsZXN8fFtdLG49MDtuPGwubGVuZ3RoO24rKyliLnJ1bGVzLnB1c2gobmV3IFd6KGxbbl0sbikpO1F6PVo7dmFyIHA9ZGF0YS5wZXJtaXNzaW9uc3x8e30scT1aO2RnPW5ldyBnZyhFKDUpLHAscSk7dmFyIHI9ZGF0YS5zYW5kYm94ZWRfc2NyaXB0cyx0PWRhdGEuc2VjdXJpdHlfZ3JvdXBzLHU9ZGF0YS5ydW50aW1lfHwKW10sdj1kYXRhLnJ1bnRpbWVfbGluZXM7SkY9bmV3IHBmO1ZUKCk7UHo9SUYoKTt2YXIgeD1KRix5PVVUKCksej1uZXcgTGQoInJlcXVpcmUiLHkpO3ouWmEoKTt4LkguSC5zZXQoInJlcXVpcmUiLHopO2RiLnNldCgicmVxdWlyZSIseik7Zm9yKHZhciBDPTA7Qzx1Lmxlbmd0aDtDKyspe3ZhciBEPXVbQ107aWYoIUFycmF5LmlzQXJyYXkoRCl8fEQubGVuZ3RoPDMpe2lmKEQubGVuZ3RoPT09MCljb250aW51ZTticmVha312JiZ2W0NdJiZ2W0NdLmxlbmd0aCYmUGYoRCx2W0NdKTt0cnl7SkYuZXhlY3V0ZShEKX1jYXRjaChvVSl7fX1XVChyKTtYVCh0KTt2YXIgST1sVSgpO2lGKCk7dm0uYmluZCgpO2lmKCFEailmb3IodmFyIEc9Qm0oKT9lcChMZig1KSk6ZXAoTGYoNCkpLE49bShSbyksUz1OLm5leHQoKTshUy5kb25lO1M9Ti5uZXh0KCkpe3ZhciBXPVMudmFsdWUsZWE9VyxqYT1HW1ddPyJncmFudGVkIjoiZGVuaWVkIjt0bCgpLmltcGxpY2l0KGVhLGphKX1oRS5iaW5kKCk7VEIoKTsKT0IoKTtmbi5OJiYoZ3ooKSxmeihBRiksZ0EoKSxjQj1uZXcgYkIsZnooaXopLE9DKCksREZ8fChERj1uZXcgQkYpLGZCfHwoZkI9bmV3IGVCKSxGRj1uZXcgRUYpO2lmKGZuLkspe0RFLmJpbmQoKTttQy5iaW5kKCk7d0UuYmluZCgpO3ZhciBmYT1BaygpO2lmKGZhKXt2YXIgc2E7YTp7dmFyIGRhLG1hPShkYT1mYS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZGEuc3JjO2lmKG1hKXt2YXIgUGE7dHJ5e3ZhciBGYTtQYT0oRmE9cmQoKSk9PW51bGw/dm9pZCAwOkZhLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIil9Y2F0Y2gob1Upe31pZihQYSl7Zm9yKHZhciBxYT0tMSxpYj1tKFBhKSxYYj1pYi5uZXh0KCk7IVhiLmRvbmU7WGI9aWIubmV4dCgpKXt2YXIgTGM9WGIudmFsdWU7aWYoTGMuaW5pdGlhdG9yVHlwZT09PQoic2NyaXB0IiYmKHFhKz0xLExjLm5hbWUucmVwbGFjZShORSwiIik9PT1tYS5yZXBsYWNlKE5FLCIiKSkpe3NhPXFhO2JyZWFrIGF9fVAoMTQ2KX1lbHNlIFAoMTQ1KX1zYT12b2lkIDB9dmFyIFFkPXNhO1FkIT09dm9pZCAwJiYoZmEuY2Fub25pY2FsQ29udGFpbmVySWQmJlVtKCJydGciLFN0cmluZyhmYS5jYW5vbmljYWxDb250YWluZXJJZCkpLFVtKCJzbG8iLFN0cmluZyhRZCkpLFVtKCJobG8iLGZhLmh0bWxMb2FkT3JkZXJ8fCItMSIpLFVtKCJsc3QiLFN0cmluZyhmYS5sb2FkU2NyaXB0VHlwZXx8IjAiKSkpfWVsc2UgUCgxNDQpO3ZhciBZYzt2YXIgRGQ9eGsoKTtpZihEZClpZihEZC5jYW5vbmljYWxDb250YWluZXJJZClZYz1EZC5jYW5vbmljYWxDb250YWluZXJJZDtlbHNle3ZhciBqZix2aD1EZC5zY3JpcHRDb250YWluZXJJZHx8KChqZj1EZC5kZXN0aW5hdGlvbnMpPT1udWxsP3ZvaWQgMDpqZlswXSk7WWM9dmg/Il8iK3ZoOnZvaWQgMH1lbHNlIFljPXZvaWQgMDt2YXIgSkU9ClljO0pFJiZVbSgicGNpZCIsSkUpO1VtKCJidCIsU3RyaW5nKElmKDQ3KT8yOklmKDUwKT8xOjApKTtVbSgiY3QiLFN0cmluZyhJZig0Nyk/MDpJZig1MCk/MTozKSk7QUUuYmluZCgpO2Zvcih2YXIgV3I9W10sWHI9W10sS0U9bShPYmplY3Qua2V5cyhHRSkpLFlyPUtFLm5leHQoKTshWXIuZG9uZTtZcj1LRS5uZXh0KCkpe3ZhciBybT1Zci52YWx1ZTtpZih3aW5kb3cuaXNTZWN1cmVDb250ZXh0fHwhSUVbcm1dKXt2YXIgTEU9R0Vbcm1dKCk7aWYoeWIoTEUpKXt2YXIgTUU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoTEUpO1RiKE1FLCJ7IFtuYXRpdmUgY29kZV0gfSIpfHxUYihNRSwie1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKXx8WHIucHVzaChybSl9ZWxzZSBXci5wdXNoKHJtKX19V3IubGVuZ3RoPjAmJlVtKCJqc20iLFdyLmpvaW4oIn4iKSk7WHIubGVuZ3RoPjAmJlVtKCJqc3AiLFhyLmpvaW4oIn4iKSk7RXl8fChFeT1uZXcgRHkpfWhGKCk7aW0oMSk7RUcoKTtyZXR1cm4gSX0KZnVuY3Rpb24gdW0oKXt0cnl7aWYoIWhrKCkmJihJZig0Nyl8fCFOaygpKSl7SWYoNjQpJiZ3ai5ILksuYWRkKDExODUxNzkxNyk7emooKTtmbi5IJiZzeigpO1dmWzVdPSEwO3ZhciBhPWtqKCJkZWJ1Z0dyb3VwSWQiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKX0pO1NsKGEpO2t0KCk7ekYoKTtGdCgpO1BCKCk7aWYoRGsoKSl7RSg1KTtERygpO2lCKCkucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnModmsoKSk7fWVsc2V7Rk0uUigpO25VKCkuYm9vdHN0cmFwPU5iKCk7SWYoNTEpJiZwRSgpOwpmbi5IJiZ0eigpO3R5cGVvZiBBLm5hbWU9PT0ic3RyaW5nIiYmU2IoQS5uYW1lLCJ3ZWItcGl4ZWwtc2FuZGJveC1DVVNUT00iKSYmc2QoKT9aVCgiZE1EZzBZeiIpOkEuU2hvcGlmeSYmKFpUKCJkTjJaa01qIiksc2QoKSYmWlQoImROVFUwWXoiKSk7bVUoKX19fWNhdGNoKGIpe2ltKDUpLGh6KCl9fQooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe249Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJlc2VudCIpO2dsKG4pJiYobD1oLnhtKX1mdW5jdGlvbiBjKCl7bCYmS2M/ZyhsKTphKCl9aWYoIUFbRSgzNyldKXt2YXIgZD0hMTtpZihCLnJlZmVycmVyKXt2YXIgZT1SaihCLnJlZmVycmVyKTtkPU5qKGUsImhvc3QiKT09PUUoMzgpfWlmKCFkKXt2YXIgZj1jcShFKDM5KSk7ZD0hKCFmLmxlbmd0aHx8IWZbMF0ubGVuZ3RoKX1kJiYoQVtFKDM3KV09ITAsVWMoRSg0MCkpKX12YXIgZz1mdW5jdGlvbih1KXt2YXIgdj0iR1RNIix4PSJHVE0iO0lmKDQ1KSYmKHY9Ik9HVCIseD0iR1RBRyIpO3ZhciB5PUUoMjMpLHo9QVt5XTt6fHwoej1bXSxBW3ldPXosVWMoImh0dHBzOi8vIitFKDMpKyIvZGVidWcvYm9vdHN0cmFwP2lkPSIrRSg1KSsiJnNyYz0iK3grIiZjb25kPSIrU3RyaW5nKHUpKyImZ3RtPSIrZHUoKSkpO3ZhciBDPXttZXNzYWdlVHlwZToiQ09OVEFJTkVSX1NUQVJUSU5HIiwKZGF0YTp7c2NyaXB0U291cmNlOktjLGNvbnRhaW5lclByb2R1Y3Q6dixkZWJ1ZzohMSxpZDpFKDUpLHRhcmdldFJlZjp7Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246c2soKSxjYW5vbmljYWxJZDpFKDYpfSxhbGlhc2VzOndrKCksZGVzdGluYXRpb25zOnRrKCl9fSxEPUMuZGF0YTtELnJlc3VtZT1mdW5jdGlvbigpe2EoKX07RC5yZXN1bWVXaXRoTWVtb3M9ZnVuY3Rpb24oKXtzbCgxKTthKCl9O0lmKDIpJiYoQy5kYXRhLmluaXRpYWxQdWJsaXNoPSEwKTt6LnB1c2goQyl9LGg9e0dxOjEsUG06MixvbjozLGpsOjQseG06NX07aFtoLkdxXT0iR1RNX0RFQlVHX0xFR0FDWV9QQVJBTSI7aFtoLlBtXT0iR1RNX0RFQlVHX1BBUkFNIjtoW2gub25dPSJSRUZFUlJFUiI7aFtoLmpsXT0iQ09PS0lFIjtoW2gueG1dPSJFWFRFTlNJT05fUEFSQU0iO3ZhciBsPXZvaWQgMCxuPXZvaWQgMCxwPUxqKEEubG9jYXRpb24sInF1ZXJ5IiwhMSx2b2lkIDAsImd0bV9kZWJ1ZyIpO2dsKHApJiYobD1oLlBtKTsKaWYoIWwmJkIucmVmZXJyZXIpe3ZhciBxPVJqKEIucmVmZXJyZXIpO05qKHEsImhvc3QiKT09PUUoMjQpJiYobD1oLm9uKX1pZighbCl7dmFyIHI9Y3EoIl9fVEFHX0FTU0lTVEFOVCIpO3IubGVuZ3RoJiZyWzBdLmxlbmd0aCYmKGw9aC5qbCl9bHx8YigpO2lmKCFsJiZmbChuKSl7dmFyIHQ9ITE7JGMoQiwiVEFEZWJ1Z1NpZ25hbCIsZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sITEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe3R8fCh0PSEwLGIoKSxjKCkpfSwyMDApfWVsc2UgYygpfSkoZnVuY3Rpb24oKXshSWYoNDcpfHx0bSgpWyIwIl0/dW0oKTp4bSgpfSk7Cgp9KSgpCgo="}},"time_used":82,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":43,"receive":39,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DbOeqm85.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.990Z","timestamp":1785139670990,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DbOeqm85.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:51 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"2f9b-654aa2b830cfa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2490\r\nKeep-Alive: timeout=5, max=85\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":12187,"size_decoded":2841,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"3c2d369141b8f93a0ad38d270f6ecae6","sha1":"ab2184e6a723df81b5813db5684c0a91cf7fa5b2","sha256":"0ca4cbce36596b00f488b64b8cd75ad4aa55f76c12edb709728cc186f92585d6","sha512":"7d8291a3e2a7483ae822c99fb71a7b1d6f6909e85663a887c6d3ef89d399937475725726f147b841325533092566363d503d0721eb5d856fc235d84a5e9fe586","ssdeep":"96:EIUeXFMvvBiZbRoLjczoaFenk32lOSPDAeDHuKxScqEbASA:xFBb1oaFsk3iOyAehST1","tlshash":"f5421d1a92f10831a2d7f1781e1ba9992b31070faef67e547e9c01101f0d47eeab5a9d","first_seen":"2026-07-27T05:24:57.764475Z","last_seen":"2026-07-27T11:49:48.936014Z","times_seen":5,"resource_available":true,"data":"aW1wb3J0IHsgViBhcyBFLCBfIGFzIEEgfSBmcm9tICIuL0RLRmsyNVRDLmpzIjsKaW1wb3J0IHsgXyBhcyBCIH0gZnJvbSAiLi9iTmVwdWRwMS5qcyI7CmltcG9ydCB7CiAgaSBhcyBQLAogIGQgYXMgUywKICByIGFzIHcsCiAgbyBhcyBJLAogIGsgYXMgTSwKICBsIGFzIEQsCiAgYywKICBmIGFzIG0sCiAgdyBhcyB1LAogIHUgYXMgbiwKICBtIGFzIEMsCiAgYiBhcyB0LAogIHQgYXMgcCwKICBnIGFzIGIsCiAgYSBhcyBpLAogIGggYXMgeSwKICBGIGFzIFQsCiAgZSBhcyBrLAp9IGZyb20gIi4vU20ybUNmREUuanMiOwppbXBvcnQgeyBWIGFzIEggfSBmcm9tICIuL0JoTXRSX0hiLmpzIjsKaW1wb3J0IHsgViBhcyBOLCBhIGFzIFksIGIgYXMgRywgYyBhcyBMIH0gZnJvbSAiLi9DMUR0Wm5JeS5qcyI7CmltcG9ydCAiLi9ESUdKY2lZSi5qcyI7CmltcG9ydCAiLi9DMTBkYlgzay5qcyI7CmltcG9ydCAiLi94VW81c0tHaS5qcyI7CmltcG9ydCAiLi9COFR4VHlhay5qcyI7CmltcG9ydCAiLi9DMlFmYnE5Mi5qcyI7CmltcG9ydCAiLi9DSThWRnNnSC5qcyI7CmltcG9ydCAiLi9EOGF5dTdyUC5qcyI7CmltcG9ydCAiLi9DTXVVVGxTMi5qcyI7CmltcG9ydCAiLi9DQWxrV2J1Xy5qcyI7Ci8qIGVtcHR5IGNzcyAgICAgICAgKi8gaW1wb3J0ICIuL0JfMkZrUDhTLmpzIjsKY29uc3QgUiA9IHsgY2xhc3M6ICJyZWxhdGl2ZSBweC00IG15LTE2IG1kOm15LTI0IHB4LWxnLTAiIH0sCiAgVSA9IHsgY2xhc3M6ICJmbGV4IGp1c3RpZnktc3BhY2UtYmV0d2VlbiBhbGlnbi1jZW50ZXIiIH0sCiAgaiA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktODAwIHRleHQtc20tc2VtaWJvbGQiIH0sCiAgcSA9IHsgY2xhc3M6ICJsZzpmbGV4IGxnOmdhcC0zMiIgfSwKICB6ID0geyBjbGFzczogInctZnVsbCBsZzp3LTIvMyIgfSwKICBGID0gewogICAgY2xhc3M6CiAgICAgICJmbGV4IGp1c3RpZnktY2VudGVyIHB5LTggbWItNCAtbXgtNCBiZy1ncmF5LTEwMCByb3VuZGVkLWxnIGxnOm14LTAgbWItbGctNiIsCiAgfSwKICBPID0geyBjbGFzczogIiIgfSwKICBKID0geyBjbGFzczogImZvbnQtYm9sZCB0ZXh0LWdyYXktOTAwIGxnOmRpc3BsYXktbGctYm9sZCBkaXNwbGF5LXNtLWJvbGQiIH0sCiAgSyA9IHsgY2xhc3M6ICJwYi0xMiBtdC02IHRleHQtZ3JheS02MDAgbGc6cGItMzIgdGVybXMtdGV4dCIgfSwKICBRID0geyBjbGFzczogIm9yZGVyLTEgdy1mdWxsIGhpZGRlbiIgfSwKICBXID0geyBjbGFzczogInRleHQtZ3JheS05MDAgbGc6dGV4dC14bC1tZWRpdW0gdGV4dC1tZC1tZWRpdW0iIH0sCiAgWCA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtcmVndWxhciIgfSwKICBaID0geyBrZXk6IDAsIGNsYXNzOiAidy1mdWxsIGxnOnctMS8zIGhpZGRlbiIgfSwKICB2ZSA9IHsKICAgIF9fbmFtZTogInRlcm1zLW9mLXNlcnZpY2VzIiwKICAgIHNldHVwKGVlKSB7CiAgICAgIGNvbnN0IHsgdDogZyB9ID0gUCgpLAogICAgICAgIHsgJGlzRGVza3RvcDogZiB9ID0gUygpLAogICAgICAgIGwgPSB3KCExKSwKICAgICAgICB4ID0gdyghMSksCiAgICAgICAgciA9IHcoIiIpLAogICAgICAgIF8gPSBhc3luYyAocykgPT4gewogICAgICAgICAgZi52YWx1ZSB8fCAobC52YWx1ZSA9ICExKSwKICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKGQpID0+IHsKICAgICAgICAgICAgICAoci52YWx1ZSA9IHMpLAogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgIGQoKTsKICAgICAgICAgICAgICAgIH0sIDI3NSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHMpOwogICAgICAgICAgaWYgKGUpIHsKICAgICAgICAgICAgY29uc3QgZCA9IGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLAogICAgICAgICAgICAgIHYgPSB3aW5kb3cuc2Nyb2xsWSB8fCB3aW5kb3cucGFnZVlPZmZzZXQsCiAgICAgICAgICAgICAgbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkZXIiKTsKICAgICAgICAgICAgbGV0IGEgPSA4NTsKICAgICAgICAgICAgbyAmJiAoYSA9IG8ub2Zmc2V0SGVpZ2h0ID8/IDg1KTsKICAgICAgICAgICAgY29uc3QgViA9IGQgKyB2IC0gYTsKICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiBWLCBiZWhhdmlvcjogInNtb290aCIgfSk7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBoID0gKCkgPT4gewogICAgICAgICAgeC52YWx1ZSA9IHdpbmRvdy5zY3JvbGxZID4gMTIwMDsKICAgICAgICB9OwogICAgICByZXR1cm4gKAogICAgICAgIEkoKCkgPT4gewogICAgICAgICAgZi52YWx1ZSB8fCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgaCk7CiAgICAgICAgfSksCiAgICAgICAgTSgoKSA9PiB7CiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgaCk7CiAgICAgICAgfSksCiAgICAgICAgRCh7CiAgICAgICAgICB0aXRsZTogIk5Db25uZWN0IHwgIiArIGcoIlRlcm1zTWV0YVRpdGxlIiksCiAgICAgICAgICBtZXRhOiBbCiAgICAgICAgICAgIHsgbmFtZTogInRpdGxlIiwgY29udGVudDogIk5Db25uZWN0IHwgIiArIGcoIlRlcm1zTWV0YVRpdGxlIikgfSwKICAgICAgICAgICAgeyBuYW1lOiAiZGVzY3JpcHRpb24iLCBjb250ZW50OiBnKCJ0ZXJtc01ldGFEZXNjcmlwdGlvbiIpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pLAogICAgICAgIChzLCBlKSA9PiB7CiAgICAgICAgICBjb25zdCBkID0gQSwKICAgICAgICAgICAgdiA9IEI7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBpKCksCiAgICAgICAgICAgIGMoImRpdiIsIFIsIFsKICAgICAgICAgICAgICBtKAogICAgICAgICAgICAgICAgRSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogbihsKSwKICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOm1vZGVsVmFsdWUiOgogICAgICAgICAgICAgICAgICAgIGVbMV0gfHwgKGVbMV0gPSAobykgPT4gKEMobCkgPyAobC52YWx1ZSA9IG8pIDogbnVsbCkpLAogICAgICAgICAgICAgICAgICBpbnNldDogIiIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBkZWZhdWx0OiB1KCgpID0+IFsKICAgICAgICAgICAgICAgICAgICBtKAogICAgICAgICAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInBhbmVsLWlkIjogbihyKSwKICAgICAgICAgICAgICAgICAgICAgICAgImhhcy1jbG9zZSI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICBvbkdvVG86IF8sCiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U6IGVbMF0gfHwgKGVbMF0gPSAobykgPT4gKGwudmFsdWUgPSAhbihsKSkpLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgWyJwYW5lbC1pZCJdCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgIFsibW9kZWxWYWx1ZSJdCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBuKHgpCiAgICAgICAgICAgICAgICA/IChpKCksCiAgICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICJmaXhlZCBib3R0b20tMCBsZWZ0LTAgei0xMCB3LWZ1bGwgcC00IHB0LTggYmctd2hpdGUgYm9yZGVyIGJvcmRlci1iLTAgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1vcGFjaXR5LTEwMCBzaGFkb3ctbGcgcm91bmRlZC10LTJ4bCBoaWRkZW4iLAogICAgICAgICAgICAgICAgICAgICAgb25DbGljazogZVsyXSB8fCAoZVsyXSA9IChvKSA9PiAobC52YWx1ZSA9ICFuKGwpKSksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBVLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHQoInAiLCBqLCBwKHMuJHQoInF1aWNrQWNjZXNzIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgZVs0XSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgIChlWzRdID0gdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0YXRfMiAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgIDogYigiIiwgITApLAogICAgICAgICAgICAgIG0oSCwgbnVsbCwgewogICAgICAgICAgICAgICAgZGVmYXVsdDogdSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgIHQoImRpdiIsIHEsIFsKICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCB6LCBbCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBGLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICBtKHYsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAidy1bMjAwcHhdIG14LWF1dG8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiAic3RhdGljcy90ZXJtcy5wbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgdCgiZGl2IiwgTywgWwogICAgICAgICAgICAgICAgICAgICAgICB0KCJoMSIsIEosIHAocy4kdCgidGVybXNBbmRSdWxlc1RpdGxlIikpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBLLAogICAgICAgICAgICAgICAgICAgICAgICAgIHAocy4kdCgidGVybXNBbmRDb25kaXRpb25zRGVzY3JpcHRpb24iKSksCgogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBuKGYpCiAgICAgICAgICAgICAgICAgICAgICAgID8gYigiIiwgITApCiAgICAgICAgICAgICAgICAgICAgICAgIDogKGkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIm15LWVsZW1lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFuZWwtaWQiOiBuKHIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkdvVG86IF8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInBhbmVsLWlkIl0KICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIFEsIFsKICAgICAgICAgICAgICAgICAgICAgICAgbSgKICAgICAgICAgICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsVmFsdWU6IG4ociksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25VcGRhdGU6bW9kZWxWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVbM10gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVbM10gPSAobykgPT4gKEMocikgPyAoci52YWx1ZSA9IG8pIDogbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OiAiYWNjb3JkaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHUoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaSghMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLiR0bSgidGVybXNBbmRDb25kaXRpb25zIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobywgYSkgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcy4kdChgdGVybXNBbmRDb25kaXRpb25zWyR7YX1dLmlkYCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy4kdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHRlcm1zQW5kQ29uZGl0aW9uc1ske2F9XS5pZGAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVbNV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZVs1XSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIga2V5Ym9hcmRfYXJyb3dfZG93biAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHUoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib3JkZXItYiBib3JkZXItZ3JheS0zMDAgYm9yZGVyLW9wYWNpdHktMTAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHUoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKHMuJHJ0KG8udGl0bGUpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpKCEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuJHRtKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdGVybXNBbmRDb25kaXRpb25zWyR7YX1dLmRlc2NyaXB0aW9uYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWLCAkKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAkIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdSgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy4kdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHRlcm1zQW5kQ29uZGl0aW9uc1ske2F9XS5kZXNjcmlwdGlvblskeyR9XWAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImlkIiwgInZhbHVlIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICBbIm1vZGVsVmFsdWUiXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgbihmKQogICAgICAgICAgICAgICAgICAgICAgPyAoaSgpLAogICAgICAgICAgICAgICAgICAgICAgICBjKCJkaXYiLCBaLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgbShkLCB7ICJwYW5lbC1pZCI6IG4ociksIG9uR29UbzogXyB9LCBudWxsLCA4LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFuZWwtaWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgICAgICAgIDogYigiIiwgITApLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgXSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICB9OwpleHBvcnQgeyB2ZSBhcyBkZWZhdWx0IH07Cg=="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CpWmePdF.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.530Z","timestamp":1785139669530,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CpWmePdF.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"41-654aa2b830142\"\r\nAccept-Ranges: bytes\r\nContent-Length: 65\r\nKeep-Alive: timeout=5, max=94\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":65,"size_decoded":360,"mime_type":"application/javascript","magic":"Java source, ASCII text","md5":"1a8127a17d86ac005ae7ab0554c02599","sha1":"e45770a375ff938a302ea6340fac5248455eca42","sha256":"aa94be6f4c77844b430571e98975526a3d511564aebb7b10385bc142d85c3817","sha512":"31f14ac7980b2bbb84b8585786609edcf093c868178952fd59ee46f974196834dc21ec25b2704cc9098e4f2ac28d7c68c967f11f82d0228ec4aad695d9d53406","ssdeep":"","tlshash":"f8a00247367551e244f20c952722e7b09c190d2e3392dae027588251fe47c93c41c95b","first_seen":"2025-10-23T03:46:52.036622Z","last_seen":"2026-07-27T11:49:48.911985Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0Ii4vU20ybUNmREUuanMiO2NvbnN0IGU9d2luZG93LnNldEludGVydmFsO2V4cG9ydHtlIGFzIHN9Owo="}},"time_used":110,"timings":{"blocked":84,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/3k4VnFXt.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.544Z","timestamp":1785139669544,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/3k4VnFXt.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1a2c-654aa2b82ce7a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1141\r\nKeep-Alive: timeout=5, max=93\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":6700,"size_decoded":1492,"mime_type":"application/javascript","magic":"Unicode text, UTF-8 text, with very long lines (6673)","md5":"50cad4191d9aaffa13a550a69839ef9d","sha1":"3c2d53d2b3cfef9d8aca1be365b80a4e82c66eaf","sha256":"ddc2860adae983a913af6babd002fe022d2646b2ff05c9c1406e20cffceea242","sha512":"3511513f074ac8498fdaec065a1403935d555d5460b8771c9355a9981bd7ba0dc3a1e1e80ce4a40fbf6fe1c685e0c12092efbedf7dd07aba360131609d28e5d6","ssdeep":"192:TdjOVls0djOVlsFij/9eiMUwij/9eiMUB:+u/TEhmTEhe","tlshash":"ced1e2cbc2d4099d0ad55a8cbc976f0ad17d4ce4d65c5ab8879c4cf10028fa9113efda","first_seen":"2026-07-27T05:24:57.703834Z","last_seen":"2026-07-27T11:49:48.955688Z","times_seen":5,"resource_available":true,"data":"Y29uc3QgZT1be3VzZXJOYW1lOiIiLHRpdGxlOiJNYWRoYXZhbiIsY29tbWVudDoiTkNvbm5lY3QgaXMgdGhlIEdyZWF0IEV4Y2hhbmdlLiBXaXRoaW4gNSBtaW51dGVzIHRoZXkgY29tcGxldGVkIG15IHRyYW5zYWN0aW9uIHdpdGggdGhlIGxvd2VzdCBmZWUuIFlvdSBjYW4gdHJ1c3QgYW5kIHByb2NlZWQgd2l0aCB0aGVtLiIsZGF0ZToiSnVuIDIxLCAyMDIzIix0cnVzdEltYWdlOiJiZXN0Y2hhbmdlLWRlZmF1bHQuc3ZnIixhbHRJbWFnZToiYmVzdGNoYW5nZS5jb20iLGxpbmtDbGFzczoiYmVzdGNoYW5nZSIsbGlua0ltYWdlOiJodHRwczovL3d3dy5iZXN0Y2hhbmdlLmNvbS9qb2xpeG8tZXhjaGFuZ2VyLmh0bWwifSx7dXNlck5hbWU6IiIsdGl0bGU6IkpvaG4gTm9sYW4iLGNvbW1lbnQ6IkZpcnN0IHRpbWUgdHJ5aW5nIHRoaXMgc2VydmljZSBzbyBuYXR1cmFsbHkgSSB3YXMgYSBiaXQgd29ycmllZCBidXQgYWZ0ZXIgYSBmZXcgaG91cnMgZXZlcnl0aGluZyB3ZW50IHRocm91Z2ggYXMgaXQgd2FzIHN1cHBvc2VkIHRvLiIsZGF0ZToiSnVsIDEzLCAyMDIzIix0cnVzdEltYWdlOiJva2NoYW5nZXItbG9nby5wbmciLGFsdEltYWdlOiJva2NoYW5nZXIuY29tIixsaW5rQ2xhc3M6Im9rY2hhbmdlciIsbGlua0ltYWdlOiJodHRwczovL3d3dy5va2NoYW5nZXIuY29tL2V4Y2hhbmdlcnMvTkNvbm5lY3QifSx7dXNlck5hbWU6IiIsdGl0bGU6IkpvaG4gTmljayIsY29tbWVudDoiSSB3YXMgYW54aW91cyB0byB1c2UgdGhlaXIgc2VydmljZSwgYnV0IHRoZXkgbWFuYWdlZCB0byBnZXQgbXkgY29uZmlkZW5jZSB3aXRoIGNvdXJ0ZXN5IGFuZCBwcm9tcHRseSByZXNwb25kaW5nIHRvIG15IHF1ZXJpZXMuIixkYXRlOiJKdWwgMTAsIDIwMjMiLHRydXN0SW1hZ2U6ImJlc3RjaGFuZ2UtZGVmYXVsdC5zdmciLGFsdEltYWdlOiJiZXN0Y2hhbmdlLmNvbSIsbGlua0NsYXNzOiJiZXN0Y2hhbmdlIixsaW5rSW1hZ2U6Imh0dHBzOi8vd3d3LmJlc3RjaGFuZ2UuY29tL2pvbGl4by1leGNoYW5nZXIuaHRtbCJ9LHt1c2VyTmFtZToiIix0aXRsZToiWWFzaHZpciBHYW1pbmciLGNvbW1lbnQ6IkFzIGFsd2F5cyBpJ20gc28gcGxlYXNlZCwgSSB0cmFuc2ZlciBMVEMgdG8gUGF5UGFsIGFuZCB0aGVuIHdlbnQgdG8gc2xlZXAsIGJ5IHRoZSB0aW1lIGkgd29rZSB1cCwgSSBjaGVjayBteSBtYWlsLCBQYXlQYWwgcGF5bWVudHMgd2VyZSBzdWNjZXNzZnVsbHkgcmVjZWl2ZWQuIixkYXRlOiJKdW4gMSwgMjAyMyIsdHJ1c3RJbWFnZToib2tjaGFuZ2VyLWxvZ28ucG5nIixhbHRJbWFnZToib2tjaGFuZ2VyLmNvbSIsbGlua0NsYXNzOiJva2NoYW5nZXIiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cub2tjaGFuZ2VyLmNvbS9leGNoYW5nZXJzL05Db25uZWN0In0se3VzZXJOYW1lOiIiLHRpdGxlOiLQr9GA0L7RgdC70LDQsiDQkdGD0LTRjNC60L4iLGNvbW1lbnQ6IkkgdHJhbnNmZXJyZWQgZnJvbSBVU1REIHRvIFBheVBhbC4gSW4gZ2VuZXJhbCwgdGhlIGRlYWwgd2VudCB0aHJvdWdoLiBJIGNvbnNpZGVyIHRoZSBleHBlcmllbmNlIHN1Y2Nlc3NmdWwuIEkgd2lsbCBhcHBseSBhZ2Fpbi4iLGRhdGU6IkFwciAyMSwgMjAyMyIsdHJ1c3RJbWFnZToiYmVzdGNoYW5nZS1kZWZhdWx0LnN2ZyIsYWx0SW1hZ2U6ImJlc3RjaGFuZ2UuY29tIixsaW5rQ2xhc3M6ImJlc3RjaGFuZ2UiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cuYmVzdGNoYW5nZS5jb20vam9saXhvLWV4Y2hhbmdlci5odG1sIn0se3VzZXJOYW1lOiIiLHRpdGxlOiJNYWRoYXZhbiIsY29tbWVudDoiTkNvbm5lY3QgaXMgdGhlIEdyZWF0IEV4Y2hhbmdlLiBXaXRoaW4gNSBtaW51dGVzIHRoZXkgY29tcGxldGVkIG15IHRyYW5zYWN0aW9uIHdpdGggdGhlIGxvd2VzdCBmZWUuIFlvdSBjYW4gdHJ1c3QgYW5kIHByb2NlZWQgd2l0aCB0aGVtLiIsZGF0ZToiSnVuIDIxLCAyMDIzIix0cnVzdEltYWdlOiJiZXN0Y2hhbmdlLWRlZmF1bHQuc3ZnIixhbHRJbWFnZToiYmVzdGNoYW5nZS5jb20iLGxpbmtDbGFzczoiYmVzdGNoYW5nZSIsbGlua0ltYWdlOiJodHRwczovL3d3dy5iZXN0Y2hhbmdlLmNvbS9qb2xpeG8tZXhjaGFuZ2VyLmh0bWwifSx7dXNlck5hbWU6IiIsdGl0bGU6IkpvaG4gTm9sYW4iLGNvbW1lbnQ6IkZpcnN0IHRpbWUgdHJ5aW5nIHRoaXMgc2VydmljZSBzbyBuYXR1cmFsbHkgSSB3YXMgYSBiaXQgd29ycmllZCBidXQgYWZ0ZXIgYSBmZXcgaG91cnMgZXZlcnl0aGluZyB3ZW50IHRocm91Z2ggYXMgaXQgd2FzIHN1cHBvc2VkIHRvLiIsZGF0ZToiSnVsIDEzLCAyMDIzIix0cnVzdEltYWdlOiJva2NoYW5nZXItbG9nby5wbmciLGFsdEltYWdlOiJva2NoYW5nZXIuY29tIixsaW5rQ2xhc3M6Im9rY2hhbmdlciIsbGlua0ltYWdlOiJodHRwczovL3d3dy5va2NoYW5nZXIuY29tL2V4Y2hhbmdlcnMvTkNvbm5lY3QifSx7dXNlck5hbWU6IiIsdGl0bGU6IkpvaG4gTmljayIsY29tbWVudDoiSSB3YXMgYW54aW91cyB0byB1c2UgdGhlaXIgc2VydmljZSwgYnV0IHRoZXkgbWFuYWdlZCB0byBnZXQgbXkgY29uZmlkZW5jZSB3aXRoIGNvdXJ0ZXN5IGFuZCBwcm9tcHRseSByZXNwb25kaW5nIHRvIG15IHF1ZXJpZXMuIixkYXRlOiJKdWwgMTAsIDIwMjMiLHRydXN0SW1hZ2U6ImJlc3RjaGFuZ2UtZGVmYXVsdC5zdmciLGFsdEltYWdlOiJiZXN0Y2hhbmdlLmNvbSIsbGlua0NsYXNzOiJiZXN0Y2hhbmdlIixsaW5rSW1hZ2U6Imh0dHBzOi8vd3d3LmJlc3RjaGFuZ2UuY29tL2pvbGl4by1leGNoYW5nZXIuaHRtbCJ9LHt1c2VyTmFtZToiIix0aXRsZToiWWFzaHZpciBHYW1pbmciLGNvbW1lbnQ6IkFzIGFsd2F5cyBpJ20gc28gcGxlYXNlZCwgSSB0cmFuc2ZlciBMVEMgdG8gUGF5UGFsIGFuZCB0aGVuIHdlbnQgdG8gc2xlZXAsIGJ5IHRoZSB0aW1lIGkgd29rZSB1cCwgSSBjaGVjayBteSBtYWlsLCBQYXlQYWwgcGF5bWVudHMgd2VyZSBzdWNjZXNzZnVsbHkgcmVjZWl2ZWQuIixkYXRlOiJKdW4gMSwgMjAyMyIsdHJ1c3RJbWFnZToib2tjaGFuZ2VyLWxvZ28ucG5nIixhbHRJbWFnZToib2tjaGFuZ2VyLmNvbSIsbGlua0NsYXNzOiJva2NoYW5nZXIiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cub2tjaGFuZ2VyLmNvbS9leGNoYW5nZXJzL05Db25uZWN0In0se3VzZXJOYW1lOiIiLHRpdGxlOiLQr9GA0L7RgdC70LDQsiDQkdGD0LTRjNC60L4iLGNvbW1lbnQ6IkkgdHJhbnNmZXJyZWQgZnJvbSBVU1REIHRvIFBheVBhbC4gSW4gZ2VuZXJhbCwgdGhlIGRlYWwgd2VudCB0aHJvdWdoLiBJIGNvbnNpZGVyIHRoZSBleHBlcmllbmNlIHN1Y2Nlc3NmdWwuIEkgd2lsbCBhcHBseSBhZ2Fpbi4iLGRhdGU6IkFwciAyMSwgMjAyMyIsdHJ1c3RJbWFnZToiYmVzdGNoYW5nZS1kZWZhdWx0LnN2ZyIsYWx0SW1hZ2U6ImJlc3RjaGFuZ2UuY29tIixsaW5rQ2xhc3M6ImJlc3RjaGFuZ2UiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cuYmVzdGNoYW5nZS5jb20vam9saXhvLWV4Y2hhbmdlci5odG1sIn1dLGE9W3t1c2VyTmFtZToiIix0aXRsZToicHJldHR5Ym9yaW5nIixjb21tZW50OiJHcmVhdCBleGNoYW5nZSwgd29ya3MgZXZlcnkgdGltZS4gUGF5UGFsIHdpdGhkcmF3YWwgdGFrZXMgYWJvdXQgMjQgaG91cnMuIixkYXRlOiJBcHIgMjIsIDIwMjMiLHRydXN0SW1hZ2U6Im9rY2hhbmdlci1sb2dvLnBuZyIsYWx0SW1hZ2U6Im9rY2hhbmdlci5jb20iLGxpbmtDbGFzczoib2tjaGFuZ2VyIixsaW5rSW1hZ2U6Imh0dHBzOi8vd3d3Lm9rY2hhbmdlci5jb20vZXhjaGFuZ2Vycy9OQ29ubmVjdCJ9LHt1c2VyTmFtZToiIix0aXRsZToiU2h1cmlxIFptZXkiLGNvbW1lbnQ6IkludGVyZmFjZSBpcyBjb21mb3J0YWJsZSBhbmQgZ2l2ZXMgeW91IGFsbCBuZWNlc3NhcnkgaW5mbyBvbiB0cmFuc2FjdGlvbnMuIEp1c3QgZm9sbG93IHNpbXBsZSBzdGVwcyBhbmQgeW91IHdpbGwgZG8gZmluZS5FeGNoYW5nZS4iLGRhdGU6IkZlYiAxNCwgMjAyMyIsdHJ1c3RJbWFnZToib2tjaGFuZ2VyLWxvZ28ucG5nIixhbHRJbWFnZToib2tjaGFuZ2VyLmNvbSIsbGlua0NsYXNzOiJva2NoYW5nZXIiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cub2tjaGFuZ2VyLmNvbS9leGNoYW5nZXJzL05Db25uZWN0In0se3VzZXJOYW1lOiIiLHRpdGxlOiJBZGFtIE5vdmFrIixjb21tZW50OiJMYXN0IGNvdXBsZSBvZiBleGNoYW5nZXMgd2FzIG1hbnVhbCBhbmQgZG9uZSBpbiAxNSBtaW51dGVzIGJvdGggKGV4Y2VwdCBQYXlQYWwsIHdoaWNoIHRob3VnaCB0b29rIDI0IGhvdXJzIGFuZCB3YXMgZXhwZW5zaXZlKS4gUmF0ZSB3YXMgZ29vZC4iLGRhdGU6IkFwciAxNywgMjAyMyIsdHJ1c3RJbWFnZToib2tjaGFuZ2VyLWxvZ28ucG5nIixhbHRJbWFnZToib2tjaGFuZ2VyLmNvbSIsbGlua0NsYXNzOiJva2NoYW5nZXIiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cub2tjaGFuZ2VyLmNvbS9leGNoYW5nZXJzL05Db25uZWN0In0se3VzZXJOYW1lOiIiLHRpdGxlOiJzaGFtYW50aCBzaGFtYW50aCIsY29tbWVudDoib25saW5lIHN1cHBvcnQgc3RhZmYgaXMgaGVscGZ1bCBpbiBnaXZpbmcgcHJvYmFibGUgdGltZSBvZiBleGNoYW5nZSAsIGV2ZW4gdGhvdWdoIG15IGV4Y2hhbmdlIGFtb3VudCB3YXMgbm90IGJpZy4iLGRhdGU6IkFwciAxOCwgMjAyMyIsdHJ1c3RJbWFnZToib2tjaGFuZ2VyLWxvZ28ucG5nIixhbHRJbWFnZToib2tjaGFuZ2VyLmNvbSIsbGlua0NsYXNzOiJva2NoYW5nZXIiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cub2tjaGFuZ2VyLmNvbS9leGNoYW5nZXJzL05Db25uZWN0In0se3VzZXJOYW1lOiIiLHRpdGxlOiJCQyIsY29tbWVudDoibXkgVVNEIGFycml2ZWQgaW50byBteSBwYXlwYWwgYWNjb3VudCBpbiBhYm91dCAxLTIgaG91cnMuIFZlcnkgaGFwcHkgd2l0aCB0aGUgZXhwZXJpZW5jZSBhbmQgd2lsbCBkZWZpbml0ZWx5IGJlIHV0aWxpemluZyB0aGVpciBzZXJ2aWNlIGFnYWluISIsZGF0ZToiRmViIDI3LCAyMDIyIix0cnVzdEltYWdlOiJva2NoYW5nZXItbG9nby5wbmciLGFsdEltYWdlOiJva2NoYW5nZXIuY29tIixsaW5rQ2xhc3M6Im9rY2hhbmdlciIsbGlua0ltYWdlOiJodHRwczovL3d3dy5va2NoYW5nZXIuY29tL2V4Y2hhbmdlcnMvTkNvbm5lY3QifSx7dXNlck5hbWU6IiIsdGl0bGU6InByZXR0eWJvcmluZyIsY29tbWVudDoiR3JlYXQgZXhjaGFuZ2UsIHdvcmtzIGV2ZXJ5IHRpbWUuIFBheVBhbCB3aXRoZHJhd2FsIHRha2VzIGFib3V0IDI0IGhvdXJzLiIsZGF0ZToiQXByIDIyLCAyMDIzIix0cnVzdEltYWdlOiJva2NoYW5nZXItbG9nby5wbmciLGFsdEltYWdlOiJva2NoYW5nZXIuY29tIixsaW5rQ2xhc3M6Im9rY2hhbmdlciIsbGlua0ltYWdlOiJodHRwczovL3d3dy5va2NoYW5nZXIuY29tL2V4Y2hhbmdlcnMvTkNvbm5lY3QifSx7dXNlck5hbWU6IiIsdGl0bGU6IlNodXJpcSBabWV5Iixjb21tZW50OiJJbnRlcmZhY2UgaXMgY29tZm9ydGFibGUgYW5kIGdpdmVzIHlvdSBhbGwgbmVjZXNzYXJ5IGluZm8gb24gdHJhbnNhY3Rpb25zLiBKdXN0IGZvbGxvdyBzaW1wbGUgc3RlcHMgYW5kIHlvdSB3aWxsIGRvIGZpbmUuRXhjaGFuZ2UuIixkYXRlOiJGZWIgMTQsIDIwMjMiLHRydXN0SW1hZ2U6Im9rY2hhbmdlci1sb2dvLnBuZyIsYWx0SW1hZ2U6Im9rY2hhbmdlci5jb20iLGxpbmtDbGFzczoib2tjaGFuZ2VyIixsaW5rSW1hZ2U6Imh0dHBzOi8vd3d3Lm9rY2hhbmdlci5jb20vZXhjaGFuZ2Vycy9OQ29ubmVjdCJ9LHt1c2VyTmFtZToiIix0aXRsZToiQWRhbSBOb3ZhayIsY29tbWVudDoiTGFzdCBjb3VwbGUgb2YgZXhjaGFuZ2VzIHdhcyBtYW51YWwgYW5kIGRvbmUgaW4gMTUgbWludXRlcyBib3RoIChleGNlcHQgUGF5UGFsLCB3aGljaCB0aG91Z2ggdG9vayAyNCBob3VycyBhbmQgd2FzIGV4cGVuc2l2ZSkuIFJhdGUgd2FzIGdvb2QuIixkYXRlOiJBcHIgMTcsIDIwMjMiLHRydXN0SW1hZ2U6Im9rY2hhbmdlci1sb2dvLnBuZyIsYWx0SW1hZ2U6Im9rY2hhbmdlci5jb20iLGxpbmtDbGFzczoib2tjaGFuZ2VyIixsaW5rSW1hZ2U6Imh0dHBzOi8vd3d3Lm9rY2hhbmdlci5jb20vZXhjaGFuZ2Vycy9OQ29ubmVjdCJ9LHt1c2VyTmFtZToiIix0aXRsZToic2hhbWFudGggc2hhbWFudGgiLGNvbW1lbnQ6Im9ubGluZSBzdXBwb3J0IHN0YWZmIGlzIGhlbHBmdWwgaW4gZ2l2aW5nIHByb2JhYmxlIHRpbWUgb2YgZXhjaGFuZ2UgLCBldmVuIHRob3VnaCBteSBleGNoYW5nZSBhbW91bnQgd2FzIG5vdCBiaWcuIixkYXRlOiJBcHIgMTgsIDIwMjMiLHRydXN0SW1hZ2U6Im9rY2hhbmdlci1sb2dvLnBuZyIsYWx0SW1hZ2U6Im9rY2hhbmdlci5jb20iLGxpbmtDbGFzczoib2tjaGFuZ2VyIixsaW5rSW1hZ2U6Imh0dHBzOi8vd3d3Lm9rY2hhbmdlci5jb20vZXhjaGFuZ2Vycy9OQ29ubmVjdCJ9LHt1c2VyTmFtZToiIix0aXRsZToiQkMiLGNvbW1lbnQ6Im15IFVTRCBhcnJpdmVkIGludG8gbXkgcGF5cGFsIGFjY291bnQgaW4gYWJvdXQgMS0yIGhvdXJzLiBWZXJ5IGhhcHB5IHdpdGggdGhlIGV4cGVyaWVuY2UgYW5kIHdpbGwgZGVmaW5pdGVseSBiZSB1dGlsaXppbmcgdGhlaXIgc2VydmljZSBhZ2FpbiEiLGRhdGU6IkZlYiAyNywgMjAyMiIsdHJ1c3RJbWFnZToib2tjaGFuZ2VyLWxvZ28ucG5nIixhbHRJbWFnZToib2tjaGFuZ2VyLmNvbSIsbGlua0NsYXNzOiJva2NoYW5nZXIiLGxpbmtJbWFnZToiaHR0cHM6Ly93d3cub2tjaGFuZ2VyLmNvbS9leGNoYW5nZXJzL05Db25uZWN0In1dO2V4cG9ydHthLGUgYXMgY307Cg=="}},"time_used":171,"timings":{"blocked":145,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.no/ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026tid=G-VVBQ0TLCDN\u0026cid=413880559.1785139671\u0026gtm=45je67m0v875264039z89106849596za20gzb9106849596zd9106849596\u0026rcb=2\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115938465~115938469~118395333~118897920~118897930~119896802\u0026z=341772356","fqdn":"www.google.no","domain":"google.no","tld":"no"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.711Z","timestamp":1785139670711,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.no","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:41:27 GMT","end":"Mon, 21 Sep 2026 08:41:26 GMT"},"fingerprint":{"sha1":"FE:B5:BE:35:CB:DF:57:B9:38:CA:36:5B:8F:BC:13:7C:DE:64:44:66","sha256":"17:D6:B8:5F:85:3E:90:82:55:F6:FF:8B:5F:2E:49:BC:4F:09:E5:AA:B2:2E:E6:F2:31:A1:1E:7E:FC:A0:C4:EC"}}},"request":{"raw":"GET /ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026tid=G-VVBQ0TLCDN\u0026cid=413880559.1785139671\u0026gtm=45je67m0v875264039z89106849596za20gzb9106849596zd9106849596\u0026rcb=2\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115938465~115938469~118395333~118897920~118897930~119896802\u0026z=341772356 HTTP/1.1\r\nHost: www.google.no\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 08:07:51 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-type: image/gif\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 42\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":42,"size_decoded":578,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"d89746888da2d9510b64a9f031eaecd5","sha1":"d5fceb6532643d0d84ffe09c40c481ecdf59e15a","sha256":"ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629","sha512":"d5da26b5d496edb0221df1a4057a8b0285d15592a8f8dc7016a294df37ed335f3fde6a2252962e0df38b62847f8b771463a0124ef3f84299f262ed9d9d3cee4c","ssdeep":"","tlshash":"c4900023fa808000c3a8c2300a0b238a2b8c80200a28030b80ae208cec3a3a22c03020","first_seen":"2023-04-05T02:54:03Z","last_seen":"2026-08-04T08:28:57.497518Z","times_seen":1019262,"resource_available":true,"data":"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}},"time_used":84,"timings":{"blocked":0,"dns":2,"connect":15,"send":0,"wait":36,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VMenu.ADsz2A20.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.475Z","timestamp":1785139669475,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VMenu.ADsz2A20.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1e8-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 258\r\nKeep-Alive: timeout=5, max=94\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":488,"size_decoded":593,"mime_type":"text/css","magic":"ASCII text, with very long lines (487)","md5":"4402b8c9655e2072e37433830f06ad28","sha1":"a9445e039a969aab56a48344a6ac3023f7ebb3c7","sha256":"3f30e266b50fa0381605239e74050a51962f135529afa9a6a4dd8d5a3d20bfe0","sha512":"87c23df2ee1309e7719c776cb7f4948432bb41ca26767d62a262c8535778b165ab8dd8438af8f3ee77575aa01c110fb42a7673a7ce7685dc426068fb5843b94d","ssdeep":"","tlshash":"0ff0e9b155e8c039ab59e06a935f808ea3566984ce301409bd6627175fd3bb36dd1200","first_seen":"2024-08-24T16:36:11Z","last_seen":"2026-07-30T17:26:10.835957Z","times_seen":119,"resource_available":false,"data":"LnYtbWVudT4udi1vdmVybGF5X19jb250ZW50e2JvcmRlci1yYWRpdXM6NHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnYtbWVudT4udi1vdmVybGF5X19jb250ZW50Pi52LWNhcmQsLnYtbWVudT4udi1vdmVybGF5X19jb250ZW50Pi52LWxpc3QsLnYtbWVudT4udi1vdmVybGF5X19jb250ZW50Pi52LXNoZWV0e2JhY2tncm91bmQ6cmdiKHZhcigtLXYtdGhlbWUtc3VyZmFjZSkpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3gtc2hhZG93OjAgNXB4IDVweCAtM3B4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDhweCAxMHB4IDFweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgM3B4IDE0cHggMnB4IHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvfQo="}},"time_used":196,"timings":{"blocked":171,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/coins/eth.png","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.941Z","timestamp":1785139670941,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/coins/eth.png HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"4efd-654aa2b927a2b\"\r\nAccept-Ranges: bytes\r\nContent-Length: 20221\r\nKeep-Alive: timeout=5, max=88\r\nConnection: Keep-Alive\r\nContent-Type: image/png\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":20221,"size_decoded":20508,"mime_type":"image/png","magic":"PNG image data, 500 x 500, 8-bit/color RGBA, non-interlaced","md5":"4b74e3d3870c6ebb380c079fe5c24004","sha1":"e00a3c60a5509724d78a75d8863ee95c5e9c67f5","sha256":"f42dd4a645ff130319a7d1e9b867602d63c2d9394aa230085c121c043bdc040f","sha512":"a6a69fef037b644273aaf55709720dd5197a0b89346542dd6123c38b5b336fa6f662abef135d70cbd9d832af92d004e52c2880dff4b8637b90f4b7d71f433938","ssdeep":"384:T+8p7NX66nzBKhgu/kldxuoS8NoH8WDeVNQLcSqmJFIho+Fx:RNq6nzghgu/kldxfG8WDe07xOhoMx","tlshash":"1c92e16840489e77b7cfa6b70b1dc78c7ca549ba41395608913ea68f57203daf0f2192","first_seen":"2025-10-23T03:46:52.669422Z","last_seen":"2026-07-27T11:49:48.962352Z","times_seen":17,"resource_available":false,"data":"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"}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Che7Khx7.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.981Z","timestamp":1785139670981,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Che7Khx7.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"45c-654aa2b830142-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 542\r\nKeep-Alive: timeout=5, max=88\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":1116,"size_decoded":891,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (1115)","md5":"4c350f8712936dfac6c78e711d5580ef","sha1":"d272cd163c100d471698317ee9d3883a3336f418","sha256":"04c5b248c068e3350391ab7f93186e468da38be749b5c834926608bd2c00b8eb","sha512":"e405775b3b66d990f84651e716839dc4225fba559752ed5dfdf9169af4dd1bdde107faf807fca96b2a8898b10a36b045ba9d810a2117e49dce16be1cf5945b19","ssdeep":"","tlshash":"bc21429dfcc996a36a1b49044c41aadc540ca70ec1b3f1b6e9e1b13e1340646951af34","first_seen":"2025-10-23T03:46:52.53504Z","last_seen":"2026-07-27T11:49:48.922553Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2MgYXMgbSxWIGFzIHB9ZnJvbSIuL0MxRHRabkl5LmpzIjtpbXBvcnR7YSxoIGFzIGwsdyBhcyByLGMsRiBhcyB1LGUgYXMgZyxuIGFzIGUsYiBhcyBuLHQgYXMgZH1mcm9tIi4vU20ybUNmREUuanMiO2NvbnN0IGg9e19fbmFtZToiRmFxIixwcm9wczp7dGhlbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImxpZ2h0In0saXRlbXM6e3R5cGU6QXJyYXksZGVmYXVsdDooKT0+W119LHRpdGxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxkZXNjcmlwdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LHNldHVwKHQpe3JldHVybihzLHgpPT4oYSgpLGwocCx7Y2xhc3M6ZSh0LnRoZW1lPT09ImRhcmsiPyJkYXJrLWZhcS1wYW5lbHMiOiJsaWdodC1mYXEtcGFuZWxzIil9LHtkZWZhdWx0OnIoKCk9PlsoYSghMCksYyh1LG51bGwsZyh0Lml0ZW1zLChpLG8pPT4oYSgpLGwobSx7a2V5Om8sY2xhc3M6ZShbIm10LTIgdHJhbnNpdGlvbi1hbGwiLHQudGhlbWU9PT0iZGFyayI/ImRhcmstZmFxLXBhbmVsIjoiYmctZ3JheS0xMDAiXSksc3R5bGU6eyJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIjoiMXJlbSAhaW1wb3J0YW50IiwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiOiIxcmVtICFpbXBvcnRhbnQiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzIjoiMXJlbSAhaW1wb3J0YW50IiwiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMiOiIxcmVtICFpbXBvcnRhbnQifX0se3RpdGxlOnIoKCk9PltuKCJkaXYiLHtjbGFzczplKFsidGl0bGUgcHgtNCBweS0zIHJvdW5kZWQtMnhsIHRleHQtbWQtc2VtaWJvbGQgdGV4dC1ncmF5LTEwMCIsdC50aGVtZT09PSJkYXJrIj8idGV4dC1ncmF5LTEwMCI6InRleHQtZ3JheS04MDAiXSl9LGQocy4kcnQoaS50aXRsZSkpLDMpXSksdGV4dDpyKCgpPT5bbigiZGl2Iix7Y2xhc3M6ZShbInAtOCBhbnN3ZXIgdGV4dC1zbS1yZWd1bGFyICFsZWFkaW5nLTUgcm91bmRlZC0yeGwiLHQudGhlbWU9PT0iZGFyayI/InRleHQtd2hpdGUiOiJ0ZXh0LWdyYXktNzAwIl0pfSxkKHMuJHJ0KGkuZGVzY3JpcHRpb24pKSwzKV0pLF86Mn0sMTAzMixbImNsYXNzIl0pKSksMTI4KSldKSxfOjF9LDgsWyJjbGFzcyJdKSl9fTtleHBvcnR7aCBhcyBffTsK"}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VDialog.Dk_v9Av4.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.482Z","timestamp":1785139669482,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VDialog.Dk_v9Av4.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"9b5-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 592\r\nKeep-Alive: timeout=5, max=93\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":2485,"size_decoded":927,"mime_type":"text/css","magic":"ASCII text, with very long lines (2484)","md5":"00b3895189082775d14e3723657e529f","sha1":"c2ca21c42f72851e4becafaabed4eb70a9556365","sha256":"da32a3231175551b7ac668f2e80fe2c4c3f3f9657a9aa56fa847006c82e33e97","sha512":"2a99588db1bc322fd8318f6eaf2df68df4760bb4de46313ce1514ed5f665189af1111bc7aba95e3729d5b5b2003e60249f7ca0d618086671eda5b2bda699c7e9","ssdeep":"","tlshash":"c951447126ec14bcc62ec4a712eb7a5adb3cb745d2240128a88e265f0bc772676f1315","first_seen":"2025-06-11T02:40:39.561757Z","last_seen":"2026-07-30T13:12:11.441252Z","times_seen":77,"resource_available":false,"data":"LnYtZGlhbG9ne2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjphdXRvfS52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50e21hcmdpbjoyNHB4O21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gNDhweCk7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDQ4cHgpO3dpZHRoOmNhbGMoMTAwJSAtIDQ4cHgpfS52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50LC52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50PmZvcm17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjB9LnYtZGlhbG9nPi52LW92ZXJsYXlfX2NvbnRlbnQ+LnYtY2FyZCwudi1kaWFsb2c+LnYtb3ZlcmxheV9fY29udGVudD4udi1zaGVldCwudi1kaWFsb2c+LnYtb3ZlcmxheV9fY29udGVudD5mb3JtPi52LWNhcmQsLnYtZGlhbG9nPi52LW92ZXJsYXlfX2NvbnRlbnQ+Zm9ybT4udi1zaGVldHstLXYtc2Nyb2xsYmFyLW9mZnNldDowcHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNoYWRvdzowIDExcHggMTVweCAtN3B4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDI0cHggMzhweCAzcHggdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDlweCA0NnB4IDhweCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSk7ZmxleDoxIDEgMTAwJTtvdmVyZmxvdy15OmF1dG99LnYtZGlhbG9nPi52LW92ZXJsYXlfX2NvbnRlbnQ+LnYtY2FyZCwudi1kaWFsb2c+LnYtb3ZlcmxheV9fY29udGVudD5mb3JtPi52LWNhcmR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udi1kaWFsb2c+LnYtb3ZlcmxheV9fY29udGVudD4udi1jYXJkPi52LWNhcmQtaXRlbSwudi1kaWFsb2c+LnYtb3ZlcmxheV9fY29udGVudD5mb3JtPi52LWNhcmQ+LnYtY2FyZC1pdGVte3BhZGRpbmc6MTZweCAyNHB4fS52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50Pi52LWNhcmQ+LnYtY2FyZC1pdGVtKy52LWNhcmQtdGV4dCwudi1kaWFsb2c+LnYtb3ZlcmxheV9fY29udGVudD5mb3JtPi52LWNhcmQ+LnYtY2FyZC1pdGVtKy52LWNhcmQtdGV4dHtwYWRkaW5nLXRvcDowfS52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50Pi52LWNhcmQ+LnYtY2FyZC10ZXh0LC52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50PmZvcm0+LnYtY2FyZD4udi1jYXJkLXRleHR7Zm9udC1zaXplOmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6LjAzMTI1ZW07bGluZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjE2cHggMjRweCAyNHB4fS52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50Pi52LWNhcmQ+LnYtY2FyZC1hY3Rpb25zLC52LWRpYWxvZz4udi1vdmVybGF5X19jb250ZW50PmZvcm0+LnYtY2FyZD4udi1jYXJkLWFjdGlvbnN7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS52LWRpYWxvZy0tZnVsbHNjcmVlbnstLXYtc2Nyb2xsYmFyLW9mZnNldDowcHh9LnYtZGlhbG9nLS1mdWxsc2NyZWVuPi52LW92ZXJsYXlfX2NvbnRlbnR7Ym9yZGVyLXJhZGl1czowO2hlaWdodDoxMDAlO2xlZnQ6MDttYXJnaW46MDttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6MDt0b3A6MDt3aWR0aDoxMDAlfS52LWRpYWxvZy0tZnVsbHNjcmVlbj4udi1vdmVybGF5X19jb250ZW50Pi52LWNhcmQsLnYtZGlhbG9nLS1mdWxsc2NyZWVuPi52LW92ZXJsYXlfX2NvbnRlbnQ+LnYtc2hlZXQsLnYtZGlhbG9nLS1mdWxsc2NyZWVuPi52LW92ZXJsYXlfX2NvbnRlbnQ+Zm9ybT4udi1jYXJkLC52LWRpYWxvZy0tZnVsbHNjcmVlbj4udi1vdmVybGF5X19jb250ZW50PmZvcm0+LnYtc2hlZXR7Ym9yZGVyLXJhZGl1czowO21pbi1oZWlnaHQ6MTAwJTttaW4td2lkdGg6MTAwJX0udi1kaWFsb2ctLXNjcm9sbGFibGU+LnYtb3ZlcmxheV9fY29udGVudD5mb3JtLC52LWRpYWxvZy0tc2Nyb2xsYWJsZT4udi1vdmVybGF5X19jb250ZW50PmZvcm0+LnYtY2FyZHttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjEwMCV9LnYtZGlhbG9nLS1zY3JvbGxhYmxlPi52LW92ZXJsYXlfX2NvbnRlbnQsLnYtZGlhbG9nLS1zY3JvbGxhYmxlPi52LW92ZXJsYXlfX2NvbnRlbnQ+LnYtY2FyZCwudi1kaWFsb2ctLXNjcm9sbGFibGU+LnYtb3ZlcmxheV9fY29udGVudD5mb3JtLC52LWRpYWxvZy0tc2Nyb2xsYWJsZT4udi1vdmVybGF5X19jb250ZW50PmZvcm0+LnYtY2FyZHtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgMTAwJTtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnYtZGlhbG9nLS1zY3JvbGxhYmxlPi52LW92ZXJsYXlfX2NvbnRlbnQ+LnYtY2FyZD4udi1jYXJkLXRleHQsLnYtZGlhbG9nLS1zY3JvbGxhYmxlPi52LW92ZXJsYXlfX2NvbnRlbnQ+Zm9ybT4udi1jYXJkPi52LWNhcmQtdGV4dHtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdy15OmF1dG99Cg=="}},"time_used":221,"timings":{"blocked":195,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D_iu627J.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.518Z","timestamp":1785139669518,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/D_iu627J.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3750-654aa2b830cfa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 3963\r\nKeep-Alive: timeout=5, max=96\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":14160,"size_decoded":4314,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"da3475486dc16e95fc8e03b39ea9b8ce","sha1":"e7e2e914914d8325d516a0138460fa1ed3e873c2","sha256":"607d49750bd595d37cbce271567a3f8bb32966067e3d0b25718311279987c8f3","sha512":"7fb03055282fe543b7bde372d9bd2a026fa4083c59f833d05dac88c9387a04430005628cae702ab806ec758c7db30e0e08828813b72353d753529e824e808ab0","ssdeep":"192:5brCRe4jUBU6Z+KS2a+6eymiHoKr3AGrF6DlTgCAPzB/ZOdWbEgohUhQFnFE2g7D:JCHUBUA+CdE33rJz39ChUdZ","tlshash":"8b523049f5f214764173f1746e4f84042761034b8e29fdd8bfac92281f1d22ea6f26ad","first_seen":"2025-10-23T03:46:52.841643Z","last_seen":"2026-07-27T11:49:48.951783Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICAkIGFzIFksCiAgYTkgYXMgQiwKICBhMyBhcyBHLAogIGEwIGFzICQsCiAgYTEgYXMgSCwKICBhYSBhcyBKLAogIHIgYXMgVCwKICBSIGFzIE8sCiAgeCBhcyBYLAogIGF3IGFzIHEsCiAgaiBhcyBELAogIG8gYXMgSywKICBibiBhcyBRLAogIHMgYXMgViwKICBhNSBhcyBaLAogIGYgYXMgaSwKICBhMiBhcyBSLAogIGFyIGFzIGVlLAogIGFxIGFzIHRlLAogIGFnIGFzIGFlLAogIGFsIGFzIHJlLAogIGFtIGFzIG9lLAogIGEgYXMgc2UsCiAgaCBhcyBuZSwKICB3IGFzIEksCiAgYiBhcyBzLAogIHUgYXMgZCwKICBuIGFzIG0sCiAgdCBhcyBrLAp9IGZyb20gIi4vU20ybUNmREUuanMiOwppbXBvcnQgeyBjIGFzIGNlLCBiIGFzIGllLCBWIGFzIHcsIGYgYXMgbGUgfSBmcm9tICIuL0MxMGRiWDNrLmpzIjsKaW1wb3J0IHsgViBhcyB1ZSwgdSBhcyBkZSB9IGZyb20gIi4vMVdRRjlubFouanMiOwppbXBvcnQgewogIGggYXMgbWUsCiAgaSBhcyBiZSwKICBmIGFzIHZlLAogIGwgYXMgZmUsCiAgaiBhcyBnZSwKICBuIGFzIEVlLAogIGcgYXMgeWUsCn0gZnJvbSAiLi9aZk5aaXlDbS5qcyI7CmltcG9ydCB7IGEgYXMgcGUsIGIgYXMgQ2UgfSBmcm9tICIuL0I4VHhUeWFrLmpzIjsKaW1wb3J0IHsgViBhcyBQZSB9IGZyb20gIi4vQ011VVRsUzIuanMiOwpmdW5jdGlvbiBUZShlKSB7CiAgY29uc3QgbyA9IE8oZSgpKTsKICBsZXQgdCA9IC0xOwogIGZ1bmN0aW9uIGEoKSB7CiAgICBjbGVhckludGVydmFsKHQpOwogIH0KICBmdW5jdGlvbiBsKCkgewogICAgYSgpLCBhZSgoKSA9PiAoby52YWx1ZSA9IGUoKSkpOwogIH0KICBmdW5jdGlvbiBuKGMpIHsKICAgIGNvbnN0IGIgPSBjID8gZ2V0Q29tcHV0ZWRTdHlsZShjKSA6IHsgdHJhbnNpdGlvbkR1cmF0aW9uOiAwLjIgfSwKICAgICAgdiA9IHBhcnNlRmxvYXQoYi50cmFuc2l0aW9uRHVyYXRpb24pICogMWUzIHx8IDIwMDsKICAgIGlmICgoYSgpLCBvLnZhbHVlIDw9IDApKSByZXR1cm47CiAgICBjb25zdCBwID0gcGVyZm9ybWFuY2Uubm93KCk7CiAgICB0ID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHsKICAgICAgY29uc3QgQyA9IHBlcmZvcm1hbmNlLm5vdygpIC0gcCArIHY7CiAgICAgIChvLnZhbHVlID0gTWF0aC5tYXgoZSgpIC0gQywgMCkpLCBvLnZhbHVlIDw9IDAgJiYgYSgpOwogICAgfSwgdik7CiAgfQogIHJldHVybiBlZShhKSwgeyBjbGVhcjogYSwgdGltZTogbywgc3RhcnQ6IG4sIHJlc2V0OiBsIH07Cn0KY29uc3QgT2UgPSBZKAogICAgewogICAgICBtdWx0aUxpbmU6IEJvb2xlYW4sCiAgICAgIHRleHQ6IFN0cmluZywKICAgICAgdGltZXI6IFtCb29sZWFuLCBTdHJpbmddLAogICAgICB0aW1lb3V0OiB7IHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sIGRlZmF1bHQ6IDVlMyB9LAogICAgICB2ZXJ0aWNhbDogQm9vbGVhbiwKICAgICAgLi4ubWUoeyBsb2NhdGlvbjogImJvdHRvbSIgfSksCiAgICAgIC4uLmJlKCksCiAgICAgIC4uLnBlKCksCiAgICAgIC4uLnZlKCksCiAgICAgIC4uLkIoKSwKICAgICAgLi4uRyhjZSh7IHRyYW5zaXRpb246ICJ2LXNuYWNrYmFyLXRyYW5zaXRpb24iIH0pLCBbCiAgICAgICAgInBlcnNpc3RlbnQiLAogICAgICAgICJub0NsaWNrQW5pbWF0aW9uIiwKICAgICAgICAic2NyaW0iLAogICAgICAgICJzY3JvbGxTdHJhdGVneSIsCiAgICAgIF0pLAogICAgfSwKICAgICJWU25hY2tiYXIiCiAgKSwKICBSZSA9ICQoKSh7CiAgICBuYW1lOiAiVlNuYWNrYmFyIiwKICAgIHByb3BzOiBPZSgpLAogICAgZW1pdHM6IHsgInVwZGF0ZTptb2RlbFZhbHVlIjogKGUpID0+ICEwIH0sCiAgICBzZXR1cChlLCBvKSB7CiAgICAgIGxldCB7IHNsb3RzOiB0IH0gPSBvOwogICAgICBjb25zdCBhID0gSChlLCAibW9kZWxWYWx1ZSIpLAogICAgICAgIHsgcG9zaXRpb25DbGFzc2VzOiBsIH0gPSBmZShlKSwKICAgICAgICB7IHNjb3BlSWQ6IG4gfSA9IGllKCksCiAgICAgICAgeyB0aGVtZUNsYXNzZXM6IGMgfSA9IEooZSksCiAgICAgICAgeyBjb2xvckNsYXNzZXM6IGIsIGNvbG9yU3R5bGVzOiB2LCB2YXJpYW50Q2xhc3NlczogcCB9ID0gZ2UoZSksCiAgICAgICAgeyByb3VuZGVkQ2xhc3NlczogQyB9ID0gQ2UoZSksCiAgICAgICAgZiA9IFRlKCgpID0+IE51bWJlcihlLnRpbWVvdXQpKSwKICAgICAgICBTID0gVCgpLAogICAgICAgIF8gPSBUKCksCiAgICAgICAgZyA9IE8oITEpLAogICAgICAgIEEgPSBPKDApLAogICAgICAgIEwgPSBUKCksCiAgICAgICAgVSA9IFgodWUsIHZvaWQgMCk7CiAgICAgIHEoCiAgICAgICAgKCkgPT4gISFVLAogICAgICAgICgpID0+IHsKICAgICAgICAgIGNvbnN0IHIgPSBkZSgpOwogICAgICAgICAgdGUoKCkgPT4gewogICAgICAgICAgICBMLnZhbHVlID0gci5tYWluU3R5bGVzLnZhbHVlOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICApLAogICAgICAgIEQoYSwgRSksCiAgICAgICAgRCgoKSA9PiBlLnRpbWVvdXQsIEUpLAogICAgICAgIEsoKCkgPT4gewogICAgICAgICAgYS52YWx1ZSAmJiBFKCk7CiAgICAgICAgfSk7CiAgICAgIGxldCBQID0gLTE7CiAgICAgIGZ1bmN0aW9uIEUoKSB7CiAgICAgICAgZi5yZXNldCgpLCB3aW5kb3cuY2xlYXJUaW1lb3V0KFApOwogICAgICAgIGNvbnN0IHIgPSBOdW1iZXIoZS50aW1lb3V0KTsKICAgICAgICBpZiAoIWEudmFsdWUgfHwgciA9PT0gLTEpIHJldHVybjsKICAgICAgICBjb25zdCB1ID0gUShfLnZhbHVlKTsKICAgICAgICBmLnN0YXJ0KHUpLAogICAgICAgICAgKFAgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGEudmFsdWUgPSAhMTsKICAgICAgICAgIH0sIHIpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBoKCkgewogICAgICAgIGYucmVzZXQoKSwgd2luZG93LmNsZWFyVGltZW91dChQKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBGKCkgewogICAgICAgIChnLnZhbHVlID0gITApLCBoKCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gTigpIHsKICAgICAgICAoZy52YWx1ZSA9ICExKSwgRSgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGoocikgewogICAgICAgIEEudmFsdWUgPSByLnRvdWNoZXNbMF0uY2xpZW50WTsKICAgICAgfQogICAgICBmdW5jdGlvbiB6KHIpIHsKICAgICAgICBNYXRoLmFicyhBLnZhbHVlIC0gci5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZKSA+IDUwICYmIChhLnZhbHVlID0gITEpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIFcoKSB7CiAgICAgICAgZy52YWx1ZSAmJiBOKCk7CiAgICAgIH0KICAgICAgY29uc3QgTSA9IFYoKCkgPT4KICAgICAgICBlLmxvY2F0aW9uCiAgICAgICAgICAuc3BsaXQoIiAiKQogICAgICAgICAgLnJlZHVjZSgociwgdSkgPT4gKChyW2B2LXNuYWNrYmFyLS0ke3V9YF0gPSAhMCksIHIpLCB7fSkKICAgICAgKTsKICAgICAgcmV0dXJuICgKICAgICAgICBaKCgpID0+IHsKICAgICAgICAgIGNvbnN0IHIgPSB3LmZpbHRlclByb3BzKGUpLAogICAgICAgICAgICB1ID0gISEodC5kZWZhdWx0IHx8IHQudGV4dCB8fCBlLnRleHQpOwogICAgICAgICAgcmV0dXJuIGkoCiAgICAgICAgICAgIHcsCiAgICAgICAgICAgIFIoCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmVmOiBTLAogICAgICAgICAgICAgICAgY2xhc3M6IFsKICAgICAgICAgICAgICAgICAgInYtc25hY2tiYXIiLAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInYtc25hY2tiYXItLWFjdGl2ZSI6IGEudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgInYtc25hY2tiYXItLW11bHRpLWxpbmUiOiBlLm11bHRpTGluZSAmJiAhZS52ZXJ0aWNhbCwKICAgICAgICAgICAgICAgICAgICAidi1zbmFja2Jhci0tdGltZXIiOiAhIWUudGltZXIsCiAgICAgICAgICAgICAgICAgICAgInYtc25hY2tiYXItLXZlcnRpY2FsIjogZS52ZXJ0aWNhbCwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgTS52YWx1ZSwKICAgICAgICAgICAgICAgICAgbC52YWx1ZSwKICAgICAgICAgICAgICAgICAgZS5jbGFzcywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzdHlsZTogW0wudmFsdWUsIGUuc3R5bGVdLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtb2RlbFZhbHVlOiBhLnZhbHVlLAogICAgICAgICAgICAgICAgIm9uVXBkYXRlOm1vZGVsVmFsdWUiOiAoeSkgPT4gKGEudmFsdWUgPSB5KSwKICAgICAgICAgICAgICAgIGNvbnRlbnRQcm9wczogUigKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgICAgICAgICAidi1zbmFja2Jhcl9fd3JhcHBlciIsCiAgICAgICAgICAgICAgICAgICAgICBjLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgYi52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIEMudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBwLnZhbHVlLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IFt2LnZhbHVlXSwKICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJlbnRlcjogRiwKICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJsZWF2ZTogTiwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgci5jb250ZW50UHJvcHMKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBwZXJzaXN0ZW50OiAhMCwKICAgICAgICAgICAgICAgIG5vQ2xpY2tBbmltYXRpb246ICEwLAogICAgICAgICAgICAgICAgc2NyaW06ICExLAogICAgICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6ICJub25lIiwKICAgICAgICAgICAgICAgIF9kaXNhYmxlR2xvYmFsU3RhY2s6ICEwLAogICAgICAgICAgICAgICAgb25Ub3VjaHN0YXJ0UGFzc2l2ZTogaiwKICAgICAgICAgICAgICAgIG9uVG91Y2hlbmQ6IHosCiAgICAgICAgICAgICAgICBvbkFmdGVyTGVhdmU6IFcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBuCiAgICAgICAgICAgICksCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiB7CiAgICAgICAgICAgICAgICB2YXIgeSwgeDsKICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgIEVlKCExLCAidi1zbmFja2JhciIpLAogICAgICAgICAgICAgICAgICBlLnRpbWVyICYmCiAgICAgICAgICAgICAgICAgICAgIWcudmFsdWUgJiYKICAgICAgICAgICAgICAgICAgICBpKCJkaXYiLCB7IGtleTogInRpbWVyIiwgY2xhc3M6ICJ2LXNuYWNrYmFyX190aW1lciIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgaSgKICAgICAgICAgICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IF8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHR5cGVvZiBlLnRpbWVyID09ICJzdHJpbmciID8gZS50aW1lciA6ICJpbmZvIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg6IGUudGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kZWwtdmFsdWUiOiBmLnRpbWUudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIHUgJiYKICAgICAgICAgICAgICAgICAgICBpKAogICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogImNvbnRlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInYtc25hY2tiYXJfX2NvbnRlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAic3RhdHVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFyaWEtbGl2ZSI6ICJwb2xpdGUiLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgKCh5ID0gdC50ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogeS5jYWxsKHQpKSA/PyBlLnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICh4ID0gdC5kZWZhdWx0KSA9PSBudWxsID8gdm9pZCAwIDogeC5jYWxsKHQpLAogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHQuYWN0aW9ucyAmJgogICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICBQZSwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICBWQnRuOiB7IHZhcmlhbnQ6ICJ0ZXh0IiwgcmlwcGxlOiAhMSwgc2xpbTogITAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICBpKCJkaXYiLCB7IGNsYXNzOiAidi1zbmFja2Jhcl9fYWN0aW9ucyIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5hY3Rpb25zKHsgaXNBY3RpdmU6IGEgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhY3RpdmF0b3I6IHQuYWN0aXZhdG9yLAogICAgICAgICAgICB9CiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIGxlKHt9LCBTKQogICAgICApOwogICAgfSwKICB9KSwKICBTZSA9IHsgY2xhc3M6ICJmbGV4IGFsaWduLXN0YXJ0IGdhcC00IGxnOm1heC13LVszMnJlbV0iIH0sCiAgX2UgPSB7IGNsYXNzOiAicHQtMy41IHByLTEuNSIgfSwKICBrZSA9IHsKICAgIF9fbmFtZTogIlNuYWtCYXIiLAogICAgcHJvcHM6IHJlKAogICAgICB7CiAgICAgICAgbW9kZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICJlcnJvciIgfSwKICAgICAgICBtZXNzYWdlVGV4dDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgbWVzc2FnZVRpdGxlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgfSwKICAgICAgeyBlcnJvcjogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LCBlcnJvck1vZGlmaWVyczoge30gfQogICAgKSwKICAgIGVtaXRzOiBbInVwZGF0ZTplcnJvciJdLAogICAgc2V0dXAoZSkgewogICAgICBjb25zdCBvID0gb2UoZSwgImVycm9yIiksCiAgICAgICAgdCA9IGUsCiAgICAgICAgYSA9IFYoKCkgPT4gKHsKICAgICAgICAgIGJnOiBgYmctJHt0Lm1vZGV9LTI1YCwKICAgICAgICAgIGJvcmRlcjogYCR7dC5tb2RlfS02MDBgLAogICAgICAgICAgdGl0bGU6IGB0ZXh0LSR7dC5tb2RlfS04MDBgLAogICAgICAgICAgY29udGVudDogYHRleHQtJHt0Lm1vZGV9LTcwMGAsCiAgICAgICAgfSkpOwogICAgICByZXR1cm4gKGwsIG4pID0+ICgKICAgICAgICBzZSgpLAogICAgICAgIG5lKAogICAgICAgICAgUmUsCiAgICAgICAgICB7CiAgICAgICAgICAgIG1vZGVsVmFsdWU6IG8udmFsdWUsCiAgICAgICAgICAgICJvblVwZGF0ZTptb2RlbFZhbHVlIjogblsxXSB8fCAoblsxXSA9IChjKSA9PiAoby52YWx1ZSA9IGMpKSwKICAgICAgICAgICAgdGltZW91dDogMWU0LAogICAgICAgICAgICAiY2xvc2Utb24tY29udGVudC1jbGljayI6ICIiLAogICAgICAgICAgICB0b3A6ICIiLAogICAgICAgICAgICByaWdodDogIiIsCiAgICAgICAgICAgIHJvdW5kZWQ6ICJsZyIsCiAgICAgICAgICAgIGNvbG9yOiBkKGEpLmJvcmRlciwKICAgICAgICAgICAgdmFyaWFudDogIm91dGxpbmVkIiwKICAgICAgICAgICAgY2xhc3M6ICJjdXN0b20tc25hY2tiYXItc3R5bGUiLAogICAgICAgICAgICAiY29udGVudC1jbGFzcyI6IGQoYSkuYmcsCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICBhY3Rpb25zOiBJKCh7IGF0dHJzOiBjIH0pID0+IFsKICAgICAgICAgICAgICBzKCJkaXYiLCBfZSwgWwogICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICBSKGMsIHsKICAgICAgICAgICAgICAgICAgICBjbGFzczogWwogICAgICAgICAgICAgICAgICAgICAgIm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCB0ZXh0LXJlZC04MDAgY3Vyc29yLXBvaW50ZXIiLAogICAgICAgICAgICAgICAgICAgICAgZChhKS50aXRsZSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG5bMF0gfHwgKG5bMF0gPSAoYikgPT4gKG8udmFsdWUgPSAhMSkpLAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgIiBjbG9zZSAiLAogICAgICAgICAgICAgICAgICAxNgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIGRlZmF1bHQ6IEkoKCkgPT4gWwogICAgICAgICAgICAgIHMoImRpdiIsIFNlLCBbCiAgICAgICAgICAgICAgICBzKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogbShbInJvdW5kZWQtcGlsbCBwLTEuNSIsIGBiZy0ke3QubW9kZX0tNTBgXSkgfSwKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzczogbShbInJvdW5kZWQtcGlsbCBwLTEiLCBgYmctJHt0Lm1vZGV9LTEwMGBdKSB9LAogICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IG0oWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB0ZXh0LSR7dC5tb2RlfS02MDBgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHJlcG9ydCAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIHMoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogbShbCiAgICAgICAgICAgICAgICAgICAgICAgICJsZzp0ZXh0LW1kLW1lZGl1bSB0ZXh0LXNtLW1lZGl1bSIsCiAgICAgICAgICAgICAgICAgICAgICAgIGQoYSkudGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGsodC5tZXNzYWdlVGl0bGUpLAogICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogbShbCiAgICAgICAgICAgICAgICAgICAgICAgICJsZzp0ZXh0LW1kLXJlZ3VsYXIgdGV4dC1zbS1yZWd1bGFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgW2QoYSkuY29udGVudCwgeyAibXQtMi41IjogIXQuZXJyb3JUaXRsZSB9XSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgayh0Lm1lc3NhZ2VUZXh0IHx8IGwuJHQoInRvYXN0LmFuRXJyb3IiKSksCiAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICBfOiAxLAogICAgICAgICAgfSwKICAgICAgICAgIDgsCiAgICAgICAgICBbIm1vZGVsVmFsdWUiLCAiY29sb3IiLCAiY29udGVudC1jbGFzcyJdCiAgICAgICAgKQogICAgICApOwogICAgfSwKICB9LAogIHdlID0gT2JqZWN0LmZyZWV6ZSh7IFNFTkQ6ICJzZW5kIiwgUkVDRUlWRTogInJlY2VpdmUiIH0pLAogIFZlID0gT2JqZWN0LmZyZWV6ZSh7CiAgICBDQUxDVUxBVEU6ICJkaXJlY3Rpb24uY2FsY3VsYXRlIiwKICAgIENPVVBPTjogImRpcmVjdGlvbixkaXJlY3Rpb24ucmVjZWl2ZUN1cnJlbmN5LGRpcmVjdGlvbi5jYWxjdWxhdGUiLAogICAgUkVDRUlWRV9DVVJSRU5DWTogImRpcmVjdGlvbixkaXJlY3Rpb24ucmVjZWl2ZUN1cnJlbmN5IiwKICAgIENPTVBMRVRFX0RJUkVDVElPTjoKICAgICAgImRpcmVjdGlvbixkaXJlY3Rpb24uc2VuZER5bmFtaWNGaWVsZHMsZGlyZWN0aW9uLnJlY2VpdmVEeW5hbWljRmllbGRzIiwKICAgIFdBTExFVF9JTkZPOgogICAgICAiZGlyZWN0aW9uLGRpcmVjdGlvbi5yZWNlaXZlQ3VycmVuY3ksZGlyZWN0aW9uLmNhbGN1bGF0ZSxkaXJlY3Rpb24uc2VuZER5bmFtaWNGaWVsZHMsZGlyZWN0aW9uLnJlY2VpdmVEeW5hbWljRmllbGRzIiwKICB9KSwKICBVZSA9IE9iamVjdC5mcmVlemUoewogICAgUEFQQUw6IFsiUFBVU0QiLCAiUFBFVVIiLCAiUFBHQlAiLCAiUFBSVUIiXSwKICAgIFZPVUNIRVI6ICJQTVZVU0QiLAogIH0pLAogIGhlID0gT2JqZWN0LmZyZWV6ZSh7CiAgICBTRU5EX1NMVUc6ICJjdXJfZnJvbSIsCiAgICBTRU5EX0FNT1VOVDogInNlbmRfYW1vdW50IiwKICAgIFJFQ0VJVkVfU0xVRzogImN1cl90byIsCiAgICBSRUNFSVZFX0FNT1VOVDogInJlY2VpdmVfYW1vdW50IiwKICB9KSwKICBGZSA9IE9iamVjdC5mcmVlemUoewogICAgRElSRUNUSU9OOiAiZGlyZWN0aW9uIiwKICAgIFdBTExFVF9JTkZPOiAid2FsbGV0LWluZm8iLAogICAgUkVWSUVXX09SREVSOiAicmV2aWV3LW9yZGVyIiwKICAgIFBBWV9PUkRFUjogInBheS1vcmRlciIsCiAgfSksCiAgamUgPSBPYmplY3QuZnJlZXplKHsgVEVYVDogIlRFWFQiLCBGSUxFOiAiRklMRSIgfSksCiAgemUgPSBPYmplY3QuZnJlZXplKHsKICAgIEFVVE9fQ1JZUFRPX1BBWTogImF1dG9fY3J5cHRvX3BheSIsCiAgICBBVVRPX0VfQ1VSUkVOQ1lfUEFZOiAiYXV0b19lX2N1cnJlbmN5X3BheSIsCiAgICBNQU5VQUxfQ1JZUFRPX1BBWTogIm1hbnVhbF9jcnlwdG9fcGF5IiwKICAgIE1BTlVBTF9FX0NVUlJFTkNZX1BBWTogIm1hbnVhbF9lX2N1cnJlbmN5X3BheSIsCiAgICBWT1VDSEVSX1BBWTogInZvdWNoZXJfcGF5IiwKICB9KSwKICBXZSA9IE9iamVjdC5mcmVlemUoewogICAgVU5QQUlEOiAidW5wYWlkIiwKICAgIFBFTkRJTkc6ICJwZW5kaW5nIiwKICAgIFBST0NFU1NJTkc6ICJwcm9jZXNzaW5nIiwKICAgIERPTkU6ICJkb25lIiwKICAgIENBTkNFTDogImNhbmNlbCIsCiAgICBSRUZVTkQ6ICJyZWZ1bmQiLAogIH0pLAogIE1lID0gT2JqZWN0LmZyZWV6ZSh7CiAgICB1bnBhaWQ6IHsKICAgICAgYmdDb2xvcjogImJnLXdhcm5pbmctNTAiLAogICAgICB0ZXh0TGFiZWw6ICJVbnBhaWQiLAogICAgICBjb2xvcjogInRleHQtd2FybmluZy02MDAiLAogICAgICBib3JkZXI6ICJib3JkZXItd2FybmluZy02MDAiLAogICAgfSwKICAgIHBlbmRpbmc6IHsKICAgICAgYmdDb2xvcjogImJnLWdyYXktNTAiLAogICAgICB0ZXh0TGFiZWw6ICJQZW5kaW5nIiwKICAgICAgY29sb3I6ICJ0ZXh0LWdyYXktNjAwIiwKICAgICAgYm9yZGVyOiAiYm9yZGVyLWdyYXktNjAwIiwKICAgIH0sCiAgICBwcm9jZXNzaW5nOiB7CiAgICAgIGJnQ29sb3I6ICJiZy1wcmltYXJ5LTUwIiwKICAgICAgdGV4dExhYmVsOiAiUHJvY2Vzc2luZyIsCiAgICAgIGNvbG9yOiAidGV4dC1wcmltYXJ5LTYwMCIsCiAgICAgIGJvcmRlcjogImJvcmRlci1wcmltYXJ5LTYwMCIsCiAgICB9LAogICAgZG9uZTogewogICAgICBiZ0NvbG9yOiAiYmctc3VjY2Vzcy01MCIsCiAgICAgIHRleHRMYWJlbDogIkRvbmUiLAogICAgICBjb2xvcjogInRleHQtc3VjY2Vzcy02MDAiLAogICAgICBib3JkZXI6ICJib3JkZXItc3VjY2Vzcy02MDAiLAogICAgfSwKICAgIHN1Y2Nlc3M6IHsKICAgICAgYmdDb2xvcjogImJnLXN1Y2Nlc3MtNTAiLAogICAgICB0ZXh0TGFiZWw6ICJTdWNjZXNzIiwKICAgICAgY29sb3I6ICJ0ZXh0LXN1Y2Nlc3MtNzAwIiwKICAgICAgYm9yZGVyOiAiYm9yZGVyLXN1Y2Nlc3MtNzAwIiwKICAgIH0sCiAgICBzdXNwZW5kOiB7CiAgICAgIGJnQ29sb3I6ICJiZy13YXJuaW5nLTUwIiwKICAgICAgdGV4dExhYmVsOiAiU3VzcGVuZGVkIiwKICAgICAgY29sb3I6ICIgdGV4dC13YXJuaW5nLTcwMCIsCiAgICAgIGJvcmRlcjogImJvcmRlci13YXJuaW5nLTcwMCIsCiAgICB9LAogICAgY2FuY2VsOiB7CiAgICAgIGJnQ29sb3I6ICJiZy1lcnJvci01MCIsCiAgICAgIHRleHRMYWJlbDogIkNhbmNlbGVkIiwKICAgICAgY29sb3I6ICJ0ZXh0LWVycm9yLTYwMCIsCiAgICAgIGJvcmRlcjogImJvcmRlci1lcnJvci02MDAiLAogICAgfSwKICAgIHJlamVjdDogewogICAgICBiZ0NvbG9yOiAiYmctZXJyb3ItNTAiLAogICAgICB0ZXh0TGFiZWw6ICJSZWplY3QiLAogICAgICBjb2xvcjogInRleHQtZXJyb3ItNzAwIiwKICAgICAgYm9yZGVyOiAiYm9yZGVyLWVycm9yLTcwMCIsCiAgICB9LAogICAgcmVmdW5kOiB7CiAgICAgIGJnQ29sb3I6ICJiZy1ncmF5LTUwIiwKICAgICAgdGV4dExhYmVsOiAiUmVmdW5kIiwKICAgICAgY29sb3I6ICJ0ZXh0LWdyYXktNjAwIiwKICAgICAgYm9yZGVyOiAiYm9yZGVyLWdyYXktNjAwIiwKICAgIH0sCiAgfSksCiAgWWUgPSBPYmplY3QuZnJlZXplKHsKICAgIFNJR05fSU46ICJzaWduSW4iLAogICAgU0lHTl9VUDogInNpZ25VcCIsCiAgICBGT1JHRVRfUEFTU1dPUkQ6ICJmb3JnZXRQYXNzd29yZCIsCiAgfSksCiAgQmUgPSBPYmplY3QuZnJlZXplKHsKICAgIEVNQUlMOiAiZW1haWwiLAogICAgT1RQOiAib3RwIiwKICAgIFBBU1NXT1JEOiAicGFzc3dvcmQiLAogICAgV0VMTF9ET05FOiAid2VsbC1kb25lIiwKICB9KSwKICBHZSA9IE9iamVjdC5mcmVlemUoeyBXSVRIRFJBVzogIndpdGhkcmF3IiB9KSwKICAkZSA9IE9iamVjdC5mcmVlemUoeyBQUk9EVUNUSU9OOiAicHJvZHVjdGlvbiIgfSksCiAgSGUgPSBPYmplY3QuZnJlZXplKHsKICAgIEVSUk9SOiAiZXJyb3IiLAogICAgV0FSTjogIndhcm5pbmciLAogICAgU1VDQ0VTUzogInN1Y2Nlc3MiLAogICAgSU5GTzogImdyYXkiLAogIH0pLAogIEplID0gT2JqZWN0LmZyZWV6ZSh7CiAgICBPUkRFUjogIk9SREVSIiwKICAgIERFUE9TSVQ6ICJERVBPU0lUIiwKICAgIFdJVEhEUkFXQUw6ICJXSVRIRFJBV0FMIiwKICAgIEFGRklMSUFURTogIkFGRklMSUFURSIsCiAgICBUUkFOU0ZFUjogIlRSQU5TRkVSIiwKICAgIENPVVBPTjogIkNPVVBPTiIsCiAgICBXQUxMRVQ6ICJXQUxMRVQiLAogIH0pLAogIFhlID0gT2JqZWN0LmZyZWV6ZSh7IFBFTkRJTkc6ICJQRU5ESU5HIiwgUkVKRUNUOiAiUkVKRUNUIiwgRE9ORTogIkRPTkUiIH0pOwpleHBvcnQgewogIFllIGFzIEEsCiAgR2UgYXMgRCwKICBCZSBhcyBGLAogIEplIGFzIFQsCiAgSGUgYXMgViwKICBrZSBhcyBfLAogIFhlIGFzIGEsCiAgd2UgYXMgYiwKICBXZSBhcyBjLAogIEZlIGFzIGQsCiAgJGUgYXMgZSwKICBqZSBhcyBmLAogIFZlIGFzIGksCiAgTWUgYXMgbywKICB6ZSBhcyBwLAogIGhlIGFzIHIsCiAgVWUgYXMgcywKfTsK"}},"time_used":98,"timings":{"blocked":71,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/logos/jolixo-logo.svg","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.590Z","timestamp":1785139670590,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/logos/jolixo-logo.svg HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"af80-654aa2b99f820\"\r\nAccept-Ranges: bytes\r\nContent-Length: 44928\r\nKeep-Alive: timeout=5, max=89\r\nConnection: Keep-Alive\r\nContent-Type: image/svg+xml\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":44928,"size_decoded":45219,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"a3ce8e6167557491006cccc9c8145996","sha1":"180cb8d0c3e8ec5cb1c0c6ec2fb279430be43e44","sha256":"60761acf1bdcc37f804b6accd04097bbdbfc7328d93c1fc68ac549468544c745","sha512":"7accdbd34b4794ad19d0ea4d5e113ff552bd2bf913ea12dccec10d2e9a51dda82e7fe6256876157e61ee23e6c82e07772e30d02ca01099d864eb5143d890ef87","ssdeep":"768:e6uwP7II7WPGoN9aIhaNnP0+NDE7N7ubI+5UsMq+GJ4gcV4v8AFIO+EqeU:Ow8yWuoNVhajE0bzrdJ4glk6+PeU","tlshash":"3413c0f25352fffcb401d3e8d4214890fd8a78bfe39493f4d2852997c66e4a94946ca8","first_seen":"2026-07-27T05:24:57.750719Z","last_seen":"2026-07-27T11:49:48.899783Z","times_seen":5,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iOTgiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCA5OCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0idXJsKCNwYXR0ZXJuMF8wXzQ3KSIvPgo8cGF0aCBkPSJNMzQuMDcyOCA0LjA5MDkxVjE1SDMyLjA4MDZMMjcuMzM0NSA4LjEzMzg4SDI3LjI1NDZWMTVIMjQuOTQ4MlY0LjA5MDkxSDI2Ljk3MjNMMzEuNjgxMSAxMC45NTE3SDMxLjc3N1Y0LjA5MDkxSDM0LjA3MjhaTTQ1LjYwMzggNy45MTAxNkg0My4yNzA3QzQzLjIyODEgNy42MDgzMSA0My4xNDExIDcuMzQwMiA0My4wMDk3IDcuMTA1ODJDNDIuODc4MyA2Ljg2NzkgNDIuNzA5NiA2LjY2NTQ4IDQyLjUwMzYgNi40OTg1OEM0Mi4yOTc3IDYuMzMxNjggNDIuMDU5NyA2LjIwMzgzIDQxLjc4OTkgNi4xMTUwNkM0MS41MjM1IDYuMDI2MjggNDEuMjM0MSA1Ljk4MTg5IDQwLjkyMTYgNS45ODE4OUM0MC4zNTcgNS45ODE4OSAzOS44NjUxIDYuMTIyMTYgMzkuNDQ2MSA2LjQwMjdDMzkuMDI3MSA2LjY3OTY5IDM4LjcwMjEgNy4wODQ1MiAzOC40NzEzIDcuNjE3MTlDMzguMjQwNSA4LjE0NjMxIDM4LjEyNTEgOC43ODkwNiAzOC4xMjUxIDkuNTQ1NDVDMzguMTI1MSAxMC4zMjMyIDM4LjI0MDUgMTAuOTc2NiAzOC40NzEzIDExLjUwNTdDMzguNzA1NyAxMi4wMzQ4IDM5LjAzMjQgMTIuNDM0MyAzOS40NTE0IDEyLjcwNDJDMzkuODcwNSAxMi45NzQxIDQwLjM1NTIgMTMuMTA5IDQwLjkwNTYgMTMuMTA5QzQxLjIxNDYgMTMuMTA5IDQxLjUwMDQgMTMuMDY4MiA0MS43NjMyIDEyLjk4NjVDNDIuMDI5NiAxMi45MDQ4IDQyLjI2NTcgMTIuNzg1OSA0Mi40NzE3IDEyLjYyOTZDNDIuNjc3NiAxMi40Njk4IDQyLjg0ODEgMTIuMjc2MyA0Mi45ODMgMTIuMDQ5QzQzLjEyMTUgMTEuODIxNyA0My4yMTc0IDExLjU2MjUgNDMuMjcwNyAxMS4yNzEzTDQ1LjYwMzggMTEuMjgyQzQ1LjU0MzQgMTEuNzgyNyA0NS4zOTI1IDEyLjI2NTYgNDUuMTUxIDEyLjczMDhDNDQuOTEzMSAxMy4xOTI1IDQ0LjU5MTcgMTMuNjA2MiA0NC4xODY5IDEzLjk3MTlDNDMuNzg1NiAxNC4zMzQyIDQzLjMwNjIgMTQuNjIxOCA0Mi43NDg3IDE0LjgzNDlDNDIuMTk0NyAxNS4wNDQ0IDQxLjU2NzkgMTUuMTQ5MSA0MC44NjgzIDE1LjE0OTFDMzkuODk1MyAxNS4xNDkxIDM5LjAyNTMgMTQuOTI5IDM4LjI1ODMgMTQuNDg4NkMzNy40OTQ4IDE0LjA0ODMgMzYuODkxMSAxMy40MTA5IDM2LjQ0NzIgMTIuNTc2M0MzNi4wMDY4IDExLjc0MTggMzUuNzg2NyAxMC43MzE1IDM1Ljc4NjcgOS41NDU0NUMzNS43ODY3IDguMzU1ODIgMzYuMDEwNCA3LjM0Mzc1IDM2LjQ1NzggNi41MDkyM0MzNi45MDUzIDUuNjc0NzIgMzcuNTEyNSA1LjAzOTA2IDM4LjI3OTYgNC42MDIyN0MzOS4wNDY2IDQuMTYxOTMgMzkuOTA5NSAzLjk0MTc2IDQwLjg2ODMgMy45NDE3NkM0MS41MDA0IDMuOTQxNzYgNDIuMDg2NCA0LjAzMDU0IDQyLjYyNjIgNC4yMDgxQzQzLjE2OTUgNC4zODU2NSA0My42NTA3IDQuNjQ0ODkgNDQuMDY5NyA0Ljk4NTc5QzQ0LjQ4ODcgNS4zMjMxNSA0NC44Mjk2IDUuNzM2ODYgNDUuMDkyNCA2LjIyNjkyQzQ1LjM1ODggNi43MTY5NyA0NS41MjkyIDcuMjc4MDUgNDUuNjAzOCA3LjkxMDE2Wk01MC45MTE4IDE1LjE1OThDNTAuMDg0NCAxNS4xNTk4IDQ5LjM2ODkgMTQuOTg0IDQ4Ljc2NTIgMTQuNjMyNUM0OC4xNjUgMTQuMjc3MyA0Ny43MDE2IDEzLjc4MzcgNDcuMzc0OSAxMy4xNTE2QzQ3LjA0ODIgMTIuNTE2IDQ2Ljg4NDkgMTEuNzc5MSA0Ni44ODQ5IDEwLjk0MTFDNDYuODg0OSAxMC4wOTU5IDQ3LjA0ODIgOS4zNTcyNCA0Ny4zNzQ5IDguNzI1MTRDNDcuNzAxNiA4LjA4OTQ5IDQ4LjE2NSA3LjU5NTg4IDQ4Ljc2NTIgNy4yNDQzMkM0OS4zNjg5IDYuODg5MiA1MC4wODQ0IDYuNzExNjUgNTAuOTExOCA2LjcxMTY1QzUxLjczOTMgNi43MTE2NSA1Mi40NTMgNi44ODkyIDUzLjA1MzIgNy4yNDQzMkM1My42NTY5IDcuNTk1ODggNTQuMTIyMSA4LjA4OTQ5IDU0LjQ0ODggOC43MjUxNEM1NC43NzU1IDkuMzU3MjQgNTQuOTM4OCAxMC4wOTU5IDU0LjkzODggMTAuOTQxMUM1NC45Mzg4IDExLjc3OTEgNTQuNzc1NSAxMi41MTYgNTQuNDQ4OCAxMy4xNTE2QzU0LjEyMjEgMTMuNzgzNyA1My42NTY5IDE0LjI3NzMgNTMuMDUzMiAxNC42MzI1QzUyLjQ1MyAxNC45ODQgNTEuNzM5MyAxNS4xNTk4IDUwLjkxMTggMTUuMTU5OFpNNTAuOTIyNSAxMy40MDJDNTEuMjk4OSAxMy40MDIgNTEuNjEzMiAxMy4yOTU1IDUxLjg2NTMgMTMuMDgyNEM1Mi4xMTc1IDEyLjg2NTggNTIuMzA3NCAxMi41NzEgNTIuNDM1MyAxMi4xOTgyQzUyLjU2NjcgMTEuODI1MyA1Mi42MzI0IDExLjQwMDkgNTIuNjMyNCAxMC45MjUxQzUyLjYzMjQgMTAuNDQ5MiA1Mi41NjY3IDEwLjAyNDkgNTIuNDM1MyA5LjY1MTk5QzUyLjMwNzQgOS4yNzkxMiA1Mi4xMTc1IDguOTg0MzcgNTEuODY1MyA4Ljc2Nzc2QzUxLjYxMzIgOC41NTExNCA1MS4yOTg5IDguNDQyODMgNTAuOTIyNSA4LjQ0MjgzQzUwLjU0MjUgOC40NDI4MyA1MC4yMjI5IDguNTUxMTQgNDkuOTYzNyA4Ljc2Nzc2QzQ5LjcwOCA4Ljk4NDM3IDQ5LjUxNDUgOS4yNzkxMiA0OS4zODMxIDkuNjUxOTlDNDkuMjU1MiAxMC4wMjQ5IDQ5LjE5MTMgMTAuNDQ5MiA0OS4xOTEzIDEwLjkyNTFDNDkuMTkxMyAxMS40MDA5IDQ5LjI1NTIgMTEuODI1MyA0OS4zODMxIDEyLjE5ODJDNDkuNTE0NSAxMi41NzEgNDkuNzA4IDEyLjg2NTggNDkuOTYzNyAxMy4wODI0QzUwLjIyMjkgMTMuMjk1NSA1MC41NDI1IDEzLjQwMiA1MC45MjI1IDEzLjQwMlpNNTguNjgzNSAxMC4yNjk5VjE1SDU2LjQxNDNWNi44MTgxOEg1OC41NzdWOC4yNjE3Mkg1OC42NzI5QzU4Ljg1NCA3Ljc4NTg3IDU5LjE1NzYgNy40MDk0NSA1OS41ODM3IDcuMTMyNDZDNjAuMDA5OSA2Ljg1MTkyIDYwLjUyNjUgNi43MTE2NSA2MS4xMzM4IDYuNzExNjVDNjEuNzAyIDYuNzExNjUgNjIuMTk3NCA2LjgzNTk0IDYyLjYxOTkgNy4wODQ1MkM2My4wNDI1IDcuMzMzMSA2My4zNzEgNy42ODgyMSA2My42MDU0IDguMTQ5ODZDNjMuODM5OCA4LjYwNzk1IDYzLjk1NjkgOS4xNTQ4MyA2My45NTY5IDkuNzkwNDhWMTVINjEuNjg3OFYxMC4xOTUzQzYxLjY5MTMgOS42OTQ2IDYxLjU2MzUgOS4zMDM5OCA2MS4zMDQyIDkuMDIzNDRDNjEuMDQ1IDguNzM5MzUgNjAuNjg4MSA4LjU5NzMgNjAuMjMzNiA4LjU5NzNDNTkuOTI4MiA4LjU5NzMgNTkuNjU4MyA4LjY2MyA1OS40MjM5IDguNzk0MzlDNTkuMTkzMSA4LjkyNTc4IDU5LjAxMiA5LjExNzU0IDU4Ljg4MDYgOS4zNjk2N0M1OC43NTI4IDkuNjE4MjUgNTguNjg3MSA5LjkxODMyIDU4LjY4MzUgMTAuMjY5OVpNNjguMDE0NiAxMC4yNjk5VjE1SDY1Ljc0NTRWNi44MTgxOEg2Ny45MDhWOC4yNjE3Mkg2OC4wMDM5QzY4LjE4NSA3Ljc4NTg3IDY4LjQ4ODYgNy40MDk0NSA2OC45MTQ4IDcuMTMyNDZDNjkuMzQwOSA2Ljg1MTkyIDY5Ljg1NzYgNi43MTE2NSA3MC40NjQ4IDYuNzExNjVDNzEuMDMzIDYuNzExNjUgNzEuNTI4NCA2LjgzNTk0IDcxLjk1MSA3LjA4NDUyQzcyLjM3MzYgNy4zMzMxIDcyLjcwMjEgNy42ODgyMSA3Mi45MzY0IDguMTQ5ODZDNzMuMTcwOCA4LjYwNzk1IDczLjI4OCA5LjE1NDgzIDczLjI4OCA5Ljc5MDQ4VjE1SDcxLjAxODhWMTAuMTk1M0M3MS4wMjI0IDkuNjk0NiA3MC44OTQ1IDkuMzAzOTggNzAuNjM1MyA5LjAyMzQ0QzcwLjM3NjEgOC43MzkzNSA3MC4wMTkyIDguNTk3MyA2OS41NjQ2IDguNTk3M0M2OS4yNTkyIDguNTk3MyA2OC45ODkzIDguNjYzIDY4Ljc1NSA4Ljc5NDM5QzY4LjUyNDEgOC45MjU3OCA2OC4zNDMgOS4xMTc1NCA2OC4yMTE2IDkuMzY5NjdDNjguMDgzOCA5LjYxODI1IDY4LjAxODEgOS45MTgzMiA2OC4wMTQ2IDEwLjI2OTlaTTc4LjgwNTEgMTUuMTU5OEM3Ny45NjM1IDE1LjE1OTggNzcuMjM5MSAxNC45ODkzIDc2LjYzMTggMTQuNjQ4NEM3Ni4wMjgxIDE0LjMwNCA3NS41NjI5IDEzLjgxNzUgNzUuMjM2MiAxMy4xODg5Qzc0LjkwOTUgMTIuNTU2OCA3NC43NDYyIDExLjgwOTMgNzQuNzQ2MiAxMC45NDY0Qzc0Ljc0NjIgMTAuMTA0OCA3NC45MDk1IDkuMzY2MTIgNzUuMjM2MiA4LjczMDQ3Qzc1LjU2MjkgOC4wOTQ4MiA3Ni4wMjI4IDcuNTk5NDMgNzYuNjE1OSA3LjI0NDMyQzc3LjIxMjQgNi44ODkyIDc3LjkxMiA2LjcxMTY1IDc4LjcxNDYgNi43MTE2NUM3OS4yNTQ0IDYuNzExNjUgNzkuNzU2OCA2Ljc5ODY1IDgwLjIyMiA2Ljk3MjY2QzgwLjY5MDggNy4xNDMxMSA4MS4wOTkyIDcuNDAwNTcgODEuNDQ3MiA3Ljc0NTAzQzgxLjc5ODcgOC4wODk0OSA4Mi4wNzIyIDguNTIyNzMgODIuMjY3NSA5LjA0NDc0QzgyLjQ2MjggOS41NjMyMSA4Mi41NjA1IDEwLjE3MDUgODIuNTYwNSAxMC44NjY1VjExLjQ4OTdINzUuNjUxN1YxMC4wODM1SDgwLjQyNDRDODAuNDI0NCA5Ljc1Njc1IDgwLjM1MzQgOS40NjczMyA4MC4yMTE0IDkuMjE1MkM4MC4wNjkzIDguOTYzMDcgNzkuODcyMiA4Ljc2NTk4IDc5LjYyMDEgOC42MjM5M0M3OS4zNzE1IDguNDc4MzQgNzkuMDgyMSA4LjQwNTU0IDc4Ljc1MTkgOC40MDU1NEM3OC40MDc0IDguNDA1NTQgNzguMTAyIDguNDg1NDQgNzcuODM1NyA4LjY0NTI0Qzc3LjU3MjkgOC44MDE0OSA3Ny4zNjY5IDkuMDEyNzggNzcuMjE3OCA5LjI3OTEyQzc3LjA2ODYgOS41NDE5IDc2Ljk5MjMgOS44MzQ4NyA3Ni45ODg3IDEwLjE1OFYxMS40OTVDNzYuOTg4NyAxMS44OTk5IDc3LjA2MzMgMTIuMjQ5NiA3Ny4yMTI0IDEyLjU0NDRDNzcuMzY1MSAxMi44MzkxIDc3LjU4IDEzLjA2NjQgNzcuODU3IDEzLjIyNjJDNzguMTM0IDEzLjM4NiA3OC40NjI0IDEzLjQ2NTkgNzguODQyNCAxMy40NjU5Qzc5LjA5NDUgMTMuNDY1OSA3OS4zMjU0IDEzLjQzMDQgNzkuNTM0OSAxMy4zNTk0Qzc5Ljc0NDQgMTMuMjg4NCA3OS45MjM3IDEzLjE4MTggODAuMDcyOSAxMy4wMzk4QzgwLjIyMiAxMi44OTc3IDgwLjMzNTcgMTIuNzIzNyA4MC40MTM4IDEyLjUxNzhMODIuNTEyNSAxMi42NTYyQzgyLjQwNiAxMy4xNjA1IDgyLjE4NzYgMTMuNjAwOSA4MS44NTczIDEzLjk3NzNDODEuNTMwNiAxNC4zNTAxIDgxLjEwOCAxNC42NDEzIDgwLjU4OTYgMTQuODUwOUM4MC4wNzQ3IDE1LjA1NjggNzkuNDc5OCAxNS4xNTk4IDc4LjgwNTEgMTUuMTU5OFpNODcuNzM4IDE1LjE1OThDODYuODk5OSAxNS4xNTk4IDg2LjE3OTEgMTQuOTgyMiA4NS41NzU0IDE0LjYyNzFDODQuOTc1MiAxNC4yNjg1IDg0LjUxMzYgMTMuNzcxMyA4NC4xOTA0IDEzLjEzNTdDODMuODcwOCAxMi41IDgzLjcxMSAxMS43Njg1IDgzLjcxMSAxMC45NDExQzgzLjcxMSAxMC4xMDMgODMuODcyNiA5LjM2NzkgODQuMTk1OCA4LjczNThDODQuNTIyNSA4LjEwMDE0IDg0Ljk4NTkgNy42MDQ3NiA4NS41ODYgNy4yNDk2NEM4Ni4xODYyIDYuODkwOTggODYuODk5OSA2LjcxMTY1IDg3LjcyNzQgNi43MTE2NUM4OC40NDExIDYuNzExNjUgODkuMDY2MSA2Ljg0MTI2IDg5LjYwMjQgNy4xMDA1QzkwLjEzODYgNy4zNTk3MyA5MC41NjI5IDcuNzIzNzIgOTAuODc1NCA4LjE5MjQ3QzkxLjE4NzkgOC42NjEyMiA5MS4zNjAyIDkuMjExNjUgOTEuMzkyMSA5Ljg0Mzc1SDg5LjI1MDhDODkuMTkwNCA5LjQzNTM3IDg5LjAzMDYgOS4xMDY4OSA4OC43NzE0IDguODU4MzFDODguNTE1NyA4LjYwNjE4IDg4LjE4MDEgOC40ODAxMSA4Ny43NjQ2IDguNDgwMTFDODcuNDEzMSA4LjQ4MDExIDg3LjEwNTkgOC41NzU5OSA4Ni44NDMxIDguNzY3NzZDODYuNTgzOSA4Ljk1NTk3IDg2LjM4MTUgOS4yMzExOCA4Ni4yMzU5IDkuNTkzMzlDODYuMDkwMyA5Ljk1NTYxIDg2LjAxNzUgMTAuMzk0MiA4Ni4wMTc1IDEwLjkwOTFDODYuMDE3NSAxMS40MzExIDg2LjA4ODUgMTEuODc1IDg2LjIzMDYgMTIuMjQwOEM4Ni4zNzYyIDEyLjYwNjUgODYuNTgwMyAxMi44ODUzIDg2Ljg0MzEgMTMuMDc3MUM4Ny4xMDU5IDEzLjI2ODggODcuNDEzMSAxMy4zNjQ3IDg3Ljc2NDYgMTMuMzY0N0M4OC4wMjM5IDEzLjM2NDcgODguMjU2NSAxMy4zMTE0IDg4LjQ2MjQgMTMuMjA0OUM4OC42NzIgMTMuMDk4NCA4OC44NDQyIDEyLjk0MzkgODguOTc5MSAxMi43NDE1Qzg5LjExNzYgMTIuNTM1NSA4OS4yMDgyIDEyLjI4ODcgODkuMjUwOCAxMi4wMDExSDkxLjM5MjFDOTEuMzU2NiAxMi42MjYxIDkxLjE4NjIgMTMuMTc2NSA5MC44ODA4IDEzLjY1MjNDOTAuNTc4OSAxNC4xMjQ2IDkwLjE2MTcgMTQuNDk0IDg5LjYyOSAxNC43NjAzQzg5LjA5NjMgMTUuMDI2NiA4OC40NjYgMTUuMTU5OCA4Ny43MzggMTUuMTU5OFpNOTcuMTk2OSA2LjgxODE4VjguNTIyNzNIOTIuMjY5N1Y2LjgxODE4SDk3LjE5NjlaTTkzLjM4ODMgNC44NTc5NUg5NS42NTc1VjEyLjQ4NThDOTUuNjU3NSAxMi42OTUzIDk1LjY4OTUgMTIuODU4NyA5NS43NTM0IDEyLjk3NTlDOTUuODE3MyAxMy4wODk1IDk1LjkwNjEgMTMuMTY5NCA5Ni4wMTk3IDEzLjIxNTZDOTYuMTM2OSAxMy4yNjE3IDk2LjI3MTggMTMuMjg0OCA5Ni40MjQ1IDEzLjI4NDhDOTYuNTMxMSAxMy4yODQ4IDk2LjYzNzYgMTMuMjc1OSA5Ni43NDQxIDEzLjI1ODJDOTYuODUwNyAxMy4yMzY5IDk2LjkzMjQgMTMuMjIwOSA5Ni45ODkyIDEzLjIxMDJMOTcuMzQ2MSAxNC44OTg4Qzk3LjIzMjQgMTQuOTM0MyA5Ny4wNzI2IDE0Ljk3NTEgOTYuODY2NyAxNS4wMjEzQzk2LjY2MDcgMTUuMDcxIDk2LjQxMDMgMTUuMTAxMiA5Ni4xMTU2IDE1LjExMTlDOTUuNTY4NyAxNS4xMzMyIDk1LjA4OTMgMTUuMDYwNCA5NC42Nzc0IDE0Ljg5MzVDOTQuMjY5IDE0LjcyNjYgOTMuOTUxMiAxNC40NjczIDkzLjcyMzkgMTQuMTE1OEM5My40OTY2IDEzLjc2NDIgOTMuMzg0OCAxMy4zMjAzIDkzLjM4ODMgMTIuNzg0MVY0Ljg1Nzk1WiIgZmlsbD0iIzFEMjkzOSIvPgo8ZGVmcz4KPHBhdHRlcm4gaWQ9InBhdHRlcm4wXzBfNDciIHBhdHRlcm5Db250ZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4KPHVzZSB4bGluazpocmVmPSIjaW1hZ2UwXzBfNDciIHRyYW5zZm9ybT0ic2NhbGUoMC4wMDE5NTMxMikiLz4KPC9wYXR0ZXJuPgo8aW1hZ2UgaWQ9ImltYWdlMF8wXzQ3IiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUlBQ0FZQUFBRDBlTlQ2QUFBQUFYTlNSMElBcnM0YzZRQUFBRVJsV0VsbVRVMEFLZ0FBQUFnQUFZZHBBQVFBQUFBQkFBQUFHZ0FBQUFBQUE2QUJBQU1BQUFBQkFBRUFBS0FDQUFRQUFBQUJBQUFDQUtBREFBUUFBQUFCQUFBQ0FBQUFBQUFMK0xXRkFBQkFBRWxFUVZSNEFleWRCNXdjeFpYL1gwOE9PNXVEZGlXQklnb0xtR2pBWUN5UVJERFpSdWNFTmhpTURTTDZuQStmNFgvMkhiWVAzL21NZlRoaDhKMmpRR0N3QVFOQ0lwaGd6QkVzQWNwaFY1dnphdlBPMVAvVmFFZXNWck83RXpwVWQvL3E4eG5OVEhmVnEvZStOZHA2WGVHVlJrZ2dBQUlnQUFLVEVyaE5DTS96MUhJbVp6aUxLSEV5a1RhUFA1ZVBGZWppOTUwYTBWLzU5ZFF3VlQyMlFkTkd4KzdoRFFTVUpzQy9XU1FRQUFFUUFJR0pCQzRRRFpGQjBtNGc4bHd2U015YWVIK1M3ODBhYVQvU1NOejVoRGFqYjVJOHVBd0NTaENBQTZCRU0wQUpFQUFCbFFnc0Y4MFhjeWYrSTlhcE9rZTlHZ1JwcTlkcFZRL2xXQjdGUU1Cd0FuQUFERWVNQ2tBQUJPeENZSlVRM2c1cStUNTMvcXQxMEZud2FNQjNpNm55YTJzMExhNkRQSWdBQVYwSndBSFFGU2VFZ1FBSTJKWEFLckVwMEVubC8wc2tWdWxzd3gvNmFPUmpMMnF6QjNTV0MzRWdrQmNCVDE2bFVSZ0VRQUFFSEVLZ2k4cit5NERPWDlLNUtFcis5Y3RFUTJyaG9FT0l3UXk3RThBSWdOMWJFUHFEQUFqa1RXQ2xhTDZjRi9yOU1tOUJVd3Q0eTBQeGM1N1FadFpOblExM1FjQWNBbkFBek9HTVdrQUFCQlFsY0o3WVhUSkV3YzJzWG9VSktqWjZTVHYzejFyVkd5YlVoU3BBWUVvQ21BS1lFZzl1Z2dBSU9KM0FFSVcrekRhYTBmbExsTlc4R25EOUN0RnltdE81d2o3MUNXQUVRUDAyZ29ZZ0FBSUdFZGkvOEsrc25zV2I1UUNrTEJuaW5RYVhQNmxWcjBsZHdEc0ltRTBBSXdCbUUwZDlJQUFDeWhEb292THpXQm16TzM5cGY1RGpCUHlHNHcxOFZoa1lVTVIxQk9BQXVLN0pZVEFJZ0VDS1FJTEVCMUtmTFhqMzhpakEzU3RFOHgwVzFJMHFRWURnQU9CSEFBSWc0Rm9DUEFkNmt2WEdpeSt2RUUwL2xrR0lyTmNGR3JpSkFCd0FON1UyYkFVQkVKaElZUGJFQ3haOXY2YVRtdGVlSXVyQ0Z0V1BhbDFJQUE2QUN4c2RKb01BQ0J3Z1VIcmdrL1VmTGtUQUlPc2J3VTBhd0FGd1UydkRWaEFBZ1lrRVZIdmlQc2xIbm1kWGlJYkRKaXFLN3lDZ053RTRBSG9UaFR3UUFBRVF5SS9BRWo2QytLV3pSZk43OGhPRDBpQXdOUUU0QUZQendWMFFBQUVRc0lJQUJ3d1NHNWFMaHZkYlVUbnFkQWNCT0FEdWFHZFlDUUlnWUQ4Q3hScDVubHdwR2xmWlQzVm9iQWNDY0FEczBFclFFUVJBd0swRWtnR0QrTENpejdrVkFPdzJqZ0FjQU9QWVFqSUlnQUFJNkVIQXl5Y1YvamNDQnVtQkVqTEdFNEFETUo0R1BvTUFDSUNBc2dURWx6bDA4QytXQ2VGVFZrVW9aaXNDY0FCczFWeFFGZ1JBd00wRU9IVHdGVDVxZmdBQmc5ejhLOURQZGpnQStyR0VKQkFBQVJBd2d3QUNCcGxCMlFWMXdBRndRU1BEUkJBQUFjY1JRTUFneHpXcCtRYkJBVENmT1dvRUFSQUFBVDBJSUdDUUhoUmRMQU1PZ0lzYkg2YURBQWpZbmdBQ0J0bStDYTB6QUE2QWRleFJNd2lBQUFqb1FRQUJnL1NnNkVJWmNBQmMyT2d3R1FSQXdIRUVFRERJY1UxcXZFRndBSXhuakJwQUFBUkF3QXdDQ0Joa0JtVUgxUUVId0VHTkNWTkFBQVJBZ0FnQmcvQXJ5SXdBSElETU9DRVhDSUFBQ05pR0FBSUcyYWFwTEZVVURvQ2wrRkU1Q0lBQUNCaEdBQUdEREVQckRNRndBSnpSanJBQ0JFQUFCTklSUU1DZ2RGUndMVWtBRGdCK0NDQUFBaURnYkFJSUdPVHM5czNaT2pnQU9hTkRRUkFBQVJDd0RRRUVETEpOVTVtbktCd0E4MWlqSmhBQUFSQ3drZ0FDQmxsSlg4RzY0UUFvMkNoUUNRUkFBQVFNSW9DQVFRYUJ0YU5ZT0FCMmJEWG9EQUlnQUFLNUUwREFvTnpaT2Fva0hBQkhOU2VNQVFFUUFJRk1DU0JnVUtha25Kb1BEb0JUV3haMmdRQUlnTUEwQkJBd2FCcEFEcjhOQjhEaERRenpRQUFFUUdBYUFnZ1lOQTBncDk2R0ErRFVsb1ZkSUFBQ0lKQTVBUVFNeXB5VlkzTENBWEJNVThJUUVBQUJFTWlMQUFJRzVZWFBmb1hoQU5pdnphQXhDSUFBQ0JoRkFBR0RqQ0tyb0Z3NEFBbzJDbFFDQVJBQUFRc0pJR0NRaGZETnJCb09nSm0wVVJjSWdBQUkySU1BQWdiWm81M3kwaElPUUY3NFVCZ0VRQUFFSEVzQUFZTWMyN1Q3RFlNRDRQQUdobmtnQUFJZ2tCOEJCQXpLajUrNnBlRUFxTnMyMEF3RVFBQUVsQ0NBZ0VGS05JUHVTbWk2UzRSQUVBQUIwd2tzRThMbnA3WktEeVVxQklteUJHbkZSS0pZOER0ZlM3NXJwQlVLb2doZmo3S0NBWDV4SHZMeHE1QmZNZ1dKTkw3dnBpUkszR1N0RHJiK3hVc2pGLzVabTkyaGd5eUlzSmdBSEFDTEd3RFZnOEJVQkc0VHd2TVhhcHNoS0g0WWQreXp1Qk9meGZrUDUxY1Z2NnI1VmNtdmlyRVh2eUdCZ09FRTN2SlEvSndudEpsMWh0ZUVDZ3dsQUFmQVVMd1FEZ0xURTdoQU5FVDZ5YnVBL3pNdUlFck01NmZ3QmZ5a3pwOXBIbCtieWUvKzZhVWdCd2lZUjRBZDBmcFJTcHl6WHF2ZVpGNnRxRWx2QW5BQTlDWUtlU0F3Q1lHelJWMXBuSUpMZVFoK0tUL05MK1gvZkxYOGgzU3hmTEtmcEFndWc0RENCTFJPZGxZdmZFcXJmRjVoSmFIYUZBVGdBRXdCQjdkQUlCY0MrNGZ0VytmenNQMnhSSjdqdU1QbmR6cWFYek55a1ljeUlLQXdnUUZlWi9MeGRWclZRd3JyQ05VbUlRQUhZQkl3dUF3Q21SSllJWnJuY1NkL01nL2J2NWRYUzNPSHJ4M0RaV09abGtjK0VMQTVnVGc3QWF2WkNmaXh6ZTF3bmZwd0FGelg1REE0SHdMTFJFdUJueEluY1djdk8veVQrRC9RU1N4UExzUkRBZ0dYRXhDM1A2VlYzK1p5Q0xZeUh3NkFyWm9MeXBwTlFIYjRQbjY2NThWNXAvR1QvYWxjLytuOGtsdm9rRUFBQkNZUTRKR0FlK05VK1prTm1qWTY0UmErS2tnQURvQ0NqUUtWckNOd2xtaUtqcEk0M1VQYVN0YmlESDdKdVhzRXpMS3VTVkN6L1FqOG9ZOUdQdmFpTm52QWZxcTdTMk00QU81cWIxZzdnWUJjc1BjQ05SN0xUeTRyNUl0dnY1OWZIQkFIQ1FSQUlBOENML00yd2ZNM2FEVnRlY2hBVVlNSndBRXdHRERFcTBkZ21lZ3M5dExRT2Z6alA1KzFPNGRmWmVwcENZMUF3UFlFRURCSThTYUVBNkI0QTBFOWZRZ3NGNjFIY0VqY0MzalAvWGtzVVQ3bCsvU1JEQ2tnQUFLVEVVREFvTW5JcUhFZERvQWE3UUF0RENCd2htaXM5Ukt0NGlsOGZ0SVh4eHRRQlVTQ0FBaE1UNkJMVU9MQ2RWck5jOU5uUlE0ekNjQUJNSk0yNmpLV2dCRGFXZFQ4WHA3TC94QS82WCtZSytPd3VrZ2dBQUlLRUVEQUlBVWFZYUlLY0FBbUVzRjMyeEZZTGhwbFdOMS80RzE2bjJEbFpReDlKQkFBQWZVSXhIbEs0UG9udGFxNzFWUE5uUnJCQVhCbnU5dmU2bVdpZnBhZmZCL21ZRHc4eEU5eWZ6NFNDSUNBTFFobzMzNUtxL3FLTFZSMXVKSndBQnpld0U0eVQrN1JqNU80bEo4aXJtUzdaRUFlL0g2ZDFNQ3d4VTBFZmxKQ1ZkZXQwYlM0bTR4V3pWYjhBVld0UmFEUElRVE9FZzNISjhoekRkLzRHTDhRWS84UVFyZ0FBcllrOERBSERQb29BZ1paMTNad0FLeGpqNXFuSUhDdWFLd1lKcnFTZjZCWDhZUCtFVk5reFMwUUFBSDdFdmlMbDBZdS9MTTJ1OE8rSnRoWGN6Z0E5bTA3UjJvKzdtbi9jall3N0VnallSUUlnTUI0QW0veldSdm5QS1hWN0JsL0VaK05Kd0FId0hqR3FHRWFBcWVLMWxpWUVwZnhYdjFyT2V0UjAyVEhiUkFBQVljUlFNQWdheG9VRG9BMTNGRXJFK0JGZlhNVHBIMldQL0w4dmlnQkZCQUFBVmNUUU1BZ2s1c2ZEb0RKd0ZFZDBRclJ3a2ZyaWh2NWRRbnpRRWhlL0NoQUFBUlNCSVkwRXBjL3FWV3ZTVjNBdTNFRTRBQVl4eGFTeHhFNFhnaC9LYlY4bENQMGZaNHZIelB1Rmo2Q0FBaUF3SGdDY1k3bXVYcWRWdlhqOFJmeFdYOENjQUQwWndxSjR3aWNLN1lHUjZqd0kveTBmeXRmWGpqdUZqNkNBQWlBd0JRRUVEQm9Damk2M0lJRG9BdEdDSmxJNEZ6UlhqaEtJMWR5cEw0djg3M3FpZmZ4SFFSQUFBU21JOEFqQWZmR3FmSXpHelJ0ZExxOHVKODlBVGdBMlRORGlTa0k4TUsrU2w3WTl3Vis0cGNyK2d1bXlJcGJJQUFDSUpBSmdUOXd3S0NQSVdCUUpxaXl5d01ISUR0ZXlEMEpBUm00WjRSb05RZnR1WVd6RkU2U0RaZEJBQVJBSUJjQ0w0OVM0dndOV2sxYkxvVlJKajBCT0FEcHVlQnFoZ1QyZC95ZWYrUW4vaHU0U0NURFlzZ0dBaUFBQXRrU1FNQ2diSWxOa3g4T3dEU0FjRHM5Z2JORlhXbWNBbC9panArMzh5RmlYM3BLdUFvQ0lLQXpnVVl2YWVmK1dhdDZRMmU1cmhRSEI4Q1Z6WjY3MGZKRVB0N0tkejB2enBISGVSYm5MZ2tsUVFBRVFDQW5BZ2dZbEJPMlF3dkJBVGlVQ2E2a0lTRDM4WmRReTVYOHhIOGIzOGFxL2pTTWNBa0VRTUEwQWdnWXBBTnFPQUE2UUhTNkNIN3F2eUJCOUI5czUzeW4yd3I3UUFBRWJFTWd6bWNJWFAra1ZuVzNiVFJXVEZFNEFJbzFpRXJxTEJlTkovSVA1RTVlMmY5K2xmU0NMaUFBQWlEd0xnRUVESHFYUlhhZjRBQmt4OHNWdWM4U2UyY255UE10N3ZqNWhEN0NiOFFWclE0alFjQytCQkF3S0xlMnd4LzMzTGc1c3RUK0JYNzBUeHk5VDhickR6clNTQmdGQWlEZ1ZBSUlHSlJseThJQnlCS1lVN09QemZQL2dPMDczS2syd2k0UUFBSEhFMERBb0N5YUdBNUFGckNjbVBVTXNYZVJsN3oveGJhZDVVVDdZQk1JZ0lEckNDQmdVSVpORGdjZ1ExQk95M2FxYUkyRktQNHYvQVBnOEwza2M1cDlzQWNFUU1DOUJIaDNRRDJIRGo1bnZWYTl5YjBVcHJjY0RzRDBqQnlYWTJ5NC95NDI3RERIR1FlRFFBQUVRR0EvQVFRTW11YVhBQWRnR2tCT3VyMVN0TllRSmI3UGtmd3VkWkpkc0FVRVFBQUVKaUdBZ0VHVGdKR1g0UUJNQWNjcHQxWUo0ZTJnbHBzMEVyZXpUVGlpMXlrTkN6dEFBQVF5SVJEbmJZS3IxMmxWUDg0a3M1dnl3QUZ3ZUd1ZklScHJmYVRkdzF2NzN1dHdVMkVlQ0lBQUNFeEJBQUdESnNLQkF6Q1JpRU8rTHhQQzU2Zm1MM0hILzg5c0V2YjBPNlJkWVFZSWdFQmVCSDVTUWxYWHJkRzBlRjVTSEZJWURvQkRHbks4R2J6STcwaU8zZjhMdm5iQytPdjREQUlnQUFJZ1FMOGZwYXBQYk5DMFViZXp3UFl2Qi8wQzVGTy9qNXEvd3AzLzE5bXNnSU5NZ3lrZ0FBSWdvQmVCZitDL2t3MHM3QmE5Qk5wVkRrWUE3TnB5RS9SZUxscVAwQ2grSDE4K2VjSXRmQVVCRUFBQkVEaUVnSGJwVTFyVkE0ZGNkdEVGT0FCMmIyd2h0T1hVZEMwSHZ2Z3VteEt4dXpuUUh3UkFBQVJNSXREa0ovK2l4N1N5SHBQcVU2NGFqM0lhUWFHTUNjaDkvU3VvNlRIdS9IL0loZEQ1WjB3T0dVRUFCRUNBWmd6VDZFMXU1b0FSQUp1Mi9sZzB2M3RZL1hLYm1nQzFRUUFFUU1CcUFpMmRWRFhyVlUwYnNWb1JLK3JIQ0lBVjFQT284MXl4TmJoU05IMmZGL3I5Z2NXZzg4K0RKWXFDQUFpNG5rQmxFVFd0Y0NzRk9BQTJhbmw1Y3Q4SUZiekllL3R2WkxVeGVtT2p0b09xSUFBQ2FoTHdrT2JhazFEaEFLajVtenhFcStXaThWTjhiTy9mdU44LzlwQ2J1QUFDSUFBQ0lKQXJnUk56TFdqM2NvZ0RvSGdMbmlMcXdsSHkzOFZxZmxweFZhRWVDSUFBQ05pUndIdzdLcTJIem5BQTlLQm9rSXd6UmNQaEh2S3NZZkd1OVZBTlFndXhJQUFDSUpBaVVKejY0TFozT0FDS3RqZ3Y5THVRVDdDNmwwaVVLS29pMUZLSUFLOExvZEhSQkkyTXhtbGtSUEI3Z2tiai9IbFVmcGJ2L0owL2o4WVRGT2V6MFdRU1F2Qm5YazdLU1Y1S0pQWmZsL2VGMkg4OWVSUC9nSUNEQ1dpYXg3Vm5wY0FCVU95SExjUDVlcW5wRHY1VC9IbitFNDJGZm9xMWp4WHF5RTU2Y0NoT0Evd2FIQjZsb2VTNy9ENUN3OE1KR2s1Mjd1aXdyV2diMUdsL0FnRS83ZmQ4N1c5SzFoYkFBY2dhbVhFRnpoWjFwUWxxL2kwLythODByaFpJVm8yQS9Pc3pPRGhLZlFNai9Ccmx6bjZVTzNmNUxqdjhlUExKWGpXZG9ROElPSVZBTU9EdEczYUtNVm5hQVFjZ1MyQkdaVjh1bW8rT2szaVE1Yzh6cWc3SXRaYUFISEtYVC9GOS9mczdldG5oNytzZnBuN3U5T05qdysvV2FvamFRY0I5QkVJQno4NWU5NW1kdEJnT2dBSU56MXY4THRWSTNNdXFSQlZRQnlyb1FFRE9vL2Z3YzBYUHZtSHE1WGY1WkM4Ny9OUTh1dzVWUUFRSWdJQU9CRUpCcnd5cTVzb0VCOERLWnVlRGZGWlE4Nyt3Q2wvakYrYjdyV3lMUE9xV1QvYnlLVDdaNFhObjM3dHZoRHYrSWNKRGZSNVFVUlFFVENEZzkzbEVaTmdqRDFKelpZSURZRkd6THhNN1Ezd205Yys1K285YnBBS3F6WkdBbkpmdjdoMUtQdDEzYzBjdk8zd000ZWNJRThWQXdFSUNKVVhCNXpjdld1eldHUUNDQTJEQmowK2U0c2Nic09TdzB3a1dWSThxc3lRd1BKS2d6cDVCNnVnZW9zN3VRZXJuQlh0SUlBQUM5aWJnOTNzVEpVSGZwMXJzYlVaZTJzTUJ5QXRmOW9WWGlCWU81WnQ0bUV2T3lyNDBTcGhCUU03ZmQvWU1jWWMvbUh5WGMvaElJQUFDemlKUVdScTVlL09jeFR1ZFpWVjIxbURlT1R0ZWVlVmVJWm91WWdHLzRoY1crK1ZGVXQvQ2NnNi91M2M0K1lRdk8vMXVYcmducnlHQkFBZzRrMEJaY2ZqdDlxVkhMbldtZFpsYmhSR0F6Rm5sbFhPNWFMcUtCZHpOTHpEUGk2UStoZVZxL0hidTdOczZCNm0xWTRDR1IrTDZDSVlVRUFBQnBRa1V4UUt0SmY3Z3llMUthMm1PY3VpTWpPYk1LLzFYVXZPMytIbnlxMFpYQmZsVEU1QnorVzJkQThrT1gzYisySkkzTlMvY0JRR25FU2d0Q3U2cHJ2RFdicXBjdU05cHR1VmlENllBY3FHV1labjlZWDJiLzVzaFg1MWhFV1RUbVlDTXFDZWY4T1dUdnB6WHg5Qyt6b0FoRGdSc1FxQ2lKUHhHN2VMYUV6Wm9HbGJ4anJVWkhBQ0RmcnluaXRaWW1PTDNzL2l6REtvQ1lpY2hJRVBvTnJiMVVYTmJQMGZhRzVra0Z5NkRBQWk0aGNDTThzaWpUVWZVbnVjV2V6TzFFMU1BbVpMS0l0OTVZbmZKRU1VZjVTSW5aMUVNV2ZNZ0lFKzVrMC82amEzOXlhMTZXTUtYQjB3VUJRR0hFTkEwamFvckl2YzFMRmg2aFVOTTB0VU1qQURvaXBQb2JORmFIYWY0bjFuc1VUcUxocmdKQk9Sd3ZoeldsNTErUzNzL2d2Rk00SU92SU9CbUFsNlA3UHlqdDlYUFgzSzdtemxNWlRzY2dLbm9aSG52TE5FMGx3OWxmWktMemMreUtMSm5RVUFlcGlPSCtCdGErckY2UHd0dXlBb0NiaUhnNHhDL05lV1J6KzZadCtTbmJyRTVGenN4QlpBTHRUUmx6aENOdGR6NVA4RzNhdExjeHFVOENZenltZmNOclgyMHQzbGY4bUNkUE1XaE9BaUFnRU1KOE9FK285VVY0Zk4ySHJaRS9qMUdtb0lBUmdDbWdKUHBMWDd5UDRrNy84YzVmM0dtWlpBdk13SXlDbDk5Y3g4MWNlZVBlUHVaTVVNdUVIQXJnVWpJTjFCU0VuM2YzcmxIdk81V0J0bllEUWNnRzFwcDhwNHBtdC9uSWZFWTN5cE1jeHVYY2lDUVlHK3FsZmZyeTZkOUdaa1BDUVJBQUFTbUkxQllFT2lzS0l1K1ovdk1CWFhUNWNYOS9RUXdCWkRITDRIaitwL0djZjNsYXY5WUhtSlFkSXpBMFBBb2QvcjkvTVRmeTNQNzdBVWdnUUFJZ0VBR0JFb0tBdzFGMFVRdGQvNWRHV1JIbGpFQ0dBSEk4YWR3bG1nNFBVR2VQM0h4Z2h4Rm9OZ1lnZmF1UWFwcjZxVjJEdGFEN1h2NFdZQUFDR1JEb0tJMC9IcnRvdG9URWVBbkcycjc4OElCeUo0WkxSZk5LelVTOGpqZmNBN0ZVWVFKeUk1ZWh1WGRXZDlEUFh6NERoSUlnQUFJWkV1Z3ZDVDBWTnVTbzFabVd3NzU5eE9BQTVEbEwyRnMyRjh1K01PSmZsbXlrOW41REI2TzBOZEh1L2IyWURWL0R2eFFCQVJBZ0FnQmZ2VDVGY0FCeUlMalN0RjhxaUFoTzM4TSsyZkJUV2FOeHdYdGJkbEh1eHQ2YVdnWUorOWxpUS9aUVFBRXhnZ2d3STkrUHdVNEFCbXk1R0gvVTNqWVgwYjR3NEsvREpuSmJISXhYMzNUdnVRYy93anY1VWNDQVJBQWdWd0pJTUJQcnVUU2w4TXVnUFJjRHJwNnBtZzRqajBsdWVBUG5mOUJaQ2IvSXAveTVURC8zcFkrSExzN09TYmNBUUVReUpBQUF2eGtDQ3FMYkJnQm1BYlcyYUw1UFhFU0d6Z2JndnhNdzByZWxrLzVkWTA4MU4vWXk4UCtlT0xQQUJteWdBQUlURU1BQVg2bUFaVGpiVGdBVTRBN1c3UXNpRlBpT2M0eVk0cHN1TVVFWkpRKzJmSHZhdWdoR2JZWENRUkFBQVQwSUlBQVAzcFFUQzhEVXdEcHVkQ1pvbTNtS0kwK3lSNFNPdjlKR01uTGNsVi9JeS91MjhIYitiQzRid3BRdUFVQ0lKQTFBUVQ0eVJwWlZnWGdBS1RCdFV3MGxIdG9WQjRrTVNmTmJWeGlBbklmZjB2N0FHM2IwMFVEZzZOZ0FnSWdBQUs2RXFnb0NiOVJ1N2oyQkFUNDBSWHJRY0l3QlhBUURxSlRSV3NzVFBHbitmSUpFMjdoNnhpQlpNZGYxMFg5QStqNDhhTUFBUkRRbjhDTThzaWpUVWZVbnFlL1pFZ2NUd0FqQU9Ob0hDK0VQMHpOOS9NbGRQN2p1S1ErOW5HSHYyVlhKOG5RdlVnZ0FBSWdvRGNCQlBqUm0ralU4dUFBcFBnSW9aVlN5MDk1YVB1czFDVzg3eWN3TWlwNGpyK0w5L1Aza1JCeThCOEpCRUFBQlBRbGdBQS8rdkxNUkJvY2dERktLNmpsM3pqSzM2Y3lnZWFXUExLcmIycnRvNjI3dTNBNm4xc2FIWGFDZ0FVRUVPREhBdWhjSmRZQU1BU084dmRaanZKM3R6Vk5vR2F0blQxRHRIbG5KKzNySDFGVFFXZ0ZBaURnQ0FMQmdIZTBvaXh5UWYzY3hZODd3aUFiR2VGNkI0QTcvNHU1ODVmei9sNGJ0WnRocWc0TmovTEsvaDVxNUNkL0pCQUFBUkF3a2dBQy9CaEpkM3Jacm5ZQStHUy9ZM2tudXd6MDQvcVQvZVRjL2k0K3FHY1g3K2VYUVgyUVFBQUVRTUJJQWpMQVQyVnA1T2h0c3hiV0cxa1BaRTlPd0xWckFNNFdyZFZ4aXYrQjBiaSs4Ky90RzZhM3RuZFFieCtHK3lmL3I0STdJQUFDZWhGSUJmamh6cjlMTDVtUWt6MEJWem9BcDRpNmNJTGlEekd1MmRramMwNkpCRC9wNzZqdjVpTjY5MkYxdjNPYUZaYUFnTklFRU9CSG5lWnhud1BBMi8yaTFQd0xIdVIrcnpyTllMNG1jcEhmMjlzN3FYOFFULzNtMDBlTklPQk9BbFdsa1dlYUY5Y3UyK0JPODVXejJuVU93RXBxL2haMy9oOVJyaVZNVWtnZTFMTjFUemZ0YmQ1blVvMm9CZ1JBd08wRVpJQWZqdTczODhhRlM2OTJPd3VWN0hmVklzQVZvdmxESE1WZXJ2aDNsZDJwSDF4cjV3QzlzNk9MRCsxQkNOOFVFN3lEQUFnWVN3QUJmb3psbTQ5MDEzU0V2TjN2YU43dTl3TERjdDJpditHUk9MMjlvNU5hT3dieSthMmdMQWlBQUFoa1JjRHY5NGlhaXVqVnUrY3N2aWVyZ3Noc0NnRlhPQUJuaTdyU09Qbi95a1RubTBKVm9VcGszSDY1d2g5SDlTclVLRkFGQkZ4QUFBRisxRzlreDY4QldDV0V0NU9hZnMxTjRhck9YNjd3MzhwSDlkWTFZcTVmL2YrRzBCQUVuRVVnRXZJUGxwY0ZUOXR6K09KWG5XV1pzNnh4dkFQUVJVM2Y0U24vczUzVmJGTmIwOGZoZS8rK3RSMWhmS2ZHaExzZ0FBSUdFRUNBSHdPZ0dpVFMwVk1BSzBUVFJjenRRWDQ1MnM3eHY0MDlqYjBjeXJlTEVvbnhWL0VaQkVBQUJJd25rQXJ3czJ2dXNRandZenp1dkd0d2JNZDR0bWhaRUtmRTM1aFFVZDZVYkNCQUx2U1RjLzF0bllNMjBCWXFnZ0FJT0kwQUF2ellyMFVkNlFBc0V6dERQZ3J4aW4rTlkvMDdQOG5WL2JMekgrRTkva2dnQUFJZ1lEYUJWSUFmcyt0RmZma1JjT1FhQUIrRmY4UllITi81eXpON3R1N3FwTG9tTFBUTDc3OEJTb01BQ09SQ2dPUDcwTXpLNk0vcjV5UEFUeTc4ckM3ak9BZUE1LzAvelZDdnRCcXMwZlhMWUQ1dmJ1bWc3dDRobzZ1Q2ZCQUFBUkE0aElEWDR4RXp5cVBmcUorLytGOE91WWtMdGlEZ3FDbUFsYUpsb2FDRTNIWVNzd1g5SEpXVWNmei92cVdkNUx3L0VnaUFBQWlZVGNEbjR3QS81WkhQN3BtMzVLZG0xNDM2OUNQZ21CR0FjOFhXNEFnbGZzOW9ITjM1eTFYK1czZDM0L1ErL2Y0UFFCSUlnRUFXQkZJQmZ2Yk1YZng0RnNXUVZVRUNqbkVBaHFud1RnNzFlNHlDakhWUktSNVBKQmY2TmJjam5LOHVRQ0VFQkVBZ2F3SUk4Sk0xTXFVTE9HSUt3T243L1dWZ256ZTJ0RkgvQUE3eFVmcC9rMkxLeVdGYXY4ODc3UGRxQTVwSEcvUjZhY0NyZWZzMFQyS2ZoN3lkSGk5MWVUU3RROU5FcDZaNVdzbERIZElFVFhqNk5hRzFwOHhKZUtnMUxPS085RHczTi9UdVNObUo5NmtKRkJZRU8yYVVCSS9lTW52UjNxbHo0cTVkQ05qZUFWZ202bWY1eVBjNkF5K3pDL1JzOUd4dTY2ZTNkblJRUE01TC9wRkFnQWw0dlI3Qnc3Q0RmcCtuTytEenRubThvczJqZWVwOVh0ck5IZnN1elQvNmQ5OWc0TzF0Q3hmMkFOZzBCRjU0QmYreHBrRWtiNWNXQmZkVVYzaHJOMVhXWXN0UkJyenNrc1hlVXdCQ2FINXF2b2YvQnp1eTg1Y1IvWGJ0N2JYTGJ3bDY2a1JBbnAwZThIdEd1WlB2OWZ1MFZwL1B1OXZyb1hmNGFmNzFvTkJlMkRKMzBUdjlPdFVGTVNBd0hRRU84UE5hN2VMYTkyN1FOQXhCVGdmTFp2ZHQ3UUNzb09icnVmTmZhVFBtMDZvcncvaSt0YjJkbXZqcEg4blpCQUlCVHlJVThIVUZBNTQ2bjlmN2Q1L2YrMklnNUwxLys0d0ZMZGpnNmV5MnQ0TjFxUUEvRyt5Z0xIVE1tb0J0SFlBenhONUZiTzBkV1Z1c2VBRzV0ZStOZDlxb2U5K3c0cHBDdld3SWVEMGFSY0srN2xEQXU5M3Y5LzZkaC9HZjhXaUp4M2ZQV2RxSWxzNkdKUEthUVVBRytLbXBLUGp4M2dWTFBtZEdmYWpER2dLMmRBQ1dDY0hUbmMzM01iS0lOZGlNcVZVdTludWRPLytCSVl5MEdVUFlIS2x5Q0Q4VTlBMkZnOTY5UWIvbkRWL0E5MVJoWlBTWGN2NFVFenJtdEFGcXlaMkFkRmFySzZLMzFjOWZjbnZ1VWxEU0RnUnM2UUQ0cU9XZkdPNUpkZ0NjcVk3dFhZUEo0RDZqdk4wUHlWNEVBbjV2SWhyMk5mRFQvU3U4TU8reGhEL3hRUDNzV2o2aEFRa0U3RVdBUjZjUzFlWGhUKytadTBRK1lDRTVuSUR0SElDelJmTjc0aVNrQStDWTFORFNSMi92NkVSd0g1dTA2RUVkZnRDN2RzOWhpMzQ5ckdudzNHelNmbEF6UFFFRStFblB4Y2xYYmVVQUhDK0VQMDdOOTNLRCtKM1FLSEwvMFRhTzZyZTdBYnUxVkc1UDJlRVhSSHg3Z2dIZjgxNmY1MWYxSEFFTjgvWXF0eGgweTVZQWoyQU5sSlNIVDY2ZnZmak5iTXNpdjMwSjJNb0JLS1dXcjNLbjZZaG9md2sreW0vajFnNXE2Y0JLZjlYKys4ZzUvSUtJZngrLy9pOGM5TiszWS9hQ2V6bGFEcDd3VldzbzZLTUxnY0tDUUdkbGFlVG9iYk1XMXVzaUVFSnNROEEyRHNBSzBiQkVrUGlhYmNoT29XaWNPLzgzTjdlUm5QZEhVb01BNzdHWFQva052SGh2Z3pmaythNThFc0tDUFRYYUJsb1lSNkNrTU5CUUZFM1VjdWZmWlZ3dGtLd3FBVnM0QUhMVlAxSHpMeGxpVUZXUW1lbzFNcHFnMTk1dXBSNXM4OHNVbVdINVpGenpXTVQvY2pEbytjVzhPWXQvaFVBbmhxR0dZQVVKSU1DUGdvMWlza3EyY0FCODFIUUxSeWcvd1dRMnVsY245L2ovMzF1dHRJKzMreUZaUTRDSDlBZGpVZjhMZ1pCMlovMmNwWSttSm1EMldLTU9hZ1VCU3dpVWw0U2VhbDF5NU1vTmx0U09TbFVob0x3RHdFUC9oM0huLzgrcUFNdFZEN20zL3pYdS9Qc0hzY2MvVjRhNWxndUgvRU9GRWY5TC9xRDNEcm1BRDl2emNpV0pjblluSU5lM1ZGZEU3bXRZc1BRS3U5c0MvZk1ub0x3RFFPVDViemF6SUg5VHJaTWduL2psc1AvUWNOdzZKVnhXY3lUa0hTd3NDRDhaRFBqdjJEMW53UXZvOUYzMkE0QzVoeER3ZWpWUlV4SDU1N3A1Uzc5NXlFMWNjQ1VCcFIyQWxhSnhGYS82LzZDZFcwYk85Y3ZPWDg3OUl4bExRQjUvVzFRUWZDY1M4ZDlWTjJmUmoxTEQrOGJXQ3VrZ29ENEIrWCtqcGp6eTJUM3psdnhVZlcyaG9Wa0VsSFVBemhYdGhTTTA4aDltZ1RDaW5zN3VJWHFkVi92SEVkM1BDTHhKbVI0UFVTd2FiT1lWL0w4VzRlSmJHMnBxK2c4Y1pHOVlyUkFNQXZZaGdBQS85bWtyc3pWVjFnSGd6djliREdPbTJVRDBxcSt0YzVEZTNOSks4bVEvSlAwSnhLS0JYdDZuLzRlUU4zVHJ6bm56T0p3U0VnaUF3RVFDQ1BBemtRaStqeWVncEFOd2xtZzZrdnROMjU1QzFkRXRPLzgyZFA3amYyazZmSlp6bU1XeDBEdXhzUC8yWFhNWC9RNzc5SFdBQ2hHT0pTQUQvRlNVUmQremZlYUNPc2NhQ2NQeUlxQ2VBeUFFaDF4cnZvdXRVayszREZCMzlRd2xqL09Wa2Y2UTlDRVFEdm1HaTZMQmRVVkJ6K3JOY3hidnhCQy9QbHdoeGJrRVVnRit1UE5IZ0Ivbk5uUGVsaW5YeWE2a2xrOXcxL21CdkMyelFFQlg3eEM5OWs0cnlVaC9TUGtSNEJOSnFTZ1dySTlHZlQrb243UGszd2M0Rkc5VGZpSlJHZ1JjUVlBRC9MeFJ1N2oyQkFTMmNrVno1MlVrLzVsVko1MHFXbU5oaXIvREd0V29vMVZtbWlRN2YxN3RINCtqODgrTVdQcGM4dUNka3NMZyttQW9jT09ld3hlK2xUNFhyb0tBVGdSZWVNVlIvMkZubEVjZWJUcWk5anlkNkVDTURRaUlWYXU4MnBvMU9lMHhWMm9FSUV5SnJ6TnYyM1grM2IzRDlQcmJjclcvby82V21QclREd1c5SXlXeDRCKzlZYnE2Zm5adGg2bVZveklRc0RrQkJQaXhlUU5tb0w1WXZicU1zMzJVTk8xVVBqditPSDQvbkwrSFpGRngvZlV0MUxxdmczYTFEVlBRL3doRmZkL1hIbHZUS3U5TmxaUVpBVGhidEN5SVUySVRLeHVZU21IVjd2WDJEWE40M3hiZTU0L09QNWUyNFZqOFBiR0N3TjNWWGYyM3ZuckNDWWlSbkF0RWxNbWRnQU5HQUx3ZWo1aFJIdjNHM2dXTC95VjNFQ2lwS2dGeDNYVUx5T09SYlhzSnZ5WS9EMmRuRzlIR2h2MW0rTDJDeWdwZW9vanZXbTM5ZzI5TVpwc3lJd0J4aW4rYlEvN2FzUE9YUVg3UStVLzJBMHQzWFhxZGhiRmdjMUhVLzNVWm1FU3U1aC83MmFiTGptc2dBQUtURUhnM3dNOWlCUGlaaEpGZEw0dmJidk5SZS92WCtXbi9TMnhEOGtsL1NsdjJEYjE3ZXlTdVVWUDNLZVR6dmlaT3VYQU52Zmp3eC9udjdpSFRCRXFNQUt3UUxhY1JKWjU3VjN2MVAvVU5qTkxmTmpZandsOFdUY1ZoeUttMEtMZ2xGZzVmczJ2dXdtZXlLSXFzSUdBTUFSdVBBUERSMVNQVjVjSHpkaDYrOUVsajRFQ3FWUVQ0cWIrQW4vcC96L1dmbTdFT0wrMGduZ1pJbjcwMDJrSXpDbzZjT0MzQWNkUXNUcnp0VDZNRVAvM2JKOG1ZL3ErOUxZZjlFZVVuazFiYjMvR0hkc3l0S1Z6UnZ2VG9SZWo4TTZHR1BDQXdPUUY1bEhWbGVlZ1VkUDZUTTdMckhmR0ZMMFRKNjMyYTljKzg4NWZHVG5YS2JFZGZKVFgwYkJNZi9MaGNOM0FnV1Q0RnNJS2FQOFlENk84N29KSGlIMFk1ck8vcjc3VFI0TkFob3ltS2EyNitlckxqTHlrTTdTZ3VDRnl6NC9CRjY3Q3l6L3cyUUkzT0k0QUFQODVyMDRNc0doejhFWDgvOGFCcjAzMlJzOUFEMHl5aDZob29KRS9IcTJMWnNobmFoZzNKWTJrdGRRQ1dpWjBoMXZ0YlNzeERUQWVZNzh2dC9XOXViaWU1OEE5cGNnSmpIZi9XU01UM21mcTVTNTVCeHo4NUs5d0JnV3dJRkhOc2pQSlFmKzIybWUvcHlhWWM4dHFEQUsvbXY0WTEvV1RXMmc1d241UkozUG1PL2pJS0ZUL0M4cE9qQzVaT0FmZ29mQzEzL25PeU50YUNBdExCMnJpMWpXU1lYNlQwQk9SV3BMTGk0SmJEcWt0TzdhZzk2Z2paK2FmUGlhc2dBQUxaRXVBQVA2OGRjK1JSYzdjdFBCbWRmN2J3YkpBL09lOVA5TTJjVk8wYnR3QndPZ0dOM2VlSTVhdE9rZGtzR3dGWUpsb0syR1g1eW5TNnFuSi82NjR1YW1uSHFmS1R0UWNQUzNZVUZ3VS91K2Z3eGZjalZPOWtsSEFkQkhJalVGVWFlYVo1Y2UyeURia1ZSeWs3RVBCNmIrWVYveFU1cVpyTnFMVGd4OWw5Z3ovbWVvNjJ6QUh3VWZ3THZPMnZNaWRqVFM2MGMyOFA3V25FMFRQcHNFY2ovcjdTV1BqcmRmTVgvUWNlUzlJUndqVVF5SjBBQXZ6a3pzNU9KWk1ML3dZSGI4bFo1LzRzcDZWYmVvNFM1MzVvbGlVT3dETFJVTTZkZis3RzVrd3ArNEpOYlgyMGZVOTM5Z1VkWGtLZU1WNWVITDVuNy96RjEvWnhuSDZIbXd2elFNQjBBbDQrRUtPNklucGIvZndsdDV0ZU9TbzBsOERnNEtlNHd0S2NLeDBmQXlBVElYSkJXMS84ZWtzY0FCOTV2c1k2Rm1haXA1VjUycnNHYWRPMlRpdFZVSzV1djg4aktrcENmNHdWZXoreHVXSXhoa1dVYXlFbzVBUUNmcjlIMUZSRXI5NDlaL0U5VHJBSE5reE9nTHRpWGdwSDEwK2VJNE03Mlk0QVNKRURveGVZN2dBc0UvV3p1T3ByTXpESjBpejlIT2puNzF2YmVVcUdtd2VKdzA1ck1valB4bWcwZU5HZXc0L1lBU1FnQUFMR0VKQ2phNVdsc2ZOMnoxbjRoREUxUUtwU0JLNi8vaHpXWjBuT09pV2Y1ck5ZQkppcWFIRGtNTk1kQUIvNXZzejFUeC9XTUtXa0JlOHl0Sy9jNnorS1FEOUorckZvb0x1a09IZzFGdmhaOEdORWxZWVM4UEF3ZTBLaDQ3dGxnSi95c3VCcGZCTG1xNFlhRHVFcUViZ3BMMlhrOEg4dXYrR1JlTWhVQitCczBWck5NZit2eXN0WWd3dkxKLzVOMjlxb2YzQ2FvQW9HNjZHQytFREFrNmdvanZ4TXp2UDNZcDVmaFNhQkRqb1Q4SGs5OGVGRTNLdXoySnpFSWNCUFR0aHNYWWhQK0R1Q0RWaVpseEU5T2U1T0c0NzdUSFVBRWhTWDIvN0NlUmxyY09HdHU3dXByZFBkZS8zNW9ZaktpeU12UjRQaGkzYk9tOWRzTUhLSUJ3SExDUEJjKytEd1NEeHFtUUpqRmZQMDJwN3FDbS90cHNvRmt3Unp0MXBEMUc4SUFZOUhidjNMTHg1UFQ0NzlGWThhbU9ZQWpEMzlmOFlRaURvSmJXenRkLzEydjhKWW9MMndJSGhaL2R6RmordUVGV0pBUUZrQ2thQnZXMS8veUh1c1ZGQUcrS2xkWFB2ZURacVdETTlxcFM2bzJ6d0M0dWFiaTNtZStmSzhhOHgxQklBck5zMEI0S0YvZWFTaHNrLy8zYjNEOVBZTzk0YXc4ZnU4aWNyUzBFLzJMbGg2TGZiejUvMWZFZ0pzUWlEZzl6N0ZxbHJtQU13b2p6emFkRVR0ZVJ0c3dndHE2a2dnSHBjUHhCd1FMOCtVYTNSYUh1ck5iK2doUTczUEZZMHl1cEdNY2F4a2txZjd2Ym1sUGFOUXlrb2FrS2RTSllYQlBUV1ZCVWZLemo5UFVTZ09BcllpNFBjT2Z0UEhXMXZOVm5wL2dKL296MlhuYjNiZHFNOTZBdUthYS93ODlKL2YxajlweGlBUEdnM25PSENrVVo1ekR4bHlaUFZ1NEt5UkRMT2JtazJ1QUg1amN4c041UXJSVkczMXJTem85OFJuVlJYYzNubmswWWZ2bm5QRTIvcEtoelFRVUovQXJybkhkcFhFQXErWnFhblhxNGxaVlpHdk55NWNlcldaOWFJdWhRZ0VBcGV4Tm9mbHJWRjNmMTRpREo4Q09FczBSVGxNM0hWNWFXbGc0YmQzZEZMUHZpekRLQnFvanhtaVpkU0pzcEx3VzZVRi9yTzJ6RjYwMTR3NlVRY0lxRW9nVnVEOWFHZXZ0bmwwVk1qL0dvWW1CUGd4Rks4dGhJdFZxN3o4OVA5bERxNlN2NzY1TGdDVU5YUDFoazhCeEVuN0xGZFZscitsK2t2WTI5SkhqYTE5K2d0V1dHSTQ1QnVlVlZPNHVtM0prYlhvL0JWdUtLaG1Hb0VkczVkdXJTaUovTXJvQ2tOQjM4aXN5dkRaaU81bk5HbkY1VmRXZnBnNy8wVzZhSm1YQStBMWRncmdlQ0g4UE0yUVg1QURYU2dkS21SZi93aHQyZGw1NkEwSFh5a3JEcjlkVXhPYlhUZG4wWThjYkNaTUE0R3NDZkJ3L09YOC8yTkwxZ1V6TENBRC9GU1doMDdaZWZqU0p6TXNnbXhPSmFCcE1oaWVQcWs3eHhnQXNuWVBKUXlkQWlpaFpybkZJZjk1RG4xUUhaQVNqd3Y2KzVZMml1Y1NQZW1BRlB0OENQcTk4WXJ5ME5mcTV5NzlqbnYzT2RpbnZhQ3BOUVJpNFpHVFJ1T0J6YndqU05kVFNubGJiY2VNa3VEUkdIR3pwbDFWcXBVRC81elAraHluaTA0eVVtMHVad0NrS3ZkNEVzWk5BUWdoWnpnK242cExwZmQzK01tL2oyUDl1eUhKQUNOektpSUxaZWZ2Qm50aEl3amtTa0F1Q0l5V1Zjd3RLd3B1ejFYR3hISmx4YUczWnMvd0hvN09meUlabDM3WHRLL29abmtYTHdETTU2d2FyelpxMkFqQWNtcFp3WHRyYW5VelZpZEJEUzZaOS9mNU5ER2pOUHJEK2dWTGJ1alFpUjNFZ0lEVENUVFUxTWhsMVF0cXRtLzZVVXY3NE9mNFBKQ2NWbXJKVXpNclM4TS9sbHRyTWVybTlGOU5admFKNjY4L2szT2VtbG51REhKMTVMbCtqUU5QR1RZQ29PTGN2NXozMyt5Q2VYK09LZDVSUFNOMGt1ejhNL2daSVFzSWdNQUVBZzN6YTYrYlhWNHlsenZ4djJRVEo0RFBGaEFWcGVGWDVsVkc1eU91eGdTb2J2K3FhVi9URlVHSDlGWHpTRjRheWNtN25hN0s1YUwxQ0kzaWNsKzVZUTdHZERwTXZDL24rLy82WmpNUC9UdjNrQjg1NTFKVlh2QncwNExGbC9BcVU1NGdRZ0lCRU1pWFFHM0xwb0x1WHUzV29XRnhIaDhTTm05b0pCNU9qUXg0T1pwYU1PZ2JDZ2Q5ZTRJQjdYRlBrRzZybjEyTFFiZDhvVHVzdkxqdXV0UEk0M2xPTjdOazZLckhOeExsYzJKdGFiVEprQ2tBN3Z6bGs2Y3luYitFL3M2T0RrZDMvdklNY1E0citsbHNNWkt0alFRQytoSFlWRmtyRCtpUmM3Y0g1bTlyR2hvaWdhR2h4SzY1Y3dmbGMxaWV6Mkw2S1F0SmFoTHdlUDVWVjhWay9QOThPbitwaktZTjYrNEFMQk9keFVSRFYraHFiSjdDNUY1L2VkQ1BVMU5STE5oY1VhU2R1dTJ3eGJvdFhuSXFLOWdGQW5vUUdGc3JvSWNveUhBNEFWNzUvMEUyOGYyNm10bWU1L3kvVk1icjZkWGRBZkRUMEtkNGRDTC9BdzUwb2lWRC9HN1o1Y3o5L2pLZWVHVkorSmtsaTVhdTJJQ1R4SFQ2eFVBTUNJQUFDT2hEZ1B0Q2paKzB2Nm1QdEhGU09uVndBRHhhais0T0FLdW8xSkcvYjIzdnBKRlJPV0hpckNUMzlsZVdGMXhmTi9lSXU1dWRaUnFzQVFFUUFBRm5FRmk5K2lOc3lMRzZHNVB2QWtDcGtOZlRxYXNEc0Z3MG5zRmRyVEpiLytxYTlsRjcxNkR1N0swV0tJZjh5NHA5Nzk4eCs0aXRWdXVDK2tFQUJFQUFCQTRsa0l6NXIybmZPUFJPbmxmNitPeWFRUjBXczJ0YWg2NE9BSjh1ek1mSnF2RzBQVEEwU3R2MmRPVkpXcjNpbFdXUmw1WWVzZlQ5R1BKWHIyMmdFUWlBQUFnY0lGQlZkUlYvWG56Z3UxNGZPdVNhVkIyU1IydlZiYVgrTXRFeWd6di9pM1ZRSzI4UjBnVjVhMXNIeVpDL1RrbkpJMFJuUkwvYnNxajJGSFQrVG1sVjJBRUNJT0JFQXVLS0swSnMxNjJHMktiSDhMOVVUS05tM1VZQWZKU1EzbzdmRUlPekZMcW5vWmM2ZTRheUxLVnU5bERRTzhLbmxWMWFOMi94dytwcUNjMUFBQVJBQUFTU0JHS3gxUnltZDdZaE5QVFlBU0FWOC9rYTlIRUFPTzQvVWZPVmhoaWJwVkFaNDM5N1hYZVdwZFROWGhUenQ4MkloZDY3ZWM3aW5lcHFDYzFBQUFSQUFBUWtBWEhMTGFVME1xSnYxTDhVV25uNFQ1OU9EN2UreEJaZEhJRGwxTFNNeHhQbXAzUzA2bDN3d1FpYnRyVlR3aUduL01uamUyUGg2SEdiNTh4MTNrcEdxMzRrcUJjRVFBQUVqQ1F3UFB5dnZQV3YxSkFxbW52MEV6c2MzNnlMQThDUC8wbzgvZS9hMjBzOSs5aERzbm55Y0hqUm1nbyt5R2Yra3V0eGtJak5HeFBxZ3dBSXVJWUFCLzJwNWM1ZlRvY2JrMXAxV2dESWgxVnBHeDdxeXRzQk9GZTBGNDdReUllTnNUWnpxUnlqbTNidXRmL1F2enhGYkVaRjdEcTV2ejl6NjVFVEJFQUFCRURBY2dLYTloK3NROTc5YWxvNzVNaDJ1MDRPUU1DZjNFZVl0NkxjK2N0QUI1RzBDcHQ0OFowZG5UejBiMktGQmxRbEYvdFZWOFRPMzNuWXdpY01FQStSSUFBQ0lBQUNCaEhncC85TFdQUktnOFR2Ny96empmK2ZVaTdnNGNNRWREaXdoNGYvcjBqSnRPcGR4dnJ2Nk5acFlZUkZSaFJFL2IwMXhVVkhvdk8zcUFGUUxRaUFBQWprU0VEY2RsdUFoLzYvbldQeHpJcTE2UFQwTDJ2emVwUEM4aG9CT0ZNMHp4Y2tUc2xNZTJOeXlUQy9XM2ZiTytCUFNXR2dJVnJrTzJySDdQazRSdFNZbndta2dnQUlnSUJ4Qk5yYWJtYmhDNDJyZ0NXMzZMZ0EwT2RKTGkvTHl3SHdFbjJDWnlWNEVNQzZKS1A5RFkvWWQreS9valQwUnUyaUkwOUFjQi9yZmtPb0dRUkFBQVJ5SlNBKzk3bEtMbXZNdHIrVVVuTDczejRkUjdsOTNub3BPcTlJZ1B6MEwrZi9MVXR5eFg5RHM0N0RJaVphSWsveXE2bUlyR2xkZk5ReDZQeE5CSStxUUFBRVFFQlBBbjcvdjdPNElqMUZIaUpMcjlYL0tjRitMWGwwZk00T3dKbWk0VGlXdFRRbHoreDN1ZWYvYlY3NFo4ZGd2eDZtUHJNeTh1MkdoYlgvWURZMzFBY0NJQUFDSUtBUEFYSDk5Y3M0NHQ5bCtraWJRb3Fldy8reUdrMTdTNzdsN0FEd0ljY2Zsd0tzU3ZLa3YxNTVLcExOa3BmMytNK3FLUGhhL2Z5bFg3R1o2bEFYQkVBQUJFQmdqSUM0NFlZZ2QvNXl1N2F4MCtCeSsxK2J6aVBkdnNEcjBveWNISURiaE9DSFdJOWx3LzlEdzNFTzk2dmpnb2l4QmpYNnpjZDcvR2RXUlQrM1ovNlNmek82THNnSEFSQUFBUkF3a0lBUVgrY242VVVHMXJCZnRIejYxMnY3bjVRbzNaWFJjTklCeUdrUjRBdlVlSm9nejZ6OTJwbi83K1pkWFh6U243MFcvZ1g4M3NUTXl0aEhkeDYrY0kzNXhGQWpDSUFBQ0lDQVhnVDQ2WDhwUC8xL1VTOTVVOHBwMVBsaE4raVBheHZ1VFlhWHo4a0I0TTdmc3NoLzhwUy9sdmIrS1htcGRqTVk4STdXVk1iT3d4NS8xVm9HK29BQUNJQkFkZ1NTTzk4U2lidjQ2VCtRWGNrY2NzdmgveWE5SFFCZmIwcVQ3S2NBK09RL1Z1bmlsQUN6MysyMjV6OGM4ZzFYVndWUFErZHY5aThGOVlFQUNJQ0FBUVN1di80ejNQbWZZWURrUTBYS3czOUc0NGRleitkS3dOdVNLcDcxQ01DWjFIUWlUeUljbGhKZzVudFRXNyt0RHZ1SmhIMEQ1YVVGSit5YXZUQzU0dEpNVnFnTEJFQUFCRUJBWHdMaXBwdXFlUDc1RG4ybFRpR3R3WUR6YlFMK1hha2FzM1lBZVBIZnBYemljYXE4YWU5eUpHUjduUUV3RExJZ0V2SU96cWdvUEdiSHJQbGJES29DWWtFQUJFQUFCTXdrRUkvL2dLc3JNYVZLdWM1TjcrMS9Vbkh2L2kyQThtUFdEZ0IzL2grU0JjMU9kWTI5TkRBNGFuYTFPZFVuaC8zTHlvTW5vdlBQQ1I4S2dRQUlnSUJ5QlBpd240K3lVcXRNVXl3NS9HL0FZbmVmNTVXVURWbXRBVmdobW83aWd2TlRoYzE2bC9IK2QrM1ZlU0dFUWNwejV6OVVVUlk0cnU2d3BSc05xZ0ppUVFBRVFBQUVUQ1NRRFBlcmFkODNzVXFpUm9OR3ZQMkI1MUoyWkRVQ3dOc0hMekIvOEo5b1IzMFhqZWk1RHpKbHZjN3Y4c20vcWlSNjhxN0RqOWlrczJpSUF3RVFBQUVRc0lxQTEvc3pycnJTdE9xVHcvOEhGdXZyVjIzQWw5Q2UrRzFkU21CV0RnQjMvdWVuQ3ByMUxvZjk5M0xVUDlWVE9KanMvRS9hTmZlSVpJQUYxZldGZmlBQUFpQUFBdE1UNEhDL1YzS3VDNmJQcVdPT1p1NzhqWGpvRGZzUEdsYkkyQUU0VnpSV2pCQzlWMGNUTXhLMWRYYzN5UVdBS2lmWitWZVdsWnk4YTg0Y2RQNHFOeFIwQXdFUUFJRXNDUERRLzB6T2ZtY1dSZlRKYXRUd2Y5QlhQMTdCak5jQWpKRG5YQzdJSndDYmw3cDZPZWhQaDlwQmYwSkIzNGpzL0hmUG1mT2FlV1JRRXdpQUFBaUFnSkVFK0xsVEk3OWZEdjJicytvL1pReUh1cWVtZ3g3VVUzZnlmdy82RHBxZXp0Z0JrUFAvK2RlZW5ZUWRpbS83OC9zOWllcUtndlBSK1dmWHJzZ05BaUFBQXNvVHVQNzZhem5jN3ptbTY3bTNrd3diOXZaN1hoeHZUMFlPd1BGQytBV0pzOFlYTlBwek56LzlkM1FQR1YxTnp2SjlYbytZVVY3d2NVVDR5eGtoQ29JQUNJQ0FrZ1E0NEk4ODVPYzdsaWkzaHgwQW81TGY4OFI0MFJrNUFDWFVlaElYS2h4ZjBPalBLcC8yNStFamZmbkovNGE2dVl0K1p6UUh5QWNCRUFBQkVEQ1BnTGppaWhCSCsvc3QxeGcxcjlheG1ycDR5cnRud0pocS9YSUh3QVB2akJlZWtRTWdLTDV5ZkNHalArOS8razhlVm1SMFZWbkwxelNOYWlvajM2MmJ0K2lIV1JkR0FSQUFBUkFBQWJVSkZCUjhseFU4eGhJbDkzUVlWMjNVM3pWUmVFWU9nRWFhcVE2QXlrLy8xZVdSZStybkxmM1NSSkQ0RGdJZ0FBSWdZRzhDSE8xUGJuVmZiWWtWY3UrL0ViSC9VOGFFQTl0U0gxUHYwem9BNTRwMk9mUi9RcXFBMGU4cVAvM1BxQ2g0dUdIaDBxdU1aZ0Q1SUFBQ0lBQUM1aElRTjl3d2kwLzV1NWRyNVRYdkZxUUdma0FmMGZua3YvRm1CUHgvSGY5VmZwN1dBUmltMFRNNW4zOWlRYU8rNzZoWE0rUnZaVm5rcGFhRlN5NHl5bTdJQlFFUUFBRVFzSWFBdU8wMkg2LzRsL1ArWmRab3dMVWFPZnd2amZKcWowMjBiVm9IZ0YwaDA0Yi91M3VIcWIxTHZibi9rcUxnM3FWSExIMy9SSGo0RGdJZ0FBSWc0QUFDYlcyM3NSV25XbVpKSCs5NE16TG1qWmU3K2hiUFV4UHRtOVlCNE5QL3pwaFl5S2p2TytvTkNuNlFoOExSc0srL29pUjR6QVpORzgxRERJcUNBQWlBQUFnb1NJQkQvY3BSN3E5YXFwclJULy9SWUsrMmFjM3dSQnVuZEFCaytGOHVzSGhpSVNPK3EvajBId3g0UjB2TGdpZHRxVm5VWm9UTmtBa0NJQUFDSUdBZGdlUzhQOUd2V1lNcCswSkROVXp3NHI4NkEvZitTK1ZEdnQzcGJKalNhQTcvZXpvWE1tVkJ4SzRHdGViK3ZSem9wNm9pOGpFYzY1dnVaNE5ySUFBQ0lHQnZBdUthYS94ajgvNVZsbG9pVi80UEdUekFIQXo4SloyTlV6b0FHZ25wQUJpZUJ0ajR0azUxNXY3bFh2L3E4dEMvN0RsODhmMkdHNDhLUUFBRVFBQUV6Q2NRQ01oWUx0Yk4rNmNzM3Q2YSttVGNlOUQzUURyaFV6b0FQRER4Z1hTRjlMNjJwNkdYSFRGMWp2eXJLZy8vcm41KzdUZjB0aFB5UUFBRVFBQUVyQ2ZBOC83WHNCYWZzVnlUTmo3cXZzZmdoMSsvUjlDNk5ldlMyVHFwQTNDZTJGM0NZLzlIcFN1azU3VlJEbjdRMEtyT2lYOFZKZUhYbWhiV2ZsUlBHeUVMQkVBQUJFQkFEUUljN0VlR3R2OHZKYlRaYWNMeXNvSlFLL2ZsL0R4L2FKclVBUmlpd1BzNCs2VDNEeFdWMjVXOXpmczQ3SEphM1hJVG1FZXB3b0pBWnpRVWxYWWpnUUFJZ0FBSU9Jd0FIL0pUeGNGKzVOUnUwSExUOXZIV3YrWmU0OVVJK3pkT1Zza1VIYngyOG1TRjlMb3VoLzNybS9yMEVwZVhITG5pZjBZczlMNWRjK2NhUEI2VGw1b29EQUlnQUFJZ2tBT0JaTENmZUZ3ZTREWXJoK0w2RjluVnpydnNUWmo2RHZrUDJmK2ZNbVpTQjRDSERPUXdpYUdwcFdPQTVBSkFxNU04M2ErcUxIejFscm1MM3JGYUY5UVBBaUFBQWlCZ0FJRzJ0dSt4VkZQV3RVMnJ2UXo1VzJmZ3dUOHBCYmh2bzFqZ3Z0VFhpZS9wSFFBaE5QWkxUcHlZV2UvdmV4cDVBWVFDYVVaWjlCZDc1aTZaRkpJQ0trSUZFQUFCRUFDQkhBbU1MZnE3SWNmaStoZmJ6WjMvcUFsVDN3WEJQdTNoM3paTVprQmFCMkE1TlMzaEFzV1RGZExqZXMrK1laSUgvMWlkZU5IZm13MExsM3phYWoxUVB3aUFBQWlBZ1A0RXVQTS9sNlhLTFg5cXBBUS9Yc3ZoZnpOU0pQajJWTldrZFFENCtGL0Q1LzkzODlZL3ExTXNHdWl0TE5PczN3ZHFOUWpVRHdJZ0FBSU9KTUFyL212WnJOL3d5NmVNZVUwYytHZmdrS2k4eHFnWDlEOCtsZUMwRGdDdlREQjArSDlvT0U1eS90L0tGUEI3NGtXbHdkTTJWZGFxTVE5aEpRelVEUUlnQUFJT0l5QnV2cm1hVi93L3htWVZLV1dhR1lGL3BNRWMwSTQ4M2ltbnR0TTZBRHdDY0p5UndCcGEraXdOL0NNai9WV1ZGZHhVUDN2eG0wYmFDZGtnQUFJZ0FBTG1FeEMzM0JLbTBkR0h1T2JaNXRjK1JZMU5IUEsreTZTSDMyaGdRTnV3WnRzVTJoeTZ6MytaRUQ2ZW9UaDZxa0w1M210b3RYYnJYMlZwK09tNmVZdlVtUlBLRnlqS2d3QUlnQUFJSkFud2RqOFBkLzV5MlArOXlpSFoybUtlU2dYQnpkTlZkc2dJZ0pkYWxuS2gwSFFGYzczZjBUMUlBNFBXYmYwcmpBYTZ5a2RKTGdwQkFnRVFBQUVRY0JxQjl2WTdlWWo1SXVYTWFwWlAveVpHdlEwSDVBaklsQ25Od29qRXNVWWVBQ2lILzYxS2ZyODNVVkpVZE9hbU9YTk1Xb0ZobGFXb0Z3UkFBQVRjUjRBWC9YMlZPLytibGJSOGk0bFAvM0wrM3h1OGV6b09oNHdBY09mUERvQXhhWlQzUFZxNStHOUdXZWpmZHMrWjg1b3gxa0VxQ0lBQUNJQ0FWUVM0OC84VUwzejdsbFgxVDFsdkMrOTZNL1BwdnpEWXBhMzdUZk9VT3ZGTlV4MkF4clorU3NnOWtCYWtpdExRMytybUxiM1ZncXBSSlFpQUFBaUFnSUVFdVBPL2lEdi9uM0VWL09pcllObzhiVitzcjlJRm9WY3lFWGlJQThEMEREc0IwS3JoLzJqWTExOVo2amtqRXlESUF3SWdBQUlnWUI4QzRzWWJ6K0RPLzdlc2Nab3BiUVhzYU9XZDVtWSsvVXVUZmQ3L3pjVHlnNEN0RkswMWd1SWxtUlRNTms5UDN3ajE5cGsvOWU3MWVrUjVTZXo4VFpVTHNOOC8yMFpEZmhBQUFSQlFtQUJIK1R1Qmo1UDlBenNBaGkxY3o5djh6VTE1aThoS2dOOGp5TlA1NjB6S0hEUUNJQ2doZHdBWWtocjQyRjhyRWgveTg4dmRjeGFzdDZKdTFBa0NJQUFDSUdBTUFYSGRkUXRZOGgrNTg0OFpVNE1PVWx0NTdyL1R4SlgvVXVYaXlFNXR3NGFNdHRwTmNBQ0VJUTZBblBkdmFqY1pBbk1vakFYYUcrWWp6cjhPUDJPSUFBRVFBQUZsQ0lpYmJqcU1QSjUxckZDVk1rcWxVOFRzdVgrcFE4VC94M1NxcEx0MmtBUEFYd3h4QU9US2Y3a0R3TXprOTNsRWNXSGdiUFlPemEzWVRDTlJGd2lBQUFpNGpJQzQ0WVpaUE96L05KdDltTkttTjNTWi8vUXZqLzh0aU1wamp6TktCemtBZ293WkFXam0xZjltcDZyU3lBLzNITDdrVmJQclJYMGdBQUlnQUFMR0VPQmgveG04ei85SmxqN2ZtQnAwa3ByZzU4NTNUSjc3bDZySFFwM2FvNy9lbmFrVkJ6a0F2SU5DOXhHQWVEeEI3Uno5ejh6RVQvNE45UXVXM0dCbW5hZ0xCRUFBQkVEQU9BSTg3Ri9Gdy83eXlYK3hjYlhvSkhsbk81RUZpOTdaQVhnK0d3c09PQURuaWQxeTlYOVpOb1V6eVN1SC84M2MreStqL1JYR0lpc3owUTE1UUFBRVFBQUUxQ2VRUE5sdmRQUVoxblNKOHRyeWFiZGtac3ovOFVBQ3ZtbWovNDNQZnNBQkdLREF3dkUzOVByYzBtN1N5VWRqQ2xlVmhMKzM1L0NGYittbFArU0FBQWlBQUFoWVIwQjg3bk9Wdklqc0tWN1B0Y2c2TGJLb2VTc0gvUmxoSjhEc0ZBa09hK3NmZURTYmFnODRBRjdTZEo5VEdVME8vNXZuQUpRVmhiYnowUDhYc3dHQXZDQUFBaUFBQW1vU1NIYitQcDhjOXRkOWV0b1FpL3M1MXMwdUh2NjNJaFdIWDg2MjJnTU9BTS8vNno0QzBKb2MvczlXcGR6eXkxWC9aWkhBK2JtVlJpa1FBQUVRQUFHVkNIQ1FueHJ5K1dRTWwxcVY5SnBTbDdjYWlTd0tkMDhoejExVDZwYm01Z0VIZ0lNQTZUNEMwR3ppM3YvSzBzaFB0OHhkOUU0YUczRUpCRUFBQkVEQVJnUjR6bjhPcXl2bi9PM3g1Qy9aeW9BL2pkM3lrL2twN0IvVjFqLzArMndyUHVBQWFLVEpxRXE2SmJudnY4T2sxZitGMFVEWDN2bUxyOVZOZVFnQ0FSQUFBUkN3aEFBLytTL21PZi9udUhKZCt5VERqWkZQLzFhbDRraE9XOTRQT0FCOFJ0OWNQWFZ2N1J6azFmOTZTa3d2eThNV0ZCWkdQNGFBUCtuNTRDb0lnQUFJMklWQU1yYS9wc25PZjVaZGRFN3FXZDlKMU5Gbm5jcGgzMDl5cVR6cEFKd3J0Z2E1OEl4Y0JFeFdwcm5kSEJnVkplSDE5WE1YUEQ2WkhyZ09BaUFBQWlDZ1BnR084UGQrMW5JZEIvb3BWMS9iY1JxTzhvci90eTBJK3BOU2dZZi9hZjJEOTZhK1p2T2VkQUJHcUhBbUY5S3lLVGhWWHJuNnY2TnJjS29zdXR3TGgzekRVVi80RWwyRVFRZ0lnQUFJZ0lBbEJNVHExUi9ranYvUFhIbWhKUXJrVTZucy9BZEg4cEdRWDluaXlNdmNlZWMwM2o0MkJaQTRMRDhORGk0dDUvN05XQWhaWGh6NjJvNzU4eTFhZFhHd3pmZ0dBaUFBQWlDUVBRRWU5djhJVCtFK3hDWEQyWmUydUVRWGIzUGZiZEcydjVUcDBmQy9wejVtKzU1MEFEVHk2RHJmMHQ0MWxLMGVXZWN2S3c1dnJadTM1TTZzQzZJQUNJQUFDSUNBRWdTNDg3K0pGWkZuMS91VlVDZ2JKUVN2blB2N1hpSitzeXdWQkFlMGRiK1h6bE5PeWJlL2xOQjFCS0JkZWtVR0pwL1hJeUlGbmc5WjdIY1phQ0ZFZ3dBSWdJQnpDWWhWcTd4VVZmVWZiT0VOdHJWU3h2dnYvK0NQRFFBQUxjeEpSRUZVTXYrZ3U0TjRGWVkzSFBROXl5OUpCNEJQQWVRUkFIMldBT3pySDZIQklXUERJRmFVaGgrdU8yenB4aXh0UlhZUUFBRVFBQUdMQ1lndmZDRktnNFB5cWY5Q2kxWEp2ZnFoVWFJdEhQTFg2aFFOL21zK0tveU5BR2cxK1FnWlg3YmQ0TVYvb2FCM0pFcitUNDZ2RTU5QkFBUkFBQVRVSjVBODBXOW82QkhXOUVUMXRaMUN3NDA4OUc5RnZQL3hLaFdGdTdTbjFqdy8vbEsybjhjY0FLckt0dUJrK2RzTUh2NHZMdzUvYTl2OGhUMlQxWS9ySUFBQ0lBQUM2aEVRMTEyM2dPSnhlVmlON21IblRiVzJ0WmVvUVlHMTUwV2grL08xZTJ3WGdENE9RSnkzLzNYM0dMY0FzTEFnMEZFL2Y4bnQrUnFOOGlBQUFpQUFBdVlSRURmZStEN3llbC9rR3UzZCtjdnRiUnN0alBpWGFqSSsrNFlDa1Z0VFgzTjlUemtBbGJrS0dGK3VvM3ZJc08xL21xWlJVY3ozNmZIMTRUTUlnQUFJZ0lEYUJIaWwvMVVjRnZacDJ3WDRTWWQxTTgvNzd6TSt4azI2cWcrNlZscXdSVnYzbTd3WElmaVdpWllDamlFUVBVaDRqbC9hREp6L0x5OEp2VjQzdC9ZUE9hcUdZaUFBQWlBQUFpWVNFTGZkNXFQMjltOXl4LzlsRTZzMXJpcDUyTS8yRnVQa1p5TTVHcEE3S1BKT1BnOEozZWIvamRyKzUrUGhqbGpVOHcrdGVac0xBU0FBQWlBQUFrWVQ0TWgrWmR6NS80NDcvK1ZHMTJXS2ZKN2VwdGZxck4zem56STBFaHltRFd0L212cWF6N3QwQUNyeUVaQXEyemRnM1BhL2lwTElBenRtTDltYXFndnZJQUFDSUFBQ2FoTGd4WDdIc0dZUGN1Yy9SMDBOYzlCS252VFhaOXo2dHF3MEtnay9tV3ZvMzRuMThCb0FVVGJ4WWk3Zk8zbiszNGdVREhoSG8rUzd5Z2paa0FrQ0lBQUNJS0FmQVo3dlgwVWV6L01jMm5lT2ZsSXRsdFMyajJpWEltSG5lQzBjUmJ4ZjFJc0lMeVgwRk9zaHJLdlhHQWVnckRoMDc3YUYyUGFuUnh0QkJnaUFBQWdZUVlEWHhtczg3Qy9uK24vSEwxM1dsQm1oWjlZeVIzbm8vL1g2cklzWlZxQzhZS2YyMUlOdjZ5V2Zwd0FTeFVLSEtJQkdPQUR5dEwrQU4yemZVSkY2dFJMa2dBQUlnSUNpQk1RMTE1UlRJUEJMVnU5Y1JWWE1YYTJORFVRRHc3bVgxN3RrTkpqendUL3BWUEZ4NTUvM0NNRFFjTnlROEw5bHhjSHY3NW83VjRFOUYrblE0Um9JZ0FBSXVKc0FQL1dmenNQOU1xeXZQRkxlV2FtSjQ4M1ZkYWhqVXpRNFJNK3N2VnRQaGVRYWdMd2RnRTREZ3Y5RUk0RysrcmxMdnFLbnNaQUZBaUFBQWlDUVA0SGtrTDg4eVUvVG5tSnB6dXY4K2FHVzNsUm82RjgyV1VuNFliMFcvNlYrQWNrUkFCYWFWekppK0wra3lQLy8ralNOSjJDUVFBQUVRQUFFVkNFZ2JyaWhnbGY0L3cvcmM3WXFPdW11aHp6bVZ4NzRvMHJpRTNDcEpIaUwzdXI0dVBNdnpGZG9sODRqQUxGb29LdCs3dEx2NUtzWHlqdWZnTGppaXBDMFVydjNYa3dWT2IrNVlhSEZCTGp6Zno5My9yOWhOWnozMUo5aXU1dUgvUnU2VXQvVWVDK1B2YTc5Y1ExN0pmb21lUmhRSkIrUm83eEtzbytQQU5ZemxjWkNYK1RqRnBCQTRDQUN5V05FQndZK3hNT09LL2lHUEUxc0xyK1NEZ0J2UCtLOU9yU2RYeS95L1NmNS9VL2FEMzVnek5ZVUZvNEVBbTRpd0ZIOVBOVGErbVh1L1A4ZjJ5MzdEV2VtSG42TzJNUUwvMVJLeWExL3djOGJvWksyWERTdDQxR0FNM01WM3RZNVNLKy9vMStNdnFKWW9LMzdxUGZvRXB3b1Y1dFFUaTBDNHBaYlNtbGs1RmIrNDNNMWQrNnhETFhyNFB4M2s5Ly9YZTAvLzFNeGR6NURDNUFOQkJRZ3dBdjlEdWYvZDNLVi8ra0txR09jQ25MTDMzTmJPZGEvWXM4TlpkRkc3ZjhlcXpIQ2NBOTMvbm1OQU9nOS8xOFlEZDFtaEtHUWFVOEMvTWZuVTl6NWIyUHRiOG1pODVmR2xuTCtyOUhvNkhZZUhiak1udFpEYXhDd2xnQVArWCtTL3grOXlWbzR1L09YbU9XOHYycWR2OVNyS0hTSGZETWlhU3RFMHhzcytPaGNoZjl0VXpOMTllaXpUNUxuL3J0NzMvT2V2SGNsNUdvTHlxbERnSWNjQXp6aytGLzh4K2V6T21uMVN4b2V2bHI3eVUvMG5hL1NTVG1JQVFHVkNMRGpMU1BFM3MzLy95NVZTUy9EZEpIei9xcXQrcGZHeG9JRDJzWW44M3BJbjRvWmJ3T2s4RlFacHJvbmhLQ2VmZnI5UFMyT0JiODdWWDI0NXc0Qy9OUlJ5QWVKUEtwajV5L0JmWktEbFR5WVdqVG9EcEt3RWdTeUo4Q3gvTS9oLzN0L2QwM25yK0s4ZjZyWlNxTy9TSDAwNGoydlJZRDlBNk44ekRQdkNOVWhSY08rZ2JxNWkvNU5CMUVRWVdNQzRxYWJxaWdlZjVSTk9NNEFNODZqZ29LZnN0ekxEWkFOa1NCZ2F3Sko1emdXdTQzWHpzaFk4L0xoMFBsSnp2dS91cHRJbnZhbldncjdSemxTL3o4YXFaWnM1R0N1RmZUcXVQcS9wREQ0QS9ZNEZXeUZYT21nWExZRXhJMDNMdVRPL3dVdVowVG5uMUxuTWw0VGNFM3FDOTVCQUFRNEhOd05OM3lBbmVNM3VmT1g4ZnpkMGZuTGh0K282THkvMUswODlxQzJ3ZGp0emJLaGM5N1MwZHVuejl3L3gvd2ZXakJ2eVQ5Sm01SGNTWUE3NVJONE9PbDV0bjZlQ1FUdVNNWXZONkVpVkFFQ0toUGcvd2RGUE4vL2ZlNzRuMlk5RjZxc3ErNjY3ZUY1LzdwTzNjWHFJdER2UzFETXYxb1hXVk1Ja1E2QWQ0cjdVOTdhcDlNSVFHbGg4QmNiTkUyaHNFdFRtbzJiT2hOSXpqa1NyV2V4bFRxTG5reGNDVzhQUkpqcHllamd1aXNJc05OOU1hK0xlWXRIWG05a2c5M3oxQzlidDdOLy82cC9WVnU2SXJwZWUyeU5mdnZySjdGVE5uck9EZC9ibC84Q3dGRFFOK0wzaG5VUGNUaUp2YmlzR0FGKytyaWN6dzkvbU5VcU1GVTFUYnNDQ3dKTkpZN0tGQ0hBRHZjTTd2enZaM1VlNUpjaCs4c1ZNVFc5R29QY2I3MnlpMGluOVd2cEs4bmpxby9EL29hOWV1MSttbElSMmZubk5BVWdUd0FjSHVFREUvSk1KYkhBSDNIaVg1NFFiVnFjL3doOWlaOCs3bVAxL1JhWVVNWnpudWRaVUMrcUJBRkxDSXdkNEhNVk85eHZzUUlmdGtRSnF5dVZpLzFrNTY5U25QK0pUQ3BpTDJ0UFB5U2ptaHFlWk9lZjB4U0FIc1AvWGo3Z0lCSU4zbVM0bGFoQUtRTEpzS0x0N1hmeXZPUE5saW9teE9sYy93T1c2b0RLUWNBRUFyekE5a2hlWTNNWFYvVUJFNnBUdDRvMzZvbTZCdFRWejh1aCtRcDhuelpMd1p3ZEFEMFdBSllXQmQ3Y1BuTkJuVm5Hb2g3ckNTUUQvTFMxeWFmK2oxcXVqYWFkWkxrT1VBQUVEQ1FnRi9ueFBQL3QzUG5MQldVNWpmWWFxSjY1b3JlMkVPMVZQQ3A0WmVGZnRhY2VmTnNzTVBJSElkMmhyQ01ONlRIL0h3eGlJWlpaRGExQ1BUejNXRUJ0YlhMdThXd1Y5R0VkWmlxaUI5UUFBVjBKeU9GK3V1R0d5M21VN1Rzc3VFcFg0WFlVMXNMSHkyMXVVbHR6K2ZRZjlWeHBwcEkrL3FHMGNMVnpzcTIwdHorL0xZQjg2RTlML2R6RmoyZGJML0xiazREQkFYNXloU0xEblNLQmdLTUk4SjcrWTduai93Ry9UbldVWWJrYUkrUDd5MkEvM05rcG5Tb0xYOUhXL1VHdXp6QXQrWGdWWUF0em1aTk5qWEZlUFRrd21OOEN3S0pJNEQrN3M2a1VlVzFMWUN6QWozVDI1aWxtUk01aHNCV3pBK3FBQUkzRjcvOFdkL3lmWVJ4eWdUY1NMMWFudis0a2toSC9WRTd5NmI4d1l0cmNmd3FGSEFHUWh3RzlOM1Voay9mK2dSSCtqZVh1VG9WRC9xRTk4eFovTzVPNmtNZmVCTVlDL1B5SnJhaTB0eVhRSGdUVUpEQzJydVlLMXU2Yi9NSlI2cWxta3R2OC9yYUxTS2VBZFNteGhyeFhGcjJnUGZHN2pZYklua0lvT3dEaUNZMDA2VEZtbkFZRzg0dlp3NGYrM0QrQXNMOFo4N1pyUm40aVdjNjZyK1ZYb1YxdGdONGdvQ3FCNUc2YXRyWVA4N29hK1RBMVYxVTlMZFByRFY1ZjN0NW5XZlVaVnl6My9VYzhuOHc0djQ0WlBYRUtQY1h5ZUpJazh6UXdsUHZ3djQrTmpjVDhuOCs4TnVTMEl3Ris4citNOS9nL3hycWo4N2RqQTBKbnBRbndQUDhLN3ZqL3hrcitubC9vL0NlMjFxWkdvbnJGVi95bmRLNk0vZG1zZmYrcEtsUHZuZzFhQ1ZNUzk2UXVaUExlbjhjSVFGbHg4TW50TXhid2Znd2tweExnemwvR2RyaVBYMVlFK0hFcVZ0Z0ZBbktldjViL2Z6M0NjN0JQTW81amdTUU5nVzBjUVhjSHYreVFndjRFK1VLV1BQMUxQTWw5b1FrUzMvYVFkalYveitnUGRxNVRBSDYvSnhIeENjdU10Y1B2d2M0NktoUGd4ODRRb1RzSXBDRXd0cEQyR3p5cTlqRytqUVYrYVJnbEw4bDkvdThvdnQxdnZPNFZCV3UwNTR5UCtUKyt5dkdma3c3QTAxck43dVdpNlJ1OER2RmZ4OStjN0hPdURrQkZjZWkrbmZOcW15ZVRpK3YySmFCVWdCLzdZb1RtSUhBUWdXVEhuMGpjeW9GOFBzNmRmL0x2OVVFWjhPVmRBcTI4MS84MW52ZlBZNEg2dThKTStCVHhqMUIwNENvVGFwcTBpZ00vcVBkVDFiZWZwK1psblBPc1NYUHpEYm13Y2xCdXJjZ3lsUllGZHpVc3JEVjltME9XYWlKN0RnUVVEUENUZ3hVb0FnTHFFT0JoZmptdi94WHUrT1hmekFOL3A5WFJVREZOdXZwNXhmOGUrM1QrRWw5RjRmZTBKeDYwZEpYaWdSL1diYndxZjVuby9JaWZodjdFZmZ6N0ptdmV3YUhzdHdER29vSGVjSkgvaE1sazRycDlDU2dhNE1lK1FLRzVxd2tjNlBpSjBQRm4ra3VRUWVuK3VvdjMrbWYvWUpwcEZicm5Ld3ozMHJNUGZrMTN1VmtLUE9BQXlISnlRZUJab3Vrc2RnRGt5dElQcHBQVlA1QWQ1S0pZcUttcUxIRFVscHBGN2VuazRacDlDU2djNE1lK1VLRzVLd213STcySTRuSFpJWHlDWDE1WFFzakY2R0hla3Y3U0RyVlA5MHRuVjBua0JwNXlUNlM3WmVhMWd4d0FXZkVUMm93K25rTTVmem0xWEtPUitDNWZpbzFYYUNERFl4UTlIbzBxU3NOUGxZL1FlWnRxRnJHTGh1UWtBdnlrY2dJUFR5TEFqNU1hRmJhWVRvQ2Q2T1A1NysxTjNQbC9uQ3RIeDU5TkM4amo2Ri9hYVk5QVArUHRxb2p0MEo1OVVPNlNzandkNGdBa05kSTBzWTdveDh0RXl4LzhsTGhSa1BZNW5sd3BrZmVtV3dBb08zNE85TE9qS09hOWN1ZGhTNS9GaWovTDIxaDNCWGpPL3h3V3VvWmZCYm9MaDBBUWNEZ0JzV3FWbDJiTXVJUTcvaSt3RTMyU3c4MDF4ano1NVA4aVAvbjNEQm9qM3lpcFhnOVJjVkNPOGlpUmVCUmkrblNCYUlqMGsrZE1QbURxbkxlM3QzKzRyV3V3Y25nNHpwYnc2aFN2Ui9EMnZ1RncwTHMzR1BDK0VQS0diOTA1Yjk3dTZhVWloeDBKOEpQL1phejNQZnpLYU11bzZqWnFkOTJWMGY4QjFlMkFmdW9UNE9BOVFkYnlJOXpwZjQxWDlDOVNYMk5GTlpSeC9WL2NUdFFsRDdLMVdhb3AycUM5K01nWnFtaU5QMzZxdElRTjlPRE8vMHVzNWgzOGNzenZCZzZBRFg1NE5sZVIvOS9VOE5QK3RkenBYOHVtNEFUS2ZOcFRMdlI3a1lmOTVhcC91NldRZjVTcUs2dTFEYjlwVTBYMTlGTUFxbWdIUFpRZ3dJdENOVnE5V3NZYi82SVNDa0VKRUxBQkFaNHFPNDA4bmh0WjFZdTU4M2ZFaUptbDJPV1QvOHU3N05uNVMzQlZoWGVxMVBsTGxlQUFTQXBJa3hJWUMvQnpMMmVRRWNpUVFBQUVwaUFncnJtbWlBS0JqM0NXRy9oMTVCUlpjU3NiQW5IdS9PV3h2aDJXYnB2UFJ1T0Q4eFpIT25qaDMxY092bWo5TnpnQTFyZUJzaG9nd0kreVRRUEZGQ09RWE0yZlNGekRhc2tGWGxIRjFMTzNPc25PZjVjOVR2WkxSNW9YeGxOeDlJcDB0NnkrQmdmQTZoWlF0SDd1L0dmdzhPV2pyQjRPSEZHMGphQ1d0UVQ0WUo0eS9qL3lNWjdmdjRJWDloMXZyVFlPclYxMi9xL3NJbXJiWjE4RHF3ci9xajN6d0NNcUdnQUhRTVZXc1ZnbmNlMjE4L2dQMitPc3hrS0xWVUgxSUtBVWdiRXRmR2R3cHkrZjlpL2k5NEJTQ2pwSkdUbm4vN2RkUkswMjd2emx3cjlvd1lXcU5nc2NBRlZieGlLOWtnRitpQkRneHlMK3FGWk5BdklZWG5hS0wrY08vMHArVmFxcHBZTzBra0YrWHVZNS8wNGJydllmM3d4VlJYZG82MzZqYkRnY09BRGpHOHZsbnhIZ3grVS9BSmgvRUFIZXR6K2ZoL2IvZ1Zmd1g4NDNsbkRIZjlCOWZER0l3T0RJL3M3ZmJrRitKdUlvajlacno2Nzkrc1RMS24ySEE2QlNhMWlvaTlNQy9GaUlFbFhibUFEL1A1akw2c3NoMjFYYzRiK1BPMy9IeEx5d1JiUElnMzFrYlA4K20wZVA5M2tGRlJaY3JEcHpPQUNxdDVBSit2RWZ2Uzl4Tlk0SzhHTUNObFRoRUFMSjRYMU51NVROK1RDL2puS0lXZll6bzVmRCtzcnd2aG1lTjZPMGdUTmlhN1QxYTE1VldrZFdEZzZBNmkxa29INjh4OTlEN2UxMzhwUE96UVpXQTlFZ29CU0JzWVY4Si9Mdi9ueFc3RVA4V3FLVWdtNVVSb2IxZlprNy8yR2UrN2Q3a2tmOStudVVpZmMvRlU0NEFGUFJjZkE5QlBoeGNPUEN0RU1JSkxmc2FScWZaMElyK0hVQmQvN1ZoMlRDQldzSXlDMStyK3dta21GKzdaN2tudi95Nk1lMDlYL20wNHJVVDNBQTFHOGozVFZFZ0IvZGtVS2dZZ1NTbzFzZEhjZnlNYnNyZUI1ZmR2ckwrSVcvZDRxMUV6VjBFNzIyaHlqaGtBV1cxVVYvMHRhdmxidW9iSkh3SDhJV3phU2ZrZ2p3b3g5TFNGS0hBSGNmOHJ5S3BkelpmeUQ1YW1zN2c3V3I0TS9xS0FsTkRpYXdnOC9FZWF1UlQ1cDNTT2NmQy9WUmQxQk9LZGttd1FHd1RWUGxyeWdDL09UUEVCTFVJWkQ4UFh1OThnbi9OTzVFWkljL0s2bWRVem9VZFZEcnE0bDgydCs0bDJoM2g3NXlyWlFtSGMycTRzdTBkYiszMWZZRk9BQlcvbWhNckp1Zi9FL2tRQ1p5YUtyQ3hHcFJGUWpvUWtCODRRdFJHaG82anZmbG41anM4RFh0L2R6cGx5ZUZvOFBYaGJFcFFtU0FuNy90dG5kbzMzU2dhZ3FmNE03L29YUzNWTDRHQjBEbDF0RkpOMTRBdFp6L2FLNWxjWVU2aVlRWUVEQ01BTS9mKzZpMWRSRTdyTWNuWSt4cjJ2RTBPSGdpVnhnNE1LU1BUdDh3L29ZSmxudjhaWFMvZlVPR1ZXR0pZTG5xdnp0MGdTVjE1MWtwSElBOEFhcGVuRHYveS9tUDVzOVpUNXhIcm5wanVWQS9jZlBOeFRRNldzdW15NWZjZzM4Q3RiVWR3Ny9aVUhKdUdIUDR6dmhWeUpDK2Y5M0YyL3hzc1RnK2MrWmVUVkJKNUdMdDJUVzJHdnBQR1FnSElFWENnZThjNE9jbU51dDcvUEk0MER5WVpDTUN5VzJucmEwTHVXTmZ5bXJMemw2ZW5yZVVPLys1L000VHFFaU9KU0JYK3I5ZVJ5UlA5bk5hbWxseW4vYnNnMC9iMVN3NEFIWnR1U24wVG02QlFvQ2ZLUWpobGhFRWtqdE1mTDU1L09RK2wxL3lmUjUzK0xLRG44ZFA5VFA1TXh4Ukk4Q3JMSE1MbjRPeldkbXpjUElqVnhadDBwNTc2TXI4aEZoYkdnNkF0ZngxcnozNXBOWFdkaDhML3FqdXdpSFFsUVRFTGJlRXVUT3Y0dm40R243SmsvQnF1RE92NG1zeitGWE5uK2Z4TmRuUlIvait1NHd3ZlA4dUM3ZDlra0Y5WHFzbmF1S25meWVtZ0M5QkpZSGxkamROczdzQjBQOWRBbng2bVZ6a3Q1Yi9LTnYraC9tdVZRWi9pc2RMRGE3Qkd2SEJZSWhYelljUFZPN3hGSlBYbS9yL1hzZ0JjdVJ2NWQyWHgxUEVuWGN4ZCtidlh0dS9ZMFJHekNzNklBY2ZRR0E2QW5LUm4xenBMMlA3T3pYTkx2NjY5dnpEMzdTN2Vhay9DSGEzdy9YNmk1dHVxdUkvNm84eWlPTmNEd01BUUFBRXJDR3d0NHZvVFg3eUh4MDNFbVNOSnNiVldsMzBzdmJTSXljYlY0RjVrakVuWng1cncycEtCa1NKeDUvakN0RDVHMFlaZ2tFQUJDWWxJSVA3dk0xUi9mNXZqN003LzBLTzlqYzd0R0pTRGphNzRiT1p2bEIzQWdGZTZYOENYNUlCZnVUY0xCSUlnQUFJbUV0Z2NJVG9WZTc0Ty9yTXJkZnMybndlUVRNS1A2U3RXY09uRnprandRR3djVHZ5cXV0eldQMDEvQ3F3c1JsUUhRUkF3SzRFMnJrdmxKMy9rTVAyOTZkcmo1bWxQOVNldlArSmRMZnNlZzFyQUd6YWN2emtmeG1yZmcrL0VPREhwbTBJdFVIQTFnUzJ0eEs5MCtTY2sveW1hb3pLMkVidGxUL0pRRldPU2hnQnNHRnpJc0NQRFJzTktvT0FVd2pJYUg1djFQTVd2eDZuV0RTMUhYTGV2N3o0MUtrejJmTXVIQUFidFJzdnM1RkhubjZiVmY2aWpkU0dxaUFBQWs0aDBOckxVZjI0ODVmei9tNUlmcStnaW9JUGFvLzl5cEhlRGh3QW0veUl4d0w4M012cWZzd21La05ORUFBQnB4QklyZkxmMGVZVWk2YTNRd2F5bWxueURlM3B0YzlPbjltZU9iQUd3QWJ0aGdBL05tZ2txQWdDVGlYUXd3RjlYdDN0dkZQOHBtdXZtdUxudEJjZlBuMjZiSGEranhFQXhWc1BBWDRVYnlDb0J3Sk9KaUNmK09YK2Zqa0M0S1pVRW0yam51QUtwNXNNQjBEaEZoNEw4UE00cTdoUVlUV2hHZ2lBZ05NSXlHMTk4Z1MvRnA3emQxdUtCSWVwcHVRRTdkRmYyL0tJMzJ5YUN3NUFOclJNeklzQVB5YkNSbFVnQUFMdkVwRGhmRGMyRU1uVi9tNUxQbDcwVjExNEtYZitQT2ZoL0FRSFFNRTJGcXRYeThOODF2SkxIc3lDQkFJZ0FBTEdFNUFyKy8rKzF6M2IrOUlSblZsOHAvYjBBNCtrdStYRWExZ0VxRmlyY3VkL09aL0k5bk5XQ3dGK0ZHc2JxQU1DamlXd3U0UG9MWjdybDhmNHVqVlZGNi9YWG5yNFREZVpEd2RBb2RaR2dCK0ZHZ09xZ0lBYkNQVHhOTGM4dmEvTk1lSHRjMnUxOG1nOXZmclk0ZHdoT3ZnWXcwUFJZQXJnVUNhbVgwR0FIOU9SbzBJUWNEY0J1YXAvVnp2UlpnN2w2K1NqZXpOcFpSbnBMK1k3MW0yZHYwUURCeUNUSDRpQmVSRGd4MEM0RUEwQ0lIQW9nWjZCL2FGOHUvamQ3U25zSDZYcWtwTzFKMzdub2doSDd6WTZwZ0RlWldINkp6N05yNEE4bnZ1NTRyTk5yeHdWZ2dBSXVJdUFmTkxmMmtLMGd3L3hjZHUrL25RdExZLzNuVlAySVczZEF3K2x1KzJHYXhnQnNLaVZ1Zk9md1ozL28xejlzUmFwZ0dwQkFBVGNRcUMrYzM5QW4wRVhidTFMMThZeXpPOWhwZi9rNXM1ZllzRUlRTG9maDhIWGtnRit2RjRFK0RHWU04U0RnT3NKZFBNdy8wYmUydGZSNzNvVUJ3R1lYWHFQOXZ4RFZ4MTB6WVZmNEFDWTNPZ0k4R015Y0ZRSEFtNGtNTXpiK2JZMkUrM2txVzJYUmZHZHRybHJpdFpwTHo2eVl0cDhMc2dBQjhERVJrNEcrTkUwQlBneGtUbXFBZ0ZYRVJEYzIrL0U2djVKMjd5eWNMUDJ5aDhYVDNyZlpUZXdCc0NrQnVjbi84dTRxbnY0aFFBL0pqRkhOU0RnS2dKeUw3OE00ZHZMcC9jaEhVcWdKTkpDMGZKakRyM2gzaXNZQVRDaDdibnoveEpYY3dlL3dOc0UzcWdDQkZ4RlFIYjRiL04rL3VZZVY1bWRsYkdGNFY0cUM4elROanppeXUxK2s3SENDTUJrWkhTNGpnQS9Pa0NFQ0JBQWdmUUVCamgydjV6bjM4TmhmREhQbjU2UnZGb1FIS1NLOExIYTB3K2g4NTlBQ1E3QUJDQjZmVVdBSDcxSVFnNElnTUJCQk9SV3Z1MjhuMTlHOHNOKy9vUFFIUElsNGgraG11SlR0Q2ZYYkQva0hpNWdTTnFJM3dBQy9CaEJGVEpCd09VRTVQRzgyem1JajF6a0YzZFZ5UHJjR2o3b2k5T3M0ak8xcDljK201c0E1NWZDQ0lET2JZd0FQem9EaFRnUWNEc0JlVUxmZGg2OTNzRXZONS9XbDgzdklPQkwwS3lTUy9ob1gzVCtVM0NEQXpBRm5HeHZKUVA4ZUR3SThKTXRPT1FIQVJBNGxJQU0zYnVibi9hMzhYQy8zTmVQbEJrQnYxZHdsTDlQYXV2dWZ5U3pBdTdOQlFkQXA3WkhnQitkUUVJTUNMaWRnT3pzZC9IVHZnemlnNDQvdTErRFQzYit4VmR4NS8rcjdBcTZNemNjQUIzYVBSbmdod2dCZm5SZ0NSRWc0Rm9DUXp6SEx3L3FrWXY3M0g1RWJ5NC9BcStINlBDU20zak8veGU1RkhkakdUZ0FlYlk2QXZ6a0NSREZRY0R0QlBxRzl6L3hZMVYvN3IrRVpPZGY5bm1lOC85QjdrTGNWeEtCYWZKb2N3VDR5UU1laW9LQTJ3bDA4Z0U5OG5oZUJQREo3NWNnTy8vRFNyK2diVmg3WjM2QzNGY2FJd0E1dERrQy9PUUFEVVZBQUFUMkIreVJIYjVjMGQvT29YdVI4aVBnOHdnNnZKU2YvTmYrWjM2QzNGa2FJd0JadGpzQy9HUUpETmxCQUFTSTVQeCtYZWYrb1g0WndROHBmd0t5ODU5ZGVpMC8rZjg0ZjJIdWxBQUhJSXQyUjRDZkxHQWhLd2lBQUZFWEQvUExVTDJ5ODBmVVB2MStFYkx6UDZ6a2FtMzlnL0tBTmFRY0NjQUJ5QkFjQXZ4a0NBclpRTUR0QkdTd25yMWQrMWZ6OStCa1B0MS9EakxJeit5U3kzakIzMjkwbCsweWdWZ0RrRUdESThCUEJwQ1FCUVRjVGtDZXlpZFg4dGR6NTQrSWZjYjhHbVI0MzlrbGwycnJIbmpJbUFyY0pSVWpBTk8wTndMOFRBTUl0MEhBelFSa2ZQNUdYdFJYejBQOEhYMXVKbUc4N1dIL0tNMHNPMHRiOS92MXhsZm1qaHJnQUV6Unpza0FQNXFHQUQ5VE1NSXRFSEFkQVRtWDN6VFc2YmYwOHNwKy9vNWtMSUZvY0locUNrL1JubnJnTldNcmNwZDBPQUNUdERjQy9Fd0NCcGRCd0kwRVpDZmZPY0JQK3J5Z2IyODNodmpOL0EzRVFuMVVHanRXZS9hQnJXWlc2NGE2NEFDa2FXVUUrRWtEQlpkQXdJMEV1cm5UbHd2Njl2SVEveUFQOXlPWlM2QTAya3hGdmlPMURZOXc0QVFrdlFsZ0VlQTRvdXpqYTdSNjliZjUwaGZIWGNaSEVBQUJ0eENRby9reVFsOHpQK1hMdWYyK0liZFlycDZkRlFWYnFLRHlQZHFHZTdHVndxRFd3UWpBR05peEFELzM4ZGVQR3NRYVlrRUFCRlFrRU9kamQxczVLbDhMZC9oeWJsOEc3VUd5bGtCMTBYcnRwVWZPdEZZSjU5Y09CNERiZUt6ei94MS92Tmo1VFE0TFFRQUVrc2ZzeXBDOHN0T1hDL2x3K3A0YVB3b1BkMGt6Uy81SGUvNmhUNnFoa0xPMXdCU0FiTisydHJ2NVgzVCt6djZ0d3pvM0U1QXI5K1hRZmhzLzZiZHloOS9GYy90WXZhL1dMMEpHOTV0WjhsWHQyUWZsTkN5U0NRUmM3d0R3VnI5UE1lY3JUV0NOS2tBQUJNd2lJRHQzdVlDdmd6djlUdDZmMzhJZFA0THptRVUvKzNya0h2L3FvZzlyNjljK25IMWhsTWlWZ0t1bkFNUTExNVJUSUxDWjRaWG1DaERsUUFBRUZDSFFQN3gvTHIrTm4vRGJ1Tk9YUVhxUTFDY1FDL1ZTVmRISjJybzFiNm12ckxNMGRQY0lRQ0R3ZVc1T2RQN08razNER2pjUWtFL3pjaGhmSHJZamgvYmw1MEdjc21lN3BpOHYyRU16aW8vUi92UnIzbWVKWkRZQjE0NEFpQ3V1Q0ZGQndWNEdEZ2ZBN0Y4ZDZnT0JiQWpJK2Z0OXZCMVBEdVhMamw1MitQSTc1dkN6b2FoV1hvMjdudXJDZGZUaUkyZnhKOTZHZ1dRRkFmZU9BRVNqNXpKd2RQNVcvT3BRSndoTVJrQnV5Wk9kdXp4WVI1NmtKenY5Ym42WDE1R2NRY0RubFl2OXZxVTl1L2JyempESXZsYTQxd0h3ZUZiaUNjSytQMXhvYm5NQzhxbGVCdG5wNWRjKzd1QmxoNS82ekxlUUhFb2dIQmptSi84UDhXSy9Qem5VUWx1WjVWNEhRSWpqYmRWU1VCWUU3RVpnbU9mcEIzaGgzZ0RQemNzRmV2S3o3T2o3K0YxK1IzSVhnZEpJQzgycVBGRjc1SmQ3M0dXNHV0YTYxd0VnbXE5dXMwQXpFRkNjZ096Y1IzaVZ2Vng0MTg4djJibW5QaWZmK1R1RzdSVnZSSlBVMnovZi93d0ZlMWR3NTQrdEdTWmh6NlFhOXpvQUkvSENUQUFoRHdnNGdvRHNqT1d3dTB6eWM2cHpsaEh3VWtQdUk5eXB5K3R5aGIzczRPVTJPbmt0MmRuenUrendSL2crdHRmdDU0aC9weWZnNStBK3Mwci9XZHV3OXB2VFowWU9zd200ZHhmQW5BOElyQUV3KytlRytrQUFCRnhEUUI3alcxRndOcy8zLzhVMU50dk1VSS9OOU5WUFhiK1BIMldRUUFBRVFBQUVkQ2RRVmZnbUxTbWFnYzVmZDdLNkNuVHZGRURJMTBmREl6RmRhVUlZQ0lBQUNMaVpRREtlZi9GL2FjOCtkRFA5MWMwZzdHRzdlMGNBd3I0ZDltZ2lhQWtDSUFBQ05pQlF5RVAraDVXdlRIYitObEFYS2hLNTF3R0lCQi9DRHdBRVFBQUVRQ0JQQW5LVi80eWlsMmhPc0ZKYmYvKzZQS1dodUlrRTNMc0k4SUlMSXZST2Z5OVBBN2pYQ1RMeGg0YXFRQUFFSEVnZzZFL3dLWDVmMVo1Wit4MEhXdWQ0azF6ckFNaVdGYWRjc0k0YXVzOTBmQ3ZEUUJBQUFSRFFtMEJwdEpFcUltZHFUenp3anQ2aUljOGNBdTVkQkNqNXhxSlhVS0J2Ris5cnhpaUFPYjgzMUFJQ0lHQjNBbDdlMnorejVGN3R1UWMvYlhkVDNLNi9xenMrN1luZjF2SHcxZmZjL2lPQS9TQUFBaUNRRVlIaWNEZk5LVjJHemo4aldzcG5jdlVVUUtwMXhIc3YrRDlxN2o0MjlSM3ZJQUFDSUFBQzR3aDRrZ3Y5SHFPZTRNWGFwalU0eUdFY0dqdC9kUGNVUUtybCtrSW5VMFg4TFdyZGgvTUJVa3p3RGdJZ0FBS1NRQ3k0anlvTFA2NDkvY0FqQU9Jc0FoZ0JHR3RQVWJzcVFKSCsxNmlsZDZtem1oaldnQUFJZ0VBT0JMdzhRMXhkOUFoMUJTN0ZVMzhPL0d4UUJBN0FoRVlTcDF6NEtEVjBuVHZoTXI2Q0FBaUFnSHNJRklaN3FETHlFVzNkZzQrN3gyajNXUW9ISUUyYmkxTXYvaC9hMjNIWmdWUFMwdVRCSlJBQUFSQndIQUVaeXJlNjhMZms2L21rdG1FRGp1NTFYQU1mYkJBY2dJTjVIUGdtVHIva20xVGYrVThIamswOWNBY2ZRQUFFUU1DQkJFb0xtcWswZG9HMjduZXZPTkE2bUpTR0FCeUFORkJTbDhRWmwzeWE2cnQvaWpnQktTSjRCd0VRY0J5QnNIK1VRL25lcm0xWSswM0gyUWFEcGlRQUIyQktQQnd0OEl4TExxSzlQUS9RMEloM21xeTREUUlnQUFMMklTQmorRmNWdmtoaHVsRGI4RWliZlJTSHBub1JnQU9RQVVteDRzUEhVbVBQWDJqZlVEaUQ3TWdDQWlBQUFtb1RLSTUwVUZuMENtenRVN3Vaak5ZT0RrQ0doTVZacStaU2M4OXIxRFZRbEdFUlpBTUJFQUFCdFFoRS9DTlVYbmdYUi9MN3ZGcUtRUnNyQ01BQnlJSzZPSHRWS2JYczIwZ2RmZFZaRkVOV0VBQUJFTENXZ056VFh4VmJSMEh2cGRxR2g3cXNWUWExcTBJQURrQ1dMWUdBUVZrQ1EzWVFBQUZyQ1pSSDY2a28raEh0NmZ0ZnNGWVIxSzRhQVRnQU9iWUlBZ2JsQ0E3RlFBQUV6Q0ZRRk82azhvTFZQTS8vRzNNcVJDMTJJd0FISUk4V0U2ZGYvRE9xNjd5S0VpSVBLU2dLQWlBQUFqb1NpQVNIdWVQL0llYjVkV1RxVUZGd0FQSnNXQVFNeWhNZ2lvTUFDT2hESU9pTFUwWHNZYW9KZkZKYnMyYWZQa0loeGNrRTRBRG8wTG9JR0tRRFJJZ0FBUkRJallEZks3ampmNXdLZzVkcGYxN1RrWnNRbEhJakFUZ0FPclU2QWdicEJCSmlRQUFFTWlNZzQvWlh4cDZqc3RESHRUK3UyWnRaSWVRQ2dYY0p3QUY0bDBYZW54QXdLRytFRUFBQ0lEQWRBUy8vMlM0dmVJTmlvVTlxNng1NGM3cnN1QThDa3hHQUF6QVptUnl2STJCUWp1QlFEQVJBWUdvQzhvbS9MUG9tRlJkY3BqM3h1NDFUWjhaZEVKaWVBQnlBNlJsbG5RTUJnN0pHaGdJZ0FBS1RFZkRKT2Y2Q0Z5Z1F1Rko3OW9HdGsyWERkUkRJbGdBY2dHeUpaWmdmQVlNeUJJVnNJQUFDNlFrRS9Ba3FqenpIUS8xWGFrK3MyWmsrRTY2Q1FPNEU0QURremk2amtnZ1lsQkVtWkFJQkVFZ1JrTWZ6bGhVOFFnV0JxN0dxUHdVRjcwWVFnQU5nQk5VSk1zV3BGLzhQN2UyNGpCQXZhQUlaZkFVQkVEaEFJQmJxbzVMSVQ2bkQvMlZ0MDVyaEE5ZnhBUVFNSWdBSHdDQ3dFOFVpWU5CRUl2Z09BaUJBR3Y4SkxvazJVMkhvZTlvemE3OERJaUJnSmdFNEFDYlNSc0FnRTJHaktoQlFtWUJjMkZjV2VaTUt3dGZoa0I2Vkc4clp1c0VCTUxsOUVURElaT0NvRGdSVUloQUxEdkRKZkE5UUtQd0ZiZDF2bWxWU0RicTRqd0FjQUF2YUhBR0RMSUNPS2tIQUtnSWUvak5iR3FubnAvMGZZSmpmcWtaQXZla0l3QUZJUjhXRWEyTUJnMTZucm9GQ0U2cERGU0FBQW1ZVGlBWUdlWDcvTVlvRy9oSGIrTXlHai9veUlRQUhJQk5LQnVVUjUzNmlrRm82TmxGYjN5eURxb0JZRUFBQk13bnNqOWIzRG9XRGQvSFQvby9NckJwMWdVQzJCT0FBWkV0TTUvd0lHS1F6VUlnREFiTUp5Slg4eGFGMktvejhsanppVm0zRFExMW1xNEQ2UUNBWEFuQUFjcUZtUUJrRURESUFLa1NDZ0pFRW9zRWhLZ3E5UkdIL1AydFByMzNXeUtvZ0d3U01JQUFId0FpcU9jb1VwMS84TTZycnZJb1NpQmlVSTBJVUF3RmpDY2dvZmNXUnYxSFVkN3UyN3NISGphME0wa0hBV0FKd0FJemxtN1YwQkF6S0doa0tnSUN4QkNLQkVZb0YzK0o1L1ovUU0ydnY1aithQ1dNcmhIUVFNSWNBSEFCek9HZFZDd0lHWllVTG1VRkFmd0twNGYxSTRHZmF1Z2YrVi84S0lCRUVyQ2NBQjhENk5raXJBUUlHcGNXQ2l5QmdEQUc1VnovR0Mva0tndXNwNkwxTFcvL2dNOFpVQktrZ29BNEJPQURxdE1VaG1vamxIem1SR2p1ZW83Nmg0Q0UzY1FFRVFDQS9BZ0ZmZ29yRDJ5Z1MrQVA1UW5jaU1sOStPRkhhZmdUZ0FDamVabU1CZzE3amdFRkZpcXNLOVVCQWJRSmVEei9sQnpzb0VueVpJdjVmMDdvSGZzMS9BREdmcjNhclFUc0RDY0FCTUJDdVhxTEYyYXRLcVdYZlJ1cm9xOVpMSnVTQWdPTUp5R0g5YUxDUGgvVTNVdEMvbHJURVQ3QkgzL0d0RGdPeklBQUhJQXRZVm1aRndDQXI2YU51V3hEWTMrSDM4OVA5VmdvR25xWlkrUHZhbzcvZWJRdmRvU1FJV0VBQURvQUYwUE9wVXB4OHdYcHE3RjZXand5VUJRRkhFQWo2RXh4bnY1bEMvdGNwNUgyY0FyNy8xZjY4cHNNUnRzRUlFRENCQUJ3QUV5RHJYWVU0OWVML29iMGRseEhpQmVtTkZ2SlVKU0JqN0VjRDNid1hmd2V2MG4rT0FwN2Zhayt0ZlVsVmRhRVhDTmlCQUJ3QU83UlNHaDNGNlJmOUc5VjNmNFhpV01PVUJnOHUyWmxBMEIvbllmeDJmckxmeWsvMUw1S1gvb2h0ZVhadVVPaXVLZ0U0QUtxMlRBWjZpV1dYZkk3cXUzNUVJM0cwWXdhOGtFVXhBaktzYmlqdy85dTduOWU0cWlpQTQrZk9lek5KTzgzazE2QnRUVksweTZ6Y0ZPdEczUWdWdE4xMG80Z0wzZmdQQ0lJTEYxYi9BVUUzdWxJb2hOcGlxalZGWkl5b0ZCZXBTclNnWXYxUll6WFVKQ1cvWnBLTU45T3NPa003bWJuM3ZYZnYvUllDelNUdnZITStaNW81ZVROenVpQTk4VlVwUkxNU3EybTlZbmRLblorNGxyRk1TUWNCTHdWNDRIQzhyU3dNY3J5QlBxZS8vYUs4M3JnbStYaEpQOGovclgrYi8wV2kzUGNTNXk3SjF1WVh2Q0xmNStaVG13c0NEQUF1ZE9rdU9iSXc2QzVBZk5tc3dQWlBqYnhlb2xPSXF2ckJmRVhpYUVsL3pPdVAzeVZTUDBrY3orcTMzSDJyVitoK1ovYkVSRU1BQVpNQ0RBQW1OVk9NdGJNdzZMSmVHRlJLTVEzM1RwMlB3bm9wWlQ3YXVOVWtYWFlVMVVUcVcvcTM4cXJrY2pYSlNVMlVXcEZjdEt6L3ZxaHYvMDkvL3Eva3RqOXljL3I3citrSCtKK2xldjJLcWxSMjRyalhjakpHQUlGYkFnd0FIdDBUNnNlZUtjay9OMlpsZm5uRW83S3NscUorbStiZmdGVmhnaU9BUUZZRjlHNU0vdmdpb0M2OHZ5UnIrdzdMUFgwLytGSVRkU0NBQUFJSTJCSGd0eDg3cnFsSHJSOTk2bVA1YStGWTZvbGtQQUd1QUdTOFFhU0hBQUxXQkxnQ1lJMDIzY0RxNncrZmtFTkQ3K2puYjlOTmhMTWpnQUFDQ0dSU2dBRWdrMjB4azVTYVB2ZUNqQTZkMGkvbU1oT1FLQWdnZ0FBQzNnand5T0JOSzFzWG9xYlB2aUtIQnAvWDc4Rm1aV0JySW01RkFBRUVnaFJnQUFpZzdYcU42cnN5T25oQ3IxYmxyVnNCOUpzU0VVQUFnWFlFR0FEYVVmTGdlOVJuWnlabGRPQ0kvci9SVnowb2h4SVFRQUFCQkxvVVlBRG9FdENsdzlXbloyYmt2b0Z4R2RpejZGTGU1SW9BQWdnZ1lGNkFBY0M4YWFZanFvc1R2OHJCOHBpVWkzOW1PbEdTUXdBQkJCQ3dLc0FBWUpVM204RlpHSlROdnBBVkFnZ2drS1FBYnhKUFVqdUQ1d3A5WVJDTGdESjRweVFsQkJCSVJJQXJBSWt3Wi9ja0xBektibS9JREFFRUVMQXB3QUJnVTllUjJDd01jcVJScElrQUFnZ1lGR0FBTUlqcGNpZ1dCcm5jUFhKSEFBRUVkaS9BQUxCN00yK1BZR0dRdDYybE1BUVFRS0JKZ0FHZ2lTVHNHMWdZRkhiL3FSNEJCTUlSWUFBSXA5ZHRWOHJDb0xhcCtFWUVFRURBV1FFR0FHZGJaemR4RmdiWjlTVTZBZ2dna0xZQUEwRGFIY2p3K1ZrWWxPSG1rQm9DQ0NEUXBRQ0xnTG9FRE9Wd1h4Y0dzUWdvbEhzd2RTS0F3TzBDWEFHNFhZVFBXd3F3TUtnbEN6Y2lnQUFDemdvd0FEamJ1dVFUWjJGUTh1YWNFUUVFRUxBbHdBQmdTOWJUdUN3TThyU3hsSVVBQXNFSk1BQUUxL0x1QzJaaFVQZUdSRUFBQVFUU0ZtQUFTTHNEanA2ZmhVR09ObzYwRVVBQWdSMEJCZ0R1Q2gwTHNEQ29Zem9PUkFBQkJGSVhZQUJJdlFWdUo4RENJTGY3Ui9ZSUlCQ3VBQU5BdUwwM1Zqa0xnNHhSRWdnQkJCQklUSUJGUUlsUmgzRWkxeFlHc1Fnb2pQc2xWU0tBUUxNQVZ3Q2FUYmlsQ3dFV0JuV0J4NkVJSUlCQWdnSU1BQWxpaDNJcUZnYUYwbW5xUkFBQmx3VVlBRnp1WG9aeloyRlFocHREYWdnZ2dJQVdZQURnYm1CTmdJVkIxbWdKakFBQ0NIUXR3QURRTlNFQjdpVEF3cUE3NmZBMUJCQkFJRDBCQm9EMDdJTTVjMllYQmtXOENTYVlPeUdGSW9CQWt3QURRQk1KTjlnUXlPVENvRUs4WWFOV1lpS0FBQUl1Q0RBQXVOQWxUM0xNM01LZ2ZMenFDUzFsSUlBQUFyc1dZQURZTlJrSGRDT2daaWVxNnB1UHh1WGd3SVZ1NGhnNXRsaTRZaVFPUVJCQUFBRUhCUmdBSEd5YUR5azNGZ2FOREwwbmFUNE5YOGhQK1dCSkRRZ2dnRUFuQWd3QW5haHhqQkVCOWVXNVoyVnMrSlJFS2R3TkMvR1c5TmZlTUZJSVFSQkFBQUVIQlZMNHlldWdFaWxiRTJnc0RCb2JmRkh5VWQzYVNWb0ZIaTUrcFNZblYxcDlpZHNRUUFDQkVBUVlBRUxvY3NaclZKV3piOHZZMEhIcHpTZnpxdnhDZmt0S3hhY3p6a0o2Q0NDQWdGVUJCZ0NydkFSdlY2Q3hNR2lrL0xBVWU5YmJQYWJqN3p0UWVrdGRQUDFIeDhkeklBSUlJT0NCUUpvdndmS0FqeEpNQzlRZlAzbS9YRitha1lYVmZ0T3hHL0gybHk2clMrY2Z0Qktib0FnZ2dJQkRBbHdCY0toWklhVGFXQmkwdi9TQURCWG5qTmRiM25kVjlwU1BHbzlMUUFRUVFNQkJBYTRBT05pMEVGS3VqNThzU04vYTV6SzMrSkNSZXUvdG41RzlONCtvU2lXWjF4a1lTWm9nQ0NDQWdEMEJCZ0I3dGtRMklGQi81TVRyTXJmMGtxeHZSQjJGNjgxdnlvSCsxMVRsZzFjN09wNkRFRUFBQVU4RkdBQThiYXhQWmRVZmZiSXM2M0phNXBjZmsrcEdlMDliYmIrallMajRpZlQxUEtlbUptNzQ1RUV0Q0NDQWdBa0JCZ0FUaXNSSVJLRHh0TUJ3N1dWWjJ6d3VxOVhEK3FwQVVUWjJyZ3hzLzhjK2hmaW03TTMvS0wyRkNaRWJiM0s1UDVHMmNCSUVFSEJVNEgveGNGcEdJRG9qWndBQUFBQkpSVTVFcmtKZ2dnPT0iLz4KPC9kZWZzPgo8L3N2Zz4K"}},"time_used":28,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":26,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VCard.6uoOellW.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.472Z","timestamp":1785139669472,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VCard.6uoOellW.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"233b-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1845\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":9019,"size_decoded":2183,"mime_type":"text/css","magic":"ASCII text, with very long lines (9018)","md5":"bc5fc3df94222002e97e9db462b4ee92","sha1":"8d781f245cca056262e33efdac6dcd768179162f","sha256":"dd4224c0a16f9ea3168727b341274288e1a5f03443bdd23472cacc989f9b9bb8","sha512":"cd035b9e0e4ff0f79fa63a24fd48243f94eb15d6db5afdf6ffd8abeaca1c855d16bb69dd41cb7c2b18ead46e3bf6255ec013bc5f9caef5c5e617d63f6408498c","ssdeep":"192:N/hFWQlBG3uMSgKmS9bUJP5K0yOKkEwKJEcKKEuXf8KJVkMe9WnQIoWsW2X7b05:RhFWQE3ufgfJP5K05KkhKJ/KKnXf8YD7","tlshash":"491201b45b48143ded1ee5b6e69af77cd23572c8df210041ecca6aa587c27f7685220c","first_seen":"2025-10-23T03:46:52.526924Z","last_seen":"2026-07-27T11:49:48.924192Z","times_seen":8,"resource_available":false,"data":"LnYtYXZhdGFye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXg6bm9uZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0Om5vcm1hbDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjouMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi1wcm9wZXJ0eTp3aWR0aCxoZWlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlfS52LWF2YXRhci52LWF2YXRhci0tc2l6ZS14LXNtYWxsey0tdi1hdmF0YXItaGVpZ2h0OjI0cHh9LnYtYXZhdGFyLnYtYXZhdGFyLS1zaXplLXNtYWxsey0tdi1hdmF0YXItaGVpZ2h0OjMycHh9LnYtYXZhdGFyLnYtYXZhdGFyLS1zaXplLWRlZmF1bHR7LS12LWF2YXRhci1oZWlnaHQ6NDBweH0udi1hdmF0YXIudi1hdmF0YXItLXNpemUtbGFyZ2V7LS12LWF2YXRhci1oZWlnaHQ6NDhweH0udi1hdmF0YXIudi1hdmF0YXItLXNpemUteC1sYXJnZXstLXYtYXZhdGFyLWhlaWdodDo1NnB4fS52LWF2YXRhci52LWF2YXRhci0tZGVuc2l0eS1kZWZhdWx0e2hlaWdodDpjYWxjKHZhcigtLXYtYXZhdGFyLWhlaWdodCkpO3dpZHRoOmNhbGModmFyKC0tdi1hdmF0YXItaGVpZ2h0KSl9LnYtYXZhdGFyLnYtYXZhdGFyLS1kZW5zaXR5LWNvbWZvcnRhYmxle2hlaWdodDpjYWxjKHZhcigtLXYtYXZhdGFyLWhlaWdodCkgLSA0cHgpO3dpZHRoOmNhbGModmFyKC0tdi1hdmF0YXItaGVpZ2h0KSAtIDRweCl9LnYtYXZhdGFyLnYtYXZhdGFyLS1kZW5zaXR5LWNvbXBhY3R7aGVpZ2h0OmNhbGModmFyKC0tdi1hdmF0YXItaGVpZ2h0KSAtIDhweCk7d2lkdGg6Y2FsYyh2YXIoLS12LWF2YXRhci1oZWlnaHQpIC0gOHB4KX0udi1hdmF0YXJ7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjB9LnYtYXZhdGFyLS1ib3JkZXJ7Ym9yZGVyLXdpZHRoOnRoaW47Ym94LXNoYWRvdzpub25lfS52LWF2YXRhcntib3JkZXItcmFkaXVzOjUwJX0udi1hdmF0YXItLXZhcmlhbnQtb3V0bGluZWQsLnYtYXZhdGFyLS12YXJpYW50LXBsYWluLC52LWF2YXRhci0tdmFyaWFudC10ZXh0LC52LWF2YXRhci0tdmFyaWFudC10b25hbHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmluaGVyaXR9LnYtYXZhdGFyLS12YXJpYW50LXBsYWlue29wYWNpdHk6LjYyfS52LWF2YXRhci0tdmFyaWFudC1wbGFpbjpmb2N1cywudi1hdmF0YXItLXZhcmlhbnQtcGxhaW46aG92ZXJ7b3BhY2l0eToxfS52LWF2YXRhci0tdmFyaWFudC1wbGFpbiAudi1hdmF0YXJfX292ZXJsYXl7ZGlzcGxheTpub25lfS52LWF2YXRhci0tdmFyaWFudC1lbGV2YXRlZCwudi1hdmF0YXItLXZhcmlhbnQtZmxhdHtiYWNrZ3JvdW5kOnZhcigtLXYtdGhlbWUtc3VyZmFjZSk7Y29sb3I6cmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLHZhcigtLXYtbWVkaXVtLWVtcGhhc2lzLW9wYWNpdHkpKX0udi1hdmF0YXItLXZhcmlhbnQtZWxldmF0ZWR7Ym94LXNoYWRvdzowIDJweCAxcHggLTFweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4yKSksMCAxcHggMXB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDFweCAzcHggMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSl9LnYtYXZhdGFyLS12YXJpYW50LWZsYXR7Ym94LXNoYWRvdzowIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjE0KSksMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSl9LnYtYXZhdGFyLS12YXJpYW50LW91dGxpbmVke2JvcmRlcjp0aGluIHNvbGlkfS52LWF2YXRhci0tdmFyaWFudC10ZXh0IC52LWF2YXRhcl9fb3ZlcmxheXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcn0udi1hdmF0YXItLXZhcmlhbnQtdG9uYWwgLnYtYXZhdGFyX191bmRlcmxheXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtib3JkZXItcmFkaXVzOmluaGVyaXQ7Ym90dG9tOjA7bGVmdDowO29wYWNpdHk6dmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSk7cG9pbnRlci1ldmVudHM6bm9uZTtyaWdodDowO3RvcDowfS52LWF2YXRhciAudi1hdmF0YXJfX3VuZGVybGF5e3Bvc2l0aW9uOmFic29sdXRlfS52LWF2YXRhci0tcm91bmRlZHtib3JkZXItcmFkaXVzOjRweH0udi1hdmF0YXItLXN0YXJ0e21hcmdpbi1pbmxpbmUtZW5kOjhweH0udi1hdmF0YXItLWVuZHttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0udi1hdmF0YXIgLnYtaW1ne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LnYtY2FyZHtib3JkZXItY29sb3I6cmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MDtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb24tZHVyYXRpb246LjI4czt0cmFuc2l0aW9uLXByb3BlcnR5OmJveC1zaGFkb3csb3BhY2l0eSxiYWNrZ3JvdW5kO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3otaW5kZXg6MH0udi1jYXJkLS1ib3JkZXJ7Ym9yZGVyLXdpZHRoOnRoaW47Ym94LXNoYWRvdzpub25lfS52LWNhcmQtLWFic29sdXRle3Bvc2l0aW9uOmFic29sdXRlfS52LWNhcmQtLWZpeGVke3Bvc2l0aW9uOmZpeGVkfS52LWNhcmR7Ym9yZGVyLXJhZGl1czo0cHh9LnYtY2FyZDpob3Zlcj4udi1jYXJkX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWhvdmVyLW9wYWNpdHkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9LnYtY2FyZDpmb2N1cy12aXNpYmxlPi52LWNhcmRfX292ZXJsYXl7b3BhY2l0eTpjYWxjKHZhcigtLXYtZm9jdXMtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX1Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1jYXJkOmZvY3VzPi52LWNhcmRfX292ZXJsYXl7b3BhY2l0eTpjYWxjKHZhcigtLXYtZm9jdXMtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX19LnYtY2FyZC0tYWN0aXZlPi52LWNhcmRfX292ZXJsYXksLnYtY2FyZFthcmlhLWhhc3BvcHVwPW1lbnVdW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0+LnYtY2FyZF9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1jYXJkLS1hY3RpdmU6aG92ZXI+LnYtY2FyZF9fb3ZlcmxheSwudi1jYXJkW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpob3Zlcj4udi1jYXJkX19vdmVybGF5e29wYWNpdHk6Y2FsYygodmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkgKyB2YXIoLS12LWhvdmVyLW9wYWNpdHkpKSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfS52LWNhcmQtLWFjdGl2ZTpmb2N1cy12aXNpYmxlPi52LWNhcmRfX292ZXJsYXksLnYtY2FyZFthcmlhLWhhc3BvcHVwPW1lbnVdW2FyaWEtZXhwYW5kZWQ9dHJ1ZV06Zm9jdXMtdmlzaWJsZT4udi1jYXJkX19vdmVybGF5e29wYWNpdHk6Y2FsYygodmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkgKyB2YXIoLS12LWZvY3VzLW9wYWNpdHkpKSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfUBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmZvY3VzLXZpc2libGUpey52LWNhcmQtLWFjdGl2ZTpmb2N1cz4udi1jYXJkX19vdmVybGF5LC52LWNhcmRbYXJpYS1oYXNwb3B1cD1tZW51XVthcmlhLWV4cGFuZGVkPXRydWVdOmZvY3VzPi52LWNhcmRfX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtZm9jdXMtb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9fS52LWNhcmQtLXZhcmlhbnQtb3V0bGluZWQsLnYtY2FyZC0tdmFyaWFudC1wbGFpbiwudi1jYXJkLS12YXJpYW50LXRleHQsLnYtY2FyZC0tdmFyaWFudC10b25hbHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmluaGVyaXR9LnYtY2FyZC0tdmFyaWFudC1wbGFpbntvcGFjaXR5Oi42Mn0udi1jYXJkLS12YXJpYW50LXBsYWluOmZvY3VzLC52LWNhcmQtLXZhcmlhbnQtcGxhaW46aG92ZXJ7b3BhY2l0eToxfS52LWNhcmQtLXZhcmlhbnQtcGxhaW4gLnYtY2FyZF9fb3ZlcmxheXtkaXNwbGF5Om5vbmV9LnYtY2FyZC0tdmFyaWFudC1lbGV2YXRlZCwudi1jYXJkLS12YXJpYW50LWZsYXR7YmFja2dyb3VuZDpyZ2IodmFyKC0tdi10aGVtZS1zdXJmYWNlKSk7Y29sb3I6cmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLHZhcigtLXYtaGlnaC1lbXBoYXNpcy1vcGFjaXR5KSl9LnYtY2FyZC0tdmFyaWFudC1lbGV2YXRlZHtib3gtc2hhZG93OjAgMnB4IDFweCAtMXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDFweCAxcHggMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgMXB4IDNweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKX0udi1jYXJkLS12YXJpYW50LWZsYXR7Ym94LXNoYWRvdzowIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjE0KSksMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSl9LnYtY2FyZC0tdmFyaWFudC1vdXRsaW5lZHtib3JkZXI6dGhpbiBzb2xpZH0udi1jYXJkLS12YXJpYW50LXRleHQgLnYtY2FyZF9fb3ZlcmxheXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcn0udi1jYXJkLS12YXJpYW50LXRvbmFsIC52LWNhcmRfX3VuZGVybGF5e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTp2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KTtwb2ludGVyLWV2ZW50czpub25lO3JpZ2h0OjA7dG9wOjB9LnYtY2FyZCAudi1jYXJkX191bmRlcmxheXtwb3NpdGlvbjphYnNvbHV0ZX0udi1jYXJkLS1kaXNhYmxlZHtwb2ludGVyLWV2ZW50czpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udi1jYXJkLS1kaXNhYmxlZD46bm90KC52LWNhcmRfX2xvYWRlcil7b3BhY2l0eTouNn0udi1jYXJkLS1mbGF0e2JveC1zaGFkb3c6bm9uZX0udi1jYXJkLS1ob3ZlcntjdXJzb3I6cG9pbnRlcn0udi1jYXJkLS1ob3ZlcjphZnRlciwudi1jYXJkLS1ob3ZlcjpiZWZvcmV7Ym9yZGVyLXJhZGl1czppbmhlcml0O2JvdHRvbTowO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3RyYW5zaXRpb246aW5oZXJpdH0udi1jYXJkLS1ob3ZlcjpiZWZvcmV7Ym94LXNoYWRvdzowIDJweCAxcHggLTFweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4yKSksMCAxcHggMXB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDFweCAzcHggMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSk7b3BhY2l0eToxO3otaW5kZXg6LTF9LnYtY2FyZC0taG92ZXI6YWZ0ZXJ7Ym94LXNoYWRvdzowIDVweCA1cHggLTNweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4yKSksMCA4cHggMTBweCAxcHggdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDNweCAxNHB4IDJweCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSk7b3BhY2l0eTowO3otaW5kZXg6MX0udi1jYXJkLS1ob3Zlcjpob3ZlcjphZnRlcntvcGFjaXR5OjF9LnYtY2FyZC0taG92ZXI6aG92ZXI6YmVmb3Jle29wYWNpdHk6MH0udi1jYXJkLS1ob3Zlcjpob3Zlcntib3gtc2hhZG93OjAgNXB4IDVweCAtM3B4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDhweCAxMHB4IDFweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgM3B4IDE0cHggMnB4IHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKX0udi1jYXJkLS1saW5re2N1cnNvcjpwb2ludGVyfS52LWNhcmQtYWN0aW9uc3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtnYXA6LjVyZW07bWluLWhlaWdodDo1MnB4O3BhZGRpbmc6LjVyZW19LnYtY2FyZC1pdGVte2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmdyaWQ7ZmxleDpub25lO2dyaWQtdGVtcGxhdGUtYXJlYXM6InByZXBlbmQgY29udGVudCBhcHBlbmQiO2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCBhdXRvIG1heC1jb250ZW50O3BhZGRpbmc6LjYyNXJlbSAxcmVtfS52LWNhcmQtaXRlbSsudi1jYXJkLXRleHR7cGFkZGluZy10b3A6MH0udi1jYXJkLWl0ZW1fX2FwcGVuZCwudi1jYXJkLWl0ZW1fX3ByZXBlbmR7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0udi1jYXJkLWl0ZW1fX3ByZXBlbmR7Z3JpZC1hcmVhOnByZXBlbmQ7cGFkZGluZy1pbmxpbmUtZW5kOi41cmVtfS52LWNhcmQtaXRlbV9fYXBwZW5ke2dyaWQtYXJlYTphcHBlbmQ7cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjVyZW19LnYtY2FyZC1pdGVtX19jb250ZW50e2FsaWduLXNlbGY6Y2VudGVyO2dyaWQtYXJlYTpjb250ZW50O292ZXJmbG93OmhpZGRlbn0udi1jYXJkLXRpdGxle2Rpc3BsYXk6YmxvY2s7ZmxleDpub25lO2ZvbnQtc2l6ZToxLjI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDstd2Via2l0LWh5cGhlbnM6YXV0bztoeXBoZW5zOmF1dG87bGV0dGVyLXNwYWNpbmc6LjAxMjVlbTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47b3ZlcmZsb3ctd3JhcDpub3JtYWw7cGFkZGluZzouNXJlbSAxcmVtO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC1icmVhazpub3JtYWw7d29yZC13cmFwOmJyZWFrLXdvcmR9LnYtY2FyZCAudi1jYXJkLXRpdGxle2xpbmUtaGVpZ2h0OjEuNn0udi1jYXJkLS1kZW5zaXR5LWNvbWZvcnRhYmxlIC52LWNhcmQtdGl0bGV7bGluZS1oZWlnaHQ6MS43NXJlbX0udi1jYXJkLS1kZW5zaXR5LWNvbXBhY3QgLnYtY2FyZC10aXRsZXtsaW5lLWhlaWdodDoxLjU1cmVtfS52LWNhcmQtaXRlbSAudi1jYXJkLXRpdGxle3BhZGRpbmc6MH0udi1jYXJkLXRpdGxlKy52LWNhcmQtYWN0aW9ucywudi1jYXJkLXRpdGxlKy52LWNhcmQtdGV4dHtwYWRkaW5nLXRvcDowfS52LWNhcmQtc3VidGl0bGV7ZGlzcGxheTpibG9jaztmbGV4Om5vbmU7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi4wMTc4NTcxNDI5ZW07b3BhY2l0eTp2YXIoLS12LWNhcmQtc3VidGl0bGUtb3BhY2l0eSx2YXIoLS12LW1lZGl1bS1lbXBoYXNpcy1vcGFjaXR5KSk7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAxcmVtO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXB9LnYtY2FyZCAudi1jYXJkLXN1YnRpdGxle2xpbmUtaGVpZ2h0OjEuNDI1fS52LWNhcmQtLWRlbnNpdHktY29tZm9ydGFibGUgLnYtY2FyZC1zdWJ0aXRsZXtsaW5lLWhlaWdodDoxLjEyNXJlbX0udi1jYXJkLS1kZW5zaXR5LWNvbXBhY3QgLnYtY2FyZC1zdWJ0aXRsZXtsaW5lLWhlaWdodDoxcmVtfS52LWNhcmQtaXRlbSAudi1jYXJkLXN1YnRpdGxle3BhZGRpbmc6MCAwIC4yNXJlbX0udi1jYXJkLXRleHR7ZmxleDoxIDEgYXV0bztmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6LjAxNzg1NzE0MjllbTtvcGFjaXR5OnZhcigtLXYtY2FyZC10ZXh0LW9wYWNpdHksMSk7cGFkZGluZzoxcmVtO3RleHQtdHJhbnNmb3JtOm5vbmV9LnYtY2FyZCAudi1jYXJkLXRleHR7bGluZS1oZWlnaHQ6MS40MjV9LnYtY2FyZC0tZGVuc2l0eS1jb21mb3J0YWJsZSAudi1jYXJkLXRleHR7bGluZS1oZWlnaHQ6MS4ycmVtfS52LWNhcmQtLWRlbnNpdHktY29tcGFjdCAudi1jYXJkLXRleHR7bGluZS1oZWlnaHQ6MS4xNXJlbX0udi1jYXJkX19pbWFnZXtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztoZWlnaHQ6MTAwJTtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDotMX0udi1jYXJkX19jb250ZW50e2JvcmRlci1yYWRpdXM6aW5oZXJpdDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LnYtY2FyZF9fbG9hZGVye2JvdHRvbTphdXRvO3dpZHRoOjEwMCU7ei1pbmRleDoxfS52LWNhcmRfX2xvYWRlciwudi1jYXJkX19vdmVybGF5e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowfS52LWNhcmRfX292ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czppbmhlcml0O2JvdHRvbTowO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXR9Cg=="}},"time_used":84,"timings":{"blocked":-1,"dns":0,"connect":26,"send":0,"wait":27,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Sm2mCfDE.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.488Z","timestamp":1785139669488,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Sm2mCfDE.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"159e6c-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nKeep-Alive: timeout=5, max=98\r\nConnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":1416812,"size_decoded":289650,"mime_type":"application/javascript","magic":"ASCII text","md5":"e4d7db625a7040ad5585e0e11ce72786","sha1":"bb8de90c94332343f79dc3a89b142343e9d49954","sha256":"2e6d9bcd072952b32f44bf482be76fdd6690993ece99041e278a32008a6cacc1","sha512":"d6d9b7f0273e2283294f0281e405f30553fc2d95e629e1bab478449ad6480de896d62e92612baebe804a2f41d3fccd742cc2a6ae9ba403668170bdef532e5f23","ssdeep":"6144:zG5mxsLSfIR7+fCx500+JJeLXfkJoXiNRb/rQgBvLNzftF4VFvBTDUkwe+lduM0S:S5++Sq7+u5j06rBHsBWmnkaJ","tlshash":"5825814a62e620349213f07d4e1fd8167a39840f2d89fd483a5c92e45f4d93ca7f6fa9","first_seen":"2026-04-04T14:11:26.048372Z","last_seen":"2026-07-27T11:49:48.896604Z","times_seen":6,"resource_available":false,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzID0gKAogIGksCiAgbSA9IF9fdml0ZV9fbWFwRGVwcywKICBkID0gbS5mIHx8CiAgICAobS5mID0gWwogICAgICAiLi9ENTl6X0FFSC5qcyIsCiAgICAgICIuL0RsQVVxSzJVLmpzIiwKICAgICAgIi4vRFZ0NU1JWG4uanMiLAogICAgICAiLi9EX2l1NjI3Si5qcyIsCiAgICAgICIuL0MxMGRiWDNrLmpzIiwKICAgICAgIi4veFVvNXNLR2kuanMiLAogICAgICAiLi9COFR4VHlhay5qcyIsCiAgICAgICIuL0MyUWZicTkyLmpzIiwKICAgICAgIi4vQ0k4VkZzZ0guanMiLAogICAgICAiLi9mb3J3YXJkUmVmcy4zYmJ5UkdfSC5jc3MiLAogICAgICAiLi8xV1FGOW5sWi5qcyIsCiAgICAgICIuL1pmTlppeUNtLmpzIiwKICAgICAgIi4vQ011VVRsUzIuanMiLAogICAgICAiLi9pbmRleC5CSkdXbXFvVi5jc3MiLAogICAgICAiLi9WQnRuLmtPYTdtQjVBLmNzcyIsCiAgICAgICIuL2VudW1zLjBDSDdYZzJlLmNzcyIsCiAgICAgICIuL0NhUmhMZHVGLmpzIiwKICAgICAgIi4vQ2hFckpuMDcuanMiLAogICAgICAiLi9CXzJGa1A4Uy5qcyIsCiAgICAgICIuL0NBbGtXYnVfLmpzIiwKICAgICAgIi4vVkltZy4zRFFmck5vaC5jc3MiLAogICAgICAiLi9WVGV4dEZpZWxkLkVRdV9WN2lWLmNzcyIsCiAgICAgICIuL2JOZXB1ZHAxLmpzIiwKICAgICAgIi4vRDVqS2F4b0IuanMiLAogICAgICAiLi9XQkRoZm9KNy5qcyIsCiAgICAgICIuL0NEeEI1bk95LmpzIiwKICAgICAgIi4vVlNsaWRlR3JvdXAuQnNZSWcxckouY3NzIiwKICAgICAgIi4vQklwNS0zRUsuanMiLAogICAgICAiLi9EQWN2VkdKZS5qcyIsCiAgICAgICIuL1ZDYXJkLjZ1b09lbGxXLmNzcyIsCiAgICAgICIuL1ZDaGVja2JveEJ0bi5SNTJyTVVxdi5jc3MiLAogICAgICAiLi9lN3I1REt4OS5qcyIsCiAgICAgICIuL0Q4YXl1N3JQLmpzIiwKICAgICAgIi4vVk1lbnUuQURzejJBMjAuY3NzIiwKICAgICAgIi4vdHFncVVGQWEuanMiLAogICAgICAiLi9WU2tlbGV0b25Mb2FkZXIuQi1MbTVGWnMuY3NzIiwKICAgICAgIi4vQmhGbkFfQVAuanMiLAogICAgICAiLi9Dazh6Zzl5NC5qcyIsCiAgICAgICIuL1ZHcmlkLkQwUzBhMGNILmNzcyIsCiAgICAgICIuLzNrM0ZqR0dVLmpzIiwKICAgICAgIi4vRFc5X1JYQXEuanMiLAogICAgICAiLi9WT3RwSW5wdXQuQmJZRklzeWwuY3NzIiwKICAgICAgIi4vQ3BXbWVQZEYuanMiLAogICAgICAiLi9pbmRleC5EZEVCZmdNWS5jc3MiLAogICAgICAiLi9CTlN2S015cS5qcyIsCiAgICAgICIuLzNrNFZuRlh0LmpzIiwKICAgICAgIi4vQmhNdFJfSGIuanMiLAogICAgICAiLi9pbmRleC5DODJqclJaUC5jc3MiLAogICAgICAiLi9DeVEwZWF5Ny5qcyIsCiAgICAgICIuL0tjdjZIQXpILmpzIiwKICAgICAgIi4vRG5hR2NtVHIuanMiLAogICAgICAiLi9EQ1pmd1dmeC5qcyIsCiAgICAgICIuL0RLRmsyNVRDLmpzIiwKICAgICAgIi4vRElHSmNpWUouanMiLAogICAgICAiLi9WRGlhbG9nLkRrX3Y5QXY0LmNzcyIsCiAgICAgICIuL1ZCb3R0b21TaGVldC5ERUtHeVVxZS5jc3MiLAogICAgICAiLi9DMUR0Wm5JeS5qcyIsCiAgICAgICIuL1ZFeHBhbnNpb25QYW5lbHMuQmx6WkdBOGkuY3NzIiwKICAgICAgIi4vRGFsbmpjSDcuanMiLAogICAgICAiLi9jb250YWN0LXVzLmZlRFhmNEhjLmNzcyIsCiAgICAgICIuL0I0TjVqM0NwLmpzIiwKICAgICAgIi4vbG1NM2g0VncuanMiLAogICAgICAiLi9ENDlKY3RLcy5qcyIsCiAgICAgICIuL0JBakplQmtLLmpzIiwKICAgICAgIi4vVlRhYnMuQlRqREpaZ0guY3NzIiwKICAgICAgIi4vYWNjb3VudC5DUTN1elQ5TS5jc3MiLAogICAgICAiLi9IbEJLejg2dC5qcyIsCiAgICAgICIuL0ItU3JrR1paLmpzIiwKICAgICAgIi4vVlRhYmxlLkM5dXZPZkRjLmNzcyIsCiAgICAgICIuL0RFM1V5NWJ2LmpzIiwKICAgICAgIi4vVlBhZ2luYXRpb24uRHJkWkotaEQuY3NzIiwKICAgICAgIi4vQm9pc1A4Uk8uanMiLAogICAgICAiLi9EUHlvemlpRC5qcyIsCiAgICAgICIuL2Rpc2NvdW50LkJLcndoOUo3LmNzcyIsCiAgICAgICIuL0MzMURBQjAtLmpzIiwKICAgICAgIi4vQlZXbXRQZ3YuanMiLAogICAgICAiLi9DVzBHVVBPVi5qcyIsCiAgICAgICIuL1VxODlJc3R0LmpzIiwKICAgICAgIi4vQ1ppUE51R1cuanMiLAogICAgICAiLi9ENXNBempJaC5qcyIsCiAgICAgICIuL0NMOFhVdkVjLmpzIiwKICAgICAgIi4vaTVwZHkyTkcuanMiLAogICAgICAiLi9fXzJnZFVmTi5qcyIsCiAgICAgICIuL0JYTkhReUpOLmpzIiwKICAgICAgIi4vVkxpc3QuRHpxcGt5QV8uY3NzIiwKICAgICAgIi4vVkRhdGFUYWJsZS5CVmFTMkprVi5jc3MiLAogICAgICAiLi9zZWxlY3QuRFVJanBsNkouY3NzIiwKICAgICAgIi4vTld4aVBfSnguanMiLAogICAgICAiLi9UYWJsZS5CblNCaUdzQS5jc3MiLAogICAgICAiLi9kZXBvc2l0LkJXNXY1M2xLLmNzcyIsCiAgICAgICIuL0M4X0VER1drLmpzIiwKICAgICAgIi4vaW5kZXguQlc3am4zOE8uY3NzIiwKICAgICAgIi4vRC1nOGN6MmUuanMiLAogICAgICAiLi9DbE00UGVhZi5qcyIsCiAgICAgICIuL0RMSTF5ejNlLmpzIiwKICAgICAgIi4vQ2hlN0toeDcuanMiLAogICAgICAiLi9GYXEuRGhmcjQxVW4uY3NzIiwKICAgICAgIi4vRHhMVkxPQlQuanMiLAogICAgICAiLi9EUlotZ2dsWC5qcyIsCiAgICAgICIuL0JFa0ZNQ21qLmpzIiwKICAgICAgIi4vc3VjY2Vzcy5DZ2F4WDNVdy5jc3MiLAogICAgICAiLi9DVjk0UGFBdS5qcyIsCiAgICAgICIuL0JOa3o4dS1WLmpzIiwKICAgICAgIi4vNUdkbmQ5aTguanMiLAogICAgICAiLi9EUEJrekttdy5qcyIsCiAgICAgICIuL0s3eEQ1N1N1LmpzIiwKICAgICAgIi4vbWh4UEJEMGYuanMiLAogICAgICAiLi9CeE96dmhrMC5qcyIsCiAgICAgICIuL0NrZHdjN0tnLmpzIiwKICAgICAgIi4vVDR0Uk5mRXUuanMiLAogICAgICAiLi9EZ09aRG1Ccy5qcyIsCiAgICAgICIuL2J1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyLkJRV0lGREFlLmNzcyIsCiAgICAgICIuL0IxWmhKS0Z1LmpzIiwKICAgICAgIi4vZXhjaGFuZ2UtcGF5cGFsLkNzZEdZZko4LmNzcyIsCiAgICAgICIuL0JNWmdnMkdlLmpzIiwKICAgICAgIi4vQlF5MG84bjAuanMiLAogICAgICAiLi9SQWQya1FfVC5qcyIsCiAgICAgICIuL29ubGluZS1wYXltZW50LWZvci1idXNpbmVzcy5DVUZxRFlwNy5jc3MiLAogICAgICAiLi9EeGZ6clRlQi5qcyIsCiAgICAgICIuL29ubGluZS1wYXltZW50LkI1Skx0V3d6LmNzcyIsCiAgICAgICIuL0JzbnVKSko0LmpzIiwKICAgICAgIi4vcGF5bWVudC1nYXRlLkI0dVJSb3M5LmNzcyIsCiAgICAgICIuL0RiT2VxbTg1LmpzIiwKICAgICAgIi4vcUFyeFNVNV8uanMiLAogICAgICAiLi9EWEg2OHFmdS5qcyIsCiAgICAgICIuL0dsb2JhbERpYWxvZy5EY2ppUTFleC5jc3MiLAogICAgICAiLi9CMll3ZFBMRC5qcyIsCiAgICAgICIuL3Byb2ZpbGUuQ3RFZlkxV2guY3NzIiwKICAgICAgIi4vQ3BZV0JVYVcuanMiLAogICAgICAiLi9DeFpyWHk4Ny5qcyIsCiAgICAgICIuL0QzT25MZTNkLmpzIiwKICAgIF0pCikgPT4gaS5tYXAoKGkpID0+IGRbaV0pOwovKioKICogQHZ1ZS9zaGFyZWQgdjMuNS4xMwogKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwogKiBAbGljZW5zZSBNSVQKICoqLyAvKiEgI19fTk9fU0lERV9FRkZFQ1RTX18gKi8gZnVuY3Rpb24gbWFrZU1hcChlKSB7CiAgY29uc3QgdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgZm9yIChjb25zdCByIG9mIGUuc3BsaXQoIiwiKSkgdFtyXSA9IDE7CiAgcmV0dXJuIChyKSA9PiByIGluIHQ7Cn0KY29uc3QgRU1QVFlfT0JKID0ge30sCiAgRU1QVFlfQVJSID0gW10sCiAgTk9PUCA9ICgpID0+IHsgfSwKICBOTyA9ICgpID0+ICExLAogIGlzT24kMSA9IChlKSA9PgogICAgZS5jaGFyQ29kZUF0KDApID09PSAxMTEgJiYKICAgIGUuY2hhckNvZGVBdCgxKSA9PT0gMTEwICYmCiAgICAoZS5jaGFyQ29kZUF0KDIpID4gMTIyIHx8IGUuY2hhckNvZGVBdCgyKSA8IDk3KSwKICBpc01vZGVsTGlzdGVuZXIgPSAoZSkgPT4gZS5zdGFydHNXaXRoKCJvblVwZGF0ZToiKSwKICBleHRlbmQgPSBPYmplY3QuYXNzaWduLAogIHJlbW92ZSA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZS5pbmRleE9mKHQpOwogICAgciA+IC0xICYmIGUuc3BsaWNlKHIsIDEpOwogIH0sCiAgaGFzT3duUHJvcGVydHkkMiA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCiAgaGFzT3duJDEgPSAoZSwgdCkgPT4gaGFzT3duUHJvcGVydHkkMi5jYWxsKGUsIHQpLAogIGlzQXJyYXkkMiA9IEFycmF5LmlzQXJyYXksCiAgaXNNYXAgPSAoZSkgPT4gdG9UeXBlU3RyaW5nJDEoZSkgPT09ICJbb2JqZWN0IE1hcF0iLAogIGlzU2V0ID0gKGUpID0+IHRvVHlwZVN0cmluZyQxKGUpID09PSAiW29iamVjdCBTZXRdIiwKICBpc0RhdGUkMiA9IChlKSA9PiB0b1R5cGVTdHJpbmckMShlKSA9PT0gIltvYmplY3QgRGF0ZV0iLAogIGlzUmVnRXhwJDEgPSAoZSkgPT4gdG9UeXBlU3RyaW5nJDEoZSkgPT09ICJbb2JqZWN0IFJlZ0V4cF0iLAogIGlzRnVuY3Rpb24kMSA9IChlKSA9PiB0eXBlb2YgZSA9PSAiZnVuY3Rpb24iLAogIGlzU3RyaW5nJDEgPSAoZSkgPT4gdHlwZW9mIGUgPT0gInN0cmluZyIsCiAgaXNTeW1ib2wkMSA9IChlKSA9PiB0eXBlb2YgZSA9PSAic3ltYm9sIiwKICBpc09iamVjdCQyID0gKGUpID0+IGUgIT09IG51bGwgJiYgdHlwZW9mIGUgPT0gIm9iamVjdCIsCiAgaXNQcm9taXNlJDEgPSAoZSkgPT4KICAgIChpc09iamVjdCQyKGUpIHx8IGlzRnVuY3Rpb24kMShlKSkgJiYKICAgIGlzRnVuY3Rpb24kMShlLnRoZW4pICYmCiAgICBpc0Z1bmN0aW9uJDEoZS5jYXRjaCksCiAgb2JqZWN0VG9TdHJpbmckMSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsCiAgdG9UeXBlU3RyaW5nJDEgPSAoZSkgPT4gb2JqZWN0VG9TdHJpbmckMS5jYWxsKGUpLAogIHRvUmF3VHlwZSA9IChlKSA9PiB0b1R5cGVTdHJpbmckMShlKS5zbGljZSg4LCAtMSksCiAgaXNQbGFpbk9iamVjdCQ0ID0gKGUpID0+IHRvVHlwZVN0cmluZyQxKGUpID09PSAiW29iamVjdCBPYmplY3RdIiwKICBpc0ludGVnZXJLZXkgPSAoZSkgPT4KICAgIGlzU3RyaW5nJDEoZSkgJiYgZSAhPT0gIk5hTiIgJiYgZVswXSAhPT0gIi0iICYmICIiICsgcGFyc2VJbnQoZSwgMTApID09PSBlLAogIGlzUmVzZXJ2ZWRQcm9wID0gbWFrZU1hcCgKICAgICIsa2V5LHJlZixyZWZfZm9yLHJlZl9rZXksb25Wbm9kZUJlZm9yZU1vdW50LG9uVm5vZGVNb3VudGVkLG9uVm5vZGVCZWZvcmVVcGRhdGUsb25Wbm9kZVVwZGF0ZWQsb25Wbm9kZUJlZm9yZVVubW91bnQsb25Wbm9kZVVubW91bnRlZCIKICApLAogIGNhY2hlU3RyaW5nRnVuY3Rpb24gPSAoZSkgPT4gewogICAgY29uc3QgdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICByZXR1cm4gKHIpID0+IHRbcl0gfHwgKHRbcl0gPSBlKHIpKTsKICB9LAogIGNhbWVsaXplUkUgPSAvLShcdykvZywKICBjYW1lbGl6ZSA9IGNhY2hlU3RyaW5nRnVuY3Rpb24oKGUpID0+CiAgICBlLnJlcGxhY2UoY2FtZWxpemVSRSwgKHQsIHIpID0+IChyID8gci50b1VwcGVyQ2FzZSgpIDogIiIpKQogICksCiAgaHlwaGVuYXRlUkUgPSAvXEIoW0EtWl0pL2csCiAgaHlwaGVuYXRlID0gY2FjaGVTdHJpbmdGdW5jdGlvbigoZSkgPT4KICAgIGUucmVwbGFjZShoeXBoZW5hdGVSRSwgIi0kMSIpLnRvTG93ZXJDYXNlKCkKICApLAogIGNhcGl0YWxpemUkMSA9IGNhY2hlU3RyaW5nRnVuY3Rpb24oCiAgICAoZSkgPT4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGUuc2xpY2UoMSkKICApLAogIHRvSGFuZGxlcktleSA9IGNhY2hlU3RyaW5nRnVuY3Rpb24oKGUpID0+IChlID8gYG9uJHtjYXBpdGFsaXplJDEoZSl9YCA6ICIiKSksCiAgaGFzQ2hhbmdlZCA9IChlLCB0KSA9PiAhT2JqZWN0LmlzKGUsIHQpLAogIGludm9rZUFycmF5Rm5zID0gKGUsIC4uLnQpID0+IHsKICAgIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7IHIrKykgZVtyXSguLi50KTsKICB9LAogIGRlZiA9IChlLCB0LCByLCBuID0gITEpID0+IHsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0LCB7CiAgICAgIGNvbmZpZ3VyYWJsZTogITAsCiAgICAgIGVudW1lcmFibGU6ICExLAogICAgICB3cml0YWJsZTogbiwKICAgICAgdmFsdWU6IHIsCiAgICB9KTsKICB9LAogIGxvb3NlVG9OdW1iZXIgPSAoZSkgPT4gewogICAgY29uc3QgdCA9IHBhcnNlRmxvYXQoZSk7CiAgICByZXR1cm4gaXNOYU4odCkgPyBlIDogdDsKICB9LAogIHRvTnVtYmVyID0gKGUpID0+IHsKICAgIGNvbnN0IHQgPSBpc1N0cmluZyQxKGUpID8gTnVtYmVyKGUpIDogTmFOOwogICAgcmV0dXJuIGlzTmFOKHQpID8gZSA6IHQ7CiAgfTsKbGV0IF9nbG9iYWxUaGlzJDM7CmNvbnN0IGdldEdsb2JhbFRoaXMkMSA9ICgpID0+CiAgX2dsb2JhbFRoaXMkMyB8fAogIChfZ2xvYmFsVGhpcyQzID0KICAgIHR5cGVvZiBnbG9iYWxUaGlzIDwgInUiCiAgICAgID8gZ2xvYmFsVGhpcwogICAgICA6IHR5cGVvZiBzZWxmIDwgInUiCiAgICAgICAgPyBzZWxmCiAgICAgICAgOiB0eXBlb2Ygd2luZG93IDwgInUiCiAgICAgICAgICA/IHdpbmRvdwogICAgICAgICAgOiB0eXBlb2YgZ2xvYmFsIDwgInUiCiAgICAgICAgICAgID8gZ2xvYmFsCiAgICAgICAgICAgIDoge30pLAogIEdMT0JBTFNfQUxMT1dFRCA9CiAgICAiSW5maW5pdHksdW5kZWZpbmVkLE5hTixpc0Zpbml0ZSxpc05hTixwYXJzZUZsb2F0LHBhcnNlSW50LGRlY29kZVVSSSxkZWNvZGVVUklDb21wb25lbnQsZW5jb2RlVVJJLGVuY29kZVVSSUNvbXBvbmVudCxNYXRoLE51bWJlcixEYXRlLEFycmF5LE9iamVjdCxCb29sZWFuLFN0cmluZyxSZWdFeHAsTWFwLFNldCxKU09OLEludGwsQmlnSW50LGNvbnNvbGUsRXJyb3IsU3ltYm9sIiwKICBpc0dsb2JhbGx5QWxsb3dlZCA9IG1ha2VNYXAoR0xPQkFMU19BTExPV0VEKTsKZnVuY3Rpb24gbm9ybWFsaXplU3R5bGUoZSkgewogIGlmIChpc0FycmF5JDIoZSkpIHsKICAgIGNvbnN0IHQgPSB7fTsKICAgIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7IHIrKykgewogICAgICBjb25zdCBuID0gZVtyXSwKICAgICAgICBpID0gaXNTdHJpbmckMShuKSA/IHBhcnNlU3RyaW5nU3R5bGUobikgOiBub3JtYWxpemVTdHlsZShuKTsKICAgICAgaWYgKGkpIGZvciAoY29uc3QgYSBpbiBpKSB0W2FdID0gaVthXTsKICAgIH0KICAgIHJldHVybiB0OwogIH0gZWxzZSBpZiAoaXNTdHJpbmckMShlKSB8fCBpc09iamVjdCQyKGUpKSByZXR1cm4gZTsKfQpjb25zdCBsaXN0RGVsaW1pdGVyUkUgPSAvOyg/IVteKF0qXCkpL2csCiAgcHJvcGVydHlEZWxpbWl0ZXJSRSA9IC86KFteXSspLywKICBzdHlsZUNvbW1lbnRSRSA9IC9cL1wqW15dKj9cKlwvL2c7CmZ1bmN0aW9uIHBhcnNlU3RyaW5nU3R5bGUoZSkgewogIGNvbnN0IHQgPSB7fTsKICByZXR1cm4gKAogICAgZQogICAgICAucmVwbGFjZShzdHlsZUNvbW1lbnRSRSwgIiIpCiAgICAgIC5zcGxpdChsaXN0RGVsaW1pdGVyUkUpCiAgICAgIC5mb3JFYWNoKChyKSA9PiB7CiAgICAgICAgaWYgKHIpIHsKICAgICAgICAgIGNvbnN0IG4gPSByLnNwbGl0KHByb3BlcnR5RGVsaW1pdGVyUkUpOwogICAgICAgICAgbi5sZW5ndGggPiAxICYmICh0W25bMF0udHJpbSgpXSA9IG5bMV0udHJpbSgpKTsKICAgICAgICB9CiAgICAgIH0pLAogICAgdAogICk7Cn0KZnVuY3Rpb24gbm9ybWFsaXplQ2xhc3MoZSkgewogIGxldCB0ID0gIiI7CiAgaWYgKGlzU3RyaW5nJDEoZSkpIHQgPSBlOwogIGVsc2UgaWYgKGlzQXJyYXkkMihlKSkKICAgIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7IHIrKykgewogICAgICBjb25zdCBuID0gbm9ybWFsaXplQ2xhc3MoZVtyXSk7CiAgICAgIG4gJiYgKHQgKz0gbiArICIgIik7CiAgICB9CiAgZWxzZSBpZiAoaXNPYmplY3QkMihlKSkgZm9yIChjb25zdCByIGluIGUpIGVbcl0gJiYgKHQgKz0gciArICIgIik7CiAgcmV0dXJuIHQudHJpbSgpOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZVByb3BzKGUpIHsKICBpZiAoIWUpIHJldHVybiBudWxsOwogIGxldCB7IGNsYXNzOiB0LCBzdHlsZTogciB9ID0gZTsKICByZXR1cm4gKAogICAgdCAmJiAhaXNTdHJpbmckMSh0KSAmJiAoZS5jbGFzcyA9IG5vcm1hbGl6ZUNsYXNzKHQpKSwKICAgIHIgJiYgKGUuc3R5bGUgPSBub3JtYWxpemVTdHlsZShyKSksCiAgICBlCiAgKTsKfQpjb25zdCBzcGVjaWFsQm9vbGVhbkF0dHJzID0KICAiaXRlbXNjb3BlLGFsbG93ZnVsbHNjcmVlbixmb3Jtbm92YWxpZGF0ZSxpc21hcCxub21vZHVsZSxub3ZhbGlkYXRlLHJlYWRvbmx5IiwKICBpc1NwZWNpYWxCb29sZWFuQXR0ciA9IG1ha2VNYXAoc3BlY2lhbEJvb2xlYW5BdHRycyk7CmZ1bmN0aW9uIGluY2x1ZGVCb29sZWFuQXR0cihlKSB7CiAgcmV0dXJuICEhZSB8fCBlID09PSAiIjsKfQpmdW5jdGlvbiBsb29zZUNvbXBhcmVBcnJheXMoZSwgdCkgewogIGlmIChlLmxlbmd0aCAhPT0gdC5sZW5ndGgpIHJldHVybiAhMTsKICBsZXQgciA9ICEwOwogIGZvciAobGV0IG4gPSAwOyByICYmIG4gPCBlLmxlbmd0aDsgbisrKSByID0gbG9vc2VFcXVhbChlW25dLCB0W25dKTsKICByZXR1cm4gcjsKfQpmdW5jdGlvbiBsb29zZUVxdWFsKGUsIHQpIHsKICBpZiAoZSA9PT0gdCkgcmV0dXJuICEwOwogIGxldCByID0gaXNEYXRlJDIoZSksCiAgICBuID0gaXNEYXRlJDIodCk7CiAgaWYgKHIgfHwgbikgcmV0dXJuIHIgJiYgbiA/IGUuZ2V0VGltZSgpID09PSB0LmdldFRpbWUoKSA6ICExOwogIGlmICgoKHIgPSBpc1N5bWJvbCQxKGUpKSwgKG4gPSBpc1N5bWJvbCQxKHQpKSwgciB8fCBuKSkgcmV0dXJuIGUgPT09IHQ7CiAgaWYgKCgociA9IGlzQXJyYXkkMihlKSksIChuID0gaXNBcnJheSQyKHQpKSwgciB8fCBuKSkKICAgIHJldHVybiByICYmIG4gPyBsb29zZUNvbXBhcmVBcnJheXMoZSwgdCkgOiAhMTsKICBpZiAoKChyID0gaXNPYmplY3QkMihlKSksIChuID0gaXNPYmplY3QkMih0KSksIHIgfHwgbikpIHsKICAgIGlmICghciB8fCAhbikgcmV0dXJuICExOwogICAgY29uc3QgaSA9IE9iamVjdC5rZXlzKGUpLmxlbmd0aCwKICAgICAgYSA9IE9iamVjdC5rZXlzKHQpLmxlbmd0aDsKICAgIGlmIChpICE9PSBhKSByZXR1cm4gITE7CiAgICBmb3IgKGNvbnN0IG8gaW4gZSkgewogICAgICBjb25zdCBsID0gZS5oYXNPd25Qcm9wZXJ0eShvKSwKICAgICAgICBjID0gdC5oYXNPd25Qcm9wZXJ0eShvKTsKICAgICAgaWYgKChsICYmICFjKSB8fCAoIWwgJiYgYykgfHwgIWxvb3NlRXF1YWwoZVtvXSwgdFtvXSkpIHJldHVybiAhMTsKICAgIH0KICB9CiAgcmV0dXJuIFN0cmluZyhlKSA9PT0gU3RyaW5nKHQpOwp9CmZ1bmN0aW9uIGxvb3NlSW5kZXhPZihlLCB0KSB7CiAgcmV0dXJuIGUuZmluZEluZGV4KChyKSA9PiBsb29zZUVxdWFsKHIsIHQpKTsKfQpjb25zdCBpc1JlZiQxID0gKGUpID0+ICEhKGUgJiYgZS5fX3ZfaXNSZWYgPT09ICEwKSwKICB0b0Rpc3BsYXlTdHJpbmckMSA9IChlKSA9PgogICAgaXNTdHJpbmckMShlKQogICAgICA/IGUKICAgICAgOiBlID09IG51bGwKICAgICAgICA/ICIiCiAgICAgICAgOiBpc0FycmF5JDIoZSkgfHwKICAgICAgICAgIChpc09iamVjdCQyKGUpICYmCiAgICAgICAgICAgIChlLnRvU3RyaW5nID09PSBvYmplY3RUb1N0cmluZyQxIHx8ICFpc0Z1bmN0aW9uJDEoZS50b1N0cmluZykpKQogICAgICAgICAgPyBpc1JlZiQxKGUpCiAgICAgICAgICAgID8gdG9EaXNwbGF5U3RyaW5nJDEoZS52YWx1ZSkKICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShlLCByZXBsYWNlciwgMikKICAgICAgICAgIDogU3RyaW5nKGUpLAogIHJlcGxhY2VyID0gKGUsIHQpID0+CiAgICBpc1JlZiQxKHQpCiAgICAgID8gcmVwbGFjZXIoZSwgdC52YWx1ZSkKICAgICAgOiBpc01hcCh0KQogICAgICAgID8gewogICAgICAgICAgW2BNYXAoJHt0LnNpemV9KWBdOiBbLi4udC5lbnRyaWVzKCldLnJlZHVjZSgKICAgICAgICAgICAgKHIsIFtuLCBpXSwgYSkgPT4gKChyW3N0cmluZ2lmeVN5bWJvbChuLCBhKSArICIgPT4iXSA9IGkpLCByKSwKICAgICAgICAgICAge30KICAgICAgICAgICksCiAgICAgICAgfQogICAgICAgIDogaXNTZXQodCkKICAgICAgICAgID8geyBbYFNldCgke3Quc2l6ZX0pYF06IFsuLi50LnZhbHVlcygpXS5tYXAoKHIpID0+IHN0cmluZ2lmeVN5bWJvbChyKSkgfQogICAgICAgICAgOiBpc1N5bWJvbCQxKHQpCiAgICAgICAgICAgID8gc3RyaW5naWZ5U3ltYm9sKHQpCiAgICAgICAgICAgIDogaXNPYmplY3QkMih0KSAmJiAhaXNBcnJheSQyKHQpICYmICFpc1BsYWluT2JqZWN0JDQodCkKICAgICAgICAgICAgICA/IFN0cmluZyh0KQogICAgICAgICAgICAgIDogdCwKICBzdHJpbmdpZnlTeW1ib2wgPSAoZSwgdCA9ICIiKSA9PiB7CiAgICB2YXIgcjsKICAgIHJldHVybiBpc1N5bWJvbCQxKGUpID8gYFN5bWJvbCgkeyhyID0gZS5kZXNjcmlwdGlvbikgIT0gbnVsbCA/IHIgOiB0fSlgIDogZTsKICB9OwovKioKICogQHZ1ZS9yZWFjdGl2aXR5IHYzLjUuMTMKICogKGMpIDIwMTgtcHJlc2VudCBZdXhpIChFdmFuKSBZb3UgYW5kIFZ1ZSBjb250cmlidXRvcnMKICogQGxpY2Vuc2UgTUlUCiAqKi8gbGV0IGFjdGl2ZUVmZmVjdFNjb3BlOwpjbGFzcyBFZmZlY3RTY29wZSB7CiAgY29uc3RydWN0b3IodCA9ICExKSB7CiAgICAodGhpcy5kZXRhY2hlZCA9IHQpLAogICAgICAodGhpcy5fYWN0aXZlID0gITApLAogICAgICAodGhpcy5lZmZlY3RzID0gW10pLAogICAgICAodGhpcy5jbGVhbnVwcyA9IFtdKSwKICAgICAgKHRoaXMuX2lzUGF1c2VkID0gITEpLAogICAgICAodGhpcy5wYXJlbnQgPSBhY3RpdmVFZmZlY3RTY29wZSksCiAgICAgICF0ICYmCiAgICAgIGFjdGl2ZUVmZmVjdFNjb3BlICYmCiAgICAgICh0aGlzLmluZGV4ID0KICAgICAgICAoYWN0aXZlRWZmZWN0U2NvcGUuc2NvcGVzIHx8IChhY3RpdmVFZmZlY3RTY29wZS5zY29wZXMgPSBbXSkpLnB1c2goCiAgICAgICAgICB0aGlzCiAgICAgICAgKSAtIDEpOwogIH0KICBnZXQgYWN0aXZlKCkgewogICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTsKICB9CiAgcGF1c2UoKSB7CiAgICBpZiAodGhpcy5fYWN0aXZlKSB7CiAgICAgIHRoaXMuX2lzUGF1c2VkID0gITA7CiAgICAgIGxldCB0LCByOwogICAgICBpZiAodGhpcy5zY29wZXMpCiAgICAgICAgZm9yICh0ID0gMCwgciA9IHRoaXMuc2NvcGVzLmxlbmd0aDsgdCA8IHI7IHQrKykgdGhpcy5zY29wZXNbdF0ucGF1c2UoKTsKICAgICAgZm9yICh0ID0gMCwgciA9IHRoaXMuZWZmZWN0cy5sZW5ndGg7IHQgPCByOyB0KyspIHRoaXMuZWZmZWN0c1t0XS5wYXVzZSgpOwogICAgfQogIH0KICByZXN1bWUoKSB7CiAgICBpZiAodGhpcy5fYWN0aXZlICYmIHRoaXMuX2lzUGF1c2VkKSB7CiAgICAgIHRoaXMuX2lzUGF1c2VkID0gITE7CiAgICAgIGxldCB0LCByOwogICAgICBpZiAodGhpcy5zY29wZXMpCiAgICAgICAgZm9yICh0ID0gMCwgciA9IHRoaXMuc2NvcGVzLmxlbmd0aDsgdCA8IHI7IHQrKykgdGhpcy5zY29wZXNbdF0ucmVzdW1lKCk7CiAgICAgIGZvciAodCA9IDAsIHIgPSB0aGlzLmVmZmVjdHMubGVuZ3RoOyB0IDwgcjsgdCsrKSB0aGlzLmVmZmVjdHNbdF0ucmVzdW1lKCk7CiAgICB9CiAgfQogIHJ1bih0KSB7CiAgICBpZiAodGhpcy5fYWN0aXZlKSB7CiAgICAgIGNvbnN0IHIgPSBhY3RpdmVFZmZlY3RTY29wZTsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm4gKGFjdGl2ZUVmZmVjdFNjb3BlID0gdGhpcyksIHQoKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBhY3RpdmVFZmZlY3RTY29wZSA9IHI7CiAgICAgIH0KICAgIH0KICB9CiAgb24oKSB7CiAgICBhY3RpdmVFZmZlY3RTY29wZSA9IHRoaXM7CiAgfQogIG9mZigpIHsKICAgIGFjdGl2ZUVmZmVjdFNjb3BlID0gdGhpcy5wYXJlbnQ7CiAgfQogIHN0b3AodCkgewogICAgaWYgKHRoaXMuX2FjdGl2ZSkgewogICAgICB0aGlzLl9hY3RpdmUgPSAhMTsKICAgICAgbGV0IHIsIG47CiAgICAgIGZvciAociA9IDAsIG4gPSB0aGlzLmVmZmVjdHMubGVuZ3RoOyByIDwgbjsgcisrKSB0aGlzLmVmZmVjdHNbcl0uc3RvcCgpOwogICAgICBmb3IgKHRoaXMuZWZmZWN0cy5sZW5ndGggPSAwLCByID0gMCwgbiA9IHRoaXMuY2xlYW51cHMubGVuZ3RoOyByIDwgbjsgcisrKQogICAgICAgIHRoaXMuY2xlYW51cHNbcl0oKTsKICAgICAgaWYgKCgodGhpcy5jbGVhbnVwcy5sZW5ndGggPSAwKSwgdGhpcy5zY29wZXMpKSB7CiAgICAgICAgZm9yIChyID0gMCwgbiA9IHRoaXMuc2NvcGVzLmxlbmd0aDsgciA8IG47IHIrKykgdGhpcy5zY29wZXNbcl0uc3RvcCghMCk7CiAgICAgICAgdGhpcy5zY29wZXMubGVuZ3RoID0gMDsKICAgICAgfQogICAgICBpZiAoIXRoaXMuZGV0YWNoZWQgJiYgdGhpcy5wYXJlbnQgJiYgIXQpIHsKICAgICAgICBjb25zdCBpID0gdGhpcy5wYXJlbnQuc2NvcGVzLnBvcCgpOwogICAgICAgIGkgJiYKICAgICAgICAgIGkgIT09IHRoaXMgJiYKICAgICAgICAgICgodGhpcy5wYXJlbnQuc2NvcGVzW3RoaXMuaW5kZXhdID0gaSksIChpLmluZGV4ID0gdGhpcy5pbmRleCkpOwogICAgICB9CiAgICAgIHRoaXMucGFyZW50ID0gdm9pZCAwOwogICAgfQogIH0KfQpmdW5jdGlvbiBlZmZlY3RTY29wZShlKSB7CiAgcmV0dXJuIG5ldyBFZmZlY3RTY29wZShlKTsKfQpmdW5jdGlvbiBnZXRDdXJyZW50U2NvcGUoKSB7CiAgcmV0dXJuIGFjdGl2ZUVmZmVjdFNjb3BlOwp9CmZ1bmN0aW9uIG9uU2NvcGVEaXNwb3NlKGUsIHQgPSAhMSkgewogIGFjdGl2ZUVmZmVjdFNjb3BlICYmIGFjdGl2ZUVmZmVjdFNjb3BlLmNsZWFudXBzLnB1c2goZSk7Cn0KbGV0IGFjdGl2ZVN1YjsKY29uc3QgcGF1c2VkUXVldWVFZmZlY3RzID0gbmV3IFdlYWtTZXQoKTsKY2xhc3MgUmVhY3RpdmVFZmZlY3QgewogIGNvbnN0cnVjdG9yKHQpIHsKICAgICh0aGlzLmZuID0gdCksCiAgICAgICh0aGlzLmRlcHMgPSB2b2lkIDApLAogICAgICAodGhpcy5kZXBzVGFpbCA9IHZvaWQgMCksCiAgICAgICh0aGlzLmZsYWdzID0gNSksCiAgICAgICh0aGlzLm5leHQgPSB2b2lkIDApLAogICAgICAodGhpcy5jbGVhbnVwID0gdm9pZCAwKSwKICAgICAgKHRoaXMuc2NoZWR1bGVyID0gdm9pZCAwKSwKICAgICAgYWN0aXZlRWZmZWN0U2NvcGUgJiYKICAgICAgYWN0aXZlRWZmZWN0U2NvcGUuYWN0aXZlICYmCiAgICAgIGFjdGl2ZUVmZmVjdFNjb3BlLmVmZmVjdHMucHVzaCh0aGlzKTsKICB9CiAgcGF1c2UoKSB7CiAgICB0aGlzLmZsYWdzIHw9IDY0OwogIH0KICByZXN1bWUoKSB7CiAgICB0aGlzLmZsYWdzICYgNjQgJiYKICAgICAgKCh0aGlzLmZsYWdzICY9IC02NSksCiAgICAgICAgcGF1c2VkUXVldWVFZmZlY3RzLmhhcyh0aGlzKSAmJgogICAgICAgIChwYXVzZWRRdWV1ZUVmZmVjdHMuZGVsZXRlKHRoaXMpLCB0aGlzLnRyaWdnZXIoKSkpOwogIH0KICBub3RpZnkoKSB7CiAgICAodGhpcy5mbGFncyAmIDIgJiYgISh0aGlzLmZsYWdzICYgMzIpKSB8fCB0aGlzLmZsYWdzICYgOCB8fCBiYXRjaCh0aGlzKTsKICB9CiAgcnVuKCkgewogICAgaWYgKCEodGhpcy5mbGFncyAmIDEpKSByZXR1cm4gdGhpcy5mbigpOwogICAgKHRoaXMuZmxhZ3MgfD0gMiksIGNsZWFudXBFZmZlY3QodGhpcyksIHByZXBhcmVEZXBzKHRoaXMpOwogICAgY29uc3QgdCA9IGFjdGl2ZVN1YiwKICAgICAgciA9IHNob3VsZFRyYWNrOwogICAgKGFjdGl2ZVN1YiA9IHRoaXMpLCAoc2hvdWxkVHJhY2sgPSAhMCk7CiAgICB0cnkgewogICAgICByZXR1cm4gdGhpcy5mbigpOwogICAgfSBmaW5hbGx5IHsKICAgICAgY2xlYW51cERlcHModGhpcyksIChhY3RpdmVTdWIgPSB0KSwgKHNob3VsZFRyYWNrID0gciksICh0aGlzLmZsYWdzICY9IC0zKTsKICAgIH0KICB9CiAgc3RvcCgpIHsKICAgIGlmICh0aGlzLmZsYWdzICYgMSkgewogICAgICBmb3IgKGxldCB0ID0gdGhpcy5kZXBzOyB0OyB0ID0gdC5uZXh0RGVwKSByZW1vdmVTdWIodCk7CiAgICAgICh0aGlzLmRlcHMgPSB0aGlzLmRlcHNUYWlsID0gdm9pZCAwKSwKICAgICAgICBjbGVhbnVwRWZmZWN0KHRoaXMpLAogICAgICAgIHRoaXMub25TdG9wICYmIHRoaXMub25TdG9wKCksCiAgICAgICAgKHRoaXMuZmxhZ3MgJj0gLTIpOwogICAgfQogIH0KICB0cmlnZ2VyKCkgewogICAgdGhpcy5mbGFncyAmIDY0CiAgICAgID8gcGF1c2VkUXVldWVFZmZlY3RzLmFkZCh0aGlzKQogICAgICA6IHRoaXMuc2NoZWR1bGVyCiAgICAgICAgPyB0aGlzLnNjaGVkdWxlcigpCiAgICAgICAgOiB0aGlzLnJ1bklmRGlydHkoKTsKICB9CiAgcnVuSWZEaXJ0eSgpIHsKICAgIGlzRGlydHkodGhpcykgJiYgdGhpcy5ydW4oKTsKICB9CiAgZ2V0IGRpcnR5KCkgewogICAgcmV0dXJuIGlzRGlydHkodGhpcyk7CiAgfQp9CmxldCBiYXRjaERlcHRoID0gMCwKICBiYXRjaGVkU3ViLAogIGJhdGNoZWRDb21wdXRlZDsKZnVuY3Rpb24gYmF0Y2goZSwgdCA9ICExKSB7CiAgaWYgKCgoZS5mbGFncyB8PSA4KSwgdCkpIHsKICAgIChlLm5leHQgPSBiYXRjaGVkQ29tcHV0ZWQpLCAoYmF0Y2hlZENvbXB1dGVkID0gZSk7CiAgICByZXR1cm47CiAgfQogIChlLm5leHQgPSBiYXRjaGVkU3ViKSwgKGJhdGNoZWRTdWIgPSBlKTsKfQpmdW5jdGlvbiBzdGFydEJhdGNoKCkgewogIGJhdGNoRGVwdGgrKzsKfQpmdW5jdGlvbiBlbmRCYXRjaCgpIHsKICBpZiAoLS1iYXRjaERlcHRoID4gMCkgcmV0dXJuOwogIGlmIChiYXRjaGVkQ29tcHV0ZWQpIHsKICAgIGxldCB0ID0gYmF0Y2hlZENvbXB1dGVkOwogICAgZm9yIChiYXRjaGVkQ29tcHV0ZWQgPSB2b2lkIDA7IHQ7KSB7CiAgICAgIGNvbnN0IHIgPSB0Lm5leHQ7CiAgICAgICh0Lm5leHQgPSB2b2lkIDApLCAodC5mbGFncyAmPSAtOSksICh0ID0gcik7CiAgICB9CiAgfQogIGxldCBlOwogIGZvciAoOyBiYXRjaGVkU3ViOykgewogICAgbGV0IHQgPSBiYXRjaGVkU3ViOwogICAgZm9yIChiYXRjaGVkU3ViID0gdm9pZCAwOyB0OykgewogICAgICBjb25zdCByID0gdC5uZXh0OwogICAgICBpZiAoKCh0Lm5leHQgPSB2b2lkIDApLCAodC5mbGFncyAmPSAtOSksIHQuZmxhZ3MgJiAxKSkKICAgICAgICB0cnkgewogICAgICAgICAgdC50cmlnZ2VyKCk7CiAgICAgICAgfSBjYXRjaCAobikgewogICAgICAgICAgZSB8fCAoZSA9IG4pOwogICAgICAgIH0KICAgICAgdCA9IHI7CiAgICB9CiAgfQogIGlmIChlKSB0aHJvdyBlOwp9CmZ1bmN0aW9uIHByZXBhcmVEZXBzKGUpIHsKICBmb3IgKGxldCB0ID0gZS5kZXBzOyB0OyB0ID0gdC5uZXh0RGVwKQogICAgKHQudmVyc2lvbiA9IC0xKSwKICAgICAgKHQucHJldkFjdGl2ZUxpbmsgPSB0LmRlcC5hY3RpdmVMaW5rKSwKICAgICAgKHQuZGVwLmFjdGl2ZUxpbmsgPSB0KTsKfQpmdW5jdGlvbiBjbGVhbnVwRGVwcyhlKSB7CiAgbGV0IHQsCiAgICByID0gZS5kZXBzVGFpbCwKICAgIG4gPSByOwogIGZvciAoOyBuOykgewogICAgY29uc3QgaSA9IG4ucHJldkRlcDsKICAgIG4udmVyc2lvbiA9PT0gLTEKICAgICAgPyAobiA9PT0gciAmJiAociA9IGkpLCByZW1vdmVTdWIobiksIHJlbW92ZURlcChuKSkKICAgICAgOiAodCA9IG4pLAogICAgICAobi5kZXAuYWN0aXZlTGluayA9IG4ucHJldkFjdGl2ZUxpbmspLAogICAgICAobi5wcmV2QWN0aXZlTGluayA9IHZvaWQgMCksCiAgICAgIChuID0gaSk7CiAgfQogIChlLmRlcHMgPSB0KSwgKGUuZGVwc1RhaWwgPSByKTsKfQpmdW5jdGlvbiBpc0RpcnR5KGUpIHsKICBmb3IgKGxldCB0ID0gZS5kZXBzOyB0OyB0ID0gdC5uZXh0RGVwKQogICAgaWYgKAogICAgICB0LmRlcC52ZXJzaW9uICE9PSB0LnZlcnNpb24gfHwKICAgICAgKHQuZGVwLmNvbXB1dGVkICYmCiAgICAgICAgKHJlZnJlc2hDb21wdXRlZCh0LmRlcC5jb21wdXRlZCkgfHwgdC5kZXAudmVyc2lvbiAhPT0gdC52ZXJzaW9uKSkKICAgICkKICAgICAgcmV0dXJuICEwOwogIHJldHVybiAhIWUuX2RpcnR5Owp9CmZ1bmN0aW9uIHJlZnJlc2hDb21wdXRlZChlKSB7CiAgaWYgKAogICAgKGUuZmxhZ3MgJiA0ICYmICEoZS5mbGFncyAmIDE2KSkgfHwKICAgICgoZS5mbGFncyAmPSAtMTcpLCBlLmdsb2JhbFZlcnNpb24gPT09IGdsb2JhbFZlcnNpb24pCiAgKQogICAgcmV0dXJuOwogIGUuZ2xvYmFsVmVyc2lvbiA9IGdsb2JhbFZlcnNpb247CiAgY29uc3QgdCA9IGUuZGVwOwogIGlmICgoKGUuZmxhZ3MgfD0gMiksIHQudmVyc2lvbiA+IDAgJiYgIWUuaXNTU1IgJiYgZS5kZXBzICYmICFpc0RpcnR5KGUpKSkgewogICAgZS5mbGFncyAmPSAtMzsKICAgIHJldHVybjsKICB9CiAgY29uc3QgciA9IGFjdGl2ZVN1YiwKICAgIG4gPSBzaG91bGRUcmFjazsKICAoYWN0aXZlU3ViID0gZSksIChzaG91bGRUcmFjayA9ICEwKTsKICB0cnkgewogICAgcHJlcGFyZURlcHMoZSk7CiAgICBjb25zdCBpID0gZS5mbihlLl92YWx1ZSk7CiAgICAodC52ZXJzaW9uID09PSAwIHx8IGhhc0NoYW5nZWQoaSwgZS5fdmFsdWUpKSAmJgogICAgICAoKGUuX3ZhbHVlID0gaSksIHQudmVyc2lvbisrKTsKICB9IGNhdGNoIChpKSB7CiAgICB0aHJvdyAodC52ZXJzaW9uKyssIGkpOwogIH0gZmluYWxseSB7CiAgICAoYWN0aXZlU3ViID0gciksIChzaG91bGRUcmFjayA9IG4pLCBjbGVhbnVwRGVwcyhlKSwgKGUuZmxhZ3MgJj0gLTMpOwogIH0KfQpmdW5jdGlvbiByZW1vdmVTdWIoZSwgdCA9ICExKSB7CiAgY29uc3QgeyBkZXA6IHIsIHByZXZTdWI6IG4sIG5leHRTdWI6IGkgfSA9IGU7CiAgaWYgKAogICAgKG4gJiYgKChuLm5leHRTdWIgPSBpKSwgKGUucHJldlN1YiA9IHZvaWQgMCkpLAogICAgICBpICYmICgoaS5wcmV2U3ViID0gbiksIChlLm5leHRTdWIgPSB2b2lkIDApKSwKICAgICAgci5zdWJzID09PSBlICYmICgoci5zdWJzID0gbiksICFuICYmIHIuY29tcHV0ZWQpKQogICkgewogICAgci5jb21wdXRlZC5mbGFncyAmPSAtNTsKICAgIGZvciAobGV0IGEgPSByLmNvbXB1dGVkLmRlcHM7IGE7IGEgPSBhLm5leHREZXApIHJlbW92ZVN1YihhLCAhMCk7CiAgfQogICF0ICYmICEtLXIuc2MgJiYgci5tYXAgJiYgci5tYXAuZGVsZXRlKHIua2V5KTsKfQpmdW5jdGlvbiByZW1vdmVEZXAoZSkgewogIGNvbnN0IHsgcHJldkRlcDogdCwgbmV4dERlcDogciB9ID0gZTsKICB0ICYmICgodC5uZXh0RGVwID0gciksIChlLnByZXZEZXAgPSB2b2lkIDApKSwKICAgIHIgJiYgKChyLnByZXZEZXAgPSB0KSwgKGUubmV4dERlcCA9IHZvaWQgMCkpOwp9CmZ1bmN0aW9uIGVmZmVjdChlLCB0KSB7CiAgZS5lZmZlY3QgaW5zdGFuY2VvZiBSZWFjdGl2ZUVmZmVjdCAmJiAoZSA9IGUuZWZmZWN0LmZuKTsKICBjb25zdCByID0gbmV3IFJlYWN0aXZlRWZmZWN0KGUpOwogIHQgJiYgZXh0ZW5kKHIsIHQpOwogIHRyeSB7CiAgICByLnJ1bigpOwogIH0gY2F0Y2ggKGkpIHsKICAgIHRocm93IChyLnN0b3AoKSwgaSk7CiAgfQogIGNvbnN0IG4gPSByLnJ1bi5iaW5kKHIpOwogIHJldHVybiAobi5lZmZlY3QgPSByKSwgbjsKfQpmdW5jdGlvbiBzdG9wKGUpIHsKICBlLmVmZmVjdC5zdG9wKCk7Cn0KbGV0IHNob3VsZFRyYWNrID0gITA7CmNvbnN0IHRyYWNrU3RhY2sgPSBbXTsKZnVuY3Rpb24gcGF1c2VUcmFja2luZygpIHsKICB0cmFja1N0YWNrLnB1c2goc2hvdWxkVHJhY2spLCAoc2hvdWxkVHJhY2sgPSAhMSk7Cn0KZnVuY3Rpb24gcmVzZXRUcmFja2luZygpIHsKICBjb25zdCBlID0gdHJhY2tTdGFjay5wb3AoKTsKICBzaG91bGRUcmFjayA9IGUgPT09IHZvaWQgMCA/ICEwIDogZTsKfQpmdW5jdGlvbiBjbGVhbnVwRWZmZWN0KGUpIHsKICBjb25zdCB7IGNsZWFudXA6IHQgfSA9IGU7CiAgaWYgKCgoZS5jbGVhbnVwID0gdm9pZCAwKSwgdCkpIHsKICAgIGNvbnN0IHIgPSBhY3RpdmVTdWI7CiAgICBhY3RpdmVTdWIgPSB2b2lkIDA7CiAgICB0cnkgewogICAgICB0KCk7CiAgICB9IGZpbmFsbHkgewogICAgICBhY3RpdmVTdWIgPSByOwogICAgfQogIH0KfQpsZXQgZ2xvYmFsVmVyc2lvbiA9IDA7CmNsYXNzIExpbmsgewogIGNvbnN0cnVjdG9yKHQsIHIpIHsKICAgICh0aGlzLnN1YiA9IHQpLAogICAgICAodGhpcy5kZXAgPSByKSwKICAgICAgKHRoaXMudmVyc2lvbiA9IHIudmVyc2lvbiksCiAgICAgICh0aGlzLm5leHREZXAgPQogICAgICAgIHRoaXMucHJldkRlcCA9CiAgICAgICAgdGhpcy5uZXh0U3ViID0KICAgICAgICB0aGlzLnByZXZTdWIgPQogICAgICAgIHRoaXMucHJldkFjdGl2ZUxpbmsgPQogICAgICAgIHZvaWQgMCk7CiAgfQp9CmNsYXNzIERlcCB7CiAgY29uc3RydWN0b3IodCkgewogICAgKHRoaXMuY29tcHV0ZWQgPSB0KSwKICAgICAgKHRoaXMudmVyc2lvbiA9IDApLAogICAgICAodGhpcy5hY3RpdmVMaW5rID0gdm9pZCAwKSwKICAgICAgKHRoaXMuc3VicyA9IHZvaWQgMCksCiAgICAgICh0aGlzLm1hcCA9IHZvaWQgMCksCiAgICAgICh0aGlzLmtleSA9IHZvaWQgMCksCiAgICAgICh0aGlzLnNjID0gMCk7CiAgfQogIHRyYWNrKHQpIHsKICAgIGlmICghYWN0aXZlU3ViIHx8ICFzaG91bGRUcmFjayB8fCBhY3RpdmVTdWIgPT09IHRoaXMuY29tcHV0ZWQpIHJldHVybjsKICAgIGxldCByID0gdGhpcy5hY3RpdmVMaW5rOwogICAgaWYgKHIgPT09IHZvaWQgMCB8fCByLnN1YiAhPT0gYWN0aXZlU3ViKQogICAgICAociA9IHRoaXMuYWN0aXZlTGluayA9IG5ldyBMaW5rKGFjdGl2ZVN1YiwgdGhpcykpLAogICAgICAgIGFjdGl2ZVN1Yi5kZXBzCiAgICAgICAgICA/ICgoci5wcmV2RGVwID0gYWN0aXZlU3ViLmRlcHNUYWlsKSwKICAgICAgICAgICAgKGFjdGl2ZVN1Yi5kZXBzVGFpbC5uZXh0RGVwID0gciksCiAgICAgICAgICAgIChhY3RpdmVTdWIuZGVwc1RhaWwgPSByKSkKICAgICAgICAgIDogKGFjdGl2ZVN1Yi5kZXBzID0gYWN0aXZlU3ViLmRlcHNUYWlsID0gciksCiAgICAgICAgYWRkU3ViKHIpOwogICAgZWxzZSBpZiAoci52ZXJzaW9uID09PSAtMSAmJiAoKHIudmVyc2lvbiA9IHRoaXMudmVyc2lvbiksIHIubmV4dERlcCkpIHsKICAgICAgY29uc3QgbiA9IHIubmV4dERlcDsKICAgICAgKG4ucHJldkRlcCA9IHIucHJldkRlcCksCiAgICAgICAgci5wcmV2RGVwICYmIChyLnByZXZEZXAubmV4dERlcCA9IG4pLAogICAgICAgIChyLnByZXZEZXAgPSBhY3RpdmVTdWIuZGVwc1RhaWwpLAogICAgICAgIChyLm5leHREZXAgPSB2b2lkIDApLAogICAgICAgIChhY3RpdmVTdWIuZGVwc1RhaWwubmV4dERlcCA9IHIpLAogICAgICAgIChhY3RpdmVTdWIuZGVwc1RhaWwgPSByKSwKICAgICAgICBhY3RpdmVTdWIuZGVwcyA9PT0gciAmJiAoYWN0aXZlU3ViLmRlcHMgPSBuKTsKICAgIH0KICAgIHJldHVybiByOwogIH0KICB0cmlnZ2VyKHQpIHsKICAgIHRoaXMudmVyc2lvbisrLCBnbG9iYWxWZXJzaW9uKyssIHRoaXMubm90aWZ5KHQpOwogIH0KICBub3RpZnkodCkgewogICAgc3RhcnRCYXRjaCgpOwogICAgdHJ5IHsKICAgICAgZm9yIChsZXQgciA9IHRoaXMuc3ViczsgcjsgciA9IHIucHJldlN1YikKICAgICAgICByLnN1Yi5ub3RpZnkoKSAmJiByLnN1Yi5kZXAubm90aWZ5KCk7CiAgICB9IGZpbmFsbHkgewogICAgICBlbmRCYXRjaCgpOwogICAgfQogIH0KfQpmdW5jdGlvbiBhZGRTdWIoZSkgewogIGlmICgoZS5kZXAuc2MrKywgZS5zdWIuZmxhZ3MgJiA0KSkgewogICAgY29uc3QgdCA9IGUuZGVwLmNvbXB1dGVkOwogICAgaWYgKHQgJiYgIWUuZGVwLnN1YnMpIHsKICAgICAgdC5mbGFncyB8PSAyMDsKICAgICAgZm9yIChsZXQgbiA9IHQuZGVwczsgbjsgbiA9IG4ubmV4dERlcCkgYWRkU3ViKG4pOwogICAgfQogICAgY29uc3QgciA9IGUuZGVwLnN1YnM7CiAgICByICE9PSBlICYmICgoZS5wcmV2U3ViID0gciksIHIgJiYgKHIubmV4dFN1YiA9IGUpKSwgKGUuZGVwLnN1YnMgPSBlKTsKICB9Cn0KY29uc3QgdGFyZ2V0TWFwID0gbmV3IFdlYWtNYXAoKSwKICBJVEVSQVRFX0tFWSA9IFN5bWJvbCgiIiksCiAgTUFQX0tFWV9JVEVSQVRFX0tFWSA9IFN5bWJvbCgiIiksCiAgQVJSQVlfSVRFUkFURV9LRVkgPSBTeW1ib2woIiIpOwpmdW5jdGlvbiB0cmFjayhlLCB0LCByKSB7CiAgaWYgKHNob3VsZFRyYWNrICYmIGFjdGl2ZVN1YikgewogICAgbGV0IG4gPSB0YXJnZXRNYXAuZ2V0KGUpOwogICAgbiB8fCB0YXJnZXRNYXAuc2V0KGUsIChuID0gbmV3IE1hcCgpKSk7CiAgICBsZXQgaSA9IG4uZ2V0KHIpOwogICAgaSB8fCAobi5zZXQociwgKGkgPSBuZXcgRGVwKCkpKSwgKGkubWFwID0gbiksIChpLmtleSA9IHIpKSwgaS50cmFjaygpOwogIH0KfQpmdW5jdGlvbiB0cmlnZ2VyKGUsIHQsIHIsIG4sIGksIGEpIHsKICBjb25zdCBvID0gdGFyZ2V0TWFwLmdldChlKTsKICBpZiAoIW8pIHsKICAgIGdsb2JhbFZlcnNpb24rKzsKICAgIHJldHVybjsKICB9CiAgY29uc3QgbCA9IChjKSA9PiB7CiAgICBjICYmIGMudHJpZ2dlcigpOwogIH07CiAgaWYgKChzdGFydEJhdGNoKCksIHQgPT09ICJjbGVhciIpKSBvLmZvckVhY2gobCk7CiAgZWxzZSB7CiAgICBjb25zdCBjID0gaXNBcnJheSQyKGUpLAogICAgICB1ID0gYyAmJiBpc0ludGVnZXJLZXkocik7CiAgICBpZiAoYyAmJiByID09PSAibGVuZ3RoIikgewogICAgICBjb25zdCBkID0gTnVtYmVyKG4pOwogICAgICBvLmZvckVhY2goKEUsIGIpID0+IHsKICAgICAgICAoYiA9PT0gImxlbmd0aCIgfHwKICAgICAgICAgIGIgPT09IEFSUkFZX0lURVJBVEVfS0VZIHx8CiAgICAgICAgICAoIWlzU3ltYm9sJDEoYikgJiYgYiA+PSBkKSkgJiYKICAgICAgICAgIGwoRSk7CiAgICAgIH0pOwogICAgfSBlbHNlCiAgICAgIHN3aXRjaCAoCiAgICAgICgociAhPT0gdm9pZCAwIHx8IG8uaGFzKHZvaWQgMCkpICYmIGwoby5nZXQocikpLAogICAgICAgIHUgJiYgbChvLmdldChBUlJBWV9JVEVSQVRFX0tFWSkpLAogICAgICAgIHQpCiAgICAgICkgewogICAgICAgIGNhc2UgImFkZCI6CiAgICAgICAgICBjCiAgICAgICAgICAgID8gdSAmJiBsKG8uZ2V0KCJsZW5ndGgiKSkKICAgICAgICAgICAgOiAobChvLmdldChJVEVSQVRFX0tFWSkpLAogICAgICAgICAgICAgIGlzTWFwKGUpICYmIGwoby5nZXQoTUFQX0tFWV9JVEVSQVRFX0tFWSkpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImRlbGV0ZSI6CiAgICAgICAgICBjIHx8CiAgICAgICAgICAgIChsKG8uZ2V0KElURVJBVEVfS0VZKSksIGlzTWFwKGUpICYmIGwoby5nZXQoTUFQX0tFWV9JVEVSQVRFX0tFWSkpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInNldCI6CiAgICAgICAgICBpc01hcChlKSAmJiBsKG8uZ2V0KElURVJBVEVfS0VZKSk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogIH0KICBlbmRCYXRjaCgpOwp9CmZ1bmN0aW9uIGdldERlcEZyb21SZWFjdGl2ZShlLCB0KSB7CiAgY29uc3QgciA9IHRhcmdldE1hcC5nZXQoZSk7CiAgcmV0dXJuIHIgJiYgci5nZXQodCk7Cn0KZnVuY3Rpb24gcmVhY3RpdmVSZWFkQXJyYXkoZSkgewogIGNvbnN0IHQgPSB0b1JhdyhlKTsKICByZXR1cm4gdCA9PT0gZQogICAgPyB0CiAgICA6ICh0cmFjayh0LCAiaXRlcmF0ZSIsIEFSUkFZX0lURVJBVEVfS0VZKSwKICAgICAgaXNTaGFsbG93KGUpID8gdCA6IHQubWFwKHRvUmVhY3RpdmUpKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVhZEFycmF5KGUpIHsKICByZXR1cm4gdHJhY2soKGUgPSB0b1JhdyhlKSksICJpdGVyYXRlIiwgQVJSQVlfSVRFUkFURV9LRVkpLCBlOwp9CmNvbnN0IGFycmF5SW5zdHJ1bWVudGF0aW9ucyA9IHsKICBfX3Byb3RvX186IG51bGwsCiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CiAgICByZXR1cm4gaXRlcmF0b3IodGhpcywgU3ltYm9sLml0ZXJhdG9yLCB0b1JlYWN0aXZlKTsKICB9LAogIGNvbmNhdCguLi5lKSB7CiAgICByZXR1cm4gcmVhY3RpdmVSZWFkQXJyYXkodGhpcykuY29uY2F0KAogICAgICAuLi5lLm1hcCgodCkgPT4gKGlzQXJyYXkkMih0KSA/IHJlYWN0aXZlUmVhZEFycmF5KHQpIDogdCkpCiAgICApOwogIH0sCiAgZW50cmllcygpIHsKICAgIHJldHVybiBpdGVyYXRvcih0aGlzLCAiZW50cmllcyIsIChlKSA9PiAoKGVbMV0gPSB0b1JlYWN0aXZlKGVbMV0pKSwgZSkpOwogIH0sCiAgZXZlcnkoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgImV2ZXJ5IiwgZSwgdCwgdm9pZCAwLCBhcmd1bWVudHMpOwogIH0sCiAgZmlsdGVyKGUsIHQpIHsKICAgIHJldHVybiBhcHBseSQxKHRoaXMsICJmaWx0ZXIiLCBlLCB0LCAocikgPT4gci5tYXAodG9SZWFjdGl2ZSksIGFyZ3VtZW50cyk7CiAgfSwKICBmaW5kKGUsIHQpIHsKICAgIHJldHVybiBhcHBseSQxKHRoaXMsICJmaW5kIiwgZSwgdCwgdG9SZWFjdGl2ZSwgYXJndW1lbnRzKTsKICB9LAogIGZpbmRJbmRleChlLCB0KSB7CiAgICByZXR1cm4gYXBwbHkkMSh0aGlzLCAiZmluZEluZGV4IiwgZSwgdCwgdm9pZCAwLCBhcmd1bWVudHMpOwogIH0sCiAgZmluZExhc3QoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgImZpbmRMYXN0IiwgZSwgdCwgdG9SZWFjdGl2ZSwgYXJndW1lbnRzKTsKICB9LAogIGZpbmRMYXN0SW5kZXgoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgImZpbmRMYXN0SW5kZXgiLCBlLCB0LCB2b2lkIDAsIGFyZ3VtZW50cyk7CiAgfSwKICBmb3JFYWNoKGUsIHQpIHsKICAgIHJldHVybiBhcHBseSQxKHRoaXMsICJmb3JFYWNoIiwgZSwgdCwgdm9pZCAwLCBhcmd1bWVudHMpOwogIH0sCiAgaW5jbHVkZXMoLi4uZSkgewogICAgcmV0dXJuIHNlYXJjaFByb3h5KHRoaXMsICJpbmNsdWRlcyIsIGUpOwogIH0sCiAgaW5kZXhPZiguLi5lKSB7CiAgICByZXR1cm4gc2VhcmNoUHJveHkodGhpcywgImluZGV4T2YiLCBlKTsKICB9LAogIGpvaW4oZSkgewogICAgcmV0dXJuIHJlYWN0aXZlUmVhZEFycmF5KHRoaXMpLmpvaW4oZSk7CiAgfSwKICBsYXN0SW5kZXhPZiguLi5lKSB7CiAgICByZXR1cm4gc2VhcmNoUHJveHkodGhpcywgImxhc3RJbmRleE9mIiwgZSk7CiAgfSwKICBtYXAoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgIm1hcCIsIGUsIHQsIHZvaWQgMCwgYXJndW1lbnRzKTsKICB9LAogIHBvcCgpIHsKICAgIHJldHVybiBub1RyYWNraW5nKHRoaXMsICJwb3AiKTsKICB9LAogIHB1c2goLi4uZSkgewogICAgcmV0dXJuIG5vVHJhY2tpbmcodGhpcywgInB1c2giLCBlKTsKICB9LAogIHJlZHVjZShlLCAuLi50KSB7CiAgICByZXR1cm4gcmVkdWNlKHRoaXMsICJyZWR1Y2UiLCBlLCB0KTsKICB9LAogIHJlZHVjZVJpZ2h0KGUsIC4uLnQpIHsKICAgIHJldHVybiByZWR1Y2UodGhpcywgInJlZHVjZVJpZ2h0IiwgZSwgdCk7CiAgfSwKICBzaGlmdCgpIHsKICAgIHJldHVybiBub1RyYWNraW5nKHRoaXMsICJzaGlmdCIpOwogIH0sCiAgc29tZShlLCB0KSB7CiAgICByZXR1cm4gYXBwbHkkMSh0aGlzLCAic29tZSIsIGUsIHQsIHZvaWQgMCwgYXJndW1lbnRzKTsKICB9LAogIHNwbGljZSguLi5lKSB7CiAgICByZXR1cm4gbm9UcmFja2luZyh0aGlzLCAic3BsaWNlIiwgZSk7CiAgfSwKICB0b1JldmVyc2VkKCkgewogICAgcmV0dXJuIHJlYWN0aXZlUmVhZEFycmF5KHRoaXMpLnRvUmV2ZXJzZWQoKTsKICB9LAogIHRvU29ydGVkKGUpIHsKICAgIHJldHVybiByZWFjdGl2ZVJlYWRBcnJheSh0aGlzKS50b1NvcnRlZChlKTsKICB9LAogIHRvU3BsaWNlZCguLi5lKSB7CiAgICByZXR1cm4gcmVhY3RpdmVSZWFkQXJyYXkodGhpcykudG9TcGxpY2VkKC4uLmUpOwogIH0sCiAgdW5zaGlmdCguLi5lKSB7CiAgICByZXR1cm4gbm9UcmFja2luZyh0aGlzLCAidW5zaGlmdCIsIGUpOwogIH0sCiAgdmFsdWVzKCkgewogICAgcmV0dXJuIGl0ZXJhdG9yKHRoaXMsICJ2YWx1ZXMiLCB0b1JlYWN0aXZlKTsKICB9LAp9OwpmdW5jdGlvbiBpdGVyYXRvcihlLCB0LCByKSB7CiAgY29uc3QgbiA9IHNoYWxsb3dSZWFkQXJyYXkoZSksCiAgICBpID0gblt0XSgpOwogIHJldHVybiAoCiAgICBuICE9PSBlICYmCiAgICAhaXNTaGFsbG93KGUpICYmCiAgICAoKGkuX25leHQgPSBpLm5leHQpLAogICAgICAoaS5uZXh0ID0gKCkgPT4gewogICAgICAgIGNvbnN0IGEgPSBpLl9uZXh0KCk7CiAgICAgICAgcmV0dXJuIGEudmFsdWUgJiYgKGEudmFsdWUgPSByKGEudmFsdWUpKSwgYTsKICAgICAgfSkpLAogICAgaQogICk7Cn0KY29uc3QgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTsKZnVuY3Rpb24gYXBwbHkkMShlLCB0LCByLCBuLCBpLCBhKSB7CiAgY29uc3QgbyA9IHNoYWxsb3dSZWFkQXJyYXkoZSksCiAgICBsID0gbyAhPT0gZSAmJiAhaXNTaGFsbG93KGUpLAogICAgYyA9IG9bdF07CiAgaWYgKGMgIT09IGFycmF5UHJvdG9bdF0pIHsKICAgIGNvbnN0IEUgPSBjLmFwcGx5KGUsIGEpOwogICAgcmV0dXJuIGwgPyB0b1JlYWN0aXZlKEUpIDogRTsKICB9CiAgbGV0IHUgPSByOwogIG8gIT09IGUgJiYKICAgIChsCiAgICAgID8gKHUgPSBmdW5jdGlvbiAoRSwgYikgewogICAgICAgIHJldHVybiByLmNhbGwodGhpcywgdG9SZWFjdGl2ZShFKSwgYiwgZSk7CiAgICAgIH0pCiAgICAgIDogci5sZW5ndGggPiAyICYmCiAgICAgICh1ID0gZnVuY3Rpb24gKEUsIGIpIHsKICAgICAgICByZXR1cm4gci5jYWxsKHRoaXMsIEUsIGIsIGUpOwogICAgICB9KSk7CiAgY29uc3QgZCA9IGMuY2FsbChvLCB1LCBuKTsKICByZXR1cm4gbCAmJiBpID8gaShkKSA6IGQ7Cn0KZnVuY3Rpb24gcmVkdWNlKGUsIHQsIHIsIG4pIHsKICBjb25zdCBpID0gc2hhbGxvd1JlYWRBcnJheShlKTsKICBsZXQgYSA9IHI7CiAgcmV0dXJuICgKICAgIGkgIT09IGUgJiYKICAgIChpc1NoYWxsb3coZSkKICAgICAgPyByLmxlbmd0aCA+IDMgJiYKICAgICAgKGEgPSBmdW5jdGlvbiAobywgbCwgYykgewogICAgICAgIHJldHVybiByLmNhbGwodGhpcywgbywgbCwgYywgZSk7CiAgICAgIH0pCiAgICAgIDogKGEgPSBmdW5jdGlvbiAobywgbCwgYykgewogICAgICAgIHJldHVybiByLmNhbGwodGhpcywgbywgdG9SZWFjdGl2ZShsKSwgYywgZSk7CiAgICAgIH0pKSwKICAgIGlbdF0oYSwgLi4ubikKICApOwp9CmZ1bmN0aW9uIHNlYXJjaFByb3h5KGUsIHQsIHIpIHsKICBjb25zdCBuID0gdG9SYXcoZSk7CiAgdHJhY2sobiwgIml0ZXJhdGUiLCBBUlJBWV9JVEVSQVRFX0tFWSk7CiAgY29uc3QgaSA9IG5bdF0oLi4ucik7CiAgcmV0dXJuIChpID09PSAtMSB8fCBpID09PSAhMSkgJiYgaXNQcm94eShyWzBdKQogICAgPyAoKHJbMF0gPSB0b1JhdyhyWzBdKSksIG5bdF0oLi4ucikpCiAgICA6IGk7Cn0KZnVuY3Rpb24gbm9UcmFja2luZyhlLCB0LCByID0gW10pIHsKICBwYXVzZVRyYWNraW5nKCksIHN0YXJ0QmF0Y2goKTsKICBjb25zdCBuID0gdG9SYXcoZSlbdF0uYXBwbHkoZSwgcik7CiAgcmV0dXJuIGVuZEJhdGNoKCksIHJlc2V0VHJhY2tpbmcoKSwgbjsKfQpjb25zdCBpc05vblRyYWNrYWJsZUtleXMgPSBtYWtlTWFwKCJfX3Byb3RvX18sX192X2lzUmVmLF9faXNWdWUiKSwKICBidWlsdEluU3ltYm9scyA9IG5ldyBTZXQoCiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTeW1ib2wpCiAgICAgIC5maWx0ZXIoKGUpID0+IGUgIT09ICJhcmd1bWVudHMiICYmIGUgIT09ICJjYWxsZXIiKQogICAgICAubWFwKChlKSA9PiBTeW1ib2xbZV0pCiAgICAgIC5maWx0ZXIoaXNTeW1ib2wkMSkKICApOwpmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eSQxKGUpIHsKICBpc1N5bWJvbCQxKGUpIHx8IChlID0gU3RyaW5nKGUpKTsKICBjb25zdCB0ID0gdG9SYXcodGhpcyk7CiAgcmV0dXJuIHRyYWNrKHQsICJoYXMiLCBlKSwgdC5oYXNPd25Qcm9wZXJ0eShlKTsKfQpjbGFzcyBCYXNlUmVhY3RpdmVIYW5kbGVyIHsKICBjb25zdHJ1Y3Rvcih0ID0gITEsIHIgPSAhMSkgewogICAgKHRoaXMuX2lzUmVhZG9ubHkgPSB0KSwgKHRoaXMuX2lzU2hhbGxvdyA9IHIpOwogIH0KICBnZXQodCwgciwgbikgewogICAgaWYgKHIgPT09ICJfX3Zfc2tpcCIpIHJldHVybiB0Ll9fdl9za2lwOwogICAgY29uc3QgaSA9IHRoaXMuX2lzUmVhZG9ubHksCiAgICAgIGEgPSB0aGlzLl9pc1NoYWxsb3c7CiAgICBpZiAociA9PT0gIl9fdl9pc1JlYWN0aXZlIikgcmV0dXJuICFpOwogICAgaWYgKHIgPT09ICJfX3ZfaXNSZWFkb25seSIpIHJldHVybiBpOwogICAgaWYgKHIgPT09ICJfX3ZfaXNTaGFsbG93IikgcmV0dXJuIGE7CiAgICBpZiAociA9PT0gIl9fdl9yYXciKQogICAgICByZXR1cm4gbiA9PT0KICAgICAgICAoaQogICAgICAgICAgPyBhCiAgICAgICAgICAgID8gc2hhbGxvd1JlYWRvbmx5TWFwCiAgICAgICAgICAgIDogcmVhZG9ubHlNYXAKICAgICAgICAgIDogYQogICAgICAgICAgICA/IHNoYWxsb3dSZWFjdGl2ZU1hcAogICAgICAgICAgICA6IHJlYWN0aXZlTWFwCiAgICAgICAgKS5nZXQodCkgfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YobikKICAgICAgICA/IHQKICAgICAgICA6IHZvaWQgMDsKICAgIGNvbnN0IG8gPSBpc0FycmF5JDIodCk7CiAgICBpZiAoIWkpIHsKICAgICAgbGV0IGM7CiAgICAgIGlmIChvICYmIChjID0gYXJyYXlJbnN0cnVtZW50YXRpb25zW3JdKSkgcmV0dXJuIGM7CiAgICAgIGlmIChyID09PSAiaGFzT3duUHJvcGVydHkiKSByZXR1cm4gaGFzT3duUHJvcGVydHkkMTsKICAgIH0KICAgIGNvbnN0IGwgPSBSZWZsZWN0LmdldCh0LCByLCBpc1JlZih0KSA/IHQgOiBuKTsKICAgIHJldHVybiAoaXNTeW1ib2wkMShyKSA/IGJ1aWx0SW5TeW1ib2xzLmhhcyhyKSA6IGlzTm9uVHJhY2thYmxlS2V5cyhyKSkgfHwKICAgICAgKGkgfHwgdHJhY2sodCwgImdldCIsIHIpLCBhKQogICAgICA/IGwKICAgICAgOiBpc1JlZihsKQogICAgICAgID8gbyAmJiBpc0ludGVnZXJLZXkocikKICAgICAgICAgID8gbAogICAgICAgICAgOiBsLnZhbHVlCiAgICAgICAgOiBpc09iamVjdCQyKGwpCiAgICAgICAgICA/IGkKICAgICAgICAgICAgPyByZWFkb25seShsKQogICAgICAgICAgICA6IHJlYWN0aXZlKGwpCiAgICAgICAgICA6IGw7CiAgfQp9CmNsYXNzIE11dGFibGVSZWFjdGl2ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlUmVhY3RpdmVIYW5kbGVyIHsKICBjb25zdHJ1Y3Rvcih0ID0gITEpIHsKICAgIHN1cGVyKCExLCB0KTsKICB9CiAgc2V0KHQsIHIsIG4sIGkpIHsKICAgIGxldCBhID0gdFtyXTsKICAgIGlmICghdGhpcy5faXNTaGFsbG93KSB7CiAgICAgIGNvbnN0IGMgPSBpc1JlYWRvbmx5KGEpOwogICAgICBpZiAoCiAgICAgICAgKCFpc1NoYWxsb3cobikgJiYgIWlzUmVhZG9ubHkobikgJiYgKChhID0gdG9SYXcoYSkpLCAobiA9IHRvUmF3KG4pKSksCiAgICAgICAgICAhaXNBcnJheSQyKHQpICYmIGlzUmVmKGEpICYmICFpc1JlZihuKSkKICAgICAgKQogICAgICAgIHJldHVybiBjID8gITEgOiAoKGEudmFsdWUgPSBuKSwgITApOwogICAgfQogICAgY29uc3QgbyA9CiAgICAgIGlzQXJyYXkkMih0KSAmJiBpc0ludGVnZXJLZXkocikgPyBOdW1iZXIocikgPCB0Lmxlbmd0aCA6IGhhc093biQxKHQsIHIpLAogICAgICBsID0gUmVmbGVjdC5zZXQodCwgciwgbiwgaXNSZWYodCkgPyB0IDogaSk7CiAgICByZXR1cm4gKAogICAgICB0ID09PSB0b1JhdyhpKSAmJgogICAgICAobwogICAgICAgID8gaGFzQ2hhbmdlZChuLCBhKSAmJiB0cmlnZ2VyKHQsICJzZXQiLCByLCBuKQogICAgICAgIDogdHJpZ2dlcih0LCAiYWRkIiwgciwgbikpLAogICAgICBsCiAgICApOwogIH0KICBkZWxldGVQcm9wZXJ0eSh0LCByKSB7CiAgICBjb25zdCBuID0gaGFzT3duJDEodCwgcik7CiAgICB0W3JdOwogICAgY29uc3QgaSA9IFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodCwgcik7CiAgICByZXR1cm4gaSAmJiBuICYmIHRyaWdnZXIodCwgImRlbGV0ZSIsIHIsIHZvaWQgMCksIGk7CiAgfQogIGhhcyh0LCByKSB7CiAgICBjb25zdCBuID0gUmVmbGVjdC5oYXModCwgcik7CiAgICByZXR1cm4gKCFpc1N5bWJvbCQxKHIpIHx8ICFidWlsdEluU3ltYm9scy5oYXMocikpICYmIHRyYWNrKHQsICJoYXMiLCByKSwgbjsKICB9CiAgb3duS2V5cyh0KSB7CiAgICByZXR1cm4gKAogICAgICB0cmFjayh0LCAiaXRlcmF0ZSIsIGlzQXJyYXkkMih0KSA/ICJsZW5ndGgiIDogSVRFUkFURV9LRVkpLAogICAgICBSZWZsZWN0Lm93bktleXModCkKICAgICk7CiAgfQp9CmNsYXNzIFJlYWRvbmx5UmVhY3RpdmVIYW5kbGVyIGV4dGVuZHMgQmFzZVJlYWN0aXZlSGFuZGxlciB7CiAgY29uc3RydWN0b3IodCA9ICExKSB7CiAgICBzdXBlcighMCwgdCk7CiAgfQogIHNldCh0LCByKSB7CiAgICByZXR1cm4gITA7CiAgfQogIGRlbGV0ZVByb3BlcnR5KHQsIHIpIHsKICAgIHJldHVybiAhMDsKICB9Cn0KY29uc3QgbXV0YWJsZUhhbmRsZXJzID0gbmV3IE11dGFibGVSZWFjdGl2ZUhhbmRsZXIoKSwKICByZWFkb25seUhhbmRsZXJzID0gbmV3IFJlYWRvbmx5UmVhY3RpdmVIYW5kbGVyKCksCiAgc2hhbGxvd1JlYWN0aXZlSGFuZGxlcnMgPSBuZXcgTXV0YWJsZVJlYWN0aXZlSGFuZGxlcighMCksCiAgc2hhbGxvd1JlYWRvbmx5SGFuZGxlcnMgPSBuZXcgUmVhZG9ubHlSZWFjdGl2ZUhhbmRsZXIoITApLAogIHRvU2hhbGxvdyA9IChlKSA9PiBlLAogIGdldFByb3RvID0gKGUpID0+IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoZSk7CmZ1bmN0aW9uIGNyZWF0ZUl0ZXJhYmxlTWV0aG9kKGUsIHQsIHIpIHsKICByZXR1cm4gZnVuY3Rpb24gKC4uLm4pIHsKICAgIGNvbnN0IGkgPSB0aGlzLl9fdl9yYXcsCiAgICAgIGEgPSB0b1JhdyhpKSwKICAgICAgbyA9IGlzTWFwKGEpLAogICAgICBsID0gZSA9PT0gImVudHJpZXMiIHx8IChlID09PSBTeW1ib2wuaXRlcmF0b3IgJiYgbyksCiAgICAgIGMgPSBlID09PSAia2V5cyIgJiYgbywKICAgICAgdSA9IGlbZV0oLi4ubiksCiAgICAgIGQgPSByID8gdG9TaGFsbG93IDogdCA/IHRvUmVhZG9ubHkgOiB0b1JlYWN0aXZlOwogICAgcmV0dXJuICgKICAgICAgIXQgJiYgdHJhY2soYSwgIml0ZXJhdGUiLCBjID8gTUFQX0tFWV9JVEVSQVRFX0tFWSA6IElURVJBVEVfS0VZKSwKICAgICAgewogICAgICAgIG5leHQoKSB7CiAgICAgICAgICBjb25zdCB7IHZhbHVlOiBFLCBkb25lOiBiIH0gPSB1Lm5leHQoKTsKICAgICAgICAgIHJldHVybiBiCiAgICAgICAgICAgID8geyB2YWx1ZTogRSwgZG9uZTogYiB9CiAgICAgICAgICAgIDogeyB2YWx1ZTogbCA/IFtkKEVbMF0pLCBkKEVbMV0pXSA6IGQoRSksIGRvbmU6IGIgfTsKICAgICAgICB9LAogICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkgewogICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9Owp9CmZ1bmN0aW9uIGNyZWF0ZVJlYWRvbmx5TWV0aG9kKGUpIHsKICByZXR1cm4gZnVuY3Rpb24gKC4uLnQpIHsKICAgIHJldHVybiBlID09PSAiZGVsZXRlIiA/ICExIDogZSA9PT0gImNsZWFyIiA/IHZvaWQgMCA6IHRoaXM7CiAgfTsKfQpmdW5jdGlvbiBjcmVhdGVJbnN0cnVtZW50YXRpb25zKGUsIHQpIHsKICBjb25zdCByID0gewogICAgZ2V0KGkpIHsKICAgICAgY29uc3QgYSA9IHRoaXMuX192X3JhdywKICAgICAgICBvID0gdG9SYXcoYSksCiAgICAgICAgbCA9IHRvUmF3KGkpOwogICAgICBlIHx8IChoYXNDaGFuZ2VkKGksIGwpICYmIHRyYWNrKG8sICJnZXQiLCBpKSwgdHJhY2sobywgImdldCIsIGwpKTsKICAgICAgY29uc3QgeyBoYXM6IGMgfSA9IGdldFByb3RvKG8pLAogICAgICAgIHUgPSB0ID8gdG9TaGFsbG93IDogZSA/IHRvUmVhZG9ubHkgOiB0b1JlYWN0aXZlOwogICAgICBpZiAoYy5jYWxsKG8sIGkpKSByZXR1cm4gdShhLmdldChpKSk7CiAgICAgIGlmIChjLmNhbGwobywgbCkpIHJldHVybiB1KGEuZ2V0KGwpKTsKICAgICAgYSAhPT0gbyAmJiBhLmdldChpKTsKICAgIH0sCiAgICBnZXQgc2l6ZSgpIHsKICAgICAgY29uc3QgaSA9IHRoaXMuX192X3JhdzsKICAgICAgcmV0dXJuICgKICAgICAgICAhZSAmJiB0cmFjayh0b1JhdyhpKSwgIml0ZXJhdGUiLCBJVEVSQVRFX0tFWSksIFJlZmxlY3QuZ2V0KGksICJzaXplIiwgaSkKICAgICAgKTsKICAgIH0sCiAgICBoYXMoaSkgewogICAgICBjb25zdCBhID0gdGhpcy5fX3ZfcmF3LAogICAgICAgIG8gPSB0b1JhdyhhKSwKICAgICAgICBsID0gdG9SYXcoaSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgZSB8fCAoaGFzQ2hhbmdlZChpLCBsKSAmJiB0cmFjayhvLCAiaGFzIiwgaSksIHRyYWNrKG8sICJoYXMiLCBsKSksCiAgICAgICAgaSA9PT0gbCA/IGEuaGFzKGkpIDogYS5oYXMoaSkgfHwgYS5oYXMobCkKICAgICAgKTsKICAgIH0sCiAgICBmb3JFYWNoKGksIGEpIHsKICAgICAgY29uc3QgbyA9IHRoaXMsCiAgICAgICAgbCA9IG8uX192X3JhdywKICAgICAgICBjID0gdG9SYXcobCksCiAgICAgICAgdSA9IHQgPyB0b1NoYWxsb3cgOiBlID8gdG9SZWFkb25seSA6IHRvUmVhY3RpdmU7CiAgICAgIHJldHVybiAoCiAgICAgICAgIWUgJiYgdHJhY2soYywgIml0ZXJhdGUiLCBJVEVSQVRFX0tFWSksCiAgICAgICAgbC5mb3JFYWNoKChkLCBFKSA9PiBpLmNhbGwoYSwgdShkKSwgdShFKSwgbykpCiAgICAgICk7CiAgICB9LAogIH07CiAgcmV0dXJuICgKICAgIGV4dGVuZCgKICAgICAgciwKICAgICAgZQogICAgICAgID8gewogICAgICAgICAgYWRkOiBjcmVhdGVSZWFkb25seU1ldGhvZCgiYWRkIiksCiAgICAgICAgICBzZXQ6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKCJzZXQiKSwKICAgICAgICAgIGRlbGV0ZTogY3JlYXRlUmVhZG9ubHlNZXRob2QoImRlbGV0ZSIpLAogICAgICAgICAgY2xlYXI6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKCJjbGVhciIpLAogICAgICAgIH0KICAgICAgICA6IHsKICAgICAgICAgIGFkZChpKSB7CiAgICAgICAgICAgICF0ICYmICFpc1NoYWxsb3coaSkgJiYgIWlzUmVhZG9ubHkoaSkgJiYgKGkgPSB0b1JhdyhpKSk7CiAgICAgICAgICAgIGNvbnN0IGEgPSB0b1Jhdyh0aGlzKTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBnZXRQcm90byhhKS5oYXMuY2FsbChhLCBpKSB8fAogICAgICAgICAgICAgIChhLmFkZChpKSwgdHJpZ2dlcihhLCAiYWRkIiwgaSwgaSkpLAogICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgKTsKICAgICAgICAgIH0sCiAgICAgICAgICBzZXQoaSwgYSkgewogICAgICAgICAgICAhdCAmJiAhaXNTaGFsbG93KGEpICYmICFpc1JlYWRvbmx5KGEpICYmIChhID0gdG9SYXcoYSkpOwogICAgICAgICAgICBjb25zdCBvID0gdG9SYXcodGhpcyksCiAgICAgICAgICAgICAgeyBoYXM6IGwsIGdldDogYyB9ID0gZ2V0UHJvdG8obyk7CiAgICAgICAgICAgIGxldCB1ID0gbC5jYWxsKG8sIGkpOwogICAgICAgICAgICB1IHx8ICgoaSA9IHRvUmF3KGkpKSwgKHUgPSBsLmNhbGwobywgaSkpKTsKICAgICAgICAgICAgY29uc3QgZCA9IGMuY2FsbChvLCBpKTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBvLnNldChpLCBhKSwKICAgICAgICAgICAgICB1CiAgICAgICAgICAgICAgICA/IGhhc0NoYW5nZWQoYSwgZCkgJiYgdHJpZ2dlcihvLCAic2V0IiwgaSwgYSkKICAgICAgICAgICAgICAgIDogdHJpZ2dlcihvLCAiYWRkIiwgaSwgYSksCiAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICApOwogICAgICAgICAgfSwKICAgICAgICAgIGRlbGV0ZShpKSB7CiAgICAgICAgICAgIGNvbnN0IGEgPSB0b1Jhdyh0aGlzKSwKICAgICAgICAgICAgICB7IGhhczogbywgZ2V0OiBsIH0gPSBnZXRQcm90byhhKTsKICAgICAgICAgICAgbGV0IGMgPSBvLmNhbGwoYSwgaSk7CiAgICAgICAgICAgIGMgfHwgKChpID0gdG9SYXcoaSkpLCAoYyA9IG8uY2FsbChhLCBpKSkpLCBsICYmIGwuY2FsbChhLCBpKTsKICAgICAgICAgICAgY29uc3QgdSA9IGEuZGVsZXRlKGkpOwogICAgICAgICAgICByZXR1cm4gYyAmJiB0cmlnZ2VyKGEsICJkZWxldGUiLCBpLCB2b2lkIDApLCB1OwogICAgICAgICAgfSwKICAgICAgICAgIGNsZWFyKCkgewogICAgICAgICAgICBjb25zdCBpID0gdG9SYXcodGhpcyksCiAgICAgICAgICAgICAgYSA9IGkuc2l6ZSAhPT0gMCwKICAgICAgICAgICAgICBvID0gaS5jbGVhcigpOwogICAgICAgICAgICByZXR1cm4gYSAmJiB0cmlnZ2VyKGksICJjbGVhciIsIHZvaWQgMCwgdm9pZCAwKSwgbzsKICAgICAgICAgIH0sCiAgICAgICAgfQogICAgKSwKICAgIFsia2V5cyIsICJ2YWx1ZXMiLCAiZW50cmllcyIsIFN5bWJvbC5pdGVyYXRvcl0uZm9yRWFjaCgoaSkgPT4gewogICAgICByW2ldID0gY3JlYXRlSXRlcmFibGVNZXRob2QoaSwgZSwgdCk7CiAgICB9KSwKICAgIHIKICApOwp9CmZ1bmN0aW9uIGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcihlLCB0KSB7CiAgY29uc3QgciA9IGNyZWF0ZUluc3RydW1lbnRhdGlvbnMoZSwgdCk7CiAgcmV0dXJuIChuLCBpLCBhKSA9PgogICAgaSA9PT0gIl9fdl9pc1JlYWN0aXZlIgogICAgICA/ICFlCiAgICAgIDogaSA9PT0gIl9fdl9pc1JlYWRvbmx5IgogICAgICAgID8gZQogICAgICAgIDogaSA9PT0gIl9fdl9yYXciCiAgICAgICAgICA/IG4KICAgICAgICAgIDogUmVmbGVjdC5nZXQoaGFzT3duJDEociwgaSkgJiYgaSBpbiBuID8gciA6IG4sIGksIGEpOwp9CmNvbnN0IG11dGFibGVDb2xsZWN0aW9uSGFuZGxlcnMgPSB7IGdldDogY3JlYXRlSW5zdHJ1bWVudGF0aW9uR2V0dGVyKCExLCAhMSkgfSwKICBzaGFsbG93Q29sbGVjdGlvbkhhbmRsZXJzID0geyBnZXQ6IGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcighMSwgITApIH0sCiAgcmVhZG9ubHlDb2xsZWN0aW9uSGFuZGxlcnMgPSB7IGdldDogY3JlYXRlSW5zdHJ1bWVudGF0aW9uR2V0dGVyKCEwLCAhMSkgfSwKICBzaGFsbG93UmVhZG9ubHlDb2xsZWN0aW9uSGFuZGxlcnMgPSB7CiAgICBnZXQ6IGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcighMCwgITApLAogIH0sCiAgcmVhY3RpdmVNYXAgPSBuZXcgV2Vha01hcCgpLAogIHNoYWxsb3dSZWFjdGl2ZU1hcCA9IG5ldyBXZWFrTWFwKCksCiAgcmVhZG9ubHlNYXAgPSBuZXcgV2Vha01hcCgpLAogIHNoYWxsb3dSZWFkb25seU1hcCA9IG5ldyBXZWFrTWFwKCk7CmZ1bmN0aW9uIHRhcmdldFR5cGVNYXAoZSkgewogIHN3aXRjaCAoZSkgewogICAgY2FzZSAiT2JqZWN0IjoKICAgIGNhc2UgIkFycmF5IjoKICAgICAgcmV0dXJuIDE7CiAgICBjYXNlICJNYXAiOgogICAgY2FzZSAiU2V0IjoKICAgIGNhc2UgIldlYWtNYXAiOgogICAgY2FzZSAiV2Vha1NldCI6CiAgICAgIHJldHVybiAyOwogICAgZGVmYXVsdDoKICAgICAgcmV0dXJuIDA7CiAgfQp9CmZ1bmN0aW9uIGdldFRhcmdldFR5cGUoZSkgewogIHJldHVybiBlLl9fdl9za2lwIHx8ICFPYmplY3QuaXNFeHRlbnNpYmxlKGUpCiAgICA/IDAKICAgIDogdGFyZ2V0VHlwZU1hcCh0b1Jhd1R5cGUoZSkpOwp9CmZ1bmN0aW9uIHJlYWN0aXZlKGUpIHsKICByZXR1cm4gaXNSZWFkb25seShlKQogICAgPyBlCiAgICA6IGNyZWF0ZVJlYWN0aXZlT2JqZWN0KAogICAgICBlLAogICAgICAhMSwKICAgICAgbXV0YWJsZUhhbmRsZXJzLAogICAgICBtdXRhYmxlQ29sbGVjdGlvbkhhbmRsZXJzLAogICAgICByZWFjdGl2ZU1hcAogICAgKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVhY3RpdmUoZSkgewogIHJldHVybiBjcmVhdGVSZWFjdGl2ZU9iamVjdCgKICAgIGUsCiAgICAhMSwKICAgIHNoYWxsb3dSZWFjdGl2ZUhhbmRsZXJzLAogICAgc2hhbGxvd0NvbGxlY3Rpb25IYW5kbGVycywKICAgIHNoYWxsb3dSZWFjdGl2ZU1hcAogICk7Cn0KZnVuY3Rpb24gcmVhZG9ubHkoZSkgewogIHJldHVybiBjcmVhdGVSZWFjdGl2ZU9iamVjdCgKICAgIGUsCiAgICAhMCwKICAgIHJlYWRvbmx5SGFuZGxlcnMsCiAgICByZWFkb25seUNvbGxlY3Rpb25IYW5kbGVycywKICAgIHJlYWRvbmx5TWFwCiAgKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVhZG9ubHkoZSkgewogIHJldHVybiBjcmVhdGVSZWFjdGl2ZU9iamVjdCgKICAgIGUsCiAgICAhMCwKICAgIHNoYWxsb3dSZWFkb25seUhhbmRsZXJzLAogICAgc2hhbGxvd1JlYWRvbmx5Q29sbGVjdGlvbkhhbmRsZXJzLAogICAgc2hhbGxvd1JlYWRvbmx5TWFwCiAgKTsKfQpmdW5jdGlvbiBjcmVhdGVSZWFjdGl2ZU9iamVjdChlLCB0LCByLCBuLCBpKSB7CiAgaWYgKCFpc09iamVjdCQyKGUpIHx8IChlLl9fdl9yYXcgJiYgISh0ICYmIGUuX192X2lzUmVhY3RpdmUpKSkgcmV0dXJuIGU7CiAgY29uc3QgYSA9IGkuZ2V0KGUpOwogIGlmIChhKSByZXR1cm4gYTsKICBjb25zdCBvID0gZ2V0VGFyZ2V0VHlwZShlKTsKICBpZiAobyA9PT0gMCkgcmV0dXJuIGU7CiAgY29uc3QgbCA9IG5ldyBQcm94eShlLCBvID09PSAyID8gbiA6IHIpOwogIHJldHVybiBpLnNldChlLCBsKSwgbDsKfQpmdW5jdGlvbiBpc1JlYWN0aXZlKGUpIHsKICByZXR1cm4gaXNSZWFkb25seShlKSA/IGlzUmVhY3RpdmUoZS5fX3ZfcmF3KSA6ICEhKGUgJiYgZS5fX3ZfaXNSZWFjdGl2ZSk7Cn0KZnVuY3Rpb24gaXNSZWFkb25seShlKSB7CiAgcmV0dXJuICEhKGUgJiYgZS5fX3ZfaXNSZWFkb25seSk7Cn0KZnVuY3Rpb24gaXNTaGFsbG93KGUpIHsKICByZXR1cm4gISEoZSAmJiBlLl9fdl9pc1NoYWxsb3cpOwp9CmZ1bmN0aW9uIGlzUHJveHkoZSkgewogIHJldHVybiBlID8gISFlLl9fdl9yYXcgOiAhMTsKfQpmdW5jdGlvbiB0b1JhdyhlKSB7CiAgY29uc3QgdCA9IGUgJiYgZS5fX3ZfcmF3OwogIHJldHVybiB0ID8gdG9SYXcodCkgOiBlOwp9CmZ1bmN0aW9uIG1hcmtSYXcoZSkgewogIHJldHVybiAoCiAgICAhaGFzT3duJDEoZSwgIl9fdl9za2lwIikgJiYKICAgIE9iamVjdC5pc0V4dGVuc2libGUoZSkgJiYKICAgIGRlZihlLCAiX192X3NraXAiLCAhMCksCiAgICBlCiAgKTsKfQpjb25zdCB0b1JlYWN0aXZlID0gKGUpID0+IChpc09iamVjdCQyKGUpID8gcmVhY3RpdmUoZSkgOiBlKSwKICB0b1JlYWRvbmx5ID0gKGUpID0+IChpc09iamVjdCQyKGUpID8gcmVhZG9ubHkoZSkgOiBlKTsKZnVuY3Rpb24gaXNSZWYoZSkgewogIHJldHVybiBlID8gZS5fX3ZfaXNSZWYgPT09ICEwIDogITE7Cn0KZnVuY3Rpb24gcmVmKGUpIHsKICByZXR1cm4gY3JlYXRlUmVmKGUsICExKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVmKGUpIHsKICByZXR1cm4gY3JlYXRlUmVmKGUsICEwKTsKfQpmdW5jdGlvbiBjcmVhdGVSZWYoZSwgdCkgewogIHJldHVybiBpc1JlZihlKSA/IGUgOiBuZXcgUmVmSW1wbChlLCB0KTsKfQpjbGFzcyBSZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0LCByKSB7CiAgICAodGhpcy5kZXAgPSBuZXcgRGVwKCkpLAogICAgICAodGhpcy5fX3ZfaXNSZWYgPSAhMCksCiAgICAgICh0aGlzLl9fdl9pc1NoYWxsb3cgPSAhMSksCiAgICAgICh0aGlzLl9yYXdWYWx1ZSA9IHIgPyB0IDogdG9SYXcodCkpLAogICAgICAodGhpcy5fdmFsdWUgPSByID8gdCA6IHRvUmVhY3RpdmUodCkpLAogICAgICAodGhpcy5fX3ZfaXNTaGFsbG93ID0gcik7CiAgfQogIGdldCB2YWx1ZSgpIHsKICAgIHJldHVybiB0aGlzLmRlcC50cmFjaygpLCB0aGlzLl92YWx1ZTsKICB9CiAgc2V0IHZhbHVlKHQpIHsKICAgIGNvbnN0IHIgPSB0aGlzLl9yYXdWYWx1ZSwKICAgICAgbiA9IHRoaXMuX192X2lzU2hhbGxvdyB8fCBpc1NoYWxsb3codCkgfHwgaXNSZWFkb25seSh0KTsKICAgICh0ID0gbiA/IHQgOiB0b1Jhdyh0KSksCiAgICAgIGhhc0NoYW5nZWQodCwgcikgJiYKICAgICAgKCh0aGlzLl9yYXdWYWx1ZSA9IHQpLAogICAgICAgICh0aGlzLl92YWx1ZSA9IG4gPyB0IDogdG9SZWFjdGl2ZSh0KSksCiAgICAgICAgdGhpcy5kZXAudHJpZ2dlcigpKTsKICB9Cn0KZnVuY3Rpb24gdHJpZ2dlclJlZihlKSB7CiAgZS5kZXAgJiYgZS5kZXAudHJpZ2dlcigpOwp9CmZ1bmN0aW9uIHVucmVmKGUpIHsKICByZXR1cm4gaXNSZWYoZSkgPyBlLnZhbHVlIDogZTsKfQpmdW5jdGlvbiB0b1ZhbHVlKGUpIHsKICByZXR1cm4gaXNGdW5jdGlvbiQxKGUpID8gZSgpIDogdW5yZWYoZSk7Cn0KY29uc3Qgc2hhbGxvd1Vud3JhcEhhbmRsZXJzID0gewogIGdldDogKGUsIHQsIHIpID0+ICh0ID09PSAiX192X3JhdyIgPyBlIDogdW5yZWYoUmVmbGVjdC5nZXQoZSwgdCwgcikpKSwKICBzZXQ6IChlLCB0LCByLCBuKSA9PiB7CiAgICBjb25zdCBpID0gZVt0XTsKICAgIHJldHVybiBpc1JlZihpKSAmJiAhaXNSZWYocikKICAgICAgPyAoKGkudmFsdWUgPSByKSwgITApCiAgICAgIDogUmVmbGVjdC5zZXQoZSwgdCwgciwgbik7CiAgfSwKfTsKZnVuY3Rpb24gcHJveHlSZWZzKGUpIHsKICByZXR1cm4gaXNSZWFjdGl2ZShlKSA/IGUgOiBuZXcgUHJveHkoZSwgc2hhbGxvd1Vud3JhcEhhbmRsZXJzKTsKfQpjbGFzcyBDdXN0b21SZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0KSB7CiAgICAodGhpcy5fX3ZfaXNSZWYgPSAhMCksICh0aGlzLl92YWx1ZSA9IHZvaWQgMCk7CiAgICBjb25zdCByID0gKHRoaXMuZGVwID0gbmV3IERlcCgpKSwKICAgICAgeyBnZXQ6IG4sIHNldDogaSB9ID0gdChyLnRyYWNrLmJpbmQociksIHIudHJpZ2dlci5iaW5kKHIpKTsKICAgICh0aGlzLl9nZXQgPSBuKSwgKHRoaXMuX3NldCA9IGkpOwogIH0KICBnZXQgdmFsdWUoKSB7CiAgICByZXR1cm4gKHRoaXMuX3ZhbHVlID0gdGhpcy5fZ2V0KCkpOwogIH0KICBzZXQgdmFsdWUodCkgewogICAgdGhpcy5fc2V0KHQpOwogIH0KfQpmdW5jdGlvbiBjdXN0b21SZWYoZSkgewogIHJldHVybiBuZXcgQ3VzdG9tUmVmSW1wbChlKTsKfQpmdW5jdGlvbiB0b1JlZnMoZSkgewogIGNvbnN0IHQgPSBpc0FycmF5JDIoZSkgPyBuZXcgQXJyYXkoZS5sZW5ndGgpIDoge307CiAgZm9yIChjb25zdCByIGluIGUpIHRbcl0gPSBwcm9wZXJ0eVRvUmVmKGUsIHIpOwogIHJldHVybiB0Owp9CmNsYXNzIE9iamVjdFJlZkltcGwgewogIGNvbnN0cnVjdG9yKHQsIHIsIG4pIHsKICAgICh0aGlzLl9vYmplY3QgPSB0KSwKICAgICAgKHRoaXMuX2tleSA9IHIpLAogICAgICAodGhpcy5fZGVmYXVsdFZhbHVlID0gbiksCiAgICAgICh0aGlzLl9fdl9pc1JlZiA9ICEwKSwKICAgICAgKHRoaXMuX3ZhbHVlID0gdm9pZCAwKTsKICB9CiAgZ2V0IHZhbHVlKCkgewogICAgY29uc3QgdCA9IHRoaXMuX29iamVjdFt0aGlzLl9rZXldOwogICAgcmV0dXJuICh0aGlzLl92YWx1ZSA9IHQgPT09IHZvaWQgMCA/IHRoaXMuX2RlZmF1bHRWYWx1ZSA6IHQpOwogIH0KICBzZXQgdmFsdWUodCkgewogICAgdGhpcy5fb2JqZWN0W3RoaXMuX2tleV0gPSB0OwogIH0KICBnZXQgZGVwKCkgewogICAgcmV0dXJuIGdldERlcEZyb21SZWFjdGl2ZSh0b1Jhdyh0aGlzLl9vYmplY3QpLCB0aGlzLl9rZXkpOwogIH0KfQpjbGFzcyBHZXR0ZXJSZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0KSB7CiAgICAodGhpcy5fZ2V0dGVyID0gdCksCiAgICAgICh0aGlzLl9fdl9pc1JlZiA9ICEwKSwKICAgICAgKHRoaXMuX192X2lzUmVhZG9ubHkgPSAhMCksCiAgICAgICh0aGlzLl92YWx1ZSA9IHZvaWQgMCk7CiAgfQogIGdldCB2YWx1ZSgpIHsKICAgIHJldHVybiAodGhpcy5fdmFsdWUgPSB0aGlzLl9nZXR0ZXIoKSk7CiAgfQp9CmZ1bmN0aW9uIHRvUmVmKGUsIHQsIHIpIHsKICByZXR1cm4gaXNSZWYoZSkKICAgID8gZQogICAgOiBpc0Z1bmN0aW9uJDEoZSkKICAgICAgPyBuZXcgR2V0dGVyUmVmSW1wbChlKQogICAgICA6IGlzT2JqZWN0JDIoZSkgJiYgYXJndW1lbnRzLmxlbmd0aCA+IDEKICAgICAgICA/IHByb3BlcnR5VG9SZWYoZSwgdCwgcikKICAgICAgICA6IHJlZihlKTsKfQpmdW5jdGlvbiBwcm9wZXJ0eVRvUmVmKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZVt0XTsKICByZXR1cm4gaXNSZWYobikgPyBuIDogbmV3IE9iamVjdFJlZkltcGwoZSwgdCwgcik7Cn0KY2xhc3MgQ29tcHV0ZWRSZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0LCByLCBuKSB7CiAgICAodGhpcy5mbiA9IHQpLAogICAgICAodGhpcy5zZXR0ZXIgPSByKSwKICAgICAgKHRoaXMuX3ZhbHVlID0gdm9pZCAwKSwKICAgICAgKHRoaXMuZGVwID0gbmV3IERlcCh0aGlzKSksCiAgICAgICh0aGlzLl9fdl9pc1JlZiA9ICEwKSwKICAgICAgKHRoaXMuZGVwcyA9IHZvaWQgMCksCiAgICAgICh0aGlzLmRlcHNUYWlsID0gdm9pZCAwKSwKICAgICAgKHRoaXMuZmxhZ3MgPSAxNiksCiAgICAgICh0aGlzLmdsb2JhbFZlcnNpb24gPSBnbG9iYWxWZXJzaW9uIC0gMSksCiAgICAgICh0aGlzLm5leHQgPSB2b2lkIDApLAogICAgICAodGhpcy5lZmZlY3QgPSB0aGlzKSwKICAgICAgKHRoaXMuX192X2lzUmVhZG9ubHkgPSAhciksCiAgICAgICh0aGlzLmlzU1NSID0gbik7CiAgfQogIG5vdGlmeSgpIHsKICAgIGlmICgoKHRoaXMuZmxhZ3MgfD0gMTYpLCAhKHRoaXMuZmxhZ3MgJiA4KSAmJiBhY3RpdmVTdWIgIT09IHRoaXMpKQogICAgICByZXR1cm4gYmF0Y2godGhpcywgITApLCAhMDsKICB9CiAgZ2V0IHZhbHVlKCkgewogICAgY29uc3QgdCA9IHRoaXMuZGVwLnRyYWNrKCk7CiAgICByZXR1cm4gKAogICAgICByZWZyZXNoQ29tcHV0ZWQodGhpcyksIHQgJiYgKHQudmVyc2lvbiA9IHRoaXMuZGVwLnZlcnNpb24pLCB0aGlzLl92YWx1ZQogICAgKTsKICB9CiAgc2V0IHZhbHVlKHQpIHsKICAgIHRoaXMuc2V0dGVyICYmIHRoaXMuc2V0dGVyKHQpOwogIH0KfQpmdW5jdGlvbiBjb21wdXRlZCQxKGUsIHQsIHIgPSAhMSkgewogIGxldCBuLCBpOwogIHJldHVybiAoCiAgICBpc0Z1bmN0aW9uJDEoZSkgPyAobiA9IGUpIDogKChuID0gZS5nZXQpLCAoaSA9IGUuc2V0KSksCiAgICBuZXcgQ29tcHV0ZWRSZWZJbXBsKG4sIGksIHIpCiAgKTsKfQpjb25zdCBUcmFja09wVHlwZXMgPSB7IEdFVDogImdldCIsIEhBUzogImhhcyIsIElURVJBVEU6ICJpdGVyYXRlIiB9LAogIFRyaWdnZXJPcFR5cGVzID0geyBTRVQ6ICJzZXQiLCBBREQ6ICJhZGQiLCBERUxFVEU6ICJkZWxldGUiLCBDTEVBUjogImNsZWFyIiB9LAogIElOSVRJQUxfV0FUQ0hFUl9WQUxVRSA9IHt9LAogIGNsZWFudXBNYXAgPSBuZXcgV2Vha01hcCgpOwpsZXQgYWN0aXZlV2F0Y2hlcjsKZnVuY3Rpb24gZ2V0Q3VycmVudFdhdGNoZXIoKSB7CiAgcmV0dXJuIGFjdGl2ZVdhdGNoZXI7Cn0KZnVuY3Rpb24gb25XYXRjaGVyQ2xlYW51cChlLCB0ID0gITEsIHIgPSBhY3RpdmVXYXRjaGVyKSB7CiAgaWYgKHIpIHsKICAgIGxldCBuID0gY2xlYW51cE1hcC5nZXQocik7CiAgICBuIHx8IGNsZWFudXBNYXAuc2V0KHIsIChuID0gW10pKSwgbi5wdXNoKGUpOwogIH0KfQpmdW5jdGlvbiB3YXRjaCQxKGUsIHQsIHIgPSBFTVBUWV9PQkopIHsKICBjb25zdCB7CiAgICBpbW1lZGlhdGU6IG4sCiAgICBkZWVwOiBpLAogICAgb25jZTogYSwKICAgIHNjaGVkdWxlcjogbywKICAgIGF1Z21lbnRKb2I6IGwsCiAgICBjYWxsOiBjLAogIH0gPSByLAogICAgdSA9IChBKSA9PgogICAgICBpCiAgICAgICAgPyBBCiAgICAgICAgOiBpc1NoYWxsb3coQSkgfHwgaSA9PT0gITEgfHwgaSA9PT0gMAogICAgICAgICAgPyB0cmF2ZXJzZShBLCAxKQogICAgICAgICAgOiB0cmF2ZXJzZShBKTsKICBsZXQgZCwKICAgIEUsCiAgICBiLAogICAgUCwKICAgIFIgPSAhMSwKICAgIFQgPSAhMTsKICBpZiAoCiAgICAoaXNSZWYoZSkKICAgICAgPyAoKEUgPSAoKSA9PiBlLnZhbHVlKSwgKFIgPSBpc1NoYWxsb3coZSkpKQogICAgICA6IGlzUmVhY3RpdmUoZSkKICAgICAgICA/ICgoRSA9ICgpID0+IHUoZSkpLCAoUiA9ICEwKSkKICAgICAgICA6IGlzQXJyYXkkMihlKQogICAgICAgICAgPyAoKFQgPSAhMCksCiAgICAgICAgICAgIChSID0gZS5zb21lKChBKSA9PiBpc1JlYWN0aXZlKEEpIHx8IGlzU2hhbGxvdyhBKSkpLAogICAgICAgICAgICAoRSA9ICgpID0+CiAgICAgICAgICAgICAgZS5tYXAoKEEpID0+IHsKICAgICAgICAgICAgICAgIGlmIChpc1JlZihBKSkgcmV0dXJuIEEudmFsdWU7CiAgICAgICAgICAgICAgICBpZiAoaXNSZWFjdGl2ZShBKSkgcmV0dXJuIHUoQSk7CiAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbiQxKEEpKSByZXR1cm4gYyA/IGMoQSwgMikgOiBBKCk7CiAgICAgICAgICAgICAgfSkpKQogICAgICAgICAgOiBpc0Z1bmN0aW9uJDEoZSkKICAgICAgICAgICAgPyB0CiAgICAgICAgICAgICAgPyAoRSA9IGMgPyAoKSA9PiBjKGUsIDIpIDogZSkKICAgICAgICAgICAgICA6IChFID0gKCkgPT4gewogICAgICAgICAgICAgICAgaWYgKGIpIHsKICAgICAgICAgICAgICAgICAgcGF1c2VUcmFja2luZygpOwogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGIoKTsKICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICAgICByZXNldFRyYWNraW5nKCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnN0IEEgPSBhY3RpdmVXYXRjaGVyOwogICAgICAgICAgICAgICAgYWN0aXZlV2F0Y2hlciA9IGQ7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICByZXR1cm4gYyA/IGMoZSwgMywgW1BdKSA6IGUoUCk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICBhY3RpdmVXYXRjaGVyID0gQTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KQogICAgICAgICAgICA6IChFID0gTk9PUCksCiAgICAgIHQgJiYgaSkKICApIHsKICAgIGNvbnN0IEEgPSBFLAogICAgICBPID0gaSA9PT0gITAgPyAxIC8gMCA6IGk7CiAgICBFID0gKCkgPT4gdHJhdmVyc2UoQSgpLCBPKTsKICB9CiAgY29uc3QgTSA9IGdldEN1cnJlbnRTY29wZSgpLAogICAgeCA9ICgpID0+IHsKICAgICAgZC5zdG9wKCksIE0gJiYgTS5hY3RpdmUgJiYgcmVtb3ZlKE0uZWZmZWN0cywgZCk7CiAgICB9OwogIGlmIChhICYmIHQpIHsKICAgIGNvbnN0IEEgPSB0OwogICAgdCA9ICguLi5PKSA9PiB7CiAgICAgIEEoLi4uTyksIHgoKTsKICAgIH07CiAgfQogIGxldCBrID0gVAogICAgPyBuZXcgQXJyYXkoZS5sZW5ndGgpLmZpbGwoSU5JVElBTF9XQVRDSEVSX1ZBTFVFKQogICAgOiBJTklUSUFMX1dBVENIRVJfVkFMVUU7CiAgY29uc3QgUyA9IChBKSA9PiB7CiAgICBpZiAoISghKGQuZmxhZ3MgJiAxKSB8fCAoIWQuZGlydHkgJiYgIUEpKSkKICAgICAgaWYgKHQpIHsKICAgICAgICBjb25zdCBPID0gZC5ydW4oKTsKICAgICAgICBpZiAoCiAgICAgICAgICBpIHx8CiAgICAgICAgICBSIHx8CiAgICAgICAgICAoVCA/IE8uc29tZSgoRiwgRCkgPT4gaGFzQ2hhbmdlZChGLCBrW0RdKSkgOiBoYXNDaGFuZ2VkKE8sIGspKQogICAgICAgICkgewogICAgICAgICAgYiAmJiBiKCk7CiAgICAgICAgICBjb25zdCBGID0gYWN0aXZlV2F0Y2hlcjsKICAgICAgICAgIGFjdGl2ZVdhdGNoZXIgPSBkOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgRCA9IFsKICAgICAgICAgICAgICBPLAogICAgICAgICAgICAgIGsgPT09IElOSVRJQUxfV0FUQ0hFUl9WQUxVRQogICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgIDogVCAmJiBrWzBdID09PSBJTklUSUFMX1dBVENIRVJfVkFMVUUKICAgICAgICAgICAgICAgICAgPyBbXQogICAgICAgICAgICAgICAgICA6IGssCiAgICAgICAgICAgICAgUCwKICAgICAgICAgICAgXTsKICAgICAgICAgICAgYyA/IGModCwgMywgRCkgOiB0KC4uLkQpLCAoayA9IE8pOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgYWN0aXZlV2F0Y2hlciA9IEY7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgZC5ydW4oKTsKICB9OwogIHJldHVybiAoCiAgICBsICYmIGwoUyksCiAgICAoZCA9IG5ldyBSZWFjdGl2ZUVmZmVjdChFKSksCiAgICAoZC5zY2hlZHVsZXIgPSBvID8gKCkgPT4gbyhTLCAhMSkgOiBTKSwKICAgIChQID0gKEEpID0+IG9uV2F0Y2hlckNsZWFudXAoQSwgITEsIGQpKSwKICAgIChiID0gZC5vblN0b3AgPQogICAgICAoKSA9PiB7CiAgICAgICAgY29uc3QgQSA9IGNsZWFudXBNYXAuZ2V0KGQpOwogICAgICAgIGlmIChBKSB7CiAgICAgICAgICBpZiAoYykgYyhBLCA0KTsKICAgICAgICAgIGVsc2UgZm9yIChjb25zdCBPIG9mIEEpIE8oKTsKICAgICAgICAgIGNsZWFudXBNYXAuZGVsZXRlKGQpOwogICAgICAgIH0KICAgICAgfSksCiAgICB0ID8gKG4gPyBTKCEwKSA6IChrID0gZC5ydW4oKSkpIDogbyA/IG8oUy5iaW5kKG51bGwsICEwKSwgITApIDogZC5ydW4oKSwKICAgICh4LnBhdXNlID0gZC5wYXVzZS5iaW5kKGQpKSwKICAgICh4LnJlc3VtZSA9IGQucmVzdW1lLmJpbmQoZCkpLAogICAgKHguc3RvcCA9IHgpLAogICAgeAogICk7Cn0KZnVuY3Rpb24gdHJhdmVyc2UoZSwgdCA9IDEgLyAwLCByKSB7CiAgaWYgKAogICAgdCA8PSAwIHx8CiAgICAhaXNPYmplY3QkMihlKSB8fAogICAgZS5fX3Zfc2tpcCB8fAogICAgKChyID0gciB8fCBuZXcgU2V0KCkpLCByLmhhcyhlKSkKICApCiAgICByZXR1cm4gZTsKICBpZiAoKHIuYWRkKGUpLCB0LS0sIGlzUmVmKGUpKSkgdHJhdmVyc2UoZS52YWx1ZSwgdCwgcik7CiAgZWxzZSBpZiAoaXNBcnJheSQyKGUpKQogICAgZm9yIChsZXQgbiA9IDA7IG4gPCBlLmxlbmd0aDsgbisrKSB0cmF2ZXJzZShlW25dLCB0LCByKTsKICBlbHNlIGlmIChpc1NldChlKSB8fCBpc01hcChlKSkKICAgIGUuZm9yRWFjaCgobikgPT4gewogICAgICB0cmF2ZXJzZShuLCB0LCByKTsKICAgIH0pOwogIGVsc2UgaWYgKGlzUGxhaW5PYmplY3QkNChlKSkgewogICAgZm9yIChjb25zdCBuIGluIGUpIHRyYXZlcnNlKGVbbl0sIHQsIHIpOwogICAgZm9yIChjb25zdCBuIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSkpCiAgICAgIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLCBuKSAmJiB0cmF2ZXJzZShlW25dLCB0LCByKTsKICB9CiAgcmV0dXJuIGU7Cn0KLyoqCiAqIEB2dWUvcnVudGltZS1jb3JlIHYzLjUuMTMKICogKGMpIDIwMTgtcHJlc2VudCBZdXhpIChFdmFuKSBZb3UgYW5kIFZ1ZSBjb250cmlidXRvcnMKICogQGxpY2Vuc2UgTUlUCiAqKi8gY29uc3Qgc3RhY2sgPSBbXTsKZnVuY3Rpb24gcHVzaFdhcm5pbmdDb250ZXh0KGUpIHsKICBzdGFjay5wdXNoKGUpOwp9CmZ1bmN0aW9uIHBvcFdhcm5pbmdDb250ZXh0KCkgewogIHN0YWNrLnBvcCgpOwp9CmxldCBpc1dhcm5pbmcgPSAhMTsKZnVuY3Rpb24gd2FybiQxKGUsIC4uLnQpIHsKICBpZiAoaXNXYXJuaW5nKSByZXR1cm47CiAgKGlzV2FybmluZyA9ICEwKSwgcGF1c2VUcmFja2luZygpOwogIGNvbnN0IHIgPSBzdGFjay5sZW5ndGggPyBzdGFja1tzdGFjay5sZW5ndGggLSAxXS5jb21wb25lbnQgOiBudWxsLAogICAgbiA9IHIgJiYgci5hcHBDb250ZXh0LmNvbmZpZy53YXJuSGFuZGxlciwKICAgIGkgPSBnZXRDb21wb25lbnRUcmFjZSgpOwogIGlmIChuKQogICAgY2FsbFdpdGhFcnJvckhhbmRsaW5nKG4sIHIsIDExLCBbCiAgICAgIGUgKwogICAgICB0CiAgICAgICAgLm1hcCgoYSkgPT4gewogICAgICAgICAgdmFyIG8sIGw7CiAgICAgICAgICByZXR1cm4gKGwgPSAobyA9IGEudG9TdHJpbmcpID09IG51bGwgPyB2b2lkIDAgOiBvLmNhbGwoYSkpICE9IG51bGwKICAgICAgICAgICAgPyBsCiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkoYSk7CiAgICAgICAgfSkKICAgICAgICAuam9pbigiIiksCiAgICAgIHIgJiYgci5wcm94eSwKICAgICAgaS5tYXAoKHsgdm5vZGU6IGEgfSkgPT4gYGF0IDwke2Zvcm1hdENvbXBvbmVudE5hbWUociwgYS50eXBlKX0+YCkuam9pbihgCmApLAogICAgICBpLAogICAgXSk7CiAgZWxzZSB7CiAgICBjb25zdCBhID0gW2BbVnVlIHdhcm5dOiAke2V9YCwgLi4udF07CiAgICBpLmxlbmd0aCAmJgogICAgICBhLnB1c2goCiAgICAgICAgYApgLAogICAgICAgIC4uLmZvcm1hdFRyYWNlKGkpCiAgICAgICksCiAgICAgIGNvbnNvbGUud2FybiguLi5hKTsKICB9CiAgcmVzZXRUcmFja2luZygpLCAoaXNXYXJuaW5nID0gITEpOwp9CmZ1bmN0aW9uIGdldENvbXBvbmVudFRyYWNlKCkgewogIGxldCBlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07CiAgaWYgKCFlKSByZXR1cm4gW107CiAgY29uc3QgdCA9IFtdOwogIGZvciAoOyBlOykgewogICAgY29uc3QgciA9IHRbMF07CiAgICByICYmIHIudm5vZGUgPT09IGUKICAgICAgPyByLnJlY3Vyc2VDb3VudCsrCiAgICAgIDogdC5wdXNoKHsgdm5vZGU6IGUsIHJlY3Vyc2VDb3VudDogMCB9KTsKICAgIGNvbnN0IG4gPSBlLmNvbXBvbmVudCAmJiBlLmNvbXBvbmVudC5wYXJlbnQ7CiAgICBlID0gbiAmJiBuLnZub2RlOwogIH0KICByZXR1cm4gdDsKfQpmdW5jdGlvbiBmb3JtYXRUcmFjZShlKSB7CiAgY29uc3QgdCA9IFtdOwogIHJldHVybiAoCiAgICBlLmZvckVhY2goKHIsIG4pID0+IHsKICAgICAgdC5wdXNoKAogICAgICAgIC4uLihuID09PSAwCiAgICAgICAgICA/IFtdCiAgICAgICAgICA6IFsKICAgICAgICAgICAgYApgLAogICAgICAgICAgXSksCiAgICAgICAgLi4uZm9ybWF0VHJhY2VFbnRyeShyKQogICAgICApOwogICAgfSksCiAgICB0CiAgKTsKfQpmdW5jdGlvbiBmb3JtYXRUcmFjZUVudHJ5KHsgdm5vZGU6IGUsIHJlY3Vyc2VDb3VudDogdCB9KSB7CiAgY29uc3QgciA9IHQgPiAwID8gYC4uLiAoJHt0fSByZWN1cnNpdmUgY2FsbHMpYCA6ICIiLAogICAgbiA9IGUuY29tcG9uZW50ID8gZS5jb21wb25lbnQucGFyZW50ID09IG51bGwgOiAhMSwKICAgIGkgPSBgIGF0IDwke2Zvcm1hdENvbXBvbmVudE5hbWUoZS5jb21wb25lbnQsIGUudHlwZSwgbil9YCwKICAgIGEgPSAiPiIgKyByOwogIHJldHVybiBlLnByb3BzID8gW2ksIC4uLmZvcm1hdFByb3BzKGUucHJvcHMpLCBhXSA6IFtpICsgYV07Cn0KZnVuY3Rpb24gZm9ybWF0UHJvcHMoZSkgewogIGNvbnN0IHQgPSBbXSwKICAgIHIgPSBPYmplY3Qua2V5cyhlKTsKICByZXR1cm4gKAogICAgci5zbGljZSgwLCAzKS5mb3JFYWNoKChuKSA9PiB7CiAgICAgIHQucHVzaCguLi5mb3JtYXRQcm9wKG4sIGVbbl0pKTsKICAgIH0pLAogICAgci5sZW5ndGggPiAzICYmIHQucHVzaCgiIC4uLiIpLAogICAgdAogICk7Cn0KZnVuY3Rpb24gZm9ybWF0UHJvcChlLCB0LCByKSB7CiAgcmV0dXJuIGlzU3RyaW5nJDEodCkKICAgID8gKCh0ID0gSlNPTi5zdHJpbmdpZnkodCkpLCByID8gdCA6IFtgJHtlfT0ke3R9YF0pCiAgICA6IHR5cGVvZiB0ID09ICJudW1iZXIiIHx8IHR5cGVvZiB0ID09ICJib29sZWFuIiB8fCB0ID09IG51bGwKICAgICAgPyByCiAgICAgICAgPyB0CiAgICAgICAgOiBbYCR7ZX09JHt0fWBdCiAgICAgIDogaXNSZWYodCkKICAgICAgICA/ICgodCA9IGZvcm1hdFByb3AoZSwgdG9SYXcodC52YWx1ZSksICEwKSksIHIgPyB0IDogW2Ake2V9PVJlZjxgLCB0LCAiPiJdKQogICAgICAgIDogaXNGdW5jdGlvbiQxKHQpCiAgICAgICAgICA/IFtgJHtlfT1mbiR7dC5uYW1lID8gYDwke3QubmFtZX0+YCA6ICIifWBdCiAgICAgICAgICA6ICgodCA9IHRvUmF3KHQpKSwgciA/IHQgOiBbYCR7ZX09YCwgdF0pOwp9CmZ1bmN0aW9uIGFzc2VydE51bWJlcihlLCB0KSB7IH0KY29uc3QgRXJyb3JDb2RlcyA9IHsKICBTRVRVUF9GVU5DVElPTjogMCwKICAwOiAiU0VUVVBfRlVOQ1RJT04iLAogIFJFTkRFUl9GVU5DVElPTjogMSwKICAxOiAiUkVOREVSX0ZVTkNUSU9OIiwKICBOQVRJVkVfRVZFTlRfSEFORExFUjogNSwKICA1OiAiTkFUSVZFX0VWRU5UX0hBTkRMRVIiLAogIENPTVBPTkVOVF9FVkVOVF9IQU5ETEVSOiA2LAogIDY6ICJDT01QT05FTlRfRVZFTlRfSEFORExFUiIsCiAgVk5PREVfSE9PSzogNywKICA3OiAiVk5PREVfSE9PSyIsCiAgRElSRUNUSVZFX0hPT0s6IDgsCiAgODogIkRJUkVDVElWRV9IT09LIiwKICBUUkFOU0lUSU9OX0hPT0s6IDksCiAgOTogIlRSQU5TSVRJT05fSE9PSyIsCiAgQVBQX0VSUk9SX0hBTkRMRVI6IDEwLAogIDEwOiAiQVBQX0VSUk9SX0hBTkRMRVIiLAogIEFQUF9XQVJOX0hBTkRMRVI6IDExLAogIDExOiAiQVBQX1dBUk5fSEFORExFUiIsCiAgRlVOQ1RJT05fUkVGOiAxMiwKICAxMjogIkZVTkNUSU9OX1JFRiIsCiAgQVNZTkNfQ09NUE9ORU5UX0xPQURFUjogMTMsCiAgMTM6ICJBU1lOQ19DT01QT05FTlRfTE9BREVSIiwKICBTQ0hFRFVMRVI6IDE0LAogIDE0OiAiU0NIRURVTEVSIiwKICBDT01QT05FTlRfVVBEQVRFOiAxNSwKICAxNTogIkNPTVBPTkVOVF9VUERBVEUiLAogIEFQUF9VTk1PVU5UX0NMRUFOVVA6IDE2LAogIDE2OiAiQVBQX1VOTU9VTlRfQ0xFQU5VUCIsCn0sCiAgRXJyb3JUeXBlU3RyaW5ncyQxID0gewogICAgc3A6ICJzZXJ2ZXJQcmVmZXRjaCBob29rIiwKICAgIGJjOiAiYmVmb3JlQ3JlYXRlIGhvb2siLAogICAgYzogImNyZWF0ZWQgaG9vayIsCiAgICBibTogImJlZm9yZU1vdW50IGhvb2siLAogICAgbTogIm1vdW50ZWQgaG9vayIsCiAgICBidTogImJlZm9yZVVwZGF0ZSBob29rIiwKICAgIHU6ICJ1cGRhdGVkIiwKICAgIGJ1bTogImJlZm9yZVVubW91bnQgaG9vayIsCiAgICB1bTogInVubW91bnRlZCBob29rIiwKICAgIGE6ICJhY3RpdmF0ZWQgaG9vayIsCiAgICBkYTogImRlYWN0aXZhdGVkIGhvb2siLAogICAgZWM6ICJlcnJvckNhcHR1cmVkIGhvb2siLAogICAgcnRjOiAicmVuZGVyVHJhY2tlZCBob29rIiwKICAgIHJ0ZzogInJlbmRlclRyaWdnZXJlZCBob29rIiwKICAgIDA6ICJzZXR1cCBmdW5jdGlvbiIsCiAgICAxOiAicmVuZGVyIGZ1bmN0aW9uIiwKICAgIDI6ICJ3YXRjaGVyIGdldHRlciIsCiAgICAzOiAid2F0Y2hlciBjYWxsYmFjayIsCiAgICA0OiAid2F0Y2hlciBjbGVhbnVwIGZ1bmN0aW9uIiwKICAgIDU6ICJuYXRpdmUgZXZlbnQgaGFuZGxlciIsCiAgICA2OiAiY29tcG9uZW50IGV2ZW50IGhhbmRsZXIiLAogICAgNzogInZub2RlIGhvb2siLAogICAgODogImRpcmVjdGl2ZSBob29rIiwKICAgIDk6ICJ0cmFuc2l0aW9uIGhvb2siLAogICAgMTA6ICJhcHAgZXJyb3JIYW5kbGVyIiwKICAgIDExOiAiYXBwIHdhcm5IYW5kbGVyIiwKICAgIDEyOiAicmVmIGZ1bmN0aW9uIiwKICAgIDEzOiAiYXN5bmMgY29tcG9uZW50IGxvYWRlciIsCiAgICAxNDogInNjaGVkdWxlciBmbHVzaCIsCiAgICAxNTogImNvbXBvbmVudCB1cGRhdGUiLAogICAgMTY6ICJhcHAgdW5tb3VudCBjbGVhbnVwIGZ1bmN0aW9uIiwKICB9OwpmdW5jdGlvbiBjYWxsV2l0aEVycm9ySGFuZGxpbmcoZSwgdCwgciwgbikgewogIHRyeSB7CiAgICByZXR1cm4gbiA/IGUoLi4ubikgOiBlKCk7CiAgfSBjYXRjaCAoaSkgewogICAgaGFuZGxlRXJyb3IoaSwgdCwgcik7CiAgfQp9CmZ1bmN0aW9uIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGUsIHQsIHIsIG4pIHsKICBpZiAoaXNGdW5jdGlvbiQxKGUpKSB7CiAgICBjb25zdCBpID0gY2FsbFdpdGhFcnJvckhhbmRsaW5nKGUsIHQsIHIsIG4pOwogICAgcmV0dXJuICgKICAgICAgaSAmJgogICAgICBpc1Byb21pc2UkMShpKSAmJgogICAgICBpLmNhdGNoKChhKSA9PiB7CiAgICAgICAgaGFuZGxlRXJyb3IoYSwgdCwgcik7CiAgICAgIH0pLAogICAgICBpCiAgICApOwogIH0KICBpZiAoaXNBcnJheSQyKGUpKSB7CiAgICBjb25zdCBpID0gW107CiAgICBmb3IgKGxldCBhID0gMDsgYSA8IGUubGVuZ3RoOyBhKyspCiAgICAgIGkucHVzaChjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhlW2FdLCB0LCByLCBuKSk7CiAgICByZXR1cm4gaTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlRXJyb3IoZSwgdCwgciwgbiA9ICEwKSB7CiAgY29uc3QgaSA9IHQgPyB0LnZub2RlIDogbnVsbCwKICAgIHsgZXJyb3JIYW5kbGVyOiBhLCB0aHJvd1VuaGFuZGxlZEVycm9ySW5Qcm9kdWN0aW9uOiBvIH0gPQogICAgICAodCAmJiB0LmFwcENvbnRleHQuY29uZmlnKSB8fCBFTVBUWV9PQko7CiAgaWYgKHQpIHsKICAgIGxldCBsID0gdC5wYXJlbnQ7CiAgICBjb25zdCBjID0gdC5wcm94eSwKICAgICAgdSA9IGBodHRwczovL3Z1ZWpzLm9yZy9lcnJvci1yZWZlcmVuY2UvI3J1bnRpbWUtJHtyfWA7CiAgICBmb3IgKDsgbDspIHsKICAgICAgY29uc3QgZCA9IGwuZWM7CiAgICAgIGlmIChkKSB7CiAgICAgICAgZm9yIChsZXQgRSA9IDA7IEUgPCBkLmxlbmd0aDsgRSsrKSBpZiAoZFtFXShlLCBjLCB1KSA9PT0gITEpIHJldHVybjsKICAgICAgfQogICAgICBsID0gbC5wYXJlbnQ7CiAgICB9CiAgICBpZiAoYSkgewogICAgICBwYXVzZVRyYWNraW5nKCksCiAgICAgICAgY2FsbFdpdGhFcnJvckhhbmRsaW5nKGEsIG51bGwsIDEwLCBbZSwgYywgdV0pLAogICAgICAgIHJlc2V0VHJhY2tpbmcoKTsKICAgICAgcmV0dXJuOwogICAgfQogIH0KICBsb2dFcnJvcihlLCByLCBpLCBuLCBvKTsKfQpmdW5jdGlvbiBsb2dFcnJvcihlLCB0LCByLCBuID0gITAsIGkgPSAhMSkgewogIGlmIChpKSB0aHJvdyBlOwogIGNvbnNvbGUuZXJyb3IoZSk7Cn0KY29uc3QgcXVldWUgPSBbXTsKbGV0IGZsdXNoSW5kZXggPSAtMTsKY29uc3QgcGVuZGluZ1Bvc3RGbHVzaENicyA9IFtdOwpsZXQgYWN0aXZlUG9zdEZsdXNoQ2JzID0gbnVsbCwKICBwb3N0Rmx1c2hJbmRleCA9IDA7CmNvbnN0IHJlc29sdmVkUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOwpsZXQgY3VycmVudEZsdXNoUHJvbWlzZSA9IG51bGw7CmZ1bmN0aW9uIG5leHRUaWNrKGUpIHsKICBjb25zdCB0ID0gY3VycmVudEZsdXNoUHJvbWlzZSB8fCByZXNvbHZlZFByb21pc2U7CiAgcmV0dXJuIGUgPyB0LnRoZW4odGhpcyA/IGUuYmluZCh0aGlzKSA6IGUpIDogdDsKfQpmdW5jdGlvbiBmaW5kSW5zZXJ0aW9uSW5kZXgkMShlKSB7CiAgbGV0IHQgPSBmbHVzaEluZGV4ICsgMSwKICAgIHIgPSBxdWV1ZS5sZW5ndGg7CiAgZm9yICg7IHQgPCByOykgewogICAgY29uc3QgbiA9ICh0ICsgcikgPj4+IDEsCiAgICAgIGkgPSBxdWV1ZVtuXSwKICAgICAgYSA9IGdldElkKGkpOwogICAgYSA8IGUgfHwgKGEgPT09IGUgJiYgaS5mbGFncyAmIDIpID8gKHQgPSBuICsgMSkgOiAociA9IG4pOwogIH0KICByZXR1cm4gdDsKfQpmdW5jdGlvbiBxdWV1ZUpvYihlKSB7CiAgaWYgKCEoZS5mbGFncyAmIDEpKSB7CiAgICBjb25zdCB0ID0gZ2V0SWQoZSksCiAgICAgIHIgPSBxdWV1ZVtxdWV1ZS5sZW5ndGggLSAxXTsKICAgICFyIHx8ICghKGUuZmxhZ3MgJiAyKSAmJiB0ID49IGdldElkKHIpKQogICAgICA/IHF1ZXVlLnB1c2goZSkKICAgICAgOiBxdWV1ZS5zcGxpY2UoZmluZEluc2VydGlvbkluZGV4JDEodCksIDAsIGUpLAogICAgICAoZS5mbGFncyB8PSAxKSwKICAgICAgcXVldWVGbHVzaCgpOwogIH0KfQpmdW5jdGlvbiBxdWV1ZUZsdXNoKCkgewogIGN1cnJlbnRGbHVzaFByb21pc2UgfHwKICAgIChjdXJyZW50Rmx1c2hQcm9taXNlID0gcmVzb2x2ZWRQcm9taXNlLnRoZW4oZmx1c2hKb2JzKSk7Cn0KZnVuY3Rpb24gcXVldWVQb3N0Rmx1c2hDYihlKSB7CiAgaXNBcnJheSQyKGUpCiAgICA/IHBlbmRpbmdQb3N0Rmx1c2hDYnMucHVzaCguLi5lKQogICAgOiBhY3RpdmVQb3N0Rmx1c2hDYnMgJiYgZS5pZCA9PT0gLTEKICAgICAgPyBhY3RpdmVQb3N0Rmx1c2hDYnMuc3BsaWNlKHBvc3RGbHVzaEluZGV4ICsgMSwgMCwgZSkKICAgICAgOiBlLmZsYWdzICYgMSB8fCAocGVuZGluZ1Bvc3RGbHVzaENicy5wdXNoKGUpLCAoZS5mbGFncyB8PSAxKSksCiAgICBxdWV1ZUZsdXNoKCk7Cn0KZnVuY3Rpb24gZmx1c2hQcmVGbHVzaENicyhlLCB0LCByID0gZmx1c2hJbmRleCArIDEpIHsKICBmb3IgKDsgciA8IHF1ZXVlLmxlbmd0aDsgcisrKSB7CiAgICBjb25zdCBuID0gcXVldWVbcl07CiAgICBpZiAobiAmJiBuLmZsYWdzICYgMikgewogICAgICBpZiAoZSAmJiBuLmlkICE9PSBlLnVpZCkgY29udGludWU7CiAgICAgIHF1ZXVlLnNwbGljZShyLCAxKSwKICAgICAgICByLS0sCiAgICAgICAgbi5mbGFncyAmIDQgJiYgKG4uZmxhZ3MgJj0gLTIpLAogICAgICAgIG4oKSwKICAgICAgICBuLmZsYWdzICYgNCB8fCAobi5mbGFncyAmPSAtMik7CiAgICB9CiAgfQp9CmZ1bmN0aW9uIGZsdXNoUG9zdEZsdXNoQ2JzKGUpIHsKICBpZiAocGVuZGluZ1Bvc3RGbHVzaENicy5sZW5ndGgpIHsKICAgIGNvbnN0IHQgPSBbLi4ubmV3IFNldChwZW5kaW5nUG9zdEZsdXNoQ2JzKV0uc29ydCgKICAgICAgKHIsIG4pID0+IGdldElkKHIpIC0gZ2V0SWQobikKICAgICk7CiAgICBpZiAoKChwZW5kaW5nUG9zdEZsdXNoQ2JzLmxlbmd0aCA9IDApLCBhY3RpdmVQb3N0Rmx1c2hDYnMpKSB7CiAgICAgIGFjdGl2ZVBvc3RGbHVzaENicy5wdXNoKC4uLnQpOwogICAgICByZXR1cm47CiAgICB9CiAgICBmb3IgKAogICAgICBhY3RpdmVQb3N0Rmx1c2hDYnMgPSB0LCBwb3N0Rmx1c2hJbmRleCA9IDA7CiAgICAgIHBvc3RGbHVzaEluZGV4IDwgYWN0aXZlUG9zdEZsdXNoQ2JzLmxlbmd0aDsKICAgICAgcG9zdEZsdXNoSW5kZXgrKwogICAgKSB7CiAgICAgIGNvbnN0IHIgPSBhY3RpdmVQb3N0Rmx1c2hDYnNbcG9zdEZsdXNoSW5kZXhdOwogICAgICByLmZsYWdzICYgNCAmJiAoci5mbGFncyAmPSAtMiksIHIuZmxhZ3MgJiA4IHx8IHIoKSwgKHIuZmxhZ3MgJj0gLTIpOwogICAgfQogICAgKGFjdGl2ZVBvc3RGbHVzaENicyA9IG51bGwpLCAocG9zdEZsdXNoSW5kZXggPSAwKTsKICB9Cn0KY29uc3QgZ2V0SWQgPSAoZSkgPT4gKGUuaWQgPT0gbnVsbCA/IChlLmZsYWdzICYgMiA/IC0xIDogMSAvIDApIDogZS5pZCk7CmZ1bmN0aW9uIGZsdXNoSm9icyhlKSB7CiAgdHJ5IHsKICAgIGZvciAoZmx1c2hJbmRleCA9IDA7IGZsdXNoSW5kZXggPCBxdWV1ZS5sZW5ndGg7IGZsdXNoSW5kZXgrKykgewogICAgICBjb25zdCB0ID0gcXVldWVbZmx1c2hJbmRleF07CiAgICAgIHQgJiYKICAgICAgICAhKHQuZmxhZ3MgJiA4KSAmJgogICAgICAgICh0LmZsYWdzICYgNCAmJiAodC5mbGFncyAmPSAtMiksCiAgICAgICAgICBjYWxsV2l0aEVycm9ySGFuZGxpbmcodCwgdC5pLCB0LmkgPyAxNSA6IDE0KSwKICAgICAgICAgIHQuZmxhZ3MgJiA0IHx8ICh0LmZsYWdzICY9IC0yKSk7CiAgICB9CiAgfSBmaW5hbGx5IHsKICAgIGZvciAoOyBmbHVzaEluZGV4IDwgcXVldWUubGVuZ3RoOyBmbHVzaEluZGV4KyspIHsKICAgICAgY29uc3QgdCA9IHF1ZXVlW2ZsdXNoSW5kZXhdOwogICAgICB0ICYmICh0LmZsYWdzICY9IC0yKTsKICAgIH0KICAgIChmbHVzaEluZGV4ID0gLTEpLAogICAgICAocXVldWUubGVuZ3RoID0gMCksCiAgICAgIGZsdXNoUG9zdEZsdXNoQ2JzKCksCiAgICAgIChjdXJyZW50Rmx1c2hQcm9taXNlID0gbnVsbCksCiAgICAgIChxdWV1ZS5sZW5ndGggfHwgcGVuZGluZ1Bvc3RGbHVzaENicy5sZW5ndGgpICYmIGZsdXNoSm9icygpOwogIH0KfQpsZXQgZGV2dG9vbHMkMSwKICBidWZmZXIgPSBbXTsKZnVuY3Rpb24gc2V0RGV2dG9vbHNIb29rJDEoZSwgdCkgewogIHZhciByLCBuOwogIChkZXZ0b29scyQxID0gZSksCiAgICBkZXZ0b29scyQxCiAgICAgID8gKChkZXZ0b29scyQxLmVuYWJsZWQgPSAhMCksCiAgICAgICAgYnVmZmVyLmZvckVhY2goKHsgZXZlbnQ6IGksIGFyZ3M6IGEgfSkgPT4gZGV2dG9vbHMkMS5lbWl0KGksIC4uLmEpKSwKICAgICAgICAoYnVmZmVyID0gW10pKQogICAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIgJiYKICAgICAgICB3aW5kb3cuSFRNTEVsZW1lbnQgJiYKICAgICAgICAhKAogICAgICAgICAgKG4gPSAociA9IHdpbmRvdy5uYXZpZ2F0b3IpID09IG51bGwgPyB2b2lkIDAgOiByLnVzZXJBZ2VudCkgIT0gbnVsbCAmJgogICAgICAgICAgbi5pbmNsdWRlcygianNkb20iKQogICAgICAgICkKICAgICAgICA/ICgodC5fX1ZVRV9ERVZUT09MU19IT09LX1JFUExBWV9fID0KICAgICAgICAgIHQuX19WVUVfREVWVE9PTFNfSE9PS19SRVBMQVlfXyB8fCBbXSkucHVzaCgoYSkgPT4gewogICAgICAgICAgICBzZXREZXZ0b29sc0hvb2skMShhLCB0KTsKICAgICAgICAgIH0pLAogICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGRldnRvb2xzJDEgfHwKICAgICAgICAgICAgICAoKHQuX19WVUVfREVWVE9PTFNfSE9PS19SRVBMQVlfXyA9IG51bGwpLCAoYnVmZmVyID0gW10pKTsKICAgICAgICAgIH0sIDNlMykpCiAgICAgICAgOiAoYnVmZmVyID0gW10pOwp9CmxldCBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSBudWxsLAogIGN1cnJlbnRTY29wZUlkID0gbnVsbDsKZnVuY3Rpb24gc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKGUpIHsKICBjb25zdCB0ID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlOwogIHJldHVybiAoCiAgICAoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID0gZSksCiAgICAoY3VycmVudFNjb3BlSWQgPSAoZSAmJiBlLnR5cGUuX19zY29wZUlkKSB8fCBudWxsKSwKICAgIHQKICApOwp9CmZ1bmN0aW9uIHB1c2hTY29wZUlkKGUpIHsKICBjdXJyZW50U2NvcGVJZCA9IGU7Cn0KZnVuY3Rpb24gcG9wU2NvcGVJZCgpIHsKICBjdXJyZW50U2NvcGVJZCA9IG51bGw7Cn0KY29uc3Qgd2l0aFNjb3BlSWQgPSAoZSkgPT4gd2l0aEN0eDsKZnVuY3Rpb24gd2l0aEN0eChlLCB0ID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLCByKSB7CiAgaWYgKCF0IHx8IGUuX24pIHJldHVybiBlOwogIGNvbnN0IG4gPSAoLi4uaSkgPT4gewogICAgbi5fZCAmJiBzZXRCbG9ja1RyYWNraW5nKC0xKTsKICAgIGNvbnN0IGEgPSBzZXRDdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UodCk7CiAgICBsZXQgbzsKICAgIHRyeSB7CiAgICAgIG8gPSBlKC4uLmkpOwogICAgfSBmaW5hbGx5IHsKICAgICAgc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKGEpLCBuLl9kICYmIHNldEJsb2NrVHJhY2tpbmcoMSk7CiAgICB9CiAgICByZXR1cm4gbzsKICB9OwogIHJldHVybiAobi5fbiA9ICEwKSwgKG4uX2MgPSAhMCksIChuLl9kID0gITApLCBuOwp9CmZ1bmN0aW9uIHdpdGhEaXJlY3RpdmVzKGUsIHQpIHsKICBpZiAoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID09PSBudWxsKSByZXR1cm4gZTsKICBjb25zdCByID0gZ2V0Q29tcG9uZW50UHVibGljSW5zdGFuY2UoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlKSwKICAgIG4gPSBlLmRpcnMgfHwgKGUuZGlycyA9IFtdKTsKICBmb3IgKGxldCBpID0gMDsgaSA8IHQubGVuZ3RoOyBpKyspIHsKICAgIGxldCBbYSwgbywgbCwgYyA9IEVNUFRZX09CSl0gPSB0W2ldOwogICAgYSAmJgogICAgICAoaXNGdW5jdGlvbiQxKGEpICYmIChhID0geyBtb3VudGVkOiBhLCB1cGRhdGVkOiBhIH0pLAogICAgICAgIGEuZGVlcCAmJiB0cmF2ZXJzZShvKSwKICAgICAgICBuLnB1c2goewogICAgICAgICAgZGlyOiBhLAogICAgICAgICAgaW5zdGFuY2U6IHIsCiAgICAgICAgICB2YWx1ZTogbywKICAgICAgICAgIG9sZFZhbHVlOiB2b2lkIDAsCiAgICAgICAgICBhcmc6IGwsCiAgICAgICAgICBtb2RpZmllcnM6IGMsCiAgICAgICAgfSkpOwogIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiBpbnZva2VEaXJlY3RpdmVIb29rKGUsIHQsIHIsIG4pIHsKICBjb25zdCBpID0gZS5kaXJzLAogICAgYSA9IHQgJiYgdC5kaXJzOwogIGZvciAobGV0IG8gPSAwOyBvIDwgaS5sZW5ndGg7IG8rKykgewogICAgY29uc3QgbCA9IGlbb107CiAgICBhICYmIChsLm9sZFZhbHVlID0gYVtvXS52YWx1ZSk7CiAgICBsZXQgYyA9IGwuZGlyW25dOwogICAgYyAmJgogICAgICAocGF1c2VUcmFja2luZygpLAogICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGMsIHIsIDgsIFtlLmVsLCBsLCBlLCB0XSksCiAgICAgICAgcmVzZXRUcmFja2luZygpKTsKICB9Cn0KY29uc3QgVGVsZXBvcnRFbmRLZXkgPSBTeW1ib2woIl92dGUiKSwKICBpc1RlbGVwb3J0ID0gKGUpID0+IGUuX19pc1RlbGVwb3J0LAogIGlzVGVsZXBvcnREaXNhYmxlZCA9IChlKSA9PiBlICYmIChlLmRpc2FibGVkIHx8IGUuZGlzYWJsZWQgPT09ICIiKSwKICBpc1RlbGVwb3J0RGVmZXJyZWQgPSAoZSkgPT4gZSAmJiAoZS5kZWZlciB8fCBlLmRlZmVyID09PSAiIiksCiAgaXNUYXJnZXRTVkcgPSAoZSkgPT4gdHlwZW9mIFNWR0VsZW1lbnQgPCAidSIgJiYgZSBpbnN0YW5jZW9mIFNWR0VsZW1lbnQsCiAgaXNUYXJnZXRNYXRoTUwgPSAoZSkgPT4KICAgIHR5cGVvZiBNYXRoTUxFbGVtZW50ID09ICJmdW5jdGlvbiIgJiYgZSBpbnN0YW5jZW9mIE1hdGhNTEVsZW1lbnQsCiAgcmVzb2x2ZVRhcmdldCA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZSAmJiBlLnRvOwogICAgcmV0dXJuIGlzU3RyaW5nJDEocikgPyAodCA/IHQocikgOiBudWxsKSA6IHI7CiAgfSwKICBUZWxlcG9ydEltcGwgPSB7CiAgICBuYW1lOiAiVGVsZXBvcnQiLAogICAgX19pc1RlbGVwb3J0OiAhMCwKICAgIHByb2Nlc3MoZSwgdCwgciwgbiwgaSwgYSwgbywgbCwgYywgdSkgewogICAgICBjb25zdCB7CiAgICAgICAgbWM6IGQsCiAgICAgICAgcGM6IEUsCiAgICAgICAgcGJjOiBiLAogICAgICAgIG86IHsgaW5zZXJ0OiBQLCBxdWVyeVNlbGVjdG9yOiBSLCBjcmVhdGVUZXh0OiBULCBjcmVhdGVDb21tZW50OiBNIH0sCiAgICAgIH0gPSB1LAogICAgICAgIHggPSBpc1RlbGVwb3J0RGlzYWJsZWQodC5wcm9wcyk7CiAgICAgIGxldCB7IHNoYXBlRmxhZzogaywgY2hpbGRyZW46IFMsIGR5bmFtaWNDaGlsZHJlbjogQSB9ID0gdDsKICAgICAgaWYgKGUgPT0gbnVsbCkgewogICAgICAgIGNvbnN0IE8gPSAodC5lbCA9IFQoIiIpKSwKICAgICAgICAgIEYgPSAodC5hbmNob3IgPSBUKCIiKSk7CiAgICAgICAgUChPLCByLCBuKSwgUChGLCByLCBuKTsKICAgICAgICBjb25zdCBEID0gKCQsIHEpID0+IHsKICAgICAgICAgIGsgJiAxNiAmJgogICAgICAgICAgICAoaSAmJiBpLmlzQ0UgJiYgKGkuY2UuX3RlbGVwb3J0VGFyZ2V0ID0gJCksCiAgICAgICAgICAgICAgZChTLCAkLCBxLCBpLCBhLCBvLCBsLCBjKSk7CiAgICAgICAgfSwKICAgICAgICAgIEggPSAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0ICQgPSAodC50YXJnZXQgPSByZXNvbHZlVGFyZ2V0KHQucHJvcHMsIFIpKSwKICAgICAgICAgICAgICBxID0gcHJlcGFyZUFuY2hvcigkLCB0LCBULCBQKTsKICAgICAgICAgICAgJCAmJgogICAgICAgICAgICAgIChvICE9PSAic3ZnIiAmJiBpc1RhcmdldFNWRygkKQogICAgICAgICAgICAgICAgPyAobyA9ICJzdmciKQogICAgICAgICAgICAgICAgOiBvICE9PSAibWF0aG1sIiAmJiBpc1RhcmdldE1hdGhNTCgkKSAmJiAobyA9ICJtYXRobWwiKSwKICAgICAgICAgICAgICAgIHggfHwgKEQoJCwgcSksIHVwZGF0ZUNzc1ZhcnModCwgITEpKSk7CiAgICAgICAgICB9OwogICAgICAgIHggJiYgKEQociwgRiksIHVwZGF0ZUNzc1ZhcnModCwgITApKSwKICAgICAgICAgIGlzVGVsZXBvcnREZWZlcnJlZCh0LnByb3BzKQogICAgICAgICAgICA/IHF1ZXVlUG9zdFJlbmRlckVmZmVjdCgoKSA9PiB7CiAgICAgICAgICAgICAgSCgpLCAodC5lbC5fX2lzTW91bnRlZCA9ICEwKTsKICAgICAgICAgICAgfSwgYSkKICAgICAgICAgICAgOiBIKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGlzVGVsZXBvcnREZWZlcnJlZCh0LnByb3BzKSAmJiAhZS5lbC5fX2lzTW91bnRlZCkgewogICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IHsKICAgICAgICAgICAgVGVsZXBvcnRJbXBsLnByb2Nlc3MoZSwgdCwgciwgbiwgaSwgYSwgbywgbCwgYywgdSksCiAgICAgICAgICAgICAgZGVsZXRlIGUuZWwuX19pc01vdW50ZWQ7CiAgICAgICAgICB9LCBhKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgKHQuZWwgPSBlLmVsKSwgKHQudGFyZ2V0U3RhcnQgPSBlLnRhcmdldFN0YXJ0KTsKICAgICAgICBjb25zdCBPID0gKHQuYW5jaG9yID0gZS5hbmNob3IpLAogICAgICAgICAgRiA9ICh0LnRhcmdldCA9IGUudGFyZ2V0KSwKICAgICAgICAgIEQgPSAodC50YXJnZXRBbmNob3IgPSBlLnRhcmdldEFuY2hvciksCiAgICAgICAgICBIID0gaXNUZWxlcG9ydERpc2FibGVkKGUucHJvcHMpLAogICAgICAgICAgJCA9IEggPyByIDogRiwKICAgICAgICAgIHEgPSBIID8gTyA6IEQ7CiAgICAgICAgaWYgKAogICAgICAgICAgKG8gPT09ICJzdmciIHx8IGlzVGFyZ2V0U1ZHKEYpCiAgICAgICAgICAgID8gKG8gPSAic3ZnIikKICAgICAgICAgICAgOiAobyA9PT0gIm1hdGhtbCIgfHwgaXNUYXJnZXRNYXRoTUwoRikpICYmIChvID0gIm1hdGhtbCIpLAogICAgICAgICAgICBBCiAgICAgICAgICAgICAgPyAoYihlLmR5bmFtaWNDaGlsZHJlbiwgQSwgJCwgaSwgYSwgbywgbCksCiAgICAgICAgICAgICAgICB0cmF2ZXJzZVN0YXRpY0NoaWxkcmVuKGUsIHQsICEwKSkKICAgICAgICAgICAgICA6IGMgfHwgRShlLCB0LCAkLCBxLCBpLCBhLCBvLCBsLCAhMSksCiAgICAgICAgICAgIHgpCiAgICAgICAgKQogICAgICAgICAgSAogICAgICAgICAgICA/IHQucHJvcHMgJiYKICAgICAgICAgICAgZS5wcm9wcyAmJgogICAgICAgICAgICB0LnByb3BzLnRvICE9PSBlLnByb3BzLnRvICYmCiAgICAgICAgICAgICh0LnByb3BzLnRvID0gZS5wcm9wcy50bykKICAgICAgICAgICAgOiBtb3ZlVGVsZXBvcnQodCwgciwgTywgdSwgMSk7CiAgICAgICAgZWxzZSBpZiAoKHQucHJvcHMgJiYgdC5wcm9wcy50bykgIT09IChlLnByb3BzICYmIGUucHJvcHMudG8pKSB7CiAgICAgICAgICBjb25zdCBKID0gKHQudGFyZ2V0ID0gcmVzb2x2ZVRhcmdldCh0LnByb3BzLCBSKSk7CiAgICAgICAgICBKICYmIG1vdmVUZWxlcG9ydCh0LCBKLCBudWxsLCB1LCAwKTsKICAgICAgICB9IGVsc2UgSCAmJiBtb3ZlVGVsZXBvcnQodCwgRiwgRCwgdSwgMSk7CiAgICAgICAgdXBkYXRlQ3NzVmFycyh0LCB4KTsKICAgICAgfQogICAgfSwKICAgIHJlbW92ZShlLCB0LCByLCB7IHVtOiBuLCBvOiB7IHJlbW92ZTogaSB9IH0sIGEpIHsKICAgICAgY29uc3QgewogICAgICAgIHNoYXBlRmxhZzogbywKICAgICAgICBjaGlsZHJlbjogbCwKICAgICAgICBhbmNob3I6IGMsCiAgICAgICAgdGFyZ2V0U3RhcnQ6IHUsCiAgICAgICAgdGFyZ2V0QW5jaG9yOiBkLAogICAgICAgIHRhcmdldDogRSwKICAgICAgICBwcm9wczogYiwKICAgICAgfSA9IGU7CiAgICAgIGlmICgoRSAmJiAoaSh1KSwgaShkKSksIGEgJiYgaShjKSwgbyAmIDE2KSkgewogICAgICAgIGNvbnN0IFAgPSBhIHx8ICFpc1RlbGVwb3J0RGlzYWJsZWQoYik7CiAgICAgICAgZm9yIChsZXQgUiA9IDA7IFIgPCBsLmxlbmd0aDsgUisrKSB7CiAgICAgICAgICBjb25zdCBUID0gbFtSXTsKICAgICAgICAgIG4oVCwgdCwgciwgUCwgISFULmR5bmFtaWNDaGlsZHJlbik7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgbW92ZTogbW92ZVRlbGVwb3J0LAogICAgaHlkcmF0ZTogaHlkcmF0ZVRlbGVwb3J0LAogIH07CmZ1bmN0aW9uIG1vdmVUZWxlcG9ydChlLCB0LCByLCB7IG86IHsgaW5zZXJ0OiBuIH0sIG06IGkgfSwgYSA9IDIpIHsKICBhID09PSAwICYmIG4oZS50YXJnZXRBbmNob3IsIHQsIHIpOwogIGNvbnN0IHsgZWw6IG8sIGFuY2hvcjogbCwgc2hhcGVGbGFnOiBjLCBjaGlsZHJlbjogdSwgcHJvcHM6IGQgfSA9IGUsCiAgICBFID0gYSA9PT0gMjsKICBpZiAoKEUgJiYgbihvLCB0LCByKSwgKCFFIHx8IGlzVGVsZXBvcnREaXNhYmxlZChkKSkgJiYgYyAmIDE2KSkKICAgIGZvciAobGV0IGIgPSAwOyBiIDwgdS5sZW5ndGg7IGIrKykgaSh1W2JdLCB0LCByLCAyKTsKICBFICYmIG4obCwgdCwgcik7Cn0KZnVuY3Rpb24gaHlkcmF0ZVRlbGVwb3J0KAogIGUsCiAgdCwKICByLAogIG4sCiAgaSwKICBhLAogIHsKICAgIG86IHsKICAgICAgbmV4dFNpYmxpbmc6IG8sCiAgICAgIHBhcmVudE5vZGU6IGwsCiAgICAgIHF1ZXJ5U2VsZWN0b3I6IGMsCiAgICAgIGluc2VydDogdSwKICAgICAgY3JlYXRlVGV4dDogZCwKICAgIH0sCiAgfSwKICBFCikgewogIGNvbnN0IGIgPSAodC50YXJnZXQgPSByZXNvbHZlVGFyZ2V0KHQucHJvcHMsIGMpKTsKICBpZiAoYikgewogICAgY29uc3QgUCA9IGlzVGVsZXBvcnREaXNhYmxlZCh0LnByb3BzKSwKICAgICAgUiA9IGIuX2xwYSB8fCBiLmZpcnN0Q2hpbGQ7CiAgICBpZiAodC5zaGFwZUZsYWcgJiAxNikKICAgICAgaWYgKFApCiAgICAgICAgKHQuYW5jaG9yID0gRShvKGUpLCB0LCBsKGUpLCByLCBuLCBpLCBhKSksCiAgICAgICAgICAodC50YXJnZXRTdGFydCA9IFIpLAogICAgICAgICAgKHQudGFyZ2V0QW5jaG9yID0gUiAmJiBvKFIpKTsKICAgICAgZWxzZSB7CiAgICAgICAgdC5hbmNob3IgPSBvKGUpOwogICAgICAgIGxldCBUID0gUjsKICAgICAgICBmb3IgKDsgVDspIHsKICAgICAgICAgIGlmIChUICYmIFQubm9kZVR5cGUgPT09IDgpIHsKICAgICAgICAgICAgaWYgKFQuZGF0YSA9PT0gInRlbGVwb3J0IHN0YXJ0IGFuY2hvciIpIHQudGFyZ2V0U3RhcnQgPSBUOwogICAgICAgICAgICBlbHNlIGlmIChULmRhdGEgPT09ICJ0ZWxlcG9ydCBhbmNob3IiKSB7CiAgICAgICAgICAgICAgKHQudGFyZ2V0QW5jaG9yID0gVCksCiAgICAgICAgICAgICAgICAoYi5fbHBhID0gdC50YXJnZXRBbmNob3IgJiYgbyh0LnRhcmdldEFuY2hvcikpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBUID0gbyhUKTsKICAgICAgICB9CiAgICAgICAgdC50YXJnZXRBbmNob3IgfHwgcHJlcGFyZUFuY2hvcihiLCB0LCBkLCB1KSwKICAgICAgICAgIEUoUiAmJiBvKFIpLCB0LCBiLCByLCBuLCBpLCBhKTsKICAgICAgfQogICAgdXBkYXRlQ3NzVmFycyh0LCBQKTsKICB9CiAgcmV0dXJuIHQuYW5jaG9yICYmIG8odC5hbmNob3IpOwp9CmNvbnN0IFRlbGVwb3J0ID0gVGVsZXBvcnRJbXBsOwpmdW5jdGlvbiB1cGRhdGVDc3NWYXJzKGUsIHQpIHsKICBjb25zdCByID0gZS5jdHg7CiAgaWYgKHIgJiYgci51dCkgewogICAgbGV0IG4sIGk7CiAgICBmb3IgKAogICAgICB0CiAgICAgICAgPyAoKG4gPSBlLmVsKSwgKGkgPSBlLmFuY2hvcikpCiAgICAgICAgOiAoKG4gPSBlLnRhcmdldFN0YXJ0KSwgKGkgPSBlLnRhcmdldEFuY2hvcikpOwogICAgICBuICYmIG4gIT09IGk7CgogICAgKQogICAgICBuLm5vZGVUeXBlID09PSAxICYmIG4uc2V0QXR0cmlidXRlKCJkYXRhLXYtb3duZXIiLCByLnVpZCksCiAgICAgICAgKG4gPSBuLm5leHRTaWJsaW5nKTsKICAgIHIudXQoKTsKICB9Cn0KZnVuY3Rpb24gcHJlcGFyZUFuY2hvcihlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9ICh0LnRhcmdldFN0YXJ0ID0gcigiIikpLAogICAgYSA9ICh0LnRhcmdldEFuY2hvciA9IHIoIiIpKTsKICByZXR1cm4gKGlbVGVsZXBvcnRFbmRLZXldID0gYSksIGUgJiYgKG4oaSwgZSksIG4oYSwgZSkpLCBhOwp9CmNvbnN0IGxlYXZlQ2JLZXkgPSBTeW1ib2woIl9sZWF2ZUNiIiksCiAgZW50ZXJDYktleSQxID0gU3ltYm9sKCJfZW50ZXJDYiIpOwpmdW5jdGlvbiB1c2VUcmFuc2l0aW9uU3RhdGUoKSB7CiAgY29uc3QgZSA9IHsKICAgIGlzTW91bnRlZDogITEsCiAgICBpc0xlYXZpbmc6ICExLAogICAgaXNVbm1vdW50aW5nOiAhMSwKICAgIGxlYXZpbmdWTm9kZXM6IG5ldyBNYXAoKSwKICB9OwogIHJldHVybiAoCiAgICBvbk1vdW50ZWQoKCkgPT4gewogICAgICBlLmlzTW91bnRlZCA9ICEwOwogICAgfSksCiAgICBvbkJlZm9yZVVubW91bnQoKCkgPT4gewogICAgICBlLmlzVW5tb3VudGluZyA9ICEwOwogICAgfSksCiAgICBlCiAgKTsKfQpjb25zdCBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciA9IFtGdW5jdGlvbiwgQXJyYXldLAogIEJhc2VUcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzID0gewogICAgbW9kZTogU3RyaW5nLAogICAgYXBwZWFyOiBCb29sZWFuLAogICAgcGVyc2lzdGVkOiBCb29sZWFuLAogICAgb25CZWZvcmVFbnRlcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkVudGVyOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICAgIG9uQWZ0ZXJFbnRlcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkVudGVyQ2FuY2VsbGVkOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICAgIG9uQmVmb3JlTGVhdmU6IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yLAogICAgb25MZWF2ZTogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkFmdGVyTGVhdmU6IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yLAogICAgb25MZWF2ZUNhbmNlbGxlZDogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkJlZm9yZUFwcGVhcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkFwcGVhcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkFmdGVyQXBwZWFyOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICAgIG9uQXBwZWFyQ2FuY2VsbGVkOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICB9LAogIHJlY3Vyc2l2ZUdldFN1YnRyZWUgPSAoZSkgPT4gewogICAgY29uc3QgdCA9IGUuc3ViVHJlZTsKICAgIHJldHVybiB0LmNvbXBvbmVudCA/IHJlY3Vyc2l2ZUdldFN1YnRyZWUodC5jb21wb25lbnQpIDogdDsKICB9LAogIEJhc2VUcmFuc2l0aW9uSW1wbCA9IHsKICAgIG5hbWU6ICJCYXNlVHJhbnNpdGlvbiIsCiAgICBwcm9wczogQmFzZVRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsCiAgICBzZXR1cChlLCB7IHNsb3RzOiB0IH0pIHsKICAgICAgY29uc3QgciA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICAgICAgbiA9IHVzZVRyYW5zaXRpb25TdGF0ZSgpOwogICAgICByZXR1cm4gKCkgPT4gewogICAgICAgIGNvbnN0IGkgPSB0LmRlZmF1bHQgJiYgZ2V0VHJhbnNpdGlvblJhd0NoaWxkcmVuKHQuZGVmYXVsdCgpLCAhMCk7CiAgICAgICAgaWYgKCFpIHx8ICFpLmxlbmd0aCkgcmV0dXJuOwogICAgICAgIGNvbnN0IGEgPSBmaW5kTm9uQ29tbWVudENoaWxkKGkpLAogICAgICAgICAgbyA9IHRvUmF3KGUpLAogICAgICAgICAgeyBtb2RlOiBsIH0gPSBvOwogICAgICAgIGlmIChuLmlzTGVhdmluZykgcmV0dXJuIGVtcHR5UGxhY2Vob2xkZXIoYSk7CiAgICAgICAgY29uc3QgYyA9IGdldElubmVyQ2hpbGQkMShhKTsKICAgICAgICBpZiAoIWMpIHJldHVybiBlbXB0eVBsYWNlaG9sZGVyKGEpOwogICAgICAgIGxldCB1ID0gcmVzb2x2ZVRyYW5zaXRpb25Ib29rcyhjLCBvLCBuLCByLCAoRSkgPT4gKHUgPSBFKSk7CiAgICAgICAgYy50eXBlICE9PSBDb21tZW50ICYmIHNldFRyYW5zaXRpb25Ib29rcyhjLCB1KTsKICAgICAgICBsZXQgZCA9IHIuc3ViVHJlZSAmJiBnZXRJbm5lckNoaWxkJDEoci5zdWJUcmVlKTsKICAgICAgICBpZiAoCiAgICAgICAgICBkICYmCiAgICAgICAgICBkLnR5cGUgIT09IENvbW1lbnQgJiYKICAgICAgICAgICFpc1NhbWVWTm9kZVR5cGUoYywgZCkgJiYKICAgICAgICAgIHJlY3Vyc2l2ZUdldFN1YnRyZWUocikudHlwZSAhPT0gQ29tbWVudAogICAgICAgICkgewogICAgICAgICAgbGV0IEUgPSByZXNvbHZlVHJhbnNpdGlvbkhvb2tzKGQsIG8sIG4sIHIpOwogICAgICAgICAgaWYgKChzZXRUcmFuc2l0aW9uSG9va3MoZCwgRSksIGwgPT09ICJvdXQtaW4iICYmIGMudHlwZSAhPT0gQ29tbWVudCkpCiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKG4uaXNMZWF2aW5nID0gITApLAogICAgICAgICAgICAgIChFLmFmdGVyTGVhdmUgPSAoKSA9PiB7CiAgICAgICAgICAgICAgICAobi5pc0xlYXZpbmcgPSAhMSksCiAgICAgICAgICAgICAgICAgIHIuam9iLmZsYWdzICYgOCB8fCByLnVwZGF0ZSgpLAogICAgICAgICAgICAgICAgICBkZWxldGUgRS5hZnRlckxlYXZlLAogICAgICAgICAgICAgICAgICAoZCA9IHZvaWQgMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZW1wdHlQbGFjZWhvbGRlcihhKQogICAgICAgICAgICApOwogICAgICAgICAgbCA9PT0gImluLW91dCIgJiYgYy50eXBlICE9PSBDb21tZW50CiAgICAgICAgICAgID8gKEUuZGVsYXlMZWF2ZSA9IChiLCBQLCBSKSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgVCA9IGdldExlYXZpbmdOb2Rlc0ZvclR5cGUobiwgZCk7CiAgICAgICAgICAgICAgKFRbU3RyaW5nKGQua2V5KV0gPSBkKSwKICAgICAgICAgICAgICAgIChiW2xlYXZlQ2JLZXldID0gKCkgPT4gewogICAgICAgICAgICAgICAgICBQKCksCiAgICAgICAgICAgICAgICAgICAgKGJbbGVhdmVDYktleV0gPSB2b2lkIDApLAogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1LmRlbGF5ZWRMZWF2ZSwKICAgICAgICAgICAgICAgICAgICAoZCA9IHZvaWQgMCk7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICh1LmRlbGF5ZWRMZWF2ZSA9ICgpID0+IHsKICAgICAgICAgICAgICAgICAgUigpLCBkZWxldGUgdS5kZWxheWVkTGVhdmUsIChkID0gdm9pZCAwKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KQogICAgICAgICAgICA6IChkID0gdm9pZCAwKTsKICAgICAgICB9IGVsc2UgZCAmJiAoZCA9IHZvaWQgMCk7CiAgICAgICAgcmV0dXJuIGE7CiAgICAgIH07CiAgICB9LAogIH07CmZ1bmN0aW9uIGZpbmROb25Db21tZW50Q2hpbGQoZSkgewogIGxldCB0ID0gZVswXTsKICBpZiAoZS5sZW5ndGggPiAxKSB7CiAgICBmb3IgKGNvbnN0IHIgb2YgZSkKICAgICAgaWYgKHIudHlwZSAhPT0gQ29tbWVudCkgewogICAgICAgIHQgPSByOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgfQogIHJldHVybiB0Owp9CmNvbnN0IEJhc2VUcmFuc2l0aW9uID0gQmFzZVRyYW5zaXRpb25JbXBsOwpmdW5jdGlvbiBnZXRMZWF2aW5nTm9kZXNGb3JUeXBlKGUsIHQpIHsKICBjb25zdCB7IGxlYXZpbmdWTm9kZXM6IHIgfSA9IGU7CiAgbGV0IG4gPSByLmdldCh0LnR5cGUpOwogIHJldHVybiBuIHx8ICgobiA9IE9iamVjdC5jcmVhdGUobnVsbCkpLCByLnNldCh0LnR5cGUsIG4pKSwgbjsKfQpmdW5jdGlvbiByZXNvbHZlVHJhbnNpdGlvbkhvb2tzKGUsIHQsIHIsIG4sIGkpIHsKICBjb25zdCB7CiAgICBhcHBlYXI6IGEsCiAgICBtb2RlOiBvLAogICAgcGVyc2lzdGVkOiBsID0gITEsCiAgICBvbkJlZm9yZUVudGVyOiBjLAogICAgb25FbnRlcjogdSwKICAgIG9uQWZ0ZXJFbnRlcjogZCwKICAgIG9uRW50ZXJDYW5jZWxsZWQ6IEUsCiAgICBvbkJlZm9yZUxlYXZlOiBiLAogICAgb25MZWF2ZTogUCwKICAgIG9uQWZ0ZXJMZWF2ZTogUiwKICAgIG9uTGVhdmVDYW5jZWxsZWQ6IFQsCiAgICBvbkJlZm9yZUFwcGVhcjogTSwKICAgIG9uQXBwZWFyOiB4LAogICAgb25BZnRlckFwcGVhcjogaywKICAgIG9uQXBwZWFyQ2FuY2VsbGVkOiBTLAogIH0gPSB0LAogICAgQSA9IFN0cmluZyhlLmtleSksCiAgICBPID0gZ2V0TGVhdmluZ05vZGVzRm9yVHlwZShyLCBlKSwKICAgIEYgPSAoJCwgcSkgPT4gewogICAgICAkICYmIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKCQsIG4sIDksIHEpOwogICAgfSwKICAgIEQgPSAoJCwgcSkgPT4gewogICAgICBjb25zdCBKID0gcVsxXTsKICAgICAgRigkLCBxKSwKICAgICAgICBpc0FycmF5JDIoJCkKICAgICAgICAgID8gJC5ldmVyeSgoSykgPT4gSy5sZW5ndGggPD0gMSkgJiYgSigpCiAgICAgICAgICA6ICQubGVuZ3RoIDw9IDEgJiYgSigpOwogICAgfSwKICAgIEggPSB7CiAgICAgIG1vZGU6IG8sCiAgICAgIHBlcnNpc3RlZDogbCwKICAgICAgYmVmb3JlRW50ZXIoJCkgewogICAgICAgIGxldCBxID0gYzsKICAgICAgICBpZiAoIXIuaXNNb3VudGVkKQogICAgICAgICAgaWYgKGEpIHEgPSBNIHx8IGM7CiAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICAkW2xlYXZlQ2JLZXldICYmICRbbGVhdmVDYktleV0oITApOwogICAgICAgIGNvbnN0IEogPSBPW0FdOwogICAgICAgIEogJiYgaXNTYW1lVk5vZGVUeXBlKGUsIEopICYmIEouZWxbbGVhdmVDYktleV0gJiYgSi5lbFtsZWF2ZUNiS2V5XSgpLAogICAgICAgICAgRihxLCBbJF0pOwogICAgICB9LAogICAgICBlbnRlcigkKSB7CiAgICAgICAgbGV0IHEgPSB1LAogICAgICAgICAgSiA9IGQsCiAgICAgICAgICBLID0gRTsKICAgICAgICBpZiAoIXIuaXNNb3VudGVkKQogICAgICAgICAgaWYgKGEpIChxID0geCB8fCB1KSwgKEogPSBrIHx8IGQpLCAoSyA9IFMgfHwgRSk7CiAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICBsZXQgZWUgPSAhMTsKICAgICAgICBjb25zdCBsZSA9ICgkW2VudGVyQ2JLZXkkMV0gPSAocmUpID0+IHsKICAgICAgICAgIGVlIHx8CiAgICAgICAgICAgICgoZWUgPSAhMCksCiAgICAgICAgICAgICAgcmUgPyBGKEssIFskXSkgOiBGKEosIFskXSksCiAgICAgICAgICAgICAgSC5kZWxheWVkTGVhdmUgJiYgSC5kZWxheWVkTGVhdmUoKSwKICAgICAgICAgICAgICAoJFtlbnRlckNiS2V5JDFdID0gdm9pZCAwKSk7CiAgICAgICAgfSk7CiAgICAgICAgcSA/IEQocSwgWyQsIGxlXSkgOiBsZSgpOwogICAgICB9LAogICAgICBsZWF2ZSgkLCBxKSB7CiAgICAgICAgY29uc3QgSiA9IFN0cmluZyhlLmtleSk7CiAgICAgICAgaWYgKCgkW2VudGVyQ2JLZXkkMV0gJiYgJFtlbnRlckNiS2V5JDFdKCEwKSwgci5pc1VubW91bnRpbmcpKQogICAgICAgICAgcmV0dXJuIHEoKTsKICAgICAgICBGKGIsIFskXSk7CiAgICAgICAgbGV0IEsgPSAhMTsKICAgICAgICBjb25zdCBlZSA9ICgkW2xlYXZlQ2JLZXldID0gKGxlKSA9PiB7CiAgICAgICAgICBLIHx8CiAgICAgICAgICAgICgoSyA9ICEwKSwKICAgICAgICAgICAgICBxKCksCiAgICAgICAgICAgICAgbGUgPyBGKFQsIFskXSkgOiBGKFIsIFskXSksCiAgICAgICAgICAgICAgKCRbbGVhdmVDYktleV0gPSB2b2lkIDApLAogICAgICAgICAgICAgIE9bSl0gPT09IGUgJiYgZGVsZXRlIE9bSl0pOwogICAgICAgIH0pOwogICAgICAgIChPW0pdID0gZSksIFAgPyBEKFAsIFskLCBlZV0pIDogZWUoKTsKICAgICAgfSwKICAgICAgY2xvbmUoJCkgewogICAgICAgIGNvbnN0IHEgPSByZXNvbHZlVHJhbnNpdGlvbkhvb2tzKCQsIHQsIHIsIG4sIGkpOwogICAgICAgIHJldHVybiBpICYmIGkocSksIHE7CiAgICAgIH0sCiAgICB9OwogIHJldHVybiBIOwp9CmZ1bmN0aW9uIGVtcHR5UGxhY2Vob2xkZXIoZSkgewogIGlmIChpc0tlZXBBbGl2ZShlKSkgcmV0dXJuIChlID0gY2xvbmVWTm9kZShlKSksIChlLmNoaWxkcmVuID0gbnVsbCksIGU7Cn0KZnVuY3Rpb24gZ2V0SW5uZXJDaGlsZCQxKGUpIHsKICBpZiAoIWlzS2VlcEFsaXZlKGUpKQogICAgcmV0dXJuIGlzVGVsZXBvcnQoZS50eXBlKSAmJiBlLmNoaWxkcmVuCiAgICAgID8gZmluZE5vbkNvbW1lbnRDaGlsZChlLmNoaWxkcmVuKQogICAgICA6IGU7CiAgY29uc3QgeyBzaGFwZUZsYWc6IHQsIGNoaWxkcmVuOiByIH0gPSBlOwogIGlmIChyKSB7CiAgICBpZiAodCAmIDE2KSByZXR1cm4gclswXTsKICAgIGlmICh0ICYgMzIgJiYgaXNGdW5jdGlvbiQxKHIuZGVmYXVsdCkpIHJldHVybiByLmRlZmF1bHQoKTsKICB9Cn0KZnVuY3Rpb24gc2V0VHJhbnNpdGlvbkhvb2tzKGUsIHQpIHsKICBlLnNoYXBlRmxhZyAmIDYgJiYgZS5jb21wb25lbnQKICAgID8gKChlLnRyYW5zaXRpb24gPSB0KSwgc2V0VHJhbnNpdGlvbkhvb2tzKGUuY29tcG9uZW50LnN1YlRyZWUsIHQpKQogICAgOiBlLnNoYXBlRmxhZyAmIDEyOAogICAgICA/ICgoZS5zc0NvbnRlbnQudHJhbnNpdGlvbiA9IHQuY2xvbmUoZS5zc0NvbnRlbnQpKSwKICAgICAgICAoZS5zc0ZhbGxiYWNrLnRyYW5zaXRpb24gPSB0LmNsb25lKGUuc3NGYWxsYmFjaykpKQogICAgICA6IChlLnRyYW5zaXRpb24gPSB0KTsKfQpmdW5jdGlvbiBnZXRUcmFuc2l0aW9uUmF3Q2hpbGRyZW4oZSwgdCA9ICExLCByKSB7CiAgbGV0IG4gPSBbXSwKICAgIGkgPSAwOwogIGZvciAobGV0IGEgPSAwOyBhIDwgZS5sZW5ndGg7IGErKykgewogICAgbGV0IG8gPSBlW2FdOwogICAgY29uc3QgbCA9IHIgPT0gbnVsbCA/IG8ua2V5IDogU3RyaW5nKHIpICsgU3RyaW5nKG8ua2V5ICE9IG51bGwgPyBvLmtleSA6IGEpOwogICAgby50eXBlID09PSBGcmFnbWVudAogICAgICA/IChvLnBhdGNoRmxhZyAmIDEyOCAmJiBpKyssCiAgICAgICAgKG4gPSBuLmNvbmNhdChnZXRUcmFuc2l0aW9uUmF3Q2hpbGRyZW4oby5jaGlsZHJlbiwgdCwgbCkpKSkKICAgICAgOiAodCB8fCBvLnR5cGUgIT09IENvbW1lbnQpICYmCiAgICAgIG4ucHVzaChsICE9IG51bGwgPyBjbG9uZVZOb2RlKG8sIHsga2V5OiBsIH0pIDogbyk7CiAgfQogIGlmIChpID4gMSkgZm9yIChsZXQgYSA9IDA7IGEgPCBuLmxlbmd0aDsgYSsrKSBuW2FdLnBhdGNoRmxhZyA9IC0yOwogIHJldHVybiBuOwp9Ci8qISAjX19OT19TSURFX0VGRkVDVFNfXyAqLyBmdW5jdGlvbiBkZWZpbmVDb21wb25lbnQkMShlLCB0KSB7CiAgcmV0dXJuIGlzRnVuY3Rpb24kMShlKSA/IGV4dGVuZCh7IG5hbWU6IGUubmFtZSB9LCB0LCB7IHNldHVwOiBlIH0pIDogZTsKfQpmdW5jdGlvbiB1c2VJZCgpIHsKICBjb25zdCBlID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKTsKICByZXR1cm4gZQogICAgPyAoZS5hcHBDb250ZXh0LmNvbmZpZy5pZFByZWZpeCB8fCAidiIpICsgIi0iICsgZS5pZHNbMF0gKyBlLmlkc1sxXSsrCiAgICA6ICIiOwp9CmZ1bmN0aW9uIG1hcmtBc3luY0JvdW5kYXJ5KGUpIHsKICBlLmlkcyA9IFtlLmlkc1swXSArIGUuaWRzWzJdKysgKyAiLSIsIDAsIDBdOwp9CmZ1bmN0aW9uIHVzZVRlbXBsYXRlUmVmKGUpIHsKICBjb25zdCB0ID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKSwKICAgIHIgPSBzaGFsbG93UmVmKG51bGwpOwogIGlmICh0KSB7CiAgICBjb25zdCBpID0gdC5yZWZzID09PSBFTVBUWV9PQkogPyAodC5yZWZzID0ge30pIDogdC5yZWZzOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIGUsIHsKICAgICAgZW51bWVyYWJsZTogITAsCiAgICAgIGdldDogKCkgPT4gci52YWx1ZSwKICAgICAgc2V0OiAoYSkgPT4gKHIudmFsdWUgPSBhKSwKICAgIH0pOwogIH0KICByZXR1cm4gcjsKfQpmdW5jdGlvbiBzZXRSZWYoZSwgdCwgciwgbiwgaSA9ICExKSB7CiAgaWYgKGlzQXJyYXkkMihlKSkgewogICAgZS5mb3JFYWNoKChSLCBUKSA9PiBzZXRSZWYoUiwgdCAmJiAoaXNBcnJheSQyKHQpID8gdFtUXSA6IHQpLCByLCBuLCBpKSk7CiAgICByZXR1cm47CiAgfQogIGlmIChpc0FzeW5jV3JhcHBlcihuKSAmJiAhaSkgewogICAgbi5zaGFwZUZsYWcgJiA1MTIgJiYKICAgICAgbi50eXBlLl9fYXN5bmNSZXNvbHZlZCAmJgogICAgICBuLmNvbXBvbmVudC5zdWJUcmVlLmNvbXBvbmVudCAmJgogICAgICBzZXRSZWYoZSwgdCwgciwgbi5jb21wb25lbnQuc3ViVHJlZSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGEgPSBuLnNoYXBlRmxhZyAmIDQgPyBnZXRDb21wb25lbnRQdWJsaWNJbnN0YW5jZShuLmNvbXBvbmVudCkgOiBuLmVsLAogICAgbyA9IGkgPyBudWxsIDogYSwKICAgIHsgaTogbCwgcjogYyB9ID0gZSwKICAgIHUgPSB0ICYmIHQuciwKICAgIGQgPSBsLnJlZnMgPT09IEVNUFRZX09CSiA/IChsLnJlZnMgPSB7fSkgOiBsLnJlZnMsCiAgICBFID0gbC5zZXR1cFN0YXRlLAogICAgYiA9IHRvUmF3KEUpLAogICAgUCA9IEUgPT09IEVNUFRZX09CSiA/ICgpID0+ICExIDogKFIpID0+IGhhc093biQxKGIsIFIpOwogIGlmICgKICAgICh1ICE9IG51bGwgJiYKICAgICAgdSAhPT0gYyAmJgogICAgICAoaXNTdHJpbmckMSh1KQogICAgICAgID8gKChkW3VdID0gbnVsbCksIFAodSkgJiYgKEVbdV0gPSBudWxsKSkKICAgICAgICA6IGlzUmVmKHUpICYmICh1LnZhbHVlID0gbnVsbCkpLAogICAgICBpc0Z1bmN0aW9uJDEoYykpCiAgKQogICAgY2FsbFdpdGhFcnJvckhhbmRsaW5nKGMsIGwsIDEyLCBbbywgZF0pOwogIGVsc2UgewogICAgY29uc3QgUiA9IGlzU3RyaW5nJDEoYyksCiAgICAgIFQgPSBpc1JlZihjKTsKICAgIGlmIChSIHx8IFQpIHsKICAgICAgY29uc3QgTSA9ICgpID0+IHsKICAgICAgICBpZiAoZS5mKSB7CiAgICAgICAgICBjb25zdCB4ID0gUiA/IChQKGMpID8gRVtjXSA6IGRbY10pIDogYy52YWx1ZTsKICAgICAgICAgIGkKICAgICAgICAgICAgPyBpc0FycmF5JDIoeCkgJiYgcmVtb3ZlKHgsIGEpCiAgICAgICAgICAgIDogaXNBcnJheSQyKHgpCiAgICAgICAgICAgICAgPyB4LmluY2x1ZGVzKGEpIHx8IHgucHVzaChhKQogICAgICAgICAgICAgIDogUgogICAgICAgICAgICAgICAgPyAoKGRbY10gPSBbYV0pLCBQKGMpICYmIChFW2NdID0gZFtjXSkpCiAgICAgICAgICAgICAgICA6ICgoYy52YWx1ZSA9IFthXSksIGUuayAmJiAoZFtlLmtdID0gYy52YWx1ZSkpOwogICAgICAgIH0gZWxzZQogICAgICAgICAgUgogICAgICAgICAgICA/ICgoZFtjXSA9IG8pLCBQKGMpICYmIChFW2NdID0gbykpCiAgICAgICAgICAgIDogVCAmJiAoKGMudmFsdWUgPSBvKSwgZS5rICYmIChkW2Uua10gPSBvKSk7CiAgICAgIH07CiAgICAgIG8gPyAoKE0uaWQgPSAtMSksIHF1ZXVlUG9zdFJlbmRlckVmZmVjdChNLCByKSkgOiBNKCk7CiAgICB9CiAgfQp9CmxldCBoYXNMb2dnZWRNaXNtYXRjaEVycm9yID0gITE7CmNvbnN0IGxvZ01pc21hdGNoRXJyb3IgPSAoKSA9PiB7CiAgaGFzTG9nZ2VkTWlzbWF0Y2hFcnJvciB8fAogICAgKGNvbnNvbGUuZXJyb3IoIkh5ZHJhdGlvbiBjb21wbGV0ZWQgYnV0IGNvbnRhaW5zIG1pc21hdGNoZXMuIiksCiAgICAgIChoYXNMb2dnZWRNaXNtYXRjaEVycm9yID0gITApKTsKfSwKICBpc1NWR0NvbnRhaW5lciA9IChlKSA9PgogICAgZS5uYW1lc3BhY2VVUkkuaW5jbHVkZXMoInN2ZyIpICYmIGUudGFnTmFtZSAhPT0gImZvcmVpZ25PYmplY3QiLAogIGlzTWF0aE1MQ29udGFpbmVyID0gKGUpID0+IGUubmFtZXNwYWNlVVJJLmluY2x1ZGVzKCJNYXRoTUwiKSwKICBnZXRDb250YWluZXJUeXBlID0gKGUpID0+IHsKICAgIGlmIChlLm5vZGVUeXBlID09PSAxKSB7CiAgICAgIGlmIChpc1NWR0NvbnRhaW5lcihlKSkgcmV0dXJuICJzdmciOwogICAgICBpZiAoaXNNYXRoTUxDb250YWluZXIoZSkpIHJldHVybiAibWF0aG1sIjsKICAgIH0KICB9LAogIGlzQ29tbWVudCA9IChlKSA9PiBlLm5vZGVUeXBlID09PSA4OwpmdW5jdGlvbiBjcmVhdGVIeWRyYXRpb25GdW5jdGlvbnMoZSkgewogIGNvbnN0IHsKICAgIG10OiB0LAogICAgcDogciwKICAgIG86IHsKICAgICAgcGF0Y2hQcm9wOiBuLAogICAgICBjcmVhdGVUZXh0OiBpLAogICAgICBuZXh0U2libGluZzogYSwKICAgICAgcGFyZW50Tm9kZTogbywKICAgICAgcmVtb3ZlOiBsLAogICAgICBpbnNlcnQ6IGMsCiAgICAgIGNyZWF0ZUNvbW1lbnQ6IHUsCiAgICB9LAogIH0gPSBlLAogICAgZCA9IChTLCBBKSA9PiB7CiAgICAgIGlmICghQS5oYXNDaGlsZE5vZGVzKCkpIHsKICAgICAgICByKG51bGwsIFMsIEEpLCBmbHVzaFBvc3RGbHVzaENicygpLCAoQS5fdm5vZGUgPSBTKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgRShBLmZpcnN0Q2hpbGQsIFMsIG51bGwsIG51bGwsIG51bGwpLCBmbHVzaFBvc3RGbHVzaENicygpLCAoQS5fdm5vZGUgPSBTKTsKICAgIH0sCiAgICBFID0gKFMsIEEsIE8sIEYsIEQsIEggPSAhMSkgPT4gewogICAgICBIID0gSCB8fCAhIUEuZHluYW1pY0NoaWxkcmVuOwogICAgICBjb25zdCAkID0gaXNDb21tZW50KFMpICYmIFMuZGF0YSA9PT0gIlsiLAogICAgICAgIHEgPSAoKSA9PiBUKFMsIEEsIE8sIEYsIEQsICQpLAogICAgICAgIHsgdHlwZTogSiwgcmVmOiBLLCBzaGFwZUZsYWc6IGVlLCBwYXRjaEZsYWc6IGxlIH0gPSBBOwogICAgICBsZXQgcmUgPSBTLm5vZGVUeXBlOwogICAgICAoQS5lbCA9IFMpLCBsZSA9PT0gLTIgJiYgKChIID0gITEpLCAoQS5keW5hbWljQ2hpbGRyZW4gPSBudWxsKSk7CiAgICAgIGxldCBCID0gbnVsbDsKICAgICAgc3dpdGNoIChKKSB7CiAgICAgICAgY2FzZSBUZXh0OgogICAgICAgICAgcmUgIT09IDMKICAgICAgICAgICAgPyBBLmNoaWxkcmVuID09PSAiIgogICAgICAgICAgICAgID8gKGMoKEEuZWwgPSBpKCIiKSksIG8oUyksIFMpLCAoQiA9IFMpKQogICAgICAgICAgICAgIDogKEIgPSBxKCkpCiAgICAgICAgICAgIDogKFMuZGF0YSAhPT0gQS5jaGlsZHJlbiAmJgogICAgICAgICAgICAgIChsb2dNaXNtYXRjaEVycm9yKCksIChTLmRhdGEgPSBBLmNoaWxkcmVuKSksCiAgICAgICAgICAgICAgKEIgPSBhKFMpKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIENvbW1lbnQ6CiAgICAgICAgICBrKFMpCiAgICAgICAgICAgID8gKChCID0gYShTKSksIHgoKEEuZWwgPSBTLmNvbnRlbnQuZmlyc3RDaGlsZCksIFMsIE8pKQogICAgICAgICAgICA6IHJlICE9PSA4IHx8ICQKICAgICAgICAgICAgICA/IChCID0gcSgpKQogICAgICAgICAgICAgIDogKEIgPSBhKFMpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgU3RhdGljOgogICAgICAgICAgaWYgKCgkICYmICgoUyA9IGEoUykpLCAocmUgPSBTLm5vZGVUeXBlKSksIHJlID09PSAxIHx8IHJlID09PSAzKSkgewogICAgICAgICAgICBCID0gUzsKICAgICAgICAgICAgY29uc3QgeiA9ICFBLmNoaWxkcmVuLmxlbmd0aDsKICAgICAgICAgICAgZm9yIChsZXQgTiA9IDA7IE4gPCBBLnN0YXRpY0NvdW50OyBOKyspCiAgICAgICAgICAgICAgeiAmJiAoQS5jaGlsZHJlbiArPSBCLm5vZGVUeXBlID09PSAxID8gQi5vdXRlckhUTUwgOiBCLmRhdGEpLAogICAgICAgICAgICAgICAgTiA9PT0gQS5zdGF0aWNDb3VudCAtIDEgJiYgKEEuYW5jaG9yID0gQiksCiAgICAgICAgICAgICAgICAoQiA9IGEoQikpOwogICAgICAgICAgICByZXR1cm4gJCA/IGEoQikgOiBCOwogICAgICAgICAgfSBlbHNlIHEoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgRnJhZ21lbnQ6CiAgICAgICAgICAkID8gKEIgPSBSKFMsIEEsIE8sIEYsIEQsIEgpKSA6IChCID0gcSgpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBpZiAoZWUgJiAxKQogICAgICAgICAgICAocmUgIT09IDEgfHwgQS50eXBlLnRvTG93ZXJDYXNlKCkgIT09IFMudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSAmJgogICAgICAgICAgICAgICFrKFMpCiAgICAgICAgICAgICAgPyAoQiA9IHEoKSkKICAgICAgICAgICAgICA6IChCID0gYihTLCBBLCBPLCBGLCBELCBIKSk7CiAgICAgICAgICBlbHNlIGlmIChlZSAmIDYpIHsKICAgICAgICAgICAgQS5zbG90U2NvcGVJZHMgPSBEOwogICAgICAgICAgICBjb25zdCB6ID0gbyhTKTsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICgkCiAgICAgICAgICAgICAgICA/IChCID0gTShTKSkKICAgICAgICAgICAgICAgIDogaXNDb21tZW50KFMpICYmIFMuZGF0YSA9PT0gInRlbGVwb3J0IHN0YXJ0IgogICAgICAgICAgICAgICAgICA/IChCID0gTShTLCBTLmRhdGEsICJ0ZWxlcG9ydCBlbmQiKSkKICAgICAgICAgICAgICAgICAgOiAoQiA9IGEoUykpLAogICAgICAgICAgICAgICAgdChBLCB6LCBudWxsLCBPLCBGLCBnZXRDb250YWluZXJUeXBlKHopLCBIKSwKICAgICAgICAgICAgICAgIGlzQXN5bmNXcmFwcGVyKEEpICYmICFBLnR5cGUuX19hc3luY1Jlc29sdmVkKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBsZXQgTjsKICAgICAgICAgICAgICAkCiAgICAgICAgICAgICAgICA/ICgoTiA9IGNyZWF0ZVZOb2RlKEZyYWdtZW50KSksCiAgICAgICAgICAgICAgICAgIChOLmFuY2hvciA9IEIgPyBCLnByZXZpb3VzU2libGluZyA6IHoubGFzdENoaWxkKSkKICAgICAgICAgICAgICAgIDogKE4gPQogICAgICAgICAgICAgICAgICBTLm5vZGVUeXBlID09PSAzCiAgICAgICAgICAgICAgICAgICAgPyBjcmVhdGVUZXh0Vk5vZGUoIiIpCiAgICAgICAgICAgICAgICAgICAgOiBjcmVhdGVWTm9kZSgiZGl2IikpLAogICAgICAgICAgICAgICAgKE4uZWwgPSBTKSwKICAgICAgICAgICAgICAgIChBLmNvbXBvbmVudC5zdWJUcmVlID0gTik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICBlZSAmIDY0CiAgICAgICAgICAgICAgPyByZSAhPT0gOAogICAgICAgICAgICAgICAgPyAoQiA9IHEoKSkKICAgICAgICAgICAgICAgIDogKEIgPSBBLnR5cGUuaHlkcmF0ZShTLCBBLCBPLCBGLCBELCBILCBlLCBQKSkKICAgICAgICAgICAgICA6IGVlICYgMTI4ICYmCiAgICAgICAgICAgICAgKEIgPSBBLnR5cGUuaHlkcmF0ZSgKICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgTywKICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICBnZXRDb250YWluZXJUeXBlKG8oUykpLAogICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgIEgsCiAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgRQogICAgICAgICAgICAgICkpOwogICAgICB9CiAgICAgIHJldHVybiBLICE9IG51bGwgJiYgc2V0UmVmKEssIG51bGwsIEYsIEEpLCBCOwogICAgfSwKICAgIGIgPSAoUywgQSwgTywgRiwgRCwgSCkgPT4gewogICAgICBIID0gSCB8fCAhIUEuZHluYW1pY0NoaWxkcmVuOwogICAgICBjb25zdCB7CiAgICAgICAgdHlwZTogJCwKICAgICAgICBwcm9wczogcSwKICAgICAgICBwYXRjaEZsYWc6IEosCiAgICAgICAgc2hhcGVGbGFnOiBLLAogICAgICAgIGRpcnM6IGVlLAogICAgICAgIHRyYW5zaXRpb246IGxlLAogICAgICB9ID0gQSwKICAgICAgICByZSA9ICQgPT09ICJpbnB1dCIgfHwgJCA9PT0gIm9wdGlvbiI7CiAgICAgIGlmIChyZSB8fCBKICE9PSAtMSkgewogICAgICAgIGVlICYmIGludm9rZURpcmVjdGl2ZUhvb2soQSwgbnVsbCwgTywgImNyZWF0ZWQiKTsKICAgICAgICBsZXQgQiA9ICExOwogICAgICAgIGlmIChrKFMpKSB7CiAgICAgICAgICBCID0KICAgICAgICAgICAgbmVlZFRyYW5zaXRpb24obnVsbCwgbGUpICYmCiAgICAgICAgICAgIE8gJiYKICAgICAgICAgICAgTy52bm9kZS5wcm9wcyAmJgogICAgICAgICAgICBPLnZub2RlLnByb3BzLmFwcGVhcjsKICAgICAgICAgIGNvbnN0IE4gPSBTLmNvbnRlbnQuZmlyc3RDaGlsZDsKICAgICAgICAgIEIgJiYgbGUuYmVmb3JlRW50ZXIoTiksIHgoTiwgUywgTyksIChBLmVsID0gUyA9IE4pOwogICAgICAgIH0KICAgICAgICBpZiAoSyAmIDE2ICYmICEocSAmJiAocS5pbm5lckhUTUwgfHwgcS50ZXh0Q29udGVudCkpKSB7CiAgICAgICAgICBsZXQgTiA9IFAoUy5maXJzdENoaWxkLCBBLCBTLCBPLCBGLCBELCBIKTsKICAgICAgICAgIGZvciAoOyBOOykgewogICAgICAgICAgICBpc01pc21hdGNoQWxsb3dlZChTLCAxKSB8fCBsb2dNaXNtYXRjaEVycm9yKCk7CiAgICAgICAgICAgIGNvbnN0IFYgPSBOOwogICAgICAgICAgICAoTiA9IE4ubmV4dFNpYmxpbmcpLCBsKFYpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoSyAmIDgpIHsKICAgICAgICAgIGxldCBOID0gQS5jaGlsZHJlbjsKICAgICAgICAgIE5bMF0gPT09CiAgICAgICAgICAgIGAKYCAmJgogICAgICAgICAgICAoUy50YWdOYW1lID09PSAiUFJFIiB8fCBTLnRhZ05hbWUgPT09ICJURVhUQVJFQSIpICYmCiAgICAgICAgICAgIChOID0gTi5zbGljZSgxKSksCiAgICAgICAgICAgIFMudGV4dENvbnRlbnQgIT09IE4gJiYKICAgICAgICAgICAgKGlzTWlzbWF0Y2hBbGxvd2VkKFMsIDApIHx8IGxvZ01pc21hdGNoRXJyb3IoKSwKICAgICAgICAgICAgICAoUy50ZXh0Q29udGVudCA9IEEuY2hpbGRyZW4pKTsKICAgICAgICB9CiAgICAgICAgaWYgKHEpIHsKICAgICAgICAgIGlmIChyZSB8fCAhSCB8fCBKICYgNDgpIHsKICAgICAgICAgICAgY29uc3QgTiA9IFMudGFnTmFtZS5pbmNsdWRlcygiLSIpOwogICAgICAgICAgICBmb3IgKGNvbnN0IFYgaW4gcSkKICAgICAgICAgICAgICAoKHJlICYmIChWLmVuZHNXaXRoKCJ2YWx1ZSIpIHx8IFYgPT09ICJpbmRldGVybWluYXRlIikpIHx8CiAgICAgICAgICAgICAgICAoaXNPbiQxKFYpICYmICFpc1Jlc2VydmVkUHJvcChWKSkgfHwKICAgICAgICAgICAgICAgIFZbMF0gPT09ICIuIiB8fAogICAgICAgICAgICAgICAgTikgJiYKICAgICAgICAgICAgICAgIG4oUywgViwgbnVsbCwgcVtWXSwgdm9pZCAwLCBPKTsKICAgICAgICAgIH0gZWxzZSBpZiAocS5vbkNsaWNrKSBuKFMsICJvbkNsaWNrIiwgbnVsbCwgcS5vbkNsaWNrLCB2b2lkIDAsIE8pOwogICAgICAgICAgZWxzZSBpZiAoSiAmIDQgJiYgaXNSZWFjdGl2ZShxLnN0eWxlKSkKICAgICAgICAgICAgZm9yIChjb25zdCBOIGluIHEuc3R5bGUpIHEuc3R5bGVbTl07CiAgICAgICAgfQogICAgICAgIGxldCB6OwogICAgICAgICh6ID0gcSAmJiBxLm9uVm5vZGVCZWZvcmVNb3VudCkgJiYgaW52b2tlVk5vZGVIb29rKHosIE8sIEEpLAogICAgICAgICAgZWUgJiYgaW52b2tlRGlyZWN0aXZlSG9vayhBLCBudWxsLCBPLCAiYmVmb3JlTW91bnQiKSwKICAgICAgICAgICgoeiA9IHEgJiYgcS5vblZub2RlTW91bnRlZCkgfHwgZWUgfHwgQikgJiYKICAgICAgICAgIHF1ZXVlRWZmZWN0V2l0aFN1c3BlbnNlKCgpID0+IHsKICAgICAgICAgICAgeiAmJiBpbnZva2VWTm9kZUhvb2soeiwgTywgQSksCiAgICAgICAgICAgICAgQiAmJiBsZS5lbnRlcihTKSwKICAgICAgICAgICAgICBlZSAmJiBpbnZva2VEaXJlY3RpdmVIb29rKEEsIG51bGwsIE8sICJtb3VudGVkIik7CiAgICAgICAgICB9LCBGKTsKICAgICAgfQogICAgICByZXR1cm4gUy5uZXh0U2libGluZzsKICAgIH0sCiAgICBQID0gKFMsIEEsIE8sIEYsIEQsIEgsICQpID0+IHsKICAgICAgJCA9ICQgfHwgISFBLmR5bmFtaWNDaGlsZHJlbjsKICAgICAgY29uc3QgcSA9IEEuY2hpbGRyZW4sCiAgICAgICAgSiA9IHEubGVuZ3RoOwogICAgICBmb3IgKGxldCBLID0gMDsgSyA8IEo7IEsrKykgewogICAgICAgIGNvbnN0IGVlID0gJCA/IHFbS10gOiAocVtLXSA9IG5vcm1hbGl6ZVZOb2RlKHFbS10pKSwKICAgICAgICAgIGxlID0gZWUudHlwZSA9PT0gVGV4dDsKICAgICAgICBTCiAgICAgICAgICA/IChsZSAmJgogICAgICAgICAgICAhJCAmJgogICAgICAgICAgICBLICsgMSA8IEogJiYKICAgICAgICAgICAgbm9ybWFsaXplVk5vZGUocVtLICsgMV0pLnR5cGUgPT09IFRleHQgJiYKICAgICAgICAgICAgKGMoaShTLmRhdGEuc2xpY2UoZWUuY2hpbGRyZW4ubGVuZ3RoKSksIE8sIGEoUykpLAogICAgICAgICAgICAgIChTLmRhdGEgPSBlZS5jaGlsZHJlbikpLAogICAgICAgICAgICAoUyA9IEUoUywgZWUsIEYsIEQsIEgsICQpKSkKICAgICAgICAgIDogbGUgJiYgIWVlLmNoaWxkcmVuCiAgICAgICAgICAgID8gYygoZWUuZWwgPSBpKCIiKSksIE8pCiAgICAgICAgICAgIDogKGlzTWlzbWF0Y2hBbGxvd2VkKE8sIDEpIHx8IGxvZ01pc21hdGNoRXJyb3IoKSwKICAgICAgICAgICAgICByKG51bGwsIGVlLCBPLCBudWxsLCBGLCBELCBnZXRDb250YWluZXJUeXBlKE8pLCBIKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIFM7CiAgICB9LAogICAgUiA9IChTLCBBLCBPLCBGLCBELCBIKSA9PiB7CiAgICAgIGNvbnN0IHsgc2xvdFNjb3BlSWRzOiAkIH0gPSBBOwogICAgICAkICYmIChEID0gRCA/IEQuY29uY2F0KCQpIDogJCk7CiAgICAgIGNvbnN0IHEgPSBvKFMpLAogICAgICAgIEogPSBQKGEoUyksIEEsIHEsIE8sIEYsIEQsIEgpOwogICAgICByZXR1cm4gSiAmJiBpc0NvbW1lbnQoSikgJiYgSi5kYXRhID09PSAiXSIKICAgICAgICA/IGEoKEEuYW5jaG9yID0gSikpCiAgICAgICAgOiAobG9nTWlzbWF0Y2hFcnJvcigpLCBjKChBLmFuY2hvciA9IHUoIl0iKSksIHEsIEopLCBKKTsKICAgIH0sCiAgICBUID0gKFMsIEEsIE8sIEYsIEQsIEgpID0+IHsKICAgICAgaWYgKAogICAgICAgIChpc01pc21hdGNoQWxsb3dlZChTLnBhcmVudEVsZW1lbnQsIDEpIHx8IGxvZ01pc21hdGNoRXJyb3IoKSwKICAgICAgICAgIChBLmVsID0gbnVsbCksCiAgICAgICAgICBIKQogICAgICApIHsKICAgICAgICBjb25zdCBKID0gTShTKTsKICAgICAgICBmb3IgKDsgOykgewogICAgICAgICAgY29uc3QgSyA9IGEoUyk7CiAgICAgICAgICBpZiAoSyAmJiBLICE9PSBKKSBsKEspOwogICAgICAgICAgZWxzZSBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgJCA9IGEoUyksCiAgICAgICAgcSA9IG8oUyk7CiAgICAgIHJldHVybiAoCiAgICAgICAgbChTKSwKICAgICAgICByKG51bGwsIEEsIHEsICQsIE8sIEYsIGdldENvbnRhaW5lclR5cGUocSksIEQpLAogICAgICAgIE8gJiYgKChPLnZub2RlLmVsID0gQS5lbCksIHVwZGF0ZUhPQ0hvc3RFbChPLCBBLmVsKSksCiAgICAgICAgJAogICAgICApOwogICAgfSwKICAgIE0gPSAoUywgQSA9ICJbIiwgTyA9ICJdIikgPT4gewogICAgICBsZXQgRiA9IDA7CiAgICAgIGZvciAoOyBTOykKICAgICAgICBpZiAoCiAgICAgICAgICAoKFMgPSBhKFMpKSwgUyAmJiBpc0NvbW1lbnQoUykgJiYgKFMuZGF0YSA9PT0gQSAmJiBGKyssIFMuZGF0YSA9PT0gTykpCiAgICAgICAgKSB7CiAgICAgICAgICBpZiAoRiA9PT0gMCkgcmV0dXJuIGEoUyk7CiAgICAgICAgICBGLS07CiAgICAgICAgfQogICAgICByZXR1cm4gUzsKICAgIH0sCiAgICB4ID0gKFMsIEEsIE8pID0+IHsKICAgICAgY29uc3QgRiA9IEEucGFyZW50Tm9kZTsKICAgICAgRiAmJiBGLnJlcGxhY2VDaGlsZChTLCBBKTsKICAgICAgbGV0IEQgPSBPOwogICAgICBmb3IgKDsgRDspCiAgICAgICAgRC52bm9kZS5lbCA9PT0gQSAmJiAoRC52bm9kZS5lbCA9IEQuc3ViVHJlZS5lbCA9IFMpLCAoRCA9IEQucGFyZW50KTsKICAgIH0sCiAgICBrID0gKFMpID0+IFMubm9kZVR5cGUgPT09IDEgJiYgUy50YWdOYW1lID09PSAiVEVNUExBVEUiOwogIHJldHVybiBbZCwgRV07Cn0KY29uc3QgYWxsb3dNaXNtYXRjaEF0dHIgPSAiZGF0YS1hbGxvdy1taXNtYXRjaCIsCiAgTWlzbWF0Y2hUeXBlU3RyaW5nID0gewogICAgMDogInRleHQiLAogICAgMTogImNoaWxkcmVuIiwKICAgIDI6ICJjbGFzcyIsCiAgICAzOiAic3R5bGUiLAogICAgNDogImF0dHJpYnV0ZSIsCiAgfTsKZnVuY3Rpb24gaXNNaXNtYXRjaEFsbG93ZWQoZSwgdCkgewogIGlmICh0ID09PSAwIHx8IHQgPT09IDEpCiAgICBmb3IgKDsgZSAmJiAhZS5oYXNBdHRyaWJ1dGUoYWxsb3dNaXNtYXRjaEF0dHIpOykgZSA9IGUucGFyZW50RWxlbWVudDsKICBjb25zdCByID0gZSAmJiBlLmdldEF0dHJpYnV0ZShhbGxvd01pc21hdGNoQXR0cik7CiAgaWYgKHIgPT0gbnVsbCkgcmV0dXJuICExOwogIGlmIChyID09PSAiIikgcmV0dXJuICEwOwogIHsKICAgIGNvbnN0IG4gPSByLnNwbGl0KCIsIik7CiAgICByZXR1cm4gdCA9PT0gMCAmJiBuLmluY2x1ZGVzKCJjaGlsZHJlbiIpCiAgICAgID8gITAKICAgICAgOiByLnNwbGl0KCIsIikuaW5jbHVkZXMoTWlzbWF0Y2hUeXBlU3RyaW5nW3RdKTsKICB9Cn0KY29uc3QgcmVxdWVzdElkbGVDYWxsYmFjayQxID0KICBnZXRHbG9iYWxUaGlzJDEoKS5yZXF1ZXN0SWRsZUNhbGxiYWNrIHx8ICgoZSkgPT4gc2V0VGltZW91dChlLCAxKSksCiAgY2FuY2VsSWRsZUNhbGxiYWNrJDEgPQogICAgZ2V0R2xvYmFsVGhpcyQxKCkuY2FuY2VsSWRsZUNhbGxiYWNrIHx8ICgoZSkgPT4gY2xlYXJUaW1lb3V0KGUpKSwKICBoeWRyYXRlT25JZGxlID0KICAgIChlID0gMWU0KSA9PgogICAgICAodCkgPT4gewogICAgICAgIGNvbnN0IHIgPSByZXF1ZXN0SWRsZUNhbGxiYWNrJDEodCwgeyB0aW1lb3V0OiBlIH0pOwogICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxJZGxlQ2FsbGJhY2skMShyKTsKICAgICAgfTsKZnVuY3Rpb24gZWxlbWVudElzVmlzaWJsZUluVmlld3BvcnQoZSkgewogIGNvbnN0IHsgdG9wOiB0LCBsZWZ0OiByLCBib3R0b206IG4sIHJpZ2h0OiBpIH0gPSBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLAogICAgeyBpbm5lckhlaWdodDogYSwgaW5uZXJXaWR0aDogbyB9ID0gd2luZG93OwogIHJldHVybiAoCiAgICAoKHQgPiAwICYmIHQgPCBhKSB8fCAobiA+IDAgJiYgbiA8IGEpKSAmJgogICAgKChyID4gMCAmJiByIDwgbykgfHwgKGkgPiAwICYmIGkgPCBvKSkKICApOwp9CmNvbnN0IGh5ZHJhdGVPblZpc2libGUgPSAoZSkgPT4gKHQsIHIpID0+IHsKICBjb25zdCBuID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChpKSA9PiB7CiAgICBmb3IgKGNvbnN0IGEgb2YgaSkKICAgICAgaWYgKGEuaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICBuLmRpc2Nvbm5lY3QoKSwgdCgpOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgfSwgZSk7CiAgcmV0dXJuICgKICAgIHIoKGkpID0+IHsKICAgICAgaWYgKGkgaW5zdGFuY2VvZiBFbGVtZW50KSB7CiAgICAgICAgaWYgKGVsZW1lbnRJc1Zpc2libGVJblZpZXdwb3J0KGkpKSByZXR1cm4gdCgpLCBuLmRpc2Nvbm5lY3QoKSwgITE7CiAgICAgICAgbi5vYnNlcnZlKGkpOwogICAgICB9CiAgICB9KSwKICAgICgpID0+IG4uZGlzY29ubmVjdCgpCiAgKTsKfSwKICBoeWRyYXRlT25NZWRpYVF1ZXJ5ID0gKGUpID0+ICh0KSA9PiB7CiAgICBpZiAoZSkgewogICAgICBjb25zdCByID0gbWF0Y2hNZWRpYShlKTsKICAgICAgaWYgKHIubWF0Y2hlcykgdCgpOwogICAgICBlbHNlCiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdCwgeyBvbmNlOiAhMCB9KSwKICAgICAgICAgICgpID0+IHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdCkKICAgICAgICApOwogICAgfQogIH0sCiAgaHlkcmF0ZU9uSW50ZXJhY3Rpb24gPQogICAgKGUgPSBbXSkgPT4KICAgICAgKHQsIHIpID0+IHsKICAgICAgICBpc1N0cmluZyQxKGUpICYmIChlID0gW2VdKTsKICAgICAgICBsZXQgbiA9ICExOwogICAgICAgIGNvbnN0IGkgPSAobykgPT4gewogICAgICAgICAgbiB8fAogICAgICAgICAgICAoKG4gPSAhMCksCiAgICAgICAgICAgICAgYSgpLAogICAgICAgICAgICAgIHQoKSwKICAgICAgICAgICAgICBvLnRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBvLmNvbnN0cnVjdG9yKG8udHlwZSwgbykpKTsKICAgICAgICB9LAogICAgICAgICAgYSA9ICgpID0+IHsKICAgICAgICAgICAgcigobykgPT4gewogICAgICAgICAgICAgIGZvciAoY29uc3QgbCBvZiBlKSBvLnJlbW92ZUV2ZW50TGlzdGVuZXIobCwgaSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgcigobykgPT4gewogICAgICAgICAgICBmb3IgKGNvbnN0IGwgb2YgZSkgby5hZGRFdmVudExpc3RlbmVyKGwsIGksIHsgb25jZTogITAgfSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGEKICAgICAgICApOwogICAgICB9OwpmdW5jdGlvbiBmb3JFYWNoRWxlbWVudChlLCB0KSB7CiAgaWYgKGlzQ29tbWVudChlKSAmJiBlLmRhdGEgPT09ICJbIikgewogICAgbGV0IHIgPSAxLAogICAgICBuID0gZS5uZXh0U2libGluZzsKICAgIGZvciAoOyBuOykgewogICAgICBpZiAobi5ub2RlVHlwZSA9PT0gMSkgewogICAgICAgIGlmICh0KG4pID09PSAhMSkgYnJlYWs7CiAgICAgIH0gZWxzZSBpZiAoaXNDb21tZW50KG4pKQogICAgICAgIGlmIChuLmRhdGEgPT09ICJdIikgewogICAgICAgICAgaWYgKC0tciA9PT0gMCkgYnJlYWs7CiAgICAgICAgfSBlbHNlIG4uZGF0YSA9PT0gIlsiICYmIHIrKzsKICAgICAgbiA9IG4ubmV4dFNpYmxpbmc7CiAgICB9CiAgfSBlbHNlIHQoZSk7Cn0KY29uc3QgaXNBc3luY1dyYXBwZXIgPSAoZSkgPT4gISFlLnR5cGUuX19hc3luY0xvYWRlcjsKLyohICNfX05PX1NJREVfRUZGRUNUU19fICovIGZ1bmN0aW9uIGRlZmluZUFzeW5jQ29tcG9uZW50KGUpIHsKICBpc0Z1bmN0aW9uJDEoZSkgJiYgKGUgPSB7IGxvYWRlcjogZSB9KTsKICBjb25zdCB7CiAgICBsb2FkZXI6IHQsCiAgICBsb2FkaW5nQ29tcG9uZW50OiByLAogICAgZXJyb3JDb21wb25lbnQ6IG4sCiAgICBkZWxheTogaSA9IDIwMCwKICAgIGh5ZHJhdGU6IGEsCiAgICB0aW1lb3V0OiBvLAogICAgc3VzcGVuc2libGU6IGwgPSAhMCwKICAgIG9uRXJyb3I6IGMsCiAgfSA9IGU7CiAgbGV0IHUgPSBudWxsLAogICAgZCwKICAgIEUgPSAwOwogIGNvbnN0IGIgPSAoKSA9PiAoRSsrLCAodSA9IG51bGwpLCBQKCkpLAogICAgUCA9ICgpID0+IHsKICAgICAgbGV0IFI7CiAgICAgIHJldHVybiAoCiAgICAgICAgdSB8fAogICAgICAgIChSID0gdSA9CiAgICAgICAgICB0KCkKICAgICAgICAgICAgLmNhdGNoKChUKSA9PiB7CiAgICAgICAgICAgICAgaWYgKCgoVCA9IFQgaW5zdGFuY2VvZiBFcnJvciA/IFQgOiBuZXcgRXJyb3IoU3RyaW5nKFQpKSksIGMpKQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChNLCB4KSA9PiB7CiAgICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgICAgVCwKICAgICAgICAgICAgICAgICAgICAoKSA9PiBNKGIoKSksCiAgICAgICAgICAgICAgICAgICAgKCkgPT4geChUKSwKICAgICAgICAgICAgICAgICAgICBFICsgMQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgdGhyb3cgVDsKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLnRoZW4oKFQpID0+CiAgICAgICAgICAgICAgUiAhPT0gdSAmJiB1CiAgICAgICAgICAgICAgICA/IHUKICAgICAgICAgICAgICAgIDogKFQgJiYKICAgICAgICAgICAgICAgICAgKFQuX19lc01vZHVsZSB8fCBUW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICJNb2R1bGUiKSAmJgogICAgICAgICAgICAgICAgICAoVCA9IFQuZGVmYXVsdCksCiAgICAgICAgICAgICAgICAgIChkID0gVCksCiAgICAgICAgICAgICAgICAgIFQpCiAgICAgICAgICAgICkpCiAgICAgICk7CiAgICB9OwogIHJldHVybiBkZWZpbmVDb21wb25lbnQkMSh7CiAgICBuYW1lOiAiQXN5bmNDb21wb25lbnRXcmFwcGVyIiwKICAgIF9fYXN5bmNMb2FkZXI6IFAsCiAgICBfX2FzeW5jSHlkcmF0ZShSLCBULCBNKSB7CiAgICAgIGNvbnN0IHggPSBhCiAgICAgICAgPyAoKSA9PiB7CiAgICAgICAgICBjb25zdCBrID0gYShNLCAoUykgPT4gZm9yRWFjaEVsZW1lbnQoUiwgUykpOwogICAgICAgICAgayAmJiAoVC5idW0gfHwgKFQuYnVtID0gW10pKS5wdXNoKGspOwogICAgICAgIH0KICAgICAgICA6IE07CiAgICAgIGQgPyB4KCkgOiBQKCkudGhlbigoKSA9PiAhVC5pc1VubW91bnRlZCAmJiB4KCkpOwogICAgfSwKICAgIGdldCBfX2FzeW5jUmVzb2x2ZWQoKSB7CiAgICAgIHJldHVybiBkOwogICAgfSwKICAgIHNldHVwKCkgewogICAgICBjb25zdCBSID0gY3VycmVudEluc3RhbmNlOwogICAgICBpZiAoKG1hcmtBc3luY0JvdW5kYXJ5KFIpLCBkKSkgcmV0dXJuICgpID0+IGNyZWF0ZUlubmVyQ29tcChkLCBSKTsKICAgICAgY29uc3QgVCA9IChTKSA9PiB7CiAgICAgICAgKHUgPSBudWxsKSwgaGFuZGxlRXJyb3IoUywgUiwgMTMsICFuKTsKICAgICAgfTsKICAgICAgaWYgKChsICYmIFIuc3VzcGVuc2UpIHx8IGlzSW5TU1JDb21wb25lbnRTZXR1cCkKICAgICAgICByZXR1cm4gUCgpCiAgICAgICAgICAudGhlbigoUykgPT4gKCkgPT4gY3JlYXRlSW5uZXJDb21wKFMsIFIpKQogICAgICAgICAgLmNhdGNoKAogICAgICAgICAgICAoUykgPT4gKFQoUyksICgpID0+IChuID8gY3JlYXRlVk5vZGUobiwgeyBlcnJvcjogUyB9KSA6IG51bGwpKQogICAgICAgICAgKTsKICAgICAgY29uc3QgTSA9IHJlZighMSksCiAgICAgICAgeCA9IHJlZigpLAogICAgICAgIGsgPSByZWYoISFpKTsKICAgICAgcmV0dXJuICgKICAgICAgICBpICYmCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICBrLnZhbHVlID0gITE7CiAgICAgICAgfSwgaSksCiAgICAgICAgbyAhPSBudWxsICYmCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICBpZiAoIU0udmFsdWUgJiYgIXgudmFsdWUpIHsKICAgICAgICAgICAgY29uc3QgUyA9IG5ldyBFcnJvcihgQXN5bmMgY29tcG9uZW50IHRpbWVkIG91dCBhZnRlciAke299bXMuYCk7CiAgICAgICAgICAgIFQoUyksICh4LnZhbHVlID0gUyk7CiAgICAgICAgICB9CiAgICAgICAgfSwgbyksCiAgICAgICAgUCgpCiAgICAgICAgICAudGhlbigoKSA9PiB7CiAgICAgICAgICAgIChNLnZhbHVlID0gITApLAogICAgICAgICAgICAgIFIucGFyZW50ICYmIGlzS2VlcEFsaXZlKFIucGFyZW50LnZub2RlKSAmJiBSLnBhcmVudC51cGRhdGUoKTsKICAgICAgICAgIH0pCiAgICAgICAgICAuY2F0Y2goKFMpID0+IHsKICAgICAgICAgICAgVChTKSwgKHgudmFsdWUgPSBTKTsKICAgICAgICAgIH0pLAogICAgICAgICgpID0+IHsKICAgICAgICAgIGlmIChNLnZhbHVlICYmIGQpIHJldHVybiBjcmVhdGVJbm5lckNvbXAoZCwgUik7CiAgICAgICAgICBpZiAoeC52YWx1ZSAmJiBuKSByZXR1cm4gY3JlYXRlVk5vZGUobiwgeyBlcnJvcjogeC52YWx1ZSB9KTsKICAgICAgICAgIGlmIChyICYmICFrLnZhbHVlKSByZXR1cm4gY3JlYXRlVk5vZGUocik7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICB9KTsKfQpmdW5jdGlvbiBjcmVhdGVJbm5lckNvbXAoZSwgdCkgewogIGNvbnN0IHsgcmVmOiByLCBwcm9wczogbiwgY2hpbGRyZW46IGksIGNlOiBhIH0gPSB0LnZub2RlLAogICAgbyA9IGNyZWF0ZVZOb2RlKGUsIG4sIGkpOwogIHJldHVybiAoby5yZWYgPSByKSwgKG8uY2UgPSBhKSwgZGVsZXRlIHQudm5vZGUuY2UsIG87Cn0KY29uc3QgaXNLZWVwQWxpdmUgPSAoZSkgPT4gZS50eXBlLl9faXNLZWVwQWxpdmUsCiAgS2VlcEFsaXZlSW1wbCA9IHsKICAgIG5hbWU6ICJLZWVwQWxpdmUiLAogICAgX19pc0tlZXBBbGl2ZTogITAsCiAgICBwcm9wczogewogICAgICBpbmNsdWRlOiBbU3RyaW5nLCBSZWdFeHAsIEFycmF5XSwKICAgICAgZXhjbHVkZTogW1N0cmluZywgUmVnRXhwLCBBcnJheV0sCiAgICAgIG1heDogW1N0cmluZywgTnVtYmVyXSwKICAgIH0sCiAgICBzZXR1cChlLCB7IHNsb3RzOiB0IH0pIHsKICAgICAgY29uc3QgciA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICAgICAgbiA9IHIuY3R4OwogICAgICBpZiAoIW4ucmVuZGVyZXIpCiAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgIGNvbnN0IGsgPSB0LmRlZmF1bHQgJiYgdC5kZWZhdWx0KCk7CiAgICAgICAgICByZXR1cm4gayAmJiBrLmxlbmd0aCA9PT0gMSA/IGtbMF0gOiBrOwogICAgICAgIH07CiAgICAgIGNvbnN0IGkgPSBuZXcgTWFwKCksCiAgICAgICAgYSA9IG5ldyBTZXQoKTsKICAgICAgbGV0IG8gPSBudWxsOwogICAgICBjb25zdCBsID0gci5zdXNwZW5zZSwKICAgICAgICB7CiAgICAgICAgICByZW5kZXJlcjogewogICAgICAgICAgICBwOiBjLAogICAgICAgICAgICBtOiB1LAogICAgICAgICAgICB1bTogZCwKICAgICAgICAgICAgbzogeyBjcmVhdGVFbGVtZW50OiBFIH0sCiAgICAgICAgICB9LAogICAgICAgIH0gPSBuLAogICAgICAgIGIgPSBFKCJkaXYiKTsKICAgICAgKG4uYWN0aXZhdGUgPSAoaywgUywgQSwgTywgRikgPT4gewogICAgICAgIGNvbnN0IEQgPSBrLmNvbXBvbmVudDsKICAgICAgICB1KGssIFMsIEEsIDAsIGwpLAogICAgICAgICAgYyhELnZub2RlLCBrLCBTLCBBLCBELCBsLCBPLCBrLnNsb3RTY29wZUlkcywgRiksCiAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgICAoRC5pc0RlYWN0aXZhdGVkID0gITEpLCBELmEgJiYgaW52b2tlQXJyYXlGbnMoRC5hKTsKICAgICAgICAgICAgY29uc3QgSCA9IGsucHJvcHMgJiYgay5wcm9wcy5vblZub2RlTW91bnRlZDsKICAgICAgICAgICAgSCAmJiBpbnZva2VWTm9kZUhvb2soSCwgRC5wYXJlbnQsIGspOwogICAgICAgICAgfSwgbCk7CiAgICAgIH0pLAogICAgICAgIChuLmRlYWN0aXZhdGUgPSAoaykgPT4gewogICAgICAgICAgY29uc3QgUyA9IGsuY29tcG9uZW50OwogICAgICAgICAgaW52YWxpZGF0ZU1vdW50KFMubSksCiAgICAgICAgICAgIGludmFsaWRhdGVNb3VudChTLmEpLAogICAgICAgICAgICB1KGssIGIsIG51bGwsIDEsIGwpLAogICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgICAgIFMuZGEgJiYgaW52b2tlQXJyYXlGbnMoUy5kYSk7CiAgICAgICAgICAgICAgY29uc3QgQSA9IGsucHJvcHMgJiYgay5wcm9wcy5vblZub2RlVW5tb3VudGVkOwogICAgICAgICAgICAgIEEgJiYgaW52b2tlVk5vZGVIb29rKEEsIFMucGFyZW50LCBrKSwgKFMuaXNEZWFjdGl2YXRlZCA9ICEwKTsKICAgICAgICAgICAgfSwgbCk7CiAgICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIFAoaykgewogICAgICAgIHJlc2V0U2hhcGVGbGFnKGspLCBkKGssIHIsIGwsICEwKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBSKGspIHsKICAgICAgICBpLmZvckVhY2goKFMsIEEpID0+IHsKICAgICAgICAgIGNvbnN0IE8gPSBnZXRDb21wb25lbnROYW1lKFMudHlwZSk7CiAgICAgICAgICBPICYmICFrKE8pICYmIFQoQSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gVChrKSB7CiAgICAgICAgY29uc3QgUyA9IGkuZ2V0KGspOwogICAgICAgIFMgJiYgKCFvIHx8ICFpc1NhbWVWTm9kZVR5cGUoUywgbykpID8gUChTKSA6IG8gJiYgcmVzZXRTaGFwZUZsYWcobyksCiAgICAgICAgICBpLmRlbGV0ZShrKSwKICAgICAgICAgIGEuZGVsZXRlKGspOwogICAgICB9CiAgICAgIHdhdGNoKAogICAgICAgICgpID0+IFtlLmluY2x1ZGUsIGUuZXhjbHVkZV0sCiAgICAgICAgKFtrLCBTXSkgPT4gewogICAgICAgICAgayAmJiBSKChBKSA9PiBtYXRjaGVzKGssIEEpKSwgUyAmJiBSKChBKSA9PiAhbWF0Y2hlcyhTLCBBKSk7CiAgICAgICAgfSwKICAgICAgICB7IGZsdXNoOiAicG9zdCIsIGRlZXA6ICEwIH0KICAgICAgKTsKICAgICAgbGV0IE0gPSBudWxsOwogICAgICBjb25zdCB4ID0gKCkgPT4gewogICAgICAgIE0gIT0gbnVsbCAmJgogICAgICAgICAgKGlzU3VzcGVuc2Uoci5zdWJUcmVlLnR5cGUpCiAgICAgICAgICAgID8gcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IHsKICAgICAgICAgICAgICBpLnNldChNLCBnZXRJbm5lckNoaWxkKHIuc3ViVHJlZSkpOwogICAgICAgICAgICB9LCByLnN1YlRyZWUuc3VzcGVuc2UpCiAgICAgICAgICAgIDogaS5zZXQoTSwgZ2V0SW5uZXJDaGlsZChyLnN1YlRyZWUpKSk7CiAgICAgIH07CiAgICAgIHJldHVybiAoCiAgICAgICAgb25Nb3VudGVkKHgpLAogICAgICAgIG9uVXBkYXRlZCh4KSwKICAgICAgICBvbkJlZm9yZVVubW91bnQoKCkgPT4gewogICAgICAgICAgaS5mb3JFYWNoKChrKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHsgc3ViVHJlZTogUywgc3VzcGVuc2U6IEEgfSA9IHIsCiAgICAgICAgICAgICAgTyA9IGdldElubmVyQ2hpbGQoUyk7CiAgICAgICAgICAgIGlmIChrLnR5cGUgPT09IE8udHlwZSAmJiBrLmtleSA9PT0gTy5rZXkpIHsKICAgICAgICAgICAgICByZXNldFNoYXBlRmxhZyhPKTsKICAgICAgICAgICAgICBjb25zdCBGID0gTy5jb21wb25lbnQuZGE7CiAgICAgICAgICAgICAgRiAmJiBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoRiwgQSk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFAoayk7CiAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBpZiAoKChNID0gbnVsbCksICF0LmRlZmF1bHQpKSByZXR1cm4gKG8gPSBudWxsKTsKICAgICAgICAgIGNvbnN0IGsgPSB0LmRlZmF1bHQoKSwKICAgICAgICAgICAgUyA9IGtbMF07CiAgICAgICAgICBpZiAoay5sZW5ndGggPiAxKSByZXR1cm4gKG8gPSBudWxsKSwgazsKICAgICAgICAgIGlmICghaXNWTm9kZSQxKFMpIHx8ICghKFMuc2hhcGVGbGFnICYgNCkgJiYgIShTLnNoYXBlRmxhZyAmIDEyOCkpKQogICAgICAgICAgICByZXR1cm4gKG8gPSBudWxsKSwgUzsKICAgICAgICAgIGxldCBBID0gZ2V0SW5uZXJDaGlsZChTKTsKICAgICAgICAgIGlmIChBLnR5cGUgPT09IENvbW1lbnQpIHJldHVybiAobyA9IG51bGwpLCBBOwogICAgICAgICAgY29uc3QgTyA9IEEudHlwZSwKICAgICAgICAgICAgRiA9IGdldENvbXBvbmVudE5hbWUoCiAgICAgICAgICAgICAgaXNBc3luY1dyYXBwZXIoQSkgPyBBLnR5cGUuX19hc3luY1Jlc29sdmVkIHx8IHt9IDogTwogICAgICAgICAgICApLAogICAgICAgICAgICB7IGluY2x1ZGU6IEQsIGV4Y2x1ZGU6IEgsIG1heDogJCB9ID0gZTsKICAgICAgICAgIGlmICgoRCAmJiAoIUYgfHwgIW1hdGNoZXMoRCwgRikpKSB8fCAoSCAmJiBGICYmIG1hdGNoZXMoSCwgRikpKQogICAgICAgICAgICByZXR1cm4gKEEuc2hhcGVGbGFnICY9IC0yNTcpLCAobyA9IEEpLCBTOwogICAgICAgICAgY29uc3QgcSA9IEEua2V5ID09IG51bGwgPyBPIDogQS5rZXksCiAgICAgICAgICAgIEogPSBpLmdldChxKTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIEEuZWwgJiYKICAgICAgICAgICAgKChBID0gY2xvbmVWTm9kZShBKSksIFMuc2hhcGVGbGFnICYgMTI4ICYmIChTLnNzQ29udGVudCA9IEEpKSwKICAgICAgICAgICAgKE0gPSBxKSwKICAgICAgICAgICAgSgogICAgICAgICAgICAgID8gKChBLmVsID0gSi5lbCksCiAgICAgICAgICAgICAgICAoQS5jb21wb25lbnQgPSBKLmNvbXBvbmVudCksCiAgICAgICAgICAgICAgICBBLnRyYW5zaXRpb24gJiYgc2V0VHJhbnNpdGlvbkhvb2tzKEEsIEEudHJhbnNpdGlvbiksCiAgICAgICAgICAgICAgICAoQS5zaGFwZUZsYWcgfD0gNTEyKSwKICAgICAgICAgICAgICAgIGEuZGVsZXRlKHEpLAogICAgICAgICAgICAgICAgYS5hZGQocSkpCiAgICAgICAgICAgICAgOiAoYS5hZGQocSksCiAgICAgICAgICAgICAgICAkICYmIGEuc2l6ZSA+IHBhcnNlSW50KCQsIDEwKSAmJiBUKGEudmFsdWVzKCkubmV4dCgpLnZhbHVlKSksCiAgICAgICAgICAgIChBLnNoYXBlRmxhZyB8PSAyNTYpLAogICAgICAgICAgICAobyA9IEEpLAogICAgICAgICAgICBpc1N1c3BlbnNlKFMudHlwZSkgPyBTIDogQQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICk7CiAgICB9LAogIH0sCiAgS2VlcEFsaXZlID0gS2VlcEFsaXZlSW1wbDsKZnVuY3Rpb24gbWF0Y2hlcyhlLCB0KSB7CiAgcmV0dXJuIGlzQXJyYXkkMihlKQogICAgPyBlLnNvbWUoKHIpID0+IG1hdGNoZXMociwgdCkpCiAgICA6IGlzU3RyaW5nJDEoZSkKICAgICAgPyBlLnNwbGl0KCIsIikuaW5jbHVkZXModCkKICAgICAgOiBpc1JlZ0V4cCQxKGUpCiAgICAgICAgPyAoKGUubGFzdEluZGV4ID0gMCksIGUudGVzdCh0KSkKICAgICAgICA6ICExOwp9CmZ1bmN0aW9uIG9uQWN0aXZhdGVkKGUsIHQpIHsKICByZWdpc3RlcktlZXBBbGl2ZUhvb2soZSwgImEiLCB0KTsKfQpmdW5jdGlvbiBvbkRlYWN0aXZhdGVkKGUsIHQpIHsKICByZWdpc3RlcktlZXBBbGl2ZUhvb2soZSwgImRhIiwgdCk7Cn0KZnVuY3Rpb24gcmVnaXN0ZXJLZWVwQWxpdmVIb29rKGUsIHQsIHIgPSBjdXJyZW50SW5zdGFuY2UpIHsKICBjb25zdCBuID0KICAgIGUuX193ZGMgfHwKICAgIChlLl9fd2RjID0gKCkgPT4gewogICAgICBsZXQgaSA9IHI7CiAgICAgIGZvciAoOyBpOykgewogICAgICAgIGlmIChpLmlzRGVhY3RpdmF0ZWQpIHJldHVybjsKICAgICAgICBpID0gaS5wYXJlbnQ7CiAgICAgIH0KICAgICAgcmV0dXJuIGUoKTsKICAgIH0pOwogIGlmICgoaW5qZWN0SG9vayh0LCBuLCByKSwgcikpIHsKICAgIGxldCBpID0gci5wYXJlbnQ7CiAgICBmb3IgKDsgaSAmJiBpLnBhcmVudDspCiAgICAgIGlzS2VlcEFsaXZlKGkucGFyZW50LnZub2RlKSAmJiBpbmplY3RUb0tlZXBBbGl2ZVJvb3QobiwgdCwgciwgaSksCiAgICAgICAgKGkgPSBpLnBhcmVudCk7CiAgfQp9CmZ1bmN0aW9uIGluamVjdFRvS2VlcEFsaXZlUm9vdChlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9IGluamVjdEhvb2sodCwgZSwgbiwgITApOwogIG9uVW5tb3VudGVkKCgpID0+IHsKICAgIHJlbW92ZShuW3RdLCBpKTsKICB9LCByKTsKfQpmdW5jdGlvbiByZXNldFNoYXBlRmxhZyhlKSB7CiAgKGUuc2hhcGVGbGFnICY9IC0yNTcpLCAoZS5zaGFwZUZsYWcgJj0gLTUxMyk7Cn0KZnVuY3Rpb24gZ2V0SW5uZXJDaGlsZChlKSB7CiAgcmV0dXJuIGUuc2hhcGVGbGFnICYgMTI4ID8gZS5zc0NvbnRlbnQgOiBlOwp9CmZ1bmN0aW9uIGluamVjdEhvb2soZSwgdCwgciA9IGN1cnJlbnRJbnN0YW5jZSwgbiA9ICExKSB7CiAgaWYgKHIpIHsKICAgIGNvbnN0IGkgPSByW2VdIHx8IChyW2VdID0gW10pLAogICAgICBhID0KICAgICAgICB0Ll9fd2VoIHx8CiAgICAgICAgKHQuX193ZWggPSAoLi4ubykgPT4gewogICAgICAgICAgcGF1c2VUcmFja2luZygpOwogICAgICAgICAgY29uc3QgbCA9IHNldEN1cnJlbnRJbnN0YW5jZShyKSwKICAgICAgICAgICAgYyA9IGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKHQsIHIsIGUsIG8pOwogICAgICAgICAgcmV0dXJuIGwoKSwgcmVzZXRUcmFja2luZygpLCBjOwogICAgICAgIH0pOwogICAgcmV0dXJuIG4gPyBpLnVuc2hpZnQoYSkgOiBpLnB1c2goYSksIGE7CiAgfQp9CmNvbnN0IGNyZWF0ZUhvb2sgPQogIChlKSA9PgogICAgKHQsIHIgPSBjdXJyZW50SW5zdGFuY2UpID0+IHsKICAgICAgKCFpc0luU1NSQ29tcG9uZW50U2V0dXAgfHwgZSA9PT0gInNwIikgJiYKICAgICAgICBpbmplY3RIb29rKGUsICguLi5uKSA9PiB0KC4uLm4pLCByKTsKICAgIH0sCiAgb25CZWZvcmVNb3VudCA9IGNyZWF0ZUhvb2soImJtIiksCiAgb25Nb3VudGVkID0gY3JlYXRlSG9vaygibSIpLAogIG9uQmVmb3JlVXBkYXRlID0gY3JlYXRlSG9vaygiYnUiKSwKICBvblVwZGF0ZWQgPSBjcmVhdGVIb29rKCJ1IiksCiAgb25CZWZvcmVVbm1vdW50ID0gY3JlYXRlSG9vaygiYnVtIiksCiAgb25Vbm1vdW50ZWQgPSBjcmVhdGVIb29rKCJ1bSIpLAogIG9uU2VydmVyUHJlZmV0Y2ggPSBjcmVhdGVIb29rKCJzcCIpLAogIG9uUmVuZGVyVHJpZ2dlcmVkID0gY3JlYXRlSG9vaygicnRnIiksCiAgb25SZW5kZXJUcmFja2VkID0gY3JlYXRlSG9vaygicnRjIik7CmZ1bmN0aW9uIG9uRXJyb3JDYXB0dXJlZChlLCB0ID0gY3VycmVudEluc3RhbmNlKSB7CiAgaW5qZWN0SG9vaygiZWMiLCBlLCB0KTsKfQpjb25zdCBDT01QT05FTlRTID0gImNvbXBvbmVudHMiLAogIERJUkVDVElWRVMgPSAiZGlyZWN0aXZlcyI7CmZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQoZSwgdCkgewogIHJldHVybiByZXNvbHZlQXNzZXQoQ09NUE9ORU5UUywgZSwgITAsIHQpIHx8IGU7Cn0KY29uc3QgTlVMTF9EWU5BTUlDX0NPTVBPTkVOVCA9IFN5bWJvbC5mb3IoInYtbmRjIik7CmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljQ29tcG9uZW50KGUpIHsKICByZXR1cm4gaXNTdHJpbmckMShlKQogICAgPyByZXNvbHZlQXNzZXQoQ09NUE9ORU5UUywgZSwgITEpIHx8IGUKICAgIDogZSB8fCBOVUxMX0RZTkFNSUNfQ09NUE9ORU5UOwp9CmZ1bmN0aW9uIHJlc29sdmVEaXJlY3RpdmUoZSkgewogIHJldHVybiByZXNvbHZlQXNzZXQoRElSRUNUSVZFUywgZSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZUFzc2V0KGUsIHQsIHIgPSAhMCwgbiA9ICExKSB7CiAgY29uc3QgaSA9IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSB8fCBjdXJyZW50SW5zdGFuY2U7CiAgaWYgKGkpIHsKICAgIGNvbnN0IGEgPSBpLnR5cGU7CiAgICBpZiAoZSA9PT0gQ09NUE9ORU5UUykgewogICAgICBjb25zdCBsID0gZ2V0Q29tcG9uZW50TmFtZShhLCAhMSk7CiAgICAgIGlmICgKICAgICAgICBsICYmCiAgICAgICAgKGwgPT09IHQgfHwgbCA9PT0gY2FtZWxpemUodCkgfHwgbCA9PT0gY2FwaXRhbGl6ZSQxKGNhbWVsaXplKHQpKSkKICAgICAgKQogICAgICAgIHJldHVybiBhOwogICAgfQogICAgY29uc3QgbyA9IHJlc29sdmUkMShpW2VdIHx8IGFbZV0sIHQpIHx8IHJlc29sdmUkMShpLmFwcENvbnRleHRbZV0sIHQpOwogICAgcmV0dXJuICFvICYmIG4gPyBhIDogbzsKICB9Cn0KZnVuY3Rpb24gcmVzb2x2ZSQxKGUsIHQpIHsKICByZXR1cm4gZSAmJiAoZVt0XSB8fCBlW2NhbWVsaXplKHQpXSB8fCBlW2NhcGl0YWxpemUkMShjYW1lbGl6ZSh0KSldKTsKfQpmdW5jdGlvbiByZW5kZXJMaXN0KGUsIHQsIHIsIG4pIHsKICBsZXQgaTsKICBjb25zdCBhID0gciAmJiByW25dLAogICAgbyA9IGlzQXJyYXkkMihlKTsKICBpZiAobyB8fCBpc1N0cmluZyQxKGUpKSB7CiAgICBjb25zdCBsID0gbyAmJiBpc1JlYWN0aXZlKGUpOwogICAgbGV0IGMgPSAhMTsKICAgIGwgJiYgKChjID0gIWlzU2hhbGxvdyhlKSksIChlID0gc2hhbGxvd1JlYWRBcnJheShlKSkpLAogICAgICAoaSA9IG5ldyBBcnJheShlLmxlbmd0aCkpOwogICAgZm9yIChsZXQgdSA9IDAsIGQgPSBlLmxlbmd0aDsgdSA8IGQ7IHUrKykKICAgICAgaVt1XSA9IHQoYyA/IHRvUmVhY3RpdmUoZVt1XSkgOiBlW3VdLCB1LCB2b2lkIDAsIGEgJiYgYVt1XSk7CiAgfSBlbHNlIGlmICh0eXBlb2YgZSA9PSAibnVtYmVyIikgewogICAgaSA9IG5ldyBBcnJheShlKTsKICAgIGZvciAobGV0IGwgPSAwOyBsIDwgZTsgbCsrKSBpW2xdID0gdChsICsgMSwgbCwgdm9pZCAwLCBhICYmIGFbbF0pOwogIH0gZWxzZSBpZiAoaXNPYmplY3QkMihlKSkKICAgIGlmIChlW1N5bWJvbC5pdGVyYXRvcl0pCiAgICAgIGkgPSBBcnJheS5mcm9tKGUsIChsLCBjKSA9PiB0KGwsIGMsIHZvaWQgMCwgYSAmJiBhW2NdKSk7CiAgICBlbHNlIHsKICAgICAgY29uc3QgbCA9IE9iamVjdC5rZXlzKGUpOwogICAgICBpID0gbmV3IEFycmF5KGwubGVuZ3RoKTsKICAgICAgZm9yIChsZXQgYyA9IDAsIHUgPSBsLmxlbmd0aDsgYyA8IHU7IGMrKykgewogICAgICAgIGNvbnN0IGQgPSBsW2NdOwogICAgICAgIGlbY10gPSB0KGVbZF0sIGQsIGMsIGEgJiYgYVtjXSk7CiAgICAgIH0KICAgIH0KICBlbHNlIGkgPSBbXTsKICByZXR1cm4gciAmJiAocltuXSA9IGkpLCBpOwp9CmZ1bmN0aW9uIGNyZWF0ZVNsb3RzKGUsIHQpIHsKICBmb3IgKGxldCByID0gMDsgciA8IHQubGVuZ3RoOyByKyspIHsKICAgIGNvbnN0IG4gPSB0W3JdOwogICAgaWYgKGlzQXJyYXkkMihuKSkgZm9yIChsZXQgaSA9IDA7IGkgPCBuLmxlbmd0aDsgaSsrKSBlW25baV0ubmFtZV0gPSBuW2ldLmZuOwogICAgZWxzZQogICAgICBuICYmCiAgICAgICAgKGVbbi5uYW1lXSA9IG4ua2V5CiAgICAgICAgICA/ICguLi5pKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IGEgPSBuLmZuKC4uLmkpOwogICAgICAgICAgICByZXR1cm4gYSAmJiAoYS5rZXkgPSBuLmtleSksIGE7CiAgICAgICAgICB9CiAgICAgICAgICA6IG4uZm4pOwogIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiByZW5kZXJTbG90KGUsIHQsIHIgPSB7fSwgbiwgaSkgewogIGlmICgKICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5jZSB8fAogICAgKGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5wYXJlbnQgJiYKICAgICAgaXNBc3luY1dyYXBwZXIoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLnBhcmVudCkgJiYKICAgICAgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLnBhcmVudC5jZSkKICApCiAgICByZXR1cm4gKAogICAgICB0ICE9PSAiZGVmYXVsdCIgJiYgKHIubmFtZSA9IHQpLAogICAgICBvcGVuQmxvY2soKSwKICAgICAgY3JlYXRlQmxvY2soRnJhZ21lbnQsIG51bGwsIFtjcmVhdGVWTm9kZSgic2xvdCIsIHIsIG4gJiYgbigpKV0sIDY0KQogICAgKTsKICBsZXQgYSA9IGVbdF07CiAgYSAmJiBhLl9jICYmIChhLl9kID0gITEpLCBvcGVuQmxvY2soKTsKICBjb25zdCBvID0gYSAmJiBlbnN1cmVWYWxpZFZOb2RlJDEoYShyKSksCiAgICBsID0gci5rZXkgfHwgKG8gJiYgby5rZXkpLAogICAgYyA9IGNyZWF0ZUJsb2NrKAogICAgICBGcmFnbWVudCwKICAgICAgeyBrZXk6IChsICYmICFpc1N5bWJvbCQxKGwpID8gbCA6IGBfJHt0fWApICsgKCFvICYmIG4gPyAiX2ZiIiA6ICIiKSB9LAogICAgICBvIHx8IChuID8gbigpIDogW10pLAogICAgICBvICYmIGUuXyA9PT0gMSA/IDY0IDogLTIKICAgICk7CiAgcmV0dXJuICgKICAgICFpICYmIGMuc2NvcGVJZCAmJiAoYy5zbG90U2NvcGVJZHMgPSBbYy5zY29wZUlkICsgIi1zIl0pLAogICAgYSAmJiBhLl9jICYmIChhLl9kID0gITApLAogICAgYwogICk7Cn0KZnVuY3Rpb24gZW5zdXJlVmFsaWRWTm9kZSQxKGUpIHsKICByZXR1cm4gZS5zb21lKCh0KSA9PgogICAgaXNWTm9kZSQxKHQpCiAgICAgID8gISgKICAgICAgICB0LnR5cGUgPT09IENvbW1lbnQgfHwKICAgICAgICAodC50eXBlID09PSBGcmFnbWVudCAmJiAhZW5zdXJlVmFsaWRWTm9kZSQxKHQuY2hpbGRyZW4pKQogICAgICApCiAgICAgIDogITAKICApCiAgICA/IGUKICAgIDogbnVsbDsKfQpmdW5jdGlvbiB0b0hhbmRsZXJzKGUsIHQpIHsKICBjb25zdCByID0ge307CiAgZm9yIChjb25zdCBuIGluIGUpCiAgICByW3QgJiYgL1tBLVpdLy50ZXN0KG4pID8gYG9uOiR7bn1gIDogdG9IYW5kbGVyS2V5KG4pXSA9IGVbbl07CiAgcmV0dXJuIHI7Cn0KY29uc3QgZ2V0UHVibGljSW5zdGFuY2UgPSAoZSkgPT4KICBlCiAgICA/IGlzU3RhdGVmdWxDb21wb25lbnQoZSkKICAgICAgPyBnZXRDb21wb25lbnRQdWJsaWNJbnN0YW5jZShlKQogICAgICA6IGdldFB1YmxpY0luc3RhbmNlKGUucGFyZW50KQogICAgOiBudWxsLAogIHB1YmxpY1Byb3BlcnRpZXNNYXAgPSBleHRlbmQoT2JqZWN0LmNyZWF0ZShudWxsKSwgewogICAgJDogKGUpID0+IGUsCiAgICAkZWw6IChlKSA9PiBlLnZub2RlLmVsLAogICAgJGRhdGE6IChlKSA9PiBlLmRhdGEsCiAgICAkcHJvcHM6IChlKSA9PiBlLnByb3BzLAogICAgJGF0dHJzOiAoZSkgPT4gZS5hdHRycywKICAgICRzbG90czogKGUpID0+IGUuc2xvdHMsCiAgICAkcmVmczogKGUpID0+IGUucmVmcywKICAgICRwYXJlbnQ6IChlKSA9PiBnZXRQdWJsaWNJbnN0YW5jZShlLnBhcmVudCksCiAgICAkcm9vdDogKGUpID0+IGdldFB1YmxpY0luc3RhbmNlKGUucm9vdCksCiAgICAkaG9zdDogKGUpID0+IGUuY2UsCiAgICAkZW1pdDogKGUpID0+IGUuZW1pdCwKICAgICRvcHRpb25zOiAoZSkgPT4gcmVzb2x2ZU1lcmdlZE9wdGlvbnMoZSksCiAgICAkZm9yY2VVcGRhdGU6IChlKSA9PgogICAgICBlLmYgfHwKICAgICAgKGUuZiA9ICgpID0+IHsKICAgICAgICBxdWV1ZUpvYihlLnVwZGF0ZSk7CiAgICAgIH0pLAogICAgJG5leHRUaWNrOiAoZSkgPT4gZS5uIHx8IChlLm4gPSBuZXh0VGljay5iaW5kKGUucHJveHkpKSwKICAgICR3YXRjaDogKGUpID0+IGluc3RhbmNlV2F0Y2guYmluZChlKSwKICB9KSwKICBoYXNTZXR1cEJpbmRpbmcgPSAoZSwgdCkgPT4KICAgIGUgIT09IEVNUFRZX09CSiAmJiAhZS5fX2lzU2NyaXB0U2V0dXAgJiYgaGFzT3duJDEoZSwgdCksCiAgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzID0gewogICAgZ2V0KHsgXzogZSB9LCB0KSB7CiAgICAgIGlmICh0ID09PSAiX192X3NraXAiKSByZXR1cm4gITA7CiAgICAgIGNvbnN0IHsKICAgICAgICBjdHg6IHIsCiAgICAgICAgc2V0dXBTdGF0ZTogbiwKICAgICAgICBkYXRhOiBpLAogICAgICAgIHByb3BzOiBhLAogICAgICAgIGFjY2Vzc0NhY2hlOiBvLAogICAgICAgIHR5cGU6IGwsCiAgICAgICAgYXBwQ29udGV4dDogYywKICAgICAgfSA9IGU7CiAgICAgIGxldCB1OwogICAgICBpZiAodFswXSAhPT0gIiQiKSB7CiAgICAgICAgY29uc3QgUCA9IG9bdF07CiAgICAgICAgaWYgKFAgIT09IHZvaWQgMCkKICAgICAgICAgIHN3aXRjaCAoUCkgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgcmV0dXJuIG5bdF07CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICByZXR1cm4gaVt0XTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIHJldHVybiByW3RdOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgcmV0dXJuIGFbdF07CiAgICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBpZiAoaGFzU2V0dXBCaW5kaW5nKG4sIHQpKSByZXR1cm4gKG9bdF0gPSAxKSwgblt0XTsKICAgICAgICAgIGlmIChpICE9PSBFTVBUWV9PQkogJiYgaGFzT3duJDEoaSwgdCkpIHJldHVybiAob1t0XSA9IDIpLCBpW3RdOwogICAgICAgICAgaWYgKCh1ID0gZS5wcm9wc09wdGlvbnNbMF0pICYmIGhhc093biQxKHUsIHQpKQogICAgICAgICAgICByZXR1cm4gKG9bdF0gPSAzKSwgYVt0XTsKICAgICAgICAgIGlmIChyICE9PSBFTVBUWV9PQkogJiYgaGFzT3duJDEociwgdCkpIHJldHVybiAob1t0XSA9IDQpLCByW3RdOwogICAgICAgICAgc2hvdWxkQ2FjaGVBY2Nlc3MgJiYgKG9bdF0gPSAwKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgZCA9IHB1YmxpY1Byb3BlcnRpZXNNYXBbdF07CiAgICAgIGxldCBFLCBiOwogICAgICBpZiAoZCkgcmV0dXJuIHQgPT09ICIkYXR0cnMiICYmIHRyYWNrKGUuYXR0cnMsICJnZXQiLCAiIiksIGQoZSk7CiAgICAgIGlmICgoRSA9IGwuX19jc3NNb2R1bGVzKSAmJiAoRSA9IEVbdF0pKSByZXR1cm4gRTsKICAgICAgaWYgKHIgIT09IEVNUFRZX09CSiAmJiBoYXNPd24kMShyLCB0KSkgcmV0dXJuIChvW3RdID0gNCksIHJbdF07CiAgICAgIGlmICgoKGIgPSBjLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzKSwgaGFzT3duJDEoYiwgdCkpKSByZXR1cm4gYlt0XTsKICAgIH0sCiAgICBzZXQoeyBfOiBlIH0sIHQsIHIpIHsKICAgICAgY29uc3QgeyBkYXRhOiBuLCBzZXR1cFN0YXRlOiBpLCBjdHg6IGEgfSA9IGU7CiAgICAgIHJldHVybiBoYXNTZXR1cEJpbmRpbmcoaSwgdCkKICAgICAgICA/ICgoaVt0XSA9IHIpLCAhMCkKICAgICAgICA6IG4gIT09IEVNUFRZX09CSiAmJiBoYXNPd24kMShuLCB0KQogICAgICAgICAgPyAoKG5bdF0gPSByKSwgITApCiAgICAgICAgICA6IGhhc093biQxKGUucHJvcHMsIHQpIHx8ICh0WzBdID09PSAiJCIgJiYgdC5zbGljZSgxKSBpbiBlKQogICAgICAgICAgICA/ICExCiAgICAgICAgICAgIDogKChhW3RdID0gciksICEwKTsKICAgIH0sCiAgICBoYXMoCiAgICAgIHsKICAgICAgICBfOiB7CiAgICAgICAgICBkYXRhOiBlLAogICAgICAgICAgc2V0dXBTdGF0ZTogdCwKICAgICAgICAgIGFjY2Vzc0NhY2hlOiByLAogICAgICAgICAgY3R4OiBuLAogICAgICAgICAgYXBwQ29udGV4dDogaSwKICAgICAgICAgIHByb3BzT3B0aW9uczogYSwKICAgICAgICB9LAogICAgICB9LAogICAgICBvCiAgICApIHsKICAgICAgbGV0IGw7CiAgICAgIHJldHVybiAoCiAgICAgICAgISFyW29dIHx8CiAgICAgICAgKGUgIT09IEVNUFRZX09CSiAmJiBoYXNPd24kMShlLCBvKSkgfHwKICAgICAgICBoYXNTZXR1cEJpbmRpbmcodCwgbykgfHwKICAgICAgICAoKGwgPSBhWzBdKSAmJiBoYXNPd24kMShsLCBvKSkgfHwKICAgICAgICBoYXNPd24kMShuLCBvKSB8fAogICAgICAgIGhhc093biQxKHB1YmxpY1Byb3BlcnRpZXNNYXAsIG8pIHx8CiAgICAgICAgaGFzT3duJDEoaS5jb25maWcuZ2xvYmFsUHJvcGVydGllcywgbykKICAgICAgKTsKICAgIH0sCiAgICBkZWZpbmVQcm9wZXJ0eShlLCB0LCByKSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgci5nZXQgIT0gbnVsbAogICAgICAgICAgPyAoZS5fLmFjY2Vzc0NhY2hlW3RdID0gMCkKICAgICAgICAgIDogaGFzT3duJDEociwgInZhbHVlIikgJiYgdGhpcy5zZXQoZSwgdCwgci52YWx1ZSwgbnVsbCksCiAgICAgICAgUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0LCByKQogICAgICApOwogICAgfSwKICB9LAogIFJ1bnRpbWVDb21waWxlZFB1YmxpY0luc3RhbmNlUHJveHlIYW5kbGVycyA9IGV4dGVuZCgKICAgIHt9LAogICAgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzLAogICAgewogICAgICBnZXQoZSwgdCkgewogICAgICAgIGlmICh0ICE9PSBTeW1ib2wudW5zY29wYWJsZXMpCiAgICAgICAgICByZXR1cm4gUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzLmdldChlLCB0LCBlKTsKICAgICAgfSwKICAgICAgaGFzKGUsIHQpIHsKICAgICAgICByZXR1cm4gdFswXSAhPT0gIl8iICYmICFpc0dsb2JhbGx5QWxsb3dlZCh0KTsKICAgICAgfSwKICAgIH0KICApOwpmdW5jdGlvbiBkZWZpbmVQcm9wcygpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBkZWZpbmVFbWl0cygpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBkZWZpbmVFeHBvc2UoZSkgeyB9CmZ1bmN0aW9uIGRlZmluZU9wdGlvbnMoZSkgeyB9CmZ1bmN0aW9uIGRlZmluZVNsb3RzKCkgewogIHJldHVybiBudWxsOwp9CmZ1bmN0aW9uIGRlZmluZU1vZGVsKCkgeyB9CmZ1bmN0aW9uIHdpdGhEZWZhdWx0cyhlLCB0KSB7CiAgcmV0dXJuIG51bGw7Cn0KZnVuY3Rpb24gdXNlU2xvdHMoKSB7CiAgcmV0dXJuIGdldENvbnRleHQkMSgpLnNsb3RzOwp9CmZ1bmN0aW9uIHVzZUF0dHJzKCkgewogIHJldHVybiBnZXRDb250ZXh0JDEoKS5hdHRyczsKfQpmdW5jdGlvbiBnZXRDb250ZXh0JDEoKSB7CiAgY29uc3QgZSA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCk7CiAgcmV0dXJuIGUuc2V0dXBDb250ZXh0IHx8IChlLnNldHVwQ29udGV4dCA9IGNyZWF0ZVNldHVwQ29udGV4dChlKSk7Cn0KZnVuY3Rpb24gbm9ybWFsaXplUHJvcHNPckVtaXRzKGUpIHsKICByZXR1cm4gaXNBcnJheSQyKGUpID8gZS5yZWR1Y2UoKHQsIHIpID0+ICgodFtyXSA9IG51bGwpLCB0KSwge30pIDogZTsKfQpmdW5jdGlvbiBtZXJnZURlZmF1bHRzKGUsIHQpIHsKICBjb25zdCByID0gbm9ybWFsaXplUHJvcHNPckVtaXRzKGUpOwogIGZvciAoY29uc3QgbiBpbiB0KSB7CiAgICBpZiAobi5zdGFydHNXaXRoKCJfX3NraXAiKSkgY29udGludWU7CiAgICBsZXQgaSA9IHJbbl07CiAgICBpCiAgICAgID8gaXNBcnJheSQyKGkpIHx8IGlzRnVuY3Rpb24kMShpKQogICAgICAgID8gKGkgPSByW25dID0geyB0eXBlOiBpLCBkZWZhdWx0OiB0W25dIH0pCiAgICAgICAgOiAoaS5kZWZhdWx0ID0gdFtuXSkKICAgICAgOiBpID09PSBudWxsICYmIChpID0gcltuXSA9IHsgZGVmYXVsdDogdFtuXSB9KSwKICAgICAgaSAmJiB0W2BfX3NraXBfJHtufWBdICYmIChpLnNraXBGYWN0b3J5ID0gITApOwogIH0KICByZXR1cm4gcjsKfQpmdW5jdGlvbiBtZXJnZU1vZGVscyhlLCB0KSB7CiAgcmV0dXJuICFlIHx8ICF0CiAgICA/IGUgfHwgdAogICAgOiBpc0FycmF5JDIoZSkgJiYgaXNBcnJheSQyKHQpCiAgICAgID8gZS5jb25jYXQodCkKICAgICAgOiBleHRlbmQoe30sIG5vcm1hbGl6ZVByb3BzT3JFbWl0cyhlKSwgbm9ybWFsaXplUHJvcHNPckVtaXRzKHQpKTsKfQpmdW5jdGlvbiBjcmVhdGVQcm9wc1Jlc3RQcm94eShlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIGZvciAoY29uc3QgbiBpbiBlKQogICAgdC5pbmNsdWRlcyhuKSB8fAogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkociwgbiwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiAoKSA9PiBlW25dIH0pOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIHdpdGhBc3luY0NvbnRleHQoZSkgewogIGNvbnN0IHQgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGxldCByID0gZSgpOwogIHJldHVybiAoCiAgICB1bnNldEN1cnJlbnRJbnN0YW5jZSgpLAogICAgaXNQcm9taXNlJDEocikgJiYKICAgIChyID0gci5jYXRjaCgobikgPT4gewogICAgICB0aHJvdyAoc2V0Q3VycmVudEluc3RhbmNlKHQpLCBuKTsKICAgIH0pKSwKICAgIFtyLCAoKSA9PiBzZXRDdXJyZW50SW5zdGFuY2UodCldCiAgKTsKfQpsZXQgc2hvdWxkQ2FjaGVBY2Nlc3MgPSAhMDsKZnVuY3Rpb24gYXBwbHlPcHRpb25zKGUpIHsKICBjb25zdCB0ID0gcmVzb2x2ZU1lcmdlZE9wdGlvbnMoZSksCiAgICByID0gZS5wcm94eSwKICAgIG4gPSBlLmN0eDsKICAoc2hvdWxkQ2FjaGVBY2Nlc3MgPSAhMSksCiAgICB0LmJlZm9yZUNyZWF0ZSAmJiBjYWxsSG9vayQxKHQuYmVmb3JlQ3JlYXRlLCBlLCAiYmMiKTsKICBjb25zdCB7CiAgICBkYXRhOiBpLAogICAgY29tcHV0ZWQ6IGEsCiAgICBtZXRob2RzOiBvLAogICAgd2F0Y2g6IGwsCiAgICBwcm92aWRlOiBjLAogICAgaW5qZWN0OiB1LAogICAgY3JlYXRlZDogZCwKICAgIGJlZm9yZU1vdW50OiBFLAogICAgbW91bnRlZDogYiwKICAgIGJlZm9yZVVwZGF0ZTogUCwKICAgIHVwZGF0ZWQ6IFIsCiAgICBhY3RpdmF0ZWQ6IFQsCiAgICBkZWFjdGl2YXRlZDogTSwKICAgIGJlZm9yZURlc3Ryb3k6IHgsCiAgICBiZWZvcmVVbm1vdW50OiBrLAogICAgZGVzdHJveWVkOiBTLAogICAgdW5tb3VudGVkOiBBLAogICAgcmVuZGVyOiBPLAogICAgcmVuZGVyVHJhY2tlZDogRiwKICAgIHJlbmRlclRyaWdnZXJlZDogRCwKICAgIGVycm9yQ2FwdHVyZWQ6IEgsCiAgICBzZXJ2ZXJQcmVmZXRjaDogJCwKICAgIGV4cG9zZTogcSwKICAgIGluaGVyaXRBdHRyczogSiwKICAgIGNvbXBvbmVudHM6IEssCiAgICBkaXJlY3RpdmVzOiBlZSwKICAgIGZpbHRlcnM6IGxlLAogIH0gPSB0OwogIGlmICgodSAmJiByZXNvbHZlSW5qZWN0aW9ucyh1LCBuLCBudWxsKSwgbykpCiAgICBmb3IgKGNvbnN0IHogaW4gbykgewogICAgICBjb25zdCBOID0gb1t6XTsKICAgICAgaXNGdW5jdGlvbiQxKE4pICYmIChuW3pdID0gTi5iaW5kKHIpKTsKICAgIH0KICBpZiAoaSkgewogICAgY29uc3QgeiA9IGkuY2FsbChyLCByKTsKICAgIGlzT2JqZWN0JDIoeikgJiYgKGUuZGF0YSA9IHJlYWN0aXZlKHopKTsKICB9CiAgaWYgKCgoc2hvdWxkQ2FjaGVBY2Nlc3MgPSAhMCksIGEpKQogICAgZm9yIChjb25zdCB6IGluIGEpIHsKICAgICAgY29uc3QgTiA9IGFbel0sCiAgICAgICAgViA9IGlzRnVuY3Rpb24kMShOKQogICAgICAgICAgPyBOLmJpbmQociwgcikKICAgICAgICAgIDogaXNGdW5jdGlvbiQxKE4uZ2V0KQogICAgICAgICAgICA/IE4uZ2V0LmJpbmQociwgcikKICAgICAgICAgICAgOiBOT09QLAogICAgICAgIFEgPSAhaXNGdW5jdGlvbiQxKE4pICYmIGlzRnVuY3Rpb24kMShOLnNldCkgPyBOLnNldC5iaW5kKHIpIDogTk9PUCwKICAgICAgICBZID0gY29tcHV0ZWQoeyBnZXQ6IFYsIHNldDogUSB9KTsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIHosIHsKICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgIGdldDogKCkgPT4gWS52YWx1ZSwKICAgICAgICBzZXQ6IChoZSkgPT4gKFkudmFsdWUgPSBoZSksCiAgICAgIH0pOwogICAgfQogIGlmIChsKSBmb3IgKGNvbnN0IHogaW4gbCkgY3JlYXRlV2F0Y2hlcihsW3pdLCBuLCByLCB6KTsKICBpZiAoYykgewogICAgY29uc3QgeiA9IGlzRnVuY3Rpb24kMShjKSA/IGMuY2FsbChyKSA6IGM7CiAgICBSZWZsZWN0Lm93bktleXMoeikuZm9yRWFjaCgoTikgPT4gewogICAgICBwcm92aWRlKE4sIHpbTl0pOwogICAgfSk7CiAgfQogIGQgJiYgY2FsbEhvb2skMShkLCBlLCAiYyIpOwogIGZ1bmN0aW9uIEIoeiwgTikgewogICAgaXNBcnJheSQyKE4pID8gTi5mb3JFYWNoKChWKSA9PiB6KFYuYmluZChyKSkpIDogTiAmJiB6KE4uYmluZChyKSk7CiAgfQogIGlmICgKICAgIChCKG9uQmVmb3JlTW91bnQsIEUpLAogICAgICBCKG9uTW91bnRlZCwgYiksCiAgICAgIEIob25CZWZvcmVVcGRhdGUsIFApLAogICAgICBCKG9uVXBkYXRlZCwgUiksCiAgICAgIEIob25BY3RpdmF0ZWQsIFQpLAogICAgICBCKG9uRGVhY3RpdmF0ZWQsIE0pLAogICAgICBCKG9uRXJyb3JDYXB0dXJlZCwgSCksCiAgICAgIEIob25SZW5kZXJUcmFja2VkLCBGKSwKICAgICAgQihvblJlbmRlclRyaWdnZXJlZCwgRCksCiAgICAgIEIob25CZWZvcmVVbm1vdW50LCBrKSwKICAgICAgQihvblVubW91bnRlZCwgQSksCiAgICAgIEIob25TZXJ2ZXJQcmVmZXRjaCwgJCksCiAgICAgIGlzQXJyYXkkMihxKSkKICApCiAgICBpZiAocS5sZW5ndGgpIHsKICAgICAgY29uc3QgeiA9IGUuZXhwb3NlZCB8fCAoZS5leHBvc2VkID0ge30pOwogICAgICBxLmZvckVhY2goKE4pID0+IHsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeiwgTiwgewogICAgICAgICAgZ2V0OiAoKSA9PiByW05dLAogICAgICAgICAgc2V0OiAoVikgPT4gKHJbTl0gPSBWKSwKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9IGVsc2UgZS5leHBvc2VkIHx8IChlLmV4cG9zZWQgPSB7fSk7CiAgTyAmJiBlLnJlbmRlciA9PT0gTk9PUCAmJiAoZS5yZW5kZXIgPSBPKSwKICAgIEogIT0gbnVsbCAmJiAoZS5pbmhlcml0QXR0cnMgPSBKKSwKICAgIEsgJiYgKGUuY29tcG9uZW50cyA9IEspLAogICAgZWUgJiYgKGUuZGlyZWN0aXZlcyA9IGVlKSwKICAgICQgJiYgbWFya0FzeW5jQm91bmRhcnkoZSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZUluamVjdGlvbnMoZSwgdCwgciA9IE5PT1ApIHsKICBpc0FycmF5JDIoZSkgJiYgKGUgPSBub3JtYWxpemVJbmplY3QoZSkpOwogIGZvciAoY29uc3QgbiBpbiBlKSB7CiAgICBjb25zdCBpID0gZVtuXTsKICAgIGxldCBhOwogICAgaXNPYmplY3QkMihpKQogICAgICA/ICJkZWZhdWx0IiBpbiBpCiAgICAgICAgPyAoYSA9IGluamVjdCQxKGkuZnJvbSB8fCBuLCBpLmRlZmF1bHQsICEwKSkKICAgICAgICA6IChhID0gaW5qZWN0JDEoaS5mcm9tIHx8IG4pKQogICAgICA6IChhID0gaW5qZWN0JDEoaSkpLAogICAgICBpc1JlZihhKQogICAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIG4sIHsKICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgICAgIGdldDogKCkgPT4gYS52YWx1ZSwKICAgICAgICAgIHNldDogKG8pID0+IChhLnZhbHVlID0gbyksCiAgICAgICAgfSkKICAgICAgICA6ICh0W25dID0gYSk7CiAgfQp9CmZ1bmN0aW9uIGNhbGxIb29rJDEoZSwgdCwgcikgewogIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKAogICAgaXNBcnJheSQyKGUpID8gZS5tYXAoKG4pID0+IG4uYmluZCh0LnByb3h5KSkgOiBlLmJpbmQodC5wcm94eSksCiAgICB0LAogICAgcgogICk7Cn0KZnVuY3Rpb24gY3JlYXRlV2F0Y2hlcihlLCB0LCByLCBuKSB7CiAgbGV0IGkgPSBuLmluY2x1ZGVzKCIuIikgPyBjcmVhdGVQYXRoR2V0dGVyKHIsIG4pIDogKCkgPT4gcltuXTsKICBpZiAoaXNTdHJpbmckMShlKSkgewogICAgY29uc3QgYSA9IHRbZV07CiAgICBpc0Z1bmN0aW9uJDEoYSkgJiYgd2F0Y2goaSwgYSk7CiAgfSBlbHNlIGlmIChpc0Z1bmN0aW9uJDEoZSkpIHdhdGNoKGksIGUuYmluZChyKSk7CiAgZWxzZSBpZiAoaXNPYmplY3QkMihlKSkKICAgIGlmIChpc0FycmF5JDIoZSkpIGUuZm9yRWFjaCgoYSkgPT4gY3JlYXRlV2F0Y2hlcihhLCB0LCByLCBuKSk7CiAgICBlbHNlIHsKICAgICAgY29uc3QgYSA9IGlzRnVuY3Rpb24kMShlLmhhbmRsZXIpID8gZS5oYW5kbGVyLmJpbmQocikgOiB0W2UuaGFuZGxlcl07CiAgICAgIGlzRnVuY3Rpb24kMShhKSAmJiB3YXRjaChpLCBhLCBlKTsKICAgIH0KfQpmdW5jdGlvbiByZXNvbHZlTWVyZ2VkT3B0aW9ucyhlKSB7CiAgY29uc3QgdCA9IGUudHlwZSwKICAgIHsgbWl4aW5zOiByLCBleHRlbmRzOiBuIH0gPSB0LAogICAgewogICAgICBtaXhpbnM6IGksCiAgICAgIG9wdGlvbnNDYWNoZTogYSwKICAgICAgY29uZmlnOiB7IG9wdGlvbk1lcmdlU3RyYXRlZ2llczogbyB9LAogICAgfSA9IGUuYXBwQ29udGV4dCwKICAgIGwgPSBhLmdldCh0KTsKICBsZXQgYzsKICByZXR1cm4gKAogICAgbAogICAgICA/IChjID0gbCkKICAgICAgOiAhaS5sZW5ndGggJiYgIXIgJiYgIW4KICAgICAgICA/IChjID0gdCkKICAgICAgICA6ICgoYyA9IHt9KSwKICAgICAgICAgIGkubGVuZ3RoICYmIGkuZm9yRWFjaCgodSkgPT4gbWVyZ2VPcHRpb25zJDEoYywgdSwgbywgITApKSwKICAgICAgICAgIG1lcmdlT3B0aW9ucyQxKGMsIHQsIG8pKSwKICAgIGlzT2JqZWN0JDIodCkgJiYgYS5zZXQodCwgYyksCiAgICBjCiAgKTsKfQpmdW5jdGlvbiBtZXJnZU9wdGlvbnMkMShlLCB0LCByLCBuID0gITEpIHsKICBjb25zdCB7IG1peGluczogaSwgZXh0ZW5kczogYSB9ID0gdDsKICBhICYmIG1lcmdlT3B0aW9ucyQxKGUsIGEsIHIsICEwKSwKICAgIGkgJiYgaS5mb3JFYWNoKChvKSA9PiBtZXJnZU9wdGlvbnMkMShlLCBvLCByLCAhMCkpOwogIGZvciAoY29uc3QgbyBpbiB0KQogICAgaWYgKCEobiAmJiBvID09PSAiZXhwb3NlIikpIHsKICAgICAgY29uc3QgbCA9IGludGVybmFsT3B0aW9uTWVyZ2VTdHJhdHNbb10gfHwgKHIgJiYgcltvXSk7CiAgICAgIGVbb10gPSBsID8gbChlW29dLCB0W29dKSA6IHRbb107CiAgICB9CiAgcmV0dXJuIGU7Cn0KY29uc3QgaW50ZXJuYWxPcHRpb25NZXJnZVN0cmF0cyA9IHsKICBkYXRhOiBtZXJnZURhdGFGbiwKICBwcm9wczogbWVyZ2VFbWl0c09yUHJvcHNPcHRpb25zLAogIGVtaXRzOiBtZXJnZUVtaXRzT3JQcm9wc09wdGlvbnMsCiAgbWV0aG9kczogbWVyZ2VPYmplY3RPcHRpb25zLAogIGNvbXB1dGVkOiBtZXJnZU9iamVjdE9wdGlvbnMsCiAgYmVmb3JlQ3JlYXRlOiBtZXJnZUFzQXJyYXksCiAgY3JlYXRlZDogbWVyZ2VBc0FycmF5LAogIGJlZm9yZU1vdW50OiBtZXJnZUFzQXJyYXksCiAgbW91bnRlZDogbWVyZ2VBc0FycmF5LAogIGJlZm9yZVVwZGF0ZTogbWVyZ2VBc0FycmF5LAogIHVwZGF0ZWQ6IG1lcmdlQXNBcnJheSwKICBiZWZvcmVEZXN0cm95OiBtZXJnZUFzQXJyYXksCiAgYmVmb3JlVW5tb3VudDogbWVyZ2VBc0FycmF5LAogIGRlc3Ryb3llZDogbWVyZ2VBc0FycmF5LAogIHVubW91bnRlZDogbWVyZ2VBc0FycmF5LAogIGFjdGl2YXRlZDogbWVyZ2VBc0FycmF5LAogIGRlYWN0aXZhdGVkOiBtZXJnZUFzQXJyYXksCiAgZXJyb3JDYXB0dXJlZDogbWVyZ2VBc0FycmF5LAogIHNlcnZlclByZWZldGNoOiBtZXJnZUFzQXJyYXksCiAgY29tcG9uZW50czogbWVyZ2VPYmplY3RPcHRpb25zLAogIGRpcmVjdGl2ZXM6IG1lcmdlT2JqZWN0T3B0aW9ucywKICB3YXRjaDogbWVyZ2VXYXRjaE9wdGlvbnMsCiAgcHJvdmlkZTogbWVyZ2VEYXRhRm4sCiAgaW5qZWN0OiBtZXJnZUluamVjdCwKfTsKZnVuY3Rpb24gbWVyZ2VEYXRhRm4oZSwgdCkgewogIHJldHVybiB0CiAgICA/IGUKICAgICAgPyBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIGV4dGVuZCgKICAgICAgICAgIGlzRnVuY3Rpb24kMShlKSA/IGUuY2FsbCh0aGlzLCB0aGlzKSA6IGUsCiAgICAgICAgICBpc0Z1bmN0aW9uJDEodCkgPyB0LmNhbGwodGhpcywgdGhpcykgOiB0CiAgICAgICAgKTsKICAgICAgfQogICAgICA6IHQKICAgIDogZTsKfQpmdW5jdGlvbiBtZXJnZUluamVjdChlLCB0KSB7CiAgcmV0dXJuIG1lcmdlT2JqZWN0T3B0aW9ucyhub3JtYWxpemVJbmplY3QoZSksIG5vcm1hbGl6ZUluamVjdCh0KSk7Cn0KZnVuY3Rpb24gbm9ybWFsaXplSW5qZWN0KGUpIHsKICBpZiAoaXNBcnJheSQyKGUpKSB7CiAgICBjb25zdCB0ID0ge307CiAgICBmb3IgKGxldCByID0gMDsgciA8IGUubGVuZ3RoOyByKyspIHRbZVtyXV0gPSBlW3JdOwogICAgcmV0dXJuIHQ7CiAgfQogIHJldHVybiBlOwp9CmZ1bmN0aW9uIG1lcmdlQXNBcnJheShlLCB0KSB7CiAgcmV0dXJuIGUgPyBbLi4ubmV3IFNldChbXS5jb25jYXQoZSwgdCkpXSA6IHQ7Cn0KZnVuY3Rpb24gbWVyZ2VPYmplY3RPcHRpb25zKGUsIHQpIHsKICByZXR1cm4gZSA/IGV4dGVuZChPYmplY3QuY3JlYXRlKG51bGwpLCBlLCB0KSA6IHQ7Cn0KZnVuY3Rpb24gbWVyZ2VFbWl0c09yUHJvcHNPcHRpb25zKGUsIHQpIHsKICByZXR1cm4gZQogICAgPyBpc0FycmF5JDIoZSkgJiYgaXNBcnJheSQyKHQpCiAgICAgID8gWy4uLm5ldyBTZXQoWy4uLmUsIC4uLnRdKV0KICAgICAgOiBleHRlbmQoCiAgICAgICAgT2JqZWN0LmNyZWF0ZShudWxsKSwKICAgICAgICBub3JtYWxpemVQcm9wc09yRW1pdHMoZSksCiAgICAgICAgbm9ybWFsaXplUHJvcHNPckVtaXRzKHQgPz8ge30pCiAgICAgICkKICAgIDogdDsKfQpmdW5jdGlvbiBtZXJnZVdhdGNoT3B0aW9ucyhlLCB0KSB7CiAgaWYgKCFlKSByZXR1cm4gdDsKICBpZiAoIXQpIHJldHVybiBlOwogIGNvbnN0IHIgPSBleHRlbmQoT2JqZWN0LmNyZWF0ZShudWxsKSwgZSk7CiAgZm9yIChjb25zdCBuIGluIHQpIHJbbl0gPSBtZXJnZUFzQXJyYXkoZVtuXSwgdFtuXSk7CiAgcmV0dXJuIHI7Cn0KZnVuY3Rpb24gY3JlYXRlQXBwQ29udGV4dCgpIHsKICByZXR1cm4gewogICAgYXBwOiBudWxsLAogICAgY29uZmlnOiB7CiAgICAgIGlzTmF0aXZlVGFnOiBOTywKICAgICAgcGVyZm9ybWFuY2U6ICExLAogICAgICBnbG9iYWxQcm9wZXJ0aWVzOiB7fSwKICAgICAgb3B0aW9uTWVyZ2VTdHJhdGVnaWVzOiB7fSwKICAgICAgZXJyb3JIYW5kbGVyOiB2b2lkIDAsCiAgICAgIHdhcm5IYW5kbGVyOiB2b2lkIDAsCiAgICAgIGNvbXBpbGVyT3B0aW9uczoge30sCiAgICB9LAogICAgbWl4aW5zOiBbXSwKICAgIGNvbXBvbmVudHM6IHt9LAogICAgZGlyZWN0aXZlczoge30sCiAgICBwcm92aWRlczogT2JqZWN0LmNyZWF0ZShudWxsKSwKICAgIG9wdGlvbnNDYWNoZTogbmV3IFdlYWtNYXAoKSwKICAgIHByb3BzQ2FjaGU6IG5ldyBXZWFrTWFwKCksCiAgICBlbWl0c0NhY2hlOiBuZXcgV2Vha01hcCgpLAogIH07Cn0KbGV0IHVpZCQxID0gMDsKZnVuY3Rpb24gY3JlYXRlQXBwQVBJKGUsIHQpIHsKICByZXR1cm4gZnVuY3Rpb24gKG4sIGkgPSBudWxsKSB7CiAgICBpc0Z1bmN0aW9uJDEobikgfHwgKG4gPSBleHRlbmQoe30sIG4pKSwKICAgICAgaSAhPSBudWxsICYmICFpc09iamVjdCQyKGkpICYmIChpID0gbnVsbCk7CiAgICBjb25zdCBhID0gY3JlYXRlQXBwQ29udGV4dCgpLAogICAgICBvID0gbmV3IFdlYWtTZXQoKSwKICAgICAgbCA9IFtdOwogICAgbGV0IGMgPSAhMTsKICAgIGNvbnN0IHUgPSAoYS5hcHAgPSB7CiAgICAgIF91aWQ6IHVpZCQxKyssCiAgICAgIF9jb21wb25lbnQ6IG4sCiAgICAgIF9wcm9wczogaSwKICAgICAgX2NvbnRhaW5lcjogbnVsbCwKICAgICAgX2NvbnRleHQ6IGEsCiAgICAgIF9pbnN0YW5jZTogbnVsbCwKICAgICAgdmVyc2lvbjogdmVyc2lvbiQxLAogICAgICBnZXQgY29uZmlnKCkgewogICAgICAgIHJldHVybiBhLmNvbmZpZzsKICAgICAgfSwKICAgICAgc2V0IGNvbmZpZyhkKSB7IH0sCiAgICAgIHVzZShkLCAuLi5FKSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIG8uaGFzKGQpIHx8CiAgICAgICAgICAoZCAmJiBpc0Z1bmN0aW9uJDEoZC5pbnN0YWxsKQogICAgICAgICAgICA/IChvLmFkZChkKSwgZC5pbnN0YWxsKHUsIC4uLkUpKQogICAgICAgICAgICA6IGlzRnVuY3Rpb24kMShkKSAmJiAoby5hZGQoZCksIGQodSwgLi4uRSkpKSwKICAgICAgICAgIHUKICAgICAgICApOwogICAgICB9LAogICAgICBtaXhpbihkKSB7CiAgICAgICAgcmV0dXJuIGEubWl4aW5zLmluY2x1ZGVzKGQpIHx8IGEubWl4aW5zLnB1c2goZCksIHU7CiAgICAgIH0sCiAgICAgIGNvbXBvbmVudChkLCBFKSB7CiAgICAgICAgcmV0dXJuIEUgPyAoKGEuY29tcG9uZW50c1tkXSA9IEUpLCB1KSA6IGEuY29tcG9uZW50c1tkXTsKICAgICAgfSwKICAgICAgZGlyZWN0aXZlKGQsIEUpIHsKICAgICAgICByZXR1cm4gRSA/ICgoYS5kaXJlY3RpdmVzW2RdID0gRSksIHUpIDogYS5kaXJlY3RpdmVzW2RdOwogICAgICB9LAogICAgICBtb3VudChkLCBFLCBiKSB7CiAgICAgICAgaWYgKCFjKSB7CiAgICAgICAgICBjb25zdCBQID0gdS5fY2VWTm9kZSB8fCBjcmVhdGVWTm9kZShuLCBpKTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIChQLmFwcENvbnRleHQgPSBhKSwKICAgICAgICAgICAgYiA9PT0gITAgPyAoYiA9ICJzdmciKSA6IGIgPT09ICExICYmIChiID0gdm9pZCAwKSwKICAgICAgICAgICAgRSAmJiB0ID8gdChQLCBkKSA6IGUoUCwgZCwgYiksCiAgICAgICAgICAgIChjID0gITApLAogICAgICAgICAgICAodS5fY29udGFpbmVyID0gZCksCiAgICAgICAgICAgIChkLl9fdnVlX2FwcF9fID0gdSksCiAgICAgICAgICAgIGdldENvbXBvbmVudFB1YmxpY0luc3RhbmNlKFAuY29tcG9uZW50KQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIG9uVW5tb3VudChkKSB7CiAgICAgICAgbC5wdXNoKGQpOwogICAgICB9LAogICAgICB1bm1vdW50KCkgewogICAgICAgIGMgJiYKICAgICAgICAgIChjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhsLCB1Ll9pbnN0YW5jZSwgMTYpLAogICAgICAgICAgICBlKG51bGwsIHUuX2NvbnRhaW5lciksCiAgICAgICAgICAgIGRlbGV0ZSB1Ll9jb250YWluZXIuX192dWVfYXBwX18pOwogICAgICB9LAogICAgICBwcm92aWRlKGQsIEUpIHsKICAgICAgICByZXR1cm4gKGEucHJvdmlkZXNbZF0gPSBFKSwgdTsKICAgICAgfSwKICAgICAgcnVuV2l0aENvbnRleHQoZCkgewogICAgICAgIGNvbnN0IEUgPSBjdXJyZW50QXBwOwogICAgICAgIGN1cnJlbnRBcHAgPSB1OwogICAgICAgIHRyeSB7CiAgICAgICAgICByZXR1cm4gZCgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjdXJyZW50QXBwID0gRTsKICAgICAgICB9CiAgICAgIH0sCiAgICB9KTsKICAgIHJldHVybiB1OwogIH07Cn0KbGV0IGN1cnJlbnRBcHAgPSBudWxsOwpmdW5jdGlvbiBwcm92aWRlKGUsIHQpIHsKICBpZiAoY3VycmVudEluc3RhbmNlKSB7CiAgICBsZXQgciA9IGN1cnJlbnRJbnN0YW5jZS5wcm92aWRlczsKICAgIGNvbnN0IG4gPSBjdXJyZW50SW5zdGFuY2UucGFyZW50ICYmIGN1cnJlbnRJbnN0YW5jZS5wYXJlbnQucHJvdmlkZXM7CiAgICBuID09PSByICYmIChyID0gY3VycmVudEluc3RhbmNlLnByb3ZpZGVzID0gT2JqZWN0LmNyZWF0ZShuKSksIChyW2VdID0gdCk7CiAgfQp9CmZ1bmN0aW9uIGluamVjdCQxKGUsIHQsIHIgPSAhMSkgewogIGNvbnN0IG4gPSBjdXJyZW50SW5zdGFuY2UgfHwgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlOwogIGlmIChuIHx8IGN1cnJlbnRBcHApIHsKICAgIGNvbnN0IGkgPSBjdXJyZW50QXBwCiAgICAgID8gY3VycmVudEFwcC5fY29udGV4dC5wcm92aWRlcwogICAgICA6IG4KICAgICAgICA/IG4ucGFyZW50ID09IG51bGwKICAgICAgICAgID8gbi52bm9kZS5hcHBDb250ZXh0ICYmIG4udm5vZGUuYXBwQ29udGV4dC5wcm92aWRlcwogICAgICAgICAgOiBuLnBhcmVudC5wcm92aWRlcwogICAgICAgIDogdm9pZCAwOwogICAgaWYgKGkgJiYgZSBpbiBpKSByZXR1cm4gaVtlXTsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkKICAgICAgcmV0dXJuIHIgJiYgaXNGdW5jdGlvbiQxKHQpID8gdC5jYWxsKG4gJiYgbi5wcm94eSkgOiB0OwogIH0KfQpmdW5jdGlvbiBoYXNJbmplY3Rpb25Db250ZXh0KCkgewogIHJldHVybiAhIShjdXJyZW50SW5zdGFuY2UgfHwgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlIHx8IGN1cnJlbnRBcHApOwp9CmNvbnN0IGludGVybmFsT2JqZWN0UHJvdG8gPSB7fSwKICBjcmVhdGVJbnRlcm5hbE9iamVjdCA9ICgpID0+IE9iamVjdC5jcmVhdGUoaW50ZXJuYWxPYmplY3RQcm90byksCiAgaXNJbnRlcm5hbE9iamVjdCA9IChlKSA9PiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkgPT09IGludGVybmFsT2JqZWN0UHJvdG87CmZ1bmN0aW9uIGluaXRQcm9wcyhlLCB0LCByLCBuID0gITEpIHsKICBjb25zdCBpID0ge30sCiAgICBhID0gY3JlYXRlSW50ZXJuYWxPYmplY3QoKTsKICAoZS5wcm9wc0RlZmF1bHRzID0gT2JqZWN0LmNyZWF0ZShudWxsKSksIHNldEZ1bGxQcm9wcyhlLCB0LCBpLCBhKTsKICBmb3IgKGNvbnN0IG8gaW4gZS5wcm9wc09wdGlvbnNbMF0pIG8gaW4gaSB8fCAoaVtvXSA9IHZvaWQgMCk7CiAgcgogICAgPyAoZS5wcm9wcyA9IG4gPyBpIDogc2hhbGxvd1JlYWN0aXZlKGkpKQogICAgOiBlLnR5cGUucHJvcHMKICAgICAgPyAoZS5wcm9wcyA9IGkpCiAgICAgIDogKGUucHJvcHMgPSBhKSwKICAgIChlLmF0dHJzID0gYSk7Cn0KZnVuY3Rpb24gdXBkYXRlUHJvcHMoZSwgdCwgciwgbikgewogIGNvbnN0IHsKICAgIHByb3BzOiBpLAogICAgYXR0cnM6IGEsCiAgICB2bm9kZTogeyBwYXRjaEZsYWc6IG8gfSwKICB9ID0gZSwKICAgIGwgPSB0b1JhdyhpKSwKICAgIFtjXSA9IGUucHJvcHNPcHRpb25zOwogIGxldCB1ID0gITE7CiAgaWYgKChuIHx8IG8gPiAwKSAmJiAhKG8gJiAxNikpIHsKICAgIGlmIChvICYgOCkgewogICAgICBjb25zdCBkID0gZS52bm9kZS5keW5hbWljUHJvcHM7CiAgICAgIGZvciAobGV0IEUgPSAwOyBFIDwgZC5sZW5ndGg7IEUrKykgewogICAgICAgIGxldCBiID0gZFtFXTsKICAgICAgICBpZiAoaXNFbWl0TGlzdGVuZXIoZS5lbWl0c09wdGlvbnMsIGIpKSBjb250aW51ZTsKICAgICAgICBjb25zdCBQID0gdFtiXTsKICAgICAgICBpZiAoYykKICAgICAgICAgIGlmIChoYXNPd24kMShhLCBiKSkgUCAhPT0gYVtiXSAmJiAoKGFbYl0gPSBQKSwgKHUgPSAhMCkpOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IFIgPSBjYW1lbGl6ZShiKTsKICAgICAgICAgICAgaVtSXSA9IHJlc29sdmVQcm9wVmFsdWUoYywgbCwgUiwgUCwgZSwgITEpOwogICAgICAgICAgfQogICAgICAgIGVsc2UgUCAhPT0gYVtiXSAmJiAoKGFbYl0gPSBQKSwgKHUgPSAhMCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIHsKICAgIHNldEZ1bGxQcm9wcyhlLCB0LCBpLCBhKSAmJiAodSA9ICEwKTsKICAgIGxldCBkOwogICAgZm9yIChjb25zdCBFIGluIGwpCiAgICAgICghdCB8fAogICAgICAgICghaGFzT3duJDEodCwgRSkgJiYgKChkID0gaHlwaGVuYXRlKEUpKSA9PT0gRSB8fCAhaGFzT3duJDEodCwgZCkpKSkgJiYKICAgICAgICAoYwogICAgICAgICAgPyByICYmCiAgICAgICAgICAocltFXSAhPT0gdm9pZCAwIHx8IHJbZF0gIT09IHZvaWQgMCkgJiYKICAgICAgICAgIChpW0VdID0gcmVzb2x2ZVByb3BWYWx1ZShjLCBsLCBFLCB2b2lkIDAsIGUsICEwKSkKICAgICAgICAgIDogZGVsZXRlIGlbRV0pOwogICAgaWYgKGEgIT09IGwpCiAgICAgIGZvciAoY29uc3QgRSBpbiBhKSAoIXQgfHwgIWhhc093biQxKHQsIEUpKSAmJiAoZGVsZXRlIGFbRV0sICh1ID0gITApKTsKICB9CiAgdSAmJiB0cmlnZ2VyKGUuYXR0cnMsICJzZXQiLCAiIik7Cn0KZnVuY3Rpb24gc2V0RnVsbFByb3BzKGUsIHQsIHIsIG4pIHsKICBjb25zdCBbaSwgYV0gPSBlLnByb3BzT3B0aW9uczsKICBsZXQgbyA9ICExLAogICAgbDsKICBpZiAodCkKICAgIGZvciAobGV0IGMgaW4gdCkgewogICAgICBpZiAoaXNSZXNlcnZlZFByb3AoYykpIGNvbnRpbnVlOwogICAgICBjb25zdCB1ID0gdFtjXTsKICAgICAgbGV0IGQ7CiAgICAgIGkgJiYgaGFzT3duJDEoaSwgKGQgPSBjYW1lbGl6ZShjKSkpCiAgICAgICAgPyAhYSB8fCAhYS5pbmNsdWRlcyhkKQogICAgICAgICAgPyAocltkXSA9IHUpCiAgICAgICAgICA6ICgobCB8fCAobCA9IHt9KSlbZF0gPSB1KQogICAgICAgIDogaXNFbWl0TGlzdGVuZXIoZS5lbWl0c09wdGlvbnMsIGMpIHx8CiAgICAgICAgKCghKGMgaW4gbikgfHwgdSAhPT0gbltjXSkgJiYgKChuW2NdID0gdSksIChvID0gITApKSk7CiAgICB9CiAgaWYgKGEpIHsKICAgIGNvbnN0IGMgPSB0b1JhdyhyKSwKICAgICAgdSA9IGwgfHwgRU1QVFlfT0JKOwogICAgZm9yIChsZXQgZCA9IDA7IGQgPCBhLmxlbmd0aDsgZCsrKSB7CiAgICAgIGNvbnN0IEUgPSBhW2RdOwogICAgICByW0VdID0gcmVzb2x2ZVByb3BWYWx1ZShpLCBjLCBFLCB1W0VdLCBlLCAhaGFzT3duJDEodSwgRSkpOwogICAgfQogIH0KICByZXR1cm4gbzsKfQpmdW5jdGlvbiByZXNvbHZlUHJvcFZhbHVlKGUsIHQsIHIsIG4sIGksIGEpIHsKICBjb25zdCBvID0gZVtyXTsKICBpZiAobyAhPSBudWxsKSB7CiAgICBjb25zdCBsID0gaGFzT3duJDEobywgImRlZmF1bHQiKTsKICAgIGlmIChsICYmIG4gPT09IHZvaWQgMCkgewogICAgICBjb25zdCBjID0gby5kZWZhdWx0OwogICAgICBpZiAoby50eXBlICE9PSBGdW5jdGlvbiAmJiAhby5za2lwRmFjdG9yeSAmJiBpc0Z1bmN0aW9uJDEoYykpIHsKICAgICAgICBjb25zdCB7IHByb3BzRGVmYXVsdHM6IHUgfSA9IGk7CiAgICAgICAgaWYgKHIgaW4gdSkgbiA9IHVbcl07CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBjb25zdCBkID0gc2V0Q3VycmVudEluc3RhbmNlKGkpOwogICAgICAgICAgKG4gPSB1W3JdID0gYy5jYWxsKG51bGwsIHQpKSwgZCgpOwogICAgICAgIH0KICAgICAgfSBlbHNlIG4gPSBjOwogICAgICBpLmNlICYmIGkuY2UuX3NldFByb3Aociwgbik7CiAgICB9CiAgICBvWzBdICYmCiAgICAgIChhICYmICFsCiAgICAgICAgPyAobiA9ICExKQogICAgICAgIDogb1sxXSAmJiAobiA9PT0gIiIgfHwgbiA9PT0gaHlwaGVuYXRlKHIpKSAmJiAobiA9ICEwKSk7CiAgfQogIHJldHVybiBuOwp9CmNvbnN0IG1peGluUHJvcHNDYWNoZSA9IG5ldyBXZWFrTWFwKCk7CmZ1bmN0aW9uIG5vcm1hbGl6ZVByb3BzT3B0aW9ucyhlLCB0LCByID0gITEpIHsKICBjb25zdCBuID0gciA/IG1peGluUHJvcHNDYWNoZSA6IHQucHJvcHNDYWNoZSwKICAgIGkgPSBuLmdldChlKTsKICBpZiAoaSkgcmV0dXJuIGk7CiAgY29uc3QgYSA9IGUucHJvcHMsCiAgICBvID0ge30sCiAgICBsID0gW107CiAgbGV0IGMgPSAhMTsKICBpZiAoIWlzRnVuY3Rpb24kMShlKSkgewogICAgY29uc3QgZCA9IChFKSA9PiB7CiAgICAgIGMgPSAhMDsKICAgICAgY29uc3QgW2IsIFBdID0gbm9ybWFsaXplUHJvcHNPcHRpb25zKEUsIHQsICEwKTsKICAgICAgZXh0ZW5kKG8sIGIpLCBQICYmIGwucHVzaCguLi5QKTsKICAgIH07CiAgICAhciAmJiB0Lm1peGlucy5sZW5ndGggJiYgdC5taXhpbnMuZm9yRWFjaChkKSwKICAgICAgZS5leHRlbmRzICYmIGQoZS5leHRlbmRzKSwKICAgICAgZS5taXhpbnMgJiYgZS5taXhpbnMuZm9yRWFjaChkKTsKICB9CiAgaWYgKCFhICYmICFjKSByZXR1cm4gaXNPYmplY3QkMihlKSAmJiBuLnNldChlLCBFTVBUWV9BUlIpLCBFTVBUWV9BUlI7CiAgaWYgKGlzQXJyYXkkMihhKSkKICAgIGZvciAobGV0IGQgPSAwOyBkIDwgYS5sZW5ndGg7IGQrKykgewogICAgICBjb25zdCBFID0gY2FtZWxpemUoYVtkXSk7CiAgICAgIHZhbGlkYXRlUHJvcE5hbWUoRSkgJiYgKG9bRV0gPSBFTVBUWV9PQkopOwogICAgfQogIGVsc2UgaWYgKGEpCiAgICBmb3IgKGNvbnN0IGQgaW4gYSkgewogICAgICBjb25zdCBFID0gY2FtZWxpemUoZCk7CiAgICAgIGlmICh2YWxpZGF0ZVByb3BOYW1lKEUpKSB7CiAgICAgICAgY29uc3QgYiA9IGFbZF0sCiAgICAgICAgICBQID0gKG9bRV0gPQogICAgICAgICAgICBpc0FycmF5JDIoYikgfHwgaXNGdW5jdGlvbiQxKGIpID8geyB0eXBlOiBiIH0gOiBleHRlbmQoe30sIGIpKSwKICAgICAgICAgIFIgPSBQLnR5cGU7CiAgICAgICAgbGV0IFQgPSAhMSwKICAgICAgICAgIE0gPSAhMDsKICAgICAgICBpZiAoaXNBcnJheSQyKFIpKQogICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBSLmxlbmd0aDsgKyt4KSB7CiAgICAgICAgICAgIGNvbnN0IGsgPSBSW3hdLAogICAgICAgICAgICAgIFMgPSBpc0Z1bmN0aW9uJDEoaykgJiYgay5uYW1lOwogICAgICAgICAgICBpZiAoUyA9PT0gIkJvb2xlYW4iKSB7CiAgICAgICAgICAgICAgVCA9ICEwOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9IGVsc2UgUyA9PT0gIlN0cmluZyIgJiYgKE0gPSAhMSk7CiAgICAgICAgICB9CiAgICAgICAgZWxzZSBUID0gaXNGdW5jdGlvbiQxKFIpICYmIFIubmFtZSA9PT0gIkJvb2xlYW4iOwogICAgICAgIChQWzBdID0gVCksIChQWzFdID0gTSksIChUIHx8IGhhc093biQxKFAsICJkZWZhdWx0IikpICYmIGwucHVzaChFKTsKICAgICAgfQogICAgfQogIGNvbnN0IHUgPSBbbywgbF07CiAgcmV0dXJuIGlzT2JqZWN0JDIoZSkgJiYgbi5zZXQoZSwgdSksIHU7Cn0KZnVuY3Rpb24gdmFsaWRhdGVQcm9wTmFtZShlKSB7CiAgcmV0dXJuIGVbMF0gIT09ICIkIiAmJiAhaXNSZXNlcnZlZFByb3AoZSk7Cn0KY29uc3QgaXNJbnRlcm5hbEtleSA9IChlKSA9PiBlWzBdID09PSAiXyIgfHwgZSA9PT0gIiRzdGFibGUiLAogIG5vcm1hbGl6ZVNsb3RWYWx1ZSA9IChlKSA9PgogICAgaXNBcnJheSQyKGUpID8gZS5tYXAobm9ybWFsaXplVk5vZGUpIDogW25vcm1hbGl6ZVZOb2RlKGUpXSwKICBub3JtYWxpemVTbG90JDEgPSAoZSwgdCwgcikgPT4gewogICAgaWYgKHQuX24pIHJldHVybiB0OwogICAgY29uc3QgbiA9IHdpdGhDdHgoKC4uLmkpID0+IG5vcm1hbGl6ZVNsb3RWYWx1ZSh0KC4uLmkpKSwgcik7CiAgICByZXR1cm4gKG4uX2MgPSAhMSksIG47CiAgfSwKICBub3JtYWxpemVPYmplY3RTbG90cyA9IChlLCB0LCByKSA9PiB7CiAgICBjb25zdCBuID0gZS5fY3R4OwogICAgZm9yIChjb25zdCBpIGluIGUpIHsKICAgICAgaWYgKGlzSW50ZXJuYWxLZXkoaSkpIGNvbnRpbnVlOwogICAgICBjb25zdCBhID0gZVtpXTsKICAgICAgaWYgKGlzRnVuY3Rpb24kMShhKSkgdFtpXSA9IG5vcm1hbGl6ZVNsb3QkMShpLCBhLCBuKTsKICAgICAgZWxzZSBpZiAoYSAhPSBudWxsKSB7CiAgICAgICAgY29uc3QgbyA9IG5vcm1hbGl6ZVNsb3RWYWx1ZShhKTsKICAgICAgICB0W2ldID0gKCkgPT4gbzsKICAgICAgfQogICAgfQogIH0sCiAgbm9ybWFsaXplVk5vZGVTbG90cyA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gbm9ybWFsaXplU2xvdFZhbHVlKHQpOwogICAgZS5zbG90cy5kZWZhdWx0ID0gKCkgPT4gcjsKICB9LAogIGFzc2lnblNsb3RzID0gKGUsIHQsIHIpID0+IHsKICAgIGZvciAoY29uc3QgbiBpbiB0KSAociB8fCBuICE9PSAiXyIpICYmIChlW25dID0gdFtuXSk7CiAgfSwKICBpbml0U2xvdHMgPSAoZSwgdCwgcikgPT4gewogICAgY29uc3QgbiA9IChlLnNsb3RzID0gY3JlYXRlSW50ZXJuYWxPYmplY3QoKSk7CiAgICBpZiAoZS52bm9kZS5zaGFwZUZsYWcgJiAzMikgewogICAgICBjb25zdCBpID0gdC5fOwogICAgICBpCiAgICAgICAgPyAoYXNzaWduU2xvdHMobiwgdCwgciksIHIgJiYgZGVmKG4sICJfIiwgaSwgITApKQogICAgICAgIDogbm9ybWFsaXplT2JqZWN0U2xvdHModCwgbik7CiAgICB9IGVsc2UgdCAmJiBub3JtYWxpemVWTm9kZVNsb3RzKGUsIHQpOwogIH0sCiAgdXBkYXRlU2xvdHMgPSAoZSwgdCwgcikgPT4gewogICAgY29uc3QgeyB2bm9kZTogbiwgc2xvdHM6IGkgfSA9IGU7CiAgICBsZXQgYSA9ICEwLAogICAgICBvID0gRU1QVFlfT0JKOwogICAgaWYgKG4uc2hhcGVGbGFnICYgMzIpIHsKICAgICAgY29uc3QgbCA9IHQuXzsKICAgICAgbAogICAgICAgID8gciAmJiBsID09PSAxCiAgICAgICAgICA/IChhID0gITEpCiAgICAgICAgICA6IGFzc2lnblNsb3RzKGksIHQsIHIpCiAgICAgICAgOiAoKGEgPSAhdC4kc3RhYmxlKSwgbm9ybWFsaXplT2JqZWN0U2xvdHModCwgaSkpLAogICAgICAgIChvID0gdCk7CiAgICB9IGVsc2UgdCAmJiAobm9ybWFsaXplVk5vZGVTbG90cyhlLCB0KSwgKG8gPSB7IGRlZmF1bHQ6IDEgfSkpOwogICAgaWYgKGEpIGZvciAoY29uc3QgbCBpbiBpKSAhaXNJbnRlcm5hbEtleShsKSAmJiBvW2xdID09IG51bGwgJiYgZGVsZXRlIGlbbF07CiAgfSwKICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QgPSBxdWV1ZUVmZmVjdFdpdGhTdXNwZW5zZTsKZnVuY3Rpb24gY3JlYXRlUmVuZGVyZXIoZSkgewogIHJldHVybiBiYXNlQ3JlYXRlUmVuZGVyZXIoZSk7Cn0KZnVuY3Rpb24gY3JlYXRlSHlkcmF0aW9uUmVuZGVyZXIoZSkgewogIHJldHVybiBiYXNlQ3JlYXRlUmVuZGVyZXIoZSwgY3JlYXRlSHlkcmF0aW9uRnVuY3Rpb25zKTsKfQpmdW5jdGlvbiBiYXNlQ3JlYXRlUmVuZGVyZXIoZSwgdCkgewogIGNvbnN0IHIgPSBnZXRHbG9iYWxUaGlzJDEoKTsKICByLl9fVlVFX18gPSAhMDsKICBjb25zdCB7CiAgICBpbnNlcnQ6IG4sCiAgICByZW1vdmU6IGksCiAgICBwYXRjaFByb3A6IGEsCiAgICBjcmVhdGVFbGVtZW50OiBvLAogICAgY3JlYXRlVGV4dDogbCwKICAgIGNyZWF0ZUNvbW1lbnQ6IGMsCiAgICBzZXRUZXh0OiB1LAogICAgc2V0RWxlbWVudFRleHQ6IGQsCiAgICBwYXJlbnROb2RlOiBFLAogICAgbmV4dFNpYmxpbmc6IGIsCiAgICBzZXRTY29wZUlkOiBQID0gTk9PUCwKICAgIGluc2VydFN0YXRpY0NvbnRlbnQ6IFIsCiAgfSA9IGUsCiAgICBUID0gKAogICAgICBXLAogICAgICBHLAogICAgICB0ZSwKICAgICAgYWUgPSBudWxsLAogICAgICBzZSA9IG51bGwsCiAgICAgIGNlID0gbnVsbCwKICAgICAgZGUgPSB2b2lkIDAsCiAgICAgIGogPSBudWxsLAogICAgICBVID0gISFHLmR5bmFtaWNDaGlsZHJlbgogICAgKSA9PiB7CiAgICAgIGlmIChXID09PSBHKSByZXR1cm47CiAgICAgIFcgJiYKICAgICAgICAhaXNTYW1lVk5vZGVUeXBlKFcsIEcpICYmCiAgICAgICAgKChhZSA9IGllKFcpKSwgaGUoVywgc2UsIGNlLCAhMCksIChXID0gbnVsbCkpLAogICAgICAgIEcucGF0Y2hGbGFnID09PSAtMiAmJiAoKFUgPSAhMSksIChHLmR5bmFtaWNDaGlsZHJlbiA9IG51bGwpKTsKICAgICAgY29uc3QgeyB0eXBlOiBYLCByZWY6IG9lLCBzaGFwZUZsYWc6IGZlIH0gPSBHOwogICAgICBzd2l0Y2ggKFgpIHsKICAgICAgICBjYXNlIFRleHQ6CiAgICAgICAgICBNKFcsIEcsIHRlLCBhZSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIENvbW1lbnQ6CiAgICAgICAgICB4KFcsIEcsIHRlLCBhZSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIFN0YXRpYzoKICAgICAgICAgIFcgPT0gbnVsbCAmJiBrKEcsIHRlLCBhZSwgZGUpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBGcmFnbWVudDoKICAgICAgICAgIEsoVywgRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBmZSAmIDEKICAgICAgICAgICAgPyBPKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkKICAgICAgICAgICAgOiBmZSAmIDYKICAgICAgICAgICAgICA/IGVlKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkKICAgICAgICAgICAgICA6IChmZSAmIDY0IHx8IGZlICYgMTI4KSAmJgogICAgICAgICAgICAgIFgucHJvY2VzcyhXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUsIGdlKTsKICAgICAgfQogICAgICBvZSAhPSBudWxsICYmIHNlICYmIHNldFJlZihvZSwgVyAmJiBXLnJlZiwgY2UsIEcgfHwgVywgIUcpOwogICAgfSwKICAgIE0gPSAoVywgRywgdGUsIGFlKSA9PiB7CiAgICAgIGlmIChXID09IG51bGwpIG4oKEcuZWwgPSBsKEcuY2hpbGRyZW4pKSwgdGUsIGFlKTsKICAgICAgZWxzZSB7CiAgICAgICAgY29uc3Qgc2UgPSAoRy5lbCA9IFcuZWwpOwogICAgICAgIEcuY2hpbGRyZW4gIT09IFcuY2hpbGRyZW4gJiYgdShzZSwgRy5jaGlsZHJlbik7CiAgICAgIH0KICAgIH0sCiAgICB4ID0gKFcsIEcsIHRlLCBhZSkgPT4gewogICAgICBXID09IG51bGwgPyBuKChHLmVsID0gYyhHLmNoaWxkcmVuIHx8ICIiKSksIHRlLCBhZSkgOiAoRy5lbCA9IFcuZWwpOwogICAgfSwKICAgIGsgPSAoVywgRywgdGUsIGFlKSA9PiB7CiAgICAgIFtXLmVsLCBXLmFuY2hvcl0gPSBSKFcuY2hpbGRyZW4sIEcsIHRlLCBhZSwgVy5lbCwgVy5hbmNob3IpOwogICAgfSwKICAgIFMgPSAoeyBlbDogVywgYW5jaG9yOiBHIH0sIHRlLCBhZSkgPT4gewogICAgICBsZXQgc2U7CiAgICAgIGZvciAoOyBXICYmIFcgIT09IEc7KSAoc2UgPSBiKFcpKSwgbihXLCB0ZSwgYWUpLCAoVyA9IHNlKTsKICAgICAgbihHLCB0ZSwgYWUpOwogICAgfSwKICAgIEEgPSAoeyBlbDogVywgYW5jaG9yOiBHIH0pID0+IHsKICAgICAgbGV0IHRlOwogICAgICBmb3IgKDsgVyAmJiBXICE9PSBHOykgKHRlID0gYihXKSksIGkoVyksIChXID0gdGUpOwogICAgICBpKEcpOwogICAgfSwKICAgIE8gPSAoVywgRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKSA9PiB7CiAgICAgIEcudHlwZSA9PT0gInN2ZyIgPyAoZGUgPSAic3ZnIikgOiBHLnR5cGUgPT09ICJtYXRoIiAmJiAoZGUgPSAibWF0aG1sIiksCiAgICAgICAgVyA9PSBudWxsID8gRihHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUpIDogJChXLCBHLCBzZSwgY2UsIGRlLCBqLCBVKTsKICAgIH0sCiAgICBGID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaikgPT4gewogICAgICBsZXQgVSwgWDsKICAgICAgY29uc3QgeyBwcm9wczogb2UsIHNoYXBlRmxhZzogZmUsIHRyYW5zaXRpb246IHVlLCBkaXJzOiBaIH0gPSBXOwogICAgICBpZiAoCiAgICAgICAgKChVID0gVy5lbCA9IG8oVy50eXBlLCBjZSwgb2UgJiYgb2UuaXMsIG9lKSksCiAgICAgICAgICBmZSAmIDgKICAgICAgICAgICAgPyBkKFUsIFcuY2hpbGRyZW4pCiAgICAgICAgICAgIDogZmUgJiAxNiAmJgogICAgICAgICAgICBIKAogICAgICAgICAgICAgIFcuY2hpbGRyZW4sCiAgICAgICAgICAgICAgVSwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIGFlLAogICAgICAgICAgICAgIHNlLAogICAgICAgICAgICAgIHJlc29sdmVDaGlsZHJlbk5hbWVzcGFjZShXLCBjZSksCiAgICAgICAgICAgICAgZGUsCiAgICAgICAgICAgICAgagogICAgICAgICAgICApLAogICAgICAgICAgWiAmJiBpbnZva2VEaXJlY3RpdmVIb29rKFcsIG51bGwsIGFlLCAiY3JlYXRlZCIpLAogICAgICAgICAgRChVLCBXLCBXLnNjb3BlSWQsIGRlLCBhZSksCiAgICAgICAgICBvZSkKICAgICAgKSB7CiAgICAgICAgZm9yIChjb25zdCBfZSBpbiBvZSkKICAgICAgICAgIF9lICE9PSAidmFsdWUiICYmCiAgICAgICAgICAgICFpc1Jlc2VydmVkUHJvcChfZSkgJiYKICAgICAgICAgICAgYShVLCBfZSwgbnVsbCwgb2VbX2VdLCBjZSwgYWUpOwogICAgICAgICJ2YWx1ZSIgaW4gb2UgJiYgYShVLCAidmFsdWUiLCBudWxsLCBvZS52YWx1ZSwgY2UpLAogICAgICAgICAgKFggPSBvZS5vblZub2RlQmVmb3JlTW91bnQpICYmIGludm9rZVZOb2RlSG9vayhYLCBhZSwgVyk7CiAgICAgIH0KICAgICAgWiAmJiBpbnZva2VEaXJlY3RpdmVIb29rKFcsIG51bGwsIGFlLCAiYmVmb3JlTW91bnQiKTsKICAgICAgY29uc3QgbmUgPSBuZWVkVHJhbnNpdGlvbihzZSwgdWUpOwogICAgICBuZSAmJiB1ZS5iZWZvcmVFbnRlcihVKSwKICAgICAgICBuKFUsIEcsIHRlKSwKICAgICAgICAoKFggPSBvZSAmJiBvZS5vblZub2RlTW91bnRlZCkgfHwgbmUgfHwgWikgJiYKICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgWCAmJiBpbnZva2VWTm9kZUhvb2soWCwgYWUsIFcpLAogICAgICAgICAgICBuZSAmJiB1ZS5lbnRlcihVKSwKICAgICAgICAgICAgWiAmJiBpbnZva2VEaXJlY3RpdmVIb29rKFcsIG51bGwsIGFlLCAibW91bnRlZCIpOwogICAgICAgIH0sIHNlKTsKICAgIH0sCiAgICBEID0gKFcsIEcsIHRlLCBhZSwgc2UpID0+IHsKICAgICAgaWYgKCh0ZSAmJiBQKFcsIHRlKSwgYWUpKQogICAgICAgIGZvciAobGV0IGNlID0gMDsgY2UgPCBhZS5sZW5ndGg7IGNlKyspIFAoVywgYWVbY2VdKTsKICAgICAgaWYgKHNlKSB7CiAgICAgICAgbGV0IGNlID0gc2Uuc3ViVHJlZTsKICAgICAgICBpZiAoCiAgICAgICAgICBHID09PSBjZSB8fAogICAgICAgICAgKGlzU3VzcGVuc2UoY2UudHlwZSkgJiYgKGNlLnNzQ29udGVudCA9PT0gRyB8fCBjZS5zc0ZhbGxiYWNrID09PSBHKSkKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IGRlID0gc2Uudm5vZGU7CiAgICAgICAgICBEKFcsIGRlLCBkZS5zY29wZUlkLCBkZS5zbG90U2NvcGVJZHMsIHNlLnBhcmVudCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgSCA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUgPSAwKSA9PiB7CiAgICAgIGZvciAobGV0IFggPSBVOyBYIDwgVy5sZW5ndGg7IFgrKykgewogICAgICAgIGNvbnN0IG9lID0gKFdbWF0gPSBqID8gY2xvbmVJZk1vdW50ZWQoV1tYXSkgOiBub3JtYWxpemVWTm9kZShXW1hdKSk7CiAgICAgICAgVChudWxsLCBvZSwgRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqKTsKICAgICAgfQogICAgfSwKICAgICQgPSAoVywgRywgdGUsIGFlLCBzZSwgY2UsIGRlKSA9PiB7CiAgICAgIGNvbnN0IGogPSAoRy5lbCA9IFcuZWwpOwogICAgICBsZXQgeyBwYXRjaEZsYWc6IFUsIGR5bmFtaWNDaGlsZHJlbjogWCwgZGlyczogb2UgfSA9IEc7CiAgICAgIFUgfD0gVy5wYXRjaEZsYWcgJiAxNjsKICAgICAgY29uc3QgZmUgPSBXLnByb3BzIHx8IEVNUFRZX09CSiwKICAgICAgICB1ZSA9IEcucHJvcHMgfHwgRU1QVFlfT0JKOwogICAgICBsZXQgWjsKICAgICAgaWYgKAogICAgICAgICh0ZSAmJiB0b2dnbGVSZWN1cnNlKHRlLCAhMSksCiAgICAgICAgICAoWiA9IHVlLm9uVm5vZGVCZWZvcmVVcGRhdGUpICYmIGludm9rZVZOb2RlSG9vayhaLCB0ZSwgRywgVyksCiAgICAgICAgICBvZSAmJiBpbnZva2VEaXJlY3RpdmVIb29rKEcsIFcsIHRlLCAiYmVmb3JlVXBkYXRlIiksCiAgICAgICAgICB0ZSAmJiB0b2dnbGVSZWN1cnNlKHRlLCAhMCksCiAgICAgICAgICAoKGZlLmlubmVySFRNTCAmJiB1ZS5pbm5lckhUTUwgPT0gbnVsbCkgfHwKICAgICAgICAgICAgKGZlLnRleHRDb250ZW50ICYmIHVlLnRleHRDb250ZW50ID09IG51bGwpKSAmJgogICAgICAgICAgZChqLCAiIiksCiAgICAgICAgICBYCiAgICAgICAgICAgID8gcSgKICAgICAgICAgICAgICBXLmR5bmFtaWNDaGlsZHJlbiwKICAgICAgICAgICAgICBYLAogICAgICAgICAgICAgIGosCiAgICAgICAgICAgICAgdGUsCiAgICAgICAgICAgICAgYWUsCiAgICAgICAgICAgICAgcmVzb2x2ZUNoaWxkcmVuTmFtZXNwYWNlKEcsIHNlKSwKICAgICAgICAgICAgICBjZQogICAgICAgICAgICApCiAgICAgICAgICAgIDogZGUgfHwKICAgICAgICAgICAgTihXLCBHLCBqLCBudWxsLCB0ZSwgYWUsIHJlc29sdmVDaGlsZHJlbk5hbWVzcGFjZShHLCBzZSksIGNlLCAhMSksCiAgICAgICAgICBVID4gMCkKICAgICAgKSB7CiAgICAgICAgaWYgKFUgJiAxNikgSihqLCBmZSwgdWUsIHRlLCBzZSk7CiAgICAgICAgZWxzZSBpZiAoCiAgICAgICAgICAoVSAmIDIgJiYgZmUuY2xhc3MgIT09IHVlLmNsYXNzICYmIGEoaiwgImNsYXNzIiwgbnVsbCwgdWUuY2xhc3MsIHNlKSwKICAgICAgICAgICAgVSAmIDQgJiYgYShqLCAic3R5bGUiLCBmZS5zdHlsZSwgdWUuc3R5bGUsIHNlKSwKICAgICAgICAgICAgVSAmIDgpCiAgICAgICAgKSB7CiAgICAgICAgICBjb25zdCBuZSA9IEcuZHluYW1pY1Byb3BzOwogICAgICAgICAgZm9yIChsZXQgX2UgPSAwOyBfZSA8IG5lLmxlbmd0aDsgX2UrKykgewogICAgICAgICAgICBjb25zdCBiZSA9IG5lW19lXSwKICAgICAgICAgICAgICBUZSA9IGZlW2JlXSwKICAgICAgICAgICAgICBBZSA9IHVlW2JlXTsKICAgICAgICAgICAgKEFlICE9PSBUZSB8fCBiZSA9PT0gInZhbHVlIikgJiYgYShqLCBiZSwgVGUsIEFlLCBzZSwgdGUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBVICYgMSAmJiBXLmNoaWxkcmVuICE9PSBHLmNoaWxkcmVuICYmIGQoaiwgRy5jaGlsZHJlbik7CiAgICAgIH0gZWxzZSAhZGUgJiYgWCA9PSBudWxsICYmIEooaiwgZmUsIHVlLCB0ZSwgc2UpOwogICAgICAoKFogPSB1ZS5vblZub2RlVXBkYXRlZCkgfHwgb2UpICYmCiAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IHsKICAgICAgICAgIFogJiYgaW52b2tlVk5vZGVIb29rKFosIHRlLCBHLCBXKSwKICAgICAgICAgICAgb2UgJiYgaW52b2tlRGlyZWN0aXZlSG9vayhHLCBXLCB0ZSwgInVwZGF0ZWQiKTsKICAgICAgICB9LCBhZSk7CiAgICB9LAogICAgcSA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUpID0+IHsKICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBHLmxlbmd0aDsgaisrKSB7CiAgICAgICAgY29uc3QgVSA9IFdbal0sCiAgICAgICAgICBYID0gR1tqXSwKICAgICAgICAgIG9lID0KICAgICAgICAgICAgVS5lbCAmJgogICAgICAgICAgICAgIChVLnR5cGUgPT09IEZyYWdtZW50IHx8ICFpc1NhbWVWTm9kZVR5cGUoVSwgWCkgfHwgVS5zaGFwZUZsYWcgJiA3MCkKICAgICAgICAgICAgICA/IEUoVS5lbCkKICAgICAgICAgICAgICA6IHRlOwogICAgICAgIFQoVSwgWCwgb2UsIG51bGwsIGFlLCBzZSwgY2UsIGRlLCAhMCk7CiAgICAgIH0KICAgIH0sCiAgICBKID0gKFcsIEcsIHRlLCBhZSwgc2UpID0+IHsKICAgICAgaWYgKEcgIT09IHRlKSB7CiAgICAgICAgaWYgKEcgIT09IEVNUFRZX09CSikKICAgICAgICAgIGZvciAoY29uc3QgY2UgaW4gRykKICAgICAgICAgICAgIWlzUmVzZXJ2ZWRQcm9wKGNlKSAmJiAhKGNlIGluIHRlKSAmJiBhKFcsIGNlLCBHW2NlXSwgbnVsbCwgc2UsIGFlKTsKICAgICAgICBmb3IgKGNvbnN0IGNlIGluIHRlKSB7CiAgICAgICAgICBpZiAoaXNSZXNlcnZlZFByb3AoY2UpKSBjb250aW51ZTsKICAgICAgICAgIGNvbnN0IGRlID0gdGVbY2VdLAogICAgICAgICAgICBqID0gR1tjZV07CiAgICAgICAgICBkZSAhPT0gaiAmJiBjZSAhPT0gInZhbHVlIiAmJiBhKFcsIGNlLCBqLCBkZSwgc2UsIGFlKTsKICAgICAgICB9CiAgICAgICAgInZhbHVlIiBpbiB0ZSAmJiBhKFcsICJ2YWx1ZSIsIEcudmFsdWUsIHRlLnZhbHVlLCBzZSk7CiAgICAgIH0KICAgIH0sCiAgICBLID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkgPT4gewogICAgICBjb25zdCBYID0gKEcuZWwgPSBXID8gVy5lbCA6IGwoIiIpKSwKICAgICAgICBvZSA9IChHLmFuY2hvciA9IFcgPyBXLmFuY2hvciA6IGwoIiIpKTsKICAgICAgbGV0IHsgcGF0Y2hGbGFnOiBmZSwgZHluYW1pY0NoaWxkcmVuOiB1ZSwgc2xvdFNjb3BlSWRzOiBaIH0gPSBHOwogICAgICBaICYmIChqID0gaiA/IGouY29uY2F0KFopIDogWiksCiAgICAgICAgVyA9PSBudWxsCiAgICAgICAgICA/IChuKFgsIHRlLCBhZSksCiAgICAgICAgICAgIG4ob2UsIHRlLCBhZSksCiAgICAgICAgICAgIEgoRy5jaGlsZHJlbiB8fCBbXSwgdGUsIG9lLCBzZSwgY2UsIGRlLCBqLCBVKSkKICAgICAgICAgIDogZmUgPiAwICYmIGZlICYgNjQgJiYgdWUgJiYgVy5keW5hbWljQ2hpbGRyZW4KICAgICAgICAgICAgPyAocShXLmR5bmFtaWNDaGlsZHJlbiwgdWUsIHRlLCBzZSwgY2UsIGRlLCBqKSwKICAgICAgICAgICAgICAoRy5rZXkgIT0gbnVsbCB8fCAoc2UgJiYgRyA9PT0gc2Uuc3ViVHJlZSkpICYmCiAgICAgICAgICAgICAgdHJhdmVyc2VTdGF0aWNDaGlsZHJlbihXLCBHLCAhMCkpCiAgICAgICAgICAgIDogTihXLCBHLCB0ZSwgb2UsIHNlLCBjZSwgZGUsIGosIFUpOwogICAgfSwKICAgIGVlID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkgPT4gewogICAgICAoRy5zbG90U2NvcGVJZHMgPSBqKSwKICAgICAgICBXID09IG51bGwKICAgICAgICAgID8gRy5zaGFwZUZsYWcgJiA1MTIKICAgICAgICAgICAgPyBzZS5jdHguYWN0aXZhdGUoRywgdGUsIGFlLCBkZSwgVSkKICAgICAgICAgICAgOiBsZShHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIFUpCiAgICAgICAgICA6IHJlKFcsIEcsIFUpOwogICAgfSwKICAgIGxlID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSkgPT4gewogICAgICBjb25zdCBqID0gKFcuY29tcG9uZW50ID0gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2UoVywgYWUsIHNlKSk7CiAgICAgIGlmICgKICAgICAgICAoaXNLZWVwQWxpdmUoVykgJiYgKGouY3R4LnJlbmRlcmVyID0gZ2UpLAogICAgICAgICAgc2V0dXBDb21wb25lbnQoaiwgITEsIGRlKSwKICAgICAgICAgIGouYXN5bmNEZXApCiAgICAgICkgewogICAgICAgIGlmICgoc2UgJiYgc2UucmVnaXN0ZXJEZXAoaiwgQiwgZGUpLCAhVy5lbCkpIHsKICAgICAgICAgIGNvbnN0IFUgPSAoai5zdWJUcmVlID0gY3JlYXRlVk5vZGUoQ29tbWVudCkpOwogICAgICAgICAgeChudWxsLCBVLCBHLCB0ZSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgQihqLCBXLCBHLCB0ZSwgc2UsIGNlLCBkZSk7CiAgICB9LAogICAgcmUgPSAoVywgRywgdGUpID0+IHsKICAgICAgY29uc3QgYWUgPSAoRy5jb21wb25lbnQgPSBXLmNvbXBvbmVudCk7CiAgICAgIGlmIChzaG91bGRVcGRhdGVDb21wb25lbnQoVywgRywgdGUpKQogICAgICAgIGlmIChhZS5hc3luY0RlcCAmJiAhYWUuYXN5bmNSZXNvbHZlZCkgewogICAgICAgICAgeihhZSwgRywgdGUpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0gZWxzZSAoYWUubmV4dCA9IEcpLCBhZS51cGRhdGUoKTsKICAgICAgZWxzZSAoRy5lbCA9IFcuZWwpLCAoYWUudm5vZGUgPSBHKTsKICAgIH0sCiAgICBCID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSkgPT4gewogICAgICBjb25zdCBqID0gKCkgPT4gewogICAgICAgIGlmIChXLmlzTW91bnRlZCkgewogICAgICAgICAgbGV0IHsgbmV4dDogZmUsIGJ1OiB1ZSwgdTogWiwgcGFyZW50OiBuZSwgdm5vZGU6IF9lIH0gPSBXOwogICAgICAgICAgewogICAgICAgICAgICBjb25zdCB3ZSA9IGxvY2F0ZU5vbkh5ZHJhdGVkQXN5bmNSb290KFcpOwogICAgICAgICAgICBpZiAod2UpIHsKICAgICAgICAgICAgICBmZSAmJiAoKGZlLmVsID0gX2UuZWwpLCB6KFcsIGZlLCBkZSkpLAogICAgICAgICAgICAgICAgd2UuYXN5bmNEZXAudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgIFcuaXNVbm1vdW50ZWQgfHwgaigpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgYmUgPSBmZSwKICAgICAgICAgICAgVGU7CiAgICAgICAgICB0b2dnbGVSZWN1cnNlKFcsICExKSwKICAgICAgICAgICAgZmUgPyAoKGZlLmVsID0gX2UuZWwpLCB6KFcsIGZlLCBkZSkpIDogKGZlID0gX2UpLAogICAgICAgICAgICB1ZSAmJiBpbnZva2VBcnJheUZucyh1ZSksCiAgICAgICAgICAgIChUZSA9IGZlLnByb3BzICYmIGZlLnByb3BzLm9uVm5vZGVCZWZvcmVVcGRhdGUpICYmCiAgICAgICAgICAgIGludm9rZVZOb2RlSG9vayhUZSwgbmUsIGZlLCBfZSksCiAgICAgICAgICAgIHRvZ2dsZVJlY3Vyc2UoVywgITApOwogICAgICAgICAgY29uc3QgQWUgPSByZW5kZXJDb21wb25lbnRSb290KFcpLAogICAgICAgICAgICBSZSA9IFcuc3ViVHJlZTsKICAgICAgICAgIChXLnN1YlRyZWUgPSBBZSksCiAgICAgICAgICAgIFQoUmUsIEFlLCBFKFJlLmVsKSwgaWUoUmUpLCBXLCBzZSwgY2UpLAogICAgICAgICAgICAoZmUuZWwgPSBBZS5lbCksCiAgICAgICAgICAgIGJlID09PSBudWxsICYmIHVwZGF0ZUhPQ0hvc3RFbChXLCBBZS5lbCksCiAgICAgICAgICAgIFogJiYgcXVldWVQb3N0UmVuZGVyRWZmZWN0KFosIHNlKSwKICAgICAgICAgICAgKFRlID0gZmUucHJvcHMgJiYgZmUucHJvcHMub25Wbm9kZVVwZGF0ZWQpICYmCiAgICAgICAgICAgIHF1ZXVlUG9zdFJlbmRlckVmZmVjdCgoKSA9PiBpbnZva2VWTm9kZUhvb2soVGUsIG5lLCBmZSwgX2UpLCBzZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGxldCBmZTsKICAgICAgICAgIGNvbnN0IHsgZWw6IHVlLCBwcm9wczogWiB9ID0gRywKICAgICAgICAgICAgeyBibTogbmUsIG06IF9lLCBwYXJlbnQ6IGJlLCByb290OiBUZSwgdHlwZTogQWUgfSA9IFcsCiAgICAgICAgICAgIFJlID0gaXNBc3luY1dyYXBwZXIoRyk7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICh0b2dnbGVSZWN1cnNlKFcsICExKSwKICAgICAgICAgICAgICBuZSAmJiBpbnZva2VBcnJheUZucyhuZSksCiAgICAgICAgICAgICAgIVJlICYmCiAgICAgICAgICAgICAgKGZlID0gWiAmJiBaLm9uVm5vZGVCZWZvcmVNb3VudCkgJiYKICAgICAgICAgICAgICBpbnZva2VWTm9kZUhvb2soZmUsIGJlLCBHKSwKICAgICAgICAgICAgICB0b2dnbGVSZWN1cnNlKFcsICEwKSwKICAgICAgICAgICAgICB1ZSAmJiBTZSkKICAgICAgICAgICkgewogICAgICAgICAgICBjb25zdCB3ZSA9ICgpID0+IHsKICAgICAgICAgICAgICAoVy5zdWJUcmVlID0gcmVuZGVyQ29tcG9uZW50Um9vdChXKSksCiAgICAgICAgICAgICAgICBTZSh1ZSwgVy5zdWJUcmVlLCBXLCBzZSwgbnVsbCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIFJlICYmIEFlLl9fYXN5bmNIeWRyYXRlID8gQWUuX19hc3luY0h5ZHJhdGUodWUsIFcsIHdlKSA6IHdlKCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBUZS5jZSAmJiBUZS5jZS5faW5qZWN0Q2hpbGRTdHlsZShBZSk7CiAgICAgICAgICAgIGNvbnN0IHdlID0gKFcuc3ViVHJlZSA9IHJlbmRlckNvbXBvbmVudFJvb3QoVykpOwogICAgICAgICAgICBUKG51bGwsIHdlLCB0ZSwgYWUsIFcsIHNlLCBjZSksIChHLmVsID0gd2UuZWwpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKAogICAgICAgICAgICAoX2UgJiYgcXVldWVQb3N0UmVuZGVyRWZmZWN0KF9lLCBzZSksCiAgICAgICAgICAgICAgIVJlICYmIChmZSA9IFogJiYgWi5vblZub2RlTW91bnRlZCkpCiAgICAgICAgICApIHsKICAgICAgICAgICAgY29uc3Qgd2UgPSBHOwogICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gaW52b2tlVk5vZGVIb29rKGZlLCBiZSwgd2UpLCBzZSk7CiAgICAgICAgICB9CiAgICAgICAgICAoRy5zaGFwZUZsYWcgJiAyNTYgfHwKICAgICAgICAgICAgKGJlICYmIGlzQXN5bmNXcmFwcGVyKGJlLnZub2RlKSAmJiBiZS52bm9kZS5zaGFwZUZsYWcgJiAyNTYpKSAmJgogICAgICAgICAgICBXLmEgJiYKICAgICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KFcuYSwgc2UpLAogICAgICAgICAgICAoVy5pc01vdW50ZWQgPSAhMCksCiAgICAgICAgICAgIChHID0gdGUgPSBhZSA9IG51bGwpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVy5zY29wZS5vbigpOwogICAgICBjb25zdCBVID0gKFcuZWZmZWN0ID0gbmV3IFJlYWN0aXZlRWZmZWN0KGopKTsKICAgICAgVy5zY29wZS5vZmYoKTsKICAgICAgY29uc3QgWCA9IChXLnVwZGF0ZSA9IFUucnVuLmJpbmQoVSkpLAogICAgICAgIG9lID0gKFcuam9iID0gVS5ydW5JZkRpcnR5LmJpbmQoVSkpOwogICAgICAob2UuaSA9IFcpLAogICAgICAgIChvZS5pZCA9IFcudWlkKSwKICAgICAgICAoVS5zY2hlZHVsZXIgPSAoKSA9PiBxdWV1ZUpvYihvZSkpLAogICAgICAgIHRvZ2dsZVJlY3Vyc2UoVywgITApLAogICAgICAgIFgoKTsKICAgIH0sCiAgICB6ID0gKFcsIEcsIHRlKSA9PiB7CiAgICAgIEcuY29tcG9uZW50ID0gVzsKICAgICAgY29uc3QgYWUgPSBXLnZub2RlLnByb3BzOwogICAgICAoVy52bm9kZSA9IEcpLAogICAgICAgIChXLm5leHQgPSBudWxsKSwKICAgICAgICB1cGRhdGVQcm9wcyhXLCBHLnByb3BzLCBhZSwgdGUpLAogICAgICAgIHVwZGF0ZVNsb3RzKFcsIEcuY2hpbGRyZW4sIHRlKSwKICAgICAgICBwYXVzZVRyYWNraW5nKCksCiAgICAgICAgZmx1c2hQcmVGbHVzaENicyhXKSwKICAgICAgICByZXNldFRyYWNraW5nKCk7CiAgICB9LAogICAgTiA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUgPSAhMSkgPT4gewogICAgICBjb25zdCBYID0gVyAmJiBXLmNoaWxkcmVuLAogICAgICAgIG9lID0gVyA/IFcuc2hhcGVGbGFnIDogMCwKICAgICAgICBmZSA9IEcuY2hpbGRyZW4sCiAgICAgICAgeyBwYXRjaEZsYWc6IHVlLCBzaGFwZUZsYWc6IFogfSA9IEc7CiAgICAgIGlmICh1ZSA+IDApIHsKICAgICAgICBpZiAodWUgJiAxMjgpIHsKICAgICAgICAgIFEoWCwgZmUsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfSBlbHNlIGlmICh1ZSAmIDI1NikgewogICAgICAgICAgVihYLCBmZSwgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KICAgICAgWiAmIDgKICAgICAgICA/IChvZSAmIDE2ICYmIENlKFgsIHNlLCBjZSksIGZlICE9PSBYICYmIGQodGUsIGZlKSkKICAgICAgICA6IG9lICYgMTYKICAgICAgICAgID8gWiAmIDE2CiAgICAgICAgICAgID8gUShYLCBmZSwgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKQogICAgICAgICAgICA6IENlKFgsIHNlLCBjZSwgITApCiAgICAgICAgICA6IChvZSAmIDggJiYgZCh0ZSwgIiIpLCBaICYgMTYgJiYgSChmZSwgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKSk7CiAgICB9LAogICAgViA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUpID0+IHsKICAgICAgKFcgPSBXIHx8IEVNUFRZX0FSUiksIChHID0gRyB8fCBFTVBUWV9BUlIpOwogICAgICBjb25zdCBYID0gVy5sZW5ndGgsCiAgICAgICAgb2UgPSBHLmxlbmd0aCwKICAgICAgICBmZSA9IE1hdGgubWluKFgsIG9lKTsKICAgICAgbGV0IHVlOwogICAgICBmb3IgKHVlID0gMDsgdWUgPCBmZTsgdWUrKykgewogICAgICAgIGNvbnN0IFogPSAoR1t1ZV0gPSBVID8gY2xvbmVJZk1vdW50ZWQoR1t1ZV0pIDogbm9ybWFsaXplVk5vZGUoR1t1ZV0pKTsKICAgICAgICBUKFdbdWVdLCBaLCB0ZSwgbnVsbCwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgIH0KICAgICAgWCA+IG9lID8gQ2UoVywgc2UsIGNlLCAhMCwgITEsIGZlKSA6IEgoRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVLCBmZSk7CiAgICB9LAogICAgUSA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUpID0+IHsKICAgICAgbGV0IFggPSAwOwogICAgICBjb25zdCBvZSA9IEcubGVuZ3RoOwogICAgICBsZXQgZmUgPSBXLmxlbmd0aCAtIDEsCiAgICAgICAgdWUgPSBvZSAtIDE7CiAgICAgIGZvciAoOyBYIDw9IGZlICYmIFggPD0gdWU7KSB7CiAgICAgICAgY29uc3QgWiA9IFdbWF0sCiAgICAgICAgICBuZSA9IChHW1hdID0gVSA/IGNsb25lSWZNb3VudGVkKEdbWF0pIDogbm9ybWFsaXplVk5vZGUoR1tYXSkpOwogICAgICAgIGlmIChpc1NhbWVWTm9kZVR5cGUoWiwgbmUpKSBUKFosIG5lLCB0ZSwgbnVsbCwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgICAgZWxzZSBicmVhazsKICAgICAgICBYKys7CiAgICAgIH0KICAgICAgZm9yICg7IFggPD0gZmUgJiYgWCA8PSB1ZTspIHsKICAgICAgICBjb25zdCBaID0gV1tmZV0sCiAgICAgICAgICBuZSA9IChHW3VlXSA9IFUgPyBjbG9uZUlmTW91bnRlZChHW3VlXSkgOiBub3JtYWxpemVWTm9kZShHW3VlXSkpOwogICAgICAgIGlmIChpc1NhbWVWTm9kZVR5cGUoWiwgbmUpKSBUKFosIG5lLCB0ZSwgbnVsbCwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgICAgZWxzZSBicmVhazsKICAgICAgICBmZS0tLCB1ZS0tOwogICAgICB9CiAgICAgIGlmIChYID4gZmUpIHsKICAgICAgICBpZiAoWCA8PSB1ZSkgewogICAgICAgICAgY29uc3QgWiA9IHVlICsgMSwKICAgICAgICAgICAgbmUgPSBaIDwgb2UgPyBHW1pdLmVsIDogYWU7CiAgICAgICAgICBmb3IgKDsgWCA8PSB1ZTspCiAgICAgICAgICAgIFQoCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAoR1tYXSA9IFUgPyBjbG9uZUlmTW91bnRlZChHW1hdKSA6IG5vcm1hbGl6ZVZOb2RlKEdbWF0pKSwKICAgICAgICAgICAgICB0ZSwKICAgICAgICAgICAgICBuZSwKICAgICAgICAgICAgICBzZSwKICAgICAgICAgICAgICBjZSwKICAgICAgICAgICAgICBkZSwKICAgICAgICAgICAgICBqLAogICAgICAgICAgICAgIFUKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBYKys7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKFggPiB1ZSkgZm9yICg7IFggPD0gZmU7KSBoZShXW1hdLCBzZSwgY2UsICEwKSwgWCsrOwogICAgICBlbHNlIHsKICAgICAgICBjb25zdCBaID0gWCwKICAgICAgICAgIG5lID0gWCwKICAgICAgICAgIF9lID0gbmV3IE1hcCgpOwogICAgICAgIGZvciAoWCA9IG5lOyBYIDw9IHVlOyBYKyspIHsKICAgICAgICAgIGNvbnN0IHhlID0gKEdbWF0gPSBVID8gY2xvbmVJZk1vdW50ZWQoR1tYXSkgOiBub3JtYWxpemVWTm9kZShHW1hdKSk7CiAgICAgICAgICB4ZS5rZXkgIT0gbnVsbCAmJiBfZS5zZXQoeGUua2V5LCBYKTsKICAgICAgICB9CiAgICAgICAgbGV0IGJlLAogICAgICAgICAgVGUgPSAwOwogICAgICAgIGNvbnN0IEFlID0gdWUgLSBuZSArIDE7CiAgICAgICAgbGV0IFJlID0gITEsCiAgICAgICAgICB3ZSA9IDA7CiAgICAgICAgY29uc3QgSWUgPSBuZXcgQXJyYXkoQWUpOwogICAgICAgIGZvciAoWCA9IDA7IFggPCBBZTsgWCsrKSBJZVtYXSA9IDA7CiAgICAgICAgZm9yIChYID0gWjsgWCA8PSBmZTsgWCsrKSB7CiAgICAgICAgICBjb25zdCB4ZSA9IFdbWF07CiAgICAgICAgICBpZiAoVGUgPj0gQWUpIHsKICAgICAgICAgICAgaGUoeGUsIHNlLCBjZSwgITApOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBrZTsKICAgICAgICAgIGlmICh4ZS5rZXkgIT0gbnVsbCkga2UgPSBfZS5nZXQoeGUua2V5KTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZm9yIChiZSA9IG5lOyBiZSA8PSB1ZTsgYmUrKykKICAgICAgICAgICAgICBpZiAoSWVbYmUgLSBuZV0gPT09IDAgJiYgaXNTYW1lVk5vZGVUeXBlKHhlLCBHW2JlXSkpIHsKICAgICAgICAgICAgICAgIGtlID0gYmU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICBrZSA9PT0gdm9pZCAwCiAgICAgICAgICAgID8gaGUoeGUsIHNlLCBjZSwgITApCiAgICAgICAgICAgIDogKChJZVtrZSAtIG5lXSA9IFggKyAxKSwKICAgICAgICAgICAgICBrZSA+PSB3ZSA/ICh3ZSA9IGtlKSA6IChSZSA9ICEwKSwKICAgICAgICAgICAgICBUKHhlLCBHW2tlXSwgdGUsIG51bGwsIHNlLCBjZSwgZGUsIGosIFUpLAogICAgICAgICAgICAgIFRlKyspOwogICAgICAgIH0KICAgICAgICBjb25zdCBMZSA9IFJlID8gZ2V0U2VxdWVuY2UoSWUpIDogRU1QVFlfQVJSOwogICAgICAgIGZvciAoYmUgPSBMZS5sZW5ndGggLSAxLCBYID0gQWUgLSAxOyBYID49IDA7IFgtLSkgewogICAgICAgICAgY29uc3QgeGUgPSBuZSArIFgsCiAgICAgICAgICAgIGtlID0gR1t4ZV0sCiAgICAgICAgICAgIE9lID0geGUgKyAxIDwgb2UgPyBHW3hlICsgMV0uZWwgOiBhZTsKICAgICAgICAgIEllW1hdID09PSAwCiAgICAgICAgICAgID8gVChudWxsLCBrZSwgdGUsIE9lLCBzZSwgY2UsIGRlLCBqLCBVKQogICAgICAgICAgICA6IFJlICYmIChiZSA8IDAgfHwgWCAhPT0gTGVbYmVdID8gWShrZSwgdGUsIE9lLCAyKSA6IGJlLS0pOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIFkgPSAoVywgRywgdGUsIGFlLCBzZSA9IG51bGwpID0+IHsKICAgICAgY29uc3QgeyBlbDogY2UsIHR5cGU6IGRlLCB0cmFuc2l0aW9uOiBqLCBjaGlsZHJlbjogVSwgc2hhcGVGbGFnOiBYIH0gPSBXOwogICAgICBpZiAoWCAmIDYpIHsKICAgICAgICBZKFcuY29tcG9uZW50LnN1YlRyZWUsIEcsIHRlLCBhZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChYICYgMTI4KSB7CiAgICAgICAgVy5zdXNwZW5zZS5tb3ZlKEcsIHRlLCBhZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChYICYgNjQpIHsKICAgICAgICBkZS5tb3ZlKFcsIEcsIHRlLCBnZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChkZSA9PT0gRnJhZ21lbnQpIHsKICAgICAgICBuKGNlLCBHLCB0ZSk7CiAgICAgICAgZm9yIChsZXQgZmUgPSAwOyBmZSA8IFUubGVuZ3RoOyBmZSsrKSBZKFVbZmVdLCBHLCB0ZSwgYWUpOwogICAgICAgIG4oVy5hbmNob3IsIEcsIHRlKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKGRlID09PSBTdGF0aWMpIHsKICAgICAgICBTKFcsIEcsIHRlKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKGFlICE9PSAyICYmIFggJiAxICYmIGopCiAgICAgICAgaWYgKGFlID09PSAwKQogICAgICAgICAgai5iZWZvcmVFbnRlcihjZSksCiAgICAgICAgICAgIG4oY2UsIEcsIHRlKSwKICAgICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IGouZW50ZXIoY2UpLCBzZSk7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBjb25zdCB7IGxlYXZlOiBmZSwgZGVsYXlMZWF2ZTogdWUsIGFmdGVyTGVhdmU6IFogfSA9IGosCiAgICAgICAgICAgIG5lID0gKCkgPT4gbihjZSwgRywgdGUpLAogICAgICAgICAgICBfZSA9ICgpID0+IHsKICAgICAgICAgICAgICBmZShjZSwgKCkgPT4gewogICAgICAgICAgICAgICAgbmUoKSwgWiAmJiBaKCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB1ZSA/IHVlKGNlLCBuZSwgX2UpIDogX2UoKTsKICAgICAgICB9CiAgICAgIGVsc2UgbihjZSwgRywgdGUpOwogICAgfSwKICAgIGhlID0gKFcsIEcsIHRlLCBhZSA9ICExLCBzZSA9ICExKSA9PiB7CiAgICAgIGNvbnN0IHsKICAgICAgICB0eXBlOiBjZSwKICAgICAgICBwcm9wczogZGUsCiAgICAgICAgcmVmOiBqLAogICAgICAgIGNoaWxkcmVuOiBVLAogICAgICAgIGR5bmFtaWNDaGlsZHJlbjogWCwKICAgICAgICBzaGFwZUZsYWc6IG9lLAogICAgICAgIHBhdGNoRmxhZzogZmUsCiAgICAgICAgZGlyczogdWUsCiAgICAgICAgY2FjaGVJbmRleDogWiwKICAgICAgfSA9IFc7CiAgICAgIGlmICgKICAgICAgICAoZmUgPT09IC0yICYmIChzZSA9ICExKSwKICAgICAgICAgIGogIT0gbnVsbCAmJiBzZXRSZWYoaiwgbnVsbCwgdGUsIFcsICEwKSwKICAgICAgICAgIFogIT0gbnVsbCAmJiAoRy5yZW5kZXJDYWNoZVtaXSA9IHZvaWQgMCksCiAgICAgICAgICBvZSAmIDI1NikKICAgICAgKSB7CiAgICAgICAgRy5jdHguZGVhY3RpdmF0ZShXKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgbmUgPSBvZSAmIDEgJiYgdWUsCiAgICAgICAgX2UgPSAhaXNBc3luY1dyYXBwZXIoVyk7CiAgICAgIGxldCBiZTsKICAgICAgaWYgKAogICAgICAgIChfZSAmJgogICAgICAgICAgKGJlID0gZGUgJiYgZGUub25Wbm9kZUJlZm9yZVVubW91bnQpICYmCiAgICAgICAgICBpbnZva2VWTm9kZUhvb2soYmUsIEcsIFcpLAogICAgICAgICAgb2UgJiA2KQogICAgICApCiAgICAgICAgUGUoVy5jb21wb25lbnQsIHRlLCBhZSk7CiAgICAgIGVsc2UgewogICAgICAgIGlmIChvZSAmIDEyOCkgewogICAgICAgICAgVy5zdXNwZW5zZS51bm1vdW50KHRlLCBhZSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIG5lICYmIGludm9rZURpcmVjdGl2ZUhvb2soVywgbnVsbCwgRywgImJlZm9yZVVubW91bnQiKSwKICAgICAgICAgIG9lICYgNjQKICAgICAgICAgICAgPyBXLnR5cGUucmVtb3ZlKFcsIEcsIHRlLCBnZSwgYWUpCiAgICAgICAgICAgIDogWCAmJiAhWC5oYXNPbmNlICYmIChjZSAhPT0gRnJhZ21lbnQgfHwgKGZlID4gMCAmJiBmZSAmIDY0KSkKICAgICAgICAgICAgICA/IENlKFgsIEcsIHRlLCAhMSwgITApCiAgICAgICAgICAgICAgOiAoKGNlID09PSBGcmFnbWVudCAmJiBmZSAmIDM4NCkgfHwgKCFzZSAmJiBvZSAmIDE2KSkgJiYKICAgICAgICAgICAgICBDZShVLCBHLCB0ZSksCiAgICAgICAgICBhZSAmJiB5ZShXKTsKICAgICAgfQogICAgICAoKF9lICYmIChiZSA9IGRlICYmIGRlLm9uVm5vZGVVbm1vdW50ZWQpKSB8fCBuZSkgJiYKICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgYmUgJiYgaW52b2tlVk5vZGVIb29rKGJlLCBHLCBXKSwKICAgICAgICAgICAgbmUgJiYgaW52b2tlRGlyZWN0aXZlSG9vayhXLCBudWxsLCBHLCAidW5tb3VudGVkIik7CiAgICAgICAgfSwgdGUpOwogICAgfSwKICAgIHllID0gKFcpID0+IHsKICAgICAgY29uc3QgeyB0eXBlOiBHLCBlbDogdGUsIGFuY2hvcjogYWUsIHRyYW5zaXRpb246IHNlIH0gPSBXOwogICAgICBpZiAoRyA9PT0gRnJhZ21lbnQpIHsKICAgICAgICB2ZSh0ZSwgYWUpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBpZiAoRyA9PT0gU3RhdGljKSB7CiAgICAgICAgQShXKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgY2UgPSAoKSA9PiB7CiAgICAgICAgaSh0ZSksIHNlICYmICFzZS5wZXJzaXN0ZWQgJiYgc2UuYWZ0ZXJMZWF2ZSAmJiBzZS5hZnRlckxlYXZlKCk7CiAgICAgIH07CiAgICAgIGlmIChXLnNoYXBlRmxhZyAmIDEgJiYgc2UgJiYgIXNlLnBlcnNpc3RlZCkgewogICAgICAgIGNvbnN0IHsgbGVhdmU6IGRlLCBkZWxheUxlYXZlOiBqIH0gPSBzZSwKICAgICAgICAgIFUgPSAoKSA9PiBkZSh0ZSwgY2UpOwogICAgICAgIGogPyBqKFcuZWwsIGNlLCBVKSA6IFUoKTsKICAgICAgfSBlbHNlIGNlKCk7CiAgICB9LAogICAgdmUgPSAoVywgRykgPT4gewogICAgICBsZXQgdGU7CiAgICAgIGZvciAoOyBXICE9PSBHOykgKHRlID0gYihXKSksIGkoVyksIChXID0gdGUpOwogICAgICBpKEcpOwogICAgfSwKICAgIFBlID0gKFcsIEcsIHRlKSA9PiB7CiAgICAgIGNvbnN0IHsgYnVtOiBhZSwgc2NvcGU6IHNlLCBqb2I6IGNlLCBzdWJUcmVlOiBkZSwgdW06IGosIG06IFUsIGE6IFggfSA9IFc7CiAgICAgIGludmFsaWRhdGVNb3VudChVKSwKICAgICAgICBpbnZhbGlkYXRlTW91bnQoWCksCiAgICAgICAgYWUgJiYgaW52b2tlQXJyYXlGbnMoYWUpLAogICAgICAgIHNlLnN0b3AoKSwKICAgICAgICBjZSAmJiAoKGNlLmZsYWdzIHw9IDgpLCBoZShkZSwgVywgRywgdGUpKSwKICAgICAgICBqICYmIHF1ZXVlUG9zdFJlbmRlckVmZmVjdChqLCBHKSwKICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgVy5pc1VubW91bnRlZCA9ICEwOwogICAgICAgIH0sIEcpLAogICAgICAgIEcgJiYKICAgICAgICBHLnBlbmRpbmdCcmFuY2ggJiYKICAgICAgICAhRy5pc1VubW91bnRlZCAmJgogICAgICAgIFcuYXN5bmNEZXAgJiYKICAgICAgICAhVy5hc3luY1Jlc29sdmVkICYmCiAgICAgICAgVy5zdXNwZW5zZUlkID09PSBHLnBlbmRpbmdJZCAmJgogICAgICAgIChHLmRlcHMtLSwgRy5kZXBzID09PSAwICYmIEcucmVzb2x2ZSgpKTsKICAgIH0sCiAgICBDZSA9IChXLCBHLCB0ZSwgYWUgPSAhMSwgc2UgPSAhMSwgY2UgPSAwKSA9PiB7CiAgICAgIGZvciAobGV0IGRlID0gY2U7IGRlIDwgVy5sZW5ndGg7IGRlKyspIGhlKFdbZGVdLCBHLCB0ZSwgYWUsIHNlKTsKICAgIH0sCiAgICBpZSA9IChXKSA9PiB7CiAgICAgIGlmIChXLnNoYXBlRmxhZyAmIDYpIHJldHVybiBpZShXLmNvbXBvbmVudC5zdWJUcmVlKTsKICAgICAgaWYgKFcuc2hhcGVGbGFnICYgMTI4KSByZXR1cm4gVy5zdXNwZW5zZS5uZXh0KCk7CiAgICAgIGNvbnN0IEcgPSBiKFcuYW5jaG9yIHx8IFcuZWwpLAogICAgICAgIHRlID0gRyAmJiBHW1RlbGVwb3J0RW5kS2V5XTsKICAgICAgcmV0dXJuIHRlID8gYih0ZSkgOiBHOwogICAgfTsKICBsZXQgbWUgPSAhMTsKICBjb25zdCBwZSA9IChXLCBHLCB0ZSkgPT4gewogICAgVyA9PSBudWxsCiAgICAgID8gRy5fdm5vZGUgJiYgaGUoRy5fdm5vZGUsIG51bGwsIG51bGwsICEwKQogICAgICA6IFQoRy5fdm5vZGUgfHwgbnVsbCwgVywgRywgbnVsbCwgbnVsbCwgbnVsbCwgdGUpLAogICAgICAoRy5fdm5vZGUgPSBXKSwKICAgICAgbWUgfHwgKChtZSA9ICEwKSwgZmx1c2hQcmVGbHVzaENicygpLCBmbHVzaFBvc3RGbHVzaENicygpLCAobWUgPSAhMSkpOwogIH0sCiAgICBnZSA9IHsKICAgICAgcDogVCwKICAgICAgdW06IGhlLAogICAgICBtOiBZLAogICAgICByOiB5ZSwKICAgICAgbXQ6IGxlLAogICAgICBtYzogSCwKICAgICAgcGM6IE4sCiAgICAgIHBiYzogcSwKICAgICAgbjogaWUsCiAgICAgIG86IGUsCiAgICB9OwogIGxldCBFZSwgU2U7CiAgcmV0dXJuICgKICAgIHQgJiYgKFtFZSwgU2VdID0gdChnZSkpLAogICAgeyByZW5kZXI6IHBlLCBoeWRyYXRlOiBFZSwgY3JlYXRlQXBwOiBjcmVhdGVBcHBBUEkocGUsIEVlKSB9CiAgKTsKfQpmdW5jdGlvbiByZXNvbHZlQ2hpbGRyZW5OYW1lc3BhY2UoeyB0eXBlOiBlLCBwcm9wczogdCB9LCByKSB7CiAgcmV0dXJuIChyID09PSAic3ZnIiAmJiBlID09PSAiZm9yZWlnbk9iamVjdCIpIHx8CiAgICAociA9PT0gIm1hdGhtbCIgJiYKICAgICAgZSA9PT0gImFubm90YXRpb24teG1sIiAmJgogICAgICB0ICYmCiAgICAgIHQuZW5jb2RpbmcgJiYKICAgICAgdC5lbmNvZGluZy5pbmNsdWRlcygiaHRtbCIpKQogICAgPyB2b2lkIDAKICAgIDogcjsKfQpmdW5jdGlvbiB0b2dnbGVSZWN1cnNlKHsgZWZmZWN0OiBlLCBqb2I6IHQgfSwgcikgewogIHIgPyAoKGUuZmxhZ3MgfD0gMzIpLCAodC5mbGFncyB8PSA0KSkgOiAoKGUuZmxhZ3MgJj0gLTMzKSwgKHQuZmxhZ3MgJj0gLTUpKTsKfQpmdW5jdGlvbiBuZWVkVHJhbnNpdGlvbihlLCB0KSB7CiAgcmV0dXJuICghZSB8fCAoZSAmJiAhZS5wZW5kaW5nQnJhbmNoKSkgJiYgdCAmJiAhdC5wZXJzaXN0ZWQ7Cn0KZnVuY3Rpb24gdHJhdmVyc2VTdGF0aWNDaGlsZHJlbihlLCB0LCByID0gITEpIHsKICBjb25zdCBuID0gZS5jaGlsZHJlbiwKICAgIGkgPSB0LmNoaWxkcmVuOwogIGlmIChpc0FycmF5JDIobikgJiYgaXNBcnJheSQyKGkpKQogICAgZm9yIChsZXQgYSA9IDA7IGEgPCBuLmxlbmd0aDsgYSsrKSB7CiAgICAgIGNvbnN0IG8gPSBuW2FdOwogICAgICBsZXQgbCA9IGlbYV07CiAgICAgIGwuc2hhcGVGbGFnICYgMSAmJgogICAgICAgICFsLmR5bmFtaWNDaGlsZHJlbiAmJgogICAgICAgICgobC5wYXRjaEZsYWcgPD0gMCB8fCBsLnBhdGNoRmxhZyA9PT0gMzIpICYmCiAgICAgICAgICAoKGwgPSBpW2FdID0gY2xvbmVJZk1vdW50ZWQoaVthXSkpLCAobC5lbCA9IG8uZWwpKSwKICAgICAgICAgICFyICYmIGwucGF0Y2hGbGFnICE9PSAtMiAmJiB0cmF2ZXJzZVN0YXRpY0NoaWxkcmVuKG8sIGwpKSwKICAgICAgICBsLnR5cGUgPT09IFRleHQgJiYgKGwuZWwgPSBvLmVsKTsKICAgIH0KfQpmdW5jdGlvbiBnZXRTZXF1ZW5jZShlKSB7CiAgY29uc3QgdCA9IGUuc2xpY2UoKSwKICAgIHIgPSBbMF07CiAgbGV0IG4sIGksIGEsIG8sIGw7CiAgY29uc3QgYyA9IGUubGVuZ3RoOwogIGZvciAobiA9IDA7IG4gPCBjOyBuKyspIHsKICAgIGNvbnN0IHUgPSBlW25dOwogICAgaWYgKHUgIT09IDApIHsKICAgICAgaWYgKCgoaSA9IHJbci5sZW5ndGggLSAxXSksIGVbaV0gPCB1KSkgewogICAgICAgICh0W25dID0gaSksIHIucHVzaChuKTsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBmb3IgKGEgPSAwLCBvID0gci5sZW5ndGggLSAxOyBhIDwgbzspCiAgICAgICAgKGwgPSAoYSArIG8pID4+IDEpLCBlW3JbbF1dIDwgdSA/IChhID0gbCArIDEpIDogKG8gPSBsKTsKICAgICAgdSA8IGVbclthXV0gJiYgKGEgPiAwICYmICh0W25dID0gclthIC0gMV0pLCAoclthXSA9IG4pKTsKICAgIH0KICB9CiAgZm9yIChhID0gci5sZW5ndGgsIG8gPSByW2EgLSAxXTsgYS0tID4gMDspIChyW2FdID0gbyksIChvID0gdFtvXSk7CiAgcmV0dXJuIHI7Cn0KZnVuY3Rpb24gbG9jYXRlTm9uSHlkcmF0ZWRBc3luY1Jvb3QoZSkgewogIGNvbnN0IHQgPSBlLnN1YlRyZWUuY29tcG9uZW50OwogIGlmICh0KQogICAgcmV0dXJuIHQuYXN5bmNEZXAgJiYgIXQuYXN5bmNSZXNvbHZlZCA/IHQgOiBsb2NhdGVOb25IeWRyYXRlZEFzeW5jUm9vdCh0KTsKfQpmdW5jdGlvbiBpbnZhbGlkYXRlTW91bnQoZSkgewogIGlmIChlKSBmb3IgKGxldCB0ID0gMDsgdCA8IGUubGVuZ3RoOyB0KyspIGVbdF0uZmxhZ3MgfD0gODsKfQpjb25zdCBzc3JDb250ZXh0S2V5ID0gU3ltYm9sLmZvcigidi1zY3giKSwKICB1c2VTU1JDb250ZXh0ID0gKCkgPT4gaW5qZWN0JDEoc3NyQ29udGV4dEtleSk7CmZ1bmN0aW9uIHdhdGNoRWZmZWN0KGUsIHQpIHsKICByZXR1cm4gZG9XYXRjaChlLCBudWxsLCB0KTsKfQpmdW5jdGlvbiB3YXRjaFBvc3RFZmZlY3QoZSwgdCkgewogIHJldHVybiBkb1dhdGNoKGUsIG51bGwsIHsgZmx1c2g6ICJwb3N0IiB9KTsKfQpmdW5jdGlvbiB3YXRjaFN5bmNFZmZlY3QoZSwgdCkgewogIHJldHVybiBkb1dhdGNoKGUsIG51bGwsIHsgZmx1c2g6ICJzeW5jIiB9KTsKfQpmdW5jdGlvbiB3YXRjaChlLCB0LCByKSB7CiAgcmV0dXJuIGRvV2F0Y2goZSwgdCwgcik7Cn0KZnVuY3Rpb24gZG9XYXRjaChlLCB0LCByID0gRU1QVFlfT0JKKSB7CiAgY29uc3QgeyBpbW1lZGlhdGU6IG4sIGRlZXA6IGksIGZsdXNoOiBhLCBvbmNlOiBvIH0gPSByLAogICAgbCA9IGV4dGVuZCh7fSwgciksCiAgICBjID0gKHQgJiYgbikgfHwgKCF0ICYmIGEgIT09ICJwb3N0Iik7CiAgbGV0IHU7CiAgaWYgKGlzSW5TU1JDb21wb25lbnRTZXR1cCkgewogICAgaWYgKGEgPT09ICJzeW5jIikgewogICAgICBjb25zdCBQID0gdXNlU1NSQ29udGV4dCgpOwogICAgICB1ID0gUC5fX3dhdGNoZXJIYW5kbGVzIHx8IChQLl9fd2F0Y2hlckhhbmRsZXMgPSBbXSk7CiAgICB9IGVsc2UgaWYgKCFjKSB7CiAgICAgIGNvbnN0IFAgPSAoKSA9PiB7IH07CiAgICAgIHJldHVybiAoUC5zdG9wID0gTk9PUCksIChQLnJlc3VtZSA9IE5PT1ApLCAoUC5wYXVzZSA9IE5PT1ApLCBQOwogICAgfQogIH0KICBjb25zdCBkID0gY3VycmVudEluc3RhbmNlOwogIGwuY2FsbCA9IChQLCBSLCBUKSA9PiBjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhQLCBkLCBSLCBUKTsKICBsZXQgRSA9ICExOwogIGEgPT09ICJwb3N0IgogICAgPyAobC5zY2hlZHVsZXIgPSAoUCkgPT4gewogICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoUCwgZCAmJiBkLnN1c3BlbnNlKTsKICAgIH0pCiAgICA6IGEgIT09ICJzeW5jIiAmJgogICAgKChFID0gITApLAogICAgICAobC5zY2hlZHVsZXIgPSAoUCwgUikgPT4gewogICAgICAgIFIgPyBQKCkgOiBxdWV1ZUpvYihQKTsKICAgICAgfSkpLAogICAgKGwuYXVnbWVudEpvYiA9IChQKSA9PiB7CiAgICAgIHQgJiYgKFAuZmxhZ3MgfD0gNCksCiAgICAgICAgRSAmJiAoKFAuZmxhZ3MgfD0gMiksIGQgJiYgKChQLmlkID0gZC51aWQpLCAoUC5pID0gZCkpKTsKICAgIH0pOwogIGNvbnN0IGIgPSB3YXRjaCQxKGUsIHQsIGwpOwogIHJldHVybiBpc0luU1NSQ29tcG9uZW50U2V0dXAgJiYgKHUgPyB1LnB1c2goYikgOiBjICYmIGIoKSksIGI7Cn0KZnVuY3Rpb24gaW5zdGFuY2VXYXRjaChlLCB0LCByKSB7CiAgY29uc3QgbiA9IHRoaXMucHJveHksCiAgICBpID0gaXNTdHJpbmckMShlKQogICAgICA/IGUuaW5jbHVkZXMoIi4iKQogICAgICAgID8gY3JlYXRlUGF0aEdldHRlcihuLCBlKQogICAgICAgIDogKCkgPT4gbltlXQogICAgICA6IGUuYmluZChuLCBuKTsKICBsZXQgYTsKICBpc0Z1bmN0aW9uJDEodCkgPyAoYSA9IHQpIDogKChhID0gdC5oYW5kbGVyKSwgKHIgPSB0KSk7CiAgY29uc3QgbyA9IHNldEN1cnJlbnRJbnN0YW5jZSh0aGlzKSwKICAgIGwgPSBkb1dhdGNoKGksIGEuYmluZChuKSwgcik7CiAgcmV0dXJuIG8oKSwgbDsKfQpmdW5jdGlvbiBjcmVhdGVQYXRoR2V0dGVyKGUsIHQpIHsKICBjb25zdCByID0gdC5zcGxpdCgiLiIpOwogIHJldHVybiAoKSA9PiB7CiAgICBsZXQgbiA9IGU7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHIubGVuZ3RoICYmIG47IGkrKykgbiA9IG5bcltpXV07CiAgICByZXR1cm4gbjsKICB9Owp9CmZ1bmN0aW9uIHVzZU1vZGVsKGUsIHQsIHIgPSBFTVBUWV9PQkopIHsKICBjb25zdCBuID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKSwKICAgIGkgPSBjYW1lbGl6ZSh0KSwKICAgIGEgPSBoeXBoZW5hdGUodCksCiAgICBvID0gZ2V0TW9kZWxNb2RpZmllcnMoZSwgaSksCiAgICBsID0gY3VzdG9tUmVmKChjLCB1KSA9PiB7CiAgICAgIGxldCBkLAogICAgICAgIEUgPSBFTVBUWV9PQkosCiAgICAgICAgYjsKICAgICAgcmV0dXJuICgKICAgICAgICB3YXRjaFN5bmNFZmZlY3QoKCkgPT4gewogICAgICAgICAgY29uc3QgUCA9IGVbaV07CiAgICAgICAgICBoYXNDaGFuZ2VkKGQsIFApICYmICgoZCA9IFApLCB1KCkpOwogICAgICAgIH0pLAogICAgICAgIHsKICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgcmV0dXJuIGMoKSwgci5nZXQgPyByLmdldChkKSA6IGQ7CiAgICAgICAgICB9LAogICAgICAgICAgc2V0KFApIHsKICAgICAgICAgICAgY29uc3QgUiA9IHIuc2V0ID8gci5zZXQoUCkgOiBQOwogICAgICAgICAgICBpZiAoIWhhc0NoYW5nZWQoUiwgZCkgJiYgIShFICE9PSBFTVBUWV9PQkogJiYgaGFzQ2hhbmdlZChQLCBFKSkpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjb25zdCBUID0gbi52bm9kZS5wcm9wczsKICAgICAgICAgICAgKFQgJiYKICAgICAgICAgICAgICAodCBpbiBUIHx8IGkgaW4gVCB8fCBhIGluIFQpICYmCiAgICAgICAgICAgICAgKGBvblVwZGF0ZToke3R9YCBpbiBUIHx8CiAgICAgICAgICAgICAgICBgb25VcGRhdGU6JHtpfWAgaW4gVCB8fAogICAgICAgICAgICAgICAgYG9uVXBkYXRlOiR7YX1gIGluIFQpKSB8fAogICAgICAgICAgICAgICgoZCA9IFApLCB1KCkpLAogICAgICAgICAgICAgIG4uZW1pdChgdXBkYXRlOiR7dH1gLCBSKSwKICAgICAgICAgICAgICBoYXNDaGFuZ2VkKFAsIFIpICYmIGhhc0NoYW5nZWQoUCwgRSkgJiYgIWhhc0NoYW5nZWQoUiwgYikgJiYgdSgpLAogICAgICAgICAgICAgIChFID0gUCksCiAgICAgICAgICAgICAgKGIgPSBSKTsKICAgICAgICAgIH0sCiAgICAgICAgfQogICAgICApOwogICAgfSk7CiAgcmV0dXJuICgKICAgIChsW1N5bWJvbC5pdGVyYXRvcl0gPSAoKSA9PiB7CiAgICAgIGxldCBjID0gMDsKICAgICAgcmV0dXJuIHsKICAgICAgICBuZXh0KCkgewogICAgICAgICAgcmV0dXJuIGMgPCAyCiAgICAgICAgICAgID8geyB2YWx1ZTogYysrID8gbyB8fCBFTVBUWV9PQkogOiBsLCBkb25lOiAhMSB9CiAgICAgICAgICAgIDogeyBkb25lOiAhMCB9OwogICAgICAgIH0sCiAgICAgIH07CiAgICB9KSwKICAgIGwKICApOwp9CmNvbnN0IGdldE1vZGVsTW9kaWZpZXJzID0gKGUsIHQpID0+CiAgdCA9PT0gIm1vZGVsVmFsdWUiIHx8IHQgPT09ICJtb2RlbC12YWx1ZSIKICAgID8gZS5tb2RlbE1vZGlmaWVycwogICAgOiBlW2Ake3R9TW9kaWZpZXJzYF0gfHwKICAgIGVbYCR7Y2FtZWxpemUodCl9TW9kaWZpZXJzYF0gfHwKICAgIGVbYCR7aHlwaGVuYXRlKHQpfU1vZGlmaWVyc2BdOwpmdW5jdGlvbiBlbWl0KGUsIHQsIC4uLnIpIHsKICBpZiAoZS5pc1VubW91bnRlZCkgcmV0dXJuOwogIGNvbnN0IG4gPSBlLnZub2RlLnByb3BzIHx8IEVNUFRZX09CSjsKICBsZXQgaSA9IHI7CiAgY29uc3QgYSA9IHQuc3RhcnRzV2l0aCgidXBkYXRlOiIpLAogICAgbyA9IGEgJiYgZ2V0TW9kZWxNb2RpZmllcnMobiwgdC5zbGljZSg3KSk7CiAgbyAmJgogICAgKG8udHJpbSAmJiAoaSA9IHIubWFwKChkKSA9PiAoaXNTdHJpbmckMShkKSA/IGQudHJpbSgpIDogZCkpKSwKICAgICAgby5udW1iZXIgJiYgKGkgPSByLm1hcChsb29zZVRvTnVtYmVyKSkpOwogIGxldCBsLAogICAgYyA9IG5bKGwgPSB0b0hhbmRsZXJLZXkodCkpXSB8fCBuWyhsID0gdG9IYW5kbGVyS2V5KGNhbWVsaXplKHQpKSldOwogICFjICYmIGEgJiYgKGMgPSBuWyhsID0gdG9IYW5kbGVyS2V5KGh5cGhlbmF0ZSh0KSkpXSksCiAgICBjICYmIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGMsIGUsIDYsIGkpOwogIGNvbnN0IHUgPSBuW2wgKyAiT25jZSJdOwogIGlmICh1KSB7CiAgICBpZiAoIWUuZW1pdHRlZCkgZS5lbWl0dGVkID0ge307CiAgICBlbHNlIGlmIChlLmVtaXR0ZWRbbF0pIHJldHVybjsKICAgIChlLmVtaXR0ZWRbbF0gPSAhMCksIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKHUsIGUsIDYsIGkpOwogIH0KfQpmdW5jdGlvbiBub3JtYWxpemVFbWl0c09wdGlvbnMoZSwgdCwgciA9ICExKSB7CiAgY29uc3QgbiA9IHQuZW1pdHNDYWNoZSwKICAgIGkgPSBuLmdldChlKTsKICBpZiAoaSAhPT0gdm9pZCAwKSByZXR1cm4gaTsKICBjb25zdCBhID0gZS5lbWl0czsKICBsZXQgbyA9IHt9LAogICAgbCA9ICExOwogIGlmICghaXNGdW5jdGlvbiQxKGUpKSB7CiAgICBjb25zdCBjID0gKHUpID0+IHsKICAgICAgY29uc3QgZCA9IG5vcm1hbGl6ZUVtaXRzT3B0aW9ucyh1LCB0LCAhMCk7CiAgICAgIGQgJiYgKChsID0gITApLCBleHRlbmQobywgZCkpOwogICAgfTsKICAgICFyICYmIHQubWl4aW5zLmxlbmd0aCAmJiB0Lm1peGlucy5mb3JFYWNoKGMpLAogICAgICBlLmV4dGVuZHMgJiYgYyhlLmV4dGVuZHMpLAogICAgICBlLm1peGlucyAmJiBlLm1peGlucy5mb3JFYWNoKGMpOwogIH0KICByZXR1cm4gIWEgJiYgIWwKICAgID8gKGlzT2JqZWN0JDIoZSkgJiYgbi5zZXQoZSwgbnVsbCksIG51bGwpCiAgICA6IChpc0FycmF5JDIoYSkgPyBhLmZvckVhY2goKGMpID0+IChvW2NdID0gbnVsbCkpIDogZXh0ZW5kKG8sIGEpLAogICAgICBpc09iamVjdCQyKGUpICYmIG4uc2V0KGUsIG8pLAogICAgICBvKTsKfQpmdW5jdGlvbiBpc0VtaXRMaXN0ZW5lcihlLCB0KSB7CiAgcmV0dXJuICFlIHx8ICFpc09uJDEodCkKICAgID8gITEKICAgIDogKCh0ID0gdC5zbGljZSgyKS5yZXBsYWNlKC9PbmNlJC8sICIiKSksCiAgICAgIGhhc093biQxKGUsIHRbMF0udG9Mb3dlckNhc2UoKSArIHQuc2xpY2UoMSkpIHx8CiAgICAgIGhhc093biQxKGUsIGh5cGhlbmF0ZSh0KSkgfHwKICAgICAgaGFzT3duJDEoZSwgdCkpOwp9CmZ1bmN0aW9uIG1hcmtBdHRyc0FjY2Vzc2VkKCkgeyB9CmZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudFJvb3QoZSkgewogIGNvbnN0IHsKICAgIHR5cGU6IHQsCiAgICB2bm9kZTogciwKICAgIHByb3h5OiBuLAogICAgd2l0aFByb3h5OiBpLAogICAgcHJvcHNPcHRpb25zOiBbYV0sCiAgICBzbG90czogbywKICAgIGF0dHJzOiBsLAogICAgZW1pdDogYywKICAgIHJlbmRlcjogdSwKICAgIHJlbmRlckNhY2hlOiBkLAogICAgcHJvcHM6IEUsCiAgICBkYXRhOiBiLAogICAgc2V0dXBTdGF0ZTogUCwKICAgIGN0eDogUiwKICAgIGluaGVyaXRBdHRyczogVCwKICB9ID0gZSwKICAgIE0gPSBzZXRDdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UoZSk7CiAgbGV0IHgsIGs7CiAgdHJ5IHsKICAgIGlmIChyLnNoYXBlRmxhZyAmIDQpIHsKICAgICAgY29uc3QgQSA9IGkgfHwgbiwKICAgICAgICBPID0gQTsKICAgICAgKHggPSBub3JtYWxpemVWTm9kZSh1LmNhbGwoTywgQSwgZCwgRSwgUCwgYiwgUikpKSwgKGsgPSBsKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IEEgPSB0OwogICAgICAoeCA9IG5vcm1hbGl6ZVZOb2RlKAogICAgICAgIEEubGVuZ3RoID4gMSA/IEEoRSwgeyBhdHRyczogbCwgc2xvdHM6IG8sIGVtaXQ6IGMgfSkgOiBBKEUsIG51bGwpCiAgICAgICkpLAogICAgICAgIChrID0gdC5wcm9wcyA/IGwgOiBnZXRGdW5jdGlvbmFsRmFsbHRocm91Z2gobCkpOwogICAgfQogIH0gY2F0Y2ggKEEpIHsKICAgIChibG9ja1N0YWNrLmxlbmd0aCA9IDApLCBoYW5kbGVFcnJvcihBLCBlLCAxKSwgKHggPSBjcmVhdGVWTm9kZShDb21tZW50KSk7CiAgfQogIGxldCBTID0geDsKICBpZiAoayAmJiBUICE9PSAhMSkgewogICAgY29uc3QgQSA9IE9iamVjdC5rZXlzKGspLAogICAgICB7IHNoYXBlRmxhZzogTyB9ID0gUzsKICAgIEEubGVuZ3RoICYmCiAgICAgIE8gJiA3ICYmCiAgICAgIChhICYmIEEuc29tZShpc01vZGVsTGlzdGVuZXIpICYmIChrID0gZmlsdGVyTW9kZWxMaXN0ZW5lcnMoaywgYSkpLAogICAgICAgIChTID0gY2xvbmVWTm9kZShTLCBrLCAhMSwgITApKSk7CiAgfQogIHJldHVybiAoCiAgICByLmRpcnMgJiYKICAgICgoUyA9IGNsb25lVk5vZGUoUywgbnVsbCwgITEsICEwKSksCiAgICAgIChTLmRpcnMgPSBTLmRpcnMgPyBTLmRpcnMuY29uY2F0KHIuZGlycykgOiByLmRpcnMpKSwKICAgIHIudHJhbnNpdGlvbiAmJiBzZXRUcmFuc2l0aW9uSG9va3MoUywgci50cmFuc2l0aW9uKSwKICAgICh4ID0gUyksCiAgICBzZXRDdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UoTSksCiAgICB4CiAgKTsKfQpmdW5jdGlvbiBmaWx0ZXJTaW5nbGVSb290KGUsIHQgPSAhMCkgewogIGxldCByOwogIGZvciAobGV0IG4gPSAwOyBuIDwgZS5sZW5ndGg7IG4rKykgewogICAgY29uc3QgaSA9IGVbbl07CiAgICBpZiAoaXNWTm9kZSQxKGkpKSB7CiAgICAgIGlmIChpLnR5cGUgIT09IENvbW1lbnQgfHwgaS5jaGlsZHJlbiA9PT0gInYtaWYiKSB7CiAgICAgICAgaWYgKHIpIHJldHVybjsKICAgICAgICByID0gaTsKICAgICAgfQogICAgfSBlbHNlIHJldHVybjsKICB9CiAgcmV0dXJuIHI7Cn0KY29uc3QgZ2V0RnVuY3Rpb25hbEZhbGx0aHJvdWdoID0gKGUpID0+IHsKICBsZXQgdDsKICBmb3IgKGNvbnN0IHIgaW4gZSkKICAgIChyID09PSAiY2xhc3MiIHx8IHIgPT09ICJzdHlsZSIgfHwgaXNPbiQxKHIpKSAmJgogICAgICAoKHQgfHwgKHQgPSB7fSkpW3JdID0gZVtyXSk7CiAgcmV0dXJuIHQ7Cn0sCiAgZmlsdGVyTW9kZWxMaXN0ZW5lcnMgPSAoZSwgdCkgPT4gewogICAgY29uc3QgciA9IHt9OwogICAgZm9yIChjb25zdCBuIGluIGUpCiAgICAgICghaXNNb2RlbExpc3RlbmVyKG4pIHx8ICEobi5zbGljZSg5KSBpbiB0KSkgJiYgKHJbbl0gPSBlW25dKTsKICAgIHJldHVybiByOwogIH07CmZ1bmN0aW9uIHNob3VsZFVwZGF0ZUNvbXBvbmVudChlLCB0LCByKSB7CiAgY29uc3QgeyBwcm9wczogbiwgY2hpbGRyZW46IGksIGNvbXBvbmVudDogYSB9ID0gZSwKICAgIHsgcHJvcHM6IG8sIGNoaWxkcmVuOiBsLCBwYXRjaEZsYWc6IGMgfSA9IHQsCiAgICB1ID0gYS5lbWl0c09wdGlvbnM7CiAgaWYgKHQuZGlycyB8fCB0LnRyYW5zaXRpb24pIHJldHVybiAhMDsKICBpZiAociAmJiBjID49IDApIHsKICAgIGlmIChjICYgMTAyNCkgcmV0dXJuICEwOwogICAgaWYgKGMgJiAxNikgcmV0dXJuIG4gPyBoYXNQcm9wc0NoYW5nZWQobiwgbywgdSkgOiAhIW87CiAgICBpZiAoYyAmIDgpIHsKICAgICAgY29uc3QgZCA9IHQuZHluYW1pY1Byb3BzOwogICAgICBmb3IgKGxldCBFID0gMDsgRSA8IGQubGVuZ3RoOyBFKyspIHsKICAgICAgICBjb25zdCBiID0gZFtFXTsKICAgICAgICBpZiAob1tiXSAhPT0gbltiXSAmJiAhaXNFbWl0TGlzdGVuZXIodSwgYikpIHJldHVybiAhMDsKICAgICAgfQogICAgfQogIH0gZWxzZQogICAgcmV0dXJuIChpIHx8IGwpICYmICghbCB8fCAhbC4kc3RhYmxlKQogICAgICA/ICEwCiAgICAgIDogbiA9PT0gbwogICAgICAgID8gITEKICAgICAgICA6IG4KICAgICAgICAgID8gbwogICAgICAgICAgICA/IGhhc1Byb3BzQ2hhbmdlZChuLCBvLCB1KQogICAgICAgICAgICA6ICEwCiAgICAgICAgICA6ICEhbzsKICByZXR1cm4gITE7Cn0KZnVuY3Rpb24gaGFzUHJvcHNDaGFuZ2VkKGUsIHQsIHIpIHsKICBjb25zdCBuID0gT2JqZWN0LmtleXModCk7CiAgaWYgKG4ubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhlKS5sZW5ndGgpIHJldHVybiAhMDsKICBmb3IgKGxldCBpID0gMDsgaSA8IG4ubGVuZ3RoOyBpKyspIHsKICAgIGNvbnN0IGEgPSBuW2ldOwogICAgaWYgKHRbYV0gIT09IGVbYV0gJiYgIWlzRW1pdExpc3RlbmVyKHIsIGEpKSByZXR1cm4gITA7CiAgfQogIHJldHVybiAhMTsKfQpmdW5jdGlvbiB1cGRhdGVIT0NIb3N0RWwoeyB2bm9kZTogZSwgcGFyZW50OiB0IH0sIHIpIHsKICBmb3IgKDsgdDspIHsKICAgIGNvbnN0IG4gPSB0LnN1YlRyZWU7CiAgICBpZiAoKG4uc3VzcGVuc2UgJiYgbi5zdXNwZW5zZS5hY3RpdmVCcmFuY2ggPT09IGUgJiYgKG4uZWwgPSBlLmVsKSwgbiA9PT0gZSkpCiAgICAgICgoZSA9IHQudm5vZGUpLmVsID0gciksICh0ID0gdC5wYXJlbnQpOwogICAgZWxzZSBicmVhazsKICB9Cn0KY29uc3QgaXNTdXNwZW5zZSA9IChlKSA9PiBlLl9faXNTdXNwZW5zZTsKbGV0IHN1c3BlbnNlSWQgPSAwOwpjb25zdCBTdXNwZW5zZUltcGwgPSB7CiAgbmFtZTogIlN1c3BlbnNlIiwKICBfX2lzU3VzcGVuc2U6ICEwLAogIHByb2Nlc3MoZSwgdCwgciwgbiwgaSwgYSwgbywgbCwgYywgdSkgewogICAgaWYgKGUgPT0gbnVsbCkgbW91bnRTdXNwZW5zZSh0LCByLCBuLCBpLCBhLCBvLCBsLCBjLCB1KTsKICAgIGVsc2UgewogICAgICBpZiAoYSAmJiBhLmRlcHMgPiAwICYmICFlLnN1c3BlbnNlLmlzSW5GYWxsYmFjaykgewogICAgICAgICh0LnN1c3BlbnNlID0gZS5zdXNwZW5zZSksICh0LnN1c3BlbnNlLnZub2RlID0gdCksICh0LmVsID0gZS5lbCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHBhdGNoU3VzcGVuc2UoZSwgdCwgciwgbiwgaSwgbywgbCwgYywgdSk7CiAgICB9CiAgfSwKICBoeWRyYXRlOiBoeWRyYXRlU3VzcGVuc2UsCiAgbm9ybWFsaXplOiBub3JtYWxpemVTdXNwZW5zZUNoaWxkcmVuLAp9LAogIFN1c3BlbnNlID0gU3VzcGVuc2VJbXBsOwpmdW5jdGlvbiB0cmlnZ2VyRXZlbnQoZSwgdCkgewogIGNvbnN0IHIgPSBlLnByb3BzICYmIGUucHJvcHNbdF07CiAgaXNGdW5jdGlvbiQxKHIpICYmIHIoKTsKfQpmdW5jdGlvbiBtb3VudFN1c3BlbnNlKGUsIHQsIHIsIG4sIGksIGEsIG8sIGwsIGMpIHsKICBjb25zdCB7CiAgICBwOiB1LAogICAgbzogeyBjcmVhdGVFbGVtZW50OiBkIH0sCiAgfSA9IGMsCiAgICBFID0gZCgiZGl2IiksCiAgICBiID0gKGUuc3VzcGVuc2UgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KGUsIGksIG4sIHQsIEUsIHIsIGEsIG8sIGwsIGMpKTsKICB1KG51bGwsIChiLnBlbmRpbmdCcmFuY2ggPSBlLnNzQ29udGVudCksIEUsIG51bGwsIG4sIGIsIGEsIG8pLAogICAgYi5kZXBzID4gMAogICAgICA/ICh0cmlnZ2VyRXZlbnQoZSwgIm9uUGVuZGluZyIpLAogICAgICAgIHRyaWdnZXJFdmVudChlLCAib25GYWxsYmFjayIpLAogICAgICAgIHUobnVsbCwgZS5zc0ZhbGxiYWNrLCB0LCByLCBuLCBudWxsLCBhLCBvKSwKICAgICAgICBzZXRBY3RpdmVCcmFuY2goYiwgZS5zc0ZhbGxiYWNrKSkKICAgICAgOiBiLnJlc29sdmUoITEsICEwKTsKfQpmdW5jdGlvbiBwYXRjaFN1c3BlbnNlKAogIGUsCiAgdCwKICByLAogIG4sCiAgaSwKICBhLAogIG8sCiAgbCwKICB7IHA6IGMsIHVtOiB1LCBvOiB7IGNyZWF0ZUVsZW1lbnQ6IGQgfSB9CikgewogIGNvbnN0IEUgPSAodC5zdXNwZW5zZSA9IGUuc3VzcGVuc2UpOwogIChFLnZub2RlID0gdCksICh0LmVsID0gZS5lbCk7CiAgY29uc3QgYiA9IHQuc3NDb250ZW50LAogICAgUCA9IHQuc3NGYWxsYmFjaywKICAgIHsgYWN0aXZlQnJhbmNoOiBSLCBwZW5kaW5nQnJhbmNoOiBULCBpc0luRmFsbGJhY2s6IE0sIGlzSHlkcmF0aW5nOiB4IH0gPSBFOwogIGlmIChUKQogICAgKEUucGVuZGluZ0JyYW5jaCA9IGIpLAogICAgICBpc1NhbWVWTm9kZVR5cGUoYiwgVCkKICAgICAgICA/IChjKFQsIGIsIEUuaGlkZGVuQ29udGFpbmVyLCBudWxsLCBpLCBFLCBhLCBvLCBsKSwKICAgICAgICAgIEUuZGVwcyA8PSAwCiAgICAgICAgICAgID8gRS5yZXNvbHZlKCkKICAgICAgICAgICAgOiBNICYmCiAgICAgICAgICAgICh4IHx8IChjKFIsIFAsIHIsIG4sIGksIG51bGwsIGEsIG8sIGwpLCBzZXRBY3RpdmVCcmFuY2goRSwgUCkpKSkKICAgICAgICA6ICgoRS5wZW5kaW5nSWQgPSBzdXNwZW5zZUlkKyspLAogICAgICAgICAgeCA/ICgoRS5pc0h5ZHJhdGluZyA9ICExKSwgKEUuYWN0aXZlQnJhbmNoID0gVCkpIDogdShULCBpLCBFKSwKICAgICAgICAgIChFLmRlcHMgPSAwKSwKICAgICAgICAgIChFLmVmZmVjdHMubGVuZ3RoID0gMCksCiAgICAgICAgICAoRS5oaWRkZW5Db250YWluZXIgPSBkKCJkaXYiKSksCiAgICAgICAgICBNCiAgICAgICAgICAgID8gKGMobnVsbCwgYiwgRS5oaWRkZW5Db250YWluZXIsIG51bGwsIGksIEUsIGEsIG8sIGwpLAogICAgICAgICAgICAgIEUuZGVwcyA8PSAwCiAgICAgICAgICAgICAgICA/IEUucmVzb2x2ZSgpCiAgICAgICAgICAgICAgICA6IChjKFIsIFAsIHIsIG4sIGksIG51bGwsIGEsIG8sIGwpLCBzZXRBY3RpdmVCcmFuY2goRSwgUCkpKQogICAgICAgICAgICA6IFIgJiYgaXNTYW1lVk5vZGVUeXBlKGIsIFIpCiAgICAgICAgICAgICAgPyAoYyhSLCBiLCByLCBuLCBpLCBFLCBhLCBvLCBsKSwgRS5yZXNvbHZlKCEwKSkKICAgICAgICAgICAgICA6IChjKG51bGwsIGIsIEUuaGlkZGVuQ29udGFpbmVyLCBudWxsLCBpLCBFLCBhLCBvLCBsKSwKICAgICAgICAgICAgICAgIEUuZGVwcyA8PSAwICYmIEUucmVzb2x2ZSgpKSk7CiAgZWxzZSBpZiAoUiAmJiBpc1NhbWVWTm9kZVR5cGUoYiwgUikpCiAgICBjKFIsIGIsIHIsIG4sIGksIEUsIGEsIG8sIGwpLCBzZXRBY3RpdmVCcmFuY2goRSwgYik7CiAgZWxzZSBpZiAoCiAgICAodHJpZ2dlckV2ZW50KHQsICJvblBlbmRpbmciKSwKICAgICAgKEUucGVuZGluZ0JyYW5jaCA9IGIpLAogICAgICBiLnNoYXBlRmxhZyAmIDUxMgogICAgICAgID8gKEUucGVuZGluZ0lkID0gYi5jb21wb25lbnQuc3VzcGVuc2VJZCkKICAgICAgICA6IChFLnBlbmRpbmdJZCA9IHN1c3BlbnNlSWQrKyksCiAgICAgIGMobnVsbCwgYiwgRS5oaWRkZW5Db250YWluZXIsIG51bGwsIGksIEUsIGEsIG8sIGwpLAogICAgICBFLmRlcHMgPD0gMCkKICApCiAgICBFLnJlc29sdmUoKTsKICBlbHNlIHsKICAgIGNvbnN0IHsgdGltZW91dDogaywgcGVuZGluZ0lkOiBTIH0gPSBFOwogICAgayA+IDAKICAgICAgPyBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICBFLnBlbmRpbmdJZCA9PT0gUyAmJiBFLmZhbGxiYWNrKFApOwogICAgICB9LCBrKQogICAgICA6IGsgPT09IDAgJiYgRS5mYWxsYmFjayhQKTsKICB9Cn0KZnVuY3Rpb24gY3JlYXRlU3VzcGVuc2VCb3VuZGFyeShlLCB0LCByLCBuLCBpLCBhLCBvLCBsLCBjLCB1LCBkID0gITEpIHsKICBjb25zdCB7CiAgICBwOiBFLAogICAgbTogYiwKICAgIHVtOiBQLAogICAgbjogUiwKICAgIG86IHsgcGFyZW50Tm9kZTogVCwgcmVtb3ZlOiBNIH0sCiAgfSA9IHU7CiAgbGV0IHg7CiAgY29uc3QgayA9IGlzVk5vZGVTdXNwZW5zaWJsZShlKTsKICBrICYmIHQgJiYgdC5wZW5kaW5nQnJhbmNoICYmICgoeCA9IHQucGVuZGluZ0lkKSwgdC5kZXBzKyspOwogIGNvbnN0IFMgPSBlLnByb3BzID8gdG9OdW1iZXIoZS5wcm9wcy50aW1lb3V0KSA6IHZvaWQgMCwKICAgIEEgPSBhLAogICAgTyA9IHsKICAgICAgdm5vZGU6IGUsCiAgICAgIHBhcmVudDogdCwKICAgICAgcGFyZW50Q29tcG9uZW50OiByLAogICAgICBuYW1lc3BhY2U6IG8sCiAgICAgIGNvbnRhaW5lcjogbiwKICAgICAgaGlkZGVuQ29udGFpbmVyOiBpLAogICAgICBkZXBzOiAwLAogICAgICBwZW5kaW5nSWQ6IHN1c3BlbnNlSWQrKywKICAgICAgdGltZW91dDogdHlwZW9mIFMgPT0gIm51bWJlciIgPyBTIDogLTEsCiAgICAgIGFjdGl2ZUJyYW5jaDogbnVsbCwKICAgICAgcGVuZGluZ0JyYW5jaDogbnVsbCwKICAgICAgaXNJbkZhbGxiYWNrOiAhZCwKICAgICAgaXNIeWRyYXRpbmc6IGQsCiAgICAgIGlzVW5tb3VudGVkOiAhMSwKICAgICAgZWZmZWN0czogW10sCiAgICAgIHJlc29sdmUoRiA9ICExLCBEID0gITEpIHsKICAgICAgICBjb25zdCB7CiAgICAgICAgICB2bm9kZTogSCwKICAgICAgICAgIGFjdGl2ZUJyYW5jaDogJCwKICAgICAgICAgIHBlbmRpbmdCcmFuY2g6IHEsCiAgICAgICAgICBwZW5kaW5nSWQ6IEosCiAgICAgICAgICBlZmZlY3RzOiBLLAogICAgICAgICAgcGFyZW50Q29tcG9uZW50OiBlZSwKICAgICAgICAgIGNvbnRhaW5lcjogbGUsCiAgICAgICAgfSA9IE87CiAgICAgICAgbGV0IHJlID0gITE7CiAgICAgICAgTy5pc0h5ZHJhdGluZwogICAgICAgICAgPyAoTy5pc0h5ZHJhdGluZyA9ICExKQogICAgICAgICAgOiBGIHx8CiAgICAgICAgICAoKHJlID0gJCAmJiBxLnRyYW5zaXRpb24gJiYgcS50cmFuc2l0aW9uLm1vZGUgPT09ICJvdXQtaW4iKSwKICAgICAgICAgICAgcmUgJiYKICAgICAgICAgICAgKCQudHJhbnNpdGlvbi5hZnRlckxlYXZlID0gKCkgPT4gewogICAgICAgICAgICAgIEogPT09IE8ucGVuZGluZ0lkICYmCiAgICAgICAgICAgICAgICAoYihxLCBsZSwgYSA9PT0gQSA/IFIoJCkgOiBhLCAwKSwgcXVldWVQb3N0Rmx1c2hDYihLKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAkICYmIChUKCQuZWwpID09PSBsZSAmJiAoYSA9IFIoJCkpLCBQKCQsIGVlLCBPLCAhMCkpLAogICAgICAgICAgICByZSB8fCBiKHEsIGxlLCBhLCAwKSksCiAgICAgICAgICBzZXRBY3RpdmVCcmFuY2goTywgcSksCiAgICAgICAgICAoTy5wZW5kaW5nQnJhbmNoID0gbnVsbCksCiAgICAgICAgICAoTy5pc0luRmFsbGJhY2sgPSAhMSk7CiAgICAgICAgbGV0IEIgPSBPLnBhcmVudCwKICAgICAgICAgIHogPSAhMTsKICAgICAgICBmb3IgKDsgQjspIHsKICAgICAgICAgIGlmIChCLnBlbmRpbmdCcmFuY2gpIHsKICAgICAgICAgICAgQi5lZmZlY3RzLnB1c2goLi4uSyksICh6ID0gITApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIEIgPSBCLnBhcmVudDsKICAgICAgICB9CiAgICAgICAgIXogJiYgIXJlICYmIHF1ZXVlUG9zdEZsdXNoQ2IoSyksCiAgICAgICAgICAoTy5lZmZlY3RzID0gW10pLAogICAgICAgICAgayAmJgogICAgICAgICAgdCAmJgogICAgICAgICAgdC5wZW5kaW5nQnJhbmNoICYmCiAgICAgICAgICB4ID09PSB0LnBlbmRpbmdJZCAmJgogICAgICAgICAgKHQuZGVwcy0tLCB0LmRlcHMgPT09IDAgJiYgIUQgJiYgdC5yZXNvbHZlKCkpLAogICAgICAgICAgdHJpZ2dlckV2ZW50KEgsICJvblJlc29sdmUiKTsKICAgICAgfSwKICAgICAgZmFsbGJhY2soRikgewogICAgICAgIGlmICghTy5wZW5kaW5nQnJhbmNoKSByZXR1cm47CiAgICAgICAgY29uc3QgewogICAgICAgICAgdm5vZGU6IEQsCiAgICAgICAgICBhY3RpdmVCcmFuY2g6IEgsCiAgICAgICAgICBwYXJlbnRDb21wb25lbnQ6ICQsCiAgICAgICAgICBjb250YWluZXI6IHEsCiAgICAgICAgICBuYW1lc3BhY2U6IEosCiAgICAgICAgfSA9IE87CiAgICAgICAgdHJpZ2dlckV2ZW50KEQsICJvbkZhbGxiYWNrIik7CiAgICAgICAgY29uc3QgSyA9IFIoSCksCiAgICAgICAgICBlZSA9ICgpID0+IHsKICAgICAgICAgICAgTy5pc0luRmFsbGJhY2sgJiYKICAgICAgICAgICAgICAoRShudWxsLCBGLCBxLCBLLCAkLCBudWxsLCBKLCBsLCBjKSwgc2V0QWN0aXZlQnJhbmNoKE8sIEYpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBsZSA9IEYudHJhbnNpdGlvbiAmJiBGLnRyYW5zaXRpb24ubW9kZSA9PT0gIm91dC1pbiI7CiAgICAgICAgbGUgJiYgKEgudHJhbnNpdGlvbi5hZnRlckxlYXZlID0gZWUpLAogICAgICAgICAgKE8uaXNJbkZhbGxiYWNrID0gITApLAogICAgICAgICAgUChILCAkLCBudWxsLCAhMCksCiAgICAgICAgICBsZSB8fCBlZSgpOwogICAgICB9LAogICAgICBtb3ZlKEYsIEQsIEgpIHsKICAgICAgICBPLmFjdGl2ZUJyYW5jaCAmJiBiKE8uYWN0aXZlQnJhbmNoLCBGLCBELCBIKSwgKE8uY29udGFpbmVyID0gRik7CiAgICAgIH0sCiAgICAgIG5leHQoKSB7CiAgICAgICAgcmV0dXJuIE8uYWN0aXZlQnJhbmNoICYmIFIoTy5hY3RpdmVCcmFuY2gpOwogICAgICB9LAogICAgICByZWdpc3RlckRlcChGLCBELCBIKSB7CiAgICAgICAgY29uc3QgJCA9ICEhTy5wZW5kaW5nQnJhbmNoOwogICAgICAgICQgJiYgTy5kZXBzKys7CiAgICAgICAgY29uc3QgcSA9IEYudm5vZGUuZWw7CiAgICAgICAgRi5hc3luY0RlcAogICAgICAgICAgLmNhdGNoKChKKSA9PiB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKEosIEYsIDApOwogICAgICAgICAgfSkKICAgICAgICAgIC50aGVuKChKKSA9PiB7CiAgICAgICAgICAgIGlmIChGLmlzVW5tb3VudGVkIHx8IE8uaXNVbm1vdW50ZWQgfHwgTy5wZW5kaW5nSWQgIT09IEYuc3VzcGVuc2VJZCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIEYuYXN5bmNSZXNvbHZlZCA9ICEwOwogICAgICAgICAgICBjb25zdCB7IHZub2RlOiBLIH0gPSBGOwogICAgICAgICAgICBoYW5kbGVTZXR1cFJlc3VsdChGLCBKLCAhMSksIHEgJiYgKEsuZWwgPSBxKTsKICAgICAgICAgICAgY29uc3QgZWUgPSAhcSAmJiBGLnN1YlRyZWUuZWw7CiAgICAgICAgICAgIEQoRiwgSywgVChxIHx8IEYuc3ViVHJlZS5lbCksIHEgPyBudWxsIDogUihGLnN1YlRyZWUpLCBPLCBvLCBIKSwKICAgICAgICAgICAgICBlZSAmJiBNKGVlKSwKICAgICAgICAgICAgICB1cGRhdGVIT0NIb3N0RWwoRiwgSy5lbCksCiAgICAgICAgICAgICAgJCAmJiAtLU8uZGVwcyA9PT0gMCAmJiBPLnJlc29sdmUoKTsKICAgICAgICAgIH0pOwogICAgICB9LAogICAgICB1bm1vdW50KEYsIEQpIHsKICAgICAgICAoTy5pc1VubW91bnRlZCA9ICEwKSwKICAgICAgICAgIE8uYWN0aXZlQnJhbmNoICYmIFAoTy5hY3RpdmVCcmFuY2gsIHIsIEYsIEQpLAogICAgICAgICAgTy5wZW5kaW5nQnJhbmNoICYmIFAoTy5wZW5kaW5nQnJhbmNoLCByLCBGLCBEKTsKICAgICAgfSwKICAgIH07CiAgcmV0dXJuIE87Cn0KZnVuY3Rpb24gaHlkcmF0ZVN1c3BlbnNlKGUsIHQsIHIsIG4sIGksIGEsIG8sIGwsIGMpIHsKICBjb25zdCB1ID0gKHQuc3VzcGVuc2UgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KAogICAgdCwKICAgIG4sCiAgICByLAogICAgZS5wYXJlbnROb2RlLAogICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksCiAgICBudWxsLAogICAgaSwKICAgIGEsCiAgICBvLAogICAgbCwKICAgICEwCiAgKSksCiAgICBkID0gYyhlLCAodS5wZW5kaW5nQnJhbmNoID0gdC5zc0NvbnRlbnQpLCByLCB1LCBhLCBvKTsKICByZXR1cm4gdS5kZXBzID09PSAwICYmIHUucmVzb2x2ZSghMSwgITApLCBkOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZVN1c3BlbnNlQ2hpbGRyZW4oZSkgewogIGNvbnN0IHsgc2hhcGVGbGFnOiB0LCBjaGlsZHJlbjogciB9ID0gZSwKICAgIG4gPSB0ICYgMzI7CiAgKGUuc3NDb250ZW50ID0gbm9ybWFsaXplU3VzcGVuc2VTbG90KG4gPyByLmRlZmF1bHQgOiByKSksCiAgICAoZS5zc0ZhbGxiYWNrID0gbgogICAgICA/IG5vcm1hbGl6ZVN1c3BlbnNlU2xvdChyLmZhbGxiYWNrKQogICAgICA6IGNyZWF0ZVZOb2RlKENvbW1lbnQpKTsKfQpmdW5jdGlvbiBub3JtYWxpemVTdXNwZW5zZVNsb3QoZSkgewogIGxldCB0OwogIGlmIChpc0Z1bmN0aW9uJDEoZSkpIHsKICAgIGNvbnN0IHIgPSBpc0Jsb2NrVHJlZUVuYWJsZWQgJiYgZS5fYzsKICAgIHIgJiYgKChlLl9kID0gITEpLCBvcGVuQmxvY2soKSksCiAgICAgIChlID0gZSgpKSwKICAgICAgciAmJiAoKGUuX2QgPSAhMCksICh0ID0gY3VycmVudEJsb2NrKSwgY2xvc2VCbG9jaygpKTsKICB9CiAgcmV0dXJuICgKICAgIGlzQXJyYXkkMihlKSAmJiAoZSA9IGZpbHRlclNpbmdsZVJvb3QoZSkpLAogICAgKGUgPSBub3JtYWxpemVWTm9kZShlKSksCiAgICB0ICYmICFlLmR5bmFtaWNDaGlsZHJlbiAmJiAoZS5keW5hbWljQ2hpbGRyZW4gPSB0LmZpbHRlcigocikgPT4gciAhPT0gZSkpLAogICAgZQogICk7Cn0KZnVuY3Rpb24gcXVldWVFZmZlY3RXaXRoU3VzcGVuc2UoZSwgdCkgewogIHQgJiYgdC5wZW5kaW5nQnJhbmNoCiAgICA/IGlzQXJyYXkkMihlKQogICAgICA/IHQuZWZmZWN0cy5wdXNoKC4uLmUpCiAgICAgIDogdC5lZmZlY3RzLnB1c2goZSkKICAgIDogcXVldWVQb3N0Rmx1c2hDYihlKTsKfQpmdW5jdGlvbiBzZXRBY3RpdmVCcmFuY2goZSwgdCkgewogIGUuYWN0aXZlQnJhbmNoID0gdDsKICBjb25zdCB7IHZub2RlOiByLCBwYXJlbnRDb21wb25lbnQ6IG4gfSA9IGU7CiAgbGV0IGkgPSB0LmVsOwogIGZvciAoOyAhaSAmJiB0LmNvbXBvbmVudDspICh0ID0gdC5jb21wb25lbnQuc3ViVHJlZSksIChpID0gdC5lbCk7CiAgKHIuZWwgPSBpKSwgbiAmJiBuLnN1YlRyZWUgPT09IHIgJiYgKChuLnZub2RlLmVsID0gaSksIHVwZGF0ZUhPQ0hvc3RFbChuLCBpKSk7Cn0KZnVuY3Rpb24gaXNWTm9kZVN1c3BlbnNpYmxlKGUpIHsKICBjb25zdCB0ID0gZS5wcm9wcyAmJiBlLnByb3BzLnN1c3BlbnNpYmxlOwogIHJldHVybiB0ICE9IG51bGwgJiYgdCAhPT0gITE7Cn0KY29uc3QgRnJhZ21lbnQgPSBTeW1ib2wuZm9yKCJ2LWZndCIpLAogIFRleHQgPSBTeW1ib2wuZm9yKCJ2LXR4dCIpLAogIENvbW1lbnQgPSBTeW1ib2wuZm9yKCJ2LWNtdCIpLAogIFN0YXRpYyA9IFN5bWJvbC5mb3IoInYtc3RjIiksCiAgYmxvY2tTdGFjayA9IFtdOwpsZXQgY3VycmVudEJsb2NrID0gbnVsbDsKZnVuY3Rpb24gb3BlbkJsb2NrKGUgPSAhMSkgewogIGJsb2NrU3RhY2sucHVzaCgoY3VycmVudEJsb2NrID0gZSA/IG51bGwgOiBbXSkpOwp9CmZ1bmN0aW9uIGNsb3NlQmxvY2soKSB7CiAgYmxvY2tTdGFjay5wb3AoKSwgKGN1cnJlbnRCbG9jayA9IGJsb2NrU3RhY2tbYmxvY2tTdGFjay5sZW5ndGggLSAxXSB8fCBudWxsKTsKfQpsZXQgaXNCbG9ja1RyZWVFbmFibGVkID0gMTsKZnVuY3Rpb24gc2V0QmxvY2tUcmFja2luZyhlLCB0ID0gITEpIHsKICAoaXNCbG9ja1RyZWVFbmFibGVkICs9IGUpLAogICAgZSA8IDAgJiYgY3VycmVudEJsb2NrICYmIHQgJiYgKGN1cnJlbnRCbG9jay5oYXNPbmNlID0gITApOwp9CmZ1bmN0aW9uIHNldHVwQmxvY2soZSkgewogIHJldHVybiAoCiAgICAoZS5keW5hbWljQ2hpbGRyZW4gPQogICAgICBpc0Jsb2NrVHJlZUVuYWJsZWQgPiAwID8gY3VycmVudEJsb2NrIHx8IEVNUFRZX0FSUiA6IG51bGwpLAogICAgY2xvc2VCbG9jaygpLAogICAgaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJiBjdXJyZW50QmxvY2sgJiYgY3VycmVudEJsb2NrLnB1c2goZSksCiAgICBlCiAgKTsKfQpmdW5jdGlvbiBjcmVhdGVFbGVtZW50QmxvY2soZSwgdCwgciwgbiwgaSwgYSkgewogIHJldHVybiBzZXR1cEJsb2NrKGNyZWF0ZUJhc2VWTm9kZShlLCB0LCByLCBuLCBpLCBhLCAhMCkpOwp9CmZ1bmN0aW9uIGNyZWF0ZUJsb2NrKGUsIHQsIHIsIG4sIGkpIHsKICByZXR1cm4gc2V0dXBCbG9jayhjcmVhdGVWTm9kZShlLCB0LCByLCBuLCBpLCAhMCkpOwp9CmZ1bmN0aW9uIGlzVk5vZGUkMShlKSB7CiAgcmV0dXJuIGUgPyBlLl9fdl9pc1ZOb2RlID09PSAhMCA6ICExOwp9CmZ1bmN0aW9uIGlzU2FtZVZOb2RlVHlwZShlLCB0KSB7CiAgcmV0dXJuIGUudHlwZSA9PT0gdC50eXBlICYmIGUua2V5ID09PSB0LmtleTsKfQpmdW5jdGlvbiB0cmFuc2Zvcm1WTm9kZUFyZ3MoZSkgeyB9CmNvbnN0IG5vcm1hbGl6ZUtleSA9ICh7IGtleTogZSB9KSA9PiBlID8/IG51bGwsCiAgbm9ybWFsaXplUmVmID0gKHsgcmVmOiBlLCByZWZfa2V5OiB0LCByZWZfZm9yOiByIH0pID0+ICgKICAgIHR5cGVvZiBlID09ICJudW1iZXIiICYmIChlID0gIiIgKyBlKSwKICAgIGUgIT0gbnVsbAogICAgICA/IGlzU3RyaW5nJDEoZSkgfHwgaXNSZWYoZSkgfHwgaXNGdW5jdGlvbiQxKGUpCiAgICAgICAgPyB7IGk6IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSwgcjogZSwgazogdCwgZjogISFyIH0KICAgICAgICA6IGUKICAgICAgOiBudWxsCiAgKTsKZnVuY3Rpb24gY3JlYXRlQmFzZVZOb2RlKAogIGUsCiAgdCA9IG51bGwsCiAgciA9IG51bGwsCiAgbiA9IDAsCiAgaSA9IG51bGwsCiAgYSA9IGUgPT09IEZyYWdtZW50ID8gMCA6IDEsCiAgbyA9ICExLAogIGwgPSAhMQopIHsKICBjb25zdCBjID0gewogICAgX192X2lzVk5vZGU6ICEwLAogICAgX192X3NraXA6ICEwLAogICAgdHlwZTogZSwKICAgIHByb3BzOiB0LAogICAga2V5OiB0ICYmIG5vcm1hbGl6ZUtleSh0KSwKICAgIHJlZjogdCAmJiBub3JtYWxpemVSZWYodCksCiAgICBzY29wZUlkOiBjdXJyZW50U2NvcGVJZCwKICAgIHNsb3RTY29wZUlkczogbnVsbCwKICAgIGNoaWxkcmVuOiByLAogICAgY29tcG9uZW50OiBudWxsLAogICAgc3VzcGVuc2U6IG51bGwsCiAgICBzc0NvbnRlbnQ6IG51bGwsCiAgICBzc0ZhbGxiYWNrOiBudWxsLAogICAgZGlyczogbnVsbCwKICAgIHRyYW5zaXRpb246IG51bGwsCiAgICBlbDogbnVsbCwKICAgIGFuY2hvcjogbnVsbCwKICAgIHRhcmdldDogbnVsbCwKICAgIHRhcmdldFN0YXJ0OiBudWxsLAogICAgdGFyZ2V0QW5jaG9yOiBudWxsLAogICAgc3RhdGljQ291bnQ6IDAsCiAgICBzaGFwZUZsYWc6IGEsCiAgICBwYXRjaEZsYWc6IG4sCiAgICBkeW5hbWljUHJvcHM6IGksCiAgICBkeW5hbWljQ2hpbGRyZW46IG51bGwsCiAgICBhcHBDb250ZXh0OiBudWxsLAogICAgY3R4OiBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UsCiAgfTsKICByZXR1cm4gKAogICAgbAogICAgICA/IChub3JtYWxpemVDaGlsZHJlbihjLCByKSwgYSAmIDEyOCAmJiBlLm5vcm1hbGl6ZShjKSkKICAgICAgOiByICYmIChjLnNoYXBlRmxhZyB8PSBpc1N0cmluZyQxKHIpID8gOCA6IDE2KSwKICAgIGlzQmxvY2tUcmVlRW5hYmxlZCA+IDAgJiYKICAgICFvICYmCiAgICBjdXJyZW50QmxvY2sgJiYKICAgIChjLnBhdGNoRmxhZyA+IDAgfHwgYSAmIDYpICYmCiAgICBjLnBhdGNoRmxhZyAhPT0gMzIgJiYKICAgIGN1cnJlbnRCbG9jay5wdXNoKGMpLAogICAgYwogICk7Cn0KY29uc3QgY3JlYXRlVk5vZGUgPSBfY3JlYXRlVk5vZGU7CmZ1bmN0aW9uIF9jcmVhdGVWTm9kZShlLCB0ID0gbnVsbCwgciA9IG51bGwsIG4gPSAwLCBpID0gbnVsbCwgYSA9ICExKSB7CiAgaWYgKCgoIWUgfHwgZSA9PT0gTlVMTF9EWU5BTUlDX0NPTVBPTkVOVCkgJiYgKGUgPSBDb21tZW50KSwgaXNWTm9kZSQxKGUpKSkgewogICAgY29uc3QgbCA9IGNsb25lVk5vZGUoZSwgdCwgITApOwogICAgcmV0dXJuICgKICAgICAgciAmJiBub3JtYWxpemVDaGlsZHJlbihsLCByKSwKICAgICAgaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJgogICAgICAhYSAmJgogICAgICBjdXJyZW50QmxvY2sgJiYKICAgICAgKGwuc2hhcGVGbGFnICYgNgogICAgICAgID8gKGN1cnJlbnRCbG9ja1tjdXJyZW50QmxvY2suaW5kZXhPZihlKV0gPSBsKQogICAgICAgIDogY3VycmVudEJsb2NrLnB1c2gobCkpLAogICAgICAobC5wYXRjaEZsYWcgPSAtMiksCiAgICAgIGwKICAgICk7CiAgfQogIGlmICgoaXNDbGFzc0NvbXBvbmVudChlKSAmJiAoZSA9IGUuX192Y2NPcHRzKSwgdCkpIHsKICAgIHQgPSBndWFyZFJlYWN0aXZlUHJvcHModCk7CiAgICBsZXQgeyBjbGFzczogbCwgc3R5bGU6IGMgfSA9IHQ7CiAgICBsICYmICFpc1N0cmluZyQxKGwpICYmICh0LmNsYXNzID0gbm9ybWFsaXplQ2xhc3MobCkpLAogICAgICBpc09iamVjdCQyKGMpICYmCiAgICAgIChpc1Byb3h5KGMpICYmICFpc0FycmF5JDIoYykgJiYgKGMgPSBleHRlbmQoe30sIGMpKSwKICAgICAgICAodC5zdHlsZSA9IG5vcm1hbGl6ZVN0eWxlKGMpKSk7CiAgfQogIGNvbnN0IG8gPSBpc1N0cmluZyQxKGUpCiAgICA/IDEKICAgIDogaXNTdXNwZW5zZShlKQogICAgICA/IDEyOAogICAgICA6IGlzVGVsZXBvcnQoZSkKICAgICAgICA/IDY0CiAgICAgICAgOiBpc09iamVjdCQyKGUpCiAgICAgICAgICA/IDQKICAgICAgICAgIDogaXNGdW5jdGlvbiQxKGUpCiAgICAgICAgICAgID8gMgogICAgICAgICAgICA6IDA7CiAgcmV0dXJuIGNyZWF0ZUJhc2VWTm9kZShlLCB0LCByLCBuLCBpLCBvLCBhLCAhMCk7Cn0KZnVuY3Rpb24gZ3VhcmRSZWFjdGl2ZVByb3BzKGUpIHsKICByZXR1cm4gZSA/IChpc1Byb3h5KGUpIHx8IGlzSW50ZXJuYWxPYmplY3QoZSkgPyBleHRlbmQoe30sIGUpIDogZSkgOiBudWxsOwp9CmZ1bmN0aW9uIGNsb25lVk5vZGUoZSwgdCwgciA9ICExLCBuID0gITEpIHsKICBjb25zdCB7IHByb3BzOiBpLCByZWY6IGEsIHBhdGNoRmxhZzogbywgY2hpbGRyZW46IGwsIHRyYW5zaXRpb246IGMgfSA9IGUsCiAgICB1ID0gdCA/IG1lcmdlUHJvcHMoaSB8fCB7fSwgdCkgOiBpLAogICAgZCA9IHsKICAgICAgX192X2lzVk5vZGU6ICEwLAogICAgICBfX3Zfc2tpcDogITAsCiAgICAgIHR5cGU6IGUudHlwZSwKICAgICAgcHJvcHM6IHUsCiAgICAgIGtleTogdSAmJiBub3JtYWxpemVLZXkodSksCiAgICAgIHJlZjoKICAgICAgICB0ICYmIHQucmVmCiAgICAgICAgICA/IHIgJiYgYQogICAgICAgICAgICA/IGlzQXJyYXkkMihhKQogICAgICAgICAgICAgID8gYS5jb25jYXQobm9ybWFsaXplUmVmKHQpKQogICAgICAgICAgICAgIDogW2EsIG5vcm1hbGl6ZVJlZih0KV0KICAgICAgICAgICAgOiBub3JtYWxpemVSZWYodCkKICAgICAgICAgIDogYSwKICAgICAgc2NvcGVJZDogZS5zY29wZUlkLAogICAgICBzbG90U2NvcGVJZHM6IGUuc2xvdFNjb3BlSWRzLAogICAgICBjaGlsZHJlbjogbCwKICAgICAgdGFyZ2V0OiBlLnRhcmdldCwKICAgICAgdGFyZ2V0U3RhcnQ6IGUudGFyZ2V0U3RhcnQsCiAgICAgIHRhcmdldEFuY2hvcjogZS50YXJnZXRBbmNob3IsCiAgICAgIHN0YXRpY0NvdW50OiBlLnN0YXRpY0NvdW50LAogICAgICBzaGFwZUZsYWc6IGUuc2hhcGVGbGFnLAogICAgICBwYXRjaEZsYWc6IHQgJiYgZS50eXBlICE9PSBGcmFnbWVudCA/IChvID09PSAtMSA/IDE2IDogbyB8IDE2KSA6IG8sCiAgICAgIGR5bmFtaWNQcm9wczogZS5keW5hbWljUHJvcHMsCiAgICAgIGR5bmFtaWNDaGlsZHJlbjogZS5keW5hbWljQ2hpbGRyZW4sCiAgICAgIGFwcENvbnRleHQ6IGUuYXBwQ29udGV4dCwKICAgICAgZGlyczogZS5kaXJzLAogICAgICB0cmFuc2l0aW9uOiBjLAogICAgICBjb21wb25lbnQ6IGUuY29tcG9uZW50LAogICAgICBzdXNwZW5zZTogZS5zdXNwZW5zZSwKICAgICAgc3NDb250ZW50OiBlLnNzQ29udGVudCAmJiBjbG9uZVZOb2RlKGUuc3NDb250ZW50KSwKICAgICAgc3NGYWxsYmFjazogZS5zc0ZhbGxiYWNrICYmIGNsb25lVk5vZGUoZS5zc0ZhbGxiYWNrKSwKICAgICAgZWw6IGUuZWwsCiAgICAgIGFuY2hvcjogZS5hbmNob3IsCiAgICAgIGN0eDogZS5jdHgsCiAgICAgIGNlOiBlLmNlLAogICAgfTsKICByZXR1cm4gYyAmJiBuICYmIHNldFRyYW5zaXRpb25Ib29rcyhkLCBjLmNsb25lKGQpKSwgZDsKfQpmdW5jdGlvbiBjcmVhdGVUZXh0Vk5vZGUoZSA9ICIgIiwgdCA9IDApIHsKICByZXR1cm4gY3JlYXRlVk5vZGUoVGV4dCwgbnVsbCwgZSwgdCk7Cn0KZnVuY3Rpb24gY3JlYXRlU3RhdGljVk5vZGUoZSwgdCkgewogIGNvbnN0IHIgPSBjcmVhdGVWTm9kZShTdGF0aWMsIG51bGwsIGUpOwogIHJldHVybiAoci5zdGF0aWNDb3VudCA9IHQpLCByOwp9CmZ1bmN0aW9uIGNyZWF0ZUNvbW1lbnRWTm9kZShlID0gIiIsIHQgPSAhMSkgewogIHJldHVybiB0CiAgICA/IChvcGVuQmxvY2soKSwgY3JlYXRlQmxvY2soQ29tbWVudCwgbnVsbCwgZSkpCiAgICA6IGNyZWF0ZVZOb2RlKENvbW1lbnQsIG51bGwsIGUpOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZVZOb2RlKGUpIHsKICByZXR1cm4gZSA9PSBudWxsIHx8IHR5cGVvZiBlID09ICJib29sZWFuIgogICAgPyBjcmVhdGVWTm9kZShDb21tZW50KQogICAgOiBpc0FycmF5JDIoZSkKICAgICAgPyBjcmVhdGVWTm9kZShGcmFnbWVudCwgbnVsbCwgZS5zbGljZSgpKQogICAgICA6IGlzVk5vZGUkMShlKQogICAgICAgID8gY2xvbmVJZk1vdW50ZWQoZSkKICAgICAgICA6IGNyZWF0ZVZOb2RlKFRleHQsIG51bGwsIFN0cmluZyhlKSk7Cn0KZnVuY3Rpb24gY2xvbmVJZk1vdW50ZWQoZSkgewogIHJldHVybiAoZS5lbCA9PT0gbnVsbCAmJiBlLnBhdGNoRmxhZyAhPT0gLTEpIHx8IGUubWVtbyA/IGUgOiBjbG9uZVZOb2RlKGUpOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZUNoaWxkcmVuKGUsIHQpIHsKICBsZXQgciA9IDA7CiAgY29uc3QgeyBzaGFwZUZsYWc6IG4gfSA9IGU7CiAgaWYgKHQgPT0gbnVsbCkgdCA9IG51bGw7CiAgZWxzZSBpZiAoaXNBcnJheSQyKHQpKSByID0gMTY7CiAgZWxzZSBpZiAodHlwZW9mIHQgPT0gIm9iamVjdCIpCiAgICBpZiAobiAmIDY1KSB7CiAgICAgIGNvbnN0IGkgPSB0LmRlZmF1bHQ7CiAgICAgIGkgJiYKICAgICAgICAoaS5fYyAmJiAoaS5fZCA9ICExKSwgbm9ybWFsaXplQ2hpbGRyZW4oZSwgaSgpKSwgaS5fYyAmJiAoaS5fZCA9ICEwKSk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSB7CiAgICAgIHIgPSAzMjsKICAgICAgY29uc3QgaSA9IHQuXzsKICAgICAgIWkgJiYgIWlzSW50ZXJuYWxPYmplY3QodCkKICAgICAgICA/ICh0Ll9jdHggPSBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UpCiAgICAgICAgOiBpID09PSAzICYmCiAgICAgICAgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlICYmCiAgICAgICAgKGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5zbG90cy5fID09PSAxCiAgICAgICAgICA/ICh0Ll8gPSAxKQogICAgICAgICAgOiAoKHQuXyA9IDIpLCAoZS5wYXRjaEZsYWcgfD0gMTAyNCkpKTsKICAgIH0KICBlbHNlCiAgICBpc0Z1bmN0aW9uJDEodCkKICAgICAgPyAoKHQgPSB7IGRlZmF1bHQ6IHQsIF9jdHg6IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSB9KSwgKHIgPSAzMikpCiAgICAgIDogKCh0ID0gU3RyaW5nKHQpKSwKICAgICAgICBuICYgNjQgPyAoKHIgPSAxNiksICh0ID0gW2NyZWF0ZVRleHRWTm9kZSh0KV0pKSA6IChyID0gOCkpOwogIChlLmNoaWxkcmVuID0gdCksIChlLnNoYXBlRmxhZyB8PSByKTsKfQpmdW5jdGlvbiBtZXJnZVByb3BzKC4uLmUpIHsKICBjb25zdCB0ID0ge307CiAgZm9yIChsZXQgciA9IDA7IHIgPCBlLmxlbmd0aDsgcisrKSB7CiAgICBjb25zdCBuID0gZVtyXTsKICAgIGZvciAoY29uc3QgaSBpbiBuKQogICAgICBpZiAoaSA9PT0gImNsYXNzIikKICAgICAgICB0LmNsYXNzICE9PSBuLmNsYXNzICYmICh0LmNsYXNzID0gbm9ybWFsaXplQ2xhc3MoW3QuY2xhc3MsIG4uY2xhc3NdKSk7CiAgICAgIGVsc2UgaWYgKGkgPT09ICJzdHlsZSIpIHQuc3R5bGUgPSBub3JtYWxpemVTdHlsZShbdC5zdHlsZSwgbi5zdHlsZV0pOwogICAgICBlbHNlIGlmIChpc09uJDEoaSkpIHsKICAgICAgICBjb25zdCBhID0gdFtpXSwKICAgICAgICAgIG8gPSBuW2ldOwogICAgICAgIG8gJiYKICAgICAgICAgIGEgIT09IG8gJiYKICAgICAgICAgICEoaXNBcnJheSQyKGEpICYmIGEuaW5jbHVkZXMobykpICYmCiAgICAgICAgICAodFtpXSA9IGEgPyBbXS5jb25jYXQoYSwgbykgOiBvKTsKICAgICAgfSBlbHNlIGkgIT09ICIiICYmICh0W2ldID0gbltpXSk7CiAgfQogIHJldHVybiB0Owp9CmZ1bmN0aW9uIGludm9rZVZOb2RlSG9vayhlLCB0LCByLCBuID0gbnVsbCkgewogIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGUsIHQsIDcsIFtyLCBuXSk7Cn0KY29uc3QgZW1wdHlBcHBDb250ZXh0ID0gY3JlYXRlQXBwQ29udGV4dCgpOwpsZXQgdWlkID0gMDsKZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2UoZSwgdCwgcikgewogIGNvbnN0IG4gPSBlLnR5cGUsCiAgICBpID0gKHQgPyB0LmFwcENvbnRleHQgOiBlLmFwcENvbnRleHQpIHx8IGVtcHR5QXBwQ29udGV4dCwKICAgIGEgPSB7CiAgICAgIHVpZDogdWlkKyssCiAgICAgIHZub2RlOiBlLAogICAgICB0eXBlOiBuLAogICAgICBwYXJlbnQ6IHQsCiAgICAgIGFwcENvbnRleHQ6IGksCiAgICAgIHJvb3Q6IG51bGwsCiAgICAgIG5leHQ6IG51bGwsCiAgICAgIHN1YlRyZWU6IG51bGwsCiAgICAgIGVmZmVjdDogbnVsbCwKICAgICAgdXBkYXRlOiBudWxsLAogICAgICBqb2I6IG51bGwsCiAgICAgIHNjb3BlOiBuZXcgRWZmZWN0U2NvcGUoITApLAogICAgICByZW5kZXI6IG51bGwsCiAgICAgIHByb3h5OiBudWxsLAogICAgICBleHBvc2VkOiBudWxsLAogICAgICBleHBvc2VQcm94eTogbnVsbCwKICAgICAgd2l0aFByb3h5OiBudWxsLAogICAgICBwcm92aWRlczogdCA/IHQucHJvdmlkZXMgOiBPYmplY3QuY3JlYXRlKGkucHJvdmlkZXMpLAogICAgICBpZHM6IHQgPyB0LmlkcyA6IFsiIiwgMCwgMF0sCiAgICAgIGFjY2Vzc0NhY2hlOiBudWxsLAogICAgICByZW5kZXJDYWNoZTogW10sCiAgICAgIGNvbXBvbmVudHM6IG51bGwsCiAgICAgIGRpcmVjdGl2ZXM6IG51bGwsCiAgICAgIHByb3BzT3B0aW9uczogbm9ybWFsaXplUHJvcHNPcHRpb25zKG4sIGkpLAogICAgICBlbWl0c09wdGlvbnM6IG5vcm1hbGl6ZUVtaXRzT3B0aW9ucyhuLCBpKSwKICAgICAgZW1pdDogbnVsbCwKICAgICAgZW1pdHRlZDogbnVsbCwKICAgICAgcHJvcHNEZWZhdWx0czogRU1QVFlfT0JKLAogICAgICBpbmhlcml0QXR0cnM6IG4uaW5oZXJpdEF0dHJzLAogICAgICBjdHg6IEVNUFRZX09CSiwKICAgICAgZGF0YTogRU1QVFlfT0JKLAogICAgICBwcm9wczogRU1QVFlfT0JKLAogICAgICBhdHRyczogRU1QVFlfT0JKLAogICAgICBzbG90czogRU1QVFlfT0JKLAogICAgICByZWZzOiBFTVBUWV9PQkosCiAgICAgIHNldHVwU3RhdGU6IEVNUFRZX09CSiwKICAgICAgc2V0dXBDb250ZXh0OiBudWxsLAogICAgICBzdXNwZW5zZTogciwKICAgICAgc3VzcGVuc2VJZDogciA/IHIucGVuZGluZ0lkIDogMCwKICAgICAgYXN5bmNEZXA6IG51bGwsCiAgICAgIGFzeW5jUmVzb2x2ZWQ6ICExLAogICAgICBpc01vdW50ZWQ6ICExLAogICAgICBpc1VubW91bnRlZDogITEsCiAgICAgIGlzRGVhY3RpdmF0ZWQ6ICExLAogICAgICBiYzogbnVsbCwKICAgICAgYzogbnVsbCwKICAgICAgYm06IG51bGwsCiAgICAgIG06IG51bGwsCiAgICAgIGJ1OiBudWxsLAogICAgICB1OiBudWxsLAogICAgICB1bTogbnVsbCwKICAgICAgYnVtOiBudWxsLAogICAgICBkYTogbnVsbCwKICAgICAgYTogbnVsbCwKICAgICAgcnRnOiBudWxsLAogICAgICBydGM6IG51bGwsCiAgICAgIGVjOiBudWxsLAogICAgICBzcDogbnVsbCwKICAgIH07CiAgcmV0dXJuICgKICAgIChhLmN0eCA9IHsgXzogYSB9KSwKICAgIChhLnJvb3QgPSB0ID8gdC5yb290IDogYSksCiAgICAoYS5lbWl0ID0gZW1pdC5iaW5kKG51bGwsIGEpKSwKICAgIGUuY2UgJiYgZS5jZShhKSwKICAgIGEKICApOwp9CmxldCBjdXJyZW50SW5zdGFuY2UgPSBudWxsOwpjb25zdCBnZXRDdXJyZW50SW5zdGFuY2UkMSA9ICgpID0+IGN1cnJlbnRJbnN0YW5jZSB8fCBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2U7CmxldCBpbnRlcm5hbFNldEN1cnJlbnRJbnN0YW5jZSwgc2V0SW5TU1JTZXR1cFN0YXRlOwp7CiAgY29uc3QgZSA9IGdldEdsb2JhbFRoaXMkMSgpLAogICAgdCA9IChyLCBuKSA9PiB7CiAgICAgIGxldCBpOwogICAgICByZXR1cm4gKAogICAgICAgIChpID0gZVtyXSkgfHwgKGkgPSBlW3JdID0gW10pLAogICAgICAgIGkucHVzaChuKSwKICAgICAgICAoYSkgPT4gewogICAgICAgICAgaS5sZW5ndGggPiAxID8gaS5mb3JFYWNoKChvKSA9PiBvKGEpKSA6IGlbMF0oYSk7CiAgICAgICAgfQogICAgICApOwogICAgfTsKICAoaW50ZXJuYWxTZXRDdXJyZW50SW5zdGFuY2UgPSB0KAogICAgIl9fVlVFX0lOU1RBTkNFX1NFVFRFUlNfXyIsCiAgICAocikgPT4gKGN1cnJlbnRJbnN0YW5jZSA9IHIpCiAgKSksCiAgICAoc2V0SW5TU1JTZXR1cFN0YXRlID0gdCgKICAgICAgIl9fVlVFX1NTUl9TRVRURVJTX18iLAogICAgICAocikgPT4gKGlzSW5TU1JDb21wb25lbnRTZXR1cCA9IHIpCiAgICApKTsKfQpjb25zdCBzZXRDdXJyZW50SW5zdGFuY2UgPSAoZSkgPT4gewogIGNvbnN0IHQgPSBjdXJyZW50SW5zdGFuY2U7CiAgcmV0dXJuICgKICAgIGludGVybmFsU2V0Q3VycmVudEluc3RhbmNlKGUpLAogICAgZS5zY29wZS5vbigpLAogICAgKCkgPT4gewogICAgICBlLnNjb3BlLm9mZigpLCBpbnRlcm5hbFNldEN1cnJlbnRJbnN0YW5jZSh0KTsKICAgIH0KICApOwp9LAogIHVuc2V0Q3VycmVudEluc3RhbmNlID0gKCkgPT4gewogICAgY3VycmVudEluc3RhbmNlICYmIGN1cnJlbnRJbnN0YW5jZS5zY29wZS5vZmYoKSwKICAgICAgaW50ZXJuYWxTZXRDdXJyZW50SW5zdGFuY2UobnVsbCk7CiAgfTsKZnVuY3Rpb24gaXNTdGF0ZWZ1bENvbXBvbmVudChlKSB7CiAgcmV0dXJuIGUudm5vZGUuc2hhcGVGbGFnICYgNDsKfQpsZXQgaXNJblNTUkNvbXBvbmVudFNldHVwID0gITE7CmZ1bmN0aW9uIHNldHVwQ29tcG9uZW50KGUsIHQgPSAhMSwgciA9ICExKSB7CiAgdCAmJiBzZXRJblNTUlNldHVwU3RhdGUodCk7CiAgY29uc3QgeyBwcm9wczogbiwgY2hpbGRyZW46IGkgfSA9IGUudm5vZGUsCiAgICBhID0gaXNTdGF0ZWZ1bENvbXBvbmVudChlKTsKICBpbml0UHJvcHMoZSwgbiwgYSwgdCksIGluaXRTbG90cyhlLCBpLCByKTsKICBjb25zdCBvID0gYSA/IHNldHVwU3RhdGVmdWxDb21wb25lbnQoZSwgdCkgOiB2b2lkIDA7CiAgcmV0dXJuIHQgJiYgc2V0SW5TU1JTZXR1cFN0YXRlKCExKSwgbzsKfQpmdW5jdGlvbiBzZXR1cFN0YXRlZnVsQ29tcG9uZW50KGUsIHQpIHsKICBjb25zdCByID0gZS50eXBlOwogIChlLmFjY2Vzc0NhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKSksCiAgICAoZS5wcm94eSA9IG5ldyBQcm94eShlLmN0eCwgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzKSk7CiAgY29uc3QgeyBzZXR1cDogbiB9ID0gcjsKICBpZiAobikgewogICAgcGF1c2VUcmFja2luZygpOwogICAgY29uc3QgaSA9IChlLnNldHVwQ29udGV4dCA9IG4ubGVuZ3RoID4gMSA/IGNyZWF0ZVNldHVwQ29udGV4dChlKSA6IG51bGwpLAogICAgICBhID0gc2V0Q3VycmVudEluc3RhbmNlKGUpLAogICAgICBvID0gY2FsbFdpdGhFcnJvckhhbmRsaW5nKG4sIGUsIDAsIFtlLnByb3BzLCBpXSksCiAgICAgIGwgPSBpc1Byb21pc2UkMShvKTsKICAgIGlmICgKICAgICAgKHJlc2V0VHJhY2tpbmcoKSwKICAgICAgICBhKCksCiAgICAgICAgKGwgfHwgZS5zcCkgJiYgIWlzQXN5bmNXcmFwcGVyKGUpICYmIG1hcmtBc3luY0JvdW5kYXJ5KGUpLAogICAgICAgIGwpCiAgICApIHsKICAgICAgaWYgKChvLnRoZW4odW5zZXRDdXJyZW50SW5zdGFuY2UsIHVuc2V0Q3VycmVudEluc3RhbmNlKSwgdCkpCiAgICAgICAgcmV0dXJuIG8KICAgICAgICAgIC50aGVuKChjKSA9PiB7CiAgICAgICAgICAgIGhhbmRsZVNldHVwUmVzdWx0KGUsIGMsIHQpOwogICAgICAgICAgfSkKICAgICAgICAgIC5jYXRjaCgoYykgPT4gewogICAgICAgICAgICBoYW5kbGVFcnJvcihjLCBlLCAwKTsKICAgICAgICAgIH0pOwogICAgICBlLmFzeW5jRGVwID0gbzsKICAgIH0gZWxzZSBoYW5kbGVTZXR1cFJlc3VsdChlLCBvLCB0KTsKICB9IGVsc2UgZmluaXNoQ29tcG9uZW50U2V0dXAoZSwgdCk7Cn0KZnVuY3Rpb24gaGFuZGxlU2V0dXBSZXN1bHQoZSwgdCwgcikgewogIGlzRnVuY3Rpb24kMSh0KQogICAgPyBlLnR5cGUuX19zc3JJbmxpbmVSZW5kZXIKICAgICAgPyAoZS5zc3JSZW5kZXIgPSB0KQogICAgICA6IChlLnJlbmRlciA9IHQpCiAgICA6IGlzT2JqZWN0JDIodCkgJiYgKGUuc2V0dXBTdGF0ZSA9IHByb3h5UmVmcyh0KSksCiAgICBmaW5pc2hDb21wb25lbnRTZXR1cChlLCByKTsKfQpsZXQgY29tcGlsZSQyLCBpbnN0YWxsV2l0aFByb3h5OwpmdW5jdGlvbiByZWdpc3RlclJ1bnRpbWVDb21waWxlcihlKSB7CiAgKGNvbXBpbGUkMiA9IGUpLAogICAgKGluc3RhbGxXaXRoUHJveHkgPSAodCkgPT4gewogICAgICB0LnJlbmRlci5fcmMgJiYKICAgICAgICAodC53aXRoUHJveHkgPSBuZXcgUHJveHkoCiAgICAgICAgICB0LmN0eCwKICAgICAgICAgIFJ1bnRpbWVDb21waWxlZFB1YmxpY0luc3RhbmNlUHJveHlIYW5kbGVycwogICAgICAgICkpOwogICAgfSk7Cn0KY29uc3QgaXNSdW50aW1lT25seSA9ICgpID0+ICFjb21waWxlJDI7CmZ1bmN0aW9uIGZpbmlzaENvbXBvbmVudFNldHVwKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS50eXBlOwogIGlmICghZS5yZW5kZXIpIHsKICAgIGlmICghdCAmJiBjb21waWxlJDIgJiYgIW4ucmVuZGVyKSB7CiAgICAgIGNvbnN0IGkgPSBuLnRlbXBsYXRlIHx8IHJlc29sdmVNZXJnZWRPcHRpb25zKGUpLnRlbXBsYXRlOwogICAgICBpZiAoaSkgewogICAgICAgIGNvbnN0IHsgaXNDdXN0b21FbGVtZW50OiBhLCBjb21waWxlck9wdGlvbnM6IG8gfSA9IGUuYXBwQ29udGV4dC5jb25maWcsCiAgICAgICAgICB7IGRlbGltaXRlcnM6IGwsIGNvbXBpbGVyT3B0aW9uczogYyB9ID0gbiwKICAgICAgICAgIHUgPSBleHRlbmQoZXh0ZW5kKHsgaXNDdXN0b21FbGVtZW50OiBhLCBkZWxpbWl0ZXJzOiBsIH0sIG8pLCBjKTsKICAgICAgICBuLnJlbmRlciA9IGNvbXBpbGUkMihpLCB1KTsKICAgICAgfQogICAgfQogICAgKGUucmVuZGVyID0gbi5yZW5kZXIgfHwgTk9PUCksIGluc3RhbGxXaXRoUHJveHkgJiYgaW5zdGFsbFdpdGhQcm94eShlKTsKICB9CiAgewogICAgY29uc3QgaSA9IHNldEN1cnJlbnRJbnN0YW5jZShlKTsKICAgIHBhdXNlVHJhY2tpbmcoKTsKICAgIHRyeSB7CiAgICAgIGFwcGx5T3B0aW9ucyhlKTsKICAgIH0gZmluYWxseSB7CiAgICAgIHJlc2V0VHJhY2tpbmcoKSwgaSgpOwogICAgfQogIH0KfQpjb25zdCBhdHRyc1Byb3h5SGFuZGxlcnMgPSB7CiAgZ2V0KGUsIHQpIHsKICAgIHJldHVybiB0cmFjayhlLCAiZ2V0IiwgIiIpLCBlW3RdOwogIH0sCn07CmZ1bmN0aW9uIGNyZWF0ZVNldHVwQ29udGV4dChlKSB7CiAgY29uc3QgdCA9IChyKSA9PiB7CiAgICBlLmV4cG9zZWQgPSByIHx8IHt9OwogIH07CiAgcmV0dXJuIHsKICAgIGF0dHJzOiBuZXcgUHJveHkoZS5hdHRycywgYXR0cnNQcm94eUhhbmRsZXJzKSwKICAgIHNsb3RzOiBlLnNsb3RzLAogICAgZW1pdDogZS5lbWl0LAogICAgZXhwb3NlOiB0LAogIH07Cn0KZnVuY3Rpb24gZ2V0Q29tcG9uZW50UHVibGljSW5zdGFuY2UoZSkgewogIHJldHVybiBlLmV4cG9zZWQKICAgID8gZS5leHBvc2VQcm94eSB8fAogICAgKGUuZXhwb3NlUHJveHkgPSBuZXcgUHJveHkocHJveHlSZWZzKG1hcmtSYXcoZS5leHBvc2VkKSksIHsKICAgICAgZ2V0KHQsIHIpIHsKICAgICAgICBpZiAociBpbiB0KSByZXR1cm4gdFtyXTsKICAgICAgICBpZiAociBpbiBwdWJsaWNQcm9wZXJ0aWVzTWFwKSByZXR1cm4gcHVibGljUHJvcGVydGllc01hcFtyXShlKTsKICAgICAgfSwKICAgICAgaGFzKHQsIHIpIHsKICAgICAgICByZXR1cm4gciBpbiB0IHx8IHIgaW4gcHVibGljUHJvcGVydGllc01hcDsKICAgICAgfSwKICAgIH0pKQogICAgOiBlLnByb3h5Owp9CmNvbnN0IGNsYXNzaWZ5UkUgPSAvKD86XnxbLV9dKShcdykvZywKICBjbGFzc2lmeSA9IChlKSA9PgogICAgZS5yZXBsYWNlKGNsYXNzaWZ5UkUsICh0KSA9PiB0LnRvVXBwZXJDYXNlKCkpLnJlcGxhY2UoL1stX10vZywgIiIpOwpmdW5jdGlvbiBnZXRDb21wb25lbnROYW1lKGUsIHQgPSAhMCkgewogIHJldHVybiBpc0Z1bmN0aW9uJDEoZSkgPyBlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSA6IGUubmFtZSB8fCAodCAmJiBlLl9fbmFtZSk7Cn0KZnVuY3Rpb24gZm9ybWF0Q29tcG9uZW50TmFtZShlLCB0LCByID0gITEpIHsKICBsZXQgbiA9IGdldENvbXBvbmVudE5hbWUodCk7CiAgaWYgKCFuICYmIHQuX19maWxlKSB7CiAgICBjb25zdCBpID0gdC5fX2ZpbGUubWF0Y2goLyhbXi9cXF0rKVwuXHcrJC8pOwogICAgaSAmJiAobiA9IGlbMV0pOwogIH0KICBpZiAoIW4gJiYgZSAmJiBlLnBhcmVudCkgewogICAgY29uc3QgaSA9IChhKSA9PiB7CiAgICAgIGZvciAoY29uc3QgbyBpbiBhKSBpZiAoYVtvXSA9PT0gdCkgcmV0dXJuIG87CiAgICB9OwogICAgbiA9CiAgICAgIGkoZS5jb21wb25lbnRzIHx8IGUucGFyZW50LnR5cGUuY29tcG9uZW50cykgfHwgaShlLmFwcENvbnRleHQuY29tcG9uZW50cyk7CiAgfQogIHJldHVybiBuID8gY2xhc3NpZnkobikgOiByID8gIkFwcCIgOiAiQW5vbnltb3VzIjsKfQpmdW5jdGlvbiBpc0NsYXNzQ29tcG9uZW50KGUpIHsKICByZXR1cm4gaXNGdW5jdGlvbiQxKGUpICYmICJfX3ZjY09wdHMiIGluIGU7Cn0KY29uc3QgY29tcHV0ZWQgPSAoZSwgdCkgPT4gY29tcHV0ZWQkMShlLCB0LCBpc0luU1NSQ29tcG9uZW50U2V0dXApOwpmdW5jdGlvbiBoJDIoZSwgdCwgcikgewogIGNvbnN0IG4gPSBhcmd1bWVudHMubGVuZ3RoOwogIHJldHVybiBuID09PSAyCiAgICA/IGlzT2JqZWN0JDIodCkgJiYgIWlzQXJyYXkkMih0KQogICAgICA/IGlzVk5vZGUkMSh0KQogICAgICAgID8gY3JlYXRlVk5vZGUoZSwgbnVsbCwgW3RdKQogICAgICAgIDogY3JlYXRlVk5vZGUoZSwgdCkKICAgICAgOiBjcmVhdGVWTm9kZShlLCBudWxsLCB0KQogICAgOiAobiA+IDMKICAgICAgPyAociA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMikpCiAgICAgIDogbiA9PT0gMyAmJiBpc1ZOb2RlJDEocikgJiYgKHIgPSBbcl0pLAogICAgICBjcmVhdGVWTm9kZShlLCB0LCByKSk7Cn0KZnVuY3Rpb24gaW5pdEN1c3RvbUZvcm1hdHRlcigpIHsgfQpmdW5jdGlvbiB3aXRoTWVtbyhlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9IHJbbl07CiAgaWYgKGkgJiYgaXNNZW1vU2FtZShpLCBlKSkgcmV0dXJuIGk7CiAgY29uc3QgYSA9IHQoKTsKICByZXR1cm4gKGEubWVtbyA9IGUuc2xpY2UoKSksIChhLmNhY2hlSW5kZXggPSBuKSwgKHJbbl0gPSBhKTsKfQpmdW5jdGlvbiBpc01lbW9TYW1lKGUsIHQpIHsKICBjb25zdCByID0gZS5tZW1vOwogIGlmIChyLmxlbmd0aCAhPSB0Lmxlbmd0aCkgcmV0dXJuICExOwogIGZvciAobGV0IG4gPSAwOyBuIDwgci5sZW5ndGg7IG4rKykgaWYgKGhhc0NoYW5nZWQocltuXSwgdFtuXSkpIHJldHVybiAhMTsKICByZXR1cm4gaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJiBjdXJyZW50QmxvY2sgJiYgY3VycmVudEJsb2NrLnB1c2goZSksICEwOwp9CmNvbnN0IHZlcnNpb24kMSA9ICIzLjUuMTMiLAogIHdhcm4kMiA9IE5PT1AsCiAgRXJyb3JUeXBlU3RyaW5ncyA9IEVycm9yVHlwZVN0cmluZ3MkMSwKICBkZXZ0b29scyQyID0gZGV2dG9vbHMkMSwKICBzZXREZXZ0b29sc0hvb2sgPSBzZXREZXZ0b29sc0hvb2skMSwKICBfc3NyVXRpbHMgPSB7CiAgICBjcmVhdGVDb21wb25lbnRJbnN0YW5jZSwKICAgIHNldHVwQ29tcG9uZW50LAogICAgcmVuZGVyQ29tcG9uZW50Um9vdCwKICAgIHNldEN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSwKICAgIGlzVk5vZGU6IGlzVk5vZGUkMSwKICAgIG5vcm1hbGl6ZVZOb2RlLAogICAgZ2V0Q29tcG9uZW50UHVibGljSW5zdGFuY2UsCiAgICBlbnN1cmVWYWxpZFZOb2RlOiBlbnN1cmVWYWxpZFZOb2RlJDEsCiAgICBwdXNoV2FybmluZ0NvbnRleHQsCiAgICBwb3BXYXJuaW5nQ29udGV4dCwKICB9LAogIHNzclV0aWxzID0gX3NzclV0aWxzLAogIHJlc29sdmVGaWx0ZXIgPSBudWxsLAogIGNvbXBhdFV0aWxzID0gbnVsbCwKICBEZXByZWNhdGlvblR5cGVzID0gbnVsbDsKLyoqCiAqIEB2dWUvcnVudGltZS1kb20gdjMuNS4xMwogKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwogKiBAbGljZW5zZSBNSVQKICoqLyBsZXQgcG9saWN5Owpjb25zdCB0dCA9IHR5cGVvZiB3aW5kb3cgPCAidSIgJiYgd2luZG93LnRydXN0ZWRUeXBlczsKaWYgKHR0KQogIHRyeSB7CiAgICBwb2xpY3kgPSB0dC5jcmVhdGVQb2xpY3koInZ1ZSIsIHsgY3JlYXRlSFRNTDogKGUpID0+IGUgfSk7CiAgfSBjYXRjaCB7IH0KY29uc3QgdW5zYWZlVG9UcnVzdGVkSFRNTCA9IHBvbGljeSA/IChlKSA9PiBwb2xpY3kuY3JlYXRlSFRNTChlKSA6IChlKSA9PiBlLAogIHN2Z05TID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwKICBtYXRobWxOUyA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIiwKICBkb2MgPSB0eXBlb2YgZG9jdW1lbnQgPCAidSIgPyBkb2N1bWVudCA6IG51bGwsCiAgdGVtcGxhdGVDb250YWluZXIgPSBkb2MgJiYgZG9jLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIiksCiAgbm9kZU9wcyA9IHsKICAgIGluc2VydDogKGUsIHQsIHIpID0+IHsKICAgICAgdC5pbnNlcnRCZWZvcmUoZSwgciB8fCBudWxsKTsKICAgIH0sCiAgICByZW1vdmU6IChlKSA9PiB7CiAgICAgIGNvbnN0IHQgPSBlLnBhcmVudE5vZGU7CiAgICAgIHQgJiYgdC5yZW1vdmVDaGlsZChlKTsKICAgIH0sCiAgICBjcmVhdGVFbGVtZW50OiAoZSwgdCwgciwgbikgPT4gewogICAgICBjb25zdCBpID0KICAgICAgICB0ID09PSAic3ZnIgogICAgICAgICAgPyBkb2MuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCBlKQogICAgICAgICAgOiB0ID09PSAibWF0aG1sIgogICAgICAgICAgICA/IGRvYy5jcmVhdGVFbGVtZW50TlMobWF0aG1sTlMsIGUpCiAgICAgICAgICAgIDogcgogICAgICAgICAgICAgID8gZG9jLmNyZWF0ZUVsZW1lbnQoZSwgeyBpczogciB9KQogICAgICAgICAgICAgIDogZG9jLmNyZWF0ZUVsZW1lbnQoZSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgZSA9PT0gInNlbGVjdCIgJiYKICAgICAgICBuICYmCiAgICAgICAgbi5tdWx0aXBsZSAhPSBudWxsICYmCiAgICAgICAgaS5zZXRBdHRyaWJ1dGUoIm11bHRpcGxlIiwgbi5tdWx0aXBsZSksCiAgICAgICAgaQogICAgICApOwogICAgfSwKICAgIGNyZWF0ZVRleHQ6IChlKSA9PiBkb2MuY3JlYXRlVGV4dE5vZGUoZSksCiAgICBjcmVhdGVDb21tZW50OiAoZSkgPT4gZG9jLmNyZWF0ZUNvbW1lbnQoZSksCiAgICBzZXRUZXh0OiAoZSwgdCkgPT4gewogICAgICBlLm5vZGVWYWx1ZSA9IHQ7CiAgICB9LAogICAgc2V0RWxlbWVudFRleHQ6IChlLCB0KSA9PiB7CiAgICAgIGUudGV4dENvbnRlbnQgPSB0OwogICAgfSwKICAgIHBhcmVudE5vZGU6IChlKSA9PiBlLnBhcmVudE5vZGUsCiAgICBuZXh0U2libGluZzogKGUpID0+IGUubmV4dFNpYmxpbmcsCiAgICBxdWVyeVNlbGVjdG9yOiAoZSkgPT4gZG9jLnF1ZXJ5U2VsZWN0b3IoZSksCiAgICBzZXRTY29wZUlkKGUsIHQpIHsKICAgICAgZS5zZXRBdHRyaWJ1dGUodCwgIiIpOwogICAgfSwKICAgIGluc2VydFN0YXRpY0NvbnRlbnQoZSwgdCwgciwgbiwgaSwgYSkgewogICAgICBjb25zdCBvID0gciA/IHIucHJldmlvdXNTaWJsaW5nIDogdC5sYXN0Q2hpbGQ7CiAgICAgIGlmIChpICYmIChpID09PSBhIHx8IGkubmV4dFNpYmxpbmcpKQogICAgICAgIGZvciAoCiAgICAgICAgICA7CiAgICAgICAgICB0Lmluc2VydEJlZm9yZShpLmNsb25lTm9kZSghMCksIHIpLAogICAgICAgICAgIShpID09PSBhIHx8ICEoaSA9IGkubmV4dFNpYmxpbmcpKTsKCiAgICAgICAgKTsKICAgICAgZWxzZSB7CiAgICAgICAgdGVtcGxhdGVDb250YWluZXIuaW5uZXJIVE1MID0gdW5zYWZlVG9UcnVzdGVkSFRNTCgKICAgICAgICAgIG4gPT09ICJzdmciCiAgICAgICAgICAgID8gYDxzdmc+JHtlfTwvc3ZnPmAKICAgICAgICAgICAgOiBuID09PSAibWF0aG1sIgogICAgICAgICAgICAgID8gYDxtYXRoPiR7ZX08L21hdGg+YAogICAgICAgICAgICAgIDogZQogICAgICAgICk7CiAgICAgICAgY29uc3QgbCA9IHRlbXBsYXRlQ29udGFpbmVyLmNvbnRlbnQ7CiAgICAgICAgaWYgKG4gPT09ICJzdmciIHx8IG4gPT09ICJtYXRobWwiKSB7CiAgICAgICAgICBjb25zdCBjID0gbC5maXJzdENoaWxkOwogICAgICAgICAgZm9yICg7IGMuZmlyc3RDaGlsZDspIGwuYXBwZW5kQ2hpbGQoYy5maXJzdENoaWxkKTsKICAgICAgICAgIGwucmVtb3ZlQ2hpbGQoYyk7CiAgICAgICAgfQogICAgICAgIHQuaW5zZXJ0QmVmb3JlKGwsIHIpOwogICAgICB9CiAgICAgIHJldHVybiBbCiAgICAgICAgbyA/IG8ubmV4dFNpYmxpbmcgOiB0LmZpcnN0Q2hpbGQsCiAgICAgICAgciA/IHIucHJldmlvdXNTaWJsaW5nIDogdC5sYXN0Q2hpbGQsCiAgICAgIF07CiAgICB9LAogIH0sCiAgVFJBTlNJVElPTiA9ICJ0cmFuc2l0aW9uIiwKICBBTklNQVRJT04gPSAiYW5pbWF0aW9uIiwKICB2dGNLZXkgPSBTeW1ib2woIl92dGMiKSwKICBET01UcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzID0gewogICAgbmFtZTogU3RyaW5nLAogICAgdHlwZTogU3RyaW5nLAogICAgY3NzOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6ICEwIH0sCiAgICBkdXJhdGlvbjogW1N0cmluZywgTnVtYmVyLCBPYmplY3RdLAogICAgZW50ZXJGcm9tQ2xhc3M6IFN0cmluZywKICAgIGVudGVyQWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGVudGVyVG9DbGFzczogU3RyaW5nLAogICAgYXBwZWFyRnJvbUNsYXNzOiBTdHJpbmcsCiAgICBhcHBlYXJBY3RpdmVDbGFzczogU3RyaW5nLAogICAgYXBwZWFyVG9DbGFzczogU3RyaW5nLAogICAgbGVhdmVGcm9tQ2xhc3M6IFN0cmluZywKICAgIGxlYXZlQWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGxlYXZlVG9DbGFzczogU3RyaW5nLAogIH0sCiAgVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycyA9IGV4dGVuZCgKICAgIHt9LAogICAgQmFzZVRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsCiAgICBET01UcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzCiAgKSwKICBkZWNvcmF0ZSQxID0gKGUpID0+ICgKICAgIChlLmRpc3BsYXlOYW1lID0gIlRyYW5zaXRpb24iKSwgKGUucHJvcHMgPSBUcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzKSwgZQogICksCiAgVHJhbnNpdGlvbiA9IGRlY29yYXRlJDEoKGUsIHsgc2xvdHM6IHQgfSkgPT4KICAgIGgkMihCYXNlVHJhbnNpdGlvbiwgcmVzb2x2ZVRyYW5zaXRpb25Qcm9wcyhlKSwgdCkKICApLAogIGNhbGxIb29rID0gKGUsIHQgPSBbXSkgPT4gewogICAgaXNBcnJheSQyKGUpID8gZS5mb3JFYWNoKChyKSA9PiByKC4uLnQpKSA6IGUgJiYgZSguLi50KTsKICB9LAogIGhhc0V4cGxpY2l0Q2FsbGJhY2sgPSAoZSkgPT4KICAgIGUgPyAoaXNBcnJheSQyKGUpID8gZS5zb21lKCh0KSA9PiB0Lmxlbmd0aCA+IDEpIDogZS5sZW5ndGggPiAxKSA6ICExOwpmdW5jdGlvbiByZXNvbHZlVHJhbnNpdGlvblByb3BzKGUpIHsKICBjb25zdCB0ID0ge307CiAgZm9yIChjb25zdCBLIGluIGUpIEsgaW4gRE9NVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycyB8fCAodFtLXSA9IGVbS10pOwogIGlmIChlLmNzcyA9PT0gITEpIHJldHVybiB0OwogIGNvbnN0IHsKICAgIG5hbWU6IHIgPSAidiIsCiAgICB0eXBlOiBuLAogICAgZHVyYXRpb246IGksCiAgICBlbnRlckZyb21DbGFzczogYSA9IGAke3J9LWVudGVyLWZyb21gLAogICAgZW50ZXJBY3RpdmVDbGFzczogbyA9IGAke3J9LWVudGVyLWFjdGl2ZWAsCiAgICBlbnRlclRvQ2xhc3M6IGwgPSBgJHtyfS1lbnRlci10b2AsCiAgICBhcHBlYXJGcm9tQ2xhc3M6IGMgPSBhLAogICAgYXBwZWFyQWN0aXZlQ2xhc3M6IHUgPSBvLAogICAgYXBwZWFyVG9DbGFzczogZCA9IGwsCiAgICBsZWF2ZUZyb21DbGFzczogRSA9IGAke3J9LWxlYXZlLWZyb21gLAogICAgbGVhdmVBY3RpdmVDbGFzczogYiA9IGAke3J9LWxlYXZlLWFjdGl2ZWAsCiAgICBsZWF2ZVRvQ2xhc3M6IFAgPSBgJHtyfS1sZWF2ZS10b2AsCiAgfSA9IGUsCiAgICBSID0gbm9ybWFsaXplRHVyYXRpb24oaSksCiAgICBUID0gUiAmJiBSWzBdLAogICAgTSA9IFIgJiYgUlsxXSwKICAgIHsKICAgICAgb25CZWZvcmVFbnRlcjogeCwKICAgICAgb25FbnRlcjogaywKICAgICAgb25FbnRlckNhbmNlbGxlZDogUywKICAgICAgb25MZWF2ZTogQSwKICAgICAgb25MZWF2ZUNhbmNlbGxlZDogTywKICAgICAgb25CZWZvcmVBcHBlYXI6IEYgPSB4LAogICAgICBvbkFwcGVhcjogRCA9IGssCiAgICAgIG9uQXBwZWFyQ2FuY2VsbGVkOiBIID0gUywKICAgIH0gPSB0LAogICAgJCA9IChLLCBlZSwgbGUsIHJlKSA9PiB7CiAgICAgIChLLl9lbnRlckNhbmNlbGxlZCA9IHJlKSwKICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoSywgZWUgPyBkIDogbCksCiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKEssIGVlID8gdSA6IG8pLAogICAgICAgIGxlICYmIGxlKCk7CiAgICB9LAogICAgcSA9IChLLCBlZSkgPT4gewogICAgICAoSy5faXNMZWF2aW5nID0gITEpLAogICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhLLCBFKSwKICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoSywgUCksCiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKEssIGIpLAogICAgICAgIGVlICYmIGVlKCk7CiAgICB9LAogICAgSiA9IChLKSA9PiAoZWUsIGxlKSA9PiB7CiAgICAgIGNvbnN0IHJlID0gSyA/IEQgOiBrLAogICAgICAgIEIgPSAoKSA9PiAkKGVlLCBLLCBsZSk7CiAgICAgIGNhbGxIb29rKHJlLCBbZWUsIEJdKSwKICAgICAgICBuZXh0RnJhbWUoKCkgPT4gewogICAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVlLCBLID8gYyA6IGEpLAogICAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWUsIEsgPyBkIDogbCksCiAgICAgICAgICAgIGhhc0V4cGxpY2l0Q2FsbGJhY2socmUpIHx8IHdoZW5UcmFuc2l0aW9uRW5kcyhlZSwgbiwgVCwgQik7CiAgICAgICAgfSk7CiAgICB9OwogIHJldHVybiBleHRlbmQodCwgewogICAgb25CZWZvcmVFbnRlcihLKSB7CiAgICAgIGNhbGxIb29rKHgsIFtLXSksIGFkZFRyYW5zaXRpb25DbGFzcyhLLCBhKSwgYWRkVHJhbnNpdGlvbkNsYXNzKEssIG8pOwogICAgfSwKICAgIG9uQmVmb3JlQXBwZWFyKEspIHsKICAgICAgY2FsbEhvb2soRiwgW0tdKSwgYWRkVHJhbnNpdGlvbkNsYXNzKEssIGMpLCBhZGRUcmFuc2l0aW9uQ2xhc3MoSywgdSk7CiAgICB9LAogICAgb25FbnRlcjogSighMSksCiAgICBvbkFwcGVhcjogSighMCksCiAgICBvbkxlYXZlKEssIGVlKSB7CiAgICAgIEsuX2lzTGVhdmluZyA9ICEwOwogICAgICBjb25zdCBsZSA9ICgpID0+IHEoSywgZWUpOwogICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoSywgRSksCiAgICAgICAgSy5fZW50ZXJDYW5jZWxsZWQKICAgICAgICAgID8gKGFkZFRyYW5zaXRpb25DbGFzcyhLLCBiKSwgZm9yY2VSZWZsb3coKSkKICAgICAgICAgIDogKGZvcmNlUmVmbG93KCksIGFkZFRyYW5zaXRpb25DbGFzcyhLLCBiKSksCiAgICAgICAgbmV4dEZyYW1lKCgpID0+IHsKICAgICAgICAgIEsuX2lzTGVhdmluZyAmJgogICAgICAgICAgICAocmVtb3ZlVHJhbnNpdGlvbkNsYXNzKEssIEUpLAogICAgICAgICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhLLCBQKSwKICAgICAgICAgICAgICBoYXNFeHBsaWNpdENhbGxiYWNrKEEpIHx8IHdoZW5UcmFuc2l0aW9uRW5kcyhLLCBuLCBNLCBsZSkpOwogICAgICAgIH0pLAogICAgICAgIGNhbGxIb29rKEEsIFtLLCBsZV0pOwogICAgfSwKICAgIG9uRW50ZXJDYW5jZWxsZWQoSykgewogICAgICAkKEssICExLCB2b2lkIDAsICEwKSwgY2FsbEhvb2soUywgW0tdKTsKICAgIH0sCiAgICBvbkFwcGVhckNhbmNlbGxlZChLKSB7CiAgICAgICQoSywgITAsIHZvaWQgMCwgITApLCBjYWxsSG9vayhILCBbS10pOwogICAgfSwKICAgIG9uTGVhdmVDYW5jZWxsZWQoSykgewogICAgICBxKEspLCBjYWxsSG9vayhPLCBbS10pOwogICAgfSwKICB9KTsKfQpmdW5jdGlvbiBub3JtYWxpemVEdXJhdGlvbihlKSB7CiAgaWYgKGUgPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgaWYgKGlzT2JqZWN0JDIoZSkpIHJldHVybiBbTnVtYmVyT2YoZS5lbnRlciksIE51bWJlck9mKGUubGVhdmUpXTsKICB7CiAgICBjb25zdCB0ID0gTnVtYmVyT2YoZSk7CiAgICByZXR1cm4gW3QsIHRdOwogIH0KfQpmdW5jdGlvbiBOdW1iZXJPZihlKSB7CiAgcmV0dXJuIHRvTnVtYmVyKGUpOwp9CmZ1bmN0aW9uIGFkZFRyYW5zaXRpb25DbGFzcyhlLCB0KSB7CiAgdC5zcGxpdCgvXHMrLykuZm9yRWFjaCgocikgPT4gciAmJiBlLmNsYXNzTGlzdC5hZGQocikpLAogICAgKGVbdnRjS2V5XSB8fCAoZVt2dGNLZXldID0gbmV3IFNldCgpKSkuYWRkKHQpOwp9CmZ1bmN0aW9uIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlLCB0KSB7CiAgdC5zcGxpdCgvXHMrLykuZm9yRWFjaCgobikgPT4gbiAmJiBlLmNsYXNzTGlzdC5yZW1vdmUobikpOwogIGNvbnN0IHIgPSBlW3Z0Y0tleV07CiAgciAmJiAoci5kZWxldGUodCksIHIuc2l6ZSB8fCAoZVt2dGNLZXldID0gdm9pZCAwKSk7Cn0KZnVuY3Rpb24gbmV4dEZyYW1lKGUpIHsKICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOwogIH0pOwp9CmxldCBlbmRJZCA9IDA7CmZ1bmN0aW9uIHdoZW5UcmFuc2l0aW9uRW5kcyhlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9IChlLl9lbmRJZCA9ICsrZW5kSWQpLAogICAgYSA9ICgpID0+IHsKICAgICAgaSA9PT0gZS5fZW5kSWQgJiYgbigpOwogICAgfTsKICBpZiAociAhPSBudWxsKSByZXR1cm4gc2V0VGltZW91dChhLCByKTsKICBjb25zdCB7IHR5cGU6IG8sIHRpbWVvdXQ6IGwsIHByb3BDb3VudDogYyB9ID0gZ2V0VHJhbnNpdGlvbkluZm8oZSwgdCk7CiAgaWYgKCFvKSByZXR1cm4gbigpOwogIGNvbnN0IHUgPSBvICsgImVuZCI7CiAgbGV0IGQgPSAwOwogIGNvbnN0IEUgPSAoKSA9PiB7CiAgICBlLnJlbW92ZUV2ZW50TGlzdGVuZXIodSwgYiksIGEoKTsKICB9LAogICAgYiA9IChQKSA9PiB7CiAgICAgIFAudGFyZ2V0ID09PSBlICYmICsrZCA+PSBjICYmIEUoKTsKICAgIH07CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkIDwgYyAmJiBFKCk7CiAgfSwgbCArIDEpLAogICAgZS5hZGRFdmVudExpc3RlbmVyKHUsIGIpOwp9CmZ1bmN0aW9uIGdldFRyYW5zaXRpb25JbmZvKGUsIHQpIHsKICBjb25zdCByID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZSksCiAgICBuID0gKFIpID0+IChyW1JdIHx8ICIiKS5zcGxpdCgiLCAiKSwKICAgIGkgPSBuKGAke1RSQU5TSVRJT059RGVsYXlgKSwKICAgIGEgPSBuKGAke1RSQU5TSVRJT059RHVyYXRpb25gKSwKICAgIG8gPSBnZXRUaW1lb3V0KGksIGEpLAogICAgbCA9IG4oYCR7QU5JTUFUSU9OfURlbGF5YCksCiAgICBjID0gbihgJHtBTklNQVRJT059RHVyYXRpb25gKSwKICAgIHUgPSBnZXRUaW1lb3V0KGwsIGMpOwogIGxldCBkID0gbnVsbCwKICAgIEUgPSAwLAogICAgYiA9IDA7CiAgdCA9PT0gVFJBTlNJVElPTgogICAgPyBvID4gMCAmJiAoKGQgPSBUUkFOU0lUSU9OKSwgKEUgPSBvKSwgKGIgPSBhLmxlbmd0aCkpCiAgICA6IHQgPT09IEFOSU1BVElPTgogICAgICA/IHUgPiAwICYmICgoZCA9IEFOSU1BVElPTiksIChFID0gdSksIChiID0gYy5sZW5ndGgpKQogICAgICA6ICgoRSA9IE1hdGgubWF4KG8sIHUpKSwKICAgICAgICAoZCA9IEUgPiAwID8gKG8gPiB1ID8gVFJBTlNJVElPTiA6IEFOSU1BVElPTikgOiBudWxsKSwKICAgICAgICAoYiA9IGQgPyAoZCA9PT0gVFJBTlNJVElPTiA/IGEubGVuZ3RoIDogYy5sZW5ndGgpIDogMCkpOwogIGNvbnN0IFAgPQogICAgZCA9PT0gVFJBTlNJVElPTiAmJgogICAgL1xiKHRyYW5zZm9ybXxhbGwpKCx8JCkvLnRlc3QobihgJHtUUkFOU0lUSU9OfVByb3BlcnR5YCkudG9TdHJpbmcoKSk7CiAgcmV0dXJuIHsgdHlwZTogZCwgdGltZW91dDogRSwgcHJvcENvdW50OiBiLCBoYXNUcmFuc2Zvcm06IFAgfTsKfQpmdW5jdGlvbiBnZXRUaW1lb3V0KGUsIHQpIHsKICBmb3IgKDsgZS5sZW5ndGggPCB0Lmxlbmd0aDspIGUgPSBlLmNvbmNhdChlKTsKICByZXR1cm4gTWF0aC5tYXgoLi4udC5tYXAoKHIsIG4pID0+IHRvTXMocikgKyB0b01zKGVbbl0pKSk7Cn0KZnVuY3Rpb24gdG9NcyhlKSB7CiAgcmV0dXJuIGUgPT09ICJhdXRvIiA/IDAgOiBOdW1iZXIoZS5zbGljZSgwLCAtMSkucmVwbGFjZSgiLCIsICIuIikpICogMWUzOwp9CmZ1bmN0aW9uIGZvcmNlUmVmbG93KCkgewogIHJldHVybiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKfQpmdW5jdGlvbiBwYXRjaENsYXNzKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZVt2dGNLZXldOwogIG4gJiYgKHQgPSAodCA/IFt0LCAuLi5uXSA6IFsuLi5uXSkuam9pbigiICIpKSwKICAgIHQgPT0gbnVsbAogICAgICA/IGUucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpCiAgICAgIDogcgogICAgICAgID8gZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgdCkKICAgICAgICA6IChlLmNsYXNzTmFtZSA9IHQpOwp9CmNvbnN0IHZTaG93T3JpZ2luYWxEaXNwbGF5ID0gU3ltYm9sKCJfdm9kIiksCiAgdlNob3dIaWRkZW4gPSBTeW1ib2woIl92c2giKSwKICB2U2hvdyA9IHsKICAgIGJlZm9yZU1vdW50KGUsIHsgdmFsdWU6IHQgfSwgeyB0cmFuc2l0aW9uOiByIH0pIHsKICAgICAgKGVbdlNob3dPcmlnaW5hbERpc3BsYXldID0KICAgICAgICBlLnN0eWxlLmRpc3BsYXkgPT09ICJub25lIiA/ICIiIDogZS5zdHlsZS5kaXNwbGF5KSwKICAgICAgICByICYmIHQgPyByLmJlZm9yZUVudGVyKGUpIDogc2V0RGlzcGxheShlLCB0KTsKICAgIH0sCiAgICBtb3VudGVkKGUsIHsgdmFsdWU6IHQgfSwgeyB0cmFuc2l0aW9uOiByIH0pIHsKICAgICAgciAmJiB0ICYmIHIuZW50ZXIoZSk7CiAgICB9LAogICAgdXBkYXRlZChlLCB7IHZhbHVlOiB0LCBvbGRWYWx1ZTogciB9LCB7IHRyYW5zaXRpb246IG4gfSkgewogICAgICAhdCAhPSAhciAmJgogICAgICAgIChuCiAgICAgICAgICA/IHQKICAgICAgICAgICAgPyAobi5iZWZvcmVFbnRlcihlKSwgc2V0RGlzcGxheShlLCAhMCksIG4uZW50ZXIoZSkpCiAgICAgICAgICAgIDogbi5sZWF2ZShlLCAoKSA9PiB7CiAgICAgICAgICAgICAgc2V0RGlzcGxheShlLCAhMSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICA6IHNldERpc3BsYXkoZSwgdCkpOwogICAgfSwKICAgIGJlZm9yZVVubW91bnQoZSwgeyB2YWx1ZTogdCB9KSB7CiAgICAgIHNldERpc3BsYXkoZSwgdCk7CiAgICB9LAogIH07CmZ1bmN0aW9uIHNldERpc3BsYXkoZSwgdCkgewogIChlLnN0eWxlLmRpc3BsYXkgPSB0ID8gZVt2U2hvd09yaWdpbmFsRGlzcGxheV0gOiAibm9uZSIpLAogICAgKGVbdlNob3dIaWRkZW5dID0gIXQpOwp9CmZ1bmN0aW9uIGluaXRWU2hvd0ZvclNTUigpIHsKICB2U2hvdy5nZXRTU1JQcm9wcyA9ICh7IHZhbHVlOiBlIH0pID0+IHsKICAgIGlmICghZSkgcmV0dXJuIHsgc3R5bGU6IHsgZGlzcGxheTogIm5vbmUiIH0gfTsKICB9Owp9CmNvbnN0IENTU19WQVJfVEVYVCA9IFN5bWJvbCgiIik7CmZ1bmN0aW9uIHVzZUNzc1ZhcnMoZSkgewogIGNvbnN0IHQgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGlmICghdCkgcmV0dXJuOwogIGNvbnN0IHIgPSAodC51dCA9IChpID0gZSh0LnByb3h5KSkgPT4gewogICAgQXJyYXkuZnJvbSgKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgW2RhdGEtdi1vd25lcj0iJHt0LnVpZH0iXWApCiAgICApLmZvckVhY2goKGEpID0+IHNldFZhcnNPbk5vZGUoYSwgaSkpOwogIH0pLAogICAgbiA9ICgpID0+IHsKICAgICAgY29uc3QgaSA9IGUodC5wcm94eSk7CiAgICAgIHQuY2UgPyBzZXRWYXJzT25Ob2RlKHQuY2UsIGkpIDogc2V0VmFyc09uVk5vZGUodC5zdWJUcmVlLCBpKSwgcihpKTsKICAgIH07CiAgb25CZWZvcmVVcGRhdGUoKCkgPT4gewogICAgcXVldWVQb3N0Rmx1c2hDYihuKTsKICB9KSwKICAgIG9uTW91bnRlZCgoKSA9PiB7CiAgICAgIHdhdGNoKG4sIE5PT1AsIHsgZmx1c2g6ICJwb3N0IiB9KTsKICAgICAgY29uc3QgaSA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG4pOwogICAgICBpLm9ic2VydmUodC5zdWJUcmVlLmVsLnBhcmVudE5vZGUsIHsgY2hpbGRMaXN0OiAhMCB9KSwKICAgICAgICBvblVubW91bnRlZCgoKSA9PiBpLmRpc2Nvbm5lY3QoKSk7CiAgICB9KTsKfQpmdW5jdGlvbiBzZXRWYXJzT25WTm9kZShlLCB0KSB7CiAgaWYgKGUuc2hhcGVGbGFnICYgMTI4KSB7CiAgICBjb25zdCByID0gZS5zdXNwZW5zZTsKICAgIChlID0gci5hY3RpdmVCcmFuY2gpLAogICAgICByLnBlbmRpbmdCcmFuY2ggJiYKICAgICAgIXIuaXNIeWRyYXRpbmcgJiYKICAgICAgci5lZmZlY3RzLnB1c2goKCkgPT4gewogICAgICAgIHNldFZhcnNPblZOb2RlKHIuYWN0aXZlQnJhbmNoLCB0KTsKICAgICAgfSk7CiAgfQogIGZvciAoOyBlLmNvbXBvbmVudDspIGUgPSBlLmNvbXBvbmVudC5zdWJUcmVlOwogIGlmIChlLnNoYXBlRmxhZyAmIDEgJiYgZS5lbCkgc2V0VmFyc09uTm9kZShlLmVsLCB0KTsKICBlbHNlIGlmIChlLnR5cGUgPT09IEZyYWdtZW50KSBlLmNoaWxkcmVuLmZvckVhY2goKHIpID0+IHNldFZhcnNPblZOb2RlKHIsIHQpKTsKICBlbHNlIGlmIChlLnR5cGUgPT09IFN0YXRpYykgewogICAgbGV0IHsgZWw6IHIsIGFuY2hvcjogbiB9ID0gZTsKICAgIGZvciAoOyByICYmIChzZXRWYXJzT25Ob2RlKHIsIHQpLCByICE9PSBuKTspIHIgPSByLm5leHRTaWJsaW5nOwogIH0KfQpmdW5jdGlvbiBzZXRWYXJzT25Ob2RlKGUsIHQpIHsKICBpZiAoZS5ub2RlVHlwZSA9PT0gMSkgewogICAgY29uc3QgciA9IGUuc3R5bGU7CiAgICBsZXQgbiA9ICIiOwogICAgZm9yIChjb25zdCBpIGluIHQpIHIuc2V0UHJvcGVydHkoYC0tJHtpfWAsIHRbaV0pLCAobiArPSBgLS0ke2l9OiAke3RbaV19O2ApOwogICAgcltDU1NfVkFSX1RFWFRdID0gbjsKICB9Cn0KY29uc3QgZGlzcGxheVJFID0gLyhefDspXHMqZGlzcGxheVxzKjovOwpmdW5jdGlvbiBwYXRjaFN0eWxlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS5zdHlsZSwKICAgIGkgPSBpc1N0cmluZyQxKHIpOwogIGxldCBhID0gITE7CiAgaWYgKHIgJiYgIWkpIHsKICAgIGlmICh0KQogICAgICBpZiAoaXNTdHJpbmckMSh0KSkKICAgICAgICBmb3IgKGNvbnN0IG8gb2YgdC5zcGxpdCgiOyIpKSB7CiAgICAgICAgICBjb25zdCBsID0gby5zbGljZSgwLCBvLmluZGV4T2YoIjoiKSkudHJpbSgpOwogICAgICAgICAgcltsXSA9PSBudWxsICYmIHNldFN0eWxlKG4sIGwsICIiKTsKICAgICAgICB9CiAgICAgIGVsc2UgZm9yIChjb25zdCBvIGluIHQpIHJbb10gPT0gbnVsbCAmJiBzZXRTdHlsZShuLCBvLCAiIik7CiAgICBmb3IgKGNvbnN0IG8gaW4gcikgbyA9PT0gImRpc3BsYXkiICYmIChhID0gITApLCBzZXRTdHlsZShuLCBvLCByW29dKTsKICB9IGVsc2UgaWYgKGkpIHsKICAgIGlmICh0ICE9PSByKSB7CiAgICAgIGNvbnN0IG8gPSBuW0NTU19WQVJfVEVYVF07CiAgICAgIG8gJiYgKHIgKz0gIjsiICsgbyksIChuLmNzc1RleHQgPSByKSwgKGEgPSBkaXNwbGF5UkUudGVzdChyKSk7CiAgICB9CiAgfSBlbHNlIHQgJiYgZS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIik7CiAgdlNob3dPcmlnaW5hbERpc3BsYXkgaW4gZSAmJgogICAgKChlW3ZTaG93T3JpZ2luYWxEaXNwbGF5XSA9IGEgPyBuLmRpc3BsYXkgOiAiIiksCiAgICAgIGVbdlNob3dIaWRkZW5dICYmIChuLmRpc3BsYXkgPSAibm9uZSIpKTsKfQpjb25zdCBpbXBvcnRhbnRSRSA9IC9ccyohaW1wb3J0YW50JC87CmZ1bmN0aW9uIHNldFN0eWxlKGUsIHQsIHIpIHsKICBpZiAoaXNBcnJheSQyKHIpKSByLmZvckVhY2goKG4pID0+IHNldFN0eWxlKGUsIHQsIG4pKTsKICBlbHNlIGlmICgociA9PSBudWxsICYmIChyID0gIiIpLCB0LnN0YXJ0c1dpdGgoIi0tIikpKSBlLnNldFByb3BlcnR5KHQsIHIpOwogIGVsc2UgewogICAgY29uc3QgbiA9IGF1dG9QcmVmaXgoZSwgdCk7CiAgICBpbXBvcnRhbnRSRS50ZXN0KHIpCiAgICAgID8gZS5zZXRQcm9wZXJ0eShoeXBoZW5hdGUobiksIHIucmVwbGFjZShpbXBvcnRhbnRSRSwgIiIpLCAiaW1wb3J0YW50IikKICAgICAgOiAoZVtuXSA9IHIpOwogIH0KfQpjb25zdCBwcmVmaXhlcyA9IFsiV2Via2l0IiwgIk1veiIsICJtcyJdLAogIHByZWZpeENhY2hlID0ge307CmZ1bmN0aW9uIGF1dG9QcmVmaXgoZSwgdCkgewogIGNvbnN0IHIgPSBwcmVmaXhDYWNoZVt0XTsKICBpZiAocikgcmV0dXJuIHI7CiAgbGV0IG4gPSBjYW1lbGl6ZSh0KTsKICBpZiAobiAhPT0gImZpbHRlciIgJiYgbiBpbiBlKSByZXR1cm4gKHByZWZpeENhY2hlW3RdID0gbik7CiAgbiA9IGNhcGl0YWxpemUkMShuKTsKICBmb3IgKGxldCBpID0gMDsgaSA8IHByZWZpeGVzLmxlbmd0aDsgaSsrKSB7CiAgICBjb25zdCBhID0gcHJlZml4ZXNbaV0gKyBuOwogICAgaWYgKGEgaW4gZSkgcmV0dXJuIChwcmVmaXhDYWNoZVt0XSA9IGEpOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCB4bGlua05TID0gImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiOwpmdW5jdGlvbiBwYXRjaEF0dHIoZSwgdCwgciwgbiwgaSwgYSA9IGlzU3BlY2lhbEJvb2xlYW5BdHRyKHQpKSB7CiAgbiAmJiB0LnN0YXJ0c1dpdGgoInhsaW5rOiIpCiAgICA/IHIgPT0gbnVsbAogICAgICA/IGUucmVtb3ZlQXR0cmlidXRlTlMoeGxpbmtOUywgdC5zbGljZSg2LCB0Lmxlbmd0aCkpCiAgICAgIDogZS5zZXRBdHRyaWJ1dGVOUyh4bGlua05TLCB0LCByKQogICAgOiByID09IG51bGwgfHwgKGEgJiYgIWluY2x1ZGVCb29sZWFuQXR0cihyKSkKICAgICAgPyBlLnJlbW92ZUF0dHJpYnV0ZSh0KQogICAgICA6IGUuc2V0QXR0cmlidXRlKHQsIGEgPyAiIiA6IGlzU3ltYm9sJDEocikgPyBTdHJpbmcocikgOiByKTsKfQpmdW5jdGlvbiBwYXRjaERPTVByb3AoZSwgdCwgciwgbiwgaSkgewogIGlmICh0ID09PSAiaW5uZXJIVE1MIiB8fCB0ID09PSAidGV4dENvbnRlbnQiKSB7CiAgICByICE9IG51bGwgJiYgKGVbdF0gPSB0ID09PSAiaW5uZXJIVE1MIiA/IHVuc2FmZVRvVHJ1c3RlZEhUTUwocikgOiByKTsKICAgIHJldHVybjsKICB9CiAgY29uc3QgYSA9IGUudGFnTmFtZTsKICBpZiAodCA9PT0gInZhbHVlIiAmJiBhICE9PSAiUFJPR1JFU1MiICYmICFhLmluY2x1ZGVzKCItIikpIHsKICAgIGNvbnN0IGwgPSBhID09PSAiT1BUSU9OIiA/IGUuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpIHx8ICIiIDogZS52YWx1ZSwKICAgICAgYyA9IHIgPT0gbnVsbCA/IChlLnR5cGUgPT09ICJjaGVja2JveCIgPyAib24iIDogIiIpIDogU3RyaW5nKHIpOwogICAgKGwgIT09IGMgfHwgISgiX3ZhbHVlIiBpbiBlKSkgJiYgKGUudmFsdWUgPSBjKSwKICAgICAgciA9PSBudWxsICYmIGUucmVtb3ZlQXR0cmlidXRlKHQpLAogICAgICAoZS5fdmFsdWUgPSByKTsKICAgIHJldHVybjsKICB9CiAgbGV0IG8gPSAhMTsKICBpZiAociA9PT0gIiIgfHwgciA9PSBudWxsKSB7CiAgICBjb25zdCBsID0gdHlwZW9mIGVbdF07CiAgICBsID09PSAiYm9vbGVhbiIKICAgICAgPyAociA9IGluY2x1ZGVCb29sZWFuQXR0cihyKSkKICAgICAgOiByID09IG51bGwgJiYgbCA9PT0gInN0cmluZyIKICAgICAgICA/ICgociA9ICIiKSwgKG8gPSAhMCkpCiAgICAgICAgOiBsID09PSAibnVtYmVyIiAmJiAoKHIgPSAwKSwgKG8gPSAhMCkpOwogIH0KICB0cnkgewogICAgZVt0XSA9IHI7CiAgfSBjYXRjaCB7IH0KICBvICYmIGUucmVtb3ZlQXR0cmlidXRlKGkgfHwgdCk7Cn0KZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcihlLCB0LCByLCBuKSB7CiAgZS5hZGRFdmVudExpc3RlbmVyKHQsIHIsIG4pOwp9CmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIoZSwgdCwgciwgbikgewogIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCByLCBuKTsKfQpjb25zdCB2ZWlLZXkgPSBTeW1ib2woIl92ZWkiKTsKZnVuY3Rpb24gcGF0Y2hFdmVudChlLCB0LCByLCBuLCBpID0gbnVsbCkgewogIGNvbnN0IGEgPSBlW3ZlaUtleV0gfHwgKGVbdmVpS2V5XSA9IHt9KSwKICAgIG8gPSBhW3RdOwogIGlmIChuICYmIG8pIG8udmFsdWUgPSBuOwogIGVsc2UgewogICAgY29uc3QgW2wsIGNdID0gcGFyc2VOYW1lKHQpOwogICAgaWYgKG4pIHsKICAgICAgY29uc3QgdSA9IChhW3RdID0gY3JlYXRlSW52b2tlcihuLCBpKSk7CiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgbCwgdSwgYyk7CiAgICB9IGVsc2UgbyAmJiAocmVtb3ZlRXZlbnRMaXN0ZW5lcihlLCBsLCBvLCBjKSwgKGFbdF0gPSB2b2lkIDApKTsKICB9Cn0KY29uc3Qgb3B0aW9uc01vZGlmaWVyUkUgPSAvKD86T25jZXxQYXNzaXZlfENhcHR1cmUpJC87CmZ1bmN0aW9uIHBhcnNlTmFtZShlKSB7CiAgbGV0IHQ7CiAgaWYgKG9wdGlvbnNNb2RpZmllclJFLnRlc3QoZSkpIHsKICAgIHQgPSB7fTsKICAgIGxldCBuOwogICAgZm9yICg7IChuID0gZS5tYXRjaChvcHRpb25zTW9kaWZpZXJSRSkpOykKICAgICAgKGUgPSBlLnNsaWNlKDAsIGUubGVuZ3RoIC0gblswXS5sZW5ndGgpKSwgKHRbblswXS50b0xvd2VyQ2FzZSgpXSA9ICEwKTsKICB9CiAgcmV0dXJuIFtlWzJdID09PSAiOiIgPyBlLnNsaWNlKDMpIDogaHlwaGVuYXRlKGUuc2xpY2UoMikpLCB0XTsKfQpsZXQgY2FjaGVkTm93ID0gMDsKY29uc3QgcCA9IFByb21pc2UucmVzb2x2ZSgpLAogIGdldE5vdyA9ICgpID0+CiAgICBjYWNoZWROb3cgfHwgKHAudGhlbigoKSA9PiAoY2FjaGVkTm93ID0gMCkpLCAoY2FjaGVkTm93ID0gRGF0ZS5ub3coKSkpOwpmdW5jdGlvbiBjcmVhdGVJbnZva2VyKGUsIHQpIHsKICBjb25zdCByID0gKG4pID0+IHsKICAgIGlmICghbi5fdnRzKSBuLl92dHMgPSBEYXRlLm5vdygpOwogICAgZWxzZSBpZiAobi5fdnRzIDw9IHIuYXR0YWNoZWQpIHJldHVybjsKICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKAogICAgICBwYXRjaFN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbihuLCByLnZhbHVlKSwKICAgICAgdCwKICAgICAgNSwKICAgICAgW25dCiAgICApOwogIH07CiAgcmV0dXJuIChyLnZhbHVlID0gZSksIChyLmF0dGFjaGVkID0gZ2V0Tm93KCkpLCByOwp9CmZ1bmN0aW9uIHBhdGNoU3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKGUsIHQpIHsKICBpZiAoaXNBcnJheSQyKHQpKSB7CiAgICBjb25zdCByID0gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247CiAgICByZXR1cm4gKAogICAgICAoZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gPSAoKSA9PiB7CiAgICAgICAgci5jYWxsKGUpLCAoZS5fc3RvcHBlZCA9ICEwKTsKICAgICAgfSksCiAgICAgIHQubWFwKChuKSA9PiAoaSkgPT4gIWkuX3N0b3BwZWQgJiYgbiAmJiBuKGkpKQogICAgKTsKICB9IGVsc2UgcmV0dXJuIHQ7Cn0KY29uc3QgaXNOYXRpdmVPbiA9IChlKSA9PgogIGUuY2hhckNvZGVBdCgwKSA9PT0gMTExICYmCiAgZS5jaGFyQ29kZUF0KDEpID09PSAxMTAgJiYKICBlLmNoYXJDb2RlQXQoMikgPiA5NiAmJgogIGUuY2hhckNvZGVBdCgyKSA8IDEyMywKICBwYXRjaFByb3AgPSAoZSwgdCwgciwgbiwgaSwgYSkgPT4gewogICAgY29uc3QgbyA9IGkgPT09ICJzdmciOwogICAgdCA9PT0gImNsYXNzIgogICAgICA/IHBhdGNoQ2xhc3MoZSwgbiwgbykKICAgICAgOiB0ID09PSAic3R5bGUiCiAgICAgICAgPyBwYXRjaFN0eWxlKGUsIHIsIG4pCiAgICAgICAgOiBpc09uJDEodCkKICAgICAgICAgID8gaXNNb2RlbExpc3RlbmVyKHQpIHx8IHBhdGNoRXZlbnQoZSwgdCwgciwgbiwgYSkKICAgICAgICAgIDogKAogICAgICAgICAgICB0WzBdID09PSAiLiIKICAgICAgICAgICAgICA/ICgodCA9IHQuc2xpY2UoMSkpLCAhMCkKICAgICAgICAgICAgICA6IHRbMF0gPT09ICJeIgogICAgICAgICAgICAgICAgPyAoKHQgPSB0LnNsaWNlKDEpKSwgITEpCiAgICAgICAgICAgICAgICA6IHNob3VsZFNldEFzUHJvcChlLCB0LCBuLCBvKQogICAgICAgICAgKQogICAgICAgICAgICA/IChwYXRjaERPTVByb3AoZSwgdCwgbiksCiAgICAgICAgICAgICAgIWUudGFnTmFtZS5pbmNsdWRlcygiLSIpICYmCiAgICAgICAgICAgICAgKHQgPT09ICJ2YWx1ZSIgfHwgdCA9PT0gImNoZWNrZWQiIHx8IHQgPT09ICJzZWxlY3RlZCIpICYmCiAgICAgICAgICAgICAgcGF0Y2hBdHRyKGUsIHQsIG4sIG8sIGEsIHQgIT09ICJ2YWx1ZSIpKQogICAgICAgICAgICA6IGUuX2lzVnVlQ0UgJiYgKC9bQS1aXS8udGVzdCh0KSB8fCAhaXNTdHJpbmckMShuKSkKICAgICAgICAgICAgICA/IHBhdGNoRE9NUHJvcChlLCBjYW1lbGl6ZSh0KSwgbiwgYSwgdCkKICAgICAgICAgICAgICA6ICh0ID09PSAidHJ1ZS12YWx1ZSIKICAgICAgICAgICAgICAgID8gKGUuX3RydWVWYWx1ZSA9IG4pCiAgICAgICAgICAgICAgICA6IHQgPT09ICJmYWxzZS12YWx1ZSIgJiYgKGUuX2ZhbHNlVmFsdWUgPSBuKSwKICAgICAgICAgICAgICAgIHBhdGNoQXR0cihlLCB0LCBuLCBvKSk7CiAgfTsKZnVuY3Rpb24gc2hvdWxkU2V0QXNQcm9wKGUsIHQsIHIsIG4pIHsKICBpZiAobikKICAgIHJldHVybiAhISgKICAgICAgdCA9PT0gImlubmVySFRNTCIgfHwKICAgICAgdCA9PT0gInRleHRDb250ZW50IiB8fAogICAgICAodCBpbiBlICYmIGlzTmF0aXZlT24odCkgJiYgaXNGdW5jdGlvbiQxKHIpKQogICAgKTsKICBpZiAoCiAgICB0ID09PSAic3BlbGxjaGVjayIgfHwKICAgIHQgPT09ICJkcmFnZ2FibGUiIHx8CiAgICB0ID09PSAidHJhbnNsYXRlIiB8fAogICAgdCA9PT0gImZvcm0iIHx8CiAgICAodCA9PT0gImxpc3QiICYmIGUudGFnTmFtZSA9PT0gIklOUFVUIikgfHwKICAgICh0ID09PSAidHlwZSIgJiYgZS50YWdOYW1lID09PSAiVEVYVEFSRUEiKQogICkKICAgIHJldHVybiAhMTsKICBpZiAodCA9PT0gIndpZHRoIiB8fCB0ID09PSAiaGVpZ2h0IikgewogICAgY29uc3QgaSA9IGUudGFnTmFtZTsKICAgIGlmIChpID09PSAiSU1HIiB8fCBpID09PSAiVklERU8iIHx8IGkgPT09ICJDQU5WQVMiIHx8IGkgPT09ICJTT1VSQ0UiKQogICAgICByZXR1cm4gITE7CiAgfQogIHJldHVybiBpc05hdGl2ZU9uKHQpICYmIGlzU3RyaW5nJDEocikgPyAhMSA6IHQgaW4gZTsKfQpjb25zdCBSRU1PVkFMID0ge307Ci8qISAjX19OT19TSURFX0VGRkVDVFNfXyAqLyBmdW5jdGlvbiBkZWZpbmVDdXN0b21FbGVtZW50KGUsIHQsIHIpIHsKICBjb25zdCBuID0gZGVmaW5lQ29tcG9uZW50JDEoZSwgdCk7CiAgaXNQbGFpbk9iamVjdCQ0KG4pICYmIGV4dGVuZChuLCB0KTsKICBjbGFzcyBpIGV4dGVuZHMgVnVlRWxlbWVudCB7CiAgICBjb25zdHJ1Y3RvcihvKSB7CiAgICAgIHN1cGVyKG4sIG8sIHIpOwogICAgfQogIH0KICByZXR1cm4gKGkuZGVmID0gbiksIGk7Cn0KLyohICNfX05PX1NJREVfRUZGRUNUU19fICovIGNvbnN0IGRlZmluZVNTUkN1c3RvbUVsZW1lbnQgPSAoZSwgdCkgPT4KICBkZWZpbmVDdXN0b21FbGVtZW50KGUsIHQsIGNyZWF0ZVNTUkFwcCksCiAgQmFzZUNsYXNzID0gdHlwZW9mIEhUTUxFbGVtZW50IDwgInUiID8gSFRNTEVsZW1lbnQgOiBjbGFzcyB7IH07CmNsYXNzIFZ1ZUVsZW1lbnQgZXh0ZW5kcyBCYXNlQ2xhc3MgewogIGNvbnN0cnVjdG9yKHQsIHIgPSB7fSwgbiA9IGNyZWF0ZUFwcCkgewogICAgc3VwZXIoKSwKICAgICAgKHRoaXMuX2RlZiA9IHQpLAogICAgICAodGhpcy5fcHJvcHMgPSByKSwKICAgICAgKHRoaXMuX2NyZWF0ZUFwcCA9IG4pLAogICAgICAodGhpcy5faXNWdWVDRSA9ICEwKSwKICAgICAgKHRoaXMuX2luc3RhbmNlID0gbnVsbCksCiAgICAgICh0aGlzLl9hcHAgPSBudWxsKSwKICAgICAgKHRoaXMuX25vbmNlID0gdGhpcy5fZGVmLm5vbmNlKSwKICAgICAgKHRoaXMuX2Nvbm5lY3RlZCA9ICExKSwKICAgICAgKHRoaXMuX3Jlc29sdmVkID0gITEpLAogICAgICAodGhpcy5fbnVtYmVyUHJvcHMgPSBudWxsKSwKICAgICAgKHRoaXMuX3N0eWxlQ2hpbGRyZW4gPSBuZXcgV2Vha1NldCgpKSwKICAgICAgKHRoaXMuX29iID0gbnVsbCksCiAgICAgIHRoaXMuc2hhZG93Um9vdCAmJiBuICE9PSBjcmVhdGVBcHAKICAgICAgICA/ICh0aGlzLl9yb290ID0gdGhpcy5zaGFkb3dSb290KQogICAgICAgIDogdC5zaGFkb3dSb290ICE9PSAhMQogICAgICAgICAgPyAodGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSksICh0aGlzLl9yb290ID0gdGhpcy5zaGFkb3dSb290KSkKICAgICAgICAgIDogKHRoaXMuX3Jvb3QgPSB0aGlzKSwKICAgICAgdGhpcy5fZGVmLl9fYXN5bmNMb2FkZXIgfHwgdGhpcy5fcmVzb2x2ZVByb3BzKHRoaXMuX2RlZik7CiAgfQogIGNvbm5lY3RlZENhbGxiYWNrKCkgewogICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkKSByZXR1cm47CiAgICB0aGlzLnNoYWRvd1Jvb3QgfHwgdGhpcy5fcGFyc2VTbG90cygpLCAodGhpcy5fY29ubmVjdGVkID0gITApOwogICAgbGV0IHQgPSB0aGlzOwogICAgZm9yICg7ICh0ID0gdCAmJiAodC5wYXJlbnROb2RlIHx8IHQuaG9zdCkpOykKICAgICAgaWYgKHQgaW5zdGFuY2VvZiBWdWVFbGVtZW50KSB7CiAgICAgICAgdGhpcy5fcGFyZW50ID0gdDsKICAgICAgICBicmVhazsKICAgICAgfQogICAgdGhpcy5faW5zdGFuY2UgfHwKICAgICAgKHRoaXMuX3Jlc29sdmVkCiAgICAgICAgPyAodGhpcy5fc2V0UGFyZW50KCksIHRoaXMuX3VwZGF0ZSgpKQogICAgICAgIDogdCAmJiB0Ll9wZW5kaW5nUmVzb2x2ZQogICAgICAgICAgPyAodGhpcy5fcGVuZGluZ1Jlc29sdmUgPSB0Ll9wZW5kaW5nUmVzb2x2ZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgKHRoaXMuX3BlbmRpbmdSZXNvbHZlID0gdm9pZCAwKSwgdGhpcy5fcmVzb2x2ZURlZigpOwogICAgICAgICAgfSkpCiAgICAgICAgICA6IHRoaXMuX3Jlc29sdmVEZWYoKSk7CiAgfQogIF9zZXRQYXJlbnQodCA9IHRoaXMuX3BhcmVudCkgewogICAgdCAmJgogICAgICAoKHRoaXMuX2luc3RhbmNlLnBhcmVudCA9IHQuX2luc3RhbmNlKSwKICAgICAgICAodGhpcy5faW5zdGFuY2UucHJvdmlkZXMgPSB0Ll9pbnN0YW5jZS5wcm92aWRlcykpOwogIH0KICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgICh0aGlzLl9jb25uZWN0ZWQgPSAhMSksCiAgICAgIG5leHRUaWNrKCgpID0+IHsKICAgICAgICB0aGlzLl9jb25uZWN0ZWQgfHwKICAgICAgICAgICh0aGlzLl9vYiAmJiAodGhpcy5fb2IuZGlzY29ubmVjdCgpLCAodGhpcy5fb2IgPSBudWxsKSksCiAgICAgICAgICAgIHRoaXMuX2FwcCAmJiB0aGlzLl9hcHAudW5tb3VudCgpLAogICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSAmJiAodGhpcy5faW5zdGFuY2UuY2UgPSB2b2lkIDApLAogICAgICAgICAgICAodGhpcy5fYXBwID0gdGhpcy5faW5zdGFuY2UgPSBudWxsKSk7CiAgICAgIH0pOwogIH0KICBfcmVzb2x2ZURlZigpIHsKICAgIGlmICh0aGlzLl9wZW5kaW5nUmVzb2x2ZSkgcmV0dXJuOwogICAgZm9yIChsZXQgbiA9IDA7IG4gPCB0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoOyBuKyspCiAgICAgIHRoaXMuX3NldEF0dHIodGhpcy5hdHRyaWJ1dGVzW25dLm5hbWUpOwogICAgKHRoaXMuX29iID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG4pID0+IHsKICAgICAgZm9yIChjb25zdCBpIG9mIG4pIHRoaXMuX3NldEF0dHIoaS5hdHRyaWJ1dGVOYW1lKTsKICAgIH0pKSwKICAgICAgdGhpcy5fb2Iub2JzZXJ2ZSh0aGlzLCB7IGF0dHJpYnV0ZXM6ICEwIH0pOwogICAgY29uc3QgdCA9IChuLCBpID0gITEpID0+IHsKICAgICAgKHRoaXMuX3Jlc29sdmVkID0gITApLCAodGhpcy5fcGVuZGluZ1Jlc29sdmUgPSB2b2lkIDApOwogICAgICBjb25zdCB7IHByb3BzOiBhLCBzdHlsZXM6IG8gfSA9IG47CiAgICAgIGxldCBsOwogICAgICBpZiAoYSAmJiAhaXNBcnJheSQyKGEpKQogICAgICAgIGZvciAoY29uc3QgYyBpbiBhKSB7CiAgICAgICAgICBjb25zdCB1ID0gYVtjXTsKICAgICAgICAgICh1ID09PSBOdW1iZXIgfHwgKHUgJiYgdS50eXBlID09PSBOdW1iZXIpKSAmJgogICAgICAgICAgICAoYyBpbiB0aGlzLl9wcm9wcyAmJiAodGhpcy5fcHJvcHNbY10gPSB0b051bWJlcih0aGlzLl9wcm9wc1tjXSkpLAogICAgICAgICAgICAgICgobCB8fCAobCA9IE9iamVjdC5jcmVhdGUobnVsbCkpKVtjYW1lbGl6ZShjKV0gPSAhMCkpOwogICAgICAgIH0KICAgICAgKHRoaXMuX251bWJlclByb3BzID0gbCksCiAgICAgICAgaSAmJiB0aGlzLl9yZXNvbHZlUHJvcHMobiksCiAgICAgICAgdGhpcy5zaGFkb3dSb290ICYmIHRoaXMuX2FwcGx5U3R5bGVzKG8pLAogICAgICAgIHRoaXMuX21vdW50KG4pOwogICAgfSwKICAgICAgciA9IHRoaXMuX2RlZi5fX2FzeW5jTG9hZGVyOwogICAgcgogICAgICA/ICh0aGlzLl9wZW5kaW5nUmVzb2x2ZSA9IHIoKS50aGVuKChuKSA9PiB0KCh0aGlzLl9kZWYgPSBuKSwgITApKSkKICAgICAgOiB0KHRoaXMuX2RlZik7CiAgfQogIF9tb3VudCh0KSB7CiAgICAodGhpcy5fYXBwID0gdGhpcy5fY3JlYXRlQXBwKHQpKSwKICAgICAgdC5jb25maWd1cmVBcHAgJiYgdC5jb25maWd1cmVBcHAodGhpcy5fYXBwKSwKICAgICAgKHRoaXMuX2FwcC5fY2VWTm9kZSA9IHRoaXMuX2NyZWF0ZVZOb2RlKCkpLAogICAgICB0aGlzLl9hcHAubW91bnQodGhpcy5fcm9vdCk7CiAgICBjb25zdCByID0gdGhpcy5faW5zdGFuY2UgJiYgdGhpcy5faW5zdGFuY2UuZXhwb3NlZDsKICAgIGlmIChyKQogICAgICBmb3IgKGNvbnN0IG4gaW4gcikKICAgICAgICBoYXNPd24kMSh0aGlzLCBuKSB8fAogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIG4sIHsgZ2V0OiAoKSA9PiB1bnJlZihyW25dKSB9KTsKICB9CiAgX3Jlc29sdmVQcm9wcyh0KSB7CiAgICBjb25zdCB7IHByb3BzOiByIH0gPSB0LAogICAgICBuID0gaXNBcnJheSQyKHIpID8gciA6IE9iamVjdC5rZXlzKHIgfHwge30pOwogICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHRoaXMpKQogICAgICBpWzBdICE9PSAiXyIgJiYgbi5pbmNsdWRlcyhpKSAmJiB0aGlzLl9zZXRQcm9wKGksIHRoaXNbaV0pOwogICAgZm9yIChjb25zdCBpIG9mIG4ubWFwKGNhbWVsaXplKSkKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGksIHsKICAgICAgICBnZXQoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UHJvcChpKTsKICAgICAgICB9LAogICAgICAgIHNldChhKSB7CiAgICAgICAgICB0aGlzLl9zZXRQcm9wKGksIGEsICEwLCAhMCk7CiAgICAgICAgfSwKICAgICAgfSk7CiAgfQogIF9zZXRBdHRyKHQpIHsKICAgIGlmICh0LnN0YXJ0c1dpdGgoImRhdGEtdi0iKSkgcmV0dXJuOwogICAgY29uc3QgciA9IHRoaXMuaGFzQXR0cmlidXRlKHQpOwogICAgbGV0IG4gPSByID8gdGhpcy5nZXRBdHRyaWJ1dGUodCkgOiBSRU1PVkFMOwogICAgY29uc3QgaSA9IGNhbWVsaXplKHQpOwogICAgciAmJiB0aGlzLl9udW1iZXJQcm9wcyAmJiB0aGlzLl9udW1iZXJQcm9wc1tpXSAmJiAobiA9IHRvTnVtYmVyKG4pKSwKICAgICAgdGhpcy5fc2V0UHJvcChpLCBuLCAhMSwgITApOwogIH0KICBfZ2V0UHJvcCh0KSB7CiAgICByZXR1cm4gdGhpcy5fcHJvcHNbdF07CiAgfQogIF9zZXRQcm9wKHQsIHIsIG4gPSAhMCwgaSA9ICExKSB7CiAgICBpZiAoCiAgICAgIHIgIT09IHRoaXMuX3Byb3BzW3RdICYmCiAgICAgIChyID09PSBSRU1PVkFMCiAgICAgICAgPyBkZWxldGUgdGhpcy5fcHJvcHNbdF0KICAgICAgICA6ICgodGhpcy5fcHJvcHNbdF0gPSByKSwKICAgICAgICAgIHQgPT09ICJrZXkiICYmIHRoaXMuX2FwcCAmJiAodGhpcy5fYXBwLl9jZVZOb2RlLmtleSA9IHIpKSwKICAgICAgICBpICYmIHRoaXMuX2luc3RhbmNlICYmIHRoaXMuX3VwZGF0ZSgpLAogICAgICAgIG4pCiAgICApIHsKICAgICAgY29uc3QgYSA9IHRoaXMuX29iOwogICAgICBhICYmIGEuZGlzY29ubmVjdCgpLAogICAgICAgIHIgPT09ICEwCiAgICAgICAgICA/IHRoaXMuc2V0QXR0cmlidXRlKGh5cGhlbmF0ZSh0KSwgIiIpCiAgICAgICAgICA6IHR5cGVvZiByID09ICJzdHJpbmciIHx8IHR5cGVvZiByID09ICJudW1iZXIiCiAgICAgICAgICAgID8gdGhpcy5zZXRBdHRyaWJ1dGUoaHlwaGVuYXRlKHQpLCByICsgIiIpCiAgICAgICAgICAgIDogciB8fCB0aGlzLnJlbW92ZUF0dHJpYnV0ZShoeXBoZW5hdGUodCkpLAogICAgICAgIGEgJiYgYS5vYnNlcnZlKHRoaXMsIHsgYXR0cmlidXRlczogITAgfSk7CiAgICB9CiAgfQogIF91cGRhdGUoKSB7CiAgICByZW5kZXIodGhpcy5fY3JlYXRlVk5vZGUoKSwgdGhpcy5fcm9vdCk7CiAgfQogIF9jcmVhdGVWTm9kZSgpIHsKICAgIGNvbnN0IHQgPSB7fTsKICAgIHRoaXMuc2hhZG93Um9vdCB8fAogICAgICAodC5vblZub2RlTW91bnRlZCA9IHQub25Wbm9kZVVwZGF0ZWQgPSB0aGlzLl9yZW5kZXJTbG90cy5iaW5kKHRoaXMpKTsKICAgIGNvbnN0IHIgPSBjcmVhdGVWTm9kZSh0aGlzLl9kZWYsIGV4dGVuZCh0LCB0aGlzLl9wcm9wcykpOwogICAgcmV0dXJuICgKICAgICAgdGhpcy5faW5zdGFuY2UgfHwKICAgICAgKHIuY2UgPSAobikgPT4gewogICAgICAgICh0aGlzLl9pbnN0YW5jZSA9IG4pLCAobi5jZSA9IHRoaXMpLCAobi5pc0NFID0gITApOwogICAgICAgIGNvbnN0IGkgPSAoYSwgbykgPT4gewogICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KAogICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBpc1BsYWluT2JqZWN0JDQob1swXSkKICAgICAgICAgICAgICAgID8gZXh0ZW5kKHsgZGV0YWlsOiBvIH0sIG9bMF0pCiAgICAgICAgICAgICAgICA6IHsgZGV0YWlsOiBvIH0KICAgICAgICAgICAgKQogICAgICAgICAgKTsKICAgICAgICB9OwogICAgICAgIChuLmVtaXQgPSAoYSwgLi4ubykgPT4gewogICAgICAgICAgaShhLCBvKSwgaHlwaGVuYXRlKGEpICE9PSBhICYmIGkoaHlwaGVuYXRlKGEpLCBvKTsKICAgICAgICB9KSwKICAgICAgICAgIHRoaXMuX3NldFBhcmVudCgpOwogICAgICB9KSwKICAgICAgcgogICAgKTsKICB9CiAgX2FwcGx5U3R5bGVzKHQsIHIpIHsKICAgIGlmICghdCkgcmV0dXJuOwogICAgaWYgKHIpIHsKICAgICAgaWYgKHIgPT09IHRoaXMuX2RlZiB8fCB0aGlzLl9zdHlsZUNoaWxkcmVuLmhhcyhyKSkgcmV0dXJuOwogICAgICB0aGlzLl9zdHlsZUNoaWxkcmVuLmFkZChyKTsKICAgIH0KICAgIGNvbnN0IG4gPSB0aGlzLl9ub25jZTsKICAgIGZvciAobGV0IGkgPSB0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOwogICAgICBuICYmIGEuc2V0QXR0cmlidXRlKCJub25jZSIsIG4pLAogICAgICAgIChhLnRleHRDb250ZW50ID0gdFtpXSksCiAgICAgICAgdGhpcy5zaGFkb3dSb290LnByZXBlbmQoYSk7CiAgICB9CiAgfQogIF9wYXJzZVNsb3RzKCkgewogICAgY29uc3QgdCA9ICh0aGlzLl9zbG90cyA9IHt9KTsKICAgIGxldCByOwogICAgZm9yICg7IChyID0gdGhpcy5maXJzdENoaWxkKTspIHsKICAgICAgY29uc3QgbiA9IChyLm5vZGVUeXBlID09PSAxICYmIHIuZ2V0QXR0cmlidXRlKCJzbG90IikpIHx8ICJkZWZhdWx0IjsKICAgICAgKHRbbl0gfHwgKHRbbl0gPSBbXSkpLnB1c2gociksIHRoaXMucmVtb3ZlQ2hpbGQocik7CiAgICB9CiAgfQogIF9yZW5kZXJTbG90cygpIHsKICAgIGNvbnN0IHQgPSAodGhpcy5fdGVsZXBvcnRUYXJnZXQgfHwgdGhpcykucXVlcnlTZWxlY3RvckFsbCgic2xvdCIpLAogICAgICByID0gdGhpcy5faW5zdGFuY2UudHlwZS5fX3Njb3BlSWQ7CiAgICBmb3IgKGxldCBuID0gMDsgbiA8IHQubGVuZ3RoOyBuKyspIHsKICAgICAgY29uc3QgaSA9IHRbbl0sCiAgICAgICAgYSA9IGkuZ2V0QXR0cmlidXRlKCJuYW1lIikgfHwgImRlZmF1bHQiLAogICAgICAgIG8gPSB0aGlzLl9zbG90c1thXSwKICAgICAgICBsID0gaS5wYXJlbnROb2RlOwogICAgICBpZiAobykKICAgICAgICBmb3IgKGNvbnN0IGMgb2YgbykgewogICAgICAgICAgaWYgKHIgJiYgYy5ub2RlVHlwZSA9PT0gMSkgewogICAgICAgICAgICBjb25zdCB1ID0gciArICItcyIsCiAgICAgICAgICAgICAgZCA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYywgMSk7CiAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKHUsICIiKTsKICAgICAgICAgICAgbGV0IEU7CiAgICAgICAgICAgIGZvciAoOyAoRSA9IGQubmV4dE5vZGUoKSk7KSBFLnNldEF0dHJpYnV0ZSh1LCAiIik7CiAgICAgICAgICB9CiAgICAgICAgICBsLmluc2VydEJlZm9yZShjLCBpKTsKICAgICAgICB9CiAgICAgIGVsc2UgZm9yICg7IGkuZmlyc3RDaGlsZDspIGwuaW5zZXJ0QmVmb3JlKGkuZmlyc3RDaGlsZCwgaSk7CiAgICAgIGwucmVtb3ZlQ2hpbGQoaSk7CiAgICB9CiAgfQogIF9pbmplY3RDaGlsZFN0eWxlKHQpIHsKICAgIHRoaXMuX2FwcGx5U3R5bGVzKHQuc3R5bGVzLCB0KTsKICB9CiAgX3JlbW92ZUNoaWxkU3R5bGUodCkgeyB9Cn0KZnVuY3Rpb24gdXNlSG9zdChlKSB7CiAgY29uc3QgdCA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICByID0gdCAmJiB0LmNlOwogIHJldHVybiByIHx8IG51bGw7Cn0KZnVuY3Rpb24gdXNlU2hhZG93Um9vdCgpIHsKICBjb25zdCBlID0gdXNlSG9zdCgpOwogIHJldHVybiBlICYmIGUuc2hhZG93Um9vdDsKfQpmdW5jdGlvbiB1c2VDc3NNb2R1bGUoZSA9ICIkc3R5bGUiKSB7CiAgewogICAgY29uc3QgdCA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCk7CiAgICBpZiAoIXQpIHJldHVybiBFTVBUWV9PQko7CiAgICBjb25zdCByID0gdC50eXBlLl9fY3NzTW9kdWxlczsKICAgIGlmICghcikgcmV0dXJuIEVNUFRZX09CSjsKICAgIGNvbnN0IG4gPSByW2VdOwogICAgcmV0dXJuIG4gfHwgRU1QVFlfT0JKOwogIH0KfQpjb25zdCBwb3NpdGlvbk1hcCA9IG5ldyBXZWFrTWFwKCksCiAgbmV3UG9zaXRpb25NYXAgPSBuZXcgV2Vha01hcCgpLAogIG1vdmVDYktleSA9IFN5bWJvbCgiX21vdmVDYiIpLAogIGVudGVyQ2JLZXkgPSBTeW1ib2woIl9lbnRlckNiIiksCiAgZGVjb3JhdGUgPSAoZSkgPT4gKGRlbGV0ZSBlLnByb3BzLm1vZGUsIGUpLAogIFRyYW5zaXRpb25Hcm91cEltcGwgPSBkZWNvcmF0ZSh7CiAgICBuYW1lOiAiVHJhbnNpdGlvbkdyb3VwIiwKICAgIHByb3BzOiBleHRlbmQoe30sIFRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsIHsKICAgICAgdGFnOiBTdHJpbmcsCiAgICAgIG1vdmVDbGFzczogU3RyaW5nLAogICAgfSksCiAgICBzZXR1cChlLCB7IHNsb3RzOiB0IH0pIHsKICAgICAgY29uc3QgciA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICAgICAgbiA9IHVzZVRyYW5zaXRpb25TdGF0ZSgpOwogICAgICBsZXQgaSwgYTsKICAgICAgcmV0dXJuICgKICAgICAgICBvblVwZGF0ZWQoKCkgPT4gewogICAgICAgICAgaWYgKCFpLmxlbmd0aCkgcmV0dXJuOwogICAgICAgICAgY29uc3QgbyA9IGUubW92ZUNsYXNzIHx8IGAke2UubmFtZSB8fCAidiJ9LW1vdmVgOwogICAgICAgICAgaWYgKCFoYXNDU1NUcmFuc2Zvcm0oaVswXS5lbCwgci52bm9kZS5lbCwgbykpIHJldHVybjsKICAgICAgICAgIGkuZm9yRWFjaChjYWxsUGVuZGluZ0NicyksIGkuZm9yRWFjaChyZWNvcmRQb3NpdGlvbik7CiAgICAgICAgICBjb25zdCBsID0gaS5maWx0ZXIoYXBwbHlUcmFuc2xhdGlvbik7CiAgICAgICAgICBmb3JjZVJlZmxvdygpLAogICAgICAgICAgICBsLmZvckVhY2goKGMpID0+IHsKICAgICAgICAgICAgICBjb25zdCB1ID0gYy5lbCwKICAgICAgICAgICAgICAgIGQgPSB1LnN0eWxlOwogICAgICAgICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyh1LCBvKSwKICAgICAgICAgICAgICAgIChkLnRyYW5zZm9ybSA9IGQud2Via2l0VHJhbnNmb3JtID0gZC50cmFuc2l0aW9uRHVyYXRpb24gPSAiIik7CiAgICAgICAgICAgICAgY29uc3QgRSA9ICh1W21vdmVDYktleV0gPSAoYikgPT4gewogICAgICAgICAgICAgICAgKGIgJiYgYi50YXJnZXQgIT09IHUpIHx8CiAgICAgICAgICAgICAgICAgICgoIWIgfHwgL3RyYW5zZm9ybSQvLnRlc3QoYi5wcm9wZXJ0eU5hbWUpKSAmJgogICAgICAgICAgICAgICAgICAgICh1LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCBFKSwKICAgICAgICAgICAgICAgICAgICAgICh1W21vdmVDYktleV0gPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyh1LCBvKSkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHUuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIEUpOwogICAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBjb25zdCBvID0gdG9SYXcoZSksCiAgICAgICAgICAgIGwgPSByZXNvbHZlVHJhbnNpdGlvblByb3BzKG8pOwogICAgICAgICAgbGV0IGMgPSBvLnRhZyB8fCBGcmFnbWVudDsKICAgICAgICAgIGlmICgoKGkgPSBbXSksIGEpKQogICAgICAgICAgICBmb3IgKGxldCB1ID0gMDsgdSA8IGEubGVuZ3RoOyB1KyspIHsKICAgICAgICAgICAgICBjb25zdCBkID0gYVt1XTsKICAgICAgICAgICAgICBkLmVsICYmCiAgICAgICAgICAgICAgICBkLmVsIGluc3RhbmNlb2YgRWxlbWVudCAmJgogICAgICAgICAgICAgICAgKGkucHVzaChkKSwKICAgICAgICAgICAgICAgICAgc2V0VHJhbnNpdGlvbkhvb2tzKGQsIHJlc29sdmVUcmFuc2l0aW9uSG9va3MoZCwgbCwgbiwgcikpLAogICAgICAgICAgICAgICAgICBwb3NpdGlvbk1hcC5zZXQoZCwgZC5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkpOwogICAgICAgICAgICB9CiAgICAgICAgICBhID0gdC5kZWZhdWx0ID8gZ2V0VHJhbnNpdGlvblJhd0NoaWxkcmVuKHQuZGVmYXVsdCgpKSA6IFtdOwogICAgICAgICAgZm9yIChsZXQgdSA9IDA7IHUgPCBhLmxlbmd0aDsgdSsrKSB7CiAgICAgICAgICAgIGNvbnN0IGQgPSBhW3VdOwogICAgICAgICAgICBkLmtleSAhPSBudWxsICYmCiAgICAgICAgICAgICAgc2V0VHJhbnNpdGlvbkhvb2tzKGQsIHJlc29sdmVUcmFuc2l0aW9uSG9va3MoZCwgbCwgbiwgcikpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNyZWF0ZVZOb2RlKGMsIG51bGwsIGEpOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSksCiAgVHJhbnNpdGlvbkdyb3VwID0gVHJhbnNpdGlvbkdyb3VwSW1wbDsKZnVuY3Rpb24gY2FsbFBlbmRpbmdDYnMoZSkgewogIGNvbnN0IHQgPSBlLmVsOwogIHRbbW92ZUNiS2V5XSAmJiB0W21vdmVDYktleV0oKSwgdFtlbnRlckNiS2V5XSAmJiB0W2VudGVyQ2JLZXldKCk7Cn0KZnVuY3Rpb24gcmVjb3JkUG9zaXRpb24oZSkgewogIG5ld1Bvc2l0aW9uTWFwLnNldChlLCBlLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKfQpmdW5jdGlvbiBhcHBseVRyYW5zbGF0aW9uKGUpIHsKICBjb25zdCB0ID0gcG9zaXRpb25NYXAuZ2V0KGUpLAogICAgciA9IG5ld1Bvc2l0aW9uTWFwLmdldChlKSwKICAgIG4gPSB0LmxlZnQgLSByLmxlZnQsCiAgICBpID0gdC50b3AgLSByLnRvcDsKICBpZiAobiB8fCBpKSB7CiAgICBjb25zdCBhID0gZS5lbC5zdHlsZTsKICAgIHJldHVybiAoCiAgICAgIChhLnRyYW5zZm9ybSA9IGEud2Via2l0VHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke259cHgsJHtpfXB4KWApLAogICAgICAoYS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMHMiKSwKICAgICAgZQogICAgKTsKICB9Cn0KZnVuY3Rpb24gaGFzQ1NTVHJhbnNmb3JtKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS5jbG9uZU5vZGUoKSwKICAgIGkgPSBlW3Z0Y0tleV07CiAgaSAmJgogICAgaS5mb3JFYWNoKChsKSA9PiB7CiAgICAgIGwuc3BsaXQoL1xzKy8pLmZvckVhY2goKGMpID0+IGMgJiYgbi5jbGFzc0xpc3QucmVtb3ZlKGMpKTsKICAgIH0pLAogICAgci5zcGxpdCgvXHMrLykuZm9yRWFjaCgobCkgPT4gbCAmJiBuLmNsYXNzTGlzdC5hZGQobCkpLAogICAgKG4uc3R5bGUuZGlzcGxheSA9ICJub25lIik7CiAgY29uc3QgYSA9IHQubm9kZVR5cGUgPT09IDEgPyB0IDogdC5wYXJlbnROb2RlOwogIGEuYXBwZW5kQ2hpbGQobik7CiAgY29uc3QgeyBoYXNUcmFuc2Zvcm06IG8gfSA9IGdldFRyYW5zaXRpb25JbmZvKG4pOwogIHJldHVybiBhLnJlbW92ZUNoaWxkKG4pLCBvOwp9CmNvbnN0IGdldE1vZGVsQXNzaWduZXIgPSAoZSkgPT4gewogIGNvbnN0IHQgPSBlLnByb3BzWyJvblVwZGF0ZTptb2RlbFZhbHVlIl0gfHwgITE7CiAgcmV0dXJuIGlzQXJyYXkkMih0KSA/IChyKSA9PiBpbnZva2VBcnJheUZucyh0LCByKSA6IHQ7Cn07CmZ1bmN0aW9uIG9uQ29tcG9zaXRpb25TdGFydChlKSB7CiAgZS50YXJnZXQuY29tcG9zaW5nID0gITA7Cn0KZnVuY3Rpb24gb25Db21wb3NpdGlvbkVuZChlKSB7CiAgY29uc3QgdCA9IGUudGFyZ2V0OwogIHQuY29tcG9zaW5nICYmICgodC5jb21wb3NpbmcgPSAhMSksIHQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpKTsKfQpjb25zdCBhc3NpZ25LZXkgPSBTeW1ib2woIl9hc3NpZ24iKSwKICB2TW9kZWxUZXh0ID0gewogICAgY3JlYXRlZChlLCB7IG1vZGlmaWVyczogeyBsYXp5OiB0LCB0cmltOiByLCBudW1iZXI6IG4gfSB9LCBpKSB7CiAgICAgIGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIoaSk7CiAgICAgIGNvbnN0IGEgPSBuIHx8IChpLnByb3BzICYmIGkucHJvcHMudHlwZSA9PT0gIm51bWJlciIpOwogICAgICBhZGRFdmVudExpc3RlbmVyKGUsIHQgPyAiY2hhbmdlIiA6ICJpbnB1dCIsIChvKSA9PiB7CiAgICAgICAgaWYgKG8udGFyZ2V0LmNvbXBvc2luZykgcmV0dXJuOwogICAgICAgIGxldCBsID0gZS52YWx1ZTsKICAgICAgICByICYmIChsID0gbC50cmltKCkpLCBhICYmIChsID0gbG9vc2VUb051bWJlcihsKSksIGVbYXNzaWduS2V5XShsKTsKICAgICAgfSksCiAgICAgICAgciAmJgogICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsICgpID0+IHsKICAgICAgICAgIGUudmFsdWUgPSBlLnZhbHVlLnRyaW0oKTsKICAgICAgICB9KSwKICAgICAgICB0IHx8CiAgICAgICAgKGFkZEV2ZW50TGlzdGVuZXIoZSwgImNvbXBvc2l0aW9uc3RhcnQiLCBvbkNvbXBvc2l0aW9uU3RhcnQpLAogICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcihlLCAiY29tcG9zaXRpb25lbmQiLCBvbkNvbXBvc2l0aW9uRW5kKSwKICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsIG9uQ29tcG9zaXRpb25FbmQpKTsKICAgIH0sCiAgICBtb3VudGVkKGUsIHsgdmFsdWU6IHQgfSkgewogICAgICBlLnZhbHVlID0gdCA/PyAiIjsKICAgIH0sCiAgICBiZWZvcmVVcGRhdGUoCiAgICAgIGUsCiAgICAgIHsgdmFsdWU6IHQsIG9sZFZhbHVlOiByLCBtb2RpZmllcnM6IHsgbGF6eTogbiwgdHJpbTogaSwgbnVtYmVyOiBhIH0gfSwKICAgICAgbwogICAgKSB7CiAgICAgIGlmICgoKGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIobykpLCBlLmNvbXBvc2luZykpIHJldHVybjsKICAgICAgY29uc3QgbCA9CiAgICAgICAgKGEgfHwgZS50eXBlID09PSAibnVtYmVyIikgJiYgIS9eMFxkLy50ZXN0KGUudmFsdWUpCiAgICAgICAgICA/IGxvb3NlVG9OdW1iZXIoZS52YWx1ZSkKICAgICAgICAgIDogZS52YWx1ZSwKICAgICAgICBjID0gdCA/PyAiIjsKICAgICAgbCAhPT0gYyAmJgogICAgICAgICgoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZSAmJgogICAgICAgICAgZS50eXBlICE9PSAicmFuZ2UiICYmCiAgICAgICAgICAoKG4gJiYgdCA9PT0gcikgfHwgKGkgJiYgZS52YWx1ZS50cmltKCkgPT09IGMpKSkgfHwKICAgICAgICAgIChlLnZhbHVlID0gYykpOwogICAgfSwKICB9LAogIHZNb2RlbENoZWNrYm94ID0gewogICAgZGVlcDogITAsCiAgICBjcmVhdGVkKGUsIHQsIHIpIHsKICAgICAgKGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIocikpLAogICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsICgpID0+IHsKICAgICAgICAgIGNvbnN0IG4gPSBlLl9tb2RlbFZhbHVlLAogICAgICAgICAgICBpID0gZ2V0VmFsdWUoZSksCiAgICAgICAgICAgIGEgPSBlLmNoZWNrZWQsCiAgICAgICAgICAgIG8gPSBlW2Fzc2lnbktleV07CiAgICAgICAgICBpZiAoaXNBcnJheSQyKG4pKSB7CiAgICAgICAgICAgIGNvbnN0IGwgPSBsb29zZUluZGV4T2YobiwgaSksCiAgICAgICAgICAgICAgYyA9IGwgIT09IC0xOwogICAgICAgICAgICBpZiAoYSAmJiAhYykgbyhuLmNvbmNhdChpKSk7CiAgICAgICAgICAgIGVsc2UgaWYgKCFhICYmIGMpIHsKICAgICAgICAgICAgICBjb25zdCB1ID0gWy4uLm5dOwogICAgICAgICAgICAgIHUuc3BsaWNlKGwsIDEpLCBvKHUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGlzU2V0KG4pKSB7CiAgICAgICAgICAgIGNvbnN0IGwgPSBuZXcgU2V0KG4pOwogICAgICAgICAgICBhID8gbC5hZGQoaSkgOiBsLmRlbGV0ZShpKSwgbyhsKTsKICAgICAgICAgIH0gZWxzZSBvKGdldENoZWNrYm94VmFsdWUoZSwgYSkpOwogICAgICAgIH0pOwogICAgfSwKICAgIG1vdW50ZWQ6IHNldENoZWNrZWQsCiAgICBiZWZvcmVVcGRhdGUoZSwgdCwgcikgewogICAgICAoZVthc3NpZ25LZXldID0gZ2V0TW9kZWxBc3NpZ25lcihyKSksIHNldENoZWNrZWQoZSwgdCwgcik7CiAgICB9LAogIH07CmZ1bmN0aW9uIHNldENoZWNrZWQoZSwgeyB2YWx1ZTogdCwgb2xkVmFsdWU6IHIgfSwgbikgewogIGUuX21vZGVsVmFsdWUgPSB0OwogIGxldCBpOwogIGlmIChpc0FycmF5JDIodCkpIGkgPSBsb29zZUluZGV4T2YodCwgbi5wcm9wcy52YWx1ZSkgPiAtMTsKICBlbHNlIGlmIChpc1NldCh0KSkgaSA9IHQuaGFzKG4ucHJvcHMudmFsdWUpOwogIGVsc2UgewogICAgaWYgKHQgPT09IHIpIHJldHVybjsKICAgIGkgPSBsb29zZUVxdWFsKHQsIGdldENoZWNrYm94VmFsdWUoZSwgITApKTsKICB9CiAgZS5jaGVja2VkICE9PSBpICYmIChlLmNoZWNrZWQgPSBpKTsKfQpjb25zdCB2TW9kZWxSYWRpbyA9IHsKICBjcmVhdGVkKGUsIHsgdmFsdWU6IHQgfSwgcikgewogICAgKGUuY2hlY2tlZCA9IGxvb3NlRXF1YWwodCwgci5wcm9wcy52YWx1ZSkpLAogICAgICAoZVthc3NpZ25LZXldID0gZ2V0TW9kZWxBc3NpZ25lcihyKSksCiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsICgpID0+IHsKICAgICAgICBlW2Fzc2lnbktleV0oZ2V0VmFsdWUoZSkpOwogICAgICB9KTsKICB9LAogIGJlZm9yZVVwZGF0ZShlLCB7IHZhbHVlOiB0LCBvbGRWYWx1ZTogciB9LCBuKSB7CiAgICAoZVthc3NpZ25LZXldID0gZ2V0TW9kZWxBc3NpZ25lcihuKSksCiAgICAgIHQgIT09IHIgJiYgKGUuY2hlY2tlZCA9IGxvb3NlRXF1YWwodCwgbi5wcm9wcy52YWx1ZSkpOwogIH0sCn0sCiAgdk1vZGVsU2VsZWN0ID0gewogICAgZGVlcDogITAsCiAgICBjcmVhdGVkKGUsIHsgdmFsdWU6IHQsIG1vZGlmaWVyczogeyBudW1iZXI6IHIgfSB9LCBuKSB7CiAgICAgIGNvbnN0IGkgPSBpc1NldCh0KTsKICAgICAgYWRkRXZlbnRMaXN0ZW5lcihlLCAiY2hhbmdlIiwgKCkgPT4gewogICAgICAgIGNvbnN0IGEgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyCiAgICAgICAgICAuY2FsbChlLm9wdGlvbnMsIChvKSA9PiBvLnNlbGVjdGVkKQogICAgICAgICAgLm1hcCgobykgPT4gKHIgPyBsb29zZVRvTnVtYmVyKGdldFZhbHVlKG8pKSA6IGdldFZhbHVlKG8pKSk7CiAgICAgICAgZVthc3NpZ25LZXldKGUubXVsdGlwbGUgPyAoaSA/IG5ldyBTZXQoYSkgOiBhKSA6IGFbMF0pLAogICAgICAgICAgKGUuX2Fzc2lnbmluZyA9ICEwKSwKICAgICAgICAgIG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgZS5fYXNzaWduaW5nID0gITE7CiAgICAgICAgICB9KTsKICAgICAgfSksCiAgICAgICAgKGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIobikpOwogICAgfSwKICAgIG1vdW50ZWQoZSwgeyB2YWx1ZTogdCB9KSB7CiAgICAgIHNldFNlbGVjdGVkKGUsIHQpOwogICAgfSwKICAgIGJlZm9yZVVwZGF0ZShlLCB0LCByKSB7CiAgICAgIGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIocik7CiAgICB9LAogICAgdXBkYXRlZChlLCB7IHZhbHVlOiB0IH0pIHsKICAgICAgZS5fYXNzaWduaW5nIHx8IHNldFNlbGVjdGVkKGUsIHQpOwogICAgfSwKICB9OwpmdW5jdGlvbiBzZXRTZWxlY3RlZChlLCB0KSB7CiAgY29uc3QgciA9IGUubXVsdGlwbGUsCiAgICBuID0gaXNBcnJheSQyKHQpOwogIGlmICghKHIgJiYgIW4gJiYgIWlzU2V0KHQpKSkgewogICAgZm9yIChsZXQgaSA9IDAsIGEgPSBlLm9wdGlvbnMubGVuZ3RoOyBpIDwgYTsgaSsrKSB7CiAgICAgIGNvbnN0IG8gPSBlLm9wdGlvbnNbaV0sCiAgICAgICAgbCA9IGdldFZhbHVlKG8pOwogICAgICBpZiAocikKICAgICAgICBpZiAobikgewogICAgICAgICAgY29uc3QgYyA9IHR5cGVvZiBsOwogICAgICAgICAgYyA9PT0gInN0cmluZyIgfHwgYyA9PT0gIm51bWJlciIKICAgICAgICAgICAgPyAoby5zZWxlY3RlZCA9IHQuc29tZSgodSkgPT4gU3RyaW5nKHUpID09PSBTdHJpbmcobCkpKQogICAgICAgICAgICA6IChvLnNlbGVjdGVkID0gbG9vc2VJbmRleE9mKHQsIGwpID4gLTEpOwogICAgICAgIH0gZWxzZSBvLnNlbGVjdGVkID0gdC5oYXMobCk7CiAgICAgIGVsc2UgaWYgKGxvb3NlRXF1YWwoZ2V0VmFsdWUobyksIHQpKSB7CiAgICAgICAgZS5zZWxlY3RlZEluZGV4ICE9PSBpICYmIChlLnNlbGVjdGVkSW5kZXggPSBpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICAgICFyICYmIGUuc2VsZWN0ZWRJbmRleCAhPT0gLTEgJiYgKGUuc2VsZWN0ZWRJbmRleCA9IC0xKTsKICB9Cn0KZnVuY3Rpb24gZ2V0VmFsdWUoZSkgewogIHJldHVybiAiX3ZhbHVlIiBpbiBlID8gZS5fdmFsdWUgOiBlLnZhbHVlOwp9CmZ1bmN0aW9uIGdldENoZWNrYm94VmFsdWUoZSwgdCkgewogIGNvbnN0IHIgPSB0ID8gIl90cnVlVmFsdWUiIDogIl9mYWxzZVZhbHVlIjsKICByZXR1cm4gciBpbiBlID8gZVtyXSA6IHQ7Cn0KY29uc3Qgdk1vZGVsRHluYW1pYyA9IHsKICBjcmVhdGVkKGUsIHQsIHIpIHsKICAgIGNhbGxNb2RlbEhvb2soZSwgdCwgciwgbnVsbCwgImNyZWF0ZWQiKTsKICB9LAogIG1vdW50ZWQoZSwgdCwgcikgewogICAgY2FsbE1vZGVsSG9vayhlLCB0LCByLCBudWxsLCAibW91bnRlZCIpOwogIH0sCiAgYmVmb3JlVXBkYXRlKGUsIHQsIHIsIG4pIHsKICAgIGNhbGxNb2RlbEhvb2soZSwgdCwgciwgbiwgImJlZm9yZVVwZGF0ZSIpOwogIH0sCiAgdXBkYXRlZChlLCB0LCByLCBuKSB7CiAgICBjYWxsTW9kZWxIb29rKGUsIHQsIHIsIG4sICJ1cGRhdGVkIik7CiAgfSwKfTsKZnVuY3Rpb24gcmVzb2x2ZUR5bmFtaWNNb2RlbChlLCB0KSB7CiAgc3dpdGNoIChlKSB7CiAgICBjYXNlICJTRUxFQ1QiOgogICAgICByZXR1cm4gdk1vZGVsU2VsZWN0OwogICAgY2FzZSAiVEVYVEFSRUEiOgogICAgICByZXR1cm4gdk1vZGVsVGV4dDsKICAgIGRlZmF1bHQ6CiAgICAgIHN3aXRjaCAodCkgewogICAgICAgIGNhc2UgImNoZWNrYm94IjoKICAgICAgICAgIHJldHVybiB2TW9kZWxDaGVja2JveDsKICAgICAgICBjYXNlICJyYWRpbyI6CiAgICAgICAgICByZXR1cm4gdk1vZGVsUmFkaW87CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHJldHVybiB2TW9kZWxUZXh0OwogICAgICB9CiAgfQp9CmZ1bmN0aW9uIGNhbGxNb2RlbEhvb2soZSwgdCwgciwgbiwgaSkgewogIGNvbnN0IG8gPSByZXNvbHZlRHluYW1pY01vZGVsKGUudGFnTmFtZSwgci5wcm9wcyAmJiByLnByb3BzLnR5cGUpW2ldOwogIG8gJiYgbyhlLCB0LCByLCBuKTsKfQpmdW5jdGlvbiBpbml0Vk1vZGVsRm9yU1NSKCkgewogICh2TW9kZWxUZXh0LmdldFNTUlByb3BzID0gKHsgdmFsdWU6IGUgfSkgPT4gKHsgdmFsdWU6IGUgfSkpLAogICAgKHZNb2RlbFJhZGlvLmdldFNTUlByb3BzID0gKHsgdmFsdWU6IGUgfSwgdCkgPT4gewogICAgICBpZiAodC5wcm9wcyAmJiBsb29zZUVxdWFsKHQucHJvcHMudmFsdWUsIGUpKSByZXR1cm4geyBjaGVja2VkOiAhMCB9OwogICAgfSksCiAgICAodk1vZGVsQ2hlY2tib3guZ2V0U1NSUHJvcHMgPSAoeyB2YWx1ZTogZSB9LCB0KSA9PiB7CiAgICAgIGlmIChpc0FycmF5JDIoZSkpIHsKICAgICAgICBpZiAodC5wcm9wcyAmJiBsb29zZUluZGV4T2YoZSwgdC5wcm9wcy52YWx1ZSkgPiAtMSkKICAgICAgICAgIHJldHVybiB7IGNoZWNrZWQ6ICEwIH07CiAgICAgIH0gZWxzZSBpZiAoaXNTZXQoZSkpIHsKICAgICAgICBpZiAodC5wcm9wcyAmJiBlLmhhcyh0LnByb3BzLnZhbHVlKSkgcmV0dXJuIHsgY2hlY2tlZDogITAgfTsKICAgICAgfSBlbHNlIGlmIChlKSByZXR1cm4geyBjaGVja2VkOiAhMCB9OwogICAgfSksCiAgICAodk1vZGVsRHluYW1pYy5nZXRTU1JQcm9wcyA9IChlLCB0KSA9PiB7CiAgICAgIGlmICh0eXBlb2YgdC50eXBlICE9ICJzdHJpbmciKSByZXR1cm47CiAgICAgIGNvbnN0IHIgPSByZXNvbHZlRHluYW1pY01vZGVsKAogICAgICAgIHQudHlwZS50b1VwcGVyQ2FzZSgpLAogICAgICAgIHQucHJvcHMgJiYgdC5wcm9wcy50eXBlCiAgICAgICk7CiAgICAgIGlmIChyLmdldFNTUlByb3BzKSByZXR1cm4gci5nZXRTU1JQcm9wcyhlLCB0KTsKICAgIH0pOwp9CmNvbnN0IHN5c3RlbU1vZGlmaWVycyA9IFsiY3RybCIsICJzaGlmdCIsICJhbHQiLCAibWV0YSJdLAogIG1vZGlmaWVyR3VhcmRzID0gewogICAgc3RvcDogKGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksCiAgICBwcmV2ZW50OiAoZSkgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLAogICAgc2VsZjogKGUpID0+IGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQsCiAgICBjdHJsOiAoZSkgPT4gIWUuY3RybEtleSwKICAgIHNoaWZ0OiAoZSkgPT4gIWUuc2hpZnRLZXksCiAgICBhbHQ6IChlKSA9PiAhZS5hbHRLZXksCiAgICBtZXRhOiAoZSkgPT4gIWUubWV0YUtleSwKICAgIGxlZnQ6IChlKSA9PiAiYnV0dG9uIiBpbiBlICYmIGUuYnV0dG9uICE9PSAwLAogICAgbWlkZGxlOiAoZSkgPT4gImJ1dHRvbiIgaW4gZSAmJiBlLmJ1dHRvbiAhPT0gMSwKICAgIHJpZ2h0OiAoZSkgPT4gImJ1dHRvbiIgaW4gZSAmJiBlLmJ1dHRvbiAhPT0gMiwKICAgIGV4YWN0OiAoZSwgdCkgPT4KICAgICAgc3lzdGVtTW9kaWZpZXJzLnNvbWUoKHIpID0+IGVbYCR7cn1LZXlgXSAmJiAhdC5pbmNsdWRlcyhyKSksCiAgfSwKICB3aXRoTW9kaWZpZXJzID0gKGUsIHQpID0+IHsKICAgIGNvbnN0IHIgPSBlLl93aXRoTW9kcyB8fCAoZS5fd2l0aE1vZHMgPSB7fSksCiAgICAgIG4gPSB0LmpvaW4oIi4iKTsKICAgIHJldHVybiAoCiAgICAgIHJbbl0gfHwKICAgICAgKHJbbl0gPSAoaSwgLi4uYSkgPT4gewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgdC5sZW5ndGg7IG8rKykgewogICAgICAgICAgY29uc3QgbCA9IG1vZGlmaWVyR3VhcmRzW3Rbb11dOwogICAgICAgICAgaWYgKGwgJiYgbChpLCB0KSkgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZShpLCAuLi5hKTsKICAgICAgfSkKICAgICk7CiAgfSwKICBrZXlOYW1lcyA9IHsKICAgIGVzYzogImVzY2FwZSIsCiAgICBzcGFjZTogIiAiLAogICAgdXA6ICJhcnJvdy11cCIsCiAgICBsZWZ0OiAiYXJyb3ctbGVmdCIsCiAgICByaWdodDogImFycm93LXJpZ2h0IiwKICAgIGRvd246ICJhcnJvdy1kb3duIiwKICAgIGRlbGV0ZTogImJhY2tzcGFjZSIsCiAgfSwKICB3aXRoS2V5cyA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZS5fd2l0aEtleXMgfHwgKGUuX3dpdGhLZXlzID0ge30pLAogICAgICBuID0gdC5qb2luKCIuIik7CiAgICByZXR1cm4gKAogICAgICByW25dIHx8CiAgICAgIChyW25dID0gKGkpID0+IHsKICAgICAgICBpZiAoISgia2V5IiBpbiBpKSkgcmV0dXJuOwogICAgICAgIGNvbnN0IGEgPSBoeXBoZW5hdGUoaS5rZXkpOwogICAgICAgIGlmICh0LnNvbWUoKG8pID0+IG8gPT09IGEgfHwga2V5TmFtZXNbb10gPT09IGEpKSByZXR1cm4gZShpKTsKICAgICAgfSkKICAgICk7CiAgfSwKICByZW5kZXJlck9wdGlvbnMgPSBleHRlbmQoeyBwYXRjaFByb3AgfSwgbm9kZU9wcyk7CmxldCByZW5kZXJlciwKICBlbmFibGVkSHlkcmF0aW9uID0gITE7CmZ1bmN0aW9uIGVuc3VyZVJlbmRlcmVyKCkgewogIHJldHVybiByZW5kZXJlciB8fCAocmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihyZW5kZXJlck9wdGlvbnMpKTsKfQpmdW5jdGlvbiBlbnN1cmVIeWRyYXRpb25SZW5kZXJlcigpIHsKICByZXR1cm4gKAogICAgKHJlbmRlcmVyID0gZW5hYmxlZEh5ZHJhdGlvbgogICAgICA/IHJlbmRlcmVyCiAgICAgIDogY3JlYXRlSHlkcmF0aW9uUmVuZGVyZXIocmVuZGVyZXJPcHRpb25zKSksCiAgICAoZW5hYmxlZEh5ZHJhdGlvbiA9ICEwKSwKICAgIHJlbmRlcmVyCiAgKTsKfQpjb25zdCByZW5kZXIgPSAoLi4uZSkgPT4gewogIGVuc3VyZVJlbmRlcmVyKCkucmVuZGVyKC4uLmUpOwp9LAogIGh5ZHJhdGUgPSAoLi4uZSkgPT4gewogICAgZW5zdXJlSHlkcmF0aW9uUmVuZGVyZXIoKS5oeWRyYXRlKC4uLmUpOwogIH0sCiAgY3JlYXRlQXBwID0gKC4uLmUpID0+IHsKICAgIGNvbnN0IHQgPSBlbnN1cmVSZW5kZXJlcigpLmNyZWF0ZUFwcCguLi5lKSwKICAgICAgeyBtb3VudDogciB9ID0gdDsKICAgIHJldHVybiAoCiAgICAgICh0Lm1vdW50ID0gKG4pID0+IHsKICAgICAgICBjb25zdCBpID0gbm9ybWFsaXplQ29udGFpbmVyKG4pOwogICAgICAgIGlmICghaSkgcmV0dXJuOwogICAgICAgIGNvbnN0IGEgPSB0Ll9jb21wb25lbnQ7CiAgICAgICAgIWlzRnVuY3Rpb24kMShhKSAmJgogICAgICAgICAgIWEucmVuZGVyICYmCiAgICAgICAgICAhYS50ZW1wbGF0ZSAmJgogICAgICAgICAgKGEudGVtcGxhdGUgPSBpLmlubmVySFRNTCksCiAgICAgICAgICBpLm5vZGVUeXBlID09PSAxICYmIChpLnRleHRDb250ZW50ID0gIiIpOwogICAgICAgIGNvbnN0IG8gPSByKGksICExLCByZXNvbHZlUm9vdE5hbWVzcGFjZShpKSk7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGkgaW5zdGFuY2VvZiBFbGVtZW50ICYmCiAgICAgICAgICAoaS5yZW1vdmVBdHRyaWJ1dGUoInYtY2xvYWsiKSwgaS5zZXRBdHRyaWJ1dGUoImRhdGEtdi1hcHAiLCAiIikpLAogICAgICAgICAgbwogICAgICAgICk7CiAgICAgIH0pLAogICAgICB0CiAgICApOwogIH0sCiAgY3JlYXRlU1NSQXBwID0gKC4uLmUpID0+IHsKICAgIGNvbnN0IHQgPSBlbnN1cmVIeWRyYXRpb25SZW5kZXJlcigpLmNyZWF0ZUFwcCguLi5lKSwKICAgICAgeyBtb3VudDogciB9ID0gdDsKICAgIHJldHVybiAoCiAgICAgICh0Lm1vdW50ID0gKG4pID0+IHsKICAgICAgICBjb25zdCBpID0gbm9ybWFsaXplQ29udGFpbmVyKG4pOwogICAgICAgIGlmIChpKSByZXR1cm4gcihpLCAhMCwgcmVzb2x2ZVJvb3ROYW1lc3BhY2UoaSkpOwogICAgICB9KSwKICAgICAgdAogICAgKTsKICB9OwpmdW5jdGlvbiByZXNvbHZlUm9vdE5hbWVzcGFjZShlKSB7CiAgaWYgKGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50KSByZXR1cm4gInN2ZyI7CiAgaWYgKHR5cGVvZiBNYXRoTUxFbGVtZW50ID09ICJmdW5jdGlvbiIgJiYgZSBpbnN0YW5jZW9mIE1hdGhNTEVsZW1lbnQpCiAgICByZXR1cm4gIm1hdGhtbCI7Cn0KZnVuY3Rpb24gbm9ybWFsaXplQ29udGFpbmVyKGUpIHsKICByZXR1cm4gaXNTdHJpbmckMShlKSA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSkgOiBlOwp9CmxldCBzc3JEaXJlY3RpdmVJbml0aWFsaXplZCA9ICExOwpjb25zdCBpbml0RGlyZWN0aXZlc0ZvclNTUiA9ICgpID0+IHsKICBzc3JEaXJlY3RpdmVJbml0aWFsaXplZCB8fAogICAgKChzc3JEaXJlY3RpdmVJbml0aWFsaXplZCA9ICEwKSwgaW5pdFZNb2RlbEZvclNTUigpLCBpbml0VlNob3dGb3JTU1IoKSk7Cn07Ci8qKgogKiB2dWUgdjMuNS4xMwogKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwogKiBAbGljZW5zZSBNSVQKICoqLyBjb25zdCBjb21waWxlJDEgPSAoKSA9PiB7IH0sCiAgdnVlX3J1bnRpbWVfZXNtQnVuZGxlciA9IE9iamVjdC5mcmVlemUoCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoCiAgICAgIHsKICAgICAgICBfX3Byb3RvX186IG51bGwsCiAgICAgICAgQmFzZVRyYW5zaXRpb24sCiAgICAgICAgQmFzZVRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsCiAgICAgICAgQ29tbWVudCwKICAgICAgICBEZXByZWNhdGlvblR5cGVzLAogICAgICAgIEVmZmVjdFNjb3BlLAogICAgICAgIEVycm9yQ29kZXMsCiAgICAgICAgRXJyb3JUeXBlU3RyaW5ncywKICAgICAgICBGcmFnbWVudCwKICAgICAgICBLZWVwQWxpdmUsCiAgICAgICAgUmVhY3RpdmVFZmZlY3QsCiAgICAgICAgU3RhdGljLAogICAgICAgIFN1c3BlbnNlLAogICAgICAgIFRlbGVwb3J0LAogICAgICAgIFRleHQsCiAgICAgICAgVHJhY2tPcFR5cGVzLAogICAgICAgIFRyYW5zaXRpb24sCiAgICAgICAgVHJhbnNpdGlvbkdyb3VwLAogICAgICAgIFRyaWdnZXJPcFR5cGVzLAogICAgICAgIFZ1ZUVsZW1lbnQsCiAgICAgICAgYXNzZXJ0TnVtYmVyLAogICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nLAogICAgICAgIGNhbGxXaXRoRXJyb3JIYW5kbGluZywKICAgICAgICBjYW1lbGl6ZSwKICAgICAgICBjYXBpdGFsaXplOiBjYXBpdGFsaXplJDEsCiAgICAgICAgY2xvbmVWTm9kZSwKICAgICAgICBjb21wYXRVdGlscywKICAgICAgICBjb21waWxlOiBjb21waWxlJDEsCiAgICAgICAgY29tcHV0ZWQsCiAgICAgICAgY3JlYXRlQXBwLAogICAgICAgIGNyZWF0ZUJsb2NrLAogICAgICAgIGNyZWF0ZUNvbW1lbnRWTm9kZSwKICAgICAgICBjcmVhdGVFbGVtZW50QmxvY2ssCiAgICAgICAgY3JlYXRlRWxlbWVudFZOb2RlOiBjcmVhdGVCYXNlVk5vZGUsCiAgICAgICAgY3JlYXRlSHlkcmF0aW9uUmVuZGVyZXIsCiAgICAgICAgY3JlYXRlUHJvcHNSZXN0UHJveHksCiAgICAgICAgY3JlYXRlUmVuZGVyZXIsCiAgICAgICAgY3JlYXRlU1NSQXBwLAogICAgICAgIGNyZWF0ZVNsb3RzLAogICAgICAgIGNyZWF0ZVN0YXRpY1ZOb2RlLAogICAgICAgIGNyZWF0ZVRleHRWTm9kZSwKICAgICAgICBjcmVhdGVWTm9kZSwKICAgICAgICBjdXN0b21SZWYsCiAgICAgICAgZGVmaW5lQXN5bmNDb21wb25lbnQsCiAgICAgICAgZGVmaW5lQ29tcG9uZW50OiBkZWZpbmVDb21wb25lbnQkMSwKICAgICAgICBkZWZpbmVDdXN0b21FbGVtZW50LAogICAgICAgIGRlZmluZUVtaXRzLAogICAgICAgIGRlZmluZUV4cG9zZSwKICAgICAgICBkZWZpbmVNb2RlbCwKICAgICAgICBkZWZpbmVPcHRpb25zLAogICAgICAgIGRlZmluZVByb3BzLAogICAgICAgIGRlZmluZVNTUkN1c3RvbUVsZW1lbnQsCiAgICAgICAgZGVmaW5lU2xvdHMsCiAgICAgICAgZGV2dG9vbHM6IGRldnRvb2xzJDIsCiAgICAgICAgZWZmZWN0LAogICAgICAgIGVmZmVjdFNjb3BlLAogICAgICAgIGdldEN1cnJlbnRJbnN0YW5jZTogZ2V0Q3VycmVudEluc3RhbmNlJDEsCiAgICAgICAgZ2V0Q3VycmVudFNjb3BlLAogICAgICAgIGdldEN1cnJlbnRXYXRjaGVyLAogICAgICAgIGdldFRyYW5zaXRpb25SYXdDaGlsZHJlbiwKICAgICAgICBndWFyZFJlYWN0aXZlUHJvcHMsCiAgICAgICAgaDogaCQyLAogICAgICAgIGhhbmRsZUVycm9yLAogICAgICAgIGhhc0luamVjdGlvbkNvbnRleHQsCiAgICAgICAgaHlkcmF0ZSwKICAgICAgICBoeWRyYXRlT25JZGxlLAogICAgICAgIGh5ZHJhdGVPbkludGVyYWN0aW9uLAogICAgICAgIGh5ZHJhdGVPbk1lZGlhUXVlcnksCiAgICAgICAgaHlkcmF0ZU9uVmlzaWJsZSwKICAgICAgICBpbml0Q3VzdG9tRm9ybWF0dGVyLAogICAgICAgIGluaXREaXJlY3RpdmVzRm9yU1NSLAogICAgICAgIGluamVjdDogaW5qZWN0JDEsCiAgICAgICAgaXNNZW1vU2FtZSwKICAgICAgICBpc1Byb3h5LAogICAgICAgIGlzUmVhY3RpdmUsCiAgICAgICAgaXNSZWFkb25seSwKICAgICAgICBpc1JlZiwKICAgICAgICBpc1J1bnRpbWVPbmx5LAogICAgICAgIGlzU2hhbGxvdywKICAgICAgICBpc1ZOb2RlOiBpc1ZOb2RlJDEsCiAgICAgICAgbWFya1JhdywKICAgICAgICBtZXJnZURlZmF1bHRzLAogICAgICAgIG1lcmdlTW9kZWxzLAogICAgICAgIG1lcmdlUHJvcHMsCiAgICAgICAgbmV4dFRpY2ssCiAgICAgICAgbm9ybWFsaXplQ2xhc3MsCiAgICAgICAgbm9ybWFsaXplUHJvcHMsCiAgICAgICAgbm9ybWFsaXplU3R5bGUsCiAgICAgICAgb25BY3RpdmF0ZWQsCiAgICAgICAgb25CZWZvcmVNb3VudCwKICAgICAgICBvbkJlZm9yZVVubW91bnQsCiAgICAgICAgb25CZWZvcmVVcGRhdGUsCiAgICAgICAgb25EZWFjdGl2YXRlZCwKICAgICAgICBvbkVycm9yQ2FwdHVyZWQsCiAgICAgICAgb25Nb3VudGVkLAogICAgICAgIG9uUmVuZGVyVHJhY2tlZCwKICAgICAgICBvblJlbmRlclRyaWdnZXJlZCwKICAgICAgICBvblNjb3BlRGlzcG9zZSwKICAgICAgICBvblNlcnZlclByZWZldGNoLAogICAgICAgIG9uVW5tb3VudGVkLAogICAgICAgIG9uVXBkYXRlZCwKICAgICAgICBvbldhdGNoZXJDbGVhbnVwLAogICAgICAgIG9wZW5CbG9jaywKICAgICAgICBwb3BTY29wZUlkLAogICAgICAgIHByb3ZpZGUsCiAgICAgICAgcHJveHlSZWZzLAogICAgICAgIHB1c2hTY29wZUlkLAogICAgICAgIHF1ZXVlUG9zdEZsdXNoQ2IsCiAgICAgICAgcmVhY3RpdmUsCiAgICAgICAgcmVhZG9ubHksCiAgICAgICAgcmVmLAogICAgICAgIHJlZ2lzdGVyUnVudGltZUNvbXBpbGVyLAogICAgICAgIHJlbmRlciwKICAgICAgICByZW5kZXJMaXN0LAogICAgICAgIHJlbmRlclNsb3QsCiAgICAgICAgcmVzb2x2ZUNvbXBvbmVudCwKICAgICAgICByZXNvbHZlRGlyZWN0aXZlLAogICAgICAgIHJlc29sdmVEeW5hbWljQ29tcG9uZW50LAogICAgICAgIHJlc29sdmVGaWx0ZXIsCiAgICAgICAgcmVzb2x2ZVRyYW5zaXRpb25Ib29rcywKICAgICAgICBzZXRCbG9ja1RyYWNraW5nLAogICAgICAgIHNldERldnRvb2xzSG9vaywKICAgICAgICBzZXRUcmFuc2l0aW9uSG9va3MsCiAgICAgICAgc2hhbGxvd1JlYWN0aXZlLAogICAgICAgIHNoYWxsb3dSZWFkb25seSwKICAgICAgICBzaGFsbG93UmVmLAogICAgICAgIHNzckNvbnRleHRLZXksCiAgICAgICAgc3NyVXRpbHMsCiAgICAgICAgc3RvcCwKICAgICAgICB0b0Rpc3BsYXlTdHJpbmc6IHRvRGlzcGxheVN0cmluZyQxLAogICAgICAgIHRvSGFuZGxlcktleSwKICAgICAgICB0b0hhbmRsZXJzLAogICAgICAgIHRvUmF3LAogICAgICAgIHRvUmVmLAogICAgICAgIHRvUmVmcywKICAgICAgICB0b1ZhbHVlLAogICAgICAgIHRyYW5zZm9ybVZOb2RlQXJncywKICAgICAgICB0cmlnZ2VyUmVmLAogICAgICAgIHVucmVmLAogICAgICAgIHVzZUF0dHJzLAogICAgICAgIHVzZUNzc01vZHVsZSwKICAgICAgICB1c2VDc3NWYXJzLAogICAgICAgIHVzZUhvc3QsCiAgICAgICAgdXNlSWQsCiAgICAgICAgdXNlTW9kZWwsCiAgICAgICAgdXNlU1NSQ29udGV4dCwKICAgICAgICB1c2VTaGFkb3dSb290LAogICAgICAgIHVzZVNsb3RzLAogICAgICAgIHVzZVRlbXBsYXRlUmVmLAogICAgICAgIHVzZVRyYW5zaXRpb25TdGF0ZSwKICAgICAgICB2TW9kZWxDaGVja2JveCwKICAgICAgICB2TW9kZWxEeW5hbWljLAogICAgICAgIHZNb2RlbFJhZGlvLAogICAgICAgIHZNb2RlbFNlbGVjdCwKICAgICAgICB2TW9kZWxUZXh0LAogICAgICAgIHZTaG93LAogICAgICAgIHZlcnNpb246IHZlcnNpb24kMSwKICAgICAgICB3YXJuOiB3YXJuJDIsCiAgICAgICAgd2F0Y2gsCiAgICAgICAgd2F0Y2hFZmZlY3QsCiAgICAgICAgd2F0Y2hQb3N0RWZmZWN0LAogICAgICAgIHdhdGNoU3luY0VmZmVjdCwKICAgICAgICB3aXRoQXN5bmNDb250ZXh0LAogICAgICAgIHdpdGhDdHgsCiAgICAgICAgd2l0aERlZmF1bHRzLAogICAgICAgIHdpdGhEaXJlY3RpdmVzLAogICAgICAgIHdpdGhLZXlzLAogICAgICAgIHdpdGhNZW1vLAogICAgICAgIHdpdGhNb2RpZmllcnMsCiAgICAgICAgd2l0aFNjb3BlSWQsCiAgICAgIH0sCiAgICAgIFN5bWJvbC50b1N0cmluZ1RhZywKICAgICAgeyB2YWx1ZTogIk1vZHVsZSIgfQogICAgKQogICksCiAgc3VzcGVjdFByb3RvUnggPQogICAgLyIoPzpffFxcdTB7Mn01W0ZmXSl7Mn0oPzpwfFxcdTB7Mn03MCkoPzpyfFxcdTB7Mn03MikoPzpvfFxcdTB7Mn02W0ZmXSkoPzp0fFxcdTB7Mn03NCkoPzpvfFxcdTB7Mn02W0ZmXSkoPzpffFxcdTB7Mn01W0ZmXSl7Mn0iXHMqOi8sCiAgc3VzcGVjdENvbnN0cnVjdG9yUnggPQogICAgLyIoPzpjfFxcdTAwNjMpKD86b3xcXHUwMDZbRmZdKSg/Om58XFx1MDA2W0VlXSkoPzpzfFxcdTAwNzMpKD86dHxcXHUwMDc0KSg/OnJ8XFx1MDA3MikoPzp1fFxcdTAwNzUpKD86Y3xcXHUwMDYzKSg/OnR8XFx1MDA3NCkoPzpvfFxcdTAwNltGZl0pKD86cnxcXHUwMDcyKSJccyo6LywKICBKc29uU2lnUnggPSAvXlxzKlsiW3tdfF5ccyotP1xkezEsMTZ9KFwuXGR7MSwxN30pPyhbRWVdWystXT9cZCspP1xzKiQvOwpmdW5jdGlvbiBqc29uUGFyc2VUcmFuc2Zvcm0oZSwgdCkgewogIGlmICgKICAgIGUgPT09ICJfX3Byb3RvX18iIHx8CiAgICAoZSA9PT0gImNvbnN0cnVjdG9yIiAmJiB0ICYmIHR5cGVvZiB0ID09ICJvYmplY3QiICYmICJwcm90b3R5cGUiIGluIHQpCiAgKSB7CiAgICB3YXJuS2V5RHJvcHBlZChlKTsKICAgIHJldHVybjsKICB9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gd2FybktleURyb3BwZWQoZSkgewogIGNvbnNvbGUud2FybihgW2Rlc3RyXSBEcm9wcGluZyAiJHtlfSIga2V5IHRvIHByZXZlbnQgcHJvdG90eXBlIHBvbGx1dGlvbi5gKTsKfQpmdW5jdGlvbiBkZXN0cihlLCB0ID0ge30pIHsKICBpZiAodHlwZW9mIGUgIT0gInN0cmluZyIpIHJldHVybiBlOwogIGNvbnN0IHIgPSBlLnRyaW0oKTsKICBpZiAoZVswXSA9PT0gJyInICYmIGUuZW5kc1dpdGgoJyInKSAmJiAhZS5pbmNsdWRlcygiXFwiKSkKICAgIHJldHVybiByLnNsaWNlKDEsIC0xKTsKICBpZiAoci5sZW5ndGggPD0gOSkgewogICAgY29uc3QgbiA9IHIudG9Mb3dlckNhc2UoKTsKICAgIGlmIChuID09PSAidHJ1ZSIpIHJldHVybiAhMDsKICAgIGlmIChuID09PSAiZmFsc2UiKSByZXR1cm4gITE7CiAgICBpZiAobiA9PT0gInVuZGVmaW5lZCIpIHJldHVybjsKICAgIGlmIChuID09PSAibnVsbCIpIHJldHVybiBudWxsOwogICAgaWYgKG4gPT09ICJuYW4iKSByZXR1cm4gTnVtYmVyLk5hTjsKICAgIGlmIChuID09PSAiaW5maW5pdHkiKSByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwogICAgaWYgKG4gPT09ICItaW5maW5pdHkiKSByZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwogIH0KICBpZiAoIUpzb25TaWdSeC50ZXN0KGUpKSB7CiAgICBpZiAodC5zdHJpY3QpIHRocm93IG5ldyBTeW50YXhFcnJvcigiW2Rlc3RyXSBJbnZhbGlkIEpTT04iKTsKICAgIHJldHVybiBlOwogIH0KICB0cnkgewogICAgaWYgKHN1c3BlY3RQcm90b1J4LnRlc3QoZSkgfHwgc3VzcGVjdENvbnN0cnVjdG9yUngudGVzdChlKSkgewogICAgICBpZiAodC5zdHJpY3QpIHRocm93IG5ldyBFcnJvcigiW2Rlc3RyXSBQb3NzaWJsZSBwcm90b3R5cGUgcG9sbHV0aW9uIik7CiAgICAgIHJldHVybiBKU09OLnBhcnNlKGUsIGpzb25QYXJzZVRyYW5zZm9ybSk7CiAgICB9CiAgICByZXR1cm4gSlNPTi5wYXJzZShlKTsKICB9IGNhdGNoIChuKSB7CiAgICBpZiAodC5zdHJpY3QpIHRocm93IG47CiAgICByZXR1cm4gZTsKICB9Cn0KY29uc3QgSEFTSF9SRSQxID0gLyMvZywKICBBTVBFUlNBTkRfUkUkMSA9IC8mL2csCiAgU0xBU0hfUkUkMSA9IC9cLy9nLAogIEVRVUFMX1JFJDEgPSAvPS9nLAogIFBMVVNfUkUkMSA9IC9cKy9nLAogIEVOQ19DQVJFVF9SRSQxID0gLyU1ZS9naSwKICBFTkNfQkFDS1RJQ0tfUkUkMSA9IC8lNjAvZ2ksCiAgRU5DX1BJUEVfUkUkMSA9IC8lN2MvZ2ksCiAgRU5DX1NQQUNFX1JFJDEgPSAvJTIwL2dpOwpmdW5jdGlvbiBlbmNvZGUoZSkgewogIHJldHVybiBlbmNvZGVVUkkoIiIgKyBlKS5yZXBsYWNlKEVOQ19QSVBFX1JFJDEsICJ8Iik7Cn0KZnVuY3Rpb24gZW5jb2RlUXVlcnlWYWx1ZSQxKGUpIHsKICByZXR1cm4gZW5jb2RlKHR5cGVvZiBlID09ICJzdHJpbmciID8gZSA6IEpTT04uc3RyaW5naWZ5KGUpKQogICAgLnJlcGxhY2UoUExVU19SRSQxLCAiJTJCIikKICAgIC5yZXBsYWNlKEVOQ19TUEFDRV9SRSQxLCAiKyIpCiAgICAucmVwbGFjZShIQVNIX1JFJDEsICIlMjMiKQogICAgLnJlcGxhY2UoQU1QRVJTQU5EX1JFJDEsICIlMjYiKQogICAgLnJlcGxhY2UoRU5DX0JBQ0tUSUNLX1JFJDEsICJgIikKICAgIC5yZXBsYWNlKEVOQ19DQVJFVF9SRSQxLCAiXiIpCiAgICAucmVwbGFjZShTTEFTSF9SRSQxLCAiJTJGIik7Cn0KZnVuY3Rpb24gZW5jb2RlUXVlcnlLZXkkMShlKSB7CiAgcmV0dXJuIGVuY29kZVF1ZXJ5VmFsdWUkMShlKS5yZXBsYWNlKEVRVUFMX1JFJDEsICIlM0QiKTsKfQpmdW5jdGlvbiBkZWNvZGUkMihlID0gIiIpIHsKICB0cnkgewogICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCgiIiArIGUpOwogIH0gY2F0Y2ggewogICAgcmV0dXJuICIiICsgZTsKICB9Cn0KZnVuY3Rpb24gZGVjb2RlUXVlcnlLZXkoZSkgewogIHJldHVybiBkZWNvZGUkMihlLnJlcGxhY2UoUExVU19SRSQxLCAiICIpKTsKfQpmdW5jdGlvbiBkZWNvZGVRdWVyeVZhbHVlKGUpIHsKICByZXR1cm4gZGVjb2RlJDIoZS5yZXBsYWNlKFBMVVNfUkUkMSwgIiAiKSk7Cn0KZnVuY3Rpb24gcGFyc2VRdWVyeSQxKGUgPSAiIikgewogIGNvbnN0IHQgPSB7fTsKICBlWzBdID09PSAiPyIgJiYgKGUgPSBlLnNsaWNlKDEpKTsKICBmb3IgKGNvbnN0IHIgb2YgZS5zcGxpdCgiJiIpKSB7CiAgICBjb25zdCBuID0gci5tYXRjaCgvKFtePV0rKT0/KC4qKS8pIHx8IFtdOwogICAgaWYgKG4ubGVuZ3RoIDwgMikgY29udGludWU7CiAgICBjb25zdCBpID0gZGVjb2RlUXVlcnlLZXkoblsxXSk7CiAgICBpZiAoaSA9PT0gIl9fcHJvdG9fXyIgfHwgaSA9PT0gImNvbnN0cnVjdG9yIikgY29udGludWU7CiAgICBjb25zdCBhID0gZGVjb2RlUXVlcnlWYWx1ZShuWzJdIHx8ICIiKTsKICAgIHRbaV0gPT09IHZvaWQgMAogICAgICA/ICh0W2ldID0gYSkKICAgICAgOiBBcnJheS5pc0FycmF5KHRbaV0pCiAgICAgICAgPyB0W2ldLnB1c2goYSkKICAgICAgICA6ICh0W2ldID0gW3RbaV0sIGFdKTsKICB9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gZW5jb2RlUXVlcnlJdGVtKGUsIHQpIHsKICByZXR1cm4gKAogICAgKHR5cGVvZiB0ID09ICJudW1iZXIiIHx8IHR5cGVvZiB0ID09ICJib29sZWFuIikgJiYgKHQgPSBTdHJpbmcodCkpLAogICAgdAogICAgICA/IEFycmF5LmlzQXJyYXkodCkKICAgICAgICA/IHQKICAgICAgICAgIC5tYXAoKHIpID0+IGAke2VuY29kZVF1ZXJ5S2V5JDEoZSl9PSR7ZW5jb2RlUXVlcnlWYWx1ZSQxKHIpfWApCiAgICAgICAgICAuam9pbigiJiIpCiAgICAgICAgOiBgJHtlbmNvZGVRdWVyeUtleSQxKGUpfT0ke2VuY29kZVF1ZXJ5VmFsdWUkMSh0KX1gCiAgICAgIDogZW5jb2RlUXVlcnlLZXkkMShlKQogICk7Cn0KZnVuY3Rpb24gc3RyaW5naWZ5UXVlcnkkMShlKSB7CiAgcmV0dXJuIE9iamVjdC5rZXlzKGUpCiAgICAuZmlsdGVyKCh0KSA9PiBlW3RdICE9PSB2b2lkIDApCiAgICAubWFwKCh0KSA9PiBlbmNvZGVRdWVyeUl0ZW0odCwgZVt0XSkpCiAgICAuZmlsdGVyKEJvb2xlYW4pCiAgICAuam9pbigiJiIpOwp9CmNvbnN0IFBST1RPQ09MX1NUUklDVF9SRUdFWCA9IC9eW1xzXHdcMCsuLV17Mix9OihbL1xcXXsxLDJ9KS8sCiAgUFJPVE9DT0xfUkVHRVggPSAvXltcc1x3XDArLi1dezIsfTooWy9cXF17Mn0pPy8sCiAgUFJPVE9DT0xfUkVMQVRJVkVfUkVHRVggPSAvXihbL1xcXVxzKil7Mix9W14vXFxdLywKICBQUk9UT0NPTF9TQ1JJUFRfUkUgPSAvXltcc1wwXSooYmxvYnxkYXRhfGphdmFzY3JpcHR8dmJzY3JpcHQpOiQvaSwKICBUUkFJTElOR19TTEFTSF9SRSQxID0gL1wvJHxcL1w/fFwvIy8sCiAgSk9JTl9MRUFESU5HX1NMQVNIX1JFID0gL15cLj9cLy87CmZ1bmN0aW9uIGhhc1Byb3RvY29sKGUsIHQgPSB7fSkgewogIHJldHVybiAoCiAgICB0eXBlb2YgdCA9PSAiYm9vbGVhbiIgJiYgKHQgPSB7IGFjY2VwdFJlbGF0aXZlOiB0IH0pLAogICAgdC5zdHJpY3QKICAgICAgPyBQUk9UT0NPTF9TVFJJQ1RfUkVHRVgudGVzdChlKQogICAgICA6IFBST1RPQ09MX1JFR0VYLnRlc3QoZSkgfHwKICAgICAgKHQuYWNjZXB0UmVsYXRpdmUgPyBQUk9UT0NPTF9SRUxBVElWRV9SRUdFWC50ZXN0KGUpIDogITEpCiAgKTsKfQpmdW5jdGlvbiBpc1NjcmlwdFByb3RvY29sKGUpIHsKICByZXR1cm4gISFlICYmIFBST1RPQ09MX1NDUklQVF9SRS50ZXN0KGUpOwp9CmZ1bmN0aW9uIGhhc1RyYWlsaW5nU2xhc2goZSA9ICIiLCB0KSB7CiAgcmV0dXJuIHQgPyBUUkFJTElOR19TTEFTSF9SRSQxLnRlc3QoZSkgOiBlLmVuZHNXaXRoKCIvIik7Cn0KZnVuY3Rpb24gd2l0aG91dFRyYWlsaW5nU2xhc2goZSA9ICIiLCB0KSB7CiAgaWYgKCF0KSByZXR1cm4gKGhhc1RyYWlsaW5nU2xhc2goZSkgPyBlLnNsaWNlKDAsIC0xKSA6IGUpIHx8ICIvIjsKICBpZiAoIWhhc1RyYWlsaW5nU2xhc2goZSwgITApKSByZXR1cm4gZSB8fCAiLyI7CiAgbGV0IHIgPSBlLAogICAgbiA9ICIiOwogIGNvbnN0IGkgPSBlLmluZGV4T2YoIiMiKTsKICBpID49IDAgJiYgKChyID0gZS5zbGljZSgwLCBpKSksIChuID0gZS5zbGljZShpKSkpOwogIGNvbnN0IFthLCAuLi5vXSA9IHIuc3BsaXQoIj8iKTsKICByZXR1cm4gKAogICAgKChhLmVuZHNXaXRoKCIvIikgPyBhLnNsaWNlKDAsIC0xKSA6IGEpIHx8ICIvIikgKwogICAgKG8ubGVuZ3RoID4gMCA/IGA/JHtvLmpvaW4oIj8iKX1gIDogIiIpICsKICAgIG4KICApOwp9CmZ1bmN0aW9uIHdpdGhUcmFpbGluZ1NsYXNoKGUgPSAiIiwgdCkgewogIGlmICghdCkgcmV0dXJuIGUuZW5kc1dpdGgoIi8iKSA/IGUgOiBlICsgIi8iOwogIGlmIChoYXNUcmFpbGluZ1NsYXNoKGUsICEwKSkgcmV0dXJuIGUgfHwgIi8iOwogIGxldCByID0gZSwKICAgIG4gPSAiIjsKICBjb25zdCBpID0gZS5pbmRleE9mKCIjIik7CiAgaWYgKGkgPj0gMCAmJiAoKHIgPSBlLnNsaWNlKDAsIGkpKSwgKG4gPSBlLnNsaWNlKGkpKSwgIXIpKSByZXR1cm4gbjsKICBjb25zdCBbYSwgLi4ub10gPSByLnNwbGl0KCI/Iik7CiAgcmV0dXJuIGEgKyAiLyIgKyAoby5sZW5ndGggPiAwID8gYD8ke28uam9pbigiPyIpfWAgOiAiIikgKyBuOwp9CmZ1bmN0aW9uIGhhc0xlYWRpbmdTbGFzaChlID0gIiIpIHsKICByZXR1cm4gZS5zdGFydHNXaXRoKCIvIik7Cn0KZnVuY3Rpb24gd2l0aExlYWRpbmdTbGFzaChlID0gIiIpIHsKICByZXR1cm4gaGFzTGVhZGluZ1NsYXNoKGUpID8gZSA6ICIvIiArIGU7Cn0KZnVuY3Rpb24gd2l0aEJhc2UoZSwgdCkgewogIGlmIChpc0VtcHR5VVJMKHQpIHx8IGhhc1Byb3RvY29sKGUpKSByZXR1cm4gZTsKICBjb25zdCByID0gd2l0aG91dFRyYWlsaW5nU2xhc2godCk7CiAgcmV0dXJuIGUuc3RhcnRzV2l0aChyKSA/IGUgOiBqb2luVVJMKHIsIGUpOwp9CmZ1bmN0aW9uIHdpdGhvdXRCYXNlKGUsIHQpIHsKICBpZiAoaXNFbXB0eVVSTCh0KSkgcmV0dXJuIGU7CiAgY29uc3QgciA9IHdpdGhvdXRUcmFpbGluZ1NsYXNoKHQpOwogIGlmICghZS5zdGFydHNXaXRoKHIpKSByZXR1cm4gZTsKICBjb25zdCBuID0gZS5zbGljZShyLmxlbmd0aCk7CiAgcmV0dXJuIG5bMF0gPT09ICIvIiA/IG4gOiAiLyIgKyBuOwp9CmZ1bmN0aW9uIHdpdGhRdWVyeShlLCB0KSB7CiAgY29uc3QgciA9IHBhcnNlVVJMJDEoZSksCiAgICBuID0geyAuLi5wYXJzZVF1ZXJ5JDEoci5zZWFyY2gpLCAuLi50IH07CiAgcmV0dXJuIChyLnNlYXJjaCA9IHN0cmluZ2lmeVF1ZXJ5JDEobikpLCBzdHJpbmdpZnlQYXJzZWRVUkwocik7Cn0KZnVuY3Rpb24gaXNFbXB0eVVSTChlKSB7CiAgcmV0dXJuICFlIHx8IGUgPT09ICIvIjsKfQpmdW5jdGlvbiBpc05vbkVtcHR5VVJMKGUpIHsKICByZXR1cm4gZSAmJiBlICE9PSAiLyI7Cn0KZnVuY3Rpb24gam9pblVSTChlLCAuLi50KSB7CiAgbGV0IHIgPSBlIHx8ICIiOwogIGZvciAoY29uc3QgbiBvZiB0LmZpbHRlcigoaSkgPT4gaXNOb25FbXB0eVVSTChpKSkpCiAgICBpZiAocikgewogICAgICBjb25zdCBpID0gbi5yZXBsYWNlKEpPSU5fTEVBRElOR19TTEFTSF9SRSwgIiIpOwogICAgICByID0gd2l0aFRyYWlsaW5nU2xhc2gocikgKyBpOwogICAgfSBlbHNlIHIgPSBuOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIGpvaW5SZWxhdGl2ZVVSTCguLi5lKSB7CiAgdmFyIG8sIGwsIGMsIHU7CiAgY29uc3QgdCA9IC9cLyg/IVwvKS8sCiAgICByID0gZS5maWx0ZXIoQm9vbGVhbiksCiAgICBuID0gW107CiAgbGV0IGkgPSAwOwogIGZvciAoY29uc3QgZCBvZiByKQogICAgaWYgKCEoIWQgfHwgZCA9PT0gIi8iKSkgewogICAgICBmb3IgKGNvbnN0IFtFLCBiXSBvZiBkLnNwbGl0KHQpLmVudHJpZXMoKSkKICAgICAgICBpZiAoISghYiB8fCBiID09PSAiLiIpKSB7CiAgICAgICAgICBpZiAoYiA9PT0gIi4uIikgewogICAgICAgICAgICBpZiAobi5sZW5ndGggPT09IDEgJiYgaGFzUHJvdG9jb2woblswXSkpIGNvbnRpbnVlOwogICAgICAgICAgICBuLnBvcCgpLCBpLS07CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKEUgPT09IDEgJiYgKG8gPSBuW24ubGVuZ3RoIC0gMV0pICE9IG51bGwgJiYgby5lbmRzV2l0aCgiOi8iKSkgewogICAgICAgICAgICBuW24ubGVuZ3RoIC0gMV0gKz0gIi8iICsgYjsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBuLnB1c2goYiksIGkrKzsKICAgICAgICB9CiAgICB9CiAgbGV0IGEgPSBuLmpvaW4oIi8iKTsKICByZXR1cm4gKAogICAgaSA+PSAwCiAgICAgID8gKGwgPSByWzBdKSAhPSBudWxsICYmIGwuc3RhcnRzV2l0aCgiLyIpICYmICFhLnN0YXJ0c1dpdGgoIi8iKQogICAgICAgID8gKGEgPSAiLyIgKyBhKQogICAgICAgIDogKGMgPSByWzBdKSAhPSBudWxsICYmCiAgICAgICAgYy5zdGFydHNXaXRoKCIuLyIpICYmCiAgICAgICAgIWEuc3RhcnRzV2l0aCgiLi8iKSAmJgogICAgICAgIChhID0gIi4vIiArIGEpCiAgICAgIDogKGEgPSAiLi4vIi5yZXBlYXQoLTEgKiBpKSArIGEpLAogICAgKHUgPSByW3IubGVuZ3RoIC0gMV0pICE9IG51bGwgJiYKICAgIHUuZW5kc1dpdGgoIi8iKSAmJgogICAgIWEuZW5kc1dpdGgoIi8iKSAmJgogICAgKGEgKz0gIi8iKSwKICAgIGEKICApOwp9CmZ1bmN0aW9uIGlzRXF1YWwkMihlLCB0LCByID0ge30pIHsKICByZXR1cm4gKAogICAgci50cmFpbGluZ1NsYXNoIHx8ICgoZSA9IHdpdGhUcmFpbGluZ1NsYXNoKGUpKSwgKHQgPSB3aXRoVHJhaWxpbmdTbGFzaCh0KSkpLAogICAgci5sZWFkaW5nU2xhc2ggfHwgKChlID0gd2l0aExlYWRpbmdTbGFzaChlKSksICh0ID0gd2l0aExlYWRpbmdTbGFzaCh0KSkpLAogICAgci5lbmNvZGluZyB8fCAoKGUgPSBkZWNvZGUkMihlKSksICh0ID0gZGVjb2RlJDIodCkpKSwKICAgIGUgPT09IHQKICApOwp9CmNvbnN0IHByb3RvY29sUmVsYXRpdmUgPSBTeW1ib2wuZm9yKCJ1Zm86cHJvdG9jb2xSZWxhdGl2ZSIpOwpmdW5jdGlvbiBwYXJzZVVSTCQxKGUgPSAiIiwgdCkgewogIGNvbnN0IHIgPSBlLm1hdGNoKC9eW1xzXDBdKihibG9iOnxkYXRhOnxqYXZhc2NyaXB0Onx2YnNjcmlwdDopKC4qKS9pKTsKICBpZiAocikgewogICAgY29uc3QgWywgRSwgYiA9ICIiXSA9IHI7CiAgICByZXR1cm4gewogICAgICBwcm90b2NvbDogRS50b0xvd2VyQ2FzZSgpLAogICAgICBwYXRobmFtZTogYiwKICAgICAgaHJlZjogRSArIGIsCiAgICAgIGF1dGg6ICIiLAogICAgICBob3N0OiAiIiwKICAgICAgc2VhcmNoOiAiIiwKICAgICAgaGFzaDogIiIsCiAgICB9OwogIH0KICBpZiAoIWhhc1Byb3RvY29sKGUsIHsgYWNjZXB0UmVsYXRpdmU6ICEwIH0pKSByZXR1cm4gcGFyc2VQYXRoKGUpOwogIGNvbnN0IFssIG4gPSAiIiwgaSwgYSA9ICIiXSA9CiAgICBlLnJlcGxhY2UoL1xcL2csICIvIikubWF0Y2goL15bXHNcMF0qKFtcdysuLV17Mix9Oik/XC9cLyhbXi9AXStAKT8oLiopLykgfHwKICAgIFtdOwogIGxldCBbLCBvID0gIiIsIGwgPSAiIl0gPSBhLm1hdGNoKC8oW14jLz9dKikoLiopPy8pIHx8IFtdOwogIG4gPT09ICJmaWxlOiIgJiYgKGwgPSBsLnJlcGxhY2UoL1wvKD89W0EtWmEtel06KS8sICIiKSk7CiAgY29uc3QgeyBwYXRobmFtZTogYywgc2VhcmNoOiB1LCBoYXNoOiBkIH0gPSBwYXJzZVBhdGgobCk7CiAgcmV0dXJuIHsKICAgIHByb3RvY29sOiBuLnRvTG93ZXJDYXNlKCksCiAgICBhdXRoOiBpID8gaS5zbGljZSgwLCBNYXRoLm1heCgwLCBpLmxlbmd0aCAtIDEpKSA6ICIiLAogICAgaG9zdDogbywKICAgIHBhdGhuYW1lOiBjLAogICAgc2VhcmNoOiB1LAogICAgaGFzaDogZCwKICAgIFtwcm90b2NvbFJlbGF0aXZlXTogIW4sCiAgfTsKfQpmdW5jdGlvbiBwYXJzZVBhdGgoZSA9ICIiKSB7CiAgY29uc3QgW3QgPSAiIiwgciA9ICIiLCBuID0gIiJdID0gKAogICAgZS5tYXRjaCgvKFteIz9dKikoXD9bXiNdKik/KCMuKik/LykgfHwgW10KICApLnNwbGljZSgxKTsKICByZXR1cm4geyBwYXRobmFtZTogdCwgc2VhcmNoOiByLCBoYXNoOiBuIH07Cn0KZnVuY3Rpb24gc3RyaW5naWZ5UGFyc2VkVVJMKGUpIHsKICBjb25zdCB0ID0gZS5wYXRobmFtZSB8fCAiIiwKICAgIHIgPSBlLnNlYXJjaCA/IChlLnNlYXJjaC5zdGFydHNXaXRoKCI/IikgPyAiIiA6ICI/IikgKyBlLnNlYXJjaCA6ICIiLAogICAgbiA9IGUuaGFzaCB8fCAiIiwKICAgIGkgPSBlLmF1dGggPyBlLmF1dGggKyAiQCIgOiAiIiwKICAgIGEgPSBlLmhvc3QgfHwgIiI7CiAgcmV0dXJuICgKICAgIChlLnByb3RvY29sIHx8IGVbcHJvdG9jb2xSZWxhdGl2ZV0gPyAoZS5wcm90b2NvbCB8fCAiIikgKyAiLy8iIDogIiIpICsKICAgIGkgKwogICAgYSArCiAgICB0ICsKICAgIHIgKwogICAgbgogICk7Cn0KY2xhc3MgRmV0Y2hFcnJvciBleHRlbmRzIEVycm9yIHsKICBjb25zdHJ1Y3Rvcih0LCByKSB7CiAgICBzdXBlcih0LCByKSwKICAgICAgKHRoaXMubmFtZSA9ICJGZXRjaEVycm9yIiksCiAgICAgIHIgIT0gbnVsbCAmJiByLmNhdXNlICYmICF0aGlzLmNhdXNlICYmICh0aGlzLmNhdXNlID0gci5jYXVzZSk7CiAgfQp9CmZ1bmN0aW9uIGNyZWF0ZUZldGNoRXJyb3IoZSkgewogIHZhciBjLCB1LCBkLCBFLCBiOwogIGNvbnN0IHQgPQogICAgKChjID0gZS5lcnJvcikgPT0gbnVsbCA/IHZvaWQgMCA6IGMubWVzc2FnZSkgfHwKICAgICgodSA9IGUuZXJyb3IpID09IG51bGwgPyB2b2lkIDAgOiB1LnRvU3RyaW5nKCkpIHx8CiAgICAiIiwKICAgIHIgPQogICAgICAoKGQgPSBlLnJlcXVlc3QpID09IG51bGwgPyB2b2lkIDAgOiBkLm1ldGhvZCkgfHwKICAgICAgKChFID0gZS5vcHRpb25zKSA9PSBudWxsID8gdm9pZCAwIDogRS5tZXRob2QpIHx8CiAgICAgICJHRVQiLAogICAgbiA9ICgoYiA9IGUucmVxdWVzdCkgPT0gbnVsbCA/IHZvaWQgMCA6IGIudXJsKSB8fCBTdHJpbmcoZS5yZXF1ZXN0KSB8fCAiLyIsCiAgICBpID0gYFske3J9XSAke0pTT04uc3RyaW5naWZ5KG4pfWAsCiAgICBhID0gZS5yZXNwb25zZQogICAgICA/IGAke2UucmVzcG9uc2Uuc3RhdHVzfSAke2UucmVzcG9uc2Uuc3RhdHVzVGV4dH1gCiAgICAgIDogIjxubyByZXNwb25zZT4iLAogICAgbyA9IGAke2l9OiAke2F9JHt0ID8gYCAke3R9YCA6ICIifWAsCiAgICBsID0gbmV3IEZldGNoRXJyb3IobywgZS5lcnJvciA/IHsgY2F1c2U6IGUuZXJyb3IgfSA6IHZvaWQgMCk7CiAgZm9yIChjb25zdCBQIG9mIFsicmVxdWVzdCIsICJvcHRpb25zIiwgInJlc3BvbnNlIl0pCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobCwgUCwgewogICAgICBnZXQoKSB7CiAgICAgICAgcmV0dXJuIGVbUF07CiAgICAgIH0sCiAgICB9KTsKICBmb3IgKGNvbnN0IFtQLCBSXSBvZiBbCiAgICBbImRhdGEiLCAiX2RhdGEiXSwKICAgIFsic3RhdHVzIiwgInN0YXR1cyJdLAogICAgWyJzdGF0dXNDb2RlIiwgInN0YXR1cyJdLAogICAgWyJzdGF0dXNUZXh0IiwgInN0YXR1c1RleHQiXSwKICAgIFsic3RhdHVzTWVzc2FnZSIsICJzdGF0dXNUZXh0Il0sCiAgXSkKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCBQLCB7CiAgICAgIGdldCgpIHsKICAgICAgICByZXR1cm4gZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlW1JdOwogICAgICB9LAogICAgfSk7CiAgcmV0dXJuIGw7Cn0KY29uc3QgcGF5bG9hZE1ldGhvZHMgPSBuZXcgU2V0KAogIE9iamVjdC5mcmVlemUoWyJQQVRDSCIsICJQT1NUIiwgIlBVVCIsICJERUxFVEUiXSkKKTsKZnVuY3Rpb24gaXNQYXlsb2FkTWV0aG9kKGUgPSAiR0VUIikgewogIHJldHVybiBwYXlsb2FkTWV0aG9kcy5oYXMoZS50b1VwcGVyQ2FzZSgpKTsKfQpmdW5jdGlvbiBpc0pTT05TZXJpYWxpemFibGUoZSkgewogIGlmIChlID09PSB2b2lkIDApIHJldHVybiAhMTsKICBjb25zdCB0ID0gdHlwZW9mIGU7CiAgcmV0dXJuIHQgPT09ICJzdHJpbmciIHx8IHQgPT09ICJudW1iZXIiIHx8IHQgPT09ICJib29sZWFuIiB8fCB0ID09PSBudWxsCiAgICA/ICEwCiAgICA6IHQgIT09ICJvYmplY3QiCiAgICAgID8gITEKICAgICAgOiBBcnJheS5pc0FycmF5KGUpCiAgICAgICAgPyAhMAogICAgICAgIDogZS5idWZmZXIKICAgICAgICAgID8gITEKICAgICAgICAgIDogKGUuY29uc3RydWN0b3IgJiYgZS5jb25zdHJ1Y3Rvci5uYW1lID09PSAiT2JqZWN0IikgfHwKICAgICAgICAgIHR5cGVvZiBlLnRvSlNPTiA9PSAiZnVuY3Rpb24iOwp9CmNvbnN0IHRleHRUeXBlcyA9IG5ldyBTZXQoWwogICJpbWFnZS9zdmciLAogICJhcHBsaWNhdGlvbi94bWwiLAogICJhcHBsaWNhdGlvbi94aHRtbCIsCiAgImFwcGxpY2F0aW9uL2h0bWwiLApdKSwKICBKU09OX1JFID0gL15hcHBsaWNhdGlvblwvKD86W1x3ISMkJSYqLl5gfi1dKlwrKT9qc29uKDsuKyk/JC9pOwpmdW5jdGlvbiBkZXRlY3RSZXNwb25zZVR5cGUoZSA9ICIiKSB7CiAgaWYgKCFlKSByZXR1cm4gImpzb24iOwogIGNvbnN0IHQgPSBlLnNwbGl0KCI7Iikuc2hpZnQoKSB8fCAiIjsKICByZXR1cm4gSlNPTl9SRS50ZXN0KHQpCiAgICA/ICJqc29uIgogICAgOiB0ZXh0VHlwZXMuaGFzKHQpIHx8IHQuc3RhcnRzV2l0aCgidGV4dC8iKQogICAgICA/ICJ0ZXh0IgogICAgICA6ICJibG9iIjsKfQpmdW5jdGlvbiByZXNvbHZlRmV0Y2hPcHRpb25zKGUsIHQsIHIsIG4pIHsKICBjb25zdCBpID0gbWVyZ2VIZWFkZXJzKAogICAgKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuaGVhZGVycykgPz8gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUuaGVhZGVycyksCiAgICByID09IG51bGwgPyB2b2lkIDAgOiByLmhlYWRlcnMsCiAgICBuCiAgKTsKICBsZXQgYTsKICByZXR1cm4gKAogICAgKChyICE9IG51bGwgJiYgci5xdWVyeSkgfHwKICAgICAgKHIgIT0gbnVsbCAmJiByLnBhcmFtcykgfHwKICAgICAgKHQgIT0gbnVsbCAmJiB0LnBhcmFtcykgfHwKICAgICAgKHQgIT0gbnVsbCAmJiB0LnF1ZXJ5KSkgJiYKICAgIChhID0gewogICAgICAuLi4ociA9PSBudWxsID8gdm9pZCAwIDogci5wYXJhbXMpLAogICAgICAuLi4ociA9PSBudWxsID8gdm9pZCAwIDogci5xdWVyeSksCiAgICAgIC4uLih0ID09IG51bGwgPyB2b2lkIDAgOiB0LnBhcmFtcyksCiAgICAgIC4uLih0ID09IG51bGwgPyB2b2lkIDAgOiB0LnF1ZXJ5KSwKICAgIH0pLAogICAgeyAuLi5yLCAuLi50LCBxdWVyeTogYSwgcGFyYW1zOiBhLCBoZWFkZXJzOiBpIH0KICApOwp9CmZ1bmN0aW9uIG1lcmdlSGVhZGVycyhlLCB0LCByKSB7CiAgaWYgKCF0KSByZXR1cm4gbmV3IHIoZSk7CiAgY29uc3QgbiA9IG5ldyByKHQpOwogIGlmIChlKQogICAgZm9yIChjb25zdCBbaSwgYV0gb2YgU3ltYm9sLml0ZXJhdG9yIGluIGUgfHwgQXJyYXkuaXNBcnJheShlKQogICAgICA/IGUKICAgICAgOiBuZXcgcihlKSkKICAgICAgbi5zZXQoaSwgYSk7CiAgcmV0dXJuIG47Cn0KYXN5bmMgZnVuY3Rpb24gY2FsbEhvb2tzKGUsIHQpIHsKICBpZiAodCkKICAgIGlmIChBcnJheS5pc0FycmF5KHQpKSBmb3IgKGNvbnN0IHIgb2YgdCkgYXdhaXQgcihlKTsKICAgIGVsc2UgYXdhaXQgdChlKTsKfQpjb25zdCByZXRyeVN0YXR1c0NvZGVzID0gbmV3IFNldChbNDA4LCA0MDksIDQyNSwgNDI5LCA1MDAsIDUwMiwgNTAzLCA1MDRdKSwKICBudWxsQm9keVJlc3BvbnNlcyA9IG5ldyBTZXQoWzEwMSwgMjA0LCAyMDUsIDMwNF0pOwpmdW5jdGlvbiBjcmVhdGVGZXRjaChlID0ge30pIHsKICBjb25zdCB7CiAgICBmZXRjaDogdCA9IGdsb2JhbFRoaXMuZmV0Y2gsCiAgICBIZWFkZXJzOiByID0gZ2xvYmFsVGhpcy5IZWFkZXJzLAogICAgQWJvcnRDb250cm9sbGVyOiBuID0gZ2xvYmFsVGhpcy5BYm9ydENvbnRyb2xsZXIsCiAgfSA9IGU7CiAgYXN5bmMgZnVuY3Rpb24gaShsKSB7CiAgICBjb25zdCBjID0KICAgICAgKGwuZXJyb3IgJiYgbC5lcnJvci5uYW1lID09PSAiQWJvcnRFcnJvciIgJiYgIWwub3B0aW9ucy50aW1lb3V0KSB8fCAhMTsKICAgIGlmIChsLm9wdGlvbnMucmV0cnkgIT09ICExICYmICFjKSB7CiAgICAgIGxldCBkOwogICAgICB0eXBlb2YgbC5vcHRpb25zLnJldHJ5ID09ICJudW1iZXIiCiAgICAgICAgPyAoZCA9IGwub3B0aW9ucy5yZXRyeSkKICAgICAgICA6IChkID0gaXNQYXlsb2FkTWV0aG9kKGwub3B0aW9ucy5tZXRob2QpID8gMCA6IDEpOwogICAgICBjb25zdCBFID0gKGwucmVzcG9uc2UgJiYgbC5yZXNwb25zZS5zdGF0dXMpIHx8IDUwMDsKICAgICAgaWYgKAogICAgICAgIGQgPiAwICYmCiAgICAgICAgKEFycmF5LmlzQXJyYXkobC5vcHRpb25zLnJldHJ5U3RhdHVzQ29kZXMpCiAgICAgICAgICA/IGwub3B0aW9ucy5yZXRyeVN0YXR1c0NvZGVzLmluY2x1ZGVzKEUpCiAgICAgICAgICA6IHJldHJ5U3RhdHVzQ29kZXMuaGFzKEUpKQogICAgICApIHsKICAgICAgICBjb25zdCBiID0KICAgICAgICAgIHR5cGVvZiBsLm9wdGlvbnMucmV0cnlEZWxheSA9PSAiZnVuY3Rpb24iCiAgICAgICAgICAgID8gbC5vcHRpb25zLnJldHJ5RGVsYXkobCkKICAgICAgICAgICAgOiBsLm9wdGlvbnMucmV0cnlEZWxheSB8fCAwOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBiID4gMCAmJiAoYXdhaXQgbmV3IFByb21pc2UoKFApID0+IHNldFRpbWVvdXQoUCwgYikpKSwKICAgICAgICAgIGEobC5yZXF1ZXN0LCB7IC4uLmwub3B0aW9ucywgcmV0cnk6IGQgLSAxIH0pCiAgICAgICAgKTsKICAgICAgfQogICAgfQogICAgY29uc3QgdSA9IGNyZWF0ZUZldGNoRXJyb3IobCk7CiAgICB0aHJvdyAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgJiYgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodSwgYSksIHUpOwogIH0KICBjb25zdCBhID0gYXN5bmMgZnVuY3Rpb24gKGMsIHUgPSB7fSkgewogICAgY29uc3QgZCA9IHsKICAgICAgcmVxdWVzdDogYywKICAgICAgb3B0aW9uczogcmVzb2x2ZUZldGNoT3B0aW9ucyhjLCB1LCBlLmRlZmF1bHRzLCByKSwKICAgICAgcmVzcG9uc2U6IHZvaWQgMCwKICAgICAgZXJyb3I6IHZvaWQgMCwKICAgIH07CiAgICBkLm9wdGlvbnMubWV0aG9kICYmIChkLm9wdGlvbnMubWV0aG9kID0gZC5vcHRpb25zLm1ldGhvZC50b1VwcGVyQ2FzZSgpKSwKICAgICAgZC5vcHRpb25zLm9uUmVxdWVzdCAmJiAoYXdhaXQgY2FsbEhvb2tzKGQsIGQub3B0aW9ucy5vblJlcXVlc3QpKSwKICAgICAgdHlwZW9mIGQucmVxdWVzdCA9PSAic3RyaW5nIiAmJgogICAgICAoZC5vcHRpb25zLmJhc2VVUkwgJiYKICAgICAgICAoZC5yZXF1ZXN0ID0gd2l0aEJhc2UoZC5yZXF1ZXN0LCBkLm9wdGlvbnMuYmFzZVVSTCkpLAogICAgICAgIGQub3B0aW9ucy5xdWVyeSAmJgogICAgICAgICgoZC5yZXF1ZXN0ID0gd2l0aFF1ZXJ5KGQucmVxdWVzdCwgZC5vcHRpb25zLnF1ZXJ5KSksCiAgICAgICAgICBkZWxldGUgZC5vcHRpb25zLnF1ZXJ5KSwKICAgICAgICAicXVlcnkiIGluIGQub3B0aW9ucyAmJiBkZWxldGUgZC5vcHRpb25zLnF1ZXJ5LAogICAgICAgICJwYXJhbXMiIGluIGQub3B0aW9ucyAmJiBkZWxldGUgZC5vcHRpb25zLnBhcmFtcyksCiAgICAgIGQub3B0aW9ucy5ib2R5ICYmCiAgICAgIGlzUGF5bG9hZE1ldGhvZChkLm9wdGlvbnMubWV0aG9kKSAmJgogICAgICAoaXNKU09OU2VyaWFsaXphYmxlKGQub3B0aW9ucy5ib2R5KQogICAgICAgID8gKChkLm9wdGlvbnMuYm9keSA9CiAgICAgICAgICB0eXBlb2YgZC5vcHRpb25zLmJvZHkgPT0gInN0cmluZyIKICAgICAgICAgICAgPyBkLm9wdGlvbnMuYm9keQogICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KGQub3B0aW9ucy5ib2R5KSksCiAgICAgICAgICAoZC5vcHRpb25zLmhlYWRlcnMgPSBuZXcgcihkLm9wdGlvbnMuaGVhZGVycyB8fCB7fSkpLAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuaGFzKCJjb250ZW50LXR5cGUiKSB8fAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpLAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuaGFzKCJhY2NlcHQiKSB8fAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuc2V0KCJhY2NlcHQiLCAiYXBwbGljYXRpb24vanNvbiIpKQogICAgICAgIDogKCgicGlwZVRvIiBpbiBkLm9wdGlvbnMuYm9keSAmJgogICAgICAgICAgdHlwZW9mIGQub3B0aW9ucy5ib2R5LnBpcGVUbyA9PSAiZnVuY3Rpb24iKSB8fAogICAgICAgICAgdHlwZW9mIGQub3B0aW9ucy5ib2R5LnBpcGUgPT0gImZ1bmN0aW9uIikgJiYKICAgICAgICAoImR1cGxleCIgaW4gZC5vcHRpb25zIHx8IChkLm9wdGlvbnMuZHVwbGV4ID0gImhhbGYiKSkpOwogICAgbGV0IEU7CiAgICBpZiAoIWQub3B0aW9ucy5zaWduYWwgJiYgZC5vcHRpb25zLnRpbWVvdXQpIHsKICAgICAgY29uc3QgUCA9IG5ldyBuKCk7CiAgICAgIChFID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgY29uc3QgUiA9IG5ldyBFcnJvcigKICAgICAgICAgICJbVGltZW91dEVycm9yXTogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZCBkdWUgdG8gdGltZW91dCIKICAgICAgICApOwogICAgICAgIChSLm5hbWUgPSAiVGltZW91dEVycm9yIiksIChSLmNvZGUgPSAyMyksIFAuYWJvcnQoUik7CiAgICAgIH0sIGQub3B0aW9ucy50aW1lb3V0KSksCiAgICAgICAgKGQub3B0aW9ucy5zaWduYWwgPSBQLnNpZ25hbCk7CiAgICB9CiAgICB0cnkgewogICAgICBkLnJlc3BvbnNlID0gYXdhaXQgdChkLnJlcXVlc3QsIGQub3B0aW9ucyk7CiAgICB9IGNhdGNoIChQKSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgKGQuZXJyb3IgPSBQKSwKICAgICAgICBkLm9wdGlvbnMub25SZXF1ZXN0RXJyb3IgJiYKICAgICAgICAoYXdhaXQgY2FsbEhvb2tzKGQsIGQub3B0aW9ucy5vblJlcXVlc3RFcnJvcikpLAogICAgICAgIGF3YWl0IGkoZCkKICAgICAgKTsKICAgIH0gZmluYWxseSB7CiAgICAgIEUgJiYgY2xlYXJUaW1lb3V0KEUpOwogICAgfQogICAgaWYgKAogICAgICAoZC5yZXNwb25zZS5ib2R5IHx8IGQucmVzcG9uc2UuX2JvZHlJbml0KSAmJgogICAgICAhbnVsbEJvZHlSZXNwb25zZXMuaGFzKGQucmVzcG9uc2Uuc3RhdHVzKSAmJgogICAgICBkLm9wdGlvbnMubWV0aG9kICE9PSAiSEVBRCIKICAgICkgewogICAgICBjb25zdCBQID0KICAgICAgICAoZC5vcHRpb25zLnBhcnNlUmVzcG9uc2UgPyAianNvbiIgOiBkLm9wdGlvbnMucmVzcG9uc2VUeXBlKSB8fAogICAgICAgIGRldGVjdFJlc3BvbnNlVHlwZShkLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSB8fCAiIik7CiAgICAgIHN3aXRjaCAoUCkgewogICAgICAgIGNhc2UgImpzb24iOiB7CiAgICAgICAgICBjb25zdCBSID0gYXdhaXQgZC5yZXNwb25zZS50ZXh0KCksCiAgICAgICAgICAgIFQgPSBkLm9wdGlvbnMucGFyc2VSZXNwb25zZSB8fCBkZXN0cjsKICAgICAgICAgIGQucmVzcG9uc2UuX2RhdGEgPSBUKFIpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGNhc2UgInN0cmVhbSI6IHsKICAgICAgICAgIGQucmVzcG9uc2UuX2RhdGEgPSBkLnJlc3BvbnNlLmJvZHkgfHwgZC5yZXNwb25zZS5fYm9keUluaXQ7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGQucmVzcG9uc2UuX2RhdGEgPSBhd2FpdCBkLnJlc3BvbnNlW1BdKCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAoCiAgICAgIGQub3B0aW9ucy5vblJlc3BvbnNlICYmIChhd2FpdCBjYWxsSG9va3MoZCwgZC5vcHRpb25zLm9uUmVzcG9uc2UpKSwKICAgICAgIWQub3B0aW9ucy5pZ25vcmVSZXNwb25zZUVycm9yICYmCiAgICAgICAgZC5yZXNwb25zZS5zdGF0dXMgPj0gNDAwICYmCiAgICAgICAgZC5yZXNwb25zZS5zdGF0dXMgPCA2MDAKICAgICAgICA/IChkLm9wdGlvbnMub25SZXNwb25zZUVycm9yICYmCiAgICAgICAgICAoYXdhaXQgY2FsbEhvb2tzKGQsIGQub3B0aW9ucy5vblJlc3BvbnNlRXJyb3IpKSwKICAgICAgICAgIGF3YWl0IGkoZCkpCiAgICAgICAgOiBkLnJlc3BvbnNlCiAgICApOwogIH0sCiAgICBvID0gYXN5bmMgZnVuY3Rpb24gKGMsIHUpIHsKICAgICAgcmV0dXJuIChhd2FpdCBhKGMsIHUpKS5fZGF0YTsKICAgIH07CiAgcmV0dXJuICgKICAgIChvLnJhdyA9IGEpLAogICAgKG8ubmF0aXZlID0gKC4uLmwpID0+IHQoLi4ubCkpLAogICAgKG8uY3JlYXRlID0gKGwgPSB7fSwgYyA9IHt9KSA9PgogICAgICBjcmVhdGVGZXRjaCh7CiAgICAgICAgLi4uZSwKICAgICAgICAuLi5jLAogICAgICAgIGRlZmF1bHRzOiB7IC4uLmUuZGVmYXVsdHMsIC4uLmMuZGVmYXVsdHMsIC4uLmwgfSwKICAgICAgfSkpLAogICAgbwogICk7Cn0KY29uc3QgX2dsb2JhbFRoaXMkMiA9IChmdW5jdGlvbiAoKSB7CiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzIDwgInUiKSByZXR1cm4gZ2xvYmFsVGhpczsKICBpZiAodHlwZW9mIHNlbGYgPCAidSIpIHJldHVybiBzZWxmOwogIGlmICh0eXBlb2Ygd2luZG93IDwgInUiKSByZXR1cm4gd2luZG93OwogIGlmICh0eXBlb2YgZ2xvYmFsIDwgInUiKSByZXR1cm4gZ2xvYmFsOwogIHRocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGxvY2F0ZSBnbG9iYWwgb2JqZWN0Iik7Cn0pKCksCiAgZmV0Y2gkMSA9IF9nbG9iYWxUaGlzJDIuZmV0Y2gKICAgID8gKC4uLmUpID0+IF9nbG9iYWxUaGlzJDIuZmV0Y2goLi4uZSkKICAgIDogKCkgPT4KICAgICAgUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJbb2ZldGNoXSBnbG9iYWwuZmV0Y2ggaXMgbm90IHN1cHBvcnRlZCEiKSksCiAgSGVhZGVycyA9IF9nbG9iYWxUaGlzJDIuSGVhZGVycywKICBBYm9ydENvbnRyb2xsZXIgPSBfZ2xvYmFsVGhpcyQyLkFib3J0Q29udHJvbGxlciwKICBvZmV0Y2ggPSBjcmVhdGVGZXRjaCh7IGZldGNoOiBmZXRjaCQxLCBIZWFkZXJzLCBBYm9ydENvbnRyb2xsZXIgfSksCiAgJGZldGNoJDEgPSBvZmV0Y2gsCiAgdXNlUnVudGltZUNvbmZpZyQxID0gKCkgPT4gewogICAgdmFyIGU7CiAgICByZXR1cm4gKAogICAgICAoKGUgPSB3aW5kb3cgPT0gbnVsbCA/IHZvaWQgMCA6IHdpbmRvdy5fX05VWFRfXykgPT0gbnVsbAogICAgICAgID8gdm9pZCAwCiAgICAgICAgOiBlLmNvbmZpZykgfHwge30KICAgICk7CiAgfSwKICBhcHBDb25maWcgPSB1c2VSdW50aW1lQ29uZmlnJDEoKS5hcHAsCiAgYmFzZVVSTCA9ICgpID0+IGFwcENvbmZpZy5iYXNlVVJMLAogIGJ1aWxkQXNzZXRzRGlyID0gKCkgPT4gYXBwQ29uZmlnLmJ1aWxkQXNzZXRzRGlyLAogIGJ1aWxkQXNzZXRzVVJMID0gKC4uLmUpID0+CiAgICBqb2luUmVsYXRpdmVVUkwocHVibGljQXNzZXRzVVJMKCksIGJ1aWxkQXNzZXRzRGlyKCksIC4uLmUpLAogIHB1YmxpY0Fzc2V0c1VSTCA9ICguLi5lKSA9PiB7CiAgICBjb25zdCB0ID0gYXBwQ29uZmlnLmNkblVSTCB8fCBhcHBDb25maWcuYmFzZVVSTDsKICAgIHJldHVybiBlLmxlbmd0aCA/IGpvaW5SZWxhdGl2ZVVSTCh0LCAuLi5lKSA6IHQ7CiAgfTsKKGdsb2JhbFRoaXMuX19idWlsZEFzc2V0c1VSTCA9IGJ1aWxkQXNzZXRzVVJMKSwKICAoZ2xvYmFsVGhpcy5fX3B1YmxpY0Fzc2V0c1VSTCA9IHB1YmxpY0Fzc2V0c1VSTCk7Cmdsb2JhbFRoaXMuJGZldGNoIHx8CiAgKGdsb2JhbFRoaXMuJGZldGNoID0gJGZldGNoJDEuY3JlYXRlKHsgYmFzZVVSTDogYmFzZVVSTCgpIH0pKTsKZnVuY3Rpb24gZmxhdEhvb2tzKGUsIHQgPSB7fSwgcikgewogIGZvciAoY29uc3QgbiBpbiBlKSB7CiAgICBjb25zdCBpID0gZVtuXSwKICAgICAgYSA9IHIgPyBgJHtyfToke259YCA6IG47CiAgICB0eXBlb2YgaSA9PSAib2JqZWN0IiAmJiBpICE9PSBudWxsCiAgICAgID8gZmxhdEhvb2tzKGksIHQsIGEpCiAgICAgIDogdHlwZW9mIGkgPT0gImZ1bmN0aW9uIiAmJiAodFthXSA9IGkpOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCBkZWZhdWx0VGFzayA9IHsgcnVuOiAoZSkgPT4gZSgpIH0sCiAgX2NyZWF0ZVRhc2sgPSAoKSA9PiBkZWZhdWx0VGFzaywKICBjcmVhdGVUYXNrID0KICAgIHR5cGVvZiBjb25zb2xlLmNyZWF0ZVRhc2sgPCAidSIgPyBjb25zb2xlLmNyZWF0ZVRhc2sgOiBfY3JlYXRlVGFzazsKZnVuY3Rpb24gc2VyaWFsVGFza0NhbGxlcihlLCB0KSB7CiAgY29uc3QgciA9IHQuc2hpZnQoKSwKICAgIG4gPSBjcmVhdGVUYXNrKHIpOwogIHJldHVybiBlLnJlZHVjZSgKICAgIChpLCBhKSA9PiBpLnRoZW4oKCkgPT4gbi5ydW4oKCkgPT4gYSguLi50KSkpLAogICAgUHJvbWlzZS5yZXNvbHZlKCkKICApOwp9CmZ1bmN0aW9uIHBhcmFsbGVsVGFza0NhbGxlcihlLCB0KSB7CiAgY29uc3QgciA9IHQuc2hpZnQoKSwKICAgIG4gPSBjcmVhdGVUYXNrKHIpOwogIHJldHVybiBQcm9taXNlLmFsbChlLm1hcCgoaSkgPT4gbi5ydW4oKCkgPT4gaSguLi50KSkpKTsKfQpmdW5jdGlvbiBjYWxsRWFjaFdpdGgoZSwgdCkgewogIGZvciAoY29uc3QgciBvZiBbLi4uZV0pIHIodCk7Cn0KY2xhc3MgSG9va2FibGUgewogIGNvbnN0cnVjdG9yKCkgewogICAgKHRoaXMuX2hvb2tzID0ge30pLAogICAgICAodGhpcy5fYmVmb3JlID0gdm9pZCAwKSwKICAgICAgKHRoaXMuX2FmdGVyID0gdm9pZCAwKSwKICAgICAgKHRoaXMuX2RlcHJlY2F0ZWRNZXNzYWdlcyA9IHZvaWQgMCksCiAgICAgICh0aGlzLl9kZXByZWNhdGVkSG9va3MgPSB7fSksCiAgICAgICh0aGlzLmhvb2sgPSB0aGlzLmhvb2suYmluZCh0aGlzKSksCiAgICAgICh0aGlzLmNhbGxIb29rID0gdGhpcy5jYWxsSG9vay5iaW5kKHRoaXMpKSwKICAgICAgKHRoaXMuY2FsbEhvb2tXaXRoID0gdGhpcy5jYWxsSG9va1dpdGguYmluZCh0aGlzKSk7CiAgfQogIGhvb2sodCwgciwgbiA9IHt9KSB7CiAgICBpZiAoIXQgfHwgdHlwZW9mIHIgIT0gImZ1bmN0aW9uIikgcmV0dXJuICgpID0+IHsgfTsKICAgIGNvbnN0IGkgPSB0OwogICAgbGV0IGE7CiAgICBmb3IgKDsgdGhpcy5fZGVwcmVjYXRlZEhvb2tzW3RdOykKICAgICAgKGEgPSB0aGlzLl9kZXByZWNhdGVkSG9va3NbdF0pLCAodCA9IGEudG8pOwogICAgaWYgKGEgJiYgIW4uYWxsb3dEZXByZWNhdGVkKSB7CiAgICAgIGxldCBvID0gYS5tZXNzYWdlOwogICAgICBvIHx8CiAgICAgICAgKG8gPQogICAgICAgICAgYCR7aX0gaG9vayBoYXMgYmVlbiBkZXByZWNhdGVkYCArCiAgICAgICAgICAoYS50byA/IGAsIHBsZWFzZSB1c2UgJHthLnRvfWAgOiAiIikpLAogICAgICAgIHRoaXMuX2RlcHJlY2F0ZWRNZXNzYWdlcyB8fCAodGhpcy5fZGVwcmVjYXRlZE1lc3NhZ2VzID0gbmV3IFNldCgpKSwKICAgICAgICB0aGlzLl9kZXByZWNhdGVkTWVzc2FnZXMuaGFzKG8pIHx8CiAgICAgICAgKGNvbnNvbGUud2FybihvKSwgdGhpcy5fZGVwcmVjYXRlZE1lc3NhZ2VzLmFkZChvKSk7CiAgICB9CiAgICBpZiAoIXIubmFtZSkKICAgICAgdHJ5IHsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkociwgIm5hbWUiLCB7CiAgICAgICAgICBnZXQ6ICgpID0+ICJfIiArIHQucmVwbGFjZSgvXFcrL2csICJfIikgKyAiX2hvb2tfY2IiLAogICAgICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgICB9KTsKICAgICAgfSBjYXRjaCB7IH0KICAgIHJldHVybiAoCiAgICAgICh0aGlzLl9ob29rc1t0XSA9IHRoaXMuX2hvb2tzW3RdIHx8IFtdKSwKICAgICAgdGhpcy5faG9va3NbdF0ucHVzaChyKSwKICAgICAgKCkgPT4gewogICAgICAgIHIgJiYgKHRoaXMucmVtb3ZlSG9vayh0LCByKSwgKHIgPSB2b2lkIDApKTsKICAgICAgfQogICAgKTsKICB9CiAgaG9va09uY2UodCwgcikgewogICAgbGV0IG4sCiAgICAgIGkgPSAoLi4uYSkgPT4gKAogICAgICAgIHR5cGVvZiBuID09ICJmdW5jdGlvbiIgJiYgbigpLCAobiA9IHZvaWQgMCksIChpID0gdm9pZCAwKSwgciguLi5hKQogICAgICApOwogICAgcmV0dXJuIChuID0gdGhpcy5ob29rKHQsIGkpKSwgbjsKICB9CiAgcmVtb3ZlSG9vayh0LCByKSB7CiAgICBpZiAodGhpcy5faG9va3NbdF0pIHsKICAgICAgY29uc3QgbiA9IHRoaXMuX2hvb2tzW3RdLmluZGV4T2Yocik7CiAgICAgIG4gIT09IC0xICYmIHRoaXMuX2hvb2tzW3RdLnNwbGljZShuLCAxKSwKICAgICAgICB0aGlzLl9ob29rc1t0XS5sZW5ndGggPT09IDAgJiYgZGVsZXRlIHRoaXMuX2hvb2tzW3RdOwogICAgfQogIH0KICBkZXByZWNhdGVIb29rKHQsIHIpIHsKICAgIHRoaXMuX2RlcHJlY2F0ZWRIb29rc1t0XSA9IHR5cGVvZiByID09ICJzdHJpbmciID8geyB0bzogciB9IDogcjsKICAgIGNvbnN0IG4gPSB0aGlzLl9ob29rc1t0XSB8fCBbXTsKICAgIGRlbGV0ZSB0aGlzLl9ob29rc1t0XTsKICAgIGZvciAoY29uc3QgaSBvZiBuKSB0aGlzLmhvb2sodCwgaSk7CiAgfQogIGRlcHJlY2F0ZUhvb2tzKHQpIHsKICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZGVwcmVjYXRlZEhvb2tzLCB0KTsKICAgIGZvciAoY29uc3QgciBpbiB0KSB0aGlzLmRlcHJlY2F0ZUhvb2sociwgdFtyXSk7CiAgfQogIGFkZEhvb2tzKHQpIHsKICAgIGNvbnN0IHIgPSBmbGF0SG9va3ModCksCiAgICAgIG4gPSBPYmplY3Qua2V5cyhyKS5tYXAoKGkpID0+IHRoaXMuaG9vayhpLCByW2ldKSk7CiAgICByZXR1cm4gKCkgPT4gewogICAgICBmb3IgKGNvbnN0IGkgb2Ygbi5zcGxpY2UoMCwgbi5sZW5ndGgpKSBpKCk7CiAgICB9OwogIH0KICByZW1vdmVIb29rcyh0KSB7CiAgICBjb25zdCByID0gZmxhdEhvb2tzKHQpOwogICAgZm9yIChjb25zdCBuIGluIHIpIHRoaXMucmVtb3ZlSG9vayhuLCByW25dKTsKICB9CiAgcmVtb3ZlQWxsSG9va3MoKSB7CiAgICBmb3IgKGNvbnN0IHQgaW4gdGhpcy5faG9va3MpIGRlbGV0ZSB0aGlzLl9ob29rc1t0XTsKICB9CiAgY2FsbEhvb2sodCwgLi4ucikgewogICAgcmV0dXJuIHIudW5zaGlmdCh0KSwgdGhpcy5jYWxsSG9va1dpdGgoc2VyaWFsVGFza0NhbGxlciwgdCwgLi4ucik7CiAgfQogIGNhbGxIb29rUGFyYWxsZWwodCwgLi4ucikgewogICAgcmV0dXJuIHIudW5zaGlmdCh0KSwgdGhpcy5jYWxsSG9va1dpdGgocGFyYWxsZWxUYXNrQ2FsbGVyLCB0LCAuLi5yKTsKICB9CiAgY2FsbEhvb2tXaXRoKHQsIHIsIC4uLm4pIHsKICAgIGNvbnN0IGkgPQogICAgICB0aGlzLl9iZWZvcmUgfHwgdGhpcy5fYWZ0ZXIgPyB7IG5hbWU6IHIsIGFyZ3M6IG4sIGNvbnRleHQ6IHt9IH0gOiB2b2lkIDA7CiAgICB0aGlzLl9iZWZvcmUgJiYgY2FsbEVhY2hXaXRoKHRoaXMuX2JlZm9yZSwgaSk7CiAgICBjb25zdCBhID0gdChyIGluIHRoaXMuX2hvb2tzID8gWy4uLnRoaXMuX2hvb2tzW3JdXSA6IFtdLCBuKTsKICAgIHJldHVybiBhIGluc3RhbmNlb2YgUHJvbWlzZQogICAgICA/IGEuZmluYWxseSgoKSA9PiB7CiAgICAgICAgdGhpcy5fYWZ0ZXIgJiYgaSAmJiBjYWxsRWFjaFdpdGgodGhpcy5fYWZ0ZXIsIGkpOwogICAgICB9KQogICAgICA6ICh0aGlzLl9hZnRlciAmJiBpICYmIGNhbGxFYWNoV2l0aCh0aGlzLl9hZnRlciwgaSksIGEpOwogIH0KICBiZWZvcmVFYWNoKHQpIHsKICAgIHJldHVybiAoCiAgICAgICh0aGlzLl9iZWZvcmUgPSB0aGlzLl9iZWZvcmUgfHwgW10pLAogICAgICB0aGlzLl9iZWZvcmUucHVzaCh0KSwKICAgICAgKCkgPT4gewogICAgICAgIGlmICh0aGlzLl9iZWZvcmUgIT09IHZvaWQgMCkgewogICAgICAgICAgY29uc3QgciA9IHRoaXMuX2JlZm9yZS5pbmRleE9mKHQpOwogICAgICAgICAgciAhPT0gLTEgJiYgdGhpcy5fYmVmb3JlLnNwbGljZShyLCAxKTsKICAgICAgICB9CiAgICAgIH0KICAgICk7CiAgfQogIGFmdGVyRWFjaCh0KSB7CiAgICByZXR1cm4gKAogICAgICAodGhpcy5fYWZ0ZXIgPSB0aGlzLl9hZnRlciB8fCBbXSksCiAgICAgIHRoaXMuX2FmdGVyLnB1c2godCksCiAgICAgICgpID0+IHsKICAgICAgICBpZiAodGhpcy5fYWZ0ZXIgIT09IHZvaWQgMCkgewogICAgICAgICAgY29uc3QgciA9IHRoaXMuX2FmdGVyLmluZGV4T2YodCk7CiAgICAgICAgICByICE9PSAtMSAmJiB0aGlzLl9hZnRlci5zcGxpY2UociwgMSk7CiAgICAgICAgfQogICAgICB9CiAgICApOwogIH0KfQpmdW5jdGlvbiBjcmVhdGVIb29rcygpIHsKICByZXR1cm4gbmV3IEhvb2thYmxlKCk7Cn0KZnVuY3Rpb24gY3JlYXRlQ29udGV4dChlID0ge30pIHsKICBsZXQgdCwKICAgIHIgPSAhMTsKICBjb25zdCBuID0gKG8pID0+IHsKICAgIGlmICh0ICYmIHQgIT09IG8pIHRocm93IG5ldyBFcnJvcigiQ29udGV4dCBjb25mbGljdCIpOwogIH07CiAgbGV0IGk7CiAgaWYgKGUuYXN5bmNDb250ZXh0KSB7CiAgICBjb25zdCBvID0gZS5Bc3luY0xvY2FsU3RvcmFnZSB8fCBnbG9iYWxUaGlzLkFzeW5jTG9jYWxTdG9yYWdlOwogICAgbwogICAgICA/IChpID0gbmV3IG8oKSkKICAgICAgOiBjb25zb2xlLndhcm4oIlt1bmN0eF0gYEFzeW5jTG9jYWxTdG9yYWdlYCBpcyBub3QgcHJvdmlkZWQuIik7CiAgfQogIGNvbnN0IGEgPSAoKSA9PiB7CiAgICBpZiAoaSkgewogICAgICBjb25zdCBvID0gaS5nZXRTdG9yZSgpOwogICAgICBpZiAobyAhPT0gdm9pZCAwKSByZXR1cm4gbzsKICAgIH0KICAgIHJldHVybiB0OwogIH07CiAgcmV0dXJuIHsKICAgIHVzZTogKCkgPT4gewogICAgICBjb25zdCBvID0gYSgpOwogICAgICBpZiAobyA9PT0gdm9pZCAwKSB0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgaXMgbm90IGF2YWlsYWJsZSIpOwogICAgICByZXR1cm4gbzsKICAgIH0sCiAgICB0cnlVc2U6ICgpID0+IGEoKSwKICAgIHNldDogKG8sIGwpID0+IHsKICAgICAgbCB8fCBuKG8pLCAodCA9IG8pLCAociA9ICEwKTsKICAgIH0sCiAgICB1bnNldDogKCkgPT4gewogICAgICAodCA9IHZvaWQgMCksIChyID0gITEpOwogICAgfSwKICAgIGNhbGw6IChvLCBsKSA9PiB7CiAgICAgIG4obyksICh0ID0gbyk7CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIGkgPyBpLnJ1bihvLCBsKSA6IGwoKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICByIHx8ICh0ID0gdm9pZCAwKTsKICAgICAgfQogICAgfSwKICAgIGFzeW5jIGNhbGxBc3luYyhvLCBsKSB7CiAgICAgIHQgPSBvOwogICAgICBjb25zdCBjID0gKCkgPT4gewogICAgICAgIHQgPSBvOwogICAgICB9LAogICAgICAgIHUgPSAoKSA9PiAodCA9PT0gbyA/IGMgOiB2b2lkIDApOwogICAgICBhc3luY0hhbmRsZXJzLmFkZCh1KTsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCBkID0gaSA/IGkucnVuKG8sIGwpIDogbCgpOwogICAgICAgIHJldHVybiByIHx8ICh0ID0gdm9pZCAwKSwgYXdhaXQgZDsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBhc3luY0hhbmRsZXJzLmRlbGV0ZSh1KTsKICAgICAgfQogICAgfSwKICB9Owp9CmZ1bmN0aW9uIGNyZWF0ZU5hbWVzcGFjZShlID0ge30pIHsKICBjb25zdCB0ID0ge307CiAgcmV0dXJuIHsKICAgIGdldChyLCBuID0ge30pIHsKICAgICAgcmV0dXJuIHRbcl0gfHwgKHRbcl0gPSBjcmVhdGVDb250ZXh0KHsgLi4uZSwgLi4ubiB9KSksIHRbcl07CiAgICB9LAogIH07Cn0KY29uc3QgX2dsb2JhbFRoaXMkMSA9CiAgdHlwZW9mIGdsb2JhbFRoaXMgPCAidSIKICAgID8gZ2xvYmFsVGhpcwogICAgOiB0eXBlb2Ygc2VsZiA8ICJ1IgogICAgICA/IHNlbGYKICAgICAgOiB0eXBlb2YgZ2xvYmFsIDwgInUiCiAgICAgICAgPyBnbG9iYWwKICAgICAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIKICAgICAgICAgID8gd2luZG93CiAgICAgICAgICA6IHt9LAogIGdsb2JhbEtleSQxID0gIl9fdW5jdHhfXyIsCiAgZGVmYXVsdE5hbWVzcGFjZSA9CiAgICBfZ2xvYmFsVGhpcyQxW2dsb2JhbEtleSQxXSB8fAogICAgKF9nbG9iYWxUaGlzJDFbZ2xvYmFsS2V5JDFdID0gY3JlYXRlTmFtZXNwYWNlKCkpLAogIGdldENvbnRleHQgPSAoZSwgdCA9IHt9KSA9PiBkZWZhdWx0TmFtZXNwYWNlLmdldChlLCB0KSwKICBhc3luY0hhbmRsZXJzS2V5ID0gIl9fdW5jdHhfYXN5bmNfaGFuZGxlcnNfXyIsCiAgYXN5bmNIYW5kbGVycyA9CiAgICBfZ2xvYmFsVGhpcyQxW2FzeW5jSGFuZGxlcnNLZXldIHx8CiAgICAoX2dsb2JhbFRoaXMkMVthc3luY0hhbmRsZXJzS2V5XSA9IG5ldyBTZXQoKSk7CmZ1bmN0aW9uIGV4ZWN1dGVBc3luYyhlKSB7CiAgY29uc3QgdCA9IFtdOwogIGZvciAoY29uc3QgaSBvZiBhc3luY0hhbmRsZXJzKSB7CiAgICBjb25zdCBhID0gaSgpOwogICAgYSAmJiB0LnB1c2goYSk7CiAgfQogIGNvbnN0IHIgPSAoKSA9PiB7CiAgICBmb3IgKGNvbnN0IGkgb2YgdCkgaSgpOwogIH07CiAgbGV0IG4gPSBlKCk7CiAgcmV0dXJuICgKICAgIG4gJiYKICAgIHR5cGVvZiBuID09ICJvYmplY3QiICYmCiAgICAiY2F0Y2giIGluIG4gJiYKICAgIChuID0gbi5jYXRjaCgoaSkgPT4gewogICAgICB0aHJvdyAocigpLCBpKTsKICAgIH0pKSwKICAgIFtuLCByXQogICk7Cn0KY29uc3QgYXBwUGFnZVRyYW5zaXRpb24gPSB7IG5hbWU6ICJwYWdlIiwgbW9kZTogIm91dC1pbiIgfSwKICBhcHBMYXlvdXRUcmFuc2l0aW9uID0gITEsCiAgYXBwS2VlcGFsaXZlID0gITEsCiAgbnV4dExpbmtEZWZhdWx0cyA9IHsKICAgIGNvbXBvbmVudE5hbWU6ICJOdXh0TGluayIsCiAgICBwcmVmZXRjaDogITAsCiAgICBwcmVmZXRjaE9uOiB7IHZpc2liaWxpdHk6ICEwIH0sCiAgfSwKICBudXh0RGVmYXVsdEVycm9yVmFsdWUgPSBudWxsLAogIHZ1ZUFwcFJvb3RDb250YWluZXIgPSAiI19fbnV4dCIsCiAgYXBwSWQgPSAibnV4dC1hcHAiLAogIG91dGRhdGVkQnVpbGRJbnRlcnZhbCA9IDM2ZTUsCiAgY2h1bmtFcnJvckV2ZW50ID0gInZpdGU6cHJlbG9hZEVycm9yIjsKZnVuY3Rpb24gZ2V0TnV4dEFwcEN0eChlID0gYXBwSWQpIHsKICByZXR1cm4gZ2V0Q29udGV4dChlLCB7IGFzeW5jQ29udGV4dDogITEgfSk7Cn0KY29uc3QgTnV4dFBsdWdpbkluZGljYXRvciA9ICJfX251eHRfcGx1Z2luIjsKZnVuY3Rpb24gY3JlYXRlTnV4dEFwcChlKSB7CiAgdmFyIGk7CiAgbGV0IHQgPSAwOwogIGNvbnN0IHIgPSB7CiAgICBfaWQ6IGUuaWQgfHwgYXBwSWQgfHwgIm51eHQtYXBwIiwKICAgIF9zY29wZTogZWZmZWN0U2NvcGUoKSwKICAgIHByb3ZpZGU6IHZvaWQgMCwKICAgIGdsb2JhbE5hbWU6ICJudXh0IiwKICAgIHZlcnNpb25zOiB7CiAgICAgIGdldCBudXh0KCkgewogICAgICAgIHJldHVybiAiMy4xNS4wIjsKICAgICAgfSwKICAgICAgZ2V0IHZ1ZSgpIHsKICAgICAgICByZXR1cm4gci52dWVBcHAudmVyc2lvbjsKICAgICAgfSwKICAgIH0sCiAgICBwYXlsb2FkOiBzaGFsbG93UmVhY3RpdmUoewogICAgICAuLi4oKChpID0gZS5zc3JDb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogaS5wYXlsb2FkKSB8fCB7fSksCiAgICAgIGRhdGE6IHNoYWxsb3dSZWFjdGl2ZSh7fSksCiAgICAgIHN0YXRlOiByZWFjdGl2ZSh7fSksCiAgICAgIG9uY2U6IG5ldyBTZXQoKSwKICAgICAgX2Vycm9yczogc2hhbGxvd1JlYWN0aXZlKHt9KSwKICAgIH0pLAogICAgc3RhdGljOiB7IGRhdGE6IHt9IH0sCiAgICBydW5XaXRoQ29udGV4dChhKSB7CiAgICAgIHJldHVybiByLl9zY29wZS5hY3RpdmUgJiYgIWdldEN1cnJlbnRTY29wZSgpCiAgICAgICAgPyByLl9zY29wZS5ydW4oKCkgPT4gY2FsbFdpdGhOdXh0KHIsIGEpKQogICAgICAgIDogY2FsbFdpdGhOdXh0KHIsIGEpOwogICAgfSwKICAgIGlzSHlkcmF0aW5nOiAhMCwKICAgIGRlZmVySHlkcmF0aW9uKCkgewogICAgICBpZiAoIXIuaXNIeWRyYXRpbmcpIHJldHVybiAoKSA9PiB7IH07CiAgICAgIHQrKzsKICAgICAgbGV0IGEgPSAhMTsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBpZiAoIWEgJiYgKChhID0gITApLCB0LS0sIHQgPT09IDApKQogICAgICAgICAgcmV0dXJuIChyLmlzSHlkcmF0aW5nID0gITEpLCByLmNhbGxIb29rKCJhcHA6c3VzcGVuc2U6cmVzb2x2ZSIpOwogICAgICB9OwogICAgfSwKICAgIF9hc3luY0RhdGFQcm9taXNlczoge30sCiAgICBfYXN5bmNEYXRhOiBzaGFsbG93UmVhY3RpdmUoe30pLAogICAgX3BheWxvYWRSZXZpdmVyczoge30sCiAgICAuLi5lLAogIH07CiAgewogICAgY29uc3QgYSA9IHdpbmRvdy5fX05VWFRfXzsKICAgIGlmIChhKQogICAgICBmb3IgKGNvbnN0IG8gaW4gYSkKICAgICAgICBzd2l0Y2ggKG8pIHsKICAgICAgICAgIGNhc2UgImRhdGEiOgogICAgICAgICAgY2FzZSAic3RhdGUiOgogICAgICAgICAgY2FzZSAiX2Vycm9ycyI6CiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oci5wYXlsb2FkW29dLCBhW29dKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByLnBheWxvYWRbb10gPSBhW29dOwogICAgICAgIH0KICB9CiAgKHIuaG9va3MgPSBjcmVhdGVIb29rcygpKSwKICAgIChyLmhvb2sgPSByLmhvb2tzLmhvb2spLAogICAgKHIuY2FsbEhvb2sgPSByLmhvb2tzLmNhbGxIb29rKSwKICAgIChyLnByb3ZpZGUgPSAoYSwgbykgPT4gewogICAgICBjb25zdCBsID0gIiQiICsgYTsKICAgICAgZGVmaW5lR2V0dGVyJDEociwgbCwgbyksCiAgICAgICAgZGVmaW5lR2V0dGVyJDEoci52dWVBcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMsIGwsIG8pOwogICAgfSksCiAgICBkZWZpbmVHZXR0ZXIkMShyLnZ1ZUFwcCwgIiRudXh0IiwgciksCiAgICBkZWZpbmVHZXR0ZXIkMShyLnZ1ZUFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcywgIiRudXh0Iiwgcik7CiAgewogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoY2h1bmtFcnJvckV2ZW50LCAobykgPT4gewogICAgICByLmNhbGxIb29rKCJhcHA6Y2h1bmtFcnJvciIsIHsgZXJyb3I6IG8ucGF5bG9hZCB9KSwKICAgICAgICAoci5pc0h5ZHJhdGluZyB8fAogICAgICAgICAgby5wYXlsb2FkLm1lc3NhZ2UuaW5jbHVkZXMoIlVuYWJsZSB0byBwcmVsb2FkIENTUyIpKSAmJgogICAgICAgIG8ucHJldmVudERlZmF1bHQoKTsKICAgIH0pLAogICAgICAod2luZG93LnVzZU51eHRBcHAgPSB3aW5kb3cudXNlTnV4dEFwcCB8fCB1c2VOdXh0QXBwKTsKICAgIGNvbnN0IGEgPSByLmhvb2soImFwcDplcnJvciIsICguLi5vKSA9PiB7CiAgICAgIGNvbnNvbGUuZXJyb3IoIltudXh0XSBlcnJvciBjYXVnaHQgZHVyaW5nIGFwcCBpbml0aWFsaXphdGlvbiIsIC4uLm8pOwogICAgfSk7CiAgICByLmhvb2soImFwcDptb3VudGVkIiwgYSk7CiAgfQogIGNvbnN0IG4gPSByLnBheWxvYWQuY29uZmlnOwogIHJldHVybiByLnByb3ZpZGUoImNvbmZpZyIsIG4pLCByOwp9CmZ1bmN0aW9uIHJlZ2lzdGVyUGx1Z2luSG9va3MoZSwgdCkgewogIHQuaG9va3MgJiYgZS5ob29rcy5hZGRIb29rcyh0Lmhvb2tzKTsKfQphc3luYyBmdW5jdGlvbiBhcHBseVBsdWdpbihlLCB0KSB7CiAgaWYgKHR5cGVvZiB0ID09ICJmdW5jdGlvbiIpIHsKICAgIGNvbnN0IHsgcHJvdmlkZTogciB9ID0gKGF3YWl0IGUucnVuV2l0aENvbnRleHQoKCkgPT4gdChlKSkpIHx8IHt9OwogICAgaWYgKHIgJiYgdHlwZW9mIHIgPT0gIm9iamVjdCIpIGZvciAoY29uc3QgbiBpbiByKSBlLnByb3ZpZGUobiwgcltuXSk7CiAgfQp9CmFzeW5jIGZ1bmN0aW9uIGFwcGx5UGx1Z2lucyhlLCB0KSB7CiAgY29uc3QgciA9IFtdLAogICAgbiA9IFtdLAogICAgaSA9IFtdLAogICAgYSA9IFtdOwogIGxldCBvID0gMDsKICBhc3luYyBmdW5jdGlvbiBsKGMpIHsKICAgIHZhciBkOwogICAgY29uc3QgdSA9CiAgICAgICgoZCA9IGMuZGVwZW5kc09uKSA9PSBudWxsCiAgICAgICAgPyB2b2lkIDAKICAgICAgICA6IGQuZmlsdGVyKChFKSA9PiB0LnNvbWUoKGIpID0+IGIuX25hbWUgPT09IEUpICYmICFyLmluY2x1ZGVzKEUpKSkgPz8KICAgICAgW107CiAgICBpZiAodS5sZW5ndGggPiAwKSBuLnB1c2goW25ldyBTZXQodSksIGNdKTsKICAgIGVsc2UgewogICAgICBjb25zdCBFID0gYXBwbHlQbHVnaW4oZSwgYykudGhlbihhc3luYyAoKSA9PiB7CiAgICAgICAgYy5fbmFtZSAmJgogICAgICAgICAgKHIucHVzaChjLl9uYW1lKSwKICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoCiAgICAgICAgICAgICAgbi5tYXAoYXN5bmMgKFtiLCBQXSkgPT4gewogICAgICAgICAgICAgICAgYi5oYXMoYy5fbmFtZSkgJiYKICAgICAgICAgICAgICAgICAgKGIuZGVsZXRlKGMuX25hbWUpLCBiLnNpemUgPT09IDAgJiYgKG8rKywgYXdhaXQgbChQKSkpOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICkpOwogICAgICB9KTsKICAgICAgYy5wYXJhbGxlbCA/IGkucHVzaChFLmNhdGNoKChiKSA9PiBhLnB1c2goYikpKSA6IGF3YWl0IEU7CiAgICB9CiAgfQogIGZvciAoY29uc3QgYyBvZiB0KSByZWdpc3RlclBsdWdpbkhvb2tzKGUsIGMpOwogIGZvciAoY29uc3QgYyBvZiB0KSBhd2FpdCBsKGMpOwogIGlmICgoYXdhaXQgUHJvbWlzZS5hbGwoaSksIG8pKQogICAgZm9yIChsZXQgYyA9IDA7IGMgPCBvOyBjKyspIGF3YWl0IFByb21pc2UuYWxsKGkpOwogIGlmIChhLmxlbmd0aCkgdGhyb3cgYVswXTsKfQpmdW5jdGlvbiBkZWZpbmVOdXh0UGx1Z2luKGUpIHsKICBpZiAodHlwZW9mIGUgPT0gImZ1bmN0aW9uIikgcmV0dXJuIGU7CiAgY29uc3QgdCA9IGUuX25hbWUgfHwgZS5uYW1lOwogIHJldHVybiAoCiAgICBkZWxldGUgZS5uYW1lLAogICAgT2JqZWN0LmFzc2lnbihlLnNldHVwIHx8ICgoKSA9PiB7IH0pLCBlLCB7CiAgICAgIFtOdXh0UGx1Z2luSW5kaWNhdG9yXTogITAsCiAgICAgIF9uYW1lOiB0LAogICAgfSkKICApOwp9CmNvbnN0IGRlZmluZVBheWxvYWRQbHVnaW4gPSBkZWZpbmVOdXh0UGx1Z2luOwpmdW5jdGlvbiBjYWxsV2l0aE51eHQoZSwgdCwgcikgewogIGNvbnN0IG4gPSAoKSA9PiB0KCk7CiAgcmV0dXJuIGdldE51eHRBcHBDdHgoZS5faWQpLnNldChlKSwgZS52dWVBcHAucnVuV2l0aENvbnRleHQobik7Cn0KZnVuY3Rpb24gdHJ5VXNlTnV4dEFwcChlKSB7CiAgdmFyIHI7CiAgbGV0IHQ7CiAgcmV0dXJuICgKICAgIGhhc0luamVjdGlvbkNvbnRleHQoKSAmJgogICAgKHQgPQogICAgICAociA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCkpID09IG51bGwgPyB2b2lkIDAgOiByLmFwcENvbnRleHQuYXBwLiRudXh0KSwKICAgICh0ID0gdCB8fCBnZXROdXh0QXBwQ3R4KGUpLnRyeVVzZSgpKSwKICAgIHQgfHwgbnVsbAogICk7Cn0KZnVuY3Rpb24gdXNlTnV4dEFwcChlKSB7CiAgY29uc3QgdCA9IHRyeVVzZU51eHRBcHAoZSk7CiAgaWYgKCF0KSB0aHJvdyBuZXcgRXJyb3IoIltudXh0XSBpbnN0YW5jZSB1bmF2YWlsYWJsZSIpOwogIHJldHVybiB0Owp9CmZ1bmN0aW9uIHVzZVJ1bnRpbWVDb25maWcoZSkgewogIHJldHVybiB1c2VOdXh0QXBwKCkuJGNvbmZpZzsKfQpmdW5jdGlvbiBkZWZpbmVHZXR0ZXIkMShlLCB0LCByKSB7CiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHQsIHsgZ2V0OiAoKSA9PiByIH0pOwp9CmZ1bmN0aW9uIHBhcnNlJDIoZSwgdCkgewogIGlmICh0eXBlb2YgZSAhPSAic3RyaW5nIikKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nIik7CiAgY29uc3QgciA9IHt9LAogICAgbiA9IHQgfHwge30sCiAgICBpID0gbi5kZWNvZGUgfHwgZGVjb2RlJDE7CiAgbGV0IGEgPSAwOwogIGZvciAoOyBhIDwgZS5sZW5ndGg7KSB7CiAgICBjb25zdCBvID0gZS5pbmRleE9mKCI9IiwgYSk7CiAgICBpZiAobyA9PT0gLTEpIGJyZWFrOwogICAgbGV0IGwgPSBlLmluZGV4T2YoIjsiLCBhKTsKICAgIGlmIChsID09PSAtMSkgbCA9IGUubGVuZ3RoOwogICAgZWxzZSBpZiAobCA8IG8pIHsKICAgICAgYSA9IGUubGFzdEluZGV4T2YoIjsiLCBvIC0gMSkgKyAxOwogICAgICBjb250aW51ZTsKICAgIH0KICAgIGNvbnN0IGMgPSBlLnNsaWNlKGEsIG8pLnRyaW0oKTsKICAgIGlmIChuICE9IG51bGwgJiYgbi5maWx0ZXIgJiYgIShuICE9IG51bGwgJiYgbi5maWx0ZXIoYykpKSB7CiAgICAgIGEgPSBsICsgMTsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAocltjXSA9PT0gdm9pZCAwKSB7CiAgICAgIGxldCB1ID0gZS5zbGljZShvICsgMSwgbCkudHJpbSgpOwogICAgICB1LmNvZGVQb2ludEF0KDApID09PSAzNCAmJiAodSA9IHUuc2xpY2UoMSwgLTEpKSwgKHJbY10gPSB0cnlEZWNvZGUodSwgaSkpOwogICAgfQogICAgYSA9IGwgKyAxOwogIH0KICByZXR1cm4gcjsKfQpmdW5jdGlvbiBkZWNvZGUkMShlKSB7CiAgcmV0dXJuIGUuaW5jbHVkZXMoIiUiKSA/IGRlY29kZVVSSUNvbXBvbmVudChlKSA6IGU7Cn0KZnVuY3Rpb24gdHJ5RGVjb2RlKGUsIHQpIHsKICB0cnkgewogICAgcmV0dXJuIHQoZSk7CiAgfSBjYXRjaCB7CiAgICByZXR1cm4gZTsKICB9Cn0KY29uc3QgZmllbGRDb250ZW50UmVnRXhwID0gL15bXHUwMDA5XHUwMDIwLVx1MDA3RVx1MDA4MC1cdTAwRkZdKyQvOwpmdW5jdGlvbiBzZXJpYWxpemUoZSwgdCwgcikgewogIGNvbnN0IG4gPSByIHx8IHt9LAogICAgaSA9IG4uZW5jb2RlIHx8IGVuY29kZVVSSUNvbXBvbmVudDsKICBpZiAodHlwZW9mIGkgIT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uIGVuY29kZSBpcyBpbnZhbGlkIik7CiAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChlKSkKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZCIpOwogIGNvbnN0IGEgPSBpKHQpOwogIGlmIChhICYmICFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChhKSkKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHZhbCBpcyBpbnZhbGlkIik7CiAgbGV0IG8gPSBlICsgIj0iICsgYTsKICBpZiAobi5tYXhBZ2UgIT09IHZvaWQgMCAmJiBuLm1heEFnZSAhPT0gbnVsbCkgewogICAgY29uc3QgbCA9IG4ubWF4QWdlIC0gMDsKICAgIGlmIChOdW1iZXIuaXNOYU4obCkgfHwgIU51bWJlci5pc0Zpbml0ZShsKSkKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uIG1heEFnZSBpcyBpbnZhbGlkIik7CiAgICBvICs9ICI7IE1heC1BZ2U9IiArIE1hdGguZmxvb3IobCk7CiAgfQogIGlmIChuLmRvbWFpbikgewogICAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChuLmRvbWFpbikpCiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiBkb21haW4gaXMgaW52YWxpZCIpOwogICAgbyArPSAiOyBEb21haW49IiArIG4uZG9tYWluOwogIH0KICBpZiAobi5wYXRoKSB7CiAgICBpZiAoIWZpZWxkQ29udGVudFJlZ0V4cC50ZXN0KG4ucGF0aCkpCiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiBwYXRoIGlzIGludmFsaWQiKTsKICAgIG8gKz0gIjsgUGF0aD0iICsgbi5wYXRoOwogIH0KICBpZiAobi5leHBpcmVzKSB7CiAgICBpZiAoIWlzRGF0ZSQxKG4uZXhwaXJlcykgfHwgTnVtYmVyLmlzTmFOKG4uZXhwaXJlcy52YWx1ZU9mKCkpKQogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gZXhwaXJlcyBpcyBpbnZhbGlkIik7CiAgICBvICs9ICI7IEV4cGlyZXM9IiArIG4uZXhwaXJlcy50b1VUQ1N0cmluZygpOwogIH0KICBpZiAoCiAgICAobi5odHRwT25seSAmJiAobyArPSAiOyBIdHRwT25seSIpLAogICAgICBuLnNlY3VyZSAmJiAobyArPSAiOyBTZWN1cmUiKSwKICAgICAgbi5wcmlvcml0eSkKICApCiAgICBzd2l0Y2ggKAogICAgdHlwZW9mIG4ucHJpb3JpdHkgPT0gInN0cmluZyIgPyBuLnByaW9yaXR5LnRvTG93ZXJDYXNlKCkgOiBuLnByaW9yaXR5CiAgICApIHsKICAgICAgY2FzZSAibG93IjogewogICAgICAgIG8gKz0gIjsgUHJpb3JpdHk9TG93IjsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJtZWRpdW0iOiB7CiAgICAgICAgbyArPSAiOyBQcmlvcml0eT1NZWRpdW0iOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImhpZ2giOiB7CiAgICAgICAgbyArPSAiOyBQcmlvcml0eT1IaWdoIjsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiBwcmlvcml0eSBpcyBpbnZhbGlkIik7CiAgICB9CiAgaWYgKG4uc2FtZVNpdGUpCiAgICBzd2l0Y2ggKAogICAgdHlwZW9mIG4uc2FtZVNpdGUgPT0gInN0cmluZyIgPyBuLnNhbWVTaXRlLnRvTG93ZXJDYXNlKCkgOiBuLnNhbWVTaXRlCiAgICApIHsKICAgICAgY2FzZSAhMDogewogICAgICAgIG8gKz0gIjsgU2FtZVNpdGU9U3RyaWN0IjsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJsYXgiOiB7CiAgICAgICAgbyArPSAiOyBTYW1lU2l0ZT1MYXgiOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgInN0cmljdCI6IHsKICAgICAgICBvICs9ICI7IFNhbWVTaXRlPVN0cmljdCI7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAibm9uZSI6IHsKICAgICAgICBvICs9ICI7IFNhbWVTaXRlPU5vbmUiOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uIHNhbWVTaXRlIGlzIGludmFsaWQiKTsKICAgIH0KICByZXR1cm4gbi5wYXJ0aXRpb25lZCAmJiAobyArPSAiOyBQYXJ0aXRpb25lZCIpLCBvOwp9CmZ1bmN0aW9uIGlzRGF0ZSQxKGUpIHsKICByZXR1cm4gKAogICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpID09PSAiW29iamVjdCBEYXRlXSIgfHwgZSBpbnN0YW5jZW9mIERhdGUKICApOwp9CmNvbnN0IGRlZmF1bHRzID0gT2JqZWN0LmZyZWV6ZSh7CiAgaWdub3JlVW5rbm93bjogITEsCiAgcmVzcGVjdFR5cGU6ICExLAogIHJlc3BlY3RGdW5jdGlvbk5hbWVzOiAhMSwKICByZXNwZWN0RnVuY3Rpb25Qcm9wZXJ0aWVzOiAhMSwKICB1bm9yZGVyZWRPYmplY3RzOiAhMCwKICB1bm9yZGVyZWRBcnJheXM6ICExLAogIHVub3JkZXJlZFNldHM6ICExLAogIGV4Y2x1ZGVLZXlzOiB2b2lkIDAsCiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLAogIHJlcGxhY2VyOiB2b2lkIDAsCn0pOwpmdW5jdGlvbiBvYmplY3RIYXNoKGUsIHQpIHsKICB0ID8gKHQgPSB7IC4uLmRlZmF1bHRzLCAuLi50IH0pIDogKHQgPSBkZWZhdWx0cyk7CiAgY29uc3QgciA9IGNyZWF0ZUhhc2hlcih0KTsKICByZXR1cm4gci5kaXNwYXRjaChlKSwgci50b1N0cmluZygpOwp9CmNvbnN0IGRlZmF1bHRQcm90b3R5cGVzS2V5cyA9IE9iamVjdC5mcmVlemUoWwogICJwcm90b3R5cGUiLAogICJfX3Byb3RvX18iLAogICJjb25zdHJ1Y3RvciIsCl0pOwpmdW5jdGlvbiBjcmVhdGVIYXNoZXIoZSkgewogIGxldCB0ID0gIiIsCiAgICByID0gbmV3IE1hcCgpOwogIGNvbnN0IG4gPSAoaSkgPT4gewogICAgdCArPSBpOwogIH07CiAgcmV0dXJuIHsKICAgIHRvU3RyaW5nKCkgewogICAgICByZXR1cm4gdDsKICAgIH0sCiAgICBnZXRDb250ZXh0KCkgewogICAgICByZXR1cm4gcjsKICAgIH0sCiAgICBkaXNwYXRjaChpKSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgZS5yZXBsYWNlciAmJiAoaSA9IGUucmVwbGFjZXIoaSkpLAogICAgICAgIHRoaXNbaSA9PT0gbnVsbCA/ICJudWxsIiA6IHR5cGVvZiBpXShpKQogICAgICApOwogICAgfSwKICAgIG9iamVjdChpKSB7CiAgICAgIGlmIChpICYmIHR5cGVvZiBpLnRvSlNPTiA9PSAiZnVuY3Rpb24iKSByZXR1cm4gdGhpcy5vYmplY3QoaS50b0pTT04oKSk7CiAgICAgIGNvbnN0IGEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaSk7CiAgICAgIGxldCBvID0gIiI7CiAgICAgIGNvbnN0IGwgPSBhLmxlbmd0aDsKICAgICAgbCA8IDEwID8gKG8gPSAidW5rbm93bjpbIiArIGEgKyAiXSIpIDogKG8gPSBhLnNsaWNlKDgsIGwgLSAxKSksCiAgICAgICAgKG8gPSBvLnRvTG93ZXJDYXNlKCkpOwogICAgICBsZXQgYyA9IG51bGw7CiAgICAgIGlmICgoYyA9IHIuZ2V0KGkpKSA9PT0gdm9pZCAwKSByLnNldChpLCByLnNpemUpOwogICAgICBlbHNlIHJldHVybiB0aGlzLmRpc3BhdGNoKCJbQ0lSQ1VMQVI6IiArIGMgKyAiXSIpOwogICAgICBpZiAodHlwZW9mIEJ1ZmZlciA8ICJ1IiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKGkpKQogICAgICAgIHJldHVybiBuKCJidWZmZXI6IiksIG4oaS50b1N0cmluZygidXRmOCIpKTsKICAgICAgaWYgKG8gIT09ICJvYmplY3QiICYmIG8gIT09ICJmdW5jdGlvbiIgJiYgbyAhPT0gImFzeW5jZnVuY3Rpb24iKQogICAgICAgIHRoaXNbb10gPyB0aGlzW29dKGkpIDogZS5pZ25vcmVVbmtub3duIHx8IHRoaXMudW5rb3duKGksIG8pOwogICAgICBlbHNlIHsKICAgICAgICBsZXQgdSA9IE9iamVjdC5rZXlzKGkpOwogICAgICAgIGUudW5vcmRlcmVkT2JqZWN0cyAmJiAodSA9IHUuc29ydCgpKTsKICAgICAgICBsZXQgZCA9IFtdOwogICAgICAgIGUucmVzcGVjdFR5cGUgIT09ICExICYmCiAgICAgICAgICAhaXNOYXRpdmVGdW5jdGlvbihpKSAmJgogICAgICAgICAgKGQgPSBkZWZhdWx0UHJvdG90eXBlc0tleXMpLAogICAgICAgICAgZS5leGNsdWRlS2V5cyAmJgogICAgICAgICAgKCh1ID0gdS5maWx0ZXIoKGIpID0+ICFlLmV4Y2x1ZGVLZXlzKGIpKSksCiAgICAgICAgICAgIChkID0gZC5maWx0ZXIoKGIpID0+ICFlLmV4Y2x1ZGVLZXlzKGIpKSkpLAogICAgICAgICAgbigib2JqZWN0OiIgKyAodS5sZW5ndGggKyBkLmxlbmd0aCkgKyAiOiIpOwogICAgICAgIGNvbnN0IEUgPSAoYikgPT4gewogICAgICAgICAgdGhpcy5kaXNwYXRjaChiKSwKICAgICAgICAgICAgbigiOiIpLAogICAgICAgICAgICBlLmV4Y2x1ZGVWYWx1ZXMgfHwgdGhpcy5kaXNwYXRjaChpW2JdKSwKICAgICAgICAgICAgbigiLCIpOwogICAgICAgIH07CiAgICAgICAgZm9yIChjb25zdCBiIG9mIHUpIEUoYik7CiAgICAgICAgZm9yIChjb25zdCBiIG9mIGQpIEUoYik7CiAgICAgIH0KICAgIH0sCiAgICBhcnJheShpLCBhKSB7CiAgICAgIGlmICgKICAgICAgICAoKGEgPSBhID09PSB2b2lkIDAgPyBlLnVub3JkZXJlZEFycmF5cyAhPT0gITEgOiBhKSwKICAgICAgICAgIG4oImFycmF5OiIgKyBpLmxlbmd0aCArICI6IiksCiAgICAgICAgICAhYSB8fCBpLmxlbmd0aCA8PSAxKQogICAgICApIHsKICAgICAgICBmb3IgKGNvbnN0IGMgb2YgaSkgdGhpcy5kaXNwYXRjaChjKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgbyA9IG5ldyBNYXAoKSwKICAgICAgICBsID0gaS5tYXAoKGMpID0+IHsKICAgICAgICAgIGNvbnN0IHUgPSBjcmVhdGVIYXNoZXIoZSk7CiAgICAgICAgICB1LmRpc3BhdGNoKGMpOwogICAgICAgICAgZm9yIChjb25zdCBbZCwgRV0gb2YgdS5nZXRDb250ZXh0KCkpIG8uc2V0KGQsIEUpOwogICAgICAgICAgcmV0dXJuIHUudG9TdHJpbmcoKTsKICAgICAgICB9KTsKICAgICAgcmV0dXJuIChyID0gbyksIGwuc29ydCgpLCB0aGlzLmFycmF5KGwsICExKTsKICAgIH0sCiAgICBkYXRlKGkpIHsKICAgICAgcmV0dXJuIG4oImRhdGU6IiArIGkudG9KU09OKCkpOwogICAgfSwKICAgIHN5bWJvbChpKSB7CiAgICAgIHJldHVybiBuKCJzeW1ib2w6IiArIGkudG9TdHJpbmcoKSk7CiAgICB9LAogICAgdW5rb3duKGksIGEpIHsKICAgICAgaWYgKChuKGEpLCAhIWkgJiYgKG4oIjoiKSwgaSAmJiB0eXBlb2YgaS5lbnRyaWVzID09ICJmdW5jdGlvbiIpKSkKICAgICAgICByZXR1cm4gdGhpcy5hcnJheShBcnJheS5mcm9tKGkuZW50cmllcygpKSwgITApOwogICAgfSwKICAgIGVycm9yKGkpIHsKICAgICAgcmV0dXJuIG4oImVycm9yOiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIGJvb2xlYW4oaSkgewogICAgICByZXR1cm4gbigiYm9vbDoiICsgaSk7CiAgICB9LAogICAgc3RyaW5nKGkpIHsKICAgICAgbigic3RyaW5nOiIgKyBpLmxlbmd0aCArICI6IiksIG4oaSk7CiAgICB9LAogICAgZnVuY3Rpb24oaSkgewogICAgICBuKCJmbjoiKSwKICAgICAgICBpc05hdGl2ZUZ1bmN0aW9uKGkpCiAgICAgICAgICA/IHRoaXMuZGlzcGF0Y2goIltuYXRpdmVdIikKICAgICAgICAgIDogdGhpcy5kaXNwYXRjaChpLnRvU3RyaW5nKCkpLAogICAgICAgIGUucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09ICExICYmCiAgICAgICAgdGhpcy5kaXNwYXRjaCgiZnVuY3Rpb24tbmFtZToiICsgU3RyaW5nKGkubmFtZSkpLAogICAgICAgIGUucmVzcGVjdEZ1bmN0aW9uUHJvcGVydGllcyAmJiB0aGlzLm9iamVjdChpKTsKICAgIH0sCiAgICBudW1iZXIoaSkgewogICAgICByZXR1cm4gbigibnVtYmVyOiIgKyBpKTsKICAgIH0sCiAgICB4bWwoaSkgewogICAgICByZXR1cm4gbigieG1sOiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIG51bGwoKSB7CiAgICAgIHJldHVybiBuKCJOdWxsIik7CiAgICB9LAogICAgdW5kZWZpbmVkKCkgewogICAgICByZXR1cm4gbigiVW5kZWZpbmVkIik7CiAgICB9LAogICAgcmVnZXhwKGkpIHsKICAgICAgcmV0dXJuIG4oInJlZ2V4OiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIHVpbnQ4YXJyYXkoaSkgewogICAgICByZXR1cm4gbigidWludDhhcnJheToiKSwgdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChpKSk7CiAgICB9LAogICAgdWludDhjbGFtcGVkYXJyYXkoaSkgewogICAgICByZXR1cm4gKAogICAgICAgIG4oInVpbnQ4Y2xhbXBlZGFycmF5OiIpLCB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpKQogICAgICApOwogICAgfSwKICAgIGludDhhcnJheShpKSB7CiAgICAgIHJldHVybiBuKCJpbnQ4YXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIHVpbnQxNmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oInVpbnQxNmFycmF5OiIpLCB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpKTsKICAgIH0sCiAgICBpbnQxNmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oImludDE2YXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIHVpbnQzMmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oInVpbnQzMmFycmF5OiIpLCB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpKTsKICAgIH0sCiAgICBpbnQzMmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oImludDMyYXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIGZsb2F0MzJhcnJheShpKSB7CiAgICAgIHJldHVybiBuKCJmbG9hdDMyYXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIGZsb2F0NjRhcnJheShpKSB7CiAgICAgIHJldHVybiBuKCJmbG9hdDY0YXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIGFycmF5YnVmZmVyKGkpIHsKICAgICAgcmV0dXJuIG4oImFycmF5YnVmZmVyOiIpLCB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGkpKTsKICAgIH0sCiAgICB1cmwoaSkgewogICAgICByZXR1cm4gbigidXJsOiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIG1hcChpKSB7CiAgICAgIG4oIm1hcDoiKTsKICAgICAgY29uc3QgYSA9IFsuLi5pXTsKICAgICAgcmV0dXJuIHRoaXMuYXJyYXkoYSwgZS51bm9yZGVyZWRTZXRzICE9PSAhMSk7CiAgICB9LAogICAgc2V0KGkpIHsKICAgICAgbigic2V0OiIpOwogICAgICBjb25zdCBhID0gWy4uLmldOwogICAgICByZXR1cm4gdGhpcy5hcnJheShhLCBlLnVub3JkZXJlZFNldHMgIT09ICExKTsKICAgIH0sCiAgICBmaWxlKGkpIHsKICAgICAgcmV0dXJuIG4oImZpbGU6IiksIHRoaXMuZGlzcGF0Y2goW2kubmFtZSwgaS5zaXplLCBpLnR5cGUsIGkubGFzdE1vZGZpZWRdKTsKICAgIH0sCiAgICBibG9iKCkgewogICAgICBpZiAoZS5pZ25vcmVVbmtub3duKSByZXR1cm4gbigiW2Jsb2JdIik7CiAgICAgIHRocm93IG5ldyBFcnJvcihgSGFzaGluZyBCbG9iIG9iamVjdHMgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQKVXNlICJvcHRpb25zLnJlcGxhY2VyIiBvciAib3B0aW9ucy5pZ25vcmVVbmtub3duIgpgKTsKICAgIH0sCiAgICBkb213aW5kb3coKSB7CiAgICAgIHJldHVybiBuKCJkb213aW5kb3ciKTsKICAgIH0sCiAgICBiaWdpbnQoaSkgewogICAgICByZXR1cm4gbigiYmlnaW50OiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIHByb2Nlc3MoKSB7CiAgICAgIHJldHVybiBuKCJwcm9jZXNzIik7CiAgICB9LAogICAgdGltZXIoKSB7CiAgICAgIHJldHVybiBuKCJ0aW1lciIpOwogICAgfSwKICAgIHBpcGUoKSB7CiAgICAgIHJldHVybiBuKCJwaXBlIik7CiAgICB9LAogICAgdGNwKCkgewogICAgICByZXR1cm4gbigidGNwIik7CiAgICB9LAogICAgdWRwKCkgewogICAgICByZXR1cm4gbigidWRwIik7CiAgICB9LAogICAgdHR5KCkgewogICAgICByZXR1cm4gbigidHR5Iik7CiAgICB9LAogICAgc3RhdHdhdGNoZXIoKSB7CiAgICAgIHJldHVybiBuKCJzdGF0d2F0Y2hlciIpOwogICAgfSwKICAgIHNlY3VyZWNvbnRleHQoKSB7CiAgICAgIHJldHVybiBuKCJzZWN1cmVjb250ZXh0Iik7CiAgICB9LAogICAgY29ubmVjdGlvbigpIHsKICAgICAgcmV0dXJuIG4oImNvbm5lY3Rpb24iKTsKICAgIH0sCiAgICB6bGliKCkgewogICAgICByZXR1cm4gbigiemxpYiIpOwogICAgfSwKICAgIGNvbnRleHQoKSB7CiAgICAgIHJldHVybiBuKCJjb250ZXh0Iik7CiAgICB9LAogICAgbm9kZXNjcmlwdCgpIHsKICAgICAgcmV0dXJuIG4oIm5vZGVzY3JpcHQiKTsKICAgIH0sCiAgICBodHRwcGFyc2VyKCkgewogICAgICByZXR1cm4gbigiaHR0cHBhcnNlciIpOwogICAgfSwKICAgIGRhdGF2aWV3KCkgewogICAgICByZXR1cm4gbigiZGF0YXZpZXciKTsKICAgIH0sCiAgICBzaWduYWwoKSB7CiAgICAgIHJldHVybiBuKCJzaWduYWwiKTsKICAgIH0sCiAgICBmc2V2ZW50KCkgewogICAgICByZXR1cm4gbigiZnNldmVudCIpOwogICAgfSwKICAgIHRsc3dyYXAoKSB7CiAgICAgIHJldHVybiBuKCJ0bHN3cmFwIik7CiAgICB9LAogIH07Cn0KY29uc3QgbmF0aXZlRnVuYyA9ICJbbmF0aXZlIGNvZGVdIH0iLAogIG5hdGl2ZUZ1bmNMZW5ndGggPSBuYXRpdmVGdW5jLmxlbmd0aDsKZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihlKSB7CiAgcmV0dXJuIHR5cGVvZiBlICE9ICJmdW5jdGlvbiIKICAgID8gITEKICAgIDogRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoLW5hdGl2ZUZ1bmNMZW5ndGgpID09PQogICAgbmF0aXZlRnVuYzsKfQpmdW5jdGlvbiBpc0VxdWFsJDEoZSwgdCwgciA9IHt9KSB7CiAgcmV0dXJuIGUgPT09IHQgfHwgb2JqZWN0SGFzaChlLCByKSA9PT0gb2JqZWN0SGFzaCh0LCByKTsKfQpmdW5jdGlvbiBfY3JlYXRlTWF0Y2hlcihlLCB0KSB7CiAgcmV0dXJuIHsgY3R4OiB7IHRhYmxlOiBlIH0sIG1hdGNoQWxsOiAocikgPT4gX21hdGNoUm91dGVzKHIsIGUpIH07Cn0KZnVuY3Rpb24gX2NyZWF0ZVRhYmxlRnJvbUV4cG9ydChlKSB7CiAgY29uc3QgdCA9IHt9OwogIGZvciAoY29uc3QgciBpbiBlKQogICAgdFtyXSA9CiAgICAgIHIgPT09ICJkeW5hbWljIgogICAgICAgID8gbmV3IE1hcCgKICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGVbcl0pLm1hcCgoW24sIGldKSA9PiBbbiwgX2NyZWF0ZVRhYmxlRnJvbUV4cG9ydChpKV0pCiAgICAgICAgKQogICAgICAgIDogbmV3IE1hcChPYmplY3QuZW50cmllcyhlW3JdKSk7CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gY3JlYXRlTWF0Y2hlckZyb21FeHBvcnQoZSkgewogIHJldHVybiBfY3JlYXRlTWF0Y2hlcihfY3JlYXRlVGFibGVGcm9tRXhwb3J0KGUpKTsKfQpmdW5jdGlvbiBfbWF0Y2hSb3V0ZXMoZSwgdCwgcikgewogIGUuZW5kc1dpdGgoIi8iKSAmJiAoZSA9IGUuc2xpY2UoMCwgLTEpIHx8ICIvIik7CiAgY29uc3QgbiA9IFtdOwogIGZvciAoY29uc3QgW2EsIG9dIG9mIF9zb3J0Um91dGVzTWFwKHQud2lsZGNhcmQpKQogICAgKGUgPT09IGEgfHwgZS5zdGFydHNXaXRoKGEgKyAiLyIpKSAmJiBuLnB1c2gobyk7CiAgZm9yIChjb25zdCBbYSwgb10gb2YgX3NvcnRSb3V0ZXNNYXAodC5keW5hbWljKSkKICAgIGlmIChlLnN0YXJ0c1dpdGgoYSArICIvIikpIHsKICAgICAgY29uc3QgbCA9ICIvIiArIGUuc2xpY2UoYS5sZW5ndGgpLnNwbGl0KCIvIikuc3BsaWNlKDIpLmpvaW4oIi8iKTsKICAgICAgbi5wdXNoKC4uLl9tYXRjaFJvdXRlcyhsLCBvKSk7CiAgICB9CiAgY29uc3QgaSA9IHQuc3RhdGljLmdldChlKTsKICByZXR1cm4gaSAmJiBuLnB1c2goaSksIG4uZmlsdGVyKEJvb2xlYW4pOwp9CmZ1bmN0aW9uIF9zb3J0Um91dGVzTWFwKGUpIHsKICByZXR1cm4gWy4uLmUuZW50cmllcygpXS5zb3J0KCh0LCByKSA9PiB0WzBdLmxlbmd0aCAtIHJbMF0ubGVuZ3RoKTsKfQpmdW5jdGlvbiBpc1BsYWluT2JqZWN0JDMoZSkgewogIGlmIChlID09PSBudWxsIHx8IHR5cGVvZiBlICE9ICJvYmplY3QiKSByZXR1cm4gITE7CiAgY29uc3QgdCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihlKTsKICByZXR1cm4gKHQgIT09IG51bGwgJiYKICAgIHQgIT09IE9iamVjdC5wcm90b3R5cGUgJiYKICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSAhPT0gbnVsbCkgfHwKICAgIFN5bWJvbC5pdGVyYXRvciBpbiBlCiAgICA/ICExCiAgICA6IFN5bWJvbC50b1N0cmluZ1RhZyBpbiBlCiAgICAgID8gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpID09PSAiW29iamVjdCBNb2R1bGVdIgogICAgICA6ICEwOwp9CmZ1bmN0aW9uIF9kZWZ1KGUsIHQsIHIgPSAiLiIsIG4pIHsKICBpZiAoIWlzUGxhaW5PYmplY3QkMyh0KSkgcmV0dXJuIF9kZWZ1KGUsIHt9LCByLCBuKTsKICBjb25zdCBpID0gT2JqZWN0LmFzc2lnbih7fSwgdCk7CiAgZm9yIChjb25zdCBhIGluIGUpIHsKICAgIGlmIChhID09PSAiX19wcm90b19fIiB8fCBhID09PSAiY29uc3RydWN0b3IiKSBjb250aW51ZTsKICAgIGNvbnN0IG8gPSBlW2FdOwogICAgbyAhPSBudWxsICYmCiAgICAgICgobiAmJiBuKGksIGEsIG8sIHIpKSB8fAogICAgICAgIChBcnJheS5pc0FycmF5KG8pICYmIEFycmF5LmlzQXJyYXkoaVthXSkKICAgICAgICAgID8gKGlbYV0gPSBbLi4ubywgLi4uaVthXV0pCiAgICAgICAgICA6IGlzUGxhaW5PYmplY3QkMyhvKSAmJiBpc1BsYWluT2JqZWN0JDMoaVthXSkKICAgICAgICAgICAgPyAoaVthXSA9IF9kZWZ1KG8sIGlbYV0sIChyID8gYCR7cn0uYCA6ICIiKSArIGEudG9TdHJpbmcoKSwgbikpCiAgICAgICAgICAgIDogKGlbYV0gPSBvKSkpOwogIH0KICByZXR1cm4gaTsKfQpmdW5jdGlvbiBjcmVhdGVEZWZ1KGUpIHsKICByZXR1cm4gKC4uLnQpID0+IHQucmVkdWNlKChyLCBuKSA9PiBfZGVmdShyLCBuLCAiIiwgZSksIHt9KTsKfQpjb25zdCBkZWZ1ID0gY3JlYXRlRGVmdSgpLAogIGRlZnVGbiA9IGNyZWF0ZURlZnUoKGUsIHQsIHIpID0+IHsKICAgIGlmIChlW3RdICE9PSB2b2lkIDAgJiYgdHlwZW9mIHIgPT0gImZ1bmN0aW9uIikgcmV0dXJuIChlW3RdID0gcihlW3RdKSksICEwOwogIH0pOwpmdW5jdGlvbiBoYXNQcm9wKGUsIHQpIHsKICB0cnkgewogICAgcmV0dXJuIHQgaW4gZTsKICB9IGNhdGNoIHsKICAgIHJldHVybiAhMTsKICB9Cn0KdmFyIF9fZGVmUHJvcCQyID0gT2JqZWN0LmRlZmluZVByb3BlcnR5LAogIF9fZGVmTm9ybWFsUHJvcCQyID0gKGUsIHQsIHIpID0+CiAgICB0IGluIGUKICAgICAgPyBfX2RlZlByb3AkMihlLCB0LCB7CiAgICAgICAgZW51bWVyYWJsZTogITAsCiAgICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgICB3cml0YWJsZTogITAsCiAgICAgICAgdmFsdWU6IHIsCiAgICAgIH0pCiAgICAgIDogKGVbdF0gPSByKSwKICBfX3B1YmxpY0ZpZWxkJDIgPSAoZSwgdCwgcikgPT4gKAogICAgX19kZWZOb3JtYWxQcm9wJDIoZSwgdHlwZW9mIHQgIT0gInN5bWJvbCIgPyB0ICsgIiIgOiB0LCByKSwgcgogICk7CmNsYXNzIEgzRXJyb3IgZXh0ZW5kcyBFcnJvciB7CiAgY29uc3RydWN0b3IodCwgciA9IHt9KSB7CiAgICBzdXBlcih0LCByKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJzdGF0dXNDb2RlIiwgNTAwKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJmYXRhbCIsICExKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJ1bmhhbmRsZWQiLCAhMSksCiAgICAgIF9fcHVibGljRmllbGQkMih0aGlzLCAic3RhdHVzTWVzc2FnZSIpLAogICAgICBfX3B1YmxpY0ZpZWxkJDIodGhpcywgImRhdGEiKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJjYXVzZSIpLAogICAgICByLmNhdXNlICYmICF0aGlzLmNhdXNlICYmICh0aGlzLmNhdXNlID0gci5jYXVzZSk7CiAgfQogIHRvSlNPTigpIHsKICAgIGNvbnN0IHQgPSB7CiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSwKICAgICAgc3RhdHVzQ29kZTogc2FuaXRpemVTdGF0dXNDb2RlKHRoaXMuc3RhdHVzQ29kZSwgNTAwKSwKICAgIH07CiAgICByZXR1cm4gKAogICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgJiYKICAgICAgKHQuc3RhdHVzTWVzc2FnZSA9IHNhbml0aXplU3RhdHVzTWVzc2FnZSh0aGlzLnN0YXR1c01lc3NhZ2UpKSwKICAgICAgdGhpcy5kYXRhICE9PSB2b2lkIDAgJiYgKHQuZGF0YSA9IHRoaXMuZGF0YSksCiAgICAgIHQKICAgICk7CiAgfQp9Cl9fcHVibGljRmllbGQkMihIM0Vycm9yLCAiX19oM19lcnJvcl9fIiwgITApOwpmdW5jdGlvbiBjcmVhdGVFcnJvciQxKGUpIHsKICBpZiAodHlwZW9mIGUgPT0gInN0cmluZyIpIHJldHVybiBuZXcgSDNFcnJvcihlKTsKICBpZiAoaXNFcnJvcihlKSkgcmV0dXJuIGU7CiAgY29uc3QgdCA9IG5ldyBIM0Vycm9yKGUubWVzc2FnZSA/PyBlLnN0YXR1c01lc3NhZ2UgPz8gIiIsIHsKICAgIGNhdXNlOiBlLmNhdXNlIHx8IGUsCiAgfSk7CiAgaWYgKGhhc1Byb3AoZSwgInN0YWNrIikpCiAgICB0cnkgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInN0YWNrIiwgewogICAgICAgIGdldCgpIHsKICAgICAgICAgIHJldHVybiBlLnN0YWNrOwogICAgICAgIH0sCiAgICAgIH0pOwogICAgfSBjYXRjaCB7CiAgICAgIHRyeSB7CiAgICAgICAgdC5zdGFjayA9IGUuc3RhY2s7CiAgICAgIH0gY2F0Y2ggeyB9CiAgICB9CiAgaWYgKAogICAgKGUuZGF0YSAmJiAodC5kYXRhID0gZS5kYXRhKSwKICAgICAgZS5zdGF0dXNDb2RlCiAgICAgICAgPyAodC5zdGF0dXNDb2RlID0gc2FuaXRpemVTdGF0dXNDb2RlKGUuc3RhdHVzQ29kZSwgdC5zdGF0dXNDb2RlKSkKICAgICAgICA6IGUuc3RhdHVzICYmICh0LnN0YXR1c0NvZGUgPSBzYW5pdGl6ZVN0YXR1c0NvZGUoZS5zdGF0dXMsIHQuc3RhdHVzQ29kZSkpLAogICAgICBlLnN0YXR1c01lc3NhZ2UKICAgICAgICA/ICh0LnN0YXR1c01lc3NhZ2UgPSBlLnN0YXR1c01lc3NhZ2UpCiAgICAgICAgOiBlLnN0YXR1c1RleHQgJiYgKHQuc3RhdHVzTWVzc2FnZSA9IGUuc3RhdHVzVGV4dCksCiAgICAgIHQuc3RhdHVzTWVzc2FnZSkKICApIHsKICAgIGNvbnN0IHIgPSB0LnN0YXR1c01lc3NhZ2U7CiAgICBzYW5pdGl6ZVN0YXR1c01lc3NhZ2UodC5zdGF0dXNNZXNzYWdlKSAhPT0gciAmJgogICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgIltoM10gUGxlYXNlIHByZWZlciB1c2luZyBgbWVzc2FnZWAgZm9yIGxvbmdlciBlcnJvciBtZXNzYWdlcyBpbnN0ZWFkIG9mIGBzdGF0dXNNZXNzYWdlYC4gSW4gdGhlIGZ1dHVyZSwgYHN0YXR1c01lc3NhZ2VgIHdpbGwgYmUgc2FuaXRpemVkIGJ5IGRlZmF1bHQuIgogICAgICApOwogIH0KICByZXR1cm4gKAogICAgZS5mYXRhbCAhPT0gdm9pZCAwICYmICh0LmZhdGFsID0gZS5mYXRhbCksCiAgICBlLnVuaGFuZGxlZCAhPT0gdm9pZCAwICYmICh0LnVuaGFuZGxlZCA9IGUudW5oYW5kbGVkKSwKICAgIHQKICApOwp9CmZ1bmN0aW9uIGlzRXJyb3IoZSkgewogIHZhciB0OwogIHJldHVybiAoCiAgICAoKHQgPSBlID09IG51bGwgPyB2b2lkIDAgOiBlLmNvbnN0cnVjdG9yKSA9PSBudWxsCiAgICAgID8gdm9pZCAwCiAgICAgIDogdC5fX2gzX2Vycm9yX18pID09PSAhMAogICk7Cn0KY29uc3QgRElTQUxMT1dFRF9TVEFUVVNfQ0hBUlMgPSAvW15cdTAwMDlcdTAwMjAtXHUwMDdFXS9nOwpmdW5jdGlvbiBzYW5pdGl6ZVN0YXR1c01lc3NhZ2UoZSA9ICIiKSB7CiAgcmV0dXJuIGUucmVwbGFjZShESVNBTExPV0VEX1NUQVRVU19DSEFSUywgIiIpOwp9CmZ1bmN0aW9uIHNhbml0aXplU3RhdHVzQ29kZShlLCB0ID0gMjAwKSB7CiAgcmV0dXJuICFlIHx8CiAgICAodHlwZW9mIGUgPT0gInN0cmluZyIgJiYgKGUgPSBOdW1iZXIucGFyc2VJbnQoZSwgMTApKSwgZSA8IDEwMCB8fCBlID4gOTk5KQogICAgPyB0CiAgICA6IGU7Cn0KdHlwZW9mIHNldEltbWVkaWF0ZSA+ICJ1IiB8fCBzZXRJbW1lZGlhdGU7CmNvbnN0IExheW91dE1ldGFTeW1ib2wgPSBTeW1ib2woImxheW91dC1tZXRhIiksCiAgUGFnZVJvdXRlU3ltYm9sID0gU3ltYm9sKCJyb3V0ZSIpLAogIHVzZVJvdXRlciQxID0gKCkgPT4gewogICAgdmFyIGU7CiAgICByZXR1cm4gKGUgPSB1c2VOdXh0QXBwKCkpID09IG51bGwgPyB2b2lkIDAgOiBlLiRyb3V0ZXI7CiAgfSwKICB1c2VSb3V0ZSQxID0gKCkgPT4KICAgIGhhc0luamVjdGlvbkNvbnRleHQoKQogICAgICA/IGluamVjdCQxKFBhZ2VSb3V0ZVN5bWJvbCwgdXNlTnV4dEFwcCgpLl9yb3V0ZSkKICAgICAgOiB1c2VOdXh0QXBwKCkuX3JvdXRlOwpmdW5jdGlvbiBkZWZpbmVOdXh0Um91dGVNaWRkbGV3YXJlKGUpIHsKICByZXR1cm4gZTsKfQpjb25zdCBhZGRSb3V0ZU1pZGRsZXdhcmUgPSAoZSwgdCwgciA9IHt9KSA9PiB7CiAgY29uc3QgbiA9IHVzZU51eHRBcHAoKSwKICAgIGkgPSByLmdsb2JhbCB8fCB0eXBlb2YgZSAhPSAic3RyaW5nIiwKICAgIGEgPSB0OwogIGlmICghYSkgewogICAgY29uc29sZS53YXJuKAogICAgICAiW251eHRdIE5vIHJvdXRlIG1pZGRsZXdhcmUgcGFzc2VkIHRvIGBhZGRSb3V0ZU1pZGRsZXdhcmVgLiIsCiAgICAgIGUKICAgICk7CiAgICByZXR1cm47CiAgfQogIGkgPyBuLl9taWRkbGV3YXJlLmdsb2JhbC5wdXNoKGEpIDogKG4uX21pZGRsZXdhcmUubmFtZWRbZV0gPSBhKTsKfSwKICBpc1Byb2Nlc3NpbmdNaWRkbGV3YXJlID0gKCkgPT4gewogICAgdHJ5IHsKICAgICAgaWYgKHVzZU51eHRBcHAoKS5fcHJvY2Vzc2luZ01pZGRsZXdhcmUpIHJldHVybiAhMDsKICAgIH0gY2F0Y2ggewogICAgICByZXR1cm4gITE7CiAgICB9CiAgICByZXR1cm4gITE7CiAgfSwKICBuYXZpZ2F0ZVRvID0gKGUsIHQpID0+IHsKICAgIGUgfHwgKGUgPSAiLyIpOwogICAgY29uc3QgciA9CiAgICAgIHR5cGVvZiBlID09ICJzdHJpbmciCiAgICAgICAgPyBlCiAgICAgICAgOiAicGF0aCIgaW4gZQogICAgICAgICAgPyByZXNvbHZlUm91dGVPYmplY3QoZSkKICAgICAgICAgIDogdXNlUm91dGVyJDEoKS5yZXNvbHZlKGUpLmhyZWY7CiAgICBpZiAodCAhPSBudWxsICYmIHQub3BlbikgewogICAgICBjb25zdCB7IHRhcmdldDogYyA9ICJfYmxhbmsiLCB3aW5kb3dGZWF0dXJlczogdSA9IHt9IH0gPSB0Lm9wZW4sCiAgICAgICAgZCA9IE9iamVjdC5lbnRyaWVzKHUpCiAgICAgICAgICAuZmlsdGVyKChbRSwgYl0pID0+IGIgIT09IHZvaWQgMCkKICAgICAgICAgIC5tYXAoKFtFLCBiXSkgPT4gYCR7RS50b0xvd2VyQ2FzZSgpfT0ke2J9YCkKICAgICAgICAgIC5qb2luKCIsICIpOwogICAgICByZXR1cm4gb3BlbihyLCBjLCBkKSwgUHJvbWlzZS5yZXNvbHZlKCk7CiAgICB9CiAgICBjb25zdCBuID0gaGFzUHJvdG9jb2wociwgeyBhY2NlcHRSZWxhdGl2ZTogITAgfSksCiAgICAgIGkgPSAodCA9PSBudWxsID8gdm9pZCAwIDogdC5leHRlcm5hbCkgfHwgbjsKICAgIGlmIChpKSB7CiAgICAgIGlmICghKHQgIT0gbnVsbCAmJiB0LmV4dGVybmFsKSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAiTmF2aWdhdGluZyB0byBhbiBleHRlcm5hbCBVUkwgaXMgbm90IGFsbG93ZWQgYnkgZGVmYXVsdC4gVXNlIGBuYXZpZ2F0ZVRvKHVybCwgeyBleHRlcm5hbDogdHJ1ZSB9KWAuIgogICAgICAgICk7CiAgICAgIGNvbnN0IHsgcHJvdG9jb2w6IGMgfSA9IG5ldyBVUkwociwgd2luZG93LmxvY2F0aW9uLmhyZWYpOwogICAgICBpZiAoYyAmJiBpc1NjcmlwdFByb3RvY29sKGMpKQogICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IG5hdmlnYXRlIHRvIGEgVVJMIHdpdGggJyR7Y30nIHByb3RvY29sLmApOwogICAgfQogICAgY29uc3QgYSA9IGlzUHJvY2Vzc2luZ01pZGRsZXdhcmUoKTsKICAgIGlmICghaSAmJiBhKQogICAgICByZXR1cm4gdCAhPSBudWxsICYmIHQucmVwbGFjZQogICAgICAgID8gdHlwZW9mIGUgPT0gInN0cmluZyIKICAgICAgICAgID8geyBwYXRoOiBlLCByZXBsYWNlOiAhMCB9CiAgICAgICAgICA6IHsgLi4uZSwgcmVwbGFjZTogITAgfQogICAgICAgIDogZTsKICAgIGNvbnN0IG8gPSB1c2VSb3V0ZXIkMSgpLAogICAgICBsID0gdXNlTnV4dEFwcCgpOwogICAgcmV0dXJuIGkKICAgICAgPyAobC5fc2NvcGUuc3RvcCgpLAogICAgICAgIHQgIT0gbnVsbCAmJiB0LnJlcGxhY2UgPyBsb2NhdGlvbi5yZXBsYWNlKHIpIDogKGxvY2F0aW9uLmhyZWYgPSByKSwKICAgICAgICBhID8gKGwuaXNIeWRyYXRpbmcgPyBuZXcgUHJvbWlzZSgoKSA9PiB7IH0pIDogITEpIDogUHJvbWlzZS5yZXNvbHZlKCkpCiAgICAgIDogdCAhPSBudWxsICYmIHQucmVwbGFjZQogICAgICAgID8gby5yZXBsYWNlKGUpCiAgICAgICAgOiBvLnB1c2goZSk7CiAgfTsKZnVuY3Rpb24gcmVzb2x2ZVJvdXRlT2JqZWN0KGUpIHsKICByZXR1cm4gd2l0aFF1ZXJ5KGUucGF0aCB8fCAiIiwgZS5xdWVyeSB8fCB7fSkgKyAoZS5oYXNoIHx8ICIiKTsKfQpjb25zdCBOVVhUX0VSUk9SX1NJR05BVFVSRSA9ICJfX251eHRfZXJyb3IiLAogIHVzZUVycm9yID0gKCkgPT4gdG9SZWYodXNlTnV4dEFwcCgpLnBheWxvYWQsICJlcnJvciIpLAogIHNob3dFcnJvciA9IChlKSA9PiB7CiAgICBjb25zdCB0ID0gY3JlYXRlRXJyb3IoZSk7CiAgICB0cnkgewogICAgICBjb25zdCByID0gdXNlTnV4dEFwcCgpLAogICAgICAgIG4gPSB1c2VFcnJvcigpOwogICAgICByLmhvb2tzLmNhbGxIb29rKCJhcHA6ZXJyb3IiLCB0KSwgKG4udmFsdWUgPSBuLnZhbHVlIHx8IHQpOwogICAgfSBjYXRjaCB7CiAgICAgIHRocm93IHQ7CiAgICB9CiAgICByZXR1cm4gdDsKICB9LAogIGNsZWFyRXJyb3IgPSBhc3luYyAoZSA9IHt9KSA9PiB7CiAgICBjb25zdCB0ID0gdXNlTnV4dEFwcCgpLAogICAgICByID0gdXNlRXJyb3IoKTsKICAgIHQuY2FsbEhvb2soImFwcDplcnJvcjpjbGVhcmVkIiwgZSksCiAgICAgIGUucmVkaXJlY3QgJiYgKGF3YWl0IHVzZVJvdXRlciQxKCkucmVwbGFjZShlLnJlZGlyZWN0KSksCiAgICAgIChyLnZhbHVlID0gbnV4dERlZmF1bHRFcnJvclZhbHVlKTsKICB9LAogIGlzTnV4dEVycm9yID0gKGUpID0+ICEhZSAmJiB0eXBlb2YgZSA9PSAib2JqZWN0IiAmJiBOVVhUX0VSUk9SX1NJR05BVFVSRSBpbiBlLAogIGNyZWF0ZUVycm9yID0gKGUpID0+IHsKICAgIGNvbnN0IHQgPSBjcmVhdGVFcnJvciQxKGUpOwogICAgcmV0dXJuICgKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIE5VWFRfRVJST1JfU0lHTkFUVVJFLCB7CiAgICAgICAgdmFsdWU6ICEwLAogICAgICAgIGNvbmZpZ3VyYWJsZTogITEsCiAgICAgICAgd3JpdGFibGU6ICExLAogICAgICB9KSwKICAgICAgdAogICAgKTsKICB9LAogIGlzVnVlMiA9ICExOwovKiEKICogcGluaWEgdjIuMy4wCiAqIChjKSAyMDI0IEVkdWFyZG8gU2FuIE1hcnRpbiBNb3JvdGUKICogQGxpY2Vuc2UgTUlUCiAqLyBsZXQgYWN0aXZlUGluaWE7CmNvbnN0IHNldEFjdGl2ZVBpbmlhID0gKGUpID0+IChhY3RpdmVQaW5pYSA9IGUpLAogIHBpbmlhU3ltYm9sID0gU3ltYm9sKCk7CmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QkMihlKSB7CiAgcmV0dXJuICgKICAgIGUgJiYKICAgIHR5cGVvZiBlID09ICJvYmplY3QiICYmCiAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkgPT09ICJbb2JqZWN0IE9iamVjdF0iICYmCiAgICB0eXBlb2YgZS50b0pTT04gIT0gImZ1bmN0aW9uIgogICk7Cn0KdmFyIE11dGF0aW9uVHlwZTsKKGZ1bmN0aW9uIChlKSB7CiAgKGUuZGlyZWN0ID0gImRpcmVjdCIpLAogICAgKGUucGF0Y2hPYmplY3QgPSAicGF0Y2ggb2JqZWN0IiksCiAgICAoZS5wYXRjaEZ1bmN0aW9uID0gInBhdGNoIGZ1bmN0aW9uIik7Cn0pKE11dGF0aW9uVHlwZSB8fCAoTXV0YXRpb25UeXBlID0ge30pKTsKZnVuY3Rpb24gY3JlYXRlUGluaWEoKSB7CiAgY29uc3QgZSA9IGVmZmVjdFNjb3BlKCEwKSwKICAgIHQgPSBlLnJ1bigoKSA9PiByZWYoe30pKTsKICBsZXQgciA9IFtdLAogICAgbiA9IFtdOwogIGNvbnN0IGkgPSBtYXJrUmF3KHsKICAgIGluc3RhbGwoYSkgewogICAgICBzZXRBY3RpdmVQaW5pYShpKSwKICAgICAgICAoaS5fYSA9IGEpLAogICAgICAgIGEucHJvdmlkZShwaW5pYVN5bWJvbCwgaSksCiAgICAgICAgKGEuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHBpbmlhID0gaSksCiAgICAgICAgbi5mb3JFYWNoKChvKSA9PiByLnB1c2gobykpLAogICAgICAgIChuID0gW10pOwogICAgfSwKICAgIHVzZShhKSB7CiAgICAgIHJldHVybiAhdGhpcy5fYSAmJiAhaXNWdWUyID8gbi5wdXNoKGEpIDogci5wdXNoKGEpLCB0aGlzOwogICAgfSwKICAgIF9wOiByLAogICAgX2E6IG51bGwsCiAgICBfZTogZSwKICAgIF9zOiBuZXcgTWFwKCksCiAgICBzdGF0ZTogdCwKICB9KTsKICByZXR1cm4gaTsKfQpjb25zdCBub29wJDEgPSAoKSA9PiB7IH07CmZ1bmN0aW9uIGFkZFN1YnNjcmlwdGlvbihlLCB0LCByLCBuID0gbm9vcCQxKSB7CiAgZS5wdXNoKHQpOwogIGNvbnN0IGkgPSAoKSA9PiB7CiAgICBjb25zdCBhID0gZS5pbmRleE9mKHQpOwogICAgYSA+IC0xICYmIChlLnNwbGljZShhLCAxKSwgbigpKTsKICB9OwogIHJldHVybiAhciAmJiBnZXRDdXJyZW50U2NvcGUoKSAmJiBvblNjb3BlRGlzcG9zZShpKSwgaTsKfQpmdW5jdGlvbiB0cmlnZ2VyU3Vic2NyaXB0aW9ucyhlLCAuLi50KSB7CiAgZS5zbGljZSgpLmZvckVhY2goKHIpID0+IHsKICAgIHIoLi4udCk7CiAgfSk7Cn0KY29uc3QgZmFsbGJhY2tSdW5XaXRoQ29udGV4dCA9IChlKSA9PiBlKCksCiAgQUNUSU9OX01BUktFUiA9IFN5bWJvbCgpLAogIEFDVElPTl9OQU1FID0gU3ltYm9sKCk7CmZ1bmN0aW9uIG1lcmdlUmVhY3RpdmVPYmplY3RzKGUsIHQpIHsKICBlIGluc3RhbmNlb2YgTWFwICYmIHQgaW5zdGFuY2VvZiBNYXAKICAgID8gdC5mb3JFYWNoKChyLCBuKSA9PiBlLnNldChuLCByKSkKICAgIDogZSBpbnN0YW5jZW9mIFNldCAmJiB0IGluc3RhbmNlb2YgU2V0ICYmIHQuZm9yRWFjaChlLmFkZCwgZSk7CiAgZm9yIChjb25zdCByIGluIHQpIHsKICAgIGlmICghdC5oYXNPd25Qcm9wZXJ0eShyKSkgY29udGludWU7CiAgICBjb25zdCBuID0gdFtyXSwKICAgICAgaSA9IGVbcl07CiAgICBpc1BsYWluT2JqZWN0JDIoaSkgJiYKICAgICAgaXNQbGFpbk9iamVjdCQyKG4pICYmCiAgICAgIGUuaGFzT3duUHJvcGVydHkocikgJiYKICAgICAgIWlzUmVmKG4pICYmCiAgICAgICFpc1JlYWN0aXZlKG4pCiAgICAgID8gKGVbcl0gPSBtZXJnZVJlYWN0aXZlT2JqZWN0cyhpLCBuKSkKICAgICAgOiAoZVtyXSA9IG4pOwogIH0KICByZXR1cm4gZTsKfQpjb25zdCBza2lwSHlkcmF0ZVN5bWJvbCA9IFN5bWJvbCgpOwpmdW5jdGlvbiBzaG91bGRIeWRyYXRlKGUpIHsKICByZXR1cm4gIWlzUGxhaW5PYmplY3QkMihlKSB8fCAhZS5oYXNPd25Qcm9wZXJ0eShza2lwSHlkcmF0ZVN5bWJvbCk7Cn0KY29uc3QgeyBhc3NpZ246IGFzc2lnbiQyIH0gPSBPYmplY3Q7CmZ1bmN0aW9uIGlzQ29tcHV0ZWQoZSkgewogIHJldHVybiAhIShpc1JlZihlKSAmJiBlLmVmZmVjdCk7Cn0KZnVuY3Rpb24gY3JlYXRlT3B0aW9uc1N0b3JlKGUsIHQsIHIsIG4pIHsKICBjb25zdCB7IHN0YXRlOiBpLCBhY3Rpb25zOiBhLCBnZXR0ZXJzOiBvIH0gPSB0LAogICAgbCA9IHIuc3RhdGUudmFsdWVbZV07CiAgbGV0IGM7CiAgZnVuY3Rpb24gdSgpIHsKICAgIGwgfHwgKHIuc3RhdGUudmFsdWVbZV0gPSBpID8gaSgpIDoge30pOwogICAgY29uc3QgZCA9IHRvUmVmcyhyLnN0YXRlLnZhbHVlW2VdKTsKICAgIHJldHVybiBhc3NpZ24kMigKICAgICAgZCwKICAgICAgYSwKICAgICAgT2JqZWN0LmtleXMobyB8fCB7fSkucmVkdWNlKAogICAgICAgIChFLCBiKSA9PiAoCiAgICAgICAgICAoRVtiXSA9IG1hcmtSYXcoCiAgICAgICAgICAgIGNvbXB1dGVkKCgpID0+IHsKICAgICAgICAgICAgICBzZXRBY3RpdmVQaW5pYShyKTsKICAgICAgICAgICAgICBjb25zdCBQID0gci5fcy5nZXQoZSk7CiAgICAgICAgICAgICAgcmV0dXJuIG9bYl0uY2FsbChQLCBQKTsKICAgICAgICAgICAgfSkKICAgICAgICAgICkpLAogICAgICAgICAgRQogICAgICAgICksCiAgICAgICAge30KICAgICAgKQogICAgKTsKICB9CiAgcmV0dXJuIChjID0gY3JlYXRlU2V0dXBTdG9yZShlLCB1LCB0LCByLCBuLCAhMCkpLCBjOwp9CmZ1bmN0aW9uIGNyZWF0ZVNldHVwU3RvcmUoZSwgdCwgciA9IHt9LCBuLCBpLCBhKSB7CiAgbGV0IG87CiAgY29uc3QgbCA9IGFzc2lnbiQyKHsgYWN0aW9uczoge30gfSwgciksCiAgICBjID0geyBkZWVwOiAhMCB9OwogIGxldCB1LAogICAgZCwKICAgIEUgPSBbXSwKICAgIGIgPSBbXSwKICAgIFA7CiAgY29uc3QgUiA9IG4uc3RhdGUudmFsdWVbZV07CiAgIWEgJiYgIVIgJiYgKG4uc3RhdGUudmFsdWVbZV0gPSB7fSksIHJlZih7fSk7CiAgbGV0IFQ7CiAgZnVuY3Rpb24gTShIKSB7CiAgICBsZXQgJDsKICAgICh1ID0gZCA9ICExKSwKICAgICAgdHlwZW9mIEggPT0gImZ1bmN0aW9uIgogICAgICAgID8gKEgobi5zdGF0ZS52YWx1ZVtlXSksCiAgICAgICAgICAoJCA9IHsgdHlwZTogTXV0YXRpb25UeXBlLnBhdGNoRnVuY3Rpb24sIHN0b3JlSWQ6IGUsIGV2ZW50czogUCB9KSkKICAgICAgICA6IChtZXJnZVJlYWN0aXZlT2JqZWN0cyhuLnN0YXRlLnZhbHVlW2VdLCBIKSwKICAgICAgICAgICgkID0gewogICAgICAgICAgICB0eXBlOiBNdXRhdGlvblR5cGUucGF0Y2hPYmplY3QsCiAgICAgICAgICAgIHBheWxvYWQ6IEgsCiAgICAgICAgICAgIHN0b3JlSWQ6IGUsCiAgICAgICAgICAgIGV2ZW50czogUCwKICAgICAgICAgIH0pKTsKICAgIGNvbnN0IHEgPSAoVCA9IFN5bWJvbCgpKTsKICAgIG5leHRUaWNrKCkudGhlbigoKSA9PiB7CiAgICAgIFQgPT09IHEgJiYgKHUgPSAhMCk7CiAgICB9KSwKICAgICAgKGQgPSAhMCksCiAgICAgIHRyaWdnZXJTdWJzY3JpcHRpb25zKEUsICQsIG4uc3RhdGUudmFsdWVbZV0pOwogIH0KICBjb25zdCB4ID0gYQogICAgPyBmdW5jdGlvbiAoKSB7CiAgICAgIGNvbnN0IHsgc3RhdGU6ICQgfSA9IHIsCiAgICAgICAgcSA9ICQgPyAkKCkgOiB7fTsKICAgICAgdGhpcy4kcGF0Y2goKEopID0+IHsKICAgICAgICBhc3NpZ24kMihKLCBxKTsKICAgICAgfSk7CiAgICB9CiAgICA6IG5vb3AkMTsKICBmdW5jdGlvbiBrKCkgewogICAgby5zdG9wKCksIChFID0gW10pLCAoYiA9IFtdKSwgbi5fcy5kZWxldGUoZSk7CiAgfQogIGNvbnN0IFMgPSAoSCwgJCA9ICIiKSA9PiB7CiAgICBpZiAoQUNUSU9OX01BUktFUiBpbiBIKSByZXR1cm4gKEhbQUNUSU9OX05BTUVdID0gJCksIEg7CiAgICBjb25zdCBxID0gZnVuY3Rpb24gKCkgewogICAgICBzZXRBY3RpdmVQaW5pYShuKTsKICAgICAgY29uc3QgSiA9IEFycmF5LmZyb20oYXJndW1lbnRzKSwKICAgICAgICBLID0gW10sCiAgICAgICAgZWUgPSBbXTsKICAgICAgZnVuY3Rpb24gbGUoeikgewogICAgICAgIEsucHVzaCh6KTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZSh6KSB7CiAgICAgICAgZWUucHVzaCh6KTsKICAgICAgfQogICAgICB0cmlnZ2VyU3Vic2NyaXB0aW9ucyhiLCB7CiAgICAgICAgYXJnczogSiwKICAgICAgICBuYW1lOiBxW0FDVElPTl9OQU1FXSwKICAgICAgICBzdG9yZTogTywKICAgICAgICBhZnRlcjogbGUsCiAgICAgICAgb25FcnJvcjogcmUsCiAgICAgIH0pOwogICAgICBsZXQgQjsKICAgICAgdHJ5IHsKICAgICAgICBCID0gSC5hcHBseSh0aGlzICYmIHRoaXMuJGlkID09PSBlID8gdGhpcyA6IE8sIEopOwogICAgICB9IGNhdGNoICh6KSB7CiAgICAgICAgdGhyb3cgKHRyaWdnZXJTdWJzY3JpcHRpb25zKGVlLCB6KSwgeik7CiAgICAgIH0KICAgICAgcmV0dXJuIEIgaW5zdGFuY2VvZiBQcm9taXNlCiAgICAgICAgPyBCLnRoZW4oKHopID0+ICh0cmlnZ2VyU3Vic2NyaXB0aW9ucyhLLCB6KSwgeikpLmNhdGNoKAogICAgICAgICAgKHopID0+ICh0cmlnZ2VyU3Vic2NyaXB0aW9ucyhlZSwgeiksIFByb21pc2UucmVqZWN0KHopKQogICAgICAgICkKICAgICAgICA6ICh0cmlnZ2VyU3Vic2NyaXB0aW9ucyhLLCBCKSwgQik7CiAgICB9OwogICAgcmV0dXJuIChxW0FDVElPTl9NQVJLRVJdID0gITApLCAocVtBQ1RJT05fTkFNRV0gPSAkKSwgcTsKICB9LAogICAgQSA9IHsKICAgICAgX3A6IG4sCiAgICAgICRpZDogZSwKICAgICAgJG9uQWN0aW9uOiBhZGRTdWJzY3JpcHRpb24uYmluZChudWxsLCBiKSwKICAgICAgJHBhdGNoOiBNLAogICAgICAkcmVzZXQ6IHgsCiAgICAgICRzdWJzY3JpYmUoSCwgJCA9IHt9KSB7CiAgICAgICAgY29uc3QgcSA9IGFkZFN1YnNjcmlwdGlvbihFLCBILCAkLmRldGFjaGVkLCAoKSA9PiBKKCkpLAogICAgICAgICAgSiA9IG8ucnVuKCgpID0+CiAgICAgICAgICAgIHdhdGNoKAogICAgICAgICAgICAgICgpID0+IG4uc3RhdGUudmFsdWVbZV0sCiAgICAgICAgICAgICAgKEspID0+IHsKICAgICAgICAgICAgICAgICgkLmZsdXNoID09PSAic3luYyIgPyBkIDogdSkgJiYKICAgICAgICAgICAgICAgICAgSCh7IHN0b3JlSWQ6IGUsIHR5cGU6IE11dGF0aW9uVHlwZS5kaXJlY3QsIGV2ZW50czogUCB9LCBLKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGFzc2lnbiQyKHt9LCBjLCAkKQogICAgICAgICAgICApCiAgICAgICAgICApOwogICAgICAgIHJldHVybiBxOwogICAgICB9LAogICAgICAkZGlzcG9zZTogaywKICAgIH0sCiAgICBPID0gcmVhY3RpdmUoQSk7CiAgbi5fcy5zZXQoZSwgTyk7CiAgY29uc3QgRCA9ICgobi5fYSAmJiBuLl9hLnJ1bldpdGhDb250ZXh0KSB8fCBmYWxsYmFja1J1bldpdGhDb250ZXh0KSgoKSA9PgogICAgbi5fZS5ydW4oKCkgPT4gKG8gPSBlZmZlY3RTY29wZSgpKS5ydW4oKCkgPT4gdCh7IGFjdGlvbjogUyB9KSkpCiAgKTsKICBmb3IgKGNvbnN0IEggaW4gRCkgewogICAgY29uc3QgJCA9IERbSF07CiAgICBpZiAoKGlzUmVmKCQpICYmICFpc0NvbXB1dGVkKCQpKSB8fCBpc1JlYWN0aXZlKCQpKQogICAgICBhIHx8CiAgICAgICAgKFIgJiYKICAgICAgICAgIHNob3VsZEh5ZHJhdGUoJCkgJiYKICAgICAgICAgIChpc1JlZigkKSA/ICgkLnZhbHVlID0gUltIXSkgOiBtZXJnZVJlYWN0aXZlT2JqZWN0cygkLCBSW0hdKSksCiAgICAgICAgICAobi5zdGF0ZS52YWx1ZVtlXVtIXSA9ICQpKTsKICAgIGVsc2UgaWYgKHR5cGVvZiAkID09ICJmdW5jdGlvbiIpIHsKICAgICAgY29uc3QgcSA9IFMoJCwgSCk7CiAgICAgIChEW0hdID0gcSksIChsLmFjdGlvbnNbSF0gPSAkKTsKICAgIH0KICB9CiAgcmV0dXJuICgKICAgIGFzc2lnbiQyKE8sIEQpLAogICAgYXNzaWduJDIodG9SYXcoTyksIEQpLAogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sICIkc3RhdGUiLCB7CiAgICAgIGdldDogKCkgPT4gbi5zdGF0ZS52YWx1ZVtlXSwKICAgICAgc2V0OiAoSCkgPT4gewogICAgICAgIE0oKCQpID0+IHsKICAgICAgICAgIGFzc2lnbiQyKCQsIEgpOwogICAgICAgIH0pOwogICAgICB9LAogICAgfSksCiAgICBuLl9wLmZvckVhY2goKEgpID0+IHsKICAgICAgYXNzaWduJDIoCiAgICAgICAgTywKICAgICAgICBvLnJ1bigoKSA9PiBIKHsgc3RvcmU6IE8sIGFwcDogbi5fYSwgcGluaWE6IG4sIG9wdGlvbnM6IGwgfSkpCiAgICAgICk7CiAgICB9KSwKICAgIFIgJiYgYSAmJiByLmh5ZHJhdGUgJiYgci5oeWRyYXRlKE8uJHN0YXRlLCBSKSwKICAgICh1ID0gITApLAogICAgKGQgPSAhMCksCiAgICBPCiAgKTsKfQovKiEgI19fTk9fU0lERV9FRkZFQ1RTX18gKi8gZnVuY3Rpb24gZGVmaW5lU3RvcmUoZSwgdCwgcikgewogIGxldCBuLCBpOwogIGNvbnN0IGEgPSB0eXBlb2YgdCA9PSAiZnVuY3Rpb24iOwogIHR5cGVvZiBlID09ICJzdHJpbmciID8gKChuID0gZSksIChpID0gYSA/IHIgOiB0KSkgOiAoKGkgPSBlKSwgKG4gPSBlLmlkKSk7CiAgZnVuY3Rpb24gbyhsLCBjKSB7CiAgICBjb25zdCB1ID0gaGFzSW5qZWN0aW9uQ29udGV4dCgpOwogICAgcmV0dXJuICgKICAgICAgKGwgPSBsIHx8ICh1ID8gaW5qZWN0JDEocGluaWFTeW1ib2wsIG51bGwpIDogbnVsbCkpLAogICAgICBsICYmIHNldEFjdGl2ZVBpbmlhKGwpLAogICAgICAobCA9IGFjdGl2ZVBpbmlhKSwKICAgICAgbC5fcy5oYXMobikgfHwKICAgICAgKGEgPyBjcmVhdGVTZXR1cFN0b3JlKG4sIHQsIGksIGwpIDogY3JlYXRlT3B0aW9uc1N0b3JlKG4sIGksIGwpKSwKICAgICAgbC5fcy5nZXQobikKICAgICk7CiAgfQogIHJldHVybiAoby4kaWQgPSBuKSwgbzsKfQpmdW5jdGlvbiBkZWNvZGU2NChlKSB7CiAgY29uc3QgdCA9IGFzY2lpVG9CaW5hcnkoZSksCiAgICByID0gbmV3IEFycmF5QnVmZmVyKHQubGVuZ3RoKSwKICAgIG4gPSBuZXcgRGF0YVZpZXcocik7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCByLmJ5dGVMZW5ndGg7IGkrKykgbi5zZXRVaW50OChpLCB0LmNoYXJDb2RlQXQoaSkpOwogIHJldHVybiByOwp9CmNvbnN0IEtFWV9TVFJJTkcgPQogICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIjsKZnVuY3Rpb24gYXNjaWlUb0JpbmFyeShlKSB7CiAgZS5sZW5ndGggJSA0ID09PSAwICYmIChlID0gZS5yZXBsYWNlKC89PT8kLywgIiIpKTsKICBsZXQgdCA9ICIiLAogICAgciA9IDAsCiAgICBuID0gMDsKICBmb3IgKGxldCBpID0gMDsgaSA8IGUubGVuZ3RoOyBpKyspCiAgICAociA8PD0gNiksCiAgICAgIChyIHw9IEtFWV9TVFJJTkcuaW5kZXhPZihlW2ldKSksCiAgICAgIChuICs9IDYpLAogICAgICBuID09PSAyNCAmJgogICAgICAoKHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgociAmIDE2NzExNjgwKSA+PiAxNikpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKHIgJiA2NTI4MCkgPj4gOCkpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUociAmIDI1NSkpLAogICAgICAgIChyID0gbiA9IDApKTsKICByZXR1cm4gKAogICAgbiA9PT0gMTIKICAgICAgPyAoKHIgPj49IDQpLCAodCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHIpKSkKICAgICAgOiBuID09PSAxOCAmJgogICAgICAoKHIgPj49IDIpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKHIgJiA2NTI4MCkgPj4gOCkpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUociAmIDI1NSkpKSwKICAgIHQKICApOwp9CmNvbnN0IFVOREVGSU5FRCA9IC0xLAogIEhPTEUgPSAtMiwKICBOQU4gPSAtMywKICBQT1NJVElWRV9JTkZJTklUWSA9IC00LAogIE5FR0FUSVZFX0lORklOSVRZID0gLTUsCiAgTkVHQVRJVkVfWkVSTyA9IC02OwpmdW5jdGlvbiBwYXJzZSQxKGUsIHQpIHsKICByZXR1cm4gdW5mbGF0dGVuKEpTT04ucGFyc2UoZSksIHQpOwp9CmZ1bmN0aW9uIHVuZmxhdHRlbihlLCB0KSB7CiAgaWYgKHR5cGVvZiBlID09ICJudW1iZXIiKSByZXR1cm4gaShlLCAhMCk7CiAgaWYgKCFBcnJheS5pc0FycmF5KGUpIHx8IGUubGVuZ3RoID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTsKICBjb25zdCByID0gZSwKICAgIG4gPSBBcnJheShyLmxlbmd0aCk7CiAgZnVuY3Rpb24gaShhLCBvID0gITEpIHsKICAgIGlmIChhID09PSBVTkRFRklORUQpIHJldHVybjsKICAgIGlmIChhID09PSBOQU4pIHJldHVybiBOYU47CiAgICBpZiAoYSA9PT0gUE9TSVRJVkVfSU5GSU5JVFkpIHJldHVybiAxIC8gMDsKICAgIGlmIChhID09PSBORUdBVElWRV9JTkZJTklUWSkgcmV0dXJuIC0xIC8gMDsKICAgIGlmIChhID09PSBORUdBVElWRV9aRVJPKSByZXR1cm4gLTA7CiAgICBpZiAobykgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGlucHV0Iik7CiAgICBpZiAoYSBpbiBuKSByZXR1cm4gblthXTsKICAgIGNvbnN0IGwgPSByW2FdOwogICAgaWYgKCFsIHx8IHR5cGVvZiBsICE9ICJvYmplY3QiKSBuW2FdID0gbDsKICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobCkpCiAgICAgIGlmICh0eXBlb2YgbFswXSA9PSAic3RyaW5nIikgewogICAgICAgIGNvbnN0IGMgPSBsWzBdLAogICAgICAgICAgdSA9IHQgPT0gbnVsbCA/IHZvaWQgMCA6IHRbY107CiAgICAgICAgaWYgKHUpIHJldHVybiAoblthXSA9IHUoaShsWzFdKSkpOwogICAgICAgIHN3aXRjaCAoYykgewogICAgICAgICAgY2FzZSAiRGF0ZSI6CiAgICAgICAgICAgIG5bYV0gPSBuZXcgRGF0ZShsWzFdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJTZXQiOgogICAgICAgICAgICBjb25zdCBkID0gbmV3IFNldCgpOwogICAgICAgICAgICBuW2FdID0gZDsKICAgICAgICAgICAgZm9yIChsZXQgUCA9IDE7IFAgPCBsLmxlbmd0aDsgUCArPSAxKSBkLmFkZChpKGxbUF0pKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJNYXAiOgogICAgICAgICAgICBjb25zdCBFID0gbmV3IE1hcCgpOwogICAgICAgICAgICBuW2FdID0gRTsKICAgICAgICAgICAgZm9yIChsZXQgUCA9IDE7IFAgPCBsLmxlbmd0aDsgUCArPSAyKSBFLnNldChpKGxbUF0pLCBpKGxbUCArIDFdKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiUmVnRXhwIjoKICAgICAgICAgICAgblthXSA9IG5ldyBSZWdFeHAobFsxXSwgbFsyXSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiT2JqZWN0IjoKICAgICAgICAgICAgblthXSA9IE9iamVjdChsWzFdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJCaWdJbnQiOgogICAgICAgICAgICBuW2FdID0gQmlnSW50KGxbMV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIm51bGwiOgogICAgICAgICAgICBjb25zdCBiID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgICAgICAgICAgblthXSA9IGI7CiAgICAgICAgICAgIGZvciAobGV0IFAgPSAxOyBQIDwgbC5sZW5ndGg7IFAgKz0gMikgYltsW1BdXSA9IGkobFtQICsgMV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkludDhBcnJheSI6CiAgICAgICAgICBjYXNlICJVaW50OEFycmF5IjoKICAgICAgICAgIGNhc2UgIlVpbnQ4Q2xhbXBlZEFycmF5IjoKICAgICAgICAgIGNhc2UgIkludDE2QXJyYXkiOgogICAgICAgICAgY2FzZSAiVWludDE2QXJyYXkiOgogICAgICAgICAgY2FzZSAiSW50MzJBcnJheSI6CiAgICAgICAgICBjYXNlICJVaW50MzJBcnJheSI6CiAgICAgICAgICBjYXNlICJGbG9hdDMyQXJyYXkiOgogICAgICAgICAgY2FzZSAiRmxvYXQ2NEFycmF5IjoKICAgICAgICAgIGNhc2UgIkJpZ0ludDY0QXJyYXkiOgogICAgICAgICAgY2FzZSAiQmlnVWludDY0QXJyYXkiOiB7CiAgICAgICAgICAgIGNvbnN0IFAgPSBnbG9iYWxUaGlzW2NdLAogICAgICAgICAgICAgIFIgPSBsWzFdLAogICAgICAgICAgICAgIFQgPSBkZWNvZGU2NChSKSwKICAgICAgICAgICAgICBNID0gbmV3IFAoVCk7CiAgICAgICAgICAgIG5bYV0gPSBNOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGNhc2UgIkFycmF5QnVmZmVyIjogewogICAgICAgICAgICBjb25zdCBQID0gbFsxXSwKICAgICAgICAgICAgICBSID0gZGVjb2RlNjQoUCk7CiAgICAgICAgICAgIG5bYV0gPSBSOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0eXBlICR7Y31gKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgYyA9IG5ldyBBcnJheShsLmxlbmd0aCk7CiAgICAgICAgblthXSA9IGM7CiAgICAgICAgZm9yIChsZXQgdSA9IDA7IHUgPCBsLmxlbmd0aDsgdSArPSAxKSB7CiAgICAgICAgICBjb25zdCBkID0gbFt1XTsKICAgICAgICAgIGQgIT09IEhPTEUgJiYgKGNbdV0gPSBpKGQpKTsKICAgICAgICB9CiAgICAgIH0KICAgIGVsc2UgewogICAgICBjb25zdCBjID0ge307CiAgICAgIG5bYV0gPSBjOwogICAgICBmb3IgKGNvbnN0IHUgaW4gbCkgewogICAgICAgIGNvbnN0IGQgPSBsW3VdOwogICAgICAgIGNbdV0gPSBpKGQpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gblthXTsKICB9CiAgcmV0dXJuIGkoMCk7Cn0KY29uc3QgVGFnc1dpdGhJbm5lckNvbnRlbnQgPSBuZXcgU2V0KFsKICAidGl0bGUiLAogICJ0aXRsZVRlbXBsYXRlIiwKICAic2NyaXB0IiwKICAic3R5bGUiLAogICJub3NjcmlwdCIsCl0pLAogIEhhc0VsZW1lbnRUYWdzID0gbmV3IFNldChbCiAgICAiYmFzZSIsCiAgICAibWV0YSIsCiAgICAibGluayIsCiAgICAic3R5bGUiLAogICAgInNjcmlwdCIsCiAgICAibm9zY3JpcHQiLAogIF0pLAogIFZhbGlkSGVhZFRhZ3MgPSBuZXcgU2V0KFsKICAgICJ0aXRsZSIsCiAgICAidGl0bGVUZW1wbGF0ZSIsCiAgICAidGVtcGxhdGVQYXJhbXMiLAogICAgImJhc2UiLAogICAgImh0bWxBdHRycyIsCiAgICAiYm9keUF0dHJzIiwKICAgICJtZXRhIiwKICAgICJsaW5rIiwKICAgICJzdHlsZSIsCiAgICAic2NyaXB0IiwKICAgICJub3NjcmlwdCIsCiAgXSksCiAgVW5pcXVlVGFncyA9IG5ldyBTZXQoWwogICAgImJhc2UiLAogICAgInRpdGxlIiwKICAgICJ0aXRsZVRlbXBsYXRlIiwKICAgICJib2R5QXR0cnMiLAogICAgImh0bWxBdHRycyIsCiAgICAidGVtcGxhdGVQYXJhbXMiLAogIF0pLAogIFRhZ0NvbmZpZ0tleXMgPSBuZXcgU2V0KFsKICAgICJ0YWdQb3NpdGlvbiIsCiAgICAidGFnUHJpb3JpdHkiLAogICAgInRhZ0R1cGxpY2F0ZVN0cmF0ZWd5IiwKICAgICJjaGlsZHJlbiIsCiAgICAiaW5uZXJIVE1MIiwKICAgICJ0ZXh0Q29udGVudCIsCiAgICAicHJvY2Vzc1RlbXBsYXRlUGFyYW1zIiwKICBdKSwKICBJc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93IDwgInUiOwpmdW5jdGlvbiBkZWZpbmVIZWFkUGx1Z2luKGUpIHsKICByZXR1cm4gZTsKfQpmdW5jdGlvbiBoYXNoQ29kZShlKSB7CiAgbGV0IHQgPSA5OwogIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7KSB0ID0gTWF0aC5pbXVsKHQgXiBlLmNoYXJDb2RlQXQocisrKSwgOSAqKiA5KTsKICByZXR1cm4gKCh0IF4gKHQgPj4+IDkpKSArIDY1NTM2KS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEsIDgpLnRvTG93ZXJDYXNlKCk7Cn0KZnVuY3Rpb24gaGFzaFRhZyhlKSB7CiAgaWYgKGUuX2gpIHJldHVybiBlLl9oOwogIGlmIChlLl9kKSByZXR1cm4gaGFzaENvZGUoZS5fZCk7CiAgbGV0IHQgPSBgJHtlLnRhZ306JHtlLnRleHRDb250ZW50IHx8IGUuaW5uZXJIVE1MIHx8ICIifTpgOwogIGZvciAoY29uc3QgciBpbiBlLnByb3BzKSB0ICs9IGAke3J9OiR7U3RyaW5nKGUucHJvcHNbcl0pfSxgOwogIHJldHVybiBoYXNoQ29kZSh0KTsKfQpmdW5jdGlvbiB0aGVuYWJsZShlLCB0KSB7CiAgcmV0dXJuIGUgaW5zdGFuY2VvZiBQcm9taXNlID8gZS50aGVuKHQpIDogdChlKTsKfQpmdW5jdGlvbiBub3JtYWxpc2VUYWcoZSwgdCwgciwgbikgewogIGNvbnN0IGkgPQogICAgbiB8fAogICAgbm9ybWFsaXNlUHJvcHMoCiAgICAgIHR5cGVvZiB0ID09ICJvYmplY3QiICYmIHR5cGVvZiB0ICE9ICJmdW5jdGlvbiIgJiYgISh0IGluc3RhbmNlb2YgUHJvbWlzZSkKICAgICAgICA/IHsgLi4udCB9CiAgICAgICAgOiB7CiAgICAgICAgICBbZSA9PT0gInNjcmlwdCIgfHwgZSA9PT0gIm5vc2NyaXB0IiB8fCBlID09PSAic3R5bGUiCiAgICAgICAgICAgID8gImlubmVySFRNTCIKICAgICAgICAgICAgOiAidGV4dENvbnRlbnQiXTogdCwKICAgICAgICB9LAogICAgICBlID09PSAidGVtcGxhdGVQYXJhbXMiIHx8IGUgPT09ICJ0aXRsZVRlbXBsYXRlIgogICAgKTsKICBpZiAoaSBpbnN0YW5jZW9mIFByb21pc2UpIHJldHVybiBpLnRoZW4oKG8pID0+IG5vcm1hbGlzZVRhZyhlLCB0LCByLCBvKSk7CiAgY29uc3QgYSA9IHsgdGFnOiBlLCBwcm9wczogaSB9OwogIGZvciAoY29uc3QgbyBvZiBUYWdDb25maWdLZXlzKSB7CiAgICBjb25zdCBsID0gYS5wcm9wc1tvXSAhPT0gdm9pZCAwID8gYS5wcm9wc1tvXSA6IHJbb107CiAgICBsICE9PSB2b2lkIDAgJiYKICAgICAgKCghKG8gPT09ICJpbm5lckhUTUwiIHx8IG8gPT09ICJ0ZXh0Q29udGVudCIgfHwgbyA9PT0gImNoaWxkcmVuIikgfHwKICAgICAgICBUYWdzV2l0aElubmVyQ29udGVudC5oYXMoYS50YWcpKSAmJgogICAgICAgIChhW28gPT09ICJjaGlsZHJlbiIgPyAiaW5uZXJIVE1MIiA6IG9dID0gbCksCiAgICAgICAgZGVsZXRlIGEucHJvcHNbb10pOwogIH0KICByZXR1cm4gKAogICAgYS5wcm9wcy5ib2R5ICYmICgoYS50YWdQb3NpdGlvbiA9ICJib2R5Q2xvc2UiKSwgZGVsZXRlIGEucHJvcHMuYm9keSksCiAgICBhLnRhZyA9PT0gInNjcmlwdCIgJiYKICAgIHR5cGVvZiBhLmlubmVySFRNTCA9PSAib2JqZWN0IiAmJgogICAgKChhLmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGEuaW5uZXJIVE1MKSksCiAgICAgIChhLnByb3BzLnR5cGUgPSBhLnByb3BzLnR5cGUgfHwgImFwcGxpY2F0aW9uL2pzb24iKSksCiAgICBBcnJheS5pc0FycmF5KGEucHJvcHMuY29udGVudCkKICAgICAgPyBhLnByb3BzLmNvbnRlbnQubWFwKChvKSA9PiAoewogICAgICAgIC4uLmEsCiAgICAgICAgcHJvcHM6IHsgLi4uYS5wcm9wcywgY29udGVudDogbyB9LAogICAgICB9KSkKICAgICAgOiBhCiAgKTsKfQpmdW5jdGlvbiBub3JtYWxpc2VTdHlsZUNsYXNzUHJvcHMoZSwgdCkgewogIHZhciBuOwogIGNvbnN0IHIgPSBlID09PSAiY2xhc3MiID8gIiAiIDogIjsiOwogIHJldHVybiAoCiAgICB0ICYmCiAgICB0eXBlb2YgdCA9PSAib2JqZWN0IiAmJgogICAgIUFycmF5LmlzQXJyYXkodCkgJiYKICAgICh0ID0gT2JqZWN0LmVudHJpZXModCkKICAgICAgLmZpbHRlcigoWywgaV0pID0+IGkpCiAgICAgIC5tYXAoKFtpLCBhXSkgPT4gKGUgPT09ICJzdHlsZSIgPyBgJHtpfToke2F9YCA6IGkpKSksCiAgICAobiA9IFN0cmluZyhBcnJheS5pc0FycmF5KHQpID8gdC5qb2luKHIpIDogdCkpID09IG51bGwKICAgICAgPyB2b2lkIDAKICAgICAgOiBuCiAgICAgICAgLnNwbGl0KHIpCiAgICAgICAgLmZpbHRlcigoaSkgPT4gISFpLnRyaW0oKSkKICAgICAgICAuam9pbihyKQogICk7Cn0KZnVuY3Rpb24gbmVzdGVkTm9ybWFsaXNlUHJvcHMoZSwgdCwgciwgbikgewogIGZvciAobGV0IGkgPSBuOyBpIDwgci5sZW5ndGg7IGkgKz0gMSkgewogICAgY29uc3QgYSA9IHJbaV07CiAgICBpZiAoYSA9PT0gImNsYXNzIiB8fCBhID09PSAic3R5bGUiKSB7CiAgICAgIGVbYV0gPSBub3JtYWxpc2VTdHlsZUNsYXNzUHJvcHMoYSwgZVthXSk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgaWYgKGVbYV0gaW5zdGFuY2VvZiBQcm9taXNlKQogICAgICByZXR1cm4gZVthXS50aGVuKChvKSA9PiAoKGVbYV0gPSBvKSwgbmVzdGVkTm9ybWFsaXNlUHJvcHMoZSwgdCwgciwgaSkpKTsKICAgIGlmICghdCAmJiAhVGFnQ29uZmlnS2V5cy5oYXMoYSkpIHsKICAgICAgY29uc3QgbyA9IFN0cmluZyhlW2FdKSwKICAgICAgICBsID0gYS5zdGFydHNXaXRoKCJkYXRhLSIpOwogICAgICBvID09PSAidHJ1ZSIgfHwgbyA9PT0gIiIKICAgICAgICA/IChlW2FdID0gbCA/ICJ0cnVlIiA6ICEwKQogICAgICAgIDogZVthXSB8fCAobCAmJiBvID09PSAiZmFsc2UiID8gKGVbYV0gPSAiZmFsc2UiKSA6IGRlbGV0ZSBlW2FdKTsKICAgIH0KICB9Cn0KZnVuY3Rpb24gbm9ybWFsaXNlUHJvcHMoZSwgdCA9ICExKSB7CiAgY29uc3QgciA9IG5lc3RlZE5vcm1hbGlzZVByb3BzKGUsIHQsIE9iamVjdC5rZXlzKGUpLCAwKTsKICByZXR1cm4gciBpbnN0YW5jZW9mIFByb21pc2UgPyByLnRoZW4oKCkgPT4gZSkgOiBlOwp9CmNvbnN0IFRhZ0VudGl0eUJpdHMgPSAxMDsKZnVuY3Rpb24gbmVzdGVkTm9ybWFsaXNlRW50cnlUYWdzKGUsIHQsIHIpIHsKICBmb3IgKGxldCBuID0gcjsgbiA8IHQubGVuZ3RoOyBuICs9IDEpIHsKICAgIGNvbnN0IGkgPSB0W25dOwogICAgaWYgKGkgaW5zdGFuY2VvZiBQcm9taXNlKQogICAgICByZXR1cm4gaS50aGVuKChhKSA9PiAoKHRbbl0gPSBhKSwgbmVzdGVkTm9ybWFsaXNlRW50cnlUYWdzKGUsIHQsIG4pKSk7CiAgICBBcnJheS5pc0FycmF5KGkpID8gZS5wdXNoKC4uLmkpIDogZS5wdXNoKGkpOwogIH0KfQpmdW5jdGlvbiBub3JtYWxpc2VFbnRyeVRhZ3MoZSkgewogIGNvbnN0IHQgPSBbXSwKICAgIHIgPSBlLnJlc29sdmVkSW5wdXQ7CiAgZm9yIChjb25zdCBpIGluIHIpIHsKICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIGkpKSBjb250aW51ZTsKICAgIGNvbnN0IGEgPSByW2ldOwogICAgaWYgKCEoYSA9PT0gdm9pZCAwIHx8ICFWYWxpZEhlYWRUYWdzLmhhcyhpKSkpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHsKICAgICAgICBmb3IgKGNvbnN0IG8gb2YgYSkgdC5wdXNoKG5vcm1hbGlzZVRhZyhpLCBvLCBlKSk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgdC5wdXNoKG5vcm1hbGlzZVRhZyhpLCBhLCBlKSk7CiAgICB9CiAgfQogIGlmICh0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdOwogIGNvbnN0IG4gPSBbXTsKICByZXR1cm4gdGhlbmFibGUobmVzdGVkTm9ybWFsaXNlRW50cnlUYWdzKG4sIHQsIDApLCAoKSA9PgogICAgbi5tYXAoCiAgICAgIChpLCBhKSA9PiAoCiAgICAgICAgKGkuX2UgPSBlLl9pKSwKICAgICAgICBlLm1vZGUgJiYgKGkuX20gPSBlLm1vZGUpLAogICAgICAgIChpLl9wID0gKGUuX2kgPDwgVGFnRW50aXR5Qml0cykgKyBhKSwKICAgICAgICBpCiAgICAgICkKICAgICkKICApOwp9CmNvbnN0IE5ldHdvcmtFdmVudHMgPSBuZXcgU2V0KFsKICAib25sb2FkIiwKICAib25lcnJvciIsCiAgIm9uYWJvcnQiLAogICJvbnByb2dyZXNzIiwKICAib25sb2Fkc3RhcnQiLApdKSwKICBUQUdfV0VJR0hUUyA9IHsgYmFzZTogLTEwLCB0aXRsZTogMTAgfSwKICBUQUdfQUxJQVNFUyA9IHsgY3JpdGljYWw6IC04MCwgaGlnaDogLTEwLCBsb3c6IDIwIH07CmZ1bmN0aW9uIHRhZ1dlaWdodChlKSB7CiAgY29uc3QgdCA9IGUudGFnUHJpb3JpdHk7CiAgaWYgKHR5cGVvZiB0ID09ICJudW1iZXIiKSByZXR1cm4gdDsKICBsZXQgciA9IDEwMDsKICByZXR1cm4gKAogICAgZS50YWcgPT09ICJtZXRhIgogICAgICA/IGUucHJvcHNbImh0dHAtZXF1aXYiXSA9PT0gImNvbnRlbnQtc2VjdXJpdHktcG9saWN5IgogICAgICAgID8gKHIgPSAtMzApCiAgICAgICAgOiBlLnByb3BzLmNoYXJzZXQKICAgICAgICAgID8gKHIgPSAtMjApCiAgICAgICAgICA6IGUucHJvcHMubmFtZSA9PT0gInZpZXdwb3J0IiAmJiAociA9IC0xNSkKICAgICAgOiBlLnRhZyA9PT0gImxpbmsiICYmIGUucHJvcHMucmVsID09PSAicHJlY29ubmVjdCIKICAgICAgICA/IChyID0gMjApCiAgICAgICAgOiBlLnRhZyBpbiBUQUdfV0VJR0hUUyAmJiAociA9IFRBR19XRUlHSFRTW2UudGFnXSksCiAgICB0ICYmIHQgaW4gVEFHX0FMSUFTRVMgPyByICsgVEFHX0FMSUFTRVNbdF0gOiByCiAgKTsKfQpjb25zdCBTb3J0TW9kaWZpZXJzID0gWwogIHsgcHJlZml4OiAiYmVmb3JlOiIsIG9mZnNldDogLTEgfSwKICB7IHByZWZpeDogImFmdGVyOiIsIG9mZnNldDogMSB9LApdLAogIGFsbG93ZWRNZXRhUHJvcGVydGllcyA9IFsibmFtZSIsICJwcm9wZXJ0eSIsICJodHRwLWVxdWl2Il07CmZ1bmN0aW9uIHRhZ0RlZHVwZUtleShlKSB7CiAgY29uc3QgeyBwcm9wczogdCwgdGFnOiByIH0gPSBlOwogIGlmIChVbmlxdWVUYWdzLmhhcyhyKSkgcmV0dXJuIHI7CiAgaWYgKHIgPT09ICJsaW5rIiAmJiB0LnJlbCA9PT0gImNhbm9uaWNhbCIpIHJldHVybiAiY2Fub25pY2FsIjsKICBpZiAodC5jaGFyc2V0KSByZXR1cm4gImNoYXJzZXQiOwogIGlmICh0LmlkKSByZXR1cm4gYCR7cn06aWQ6JHt0LmlkfWA7CiAgZm9yIChjb25zdCBuIG9mIGFsbG93ZWRNZXRhUHJvcGVydGllcykKICAgIGlmICh0W25dICE9PSB2b2lkIDApIHJldHVybiBgJHtyfToke259OiR7dFtuXX1gOwogIHJldHVybiAhMTsKfQpjb25zdCBzZXBTdWIgPSAiJXNlcGFyYXRvciI7CmZ1bmN0aW9uIHN1YihlLCB0LCByID0gITEpIHsKICB2YXIgaTsKICBsZXQgbjsKICBpZiAodCA9PT0gInMiIHx8IHQgPT09ICJwYWdlVGl0bGUiKSBuID0gZS5wYWdlVGl0bGU7CiAgZWxzZSBpZiAodC5pbmNsdWRlcygiLiIpKSB7CiAgICBjb25zdCBhID0gdC5pbmRleE9mKCIuIik7CiAgICBuID0gKGkgPSBlW3Quc3Vic3RyaW5nKDAsIGEpXSkgPT0gbnVsbCA/IHZvaWQgMCA6IGlbdC5zdWJzdHJpbmcoYSArIDEpXTsKICB9IGVsc2UgbiA9IGVbdF07CiAgaWYgKG4gIT09IHZvaWQgMCkgcmV0dXJuIHIgPyAobiB8fCAiIikucmVwbGFjZSgvIi9nLCAnXFwiJykgOiBuIHx8ICIiOwp9CmNvbnN0IHNlcFN1YlJlID0gbmV3IFJlZ0V4cChgJHtzZXBTdWJ9KD86XFxzKiR7c2VwU3VifSkqYCwgImciKTsKZnVuY3Rpb24gcHJvY2Vzc1RlbXBsYXRlUGFyYW1zKGUsIHQsIHIsIG4gPSAhMSkgewogIGlmICh0eXBlb2YgZSAhPSAic3RyaW5nIiB8fCAhZS5pbmNsdWRlcygiJSIpKSByZXR1cm4gZTsKICBsZXQgaSA9IGU7CiAgdHJ5IHsKICAgIGkgPSBkZWNvZGVVUkkoZSk7CiAgfSBjYXRjaCB7IH0KICBjb25zdCBhID0gaS5tYXRjaCgvJVx3Kyg/OlwuXHcrKT8vZyk7CiAgaWYgKCFhKSByZXR1cm4gZTsKICBjb25zdCBvID0gZS5pbmNsdWRlcyhzZXBTdWIpOwogIHJldHVybiAoCiAgICAoZSA9IGUKICAgICAgLnJlcGxhY2UoLyVcdysoPzpcLlx3Kyk/L2csIChsKSA9PiB7CiAgICAgICAgaWYgKGwgPT09IHNlcFN1YiB8fCAhYS5pbmNsdWRlcyhsKSkgcmV0dXJuIGw7CiAgICAgICAgY29uc3QgYyA9IHN1Yih0LCBsLnNsaWNlKDEpLCBuKTsKICAgICAgICByZXR1cm4gYyAhPT0gdm9pZCAwID8gYyA6IGw7CiAgICAgIH0pCiAgICAgIC50cmltKCkpLAogICAgbyAmJgogICAgKGUuZW5kc1dpdGgoc2VwU3ViKSAmJiAoZSA9IGUuc2xpY2UoMCwgLXNlcFN1Yi5sZW5ndGgpKSwKICAgICAgZS5zdGFydHNXaXRoKHNlcFN1YikgJiYgKGUgPSBlLnNsaWNlKHNlcFN1Yi5sZW5ndGgpKSwKICAgICAgKGUgPSBlLnJlcGxhY2Uoc2VwU3ViUmUsIHIpLnRyaW0oKSkpLAogICAgZQogICk7Cn0KZnVuY3Rpb24gcmVzb2x2ZVRpdGxlVGVtcGxhdGUoZSwgdCkgewogIHJldHVybiBlID09IG51bGwgPyB0IHx8IG51bGwgOiB0eXBlb2YgZSA9PSAiZnVuY3Rpb24iID8gZSh0KSA6IGU7Cn0KYXN5bmMgZnVuY3Rpb24gcmVuZGVyRE9NSGVhZChlLCB0ID0ge30pIHsKICBjb25zdCByID0gdC5kb2N1bWVudCB8fCBlLnJlc29sdmVkT3B0aW9ucy5kb2N1bWVudDsKICBpZiAoIXIgfHwgIWUuZGlydHkpIHJldHVybjsKICBjb25zdCBuID0geyBzaG91bGRSZW5kZXI6ICEwLCB0YWdzOiBbXSB9OwogIGlmICgoYXdhaXQgZS5ob29rcy5jYWxsSG9vaygiZG9tOmJlZm9yZVJlbmRlciIsIG4pLCAhIW4uc2hvdWxkUmVuZGVyKSkKICAgIHJldHVybiAoCiAgICAgIGUuX2RvbVVwZGF0ZVByb21pc2UgfHwKICAgICAgKGUuX2RvbVVwZGF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShhc3luYyAoaSkgPT4gewogICAgICAgIHZhciBFOwogICAgICAgIGNvbnN0IGEgPSAoYXdhaXQgZS5yZXNvbHZlVGFncygpKS5tYXAoKGIpID0+ICh7CiAgICAgICAgICB0YWc6IGIsCiAgICAgICAgICBpZDogSGFzRWxlbWVudFRhZ3MuaGFzKGIudGFnKSA/IGhhc2hUYWcoYikgOiBiLnRhZywKICAgICAgICAgIHNob3VsZFJlbmRlcjogITAsCiAgICAgICAgfSkpOwogICAgICAgIGxldCBvID0gZS5fZG9tOwogICAgICAgIGlmICghbykgewogICAgICAgICAgbyA9IHsgZWxNYXA6IHsgaHRtbEF0dHJzOiByLmRvY3VtZW50RWxlbWVudCwgYm9keUF0dHJzOiByLmJvZHkgfSB9OwogICAgICAgICAgY29uc3QgYiA9IG5ldyBTZXQoKTsKICAgICAgICAgIGZvciAoY29uc3QgUCBvZiBbImJvZHkiLCAiaGVhZCJdKSB7CiAgICAgICAgICAgIGNvbnN0IFIgPSAoRSA9IHJbUF0pID09IG51bGwgPyB2b2lkIDAgOiBFLmNoaWxkcmVuOwogICAgICAgICAgICBmb3IgKGNvbnN0IFQgb2YgUikgewogICAgICAgICAgICAgIGNvbnN0IE0gPSBULnRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICBpZiAoIUhhc0VsZW1lbnRUYWdzLmhhcyhNKSkgY29udGludWU7CiAgICAgICAgICAgICAgY29uc3QgeCA9IHsKICAgICAgICAgICAgICAgIHRhZzogTSwKICAgICAgICAgICAgICAgIHByb3BzOiBhd2FpdCBub3JtYWxpc2VQcm9wcygKICAgICAgICAgICAgICAgICAgVC5nZXRBdHRyaWJ1dGVOYW1lcygpLnJlZHVjZSgKICAgICAgICAgICAgICAgICAgICAoTywgRikgPT4gKHsgLi4uTywgW0ZdOiBULmdldEF0dHJpYnV0ZShGKSB9KSwKICAgICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgaW5uZXJIVE1MOiBULmlubmVySFRNTCwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgayA9IHRhZ0RlZHVwZUtleSh4KTsKICAgICAgICAgICAgICBsZXQgUyA9IGssCiAgICAgICAgICAgICAgICBBID0gMTsKICAgICAgICAgICAgICBmb3IgKDsgUyAmJiBiLmhhcyhTKTspIFMgPSBgJHtrfToke0ErK31gOwogICAgICAgICAgICAgIFMgJiYgKCh4Ll9kID0gUyksIGIuYWRkKFMpKSwKICAgICAgICAgICAgICAgIChvLmVsTWFwW1QuZ2V0QXR0cmlidXRlKCJkYXRhLWhpZCIpIHx8IGhhc2hUYWcoeCldID0gVCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgKG8ucGVuZGluZ1NpZGVFZmZlY3RzID0geyAuLi5vLnNpZGVFZmZlY3RzIH0pLCAoby5zaWRlRWZmZWN0cyA9IHt9KTsKICAgICAgICBmdW5jdGlvbiBsKGIsIFAsIFIpIHsKICAgICAgICAgIGNvbnN0IFQgPSBgJHtifToke1B9YDsKICAgICAgICAgIChvLnNpZGVFZmZlY3RzW1RdID0gUiksIGRlbGV0ZSBvLnBlbmRpbmdTaWRlRWZmZWN0c1tUXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYyh7IGlkOiBiLCAkZWw6IFAsIHRhZzogUiB9KSB7CiAgICAgICAgICBjb25zdCBUID0gUi50YWcuZW5kc1dpdGgoIkF0dHJzIik7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICgoby5lbE1hcFtiXSA9IFApLAogICAgICAgICAgICAgIFQgfHwKICAgICAgICAgICAgICAoUi50ZXh0Q29udGVudCAmJgogICAgICAgICAgICAgICAgUi50ZXh0Q29udGVudCAhPT0gUC50ZXh0Q29udGVudCAmJgogICAgICAgICAgICAgICAgKFAudGV4dENvbnRlbnQgPSBSLnRleHRDb250ZW50KSwKICAgICAgICAgICAgICAgIFIuaW5uZXJIVE1MICYmCiAgICAgICAgICAgICAgICBSLmlubmVySFRNTCAhPT0gUC5pbm5lckhUTUwgJiYKICAgICAgICAgICAgICAgIChQLmlubmVySFRNTCA9IFIuaW5uZXJIVE1MKSwKICAgICAgICAgICAgICAgIGwoYiwgImVsIiwgKCkgPT4gewogICAgICAgICAgICAgICAgICB2YXIgTTsKICAgICAgICAgICAgICAgICAgKE0gPSBvLmVsTWFwW2JdKSA9PSBudWxsIHx8IE0ucmVtb3ZlKCksIGRlbGV0ZSBvLmVsTWFwW2JdOwogICAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgICAgIFIuX2V2ZW50SGFuZGxlcnMpCiAgICAgICAgICApCiAgICAgICAgICAgIGZvciAoY29uc3QgTSBpbiBSLl9ldmVudEhhbmRsZXJzKQogICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSLl9ldmVudEhhbmRsZXJzLCBNKSAmJgogICAgICAgICAgICAgICAgUC5nZXRBdHRyaWJ1dGUoYGRhdGEtJHtNfWApICE9PSAiIiAmJgogICAgICAgICAgICAgICAgKChSLnRhZyA9PT0gImJvZHlBdHRycyIgPyByLmRlZmF1bHRWaWV3IDogUCkuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgICAgICAgTS5zdWJzdHJpbmcoMiksCiAgICAgICAgICAgICAgICAgIFIuX2V2ZW50SGFuZGxlcnNbTV0uYmluZChQKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgUC5zZXRBdHRyaWJ1dGUoYGRhdGEtJHtNfWAsICIiKSk7CiAgICAgICAgICBmb3IgKGNvbnN0IE0gaW4gUi5wcm9wcykgewogICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSLnByb3BzLCBNKSkgY29udGludWU7CiAgICAgICAgICAgIGNvbnN0IHggPSBSLnByb3BzW01dLAogICAgICAgICAgICAgIGsgPSBgYXR0cjoke019YDsKICAgICAgICAgICAgaWYgKE0gPT09ICJjbGFzcyIpIHsKICAgICAgICAgICAgICBpZiAoIXgpIGNvbnRpbnVlOwogICAgICAgICAgICAgIGZvciAoY29uc3QgUyBvZiB4LnNwbGl0KCIgIikpCiAgICAgICAgICAgICAgICBUICYmIGwoYiwgYCR7a306JHtTfWAsICgpID0+IFAuY2xhc3NMaXN0LnJlbW92ZShTKSksCiAgICAgICAgICAgICAgICAgICFQLmNsYXNzTGlzdC5jb250YWlucyhTKSAmJiBQLmNsYXNzTGlzdC5hZGQoUyk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoTSA9PT0gInN0eWxlIikgewogICAgICAgICAgICAgIGlmICgheCkgY29udGludWU7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBTIG9mIHguc3BsaXQoIjsiKSkgewogICAgICAgICAgICAgICAgY29uc3QgQSA9IFMuaW5kZXhPZigiOiIpLAogICAgICAgICAgICAgICAgICBPID0gUy5zdWJzdHJpbmcoMCwgQSkudHJpbSgpLAogICAgICAgICAgICAgICAgICBGID0gUy5zdWJzdHJpbmcoQSArIDEpLnRyaW0oKTsKICAgICAgICAgICAgICAgIGwoYiwgYCR7a306JHtPfWAsICgpID0+IHsKICAgICAgICAgICAgICAgICAgUC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShPKTsKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBQLnN0eWxlLnNldFByb3BlcnR5KE8sIEYpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgUC5nZXRBdHRyaWJ1dGUoTSkgIT09IHggJiYKICAgICAgICAgICAgICAgIFAuc2V0QXR0cmlidXRlKE0sIHggPT09ICEwID8gIiIgOiBTdHJpbmcoeCkpLAogICAgICAgICAgICAgICAgVCAmJiBsKGIsIGssICgpID0+IFAucmVtb3ZlQXR0cmlidXRlKE0pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgdSA9IFtdLAogICAgICAgICAgZCA9IHsgYm9keUNsb3NlOiB2b2lkIDAsIGJvZHlPcGVuOiB2b2lkIDAsIGhlYWQ6IHZvaWQgMCB9OwogICAgICAgIGZvciAoY29uc3QgYiBvZiBhKSB7CiAgICAgICAgICBjb25zdCB7IHRhZzogUCwgc2hvdWxkUmVuZGVyOiBSLCBpZDogVCB9ID0gYjsKICAgICAgICAgIGlmIChSKSB7CiAgICAgICAgICAgIGlmIChQLnRhZyA9PT0gInRpdGxlIikgewogICAgICAgICAgICAgIHIudGl0bGUgPSBQLnRleHRDb250ZW50OwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChiLiRlbCA9IGIuJGVsIHx8IG8uZWxNYXBbVF0pLAogICAgICAgICAgICAgIGIuJGVsID8gYyhiKSA6IEhhc0VsZW1lbnRUYWdzLmhhcyhQLnRhZykgJiYgdS5wdXNoKGIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGNvbnN0IGIgb2YgdSkgewogICAgICAgICAgY29uc3QgUCA9IGIudGFnLnRhZ1Bvc2l0aW9uIHx8ICJoZWFkIjsKICAgICAgICAgIChiLiRlbCA9IHIuY3JlYXRlRWxlbWVudChiLnRhZy50YWcpKSwKICAgICAgICAgICAgYyhiKSwKICAgICAgICAgICAgKGRbUF0gPSBkW1BdIHx8IHIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKSwKICAgICAgICAgICAgZFtQXS5hcHBlbmRDaGlsZChiLiRlbCk7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgYiBvZiBhKSBhd2FpdCBlLmhvb2tzLmNhbGxIb29rKCJkb206cmVuZGVyVGFnIiwgYiwgciwgbCk7CiAgICAgICAgZC5oZWFkICYmIHIuaGVhZC5hcHBlbmRDaGlsZChkLmhlYWQpLAogICAgICAgICAgZC5ib2R5T3BlbiAmJiByLmJvZHkuaW5zZXJ0QmVmb3JlKGQuYm9keU9wZW4sIHIuYm9keS5maXJzdENoaWxkKSwKICAgICAgICAgIGQuYm9keUNsb3NlICYmIHIuYm9keS5hcHBlbmRDaGlsZChkLmJvZHlDbG9zZSk7CiAgICAgICAgZm9yIChjb25zdCBiIGluIG8ucGVuZGluZ1NpZGVFZmZlY3RzKSBvLnBlbmRpbmdTaWRlRWZmZWN0c1tiXSgpOwogICAgICAgIChlLl9kb20gPSBvKSwKICAgICAgICAgIGF3YWl0IGUuaG9va3MuY2FsbEhvb2soImRvbTpyZW5kZXJlZCIsIHsgcmVuZGVyczogYSB9KSwKICAgICAgICAgIGkoKTsKICAgICAgfSkuZmluYWxseSgoKSA9PiB7CiAgICAgICAgKGUuX2RvbVVwZGF0ZVByb21pc2UgPSB2b2lkIDApLCAoZS5kaXJ0eSA9ICExKTsKICAgICAgfSkpLAogICAgICBlLl9kb21VcGRhdGVQcm9taXNlCiAgICApOwp9CmZ1bmN0aW9uIGRlYm91bmNlZFJlbmRlckRPTUhlYWQoZSwgdCA9IHt9KSB7CiAgY29uc3QgciA9IHQuZGVsYXlGbiB8fCAoKG4pID0+IHNldFRpbWVvdXQobiwgMTApKTsKICByZXR1cm4gKGUuX2RvbURlYm91bmNlZFVwZGF0ZVByb21pc2UgPQogICAgZS5fZG9tRGVib3VuY2VkVXBkYXRlUHJvbWlzZSB8fAogICAgbmV3IFByb21pc2UoKG4pID0+CiAgICAgIHIoKCkgPT4KICAgICAgICByZW5kZXJET01IZWFkKGUsIHQpLnRoZW4oKCkgPT4gewogICAgICAgICAgZGVsZXRlIGUuX2RvbURlYm91bmNlZFVwZGF0ZVByb21pc2UsIG4oKTsKICAgICAgICB9KQogICAgICApCiAgICApKTsKfQpmdW5jdGlvbiBEb21QbHVnaW4oZSkgewogIHJldHVybiAodCkgPT4gewogICAgdmFyIG4sIGk7CiAgICBjb25zdCByID0KICAgICAgKChpID0KICAgICAgICAobiA9IHQucmVzb2x2ZWRPcHRpb25zLmRvY3VtZW50KSA9PSBudWxsCiAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgOiBuLmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W2lkPSJ1bmhlYWQ6cGF5bG9hZCJdJykpID09IG51bGwKICAgICAgICA/IHZvaWQgMAogICAgICAgIDogaS5pbm5lckhUTUwpIHx8ICExOwogICAgcmV0dXJuICgKICAgICAgciAmJiB0LnB1c2goSlNPTi5wYXJzZShyKSksCiAgICAgIHsKICAgICAgICBtb2RlOiAiY2xpZW50IiwKICAgICAgICBob29rczogewogICAgICAgICAgImVudHJpZXM6dXBkYXRlZCI6IChhKSA9PiB7CiAgICAgICAgICAgIGRlYm91bmNlZFJlbmRlckRPTUhlYWQoYSwgZSk7CiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgfTsKfQpjb25zdCBVc2VzTWVyZ2VTdHJhdGVneSA9IG5ldyBTZXQoWyJ0ZW1wbGF0ZVBhcmFtcyIsICJodG1sQXR0cnMiLCAiYm9keUF0dHJzIl0pLAogIERlZHVwZVBsdWdpbiA9IHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWc6bm9ybWFsaXNlIjogKHsgdGFnOiBlIH0pID0+IHsKICAgICAgICBlLnByb3BzLmhpZCAmJiAoKGUua2V5ID0gZS5wcm9wcy5oaWQpLCBkZWxldGUgZS5wcm9wcy5oaWQpLAogICAgICAgICAgZS5wcm9wcy52bWlkICYmICgoZS5rZXkgPSBlLnByb3BzLnZtaWQpLCBkZWxldGUgZS5wcm9wcy52bWlkKSwKICAgICAgICAgIGUucHJvcHMua2V5ICYmICgoZS5rZXkgPSBlLnByb3BzLmtleSksIGRlbGV0ZSBlLnByb3BzLmtleSk7CiAgICAgICAgY29uc3QgdCA9IHRhZ0RlZHVwZUtleShlKTsKICAgICAgICB0ICYmCiAgICAgICAgICAhdC5zdGFydHNXaXRoKCJtZXRhOm9nOiIpICYmCiAgICAgICAgICAhdC5zdGFydHNXaXRoKCJtZXRhOnR3aXR0ZXI6IikgJiYKICAgICAgICAgIGRlbGV0ZSBlLmtleTsKICAgICAgICBjb25zdCByID0gdCB8fCAoZS5rZXkgPyBgJHtlLnRhZ306JHtlLmtleX1gIDogITEpOwogICAgICAgIHIgJiYgKGUuX2QgPSByKTsKICAgICAgfSwKICAgICAgInRhZ3M6cmVzb2x2ZSI6IChlKSA9PiB7CiAgICAgICAgY29uc3QgdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgZm9yIChjb25zdCBuIG9mIGUudGFncykgewogICAgICAgICAgY29uc3QgaSA9IChuLmtleSA/IGAke24udGFnfToke24ua2V5fWAgOiBuLl9kKSB8fCBoYXNoVGFnKG4pLAogICAgICAgICAgICBhID0gdFtpXTsKICAgICAgICAgIGlmIChhKSB7CiAgICAgICAgICAgIGxldCBsID0gbiA9PSBudWxsID8gdm9pZCAwIDogbi50YWdEdXBsaWNhdGVTdHJhdGVneTsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICghbCAmJiBVc2VzTWVyZ2VTdHJhdGVneS5oYXMobi50YWcpICYmIChsID0gIm1lcmdlIiksCiAgICAgICAgICAgICAgICBsID09PSAibWVyZ2UiKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBjb25zdCBjID0gYS5wcm9wczsKICAgICAgICAgICAgICBjLnN0eWxlICYmCiAgICAgICAgICAgICAgICBuLnByb3BzLnN0eWxlICYmCiAgICAgICAgICAgICAgICAoYy5zdHlsZVtjLnN0eWxlLmxlbmd0aCAtIDFdICE9PSAiOyIgJiYgKGMuc3R5bGUgKz0gIjsiKSwKICAgICAgICAgICAgICAgICAgKG4ucHJvcHMuc3R5bGUgPSBgJHtjLnN0eWxlfSAke24ucHJvcHMuc3R5bGV9YCkpLAogICAgICAgICAgICAgICAgYy5jbGFzcyAmJiBuLnByb3BzLmNsYXNzCiAgICAgICAgICAgICAgICAgID8gKG4ucHJvcHMuY2xhc3MgPSBgJHtjLmNsYXNzfSAke24ucHJvcHMuY2xhc3N9YCkKICAgICAgICAgICAgICAgICAgOiBjLmNsYXNzICYmIChuLnByb3BzLmNsYXNzID0gYy5jbGFzcyksCiAgICAgICAgICAgICAgICAodFtpXS5wcm9wcyA9IHsgLi4uYywgLi4ubi5wcm9wcyB9KTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChuLl9lID09PSBhLl9lKSB7CiAgICAgICAgICAgICAgKGEuX2R1cGVkID0gYS5fZHVwZWQgfHwgW10pLAogICAgICAgICAgICAgICAgKG4uX2QgPSBgJHthLl9kfToke2EuX2R1cGVkLmxlbmd0aCArIDF9YCksCiAgICAgICAgICAgICAgICBhLl9kdXBlZC5wdXNoKG4pOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ1dlaWdodChuKSA+IHRhZ1dlaWdodChhKSkgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICEoCiAgICAgICAgICAgICAgbi5pbm5lckhUTUwgfHwKICAgICAgICAgICAgICBuLnRleHRDb250ZW50IHx8CiAgICAgICAgICAgICAgT2JqZWN0LmtleXMobi5wcm9wcykubGVuZ3RoICE9PSAwCiAgICAgICAgICAgICkgJiYKICAgICAgICAgICAgSGFzRWxlbWVudFRhZ3MuaGFzKG4udGFnKQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGRlbGV0ZSB0W2ldOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHRbaV0gPSBuOwogICAgICAgIH0KICAgICAgICBjb25zdCByID0gW107CiAgICAgICAgZm9yIChjb25zdCBuIGluIHQpIHsKICAgICAgICAgIGNvbnN0IGkgPSB0W25dLAogICAgICAgICAgICBhID0gaS5fZHVwZWQ7CiAgICAgICAgICByLnB1c2goaSksIGEgJiYgKGRlbGV0ZSBpLl9kdXBlZCwgci5wdXNoKC4uLmEpKTsKICAgICAgICB9CiAgICAgICAgKGUudGFncyA9IHIpLAogICAgICAgICAgKGUudGFncyA9IGUudGFncy5maWx0ZXIoCiAgICAgICAgICAgIChuKSA9PgogICAgICAgICAgICAgICEoCiAgICAgICAgICAgICAgICBuLnRhZyA9PT0gIm1ldGEiICYmCiAgICAgICAgICAgICAgICAobi5wcm9wcy5uYW1lIHx8IG4ucHJvcHMucHJvcGVydHkpICYmCiAgICAgICAgICAgICAgICAhbi5wcm9wcy5jb250ZW50CiAgICAgICAgICAgICAgKQogICAgICAgICAgKSk7CiAgICAgIH0sCiAgICB9LAogIH0sCiAgVmFsaWRFdmVudFRhZ3MgPSBuZXcgU2V0KFsic2NyaXB0IiwgImxpbmsiLCAiYm9keUF0dHJzIl0pLAogIEV2ZW50SGFuZGxlcnNQbHVnaW4gPSAoZSkgPT4gKHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOnJlc29sdmUiOiAodCkgPT4gewogICAgICAgIGZvciAoY29uc3QgciBvZiB0LnRhZ3MpIHsKICAgICAgICAgIGlmICghVmFsaWRFdmVudFRhZ3MuaGFzKHIudGFnKSkgY29udGludWU7CiAgICAgICAgICBjb25zdCBuID0gci5wcm9wczsKICAgICAgICAgIGZvciAoY29uc3QgaSBpbiBuKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICBpWzBdICE9PSAibyIgfHwKICAgICAgICAgICAgICBpWzFdICE9PSAibiIgfHwKICAgICAgICAgICAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sIGkpCiAgICAgICAgICAgICkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgY29uc3QgYSA9IG5baV07CiAgICAgICAgICAgIHR5cGVvZiBhID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAoZS5zc3IgJiYgTmV0d29ya0V2ZW50cy5oYXMoaSkKICAgICAgICAgICAgICAgID8gKG5baV0gPSBgdGhpcy5kYXRhc2V0LiR7aX1maXJlZCA9IHRydWVgKQogICAgICAgICAgICAgICAgOiBkZWxldGUgbltpXSwKICAgICAgICAgICAgICAgIChyLl9ldmVudEhhbmRsZXJzID0gci5fZXZlbnRIYW5kbGVycyB8fCB7fSksCiAgICAgICAgICAgICAgICAoci5fZXZlbnRIYW5kbGVyc1tpXSA9IGEpKTsKICAgICAgICAgIH0KICAgICAgICAgIGUuc3NyICYmCiAgICAgICAgICAgIHIuX2V2ZW50SGFuZGxlcnMgJiYKICAgICAgICAgICAgKHIucHJvcHMuc3JjIHx8IHIucHJvcHMuaHJlZikgJiYKICAgICAgICAgICAgKHIua2V5ID0gci5rZXkgfHwgaGFzaENvZGUoci5wcm9wcy5zcmMgfHwgci5wcm9wcy5ocmVmKSk7CiAgICAgICAgfQogICAgICB9LAogICAgICAiZG9tOnJlbmRlclRhZyI6ICh7ICRlbDogdCwgdGFnOiByIH0pID0+IHsKICAgICAgICB2YXIgaSwgYTsKICAgICAgICBjb25zdCBuID0gdCA9PSBudWxsID8gdm9pZCAwIDogdC5kYXRhc2V0OwogICAgICAgIGlmIChuKQogICAgICAgICAgZm9yIChjb25zdCBvIGluIG4pIHsKICAgICAgICAgICAgaWYgKCFvLmVuZHNXaXRoKCJmaXJlZCIpKSBjb250aW51ZTsKICAgICAgICAgICAgY29uc3QgbCA9IG8uc2xpY2UoMCwgLTUpOwogICAgICAgICAgICBOZXR3b3JrRXZlbnRzLmhhcyhsKSAmJgogICAgICAgICAgICAgICgoYSA9IChpID0gci5fZXZlbnRIYW5kbGVycykgPT0gbnVsbCA/IHZvaWQgMCA6IGlbbF0pID09IG51bGwgfHwKICAgICAgICAgICAgICAgIGEuY2FsbCh0LCBuZXcgRXZlbnQobC5zdWJzdHJpbmcoMikpKSk7CiAgICAgICAgICB9CiAgICAgIH0sCiAgICB9LAogIH0pLAogIER1cGVhYmxlVGFncyA9IG5ldyBTZXQoWyJsaW5rIiwgInN0eWxlIiwgInNjcmlwdCIsICJub3NjcmlwdCJdKSwKICBIYXNoS2V5ZWRQbHVnaW4gPSB7CiAgICBob29rczogewogICAgICAidGFnOm5vcm1hbGlzZSI6ICh7IHRhZzogZSB9KSA9PiB7CiAgICAgICAgZS5rZXkgJiYKICAgICAgICAgIER1cGVhYmxlVGFncy5oYXMoZS50YWcpICYmCiAgICAgICAgICAoZS5wcm9wc1siZGF0YS1oaWQiXSA9IGUuX2ggPSBoYXNoQ29kZShlLmtleSkpOwogICAgICB9LAogICAgfSwKICB9LAogIFBheWxvYWRQbHVnaW4gPSB7CiAgICBtb2RlOiAic2VydmVyIiwKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOmJlZm9yZVJlc29sdmUiOiAoZSkgPT4gewogICAgICAgIGNvbnN0IHQgPSB7fTsKICAgICAgICBsZXQgciA9ICExOwogICAgICAgIGZvciAoY29uc3QgbiBvZiBlLnRhZ3MpCiAgICAgICAgICBuLl9tICE9PSAic2VydmVyIiB8fAogICAgICAgICAgICAobi50YWcgIT09ICJ0aXRsZVRlbXBsYXRlIiAmJgogICAgICAgICAgICAgIG4udGFnICE9PSAidGVtcGxhdGVQYXJhbXMiICYmCiAgICAgICAgICAgICAgbi50YWcgIT09ICJ0aXRsZSIpIHx8CiAgICAgICAgICAgICgodFtuLnRhZ10gPQogICAgICAgICAgICAgIG4udGFnID09PSAidGl0bGUiIHx8IG4udGFnID09PSAidGl0bGVUZW1wbGF0ZSIKICAgICAgICAgICAgICAgID8gbi50ZXh0Q29udGVudAogICAgICAgICAgICAgICAgOiBuLnByb3BzKSwKICAgICAgICAgICAgICAociA9ICEwKSk7CiAgICAgICAgciAmJgogICAgICAgICAgZS50YWdzLnB1c2goewogICAgICAgICAgICB0YWc6ICJzY3JpcHQiLAogICAgICAgICAgICBpbm5lckhUTUw6IEpTT04uc3RyaW5naWZ5KHQpLAogICAgICAgICAgICBwcm9wczogeyBpZDogInVuaGVhZDpwYXlsb2FkIiwgdHlwZTogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICAgICAgICB9KTsKICAgICAgfSwKICAgIH0sCiAgfSwKICBTb3J0UGx1Z2luID0gewogICAgaG9va3M6IHsKICAgICAgInRhZ3M6cmVzb2x2ZSI6IChlKSA9PiB7CiAgICAgICAgdmFyIHQ7CiAgICAgICAgZm9yIChjb25zdCByIG9mIGUudGFncykKICAgICAgICAgIGlmICh0eXBlb2Ygci50YWdQcmlvcml0eSA9PSAic3RyaW5nIikKICAgICAgICAgICAgZm9yIChjb25zdCB7IHByZWZpeDogbiwgb2Zmc2V0OiBpIH0gb2YgU29ydE1vZGlmaWVycykgewogICAgICAgICAgICAgIGlmICghci50YWdQcmlvcml0eS5zdGFydHNXaXRoKG4pKSBjb250aW51ZTsKICAgICAgICAgICAgICBjb25zdCBhID0gci50YWdQcmlvcml0eS5zdWJzdHJpbmcobi5sZW5ndGgpLAogICAgICAgICAgICAgICAgbyA9CiAgICAgICAgICAgICAgICAgICh0ID0gZS50YWdzLmZpbmQoKGwpID0+IGwuX2QgPT09IGEpKSA9PSBudWxsID8gdm9pZCAwIDogdC5fcDsKICAgICAgICAgICAgICBpZiAobyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICByLl9wID0gbyArIGk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBlLnRhZ3Muc29ydCgociwgbikgPT4gewogICAgICAgICAgY29uc3QgaSA9IHRhZ1dlaWdodChyKSwKICAgICAgICAgICAgYSA9IHRhZ1dlaWdodChuKTsKICAgICAgICAgIHJldHVybiBpIDwgYSA/IC0xIDogaSA+IGEgPyAxIDogci5fcCAtIG4uX3A7CiAgICAgICAgfSk7CiAgICAgIH0sCiAgICB9LAogIH0sCiAgU3VwcG9ydGVkQXR0cnMgPSB7IG1ldGE6ICJjb250ZW50IiwgbGluazogImhyZWYiLCBodG1sQXR0cnM6ICJsYW5nIiB9LAogIGNvbnRlbnRBdHRycyA9IFsiaW5uZXJIVE1MIiwgInRleHRDb250ZW50Il0sCiAgVGVtcGxhdGVQYXJhbXNQbHVnaW4gPSAoZSkgPT4gKHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOnJlc29sdmUiOiAodCkgPT4gewogICAgICAgIHZhciBvOwogICAgICAgIGNvbnN0IHsgdGFnczogciB9ID0gdDsKICAgICAgICBsZXQgbjsKICAgICAgICBmb3IgKGxldCBsID0gMDsgbCA8IHIubGVuZ3RoOyBsICs9IDEpCiAgICAgICAgICByW2xdLnRhZyA9PT0gInRlbXBsYXRlUGFyYW1zIiAmJgogICAgICAgICAgICAoKG4gPSB0LnRhZ3Muc3BsaWNlKGwsIDEpWzBdLnByb3BzKSwgKGwgLT0gMSkpOwogICAgICAgIGNvbnN0IGkgPSBuIHx8IHt9LAogICAgICAgICAgYSA9IGkuc2VwYXJhdG9yIHx8ICJ8IjsKICAgICAgICBkZWxldGUgaS5zZXBhcmF0b3IsCiAgICAgICAgICAoaS5wYWdlVGl0bGUgPSBwcm9jZXNzVGVtcGxhdGVQYXJhbXMoCiAgICAgICAgICAgIGkucGFnZVRpdGxlIHx8CiAgICAgICAgICAgICgobyA9IHIuZmluZCgobCkgPT4gbC50YWcgPT09ICJ0aXRsZSIpKSA9PSBudWxsCiAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICA6IG8udGV4dENvbnRlbnQpIHx8CiAgICAgICAgICAgICIiLAogICAgICAgICAgICBpLAogICAgICAgICAgICBhCiAgICAgICAgICApKTsKICAgICAgICBmb3IgKGNvbnN0IGwgb2YgcikgewogICAgICAgICAgaWYgKGwucHJvY2Vzc1RlbXBsYXRlUGFyYW1zID09PSAhMSkgY29udGludWU7CiAgICAgICAgICBjb25zdCBjID0gU3VwcG9ydGVkQXR0cnNbbC50YWddOwogICAgICAgICAgaWYgKGMgJiYgdHlwZW9mIGwucHJvcHNbY10gPT0gInN0cmluZyIpCiAgICAgICAgICAgIGwucHJvcHNbY10gPSBwcm9jZXNzVGVtcGxhdGVQYXJhbXMobC5wcm9wc1tjXSwgaSwgYSk7CiAgICAgICAgICBlbHNlIGlmICgKICAgICAgICAgICAgbC5wcm9jZXNzVGVtcGxhdGVQYXJhbXMgfHwKICAgICAgICAgICAgbC50YWcgPT09ICJ0aXRsZVRlbXBsYXRlIiB8fAogICAgICAgICAgICBsLnRhZyA9PT0gInRpdGxlIgogICAgICAgICAgKQogICAgICAgICAgICBmb3IgKGNvbnN0IHUgb2YgY29udGVudEF0dHJzKQogICAgICAgICAgICAgIHR5cGVvZiBsW3VdID09ICJzdHJpbmciICYmCiAgICAgICAgICAgICAgICAobFt1XSA9IHByb2Nlc3NUZW1wbGF0ZVBhcmFtcygKICAgICAgICAgICAgICAgICAgbFt1XSwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbC50YWcgPT09ICJzY3JpcHQiICYmIGwucHJvcHMudHlwZS5lbmRzV2l0aCgianNvbiIpCiAgICAgICAgICAgICAgICApKTsKICAgICAgICB9CiAgICAgICAgKGUuX3RlbXBsYXRlUGFyYW1zID0gaSksIChlLl9zZXBhcmF0b3IgPSBhKTsKICAgICAgfSwKICAgICAgInRhZ3M6YWZ0ZXJSZXNvbHZlIjogKHsgdGFnczogdCB9KSA9PiB7CiAgICAgICAgbGV0IHI7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCB0Lmxlbmd0aDsgbiArPSAxKSB7CiAgICAgICAgICBjb25zdCBpID0gdFtuXTsKICAgICAgICAgIGkudGFnID09PSAidGl0bGUiICYmIGkucHJvY2Vzc1RlbXBsYXRlUGFyYW1zICE9PSAhMSAmJiAociA9IGkpOwogICAgICAgIH0KICAgICAgICByICE9IG51bGwgJiYKICAgICAgICAgIHIudGV4dENvbnRlbnQgJiYKICAgICAgICAgIChyLnRleHRDb250ZW50ID0gcHJvY2Vzc1RlbXBsYXRlUGFyYW1zKAogICAgICAgICAgICByLnRleHRDb250ZW50LAogICAgICAgICAgICBlLl90ZW1wbGF0ZVBhcmFtcywKICAgICAgICAgICAgZS5fc2VwYXJhdG9yCiAgICAgICAgICApKTsKICAgICAgfSwKICAgIH0sCiAgfSksCiAgVGl0bGVUZW1wbGF0ZVBsdWdpbiA9IHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOnJlc29sdmUiOiAoZSkgPT4gewogICAgICAgIGNvbnN0IHsgdGFnczogdCB9ID0gZTsKICAgICAgICBsZXQgciwgbjsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHQubGVuZ3RoOyBpICs9IDEpIHsKICAgICAgICAgIGNvbnN0IGEgPSB0W2ldOwogICAgICAgICAgYS50YWcgPT09ICJ0aXRsZSIgPyAociA9IGEpIDogYS50YWcgPT09ICJ0aXRsZVRlbXBsYXRlIiAmJiAobiA9IGEpOwogICAgICAgIH0KICAgICAgICBpZiAobiAmJiByKSB7CiAgICAgICAgICBjb25zdCBpID0gcmVzb2x2ZVRpdGxlVGVtcGxhdGUobi50ZXh0Q29udGVudCwgci50ZXh0Q29udGVudCk7CiAgICAgICAgICBpICE9PSBudWxsCiAgICAgICAgICAgID8gKHIudGV4dENvbnRlbnQgPSBpIHx8IHIudGV4dENvbnRlbnQpCiAgICAgICAgICAgIDogZS50YWdzLnNwbGljZShlLnRhZ3MuaW5kZXhPZihyKSwgMSk7CiAgICAgICAgfSBlbHNlIGlmIChuKSB7CiAgICAgICAgICBjb25zdCBpID0gcmVzb2x2ZVRpdGxlVGVtcGxhdGUobi50ZXh0Q29udGVudCk7CiAgICAgICAgICBpICE9PSBudWxsICYmICgobi50ZXh0Q29udGVudCA9IGkpLCAobi50YWcgPSAidGl0bGUiKSwgKG4gPSB2b2lkIDApKTsKICAgICAgICB9CiAgICAgICAgbiAmJiBlLnRhZ3Muc3BsaWNlKGUudGFncy5pbmRleE9mKG4pLCAxKTsKICAgICAgfSwKICAgIH0sCiAgfSwKICBYU1NQbHVnaW4gPSB7CiAgICBob29rczogewogICAgICAidGFnczphZnRlclJlc29sdmUiOiAoZSkgPT4gewogICAgICAgIGZvciAoY29uc3QgdCBvZiBlLnRhZ3MpCiAgICAgICAgICB0eXBlb2YgdC5pbm5lckhUTUwgPT0gInN0cmluZyIgJiYKICAgICAgICAgICAgKHQuaW5uZXJIVE1MICYmCiAgICAgICAgICAgICAgKHQucHJvcHMudHlwZSA9PT0gImFwcGxpY2F0aW9uL2xkK2pzb24iIHx8CiAgICAgICAgICAgICAgICB0LnByb3BzLnR5cGUgPT09ICJhcHBsaWNhdGlvbi9qc29uIikKICAgICAgICAgICAgICA/ICh0LmlubmVySFRNTCA9IHQuaW5uZXJIVE1MLnJlcGxhY2UoLzwvZywgIlxcdTAwM0MiKSkKICAgICAgICAgICAgICA6ICh0LmlubmVySFRNTCA9IHQuaW5uZXJIVE1MLnJlcGxhY2UoCiAgICAgICAgICAgICAgICBuZXcgUmVnRXhwKGA8LyR7dC50YWd9YCwgImciKSwKICAgICAgICAgICAgICAgIGA8XFwvJHt0LnRhZ31gCiAgICAgICAgICAgICAgKSkpOwogICAgICB9LAogICAgfSwKICB9OwpsZXQgYWN0aXZlSGVhZDsKZnVuY3Rpb24gY3JlYXRlSGVhZCQxKGUgPSB7fSkgewogIGNvbnN0IHQgPSBjcmVhdGVIZWFkQ29yZShlKTsKICByZXR1cm4gdC51c2UoRG9tUGx1Z2luKCkpLCAoYWN0aXZlSGVhZCA9IHQpOwp9CmZ1bmN0aW9uIGZpbHRlck1vZGUoZSwgdCkgewogIHJldHVybiAhZSB8fCAoZSA9PT0gInNlcnZlciIgJiYgdCkgfHwgKGUgPT09ICJjbGllbnQiICYmICF0KTsKfQpmdW5jdGlvbiBjcmVhdGVIZWFkQ29yZShlID0ge30pIHsKICBjb25zdCB0ID0gY3JlYXRlSG9va3MoKTsKICB0LmFkZEhvb2tzKGUuaG9va3MgfHwge30pLAogICAgKGUuZG9jdW1lbnQgPSBlLmRvY3VtZW50IHx8IChJc0Jyb3dzZXIgPyBkb2N1bWVudCA6IHZvaWQgMCkpOwogIGNvbnN0IHIgPSAhZS5kb2N1bWVudCwKICAgIG4gPSAoKSA9PiB7CiAgICAgIChsLmRpcnR5ID0gITApLCB0LmNhbGxIb29rKCJlbnRyaWVzOnVwZGF0ZWQiLCBsKTsKICAgIH07CiAgbGV0IGkgPSAwLAogICAgYSA9IFtdOwogIGNvbnN0IG8gPSBbXSwKICAgIGwgPSB7CiAgICAgIHBsdWdpbnM6IG8sCiAgICAgIGRpcnR5OiAhMSwKICAgICAgcmVzb2x2ZWRPcHRpb25zOiBlLAogICAgICBob29rczogdCwKICAgICAgaGVhZEVudHJpZXMoKSB7CiAgICAgICAgcmV0dXJuIGE7CiAgICAgIH0sCiAgICAgIHVzZShjKSB7CiAgICAgICAgY29uc3QgdSA9IHR5cGVvZiBjID09ICJmdW5jdGlvbiIgPyBjKGwpIDogYzsKICAgICAgICAoIXUua2V5IHx8ICFvLnNvbWUoKGQpID0+IGQua2V5ID09PSB1LmtleSkpICYmCiAgICAgICAgICAoby5wdXNoKHUpLCBmaWx0ZXJNb2RlKHUubW9kZSwgcikgJiYgdC5hZGRIb29rcyh1Lmhvb2tzIHx8IHt9KSk7CiAgICAgIH0sCiAgICAgIHB1c2goYywgdSkgewogICAgICAgIHUgPT0gbnVsbCB8fCBkZWxldGUgdS5oZWFkOwogICAgICAgIGNvbnN0IGQgPSB7IF9pOiBpKyssIGlucHV0OiBjLCAuLi51IH07CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGZpbHRlck1vZGUoZC5tb2RlLCByKSAmJiAoYS5wdXNoKGQpLCBuKCkpLAogICAgICAgICAgewogICAgICAgICAgICBkaXNwb3NlKCkgewogICAgICAgICAgICAgIChhID0gYS5maWx0ZXIoKEUpID0+IEUuX2kgIT09IGQuX2kpKSwgbigpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBwYXRjaChFKSB7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBiIG9mIGEpIGIuX2kgPT09IGQuX2kgJiYgKGIuaW5wdXQgPSBkLmlucHV0ID0gRSk7CiAgICAgICAgICAgICAgbigpOwogICAgICAgICAgICB9LAogICAgICAgICAgfQogICAgICAgICk7CiAgICAgIH0sCiAgICAgIGFzeW5jIHJlc29sdmVUYWdzKCkgewogICAgICAgIGNvbnN0IGMgPSB7IHRhZ3M6IFtdLCBlbnRyaWVzOiBbLi4uYV0gfTsKICAgICAgICBhd2FpdCB0LmNhbGxIb29rKCJlbnRyaWVzOnJlc29sdmUiLCBjKTsKICAgICAgICBmb3IgKGNvbnN0IHUgb2YgYy5lbnRyaWVzKSB7CiAgICAgICAgICBjb25zdCBkID0gdS5yZXNvbHZlZElucHV0IHx8IHUuaW5wdXQ7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICgodS5yZXNvbHZlZElucHV0ID0gYXdhaXQgKHUudHJhbnNmb3JtID8gdS50cmFuc2Zvcm0oZCkgOiBkKSksCiAgICAgICAgICAgICAgdS5yZXNvbHZlZElucHV0KQogICAgICAgICAgKQogICAgICAgICAgICBmb3IgKGNvbnN0IEUgb2YgYXdhaXQgbm9ybWFsaXNlRW50cnlUYWdzKHUpKSB7CiAgICAgICAgICAgICAgY29uc3QgYiA9IHsKICAgICAgICAgICAgICAgIHRhZzogRSwKICAgICAgICAgICAgICAgIGVudHJ5OiB1LAogICAgICAgICAgICAgICAgcmVzb2x2ZWRPcHRpb25zOiBsLnJlc29sdmVkT3B0aW9ucywKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGF3YWl0IHQuY2FsbEhvb2soInRhZzpub3JtYWxpc2UiLCBiKSwgYy50YWdzLnB1c2goYi50YWcpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAoCiAgICAgICAgICBhd2FpdCB0LmNhbGxIb29rKCJ0YWdzOmJlZm9yZVJlc29sdmUiLCBjKSwKICAgICAgICAgIGF3YWl0IHQuY2FsbEhvb2soInRhZ3M6cmVzb2x2ZSIsIGMpLAogICAgICAgICAgYXdhaXQgdC5jYWxsSG9vaygidGFnczphZnRlclJlc29sdmUiLCBjKSwKICAgICAgICAgIGMudGFncwogICAgICAgICk7CiAgICAgIH0sCiAgICAgIHNzcjogciwKICAgIH07CiAgcmV0dXJuICgKICAgIFsKICAgICAgRGVkdXBlUGx1Z2luLAogICAgICBQYXlsb2FkUGx1Z2luLAogICAgICBFdmVudEhhbmRsZXJzUGx1Z2luLAogICAgICBIYXNoS2V5ZWRQbHVnaW4sCiAgICAgIFNvcnRQbHVnaW4sCiAgICAgIFRlbXBsYXRlUGFyYW1zUGx1Z2luLAogICAgICBUaXRsZVRlbXBsYXRlUGx1Z2luLAogICAgICBYU1NQbHVnaW4sCiAgICAgIC4uLigoZSA9PSBudWxsID8gdm9pZCAwIDogZS5wbHVnaW5zKSB8fCBbXSksCiAgICBdLmZvckVhY2goKGMpID0+IGwudXNlKGMpKSwKICAgIGwuaG9va3MuY2FsbEhvb2soImluaXQiLCBsKSwKICAgIGwKICApOwp9CmZ1bmN0aW9uIGdldEFjdGl2ZUhlYWQoKSB7CiAgcmV0dXJuIGFjdGl2ZUhlYWQ7Cn0KY29uc3QgVnVlMyA9IHZlcnNpb24kMVswXSA9PT0gIjMiOwpmdW5jdGlvbiByZXNvbHZlVW5yZWYoZSkgewogIHJldHVybiB0eXBlb2YgZSA9PSAiZnVuY3Rpb24iID8gZSgpIDogdW5yZWYoZSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZVVucmVmSGVhZElucHV0KGUpIHsKICBpZiAoZSBpbnN0YW5jZW9mIFByb21pc2UgfHwgZSBpbnN0YW5jZW9mIERhdGUgfHwgZSBpbnN0YW5jZW9mIFJlZ0V4cCkKICAgIHJldHVybiBlOwogIGNvbnN0IHQgPSByZXNvbHZlVW5yZWYoZSk7CiAgaWYgKCFlIHx8ICF0KSByZXR1cm4gdDsKICBpZiAoQXJyYXkuaXNBcnJheSh0KSkgcmV0dXJuIHQubWFwKChyKSA9PiByZXNvbHZlVW5yZWZIZWFkSW5wdXQocikpOwogIGlmICh0eXBlb2YgdCA9PSAib2JqZWN0IikgewogICAgY29uc3QgciA9IHt9OwogICAgZm9yIChjb25zdCBuIGluIHQpCiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgbikpIHsKICAgICAgICBpZiAobiA9PT0gInRpdGxlVGVtcGxhdGUiIHx8IChuWzBdID09PSAibyIgJiYgblsxXSA9PT0gIm4iKSkgewogICAgICAgICAgcltuXSA9IHVucmVmKHRbbl0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIHJbbl0gPSByZXNvbHZlVW5yZWZIZWFkSW5wdXQodFtuXSk7CiAgICAgIH0KICAgIHJldHVybiByOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCBWdWVSZWFjdGl2aXR5UGx1Z2luID0gewogIGhvb2tzOiB7CiAgICAiZW50cmllczpyZXNvbHZlIjogKGUpID0+IHsKICAgICAgZm9yIChjb25zdCB0IG9mIGUuZW50cmllcykKICAgICAgICB0LnJlc29sdmVkSW5wdXQgPSByZXNvbHZlVW5yZWZIZWFkSW5wdXQodC5pbnB1dCk7CiAgICB9LAogIH0sCn0sCiAgaGVhZFN5bWJvbCA9ICJ1c2VoZWFkIjsKZnVuY3Rpb24gdnVlSW5zdGFsbChlKSB7CiAgcmV0dXJuIHsKICAgIGluc3RhbGwocikgewogICAgICBWdWUzICYmCiAgICAgICAgKChyLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiR1bmhlYWQgPSBlKSwKICAgICAgICAgIChyLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRoZWFkID0gZSksCiAgICAgICAgICByLnByb3ZpZGUoaGVhZFN5bWJvbCwgZSkpOwogICAgfSwKICB9Lmluc3RhbGw7Cn0KZnVuY3Rpb24gY3JlYXRlSGVhZChlID0ge30pIHsKICBlLmRvbURlbGF5Rm4gPQogICAgZS5kb21EZWxheUZuIHx8ICgocikgPT4gbmV4dFRpY2soKCkgPT4gc2V0VGltZW91dCgoKSA9PiByKCksIDApKSk7CiAgY29uc3QgdCA9IGNyZWF0ZUhlYWQkMShlKTsKICByZXR1cm4gdC51c2UoVnVlUmVhY3Rpdml0eVBsdWdpbiksICh0Lmluc3RhbGwgPSB2dWVJbnN0YWxsKHQpKSwgdDsKfQpjb25zdCBfZ2xvYmFsID0KICB0eXBlb2YgZ2xvYmFsVGhpcyA8ICJ1IgogICAgPyBnbG9iYWxUaGlzCiAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIKICAgICAgPyB3aW5kb3cKICAgICAgOiB0eXBlb2YgZ2xvYmFsIDwgInUiCiAgICAgICAgPyBnbG9iYWwKICAgICAgICA6IHR5cGVvZiBzZWxmIDwgInUiCiAgICAgICAgICA/IHNlbGYKICAgICAgICAgIDoge30sCiAgZ2xvYmFsS2V5ID0gIl9fdW5oZWFkX2luamVjdGlvbl9oYW5kbGVyX18iOwpmdW5jdGlvbiBzZXRIZWFkSW5qZWN0aW9uSGFuZGxlcihlKSB7CiAgX2dsb2JhbFtnbG9iYWxLZXldID0gZTsKfQpmdW5jdGlvbiBpbmplY3RIZWFkKCkgewogIHJldHVybiBnbG9iYWxLZXkgaW4gX2dsb2JhbAogICAgPyBfZ2xvYmFsW2dsb2JhbEtleV0oKQogICAgOiBpbmplY3QkMShoZWFkU3ltYm9sKSB8fCBnZXRBY3RpdmVIZWFkKCk7Cn0KZnVuY3Rpb24gdXNlSGVhZChlLCB0ID0ge30pIHsKICBjb25zdCByID0gdC5oZWFkIHx8IGluamVjdEhlYWQoKTsKICBpZiAocikgcmV0dXJuIHIuc3NyID8gci5wdXNoKGUsIHQpIDogY2xpZW50VXNlSGVhZChyLCBlLCB0KTsKfQpmdW5jdGlvbiBjbGllbnRVc2VIZWFkKGUsIHQsIHIgPSB7fSkgewogIGNvbnN0IG4gPSByZWYoITEpLAogICAgaSA9IHJlZih7fSk7CiAgd2F0Y2hFZmZlY3QoKCkgPT4gewogICAgaS52YWx1ZSA9IG4udmFsdWUgPyB7fSA6IHJlc29sdmVVbnJlZkhlYWRJbnB1dCh0KTsKICB9KTsKICBjb25zdCBhID0gZS5wdXNoKGkudmFsdWUsIHIpOwogIHJldHVybiAoCiAgICB3YXRjaChpLCAobCkgPT4gewogICAgICBhLnBhdGNoKGwpOwogICAgfSksCiAgICBnZXRDdXJyZW50SW5zdGFuY2UkMSgpICYmCiAgICAob25CZWZvcmVVbm1vdW50KCgpID0+IHsKICAgICAgYS5kaXNwb3NlKCk7CiAgICB9KSwKICAgICAgb25EZWFjdGl2YXRlZCgoKSA9PiB7CiAgICAgICAgbi52YWx1ZSA9ICEwOwogICAgICB9KSwKICAgICAgb25BY3RpdmF0ZWQoKCkgPT4gewogICAgICAgIG4udmFsdWUgPSAhMTsKICAgICAgfSkpLAogICAgYQogICk7Cn0KY29uc3Qgc2NyaXB0UmVsID0gIm1vZHVsZXByZWxvYWQiLAogIGFzc2V0c1VSTCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICByZXR1cm4gbmV3IFVSTChlLCB0KS5ocmVmOwogIH0sCiAgc2VlbiA9IHt9LAogIF9fdml0ZVByZWxvYWQgPSBmdW5jdGlvbiAodCwgciwgbikgewogICAgbGV0IGkgPSBQcm9taXNlLnJlc29sdmUoKTsKICAgIGlmIChyICYmIHIubGVuZ3RoID4gMCkgewogICAgICBjb25zdCBvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKSwKICAgICAgICBsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdIiksCiAgICAgICAgYyA9CiAgICAgICAgICAobCA9PSBudWxsID8gdm9pZCAwIDogbC5ub25jZSkgfHwKICAgICAgICAgIChsID09IG51bGwgPyB2b2lkIDAgOiBsLmdldEF0dHJpYnV0ZSgibm9uY2UiKSk7CiAgICAgIGkgPSBQcm9taXNlLmFsbFNldHRsZWQoCiAgICAgICAgci5tYXAoKHUpID0+IHsKICAgICAgICAgIGlmICgoKHUgPSBhc3NldHNVUkwodSwgbikpLCB1IGluIHNlZW4pKSByZXR1cm47CiAgICAgICAgICBzZWVuW3VdID0gITA7CiAgICAgICAgICBjb25zdCBkID0gdS5lbmRzV2l0aCgiLmNzcyIpLAogICAgICAgICAgICBFID0gZCA/ICdbcmVsPSJzdHlsZXNoZWV0Il0nIDogIiI7CiAgICAgICAgICBpZiAoISFuKQogICAgICAgICAgICBmb3IgKGxldCBSID0gby5sZW5ndGggLSAxOyBSID49IDA7IFItLSkgewogICAgICAgICAgICAgIGNvbnN0IFQgPSBvW1JdOwogICAgICAgICAgICAgIGlmIChULmhyZWYgPT09IHUgJiYgKCFkIHx8IFQucmVsID09PSAic3R5bGVzaGVldCIpKSByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHt1fSJdJHtFfWApKSByZXR1cm47CiAgICAgICAgICBjb25zdCBQID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpOwogICAgICAgICAgaWYgKAogICAgICAgICAgICAoKFAucmVsID0gZCA/ICJzdHlsZXNoZWV0IiA6IHNjcmlwdFJlbCksCiAgICAgICAgICAgICAgZCB8fCAoUC5hcyA9ICJzY3JpcHQiKSwKICAgICAgICAgICAgICAoUC5jcm9zc09yaWdpbiA9ICIiKSwKICAgICAgICAgICAgICAoUC5ocmVmID0gdSksCiAgICAgICAgICAgICAgYyAmJiBQLnNldEF0dHJpYnV0ZSgibm9uY2UiLCBjKSwKICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKFApLAogICAgICAgICAgICAgIGQpCiAgICAgICAgICApCiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoUiwgVCkgPT4gewogICAgICAgICAgICAgIFAuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIFIpLAogICAgICAgICAgICAgICAgUC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpID0+CiAgICAgICAgICAgICAgICAgIFQobmV3IEVycm9yKGBVbmFibGUgdG8gcHJlbG9hZCBDU1MgZm9yICR7dX1gKSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pCiAgICAgICk7CiAgICB9CiAgICBmdW5jdGlvbiBhKG8pIHsKICAgICAgY29uc3QgbCA9IG5ldyBFdmVudCgidml0ZTpwcmVsb2FkRXJyb3IiLCB7IGNhbmNlbGFibGU6ICEwIH0pOwogICAgICBpZiAoKChsLnBheWxvYWQgPSBvKSwgd2luZG93LmRpc3BhdGNoRXZlbnQobCksICFsLmRlZmF1bHRQcmV2ZW50ZWQpKQogICAgICAgIHRocm93IG87CiAgICB9CiAgICByZXR1cm4gaS50aGVuKChvKSA9PiB7CiAgICAgIGZvciAoY29uc3QgbCBvZiBvIHx8IFtdKSBsLnN0YXR1cyA9PT0gInJlamVjdGVkIiAmJiBhKGwucmVhc29uKTsKICAgICAgcmV0dXJuIHQoKS5jYXRjaChhKTsKICAgIH0pOwogIH07CmxldCBtYW5pZmVzdCwgbWF0Y2hlcjsKZnVuY3Rpb24gZmV0Y2hNYW5pZmVzdCgpIHsKICByZXR1cm4gKAogICAgKG1hbmlmZXN0ID0gJGZldGNoKAogICAgICBidWlsZEFzc2V0c1VSTChgYnVpbGRzL21ldGEvJHt1c2VSdW50aW1lQ29uZmlnKCkuYXBwLmJ1aWxkSWR9Lmpzb25gKSwKICAgICAgeyByZXNwb25zZVR5cGU6ICJqc29uIiB9CiAgICApKSwKICAgIG1hbmlmZXN0CiAgICAgIC50aGVuKChlKSA9PiB7CiAgICAgICAgbWF0Y2hlciA9IGNyZWF0ZU1hdGNoZXJGcm9tRXhwb3J0KGUubWF0Y2hlcik7CiAgICAgIH0pCiAgICAgIC5jYXRjaCgoZSkgPT4gewogICAgICAgIGNvbnNvbGUuZXJyb3IoIltudXh0XSBFcnJvciBmZXRjaGluZyBhcHAgbWFuaWZlc3QuIiwgZSk7CiAgICAgIH0pLAogICAgbWFuaWZlc3QKICApOwp9CmZ1bmN0aW9uIGdldEFwcE1hbmlmZXN0KCkgewogIHJldHVybiBtYW5pZmVzdCB8fCBmZXRjaE1hbmlmZXN0KCk7Cn0KYXN5bmMgZnVuY3Rpb24gZ2V0Um91dGVSdWxlcyhlKSB7CiAgY29uc3QgdCA9IHR5cGVvZiBlID09ICJzdHJpbmciID8gZSA6IGUucGF0aDsKICBpZiAoKGF3YWl0IGdldEFwcE1hbmlmZXN0KCksICFtYXRjaGVyKSkKICAgIHJldHVybiAoCiAgICAgIGNvbnNvbGUuZXJyb3IoIltudXh0XSBFcnJvciBjcmVhdGluZyBhcHAgbWFuaWZlc3QgbWF0Y2hlci4iLCBtYXRjaGVyKSwge30KICAgICk7CiAgdHJ5IHsKICAgIHJldHVybiBkZWZ1KHt9LCAuLi5tYXRjaGVyLm1hdGNoQWxsKHQpLnJldmVyc2UoKSk7CiAgfSBjYXRjaCAocikgewogICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoIltudXh0XSBFcnJvciBtYXRjaGluZyByb3V0ZSBydWxlcy4iLCByKSwge307CiAgfQp9CmFzeW5jIGZ1bmN0aW9uIGxvYWRQYXlsb2FkKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSBhd2FpdCBfZ2V0UGF5bG9hZFVSTChlLCB0KSwKICAgIG4gPSB1c2VOdXh0QXBwKCksCiAgICBpID0gKG4uX3BheWxvYWRDYWNoZSA9IG4uX3BheWxvYWRDYWNoZSB8fCB7fSk7CiAgcmV0dXJuIHIgaW4gaQogICAgPyBpW3JdIHx8IG51bGwKICAgIDogKChpW3JdID0gaXNQcmVyZW5kZXJlZChlKS50aGVuKChhKSA9PgogICAgICBhCiAgICAgICAgPyBfaW1wb3J0UGF5bG9hZChyKS50aGVuKChvKSA9PiBvIHx8IChkZWxldGUgaVtyXSwgbnVsbCkpCiAgICAgICAgOiAoKGlbcl0gPSBudWxsKSwgbnVsbCkKICAgICkpLAogICAgICBpW3JdKTsKfQpjb25zdCBmaWxlbmFtZSA9ICJfcGF5bG9hZC5qc29uIjsKYXN5bmMgZnVuY3Rpb24gX2dldFBheWxvYWRVUkwoZSwgdCA9IHt9KSB7CiAgY29uc3QgciA9IG5ldyBVUkwoZSwgImh0dHA6Ly9sb2NhbGhvc3QiKTsKICBpZiAoci5ob3N0ICE9PSAibG9jYWxob3N0IiB8fCBoYXNQcm90b2NvbChyLnBhdGhuYW1lLCB7IGFjY2VwdFJlbGF0aXZlOiAhMCB9KSkKICAgIHRocm93IG5ldyBFcnJvcigiUGF5bG9hZCBVUkwgbXVzdCBub3QgaW5jbHVkZSBob3N0bmFtZTogIiArIGUpOwogIGNvbnN0IG4gPSB1c2VSdW50aW1lQ29uZmlnKCksCiAgICBpID0gdC5oYXNoIHx8ICh0LmZyZXNoID8gRGF0ZS5ub3coKSA6IG4uYXBwLmJ1aWxkSWQpLAogICAgYSA9IG4uYXBwLmNkblVSTCwKICAgIG8gPSBhICYmIChhd2FpdCBpc1ByZXJlbmRlcmVkKGUpKSA/IGEgOiBuLmFwcC5iYXNlVVJMOwogIHJldHVybiBqb2luVVJMKG8sIHIucGF0aG5hbWUsIGZpbGVuYW1lICsgKGkgPyBgPyR7aX1gIDogIiIpKTsKfQphc3luYyBmdW5jdGlvbiBfaW1wb3J0UGF5bG9hZChlKSB7CiAgY29uc3QgdCA9IGZldGNoKGUpLnRoZW4oKHIpID0+IHIudGV4dCgpLnRoZW4ocGFyQ2hhaW5HcmFtc2xvYWQpKTsKICB0cnkgewogICAgcmV0dXJuIGF3YWl0IHQ7CiAgfSBjYXRjaCAocikgewogICAgY29uc29sZS53YXJuKCJbbnV4dF0gQ2Fubm90IGxvYWQgcGF5bG9hZCAiLCBlLCByKTsKICB9CiAgcmV0dXJuIG51bGw7Cn0KYXN5bmMgZnVuY3Rpb24gaXNQcmVyZW5kZXJlZChlID0gdXNlUm91dGUkMSgpLnBhdGgpIHsKICBjb25zdCB0ID0gdXNlTnV4dEFwcCgpOwogIHJldHVybiAoCiAgICAoZSA9IHdpdGhvdXRUcmFpbGluZ1NsYXNoKGUpKSwKICAgIChhd2FpdCBnZXRBcHBNYW5pZmVzdCgpKS5wcmVyZW5kZXJlZC5pbmNsdWRlcyhlKQogICAgICA/ICEwCiAgICAgIDogdC5ydW5XaXRoQ29udGV4dChhc3luYyAoKSA9PiB7CiAgICAgICAgY29uc3QgbiA9IGF3YWl0IGdldFJvdXRlUnVsZXMoeyBwYXRoOiBlIH0pOwogICAgICAgIHJldHVybiAhIW4ucHJlcmVuZGVyICYmICFuLnJlZGlyZWN0OwogICAgICB9KQogICk7Cn0KbGV0IHBheWxvYWRDYWNoZSA9IG51bGw7CmFzeW5jIGZ1bmN0aW9uIGdldE51eHRDbGllbnRQYXlsb2FkKCkgewogIHZhciBuOwogIGlmIChwYXlsb2FkQ2FjaGUpIHJldHVybiBwYXlsb2FkQ2FjaGU7CiAgY29uc3QgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX05VWFRfREFUQV9fIik7CiAgaWYgKCFlKSByZXR1cm4ge307CiAgY29uc3QgdCA9IGF3YWl0IHBhckNoYWluR3JhbXNsb2FkKGUudGV4dENvbnRlbnQgfHwgIiIpLAogICAgciA9IGUuZGF0YXNldC5zcmMgPyBhd2FpdCBfaW1wb3J0UGF5bG9hZChlLmRhdGFzZXQuc3JjKSA6IHZvaWQgMDsKICByZXR1cm4gKAogICAgKHBheWxvYWRDYWNoZSA9IHsgLi4udCwgLi4uciwgLi4ud2luZG93Ll9fTlVYVF9fIH0pLAogICAgKG4gPSBwYXlsb2FkQ2FjaGUuY29uZmlnKSAhPSBudWxsICYmCiAgICBuLnB1YmxpYyAmJgogICAgKHBheWxvYWRDYWNoZS5jb25maWcucHVibGljID0gcmVhY3RpdmUocGF5bG9hZENhY2hlLmNvbmZpZy5wdWJsaWMpKSwKICAgIHBheWxvYWRDYWNoZQogICk7Cn0KYXN5bmMgZnVuY3Rpb24gcGFyQ2hhaW5HcmFtc2xvYWQoZSkgewogIHJldHVybiBhd2FpdCBwYXJzZSQxKGUsIHVzZU51eHRBcHAoKS5fcGF5bG9hZFJldml2ZXJzKTsKfQpmdW5jdGlvbiBkZWZpbmVQYXlsb2FkUmV2aXZlcihlLCB0KSB7CiAgdXNlTnV4dEFwcCgpLl9wYXlsb2FkUmV2aXZlcnNbZV0gPSB0Owp9CmNvbnN0IHBheWxvYWRQbHVnaW4gPSBkZWZpbmVQYXlsb2FkUGx1Z2luKCgpID0+IHsKICBkZWZpbmVQYXlsb2FkUmV2aXZlcigic2tpcEh5ZHJhdGUiLCAoZSkgPT4geyB9KTsKfSksCiAgcmV2aXZlcnMgPSBbCiAgICBbIk51eHRFcnJvciIsIChlKSA9PiBjcmVhdGVFcnJvcihlKV0sCiAgICBbCiAgICAgICJFbXB0eVNoYWxsb3dSZWYiLAogICAgICAoZSkgPT4gc2hhbGxvd1JlZihlID09PSAiXyIgPyB2b2lkIDAgOiBlID09PSAiMG4iID8gQmlnSW50KDApIDogZGVzdHIoZSkpLAogICAgXSwKICAgIFsKICAgICAgIkVtcHR5UmVmIiwKICAgICAgKGUpID0+IHJlZihlID09PSAiXyIgPyB2b2lkIDAgOiBlID09PSAiMG4iID8gQmlnSW50KDApIDogZGVzdHIoZSkpLAogICAgXSwKICAgIFsiU2hhbGxvd1JlZiIsIChlKSA9PiBzaGFsbG93UmVmKGUpXSwKICAgIFsiU2hhbGxvd1JlYWN0aXZlIiwgKGUpID0+IHNoYWxsb3dSZWFjdGl2ZShlKV0sCiAgICBbIlJlZiIsIChlKSA9PiByZWYoZSldLAogICAgWyJSZWFjdGl2ZSIsIChlKSA9PiByZWFjdGl2ZShlKV0sCiAgXSwKICByZXZpdmVfcGF5bG9hZF9jbGllbnRfNHNWUU53N1JsTiA9IGRlZmluZU51eHRQbHVnaW4oewogICAgbmFtZTogIm51eHQ6cmV2aXZlLXBheWxvYWQ6Y2xpZW50IiwKICAgIG9yZGVyOiAtMzAsCiAgICBhc3luYyBzZXR1cChlKSB7CiAgICAgIGxldCB0LCByOwogICAgICBmb3IgKGNvbnN0IFtuLCBpXSBvZiByZXZpdmVycykgZGVmaW5lUGF5bG9hZFJldml2ZXIobiwgaSk7CiAgICAgIE9iamVjdC5hc3NpZ24oCiAgICAgICAgZS5wYXlsb2FkLAogICAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGUucnVuV2l0aENvbnRleHQoZ2V0TnV4dENsaWVudFBheWxvYWQpKSksCiAgICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgICAgcigpLAogICAgICAgICAgdCkKICAgICAgKSwKICAgICAgICAod2luZG93Ll9fTlVYVF9fID0gZS5wYXlsb2FkKTsKICAgIH0sCiAgfSk7Ci8qIQogKiBzaGFyZWQgdjkuMTQuMgogKiAoYykgMjAyNCBrYXp1eWEga2F3YWd1Y2hpCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovIGNvbnN0IGluQnJvd3NlciQxID0gdHlwZW9mIHdpbmRvdyA8ICJ1IiwKICBtYWtlU3ltYm9sID0gKGUsIHQgPSAhMSkgPT4gKHQgPyBTeW1ib2wuZm9yKGUpIDogU3ltYm9sKGUpKSwKICBnZW5lcmF0ZUZvcm1hdENhY2hlS2V5ID0gKGUsIHQsIHIpID0+CiAgICBmcmllbmRseUpTT05zdHJpbmdpZnkoeyBsOiBlLCBrOiB0LCBzOiByIH0pLAogIGZyaWVuZGx5SlNPTnN0cmluZ2lmeSA9IChlKSA9PgogICAgSlNPTi5zdHJpbmdpZnkoZSkKICAgICAgLnJlcGxhY2UoL1x1MjAyOC9nLCAiXFx1MjAyOCIpCiAgICAgIC5yZXBsYWNlKC9cdTIwMjkvZywgIlxcdTIwMjkiKQogICAgICAucmVwbGFjZSgvXHUwMDI3L2csICJcXHUwMDI3IiksCiAgaXNOdW1iZXIgPSAoZSkgPT4gdHlwZW9mIGUgPT0gIm51bWJlciIgJiYgaXNGaW5pdGUoZSksCiAgaXNEYXRlID0gKGUpID0+IHRvVHlwZVN0cmluZyhlKSA9PT0gIltvYmplY3QgRGF0ZV0iLAogIGlzUmVnRXhwID0gKGUpID0+IHRvVHlwZVN0cmluZyhlKSA9PT0gIltvYmplY3QgUmVnRXhwXSIsCiAgaXNFbXB0eU9iamVjdCA9IChlKSA9PiBpc1BsYWluT2JqZWN0JDEoZSkgJiYgT2JqZWN0LmtleXMoZSkubGVuZ3RoID09PSAwLAogIGFzc2lnbiQxID0gT2JqZWN0LmFzc2lnbiwKICBfY3JlYXRlID0gT2JqZWN0LmNyZWF0ZSwKICBjcmVhdGUgPSAoZSA9IG51bGwpID0+IF9jcmVhdGUoZSk7CmxldCBfZ2xvYmFsVGhpczsKY29uc3QgZ2V0R2xvYmFsVGhpcyA9ICgpID0+CiAgX2dsb2JhbFRoaXMgfHwKICAoX2dsb2JhbFRoaXMgPQogICAgdHlwZW9mIGdsb2JhbFRoaXMgPCAidSIKICAgICAgPyBnbG9iYWxUaGlzCiAgICAgIDogdHlwZW9mIHNlbGYgPCAidSIKICAgICAgICA/IHNlbGYKICAgICAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIKICAgICAgICAgID8gd2luZG93CiAgICAgICAgICA6IHR5cGVvZiBnbG9iYWwgPCAidSIKICAgICAgICAgICAgPyBnbG9iYWwKICAgICAgICAgICAgOiBjcmVhdGUoKSk7CmZ1bmN0aW9uIGVzY2FwZUh0bWwoZSkgewogIHJldHVybiBlCiAgICAucmVwbGFjZSgvPC9nLCAiJmx0OyIpCiAgICAucmVwbGFjZSgvPi9nLCAiJmd0OyIpCiAgICAucmVwbGFjZSgvIi9nLCAiJnF1b3Q7IikKICAgIC5yZXBsYWNlKC8nL2csICImYXBvczsiKTsKfQpjb25zdCBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7CmZ1bmN0aW9uIGhhc093bihlLCB0KSB7CiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoZSwgdCk7Cn0KY29uc3QgaXNBcnJheSQxID0gQXJyYXkuaXNBcnJheSwKICBpc0Z1bmN0aW9uID0gKGUpID0+IHR5cGVvZiBlID09ICJmdW5jdGlvbiIsCiAgaXNTdHJpbmcgPSAoZSkgPT4gdHlwZW9mIGUgPT0gInN0cmluZyIsCiAgaXNCb29sZWFuID0gKGUpID0+IHR5cGVvZiBlID09ICJib29sZWFuIiwKICBpc1N5bWJvbCA9IChlKSA9PiB0eXBlb2YgZSA9PSAic3ltYm9sIiwKICBpc09iamVjdCQxID0gKGUpID0+IGUgIT09IG51bGwgJiYgdHlwZW9mIGUgPT0gIm9iamVjdCIsCiAgaXNQcm9taXNlID0gKGUpID0+IGlzT2JqZWN0JDEoZSkgJiYgaXNGdW5jdGlvbihlLnRoZW4pICYmIGlzRnVuY3Rpb24oZS5jYXRjaCksCiAgb2JqZWN0VG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLAogIHRvVHlwZVN0cmluZyA9IChlKSA9PiBvYmplY3RUb1N0cmluZy5jYWxsKGUpLAogIGlzUGxhaW5PYmplY3QkMSA9IChlKSA9PiB7CiAgICBpZiAoIWlzT2JqZWN0JDEoZSkpIHJldHVybiAhMTsKICAgIGNvbnN0IHQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7CiAgICByZXR1cm4gdCA9PT0gbnVsbCB8fCB0LmNvbnN0cnVjdG9yID09PSBPYmplY3Q7CiAgfSwKICB0b0Rpc3BsYXlTdHJpbmcgPSAoZSkgPT4KICAgIGUgPT0gbnVsbAogICAgICA/ICIiCiAgICAgIDogaXNBcnJheSQxKGUpIHx8IChpc1BsYWluT2JqZWN0JDEoZSkgJiYgZS50b1N0cmluZyA9PT0gb2JqZWN0VG9TdHJpbmcpCiAgICAgICAgPyBKU09OLnN0cmluZ2lmeShlLCBudWxsLCAyKQogICAgICAgIDogU3RyaW5nKGUpOwpmdW5jdGlvbiBqb2luKGUsIHQgPSAiIikgewogIHJldHVybiBlLnJlZHVjZSgociwgbiwgaSkgPT4gKGkgPT09IDAgPyByICsgbiA6IHIgKyB0ICsgbiksICIiKTsKfQpmdW5jdGlvbiBpbmNyZW1lbnRlcihlKSB7CiAgbGV0IHQgPSBlOwogIHJldHVybiAoKSA9PiArK3Q7Cn0KZnVuY3Rpb24gd2FybihlLCB0KSB7CiAgdHlwZW9mIGNvbnNvbGUgPCAidSIgJiYKICAgIChjb25zb2xlLndhcm4oIltpbnRsaWZ5XSAiICsgZSksIHQgJiYgY29uc29sZS53YXJuKHQuc3RhY2spKTsKfQpjb25zdCBpc05vdE9iamVjdE9ySXNBcnJheSA9IChlKSA9PiAhaXNPYmplY3QkMShlKSB8fCBpc0FycmF5JDEoZSk7CmZ1bmN0aW9uIGRlZXBDb3B5KGUsIHQpIHsKICBpZiAoaXNOb3RPYmplY3RPcklzQXJyYXkoZSkgfHwgaXNOb3RPYmplY3RPcklzQXJyYXkodCkpCiAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFsdWUiKTsKICBjb25zdCByID0gW3sgc3JjOiBlLCBkZXM6IHQgfV07CiAgZm9yICg7IHIubGVuZ3RoOykgewogICAgY29uc3QgeyBzcmM6IG4sIGRlczogaSB9ID0gci5wb3AoKTsKICAgIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGEpID0+IHsKICAgICAgYSAhPT0gIl9fcHJvdG9fXyIgJiYKICAgICAgICAoaXNPYmplY3QkMShuW2FdKSAmJgogICAgICAgICAgIWlzT2JqZWN0JDEoaVthXSkgJiYKICAgICAgICAgIChpW2FdID0gQXJyYXkuaXNBcnJheShuW2FdKSA/IFtdIDogY3JlYXRlKCkpLAogICAgICAgICAgaXNOb3RPYmplY3RPcklzQXJyYXkoaVthXSkgfHwgaXNOb3RPYmplY3RPcklzQXJyYXkoblthXSkKICAgICAgICAgICAgPyAoaVthXSA9IG5bYV0pCiAgICAgICAgICAgIDogci5wdXNoKHsgc3JjOiBuW2FdLCBkZXM6IGlbYV0gfSkpOwogICAgfSk7CiAgfQp9Ci8qIQogKiBtZXNzYWdlLWNvbXBpbGVyIHY5LjE0LjIKICogKGMpIDIwMjQga2F6dXlhIGthd2FndWNoaQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLyBmdW5jdGlvbiBjcmVhdGVQb3NpdGlvbihlLCB0LCByKSB7CiAgcmV0dXJuIHsgbGluZTogZSwgY29sdW1uOiB0LCBvZmZzZXQ6IHIgfTsKfQpmdW5jdGlvbiBjcmVhdGVMb2NhdGlvbihlLCB0LCByKSB7CiAgcmV0dXJuIHsgc3RhcnQ6IGUsIGVuZDogdCB9Owp9CmNvbnN0IENvbXBpbGVXYXJuQ29kZXMgPSB7IFVTRV9NT0RVTE9fU1lOVEFYOiAxLCBfX0VYVEVORF9QT0lOVF9fOiAyIH07CmZ1bmN0aW9uIGNyZWF0ZUNvbXBpbGVXYXJuKGUsIHQsIC4uLnIpIHsKICBjb25zdCBpID0geyBtZXNzYWdlOiBTdHJpbmcoZSksIGNvZGU6IGUgfTsKICByZXR1cm4gdCAmJiAoaS5sb2NhdGlvbiA9IHQpLCBpOwp9CmNvbnN0IENvbXBpbGVFcnJvckNvZGVzID0gewogIEVYUEVDVEVEX1RPS0VOOiAxLAogIElOVkFMSURfVE9LRU5fSU5fUExBQ0VIT0xERVI6IDIsCiAgVU5URVJNSU5BVEVEX1NJTkdMRV9RVU9URV9JTl9QTEFDRUhPTERFUjogMywKICBVTktOT1dOX0VTQ0FQRV9TRVFVRU5DRTogNCwKICBJTlZBTElEX1VOSUNPREVfRVNDQVBFX1NFUVVFTkNFOiA1LAogIFVOQkFMQU5DRURfQ0xPU0lOR19CUkFDRTogNiwKICBVTlRFUk1JTkFURURfQ0xPU0lOR19CUkFDRTogNywKICBFTVBUWV9QTEFDRUhPTERFUjogOCwKICBOT1RfQUxMT1dfTkVTVF9QTEFDRUhPTERFUjogOSwKICBJTlZBTElEX0xJTktFRF9GT1JNQVQ6IDEwLAogIE1VU1RfSEFWRV9NRVNTQUdFU19JTl9QTFVSQUw6IDExLAogIFVORVhQRUNURURfRU1QVFlfTElOS0VEX01PRElGSUVSOiAxMiwKICBVTkVYUEVDVEVEX0VNUFRZX0xJTktFRF9LRVk6IDEzLAogIFVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUzogMTQsCiAgVU5IQU5ETEVEX0NPREVHRU5fTk9ERV9UWVBFOiAxNSwKICBVTkhBTkRMRURfTUlOSUZJRVJfTk9ERV9UWVBFOiAxNiwKICBfX0VYVEVORF9QT0lOVF9fOiAxNywKfTsKZnVuY3Rpb24gY3JlYXRlQ29tcGlsZUVycm9yKGUsIHQsIHIgPSB7fSkgewogIGNvbnN0IHsgZG9tYWluOiBuLCBtZXNzYWdlczogaSwgYXJnczogYSB9ID0gciwKICAgIG8gPSBlLAogICAgbCA9IG5ldyBTeW50YXhFcnJvcihTdHJpbmcobykpOwogIHJldHVybiAobC5jb2RlID0gZSksIHQgJiYgKGwubG9jYXRpb24gPSB0KSwgKGwuZG9tYWluID0gbiksIGw7Cn0KZnVuY3Rpb24gZGVmYXVsdE9uRXJyb3IoZSkgewogIHRocm93IGU7Cn0KY29uc3QgQ0hBUl9TUCA9ICIgIiwKICBDSEFSX0NSID0gIlxyIiwKICBDSEFSX0xGID0gYApgLAogIENIQVJfTFMgPSAiXHUyMDI4IiwKICBDSEFSX1BTID0gIlx1MjAyOSI7CmZ1bmN0aW9uIGNyZWF0ZVNjYW5uZXIoZSkgewogIGNvbnN0IHQgPSBlOwogIGxldCByID0gMCwKICAgIG4gPSAxLAogICAgaSA9IDEsCiAgICBhID0gMDsKICBjb25zdCBvID0gKEQpID0+IHRbRF0gPT09IENIQVJfQ1IgJiYgdFtEICsgMV0gPT09IENIQVJfTEYsCiAgICBsID0gKEQpID0+IHRbRF0gPT09IENIQVJfTEYsCiAgICBjID0gKEQpID0+IHRbRF0gPT09IENIQVJfUFMsCiAgICB1ID0gKEQpID0+IHRbRF0gPT09IENIQVJfTFMsCiAgICBkID0gKEQpID0+IG8oRCkgfHwgbChEKSB8fCBjKEQpIHx8IHUoRCksCiAgICBFID0gKCkgPT4gciwKICAgIGIgPSAoKSA9PiBuLAogICAgUCA9ICgpID0+IGksCiAgICBSID0gKCkgPT4gYSwKICAgIFQgPSAoRCkgPT4gKG8oRCkgfHwgYyhEKSB8fCB1KEQpID8gQ0hBUl9MRiA6IHRbRF0pLAogICAgTSA9ICgpID0+IFQociksCiAgICB4ID0gKCkgPT4gVChyICsgYSk7CiAgZnVuY3Rpb24gaygpIHsKICAgIHJldHVybiAoYSA9IDApLCBkKHIpICYmIChuKyssIChpID0gMCkpLCBvKHIpICYmIHIrKywgcisrLCBpKyssIHRbcl07CiAgfQogIGZ1bmN0aW9uIFMoKSB7CiAgICByZXR1cm4gbyhyICsgYSkgJiYgYSsrLCBhKyssIHRbciArIGFdOwogIH0KICBmdW5jdGlvbiBBKCkgewogICAgKHIgPSAwKSwgKG4gPSAxKSwgKGkgPSAxKSwgKGEgPSAwKTsKICB9CiAgZnVuY3Rpb24gTyhEID0gMCkgewogICAgYSA9IEQ7CiAgfQogIGZ1bmN0aW9uIEYoKSB7CiAgICBjb25zdCBEID0gciArIGE7CiAgICBmb3IgKDsgRCAhPT0gcjspIGsoKTsKICAgIGEgPSAwOwogIH0KICByZXR1cm4gewogICAgaW5kZXg6IEUsCiAgICBsaW5lOiBiLAogICAgY29sdW1uOiBQLAogICAgcGVla09mZnNldDogUiwKICAgIGNoYXJBdDogVCwKICAgIGN1cnJlbnRDaGFyOiBNLAogICAgY3VycmVudFBlZWs6IHgsCiAgICBuZXh0OiBrLAogICAgcGVlazogUywKICAgIHJlc2V0OiBBLAogICAgcmVzZXRQZWVrOiBPLAogICAgc2tpcFRvUGVlazogRiwKICB9Owp9CmNvbnN0IEVPRiA9IHZvaWQgMCwKICBET1QgPSAiLiIsCiAgTElURVJBTF9ERUxJTUlURVIgPSAiJyIsCiAgRVJST1JfRE9NQUlOJDMgPSAidG9rZW5pemVyIjsKZnVuY3Rpb24gY3JlYXRlVG9rZW5pemVyKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSB0LmxvY2F0aW9uICE9PSAhMSwKICAgIG4gPSBjcmVhdGVTY2FubmVyKGUpLAogICAgaSA9ICgpID0+IG4uaW5kZXgoKSwKICAgIGEgPSAoKSA9PiBjcmVhdGVQb3NpdGlvbihuLmxpbmUoKSwgbi5jb2x1bW4oKSwgbi5pbmRleCgpKSwKICAgIG8gPSBhKCksCiAgICBsID0gaSgpLAogICAgYyA9IHsKICAgICAgY3VycmVudFR5cGU6IDE0LAogICAgICBvZmZzZXQ6IGwsCiAgICAgIHN0YXJ0TG9jOiBvLAogICAgICBlbmRMb2M6IG8sCiAgICAgIGxhc3RUeXBlOiAxNCwKICAgICAgbGFzdE9mZnNldDogbCwKICAgICAgbGFzdFN0YXJ0TG9jOiBvLAogICAgICBsYXN0RW5kTG9jOiBvLAogICAgICBicmFjZU5lc3Q6IDAsCiAgICAgIGluTGlua2VkOiAhMSwKICAgICAgdGV4dDogIiIsCiAgICB9LAogICAgdSA9ICgpID0+IGMsCiAgICB7IG9uRXJyb3I6IGQgfSA9IHQ7CiAgZnVuY3Rpb24gRShqLCBVLCBYLCAuLi5vZSkgewogICAgY29uc3QgZmUgPSB1KCk7CiAgICBpZiAoKChVLmNvbHVtbiArPSBYKSwgKFUub2Zmc2V0ICs9IFgpLCBkKSkgewogICAgICBjb25zdCB1ZSA9IHIgPyBjcmVhdGVMb2NhdGlvbihmZS5zdGFydExvYywgVSkgOiBudWxsLAogICAgICAgIFogPSBjcmVhdGVDb21waWxlRXJyb3IoaiwgdWUsIHsgZG9tYWluOiBFUlJPUl9ET01BSU4kMywgYXJnczogb2UgfSk7CiAgICAgIGQoWik7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGIoaiwgVSwgWCkgewogICAgKGouZW5kTG9jID0gYSgpKSwgKGouY3VycmVudFR5cGUgPSBVKTsKICAgIGNvbnN0IG9lID0geyB0eXBlOiBVIH07CiAgICByZXR1cm4gKAogICAgICByICYmIChvZS5sb2MgPSBjcmVhdGVMb2NhdGlvbihqLnN0YXJ0TG9jLCBqLmVuZExvYykpLAogICAgICBYICE9IG51bGwgJiYgKG9lLnZhbHVlID0gWCksCiAgICAgIG9lCiAgICApOwogIH0KICBjb25zdCBQID0gKGopID0+IGIoaiwgMTQpOwogIGZ1bmN0aW9uIFIoaiwgVSkgewogICAgcmV0dXJuIGouY3VycmVudENoYXIoKSA9PT0gVQogICAgICA/IChqLm5leHQoKSwgVSkKICAgICAgOiAoRShDb21waWxlRXJyb3JDb2Rlcy5FWFBFQ1RFRF9UT0tFTiwgYSgpLCAwLCBVKSwgIiIpOwogIH0KICBmdW5jdGlvbiBUKGopIHsKICAgIGxldCBVID0gIiI7CiAgICBmb3IgKDsgai5jdXJyZW50UGVlaygpID09PSBDSEFSX1NQIHx8IGouY3VycmVudFBlZWsoKSA9PT0gQ0hBUl9MRjspCiAgICAgIChVICs9IGouY3VycmVudFBlZWsoKSksIGoucGVlaygpOwogICAgcmV0dXJuIFU7CiAgfQogIGZ1bmN0aW9uIE0oaikgewogICAgY29uc3QgVSA9IFQoaik7CiAgICByZXR1cm4gai5za2lwVG9QZWVrKCksIFU7CiAgfQogIGZ1bmN0aW9uIHgoaikgewogICAgaWYgKGogPT09IEVPRikgcmV0dXJuICExOwogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiAoVSA+PSA5NyAmJiBVIDw9IDEyMikgfHwgKFUgPj0gNjUgJiYgVSA8PSA5MCkgfHwgVSA9PT0gOTU7CiAgfQogIGZ1bmN0aW9uIGsoaikgewogICAgaWYgKGogPT09IEVPRikgcmV0dXJuICExOwogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiBVID49IDQ4ICYmIFUgPD0gNTc7CiAgfQogIGZ1bmN0aW9uIFMoaiwgVSkgewogICAgY29uc3QgeyBjdXJyZW50VHlwZTogWCB9ID0gVTsKICAgIGlmIChYICE9PSAyKSByZXR1cm4gITE7CiAgICBUKGopOwogICAgY29uc3Qgb2UgPSB4KGouY3VycmVudFBlZWsoKSk7CiAgICByZXR1cm4gai5yZXNldFBlZWsoKSwgb2U7CiAgfQogIGZ1bmN0aW9uIEEoaiwgVSkgewogICAgY29uc3QgeyBjdXJyZW50VHlwZTogWCB9ID0gVTsKICAgIGlmIChYICE9PSAyKSByZXR1cm4gITE7CiAgICBUKGopOwogICAgY29uc3Qgb2UgPSBqLmN1cnJlbnRQZWVrKCkgPT09ICItIiA/IGoucGVlaygpIDogai5jdXJyZW50UGVlaygpLAogICAgICBmZSA9IGsob2UpOwogICAgcmV0dXJuIGoucmVzZXRQZWVrKCksIGZlOwogIH0KICBmdW5jdGlvbiBPKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBpZiAoWCAhPT0gMikgcmV0dXJuICExOwogICAgVChqKTsKICAgIGNvbnN0IG9lID0gai5jdXJyZW50UGVlaygpID09PSBMSVRFUkFMX0RFTElNSVRFUjsKICAgIHJldHVybiBqLnJlc2V0UGVlaygpLCBvZTsKICB9CiAgZnVuY3Rpb24gRihqLCBVKSB7CiAgICBjb25zdCB7IGN1cnJlbnRUeXBlOiBYIH0gPSBVOwogICAgaWYgKFggIT09IDgpIHJldHVybiAhMTsKICAgIFQoaik7CiAgICBjb25zdCBvZSA9IGouY3VycmVudFBlZWsoKSA9PT0gIi4iOwogICAgcmV0dXJuIGoucmVzZXRQZWVrKCksIG9lOwogIH0KICBmdW5jdGlvbiBEKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBpZiAoWCAhPT0gOSkgcmV0dXJuICExOwogICAgVChqKTsKICAgIGNvbnN0IG9lID0geChqLmN1cnJlbnRQZWVrKCkpOwogICAgcmV0dXJuIGoucmVzZXRQZWVrKCksIG9lOwogIH0KICBmdW5jdGlvbiBIKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBpZiAoIShYID09PSA4IHx8IFggPT09IDEyKSkgcmV0dXJuICExOwogICAgVChqKTsKICAgIGNvbnN0IG9lID0gai5jdXJyZW50UGVlaygpID09PSAiOiI7CiAgICByZXR1cm4gai5yZXNldFBlZWsoKSwgb2U7CiAgfQogIGZ1bmN0aW9uICQoaiwgVSkgewogICAgY29uc3QgeyBjdXJyZW50VHlwZTogWCB9ID0gVTsKICAgIGlmIChYICE9PSAxMCkgcmV0dXJuICExOwogICAgY29uc3Qgb2UgPSAoKSA9PiB7CiAgICAgIGNvbnN0IHVlID0gai5jdXJyZW50UGVlaygpOwogICAgICByZXR1cm4gdWUgPT09ICJ7IgogICAgICAgID8geChqLnBlZWsoKSkKICAgICAgICA6IHVlID09PSAiQCIgfHwKICAgICAgICAgIHVlID09PSAiJSIgfHwKICAgICAgICAgIHVlID09PSAifCIgfHwKICAgICAgICAgIHVlID09PSAiOiIgfHwKICAgICAgICAgIHVlID09PSAiLiIgfHwKICAgICAgICAgIHVlID09PSBDSEFSX1NQIHx8CiAgICAgICAgICAhdWUKICAgICAgICAgID8gITEKICAgICAgICAgIDogdWUgPT09IENIQVJfTEYKICAgICAgICAgICAgPyAoai5wZWVrKCksIG9lKCkpCiAgICAgICAgICAgIDogSyhqLCAhMSk7CiAgICB9LAogICAgICBmZSA9IG9lKCk7CiAgICByZXR1cm4gai5yZXNldFBlZWsoKSwgZmU7CiAgfQogIGZ1bmN0aW9uIHEoaikgewogICAgVChqKTsKICAgIGNvbnN0IFUgPSBqLmN1cnJlbnRQZWVrKCkgPT09ICJ8IjsKICAgIHJldHVybiBqLnJlc2V0UGVlaygpLCBVOwogIH0KICBmdW5jdGlvbiBKKGopIHsKICAgIGNvbnN0IFUgPSBUKGopLAogICAgICBYID0gai5jdXJyZW50UGVlaygpID09PSAiJSIgJiYgai5wZWVrKCkgPT09ICJ7IjsKICAgIHJldHVybiBqLnJlc2V0UGVlaygpLCB7IGlzTW9kdWxvOiBYLCBoYXNTcGFjZTogVS5sZW5ndGggPiAwIH07CiAgfQogIGZ1bmN0aW9uIEsoaiwgVSA9ICEwKSB7CiAgICBjb25zdCBYID0gKGZlID0gITEsIHVlID0gIiIsIFogPSAhMSkgPT4gewogICAgICBjb25zdCBuZSA9IGouY3VycmVudFBlZWsoKTsKICAgICAgcmV0dXJuIG5lID09PSAieyIKICAgICAgICA/IHVlID09PSAiJSIKICAgICAgICAgID8gITEKICAgICAgICAgIDogZmUKICAgICAgICA6IG5lID09PSAiQCIgfHwgIW5lCiAgICAgICAgICA/IHVlID09PSAiJSIKICAgICAgICAgICAgPyAhMAogICAgICAgICAgICA6IGZlCiAgICAgICAgICA6IG5lID09PSAiJSIKICAgICAgICAgICAgPyAoai5wZWVrKCksIFgoZmUsICIlIiwgITApKQogICAgICAgICAgICA6IG5lID09PSAifCIKICAgICAgICAgICAgICA/IHVlID09PSAiJSIgfHwgWgogICAgICAgICAgICAgICAgPyAhMAogICAgICAgICAgICAgICAgOiAhKHVlID09PSBDSEFSX1NQIHx8IHVlID09PSBDSEFSX0xGKQogICAgICAgICAgICAgIDogbmUgPT09IENIQVJfU1AKICAgICAgICAgICAgICAgID8gKGoucGVlaygpLCBYKCEwLCBDSEFSX1NQLCBaKSkKICAgICAgICAgICAgICAgIDogbmUgPT09IENIQVJfTEYKICAgICAgICAgICAgICAgICAgPyAoai5wZWVrKCksIFgoITAsIENIQVJfTEYsIFopKQogICAgICAgICAgICAgICAgICA6ICEwOwogICAgfSwKICAgICAgb2UgPSBYKCk7CiAgICByZXR1cm4gVSAmJiBqLnJlc2V0UGVlaygpLCBvZTsKICB9CiAgZnVuY3Rpb24gZWUoaiwgVSkgewogICAgY29uc3QgWCA9IGouY3VycmVudENoYXIoKTsKICAgIHJldHVybiBYID09PSBFT0YgPyBFT0YgOiBVKFgpID8gKGoubmV4dCgpLCBYKSA6IG51bGw7CiAgfQogIGZ1bmN0aW9uIGxlKGopIHsKICAgIGNvbnN0IFUgPSBqLmNoYXJDb2RlQXQoMCk7CiAgICByZXR1cm4gKAogICAgICAoVSA+PSA5NyAmJiBVIDw9IDEyMikgfHwKICAgICAgKFUgPj0gNjUgJiYgVSA8PSA5MCkgfHwKICAgICAgKFUgPj0gNDggJiYgVSA8PSA1NykgfHwKICAgICAgVSA9PT0gOTUgfHwKICAgICAgVSA9PT0gMzYKICAgICk7CiAgfQogIGZ1bmN0aW9uIHJlKGopIHsKICAgIHJldHVybiBlZShqLCBsZSk7CiAgfQogIGZ1bmN0aW9uIEIoaikgewogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiAoCiAgICAgIChVID49IDk3ICYmIFUgPD0gMTIyKSB8fAogICAgICAoVSA+PSA2NSAmJiBVIDw9IDkwKSB8fAogICAgICAoVSA+PSA0OCAmJiBVIDw9IDU3KSB8fAogICAgICBVID09PSA5NSB8fAogICAgICBVID09PSAzNiB8fAogICAgICBVID09PSA0NQogICAgKTsKICB9CiAgZnVuY3Rpb24geihqKSB7CiAgICByZXR1cm4gZWUoaiwgQik7CiAgfQogIGZ1bmN0aW9uIE4oaikgewogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiBVID49IDQ4ICYmIFUgPD0gNTc7CiAgfQogIGZ1bmN0aW9uIFYoaikgewogICAgcmV0dXJuIGVlKGosIE4pOwogIH0KICBmdW5jdGlvbiBRKGopIHsKICAgIGNvbnN0IFUgPSBqLmNoYXJDb2RlQXQoMCk7CiAgICByZXR1cm4gKAogICAgICAoVSA+PSA0OCAmJiBVIDw9IDU3KSB8fCAoVSA+PSA2NSAmJiBVIDw9IDcwKSB8fCAoVSA+PSA5NyAmJiBVIDw9IDEwMikKICAgICk7CiAgfQogIGZ1bmN0aW9uIFkoaikgewogICAgcmV0dXJuIGVlKGosIFEpOwogIH0KICBmdW5jdGlvbiBoZShqKSB7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSBWKGopKTspIFggKz0gVTsKICAgIHJldHVybiBYOwogIH0KICBmdW5jdGlvbiB5ZShqKSB7CiAgICBNKGopOwogICAgY29uc3QgVSA9IGouY3VycmVudENoYXIoKTsKICAgIHJldHVybiAoCiAgICAgIFUgIT09ICIlIiAmJiBFKENvbXBpbGVFcnJvckNvZGVzLkVYUEVDVEVEX1RPS0VOLCBhKCksIDAsIFUpLCBqLm5leHQoKSwgIiUiCiAgICApOwogIH0KICBmdW5jdGlvbiB2ZShqKSB7CiAgICBsZXQgVSA9ICIiOwogICAgZm9yICg7IDspIHsKICAgICAgY29uc3QgWCA9IGouY3VycmVudENoYXIoKTsKICAgICAgaWYgKFggPT09ICJ7IiB8fCBYID09PSAifSIgfHwgWCA9PT0gIkAiIHx8IFggPT09ICJ8IiB8fCAhWCkgYnJlYWs7CiAgICAgIGlmIChYID09PSAiJSIpCiAgICAgICAgaWYgKEsoaikpIChVICs9IFgpLCBqLm5leHQoKTsKICAgICAgICBlbHNlIGJyZWFrOwogICAgICBlbHNlIGlmIChYID09PSBDSEFSX1NQIHx8IFggPT09IENIQVJfTEYpCiAgICAgICAgaWYgKEsoaikpIChVICs9IFgpLCBqLm5leHQoKTsKICAgICAgICBlbHNlIHsKICAgICAgICAgIGlmIChxKGopKSBicmVhazsKICAgICAgICAgIChVICs9IFgpLCBqLm5leHQoKTsKICAgICAgICB9CiAgICAgIGVsc2UgKFUgKz0gWCksIGoubmV4dCgpOwogICAgfQogICAgcmV0dXJuIFU7CiAgfQogIGZ1bmN0aW9uIFBlKGopIHsKICAgIE0oaik7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSB6KGopKTspIFggKz0gVTsKICAgIHJldHVybiAoCiAgICAgIGouY3VycmVudENoYXIoKSA9PT0gRU9GICYmCiAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuVU5URVJNSU5BVEVEX0NMT1NJTkdfQlJBQ0UsIGEoKSwgMCksCiAgICAgIFgKICAgICk7CiAgfQogIGZ1bmN0aW9uIENlKGopIHsKICAgIE0oaik7CiAgICBsZXQgVSA9ICIiOwogICAgcmV0dXJuICgKICAgICAgai5jdXJyZW50Q2hhcigpID09PSAiLSIgPyAoai5uZXh0KCksIChVICs9IGAtJHtoZShqKX1gKSkgOiAoVSArPSBoZShqKSksCiAgICAgIGouY3VycmVudENoYXIoKSA9PT0gRU9GICYmCiAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuVU5URVJNSU5BVEVEX0NMT1NJTkdfQlJBQ0UsIGEoKSwgMCksCiAgICAgIFUKICAgICk7CiAgfQogIGZ1bmN0aW9uIGllKGopIHsKICAgIHJldHVybiBqICE9PSBMSVRFUkFMX0RFTElNSVRFUiAmJiBqICE9PSBDSEFSX0xGOwogIH0KICBmdW5jdGlvbiBtZShqKSB7CiAgICBNKGopLCBSKGosICInIik7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSBlZShqLCBpZSkpOykgVSA9PT0gIlxcIiA/IChYICs9IHBlKGopKSA6IChYICs9IFUpOwogICAgY29uc3Qgb2UgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICByZXR1cm4gb2UgPT09IENIQVJfTEYgfHwgb2UgPT09IEVPRgogICAgICA/IChFKENvbXBpbGVFcnJvckNvZGVzLlVOVEVSTUlOQVRFRF9TSU5HTEVfUVVPVEVfSU5fUExBQ0VIT0xERVIsIGEoKSwgMCksCiAgICAgICAgb2UgPT09IENIQVJfTEYgJiYgKGoubmV4dCgpLCBSKGosICInIikpLAogICAgICAgIFgpCiAgICAgIDogKFIoaiwgIiciKSwgWCk7CiAgfQogIGZ1bmN0aW9uIHBlKGopIHsKICAgIGNvbnN0IFUgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICBzd2l0Y2ggKFUpIHsKICAgICAgY2FzZSAiXFwiOgogICAgICBjYXNlICInIjoKICAgICAgICByZXR1cm4gai5uZXh0KCksIGBcXCR7VX1gOwogICAgICBjYXNlICJ1IjoKICAgICAgICByZXR1cm4gZ2UoaiwgVSwgNCk7CiAgICAgIGNhc2UgIlUiOgogICAgICAgIHJldHVybiBnZShqLCBVLCA2KTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gRShDb21waWxlRXJyb3JDb2Rlcy5VTktOT1dOX0VTQ0FQRV9TRVFVRU5DRSwgYSgpLCAwLCBVKSwgIiI7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGdlKGosIFUsIFgpIHsKICAgIFIoaiwgVSk7CiAgICBsZXQgb2UgPSAiIjsKICAgIGZvciAobGV0IGZlID0gMDsgZmUgPCBYOyBmZSsrKSB7CiAgICAgIGNvbnN0IHVlID0gWShqKTsKICAgICAgaWYgKCF1ZSkgewogICAgICAgIEUoCiAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5JTlZBTElEX1VOSUNPREVfRVNDQVBFX1NFUVVFTkNFLAogICAgICAgICAgYSgpLAogICAgICAgICAgMCwKICAgICAgICAgIGBcXCR7VX0ke29lfSR7ai5jdXJyZW50Q2hhcigpfWAKICAgICAgICApOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIG9lICs9IHVlOwogICAgfQogICAgcmV0dXJuIGBcXCR7VX0ke29lfWA7CiAgfQogIGZ1bmN0aW9uIEVlKGopIHsKICAgIHJldHVybiBqICE9PSAieyIgJiYgaiAhPT0gIn0iICYmIGogIT09IENIQVJfU1AgJiYgaiAhPT0gQ0hBUl9MRjsKICB9CiAgZnVuY3Rpb24gU2UoaikgewogICAgTShqKTsKICAgIGxldCBVID0gIiIsCiAgICAgIFggPSAiIjsKICAgIGZvciAoOyAoVSA9IGVlKGosIEVlKSk7KSBYICs9IFU7CiAgICByZXR1cm4gWDsKICB9CiAgZnVuY3Rpb24gVyhqKSB7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSByZShqKSk7KSBYICs9IFU7CiAgICByZXR1cm4gWDsKICB9CiAgZnVuY3Rpb24gRyhqKSB7CiAgICBjb25zdCBVID0gKFgpID0+IHsKICAgICAgY29uc3Qgb2UgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICAgIHJldHVybiBvZSA9PT0gInsiIHx8CiAgICAgICAgb2UgPT09ICIlIiB8fAogICAgICAgIG9lID09PSAiQCIgfHwKICAgICAgICBvZSA9PT0gInwiIHx8CiAgICAgICAgb2UgPT09ICIoIiB8fAogICAgICAgIG9lID09PSAiKSIgfHwKICAgICAgICAhb2UgfHwKICAgICAgICBvZSA9PT0gQ0hBUl9TUAogICAgICAgID8gWAogICAgICAgIDogKChYICs9IG9lKSwgai5uZXh0KCksIFUoWCkpOwogICAgfTsKICAgIHJldHVybiBVKCIiKTsKICB9CiAgZnVuY3Rpb24gdGUoaikgewogICAgTShqKTsKICAgIGNvbnN0IFUgPSBSKGosICJ8Iik7CiAgICByZXR1cm4gTShqKSwgVTsKICB9CiAgZnVuY3Rpb24gYWUoaiwgVSkgewogICAgbGV0IFggPSBudWxsOwogICAgc3dpdGNoIChqLmN1cnJlbnRDaGFyKCkpIHsKICAgICAgY2FzZSAieyI6CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIFUuYnJhY2VOZXN0ID49IDEgJiYKICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuTk9UX0FMTE9XX05FU1RfUExBQ0VIT0xERVIsIGEoKSwgMCksCiAgICAgICAgICBqLm5leHQoKSwKICAgICAgICAgIChYID0gYihVLCAyLCAieyIpKSwKICAgICAgICAgIE0oaiksCiAgICAgICAgICBVLmJyYWNlTmVzdCsrLAogICAgICAgICAgWAogICAgICAgICk7CiAgICAgIGNhc2UgIn0iOgogICAgICAgIHJldHVybiAoCiAgICAgICAgICBVLmJyYWNlTmVzdCA+IDAgJiYKICAgICAgICAgIFUuY3VycmVudFR5cGUgPT09IDIgJiYKICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuRU1QVFlfUExBQ0VIT0xERVIsIGEoKSwgMCksCiAgICAgICAgICBqLm5leHQoKSwKICAgICAgICAgIChYID0gYihVLCAzLCAifSIpKSwKICAgICAgICAgIFUuYnJhY2VOZXN0LS0sCiAgICAgICAgICBVLmJyYWNlTmVzdCA+IDAgJiYgTShqKSwKICAgICAgICAgIFUuaW5MaW5rZWQgJiYgVS5icmFjZU5lc3QgPT09IDAgJiYgKFUuaW5MaW5rZWQgPSAhMSksCiAgICAgICAgICBYCiAgICAgICAgKTsKICAgICAgY2FzZSAiQCI6CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIFUuYnJhY2VOZXN0ID4gMCAmJgogICAgICAgICAgRShDb21waWxlRXJyb3JDb2Rlcy5VTlRFUk1JTkFURURfQ0xPU0lOR19CUkFDRSwgYSgpLCAwKSwKICAgICAgICAgIChYID0gc2UoaiwgVSkgfHwgUChVKSksCiAgICAgICAgICAoVS5icmFjZU5lc3QgPSAwKSwKICAgICAgICAgIFgKICAgICAgICApOwogICAgICBkZWZhdWx0OiB7CiAgICAgICAgbGV0IGZlID0gITAsCiAgICAgICAgICB1ZSA9ICEwLAogICAgICAgICAgWiA9ICEwOwogICAgICAgIGlmIChxKGopKQogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgVS5icmFjZU5lc3QgPiAwICYmCiAgICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuVU5URVJNSU5BVEVEX0NMT1NJTkdfQlJBQ0UsIGEoKSwgMCksCiAgICAgICAgICAgIChYID0gYihVLCAxLCB0ZShqKSkpLAogICAgICAgICAgICAoVS5icmFjZU5lc3QgPSAwKSwKICAgICAgICAgICAgKFUuaW5MaW5rZWQgPSAhMSksCiAgICAgICAgICAgIFgKICAgICAgICAgICk7CiAgICAgICAgaWYgKAogICAgICAgICAgVS5icmFjZU5lc3QgPiAwICYmCiAgICAgICAgICAoVS5jdXJyZW50VHlwZSA9PT0gNSB8fCBVLmN1cnJlbnRUeXBlID09PSA2IHx8IFUuY3VycmVudFR5cGUgPT09IDcpCiAgICAgICAgKQogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgRShDb21waWxlRXJyb3JDb2Rlcy5VTlRFUk1JTkFURURfQ0xPU0lOR19CUkFDRSwgYSgpLCAwKSwKICAgICAgICAgICAgKFUuYnJhY2VOZXN0ID0gMCksCiAgICAgICAgICAgIGNlKGosIFUpCiAgICAgICAgICApOwogICAgICAgIGlmICgoZmUgPSBTKGosIFUpKSkgcmV0dXJuIChYID0gYihVLCA1LCBQZShqKSkpLCBNKGopLCBYOwogICAgICAgIGlmICgodWUgPSBBKGosIFUpKSkgcmV0dXJuIChYID0gYihVLCA2LCBDZShqKSkpLCBNKGopLCBYOwogICAgICAgIGlmICgoWiA9IE8oaiwgVSkpKSByZXR1cm4gKFggPSBiKFUsIDcsIG1lKGopKSksIE0oaiksIFg7CiAgICAgICAgaWYgKCFmZSAmJiAhdWUgJiYgIVopCiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoWCA9IGIoVSwgMTMsIFNlKGopKSksCiAgICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuSU5WQUxJRF9UT0tFTl9JTl9QTEFDRUhPTERFUiwgYSgpLCAwLCBYLnZhbHVlKSwKICAgICAgICAgICAgTShqKSwKICAgICAgICAgICAgWAogICAgICAgICAgKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogICAgcmV0dXJuIFg7CiAgfQogIGZ1bmN0aW9uIHNlKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBsZXQgb2UgPSBudWxsOwogICAgY29uc3QgZmUgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICBzd2l0Y2ggKAogICAgKChYID09PSA4IHx8IFggPT09IDkgfHwgWCA9PT0gMTIgfHwgWCA9PT0gMTApICYmCiAgICAgIChmZSA9PT0gQ0hBUl9MRiB8fCBmZSA9PT0gQ0hBUl9TUCkgJiYKICAgICAgRShDb21waWxlRXJyb3JDb2Rlcy5JTlZBTElEX0xJTktFRF9GT1JNQVQsIGEoKSwgMCksCiAgICAgIGZlKQogICAgKSB7CiAgICAgIGNhc2UgIkAiOgogICAgICAgIHJldHVybiBqLm5leHQoKSwgKG9lID0gYihVLCA4LCAiQCIpKSwgKFUuaW5MaW5rZWQgPSAhMCksIG9lOwogICAgICBjYXNlICIuIjoKICAgICAgICByZXR1cm4gTShqKSwgai5uZXh0KCksIGIoVSwgOSwgIi4iKTsKICAgICAgY2FzZSAiOiI6CiAgICAgICAgcmV0dXJuIE0oaiksIGoubmV4dCgpLCBiKFUsIDEwLCAiOiIpOwogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiBxKGopCiAgICAgICAgICA/ICgob2UgPSBiKFUsIDEsIHRlKGopKSksIChVLmJyYWNlTmVzdCA9IDApLCAoVS5pbkxpbmtlZCA9ICExKSwgb2UpCiAgICAgICAgICA6IEYoaiwgVSkgfHwgSChqLCBVKQogICAgICAgICAgICA/IChNKGopLCBzZShqLCBVKSkKICAgICAgICAgICAgOiBEKGosIFUpCiAgICAgICAgICAgICAgPyAoTShqKSwgYihVLCAxMiwgVyhqKSkpCiAgICAgICAgICAgICAgOiAkKGosIFUpCiAgICAgICAgICAgICAgICA/IChNKGopLCBmZSA9PT0gInsiID8gYWUoaiwgVSkgfHwgb2UgOiBiKFUsIDExLCBHKGopKSkKICAgICAgICAgICAgICAgIDogKFggPT09IDggJiYgRShDb21waWxlRXJyb3JDb2Rlcy5JTlZBTElEX0xJTktFRF9GT1JNQVQsIGEoKSwgMCksCiAgICAgICAgICAgICAgICAgIChVLmJyYWNlTmVzdCA9IDApLAogICAgICAgICAgICAgICAgICAoVS5pbkxpbmtlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgY2UoaiwgVSkpOwogICAgfQogIH0KICBmdW5jdGlvbiBjZShqLCBVKSB7CiAgICBsZXQgWCA9IHsgdHlwZTogMTQgfTsKICAgIGlmIChVLmJyYWNlTmVzdCA+IDApIHJldHVybiBhZShqLCBVKSB8fCBQKFUpOwogICAgaWYgKFUuaW5MaW5rZWQpIHJldHVybiBzZShqLCBVKSB8fCBQKFUpOwogICAgc3dpdGNoIChqLmN1cnJlbnRDaGFyKCkpIHsKICAgICAgY2FzZSAieyI6CiAgICAgICAgcmV0dXJuIGFlKGosIFUpIHx8IFAoVSk7CiAgICAgIGNhc2UgIn0iOgogICAgICAgIHJldHVybiAoCiAgICAgICAgICBFKENvbXBpbGVFcnJvckNvZGVzLlVOQkFMQU5DRURfQ0xPU0lOR19CUkFDRSwgYSgpLCAwKSwKICAgICAgICAgIGoubmV4dCgpLAogICAgICAgICAgYihVLCAzLCAifSIpCiAgICAgICAgKTsKICAgICAgY2FzZSAiQCI6CiAgICAgICAgcmV0dXJuIHNlKGosIFUpIHx8IFAoVSk7CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBpZiAocShqKSkKICAgICAgICAgIHJldHVybiAoWCA9IGIoVSwgMSwgdGUoaikpKSwgKFUuYnJhY2VOZXN0ID0gMCksIChVLmluTGlua2VkID0gITEpLCBYOwogICAgICAgIGNvbnN0IHsgaXNNb2R1bG86IGZlLCBoYXNTcGFjZTogdWUgfSA9IEooaik7CiAgICAgICAgaWYgKGZlKSByZXR1cm4gdWUgPyBiKFUsIDAsIHZlKGopKSA6IGIoVSwgNCwgeWUoaikpOwogICAgICAgIGlmIChLKGopKSByZXR1cm4gYihVLCAwLCB2ZShqKSk7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBYOwogIH0KICBmdW5jdGlvbiBkZSgpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IGosIG9mZnNldDogVSwgc3RhcnRMb2M6IFgsIGVuZExvYzogb2UgfSA9IGM7CiAgICByZXR1cm4gKAogICAgICAoYy5sYXN0VHlwZSA9IGopLAogICAgICAoYy5sYXN0T2Zmc2V0ID0gVSksCiAgICAgIChjLmxhc3RTdGFydExvYyA9IFgpLAogICAgICAoYy5sYXN0RW5kTG9jID0gb2UpLAogICAgICAoYy5vZmZzZXQgPSBpKCkpLAogICAgICAoYy5zdGFydExvYyA9IGEoKSksCiAgICAgIG4uY3VycmVudENoYXIoKSA9PT0gRU9GID8gYihjLCAxNCkgOiBjZShuLCBjKQogICAgKTsKICB9CiAgcmV0dXJuIHsgbmV4dFRva2VuOiBkZSwgY3VycmVudE9mZnNldDogaSwgY3VycmVudFBvc2l0aW9uOiBhLCBjb250ZXh0OiB1IH07Cn0KY29uc3QgRVJST1JfRE9NQUlOJDIgPSAicGFyc2VyIiwKICBLTk9XTl9FU0NBUEVTID0gLyg/OlxcXFx8XFwnfFxcdShbMC05YS1mQS1GXXs0fSl8XFxVKFswLTlhLWZBLUZdezZ9KSkvZzsKZnVuY3Rpb24gZnJvbUVzY2FwZVNlcXVlbmNlKGUsIHQsIHIpIHsKICBzd2l0Y2ggKGUpIHsKICAgIGNhc2UgIlxcXFwiOgogICAgICByZXR1cm4gIlxcIjsKICAgIGNhc2UgIlxcJyI6CiAgICAgIHJldHVybiAiJyI7CiAgICBkZWZhdWx0OiB7CiAgICAgIGNvbnN0IG4gPSBwYXJzZUludCh0IHx8IHIsIDE2KTsKICAgICAgcmV0dXJuIG4gPD0gNTUyOTUgfHwgbiA+PSA1NzM0NCA/IFN0cmluZy5mcm9tQ29kZVBvaW50KG4pIDogIsOvwr/CvSI7CiAgICB9CiAgfQp9CmZ1bmN0aW9uIGNyZWF0ZVBhcnNlcihlID0ge30pIHsKICBjb25zdCB0ID0gZS5sb2NhdGlvbiAhPT0gITEsCiAgICB7IG9uRXJyb3I6IHIsIG9uV2FybjogbiB9ID0gZTsKICBmdW5jdGlvbiBpKFMsIEEsIE8sIEYsIC4uLkQpIHsKICAgIGNvbnN0IEggPSBTLmN1cnJlbnRQb3NpdGlvbigpOwogICAgaWYgKCgoSC5vZmZzZXQgKz0gRiksIChILmNvbHVtbiArPSBGKSwgcikpIHsKICAgICAgY29uc3QgJCA9IHQgPyBjcmVhdGVMb2NhdGlvbihPLCBIKSA6IG51bGwsCiAgICAgICAgcSA9IGNyZWF0ZUNvbXBpbGVFcnJvcihBLCAkLCB7IGRvbWFpbjogRVJST1JfRE9NQUlOJDIsIGFyZ3M6IEQgfSk7CiAgICAgIHIocSk7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGEoUywgQSwgTywgRiwgLi4uRCkgewogICAgY29uc3QgSCA9IFMuY3VycmVudFBvc2l0aW9uKCk7CiAgICBpZiAoKChILm9mZnNldCArPSBGKSwgKEguY29sdW1uICs9IEYpLCBuKSkgewogICAgICBjb25zdCAkID0gdCA/IGNyZWF0ZUxvY2F0aW9uKE8sIEgpIDogbnVsbDsKICAgICAgbihjcmVhdGVDb21waWxlV2FybihBLCAkLCBEKSk7CiAgICB9CiAgfQogIGZ1bmN0aW9uIG8oUywgQSwgTykgewogICAgY29uc3QgRiA9IHsgdHlwZTogUyB9OwogICAgcmV0dXJuIHQgJiYgKChGLnN0YXJ0ID0gQSksIChGLmVuZCA9IEEpLCAoRi5sb2MgPSB7IHN0YXJ0OiBPLCBlbmQ6IE8gfSkpLCBGOwogIH0KICBmdW5jdGlvbiBsKFMsIEEsIE8sIEYpIHsKICAgIHQgJiYgKChTLmVuZCA9IEEpLCBTLmxvYyAmJiAoUy5sb2MuZW5kID0gTykpOwogIH0KICBmdW5jdGlvbiBjKFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgRiA9IG8oMywgTy5vZmZzZXQsIE8uc3RhcnRMb2MpOwogICAgcmV0dXJuIChGLnZhbHVlID0gQSksIGwoRiwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLCBGOwogIH0KICBmdW5jdGlvbiB1KFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgeyBsYXN0T2Zmc2V0OiBGLCBsYXN0U3RhcnRMb2M6IEQgfSA9IE8sCiAgICAgIEggPSBvKDUsIEYsIEQpOwogICAgcmV0dXJuICgKICAgICAgKEguaW5kZXggPSBwYXJzZUludChBLCAxMCkpLAogICAgICBTLm5leHRUb2tlbigpLAogICAgICBsKEgsIFMuY3VycmVudE9mZnNldCgpLCBTLmN1cnJlbnRQb3NpdGlvbigpKSwKICAgICAgSAogICAgKTsKICB9CiAgZnVuY3Rpb24gZChTLCBBLCBPKSB7CiAgICBjb25zdCBGID0gUy5jb250ZXh0KCksCiAgICAgIHsgbGFzdE9mZnNldDogRCwgbGFzdFN0YXJ0TG9jOiBIIH0gPSBGLAogICAgICAkID0gbyg0LCBELCBIKTsKICAgIHJldHVybiAoCiAgICAgICgkLmtleSA9IEEpLAogICAgICBPID09PSAhMCAmJiAoJC5tb2R1bG8gPSAhMCksCiAgICAgIFMubmV4dFRva2VuKCksCiAgICAgIGwoJCwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLAogICAgICAkCiAgICApOwogIH0KICBmdW5jdGlvbiBFKFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgeyBsYXN0T2Zmc2V0OiBGLCBsYXN0U3RhcnRMb2M6IEQgfSA9IE8sCiAgICAgIEggPSBvKDksIEYsIEQpOwogICAgcmV0dXJuICgKICAgICAgKEgudmFsdWUgPSBBLnJlcGxhY2UoS05PV05fRVNDQVBFUywgZnJvbUVzY2FwZVNlcXVlbmNlKSksCiAgICAgIFMubmV4dFRva2VuKCksCiAgICAgIGwoSCwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLAogICAgICBICiAgICApOwogIH0KICBmdW5jdGlvbiBiKFMpIHsKICAgIGNvbnN0IEEgPSBTLm5leHRUb2tlbigpLAogICAgICBPID0gUy5jb250ZXh0KCksCiAgICAgIHsgbGFzdE9mZnNldDogRiwgbGFzdFN0YXJ0TG9jOiBEIH0gPSBPLAogICAgICBIID0gbyg4LCBGLCBEKTsKICAgIHJldHVybiBBLnR5cGUgIT09IDEyCiAgICAgID8gKGkoCiAgICAgICAgUywKICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VNUFRZX0xJTktFRF9NT0RJRklFUiwKICAgICAgICBPLmxhc3RTdGFydExvYywKICAgICAgICAwCiAgICAgICksCiAgICAgICAgKEgudmFsdWUgPSAiIiksCiAgICAgICAgbChILCBGLCBEKSwKICAgICAgICB7IG5leHRDb25zdW1lVG9rZW46IEEsIG5vZGU6IEggfSkKICAgICAgOiAoQS52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgaSgKICAgICAgICAgIFMsCiAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICBPLmxhc3RTdGFydExvYywKICAgICAgICAgIDAsCiAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oQSkKICAgICAgICApLAogICAgICAgIChILnZhbHVlID0gQS52YWx1ZSB8fCAiIiksCiAgICAgICAgbChILCBTLmN1cnJlbnRPZmZzZXQoKSwgUy5jdXJyZW50UG9zaXRpb24oKSksCiAgICAgICAgeyBub2RlOiBIIH0pOwogIH0KICBmdW5jdGlvbiBQKFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgRiA9IG8oNywgTy5vZmZzZXQsIE8uc3RhcnRMb2MpOwogICAgcmV0dXJuIChGLnZhbHVlID0gQSksIGwoRiwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLCBGOwogIH0KICBmdW5jdGlvbiBSKFMpIHsKICAgIGNvbnN0IEEgPSBTLmNvbnRleHQoKSwKICAgICAgTyA9IG8oNiwgQS5vZmZzZXQsIEEuc3RhcnRMb2MpOwogICAgbGV0IEYgPSBTLm5leHRUb2tlbigpOwogICAgaWYgKEYudHlwZSA9PT0gOSkgewogICAgICBjb25zdCBEID0gYihTKTsKICAgICAgKE8ubW9kaWZpZXIgPSBELm5vZGUpLCAoRiA9IEQubmV4dENvbnN1bWVUb2tlbiB8fCBTLm5leHRUb2tlbigpKTsKICAgIH0KICAgIHN3aXRjaCAoCiAgICAoRi50eXBlICE9PSAxMCAmJgogICAgICBpKAogICAgICAgIFMsCiAgICAgICAgQ29tcGlsZUVycm9yQ29kZXMuVU5FWFBFQ1RFRF9MRVhJQ0FMX0FOQUxZU0lTLAogICAgICAgIEEubGFzdFN0YXJ0TG9jLAogICAgICAgIDAsCiAgICAgICAgZ2V0VG9rZW5DYXB0aW9uKEYpCiAgICAgICksCiAgICAgIChGID0gUy5uZXh0VG9rZW4oKSksCiAgICAgIEYudHlwZSA9PT0gMiAmJiAoRiA9IFMubmV4dFRva2VuKCkpLAogICAgICBGLnR5cGUpCiAgICApIHsKICAgICAgY2FzZSAxMToKICAgICAgICBGLnZhbHVlID09IG51bGwgJiYKICAgICAgICAgIGkoCiAgICAgICAgICAgIFMsCiAgICAgICAgICAgIENvbXBpbGVFcnJvckNvZGVzLlVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUywKICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIGdldFRva2VuQ2FwdGlvbihGKQogICAgICAgICAgKSwKICAgICAgICAgIChPLmtleSA9IFAoUywgRi52YWx1ZSB8fCAiIikpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIDU6CiAgICAgICAgRi52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICBpKAogICAgICAgICAgICBTLAogICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgIEEubGFzdFN0YXJ0TG9jLAogICAgICAgICAgICAwLAogICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oRikKICAgICAgICAgICksCiAgICAgICAgICAoTy5rZXkgPSBkKFMsIEYudmFsdWUgfHwgIiIpKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSA2OgogICAgICAgIEYudmFsdWUgPT0gbnVsbCAmJgogICAgICAgICAgaSgKICAgICAgICAgICAgUywKICAgICAgICAgICAgQ29tcGlsZUVycm9yQ29kZXMuVU5FWFBFQ1RFRF9MRVhJQ0FMX0FOQUxZU0lTLAogICAgICAgICAgICBBLmxhc3RTdGFydExvYywKICAgICAgICAgICAgMCwKICAgICAgICAgICAgZ2V0VG9rZW5DYXB0aW9uKEYpCiAgICAgICAgICApLAogICAgICAgICAgKE8ua2V5ID0gdShTLCBGLnZhbHVlIHx8ICIiKSk7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgNzoKICAgICAgICBGLnZhbHVlID09IG51bGwgJiYKICAgICAgICAgIGkoCiAgICAgICAgICAgIFMsCiAgICAgICAgICAgIENvbXBpbGVFcnJvckNvZGVzLlVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUywKICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIGdldFRva2VuQ2FwdGlvbihGKQogICAgICAgICAgKSwKICAgICAgICAgIChPLmtleSA9IEUoUywgRi52YWx1ZSB8fCAiIikpOwogICAgICAgIGJyZWFrOwogICAgICBkZWZhdWx0OiB7CiAgICAgICAgaShTLCBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VNUFRZX0xJTktFRF9LRVksIEEubGFzdFN0YXJ0TG9jLCAwKTsKICAgICAgICBjb25zdCBEID0gUy5jb250ZXh0KCksCiAgICAgICAgICBIID0gbyg3LCBELm9mZnNldCwgRC5zdGFydExvYyk7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIChILnZhbHVlID0gIiIpLAogICAgICAgICAgbChILCBELm9mZnNldCwgRC5zdGFydExvYyksCiAgICAgICAgICAoTy5rZXkgPSBIKSwKICAgICAgICAgIGwoTywgRC5vZmZzZXQsIEQuc3RhcnRMb2MpLAogICAgICAgICAgeyBuZXh0Q29uc3VtZVRva2VuOiBGLCBub2RlOiBPIH0KICAgICAgICApOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gbChPLCBTLmN1cnJlbnRPZmZzZXQoKSwgUy5jdXJyZW50UG9zaXRpb24oKSksIHsgbm9kZTogTyB9OwogIH0KICBmdW5jdGlvbiBUKFMpIHsKICAgIGNvbnN0IEEgPSBTLmNvbnRleHQoKSwKICAgICAgTyA9IEEuY3VycmVudFR5cGUgPT09IDEgPyBTLmN1cnJlbnRPZmZzZXQoKSA6IEEub2Zmc2V0LAogICAgICBGID0gQS5jdXJyZW50VHlwZSA9PT0gMSA/IEEuZW5kTG9jIDogQS5zdGFydExvYywKICAgICAgRCA9IG8oMiwgTywgRik7CiAgICBELml0ZW1zID0gW107CiAgICBsZXQgSCA9IG51bGwsCiAgICAgICQgPSBudWxsOwogICAgZG8gewogICAgICBjb25zdCBLID0gSCB8fCBTLm5leHRUb2tlbigpOwogICAgICBzd2l0Y2ggKCgoSCA9IG51bGwpLCBLLnR5cGUpKSB7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgSy52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oSykKICAgICAgICAgICAgKSwKICAgICAgICAgICAgRC5pdGVtcy5wdXNoKGMoUywgSy52YWx1ZSB8fCAiIikpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA2OgogICAgICAgICAgSy52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oSykKICAgICAgICAgICAgKSwKICAgICAgICAgICAgRC5pdGVtcy5wdXNoKHUoUywgSy52YWx1ZSB8fCAiIikpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA0OgogICAgICAgICAgJCA9ICEwOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA1OgogICAgICAgICAgSy52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oSykKICAgICAgICAgICAgKSwKICAgICAgICAgICAgRC5pdGVtcy5wdXNoKGQoUywgSy52YWx1ZSB8fCAiIiwgISEkKSksCiAgICAgICAgICAgICQgJiYKICAgICAgICAgICAgKGEoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlV2FybkNvZGVzLlVTRV9NT0RVTE9fU1lOVEFYLAogICAgICAgICAgICAgIEEubGFzdFN0YXJ0TG9jLAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgZ2V0VG9rZW5DYXB0aW9uKEspCiAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKCQgPSBudWxsKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDc6CiAgICAgICAgICBLLnZhbHVlID09IG51bGwgJiYKICAgICAgICAgICAgaSgKICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgIENvbXBpbGVFcnJvckNvZGVzLlVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUywKICAgICAgICAgICAgICBBLmxhc3RTdGFydExvYywKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIGdldFRva2VuQ2FwdGlvbihLKQogICAgICAgICAgICApLAogICAgICAgICAgICBELml0ZW1zLnB1c2goRShTLCBLLnZhbHVlIHx8ICIiKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDg6IHsKICAgICAgICAgIGNvbnN0IGVlID0gUihTKTsKICAgICAgICAgIEQuaXRlbXMucHVzaChlZS5ub2RlKSwgKEggPSBlZS5uZXh0Q29uc3VtZVRva2VuIHx8IG51bGwpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9IHdoaWxlIChBLmN1cnJlbnRUeXBlICE9PSAxNCAmJiBBLmN1cnJlbnRUeXBlICE9PSAxKTsKICAgIGNvbnN0IHEgPSBBLmN1cnJlbnRUeXBlID09PSAxID8gQS5sYXN0T2Zmc2V0IDogUy5jdXJyZW50T2Zmc2V0KCksCiAgICAgIEogPSBBLmN1cnJlbnRUeXBlID09PSAxID8gQS5sYXN0RW5kTG9jIDogUy5jdXJyZW50UG9zaXRpb24oKTsKICAgIHJldHVybiBsKEQsIHEsIEopLCBEOwogIH0KICBmdW5jdGlvbiBNKFMsIEEsIE8sIEYpIHsKICAgIGNvbnN0IEQgPSBTLmNvbnRleHQoKTsKICAgIGxldCBIID0gRi5pdGVtcy5sZW5ndGggPT09IDA7CiAgICBjb25zdCAkID0gbygxLCBBLCBPKTsKICAgICgkLmNhc2VzID0gW10pLCAkLmNhc2VzLnB1c2goRik7CiAgICBkbyB7CiAgICAgIGNvbnN0IHEgPSBUKFMpOwogICAgICBIIHx8IChIID0gcS5pdGVtcy5sZW5ndGggPT09IDApLCAkLmNhc2VzLnB1c2gocSk7CiAgICB9IHdoaWxlIChELmN1cnJlbnRUeXBlICE9PSAxNCk7CiAgICByZXR1cm4gKAogICAgICBIICYmIGkoUywgQ29tcGlsZUVycm9yQ29kZXMuTVVTVF9IQVZFX01FU1NBR0VTX0lOX1BMVVJBTCwgTywgMCksCiAgICAgIGwoJCwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLAogICAgICAkCiAgICApOwogIH0KICBmdW5jdGlvbiB4KFMpIHsKICAgIGNvbnN0IEEgPSBTLmNvbnRleHQoKSwKICAgICAgeyBvZmZzZXQ6IE8sIHN0YXJ0TG9jOiBGIH0gPSBBLAogICAgICBEID0gVChTKTsKICAgIHJldHVybiBBLmN1cnJlbnRUeXBlID09PSAxNCA/IEQgOiBNKFMsIE8sIEYsIEQpOwogIH0KICBmdW5jdGlvbiBrKFMpIHsKICAgIGNvbnN0IEEgPSBjcmVhdGVUb2tlbml6ZXIoUywgYXNzaWduJDEoe30sIGUpKSwKICAgICAgTyA9IEEuY29udGV4dCgpLAogICAgICBGID0gbygwLCBPLm9mZnNldCwgTy5zdGFydExvYyk7CiAgICByZXR1cm4gKAogICAgICB0ICYmIEYubG9jICYmIChGLmxvYy5zb3VyY2UgPSBTKSwKICAgICAgKEYuYm9keSA9IHgoQSkpLAogICAgICBlLm9uQ2FjaGVLZXkgJiYgKEYuY2FjaGVLZXkgPSBlLm9uQ2FjaGVLZXkoUykpLAogICAgICBPLmN1cnJlbnRUeXBlICE9PSAxNCAmJgogICAgICBpKAogICAgICAgIEEsCiAgICAgICAgQ29tcGlsZUVycm9yQ29kZXMuVU5FWFBFQ1RFRF9MRVhJQ0FMX0FOQUxZU0lTLAogICAgICAgIE8ubGFzdFN0YXJ0TG9jLAogICAgICAgIDAsCiAgICAgICAgU1tPLm9mZnNldF0gfHwgIiIKICAgICAgKSwKICAgICAgbChGLCBBLmN1cnJlbnRPZmZzZXQoKSwgQS5jdXJyZW50UG9zaXRpb24oKSksCiAgICAgIEYKICAgICk7CiAgfQogIHJldHVybiB7IHBhcnNlOiBrIH07Cn0KZnVuY3Rpb24gZ2V0VG9rZW5DYXB0aW9uKGUpIHsKICBpZiAoZS50eXBlID09PSAxNCkgcmV0dXJuICJFT0YiOwogIGNvbnN0IHQgPSAoZS52YWx1ZSB8fCAiIikucmVwbGFjZSgvXHI/XG4vZ3UsICJcXG4iKTsKICByZXR1cm4gdC5sZW5ndGggPiAxMCA/IHQuc2xpY2UoMCwgOSkgKyAiw6LigqzCpiIgOiB0Owp9CmZ1bmN0aW9uIGNyZWF0ZVRyYW5zZm9ybWVyKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSB7IGFzdDogZSwgaGVscGVyczogbmV3IFNldCgpIH07CiAgcmV0dXJuIHsgY29udGV4dDogKCkgPT4gciwgaGVscGVyOiAoYSkgPT4gKHIuaGVscGVycy5hZGQoYSksIGEpIH07Cn0KZnVuY3Rpb24gdHJhdmVyc2VOb2RlcyhlLCB0KSB7CiAgZm9yIChsZXQgciA9IDA7IHIgPCBlLmxlbmd0aDsgcisrKSB0cmF2ZXJzZU5vZGUoZVtyXSwgdCk7Cn0KZnVuY3Rpb24gdHJhdmVyc2VOb2RlKGUsIHQpIHsKICBzd2l0Y2ggKGUudHlwZSkgewogICAgY2FzZSAxOgogICAgICB0cmF2ZXJzZU5vZGVzKGUuY2FzZXMsIHQpLCB0LmhlbHBlcigicGx1cmFsIik7CiAgICAgIGJyZWFrOwogICAgY2FzZSAyOgogICAgICB0cmF2ZXJzZU5vZGVzKGUuaXRlbXMsIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgNjogewogICAgICB0cmF2ZXJzZU5vZGUoZS5rZXksIHQpLCB0LmhlbHBlcigibGlua2VkIiksIHQuaGVscGVyKCJ0eXBlIik7CiAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSA1OgogICAgICB0LmhlbHBlcigiaW50ZXJwb2xhdGUiKSwgdC5oZWxwZXIoImxpc3QiKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDQ6CiAgICAgIHQuaGVscGVyKCJpbnRlcnBvbGF0ZSIpLCB0LmhlbHBlcigibmFtZWQiKTsKICAgICAgYnJlYWs7CiAgfQp9CmZ1bmN0aW9uIHRyYW5zZm9ybShlLCB0ID0ge30pIHsKICBjb25zdCByID0gY3JlYXRlVHJhbnNmb3JtZXIoZSk7CiAgci5oZWxwZXIoIm5vcm1hbGl6ZSIpLCBlLmJvZHkgJiYgdHJhdmVyc2VOb2RlKGUuYm9keSwgcik7CiAgY29uc3QgbiA9IHIuY29udGV4dCgpOwogIGUuaGVscGVycyA9IEFycmF5LmZyb20obi5oZWxwZXJzKTsKfQpmdW5jdGlvbiBvcHRpbWl6ZShlKSB7CiAgY29uc3QgdCA9IGUuYm9keTsKICByZXR1cm4gKAogICAgdC50eXBlID09PSAyCiAgICAgID8gb3B0aW1pemVNZXNzYWdlTm9kZSh0KQogICAgICA6IHQuY2FzZXMuZm9yRWFjaCgocikgPT4gb3B0aW1pemVNZXNzYWdlTm9kZShyKSksCiAgICBlCiAgKTsKfQpmdW5jdGlvbiBvcHRpbWl6ZU1lc3NhZ2VOb2RlKGUpIHsKICBpZiAoZS5pdGVtcy5sZW5ndGggPT09IDEpIHsKICAgIGNvbnN0IHQgPSBlLml0ZW1zWzBdOwogICAgKHQudHlwZSA9PT0gMyB8fCB0LnR5cGUgPT09IDkpICYmICgoZS5zdGF0aWMgPSB0LnZhbHVlKSwgZGVsZXRlIHQudmFsdWUpOwogIH0gZWxzZSB7CiAgICBjb25zdCB0ID0gW107CiAgICBmb3IgKGxldCByID0gMDsgciA8IGUuaXRlbXMubGVuZ3RoOyByKyspIHsKICAgICAgY29uc3QgbiA9IGUuaXRlbXNbcl07CiAgICAgIGlmICghKG4udHlwZSA9PT0gMyB8fCBuLnR5cGUgPT09IDkpIHx8IG4udmFsdWUgPT0gbnVsbCkgYnJlYWs7CiAgICAgIHQucHVzaChuLnZhbHVlKTsKICAgIH0KICAgIGlmICh0Lmxlbmd0aCA9PT0gZS5pdGVtcy5sZW5ndGgpIHsKICAgICAgZS5zdGF0aWMgPSBqb2luKHQpOwogICAgICBmb3IgKGxldCByID0gMDsgciA8IGUuaXRlbXMubGVuZ3RoOyByKyspIHsKICAgICAgICBjb25zdCBuID0gZS5pdGVtc1tyXTsKICAgICAgICAobi50eXBlID09PSAzIHx8IG4udHlwZSA9PT0gOSkgJiYgZGVsZXRlIG4udmFsdWU7CiAgICAgIH0KICAgIH0KICB9Cn0KZnVuY3Rpb24gbWluaWZ5KGUpIHsKICBzd2l0Y2ggKCgoZS50ID0gZS50eXBlKSwgZS50eXBlKSkgewogICAgY2FzZSAwOiB7CiAgICAgIGNvbnN0IHQgPSBlOwogICAgICBtaW5pZnkodC5ib2R5KSwgKHQuYiA9IHQuYm9keSksIGRlbGV0ZSB0LmJvZHk7CiAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSAxOiB7CiAgICAgIGNvbnN0IHQgPSBlLAogICAgICAgIHIgPSB0LmNhc2VzOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IHIubGVuZ3RoOyBuKyspIG1pbmlmeShyW25dKTsKICAgICAgKHQuYyA9IHIpLCBkZWxldGUgdC5jYXNlczsKICAgICAgYnJlYWs7CiAgICB9CiAgICBjYXNlIDI6IHsKICAgICAgY29uc3QgdCA9IGUsCiAgICAgICAgciA9IHQuaXRlbXM7CiAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgci5sZW5ndGg7IG4rKykgbWluaWZ5KHJbbl0pOwogICAgICAodC5pID0gciksCiAgICAgICAgZGVsZXRlIHQuaXRlbXMsCiAgICAgICAgdC5zdGF0aWMgJiYgKCh0LnMgPSB0LnN0YXRpYyksIGRlbGV0ZSB0LnN0YXRpYyk7CiAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSAzOgogICAgY2FzZSA5OgogICAgY2FzZSA4OgogICAgY2FzZSA3OiB7CiAgICAgIGNvbnN0IHQgPSBlOwogICAgICB0LnZhbHVlICYmICgodC52ID0gdC52YWx1ZSksIGRlbGV0ZSB0LnZhbHVlKTsKICAgICAgYnJlYWs7CiAgICB9CiAgICBjYXNlIDY6IHsKICAgICAgY29uc3QgdCA9IGU7CiAgICAgIG1pbmlmeSh0LmtleSksCiAgICAgICAgKHQuayA9IHQua2V5KSwKICAgICAgICBkZWxldGUgdC5rZXksCiAgICAgICAgdC5tb2RpZmllciAmJgogICAgICAgIChtaW5pZnkodC5tb2RpZmllciksICh0Lm0gPSB0Lm1vZGlmaWVyKSwgZGVsZXRlIHQubW9kaWZpZXIpOwogICAgICBicmVhazsKICAgIH0KICAgIGNhc2UgNTogewogICAgICBjb25zdCB0ID0gZTsKICAgICAgKHQuaSA9IHQuaW5kZXgpLCBkZWxldGUgdC5pbmRleDsKICAgICAgYnJlYWs7CiAgICB9CiAgICBjYXNlIDQ6IHsKICAgICAgY29uc3QgdCA9IGU7CiAgICAgICh0LmsgPSB0LmtleSksIGRlbGV0ZSB0LmtleTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGRlbGV0ZSBlLnR5cGU7Cn0KZnVuY3Rpb24gY3JlYXRlQ29kZUdlbmVyYXRvcihlLCB0KSB7CiAgY29uc3QgeyBzb3VyY2VNYXA6IHIsIGZpbGVuYW1lOiBuLCBicmVha0xpbmVDb2RlOiBpLCBuZWVkSW5kZW50OiBhIH0gPSB0LAogICAgbyA9IHQubG9jYXRpb24gIT09ICExLAogICAgbCA9IHsKICAgICAgZmlsZW5hbWU6IG4sCiAgICAgIGNvZGU6ICIiLAogICAgICBjb2x1bW46IDEsCiAgICAgIGxpbmU6IDEsCiAgICAgIG9mZnNldDogMCwKICAgICAgbWFwOiB2b2lkIDAsCiAgICAgIGJyZWFrTGluZUNvZGU6IGksCiAgICAgIG5lZWRJbmRlbnQ6IGEsCiAgICAgIGluZGVudExldmVsOiAwLAogICAgfTsKICBvICYmIGUubG9jICYmIChsLnNvdXJjZSA9IGUubG9jLnNvdXJjZSk7CiAgY29uc3QgYyA9ICgpID0+IGw7CiAgZnVuY3Rpb24gdShNLCB4KSB7CiAgICBsLmNvZGUgKz0gTTsKICB9CiAgZnVuY3Rpb24gZChNLCB4ID0gITApIHsKICAgIGNvbnN0IGsgPSB4ID8gaSA6ICIiOwogICAgdShhID8gayArICIgICIucmVwZWF0KE0pIDogayk7CiAgfQogIGZ1bmN0aW9uIEUoTSA9ICEwKSB7CiAgICBjb25zdCB4ID0gKytsLmluZGVudExldmVsOwogICAgTSAmJiBkKHgpOwogIH0KICBmdW5jdGlvbiBiKE0gPSAhMCkgewogICAgY29uc3QgeCA9IC0tbC5pbmRlbnRMZXZlbDsKICAgIE0gJiYgZCh4KTsKICB9CiAgZnVuY3Rpb24gUCgpIHsKICAgIGQobC5pbmRlbnRMZXZlbCk7CiAgfQogIHJldHVybiB7CiAgICBjb250ZXh0OiBjLAogICAgcHVzaDogdSwKICAgIGluZGVudDogRSwKICAgIGRlaW5kZW50OiBiLAogICAgbmV3bGluZTogUCwKICAgIGhlbHBlcjogKE0pID0+IGBfJHtNfWAsCiAgICBuZWVkSW5kZW50OiAoKSA9PiBsLm5lZWRJbmRlbnQsCiAgfTsKfQpmdW5jdGlvbiBnZW5lcmF0ZUxpbmtlZE5vZGUoZSwgdCkgewogIGNvbnN0IHsgaGVscGVyOiByIH0gPSBlOwogIGUucHVzaChgJHtyKCJsaW5rZWQiKX0oYCksCiAgICBnZW5lcmF0ZU5vZGUoZSwgdC5rZXkpLAogICAgdC5tb2RpZmllcgogICAgICA/IChlLnB1c2goIiwgIiksIGdlbmVyYXRlTm9kZShlLCB0Lm1vZGlmaWVyKSwgZS5wdXNoKCIsIF90eXBlIikpCiAgICAgIDogZS5wdXNoKCIsIHVuZGVmaW5lZCwgX3R5cGUiKSwKICAgIGUucHVzaCgiKSIpOwp9CmZ1bmN0aW9uIGdlbmVyYXRlTWVzc2FnZU5vZGUoZSwgdCkgewogIGNvbnN0IHsgaGVscGVyOiByLCBuZWVkSW5kZW50OiBuIH0gPSBlOwogIGUucHVzaChgJHtyKCJub3JtYWxpemUiKX0oW2ApLCBlLmluZGVudChuKCkpOwogIGNvbnN0IGkgPSB0Lml0ZW1zLmxlbmd0aDsKICBmb3IgKGxldCBhID0gMDsgYSA8IGkgJiYgKGdlbmVyYXRlTm9kZShlLCB0Lml0ZW1zW2FdKSwgYSAhPT0gaSAtIDEpOyBhKyspCiAgICBlLnB1c2goIiwgIik7CiAgZS5kZWluZGVudChuKCkpLCBlLnB1c2goIl0pIik7Cn0KZnVuY3Rpb24gZ2VuZXJhdGVQbHVyYWxOb2RlKGUsIHQpIHsKICBjb25zdCB7IGhlbHBlcjogciwgbmVlZEluZGVudDogbiB9ID0gZTsKICBpZiAodC5jYXNlcy5sZW5ndGggPiAxKSB7CiAgICBlLnB1c2goYCR7cigicGx1cmFsIil9KFtgKSwgZS5pbmRlbnQobigpKTsKICAgIGNvbnN0IGkgPSB0LmNhc2VzLmxlbmd0aDsKICAgIGZvciAobGV0IGEgPSAwOyBhIDwgaSAmJiAoZ2VuZXJhdGVOb2RlKGUsIHQuY2FzZXNbYV0pLCBhICE9PSBpIC0gMSk7IGErKykKICAgICAgZS5wdXNoKCIsICIpOwogICAgZS5kZWluZGVudChuKCkpLCBlLnB1c2goIl0pIik7CiAgfQp9CmZ1bmN0aW9uIGdlbmVyYXRlUmVzb3VyY2UoZSwgdCkgewogIHQuYm9keSA/IGdlbmVyYXRlTm9kZShlLCB0LmJvZHkpIDogZS5wdXNoKCJudWxsIik7Cn0KZnVuY3Rpb24gZ2VuZXJhdGVOb2RlKGUsIHQpIHsKICBjb25zdCB7IGhlbHBlcjogciB9ID0gZTsKICBzd2l0Y2ggKHQudHlwZSkgewogICAgY2FzZSAwOgogICAgICBnZW5lcmF0ZVJlc291cmNlKGUsIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgMToKICAgICAgZ2VuZXJhdGVQbHVyYWxOb2RlKGUsIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgMjoKICAgICAgZ2VuZXJhdGVNZXNzYWdlTm9kZShlLCB0KTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDY6CiAgICAgIGdlbmVyYXRlTGlua2VkTm9kZShlLCB0KTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDg6CiAgICAgIGUucHVzaChKU09OLnN0cmluZ2lmeSh0LnZhbHVlKSwgdCk7CiAgICAgIGJyZWFrOwogICAgY2FzZSA3OgogICAgICBlLnB1c2goSlNPTi5zdHJpbmdpZnkodC52YWx1ZSksIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgNToKICAgICAgZS5wdXNoKGAke3IoImludGVycG9sYXRlIil9KCR7cigibGlzdCIpfSgke3QuaW5kZXh9KSlgLCB0KTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDQ6CiAgICAgIGUucHVzaChgJHtyKCJpbnRlcnBvbGF0ZSIpfSgke3IoIm5hbWVkIil9KCR7SlNPTi5zdHJpbmdpZnkodC5rZXkpfSkpYCwgdCk7CiAgICAgIGJyZWFrOwogICAgY2FzZSA5OgogICAgICBlLnB1c2goSlNPTi5zdHJpbmdpZnkodC52YWx1ZSksIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgMzoKICAgICAgZS5wdXNoKEpTT04uc3RyaW5naWZ5KHQudmFsdWUpLCB0KTsKICAgICAgYnJlYWs7CiAgfQp9CmNvbnN0IGdlbmVyYXRlID0gKGUsIHQgPSB7fSkgPT4gewogIGNvbnN0IHIgPSBpc1N0cmluZyh0Lm1vZGUpID8gdC5tb2RlIDogIm5vcm1hbCIsCiAgICBuID0gaXNTdHJpbmcodC5maWxlbmFtZSkgPyB0LmZpbGVuYW1lIDogIm1lc3NhZ2UuaW50bCIsCiAgICBpID0gISF0LnNvdXJjZU1hcCwKICAgIGEgPQogICAgICB0LmJyZWFrTGluZUNvZGUgIT0gbnVsbAogICAgICAgID8gdC5icmVha0xpbmVDb2RlCiAgICAgICAgOiByID09PSAiYXJyb3ciCiAgICAgICAgICA/ICI7IgogICAgICAgICAgOiBgCmAsCiAgICBvID0gdC5uZWVkSW5kZW50ID8gdC5uZWVkSW5kZW50IDogciAhPT0gImFycm93IiwKICAgIGwgPSBlLmhlbHBlcnMgfHwgW10sCiAgICBjID0gY3JlYXRlQ29kZUdlbmVyYXRvcihlLCB7CiAgICAgIG1vZGU6IHIsCiAgICAgIGZpbGVuYW1lOiBuLAogICAgICBzb3VyY2VNYXA6IGksCiAgICAgIGJyZWFrTGluZUNvZGU6IGEsCiAgICAgIG5lZWRJbmRlbnQ6IG8sCiAgICB9KTsKICBjLnB1c2gociA9PT0gIm5vcm1hbCIgPyAiZnVuY3Rpb24gX19tc2dfXyAoY3R4KSB7IiA6ICIoY3R4KSA9PiB7IiksCiAgICBjLmluZGVudChvKSwKICAgIGwubGVuZ3RoID4gMCAmJgogICAgKGMucHVzaCgKICAgICAgYGNvbnN0IHsgJHtqb2luKAogICAgICAgIGwubWFwKChFKSA9PiBgJHtFfTogXyR7RX1gKSwKICAgICAgICAiLCAiCiAgICAgICl9IH0gPSBjdHhgCiAgICApLAogICAgICBjLm5ld2xpbmUoKSksCiAgICBjLnB1c2goInJldHVybiAiKSwKICAgIGdlbmVyYXRlTm9kZShjLCBlKSwKICAgIGMuZGVpbmRlbnQobyksCiAgICBjLnB1c2goIn0iKSwKICAgIGRlbGV0ZSBlLmhlbHBlcnM7CiAgY29uc3QgeyBjb2RlOiB1LCBtYXA6IGQgfSA9IGMuY29udGV4dCgpOwogIHJldHVybiB7IGFzdDogZSwgY29kZTogdSwgbWFwOiBkID8gZC50b0pTT04oKSA6IHZvaWQgMCB9Owp9OwpmdW5jdGlvbiBiYXNlQ29tcGlsZSQxKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSBhc3NpZ24kMSh7fSwgdCksCiAgICBuID0gISFyLmppdCwKICAgIGkgPSAhIXIubWluaWZ5LAogICAgYSA9IHIub3B0aW1pemUgPT0gbnVsbCA/ICEwIDogci5vcHRpbWl6ZSwKICAgIGwgPSBjcmVhdGVQYXJzZXIocikucGFyc2UoZSk7CiAgcmV0dXJuIG4KICAgID8gKGEgJiYgb3B0aW1pemUobCksIGkgJiYgbWluaWZ5KGwpLCB7IGFzdDogbCwgY29kZTogIiIgfSkKICAgIDogKHRyYW5zZm9ybShsLCByKSwgZ2VuZXJhdGUobCwgcikpOwp9Ci8qIQogKiBjb3JlLWJhc2UgdjkuMTQuMgogKiAoYykgMjAyNCBrYXp1eWEga2F3YWd1Y2hpCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovIGZ1bmN0aW9uIGluaXRGZWF0dXJlRmxhZ3MkMSgpIHsKICB0eXBlb2YgX19JTlRMSUZZX1BST0RfREVWVE9PTFNfXyAhPSAiYm9vbGVhbiIgJiYKICAgIChnZXRHbG9iYWxUaGlzKCkuX19JTlRMSUZZX1BST0RfREVWVE9PTFNfXyA9ICExKTsKfQpjb25zdCBwYXRoU3RhdGVNYWNoaW5lID0gW107CnBhdGhTdGF0ZU1hY2hpbmVbMF0gPSB7IHc6IFswXSwgaTogWzMsIDBdLCAiWyI6IFs0XSwgbzogWzddIH07CnBhdGhTdGF0ZU1hY2hpbmVbMV0gPSB7IHc6IFsxXSwgIi4iOiBbMl0sICJbIjogWzRdLCBvOiBbN10gfTsKcGF0aFN0YXRlTWFjaGluZVsyXSA9IHsgdzogWzJdLCBpOiBbMywgMF0sIDA6IFszLCAwXSB9OwpwYXRoU3RhdGVNYWNoaW5lWzNdID0gewogIGk6IFszLCAwXSwKICAwOiBbMywgMF0sCiAgdzogWzEsIDFdLAogICIuIjogWzIsIDFdLAogICJbIjogWzQsIDFdLAogIG86IFs3LCAxXSwKfTsKcGF0aFN0YXRlTWFjaGluZVs0XSA9IHsKICAiJyI6IFs1LCAwXSwKICAnIic6IFs2LCAwXSwKICAiWyI6IFs0LCAyXSwKICAiXSI6IFsxLCAzXSwKICBvOiA4LAogIGw6IFs0LCAwXSwKfTsKcGF0aFN0YXRlTWFjaGluZVs1XSA9IHsgIiciOiBbNCwgMF0sIG86IDgsIGw6IFs1LCAwXSB9OwpwYXRoU3RhdGVNYWNoaW5lWzZdID0geyAnIic6IFs0LCAwXSwgbzogOCwgbDogWzYsIDBdIH07CmNvbnN0IGxpdGVyYWxWYWx1ZVJFID0gL15ccz8oPzp0cnVlfGZhbHNlfC0/W1xkLl0rfCdbXiddKid8IlteIl0qIilccz8kLzsKZnVuY3Rpb24gaXNMaXRlcmFsKGUpIHsKICByZXR1cm4gbGl0ZXJhbFZhbHVlUkUudGVzdChlKTsKfQpmdW5jdGlvbiBzdHJpcFF1b3RlcyhlKSB7CiAgY29uc3QgdCA9IGUuY2hhckNvZGVBdCgwKSwKICAgIHIgPSBlLmNoYXJDb2RlQXQoZS5sZW5ndGggLSAxKTsKICByZXR1cm4gdCA9PT0gciAmJiAodCA9PT0gMzQgfHwgdCA9PT0gMzkpID8gZS5zbGljZSgxLCAtMSkgOiBlOwp9CmZ1bmN0aW9uIGdldFBhdGhDaGFyVHlwZShlKSB7CiAgaWYgKGUgPT0gbnVsbCkgcmV0dXJuICJvIjsKICBzd2l0Y2ggKGUuY2hhckNvZGVBdCgwKSkgewogICAgY2FzZSA5MToKICAgIGNhc2UgOTM6CiAgICBjYXNlIDQ2OgogICAgY2FzZSAzNDoKICAgIGNhc2UgMzk6CiAgICAgIHJldHVybiBlOwogICAgY2FzZSA5NToKICAgIGNhc2UgMzY6CiAgICBjYXNlIDQ1OgogICAgICByZXR1cm4gImkiOwogICAgY2FzZSA5OgogICAgY2FzZSAxMDoKICAgIGNhc2UgMTM6CiAgICBjYXNlIDE2MDoKICAgIGNhc2UgNjUyNzk6CiAgICBjYXNlIDgyMzI6CiAgICBjYXNlIDgyMzM6CiAgICAgIHJldHVybiAidyI7CiAgfQogIHJldHVybiAiaSI7Cn0KZnVuY3Rpb24gZm9ybWF0U3ViUGF0aChlKSB7CiAgY29uc3QgdCA9IGUudHJpbSgpOwogIHJldHVybiBlLmNoYXJBdCgwKSA9PT0gIjAiICYmIGlzTmFOKHBhcnNlSW50KGUpKQogICAgPyAhMQogICAgOiBpc0xpdGVyYWwodCkKICAgICAgPyBzdHJpcFF1b3Rlcyh0KQogICAgICA6ICIqIiArIHQ7Cn0KZnVuY3Rpb24gcGFyc2UoZSkgewogIGNvbnN0IHQgPSBbXTsKICBsZXQgciA9IC0xLAogICAgbiA9IDAsCiAgICBpID0gMCwKICAgIGEsCiAgICBvLAogICAgbCwKICAgIGMsCiAgICB1LAogICAgZCwKICAgIEU7CiAgY29uc3QgYiA9IFtdOwogIChiWzBdID0gKCkgPT4gewogICAgbyA9PT0gdm9pZCAwID8gKG8gPSBsKSA6IChvICs9IGwpOwogIH0pLAogICAgKGJbMV0gPSAoKSA9PiB7CiAgICAgIG8gIT09IHZvaWQgMCAmJiAodC5wdXNoKG8pLCAobyA9IHZvaWQgMCkpOwogICAgfSksCiAgICAoYlsyXSA9ICgpID0+IHsKICAgICAgYlswXSgpLCBpKys7CiAgICB9KSwKICAgIChiWzNdID0gKCkgPT4gewogICAgICBpZiAoaSA+IDApIGktLSwgKG4gPSA0KSwgYlswXSgpOwogICAgICBlbHNlIHsKICAgICAgICBpZiAoKChpID0gMCksIG8gPT09IHZvaWQgMCB8fCAoKG8gPSBmb3JtYXRTdWJQYXRoKG8pKSwgbyA9PT0gITEpKSkKICAgICAgICAgIHJldHVybiAhMTsKICAgICAgICBiWzFdKCk7CiAgICAgIH0KICAgIH0pOwogIGZ1bmN0aW9uIFAoKSB7CiAgICBjb25zdCBSID0gZVtyICsgMV07CiAgICBpZiAoKG4gPT09IDUgJiYgUiA9PT0gIiciKSB8fCAobiA9PT0gNiAmJiBSID09PSAnIicpKQogICAgICByZXR1cm4gcisrLCAobCA9ICJcXCIgKyBSKSwgYlswXSgpLCAhMDsKICB9CiAgZm9yICg7IG4gIT09IG51bGw7KQogICAgaWYgKChyKyssIChhID0gZVtyXSksICEoYSA9PT0gIlxcIiAmJiBQKCkpKSkgewogICAgICBpZiAoCiAgICAgICAgKChjID0gZ2V0UGF0aENoYXJUeXBlKGEpKSwKICAgICAgICAgIChFID0gcGF0aFN0YXRlTWFjaGluZVtuXSksCiAgICAgICAgICAodSA9IEVbY10gfHwgRS5sIHx8IDgpLAogICAgICAgICAgdSA9PT0gOCB8fAogICAgICAgICAgKChuID0gdVswXSksCiAgICAgICAgICAgIHVbMV0gIT09IHZvaWQgMCAmJiAoKGQgPSBiW3VbMV1dKSwgZCAmJiAoKGwgPSBhKSwgZCgpID09PSAhMSkpKSkKICAgICAgKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKG4gPT09IDcpIHJldHVybiB0OwogICAgfQp9CmNvbnN0IGNhY2hlID0gbmV3IE1hcCgpOwpmdW5jdGlvbiByZXNvbHZlV2l0aEtleVZhbHVlKGUsIHQpIHsKICByZXR1cm4gaXNPYmplY3QkMShlKSA/IGVbdF0gOiBudWxsOwp9CmZ1bmN0aW9uIHJlc29sdmVWYWx1ZSQxKGUsIHQpIHsKICBpZiAoIWlzT2JqZWN0JDEoZSkpIHJldHVybiBudWxsOwogIGxldCByID0gY2FjaGUuZ2V0KHQpOwogIGlmICgociB8fCAoKHIgPSBwYXJzZSh0KSksIHIgJiYgY2FjaGUuc2V0KHQsIHIpKSwgIXIpKSByZXR1cm4gbnVsbDsKICBjb25zdCBuID0gci5sZW5ndGg7CiAgbGV0IGkgPSBlLAogICAgYSA9IDA7CiAgZm9yICg7IGEgPCBuOykgewogICAgY29uc3QgbyA9IGlbclthXV07CiAgICBpZiAobyA9PT0gdm9pZCAwIHx8IGlzRnVuY3Rpb24oaSkpIHJldHVybiBudWxsOwogICAgKGkgPSBvKSwgYSsrOwogIH0KICByZXR1cm4gaTsKfQpjb25zdCBERUZBVUxUX01PRElGSUVSID0gKGUpID0+IGUsCiAgREVGQVVMVF9NRVNTQUdFID0gKGUpID0+ICIiLAogIERFRkFVTFRfTUVTU0FHRV9EQVRBX1RZUEUgPSAidGV4dCIsCiAgREVGQVVMVF9OT1JNQUxJWkUgPSAoZSkgPT4gKGUubGVuZ3RoID09PSAwID8gIiIgOiBqb2luKGUpKSwKICBERUZBVUxUX0lOVEVSUE9MQVRFID0gdG9EaXNwbGF5U3RyaW5nOwpmdW5jdGlvbiBwbHVyYWxEZWZhdWx0KGUsIHQpIHsKICByZXR1cm4gKAogICAgKGUgPSBNYXRoLmFicyhlKSksCiAgICB0ID09PSAyID8gKGUgPyAoZSA+IDEgPyAxIDogMCkgOiAxKSA6IGUgPyBNYXRoLm1pbihlLCAyKSA6IDAKICApOwp9CmZ1bmN0aW9uIGdldFBsdXJhbEluZGV4KGUpIHsKICBjb25zdCB0ID0gaXNOdW1iZXIoZS5wbHVyYWxJbmRleCkgPyBlLnBsdXJhbEluZGV4IDogLTE7CiAgcmV0dXJuIGUubmFtZWQgJiYgKGlzTnVtYmVyKGUubmFtZWQuY291bnQpIHx8IGlzTnVtYmVyKGUubmFtZWQubikpCiAgICA/IGlzTnVtYmVyKGUubmFtZWQuY291bnQpCiAgICAgID8gZS5uYW1lZC5jb3VudAogICAgICA6IGlzTnVtYmVyKGUubmFtZWQubikKICAgICAgICA/IGUubmFtZWQubgogICAgICAgIDogdAogICAgOiB0Owp9CmZ1bmN0aW9uIG5vcm1hbGl6ZU5hbWVkKGUsIHQpIHsKICB0LmNvdW50IHx8ICh0LmNvdW50ID0gZSksIHQubiB8fCAodC5uID0gZSk7Cn0KZnVuY3Rpb24gY3JlYXRlTWVzc2FnZUNvbnRleHQoZSA9IHt9KSB7CiAgY29uc3QgdCA9IGUubG9jYWxlLAogICAgciA9IGdldFBsdXJhbEluZGV4KGUpLAogICAgbiA9CiAgICAgIGlzT2JqZWN0JDEoZS5wbHVyYWxSdWxlcykgJiYgaXNTdHJpbmcodCkgJiYgaXNGdW5jdGlvbihlLnBsdXJhbFJ1bGVzW3RdKQogICAgICAgID8gZS5wbHVyYWxSdWxlc1t0XQogICAgICAgIDogcGx1cmFsRGVmYXVsdCwKICAgIGkgPQogICAgICBpc09iamVjdCQxKGUucGx1cmFsUnVsZXMpICYmIGlzU3RyaW5nKHQpICYmIGlzRnVuY3Rpb24oZS5wbHVyYWxSdWxlc1t0XSkKICAgICAgICA/IHBsdXJhbERlZmF1bHQKICAgICAgICA6IHZvaWQgMCwKICAgIGEgPSAoeCkgPT4geFtuKHIsIHgubGVuZ3RoLCBpKV0sCiAgICBvID0gZS5saXN0IHx8IFtdLAogICAgbCA9ICh4KSA9PiBvW3hdLAogICAgYyA9IGUubmFtZWQgfHwgY3JlYXRlKCk7CiAgaXNOdW1iZXIoZS5wbHVyYWxJbmRleCkgJiYgbm9ybWFsaXplTmFtZWQociwgYyk7CiAgY29uc3QgdSA9ICh4KSA9PiBjW3hdOwogIGZ1bmN0aW9uIGQoeCkgewogICAgY29uc3QgayA9IGlzRnVuY3Rpb24oZS5tZXNzYWdlcykKICAgICAgPyBlLm1lc3NhZ2VzKHgpCiAgICAgIDogaXNPYmplY3QkMShlLm1lc3NhZ2VzKQogICAgICAgID8gZS5tZXNzYWdlc1t4XQogICAgICAgIDogITE7CiAgICByZXR1cm4gayB8fCAoZS5wYXJlbnQgPyBlLnBhcmVudC5tZXNzYWdlKHgpIDogREVGQVVMVF9NRVNTQUdFKTsKICB9CiAgY29uc3QgRSA9ICh4KSA9PiAoZS5tb2RpZmllcnMgPyBlLm1vZGlmaWVyc1t4XSA6IERFRkFVTFRfTU9ESUZJRVIpLAogICAgYiA9CiAgICAgIGlzUGxhaW5PYmplY3QkMShlLnByb2Nlc3NvcikgJiYgaXNGdW5jdGlvbihlLnByb2Nlc3Nvci5ub3JtYWxpemUpCiAgICAgICAgPyBlLnByb2Nlc3Nvci5ub3JtYWxpemUKICAgICAgICA6IERFRkFVTFRfTk9STUFMSVpFLAogICAgUCA9CiAgICAgIGlzUGxhaW5PYmplY3QkMShlLnByb2Nlc3NvcikgJiYgaXNGdW5jdGlvbihlLnByb2Nlc3Nvci5pbnRlcnBvbGF0ZSkKICAgICAgICA/IGUucHJvY2Vzc29yLmludGVycG9sYXRlCiAgICAgICAgOiBERUZBVUxUX0lOVEVSUE9MQVRFLAogICAgUiA9CiAgICAgIGlzUGxhaW5PYmplY3QkMShlLnByb2Nlc3NvcikgJiYgaXNTdHJpbmcoZS5wcm9jZXNzb3IudHlwZSkKICAgICAgICA/IGUucHJvY2Vzc29yLnR5cGUKICAgICAgICA6IERFRkFVTFRfTUVTU0FHRV9EQVRBX1RZUEUsCiAgICBNID0gewogICAgICBsaXN0OiBsLAogICAgICBuYW1lZDogdSwKICAgICAgcGx1cmFsOiBhLAogICAgICBsaW5rZWQ6ICh4LCAuLi5rKSA9PiB7CiAgICAgICAgY29uc3QgW1MsIEFdID0gazsKICAgICAgICBsZXQgTyA9ICJ0ZXh0IiwKICAgICAgICAgIEYgPSAiIjsKICAgICAgICBrLmxlbmd0aCA9PT0gMQogICAgICAgICAgPyBpc09iamVjdCQxKFMpCiAgICAgICAgICAgID8gKChGID0gUy5tb2RpZmllciB8fCBGKSwgKE8gPSBTLnR5cGUgfHwgTykpCiAgICAgICAgICAgIDogaXNTdHJpbmcoUykgJiYgKEYgPSBTIHx8IEYpCiAgICAgICAgICA6IGsubGVuZ3RoID09PSAyICYmCiAgICAgICAgICAoaXNTdHJpbmcoUykgJiYgKEYgPSBTIHx8IEYpLCBpc1N0cmluZyhBKSAmJiAoTyA9IEEgfHwgTykpOwogICAgICAgIGNvbnN0IEQgPSBkKHgpKE0pLAogICAgICAgICAgSCA9IE8gPT09ICJ2bm9kZSIgJiYgaXNBcnJheSQxKEQpICYmIEYgPyBEWzBdIDogRDsKICAgICAgICByZXR1cm4gRiA/IEUoRikoSCwgTykgOiBIOwogICAgICB9LAogICAgICBtZXNzYWdlOiBkLAogICAgICB0eXBlOiBSLAogICAgICBpbnRlcnBvbGF0ZTogUCwKICAgICAgbm9ybWFsaXplOiBiLAogICAgICB2YWx1ZXM6IGFzc2lnbiQxKGNyZWF0ZSgpLCBvLCBjKSwKICAgIH07CiAgcmV0dXJuIE07Cn0KbGV0IGRldnRvb2xzID0gbnVsbDsKZnVuY3Rpb24gc2V0RGV2VG9vbHNIb29rKGUpIHsKICBkZXZ0b29scyA9IGU7Cn0KZnVuY3Rpb24gaW5pdEkxOG5EZXZUb29scyhlLCB0LCByKSB7CiAgZGV2dG9vbHMgJiYKICAgIGRldnRvb2xzLmVtaXQoImkxOG46aW5pdCIsIHsKICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLAogICAgICBpMThuOiBlLAogICAgICB2ZXJzaW9uOiB0LAogICAgICBtZXRhOiByLAogICAgfSk7Cn0KY29uc3QgdHJhbnNsYXRlRGV2VG9vbHMgPSBjcmVhdGVEZXZUb29sc0hvb2soImZ1bmN0aW9uOnRyYW5zbGF0ZSIpOwpmdW5jdGlvbiBjcmVhdGVEZXZUb29sc0hvb2soZSkgewogIHJldHVybiAodCkgPT4gZGV2dG9vbHMgJiYgZGV2dG9vbHMuZW1pdChlLCB0KTsKfQpjb25zdCBjb2RlJDEkMSA9IENvbXBpbGVXYXJuQ29kZXMuX19FWFRFTkRfUE9JTlRfXywKICBpbmMkMSQxID0gaW5jcmVtZW50ZXIoY29kZSQxJDEpLAogIENvcmVXYXJuQ29kZXMgPSB7CiAgICBOT1RfRk9VTkRfS0VZOiBjb2RlJDEkMSwKICAgIEZBTExCQUNLX1RPX1RSQU5TTEFURTogaW5jJDEkMSgpLAogICAgQ0FOTk9UX0ZPUk1BVF9OVU1CRVI6IGluYyQxJDEoKSwKICAgIEZBTExCQUNLX1RPX05VTUJFUl9GT1JNQVQ6IGluYyQxJDEoKSwKICAgIENBTk5PVF9GT1JNQVRfREFURTogaW5jJDEkMSgpLAogICAgRkFMTEJBQ0tfVE9fREFURV9GT1JNQVQ6IGluYyQxJDEoKSwKICAgIEVYUEVSSU1FTlRBTF9DVVNUT01fTUVTU0FHRV9DT01QSUxFUjogaW5jJDEkMSgpLAogICAgX19FWFRFTkRfUE9JTlRfXzogaW5jJDEkMSgpLAogIH0sCiAgY29kZSQyID0gQ29tcGlsZUVycm9yQ29kZXMuX19FWFRFTkRfUE9JTlRfXywKICBpbmMkMiA9IGluY3JlbWVudGVyKGNvZGUkMiksCiAgQ29yZUVycm9yQ29kZXMgPSB7CiAgICBJTlZBTElEX0FSR1VNRU5UOiBjb2RlJDIsCiAgICBJTlZBTElEX0RBVEVfQVJHVU1FTlQ6IGluYyQyKCksCiAgICBJTlZBTElEX0lTT19EQVRFX0FSR1VNRU5UOiBpbmMkMigpLAogICAgTk9UX1NVUFBPUlRfTk9OX1NUUklOR19NRVNTQUdFOiBpbmMkMigpLAogICAgTk9UX1NVUFBPUlRfTE9DQUxFX1BST01JU0VfVkFMVUU6IGluYyQyKCksCiAgICBOT1RfU1VQUE9SVF9MT0NBTEVfQVNZTkNfRlVOQ1RJT046IGluYyQyKCksCiAgICBOT1RfU1VQUE9SVF9MT0NBTEVfVFlQRTogaW5jJDIoKSwKICAgIF9fRVhURU5EX1BPSU5UX186IGluYyQyKCksCiAgfTsKZnVuY3Rpb24gY3JlYXRlQ29yZUVycm9yKGUpIHsKICByZXR1cm4gY3JlYXRlQ29tcGlsZUVycm9yKGUsIG51bGwsIHZvaWQgMCk7Cn0KZnVuY3Rpb24gZ2V0TG9jYWxlJDEoZSwgdCkgewogIHJldHVybiB0LmxvY2FsZSAhPSBudWxsID8gcmVzb2x2ZUxvY2FsZSh0LmxvY2FsZSkgOiByZXNvbHZlTG9jYWxlKGUubG9jYWxlKTsKfQpsZXQgX3Jlc29sdmVMb2NhbGU7CmZ1bmN0aW9uIHJlc29sdmVMb2NhbGUoZSkgewogIGlmIChpc1N0cmluZyhlKSkgcmV0dXJuIGU7CiAgaWYgKGlzRnVuY3Rpb24oZSkpIHsKICAgIGlmIChlLnJlc29sdmVkT25jZSAmJiBfcmVzb2x2ZUxvY2FsZSAhPSBudWxsKSByZXR1cm4gX3Jlc29sdmVMb2NhbGU7CiAgICBpZiAoZS5jb25zdHJ1Y3Rvci5uYW1lID09PSAiRnVuY3Rpb24iKSB7CiAgICAgIGNvbnN0IHQgPSBlKCk7CiAgICAgIGlmIChpc1Byb21pc2UodCkpCiAgICAgICAgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLk5PVF9TVVBQT1JUX0xPQ0FMRV9QUk9NSVNFX1ZBTFVFKTsKICAgICAgcmV0dXJuIChfcmVzb2x2ZUxvY2FsZSA9IHQpOwogICAgfSBlbHNlCiAgICAgIHRocm93IGNyZWF0ZUNvcmVFcnJvcihDb3JlRXJyb3JDb2Rlcy5OT1RfU1VQUE9SVF9MT0NBTEVfQVNZTkNfRlVOQ1RJT04pOwogIH0gZWxzZSB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuTk9UX1NVUFBPUlRfTE9DQUxFX1RZUEUpOwp9CmZ1bmN0aW9uIGZhbGxiYWNrV2l0aFNpbXBsZShlLCB0LCByKSB7CiAgcmV0dXJuIFsKICAgIC4uLm5ldyBTZXQoWwogICAgICByLAogICAgICAuLi4oaXNBcnJheSQxKHQpCiAgICAgICAgPyB0CiAgICAgICAgOiBpc09iamVjdCQxKHQpCiAgICAgICAgICA/IE9iamVjdC5rZXlzKHQpCiAgICAgICAgICA6IGlzU3RyaW5nKHQpCiAgICAgICAgICAgID8gW3RdCiAgICAgICAgICAgIDogW3JdKSwKICAgIF0pLAogIF07Cn0KZnVuY3Rpb24gZmFsbGJhY2tXaXRoTG9jYWxlQ2hhaW4oZSwgdCwgcikgewogIGNvbnN0IG4gPSBpc1N0cmluZyhyKSA/IHIgOiBERUZBVUxUX0xPQ0FMRSwKICAgIGkgPSBlOwogIGkuX19sb2NhbGVDaGFpbkNhY2hlIHx8IChpLl9fbG9jYWxlQ2hhaW5DYWNoZSA9IG5ldyBNYXAoKSk7CiAgbGV0IGEgPSBpLl9fbG9jYWxlQ2hhaW5DYWNoZS5nZXQobik7CiAgaWYgKCFhKSB7CiAgICBhID0gW107CiAgICBsZXQgbyA9IFtyXTsKICAgIGZvciAoOyBpc0FycmF5JDEobyk7KSBvID0gYXBwZW5kQmxvY2tUb0NoYWluKGEsIG8sIHQpOwogICAgY29uc3QgbCA9CiAgICAgIGlzQXJyYXkkMSh0KSB8fCAhaXNQbGFpbk9iamVjdCQxKHQpID8gdCA6IHQuZGVmYXVsdCA/IHQuZGVmYXVsdCA6IG51bGw7CiAgICAobyA9IGlzU3RyaW5nKGwpID8gW2xdIDogbCksCiAgICAgIGlzQXJyYXkkMShvKSAmJiBhcHBlbmRCbG9ja1RvQ2hhaW4oYSwgbywgITEpLAogICAgICBpLl9fbG9jYWxlQ2hhaW5DYWNoZS5zZXQobiwgYSk7CiAgfQogIHJldHVybiBhOwp9CmZ1bmN0aW9uIGFwcGVuZEJsb2NrVG9DaGFpbihlLCB0LCByKSB7CiAgbGV0IG4gPSAhMDsKICBmb3IgKGxldCBpID0gMDsgaSA8IHQubGVuZ3RoICYmIGlzQm9vbGVhbihuKTsgaSsrKSB7CiAgICBjb25zdCBhID0gdFtpXTsKICAgIGlzU3RyaW5nKGEpICYmIChuID0gYXBwZW5kTG9jYWxlVG9DaGFpbihlLCB0W2ldLCByKSk7CiAgfQogIHJldHVybiBuOwp9CmZ1bmN0aW9uIGFwcGVuZExvY2FsZVRvQ2hhaW4oZSwgdCwgcikgewogIGxldCBuOwogIGNvbnN0IGkgPSB0LnNwbGl0KCItIik7CiAgZG8gewogICAgY29uc3QgYSA9IGkuam9pbigiLSIpOwogICAgKG4gPSBhcHBlbmRJdGVtVG9DaGFpbihlLCBhLCByKSksIGkuc3BsaWNlKC0xLCAxKTsKICB9IHdoaWxlIChpLmxlbmd0aCAmJiBuID09PSAhMCk7CiAgcmV0dXJuIG47Cn0KZnVuY3Rpb24gYXBwZW5kSXRlbVRvQ2hhaW4oZSwgdCwgcikgewogIGxldCBuID0gITE7CiAgaWYgKCFlLmluY2x1ZGVzKHQpICYmICgobiA9ICEwKSwgdCkpIHsKICAgIG4gPSB0W3QubGVuZ3RoIC0gMV0gIT09ICIhIjsKICAgIGNvbnN0IGkgPSB0LnJlcGxhY2UoLyEvZywgIiIpOwogICAgZS5wdXNoKGkpLCAoaXNBcnJheSQxKHIpIHx8IGlzUGxhaW5PYmplY3QkMShyKSkgJiYgcltpXSAmJiAobiA9IHJbaV0pOwogIH0KICByZXR1cm4gbjsKfQpjb25zdCBWRVJTSU9OJDEgPSAiOS4xNC4yIiwKICBOT1RfUkVPU0xWRUQgPSAtMSwKICBERUZBVUxUX0xPQ0FMRSA9ICJlbi1VUyIsCiAgTUlTU0lOR19SRVNPTFZFX1ZBTFVFID0gIiIsCiAgY2FwaXRhbGl6ZSA9IChlKSA9PiBgJHtlLmNoYXJBdCgwKS50b0xvY2FsZVVwcGVyQ2FzZSgpfSR7ZS5zdWJzdHIoMSl9YDsKZnVuY3Rpb24gZ2V0RGVmYXVsdExpbmtlZE1vZGlmaWVycygpIHsKICByZXR1cm4gewogICAgdXBwZXI6IChlLCB0KSA9PgogICAgICB0ID09PSAidGV4dCIgJiYgaXNTdHJpbmcoZSkKICAgICAgICA/IGUudG9VcHBlckNhc2UoKQogICAgICAgIDogdCA9PT0gInZub2RlIiAmJiBpc09iamVjdCQxKGUpICYmICJfX3ZfaXNWTm9kZSIgaW4gZQogICAgICAgICAgPyBlLmNoaWxkcmVuLnRvVXBwZXJDYXNlKCkKICAgICAgICAgIDogZSwKICAgIGxvd2VyOiAoZSwgdCkgPT4KICAgICAgdCA9PT0gInRleHQiICYmIGlzU3RyaW5nKGUpCiAgICAgICAgPyBlLnRvTG93ZXJDYXNlKCkKICAgICAgICA6IHQgPT09ICJ2bm9kZSIgJiYgaXNPYmplY3QkMShlKSAmJiAiX192X2lzVk5vZGUiIGluIGUKICAgICAgICAgID8gZS5jaGlsZHJlbi50b0xvd2VyQ2FzZSgpCiAgICAgICAgICA6IGUsCiAgICBjYXBpdGFsaXplOiAoZSwgdCkgPT4KICAgICAgdCA9PT0gInRleHQiICYmIGlzU3RyaW5nKGUpCiAgICAgICAgPyBjYXBpdGFsaXplKGUpCiAgICAgICAgOiB0ID09PSAidm5vZGUiICYmIGlzT2JqZWN0JDEoZSkgJiYgIl9fdl9pc1ZOb2RlIiBpbiBlCiAgICAgICAgICA/IGNhcGl0YWxpemUoZS5jaGlsZHJlbikKICAgICAgICAgIDogZSwKICB9Owp9CmxldCBfY29tcGlsZXI7CmZ1bmN0aW9uIHJlZ2lzdGVyTWVzc2FnZUNvbXBpbGVyKGUpIHsKICBfY29tcGlsZXIgPSBlOwp9CmxldCBfcmVzb2x2ZXI7CmZ1bmN0aW9uIHJlZ2lzdGVyTWVzc2FnZVJlc29sdmVyKGUpIHsKICBfcmVzb2x2ZXIgPSBlOwp9CmxldCBfZmFsbGJhY2tlcjsKZnVuY3Rpb24gcmVnaXN0ZXJMb2NhbGVGYWxsYmFja2VyKGUpIHsKICBfZmFsbGJhY2tlciA9IGU7Cn0KbGV0IF9hZGRpdGlvbmFsTWV0YSA9IG51bGw7CmNvbnN0IHNldEFkZGl0aW9uYWxNZXRhID0gKGUpID0+IHsKICBfYWRkaXRpb25hbE1ldGEgPSBlOwp9LAogIGdldEFkZGl0aW9uYWxNZXRhID0gKCkgPT4gX2FkZGl0aW9uYWxNZXRhOwpsZXQgX2ZhbGxiYWNrQ29udGV4dCA9IG51bGw7CmNvbnN0IHNldEZhbGxiYWNrQ29udGV4dCA9IChlKSA9PiB7CiAgX2ZhbGxiYWNrQ29udGV4dCA9IGU7Cn0sCiAgZ2V0RmFsbGJhY2tDb250ZXh0ID0gKCkgPT4gX2ZhbGxiYWNrQ29udGV4dDsKbGV0IF9jaWQgPSAwOwpmdW5jdGlvbiBjcmVhdGVDb3JlQ29udGV4dChlID0ge30pIHsKICBjb25zdCB0ID0gaXNGdW5jdGlvbihlLm9uV2FybikgPyBlLm9uV2FybiA6IHdhcm4sCiAgICByID0gaXNTdHJpbmcoZS52ZXJzaW9uKSA/IGUudmVyc2lvbiA6IFZFUlNJT04kMSwKICAgIG4gPSBpc1N0cmluZyhlLmxvY2FsZSkgfHwgaXNGdW5jdGlvbihlLmxvY2FsZSkgPyBlLmxvY2FsZSA6IERFRkFVTFRfTE9DQUxFLAogICAgaSA9IGlzRnVuY3Rpb24obikgPyBERUZBVUxUX0xPQ0FMRSA6IG4sCiAgICBhID0KICAgICAgaXNBcnJheSQxKGUuZmFsbGJhY2tMb2NhbGUpIHx8CiAgICAgICAgaXNQbGFpbk9iamVjdCQxKGUuZmFsbGJhY2tMb2NhbGUpIHx8CiAgICAgICAgaXNTdHJpbmcoZS5mYWxsYmFja0xvY2FsZSkgfHwKICAgICAgICBlLmZhbGxiYWNrTG9jYWxlID09PSAhMQogICAgICAgID8gZS5mYWxsYmFja0xvY2FsZQogICAgICAgIDogaSwKICAgIG8gPSBpc1BsYWluT2JqZWN0JDEoZS5tZXNzYWdlcykgPyBlLm1lc3NhZ2VzIDogY3JlYXRlUmVzb3VyY2VzKGkpLAogICAgbCA9IGlzUGxhaW5PYmplY3QkMShlLmRhdGV0aW1lRm9ybWF0cykKICAgICAgPyBlLmRhdGV0aW1lRm9ybWF0cwogICAgICA6IGNyZWF0ZVJlc291cmNlcyhpKSwKICAgIGMgPSBpc1BsYWluT2JqZWN0JDEoZS5udW1iZXJGb3JtYXRzKSA/IGUubnVtYmVyRm9ybWF0cyA6IGNyZWF0ZVJlc291cmNlcyhpKSwKICAgIHUgPSBhc3NpZ24kMShjcmVhdGUoKSwgZS5tb2RpZmllcnMsIGdldERlZmF1bHRMaW5rZWRNb2RpZmllcnMoKSksCiAgICBkID0gZS5wbHVyYWxSdWxlcyB8fCBjcmVhdGUoKSwKICAgIEUgPSBpc0Z1bmN0aW9uKGUubWlzc2luZykgPyBlLm1pc3NpbmcgOiBudWxsLAogICAgYiA9CiAgICAgIGlzQm9vbGVhbihlLm1pc3NpbmdXYXJuKSB8fCBpc1JlZ0V4cChlLm1pc3NpbmdXYXJuKSA/IGUubWlzc2luZ1dhcm4gOiAhMCwKICAgIFAgPQogICAgICBpc0Jvb2xlYW4oZS5mYWxsYmFja1dhcm4pIHx8IGlzUmVnRXhwKGUuZmFsbGJhY2tXYXJuKQogICAgICAgID8gZS5mYWxsYmFja1dhcm4KICAgICAgICA6ICEwLAogICAgUiA9ICEhZS5mYWxsYmFja0Zvcm1hdCwKICAgIFQgPSAhIWUudW5yZXNvbHZpbmcsCiAgICBNID0gaXNGdW5jdGlvbihlLnBvc3RUcmFuc2xhdGlvbikgPyBlLnBvc3RUcmFuc2xhdGlvbiA6IG51bGwsCiAgICB4ID0gaXNQbGFpbk9iamVjdCQxKGUucHJvY2Vzc29yKSA/IGUucHJvY2Vzc29yIDogbnVsbCwKICAgIGsgPSBpc0Jvb2xlYW4oZS53YXJuSHRtbE1lc3NhZ2UpID8gZS53YXJuSHRtbE1lc3NhZ2UgOiAhMCwKICAgIFMgPSAhIWUuZXNjYXBlUGFyYW1ldGVyLAogICAgQSA9IGlzRnVuY3Rpb24oZS5tZXNzYWdlQ29tcGlsZXIpID8gZS5tZXNzYWdlQ29tcGlsZXIgOiBfY29tcGlsZXIsCiAgICBPID0gaXNGdW5jdGlvbihlLm1lc3NhZ2VSZXNvbHZlcikKICAgICAgPyBlLm1lc3NhZ2VSZXNvbHZlcgogICAgICA6IF9yZXNvbHZlciB8fCByZXNvbHZlV2l0aEtleVZhbHVlLAogICAgRiA9IGlzRnVuY3Rpb24oZS5sb2NhbGVGYWxsYmFja2VyKQogICAgICA/IGUubG9jYWxlRmFsbGJhY2tlcgogICAgICA6IF9mYWxsYmFja2VyIHx8IGZhbGxiYWNrV2l0aFNpbXBsZSwKICAgIEQgPSBpc09iamVjdCQxKGUuZmFsbGJhY2tDb250ZXh0KSA/IGUuZmFsbGJhY2tDb250ZXh0IDogdm9pZCAwLAogICAgSCA9IGUsCiAgICAkID0gaXNPYmplY3QkMShILl9fZGF0ZXRpbWVGb3JtYXR0ZXJzKSA/IEguX19kYXRldGltZUZvcm1hdHRlcnMgOiBuZXcgTWFwKCksCiAgICBxID0gaXNPYmplY3QkMShILl9fbnVtYmVyRm9ybWF0dGVycykgPyBILl9fbnVtYmVyRm9ybWF0dGVycyA6IG5ldyBNYXAoKSwKICAgIEogPSBpc09iamVjdCQxKEguX19tZXRhKSA/IEguX19tZXRhIDoge307CiAgX2NpZCsrOwogIGNvbnN0IEsgPSB7CiAgICB2ZXJzaW9uOiByLAogICAgY2lkOiBfY2lkLAogICAgbG9jYWxlOiBuLAogICAgZmFsbGJhY2tMb2NhbGU6IGEsCiAgICBtZXNzYWdlczogbywKICAgIG1vZGlmaWVyczogdSwKICAgIHBsdXJhbFJ1bGVzOiBkLAogICAgbWlzc2luZzogRSwKICAgIG1pc3NpbmdXYXJuOiBiLAogICAgZmFsbGJhY2tXYXJuOiBQLAogICAgZmFsbGJhY2tGb3JtYXQ6IFIsCiAgICB1bnJlc29sdmluZzogVCwKICAgIHBvc3RUcmFuc2xhdGlvbjogTSwKICAgIHByb2Nlc3NvcjogeCwKICAgIHdhcm5IdG1sTWVzc2FnZTogaywKICAgIGVzY2FwZVBhcmFtZXRlcjogUywKICAgIG1lc3NhZ2VDb21waWxlcjogQSwKICAgIG1lc3NhZ2VSZXNvbHZlcjogTywKICAgIGxvY2FsZUZhbGxiYWNrZXI6IEYsCiAgICBmYWxsYmFja0NvbnRleHQ6IEQsCiAgICBvbldhcm46IHQsCiAgICBfX21ldGE6IEosCiAgfTsKICByZXR1cm4gKAogICAgKEsuZGF0ZXRpbWVGb3JtYXRzID0gbCksCiAgICAoSy5udW1iZXJGb3JtYXRzID0gYyksCiAgICAoSy5fX2RhdGV0aW1lRm9ybWF0dGVycyA9ICQpLAogICAgKEsuX19udW1iZXJGb3JtYXR0ZXJzID0gcSksCiAgICBfX0lOVExJRllfUFJPRF9ERVZUT09MU19fICYmIGluaXRJMThuRGV2VG9vbHMoSywgciwgSiksCiAgICBLCiAgKTsKfQpjb25zdCBjcmVhdGVSZXNvdXJjZXMgPSAoZSkgPT4gKHsgW2VdOiBjcmVhdGUoKSB9KTsKZnVuY3Rpb24gaGFuZGxlTWlzc2luZyhlLCB0LCByLCBuLCBpKSB7CiAgY29uc3QgeyBtaXNzaW5nOiBhLCBvbldhcm46IG8gfSA9IGU7CiAgaWYgKGEgIT09IG51bGwpIHsKICAgIGNvbnN0IGwgPSBhKGUsIHIsIHQsIGkpOwogICAgcmV0dXJuIGlzU3RyaW5nKGwpID8gbCA6IHQ7CiAgfSBlbHNlIHJldHVybiB0Owp9CmZ1bmN0aW9uIHVwZGF0ZUZhbGxiYWNrTG9jYWxlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZTsKICAobi5fX2xvY2FsZUNoYWluQ2FjaGUgPSBuZXcgTWFwKCkpLCBlLmxvY2FsZUZhbGxiYWNrZXIoZSwgciwgdCk7Cn0KZnVuY3Rpb24gaXNBbG1vc3RTYW1lTG9jYWxlKGUsIHQpIHsKICByZXR1cm4gZSA9PT0gdCA/ICExIDogZS5zcGxpdCgiLSIpWzBdID09PSB0LnNwbGl0KCItIilbMF07Cn0KZnVuY3Rpb24gaXNJbXBsaWNpdEZhbGxiYWNrKGUsIHQpIHsKICBjb25zdCByID0gdC5pbmRleE9mKGUpOwogIGlmIChyID09PSAtMSkgcmV0dXJuICExOwogIGZvciAobGV0IG4gPSByICsgMTsgbiA8IHQubGVuZ3RoOyBuKyspCiAgICBpZiAoaXNBbG1vc3RTYW1lTG9jYWxlKGUsIHRbbl0pKSByZXR1cm4gITA7CiAgcmV0dXJuICExOwp9CmZ1bmN0aW9uIGZvcm1hdCQxKGUpIHsKICByZXR1cm4gKHIpID0+IGZvcm1hdFBhcnRzKHIsIGUpOwp9CmZ1bmN0aW9uIGZvcm1hdFBhcnRzKGUsIHQpIHsKICBjb25zdCByID0gcmVzb2x2ZUJvZHkodCk7CiAgaWYgKHIgPT0gbnVsbCkgdGhyb3cgY3JlYXRlVW5oYW5kbGVOb2RlRXJyb3IoMCk7CiAgaWYgKHJlc29sdmVUeXBlKHIpID09PSAxKSB7CiAgICBjb25zdCBhID0gcmVzb2x2ZUNhc2VzKHIpOwogICAgcmV0dXJuIGUucGx1cmFsKGEucmVkdWNlKChvLCBsKSA9PiBbLi4ubywgZm9ybWF0TWVzc2FnZVBhcnRzKGUsIGwpXSwgW10pKTsKICB9IGVsc2UgcmV0dXJuIGZvcm1hdE1lc3NhZ2VQYXJ0cyhlLCByKTsKfQpjb25zdCBQUk9QU19CT0RZID0gWyJiIiwgImJvZHkiXTsKZnVuY3Rpb24gcmVzb2x2ZUJvZHkoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfQk9EWSk7Cn0KY29uc3QgUFJPUFNfQ0FTRVMgPSBbImMiLCAiY2FzZXMiXTsKZnVuY3Rpb24gcmVzb2x2ZUNhc2VzKGUpIHsKICByZXR1cm4gcmVzb2x2ZVByb3BzKGUsIFBST1BTX0NBU0VTLCBbXSk7Cn0KZnVuY3Rpb24gZm9ybWF0TWVzc2FnZVBhcnRzKGUsIHQpIHsKICBjb25zdCByID0gcmVzb2x2ZVN0YXRpYyh0KTsKICBpZiAociAhPSBudWxsKSByZXR1cm4gZS50eXBlID09PSAidGV4dCIgPyByIDogZS5ub3JtYWxpemUoW3JdKTsKICB7CiAgICBjb25zdCBuID0gcmVzb2x2ZUl0ZW1zKHQpLnJlZHVjZSgKICAgICAgKGksIGEpID0+IFsuLi5pLCBmb3JtYXRNZXNzYWdlUGFydChlLCBhKV0sCiAgICAgIFtdCiAgICApOwogICAgcmV0dXJuIGUubm9ybWFsaXplKG4pOwogIH0KfQpjb25zdCBQUk9QU19TVEFUSUMgPSBbInMiLCAic3RhdGljIl07CmZ1bmN0aW9uIHJlc29sdmVTdGF0aWMoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfU1RBVElDKTsKfQpjb25zdCBQUk9QU19JVEVNUyA9IFsiaSIsICJpdGVtcyJdOwpmdW5jdGlvbiByZXNvbHZlSXRlbXMoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfSVRFTVMsIFtdKTsKfQpmdW5jdGlvbiBmb3JtYXRNZXNzYWdlUGFydChlLCB0KSB7CiAgY29uc3QgciA9IHJlc29sdmVUeXBlKHQpOwogIHN3aXRjaCAocikgewogICAgY2FzZSAzOgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgY2FzZSA5OgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgY2FzZSA0OiB7CiAgICAgIGNvbnN0IG4gPSB0OwogICAgICBpZiAoaGFzT3duKG4sICJrIikgJiYgbi5rKSByZXR1cm4gZS5pbnRlcnBvbGF0ZShlLm5hbWVkKG4uaykpOwogICAgICBpZiAoaGFzT3duKG4sICJrZXkiKSAmJiBuLmtleSkgcmV0dXJuIGUuaW50ZXJwb2xhdGUoZS5uYW1lZChuLmtleSkpOwogICAgICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcihyKTsKICAgIH0KICAgIGNhc2UgNTogewogICAgICBjb25zdCBuID0gdDsKICAgICAgaWYgKGhhc093bihuLCAiaSIpICYmIGlzTnVtYmVyKG4uaSkpIHJldHVybiBlLmludGVycG9sYXRlKGUubGlzdChuLmkpKTsKICAgICAgaWYgKGhhc093bihuLCAiaW5kZXgiKSAmJiBpc051bWJlcihuLmluZGV4KSkKICAgICAgICByZXR1cm4gZS5pbnRlcnBvbGF0ZShlLmxpc3Qobi5pbmRleCkpOwogICAgICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcihyKTsKICAgIH0KICAgIGNhc2UgNjogewogICAgICBjb25zdCBuID0gdCwKICAgICAgICBpID0gcmVzb2x2ZUxpbmtlZE1vZGlmaWVyKG4pLAogICAgICAgIGEgPSByZXNvbHZlTGlua2VkS2V5KG4pOwogICAgICByZXR1cm4gZS5saW5rZWQoCiAgICAgICAgZm9ybWF0TWVzc2FnZVBhcnQoZSwgYSksCiAgICAgICAgaSA/IGZvcm1hdE1lc3NhZ2VQYXJ0KGUsIGkpIDogdm9pZCAwLAogICAgICAgIGUudHlwZQogICAgICApOwogICAgfQogICAgY2FzZSA3OgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgY2FzZSA4OgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgZGVmYXVsdDoKICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmhhbmRsZWQgbm9kZSBvbiBmb3JtYXQgbWVzc2FnZSBwYXJ0OiAke3J9YCk7CiAgfQp9CmNvbnN0IFBST1BTX1RZUEUgPSBbInQiLCAidHlwZSJdOwpmdW5jdGlvbiByZXNvbHZlVHlwZShlKSB7CiAgcmV0dXJuIHJlc29sdmVQcm9wcyhlLCBQUk9QU19UWVBFKTsKfQpjb25zdCBQUk9QU19WQUxVRSA9IFsidiIsICJ2YWx1ZSJdOwpmdW5jdGlvbiByZXNvbHZlVmFsdWUoZSwgdCkgewogIGNvbnN0IHIgPSByZXNvbHZlUHJvcHMoZSwgUFJPUFNfVkFMVUUpOwogIGlmIChyKSByZXR1cm4gcjsKICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcih0KTsKfQpjb25zdCBQUk9QU19NT0RJRklFUiA9IFsibSIsICJtb2RpZmllciJdOwpmdW5jdGlvbiByZXNvbHZlTGlua2VkTW9kaWZpZXIoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfTU9ESUZJRVIpOwp9CmNvbnN0IFBST1BTX0tFWSA9IFsiayIsICJrZXkiXTsKZnVuY3Rpb24gcmVzb2x2ZUxpbmtlZEtleShlKSB7CiAgY29uc3QgdCA9IHJlc29sdmVQcm9wcyhlLCBQUk9QU19LRVkpOwogIGlmICh0KSByZXR1cm4gdDsKICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcig2KTsKfQpmdW5jdGlvbiByZXNvbHZlUHJvcHMoZSwgdCwgcikgewogIGZvciAobGV0IG4gPSAwOyBuIDwgdC5sZW5ndGg7IG4rKykgewogICAgY29uc3QgaSA9IHRbbl07CiAgICBpZiAoaGFzT3duKGUsIGkpICYmIGVbaV0gIT0gbnVsbCkgcmV0dXJuIGVbaV07CiAgfQogIHJldHVybiByOwp9CmZ1bmN0aW9uIGNyZWF0ZVVuaGFuZGxlTm9kZUVycm9yKGUpIHsKICByZXR1cm4gbmV3IEVycm9yKGB1bmhhbmRsZWQgbm9kZSB0eXBlOiAke2V9YCk7Cn0KY29uc3QgZGVmYXVsdE9uQ2FjaGVLZXkgPSAoZSkgPT4gZTsKbGV0IGNvbXBpbGVDYWNoZSA9IGNyZWF0ZSgpOwpmdW5jdGlvbiBpc01lc3NhZ2VBU1QoZSkgewogIHJldHVybiAoCiAgICBpc09iamVjdCQxKGUpICYmCiAgICByZXNvbHZlVHlwZShlKSA9PT0gMCAmJgogICAgKGhhc093bihlLCAiYiIpIHx8IGhhc093bihlLCAiYm9keSIpKQogICk7Cn0KZnVuY3Rpb24gYmFzZUNvbXBpbGUoZSwgdCA9IHt9KSB7CiAgbGV0IHIgPSAhMTsKICBjb25zdCBuID0gdC5vbkVycm9yIHx8IGRlZmF1bHRPbkVycm9yOwogIHJldHVybiAoCiAgICAodC5vbkVycm9yID0gKGkpID0+IHsKICAgICAgKHIgPSAhMCksIG4oaSk7CiAgICB9KSwKICAgIHsgLi4uYmFzZUNvbXBpbGUkMShlLCB0KSwgZGV0ZWN0RXJyb3I6IHIgfQogICk7Cn0KZnVuY3Rpb24gY29tcGlsZShlLCB0KSB7CiAgaWYgKGlzU3RyaW5nKGUpKSB7CiAgICBpc0Jvb2xlYW4odC53YXJuSHRtbE1lc3NhZ2UpICYmIHQud2Fybkh0bWxNZXNzYWdlOwogICAgY29uc3QgbiA9ICh0Lm9uQ2FjaGVLZXkgfHwgZGVmYXVsdE9uQ2FjaGVLZXkpKGUpLAogICAgICBpID0gY29tcGlsZUNhY2hlW25dOwogICAgaWYgKGkpIHJldHVybiBpOwogICAgY29uc3QgeyBhc3Q6IGEsIGRldGVjdEVycm9yOiBvIH0gPSBiYXNlQ29tcGlsZShlLCB7CiAgICAgIC4uLnQsCiAgICAgIGxvY2F0aW9uOiAhMSwKICAgICAgaml0OiAhMCwKICAgIH0pLAogICAgICBsID0gZm9ybWF0JDEoYSk7CiAgICByZXR1cm4gbyA/IGwgOiAoY29tcGlsZUNhY2hlW25dID0gbCk7CiAgfSBlbHNlIHsKICAgIGNvbnN0IHIgPSBlLmNhY2hlS2V5OwogICAgaWYgKHIpIHsKICAgICAgY29uc3QgbiA9IGNvbXBpbGVDYWNoZVtyXTsKICAgICAgcmV0dXJuIG4gfHwgKGNvbXBpbGVDYWNoZVtyXSA9IGZvcm1hdCQxKGUpKTsKICAgIH0gZWxzZSByZXR1cm4gZm9ybWF0JDEoZSk7CiAgfQp9CmNvbnN0IE5PT1BfTUVTU0FHRV9GVU5DVElPTiA9ICgpID0+ICIiLAogIGlzTWVzc2FnZUZ1bmN0aW9uID0gKGUpID0+IGlzRnVuY3Rpb24oZSk7CmZ1bmN0aW9uIHRyYW5zbGF0ZShlLCAuLi50KSB7CiAgY29uc3QgewogICAgZmFsbGJhY2tGb3JtYXQ6IHIsCiAgICBwb3N0VHJhbnNsYXRpb246IG4sCiAgICB1bnJlc29sdmluZzogaSwKICAgIG1lc3NhZ2VDb21waWxlcjogYSwKICAgIGZhbGxiYWNrTG9jYWxlOiBvLAogICAgbWVzc2FnZXM6IGwsCiAgfSA9IGUsCiAgICBbYywgdV0gPSBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4udCksCiAgICBkID0gaXNCb29sZWFuKHUubWlzc2luZ1dhcm4pID8gdS5taXNzaW5nV2FybiA6IGUubWlzc2luZ1dhcm4sCiAgICBFID0gaXNCb29sZWFuKHUuZmFsbGJhY2tXYXJuKSA/IHUuZmFsbGJhY2tXYXJuIDogZS5mYWxsYmFja1dhcm4sCiAgICBiID0gaXNCb29sZWFuKHUuZXNjYXBlUGFyYW1ldGVyKSA/IHUuZXNjYXBlUGFyYW1ldGVyIDogZS5lc2NhcGVQYXJhbWV0ZXIsCiAgICBQID0gISF1LnJlc29sdmVkTWVzc2FnZSwKICAgIFIgPQogICAgICBpc1N0cmluZyh1LmRlZmF1bHQpIHx8IGlzQm9vbGVhbih1LmRlZmF1bHQpCiAgICAgICAgPyBpc0Jvb2xlYW4odS5kZWZhdWx0KQogICAgICAgICAgPyBhCiAgICAgICAgICAgID8gYwogICAgICAgICAgICA6ICgpID0+IGMKICAgICAgICAgIDogdS5kZWZhdWx0CiAgICAgICAgOiByCiAgICAgICAgICA/IGEKICAgICAgICAgICAgPyBjCiAgICAgICAgICAgIDogKCkgPT4gYwogICAgICAgICAgOiAiIiwKICAgIFQgPSByIHx8IFIgIT09ICIiLAogICAgTSA9IGdldExvY2FsZSQxKGUsIHUpOwogIGIgJiYgZXNjYXBlUGFyYW1zKHUpOwogIGxldCBbeCwgaywgU10gPSBQCiAgICA/IFtjLCBNLCBsW01dIHx8IGNyZWF0ZSgpXQogICAgOiByZXNvbHZlTWVzc2FnZUZvcm1hdChlLCBjLCBNLCBvLCBFLCBkKSwKICAgIEEgPSB4LAogICAgTyA9IGM7CiAgaWYgKAogICAgKCFQICYmCiAgICAgICEoaXNTdHJpbmcoQSkgfHwgaXNNZXNzYWdlQVNUKEEpIHx8IGlzTWVzc2FnZUZ1bmN0aW9uKEEpKSAmJgogICAgICBUICYmCiAgICAgICgoQSA9IFIpLCAoTyA9IEEpKSwKICAgICAgIVAgJiYKICAgICAgKCEoaXNTdHJpbmcoQSkgfHwgaXNNZXNzYWdlQVNUKEEpIHx8IGlzTWVzc2FnZUZ1bmN0aW9uKEEpKSB8fAogICAgICAgICFpc1N0cmluZyhrKSkpCiAgKQogICAgcmV0dXJuIGkgPyBOT1RfUkVPU0xWRUQgOiBjOwogIGxldCBGID0gITE7CiAgY29uc3QgRCA9ICgpID0+IHsKICAgIEYgPSAhMDsKICB9LAogICAgSCA9IGlzTWVzc2FnZUZ1bmN0aW9uKEEpID8gQSA6IGNvbXBpbGVNZXNzYWdlRm9ybWF0KGUsIGMsIGssIEEsIE8sIEQpOwogIGlmIChGKSByZXR1cm4gQTsKICBjb25zdCAkID0gZ2V0TWVzc2FnZUNvbnRleHRPcHRpb25zKGUsIGssIFMsIHUpLAogICAgcSA9IGNyZWF0ZU1lc3NhZ2VDb250ZXh0KCQpLAogICAgSiA9IGV2YWx1YXRlTWVzc2FnZShlLCBILCBxKSwKICAgIEsgPSBuID8gbihKLCBjKSA6IEo7CiAgaWYgKF9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18pIHsKICAgIGNvbnN0IGVlID0gewogICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksCiAgICAgIGtleTogaXNTdHJpbmcoYykgPyBjIDogaXNNZXNzYWdlRnVuY3Rpb24oQSkgPyBBLmtleSA6ICIiLAogICAgICBsb2NhbGU6IGsgfHwgKGlzTWVzc2FnZUZ1bmN0aW9uKEEpID8gQS5sb2NhbGUgOiAiIiksCiAgICAgIGZvcm1hdDogaXNTdHJpbmcoQSkgPyBBIDogaXNNZXNzYWdlRnVuY3Rpb24oQSkgPyBBLnNvdXJjZSA6ICIiLAogICAgICBtZXNzYWdlOiBLLAogICAgfTsKICAgIChlZS5tZXRhID0gYXNzaWduJDEoe30sIGUuX19tZXRhLCBnZXRBZGRpdGlvbmFsTWV0YSgpIHx8IHt9KSksCiAgICAgIHRyYW5zbGF0ZURldlRvb2xzKGVlKTsKICB9CiAgcmV0dXJuIEs7Cn0KZnVuY3Rpb24gZXNjYXBlUGFyYW1zKGUpIHsKICBpc0FycmF5JDEoZS5saXN0KQogICAgPyAoZS5saXN0ID0gZS5saXN0Lm1hcCgodCkgPT4gKGlzU3RyaW5nKHQpID8gZXNjYXBlSHRtbCh0KSA6IHQpKSkKICAgIDogaXNPYmplY3QkMShlLm5hbWVkKSAmJgogICAgT2JqZWN0LmtleXMoZS5uYW1lZCkuZm9yRWFjaCgodCkgPT4gewogICAgICBpc1N0cmluZyhlLm5hbWVkW3RdKSAmJiAoZS5uYW1lZFt0XSA9IGVzY2FwZUh0bWwoZS5uYW1lZFt0XSkpOwogICAgfSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZU1lc3NhZ2VGb3JtYXQoZSwgdCwgciwgbiwgaSwgYSkgewogIGNvbnN0IHsgbWVzc2FnZXM6IG8sIG9uV2FybjogbCwgbWVzc2FnZVJlc29sdmVyOiBjLCBsb2NhbGVGYWxsYmFja2VyOiB1IH0gPSBlLAogICAgZCA9IHUoZSwgbiwgcik7CiAgbGV0IEUgPSBjcmVhdGUoKSwKICAgIGIsCiAgICBQID0gbnVsbDsKICBjb25zdCBSID0gInRyYW5zbGF0ZSI7CiAgZm9yICgKICAgIGxldCBUID0gMDsKICAgIFQgPCBkLmxlbmd0aCAmJgogICAgKChiID0gZFtUXSksCiAgICAgIChFID0gb1tiXSB8fCBjcmVhdGUoKSksCiAgICAgIChQID0gYyhFLCB0KSkgPT09IG51bGwgJiYgKFAgPSBFW3RdKSwKICAgICAgIShpc1N0cmluZyhQKSB8fCBpc01lc3NhZ2VBU1QoUCkgfHwgaXNNZXNzYWdlRnVuY3Rpb24oUCkpKTsKICAgIFQrKwogICkKICAgIGlmICghaXNJbXBsaWNpdEZhbGxiYWNrKGIsIGQpKSB7CiAgICAgIGNvbnN0IE0gPSBoYW5kbGVNaXNzaW5nKGUsIHQsIGIsIGEsIFIpOwogICAgICBNICE9PSB0ICYmIChQID0gTSk7CiAgICB9CiAgcmV0dXJuIFtQLCBiLCBFXTsKfQpmdW5jdGlvbiBjb21waWxlTWVzc2FnZUZvcm1hdChlLCB0LCByLCBuLCBpLCBhKSB7CiAgY29uc3QgeyBtZXNzYWdlQ29tcGlsZXI6IG8sIHdhcm5IdG1sTWVzc2FnZTogbCB9ID0gZTsKICBpZiAoaXNNZXNzYWdlRnVuY3Rpb24obikpIHsKICAgIGNvbnN0IHUgPSBuOwogICAgcmV0dXJuICh1LmxvY2FsZSA9IHUubG9jYWxlIHx8IHIpLCAodS5rZXkgPSB1LmtleSB8fCB0KSwgdTsKICB9CiAgaWYgKG8gPT0gbnVsbCkgewogICAgY29uc3QgdSA9ICgpID0+IG47CiAgICByZXR1cm4gKHUubG9jYWxlID0gciksICh1LmtleSA9IHQpLCB1OwogIH0KICBjb25zdCBjID0gbyhuLCBnZXRDb21waWxlQ29udGV4dChlLCByLCBpLCBuLCBsLCBhKSk7CiAgcmV0dXJuIChjLmxvY2FsZSA9IHIpLCAoYy5rZXkgPSB0KSwgKGMuc291cmNlID0gbiksIGM7Cn0KZnVuY3Rpb24gZXZhbHVhdGVNZXNzYWdlKGUsIHQsIHIpIHsKICByZXR1cm4gdChyKTsKfQpmdW5jdGlvbiBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4uZSkgewogIGNvbnN0IFt0LCByLCBuXSA9IGUsCiAgICBpID0gY3JlYXRlKCk7CiAgaWYgKCFpc1N0cmluZyh0KSAmJiAhaXNOdW1iZXIodCkgJiYgIWlzTWVzc2FnZUZ1bmN0aW9uKHQpICYmICFpc01lc3NhZ2VBU1QodCkpCiAgICB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuSU5WQUxJRF9BUkdVTUVOVCk7CiAgY29uc3QgYSA9IGlzTnVtYmVyKHQpID8gU3RyaW5nKHQpIDogKGlzTWVzc2FnZUZ1bmN0aW9uKHQpLCB0KTsKICByZXR1cm4gKAogICAgaXNOdW1iZXIocikKICAgICAgPyAoaS5wbHVyYWwgPSByKQogICAgICA6IGlzU3RyaW5nKHIpCiAgICAgICAgPyAoaS5kZWZhdWx0ID0gcikKICAgICAgICA6IGlzUGxhaW5PYmplY3QkMShyKSAmJiAhaXNFbXB0eU9iamVjdChyKQogICAgICAgICAgPyAoaS5uYW1lZCA9IHIpCiAgICAgICAgICA6IGlzQXJyYXkkMShyKSAmJiAoaS5saXN0ID0gciksCiAgICBpc051bWJlcihuKQogICAgICA/IChpLnBsdXJhbCA9IG4pCiAgICAgIDogaXNTdHJpbmcobikKICAgICAgICA/IChpLmRlZmF1bHQgPSBuKQogICAgICAgIDogaXNQbGFpbk9iamVjdCQxKG4pICYmIGFzc2lnbiQxKGksIG4pLAogICAgW2EsIGldCiAgKTsKfQpmdW5jdGlvbiBnZXRDb21waWxlQ29udGV4dChlLCB0LCByLCBuLCBpLCBhKSB7CiAgcmV0dXJuIHsKICAgIGxvY2FsZTogdCwKICAgIGtleTogciwKICAgIHdhcm5IdG1sTWVzc2FnZTogaSwKICAgIG9uRXJyb3I6IChvKSA9PiB7CiAgICAgIHRocm93IChhICYmIGEobyksIG8pOwogICAgfSwKICAgIG9uQ2FjaGVLZXk6IChvKSA9PiBnZW5lcmF0ZUZvcm1hdENhY2hlS2V5KHQsIHIsIG8pLAogIH07Cn0KZnVuY3Rpb24gZ2V0TWVzc2FnZUNvbnRleHRPcHRpb25zKGUsIHQsIHIsIG4pIHsKICBjb25zdCB7CiAgICBtb2RpZmllcnM6IGksCiAgICBwbHVyYWxSdWxlczogYSwKICAgIG1lc3NhZ2VSZXNvbHZlcjogbywKICAgIGZhbGxiYWNrTG9jYWxlOiBsLAogICAgZmFsbGJhY2tXYXJuOiBjLAogICAgbWlzc2luZ1dhcm46IHUsCiAgICBmYWxsYmFja0NvbnRleHQ6IGQsCiAgfSA9IGUsCiAgICBiID0gewogICAgICBsb2NhbGU6IHQsCiAgICAgIG1vZGlmaWVyczogaSwKICAgICAgcGx1cmFsUnVsZXM6IGEsCiAgICAgIG1lc3NhZ2VzOiAoUCkgPT4gewogICAgICAgIGxldCBSID0gbyhyLCBQKTsKICAgICAgICBpZiAoUiA9PSBudWxsICYmIGQpIHsKICAgICAgICAgIGNvbnN0IFssICwgVF0gPSByZXNvbHZlTWVzc2FnZUZvcm1hdChkLCBQLCB0LCBsLCBjLCB1KTsKICAgICAgICAgIFIgPSBvKFQsIFApOwogICAgICAgIH0KICAgICAgICBpZiAoaXNTdHJpbmcoUikgfHwgaXNNZXNzYWdlQVNUKFIpKSB7CiAgICAgICAgICBsZXQgVCA9ICExOwogICAgICAgICAgY29uc3QgeCA9IGNvbXBpbGVNZXNzYWdlRm9ybWF0KGUsIFAsIHQsIFIsIFAsICgpID0+IHsKICAgICAgICAgICAgVCA9ICEwOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gVCA/IE5PT1BfTUVTU0FHRV9GVU5DVElPTiA6IHg7CiAgICAgICAgfSBlbHNlIHJldHVybiBpc01lc3NhZ2VGdW5jdGlvbihSKSA/IFIgOiBOT09QX01FU1NBR0VfRlVOQ1RJT047CiAgICAgIH0sCiAgICB9OwogIHJldHVybiAoCiAgICBlLnByb2Nlc3NvciAmJiAoYi5wcm9jZXNzb3IgPSBlLnByb2Nlc3NvciksCiAgICBuLmxpc3QgJiYgKGIubGlzdCA9IG4ubGlzdCksCiAgICBuLm5hbWVkICYmIChiLm5hbWVkID0gbi5uYW1lZCksCiAgICBpc051bWJlcihuLnBsdXJhbCkgJiYgKGIucGx1cmFsSW5kZXggPSBuLnBsdXJhbCksCiAgICBiCiAgKTsKfQpmdW5jdGlvbiBkYXRldGltZShlLCAuLi50KSB7CiAgY29uc3QgewogICAgZGF0ZXRpbWVGb3JtYXRzOiByLAogICAgdW5yZXNvbHZpbmc6IG4sCiAgICBmYWxsYmFja0xvY2FsZTogaSwKICAgIG9uV2FybjogYSwKICAgIGxvY2FsZUZhbGxiYWNrZXI6IG8sCiAgfSA9IGUsCiAgICB7IF9fZGF0ZXRpbWVGb3JtYXR0ZXJzOiBsIH0gPSBlLAogICAgW2MsIHUsIGQsIEVdID0gcGFyc2VEYXRlVGltZUFyZ3MoLi4udCksCiAgICBiID0gaXNCb29sZWFuKGQubWlzc2luZ1dhcm4pID8gZC5taXNzaW5nV2FybiA6IGUubWlzc2luZ1dhcm47CiAgaXNCb29sZWFuKGQuZmFsbGJhY2tXYXJuKSA/IGQuZmFsbGJhY2tXYXJuIDogZS5mYWxsYmFja1dhcm47CiAgY29uc3QgUCA9ICEhZC5wYXJ0LAogICAgUiA9IGdldExvY2FsZSQxKGUsIGQpLAogICAgVCA9IG8oZSwgaSwgUik7CiAgaWYgKCFpc1N0cmluZyhjKSB8fCBjID09PSAiIikgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFIsIEUpLmZvcm1hdCh1KTsKICBsZXQgTSA9IHt9LAogICAgeCwKICAgIGsgPSBudWxsOwogIGNvbnN0IFMgPSAiZGF0ZXRpbWUgZm9ybWF0IjsKICBmb3IgKAogICAgbGV0IEYgPSAwOwogICAgRiA8IFQubGVuZ3RoICYmCiAgICAoKHggPSBUW0ZdKSwgKE0gPSByW3hdIHx8IHt9KSwgKGsgPSBNW2NdKSwgIWlzUGxhaW5PYmplY3QkMShrKSk7CiAgICBGKysKICApCiAgICBoYW5kbGVNaXNzaW5nKGUsIGMsIHgsIGIsIFMpOwogIGlmICghaXNQbGFpbk9iamVjdCQxKGspIHx8ICFpc1N0cmluZyh4KSkgcmV0dXJuIG4gPyBOT1RfUkVPU0xWRUQgOiBjOwogIGxldCBBID0gYCR7eH1fXyR7Y31gOwogIGlzRW1wdHlPYmplY3QoRSkgfHwgKEEgPSBgJHtBfV9fJHtKU09OLnN0cmluZ2lmeShFKX1gKTsKICBsZXQgTyA9IGwuZ2V0KEEpOwogIHJldHVybiAoCiAgICBPIHx8ICgoTyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHgsIGFzc2lnbiQxKHt9LCBrLCBFKSkpLCBsLnNldChBLCBPKSksCiAgICBQID8gTy5mb3JtYXRUb1BhcnRzKHUpIDogTy5mb3JtYXQodSkKICApOwp9CmNvbnN0IERBVEVUSU1FX0ZPUk1BVF9PUFRJT05TX0tFWVMgPSBbCiAgImxvY2FsZU1hdGNoZXIiLAogICJ3ZWVrZGF5IiwKICAiZXJhIiwKICAieWVhciIsCiAgIm1vbnRoIiwKICAiZGF5IiwKICAiaG91ciIsCiAgIm1pbnV0ZSIsCiAgInNlY29uZCIsCiAgInRpbWVab25lTmFtZSIsCiAgImZvcm1hdE1hdGNoZXIiLAogICJob3VyMTIiLAogICJ0aW1lWm9uZSIsCiAgImRhdGVTdHlsZSIsCiAgInRpbWVTdHlsZSIsCiAgImNhbGVuZGFyIiwKICAiZGF5UGVyaW9kIiwKICAibnVtYmVyaW5nU3lzdGVtIiwKICAiaG91ckN5Y2xlIiwKICAiZnJhY3Rpb25hbFNlY29uZERpZ2l0cyIsCl07CmZ1bmN0aW9uIHBhcnNlRGF0ZVRpbWVBcmdzKC4uLmUpIHsKICBjb25zdCBbdCwgciwgbiwgaV0gPSBlLAogICAgYSA9IGNyZWF0ZSgpOwogIGxldCBvID0gY3JlYXRlKCksCiAgICBsOwogIGlmIChpc1N0cmluZyh0KSkgewogICAgY29uc3QgYyA9IHQubWF0Y2goLyhcZHs0fS1cZHsyfS1cZHsyfSkoVHxccyk/KC4qKS8pOwogICAgaWYgKCFjKSB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuSU5WQUxJRF9JU09fREFURV9BUkdVTUVOVCk7CiAgICBjb25zdCB1ID0gY1szXQogICAgICA/IGNbM10udHJpbSgpLnN0YXJ0c1dpdGgoIlQiKQogICAgICAgID8gYCR7Y1sxXS50cmltKCl9JHtjWzNdLnRyaW0oKX1gCiAgICAgICAgOiBgJHtjWzFdLnRyaW0oKX1UJHtjWzNdLnRyaW0oKX1gCiAgICAgIDogY1sxXS50cmltKCk7CiAgICBsID0gbmV3IERhdGUodSk7CiAgICB0cnkgewogICAgICBsLnRvSVNPU3RyaW5nKCk7CiAgICB9IGNhdGNoIHsKICAgICAgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLklOVkFMSURfSVNPX0RBVEVfQVJHVU1FTlQpOwogICAgfQogIH0gZWxzZSBpZiAoaXNEYXRlKHQpKSB7CiAgICBpZiAoaXNOYU4odC5nZXRUaW1lKCkpKQogICAgICB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuSU5WQUxJRF9EQVRFX0FSR1VNRU5UKTsKICAgIGwgPSB0OwogIH0gZWxzZSBpZiAoaXNOdW1iZXIodCkpIGwgPSB0OwogIGVsc2UgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLklOVkFMSURfQVJHVU1FTlQpOwogIHJldHVybiAoCiAgICBpc1N0cmluZyhyKQogICAgICA/IChhLmtleSA9IHIpCiAgICAgIDogaXNQbGFpbk9iamVjdCQxKHIpICYmCiAgICAgIE9iamVjdC5rZXlzKHIpLmZvckVhY2goKGMpID0+IHsKICAgICAgICBEQVRFVElNRV9GT1JNQVRfT1BUSU9OU19LRVlTLmluY2x1ZGVzKGMpCiAgICAgICAgICA/IChvW2NdID0gcltjXSkKICAgICAgICAgIDogKGFbY10gPSByW2NdKTsKICAgICAgfSksCiAgICBpc1N0cmluZyhuKSA/IChhLmxvY2FsZSA9IG4pIDogaXNQbGFpbk9iamVjdCQxKG4pICYmIChvID0gbiksCiAgICBpc1BsYWluT2JqZWN0JDEoaSkgJiYgKG8gPSBpKSwKICAgIFthLmtleSB8fCAiIiwgbCwgYSwgb10KICApOwp9CmZ1bmN0aW9uIGNsZWFyRGF0ZVRpbWVGb3JtYXQoZSwgdCwgcikgewogIGNvbnN0IG4gPSBlOwogIGZvciAoY29uc3QgaSBpbiByKSB7CiAgICBjb25zdCBhID0gYCR7dH1fXyR7aX1gOwogICAgbi5fX2RhdGV0aW1lRm9ybWF0dGVycy5oYXMoYSkgJiYgbi5fX2RhdGV0aW1lRm9ybWF0dGVycy5kZWxldGUoYSk7CiAgfQp9CmZ1bmN0aW9uIG51bWJlcihlLCAuLi50KSB7CiAgY29uc3QgewogICAgbnVtYmVyRm9ybWF0czogciwKICAgIHVucmVzb2x2aW5nOiBuLAogICAgZmFsbGJhY2tMb2NhbGU6IGksCiAgICBvbldhcm46IGEsCiAgICBsb2NhbGVGYWxsYmFja2VyOiBvLAogIH0gPSBlLAogICAgeyBfX251bWJlckZvcm1hdHRlcnM6IGwgfSA9IGUsCiAgICBbYywgdSwgZCwgRV0gPSBwYXJzZU51bWJlckFyZ3MoLi4udCksCiAgICBiID0gaXNCb29sZWFuKGQubWlzc2luZ1dhcm4pID8gZC5taXNzaW5nV2FybiA6IGUubWlzc2luZ1dhcm47CiAgaXNCb29sZWFuKGQuZmFsbGJhY2tXYXJuKSA/IGQuZmFsbGJhY2tXYXJuIDogZS5mYWxsYmFja1dhcm47CiAgY29uc3QgUCA9ICEhZC5wYXJ0LAogICAgUiA9IGdldExvY2FsZSQxKGUsIGQpLAogICAgVCA9IG8oZSwgaSwgUik7CiAgaWYgKCFpc1N0cmluZyhjKSB8fCBjID09PSAiIikgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChSLCBFKS5mb3JtYXQodSk7CiAgbGV0IE0gPSB7fSwKICAgIHgsCiAgICBrID0gbnVsbDsKICBjb25zdCBTID0gIm51bWJlciBmb3JtYXQiOwogIGZvciAoCiAgICBsZXQgRiA9IDA7CiAgICBGIDwgVC5sZW5ndGggJiYKICAgICgoeCA9IFRbRl0pLCAoTSA9IHJbeF0gfHwge30pLCAoayA9IE1bY10pLCAhaXNQbGFpbk9iamVjdCQxKGspKTsKICAgIEYrKwogICkKICAgIGhhbmRsZU1pc3NpbmcoZSwgYywgeCwgYiwgUyk7CiAgaWYgKCFpc1BsYWluT2JqZWN0JDEoaykgfHwgIWlzU3RyaW5nKHgpKSByZXR1cm4gbiA/IE5PVF9SRU9TTFZFRCA6IGM7CiAgbGV0IEEgPSBgJHt4fV9fJHtjfWA7CiAgaXNFbXB0eU9iamVjdChFKSB8fCAoQSA9IGAke0F9X18ke0pTT04uc3RyaW5naWZ5KEUpfWApOwogIGxldCBPID0gbC5nZXQoQSk7CiAgcmV0dXJuICgKICAgIE8gfHwgKChPID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KHgsIGFzc2lnbiQxKHt9LCBrLCBFKSkpLCBsLnNldChBLCBPKSksCiAgICBQID8gTy5mb3JtYXRUb1BhcnRzKHUpIDogTy5mb3JtYXQodSkKICApOwp9CmNvbnN0IE5VTUJFUl9GT1JNQVRfT1BUSU9OU19LRVlTID0gWwogICJsb2NhbGVNYXRjaGVyIiwKICAic3R5bGUiLAogICJjdXJyZW5jeSIsCiAgImN1cnJlbmN5RGlzcGxheSIsCiAgImN1cnJlbmN5U2lnbiIsCiAgInVzZUdyb3VwaW5nIiwKICAibWluaW11bUludGVnZXJEaWdpdHMiLAogICJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLAogICJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLAogICJtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMiLAogICJtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMiLAogICJjb21wYWN0RGlzcGxheSIsCiAgIm5vdGF0aW9uIiwKICAic2lnbkRpc3BsYXkiLAogICJ1bml0IiwKICAidW5pdERpc3BsYXkiLAogICJyb3VuZGluZ01vZGUiLAogICJyb3VuZGluZ1ByaW9yaXR5IiwKICAicm91bmRpbmdJbmNyZW1lbnQiLAogICJ0cmFpbGluZ1plcm9EaXNwbGF5IiwKXTsKZnVuY3Rpb24gcGFyc2VOdW1iZXJBcmdzKC4uLmUpIHsKICBjb25zdCBbdCwgciwgbiwgaV0gPSBlLAogICAgYSA9IGNyZWF0ZSgpOwogIGxldCBvID0gY3JlYXRlKCk7CiAgaWYgKCFpc051bWJlcih0KSkgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLklOVkFMSURfQVJHVU1FTlQpOwogIGNvbnN0IGwgPSB0OwogIHJldHVybiAoCiAgICBpc1N0cmluZyhyKQogICAgICA/IChhLmtleSA9IHIpCiAgICAgIDogaXNQbGFpbk9iamVjdCQxKHIpICYmCiAgICAgIE9iamVjdC5rZXlzKHIpLmZvckVhY2goKGMpID0+IHsKICAgICAgICBOVU1CRVJfRk9STUFUX09QVElPTlNfS0VZUy5pbmNsdWRlcyhjKQogICAgICAgICAgPyAob1tjXSA9IHJbY10pCiAgICAgICAgICA6IChhW2NdID0gcltjXSk7CiAgICAgIH0pLAogICAgaXNTdHJpbmcobikgPyAoYS5sb2NhbGUgPSBuKSA6IGlzUGxhaW5PYmplY3QkMShuKSAmJiAobyA9IG4pLAogICAgaXNQbGFpbk9iamVjdCQxKGkpICYmIChvID0gaSksCiAgICBbYS5rZXkgfHwgIiIsIGwsIGEsIG9dCiAgKTsKfQpmdW5jdGlvbiBjbGVhck51bWJlckZvcm1hdChlLCB0LCByKSB7CiAgY29uc3QgbiA9IGU7CiAgZm9yIChjb25zdCBpIGluIHIpIHsKICAgIGNvbnN0IGEgPSBgJHt0fV9fJHtpfWA7CiAgICBuLl9fbnVtYmVyRm9ybWF0dGVycy5oYXMoYSkgJiYgbi5fX251bWJlckZvcm1hdHRlcnMuZGVsZXRlKGEpOwogIH0KfQppbml0RmVhdHVyZUZsYWdzJDEoKTsKLyohCiAqIHZ1ZS1pMThuIHY5LjE0LjIKICogKGMpIDIwMjQga2F6dXlhIGthd2FndWNoaQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLyBjb25zdCBWRVJTSU9OID0gIjkuMTQuMiI7CmZ1bmN0aW9uIGluaXRGZWF0dXJlRmxhZ3MoKSB7CiAgdHlwZW9mIF9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18gIT0gImJvb2xlYW4iICYmCiAgICAoZ2V0R2xvYmFsVGhpcygpLl9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18gPSAhMSk7Cn0KY29uc3QgY29kZSQxID0gQ29yZVdhcm5Db2Rlcy5fX0VYVEVORF9QT0lOVF9fLAogIGluYyQxID0gaW5jcmVtZW50ZXIoY29kZSQxKTsKaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKTsKY29uc3QgY29kZSA9IENvcmVFcnJvckNvZGVzLl9fRVhURU5EX1BPSU5UX18sCiAgaW5jID0gaW5jcmVtZW50ZXIoY29kZSksCiAgSTE4bkVycm9yQ29kZXMgPSB7CiAgICBVTkVYUEVDVEVEX1JFVFVSTl9UWVBFOiBjb2RlLAogICAgSU5WQUxJRF9BUkdVTUVOVDogaW5jKCksCiAgICBNVVNUX0JFX0NBTExfU0VUVVBfVE9QOiBpbmMoKSwKICAgIE5PVF9JTlNUQUxMRUQ6IGluYygpLAogICAgTk9UX0FWQUlMQUJMRV9JTl9MRUdBQ1lfTU9ERTogaW5jKCksCiAgICBSRVFVSVJFRF9WQUxVRTogaW5jKCksCiAgICBJTlZBTElEX1ZBTFVFOiBpbmMoKSwKICAgIENBTk5PVF9TRVRVUF9WVUVfREVWVE9PTFNfUExVR0lOOiBpbmMoKSwKICAgIE5PVF9JTlNUQUxMRURfV0lUSF9QUk9WSURFOiBpbmMoKSwKICAgIFVORVhQRUNURURfRVJST1I6IGluYygpLAogICAgTk9UX0NPTVBBVElCTEVfTEVHQUNZX1ZVRV9JMThOOiBpbmMoKSwKICAgIGNvaW5kaW5hcnNfY29tX1ZVRV8yX09OTFk6IGluYygpLAogICAgTVVTVF9ERUZJTkVfSTE4Tl9PUFRJT05fSU5fQUxMT1dfQ09NUE9TSVRJT046IGluYygpLAogICAgTk9UX0FWQUlMQUJMRV9DT01QT1NJVElPTl9JTl9MRUdBQ1k6IGluYygpLAogICAgX19FWFRFTkRfUE9JTlRfXzogaW5jKCksCiAgfTsKZnVuY3Rpb24gY3JlYXRlSTE4bkVycm9yKGUsIC4uLnQpIHsKICByZXR1cm4gY3JlYXRlQ29tcGlsZUVycm9yKGUsIG51bGwsIHZvaWQgMCk7Cn0KY29uc3QgVHJhbnNsYXRlVk5vZGVTeW1ib2wgPSBtYWtlU3ltYm9sKCJfX3RyYW5zbGF0ZVZOb2RlIiksCiAgRGF0ZXRpbWVQYXJ0c1N5bWJvbCA9IG1ha2VTeW1ib2woIl9fZGF0ZXRpbWVQYXJ0cyIpLAogIE51bWJlclBhcnRzU3ltYm9sID0gbWFrZVN5bWJvbCgiX19udW1iZXJQYXJ0cyIpLAogIFNldFBsdXJhbFJ1bGVzU3ltYm9sID0gbWFrZVN5bWJvbCgiX19zZXRQbHVyYWxSdWxlcyIpLAogIEluZWpjdFdpdGhPcHRpb25TeW1ib2wgPSBtYWtlU3ltYm9sKCJfX2luamVjdFdpdGhPcHRpb24iKSwKICBEaXNwb3NlU3ltYm9sID0gbWFrZVN5bWJvbCgiX19kaXNwb3NlIik7CmZ1bmN0aW9uIGhhbmRsZUZsYXRKc29uKGUpIHsKICBpZiAoIWlzT2JqZWN0JDEoZSkpIHJldHVybiBlOwogIGZvciAoY29uc3QgdCBpbiBlKQogICAgaWYgKGhhc093bihlLCB0KSkKICAgICAgaWYgKCF0LmluY2x1ZGVzKCIuIikpIGlzT2JqZWN0JDEoZVt0XSkgJiYgaGFuZGxlRmxhdEpzb24oZVt0XSk7CiAgICAgIGVsc2UgewogICAgICAgIGNvbnN0IHIgPSB0LnNwbGl0KCIuIiksCiAgICAgICAgICBuID0gci5sZW5ndGggLSAxOwogICAgICAgIGxldCBpID0gZSwKICAgICAgICAgIGEgPSAhMTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG47IG8rKykgewogICAgICAgICAgaWYgKChyW29dIGluIGkgfHwgKGlbcltvXV0gPSBjcmVhdGUoKSksICFpc09iamVjdCQxKGlbcltvXV0pKSkgewogICAgICAgICAgICBhID0gITA7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaSA9IGlbcltvXV07CiAgICAgICAgfQogICAgICAgIGEgfHwgKChpW3Jbbl1dID0gZVt0XSksIGRlbGV0ZSBlW3RdKSwKICAgICAgICAgIGlzT2JqZWN0JDEoaVtyW25dXSkgJiYgaGFuZGxlRmxhdEpzb24oaVtyW25dXSk7CiAgICAgIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVNZXNzYWdlcyhlLCB0KSB7CiAgY29uc3QgeyBtZXNzYWdlczogciwgX19pMThuOiBuLCBtZXNzYWdlUmVzb2x2ZXI6IGksIGZsYXRKc29uOiBhIH0gPSB0LAogICAgbyA9IGlzUGxhaW5PYmplY3QkMShyKSA/IHIgOiBpc0FycmF5JDEobikgPyBjcmVhdGUoKSA6IHsgW2VdOiBjcmVhdGUoKSB9OwogIGlmICgKICAgIChpc0FycmF5JDEobikgJiYKICAgICAgbi5mb3JFYWNoKChsKSA9PiB7CiAgICAgICAgaWYgKCJsb2NhbGUiIGluIGwgJiYgInJlc291cmNlIiBpbiBsKSB7CiAgICAgICAgICBjb25zdCB7IGxvY2FsZTogYywgcmVzb3VyY2U6IHUgfSA9IGw7CiAgICAgICAgICBjID8gKChvW2NdID0gb1tjXSB8fCBjcmVhdGUoKSksIGRlZXBDb3B5KHUsIG9bY10pKSA6IGRlZXBDb3B5KHUsIG8pOwogICAgICAgIH0gZWxzZSBpc1N0cmluZyhsKSAmJiBkZWVwQ29weShKU09OLnBhcnNlKGwpLCBvKTsKICAgICAgfSksCiAgICAgIGkgPT0gbnVsbCAmJiBhKQogICkKICAgIGZvciAoY29uc3QgbCBpbiBvKSBoYXNPd24obywgbCkgJiYgaGFuZGxlRmxhdEpzb24ob1tsXSk7CiAgcmV0dXJuIG87Cn0KZnVuY3Rpb24gZ2V0Q29tcG9uZW50T3B0aW9ucyhlKSB7CiAgcmV0dXJuIGUudHlwZTsKfQpmdW5jdGlvbiBhZGp1c3RJMThuUmVzb3VyY2VzKGUsIHQsIHIpIHsKICBsZXQgbiA9IGlzT2JqZWN0JDEodC5tZXNzYWdlcykgPyB0Lm1lc3NhZ2VzIDogY3JlYXRlKCk7CiAgIl9faTE4bkdsb2JhbCIgaW4gciAmJgogICAgKG4gPSBnZXRMb2NhbGVNZXNzYWdlcyhlLmxvY2FsZS52YWx1ZSwgewogICAgICBtZXNzYWdlczogbiwKICAgICAgX19pMThuOiByLl9faTE4bkdsb2JhbCwKICAgIH0pKTsKICBjb25zdCBpID0gT2JqZWN0LmtleXMobik7CiAgaS5sZW5ndGggJiYKICAgIGkuZm9yRWFjaCgoYSkgPT4gewogICAgICBlLm1lcmdlTG9jYWxlTWVzc2FnZShhLCBuW2FdKTsKICAgIH0pOwogIHsKICAgIGlmIChpc09iamVjdCQxKHQuZGF0ZXRpbWVGb3JtYXRzKSkgewogICAgICBjb25zdCBhID0gT2JqZWN0LmtleXModC5kYXRldGltZUZvcm1hdHMpOwogICAgICBhLmxlbmd0aCAmJgogICAgICAgIGEuZm9yRWFjaCgobykgPT4gewogICAgICAgICAgZS5tZXJnZURhdGVUaW1lRm9ybWF0KG8sIHQuZGF0ZXRpbWVGb3JtYXRzW29dKTsKICAgICAgICB9KTsKICAgIH0KICAgIGlmIChpc09iamVjdCQxKHQubnVtYmVyRm9ybWF0cykpIHsKICAgICAgY29uc3QgYSA9IE9iamVjdC5rZXlzKHQubnVtYmVyRm9ybWF0cyk7CiAgICAgIGEubGVuZ3RoICYmCiAgICAgICAgYS5mb3JFYWNoKChvKSA9PiB7CiAgICAgICAgICBlLm1lcmdlTnVtYmVyRm9ybWF0KG8sIHQubnVtYmVyRm9ybWF0c1tvXSk7CiAgICAgICAgfSk7CiAgICB9CiAgfQp9CmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKGUpIHsKICByZXR1cm4gY3JlYXRlVk5vZGUoVGV4dCwgbnVsbCwgZSwgMCk7Cn0KY29uc3QgREVWVE9PTFNfTUVUQSA9ICJfX0lOVExJRllfTUVUQV9fIiwKICBOT09QX1JFVFVSTl9BUlJBWSA9ICgpID0+IFtdLAogIE5PT1BfUkVUVVJOX0ZBTFNFID0gKCkgPT4gITE7CmxldCBjb21wb3NlcklEID0gMDsKZnVuY3Rpb24gZGVmaW5lQ29yZU1pc3NpbmdIYW5kbGVyKGUpIHsKICByZXR1cm4gKHQsIHIsIG4sIGkpID0+IGUociwgbiwgZ2V0Q3VycmVudEluc3RhbmNlJDEoKSB8fCB2b2lkIDAsIGkpOwp9CmNvbnN0IGdldE1ldGFJbmZvID0gKCkgPT4gewogIGNvbnN0IGUgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGxldCB0ID0gbnVsbDsKICByZXR1cm4gZSAmJiAodCA9IGdldENvbXBvbmVudE9wdGlvbnMoZSlbREVWVE9PTFNfTUVUQV0pCiAgICA/IHsgW0RFVlRPT0xTX01FVEFdOiB0IH0KICAgIDogbnVsbDsKfTsKZnVuY3Rpb24gY3JlYXRlQ29tcG9zZXIoZSA9IHt9LCB0KSB7CiAgY29uc3QgeyBfX3Jvb3Q6IHIsIF9faW5qZWN0V2l0aE9wdGlvbjogbiB9ID0gZSwKICAgIGkgPSByID09PSB2b2lkIDAsCiAgICBhID0gZS5mbGF0SnNvbiwKICAgIG8gPSBpbkJyb3dzZXIkMSA/IHJlZiA6IHNoYWxsb3dSZWYsCiAgICBsID0gISFlLnRyYW5zbGF0ZUV4aXN0Q29tcGF0aWJsZTsKICBsZXQgYyA9IGlzQm9vbGVhbihlLmluaGVyaXRMb2NhbGUpID8gZS5pbmhlcml0TG9jYWxlIDogITA7CiAgY29uc3QgdSA9IG8oCiAgICByICYmIGMgPyByLmxvY2FsZS52YWx1ZSA6IGlzU3RyaW5nKGUubG9jYWxlKSA/IGUubG9jYWxlIDogREVGQVVMVF9MT0NBTEUKICApLAogICAgZCA9IG8oCiAgICAgIHIgJiYgYwogICAgICAgID8gci5mYWxsYmFja0xvY2FsZS52YWx1ZQogICAgICAgIDogaXNTdHJpbmcoZS5mYWxsYmFja0xvY2FsZSkgfHwKICAgICAgICAgIGlzQXJyYXkkMShlLmZhbGxiYWNrTG9jYWxlKSB8fAogICAgICAgICAgaXNQbGFpbk9iamVjdCQxKGUuZmFsbGJhY2tMb2NhbGUpIHx8CiAgICAgICAgICBlLmZhbGxiYWNrTG9jYWxlID09PSAhMQogICAgICAgICAgPyBlLmZhbGxiYWNrTG9jYWxlCiAgICAgICAgICA6IHUudmFsdWUKICAgICksCiAgICBFID0gbyhnZXRMb2NhbGVNZXNzYWdlcyh1LnZhbHVlLCBlKSksCiAgICBiID0gbygKICAgICAgaXNQbGFpbk9iamVjdCQxKGUuZGF0ZXRpbWVGb3JtYXRzKSA/IGUuZGF0ZXRpbWVGb3JtYXRzIDogeyBbdS52YWx1ZV06IHt9IH0KICAgICksCiAgICBQID0gbygKICAgICAgaXNQbGFpbk9iamVjdCQxKGUubnVtYmVyRm9ybWF0cykgPyBlLm51bWJlckZvcm1hdHMgOiB7IFt1LnZhbHVlXToge30gfQogICAgKTsKICBsZXQgUiA9IHIKICAgID8gci5taXNzaW5nV2FybgogICAgOiBpc0Jvb2xlYW4oZS5taXNzaW5nV2FybikgfHwgaXNSZWdFeHAoZS5taXNzaW5nV2FybikKICAgICAgPyBlLm1pc3NpbmdXYXJuCiAgICAgIDogITAsCiAgICBUID0gcgogICAgICA/IHIuZmFsbGJhY2tXYXJuCiAgICAgIDogaXNCb29sZWFuKGUuZmFsbGJhY2tXYXJuKSB8fCBpc1JlZ0V4cChlLmZhbGxiYWNrV2FybikKICAgICAgICA/IGUuZmFsbGJhY2tXYXJuCiAgICAgICAgOiAhMCwKICAgIE0gPSByID8gci5mYWxsYmFja1Jvb3QgOiBpc0Jvb2xlYW4oZS5mYWxsYmFja1Jvb3QpID8gZS5mYWxsYmFja1Jvb3QgOiAhMCwKICAgIHggPSAhIWUuZmFsbGJhY2tGb3JtYXQsCiAgICBrID0gaXNGdW5jdGlvbihlLm1pc3NpbmcpID8gZS5taXNzaW5nIDogbnVsbCwKICAgIFMgPSBpc0Z1bmN0aW9uKGUubWlzc2luZykgPyBkZWZpbmVDb3JlTWlzc2luZ0hhbmRsZXIoZS5taXNzaW5nKSA6IG51bGwsCiAgICBBID0gaXNGdW5jdGlvbihlLnBvc3RUcmFuc2xhdGlvbikgPyBlLnBvc3RUcmFuc2xhdGlvbiA6IG51bGwsCiAgICBPID0gcgogICAgICA/IHIud2Fybkh0bWxNZXNzYWdlCiAgICAgIDogaXNCb29sZWFuKGUud2Fybkh0bWxNZXNzYWdlKQogICAgICAgID8gZS53YXJuSHRtbE1lc3NhZ2UKICAgICAgICA6ICEwLAogICAgRiA9ICEhZS5lc2NhcGVQYXJhbWV0ZXI7CiAgY29uc3QgRCA9IHIgPyByLm1vZGlmaWVycyA6IGlzUGxhaW5PYmplY3QkMShlLm1vZGlmaWVycykgPyBlLm1vZGlmaWVycyA6IHt9OwogIGxldCBIID0gZS5wbHVyYWxSdWxlcyB8fCAociAmJiByLnBsdXJhbFJ1bGVzKSwKICAgICQ7CiAgKCQgPSAoKCkgPT4gewogICAgaSAmJiBzZXRGYWxsYmFja0NvbnRleHQobnVsbCk7CiAgICBjb25zdCBaID0gewogICAgICB2ZXJzaW9uOiBWRVJTSU9OLAogICAgICBsb2NhbGU6IHUudmFsdWUsCiAgICAgIGZhbGxiYWNrTG9jYWxlOiBkLnZhbHVlLAogICAgICBtZXNzYWdlczogRS52YWx1ZSwKICAgICAgbW9kaWZpZXJzOiBELAogICAgICBwbHVyYWxSdWxlczogSCwKICAgICAgbWlzc2luZzogUyA9PT0gbnVsbCA/IHZvaWQgMCA6IFMsCiAgICAgIG1pc3NpbmdXYXJuOiBSLAogICAgICBmYWxsYmFja1dhcm46IFQsCiAgICAgIGZhbGxiYWNrRm9ybWF0OiB4LAogICAgICB1bnJlc29sdmluZzogITAsCiAgICAgIHBvc3RUcmFuc2xhdGlvbjogQSA9PT0gbnVsbCA/IHZvaWQgMCA6IEEsCiAgICAgIHdhcm5IdG1sTWVzc2FnZTogTywKICAgICAgZXNjYXBlUGFyYW1ldGVyOiBGLAogICAgICBtZXNzYWdlUmVzb2x2ZXI6IGUubWVzc2FnZVJlc29sdmVyLAogICAgICBtZXNzYWdlQ29tcGlsZXI6IGUubWVzc2FnZUNvbXBpbGVyLAogICAgICBfX21ldGE6IHsgZnJhbWV3b3JrOiAidnVlIiB9LAogICAgfTsKICAgIChaLmRhdGV0aW1lRm9ybWF0cyA9IGIudmFsdWUpLAogICAgICAoWi5udW1iZXJGb3JtYXRzID0gUC52YWx1ZSksCiAgICAgIChaLl9fZGF0ZXRpbWVGb3JtYXR0ZXJzID0gaXNQbGFpbk9iamVjdCQxKCQpCiAgICAgICAgPyAkLl9fZGF0ZXRpbWVGb3JtYXR0ZXJzCiAgICAgICAgOiB2b2lkIDApLAogICAgICAoWi5fX251bWJlckZvcm1hdHRlcnMgPSBpc1BsYWluT2JqZWN0JDEoJCkKICAgICAgICA/ICQuX19udW1iZXJGb3JtYXR0ZXJzCiAgICAgICAgOiB2b2lkIDApOwogICAgY29uc3QgbmUgPSBjcmVhdGVDb3JlQ29udGV4dChaKTsKICAgIHJldHVybiBpICYmIHNldEZhbGxiYWNrQ29udGV4dChuZSksIG5lOwogIH0pKCkpLAogICAgdXBkYXRlRmFsbGJhY2tMb2NhbGUoJCwgdS52YWx1ZSwgZC52YWx1ZSk7CiAgZnVuY3Rpb24gSigpIHsKICAgIHJldHVybiBbdS52YWx1ZSwgZC52YWx1ZSwgRS52YWx1ZSwgYi52YWx1ZSwgUC52YWx1ZV07CiAgfQogIGNvbnN0IEsgPSBjb21wdXRlZCh7CiAgICBnZXQ6ICgpID0+IHUudmFsdWUsCiAgICBzZXQ6IChaKSA9PiB7CiAgICAgICh1LnZhbHVlID0gWiksICgkLmxvY2FsZSA9IHUudmFsdWUpOwogICAgfSwKICB9KSwKICAgIGVlID0gY29tcHV0ZWQoewogICAgICBnZXQ6ICgpID0+IGQudmFsdWUsCiAgICAgIHNldDogKFopID0+IHsKICAgICAgICAoZC52YWx1ZSA9IFopLAogICAgICAgICAgKCQuZmFsbGJhY2tMb2NhbGUgPSBkLnZhbHVlKSwKICAgICAgICAgIHVwZGF0ZUZhbGxiYWNrTG9jYWxlKCQsIHUudmFsdWUsIFopOwogICAgICB9LAogICAgfSksCiAgICBsZSA9IGNvbXB1dGVkKCgpID0+IEUudmFsdWUpLAogICAgcmUgPSBjb21wdXRlZCgoKSA9PiBiLnZhbHVlKSwKICAgIEIgPSBjb21wdXRlZCgoKSA9PiBQLnZhbHVlKTsKICBmdW5jdGlvbiB6KCkgewogICAgcmV0dXJuIGlzRnVuY3Rpb24oQSkgPyBBIDogbnVsbDsKICB9CiAgZnVuY3Rpb24gTihaKSB7CiAgICAoQSA9IFopLCAoJC5wb3N0VHJhbnNsYXRpb24gPSBaKTsKICB9CiAgZnVuY3Rpb24gVigpIHsKICAgIHJldHVybiBrOwogIH0KICBmdW5jdGlvbiBRKFopIHsKICAgIFogIT09IG51bGwgJiYgKFMgPSBkZWZpbmVDb3JlTWlzc2luZ0hhbmRsZXIoWikpLCAoayA9IFopLCAoJC5taXNzaW5nID0gUyk7CiAgfQogIGNvbnN0IFkgPSAoWiwgbmUsIF9lLCBiZSwgVGUsIEFlKSA9PiB7CiAgICBKKCk7CiAgICBsZXQgUmU7CiAgICB0cnkgewogICAgICBfX0lOVExJRllfUFJPRF9ERVZUT09MU19fLAogICAgICAgIGkgfHwgKCQuZmFsbGJhY2tDb250ZXh0ID0gciA/IGdldEZhbGxiYWNrQ29udGV4dCgpIDogdm9pZCAwKSwKICAgICAgICAoUmUgPSBaKCQpKTsKICAgIH0gZmluYWxseSB7CiAgICAgIF9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18sIGkgfHwgKCQuZmFsbGJhY2tDb250ZXh0ID0gdm9pZCAwKTsKICAgIH0KICAgIGlmICgKICAgICAgKF9lICE9PSAidHJhbnNsYXRlIGV4aXN0cyIgJiYgaXNOdW1iZXIoUmUpICYmIFJlID09PSBOT1RfUkVPU0xWRUQpIHx8CiAgICAgIChfZSA9PT0gInRyYW5zbGF0ZSBleGlzdHMiICYmICFSZSkKICAgICkgewogICAgICBjb25zdCBbd2UsIEllXSA9IG5lKCk7CiAgICAgIHJldHVybiByICYmIE0gPyBiZShyKSA6IFRlKHdlKTsKICAgIH0gZWxzZSB7CiAgICAgIGlmIChBZShSZSkpIHJldHVybiBSZTsKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLlVORVhQRUNURURfUkVUVVJOX1RZUEUpOwogICAgfQogIH07CiAgZnVuY3Rpb24gaGUoLi4uWikgewogICAgcmV0dXJuIFkoCiAgICAgIChuZSkgPT4gUmVmbGVjdC5hcHBseSh0cmFuc2xhdGUsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4uWiksCiAgICAgICJ0cmFuc2xhdGUiLAogICAgICAobmUpID0+IFJlZmxlY3QuYXBwbHkobmUudCwgbmUsIFsuLi5aXSksCiAgICAgIChuZSkgPT4gbmUsCiAgICAgIChuZSkgPT4gaXNTdHJpbmcobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiB5ZSguLi5aKSB7CiAgICBjb25zdCBbbmUsIF9lLCBiZV0gPSBaOwogICAgaWYgKGJlICYmICFpc09iamVjdCQxKGJlKSkKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLklOVkFMSURfQVJHVU1FTlQpOwogICAgcmV0dXJuIGhlKG5lLCBfZSwgYXNzaWduJDEoeyByZXNvbHZlZE1lc3NhZ2U6ICEwIH0sIGJlIHx8IHt9KSk7CiAgfQogIGZ1bmN0aW9uIHZlKC4uLlopIHsKICAgIHJldHVybiBZKAogICAgICAobmUpID0+IFJlZmxlY3QuYXBwbHkoZGF0ZXRpbWUsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZURhdGVUaW1lQXJncyguLi5aKSwKICAgICAgImRhdGV0aW1lIGZvcm1hdCIsCiAgICAgIChuZSkgPT4gUmVmbGVjdC5hcHBseShuZS5kLCBuZSwgWy4uLlpdKSwKICAgICAgKCkgPT4gTUlTU0lOR19SRVNPTFZFX1ZBTFVFLAogICAgICAobmUpID0+IGlzU3RyaW5nKG5lKQogICAgKTsKICB9CiAgZnVuY3Rpb24gUGUoLi4uWikgewogICAgcmV0dXJuIFkoCiAgICAgIChuZSkgPT4gUmVmbGVjdC5hcHBseShudW1iZXIsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZU51bWJlckFyZ3MoLi4uWiksCiAgICAgICJudW1iZXIgZm9ybWF0IiwKICAgICAgKG5lKSA9PiBSZWZsZWN0LmFwcGx5KG5lLm4sIG5lLCBbLi4uWl0pLAogICAgICAoKSA9PiBNSVNTSU5HX1JFU09MVkVfVkFMVUUsCiAgICAgIChuZSkgPT4gaXNTdHJpbmcobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiBDZShaKSB7CiAgICByZXR1cm4gWi5tYXAoKG5lKSA9PgogICAgICBpc1N0cmluZyhuZSkgfHwgaXNOdW1iZXIobmUpIHx8IGlzQm9vbGVhbihuZSkKICAgICAgICA/IGNyZWF0ZVRleHROb2RlKFN0cmluZyhuZSkpCiAgICAgICAgOiBuZQogICAgKTsKICB9CiAgY29uc3QgbWUgPSB7IG5vcm1hbGl6ZTogQ2UsIGludGVycG9sYXRlOiAoWikgPT4gWiwgdHlwZTogInZub2RlIiB9OwogIGZ1bmN0aW9uIHBlKC4uLlopIHsKICAgIHJldHVybiBZKAogICAgICAobmUpID0+IHsKICAgICAgICBsZXQgX2U7CiAgICAgICAgY29uc3QgYmUgPSBuZTsKICAgICAgICB0cnkgewogICAgICAgICAgKGJlLnByb2Nlc3NvciA9IG1lKSwKICAgICAgICAgICAgKF9lID0gUmVmbGVjdC5hcHBseSh0cmFuc2xhdGUsIG51bGwsIFtiZSwgLi4uWl0pKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgYmUucHJvY2Vzc29yID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIF9lOwogICAgICB9LAogICAgICAoKSA9PiBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4uWiksCiAgICAgICJ0cmFuc2xhdGUiLAogICAgICAobmUpID0+IG5lW1RyYW5zbGF0ZVZOb2RlU3ltYm9sXSguLi5aKSwKICAgICAgKG5lKSA9PiBbY3JlYXRlVGV4dE5vZGUobmUpXSwKICAgICAgKG5lKSA9PiBpc0FycmF5JDEobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiBnZSguLi5aKSB7CiAgICByZXR1cm4gWSgKICAgICAgKG5lKSA9PiBSZWZsZWN0LmFwcGx5KG51bWJlciwgbnVsbCwgW25lLCAuLi5aXSksCiAgICAgICgpID0+IHBhcnNlTnVtYmVyQXJncyguLi5aKSwKICAgICAgIm51bWJlciBmb3JtYXQiLAogICAgICAobmUpID0+IG5lW051bWJlclBhcnRzU3ltYm9sXSguLi5aKSwKICAgICAgTk9PUF9SRVRVUk5fQVJSQVksCiAgICAgIChuZSkgPT4gaXNTdHJpbmcobmUpIHx8IGlzQXJyYXkkMShuZSkKICAgICk7CiAgfQogIGZ1bmN0aW9uIEVlKC4uLlopIHsKICAgIHJldHVybiBZKAogICAgICAobmUpID0+IFJlZmxlY3QuYXBwbHkoZGF0ZXRpbWUsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZURhdGVUaW1lQXJncyguLi5aKSwKICAgICAgImRhdGV0aW1lIGZvcm1hdCIsCiAgICAgIChuZSkgPT4gbmVbRGF0ZXRpbWVQYXJ0c1N5bWJvbF0oLi4uWiksCiAgICAgIE5PT1BfUkVUVVJOX0FSUkFZLAogICAgICAobmUpID0+IGlzU3RyaW5nKG5lKSB8fCBpc0FycmF5JDEobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiBTZShaKSB7CiAgICAoSCA9IFopLCAoJC5wbHVyYWxSdWxlcyA9IEgpOwogIH0KICBmdW5jdGlvbiBXKFosIG5lKSB7CiAgICByZXR1cm4gWSgKICAgICAgKCkgPT4gewogICAgICAgIGlmICghWikgcmV0dXJuICExOwogICAgICAgIGNvbnN0IF9lID0gaXNTdHJpbmcobmUpID8gbmUgOiB1LnZhbHVlLAogICAgICAgICAgYmUgPSBhZShfZSksCiAgICAgICAgICBUZSA9ICQubWVzc2FnZVJlc29sdmVyKGJlLCBaKTsKICAgICAgICByZXR1cm4gbAogICAgICAgICAgPyBUZSAhPSBudWxsCiAgICAgICAgICA6IGlzTWVzc2FnZUFTVChUZSkgfHwgaXNNZXNzYWdlRnVuY3Rpb24oVGUpIHx8IGlzU3RyaW5nKFRlKTsKICAgICAgfSwKICAgICAgKCkgPT4gW1pdLAogICAgICAidHJhbnNsYXRlIGV4aXN0cyIsCiAgICAgIChfZSkgPT4gUmVmbGVjdC5hcHBseShfZS50ZSwgX2UsIFtaLCBuZV0pLAogICAgICBOT09QX1JFVFVSTl9GQUxTRSwKICAgICAgKF9lKSA9PiBpc0Jvb2xlYW4oX2UpCiAgICApOwogIH0KICBmdW5jdGlvbiBHKFopIHsKICAgIGxldCBuZSA9IG51bGw7CiAgICBjb25zdCBfZSA9IGZhbGxiYWNrV2l0aExvY2FsZUNoYWluKCQsIGQudmFsdWUsIHUudmFsdWUpOwogICAgZm9yIChsZXQgYmUgPSAwOyBiZSA8IF9lLmxlbmd0aDsgYmUrKykgewogICAgICBjb25zdCBUZSA9IEUudmFsdWVbX2VbYmVdXSB8fCB7fSwKICAgICAgICBBZSA9ICQubWVzc2FnZVJlc29sdmVyKFRlLCBaKTsKICAgICAgaWYgKEFlICE9IG51bGwpIHsKICAgICAgICBuZSA9IEFlOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gbmU7CiAgfQogIGZ1bmN0aW9uIHRlKFopIHsKICAgIGNvbnN0IG5lID0gRyhaKTsKICAgIHJldHVybiBuZSA/PyAociA/IHIudG0oWikgfHwge30gOiB7fSk7CiAgfQogIGZ1bmN0aW9uIGFlKFopIHsKICAgIHJldHVybiBFLnZhbHVlW1pdIHx8IHt9OwogIH0KICBmdW5jdGlvbiBzZShaLCBuZSkgewogICAgaWYgKGEpIHsKICAgICAgY29uc3QgX2UgPSB7IFtaXTogbmUgfTsKICAgICAgZm9yIChjb25zdCBiZSBpbiBfZSkgaGFzT3duKF9lLCBiZSkgJiYgaGFuZGxlRmxhdEpzb24oX2VbYmVdKTsKICAgICAgbmUgPSBfZVtaXTsKICAgIH0KICAgIChFLnZhbHVlW1pdID0gbmUpLCAoJC5tZXNzYWdlcyA9IEUudmFsdWUpOwogIH0KICBmdW5jdGlvbiBjZShaLCBuZSkgewogICAgRS52YWx1ZVtaXSA9IEUudmFsdWVbWl0gfHwge307CiAgICBjb25zdCBfZSA9IHsgW1pdOiBuZSB9OwogICAgaWYgKGEpIGZvciAoY29uc3QgYmUgaW4gX2UpIGhhc093bihfZSwgYmUpICYmIGhhbmRsZUZsYXRKc29uKF9lW2JlXSk7CiAgICAobmUgPSBfZVtaXSksIGRlZXBDb3B5KG5lLCBFLnZhbHVlW1pdKSwgKCQubWVzc2FnZXMgPSBFLnZhbHVlKTsKICB9CiAgZnVuY3Rpb24gZGUoWikgewogICAgcmV0dXJuIGIudmFsdWVbWl0gfHwge307CiAgfQogIGZ1bmN0aW9uIGooWiwgbmUpIHsKICAgIChiLnZhbHVlW1pdID0gbmUpLAogICAgICAoJC5kYXRldGltZUZvcm1hdHMgPSBiLnZhbHVlKSwKICAgICAgY2xlYXJEYXRlVGltZUZvcm1hdCgkLCBaLCBuZSk7CiAgfQogIGZ1bmN0aW9uIFUoWiwgbmUpIHsKICAgIChiLnZhbHVlW1pdID0gYXNzaWduJDEoYi52YWx1ZVtaXSB8fCB7fSwgbmUpKSwKICAgICAgKCQuZGF0ZXRpbWVGb3JtYXRzID0gYi52YWx1ZSksCiAgICAgIGNsZWFyRGF0ZVRpbWVGb3JtYXQoJCwgWiwgbmUpOwogIH0KICBmdW5jdGlvbiBYKFopIHsKICAgIHJldHVybiBQLnZhbHVlW1pdIHx8IHt9OwogIH0KICBmdW5jdGlvbiBvZShaLCBuZSkgewogICAgKFAudmFsdWVbWl0gPSBuZSksICgkLm51bWJlckZvcm1hdHMgPSBQLnZhbHVlKSwgY2xlYXJOdW1iZXJGb3JtYXQoJCwgWiwgbmUpOwogIH0KICBmdW5jdGlvbiBmZShaLCBuZSkgewogICAgKFAudmFsdWVbWl0gPSBhc3NpZ24kMShQLnZhbHVlW1pdIHx8IHt9LCBuZSkpLAogICAgICAoJC5udW1iZXJGb3JtYXRzID0gUC52YWx1ZSksCiAgICAgIGNsZWFyTnVtYmVyRm9ybWF0KCQsIFosIG5lKTsKICB9CiAgY29tcG9zZXJJRCsrLAogICAgciAmJgogICAgaW5Ccm93c2VyJDEgJiYKICAgICh3YXRjaChyLmxvY2FsZSwgKFopID0+IHsKICAgICAgYyAmJgogICAgICAgICgodS52YWx1ZSA9IFopLAogICAgICAgICAgKCQubG9jYWxlID0gWiksCiAgICAgICAgICB1cGRhdGVGYWxsYmFja0xvY2FsZSgkLCB1LnZhbHVlLCBkLnZhbHVlKSk7CiAgICB9KSwKICAgICAgd2F0Y2goci5mYWxsYmFja0xvY2FsZSwgKFopID0+IHsKICAgICAgICBjICYmCiAgICAgICAgICAoKGQudmFsdWUgPSBaKSwKICAgICAgICAgICAgKCQuZmFsbGJhY2tMb2NhbGUgPSBaKSwKICAgICAgICAgICAgdXBkYXRlRmFsbGJhY2tMb2NhbGUoJCwgdS52YWx1ZSwgZC52YWx1ZSkpOwogICAgICB9KSk7CiAgY29uc3QgdWUgPSB7CiAgICBpZDogY29tcG9zZXJJRCwKICAgIGxvY2FsZTogSywKICAgIGZhbGxiYWNrTG9jYWxlOiBlZSwKICAgIGdldCBpbmhlcml0TG9jYWxlKCkgewogICAgICByZXR1cm4gYzsKICAgIH0sCiAgICBzZXQgaW5oZXJpdExvY2FsZShaKSB7CiAgICAgIChjID0gWiksCiAgICAgICAgWiAmJgogICAgICAgIHIgJiYKICAgICAgICAoKHUudmFsdWUgPSByLmxvY2FsZS52YWx1ZSksCiAgICAgICAgICAoZC52YWx1ZSA9IHIuZmFsbGJhY2tMb2NhbGUudmFsdWUpLAogICAgICAgICAgdXBkYXRlRmFsbGJhY2tMb2NhbGUoJCwgdS52YWx1ZSwgZC52YWx1ZSkpOwogICAgfSwKICAgIGdldCBhdmFpbGFibGVMb2NhbGVzKCkgewogICAgICByZXR1cm4gT2JqZWN0LmtleXMoRS52YWx1ZSkuc29ydCgpOwogICAgfSwKICAgIG1lc3NhZ2VzOiBsZSwKICAgIGdldCBtb2RpZmllcnMoKSB7CiAgICAgIHJldHVybiBEOwogICAgfSwKICAgIGdldCBwbHVyYWxSdWxlcygpIHsKICAgICAgcmV0dXJuIEggfHwge307CiAgICB9LAogICAgZ2V0IGlzR2xvYmFsKCkgewogICAgICByZXR1cm4gaTsKICAgIH0sCiAgICBnZXQgbWlzc2luZ1dhcm4oKSB7CiAgICAgIHJldHVybiBSOwogICAgfSwKICAgIHNldCBtaXNzaW5nV2FybihaKSB7CiAgICAgIChSID0gWiksICgkLm1pc3NpbmdXYXJuID0gUik7CiAgICB9LAogICAgZ2V0IGZhbGxiYWNrV2FybigpIHsKICAgICAgcmV0dXJuIFQ7CiAgICB9LAogICAgc2V0IGZhbGxiYWNrV2FybihaKSB7CiAgICAgIChUID0gWiksICgkLmZhbGxiYWNrV2FybiA9IFQpOwogICAgfSwKICAgIGdldCBmYWxsYmFja1Jvb3QoKSB7CiAgICAgIHJldHVybiBNOwogICAgfSwKICAgIHNldCBmYWxsYmFja1Jvb3QoWikgewogICAgICBNID0gWjsKICAgIH0sCiAgICBnZXQgZmFsbGJhY2tGb3JtYXQoKSB7CiAgICAgIHJldHVybiB4OwogICAgfSwKICAgIHNldCBmYWxsYmFja0Zvcm1hdChaKSB7CiAgICAgICh4ID0gWiksICgkLmZhbGxiYWNrRm9ybWF0ID0geCk7CiAgICB9LAogICAgZ2V0IHdhcm5IdG1sTWVzc2FnZSgpIHsKICAgICAgcmV0dXJuIE87CiAgICB9LAogICAgc2V0IHdhcm5IdG1sTWVzc2FnZShaKSB7CiAgICAgIChPID0gWiksICgkLndhcm5IdG1sTWVzc2FnZSA9IFopOwogICAgfSwKICAgIGdldCBlc2NhcGVQYXJhbWV0ZXIoKSB7CiAgICAgIHJldHVybiBGOwogICAgfSwKICAgIHNldCBlc2NhcGVQYXJhbWV0ZXIoWikgewogICAgICAoRiA9IFopLCAoJC5lc2NhcGVQYXJhbWV0ZXIgPSBaKTsKICAgIH0sCiAgICB0OiBoZSwKICAgIGdldExvY2FsZU1lc3NhZ2U6IGFlLAogICAgc2V0TG9jYWxlTWVzc2FnZTogc2UsCiAgICBtZXJnZUxvY2FsZU1lc3NhZ2U6IGNlLAogICAgZ2V0UG9zdFRyYW5zbGF0aW9uSGFuZGxlcjogeiwKICAgIHNldFBvc3RUcmFuc2xhdGlvbkhhbmRsZXI6IE4sCiAgICBnZXRNaXNzaW5nSGFuZGxlcjogViwKICAgIHNldE1pc3NpbmdIYW5kbGVyOiBRLAogICAgW1NldFBsdXJhbFJ1bGVzU3ltYm9sXTogU2UsCiAgfTsKICByZXR1cm4gKAogICAgKHVlLmRhdGV0aW1lRm9ybWF0cyA9IHJlKSwKICAgICh1ZS5udW1iZXJGb3JtYXRzID0gQiksCiAgICAodWUucnQgPSB5ZSksCiAgICAodWUudGUgPSBXKSwKICAgICh1ZS50bSA9IHRlKSwKICAgICh1ZS5kID0gdmUpLAogICAgKHVlLm4gPSBQZSksCiAgICAodWUuZ2V0RGF0ZVRpbWVGb3JtYXQgPSBkZSksCiAgICAodWUuc2V0RGF0ZVRpbWVGb3JtYXQgPSBqKSwKICAgICh1ZS5tZXJnZURhdGVUaW1lRm9ybWF0ID0gVSksCiAgICAodWUuZ2V0TnVtYmVyRm9ybWF0ID0gWCksCiAgICAodWUuc2V0TnVtYmVyRm9ybWF0ID0gb2UpLAogICAgKHVlLm1lcmdlTnVtYmVyRm9ybWF0ID0gZmUpLAogICAgKHVlW0luZWpjdFdpdGhPcHRpb25TeW1ib2xdID0gbiksCiAgICAodWVbVHJhbnNsYXRlVk5vZGVTeW1ib2xdID0gcGUpLAogICAgKHVlW0RhdGV0aW1lUGFydHNTeW1ib2xdID0gRWUpLAogICAgKHVlW051bWJlclBhcnRzU3ltYm9sXSA9IGdlKSwKICAgIHVlCiAgKTsKfQpjb25zdCBiYXNlRm9ybWF0UHJvcHMgPSB7CiAgdGFnOiB7IHR5cGU6IFtTdHJpbmcsIE9iamVjdF0gfSwKICBsb2NhbGU6IHsgdHlwZTogU3RyaW5nIH0sCiAgc2NvcGU6IHsKICAgIHR5cGU6IFN0cmluZywKICAgIHZhbGlkYXRvcjogKGUpID0+IGUgPT09ICJwYXJlbnQiIHx8IGUgPT09ICJnbG9iYWwiLAogICAgZGVmYXVsdDogInBhcmVudCIsCiAgfSwKICBpMThuOiB7IHR5cGU6IE9iamVjdCB9LAp9OwpmdW5jdGlvbiBnZXRJbnRlcnBvbGF0ZUFyZyh7IHNsb3RzOiBlIH0sIHQpIHsKICByZXR1cm4gdC5sZW5ndGggPT09IDEgJiYgdFswXSA9PT0gImRlZmF1bHQiCiAgICA/IChlLmRlZmF1bHQgPyBlLmRlZmF1bHQoKSA6IFtdKS5yZWR1Y2UoCiAgICAgIChuLCBpKSA9PiBbLi4ubiwgLi4uKGkudHlwZSA9PT0gRnJhZ21lbnQgPyBpLmNoaWxkcmVuIDogW2ldKV0sCiAgICAgIFtdCiAgICApCiAgICA6IHQucmVkdWNlKChyLCBuKSA9PiB7CiAgICAgIGNvbnN0IGkgPSBlW25dOwogICAgICByZXR1cm4gaSAmJiAocltuXSA9IGkoKSksIHI7CiAgICB9LCBjcmVhdGUoKSk7Cn0KZnVuY3Rpb24gZ2V0RnJhZ21lbnRhYmxlVGFnKGUpIHsKICByZXR1cm4gRnJhZ21lbnQ7Cn0KY29uc3QgVHJhbnNsYXRpb25JbXBsID0gZGVmaW5lQ29tcG9uZW50JDEoewogIG5hbWU6ICJpMThuLXQiLAogIHByb3BzOiBhc3NpZ24kMSgKICAgIHsKICAgICAga2V5cGF0aDogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiAhMCB9LAogICAgICBwbHVyYWw6IHsKICAgICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLAogICAgICAgIHZhbGlkYXRvcjogKGUpID0+IGlzTnVtYmVyKGUpIHx8ICFpc05hTihlKSwKICAgICAgfSwKICAgIH0sCiAgICBiYXNlRm9ybWF0UHJvcHMKICApLAogIHNldHVwKGUsIHQpIHsKICAgIGNvbnN0IHsgc2xvdHM6IHIsIGF0dHJzOiBuIH0gPSB0LAogICAgICBpID0gZS5pMThuIHx8IHVzZUkxOG4oeyB1c2VTY29wZTogZS5zY29wZSwgX191c2VDb21wb25lbnQ6ICEwIH0pOwogICAgcmV0dXJuICgpID0+IHsKICAgICAgY29uc3QgYSA9IE9iamVjdC5rZXlzKHIpLmZpbHRlcigoRSkgPT4gRSAhPT0gIl8iKSwKICAgICAgICBvID0gY3JlYXRlKCk7CiAgICAgIGUubG9jYWxlICYmIChvLmxvY2FsZSA9IGUubG9jYWxlKSwKICAgICAgICBlLnBsdXJhbCAhPT0gdm9pZCAwICYmCiAgICAgICAgKG8ucGx1cmFsID0gaXNTdHJpbmcoZS5wbHVyYWwpID8gK2UucGx1cmFsIDogZS5wbHVyYWwpOwogICAgICBjb25zdCBsID0gZ2V0SW50ZXJwb2xhdGVBcmcodCwgYSksCiAgICAgICAgYyA9IGlbVHJhbnNsYXRlVk5vZGVTeW1ib2xdKGUua2V5cGF0aCwgbCwgbyksCiAgICAgICAgdSA9IGFzc2lnbiQxKGNyZWF0ZSgpLCBuKSwKICAgICAgICBkID0KICAgICAgICAgIGlzU3RyaW5nKGUudGFnKSB8fCBpc09iamVjdCQxKGUudGFnKSA/IGUudGFnIDogZ2V0RnJhZ21lbnRhYmxlVGFnKCk7CiAgICAgIHJldHVybiBoJDIoZCwgdSwgYyk7CiAgICB9OwogIH0sCn0pLAogIFRyYW5zbGF0aW9uID0gVHJhbnNsYXRpb25JbXBsOwpmdW5jdGlvbiBpc1ZOb2RlKGUpIHsKICByZXR1cm4gaXNBcnJheSQxKGUpICYmICFpc1N0cmluZyhlWzBdKTsKfQpmdW5jdGlvbiByZW5kZXJGb3JtYXR0ZXIoZSwgdCwgciwgbikgewogIGNvbnN0IHsgc2xvdHM6IGksIGF0dHJzOiBhIH0gPSB0OwogIHJldHVybiAoKSA9PiB7CiAgICBjb25zdCBvID0geyBwYXJ0OiAhMCB9OwogICAgbGV0IGwgPSBjcmVhdGUoKTsKICAgIGUubG9jYWxlICYmIChvLmxvY2FsZSA9IGUubG9jYWxlKSwKICAgICAgaXNTdHJpbmcoZS5mb3JtYXQpCiAgICAgICAgPyAoby5rZXkgPSBlLmZvcm1hdCkKICAgICAgICA6IGlzT2JqZWN0JDEoZS5mb3JtYXQpICYmCiAgICAgICAgKGlzU3RyaW5nKGUuZm9ybWF0LmtleSkgJiYgKG8ua2V5ID0gZS5mb3JtYXQua2V5KSwKICAgICAgICAgIChsID0gT2JqZWN0LmtleXMoZS5mb3JtYXQpLnJlZHVjZSgKICAgICAgICAgICAgKGIsIFApID0+CiAgICAgICAgICAgICAgci5pbmNsdWRlcyhQKSA/IGFzc2lnbiQxKGNyZWF0ZSgpLCBiLCB7IFtQXTogZS5mb3JtYXRbUF0gfSkgOiBiLAogICAgICAgICAgICBjcmVhdGUoKQogICAgICAgICAgKSkpOwogICAgY29uc3QgYyA9IG4oZS52YWx1ZSwgbywgbCk7CiAgICBsZXQgdSA9IFtvLmtleV07CiAgICBpc0FycmF5JDEoYykKICAgICAgPyAodSA9IGMubWFwKChiLCBQKSA9PiB7CiAgICAgICAgY29uc3QgUiA9IGlbYi50eXBlXSwKICAgICAgICAgIFQgPSBSID8gUih7IFtiLnR5cGVdOiBiLnZhbHVlLCBpbmRleDogUCwgcGFydHM6IGMgfSkgOiBbYi52YWx1ZV07CiAgICAgICAgcmV0dXJuIGlzVk5vZGUoVCkgJiYgKFRbMF0ua2V5ID0gYCR7Yi50eXBlfS0ke1B9YCksIFQ7CiAgICAgIH0pKQogICAgICA6IGlzU3RyaW5nKGMpICYmICh1ID0gW2NdKTsKICAgIGNvbnN0IGQgPSBhc3NpZ24kMShjcmVhdGUoKSwgYSksCiAgICAgIEUgPSBpc1N0cmluZyhlLnRhZykgfHwgaXNPYmplY3QkMShlLnRhZykgPyBlLnRhZyA6IGdldEZyYWdtZW50YWJsZVRhZygpOwogICAgcmV0dXJuIGgkMihFLCBkLCB1KTsKICB9Owp9CmNvbnN0IE51bWJlckZvcm1hdEltcGwgPSBkZWZpbmVDb21wb25lbnQkMSh7CiAgbmFtZTogImkxOG4tbiIsCiAgcHJvcHM6IGFzc2lnbiQxKAogICAgewogICAgICB2YWx1ZTogeyB0eXBlOiBOdW1iZXIsIHJlcXVpcmVkOiAhMCB9LAogICAgICBmb3JtYXQ6IHsgdHlwZTogW1N0cmluZywgT2JqZWN0XSB9LAogICAgfSwKICAgIGJhc2VGb3JtYXRQcm9wcwogICksCiAgc2V0dXAoZSwgdCkgewogICAgY29uc3QgciA9IGUuaTE4biB8fCB1c2VJMThuKHsgdXNlU2NvcGU6IGUuc2NvcGUsIF9fdXNlQ29tcG9uZW50OiAhMCB9KTsKICAgIHJldHVybiByZW5kZXJGb3JtYXR0ZXIoZSwgdCwgTlVNQkVSX0ZPUk1BVF9PUFRJT05TX0tFWVMsICguLi5uKSA9PgogICAgICByW051bWJlclBhcnRzU3ltYm9sXSguLi5uKQogICAgKTsKICB9LAp9KSwKICBOdW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXRJbXBsLAogIERhdGV0aW1lRm9ybWF0SW1wbCA9IGRlZmluZUNvbXBvbmVudCQxKHsKICAgIG5hbWU6ICJpMThuLWQiLAogICAgcHJvcHM6IGFzc2lnbiQxKAogICAgICB7CiAgICAgICAgdmFsdWU6IHsgdHlwZTogW051bWJlciwgRGF0ZV0sIHJlcXVpcmVkOiAhMCB9LAogICAgICAgIGZvcm1hdDogeyB0eXBlOiBbU3RyaW5nLCBPYmplY3RdIH0sCiAgICAgIH0sCiAgICAgIGJhc2VGb3JtYXRQcm9wcwogICAgKSwKICAgIHNldHVwKGUsIHQpIHsKICAgICAgY29uc3QgciA9IGUuaTE4biB8fCB1c2VJMThuKHsgdXNlU2NvcGU6IGUuc2NvcGUsIF9fdXNlQ29tcG9uZW50OiAhMCB9KTsKICAgICAgcmV0dXJuIHJlbmRlckZvcm1hdHRlcihlLCB0LCBEQVRFVElNRV9GT1JNQVRfT1BUSU9OU19LRVlTLCAoLi4ubikgPT4KICAgICAgICByW0RhdGV0aW1lUGFydHNTeW1ib2xdKC4uLm4pCiAgICAgICk7CiAgICB9LAogIH0pLAogIERhdGV0aW1lRm9ybWF0ID0gRGF0ZXRpbWVGb3JtYXRJbXBsOwpmdW5jdGlvbiBnZXRDb21wb3NlciQyKGUsIHQpIHsKICBjb25zdCByID0gZTsKICBpZiAoZS5tb2RlID09PSAiY29tcG9zaXRpb24iKSByZXR1cm4gci5fX2dldEluc3RhbmNlKHQpIHx8IGUuZ2xvYmFsOwogIHsKICAgIGNvbnN0IG4gPSByLl9fZ2V0SW5zdGFuY2UodCk7CiAgICByZXR1cm4gbiAhPSBudWxsID8gbi5fX2NvbXBvc2VyIDogZS5nbG9iYWwuX19jb21wb3NlcjsKICB9Cn0KZnVuY3Rpb24gdlREaXJlY3RpdmUoZSkgewogIGNvbnN0IHQgPSAobykgPT4gewogICAgY29uc3QgeyBpbnN0YW5jZTogbCwgbW9kaWZpZXJzOiBjLCB2YWx1ZTogdSB9ID0gbzsKICAgIGlmICghbCB8fCAhbC4kKSB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuVU5FWFBFQ1RFRF9FUlJPUik7CiAgICBjb25zdCBkID0gZ2V0Q29tcG9zZXIkMihlLCBsLiQpLAogICAgICBFID0gcGFyc2VWYWx1ZSh1KTsKICAgIHJldHVybiBbUmVmbGVjdC5hcHBseShkLnQsIGQsIFsuLi5tYWtlUGFyYW1zKEUpXSksIGRdOwogIH07CiAgcmV0dXJuIHsKICAgIGNyZWF0ZWQ6IChvLCBsKSA9PiB7CiAgICAgIGNvbnN0IFtjLCB1XSA9IHQobCk7CiAgICAgIGluQnJvd3NlciQxICYmCiAgICAgICAgZS5nbG9iYWwgPT09IHUgJiYKICAgICAgICAoby5fX2kxOG5XYXRjaGVyID0gd2F0Y2godS5sb2NhbGUsICgpID0+IHsKICAgICAgICAgIGwuaW5zdGFuY2UgJiYgbC5pbnN0YW5jZS4kZm9yY2VVcGRhdGUoKTsKICAgICAgICB9KSksCiAgICAgICAgKG8uX19jb21wb3NlciA9IHUpLAogICAgICAgIChvLnRleHRDb250ZW50ID0gYyk7CiAgICB9LAogICAgdW5tb3VudGVkOiAobykgPT4gewogICAgICBpbkJyb3dzZXIkMSAmJgogICAgICAgIG8uX19pMThuV2F0Y2hlciAmJgogICAgICAgIChvLl9faTE4bldhdGNoZXIoKSwgKG8uX19pMThuV2F0Y2hlciA9IHZvaWQgMCksIGRlbGV0ZSBvLl9faTE4bldhdGNoZXIpLAogICAgICAgIG8uX19jb21wb3NlciAmJiAoKG8uX19jb21wb3NlciA9IHZvaWQgMCksIGRlbGV0ZSBvLl9fY29tcG9zZXIpOwogICAgfSwKICAgIGJlZm9yZVVwZGF0ZTogKG8sIHsgdmFsdWU6IGwgfSkgPT4gewogICAgICBpZiAoby5fX2NvbXBvc2VyKSB7CiAgICAgICAgY29uc3QgYyA9IG8uX19jb21wb3NlciwKICAgICAgICAgIHUgPSBwYXJzZVZhbHVlKGwpOwogICAgICAgIG8udGV4dENvbnRlbnQgPSBSZWZsZWN0LmFwcGx5KGMudCwgYywgWy4uLm1ha2VQYXJhbXModSldKTsKICAgICAgfQogICAgfSwKICAgIGdldFNTUlByb3BzOiAobykgPT4gewogICAgICBjb25zdCBbbF0gPSB0KG8pOwogICAgICByZXR1cm4geyB0ZXh0Q29udGVudDogbCB9OwogICAgfSwKICB9Owp9CmZ1bmN0aW9uIHBhcnNlVmFsdWUoZSkgewogIGlmIChpc1N0cmluZyhlKSkgcmV0dXJuIHsgcGF0aDogZSB9OwogIGlmIChpc1BsYWluT2JqZWN0JDEoZSkpIHsKICAgIGlmICghKCJwYXRoIiBpbiBlKSkKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLlJFUVVJUkVEX1ZBTFVFLCAicGF0aCIpOwogICAgcmV0dXJuIGU7CiAgfSBlbHNlIHRocm93IGNyZWF0ZUkxOG5FcnJvcihJMThuRXJyb3JDb2Rlcy5JTlZBTElEX1ZBTFVFKTsKfQpmdW5jdGlvbiBtYWtlUGFyYW1zKGUpIHsKICBjb25zdCB7IHBhdGg6IHQsIGxvY2FsZTogciwgYXJnczogbiwgY2hvaWNlOiBpLCBwbHVyYWw6IGEgfSA9IGUsCiAgICBvID0ge30sCiAgICBsID0gbiB8fCB7fTsKICByZXR1cm4gKAogICAgaXNTdHJpbmcocikgJiYgKG8ubG9jYWxlID0gciksCiAgICBpc051bWJlcihpKSAmJiAoby5wbHVyYWwgPSBpKSwKICAgIGlzTnVtYmVyKGEpICYmIChvLnBsdXJhbCA9IGEpLAogICAgW3QsIGwsIG9dCiAgKTsKfQpmdW5jdGlvbiBhcHBseShlLCB0LCAuLi5yKSB7CiAgY29uc3QgbiA9IGlzUGxhaW5PYmplY3QkMShyWzBdKSA/IHJbMF0gOiB7fSwKICAgIGkgPSAhIW4udXNlSTE4bkNvbXBvbmVudE5hbWU7CiAgKGlzQm9vbGVhbihuLmdsb2JhbEluc3RhbGwpID8gbi5nbG9iYWxJbnN0YWxsIDogITApICYmCiAgICAoW2kgPyAiaTE4biIgOiBUcmFuc2xhdGlvbi5uYW1lLCAiSTE4blQiXS5mb3JFYWNoKChvKSA9PgogICAgICBlLmNvbXBvbmVudChvLCBUcmFuc2xhdGlvbikKICAgICksCiAgICAgIFtOdW1iZXJGb3JtYXQubmFtZSwgIkkxOG5OIl0uZm9yRWFjaCgobykgPT4gZS5jb21wb25lbnQobywgTnVtYmVyRm9ybWF0KSksCiAgICAgIFtEYXRldGltZUZvcm1hdC5uYW1lLCAiSTE4bkQiXS5mb3JFYWNoKChvKSA9PgogICAgICAgIGUuY29tcG9uZW50KG8sIERhdGV0aW1lRm9ybWF0KQogICAgICApKSwKICAgIGUuZGlyZWN0aXZlKCJ0IiwgdlREaXJlY3RpdmUodCkpOwp9CmNvbnN0IEkxOG5JbmplY3Rpb25LZXkgPSBtYWtlU3ltYm9sKCJnbG9iYWwtdnVlLWkxOG4iKTsKZnVuY3Rpb24gY3JlYXRlSTE4bihlID0ge30sIHQpIHsKICBjb25zdCByID0gaXNCb29sZWFuKGUuZ2xvYmFsSW5qZWN0aW9uKSA/IGUuZ2xvYmFsSW5qZWN0aW9uIDogITAsCiAgICBuID0gITAsCiAgICBpID0gbmV3IE1hcCgpLAogICAgW2EsIG9dID0gY3JlYXRlR2xvYmFsKGUpLAogICAgbCA9IG1ha2VTeW1ib2woIiIpOwogIGZ1bmN0aW9uIGMoRSkgewogICAgcmV0dXJuIGkuZ2V0KEUpIHx8IG51bGw7CiAgfQogIGZ1bmN0aW9uIHUoRSwgYikgewogICAgaS5zZXQoRSwgYik7CiAgfQogIGZ1bmN0aW9uIGQoRSkgewogICAgaS5kZWxldGUoRSk7CiAgfQogIHsKICAgIGNvbnN0IEUgPSB7CiAgICAgIGdldCBtb2RlKCkgewogICAgICAgIHJldHVybiAiY29tcG9zaXRpb24iOwogICAgICB9LAogICAgICBnZXQgYWxsb3dDb21wb3NpdGlvbigpIHsKICAgICAgICByZXR1cm4gbjsKICAgICAgfSwKICAgICAgYXN5bmMgaW5zdGFsbChiLCAuLi5QKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgKChiLl9fVlVFX0kxOE5fU1lNQk9MX18gPSBsKSwKICAgICAgICAgICAgYi5wcm92aWRlKGIuX19WVUVfSTE4Tl9TWU1CT0xfXywgRSksCiAgICAgICAgICAgIGlzUGxhaW5PYmplY3QkMShQWzBdKSkKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IE0gPSBQWzBdOwogICAgICAgICAgKEUuX19jb21wb3NlckV4dGVuZCA9IE0uX19jb21wb3NlckV4dGVuZCksCiAgICAgICAgICAgIChFLl9fdnVlSTE4bkV4dGVuZCA9IE0uX192dWVJMThuRXh0ZW5kKTsKICAgICAgICB9CiAgICAgICAgbGV0IFIgPSBudWxsOwogICAgICAgIHIgJiYgKFIgPSBpbmplY3RHbG9iYWxGaWVsZHMoYiwgRS5nbG9iYWwpKSwgYXBwbHkoYiwgRSwgLi4uUCk7CiAgICAgICAgY29uc3QgVCA9IGIudW5tb3VudDsKICAgICAgICBiLnVubW91bnQgPSAoKSA9PiB7CiAgICAgICAgICBSICYmIFIoKSwgRS5kaXNwb3NlKCksIFQoKTsKICAgICAgICB9OwogICAgICB9LAogICAgICBnZXQgZ2xvYmFsKCkgewogICAgICAgIHJldHVybiBvOwogICAgICB9LAogICAgICBkaXNwb3NlKCkgewogICAgICAgIGEuc3RvcCgpOwogICAgICB9LAogICAgICBfX2luc3RhbmNlczogaSwKICAgICAgX19nZXRJbnN0YW5jZTogYywKICAgICAgX19zZXRJbnN0YW5jZTogdSwKICAgICAgX19kZWxldGVJbnN0YW5jZTogZCwKICAgIH07CiAgICByZXR1cm4gRTsKICB9Cn0KZnVuY3Rpb24gdXNlSTE4bihlID0ge30pIHsKICBjb25zdCB0ID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKTsKICBpZiAodCA9PSBudWxsKSB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuTVVTVF9CRV9DQUxMX1NFVFVQX1RPUCk7CiAgaWYgKAogICAgIXQuaXNDRSAmJgogICAgdC5hcHBDb250ZXh0LmFwcCAhPSBudWxsICYmCiAgICAhdC5hcHBDb250ZXh0LmFwcC5fX1ZVRV9JMThOX1NZTUJPTF9fCiAgKQogICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLk5PVF9JTlNUQUxMRUQpOwogIGNvbnN0IHIgPSBnZXRJMThuSW5zdGFuY2UodCksCiAgICBuID0gZ2V0R2xvYmFsQ29tcG9zZXIociksCiAgICBpID0gZ2V0Q29tcG9uZW50T3B0aW9ucyh0KSwKICAgIGEgPSBnZXRTY29wZShlLCBpKTsKICBpZiAoYSA9PT0gImdsb2JhbCIpIHJldHVybiBhZGp1c3RJMThuUmVzb3VyY2VzKG4sIGUsIGkpLCBuOwogIGlmIChhID09PSAicGFyZW50IikgewogICAgbGV0IGMgPSBnZXRDb21wb3NlciQxKHIsIHQsIGUuX191c2VDb21wb25lbnQpOwogICAgcmV0dXJuIGMgPT0gbnVsbCAmJiAoYyA9IG4pLCBjOwogIH0KICBjb25zdCBvID0gcjsKICBsZXQgbCA9IG8uX19nZXRJbnN0YW5jZSh0KTsKICBpZiAobCA9PSBudWxsKSB7CiAgICBjb25zdCBjID0gYXNzaWduJDEoe30sIGUpOwogICAgIl9faTE4biIgaW4gaSAmJiAoYy5fX2kxOG4gPSBpLl9faTE4biksCiAgICAgIG4gJiYgKGMuX19yb290ID0gbiksCiAgICAgIChsID0gY3JlYXRlQ29tcG9zZXIoYykpLAogICAgICBvLl9fY29tcG9zZXJFeHRlbmQgJiYgKGxbRGlzcG9zZVN5bWJvbF0gPSBvLl9fY29tcG9zZXJFeHRlbmQobCkpLAogICAgICBzZXR1cExpZmVDeWNsZShvLCB0LCBsKSwKICAgICAgby5fX3NldEluc3RhbmNlKHQsIGwpOwogIH0KICByZXR1cm4gbDsKfQpmdW5jdGlvbiBjcmVhdGVHbG9iYWwoZSwgdCwgcikgewogIGNvbnN0IG4gPSBlZmZlY3RTY29wZSgpOwogIHsKICAgIGNvbnN0IGkgPSBuLnJ1bigoKSA9PiBjcmVhdGVDb21wb3NlcihlKSk7CiAgICBpZiAoaSA9PSBudWxsKSB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuVU5FWFBFQ1RFRF9FUlJPUik7CiAgICByZXR1cm4gW24sIGldOwogIH0KfQpmdW5jdGlvbiBnZXRJMThuSW5zdGFuY2UoZSkgewogIHsKICAgIGNvbnN0IHQgPSBpbmplY3QkMSgKICAgICAgZS5pc0NFID8gSTE4bkluamVjdGlvbktleSA6IGUuYXBwQ29udGV4dC5hcHAuX19WVUVfSTE4Tl9TWU1CT0xfXwogICAgKTsKICAgIGlmICghdCkKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKAogICAgICAgIGUuaXNDRQogICAgICAgICAgPyBJMThuRXJyb3JDb2Rlcy5OT1RfSU5TVEFMTEVEX1dJVEhfUFJPVklERQogICAgICAgICAgOiBJMThuRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VSUk9SCiAgICAgICk7CiAgICByZXR1cm4gdDsKICB9Cn0KZnVuY3Rpb24gZ2V0U2NvcGUoZSwgdCkgewogIHJldHVybiBpc0VtcHR5T2JqZWN0KGUpCiAgICA/ICJfX2kxOG4iIGluIHQKICAgICAgPyAibG9jYWwiCiAgICAgIDogImdsb2JhbCIKICAgIDogZS51c2VTY29wZQogICAgICA/IGUudXNlU2NvcGUKICAgICAgOiAibG9jYWwiOwp9CmZ1bmN0aW9uIGdldEdsb2JhbENvbXBvc2VyKGUpIHsKICByZXR1cm4gZS5tb2RlID09PSAiY29tcG9zaXRpb24iID8gZS5nbG9iYWwgOiBlLmdsb2JhbC5fX2NvbXBvc2VyOwp9CmZ1bmN0aW9uIGdldENvbXBvc2VyJDEoZSwgdCwgciA9ICExKSB7CiAgbGV0IG4gPSBudWxsOwogIGNvbnN0IGkgPSB0LnJvb3Q7CiAgbGV0IGEgPSBnZXRQYXJlbnRDb21wb25lbnRJbnN0YW5jZSh0LCByKTsKICBmb3IgKDsgYSAhPSBudWxsOykgewogICAgY29uc3QgbyA9IGU7CiAgICBpZiAoCiAgICAgIChlLm1vZGUgPT09ICJjb21wb3NpdGlvbiIgJiYgKG4gPSBvLl9fZ2V0SW5zdGFuY2UoYSkpLAogICAgICAgIG4gIT0gbnVsbCB8fCBpID09PSBhKQogICAgKQogICAgICBicmVhazsKICAgIGEgPSBhLnBhcmVudDsKICB9CiAgcmV0dXJuIG47Cn0KZnVuY3Rpb24gZ2V0UGFyZW50Q29tcG9uZW50SW5zdGFuY2UoZSwgdCA9ICExKSB7CiAgcmV0dXJuIGUgPT0gbnVsbCA/IG51bGwgOiAodCAmJiBlLnZub2RlLmN0eCkgfHwgZS5wYXJlbnQ7Cn0KZnVuY3Rpb24gc2V0dXBMaWZlQ3ljbGUoZSwgdCwgcikgewogIG9uTW91bnRlZCgoKSA9PiB7IH0sIHQpLAogICAgb25Vbm1vdW50ZWQoKCkgPT4gewogICAgICBjb25zdCBuID0gcjsKICAgICAgZS5fX2RlbGV0ZUluc3RhbmNlKHQpOwogICAgICBjb25zdCBpID0gbltEaXNwb3NlU3ltYm9sXTsKICAgICAgaSAmJiAoaSgpLCBkZWxldGUgbltEaXNwb3NlU3ltYm9sXSk7CiAgICB9LCB0KTsKfQpjb25zdCBnbG9iYWxFeHBvcnRQcm9wcyA9IFsibG9jYWxlIiwgImZhbGxiYWNrTG9jYWxlIiwgImF2YWlsYWJsZUxvY2FsZXMiXSwKICBnbG9iYWxFeHBvcnRNZXRob2RzID0gWyJ0IiwgInJ0IiwgImQiLCAibiIsICJ0bSIsICJ0ZSJdOwpmdW5jdGlvbiBpbmplY3RHbG9iYWxGaWVsZHMoZSwgdCkgewogIGNvbnN0IHIgPSBPYmplY3QuY3JlYXRlKG51bGwpOwogIHJldHVybiAoCiAgICBnbG9iYWxFeHBvcnRQcm9wcy5mb3JFYWNoKChpKSA9PiB7CiAgICAgIGNvbnN0IGEgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsIGkpOwogICAgICBpZiAoIWEpIHRocm93IGNyZWF0ZUkxOG5FcnJvcihJMThuRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VSUk9SKTsKICAgICAgY29uc3QgbyA9IGlzUmVmKGEudmFsdWUpCiAgICAgICAgPyB7CiAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgIHJldHVybiBhLnZhbHVlLnZhbHVlOwogICAgICAgICAgfSwKICAgICAgICAgIHNldChsKSB7CiAgICAgICAgICAgIGEudmFsdWUudmFsdWUgPSBsOwogICAgICAgICAgfSwKICAgICAgICB9CiAgICAgICAgOiB7CiAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgIHJldHVybiBhLmdldCAmJiBhLmdldCgpOwogICAgICAgICAgfSwKICAgICAgICB9OwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkociwgaSwgbyk7CiAgICB9KSwKICAgIChlLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRpMThuID0gciksCiAgICBnbG9iYWxFeHBvcnRNZXRob2RzLmZvckVhY2goKGkpID0+IHsKICAgICAgY29uc3QgYSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgaSk7CiAgICAgIGlmICghYSB8fCAhYS52YWx1ZSkKICAgICAgICB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuVU5FWFBFQ1RFRF9FUlJPUik7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLCBgJCR7aX1gLCBhKTsKICAgIH0pLAogICAgKCkgPT4gewogICAgICBkZWxldGUgZS5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kaTE4biwKICAgICAgICBnbG9iYWxFeHBvcnRNZXRob2RzLmZvckVhY2goKGkpID0+IHsKICAgICAgICAgIGRlbGV0ZSBlLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzW2AkJHtpfWBdOwogICAgICAgIH0pOwogICAgfQogICk7Cn0KaW5pdEZlYXR1cmVGbGFncygpOwpyZWdpc3Rlck1lc3NhZ2VDb21waWxlcihjb21waWxlKTsKcmVnaXN0ZXJNZXNzYWdlUmVzb2x2ZXIocmVzb2x2ZVZhbHVlJDEpOwpyZWdpc3RlckxvY2FsZUZhbGxiYWNrZXIoZmFsbGJhY2tXaXRoTG9jYWxlQ2hhaW4pOwppZiAoX19JTlRMSUZZX1BST0RfREVWVE9PTFNfXykgewogIGNvbnN0IGUgPSBnZXRHbG9iYWxUaGlzKCk7CiAgKGUuX19JTlRMSUZZX18gPSAhMCksIHNldERldlRvb2xzSG9vayhlLl9fSU5UTElGWV9ERVZUT09MU19HTE9CQUxfSE9PS19fKTsKfQpmdW5jdGlvbiBjcmVhdGVBZGFwdGVyKGUpIHsKICBlLmxvY2FsZSA9IHt9OwogIGNvbnN0IHQgPSB1c2VOdXh0QXBwKCksCiAgICByID0gdC4kaTE4biwKICAgIG4gPSByLmxvY2FsZSwKICAgIGkgPSByLmZhbGxiYWNrTG9jYWxlLAogICAgYSA9IHIubWVzc2FnZXMsCiAgICBvID0gcmVmKG4udmFsdWUpOwogIChlLmxvY2FsZS5ydGwgPSByLmxvY2FsZXMudmFsdWUucmVkdWNlKAogICAgKGwsIGMpID0+ICgobFtjLmNvZGVdID0gYy5kaXIgPT09ICJydGwiKSwgbCksCiAgICB7fQogICkpLAogICAgd2F0Y2goCiAgICAgIG8sCiAgICAgIChsLCBjKSA9PiB7CiAgICAgICAgYyAmJiByLnNldExvY2FsZShsKTsKICAgICAgfSwKICAgICAgeyBpbW1lZGlhdGU6ICEwLCBmbHVzaDogInBvc3QiIH0KICAgICksCiAgICB0Lmhvb2soImkxOG46bG9jYWxlU3dpdGNoZWQiLCAoeyBuZXdMb2NhbGU6IGwgfSkgPT4gewogICAgICBvLnZhbHVlID0gbDsKICAgIH0pLAogICAgKGUubG9jYWxlLmFkYXB0ZXIgPSB7CiAgICAgIG5hbWU6ICJudXh0LXZ1ZS1pMThuIiwKICAgICAgY3VycmVudDogbywKICAgICAgZmFsbGJhY2s6IGksCiAgICAgIG1lc3NhZ2VzOiBhLAogICAgICB0OiAobCwgLi4uYykgPT4gci50KGwsIGMpLAogICAgICBuOiByLm4sCiAgICAgIHByb3ZpZGU6IGNyZWF0ZVByb3ZpZGVGdW5jdGlvbiQxKHsKICAgICAgICBjdXJyZW50OiBvLAogICAgICAgIGZhbGxiYWNrOiBpLAogICAgICAgIG1lc3NhZ2VzOiBhLAogICAgICB9KSwKICAgIH0pOwp9CmZ1bmN0aW9uIGNyZWF0ZVByb3ZpZGVGdW5jdGlvbiQxKGUpIHsKICByZXR1cm4gKHQpID0+IHsKICAgIGNvbnN0IHIgPSByZWYodC5sb2NhbGUgPz8gZS5jdXJyZW50LnZhbHVlKSwKICAgICAgbiA9IHVzZUkxOG4oewogICAgICAgIGxvY2FsZTogci52YWx1ZSwKICAgICAgICBmYWxsYmFja0xvY2FsZTogZS5mYWxsYmFjay52YWx1ZSwKICAgICAgICBtZXNzYWdlczogZS5tZXNzYWdlcy52YWx1ZSwKICAgICAgICB1c2VTY29wZTogImxvY2FsIiwKICAgICAgICBsZWdhY3k6ICExLAogICAgICAgIGluaGVyaXRMb2NhbGU6ICExLAogICAgICB9KTsKICAgIHdhdGNoKAogICAgICByLAogICAgICAobywgbCkgPT4gewogICAgICAgIGwgJiYgbi5zZXRMb2NhbGUobyk7CiAgICAgIH0sCiAgICAgIHsgaW1tZWRpYXRlOiAhMCwgZmx1c2g6ICJwb3N0IiB9CiAgICApOwogICAgY29uc3QgaSA9IHdyYXBJMThuKG4udCksCiAgICAgIGEgPSB3cmFwSTE4bihuLm4pOwogICAgcmV0dXJuIHsKICAgICAgbmFtZTogIm51eHQtdnVlLWkxOG4iLAogICAgICBjdXJyZW50OiByLAogICAgICBmYWxsYmFjazogZS5mYWxsYmFjaywKICAgICAgbWVzc2FnZXM6IGUubWVzc2FnZXMsCiAgICAgIHQ6IGksCiAgICAgIG46IGEsCiAgICAgIHByb3ZpZGU6IGNyZWF0ZVByb3ZpZGVGdW5jdGlvbiQxKHsKICAgICAgICBjdXJyZW50OiByLAogICAgICAgIGZhbGxiYWNrOiBlLmZhbGxiYWNrLAogICAgICAgIG1lc3NhZ2VzOiBlLm1lc3NhZ2VzLAogICAgICB9KSwKICAgIH07CiAgfTsKfQpmdW5jdGlvbiB3cmFwSTE4bihlKSB7CiAgcmV0dXJuICguLi50KSA9PiBlKC4uLnQpOwp9CmNvbnN0IHZ1ZXRpZnlfaTE4bl9INHVVdmh5clUxID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgbmFtZTogInZ1ZXRpZnk6aTE4bjpwbHVnaW4iLAogIG9yZGVyOiAtMjUsCiAgZGVwZW5kc09uOiBbImkxOG46cGx1Z2luIl0sCiAgcGFyYWxsZWw6ICEwLAogIHNldHVwKGUpIHsKICAgIGUuaG9vaygidnVldGlmeTpjb25maWd1cmF0aW9uIiwgKHsgdnVldGlmeU9wdGlvbnM6IHQgfSkgPT4gewogICAgICBjcmVhdGVBZGFwdGVyKHQpOwogICAgfSk7CiAgfSwKfSksCiAgSU5fQlJPV1NFUiA9IHR5cGVvZiB3aW5kb3cgPCAidSIsCiAgU1VQUE9SVFNfSU5URVJTRUNUSU9OID0gSU5fQlJPV1NFUiAmJiAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiIGluIHdpbmRvdywKICBTVVBQT1JUU19UT1VDSCA9CiAgICBJTl9CUk9XU0VSICYmCiAgICAoIm9udG91Y2hzdGFydCIgaW4gd2luZG93IHx8IHdpbmRvdy5uYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPiAwKTsKZnVuY3Rpb24gX2NsYXNzUHJpdmF0ZUZpZWxkSW5pdFNwZWMoZSwgdCwgcikgewogIF9jaGVja1ByaXZhdGVSZWRlY2xhcmF0aW9uKGUsIHQpLCB0LnNldChlLCByKTsKfQpmdW5jdGlvbiBfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbihlLCB0KSB7CiAgaWYgKHQuaGFzKGUpKQogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0IgogICAgKTsKfQpmdW5jdGlvbiBfY2xhc3NQcml2YXRlRmllbGRTZXQoZSwgdCwgcikgewogIHJldHVybiBlLnNldChfYXNzZXJ0Q2xhc3NCcmFuZChlLCB0KSwgciksIHI7Cn0KZnVuY3Rpb24gX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KGUsIHQpIHsKICByZXR1cm4gZS5nZXQoX2Fzc2VydENsYXNzQnJhbmQoZSwgdCkpOwp9CmZ1bmN0aW9uIF9hc3NlcnRDbGFzc0JyYW5kKGUsIHQsIHIpIHsKICBpZiAodHlwZW9mIGUgPT0gImZ1bmN0aW9uIiA/IGUgPT09IHQgOiBlLmhhcyh0KSkKICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMyA/IHQgOiByOwogIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpOwp9CmZ1bmN0aW9uIGdldE5lc3RlZFZhbHVlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gdC5sZW5ndGggLSAxOwogIGlmIChuIDwgMCkgcmV0dXJuIGUgPT09IHZvaWQgMCA/IHIgOiBlOwogIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICBpZiAoZSA9PSBudWxsKSByZXR1cm4gcjsKICAgIGUgPSBlW3RbaV1dOwogIH0KICByZXR1cm4gZSA9PSBudWxsIHx8IGVbdFtuXV0gPT09IHZvaWQgMCA/IHIgOiBlW3Rbbl1dOwp9CmZ1bmN0aW9uIGRlZXBFcXVhbChlLCB0KSB7CiAgaWYgKGUgPT09IHQpIHJldHVybiAhMDsKICBpZiAoCiAgICAoZSBpbnN0YW5jZW9mIERhdGUgJiYgdCBpbnN0YW5jZW9mIERhdGUgJiYgZS5nZXRUaW1lKCkgIT09IHQuZ2V0VGltZSgpKSB8fAogICAgZSAhPT0gT2JqZWN0KGUpIHx8CiAgICB0ICE9PSBPYmplY3QodCkKICApCiAgICByZXR1cm4gITE7CiAgY29uc3QgciA9IE9iamVjdC5rZXlzKGUpOwogIHJldHVybiByLmxlbmd0aCAhPT0gT2JqZWN0LmtleXModCkubGVuZ3RoCiAgICA/ICExCiAgICA6IHIuZXZlcnkoKG4pID0+IGRlZXBFcXVhbChlW25dLCB0W25dKSk7Cn0KZnVuY3Rpb24gZ2V0T2JqZWN0VmFsdWVCeVBhdGgoZSwgdCwgcikgewogIHJldHVybiBlID09IG51bGwgfHwgIXQgfHwgdHlwZW9mIHQgIT0gInN0cmluZyIKICAgID8gcgogICAgOiBlW3RdICE9PSB2b2lkIDAKICAgICAgPyBlW3RdCiAgICAgIDogKCh0ID0gdC5yZXBsYWNlKC9cWyhcdyspXF0vZywgIi4kMSIpKSwKICAgICAgICAodCA9IHQucmVwbGFjZSgvXlwuLywgIiIpKSwKICAgICAgICBnZXROZXN0ZWRWYWx1ZShlLCB0LnNwbGl0KCIuIiksIHIpKTsKfQpmdW5jdGlvbiBnZXRQcm9wZXJ0eUZyb21JdGVtKGUsIHQsIHIpIHsKICBpZiAodCA9PT0gITApIHJldHVybiBlID09PSB2b2lkIDAgPyByIDogZTsKICBpZiAodCA9PSBudWxsIHx8IHR5cGVvZiB0ID09ICJib29sZWFuIikgcmV0dXJuIHI7CiAgaWYgKGUgIT09IE9iamVjdChlKSkgewogICAgaWYgKHR5cGVvZiB0ICE9ICJmdW5jdGlvbiIpIHJldHVybiByOwogICAgY29uc3QgaSA9IHQoZSwgcik7CiAgICByZXR1cm4gdHlwZW9mIGkgPiAidSIgPyByIDogaTsKICB9CiAgaWYgKHR5cGVvZiB0ID09ICJzdHJpbmciKSByZXR1cm4gZ2V0T2JqZWN0VmFsdWVCeVBhdGgoZSwgdCwgcik7CiAgaWYgKEFycmF5LmlzQXJyYXkodCkpIHJldHVybiBnZXROZXN0ZWRWYWx1ZShlLCB0LCByKTsKICBpZiAodHlwZW9mIHQgIT0gImZ1bmN0aW9uIikgcmV0dXJuIHI7CiAgY29uc3QgbiA9IHQoZSwgcik7CiAgcmV0dXJuIHR5cGVvZiBuID4gInUiID8gciA6IG47Cn0KZnVuY3Rpb24gY3JlYXRlUmFuZ2UoZSkgewogIGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMV0gOiAwOwogIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBlIH0sIChyLCBuKSA9PiB0ICsgbik7Cn0KZnVuY3Rpb24gY29udmVydFRvVW5pdChlKSB7CiAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1sxXSA6ICJweCI7CiAgaWYgKCEoZSA9PSBudWxsIHx8IGUgPT09ICIiKSkKICAgIHJldHVybiBpc05hTigrZSkgPyBTdHJpbmcoZSkgOiBpc0Zpbml0ZSgrZSkgPyBgJHtOdW1iZXIoZSl9JHt0fWAgOiB2b2lkIDA7Cn0KZnVuY3Rpb24gaXNPYmplY3QoZSkgewogIHJldHVybiBlICE9PSBudWxsICYmIHR5cGVvZiBlID09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KGUpOwp9CmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QoZSkgewogIGxldCB0OwogIHJldHVybiAoCiAgICBlICE9PSBudWxsICYmCiAgICB0eXBlb2YgZSA9PSAib2JqZWN0IiAmJgogICAgKCh0ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKSA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCB0ID09PSBudWxsKQogICk7Cn0KZnVuY3Rpb24gcmVmRWxlbWVudChlKSB7CiAgaWYgKGUgJiYgIiRlbCIgaW4gZSkgewogICAgY29uc3QgdCA9IGUuJGVsOwogICAgcmV0dXJuICh0ID09IG51bGwgPyB2b2lkIDAgOiB0Lm5vZGVUeXBlKSA9PT0gTm9kZS5URVhUX05PREUKICAgICAgPyB0Lm5leHRFbGVtZW50U2libGluZwogICAgICA6IHQ7CiAgfQogIHJldHVybiBlOwp9CmNvbnN0IGtleUNvZGVzID0gT2JqZWN0LmZyZWV6ZSh7CiAgZW50ZXI6IDEzLAogIHRhYjogOSwKICBkZWxldGU6IDQ2LAogIGVzYzogMjcsCiAgc3BhY2U6IDMyLAogIHVwOiAzOCwKICBkb3duOiA0MCwKICBsZWZ0OiAzNywKICByaWdodDogMzksCiAgZW5kOiAzNSwKICBob21lOiAzNiwKICBkZWw6IDQ2LAogIGJhY2tzcGFjZTogOCwKICBpbnNlcnQ6IDQ1LAogIHBhZ2V1cDogMzMsCiAgcGFnZWRvd246IDM0LAogIHNoaWZ0OiAxNiwKfSksCiAga2V5VmFsdWVzID0gT2JqZWN0LmZyZWV6ZSh7CiAgICBlbnRlcjogIkVudGVyIiwKICAgIHRhYjogIlRhYiIsCiAgICBkZWxldGU6ICJEZWxldGUiLAogICAgZXNjOiAiRXNjYXBlIiwKICAgIHNwYWNlOiAiU3BhY2UiLAogICAgdXA6ICJBcnJvd1VwIiwKICAgIGRvd246ICJBcnJvd0Rvd24iLAogICAgbGVmdDogIkFycm93TGVmdCIsCiAgICByaWdodDogIkFycm93UmlnaHQiLAogICAgZW5kOiAiRW5kIiwKICAgIGhvbWU6ICJIb21lIiwKICAgIGRlbDogIkRlbGV0ZSIsCiAgICBiYWNrc3BhY2U6ICJCYWNrc3BhY2UiLAogICAgaW5zZXJ0OiAiSW5zZXJ0IiwKICAgIHBhZ2V1cDogIlBhZ2VVcCIsCiAgICBwYWdlZG93bjogIlBhZ2VEb3duIiwKICAgIHNoaWZ0OiAiU2hpZnQiLAogIH0pOwpmdW5jdGlvbiBrZXlzKGUpIHsKICByZXR1cm4gT2JqZWN0LmtleXMoZSk7Cn0KZnVuY3Rpb24gaGFzKGUsIHQpIHsKICByZXR1cm4gdC5ldmVyeSgocikgPT4gZS5oYXNPd25Qcm9wZXJ0eShyKSk7Cn0KZnVuY3Rpb24gcGljayhlLCB0KSB7CiAgY29uc3QgciA9IHt9LAogICAgbiA9IG5ldyBTZXQoT2JqZWN0LmtleXMoZSkpOwogIGZvciAoY29uc3QgaSBvZiB0KSBuLmhhcyhpKSAmJiAocltpXSA9IGVbaV0pOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIHBpY2tXaXRoUmVzdChlLCB0LCByKSB7CiAgY29uc3QgbiA9IE9iamVjdC5jcmVhdGUobnVsbCksCiAgICBpID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKICBmb3IgKGNvbnN0IGEgaW4gZSkKICAgIHQuc29tZSgobykgPT4gKG8gaW5zdGFuY2VvZiBSZWdFeHAgPyBvLnRlc3QoYSkgOiBvID09PSBhKSkgJiYKICAgICAgIShyICE9IG51bGwgJiYgci5zb21lKChvKSA9PiBvID09PSBhKSkKICAgICAgPyAoblthXSA9IGVbYV0pCiAgICAgIDogKGlbYV0gPSBlW2FdKTsKICByZXR1cm4gW24sIGldOwp9CmZ1bmN0aW9uIG9taXQoZSwgdCkgewogIGNvbnN0IHIgPSB7IC4uLmUgfTsKICByZXR1cm4gdC5mb3JFYWNoKChuKSA9PiBkZWxldGUgcltuXSksIHI7Cn0KZnVuY3Rpb24gb25seShlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIHJldHVybiB0LmZvckVhY2goKG4pID0+IChyW25dID0gZVtuXSkpLCByOwp9CmNvbnN0IG9uUkUgPSAvXm9uW15hLXpdLywKICBpc09uID0gKGUpID0+IG9uUkUudGVzdChlKSwKICBidWJibGluZ0V2ZW50cyA9IFsKICAgICJvbkFmdGVyc2NyaXB0ZXhlY3V0ZSIsCiAgICAib25BbmltYXRpb25jYW5jZWwiLAogICAgIm9uQW5pbWF0aW9uZW5kIiwKICAgICJvbkFuaW1hdGlvbml0ZXJhdGlvbiIsCiAgICAib25BbmltYXRpb25zdGFydCIsCiAgICAib25BdXhjbGljayIsCiAgICAib25CZWZvcmVpbnB1dCIsCiAgICAib25CZWZvcmVzY3JpcHRleGVjdXRlIiwKICAgICJvbkNoYW5nZSIsCiAgICAib25DbGljayIsCiAgICAib25Db21wb3NpdGlvbmVuZCIsCiAgICAib25Db21wb3NpdGlvbnN0YXJ0IiwKICAgICJvbkNvbXBvc2l0aW9udXBkYXRlIiwKICAgICJvbkNvbnRleHRtZW51IiwKICAgICJvbkNvcHkiLAogICAgIm9uQ3V0IiwKICAgICJvbkRibGNsaWNrIiwKICAgICJvbkZvY3VzaW4iLAogICAgIm9uRm9jdXNvdXQiLAogICAgIm9uRnVsbHNjcmVlbmNoYW5nZSIsCiAgICAib25GdWxsc2NyZWVuZXJyb3IiLAogICAgIm9uR2VzdHVyZWNoYW5nZSIsCiAgICAib25HZXN0dXJlZW5kIiwKICAgICJvbkdlc3R1cmVzdGFydCIsCiAgICAib25Hb3Rwb2ludGVyY2FwdHVyZSIsCiAgICAib25JbnB1dCIsCiAgICAib25LZXlkb3duIiwKICAgICJvbktleXByZXNzIiwKICAgICJvbktleXVwIiwKICAgICJvbkxvc3Rwb2ludGVyY2FwdHVyZSIsCiAgICAib25Nb3VzZWRvd24iLAogICAgIm9uTW91c2Vtb3ZlIiwKICAgICJvbk1vdXNlb3V0IiwKICAgICJvbk1vdXNlb3ZlciIsCiAgICAib25Nb3VzZXVwIiwKICAgICJvbk1vdXNld2hlZWwiLAogICAgIm9uUGFzdGUiLAogICAgIm9uUG9pbnRlcmNhbmNlbCIsCiAgICAib25Qb2ludGVyZG93biIsCiAgICAib25Qb2ludGVyZW50ZXIiLAogICAgIm9uUG9pbnRlcmxlYXZlIiwKICAgICJvblBvaW50ZXJtb3ZlIiwKICAgICJvblBvaW50ZXJvdXQiLAogICAgIm9uUG9pbnRlcm92ZXIiLAogICAgIm9uUG9pbnRlcnVwIiwKICAgICJvblJlc2V0IiwKICAgICJvblNlbGVjdCIsCiAgICAib25TdWJtaXQiLAogICAgIm9uVG91Y2hjYW5jZWwiLAogICAgIm9uVG91Y2hlbmQiLAogICAgIm9uVG91Y2htb3ZlIiwKICAgICJvblRvdWNoc3RhcnQiLAogICAgIm9uVHJhbnNpdGlvbmNhbmNlbCIsCiAgICAib25UcmFuc2l0aW9uZW5kIiwKICAgICJvblRyYW5zaXRpb25ydW4iLAogICAgIm9uVHJhbnNpdGlvbnN0YXJ0IiwKICAgICJvbldoZWVsIiwKICBdOwpmdW5jdGlvbiBmaWx0ZXJJbnB1dEF0dHJzKGUpIHsKICBjb25zdCBbdCwgcl0gPSBwaWNrV2l0aFJlc3QoZSwgW29uUkVdKSwKICAgIG4gPSBvbWl0KHQsIGJ1YmJsaW5nRXZlbnRzKSwKICAgIFtpLCBhXSA9IHBpY2tXaXRoUmVzdChyLCBbImNsYXNzIiwgInN0eWxlIiwgImlkIiwgL15kYXRhLS9dKTsKICByZXR1cm4gT2JqZWN0LmFzc2lnbihpLCB0KSwgT2JqZWN0LmFzc2lnbihhLCBuKSwgW2ksIGFdOwp9CmZ1bmN0aW9uIHdyYXBJbkFycmF5KGUpIHsKICByZXR1cm4gZSA9PSBudWxsID8gW10gOiBBcnJheS5pc0FycmF5KGUpID8gZSA6IFtlXTsKfQpmdW5jdGlvbiBkZWJvdW5jZShlLCB0KSB7CiAgbGV0IHIgPSAwOwogIGNvbnN0IG4gPSBmdW5jdGlvbiAoKSB7CiAgICBmb3IgKHZhciBpID0gYXJndW1lbnRzLmxlbmd0aCwgYSA9IG5ldyBBcnJheShpKSwgbyA9IDA7IG8gPCBpOyBvKyspCiAgICAgIGFbb10gPSBhcmd1bWVudHNbb107CiAgICBjbGVhclRpbWVvdXQociksIChyID0gc2V0VGltZW91dCgoKSA9PiBlKC4uLmEpLCB1bnJlZih0KSkpOwogIH07CiAgcmV0dXJuICgKICAgIChuLmNsZWFyID0gKCkgPT4gewogICAgICBjbGVhclRpbWVvdXQocik7CiAgICB9KSwKICAgIChuLmltbWVkaWF0ZSA9IGUpLAogICAgbgogICk7Cn0KZnVuY3Rpb24gY2xhbXAoZSkgewogIGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMV0gOiAwLAogICAgciA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzJdIDogMTsKICByZXR1cm4gTWF0aC5tYXgodCwgTWF0aC5taW4ociwgZSkpOwp9CmZ1bmN0aW9uIHBhZEVuZChlLCB0KSB7CiAgbGV0IHIgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1syXSA6ICIwIjsKICByZXR1cm4gZSArIHIucmVwZWF0KE1hdGgubWF4KDAsIHQgLSBlLmxlbmd0aCkpOwp9CmZ1bmN0aW9uIHBhZFN0YXJ0KGUsIHQpIHsKICByZXR1cm4gKAogICAgKGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdm9pZCAwCiAgICAgID8gYXJndW1lbnRzWzJdCiAgICAgIDogIjAiCiAgICApLnJlcGVhdChNYXRoLm1heCgwLCB0IC0gZS5sZW5ndGgpKSArIGUKICApOwp9CmZ1bmN0aW9uIGNodW5rKGUpIHsKICBsZXQgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzFdIDogMTsKICBjb25zdCByID0gW107CiAgbGV0IG4gPSAwOwogIGZvciAoOyBuIDwgZS5sZW5ndGg7KSByLnB1c2goZS5zdWJzdHIobiwgdCkpLCAobiArPSB0KTsKICByZXR1cm4gcjsKfQpmdW5jdGlvbiBodW1hblJlYWRhYmxlRmlsZVNpemUoZSkgewogIGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMV0gOiAxZTM7CiAgaWYgKGUgPCB0KSByZXR1cm4gYCR7ZX0gQmA7CiAgY29uc3QgciA9IHQgPT09IDEwMjQgPyBbIktpIiwgIk1pIiwgIkdpIl0gOiBbImsiLCAiTSIsICJHIl07CiAgbGV0IG4gPSAtMTsKICBmb3IgKDsgTWF0aC5hYnMoZSkgPj0gdCAmJiBuIDwgci5sZW5ndGggLSAxOykgKGUgLz0gdCksICsrbjsKICByZXR1cm4gYCR7ZS50b0ZpeGVkKDEpfSAke3Jbbl19QmA7Cn0KZnVuY3Rpb24gbWVyZ2VEZWVwKCkgewogIGxldCBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMF0gOiB7fSwKICAgIHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1sxXSA6IHt9LAogICAgciA9IGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdm9pZCAwOwogIGNvbnN0IG4gPSB7fTsKICBmb3IgKGNvbnN0IGkgaW4gZSkgbltpXSA9IGVbaV07CiAgZm9yIChjb25zdCBpIGluIHQpIHsKICAgIGNvbnN0IGEgPSBlW2ldLAogICAgICBvID0gdFtpXTsKICAgIGlmIChpc1BsYWluT2JqZWN0KGEpICYmIGlzUGxhaW5PYmplY3QobykpIHsKICAgICAgbltpXSA9IG1lcmdlRGVlcChhLCBvLCByKTsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAociAmJiBBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkobykpIHsKICAgICAgbltpXSA9IHIoYSwgbyk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgbltpXSA9IG87CiAgfQogIHJldHVybiBuOwp9CmZ1bmN0aW9uIGZsYXR0ZW5GcmFnbWVudHMoZSkgewogIHJldHVybiBlCiAgICAubWFwKCh0KSA9PiAodC50eXBlID09PSBGcmFnbWVudCA/IGZsYXR0ZW5GcmFnbWVudHModC5jaGlsZHJlbikgOiB0KSkKICAgIC5mbGF0KCk7Cn0KZnVuY3Rpb24gdG9LZWJhYkNhc2UoKSB7CiAgbGV0IGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1swXSA6ICIiOwogIGlmICh0b0tlYmFiQ2FzZS5jYWNoZS5oYXMoZSkpIHJldHVybiB0b0tlYmFiQ2FzZS5jYWNoZS5nZXQoZSk7CiAgY29uc3QgdCA9IGUKICAgIC5yZXBsYWNlKC9bXmEtel0vZ2ksICItIikKICAgIC5yZXBsYWNlKC9cQihbQS1aXSkvZywgIi0kMSIpCiAgICAudG9Mb3dlckNhc2UoKTsKICByZXR1cm4gdG9LZWJhYkNhc2UuY2FjaGUuc2V0KGUsIHQpLCB0Owp9CnRvS2ViYWJDYXNlLmNhY2hlID0gbmV3IE1hcCgpOwpmdW5jdGlvbiBmaW5kQ2hpbGRyZW5XaXRoUHJvdmlkZShlLCB0KSB7CiAgaWYgKCF0IHx8IHR5cGVvZiB0ICE9ICJvYmplY3QiKSByZXR1cm4gW107CiAgaWYgKEFycmF5LmlzQXJyYXkodCkpCiAgICByZXR1cm4gdC5tYXAoKHIpID0+IGZpbmRDaGlsZHJlbldpdGhQcm92aWRlKGUsIHIpKS5mbGF0KDEpOwogIGlmICh0LnN1c3BlbnNlKSByZXR1cm4gZmluZENoaWxkcmVuV2l0aFByb3ZpZGUoZSwgdC5zc0NvbnRlbnQpOwogIGlmIChBcnJheS5pc0FycmF5KHQuY2hpbGRyZW4pKQogICAgcmV0dXJuIHQuY2hpbGRyZW4ubWFwKChyKSA9PiBmaW5kQ2hpbGRyZW5XaXRoUHJvdmlkZShlLCByKSkuZmxhdCgxKTsKICBpZiAodC5jb21wb25lbnQpIHsKICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQuY29tcG9uZW50LnByb3ZpZGVzKS5pbmNsdWRlcyhlKSkKICAgICAgcmV0dXJuIFt0LmNvbXBvbmVudF07CiAgICBpZiAodC5jb21wb25lbnQuc3ViVHJlZSkKICAgICAgcmV0dXJuIGZpbmRDaGlsZHJlbldpdGhQcm92aWRlKGUsIHQuY29tcG9uZW50LnN1YlRyZWUpLmZsYXQoMSk7CiAgfQogIHJldHVybiBbXTsKfQp2YXIgX2FyciA9IG5ldyBXZWFrTWFwKCksCiAgX3BvaW50ZXIgPSBuZXcgV2Vha01hcCgpOwpjbGFzcyBDaXJjdWxhckJ1ZmZlciB7CiAgY29uc3RydWN0b3IodCkgewogICAgX2NsYXNzUHJpdmF0ZUZpZWxkSW5pdFNwZWModGhpcywgX2FyciwgW10pLAogICAgICBfY2xhc3NQcml2YXRlRmllbGRJbml0U3BlYyh0aGlzLCBfcG9pbnRlciwgMCksCiAgICAgICh0aGlzLnNpemUgPSB0KTsKICB9CiAgcHVzaCh0KSB7CiAgICAoX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9hcnIsIHRoaXMpW19jbGFzc1ByaXZhdGVGaWVsZEdldChfcG9pbnRlciwgdGhpcyldID0KICAgICAgdCksCiAgICAgIF9jbGFzc1ByaXZhdGVGaWVsZFNldCgKICAgICAgICBfcG9pbnRlciwKICAgICAgICB0aGlzLAogICAgICAgIChfY2xhc3NQcml2YXRlRmllbGRHZXQoX3BvaW50ZXIsIHRoaXMpICsgMSkgJSB0aGlzLnNpemUKICAgICAgKTsKICB9CiAgdmFsdWVzKCkgewogICAgcmV0dXJuIF9jbGFzc1ByaXZhdGVGaWVsZEdldChfYXJyLCB0aGlzKQogICAgICAuc2xpY2UoX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9wb2ludGVyLCB0aGlzKSkKICAgICAgLmNvbmNhdCgKICAgICAgICBfY2xhc3NQcml2YXRlRmllbGRHZXQoX2FyciwgdGhpcykuc2xpY2UoCiAgICAgICAgICAwLAogICAgICAgICAgX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9wb2ludGVyLCB0aGlzKQogICAgICAgICkKICAgICAgKTsKICB9Cn0KZnVuY3Rpb24gZGVzdHJ1Y3RDb21wdXRlZChlKSB7CiAgY29uc3QgdCA9IHJlYWN0aXZlKHt9KSwKICAgIHIgPSBjb21wdXRlZChlKTsKICByZXR1cm4gKAogICAgd2F0Y2hFZmZlY3QoCiAgICAgICgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IG4gaW4gci52YWx1ZSkgdFtuXSA9IHIudmFsdWVbbl07CiAgICAgIH0sCiAgICAgIHsgZmx1c2g6ICJzeW5jIiB9CiAgICApLAogICAgdG9SZWZzKHQpCiAgKTsKfQpmdW5jdGlvbiBpbmNsdWRlcyhlLCB0KSB7CiAgcmV0dXJuIGUuaW5jbHVkZXModCk7Cn0KZnVuY3Rpb24gZXZlbnROYW1lKGUpIHsKICByZXR1cm4gZVsyXS50b0xvd2VyQ2FzZSgpICsgZS5zbGljZSgzKTsKfQpjb25zdCBFdmVudFByb3AgPSAoKSA9PiBbRnVuY3Rpb24sIEFycmF5XTsKZnVuY3Rpb24gaGFzRXZlbnQoZSwgdCkgewogIHJldHVybiAoCiAgICAodCA9ICJvbiIgKyBjYXBpdGFsaXplJDEodCkpLAogICAgISEoCiAgICAgIGVbdF0gfHwKICAgICAgZVtgJHt0fU9uY2VgXSB8fAogICAgICBlW2Ake3R9Q2FwdHVyZWBdIHx8CiAgICAgIGVbYCR7dH1PbmNlQ2FwdHVyZWBdIHx8CiAgICAgIGVbYCR7dH1DYXB0dXJlT25jZWBdCiAgICApCiAgKTsKfQpmdW5jdGlvbiBjYWxsRXZlbnQoZSkgewogIGZvciAoCiAgICB2YXIgdCA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBuZXcgQXJyYXkodCA+IDEgPyB0IC0gMSA6IDApLCBuID0gMTsKICAgIG4gPCB0OwogICAgbisrCiAgKQogICAgcltuIC0gMV0gPSBhcmd1bWVudHNbbl07CiAgaWYgKEFycmF5LmlzQXJyYXkoZSkpIGZvciAoY29uc3QgaSBvZiBlKSBpKC4uLnIpOwogIGVsc2UgdHlwZW9mIGUgPT0gImZ1bmN0aW9uIiAmJiBlKC4uLnIpOwp9CmZ1bmN0aW9uIGZvY3VzYWJsZUNoaWxkcmVuKGUpIHsKICBsZXQgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzFdIDogITA7CiAgY29uc3QgciA9IFsKICAgICJidXR0b24iLAogICAgIltocmVmXSIsCiAgICAnaW5wdXQ6bm90KFt0eXBlPSJoaWRkZW4iXSknLAogICAgInNlbGVjdCIsCiAgICAidGV4dGFyZWEiLAogICAgIlt0YWJpbmRleF0iLAogIF0KICAgIC5tYXAoKG4pID0+IGAke259JHt0ID8gJzpub3QoW3RhYmluZGV4PSItMSJdKScgOiAiIn06bm90KFtkaXNhYmxlZF0pYCkKICAgIC5qb2luKCIsICIpOwogIHJldHVybiBbLi4uZS5xdWVyeVNlbGVjdG9yQWxsKHIpXTsKfQpmdW5jdGlvbiBnZXROZXh0RWxlbWVudChlLCB0LCByKSB7CiAgbGV0IG4sCiAgICBpID0gZS5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpOwogIGNvbnN0IGEgPSB0ID09PSAibmV4dCIgPyAxIDogLTE7CiAgZG8gKGkgKz0gYSksIChuID0gZVtpXSk7CiAgd2hpbGUgKAogICAgKCFuIHx8IG4ub2Zmc2V0UGFyZW50ID09IG51bGwgfHwgISgociA9PSBudWxsID8gdm9pZCAwIDogcihuKSkgPz8gITApKSAmJgogICAgaSA8IGUubGVuZ3RoICYmCiAgICBpID49IDAKICApOwogIHJldHVybiBuOwp9CmZ1bmN0aW9uIGZvY3VzQ2hpbGQoZSwgdCkgewogIHZhciBuLCBpLCBhLCBvOwogIGNvbnN0IHIgPSBmb2N1c2FibGVDaGlsZHJlbihlKTsKICBpZiAoIXQpCiAgICAoZSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB8fCAhZS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkgJiYKICAgICAgKChuID0gclswXSkgPT0gbnVsbCB8fCBuLmZvY3VzKCkpOwogIGVsc2UgaWYgKHQgPT09ICJmaXJzdCIpIChpID0gclswXSkgPT0gbnVsbCB8fCBpLmZvY3VzKCk7CiAgZWxzZSBpZiAodCA9PT0gImxhc3QiKSAoYSA9IHIuYXQoLTEpKSA9PSBudWxsIHx8IGEuZm9jdXMoKTsKICBlbHNlIGlmICh0eXBlb2YgdCA9PSAibnVtYmVyIikgKG8gPSByW3RdKSA9PSBudWxsIHx8IG8uZm9jdXMoKTsKICBlbHNlIHsKICAgIGNvbnN0IGwgPSBnZXROZXh0RWxlbWVudChyLCB0KTsKICAgIGwgPyBsLmZvY3VzKCkgOiBmb2N1c0NoaWxkKGUsIHQgPT09ICJuZXh0IiA/ICJmaXJzdCIgOiAibGFzdCIpOwogIH0KfQpmdW5jdGlvbiBpc0VtcHR5KGUpIHsKICByZXR1cm4gZSA9PSBudWxsIHx8ICh0eXBlb2YgZSA9PSAic3RyaW5nIiAmJiBlLnRyaW0oKSA9PT0gIiIpOwp9CmZ1bmN0aW9uIG1hdGNoZXNTZWxlY3RvcihlLCB0KSB7CiAgaWYgKAogICAgISgKICAgICAgSU5fQlJPV1NFUiAmJgogICAgICB0eXBlb2YgQ1NTIDwgInUiICYmCiAgICAgIHR5cGVvZiBDU1Muc3VwcG9ydHMgPCAidSIgJiYKICAgICAgQ1NTLnN1cHBvcnRzKGBzZWxlY3Rvcigke3R9KWApCiAgICApCiAgKQogICAgcmV0dXJuIG51bGw7CiAgdHJ5IHsKICAgIHJldHVybiAhIWUgJiYgZS5tYXRjaGVzKHQpOwogIH0gY2F0Y2ggewogICAgcmV0dXJuIG51bGw7CiAgfQp9CmZ1bmN0aW9uIGVuc3VyZVZhbGlkVk5vZGUoZSkgewogIHJldHVybiBlLnNvbWUoKHQpID0+CiAgICBpc1ZOb2RlJDEodCkKICAgICAgPyB0LnR5cGUgPT09IENvbW1lbnQKICAgICAgICA/ICExCiAgICAgICAgOiB0LnR5cGUgIT09IEZyYWdtZW50IHx8IGVuc3VyZVZhbGlkVk5vZGUodC5jaGlsZHJlbikKICAgICAgOiAhMAogICkKICAgID8gZQogICAgOiBudWxsOwp9CmZ1bmN0aW9uIGRlZmVyKGUsIHQpIHsKICBpZiAoIUlOX0JST1dTRVIgfHwgZSA9PT0gMCkgcmV0dXJuIHQoKSwgKCkgPT4geyB9OwogIGNvbnN0IHIgPSB3aW5kb3cuc2V0VGltZW91dCh0LCBlKTsKICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dChyKTsKfQpmdW5jdGlvbiBpc0NsaWNrSW5zaWRlRWxlbWVudChlLCB0KSB7CiAgY29uc3QgciA9IGUuY2xpZW50WCwKICAgIG4gPSBlLmNsaWVudFksCiAgICBpID0gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwKICAgIGEgPSBpLmxlZnQsCiAgICBvID0gaS50b3AsCiAgICBsID0gaS5yaWdodCwKICAgIGMgPSBpLmJvdHRvbTsKICByZXR1cm4gciA+PSBhICYmIHIgPD0gbCAmJiBuID49IG8gJiYgbiA8PSBjOwp9CmZ1bmN0aW9uIHRlbXBsYXRlUmVmKCkgewogIGNvbnN0IGUgPSBzaGFsbG93UmVmKCksCiAgICB0ID0gKHIpID0+IHsKICAgICAgZS52YWx1ZSA9IHI7CiAgICB9OwogIHJldHVybiAoCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInZhbHVlIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiBlLnZhbHVlLAogICAgICBzZXQ6IChyKSA9PiAoZS52YWx1ZSA9IHIpLAogICAgfSksCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgImVsIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiByZWZFbGVtZW50KGUudmFsdWUpLAogICAgfSksCiAgICB0CiAgKTsKfQpmdW5jdGlvbiBjaGVja1ByaW50YWJsZShlKSB7CiAgY29uc3QgdCA9IGUua2V5Lmxlbmd0aCA9PT0gMSwKICAgIHIgPSAhZS5jdHJsS2V5ICYmICFlLm1ldGFLZXkgJiYgIWUuYWx0S2V5OwogIHJldHVybiB0ICYmIHI7Cn0KY29uc3QgbWFpblRSQyA9IDIuNCwKICBSY28gPSAwLjIxMjY3MjksCiAgR2NvID0gMC43MTUxNTIyLAogIEJjbyA9IDAuMDcyMTc1LAogIG5vcm1CRyA9IDAuNTUsCiAgbm9ybVRYVCA9IDAuNTgsCiAgcmV2VFhUID0gMC41NywKICByZXZCRyA9IDAuNjIsCiAgYmxrVGhycyA9IDAuMDMsCiAgYmxrQ2xtcCA9IDEuNDUsCiAgZGVsdGFZbWluID0gNWUtNCwKICBzY2FsZUJvVyA9IDEuMjUsCiAgc2NhbGVXb0IgPSAxLjI1LAogIGxvQ29uVGhyZXNoID0gMC4wNzgsCiAgbG9Db25GYWN0b3IgPSAxMi44MjA1MTI4MjA1MTI4MiwKICBsb0Nvbk9mZnNldCA9IDAuMDYsCiAgbG9DbGlwID0gMC4wMDE7CmZ1bmN0aW9uIEFQQ0Fjb250cmFzdChlLCB0KSB7CiAgY29uc3QgciA9IChlLnIgLyAyNTUpICoqIG1haW5UUkMsCiAgICBuID0gKGUuZyAvIDI1NSkgKiogbWFpblRSQywKICAgIGkgPSAoZS5iIC8gMjU1KSAqKiBtYWluVFJDLAogICAgYSA9ICh0LnIgLyAyNTUpICoqIG1haW5UUkMsCiAgICBvID0gKHQuZyAvIDI1NSkgKiogbWFpblRSQywKICAgIGwgPSAodC5iIC8gMjU1KSAqKiBtYWluVFJDOwogIGxldCBjID0gciAqIFJjbyArIG4gKiBHY28gKyBpICogQmNvLAogICAgdSA9IGEgKiBSY28gKyBvICogR2NvICsgbCAqIEJjbzsKICBpZiAoCiAgICAoYyA8PSBibGtUaHJzICYmIChjICs9IChibGtUaHJzIC0gYykgKiogYmxrQ2xtcCksCiAgICAgIHUgPD0gYmxrVGhycyAmJiAodSArPSAoYmxrVGhycyAtIHUpICoqIGJsa0NsbXApLAogICAgICBNYXRoLmFicyh1IC0gYykgPCBkZWx0YVltaW4pCiAgKQogICAgcmV0dXJuIDA7CiAgbGV0IGQ7CiAgaWYgKHUgPiBjKSB7CiAgICBjb25zdCBFID0gKHUgKiogbm9ybUJHIC0gYyAqKiBub3JtVFhUKSAqIHNjYWxlQm9XOwogICAgZCA9CiAgICAgIEUgPCBsb0NsaXAKICAgICAgICA/IDAKICAgICAgICA6IEUgPCBsb0NvblRocmVzaAogICAgICAgICAgPyBFIC0gRSAqIGxvQ29uRmFjdG9yICogbG9Db25PZmZzZXQKICAgICAgICAgIDogRSAtIGxvQ29uT2Zmc2V0OwogIH0gZWxzZSB7CiAgICBjb25zdCBFID0gKHUgKiogcmV2QkcgLSBjICoqIHJldlRYVCkgKiBzY2FsZVdvQjsKICAgIGQgPQogICAgICBFID4gLWxvQ2xpcAogICAgICAgID8gMAogICAgICAgIDogRSA+IC1sb0NvblRocmVzaAogICAgICAgICAgPyBFIC0gRSAqIGxvQ29uRmFjdG9yICogbG9Db25PZmZzZXQKICAgICAgICAgIDogRSArIGxvQ29uT2Zmc2V0OwogIH0KICByZXR1cm4gZCAqIDEwMDsKfQpmdW5jdGlvbiBjb25zb2xlV2FybihlKSB7IH0KZnVuY3Rpb24gY29uc29sZUVycm9yKGUpIHsgfQpmdW5jdGlvbiBkZXByZWNhdGUoZSwgdCkgewogIHQgPSBBcnJheS5pc0FycmF5KHQpCiAgICA/IHQKICAgICAgLnNsaWNlKDAsIC0xKQogICAgICAubWFwKChyKSA9PiBgJyR7cn0nYCkKICAgICAgLmpvaW4oIiwgIikgKyBgIG9yICcke3QuYXQoLTEpfSdgCiAgICA6IGAnJHt0fSdgOwp9CmNvbnN0IGRlbHRhID0gMC4yMDY4OTY1NTE3MjQxMzc5MywKICBjaWVsYWJGb3J3YXJkVHJhbnNmb3JtID0gKGUpID0+CiAgICBlID4gZGVsdGEgKiogMyA/IE1hdGguY2JydChlKSA6IGUgLyAoMyAqIGRlbHRhICoqIDIpICsgNCAvIDI5LAogIGNpZWxhYlJldmVyc2VUcmFuc2Zvcm0gPSAoZSkgPT4KICAgIGUgPiBkZWx0YSA/IGUgKiogMyA6IDMgKiBkZWx0YSAqKiAyICogKGUgLSA0IC8gMjkpOwpmdW5jdGlvbiBmcm9tWFlaJDEoZSkgewogIGNvbnN0IHQgPSBjaWVsYWJGb3J3YXJkVHJhbnNmb3JtLAogICAgciA9IHQoZVsxXSk7CiAgcmV0dXJuIFsKICAgIDExNiAqIHIgLSAxNiwKICAgIDUwMCAqICh0KGVbMF0gLyAwLjk1MDQ3KSAtIHIpLAogICAgMjAwICogKHIgLSB0KGVbMl0gLyAxLjA4ODgzKSksCiAgXTsKfQpmdW5jdGlvbiB0b1hZWiQxKGUpIHsKICBjb25zdCB0ID0gY2llbGFiUmV2ZXJzZVRyYW5zZm9ybSwKICAgIHIgPSAoZVswXSArIDE2KSAvIDExNjsKICByZXR1cm4gW3QociArIGVbMV0gLyA1MDApICogMC45NTA0NywgdChyKSwgdChyIC0gZVsyXSAvIDIwMCkgKiAxLjA4ODgzXTsKfQpjb25zdCBzcmdiRm9yd2FyZE1hdHJpeCA9IFsKICBbMy4yNDA2LCAtMS41MzcyLCAtMC40OTg2XSwKICBbLTAuOTY4OSwgMS44NzU4LCAwLjA0MTVdLAogIFswLjA1NTcsIC0wLjIwNCwgMS4wNTddLApdLAogIHNyZ2JGb3J3YXJkVHJhbnNmb3JtID0gKGUpID0+CiAgICBlIDw9IDAuMDAzMTMwOCA/IGUgKiAxMi45MiA6IDEuMDU1ICogZSAqKiAoMSAvIDIuNCkgLSAwLjA1NSwKICBzcmdiUmV2ZXJzZU1hdHJpeCA9IFsKICAgIFswLjQxMjQsIDAuMzU3NiwgMC4xODA1XSwKICAgIFswLjIxMjYsIDAuNzE1MiwgMC4wNzIyXSwKICAgIFswLjAxOTMsIDAuMTE5MiwgMC45NTA1XSwKICBdLAogIHNyZ2JSZXZlcnNlVHJhbnNmb3JtID0gKGUpID0+CiAgICBlIDw9IDAuMDQwNDUgPyBlIC8gMTIuOTIgOiAoKGUgKyAwLjA1NSkgLyAxLjA1NSkgKiogMi40OwpmdW5jdGlvbiBmcm9tWFlaKGUpIHsKICBjb25zdCB0ID0gQXJyYXkoMyksCiAgICByID0gc3JnYkZvcndhcmRUcmFuc2Zvcm0sCiAgICBuID0gc3JnYkZvcndhcmRNYXRyaXg7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCAzOyArK2kpCiAgICB0W2ldID0gTWF0aC5yb3VuZCgKICAgICAgY2xhbXAocihuW2ldWzBdICogZVswXSArIG5baV1bMV0gKiBlWzFdICsgbltpXVsyXSAqIGVbMl0pKSAqIDI1NQogICAgKTsKICByZXR1cm4geyByOiB0WzBdLCBnOiB0WzFdLCBiOiB0WzJdIH07Cn0KZnVuY3Rpb24gdG9YWVooZSkgewogIGxldCB7IHI6IHQsIGc6IHIsIGI6IG4gfSA9IGU7CiAgY29uc3QgaSA9IFswLCAwLCAwXSwKICAgIGEgPSBzcmdiUmV2ZXJzZVRyYW5zZm9ybSwKICAgIG8gPSBzcmdiUmV2ZXJzZU1hdHJpeDsKICAodCA9IGEodCAvIDI1NSkpLCAociA9IGEociAvIDI1NSkpLCAobiA9IGEobiAvIDI1NSkpOwogIGZvciAobGV0IGwgPSAwOyBsIDwgMzsgKytsKSBpW2xdID0gb1tsXVswXSAqIHQgKyBvW2xdWzFdICogciArIG9bbF1bMl0gKiBuOwogIHJldHVybiBpOwp9CmZ1bmN0aW9uIGlzQ3NzQ29sb3IoZSkgewogIHJldHVybiAhIWUgJiYgL14oI3x2YXJcKC0tfChyZ2J8aHNsKWE/XCgpLy50ZXN0KGUpOwp9CmZ1bmN0aW9uIGlzUGFyc2FibGVDb2xvcihlKSB7CiAgcmV0dXJuIGlzQ3NzQ29sb3IoZSkgJiYgIS9eKChyZ2J8aHNsKWE/XCgpP3ZhclwoLS0vLnRlc3QoZSk7Cn0KY29uc3QgY3NzQ29sb3JSZSA9IC9eKD88Zm4+KD86cmdifGhzbClhPylcKCg/PHZhbHVlcz4uKylcKS8sCiAgbWFwcGVycyA9IHsKICAgIHJnYjogKGUsIHQsIHIsIG4pID0+ICh7IHI6IGUsIGc6IHQsIGI6IHIsIGE6IG4gfSksCiAgICByZ2JhOiAoZSwgdCwgciwgbikgPT4gKHsgcjogZSwgZzogdCwgYjogciwgYTogbiB9KSwKICAgIGhzbDogKGUsIHQsIHIsIG4pID0+IEhTTHRvUkdCKHsgaDogZSwgczogdCwgbDogciwgYTogbiB9KSwKICAgIGhzbGE6IChlLCB0LCByLCBuKSA9PiBIU0x0b1JHQih7IGg6IGUsIHM6IHQsIGw6IHIsIGE6IG4gfSksCiAgICBoc3Y6IChlLCB0LCByLCBuKSA9PiBIU1Z0b1JHQih7IGg6IGUsIHM6IHQsIHY6IHIsIGE6IG4gfSksCiAgICBoc3ZhOiAoZSwgdCwgciwgbikgPT4gSFNWdG9SR0IoeyBoOiBlLCBzOiB0LCB2OiByLCBhOiBuIH0pLAogIH07CmZ1bmN0aW9uIHBhcnNlQ29sb3IoZSkgewogIGlmICh0eXBlb2YgZSA9PSAibnVtYmVyIikKICAgIHJldHVybiB7IHI6IChlICYgMTY3MTE2ODApID4+IDE2LCBnOiAoZSAmIDY1MjgwKSA+PiA4LCBiOiBlICYgMjU1IH07CiAgaWYgKHR5cGVvZiBlID09ICJzdHJpbmciICYmIGNzc0NvbG9yUmUudGVzdChlKSkgewogICAgY29uc3QgeyBncm91cHM6IHQgfSA9IGUubWF0Y2goY3NzQ29sb3JSZSksCiAgICAgIHsgZm46IHIsIHZhbHVlczogbiB9ID0gdCwKICAgICAgaSA9IG4KICAgICAgICAuc3BsaXQoLyxccyovKQogICAgICAgIC5tYXAoKGEpID0+CiAgICAgICAgICBhLmVuZHNXaXRoKCIlIikgJiYgWyJoc2wiLCAiaHNsYSIsICJoc3YiLCAiaHN2YSJdLmluY2x1ZGVzKHIpCiAgICAgICAgICAgID8gcGFyc2VGbG9hdChhKSAvIDEwMAogICAgICAgICAgICA6IHBhcnNlRmxvYXQoYSkKICAgICAgICApOwogICAgcmV0dXJuIG1hcHBlcnNbcl0oLi4uaSk7CiAgfSBlbHNlIGlmICh0eXBlb2YgZSA9PSAic3RyaW5nIikgewogICAgbGV0IHQgPSBlLnN0YXJ0c1dpdGgoIiMiKSA/IGUuc2xpY2UoMSkgOiBlOwogICAgcmV0dXJuICgKICAgICAgWzMsIDRdLmluY2x1ZGVzKHQubGVuZ3RoKQogICAgICAgID8gKHQgPSB0CiAgICAgICAgICAuc3BsaXQoIiIpCiAgICAgICAgICAubWFwKChyKSA9PiByICsgcikKICAgICAgICAgIC5qb2luKCIiKSkKICAgICAgICA6IFs2LCA4XS5pbmNsdWRlcyh0Lmxlbmd0aCksCiAgICAgIEhleFRvUkdCKHQpCiAgICApOwogIH0gZWxzZSBpZiAodHlwZW9mIGUgPT0gIm9iamVjdCIpIHsKICAgIGlmIChoYXMoZSwgWyJyIiwgImciLCAiYiJdKSkgcmV0dXJuIGU7CiAgICBpZiAoaGFzKGUsIFsiaCIsICJzIiwgImwiXSkpIHJldHVybiBIU1Z0b1JHQihIU0x0b0hTVihlKSk7CiAgICBpZiAoaGFzKGUsIFsiaCIsICJzIiwgInYiXSkpIHJldHVybiBIU1Z0b1JHQihlKTsKICB9CiAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBjb2xvcjogJHtlID09IG51bGwgPyBlIDogU3RyaW5nKGUpIHx8IGUuY29uc3RydWN0b3IubmFtZQogICAgfQpFeHBlY3RlZCAjaGV4LCAjaGV4YSwgcmdiKCksIHJnYmEoKSwgaHNsKCksIGhzbGEoKSwgb2JqZWN0IG9yIG51bWJlcmApOwp9CmZ1bmN0aW9uIEhTVnRvUkdCKGUpIHsKICBjb25zdCB7IGg6IHQsIHM6IHIsIHY6IG4sIGE6IGkgfSA9IGUsCiAgICBhID0gKGwpID0+IHsKICAgICAgY29uc3QgYyA9IChsICsgdCAvIDYwKSAlIDY7CiAgICAgIHJldHVybiBuIC0gbiAqIHIgKiBNYXRoLm1heChNYXRoLm1pbihjLCA0IC0gYywgMSksIDApOwogICAgfSwKICAgIG8gPSBbYSg1KSwgYSgzKSwgYSgxKV0ubWFwKChsKSA9PiBNYXRoLnJvdW5kKGwgKiAyNTUpKTsKICByZXR1cm4geyByOiBvWzBdLCBnOiBvWzFdLCBiOiBvWzJdLCBhOiBpIH07Cn0KZnVuY3Rpb24gSFNMdG9SR0IoZSkgewogIHJldHVybiBIU1Z0b1JHQihIU0x0b0hTVihlKSk7Cn0KZnVuY3Rpb24gSFNMdG9IU1YoZSkgewogIGNvbnN0IHsgaDogdCwgczogciwgbDogbiwgYTogaSB9ID0gZSwKICAgIGEgPSBuICsgciAqIE1hdGgubWluKG4sIDEgLSBuKSwKICAgIG8gPSBhID09PSAwID8gMCA6IDIgLSAoMiAqIG4pIC8gYTsKICByZXR1cm4geyBoOiB0LCBzOiBvLCB2OiBhLCBhOiBpIH07Cn0KZnVuY3Rpb24gdG9IZXgoZSkgewogIGNvbnN0IHQgPSBNYXRoLnJvdW5kKGUpLnRvU3RyaW5nKDE2KTsKICByZXR1cm4gKCIwMCIuc3Vic3RyKDAsIDIgLSB0Lmxlbmd0aCkgKyB0KS50b1VwcGVyQ2FzZSgpOwp9CmZ1bmN0aW9uIFJHQnRvSGV4KGUpIHsKICBsZXQgeyByOiB0LCBnOiByLCBiOiBuLCBhOiBpIH0gPSBlOwogIHJldHVybiBgIyR7WwogICAgdG9IZXgodCksCiAgICB0b0hleChyKSwKICAgIHRvSGV4KG4pLAogICAgaSAhPT0gdm9pZCAwID8gdG9IZXgoTWF0aC5yb3VuZChpICogMjU1KSkgOiAiIiwKICBdLmpvaW4oIiIpfWA7Cn0KZnVuY3Rpb24gSGV4VG9SR0IoZSkgewogIGUgPSBwYXJzZUhleChlKTsKICBsZXQgW3QsIHIsIG4sIGldID0gY2h1bmsoZSwgMikubWFwKChhKSA9PiBwYXJzZUludChhLCAxNikpOwogIHJldHVybiAoaSA9IGkgPT09IHZvaWQgMCA/IGkgOiBpIC8gMjU1KSwgeyByOiB0LCBnOiByLCBiOiBuLCBhOiBpIH07Cn0KZnVuY3Rpb24gcGFyc2VIZXgoZSkgewogIHJldHVybiAoCiAgICBlLnN0YXJ0c1dpdGgoIiMiKSAmJiAoZSA9IGUuc2xpY2UoMSkpLAogICAgKGUgPSBlLnJlcGxhY2UoLyhbXjAtOWEtZl0pL2dpLCAiRiIpKSwKICAgIChlLmxlbmd0aCA9PT0gMyB8fCBlLmxlbmd0aCA9PT0gNCkgJiYKICAgIChlID0gZQogICAgICAuc3BsaXQoIiIpCiAgICAgIC5tYXAoKHQpID0+IHQgKyB0KQogICAgICAuam9pbigiIikpLAogICAgZS5sZW5ndGggIT09IDYgJiYgKGUgPSBwYWRFbmQocGFkRW5kKGUsIDYpLCA4LCAiRiIpKSwKICAgIGUKICApOwp9CmZ1bmN0aW9uIGxpZ2h0ZW4oZSwgdCkgewogIGNvbnN0IHIgPSBmcm9tWFlaJDEodG9YWVooZSkpOwogIHJldHVybiAoclswXSA9IHJbMF0gKyB0ICogMTApLCBmcm9tWFlaKHRvWFlaJDEocikpOwp9CmZ1bmN0aW9uIGRhcmtlbihlLCB0KSB7CiAgY29uc3QgciA9IGZyb21YWVokMSh0b1hZWihlKSk7CiAgcmV0dXJuIChyWzBdID0gclswXSAtIHQgKiAxMCksIGZyb21YWVoodG9YWVokMShyKSk7Cn0KZnVuY3Rpb24gZ2V0THVtYShlKSB7CiAgY29uc3QgdCA9IHBhcnNlQ29sb3IoZSk7CiAgcmV0dXJuIHRvWFlaKHQpWzFdOwp9CmZ1bmN0aW9uIGdldEZvcmVncm91bmQoZSkgewogIGNvbnN0IHQgPSBNYXRoLmFicyhBUENBY29udHJhc3QocGFyc2VDb2xvcigwKSwgcGFyc2VDb2xvcihlKSkpOwogIHJldHVybiBNYXRoLmFicyhBUENBY29udHJhc3QocGFyc2VDb2xvcigxNjc3NzIxNSksIHBhcnNlQ29sb3IoZSkpKSA+CiAgICBNYXRoLm1pbih0LCA1MCkKICAgID8gIiNmZmYiCiAgICA6ICIjMDAwIjsKfQpmdW5jdGlvbiBwcm9wc0ZhY3RvcnkoZSwgdCkgewogIHJldHVybiAocikgPT4KICAgIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgobiwgaSkgPT4gewogICAgICBjb25zdCBvID0KICAgICAgICB0eXBlb2YgZVtpXSA9PSAib2JqZWN0IiAmJiBlW2ldICE9IG51bGwgJiYgIUFycmF5LmlzQXJyYXkoZVtpXSkKICAgICAgICAgID8gZVtpXQogICAgICAgICAgOiB7IHR5cGU6IGVbaV0gfTsKICAgICAgcmV0dXJuICgKICAgICAgICByICYmIGkgaW4gciA/IChuW2ldID0geyAuLi5vLCBkZWZhdWx0OiByW2ldIH0pIDogKG5baV0gPSBvKSwKICAgICAgICB0ICYmICFuW2ldLnNvdXJjZSAmJiAobltpXS5zb3VyY2UgPSB0KSwKICAgICAgICBuCiAgICAgICk7CiAgICB9LCB7fSk7Cn0KY29uc3QgbWFrZUNvbXBvbmVudFByb3BzID0gcHJvcHNGYWN0b3J5KAogIHsKICAgIGNsYXNzOiBbU3RyaW5nLCBBcnJheSwgT2JqZWN0XSwKICAgIHN0eWxlOiB7IHR5cGU6IFtTdHJpbmcsIEFycmF5LCBPYmplY3RdLCBkZWZhdWx0OiBudWxsIH0sCiAgfSwKICAiY29tcG9uZW50IgopOwpmdW5jdGlvbiBnZXRDdXJyZW50SW5zdGFuY2UoZSwgdCkgewogIGNvbnN0IHIgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGlmICghcikKICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgYFtWdWV0aWZ5XSAke2V9IG11c3QgYmUgY2FsbGVkIGZyb20gaW5zaWRlIGEgc2V0dXAgZnVuY3Rpb25gCiAgICApOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIGdldEN1cnJlbnRJbnN0YW5jZU5hbWUoKSB7CiAgbGV0IGUgPQogICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB2b2lkIDAKICAgICAgPyBhcmd1bWVudHNbMF0KICAgICAgOiAiY29tcG9zYWJsZXMiOwogIGNvbnN0IHQgPSBnZXRDdXJyZW50SW5zdGFuY2UoZSkudHlwZTsKICByZXR1cm4gdG9LZWJhYkNhc2UoCiAgICAodCA9PSBudWxsID8gdm9pZCAwIDogdC5hbGlhc05hbWUpIHx8ICh0ID09IG51bGwgPyB2b2lkIDAgOiB0Lm5hbWUpCiAgKTsKfQpsZXQgX3VpZCA9IDAsCiAgX21hcCA9IG5ldyBXZWFrTWFwKCk7CmZ1bmN0aW9uIGdldFVpZCgpIHsKICBjb25zdCBlID0gZ2V0Q3VycmVudEluc3RhbmNlKCJnZXRVaWQiKTsKICBpZiAoX21hcC5oYXMoZSkpIHJldHVybiBfbWFwLmdldChlKTsKICB7CiAgICBjb25zdCB0ID0gX3VpZCsrOwogICAgcmV0dXJuIF9tYXAuc2V0KGUsIHQpLCB0OwogIH0KfQpnZXRVaWQucmVzZXQgPSAoKSA9PiB7CiAgKF91aWQgPSAwKSwgKF9tYXAgPSBuZXcgV2Vha01hcCgpKTsKfTsKZnVuY3Rpb24gaW5qZWN0U2VsZihlKSB7CiAgbGV0IHQgPQogICAgYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAKICAgICAgPyBhcmd1bWVudHNbMV0KICAgICAgOiBnZXRDdXJyZW50SW5zdGFuY2UoImluamVjdFNlbGYiKTsKICBjb25zdCB7IHByb3ZpZGVzOiByIH0gPSB0OwogIGlmIChyICYmIGUgaW4gcikgcmV0dXJuIHJbZV07Cn0KY29uc3QgRGVmYXVsdHNTeW1ib2wgPSBTeW1ib2wuZm9yKCJ2dWV0aWZ5OmRlZmF1bHRzIik7CmZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRzKGUpIHsKICByZXR1cm4gcmVmKGUpOwp9CmZ1bmN0aW9uIGluamVjdERlZmF1bHRzKCkgewogIGNvbnN0IGUgPSBpbmplY3QkMShEZWZhdWx0c1N5bWJvbCk7CiAgaWYgKCFlKSB0aHJvdyBuZXcgRXJyb3IoIltWdWV0aWZ5XSBDb3VsZCBub3QgZmluZCBkZWZhdWx0cyBpbnN0YW5jZSIpOwogIHJldHVybiBlOwp9CmZ1bmN0aW9uIHByb3ZpZGVEZWZhdWx0cyhlLCB0KSB7CiAgY29uc3QgciA9IGluamVjdERlZmF1bHRzKCksCiAgICBuID0gcmVmKGUpLAogICAgaSA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgaWYgKHVucmVmKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuZGlzYWJsZWQpKSByZXR1cm4gci52YWx1ZTsKICAgICAgY29uc3QgbyA9IHVucmVmKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuc2NvcGVkKSwKICAgICAgICBsID0gdW5yZWYodCA9PSBudWxsID8gdm9pZCAwIDogdC5yZXNldCksCiAgICAgICAgYyA9IHVucmVmKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQucm9vdCk7CiAgICAgIGlmIChuLnZhbHVlID09IG51bGwgJiYgIShvIHx8IGwgfHwgYykpIHJldHVybiByLnZhbHVlOwogICAgICBsZXQgdSA9IG1lcmdlRGVlcChuLnZhbHVlLCB7IHByZXY6IHIudmFsdWUgfSk7CiAgICAgIGlmIChvKSByZXR1cm4gdTsKICAgICAgaWYgKGwgfHwgYykgewogICAgICAgIGNvbnN0IGQgPSBOdW1iZXIobCB8fCAxIC8gMCk7CiAgICAgICAgZm9yIChsZXQgRSA9IDA7IEUgPD0gZCAmJiAhKCF1IHx8ICEoInByZXYiIGluIHUpKTsgRSsrKSB1ID0gdS5wcmV2OwogICAgICAgIHJldHVybiAoCiAgICAgICAgICB1ICYmCiAgICAgICAgICB0eXBlb2YgYyA9PSAic3RyaW5nIiAmJgogICAgICAgICAgYyBpbiB1ICYmCiAgICAgICAgICAodSA9IG1lcmdlRGVlcChtZXJnZURlZXAodSwgeyBwcmV2OiB1IH0pLCB1W2NdKSksCiAgICAgICAgICB1CiAgICAgICAgKTsKICAgICAgfQogICAgICByZXR1cm4gdS5wcmV2ID8gbWVyZ2VEZWVwKHUucHJldiwgdSkgOiB1OwogICAgfSk7CiAgcmV0dXJuIHByb3ZpZGUoRGVmYXVsdHNTeW1ib2wsIGkpLCBpOwp9CmZ1bmN0aW9uIHByb3BJc0RlZmluZWQoZSwgdCkgewogIHZhciByLCBuOwogIHJldHVybiAoCiAgICB0eXBlb2YgKChyID0gZS5wcm9wcykgPT0gbnVsbCA/IHZvaWQgMCA6IHJbdF0pIDwgInUiIHx8CiAgICB0eXBlb2YgKChuID0gZS5wcm9wcykgPT0gbnVsbCA/IHZvaWQgMCA6IG5bdG9LZWJhYkNhc2UodCldKSA8ICJ1IgogICk7Cn0KZnVuY3Rpb24gaW50ZXJuYWxVc2VEZWZhdWx0cygpIHsKICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzBdIDoge30sCiAgICB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB2b2lkIDAsCiAgICByID0KICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB2b2lkIDAKICAgICAgICA/IGFyZ3VtZW50c1syXQogICAgICAgIDogaW5qZWN0RGVmYXVsdHMoKTsKICBjb25zdCBuID0gZ2V0Q3VycmVudEluc3RhbmNlKCJ1c2VEZWZhdWx0cyIpOwogIGlmICgoKHQgPSB0ID8/IG4udHlwZS5uYW1lID8/IG4udHlwZS5fX25hbWUpLCAhdCkpCiAgICB0aHJvdyBuZXcgRXJyb3IoIltWdWV0aWZ5XSBDb3VsZCBub3QgZGV0ZXJtaW5lIGNvbXBvbmVudCBuYW1lIik7CiAgY29uc3QgaSA9IGNvbXB1dGVkKCgpID0+IHsKICAgIHZhciBjOwogICAgcmV0dXJuIChjID0gci52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IGNbZS5fYXMgPz8gdF07CiAgfSksCiAgICBhID0gbmV3IFByb3h5KGUsIHsKICAgICAgZ2V0KGMsIHUpIHsKICAgICAgICB2YXIgRSwgYiwgUCwgUiwgVCwgTSwgeDsKICAgICAgICBjb25zdCBkID0gUmVmbGVjdC5nZXQoYywgdSk7CiAgICAgICAgcmV0dXJuIHUgPT09ICJjbGFzcyIgfHwgdSA9PT0gInN0eWxlIgogICAgICAgICAgPyBbKEUgPSBpLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogRVt1XSwgZF0uZmlsdGVyKChrKSA9PiBrICE9IG51bGwpCiAgICAgICAgICA6IHR5cGVvZiB1ID09ICJzdHJpbmciICYmICFwcm9wSXNEZWZpbmVkKG4udm5vZGUsIHUpCiAgICAgICAgICAgID8gKChiID0gaS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IGJbdV0pICE9PSB2b2lkIDAKICAgICAgICAgICAgICA/IChQID0gaS52YWx1ZSkgPT0gbnVsbAogICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgIDogUFt1XQogICAgICAgICAgICAgIDogKChUID0gKFIgPSByLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogUi5nbG9iYWwpID09IG51bGwKICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICA6IFRbdV0pICE9PSB2b2lkIDAKICAgICAgICAgICAgICAgID8gKHggPSAoTSA9IHIudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBNLmdsb2JhbCkgPT0gbnVsbAogICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICA6IHhbdV0KICAgICAgICAgICAgICAgIDogZAogICAgICAgICAgICA6IGQ7CiAgICAgIH0sCiAgICB9KSwKICAgIG8gPSBzaGFsbG93UmVmKCk7CiAgd2F0Y2hFZmZlY3QoKCkgPT4gewogICAgaWYgKGkudmFsdWUpIHsKICAgICAgY29uc3QgYyA9IE9iamVjdC5lbnRyaWVzKGkudmFsdWUpLmZpbHRlcigodSkgPT4gewogICAgICAgIGxldCBbZF0gPSB1OwogICAgICAgIHJldHVybiBkLnN0YXJ0c1dpdGgoZFswXS50b1VwcGVyQ2FzZSgpKTsKICAgICAgfSk7CiAgICAgIG8udmFsdWUgPSBjLmxlbmd0aCA/IE9iamVjdC5mcm9tRW50cmllcyhjKSA6IHZvaWQgMDsKICAgIH0gZWxzZSBvLnZhbHVlID0gdm9pZCAwOwogIH0pOwogIGZ1bmN0aW9uIGwoKSB7CiAgICBjb25zdCBjID0gaW5qZWN0U2VsZihEZWZhdWx0c1N5bWJvbCwgbik7CiAgICBwcm92aWRlKAogICAgICBEZWZhdWx0c1N5bWJvbCwKICAgICAgY29tcHV0ZWQoKCkgPT4KICAgICAgICBvLnZhbHVlCiAgICAgICAgICA/IG1lcmdlRGVlcCgoYyA9PSBudWxsID8gdm9pZCAwIDogYy52YWx1ZSkgPz8ge30sIG8udmFsdWUpCiAgICAgICAgICA6IGMgPT0gbnVsbAogICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICA6IGMudmFsdWUKICAgICAgKQogICAgKTsKICB9CiAgcmV0dXJuIHsgcHJvcHM6IGEsIHByb3ZpZGVTdWJEZWZhdWx0czogbCB9Owp9CmZ1bmN0aW9uIGRlZmluZUNvbXBvbmVudChlKSB7CiAgaWYgKCgoZS5fc2V0dXAgPSBlLl9zZXR1cCA/PyBlLnNldHVwKSwgIWUubmFtZSkpIHJldHVybiBlOwogIGlmIChlLl9zZXR1cCkgewogICAgZS5wcm9wcyA9IHByb3BzRmFjdG9yeShlLnByb3BzID8/IHt9LCBlLm5hbWUpKCk7CiAgICBjb25zdCB0ID0gT2JqZWN0LmtleXMoZS5wcm9wcykuZmlsdGVyKAogICAgICAocikgPT4gciAhPT0gImNsYXNzIiAmJiByICE9PSAic3R5bGUiCiAgICApOwogICAgKGUuZmlsdGVyUHJvcHMgPSBmdW5jdGlvbiAobikgewogICAgICByZXR1cm4gcGljayhuLCB0KTsKICAgIH0pLAogICAgICAoZS5wcm9wcy5fYXMgPSBTdHJpbmcpLAogICAgICAoZS5zZXR1cCA9IGZ1bmN0aW9uIChuLCBpKSB7CiAgICAgICAgY29uc3QgYSA9IGluamVjdERlZmF1bHRzKCk7CiAgICAgICAgaWYgKCFhLnZhbHVlKSByZXR1cm4gZS5fc2V0dXAobiwgaSk7CiAgICAgICAgY29uc3QgeyBwcm9wczogbywgcHJvdmlkZVN1YkRlZmF1bHRzOiBsIH0gPSBpbnRlcm5hbFVzZURlZmF1bHRzKAogICAgICAgICAgbiwKICAgICAgICAgIG4uX2FzID8/IGUubmFtZSwKICAgICAgICAgIGEKICAgICAgICApLAogICAgICAgICAgYyA9IGUuX3NldHVwKG8sIGkpOwogICAgICAgIHJldHVybiBsKCksIGM7CiAgICAgIH0pOwogIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiBnZW5lcmljQ29tcG9uZW50KCkgewogIGxldCBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMF0gOiAhMDsKICByZXR1cm4gKHQpID0+IChlID8gZGVmaW5lQ29tcG9uZW50IDogZGVmaW5lQ29tcG9uZW50JDEpKHQpOwp9CmZ1bmN0aW9uIGRlZmluZUZ1bmN0aW9uYWxDb21wb25lbnQoZSwgdCkgewogIHJldHVybiAodC5wcm9wcyA9IGUpLCB0Owp9CmZ1bmN0aW9uIHVzZVJlbmRlcihlKSB7CiAgY29uc3QgdCA9IGdldEN1cnJlbnRJbnN0YW5jZSgidXNlUmVuZGVyIik7CiAgdC5yZW5kZXIgPSBlOwp9CmNvbnN0IEljb25WYWx1ZSA9IFtTdHJpbmcsIEZ1bmN0aW9uLCBPYmplY3QsIEFycmF5XSwKICBJY29uU3ltYm9sID0gU3ltYm9sLmZvcigidnVldGlmeTppY29ucyIpLAogIG1ha2VJY29uUHJvcHMgPSBwcm9wc0ZhY3RvcnkoCiAgICB7IGljb246IHsgdHlwZTogSWNvblZhbHVlIH0sIHRhZzogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiAhMCB9IH0sCiAgICAiaWNvbiIKICApLAogIFZDb21wb25lbnRJY29uID0gZ2VuZXJpY0NvbXBvbmVudCgpKHsKICAgIG5hbWU6ICJWQ29tcG9uZW50SWNvbiIsCiAgICBwcm9wczogbWFrZUljb25Qcm9wcygpLAogICAgc2V0dXAoZSwgdCkgewogICAgICBsZXQgeyBzbG90czogciB9ID0gdDsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBjb25zdCBuID0gZS5pY29uOwogICAgICAgIHJldHVybiBjcmVhdGVWTm9kZShlLnRhZywgbnVsbCwgewogICAgICAgICAgZGVmYXVsdDogKCkgPT4gewogICAgICAgICAgICB2YXIgaTsKICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICBlLmljb24KICAgICAgICAgICAgICAgID8gY3JlYXRlVk5vZGUobiwgbnVsbCwgbnVsbCkKICAgICAgICAgICAgICAgIDogKGkgPSByLmRlZmF1bHQpID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiBpLmNhbGwociksCiAgICAgICAgICAgIF07CiAgICAgICAgICB9LAogICAgICAgIH0pOwogICAgICB9OwogICAgfSwKICB9KSwKICBWU3ZnSWNvbiA9IGRlZmluZUNvbXBvbmVudCh7CiAgICBuYW1lOiAiVlN2Z0ljb24iLAogICAgaW5oZXJpdEF0dHJzOiAhMSwKICAgIHByb3BzOiBtYWtlSWNvblByb3BzKCksCiAgICBzZXR1cChlLCB0KSB7CiAgICAgIGxldCB7IGF0dHJzOiByIH0gPSB0OwogICAgICByZXR1cm4gKCkgPT4KICAgICAgICBjcmVhdGVWTm9kZShlLnRhZywgbWVyZ2VQcm9wcyhyLCB7IHN0eWxlOiBudWxsIH0pLCB7CiAgICAgICAgICBkZWZhdWx0OiAoKSA9PiBbCiAgICAgICAgICAgIGNyZWF0ZVZOb2RlKAogICAgICAgICAgICAgICJzdmciLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsYXNzOiAidi1pY29uX19zdmciLAogICAgICAgICAgICAgICAgeG1sbnM6ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsCiAgICAgICAgICAgICAgICB2aWV3Qm94OiAiMCAwIDI0IDI0IiwKICAgICAgICAgICAgICAgIHJvbGU6ICJpbWciLAogICAgICAgICAgICAgICAgImFyaWEtaGlkZGVuIjogInRydWUiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShlLmljb24pCiAgICAgICAgICAgICAgICAgID8gZS5pY29uLm1hcCgobikgPT4KICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KG4pCiAgICAgICAgICAgICAgICAgICAgICA/IGNyZWF0ZVZOb2RlKAogICAgICAgICAgICAgICAgICAgICAgICAicGF0aCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgZDogblswXSwgImZpbGwtb3BhY2l0eSI6IG5bMV0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgOiBjcmVhdGVWTm9kZSgicGF0aCIsIHsgZDogbiB9LCBudWxsKQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIDogY3JlYXRlVk5vZGUoInBhdGgiLCB7IGQ6IGUuaWNvbiB9LCBudWxsKSwKICAgICAgICAgICAgICBdCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgIH0pOwogICAgfSwKICB9KTsKZGVmaW5lQ29tcG9uZW50KHsKICBuYW1lOiAiVkxpZ2F0dXJlSWNvbiIsCiAgcHJvcHM6IG1ha2VJY29uUHJvcHMoKSwKICBzZXR1cChlKSB7CiAgICByZXR1cm4gKCkgPT4gY3JlYXRlVk5vZGUoZS50YWcsIG51bGwsIHsgZGVmYXVsdDogKCkgPT4gW2UuaWNvbl0gfSk7CiAgfSwKfSk7CmNvbnN0IFZDbGFzc0ljb24gPSBkZWZpbmVDb21wb25lbnQoewogIG5hbWU6ICJWQ2xhc3NJY29uIiwKICBwcm9wczogbWFrZUljb25Qcm9wcygpLAogIHNldHVwKGUpIHsKICAgIHJldHVybiAoKSA9PiBjcmVhdGVWTm9kZShlLnRhZywgeyBjbGFzczogZS5pY29uIH0sIG51bGwpOwogIH0sCn0pOwpmdW5jdGlvbiBnZW5EZWZhdWx0cyQzKCkgewogIHJldHVybiB7IHN2ZzogeyBjb21wb25lbnQ6IFZTdmdJY29uIH0sIGNsYXNzOiB7IGNvbXBvbmVudDogVkNsYXNzSWNvbiB9IH07Cn0KZnVuY3Rpb24gY3JlYXRlSWNvbnMoZSkgewogIGNvbnN0IHQgPSBnZW5EZWZhdWx0cyQzKCksCiAgICByID0gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUuZGVmYXVsdFNldCkgPz8gIm1kaSI7CiAgcmV0dXJuICgKICAgIHIgPT09ICJtZGkiICYmICF0Lm1kaSAmJiAodC5tZGkgPSBtZGkpLAogICAgbWVyZ2VEZWVwKAogICAgICB7CiAgICAgICAgZGVmYXVsdFNldDogciwKICAgICAgICBzZXRzOiB0LAogICAgICAgIGFsaWFzZXM6IHsKICAgICAgICAgIC4uLmFsaWFzZXMsCiAgICAgICAgICB2dWV0aWZ5OiBbCiAgICAgICAgICAgICJNOC4yMjQxIDE0LjIwMDlMMTIgMjFMMjIgM0gxNC40NDU5TDguMjI0MSAxNC4yMDA5WiIsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAiTTcuMjYzMDMgMTIuNDczM0w3LjAwMTEzIDEyTDIgM0gxMi41MjYxQzEyLjUyNjEgMyAxMi41MjYxIDMgMTIuNTI2MSAzTDcuMjYzMDMgMTIuNDczM1oiLAogICAgICAgICAgICAgIDAuNiwKICAgICAgICAgICAgXSwKICAgICAgICAgIF0sCiAgICAgICAgICAidnVldGlmeS1vdXRsaW5lIjoKICAgICAgICAgICAgInN2ZzpNNy4yNiAxMi40NyAxMi41MyAzSDJMNy4yNiAxMi40N1pNMTQuNDUgMyA4LjIyIDE0LjIgMTIgMjEgMjIgM0gxNC40NVpNMTguNiA1IDEyIDE2Ljg4IDEwLjUxIDE0LjIgMTUuNjIgNVpNNy4yNiA4LjM1IDUuNCA1SDkuMTNMNy4yNiA4LjM1WiIsCiAgICAgICAgICAidnVldGlmeS1wbGF5IjogWwogICAgICAgICAgICAibTYuMzc2IDEzLjE4NC00LjExLTcuMTkyQzEuNTA1IDQuNjYgMi40NjcgMyA0LjAwMyAzaDguNTMybC0uOTUzIDEuNTc2LS4wMDYuMDEtLjM5Ni42NzdjLS40MjkuNzMyLS4yMTQgMS41MDcuMTk0IDIuMDE1LjQwNC41MDMgMS4wOTIuODc4IDEuODY5LjgwNmEzLjcyIDMuNzIgMCAwIDEgMS4wMDUuMDIyYy4yNzYuMDUzLjQzNC4xNDMuNTIzLjIzNy4xMzguMTQ2LjM4LjYzNS0uMjUgMi4wOS0uODkzIDEuNjMtMS41NTMgMS43MjItMS44NDcgMS42NzctLjIxMy0uMDMzLS40NjgtLjE1OC0uNzU2LS40MDZhNC45NSA0Ljk1IDAgMCAxLS44LS45MjdjLS4zOS0uNTY0LTEuMDQtLjg0LTEuNjYtLjg0Ni0uNjI1LS4wMDYtMS4zMTYuMjctMS42OTMuOTIxbC0uNDc4LjgyNi0uOTExIDEuNTA2WiIsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAiTTkuMDkzIDExLjU1MmMuMDQ2LS4wNzkuMTQ0LS4xNS4zMi0uMTQ4YS41My41MyAwIDAgMSAuNDMuMjA3Yy4yODUuNDE0LjYzNi44NDcgMS4wNDYgMS4yLjQwNS4zNS45MTQuNjYyIDEuNTE2Ljc1NCAxLjMzNC4yMDUgMi41MDItLjY5OCAzLjQ4LTIuNDk1bC4wMTQtLjAyOC4wMTMtLjAzYy42ODctMS41NzQuNzc0LTIuODUyLS4wMDUtMy42NzUtLjM3LS4zOTEtLjg2MS0uNTg2LTEuMzMzLS42NzZhNS4yNDMgNS4yNDMgMCAwIDAtMS40NDctLjA0NGMtLjE3My4wMTYtLjM5My0uMDczLS41NC0uMjU3LS4xNDUtLjE4LS4xMjctLjMxNi0uMDgyLS4zOTJsLjM5My0uNjcyTDE0LjI4NyAzaDUuNzFjMS41MzYgMCAyLjQ5OSAxLjY1OSAxLjczNyAyLjk5MmwtNy45OTcgMTMuOTk2Yy0uNzY4IDEuMzQ0LTIuNzA2IDEuMzQ0LTMuNDczIDBsLTMuMDM3LTUuMzE0IDEuMzc3LTIuMjc4LjAwNC0uMDA2LjAwNC0uMDA3LjQ4MS0uODMxWiIsCiAgICAgICAgICAgICAgMC42LAogICAgICAgICAgICBdLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICB9LAogICAgICBlCiAgICApCiAgKTsKfQpjb25zdCB1c2VJY29uID0gKGUpID0+IHsKICBjb25zdCB0ID0gaW5qZWN0JDEoSWNvblN5bWJvbCk7CiAgaWYgKCF0KSB0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgVnVldGlmeSBJY29ucyBwcm92aWRlISIpOwogIHJldHVybiB7CiAgICBpY29uRGF0YTogY29tcHV0ZWQoKCkgPT4gewogICAgICB2YXIgYzsKICAgICAgY29uc3QgbiA9IHVucmVmKGUpOwogICAgICBpZiAoIW4pIHJldHVybiB7IGNvbXBvbmVudDogVkNvbXBvbmVudEljb24gfTsKICAgICAgbGV0IGkgPSBuOwogICAgICBpZiAoCiAgICAgICAgKHR5cGVvZiBpID09ICJzdHJpbmciICYmCiAgICAgICAgICAoKGkgPSBpLnRyaW0oKSksCiAgICAgICAgICAgIGkuc3RhcnRzV2l0aCgiJCIpICYmCiAgICAgICAgICAgIChpID0gKGMgPSB0LmFsaWFzZXMpID09IG51bGwgPyB2b2lkIDAgOiBjW2kuc2xpY2UoMSldKSksCiAgICAgICAgICBBcnJheS5pc0FycmF5KGkpKQogICAgICApCiAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiBWU3ZnSWNvbiwgaWNvbjogaSB9OwogICAgICBpZiAodHlwZW9mIGkgIT0gInN0cmluZyIpIHJldHVybiB7IGNvbXBvbmVudDogVkNvbXBvbmVudEljb24sIGljb246IGkgfTsKICAgICAgY29uc3QgYSA9IE9iamVjdC5rZXlzKHQuc2V0cykuZmluZCgKICAgICAgICAodSkgPT4gdHlwZW9mIGkgPT0gInN0cmluZyIgJiYgaS5zdGFydHNXaXRoKGAke3V9OmApCiAgICAgICksCiAgICAgICAgbyA9IGEgPyBpLnNsaWNlKGEubGVuZ3RoICsgMSkgOiBpOwogICAgICByZXR1cm4geyBjb21wb25lbnQ6IHQuc2V0c1thID8/IHQuZGVmYXVsdFNldF0uY29tcG9uZW50LCBpY29uOiBvIH07CiAgICB9KSwKICB9Owp9LAogIGFsaWFzZXMgPSB7CiAgICBjb2xsYXBzZTogIm1kaS1jaGV2cm9uLXVwIiwKICAgIGNvbXBsZXRlOiAibWRpLWNoZWNrIiwKICAgIGNhbmNlbDogIm1kaS1jbG9zZS1jaXJjbGUiLAogICAgY2xvc2U6ICJtZGktY2xvc2UiLAogICAgZGVsZXRlOiAibWRpLWNsb3NlLWNpcmNsZSIsCiAgICBjbGVhcjogIm1kaS1jbG9zZS1jaXJjbGUiLAogICAgc3VjY2VzczogIm1kaS1jaGVjay1jaXJjbGUiLAogICAgaW5mbzogIm1kaS1pbmZvcm1hdGlvbiIsCiAgICB3YXJuaW5nOiAibWRpLWFsZXJ0LWNpcmNsZSIsCiAgICBlcnJvcjogIm1kaS1jbG9zZS1jaXJjbGUiLAogICAgcHJldjogIm1kaS1jaGV2cm9uLWxlZnQiLAogICAgbmV4dDogIm1kaS1jaGV2cm9uLXJpZ2h0IiwKICAgIGNoZWNrYm94T246ICJtZGktY2hlY2tib3gtbWFya2VkIiwKICAgIGNoZWNrYm94T2ZmOiAibWRpLWNoZWNrYm94LWJsYW5rLW91dGxpbmUiLAogICAgY2hlY2tib3hJbmRldGVybWluYXRlOiAibWRpLW1pbnVzLWJveCIsCiAgICBkZWxpbWl0ZXI6ICJtZGktY2lyY2xlIiwKICAgIHNvcnRBc2M6ICJtZGktYXJyb3ctdXAiLAogICAgc29ydERlc2M6ICJtZGktYXJyb3ctZG93biIsCiAgICBleHBhbmQ6ICJtZGktY2hldnJvbi1kb3duIiwKICAgIG1lbnU6ICJtZGktbWVudSIsCiAgICBzdWJncm91cDogIm1kaS1tZW51LWRvd24iLAogICAgZHJvcGRvd246ICJtZGktbWVudS1kb3duIiwKICAgIHJhZGlvT246ICJtZGktcmFkaW9ib3gtbWFya2VkIiwKICAgIHJhZGlvT2ZmOiAibWRpLXJhZGlvYm94LWJsYW5rIiwKICAgIGVkaXQ6ICJtZGktcGVuY2lsIiwKICAgIHJhdGluZ0VtcHR5OiAibWRpLXN0YXItb3V0bGluZSIsCiAgICByYXRpbmdGdWxsOiAibWRpLXN0YXIiLAogICAgcmF0aW5nSGFsZjogIm1kaS1zdGFyLWhhbGYtZnVsbCIsCiAgICBsb2FkaW5nOiAibWRpLWNhY2hlZCIsCiAgICBmaXJzdDogIm1kaS1wYWdlLWZpcnN0IiwKICAgIGxhc3Q6ICJtZGktcGFnZS1sYXN0IiwKICAgIHVuZm9sZDogIm1kaS11bmZvbGQtbW9yZS1ob3Jpem9udGFsIiwKICAgIGZpbGU6ICJtZGktcGFwZXJjbGlwIiwKICAgIHBsdXM6ICJtZGktcGx1cyIsCiAgICBtaW51czogIm1kaS1taW51cyIsCiAgICBjYWxlbmRhcjogIm1kaS1jYWxlbmRhciIsCiAgICB0cmVldmlld0NvbGxhcHNlOiAibWRpLW1lbnUtZG93biIsCiAgICB0cmVldmlld0V4cGFuZDogIm1kaS1tZW51LXJpZ2h0IiwKICAgIGV5ZURyb3BwZXI6ICJtZGktZXllZHJvcHBlciIsCiAgICB1cGxvYWQ6ICJtZGktY2xvdWQtdXBsb2FkIiwKICB9LAogIG1kaSA9IHsgY29tcG9uZW50OiAoZSkgPT4gaCQyKFZDbGFzc0ljb24sIHsgLi4uZSwgY2xhc3M6ICJtZGkiIH0pIH07CmZ1bmN0aW9uIGljb25zQ29uZmlndXJhdGlvbigpIHsKICByZXR1cm4geyBkZWZhdWx0U2V0OiAibWRpIiwgYWxpYXNlcywgc2V0czogeyBtZGkgfSB9Owp9CmZ1bmN0aW9uIGNvbmZpZ3VyZUljb25zKGUpIHsKICB7CiAgICBjb25zdCB0ID0gaWNvbnNDb25maWd1cmF0aW9uKCk7CiAgICBpZiAoKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuZGVmYXVsdFNldCkgPT09ICJjdXN0b20iKSByZXR1cm47CiAgICBlLmljb25zID0gdDsKICB9Cn0KY29uc3QgdnVldGlmeV9pY29uc19LQXVtdjJwVW5pID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgbmFtZTogInZ1ZXRpZnk6aWNvbnM6cGx1Z2luIiwKICBvcmRlcjogLTI1LAogIHBhcmFsbGVsOiAhMCwKICBzZXR1cChlKSB7CiAgICBlLmhvb2soInZ1ZXRpZnk6Y29uZmlndXJhdGlvbiIsICh7IHZ1ZXRpZnlPcHRpb25zOiB0IH0pID0+IHsKICAgICAgY29uZmlndXJlSWNvbnModCk7CiAgICB9KTsKICB9LAp9KSwKICB1bmhlYWRQbHVnaW5zID0gW10sCiAgdW5oZWFkX0tnQURjWjBqUGogPSBkZWZpbmVOdXh0UGx1Z2luKHsKICAgIG5hbWU6ICJudXh0OmhlYWQiLAogICAgZW5mb3JjZTogInByZSIsCiAgICBzZXR1cChlKSB7CiAgICAgIGNvbnN0IHQgPSBjcmVhdGVIZWFkKHsgcGx1Z2luczogdW5oZWFkUGx1Z2lucyB9KTsKICAgICAgc2V0SGVhZEluamVjdGlvbkhhbmRsZXIoCiAgICAgICAgKCkgPT4gdXNlTnV4dEFwcCgpLnZ1ZUFwcC5fY29udGV4dC5wcm92aWRlcy51c2VoZWFkCiAgICAgICksCiAgICAgICAgZS52dWVBcHAudXNlKHQpOwogICAgICB7CiAgICAgICAgbGV0IHIgPSAhMDsKICAgICAgICBjb25zdCBuID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgKHIgPSAhMSksIGF3YWl0IHJlbmRlckRPTUhlYWQodCk7CiAgICAgICAgfTsKICAgICAgICB0Lmhvb2tzLmhvb2soImRvbTpiZWZvcmVSZW5kZXIiLCAoaSkgPT4gewogICAgICAgICAgaS5zaG91bGRSZW5kZXIgPSAhcjsKICAgICAgICB9KSwKICAgICAgICAgIGUuaG9va3MuaG9vaygicGFnZTpzdGFydCIsICgpID0+IHsKICAgICAgICAgICAgciA9ICEwOwogICAgICAgICAgfSksCiAgICAgICAgICBlLmhvb2tzLmhvb2soInBhZ2U6ZmluaXNoIiwgKCkgPT4gewogICAgICAgICAgICBlLmlzSHlkcmF0aW5nIHx8IG4oKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZS5ob29rcy5ob29rKCJhcHA6ZXJyb3IiLCBuKSwKICAgICAgICAgIGUuaG9va3MuaG9vaygiYXBwOnN1c3BlbnNlOnJlc29sdmUiLCBuKTsKICAgICAgfQogICAgfSwKICB9KTsKLyohCiAqIHZ1ZS1yb3V0ZXIgdjQuNS4wCiAqIChjKSAyMDI0IEVkdWFyZG8gU2FuIE1hcnRpbiBNb3JvdGUKICogQGxpY2Vuc2UgTUlUCiAqLyBjb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2YgZG9jdW1lbnQgPCAidSI7CmZ1bmN0aW9uIGlzUm91dGVDb21wb25lbnQoZSkgewogIHJldHVybiAoCiAgICB0eXBlb2YgZSA9PSAib2JqZWN0IiB8fAogICAgImRpc3BsYXlOYW1lIiBpbiBlIHx8CiAgICAicHJvcHMiIGluIGUgfHwKICAgICJfX3ZjY09wdHMiIGluIGUKICApOwp9CmZ1bmN0aW9uIGlzRVNNb2R1bGUoZSkgewogIHJldHVybiAoCiAgICBlLl9fZXNNb2R1bGUgfHwKICAgIGVbU3ltYm9sLnRvU3RyaW5nVGFnXSA9PT0gIk1vZHVsZSIgfHwKICAgIChlLmRlZmF1bHQgJiYgaXNSb3V0ZUNvbXBvbmVudChlLmRlZmF1bHQpKQogICk7Cn0KY29uc3QgYXNzaWduID0gT2JqZWN0LmFzc2lnbjsKZnVuY3Rpb24gYXBwbHlUb1BhcmFtcyhlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIGZvciAoY29uc3QgbiBpbiB0KSB7CiAgICBjb25zdCBpID0gdFtuXTsKICAgIHJbbl0gPSBpc0FycmF5KGkpID8gaS5tYXAoZSkgOiBlKGkpOwogIH0KICByZXR1cm4gcjsKfQpjb25zdCBub29wID0gKCkgPT4geyB9LAogIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5LAogIEhBU0hfUkUgPSAvIy9nLAogIEFNUEVSU0FORF9SRSA9IC8mL2csCiAgU0xBU0hfUkUgPSAvXC8vZywKICBFUVVBTF9SRSA9IC89L2csCiAgSU1fUkUgPSAvXD8vZywKICBQTFVTX1JFID0gL1wrL2csCiAgRU5DX0JSQUNLRVRfT1BFTl9SRSA9IC8lNUIvZywKICBFTkNfQlJBQ0tFVF9DTE9TRV9SRSA9IC8lNUQvZywKICBFTkNfQ0FSRVRfUkUgPSAvJTVFL2csCiAgRU5DX0JBQ0tUSUNLX1JFID0gLyU2MC9nLAogIEVOQ19DVVJMWV9PUEVOX1JFID0gLyU3Qi9nLAogIEVOQ19QSVBFX1JFID0gLyU3Qy9nLAogIEVOQ19DVVJMWV9DTE9TRV9SRSA9IC8lN0QvZywKICBFTkNfU1BBQ0VfUkUgPSAvJTIwL2c7CmZ1bmN0aW9uIGNvbW1vbkVuY29kZShlKSB7CiAgcmV0dXJuIGVuY29kZVVSSSgiIiArIGUpCiAgICAucmVwbGFjZShFTkNfUElQRV9SRSwgInwiKQogICAgLnJlcGxhY2UoRU5DX0JSQUNLRVRfT1BFTl9SRSwgIlsiKQogICAgLnJlcGxhY2UoRU5DX0JSQUNLRVRfQ0xPU0VfUkUsICJdIik7Cn0KZnVuY3Rpb24gZW5jb2RlSGFzaChlKSB7CiAgcmV0dXJuIGNvbW1vbkVuY29kZShlKQogICAgLnJlcGxhY2UoRU5DX0NVUkxZX09QRU5fUkUsICJ7IikKICAgIC5yZXBsYWNlKEVOQ19DVVJMWV9DTE9TRV9SRSwgIn0iKQogICAgLnJlcGxhY2UoRU5DX0NBUkVUX1JFLCAiXiIpOwp9CmZ1bmN0aW9uIGVuY29kZVF1ZXJ5VmFsdWUoZSkgewogIHJldHVybiBjb21tb25FbmNvZGUoZSkKICAgIC5yZXBsYWNlKFBMVVNfUkUsICIlMkIiKQogICAgLnJlcGxhY2UoRU5DX1NQQUNFX1JFLCAiKyIpCiAgICAucmVwbGFjZShIQVNIX1JFLCAiJTIzIikKICAgIC5yZXBsYWNlKEFNUEVSU0FORF9SRSwgIiUyNiIpCiAgICAucmVwbGFjZShFTkNfQkFDS1RJQ0tfUkUsICJgIikKICAgIC5yZXBsYWNlKEVOQ19DVVJMWV9PUEVOX1JFLCAieyIpCiAgICAucmVwbGFjZShFTkNfQ1VSTFlfQ0xPU0VfUkUsICJ9IikKICAgIC5yZXBsYWNlKEVOQ19DQVJFVF9SRSwgIl4iKTsKfQpmdW5jdGlvbiBlbmNvZGVRdWVyeUtleShlKSB7CiAgcmV0dXJuIGVuY29kZVF1ZXJ5VmFsdWUoZSkucmVwbGFjZShFUVVBTF9SRSwgIiUzRCIpOwp9CmZ1bmN0aW9uIGVuY29kZVBhdGgoZSkgewogIHJldHVybiBjb21tb25FbmNvZGUoZSkucmVwbGFjZShIQVNIX1JFLCAiJTIzIikucmVwbGFjZShJTV9SRSwgIiUzRiIpOwp9CmZ1bmN0aW9uIGVuY29kZVBhcmFtKGUpIHsKICByZXR1cm4gZSA9PSBudWxsID8gIiIgOiBlbmNvZGVQYXRoKGUpLnJlcGxhY2UoU0xBU0hfUkUsICIlMkYiKTsKfQpmdW5jdGlvbiBkZWNvZGUoZSkgewogIHRyeSB7CiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KCIiICsgZSk7CiAgfSBjYXRjaCB7IH0KICByZXR1cm4gIiIgKyBlOwp9CmNvbnN0IFRSQUlMSU5HX1NMQVNIX1JFID0gL1wvJC8sCiAgcmVtb3ZlVHJhaWxpbmdTbGFzaCA9IChlKSA9PiBlLnJlcGxhY2UoVFJBSUxJTkdfU0xBU0hfUkUsICIiKTsKZnVuY3Rpb24gcGFyc2VVUkwoZSwgdCwgciA9ICIvIikgewogIGxldCBuLAogICAgaSA9IHt9LAogICAgYSA9ICIiLAogICAgbyA9ICIiOwogIGNvbnN0IGwgPSB0LmluZGV4T2YoIiMiKTsKICBsZXQgYyA9IHQuaW5kZXhPZigiPyIpOwogIHJldHVybiAoCiAgICBsIDwgYyAmJiBsID49IDAgJiYgKGMgPSAtMSksCiAgICBjID4gLTEgJiYKICAgICgobiA9IHQuc2xpY2UoMCwgYykpLAogICAgICAoYSA9IHQuc2xpY2UoYyArIDEsIGwgPiAtMSA/IGwgOiB0Lmxlbmd0aCkpLAogICAgICAoaSA9IGUoYSkpKSwKICAgIGwgPiAtMSAmJiAoKG4gPSBuIHx8IHQuc2xpY2UoMCwgbCkpLCAobyA9IHQuc2xpY2UobCwgdC5sZW5ndGgpKSksCiAgICAobiA9IHJlc29sdmVSZWxhdGl2ZVBhdGgobiA/PyB0LCByKSksCiAgICB7IGZ1bGxQYXRoOiBuICsgKGEgJiYgIj8iKSArIGEgKyBvLCBwYXRoOiBuLCBxdWVyeTogaSwgaGFzaDogZGVjb2RlKG8pIH0KICApOwp9CmZ1bmN0aW9uIHN0cmluZ2lmeVVSTChlLCB0KSB7CiAgY29uc3QgciA9IHQucXVlcnkgPyBlKHQucXVlcnkpIDogIiI7CiAgcmV0dXJuIHQucGF0aCArIChyICYmICI/IikgKyByICsgKHQuaGFzaCB8fCAiIik7Cn0KZnVuY3Rpb24gc3RyaXBCYXNlKGUsIHQpIHsKICByZXR1cm4gIXQgfHwgIWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHQudG9Mb3dlckNhc2UoKSkKICAgID8gZQogICAgOiBlLnNsaWNlKHQubGVuZ3RoKSB8fCAiLyI7Cn0KZnVuY3Rpb24gaXNTYW1lUm91dGVMb2NhdGlvbihlLCB0LCByKSB7CiAgY29uc3QgbiA9IHQubWF0Y2hlZC5sZW5ndGggLSAxLAogICAgaSA9IHIubWF0Y2hlZC5sZW5ndGggLSAxOwogIHJldHVybiAoCiAgICBuID4gLTEgJiYKICAgIG4gPT09IGkgJiYKICAgIGlzU2FtZVJvdXRlUmVjb3JkKHQubWF0Y2hlZFtuXSwgci5tYXRjaGVkW2ldKSAmJgogICAgaXNTYW1lUm91dGVMb2NhdGlvblBhcmFtcyh0LnBhcmFtcywgci5wYXJhbXMpICYmCiAgICBlKHQucXVlcnkpID09PSBlKHIucXVlcnkpICYmCiAgICB0Lmhhc2ggPT09IHIuaGFzaAogICk7Cn0KZnVuY3Rpb24gaXNTYW1lUm91dGVSZWNvcmQoZSwgdCkgewogIHJldHVybiAoZS5hbGlhc09mIHx8IGUpID09PSAodC5hbGlhc09mIHx8IHQpOwp9CmZ1bmN0aW9uIGlzU2FtZVJvdXRlTG9jYXRpb25QYXJhbXMoZSwgdCkgewogIGlmIChPYmplY3Qua2V5cyhlKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHQpLmxlbmd0aCkgcmV0dXJuICExOwogIGZvciAoY29uc3QgciBpbiBlKSBpZiAoIWlzU2FtZVJvdXRlTG9jYXRpb25QYXJhbXNWYWx1ZShlW3JdLCB0W3JdKSkgcmV0dXJuICExOwogIHJldHVybiAhMDsKfQpmdW5jdGlvbiBpc1NhbWVSb3V0ZUxvY2F0aW9uUGFyYW1zVmFsdWUoZSwgdCkgewogIHJldHVybiBpc0FycmF5KGUpCiAgICA/IGlzRXF1aXZhbGVudEFycmF5KGUsIHQpCiAgICA6IGlzQXJyYXkodCkKICAgICAgPyBpc0VxdWl2YWxlbnRBcnJheSh0LCBlKQogICAgICA6IGUgPT09IHQ7Cn0KZnVuY3Rpb24gaXNFcXVpdmFsZW50QXJyYXkoZSwgdCkgewogIHJldHVybiBpc0FycmF5KHQpCiAgICA/IGUubGVuZ3RoID09PSB0Lmxlbmd0aCAmJiBlLmV2ZXJ5KChyLCBuKSA9PiByID09PSB0W25dKQogICAgOiBlLmxlbmd0aCA9PT0gMSAmJiBlWzBdID09PSB0Owp9CmZ1bmN0aW9uIHJlc29sdmVSZWxhdGl2ZVBhdGgoZSwgdCkgewogIGlmIChlLnN0YXJ0c1dpdGgoIi8iKSkgcmV0dXJuIGU7CiAgaWYgKCFlKSByZXR1cm4gdDsKICBjb25zdCByID0gdC5zcGxpdCgiLyIpLAogICAgbiA9IGUuc3BsaXQoIi8iKSwKICAgIGkgPSBuW24ubGVuZ3RoIC0gMV07CiAgKGkgPT09ICIuLiIgfHwgaSA9PT0gIi4iKSAmJiBuLnB1c2goIiIpOwogIGxldCBhID0gci5sZW5ndGggLSAxLAogICAgbywKICAgIGw7CiAgZm9yIChvID0gMDsgbyA8IG4ubGVuZ3RoOyBvKyspCiAgICBpZiAoKChsID0gbltvXSksIGwgIT09ICIuIikpCiAgICAgIGlmIChsID09PSAiLi4iKSBhID4gMSAmJiBhLS07CiAgICAgIGVsc2UgYnJlYWs7CiAgcmV0dXJuIHIuc2xpY2UoMCwgYSkuam9pbigiLyIpICsgIi8iICsgbi5zbGljZShvKS5qb2luKCIvIik7Cn0KY29uc3QgU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRCA9IHsKICBwYXRoOiAiLyIsCiAgbmFtZTogdm9pZCAwLAogIHBhcmFtczoge30sCiAgcXVlcnk6IHt9LAogIGhhc2g6ICIiLAogIGZ1bGxQYXRoOiAiLyIsCiAgbWF0Y2hlZDogW10sCiAgbWV0YToge30sCiAgcmVkaXJlY3RlZEZyb206IHZvaWQgMCwKfTsKdmFyIE5hdmlnYXRpb25UeXBlOwooZnVuY3Rpb24gKGUpIHsKICAoZS5wb3AgPSAicG9wIiksIChlLnB1c2ggPSAicHVzaCIpOwp9KShOYXZpZ2F0aW9uVHlwZSB8fCAoTmF2aWdhdGlvblR5cGUgPSB7fSkpOwp2YXIgTmF2aWdhdGlvbkRpcmVjdGlvbjsKKGZ1bmN0aW9uIChlKSB7CiAgKGUuYmFjayA9ICJiYWNrIiksIChlLmZvcndhcmQgPSAiZm9yd2FyZCIpLCAoZS51bmtub3duID0gIiIpOwp9KShOYXZpZ2F0aW9uRGlyZWN0aW9uIHx8IChOYXZpZ2F0aW9uRGlyZWN0aW9uID0ge30pKTsKZnVuY3Rpb24gbm9ybWFsaXplQmFzZShlKSB7CiAgaWYgKCFlKQogICAgaWYgKGlzQnJvd3NlcikgewogICAgICBjb25zdCB0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYmFzZSIpOwogICAgICAoZSA9ICh0ICYmIHQuZ2V0QXR0cmlidXRlKCJocmVmIikpIHx8ICIvIiksCiAgICAgICAgKGUgPSBlLnJlcGxhY2UoL15cdys6XC9cL1teXC9dKy8sICIiKSk7CiAgICB9IGVsc2UgZSA9ICIvIjsKICByZXR1cm4gZVswXSAhPT0gIi8iICYmIGVbMF0gIT09ICIjIiAmJiAoZSA9ICIvIiArIGUpLCByZW1vdmVUcmFpbGluZ1NsYXNoKGUpOwp9CmNvbnN0IEJFRk9SRV9IQVNIX1JFID0gL15bXiNdKyMvOwpmdW5jdGlvbiBjcmVhdGVIcmVmKGUsIHQpIHsKICByZXR1cm4gZS5yZXBsYWNlKEJFRk9SRV9IQVNIX1JFLCAiIyIpICsgdDsKfQpmdW5jdGlvbiBnZXRFbGVtZW50UG9zaXRpb24oZSwgdCkgewogIGNvbnN0IHIgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksCiAgICBuID0gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICByZXR1cm4gewogICAgYmVoYXZpb3I6IHQuYmVoYXZpb3IsCiAgICBsZWZ0OiBuLmxlZnQgLSByLmxlZnQgLSAodC5sZWZ0IHx8IDApLAogICAgdG9wOiBuLnRvcCAtIHIudG9wIC0gKHQudG9wIHx8IDApLAogIH07Cn0KY29uc3QgY29tcHV0ZVNjcm9sbFBvc2l0aW9uID0gKCkgPT4gKHsKICBsZWZ0OiB3aW5kb3cuc2Nyb2xsWCwKICB0b3A6IHdpbmRvdy5zY3JvbGxZLAp9KTsKZnVuY3Rpb24gc2Nyb2xsVG9Qb3NpdGlvbihlKSB7CiAgbGV0IHQ7CiAgaWYgKCJlbCIgaW4gZSkgewogICAgY29uc3QgciA9IGUuZWwsCiAgICAgIG4gPSB0eXBlb2YgciA9PSAic3RyaW5nIiAmJiByLnN0YXJ0c1dpdGgoIiMiKSwKICAgICAgaSA9CiAgICAgICAgdHlwZW9mIHIgPT0gInN0cmluZyIKICAgICAgICAgID8gbgogICAgICAgICAgICA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2xpY2UoMSkpCiAgICAgICAgICAgIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyKQogICAgICAgICAgOiByOwogICAgaWYgKCFpKSByZXR1cm47CiAgICB0ID0gZ2V0RWxlbWVudFBvc2l0aW9uKGksIGUpOwogIH0gZWxzZSB0ID0gZTsKICAic2Nyb2xsQmVoYXZpb3IiIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZQogICAgPyB3aW5kb3cuc2Nyb2xsVG8odCkKICAgIDogd2luZG93LnNjcm9sbFRvKAogICAgICB0LmxlZnQgIT0gbnVsbCA/IHQubGVmdCA6IHdpbmRvdy5zY3JvbGxYLAogICAgICB0LnRvcCAhPSBudWxsID8gdC50b3AgOiB3aW5kb3cuc2Nyb2xsWQogICAgKTsKfQpmdW5jdGlvbiBnZXRTY3JvbGxLZXkoZSwgdCkgewogIHJldHVybiAoaGlzdG9yeS5zdGF0ZSA/IGhpc3Rvcnkuc3RhdGUucG9zaXRpb24gLSB0IDogLTEpICsgZTsKfQpjb25zdCBzY3JvbGxQb3NpdGlvbnMgPSBuZXcgTWFwKCk7CmZ1bmN0aW9uIHNhdmVTY3JvbGxQb3NpdGlvbihlLCB0KSB7CiAgc2Nyb2xsUG9zaXRpb25zLnNldChlLCB0KTsKfQpmdW5jdGlvbiBnZXRTYXZlZFNjcm9sbFBvc2l0aW9uKGUpIHsKICBjb25zdCB0ID0gc2Nyb2xsUG9zaXRpb25zLmdldChlKTsKICByZXR1cm4gc2Nyb2xsUG9zaXRpb25zLmRlbGV0ZShlKSwgdDsKfQpsZXQgY3JlYXRlQmFzZUxvY2F0aW9uID0gKCkgPT4gbG9jYXRpb24ucHJvdG9jb2wgKyAiLy8iICsgbG9jYXRpb24uaG9zdDsKZnVuY3Rpb24gY3JlYXRlQ3VycmVudExvY2F0aW9uJDEoZSwgdCkgewogIGNvbnN0IHsgcGF0aG5hbWU6IHIsIHNlYXJjaDogbiwgaGFzaDogaSB9ID0gdCwKICAgIGEgPSBlLmluZGV4T2YoIiMiKTsKICBpZiAoYSA+IC0xKSB7CiAgICBsZXQgbCA9IGkuaW5jbHVkZXMoZS5zbGljZShhKSkgPyBlLnNsaWNlKGEpLmxlbmd0aCA6IDEsCiAgICAgIGMgPSBpLnNsaWNlKGwpOwogICAgcmV0dXJuIGNbMF0gIT09ICIvIiAmJiAoYyA9ICIvIiArIGMpLCBzdHJpcEJhc2UoYywgIiIpOwogIH0KICByZXR1cm4gc3RyaXBCYXNlKHIsIGUpICsgbiArIGk7Cn0KZnVuY3Rpb24gdXNlSGlzdG9yeUxpc3RlbmVycyhlLCB0LCByLCBuKSB7CiAgbGV0IGkgPSBbXSwKICAgIGEgPSBbXSwKICAgIG8gPSBudWxsOwogIGNvbnN0IGwgPSAoeyBzdGF0ZTogYiB9KSA9PiB7CiAgICBjb25zdCBQID0gY3JlYXRlQ3VycmVudExvY2F0aW9uJDEoZSwgbG9jYXRpb24pLAogICAgICBSID0gci52YWx1ZSwKICAgICAgVCA9IHQudmFsdWU7CiAgICBsZXQgTSA9IDA7CiAgICBpZiAoYikgewogICAgICBpZiAoKChyLnZhbHVlID0gUCksICh0LnZhbHVlID0gYiksIG8gJiYgbyA9PT0gUikpIHsKICAgICAgICBvID0gbnVsbDsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgTSA9IFQgPyBiLnBvc2l0aW9uIC0gVC5wb3NpdGlvbiA6IDA7CiAgICB9IGVsc2UgbihQKTsKICAgIGkuZm9yRWFjaCgoeCkgPT4gewogICAgICB4KHIudmFsdWUsIFIsIHsKICAgICAgICBkZWx0YTogTSwKICAgICAgICB0eXBlOiBOYXZpZ2F0aW9uVHlwZS5wb3AsCiAgICAgICAgZGlyZWN0aW9uOiBNCiAgICAgICAgICA/IE0gPiAwCiAgICAgICAgICAgID8gTmF2aWdhdGlvbkRpcmVjdGlvbi5mb3J3YXJkCiAgICAgICAgICAgIDogTmF2aWdhdGlvbkRpcmVjdGlvbi5iYWNrCiAgICAgICAgICA6IE5hdmlnYXRpb25EaXJlY3Rpb24udW5rbm93biwKICAgICAgfSk7CiAgICB9KTsKICB9OwogIGZ1bmN0aW9uIGMoKSB7CiAgICBvID0gci52YWx1ZTsKICB9CiAgZnVuY3Rpb24gdShiKSB7CiAgICBpLnB1c2goYik7CiAgICBjb25zdCBQID0gKCkgPT4gewogICAgICBjb25zdCBSID0gaS5pbmRleE9mKGIpOwogICAgICBSID4gLTEgJiYgaS5zcGxpY2UoUiwgMSk7CiAgICB9OwogICAgcmV0dXJuIGEucHVzaChQKSwgUDsKICB9CiAgZnVuY3Rpb24gZCgpIHsKICAgIGNvbnN0IHsgaGlzdG9yeTogYiB9ID0gd2luZG93OwogICAgYi5zdGF0ZSAmJgogICAgICBiLnJlcGxhY2VTdGF0ZSgKICAgICAgICBhc3NpZ24oe30sIGIuc3RhdGUsIHsgc2Nyb2xsOiBjb21wdXRlU2Nyb2xsUG9zaXRpb24oKSB9KSwKICAgICAgICAiIgogICAgICApOwogIH0KICBmdW5jdGlvbiBFKCkgewogICAgZm9yIChjb25zdCBiIG9mIGEpIGIoKTsKICAgIChhID0gW10pLAogICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLCBsKSwKICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsIGQpOwogIH0KICByZXR1cm4gKAogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwgbCksCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwgZCwgeyBwYXNzaXZlOiAhMCB9KSwKICAgIHsgcGF1c2VMaXN0ZW5lcnM6IGMsIGxpc3RlbjogdSwgZGVzdHJveTogRSB9CiAgKTsKfQpmdW5jdGlvbiBidWlsZFN0YXRlKGUsIHQsIHIsIG4gPSAhMSwgaSA9ICExKSB7CiAgcmV0dXJuIHsKICAgIGJhY2s6IGUsCiAgICBjdXJyZW50OiB0LAogICAgZm9yd2FyZDogciwKICAgIHJlcGxhY2VkOiBuLAogICAgcG9zaXRpb246IHdpbmRvdy5oaXN0b3J5Lmxlbmd0aCwKICAgIHNjcm9sbDogaSA/IGNvbXB1dGVTY3JvbGxQb3NpdGlvbigpIDogbnVsbCwKICB9Owp9CmZ1bmN0aW9uIHVzZUhpc3RvcnlTdGF0ZU5hdmlnYXRpb24oZSkgewogIGNvbnN0IHsgaGlzdG9yeTogdCwgbG9jYXRpb246IHIgfSA9IHdpbmRvdywKICAgIG4gPSB7IHZhbHVlOiBjcmVhdGVDdXJyZW50TG9jYXRpb24kMShlLCByKSB9LAogICAgaSA9IHsgdmFsdWU6IHQuc3RhdGUgfTsKICBpLnZhbHVlIHx8CiAgICBhKAogICAgICBuLnZhbHVlLAogICAgICB7CiAgICAgICAgYmFjazogbnVsbCwKICAgICAgICBjdXJyZW50OiBuLnZhbHVlLAogICAgICAgIGZvcndhcmQ6IG51bGwsCiAgICAgICAgcG9zaXRpb246IHQubGVuZ3RoIC0gMSwKICAgICAgICByZXBsYWNlZDogITAsCiAgICAgICAgc2Nyb2xsOiBudWxsLAogICAgICB9LAogICAgICAhMAogICAgKTsKICBmdW5jdGlvbiBhKGMsIHUsIGQpIHsKICAgIGNvbnN0IEUgPSBlLmluZGV4T2YoIiMiKTsKICAgIGxldCBiID0gRSA+IC0xCiAgICAgID8gKHIuaG9zdCAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJiYXNlIikgPyBlIDogZS5zbGljZShFKSkgKyBjCiAgICAgIDogY3JlYXRlQmFzZUxvY2F0aW9uKCkgKyBlICsgYzsKCiAgICAvLyDDkMKjw5DCtMOQwrDDkMK7w5HCj8OQwrXDkMK8IC9SdSDDkMK4w5DCtyDDkMK9w5DCvsOQwrLDkMK+w5DCs8OQwr4gw5DCv8ORxpLDkeKAmsOQwrgKICAgIGlmIChiLmluY2x1ZGVzKCIvUnUiKSkgewogICAgICBiID0gYi5yZXBsYWNlKCIvUnUiLCAiIik7CiAgICB9CgogICAgdHJ5IHsKICAgICAgLy8gw5DFvsOR4oChw5DCuMOR4oCww5DCsMOQwrXDkMK8IC9SdSDDkMK4w5DCtyDDkMKyw5HCgcOQwrXDkeKApiDDkcKBw5DCvsORwoHDkeKAmsOQwr7DkcKPw5DCvcOQwrjDkMK5CiAgICAgIGlmICh1LmN1cnJlbnQgJiYgdS5jdXJyZW50LmluY2x1ZGVzKCIvUnUiKSkgewogICAgICAgIHUuY3VycmVudCA9IHUuY3VycmVudC5yZXBsYWNlKCIvUnUiLCAiIik7CiAgICAgIH0KICAgICAgaWYgKHUuYmFjayAmJiB1LmJhY2suaW5jbHVkZXMoIi9SdSIpKSB7CiAgICAgICAgdS5iYWNrID0gdS5iYWNrLnJlcGxhY2UoIi9SdSIsICIiKTsKICAgICAgfQogICAgICBpZiAodS5mb3J3YXJkICYmIHUuZm9yd2FyZC5pbmNsdWRlcygiL1J1IikpIHsKICAgICAgICB1LmZvcndhcmQgPSB1LmZvcndhcmQucmVwbGFjZSgiL1J1IiwgIiIpOwogICAgICB9CgogICAgICAvLyDDkMKhw5DCvsOR4oCmw5HigqzDkMKww5DCvcORwo/DkMK1w5DCvCDDkeKAmsOQwrXDkMK6w5HGksOR4oCww5DCuMOQwrUgw5DCv8OQwrDDkeKCrMOQwrDDkMK8w5DCtcOR4oCaw5HigqzDkeKAuSBVUkwKICAgICAgY29uc3QgY3VycmVudFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkudG9TdHJpbmcoKTsKICAgICAgaWYgKGN1cnJlbnRQYXJhbXMgJiYgIWIuaW5jbHVkZXMoJz8nKSkgewogICAgICAgIGIgPSBiICsgJz8nICsgY3VycmVudFBhcmFtczsKICAgICAgfQoKICAgICAgdFtkID8gInJlcGxhY2VTdGF0ZSIgOiAicHVzaFN0YXRlIl0odSwgIiIsIGIpOwogICAgICBpLnZhbHVlID0gdTsKICAgIH0gY2F0Y2ggKFApIHsKICAgICAgY29uc29sZS5lcnJvcihQKTsKICAgICAgcltkID8gInJlcGxhY2UiIDogImFzc2lnbiJdKGIpOwogICAgfQogIH0KICBmdW5jdGlvbiBvKGMsIHUpIHsKICAgIGNvbnN0IGQgPSBhc3NpZ24oCiAgICAgIHt9LAogICAgICB0LnN0YXRlLAogICAgICBidWlsZFN0YXRlKGkudmFsdWUuYmFjaywgYywgaS52YWx1ZS5mb3J3YXJkLCAhMCksCiAgICAgIHUsCiAgICAgIHsgcG9zaXRpb246IGkudmFsdWUucG9zaXRpb24gfQogICAgKTsKICAgIGEoYywgZCwgITApLCAobi52YWx1ZSA9IGMpOwogIH0KICBmdW5jdGlvbiBsKGMsIHUpIHsKICAgIGNvbnN0IGQgPSBhc3NpZ24oe30sIGkudmFsdWUsIHQuc3RhdGUsIHsKICAgICAgZm9yd2FyZDogYywKICAgICAgc2Nyb2xsOiBjb21wdXRlU2Nyb2xsUG9zaXRpb24oKSwKICAgIH0pOwogICAgYShkLmN1cnJlbnQsIGQsICEwKTsKICAgIGNvbnN0IEUgPSBhc3NpZ24oCiAgICAgIHt9LAogICAgICBidWlsZFN0YXRlKG4udmFsdWUsIGMsIG51bGwpLAogICAgICB7IHBvc2l0aW9uOiBkLnBvc2l0aW9uICsgMSB9LAogICAgICB1CiAgICApOwogICAgYShjLCBFLCAhMSksIChuLnZhbHVlID0gYyk7CiAgfQogIHJldHVybiB7IGxvY2F0aW9uOiBuLCBzdGF0ZTogaSwgcHVzaDogbCwgcmVwbGFjZTogbyB9Owp9CmZ1bmN0aW9uIGNyZWF0ZVdlYkhpc3RvcnkoZSkgewogIGUgPSBub3JtYWxpemVCYXNlKGUpOwogIGNvbnN0IHQgPSB1c2VIaXN0b3J5U3RhdGVOYXZpZ2F0aW9uKGUpLAogICAgciA9IHVzZUhpc3RvcnlMaXN0ZW5lcnMoZSwgdC5zdGF0ZSwgdC5sb2NhdGlvbiwgdC5yZXBsYWNlKTsKICBmdW5jdGlvbiBuKGEsIG8gPSAhMCkgewogICAgbyB8fCByLnBhdXNlTGlzdGVuZXJzKCksIGhpc3RvcnkuZ28oYSk7CiAgfQogIGNvbnN0IGkgPSBhc3NpZ24oCiAgICB7IGxvY2F0aW9uOiAiIiwgYmFzZTogZSwgZ286IG4sIGNyZWF0ZUhyZWY6IGNyZWF0ZUhyZWYuYmluZChudWxsLCBlKSB9LAogICAgdCwKICAgIHIKICApOwogIHJldHVybiAoCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwgImxvY2F0aW9uIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiB0LmxvY2F0aW9uLnZhbHVlLAogICAgfSksCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwgInN0YXRlIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiB0LnN0YXRlLnZhbHVlLAogICAgfSksCiAgICBpCiAgKTsKfQpmdW5jdGlvbiBpc1JvdXRlTG9jYXRpb24oZSkgewogIHJldHVybiB0eXBlb2YgZSA9PSAic3RyaW5nIiB8fCAoZSAmJiB0eXBlb2YgZSA9PSAib2JqZWN0Iik7Cn0KZnVuY3Rpb24gaXNSb3V0ZU5hbWUoZSkgewogIHJldHVybiB0eXBlb2YgZSA9PSAic3RyaW5nIiB8fCB0eXBlb2YgZSA9PSAic3ltYm9sIjsKfQpjb25zdCBOYXZpZ2F0aW9uRmFpbHVyZVN5bWJvbCA9IFN5bWJvbCgiIik7CnZhciBOYXZpZ2F0aW9uRmFpbHVyZVR5cGU7CihmdW5jdGlvbiAoZSkgewogIChlWyhlLmFib3J0ZWQgPSA0KV0gPSAiYWJvcnRlZCIpLAogICAgKGVbKGUuY2FuY2VsbGVkID0gOCldID0gImNhbmNlbGxlZCIpLAogICAgKGVbKGUuZHVwbGljYXRlZCA9IDE2KV0gPSAiZHVwbGljYXRlZCIpOwp9KShOYXZpZ2F0aW9uRmFpbHVyZVR5cGUgfHwgKE5hdmlnYXRpb25GYWlsdXJlVHlwZSA9IHt9KSk7CmZ1bmN0aW9uIGNyZWF0ZVJvdXRlckVycm9yKGUsIHQpIHsKICByZXR1cm4gYXNzaWduKG5ldyBFcnJvcigpLCB7IHR5cGU6IGUsIFtOYXZpZ2F0aW9uRmFpbHVyZVN5bWJvbF06ICEwIH0sIHQpOwp9CmZ1bmN0aW9uIGlzTmF2aWdhdGlvbkZhaWx1cmUoZSwgdCkgewogIHJldHVybiAoCiAgICBlIGluc3RhbmNlb2YgRXJyb3IgJiYKICAgIE5hdmlnYXRpb25GYWlsdXJlU3ltYm9sIGluIGUgJiYKICAgICh0ID09IG51bGwgfHwgISEoZS50eXBlICYgdCkpCiAgKTsKfQpjb25zdCBCQVNFX1BBUkFNX1BBVFRFUk4gPSAiW14vXSs/IiwKICBCQVNFX1BBVEhfUEFSU0VSX09QVElPTlMgPSB7IHNlbnNpdGl2ZTogITEsIHN0cmljdDogITEsIHN0YXJ0OiAhMCwgZW5kOiAhMCB9LAogIFJFR0VYX0NIQVJTX1JFID0gL1suKyo/XiR7fSgpW1xdL1xcXS9nOwpmdW5jdGlvbiB0b2tlbnNUb1BhcnNlcihlLCB0KSB7CiAgY29uc3QgciA9IGFzc2lnbih7fSwgQkFTRV9QQVRIX1BBUlNFUl9PUFRJT05TLCB0KSwKICAgIG4gPSBbXTsKICBsZXQgaSA9IHIuc3RhcnQgPyAiXiIgOiAiIjsKICBjb25zdCBhID0gW107CiAgZm9yIChjb25zdCB1IG9mIGUpIHsKICAgIGNvbnN0IGQgPSB1Lmxlbmd0aCA/IFtdIDogWzkwXTsKICAgIHIuc3RyaWN0ICYmICF1Lmxlbmd0aCAmJiAoaSArPSAiLyIpOwogICAgZm9yIChsZXQgRSA9IDA7IEUgPCB1Lmxlbmd0aDsgRSsrKSB7CiAgICAgIGNvbnN0IGIgPSB1W0VdOwogICAgICBsZXQgUCA9IDQwICsgKHIuc2Vuc2l0aXZlID8gMC4yNSA6IDApOwogICAgICBpZiAoYi50eXBlID09PSAwKQogICAgICAgIEUgfHwgKGkgKz0gIi8iKSwKICAgICAgICAgIChpICs9IGIudmFsdWUucmVwbGFjZShSRUdFWF9DSEFSU19SRSwgIlxcJCYiKSksCiAgICAgICAgICAoUCArPSA0MCk7CiAgICAgIGVsc2UgaWYgKGIudHlwZSA9PT0gMSkgewogICAgICAgIGNvbnN0IHsgdmFsdWU6IFIsIHJlcGVhdGFibGU6IFQsIG9wdGlvbmFsOiBNLCByZWdleHA6IHggfSA9IGI7CiAgICAgICAgYS5wdXNoKHsgbmFtZTogUiwgcmVwZWF0YWJsZTogVCwgb3B0aW9uYWw6IE0gfSk7CiAgICAgICAgY29uc3QgayA9IHggfHwgQkFTRV9QQVJBTV9QQVRURVJOOwogICAgICAgIGlmIChrICE9PSBCQVNFX1BBUkFNX1BBVFRFUk4pIHsKICAgICAgICAgIFAgKz0gMTA7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBuZXcgUmVnRXhwKGAoJHtrfSlgKTsKICAgICAgICAgIH0gY2F0Y2ggKEEpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAgIGBJbnZhbGlkIGN1c3RvbSBSZWdFeHAgZm9yIHBhcmFtICIke1J9IiAoJHtrfSk6IGAgKyBBLm1lc3NhZ2UKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGV0IFMgPSBUID8gYCgoPzoke2t9KSg/Oi8oPzoke2t9KSkqKWAgOiBgKCR7a30pYDsKICAgICAgICBFIHx8IChTID0gTSAmJiB1Lmxlbmd0aCA8IDIgPyBgKD86LyR7U30pYCA6ICIvIiArIFMpLAogICAgICAgICAgTSAmJiAoUyArPSAiPyIpLAogICAgICAgICAgKGkgKz0gUyksCiAgICAgICAgICAoUCArPSAyMCksCiAgICAgICAgICBNICYmIChQICs9IC04KSwKICAgICAgICAgIFQgJiYgKFAgKz0gLTIwKSwKICAgICAgICAgIGsgPT09ICIuKiIgJiYgKFAgKz0gLTUwKTsKICAgICAgfQogICAgICBkLnB1c2goUCk7CiAgICB9CiAgICBuLnB1c2goZCk7CiAgfQogIGlmIChyLnN0cmljdCAmJiByLmVuZCkgewogICAgY29uc3QgdSA9IG4ubGVuZ3RoIC0gMTsKICAgIG5bdV1bblt1XS5sZW5ndGggLSAxXSArPSAwLjcwMDAwMDAwMDAwMDAwMDE7CiAgfQogIHIuc3RyaWN0IHx8IChpICs9ICIvPyIpLAogICAgci5lbmQgPyAoaSArPSAiJCIpIDogci5zdHJpY3QgJiYgIWkuZW5kc1dpdGgoIi8iKSAmJiAoaSArPSAiKD86L3wkKSIpOwogIGNvbnN0IG8gPSBuZXcgUmVnRXhwKGksIHIuc2Vuc2l0aXZlID8gIiIgOiAiaSIpOwogIGZ1bmN0aW9uIGwodSkgewogICAgY29uc3QgZCA9IHUubWF0Y2gobyksCiAgICAgIEUgPSB7fTsKICAgIGlmICghZCkgcmV0dXJuIG51bGw7CiAgICBmb3IgKGxldCBiID0gMTsgYiA8IGQubGVuZ3RoOyBiKyspIHsKICAgICAgY29uc3QgUCA9IGRbYl0gfHwgIiIsCiAgICAgICAgUiA9IGFbYiAtIDFdOwogICAgICBFW1IubmFtZV0gPSBQICYmIFIucmVwZWF0YWJsZSA/IFAuc3BsaXQoIi8iKSA6IFA7CiAgICB9CiAgICByZXR1cm4gRTsKICB9CiAgZnVuY3Rpb24gYyh1KSB7CiAgICBsZXQgZCA9ICIiLAogICAgICBFID0gITE7CiAgICBmb3IgKGNvbnN0IGIgb2YgZSkgewogICAgICAoIUUgfHwgIWQuZW5kc1dpdGgoIi8iKSkgJiYgKGQgKz0gIi8iKSwgKEUgPSAhMSk7CiAgICAgIGZvciAoY29uc3QgUCBvZiBiKQogICAgICAgIGlmIChQLnR5cGUgPT09IDApIGQgKz0gUC52YWx1ZTsKICAgICAgICBlbHNlIGlmIChQLnR5cGUgPT09IDEpIHsKICAgICAgICAgIGNvbnN0IHsgdmFsdWU6IFIsIHJlcGVhdGFibGU6IFQsIG9wdGlvbmFsOiBNIH0gPSBQLAogICAgICAgICAgICB4ID0gUiBpbiB1ID8gdVtSXSA6ICIiOwogICAgICAgICAgaWYgKGlzQXJyYXkoeCkgJiYgIVQpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgICBgUHJvdmlkZWQgcGFyYW0gIiR7Un0iIGlzIGFuIGFycmF5IGJ1dCBpdCBpcyBub3QgcmVwZWF0YWJsZSAoKiBvciArIG1vZGlmaWVycylgCiAgICAgICAgICAgICk7CiAgICAgICAgICBjb25zdCBrID0gaXNBcnJheSh4KSA/IHguam9pbigiLyIpIDogeDsKICAgICAgICAgIGlmICghaykKICAgICAgICAgICAgaWYgKE0pCiAgICAgICAgICAgICAgYi5sZW5ndGggPCAyICYmCiAgICAgICAgICAgICAgICAoZC5lbmRzV2l0aCgiLyIpID8gKGQgPSBkLnNsaWNlKDAsIC0xKSkgOiAoRSA9ICEwKSk7CiAgICAgICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIHBhcmFtICIke1J9ImApOwogICAgICAgICAgZCArPSBrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBkIHx8ICIvIjsKICB9CiAgcmV0dXJuIHsgcmU6IG8sIHNjb3JlOiBuLCBrZXlzOiBhLCBwYXJzZTogbCwgc3RyaW5naWZ5OiBjIH07Cn0KZnVuY3Rpb24gY29tcGFyZVNjb3JlQXJyYXkoZSwgdCkgewogIGxldCByID0gMDsKICBmb3IgKDsgciA8IGUubGVuZ3RoICYmIHIgPCB0Lmxlbmd0aDspIHsKICAgIGNvbnN0IG4gPSB0W3JdIC0gZVtyXTsKICAgIGlmIChuKSByZXR1cm4gbjsKICAgIHIrKzsKICB9CiAgcmV0dXJuIGUubGVuZ3RoIDwgdC5sZW5ndGgKICAgID8gZS5sZW5ndGggPT09IDEgJiYgZVswXSA9PT0gODAKICAgICAgPyAtMQogICAgICA6IDEKICAgIDogZS5sZW5ndGggPiB0Lmxlbmd0aAogICAgICA/IHQubGVuZ3RoID09PSAxICYmIHRbMF0gPT09IDgwCiAgICAgICAgPyAxCiAgICAgICAgOiAtMQogICAgICA6IDA7Cn0KZnVuY3Rpb24gY29tcGFyZVBhdGhQYXJzZXJTY29yZShlLCB0KSB7CiAgbGV0IHIgPSAwOwogIGNvbnN0IG4gPSBlLnNjb3JlLAogICAgaSA9IHQuc2NvcmU7CiAgZm9yICg7IHIgPCBuLmxlbmd0aCAmJiByIDwgaS5sZW5ndGg7KSB7CiAgICBjb25zdCBhID0gY29tcGFyZVNjb3JlQXJyYXkobltyXSwgaVtyXSk7CiAgICBpZiAoYSkgcmV0dXJuIGE7CiAgICByKys7CiAgfQogIGlmIChNYXRoLmFicyhpLmxlbmd0aCAtIG4ubGVuZ3RoKSA9PT0gMSkgewogICAgaWYgKGlzTGFzdFNjb3JlTmVnYXRpdmUobikpIHJldHVybiAxOwogICAgaWYgKGlzTGFzdFNjb3JlTmVnYXRpdmUoaSkpIHJldHVybiAtMTsKICB9CiAgcmV0dXJuIGkubGVuZ3RoIC0gbi5sZW5ndGg7Cn0KZnVuY3Rpb24gaXNMYXN0U2NvcmVOZWdhdGl2ZShlKSB7CiAgY29uc3QgdCA9IGVbZS5sZW5ndGggLSAxXTsKICByZXR1cm4gZS5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSA8IDA7Cn0KY29uc3QgUk9PVF9UT0tFTiA9IHsgdHlwZTogMCwgdmFsdWU6ICIiIH0sCiAgVkFMSURfUEFSQU1fUkUgPSAvW2EtekEtWjAtOV9dLzsKZnVuY3Rpb24gdG9rZW5pemVQYXRoKGUpIHsKICBpZiAoIWUpIHJldHVybiBbW11dOwogIGlmIChlID09PSAiLyIpIHJldHVybiBbW1JPT1RfVE9LRU5dXTsKICBpZiAoIWUuc3RhcnRzV2l0aCgiLyIpKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGF0aCAiJHtlfSJgKTsKICBmdW5jdGlvbiB0KFApIHsKICAgIHRocm93IG5ldyBFcnJvcihgRVJSICgke3J9KS8iJHt1fSI6ICR7UH1gKTsKICB9CiAgbGV0IHIgPSAwLAogICAgbiA9IHI7CiAgY29uc3QgaSA9IFtdOwogIGxldCBhOwogIGZ1bmN0aW9uIG8oKSB7CiAgICBhICYmIGkucHVzaChhKSwgKGEgPSBbXSk7CiAgfQogIGxldCBsID0gMCwKICAgIGMsCiAgICB1ID0gIiIsCiAgICBkID0gIiI7CiAgZnVuY3Rpb24gRSgpIHsKICAgIHUgJiYKICAgICAgKHIgPT09IDAKICAgICAgICA/IGEucHVzaCh7IHR5cGU6IDAsIHZhbHVlOiB1IH0pCiAgICAgICAgOiByID09PSAxIHx8IHIgPT09IDIgfHwgciA9PT0gMwogICAgICAgICAgPyAoYS5sZW5ndGggPiAxICYmCiAgICAgICAgICAgIChjID09PSAiKiIgfHwgYyA9PT0gIisiKSAmJgogICAgICAgICAgICB0KAogICAgICAgICAgICAgIGBBIHJlcGVhdGFibGUgcGFyYW0gKCR7dX0pIG11c3QgYmUgYWxvbmUgaW4gaXRzIHNlZ21lbnQuIGVnOiAnLzppZHMrLmAKICAgICAgICAgICAgKSwKICAgICAgICAgICAgYS5wdXNoKHsKICAgICAgICAgICAgICB0eXBlOiAxLAogICAgICAgICAgICAgIHZhbHVlOiB1LAogICAgICAgICAgICAgIHJlZ2V4cDogZCwKICAgICAgICAgICAgICByZXBlYXRhYmxlOiBjID09PSAiKiIgfHwgYyA9PT0gIisiLAogICAgICAgICAgICAgIG9wdGlvbmFsOiBjID09PSAiKiIgfHwgYyA9PT0gIj8iLAogICAgICAgICAgICB9KSkKICAgICAgICAgIDogdCgiSW52YWxpZCBzdGF0ZSB0byBjb25zdW1lIGJ1ZmZlciIpLAogICAgICAgICh1ID0gIiIpKTsKICB9CiAgZnVuY3Rpb24gYigpIHsKICAgIHUgKz0gYzsKICB9CiAgZm9yICg7IGwgPCBlLmxlbmd0aDspIHsKICAgIGlmICgoKGMgPSBlW2wrK10pLCBjID09PSAiXFwiICYmIHIgIT09IDIpKSB7CiAgICAgIChuID0gciksIChyID0gNCk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgc3dpdGNoIChyKSB7CiAgICAgIGNhc2UgMDoKICAgICAgICBjID09PSAiLyIgPyAodSAmJiBFKCksIG8oKSkgOiBjID09PSAiOiIgPyAoRSgpLCAociA9IDEpKSA6IGIoKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSA0OgogICAgICAgIGIoKSwgKHIgPSBuKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAxOgogICAgICAgIGMgPT09ICIoIgogICAgICAgICAgPyAociA9IDIpCiAgICAgICAgICA6IFZBTElEX1BBUkFNX1JFLnRlc3QoYykKICAgICAgICAgICAgPyBiKCkKICAgICAgICAgICAgOiAoRSgpLCAociA9IDApLCBjICE9PSAiKiIgJiYgYyAhPT0gIj8iICYmIGMgIT09ICIrIiAmJiBsLS0pOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIDI6CiAgICAgICAgYyA9PT0gIikiCiAgICAgICAgICA/IGRbZC5sZW5ndGggLSAxXSA9PSAiXFwiCiAgICAgICAgICAgID8gKGQgPSBkLnNsaWNlKDAsIC0xKSArIGMpCiAgICAgICAgICAgIDogKHIgPSAzKQogICAgICAgICAgOiAoZCArPSBjKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAzOgogICAgICAgIEUoKSwgKHIgPSAwKSwgYyAhPT0gIioiICYmIGMgIT09ICI/IiAmJiBjICE9PSAiKyIgJiYgbC0tLCAoZCA9ICIiKTsKICAgICAgICBicmVhazsKICAgICAgZGVmYXVsdDoKICAgICAgICB0KCJVbmtub3duIHN0YXRlIik7CiAgICAgICAgYnJlYWs7CiAgICB9CiAgfQogIHJldHVybiByID09PSAyICYmIHQoYFVuZmluaXNoZWQgY3VzdG9tIFJlZ0V4cCBmb3IgcGFyYW0gIiR7dX0iYCksIEUoKSwgbygpLCBpOwp9CmZ1bmN0aW9uIGNyZWF0ZVJvdXRlUmVjb3JkTWF0Y2hlcihlLCB0LCByKSB7CiAgY29uc3QgbiA9IHRva2Vuc1RvUGFyc2VyKHRva2VuaXplUGF0aChlLnBhdGgpLCByKSwKICAgIGkgPSBhc3NpZ24obiwgeyByZWNvcmQ6IGUsIHBhcmVudDogdCwgY2hpbGRyZW46IFtdLCBhbGlhczogW10gfSk7CiAgcmV0dXJuIHQgJiYgIWkucmVjb3JkLmFsaWFzT2YgPT0gIXQucmVjb3JkLmFsaWFzT2YgJiYgdC5jaGlsZHJlbi5wdXNoKGkpLCBpOwp9CmZ1bmN0aW9uIGNyZWF0ZVJvdXRlck1hdGNoZXIoZSwgdCkgewogIGNvbnN0IHIgPSBbXSwKICAgIG4gPSBuZXcgTWFwKCk7CiAgdCA9IG1lcmdlT3B0aW9ucyh7IHN0cmljdDogITEsIGVuZDogITAsIHNlbnNpdGl2ZTogITEgfSwgdCk7CiAgZnVuY3Rpb24gaShFKSB7CiAgICByZXR1cm4gbi5nZXQoRSk7CiAgfQogIGZ1bmN0aW9uIGEoRSwgYiwgUCkgewogICAgY29uc3QgUiA9ICFQLAogICAgICBUID0gbm9ybWFsaXplUm91dGVSZWNvcmQoRSk7CiAgICBULmFsaWFzT2YgPSBQICYmIFAucmVjb3JkOwogICAgY29uc3QgTSA9IG1lcmdlT3B0aW9ucyh0LCBFKSwKICAgICAgeCA9IFtUXTsKICAgIGlmICgiYWxpYXMiIGluIEUpIHsKICAgICAgY29uc3QgQSA9IHR5cGVvZiBFLmFsaWFzID09ICJzdHJpbmciID8gW0UuYWxpYXNdIDogRS5hbGlhczsKICAgICAgZm9yIChjb25zdCBPIG9mIEEpCiAgICAgICAgeC5wdXNoKAogICAgICAgICAgbm9ybWFsaXplUm91dGVSZWNvcmQoCiAgICAgICAgICAgIGFzc2lnbih7fSwgVCwgewogICAgICAgICAgICAgIGNvbXBvbmVudHM6IFAgPyBQLnJlY29yZC5jb21wb25lbnRzIDogVC5jb21wb25lbnRzLAogICAgICAgICAgICAgIHBhdGg6IE8sCiAgICAgICAgICAgICAgYWxpYXNPZjogUCA/IFAucmVjb3JkIDogVCwKICAgICAgICAgICAgfSkKICAgICAgICAgICkKICAgICAgICApOwogICAgfQogICAgbGV0IGssIFM7CiAgICBmb3IgKGNvbnN0IEEgb2YgeCkgewogICAgICBjb25zdCB7IHBhdGg6IE8gfSA9IEE7CiAgICAgIGlmIChiICYmIE9bMF0gIT09ICIvIikgewogICAgICAgIGNvbnN0IEYgPSBiLnJlY29yZC5wYXRoLAogICAgICAgICAgRCA9IEZbRi5sZW5ndGggLSAxXSA9PT0gIi8iID8gIiIgOiAiLyI7CiAgICAgICAgQS5wYXRoID0gYi5yZWNvcmQucGF0aCArIChPICYmIEQgKyBPKTsKICAgICAgfQogICAgICBpZiAoCiAgICAgICAgKChrID0gY3JlYXRlUm91dGVSZWNvcmRNYXRjaGVyKEEsIGIsIE0pKSwKICAgICAgICAgIFAKICAgICAgICAgICAgPyBQLmFsaWFzLnB1c2goaykKICAgICAgICAgICAgOiAoKFMgPSBTIHx8IGspLAogICAgICAgICAgICAgIFMgIT09IGsgJiYgUy5hbGlhcy5wdXNoKGspLAogICAgICAgICAgICAgIFIgJiYgRS5uYW1lICYmICFpc0FsaWFzUmVjb3JkKGspICYmIG8oRS5uYW1lKSksCiAgICAgICAgICBpc01hdGNoYWJsZShrKSAmJiBjKGspLAogICAgICAgICAgVC5jaGlsZHJlbikKICAgICAgKSB7CiAgICAgICAgY29uc3QgRiA9IFQuY2hpbGRyZW47CiAgICAgICAgZm9yIChsZXQgRCA9IDA7IEQgPCBGLmxlbmd0aDsgRCsrKSBhKEZbRF0sIGssIFAgJiYgUC5jaGlsZHJlbltEXSk7CiAgICAgIH0KICAgICAgUCA9IFAgfHwgazsKICAgIH0KICAgIHJldHVybiBTCiAgICAgID8gKCkgPT4gewogICAgICAgIG8oUyk7CiAgICAgIH0KICAgICAgOiBub29wOwogIH0KICBmdW5jdGlvbiBvKEUpIHsKICAgIGlmIChpc1JvdXRlTmFtZShFKSkgewogICAgICBjb25zdCBiID0gbi5nZXQoRSk7CiAgICAgIGIgJiYKICAgICAgICAobi5kZWxldGUoRSksCiAgICAgICAgICByLnNwbGljZShyLmluZGV4T2YoYiksIDEpLAogICAgICAgICAgYi5jaGlsZHJlbi5mb3JFYWNoKG8pLAogICAgICAgICAgYi5hbGlhcy5mb3JFYWNoKG8pKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IGIgPSByLmluZGV4T2YoRSk7CiAgICAgIGIgPiAtMSAmJgogICAgICAgIChyLnNwbGljZShiLCAxKSwKICAgICAgICAgIEUucmVjb3JkLm5hbWUgJiYgbi5kZWxldGUoRS5yZWNvcmQubmFtZSksCiAgICAgICAgICBFLmNoaWxkcmVuLmZvckVhY2gobyksCiAgICAgICAgICBFLmFsaWFzLmZvckVhY2gobykpOwogICAgfQogIH0KICBmdW5jdGlvbiBsKCkgewogICAgcmV0dXJuIHI7CiAgfQogIGZ1bmN0aW9uIGMoRSkgewogICAgY29uc3QgYiA9IGZpbmRJbnNlcnRpb25JbmRleChFLCByKTsKICAgIHIuc3BsaWNlKGIsIDAsIEUpLAogICAgICBFLnJlY29yZC5uYW1lICYmICFpc0FsaWFzUmVjb3JkKEUpICYmIG4uc2V0KEUucmVjb3JkLm5hbWUsIEUpOwogIH0KICBmdW5jdGlvbiB1KEUsIGIpIHsKICAgIGxldCBQLAogICAgICBSID0ge30sCiAgICAgIFQsCiAgICAgIE07CiAgICBpZiAoIm5hbWUiIGluIEUgJiYgRS5uYW1lKSB7CiAgICAgIGlmICgoKFAgPSBuLmdldChFLm5hbWUpKSwgIVApKQogICAgICAgIHRocm93IGNyZWF0ZVJvdXRlckVycm9yKDEsIHsgbG9jYXRpb246IEUgfSk7CiAgICAgIChNID0gUC5yZWNvcmQubmFtZSksCiAgICAgICAgKFIgPSBhc3NpZ24oCiAgICAgICAgICBwYXJhbXNGcm9tTG9jYXRpb24oCiAgICAgICAgICAgIGIucGFyYW1zLAogICAgICAgICAgICBQLmtleXMKICAgICAgICAgICAgICAuZmlsdGVyKChTKSA9PiAhUy5vcHRpb25hbCkKICAgICAgICAgICAgICAuY29uY2F0KFAucGFyZW50ID8gUC5wYXJlbnQua2V5cy5maWx0ZXIoKFMpID0+IFMub3B0aW9uYWwpIDogW10pCiAgICAgICAgICAgICAgLm1hcCgoUykgPT4gUy5uYW1lKQogICAgICAgICAgKSwKICAgICAgICAgIEUucGFyYW1zICYmCiAgICAgICAgICBwYXJhbXNGcm9tTG9jYXRpb24oCiAgICAgICAgICAgIEUucGFyYW1zLAogICAgICAgICAgICBQLmtleXMubWFwKChTKSA9PiBTLm5hbWUpCiAgICAgICAgICApCiAgICAgICAgKSksCiAgICAgICAgKFQgPSBQLnN0cmluZ2lmeShSKSk7CiAgICB9IGVsc2UgaWYgKEUucGF0aCAhPSBudWxsKQogICAgICAoVCA9IEUucGF0aCksCiAgICAgICAgKFAgPSByLmZpbmQoKFMpID0+IFMucmUudGVzdChUKSkpLAogICAgICAgIFAgJiYgKChSID0gUC5wYXJzZShUKSksIChNID0gUC5yZWNvcmQubmFtZSkpOwogICAgZWxzZSB7CiAgICAgIGlmICgoKFAgPSBiLm5hbWUgPyBuLmdldChiLm5hbWUpIDogci5maW5kKChTKSA9PiBTLnJlLnRlc3QoYi5wYXRoKSkpLCAhUCkpCiAgICAgICAgdGhyb3cgY3JlYXRlUm91dGVyRXJyb3IoMSwgeyBsb2NhdGlvbjogRSwgY3VycmVudExvY2F0aW9uOiBiIH0pOwogICAgICAoTSA9IFAucmVjb3JkLm5hbWUpLAogICAgICAgIChSID0gYXNzaWduKHt9LCBiLnBhcmFtcywgRS5wYXJhbXMpKSwKICAgICAgICAoVCA9IFAuc3RyaW5naWZ5KFIpKTsKICAgIH0KICAgIGNvbnN0IHggPSBbXTsKICAgIGxldCBrID0gUDsKICAgIGZvciAoOyBrOykgeC51bnNoaWZ0KGsucmVjb3JkKSwgKGsgPSBrLnBhcmVudCk7CiAgICByZXR1cm4gewogICAgICBuYW1lOiBNLAogICAgICBwYXRoOiBULAogICAgICBwYXJhbXM6IFIsCiAgICAgIG1hdGNoZWQ6IHgsCiAgICAgIG1ldGE6IG1lcmdlTWV0YUZpZWxkcyh4KSwKICAgIH07CiAgfQogIGUuZm9yRWFjaCgoRSkgPT4gYShFKSk7CiAgZnVuY3Rpb24gZCgpIHsKICAgIChyLmxlbmd0aCA9IDApLCBuLmNsZWFyKCk7CiAgfQogIHJldHVybiB7CiAgICBhZGRSb3V0ZTogYSwKICAgIHJlc29sdmU6IHUsCiAgICByZW1vdmVSb3V0ZTogbywKICAgIGNsZWFyUm91dGVzOiBkLAogICAgZ2V0Um91dGVzOiBsLAogICAgZ2V0UmVjb3JkTWF0Y2hlcjogaSwKICB9Owp9CmZ1bmN0aW9uIHBhcmFtc0Zyb21Mb2NhdGlvbihlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIGZvciAoY29uc3QgbiBvZiB0KSBuIGluIGUgJiYgKHJbbl0gPSBlW25dKTsKICByZXR1cm4gcjsKfQpmdW5jdGlvbiBub3JtYWxpemVSb3V0ZVJlY29yZChlKSB7CiAgY29uc3QgdCA9IHsKICAgIHBhdGg6IGUucGF0aCwKICAgIHJlZGlyZWN0OiBlLnJlZGlyZWN0LAogICAgbmFtZTogZS5uYW1lLAogICAgbWV0YTogZS5tZXRhIHx8IHt9LAogICAgYWxpYXNPZjogZS5hbGlhc09mLAogICAgYmVmb3JlRW50ZXI6IGUuYmVmb3JlRW50ZXIsCiAgICBwcm9wczogbm9ybWFsaXplUmVjb3JkUHJvcHMoZSksCiAgICBjaGlsZHJlbjogZS5jaGlsZHJlbiB8fCBbXSwKICAgIGluc3RhbmNlczoge30sCiAgICBsZWF2ZUd1YXJkczogbmV3IFNldCgpLAogICAgdXBkYXRlR3VhcmRzOiBuZXcgU2V0KCksCiAgICBlbnRlckNhbGxiYWNrczoge30sCiAgICBjb21wb25lbnRzOgogICAgICAiY29tcG9uZW50cyIgaW4gZQogICAgICAgID8gZS5jb21wb25lbnRzIHx8IG51bGwKICAgICAgICA6IGUuY29tcG9uZW50ICYmIHsgZGVmYXVsdDogZS5jb21wb25lbnQgfSwKICB9OwogIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgIm1vZHMiLCB7IHZhbHVlOiB7fSB9KSwgdDsKfQpmdW5jdGlvbiBub3JtYWxpemVSZWNvcmRQcm9wcyhlKSB7CiAgY29uc3QgdCA9IHt9LAogICAgciA9IGUucHJvcHMgfHwgITE7CiAgaWYgKCJjb21wb25lbnQiIGluIGUpIHQuZGVmYXVsdCA9IHI7CiAgZWxzZSBmb3IgKGNvbnN0IG4gaW4gZS5jb21wb25lbnRzKSB0W25dID0gdHlwZW9mIHIgPT0gIm9iamVjdCIgPyByW25dIDogcjsKICByZXR1cm4gdDsKfQpmdW5jdGlvbiBpc0FsaWFzUmVjb3JkKGUpIHsKICBmb3IgKDsgZTspIHsKICAgIGlmIChlLnJlY29yZC5hbGlhc09mKSByZXR1cm4gITA7CiAgICBlID0gZS5wYXJlbnQ7CiAgfQogIHJldHVybiAhMTsKfQpmdW5jdGlvbiBtZXJnZU1ldGFGaWVsZHMoZSkgewogIHJldHVybiBlLnJlZHVjZSgodCwgcikgPT4gYXNzaWduKHQsIHIubWV0YSksIHt9KTsKfQpmdW5jdGlvbiBtZXJnZU9wdGlvbnMoZSwgdCkgewogIGNvbnN0IHIgPSB7fTsKICBmb3IgKGNvbnN0IG4gaW4gZSkgcltuXSA9IG4gaW4gdCA/IHRbbl0gOiBlW25dOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIGZpbmRJbnNlcnRpb25JbmRleChlLCB0KSB7CiAgbGV0IHIgPSAwLAogICAgbiA9IHQubGVuZ3RoOwogIGZvciAoOyByICE9PSBuOykgewogICAgY29uc3QgYSA9IChyICsgbikgPj4gMTsKICAgIGNvbXBhcmVQYXRoUGFyc2VyU2NvcmUoZSwgdFthXSkgPCAwID8gKG4gPSBhKSA6IChyID0gYSArIDEpOwogIH0KICBjb25zdCBpID0gZ2V0SW5zZXJ0aW9uQW5jZXN0b3IoZSk7CiAgcmV0dXJuIGkgJiYgKG4gPSB0Lmxhc3RJbmRleE9mKGksIG4gLSAxKSksIG47Cn0KZnVuY3Rpb24gZ2V0SW5zZXJ0aW9uQW5jZXN0b3IoZSkgewogIGxldCB0ID0gZTsKICBmb3IgKDsgKHQgPSB0LnBhcmVudCk7KQogICAgaWYgKGlzTWF0Y2hhYmxlKHQpICYmIGNvbXBhcmVQYXRoUGFyc2VyU2NvcmUoZSwgdCkgPT09IDApIHJldHVybiB0Owp9CmZ1bmN0aW9uIGlzTWF0Y2hhYmxlKHsgcmVjb3JkOiBlIH0pIHsKICByZXR1cm4gISEoCiAgICBlLm5hbWUgfHwKICAgIChlLmNvbXBvbmVudHMgJiYgT2JqZWN0LmtleXMoZS5jb21wb25lbnRzKS5sZW5ndGgpIHx8CiAgICBlLnJlZGlyZWN0CiAgKTsKfQpmdW5jdGlvbiBwYXJzZVF1ZXJ5KGUpIHsKICBjb25zdCB0ID0ge307CiAgaWYgKGUgPT09ICIiIHx8IGUgPT09ICI/IikgcmV0dXJuIHQ7CiAgY29uc3QgbiA9IChlWzBdID09PSAiPyIgPyBlLnNsaWNlKDEpIDogZSkuc3BsaXQoIiYiKTsKICBmb3IgKGxldCBpID0gMDsgaSA8IG4ubGVuZ3RoOyArK2kpIHsKICAgIGNvbnN0IGEgPSBuW2ldLnJlcGxhY2UoUExVU19SRSwgIiAiKSwKICAgICAgbyA9IGEuaW5kZXhPZigiPSIpLAogICAgICBsID0gZGVjb2RlKG8gPCAwID8gYSA6IGEuc2xpY2UoMCwgbykpLAogICAgICBjID0gbyA8IDAgPyBudWxsIDogZGVjb2RlKGEuc2xpY2UobyArIDEpKTsKICAgIGlmIChsIGluIHQpIHsKICAgICAgbGV0IHUgPSB0W2xdOwogICAgICBpc0FycmF5KHUpIHx8ICh1ID0gdFtsXSA9IFt1XSksIHUucHVzaChjKTsKICAgIH0gZWxzZSB0W2xdID0gYzsKICB9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gc3RyaW5naWZ5UXVlcnkoZSkgewogIGxldCB0ID0gIiI7CiAgZm9yIChsZXQgciBpbiBlKSB7CiAgICBjb25zdCBuID0gZVtyXTsKICAgIGlmICgoKHIgPSBlbmNvZGVRdWVyeUtleShyKSksIG4gPT0gbnVsbCkpIHsKICAgICAgbiAhPT0gdm9pZCAwICYmICh0ICs9ICh0Lmxlbmd0aCA/ICImIiA6ICIiKSArIHIpOwogICAgICBjb250aW51ZTsKICAgIH0KICAgIChpc0FycmF5KG4pCiAgICAgID8gbi5tYXAoKGEpID0+IGEgJiYgZW5jb2RlUXVlcnlWYWx1ZShhKSkKICAgICAgOiBbbiAmJiBlbmNvZGVRdWVyeVZhbHVlKG4pXQogICAgKS5mb3JFYWNoKChhKSA9PiB7CiAgICAgIGEgIT09IHZvaWQgMCAmJgogICAgICAgICgodCArPSAodC5sZW5ndGggPyAiJiIgOiAiIikgKyByKSwgYSAhPSBudWxsICYmICh0ICs9ICI9IiArIGEpKTsKICAgIH0pOwogIH0KICByZXR1cm4gdDsKfQpmdW5jdGlvbiBub3JtYWxpemVRdWVyeShlKSB7CiAgY29uc3QgdCA9IHt9OwogIGZvciAoY29uc3QgciBpbiBlKSB7CiAgICBjb25zdCBuID0gZVtyXTsKICAgIG4gIT09IHZvaWQgMCAmJgogICAgICAodFtyXSA9IGlzQXJyYXkobikKICAgICAgICA/IG4ubWFwKChpKSA9PiAoaSA9PSBudWxsID8gbnVsbCA6ICIiICsgaSkpCiAgICAgICAgOiBuID09IG51bGwKICAgICAgICAgID8gbgogICAgICAgICAgOiAiIiArIG4pOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCBtYXRjaGVkUm91dGVLZXkgPSBTeW1ib2woIiIpLAogIHZpZXdEZXB0aEtleSA9IFN5bWJvbCgiIiksCiAgcm91dGVyS2V5ID0gU3ltYm9sKCIiKSwKICByb3V0ZUxvY2F0aW9uS2V5ID0gU3ltYm9sKCIiKSwKICByb3V0ZXJWaWV3TG9jYXRpb25LZXkgPSBTeW1ib2woIiIpOwpmdW5jdGlvbiB1c2VDYWxsYmFja3MoKSB7CiAgbGV0IGUgPSBbXTsKICBmdW5jdGlvbiB0KG4pIHsKICAgIHJldHVybiAoCiAgICAgIGUucHVzaChuKSwKICAgICAgKCkgPT4gewogICAgICAgIGNvbnN0IGkgPSBlLmluZGV4T2Yobik7CiAgICAgICAgaSA+IC0xICYmIGUuc3BsaWNlKGksIDEpOwogICAgICB9CiAgICApOwogIH0KICBmdW5jdGlvbiByKCkgewogICAgZSA9IFtdOwogIH0KICByZXR1cm4geyBhZGQ6IHQsIGxpc3Q6ICgpID0+IGUuc2xpY2UoKSwgcmVzZXQ6IHIgfTsKfQpmdW5jdGlvbiBndWFyZFRvUHJvbWlzZUZuKGUsIHQsIHIsIG4sIGksIGEgPSAobykgPT4gbygpKSB7CiAgY29uc3QgbyA9IG4gJiYgKG4uZW50ZXJDYWxsYmFja3NbaV0gPSBuLmVudGVyQ2FsbGJhY2tzW2ldIHx8IFtdKTsKICByZXR1cm4gKCkgPT4KICAgIG5ldyBQcm9taXNlKChsLCBjKSA9PiB7CiAgICAgIGNvbnN0IHUgPSAoYikgPT4gewogICAgICAgIGIgPT09ICExCiAgICAgICAgICA/IGMoY3JlYXRlUm91dGVyRXJyb3IoNCwgeyBmcm9tOiByLCB0bzogdCB9KSkKICAgICAgICAgIDogYiBpbnN0YW5jZW9mIEVycm9yCiAgICAgICAgICAgID8gYyhiKQogICAgICAgICAgICA6IGlzUm91dGVMb2NhdGlvbihiKQogICAgICAgICAgICAgID8gYyhjcmVhdGVSb3V0ZXJFcnJvcigyLCB7IGZyb206IHQsIHRvOiBiIH0pKQogICAgICAgICAgICAgIDogKG8gJiYKICAgICAgICAgICAgICAgIG4uZW50ZXJDYWxsYmFja3NbaV0gPT09IG8gJiYKICAgICAgICAgICAgICAgIHR5cGVvZiBiID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAgIG8ucHVzaChiKSwKICAgICAgICAgICAgICAgIGwoKSk7CiAgICAgIH0sCiAgICAgICAgZCA9IGEoKCkgPT4gZS5jYWxsKG4gJiYgbi5pbnN0YW5jZXNbaV0sIHQsIHIsIHUpKTsKICAgICAgbGV0IEUgPSBQcm9taXNlLnJlc29sdmUoZCk7CiAgICAgIGUubGVuZ3RoIDwgMyAmJiAoRSA9IEUudGhlbih1KSksIEUuY2F0Y2goKGIpID0+IGMoYikpOwogICAgfSk7Cn0KZnVuY3Rpb24gZXh0cmFjdENvbXBvbmVudHNHdWFyZHMoZSwgdCwgciwgbiwgaSA9IChhKSA9PiBhKCkpIHsKICBjb25zdCBhID0gW107CiAgZm9yIChjb25zdCBvIG9mIGUpCiAgICBmb3IgKGNvbnN0IGwgaW4gby5jb21wb25lbnRzKSB7CiAgICAgIGxldCBjID0gby5jb21wb25lbnRzW2xdOwogICAgICBpZiAoISh0ICE9PSAiYmVmb3JlUm91dGVFbnRlciIgJiYgIW8uaW5zdGFuY2VzW2xdKSkKICAgICAgICBpZiAoaXNSb3V0ZUNvbXBvbmVudChjKSkgewogICAgICAgICAgY29uc3QgZCA9IChjLl9fdmNjT3B0cyB8fCBjKVt0XTsKICAgICAgICAgIGQgJiYgYS5wdXNoKGd1YXJkVG9Qcm9taXNlRm4oZCwgciwgbiwgbywgbCwgaSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBsZXQgdSA9IGMoKTsKICAgICAgICAgIGEucHVzaCgoKSA9PgogICAgICAgICAgICB1LnRoZW4oKGQpID0+IHsKICAgICAgICAgICAgICBpZiAoIWQpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgICAgIGBDb3VsZG4ndCByZXNvbHZlIGNvbXBvbmVudCAiJHtsfSIgYXQgIiR7by5wYXRofSJgCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGNvbnN0IEUgPSBpc0VTTW9kdWxlKGQpID8gZC5kZWZhdWx0IDogZDsKICAgICAgICAgICAgICAoby5tb2RzW2xdID0gZCksIChvLmNvbXBvbmVudHNbbF0gPSBFKTsKICAgICAgICAgICAgICBjb25zdCBQID0gKEUuX192Y2NPcHRzIHx8IEUpW3RdOwogICAgICAgICAgICAgIHJldHVybiBQICYmIGd1YXJkVG9Qcm9taXNlRm4oUCwgciwgbiwgbywgbCwgaSkoKTsKICAgICAgICAgICAgfSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogIHJldHVybiBhOwp9CmZ1bmN0aW9uIHVzZUxpbmsoZSkgewogIGNvbnN0IHQgPSBpbmplY3QkMShyb3V0ZXJLZXkpLAogICAgciA9IGluamVjdCQxKHJvdXRlTG9jYXRpb25LZXkpLAogICAgbiA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgY29uc3QgYyA9IHVucmVmKGUudG8pOwogICAgICByZXR1cm4gdC5yZXNvbHZlKGMpOwogICAgfSksCiAgICBpID0gY29tcHV0ZWQoKCkgPT4gewogICAgICBjb25zdCB7IG1hdGNoZWQ6IGMgfSA9IG4udmFsdWUsCiAgICAgICAgeyBsZW5ndGg6IHUgfSA9IGMsCiAgICAgICAgZCA9IGNbdSAtIDFdLAogICAgICAgIEUgPSByLm1hdGNoZWQ7CiAgICAgIGlmICghZCB8fCAhRS5sZW5ndGgpIHJldHVybiAtMTsKICAgICAgY29uc3QgYiA9IEUuZmluZEluZGV4KGlzU2FtZVJvdXRlUmVjb3JkLmJpbmQobnVsbCwgZCkpOwogICAgICBpZiAoYiA+IC0xKSByZXR1cm4gYjsKICAgICAgY29uc3QgUCA9IGdldE9yaWdpbmFsUGF0aChjW3UgLSAyXSk7CiAgICAgIHJldHVybiB1ID4gMSAmJiBnZXRPcmlnaW5hbFBhdGgoZCkgPT09IFAgJiYgRVtFLmxlbmd0aCAtIDFdLnBhdGggIT09IFAKICAgICAgICA/IEUuZmluZEluZGV4KGlzU2FtZVJvdXRlUmVjb3JkLmJpbmQobnVsbCwgY1t1IC0gMl0pKQogICAgICAgIDogYjsKICAgIH0pLAogICAgYSA9IGNvbXB1dGVkKAogICAgICAoKSA9PiBpLnZhbHVlID4gLTEgJiYgaW5jbHVkZXNQYXJhbXMoci5wYXJhbXMsIG4udmFsdWUucGFyYW1zKQogICAgKSwKICAgIG8gPSBjb21wdXRlZCgKICAgICAgKCkgPT4KICAgICAgICBpLnZhbHVlID4gLTEgJiYKICAgICAgICBpLnZhbHVlID09PSByLm1hdGNoZWQubGVuZ3RoIC0gMSAmJgogICAgICAgIGlzU2FtZVJvdXRlTG9jYXRpb25QYXJhbXMoci5wYXJhbXMsIG4udmFsdWUucGFyYW1zKQogICAgKTsKICBmdW5jdGlvbiBsKGMgPSB7fSkgewogICAgaWYgKGd1YXJkRXZlbnQoYykpIHsKICAgICAgY29uc3QgdSA9IHRbdW5yZWYoZS5yZXBsYWNlKSA/ICJyZXBsYWNlIiA6ICJwdXNoIl0odW5yZWYoZS50bykpLmNhdGNoKAogICAgICAgIG5vb3AKICAgICAgKTsKICAgICAgcmV0dXJuICgKICAgICAgICBlLnZpZXdUcmFuc2l0aW9uICYmCiAgICAgICAgdHlwZW9mIGRvY3VtZW50IDwgInUiICYmCiAgICAgICAgInN0YXJ0Vmlld1RyYW5zaXRpb24iIGluIGRvY3VtZW50ICYmCiAgICAgICAgZG9jdW1lbnQuc3RhcnRWaWV3VHJhbnNpdGlvbigoKSA9PiB1KSwKICAgICAgICB1CiAgICAgICk7CiAgICB9CiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CiAgfQogIHJldHVybiB7CiAgICByb3V0ZTogbiwKICAgIGhyZWY6IGNvbXB1dGVkKCgpID0+IG4udmFsdWUuaHJlZiksCiAgICBpc0FjdGl2ZTogYSwKICAgIGlzRXhhY3RBY3RpdmU6IG8sCiAgICBuYXZpZ2F0ZTogbCwKICB9Owp9CmZ1bmN0aW9uIHByZWZlclNpbmdsZVZOb2RlKGUpIHsKICByZXR1cm4gZS5sZW5ndGggPT09IDEgPyBlWzBdIDogZTsKfQpjb25zdCBSb3V0ZXJMaW5rSW1wbCA9IGRlZmluZUNvbXBvbmVudCQxKHsKICBuYW1lOiAiUm91dGVyTGluayIsCiAgY29tcGF0Q29uZmlnOiB7IE1PREU6IDMgfSwKICBwcm9wczogewogICAgdG86IHsgdHlwZTogW1N0cmluZywgT2JqZWN0XSwgcmVxdWlyZWQ6ICEwIH0sCiAgICByZXBsYWNlOiBCb29sZWFuLAogICAgYWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGV4YWN0QWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGN1c3RvbTogQm9vbGVhbiwKICAgIGFyaWFDdXJyZW50VmFsdWU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAicGFnZSIgfSwKICB9LAogIHVzZUxpbmssCiAgc2V0dXAoZSwgeyBzbG90czogdCB9KSB7CiAgICBjb25zdCByID0gcmVhY3RpdmUodXNlTGluayhlKSksCiAgICAgIHsgb3B0aW9uczogbiB9ID0gaW5qZWN0JDEocm91dGVyS2V5KSwKICAgICAgaSA9IGNvbXB1dGVkKCgpID0+ICh7CiAgICAgICAgW2dldExpbmtDbGFzcygKICAgICAgICAgIGUuYWN0aXZlQ2xhc3MsCiAgICAgICAgICBuLmxpbmtBY3RpdmVDbGFzcywKICAgICAgICAgICJyb3V0ZXItbGluay1hY3RpdmUiCiAgICAgICAgKV06IHIuaXNBY3RpdmUsCiAgICAgICAgW2dldExpbmtDbGFzcygKICAgICAgICAgIGUuZXhhY3RBY3RpdmVDbGFzcywKICAgICAgICAgIG4ubGlua0V4YWN0QWN0aXZlQ2xhc3MsCiAgICAgICAgICAicm91dGVyLWxpbmstZXhhY3QtYWN0aXZlIgogICAgICAgICldOiByLmlzRXhhY3RBY3RpdmUsCiAgICAgIH0pKTsKICAgIHJldHVybiAoKSA9PiB7CiAgICAgIGNvbnN0IGEgPSB0LmRlZmF1bHQgJiYgcHJlZmVyU2luZ2xlVk5vZGUodC5kZWZhdWx0KHIpKTsKICAgICAgcmV0dXJuIGUuY3VzdG9tCiAgICAgICAgPyBhCiAgICAgICAgOiBoJDIoCiAgICAgICAgICAiYSIsCiAgICAgICAgICB7CiAgICAgICAgICAgICJhcmlhLWN1cnJlbnQiOiByLmlzRXhhY3RBY3RpdmUgPyBlLmFyaWFDdXJyZW50VmFsdWUgOiBudWxsLAogICAgICAgICAgICBocmVmOiByLmhyZWYsCiAgICAgICAgICAgIG9uQ2xpY2s6IHIubmF2aWdhdGUsCiAgICAgICAgICAgIGNsYXNzOiBpLnZhbHVlLAogICAgICAgICAgfSwKICAgICAgICAgIGEKICAgICAgICApOwogICAgfTsKICB9LAp9KSwKICBSb3V0ZXJMaW5rID0gUm91dGVyTGlua0ltcGw7CmZ1bmN0aW9uIGd1YXJkRXZlbnQoZSkgewogIGlmICgKICAgICEoZS5tZXRhS2V5IHx8IGUuYWx0S2V5IHx8IGUuY3RybEtleSB8fCBlLnNoaWZ0S2V5KSAmJgogICAgIWUuZGVmYXVsdFByZXZlbnRlZCAmJgogICAgIShlLmJ1dHRvbiAhPT0gdm9pZCAwICYmIGUuYnV0dG9uICE9PSAwKQogICkgewogICAgaWYgKGUuY3VycmVudFRhcmdldCAmJiBlLmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKSB7CiAgICAgIGNvbnN0IHQgPSBlLmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKTsKICAgICAgaWYgKC9cYl9ibGFua1xiL2kudGVzdCh0KSkgcmV0dXJuOwogICAgfQogICAgcmV0dXJuIGUucHJldmVudERlZmF1bHQgJiYgZS5wcmV2ZW50RGVmYXVsdCgpLCAhMDsKICB9Cn0KZnVuY3Rpb24gaW5jbHVkZXNQYXJhbXMoZSwgdCkgewogIGZvciAoY29uc3QgciBpbiB0KSB7CiAgICBjb25zdCBuID0gdFtyXSwKICAgICAgaSA9IGVbcl07CiAgICBpZiAodHlwZW9mIG4gPT0gInN0cmluZyIpIHsKICAgICAgaWYgKG4gIT09IGkpIHJldHVybiAhMTsKICAgIH0gZWxzZSBpZiAoCiAgICAgICFpc0FycmF5KGkpIHx8CiAgICAgIGkubGVuZ3RoICE9PSBuLmxlbmd0aCB8fAogICAgICBuLnNvbWUoKGEsIG8pID0+IGEgIT09IGlbb10pCiAgICApCiAgICAgIHJldHVybiAhMTsKICB9CiAgcmV0dXJuICEwOwp9CmZ1bmN0aW9uIGdldE9yaWdpbmFsUGF0aChlKSB7CiAgcmV0dXJuIGUgPyAoZS5hbGlhc09mID8gZS5hbGlhc09mLnBhdGggOiBlLnBhdGgpIDogIiI7Cn0KY29uc3QgZ2V0TGlua0NsYXNzID0gKGUsIHQsIHIpID0+IGUgPz8gdCA/PyByLAogIFJvdXRlclZpZXdJbXBsID0gZGVmaW5lQ29tcG9uZW50JDEoewogICAgbmFtZTogIlJvdXRlclZpZXciLAogICAgaW5oZXJpdEF0dHJzOiAhMSwKICAgIHByb3BzOiB7IG5hbWU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiZGVmYXVsdCIgfSwgcm91dGU6IE9iamVjdCB9LAogICAgY29tcGF0Q29uZmlnOiB7IE1PREU6IDMgfSwKICAgIHNldHVwKGUsIHsgYXR0cnM6IHQsIHNsb3RzOiByIH0pIHsKICAgICAgY29uc3QgbiA9IGluamVjdCQxKHJvdXRlclZpZXdMb2NhdGlvbktleSksCiAgICAgICAgaSA9IGNvbXB1dGVkKCgpID0+IGUucm91dGUgfHwgbi52YWx1ZSksCiAgICAgICAgYSA9IGluamVjdCQxKHZpZXdEZXB0aEtleSwgMCksCiAgICAgICAgbyA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgICAgIGxldCB1ID0gdW5yZWYoYSk7CiAgICAgICAgICBjb25zdCB7IG1hdGNoZWQ6IGQgfSA9IGkudmFsdWU7CiAgICAgICAgICBsZXQgRTsKICAgICAgICAgIGZvciAoOyAoRSA9IGRbdV0pICYmICFFLmNvbXBvbmVudHM7KSB1Kys7CiAgICAgICAgICByZXR1cm4gdTsKICAgICAgICB9KSwKICAgICAgICBsID0gY29tcHV0ZWQoKCkgPT4gaS52YWx1ZS5tYXRjaGVkW28udmFsdWVdKTsKICAgICAgcHJvdmlkZSgKICAgICAgICB2aWV3RGVwdGhLZXksCiAgICAgICAgY29tcHV0ZWQoKCkgPT4gby52YWx1ZSArIDEpCiAgICAgICksCiAgICAgICAgcHJvdmlkZShtYXRjaGVkUm91dGVLZXksIGwpLAogICAgICAgIHByb3ZpZGUocm91dGVyVmlld0xvY2F0aW9uS2V5LCBpKTsKICAgICAgY29uc3QgYyA9IHJlZigpOwogICAgICByZXR1cm4gKAogICAgICAgIHdhdGNoKAogICAgICAgICAgKCkgPT4gW2MudmFsdWUsIGwudmFsdWUsIGUubmFtZV0sCiAgICAgICAgICAoW3UsIGQsIEVdLCBbYiwgUCwgUl0pID0+IHsKICAgICAgICAgICAgZCAmJgogICAgICAgICAgICAgICgoZC5pbnN0YW5jZXNbRV0gPSB1KSwKICAgICAgICAgICAgICAgIFAgJiYKICAgICAgICAgICAgICAgIFAgIT09IGQgJiYKICAgICAgICAgICAgICAgIHUgJiYKICAgICAgICAgICAgICAgIHUgPT09IGIgJiYKICAgICAgICAgICAgICAgIChkLmxlYXZlR3VhcmRzLnNpemUgfHwgKGQubGVhdmVHdWFyZHMgPSBQLmxlYXZlR3VhcmRzKSwKICAgICAgICAgICAgICAgICAgZC51cGRhdGVHdWFyZHMuc2l6ZSB8fCAoZC51cGRhdGVHdWFyZHMgPSBQLnVwZGF0ZUd1YXJkcykpKSwKICAgICAgICAgICAgICB1ICYmCiAgICAgICAgICAgICAgZCAmJgogICAgICAgICAgICAgICghUCB8fCAhaXNTYW1lUm91dGVSZWNvcmQoZCwgUCkgfHwgIWIpICYmCiAgICAgICAgICAgICAgKGQuZW50ZXJDYWxsYmFja3NbRV0gfHwgW10pLmZvckVhY2goKFQpID0+IFQodSkpOwogICAgICAgICAgfSwKICAgICAgICAgIHsgZmx1c2g6ICJwb3N0IiB9CiAgICAgICAgKSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBjb25zdCB1ID0gaS52YWx1ZSwKICAgICAgICAgICAgZCA9IGUubmFtZSwKICAgICAgICAgICAgRSA9IGwudmFsdWUsCiAgICAgICAgICAgIGIgPSBFICYmIEUuY29tcG9uZW50c1tkXTsKICAgICAgICAgIGlmICghYikgcmV0dXJuIG5vcm1hbGl6ZVNsb3Qoci5kZWZhdWx0LCB7IENvbXBvbmVudDogYiwgcm91dGU6IHUgfSk7CiAgICAgICAgICBjb25zdCBQID0gRS5wcm9wc1tkXSwKICAgICAgICAgICAgUiA9IFAKICAgICAgICAgICAgICA/IFAgPT09ICEwCiAgICAgICAgICAgICAgICA/IHUucGFyYW1zCiAgICAgICAgICAgICAgICA6IHR5cGVvZiBQID09ICJmdW5jdGlvbiIKICAgICAgICAgICAgICAgICAgPyBQKHUpCiAgICAgICAgICAgICAgICAgIDogUAogICAgICAgICAgICAgIDogbnVsbCwKICAgICAgICAgICAgTSA9IGgkMigKICAgICAgICAgICAgICBiLAogICAgICAgICAgICAgIGFzc2lnbih7fSwgUiwgdCwgewogICAgICAgICAgICAgICAgb25Wbm9kZVVubW91bnRlZDogKHgpID0+IHsKICAgICAgICAgICAgICAgICAgeC5jb21wb25lbnQuaXNVbm1vdW50ZWQgJiYgKEUuaW5zdGFuY2VzW2RdID0gbnVsbCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcmVmOiBjLAogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICk7CiAgICAgICAgICByZXR1cm4gbm9ybWFsaXplU2xvdChyLmRlZmF1bHQsIHsgQ29tcG9uZW50OiBNLCByb3V0ZTogdSB9KSB8fCBNOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSk7CmZ1bmN0aW9uIG5vcm1hbGl6ZVNsb3QoZSwgdCkgewogIGlmICghZSkgcmV0dXJuIG51bGw7CiAgY29uc3QgciA9IGUodCk7CiAgcmV0dXJuIHIubGVuZ3RoID09PSAxID8gclswXSA6IHI7Cn0KY29uc3QgUm91dGVyVmlldyA9IFJvdXRlclZpZXdJbXBsOwpmdW5jdGlvbiBjcmVhdGVSb3V0ZXIoZSkgewogIGNvbnN0IHQgPSBjcmVhdGVSb3V0ZXJNYXRjaGVyKGUucm91dGVzLCBlKSwKICAgIHIgPSBlLnBhcnNlUXVlcnkgfHwgcGFyc2VRdWVyeSwKICAgIG4gPSBlLnN0cmluZ2lmeVF1ZXJ5IHx8IHN0cmluZ2lmeVF1ZXJ5LAogICAgaSA9IGUuaGlzdG9yeSwKICAgIGEgPSB1c2VDYWxsYmFja3MoKSwKICAgIG8gPSB1c2VDYWxsYmFja3MoKSwKICAgIGwgPSB1c2VDYWxsYmFja3MoKSwKICAgIGMgPSBzaGFsbG93UmVmKFNUQVJUX0xPQ0FUSU9OX05PUk1BTElaRUQpOwogIGxldCB1ID0gU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRDsKICBpc0Jyb3dzZXIgJiYKICAgIGUuc2Nyb2xsQmVoYXZpb3IgJiYKICAgICJzY3JvbGxSZXN0b3JhdGlvbiIgaW4gaGlzdG9yeSAmJgogICAgKGhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb24gPSAibWFudWFsIik7CiAgY29uc3QgZCA9IGFwcGx5VG9QYXJhbXMuYmluZChudWxsLCAoaWUpID0+ICIiICsgaWUpLAogICAgRSA9IGFwcGx5VG9QYXJhbXMuYmluZChudWxsLCBlbmNvZGVQYXJhbSksCiAgICBiID0gYXBwbHlUb1BhcmFtcy5iaW5kKG51bGwsIGRlY29kZSk7CiAgZnVuY3Rpb24gUChpZSwgbWUpIHsKICAgIGxldCBwZSwgZ2U7CiAgICByZXR1cm4gKAogICAgICBpc1JvdXRlTmFtZShpZSkgPyAoKHBlID0gdC5nZXRSZWNvcmRNYXRjaGVyKGllKSksIChnZSA9IG1lKSkgOiAoZ2UgPSBpZSksCiAgICAgIHQuYWRkUm91dGUoZ2UsIHBlKQogICAgKTsKICB9CiAgZnVuY3Rpb24gUihpZSkgewogICAgY29uc3QgbWUgPSB0LmdldFJlY29yZE1hdGNoZXIoaWUpOwogICAgbWUgJiYgdC5yZW1vdmVSb3V0ZShtZSk7CiAgfQogIGZ1bmN0aW9uIFQoKSB7CiAgICByZXR1cm4gdC5nZXRSb3V0ZXMoKS5tYXAoKGllKSA9PiBpZS5yZWNvcmQpOwogIH0KICBmdW5jdGlvbiBNKGllKSB7CiAgICByZXR1cm4gISF0LmdldFJlY29yZE1hdGNoZXIoaWUpOwogIH0KICBmdW5jdGlvbiB4KGllLCBtZSkgewogICAgaWYgKCgobWUgPSBhc3NpZ24oe30sIG1lIHx8IGMudmFsdWUpKSwgdHlwZW9mIGllID09ICJzdHJpbmciKSkgewogICAgICBjb25zdCBHID0gcGFyc2VVUkwociwgaWUsIG1lLnBhdGgpLAogICAgICAgIHRlID0gdC5yZXNvbHZlKHsgcGF0aDogRy5wYXRoIH0sIG1lKSwKICAgICAgICBhZSA9IGkuY3JlYXRlSHJlZihHLmZ1bGxQYXRoKTsKICAgICAgcmV0dXJuIGFzc2lnbihHLCB0ZSwgewogICAgICAgIHBhcmFtczogYih0ZS5wYXJhbXMpLAogICAgICAgIGhhc2g6IGRlY29kZShHLmhhc2gpLAogICAgICAgIHJlZGlyZWN0ZWRGcm9tOiB2b2lkIDAsCiAgICAgICAgaHJlZjogYWUsCiAgICAgIH0pOwogICAgfQogICAgbGV0IHBlOwogICAgaWYgKGllLnBhdGggIT0gbnVsbCkKICAgICAgcGUgPSBhc3NpZ24oe30sIGllLCB7IHBhdGg6IHBhcnNlVVJMKHIsIGllLnBhdGgsIG1lLnBhdGgpLnBhdGggfSk7CiAgICBlbHNlIHsKICAgICAgY29uc3QgRyA9IGFzc2lnbih7fSwgaWUucGFyYW1zKTsKICAgICAgZm9yIChjb25zdCB0ZSBpbiBHKSBHW3RlXSA9PSBudWxsICYmIGRlbGV0ZSBHW3RlXTsKICAgICAgKHBlID0gYXNzaWduKHt9LCBpZSwgeyBwYXJhbXM6IEUoRykgfSkpLCAobWUucGFyYW1zID0gRShtZS5wYXJhbXMpKTsKICAgIH0KICAgIGNvbnN0IGdlID0gdC5yZXNvbHZlKHBlLCBtZSksCiAgICAgIEVlID0gaWUuaGFzaCB8fCAiIjsKICAgIGdlLnBhcmFtcyA9IGQoYihnZS5wYXJhbXMpKTsKICAgIGNvbnN0IFNlID0gc3RyaW5naWZ5VVJMKAogICAgICBuLAogICAgICBhc3NpZ24oe30sIGllLCB7IGhhc2g6IGVuY29kZUhhc2goRWUpLCBwYXRoOiBnZS5wYXRoIH0pCiAgICApLAogICAgICBXID0gaS5jcmVhdGVIcmVmKFNlKTsKICAgIHJldHVybiBhc3NpZ24oCiAgICAgIHsKICAgICAgICBmdWxsUGF0aDogU2UsCiAgICAgICAgaGFzaDogRWUsCiAgICAgICAgcXVlcnk6IG4gPT09IHN0cmluZ2lmeVF1ZXJ5ID8gbm9ybWFsaXplUXVlcnkoaWUucXVlcnkpIDogaWUucXVlcnkgfHwge30sCiAgICAgIH0sCiAgICAgIGdlLAogICAgICB7IHJlZGlyZWN0ZWRGcm9tOiB2b2lkIDAsIGhyZWY6IFcgfQogICAgKTsKICB9CiAgZnVuY3Rpb24gayhpZSkgewogICAgcmV0dXJuIHR5cGVvZiBpZSA9PSAic3RyaW5nIgogICAgICA/IHBhcnNlVVJMKHIsIGllLCBjLnZhbHVlLnBhdGgpCiAgICAgIDogYXNzaWduKHt9LCBpZSk7CiAgfQogIGZ1bmN0aW9uIFMoaWUsIG1lKSB7CiAgICBpZiAodSAhPT0gaWUpIHJldHVybiBjcmVhdGVSb3V0ZXJFcnJvcig4LCB7IGZyb206IG1lLCB0bzogaWUgfSk7CiAgfQogIGZ1bmN0aW9uIEEoaWUpIHsKICAgIHJldHVybiBEKGllKTsKICB9CiAgZnVuY3Rpb24gTyhpZSkgewogICAgcmV0dXJuIEEoYXNzaWduKGsoaWUpLCB7IHJlcGxhY2U6ICEwIH0pKTsKICB9CiAgZnVuY3Rpb24gRihpZSkgewogICAgY29uc3QgbWUgPSBpZS5tYXRjaGVkW2llLm1hdGNoZWQubGVuZ3RoIC0gMV07CiAgICBpZiAobWUgJiYgbWUucmVkaXJlY3QpIHsKICAgICAgY29uc3QgeyByZWRpcmVjdDogcGUgfSA9IG1lOwogICAgICBsZXQgZ2UgPSB0eXBlb2YgcGUgPT0gImZ1bmN0aW9uIiA/IHBlKGllKSA6IHBlOwogICAgICByZXR1cm4gKAogICAgICAgIHR5cGVvZiBnZSA9PSAic3RyaW5nIiAmJgogICAgICAgICgoZ2UgPQogICAgICAgICAgZ2UuaW5jbHVkZXMoIj8iKSB8fCBnZS5pbmNsdWRlcygiIyIpID8gKGdlID0gayhnZSkpIDogeyBwYXRoOiBnZSB9KSwKICAgICAgICAgIChnZS5wYXJhbXMgPSB7fSkpLAogICAgICAgIGFzc2lnbigKICAgICAgICAgIHsKICAgICAgICAgICAgcXVlcnk6IGllLnF1ZXJ5LAogICAgICAgICAgICBoYXNoOiBpZS5oYXNoLAogICAgICAgICAgICBwYXJhbXM6IGdlLnBhdGggIT0gbnVsbCA/IHt9IDogaWUucGFyYW1zLAogICAgICAgICAgfSwKICAgICAgICAgIGdlCiAgICAgICAgKQogICAgICApOwogICAgfQogIH0KICBmdW5jdGlvbiBEKGllLCBtZSkgewogICAgY29uc3QgcGUgPSAodSA9IHgoaWUpKSwKICAgICAgZ2UgPSBjLnZhbHVlLAogICAgICBFZSA9IGllLnN0YXRlLAogICAgICBTZSA9IGllLmZvcmNlLAogICAgICBXID0gaWUucmVwbGFjZSA9PT0gITAsCiAgICAgIEcgPSBGKHBlKTsKICAgIGlmIChHKQogICAgICByZXR1cm4gRCgKICAgICAgICBhc3NpZ24oayhHKSwgewogICAgICAgICAgc3RhdGU6IHR5cGVvZiBHID09ICJvYmplY3QiID8gYXNzaWduKHt9LCBFZSwgRy5zdGF0ZSkgOiBFZSwKICAgICAgICAgIGZvcmNlOiBTZSwKICAgICAgICAgIHJlcGxhY2U6IFcsCiAgICAgICAgfSksCiAgICAgICAgbWUgfHwgcGUKICAgICAgKTsKICAgIGNvbnN0IHRlID0gcGU7CiAgICB0ZS5yZWRpcmVjdGVkRnJvbSA9IG1lOwogICAgbGV0IGFlOwogICAgcmV0dXJuICgKICAgICAgIVNlICYmCiAgICAgIGlzU2FtZVJvdXRlTG9jYXRpb24obiwgZ2UsIHBlKSAmJgogICAgICAoKGFlID0gY3JlYXRlUm91dGVyRXJyb3IoMTYsIHsgdG86IHRlLCBmcm9tOiBnZSB9KSksIFkoZ2UsIGdlLCAhMCwgITEpKSwKICAgICAgKGFlID8gUHJvbWlzZS5yZXNvbHZlKGFlKSA6IHEodGUsIGdlKSkKICAgICAgICAuY2F0Y2goKHNlKSA9PgogICAgICAgICAgaXNOYXZpZ2F0aW9uRmFpbHVyZShzZSkKICAgICAgICAgICAgPyBpc05hdmlnYXRpb25GYWlsdXJlKHNlLCAyKQogICAgICAgICAgICAgID8gc2UKICAgICAgICAgICAgICA6IFEoc2UpCiAgICAgICAgICAgIDogTihzZSwgdGUsIGdlKQogICAgICAgICkKICAgICAgICAudGhlbigoc2UpID0+IHsKICAgICAgICAgIGlmIChzZSkgewogICAgICAgICAgICBpZiAoaXNOYXZpZ2F0aW9uRmFpbHVyZShzZSwgMikpCiAgICAgICAgICAgICAgcmV0dXJuIEQoCiAgICAgICAgICAgICAgICBhc3NpZ24oeyByZXBsYWNlOiBXIH0sIGsoc2UudG8pLCB7CiAgICAgICAgICAgICAgICAgIHN0YXRlOgogICAgICAgICAgICAgICAgICAgIHR5cGVvZiBzZS50byA9PSAib2JqZWN0IiA/IGFzc2lnbih7fSwgRWUsIHNlLnRvLnN0YXRlKSA6IEVlLAogICAgICAgICAgICAgICAgICBmb3JjZTogU2UsCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIG1lIHx8IHRlCiAgICAgICAgICAgICAgKTsKICAgICAgICAgIH0gZWxzZSBzZSA9IEsodGUsIGdlLCAhMCwgVywgRWUpOwogICAgICAgICAgcmV0dXJuIEoodGUsIGdlLCBzZSksIHNlOwogICAgICAgIH0pCiAgICApOwogIH0KICBmdW5jdGlvbiBIKGllLCBtZSkgewogICAgY29uc3QgcGUgPSBTKGllLCBtZSk7CiAgICByZXR1cm4gcGUgPyBQcm9taXNlLnJlamVjdChwZSkgOiBQcm9taXNlLnJlc29sdmUoKTsKICB9CiAgZnVuY3Rpb24gJChpZSkgewogICAgY29uc3QgbWUgPSB2ZS52YWx1ZXMoKS5uZXh0KCkudmFsdWU7CiAgICByZXR1cm4gbWUgJiYgdHlwZW9mIG1lLnJ1bldpdGhDb250ZXh0ID09ICJmdW5jdGlvbiIKICAgICAgPyBtZS5ydW5XaXRoQ29udGV4dChpZSkKICAgICAgOiBpZSgpOwogIH0KICBmdW5jdGlvbiBxKGllLCBtZSkgewogICAgbGV0IHBlOwogICAgY29uc3QgW2dlLCBFZSwgU2VdID0gZXh0cmFjdENoYW5naW5nUmVjb3JkcyhpZSwgbWUpOwogICAgcGUgPSBleHRyYWN0Q29tcG9uZW50c0d1YXJkcyhnZS5yZXZlcnNlKCksICJiZWZvcmVSb3V0ZUxlYXZlIiwgaWUsIG1lKTsKICAgIGZvciAoY29uc3QgRyBvZiBnZSkKICAgICAgRy5sZWF2ZUd1YXJkcy5mb3JFYWNoKCh0ZSkgPT4gewogICAgICAgIHBlLnB1c2goZ3VhcmRUb1Byb21pc2VGbih0ZSwgaWUsIG1lKSk7CiAgICAgIH0pOwogICAgY29uc3QgVyA9IEguYmluZChudWxsLCBpZSwgbWUpOwogICAgcmV0dXJuICgKICAgICAgcGUucHVzaChXKSwKICAgICAgQ2UocGUpCiAgICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgcGUgPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgRyBvZiBhLmxpc3QoKSkgcGUucHVzaChndWFyZFRvUHJvbWlzZUZuKEcsIGllLCBtZSkpOwogICAgICAgICAgcmV0dXJuIHBlLnB1c2goVyksIENlKHBlKTsKICAgICAgICB9KQogICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgIHBlID0gZXh0cmFjdENvbXBvbmVudHNHdWFyZHMoRWUsICJiZWZvcmVSb3V0ZVVwZGF0ZSIsIGllLCBtZSk7CiAgICAgICAgICBmb3IgKGNvbnN0IEcgb2YgRWUpCiAgICAgICAgICAgIEcudXBkYXRlR3VhcmRzLmZvckVhY2goKHRlKSA9PiB7CiAgICAgICAgICAgICAgcGUucHVzaChndWFyZFRvUHJvbWlzZUZuKHRlLCBpZSwgbWUpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gcGUucHVzaChXKSwgQ2UocGUpOwogICAgICAgIH0pCiAgICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgcGUgPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgRyBvZiBTZSkKICAgICAgICAgICAgaWYgKEcuYmVmb3JlRW50ZXIpCiAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoRy5iZWZvcmVFbnRlcikpCiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRlIG9mIEcuYmVmb3JlRW50ZXIpCiAgICAgICAgICAgICAgICAgIHBlLnB1c2goZ3VhcmRUb1Byb21pc2VGbih0ZSwgaWUsIG1lKSk7CiAgICAgICAgICAgICAgZWxzZSBwZS5wdXNoKGd1YXJkVG9Qcm9taXNlRm4oRy5iZWZvcmVFbnRlciwgaWUsIG1lKSk7CiAgICAgICAgICByZXR1cm4gcGUucHVzaChXKSwgQ2UocGUpOwogICAgICAgIH0pCiAgICAgICAgLnRoZW4oCiAgICAgICAgICAoKSA9PiAoCiAgICAgICAgICAgIGllLm1hdGNoZWQuZm9yRWFjaCgoRykgPT4gKEcuZW50ZXJDYWxsYmFja3MgPSB7fSkpLAogICAgICAgICAgICAocGUgPSBleHRyYWN0Q29tcG9uZW50c0d1YXJkcyhTZSwgImJlZm9yZVJvdXRlRW50ZXIiLCBpZSwgbWUsICQpKSwKICAgICAgICAgICAgcGUucHVzaChXKSwKICAgICAgICAgICAgQ2UocGUpCiAgICAgICAgICApCiAgICAgICAgKQogICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgIHBlID0gW107CiAgICAgICAgICBmb3IgKGNvbnN0IEcgb2Ygby5saXN0KCkpIHBlLnB1c2goZ3VhcmRUb1Byb21pc2VGbihHLCBpZSwgbWUpKTsKICAgICAgICAgIHJldHVybiBwZS5wdXNoKFcpLCBDZShwZSk7CiAgICAgICAgfSkKICAgICAgICAuY2F0Y2goKEcpID0+IChpc05hdmlnYXRpb25GYWlsdXJlKEcsIDgpID8gRyA6IFByb21pc2UucmVqZWN0KEcpKSkKICAgICk7CiAgfQogIGZ1bmN0aW9uIEooaWUsIG1lLCBwZSkgewogICAgbC5saXN0KCkuZm9yRWFjaCgoZ2UpID0+ICQoKCkgPT4gZ2UoaWUsIG1lLCBwZSkpKTsKICB9CiAgZnVuY3Rpb24gSyhpZSwgbWUsIHBlLCBnZSwgRWUpIHsKICAgIGNvbnN0IFNlID0gUyhpZSwgbWUpOwogICAgaWYgKFNlKSByZXR1cm4gU2U7CiAgICBjb25zdCBXID0gbWUgPT09IFNUQVJUX0xPQ0FUSU9OX05PUk1BTElaRUQsCiAgICAgIEcgPSBpc0Jyb3dzZXIgPyBoaXN0b3J5LnN0YXRlIDoge307CiAgICBwZSAmJgogICAgICAoZ2UgfHwgVwogICAgICAgID8gaS5yZXBsYWNlKGllLmZ1bGxQYXRoLCBhc3NpZ24oeyBzY3JvbGw6IFcgJiYgRyAmJiBHLnNjcm9sbCB9LCBFZSkpCiAgICAgICAgOiBpLnB1c2goaWUuZnVsbFBhdGgsIEVlKSksCiAgICAgIChjLnZhbHVlID0gaWUpLAogICAgICBZKGllLCBtZSwgcGUsIFcpLAogICAgICBRKCk7CiAgfQogIGxldCBlZTsKICBmdW5jdGlvbiBsZSgpIHsKICAgIGVlIHx8CiAgICAgIChlZSA9IGkubGlzdGVuKChpZSwgbWUsIHBlKSA9PiB7CiAgICAgICAgaWYgKCFQZS5saXN0ZW5pbmcpIHJldHVybjsKICAgICAgICBjb25zdCBnZSA9IHgoaWUpLAogICAgICAgICAgRWUgPSBGKGdlKTsKICAgICAgICBpZiAoRWUpIHsKICAgICAgICAgIEQoYXNzaWduKEVlLCB7IHJlcGxhY2U6ICEwLCBmb3JjZTogITAgfSksIGdlKS5jYXRjaChub29wKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdSA9IGdlOwogICAgICAgIGNvbnN0IFNlID0gYy52YWx1ZTsKICAgICAgICBpc0Jyb3dzZXIgJiYKICAgICAgICAgIHNhdmVTY3JvbGxQb3NpdGlvbigKICAgICAgICAgICAgZ2V0U2Nyb2xsS2V5KFNlLmZ1bGxQYXRoLCBwZS5kZWx0YSksCiAgICAgICAgICAgIGNvbXB1dGVTY3JvbGxQb3NpdGlvbigpCiAgICAgICAgICApLAogICAgICAgICAgcShnZSwgU2UpCiAgICAgICAgICAgIC5jYXRjaCgoVykgPT4KICAgICAgICAgICAgICBpc05hdmlnYXRpb25GYWlsdXJlKFcsIDEyKQogICAgICAgICAgICAgICAgPyBXCiAgICAgICAgICAgICAgICA6IGlzTmF2aWdhdGlvbkZhaWx1cmUoVywgMikKICAgICAgICAgICAgICAgICAgPyAoRChhc3NpZ24oayhXLnRvKSwgeyBmb3JjZTogITAgfSksIGdlKQogICAgICAgICAgICAgICAgICAgIC50aGVuKChHKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICBpc05hdmlnYXRpb25GYWlsdXJlKEcsIDIwKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAhcGUuZGVsdGEgJiYKICAgICAgICAgICAgICAgICAgICAgICAgcGUudHlwZSA9PT0gTmF2aWdhdGlvblR5cGUucG9wICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGkuZ28oLTEsICExKTsKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIC5jYXRjaChub29wKSwKICAgICAgICAgICAgICAgICAgICBQcm9taXNlLnJlamVjdCgpKQogICAgICAgICAgICAgICAgICA6IChwZS5kZWx0YSAmJiBpLmdvKC1wZS5kZWx0YSwgITEpLCBOKFcsIGdlLCBTZSkpCiAgICAgICAgICAgICkKICAgICAgICAgICAgLnRoZW4oKFcpID0+IHsKICAgICAgICAgICAgICAoVyA9IFcgfHwgSyhnZSwgU2UsICExKSksCiAgICAgICAgICAgICAgICBXICYmCiAgICAgICAgICAgICAgICAocGUuZGVsdGEgJiYgIWlzTmF2aWdhdGlvbkZhaWx1cmUoVywgOCkKICAgICAgICAgICAgICAgICAgPyBpLmdvKC1wZS5kZWx0YSwgITEpCiAgICAgICAgICAgICAgICAgIDogcGUudHlwZSA9PT0gTmF2aWdhdGlvblR5cGUucG9wICYmCiAgICAgICAgICAgICAgICAgIGlzTmF2aWdhdGlvbkZhaWx1cmUoVywgMjApICYmCiAgICAgICAgICAgICAgICAgIGkuZ28oLTEsICExKSksCiAgICAgICAgICAgICAgICBKKGdlLCBTZSwgVyk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5jYXRjaChub29wKTsKICAgICAgfSkpOwogIH0KICBsZXQgcmUgPSB1c2VDYWxsYmFja3MoKSwKICAgIEIgPSB1c2VDYWxsYmFja3MoKSwKICAgIHo7CiAgZnVuY3Rpb24gTihpZSwgbWUsIHBlKSB7CiAgICBRKGllKTsKICAgIGNvbnN0IGdlID0gQi5saXN0KCk7CiAgICByZXR1cm4gKAogICAgICBnZS5sZW5ndGggPyBnZS5mb3JFYWNoKChFZSkgPT4gRWUoaWUsIG1lLCBwZSkpIDogY29uc29sZS5lcnJvcihpZSksCiAgICAgIFByb21pc2UucmVqZWN0KGllKQogICAgKTsKICB9CiAgZnVuY3Rpb24gVigpIHsKICAgIHJldHVybiB6ICYmIGMudmFsdWUgIT09IFNUQVJUX0xPQ0FUSU9OX05PUk1BTElaRUQKICAgICAgPyBQcm9taXNlLnJlc29sdmUoKQogICAgICA6IG5ldyBQcm9taXNlKChpZSwgbWUpID0+IHsKICAgICAgICByZS5hZGQoW2llLCBtZV0pOwogICAgICB9KTsKICB9CiAgZnVuY3Rpb24gUShpZSkgewogICAgcmV0dXJuICgKICAgICAgeiB8fAogICAgICAoKHogPSAhaWUpLAogICAgICAgIGxlKCksCiAgICAgICAgcmUubGlzdCgpLmZvckVhY2goKFttZSwgcGVdKSA9PiAoaWUgPyBwZShpZSkgOiBtZSgpKSksCiAgICAgICAgcmUucmVzZXQoKSksCiAgICAgIGllCiAgICApOwogIH0KICBmdW5jdGlvbiBZKGllLCBtZSwgcGUsIGdlKSB7CiAgICBjb25zdCB7IHNjcm9sbEJlaGF2aW9yOiBFZSB9ID0gZTsKICAgIGlmICghaXNCcm93c2VyIHx8ICFFZSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgY29uc3QgU2UgPQogICAgICAoIXBlICYmIGdldFNhdmVkU2Nyb2xsUG9zaXRpb24oZ2V0U2Nyb2xsS2V5KGllLmZ1bGxQYXRoLCAwKSkpIHx8CiAgICAgICgoZ2UgfHwgIXBlKSAmJiBoaXN0b3J5LnN0YXRlICYmIGhpc3Rvcnkuc3RhdGUuc2Nyb2xsKSB8fAogICAgICBudWxsOwogICAgcmV0dXJuIG5leHRUaWNrKCkKICAgICAgLnRoZW4oKCkgPT4gRWUoaWUsIG1lLCBTZSkpCiAgICAgIC50aGVuKChXKSA9PiBXICYmIHNjcm9sbFRvUG9zaXRpb24oVykpCiAgICAgIC5jYXRjaCgoVykgPT4gTihXLCBpZSwgbWUpKTsKICB9CiAgY29uc3QgaGUgPSAoaWUpID0+IGkuZ28oaWUpOwogIGxldCB5ZTsKICBjb25zdCB2ZSA9IG5ldyBTZXQoKSwKICAgIFBlID0gewogICAgICBjdXJyZW50Um91dGU6IGMsCiAgICAgIGxpc3RlbmluZzogITAsCiAgICAgIGFkZFJvdXRlOiBQLAogICAgICByZW1vdmVSb3V0ZTogUiwKICAgICAgY2xlYXJSb3V0ZXM6IHQuY2xlYXJSb3V0ZXMsCiAgICAgIGhhc1JvdXRlOiBNLAogICAgICBnZXRSb3V0ZXM6IFQsCiAgICAgIHJlc29sdmU6IHgsCiAgICAgIG9wdGlvbnM6IGUsCiAgICAgIHB1c2g6IEEsCiAgICAgIHJlcGxhY2U6IE8sCiAgICAgIGdvOiBoZSwKICAgICAgYmFjazogKCkgPT4gaGUoLTEpLAogICAgICBmb3J3YXJkOiAoKSA9PiBoZSgxKSwKICAgICAgYmVmb3JlRWFjaDogYS5hZGQsCiAgICAgIGJlZm9yZVJlc29sdmU6IG8uYWRkLAogICAgICBhZnRlckVhY2g6IGwuYWRkLAogICAgICBvbkVycm9yOiBCLmFkZCwKICAgICAgaXNSZWFkeTogViwKICAgICAgaW5zdGFsbChpZSkgewogICAgICAgIGNvbnN0IG1lID0gdGhpczsKICAgICAgICBpZS5jb21wb25lbnQoIlJvdXRlckxpbmsiLCBSb3V0ZXJMaW5rKSwKICAgICAgICAgIGllLmNvbXBvbmVudCgiUm91dGVyVmlldyIsIFJvdXRlclZpZXcpLAogICAgICAgICAgKGllLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRyb3V0ZXIgPSBtZSksCiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaWUuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMsICIkcm91dGUiLCB7CiAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgICBnZXQ6ICgpID0+IHVucmVmKGMpLAogICAgICAgICAgfSksCiAgICAgICAgICBpc0Jyb3dzZXIgJiYKICAgICAgICAgICF5ZSAmJgogICAgICAgICAgYy52YWx1ZSA9PT0gU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRCAmJgogICAgICAgICAgKCh5ZSA9ICEwKSwgQShpLmxvY2F0aW9uKS5jYXRjaCgoRWUpID0+IHsgfSkpOwogICAgICAgIGNvbnN0IHBlID0ge307CiAgICAgICAgZm9yIChjb25zdCBFZSBpbiBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVEKQogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBlLCBFZSwgewogICAgICAgICAgICBnZXQ6ICgpID0+IGMudmFsdWVbRWVdLAogICAgICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICAgIH0pOwogICAgICAgIGllLnByb3ZpZGUocm91dGVyS2V5LCBtZSksCiAgICAgICAgICBpZS5wcm92aWRlKHJvdXRlTG9jYXRpb25LZXksIHNoYWxsb3dSZWFjdGl2ZShwZSkpLAogICAgICAgICAgaWUucHJvdmlkZShyb3V0ZXJWaWV3TG9jYXRpb25LZXksIGMpOwogICAgICAgIGNvbnN0IGdlID0gaWUudW5tb3VudDsKICAgICAgICB2ZS5hZGQoaWUpLAogICAgICAgICAgKGllLnVubW91bnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZlLmRlbGV0ZShpZSksCiAgICAgICAgICAgICAgdmUuc2l6ZSA8IDEgJiYKICAgICAgICAgICAgICAoKHUgPSBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVEKSwKICAgICAgICAgICAgICAgIGVlICYmIGVlKCksCiAgICAgICAgICAgICAgICAoZWUgPSBudWxsKSwKICAgICAgICAgICAgICAgIChjLnZhbHVlID0gU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRCksCiAgICAgICAgICAgICAgICAoeWUgPSAhMSksCiAgICAgICAgICAgICAgICAoeiA9ICExKSksCiAgICAgICAgICAgICAgZ2UoKTsKICAgICAgICAgIH0pOwogICAgICB9LAogICAgfTsKICBmdW5jdGlvbiBDZShpZSkgewogICAgcmV0dXJuIGllLnJlZHVjZSgobWUsIHBlKSA9PiBtZS50aGVuKCgpID0+ICQocGUpKSwgUHJvbWlzZS5yZXNvbHZlKCkpOwogIH0KICByZXR1cm4gUGU7Cn0KZnVuY3Rpb24gZXh0cmFjdENoYW5naW5nUmVjb3JkcyhlLCB0KSB7CiAgY29uc3QgciA9IFtdLAogICAgbiA9IFtdLAogICAgaSA9IFtdLAogICAgYSA9IE1hdGgubWF4KHQubWF0Y2hlZC5sZW5ndGgsIGUubWF0Y2hlZC5sZW5ndGgpOwogIGZvciAobGV0IG8gPSAwOyBvIDwgYTsgbysrKSB7CiAgICBjb25zdCBsID0gdC5tYXRjaGVkW29dOwogICAgbCAmJgogICAgICAoZS5tYXRjaGVkLmZpbmQoKHUpID0+IGlzU2FtZVJvdXRlUmVjb3JkKHUsIGwpKSA/IG4ucHVzaChsKSA6IHIucHVzaChsKSk7CiAgICBjb25zdCBjID0gZS5tYXRjaGVkW29dOwogICAgYyAmJiAodC5tYXRjaGVkLmZpbmQoKHUpID0+IGlzU2FtZVJvdXRlUmVjb3JkKHUsIGMpKSB8fCBpLnB1c2goYykpOwogIH0KICByZXR1cm4gW3IsIG4sIGldOwp9CmZ1bmN0aW9uIHVzZVJvdXRlcigpIHsKICByZXR1cm4gaW5qZWN0JDEocm91dGVyS2V5KTsKfQpmdW5jdGlvbiB1c2VSb3V0ZShlKSB7CiAgcmV0dXJuIGluamVjdCQxKHJvdXRlTG9jYXRpb25LZXkpOwp9CmNvbnN0IFJPVVRFX0tFWV9QQVJFTlRIRVNFU19SRSQxID0gLyg6XHcrKVwoW14pXStcKS9nLAogIFJPVVRFX0tFWV9TWU1CT0xTX1JFJDEgPSAvKDpcdyspWz8rKl0vZywKICBST1VURV9LRVlfTk9STUFMX1JFJDEgPSAvOlx3Ky9nLAogIGludGVycG9sYXRlUGF0aCA9IChlLCB0KSA9PgogICAgdC5wYXRoCiAgICAgIC5yZXBsYWNlKFJPVVRFX0tFWV9QQVJFTlRIRVNFU19SRSQxLCAiJDEiKQogICAgICAucmVwbGFjZShST1VURV9LRVlfU1lNQk9MU19SRSQxLCAiJDEiKQogICAgICAucmVwbGFjZShST1VURV9LRVlfTk9STUFMX1JFJDEsIChyKSA9PiB7CiAgICAgICAgdmFyIG47CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICgobiA9IGUucGFyYW1zW3Iuc2xpY2UoMSldKSA9PSBudWxsID8gdm9pZCAwIDogbi50b1N0cmluZygpKSB8fCAiIgogICAgICAgICk7CiAgICAgIH0pLAogIGdlbmVyYXRlUm91dGVLZXkkMSA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZS5yb3V0ZS5tYXRjaGVkLmZpbmQoKGkpID0+IHsKICAgICAgdmFyIGE7CiAgICAgIHJldHVybiAoCiAgICAgICAgKChhID0gaS5jb21wb25lbnRzKSA9PSBudWxsID8gdm9pZCAwIDogYS5kZWZhdWx0KSA9PT0gZS5Db21wb25lbnQudHlwZQogICAgICApOwogICAgfSksCiAgICAgIG4gPQogICAgICAgIHQgPz8KICAgICAgICAociA9PSBudWxsID8gdm9pZCAwIDogci5tZXRhLmtleSkgPz8KICAgICAgICAociAmJiBpbnRlcnBvbGF0ZVBhdGgoZS5yb3V0ZSwgcikpOwogICAgcmV0dXJuIHR5cGVvZiBuID09ICJmdW5jdGlvbiIgPyBuKGUucm91dGUpIDogbjsKICB9LAogIHdyYXBJbktlZXBBbGl2ZSA9IChlLCB0KSA9PiAoewogICAgZGVmYXVsdDogKCkgPT4gKGUgPyBoJDIoS2VlcEFsaXZlLCBlID09PSAhMCA/IHt9IDogZSwgdCkgOiB0KSwKICB9KTsKZnVuY3Rpb24gdG9BcnJheShlKSB7CiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZSkgPyBlIDogW2VdOwp9CmNvbnN0IF9fbnV4dF9wYWdlX21ldGEkYSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkOSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkOCA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNyA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNiA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNCA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkMyA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkMiA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkMSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEgPSB7IGxheW91dDogInByb2ZpbGUiLCBtaWRkbGV3YXJlOiAiYXV0aCIgfSwKICBfcm91dGVzID0gWwogICAgewogICAgICBuYW1lOiAiaW5kZXgiLAogICAgICBwYXRoOiAiLyIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0Q1OXpfQUVILmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LAogICAgICAgICAgICAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsCiAgICAgICAgICAgIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiYW1sLWt5Yy1wb2xpY3lfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vYW1sLWt5Yy1wb2xpY3kiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DeVEwZWF5Ny5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs0OCwgMjIsIDE5LCA2LCA4LCAyMCwgNDksIDUwXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImFtbC1reWMtcG9saWN5X19fUnUiLAogICAgICBwYXRoOiAiL1J1L2FtbC1reWMtcG9saWN5IiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQ3lRMGVheTcuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbNDgsIDIyLCAxOSwgNiwgOCwgMjAsIDQ5LCA1MF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJicmFuZC1ndWlkZWxpbmVzX19fRW4iLAogICAgICBwYXRoOiAiL0VuL2JyYW5kLWd1aWRlbGluZXMiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EQ1pmd1dmeC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNTEsIDIyLCAxOSwgNiwgOCwgMjAsIDUyLCA1MywgNCwgNSwgNywgOSwgMzIsIDEyLCAxMywgNTQsIDU1LCA0NiwKICAgICAgICAgICAgMzgsIDU2LCAxOCwgNTcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiYnJhbmQtZ3VpZGVsaW5lc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS9icmFuZC1ndWlkZWxpbmVzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRENaZndXZnguanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDUxLCAyMiwgMTksIDYsIDgsIDIwLCA1MiwgNTMsIDQsIDUsIDcsIDksIDMyLCAxMiwgMTMsIDU0LCA1NSwgNDYsCiAgICAgICAgICAgIDM4LCA1NiwgMTgsIDU3LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImNvbnRhY3QtdXNfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vY29udGFjdC11cyIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RhbG5qY0g3LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzU4LCAyMiwgMTksIDYsIDgsIDIwLCAxLCA1OV0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJjb250YWN0LXVzX19fUnUiLAogICAgICBwYXRoOiAiL1J1L2NvbnRhY3QtdXMiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EYWxuamNINy5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs1OCwgMjIsIDE5LCA2LCA4LCAyMCwgMSwgNTldKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLWFjY291bnRfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL2FjY291bnQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0I0TjVqM0NwLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA2MCwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMjIsIDE5LCAyMCwgMzYsIDEsCiAgICAgICAgICAgIDE2LCAxNywgMTgsIDIxLCA0MiwgNDAsIDQxLCA2MSwgNjIsIDYzLCAyNSwgMjYsIDY0LCAyOCwgNjUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLWFjY291bnRfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL2FjY291bnQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0I0TjVqM0NwLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA2MCwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMjIsIDE5LCAyMCwgMzYsIDEsCiAgICAgICAgICAgIDE2LCAxNywgMTgsIDIxLCA0MiwgNDAsIDQxLCA2MSwgNjIsIDYzLCAyNSwgMjYsIDY0LCAyOCwgNjUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLWFmZmlsaWF0ZXNfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL2FmZmlsaWF0ZXMiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDksCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0hsQkt6ODZ0LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA2NiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLAogICAgICAgICAgICAyMSwgMjIsIDY3LCA2OCwgNjEsIDQ2LCAzOCwgMzcsIDY5LCA3MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtYWZmaWxpYXRlc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS9kYXNoYm9hcmQvYWZmaWxpYXRlcyIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkOSwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vSGxCS3o4NnQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDY2LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsCiAgICAgICAgICAgIDIxLCAyMiwgNjcsIDY4LCA2MSwgNDYsIDM4LCAzNywgNjksIDcwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC1kaXNjb3VudF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvZGlzY291bnQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDgsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0JvaXNQOFJPLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA3MSwgNzIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDEsIDYyLCA2MywgMjUsCiAgICAgICAgICAgIDE4LCAyNiwgNjQsIDM0LCAzNSwgNTYsIDU3LCA3MywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtZGlzY291bnRfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL2Rpc2NvdW50IiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ4LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9Cb2lzUDhSTy5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzEsIDcyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxLCA2MiwgNjMsIDI1LAogICAgICAgICAgICAxOCwgMjYsIDY0LCAzNCwgMzUsIDU2LCA1NywgNzMsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkX19fRW4iLAogICAgICBwYXRoOiAiL0VuL2Rhc2hib2FyZCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkNywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQzMxREFCMC0uanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDc0LCAyMiwgMTksIDYsIDgsIDIwLCAxLCAxMSwgMTIsIDEzLCA1LCAxNCwgNzUsIDMsIDQsIDcsIDksIDEwLCAxNSwKICAgICAgICAgICAgNjcsIDY4LCA3MiwgMTgsIDI3LCAyOCwgMjksIDc2LCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkX19fUnUiLAogICAgICBwYXRoOiAiL1J1L2Rhc2hib2FyZCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkNywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQzMxREFCMC0uanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDc0LCAyMiwgMTksIDYsIDgsIDIwLCAxLCAxMSwgMTIsIDEzLCA1LCAxNCwgNzUsIDMsIDQsIDcsIDksIDEwLCAxNSwKICAgICAgICAgICAgNjcsIDY4LCA3MiwgMTgsIDI3LCAyOCwgMjksIDc2LCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLW5ldy1vcmRlcl9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvbmV3LW9yZGVyIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ2LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9VcTg5SXN0dC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzcsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC1uZXctb3JkZXJfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL25ldy1vcmRlciIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkNiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vVXE4OUlzdHQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDc3LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtb3JkZXJfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL29yZGVyIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ1LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DWmlQTnVHVy5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzgsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC1vcmRlcl9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9kYXNoYm9hcmQvb3JkZXIiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDUsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NaaVBOdUdXLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA3OCwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLW9yZGVyc19fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvb3JkZXJzIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ0LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ENXNBempJaC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzksIDc1LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA2NywgNjgsIDcyLCAxOCwKICAgICAgICAgICAgMjcsIDE5LCAyMCwgMjgsIDI5LCAyMiwgNjksIDcwLCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLW9yZGVyc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS9kYXNoYm9hcmQvb3JkZXJzIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ0LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ENXNBempJaC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzksIDc1LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA2NywgNjgsIDcyLCAxOCwKICAgICAgICAgICAgMjcsIDE5LCAyMCwgMjgsIDI5LCAyMiwgNjksIDcwLCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLXdhbGxldC1kZXBvc2l0X19fRW4iLAogICAgICBwYXRoOiAiL0VuL2Rhc2hib2FyZC93YWxsZXQvZGVwb3NpdCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQ0w4WFV2RWMuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDgwLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA4MSwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgODIsIDY5LCA3MCwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDg2LCA3NiwgMzQsIDM1LCA4NywgNzIsIDM3LCAzOCwgNDYsIDg4LCA0MiwgODksCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLXdhbGxldC1kZXBvc2l0X19fUnUiLAogICAgICBwYXRoOiAiL1J1L2Rhc2hib2FyZC93YWxsZXQvZGVwb3NpdCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQ0w4WFV2RWMuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDgwLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA4MSwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgODIsIDY5LCA3MCwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDg2LCA3NiwgMzQsIDM1LCA4NywgNzIsIDM3LCAzOCwgNDYsIDg4LCA0MiwgODksCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLXdhbGxldF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvd2FsbGV0IiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQyLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DOF9FREdXay5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgOTAsIDgyLCA2OSwgMTEsIDEyLCAxMywgNiwgNSwgMTQsIDcwLCAxNywgMTgsIDgsIDQsIDcsIDksIDE5LCAyMCwKICAgICAgICAgICAgMjEsIDgzLCA2MywgMjcsIDI4LCAyOSwgODQsIDMyLCAzMSwgMzMsIDI0LCAyNSwgMjYsIDMwLCA2NywgNjgsIDg1LAogICAgICAgICAgICAxLCA3NiwgMzQsIDM1LCA5MSwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtd2FsbGV0X19fUnUiLAogICAgICBwYXRoOiAiL1J1L2Rhc2hib2FyZC93YWxsZXQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0M4X0VER1drLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA5MCwgODIsIDY5LCAxMSwgMTIsIDEzLCA2LCA1LCAxNCwgNzAsIDE3LCAxOCwgOCwgNCwgNywgOSwgMTksIDIwLAogICAgICAgICAgICAyMSwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwgMzAsIDY3LCA2OCwgODUsCiAgICAgICAgICAgIDEsIDc2LCAzNCwgMzUsIDkxLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtdHJhbnNhY3Rpb25fX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL3dhbGxldC90cmFuc2FjdGlvbiIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMSwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRC1nOGN6MmUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDkyLCA4NywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgNzIsIDgyLCA2OSwgNzAsCiAgICAgICAgICAgIDE3LCAxOCwgMTksIDIwLCAyMSwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDM3LCAzOCwgNDYsIDg4LCA3NiwgNjIsIDY0LCAzNCwgMzUsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtdHJhbnNhY3Rpb25fX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL3dhbGxldC90cmFuc2FjdGlvbiIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMSwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRC1nOGN6MmUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDkyLCA4NywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgNzIsIDgyLCA2OSwgNzAsCiAgICAgICAgICAgIDE3LCAxOCwgMTksIDIwLCAyMSwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDM3LCAzOCwgNDYsIDg4LCA3NiwgNjIsIDY0LCAzNCwgMzUsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtd2l0aGRyYXdfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL3dhbGxldC93aXRoZHJhdyIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NsTTRQZWFmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA5MywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgODEsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDgyLCA2OSwgNzAsIDgzLCA2MywgMjcsIDI4LCAyOSwgODQsIDMyLCAzMSwgMzMsIDI0LCAyNSwgMjYsCiAgICAgICAgICAgIDMwLCA2NywgNjgsIDg1LCA4NiwgNzYsIDM0LCAzNSwgODcsIDcyLCAzNywgMzgsIDQ2LCA4OCwgNDIsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtd2l0aGRyYXdfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL3dhbGxldC93aXRoZHJhdyIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NsTTRQZWFmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA5MywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgODEsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDgyLCA2OSwgNzAsIDgzLCA2MywgMjcsIDI4LCAyOSwgODQsIDMyLCAzMSwgMzMsIDI0LCAyNSwgMjYsCiAgICAgICAgICAgIDMwLCA2NywgNjgsIDg1LCA4NiwgNzYsIDM0LCAzNSwgODcsIDcyLCAzNywgMzgsIDQ2LCA4OCwgNDIsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImZhcV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9mYXEiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ETEkxeXozZS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs5NCwgOTUsIDU2LCAxOCwgNywgNiwgMTIsIDEzLCA1NywgOTZdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZmFxX19fUnUiLAogICAgICBwYXRoOiAiL1J1L2ZhcSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RMSTF5ejNlLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzk0LCA5NSwgNTYsIDE4LCA3LCA2LCAxMiwgMTMsIDU3LCA5Nl0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJDb2luRGluYXJzLWFmZmlsaWF0ZV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9qb2xpeG8tYWZmaWxpYXRlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRHhMVkxPQlQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDk3LCAyMiwgMTksIDYsIDgsIDIwLCA5NSwgNTYsIDE4LCA3LCAxMiwgMTMsIDU3LCA5NiwgMzksIDMsIDQsIDUsIDksCiAgICAgICAgICAgIDEwLCAxMSwgMTQsIDE1LCAxNiwgMTcsIDIxLCA0MCwgNDEsIDQyLCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJDb2luRGluYXJzLWFmZmlsaWF0ZV9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9qb2xpeG8tYWZmaWxpYXRlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRHhMVkxPQlQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDk3LCAyMiwgMTksIDYsIDgsIDIwLCA5NSwgNTYsIDE4LCA3LCAxMiwgMTMsIDU3LCA5NiwgMzksIDMsIDQsIDUsIDksCiAgICAgICAgICAgIDEwLCAxMSwgMTQsIDE1LCAxNiwgMTcsIDIxLCA0MCwgNDEsIDQyLCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJpbmRleF9fX0VuIiwKICAgICAgcGF0aDogIi9FbiIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0Q1OXpfQUVILmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LAogICAgICAgICAgICAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsCiAgICAgICAgICAgIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiaW5kZXhfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ENTl6X0FFSC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwKICAgICAgICAgICAgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LAogICAgICAgICAgICAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInBheW1lbnQtZmFpbF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9wYXltZW50L2ZhaWwiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EUlotZ2dsWC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgOTgsIDIyLCAxOSwgNiwgOCwgMjAsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDIzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInBheW1lbnQtZmFpbF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9wYXltZW50L2ZhaWwiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EUlotZ2dsWC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgOTgsIDIyLCAxOSwgNiwgOCwgMjAsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDIzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInBheW1lbnQtc3VjY2Vzc19fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9wYXltZW50L3N1Y2Nlc3MiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CRWtGTUNtai5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs5OSwgMjIsIDE5LCA2LCA4LCAyMCwgMSwgMTEsIDEyLCAxMywgNSwgMTQsIDEwMF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJwYXltZW50LXN1Y2Nlc3NfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvcGF5bWVudC9zdWNjZXNzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQkVrRk1DbWouanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbOTksIDIyLCAxOSwgNiwgOCwgMjAsIDEsIDExLCAxMiwgMTMsIDUsIDE0LCAxMDBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAicHJpdmFjeS1wb2xpY3lfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vcHJpdmFjeS1wb2xpY3kiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DVjk0UGFBdS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsxMDEsIDIyLCAxOSwgNiwgOCwgMjAsIDQ5LCA1MF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJwcml2YWN5LXBvbGljeV9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9wcml2YWN5LXBvbGljeSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NWOTRQYUF1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzEwMSwgMjIsIDE5LCA2LCA4LCAyMCwgNDksIDUwXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLWFkdmNhc2gtdG8tcGF5cGFsLWV4Y2hhbmdlX19fRW4iLAogICAgICBwYXRoOiAiL0VuL3NlcnZpY2VzL2FkdmNhc2gtdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQk5rejh1LVYuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEwMiwgMjIsIDE5LCA2LCA4LCAyMCwgMiwgMywgNCwgNSwgNywgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCAxMDMsIDk1LCA1NiwgNTcsIDk2LCA0NSwgNTAsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic2VydmljZXMtYWR2Y2FzaC10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvYWR2Y2FzaC10by1wYXlwYWwtZXhjaGFuZ2UiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CTmt6OHUtVi5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTAyLCAyMiwgMTksIDYsIDgsIDIwLCAyLCAzLCA0LCA1LCA3LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwKICAgICAgICAgICAgMTcsIDE4LCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDEwMywgOTUsIDU2LCA1NywgOTYsIDQ1LCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzZXJ2aWNlcy1iaXRjb2luLXRvLXBheXBhbC1leGNoYW5nZV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zZXJ2aWNlcy9iaXRjb2luLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RQQmt6S213LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDQsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLWJpdGNvaW4tdG8tcGF5cGFsLWV4Y2hhbmdlX19fUnUiLAogICAgICBwYXRoOiAiL1J1L3NlcnZpY2VzL2JpdGNvaW4tdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRFBCa3pLbXcuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEwNCwgMjIsIDE5LCA2LCA4LCAyMCwgMiwgMywgNCwgNSwgNywgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCAxMDMsIDk1LCA1NiwgNTcsIDk2LCA0NSwgNTAsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic2VydmljZXMtZXhjaGFuZ2UtdXNkdC10cnhfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvZXhjaGFuZ2UtdXNkdC10cngiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9LN3hENTdTdS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTA1LCAyMiwgMTksIDYsIDgsIDIwLCAyLCAzLCA0LCA1LCA3LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwKICAgICAgICAgICAgMTcsIDE4LCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDEwMywgOTUsIDU2LCA1NywgOTYsIDQ1LCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzZXJ2aWNlcy1leGNoYW5nZS11c2R0LXRyeF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9zZXJ2aWNlcy9leGNoYW5nZS11c2R0LXRyeCIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0s3eEQ1N1N1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDUsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBheWVlci10by1wYXlwYWwtZXhjaGFuZ2VfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvcGF5ZWVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL21oeFBCRDBmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDYsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBheWVlci10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvcGF5ZWVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL21oeFBCRDBmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDYsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBlcmZlY3Rtb25leS10by1wYXlwYWwtZXhjaGFuZ2VfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvcGVyZmVjdG1vbmV5LXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0J4T3p2aGswLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDcsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBlcmZlY3Rtb25leS10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvcGVyZmVjdG1vbmV5LXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0J4T3p2aGswLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDcsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXRldGhlci10by1wYXlwYWwtZXhjaGFuZ2VfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvdGV0aGVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NrZHdjN0tnLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDgsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXRldGhlci10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvdGV0aGVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NrZHdjN0tnLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDgsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXdlYm1vbmV5LXRvLXBheXBhbC1leGNoYW5nZV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zZXJ2aWNlcy93ZWJtb25leS10by1wYXlwYWwtZXhjaGFuZ2UiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9UNHRSTmZFdS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTA5LCAyMiwgMTksIDYsIDgsIDIwLCAyLCAzLCA0LCA1LCA3LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwKICAgICAgICAgICAgMTcsIDE4LCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDEwMywgOTUsIDU2LCA1NywgOTYsIDQ1LCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzZXJ2aWNlcy13ZWJtb25leS10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvd2VibW9uZXktdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vVDR0Uk5mRXUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEwOSwgMjIsIDE5LCA2LCA4LCAyMCwgMiwgMywgNCwgNSwgNywgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCAxMDMsIDk1LCA1NiwgNTcsIDk2LCA0NSwgNTAsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLWJ1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyX19fRW4iLAogICAgICBwYXRoOiAiL0VuL3NvbHV0aW9ucy9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RnT1pEbUJzLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMTAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA5NSwgNTYsIDU3LCA5NiwgMTAzLCAxLCAxMTEsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLWJ1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyX19fUnUiLAogICAgICBwYXRoOiAiL1J1L3NvbHV0aW9ucy9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RnT1pEbUJzLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMTAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA5NSwgNTYsIDU3LCA5NiwgMTAzLCAxLCAxMTEsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLWV4Y2hhbmdlLXBheXBhbF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zb2x1dGlvbnMvZXhjaGFuZ2UtcGF5cGFsIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQjFaaEpLRnUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDExMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMjIsIDE5LCAyMCwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDQ0LCA5NSwgNTYsIDU3LCA5NiwgMTAzLCA0NSwgMSwgMTEzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1leGNoYW5nZS1wYXlwYWxfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc29sdXRpb25zL2V4Y2hhbmdlLXBheXBhbCIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0IxWmhKS0Z1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMTIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDIyLCAxOSwgMjAsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCA0NCwgOTUsIDU2LCA1NywgOTYsIDEwMywgNDUsIDEsIDExMywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzb2x1dGlvbnMtSGlXYWxsZXRfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc29sdXRpb25zL0hpV2FsbGV0IiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQk1aZ2cyR2UuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDExNCwgMjIsIDE5LCA2LCA4LCAyMCwgNDQsIDEwMywgOTUsIDU2LCAxOCwgNywgMTIsIDEzLCA1NywgOTYsIDQ1LAogICAgICAgICAgICA1MCwgMzksIDMsIDQsIDUsIDksIDEwLCAxMSwgMTQsIDE1LCAxNiwgMTcsIDIxLCA0MCwgNDEsIDQyLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1IaVdhbGxldF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9zb2x1dGlvbnMvSGlXYWxsZXQiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CTVpnZzJHZS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE0LCAyMiwgMTksIDYsIDgsIDIwLCA0NCwgMTAzLCA5NSwgNTYsIDE4LCA3LCAxMiwgMTMsIDU3LCA5NiwgNDUsCiAgICAgICAgICAgIDUwLCAzOSwgMywgNCwgNSwgOSwgMTAsIDExLCAxNCwgMTUsIDE2LCAxNywgMjEsIDQwLCA0MSwgNDIsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLW9ubGluZS1wYXltZW50LWZvci1idXNpbmVzc19fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zb2x1dGlvbnMvb25saW5lLXBheW1lbnQtZm9yLWJ1c2luZXNzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQlF5MG84bjAuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDExNSwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMiwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA5NSwgNTYsIDU3LCA5NiwgNDUsIDExNiwgNTAsIDEsIDExNywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzb2x1dGlvbnMtb25saW5lLXBheW1lbnQtZm9yLWJ1c2luZXNzX19fUnUiLAogICAgICBwYXRoOiAiL1J1L3NvbHV0aW9ucy9vbmxpbmUtcGF5bWVudC1mb3ItYnVzaW5lc3MiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CUXkwbzhuMC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE1LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAyLCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDk1LCA1NiwgNTcsIDk2LCA0NSwgMTE2LCA1MCwgMSwgMTE3LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1vbmxpbmUtcGF5bWVudF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zb2x1dGlvbnMvb25saW5lLXBheW1lbnQiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EeGZ6clRlQi5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE4LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAyLCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgMSwgNDQsIDk1LCA1NiwgNTcsIDk2LCA0NSwgMTE2LCA1MCwgMTE5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1vbmxpbmUtcGF5bWVudF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9zb2x1dGlvbnMvb25saW5lLXBheW1lbnQiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EeGZ6clRlQi5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE4LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAyLCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgMSwgNDQsIDk1LCA1NiwgNTcsIDk2LCA0NSwgMTE2LCA1MCwgMTE5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1wYXltZW50LWdhdGVfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0JzbnVKSko0LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMjAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NSwgMSwgMTIxLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1wYXltZW50LWdhdGVfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0JzbnVKSko0LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMjAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NSwgMSwgMTIxLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInRlcm1zLW9mLXNlcnZpY2VzX19fRW4iLAogICAgICBwYXRoOiAiL0VuL3Rlcm1zLW9mLXNlcnZpY2VzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRGJPZXFtODUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEyMiwgNTIsIDUzLCA0LCA1LCA2LCA3LCA4LCA5LCAzMiwgMTIsIDEzLCA1NCwgNTUsIDIyLCAxOSwgMjAsIDQ2LAogICAgICAgICAgICAzOCwgNTYsIDE4LCA1NywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJ0ZXJtcy1vZi1zZXJ2aWNlc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS90ZXJtcy1vZi1zZXJ2aWNlcyIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RiT2VxbTg1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMjIsIDUyLCA1MywgNCwgNSwgNiwgNywgOCwgOSwgMzIsIDEyLCAxMywgNTQsIDU1LCAyMiwgMTksIDIwLCA0NiwKICAgICAgICAgICAgMzgsIDU2LCAxOCwgNTcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogIF0sCiAgX3dyYXBJZiA9IChlLCB0LCByKSA9PiAoCiAgICAodCA9IHQgPT09ICEwID8ge30gOiB0KSwKICAgIHsKICAgICAgZGVmYXVsdDogKCkgPT4gewogICAgICAgIHZhciBuOwogICAgICAgIHJldHVybiB0ID8gaCQyKGUsIHQsIHIpIDogKG4gPSByLmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiBuLmNhbGwocik7CiAgICAgIH0sCiAgICB9CiAgKSwKICBST1VURV9LRVlfUEFSRU5USEVTRVNfUkUgPSAvKDpcdyspXChbXildK1wpL2csCiAgUk9VVEVfS0VZX1NZTUJPTFNfUkUgPSAvKDpcdyspWz8rKl0vZywKICBST1VURV9LRVlfTk9STUFMX1JFID0gLzpcdysvZzsKZnVuY3Rpb24gZ2VuZXJhdGVSb3V0ZUtleShlKSB7CiAgY29uc3QgdCA9CiAgICAoZSA9PSBudWxsID8gdm9pZCAwIDogZS5tZXRhLmtleSkgPz8KICAgIGUucGF0aAogICAgICAucmVwbGFjZShST1VURV9LRVlfUEFSRU5USEVTRVNfUkUsICIkMSIpCiAgICAgIC5yZXBsYWNlKFJPVVRFX0tFWV9TWU1CT0xTX1JFLCAiJDEiKQogICAgICAucmVwbGFjZShST1VURV9LRVlfTk9STUFMX1JFLCAocikgPT4gewogICAgICAgIHZhciBuOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoKG4gPSBlLnBhcmFtc1tyLnNsaWNlKDEpXSkgPT0gbnVsbCA/IHZvaWQgMCA6IG4udG9TdHJpbmcoKSkgfHwgIiIKICAgICAgICApOwogICAgICB9KTsKICByZXR1cm4gdHlwZW9mIHQgPT0gImZ1bmN0aW9uIiA/IHQoZSkgOiB0Owp9CmZ1bmN0aW9uIGlzQ2hhbmdpbmdQYWdlKGUsIHQpIHsKICByZXR1cm4gZSA9PT0gdCB8fCB0ID09PSBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVECiAgICA/ICExCiAgICA6IGdlbmVyYXRlUm91dGVLZXkoZSkgIT09IGdlbmVyYXRlUm91dGVLZXkodCkKICAgICAgPyAhMAogICAgICA6ICFlLm1hdGNoZWQuZXZlcnkoKG4sIGkpID0+IHsKICAgICAgICB2YXIgYSwgbzsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbi5jb21wb25lbnRzICYmCiAgICAgICAgICBuLmNvbXBvbmVudHMuZGVmYXVsdCA9PT0KICAgICAgICAgICgobyA9IChhID0gdC5tYXRjaGVkW2ldKSA9PSBudWxsID8gdm9pZCAwIDogYS5jb21wb25lbnRzKSA9PSBudWxsCiAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgIDogby5kZWZhdWx0KQogICAgICAgICk7CiAgICAgIH0pOwp9CmNvbnN0IHJvdXRlck9wdGlvbnMwID0gewogIHNjcm9sbEJlaGF2aW9yKGUsIHQsIHIpIHsKICAgIHZhciB1OwogICAgY29uc3QgbiA9IHVzZU51eHRBcHAoKSwKICAgICAgaSA9CiAgICAgICAgKCh1ID0gdXNlUm91dGVyJDEoKS5vcHRpb25zKSA9PSBudWxsID8gdm9pZCAwIDogdS5zY3JvbGxCZWhhdmlvclR5cGUpID8/CiAgICAgICAgImF1dG8iOwogICAgbGV0IGEgPSByIHx8IHZvaWQgMDsKICAgIGNvbnN0IG8gPQogICAgICB0eXBlb2YgZS5tZXRhLnNjcm9sbFRvVG9wID09ICJmdW5jdGlvbiIKICAgICAgICA/IGUubWV0YS5zY3JvbGxUb1RvcChlLCB0KQogICAgICAgIDogZS5tZXRhLnNjcm9sbFRvVG9wOwogICAgaWYgKAogICAgICAoIWEgJiYKICAgICAgICB0ICYmCiAgICAgICAgZSAmJgogICAgICAgIG8gIT09ICExICYmCiAgICAgICAgaXNDaGFuZ2luZ1BhZ2UoZSwgdCkgJiYKICAgICAgICAoYSA9IHsgbGVmdDogMCwgdG9wOiAwIH0pLAogICAgICAgIGUucGF0aCA9PT0gdC5wYXRoKQogICAgKQogICAgICByZXR1cm4gdC5oYXNoICYmICFlLmhhc2gKICAgICAgICA/IHsgbGVmdDogMCwgdG9wOiAwIH0KICAgICAgICA6IGUuaGFzaAogICAgICAgICAgPyB7CiAgICAgICAgICAgIGVsOiBlLmhhc2gsCiAgICAgICAgICAgIHRvcDogX2dldEhhc2hFbGVtZW50U2Nyb2xsTWFyZ2luVG9wKGUuaGFzaCksCiAgICAgICAgICAgIGJlaGF2aW9yOiBpLAogICAgICAgICAgfQogICAgICAgICAgOiAhMTsKICAgIGNvbnN0IGwgPSAoZCkgPT4gISEoZC5tZXRhLnBhZ2VUcmFuc2l0aW9uID8/IGFwcFBhZ2VUcmFuc2l0aW9uKSwKICAgICAgYyA9IGwodCkgJiYgbChlKSA/ICJwYWdlOnRyYW5zaXRpb246ZmluaXNoIiA6ICJwYWdlOmZpbmlzaCI7CiAgICByZXR1cm4gbmV3IFByb21pc2UoKGQpID0+IHsKICAgICAgbi5ob29rcy5ob29rT25jZShjLCBhc3luYyAoKSA9PiB7CiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKEUpID0+IHNldFRpbWVvdXQoRSwgMCkpLAogICAgICAgICAgZS5oYXNoICYmCiAgICAgICAgICAoYSA9IHsKICAgICAgICAgICAgZWw6IGUuaGFzaCwKICAgICAgICAgICAgdG9wOiBfZ2V0SGFzaEVsZW1lbnRTY3JvbGxNYXJnaW5Ub3AoZS5oYXNoKSwKICAgICAgICAgICAgYmVoYXZpb3I6IGksCiAgICAgICAgICB9KSwKICAgICAgICAgIGQoYSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSwKfTsKZnVuY3Rpb24gX2dldEhhc2hFbGVtZW50U2Nyb2xsTWFyZ2luVG9wKGUpIHsKICB0cnkgewogICAgY29uc3QgdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk7CiAgICBpZiAodCkKICAgICAgcmV0dXJuICgKICAgICAgICAoTnVtYmVyLnBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS5zY3JvbGxNYXJnaW5Ub3ApIHx8IDApICsKICAgICAgICAoTnVtYmVyLnBhcnNlRmxvYXQoCiAgICAgICAgICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuc2Nyb2xsUGFkZGluZ1RvcAogICAgICAgICkgfHwgMCkKICAgICAgKTsKICB9IGNhdGNoIHsgfQogIHJldHVybiAwOwp9CmNvbnN0IGNvbmZpZ1JvdXRlck9wdGlvbnMgPSB7IGhhc2hNb2RlOiAhMSwgc2Nyb2xsQmVoYXZpb3JUeXBlOiAiYXV0byIgfSwKICByb3V0ZXJPcHRpb25zID0geyAuLi5jb25maWdSb3V0ZXJPcHRpb25zLCAuLi5yb3V0ZXJPcHRpb25zMCB9LAogIHZhbGlkYXRlID0gYXN5bmMgKGUpID0+IHsKICAgIHZhciBjOwogICAgbGV0IHQsIHI7CiAgICBpZiAoISgoYyA9IGUubWV0YSkgIT0gbnVsbCAmJiBjLnZhbGlkYXRlKSkgcmV0dXJuOwogICAgY29uc3QgbiA9IHVzZU51eHRBcHAoKSwKICAgICAgaSA9IHVzZVJvdXRlciQxKCksCiAgICAgIGEgPQogICAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IFByb21pc2UucmVzb2x2ZShlLm1ldGEudmFsaWRhdGUoZSkpKSksCiAgICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgICAgcigpLAogICAgICAgICAgdCk7CiAgICBpZiAoYSA9PT0gITApIHJldHVybjsKICAgIGNvbnN0IG8gPSBjcmVhdGVFcnJvcih7CiAgICAgIHN0YXR1c0NvZGU6IChhICYmIGEuc3RhdHVzQ29kZSkgfHwgNDA0LAogICAgICBzdGF0dXNNZXNzYWdlOgogICAgICAgIChhICYmIGEuc3RhdHVzTWVzc2FnZSkgfHwgYFBhZ2UgTm90IEZvdW5kOiAke2UuZnVsbFBhdGh9YCwKICAgICAgZGF0YTogeyBwYXRoOiBlLmZ1bGxQYXRoIH0sCiAgICB9KSwKICAgICAgbCA9IGkuYmVmb3JlUmVzb2x2ZSgodSkgPT4gewogICAgICAgIGlmICgobCgpLCB1ID09PSBlKSkgewogICAgICAgICAgY29uc3QgZCA9IGkuYWZ0ZXJFYWNoKGFzeW5jICgpID0+IHsKICAgICAgICAgICAgZCgpLAogICAgICAgICAgICAgIGF3YWl0IG4ucnVuV2l0aENvbnRleHQoKCkgPT4gc2hvd0Vycm9yKG8pKSwKICAgICAgICAgICAgICB3aW5kb3cgPT0gbnVsbCB8fCB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICIiLCBlLmZ1bGxQYXRoKTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuICExOwogICAgICAgIH0KICAgICAgfSk7CiAgfSwKICByZXF1ZXN0SWRsZUNhbGxiYWNrID0KICAgIGdsb2JhbFRoaXMucmVxdWVzdElkbGVDYWxsYmFjayB8fAogICAgKChlKSA9PiB7CiAgICAgIGNvbnN0IHQgPSBEYXRlLm5vdygpLAogICAgICAgIHIgPSB7CiAgICAgICAgICBkaWRUaW1lb3V0OiAhMSwKICAgICAgICAgIHRpbWVSZW1haW5pbmc6ICgpID0+IE1hdGgubWF4KDAsIDUwIC0gKERhdGUubm93KCkgLSB0KSksCiAgICAgICAgfTsKICAgICAgcmV0dXJuIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIGUocik7CiAgICAgIH0sIDEpOwogICAgfSksCiAgY2FuY2VsSWRsZUNhbGxiYWNrID0KICAgIGdsb2JhbFRoaXMuY2FuY2VsSWRsZUNhbGxiYWNrIHx8CiAgICAoKGUpID0+IHsKICAgICAgY2xlYXJUaW1lb3V0KGUpOwogICAgfSksCiAgb25OdXh0UmVhZHkgPSAoZSkgPT4gewogICAgY29uc3QgdCA9IHVzZU51eHRBcHAoKTsKICAgIHQuaXNIeWRyYXRpbmcKICAgICAgPyB0Lmhvb2tzLmhvb2tPbmNlKCJhcHA6c3VzcGVuc2U6cmVzb2x2ZSIsICgpID0+IHsKICAgICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IGUoKSk7CiAgICAgIH0pCiAgICAgIDogcmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiBlKCkpOwogIH0sCiAgdXNlU3RhdGVLZXlQcmVmaXggPSAiJHMiOwpmdW5jdGlvbiB1c2VTdGF0ZSguLi5lKSB7CiAgY29uc3QgdCA9IHR5cGVvZiBlW2UubGVuZ3RoIC0gMV0gPT0gInN0cmluZyIgPyBlLnBvcCgpIDogdm9pZCAwOwogIHR5cGVvZiBlWzBdICE9ICJzdHJpbmciICYmIGUudW5zaGlmdCh0KTsKICBjb25zdCBbciwgbl0gPSBlOwogIGlmICghciB8fCB0eXBlb2YgciAhPSAic3RyaW5nIikKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIltudXh0XSBbdXNlU3RhdGVdIGtleSBtdXN0IGJlIGEgc3RyaW5nOiAiICsgcik7CiAgaWYgKG4gIT09IHZvaWQgMCAmJiB0eXBlb2YgbiAhPSAiZnVuY3Rpb24iKQogICAgdGhyb3cgbmV3IEVycm9yKCJbbnV4dF0gW3VzZVN0YXRlXSBpbml0IG11c3QgYmUgYSBmdW5jdGlvbjogIiArIG4pOwogIGNvbnN0IGkgPSB1c2VTdGF0ZUtleVByZWZpeCArIHIsCiAgICBhID0gdXNlTnV4dEFwcCgpLAogICAgbyA9IHRvUmVmKGEucGF5bG9hZC5zdGF0ZSwgaSk7CiAgaWYgKG8udmFsdWUgPT09IHZvaWQgMCAmJiBuKSB7CiAgICBjb25zdCBsID0gbigpOwogICAgaWYgKGlzUmVmKGwpKSByZXR1cm4gKGEucGF5bG9hZC5zdGF0ZVtpXSA9IGwpLCBsOwogICAgby52YWx1ZSA9IGw7CiAgfQogIHJldHVybiBvOwp9CmZ1bmN0aW9uIGtsb25hJDEoZSkgewogIGlmICh0eXBlb2YgZSAhPSAib2JqZWN0IikgcmV0dXJuIGU7CiAgdmFyIHQsCiAgICByLAogICAgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKTsKICBpZiAobiA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgIGlmIChlLmNvbnN0cnVjdG9yICE9PSBPYmplY3QgJiYgdHlwZW9mIGUuY29uc3RydWN0b3IgPT0gImZ1bmN0aW9uIikgewogICAgICByID0gbmV3IGUuY29uc3RydWN0b3IoKTsKICAgICAgZm9yICh0IGluIGUpCiAgICAgICAgZS5oYXNPd25Qcm9wZXJ0eSh0KSAmJiByW3RdICE9PSBlW3RdICYmIChyW3RdID0ga2xvbmEkMShlW3RdKSk7CiAgICB9IGVsc2UgewogICAgICByID0ge307CiAgICAgIGZvciAodCBpbiBlKQogICAgICAgIHQgPT09ICJfX3Byb3RvX18iCiAgICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCB0LCB7CiAgICAgICAgICAgIHZhbHVlOiBrbG9uYSQxKGVbdF0pLAogICAgICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICAgICAgd3JpdGFibGU6ICEwLAogICAgICAgICAgfSkKICAgICAgICAgIDogKHJbdF0gPSBrbG9uYSQxKGVbdF0pKTsKICAgIH0KICAgIHJldHVybiByOwogIH0KICBpZiAobiA9PT0gIltvYmplY3QgQXJyYXldIikgewogICAgZm9yICh0ID0gZS5sZW5ndGgsIHIgPSBBcnJheSh0KTsgdC0tOykgclt0XSA9IGtsb25hJDEoZVt0XSk7CiAgICByZXR1cm4gcjsKICB9CiAgcmV0dXJuIG4gPT09ICJbb2JqZWN0IFNldF0iCiAgICA/ICgociA9IG5ldyBTZXQoKSksCiAgICAgIGUuZm9yRWFjaChmdW5jdGlvbiAoaSkgewogICAgICAgIHIuYWRkKGtsb25hJDEoaSkpOwogICAgICB9KSwKICAgICAgcikKICAgIDogbiA9PT0gIltvYmplY3QgTWFwXSIKICAgICAgPyAoKHIgPSBuZXcgTWFwKCkpLAogICAgICAgIGUuZm9yRWFjaChmdW5jdGlvbiAoaSwgYSkgewogICAgICAgICAgci5zZXQoa2xvbmEkMShhKSwga2xvbmEkMShpKSk7CiAgICAgICAgfSksCiAgICAgICAgcikKICAgICAgOiBuID09PSAiW29iamVjdCBEYXRlXSIKICAgICAgICA/IG5ldyBEYXRlKCtlKQogICAgICAgIDogbiA9PT0gIltvYmplY3QgUmVnRXhwXSIKICAgICAgICAgID8gKChyID0gbmV3IFJlZ0V4cChlLnNvdXJjZSwgZS5mbGFncykpLCAoci5sYXN0SW5kZXggPSBlLmxhc3RJbmRleCksIHIpCiAgICAgICAgICA6IG4gPT09ICJbb2JqZWN0IERhdGFWaWV3XSIKICAgICAgICAgICAgPyBuZXcgZS5jb25zdHJ1Y3RvcihrbG9uYSQxKGUuYnVmZmVyKSkKICAgICAgICAgICAgOiBuID09PSAiW29iamVjdCBBcnJheUJ1ZmZlcl0iCiAgICAgICAgICAgICAgPyBlLnNsaWNlKDApCiAgICAgICAgICAgICAgOiBuLnNsaWNlKC02KSA9PT0gIkFycmF5XSIKICAgICAgICAgICAgICAgID8gbmV3IGUuY29uc3RydWN0b3IoZSkKICAgICAgICAgICAgICAgIDogZTsKfQpjb25zdCBDb29raWVEZWZhdWx0cyA9IHsKICBwYXRoOiAiLyIsCiAgd2F0Y2g6ICEwLAogIGRlY29kZTogKGUpID0+IGRlc3RyKGRlY29kZVVSSUNvbXBvbmVudChlKSksCiAgZW5jb2RlOiAoZSkgPT4KICAgIGVuY29kZVVSSUNvbXBvbmVudCh0eXBlb2YgZSA9PSAic3RyaW5nIiA/IGUgOiBKU09OLnN0cmluZ2lmeShlKSksCn0sCiAgc3RvcmUgPSB3aW5kb3cuY29va2llU3RvcmU7CmZ1bmN0aW9uIHVzZUNvb2tpZShlLCB0KSB7CiAgdmFyIGM7CiAgY29uc3QgciA9IHsgLi4uQ29va2llRGVmYXVsdHMsIC4uLnQgfTsKICByLmZpbHRlciA/PyAoci5maWx0ZXIgPSAodSkgPT4gdSA9PT0gZSk7CiAgY29uc3QgbiA9IHJlYWRSYXdDb29raWVzKHIpIHx8IHt9OwogIGxldCBpOwogIHIubWF4QWdlICE9PSB2b2lkIDAKICAgID8gKGkgPSByLm1heEFnZSAqIDFlMykKICAgIDogci5leHBpcmVzICYmIChpID0gci5leHBpcmVzLmdldFRpbWUoKSAtIERhdGUubm93KCkpOwogIGNvbnN0IGEgPSBpICE9PSB2b2lkIDAgJiYgaSA8PSAwLAogICAgbyA9IGtsb25hJDEoCiAgICAgIGEgPyB2b2lkIDAgOiBuW2VdID8/ICgoYyA9IHIuZGVmYXVsdCkgPT0gbnVsbCA/IHZvaWQgMCA6IGMuY2FsbChyKSkKICAgICksCiAgICBsID0gaSAmJiAhYSA/IGNvb2tpZVJlZihvLCBpLCByLndhdGNoICYmIHIud2F0Y2ggIT09ICJzaGFsbG93IikgOiByZWYobyk7CiAgewogICAgbGV0IHUgPSBudWxsOwogICAgdHJ5IHsKICAgICAgIXN0b3JlICYmCiAgICAgICAgdHlwZW9mIEJyb2FkY2FzdENoYW5uZWwgPCAidSIgJiYKICAgICAgICAodSA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKGBudXh0OmNvb2tpZXM6JHtlfWApKTsKICAgIH0gY2F0Y2ggeyB9CiAgICBjb25zdCBkID0gKCkgPT4gewogICAgICByLnJlYWRvbmx5IHx8CiAgICAgICAgaXNFcXVhbCQxKGwudmFsdWUsIG5bZV0pIHx8CiAgICAgICAgKHdyaXRlQ2xpZW50Q29va2llKGUsIGwudmFsdWUsIHIpLAogICAgICAgICAgKG5bZV0gPSBrbG9uYSQxKGwudmFsdWUpKSwKICAgICAgICAgIHUgPT0gbnVsbCB8fCB1LnBvc3RNZXNzYWdlKHsgdmFsdWU6IHIuZW5jb2RlKGwudmFsdWUpIH0pKTsKICAgIH0sCiAgICAgIEUgPSAoUikgPT4gewogICAgICAgIHZhciBNOwogICAgICAgIGNvbnN0IFQgPSBSLnJlZnJlc2gKICAgICAgICAgID8gKE0gPSByZWFkUmF3Q29va2llcyhyKSkgPT0gbnVsbAogICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICA6IE1bZV0KICAgICAgICAgIDogci5kZWNvZGUoUi52YWx1ZSk7CiAgICAgICAgKGIgPSAhMCksCiAgICAgICAgICAobC52YWx1ZSA9IFQpLAogICAgICAgICAgKG5bZV0gPSBrbG9uYSQxKFQpKSwKICAgICAgICAgIG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgYiA9ICExOwogICAgICAgICAgfSk7CiAgICAgIH07CiAgICBsZXQgYiA9ICExOwogICAgY29uc3QgUCA9ICEhZ2V0Q3VycmVudFNjb3BlKCk7CiAgICBpZiAoCiAgICAgIChQICYmCiAgICAgICAgb25TY29wZURpc3Bvc2UoKCkgPT4gewogICAgICAgICAgKGIgPSAhMCksIGQoKSwgdSA9PSBudWxsIHx8IHUuY2xvc2UoKTsKICAgICAgICB9KSwKICAgICAgICBzdG9yZSkKICAgICkgewogICAgICBjb25zdCBSID0gKFQpID0+IHsKICAgICAgICBjb25zdCBNID0gVC5jaGFuZ2VkLmZpbmQoKGspID0+IGsubmFtZSA9PT0gZSksCiAgICAgICAgICB4ID0gVC5kZWxldGVkLmZpbmQoKGspID0+IGsubmFtZSA9PT0gZSk7CiAgICAgICAgTSAmJiBFKHsgdmFsdWU6IE0udmFsdWUgfSksIHggJiYgRSh7IHZhbHVlOiBudWxsIH0pOwogICAgICB9OwogICAgICBzdG9yZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBSKSwKICAgICAgICBQICYmIG9uU2NvcGVEaXNwb3NlKCgpID0+IHN0b3JlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIFIpKTsKICAgIH0gZWxzZSB1ICYmICh1Lm9ubWVzc2FnZSA9ICh7IGRhdGE6IFIgfSkgPT4gRShSKSk7CiAgICByLndhdGNoCiAgICAgID8gd2F0Y2goCiAgICAgICAgbCwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBiIHx8IGQoKTsKICAgICAgICB9LAogICAgICAgIHsgZGVlcDogci53YXRjaCAhPT0gInNoYWxsb3ciIH0KICAgICAgKQogICAgICA6IGQoKTsKICB9CiAgcmV0dXJuIGw7Cn0KZnVuY3Rpb24gcmVhZFJhd0Nvb2tpZXMoZSA9IHt9KSB7CiAgcmV0dXJuIHBhcnNlJDIoZG9jdW1lbnQuY29va2llLCBlKTsKfQpmdW5jdGlvbiBzZXJpYWxpemVDb29raWUoZSwgdCwgciA9IHt9KSB7CiAgcmV0dXJuIHQgPT0gbnVsbCA/IHNlcmlhbGl6ZShlLCB0LCB7IC4uLnIsIG1heEFnZTogLTEgfSkgOiBzZXJpYWxpemUoZSwgdCwgcik7Cn0KZnVuY3Rpb24gd3JpdGVDbGllbnRDb29raWUoZSwgdCwgciA9IHt9KSB7CiAgZG9jdW1lbnQuY29va2llID0gc2VyaWFsaXplQ29va2llKGUsIHQsIHIpOwp9CmNvbnN0IE1BWF9USU1FT1VUX0RFTEFZID0gMjE0NzQ4MzY0NzsKZnVuY3Rpb24gY29va2llUmVmKGUsIHQsIHIpIHsKICBsZXQgbiwKICAgIGksCiAgICBhID0gMDsKICBjb25zdCBvID0gciA/IHJlZihlKSA6IHsgdmFsdWU6IGUgfTsKICByZXR1cm4gKAogICAgZ2V0Q3VycmVudFNjb3BlKCkgJiYKICAgIG9uU2NvcGVEaXNwb3NlKCgpID0+IHsKICAgICAgaSA9PSBudWxsIHx8IGkoKSwgY2xlYXJUaW1lb3V0KG4pOwogICAgfSksCiAgICBjdXN0b21SZWYoKGwsIGMpID0+IHsKICAgICAgciAmJiAoaSA9IHdhdGNoKG8sIGMpKTsKICAgICAgZnVuY3Rpb24gdSgpIHsKICAgICAgICAoYSA9IDApLCBjbGVhclRpbWVvdXQobik7CiAgICAgICAgY29uc3QgZCA9IHQgLSBhLAogICAgICAgICAgRSA9IGQgPCBNQVhfVElNRU9VVF9ERUxBWSA/IGQgOiBNQVhfVElNRU9VVF9ERUxBWTsKICAgICAgICBuID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICBpZiAoKChhICs9IEUpLCBhIDwgdCkpIHJldHVybiB1KCk7CiAgICAgICAgICAoby52YWx1ZSA9IHZvaWQgMCksIGMoKTsKICAgICAgICB9LCBFKTsKICAgICAgfQogICAgICByZXR1cm4gewogICAgICAgIGdldCgpIHsKICAgICAgICAgIHJldHVybiBsKCksIG8udmFsdWU7CiAgICAgICAgfSwKICAgICAgICBzZXQoZCkgewogICAgICAgICAgdSgpLCAoby52YWx1ZSA9IGQpLCBjKCk7CiAgICAgICAgfSwKICAgICAgfTsKICAgIH0pCiAgKTsKfQphc3luYyBmdW5jdGlvbiBwcmVsb2FkUm91dGVDb21wb25lbnRzKGUsIHQgPSB1c2VSb3V0ZXIkMSgpKSB7CiAgY29uc3QgeyBwYXRoOiByLCBtYXRjaGVkOiBuIH0gPSB0LnJlc29sdmUoZSk7CiAgaWYgKAogICAgIW4ubGVuZ3RoIHx8CiAgICAodC5fcm91dGVQcmVsb2FkZWQgfHwgKHQuX3JvdXRlUHJlbG9hZGVkID0gbmV3IFNldCgpKSwKICAgICAgdC5fcm91dGVQcmVsb2FkZWQuaGFzKHIpKQogICkKICAgIHJldHVybjsKICBjb25zdCBpID0gKHQuX3ByZWxvYWRQcm9taXNlcyA9IHQuX3ByZWxvYWRQcm9taXNlcyB8fCBbXSk7CiAgaWYgKGkubGVuZ3RoID4gNCkKICAgIHJldHVybiBQcm9taXNlLmFsbChpKS50aGVuKCgpID0+IHByZWxvYWRSb3V0ZUNvbXBvbmVudHMoZSwgdCkpOwogIHQuX3JvdXRlUHJlbG9hZGVkLmFkZChyKTsKICBjb25zdCBhID0gbgogICAgLm1hcCgobykgPT4gewogICAgICB2YXIgbDsKICAgICAgcmV0dXJuIChsID0gby5jb21wb25lbnRzKSA9PSBudWxsID8gdm9pZCAwIDogbC5kZWZhdWx0OwogICAgfSkKICAgIC5maWx0ZXIoKG8pID0+IHR5cGVvZiBvID09ICJmdW5jdGlvbiIpOwogIGZvciAoY29uc3QgbyBvZiBhKSB7CiAgICBjb25zdCBsID0gUHJvbWlzZS5yZXNvbHZlKG8oKSkKICAgICAgLmNhdGNoKCgpID0+IHsgfSkKICAgICAgLmZpbmFsbHkoKCkgPT4gaS5zcGxpY2UoaS5pbmRleE9mKGwpKSk7CiAgICBpLnB1c2gobCk7CiAgfQogIGF3YWl0IFByb21pc2UuYWxsKGkpOwp9CmZ1bmN0aW9uIHJlbG9hZE51eHRBcHAoZSA9IHt9KSB7CiAgY29uc3QgdCA9IGUucGF0aCB8fCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CiAgbGV0IHIgPSB7fTsKICB0cnkgewogICAgciA9IGRlc3RyKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oIm51eHQ6cmVsb2FkIikgfHwgInt9Iik7CiAgfSBjYXRjaCB7IH0KICBpZiAoCiAgICBlLmZvcmNlIHx8CiAgICAociA9PSBudWxsID8gdm9pZCAwIDogci5wYXRoKSAhPT0gdCB8fAogICAgKHIgPT0gbnVsbCA/IHZvaWQgMCA6IHIuZXhwaXJlcykgPCBEYXRlLm5vdygpCiAgKSB7CiAgICB0cnkgewogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKAogICAgICAgICJudXh0OnJlbG9hZCIsCiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBwYXRoOiB0LCBleHBpcmVzOiBEYXRlLm5vdygpICsgKGUudHRsID8/IDFlNCkgfSkKICAgICAgKTsKICAgIH0gY2F0Y2ggeyB9CiAgICBpZiAoZS5wZXJzaXN0U3RhdGUpCiAgICAgIHRyeSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgKICAgICAgICAgICJudXh0OnJlbG9hZDpzdGF0ZSIsCiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IHN0YXRlOiB1c2VOdXh0QXBwKCkucGF5bG9hZC5zdGF0ZSB9KQogICAgICAgICk7CiAgICAgIH0gY2F0Y2ggeyB9CiAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgIT09IHQKICAgICAgPyAod2luZG93LmxvY2F0aW9uLmhyZWYgPSB0KQogICAgICA6IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsKICB9Cn0KY29uc3QgZmlyc3ROb25VbmRlZmluZWQgPSAoLi4uZSkgPT4gZS5maW5kKCh0KSA9PiB0ICE9PSB2b2lkIDApOwpmdW5jdGlvbiBkZWZpbmVOdXh0TGluayhlKSB7CiAgY29uc3QgdCA9IGUuY29tcG9uZW50TmFtZSB8fCAiTnV4dExpbmsiOwogIGZ1bmN0aW9uIHIoYSkgewogICAgcmV0dXJuIHR5cGVvZiBhID09ICJzdHJpbmciICYmIGEuc3RhcnRzV2l0aCgiIyIpOwogIH0KICBmdW5jdGlvbiBuKGEsIG8pIHsKICAgIGlmICghYSB8fCAoZS50cmFpbGluZ1NsYXNoICE9PSAiYXBwZW5kIiAmJiBlLnRyYWlsaW5nU2xhc2ggIT09ICJyZW1vdmUiKSkKICAgICAgcmV0dXJuIGE7CiAgICBpZiAodHlwZW9mIGEgPT0gInN0cmluZyIpCiAgICAgIHJldHVybiBhcHBseVRyYWlsaW5nU2xhc2hCZWhhdmlvcihhLCBlLnRyYWlsaW5nU2xhc2gpOwogICAgY29uc3QgbCA9ICJwYXRoIiBpbiBhICYmIGEucGF0aCAhPT0gdm9pZCAwID8gYS5wYXRoIDogbyhhKS5wYXRoOwogICAgcmV0dXJuIHsKICAgICAgLi4uYSwKICAgICAgbmFtZTogdm9pZCAwLAogICAgICBwYXRoOiBhcHBseVRyYWlsaW5nU2xhc2hCZWhhdmlvcihsLCBlLnRyYWlsaW5nU2xhc2gpLAogICAgfTsKICB9CiAgZnVuY3Rpb24gaShhKSB7CiAgICBjb25zdCBvID0gdXNlUm91dGVyJDEoKSwKICAgICAgbCA9IHVzZVJ1bnRpbWVDb25maWcoKSwKICAgICAgYyA9IGNvbXB1dGVkKCgpID0+ICEhYS50YXJnZXQgJiYgYS50YXJnZXQgIT09ICJfc2VsZiIpLAogICAgICB1ID0gY29tcHV0ZWQoKCkgPT4gewogICAgICAgIGNvbnN0IE0gPSBhLnRvIHx8IGEuaHJlZiB8fCAiIjsKICAgICAgICByZXR1cm4gdHlwZW9mIE0gPT0gInN0cmluZyIgJiYgaGFzUHJvdG9jb2woTSwgeyBhY2NlcHRSZWxhdGl2ZTogITAgfSk7CiAgICAgIH0pLAogICAgICBkID0gcmVzb2x2ZUNvbXBvbmVudCgiUm91dGVyTGluayIpLAogICAgICBFID0gZCAmJiB0eXBlb2YgZCAhPSAic3RyaW5nIiA/IGQudXNlTGluayA6IHZvaWQgMCwKICAgICAgYiA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgICBpZiAoYS5leHRlcm5hbCkgcmV0dXJuICEwOwogICAgICAgIGNvbnN0IE0gPSBhLnRvIHx8IGEuaHJlZiB8fCAiIjsKICAgICAgICByZXR1cm4gdHlwZW9mIE0gPT0gIm9iamVjdCIgPyAhMSA6IE0gPT09ICIiIHx8IHUudmFsdWU7CiAgICAgIH0pLAogICAgICBQID0gY29tcHV0ZWQoKCkgPT4gewogICAgICAgIGNvbnN0IE0gPSBhLnRvIHx8IGEuaHJlZiB8fCAiIjsKICAgICAgICByZXR1cm4gYi52YWx1ZSA/IE0gOiBuKE0sIG8ucmVzb2x2ZSk7CiAgICAgIH0pLAogICAgICBSID0gYi52YWx1ZSB8fCBFID09IG51bGwgPyB2b2lkIDAgOiBFKHsgLi4uYSwgdG86IFAgfSksCiAgICAgIFQgPSBjb21wdXRlZCgoKSA9PiB7CiAgICAgICAgdmFyIE07CiAgICAgICAgaWYgKCFQLnZhbHVlIHx8IHUudmFsdWUgfHwgcihQLnZhbHVlKSkgcmV0dXJuIFAudmFsdWU7CiAgICAgICAgaWYgKGIudmFsdWUpIHsKICAgICAgICAgIGNvbnN0IHggPQogICAgICAgICAgICB0eXBlb2YgUC52YWx1ZSA9PSAib2JqZWN0IiAmJiAicGF0aCIgaW4gUC52YWx1ZQogICAgICAgICAgICAgID8gcmVzb2x2ZVJvdXRlT2JqZWN0KFAudmFsdWUpCiAgICAgICAgICAgICAgOiBQLnZhbHVlLAogICAgICAgICAgICBrID0gdHlwZW9mIHggPT0gIm9iamVjdCIgPyBvLnJlc29sdmUoeCkuaHJlZiA6IHg7CiAgICAgICAgICByZXR1cm4gbihrLCBvLnJlc29sdmUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHlwZW9mIFAudmFsdWUgPT0gIm9iamVjdCIKICAgICAgICAgID8gKChNID0gby5yZXNvbHZlKFAudmFsdWUpKSA9PSBudWxsID8gdm9pZCAwIDogTS5ocmVmKSA/PyBudWxsCiAgICAgICAgICA6IG4oam9pblVSTChsLmFwcC5iYXNlVVJMLCBQLnZhbHVlKSwgby5yZXNvbHZlKTsKICAgICAgfSk7CiAgICByZXR1cm4gewogICAgICB0bzogUCwKICAgICAgaGFzVGFyZ2V0OiBjLAogICAgICBpc0Fic29sdXRlVXJsOiB1LAogICAgICBpc0V4dGVybmFsOiBiLAogICAgICBocmVmOiBULAogICAgICBpc0FjdGl2ZToKICAgICAgICAoUiA9PSBudWxsID8gdm9pZCAwIDogUi5pc0FjdGl2ZSkgPz8KICAgICAgICBjb21wdXRlZCgoKSA9PiBQLnZhbHVlID09PSBvLmN1cnJlbnRSb3V0ZS52YWx1ZS5wYXRoKSwKICAgICAgaXNFeGFjdEFjdGl2ZToKICAgICAgICAoUiA9PSBudWxsID8gdm9pZCAwIDogUi5pc0V4YWN0QWN0aXZlKSA/PwogICAgICAgIGNvbXB1dGVkKCgpID0+IFAudmFsdWUgPT09IG8uY3VycmVudFJvdXRlLnZhbHVlLnBhdGgpLAogICAgICByb3V0ZToKICAgICAgICAoUiA9PSBudWxsID8gdm9pZCAwIDogUi5yb3V0ZSkgPz8gY29tcHV0ZWQoKCkgPT4gby5yZXNvbHZlKFAudmFsdWUpKSwKICAgICAgYXN5bmMgbmF2aWdhdGUoKSB7CiAgICAgICAgYXdhaXQgbmF2aWdhdGVUbyhULnZhbHVlLCB7CiAgICAgICAgICByZXBsYWNlOiBhLnJlcGxhY2UsCiAgICAgICAgICBleHRlcm5hbDogYi52YWx1ZSB8fCBjLnZhbHVlLAogICAgICAgIH0pOwogICAgICB9LAogICAgfTsKICB9CiAgcmV0dXJuIGRlZmluZUNvbXBvbmVudCQxKHsKICAgIG5hbWU6IHQsCiAgICBwcm9wczogewogICAgICB0bzogeyB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBocmVmOiB7IHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHRhcmdldDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHJlbDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIG5vUmVsOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHByZWZldGNoOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHByZWZldGNoT246IHsgdHlwZTogW1N0cmluZywgT2JqZWN0XSwgZGVmYXVsdDogdm9pZCAwLCByZXF1aXJlZDogITEgfSwKICAgICAgbm9QcmVmZXRjaDogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBhY3RpdmVDbGFzczogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIGV4YWN0QWN0aXZlQ2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBwcmVmZXRjaGVkQ2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICByZXBsYWNlOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIGFyaWFDdXJyZW50VmFsdWU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBleHRlcm5hbDogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBjdXN0b206IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogdm9pZCAwLCByZXF1aXJlZDogITEgfSwKICAgIH0sCiAgICB1c2VMaW5rOiBpLAogICAgc2V0dXAoYSwgeyBzbG90czogbyB9KSB7CiAgICAgIGNvbnN0IGwgPSB1c2VSb3V0ZXIkMSgpLAogICAgICAgIHsKICAgICAgICAgIHRvOiBjLAogICAgICAgICAgaHJlZjogdSwKICAgICAgICAgIG5hdmlnYXRlOiBkLAogICAgICAgICAgaXNFeHRlcm5hbDogRSwKICAgICAgICAgIGhhc1RhcmdldDogYiwKICAgICAgICAgIGlzQWJzb2x1dGVVcmw6IFAsCiAgICAgICAgfSA9IGkoYSksCiAgICAgICAgUiA9IHJlZighMSksCiAgICAgICAgVCA9IHJlZihudWxsKSwKICAgICAgICBNID0gKFMpID0+IHsKICAgICAgICAgIHZhciBBOwogICAgICAgICAgVC52YWx1ZSA9IGEuY3VzdG9tCiAgICAgICAgICAgID8gKEEgPSBTID09IG51bGwgPyB2b2lkIDAgOiBTLiRlbCkgPT0gbnVsbAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBBLm5leHRFbGVtZW50U2libGluZwogICAgICAgICAgICA6IFMgPT0gbnVsbAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBTLiRlbDsKICAgICAgICB9OwogICAgICBmdW5jdGlvbiB4KFMpIHsKICAgICAgICB2YXIgQSwgTzsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgIVIudmFsdWUgJiYKICAgICAgICAgICh0eXBlb2YgYS5wcmVmZXRjaE9uID09ICJzdHJpbmciCiAgICAgICAgICAgID8gYS5wcmVmZXRjaE9uID09PSBTCiAgICAgICAgICAgIDogKChBID0gYS5wcmVmZXRjaE9uKSA9PSBudWxsID8gdm9pZCAwIDogQVtTXSkgPz8KICAgICAgICAgICAgKChPID0gZS5wcmVmZXRjaE9uKSA9PSBudWxsID8gdm9pZCAwIDogT1tTXSkpICYmCiAgICAgICAgICAoYS5wcmVmZXRjaCA/PyBlLnByZWZldGNoKSAhPT0gITEgJiYKICAgICAgICAgIGEubm9QcmVmZXRjaCAhPT0gITAgJiYKICAgICAgICAgIGEudGFyZ2V0ICE9PSAiX2JsYW5rIiAmJgogICAgICAgICAgIWlzU2xvd0Nvbm5lY3Rpb24oKQogICAgICAgICk7CiAgICAgIH0KICAgICAgYXN5bmMgZnVuY3Rpb24gayhTID0gdXNlTnV4dEFwcCgpKSB7CiAgICAgICAgaWYgKFIudmFsdWUpIHJldHVybjsKICAgICAgICBSLnZhbHVlID0gITA7CiAgICAgICAgY29uc3QgQSA9CiAgICAgICAgICB0eXBlb2YgYy52YWx1ZSA9PSAic3RyaW5nIgogICAgICAgICAgICA/IGMudmFsdWUKICAgICAgICAgICAgOiBFLnZhbHVlCiAgICAgICAgICAgICAgPyByZXNvbHZlUm91dGVPYmplY3QoYy52YWx1ZSkKICAgICAgICAgICAgICA6IGwucmVzb2x2ZShjLnZhbHVlKS5mdWxsUGF0aCwKICAgICAgICAgIE8gPSBFLnZhbHVlID8gbmV3IFVSTChBLCB3aW5kb3cubG9jYXRpb24uaHJlZikuaHJlZiA6IEE7CiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwogICAgICAgICAgUy5ob29rcy5jYWxsSG9vaygibGluazpwcmVmZXRjaCIsIE8pLmNhdGNoKCgpID0+IHsgfSksCiAgICAgICAgICAhRS52YWx1ZSAmJgogICAgICAgICAgIWIudmFsdWUgJiYKICAgICAgICAgIHByZWxvYWRSb3V0ZUNvbXBvbmVudHMoYy52YWx1ZSwgbCkuY2F0Y2goKCkgPT4geyB9KSwKICAgICAgICBdKTsKICAgICAgfQogICAgICBpZiAoeCgidmlzaWJpbGl0eSIpKSB7CiAgICAgICAgY29uc3QgUyA9IHVzZU51eHRBcHAoKTsKICAgICAgICBsZXQgQSwKICAgICAgICAgIE8gPSBudWxsOwogICAgICAgIG9uTW91bnRlZCgoKSA9PiB7CiAgICAgICAgICBjb25zdCBGID0gdXNlT2JzZXJ2ZXIoKTsKICAgICAgICAgIG9uTnV4dFJlYWR5KCgpID0+IHsKICAgICAgICAgICAgQSA9IHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gewogICAgICAgICAgICAgIHZhciBEOwogICAgICAgICAgICAgIChEID0gVCA9PSBudWxsID8gdm9pZCAwIDogVC52YWx1ZSkgIT0gbnVsbCAmJgogICAgICAgICAgICAgICAgRC50YWdOYW1lICYmCiAgICAgICAgICAgICAgICAoTyA9IEYub2JzZXJ2ZShULnZhbHVlLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgIE8gPT0gbnVsbCB8fCBPKCksIChPID0gbnVsbCksIGF3YWl0IGsoUyk7CiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgfSksCiAgICAgICAgICBvbkJlZm9yZVVubW91bnQoKCkgPT4gewogICAgICAgICAgICBBICYmIGNhbmNlbElkbGVDYWxsYmFjayhBKSwgTyA9PSBudWxsIHx8IE8oKSwgKE8gPSBudWxsKTsKICAgICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgdmFyIE87CiAgICAgICAgaWYgKCFFLnZhbHVlICYmICFiLnZhbHVlICYmICFyKGMudmFsdWUpKSB7CiAgICAgICAgICBjb25zdCBGID0gewogICAgICAgICAgICByZWY6IE0sCiAgICAgICAgICAgIHRvOiBjLnZhbHVlLAogICAgICAgICAgICBhY3RpdmVDbGFzczogYS5hY3RpdmVDbGFzcyB8fCBlLmFjdGl2ZUNsYXNzLAogICAgICAgICAgICBleGFjdEFjdGl2ZUNsYXNzOiBhLmV4YWN0QWN0aXZlQ2xhc3MgfHwgZS5leGFjdEFjdGl2ZUNsYXNzLAogICAgICAgICAgICByZXBsYWNlOiBhLnJlcGxhY2UsCiAgICAgICAgICAgIGFyaWFDdXJyZW50VmFsdWU6IGEuYXJpYUN1cnJlbnRWYWx1ZSwKICAgICAgICAgICAgY3VzdG9tOiBhLmN1c3RvbSwKICAgICAgICAgIH07CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBhLmN1c3RvbSB8fAogICAgICAgICAgICAoeCgiaW50ZXJhY3Rpb24iKSAmJgogICAgICAgICAgICAgICgoRi5vblBvaW50ZXJlbnRlciA9IGsuYmluZChudWxsLCB2b2lkIDApKSwKICAgICAgICAgICAgICAgIChGLm9uRm9jdXMgPSBrLmJpbmQobnVsbCwgdm9pZCAwKSkpLAogICAgICAgICAgICAgIFIudmFsdWUgJiYgKEYuY2xhc3MgPSBhLnByZWZldGNoZWRDbGFzcyB8fCBlLnByZWZldGNoZWRDbGFzcyksCiAgICAgICAgICAgICAgKEYucmVsID0gYS5yZWwgfHwgdm9pZCAwKSksCiAgICAgICAgICAgIGgkMihyZXNvbHZlQ29tcG9uZW50KCJSb3V0ZXJMaW5rIiksIEYsIG8uZGVmYXVsdCkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IFMgPSBhLnRhcmdldCB8fCBudWxsLAogICAgICAgICAgQSA9CiAgICAgICAgICAgIGZpcnN0Tm9uVW5kZWZpbmVkKAogICAgICAgICAgICAgIGEubm9SZWwgPyAiIiA6IGEucmVsLAogICAgICAgICAgICAgIGUuZXh0ZXJuYWxSZWxBdHRyaWJ1dGUsCiAgICAgICAgICAgICAgUC52YWx1ZSB8fCBiLnZhbHVlID8gIm5vb3BlbmVyIG5vcmVmZXJyZXIiIDogIiIKICAgICAgICAgICAgKSB8fCBudWxsOwogICAgICAgIHJldHVybiBhLmN1c3RvbQogICAgICAgICAgPyBvLmRlZmF1bHQKICAgICAgICAgICAgPyBvLmRlZmF1bHQoewogICAgICAgICAgICAgIGhyZWY6IHUudmFsdWUsCiAgICAgICAgICAgICAgbmF2aWdhdGU6IGQsCiAgICAgICAgICAgICAgcHJlZmV0Y2g6IGssCiAgICAgICAgICAgICAgZ2V0IHJvdXRlKCkgewogICAgICAgICAgICAgICAgaWYgKCF1LnZhbHVlKSByZXR1cm47CiAgICAgICAgICAgICAgICBjb25zdCBGID0gbmV3IFVSTCh1LnZhbHVlLCB3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICBwYXRoOiBGLnBhdGhuYW1lLAogICAgICAgICAgICAgICAgICBmdWxsUGF0aDogRi5wYXRobmFtZSwKICAgICAgICAgICAgICAgICAgZ2V0IHF1ZXJ5KCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVF1ZXJ5JDEoRi5zZWFyY2gpOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBoYXNoOiBGLmhhc2gsCiAgICAgICAgICAgICAgICAgIHBhcmFtczoge30sCiAgICAgICAgICAgICAgICAgIG5hbWU6IHZvaWQgMCwKICAgICAgICAgICAgICAgICAgbWF0Y2hlZDogW10sCiAgICAgICAgICAgICAgICAgIHJlZGlyZWN0ZWRGcm9tOiB2b2lkIDAsCiAgICAgICAgICAgICAgICAgIG1ldGE6IHt9LAogICAgICAgICAgICAgICAgICBocmVmOiB1LnZhbHVlLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJlbDogQSwKICAgICAgICAgICAgICB0YXJnZXQ6IFMsCiAgICAgICAgICAgICAgaXNFeHRlcm5hbDogRS52YWx1ZSB8fCBiLnZhbHVlLAogICAgICAgICAgICAgIGlzQWN0aXZlOiAhMSwKICAgICAgICAgICAgICBpc0V4YWN0QWN0aXZlOiAhMSwKICAgICAgICAgICAgfSkKICAgICAgICAgICAgOiBudWxsCiAgICAgICAgICA6IGgkMigKICAgICAgICAgICAgImEiLAogICAgICAgICAgICB7IHJlZjogVCwgaHJlZjogdS52YWx1ZSB8fCBudWxsLCByZWw6IEEsIHRhcmdldDogUyB9LAogICAgICAgICAgICAoTyA9IG8uZGVmYXVsdCkgPT0gbnVsbCA/IHZvaWQgMCA6IE8uY2FsbChvKQogICAgICAgICAgKTsKICAgICAgfTsKICAgIH0sCiAgfSk7Cn0KY29uc3QgX19udXh0X2NvbXBvbmVudF8xJDEgPSBkZWZpbmVOdXh0TGluayhudXh0TGlua0RlZmF1bHRzKTsKZnVuY3Rpb24gYXBwbHlUcmFpbGluZ1NsYXNoQmVoYXZpb3IoZSwgdCkgewogIGNvbnN0IHIgPSB0ID09PSAiYXBwZW5kIiA/IHdpdGhUcmFpbGluZ1NsYXNoIDogd2l0aG91dFRyYWlsaW5nU2xhc2g7CiAgcmV0dXJuIGhhc1Byb3RvY29sKGUpICYmICFlLnN0YXJ0c1dpdGgoImh0dHAiKSA/IGUgOiByKGUsICEwKTsKfQpmdW5jdGlvbiB1c2VPYnNlcnZlcigpIHsKICBjb25zdCBlID0gdXNlTnV4dEFwcCgpOwogIGlmIChlLl9vYnNlcnZlcikgcmV0dXJuIGUuX29ic2VydmVyOwogIGxldCB0ID0gbnVsbDsKICBjb25zdCByID0gbmV3IE1hcCgpLAogICAgbiA9IChhLCBvKSA9PiAoCiAgICAgIHQgfHwKICAgICAgKHQgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGwpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IGMgb2YgbCkgewogICAgICAgICAgY29uc3QgdSA9IHIuZ2V0KGMudGFyZ2V0KTsKICAgICAgICAgIChjLmlzSW50ZXJzZWN0aW5nIHx8IGMuaW50ZXJzZWN0aW9uUmF0aW8gPiAwKSAmJiB1ICYmIHUoKTsKICAgICAgICB9CiAgICAgIH0pKSwKICAgICAgci5zZXQoYSwgbyksCiAgICAgIHQub2JzZXJ2ZShhKSwKICAgICAgKCkgPT4gewogICAgICAgIHIuZGVsZXRlKGEpLAogICAgICAgICAgdCA9PSBudWxsIHx8IHQudW5vYnNlcnZlKGEpLAogICAgICAgICAgci5zaXplID09PSAwICYmICh0ID09IG51bGwgfHwgdC5kaXNjb25uZWN0KCksICh0ID0gbnVsbCkpOwogICAgICB9CiAgICApOwogIHJldHVybiAoZS5fb2JzZXJ2ZXIgPSB7IG9ic2VydmU6IG4gfSk7Cn0KY29uc3QgSVNfMkdfUkUgPSAvMmcvOwpmdW5jdGlvbiBpc1Nsb3dDb25uZWN0aW9uKCkgewogIGNvbnN0IGUgPSBuYXZpZ2F0b3IuY29ubmVjdGlvbjsKICByZXR1cm4gISEoZSAmJiAoZS5zYXZlRGF0YSB8fCBJU18yR19SRS50ZXN0KGUuZWZmZWN0aXZlVHlwZSkpKTsKfQpjb25zdCBpbmxpbmVDb25maWcgPSB7IG51eHQ6IHt9LCBfX3N3aXBlcjogeyBidW5kbGVkOiAhMCB9IH0sCiAgX19hcHBDb25maWcgPSBkZWZ1Rm4oaW5saW5lQ29uZmlnKTsKZnVuY3Rpb24gdXNlQXBwQ29uZmlnKCkgewogIGNvbnN0IGUgPSB1c2VOdXh0QXBwKCk7CiAgcmV0dXJuIGUuX2FwcENvbmZpZyB8fCAoZS5fYXBwQ29uZmlnID0gcmVhY3RpdmUoX19hcHBDb25maWcpKSwgZS5fYXBwQ29uZmlnOwp9CmNvbnN0IHJlZGlyZWN0XzQ1Z2xvYmFsID0gKGUpID0+IHsKICBjb25zdCB0ID0gewogICAgIi9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciI6CiAgICAgICIvc29sdXRpb25zL2J1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyIiwKICAgICIvUnUvYnV5LXNlbGwtcGVyZmVjdG1vbmV5LXZvdWNoZXIiOgogICAgICAiL1J1L3NvbHV0aW9ucy9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciIsCiAgICAiL3JlY2VpdmUtcGF5cGFsIjogIi9zb2x1dGlvbnMvZXhjaGFuZ2UtcGF5cGFsIiwKICAgICIvc2VydmljZXMvZXhjaGFuZ2UtcGVyZmVjdG1vbmV5LXBheXBhbCI6CiAgICAgICIvc2VydmljZXMvcGVyZmVjdG1vbmV5LXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAiL3doeS1zaWduLXVwIjogIi9hbWwta3ljLXBvbGljeSIsCiAgICAiL3N0b3J5LW9mLXVzIjogIi9Fbi9jb250YWN0LXVzIiwKICAgICIvUnUvcGF5cGFsLWludm9pY2UiOiAiL1J1L3NvbHV0aW9ucy9wYXltZW50LWdhdGUiLAogICAgIi9SdS9zZXJ2aWNlcy9leGNoYW5nZS1wZXJmZWN0bW9uZXktcGF5cGFsIjoKICAgICAgIi9SdS9zZXJ2aWNlcy9wZXJmZWN0bW9uZXktdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICIvdGV0aGVyLXRvLVBtdm91Y2hlci1leGNoYW5nZSI6ICIvIiwKICAgICIvUnUvdmlzYS1tYXN0ZXItaW52b2ljZSI6ICIvc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAiL1J1L3RldGhlci10by1QbXZvdWNoZXItZXhjaGFuZ2U/c3RlcD0xIjogIi8iLAogICAgIi9wYXlwYWwtaW52b2ljZSI6ICIvc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAiL2Rpc2NsYWltZXIiOiAiL3Rlcm1zLW9mLXNlcnZpY2VzIiwKICAgICIvcGF5bWVudC1nYXRlIjogIi9zb2x1dGlvbnMvcGF5bWVudC1nYXRlIiwKICAgICIvUnUvcmVjZWl2ZS1wYXlwYWwiOiAiL1J1L3NvbHV0aW9ucy9leGNoYW5nZS1wYXlwYWwiLAogICAgIi9SdS9wYXltZW50LWdhdGUiOiAiL1J1L3NvbHV0aW9ucy9wYXltZW50LWdhdGUiLAogICAgIi9SdS90ZXRoZXItdG8tUG12b3VjaGVyLWV4Y2hhbmdlIjogIi8iLAogIH07CiAgaWYgKHRbZS5wYXRoXSkgcmV0dXJuIG5hdmlnYXRlVG8odFtlLnBhdGhdLCB7IHJlZGlyZWN0Q29kZTogMzAxIH0pOwp9LAogIG1hbmlmZXN0XzQ1cm91dGVfNDVydWxlID0gYXN5bmMgKGUpID0+IHsKICAgIGxldCB0LCByOwogICAgY29uc3QgbiA9CiAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGdldFJvdXRlUnVsZXMoeyBwYXRoOiBlLnBhdGggfSkpKSwKICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgIHIoKSwKICAgICAgICB0KTsKICAgIGlmIChuLnJlZGlyZWN0KQogICAgICByZXR1cm4gaGFzUHJvdG9jb2wobi5yZWRpcmVjdCwgeyBhY2NlcHRSZWxhdGl2ZTogITAgfSkKICAgICAgICA/ICgod2luZG93LmxvY2F0aW9uLmhyZWYgPSBuLnJlZGlyZWN0KSwgITEpCiAgICAgICAgOiBuLnJlZGlyZWN0OwogIH0sCiAgZ2xvYmFsTWlkZGxld2FyZSA9IFt2YWxpZGF0ZSwgcmVkaXJlY3RfNDVnbG9iYWwsIG1hbmlmZXN0XzQ1cm91dGVfNDVydWxlXSwKICBuYW1lZE1pZGRsZXdhcmUgPSB7CiAgICBhdXRoOiAoKSA9PgogICAgICBfX3ZpdGVQcmVsb2FkKCgpID0+IGltcG9ydCgiLi9EbGgzX1c5LS5qcyIpLCBbXSwgaW1wb3J0Lm1ldGEudXJsKSwKICB9OwpmdW5jdGlvbiBjcmVhdGVDdXJyZW50TG9jYXRpb24oZSwgdCwgcikgewogIGNvbnN0IHsgcGF0aG5hbWU6IG4sIHNlYXJjaDogaSwgaGFzaDogYSB9ID0gdCwKICAgIG8gPSBlLmluZGV4T2YoIiMiKTsKICBpZiAobyA+IC0xKSB7CiAgICBjb25zdCB1ID0gYS5pbmNsdWRlcyhlLnNsaWNlKG8pKSA/IGUuc2xpY2UobykubGVuZ3RoIDogMTsKICAgIGxldCBkID0gYS5zbGljZSh1KTsKICAgIHJldHVybiBkWzBdICE9PSAiLyIgJiYgKGQgPSAiLyIgKyBkKSwgd2l0aG91dEJhc2UoZCwgIiIpOwogIH0KICBjb25zdCBsID0gd2l0aG91dEJhc2UobiwgZSksCiAgICBjID0gIXIgfHwgaXNFcXVhbCQyKGwsIHIsIHsgdHJhaWxpbmdTbGFzaDogITAgfSkgPyBsIDogcjsKICByZXR1cm4gYyArIChjLmluY2x1ZGVzKCI/IikgPyAiIiA6IGkpICsgYTsKfQpjb25zdCBwbHVnaW4kMiA9IGRlZmluZU51eHRQbHVnaW4oewogIG5hbWU6ICJudXh0OnJvdXRlciIsCiAgZW5mb3JjZTogInByZSIsCiAgYXN5bmMgc2V0dXAoZSkgewogICAgdmFyIE07CiAgICBsZXQgdCwKICAgICAgciwKICAgICAgbiA9IHVzZVJ1bnRpbWVDb25maWcoKS5hcHAuYmFzZVVSTDsKICAgIGNvbnN0IGkgPQogICAgICAoKE0gPSByb3V0ZXJPcHRpb25zLmhpc3RvcnkpID09IG51bGwKICAgICAgICA/IHZvaWQgMAogICAgICAgIDogTS5jYWxsKHJvdXRlck9wdGlvbnMsIG4pKSA/PyBjcmVhdGVXZWJIaXN0b3J5KG4pLAogICAgICBhID0gcm91dGVyT3B0aW9ucy5yb3V0ZXMKICAgICAgICA/ICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IHJvdXRlck9wdGlvbnMucm91dGVzKF9yb3V0ZXMpKSksCiAgICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgICAgcigpLAogICAgICAgICAgdCA/PyBfcm91dGVzKQogICAgICAgIDogX3JvdXRlczsKICAgIGxldCBvOwogICAgY29uc3QgbCA9IGNyZWF0ZVJvdXRlcih7CiAgICAgIC4uLnJvdXRlck9wdGlvbnMsCiAgICAgIHNjcm9sbEJlaGF2aW9yOiAoeCwgaywgUykgPT4gewogICAgICAgIGlmIChrID09PSBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVEKSB7CiAgICAgICAgICBvID0gUzsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKHJvdXRlck9wdGlvbnMuc2Nyb2xsQmVoYXZpb3IpIHsKICAgICAgICAgIGlmICgKICAgICAgICAgICAgKChsLm9wdGlvbnMuc2Nyb2xsQmVoYXZpb3IgPSByb3V0ZXJPcHRpb25zLnNjcm9sbEJlaGF2aW9yKSwKICAgICAgICAgICAgICAic2Nyb2xsUmVzdG9yYXRpb24iIGluIHdpbmRvdy5oaXN0b3J5KQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGNvbnN0IEEgPSBsLmJlZm9yZUVhY2goKCkgPT4gewogICAgICAgICAgICAgIEEoKSwgKHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gIm1hbnVhbCIpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByb3V0ZXJPcHRpb25zLnNjcm9sbEJlaGF2aW9yKAogICAgICAgICAgICB4LAogICAgICAgICAgICBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVELAogICAgICAgICAgICBvIHx8IFMKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9LAogICAgICBoaXN0b3J5OiBpLAogICAgICByb3V0ZXM6IGEsCiAgICB9KTsKICAgICJzY3JvbGxSZXN0b3JhdGlvbiIgaW4gd2luZG93Lmhpc3RvcnkgJiYKICAgICAgKHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gImF1dG8iKSwKICAgICAgZS52dWVBcHAudXNlKGwpOwogICAgY29uc3QgYyA9IHNoYWxsb3dSZWYobC5jdXJyZW50Um91dGUudmFsdWUpOwogICAgbC5hZnRlckVhY2goKHgsIGspID0+IHsKICAgICAgYy52YWx1ZSA9IGs7CiAgICB9KSwKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KAogICAgICAgIGUudnVlQXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLAogICAgICAgICJwcmV2aW91c1JvdXRlIiwKICAgICAgICB7IGdldDogKCkgPT4gYy52YWx1ZSB9CiAgICAgICk7CiAgICBjb25zdCB1ID0gY3JlYXRlQ3VycmVudExvY2F0aW9uKG4sIHdpbmRvdy5sb2NhdGlvbiwgZS5wYXlsb2FkLnBhdGgpLAogICAgICBkID0gc2hhbGxvd1JlZihsLmN1cnJlbnRSb3V0ZS52YWx1ZSksCiAgICAgIEUgPSAoKSA9PiB7CiAgICAgICAgZC52YWx1ZSA9IGwuY3VycmVudFJvdXRlLnZhbHVlOwogICAgICB9OwogICAgZS5ob29rKCJwYWdlOmZpbmlzaCIsIEUpLAogICAgICBsLmFmdGVyRWFjaCgoeCwgaykgPT4gewogICAgICAgIHZhciBTLCBBLCBPLCBGOwogICAgICAgICgoQSA9IChTID0geC5tYXRjaGVkWzBdKSA9PSBudWxsID8gdm9pZCAwIDogUy5jb21wb25lbnRzKSA9PSBudWxsCiAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgOiBBLmRlZmF1bHQpID09PQogICAgICAgICAgKChGID0gKE8gPSBrLm1hdGNoZWRbMF0pID09IG51bGwgPyB2b2lkIDAgOiBPLmNvbXBvbmVudHMpID09IG51bGwKICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgOiBGLmRlZmF1bHQpICYmIEUoKTsKICAgICAgfSk7CiAgICBjb25zdCBiID0ge307CiAgICBmb3IgKGNvbnN0IHggaW4gZC52YWx1ZSkKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIHgsIHsgZ2V0OiAoKSA9PiBkLnZhbHVlW3hdLCBlbnVtZXJhYmxlOiAhMCB9KTsKICAgIChlLl9yb3V0ZSA9IHNoYWxsb3dSZWFjdGl2ZShiKSksCiAgICAgIChlLl9taWRkbGV3YXJlID0gZS5fbWlkZGxld2FyZSB8fCB7IGdsb2JhbDogW10sIG5hbWVkOiB7fSB9KTsKICAgIGNvbnN0IFAgPSB1c2VFcnJvcigpOwogICAgbC5hZnRlckVhY2goYXN5bmMgKHgsIGssIFMpID0+IHsKICAgICAgZGVsZXRlIGUuX3Byb2Nlc3NpbmdNaWRkbGV3YXJlLAogICAgICAgICFlLmlzSHlkcmF0aW5nICYmIFAudmFsdWUgJiYgKGF3YWl0IGUucnVuV2l0aENvbnRleHQoY2xlYXJFcnJvcikpLAogICAgICAgIFMgJiYgKGF3YWl0IGUuY2FsbEhvb2soInBhZ2U6bG9hZGluZzplbmQiKSk7CiAgICB9KTsKICAgIHRyeSB7CiAgICAgIChbdCwgcl0gPSBleGVjdXRlQXN5bmMoKCkgPT4gbC5pc1JlYWR5KCkpKSwgYXdhaXQgdCwgcigpOwogICAgfSBjYXRjaCAoeCkgewogICAgICAoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGUucnVuV2l0aENvbnRleHQoKCkgPT4gc2hvd0Vycm9yKHgpKSkpLAogICAgICAgIGF3YWl0IHQsCiAgICAgICAgcigpOwogICAgfQogICAgY29uc3QgUiA9CiAgICAgIHUgIT09IGwuY3VycmVudFJvdXRlLnZhbHVlLmZ1bGxQYXRoCiAgICAgICAgPyBsLnJlc29sdmUodSkKICAgICAgICA6IGwuY3VycmVudFJvdXRlLnZhbHVlOwogICAgRSgpOwogICAgY29uc3QgVCA9IGUucGF5bG9hZC5zdGF0ZS5fbGF5b3V0OwogICAgcmV0dXJuICgKICAgICAgbC5iZWZvcmVFYWNoKGFzeW5jICh4LCBrKSA9PiB7CiAgICAgICAgdmFyIFM7CiAgICAgICAgYXdhaXQgZS5jYWxsSG9vaygicGFnZTpsb2FkaW5nOnN0YXJ0IiksCiAgICAgICAgICAoeC5tZXRhID0gcmVhY3RpdmUoeC5tZXRhKSksCiAgICAgICAgICBlLmlzSHlkcmF0aW5nICYmCiAgICAgICAgICBUICYmCiAgICAgICAgICAhaXNSZWFkb25seSh4Lm1ldGEubGF5b3V0KSAmJgogICAgICAgICAgKHgubWV0YS5sYXlvdXQgPSBUKSwKICAgICAgICAgIChlLl9wcm9jZXNzaW5nTWlkZGxld2FyZSA9ICEwKTsKICAgICAgICB7CiAgICAgICAgICBjb25zdCBBID0gbmV3IFNldChbLi4uZ2xvYmFsTWlkZGxld2FyZSwgLi4uZS5fbWlkZGxld2FyZS5nbG9iYWxdKTsKICAgICAgICAgIGZvciAoY29uc3QgTyBvZiB4Lm1hdGNoZWQpIHsKICAgICAgICAgICAgY29uc3QgRiA9IE8ubWV0YS5taWRkbGV3YXJlOwogICAgICAgICAgICBpZiAoRikgZm9yIChjb25zdCBEIG9mIHRvQXJyYXkoRikpIEEuYWRkKEQpOwogICAgICAgICAgfQogICAgICAgICAgewogICAgICAgICAgICBjb25zdCBPID0gYXdhaXQgZS5ydW5XaXRoQ29udGV4dCgoKSA9PgogICAgICAgICAgICAgIGdldFJvdXRlUnVsZXMoeyBwYXRoOiB4LnBhdGggfSkKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKE8uYXBwTWlkZGxld2FyZSkKICAgICAgICAgICAgICBmb3IgKGNvbnN0IEYgaW4gTy5hcHBNaWRkbGV3YXJlKQogICAgICAgICAgICAgICAgTy5hcHBNaWRkbGV3YXJlW0ZdID8gQS5hZGQoRikgOiBBLmRlbGV0ZShGKTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAoY29uc3QgTyBvZiBBKSB7CiAgICAgICAgICAgIGNvbnN0IEYgPQogICAgICAgICAgICAgIHR5cGVvZiBPID09ICJzdHJpbmciCiAgICAgICAgICAgICAgICA/IGUuX21pZGRsZXdhcmUubmFtZWRbT10gfHwKICAgICAgICAgICAgICAgIChhd2FpdCAoKFMgPSBuYW1lZE1pZGRsZXdhcmVbT10pID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiBTLmNhbGwobmFtZWRNaWRkbGV3YXJlKS50aGVuKChIKSA9PiBILmRlZmF1bHQgfHwgSCkpKQogICAgICAgICAgICAgICAgOiBPOwogICAgICAgICAgICBpZiAoIUYpIHRocm93IG5ldyBFcnJvcihgVW5rbm93biByb3V0ZSBtaWRkbGV3YXJlOiAnJHtPfScuYCk7CiAgICAgICAgICAgIGNvbnN0IEQgPSBhd2FpdCBlLnJ1bldpdGhDb250ZXh0KCgpID0+IEYoeCwgaykpOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgIWUucGF5bG9hZC5zZXJ2ZXJSZW5kZXJlZCAmJgogICAgICAgICAgICAgIGUuaXNIeWRyYXRpbmcgJiYKICAgICAgICAgICAgICAoRCA9PT0gITEgfHwgRCBpbnN0YW5jZW9mIEVycm9yKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBjb25zdCBIID0KICAgICAgICAgICAgICAgIEQgfHwKICAgICAgICAgICAgICAgIGNyZWF0ZUVycm9yJDEoewogICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiA0MDQsCiAgICAgICAgICAgICAgICAgIHN0YXR1c01lc3NhZ2U6IGBQYWdlIE5vdCBGb3VuZDogJHt1fWAsCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZS5ydW5XaXRoQ29udGV4dCgoKSA9PiBzaG93RXJyb3IoSCkpLCAhMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoRCAhPT0gITAgJiYgKEQgfHwgRCA9PT0gITEpKSByZXR1cm4gRDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pLAogICAgICBsLm9uRXJyb3IoYXN5bmMgKCkgPT4gewogICAgICAgIGRlbGV0ZSBlLl9wcm9jZXNzaW5nTWlkZGxld2FyZSwgYXdhaXQgZS5jYWxsSG9vaygicGFnZTpsb2FkaW5nOmVuZCIpOwogICAgICB9KSwKICAgICAgbC5hZnRlckVhY2goYXN5bmMgKHgsIGspID0+IHsKICAgICAgICB4Lm1hdGNoZWQubGVuZ3RoID09PSAwICYmCiAgICAgICAgICAoYXdhaXQgZS5ydW5XaXRoQ29udGV4dCgoKSA9PgogICAgICAgICAgICBzaG93RXJyb3IoCiAgICAgICAgICAgICAgY3JlYXRlRXJyb3IkMSh7CiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiA0MDQsCiAgICAgICAgICAgICAgICBmYXRhbDogITEsCiAgICAgICAgICAgICAgICBzdGF0dXNNZXNzYWdlOiBgUGFnZSBub3QgZm91bmQ6ICR7eC5mdWxsUGF0aH1gLAogICAgICAgICAgICAgICAgZGF0YTogeyBwYXRoOiB4LmZ1bGxQYXRoIH0sCiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKQogICAgICAgICAgKSk7CiAgICAgIH0pLAogICAgICBlLmhvb2tzLmhvb2tPbmNlKCJhcHA6Y3JlYXRlZCIsIGFzeW5jICgpID0+IHsKICAgICAgICB0cnkgewogICAgICAgICAgIm5hbWUiIGluIFIgJiYgKFIubmFtZSA9IHZvaWQgMCksCiAgICAgICAgICAgIGF3YWl0IGwucmVwbGFjZSh7IC4uLlIsIGZvcmNlOiAhMCB9KSwKICAgICAgICAgICAgKGwub3B0aW9ucy5zY3JvbGxCZWhhdmlvciA9IHJvdXRlck9wdGlvbnMuc2Nyb2xsQmVoYXZpb3IpOwogICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgIGF3YWl0IGUucnVuV2l0aENvbnRleHQoKCkgPT4gc2hvd0Vycm9yKHgpKTsKICAgICAgICB9CiAgICAgIH0pLAogICAgICB7IHByb3ZpZGU6IHsgcm91dGVyOiBsIH0gfQogICAgKTsKICB9LAp9KSwKICBwYXlsb2FkX2NsaWVudF95Vkxvd3Y2aERsID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAibnV4dDpwYXlsb2FkIiwKICAgIHNldHVwKGUpIHsKICAgICAgdXNlUm91dGVyJDEoKS5iZWZvcmVSZXNvbHZlKGFzeW5jICh0LCByKSA9PiB7CiAgICAgICAgaWYgKHQucGF0aCA9PT0gci5wYXRoKSByZXR1cm47CiAgICAgICAgY29uc3QgbiA9IGF3YWl0IGxvYWRQYXlsb2FkKHQucGF0aCk7CiAgICAgICAgbiAmJiBPYmplY3QuYXNzaWduKGUuc3RhdGljLmRhdGEsIG4uZGF0YSk7CiAgICAgIH0pLAogICAgICAgIG9uTnV4dFJlYWR5KCgpID0+IHsKICAgICAgICAgIHZhciB0OwogICAgICAgICAgZS5ob29rcy5ob29rKCJsaW5rOnByZWZldGNoIiwgYXN5bmMgKHIpID0+IHsKICAgICAgICAgICAgY29uc3QgeyBob3N0bmFtZTogbiB9ID0gbmV3IFVSTChyLCB3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICAgICAgICAgIG4gPT09IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSAmJiAoYXdhaXQgbG9hZFBheWxvYWQocikpOwogICAgICAgICAgfSksCiAgICAgICAgICAgICgodCA9IG5hdmlnYXRvci5jb25uZWN0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogdC5lZmZlY3RpdmVUeXBlKSAhPT0KICAgICAgICAgICAgInNsb3ctMmciICYmIHNldFRpbWVvdXQoZ2V0QXBwTWFuaWZlc3QsIDFlMyk7CiAgICAgICAgfSk7CiAgICB9LAogIH0pLAogIG5hdmlnYXRpb25fcmVwYWludF9jbGllbnRfYnMyYldER1JJRSA9IGRlZmluZU51eHRQbHVnaW4oKCkgPT4gewogICAgY29uc3QgZSA9IHVzZVJvdXRlciQxKCk7CiAgICBvbk51eHRSZWFkeSgoKSA9PiB7CiAgICAgIGUuYmVmb3JlUmVzb2x2ZShhc3luYyAoKSA9PiB7CiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHQpID0+IHsKICAgICAgICAgIHNldFRpbWVvdXQodCwgMTAwKSwKICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgICAgICBzZXRUaW1lb3V0KHQsIDApOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKICB9KSwKICBjaGVja19vdXRkYXRlZF9idWlsZF9jbGllbnRfOHZLN1JrZkd4WiA9IGRlZmluZU51eHRQbHVnaW4oKGUpID0+IHsKICAgIGxldCB0OwogICAgYXN5bmMgZnVuY3Rpb24gcigpIHsKICAgICAgY29uc3QgbiA9IGF3YWl0IGdldEFwcE1hbmlmZXN0KCk7CiAgICAgIHQgJiYgY2xlYXJUaW1lb3V0KHQpLCAodCA9IHNldFRpbWVvdXQociwgb3V0ZGF0ZWRCdWlsZEludGVydmFsKSk7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3QgaSA9IGF3YWl0ICRmZXRjaCgKICAgICAgICAgIGJ1aWxkQXNzZXRzVVJMKCJidWlsZHMvbGF0ZXN0Lmpzb24iKSArIGA/JHtEYXRlLm5vdygpfWAKICAgICAgICApOwogICAgICAgIGkuaWQgIT09IG4uaWQgJiYgZS5ob29rcy5jYWxsSG9vaygiYXBwOm1hbmlmZXN0OnVwZGF0ZSIsIGkpOwogICAgICB9IGNhdGNoIHsgfQogICAgfQogICAgb25OdXh0UmVhZHkoKCkgPT4gewogICAgICB0ID0gc2V0VGltZW91dChyLCBvdXRkYXRlZEJ1aWxkSW50ZXJ2YWwpOwogICAgfSk7CiAgfSksCiAgY2h1bmtfcmVsb2FkX2NsaWVudF9VY2lFMGk2emVzID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAibnV4dDpjaHVuay1yZWxvYWQiLAogICAgc2V0dXAoZSkgewogICAgICBjb25zdCB0ID0gdXNlUm91dGVyJDEoKSwKICAgICAgICByID0gdXNlUnVudGltZUNvbmZpZygpLAogICAgICAgIG4gPSBuZXcgU2V0KCk7CiAgICAgIHQuYmVmb3JlRWFjaCgoKSA9PiB7CiAgICAgICAgbi5jbGVhcigpOwogICAgICB9KSwKICAgICAgICBlLmhvb2soImFwcDpjaHVua0Vycm9yIiwgKHsgZXJyb3I6IGEgfSkgPT4gewogICAgICAgICAgbi5hZGQoYSk7CiAgICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIGkoYSkgewogICAgICAgIGNvbnN0IGwgPQogICAgICAgICAgImhyZWYiIGluIGEgJiYgYS5ocmVmWzBdID09PSAiIyIKICAgICAgICAgICAgPyByLmFwcC5iYXNlVVJMICsgYS5ocmVmCiAgICAgICAgICAgIDogam9pblVSTChyLmFwcC5iYXNlVVJMLCBhLmZ1bGxQYXRoKTsKICAgICAgICByZWxvYWROdXh0QXBwKHsgcGF0aDogbCwgcGVyc2lzdFN0YXRlOiAhMCB9KTsKICAgICAgfQogICAgICBlLmhvb2soImFwcDptYW5pZmVzdDp1cGRhdGUiLCAoKSA9PiB7CiAgICAgICAgdC5iZWZvcmVSZXNvbHZlKGkpOwogICAgICB9KSwKICAgICAgICB0Lm9uRXJyb3IoKGEsIG8pID0+IHsKICAgICAgICAgIG4uaGFzKGEpICYmIGkobyk7CiAgICAgICAgfSk7CiAgICB9LAogIH0pLAogIHBsdWdpbiQxID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAicGluaWEiLAogICAgc2V0dXAoZSkgewogICAgICBjb25zdCB0ID0gY3JlYXRlUGluaWEoKTsKICAgICAgcmV0dXJuICgKICAgICAgICBlLnZ1ZUFwcC51c2UodCksCiAgICAgICAgc2V0QWN0aXZlUGluaWEodCksCiAgICAgICAgZS5wYXlsb2FkICYmIGUucGF5bG9hZC5waW5pYSAmJiAodC5zdGF0ZS52YWx1ZSA9IGUucGF5bG9hZC5waW5pYSksCiAgICAgICAgeyBwcm92aWRlOiB7IHBpbmlhOiB0IH0gfQogICAgICApOwogICAgfSwKICB9KSwKICBjb21wb25lbnRzX3BsdWdpbl9LUjFIQlpzNGtZID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAibnV4dDpnbG9iYWwtY29tcG9uZW50cyIsCiAgfSksCiAgbGF5b3V0cyA9IHsKICAgIGRlZmF1bHQ6IGRlZmluZUFzeW5jQ29tcG9uZW50KCgpID0+CiAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgKCkgPT4gaW1wb3J0KCIuL3FBcnhTVTVfLmpzIiksCiAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgIDEyMywgMjIsIDE5LCA2LCA4LCAyMCwgODMsIDE4LCA2MywgMTIsIDEzLCAyNywgMTEsIDUsIDE0LCAyOCwgMjksIDg0LAogICAgICAgICAgMzEsIDQsIDcsIDksIDMyLCAzMywgMzksIDMsIDEwLCAxNSwgMTYsIDE3LCAyMSwgNDAsIDQxLCA0MiwgMTI0LCAxLAogICAgICAgICAgNTMsIDU0LCAxMjUsIDM4LAogICAgICAgIF0pLAogICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICApLnRoZW4oKGUpID0+IGUuZGVmYXVsdCB8fCBlKQogICAgKSwKICAgIHByb2ZpbGU6IGRlZmluZUFzeW5jQ29tcG9uZW50KCgpID0+CiAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0IyWXdkUExELmpzIiksCiAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgIDEyNiwgMjIsIDE5LCA2LCA4LCAyMCwgMTI0LCAxOCwgMTEsIDEyLCAxMywgNSwgMTQsIDEsIDI3LCAyOCwgMjksIDUzLAogICAgICAgICAgNCwgNywgOSwgMzIsIDU0LCAxMjUsIDEwLCA2MywgODMsIDg0LCAxMjcsCiAgICAgICAgXSksCiAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICkudGhlbigoZSkgPT4gZS5kZWZhdWx0IHx8IGUpCiAgICApLAogIH0sCiAgcHJlZmV0Y2hfY2xpZW50XzV0enpOMG9JVkwgPSBkZWZpbmVOdXh0UGx1Z2luKHsKICAgIG5hbWU6ICJudXh0OnByZWZldGNoIiwKICAgIHNldHVwKGUpIHsKICAgICAgY29uc3QgdCA9IHVzZVJvdXRlciQxKCk7CiAgICAgIGUuaG9va3MuaG9vaygiYXBwOm1vdW50ZWQiLCAoKSA9PiB7CiAgICAgICAgdC5iZWZvcmVFYWNoKGFzeW5jIChyKSA9PiB7CiAgICAgICAgICB2YXIgaTsKICAgICAgICAgIGNvbnN0IG4gPQogICAgICAgICAgICAoaSA9IHIgPT0gbnVsbCA/IHZvaWQgMCA6IHIubWV0YSkgPT0gbnVsbCA/IHZvaWQgMCA6IGkubGF5b3V0OwogICAgICAgICAgbiAmJiB0eXBlb2YgbGF5b3V0c1tuXSA9PSAiZnVuY3Rpb24iICYmIChhd2FpdCBsYXlvdXRzW25dKCkpOwogICAgICAgIH0pOwogICAgICB9KSwKICAgICAgICBlLmhvb2tzLmhvb2soImxpbms6cHJlZmV0Y2giLCAocikgPT4gewogICAgICAgICAgaWYgKGhhc1Byb3RvY29sKHIpKSByZXR1cm47CiAgICAgICAgICBjb25zdCBuID0gdC5yZXNvbHZlKHIpOwogICAgICAgICAgaWYgKCFuKSByZXR1cm47CiAgICAgICAgICBjb25zdCBpID0gbi5tZXRhLmxheW91dDsKICAgICAgICAgIGxldCBhID0gdG9BcnJheShuLm1ldGEubWlkZGxld2FyZSk7CiAgICAgICAgICBhID0gYS5maWx0ZXIoKG8pID0+IHR5cGVvZiBvID09ICJzdHJpbmciKTsKICAgICAgICAgIGZvciAoY29uc3QgbyBvZiBhKQogICAgICAgICAgICB0eXBlb2YgbmFtZWRNaWRkbGV3YXJlW29dID09ICJmdW5jdGlvbiIgJiYgbmFtZWRNaWRkbGV3YXJlW29dKCk7CiAgICAgICAgICBpICYmIHR5cGVvZiBsYXlvdXRzW2ldID09ICJmdW5jdGlvbiIgJiYgbGF5b3V0c1tpXSgpOwogICAgICAgIH0pOwogICAgfSwKICB9KSwKICBjb21wb25lbnRzX2NsaWVudF9aQjFXMEVlSDBFID0gZGVmaW5lTnV4dFBsdWdpbigoZSkgPT4gewogICAgY29uc3QgdCA9IHVzZUFwcENvbmZpZygpOwogICAgZS5ob29rKCJhcHA6Y3JlYXRlZCIsIGFzeW5jICgpID0+IHsKICAgICAgaWYgKCF0Ll9fc3dpcGVyLmJ1bmRsZWQpIHsKICAgICAgICAoCiAgICAgICAgICBhd2FpdCBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgICBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgeyByZWdpc3RlcjogbiB9ID0gYXdhaXQgaW1wb3J0KCIuL0NwWVdCVWFXLmpzIik7CiAgICAgICAgICAgICAgcmV0dXJuIHsgcmVnaXN0ZXI6IG4gfTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgX192aXRlX19tYXBEZXBzKFsxMjgsIDEyOV0pLAogICAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICAgICkKICAgICAgICApLnJlZ2lzdGVyKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgICgKICAgICAgICBhd2FpdCBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgYXN5bmMgKCkgPT4gewogICAgICAgICAgICBjb25zdCB7IHJlZ2lzdGVyOiBuIH0gPSBhd2FpdCBpbXBvcnQoIi4vRDNPbkxlM2QuanMiKTsKICAgICAgICAgICAgcmV0dXJuIHsgcmVnaXN0ZXI6IG4gfTsKICAgICAgICAgIH0sCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzEzMCwgMTI5XSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApCiAgICAgICkucmVnaXN0ZXIoKTsKICAgIH0pOwogIH0pLAogIGxvY2FsZUNvZGVzID0gWyJFbiIsICJSdSJdLAogIGxvY2FsZUxvYWRlcnMgPSB7CiAgICBFbjogWwogICAgICB7CiAgICAgICAga2V5OiAiLi4vbG9jYWxlL2VuLVVTLmpzIiwKICAgICAgICBsb2FkOiAoKSA9PgogICAgICAgICAgX192aXRlUHJlbG9hZCgoKSA9PiBpbXBvcnQoIi4vQjlUOHRnR1guanMiKSwgW10sIGltcG9ydC5tZXRhLnVybCksCiAgICAgICAgY2FjaGU6ICEwLAogICAgICB9LAogICAgXSwKICAgIFJ1OiBbCiAgICAgIHsKICAgICAgICBrZXk6ICIuLi9sb2NhbGUvcnUtUlUuanMiLAogICAgICAgIGxvYWQ6ICgpID0+CiAgICAgICAgICBfX3ZpdGVQcmVsb2FkKCgpID0+IGltcG9ydCgiLi9EcVdUdVVpei5qcyIpLCBbXSwgaW1wb3J0Lm1ldGEudXJsKSwKICAgICAgICBjYWNoZTogITAsCiAgICAgIH0sCiAgICBdLAogIH0sCiAgdnVlSTE4bkNvbmZpZ3MgPSBbXSwKICBub3JtYWxpemVkTG9jYWxlcyA9IFsKICAgIHsgY29kZTogIkVuIiwgbmFtZTogIkVuZ2xpc2giLCBmaWxlczogW3sgcGF0aDogIi9zcmMvbG9jYWxlL2VuLVVTLmpzIiB9XSB9LAogICAgeyBjb2RlOiAiUnUiLCBuYW1lOiAiw5Agw5HGksORwoHDkcKBw5DCusOQwrjDkMK5IiwgZmlsZXM6IFt7IHBhdGg6ICIvc3JjL2xvY2FsZS9ydS1SVS5qcyIgfV0gfSwKICBdLAogIE5VWFRfSTE4Tl9NT0RVTEVfSUQgPSAiQG51eHRqcy9pMThuIiwKICBwYXJhbGxlbFBsdWdpbiA9ICExLAogIGlzU1NHID0gITEsCiAgREVGQVVMVF9EWU5BTUlDX1BBUkFNU19LRVkgPSAibnV4dEkxOG4iLAogIERFRkFVTFRfQ09PS0lFX0tFWSA9ICJpMThuX3JlZGlyZWN0ZWQiLAogIFNXSVRDSF9MT0NBTEVfUEFUSF9MSU5LX0lERU5USUZJRVIgPSAibnV4dC1pMThuLXNscCIsCiAgaW5Ccm93c2VyID0gdHlwZW9mIHdpbmRvdyA8ICJ1IjsKZnVuY3Rpb24gZ2V0Tm9ybWFsaXplZExvY2FsZXMoZSkgewogIGUgPSBlIHx8IFtdOwogIGNvbnN0IHQgPSBbXTsKICBmb3IgKGNvbnN0IHIgb2YgZSkgaXNTdHJpbmcocikgPyB0LnB1c2goeyBjb2RlOiByIH0pIDogdC5wdXNoKHIpOwogIHJldHVybiB0Owp9CmZ1bmN0aW9uIGlzSTE4bkluc3RhbmNlKGUpIHsKICByZXR1cm4gZSAhPSBudWxsICYmICJnbG9iYWwiIGluIGUgJiYgIm1vZGUiIGluIGU7Cn0KZnVuY3Rpb24gaXNDb21wb3NlcihlKSB7CiAgcmV0dXJuIGUgIT0gbnVsbCAmJiAhKCJfX2NvbXBvc2VyIiBpbiBlKSAmJiAibG9jYWxlIiBpbiBlICYmIGlzUmVmKGUubG9jYWxlKTsKfQpmdW5jdGlvbiBpc1Z1ZUkxOG4oZSkgewogIHJldHVybiBlICE9IG51bGwgJiYgIl9fY29tcG9zZXIiIGluIGU7Cn0KZnVuY3Rpb24gZ2V0STE4blRhcmdldChlKSB7CiAgcmV0dXJuIGlzSTE4bkluc3RhbmNlKGUpID8gZS5nbG9iYWwgOiBlOwp9CmZ1bmN0aW9uIGdldENvbXBvc2VyKGUpIHsKICBjb25zdCB0ID0gZ2V0STE4blRhcmdldChlKTsKICByZXR1cm4gaXNDb21wb3Nlcih0KSA/IHQgOiBpc1Z1ZUkxOG4odCkgPyB0Ll9fY29tcG9zZXIgOiB0Owp9CmZ1bmN0aW9uIGdldExvY2FsZShlKSB7CiAgcmV0dXJuIHVucmVmKGdldEkxOG5UYXJnZXQoZSkubG9jYWxlKTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVzKGUpIHsKICByZXR1cm4gdW5yZWYoZ2V0STE4blRhcmdldChlKS5sb2NhbGVzKTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVDb2RlcyhlKSB7CiAgcmV0dXJuIHVucmVmKGdldEkxOG5UYXJnZXQoZSkubG9jYWxlQ29kZXMpOwp9CmZ1bmN0aW9uIHNldExvY2FsZShlLCB0KSB7CiAgY29uc3QgciA9IGdldEkxOG5UYXJnZXQoZSk7CiAgaXNSZWYoci5sb2NhbGUpID8gKHIubG9jYWxlLnZhbHVlID0gdCkgOiAoci5sb2NhbGUgPSB0KTsKfQpmdW5jdGlvbiBnZXRSb3V0ZU5hbWUoZSkgewogIHJldHVybiBpc1N0cmluZyhlKSA/IGUgOiBpc1N5bWJvbChlKSA/IGUudG9TdHJpbmcoKSA6ICIobnVsbCkiOwp9CmZ1bmN0aW9uIGdldExvY2FsZVJvdXRlTmFtZSgKICBlLAogIHQsCiAgewogICAgZGVmYXVsdExvY2FsZTogciwKICAgIHN0cmF0ZWd5OiBuLAogICAgcm91dGVzTmFtZVNlcGFyYXRvcjogaSwKICAgIGRlZmF1bHRMb2NhbGVSb3V0ZU5hbWVTdWZmaXg6IGEsCiAgICBkaWZmZXJlbnREb21haW5zOiBvLAogIH0KKSB7CiAgY29uc3QgbCA9IG4gIT09ICJub19wcmVmaXgiIHx8IG87CiAgbGV0IGMgPSBnZXRSb3V0ZU5hbWUoZSkgKyAobCA/IGkgKyB0IDogIiIpOwogIHJldHVybiB0ID09PSByICYmIG4gPT09ICJwcmVmaXhfYW5kX2RlZmF1bHQiICYmIChjICs9IGkgKyBhKSwgYzsKfQpmdW5jdGlvbiByZXNvbHZlQmFzZVVybChlLCB0KSB7CiAgcmV0dXJuIGlzRnVuY3Rpb24oZSkgPyBlKHQpIDogZTsKfQpmdW5jdGlvbiBtYXRjaEJyb3dzZXJMb2NhbGUoZSwgdCkgewogIGNvbnN0IHIgPSBbXTsKICBmb3IgKGNvbnN0IFtuLCBpXSBvZiB0LmVudHJpZXMoKSkgewogICAgY29uc3QgYSA9IGUuZmluZCgobykgPT4gby5sYW5ndWFnZS50b0xvd2VyQ2FzZSgpID09PSBpLnRvTG93ZXJDYXNlKCkpOwogICAgaWYgKGEpIHsKICAgICAgci5wdXNoKHsgY29kZTogYS5jb2RlLCBzY29yZTogMSAtIG4gLyB0Lmxlbmd0aCB9KTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGZvciAoY29uc3QgW24sIGldIG9mIHQuZW50cmllcygpKSB7CiAgICBjb25zdCBhID0gaS5zcGxpdCgiLSIpWzBdLnRvTG93ZXJDYXNlKCksCiAgICAgIG8gPSBlLmZpbmQoKGwpID0+IGwubGFuZ3VhZ2Uuc3BsaXQoIi0iKVswXS50b0xvd2VyQ2FzZSgpID09PSBhKTsKICAgIGlmIChvKSB7CiAgICAgIHIucHVzaCh7IGNvZGU6IG8uY29kZSwgc2NvcmU6IDAuOTk5IC0gbiAvIHQubGVuZ3RoIH0pOwogICAgICBicmVhazsKICAgIH0KICB9CiAgcmV0dXJuIHI7Cn0KY29uc3QgRGVmYXVsdEJyb3dzZXJMb2NhbGVNYXRjaGVyID0gbWF0Y2hCcm93c2VyTG9jYWxlOwpmdW5jdGlvbiBjb21wYXJlQnJvd3NlckxvY2FsZShlLCB0KSB7CiAgcmV0dXJuIGUuc2NvcmUgPT09IHQuc2NvcmUKICAgID8gdC5jb2RlLmxlbmd0aCAtIGUuY29kZS5sZW5ndGgKICAgIDogdC5zY29yZSAtIGUuc2NvcmU7Cn0KY29uc3QgRGVmYXVsdEJyb3dlckxvY2FsZUNvbXBhcmVyID0gY29tcGFyZUJyb3dzZXJMb2NhbGU7CmZ1bmN0aW9uIGZpbmRCcm93c2VyTG9jYWxlKAogIGUsCiAgdCwKICB7CiAgICBtYXRjaGVyOiByID0gRGVmYXVsdEJyb3dzZXJMb2NhbGVNYXRjaGVyLAogICAgY29tcGFyZXI6IG4gPSBEZWZhdWx0QnJvd2VyTG9jYWxlQ29tcGFyZXIsCiAgfSA9IHt9CikgewogIGNvbnN0IGkgPSBbXTsKICBmb3IgKGNvbnN0IG8gb2YgZSkgewogICAgY29uc3QgeyBjb2RlOiBsIH0gPSBvLAogICAgICBjID0gby5sYW5ndWFnZSB8fCBsOwogICAgaS5wdXNoKHsgY29kZTogbCwgbGFuZ3VhZ2U6IGMgfSk7CiAgfQogIGNvbnN0IGEgPSByKGksIHQpOwogIHJldHVybiBhLmxlbmd0aCA+IDEgJiYgYS5zb3J0KG4pLCBhLmxlbmd0aCA/IGFbMF0uY29kZSA6ICIiOwp9CmZ1bmN0aW9uIGdldExvY2FsZXNSZWdleChlKSB7CiAgcmV0dXJuIG5ldyBSZWdFeHAoYF4vKCR7ZS5qb2luKCJ8Iil9KSg/Oi98JClgLCAiaSIpOwp9CmNvbnN0IGNhY2hlTWVzc2FnZXMgPSBuZXcgTWFwKCk7CmFzeW5jIGZ1bmN0aW9uIGxvYWRWdWVJMThuT3B0aW9ucyhlLCB0KSB7CiAgY29uc3QgciA9IHsgbWVzc2FnZXM6IHt9IH07CiAgZm9yIChjb25zdCBuIG9mIGUpIHsKICAgIGNvbnN0IHsgZGVmYXVsdDogaSB9ID0gYXdhaXQgbigpLAogICAgICBhID0gaXNGdW5jdGlvbihpKSA/IGF3YWl0IHQucnVuV2l0aENvbnRleHQoYXN5bmMgKCkgPT4gYXdhaXQgaSgpKSA6IGk7CiAgICBkZWVwQ29weShhLCByKTsKICB9CiAgcmV0dXJuIHI7Cn0KZnVuY3Rpb24gbWFrZUZhbGxiYWNrTG9jYWxlQ29kZXMoZSwgdCkgewogIGxldCByID0gW107CiAgaWYgKGlzQXJyYXkkMShlKSkgciA9IGU7CiAgZWxzZSBpZiAoaXNPYmplY3QkMShlKSkgewogICAgY29uc3QgbiA9IFsuLi50LCAiZGVmYXVsdCJdOwogICAgZm9yIChjb25zdCBpIG9mIG4pIGVbaV0gJiYgKHIgPSBbLi4uciwgLi4uZVtpXS5maWx0ZXIoQm9vbGVhbildKTsKICB9IGVsc2UgaXNTdHJpbmcoZSkgJiYgdC5ldmVyeSgobikgPT4gbiAhPT0gZSkgJiYgci5wdXNoKGUpOwogIHJldHVybiByOwp9CmFzeW5jIGZ1bmN0aW9uIGxvYWRJbml0aWFsTWVzc2FnZXMoZSwgdCwgcikgewogIGNvbnN0IHsKICAgIGRlZmF1bHRMb2NhbGU6IG4sCiAgICBpbml0aWFsTG9jYWxlOiBpLAogICAgbG9jYWxlQ29kZXM6IGEsCiAgICBmYWxsYmFja0xvY2FsZTogbywKICAgIGxhenk6IGwsCiAgfSA9IHI7CiAgaWYgKGwgJiYgbykgewogICAgY29uc3QgdSA9IG1ha2VGYWxsYmFja0xvY2FsZUNvZGVzKG8sIFtuLCBpXSk7CiAgICBhd2FpdCBQcm9taXNlLmFsbCh1Lm1hcCgoZCkgPT4gbG9hZEFuZFNldExvY2FsZU1lc3NhZ2VzKGQsIHQsIGUpKSk7CiAgfQogIGNvbnN0IGMgPSBsID8gWy4uLm5ldyBTZXQoKS5hZGQobikuYWRkKGkpXSA6IGE7CiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGMubWFwKCh1KSA9PiBsb2FkQW5kU2V0TG9jYWxlTWVzc2FnZXModSwgdCwgZSkpKSwgZTsKfQphc3luYyBmdW5jdGlvbiBsb2FkTWVzc2FnZShlLCB7IGtleTogdCwgbG9hZDogciB9KSB7CiAgbGV0IG4gPSBudWxsOwogIHRyeSB7CiAgICBjb25zdCBpID0gYXdhaXQgcigpLnRoZW4oKGEpID0+IGEuZGVmYXVsdCB8fCBhKTsKICAgIGlzRnVuY3Rpb24oaSkKICAgICAgPyAobiA9IGF3YWl0IGkoZSkpCiAgICAgIDogKChuID0gaSksIG4gIT0gbnVsbCAmJiBjYWNoZU1lc3NhZ2VzICYmIGNhY2hlTWVzc2FnZXMuc2V0KHQsIG4pKTsKICB9IGNhdGNoIChpKSB7CiAgICBjb25zb2xlLmVycm9yKCJGYWlsZWQgbG9jYWxlIGxvYWRpbmc6ICIgKyBpLm1lc3NhZ2UpOwogIH0KICByZXR1cm4gbjsKfQphc3luYyBmdW5jdGlvbiBsb2FkTG9jYWxlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gdFtlXTsKICBpZiAobiA9PSBudWxsKSB7CiAgICBjb25zb2xlLndhcm4oIkNvdWxkIG5vdCBmaW5kIG1lc3NhZ2VzIGZvciBsb2NhbGUgY29kZTogIiArIGUpOwogICAgcmV0dXJuOwogIH0KICBjb25zdCBpID0ge307CiAgZm9yIChjb25zdCBhIG9mIG4pIHsKICAgIGxldCBvID0gbnVsbDsKICAgIGNhY2hlTWVzc2FnZXMgJiYgY2FjaGVNZXNzYWdlcy5oYXMoYS5rZXkpICYmIGEuY2FjaGUKICAgICAgPyAobyA9IGNhY2hlTWVzc2FnZXMuZ2V0KGEua2V5KSkKICAgICAgOiAobyA9IGF3YWl0IGxvYWRNZXNzYWdlKGUsIGEpKSwKICAgICAgbyAhPSBudWxsICYmIGRlZXBDb3B5KG8sIGkpOwogIH0KICByKGUsIGkpOwp9CmFzeW5jIGZ1bmN0aW9uIGxvYWRBbmRTZXRMb2NhbGVNZXNzYWdlcyhlLCB0LCByKSB7CiAgYXdhaXQgbG9hZExvY2FsZShlLCB0LCAoaSwgYSkgPT4gewogICAgY29uc3QgbyA9IHJbaV0gfHwge307CiAgICBkZWVwQ29weShhLCBvKSwgKHJbaV0gPSBvKTsKICB9KTsKfQpmdW5jdGlvbiBzcGxpdChlLCB0KSB7CiAgcmV0dXJuIFtlLnNsaWNlKDAsIHQpLCBlLnNsaWNlKHQpXTsKfQpmdW5jdGlvbiByb3V0ZVRvT2JqZWN0KGUpIHsKICBjb25zdCB7CiAgICBmdWxsUGF0aDogdCwKICAgIHF1ZXJ5OiByLAogICAgaGFzaDogbiwKICAgIG5hbWU6IGksCiAgICBwYXRoOiBhLAogICAgcGFyYW1zOiBvLAogICAgbWV0YTogbCwKICAgIHJlZGlyZWN0ZWRGcm9tOiBjLAogICAgbWF0Y2hlZDogdSwKICB9ID0gZTsKICByZXR1cm4gewogICAgZnVsbFBhdGg6IHQsCiAgICBwYXJhbXM6IG8sCiAgICBxdWVyeTogciwKICAgIGhhc2g6IG4sCiAgICBuYW1lOiBpLAogICAgcGF0aDogYSwKICAgIG1ldGE6IGwsCiAgICBtYXRjaGVkOiB1LAogICAgcmVkaXJlY3RlZEZyb206IGMsCiAgfTsKfQpmdW5jdGlvbiByZXNvbHZlKHsgcm91dGVyOiBlIH0sIHQsIHIsIG4pIHsKICB2YXIgdSwgZDsKICBpZiAociAhPT0gInByZWZpeCIpIHJldHVybiBlLnJlc29sdmUodCk7CiAgY29uc3QgW2ksIGFdID0gc3BsaXQodC5wYXRoLCAxKSwKICAgIG8gPSBgJHtpfSR7bn0ke2EgPT09ICIiID8gYSA6IGAvJHthfWB9YCwKICAgIGwgPQogICAgICAoZCA9ICh1ID0gZS5vcHRpb25zKSA9PSBudWxsID8gdm9pZCAwIDogdS5yb3V0ZXMpID09IG51bGwKICAgICAgICA/IHZvaWQgMAogICAgICAgIDogZC5maW5kKChFKSA9PiBFLnBhdGggPT09IG8pOwogIGlmIChsID09IG51bGwpIHJldHVybiB0OwogIGNvbnN0IGMgPSBhc3NpZ24kMSh7fSwgdCwgbCk7CiAgcmV0dXJuIChjLnBhdGggPSBvKSwgZS5yZXNvbHZlKGMpOwp9CmNvbnN0IFJFU09MVkVEX1BSRUZJWEVEID0gbmV3IFNldChbCiAgInByZWZpeF9hbmRfZGVmYXVsdCIsCiAgInByZWZpeF9leGNlcHRfZGVmYXVsdCIsCl0pOwpmdW5jdGlvbiBwcmVmaXhhYmxlKGUpIHsKICBjb25zdCB7IGN1cnJlbnRMb2NhbGU6IHQsIGRlZmF1bHRMb2NhbGU6IHIsIHN0cmF0ZWd5OiBuIH0gPSBlOwogIHJldHVybiAhKHQgPT09IHIgJiYgUkVTT0xWRURfUFJFRklYRUQuaGFzKG4pKSAmJiBuICE9PSAibm9fcHJlZml4IjsKfQpjb25zdCBEZWZhdWx0UHJlZml4YWJsZSA9IHByZWZpeGFibGU7CmZ1bmN0aW9uIGdldFJvdXRlQmFzZU5hbWUoZSwgdCkgewogIGNvbnN0IHsgcm91dGVzTmFtZVNlcGFyYXRvcjogciB9ID0gZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuLAogICAgbiA9IHVucmVmKHQpOwogIHJldHVybiBuID09IG51bGwgfHwgIW4ubmFtZSA/IHZvaWQgMCA6IGdldFJvdXRlTmFtZShuLm5hbWUpLnNwbGl0KHIpWzBdOwp9CmZ1bmN0aW9uIGxvY2FsZVBhdGgoZSwgdCwgcikgewogIHZhciBpOwogIGlmICh0eXBlb2YgdCA9PSAic3RyaW5nIiAmJiBoYXNQcm90b2NvbCh0LCB7IGFjY2VwdFJlbGF0aXZlOiAhMCB9KSkgcmV0dXJuIHQ7CiAgY29uc3QgbiA9IHJlc29sdmVSb3V0ZShlLCB0LCByKTsKICByZXR1cm4gbiA9PSBudWxsCiAgICA/ICIiCiAgICA6ICgoaSA9IG4ucmVkaXJlY3RlZEZyb20pID09IG51bGwgPyB2b2lkIDAgOiBpLmZ1bGxQYXRoKSB8fCBuLmZ1bGxQYXRoOwp9CmZ1bmN0aW9uIGxvY2FsZVJvdXRlKGUsIHQsIHIpIHsKICByZXR1cm4gcmVzb2x2ZVJvdXRlKGUsIHQsIHIpID8/IHZvaWQgMDsKfQpmdW5jdGlvbiBsb2NhbGVMb2NhdGlvbihlLCB0LCByKSB7CiAgcmV0dXJuIHJlc29sdmVSb3V0ZShlLCB0LCByKSA/PyB2b2lkIDA7Cn0KZnVuY3Rpb24gcmVzb2x2ZVJvdXRlKGUsIHQsIHIpIHsKICBjb25zdCB7IHJvdXRlcjogbiwgaTE4bjogaSB9ID0gZSwKICAgIGEgPSByIHx8IGdldExvY2FsZShpKSwKICAgIHsKICAgICAgZGVmYXVsdExvY2FsZTogbywKICAgICAgc3RyYXRlZ3k6IGwsCiAgICAgIHRyYWlsaW5nU2xhc2g6IGMsCiAgICB9ID0gZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuLAogICAgdSA9IGV4dGVuZFByZWZpeGFibGUoZS5ydW50aW1lQ29uZmlnKTsKICBsZXQgZDsKICBpZiAoaXNTdHJpbmcodCkpCiAgICBpZiAodFswXSA9PT0gIi8iKSB7CiAgICAgIGNvbnN0IHsgcGF0aG5hbWU6IFAsIHNlYXJjaDogUiwgaGFzaDogVCB9ID0gcGFyc2VQYXRoKHQpLAogICAgICAgIE0gPSBwYXJzZVF1ZXJ5JDEoUik7CiAgICAgIGQgPSB7IHBhdGg6IFAsIHF1ZXJ5OiBNLCBoYXNoOiBUIH07CiAgICB9IGVsc2UgZCA9IHsgbmFtZTogdCB9OwogIGVsc2UgZCA9IHQ7CiAgbGV0IEUgPSBhc3NpZ24kMSh7fSwgZCk7CiAgaWYgKCgoUCkgPT4gInBhdGgiIGluIFAgJiYgISFQLnBhdGggJiYgISgibmFtZSIgaW4gUCkpKEUpKSB7CiAgICBjb25zdCBQID0gcmVzb2x2ZShlLCBFLCBsLCBhKSwKICAgICAgUiA9IGdldFJvdXRlQmFzZU5hbWUoZSwgUCk7CiAgICBpc1N0cmluZyhSKQogICAgICA/ICgoRSA9IHsKICAgICAgICBuYW1lOiBnZXRMb2NhbGVSb3V0ZU5hbWUoUiwgYSwgZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuKSwKICAgICAgICBwYXJhbXM6IFAucGFyYW1zLAogICAgICAgIHF1ZXJ5OiBQLnF1ZXJ5LAogICAgICAgIGhhc2g6IFAuaGFzaCwKICAgICAgfSksCiAgICAgICAgKEUuc3RhdGUgPSBQLnN0YXRlKSkKICAgICAgOiAodSh7IGN1cnJlbnRMb2NhbGU6IGEsIGRlZmF1bHRMb2NhbGU6IG8sIHN0cmF0ZWd5OiBsIH0pICYmCiAgICAgICAgKEUucGF0aCA9IGAvJHthfSR7RS5wYXRofWApLAogICAgICAgIChFLnBhdGggPSBjCiAgICAgICAgICA/IHdpdGhUcmFpbGluZ1NsYXNoKEUucGF0aCwgITApCiAgICAgICAgICA6IHdpdGhvdXRUcmFpbGluZ1NsYXNoKEUucGF0aCwgITApKSk7CiAgfSBlbHNlCiAgICAhRS5uYW1lICYmCiAgICAgICEoInBhdGgiIGluIEUpICYmCiAgICAgIChFLm5hbWUgPSBnZXRSb3V0ZUJhc2VOYW1lKGUsIG4uY3VycmVudFJvdXRlLnZhbHVlKSksCiAgICAgIChFLm5hbWUgPSBnZXRMb2NhbGVSb3V0ZU5hbWUoRS5uYW1lLCBhLCBlLnJ1bnRpbWVDb25maWcucHVibGljLmkxOG4pKTsKICB0cnkgewogICAgY29uc3QgUCA9IG4ucmVzb2x2ZShFKTsKICAgIHJldHVybiBQLm5hbWUgPyBQIDogbi5yZXNvbHZlKHQpOwogIH0gY2F0Y2ggKFApIHsKICAgIGlmICh0eXBlb2YgUCA9PSAib2JqZWN0IiAmJiAidHlwZSIgaW4gUCAmJiBQLnR5cGUgPT09IDEpIHJldHVybiBudWxsOwogIH0KfQpjb25zdCBEZWZhdWx0U3dpdGNoTG9jYWxlUGF0aEludGVyY2VwdGVyID0gKGUpID0+IGU7CmZ1bmN0aW9uIGdldExvY2FsaXphYmxlTWV0YUZyb21EeW5hbWljUGFyYW1zKGUsIHQpIHsKICB2YXIgbjsKICBpZiAoZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuLmV4cGVyaW1lbnRhbC5zd2l0Y2hMb2NhbGVQYXRoTGlua1NTUikKICAgIHJldHVybiB1bnJlZihlLm1ldGFTdGF0ZS52YWx1ZSk7CiAgY29uc3QgciA9IHQubWV0YSB8fCB7fTsKICByZXR1cm4gKAogICAgKChuID0gdW5yZWYocikpID09IG51bGwgPyB2b2lkIDAgOiBuW0RFRkFVTFRfRFlOQU1JQ19QQVJBTVNfS0VZXSkgfHwge30KICApOwp9CmZ1bmN0aW9uIHN3aXRjaExvY2FsZVBhdGgoZSwgdCwgcikgewogIGNvbnN0IG4gPSByID8/IGUucm91dGVyLmN1cnJlbnRSb3V0ZS52YWx1ZSwKICAgIGkgPSBnZXRSb3V0ZUJhc2VOYW1lKGUsIG4pOwogIGlmICghaSkgcmV0dXJuICIiOwogIGNvbnN0IGEgPSBleHRlbmRTd2l0Y2hMb2NhbGVQYXRoSW50ZXJjZXB0ZXIoZS5ydW50aW1lQ29uZmlnKSwKICAgIG8gPSByb3V0ZVRvT2JqZWN0KG4pLAogICAgbCA9IGdldExvY2FsaXphYmxlTWV0YUZyb21EeW5hbWljUGFyYW1zKGUsIG4pW3RdLAogICAgYyA9IHsgLi4ubywgbmFtZTogaSwgcGFyYW1zOiB7IC4uLm8ucGFyYW1zLCAuLi5sIH0gfSwKICAgIHUgPSBsb2NhbGVQYXRoKGUsIGMsIHQpOwogIHJldHVybiBhKHUsIHQpOwp9CmZ1bmN0aW9uIGxvY2FsZUhlYWQoCiAgZSwKICB7CiAgICBhZGREaXJBdHRyaWJ1dGU6IHQgPSAhMSwKICAgIGFkZFNlb0F0dHJpYnV0ZXM6IHIgPSAhMCwKICAgIGlkZW50aWZpZXJBdHRyaWJ1dGU6IG4gPSAiaGlkIiwKICB9CikgewogIGNvbnN0IHsgZGVmYXVsdERpcmVjdGlvbjogaSB9ID0gdXNlUnVudGltZUNvbmZpZygpLnB1YmxpYy5pMThuLAogICAgYSA9IGdldENvbXBvc2VyKGUuaTE4biksCiAgICBvID0geyBodG1sQXR0cnM6IHt9LCBsaW5rOiBbXSwgbWV0YTogW10gfTsKICBpZiAodW5yZWYoYS5sb2NhbGVzKSA9PSBudWxsIHx8IHVucmVmKGEuYmFzZVVybCkgPT0gbnVsbCkgcmV0dXJuIG87CiAgY29uc3QgbCA9IGdldExvY2FsZShlLmkxOG4pLAogICAgYyA9IGdldExvY2FsZXMoZS5pMThuKSwKICAgIHUgPSBnZXROb3JtYWxpemVkTG9jYWxlcyhjKS5maW5kKChiKSA9PiBiLmNvZGUgPT09IGwpIHx8IHsgY29kZTogbCB9LAogICAgZCA9IHUubGFuZ3VhZ2UsCiAgICBFID0gdS5kaXIgfHwgaTsKICByZXR1cm4gKAogICAgdCAmJiAoby5odG1sQXR0cnMuZGlyID0gRSksCiAgICByICYmCiAgICBsICYmCiAgICB1bnJlZihhLmxvY2FsZXMpICYmCiAgICAoZCAmJiAoby5odG1sQXR0cnMubGFuZyA9IGQpLAogICAgICBvLmxpbmsucHVzaCgKICAgICAgICAuLi5nZXRIcmVmbGFuZ0xpbmtzKGUsIHVucmVmKGMpLCBuKSwKICAgICAgICAuLi5nZXRDYW5vbmljYWxMaW5rKGUsIG4sIHIpCiAgICAgICksCiAgICAgIG8ubWV0YS5wdXNoKAogICAgICAgIC4uLmdldE9nVXJsKGUsIG4sIHIpLAogICAgICAgIC4uLmdldEN1cnJlbnRPZ0xvY2FsZSh1LCBkLCBuKSwKICAgICAgICAuLi5nZXRBbHRlcm5hdGVPZ0xvY2FsZXModW5yZWYoYyksIGQsIG4pCiAgICAgICkpLAogICAgbwogICk7Cn0KZnVuY3Rpb24gZ2V0QmFzZVVybCgpIHsKICBjb25zdCBlID0gdXNlTnV4dEFwcCgpLAogICAgdCA9IGdldENvbXBvc2VyKGUuJGkxOG4pOwogIHJldHVybiBqb2luVVJMKHVucmVmKHQuYmFzZVVybCksIGUuJGNvbmZpZy5hcHAuYmFzZVVSTCk7Cn0KZnVuY3Rpb24gZ2V0SHJlZmxhbmdMaW5rcyhlLCB0LCByKSB7CiAgY29uc3QgbiA9IGdldEJhc2VVcmwoKSwKICAgIHsgZGVmYXVsdExvY2FsZTogaSwgc3RyYXRlZ3k6IGEgfSA9IHVzZVJ1bnRpbWVDb25maWcoKS5wdWJsaWMuaTE4biwKICAgIG8gPSBbXTsKICBpZiAoYSA9PT0gIm5vX3ByZWZpeCIpIHJldHVybiBvOwogIGNvbnN0IGwgPSBuZXcgTWFwKCk7CiAgZm9yIChjb25zdCBjIG9mIHQpIHsKICAgIGNvbnN0IHUgPSBjLmxhbmd1YWdlOwogICAgaWYgKCF1KSB7CiAgICAgIGNvbnNvbGUud2FybigKICAgICAgICAiTG9jYWxlIGBsYW5ndWFnZWAgSVNPIGNvZGUgaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgYWx0ZXJuYXRlIGxpbmsiCiAgICAgICk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgY29uc3QgW2QsIEVdID0gdS5zcGxpdCgiLSIpOwogICAgZCAmJiBFICYmIChjLmlzQ2F0Y2hhbGxMb2NhbGUgfHwgIWwuaGFzKGQpKSAmJiBsLnNldChkLCBjKSwgbC5zZXQodSwgYyk7CiAgfQogIGZvciAoY29uc3QgW2MsIHVdIG9mIGwuZW50cmllcygpKSB7CiAgICBjb25zdCBkID0gc3dpdGNoTG9jYWxlUGF0aChlLCB1LmNvZGUpOwogICAgZCAmJgogICAgICBvLnB1c2goewogICAgICAgIFtyXTogYGkxOG4tYWx0LSR7Y31gLAogICAgICAgIHJlbDogImFsdGVybmF0ZSIsCiAgICAgICAgaHJlZjogdG9BYnNvbHV0ZVVybChkLCBuKSwKICAgICAgICBocmVmbGFuZzogYywKICAgICAgfSk7CiAgfQogIGlmIChpKSB7CiAgICBjb25zdCBjID0gc3dpdGNoTG9jYWxlUGF0aChlLCBpKTsKICAgIGMgJiYKICAgICAgby5wdXNoKHsKICAgICAgICBbcl06ICJpMThuLXhkIiwKICAgICAgICByZWw6ICJhbHRlcm5hdGUiLAogICAgICAgIGhyZWY6IHRvQWJzb2x1dGVVcmwoYywgbiksCiAgICAgICAgaHJlZmxhbmc6ICJ4LWRlZmF1bHQiLAogICAgICB9KTsKICB9CiAgcmV0dXJuIG87Cn0KZnVuY3Rpb24gZ2V0Q2Fub25pY2FsVXJsKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS5yb3V0ZXIuY3VycmVudFJvdXRlLnZhbHVlLAogICAgaSA9IGxvY2FsZVJvdXRlKGUsIHsgLi4ubiwgcGF0aDogdm9pZCAwLCBuYW1lOiBnZXRSb3V0ZUJhc2VOYW1lKGUsIG4pIH0pOwogIGlmICghaSkgcmV0dXJuICIiOwogIGxldCBhID0gdG9BYnNvbHV0ZVVybChpLnBhdGgsIHQpOwogIGNvbnN0IG8gPSAoaXNPYmplY3QkMShyKSAmJiByLmNhbm9uaWNhbFF1ZXJpZXMpIHx8IFtdLAogICAgbCA9IGkucXVlcnksCiAgICBjID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpOwogIGZvciAoY29uc3QgZCBvZiBvKQogICAgaWYgKGQgaW4gbCkgewogICAgICBjb25zdCBFID0gbFtkXTsKICAgICAgaXNBcnJheSQxKEUpCiAgICAgICAgPyBFLmZvckVhY2goKGIpID0+IGMuYXBwZW5kKGQsIGIgfHwgIiIpKQogICAgICAgIDogYy5hcHBlbmQoZCwgRSB8fCAiIik7CiAgICB9CiAgY29uc3QgdSA9IGMudG9TdHJpbmcoKTsKICByZXR1cm4gdSAmJiAoYSA9IGAke2F9PyR7dX1gKSwgYTsKfQpmdW5jdGlvbiBnZXRDYW5vbmljYWxMaW5rKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZ2V0QmFzZVVybCgpLAogICAgaSA9IGdldENhbm9uaWNhbFVybChlLCBuLCByKTsKICByZXR1cm4gaSA/IFt7IFt0XTogImkxOG4tY2FuIiwgcmVsOiAiY2Fub25pY2FsIiwgaHJlZjogaSB9XSA6IFtdOwp9CmZ1bmN0aW9uIGdldE9nVXJsKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZ2V0QmFzZVVybCgpLAogICAgaSA9IGdldENhbm9uaWNhbFVybChlLCBuLCByKTsKICByZXR1cm4gaSA/IFt7IFt0XTogImkxOG4tb2ctdXJsIiwgcHJvcGVydHk6ICJvZzp1cmwiLCBjb250ZW50OiBpIH1dIDogW107Cn0KZnVuY3Rpb24gZ2V0Q3VycmVudE9nTG9jYWxlKGUsIHQsIHIpIHsKICByZXR1cm4gIWUgfHwgIXQKICAgID8gW10KICAgIDogWwogICAgICB7CiAgICAgICAgW3JdOiAiaTE4bi1vZyIsCiAgICAgICAgcHJvcGVydHk6ICJvZzpsb2NhbGUiLAogICAgICAgIGNvbnRlbnQ6IGh5cGVuVG9VbmRlcnNjb3JlKHQpLAogICAgICB9LAogICAgXTsKfQpmdW5jdGlvbiBnZXRBbHRlcm5hdGVPZ0xvY2FsZXMoZSwgdCwgcikgewogIHJldHVybiBlCiAgICAuZmlsdGVyKChpKSA9PiBpLmxhbmd1YWdlICYmIGkubGFuZ3VhZ2UgIT09IHQpCiAgICAubWFwKChpKSA9PiAoewogICAgICBbcl06IGBpMThuLW9nLWFsdC0ke2kubGFuZ3VhZ2V9YCwKICAgICAgcHJvcGVydHk6ICJvZzpsb2NhbGU6YWx0ZXJuYXRlIiwKICAgICAgY29udGVudDogaHlwZW5Ub1VuZGVyc2NvcmUoaS5sYW5ndWFnZSksCiAgICB9KSk7Cn0KZnVuY3Rpb24gaHlwZW5Ub1VuZGVyc2NvcmUoZSkgewogIHJldHVybiAoZSB8fCAiIikucmVwbGFjZSgvLS9nLCAiXyIpOwp9CmZ1bmN0aW9uIHRvQWJzb2x1dGVVcmwoZSwgdCkgewogIHJldHVybiBlLm1hdGNoKC9eaHR0cHM/OlwvXC8vKSA/IGUgOiBqb2luVVJMKHQsIGUpOwp9CmZ1bmN0aW9uIGNyZWF0ZUxvY2FsZUZyb21Sb3V0ZUdldHRlcigpIHsKICBjb25zdCB7IHJvdXRlc05hbWVTZXBhcmF0b3I6IGUsIGRlZmF1bHRMb2NhbGVSb3V0ZU5hbWVTdWZmaXg6IHQgfSA9CiAgICB1c2VSdW50aW1lQ29uZmlnKCkucHVibGljLmkxOG4sCiAgICByID0gYCgke2xvY2FsZUNvZGVzLmpvaW4oInwiKX0pYCwKICAgIG4gPSBgKD86JHtlfSR7dH0pP2AsCiAgICBpID0gbmV3IFJlZ0V4cChgJHtlfSR7cn0ke259JGAsICJpIiksCiAgICBhID0gZ2V0TG9jYWxlc1JlZ2V4KGxvY2FsZUNvZGVzKTsKICByZXR1cm4gKGwpID0+IHsKICAgIGlmIChpc09iamVjdCQxKGwpKSB7CiAgICAgIGlmIChsLm5hbWUpIHsKICAgICAgICBjb25zdCB1ID0gKGlzU3RyaW5nKGwubmFtZSkgPyBsLm5hbWUgOiBsLm5hbWUudG9TdHJpbmcoKSkubWF0Y2goaSk7CiAgICAgICAgaWYgKHUgJiYgdS5sZW5ndGggPiAxKSByZXR1cm4gdVsxXTsKICAgICAgfSBlbHNlIGlmIChsLnBhdGgpIHsKICAgICAgICBjb25zdCBjID0gbC5wYXRoLm1hdGNoKGEpOwogICAgICAgIGlmIChjICYmIGMubGVuZ3RoID4gMSkgcmV0dXJuIGNbMV07CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcobCkpIHsKICAgICAgY29uc3QgYyA9IGwubWF0Y2goYSk7CiAgICAgIGlmIChjICYmIGMubGVuZ3RoID4gMSkgcmV0dXJuIGNbMV07CiAgICB9CiAgICByZXR1cm4gIiI7CiAgfTsKfQpmdW5jdGlvbiBzZXRDb29raWVMb2NhbGUoZSwgdCkgewogIHJldHVybiBjYWxsVnVlSTE4bkludGVyZmFjZXMoZSwgInNldExvY2FsZUNvb2tpZSIsIHQpOwp9CmZ1bmN0aW9uIG1lcmdlTG9jYWxlTWVzc2FnZShlLCB0LCByKSB7CiAgcmV0dXJuIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCAibWVyZ2VMb2NhbGVNZXNzYWdlIiwgdCwgcik7Cn0KYXN5bmMgZnVuY3Rpb24gb25CZWZvcmVMYW5ndWFnZVN3aXRjaChlLCB0LCByLCBuLCBpKSB7CiAgcmV0dXJuIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCAib25CZWZvcmVMYW5ndWFnZVN3aXRjaCIsIHQsIHIsIG4sIGkpOwp9CmZ1bmN0aW9uIG9uTGFuZ3VhZ2VTd2l0Y2hlZChlLCB0LCByKSB7CiAgcmV0dXJuIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCAib25MYW5ndWFnZVN3aXRjaGVkIiwgdCwgcik7Cn0KZnVuY3Rpb24gaW5pdENvbW1vbkNvbXBvc2FibGVPcHRpb25zKGUpIHsKICByZXR1cm4gewogICAgaTE4bjogZSA/PyB1c2VOdXh0QXBwKCkuJGkxOG4sCiAgICByb3V0ZXI6IHVzZVJvdXRlciQxKCksCiAgICBydW50aW1lQ29uZmlnOiB1c2VSdW50aW1lQ29uZmlnKCksCiAgICBtZXRhU3RhdGU6IHVzZVN0YXRlKCJudXh0LWkxOG4tbWV0YSIsICgpID0+ICh7fSkpLAogIH07Cn0KYXN5bmMgZnVuY3Rpb24gbG9hZEFuZFNldExvY2FsZShlLCB0LCByLCBuID0gITEpIHsKICBjb25zdCB7IGRpZmZlcmVudERvbWFpbnM6IGksIHNraXBTZXR0aW5nTG9jYWxlT25OYXZpZ2F0ZTogYSwgbGF6eTogbyB9ID0gciwKICAgIGwgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKHIpLAogICAgYyA9IHVzZU51eHRBcHAoKSwKICAgIHUgPSBnZXRMb2NhbGUodCksCiAgICBkID0gZ2V0TG9jYWxlQ29kZXModCk7CiAgZnVuY3Rpb24gRShQID0gdSkgewogICAgbCA9PT0gITEgfHwgIWwudXNlQ29va2llIHx8IGEgfHwgc2V0Q29va2llTG9jYWxlKHQsIFApOwogIH0KICBpZiAoIWUgfHwgKCFuICYmIGkpIHx8IHUgPT09IGUpIHJldHVybiBFKCksICExOwogIGNvbnN0IGIgPSBhd2FpdCBvbkJlZm9yZUxhbmd1YWdlU3dpdGNoKHQsIHUsIGUsIG4sIGMpOwogIGlmIChiICYmIGQuaW5jbHVkZXMoYikpIHsKICAgIGlmICh1ID09PSBiKSByZXR1cm4gRSgpLCAhMTsKICAgIGUgPSBiOwogIH0KICBpZiAobykgewogICAgY29uc3QgUCA9IGdldFZ1ZUkxOG5Qcm9wZXJ0eVZhbHVlKHQsICJmYWxsYmFja0xvY2FsZSIpLAogICAgICBSID0gKFQsIE0pID0+IG1lcmdlTG9jYWxlTWVzc2FnZSh0LCBULCBNKTsKICAgIGlmIChQKSB7CiAgICAgIGNvbnN0IFQgPSBtYWtlRmFsbGJhY2tMb2NhbGVDb2RlcyhQLCBbZV0pOwogICAgICBhd2FpdCBQcm9taXNlLmFsbChULm1hcCgoTSkgPT4gbG9hZExvY2FsZShNLCBsb2NhbGVMb2FkZXJzLCBSKSkpOwogICAgfQogICAgYXdhaXQgbG9hZExvY2FsZShlLCBsb2NhbGVMb2FkZXJzLCBSKTsKICB9CiAgcmV0dXJuIGEKICAgID8gITEKICAgIDogKEUoZSksIHNldExvY2FsZSh0LCBlKSwgYXdhaXQgb25MYW5ndWFnZVN3aXRjaGVkKHQsIHUsIGUpLCAhMCk7Cn0KZnVuY3Rpb24gY3JlYXRlTG9nZ2VyKGUpIHsKICByZXR1cm4geyBsb2c6IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSwgYCR7ZX06YCkgfTsKfQpmdW5jdGlvbiBkZXRlY3RMb2NhbGUoZSwgdCwgciwgbiwgaSkgewogIGNvbnN0IHsKICAgIHN0cmF0ZWd5OiBhLAogICAgZGVmYXVsdExvY2FsZTogbywKICAgIGRpZmZlcmVudERvbWFpbnM6IGwsCiAgICBtdWx0aURvbWFpbkxvY2FsZXM6IGMsCiAgfSA9IGksCiAgICB7IGxvY2FsZUNvb2tpZTogdSB9ID0gbiwKICAgIGQgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKGkpOwogIGNyZWF0ZUxvZ2dlcigiZGV0ZWN0TG9jYWxlIik7CiAgY29uc3QgRSA9IGlzRnVuY3Rpb24ocikgPyByKCkgOiByLAogICAgYiA9IGRldGVjdEJyb3dzZXJMYW5ndWFnZShlLCBuLCBFKTsKICBpZiAoYi5yZWFzb24gPT09IERldGVjdEZhaWx1cmUuU1NHX0lHTk9SRSkgcmV0dXJuIEU7CiAgaWYgKGIubG9jYWxlICYmIGIuZnJvbSAhPSBudWxsKSByZXR1cm4gYi5sb2NhbGU7CiAgbGV0IFAgPSAiIjsKICBsIHx8IGMKICAgID8gUCB8fCAoUCA9IGdldExvY2FsZURvbWFpbihub3JtYWxpemVkTG9jYWxlcywgYSwgZSkpCiAgICA6IGEgIT09ICJub19wcmVmaXgiICYmIChQIHx8IChQID0gdChlKSkpOwogIGNvbnN0IFIgPSBkICYmIGQudXNlQ29va2llICYmIHU7CiAgcmV0dXJuIFAgfHwgKFAgPSBSIHx8IEUgfHwgbyB8fCAiIiksIFA7Cn0KZnVuY3Rpb24gZGV0ZWN0UmVkaXJlY3QoewogIHJvdXRlOiBlLAogIHRhcmdldExvY2FsZTogdCwKICByb3V0ZUxvY2FsZUdldHRlcjogciwKICBjYWxsZWRXaXRoUm91dGluZzogbiA9ICExLAp9KSB7CiAgY29uc3QgaSA9IHVzZU51eHRBcHAoKSwKICAgIGEgPSBpbml0Q29tbW9uQ29tcG9zYWJsZU9wdGlvbnMoKSwKICAgIHsgc3RyYXRlZ3k6IG8sIGRpZmZlcmVudERvbWFpbnM6IGwgfSA9IGEucnVudGltZUNvbmZpZy5wdWJsaWMuaTE4bjsKICBsZXQgYyA9ICIiOwogIGNvbnN0IHsgZnVsbFBhdGg6IHUgfSA9IGUudG87CiAgaWYgKCFsICYmIChuIHx8IG8gIT09ICJub19wcmVmaXgiKSAmJiByKGUudG8pICE9PSB0KSB7CiAgICBjb25zdCBkID0gaS4kc3dpdGNoTG9jYWxlUGF0aCh0KSB8fCBpLiRsb2NhbGVQYXRoKHUsIHQpOwogICAgaXNTdHJpbmcoZCkgJiYKICAgICAgZCAmJgogICAgICAhaXNFcXVhbCQyKGQsIHUpICYmCiAgICAgICFkLnN0YXJ0c1dpdGgoIi8vIikgJiYKICAgICAgKGMgPSBlLmZyb20gJiYgZS5mcm9tLmZ1bGxQYXRoID09PSBkID8gIiIgOiBkKTsKICB9CiAgaWYgKChsIHx8IGlzU1NHKSAmJiByKGUudG8pICE9PSB0KSB7CiAgICBjb25zdCBkID0gc3dpdGNoTG9jYWxlUGF0aChhLCB0LCBlLnRvKTsKICAgIGlzU3RyaW5nKGQpICYmIGQgJiYgIWlzRXF1YWwkMihkLCB1KSAmJiAhZC5zdGFydHNXaXRoKCIvLyIpICYmIChjID0gZCk7CiAgfQogIHJldHVybiBjOwp9CmZ1bmN0aW9uIGlzUm9vdFJlZGlyZWN0T3B0aW9ucyhlKSB7CiAgcmV0dXJuIGlzT2JqZWN0JDEoZSkgJiYgInBhdGgiIGluIGUgJiYgInN0YXR1c0NvZGUiIGluIGU7Cn0KY29uc3QgdXNlUmVkaXJlY3RTdGF0ZSA9ICgpID0+CiAgdXNlU3RhdGUoTlVYVF9JMThOX01PRFVMRV9JRCArICI6cmVkaXJlY3QiLCAoKSA9PiAiIik7CmZ1bmN0aW9uIF9uYXZpZ2F0ZShlLCB0KSB7CiAgcmV0dXJuIG5hdmlnYXRlVG8oZSwgeyByZWRpcmVjdENvZGU6IHQgfSk7Cn0KYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGUoZSwgeyBzdGF0dXM6IHQgPSAzMDIsIGVuYWJsZU5hdmlnYXRlOiByID0gITEgfSA9IHt9KSB7CiAgY29uc3QgeyBudXh0QXBwOiBuLCBpMThuOiBpLCBsb2NhbGU6IGEsIHJvdXRlOiBvIH0gPSBlLAogICAgewogICAgICByb290UmVkaXJlY3Q6IGwsCiAgICAgIGRpZmZlcmVudERvbWFpbnM6IGMsCiAgICAgIG11bHRpRG9tYWluTG9jYWxlczogdSwKICAgICAgc2tpcFNldHRpbmdMb2NhbGVPbk5hdmlnYXRlOiBkLAogICAgICBjb25maWdMb2NhbGVzOiBFLAogICAgICBzdHJhdGVneTogYiwKICAgIH0gPSBuLiRjb25maWcucHVibGljLmkxOG47CiAgbGV0IHsgcmVkaXJlY3RQYXRoOiBQIH0gPSBlOwogIGlmIChvLnBhdGggPT09ICIvIiAmJiBsKQogICAgcmV0dXJuICgKICAgICAgaXNTdHJpbmcobCkKICAgICAgICA/IChQID0gIi8iICsgbCkKICAgICAgICA6IGlzUm9vdFJlZGlyZWN0T3B0aW9ucyhsKSAmJiAoKFAgPSAiLyIgKyBsLnBhdGgpLCAodCA9IGwuc3RhdHVzQ29kZSkpLAogICAgICAoUCA9IG4uJGxvY2FsZVBhdGgoUCwgYSkpLAogICAgICBfbmF2aWdhdGUoUCwgdCkKICAgICk7CiAgaWYgKAogICAgISgKICAgICAgZCAmJgogICAgICAoKGkuX19wZW5kaW5nTG9jYWxlID0gYSksCiAgICAgICAgKGkuX19wZW5kaW5nTG9jYWxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChSKSA9PiB7CiAgICAgICAgICBpLl9fcmVzb2x2ZVBlbmRpbmdMb2NhbGVQcm9taXNlID0gUjsKICAgICAgICB9KSksCiAgICAgICAgIXIpCiAgICApCiAgKSB7CiAgICBpZiAodSAmJiBiID09PSAicHJlZml4X2V4Y2VwdF9kZWZhdWx0IikgewogICAgICBjb25zdCBSID0gZ2V0SG9zdCgpLAogICAgICAgIFQgPSBFLmZpbmQoKHgpID0+IHsKICAgICAgICAgIHZhciBrOwogICAgICAgICAgcmV0dXJuIHR5cGVvZiB4ICE9ICJzdHJpbmciCiAgICAgICAgICAgID8gKGsgPSB4LmRlZmF1bHRGb3JEb21haW5zKSA9PSBudWxsCiAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICA6IGsuZmluZCgoUykgPT4gUyA9PT0gUikKICAgICAgICAgICAgOiAhMTsKICAgICAgICB9KSwKICAgICAgICBNID0gdHlwZW9mIFQgIT0gInN0cmluZyIgPyAoVCA9PSBudWxsID8gdm9pZCAwIDogVC5jb2RlKSA6IHZvaWQgMDsKICAgICAgaWYgKG8ucGF0aC5zdGFydHNXaXRoKGAvJHtNfWApKQogICAgICAgIHJldHVybiBfbmF2aWdhdGUoby5wYXRoLnJlcGxhY2UoYC8ke019YCwgIiIpLCB0KTsKICAgICAgaWYgKCFvLnBhdGguc3RhcnRzV2l0aChgLyR7YX1gKSAmJiBhICE9PSBNKSB7CiAgICAgICAgY29uc3QgayA9IGNyZWF0ZUxvY2FsZUZyb21Sb3V0ZUdldHRlcigpKG8ucGF0aCk7CiAgICAgICAgcmV0dXJuIF9uYXZpZ2F0ZSgKICAgICAgICAgIGsgIT09ICIiCiAgICAgICAgICAgID8gYC8ke2EgKyBvLnBhdGgucmVwbGFjZShgLyR7a31gLCAiIil9YAogICAgICAgICAgICA6IGAvJHthICsgKG8ucGF0aCA9PT0gIi8iID8gIiIgOiBvLnBhdGgpfWAsCiAgICAgICAgICB0CiAgICAgICAgKTsKICAgICAgfSBlbHNlIGlmIChQICYmIG8ucGF0aCAhPT0gUCkgcmV0dXJuIF9uYXZpZ2F0ZShQLCB0KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGMpIHsKICAgICAgY29uc3QgUiA9IHVzZVJlZGlyZWN0U3RhdGUoKTsKICAgICAgUi52YWx1ZSAmJiBSLnZhbHVlICE9PSBQICYmICgoUi52YWx1ZSA9ICIiKSwgd2luZG93LmxvY2F0aW9uLmFzc2lnbihQKSk7CiAgICB9IGVsc2UgaWYgKFApIHJldHVybiBfbmF2aWdhdGUoUCwgdCk7CiAgfQp9CmZ1bmN0aW9uIGluamVjdE51eHRIZWxwZXJzKGUsIHQpIHsKICBkZWZpbmVHZXR0ZXIoZSwgIiRpMThuIiwgZ2V0STE4blRhcmdldCh0KSksCiAgICBkZWZpbmVHZXR0ZXIoZSwgIiRnZXRSb3V0ZUJhc2VOYW1lIiwgd3JhcENvbXBvc2FibGUoZ2V0Um91dGVCYXNlTmFtZSkpLAogICAgZGVmaW5lR2V0dGVyKGUsICIkbG9jYWxlUGF0aCIsIHdyYXBDb21wb3NhYmxlKGxvY2FsZVBhdGgpKSwKICAgIGRlZmluZUdldHRlcihlLCAiJGxvY2FsZVJvdXRlIiwgd3JhcENvbXBvc2FibGUobG9jYWxlUm91dGUpKSwKICAgIGRlZmluZUdldHRlcihlLCAiJHN3aXRjaExvY2FsZVBhdGgiLCB3cmFwQ29tcG9zYWJsZShzd2l0Y2hMb2NhbGVQYXRoKSksCiAgICBkZWZpbmVHZXR0ZXIoZSwgIiRsb2NhbGVIZWFkIiwgd3JhcENvbXBvc2FibGUobG9jYWxlSGVhZCkpOwp9CmZ1bmN0aW9uIGV4dGVuZFByZWZpeGFibGUoZSA9IHVzZVJ1bnRpbWVDb25maWcoKSkgewogIHJldHVybiAodCkgPT4gRGVmYXVsdFByZWZpeGFibGUodCkgJiYgIWUucHVibGljLmkxOG4uZGlmZmVyZW50RG9tYWluczsKfQpmdW5jdGlvbiBleHRlbmRTd2l0Y2hMb2NhbGVQYXRoSW50ZXJjZXB0ZXIoZSA9IHVzZVJ1bnRpbWVDb25maWcoKSkgewogIHJldHVybiAodCwgcikgPT4gewogICAgaWYgKGUucHVibGljLmkxOG4uZGlmZmVyZW50RG9tYWlucykgewogICAgICBjb25zdCBuID0gZ2V0RG9tYWluRnJvbUxvY2FsZShyKTsKICAgICAgcmV0dXJuIG4gPyBqb2luVVJMKG4sIHQpIDogdDsKICAgIH0gZWxzZSByZXR1cm4gRGVmYXVsdFN3aXRjaExvY2FsZVBhdGhJbnRlcmNlcHRlcih0KTsKICB9Owp9CmZ1bmN0aW9uIGV4dGVuZEJhc2VVcmwoKSB7CiAgcmV0dXJuICgpID0+IHsKICAgIGNvbnN0IGUgPSB1c2VOdXh0QXBwKCksCiAgICAgIHsKICAgICAgICBiYXNlVXJsOiB0LAogICAgICAgIGRlZmF1bHRMb2NhbGU6IHIsCiAgICAgICAgZGlmZmVyZW50RG9tYWluczogbiwKICAgICAgfSA9IGUuJGNvbmZpZy5wdWJsaWMuaTE4bjsKICAgIGlmIChpc0Z1bmN0aW9uKHQpKSByZXR1cm4gdChlKTsKICAgIGNvbnN0IGkgPSBpc0Z1bmN0aW9uKHIpID8gcigpIDogcjsKICAgIGlmIChuICYmIGkpIHsKICAgICAgY29uc3QgYSA9IGdldERvbWFpbkZyb21Mb2NhbGUoaSk7CiAgICAgIGlmIChhKSByZXR1cm4gYTsKICAgIH0KICAgIHJldHVybiB0OwogIH07Cn0KZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShlKSB7CiAgcmV0dXJuIE5VWFRfSTE4Tl9NT0RVTEVfSUQgKyAiICIgKyBlOwp9CmZ1bmN0aW9uIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCB0LCAuLi5yKSB7CiAgY29uc3QgbiA9IGdldEkxOG5UYXJnZXQoZSksCiAgICBbaSwgYV0gPSBbbiwgblt0XV07CiAgcmV0dXJuIFJlZmxlY3QuYXBwbHkoYSwgaSwgWy4uLnJdKTsKfQpmdW5jdGlvbiBnZXRWdWVJMThuUHJvcGVydHlWYWx1ZShlLCB0KSB7CiAgY29uc3QgciA9IGdldEkxOG5UYXJnZXQoZSk7CiAgcmV0dXJuIHVucmVmKHJbdF0pOwp9CmZ1bmN0aW9uIGRlZmluZUdldHRlcihlLCB0LCByKSB7CiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHQsIHsgZ2V0OiAoKSA9PiByIH0pOwp9CmZ1bmN0aW9uIHdyYXBDb21wb3NhYmxlKGUsIHQgPSBpbml0Q29tbW9uQ29tcG9zYWJsZU9wdGlvbnMoKSkgewogIHJldHVybiAoLi4ucikgPT4gZSh0LCAuLi5yKTsKfQpmdW5jdGlvbiBnZXRCcm93c2VyTG9jYWxlKCkgewogIGxldCBlOwogIHJldHVybiAoCiAgICBuYXZpZ2F0b3IubGFuZ3VhZ2VzICYmCiAgICAoZSA9IGZpbmRCcm93c2VyTG9jYWxlKG5vcm1hbGl6ZWRMb2NhbGVzLCBuYXZpZ2F0b3IubGFuZ3VhZ2VzKSksCiAgICBlCiAgKTsKfQpmdW5jdGlvbiBnZXRJMThuQ29va2llKCkgewogIGNvbnN0IGUgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKCksCiAgICB0ID0gKGUgJiYgZS5jb29raWVLZXkpIHx8IERFRkFVTFRfQ09PS0lFX0tFWSwKICAgIHIgPSBuZXcgRGF0ZSgpLAogICAgbiA9IHsKICAgICAgZXhwaXJlczogbmV3IERhdGUoci5zZXREYXRlKHIuZ2V0RGF0ZSgpICsgMzY1KSksCiAgICAgIHBhdGg6ICIvIiwKICAgICAgc2FtZVNpdGU6IGUgJiYgZS5jb29raWVDcm9zc09yaWdpbiA/ICJub25lIiA6ICJsYXgiLAogICAgICBzZWN1cmU6IChlICYmIGUuY29va2llQ3Jvc3NPcmlnaW4pIHx8IChlICYmIGUuY29va2llU2VjdXJlKSwKICAgIH07CiAgcmV0dXJuIGUgJiYgZS5jb29raWVEb21haW4gJiYgKG4uZG9tYWluID0gZS5jb29raWVEb21haW4pLCB1c2VDb29raWUodCwgbik7Cn0KZnVuY3Rpb24gZ2V0TG9jYWxlQ29va2llKGUsIHQsIHIpIHsKICBpZiAodCA9PT0gITEgfHwgIXQudXNlQ29va2llKSByZXR1cm47CiAgY29uc3QgbiA9IGUudmFsdWUgPz8gdm9pZCAwOwogIGlmIChuICE9IG51bGwpIHsKICAgIGlmIChsb2NhbGVDb2Rlcy5pbmNsdWRlcyhuKSkgcmV0dXJuIG47CiAgICBpZiAocikgcmV0dXJuIChlLnZhbHVlID0gciksIHI7CiAgICBlLnZhbHVlID0gdm9pZCAwOwogIH0KfQpmdW5jdGlvbiBzZXRMb2NhbGVDb29raWUoZSwgdCwgcikgewogIHIgPT09ICExIHx8ICFyLnVzZUNvb2tpZSB8fCAoZS52YWx1ZSA9IHQpOwp9CnZhciBEZXRlY3RGYWlsdXJlID0gKChlKSA9PiAoCiAgKGUuTk9UX0ZPVU5EID0gIm5vdF9mb3VuZF9tYXRjaCIpLAogIChlLkZJUlNUX0FDQ0VTUyA9ICJmaXJzdF9hY2Nlc3Nfb25seSIpLAogIChlLk5PX1JFRElSRUNUX1JPT1QgPSAibm90X3JlZGlyZWN0X29uX3Jvb3QiKSwKICAoZS5OT19SRURJUkVDVF9OT19QUkVGSVggPSAibm90X3JlZGlyZWN0X29uX25vX3ByZWZpeCIpLAogIChlLlNTR19JR05PUkUgPSAiZGV0ZWN0X2lnbm9yZV9vbl9zc2ciKSwKICBlCikpKERldGVjdEZhaWx1cmUgfHwge30pOwpjb25zdCBEZWZhdWx0RGV0ZWN0QnJvd3Nlckxhbmd1YWdlRnJvbVJlc3VsdCA9IHsgbG9jYWxlOiAiIiB9OwpmdW5jdGlvbiBkZXRlY3RCcm93c2VyTGFuZ3VhZ2UoZSwgdCwgciA9ICIiKSB7CiAgY3JlYXRlTG9nZ2VyKCJkZXRlY3RCcm93c2VyTGFuZ3VhZ2UiKTsKICBjb25zdCBuID0gcnVudGltZURldGVjdEJyb3dzZXJMYW5ndWFnZSgpOwogIGlmICghbikgcmV0dXJuIERlZmF1bHREZXRlY3RCcm93c2VyTGFuZ3VhZ2VGcm9tUmVzdWx0OwogIGNvbnN0IHsgc3RyYXRlZ3k6IGkgfSA9IHVzZVJ1bnRpbWVDb25maWcoKS5wdWJsaWMuaTE4biwKICAgIHsgc3NnOiBhLCBjYWxsVHlwZTogbywgZmlyc3RBY2Nlc3M6IGwsIGxvY2FsZUNvb2tpZTogYyB9ID0gdDsKICBpZiAoIWwpCiAgICByZXR1cm4geyBsb2NhbGU6IGkgPT09ICJub19wcmVmaXgiID8gciA6ICIiLCByZWFzb246ICJmaXJzdF9hY2Nlc3Nfb25seSIgfTsKICBjb25zdCB7CiAgICByZWRpcmVjdE9uOiB1LAogICAgYWx3YXlzUmVkaXJlY3Q6IGQsCiAgICB1c2VDb29raWU6IEUsCiAgICBmYWxsYmFja0xvY2FsZTogYiwKICB9ID0gbiwKICAgIFAgPSBpc1N0cmluZyhlKSA/IGUgOiBlLnBhdGg7CiAgaWYgKGkgIT09ICJub19wcmVmaXgiKSB7CiAgICBpZiAodSA9PT0gInJvb3QiICYmIFAgIT09ICIvIikKICAgICAgcmV0dXJuIHsgbG9jYWxlOiAiIiwgcmVhc29uOiAibm90X3JlZGlyZWN0X29uX3Jvb3QiIH07CiAgICBpZiAodSA9PT0gIm5vIHByZWZpeCIgJiYgIWQgJiYgUC5tYXRjaChnZXRMb2NhbGVzUmVnZXgobG9jYWxlQ29kZXMpKSkKICAgICAgcmV0dXJuIHsgbG9jYWxlOiAiIiwgcmVhc29uOiAibm90X3JlZGlyZWN0X29uX25vX3ByZWZpeCIgfTsKICB9CiAgbGV0IFI7CiAgY29uc3QgVCA9IChFICYmIGMpIHx8IHZvaWQgMDsKICBFICYmIChSID0gImNvb2tpZSIpOwogIGNvbnN0IE0gPSBnZXRCcm93c2VyTG9jYWxlKCk7CiAgVCB8fCAoUiA9ICJuYXZpZ2F0b3Jfb3JfaGVhZGVyIik7CiAgY29uc3QgeCA9IFQgfHwgTSwKICAgIGsgPSB4IHx8IGIgfHwgIiI7CiAgcmV0dXJuICF4ICYmIGIgJiYgKFIgPSAiZmFsbGJhY2siKSwgeyBsb2NhbGU6IGssIGZyb206IFIgfTsKfQpmdW5jdGlvbiBnZXRIb3N0KCkgewogIGxldCBlOwogIHJldHVybiAoZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0KSwgZTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVEb21haW4oZSwgdCwgcikgewogIGxldCBuID0gZ2V0SG9zdCgpIHx8ICIiOwogIGlmIChuKSB7CiAgICBsZXQgaTsKICAgIGNvbnN0IGEgPSBlLmZpbHRlcigobykgPT4gewogICAgICBpZiAobyAmJiBvLmRvbWFpbikgewogICAgICAgIGxldCBsID0gby5kb21haW47CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGhhc1Byb3RvY29sKG8uZG9tYWluKSAmJgogICAgICAgICAgKGwgPSBvLmRvbWFpbi5yZXBsYWNlKC8oaHR0cHxodHRwcyk6XC9cLy8sICIiKSksCiAgICAgICAgICBsID09PSBuCiAgICAgICAgKTsKICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG8gPT0gbnVsbCA/IHZvaWQgMCA6IG8uZG9tYWlucykpCiAgICAgICAgcmV0dXJuIG8uZG9tYWlucy5pbmNsdWRlcyhuKTsKICAgICAgcmV0dXJuICExOwogICAgfSk7CiAgICBpZiAoYS5sZW5ndGggPT09IDEpIGkgPSBhWzBdOwogICAgZWxzZSBpZiAoYS5sZW5ndGggPiAxKQogICAgICBpZiAodCA9PT0gIm5vX3ByZWZpeCIpCiAgICAgICAgY29uc29sZS53YXJuKAogICAgICAgICAgZm9ybWF0TWVzc2FnZSgKICAgICAgICAgICAgIk11bHRpcGxlIG1hdGNoaW5nIGRvbWFpbnMgZm91bmQhIFRoaXMgaXMgbm90IHN1cHBvcnRlZCBmb3Igbm9fcHJlZml4IHN0cmF0ZWd5IGluIGNvbWJpbmF0aW9uIHdpdGggZGlmZmVyZW50RG9tYWlucyEiCiAgICAgICAgICApCiAgICAgICAgKSwKICAgICAgICAgIChpID0gYVswXSk7CiAgICAgIGVsc2UgewogICAgICAgIGlmIChyKSB7CiAgICAgICAgICBjb25zdCBvID0gaXNPYmplY3QkMShyKSA/IHIucGF0aCA6IGlzU3RyaW5nKHIpID8gciA6ICIiOwogICAgICAgICAgaWYgKG8gJiYgbyAhPT0gIiIpIHsKICAgICAgICAgICAgY29uc3QgbCA9IG8ubWF0Y2goZ2V0TG9jYWxlc1JlZ2V4KGEubWFwKChjKSA9PiBjLmNvZGUpKSk7CiAgICAgICAgICAgIGwgJiYgbC5sZW5ndGggPiAxICYmIChpID0gYS5maW5kKChjKSA9PiBjLmNvZGUgPT09IGxbMV0pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaSB8fAogICAgICAgICAgKGkgPSBhLmZpbmQoKG8pID0+CiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoby5kZWZhdWx0Rm9yRG9tYWlucykKICAgICAgICAgICAgICA/IG8uZGVmYXVsdEZvckRvbWFpbnMuaW5jbHVkZXMobikKICAgICAgICAgICAgICA6IG8uZG9tYWluRGVmYXVsdAogICAgICAgICAgKSk7CiAgICAgIH0KICAgIGlmIChpKSByZXR1cm4gaS5jb2RlOwogICAgbiA9ICIiOwogIH0KICByZXR1cm4gbjsKfQpmdW5jdGlvbiBnZXREb21haW5Gcm9tTG9jYWxlKGUpIHsKICB2YXIgbywgbCwgYywgdSwgZCwgRTsKICBjb25zdCB0ID0gdXNlUnVudGltZUNvbmZpZygpOwogIHVzZU51eHRBcHAoKTsKICBjb25zdCByID0gZ2V0SG9zdCgpLAogICAgbiA9IHQucHVibGljLmkxOG4sCiAgICBpID0gbm9ybWFsaXplZExvY2FsZXMuZmluZCgoYikgPT4gYi5jb2RlID09PSBlKSwKICAgIGEgPQogICAgICAoKGwgPSAobyA9IG4gPT0gbnVsbCA/IHZvaWQgMCA6IG4ubG9jYWxlcykgPT0gbnVsbCA/IHZvaWQgMCA6IG9bZV0pID09CiAgICAgICAgbnVsbAogICAgICAgID8gdm9pZCAwCiAgICAgICAgOiBsLmRvbWFpbikgfHwKICAgICAgKGkgPT0gbnVsbCA/IHZvaWQgMCA6IGkuZG9tYWluKSB8fAogICAgICAoKGQgPQogICAgICAgICh1ID0gKGMgPSBuID09IG51bGwgPyB2b2lkIDAgOiBuLmxvY2FsZXMpID09IG51bGwgPyB2b2lkIDAgOiBjW2VdKSA9PQogICAgICAgICAgbnVsbAogICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgIDogdS5kb21haW5zKSA9PSBudWxsCiAgICAgICAgPyB2b2lkIDAKICAgICAgICA6IGQuZmluZCgoYikgPT4gYiA9PT0gcikpIHx8CiAgICAgICgoRSA9IGkgPT0gbnVsbCA/IHZvaWQgMCA6IGkuZG9tYWlucykgPT0gbnVsbAogICAgICAgID8gdm9pZCAwCiAgICAgICAgOiBFLmZpbmQoKGIpID0+IGIgPT09IHIpKTsKICBpZiAoYSkgewogICAgaWYgKGhhc1Byb3RvY29sKGEsIHsgc3RyaWN0OiAhMCB9KSkgcmV0dXJuIGE7CiAgICBsZXQgYjsKICAgIHJldHVybiAoYiA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLm9yaWdpbikucHJvdG9jb2wpLCBiICsgIi8vIiArIGE7CiAgfQogIGNvbnNvbGUud2Fybihmb3JtYXRNZXNzYWdlKCJDb3VsZCBub3QgZmluZCBkb21haW4gbmFtZSBmb3IgbG9jYWxlICIgKyBlKSk7Cn0KY29uc3QgcnVudGltZURldGVjdEJyb3dzZXJMYW5ndWFnZSA9IChlID0gdXNlUnVudGltZUNvbmZpZygpLnB1YmxpYy5pMThuKSA9PgogIChlID09IG51bGwgPyB2b2lkIDAgOiBlLmRldGVjdEJyb3dzZXJMYW5ndWFnZSkgPT09ICExCiAgICA/ICExCiAgICA6IGUgPT0gbnVsbAogICAgICA/IHZvaWQgMAogICAgICA6IGUuZGV0ZWN0QnJvd3Nlckxhbmd1YWdlOwpmdW5jdGlvbiB1c2VMb2NhbGVQYXRoKCkgewogIHJldHVybiB3cmFwQ29tcG9zYWJsZShsb2NhbGVQYXRoKTsKfQpmdW5jdGlvbiB1c2VTd2l0Y2hMb2NhbGVQYXRoKCkgewogIHJldHVybiB3cmFwQ29tcG9zYWJsZShzd2l0Y2hMb2NhbGVQYXRoKTsKfQpjb25zdCBzd2l0Y2hfbG9jYWxlX3BhdGhfc3NyXzVjc2ZJZ2tyQlAgPSBkZWZpbmVOdXh0UGx1Z2luKHsKICBuYW1lOiAiaTE4bjpwbHVnaW46c3dpdGNoLWxvY2FsZS1wYXRoLXNzciIsCiAgZGVwZW5kc09uOiBbImkxOG46cGx1Z2luIl0sCiAgc2V0dXAoZSkgewogICAgaWYgKGUuJGNvbmZpZy5wdWJsaWMuaTE4bi5leHBlcmltZW50YWwuc3dpdGNoTG9jYWxlUGF0aExpbmtTU1IgIT09ICEwKQogICAgICByZXR1cm47CiAgICBjb25zdCB0ID0gdXNlU3dpdGNoTG9jYWxlUGF0aCgpLAogICAgICByID0gbmV3IFJlZ0V4cCgKICAgICAgICBbCiAgICAgICAgICBgPCEtLSR7U1dJVENIX0xPQ0FMRV9QQVRIX0xJTktfSURFTlRJRklFUn0tXFxbKFxcdyspXFxdLS0+YCwKICAgICAgICAgICIuKz8iLAogICAgICAgICAgYDwhLS0vJHtTV0lUQ0hfTE9DQUxFX1BBVEhfTElOS19JREVOVElGSUVSfS0tPmAsCiAgICAgICAgXS5qb2luKCIiKSwKICAgICAgICAiZyIKICAgICAgKTsKICAgIGUuaG9vaygiYXBwOnJlbmRlcmVkIiwgKG4pID0+IHsKICAgICAgdmFyIGk7CiAgICAgICgoaSA9IG4ucmVuZGVyUmVzdWx0KSA9PSBudWxsID8gdm9pZCAwIDogaS5odG1sKSAhPSBudWxsICYmCiAgICAgICAgKG4ucmVuZGVyUmVzdWx0Lmh0bWwgPSBuLnJlbmRlclJlc3VsdC5odG1sLnJlcGxhY2VBbGwociwgKGEsIG8pID0+CiAgICAgICAgICBhLnJlcGxhY2UoL2hyZWY9IihbXiJdKykiLywgYGhyZWY9IiR7ZW5jb2RlVVJJKHQobyA/PyAiIikpfSJgKQogICAgICAgICkpOwogICAgfSk7CiAgfSwKfSk7CmZ1bmN0aW9uIGV4dGVuZEkxOG4oCiAgZSwKICB7CiAgICBsb2NhbGVzOiB0ID0gW10sCiAgICBsb2NhbGVDb2RlczogciA9IFtdLAogICAgYmFzZVVybDogbiA9ICIiLAogICAgaG9va3M6IGkgPSB7fSwKICAgIGNvbnRleHQ6IGEgPSB7fSwKICB9ID0ge30KKSB7CiAgY29uc3QgbyA9IGVmZmVjdFNjb3BlKCksCiAgICBsID0gZS5pbnN0YWxsOwogIHJldHVybiAoCiAgICAoZS5pbnN0YWxsID0gKGMsIC4uLnUpID0+IHsKICAgICAgY29uc3QgZCA9IGlzUGx1Z2luT3B0aW9ucyh1WzBdKSA/IGFzc2lnbiQxKHt9LCB1WzBdKSA6IHsgaW5qZWN0OiAhMCB9OwogICAgICBkLmluamVjdCA9PSBudWxsICYmIChkLmluamVjdCA9ICEwKTsKICAgICAgY29uc3QgRSA9IGQuX19jb21wb3NlckV4dGVuZDsKICAgICAgaWYgKAogICAgICAgICgoZC5fX2NvbXBvc2VyRXh0ZW5kID0gKFQpID0+IHsKICAgICAgICAgIGNvbnN0IE0gPSBnZXRDb21wb3NlcihlKTsKICAgICAgICAgIChULmxvY2FsZXMgPSBjb21wdXRlZCgoKSA9PiBNLmxvY2FsZXMudmFsdWUpKSwKICAgICAgICAgICAgKFQubG9jYWxlQ29kZXMgPSBjb21wdXRlZCgoKSA9PiBNLmxvY2FsZUNvZGVzLnZhbHVlKSksCiAgICAgICAgICAgIChULmJhc2VVcmwgPSBjb21wdXRlZCgoKSA9PiBNLmJhc2VVcmwudmFsdWUpKTsKICAgICAgICAgIGxldCB4OwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgaXNGdW5jdGlvbihFKSAmJiAoeCA9IFJlZmxlY3QuYXBwbHkoRSwgZCwgW1RdKSksCiAgICAgICAgICAgICgpID0+IHsKICAgICAgICAgICAgICB4ICYmIHgoKTsKICAgICAgICAgICAgfQogICAgICAgICAgKTsKICAgICAgICB9KSwKICAgICAgICAgIGUubW9kZSA9PT0gImxlZ2FjeSIpCiAgICAgICkgewogICAgICAgIGNvbnN0IFQgPSBkLl9fdnVlSTE4bkV4dGVuZDsKICAgICAgICBkLl9fdnVlSTE4bkV4dGVuZCA9IChNKSA9PiB7CiAgICAgICAgICBleHRlbmRWdWVJMThuKE0sIGkub25FeHRlbmRWdWVJMThuKTsKICAgICAgICAgIGxldCB4OwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgaXNGdW5jdGlvbihUKSAmJiAoeCA9IFJlZmxlY3QuYXBwbHkoVCwgZCwgW01dKSksCiAgICAgICAgICAgICgpID0+IHsKICAgICAgICAgICAgICB4ICYmIHgoKTsKICAgICAgICAgICAgfQogICAgICAgICAgKTsKICAgICAgICB9OwogICAgICB9CiAgICAgICh1WzBdID0gZCksIFJlZmxlY3QuYXBwbHkobCwgZSwgW2MsIC4uLnVdKTsKICAgICAgY29uc3QgYiA9IGdldENvbXBvc2VyKGUpOwogICAgICBvLnJ1bigoKSA9PiB7CiAgICAgICAgZXh0ZW5kQ29tcG9zZXIoYiwgewogICAgICAgICAgbG9jYWxlczogdCwKICAgICAgICAgIGxvY2FsZUNvZGVzOiByLAogICAgICAgICAgYmFzZVVybDogbiwKICAgICAgICAgIGhvb2tzOiBpLAogICAgICAgICAgY29udGV4dDogYSwKICAgICAgICB9KSwKICAgICAgICAgIGUubW9kZSA9PT0gImxlZ2FjeSIgJiYKICAgICAgICAgIGlzVnVlSTE4bihlLmdsb2JhbCkgJiYKICAgICAgICAgIGV4dGVuZFZ1ZUkxOG4oZS5nbG9iYWwsIGkub25FeHRlbmRWdWVJMThuKTsKICAgICAgfSk7CiAgICAgIGNvbnN0IFAgPSBjLAogICAgICAgIFIgPSBlLm1vZGUgPT09ICJjb21wb3NpdGlvbiIgPyBQLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRpMThuIDogbnVsbDsKICAgICAgaWYgKAogICAgICAgIChSICYmIGV4dGVuZEV4cG9ydGVkR2xvYmFsKFIsIGIsIGkub25FeHRlbmRFeHBvcnRlZEdsb2JhbCksIGQuaW5qZWN0KQogICAgICApIHsKICAgICAgICBjb25zdCBUID0gaW5pdENvbW1vbkNvbXBvc2FibGVPcHRpb25zKGUpOwogICAgICAgIGMubWl4aW4oewogICAgICAgICAgbWV0aG9kczogewogICAgICAgICAgICBnZXRSb3V0ZUJhc2VOYW1lOiB3cmFwQ29tcG9zYWJsZShnZXRSb3V0ZUJhc2VOYW1lLCBUKSwKICAgICAgICAgICAgcmVzb2x2ZVJvdXRlOiB3cmFwQ29tcG9zYWJsZShyZXNvbHZlUm91dGUsIFQpLAogICAgICAgICAgICBsb2NhbGVQYXRoOiB3cmFwQ29tcG9zYWJsZShsb2NhbGVQYXRoLCBUKSwKICAgICAgICAgICAgbG9jYWxlUm91dGU6IHdyYXBDb21wb3NhYmxlKGxvY2FsZVJvdXRlLCBUKSwKICAgICAgICAgICAgbG9jYWxlTG9jYXRpb246IHdyYXBDb21wb3NhYmxlKGxvY2FsZUxvY2F0aW9uLCBUKSwKICAgICAgICAgICAgc3dpdGNoTG9jYWxlUGF0aDogd3JhcENvbXBvc2FibGUoc3dpdGNoTG9jYWxlUGF0aCwgVCksCiAgICAgICAgICAgIGxvY2FsZUhlYWQ6IHdyYXBDb21wb3NhYmxlKGxvY2FsZUhlYWQsIFQpLAogICAgICAgICAgfSwKICAgICAgICB9KTsKICAgICAgfQogICAgICBpZiAoUC51bm1vdW50KSB7CiAgICAgICAgY29uc3QgVCA9IFAudW5tb3VudDsKICAgICAgICBQLnVubW91bnQgPSAoKSA9PiB7CiAgICAgICAgICBvLnN0b3AoKSwgVCgpOwogICAgICAgIH07CiAgICAgIH0KICAgIH0pLAogICAgbwogICk7Cn0KZnVuY3Rpb24gZXh0ZW5kQ29tcG9zZXIoZSwgdCkgewogIGNvbnN0IHsgbG9jYWxlczogciwgbG9jYWxlQ29kZXM6IG4sIGJhc2VVcmw6IGksIGNvbnRleHQ6IGEgfSA9IHQsCiAgICBvID0gcmVmKHIpLAogICAgbCA9IHJlZihuKSwKICAgIGMgPSByZWYoIiIpOwogIChlLmxvY2FsZXMgPSBjb21wdXRlZCgoKSA9PiBvLnZhbHVlKSksCiAgICAoZS5sb2NhbGVDb2RlcyA9IGNvbXB1dGVkKCgpID0+IGwudmFsdWUpKSwKICAgIChlLmJhc2VVcmwgPSBjb21wdXRlZCgoKSA9PiBjLnZhbHVlKSksCiAgICBpbkJyb3dzZXIKICAgICAgPyB3YXRjaCgKICAgICAgICBlLmxvY2FsZSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBjLnZhbHVlID0gcmVzb2x2ZUJhc2VVcmwoaSwgYSk7CiAgICAgICAgfSwKICAgICAgICB7IGltbWVkaWF0ZTogITAgfQogICAgICApCiAgICAgIDogKGMudmFsdWUgPSByZXNvbHZlQmFzZVVybChpLCBhKSksCiAgICB0Lmhvb2tzICYmIHQuaG9va3Mub25FeHRlbmRDb21wb3NlciAmJiB0Lmhvb2tzLm9uRXh0ZW5kQ29tcG9zZXIoZSk7Cn0KZnVuY3Rpb24gZXh0ZW5kUHJvcGVydHlEZXNjcmlwdG9ycyhlLCB0LCByKSB7CiAgY29uc3QgbiA9IFsKICAgIHsKICAgICAgbG9jYWxlczogewogICAgICAgIGdldCgpIHsKICAgICAgICAgIHJldHVybiBlLmxvY2FsZXMudmFsdWU7CiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbG9jYWxlQ29kZXM6IHsKICAgICAgICBnZXQoKSB7CiAgICAgICAgICByZXR1cm4gZS5sb2NhbGVDb2Rlcy52YWx1ZTsKICAgICAgICB9LAogICAgICB9LAogICAgICBiYXNlVXJsOiB7CiAgICAgICAgZ2V0KCkgewogICAgICAgICAgcmV0dXJuIGUuYmFzZVVybC52YWx1ZTsKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICBdOwogIHIgJiYgbi5wdXNoKHIoZSkpOwogIGZvciAoY29uc3QgaSBvZiBuKQogICAgZm9yIChjb25zdCBbYSwgb10gb2YgT2JqZWN0LmVudHJpZXMoaSkpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCBhLCBvKTsKfQpmdW5jdGlvbiBleHRlbmRFeHBvcnRlZEdsb2JhbChlLCB0LCByKSB7CiAgZXh0ZW5kUHJvcGVydHlEZXNjcmlwdG9ycyh0LCBlLCByKTsKfQpmdW5jdGlvbiBleHRlbmRWdWVJMThuKGUsIHQpIHsKICBjb25zdCByID0gZ2V0Q29tcG9zZXIoZSk7CiAgZXh0ZW5kUHJvcGVydHlEZXNjcmlwdG9ycyhyLCBlLCB0KTsKfQpmdW5jdGlvbiBpc1BsdWdpbk9wdGlvbnMoZSkgewogIHJldHVybiAoCiAgICBpc09iamVjdCQxKGUpICYmCiAgICAoImluamVjdCIgaW4gZSB8fCAiX19jb21wb3NlckV4dGVuZCIgaW4gZSB8fCAiX192dWVJMThuRXh0ZW5kIiBpbiBlKQogICk7Cn0KY29uc3QgaTE4bl9zcTFNdUNycWJDID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgbmFtZTogImkxOG46cGx1Z2luIiwKICBwYXJhbGxlbDogcGFyYWxsZWxQbHVnaW4sCiAgYXN5bmMgc2V0dXAoZSkgewogICAgbGV0IHQsIHI7CiAgICBjb25zdCBuID0gdXNlUm91dGUkMSgpLAogICAgICB7IHZ1ZUFwcDogaSB9ID0gZSwKICAgICAgYSA9IGUsCiAgICAgIG8gPSBnZXRIb3N0KCksCiAgICAgIHsKICAgICAgICBjb25maWdMb2NhbGVzOiBsLAogICAgICAgIGRlZmF1bHRMb2NhbGU6IGMsCiAgICAgICAgbXVsdGlEb21haW5Mb2NhbGVzOiB1LAogICAgICAgIHN0cmF0ZWd5OiBkLAogICAgICB9ID0gYS4kY29uZmlnLnB1YmxpYy5pMThuLAogICAgICBFID0gbC5zb21lKAogICAgICAgICgkKSA9PiB0eXBlb2YgJCAhPSAic3RyaW5nIiAmJiBBcnJheS5pc0FycmF5KCQuZGVmYXVsdEZvckRvbWFpbnMpCiAgICAgICk7CiAgICBsZXQgYjsKICAgIGlmIChjKSBiID0gYzsKICAgIGVsc2UgaWYgKEUpIHsKICAgICAgY29uc3QgJCA9IGwuZmluZCgocSkgPT4KICAgICAgICB0eXBlb2YgcSA9PSAic3RyaW5nIiB8fCAhQXJyYXkuaXNBcnJheShxLmRlZmF1bHRGb3JEb21haW5zKQogICAgICAgICAgPyAhMQogICAgICAgICAgOiBxLmRlZmF1bHRGb3JEb21haW5zLmluY2x1ZGVzKG8gPz8gIiIpCiAgICAgICk7CiAgICAgIGIgPSAoJCA9PSBudWxsID8gdm9pZCAwIDogJC5jb2RlKSA/PyAiIjsKICAgIH0gZWxzZSBiID0gIiI7CiAgICBpZiAodSAmJiAoZCA9PT0gInByZWZpeF9leGNlcHRfZGVmYXVsdCIgfHwgZCA9PT0gInByZWZpeF9hbmRfZGVmYXVsdCIpKSB7CiAgICAgIGNvbnN0ICQgPSB1c2VSb3V0ZXIkMSgpOwogICAgICAkLmdldFJvdXRlcygpLmZvckVhY2goKHEpID0+IHsKICAgICAgICB2YXIgSjsKICAgICAgICBpZiAoKEogPSBxLm5hbWUpICE9IG51bGwgJiYgSi50b1N0cmluZygpLmluY2x1ZGVzKCJfX19kZWZhdWx0IikpCiAgICAgICAgICBpZiAocS5uYW1lLnRvU3RyaW5nKCkuc3BsaXQoIl9fXyIpWzFdICE9PSBiKSAkLnJlbW92ZVJvdXRlKHEubmFtZSk7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY29uc3QgZWUgPSBxLm5hbWUudG9TdHJpbmcoKS5yZXBsYWNlKCJfX19kZWZhdWx0IiwgIiIpOwogICAgICAgICAgICBxLm5hbWUgPSBlZTsKICAgICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBjb25zdCBQID0geyAuLi5hLiRjb25maWcucHVibGljLmkxOG4sIGRlZmF1bHRMb2NhbGU6IGIgfTsKICAgIFAuYmFzZVVybCA9IGV4dGVuZEJhc2VVcmwoKTsKICAgIGNvbnN0IFIgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKCksCiAgICAgIFQgPQogICAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+CiAgICAgICAgICBsb2FkVnVlSTE4bk9wdGlvbnModnVlSTE4bkNvbmZpZ3MsIHVzZU51eHRBcHAoKSkKICAgICAgICApKSwKICAgICAgICAgICh0ID0gYXdhaXQgdCksCiAgICAgICAgICByKCksCiAgICAgICAgICB0KTsKICAgIChULm1lc3NhZ2VzID0gVC5tZXNzYWdlcyB8fCB7fSksCiAgICAgIChULmZhbGxiYWNrTG9jYWxlID0gVC5mYWxsYmFja0xvY2FsZSA/PyAhMSk7CiAgICBjb25zdCBNID0gY3JlYXRlTG9jYWxlRnJvbVJvdXRlR2V0dGVyKCksCiAgICAgIHggPSAoJCkgPT4gJCB8fCBULmxvY2FsZSB8fCAiZW4tVVMiLAogICAgICBrID0gZ2V0STE4bkNvb2tpZSgpOwogICAgbGV0IFMgPSBkZXRlY3RMb2NhbGUoCiAgICAgIG4sCiAgICAgIE0sCiAgICAgIHgoUC5kZWZhdWx0TG9jYWxlKSwKICAgICAgewogICAgICAgIHNzZzogIm5vcm1hbCIsCiAgICAgICAgY2FsbFR5cGU6ICJzZXR1cCIsCiAgICAgICAgZmlyc3RBY2Nlc3M6ICEwLAogICAgICAgIGxvY2FsZUNvb2tpZTogZ2V0TG9jYWxlQ29va2llKGssIFIsIFAuZGVmYXVsdExvY2FsZSksCiAgICAgIH0sCiAgICAgIFAKICAgICk7CiAgICAoVC5tZXNzYWdlcyA9CiAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+CiAgICAgICAgbG9hZEluaXRpYWxNZXNzYWdlcyhULm1lc3NhZ2VzLCBsb2NhbGVMb2FkZXJzLCB7CiAgICAgICAgICBsb2NhbGVDb2RlcywKICAgICAgICAgIGluaXRpYWxMb2NhbGU6IFMsCiAgICAgICAgICBsYXp5OiBQLmxhenksCiAgICAgICAgICBkZWZhdWx0TG9jYWxlOiBQLmRlZmF1bHRMb2NhbGUsCiAgICAgICAgICBmYWxsYmFja0xvY2FsZTogVC5mYWxsYmFja0xvY2FsZSwKICAgICAgICB9KQogICAgICApKSwKICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgIHIoKSwKICAgICAgICB0KSksCiAgICAgIChTID0geChTKSk7CiAgICBjb25zdCBBID0gY3JlYXRlSTE4bih7IC4uLlQsIGxvY2FsZTogUyB9KTsKICAgIGxldCBPID0gITA7CiAgICBjb25zdCBGID0gKCQpID0+IFMgIT09ICQgJiYgTzsKICAgIGV4dGVuZEkxOG4oQSwgewogICAgICBsb2NhbGVzOiBQLmNvbmZpZ0xvY2FsZXMsCiAgICAgIGxvY2FsZUNvZGVzLAogICAgICBiYXNlVXJsOiBQLmJhc2VVcmwsCiAgICAgIGNvbnRleHQ6IGEsCiAgICAgIGhvb2tzOiB7CiAgICAgICAgb25FeHRlbmRDb21wb3NlcigkKSB7CiAgICAgICAgICAoJC5zdHJhdGVneSA9IFAuc3RyYXRlZ3kpLAogICAgICAgICAgICAoJC5sb2NhbGVQcm9wZXJ0aWVzID0gY29tcHV0ZWQoCiAgICAgICAgICAgICAgKCkgPT4KICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRMb2NhbGVzLmZpbmQoKHEpID0+IHEuY29kZSA9PT0gJC5sb2NhbGUudmFsdWUpIHx8IHsKICAgICAgICAgICAgICAgICAgY29kZTogJC5sb2NhbGUudmFsdWUsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkpLAogICAgICAgICAgICAoJC5zZXRMb2NhbGUgPSBhc3luYyAocSkgPT4gewogICAgICAgICAgICAgIGNvbnN0IEogPSBGKHEpOwogICAgICAgICAgICAgIChhd2FpdCBsb2FkQW5kU2V0TG9jYWxlKHEsIEEsIFAsIEopKSAmJiBKICYmIChPID0gITEpOwogICAgICAgICAgICAgIGNvbnN0IGVlID0gYXdhaXQgYS5ydW5XaXRoQ29udGV4dCgoKSA9PgogICAgICAgICAgICAgICAgZGV0ZWN0UmVkaXJlY3QoewogICAgICAgICAgICAgICAgICByb3V0ZTogeyB0bzogbiB9LAogICAgICAgICAgICAgICAgICB0YXJnZXRMb2NhbGU6IHEsCiAgICAgICAgICAgICAgICAgIHJvdXRlTG9jYWxlR2V0dGVyOiBNLAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGF3YWl0IGEucnVuV2l0aENvbnRleHQoCiAgICAgICAgICAgICAgICBhc3luYyAoKSA9PgogICAgICAgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0ZSgKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBudXh0QXBwOiBhLAogICAgICAgICAgICAgICAgICAgICAgaTE4bjogQSwKICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0UGF0aDogZWUsCiAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHEsCiAgICAgICAgICAgICAgICAgICAgICByb3V0ZTogbiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsgZW5hYmxlTmF2aWdhdGU6ICEwIH0KICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoJC5sb2FkTG9jYWxlTWVzc2FnZXMgPSBhc3luYyAocSkgPT4gewogICAgICAgICAgICAgIGF3YWl0IGxvYWRMb2NhbGUocSwgbG9jYWxlTG9hZGVycywgKEssIGVlKSA9PgogICAgICAgICAgICAgICAgbWVyZ2VMb2NhbGVNZXNzYWdlKEEsIEssIGVlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoJC5kaWZmZXJlbnREb21haW5zID0gUC5kaWZmZXJlbnREb21haW5zKSwKICAgICAgICAgICAgKCQuZGVmYXVsdExvY2FsZSA9IFAuZGVmYXVsdExvY2FsZSksCiAgICAgICAgICAgICgkLmdldEJyb3dzZXJMb2NhbGUgPSAoKSA9PiBnZXRCcm93c2VyTG9jYWxlKCkpLAogICAgICAgICAgICAoJC5nZXRMb2NhbGVDb29raWUgPSAoKSA9PgogICAgICAgICAgICAgIGdldExvY2FsZUNvb2tpZShrLCBSLCBQLmRlZmF1bHRMb2NhbGUpKSwKICAgICAgICAgICAgKCQuc2V0TG9jYWxlQ29va2llID0gKHEpID0+IHNldExvY2FsZUNvb2tpZShrLCBxLCBSKSksCiAgICAgICAgICAgICgkLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2ggPSAocSwgSiwgSywgZWUpID0+CiAgICAgICAgICAgICAgZS5jYWxsSG9vaygiaTE4bjpiZWZvcmVMb2NhbGVTd2l0Y2giLCB7CiAgICAgICAgICAgICAgICBvbGRMb2NhbGU6IHEsCiAgICAgICAgICAgICAgICBuZXdMb2NhbGU6IEosCiAgICAgICAgICAgICAgICBpbml0aWFsU2V0dXA6IEssCiAgICAgICAgICAgICAgICBjb250ZXh0OiBlZSwKICAgICAgICAgICAgICB9KSksCiAgICAgICAgICAgICgkLm9uTGFuZ3VhZ2VTd2l0Y2hlZCA9IChxLCBKKSA9PgogICAgICAgICAgICAgIGUuY2FsbEhvb2soImkxOG46bG9jYWxlU3dpdGNoZWQiLCB7CiAgICAgICAgICAgICAgICBvbGRMb2NhbGU6IHEsCiAgICAgICAgICAgICAgICBuZXdMb2NhbGU6IEosCiAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgICAoJC5maW5hbGl6ZVBlbmRpbmdMb2NhbGVDaGFuZ2UgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgQS5fX3BlbmRpbmdMb2NhbGUgJiYKICAgICAgICAgICAgICAgIChzZXRMb2NhbGUoQSwgQS5fX3BlbmRpbmdMb2NhbGUpLAogICAgICAgICAgICAgICAgICBBLl9fcmVzb2x2ZVBlbmRpbmdMb2NhbGVQcm9taXNlICYmCiAgICAgICAgICAgICAgICAgIChhd2FpdCBBLl9fcmVzb2x2ZVBlbmRpbmdMb2NhbGVQcm9taXNlKCkpLAogICAgICAgICAgICAgICAgICAoQS5fX3BlbmRpbmdMb2NhbGUgPSB2b2lkIDApKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICgkLndhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgIEEuX19wZW5kaW5nTG9jYWxlICYmCiAgICAgICAgICAgICAgICBBLl9fcGVuZGluZ0xvY2FsZVByb21pc2UgJiYKICAgICAgICAgICAgICAgIChhd2FpdCBBLl9fcGVuZGluZ0xvY2FsZVByb21pc2UpOwogICAgICAgICAgICB9KTsKICAgICAgICB9LAogICAgICAgIG9uRXh0ZW5kRXhwb3J0ZWRHbG9iYWwoJCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgc3RyYXRlZ3k6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5zdHJhdGVneTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBsb2NhbGVQcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuICQubG9jYWxlUHJvcGVydGllcy52YWx1ZTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXN5bmMgKHEpID0+IFJlZmxlY3QuYXBwbHkoJC5zZXRMb2NhbGUsICQsIFtxXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGlmZmVyZW50RG9tYWluczogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkLmRpZmZlcmVudERvbWFpbnM7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkLmRlZmF1bHRMb2NhbGU7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZ2V0QnJvd3NlckxvY2FsZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBSZWZsZWN0LmFwcGx5KCQuZ2V0QnJvd3NlckxvY2FsZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGdldExvY2FsZUNvb2tpZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBSZWZsZWN0LmFwcGx5KCQuZ2V0TG9jYWxlQ29va2llLCAkLCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2V0TG9jYWxlQ29va2llOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIChxKSA9PiBSZWZsZWN0LmFwcGx5KCQuc2V0TG9jYWxlQ29va2llLCAkLCBbcV0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2g6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKHEsIEosIEssIGVlKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQub25CZWZvcmVMYW5ndWFnZVN3aXRjaCwgJCwgW3EsIEosIEssIGVlXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgb25MYW5ndWFnZVN3aXRjaGVkOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIChxLCBKKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQub25MYW5ndWFnZVN3aXRjaGVkLCAkLCBbcSwgSl0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZpbmFsaXplUGVuZGluZ0xvY2FsZUNoYW5nZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQuZmluYWxpemVQZW5kaW5nTG9jYWxlQ2hhbmdlLCAkLCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgd2FpdEZvclBlbmRpbmdMb2NhbGVDaGFuZ2U6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLndhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlLCAkLCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH07CiAgICAgICAgfSwKICAgICAgICBvbkV4dGVuZFZ1ZUkxOG4oJCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgc3RyYXRlZ3k6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5zdHJhdGVneTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBsb2NhbGVQcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuICQubG9jYWxlUHJvcGVydGllcy52YWx1ZTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXN5bmMgKHEpID0+IFJlZmxlY3QuYXBwbHkoJC5zZXRMb2NhbGUsICQsIFtxXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbG9hZExvY2FsZU1lc3NhZ2VzOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFzeW5jIChxKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQubG9hZExvY2FsZU1lc3NhZ2VzLCAkLCBbcV0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRpZmZlcmVudERvbWFpbnM6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5kaWZmZXJlbnREb21haW5zOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5kZWZhdWx0TG9jYWxlOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGdldEJyb3dzZXJMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gUmVmbGVjdC5hcHBseSgkLmdldEJyb3dzZXJMb2NhbGUsICQsIFtdKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBnZXRMb2NhbGVDb29raWU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gUmVmbGVjdC5hcHBseSgkLmdldExvY2FsZUNvb2tpZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNldExvY2FsZUNvb2tpZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAocSkgPT4gUmVmbGVjdC5hcHBseSgkLnNldExvY2FsZUNvb2tpZSwgJCwgW3FdKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkJlZm9yZUxhbmd1YWdlU3dpdGNoOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIChxLCBKLCBLLCBlZSkgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2gsICQsIFtxLCBKLCBLLCBlZV0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uTGFuZ3VhZ2VTd2l0Y2hlZDogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAocSwgSikgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLm9uTGFuZ3VhZ2VTd2l0Y2hlZCwgJCwgW3EsIEpdKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBmaW5hbGl6ZVBlbmRpbmdMb2NhbGVDaGFuZ2U6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLmZpbmFsaXplUGVuZGluZ0xvY2FsZUNoYW5nZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHdhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgpID0+CiAgICAgICAgICAgICAgICAgIFJlZmxlY3QuYXBwbHkoJC53YWl0Rm9yUGVuZGluZ0xvY2FsZUNoYW5nZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9OwogICAgICAgIH0sCiAgICAgIH0sCiAgICB9KTsKICAgIGNvbnN0IEQgPSB7CiAgICAgIF9fY29tcG9zZXJFeHRlbmQ6ICgkKSA9PiB7CiAgICAgICAgY29uc3QgcSA9IGdldENvbXBvc2VyKEEpOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoJC5zdHJhdGVneSA9IHEuc3RyYXRlZ3kpLAogICAgICAgICAgKCQubG9jYWxlUHJvcGVydGllcyA9IGNvbXB1dGVkKCgpID0+IHEubG9jYWxlUHJvcGVydGllcy52YWx1ZSkpLAogICAgICAgICAgKCQuc2V0TG9jYWxlID0gcS5zZXRMb2NhbGUpLAogICAgICAgICAgKCQuZGlmZmVyZW50RG9tYWlucyA9IHEuZGlmZmVyZW50RG9tYWlucyksCiAgICAgICAgICAoJC5nZXRCcm93c2VyTG9jYWxlID0gcS5nZXRCcm93c2VyTG9jYWxlKSwKICAgICAgICAgICgkLmdldExvY2FsZUNvb2tpZSA9IHEuZ2V0TG9jYWxlQ29va2llKSwKICAgICAgICAgICgkLnNldExvY2FsZUNvb2tpZSA9IHEuc2V0TG9jYWxlQ29va2llKSwKICAgICAgICAgICgkLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2ggPSBxLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2gpLAogICAgICAgICAgKCQub25MYW5ndWFnZVN3aXRjaGVkID0gcS5vbkxhbmd1YWdlU3dpdGNoZWQpLAogICAgICAgICAgKCQuZmluYWxpemVQZW5kaW5nTG9jYWxlQ2hhbmdlID0gcS5maW5hbGl6ZVBlbmRpbmdMb2NhbGVDaGFuZ2UpLAogICAgICAgICAgKCQud2FpdEZvclBlbmRpbmdMb2NhbGVDaGFuZ2UgPSBxLndhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlKSwKICAgICAgICAgICgpID0+IHsgfQogICAgICAgICk7CiAgICAgIH0sCiAgICB9OwogICAgaS51c2UoQSwgRCksIGluamVjdE51eHRIZWxwZXJzKGEsIEEpOwogICAgbGV0IEggPSAwOwogICAgYWRkUm91dGVNaWRkbGV3YXJlKAogICAgICAibG9jYWxlLWNoYW5naW5nIiwKICAgICAgYXN5bmMgKCQsIHEpID0+IHsKICAgICAgICBsZXQgSiwgSzsKICAgICAgICBjb25zdCBlZSA9IGRldGVjdExvY2FsZSgKICAgICAgICAgICQsCiAgICAgICAgICBNLAogICAgICAgICAgKCkgPT4gZ2V0TG9jYWxlKEEpIHx8IHgoUC5kZWZhdWx0TG9jYWxlKSwKICAgICAgICAgIHsKICAgICAgICAgICAgc3NnOiAibm9ybWFsIiwKICAgICAgICAgICAgY2FsbFR5cGU6ICJyb3V0aW5nIiwKICAgICAgICAgICAgZmlyc3RBY2Nlc3M6IEggPT09IDAsCiAgICAgICAgICAgIGxvY2FsZUNvb2tpZTogZ2V0TG9jYWxlQ29va2llKGssIFIsIFAuZGVmYXVsdExvY2FsZSksCiAgICAgICAgICB9LAogICAgICAgICAgUAogICAgICAgICksCiAgICAgICAgICBsZSA9IEYoZWUpOwogICAgICAgICgoW0osIEtdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGxvYWRBbmRTZXRMb2NhbGUoZWUsIEEsIFAsIGxlKSkpLAogICAgICAgICAgKEogPSBhd2FpdCBKKSwKICAgICAgICAgIEsoKSwKICAgICAgICAgIEopICYmCiAgICAgICAgICBsZSAmJgogICAgICAgICAgKE8gPSAhMSk7CiAgICAgICAgY29uc3QgQiA9CiAgICAgICAgICAoKFtKLCBLXSA9IGV4ZWN1dGVBc3luYygoKSA9PgogICAgICAgICAgICBhLnJ1bldpdGhDb250ZXh0KCgpID0+CiAgICAgICAgICAgICAgZGV0ZWN0UmVkaXJlY3QoewogICAgICAgICAgICAgICAgcm91dGU6IHsgdG86ICQsIGZyb206IHEgfSwKICAgICAgICAgICAgICAgIHRhcmdldExvY2FsZTogZWUsCiAgICAgICAgICAgICAgICByb3V0ZUxvY2FsZUdldHRlcjogUC5zdHJhdGVneSA9PT0gIm5vX3ByZWZpeCIgPyAoKSA9PiBlZSA6IE0sCiAgICAgICAgICAgICAgICBjYWxsZWRXaXRoUm91dGluZzogITAsCiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKQogICAgICAgICAgKSksCiAgICAgICAgICAgIChKID0gYXdhaXQgSiksCiAgICAgICAgICAgIEsoKSwKICAgICAgICAgICAgSik7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIEgrKywKICAgICAgICAgIChbSiwgS10gPSBleGVjdXRlQXN5bmMoKCkgPT4KICAgICAgICAgICAgYS5ydW5XaXRoQ29udGV4dChhc3luYyAoKSA9PgogICAgICAgICAgICAgIG5hdmlnYXRlKHsKICAgICAgICAgICAgICAgIG51eHRBcHA6IGEsCiAgICAgICAgICAgICAgICBpMThuOiBBLAogICAgICAgICAgICAgICAgcmVkaXJlY3RQYXRoOiBCLAogICAgICAgICAgICAgICAgbG9jYWxlOiBlZSwKICAgICAgICAgICAgICAgIHJvdXRlOiAkLAogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICkKICAgICAgICAgICkpLAogICAgICAgICAgKEogPSBhd2FpdCBKKSwKICAgICAgICAgIEsoKSwKICAgICAgICAgIEoKICAgICAgICApOwogICAgICB9LAogICAgICB7IGdsb2JhbDogITAgfQogICAgKTsKICB9LAp9KSwKICBwbHVnaW4gPSBkZWZpbmVOdXh0UGx1Z2luKCgpID0+ICh7CiAgICBwcm92aWRlOiByZWFjdGl2ZSh7CiAgICAgIHNzckNsaWVudEhpbnRzOiB7CiAgICAgICAgZmlyc3RSZXF1ZXN0OiAhMSwKICAgICAgICBwcmVmZXJzQ29sb3JTY2hlbWVBdmFpbGFibGU6ICExLAogICAgICAgIHByZWZlcnNSZWR1Y2VkTW90aW9uQXZhaWxhYmxlOiAhMSwKICAgICAgICB2aWV3cG9ydEhlaWdodEF2YWlsYWJsZTogITEsCiAgICAgICAgdmlld3BvcnRXaWR0aEF2YWlsYWJsZTogITEsCiAgICAgIH0sCiAgICB9KSwKICB9KSk7CmZ1bmN0aW9uIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzKGUpIHsKICByZXR1cm4gZSAmJiBlLl9fZXNNb2R1bGUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsICJkZWZhdWx0IikKICAgID8gZS5kZWZhdWx0CiAgICA6IGU7Cn0KZnVuY3Rpb24gZ2V0QXVnbWVudGVkTmFtZXNwYWNlKGUpIHsKICBpZiAoZS5fX2VzTW9kdWxlKSByZXR1cm4gZTsKICB2YXIgdCA9IGUuZGVmYXVsdDsKICBpZiAodHlwZW9mIHQgPT0gImZ1bmN0aW9uIikgewogICAgdmFyIHIgPSBmdW5jdGlvbiBuKCkgewogICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIG4KICAgICAgICA/IFJlZmxlY3QuY29uc3RydWN0KHQsIGFyZ3VtZW50cywgdGhpcy5jb25zdHJ1Y3RvcikKICAgICAgICA6IHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIH07CiAgICByLnByb3RvdHlwZSA9IHQucHJvdG90eXBlOwogIH0gZWxzZSByID0ge307CiAgcmV0dXJuICgKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLAogICAgT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbiAobikgewogICAgICB2YXIgaSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgbik7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgKICAgICAgICByLAogICAgICAgIG4sCiAgICAgICAgaS5nZXQKICAgICAgICAgID8gaQogICAgICAgICAgOiB7CiAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gZVtuXTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0KICAgICAgKTsKICAgIH0pLAogICAgcgogICk7Cn0KdmFyIFJlQ2FwdGNoYVZ1ZVBsdWdpbiA9IHt9LAogIFJlQ2FwdGNoYSA9IHt9LAogIFJlQ2FwdGNoYUxvYWRlciA9IHt9LAogIFJlQ2FwdGNoYUluc3RhbmNlID0ge30sCiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFJbnN0YW5jZTsKZnVuY3Rpb24gcmVxdWlyZVJlQ2FwdGNoYUluc3RhbmNlKCkgewogIGlmIChoYXNSZXF1aXJlZFJlQ2FwdGNoYUluc3RhbmNlKSByZXR1cm4gUmVDYXB0Y2hhSW5zdGFuY2U7CiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFJbnN0YW5jZSA9IDE7CiAgdmFyIGUgPQogICAgUmVDYXB0Y2hhSW5zdGFuY2UuX19hd2FpdGVyIHx8CiAgICBmdW5jdGlvbiAobiwgaSwgYSwgbykgewogICAgICBmdW5jdGlvbiBsKGMpIHsKICAgICAgICByZXR1cm4gYyBpbnN0YW5jZW9mIGEKICAgICAgICAgID8gYwogICAgICAgICAgOiBuZXcgYShmdW5jdGlvbiAodSkgewogICAgICAgICAgICB1KGMpOwogICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyAoYSB8fCAoYSA9IFByb21pc2UpKShmdW5jdGlvbiAoYywgdSkgewogICAgICAgIGZ1bmN0aW9uIGQoUCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgYihvLm5leHQoUCkpOwogICAgICAgICAgfSBjYXRjaCAoUikgewogICAgICAgICAgICB1KFIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBFKFApIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGIoby50aHJvdyhQKSk7CiAgICAgICAgICB9IGNhdGNoIChSKSB7CiAgICAgICAgICAgIHUoUik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGIoUCkgewogICAgICAgICAgUC5kb25lID8gYyhQLnZhbHVlKSA6IGwoUC52YWx1ZSkudGhlbihkLCBFKTsKICAgICAgICB9CiAgICAgICAgYigobyA9IG8uYXBwbHkobiwgaSB8fCBbXSkpLm5leHQoKSk7CiAgICAgIH0pOwogICAgfSwKICAgIHQgPQogICAgICBSZUNhcHRjaGFJbnN0YW5jZS5fX2dlbmVyYXRvciB8fAogICAgICBmdW5jdGlvbiAobiwgaSkgewogICAgICAgIHZhciBhID0gewogICAgICAgICAgbGFiZWw6IDAsCiAgICAgICAgICBzZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChjWzBdICYgMSkgdGhyb3cgY1sxXTsKICAgICAgICAgICAgcmV0dXJuIGNbMV07CiAgICAgICAgICB9LAogICAgICAgICAgdHJ5czogW10sCiAgICAgICAgICBvcHM6IFtdLAogICAgICAgIH0sCiAgICAgICAgICBvLAogICAgICAgICAgbCwKICAgICAgICAgIGMsCiAgICAgICAgICB1OwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAodSA9IHsgbmV4dDogZCgwKSwgdGhyb3c6IGQoMSksIHJldHVybjogZCgyKSB9KSwKICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgKHVbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9KSwKICAgICAgICAgIHUKICAgICAgICApOwogICAgICAgIGZ1bmN0aW9uIGQoYikgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChQKSB7CiAgICAgICAgICAgIHJldHVybiBFKFtiLCBQXSk7CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBFKGIpIHsKICAgICAgICAgIGlmIChvKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgICBmb3IgKDsgdSAmJiAoKHUgPSAwKSwgYlswXSAmJiAoYSA9IDApKSwgYTspCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKChvID0gMSksCiAgICAgICAgICAgICAgICAgIGwgJiYKICAgICAgICAgICAgICAgICAgKGMgPQogICAgICAgICAgICAgICAgICAgIGJbMF0gJiAyCiAgICAgICAgICAgICAgICAgICAgICA/IGwucmV0dXJuCiAgICAgICAgICAgICAgICAgICAgICA6IGJbMF0KICAgICAgICAgICAgICAgICAgICAgICAgPyBsLnRocm93IHx8ICgoYyA9IGwucmV0dXJuKSAmJiBjLmNhbGwobCksIDApCiAgICAgICAgICAgICAgICAgICAgICAgIDogbC5uZXh0KSAmJgogICAgICAgICAgICAgICAgICAhKGMgPSBjLmNhbGwobCwgYlsxXSkpLmRvbmUpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgcmV0dXJuIGM7CiAgICAgICAgICAgICAgc3dpdGNoICgoKGwgPSAwKSwgYyAmJiAoYiA9IFtiWzBdICYgMiwgYy52YWx1ZV0pLCBiWzBdKSkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICBjID0gYjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgIHJldHVybiBhLmxhYmVsKyssIHsgdmFsdWU6IGJbMV0sIGRvbmU6ICExIH07CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIGEubGFiZWwrKywgKGwgPSBiWzFdKSwgKGIgPSBbMF0pOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgKGIgPSBhLm9wcy5wb3AoKSksIGEudHJ5cy5wb3AoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKChjID0gYS50cnlzKSwKICAgICAgICAgICAgICAgICAgICAgICEoYyA9IGMubGVuZ3RoID4gMCAmJiBjW2MubGVuZ3RoIC0gMV0pICYmCiAgICAgICAgICAgICAgICAgICAgICAoYlswXSA9PT0gNiB8fCBiWzBdID09PSAyKSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgYSA9IDA7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDMgJiYgKCFjIHx8IChiWzFdID4gY1swXSAmJiBiWzFdIDwgY1szXSkpKSB7CiAgICAgICAgICAgICAgICAgICAgYS5sYWJlbCA9IGJbMV07CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDYgJiYgYS5sYWJlbCA8IGNbMV0pIHsKICAgICAgICAgICAgICAgICAgICAoYS5sYWJlbCA9IGNbMV0pLCAoYyA9IGIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChjICYmIGEubGFiZWwgPCBjWzJdKSB7CiAgICAgICAgICAgICAgICAgICAgKGEubGFiZWwgPSBjWzJdKSwgYS5vcHMucHVzaChiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBjWzJdICYmIGEub3BzLnBvcCgpLCBhLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBiID0gaS5jYWxsKG4sIGEpOwogICAgICAgICAgICB9IGNhdGNoIChQKSB7CiAgICAgICAgICAgICAgKGIgPSBbNiwgUF0pLCAobCA9IDApOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIG8gPSBjID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgaWYgKGJbMF0gJiA1KSB0aHJvdyBiWzFdOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGJbMF0gPyBiWzFdIDogdm9pZCAwLCBkb25lOiAhMCB9OwogICAgICAgIH0KICAgICAgfTsKICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVDYXB0Y2hhSW5zdGFuY2UsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogITAgfSksCiAgICAoUmVDYXB0Y2hhSW5zdGFuY2UuUmVDYXB0Y2hhSW5zdGFuY2UgPSB2b2lkIDApOwogIHZhciByID0gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIG4oaSwgYSwgbykgewogICAgICAodGhpcy5zaXRlS2V5ID0gaSksCiAgICAgICAgKHRoaXMucmVjYXB0Y2hhSUQgPSBhKSwKICAgICAgICAodGhpcy5yZWNhcHRjaGEgPSBvKSwKICAgICAgICAodGhpcy5zdHlsZUNvbnRhaW5lciA9IG51bGwpOwogICAgfQogICAgcmV0dXJuICgKICAgICAgKG4ucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbiAoaSkgewogICAgICAgIHJldHVybiBlKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgYTsKICAgICAgICAgIHJldHVybiB0KHRoaXMsIGZ1bmN0aW9uIChvKSB7CiAgICAgICAgICAgIHN3aXRjaCAoby5sYWJlbCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlY2FwdGNoYS5lbnRlcnByaXNlCiAgICAgICAgICAgICAgICAgID8gWwogICAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNhcHRjaGEuZW50ZXJwcmlzZS5leGVjdXRlKHRoaXMucmVjYXB0Y2hhSUQsIHsKICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogaSwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICA6IFszLCAyXTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gKGEgPSBvLnNlbnQoKSksIFszLCA0XTsKICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgICB0aGlzLnJlY2FwdGNoYS5leGVjdXRlKHRoaXMucmVjYXB0Y2hhSUQsIHsgYWN0aW9uOiBpIH0pLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAoYSA9IG8uc2VudCgpKSwgKG8ubGFiZWwgPSA0KTsKICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICByZXR1cm4gWzIsIGFdOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfSksCiAgICAgIChuLnByb3RvdHlwZS5nZXRTaXRlS2V5ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB0aGlzLnNpdGVLZXk7CiAgICAgIH0pLAogICAgICAobi5wcm90b3R5cGUuaGlkZUJhZGdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHRoaXMuc3R5bGVDb250YWluZXIgPT09IG51bGwgJiYKICAgICAgICAgICgodGhpcy5zdHlsZUNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikpLAogICAgICAgICAgICAodGhpcy5zdHlsZUNvbnRhaW5lci5pbm5lckhUTUwgPQogICAgICAgICAgICAgICIuZ3JlY2FwdGNoYS1iYWRnZXt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50O30iKSwKICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLnN0eWxlQ29udGFpbmVyKSk7CiAgICAgIH0pLAogICAgICAobi5wcm90b3R5cGUuc2hvd0JhZGdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHRoaXMuc3R5bGVDb250YWluZXIgIT09IG51bGwgJiYKICAgICAgICAgIChkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKHRoaXMuc3R5bGVDb250YWluZXIpLAogICAgICAgICAgICAodGhpcy5zdHlsZUNvbnRhaW5lciA9IG51bGwpKTsKICAgICAgfSksCiAgICAgIG4KICAgICk7CiAgfSkoKTsKICByZXR1cm4gKFJlQ2FwdGNoYUluc3RhbmNlLlJlQ2FwdGNoYUluc3RhbmNlID0gciksIFJlQ2FwdGNoYUluc3RhbmNlOwp9CnZhciBoYXNSZXF1aXJlZFJlQ2FwdGNoYUxvYWRlcjsKZnVuY3Rpb24gcmVxdWlyZVJlQ2FwdGNoYUxvYWRlcigpIHsKICBpZiAoaGFzUmVxdWlyZWRSZUNhcHRjaGFMb2FkZXIpIHJldHVybiBSZUNhcHRjaGFMb2FkZXI7CiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFMb2FkZXIgPSAxOwogIHZhciBlID0KICAgIFJlQ2FwdGNoYUxvYWRlci5fX2Fzc2lnbiB8fAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gKAogICAgICAgIChlID0KICAgICAgICAgIE9iamVjdC5hc3NpZ24gfHwKICAgICAgICAgIGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgIGZvciAodmFyIGEsIG8gPSAxLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgbyA8IGw7IG8rKykgewogICAgICAgICAgICAgIGEgPSBhcmd1bWVudHNbb107CiAgICAgICAgICAgICAgZm9yICh2YXIgYyBpbiBhKQogICAgICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGMpICYmIChpW2NdID0gYVtjXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgICB9KSwKICAgICAgICBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykKICAgICAgKTsKICAgIH07CiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlQ2FwdGNoYUxvYWRlciwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KSwKICAgIChSZUNhcHRjaGFMb2FkZXIuZ2V0SW5zdGFuY2UgPSBSZUNhcHRjaGFMb2FkZXIubG9hZCA9IHZvaWQgMCk7CiAgdmFyIHQgPSByZXF1aXJlUmVDYXB0Y2hhSW5zdGFuY2UoKSwKICAgIHI7CiAgKGZ1bmN0aW9uIChpKSB7CiAgICAoaVsoaS5OT1RfTE9BREVEID0gMCldID0gIk5PVF9MT0FERUQiKSwKICAgICAgKGlbKGkuTE9BRElORyA9IDEpXSA9ICJMT0FESU5HIiksCiAgICAgIChpWyhpLkxPQURFRCA9IDIpXSA9ICJMT0FERUQiKTsKICB9KShyIHx8IChyID0ge30pKTsKICB2YXIgbiA9IChmdW5jdGlvbiAoKSB7CiAgICBmdW5jdGlvbiBpKCkgeyB9CiAgICByZXR1cm4gKAogICAgICAoaS5sb2FkID0gZnVuY3Rpb24gKGEsIG8pIHsKICAgICAgICBpZiAoKG8gPT09IHZvaWQgMCAmJiAobyA9IHt9KSwgdHlwZW9mIGRvY3VtZW50ID4gInUiKSkKICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgKICAgICAgICAgICAgbmV3IEVycm9yKCJUaGlzIGlzIGEgbGlicmFyeSBmb3IgdGhlIGJyb3dzZXIhIikKICAgICAgICAgICk7CiAgICAgICAgaWYgKGkuZ2V0TG9hZGluZ1N0YXRlKCkgPT09IHIuTE9BREVEKQogICAgICAgICAgcmV0dXJuIGkuaW5zdGFuY2UuZ2V0U2l0ZUtleSgpID09PSBhCiAgICAgICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKGkuaW5zdGFuY2UpCiAgICAgICAgICAgIDogUHJvbWlzZS5yZWplY3QoCiAgICAgICAgICAgICAgbmV3IEVycm9yKCJyZUNBUFRDSEEgYWxyZWFkeSBsb2FkZWQgd2l0aCBkaWZmZXJlbnQgc2l0ZSBrZXkhIikKICAgICAgICAgICAgKTsKICAgICAgICBpZiAoaS5nZXRMb2FkaW5nU3RhdGUoKSA9PT0gci5MT0FESU5HKQogICAgICAgICAgcmV0dXJuIGEgIT09IGkuaW5zdGFuY2VTaXRlS2V5CiAgICAgICAgICAgID8gUHJvbWlzZS5yZWplY3QoCiAgICAgICAgICAgICAgbmV3IEVycm9yKCJyZUNBUFRDSEEgYWxyZWFkeSBsb2FkZWQgd2l0aCBkaWZmZXJlbnQgc2l0ZSBrZXkhIikKICAgICAgICAgICAgKQogICAgICAgICAgICA6IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChjLCB1KSB7CiAgICAgICAgICAgICAgaS5zdWNjZXNzZnVsTG9hZGluZ0NvbnN1bWVycy5wdXNoKGZ1bmN0aW9uIChkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYyhkKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIGkuZXJyb3JMb2FkaW5nUnVubmFibGUucHVzaChmdW5jdGlvbiAoZCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gdShkKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAoaS5pbnN0YW5jZVNpdGVLZXkgPSBhKSwgaS5zZXRMb2FkaW5nU3RhdGUoci5MT0FESU5HKTsKICAgICAgICB2YXIgbCA9IG5ldyBpKCk7CiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChjLCB1KSB7CiAgICAgICAgICBsLmxvYWRTY3JpcHQoCiAgICAgICAgICAgIGEsCiAgICAgICAgICAgIG8udXNlUmVjYXB0Y2hhTmV0IHx8ICExLAogICAgICAgICAgICBvLnVzZUVudGVycHJpc2UgfHwgITEsCiAgICAgICAgICAgIG8ucmVuZGVyUGFyYW1ldGVycyA/IG8ucmVuZGVyUGFyYW1ldGVycyA6IHt9LAogICAgICAgICAgICBvLmN1c3RvbVVybAogICAgICAgICAgKQogICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgaS5zZXRMb2FkaW5nU3RhdGUoci5MT0FERUQpOwogICAgICAgICAgICAgIHZhciBkID0gbC5kb0V4cGxpY2l0UmVuZGVyKAogICAgICAgICAgICAgICAgZ3JlY2FwdGNoYSwKICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICBvLmV4cGxpY2l0UmVuZGVyUGFyYW1ldGVycyA/IG8uZXhwbGljaXRSZW5kZXJQYXJhbWV0ZXJzIDoge30sCiAgICAgICAgICAgICAgICBvLnVzZUVudGVycHJpc2UgfHwgITEKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgRSA9IG5ldyB0LlJlQ2FwdGNoYUluc3RhbmNlKGEsIGQsIGdyZWNhcHRjaGEpOwogICAgICAgICAgICAgIGkuc3VjY2Vzc2Z1bExvYWRpbmdDb25zdW1lcnMuZm9yRWFjaChmdW5jdGlvbiAoYikgewogICAgICAgICAgICAgICAgcmV0dXJuIGIoRSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAoaS5zdWNjZXNzZnVsTG9hZGluZ0NvbnN1bWVycyA9IFtdKSwKICAgICAgICAgICAgICAgIG8uYXV0b0hpZGVCYWRnZSAmJiBFLmhpZGVCYWRnZSgpLAogICAgICAgICAgICAgICAgKGkuaW5zdGFuY2UgPSBFKSwKICAgICAgICAgICAgICAgIGMoRSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZCkgewogICAgICAgICAgICAgIGkuZXJyb3JMb2FkaW5nUnVubmFibGUuZm9yRWFjaChmdW5jdGlvbiAoRSkgewogICAgICAgICAgICAgICAgcmV0dXJuIEUoZCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAoaS5lcnJvckxvYWRpbmdSdW5uYWJsZSA9IFtdKSwKICAgICAgICAgICAgICAgIHUoZCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9KSwKICAgICAgKGkuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIGkuaW5zdGFuY2U7CiAgICAgIH0pLAogICAgICAoaS5zZXRMb2FkaW5nU3RhdGUgPSBmdW5jdGlvbiAoYSkgewogICAgICAgIGkubG9hZGluZ1N0YXRlID0gYTsKICAgICAgfSksCiAgICAgIChpLmdldExvYWRpbmdTdGF0ZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gaS5sb2FkaW5nU3RhdGUgPT09IG51bGwgPyByLk5PVF9MT0FERUQgOiBpLmxvYWRpbmdTdGF0ZTsKICAgICAgfSksCiAgICAgIChpLnByb3RvdHlwZS5sb2FkU2NyaXB0ID0gZnVuY3Rpb24gKGEsIG8sIGwsIGMsIHUpIHsKICAgICAgICB2YXIgZCA9IHRoaXM7CiAgICAgICAgbyA9PT0gdm9pZCAwICYmIChvID0gITEpLAogICAgICAgICAgbCA9PT0gdm9pZCAwICYmIChsID0gITEpLAogICAgICAgICAgYyA9PT0gdm9pZCAwICYmIChjID0ge30pLAogICAgICAgICAgdSA9PT0gdm9pZCAwICYmICh1ID0gIiIpOwogICAgICAgIHZhciBFID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgRS5zZXRBdHRyaWJ1dGUoInJlY2FwdGNoYS12My1zY3JpcHQiLCAiIiksCiAgICAgICAgICBFLnNldEF0dHJpYnV0ZSgiYXN5bmMiLCAiIiksCiAgICAgICAgICBFLnNldEF0dHJpYnV0ZSgiZGVmZXIiLCAiIik7CiAgICAgICAgdmFyIGIgPSAiIjsKICAgICAgICBvCiAgICAgICAgICA/IGwKICAgICAgICAgICAgPyAoYiA9ICIiKQogICAgICAgICAgICA6IChiID0gIiIpCiAgICAgICAgICA6IGwgJiYgKGIgPSAiIiksCiAgICAgICAgICB1ICYmIChiID0gdSksCiAgICAgICAgICBjLnJlbmRlciAmJiAoYy5yZW5kZXIgPSB2b2lkIDApOwogICAgICAgIHZhciBQID0gdGhpcy5idWlsZFF1ZXJ5U3RyaW5nKGMpOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoRS5zcmMgPSAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLmpzP3JlbmRlcj1leHBsaWNpdCIpLAogICAgICAgICAgbmV3IFByb21pc2UoZnVuY3Rpb24gKFIsIFQpIHsKICAgICAgICAgICAgRS5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICJsb2FkIiwKICAgICAgICAgICAgICBkLndhaXRGb3JTY3JpcHRUb0xvYWQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgUihFKTsKICAgICAgICAgICAgICB9LCBsKSwKICAgICAgICAgICAgICAhMQogICAgICAgICAgICApLAogICAgICAgICAgICAgIChFLm9uZXJyb3IgPSBmdW5jdGlvbiAoTSkgewogICAgICAgICAgICAgICAgaS5zZXRMb2FkaW5nU3RhdGUoci5OT1RfTE9BREVEKSwgVChNKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEUpOwogICAgICAgICAgfSkKICAgICAgICApOwogICAgICB9KSwKICAgICAgKGkucHJvdG90eXBlLmJ1aWxkUXVlcnlTdHJpbmcgPSBmdW5jdGlvbiAoYSkgewogICAgICAgIHZhciBvID0gT2JqZWN0LmtleXMoYSk7CiAgICAgICAgcmV0dXJuIG8ubGVuZ3RoIDwgMQogICAgICAgICAgPyAiIgogICAgICAgICAgOiAiJiIgKwogICAgICAgICAgT2JqZWN0LmtleXMoYSkKICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgIHJldHVybiAhIWFbbF07CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICByZXR1cm4gbCArICI9IiArIGFbbF07CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5qb2luKCImIik7CiAgICAgIH0pLAogICAgICAoaS5wcm90b3R5cGUud2FpdEZvclNjcmlwdFRvTG9hZCA9IGZ1bmN0aW9uIChhLCBvKSB7CiAgICAgICAgdmFyIGwgPSB0aGlzOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB3aW5kb3cuZ3JlY2FwdGNoYSA9PT0gdm9pZCAwCiAgICAgICAgICAgID8gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgbC53YWl0Rm9yU2NyaXB0VG9Mb2FkKGEsIG8pOwogICAgICAgICAgICB9LCBpLlNDUklQVF9MT0FEX0RFTEFZKQogICAgICAgICAgICA6IG8KICAgICAgICAgICAgICA/IHdpbmRvdy5ncmVjYXB0Y2hhLmVudGVycHJpc2UucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgYSgpOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgOiB3aW5kb3cuZ3JlY2FwdGNoYS5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBhKCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfSksCiAgICAgIChpLnByb3RvdHlwZS5kb0V4cGxpY2l0UmVuZGVyID0gZnVuY3Rpb24gKGEsIG8sIGwsIGMpIHsKICAgICAgICB2YXIgdSA9IGUoeyBzaXRla2V5OiBvIH0sIGwpOwogICAgICAgIHJldHVybiBsLmNvbnRhaW5lcgogICAgICAgICAgPyBjCiAgICAgICAgICAgID8gYS5lbnRlcnByaXNlLnJlbmRlcihsLmNvbnRhaW5lciwgdSkKICAgICAgICAgICAgOiBhLnJlbmRlcihsLmNvbnRhaW5lciwgdSkKICAgICAgICAgIDogYwogICAgICAgICAgICA/IGEuZW50ZXJwcmlzZS5yZW5kZXIodSkKICAgICAgICAgICAgOiBhLnJlbmRlcih1KTsKICAgICAgfSksCiAgICAgIChpLmxvYWRpbmdTdGF0ZSA9IG51bGwpLAogICAgICAoaS5pbnN0YW5jZSA9IG51bGwpLAogICAgICAoaS5pbnN0YW5jZVNpdGVLZXkgPSBudWxsKSwKICAgICAgKGkuc3VjY2Vzc2Z1bExvYWRpbmdDb25zdW1lcnMgPSBbXSksCiAgICAgIChpLmVycm9yTG9hZGluZ1J1bm5hYmxlID0gW10pLAogICAgICAoaS5TQ1JJUFRfTE9BRF9ERUxBWSA9IDI1KSwKICAgICAgaQogICAgKTsKICB9KSgpOwogIHJldHVybiAoCiAgICAoUmVDYXB0Y2hhTG9hZGVyLmxvYWQgPSBuLmxvYWQpLAogICAgKFJlQ2FwdGNoYUxvYWRlci5nZXRJbnN0YW5jZSA9IG4uZ2V0SW5zdGFuY2UpLAogICAgUmVDYXB0Y2hhTG9hZGVyCiAgKTsKfQp2YXIgaGFzUmVxdWlyZWRSZUNhcHRjaGE7CmZ1bmN0aW9uIHJlcXVpcmVSZUNhcHRjaGEoKSB7CiAgcmV0dXJuICgKICAgIGhhc1JlcXVpcmVkUmVDYXB0Y2hhIHx8CiAgICAoKGhhc1JlcXVpcmVkUmVDYXB0Y2hhID0gMSksCiAgICAgIChmdW5jdGlvbiAoZSkgewogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLAogICAgICAgICAgKGUuUmVDYXB0Y2hhSW5zdGFuY2UgPSBlLmdldEluc3RhbmNlID0gZS5sb2FkID0gdm9pZCAwKTsKICAgICAgICB2YXIgdCA9IHJlcXVpcmVSZUNhcHRjaGFMb2FkZXIoKTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgImxvYWQiLCB7CiAgICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdC5sb2FkOwogICAgICAgICAgfSwKICAgICAgICB9KSwKICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCAiZ2V0SW5zdGFuY2UiLCB7CiAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gdC5nZXRJbnN0YW5jZTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIHZhciByID0gcmVxdWlyZVJlQ2FwdGNoYUluc3RhbmNlKCk7CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsICJSZUNhcHRjaGFJbnN0YW5jZSIsIHsKICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiByLlJlQ2FwdGNoYUluc3RhbmNlOwogICAgICAgICAgfSwKICAgICAgICB9KTsKICAgICAgfSkoUmVDYXB0Y2hhKSksCiAgICBSZUNhcHRjaGEKICApOwp9CmNvbnN0IHJlcXVpcmUkJDEgPSBnZXRBdWdtZW50ZWROYW1lc3BhY2UodnVlX3J1bnRpbWVfZXNtQnVuZGxlcik7CnZhciBoYXNSZXF1aXJlZFJlQ2FwdGNoYVZ1ZVBsdWdpbjsKZnVuY3Rpb24gcmVxdWlyZVJlQ2FwdGNoYVZ1ZVBsdWdpbigpIHsKICBpZiAoaGFzUmVxdWlyZWRSZUNhcHRjaGFWdWVQbHVnaW4pIHJldHVybiBSZUNhcHRjaGFWdWVQbHVnaW47CiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFWdWVQbHVnaW4gPSAxOwogIHZhciBlID0KICAgIFJlQ2FwdGNoYVZ1ZVBsdWdpbi5fX2F3YWl0ZXIgfHwKICAgIGZ1bmN0aW9uIChkLCBFLCBiLCBQKSB7CiAgICAgIGZ1bmN0aW9uIFIoVCkgewogICAgICAgIHJldHVybiBUIGluc3RhbmNlb2YgYgogICAgICAgICAgPyBUCiAgICAgICAgICA6IG5ldyBiKGZ1bmN0aW9uIChNKSB7CiAgICAgICAgICAgIE0oVCk7CiAgICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IChiIHx8IChiID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChULCBNKSB7CiAgICAgICAgZnVuY3Rpb24geChBKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBTKFAubmV4dChBKSk7CiAgICAgICAgICB9IGNhdGNoIChPKSB7CiAgICAgICAgICAgIE0oTyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGsoQSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgUyhQLnRocm93KEEpKTsKICAgICAgICAgIH0gY2F0Y2ggKE8pIHsKICAgICAgICAgICAgTShPKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gUyhBKSB7CiAgICAgICAgICBBLmRvbmUgPyBUKEEudmFsdWUpIDogUihBLnZhbHVlKS50aGVuKHgsIGspOwogICAgICAgIH0KICAgICAgICBTKChQID0gUC5hcHBseShkLCBFIHx8IFtdKSkubmV4dCgpKTsKICAgICAgfSk7CiAgICB9LAogICAgdCA9CiAgICAgIFJlQ2FwdGNoYVZ1ZVBsdWdpbi5fX2dlbmVyYXRvciB8fAogICAgICBmdW5jdGlvbiAoZCwgRSkgewogICAgICAgIHZhciBiID0gewogICAgICAgICAgbGFiZWw6IDAsCiAgICAgICAgICBzZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChUWzBdICYgMSkgdGhyb3cgVFsxXTsKICAgICAgICAgICAgcmV0dXJuIFRbMV07CiAgICAgICAgICB9LAogICAgICAgICAgdHJ5czogW10sCiAgICAgICAgICBvcHM6IFtdLAogICAgICAgIH0sCiAgICAgICAgICBQLAogICAgICAgICAgUiwKICAgICAgICAgIFQsCiAgICAgICAgICBNOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoTSA9IHsgbmV4dDogeCgwKSwgdGhyb3c6IHgoMSksIHJldHVybjogeCgyKSB9KSwKICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgKE1bU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9KSwKICAgICAgICAgIE0KICAgICAgICApOwogICAgICAgIGZ1bmN0aW9uIHgoUykgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChBKSB7CiAgICAgICAgICAgIHJldHVybiBrKFtTLCBBXSk7CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBrKFMpIHsKICAgICAgICAgIGlmIChQKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgICBmb3IgKDsgYjspCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKChQID0gMSksCiAgICAgICAgICAgICAgICAgIFIgJiYKICAgICAgICAgICAgICAgICAgKFQgPQogICAgICAgICAgICAgICAgICAgIFNbMF0gJiAyCiAgICAgICAgICAgICAgICAgICAgICA/IFIucmV0dXJuCiAgICAgICAgICAgICAgICAgICAgICA6IFNbMF0KICAgICAgICAgICAgICAgICAgICAgICAgPyBSLnRocm93IHx8ICgoVCA9IFIucmV0dXJuKSAmJiBULmNhbGwoUiksIDApCiAgICAgICAgICAgICAgICAgICAgICAgIDogUi5uZXh0KSAmJgogICAgICAgICAgICAgICAgICAhKFQgPSBULmNhbGwoUiwgU1sxXSkpLmRvbmUpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgcmV0dXJuIFQ7CiAgICAgICAgICAgICAgc3dpdGNoICgoKFIgPSAwKSwgVCAmJiAoUyA9IFtTWzBdICYgMiwgVC52YWx1ZV0pLCBTWzBdKSkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICBUID0gUzsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgIHJldHVybiBiLmxhYmVsKyssIHsgdmFsdWU6IFNbMV0sIGRvbmU6ICExIH07CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIGIubGFiZWwrKywgKFIgPSBTWzFdKSwgKFMgPSBbMF0pOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgKFMgPSBiLm9wcy5wb3AoKSksIGIudHJ5cy5wb3AoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKChUID0gYi50cnlzKSwKICAgICAgICAgICAgICAgICAgICAgICEoVCA9IFQubGVuZ3RoID4gMCAmJiBUW1QubGVuZ3RoIC0gMV0pICYmCiAgICAgICAgICAgICAgICAgICAgICAoU1swXSA9PT0gNiB8fCBTWzBdID09PSAyKSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgYiA9IDA7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKFNbMF0gPT09IDMgJiYgKCFUIHx8IChTWzFdID4gVFswXSAmJiBTWzFdIDwgVFszXSkpKSB7CiAgICAgICAgICAgICAgICAgICAgYi5sYWJlbCA9IFNbMV07CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKFNbMF0gPT09IDYgJiYgYi5sYWJlbCA8IFRbMV0pIHsKICAgICAgICAgICAgICAgICAgICAoYi5sYWJlbCA9IFRbMV0pLCAoVCA9IFMpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChUICYmIGIubGFiZWwgPCBUWzJdKSB7CiAgICAgICAgICAgICAgICAgICAgKGIubGFiZWwgPSBUWzJdKSwgYi5vcHMucHVzaChTKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBUWzJdICYmIGIub3BzLnBvcCgpLCBiLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBTID0gRS5jYWxsKGQsIGIpOwogICAgICAgICAgICB9IGNhdGNoIChBKSB7CiAgICAgICAgICAgICAgKFMgPSBbNiwgQV0pLCAoUiA9IDApOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIFAgPSBUID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgaWYgKFNbMF0gJiA1KSB0aHJvdyBTWzFdOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IFNbMF0gPyBTWzFdIDogdm9pZCAwLCBkb25lOiAhMCB9OwogICAgICAgIH0KICAgICAgfTsKICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVDYXB0Y2hhVnVlUGx1Z2luLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLAogICAgKFJlQ2FwdGNoYVZ1ZVBsdWdpbi51c2VSZUNhcHRjaGEgPSBSZUNhcHRjaGFWdWVQbHVnaW4uVnVlUmVDYXB0Y2hhID0KICAgICAgdm9pZCAwKTsKICB2YXIgciA9IHJlcXVpcmVSZUNhcHRjaGEoKSwKICAgIG4gPSByZXF1aXJlJCQxLAogICAgaSA9IFN5bWJvbCgiVnVlUmVDYXB0Y2hhSW5qZWN0S2V5IiksCiAgICBhID0geyBsb2FkZWRXYWl0ZXJzOiBbXSwgZXJyb3I6IG51bGwgfTsKICBSZUNhcHRjaGFWdWVQbHVnaW4uVnVlUmVDYXB0Y2hhID0gewogICAgaW5zdGFsbDogZnVuY3Rpb24gKGQsIEUpIHsKICAgICAgdmFyIGIgPSBuLnJlZighMSksCiAgICAgICAgUCA9IG4ucmVmKHZvaWQgMCk7CiAgICAgIChkLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRyZWNhcHRjaGFMb2FkZWQgPSBjKGIpKSwKICAgICAgICBsKEUpCiAgICAgICAgICAudGhlbihmdW5jdGlvbiAoUikgewogICAgICAgICAgICAoYi52YWx1ZSA9ICEwKSwKICAgICAgICAgICAgICAoUC52YWx1ZSA9IFIpLAogICAgICAgICAgICAgIChkLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRyZWNhcHRjaGEgPSB1KFApKSwKICAgICAgICAgICAgICAoZC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kcmVjYXB0Y2hhSW5zdGFuY2UgPSBQKSwKICAgICAgICAgICAgICBhLmxvYWRlZFdhaXRlcnMuZm9yRWFjaChmdW5jdGlvbiAoVCkgewogICAgICAgICAgICAgICAgcmV0dXJuIFQucmVzb2x2ZSghMCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KQogICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChSKSB7CiAgICAgICAgICAgIChhLmVycm9yID0gUiksCiAgICAgICAgICAgICAgYS5sb2FkZWRXYWl0ZXJzLmZvckVhY2goZnVuY3Rpb24gKFQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBULnJlamVjdChSKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLAogICAgICAgIGQucHJvdmlkZShpLCB7CiAgICAgICAgICBpbnN0YW5jZTogUCwKICAgICAgICAgIGlzTG9hZGVkOiBiLAogICAgICAgICAgZXhlY3V0ZVJlY2FwdGNoYTogdShQKSwKICAgICAgICAgIHJlY2FwdGNoYUxvYWRlZDogYyhiKSwKICAgICAgICB9KTsKICAgIH0sCiAgfTsKICBmdW5jdGlvbiBvKCkgewogICAgcmV0dXJuIG4uaW5qZWN0KGkpOwogIH0KICBSZUNhcHRjaGFWdWVQbHVnaW4udXNlUmVDYXB0Y2hhID0gbzsKICBmdW5jdGlvbiBsKGQpIHsKICAgIHJldHVybiBlKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiB0KHRoaXMsIGZ1bmN0aW9uIChFKSB7CiAgICAgICAgc3dpdGNoIChFLmxhYmVsKSB7CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIHJldHVybiBbNCwgci5sb2FkKGQuc2l0ZUtleSwgZC5sb2FkZXJPcHRpb25zKV07CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJldHVybiBbMiwgRS5zZW50KCldOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gYyhkKSB7CiAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKEUsIGIpIHsKICAgICAgICBpZiAoYS5lcnJvciAhPT0gbnVsbCkgcmV0dXJuIGIoYS5lcnJvcik7CiAgICAgICAgaWYgKGQudmFsdWUpIHJldHVybiBFKCEwKTsKICAgICAgICBhLmxvYWRlZFdhaXRlcnMucHVzaCh7IHJlc29sdmU6IEUsIHJlamVjdDogYiB9KTsKICAgICAgfSk7CiAgICB9OwogIH0KICBmdW5jdGlvbiB1KGQpIHsKICAgIHZhciBFID0gdGhpczsKICAgIHJldHVybiBmdW5jdGlvbiAoYikgewogICAgICByZXR1cm4gZShFLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBQOwogICAgICAgIHJldHVybiB0KHRoaXMsIGZ1bmN0aW9uIChSKSB7CiAgICAgICAgICBzd2l0Y2ggKFIubGFiZWwpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgKFAgPSBkLnZhbHVlKSA9PT0gbnVsbCB8fCBQID09PSB2b2lkIDAgPyB2b2lkIDAgOiBQLmV4ZWN1dGUoYiksCiAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHJldHVybiBbMiwgUi5zZW50KCldOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH07CiAgfQogIHJldHVybiBSZUNhcHRjaGFWdWVQbHVnaW47Cn0KdmFyIFJlQ2FwdGNoYVZ1ZVBsdWdpbkV4cG9ydHMgPSByZXF1aXJlUmVDYXB0Y2hhVnVlUGx1Z2luKCk7CmNvbnN0IHJlY2FwdGNoYV9jbGllbnRfZVBWR3kxMk9kbSA9IGRlZmluZU51eHRQbHVnaW4oKGUpID0+IHsKICBjb25zdCB0ID0gdXNlUnVudGltZUNvbmZpZygpOwogIGUudnVlQXBwLnVzZShSZUNhcHRjaGFWdWVQbHVnaW5FeHBvcnRzLlZ1ZVJlQ2FwdGNoYSwgewogICAgc2l0ZUtleTogdC5wdWJsaWMuc2l0ZUtleSwKICB9KTsKfSksCiAgR0VUX09UUCA9ICIvYXBpL3YxL3NpZ24tdXAvZ2V0LW90cCIsCiAgU0lHTl9VUCA9ICIvYXBpL3YxL3NpZ24tdXAvY29uZmlybSIsCiAgRk9SR0VUX1BBU1NXT1JEX0dFVF9PVFAgPSAiL2FwaS92MS9mb3Jnb3QtcGFzc3dvcmQvZ2V0LW90cCIsCiAgRk9SR09UX1BBU1NXT1JEID0gIi9hcGkvdjEvZm9yZ290LXBhc3N3b3JkL2NvbmZpcm0iLAogIEdPT0dMRV9MT0dJTiA9ICIvYXBpL3YxL2dvb2dsZS9sb2dpbiIsCiAgU0lHTl9JTiA9ICIvYXBpL3YxL2xvZ2luIiwKICBMT0dPVVQgPSAiL2FwaS92MS9sb2dvdXQiLAogIERJUkVDVElPTlMgPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9kaXJlY3Rpb25zIiwKICBDQUxDVUxBVElPTiA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uIiwKICBDT01QTEVURV9ESVJFQ1RJT04gPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9zdGVwMSIsCiAgV0FMTEVUX0lORk8gPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9zdGVwMiIsCiAgQ09ORklSTV9SRVZJRVdfT1JERVIgPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9zdGVwMyIsCiAgQ0hFQ0tfRElTQ09VTlQgPSAiL2FwaS92MS9jb3Vwb25zL2NoZWNrIiwKICBQUk9DRVNTX1RSQU5TQUNUSU9OID0gIi9hcGkvdjEvY2FsY3VsYXRpb24vcHJvY2Vzcy10cmFuc2FjdGlvbiIsCiAgUEFZTUVOVF9HQVRFV0FZID0gIi9hcGkvdjEvcGF5bWVudC9nYXRld2F5IiwKICBORUJVTE9YX0NPTkZJUk1BVElPTiA9ICIvYXBpL3YxL3BheW1lbnQvbmVidWxveC9jb25maXJtYXRpb24iLAogIEVYUElSRV9PUkRFUiA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uL2V4cGlyZSIsCiAgUFJPQ0VTU19PUkRFUiA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uL3Byb2Nlc3Mtb3JkZXIiLAogIFRSQUNLX09SREVSID0gIi9hcGkvdjEvY2FsY3VsYXRpb24vdHJhY2stb3JkZXIiLAogIE9SREVSX1NUQVRVUyA9ICIvYXBpL3YxL29yZGVyL3N0YXR1cyIsCiAgR0VORVJBVEVfVFdPX0ZBID0gIi9hcGkvdjEvdXNlci9wcm9maWxlL2dlbmVyYXRlMmZhIiwKICBFTkFCTEVfVFdPX0ZBID0gIi9hcGkvdjEvdXNlci9wcm9maWxlL2VuYWJsZTJmYSIsCiAgRElTQUJMRV9UV09fRkEgPSAiL2FwaS92MS91c2VyL3Byb2ZpbGUvZGlzYWJsZTJmYSIsCiAgVVNFUl9PUkRFUlMgPSAiL2FwaS92MS91c2VyL29yZGVyL2ZpbHRlciIsCiAgQ0hBTkdFX1BBU1NXT1JEID0gIi9hcGkvdjEvdXNlci9wcm9maWxlL2NoYW5nZS1wYXNzd29yZCIsCiAgVVBMT0FEX0FWQVRBUiA9ICIvYXBpL3YxL3VzZXIvcHJvZmlsZS9hdmF0YXIiLAogIEVESVRfUFJPRklMRSA9ICIvYXBpL3YxL3VzZXIvcHJvZmlsZS91cGRhdGUiLAogIFVTRVJfVFJBTlNBQ1RJT05TID0gIi9hcGkvdjEvdXNlci90cmFuc2FjdGlvbi9maWx0ZXIiLAogIFVTRVJfQ1JFQVRFX1dJVEhEUkFXID0gIi9hcGkvdjEvdXNlci93aXRoZHJhdy9zdG9yZSIsCiAgVVNFUl9XSVRIRFJBV1MgPSAiL2FwaS92MS91c2VyL3dpdGhkcmF3L2ZpbHRlciIsCiAgVVNFUl9ESVNDT1VOVF9MSVNUID0gIi9hcGkvdjEvY291cG9ucy91c2VyL2Rpc2NvdW50cyIsCiAgQ1VSUkVOQ0lFUyA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uL2N1cnJlbmNpZXMiLAogIEdFVF9VU0VSX0lORk8gPSAiL2FwaS92MS91c2VyL2luZm8iLAogIEdFVF9VU0VSX09UUCA9ICIvYXBpL3YxL3VzZXIvZW1haWwvZ2V0LW90cCIsCiAgVkVSSUZZX0VNQUlMID0gIi9hcGkvdjEvdXNlci9lbWFpbC92ZXJpZnkiLAogIFJFQ0VJVkVfUEFZUEFMX0xBTkRJTkcgPSAiL2FwaS92MS9sYW5kaW5nLzEvZGV0YWlscyIsCiAgV0FMTEVUX0NVUlJFTkNJRVMgPSAiL2FwaS92MS93YWxsZXQvdXNlci9jdXJyZW5jaWVzIiwKICBXQUxMRVRfREVUQUlMUyA9ICIvYXBpL3YxL3dhbGxldCIsCiAgQ1JFQVRFX1dBTExFVCA9ICIvYXBpL3YxL3dhbGxldC9zdG9yZSIsCiAgV0lUSERSQVdfUkVRVUVTVCA9ICIvYXBpL3YxL3dhbGxldC93aXRoZHJhdy1yZXF1ZXN0IiwKICBXSVRIRFJBX0xJU1QgPSAiL2FwaS92MS93YWxsZXQvbGlzdC93aXRoZHJhdy1yZXF1ZXN0IiwKICBDUklTUF9XRUJTSVRFX0lEX0NPTkZJRyA9ICI4MDZmYTM3OC00OGEyLTQ4NzYtYTJmZC1mNjg1NTU0NzgyN2EiLAogIGNyaXNwX2NsaWVudF9hbVFOQTZ0UUE0ID0gZGVmaW5lTnV4dFBsdWdpbigoKSA9PiB7CiAgICAod2luZG93LiRjcmlzcCA9IFtdKSwKICAgICAgKHdpbmRvdy5DUklTUF9XRUJTSVRFX0lEID0gQ1JJU1BfV0VCU0lURV9JRF9DT05GSUcpLAogICAgICAoZnVuY3Rpb24gKCkgewoKICAgICAgfSkoKTsKICB9KTsKdmFyIGxvdHRpZSQxID0geyBleHBvcnRzOiB7fSB9LAogIGxvdHRpZSA9IGxvdHRpZSQxLmV4cG9ydHMsCiAgaGFzUmVxdWlyZWRMb3R0aWU7CmZ1bmN0aW9uIHJlcXVpcmVMb3R0aWUoKSB7CiAgcmV0dXJuICgKICAgIGhhc1JlcXVpcmVkTG90dGllIHx8CiAgICAoKGhhc1JlcXVpcmVkTG90dGllID0gMSksCiAgICAgIChmdW5jdGlvbiAobW9kdWxlLCBleHBvcnRzKSB7CiAgICAgICAgdHlwZW9mIG5hdmlnYXRvciA8ICJ1IiAmJgogICAgICAgICAgKGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gdCgpOwogICAgICAgICAgfSkobG90dGllLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBzdmdOUyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsCiAgICAgICAgICAgICAgbG9jYXRpb25IcmVmID0gIiIsCiAgICAgICAgICAgICAgX3VzZVdlYldvcmtlciA9ICExLAogICAgICAgICAgICAgIGluaXRpYWxEZWZhdWx0RnJhbWUgPSAtOTk5OTk5LAogICAgICAgICAgICAgIHNldFdlYldvcmtlciA9IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICBfdXNlV2ViV29ya2VyID0gISF0OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0V2ViV29ya2VyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIF91c2VXZWJXb3JrZXI7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRMb2NhdGlvbkhyZWYgPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgbG9jYXRpb25IcmVmID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldExvY2F0aW9uSHJlZiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbkhyZWY7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVGFnKGUpIHsKICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBleHRlbmRQcm90b3R5cGUoZSwgdCkgewogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoLAogICAgICAgICAgICAgICAgaTsKICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB7CiAgICAgICAgICAgICAgICBpID0gZVtyXS5wcm90b3R5cGU7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBhIGluIGkpCiAgICAgICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLCBhKSAmJgogICAgICAgICAgICAgICAgICAgICh0LnByb3RvdHlwZVthXSA9IGlbYV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBnZXREZXNjcmlwdG9yKGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm94eUZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiB0KCkgeyB9CiAgICAgICAgICAgICAgcmV0dXJuICh0LnByb3RvdHlwZSA9IGUpLCB0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBhdWRpb0NvbnRyb2xsZXJGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiBlKHQpIHsKICAgICAgICAgICAgICAgICh0aGlzLmF1ZGlvcyA9IFtdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXVkaW9GYWN0b3J5ID0gdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl92b2x1bWUgPSAxKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzTXV0ZWQgPSAhMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgIGFkZEF1ZGlvOiBmdW5jdGlvbiAocikgewogICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9zLnB1c2gocik7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHBhdXNlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgICAgICBuID0gdGhpcy5hdWRpb3MubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHRoaXMuYXVkaW9zW3JdLnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHJlc3VtZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuYXVkaW9zLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB0aGlzLmF1ZGlvc1tyXS5yZXN1bWUoKTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgc2V0UmF0ZTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLmF1ZGlvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkgdGhpcy5hdWRpb3Nbbl0uc2V0UmF0ZShyKTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgY3JlYXRlQXVkaW86IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXVkaW9GYWN0b3J5CiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYXVkaW9GYWN0b3J5KHIpCiAgICAgICAgICAgICAgICAgICAgICA6IHdpbmRvdy5Ib3dsCiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IHdpbmRvdy5Ib3dsKHsgc3JjOiBbcl0gfSkKICAgICAgICAgICAgICAgICAgICAgICAgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nOiAhMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUGxheWluZyA9ICEwOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlazogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSAhMTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlpbmc6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICByYXRlOiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Vm9sdW1lOiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHNldEF1ZGlvRmFjdG9yeTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvRmFjdG9yeSA9IHI7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHNldFZvbHVtZTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lID0gciksIHRoaXMuX3VwZGF0ZVZvbHVtZSgpOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBtdXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzTXV0ZWQgPSAhMCksIHRoaXMuX3VwZGF0ZVZvbHVtZSgpOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB1bm11dGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNNdXRlZCA9ICExKSwgdGhpcy5fdXBkYXRlVm9sdW1lKCk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIGdldFZvbHVtZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92b2x1bWU7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIF91cGRhdGVWb2x1bWU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmF1ZGlvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9zW3JdLnZvbHVtZSgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdm9sdW1lICogKHRoaXMuX2lzTXV0ZWQgPyAwIDogMSkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBjcmVhdGVUeXBlZEFycmF5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUociwgbikgewogICAgICAgICAgICAgICAgICB2YXIgaSA9IDAsCiAgICAgICAgICAgICAgICAgICAgYSA9IFtdLAogICAgICAgICAgICAgICAgICAgIG87CiAgICAgICAgICAgICAgICAgIHN3aXRjaCAocikgewogICAgICAgICAgICAgICAgICAgIGNhc2UgImludDE2IjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJ1aW50OGMiOgogICAgICAgICAgICAgICAgICAgICAgbyA9IDE7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgbyA9IDEuMTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpICs9IDEpIGEucHVzaChvKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0KHIsIG4pIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgPT09ICJmbG9hdDMyIgogICAgICAgICAgICAgICAgICAgID8gbmV3IEZsb2F0MzJBcnJheShuKQogICAgICAgICAgICAgICAgICAgIDogciA9PT0gImludDE2IgogICAgICAgICAgICAgICAgICAgICAgPyBuZXcgSW50MTZBcnJheShuKQogICAgICAgICAgICAgICAgICAgICAgOiByID09PSAidWludDhjIgogICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBVaW50OENsYW1wZWRBcnJheShuKQogICAgICAgICAgICAgICAgICAgICAgICA6IGUociwgbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5ID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAgICAgdHlwZW9mIEZsb2F0MzJBcnJheSA9PSAiZnVuY3Rpb24iCiAgICAgICAgICAgICAgICAgID8gdAogICAgICAgICAgICAgICAgICA6IGU7CiAgICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlU2l6ZWRBcnJheShlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmFwcGx5KG51bGwsIHsgbGVuZ3RoOiBlIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIF90eXBlb2YkNihlKSB7CiAgICAgICAgICAgICAgIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgPyAoX3R5cGVvZiQ2ID0gZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHI7CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIDogKF90eXBlb2YkNiA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgci5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICByICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIF90eXBlb2YkNihlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHN1YmZyYW1lRW5hYmxlZCA9ICEwLAogICAgICAgICAgICAgIGV4cHJlc3Npb25zUGx1Z2luID0gbnVsbCwKICAgICAgICAgICAgICBleHByZXNzaW9uc0ludGVyZmFjZXMgPSBudWxsLAogICAgICAgICAgICAgIGlkUHJlZml4JDEgPSAiIiwKICAgICAgICAgICAgICBpc1NhZmFyaSA9IC9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QoCiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IudXNlckFnZW50CiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBibVBvdyA9IE1hdGgucG93LAogICAgICAgICAgICAgIGJtU3FydCA9IE1hdGguc3FydCwKICAgICAgICAgICAgICBibUZsb29yID0gTWF0aC5mbG9vciwKICAgICAgICAgICAgICBibU1heCA9IE1hdGgubWF4LAogICAgICAgICAgICAgIGJtTWluID0gTWF0aC5taW4sCiAgICAgICAgICAgICAgQk1NYXRoID0ge307CiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBbCiAgICAgICAgICAgICAgICAiYWJzIiwKICAgICAgICAgICAgICAgICJhY29zIiwKICAgICAgICAgICAgICAgICJhY29zaCIsCiAgICAgICAgICAgICAgICAiYXNpbiIsCiAgICAgICAgICAgICAgICAiYXNpbmgiLAogICAgICAgICAgICAgICAgImF0YW4iLAogICAgICAgICAgICAgICAgImF0YW5oIiwKICAgICAgICAgICAgICAgICJhdGFuMiIsCiAgICAgICAgICAgICAgICAiY2VpbCIsCiAgICAgICAgICAgICAgICAiY2JydCIsCiAgICAgICAgICAgICAgICAiZXhwbTEiLAogICAgICAgICAgICAgICAgImNsejMyIiwKICAgICAgICAgICAgICAgICJjb3MiLAogICAgICAgICAgICAgICAgImNvc2giLAogICAgICAgICAgICAgICAgImV4cCIsCiAgICAgICAgICAgICAgICAiZmxvb3IiLAogICAgICAgICAgICAgICAgImZyb3VuZCIsCiAgICAgICAgICAgICAgICAiaHlwb3QiLAogICAgICAgICAgICAgICAgImltdWwiLAogICAgICAgICAgICAgICAgImxvZyIsCiAgICAgICAgICAgICAgICAibG9nMXAiLAogICAgICAgICAgICAgICAgImxvZzIiLAogICAgICAgICAgICAgICAgImxvZzEwIiwKICAgICAgICAgICAgICAgICJtYXgiLAogICAgICAgICAgICAgICAgIm1pbiIsCiAgICAgICAgICAgICAgICAicG93IiwKICAgICAgICAgICAgICAgICJyYW5kb20iLAogICAgICAgICAgICAgICAgInJvdW5kIiwKICAgICAgICAgICAgICAgICJzaWduIiwKICAgICAgICAgICAgICAgICJzaW4iLAogICAgICAgICAgICAgICAgInNpbmgiLAogICAgICAgICAgICAgICAgInNxcnQiLAogICAgICAgICAgICAgICAgInRhbiIsCiAgICAgICAgICAgICAgICAidGFuaCIsCiAgICAgICAgICAgICAgICAidHJ1bmMiLAogICAgICAgICAgICAgICAgIkUiLAogICAgICAgICAgICAgICAgIkxOMTAiLAogICAgICAgICAgICAgICAgIkxOMiIsCiAgICAgICAgICAgICAgICAiTE9HMTBFIiwKICAgICAgICAgICAgICAgICJMT0cyRSIsCiAgICAgICAgICAgICAgICAiUEkiLAogICAgICAgICAgICAgICAgIlNRUlQxXzIiLAogICAgICAgICAgICAgICAgIlNRUlQyIiwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgIHIgPSBlLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKSBCTU1hdGhbZVt0XV0gPSBNYXRoW2VbdF1dOwogICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgIChCTU1hdGgucmFuZG9tID0gTWF0aC5yYW5kb20pLAogICAgICAgICAgICAgIChCTU1hdGguYWJzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gX3R5cGVvZiQ2KGUpOwogICAgICAgICAgICAgICAgaWYgKHQgPT09ICJvYmplY3QiICYmIGUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgIHZhciByID0gY3JlYXRlU2l6ZWRBcnJheShlLmxlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgICBpID0gZS5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpIHJbbl0gPSBNYXRoLmFicyhlW25dKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5hYnMoZSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBkZWZhdWx0Q3VydmVTZWdtZW50cyA9IDE1MCwKICAgICAgICAgICAgICBkZWdUb1JhZHMgPSBNYXRoLlBJIC8gMTgwLAogICAgICAgICAgICAgIHJvdW5kQ29ybmVyID0gMC41NTE5OwogICAgICAgICAgICBmdW5jdGlvbiBzdHlsZURpdihlKSB7CiAgICAgICAgICAgICAgKGUuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiKSwKICAgICAgICAgICAgICAgIChlLnN0eWxlLnRvcCA9IDApLAogICAgICAgICAgICAgICAgKGUuc3R5bGUubGVmdCA9IDApLAogICAgICAgICAgICAgICAgKGUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gIjAgMCIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUud2Via2l0VHJhbnNmb3JtT3JpZ2luID0gIjAgMCIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUuYmFja2ZhY2VWaXNpYmlsaXR5ID0gInZpc2libGUiKSwKICAgICAgICAgICAgICAgIChlLnN0eWxlLndlYmtpdEJhY2tmYWNlVmlzaWJpbGl0eSA9ICJ2aXNpYmxlIiksCiAgICAgICAgICAgICAgICAoZS5zdHlsZS50cmFuc2Zvcm1TdHlsZSA9ICJwcmVzZXJ2ZS0zZCIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUud2Via2l0VHJhbnNmb3JtU3R5bGUgPSAicHJlc2VydmUtM2QiKSwKICAgICAgICAgICAgICAgIChlLnN0eWxlLm1velRyYW5zZm9ybVN0eWxlID0gInByZXNlcnZlLTNkIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1FbnRlckZyYW1lRXZlbnQoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRUaW1lID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy50b3RhbFRpbWUgPSByKSwKICAgICAgICAgICAgICAgICh0aGlzLmRpcmVjdGlvbiA9IG4gPCAwID8gLTEgOiAxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBCTUNvbXBsZXRlRXZlbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwgKHRoaXMuZGlyZWN0aW9uID0gdCA8IDAgPyAtMSA6IDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIEJNQ29tcGxldGVMb29wRXZlbnQoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRMb29wID0gciksCiAgICAgICAgICAgICAgICAodGhpcy50b3RhbExvb3BzID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5kaXJlY3Rpb24gPSBuIDwgMCA/IC0xIDogMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1TZWdtZW50U3RhcnRFdmVudChlLCB0LCByKSB7CiAgICAgICAgICAgICAgKHRoaXMudHlwZSA9IGUpLCAodGhpcy5maXJzdEZyYW1lID0gdCksICh0aGlzLnRvdGFsRnJhbWVzID0gcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1EZXN0cm95RXZlbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwgKHRoaXMudGFyZ2V0ID0gdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1SZW5kZXJGcmFtZUVycm9yRXZlbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSAicmVuZGVyRnJhbWVFcnJvciIpLAogICAgICAgICAgICAgICAgKHRoaXMubmF0aXZlRXJyb3IgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRUaW1lID0gdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1Db25maWdFcnJvckV2ZW50KGUpIHsKICAgICAgICAgICAgICAodGhpcy50eXBlID0gImNvbmZpZ0Vycm9yIiksICh0aGlzLm5hdGl2ZUVycm9yID0gZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGNyZWF0ZUVsZW1lbnRJRCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSAwOwogICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGUgKz0gMSksIGlkUHJlZml4JDEgKyAiX19sb3R0aWVfZWxlbWVudF8iICsgZTsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBIU1Z0b1JHQihlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4sIGksIGEsIG8sIGwsIGMsIHUsIGQ7CiAgICAgICAgICAgICAgc3dpdGNoICgKICAgICAgICAgICAgICAoKG8gPSBNYXRoLmZsb29yKGUgKiA2KSksCiAgICAgICAgICAgICAgICAobCA9IGUgKiA2IC0gbyksCiAgICAgICAgICAgICAgICAoYyA9IHIgKiAoMSAtIHQpKSwKICAgICAgICAgICAgICAgICh1ID0gciAqICgxIC0gbCAqIHQpKSwKICAgICAgICAgICAgICAgIChkID0gciAqICgxIC0gKDEgLSBsKSAqIHQpKSwKICAgICAgICAgICAgICAgIG8gJSA2KQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAobiA9IHIpLCAoaSA9IGQpLCAoYSA9IGMpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgKG4gPSB1KSwgKGkgPSByKSwgKGEgPSBjKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgIChuID0gYyksIChpID0gciksIChhID0gZCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAobiA9IGMpLCAoaSA9IHUpLCAoYSA9IHIpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgKG4gPSBkKSwgKGkgPSBjKSwgKGEgPSByKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIChuID0gciksIChpID0gYyksIChhID0gdSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gW24sIGksIGFdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFJHQnRvSFNWKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB2YXIgbiA9IE1hdGgubWF4KGUsIHQsIHIpLAogICAgICAgICAgICAgICAgaSA9IE1hdGgubWluKGUsIHQsIHIpLAogICAgICAgICAgICAgICAgYSA9IG4gLSBpLAogICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgIGwgPSBuID09PSAwID8gMCA6IGEgLyBuLAogICAgICAgICAgICAgICAgYyA9IG4gLyAyNTU7CiAgICAgICAgICAgICAgc3dpdGNoIChuKSB7CiAgICAgICAgICAgICAgICBjYXNlIGk6CiAgICAgICAgICAgICAgICAgIG8gPSAwOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgZToKICAgICAgICAgICAgICAgICAgKG8gPSB0IC0gciArIGEgKiAodCA8IHIgPyA2IDogMCkpLCAobyAvPSA2ICogYSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSB0OgogICAgICAgICAgICAgICAgICAobyA9IHIgLSBlICsgYSAqIDIpLCAobyAvPSA2ICogYSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSByOgogICAgICAgICAgICAgICAgICAobyA9IGUgLSB0ICsgYSAqIDQpLCAobyAvPSA2ICogYSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gW28sIGwsIGNdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZFNhdHVyYXRpb25Ub1JHQihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBSR0J0b0hTVihlWzBdICogMjU1LCBlWzFdICogMjU1LCBlWzJdICogMjU1KTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHJbMV0gKz0gdCksCiAgICAgICAgICAgICAgICByWzFdID4gMSA/IChyWzFdID0gMSkgOiByWzFdIDw9IDAgJiYgKHJbMV0gPSAwKSwKICAgICAgICAgICAgICAgIEhTVnRvUkdCKHJbMF0sIHJbMV0sIHJbMl0pCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhZGRCcmlnaHRuZXNzVG9SR0IoZSwgdCkgewogICAgICAgICAgICAgIHZhciByID0gUkdCdG9IU1YoZVswXSAqIDI1NSwgZVsxXSAqIDI1NSwgZVsyXSAqIDI1NSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChyWzJdICs9IHQpLAogICAgICAgICAgICAgICAgclsyXSA+IDEgPyAoclsyXSA9IDEpIDogclsyXSA8IDAgJiYgKHJbMl0gPSAwKSwKICAgICAgICAgICAgICAgIEhTVnRvUkdCKHJbMF0sIHJbMV0sIHJbMl0pCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhZGRIdWVUb1JHQihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBSR0J0b0hTVihlWzBdICogMjU1LCBlWzFdICogMjU1LCBlWzJdICogMjU1KTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHJbMF0gKz0gdCAvIDM2MCksCiAgICAgICAgICAgICAgICByWzBdID4gMSA/IChyWzBdIC09IDEpIDogclswXSA8IDAgJiYgKHJbMF0gKz0gMSksCiAgICAgICAgICAgICAgICBIU1Z0b1JHQihyWzBdLCByWzFdLCByWzJdKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHJnYlRvSGV4ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IFtdLAogICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgIHI7CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IDI1NjsgdCArPSAxKQogICAgICAgICAgICAgICAgKHIgPSB0LnRvU3RyaW5nKDE2KSksIChlW3RdID0gci5sZW5ndGggPT09IDEgPyAiMCIgKyByIDogcik7CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChuLCBpLCBhKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICBuIDwgMCAmJiAobiA9IDApLAogICAgICAgICAgICAgICAgICBpIDwgMCAmJiAoaSA9IDApLAogICAgICAgICAgICAgICAgICBhIDwgMCAmJiAoYSA9IDApLAogICAgICAgICAgICAgICAgICAiIyIgKyBlW25dICsgZVtpXSArIGVbYV0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBzZXRTdWJmcmFtZUVuYWJsZWQgPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgc3ViZnJhbWVFbmFibGVkID0gISF0OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0U3ViZnJhbWVFbmFibGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHN1YmZyYW1lRW5hYmxlZDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNldEV4cHJlc3Npb25zUGx1Z2luID0gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zUGx1Z2luID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldEV4cHJlc3Npb25zUGx1Z2luID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGV4cHJlc3Npb25zUGx1Z2luOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2V0RXhwcmVzc2lvbkludGVyZmFjZXMgPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgZXhwcmVzc2lvbnNJbnRlcmZhY2VzID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldEV4cHJlc3Npb25JbnRlcmZhY2VzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGV4cHJlc3Npb25zSW50ZXJmYWNlczsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGRlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldERlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDdXJ2ZVNlZ21lbnRzOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2V0SWRQcmVmaXggPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgaWRQcmVmaXgkMSA9IHQ7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlTlMoZSkgewogICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsIGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIF90eXBlb2YkNShlKSB7CiAgICAgICAgICAgICAgIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgPyAoX3R5cGVvZiQ1ID0gZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHI7CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIDogKF90eXBlb2YkNSA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgci5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICByICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIF90eXBlb2YkNShlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGRhdGFNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IDEsCiAgICAgICAgICAgICAgICB0ID0gW10sCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGkgPSB7CiAgICAgICAgICAgICAgICAgIG9ubWVzc2FnZTogZnVuY3Rpb24gKCkgeyB9LAogICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZTogZnVuY3Rpb24gKFApIHsKICAgICAgICAgICAgICAgICAgICByKHsgZGF0YTogUCB9KTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBhID0gewogICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZTogZnVuY3Rpb24gKFApIHsKICAgICAgICAgICAgICAgICAgICBpLm9ubWVzc2FnZSh7IGRhdGE6IFAgfSk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oYikgewogICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5Xb3JrZXIgJiYgd2luZG93LkJsb2IgJiYgZ2V0V2ViV29ya2VyKCkpIHsKICAgICAgICAgICAgICAgICAgdmFyIFAgPSBuZXcgQmxvYigKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAidmFyIF93b3JrZXJTZWxmID0gc2VsZjsgc2VsZi5vbm1lc3NhZ2UgPSAiLAogICAgICAgICAgICAgICAgICAgICAgYi50b1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAidGV4dC9qYXZhc2NyaXB0IiB9CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgUiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoUCk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV29ya2VyKFIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIChyID0gYiksIGk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGwoKSB7CiAgICAgICAgICAgICAgICBuIHx8CiAgICAgICAgICAgICAgICAgICgobiA9IG8oZnVuY3Rpb24gKFApIHsKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBSKCkgewogICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gTShyZSwgQikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgeiwKICAgICAgICAgICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICAgICAgICAgIFYgPSByZS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgICAgICAgICAgICBZLAogICAgICAgICAgICAgICAgICAgICAgICAgIGhlLAogICAgICAgICAgICAgICAgICAgICAgICAgIHllOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKHogPSByZVtOXSksICJrcyIgaW4geiAmJiAhei5jb21wbGV0ZWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCh6LmNvbXBsZXRlZCA9ICEwKSwgei5oYXNNYXNrKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmUgPSB6Lm1hc2tzUHJvcGVydGllczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChZID0gdmUubGVuZ3RoLCBRID0gMDsgUSA8IFk7IFEgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVbUV0ucHQuay5pKSBPKHZlW1FdLnB0LmspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllID0gdmVbUV0ucHQuay5sZW5ndGgsIGhlID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUgPCB5ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUgKz0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZVtRXS5wdC5rW2hlXS5zICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyh2ZVtRXS5wdC5rW2hlXS5zWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZVtRXS5wdC5rW2hlXS5lICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyh2ZVtRXS5wdC5rW2hlXS5lWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHoudHkgPT09IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKHoubGF5ZXJzID0gUyh6LnJlZklkLCBCKSksIE0oei5sYXllcnMsIEIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHoudHkgPT09IDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEEoei5zaGFwZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB6LnR5ID09PSA1ICYmIGVlKHopOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHgocmUsIEIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHogPSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9IHJlLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgTjsgeiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVbel0udCA9PT0gMSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJlW3pdLmRhdGEubGF5ZXJzID0gUyhyZVt6XS5kYXRhLnJlZklkLCBCKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTShyZVt6XS5kYXRhLmxheWVycywgQikpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBrKHJlLCBCKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHogPSAwLCBOID0gQi5sZW5ndGg7IHogPCBOOykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChCW3pdLmlkID09PSByZSkgcmV0dXJuIEJbel07CiAgICAgICAgICAgICAgICAgICAgICAgICAgeiArPSAxOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gUyhyZSwgQikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgeiA9IGsocmUsIEIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gegogICAgICAgICAgICAgICAgICAgICAgICAgID8gei5sYXllcnMuX191c2VkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoei5sYXllcnMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKHoubGF5ZXJzLl9fdXNlZCA9ICEwKSwgei5sYXllcnMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQShyZSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQiwKICAgICAgICAgICAgICAgICAgICAgICAgICB6ID0gcmUubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVjsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChCID0geiAtIDE7IEIgPj0gMDsgQiAtPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZVtCXS50eSA9PT0gInNoIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZVtCXS5rcy5rLmkpIE8ocmVbQl0ua3Muayk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViA9IHJlW0JdLmtzLmsubGVuZ3RoLCBOID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOIDwgVjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlW0JdLmtzLmtbTl0ucyAmJiBPKHJlW0JdLmtzLmtbTl0uc1swXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZVtCXS5rcy5rW05dLmUgJiYgTyhyZVtCXS5rcy5rW05dLmVbMF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcmVbQl0udHkgPT09ICJnciIgJiYgQShyZVtCXS5pdCk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBPKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBCLAogICAgICAgICAgICAgICAgICAgICAgICAgIHogPSByZS5pLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChCID0gMDsgQiA8IHo7IEIgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAocmUuaVtCXVswXSArPSByZS52W0JdWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZS5pW0JdWzFdICs9IHJlLnZbQl1bMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlLm9bQl1bMF0gKz0gcmUudltCXVswXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmUub1tCXVsxXSArPSByZS52W0JdWzFdKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIEYocmUsIEIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHogPSBCID8gQi5zcGxpdCgiLiIpIDogWzEwMCwgMTAwLCAxMDBdOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVbMF0gPiB6WzBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAhMAogICAgICAgICAgICAgICAgICAgICAgICAgIDogelswXSA+IHJlWzBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICExCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlWzFdID4gelsxXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogelsxXSA+IHJlWzFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAhMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVbMl0gPiB6WzJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHpbMl0gPiByZVsyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICExCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIHZhciBEID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlID0gWzQsIDQsIDE0XTsKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFYgPSBOLnQuZDsKICAgICAgICAgICAgICAgICAgICAgICAgICBOLnQuZCA9IHsgazogW3sgczogViwgdDogMCB9XSB9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHooTikgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBROyBWICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOW1ZdLnR5ID09PSA1ICYmIEIoTltWXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEYocmUsIE4udikgJiYgKHooTi5sYXllcnMpLCBOLmFzc2V0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRID0gTi5hc3NldHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTi5hc3NldHNbVl0ubGF5ZXJzICYmIHooTi5hc3NldHNbVl0ubGF5ZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgICAgICAgICAgICBIID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmUgPSBbNCwgNywgOTldOwogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoQikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEIuY2hhcnMgJiYgIUYocmUsIEIudikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9IEIuY2hhcnMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgTjsgeiArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFYgPSBCLmNoYXJzW3pdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYuZGF0YSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVi5kYXRhLnNoYXBlcyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEEoVi5kYXRhLnNoYXBlcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWLmRhdGEuaXAgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYuZGF0YS5vcCA9IDk5OTk5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYuZGF0YS5zdCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVi5kYXRhLnNyID0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWLmRhdGEua3MgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDogeyBrOiBbMCwgMF0sIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiB7IGs6IFsxMDAsIDEwMF0sIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhOiB7IGs6IFswLCAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHI6IHsgazogMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG86IHsgazogMTAwLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmNoYXJzW3pdLnQgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYuZGF0YS5zaGFwZXMucHVzaCh7IHR5OiAibm8iIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYuZGF0YS5zaGFwZXNbMF0uaXQucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwOiB7IGs6IFswLCAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczogeyBrOiBbMTAwLCAxMDBdLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhOiB7IGs6IFswLCAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcjogeyBrOiAwLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvOiB7IGs6IDEwMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2s6IHsgazogMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2E6IHsgazogMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHk6ICJ0ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgICAgICAgICAgICQgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZSA9IFs1LCA3LCAxNV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViA9IE4udC5wOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIFYuYSA9PSAibnVtYmVyIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVi5hID0geyBhOiAwLCBrOiBWLmEgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBWLnAgPT0gIm51bWJlciIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYucCA9IHsgYTogMCwgazogVi5wIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgVi5yID09ICJudW1iZXIiICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWLnIgPSB7IGE6IDAsIGs6IFYuciB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS50eSA9PT0gNSAmJiBCKE5bVl0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKE4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChGKHJlLCBOLnYpICYmICh6KE4ubGF5ZXJzKSwgTi5hc3NldHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEgPSBOLmFzc2V0cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBROyBWICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTi5hc3NldHNbVl0ubGF5ZXJzICYmIHooTi5hc3NldHNbVl0ubGF5ZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgICAgICAgICAgICBxID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmUgPSBbNCwgMSwgOV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBROyBWICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChOW1ZdLnR5ID09PSAiZ3IiKSBCKE5bVl0uaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChOW1ZdLnR5ID09PSAiZmwiIHx8IE5bVl0udHkgPT09ICJzdCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE5bVl0uYy5rICYmIE5bVl0uYy5rWzBdLmkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZSA9IE5bVl0uYy5rLmxlbmd0aCwgWSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFkgPCBoZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSArPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uYy5rW1ldLnMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5bVl0uYy5rW1ldLnNbMF0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmMua1tZXS5zWzFdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbWV0uc1syXSAvPSAyNTUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5bVl0uYy5rW1ldLnNbM10gLz0gMjU1KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS5jLmtbWV0uZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoTltWXS5jLmtbWV0uZVswXSAvPSAyNTUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5bVl0uYy5rW1ldLmVbMV0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmMua1tZXS5lWzJdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbWV0uZVszXSAvPSAyNTUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbMF0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5bVl0uYy5rWzFdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmMua1syXSAvPSAyNTUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbM10gLz0gMjU1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS50eSA9PT0gNCAmJiBCKE5bVl0uc2hhcGVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRihyZSwgTi52KSAmJiAoeihOLmxheWVycyksIE4uYXNzZXRzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRID0gTi5hc3NldHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKFYgPSAwOyBWIDwgUTsgViArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4uYXNzZXRzW1ZdLmxheWVycyAmJiB6KE4uYXNzZXRzW1ZdLmxheWVycyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgSiA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlID0gWzQsIDQsIDE4XTsKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBCKE4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRID0gTi5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gUSAtIDE7IFYgPj0gMDsgViAtPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTltWXS50eSA9PT0gInNoIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTltWXS5rcy5rLmkpIE5bVl0ua3Muay5jID0gTltWXS5jbG9zZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUgPSBOW1ZdLmtzLmsubGVuZ3RoLCBZID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSA8IGhlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS5rcy5rW1ldLnMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5rcy5rW1ldLnNbMF0uYyA9IE5bVl0uY2xvc2VkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOW1ZdLmtzLmtbWV0uZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmtzLmtbWV0uZVswXS5jID0gTltWXS5jbG9zZWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIE5bVl0udHkgPT09ICJnciIgJiYgQihOW1ZdLml0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSA9IE4ubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoUSA9IDA7IFEgPCBZOyBRICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoViA9IE5bUV0pLCBWLmhhc01hc2spKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIENlID0gVi5tYXNrc1Byb3BlcnRpZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh5ZSA9IENlLmxlbmd0aCwgaGUgPSAwOyBoZSA8IHllOyBoZSArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKENlW2hlXS5wdC5rLmkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENlW2hlXS5wdC5rLmMgPSBDZVtoZV0uY2w7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGUgPSBDZVtoZV0ucHQuay5sZW5ndGgsIHZlID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZSA8IFBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENlW2hlXS5wdC5rW3ZlXS5zICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ2VbaGVdLnB0LmtbdmVdLnNbMF0uYyA9IENlW2hlXS5jbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDZVtoZV0ucHQua1t2ZV0uZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENlW2hlXS5wdC5rW3ZlXS5lWzBdLmMgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDZVtoZV0uY2wpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYudHkgPT09IDQgJiYgQihWLnNoYXBlcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoTikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEYocmUsIE4udikgJiYgKHooTi5sYXllcnMpLCBOLmFzc2V0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4uYXNzZXRzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLmFzc2V0c1tWXS5sYXllcnMgJiYgeihOLmFzc2V0c1tWXS5sYXllcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBLKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlLl9fY29tcGxldGUgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAocShyZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEKHJlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgocmUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChyZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKKHJlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0ocmUubGF5ZXJzLCByZS5hc3NldHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeChyZS5jaGFycywgcmUuYXNzZXRzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZS5fX2NvbXBsZXRlID0gITApKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVlKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlLnQuYS5sZW5ndGggPT09IDAgJiYgIm0iIGluIHJlLnQucDsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIHZhciBsZSA9IHt9OwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNvbXBsZXRlRGF0YSA9IEspLAogICAgICAgICAgICAgICAgICAgICAgICAobGUuY2hlY2tDb2xvcnMgPSBxKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNoZWNrQ2hhcnMgPSBIKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNoZWNrUGF0aFByb3BlcnRpZXMgPSAkKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNoZWNrU2hhcGVzID0gSiksCiAgICAgICAgICAgICAgICAgICAgICAgIChsZS5jb21wbGV0ZUxheWVycyA9IE0pLAogICAgICAgICAgICAgICAgICAgICAgICBsZQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKGEuZGF0YU1hbmFnZXIgfHwgKGEuZGF0YU1hbmFnZXIgPSBSKCkpLAogICAgICAgICAgICAgICAgICAgICAgICBhLmFzc2V0TG9hZGVyIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIChhLmFzc2V0TG9hZGVyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBNKGspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBTID0gay5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgay5yZXNwb25zZVR5cGUgPT09ICJqc29uIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLmluZGV4T2YoImpzb24iKSAhPT0gLTEpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrLnJlc3BvbnNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3R5cGVvZiQ1KGsucmVzcG9uc2UpID09PSAib2JqZWN0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBrLnJlc3BvbnNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogay5yZXNwb25zZSAmJiB0eXBlb2Ygay5yZXNwb25zZSA9PSAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZShrLnJlc3BvbnNlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogay5yZXNwb25zZVRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZShrLnJlc3BvbnNlVGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geChrLCBTLCBBLCBPKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRC5yZXNwb25zZVR5cGUgPSAianNvbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHsgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChELnJlYWR5U3RhdGUgPT09IDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEQuc3RhdHVzID09PSAyMDApIChGID0gTShEKSksIEEoRik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEYgPSBNKEQpKSwgQShGKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyAmJiBPKEgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQub3BlbihbIkciLCAiRSIsICJUIl0uam9pbigiIiksIGssICEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBELm9wZW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJHIiwgIkUiLCAiVCJdLmpvaW4oIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyAiLyIgKyBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBELnNlbmQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbG9hZDogeCB9OwogICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgUC5kYXRhLnR5cGUgPT09ICJsb2FkQW5pbWF0aW9uIikKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICBhLmFzc2V0TG9hZGVyLmxvYWQoCiAgICAgICAgICAgICAgICAgICAgICAgIFAuZGF0YS5wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICBQLmRhdGEuZnVsbFBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChNKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYS5kYXRhTWFuYWdlci5jb21wbGV0ZURhdGEoTSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFAuZGF0YS5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDogTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAic3VjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGEucG9zdE1lc3NhZ2UoeyBpZDogUC5kYXRhLmlkLCBzdGF0dXM6ICJlcnJvciIgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoUC5kYXRhLnR5cGUgPT09ICJjb21wbGV0ZSIpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBUID0gUC5kYXRhLmFuaW1hdGlvbjsKICAgICAgICAgICAgICAgICAgICAgIGEuZGF0YU1hbmFnZXIuY29tcGxldGVEYXRhKFQpLAogICAgICAgICAgICAgICAgICAgICAgICBhLnBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogUC5kYXRhLmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IFQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAic3VjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgUC5kYXRhLnR5cGUgPT09ICJsb2FkRGF0YSIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgYS5hc3NldExvYWRlci5sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuZGF0YS5wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuZGF0YS5mdWxsUGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoTSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBQLmRhdGEuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogInN1Y2Nlc3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnBvc3RNZXNzYWdlKHsgaWQ6IFAuZGF0YS5pZCwgc3RhdHVzOiAiZXJyb3IiIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgICAgICAgICAgIChuLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChiKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgUCA9IGIuZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgUiA9IFAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIFQgPSB0W1JdOwogICAgICAgICAgICAgICAgICAgICAgKHRbUl0gPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAgICAgUC5zdGF0dXMgPT09ICJzdWNjZXNzIgogICAgICAgICAgICAgICAgICAgICAgICAgID8gVC5vbkNvbXBsZXRlKFAucGF5bG9hZCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IFQub25FcnJvciAmJiBULm9uRXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGMoYiwgUCkgewogICAgICAgICAgICAgICAgZSArPSAxOwogICAgICAgICAgICAgICAgdmFyIFIgPSAicHJvY2Vzc0lkXyIgKyBlOwogICAgICAgICAgICAgICAgcmV0dXJuICh0W1JdID0geyBvbkNvbXBsZXRlOiBiLCBvbkVycm9yOiBQIH0pLCBSOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiB1KGIsIFAsIFIpIHsKICAgICAgICAgICAgICAgIGwoKTsKICAgICAgICAgICAgICAgIHZhciBUID0gYyhQLCBSKTsKICAgICAgICAgICAgICAgIG4ucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICB0eXBlOiAibG9hZEFuaW1hdGlvbiIsCiAgICAgICAgICAgICAgICAgIHBhdGg6IGIsCiAgICAgICAgICAgICAgICAgIGZ1bGxQYXRoOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLAogICAgICAgICAgICAgICAgICBpZDogVCwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBkKGIsIFAsIFIpIHsKICAgICAgICAgICAgICAgIGwoKTsKICAgICAgICAgICAgICAgIHZhciBUID0gYyhQLCBSKTsKICAgICAgICAgICAgICAgIG4ucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICB0eXBlOiAibG9hZERhdGEiLAogICAgICAgICAgICAgICAgICBwYXRoOiBiLAogICAgICAgICAgICAgICAgICBmdWxsUGF0aDogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwKICAgICAgICAgICAgICAgICAgaWQ6IFQsCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gRShiLCBQLCBSKSB7CiAgICAgICAgICAgICAgICBsKCk7CiAgICAgICAgICAgICAgICB2YXIgVCA9IGMoUCwgUik7CiAgICAgICAgICAgICAgICBuLnBvc3RNZXNzYWdlKHsgdHlwZTogImNvbXBsZXRlIiwgYW5pbWF0aW9uOiBiLCBpZDogVCB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgbG9hZEFuaW1hdGlvbjogdSwgbG9hZERhdGE6IGQsIGNvbXBsZXRlQW5pbWF0aW9uOiBFIH07CiAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgSW1hZ2VQcmVsb2FkZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICB2YXIgeCA9IGNyZWF0ZVRhZygiY2FudmFzIik7CiAgICAgICAgICAgICAgICAgICh4LndpZHRoID0gMSksICh4LmhlaWdodCA9IDEpOwogICAgICAgICAgICAgICAgICB2YXIgayA9IHguZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAoay5maWxsU3R5bGUgPSAicmdiYSgwLDAsMCwwKSIpLCBrLmZpbGxSZWN0KDAsIDAsIDEsIDEpLCB4CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICAgICAgZnVuY3Rpb24gdCgpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMubG9hZGVkQXNzZXRzICs9IDEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkQXNzZXRzID09PSB0aGlzLnRvdGFsSW1hZ2VzICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRGb290YWdlc0NvdW50ID09PSB0aGlzLnRvdGFsRm9vdGFnZXMgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlc0xvYWRlZENiICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZXNMb2FkZWRDYihudWxsKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHIoKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQgKz0gMSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRBc3NldHMgPT09IHRoaXMudG90YWxJbWFnZXMgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQgPT09IHRoaXMudG90YWxGb290YWdlcyAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzTG9hZGVkQ2IgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlc0xvYWRlZENiKG51bGwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbih4LCBrLCBTKSB7CiAgICAgICAgICAgICAgICAgIHZhciBBID0gIiI7CiAgICAgICAgICAgICAgICAgIGlmICh4LmUpIEEgPSB4LnA7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgTyA9IHgucDsKICAgICAgICAgICAgICAgICAgICBPLmluZGV4T2YoImltYWdlcy8iKSAhPT0gLTEgJiYgKE8gPSBPLnNwbGl0KCIvIilbMV0pLAogICAgICAgICAgICAgICAgICAgICAgKEEgPSBrICsgTyk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSAoQSA9IFMpLCAoQSArPSB4LnUgPyB4LnUgOiAiIiksIChBICs9IHgucCk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBBOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gaSh4KSB7CiAgICAgICAgICAgICAgICAgIHZhciBrID0gMCwKICAgICAgICAgICAgICAgICAgICBTID0gc2V0SW50ZXJ2YWwoCiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBBID0geC5nZXRCQm94KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIChBLndpZHRoIHx8IGsgPiA1MDApICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2ltYWdlTG9hZGVkKCksIGNsZWFySW50ZXJ2YWwoUykpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IDEpOwogICAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpLAogICAgICAgICAgICAgICAgICAgICAgNTAKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYSh4KSB7CiAgICAgICAgICAgICAgICAgIHZhciBrID0gbih4LCB0aGlzLmFzc2V0c1BhdGgsIHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgICAgUyA9IGNyZWF0ZU5TKCJpbWFnZSIpOwogICAgICAgICAgICAgICAgICBpc1NhZmFyaQogICAgICAgICAgICAgICAgICAgID8gdGhpcy50ZXN0SW1hZ2VMb2FkZWQoUykKICAgICAgICAgICAgICAgICAgICA6IFMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRoaXMuX2ltYWdlTG9hZGVkLCAhMSksCiAgICAgICAgICAgICAgICAgICAgUy5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgKEEuaW1nID0gZSksIHRoaXMuX2ltYWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgUy5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsICJocmVmIiwgayksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmQKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmQoUykKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmRDaGlsZChTKTsKICAgICAgICAgICAgICAgICAgdmFyIEEgPSB7IGltZzogUywgYXNzZXREYXRhOiB4IH07CiAgICAgICAgICAgICAgICAgIHJldHVybiBBOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbyh4KSB7CiAgICAgICAgICAgICAgICAgIHZhciBrID0gbih4LCB0aGlzLmFzc2V0c1BhdGgsIHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgICAgUyA9IGNyZWF0ZVRhZygiaW1nIik7CiAgICAgICAgICAgICAgICAgIChTLmNyb3NzT3JpZ2luID0gImFub255bW91cyIpLAogICAgICAgICAgICAgICAgICAgIFMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRoaXMuX2ltYWdlTG9hZGVkLCAhMSksCiAgICAgICAgICAgICAgICAgICAgUy5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgKEEuaW1nID0gZSksIHRoaXMuX2ltYWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKFMuc3JjID0gayk7CiAgICAgICAgICAgICAgICAgIHZhciBBID0geyBpbWc6IFMsIGFzc2V0RGF0YTogeCB9OwogICAgICAgICAgICAgICAgICByZXR1cm4gQTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGwoeCkgewogICAgICAgICAgICAgICAgICB2YXIgayA9IHsgYXNzZXREYXRhOiB4IH0sCiAgICAgICAgICAgICAgICAgICAgUyA9IG4oeCwgdGhpcy5hc3NldHNQYXRoLCB0aGlzLnBhdGgpOwogICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgIGRhdGFNYW5hZ2VyLmxvYWREYXRhKAogICAgICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChBKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIChrLmltZyA9IEEpLCB0aGlzLl9mb290YWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIChrLmltZyA9IHt9KSwgdGhpcy5fZm9vdGFnZUxvYWRlZCgpOwogICAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBrCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBjKHgsIGspIHsKICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZXNMb2FkZWRDYiA9IGs7CiAgICAgICAgICAgICAgICAgIHZhciBTLAogICAgICAgICAgICAgICAgICAgIEEgPSB4Lmxlbmd0aDsKICAgICAgICAgICAgICAgICAgZm9yIChTID0gMDsgUyA8IEE7IFMgKz0gMSkKICAgICAgICAgICAgICAgICAgICB4W1NdLmxheWVycyB8fAogICAgICAgICAgICAgICAgICAgICAgKCF4W1NdLnQgfHwgeFtTXS50ID09PSAic2VxIgogICAgICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy50b3RhbEltYWdlcyArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlcy5wdXNoKHRoaXMuX2NyZWF0ZUltYWdlRGF0YSh4W1NdKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogeFtTXS50ID09PSAzICYmCiAgICAgICAgICAgICAgICAgICAgICAgICgodGhpcy50b3RhbEZvb3RhZ2VzICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzLnB1c2godGhpcy5jcmVhdGVGb290YWdlRGF0YSh4W1NdKSkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHUoeCkgewogICAgICAgICAgICAgICAgICB0aGlzLnBhdGggPSB4IHx8ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZCh4KSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXRzUGF0aCA9IHggfHwgIiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBFKHgpIHsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDAsIFMgPSB0aGlzLmltYWdlcy5sZW5ndGg7IGsgPCBTOykgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlc1trXS5hc3NldERhdGEgPT09IHgpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXNba10uaW1nOwogICAgICAgICAgICAgICAgICAgIGsgKz0gMTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGIoKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLmltYWdlc0xvYWRlZENiID0gbnVsbCksICh0aGlzLmltYWdlcy5sZW5ndGggPSAwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvdGFsSW1hZ2VzID09PSB0aGlzLmxvYWRlZEFzc2V0czsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFIoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvdGFsRm9vdGFnZXMgPT09IHRoaXMubG9hZGVkRm9vdGFnZXNDb3VudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFQoeCwgaykgewogICAgICAgICAgICAgICAgICB4ID09PSAic3ZnIgogICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLl9lbGVtZW50SGVscGVyID0gayksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fY3JlYXRlSW1hZ2VEYXRhID0gdGhpcy5jcmVhdGVJbWFnZURhdGEuYmluZCh0aGlzKSkpCiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5fY3JlYXRlSW1hZ2VEYXRhID0gdGhpcy5jcmVhdGVJbWdEYXRhLmJpbmQodGhpcykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gTSgpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuX2ltYWdlTG9hZGVkID0gdC5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fZm9vdGFnZUxvYWRlZCA9IHIuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGVzdEltYWdlTG9hZGVkID0gaS5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5jcmVhdGVGb290YWdlRGF0YSA9IGwuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXNzZXRzUGF0aCA9ICIiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wYXRoID0gIiIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsSW1hZ2VzID0gMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudG90YWxGb290YWdlcyA9IDApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvYWRlZEFzc2V0cyA9IDApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQgPSAwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5pbWFnZXNMb2FkZWRDYiA9IG51bGwpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmltYWdlcyA9IFtdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChNLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICBsb2FkQXNzZXRzOiBjLAogICAgICAgICAgICAgICAgICAgIHNldEFzc2V0c1BhdGg6IGQsCiAgICAgICAgICAgICAgICAgICAgc2V0UGF0aDogdSwKICAgICAgICAgICAgICAgICAgICBsb2FkZWRJbWFnZXM6IFAsCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkRm9vdGFnZXM6IFIsCiAgICAgICAgICAgICAgICAgICAgZGVzdHJveTogYiwKICAgICAgICAgICAgICAgICAgICBnZXRBc3NldDogRSwKICAgICAgICAgICAgICAgICAgICBjcmVhdGVJbWdEYXRhOiBvLAogICAgICAgICAgICAgICAgICAgIGNyZWF0ZUltYWdlRGF0YTogYSwKICAgICAgICAgICAgICAgICAgICBpbWFnZUxvYWRlZDogdCwKICAgICAgICAgICAgICAgICAgICBmb290YWdlTG9hZGVkOiByLAogICAgICAgICAgICAgICAgICAgIHNldENhY2hlVHlwZTogVCwKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIE0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gQmFzZUV2ZW50KCkgeyB9CiAgICAgICAgICAgIEJhc2VFdmVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50OiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Nic1t0XSkKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IHRoaXMuX2Nic1t0XSwgaSA9IDA7IGkgPCBuLmxlbmd0aDsgaSArPSAxKQogICAgICAgICAgICAgICAgICAgIG5baV0ocik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdGhpcy5fY2JzW3RdIHx8ICh0aGlzLl9jYnNbdF0gPSBbXSksCiAgICAgICAgICAgICAgICAgIHRoaXMuX2Nic1t0XS5wdXNoKHIpLAogICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHQsIHIpOwogICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgaWYgKCFyKSB0aGlzLl9jYnNbdF0gPSBudWxsOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY2JzW3RdKSB7CiAgICAgICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwLCBpID0gdGhpcy5fY2JzW3RdLmxlbmd0aDsgbiA8IGk7KQogICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nic1t0XVtuXSA9PT0gciAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2Nic1t0XS5zcGxpY2UobiwgMSksIChuIC09IDEpLCAoaSAtPSAxKSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSAxKTsKICAgICAgICAgICAgICAgICAgdGhpcy5fY2JzW3RdLmxlbmd0aCB8fCAodGhpcy5fY2JzW3RdID0gbnVsbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdmFyIG1hcmtlclBhcnNlciA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gZSh0KSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB2YXIgciA9IHQuc3BsaXQoYFxyCmApLAogICAgICAgICAgICAgICAgICBuID0ge30sCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEgPSAwLAogICAgICAgICAgICAgICAgICBvID0gMDsKICAgICAgICAgICAgICAgICAgbyA8IHIubGVuZ3RoOwogICAgICAgICAgICAgICAgICBvICs9IDEKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgKGkgPSByW29dLnNwbGl0KCI6IikpLAogICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoID09PSAyICYmICgobltpWzBdXSA9IGlbMV0udHJpbSgpKSwgKGEgKz0gMSkpOwogICAgICAgICAgICAgICAgaWYgKGEgPT09IDApIHRocm93IG5ldyBFcnJvcigpOwogICAgICAgICAgICAgICAgcmV0dXJuIG47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgciA9IFtdLCBuID0gMDsgbiA8IHQubGVuZ3RoOyBuICs9IDEpIHsKICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0W25dLAogICAgICAgICAgICAgICAgICAgIGEgPSB7IHRpbWU6IGkudG0sIGR1cmF0aW9uOiBpLmRyIH07CiAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgYS5wYXlsb2FkID0gSlNPTi5wYXJzZSh0W25dLmNtKTsKICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgIGEucGF5bG9hZCA9IGUodFtuXS5jbSk7CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgICAgICAgICBhLnBheWxvYWQgPSB7IG5hbWU6IHRbbl0uY20gfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgci5wdXNoKGEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBQcm9qZWN0SW50ZXJmYWNlID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUodCkgewogICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9ucy5wdXNoKHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdChyKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IDAsIGkgPSB0aGlzLmNvbXBvc2l0aW9ucy5sZW5ndGg7IG4gPCBpOykgewogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5kYXRhICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9zaXRpb25zW25dLmRhdGEubm0gPT09IHIKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5wcmVwYXJlRnJhbWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5kYXRhLnh0ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb3NpdGlvbnNbbl0ucHJlcGFyZUZyYW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUKICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9zaXRpb25zW25dLmNvbXBJbnRlcmZhY2UKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIG4gKz0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAodC5jb21wb3NpdGlvbnMgPSBbXSksCiAgICAgICAgICAgICAgICAgICAgKHQuY3VycmVudEZyYW1lID0gMCksCiAgICAgICAgICAgICAgICAgICAgKHQucmVnaXN0ZXJDb21wb3NpdGlvbiA9IGUpLAogICAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICByZW5kZXJlcnMgPSB7fSwKICAgICAgICAgICAgICByZWdpc3RlclJlbmRlcmVyID0gZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICAgICAgICAgIHJlbmRlcmVyc1t0XSA9IHI7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UmVuZGVyZXIoZSkgewogICAgICAgICAgICAgIHJldHVybiByZW5kZXJlcnNbZV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZFJlbmRlcmVyKCkgewogICAgICAgICAgICAgIGlmIChyZW5kZXJlcnMuY2FudmFzKSByZXR1cm4gImNhbnZhcyI7CiAgICAgICAgICAgICAgZm9yICh2YXIgZSBpbiByZW5kZXJlcnMpIGlmIChyZW5kZXJlcnNbZV0pIHJldHVybiBlOwogICAgICAgICAgICAgIHJldHVybiAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBfdHlwZW9mJDQoZSkgewogICAgICAgICAgICAgICJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgID8gKF90eXBlb2YkNCA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICA6IChfdHlwZW9mJDQgPSBmdW5jdGlvbiAocikgewogICAgICAgICAgICAgICAgICAgIHJldHVybiByICYmCiAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgU3ltYm9sID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAgICAgICAgIHIuY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJgogICAgICAgICAgICAgICAgICAgICAgciAhPT0gU3ltYm9sLnByb3RvdHlwZQogICAgICAgICAgICAgICAgICAgICAgPyAic3ltYm9sIgogICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgcjsKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICBfdHlwZW9mJDQoZSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBBbmltYXRpb25JdGVtID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICh0aGlzLl9jYnMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5uYW1lID0gIiIpLAogICAgICAgICAgICAgICAgKHRoaXMucGF0aCA9ICIiKSwKICAgICAgICAgICAgICAgICh0aGlzLmlzTG9hZGVkID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudEZyYW1lID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50UmF3RnJhbWUgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsRnJhbWVzID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5mcmFtZVJhdGUgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lTXVsdCA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMucGxheVNwZWVkID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5wbGF5RGlyZWN0aW9uID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5wbGF5Q291bnQgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGlvbkRhdGEgPSB7fSksCiAgICAgICAgICAgICAgICAodGhpcy5hc3NldHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5pc1BhdXNlZCA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLmF1dG9wbGF5ID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMubG9vcCA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyID0gbnVsbCksCiAgICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JRCA9IGNyZWF0ZUVsZW1lbnRJRCgpKSwKICAgICAgICAgICAgICAgICh0aGlzLmFzc2V0c1BhdGggPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy50aW1lQ29tcGxldGVkID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5zZWdtZW50UG9zID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5pc1N1YmZyYW1lRW5hYmxlZCA9IGdldFN1YmZyYW1lRW5hYmxlZCgpKSwKICAgICAgICAgICAgICAgICh0aGlzLnNlZ21lbnRzID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuX2lkbGUgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5fY29tcGxldGVkTG9vcCA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb2plY3RJbnRlcmZhY2UgPSBQcm9qZWN0SW50ZXJmYWNlKCkpLAogICAgICAgICAgICAgICAgKHRoaXMuaW1hZ2VQcmVsb2FkZXIgPSBuZXcgSW1hZ2VQcmVsb2FkZXIoKSksCiAgICAgICAgICAgICAgICAodGhpcy5hdWRpb0NvbnRyb2xsZXIgPSBhdWRpb0NvbnRyb2xsZXJGYWN0b3J5KCkpLAogICAgICAgICAgICAgICAgKHRoaXMubWFya2VycyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbmZpZ0FuaW1hdGlvbiA9IHRoaXMuY29uZmlnQW5pbWF0aW9uLmJpbmQodGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMub25TZXR1cEVycm9yID0gdGhpcy5vblNldHVwRXJyb3IuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5vblNlZ21lbnRDb21wbGV0ZSA9IHRoaXMub25TZWdtZW50Q29tcGxldGUuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5kcmF3bkZyYW1lRXZlbnQgPSBuZXcgQk1FbnRlckZyYW1lRXZlbnQoCiAgICAgICAgICAgICAgICAgICJkcmF3bkZyYW1lIiwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy5leHByZXNzaW9uc1BsdWdpbiA9IGdldEV4cHJlc3Npb25zUGx1Z2luKCkpOwogICAgICAgICAgICB9OwogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0Jhc2VFdmVudF0sIEFuaW1hdGlvbkl0ZW0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRQYXJhbXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgKGUud3JhcHBlciB8fCBlLmNvbnRhaW5lcikgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMud3JhcHBlciA9IGUud3JhcHBlciB8fCBlLmNvbnRhaW5lcik7CiAgICAgICAgICAgICAgICB2YXIgdCA9ICJzdmciOwogICAgICAgICAgICAgICAgZS5hbmltVHlwZSA/ICh0ID0gZS5hbmltVHlwZSkgOiBlLnJlbmRlcmVyICYmICh0ID0gZS5yZW5kZXJlcik7CiAgICAgICAgICAgICAgICB2YXIgciA9IGdldFJlbmRlcmVyKHQpOwogICAgICAgICAgICAgICAgKHRoaXMucmVuZGVyZXIgPSBuZXcgcih0aGlzLCBlLnJlbmRlcmVyU2V0dGluZ3MpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZWxvYWRlci5zZXRDYWNoZVR5cGUoCiAgICAgICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZGVmcwogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb2plY3RJbnRlcmZhY2UodGhpcy5wcm9qZWN0SW50ZXJmYWNlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYW5pbVR5cGUgPSB0KSwKICAgICAgICAgICAgICAgICAgZS5sb29wID09PSAiIiB8fAogICAgICAgICAgICAgICAgICAgIGUubG9vcCA9PT0gbnVsbCB8fAogICAgICAgICAgICAgICAgICAgIGUubG9vcCA9PT0gdm9pZCAwIHx8CiAgICAgICAgICAgICAgICAgICAgZS5sb29wID09PSAhMAogICAgICAgICAgICAgICAgICAgID8gKHRoaXMubG9vcCA9ICEwKQogICAgICAgICAgICAgICAgICAgIDogZS5sb29wID09PSAhMQogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5sb29wID0gITEpCiAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmxvb3AgPSBwYXJzZUludChlLmxvb3AsIDEwKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmF1dG9wbGF5ID0gImF1dG9wbGF5IiBpbiBlID8gZS5hdXRvcGxheSA6ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubmFtZSA9IGUubmFtZSA/IGUubmFtZSA6ICIiKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXV0b2xvYWRTZWdtZW50cyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICJhdXRvbG9hZFNlZ21lbnRzIgogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgPyBlLmF1dG9sb2FkU2VnbWVudHMKICAgICAgICAgICAgICAgICAgICA6ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXNzZXRzUGF0aCA9IGUuYXNzZXRzUGF0aCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmluaXRpYWxTZWdtZW50ID0gZS5pbml0aWFsU2VnbWVudCksCiAgICAgICAgICAgICAgICAgIGUuYXVkaW9GYWN0b3J5ICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9Db250cm9sbGVyLnNldEF1ZGlvRmFjdG9yeShlLmF1ZGlvRmFjdG9yeSksCiAgICAgICAgICAgICAgICAgIGUuYW5pbWF0aW9uRGF0YQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZXR1cEFuaW1hdGlvbihlLmFuaW1hdGlvbkRhdGEpCiAgICAgICAgICAgICAgICAgICAgOiBlLnBhdGggJiYKICAgICAgICAgICAgICAgICAgICAoZS5wYXRoLmxhc3RJbmRleE9mKCJcXCIpICE9PSAtMQogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5wYXRoID0gZS5wYXRoLnN1YnN0cigKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgZS5wYXRoLmxhc3RJbmRleE9mKCJcXCIpICsgMQogICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMucGF0aCA9IGUucGF0aC5zdWJzdHIoCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGUucGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMQogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maWxlTmFtZSA9IGUucGF0aC5zdWJzdHIoCiAgICAgICAgICAgICAgICAgICAgICAgIGUucGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMQogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maWxlTmFtZSA9IHRoaXMuZmlsZU5hbWUuc3Vic3RyKAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVOYW1lLmxhc3RJbmRleE9mKCIuanNvbiIpCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIGRhdGFNYW5hZ2VyLmxvYWRBbmltYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgIGUucGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdBbmltYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZXR1cEVycm9yCiAgICAgICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUub25TZXR1cEVycm9yID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJkYXRhX2ZhaWxlZCIpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXR1cEFuaW1hdGlvbiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBkYXRhTWFuYWdlci5jb21wbGV0ZUFuaW1hdGlvbihlLCB0aGlzLmNvbmZpZ0FuaW1hdGlvbik7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNldERhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdCAmJiBfdHlwZW9mJDQodCkgIT09ICJvYmplY3QiICYmICh0ID0gSlNPTi5wYXJzZSh0KSk7CiAgICAgICAgICAgICAgICB2YXIgciA9IHsgd3JhcHBlcjogZSwgYW5pbWF0aW9uRGF0YTogdCB9LAogICAgICAgICAgICAgICAgICBuID0gZS5hdHRyaWJ1dGVzOwogICAgICAgICAgICAgICAgKHIucGF0aCA9IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW1hdGlvbi1wYXRoIikKICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltYXRpb24tcGF0aCIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcGF0aCIpCiAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1wYXRoIikudmFsdWUKICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS1wYXRoIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXBhdGgiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgOiAiIiksCiAgICAgICAgICAgICAgICAgIChyLmFuaW1UeXBlID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS10eXBlIikKICAgICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tdHlwZSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS10eXBlIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tdHlwZSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS10eXBlIikKICAgICAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiYm0tdHlwZSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcmVuZGVyZXIiKQogICAgICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcmVuZGVyZXIiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImJtLXJlbmRlcmVyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXJlbmRlcmVyIikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2V0UmVnaXN0ZXJlZFJlbmRlcmVyKCkgfHwgImNhbnZhcyIpOwogICAgICAgICAgICAgICAgdmFyIGkgPSBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltLWxvb3AiKQogICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tbG9vcCIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tbG9vcCIpCiAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1sb29wIikudmFsdWUKICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS1sb29wIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLWxvb3AiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgOiAiIjsKICAgICAgICAgICAgICAgIGkgPT09ICJmYWxzZSIKICAgICAgICAgICAgICAgICAgPyAoci5sb29wID0gITEpCiAgICAgICAgICAgICAgICAgIDogaSA9PT0gInRydWUiCiAgICAgICAgICAgICAgICAgICAgPyAoci5sb29wID0gITApCiAgICAgICAgICAgICAgICAgICAgOiBpICE9PSAiIiAmJiAoci5sb29wID0gcGFyc2VJbnQoaSwgMTApKTsKICAgICAgICAgICAgICAgIHZhciBhID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS1hdXRvcGxheSIpCiAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS1hdXRvcGxheSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tYXV0b3BsYXkiKQogICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tYXV0b3BsYXkiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImJtLWF1dG9wbGF5IikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLWF1dG9wbGF5IikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgIDogITA7CiAgICAgICAgICAgICAgICAoci5hdXRvcGxheSA9IGEgIT09ICJmYWxzZSIpLAogICAgICAgICAgICAgICAgICAoci5uYW1lID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtbmFtZSIpCiAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1uYW1lIikudmFsdWUKICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWJtLW5hbWUiKQogICAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1uYW1lIikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImJtLW5hbWUiKQogICAgICAgICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJibS1uYW1lIikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgOiAiIik7CiAgICAgICAgICAgICAgICB2YXIgbyA9IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltLXByZXJlbmRlciIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWJtLXByZXJlbmRlciIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiYm0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXByZXJlbmRlciIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICA6ICIiOwogICAgICAgICAgICAgICAgbyA9PT0gImZhbHNlIiAmJiAoci5wcmVyZW5kZXIgPSAhMSksCiAgICAgICAgICAgICAgICAgIHIucGF0aCA/IHRoaXMuc2V0UGFyYW1zKHIpIDogdGhpcy50cmlnZ2VyKCJkZXN0cm95Iik7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmluY2x1ZGVMYXllcnMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZS5vcCA+IHRoaXMuYW5pbWF0aW9uRGF0YS5vcCAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuYW5pbWF0aW9uRGF0YS5vcCA9IGUub3ApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsRnJhbWVzID0gTWF0aC5mbG9vcigKICAgICAgICAgICAgICAgICAgICAgIGUub3AgLSB0aGlzLmFuaW1hdGlvbkRhdGEuaXAKICAgICAgICAgICAgICAgICAgICApKSk7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuYW5pbWF0aW9uRGF0YS5sYXllcnMsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0Lmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSA9IGUubGF5ZXJzLAogICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICBvID0gaS5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKGEgPSAwOyBhIDwgbzsgYSArPSAxKQogICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjspIHsKICAgICAgICAgICAgICAgICAgICBpZiAodFtyXS5pZCA9PT0gaVthXS5pZCkgewogICAgICAgICAgICAgICAgICAgICAgdFtyXSA9IGlbYV07CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgoZS5jaGFycyB8fCBlLmZvbnRzKSAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuYWRkQ2hhcnMoZS5jaGFycyksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuYWRkRm9udHMoCiAgICAgICAgICAgICAgICAgICAgICAgIGUuZm9udHMsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuZ2xvYmFsRGF0YS5kZWZzCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICBlLmFzc2V0cykKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgZm9yIChuID0gZS5hc3NldHMubGVuZ3RoLCByID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuYXNzZXRzLnB1c2goZS5hc3NldHNbcl0pOwogICAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uRGF0YS5fX2NvbXBsZXRlID0gITEpLAogICAgICAgICAgICAgICAgICBkYXRhTWFuYWdlci5jb21wbGV0ZUFuaW1hdGlvbigKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlZ21lbnRDb21wbGV0ZQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5vblNlZ21lbnRDb21wbGV0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEgPSBlOwogICAgICAgICAgICAgICAgdmFyIHQgPSBnZXRFeHByZXNzaW9uc1BsdWdpbigpOwogICAgICAgICAgICAgICAgdCAmJiB0LmluaXRFeHByZXNzaW9ucyh0aGlzKSwgdGhpcy5sb2FkTmV4dFNlZ21lbnQoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUubG9hZE5leHRTZWdtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmFuaW1hdGlvbkRhdGEuc2VnbWVudHM7CiAgICAgICAgICAgICAgICBpZiAoIWUgfHwgZS5sZW5ndGggPT09IDAgfHwgIXRoaXMuYXV0b2xvYWRTZWdtZW50cykgewogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRhdGFfcmVhZHkiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy50aW1lQ29tcGxldGVkID0gdGhpcy50b3RhbEZyYW1lcyk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciB0ID0gZS5zaGlmdCgpOwogICAgICAgICAgICAgICAgdGhpcy50aW1lQ29tcGxldGVkID0gdC50aW1lICogdGhpcy5mcmFtZVJhdGU7CiAgICAgICAgICAgICAgICB2YXIgciA9CiAgICAgICAgICAgICAgICAgIHRoaXMucGF0aCArIHRoaXMuZmlsZU5hbWUgKyAiXyIgKyB0aGlzLnNlZ21lbnRQb3MgKyAiLmpzb24iOwogICAgICAgICAgICAgICAgKHRoaXMuc2VnbWVudFBvcyArPSAxKSwKICAgICAgICAgICAgICAgICAgZGF0YU1hbmFnZXIubG9hZERhdGEoCiAgICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluY2x1ZGVMYXllcnMuYmluZCh0aGlzKSwKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRhdGFfZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmxvYWRTZWdtZW50cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5hbmltYXRpb25EYXRhLnNlZ21lbnRzOwogICAgICAgICAgICAgICAgZSB8fCAodGhpcy50aW1lQ29tcGxldGVkID0gdGhpcy50b3RhbEZyYW1lcyksCiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZE5leHRTZWdtZW50KCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmltYWdlc0xvYWRlZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigibG9hZGVkX2ltYWdlcyIpLCB0aGlzLmNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnByZWxvYWRJbWFnZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmltYWdlUHJlbG9hZGVyLnNldEFzc2V0c1BhdGgodGhpcy5hc3NldHNQYXRoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZWxvYWRlci5zZXRQYXRoKHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmVsb2FkZXIubG9hZEFzc2V0cygKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuYXNzZXRzLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzTG9hZGVkLmJpbmQodGhpcykKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuY29uZmlnQW5pbWF0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVyKQogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGlvbkRhdGEgPSBlKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNlZ21lbnQKICAgICAgICAgICAgICAgICAgICAgICAgPyAoKHRoaXMudG90YWxGcmFtZXMgPSBNYXRoLmZsb29yKAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNlZ21lbnRbMV0gLSB0aGlzLmluaXRpYWxTZWdtZW50WzBdCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSBNYXRoLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsU2VnbWVudFswXQogICAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy50b3RhbEZyYW1lcyA9IE1hdGguZmxvb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLm9wIC0gdGhpcy5hbmltYXRpb25EYXRhLmlwCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSBNYXRoLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLmlwCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5jb25maWdBbmltYXRpb24oZSksCiAgICAgICAgICAgICAgICAgICAgICBlLmFzc2V0cyB8fCAoZS5hc3NldHMgPSBbXSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5hc3NldHMgPSB0aGlzLmFuaW1hdGlvbkRhdGEuYXNzZXRzKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lUmF0ZSA9IHRoaXMuYW5pbWF0aW9uRGF0YS5mciksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZU11bHQgPSB0aGlzLmFuaW1hdGlvbkRhdGEuZnIgLyAxZTMpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZWFyY2hFeHRyYUNvbXBvc2l0aW9ucyhlLmFzc2V0cyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5tYXJrZXJzID0gbWFya2VyUGFyc2VyKGUubWFya2VycyB8fCBbXSkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJjb25maWdfcmVhZHkiKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlbG9hZEltYWdlcygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkU2VnbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYUZyYW1lTW9kaWZpZXIoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FpdEZvckZvbnRzTG9hZGVkKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUGF1c2VkICYmIHRoaXMuYXVkaW9Db250cm9sbGVyLnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJDb25maWdFcnJvcih0KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS53YWl0Rm9yRm9udHNMb2FkZWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuaXNMb2FkZWQKICAgICAgICAgICAgICAgICAgICA/IHRoaXMuY2hlY2tMb2FkZWQoKQogICAgICAgICAgICAgICAgICAgIDogc2V0VGltZW91dCh0aGlzLndhaXRGb3JGb250c0xvYWRlZC5iaW5kKHRoaXMpLCAyMCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5jaGVja0xvYWRlZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgIXRoaXMuaXNMb2FkZWQgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmlzTG9hZGVkICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmltYWdlUHJlbG9hZGVyLmxvYWRlZEltYWdlcygpIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXJlclR5cGUgIT09ICJjYW52YXMiKSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUHJlbG9hZGVyLmxvYWRlZEZvb3RhZ2VzKCkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gITA7CiAgICAgICAgICAgICAgICAgIHZhciBlID0gZ2V0RXhwcmVzc2lvbnNQbHVnaW4oKTsKICAgICAgICAgICAgICAgICAgZSAmJiBlLmluaXRFeHByZXNzaW9ucyh0aGlzKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmluaXRJdGVtcygpLAogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoCiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiRE9NTG9hZGVkIik7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmdvdG9GcmFtZSgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b3BsYXkgJiYgdGhpcy5wbGF5KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnJlc2l6ZSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IHR5cGVvZiBlID09ICJudW1iZXIiID8gZSA6IHZvaWQgMCwKICAgICAgICAgICAgICAgICAgbiA9IHR5cGVvZiB0ID09ICJudW1iZXIiID8gdCA6IHZvaWQgMDsKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIudXBkYXRlQ29udGFpbmVyU2l6ZShyLCBuKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0U3ViZnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5pc1N1YmZyYW1lRW5hYmxlZCA9ICEhZTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ290b0ZyYW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudEZyYW1lID0gdGhpcy5pc1N1YmZyYW1lRW5hYmxlZAogICAgICAgICAgICAgICAgICA/IHRoaXMuY3VycmVudFJhd0ZyYW1lCiAgICAgICAgICAgICAgICAgIDogfn50aGlzLmN1cnJlbnRSYXdGcmFtZSksCiAgICAgICAgICAgICAgICAgIHRoaXMudGltZUNvbXBsZXRlZCAhPT0gdGhpcy50b3RhbEZyYW1lcyAmJgogICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA+IHRoaXMudGltZUNvbXBsZXRlZCAmJgogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50RnJhbWUgPSB0aGlzLnRpbWVDb21wbGV0ZWQpLAogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImVudGVyRnJhbWUiKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGcmFtZSgpLAogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRyYXduRnJhbWUiKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLmlzTG9hZGVkID09PSAhMSB8fCAhdGhpcy5yZW5kZXJlcikpCiAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc1BsdWdpbiAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc1BsdWdpbi5yZXNldEZyYW1lKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbmRlckZyYW1lKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSArIHRoaXMuZmlyc3RGcmFtZQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclJlbmRlckZyYW1lRXJyb3IoZSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLmlzUGF1c2VkID09PSAhMCAmJgogICAgICAgICAgICAgICAgICAgICgodGhpcy5pc1BhdXNlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiX3BsYXkiKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9Db250cm9sbGVyLnJlc3VtZSgpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5faWRsZSAmJgogICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLl9pZGxlID0gITEpLCB0aGlzLnRyaWdnZXIoIl9hY3RpdmUiKSkpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucGF1c2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgKGUgJiYgdGhpcy5uYW1lICE9PSBlKSB8fAogICAgICAgICAgICAgICAgICAodGhpcy5pc1BhdXNlZCA9PT0gITEgJiYKICAgICAgICAgICAgICAgICAgICAoKHRoaXMuaXNQYXVzZWQgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoIl9wYXVzZSIpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lkbGUgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoIl9pZGxlIiksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvQ29udHJvbGxlci5wYXVzZSgpKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnRvZ2dsZVBhdXNlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXNQYXVzZWQgPT09ICEwID8gdGhpcy5wbGF5KCkgOiB0aGlzLnBhdXNlKCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwKICAgICAgICAgICAgICAgICAgKHRoaXMucGF1c2UoKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wbGF5Q291bnQgPSAwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fY29tcGxldGVkTG9vcCA9ICExKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKDApKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0TWFya2VyRGF0YSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciB0LCByID0gMDsgciA8IHRoaXMubWFya2Vycy5sZW5ndGg7IHIgKz0gMSkKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgodCA9IHRoaXMubWFya2Vyc1tyXSksIHQucGF5bG9hZCAmJiB0LnBheWxvYWQubmFtZSA9PT0gZSkKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0OwogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdvVG9BbmRTdG9wID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgICAgIGlmICghKHIgJiYgdGhpcy5uYW1lICE9PSByKSkgewogICAgICAgICAgICAgICAgICB2YXIgbiA9IE51bWJlcihlKTsKICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKG4pKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0aGlzLmdldE1hcmtlckRhdGEoZSk7CiAgICAgICAgICAgICAgICAgICAgaSAmJiB0aGlzLmdvVG9BbmRTdG9wKGkudGltZSwgITApOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUoZSkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZShlICogdGhpcy5mcmFtZU1vZGlmaWVyKTsKICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5nb1RvQW5kUGxheSA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgICAgICAgICBpZiAoIShyICYmIHRoaXMubmFtZSAhPT0gcikpIHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSBOdW1iZXIoZSk7CiAgICAgICAgICAgICAgICAgIGlmIChpc05hTihuKSkgewogICAgICAgICAgICAgICAgICAgIHZhciBpID0gdGhpcy5nZXRNYXJrZXJEYXRhKGUpOwogICAgICAgICAgICAgICAgICAgIGkgJiYKICAgICAgICAgICAgICAgICAgICAgIChpLmR1cmF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5wbGF5U2VnbWVudHMoW2kudGltZSwgaS50aW1lICsgaS5kdXJhdGlvbl0sICEwKQogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZ29Ub0FuZFN0b3AoaS50aW1lLCAhMCkpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5nb1RvQW5kU3RvcChuLCB0LCByKTsKICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmFkdmFuY2VUaW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGlmICghKHRoaXMuaXNQYXVzZWQgPT09ICEwIHx8IHRoaXMuaXNMb2FkZWQgPT09ICExKSkgewogICAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuY3VycmVudFJhd0ZyYW1lICsgZSAqIHRoaXMuZnJhbWVNb2RpZmllciwKICAgICAgICAgICAgICAgICAgICByID0gITE7CiAgICAgICAgICAgICAgICAgIHQgPj0gdGhpcy50b3RhbEZyYW1lcyAtIDEgJiYgdGhpcy5mcmFtZU1vZGlmaWVyID4gMAogICAgICAgICAgICAgICAgICAgID8gIXRoaXMubG9vcCB8fCB0aGlzLnBsYXlDb3VudCA9PT0gdGhpcy5sb29wCiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuY2hlY2tTZWdtZW50cygKICAgICAgICAgICAgICAgICAgICAgICAgdCA+IHRoaXMudG90YWxGcmFtZXMgPyB0ICUgdGhpcy50b3RhbEZyYW1lcyA6IDAKICAgICAgICAgICAgICAgICAgICAgICkgfHwgKChyID0gITApLCAodCA9IHRoaXMudG90YWxGcmFtZXMgLSAxKSkKICAgICAgICAgICAgICAgICAgICAgIDogdCA+PSB0aGlzLnRvdGFsRnJhbWVzCiAgICAgICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLnBsYXlDb3VudCArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2VnbWVudHModCAlIHRoaXMudG90YWxGcmFtZXMpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUodCAlIHRoaXMudG90YWxGcmFtZXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NvbXBsZXRlZExvb3AgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImxvb3BDb21wbGV0ZSIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKHQpCiAgICAgICAgICAgICAgICAgICAgOiB0IDwgMAogICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNoZWNrU2VnbWVudHModCAlIHRoaXMudG90YWxGcmFtZXMpIHx8CiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sb29wICYmICEodGhpcy5wbGF5Q291bnQtLSA8PSAwICYmIHRoaXMubG9vcCAhPT0gITApCiAgICAgICAgICAgICAgICAgICAgICAgID8gKHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbEZyYW1lcyArICh0ICUgdGhpcy50b3RhbEZyYW1lcykKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wbGV0ZWRMb29wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudHJpZ2dlcigibG9vcENvbXBsZXRlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMuX2NvbXBsZXRlZExvb3AgPSAhMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKChyID0gITApLCAodCA9IDApKSkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSh0KSwKICAgICAgICAgICAgICAgICAgICByICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUodCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdXNlKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImNvbXBsZXRlIikpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5hZGp1c3RTZWdtZW50ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICh0aGlzLnBsYXlDb3VudCA9IDApLAogICAgICAgICAgICAgICAgICBlWzFdIDwgZVswXQogICAgICAgICAgICAgICAgICAgID8gKHRoaXMuZnJhbWVNb2RpZmllciA+IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnBsYXlTcGVlZCA8IDAKICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNldFNwZWVkKC10aGlzLnBsYXlTcGVlZCkKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNldERpcmVjdGlvbigtMSkpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudG90YWxGcmFtZXMgPSBlWzBdIC0gZVsxXSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy50aW1lQ29tcGxldGVkID0gdGhpcy50b3RhbEZyYW1lcyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maXJzdEZyYW1lID0gZVsxXSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsRnJhbWVzIC0gMC4wMDEgLSB0CiAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgIDogZVsxXSA+IGVbMF0gJiYKICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZU1vZGlmaWVyIDwgMCAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGxheVNwZWVkIDwgMAogICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2V0U3BlZWQoLXRoaXMucGxheVNwZWVkKQogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc2V0RGlyZWN0aW9uKDEpKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsRnJhbWVzID0gZVsxXSAtIGVbMF0pLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGltZUNvbXBsZXRlZCA9IHRoaXMudG90YWxGcmFtZXMpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmlyc3RGcmFtZSA9IGVbMF0pLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSgwLjAwMSArIHQpKSwKICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJzZWdtZW50U3RhcnQiKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0U2VnbWVudCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IC0xOwogICAgICAgICAgICAgICAgdGhpcy5pc1BhdXNlZCAmJgogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50UmF3RnJhbWUgKyB0aGlzLmZpcnN0RnJhbWUgPCBlCiAgICAgICAgICAgICAgICAgICAgPyAociA9IGUpCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmN1cnJlbnRSYXdGcmFtZSArIHRoaXMuZmlyc3RGcmFtZSA+IHQgJiYKICAgICAgICAgICAgICAgICAgICAociA9IHQgLSBlKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSBlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudG90YWxGcmFtZXMgPSB0IC0gZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRpbWVDb21wbGV0ZWQgPSB0aGlzLnRvdGFsRnJhbWVzKSwKICAgICAgICAgICAgICAgICAgciAhPT0gLTEgJiYgdGhpcy5nb1RvQW5kU3RvcChyLCAhMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnBsYXlTZWdtZW50cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICh0ICYmICh0aGlzLnNlZ21lbnRzLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgIF90eXBlb2YkNChlWzBdKSA9PT0gIm9iamVjdCIpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB0aGlzLnNlZ21lbnRzLnB1c2goZVtyXSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5zZWdtZW50cy5wdXNoKGUpOwogICAgICAgICAgICAgICAgdGhpcy5zZWdtZW50cy5sZW5ndGggJiYKICAgICAgICAgICAgICAgICAgdCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmFkanVzdFNlZ21lbnQodGhpcy5zZWdtZW50cy5zaGlmdCgpLCAwKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pc1BhdXNlZCAmJiB0aGlzLnBsYXkoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucmVzZXRTZWdtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5zZWdtZW50cy5sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZWdtZW50cy5wdXNoKFsKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuaXAsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLm9wLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgZSAmJiB0aGlzLmNoZWNrU2VnbWVudHMoMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmNoZWNrU2VnbWVudHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VnbWVudHMubGVuZ3RoCiAgICAgICAgICAgICAgICAgID8gKHRoaXMuYWRqdXN0U2VnbWVudCh0aGlzLnNlZ21lbnRzLnNoaWZ0KCksIGUpLCAhMCkKICAgICAgICAgICAgICAgICAgOiAhMTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8CiAgICAgICAgICAgICAgICAgICF0aGlzLnJlbmRlcmVyIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyLmRlc3Ryb3koKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUHJlbG9hZGVyLmRlc3Ryb3koKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRlc3Ryb3kiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fY2JzID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub25FbnRlckZyYW1lID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub25Mb29wQ29tcGxldGUgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vbkNvbXBsZXRlID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub25TZWdtZW50U3RhcnQgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vbkRlc3Ryb3kgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlciA9IG51bGwpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmV4cHJlc3Npb25zUGx1Z2luID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaW1hZ2VQcmVsb2FkZXIgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wcm9qZWN0SW50ZXJmYWNlID0gbnVsbCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50UmF3RnJhbWUgPSBlKSwgdGhpcy5nb3RvRnJhbWUoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0U3BlZWQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgKHRoaXMucGxheVNwZWVkID0gZSksIHRoaXMudXBkYUZyYW1lTW9kaWZpZXIoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0RGlyZWN0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICh0aGlzLnBsYXlEaXJlY3Rpb24gPSBlIDwgMCA/IC0xIDogMSksIHRoaXMudXBkYUZyYW1lTW9kaWZpZXIoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0TG9vcCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLmxvb3AgPSBlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRWb2x1bWUgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgKHQgJiYgdGhpcy5uYW1lICE9PSB0KSB8fCB0aGlzLmF1ZGlvQ29udHJvbGxlci5zZXRWb2x1bWUoZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdldFZvbHVtZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmF1ZGlvQ29udHJvbGxlci5nZXRWb2x1bWUoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUubXV0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8IHRoaXMuYXVkaW9Db250cm9sbGVyLm11dGUoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUudW5tdXRlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwgdGhpcy5hdWRpb0NvbnRyb2xsZXIudW5tdXRlKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnVwZGFGcmFtZU1vZGlmaWVyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVNb2RpZmllciA9CiAgICAgICAgICAgICAgICAgIHRoaXMuZnJhbWVNdWx0ICogdGhpcy5wbGF5U3BlZWQgKiB0aGlzLnBsYXlEaXJlY3Rpb24pLAogICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvQ29udHJvbGxlci5zZXRSYXRlKAogICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVNwZWVkICogdGhpcy5wbGF5RGlyZWN0aW9uCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdldFBhdGggPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5nZXRBc3NldHNQYXRoID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gIiI7CiAgICAgICAgICAgICAgICBpZiAoZS5lKSB0ID0gZS5wOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5hc3NldHNQYXRoKSB7CiAgICAgICAgICAgICAgICAgIHZhciByID0gZS5wOwogICAgICAgICAgICAgICAgICByLmluZGV4T2YoImltYWdlcy8iKSAhPT0gLTEgJiYgKHIgPSByLnNwbGl0KCIvIilbMV0pLAogICAgICAgICAgICAgICAgICAgICh0ID0gdGhpcy5hc3NldHNQYXRoICsgcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgKHQgPSB0aGlzLnBhdGgpLCAodCArPSBlLnUgPyBlLnUgOiAiIiksICh0ICs9IGUucCk7CiAgICAgICAgICAgICAgICByZXR1cm4gdDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0QXNzZXREYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy5hc3NldHMubGVuZ3RoOyB0IDwgcjspIHsKICAgICAgICAgICAgICAgICAgaWYgKGUgPT09IHRoaXMuYXNzZXRzW3RdLmlkKSByZXR1cm4gdGhpcy5hc3NldHNbdF07CiAgICAgICAgICAgICAgICAgIHQgKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNob3cgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3coKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0RHVyYXRpb24gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGUgPyB0aGlzLnRvdGFsRnJhbWVzIDogdGhpcy50b3RhbEZyYW1lcyAvIHRoaXMuZnJhbWVSYXRlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS51cGRhdGVEb2N1bWVudERhdGEgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLnJlbmRlcmVyLmdldEVsZW1lbnRCeVBhdGgoZSk7CiAgICAgICAgICAgICAgICAgIG4udXBkYXRlRG9jdW1lbnREYXRhKHQsIHIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCB7IH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2JzICYmIHRoaXMuX2Nic1tlXSkKICAgICAgICAgICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW50ZXJGcmFtZSI6CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgKICAgICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJNRW50ZXJGcmFtZUV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbEZyYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lTW9kaWZpZXIKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImRyYXduRnJhbWUiOgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZHJhd25GcmFtZUV2ZW50LmN1cnJlbnRUaW1lID0gdGhpcy5jdXJyZW50RnJhbWUpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5kcmF3bkZyYW1lRXZlbnQudG90YWxUaW1lID0gdGhpcy50b3RhbEZyYW1lcyksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmRyYXduRnJhbWVFdmVudC5kaXJlY3Rpb24gPSB0aGlzLmZyYW1lTW9kaWZpZXIpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChlLCB0aGlzLmRyYXduRnJhbWVFdmVudCk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJsb29wQ29tcGxldGUiOgogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCTUNvbXBsZXRlTG9vcEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb29wLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGxheUNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJhbWVNdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjb21wbGV0ZSI6CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgKICAgICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJNQ29tcGxldGVFdmVudChlLCB0aGlzLmZyYW1lTXVsdCkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJzZWdtZW50U3RhcnQiOgogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCTVNlZ21lbnRTdGFydEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maXJzdEZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWxGcmFtZXMKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImRlc3Ryb3kiOgogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZSwgbmV3IEJNRGVzdHJveUV2ZW50KGUsIHRoaXMpKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChlKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZSA9PT0gImVudGVyRnJhbWUiICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25FbnRlckZyYW1lICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25FbnRlckZyYW1lLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICBuZXcgQk1FbnRlckZyYW1lRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsRnJhbWVzLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZU11bHQKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGUgPT09ICJsb29wQ29tcGxldGUiICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25Mb29wQ29tcGxldGUgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5vbkxvb3BDb21wbGV0ZS5jYWxsKAogICAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgICAgbmV3IEJNQ29tcGxldGVMb29wRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb29wLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lTXVsdAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgZSA9PT0gImNvbXBsZXRlIiAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uQ29tcGxldGUgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5vbkNvbXBsZXRlLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICBuZXcgQk1Db21wbGV0ZUV2ZW50KGUsIHRoaXMuZnJhbWVNdWx0KQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBlID09PSAic2VnbWVudFN0YXJ0IiAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uU2VnbWVudFN0YXJ0ICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25TZWdtZW50U3RhcnQuY2FsbCgKICAgICAgICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgICAgICAgIG5ldyBCTVNlZ21lbnRTdGFydEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyc3RGcmFtZSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWxGcmFtZXMKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGUgPT09ICJkZXN0cm95IiAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uRGVzdHJveSAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uRGVzdHJveS5jYWxsKHRoaXMsIG5ldyBCTURlc3Ryb3lFdmVudChlLCB0aGlzKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnRyaWdnZXJSZW5kZXJGcmFtZUVycm9yID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gbmV3IEJNUmVuZGVyRnJhbWVFcnJvckV2ZW50KGUsIHRoaXMuY3VycmVudEZyYW1lKTsKICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCJlcnJvciIsIHQpLAogICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IgJiYgdGhpcy5vbkVycm9yLmNhbGwodGhpcywgdCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnRyaWdnZXJDb25maWdFcnJvciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IG5ldyBCTUNvbmZpZ0Vycm9yRXZlbnQoZSwgdGhpcy5jdXJyZW50RnJhbWUpOwogICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoImVycm9yIiwgdCksCiAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvciAmJiB0aGlzLm9uRXJyb3IuY2FsbCh0aGlzLCB0KTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGFuaW1hdGlvbk1hbmFnZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0ge30sCiAgICAgICAgICAgICAgICB0ID0gW10sCiAgICAgICAgICAgICAgICByID0gMCwKICAgICAgICAgICAgICAgIG4gPSAwLAogICAgICAgICAgICAgICAgaSA9IDAsCiAgICAgICAgICAgICAgICBhID0gITAsCiAgICAgICAgICAgICAgICBvID0gITE7CiAgICAgICAgICAgICAgZnVuY3Rpb24gbChCKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciB6ID0gMCwgTiA9IEIudGFyZ2V0OyB6IDwgbjspCiAgICAgICAgICAgICAgICAgIHRbel0uYW5pbWF0aW9uID09PSBOICYmCiAgICAgICAgICAgICAgICAgICAgKHQuc3BsaWNlKHosIDEpLCAoeiAtPSAxKSwgKG4gLT0gMSksIE4uaXNQYXVzZWQgfHwgRSgpKSwKICAgICAgICAgICAgICAgICAgICAoeiArPSAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYyhCLCB6KSB7CiAgICAgICAgICAgICAgICBpZiAoIUIpIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgZm9yICh2YXIgTiA9IDA7IE4gPCBuOykgewogICAgICAgICAgICAgICAgICBpZiAodFtOXS5lbGVtID09PSBCICYmIHRbTl0uZWxlbSAhPT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdFtOXS5hbmltYXRpb247CiAgICAgICAgICAgICAgICAgIE4gKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBWID0gbmV3IEFuaW1hdGlvbkl0ZW0oKTsKICAgICAgICAgICAgICAgIHJldHVybiBiKFYsIEIpLCBWLnNldERhdGEoQiwgeiksIFY7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHUoKSB7CiAgICAgICAgICAgICAgICB2YXIgQiwKICAgICAgICAgICAgICAgICAgeiA9IHQubGVuZ3RoLAogICAgICAgICAgICAgICAgICBOID0gW107CiAgICAgICAgICAgICAgICBmb3IgKEIgPSAwOyBCIDwgejsgQiArPSAxKSBOLnB1c2godFtCXS5hbmltYXRpb24pOwogICAgICAgICAgICAgICAgcmV0dXJuIE47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGQoKSB7CiAgICAgICAgICAgICAgICAoaSArPSAxKSwgcSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBFKCkgewogICAgICAgICAgICAgICAgaSAtPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBiKEIsIHopIHsKICAgICAgICAgICAgICAgIEIuYWRkRXZlbnRMaXN0ZW5lcigiZGVzdHJveSIsIGwpLAogICAgICAgICAgICAgICAgICBCLmFkZEV2ZW50TGlzdGVuZXIoIl9hY3RpdmUiLCBkKSwKICAgICAgICAgICAgICAgICAgQi5hZGRFdmVudExpc3RlbmVyKCJfaWRsZSIsIEUpLAogICAgICAgICAgICAgICAgICB0LnB1c2goeyBlbGVtOiB6LCBhbmltYXRpb246IEIgfSksCiAgICAgICAgICAgICAgICAgIChuICs9IDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBQKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6ID0gbmV3IEFuaW1hdGlvbkl0ZW0oKTsKICAgICAgICAgICAgICAgIHJldHVybiBiKHosIG51bGwpLCB6LnNldFBhcmFtcyhCKSwgejsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gUihCLCB6KSB7CiAgICAgICAgICAgICAgICB2YXIgTjsKICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBuOyBOICs9IDEpIHRbTl0uYW5pbWF0aW9uLnNldFNwZWVkKEIsIHopOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBUKEIsIHopIHsKICAgICAgICAgICAgICAgIHZhciBOOwogICAgICAgICAgICAgICAgZm9yIChOID0gMDsgTiA8IG47IE4gKz0gMSkgdFtOXS5hbmltYXRpb24uc2V0RGlyZWN0aW9uKEIsIHopOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBNKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6OwogICAgICAgICAgICAgICAgZm9yICh6ID0gMDsgeiA8IG47IHogKz0gMSkgdFt6XS5hbmltYXRpb24ucGxheShCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24geChCKSB7CiAgICAgICAgICAgICAgICB2YXIgeiA9IEIgLSByLAogICAgICAgICAgICAgICAgICBOOwogICAgICAgICAgICAgICAgZm9yIChOID0gMDsgTiA8IG47IE4gKz0gMSkgdFtOXS5hbmltYXRpb24uYWR2YW5jZVRpbWUoeik7CiAgICAgICAgICAgICAgICAociA9IEIpLCBpICYmICFvID8gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh4KSA6IChhID0gITApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBrKEIpIHsKICAgICAgICAgICAgICAgIChyID0gQiksIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoeCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFMoQikgewogICAgICAgICAgICAgICAgdmFyIHo7CiAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgbjsgeiArPSAxKSB0W3pdLmFuaW1hdGlvbi5wYXVzZShCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gQShCLCB6LCBOKSB7CiAgICAgICAgICAgICAgICB2YXIgVjsKICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBuOyBWICs9IDEpCiAgICAgICAgICAgICAgICAgIHRbVl0uYW5pbWF0aW9uLmdvVG9BbmRTdG9wKEIsIHosIE4pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBPKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6OwogICAgICAgICAgICAgICAgZm9yICh6ID0gMDsgeiA8IG47IHogKz0gMSkgdFt6XS5hbmltYXRpb24uc3RvcChCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gRihCKSB7CiAgICAgICAgICAgICAgICB2YXIgejsKICAgICAgICAgICAgICAgIGZvciAoeiA9IDA7IHogPCBuOyB6ICs9IDEpIHRbel0uYW5pbWF0aW9uLnRvZ2dsZVBhdXNlKEIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBEKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6OwogICAgICAgICAgICAgICAgZm9yICh6ID0gbiAtIDE7IHogPj0gMDsgeiAtPSAxKSB0W3pdLmFuaW1hdGlvbi5kZXN0cm95KEIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBIKEIsIHosIE4pIHsKICAgICAgICAgICAgICAgIHZhciBWID0gW10uY29uY2F0KAogICAgICAgICAgICAgICAgICBbXS5zbGljZS5jYWxsKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxvdHRpZSIpKSwKICAgICAgICAgICAgICAgICAgW10uc2xpY2UuY2FsbCgKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJib2R5bW92aW4iKQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICBZID0gVi5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKFEgPSAwOyBRIDwgWTsgUSArPSAxKQogICAgICAgICAgICAgICAgICBOICYmIFZbUV0uc2V0QXR0cmlidXRlKCJkYXRhLWJtLXR5cGUiLCBOKSwgYyhWW1FdLCBCKTsKICAgICAgICAgICAgICAgIGlmICh6ICYmIFkgPT09IDApIHsKICAgICAgICAgICAgICAgICAgTiB8fCAoTiA9ICJzdmciKTsKICAgICAgICAgICAgICAgICAgdmFyIGhlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTsKICAgICAgICAgICAgICAgICAgaGUuaW5uZXJUZXh0ID0gIiI7CiAgICAgICAgICAgICAgICAgIHZhciB5ZSA9IGNyZWF0ZVRhZygiZGl2Iik7CiAgICAgICAgICAgICAgICAgICh5ZS5zdHlsZS53aWR0aCA9ICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgKHllLnN0eWxlLmhlaWdodCA9ICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgeWUuc2V0QXR0cmlidXRlKCJkYXRhLWJtLXR5cGUiLCBOKSwKICAgICAgICAgICAgICAgICAgICBoZS5hcHBlbmRDaGlsZCh5ZSksCiAgICAgICAgICAgICAgICAgICAgYyh5ZSwgQik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uICQoKSB7CiAgICAgICAgICAgICAgICB2YXIgQjsKICAgICAgICAgICAgICAgIGZvciAoQiA9IDA7IEIgPCBuOyBCICs9IDEpIHRbQl0uYW5pbWF0aW9uLnJlc2l6ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBxKCkgewogICAgICAgICAgICAgICAgIW8gJiYgaSAmJiBhICYmICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGspLCAoYSA9ICExKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEooKSB7CiAgICAgICAgICAgICAgICBvID0gITA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEsoKSB7CiAgICAgICAgICAgICAgICAobyA9ICExKSwgcSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBlZShCLCB6KSB7CiAgICAgICAgICAgICAgICB2YXIgTjsKICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBuOyBOICs9IDEpIHRbTl0uYW5pbWF0aW9uLnNldFZvbHVtZShCLCB6KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbGUoQikgewogICAgICAgICAgICAgICAgdmFyIHo7CiAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgbjsgeiArPSAxKSB0W3pdLmFuaW1hdGlvbi5tdXRlKEIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiByZShCKSB7CiAgICAgICAgICAgICAgICB2YXIgejsKICAgICAgICAgICAgICAgIGZvciAoeiA9IDA7IHogPCBuOyB6ICs9IDEpIHRbel0uYW5pbWF0aW9uLnVubXV0ZShCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChlLnJlZ2lzdGVyQW5pbWF0aW9uID0gYyksCiAgICAgICAgICAgICAgICAoZS5sb2FkQW5pbWF0aW9uID0gUCksCiAgICAgICAgICAgICAgICAoZS5zZXRTcGVlZCA9IFIpLAogICAgICAgICAgICAgICAgKGUuc2V0RGlyZWN0aW9uID0gVCksCiAgICAgICAgICAgICAgICAoZS5wbGF5ID0gTSksCiAgICAgICAgICAgICAgICAoZS5wYXVzZSA9IFMpLAogICAgICAgICAgICAgICAgKGUuc3RvcCA9IE8pLAogICAgICAgICAgICAgICAgKGUudG9nZ2xlUGF1c2UgPSBGKSwKICAgICAgICAgICAgICAgIChlLnNlYXJjaEFuaW1hdGlvbnMgPSBIKSwKICAgICAgICAgICAgICAgIChlLnJlc2l6ZSA9ICQpLAogICAgICAgICAgICAgICAgKGUuZ29Ub0FuZFN0b3AgPSBBKSwKICAgICAgICAgICAgICAgIChlLmRlc3Ryb3kgPSBEKSwKICAgICAgICAgICAgICAgIChlLmZyZWV6ZSA9IEopLAogICAgICAgICAgICAgICAgKGUudW5mcmVlemUgPSBLKSwKICAgICAgICAgICAgICAgIChlLnNldFZvbHVtZSA9IGVlKSwKICAgICAgICAgICAgICAgIChlLm11dGUgPSBsZSksCiAgICAgICAgICAgICAgICAoZS51bm11dGUgPSByZSksCiAgICAgICAgICAgICAgICAoZS5nZXRSZWdpc3RlcmVkQW5pbWF0aW9ucyA9IHUpLAogICAgICAgICAgICAgICAgZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgQmV6aWVyRmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IHt9OwogICAgICAgICAgICAgICAgZS5nZXRCZXppZXJFYXNpbmcgPSByOwogICAgICAgICAgICAgICAgdmFyIHQgPSB7fTsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHIoaywgUywgQSwgTywgRikgewogICAgICAgICAgICAgICAgICB2YXIgRCA9CiAgICAgICAgICAgICAgICAgICAgRiB8fAogICAgICAgICAgICAgICAgICAgICgiYmV6XyIgKyBrICsgIl8iICsgUyArICJfIiArIEEgKyAiXyIgKyBPKS5yZXBsYWNlKAogICAgICAgICAgICAgICAgICAgICAgL1wuL2csCiAgICAgICAgICAgICAgICAgICAgICAicCIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBpZiAodFtEXSkgcmV0dXJuIHRbRF07CiAgICAgICAgICAgICAgICAgIHZhciBIID0gbmV3IHgoW2ssIFMsIEEsIE9dKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICh0W0RdID0gSCksIEg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgbiA9IDQsCiAgICAgICAgICAgICAgICAgIGkgPSAwLjAwMSwKICAgICAgICAgICAgICAgICAgYSA9IDFlLTcsCiAgICAgICAgICAgICAgICAgIG8gPSAxMCwKICAgICAgICAgICAgICAgICAgbCA9IDExLAogICAgICAgICAgICAgICAgICBjID0gMSAvIChsIC0gMSksCiAgICAgICAgICAgICAgICAgIHUgPSB0eXBlb2YgRmxvYXQzMkFycmF5ID09ICJmdW5jdGlvbiI7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBkKGssIFMpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIDEgLSAzICogUyArIDMgKiBrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gRShrLCBTKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAzICogUyAtIDYgKiBrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYihrKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAzICogazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFAoaywgUywgQSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gKChkKFMsIEEpICogayArIEUoUywgQSkpICogayArIGIoUykpICogazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFIoaywgUywgQSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gMyAqIGQoUywgQSkgKiBrICogayArIDIgKiBFKFMsIEEpICogayArIGIoUyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBUKGssIFMsIEEsIE8sIEYpIHsKICAgICAgICAgICAgICAgICAgdmFyIEQsCiAgICAgICAgICAgICAgICAgICAgSCwKICAgICAgICAgICAgICAgICAgICAkID0gMDsKICAgICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICAoSCA9IFMgKyAoQSAtIFMpIC8gMiksCiAgICAgICAgICAgICAgICAgICAgICAoRCA9IFAoSCwgTywgRikgLSBrKSwKICAgICAgICAgICAgICAgICAgICAgIEQgPiAwID8gKEEgPSBIKSA6IChTID0gSCk7CiAgICAgICAgICAgICAgICAgIHdoaWxlIChNYXRoLmFicyhEKSA+IGEgJiYgKyskIDwgbyk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBIOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gTShrLCBTLCBBLCBPKSB7CiAgICAgICAgICAgICAgICAgIGZvciAodmFyIEYgPSAwOyBGIDwgbjsgKytGKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIEQgPSBSKFMsIEEsIE8pOwogICAgICAgICAgICAgICAgICAgIGlmIChEID09PSAwKSByZXR1cm4gUzsKICAgICAgICAgICAgICAgICAgICB2YXIgSCA9IFAoUywgQSwgTykgLSBrOwogICAgICAgICAgICAgICAgICAgIFMgLT0gSCAvIEQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIFM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB4KGspIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuX3AgPSBrKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fbVNhbXBsZVZhbHVlcyA9IHUKICAgICAgICAgICAgICAgICAgICAgID8gbmV3IEZsb2F0MzJBcnJheShsKQogICAgICAgICAgICAgICAgICAgICAgOiBuZXcgQXJyYXkobCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9wcmVjb21wdXRlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5nZXQgPSB0aGlzLmdldC5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICh4LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uIChTKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IHRoaXMuX3BbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE8gPSB0aGlzLl9wWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5fcFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgRCA9IHRoaXMuX3BbM107CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVjb21wdXRlZCB8fCB0aGlzLl9wcmVjb21wdXRlKCksCiAgICAgICAgICAgICAgICAgICAgICAgIEEgPT09IE8gJiYgRiA9PT0gRAogICAgICAgICAgICAgICAgICAgICAgICAgID8gUwogICAgICAgICAgICAgICAgICAgICAgICAgIDogUyA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFMgPT09IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUCh0aGlzLl9nZXRURm9yWChTKSwgTywgRCkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBfcHJlY29tcHV0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLl9wWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBBID0gdGhpcy5fcFsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgTyA9IHRoaXMuX3BbMl0sCiAgICAgICAgICAgICAgICAgICAgICAgIEYgPSB0aGlzLl9wWzNdOwogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX3ByZWNvbXB1dGVkID0gITApLAogICAgICAgICAgICAgICAgICAgICAgICAoUyAhPT0gQSB8fCBPICE9PSBGKSAmJiB0aGlzLl9jYWxjU2FtcGxlVmFsdWVzKCk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBfY2FsY1NhbXBsZVZhbHVlczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLl9wWzBdLCBBID0gdGhpcy5fcFsyXSwgTyA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIE8gPCBsOwogICAgICAgICAgICAgICAgICAgICAgICArK08KICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbVNhbXBsZVZhbHVlc1tPXSA9IFAoTyAqIGMsIFMsIEEpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgX2dldFRGb3JYOiBmdW5jdGlvbiAoUykgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEEgPSB0aGlzLl9wWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBPID0gdGhpcy5fcFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgRiA9IHRoaXMuX21TYW1wbGVWYWx1ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIEQgPSAwLAogICAgICAgICAgICAgICAgICAgICAgICBIID0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgJCA9IGwgLSAxOwogICAgICAgICAgICAgICAgICAgICAgICBIICE9PSAkICYmIEZbSF0gPD0gUzsKICAgICAgICAgICAgICAgICAgICAgICAgKytICiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIEQgKz0gYzsKICAgICAgICAgICAgICAgICAgICAgIC0tSDsKICAgICAgICAgICAgICAgICAgICAgIHZhciBxID0gKFMgLSBGW0hdKSAvIChGW0ggKyAxXSAtIEZbSF0pLAogICAgICAgICAgICAgICAgICAgICAgICBKID0gRCArIHEgKiBjLAogICAgICAgICAgICAgICAgICAgICAgICBLID0gUihKLCBBLCBPKTsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBLID49IGkKICAgICAgICAgICAgICAgICAgICAgICAgPyBNKFMsIEosIEEsIE8pCiAgICAgICAgICAgICAgICAgICAgICAgIDogSyA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgID8gSgogICAgICAgICAgICAgICAgICAgICAgICAgIDogVChTLCBELCBEICsgYywgQSwgTyk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIGUKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBwb29saW5nID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUodCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gdC5jb25jYXQoY3JlYXRlU2l6ZWRBcnJheSh0Lmxlbmd0aCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHsgZG91YmxlOiBlIH07CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBwb29sRmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSAwLAogICAgICAgICAgICAgICAgICAgIGkgPSBlLAogICAgICAgICAgICAgICAgICAgIGEgPSBjcmVhdGVTaXplZEFycmF5KGkpLAogICAgICAgICAgICAgICAgICAgIG8gPSB7IG5ld0VsZW1lbnQ6IGwsIHJlbGVhc2U6IGMgfTsKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gbCgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbiA/ICgobiAtPSAxKSwgKHUgPSBhW25dKSkgOiAodSA9IHQoKSksIHU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gYyh1KSB7CiAgICAgICAgICAgICAgICAgICAgbiA9PT0gaSAmJiAoKGEgPSBwb29saW5nLmRvdWJsZShhKSksIChpICo9IDIpKSwKICAgICAgICAgICAgICAgICAgICAgIHIgJiYgcih1KSwKICAgICAgICAgICAgICAgICAgICAgIChhW25dID0gdSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSAxKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gbzsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBiZXppZXJMZW5ndGhQb29sID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgYWRkZWRMZW5ndGg6IDAsCiAgICAgICAgICAgICAgICAgICAgcGVyY2VudHM6IGNyZWF0ZVR5cGVkQXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAiZmxvYXQzMiIsCiAgICAgICAgICAgICAgICAgICAgICBnZXREZWZhdWx0Q3VydmVTZWdtZW50cygpCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBsZW5ndGhzOiBjcmVhdGVUeXBlZEFycmF5KAogICAgICAgICAgICAgICAgICAgICAgImZsb2F0MzIiLAogICAgICAgICAgICAgICAgICAgICAgZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcG9vbEZhY3RvcnkoOCwgZSk7CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBzZWdtZW50c0xlbmd0aFBvb2wgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbGVuZ3RoczogW10sIHRvdGFsTGVuZ3RoOiAwIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0KHIpIHsKICAgICAgICAgICAgICAgICAgdmFyIG4sCiAgICAgICAgICAgICAgICAgICAgaSA9IHIubGVuZ3Rocy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpCiAgICAgICAgICAgICAgICAgICAgYmV6aWVyTGVuZ3RoUG9vbC5yZWxlYXNlKHIubGVuZ3Roc1tuXSk7CiAgICAgICAgICAgICAgICAgIHIubGVuZ3Rocy5sZW5ndGggPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHBvb2xGYWN0b3J5KDgsIGUsIHQpOwogICAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIGJlekZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBlID0gTWF0aDsKICAgICAgICAgICAgICBmdW5jdGlvbiB0KGIsIFAsIFIsIFQsIE0sIHgpIHsKICAgICAgICAgICAgICAgIHZhciBrID0gYiAqIFQgKyBQICogTSArIFIgKiB4IC0gTSAqIFQgLSB4ICogYiAtIFIgKiBQOwogICAgICAgICAgICAgICAgcmV0dXJuIGsgPiAtMC4wMDEgJiYgayA8IDAuMDAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiByKGIsIFAsIFIsIFQsIE0sIHgsIGssIFMsIEEpIHsKICAgICAgICAgICAgICAgIGlmIChSID09PSAwICYmIHggPT09IDAgJiYgQSA9PT0gMCkgcmV0dXJuIHQoYiwgUCwgVCwgTSwgaywgUyk7CiAgICAgICAgICAgICAgICB2YXIgTyA9IGUuc3FydCgKICAgICAgICAgICAgICAgICAgZS5wb3coVCAtIGIsIDIpICsgZS5wb3coTSAtIFAsIDIpICsgZS5wb3coeCAtIFIsIDIpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBGID0gZS5zcXJ0KAogICAgICAgICAgICAgICAgICAgIGUucG93KGsgLSBiLCAyKSArIGUucG93KFMgLSBQLCAyKSArIGUucG93KEEgLSBSLCAyKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBEID0gZS5zcXJ0KAogICAgICAgICAgICAgICAgICAgIGUucG93KGsgLSBULCAyKSArIGUucG93KFMgLSBNLCAyKSArIGUucG93KEEgLSB4LCAyKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBIOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTyA+IEYKICAgICAgICAgICAgICAgICAgICA/IE8gPiBECiAgICAgICAgICAgICAgICAgICAgICA/IChIID0gTyAtIEYgLSBEKQogICAgICAgICAgICAgICAgICAgICAgOiAoSCA9IEQgLSBGIC0gTykKICAgICAgICAgICAgICAgICAgICA6IEQgPiBGCiAgICAgICAgICAgICAgICAgICAgICA/IChIID0gRCAtIEYgLSBPKQogICAgICAgICAgICAgICAgICAgICAgOiAoSCA9IEYgLSBPIC0gRCksCiAgICAgICAgICAgICAgICAgIEggPiAtMWUtNCAmJiBIIDwgMWUtNAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIG4gPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChiLCBQLCBSLCBUKSB7CiAgICAgICAgICAgICAgICAgIHZhciBNID0gZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICB4LAogICAgICAgICAgICAgICAgICAgIGssCiAgICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgICAgIE8sCiAgICAgICAgICAgICAgICAgICAgRiA9IDAsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBIID0gW10sCiAgICAgICAgICAgICAgICAgICAgJCA9IFtdLAogICAgICAgICAgICAgICAgICAgIHEgPSBiZXppZXJMZW5ndGhQb29sLm5ld0VsZW1lbnQoKTsKICAgICAgICAgICAgICAgICAgZm9yIChTID0gUi5sZW5ndGgsIHggPSAwOyB4IDwgTTsgeCArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChPID0geCAvIChNIC0gMSksIEQgPSAwLCBrID0gMDsgayA8IFM7IGsgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChBID0KICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coMSAtIE8sIDMpICogYltrXSArCiAgICAgICAgICAgICAgICAgICAgICAgIDMgKiBibVBvdygxIC0gTywgMikgKiBPICogUltrXSArCiAgICAgICAgICAgICAgICAgICAgICAgIDMgKiAoMSAtIE8pICogYm1Qb3coTywgMikgKiBUW2tdICsKICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coTywgMykgKiBQW2tdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEhba10gPSBBKSwKICAgICAgICAgICAgICAgICAgICAgICAgJFtrXSAhPT0gbnVsbCAmJiAoRCArPSBibVBvdyhIW2tdIC0gJFtrXSwgMikpLAogICAgICAgICAgICAgICAgICAgICAgICAoJFtrXSA9IEhba10pOwogICAgICAgICAgICAgICAgICAgIEQgJiYgKChEID0gYm1TcXJ0KEQpKSwgKEYgKz0gRCkpLAogICAgICAgICAgICAgICAgICAgICAgKHEucGVyY2VudHNbeF0gPSBPKSwKICAgICAgICAgICAgICAgICAgICAgIChxLmxlbmd0aHNbeF0gPSBGKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gKHEuYWRkZWRMZW5ndGggPSBGKSwgcTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgICBmdW5jdGlvbiBpKGIpIHsKICAgICAgICAgICAgICAgIHZhciBQID0gc2VnbWVudHNMZW5ndGhQb29sLm5ld0VsZW1lbnQoKSwKICAgICAgICAgICAgICAgICAgUiA9IGIuYywKICAgICAgICAgICAgICAgICAgVCA9IGIudiwKICAgICAgICAgICAgICAgICAgTSA9IGIubywKICAgICAgICAgICAgICAgICAgeCA9IGIuaSwKICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgUyA9IGIuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgQSA9IFAubGVuZ3RocywKICAgICAgICAgICAgICAgICAgTyA9IDA7CiAgICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgUyAtIDE7IGsgKz0gMSkKICAgICAgICAgICAgICAgICAgKEFba10gPSBuKFRba10sIFRbayArIDFdLCBNW2tdLCB4W2sgKyAxXSkpLAogICAgICAgICAgICAgICAgICAgIChPICs9IEFba10uYWRkZWRMZW5ndGgpOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgUiAmJgogICAgICAgICAgICAgICAgICBTICYmCiAgICAgICAgICAgICAgICAgICgoQVtrXSA9IG4oVFtrXSwgVFswXSwgTVtrXSwgeFswXSkpLAogICAgICAgICAgICAgICAgICAgIChPICs9IEFba10uYWRkZWRMZW5ndGgpKSwKICAgICAgICAgICAgICAgICAgKFAudG90YWxMZW5ndGggPSBPKSwKICAgICAgICAgICAgICAgICAgUAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYShiKSB7CiAgICAgICAgICAgICAgICAodGhpcy5zZWdtZW50TGVuZ3RoID0gMCksICh0aGlzLnBvaW50cyA9IG5ldyBBcnJheShiKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oYiwgUCkgewogICAgICAgICAgICAgICAgKHRoaXMucGFydGlhbExlbmd0aCA9IGIpLCAodGhpcy5wb2ludCA9IFApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgbCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgYiA9IHt9OwogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChQLCBSLCBULCBNKSB7CiAgICAgICAgICAgICAgICAgIHZhciB4ID0gKAogICAgICAgICAgICAgICAgICAgIFBbMF0gKwogICAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgICAgUFsxXSArCiAgICAgICAgICAgICAgICAgICAgIl8iICsKICAgICAgICAgICAgICAgICAgICBSWzBdICsKICAgICAgICAgICAgICAgICAgICAiXyIgKwogICAgICAgICAgICAgICAgICAgIFJbMV0gKwogICAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgICAgVFswXSArCiAgICAgICAgICAgICAgICAgICAgIl8iICsKICAgICAgICAgICAgICAgICAgICBUWzFdICsKICAgICAgICAgICAgICAgICAgICAiXyIgKwogICAgICAgICAgICAgICAgICAgIE1bMF0gKwogICAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgICAgTVsxXQogICAgICAgICAgICAgICAgICApLnJlcGxhY2UoL1wuL2csICJwIik7CiAgICAgICAgICAgICAgICAgIGlmICghYlt4XSkgewogICAgICAgICAgICAgICAgICAgIHZhciBrID0gZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgICAgICAgTywKICAgICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgICBELAogICAgICAgICAgICAgICAgICAgICAgSCA9IDAsCiAgICAgICAgICAgICAgICAgICAgICAkLAogICAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICAgIEogPSBudWxsOwogICAgICAgICAgICAgICAgICAgIFAubGVuZ3RoID09PSAyICYmCiAgICAgICAgICAgICAgICAgICAgICAoUFswXSAhPT0gUlswXSB8fCBQWzFdICE9PSBSWzFdKSAmJgogICAgICAgICAgICAgICAgICAgICAgdChQWzBdLCBQWzFdLCBSWzBdLCBSWzFdLCBQWzBdICsgVFswXSwgUFsxXSArIFRbMV0pICYmCiAgICAgICAgICAgICAgICAgICAgICB0KFBbMF0sIFBbMV0sIFJbMF0sIFJbMV0sIFJbMF0gKyBNWzBdLCBSWzFdICsgTVsxXSkgJiYKICAgICAgICAgICAgICAgICAgICAgIChrID0gMik7CiAgICAgICAgICAgICAgICAgICAgdmFyIEsgPSBuZXcgYShrKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKE8gPSBULmxlbmd0aCwgUyA9IDA7IFMgPCBrOyBTICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBjcmVhdGVTaXplZEFycmF5KE8pLCBEID0gUyAvIChrIC0gMSksICQgPSAwLCBBID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgQSA8IE87CiAgICAgICAgICAgICAgICAgICAgICAgIEEgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAoRiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coMSAtIEQsIDMpICogUFtBXSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgMyAqIGJtUG93KDEgLSBELCAyKSAqIEQgKiAoUFtBXSArIFRbQV0pICsKICAgICAgICAgICAgICAgICAgICAgICAgICAzICogKDEgLSBEKSAqIGJtUG93KEQsIDIpICogKFJbQV0gKyBNW0FdKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coRCwgMykgKiBSW0FdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAocVtBXSA9IEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgIEogIT09IG51bGwgJiYgKCQgKz0gYm1Qb3cocVtBXSAtIEpbQV0sIDIpKTsKICAgICAgICAgICAgICAgICAgICAgICgkID0gYm1TcXJ0KCQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEggKz0gJCksCiAgICAgICAgICAgICAgICAgICAgICAgIChLLnBvaW50c1tTXSA9IG5ldyBvKCQsIHEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEogPSBxKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgKEsuc2VnbWVudExlbmd0aCA9IEgpLCAoYlt4XSA9IEspOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiBiW3hdOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGMoYiwgUCkgewogICAgICAgICAgICAgICAgdmFyIFIgPSBQLnBlcmNlbnRzLAogICAgICAgICAgICAgICAgICBUID0gUC5sZW5ndGhzLAogICAgICAgICAgICAgICAgICBNID0gUi5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHggPSBibUZsb29yKChNIC0gMSkgKiBiKSwKICAgICAgICAgICAgICAgICAgayA9IGIgKiBQLmFkZGVkTGVuZ3RoLAogICAgICAgICAgICAgICAgICBTID0gMDsKICAgICAgICAgICAgICAgIGlmICh4ID09PSBNIC0gMSB8fCB4ID09PSAwIHx8IGsgPT09IFRbeF0pIHJldHVybiBSW3hdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgQSA9IFRbeF0gPiBrID8gLTEgOiAxLCBPID0gITA7IE87KQogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKFRbeF0gPD0gayAmJiBUW3ggKyAxXSA+IGsKICAgICAgICAgICAgICAgICAgICAgID8gKChTID0gKGsgLSBUW3hdKSAvIChUW3ggKyAxXSAtIFRbeF0pKSwgKE8gPSAhMSkpCiAgICAgICAgICAgICAgICAgICAgICA6ICh4ICs9IEEpLAogICAgICAgICAgICAgICAgICAgICAgeCA8IDAgfHwgeCA+PSBNIC0gMSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHggPT09IE0gLSAxKSByZXR1cm4gUlt4XTsKICAgICAgICAgICAgICAgICAgICBPID0gITE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBSW3hdICsgKFJbeCArIDFdIC0gUlt4XSkgKiBTOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiB1KGIsIFAsIFIsIFQsIE0sIHgpIHsKICAgICAgICAgICAgICAgIHZhciBrID0gYyhNLCB4KSwKICAgICAgICAgICAgICAgICAgUyA9IDEgLSBrLAogICAgICAgICAgICAgICAgICBBID0KICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgKFMgKiBTICogUyAqIGJbMF0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIFMgKiBTICsgUyAqIGsgKiBTICsgUyAqIFMgKiBrKSAqIFJbMF0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIGsgKiBTICsgUyAqIGsgKiBrICsgayAqIFMgKiBrKSAqIFRbMF0gKwogICAgICAgICAgICAgICAgICAgICAgICBrICogayAqIGsgKiBQWzBdKSAqCiAgICAgICAgICAgICAgICAgICAgICAxZTMKICAgICAgICAgICAgICAgICAgICApIC8gMWUzLAogICAgICAgICAgICAgICAgICBPID0KICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgKFMgKiBTICogUyAqIGJbMV0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIFMgKiBTICsgUyAqIGsgKiBTICsgUyAqIFMgKiBrKSAqIFJbMV0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIGsgKiBTICsgUyAqIGsgKiBrICsgayAqIFMgKiBrKSAqIFRbMV0gKwogICAgICAgICAgICAgICAgICAgICAgICBrICogayAqIGsgKiBQWzFdKSAqCiAgICAgICAgICAgICAgICAgICAgICAxZTMKICAgICAgICAgICAgICAgICAgICApIC8gMWUzOwogICAgICAgICAgICAgICAgcmV0dXJuIFtBLCBPXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIGQgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgOCk7CiAgICAgICAgICAgICAgZnVuY3Rpb24gRShiLCBQLCBSLCBULCBNLCB4LCBrKSB7CiAgICAgICAgICAgICAgICBNIDwgMCA/IChNID0gMCkgOiBNID4gMSAmJiAoTSA9IDEpOwogICAgICAgICAgICAgICAgdmFyIFMgPSBjKE0sIGspOwogICAgICAgICAgICAgICAgeCA9IHggPiAxID8gMSA6IHg7CiAgICAgICAgICAgICAgICB2YXIgQSA9IGMoeCwgayksCiAgICAgICAgICAgICAgICAgIE8sCiAgICAgICAgICAgICAgICAgIEYgPSBiLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgRCA9IDEgLSBTLAogICAgICAgICAgICAgICAgICBIID0gMSAtIEEsCiAgICAgICAgICAgICAgICAgICQgPSBEICogRCAqIEQsCiAgICAgICAgICAgICAgICAgIHEgPSBTICogRCAqIEQgKiAzLAogICAgICAgICAgICAgICAgICBKID0gUyAqIFMgKiBEICogMywKICAgICAgICAgICAgICAgICAgSyA9IFMgKiBTICogUywKICAgICAgICAgICAgICAgICAgZWUgPSBEICogRCAqIEgsCiAgICAgICAgICAgICAgICAgIGxlID0gUyAqIEQgKiBIICsgRCAqIFMgKiBIICsgRCAqIEQgKiBBLAogICAgICAgICAgICAgICAgICByZSA9IFMgKiBTICogSCArIEQgKiBTICogQSArIFMgKiBEICogQSwKICAgICAgICAgICAgICAgICAgQiA9IFMgKiBTICogQSwKICAgICAgICAgICAgICAgICAgeiA9IEQgKiBIICogSCwKICAgICAgICAgICAgICAgICAgTiA9IFMgKiBIICogSCArIEQgKiBBICogSCArIEQgKiBIICogQSwKICAgICAgICAgICAgICAgICAgViA9IFMgKiBBICogSCArIEQgKiBBICogQSArIFMgKiBIICogQSwKICAgICAgICAgICAgICAgICAgUSA9IFMgKiBBICogQSwKICAgICAgICAgICAgICAgICAgWSA9IEggKiBIICogSCwKICAgICAgICAgICAgICAgICAgaGUgPSBBICogSCAqIEggKyBIICogQSAqIEggKyBIICogSCAqIEEsCiAgICAgICAgICAgICAgICAgIHllID0gQSAqIEEgKiBIICsgSCAqIEEgKiBBICsgQSAqIEggKiBBLAogICAgICAgICAgICAgICAgICB2ZSA9IEEgKiBBICogQTsKICAgICAgICAgICAgICAgIGZvciAoTyA9IDA7IE8gPCBGOyBPICs9IDEpCiAgICAgICAgICAgICAgICAgIChkW08gKiA0XSA9CiAgICAgICAgICAgICAgICAgICAgZS5yb3VuZCgoJCAqIGJbT10gKyBxICogUltPXSArIEogKiBUW09dICsgSyAqIFBbT10pICogMWUzKSAvCiAgICAgICAgICAgICAgICAgICAgMWUzKSwKICAgICAgICAgICAgICAgICAgICAoZFtPICogNCArIDFdID0KICAgICAgICAgICAgICAgICAgICAgIGUucm91bmQoCiAgICAgICAgICAgICAgICAgICAgICAgIChlZSAqIGJbT10gKyBsZSAqIFJbT10gKyByZSAqIFRbT10gKyBCICogUFtPXSkgKiAxZTMKICAgICAgICAgICAgICAgICAgICAgICkgLyAxZTMpLAogICAgICAgICAgICAgICAgICAgIChkW08gKiA0ICsgMl0gPQogICAgICAgICAgICAgICAgICAgICAgZS5yb3VuZCgKICAgICAgICAgICAgICAgICAgICAgICAgKHogKiBiW09dICsgTiAqIFJbT10gKyBWICogVFtPXSArIFEgKiBQW09dKSAqIDFlMwogICAgICAgICAgICAgICAgICAgICAgKSAvIDFlMyksCiAgICAgICAgICAgICAgICAgICAgKGRbTyAqIDQgKyAzXSA9CiAgICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAoWSAqIGJbT10gKyBoZSAqIFJbT10gKyB5ZSAqIFRbT10gKyB2ZSAqIFBbT10pICogMWUzCiAgICAgICAgICAgICAgICAgICAgICApIC8gMWUzKTsKICAgICAgICAgICAgICAgIHJldHVybiBkOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZ2V0U2VnbWVudHNMZW5ndGg6IGksCiAgICAgICAgICAgICAgICBnZXROZXdTZWdtZW50OiBFLAogICAgICAgICAgICAgICAgZ2V0UG9pbnRJblNlZ21lbnQ6IHUsCiAgICAgICAgICAgICAgICBidWlsZEJlemllckRhdGE6IGwsCiAgICAgICAgICAgICAgICBwb2ludE9uTGluZTJEOiB0LAogICAgICAgICAgICAgICAgcG9pbnRPbkxpbmUzRDogciwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBiZXogPSBiZXpGdW5jdGlvbigpLAogICAgICAgICAgICAgIGluaXRGcmFtZSA9IGluaXRpYWxEZWZhdWx0RnJhbWUsCiAgICAgICAgICAgICAgbWF0aEFicyA9IE1hdGguYWJzOwogICAgICAgICAgICBmdW5jdGlvbiBpbnRlcnBvbGF0ZVZhbHVlKGUsIHQpIHsKICAgICAgICAgICAgICB2YXIgciA9IHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgIG47CiAgICAgICAgICAgICAgdGhpcy5wcm9wVHlwZSA9PT0gIm11bHRpZGltZW5zaW9uYWwiICYmCiAgICAgICAgICAgICAgICAobiA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCB0aGlzLnB2Lmxlbmd0aCkpOwogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB2YXIgaSA9IHQubGFzdEluZGV4LAogICAgICAgICAgICAgICAgYSA9IGksCiAgICAgICAgICAgICAgICBvID0gdGhpcy5rZXlmcmFtZXMubGVuZ3RoIC0gMSwKICAgICAgICAgICAgICAgIGwgPSAhMCwKICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgZDsKICAgICAgICAgICAgICAgIGw7CgogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKGMgPSB0aGlzLmtleWZyYW1lc1thXSksCiAgICAgICAgICAgICAgICAgICAgKHUgPSB0aGlzLmtleWZyYW1lc1thICsgMV0pLAogICAgICAgICAgICAgICAgICAgIGEgPT09IG8gLSAxICYmIGUgPj0gdS50IC0gcikKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBjLmggJiYgKGMgPSB1KSwgKGkgPSAwKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAodS50IC0gciA+IGUpIHsKICAgICAgICAgICAgICAgICAgaSA9IGE7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYSA8IG8gLSAxID8gKGEgKz0gMSkgOiAoKGkgPSAwKSwgKGwgPSAhMSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBkID0gdGhpcy5rZXlmcmFtZXNNZXRhZGF0YVthXSB8fCB7fTsKICAgICAgICAgICAgICB2YXIgRSwKICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICBQLAogICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICAgeCA9IHUudCAtIHIsCiAgICAgICAgICAgICAgICBrID0gYy50IC0gciwKICAgICAgICAgICAgICAgIFM7CiAgICAgICAgICAgICAgaWYgKGMudG8pIHsKICAgICAgICAgICAgICAgIGQuYmV6aWVyRGF0YSB8fAogICAgICAgICAgICAgICAgICAoZC5iZXppZXJEYXRhID0gYmV6LmJ1aWxkQmV6aWVyRGF0YSgKICAgICAgICAgICAgICAgICAgICBjLnMsCiAgICAgICAgICAgICAgICAgICAgdS5zIHx8IGMuZSwKICAgICAgICAgICAgICAgICAgICBjLnRvLAogICAgICAgICAgICAgICAgICAgIGMudGkKICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICB2YXIgQSA9IGQuYmV6aWVyRGF0YTsKICAgICAgICAgICAgICAgIGlmIChlID49IHggfHwgZSA8IGspIHsKICAgICAgICAgICAgICAgICAgdmFyIE8gPSBlID49IHggPyBBLnBvaW50cy5sZW5ndGggLSAxIDogMDsKICAgICAgICAgICAgICAgICAgZm9yIChiID0gQS5wb2ludHNbT10ucG9pbnQubGVuZ3RoLCBFID0gMDsgRSA8IGI7IEUgKz0gMSkKICAgICAgICAgICAgICAgICAgICBuW0VdID0gQS5wb2ludHNbT10ucG9pbnRbRV07CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBkLl9fZm5jdAogICAgICAgICAgICAgICAgICAgID8gKE0gPSBkLl9fZm5jdCkKICAgICAgICAgICAgICAgICAgICA6ICgoTSA9IEJlemllckZhY3RvcnkuZ2V0QmV6aWVyRWFzaW5nKAogICAgICAgICAgICAgICAgICAgICAgYy5vLngsCiAgICAgICAgICAgICAgICAgICAgICBjLm8ueSwKICAgICAgICAgICAgICAgICAgICAgIGMuaS54LAogICAgICAgICAgICAgICAgICAgICAgYy5pLnksCiAgICAgICAgICAgICAgICAgICAgICBjLm4KICAgICAgICAgICAgICAgICAgICApLmdldCksCiAgICAgICAgICAgICAgICAgICAgICAoZC5fX2ZuY3QgPSBNKSksCiAgICAgICAgICAgICAgICAgICAgKFAgPSBNKChlIC0gaykgLyAoeCAtIGspKSk7CiAgICAgICAgICAgICAgICAgIHZhciBGID0gQS5zZWdtZW50TGVuZ3RoICogUCwKICAgICAgICAgICAgICAgICAgICBELAogICAgICAgICAgICAgICAgICAgIEggPQogICAgICAgICAgICAgICAgICAgICAgdC5sYXN0RnJhbWUgPCBlICYmIHQuX2xhc3RLZXlmcmFtZUluZGV4ID09PSBhCiAgICAgICAgICAgICAgICAgICAgICAgID8gdC5fbGFzdEFkZGVkTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgIDogMDsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBUID0KICAgICAgICAgICAgICAgICAgICB0Lmxhc3RGcmFtZSA8IGUgJiYgdC5fbGFzdEtleWZyYW1lSW5kZXggPT09IGEKICAgICAgICAgICAgICAgICAgICAgID8gdC5fbGFzdFBvaW50CiAgICAgICAgICAgICAgICAgICAgICA6IDAsCiAgICAgICAgICAgICAgICAgICAgbCA9ICEwLAogICAgICAgICAgICAgICAgICAgIFIgPSBBLnBvaW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgbDsKCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgoSCArPSBBLnBvaW50c1tUXS5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICAgRiA9PT0gMCB8fCBQID09PSAwIHx8IFQgPT09IEEucG9pbnRzLmxlbmd0aCAtIDEpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGIgPSBBLnBvaW50c1tUXS5wb2ludC5sZW5ndGgsIEUgPSAwOyBFIDwgYjsgRSArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICBuW0VdID0gQS5wb2ludHNbVF0ucG9pbnRbRV07CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKAogICAgICAgICAgICAgICAgICAgICAgRiA+PSBIICYmCiAgICAgICAgICAgICAgICAgICAgICBGIDwgSCArIEEucG9pbnRzW1QgKyAxXS5wYXJ0aWFsTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBEID0gKEYgLSBIKSAvIEEucG9pbnRzW1QgKyAxXS5wYXJ0aWFsTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBiID0gQS5wb2ludHNbVF0ucG9pbnQubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBFID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgRSA8IGI7CiAgICAgICAgICAgICAgICAgICAgICAgIEUgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBuW0VdID0KICAgICAgICAgICAgICAgICAgICAgICAgICBBLnBvaW50c1tUXS5wb2ludFtFXSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEEucG9pbnRzW1QgKyAxXS5wb2ludFtFXSAtIEEucG9pbnRzW1RdLnBvaW50W0VdKSAqIEQ7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgVCA8IFIgLSAxID8gKFQgKz0gMSkgOiAobCA9ICExKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAodC5fbGFzdFBvaW50ID0gVCksCiAgICAgICAgICAgICAgICAgICAgKHQuX2xhc3RBZGRlZExlbmd0aCA9IEggLSBBLnBvaW50c1tUXS5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAodC5fbGFzdEtleWZyYW1lSW5kZXggPSBhKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFyICQsIHEsIEosIEssIGVlOwogICAgICAgICAgICAgICAgaWYgKCgobyA9IGMucy5sZW5ndGgpLCAoUyA9IHUucyB8fCBjLmUpLCB0aGlzLnNoICYmIGMuaCAhPT0gMSkpCiAgICAgICAgICAgICAgICAgIGlmIChlID49IHgpIChuWzBdID0gU1swXSksIChuWzFdID0gU1sxXSksIChuWzJdID0gU1syXSk7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGUgPD0gaykKICAgICAgICAgICAgICAgICAgICAoblswXSA9IGMuc1swXSksIChuWzFdID0gYy5zWzFdKSwgKG5bMl0gPSBjLnNbMl0pOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbGUgPSBjcmVhdGVRdWF0ZXJuaW9uKGMucyksCiAgICAgICAgICAgICAgICAgICAgICByZSA9IGNyZWF0ZVF1YXRlcm5pb24oUyksCiAgICAgICAgICAgICAgICAgICAgICBCID0gKGUgLSBrKSAvICh4IC0gayk7CiAgICAgICAgICAgICAgICAgICAgcXVhdGVybmlvblRvRXVsZXIobiwgc2xlcnAobGUsIHJlLCBCKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IG87IGEgKz0gMSkKICAgICAgICAgICAgICAgICAgICBjLmggIT09IDEgJiYKICAgICAgICAgICAgICAgICAgICAgIChlID49IHgKICAgICAgICAgICAgICAgICAgICAgICAgPyAoUCA9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgIDogZSA8IGsKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChQID0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChjLm8ueC5jb25zdHJ1Y3RvciA9PT0gQXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGQuX19mbmN0IHx8IChkLl9fZm5jdCA9IFtdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5fX2ZuY3RbYV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChNID0gZC5fX2ZuY3RbYV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKCQgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5vLnhbYV0gPT09IHZvaWQgMCA/IGMuby54WzBdIDogYy5vLnhbYV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHEgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLm8ueVthXSA9PT0gdm9pZCAwID8gYy5vLnlbMF0gOiBjLm8ueVthXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuaS54W2FdID09PSB2b2lkIDAgPyBjLmkueFswXSA6IGMuaS54W2FdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChLID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5pLnlbYV0gPT09IHZvaWQgMCA/IGMuaS55WzBdIDogYy5pLnlbYV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5nZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGQuX19mbmN0W2FdID0gTSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBkLl9fZm5jdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChNID0gZC5fX2ZuY3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKCgkID0gYy5vLngpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChxID0gYy5vLnkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChKID0gYy5pLngpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChLID0gYy5pLnkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChNID0gQmV6aWVyRmFjdG9yeS5nZXRCZXppZXJFYXNpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5nZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjLmtleWZyYW1lTWV0YWRhdGEgPSBNKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUCA9IE0oKGUgLSBrKSAvICh4IC0gaykpKSkpLAogICAgICAgICAgICAgICAgICAgICAgKFMgPSB1LnMgfHwgYy5lKSwKICAgICAgICAgICAgICAgICAgICAgIChlZSA9IGMuaCA9PT0gMSA/IGMuc1thXSA6IGMuc1thXSArIChTW2FdIC0gYy5zW2FdKSAqIFApLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wVHlwZSA9PT0gIm11bHRpZGltZW5zaW9uYWwiCiAgICAgICAgICAgICAgICAgICAgICAgID8gKG5bYV0gPSBlZSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAobiA9IGVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICh0Lmxhc3RJbmRleCA9IGkpLCBuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHNsZXJwKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB2YXIgbiA9IFtdLAogICAgICAgICAgICAgICAgaSA9IGVbMF0sCiAgICAgICAgICAgICAgICBhID0gZVsxXSwKICAgICAgICAgICAgICAgIG8gPSBlWzJdLAogICAgICAgICAgICAgICAgbCA9IGVbM10sCiAgICAgICAgICAgICAgICBjID0gdFswXSwKICAgICAgICAgICAgICAgIHUgPSB0WzFdLAogICAgICAgICAgICAgICAgZCA9IHRbMl0sCiAgICAgICAgICAgICAgICBFID0gdFszXSwKICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICBQLAogICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICBNOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoUCA9IGkgKiBjICsgYSAqIHUgKyBvICogZCArIGwgKiBFKSwKICAgICAgICAgICAgICAgIFAgPCAwICYmICgoUCA9IC1QKSwgKGMgPSAtYyksICh1ID0gLXUpLCAoZCA9IC1kKSwgKEUgPSAtRSkpLAogICAgICAgICAgICAgICAgMSAtIFAgPiAxZS02CiAgICAgICAgICAgICAgICAgID8gKChiID0gTWF0aC5hY29zKFApKSwKICAgICAgICAgICAgICAgICAgICAoUiA9IE1hdGguc2luKGIpKSwKICAgICAgICAgICAgICAgICAgICAoVCA9IE1hdGguc2luKCgxIC0gcikgKiBiKSAvIFIpLAogICAgICAgICAgICAgICAgICAgIChNID0gTWF0aC5zaW4ociAqIGIpIC8gUikpCiAgICAgICAgICAgICAgICAgIDogKChUID0gMSAtIHIpLCAoTSA9IHIpKSwKICAgICAgICAgICAgICAgIChuWzBdID0gVCAqIGkgKyBNICogYyksCiAgICAgICAgICAgICAgICAoblsxXSA9IFQgKiBhICsgTSAqIHUpLAogICAgICAgICAgICAgICAgKG5bMl0gPSBUICogbyArIE0gKiBkKSwKICAgICAgICAgICAgICAgIChuWzNdID0gVCAqIGwgKyBNICogRSksCiAgICAgICAgICAgICAgICBuCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBxdWF0ZXJuaW9uVG9FdWxlcihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSB0WzBdLAogICAgICAgICAgICAgICAgbiA9IHRbMV0sCiAgICAgICAgICAgICAgICBpID0gdFsyXSwKICAgICAgICAgICAgICAgIGEgPSB0WzNdLAogICAgICAgICAgICAgICAgbyA9IE1hdGguYXRhbjIoCiAgICAgICAgICAgICAgICAgIDIgKiBuICogYSAtIDIgKiByICogaSwKICAgICAgICAgICAgICAgICAgMSAtIDIgKiBuICogbiAtIDIgKiBpICogaQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGwgPSBNYXRoLmFzaW4oMiAqIHIgKiBuICsgMiAqIGkgKiBhKSwKICAgICAgICAgICAgICAgIGMgPSBNYXRoLmF0YW4yKAogICAgICAgICAgICAgICAgICAyICogciAqIGEgLSAyICogbiAqIGksCiAgICAgICAgICAgICAgICAgIDEgLSAyICogciAqIHIgLSAyICogaSAqIGkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgKGVbMF0gPSBvIC8gZGVnVG9SYWRzKSwKICAgICAgICAgICAgICAgIChlWzFdID0gbCAvIGRlZ1RvUmFkcyksCiAgICAgICAgICAgICAgICAoZVsyXSA9IGMgLyBkZWdUb1JhZHMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVF1YXRlcm5pb24oZSkgewogICAgICAgICAgICAgIHZhciB0ID0gZVswXSAqIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgIHIgPSBlWzFdICogZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgbiA9IGVbMl0gKiBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICBpID0gTWF0aC5jb3ModCAvIDIpLAogICAgICAgICAgICAgICAgYSA9IE1hdGguY29zKHIgLyAyKSwKICAgICAgICAgICAgICAgIG8gPSBNYXRoLmNvcyhuIC8gMiksCiAgICAgICAgICAgICAgICBsID0gTWF0aC5zaW4odCAvIDIpLAogICAgICAgICAgICAgICAgYyA9IE1hdGguc2luKHIgLyAyKSwKICAgICAgICAgICAgICAgIHUgPSBNYXRoLnNpbihuIC8gMiksCiAgICAgICAgICAgICAgICBkID0gaSAqIGEgKiBvIC0gbCAqIGMgKiB1LAogICAgICAgICAgICAgICAgRSA9IGwgKiBjICogbyArIGkgKiBhICogdSwKICAgICAgICAgICAgICAgIGIgPSBsICogYSAqIG8gKyBpICogYyAqIHUsCiAgICAgICAgICAgICAgICBQID0gaSAqIGMgKiBvIC0gbCAqIGEgKiB1OwogICAgICAgICAgICAgIHJldHVybiBbRSwgYiwgUCwgZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0VmFsdWVBdEN1cnJlbnRUaW1lKCkgewogICAgICAgICAgICAgIHZhciBlID0gdGhpcy5jb21wLnJlbmRlcmVkRnJhbWUgLSB0aGlzLm9mZnNldFRpbWUsCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5rZXlmcmFtZXNbMF0udCAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgIHIgPQogICAgICAgICAgICAgICAgICB0aGlzLmtleWZyYW1lc1t0aGlzLmtleWZyYW1lcy5sZW5ndGggLSAxXS50IC0gdGhpcy5vZmZzZXRUaW1lOwogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEoCiAgICAgICAgICAgICAgICAgIGUgPT09IHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSAhPT0gaW5pdEZyYW1lICYmCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSA+PSByICYmIGUgPj0gcikgfHwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSA8IHQgJiYgZSA8IHQpKSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lID49IGUgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLl9jYWNoaW5nLl9sYXN0S2V5ZnJhbWVJbmRleCA9IC0xKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fY2FjaGluZy5sYXN0SW5kZXggPSAwKSk7CiAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuaW50ZXJwb2xhdGVWYWx1ZShlLCB0aGlzLl9jYWNoaW5nKTsKICAgICAgICAgICAgICAgIHRoaXMucHYgPSBuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lID0gZSksIHRoaXMucHY7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gc2V0VlZhbHVlKGUpIHsKICAgICAgICAgICAgICB2YXIgdDsKICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wVHlwZSA9PT0gInVuaWRpbWVuc2lvbmFsIikKICAgICAgICAgICAgICAgICh0ID0gZSAqIHRoaXMubXVsdCksCiAgICAgICAgICAgICAgICAgIG1hdGhBYnModGhpcy52IC0gdCkgPiAxZS01ICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy52ID0gdCksICh0aGlzLl9tZGYgPSAhMCkpOwogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBuID0gdGhpcy52Lmxlbmd0aDsgciA8IG47KQogICAgICAgICAgICAgICAgICAodCA9IGVbcl0gKiB0aGlzLm11bHQpLAogICAgICAgICAgICAgICAgICAgIG1hdGhBYnModGhpcy52W3JdIC0gdCkgPiAxZS01ICYmCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLnZbcl0gPSB0KSwgKHRoaXMuX21kZiA9ICEwKSksCiAgICAgICAgICAgICAgICAgICAgKHIgKz0gMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0VmZmVjdHNTZXF1ZW5jZSgpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhKAogICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkID09PSB0aGlzLmZyYW1lSWQgfHwKICAgICAgICAgICAgICAgICAgIXRoaXMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jaykgewogICAgICAgICAgICAgICAgICB0aGlzLnNldFZWYWx1ZSh0aGlzLnB2KTsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKHRoaXMubG9jayA9ICEwKSwgKHRoaXMuX21kZiA9IHRoaXMuX2lzRmlyc3RGcmFtZSk7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgciA9IHRoaXMua2YgPyB0aGlzLnB2IDogdGhpcy5kYXRhLms7CiAgICAgICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdDsgZSArPSAxKSByID0gdGhpcy5lZmZlY3RzU2VxdWVuY2VbZV0ocik7CiAgICAgICAgICAgICAgICB0aGlzLnNldFZWYWx1ZShyKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubG9jayA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhZGRFZmZlY3QoZSkgewogICAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLnB1c2goZSksCiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gVmFsdWVQcm9wZXJ0eShlLCB0LCByLCBuKSB7CiAgICAgICAgICAgICAgKHRoaXMucHJvcFR5cGUgPSAidW5pZGltZW5zaW9uYWwiKSwKICAgICAgICAgICAgICAgICh0aGlzLm11bHQgPSByIHx8IDEpLAogICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMudiA9IHIgPyB0LmsgKiByIDogdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSBuKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBlLmNvbXApLAogICAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLmtmID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMudmVsID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5lZmZlY3RzU2VxdWVuY2UgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSBwcm9jZXNzRWZmZWN0c1NlcXVlbmNlKSwKICAgICAgICAgICAgICAgICh0aGlzLnNldFZWYWx1ZSA9IHNldFZWYWx1ZSksCiAgICAgICAgICAgICAgICAodGhpcy5hZGRFZmZlY3QgPSBhZGRFZmZlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIE11bHRpRGltZW5zaW9uYWxQcm9wZXJ0eShlLCB0LCByLCBuKSB7CiAgICAgICAgICAgICAgKHRoaXMucHJvcFR5cGUgPSAibXVsdGlkaW1lbnNpb25hbCIpLAogICAgICAgICAgICAgICAgKHRoaXMubXVsdCA9IHIgfHwgMSksCiAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyID0gbiksCiAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gZS5jb21wKSwKICAgICAgICAgICAgICAgICh0aGlzLmsgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5rZiA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSk7CiAgICAgICAgICAgICAgdmFyIGksCiAgICAgICAgICAgICAgICBhID0gdC5rLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdGhpcy52ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGEpLAogICAgICAgICAgICAgICAgdGhpcy5wdiA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCBhKSwKICAgICAgICAgICAgICAgIHRoaXMudmVsID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGEpLAogICAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICAgICBpIDwgYTsKICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICh0aGlzLnZbaV0gPSB0LmtbaV0gKiB0aGlzLm11bHQpLCAodGhpcy5wdltpXSA9IHQua1tpXSk7CiAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gcHJvY2Vzc0VmZmVjdHNTZXF1ZW5jZSksCiAgICAgICAgICAgICAgICAodGhpcy5zZXRWVmFsdWUgPSBzZXRWVmFsdWUpLAogICAgICAgICAgICAgICAgKHRoaXMuYWRkRWZmZWN0ID0gYWRkRWZmZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBLZXlmcmFtZWRWYWx1ZVByb3BlcnR5KGUsIHQsIHIsIG4pIHsKICAgICAgICAgICAgICAodGhpcy5wcm9wVHlwZSA9ICJ1bmlkaW1lbnNpb25hbCIpLAogICAgICAgICAgICAgICAgKHRoaXMua2V5ZnJhbWVzID0gdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lc01ldGFkYXRhID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMub2Zmc2V0VGltZSA9IGUuZGF0YS5zdCksCiAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpLAogICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcgPSB7CiAgICAgICAgICAgICAgICAgIGxhc3RGcmFtZTogaW5pdEZyYW1lLAogICAgICAgICAgICAgICAgICBsYXN0SW5kZXg6IDAsCiAgICAgICAgICAgICAgICAgIHZhbHVlOiAwLAogICAgICAgICAgICAgICAgICBfbGFzdEtleWZyYW1lSW5kZXg6IC0xLAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAodGhpcy5rID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5tdWx0ID0gciB8fCAxKSwKICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IG4pLAogICAgICAgICAgICAgICAgKHRoaXMuY29tcCA9IGUuY29tcCksCiAgICAgICAgICAgICAgICAodGhpcy52ID0gaW5pdEZyYW1lKSwKICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gaW5pdEZyYW1lKSwKICAgICAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHByb2Nlc3NFZmZlY3RzU2VxdWVuY2UpLAogICAgICAgICAgICAgICAgKHRoaXMuc2V0VlZhbHVlID0gc2V0VlZhbHVlKSwKICAgICAgICAgICAgICAgICh0aGlzLmludGVycG9sYXRlVmFsdWUgPSBpbnRlcnBvbGF0ZVZhbHVlKSwKICAgICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtnZXRWYWx1ZUF0Q3VycmVudFRpbWUuYmluZCh0aGlzKV0pLAogICAgICAgICAgICAgICAgKHRoaXMuYWRkRWZmZWN0ID0gYWRkRWZmZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBLZXlmcmFtZWRNdWx0aWRpbWVuc2lvbmFsUHJvcGVydHkoZSwgdCwgciwgbikgewogICAgICAgICAgICAgIHRoaXMucHJvcFR5cGUgPSAibXVsdGlkaW1lbnNpb25hbCI7CiAgICAgICAgICAgICAgdmFyIGksCiAgICAgICAgICAgICAgICBhID0gdC5rLmxlbmd0aCwKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgIHU7CiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGEgLSAxOyBpICs9IDEpCiAgICAgICAgICAgICAgICB0LmtbaV0udG8gJiYKICAgICAgICAgICAgICAgICAgdC5rW2ldLnMgJiYKICAgICAgICAgICAgICAgICAgdC5rW2kgKyAxXSAmJgogICAgICAgICAgICAgICAgICB0LmtbaSArIDFdLnMgJiYKICAgICAgICAgICAgICAgICAgKChvID0gdC5rW2ldLnMpLAogICAgICAgICAgICAgICAgICAgIChsID0gdC5rW2kgKyAxXS5zKSwKICAgICAgICAgICAgICAgICAgICAoYyA9IHQua1tpXS50byksCiAgICAgICAgICAgICAgICAgICAgKHUgPSB0LmtbaV0udGkpLAogICAgICAgICAgICAgICAgICAgICgoby5sZW5ndGggPT09IDIgJiYKICAgICAgICAgICAgICAgICAgICAgICEob1swXSA9PT0gbFswXSAmJiBvWzFdID09PSBsWzFdKSAmJgogICAgICAgICAgICAgICAgICAgICAgYmV6LnBvaW50T25MaW5lMkQoCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0gKyBjWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBvWzFdICsgY1sxXQogICAgICAgICAgICAgICAgICAgICAgKSAmJgogICAgICAgICAgICAgICAgICAgICAgYmV6LnBvaW50T25MaW5lMkQoCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0gKyB1WzBdLAogICAgICAgICAgICAgICAgICAgICAgICBsWzFdICsgdVsxXQogICAgICAgICAgICAgICAgICAgICAgKSkgfHwKICAgICAgICAgICAgICAgICAgICAgIChvLmxlbmd0aCA9PT0gMyAmJgogICAgICAgICAgICAgICAgICAgICAgICAhKG9bMF0gPT09IGxbMF0gJiYgb1sxXSA9PT0gbFsxXSAmJiBvWzJdID09PSBsWzJdKSAmJgogICAgICAgICAgICAgICAgICAgICAgICBiZXoucG9pbnRPbkxpbmUzRCgKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgb1syXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBsWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzBdICsgY1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzFdICsgY1sxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzJdICsgY1syXQogICAgICAgICAgICAgICAgICAgICAgICApICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGJlei5wb2ludE9uTGluZTNEKAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgb1sxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbFsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBsWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0gKyB1WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0gKyB1WzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMl0gKyB1WzJdCiAgICAgICAgICAgICAgICAgICAgICAgICkpKSAmJgogICAgICAgICAgICAgICAgICAgICgodC5rW2ldLnRvID0gbnVsbCksICh0LmtbaV0udGkgPSBudWxsKSksCiAgICAgICAgICAgICAgICAgICAgb1swXSA9PT0gbFswXSAmJgogICAgICAgICAgICAgICAgICAgIG9bMV0gPT09IGxbMV0gJiYKICAgICAgICAgICAgICAgICAgICBjWzBdID09PSAwICYmCiAgICAgICAgICAgICAgICAgICAgY1sxXSA9PT0gMCAmJgogICAgICAgICAgICAgICAgICAgIHVbMF0gPT09IDAgJiYKICAgICAgICAgICAgICAgICAgICB1WzFdID09PSAwICYmCiAgICAgICAgICAgICAgICAgICAgKG8ubGVuZ3RoID09PSAyIHx8CiAgICAgICAgICAgICAgICAgICAgICAob1syXSA9PT0gbFsyXSAmJiBjWzJdID09PSAwICYmIHVbMl0gPT09IDApKSAmJgogICAgICAgICAgICAgICAgICAgICgodC5rW2ldLnRvID0gbnVsbCksICh0LmtbaV0udGkgPSBudWxsKSkpOwogICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtnZXRWYWx1ZUF0Q3VycmVudFRpbWUuYmluZCh0aGlzKV0pLAogICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMua2V5ZnJhbWVzID0gdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lc01ldGFkYXRhID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMub2Zmc2V0VGltZSA9IGUuZGF0YS5zdCksCiAgICAgICAgICAgICAgICAodGhpcy5rID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMubXVsdCA9IHIgfHwgMSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSBuKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBlLmNvbXApLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSBwcm9jZXNzRWZmZWN0c1NlcXVlbmNlKSwKICAgICAgICAgICAgICAgICh0aGlzLnNldFZWYWx1ZSA9IHNldFZWYWx1ZSksCiAgICAgICAgICAgICAgICAodGhpcy5pbnRlcnBvbGF0ZVZhbHVlID0gaW50ZXJwb2xhdGVWYWx1ZSksCiAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpOwogICAgICAgICAgICAgIHZhciBkID0gdC5rWzBdLnMubGVuZ3RoOwogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB0aGlzLnYgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgZCksCiAgICAgICAgICAgICAgICB0aGlzLnB2ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGQpLAogICAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICAgICBpIDwgZDsKICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICh0aGlzLnZbaV0gPSBpbml0RnJhbWUpLCAodGhpcy5wdltpXSA9IGluaXRGcmFtZSk7CiAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcgPSB7CiAgICAgICAgICAgICAgICBsYXN0RnJhbWU6IGluaXRGcmFtZSwKICAgICAgICAgICAgICAgIGxhc3RJbmRleDogMCwKICAgICAgICAgICAgICAgIHZhbHVlOiBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgZCksCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAodGhpcy5hZGRFZmZlY3QgPSBhZGRFZmZlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBQcm9wZXJ0eUZhY3RvcnkgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGZ1bmN0aW9uIGUociwgbiwgaSwgYSwgbykgewogICAgICAgICAgICAgICAgbi5zaWQgJiYgKG4gPSByLmdsb2JhbERhdGEuc2xvdE1hbmFnZXIuZ2V0UHJvcChuKSk7CiAgICAgICAgICAgICAgICB2YXIgbDsKICAgICAgICAgICAgICAgIGlmICghbi5rLmxlbmd0aCkgbCA9IG5ldyBWYWx1ZVByb3BlcnR5KHIsIG4sIGEsIG8pOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG4ua1swXSA9PSAibnVtYmVyIikKICAgICAgICAgICAgICAgICAgbCA9IG5ldyBNdWx0aURpbWVuc2lvbmFsUHJvcGVydHkociwgbiwgYSwgbyk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgIGwgPSBuZXcgS2V5ZnJhbWVkVmFsdWVQcm9wZXJ0eShyLCBuLCBhLCBvKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgIGwgPSBuZXcgS2V5ZnJhbWVkTXVsdGlkaW1lbnNpb25hbFByb3BlcnR5KHIsIG4sIGEsIG8pOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBsLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggJiYgby5hZGREeW5hbWljUHJvcGVydHkobCksIGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciB0ID0geyBnZXRQcm9wOiBlIH07CiAgICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcigpIHsgfQogICAgICAgICAgICBEeW5hbWljUHJvcGVydHlDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGFkZER5bmFtaWNQcm9wZXJ0eTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMuaW5kZXhPZih0KSA9PT0gLTEgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuZHluYW1pY1Byb3BlcnRpZXMucHVzaCh0KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGREeW5hbWljUHJvcGVydHkodGhpcyksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhMCkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9tZGYgPSAhMTsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzW3RdLmdldFZhbHVlKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllc1t0XS5fbWRmICYmICh0aGlzLl9tZGYgPSAhMCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyID0gdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzID0gW10pLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICExKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgICAgICB2YXIgcG9pbnRQb29sID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiBlKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCAyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHBvb2xGYWN0b3J5KDgsIGUpOwogICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBTaGFwZVBhdGgoKSB7CiAgICAgICAgICAgICAgKHRoaXMuYyA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLl9sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggPSA4KSwKICAgICAgICAgICAgICAgICh0aGlzLnYgPSBjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkpLAogICAgICAgICAgICAgICAgKHRoaXMubyA9IGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSksCiAgICAgICAgICAgICAgICAodGhpcy5pID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLl9tYXhMZW5ndGgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoU2hhcGVQYXRoLnByb3RvdHlwZS5zZXRQYXRoRGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgKHRoaXMuYyA9IGUpLCB0aGlzLnNldExlbmd0aCh0KTsKICAgICAgICAgICAgICBmb3IgKHZhciByID0gMDsgciA8IHQ7KQogICAgICAgICAgICAgICAgKHRoaXMudltyXSA9IHBvaW50UG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAodGhpcy5vW3JdID0gcG9pbnRQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmlbcl0gPSBwb2ludFBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAgICAgKHIgKz0gMSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnNldExlbmd0aCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBmb3IgKDsgdGhpcy5fbWF4TGVuZ3RoIDwgZTspIHRoaXMuZG91YmxlQXJyYXlMZW5ndGgoKTsKICAgICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9IGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNoYXBlUGF0aC5wcm90b3R5cGUuZG91YmxlQXJyYXlMZW5ndGggPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy52ID0gdGhpcy52LmNvbmNhdChjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaSA9IHRoaXMuaS5jb25jYXQoY3JlYXRlU2l6ZWRBcnJheSh0aGlzLl9tYXhMZW5ndGgpKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm8gPSB0aGlzLm8uY29uY2F0KGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSkpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWF4TGVuZ3RoICo9IDIpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnNldFhZQXQgPSBmdW5jdGlvbiAoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICAgICAgdmFyIGE7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKAogICAgICAgICAgICAgICAgKCh0aGlzLl9sZW5ndGggPSBNYXRoLm1heCh0aGlzLl9sZW5ndGgsIG4gKyAxKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA+PSB0aGlzLl9tYXhMZW5ndGggJiYgdGhpcy5kb3VibGVBcnJheUxlbmd0aCgpLAogICAgICAgICAgICAgICAgICByKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgInYiOgogICAgICAgICAgICAgICAgICAgIGEgPSB0aGlzLnY7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImkiOgogICAgICAgICAgICAgICAgICAgIGEgPSB0aGlzLmk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgIm8iOgogICAgICAgICAgICAgICAgICAgIGEgPSB0aGlzLm87CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYSA9IFtdOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKCFhW25dIHx8IChhW25dICYmICFpKSkgJiYgKGFbbl0gPSBwb2ludFBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAgICAgKGFbbl1bMF0gPSBlKSwKICAgICAgICAgICAgICAgICAgKGFbbl1bMV0gPSB0KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU2hhcGVQYXRoLnByb3RvdHlwZS5zZXRUcmlwbGVBdCA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBsCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB0aGlzLnNldFhZQXQoZSwgdCwgInYiLCBvLCBsKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZXRYWUF0KHIsIG4sICJvIiwgbywgbCksCiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0WFlBdChpLCBhLCAiaSIsIG8sIGwpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnJldmVyc2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IG5ldyBTaGFwZVBhdGgoKTsKICAgICAgICAgICAgICAgIGUuc2V0UGF0aERhdGEodGhpcy5jLCB0aGlzLl9sZW5ndGgpOwogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLnYsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLm8sCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmksCiAgICAgICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgICAgdGhpcy5jICYmCiAgICAgICAgICAgICAgICAgIChlLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgIHRbMF1bMF0sCiAgICAgICAgICAgICAgICAgICAgdFswXVsxXSwKICAgICAgICAgICAgICAgICAgICBuWzBdWzBdLAogICAgICAgICAgICAgICAgICAgIG5bMF1bMV0sCiAgICAgICAgICAgICAgICAgICAgclswXVswXSwKICAgICAgICAgICAgICAgICAgICByWzBdWzFdLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAoaSA9IDEpKTsKICAgICAgICAgICAgICAgIHZhciBhID0gdGhpcy5fbGVuZ3RoIC0gMSwKICAgICAgICAgICAgICAgICAgbyA9IHRoaXMuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgbDsKICAgICAgICAgICAgICAgIGZvciAobCA9IGk7IGwgPCBvOyBsICs9IDEpCiAgICAgICAgICAgICAgICAgIGUuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgdFthXVswXSwKICAgICAgICAgICAgICAgICAgICB0W2FdWzFdLAogICAgICAgICAgICAgICAgICAgIG5bYV1bMF0sCiAgICAgICAgICAgICAgICAgICAgblthXVsxXSwKICAgICAgICAgICAgICAgICAgICByW2FdWzBdLAogICAgICAgICAgICAgICAgICAgIHJbYV1bMV0sCiAgICAgICAgICAgICAgICAgICAgbCwKICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIChhIC09IDEpOwogICAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNoYXBlUGF0aC5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xlbmd0aDsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIHNoYXBlUG9vbCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2hhcGVQYXRoKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHQoaSkgewogICAgICAgICAgICAgICAgdmFyIGEgPSBpLl9sZW5ndGgsCiAgICAgICAgICAgICAgICAgIG87CiAgICAgICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgYTsgbyArPSAxKQogICAgICAgICAgICAgICAgICBwb2ludFBvb2wucmVsZWFzZShpLnZbb10pLAogICAgICAgICAgICAgICAgICAgIHBvaW50UG9vbC5yZWxlYXNlKGkuaVtvXSksCiAgICAgICAgICAgICAgICAgICAgcG9pbnRQb29sLnJlbGVhc2UoaS5vW29dKSwKICAgICAgICAgICAgICAgICAgICAoaS52W29dID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKGkuaVtvXSA9IG51bGwpLAogICAgICAgICAgICAgICAgICAgIChpLm9bb10gPSBudWxsKTsKICAgICAgICAgICAgICAgIChpLl9sZW5ndGggPSAwKSwgKGkuYyA9ICExKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gcihpKSB7CiAgICAgICAgICAgICAgICB2YXIgYSA9IG4ubmV3RWxlbWVudCgpLAogICAgICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgICAgICBsID0gaS5fbGVuZ3RoID09PSB2b2lkIDAgPyBpLnYubGVuZ3RoIDogaS5fbGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChhLnNldExlbmd0aChsKSwgYS5jID0gaS5jLCBvID0gMDsgbyA8IGw7IG8gKz0gMSkKICAgICAgICAgICAgICAgICAgYS5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICBpLnZbb11bMF0sCiAgICAgICAgICAgICAgICAgICAgaS52W29dWzFdLAogICAgICAgICAgICAgICAgICAgIGkub1tvXVswXSwKICAgICAgICAgICAgICAgICAgICBpLm9bb11bMV0sCiAgICAgICAgICAgICAgICAgICAgaS5pW29dWzBdLAogICAgICAgICAgICAgICAgICAgIGkuaVtvXVsxXSwKICAgICAgICAgICAgICAgICAgICBvCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIG4gPSBwb29sRmFjdG9yeSg0LCBlLCB0KTsKICAgICAgICAgICAgICByZXR1cm4gKG4uY2xvbmUgPSByKSwgbjsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gU2hhcGVDb2xsZWN0aW9uKCkgewogICAgICAgICAgICAgICh0aGlzLl9sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggPSA0KSwKICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlcyA9IGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKFNoYXBlQ29sbGVjdGlvbi5wcm90b3R5cGUuYWRkU2hhcGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9PT0gdGhpcy5fbWF4TGVuZ3RoICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuc2hhcGVzID0gdGhpcy5zaGFwZXMuY29uY2F0KAogICAgICAgICAgICAgICAgICBjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWF4TGVuZ3RoICo9IDIpKSwKICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc1t0aGlzLl9sZW5ndGhdID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5fbGVuZ3RoICs9IDEpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU2hhcGVDb2xsZWN0aW9uLnByb3RvdHlwZS5yZWxlYXNlU2hhcGVzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGU7CiAgICAgICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdGhpcy5fbGVuZ3RoOyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHNoYXBlUG9vbC5yZWxlYXNlKHRoaXMuc2hhcGVzW2VdKTsKICAgICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9IDA7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBzaGFwZUNvbGxlY3Rpb25Qb29sID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IHsgbmV3U2hhcGVDb2xsZWN0aW9uOiBpLCByZWxlYXNlOiBhIH0sCiAgICAgICAgICAgICAgICB0ID0gMCwKICAgICAgICAgICAgICAgIHIgPSA0LAogICAgICAgICAgICAgICAgbiA9IGNyZWF0ZVNpemVkQXJyYXkocik7CiAgICAgICAgICAgICAgZnVuY3Rpb24gaSgpIHsKICAgICAgICAgICAgICAgIHZhciBvOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdCA/ICgodCAtPSAxKSwgKG8gPSBuW3RdKSkgOiAobyA9IG5ldyBTaGFwZUNvbGxlY3Rpb24oKSksIG8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGEobykgewogICAgICAgICAgICAgICAgdmFyIGwsCiAgICAgICAgICAgICAgICAgIGMgPSBvLl9sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKGwgPSAwOyBsIDwgYzsgbCArPSAxKSBzaGFwZVBvb2wucmVsZWFzZShvLnNoYXBlc1tsXSk7CiAgICAgICAgICAgICAgICAoby5fbGVuZ3RoID0gMCksCiAgICAgICAgICAgICAgICAgIHQgPT09IHIgJiYgKChuID0gcG9vbGluZy5kb3VibGUobikpLCAociAqPSAyKSksCiAgICAgICAgICAgICAgICAgIChuW3RdID0gbyksCiAgICAgICAgICAgICAgICAgICh0ICs9IDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBTaGFwZVByb3BlcnR5RmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IC05OTk5OTk7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0KHgsIGssIFMpIHsKICAgICAgICAgICAgICAgICAgdmFyIEEgPSBTLmxhc3RJbmRleCwKICAgICAgICAgICAgICAgICAgICBPLAogICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICQsCiAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICBKLAogICAgICAgICAgICAgICAgICAgIEssCiAgICAgICAgICAgICAgICAgICAgZWUsCiAgICAgICAgICAgICAgICAgICAgbGUgPSB0aGlzLmtleWZyYW1lczsKICAgICAgICAgICAgICAgICAgaWYgKHggPCBsZVswXS50IC0gdGhpcy5vZmZzZXRUaW1lKQogICAgICAgICAgICAgICAgICAgIChPID0gbGVbMF0uc1swXSksIChEID0gITApLCAoQSA9IDApOwogICAgICAgICAgICAgICAgICBlbHNlIGlmICh4ID49IGxlW2xlLmxlbmd0aCAtIDFdLnQgLSB0aGlzLm9mZnNldFRpbWUpCiAgICAgICAgICAgICAgICAgICAgKE8gPSBsZVtsZS5sZW5ndGggLSAxXS5zCiAgICAgICAgICAgICAgICAgICAgICA/IGxlW2xlLmxlbmd0aCAtIDFdLnNbMF0KICAgICAgICAgICAgICAgICAgICAgIDogbGVbbGUubGVuZ3RoIC0gMl0uZVswXSksCiAgICAgICAgICAgICAgICAgICAgICAoRCA9ICEwKTsKICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgIHZhciByZSA9IEEsIEIgPSBsZS5sZW5ndGggLSAxLCB6ID0gITAsIE4sIFYsIFE7CiAgICAgICAgICAgICAgICAgICAgICB6ICYmCiAgICAgICAgICAgICAgICAgICAgICAoKE4gPSBsZVtyZV0pLAogICAgICAgICAgICAgICAgICAgICAgICAoViA9IGxlW3JlICsgMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAhKFYudCAtIHRoaXMub2Zmc2V0VGltZSA+IHgpKTsKCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgcmUgPCBCIC0gMSA/IChyZSArPSAxKSA6ICh6ID0gITEpOwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgoUSA9IHRoaXMua2V5ZnJhbWVzTWV0YWRhdGFbcmVdIHx8IHt9KSwKICAgICAgICAgICAgICAgICAgICAgICAgKEQgPSBOLmggPT09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAoQSA9IHJlKSwKICAgICAgICAgICAgICAgICAgICAgICAgIUQpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoeCA+PSBWLnQgLSB0aGlzLm9mZnNldFRpbWUpIEsgPSAxOwogICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoeCA8IE4udCAtIHRoaXMub2Zmc2V0VGltZSkgSyA9IDA7CiAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFk7CiAgICAgICAgICAgICAgICAgICAgICAgIFEuX19mbmN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoWSA9IFEuX19mbmN0KQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKChZID0gQmV6aWVyRmFjdG9yeS5nZXRCZXppZXJFYXNpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLm8ueCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4uby55LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTi5pLngsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLmkueQogICAgICAgICAgICAgICAgICAgICAgICAgICkuZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChRLl9fZm5jdCA9IFkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoSyA9IFkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCAtIChOLnQgLSB0aGlzLm9mZnNldFRpbWUpKSAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVi50IC0gdGhpcy5vZmZzZXRUaW1lIC0gKE4udCAtIHRoaXMub2Zmc2V0VGltZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBGID0gVi5zID8gVi5zWzBdIDogTi5lWzBdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBPID0gTi5zWzBdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgcSA9IGsuX2xlbmd0aCwgSiA9IE8uaVswXS5sZW5ndGgsIFMubGFzdEluZGV4ID0gQSwgSCA9IDA7CiAgICAgICAgICAgICAgICAgICAgSCA8IHE7CiAgICAgICAgICAgICAgICAgICAgSCArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBmb3IgKCQgPSAwOyAkIDwgSjsgJCArPSAxKQogICAgICAgICAgICAgICAgICAgICAgKGVlID0gRAogICAgICAgICAgICAgICAgICAgICAgICA/IE8uaVtIXVskXQogICAgICAgICAgICAgICAgICAgICAgICA6IE8uaVtIXVskXSArIChGLmlbSF1bJF0gLSBPLmlbSF1bJF0pICogSyksCiAgICAgICAgICAgICAgICAgICAgICAgIChrLmlbSF1bJF0gPSBlZSksCiAgICAgICAgICAgICAgICAgICAgICAgIChlZSA9IEQKICAgICAgICAgICAgICAgICAgICAgICAgICA/IE8ub1tIXVskXQogICAgICAgICAgICAgICAgICAgICAgICAgIDogTy5vW0hdWyRdICsgKEYub1tIXVskXSAtIE8ub1tIXVskXSkgKiBLKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGsub1tIXVskXSA9IGVlKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGVlID0gRAogICAgICAgICAgICAgICAgICAgICAgICAgID8gTy52W0hdWyRdCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBPLnZbSF1bJF0gKyAoRi52W0hdWyRdIC0gTy52W0hdWyRdKSAqIEspLAogICAgICAgICAgICAgICAgICAgICAgICAoay52W0hdWyRdID0gZWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gcigpIHsKICAgICAgICAgICAgICAgICAgdmFyIHggPSB0aGlzLmNvbXAucmVuZGVyZWRGcmFtZSAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgICAgICBrID0gdGhpcy5rZXlmcmFtZXNbMF0udCAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgICAgICBTID0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZnJhbWVzW3RoaXMua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLQogICAgICAgICAgICAgICAgICAgICAgdGhpcy5vZmZzZXRUaW1lLAogICAgICAgICAgICAgICAgICAgIEEgPSB0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAoQSAhPT0gZSAmJiAoKEEgPCBrICYmIHggPCBrKSB8fCAoQSA+IFMgJiYgeCA+IFMpKSkgfHwKICAgICAgICAgICAgICAgICAgICAoKHRoaXMuX2NhY2hpbmcubGFzdEluZGV4ID0KICAgICAgICAgICAgICAgICAgICAgIEEgPCB4ID8gdGhpcy5fY2FjaGluZy5sYXN0SW5kZXggOiAwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJwb2xhdGVTaGFwZSh4LCB0aGlzLnB2LCB0aGlzLl9jYWNoaW5nKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lID0geCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wdgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbigpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5wYXRocyA9IHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb247CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBpKHgsIGspIHsKICAgICAgICAgICAgICAgICAgaWYgKHguX2xlbmd0aCAhPT0gay5fbGVuZ3RoIHx8IHguYyAhPT0gay5jKSByZXR1cm4gITE7CiAgICAgICAgICAgICAgICAgIHZhciBTLAogICAgICAgICAgICAgICAgICAgIEEgPSB4Ll9sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAoUyA9IDA7IFMgPCBBOyBTICs9IDEpCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgeC52W1NdWzBdICE9PSBrLnZbU11bMF0gfHwKICAgICAgICAgICAgICAgICAgICAgIHgudltTXVsxXSAhPT0gay52W1NdWzFdIHx8CiAgICAgICAgICAgICAgICAgICAgICB4Lm9bU11bMF0gIT09IGsub1tTXVswXSB8fAogICAgICAgICAgICAgICAgICAgICAgeC5vW1NdWzFdICE9PSBrLm9bU11bMV0gfHwKICAgICAgICAgICAgICAgICAgICAgIHguaVtTXVswXSAhPT0gay5pW1NdWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICB4LmlbU11bMV0gIT09IGsuaVtTXVsxXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhMTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYSh4KSB7CiAgICAgICAgICAgICAgICAgIGkodGhpcy52LCB4KSB8fAogICAgICAgICAgICAgICAgICAgICgodGhpcy52ID0gc2hhcGVQb29sLmNsb25lKHgpKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24ucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbi5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbikpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbygpIHsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCkgewogICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZGYgPSAhMTsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jaykgewogICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWVmFsdWUodGhpcy5wdik7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMCksICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHg7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5rZgogICAgICAgICAgICAgICAgICAgICAgPyAoeCA9IHRoaXMucHYpCiAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YS5rcwogICAgICAgICAgICAgICAgICAgICAgICA/ICh4ID0gdGhpcy5kYXRhLmtzLmspCiAgICAgICAgICAgICAgICAgICAgICAgIDogKHggPSB0aGlzLmRhdGEucHQuayk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGssCiAgICAgICAgICAgICAgICAgICAgICBTID0gdGhpcy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBTOyBrICs9IDEpIHggPSB0aGlzLmVmZmVjdHNTZXF1ZW5jZVtrXSh4KTsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZWYWx1ZSh4KSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGwoeCwgaywgUykgewogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wVHlwZSA9ICJzaGFwZSIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSB4LmNvbXApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IHgpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSB4KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gayksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5rZiA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICAgICAgICB2YXIgQSA9IFMgPT09IDMgPyBrLnB0LmsgOiBrLmtzLms7CiAgICAgICAgICAgICAgICAgICh0aGlzLnYgPSBzaGFwZVBvb2wuY2xvbmUoQSkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gc2hhcGVQb29sLmNsb25lKHRoaXMudikpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uID0KICAgICAgICAgICAgICAgICAgICAgIHNoYXBlQ29sbGVjdGlvblBvb2wubmV3U2hhcGVDb2xsZWN0aW9uKCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRocy5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gbiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWZmZWN0c1NlcXVlbmNlID0gW10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYyh4KSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLnB1c2goeCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKGwucHJvdG90eXBlLmludGVycG9sYXRlU2hhcGUgPSB0KSwKICAgICAgICAgICAgICAgICAgKGwucHJvdG90eXBlLmdldFZhbHVlID0gbyksCiAgICAgICAgICAgICAgICAgIChsLnByb3RvdHlwZS5zZXRWVmFsdWUgPSBhKSwKICAgICAgICAgICAgICAgICAgKGwucHJvdG90eXBlLmFkZEVmZmVjdCA9IGMpOwogICAgICAgICAgICAgICAgZnVuY3Rpb24gdSh4LCBrLCBTKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BUeXBlID0gInNoYXBlIiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29tcCA9IHguY29tcCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IHgpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IHgpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLm9mZnNldFRpbWUgPSB4LmRhdGEuc3QpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lcyA9IFMgPT09IDMgPyBrLnB0LmsgOiBrLmtzLmspLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lc01ldGFkYXRhID0gW10pLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmsgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMCk7CiAgICAgICAgICAgICAgICAgIHZhciBBID0gdGhpcy5rZXlmcmFtZXNbMF0uc1swXS5pLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRQYXRoRGF0YSh0aGlzLmtleWZyYW1lc1swXS5zWzBdLmMsIEEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gc2hhcGVQb29sLmNsb25lKHRoaXMudikpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uID0KICAgICAgICAgICAgICAgICAgICAgIHNoYXBlQ29sbGVjdGlvblBvb2wubmV3U2hhcGVDb2xsZWN0aW9uKCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRocy5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxhc3RGcmFtZSA9IGUpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gbiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcgPSB7IGxhc3RGcmFtZTogZSwgbGFzdEluZGV4OiAwIH0pLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtyLmJpbmQodGhpcyldKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICh1LnByb3RvdHlwZS5nZXRWYWx1ZSA9IG8pLAogICAgICAgICAgICAgICAgICAodS5wcm90b3R5cGUuaW50ZXJwb2xhdGVTaGFwZSA9IHQpLAogICAgICAgICAgICAgICAgICAodS5wcm90b3R5cGUuc2V0VlZhbHVlID0gYSksCiAgICAgICAgICAgICAgICAgICh1LnByb3RvdHlwZS5hZGRFZmZlY3QgPSBjKTsKICAgICAgICAgICAgICAgIHZhciBkID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgdmFyIHggPSByb3VuZENvcm5lcjsKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gayhTLCBBKSB7CiAgICAgICAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFBhdGhEYXRhKCEwLCA0KSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uID0KICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wYXRocyA9IHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24pLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbi5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZCA9IEEuZCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gUyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gUy5jb21wKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoUyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoUywgQS5wLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoUywgQS5zLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoKHRoaXMuayA9ICExKSwgdGhpcy5jb252ZXJ0RWxsVG9QYXRoKCkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgKGsucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgcmVzZXQ6IG4sCiAgICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkICE9PSB0aGlzLmZyYW1lSWQgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21kZiAmJiB0aGlzLmNvbnZlcnRFbGxUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgY29udmVydEVsbFRvUGF0aDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IHRoaXMucC52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE8gPSB0aGlzLnAudlsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5zLnZbMF0gLyAyLAogICAgICAgICAgICAgICAgICAgICAgICAgIEQgPSB0aGlzLnMudlsxXSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgSCA9IHRoaXMuZCAhPT0gMywKICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gdGhpcy52OwogICAgICAgICAgICAgICAgICAgICAgICAoJC52WzBdWzBdID0gQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQudlswXVsxXSA9IE8gLSBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC52WzFdWzBdID0gSCA/IEEgKyBGIDogQSAtIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLnZbMV1bMV0gPSBPKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC52WzJdWzBdID0gQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQudlsyXVsxXSA9IE8gKyBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC52WzNdWzBdID0gSCA/IEEgLSBGIDogQSArIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLnZbM11bMV0gPSBPKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5pWzBdWzBdID0gSCA/IEEgLSBGICogeCA6IEEgKyBGICogeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQuaVswXVsxXSA9IE8gLSBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5pWzFdWzBdID0gSCA/IEEgKyBGIDogQSAtIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLmlbMV1bMV0gPSBPIC0gRCAqIHgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLmlbMl1bMF0gPSBIID8gQSArIEYgKiB4IDogQSAtIEYgKiB4KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5pWzJdWzFdID0gTyArIEQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLmlbM11bMF0gPSBIID8gQSAtIEYgOiBBICsgRiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQuaVszXVsxXSA9IE8gKyBEICogeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQub1swXVswXSA9IEggPyBBICsgRiAqIHggOiBBIC0gRiAqIHgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLm9bMF1bMV0gPSBPIC0gRCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQub1sxXVswXSA9IEggPyBBICsgRiA6IEEgLSBGKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5vWzFdWzFdID0gTyArIEQgKiB4KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5vWzJdWzBdID0gSCA/IEEgLSBGICogeCA6IEEgKyBGICogeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQub1syXVsxXSA9IE8gKyBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5vWzNdWzBdID0gSCA/IEEgLSBGIDogQSArIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLm9bM11bMV0gPSBPIC0gRCAqIHgpOwogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIGspLAogICAgICAgICAgICAgICAgICAgIGsKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgICAgIEUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHgoaywgUykgewogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0UGF0aERhdGEoITAsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gayksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBrLmNvbXApLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gUyksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmQgPSBTLmQpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoayksCiAgICAgICAgICAgICAgICAgICAgICAgIFMuc3kgPT09IDEKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy5pciA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMuaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmlzID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMuaXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29udmVydFRvUGF0aCA9IHRoaXMuY29udmVydFN0YXJUb1BhdGgpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMuY29udmVydFRvUGF0aCA9IHRoaXMuY29udmVydFBvbHlnb25Ub1BhdGgpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wdCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgICAgIGssCiAgICAgICAgICAgICAgICAgICAgICAgICAgUy5wdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGssIFMucCwgMSwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICAgICAgICBTLnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMub3IgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgICAgICAgIFMub3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm9zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICAgICAgICBTLm9zLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24uYWRkU2hhcGUodGhpcy52KSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMgPSB0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy5rID0gITEpLCB0aGlzLmNvbnZlcnRUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgICAoeC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0OiBuLAogICAgICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZyYW1lSWQgPSB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWRmICYmIHRoaXMuY29udmVydFRvUGF0aCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFN0YXJUb1BhdGg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgUyA9IE1hdGguZmxvb3IodGhpcy5wdC52KSAqIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBID0gKE1hdGguUEkgKiAyKSAvIFMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPID0gITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5vci52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRCA9IHRoaXMuaXIudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggPSB0aGlzLm9zLnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gdGhpcy5pcy52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcSA9ICgyICogTWF0aC5QSSAqIEYpIC8gKFMgKiAyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEogPSAoMiAqIE1hdGguUEkgKiBEKSAvIChTICogMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBLLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQiA9IC1NYXRoLlBJIC8gMjsKICAgICAgICAgICAgICAgICAgICAgICAgICBCICs9IHRoaXMuci52OwogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB6ID0gdGhpcy5kYXRhLmQgPT09IDMgPyAtMSA6IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh0aGlzLnYuX2xlbmd0aCA9IDAsIEsgPSAwOyBLIDwgUzsgSyArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWUgPSBPID8gRiA6IEQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGUgPSBPID8gSCA6ICQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmUgPSBPID8gcSA6IEopOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIE4gPSBlZSAqIE1hdGguY29zKEIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWID0gZWUgKiBNYXRoLnNpbihCKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9PT0gMCAmJiBWID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogViAvIE1hdGguc3FydChOICogTiArIFYgKiBWKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9PT0gMCAmJiBWID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLU4gLyBNYXRoLnNxcnQoTiAqIE4gKyBWICogVik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTiArPSArdGhpcy5wLnZbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoViArPSArdGhpcy5wLnZbMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4gLSBRICogcmUgKiBsZSAqIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViAtIFkgKiByZSAqIGxlICogeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICsgUSAqIHJlICogbGUgKiB6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYgKyBZICogcmUgKiBsZSAqIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTyA9ICFPKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEIgKz0gQSAqIHopOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFBvbHlnb25Ub1BhdGg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgUyA9IE1hdGguZmxvb3IodGhpcy5wdC52KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgPSAoTWF0aC5QSSAqIDIpIC8gUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8gPSB0aGlzLm9yLnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5vcy52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRCA9ICgyICogTWF0aC5QSSAqIE8pIC8gKFMgKiA0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gLU1hdGguUEkgKiAwLjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxID0gdGhpcy5kYXRhLmQgPT09IDMgPyAtMSA6IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQgKz0gdGhpcy5yLnYsIHRoaXMudi5fbGVuZ3RoID0gMCwgSCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIIDwgUzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggKz0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEogPSBPICogTWF0aC5jb3MoJCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEsgPSBPICogTWF0aC5zaW4oJCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVlID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKID09PSAwICYmIEsgPT09IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBLIC8gTWF0aC5zcXJ0KEogKiBKICsgSyAqIEspLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiA9PT0gMCAmJiBLID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLUogLyBNYXRoLnNxcnQoSiAqIEogKyBLICogSyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSiArPSArdGhpcy5wLnZbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSyArPSArdGhpcy5wLnZbMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEogLSBlZSAqIEQgKiBGICogcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLIC0gbGUgKiBEICogRiAqIHEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiArIGVlICogRCAqIEYgKiBxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEsgKyBsZSAqIEQgKiBGICogcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkICs9IEEgKiBxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMubGVuZ3RoID0gMCksICh0aGlzLnBhdGhzWzBdID0gdGhpcy52KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCB4KSwKICAgICAgICAgICAgICAgICAgICAgIHgKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgICAgICBiID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB4KGssIFMpIHsKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYgPSBzaGFwZVBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMudi5jID0gITApLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24uYWRkU2hhcGUodGhpcy52KSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMgPSB0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGspLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gay5jb21wKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IC0xKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZCA9IFMuZCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihrKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGssIFMucCwgMSwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoaywgUy5zLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnIgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChrLCBTLnIsIDAsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy5rID0gITEpLCB0aGlzLmNvbnZlcnRSZWN0VG9QYXRoKCkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgKHgucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0UmVjdFRvUGF0aDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBTID0gdGhpcy5wLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBID0gdGhpcy5wLnZbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPID0gdGhpcy5zLnZbMF0gLyAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRiA9IHRoaXMucy52WzFdIC8gMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQgPSBibU1pbihPLCBGLCB0aGlzLnIudiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIID0gRCAqICgxIC0gcm91bmRDb3JuZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYuX2xlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kID09PSAyIHx8IHRoaXMuZCA9PT0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRCAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8gLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEICE9PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8gLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8gLSBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZyYW1lSWQgPSB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWRmICYmIHRoaXMuY29udmVydFJlY3RUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0OiBuLAogICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIHgpLAogICAgICAgICAgICAgICAgICAgICAgeAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBQKHgsIGssIFMpIHsKICAgICAgICAgICAgICAgICAgdmFyIEE7CiAgICAgICAgICAgICAgICAgIGlmIChTID09PSAzIHx8IFMgPT09IDQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgTyA9IFMgPT09IDMgPyBrLnB0IDogay5rcywKICAgICAgICAgICAgICAgICAgICAgIEYgPSBPLms7CiAgICAgICAgICAgICAgICAgICAgRi5sZW5ndGggPyAoQSA9IG5ldyB1KHgsIGssIFMpKSA6IChBID0gbmV3IGwoeCwgaywgUykpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBTID09PSA1CiAgICAgICAgICAgICAgICAgICAgICA/IChBID0gbmV3IGIoeCwgaykpCiAgICAgICAgICAgICAgICAgICAgICA6IFMgPT09IDYKICAgICAgICAgICAgICAgICAgICAgICAgPyAoQSA9IG5ldyBkKHgsIGspKQogICAgICAgICAgICAgICAgICAgICAgICA6IFMgPT09IDcgJiYgKEEgPSBuZXcgRSh4LCBrKSk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBBLmsgJiYgeC5hZGREeW5hbWljUHJvcGVydHkoQSksIEE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBSKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFQoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB1OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIE0gPSB7fTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChNLmdldFNoYXBlUHJvcCA9IFApLAogICAgICAgICAgICAgICAgICAoTS5nZXRDb25zdHJ1Y3RvckZ1bmN0aW9uID0gUiksCiAgICAgICAgICAgICAgICAgIChNLmdldEtleWZyYW1lZENvbnN0cnVjdG9yRnVuY3Rpb24gPSBUKSwKICAgICAgICAgICAgICAgICAgTQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICAvKiEKIFRyYW5zZm9ybWF0aW9uIE1hdHJpeCB2Mi4wCiAoYykgRXBpc3RlbWV4IDIwMTQtMjAxNQogd3d3LmVwaXN0ZW1leC5jb20KIEJ5IEtlbiBGeXJzdGVuYmVyZwogQ29udHJpYnV0aW9ucyBieSBsZWVvbml5YS4KIExpY2Vuc2U6IE1JVCwgaGVhZGVyIHJlcXVpcmVkLgogKi8gdmFyIE1hdHJpeCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBNYXRoLmNvcywKICAgICAgICAgICAgICAgIHQgPSBNYXRoLnNpbiwKICAgICAgICAgICAgICAgIHIgPSBNYXRoLnRhbiwKICAgICAgICAgICAgICAgIG4gPSBNYXRoLnJvdW5kOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGkoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1swXSA9IDEpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1syXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1szXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s0XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s1XSA9IDEpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s2XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s3XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s4XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s5XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxMF0gPSAxKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTFdID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzEyXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxM10gPSAwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTRdID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzE1XSA9IDEpLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBhKE4pIHsKICAgICAgICAgICAgICAgIGlmIChOID09PSAwKSByZXR1cm4gdGhpczsKICAgICAgICAgICAgICAgIHZhciBWID0gZShOKSwKICAgICAgICAgICAgICAgICAgUSA9IHQoTik7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdChWLCAtUSwgMCwgMCwgUSwgViwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oTikgewogICAgICAgICAgICAgICAgaWYgKE4gPT09IDApIHJldHVybiB0aGlzOwogICAgICAgICAgICAgICAgdmFyIFYgPSBlKE4pLAogICAgICAgICAgICAgICAgICBRID0gdChOKTsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl90KDEsIDAsIDAsIDAsIDAsIFYsIC1RLCAwLCAwLCBRLCBWLCAwLCAwLCAwLCAwLCAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbChOKSB7CiAgICAgICAgICAgICAgICBpZiAoTiA9PT0gMCkgcmV0dXJuIHRoaXM7CiAgICAgICAgICAgICAgICB2YXIgViA9IGUoTiksCiAgICAgICAgICAgICAgICAgIFEgPSB0KE4pOwogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3QoViwgMCwgUSwgMCwgMCwgMSwgMCwgMCwgLVEsIDAsIFYsIDAsIDAsIDAsIDAsIDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBjKE4pIHsKICAgICAgICAgICAgICAgIGlmIChOID09PSAwKSByZXR1cm4gdGhpczsKICAgICAgICAgICAgICAgIHZhciBWID0gZShOKSwKICAgICAgICAgICAgICAgICAgUSA9IHQoTik7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdChWLCAtUSwgMCwgMCwgUSwgViwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHUoTiwgVikgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3QoMSwgViwgTiwgMSwgMCwgMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGQoTiwgVikgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hlYXIocihOKSwgcihWKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEUoTiwgVikgewogICAgICAgICAgICAgICAgdmFyIFEgPSBlKFYpLAogICAgICAgICAgICAgICAgICBZID0gdChWKTsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl90KFEsIFksIDAsIDAsIC1ZLCBRLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxKQogICAgICAgICAgICAgICAgICAuX3QoMSwgMCwgMCwgMCwgcihOKSwgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSkKICAgICAgICAgICAgICAgICAgLl90KFEsIC1ZLCAwLCAwLCBZLCBRLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYihOLCBWLCBRKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAhUSAmJiBRICE9PSAwICYmIChRID0gMSksCiAgICAgICAgICAgICAgICAgIE4gPT09IDEgJiYgViA9PT0gMSAmJiBRID09PSAxCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl90KE4sIDAsIDAsIDAsIDAsIFYsIDAsIDAsIDAsIDAsIFEsIDAsIDAsIDAsIDAsIDEpCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBQKAogICAgICAgICAgICAgICAgTiwKICAgICAgICAgICAgICAgIFYsCiAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgWSwKICAgICAgICAgICAgICAgIGhlLAogICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICB2ZSwKICAgICAgICAgICAgICAgIFBlLAogICAgICAgICAgICAgICAgQ2UsCiAgICAgICAgICAgICAgICBpZSwKICAgICAgICAgICAgICAgIG1lLAogICAgICAgICAgICAgICAgcGUsCiAgICAgICAgICAgICAgICBnZSwKICAgICAgICAgICAgICAgIEVlLAogICAgICAgICAgICAgICAgU2UsCiAgICAgICAgICAgICAgICBXCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1swXSA9IE4pLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxXSA9IFYpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1syXSA9IFEpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1szXSA9IFkpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s0XSA9IGhlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbNV0gPSB5ZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzZdID0gdmUpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s3XSA9IFBlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbOF0gPSBDZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzldID0gaWUpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxMF0gPSBtZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzExXSA9IHBlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTJdID0gZ2UpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxM10gPSBFZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzE0XSA9IFNlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTVdID0gVyksCiAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFIoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgKFEgPSBRIHx8IDApLAogICAgICAgICAgICAgICAgICBOICE9PSAwIHx8IFYgIT09IDAgfHwgUSAhPT0gMAogICAgICAgICAgICAgICAgICAgID8gdGhpcy5fdCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCBOLCBWLCBRLCAxKQogICAgICAgICAgICAgICAgICAgIDogdGhpcwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gVCgKICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgIFksCiAgICAgICAgICAgICAgICBoZSwKICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgdmUsCiAgICAgICAgICAgICAgICBQZSwKICAgICAgICAgICAgICAgIENlLAogICAgICAgICAgICAgICAgaWUsCiAgICAgICAgICAgICAgICBtZSwKICAgICAgICAgICAgICAgIHBlLAogICAgICAgICAgICAgICAgZ2UsCiAgICAgICAgICAgICAgICBFZSwKICAgICAgICAgICAgICAgIFNlLAogICAgICAgICAgICAgICAgVwogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIEcgPSB0aGlzLnByb3BzOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICBOID09PSAxICYmCiAgICAgICAgICAgICAgICAgIFYgPT09IDAgJiYKICAgICAgICAgICAgICAgICAgUSA9PT0gMCAmJgogICAgICAgICAgICAgICAgICBZID09PSAwICYmCiAgICAgICAgICAgICAgICAgIGhlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIHllID09PSAxICYmCiAgICAgICAgICAgICAgICAgIHZlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIFBlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIENlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIGllID09PSAwICYmCiAgICAgICAgICAgICAgICAgIG1lID09PSAxICYmCiAgICAgICAgICAgICAgICAgIHBlID09PSAwCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgKEdbMTJdID0gR1sxMl0gKiBOICsgR1sxNV0gKiBnZSksCiAgICAgICAgICAgICAgICAgICAgKEdbMTNdID0gR1sxM10gKiB5ZSArIEdbMTVdICogRWUpLAogICAgICAgICAgICAgICAgICAgIChHWzE0XSA9IEdbMTRdICogbWUgKyBHWzE1XSAqIFNlKSwKICAgICAgICAgICAgICAgICAgICAoR1sxNV0gKj0gVyksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB2YXIgdGUgPSBHWzBdLAogICAgICAgICAgICAgICAgICBhZSA9IEdbMV0sCiAgICAgICAgICAgICAgICAgIHNlID0gR1syXSwKICAgICAgICAgICAgICAgICAgY2UgPSBHWzNdLAogICAgICAgICAgICAgICAgICBkZSA9IEdbNF0sCiAgICAgICAgICAgICAgICAgIGogPSBHWzVdLAogICAgICAgICAgICAgICAgICBVID0gR1s2XSwKICAgICAgICAgICAgICAgICAgWCA9IEdbN10sCiAgICAgICAgICAgICAgICAgIG9lID0gR1s4XSwKICAgICAgICAgICAgICAgICAgZmUgPSBHWzldLAogICAgICAgICAgICAgICAgICB1ZSA9IEdbMTBdLAogICAgICAgICAgICAgICAgICBaID0gR1sxMV0sCiAgICAgICAgICAgICAgICAgIG5lID0gR1sxMl0sCiAgICAgICAgICAgICAgICAgIF9lID0gR1sxM10sCiAgICAgICAgICAgICAgICAgIGJlID0gR1sxNF0sCiAgICAgICAgICAgICAgICAgIFRlID0gR1sxNV07CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoR1swXSA9IHRlICogTiArIGFlICogaGUgKyBzZSAqIENlICsgY2UgKiBnZSksCiAgICAgICAgICAgICAgICAgIChHWzFdID0gdGUgKiBWICsgYWUgKiB5ZSArIHNlICogaWUgKyBjZSAqIEVlKSwKICAgICAgICAgICAgICAgICAgKEdbMl0gPSB0ZSAqIFEgKyBhZSAqIHZlICsgc2UgKiBtZSArIGNlICogU2UpLAogICAgICAgICAgICAgICAgICAoR1szXSA9IHRlICogWSArIGFlICogUGUgKyBzZSAqIHBlICsgY2UgKiBXKSwKICAgICAgICAgICAgICAgICAgKEdbNF0gPSBkZSAqIE4gKyBqICogaGUgKyBVICogQ2UgKyBYICogZ2UpLAogICAgICAgICAgICAgICAgICAoR1s1XSA9IGRlICogViArIGogKiB5ZSArIFUgKiBpZSArIFggKiBFZSksCiAgICAgICAgICAgICAgICAgIChHWzZdID0gZGUgKiBRICsgaiAqIHZlICsgVSAqIG1lICsgWCAqIFNlKSwKICAgICAgICAgICAgICAgICAgKEdbN10gPSBkZSAqIFkgKyBqICogUGUgKyBVICogcGUgKyBYICogVyksCiAgICAgICAgICAgICAgICAgIChHWzhdID0gb2UgKiBOICsgZmUgKiBoZSArIHVlICogQ2UgKyBaICogZ2UpLAogICAgICAgICAgICAgICAgICAoR1s5XSA9IG9lICogViArIGZlICogeWUgKyB1ZSAqIGllICsgWiAqIEVlKSwKICAgICAgICAgICAgICAgICAgKEdbMTBdID0gb2UgKiBRICsgZmUgKiB2ZSArIHVlICogbWUgKyBaICogU2UpLAogICAgICAgICAgICAgICAgICAoR1sxMV0gPSBvZSAqIFkgKyBmZSAqIFBlICsgdWUgKiBwZSArIFogKiBXKSwKICAgICAgICAgICAgICAgICAgKEdbMTJdID0gbmUgKiBOICsgX2UgKiBoZSArIGJlICogQ2UgKyBUZSAqIGdlKSwKICAgICAgICAgICAgICAgICAgKEdbMTNdID0gbmUgKiBWICsgX2UgKiB5ZSArIGJlICogaWUgKyBUZSAqIEVlKSwKICAgICAgICAgICAgICAgICAgKEdbMTRdID0gbmUgKiBRICsgX2UgKiB2ZSArIGJlICogbWUgKyBUZSAqIFNlKSwKICAgICAgICAgICAgICAgICAgKEdbMTVdID0gbmUgKiBZICsgX2UgKiBQZSArIGJlICogcGUgKyBUZSAqIFcpLAogICAgICAgICAgICAgICAgICAodGhpcy5faWRlbnRpdHlDYWxjdWxhdGVkID0gITEpLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBNKE4pIHsKICAgICAgICAgICAgICAgIHZhciBWID0gTi5wcm9wczsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgVlswXSwKICAgICAgICAgICAgICAgICAgVlsxXSwKICAgICAgICAgICAgICAgICAgVlsyXSwKICAgICAgICAgICAgICAgICAgVlszXSwKICAgICAgICAgICAgICAgICAgVls0XSwKICAgICAgICAgICAgICAgICAgVls1XSwKICAgICAgICAgICAgICAgICAgVls2XSwKICAgICAgICAgICAgICAgICAgVls3XSwKICAgICAgICAgICAgICAgICAgVls4XSwKICAgICAgICAgICAgICAgICAgVls5XSwKICAgICAgICAgICAgICAgICAgVlsxMF0sCiAgICAgICAgICAgICAgICAgIFZbMTFdLAogICAgICAgICAgICAgICAgICBWWzEyXSwKICAgICAgICAgICAgICAgICAgVlsxM10sCiAgICAgICAgICAgICAgICAgIFZbMTRdLAogICAgICAgICAgICAgICAgICBWWzE1XQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24geCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCB8fAogICAgICAgICAgICAgICAgICAoKHRoaXMuX2lkZW50aXR5ID0gISgKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzBdICE9PSAxIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxXSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMl0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzNdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1s0XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbNV0gIT09IDEgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzZdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1s3XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbOF0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzldICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxMF0gIT09IDEgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzExXSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTJdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxM10gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzE0XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTVdICE9PSAxCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9pZGVudGl0eUNhbGN1bGF0ZWQgPSAhMCkpLAogICAgICAgICAgICAgICAgICB0aGlzLl9pZGVudGl0eQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gayhOKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBWID0gMDsgViA8IDE2OykgewogICAgICAgICAgICAgICAgICBpZiAoTi5wcm9wc1tWXSAhPT0gdGhpcy5wcm9wc1tWXSkgcmV0dXJuICExOwogICAgICAgICAgICAgICAgICBWICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFMoTikgewogICAgICAgICAgICAgICAgdmFyIFY7CiAgICAgICAgICAgICAgICBmb3IgKFYgPSAwOyBWIDwgMTY7IFYgKz0gMSkgTi5wcm9wc1tWXSA9IHRoaXMucHJvcHNbVl07CiAgICAgICAgICAgICAgICByZXR1cm4gTjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gQShOKSB7CiAgICAgICAgICAgICAgICB2YXIgVjsKICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCAxNjsgViArPSAxKSB0aGlzLnByb3BzW1ZdID0gTltWXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gTyhOLCBWLCBRKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICB4OgogICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzBdICsKICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s0XSArCiAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbOF0gKwogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTJdLAogICAgICAgICAgICAgICAgICB5OgogICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzFdICsKICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s1XSArCiAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbOV0gKwogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTNdLAogICAgICAgICAgICAgICAgICB6OgogICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzJdICsKICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s2XSArCiAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbMTBdICsKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzE0XSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEYoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMF0gKwogICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s0XSArCiAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzhdICsKICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxMl0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEQoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMV0gKwogICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s1XSArCiAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzldICsKICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxM10KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEgoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMl0gKwogICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s2XSArCiAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzEwXSArCiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTRdCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiAkKCkgewogICAgICAgICAgICAgICAgdmFyIE4gPQogICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzBdICogdGhpcy5wcm9wc1s1XSAtCiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMV0gKiB0aGlzLnByb3BzWzRdLAogICAgICAgICAgICAgICAgICBWID0gdGhpcy5wcm9wc1s1XSAvIE4sCiAgICAgICAgICAgICAgICAgIFEgPSAtdGhpcy5wcm9wc1sxXSAvIE4sCiAgICAgICAgICAgICAgICAgIFkgPSAtdGhpcy5wcm9wc1s0XSAvIE4sCiAgICAgICAgICAgICAgICAgIGhlID0gdGhpcy5wcm9wc1swXSAvIE4sCiAgICAgICAgICAgICAgICAgIHllID0KICAgICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s0XSAqIHRoaXMucHJvcHNbMTNdIC0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbNV0gKiB0aGlzLnByb3BzWzEyXSkgLwogICAgICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICAgIHZlID0KICAgICAgICAgICAgICAgICAgICAtKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1swXSAqIHRoaXMucHJvcHNbMTNdIC0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMV0gKiB0aGlzLnByb3BzWzEyXQogICAgICAgICAgICAgICAgICAgICkgLyBOLAogICAgICAgICAgICAgICAgICBQZSA9IG5ldyBNYXRyaXgoKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChQZS5wcm9wc1swXSA9IFYpLAogICAgICAgICAgICAgICAgICAoUGUucHJvcHNbMV0gPSBRKSwKICAgICAgICAgICAgICAgICAgKFBlLnByb3BzWzRdID0gWSksCiAgICAgICAgICAgICAgICAgIChQZS5wcm9wc1s1XSA9IGhlKSwKICAgICAgICAgICAgICAgICAgKFBlLnByb3BzWzEyXSA9IHllKSwKICAgICAgICAgICAgICAgICAgKFBlLnByb3BzWzEzXSA9IHZlKSwKICAgICAgICAgICAgICAgICAgUGUKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHEoTikgewogICAgICAgICAgICAgICAgdmFyIFYgPSB0aGlzLmdldEludmVyc2VNYXRyaXgoKTsKICAgICAgICAgICAgICAgIHJldHVybiBWLmFwcGx5VG9Qb2ludEFycmF5KE5bMF0sIE5bMV0sIE5bMl0gfHwgMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEooTikgewogICAgICAgICAgICAgICAgdmFyIFYsCiAgICAgICAgICAgICAgICAgIFEgPSBOLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgWSA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkgWVtWXSA9IHEoTltWXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gWTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gSyhOLCBWLCBRKSB7CiAgICAgICAgICAgICAgICB2YXIgWSA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCA2KTsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzSWRlbnRpdHkoKSkKICAgICAgICAgICAgICAgICAgKFlbMF0gPSBOWzBdKSwKICAgICAgICAgICAgICAgICAgICAoWVsxXSA9IE5bMV0pLAogICAgICAgICAgICAgICAgICAgIChZWzJdID0gVlswXSksCiAgICAgICAgICAgICAgICAgICAgKFlbM10gPSBWWzFdKSwKICAgICAgICAgICAgICAgICAgICAoWVs0XSA9IFFbMF0pLAogICAgICAgICAgICAgICAgICAgIChZWzVdID0gUVsxXSk7CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIGhlID0gdGhpcy5wcm9wc1swXSwKICAgICAgICAgICAgICAgICAgICB5ZSA9IHRoaXMucHJvcHNbMV0sCiAgICAgICAgICAgICAgICAgICAgdmUgPSB0aGlzLnByb3BzWzRdLAogICAgICAgICAgICAgICAgICAgIFBlID0gdGhpcy5wcm9wc1s1XSwKICAgICAgICAgICAgICAgICAgICBDZSA9IHRoaXMucHJvcHNbMTJdLAogICAgICAgICAgICAgICAgICAgIGllID0gdGhpcy5wcm9wc1sxM107CiAgICAgICAgICAgICAgICAgIChZWzBdID0gTlswXSAqIGhlICsgTlsxXSAqIHZlICsgQ2UpLAogICAgICAgICAgICAgICAgICAgIChZWzFdID0gTlswXSAqIHllICsgTlsxXSAqIFBlICsgaWUpLAogICAgICAgICAgICAgICAgICAgIChZWzJdID0gVlswXSAqIGhlICsgVlsxXSAqIHZlICsgQ2UpLAogICAgICAgICAgICAgICAgICAgIChZWzNdID0gVlswXSAqIHllICsgVlsxXSAqIFBlICsgaWUpLAogICAgICAgICAgICAgICAgICAgIChZWzRdID0gUVswXSAqIGhlICsgUVsxXSAqIHZlICsgQ2UpLAogICAgICAgICAgICAgICAgICAgIChZWzVdID0gUVswXSAqIHllICsgUVsxXSAqIFBlICsgaWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIFk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGVlKE4sIFYsIFEpIHsKICAgICAgICAgICAgICAgIHZhciBZOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdGhpcy5pc0lkZW50aXR5KCkKICAgICAgICAgICAgICAgICAgICA/IChZID0gW04sIFYsIFFdKQogICAgICAgICAgICAgICAgICAgIDogKFkgPSBbCiAgICAgICAgICAgICAgICAgICAgICBOICogdGhpcy5wcm9wc1swXSArCiAgICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s0XSArCiAgICAgICAgICAgICAgICAgICAgICBRICogdGhpcy5wcm9wc1s4XSArCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzEyXSwKICAgICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzFdICsKICAgICAgICAgICAgICAgICAgICAgIFYgKiB0aGlzLnByb3BzWzVdICsKICAgICAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzldICsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTNdLAogICAgICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMl0gKwogICAgICAgICAgICAgICAgICAgICAgViAqIHRoaXMucHJvcHNbNl0gKwogICAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbMTBdICsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTRdLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBZCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBsZShOLCBWKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0lkZW50aXR5KCkpIHJldHVybiBOICsgIiwiICsgVjsKICAgICAgICAgICAgICAgIHZhciBRID0gdGhpcy5wcm9wczsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoKE4gKiBRWzBdICsgViAqIFFbNF0gKyBRWzEyXSkgKiAxMDApIC8gMTAwICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgoTiAqIFFbMV0gKyBWICogUVs1XSArIFFbMTNdKSAqIDEwMCkgLyAxMDAKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHJlKCkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdmFyIE4gPSAwLCBWID0gdGhpcy5wcm9wcywgUSA9ICJtYXRyaXgzZCgiLCBZID0gMWU0OwogICAgICAgICAgICAgICAgICBOIDwgMTY7CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAoUSArPSBuKFZbTl0gKiBZKSAvIFkpLCAoUSArPSBOID09PSAxNSA/ICIpIiA6ICIsIiksIChOICs9IDEpOwogICAgICAgICAgICAgICAgcmV0dXJuIFE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEIoTikgewogICAgICAgICAgICAgICAgdmFyIFYgPSAxZTQ7CiAgICAgICAgICAgICAgICByZXR1cm4gKE4gPCAxZS02ICYmIE4gPiAwKSB8fCAoTiA+IC0xZS02ICYmIE4gPCAwKQogICAgICAgICAgICAgICAgICA/IG4oTiAqIFYpIC8gVgogICAgICAgICAgICAgICAgICA6IE47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHooKSB7CiAgICAgICAgICAgICAgICB2YXIgTiA9IHRoaXMucHJvcHMsCiAgICAgICAgICAgICAgICAgIFYgPSBCKE5bMF0pLAogICAgICAgICAgICAgICAgICBRID0gQihOWzFdKSwKICAgICAgICAgICAgICAgICAgWSA9IEIoTls0XSksCiAgICAgICAgICAgICAgICAgIGhlID0gQihOWzVdKSwKICAgICAgICAgICAgICAgICAgeWUgPSBCKE5bMTJdKSwKICAgICAgICAgICAgICAgICAgdmUgPSBCKE5bMTNdKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICJtYXRyaXgoIiArCiAgICAgICAgICAgICAgICAgIFYgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICBRICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgWSArCiAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgIGhlICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgeWUgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICB2ZSArCiAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gaSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJvdGF0ZSA9IGEpLAogICAgICAgICAgICAgICAgICAodGhpcy5yb3RhdGVYID0gbyksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJvdGF0ZVkgPSBsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucm90YXRlWiA9IGMpLAogICAgICAgICAgICAgICAgICAodGhpcy5za2V3ID0gZCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNrZXdGcm9tQXhpcyA9IEUpLAogICAgICAgICAgICAgICAgICAodGhpcy5zaGVhciA9IHUpLAogICAgICAgICAgICAgICAgICAodGhpcy5zY2FsZSA9IGIpLAogICAgICAgICAgICAgICAgICAodGhpcy5zZXRUcmFuc2Zvcm0gPSBQKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudHJhbnNsYXRlID0gUiksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybSA9IFQpLAogICAgICAgICAgICAgICAgICAodGhpcy5tdWx0aXBseSA9IE0pLAogICAgICAgICAgICAgICAgICAodGhpcy5hcHBseVRvUG9pbnQgPSBPKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1ggPSBGKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1kgPSBEKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1ogPSBIKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1BvaW50QXJyYXkgPSBlZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VG9UcmlwbGVQb2ludHMgPSBLKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQgPSBsZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRvQ1NTID0gcmUpLAogICAgICAgICAgICAgICAgICAodGhpcy50bzJkQ1NTID0geiksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNsb25lID0gUyksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNsb25lRnJvbVByb3BzID0gQSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmVxdWFscyA9IGspLAogICAgICAgICAgICAgICAgICAodGhpcy5pbnZlcnNlUG9pbnRzID0gSiksCiAgICAgICAgICAgICAgICAgICh0aGlzLmludmVyc2VQb2ludCA9IHEpLAogICAgICAgICAgICAgICAgICAodGhpcy5nZXRJbnZlcnNlTWF0cml4ID0gJCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl90ID0gdGhpcy50cmFuc2Zvcm0pLAogICAgICAgICAgICAgICAgICAodGhpcy5pc0lkZW50aXR5ID0geCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pZGVudGl0eSA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHMgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgMTYpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIF90eXBlb2YkMyhlKSB7CiAgICAgICAgICAgICAgIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgPyAoX3R5cGVvZiQzID0gZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHI7CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIDogKF90eXBlb2YkMyA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgci5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICByICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIF90eXBlb2YkMyhlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGxvdHRpZSA9IHt9OwogICAgICAgICAgICBmdW5jdGlvbiBzZXRMb2NhdGlvbihlKSB7CiAgICAgICAgICAgICAgc2V0TG9jYXRpb25IcmVmKGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHNlYXJjaEFuaW1hdGlvbnMoKSB7CiAgICAgICAgICAgICAgYW5pbWF0aW9uTWFuYWdlci5zZWFyY2hBbmltYXRpb25zKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gc2V0U3ViZnJhbWVSZW5kZXJpbmcoZSkgewogICAgICAgICAgICAgIHNldFN1YmZyYW1lRW5hYmxlZChlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzZXRQcmVmaXgoZSkgewogICAgICAgICAgICAgIHNldElkUHJlZml4KGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRBbmltYXRpb24oZSkgewogICAgICAgICAgICAgIHJldHVybiBhbmltYXRpb25NYW5hZ2VyLmxvYWRBbmltYXRpb24oZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gc2V0UXVhbGl0eShlKSB7CiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBlID09ICJzdHJpbmciKQogICAgICAgICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgImhpZ2giOgogICAgICAgICAgICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzKDIwMCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIGNhc2UgIm1lZGl1bSI6CiAgICAgICAgICAgICAgICAgICAgc2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoNTApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlICJsb3ciOgogICAgICAgICAgICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzKDEwKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlICFpc05hTihlKSAmJiBlID4gMSAmJiBzZXREZWZhdWx0Q3VydmVTZWdtZW50cyhlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBpbkJyb3dzZXIoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBuYXZpZ2F0b3IgPCAidSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaW5zdGFsbFBsdWdpbihlLCB0KSB7CiAgICAgICAgICAgICAgZSA9PT0gImV4cHJlc3Npb25zIiAmJiBzZXRFeHByZXNzaW9uc1BsdWdpbih0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBnZXRGYWN0b3J5KGUpIHsKICAgICAgICAgICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgInByb3BlcnR5RmFjdG9yeSI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eUZhY3Rvcnk7CiAgICAgICAgICAgICAgICBjYXNlICJzaGFwZVByb3BlcnR5RmFjdG9yeSI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBTaGFwZVByb3BlcnR5RmFjdG9yeTsKICAgICAgICAgICAgICAgIGNhc2UgIm1hdHJpeCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBNYXRyaXg7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKGxvdHRpZS5wbGF5ID0gYW5pbWF0aW9uTWFuYWdlci5wbGF5KSwKICAgICAgICAgICAgICAobG90dGllLnBhdXNlID0gYW5pbWF0aW9uTWFuYWdlci5wYXVzZSksCiAgICAgICAgICAgICAgKGxvdHRpZS5zZXRMb2NhdGlvbkhyZWYgPSBzZXRMb2NhdGlvbiksCiAgICAgICAgICAgICAgKGxvdHRpZS50b2dnbGVQYXVzZSA9IGFuaW1hdGlvbk1hbmFnZXIudG9nZ2xlUGF1c2UpLAogICAgICAgICAgICAgIChsb3R0aWUuc2V0U3BlZWQgPSBhbmltYXRpb25NYW5hZ2VyLnNldFNwZWVkKSwKICAgICAgICAgICAgICAobG90dGllLnNldERpcmVjdGlvbiA9IGFuaW1hdGlvbk1hbmFnZXIuc2V0RGlyZWN0aW9uKSwKICAgICAgICAgICAgICAobG90dGllLnN0b3AgPSBhbmltYXRpb25NYW5hZ2VyLnN0b3ApLAogICAgICAgICAgICAgIChsb3R0aWUuc2VhcmNoQW5pbWF0aW9ucyA9IHNlYXJjaEFuaW1hdGlvbnMpLAogICAgICAgICAgICAgIChsb3R0aWUucmVnaXN0ZXJBbmltYXRpb24gPSBhbmltYXRpb25NYW5hZ2VyLnJlZ2lzdGVyQW5pbWF0aW9uKSwKICAgICAgICAgICAgICAobG90dGllLmxvYWRBbmltYXRpb24gPSBsb2FkQW5pbWF0aW9uKSwKICAgICAgICAgICAgICAobG90dGllLnNldFN1YmZyYW1lUmVuZGVyaW5nID0gc2V0U3ViZnJhbWVSZW5kZXJpbmcpLAogICAgICAgICAgICAgIChsb3R0aWUucmVzaXplID0gYW5pbWF0aW9uTWFuYWdlci5yZXNpemUpLAogICAgICAgICAgICAgIChsb3R0aWUuZ29Ub0FuZFN0b3AgPSBhbmltYXRpb25NYW5hZ2VyLmdvVG9BbmRTdG9wKSwKICAgICAgICAgICAgICAobG90dGllLmRlc3Ryb3kgPSBhbmltYXRpb25NYW5hZ2VyLmRlc3Ryb3kpLAogICAgICAgICAgICAgIChsb3R0aWUuc2V0UXVhbGl0eSA9IHNldFF1YWxpdHkpLAogICAgICAgICAgICAgIChsb3R0aWUuaW5Ccm93c2VyID0gaW5Ccm93c2VyKSwKICAgICAgICAgICAgICAobG90dGllLmluc3RhbGxQbHVnaW4gPSBpbnN0YWxsUGx1Z2luKSwKICAgICAgICAgICAgICAobG90dGllLmZyZWV6ZSA9IGFuaW1hdGlvbk1hbmFnZXIuZnJlZXplKSwKICAgICAgICAgICAgICAobG90dGllLnVuZnJlZXplID0gYW5pbWF0aW9uTWFuYWdlci51bmZyZWV6ZSksCiAgICAgICAgICAgICAgKGxvdHRpZS5zZXRWb2x1bWUgPSBhbmltYXRpb25NYW5hZ2VyLnNldFZvbHVtZSksCiAgICAgICAgICAgICAgKGxvdHRpZS5tdXRlID0gYW5pbWF0aW9uTWFuYWdlci5tdXRlKSwKICAgICAgICAgICAgICAobG90dGllLnVubXV0ZSA9IGFuaW1hdGlvbk1hbmFnZXIudW5tdXRlKSwKICAgICAgICAgICAgICAobG90dGllLmdldFJlZ2lzdGVyZWRBbmltYXRpb25zID0KICAgICAgICAgICAgICAgIGFuaW1hdGlvbk1hbmFnZXIuZ2V0UmVnaXN0ZXJlZEFuaW1hdGlvbnMpLAogICAgICAgICAgICAgIChsb3R0aWUudXNlV2ViV29ya2VyID0gc2V0V2ViV29ya2VyKSwKICAgICAgICAgICAgICAobG90dGllLnNldElEUHJlZml4ID0gc2V0UHJlZml4KSwKICAgICAgICAgICAgICAobG90dGllLl9fZ2V0RmFjdG9yeSA9IGdldEZhY3RvcnkpLAogICAgICAgICAgICAgIChsb3R0aWUudmVyc2lvbiA9ICI1LjEyLjIiKTsKICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tSZWFkeSgpIHsKICAgICAgICAgICAgICBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiICYmCiAgICAgICAgICAgICAgICAoY2xlYXJJbnRlcnZhbChyZWFkeVN0YXRlQ2hlY2tJbnRlcnZhbCksIHNlYXJjaEFuaW1hdGlvbnMoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UXVlcnlWYXJpYWJsZShlKSB7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHZhciB0ID0gcXVlcnlTdHJpbmcuc3BsaXQoIiYiKSwgciA9IDA7CiAgICAgICAgICAgICAgICByIDwgdC5sZW5ndGg7CiAgICAgICAgICAgICAgICByICs9IDEKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciBuID0gdFtyXS5zcGxpdCgiPSIpOwogICAgICAgICAgICAgICAgaWYgKGRlY29kZVVSSUNvbXBvbmVudChuWzBdKSA9PSBlKQogICAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG5bMV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSAiIjsKICAgICAgICAgICAgewogICAgICAgICAgICAgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLAogICAgICAgICAgICAgICAgaW5kZXggPSBzY3JpcHRzLmxlbmd0aCAtIDEsCiAgICAgICAgICAgICAgICBteVNjcmlwdCA9IHNjcmlwdHNbaW5kZXhdIHx8IHsgc3JjOiAiIiB9OwogICAgICAgICAgICAgIChxdWVyeVN0cmluZyA9IG15U2NyaXB0LnNyYwogICAgICAgICAgICAgICAgPyBteVNjcmlwdC5zcmMucmVwbGFjZSgvXlteXD9dK1w/Py8sICIiKQogICAgICAgICAgICAgICAgOiAiIiksCiAgICAgICAgICAgICAgICBnZXRRdWVyeVZhcmlhYmxlKCJyZW5kZXJlciIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciByZWFkeVN0YXRlQ2hlY2tJbnRlcnZhbCA9IHNldEludGVydmFsKGNoZWNrUmVhZHksIDEwMCk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgX3R5cGVvZiQzKGV4cG9ydHMpICE9PSAib2JqZWN0IiAmJiAod2luZG93LmJvZHltb3ZpbiA9IGxvdHRpZSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfQogICAgICAgICAgICB2YXIgU2hhcGVNb2RpZmllcnMgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0ge30sCiAgICAgICAgICAgICAgICB0ID0ge307CiAgICAgICAgICAgICAgKGUucmVnaXN0ZXJNb2RpZmllciA9IHIpLCAoZS5nZXRNb2RpZmllciA9IG4pOwogICAgICAgICAgICAgIGZ1bmN0aW9uIHIoaSwgYSkgewogICAgICAgICAgICAgICAgdFtpXSB8fCAodFtpXSA9IGEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBuKGksIGEsIG8pIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgdFtpXShhLCBvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNoYXBlTW9kaWZpZXIoKSB7IH0KICAgICAgICAgICAgKFNoYXBlTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChTaGFwZU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZVRvTW9kaWZpZXIgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChTaGFwZU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICAgICAgICAgIGUuc2guY29udGFpbmVyLmFkZER5bmFtaWNQcm9wZXJ0eShlLnNoKTsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB7CiAgICAgICAgICAgICAgICAgICAgc2hhcGU6IGUuc2gsCiAgICAgICAgICAgICAgICAgICAgZGF0YTogZSwKICAgICAgICAgICAgICAgICAgICBsb2NhbFNoYXBlQ29sbGVjdGlvbjoKICAgICAgICAgICAgICAgICAgICAgIHNoYXBlQ29sbGVjdGlvblBvb2wubmV3U2hhcGVDb2xsZWN0aW9uKCksCiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVzLnB1c2godCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTaGFwZVRvTW9kaWZpZXIodCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNBbmltYXRlZCAmJiBlLnNldEFzQW5pbWF0ZWQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU2hhcGVNb2RpZmllci5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICAodGhpcy5zaGFwZXMgPSBbXSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgICB0aGlzLmluaXRNb2RpZmllclByb3BlcnRpZXMoZSwgdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSBpbml0aWFsRGVmYXVsdEZyYW1lKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuY2xvc2VkID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5rID0gITEpLAogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICAgID8gKHRoaXMuayA9ICEwKQogICAgICAgICAgICAgICAgICAgIDogdGhpcy5nZXRWYWx1ZSghMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNoYXBlTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NLZXlzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCAhPT0gdGhpcy5mcmFtZUlkICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5mcmFtZUlkID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBTaGFwZU1vZGlmaWVyKTsKICAgICAgICAgICAgZnVuY3Rpb24gVHJpbU1vZGlmaWVyKCkgeyB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU2hhcGVNb2RpZmllcl0sIFRyaW1Nb2RpZmllciksCiAgICAgICAgICAgICAgKFRyaW1Nb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5zLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmUsIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQubywgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAodGhpcy5zVmFsdWUgPSAwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZVZhbHVlID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5wcm9jZXNzS2V5cyksCiAgICAgICAgICAgICAgICAgICh0aGlzLm0gPSB0Lm0pLAogICAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9CiAgICAgICAgICAgICAgICAgICAgISF0aGlzLnMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCB8fAogICAgICAgICAgICAgICAgICAgICEhdGhpcy5lLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggfHwKICAgICAgICAgICAgICAgICAgICAhIXRoaXMuby5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZVRvTW9kaWZpZXIgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZS5wYXRoc0RhdGEgPSBbXTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5jYWxjdWxhdGVTaGFwZUVkZ2VzID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciBhID0gW107CiAgICAgICAgICAgICAgICB0IDw9IDEKICAgICAgICAgICAgICAgICAgPyBhLnB1c2goeyBzOiBlLCBlOiB0IH0pCiAgICAgICAgICAgICAgICAgIDogZSA+PSAxCiAgICAgICAgICAgICAgICAgICAgPyBhLnB1c2goeyBzOiBlIC0gMSwgZTogdCAtIDEgfSkKICAgICAgICAgICAgICAgICAgICA6IChhLnB1c2goeyBzOiBlLCBlOiAxIH0pLCBhLnB1c2goeyBzOiAwLCBlOiB0IC0gMSB9KSk7CiAgICAgICAgICAgICAgICB2YXIgbyA9IFtdLAogICAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgICBjID0gYS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHU7CiAgICAgICAgICAgICAgICBmb3IgKGwgPSAwOyBsIDwgYzsgbCArPSAxKQogICAgICAgICAgICAgICAgICBpZiAoKCh1ID0gYVtsXSksICEodS5lICogaSA8IG4gfHwgdS5zICogaSA+IG4gKyByKSkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZCwgRTsKICAgICAgICAgICAgICAgICAgICB1LnMgKiBpIDw9IG4gPyAoZCA9IDApIDogKGQgPSAodS5zICogaSAtIG4pIC8gciksCiAgICAgICAgICAgICAgICAgICAgICB1LmUgKiBpID49IG4gKyByID8gKEUgPSAxKSA6IChFID0gKHUuZSAqIGkgLSBuKSAvIHIpLAogICAgICAgICAgICAgICAgICAgICAgby5wdXNoKFtkLCBFXSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBvLmxlbmd0aCB8fCBvLnB1c2goWzAsIDBdKSwgbzsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5yZWxlYXNlUGF0aHNEYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gZS5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKSBzZWdtZW50c0xlbmd0aFBvb2wucmVsZWFzZShlW3RdKTsKICAgICAgICAgICAgICAgIHJldHVybiAoZS5sZW5ndGggPSAwKSwgZTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzU2hhcGVzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LCByOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuX21kZiB8fCBlKSB7CiAgICAgICAgICAgICAgICAgIHZhciBuID0gKHRoaXMuby52ICUgMzYwKSAvIDM2MDsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIChuIDwgMCAmJiAobiArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucy52ID4gMQogICAgICAgICAgICAgICAgICAgICAgICA/ICh0ID0gMSArIG4pCiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zLnYgPCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAodCA9IDAgKyBuKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKHQgPSB0aGlzLnMudiArIG4pLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lLnYgPiAxCiAgICAgICAgICAgICAgICAgICAgICAgID8gKHIgPSAxICsgbikKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmUudiA8IDAKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChyID0gMCArIG4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAociA9IHRoaXMuZS52ICsgbiksCiAgICAgICAgICAgICAgICAgICAgICB0ID4gcikKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0OwogICAgICAgICAgICAgICAgICAgICh0ID0gciksIChyID0gaSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKHQgPSBNYXRoLnJvdW5kKHQgKiAxZTQpICogMWUtNCksCiAgICAgICAgICAgICAgICAgICAgKHIgPSBNYXRoLnJvdW5kKHIgKiAxZTQpICogMWUtNCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc1ZhbHVlID0gdCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZVZhbHVlID0gcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgKHQgPSB0aGlzLnNWYWx1ZSksIChyID0gdGhpcy5lVmFsdWUpOwogICAgICAgICAgICAgICAgdmFyIGEsCiAgICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICAgIGwgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICAgIEUsCiAgICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICAgIFAgPSAwOwogICAgICAgICAgICAgICAgaWYgKHIgPT09IHQpCiAgICAgICAgICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBsOyBvICs9IDEpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZXNbb10ubG9jYWxTaGFwZUNvbGxlY3Rpb24ucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2hhcGVzW29dLnNoYXBlLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zaGFwZXNbb10uc2hhcGUucGF0aHMgPQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc1tvXS5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZGYgJiYgKHRoaXMuc2hhcGVzW29dLnBhdGhzRGF0YS5sZW5ndGggPSAwKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKChyID09PSAxICYmIHQgPT09IDApIHx8IChyID09PSAwICYmIHQgPT09IDEpKSB7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tZGYpCiAgICAgICAgICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IGw7IG8gKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc1tvXS5wYXRoc0RhdGEubGVuZ3RoID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc1tvXS5zaGFwZS5fbWRmID0gITApOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIFIgPSBbXSwKICAgICAgICAgICAgICAgICAgICBULAogICAgICAgICAgICAgICAgICAgIE07CiAgICAgICAgICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBsOyBvICs9IDEpCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKChUID0gdGhpcy5zaGFwZXNbb10pLAogICAgICAgICAgICAgICAgICAgICAgICAhVC5zaGFwZS5fbWRmICYmICF0aGlzLl9tZGYgJiYgIWUgJiYgdGhpcy5tICE9PSAyKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIFQuc2hhcGUucGF0aHMgPSBULmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAoKGEgPSBULnNoYXBlLnBhdGhzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodSA9IGEuX2xlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAhVC5zaGFwZS5fbWRmICYmIFQucGF0aHNEYXRhLmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgYiA9IFQudG90YWxTaGFwZUxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSB0aGlzLnJlbGVhc2VQYXRoc0RhdGEoVC5wYXRoc0RhdGEpLCBjID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICBjIDwgdTsKICAgICAgICAgICAgICAgICAgICAgICAgICBjICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgIChFID0gYmV6LmdldFNlZ21lbnRzTGVuZ3RoKGEuc2hhcGVzW2NdKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goRSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiArPSBFLnRvdGFsTGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICAgKFQudG90YWxTaGFwZUxlbmd0aCA9IGIpLCAoVC5wYXRoc0RhdGEgPSBkKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIChQICs9IGIpLCAoVC5zaGFwZS5fbWRmID0gITApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIHggPSB0LAogICAgICAgICAgICAgICAgICAgIGsgPSByLAogICAgICAgICAgICAgICAgICAgIFMgPSAwLAogICAgICAgICAgICAgICAgICAgIEE7CiAgICAgICAgICAgICAgICAgIGZvciAobyA9IGwgLSAxOyBvID49IDA7IG8gLT0gMSkKICAgICAgICAgICAgICAgICAgICBpZiAoKChUID0gdGhpcy5zaGFwZXNbb10pLCBULnNoYXBlLl9tZGYpKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBNID0gVC5sb2NhbFNoYXBlQ29sbGVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgTS5yZWxlYXNlU2hhcGVzKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubSA9PT0gMiAmJiBsID4gMQogICAgICAgICAgICAgICAgICAgICAgICAgID8gKChBID0gdGhpcy5jYWxjdWxhdGVTaGFwZUVkZ2VzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBULnRvdGFsU2hhcGVMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUAogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFMgKz0gVC50b3RhbFNoYXBlTGVuZ3RoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChBID0gW1t4LCBrXV0pLAogICAgICAgICAgICAgICAgICAgICAgICB1ID0gQS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBjIDwgdTsKICAgICAgICAgICAgICAgICAgICAgICAgYyArPSAxCiAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgKHggPSBBW2NdWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoayA9IEFbY11bMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIChSLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGsgPD0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBSLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBULnRvdGFsU2hhcGVMZW5ndGggKiB4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlOiBULnRvdGFsU2hhcGVMZW5ndGggKiBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeCA+PSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gUi5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBULnRvdGFsU2hhcGVMZW5ndGggKiAoeCAtIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGU6IFQudG90YWxTaGFwZUxlbmd0aCAqIChrIC0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKFIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczogVC50b3RhbFNoYXBlTGVuZ3RoICogeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlOiBULnRvdGFsU2hhcGVMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZTogVC50b3RhbFNoYXBlTGVuZ3RoICogKGsgLSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBPID0gdGhpcy5hZGRTaGFwZXMoVCwgUlswXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSWzBdLnMgIT09IFJbMF0uZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBGID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVC5zaGFwZS5wYXRocy5zaGFwZXNbVC5zaGFwZS5wYXRocy5fbGVuZ3RoIC0gMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRi5jKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBEID0gTy5wb3AoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRQYXRocyhPLCBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTyA9IHRoaXMuYWRkU2hhcGVzKFQsIFJbMV0sIEQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhdGhzKE8sIE0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChPID0gdGhpcy5hZGRTaGFwZXMoVCwgUlsxXSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhdGhzKE8sIE0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBULnNoYXBlLnBhdGhzID0gTTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRyaW1Nb2RpZmllci5wcm90b3R5cGUuYWRkUGF0aHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSBlLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHQuYWRkU2hhcGUoZVtyXSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRyaW1Nb2RpZmllci5wcm90b3R5cGUuYWRkU2VnbWVudCA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgIG8KICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIGkuc2V0WFlBdCh0WzBdLCB0WzFdLCAibyIsIGEpLAogICAgICAgICAgICAgICAgICBpLnNldFhZQXQoclswXSwgclsxXSwgImkiLCBhICsgMSksCiAgICAgICAgICAgICAgICAgIG8gJiYgaS5zZXRYWUF0KGVbMF0sIGVbMV0sICJ2IiwgYSksCiAgICAgICAgICAgICAgICAgIGkuc2V0WFlBdChuWzBdLCBuWzFdLCAidiIsIGEgKyAxKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTZWdtZW50RnJvbUFycmF5ID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbgogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdC5zZXRYWUF0KGVbMV0sIGVbNV0sICJvIiwgciksCiAgICAgICAgICAgICAgICAgIHQuc2V0WFlBdChlWzJdLCBlWzZdLCAiaSIsIHIgKyAxKSwKICAgICAgICAgICAgICAgICAgbiAmJiB0LnNldFhZQXQoZVswXSwgZVs0XSwgInYiLCByKSwKICAgICAgICAgICAgICAgICAgdC5zZXRYWUF0KGVbM10sIGVbN10sICJ2IiwgciArIDEpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUcmltTW9kaWZpZXIucHJvdG90eXBlLmFkZFNoYXBlcyA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgICAgICAgICB2YXIgbiA9IGUucGF0aHNEYXRhLAogICAgICAgICAgICAgICAgICBpID0gZS5zaGFwZS5wYXRocy5zaGFwZXMsCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSBlLnNoYXBlLnBhdGhzLl9sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUgPSAwLAogICAgICAgICAgICAgICAgICBkLAogICAgICAgICAgICAgICAgICBFLAogICAgICAgICAgICAgICAgICBiLAogICAgICAgICAgICAgICAgICBQLAogICAgICAgICAgICAgICAgICBSID0gW10sCiAgICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICAgIE0gPSAhMDsKICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgIHIKICAgICAgICAgICAgICAgICAgICA/ICgoRSA9IHIuX2xlbmd0aCksIChUID0gci5fbGVuZ3RoKSkKICAgICAgICAgICAgICAgICAgICA6ICgociA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLCAoRSA9IDApLCAoVCA9IDApKSwKICAgICAgICAgICAgICAgICAgUi5wdXNoKHIpLAogICAgICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgICAgICAgYSA8IG87CiAgICAgICAgICAgICAgICAgIGEgKz0gMQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgYiA9IG5bYV0ubGVuZ3RocywKICAgICAgICAgICAgICAgICAgICByLmMgPSBpW2FdLmMsCiAgICAgICAgICAgICAgICAgICAgYyA9IGlbYV0uYyA/IGIubGVuZ3RoIDogYi5sZW5ndGggKyAxLAogICAgICAgICAgICAgICAgICAgIGwgPSAxOwogICAgICAgICAgICAgICAgICAgIGwgPCBjOwogICAgICAgICAgICAgICAgICAgIGwgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgaWYgKCgoZCA9IGJbbCAtIDFdKSwgdSArIGQuYWRkZWRMZW5ndGggPCB0LnMpKQogICAgICAgICAgICAgICAgICAgICAgKHUgKz0gZC5hZGRlZExlbmd0aCksIChyLmMgPSAhMSk7CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodSA+IHQuZSkgewogICAgICAgICAgICAgICAgICAgICAgci5jID0gITE7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgIHQucyA8PSB1ICYmIHQuZSA+PSB1ICsgZC5hZGRlZExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmFkZFNlZ21lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS52W2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLm9bbCAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0uaVtsXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnZbbF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgICAgICAgICBFLAogICAgICAgICAgICAgICAgICAgICAgICAgIE0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoTSA9ICExKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoKFAgPSBiZXouZ2V0TmV3U2VnbWVudCgKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnZbbCAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0udltsXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLm9bbCAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0uaVtsXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodC5zIC0gdSkgLyBkLmFkZGVkTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0LmUgLSB1KSAvIGQuYWRkZWRMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYltsIC0gMV0KICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTZWdtZW50RnJvbUFycmF5KFAsIHIsIEUsIE0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIChNID0gITEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChyLmMgPSAhMSkpLAogICAgICAgICAgICAgICAgICAgICAgICAodSArPSBkLmFkZGVkTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEUgKz0gMSk7CiAgICAgICAgICAgICAgICAgIGlmIChpW2FdLmMgJiYgYi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKChkID0gYltsIC0gMV0pLCB1IDw9IHQuZSkpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciB4ID0gYltsIC0gMV0uYWRkZWRMZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICB0LnMgPD0gdSAmJiB0LmUgPj0gdSArIHgKICAgICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5hZGRTZWdtZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0udltsIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS5vW2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLmlbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgRSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSAhMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKChQID0gYmV6LmdldE5ld1NlZ21lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS52W2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS5vW2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLmlbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHQucyAtIHUpIC8geCwKICAgICAgICAgICAgICAgICAgICAgICAgICAodC5lIC0gdSkgLyB4LAogICAgICAgICAgICAgICAgICAgICAgICAgIGJbbCAtIDFdCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU2VnbWVudEZyb21BcnJheShQLCByLCBFLCBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoTSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoci5jID0gITEpKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugci5jID0gITE7CiAgICAgICAgICAgICAgICAgICAgKHUgKz0gZC5hZGRlZExlbmd0aCksIChFICs9IDEpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoci5fbGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgICAoci5zZXRYWUF0KHIudltUXVswXSwgci52W1RdWzFdLCAiaSIsIFQpLAogICAgICAgICAgICAgICAgICAgICAgICByLnNldFhZQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgci52W3IuX2xlbmd0aCAtIDFdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHIudltyLl9sZW5ndGggLSAxXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAibyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgci5fbGVuZ3RoIC0gMQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIHUgPiB0LmUpCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgYSA8IG8gLSAxICYmCiAgICAgICAgICAgICAgICAgICAgKChyID0gc2hhcGVQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICAgICAoTSA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgIFIucHVzaChyKSwKICAgICAgICAgICAgICAgICAgICAgIChFID0gMCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIFI7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIoKSB7IH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTaGFwZU1vZGlmaWVyXSwgUHVja2VyQW5kQmxvYXRNb2RpZmllciksCiAgICAgICAgICAgICAgKFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPQogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLnByb2Nlc3NLZXlzKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hbW91bnQgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICB0LmEsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICEhdGhpcy5hbW91bnQuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCk7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUHVja2VyQW5kQmxvYXRNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdmFyIHIgPSB0IC8gMTAwLAogICAgICAgICAgICAgICAgICBuID0gWzAsIDBdLAogICAgICAgICAgICAgICAgICBpID0gZS5fbGVuZ3RoLAogICAgICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgICAgIGZvciAoYSA9IDA7IGEgPCBpOyBhICs9IDEpCiAgICAgICAgICAgICAgICAgIChuWzBdICs9IGUudlthXVswXSksIChuWzFdICs9IGUudlthXVsxXSk7CiAgICAgICAgICAgICAgICAoblswXSAvPSBpKSwgKG5bMV0gLz0gaSk7CiAgICAgICAgICAgICAgICB2YXIgbyA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgICBvLmMgPSBlLmM7CiAgICAgICAgICAgICAgICB2YXIgbCwgYywgdSwgZCwgRSwgYjsKICAgICAgICAgICAgICAgIGZvciAoYSA9IDA7IGEgPCBpOyBhICs9IDEpCiAgICAgICAgICAgICAgICAgIChsID0gZS52W2FdWzBdICsgKG5bMF0gLSBlLnZbYV1bMF0pICogciksCiAgICAgICAgICAgICAgICAgICAgKGMgPSBlLnZbYV1bMV0gKyAoblsxXSAtIGUudlthXVsxXSkgKiByKSwKICAgICAgICAgICAgICAgICAgICAodSA9IGUub1thXVswXSArIChuWzBdIC0gZS5vW2FdWzBdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICAoZCA9IGUub1thXVsxXSArIChuWzFdIC0gZS5vW2FdWzFdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICAoRSA9IGUuaVthXVswXSArIChuWzBdIC0gZS5pW2FdWzBdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICAoYiA9IGUuaVthXVsxXSArIChuWzFdIC0gZS5pW2FdWzFdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICBvLnNldFRyaXBsZUF0KGwsIGMsIHUsIGQsIEUsIGIsIGEpOwogICAgICAgICAgICAgICAgcmV0dXJuIG87CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLmFtb3VudC52OwogICAgICAgICAgICAgICAgaWYgKG8gIT09IDApIHsKICAgICAgICAgICAgICAgICAgdmFyIGwsIGM7CiAgICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAoKGwgPSB0aGlzLnNoYXBlc1tyXSksCiAgICAgICAgICAgICAgICAgICAgICAgIChjID0gbC5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgICAgICEoIWwuc2hhcGUuX21kZiAmJiAhdGhpcy5fbWRmICYmICFlKSkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBjLnJlbGVhc2VTaGFwZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgbC5zaGFwZS5fbWRmID0gITAsCiAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBsLnNoYXBlLnBhdGhzLnNoYXBlcywKICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGwuc2hhcGUucGF0aHMuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgPCBhOwogICAgICAgICAgICAgICAgICAgICAgICBpICs9IDEKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgYy5hZGRTaGFwZSh0aGlzLnByb2Nlc3NQYXRoKHRbaV0sIG8pKTsKICAgICAgICAgICAgICAgICAgICBsLnNoYXBlLnBhdGhzID0gbC5sb2NhbFNoYXBlQ29sbGVjdGlvbjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIFRyYW5zZm9ybVByb3BlcnR5RmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBbMCwgMF07CiAgICAgICAgICAgICAgZnVuY3Rpb24gdChjKSB7CiAgICAgICAgICAgICAgICB2YXIgdSA9IHRoaXMuX21kZjsKICAgICAgICAgICAgICAgIHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSB0aGlzLl9tZGYgfHwgdSksCiAgICAgICAgICAgICAgICAgIHRoaXMuYSAmJgogICAgICAgICAgICAgICAgICBjLnRyYW5zbGF0ZSgtdGhpcy5hLnZbMF0sIC10aGlzLmEudlsxXSwgdGhpcy5hLnZbMl0pLAogICAgICAgICAgICAgICAgICB0aGlzLnMgJiYgYy5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zayAmJiBjLnNrZXdGcm9tQXhpcygtdGhpcy5zay52LCB0aGlzLnNhLnYpLAogICAgICAgICAgICAgICAgICB0aGlzLnIKICAgICAgICAgICAgICAgICAgICA/IGMucm90YXRlKC10aGlzLnIudikKICAgICAgICAgICAgICAgICAgICA6IGMKICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKC10aGlzLnJ6LnYpCiAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWSh0aGlzLnJ5LnYpCiAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWigtdGhpcy5vci52WzJdKQogICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkodGhpcy5vci52WzFdKQogICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnAucwogICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhLnAuegogICAgICAgICAgICAgICAgICAgICAgPyBjLnRyYW5zbGF0ZSh0aGlzLnB4LnYsIHRoaXMucHkudiwgLXRoaXMucHoudikKICAgICAgICAgICAgICAgICAgICAgIDogYy50cmFuc2xhdGUodGhpcy5weC52LCB0aGlzLnB5LnYsIDApCiAgICAgICAgICAgICAgICAgICAgOiBjLnRyYW5zbGF0ZSh0aGlzLnAudlswXSwgdGhpcy5wLnZbMV0sIC10aGlzLnAudlsyXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHIoYykgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCkgewogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzRGlydHkgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnByZWNhbGN1bGF0ZU1hdHJpeCgpLCAodGhpcy5faXNEaXJ0eSA9ICExKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWRmIHx8IGMpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIHZhciB1OwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYuY2xvbmVGcm9tUHJvcHModGhpcy5wcmUucHJvcHMpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAxICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgLXRoaXMuYS52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIC10aGlzLmEudlsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmEudlsyXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAyICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zayAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAzICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5za2V3RnJvbUF4aXMoLXRoaXMuc2sudiwgdGhpcy5zYS52KSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yICYmIHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA8IDQKICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudi5yb3RhdGUoLXRoaXMuci52KQogICAgICAgICAgICAgICAgICAgICAgICAgIDogIXRoaXMuciAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA8IDQgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKC10aGlzLnJ6LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWSh0aGlzLnJ5LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWigtdGhpcy5vci52WzJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkodGhpcy5vci52WzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvT3JpZW50ZWQpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZCwgRTsKICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgKCh1ID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVSYXRlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAgJiYgdGhpcy5wLmtleWZyYW1lcyAmJiB0aGlzLnAuZ2V0VmFsdWVBdFRpbWUpCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC5fY2FjaGluZy5sYXN0RnJhbWUgKyB0aGlzLnAub2Zmc2V0VGltZSA8PQogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC5rZXlmcmFtZXNbMF0udAogICAgICAgICAgICAgICAgICAgICAgICAgID8gKChkID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucC5rZXlmcmFtZXNbMF0udCArIDAuMDEpIC8gdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAua2V5ZnJhbWVzWzBdLnQgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucC5fY2FjaGluZy5sYXN0RnJhbWUgKyB0aGlzLnAub2Zmc2V0VGltZSA+PQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLmtleWZyYW1lc1t0aGlzLnAua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKChkID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAua2V5ZnJhbWVzW3RoaXMucC5rZXlmcmFtZXMubGVuZ3RoIC0gMV0udCAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRSA9IHRoaXMucC5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wLmtleWZyYW1lc1t0aGlzLnAua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wNSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChkID0gdGhpcy5wLnB2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgPSB0aGlzLnAuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucC5fY2FjaGluZy5sYXN0RnJhbWUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLm9mZnNldFRpbWUgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wMSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLm9mZnNldFRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHggJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weC5rZXlmcmFtZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weS5rZXlmcmFtZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weC5nZXRWYWx1ZUF0VGltZSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnB5LmdldFZhbHVlQXRUaW1lCiAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSBbXSksIChFID0gW10pOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYiA9IHRoaXMucHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgUCA9IHRoaXMucHk7CiAgICAgICAgICAgICAgICAgICAgICAgIGIuX2NhY2hpbmcubGFzdEZyYW1lICsgYi5vZmZzZXRUaW1lIDw9IGIua2V5ZnJhbWVzWzBdLnQKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoZFswXSA9IGIuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYi5rZXlmcmFtZXNbMF0udCArIDAuMDEpIC8gdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkWzFdID0gUC5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFAua2V5ZnJhbWVzWzBdLnQgKyAwLjAxKSAvIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEVbMF0gPSBiLmdldFZhbHVlQXRUaW1lKGIua2V5ZnJhbWVzWzBdLnQgLyB1LCAwKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRVsxXSA9IFAuZ2V0VmFsdWVBdFRpbWUoUC5rZXlmcmFtZXNbMF0udCAvIHUsIDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IGIuX2NhY2hpbmcubGFzdEZyYW1lICsgYi5vZmZzZXRUaW1lID49CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLmtleWZyYW1lc1tiLmtleWZyYW1lcy5sZW5ndGggLSAxXS50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoZFswXSA9IGIuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIua2V5ZnJhbWVzW2Iua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRbMV0gPSBQLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAua2V5ZnJhbWVzW1Aua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFWzBdID0gYi5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYi5rZXlmcmFtZXNbYi5rZXlmcmFtZXMubGVuZ3RoIC0gMV0udCAtIDAuMDEpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFWzFdID0gUC5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUC5rZXlmcmFtZXNbUC5rZXlmcmFtZXMubGVuZ3RoIC0gMV0udCAtIDAuMDEpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoZCA9IFtiLnB2LCBQLnB2XSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFWzBdID0gYi5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYi5fY2FjaGluZy5sYXN0RnJhbWUgKyBiLm9mZnNldFRpbWUgLSAwLjAxKSAvIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi5vZmZzZXRUaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRVsxXSA9IFAuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFAuX2NhY2hpbmcubGFzdEZyYW1lICsgUC5vZmZzZXRUaW1lIC0gMC4wMSkgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAub2Zmc2V0VGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSk7CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgKEUgPSBlKSwgKGQgPSBFKTsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5yb3RhdGUoLU1hdGguYXRhbjIoZFsxXSAtIEVbMV0sIGRbMF0gLSBFWzBdKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5wICYmIHRoaXMuZGF0YS5wLnMKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhLnAuegogICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudi50cmFuc2xhdGUodGhpcy5weC52LCB0aGlzLnB5LnYsIC10aGlzLnB6LnYpCiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy52LnRyYW5zbGF0ZSh0aGlzLnB4LnYsIHRoaXMucHkudiwgMCkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy52LnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC52WzFdLAogICAgICAgICAgICAgICAgICAgICAgICAtdGhpcy5wLnZbMl0KICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZUlkID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbigpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKCh0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPSAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByZS5yZXNldCgpLAogICAgICAgICAgICAgICAgICAgICF0aGlzLmEuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgdGhpcy5wcmUudHJhbnNsYXRlKC10aGlzLmEudlswXSwgLXRoaXMuYS52WzFdLCB0aGlzLmEudlsyXSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA9IDEpOwogICAgICAgICAgICAgICAgZWxzZSByZXR1cm47CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoKQogICAgICAgICAgICAgICAgICB0aGlzLnByZS5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gMik7CiAgICAgICAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICAgICAgICAgIGlmICh0aGlzLnNrKQogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2suZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAgICF0aGlzLnNhLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHRoaXMucHJlLnNrZXdGcm9tQXhpcygtdGhpcy5zay52LCB0aGlzLnNhLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA9IDMpOwogICAgICAgICAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICAgICAgICAgIHRoaXMucgogICAgICAgICAgICAgICAgICA/IHRoaXMuci5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLnByZS5yb3RhdGUoLXRoaXMuci52KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gNCkpCiAgICAgICAgICAgICAgICAgIDogIXRoaXMucnouZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAhdGhpcy5yeS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLnJ4LmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggJiYKICAgICAgICAgICAgICAgICAgIXRoaXMub3IuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAodGhpcy5wcmUKICAgICAgICAgICAgICAgICAgICAucm90YXRlWigtdGhpcy5yei52KQogICAgICAgICAgICAgICAgICAgIC5yb3RhdGVZKHRoaXMucnkudikKICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVooLXRoaXMub3IudlsyXSkKICAgICAgICAgICAgICAgICAgICAucm90YXRlWSh0aGlzLm9yLnZbMV0pCiAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gNCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBpKCkgeyB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYShjKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9hZGREeW5hbWljUHJvcGVydHkoYyksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkoYyksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0RpcnR5ID0gITApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBvKGMsIHUsIGQpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKCh0aGlzLmVsZW0gPSBjKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BUeXBlID0gInRyYW5zZm9ybSIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSB1KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy52ID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wcmUgPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPSAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZCB8fCBjKSwKICAgICAgICAgICAgICAgICAgICB1LnAgJiYgdS5wLnMKICAgICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLnB4ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgICAgIHUucC54LAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucHkgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChjLCB1LnAueSwgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICB1LnAueiAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5weiA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdS5wLnosCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnAgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgICAgdS5wIHx8IHsgazogWzAsIDAsIDBdIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgIHUucngpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgodGhpcy5yeCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgIHUucngsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMucnkgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgICAgdS5yeSwKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnJ6ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgICAgIHUucnosCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICB1Lm9yLmtbMF0udGkpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIHZhciBFLAogICAgICAgICAgICAgICAgICAgICAgYiA9IHUub3Iuay5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChFID0gMDsgRSA8IGI7IEUgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICh1Lm9yLmtbRV0udG8gPSBudWxsKSwgKHUub3Iua1tFXS50aSA9IG51bGwpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICh0aGlzLm9yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICB1Lm9yLAogICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub3Iuc2ggPSAhMCk7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgdGhpcy5yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICB1LnIgfHwgeyBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdS5zayAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuc2sgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBjLAogICAgICAgICAgICAgICAgICAgIHUuc2ssCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zYSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgIHUuc2EsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICkpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgdS5hIHx8IHsgazogWzAsIDAsIDBdIH0sCiAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBjLAogICAgICAgICAgICAgICAgICAgIHUucyB8fCB7IGs6IFsxMDAsIDEwMCwgMTAwXSB9LAogICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICB1Lm8KICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChjLCB1Lm8sIDAsIDAuMDEsIGMpKQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMubyA9IHsgX21kZjogITEsIHY6IDEgfSksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0RpcnR5ID0gITApLAogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKG8ucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgYXBwbHlUb01hdHJpeDogdCwKICAgICAgICAgICAgICAgIGdldFZhbHVlOiByLAogICAgICAgICAgICAgICAgcHJlY2FsY3VsYXRlTWF0cml4OiBuLAogICAgICAgICAgICAgICAgYXV0b09yaWVudDogaSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgbyksCiAgICAgICAgICAgICAgICAoby5wcm90b3R5cGUuYWRkRHluYW1pY1Byb3BlcnR5ID0gYSksCiAgICAgICAgICAgICAgICAoby5wcm90b3R5cGUuX2FkZER5bmFtaWNQcm9wZXJ0eSA9CiAgICAgICAgICAgICAgICAgIER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lci5wcm90b3R5cGUuYWRkRHluYW1pY1Byb3BlcnR5KTsKICAgICAgICAgICAgICBmdW5jdGlvbiBsKGMsIHUsIGQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgbyhjLCB1LCBkKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgZ2V0VHJhbnNmb3JtUHJvcGVydHk6IGwgfTsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gUmVwZWF0ZXJNb2RpZmllcigpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW1NoYXBlTW9kaWZpZXJdLCBSZXBlYXRlck1vZGlmaWVyKSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMucHJvY2Vzc0tleXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5jID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5jLCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0Lm8sIDAsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudHIgPSBUcmFuc2Zvcm1Qcm9wZXJ0eUZhY3RvcnkuZ2V0VHJhbnNmb3JtUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LnRyLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNvID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LnRyLnNvLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAodGhpcy5lbyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgdC50ci5lbywKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCB0aGlzLmdldFZhbHVlKCEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhIXRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucE1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJNYXRyaXggPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgICAgICAodGhpcy5zTWF0cml4ID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudE1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm1hdHJpeCA9IG5ldyBNYXRyaXgoKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLmFwcGx5VHJhbnNmb3JtcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIG8gPSBhID8gLTEgOiAxLAogICAgICAgICAgICAgICAgICBsID0gbi5zLnZbMF0gKyAoMSAtIG4ucy52WzBdKSAqICgxIC0gaSksCiAgICAgICAgICAgICAgICAgIGMgPSBuLnMudlsxXSArICgxIC0gbi5zLnZbMV0pICogKDEgLSBpKTsKICAgICAgICAgICAgICAgIGUudHJhbnNsYXRlKG4ucC52WzBdICogbyAqIGksIG4ucC52WzFdICogbyAqIGksIG4ucC52WzJdKSwKICAgICAgICAgICAgICAgICAgdC50cmFuc2xhdGUoLW4uYS52WzBdLCAtbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICAgICAgdC5yb3RhdGUoLW4uci52ICogbyAqIGkpLAogICAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZShuLmEudlswXSwgbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICAgICAgci50cmFuc2xhdGUoLW4uYS52WzBdLCAtbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICAgICAgci5zY2FsZShhID8gMSAvIGwgOiBsLCBhID8gMSAvIGMgOiBjKSwKICAgICAgICAgICAgICAgICAgci50cmFuc2xhdGUobi5hLnZbMF0sIG4uYS52WzFdLCBuLmEudlsyXSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtID0gZSwKICAgICAgICAgICAgICAgICAgdGhpcy5hcnIgPSB0LAogICAgICAgICAgICAgICAgICB0aGlzLnBvcyA9IHIsCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbXNEYXRhID0gbiwKICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudENvcGllcyA9IDAsCiAgICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRzID0gW10sCiAgICAgICAgICAgICAgICAgIHRoaXMuX2dyb3VwcyA9IFtdLAogICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lSWQgPSAtMSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgICB0aGlzLmluaXRNb2RpZmllclByb3BlcnRpZXMoZSwgdFtyXSk7CiAgICAgICAgICAgICAgICAgIHIgPiAwOwoKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgKHIgLT0gMSksIHRoaXMuX2VsZW1lbnRzLnVuc2hpZnQodFtyXSk7CiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgOiB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUucmVzZXRFbGVtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgKGVbdF0uX3Byb2Nlc3NlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICBlW3RdLnR5ID09PSAiZ3IiICYmIHRoaXMucmVzZXRFbGVtZW50cyhlW3RdLml0KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuY2xvbmVFbGVtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpOwogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzZXRFbGVtZW50cyh0KSwgdDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuY2hhbmdlR3JvdXBSZW5kZXIgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSBlLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIChlW3JdLl9yZW5kZXIgPSB0KSwKICAgICAgICAgICAgICAgICAgICBlW3JdLnR5ID09PSAiZ3IiICYmIHRoaXMuY2hhbmdlR3JvdXBSZW5kZXIoZVtyXS5pdCwgdCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSAhMTsKICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tZGYgfHwgZSkgewogICAgICAgICAgICAgICAgICB2YXIgbCA9IE1hdGguY2VpbCh0aGlzLmMudik7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ncm91cHMubGVuZ3RoIDwgbCkgewogICAgICAgICAgICAgICAgICAgIGZvciAoOyB0aGlzLl9ncm91cHMubGVuZ3RoIDwgbDspIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gewogICAgICAgICAgICAgICAgICAgICAgICBpdDogdGhpcy5jbG9uZUVsZW1lbnRzKHRoaXMuX2VsZW1lbnRzKSwKICAgICAgICAgICAgICAgICAgICAgICAgdHk6ICJnciIsCiAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgYy5pdC5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgYTogeyBhOiAwLCBpeDogMSwgazogWzAsIDBdIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIG5tOiAiVHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgICAgbzogeyBhOiAwLCBpeDogNywgazogMTAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHA6IHsgYTogMCwgaXg6IDIsIGs6IFswLCAwXSB9LAogICAgICAgICAgICAgICAgICAgICAgICByOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpeDogNiwKICAgICAgICAgICAgICAgICAgICAgICAgICBrOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHM6IDAsIGU6IDAsIHQ6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgczogMCwgZTogMCwgdDogMSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHM6IHsgYTogMCwgaXg6IDMsIGs6IFsxMDAsIDEwMF0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgc2E6IHsgYTogMCwgaXg6IDUsIGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgc2s6IHsgYTogMCwgaXg6IDQsIGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgdHk6ICJ0ciIsCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcnIuc3BsaWNlKDAsIDAsIGMpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ncm91cHMuc3BsaWNlKDAsIDAsIGMpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fY3VycmVudENvcGllcyArPSAxKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtLnJlbG9hZFNoYXBlcygpLCAobyA9ICEwKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgICAgICAgdmFyIHU7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPD0gdGhpcy5fZ3JvdXBzLmxlbmd0aCAtIDE7IG4gKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgodSA9IGEgPCBsKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2dyb3Vwc1tuXS5fcmVuZGVyID0gdSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlR3JvdXBSZW5kZXIodGhpcy5fZ3JvdXBzW25dLml0LCB1KSwKICAgICAgICAgICAgICAgICAgICAgICAgIXUpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZWxlbXNEYXRhW25dLml0LAogICAgICAgICAgICAgICAgICAgICAgICBFID0gZFtkLmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgICAgICAgRS50cmFuc2Zvcm0ub3AudiAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgICA/ICgoRS50cmFuc2Zvcm0ub3AuX21kZiA9ICEwKSwgKEUudHJhbnNmb3JtLm9wLnYgPSAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoRS50cmFuc2Zvcm0ub3AuX21kZiA9ICExKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYSArPSAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDb3BpZXMgPSBsOwogICAgICAgICAgICAgICAgICB2YXIgYiA9IHRoaXMuby52LAogICAgICAgICAgICAgICAgICAgIFAgPSBiICUgMSwKICAgICAgICAgICAgICAgICAgICBSID0gYiA+IDAgPyBNYXRoLmZsb29yKGIpIDogTWF0aC5jZWlsKGIpLAogICAgICAgICAgICAgICAgICAgIFQgPSB0aGlzLnBNYXRyaXgucHJvcHMsCiAgICAgICAgICAgICAgICAgICAgTSA9IHRoaXMuck1hdHJpeC5wcm9wcywKICAgICAgICAgICAgICAgICAgICB4ID0gdGhpcy5zTWF0cml4LnByb3BzOwogICAgICAgICAgICAgICAgICB0aGlzLnBNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnRNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdHJpeC5yZXNldCgpOwogICAgICAgICAgICAgICAgICB2YXIgayA9IDA7CiAgICAgICAgICAgICAgICAgIGlmIChiID4gMCkgewogICAgICAgICAgICAgICAgICAgIGZvciAoOyBrIDwgUjspCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IDEpOwogICAgICAgICAgICAgICAgICAgIFAgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgUCwKICAgICAgICAgICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IFApKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChiIDwgMCkgewogICAgICAgICAgICAgICAgICAgIGZvciAoOyBrID4gUjspCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChrIC09IDEpOwogICAgICAgICAgICAgICAgICAgIFAgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgLVAsCiAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAoayAtPSBQKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKG4gPSB0aGlzLmRhdGEubSA9PT0gMSA/IDAgOiB0aGlzLl9jdXJyZW50Q29waWVzIC0gMSksCiAgICAgICAgICAgICAgICAgICAgKGkgPSB0aGlzLmRhdGEubSA9PT0gMSA/IDEgOiAtMSksCiAgICAgICAgICAgICAgICAgICAgKGEgPSB0aGlzLl9jdXJyZW50Q29waWVzKTsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgUywgQTsgYTspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAoKHQgPSB0aGlzLmVsZW1zRGF0YVtuXS5pdCksCiAgICAgICAgICAgICAgICAgICAgICAgIChyID0gdFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5tUHJvcHMudi5wcm9wcyksCiAgICAgICAgICAgICAgICAgICAgICAgIChBID0gci5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAodFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5tUHJvcHMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ub3AuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ub3AudiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudENvcGllcyA9PT0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNvLnYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zby52ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmVvLnYgLSB0aGlzLnNvLnYpICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuIC8gKHRoaXMuX2N1cnJlbnRDb3BpZXMgLSAxKSkpLAogICAgICAgICAgICAgICAgICAgICAgICBrICE9PSAwKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgKChuICE9PSAwICYmIGkgPT09IDEpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKG4gIT09IHRoaXMuX2N1cnJlbnRDb3BpZXMgLSAxICYmIGkgPT09IC0xKSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVRyYW5zZm9ybXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuck1hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICExCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgTVsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgTVs1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzZdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgTVs4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzldLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTRdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTVdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeFs1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzZdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeFs4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzldLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTRdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTVdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVFs1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzZdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVFs4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzldLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTRdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTVdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIFMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBTIDwgQTsKICAgICAgICAgICAgICAgICAgICAgICAgUyArPSAxCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHJbU10gPSB0aGlzLm1hdHJpeC5wcm9wc1tTXTsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHRoaXMubWF0cml4LnJlc2V0KCksIFMgPSAwOyBTIDwgQTsgUyArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICByW1NdID0gdGhpcy5tYXRyaXgucHJvcHNbU107CiAgICAgICAgICAgICAgICAgICAgKGsgKz0gMSksIChhIC09IDEpLCAobiArPSBpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgIGZvciAoYSA9IHRoaXMuX2N1cnJlbnRDb3BpZXMsIG4gPSAwLCBpID0gMTsgYTspCiAgICAgICAgICAgICAgICAgICAgKHQgPSB0aGlzLmVsZW1zRGF0YVtuXS5pdCksCiAgICAgICAgICAgICAgICAgICAgICAociA9IHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ubVByb3BzLnYucHJvcHMpLAogICAgICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ubVByb3BzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAodFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5vcC5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgICAgKGEgLT0gMSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSBpKTsKICAgICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChSZXBlYXRlck1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZSA9IGZ1bmN0aW9uICgpIHsgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFJvdW5kQ29ybmVyc01vZGlmaWVyKCkgeyB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU2hhcGVNb2RpZmllcl0sIFJvdW5kQ29ybmVyc01vZGlmaWVyKSwKICAgICAgICAgICAgICAoUm91bmRDb3JuZXJzTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPQogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLnByb2Nlc3NLZXlzKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5yZCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuciwgMCwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISF0aGlzLnJkLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgpOwogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJvdW5kQ29ybmVyc01vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzUGF0aCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgICByLmMgPSBlLmM7CiAgICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgICAgaSA9IGUuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgICAgbCwKICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICAgICAgRSA9IDAsCiAgICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICAgIFAsCiAgICAgICAgICAgICAgICAgIFIsCiAgICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICAgIHg7CiAgICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgaTsgbiArPSAxKQogICAgICAgICAgICAgICAgICAoYSA9IGUudltuXSksCiAgICAgICAgICAgICAgICAgICAgKGwgPSBlLm9bbl0pLAogICAgICAgICAgICAgICAgICAgIChvID0gZS5pW25dKSwKICAgICAgICAgICAgICAgICAgICBhWzBdID09PSBsWzBdICYmCiAgICAgICAgICAgICAgICAgICAgICBhWzFdID09PSBsWzFdICYmCiAgICAgICAgICAgICAgICAgICAgICBhWzBdID09PSBvWzBdICYmCiAgICAgICAgICAgICAgICAgICAgICBhWzFdID09PSBvWzFdCiAgICAgICAgICAgICAgICAgICAgICA/IChuID09PSAwIHx8IG4gPT09IGkgLSAxKSAmJiAhZS5jCiAgICAgICAgICAgICAgICAgICAgICAgID8gKHIuc2V0VHJpcGxlQXQoYVswXSwgYVsxXSwgbFswXSwgbFsxXSwgb1swXSwgb1sxXSwgRSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgKz0gMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKG4gPT09IDAgPyAoYyA9IGUudltpIC0gMV0pIDogKGMgPSBlLnZbbiAtIDFdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodSA9IE1hdGguc3FydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KGFbMF0gLSBjWzBdLCAyKSArIE1hdGgucG93KGFbMV0gLSBjWzFdLCAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChkID0gdSA/IE1hdGgubWluKHUgLyAyLCB0KSAvIHUgOiAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoTSA9IGFbMF0gKyAoY1swXSAtIGFbMF0pICogZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgPSBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoeCA9IGFbMV0gLSAoYVsxXSAtIGNbMV0pICogZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFAgPSB4KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9IGIgLSAoYiAtIGFbMF0pICogcm91bmRDb3JuZXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChUID0gUCAtIChQIC0gYVsxXSkgKiByb3VuZENvcm5lciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgci5zZXRUcmlwbGVBdChiLCBQLCBSLCBULCBNLCB4LCBFKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBuID09PSBpIC0gMSA/IChjID0gZS52WzBdKSA6IChjID0gZS52W24gKyAxXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHUgPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnBvdyhhWzBdIC0gY1swXSwgMikgKyBNYXRoLnBvdyhhWzFdIC0gY1sxXSwgMikKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoZCA9IHUgPyBNYXRoLm1pbih1IC8gMiwgdCkgLyB1IDogMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSBhWzBdICsgKGNbMF0gLSBhWzBdKSAqIGQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChiID0gUiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBhWzFdICsgKGNbMV0gLSBhWzFdKSAqIGQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChQID0gVCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSBiIC0gKGIgLSBhWzBdKSAqIHJvdW5kQ29ybmVyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoeCA9IFAgLSAoUCAtIGFbMV0pICogcm91bmRDb3JuZXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHIuc2V0VHJpcGxlQXQoYiwgUCwgUiwgVCwgTSwgeCwgRSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgKz0gMSkpCiAgICAgICAgICAgICAgICAgICAgICA6IChyLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICBlLnZbbl1bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGUudltuXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5vW25dWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBlLm9bbl1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGUuaVtuXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5pW25dWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBFCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKSk7CiAgICAgICAgICAgICAgICByZXR1cm4gcjsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUm91bmRDb3JuZXJzTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLnJkLnY7CiAgICAgICAgICAgICAgICBpZiAobyAhPT0gMCkgewogICAgICAgICAgICAgICAgICB2YXIgbCwgYzsKICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgobCA9IHRoaXMuc2hhcGVzW3JdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGMgPSBsLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgISghbC5zaGFwZS5fbWRmICYmICF0aGlzLl9tZGYgJiYgIWUpKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIGMucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgICBsLnNoYXBlLl9tZGYgPSAhMCwKICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGwuc2hhcGUucGF0aHMuc2hhcGVzLAogICAgICAgICAgICAgICAgICAgICAgICBhID0gbC5zaGFwZS5wYXRocy5fbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaSA8IGE7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBjLmFkZFNoYXBlKHRoaXMucHJvY2Vzc1BhdGgodFtpXSwgbykpOwogICAgICAgICAgICAgICAgICAgIGwuc2hhcGUucGF0aHMgPSBsLmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmdW5jdGlvbiBmbG9hdEVxdWFsKGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgTWF0aC5hYnMoZSAtIHQpICogMWU1IDw9IE1hdGgubWluKE1hdGguYWJzKGUpLCBNYXRoLmFicyh0KSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGZsb2F0WmVybyhlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKGUpIDw9IDFlLTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gbGVycChlLCB0LCByKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGUgKiAoMSAtIHIpICsgdCAqIHI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gbGVycFBvaW50KGUsIHQsIHIpIHsKICAgICAgICAgICAgICByZXR1cm4gW2xlcnAoZVswXSwgdFswXSwgciksIGxlcnAoZVsxXSwgdFsxXSwgcildOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHF1YWRSb290cyhlLCB0LCByKSB7CiAgICAgICAgICAgICAgaWYgKGUgPT09IDApIHJldHVybiBbXTsKICAgICAgICAgICAgICB2YXIgbiA9IHQgKiB0IC0gNCAqIGUgKiByOwogICAgICAgICAgICAgIGlmIChuIDwgMCkgcmV0dXJuIFtdOwogICAgICAgICAgICAgIHZhciBpID0gLXQgLyAoMiAqIGUpOwogICAgICAgICAgICAgIGlmIChuID09PSAwKSByZXR1cm4gW2ldOwogICAgICAgICAgICAgIHZhciBhID0gTWF0aC5zcXJ0KG4pIC8gKDIgKiBlKTsKICAgICAgICAgICAgICByZXR1cm4gW2kgLSBhLCBpICsgYV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcG9seW5vbWlhbENvZWZmaWNpZW50cyhlLCB0LCByLCBuKSB7CiAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgIC1lICsgMyAqIHQgLSAzICogciArIG4sCiAgICAgICAgICAgICAgICAzICogZSAtIDYgKiB0ICsgMyAqIHIsCiAgICAgICAgICAgICAgICAtMyAqIGUgKyAzICogdCwKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzaW5nbGVQb2ludChlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2x5bm9taWFsQmV6aWVyKGUsIGUsIGUsIGUsICExKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBQb2x5bm9taWFsQmV6aWVyKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgICAgICAgICBpICYmIHBvaW50RXF1YWwoZSwgdCkgJiYgKHQgPSBsZXJwUG9pbnQoZSwgbiwgMSAvIDMpKSwKICAgICAgICAgICAgICAgIGkgJiYgcG9pbnRFcXVhbChyLCBuKSAmJiAociA9IGxlcnBQb2ludChlLCBuLCAyIC8gMykpOwogICAgICAgICAgICAgIHZhciBhID0gcG9seW5vbWlhbENvZWZmaWNpZW50cyhlWzBdLCB0WzBdLCByWzBdLCBuWzBdKSwKICAgICAgICAgICAgICAgIG8gPSBwb2x5bm9taWFsQ29lZmZpY2llbnRzKGVbMV0sIHRbMV0sIHJbMV0sIG5bMV0pOwogICAgICAgICAgICAgICh0aGlzLmEgPSBbYVswXSwgb1swXV0pLAogICAgICAgICAgICAgICAgKHRoaXMuYiA9IFthWzFdLCBvWzFdXSksCiAgICAgICAgICAgICAgICAodGhpcy5jID0gW2FbMl0sIG9bMl1dKSwKICAgICAgICAgICAgICAgICh0aGlzLmQgPSBbYVszXSwgb1szXV0pLAogICAgICAgICAgICAgICAgKHRoaXMucG9pbnRzID0gW2UsIHQsIHIsIG5dKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUucG9pbnQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAoKHRoaXMuYVswXSAqIGUgKyB0aGlzLmJbMF0pICogZSArIHRoaXMuY1swXSkgKiBlICsgdGhpcy5kWzBdLAogICAgICAgICAgICAgICAgKCh0aGlzLmFbMV0gKiBlICsgdGhpcy5iWzFdKSAqIGUgKyB0aGlzLmNbMV0pICogZSArIHRoaXMuZFsxXSwKICAgICAgICAgICAgICBdOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUuZGVyaXZhdGl2ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAoMyAqIGUgKiB0aGlzLmFbMF0gKyAyICogdGhpcy5iWzBdKSAqIGUgKyB0aGlzLmNbMF0sCiAgICAgICAgICAgICAgICAgICgzICogZSAqIHRoaXMuYVsxXSArIDIgKiB0aGlzLmJbMV0pICogZSArIHRoaXMuY1sxXSwKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFBvbHlub21pYWxCZXppZXIucHJvdG90eXBlLnRhbmdlbnRBbmdsZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZGVyaXZhdGl2ZShlKTsKICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHRbMV0sIHRbMF0pOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5ub3JtYWxBbmdsZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZGVyaXZhdGl2ZShlKTsKICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHRbMF0sIHRbMV0pOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5pbmZsZWN0aW9uUG9pbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmFbMV0gKiB0aGlzLmJbMF0gLSB0aGlzLmFbMF0gKiB0aGlzLmJbMV07CiAgICAgICAgICAgICAgICBpZiAoZmxvYXRaZXJvKGUpKSByZXR1cm4gW107CiAgICAgICAgICAgICAgICB2YXIgdCA9CiAgICAgICAgICAgICAgICAgICgtMC41ICogKHRoaXMuYVsxXSAqIHRoaXMuY1swXSAtIHRoaXMuYVswXSAqIHRoaXMuY1sxXSkpIC8KICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgciA9CiAgICAgICAgICAgICAgICAgICAgdCAqIHQgLQogICAgICAgICAgICAgICAgICAgICgoMSAvIDMpICoKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmJbMV0gKiB0aGlzLmNbMF0gLSB0aGlzLmJbMF0gKiB0aGlzLmNbMV0pKSAvCiAgICAgICAgICAgICAgICAgICAgZTsKICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgcmV0dXJuIFtdOwogICAgICAgICAgICAgICAgdmFyIG4gPSBNYXRoLnNxcnQocik7CiAgICAgICAgICAgICAgICByZXR1cm4gZmxvYXRaZXJvKG4pCiAgICAgICAgICAgICAgICAgID8gbiA+IDAgJiYgbiA8IDEKICAgICAgICAgICAgICAgICAgICA/IFt0XQogICAgICAgICAgICAgICAgICAgIDogW10KICAgICAgICAgICAgICAgICAgOiBbdCAtIG4sIHQgKyBuXS5maWx0ZXIoZnVuY3Rpb24gKGkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSA+IDAgJiYgaSA8IDE7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5zcGxpdCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoZSA8PSAwKSByZXR1cm4gW3NpbmdsZVBvaW50KHRoaXMucG9pbnRzWzBdKSwgdGhpc107CiAgICAgICAgICAgICAgICBpZiAoZSA+PSAxKQogICAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgICAgc2luZ2xlUG9pbnQodGhpcy5wb2ludHNbdGhpcy5wb2ludHMubGVuZ3RoIC0gMV0pLAogICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHQgPSBsZXJwUG9pbnQodGhpcy5wb2ludHNbMF0sIHRoaXMucG9pbnRzWzFdLCBlKSwKICAgICAgICAgICAgICAgICAgciA9IGxlcnBQb2ludCh0aGlzLnBvaW50c1sxXSwgdGhpcy5wb2ludHNbMl0sIGUpLAogICAgICAgICAgICAgICAgICBuID0gbGVycFBvaW50KHRoaXMucG9pbnRzWzJdLCB0aGlzLnBvaW50c1szXSwgZSksCiAgICAgICAgICAgICAgICAgIGkgPSBsZXJwUG9pbnQodCwgciwgZSksCiAgICAgICAgICAgICAgICAgIGEgPSBsZXJwUG9pbnQociwgbiwgZSksCiAgICAgICAgICAgICAgICAgIG8gPSBsZXJwUG9pbnQoaSwgYSwgZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICBuZXcgUG9seW5vbWlhbEJlemllcih0aGlzLnBvaW50c1swXSwgdCwgaSwgbywgITApLAogICAgICAgICAgICAgICAgICBuZXcgUG9seW5vbWlhbEJlemllcihvLCBhLCBuLCB0aGlzLnBvaW50c1szXSwgITApLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gZXh0cmVtYShlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBlLnBvaW50c1swXVt0XSwKICAgICAgICAgICAgICAgIG4gPSBlLnBvaW50c1tlLnBvaW50cy5sZW5ndGggLSAxXVt0XTsKICAgICAgICAgICAgICBpZiAociA+IG4pIHsKICAgICAgICAgICAgICAgIHZhciBpID0gbjsKICAgICAgICAgICAgICAgIChuID0gciksIChyID0gaSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB2YXIgYSA9IHF1YWRSb290cygzICogZS5hW3RdLCAyICogZS5iW3RdLCBlLmNbdF0pLCBvID0gMDsKICAgICAgICAgICAgICAgIG8gPCBhLmxlbmd0aDsKICAgICAgICAgICAgICAgIG8gKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGlmIChhW29dID4gMCAmJiBhW29dIDwgMSkgewogICAgICAgICAgICAgICAgICB2YXIgbCA9IGUucG9pbnQoYVtvXSlbdF07CiAgICAgICAgICAgICAgICAgIGwgPCByID8gKHIgPSBsKSA6IGwgPiBuICYmIChuID0gbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgbWluOiByLCBtYXg6IG4gfTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUuYm91bmRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB7IHg6IGV4dHJlbWEodGhpcywgMCksIHk6IGV4dHJlbWEodGhpcywgMSkgfTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFBvbHlub21pYWxCZXppZXIucHJvdG90eXBlLmJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmJvdW5kcygpOwogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgbGVmdDogZS54Lm1pbiwKICAgICAgICAgICAgICAgICAgcmlnaHQ6IGUueC5tYXgsCiAgICAgICAgICAgICAgICAgIHRvcDogZS55Lm1pbiwKICAgICAgICAgICAgICAgICAgYm90dG9tOiBlLnkubWF4LAogICAgICAgICAgICAgICAgICB3aWR0aDogZS54Lm1heCAtIGUueC5taW4sCiAgICAgICAgICAgICAgICAgIGhlaWdodDogZS55Lm1heCAtIGUueS5taW4sCiAgICAgICAgICAgICAgICAgIGN4OiAoZS54Lm1heCArIGUueC5taW4pIC8gMiwKICAgICAgICAgICAgICAgICAgY3k6IChlLnkubWF4ICsgZS55Lm1pbikgLyAyLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gaW50ZXJzZWN0RGF0YShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSBlLmJvdW5kaW5nQm94KCk7CiAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIGN4OiBuLmN4LAogICAgICAgICAgICAgICAgY3k6IG4uY3ksCiAgICAgICAgICAgICAgICB3aWR0aDogbi53aWR0aCwKICAgICAgICAgICAgICAgIGhlaWdodDogbi5oZWlnaHQsCiAgICAgICAgICAgICAgICBiZXo6IGUsCiAgICAgICAgICAgICAgICB0OiAodCArIHIpIC8gMiwKICAgICAgICAgICAgICAgIHQxOiB0LAogICAgICAgICAgICAgICAgdDI6IHIsCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzcGxpdERhdGEoZSkgewogICAgICAgICAgICAgIHZhciB0ID0gZS5iZXouc3BsaXQoMC41KTsKICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgaW50ZXJzZWN0RGF0YSh0WzBdLCBlLnQxLCBlLnQpLAogICAgICAgICAgICAgICAgaW50ZXJzZWN0RGF0YSh0WzFdLCBlLnQsIGUudDIpLAogICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gYm94SW50ZXJzZWN0KGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgTWF0aC5hYnMoZS5jeCAtIHQuY3gpICogMiA8IGUud2lkdGggKyB0LndpZHRoICYmCiAgICAgICAgICAgICAgICBNYXRoLmFicyhlLmN5IC0gdC5jeSkgKiAyIDwgZS5oZWlnaHQgKyB0LmhlaWdodAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaW50ZXJzZWN0c0ltcGwoZSwgdCwgciwgbiwgaSwgYSkgewogICAgICAgICAgICAgIGlmIChib3hJbnRlcnNlY3QoZSwgdCkpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgciA+PSBhIHx8CiAgICAgICAgICAgICAgICAgIChlLndpZHRoIDw9IG4gJiYKICAgICAgICAgICAgICAgICAgICBlLmhlaWdodCA8PSBuICYmCiAgICAgICAgICAgICAgICAgICAgdC53aWR0aCA8PSBuICYmCiAgICAgICAgICAgICAgICAgICAgdC5oZWlnaHQgPD0gbikKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBpLnB1c2goW2UudCwgdC50XSk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBvID0gc3BsaXREYXRhKGUpLAogICAgICAgICAgICAgICAgICBsID0gc3BsaXREYXRhKHQpOwogICAgICAgICAgICAgICAgaW50ZXJzZWN0c0ltcGwob1swXSwgbFswXSwgciArIDEsIG4sIGksIGEpLAogICAgICAgICAgICAgICAgICBpbnRlcnNlY3RzSW1wbChvWzBdLCBsWzFdLCByICsgMSwgbiwgaSwgYSksCiAgICAgICAgICAgICAgICAgIGludGVyc2VjdHNJbXBsKG9bMV0sIGxbMF0sIHIgKyAxLCBuLCBpLCBhKSwKICAgICAgICAgICAgICAgICAgaW50ZXJzZWN0c0ltcGwob1sxXSwgbFsxXSwgciArIDEsIG4sIGksIGEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUuaW50ZXJzZWN0aW9ucyA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgICAgICAgdCA9PT0gdm9pZCAwICYmICh0ID0gMiksIHIgPT09IHZvaWQgMCAmJiAociA9IDcpOwogICAgICAgICAgICAgIHZhciBuID0gW107CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGludGVyc2VjdHNJbXBsKAogICAgICAgICAgICAgICAgICBpbnRlcnNlY3REYXRhKHRoaXMsIDAsIDEpLAogICAgICAgICAgICAgICAgICBpbnRlcnNlY3REYXRhKGUsIDAsIDEpLAogICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgbgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9ICh0ICsgMSkgJSBlLmxlbmd0aCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2x5bm9taWFsQmV6aWVyKGUudlt0XSwgZS5vW3RdLCBlLmlbcl0sIGUudltyXSwgITApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudEludmVydGVkID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByID0gKHQgKyAxKSAlIGUubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBvbHlub21pYWxCZXppZXIoZS52W3JdLCBlLmlbcl0sIGUub1t0XSwgZS52W3RdLCAhMCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIGNyb3NzUHJvZHVjdChlLCB0KSB7CiAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgIGVbMV0gKiB0WzJdIC0gZVsyXSAqIHRbMV0sCiAgICAgICAgICAgICAgICBlWzJdICogdFswXSAtIGVbMF0gKiB0WzJdLAogICAgICAgICAgICAgICAgZVswXSAqIHRbMV0gLSBlWzFdICogdFswXSwKICAgICAgICAgICAgICBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGxpbmVJbnRlcnNlY3Rpb24oZSwgdCwgciwgbikgewogICAgICAgICAgICAgIHZhciBpID0gW2VbMF0sIGVbMV0sIDFdLAogICAgICAgICAgICAgICAgYSA9IFt0WzBdLCB0WzFdLCAxXSwKICAgICAgICAgICAgICAgIG8gPSBbclswXSwgclsxXSwgMV0sCiAgICAgICAgICAgICAgICBsID0gW25bMF0sIG5bMV0sIDFdLAogICAgICAgICAgICAgICAgYyA9IGNyb3NzUHJvZHVjdChjcm9zc1Byb2R1Y3QoaSwgYSksIGNyb3NzUHJvZHVjdChvLCBsKSk7CiAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0WmVybyhjWzJdKSA/IG51bGwgOiBbY1swXSAvIGNbMl0sIGNbMV0gLyBjWzJdXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBwb2xhck9mZnNldChlLCB0LCByKSB7CiAgICAgICAgICAgICAgcmV0dXJuIFtlWzBdICsgTWF0aC5jb3ModCkgKiByLCBlWzFdIC0gTWF0aC5zaW4odCkgKiByXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBwb2ludERpc3RhbmNlKGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gTWF0aC5oeXBvdChlWzBdIC0gdFswXSwgZVsxXSAtIHRbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHBvaW50RXF1YWwoZSwgdCkgewogICAgICAgICAgICAgIHJldHVybiBmbG9hdEVxdWFsKGVbMF0sIHRbMF0pICYmIGZsb2F0RXF1YWwoZVsxXSwgdFsxXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gWmlnWmFnTW9kaWZpZXIoKSB7IH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTaGFwZU1vZGlmaWVyXSwgWmlnWmFnTW9kaWZpZXIpLAogICAgICAgICAgICAgIChaaWdaYWdNb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMucHJvY2Vzc0tleXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5hbXBsaXR1ZGUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIHQucywKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZnJlcXVlbmN5ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LnIsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnBvaW50c1R5cGUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIHQucHQsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFtcGxpdHVkZS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVxdWVuY3kuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucG9pbnRzVHlwZS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICE9PSAwKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gc2V0UG9pbnQoZSwgdCwgciwgbiwgaSwgYSwgbykgewogICAgICAgICAgICAgIHZhciBsID0gciAtIE1hdGguUEkgLyAyLAogICAgICAgICAgICAgICAgYyA9IHIgKyBNYXRoLlBJIC8gMiwKICAgICAgICAgICAgICAgIHUgPSB0WzBdICsgTWF0aC5jb3MocikgKiBuICogaSwKICAgICAgICAgICAgICAgIGQgPSB0WzFdIC0gTWF0aC5zaW4ocikgKiBuICogaTsKICAgICAgICAgICAgICBlLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICB1ICsgTWF0aC5jb3MobCkgKiBhLAogICAgICAgICAgICAgICAgZCAtIE1hdGguc2luKGwpICogYSwKICAgICAgICAgICAgICAgIHUgKyBNYXRoLmNvcyhjKSAqIG8sCiAgICAgICAgICAgICAgICBkIC0gTWF0aC5zaW4oYykgKiBvLAogICAgICAgICAgICAgICAgZS5sZW5ndGgoKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UGVycGVuZGljdWxhclZlY3RvcihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBbdFswXSAtIGVbMF0sIHRbMV0gLSBlWzFdXSwKICAgICAgICAgICAgICAgIG4gPSAtTWF0aC5QSSAqIDAuNSwKICAgICAgICAgICAgICAgIGkgPSBbCiAgICAgICAgICAgICAgICAgIE1hdGguY29zKG4pICogclswXSAtIE1hdGguc2luKG4pICogclsxXSwKICAgICAgICAgICAgICAgICAgTWF0aC5zaW4obikgKiByWzBdICsgTWF0aC5jb3MobikgKiByWzFdLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBnZXRQcm9qZWN0aW5nQW5nbGUoZSwgdCkgewogICAgICAgICAgICAgIHZhciByID0gdCA9PT0gMCA/IGUubGVuZ3RoKCkgLSAxIDogdCAtIDEsCiAgICAgICAgICAgICAgICBuID0gKHQgKyAxKSAlIGUubGVuZ3RoKCksCiAgICAgICAgICAgICAgICBpID0gZS52W3JdLAogICAgICAgICAgICAgICAgYSA9IGUudltuXSwKICAgICAgICAgICAgICAgIG8gPSBnZXRQZXJwZW5kaWN1bGFyVmVjdG9yKGksIGEpOwogICAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKDAsIDEpIC0gTWF0aC5hdGFuMihvWzFdLCBvWzBdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB6aWdaYWdDb3JuZXIoZSwgdCwgciwgbiwgaSwgYSwgbykgewogICAgICAgICAgICAgIHZhciBsID0gZ2V0UHJvamVjdGluZ0FuZ2xlKHQsIHIpLAogICAgICAgICAgICAgICAgYyA9IHQudltyICUgdC5fbGVuZ3RoXSwKICAgICAgICAgICAgICAgIHUgPSB0LnZbciA9PT0gMCA/IHQuX2xlbmd0aCAtIDEgOiByIC0gMV0sCiAgICAgICAgICAgICAgICBkID0gdC52WyhyICsgMSkgJSB0Ll9sZW5ndGhdLAogICAgICAgICAgICAgICAgRSA9CiAgICAgICAgICAgICAgICAgIGEgPT09IDIKICAgICAgICAgICAgICAgICAgICA/IE1hdGguc3FydCgKICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KGNbMF0gLSB1WzBdLCAyKSArIE1hdGgucG93KGNbMV0gLSB1WzFdLCAyKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICA6IDAsCiAgICAgICAgICAgICAgICBiID0KICAgICAgICAgICAgICAgICAgYSA9PT0gMgogICAgICAgICAgICAgICAgICAgID8gTWF0aC5zcXJ0KAogICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coY1swXSAtIGRbMF0sIDIpICsgTWF0aC5wb3coY1sxXSAtIGRbMV0sIDIpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIDogMDsKICAgICAgICAgICAgICBzZXRQb2ludCgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LnZbciAlIHQuX2xlbmd0aF0sCiAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBiIC8gKChpICsgMSkgKiAyKSwKICAgICAgICAgICAgICAgIEUgLyAoKGkgKyAxKSAqIDIpCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB6aWdaYWdTZWdtZW50KGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBvID0gMDsgbyA8IG47IG8gKz0gMSkgewogICAgICAgICAgICAgICAgdmFyIGwgPSAobyArIDEpIC8gKG4gKyAxKSwKICAgICAgICAgICAgICAgICAgYyA9CiAgICAgICAgICAgICAgICAgICAgaSA9PT0gMgogICAgICAgICAgICAgICAgICAgICAgPyBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KHQucG9pbnRzWzNdWzBdIC0gdC5wb2ludHNbMF1bMF0sIDIpICsKICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3codC5wb2ludHNbM11bMV0gLSB0LnBvaW50c1swXVsxXSwgMikKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIDogMCwKICAgICAgICAgICAgICAgICAgdSA9IHQubm9ybWFsQW5nbGUobCksCiAgICAgICAgICAgICAgICAgIGQgPSB0LnBvaW50KGwpOwogICAgICAgICAgICAgICAgc2V0UG9pbnQoZSwgZCwgdSwgYSwgciwgYyAvICgobiArIDEpICogMiksIGMgLyAoKG4gKyAxKSAqIDIpKSwKICAgICAgICAgICAgICAgICAgKGEgPSAtYSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChaaWdaYWdNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICAgIHZhciBpID0gZS5fbGVuZ3RoLAogICAgICAgICAgICAgICAgYSA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgaWYgKCgoYS5jID0gZS5jKSwgZS5jIHx8IChpIC09IDEpLCBpID09PSAwKSkgcmV0dXJuIGE7CiAgICAgICAgICAgICAgdmFyIG8gPSAtMSwKICAgICAgICAgICAgICAgIGwgPSBQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudChlLCAwKTsKICAgICAgICAgICAgICB6aWdaYWdDb3JuZXIoYSwgZSwgMCwgdCwgciwgbiwgbyk7CiAgICAgICAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCBpOyBjICs9IDEpCiAgICAgICAgICAgICAgICAobyA9IHppZ1phZ1NlZ21lbnQoYSwgbCwgdCwgciwgbiwgLW8pKSwKICAgICAgICAgICAgICAgICAgYyA9PT0gaSAtIDEgJiYgIWUuYwogICAgICAgICAgICAgICAgICAgID8gKGwgPSBudWxsKQogICAgICAgICAgICAgICAgICAgIDogKGwgPSBQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudChlLCAoYyArIDEpICUgaSkpLAogICAgICAgICAgICAgICAgICB6aWdaYWdDb3JuZXIoYSwgZSwgYyArIDEsIHQsIHIsIG4sIG8pOwogICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoWmlnWmFnTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLmFtcGxpdHVkZS52LAogICAgICAgICAgICAgICAgICBsID0gTWF0aC5tYXgoMCwgTWF0aC5yb3VuZCh0aGlzLmZyZXF1ZW5jeS52KSksCiAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLnBvaW50c1R5cGUudjsKICAgICAgICAgICAgICAgIGlmIChvICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgIHZhciB1LCBkOwogICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKCh1ID0gdGhpcy5zaGFwZXNbcl0pLAogICAgICAgICAgICAgICAgICAgICAgICAoZCA9IHUubG9jYWxTaGFwZUNvbGxlY3Rpb24pLAogICAgICAgICAgICAgICAgICAgICAgICAhKCF1LnNoYXBlLl9tZGYgJiYgIXRoaXMuX21kZiAmJiAhZSkpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgZC5yZWxlYXNlU2hhcGVzKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHUuc2hhcGUuX21kZiA9ICEwLAogICAgICAgICAgICAgICAgICAgICAgICB0ID0gdS5zaGFwZS5wYXRocy5zaGFwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIGEgPSB1LnNoYXBlLnBhdGhzLl9sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpIDwgYTsKICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIGQuYWRkU2hhcGUodGhpcy5wcm9jZXNzUGF0aCh0W2ldLCBvLCBsLCBjKSk7CiAgICAgICAgICAgICAgICAgICAgdS5zaGFwZS5wYXRocyA9IHUubG9jYWxTaGFwZUNvbGxlY3Rpb247CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoIHx8ICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIGxpbmVhck9mZnNldChlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSBNYXRoLmF0YW4yKHRbMF0gLSBlWzBdLCB0WzFdIC0gZVsxXSk7CiAgICAgICAgICAgICAgcmV0dXJuIFtwb2xhck9mZnNldChlLCBuLCByKSwgcG9sYXJPZmZzZXQodCwgbiwgcildOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG9mZnNldFNlZ21lbnQoZSwgdCkgewogICAgICAgICAgICAgIHZhciByLCBuLCBpLCBhLCBvLCBsLCBjOwogICAgICAgICAgICAgIChjID0gbGluZWFyT2Zmc2V0KGUucG9pbnRzWzBdLCBlLnBvaW50c1sxXSwgdCkpLAogICAgICAgICAgICAgICAgKHIgPSBjWzBdKSwKICAgICAgICAgICAgICAgIChuID0gY1sxXSksCiAgICAgICAgICAgICAgICAoYyA9IGxpbmVhck9mZnNldChlLnBvaW50c1sxXSwgZS5wb2ludHNbMl0sIHQpKSwKICAgICAgICAgICAgICAgIChpID0gY1swXSksCiAgICAgICAgICAgICAgICAoYSA9IGNbMV0pLAogICAgICAgICAgICAgICAgKGMgPSBsaW5lYXJPZmZzZXQoZS5wb2ludHNbMl0sIGUucG9pbnRzWzNdLCB0KSksCiAgICAgICAgICAgICAgICAobyA9IGNbMF0pLAogICAgICAgICAgICAgICAgKGwgPSBjWzFdKTsKICAgICAgICAgICAgICB2YXIgdSA9IGxpbmVJbnRlcnNlY3Rpb24ociwgbiwgaSwgYSk7CiAgICAgICAgICAgICAgdSA9PT0gbnVsbCAmJiAodSA9IG4pOwogICAgICAgICAgICAgIHZhciBkID0gbGluZUludGVyc2VjdGlvbihvLCBsLCBpLCBhKTsKICAgICAgICAgICAgICByZXR1cm4gZCA9PT0gbnVsbCAmJiAoZCA9IG8pLCBuZXcgUG9seW5vbWlhbEJlemllcihyLCB1LCBkLCBsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBqb2luTGluZXMoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICAgIHZhciBhID0gdC5wb2ludHNbM10sCiAgICAgICAgICAgICAgICBvID0gci5wb2ludHNbMF07CiAgICAgICAgICAgICAgaWYgKG4gPT09IDMgfHwgcG9pbnRFcXVhbChhLCBvKSkgcmV0dXJuIGE7CiAgICAgICAgICAgICAgaWYgKG4gPT09IDIpIHsKICAgICAgICAgICAgICAgIHZhciBsID0gLXQudGFuZ2VudEFuZ2xlKDEpLAogICAgICAgICAgICAgICAgICBjID0gLXIudGFuZ2VudEFuZ2xlKDApICsgTWF0aC5QSSwKICAgICAgICAgICAgICAgICAgdSA9IGxpbmVJbnRlcnNlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgICBwb2xhck9mZnNldChhLCBsICsgTWF0aC5QSSAvIDIsIDEwMCksCiAgICAgICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgICAgICBwb2xhck9mZnNldChvLCBsICsgTWF0aC5QSSAvIDIsIDEwMCkKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgZCA9IHUgPyBwb2ludERpc3RhbmNlKHUsIGEpIDogcG9pbnREaXN0YW5jZShhLCBvKSAvIDIsCiAgICAgICAgICAgICAgICAgIEUgPSBwb2xhck9mZnNldChhLCBsLCAyICogZCAqIHJvdW5kQ29ybmVyKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIGUuc2V0WFlBdChFWzBdLCBFWzFdLCAibyIsIGUubGVuZ3RoKCkgLSAxKSwKICAgICAgICAgICAgICAgICAgKEUgPSBwb2xhck9mZnNldChvLCBjLCAyICogZCAqIHJvdW5kQ29ybmVyKSksCiAgICAgICAgICAgICAgICAgIGUuc2V0VHJpcGxlQXQob1swXSwgb1sxXSwgb1swXSwgb1sxXSwgRVswXSwgRVsxXSwgZS5sZW5ndGgoKSksCiAgICAgICAgICAgICAgICAgIG8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBiID0gcG9pbnRFcXVhbChhLCB0LnBvaW50c1syXSkgPyB0LnBvaW50c1swXSA6IHQucG9pbnRzWzJdLAogICAgICAgICAgICAgICAgUCA9IHBvaW50RXF1YWwobywgci5wb2ludHNbMV0pID8gci5wb2ludHNbM10gOiByLnBvaW50c1sxXSwKICAgICAgICAgICAgICAgIFIgPSBsaW5lSW50ZXJzZWN0aW9uKGIsIGEsIG8sIFApOwogICAgICAgICAgICAgIHJldHVybiBSICYmIHBvaW50RGlzdGFuY2UoUiwgYSkgPCBpCiAgICAgICAgICAgICAgICA/IChlLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICBSWzBdLAogICAgICAgICAgICAgICAgICBSWzFdLAogICAgICAgICAgICAgICAgICBSWzBdLAogICAgICAgICAgICAgICAgICBSWzFdLAogICAgICAgICAgICAgICAgICBSWzBdLAogICAgICAgICAgICAgICAgICBSWzFdLAogICAgICAgICAgICAgICAgICBlLmxlbmd0aCgpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBSKQogICAgICAgICAgICAgICAgOiBhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGdldEludGVyc2VjdGlvbihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBlLmludGVyc2VjdGlvbnModCk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHIubGVuZ3RoICYmIGZsb2F0RXF1YWwoclswXVswXSwgMSkgJiYgci5zaGlmdCgpLAogICAgICAgICAgICAgICAgci5sZW5ndGggPyByWzBdIDogbnVsbAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcHJ1bmVTZWdtZW50SW50ZXJzZWN0aW9uKGUsIHQpIHsKICAgICAgICAgICAgICB2YXIgciA9IGUuc2xpY2UoKSwKICAgICAgICAgICAgICAgIG4gPSB0LnNsaWNlKCksCiAgICAgICAgICAgICAgICBpID0gZ2V0SW50ZXJzZWN0aW9uKGVbZS5sZW5ndGggLSAxXSwgdFswXSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGkgJiYKICAgICAgICAgICAgICAgICgocltlLmxlbmd0aCAtIDFdID0gZVtlLmxlbmd0aCAtIDFdLnNwbGl0KGlbMF0pWzBdKSwKICAgICAgICAgICAgICAgICAgKG5bMF0gPSB0WzBdLnNwbGl0KGlbMV0pWzFdKSksCiAgICAgICAgICAgICAgICBlLmxlbmd0aCA+IDEgJiYKICAgICAgICAgICAgICAgICAgdC5sZW5ndGggPiAxICYmCiAgICAgICAgICAgICAgICAgICgoaSA9IGdldEludGVyc2VjdGlvbihlWzBdLCB0W3QubGVuZ3RoIC0gMV0pKSwgaSkKICAgICAgICAgICAgICAgICAgPyBbW2VbMF0uc3BsaXQoaVswXSlbMF1dLCBbdFt0Lmxlbmd0aCAtIDFdLnNwbGl0KGlbMV0pWzFdXV0KICAgICAgICAgICAgICAgICAgOiBbciwgbl0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHBydW5lSW50ZXJzZWN0aW9ucyhlKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgdCwgciA9IDE7IHIgPCBlLmxlbmd0aDsgciArPSAxKQogICAgICAgICAgICAgICAgKHQgPSBwcnVuZVNlZ21lbnRJbnRlcnNlY3Rpb24oZVtyIC0gMV0sIGVbcl0pKSwKICAgICAgICAgICAgICAgICAgKGVbciAtIDFdID0gdFswXSksCiAgICAgICAgICAgICAgICAgIChlW3JdID0gdFsxXSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGUubGVuZ3RoID4gMSAmJgogICAgICAgICAgICAgICAgKCh0ID0gcHJ1bmVTZWdtZW50SW50ZXJzZWN0aW9uKGVbZS5sZW5ndGggLSAxXSwgZVswXSkpLAogICAgICAgICAgICAgICAgICAoZVtlLmxlbmd0aCAtIDFdID0gdFswXSksCiAgICAgICAgICAgICAgICAgIChlWzBdID0gdFsxXSkpLAogICAgICAgICAgICAgICAgZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gb2Zmc2V0U2VnbWVudFNwbGl0KGUsIHQpIHsKICAgICAgICAgICAgICB2YXIgciA9IGUuaW5mbGVjdGlvblBvaW50cygpLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgbzsKICAgICAgICAgICAgICBpZiAoci5sZW5ndGggPT09IDApIHJldHVybiBbb2Zmc2V0U2VnbWVudChlLCB0KV07CiAgICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAxIHx8IGZsb2F0RXF1YWwoclsxXSwgMSkpCiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoYSA9IGUuc3BsaXQoclswXSkpLAogICAgICAgICAgICAgICAgICAobiA9IGFbMF0pLAogICAgICAgICAgICAgICAgICAoaSA9IGFbMV0pLAogICAgICAgICAgICAgICAgICBbb2Zmc2V0U2VnbWVudChuLCB0KSwgb2Zmc2V0U2VnbWVudChpLCB0KV0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgKGEgPSBlLnNwbGl0KHJbMF0pKSwgKG4gPSBhWzBdKTsKICAgICAgICAgICAgICB2YXIgbCA9IChyWzFdIC0gclswXSkgLyAoMSAtIHJbMF0pOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoYSA9IGFbMV0uc3BsaXQobCkpLAogICAgICAgICAgICAgICAgKG8gPSBhWzBdKSwKICAgICAgICAgICAgICAgIChpID0gYVsxXSksCiAgICAgICAgICAgICAgICBbb2Zmc2V0U2VnbWVudChuLCB0KSwgb2Zmc2V0U2VnbWVudChvLCB0KSwgb2Zmc2V0U2VnbWVudChpLCB0KV0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIE9mZnNldFBhdGhNb2RpZmllcigpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW1NoYXBlTW9kaWZpZXJdLCBPZmZzZXRQYXRoTW9kaWZpZXIpLAogICAgICAgICAgICAgIChPZmZzZXRQYXRoTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgdAogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLnByb2Nlc3NLZXlzKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYW1vdW50ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LmEsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm1pdGVyTGltaXQgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIHQubWwsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmxpbmVKb2luID0gdC5saiksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gdGhpcy5hbW91bnQuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAhPT0gMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE9mZnNldFBhdGhNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoCiAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICBuCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgaSA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgICBpLmMgPSBlLmM7CiAgICAgICAgICAgICAgICB2YXIgYSA9IGUubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICBlLmMgfHwgKGEgLT0gMSk7CiAgICAgICAgICAgICAgICB2YXIgbywKICAgICAgICAgICAgICAgICAgbCwKICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgdSA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IGE7IG8gKz0gMSkKICAgICAgICAgICAgICAgICAgKGMgPSBQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudChlLCBvKSksCiAgICAgICAgICAgICAgICAgICAgdS5wdXNoKG9mZnNldFNlZ21lbnRTcGxpdChjLCB0KSk7CiAgICAgICAgICAgICAgICBpZiAoIWUuYykKICAgICAgICAgICAgICAgICAgZm9yIChvID0gYSAtIDE7IG8gPj0gMDsgbyAtPSAxKQogICAgICAgICAgICAgICAgICAgIChjID0gUG9seW5vbWlhbEJlemllci5zaGFwZVNlZ21lbnRJbnZlcnRlZChlLCBvKSksCiAgICAgICAgICAgICAgICAgICAgICB1LnB1c2gob2Zmc2V0U2VnbWVudFNwbGl0KGMsIHQpKTsKICAgICAgICAgICAgICAgIHUgPSBwcnVuZUludGVyc2VjdGlvbnModSk7CiAgICAgICAgICAgICAgICB2YXIgZCA9IG51bGwsCiAgICAgICAgICAgICAgICAgIEUgPSBudWxsOwogICAgICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IHUubGVuZ3RoOyBvICs9IDEpIHsKICAgICAgICAgICAgICAgICAgdmFyIGIgPSB1W29dOwogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIEUgJiYgKGQgPSBqb2luTGluZXMoaSwgRSwgYlswXSwgciwgbikpLAogICAgICAgICAgICAgICAgICAgIEUgPSBiW2IubGVuZ3RoIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgbCA9IDA7CiAgICAgICAgICAgICAgICAgICAgbCA8IGIubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGwgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKGMgPSBiW2xdKSwKICAgICAgICAgICAgICAgICAgICAgIGQgJiYgcG9pbnRFcXVhbChjLnBvaW50c1swXSwgZCkKICAgICAgICAgICAgICAgICAgICAgICAgPyBpLnNldFhZQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbMV1bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbMV1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoKCkgLSAxCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgOiBpLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzFdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzFdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoKCkKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIGkuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzNdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBjLnBvaW50c1szXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbM11bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzNdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBjLnBvaW50c1syXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbMl1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoKCkKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAoZCA9IGMucG9pbnRzWzNdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB1Lmxlbmd0aCAmJiBqb2luTGluZXMoaSwgRSwgdVswXVswXSwgciwgbiksIGk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE9mZnNldFBhdGhNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1NoYXBlcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuc2hhcGVzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbyA9IHRoaXMuYW1vdW50LnYsCiAgICAgICAgICAgICAgICAgIGwgPSB0aGlzLm1pdGVyTGltaXQudiwKICAgICAgICAgICAgICAgICAgYyA9IHRoaXMubGluZUpvaW47CiAgICAgICAgICAgICAgICBpZiAobyAhPT0gMCkgewogICAgICAgICAgICAgICAgICB2YXIgdSwgZDsKICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgodSA9IHRoaXMuc2hhcGVzW3JdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSB1LmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgISghdS5zaGFwZS5fbWRmICYmICF0aGlzLl9tZGYgJiYgIWUpKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIGQucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgICB1LnNoYXBlLl9tZGYgPSAhMCwKICAgICAgICAgICAgICAgICAgICAgICAgdCA9IHUuc2hhcGUucGF0aHMuc2hhcGVzLAogICAgICAgICAgICAgICAgICAgICAgICBhID0gdS5zaGFwZS5wYXRocy5fbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaSA8IGE7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBkLmFkZFNoYXBlKHRoaXMucHJvY2Vzc1BhdGgodFtpXSwgbywgYywgbCkpOwogICAgICAgICAgICAgICAgICAgIHUuc2hhcGUucGF0aHMgPSB1LmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmdW5jdGlvbiBnZXRGb250UHJvcGVydGllcyhlKSB7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHZhciB0ID0gZS5mU3R5bGUgPyBlLmZTdHlsZS5zcGxpdCgiICIpIDogW10sCiAgICAgICAgICAgICAgICByID0gIm5vcm1hbCIsCiAgICAgICAgICAgICAgICBuID0gIm5vcm1hbCIsCiAgICAgICAgICAgICAgICBpID0gdC5sZW5ndGgsCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgbyA9IDA7CiAgICAgICAgICAgICAgICBvIDwgaTsKICAgICAgICAgICAgICAgIG8gKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHN3aXRjaCAoKChhID0gdFtvXS50b0xvd2VyQ2FzZSgpKSwgYSkpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAiaXRhbGljIjoKICAgICAgICAgICAgICAgICAgICBuID0gIml0YWxpYyI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImJvbGQiOgogICAgICAgICAgICAgICAgICAgIHIgPSAiNzAwIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAiYmxhY2siOgogICAgICAgICAgICAgICAgICAgIHIgPSAiOTAwIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAibWVkaXVtIjoKICAgICAgICAgICAgICAgICAgICByID0gIjUwMCI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgInJlZ3VsYXIiOgogICAgICAgICAgICAgICAgICBjYXNlICJub3JtYWwiOgogICAgICAgICAgICAgICAgICAgIHIgPSAiNDAwIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAibGlnaHQiOgogICAgICAgICAgICAgICAgICBjYXNlICJ0aGluIjoKICAgICAgICAgICAgICAgICAgICByID0gIjIwMCI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgc3R5bGU6IG4sIHdlaWdodDogZS5mV2VpZ2h0IHx8IHIgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgRm9udE1hbmFnZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0gNWUzLAogICAgICAgICAgICAgICAgdCA9IHsgdzogMCwgc2l6ZTogMCwgc2hhcGVzOiBbXSwgZGF0YTogeyBzaGFwZXM6IFtdIH0gfSwKICAgICAgICAgICAgICAgIHIgPSBbXTsKICAgICAgICAgICAgICByID0gci5jb25jYXQoWwogICAgICAgICAgICAgICAgMjMwNCwgMjMwNSwgMjMwNiwgMjMwNywgMjM2MiwgMjM2MywgMjM2NCwgMjM2NCwgMjM2NiwgMjM2NywKICAgICAgICAgICAgICAgIDIzNjgsIDIzNjksIDIzNzAsIDIzNzEsIDIzNzIsIDIzNzMsIDIzNzQsIDIzNzUsIDIzNzYsIDIzNzcsCiAgICAgICAgICAgICAgICAyMzc4LCAyMzc5LCAyMzgwLCAyMzgxLCAyMzgyLCAyMzgzLCAyMzg3LCAyMzg4LCAyMzg5LCAyMzkwLAogICAgICAgICAgICAgICAgMjM5MSwgMjQwMiwgMjQwMywKICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICB2YXIgbiA9IDEyNzk4OCwKICAgICAgICAgICAgICAgIGkgPSA5MTc2MzEsCiAgICAgICAgICAgICAgICBhID0gOTE3NjAxLAogICAgICAgICAgICAgICAgbyA9IDkxNzYyNiwKICAgICAgICAgICAgICAgIGwgPSA2NTAzOSwKICAgICAgICAgICAgICAgIGMgPSA4MjA1LAogICAgICAgICAgICAgICAgdSA9IDEyNzQ2MiwKICAgICAgICAgICAgICAgIGQgPSAxMjc0ODcsCiAgICAgICAgICAgICAgICBFID0gWwogICAgICAgICAgICAgICAgICAiZDgzY2RmZmIiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmMiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmQiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmUiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmYiLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICBmdW5jdGlvbiBiKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6ID0gQi5zcGxpdCgiLCIpLAogICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICBWID0gei5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIFEgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBWOyBOICs9IDEpCiAgICAgICAgICAgICAgICAgIHpbTl0gIT09ICJzYW5zLXNlcmlmIiAmJiB6W05dICE9PSAibW9ub3NwYWNlIiAmJiBRLnB1c2goeltOXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gUS5qb2luKCIsIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFAoQiwgeikgewogICAgICAgICAgICAgICAgdmFyIE4gPSBjcmVhdGVUYWcoInNwYW4iKTsKICAgICAgICAgICAgICAgIE4uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsICEwKSwgKE4uc3R5bGUuZm9udEZhbWlseSA9IHopOwogICAgICAgICAgICAgICAgdmFyIFYgPSBjcmVhdGVUYWcoInNwYW4iKTsKICAgICAgICAgICAgICAgIChWLmlubmVyVGV4dCA9ICJnaUl0VDFXUXlAIS0vIyIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5sZWZ0ID0gIi0xMDAwMHB4IiksCiAgICAgICAgICAgICAgICAgIChOLnN0eWxlLnRvcCA9ICItMTAwMDBweCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5mb250U2l6ZSA9ICIzMDBweCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5mb250VmFyaWFudCA9ICJub3JtYWwiKSwKICAgICAgICAgICAgICAgICAgKE4uc3R5bGUuZm9udFN0eWxlID0gIm5vcm1hbCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5mb250V2VpZ2h0ID0gIm5vcm1hbCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5sZXR0ZXJTcGFjaW5nID0gIjAiKSwKICAgICAgICAgICAgICAgICAgTi5hcHBlbmRDaGlsZChWKSwKICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChOKTsKICAgICAgICAgICAgICAgIHZhciBRID0gVi5vZmZzZXRXaWR0aDsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChWLnN0eWxlLmZvbnRGYW1pbHkgPSBiKEIpICsgIiwgIiArIHopLAogICAgICAgICAgICAgICAgICB7IG5vZGU6IFYsIHc6IFEsIHBhcmVudDogTiB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBSKCkgewogICAgICAgICAgICAgICAgdmFyIEIsCiAgICAgICAgICAgICAgICAgIHogPSB0aGlzLmZvbnRzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgTiwKICAgICAgICAgICAgICAgICAgViwKICAgICAgICAgICAgICAgICAgUSA9IHo7CiAgICAgICAgICAgICAgICBmb3IgKEIgPSAwOyBCIDwgejsgQiArPSAxKQogICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLmxvYWRlZAogICAgICAgICAgICAgICAgICAgID8gKFEgLT0gMSkKICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZm9udHNbQl0uZk9yaWdpbiA9PT0gIm4iIHx8CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLm9yaWdpbiA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5mb250c1tCXS5sb2FkZWQgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgIDogKChOID0gdGhpcy5mb250c1tCXS5tb25vQ2FzZS5ub2RlKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFYgPSB0aGlzLmZvbnRzW0JdLm1vbm9DYXNlLncpLAogICAgICAgICAgICAgICAgICAgICAgICBOLm9mZnNldFdpZHRoICE9PSBWCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKFEgLT0gMSksICh0aGlzLmZvbnRzW0JdLmxvYWRlZCA9ICEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoTiA9IHRoaXMuZm9udHNbQl0uc2Fuc0Nhc2Uubm9kZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoViA9IHRoaXMuZm9udHNbQl0uc2Fuc0Nhc2UudyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLm9mZnNldFdpZHRoICE9PSBWICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFEgLT0gMSksICh0aGlzLmZvbnRzW0JdLmxvYWRlZCA9ICEwKSkpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLmxvYWRlZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5mb250c1tCXS5zYW5zQ2FzZS5wYXJlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLnNhbnNDYXNlLnBhcmVudAogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9udHNbQl0ubW9ub0Nhc2UucGFyZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLm1vbm9DYXNlLnBhcmVudAogICAgICAgICAgICAgICAgICAgICAgICAgICkpKTsKICAgICAgICAgICAgICAgIFEgIT09IDAgJiYgRGF0ZS5ub3coKSAtIHRoaXMuaW5pdFRpbWUgPCBlCiAgICAgICAgICAgICAgICAgID8gc2V0VGltZW91dCh0aGlzLmNoZWNrTG9hZGVkRm9udHNCaW5kZWQsIDIwKQogICAgICAgICAgICAgICAgICA6IHNldFRpbWVvdXQodGhpcy5zZXRJc0xvYWRlZEJpbmRlZCwgMTApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBUKEIsIHopIHsKICAgICAgICAgICAgICAgIHZhciBOID0gZG9jdW1lbnQuYm9keSAmJiB6ID8gInN2ZyIgOiAiY2FudmFzIiwKICAgICAgICAgICAgICAgICAgViwKICAgICAgICAgICAgICAgICAgUSA9IGdldEZvbnRQcm9wZXJ0aWVzKEIpOwogICAgICAgICAgICAgICAgaWYgKE4gPT09ICJzdmciKSB7CiAgICAgICAgICAgICAgICAgIHZhciBZID0gY3JlYXRlTlMoInRleHQiKTsKICAgICAgICAgICAgICAgICAgKFkuc3R5bGUuZm9udFNpemUgPSAiMTAwcHgiKSwKICAgICAgICAgICAgICAgICAgICBZLnNldEF0dHJpYnV0ZSgiZm9udC1mYW1pbHkiLCBCLmZGYW1pbHkpLAogICAgICAgICAgICAgICAgICAgIFkuc2V0QXR0cmlidXRlKCJmb250LXN0eWxlIiwgUS5zdHlsZSksCiAgICAgICAgICAgICAgICAgICAgWS5zZXRBdHRyaWJ1dGUoImZvbnQtd2VpZ2h0IiwgUS53ZWlnaHQpLAogICAgICAgICAgICAgICAgICAgIChZLnRleHRDb250ZW50ID0gIjEiKSwKICAgICAgICAgICAgICAgICAgICBCLmZDbGFzcwogICAgICAgICAgICAgICAgICAgICAgPyAoKFkuc3R5bGUuZm9udEZhbWlseSA9ICJpbmhlcml0IiksCiAgICAgICAgICAgICAgICAgICAgICAgIFkuc2V0QXR0cmlidXRlKCJjbGFzcyIsIEIuZkNsYXNzKSkKICAgICAgICAgICAgICAgICAgICAgIDogKFkuc3R5bGUuZm9udEZhbWlseSA9IEIuZkZhbWlseSksCiAgICAgICAgICAgICAgICAgICAgei5hcHBlbmRDaGlsZChZKSwKICAgICAgICAgICAgICAgICAgICAoViA9IFkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIGhlID0gbmV3IE9mZnNjcmVlbkNhbnZhcyg1MDAsIDUwMCkuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgKGhlLmZvbnQgPSBRLnN0eWxlICsgIiAiICsgUS53ZWlnaHQgKyAiIDEwMHB4ICIgKyBCLmZGYW1pbHkpLAogICAgICAgICAgICAgICAgICAgIChWID0gaGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24geWUodmUpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIE4gPT09ICJzdmciCiAgICAgICAgICAgICAgICAgICAgPyAoKFYudGV4dENvbnRlbnQgPSB2ZSksIFYuZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgICAgOiBWLm1lYXN1cmVUZXh0KHZlKS53aWR0aDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB7IG1lYXN1cmVUZXh0OiB5ZSB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBNKEIsIHopIHsKICAgICAgICAgICAgICAgIGlmICghQikgewogICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gITA7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoYXJzKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLmlzTG9hZGVkID0gITApLCAodGhpcy5mb250cyA9IEIubGlzdCk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQuYm9keSkgewogICAgICAgICAgICAgICAgICAodGhpcy5pc0xvYWRlZCA9ICEwKSwKICAgICAgICAgICAgICAgICAgICBCLmxpc3QuZm9yRWFjaChmdW5jdGlvbiAobWUpIHsKICAgICAgICAgICAgICAgICAgICAgIChtZS5oZWxwZXIgPSBUKG1lKSksIChtZS5jYWNoZSA9IHt9KTsKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5mb250cyA9IEIubGlzdCk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBOID0gQi5saXN0LAogICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICBRID0gTi5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIFkgPSBROwogICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkgewogICAgICAgICAgICAgICAgICB2YXIgaGUgPSAhMCwKICAgICAgICAgICAgICAgICAgICB5ZSwKICAgICAgICAgICAgICAgICAgICB2ZTsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgoTltWXS5sb2FkZWQgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAoTltWXS5tb25vQ2FzZSA9IFAoTltWXS5mRmFtaWx5LCAibW9ub3NwYWNlIikpLAogICAgICAgICAgICAgICAgICAgICAgKE5bVl0uc2Fuc0Nhc2UgPSBQKE5bVl0uZkZhbWlseSwgInNhbnMtc2VyaWYiKSksCiAgICAgICAgICAgICAgICAgICAgICAhTltWXS5mUGF0aCkKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIChOW1ZdLmxvYWRlZCA9ICEwKSwgKFkgLT0gMSk7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKE5bVl0uZk9yaWdpbiA9PT0gInAiIHx8IE5bVl0ub3JpZ2luID09PSAzKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKCh5ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHlsZVtmLWZvcmlnaW49InAiXVtmLWZhbWlseT0iJyArCiAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZkZhbWlseSArCiAgICAgICAgICAgICAgICAgICAgICAgICciXSwgc3R5bGVbZi1vcmlnaW49IjMiXVtmLWZhbWlseT0iJyArCiAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZkZhbWlseSArCiAgICAgICAgICAgICAgICAgICAgICAgICciXScKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICB5ZS5sZW5ndGggPiAwICYmIChoZSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgaGUpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgUGUgPSBjcmVhdGVUYWcoInN0eWxlIik7CiAgICAgICAgICAgICAgICAgICAgICBQZS5zZXRBdHRyaWJ1dGUoImYtZm9yaWdpbiIsIE5bVl0uZk9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIFBlLnNldEF0dHJpYnV0ZSgiZi1vcmlnaW4iLCBOW1ZdLm9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIFBlLnNldEF0dHJpYnV0ZSgiZi1mYW1pbHkiLCBOW1ZdLmZGYW1pbHkpLAogICAgICAgICAgICAgICAgICAgICAgICAoUGUudHlwZSA9ICJ0ZXh0L2NzcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAoUGUuaW5uZXJUZXh0ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAiQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZkZhbWlseSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgZm9udC1zdHlsZTogbm9ybWFsOyBzcmM6IHVybCgnIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS5mUGF0aCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIicpO30iKSwKICAgICAgICAgICAgICAgICAgICAgICAgei5hcHBlbmRDaGlsZChQZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKE5bVl0uZk9yaWdpbiA9PT0gImciIHx8IE5bVl0ub3JpZ2luID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgIHllID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbmtbZi1mb3JpZ2luPSJnIl0sIGxpbmtbZi1vcmlnaW49IjEiXScKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB2ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICB2ZSA8IHllLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgIHZlICs9IDEKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICB5ZVt2ZV0uaHJlZi5pbmRleE9mKE5bVl0uZlBhdGgpICE9PSAtMSAmJiAoaGUgPSAhMSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGhlKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgQ2UgPSBjcmVhdGVUYWcoImxpbmsiKTsKICAgICAgICAgICAgICAgICAgICAgIENlLnNldEF0dHJpYnV0ZSgiZi1mb3JpZ2luIiwgTltWXS5mT3JpZ2luKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2Uuc2V0QXR0cmlidXRlKCJmLW9yaWdpbiIsIE5bVl0ub3JpZ2luKSwKICAgICAgICAgICAgICAgICAgICAgICAgKENlLnR5cGUgPSAidGV4dC9jc3MiKSwKICAgICAgICAgICAgICAgICAgICAgICAgKENlLnJlbCA9ICJzdHlsZXNoZWV0IiksCiAgICAgICAgICAgICAgICAgICAgICAgIChDZS5ocmVmID0gTltWXS5mUGF0aCksCiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoQ2UpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChOW1ZdLmZPcmlnaW4gPT09ICJ0IiB8fCBOW1ZdLm9yaWdpbiA9PT0gMikgewogICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICB5ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICdzY3JpcHRbZi1mb3JpZ2luPSJ0Il0sIHNjcmlwdFtmLW9yaWdpbj0iMiJdJwogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHZlID0gMDsKICAgICAgICAgICAgICAgICAgICAgIHZlIDwgeWUubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgdmUgKz0gMQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZlBhdGggPT09IHllW3ZlXS5zcmMgJiYgKGhlID0gITEpOwogICAgICAgICAgICAgICAgICAgIGlmIChoZSkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGllID0gY3JlYXRlVGFnKCJsaW5rIik7CiAgICAgICAgICAgICAgICAgICAgICBpZS5zZXRBdHRyaWJ1dGUoImYtZm9yaWdpbiIsIE5bVl0uZk9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIGllLnNldEF0dHJpYnV0ZSgiZi1vcmlnaW4iLCBOW1ZdLm9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIGllLnNldEF0dHJpYnV0ZSgicmVsIiwgInN0eWxlc2hlZXQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgaWUuc2V0QXR0cmlidXRlKCJocmVmIiwgTltWXS5mUGF0aCksCiAgICAgICAgICAgICAgICAgICAgICAgIHouYXBwZW5kQ2hpbGQoaWUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAoTltWXS5oZWxwZXIgPSBUKE5bVl0sIHopKSwKICAgICAgICAgICAgICAgICAgICAoTltWXS5jYWNoZSA9IHt9KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzLnB1c2goTltWXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBZID09PSAwCiAgICAgICAgICAgICAgICAgID8gKHRoaXMuaXNMb2FkZWQgPSAhMCkKICAgICAgICAgICAgICAgICAgOiBzZXRUaW1lb3V0KHRoaXMuY2hlY2tMb2FkZWRGb250cy5iaW5kKHRoaXMpLCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiB4KEIpIHsKICAgICAgICAgICAgICAgIGlmIChCKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnMgfHwgKHRoaXMuY2hhcnMgPSBbXSk7CiAgICAgICAgICAgICAgICAgIHZhciB6LAogICAgICAgICAgICAgICAgICAgIE4gPSBCLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICAgIFEgPSB0aGlzLmNoYXJzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICBZOwogICAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgTjsgeiArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMCwgWSA9ICExOyBWIDwgUTspCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJzW1ZdLnN0eWxlID09PSBCW3pdLnN0eWxlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbVl0uZkZhbWlseSA9PT0gQlt6XS5mRmFtaWx5ICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbVl0uY2ggPT09IEJbel0uY2ggJiYKICAgICAgICAgICAgICAgICAgICAgICAgKFkgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIChWICs9IDEpOwogICAgICAgICAgICAgICAgICAgIFkgfHwgKHRoaXMuY2hhcnMucHVzaChCW3pdKSwgKFEgKz0gMSkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGsoQiwgeiwgTikgewogICAgICAgICAgICAgICAgZm9yICh2YXIgViA9IDAsIFEgPSB0aGlzLmNoYXJzLmxlbmd0aDsgViA8IFE7KSB7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJzW1ZdLmNoID09PSBCICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFyc1tWXS5zdHlsZSA9PT0geiAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbVl0uZkZhbWlseSA9PT0gTgogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhcnNbVl07CiAgICAgICAgICAgICAgICAgIFYgKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICgodHlwZW9mIEIgPT0gInN0cmluZyIgJiYgQi5jaGFyQ29kZUF0KDApICE9PSAxMykgfHwgIUIpICYmCiAgICAgICAgICAgICAgICAgIGNvbnNvbGUgJiYKICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLl93YXJuZWQgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLl93YXJuZWQgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKAogICAgICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgY2hhcmFjdGVyIGZyb20gZXhwb3J0ZWQgY2hhcmFjdGVycyBsaXN0OiAiLAogICAgICAgICAgICAgICAgICAgICAgQiwKICAgICAgICAgICAgICAgICAgICAgIHosCiAgICAgICAgICAgICAgICAgICAgICBOCiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFMoQiwgeiwgTikgewogICAgICAgICAgICAgICAgdmFyIFYgPSB0aGlzLmdldEZvbnRCeU5hbWUoeiksCiAgICAgICAgICAgICAgICAgIFEgPSBCOwogICAgICAgICAgICAgICAgaWYgKCFWLmNhY2hlW1FdKSB7CiAgICAgICAgICAgICAgICAgIHZhciBZID0gVi5oZWxwZXI7CiAgICAgICAgICAgICAgICAgIGlmIChCID09PSAiICIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaGUgPSBZLm1lYXN1cmVUZXh0KCJ8IiArIEIgKyAifCIpLAogICAgICAgICAgICAgICAgICAgICAgeWUgPSBZLm1lYXN1cmVUZXh0KCJ8fCIpOwogICAgICAgICAgICAgICAgICAgIFYuY2FjaGVbUV0gPSAoaGUgLSB5ZSkgLyAxMDA7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSBWLmNhY2hlW1FdID0gWS5tZWFzdXJlVGV4dChCKSAvIDEwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBWLmNhY2hlW1FdICogTjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gQShCKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciB6ID0gMCwgTiA9IHRoaXMuZm9udHMubGVuZ3RoOyB6IDwgTjspIHsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9udHNbel0uZk5hbWUgPT09IEIpIHJldHVybiB0aGlzLmZvbnRzW3pdOwogICAgICAgICAgICAgICAgICB6ICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb250c1swXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gTyhCKSB7CiAgICAgICAgICAgICAgICB2YXIgeiA9IDAsCiAgICAgICAgICAgICAgICAgIE4gPSBCLmNoYXJDb2RlQXQoMCk7CiAgICAgICAgICAgICAgICBpZiAoTiA+PSA1NTI5NiAmJiBOIDw9IDU2MzE5KSB7CiAgICAgICAgICAgICAgICAgIHZhciBWID0gQi5jaGFyQ29kZUF0KDEpOwogICAgICAgICAgICAgICAgICBWID49IDU2MzIwICYmCiAgICAgICAgICAgICAgICAgICAgViA8PSA1NzM0MyAmJgogICAgICAgICAgICAgICAgICAgICh6ID0gKE4gLSA1NTI5NikgKiAxMDI0ICsgViAtIDU2MzIwICsgNjU1MzYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHo7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEYoQiwgeikgewogICAgICAgICAgICAgICAgdmFyIE4gPSBCLnRvU3RyaW5nKDE2KSArIHoudG9TdHJpbmcoMTYpOwogICAgICAgICAgICAgICAgcmV0dXJuIEUuaW5kZXhPZihOKSAhPT0gLTE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEQoQikgewogICAgICAgICAgICAgICAgcmV0dXJuIEIgPT09IGM7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEgoQikgewogICAgICAgICAgICAgICAgcmV0dXJuIEIgPT09IGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uICQoQikgewogICAgICAgICAgICAgICAgdmFyIHogPSBPKEIpOwogICAgICAgICAgICAgICAgcmV0dXJuIHogPj0gdSAmJiB6IDw9IGQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHEoQikgewogICAgICAgICAgICAgICAgcmV0dXJuICQoQi5zdWJzdHIoMCwgMikpICYmICQoQi5zdWJzdHIoMiwgMikpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBKKEIpIHsKICAgICAgICAgICAgICAgIHJldHVybiByLmluZGV4T2YoQikgIT09IC0xOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBLKEIsIHopIHsKICAgICAgICAgICAgICAgIHZhciBOID0gTyhCLnN1YnN0cih6LCAyKSk7CiAgICAgICAgICAgICAgICBpZiAoTiAhPT0gbikgcmV0dXJuICExOwogICAgICAgICAgICAgICAgdmFyIFYgPSAwOwogICAgICAgICAgICAgICAgZm9yICh6ICs9IDI7IFYgPCA1OykgewogICAgICAgICAgICAgICAgICBpZiAoKChOID0gTyhCLnN1YnN0cih6LCAyKSkpLCBOIDwgYSB8fCBOID4gbykpIHJldHVybiAhMTsKICAgICAgICAgICAgICAgICAgKFYgKz0gMSksICh6ICs9IDIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIE8oQi5zdWJzdHIoeiwgMikpID09PSBpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBlZSgpIHsKICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSAhMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIGxlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuZm9udHMgPSBbXSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNoYXJzID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnR5cGVraXRMb2FkZWQgPSAwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXNMb2FkZWQgPSAhMSksCiAgICAgICAgICAgICAgICAgICh0aGlzLl93YXJuZWQgPSAhMSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmluaXRUaW1lID0gRGF0ZS5ub3coKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNldElzTG9hZGVkQmluZGVkID0gdGhpcy5zZXRJc0xvYWRlZC5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuY2hlY2tMb2FkZWRGb250c0JpbmRlZCA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0xvYWRlZEZvbnRzLmJpbmQodGhpcykpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgKGxlLmlzTW9kaWZpZXIgPSBGKSwKICAgICAgICAgICAgICAgIChsZS5pc1plcm9XaWR0aEpvaW5lciA9IEQpLAogICAgICAgICAgICAgICAgKGxlLmlzRmxhZ0Vtb2ppID0gcSksCiAgICAgICAgICAgICAgICAobGUuaXNSZWdpb25hbENvZGUgPSAkKSwKICAgICAgICAgICAgICAgIChsZS5pc0NvbWJpbmVkQ2hhcmFjdGVyID0gSiksCiAgICAgICAgICAgICAgICAobGUuaXNSZWdpb25hbEZsYWcgPSBLKSwKICAgICAgICAgICAgICAgIChsZS5pc1ZhcmlhdGlvblNlbGVjdG9yID0gSCksCiAgICAgICAgICAgICAgICAobGUuQkxBQ0tfRkxBR19DT0RFX1BPSU5UID0gbik7CiAgICAgICAgICAgICAgdmFyIHJlID0gewogICAgICAgICAgICAgICAgYWRkQ2hhcnM6IHgsCiAgICAgICAgICAgICAgICBhZGRGb250czogTSwKICAgICAgICAgICAgICAgIGdldENoYXJEYXRhOiBrLAogICAgICAgICAgICAgICAgZ2V0Rm9udEJ5TmFtZTogQSwKICAgICAgICAgICAgICAgIG1lYXN1cmVUZXh0OiBTLAogICAgICAgICAgICAgICAgY2hlY2tMb2FkZWRGb250czogUiwKICAgICAgICAgICAgICAgIHNldElzTG9hZGVkOiBlZSwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIHJldHVybiAobGUucHJvdG90eXBlID0gcmUpLCBsZTsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gU2xvdE1hbmFnZXIoZSkgewogICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRGF0YSA9IGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU2xvdE1hbmFnZXIucHJvdG90eXBlLmdldFByb3AgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbkRhdGEuc2xvdHMgJiYgdGhpcy5hbmltYXRpb25EYXRhLnNsb3RzW2Uuc2lkXQogICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKGUsIHRoaXMuYW5pbWF0aW9uRGF0YS5zbG90c1tlLnNpZF0ucCkKICAgICAgICAgICAgICAgIDogZTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gc2xvdEZhY3RvcnkoZSkgewogICAgICAgICAgICAgIHJldHVybiBuZXcgU2xvdE1hbmFnZXIoZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gUmVuZGVyYWJsZUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgUmVuZGVyYWJsZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGluaXRSZW5kZXJhYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy5pc0luUmFuZ2UgPSAhMSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmhpZGRlbiA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXNUcmFuc3BhcmVudCA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucmVuZGVyYWJsZUNvbXBvbmVudHMgPSBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRSZW5kZXJhYmxlQ29tcG9uZW50OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5pbmRleE9mKHQpID09PSAtMSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLnB1c2godCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW1vdmVSZW5kZXJhYmxlQ29tcG9uZW50OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5pbmRleE9mKHQpICE9PSAtMSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLnNwbGljZSgKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLmluZGV4T2YodCksCiAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcHJlcGFyZVJlbmRlcmFibGVGcmFtZTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tMYXllckxpbWl0cyh0KTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNoZWNrVHJhbnNwYXJlbmN5OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLm8udiA8PSAwCiAgICAgICAgICAgICAgICAgID8gIXRoaXMuaXNUcmFuc3BhcmVudCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucmVuZGVyQ29uZmlnLmhpZGVPblRyYW5zcGFyZW50ICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5pc1RyYW5zcGFyZW50ID0gITApLCB0aGlzLmhpZGUoKSkKICAgICAgICAgICAgICAgICAgOiB0aGlzLmlzVHJhbnNwYXJlbnQgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLmlzVHJhbnNwYXJlbnQgPSAhMSksIHRoaXMuc2hvdygpKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNoZWNrTGF5ZXJMaW1pdHM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaXAgLSB0aGlzLmRhdGEuc3QgPD0gdCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEub3AgLSB0aGlzLmRhdGEuc3QgPiB0CiAgICAgICAgICAgICAgICAgID8gdGhpcy5pc0luUmFuZ2UgIT09ICEwICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5nbG9iYWxEYXRhLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5pc0luUmFuZ2UgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCkpCiAgICAgICAgICAgICAgICAgIDogdGhpcy5pc0luUmFuZ2UgIT09ICExICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5nbG9iYWxEYXRhLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaXNJblJhbmdlID0gITEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJlbmRlclJlbmRlcmFibGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzW3RdLnJlbmRlckZyYW1lKHRoaXMuX2lzRmlyc3RGcmFtZSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzb3VyY2VSZWN0QXRUaW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4geyB0b3A6IDAsIGxlZnQ6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwIH07CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXRMYXllclNpemU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGEudHkgPT09IDUKICAgICAgICAgICAgICAgICAgPyB7CiAgICAgICAgICAgICAgICAgICAgdzogdGhpcy5kYXRhLnRleHREYXRhLndpZHRoLAogICAgICAgICAgICAgICAgICAgIGg6IHRoaXMuZGF0YS50ZXh0RGF0YS5oZWlnaHQsCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgOiB7IHc6IHRoaXMuZGF0YS53aWR0aCwgaDogdGhpcy5kYXRhLmhlaWdodCB9OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBnZXRCbGVuZE1vZGUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0gewogICAgICAgICAgICAgICAgMDogInNvdXJjZS1vdmVyIiwKICAgICAgICAgICAgICAgIDE6ICJtdWx0aXBseSIsCiAgICAgICAgICAgICAgICAyOiAic2NyZWVuIiwKICAgICAgICAgICAgICAgIDM6ICJvdmVybGF5IiwKICAgICAgICAgICAgICAgIDQ6ICJkYXJrZW4iLAogICAgICAgICAgICAgICAgNTogImxpZ2h0ZW4iLAogICAgICAgICAgICAgICAgNjogImNvbG9yLWRvZGdlIiwKICAgICAgICAgICAgICAgIDc6ICJjb2xvci1idXJuIiwKICAgICAgICAgICAgICAgIDg6ICJoYXJkLWxpZ2h0IiwKICAgICAgICAgICAgICAgIDk6ICJzb2Z0LWxpZ2h0IiwKICAgICAgICAgICAgICAgIDEwOiAiZGlmZmVyZW5jZSIsCiAgICAgICAgICAgICAgICAxMTogImV4Y2x1c2lvbiIsCiAgICAgICAgICAgICAgICAxMjogImh1ZSIsCiAgICAgICAgICAgICAgICAxMzogInNhdHVyYXRpb24iLAogICAgICAgICAgICAgICAgMTQ6ICJjb2xvciIsCiAgICAgICAgICAgICAgICAxNTogImx1bWlub3NpdHkiLAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZVt0XSB8fCAiIjsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBTbGlkZXJFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQW5nbGVFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQ29sb3JFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMSwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gUG9pbnRFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMSwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gTGF5ZXJJbmRleEVmZmVjdChlLCB0LCByKSB7CiAgICAgICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAwLCAwLCByKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBNYXNrSW5kZXhFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQ2hlY2tib3hFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gTm9WYWx1ZUVmZmVjdCgpIHsKICAgICAgICAgICAgICB0aGlzLnAgPSB7fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBFZmZlY3RzTWFuYWdlcihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBlLmVmIHx8IFtdOwogICAgICAgICAgICAgIHRoaXMuZWZmZWN0RWxlbWVudHMgPSBbXTsKICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgIGkgPSByLmxlbmd0aCwKICAgICAgICAgICAgICAgIGE7CiAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkKICAgICAgICAgICAgICAgIChhID0gbmV3IEdyb3VwRWZmZWN0KHJbbl0sIHQpKSwgdGhpcy5lZmZlY3RFbGVtZW50cy5wdXNoKGEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIEdyb3VwRWZmZWN0KGUsIHQpIHsKICAgICAgICAgICAgICB0aGlzLmluaXQoZSwgdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBHcm91cEVmZmVjdCksCiAgICAgICAgICAgICAgKEdyb3VwRWZmZWN0LnByb3RvdHlwZS5nZXRWYWx1ZSA9CiAgICAgICAgICAgICAgICBHcm91cEVmZmVjdC5wcm90b3R5cGUuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgICAoR3JvdXBFZmZlY3QucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IGUpLAogICAgICAgICAgICAgICAgICAodGhpcy5lZmZlY3RFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKHQpOwogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmRhdGEuZWYubGVuZ3RoLAogICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgICBhID0gdGhpcy5kYXRhLmVmOwogICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgewogICAgICAgICAgICAgICAgICBzd2l0Y2ggKCgoaSA9IG51bGwpLCBhW3JdLnR5KSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgU2xpZGVyRWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgICAgaSA9IG5ldyBBbmdsZUVmZmVjdChhW3JdLCB0LCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgQ29sb3JFZmZlY3QoYVtyXSwgdCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgICBpID0gbmV3IFBvaW50RWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgQ2hlY2tib3hFZmZlY3QoYVtyXSwgdCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgICAgICAgaSA9IG5ldyBMYXllckluZGV4RWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgTWFza0luZGV4RWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgICAgICAgaSA9IG5ldyBFZmZlY3RzTWFuYWdlcihhW3JdLCB0KTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICBpID0gbmV3IE5vVmFsdWVFZmZlY3QoYVtyXSk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpICYmIHRoaXMuZWZmZWN0RWxlbWVudHMucHVzaChpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQmFzZUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgQmFzZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGNoZWNrTWFza3M6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5kYXRhLmhhc01hc2spIHJldHVybiAhMTsKICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllcy5sZW5ndGg7IHQgPCByOykgewogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllc1t0XS5tb2RlICE9PSAibiIgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEubWFza3NQcm9wZXJ0aWVzW3RdLmNsICE9PSAhMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgICAgICB0ICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpbml0RXhwcmVzc2lvbnM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gZ2V0RXhwcmVzc2lvbkludGVyZmFjZXMoKTsKICAgICAgICAgICAgICAgIGlmICh0KSB7CiAgICAgICAgICAgICAgICAgIHZhciByID0gdCgibGF5ZXIiKSwKICAgICAgICAgICAgICAgICAgICBuID0gdCgiZWZmZWN0cyIpLAogICAgICAgICAgICAgICAgICAgIGkgPSB0KCJzaGFwZSIpLAogICAgICAgICAgICAgICAgICAgIGEgPSB0KCJ0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgbyA9IHQoImNvbXAiKTsKICAgICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJJbnRlcmZhY2UgPSByKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaGFzTWFzayAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVySW50ZXJmYWNlLnJlZ2lzdGVyTWFza0ludGVyZmFjZSgKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB2YXIgbCA9IG4uY3JlYXRlRWZmZWN0c0ludGVyZmFjZSh0aGlzLCB0aGlzLmxheWVySW50ZXJmYWNlKTsKICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckludGVyZmFjZS5yZWdpc3RlckVmZmVjdHNJbnRlcmZhY2UobCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnR5ID09PSAwIHx8IHRoaXMuZGF0YS54dAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5jb21wSW50ZXJmYWNlID0gbyh0aGlzKSkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5kYXRhLnR5ID09PSA0CiAgICAgICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLmxheWVySW50ZXJmYWNlLnNoYXBlSW50ZXJmYWNlID0gaSgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckludGVyZmFjZQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sYXllckludGVyZmFjZS5jb250ZW50ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2Uuc2hhcGVJbnRlcmZhY2UpKQogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YS50eSA9PT0gNSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMubGF5ZXJJbnRlcmZhY2UudGV4dEludGVyZmFjZSA9IGEodGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmxheWVySW50ZXJmYWNlLnRleHQgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckludGVyZmFjZS50ZXh0SW50ZXJmYWNlKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRCbGVuZE1vZGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gZ2V0QmxlbmRNb2RlKHRoaXMuZGF0YS5ibSksCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmJhc2VFbGVtZW50IHx8IHRoaXMubGF5ZXJFbGVtZW50OwogICAgICAgICAgICAgICAgci5zdHlsZVsibWl4LWJsZW5kLW1vZGUiXSA9IHQ7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpbml0QmFzZURhdGE6IGZ1bmN0aW9uICh0LCByLCBuKSB7CiAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhID0gciksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBuKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgICAodGhpcy5sYXllcklkID0gY3JlYXRlRWxlbWVudElEKCkpLAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuc3IgfHwgKHRoaXMuZGF0YS5zciA9IDEpLAogICAgICAgICAgICAgICAgICAodGhpcy5lZmZlY3RzTWFuYWdlciA9IG5ldyBFZmZlY3RzTWFuYWdlcigKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0VHlwZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNvdXJjZVJlY3RBdFRpbWU6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gRnJhbWVFbGVtZW50KCkgeyB9CiAgICAgICAgICAgIEZyYW1lRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgaW5pdEZyYW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5keW5hbWljUHJvcGVydGllcyA9IFtdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByZXBhcmVQcm9wZXJ0aWVzOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgdmFyIG4sCiAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpCiAgICAgICAgICAgICAgICAgIChyIHx8CiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzUGFyZW50ICYmCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzW25dLnByb3BUeXBlID09PSAidHJhbnNmb3JtIikpICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbbl0uZ2V0VmFsdWUoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbbl0uX21kZiAmJgogICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmdsb2JhbERhdGEuX21kZiA9ICEwKSwgKHRoaXMuX21kZiA9ICEwKSkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgYWRkRHluYW1pY1Byb3BlcnR5OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5pbmRleE9mKHQpID09PSAtMSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLnB1c2godCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gRm9vdGFnZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRSZW5kZXJhYmxlKCksCiAgICAgICAgICAgICAgICAodGhpcy5hc3NldERhdGEgPSB0LmdldEFzc2V0RGF0YShlLnJlZklkKSksCiAgICAgICAgICAgICAgICAodGhpcy5mb290YWdlRGF0YSA9IHQuaW1hZ2VMb2FkZXIuZ2V0QXNzZXQodGhpcy5hc3NldERhdGEpKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEJhc2VEYXRhKGUsIHQsIHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUucHJlcGFyZUZyYW1lID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgICBbUmVuZGVyYWJsZUVsZW1lbnQsIEJhc2VFbGVtZW50LCBGcmFtZUVsZW1lbnRdLAogICAgICAgICAgICAgICAgRm9vdGFnZUVsZW1lbnQKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUuZ2V0QmFzZUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoRm9vdGFnZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICAoRm9vdGFnZUVsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUuaW5pdEV4cHJlc3Npb25zID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBnZXRFeHByZXNzaW9uSW50ZXJmYWNlcygpOwogICAgICAgICAgICAgICAgaWYgKGUpIHsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSBlKCJmb290YWdlIik7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2UgPSB0KHRoaXMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUuZ2V0Rm9vdGFnZURhdGEgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb290YWdlRGF0YTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQXVkaW9FbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgICAgICB0aGlzLmluaXRGcmFtZSgpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5nZXRBc3NldERhdGEoZS5yZWZJZCkpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0QmFzZURhdGEoZSwgdCwgciksCiAgICAgICAgICAgICAgICAodGhpcy5faXNQbGF5aW5nID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX2NhblBsYXkgPSAhMSk7CiAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLmdsb2JhbERhdGEuZ2V0QXNzZXRzUGF0aCh0aGlzLmFzc2V0RGF0YSk7CiAgICAgICAgICAgICAgKHRoaXMuYXVkaW8gPSB0aGlzLmdsb2JhbERhdGEuYXVkaW9Db250cm9sbGVyLmNyZWF0ZUF1ZGlvKG4pKSwKICAgICAgICAgICAgICAgICh0aGlzLl9jdXJyZW50VGltZSA9IDApLAogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmF1ZGlvQ29udHJvbGxlci5hZGRBdWRpbyh0aGlzKSwKICAgICAgICAgICAgICAgICh0aGlzLl92b2x1bWVNdWx0aXBsaWVyID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5fcHJldmlvdXNWb2x1bWUgPSBudWxsKSwKICAgICAgICAgICAgICAgICh0aGlzLnRtID0gZS50bQogICAgICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgICAgICA6IHsgX3BsYWNlaG9sZGVyOiAhMCB9KSwKICAgICAgICAgICAgICAgICh0aGlzLmx2ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIGUuYXUgJiYgZS5hdS5sdiA/IGUuYXUubHYgOiB7IGs6IFsxMDBdIH0sCiAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlLCAhMCksCiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVByb3BlcnRpZXMoZSwgITApLAogICAgICAgICAgICAgICAgICB0aGlzLnRtLl9wbGFjZWhvbGRlcikKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGltZSA9IGUgLyB0aGlzLmRhdGEuc3I7CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMudG0udjsKICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRUaW1lID0gdDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5fdm9sdW1lID0gdGhpcy5sdi52WzBdOwogICAgICAgICAgICAgIHZhciByID0gdGhpcy5fdm9sdW1lICogdGhpcy5fdm9sdW1lTXVsdGlwbGllcjsKICAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c1ZvbHVtZSAhPT0gciAmJgogICAgICAgICAgICAgICAgKCh0aGlzLl9wcmV2aW91c1ZvbHVtZSA9IHIpLCB0aGlzLmF1ZGlvLnZvbHVtZShyKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgICAgIFtSZW5kZXJhYmxlRWxlbWVudCwgQmFzZUVsZW1lbnQsIEZyYW1lRWxlbWVudF0sCiAgICAgICAgICAgICAgICBBdWRpb0VsZW1lbnQKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5pc0luUmFuZ2UgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuUGxheSAmJgogICAgICAgICAgICAgICAgICAodGhpcy5faXNQbGF5aW5nCiAgICAgICAgICAgICAgICAgICAgPyAoIXRoaXMuYXVkaW8ucGxheWluZygpIHx8CiAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgLyB0aGlzLmdsb2JhbERhdGEuZnJhbWVSYXRlIC0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby5zZWVrKCkKICAgICAgICAgICAgICAgICAgICAgICkgPiAwLjEpICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby5zZWVrKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgLyB0aGlzLmdsb2JhbERhdGEuZnJhbWVSYXRlCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMuYXVkaW8ucGxheSgpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby5zZWVrKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGltZSAvIHRoaXMuZ2xvYmFsRGF0YS5mcmFtZVJhdGUKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNQbGF5aW5nID0gITApKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW8ucGF1c2UoKSwgKHRoaXMuX2lzUGxheWluZyA9ICExKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQXVkaW9FbGVtZW50LnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW8ucGF1c2UoKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzUGxheWluZyA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2NhblBsYXkgPSAhMSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5fY2FuUGxheSA9ICEwOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnNldFJhdGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5hdWRpby5yYXRlKGUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnZvbHVtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lTXVsdGlwbGllciA9IGUpLAogICAgICAgICAgICAgICAgICAodGhpcy5fcHJldmlvdXNWb2x1bWUgPSBlICogdGhpcy5fdm9sdW1lKSwKICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby52b2x1bWUodGhpcy5fcHJldmlvdXNWb2x1bWUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLmdldEJhc2VFbGVtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuc291cmNlUmVjdEF0VGltZSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuaW5pdEV4cHJlc3Npb25zID0gZnVuY3Rpb24gKCkgeyB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQmFzZVJlbmRlcmVyKCkgeyB9CiAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmNoZWNrTGF5ZXJzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgIHIgPSB0aGlzLmxheWVycy5sZW5ndGgsCiAgICAgICAgICAgICAgICBuOwogICAgICAgICAgICAgIGZvciAodGhpcy5jb21wbGV0ZUxheWVycyA9ICEwLCB0ID0gciAtIDE7IHQgPj0gMDsgdCAtPSAxKQogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1t0XSB8fAogICAgICAgICAgICAgICAgICAoKG4gPSB0aGlzLmxheWVyc1t0XSksCiAgICAgICAgICAgICAgICAgICAgbi5pcCAtIG4uc3QgPD0gZSAtIHRoaXMubGF5ZXJzW3RdLnN0ICYmCiAgICAgICAgICAgICAgICAgICAgbi5vcCAtIG4uc3QgPiBlIC0gdGhpcy5sYXllcnNbdF0uc3QgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSXRlbSh0KSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlTGF5ZXJzID0gdGhpcy5lbGVtZW50c1t0XQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5jb21wbGV0ZUxheWVycwogICAgICAgICAgICAgICAgICAgIDogITEpOwogICAgICAgICAgICAgIHRoaXMuY2hlY2tQZW5kaW5nRWxlbWVudHMoKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlSXRlbSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKGUudHkpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUltYWdlKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29tcChlKTsKICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNvbGlkKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTnVsbChlKTsKICAgICAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNoYXBlKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dChlKTsKICAgICAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUF1ZGlvKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNhbWVyYShlKTsKICAgICAgICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGb290YWdlKGUpOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU51bGwoZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlQ2FtZXJhID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAgICAgICAiWW91J3JlIHVzaW5nIGEgM2QgY2FtZXJhLiBUcnkgdGhlIGh0bWwgcmVuZGVyZXIuIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVBdWRpbyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEF1ZGlvRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmNyZWF0ZUZvb3RhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGb290YWdlRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmJ1aWxkQWxsSXRlbXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMuYnVpbGRJdGVtKGUpOwogICAgICAgICAgICAgICAgdGhpcy5jaGVja1BlbmRpbmdFbGVtZW50cygpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmluY2x1ZGVMYXllcnMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUxheWVycyA9ICExOwogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIgPSBlLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgaSA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOykgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheWVyc1tuXS5pZCA9PT0gZVt0XS5pZCkgewogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllcnNbbl0gPSBlW3RdOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIG4gKz0gMTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLnNldFByb2plY3RJbnRlcmZhY2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UgPSBlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmluaXRJdGVtcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5wcm9ncmVzc2l2ZUxvYWQgfHwgdGhpcy5idWlsZEFsbEl0ZW1zKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuYnVpbGRFbGVtZW50UGFyZW50aW5nID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuZWxlbWVudHMsIGkgPSB0aGlzLmxheWVycywgYSA9IDAsIG8gPSBpLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgYSA8IG87CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBpW2FdLmluZCA9PSB0ICYmCiAgICAgICAgICAgICAgICAgICAgKCFuW2FdIHx8IG5bYV0gPT09ICEwCiAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmJ1aWxkSXRlbShhKSwgdGhpcy5hZGRQZW5kaW5nRWxlbWVudChlKSkKICAgICAgICAgICAgICAgICAgICAgIDogKHIucHVzaChuW2FdKSwKICAgICAgICAgICAgICAgICAgICAgICAgblthXS5zZXRBc1BhcmVudCgpLAogICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnBhcmVudCAhPT0gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmJ1aWxkRWxlbWVudFBhcmVudGluZyhlLCBpW2FdLnBhcmVudCwgcikKICAgICAgICAgICAgICAgICAgICAgICAgICA6IGUuc2V0SGllcmFyY2h5KHIpKSksCiAgICAgICAgICAgICAgICAgICAgKGEgKz0gMSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuYWRkUGVuZGluZ0VsZW1lbnQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nRWxlbWVudHMucHVzaChlKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5zZWFyY2hFeHRyYUNvbXBvc2l0aW9ucyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgaWYgKGVbdF0ueHQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuY3JlYXRlQ29tcChlW3RdKTsKICAgICAgICAgICAgICAgICAgICBuLmluaXRFeHByZXNzaW9ucygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UucmVnaXN0ZXJDb21wb3NpdGlvbihuKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmdldEVsZW1lbnRCeUlkID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5lbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50c1t0XS5kYXRhLmluZCA9PT0gZSkgcmV0dXJuIHRoaXMuZWxlbWVudHNbdF07CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5nZXRFbGVtZW50QnlQYXRoID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gZS5zaGlmdCgpLAogICAgICAgICAgICAgICAgICByOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0ID09ICJudW1iZXIiKSByID0gdGhpcy5lbGVtZW50c1t0XTsKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgICAgICBpID0gdGhpcy5lbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudHNbbl0uZGF0YS5ubSA9PT0gdCkgewogICAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuZWxlbWVudHNbbl07CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZS5sZW5ndGggPT09IDAgPyByIDogci5nZXRFbGVtZW50QnlQYXRoKGUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLnNldHVwR2xvYmFsRGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyID0gbmV3IEZvbnRNYW5hZ2VyKCkpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLnNsb3RNYW5hZ2VyID0gc2xvdEZhY3RvcnkoZSkpLAogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuYWRkQ2hhcnMoZS5jaGFycyksCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5hZGRGb250cyhlLmZvbnRzLCB0KSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5nZXRBc3NldERhdGEgPQogICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5nZXRBc3NldERhdGEuYmluZCh0aGlzLmFuaW1hdGlvbkl0ZW0pKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5nZXRBc3NldHNQYXRoID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uZ2V0QXNzZXRzUGF0aC5iaW5kKHRoaXMuYW5pbWF0aW9uSXRlbSkpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmltYWdlTG9hZGVyID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uaW1hZ2VQcmVsb2FkZXIpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmF1ZGlvQ29udHJvbGxlciA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmF1ZGlvQ29udHJvbGxlciksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZnJhbWVJZCA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZyYW1lUmF0ZSA9IGUuZnIpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLm5tID0gZS5ubSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuY29tcFNpemUgPSB7IHc6IGUudywgaDogZS5oIH0pOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZWZmZWN0VHlwZXMgPSB7IFRSQU5TRk9STV9FRkZFQ1Q6ICJ0cmFuc2Zvcm1FRmZlY3QiIH07CiAgICAgICAgICAgIGZ1bmN0aW9uIFRyYW5zZm9ybUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgaW5pdFRyYW5zZm9ybTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIHQgPSBuZXcgTWF0cml4KCk7CiAgICAgICAgICAgICAgICAodGhpcy5maW5hbFRyYW5zZm9ybSA9IHsKICAgICAgICAgICAgICAgICAgbVByb3A6IHRoaXMuZGF0YS5rcwogICAgICAgICAgICAgICAgICAgID8gVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5LmdldFRyYW5zZm9ybVByb3BlcnR5KAogICAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5rcywKICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgOiB7IG86IDAgfSwKICAgICAgICAgICAgICAgICAgX21hdE1kZjogITEsCiAgICAgICAgICAgICAgICAgIF9sb2NhbE1hdE1kZjogITEsCiAgICAgICAgICAgICAgICAgIF9vcE1kZjogITEsCiAgICAgICAgICAgICAgICAgIG1hdDogdCwKICAgICAgICAgICAgICAgICAgbG9jYWxNYXQ6IHQsCiAgICAgICAgICAgICAgICAgIGxvY2FsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuYW8gJiYgKHRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3AuYXV0b09yaWVudGVkID0gITApLAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW5kZXJUcmFuc2Zvcm06IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKCh0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC5vLl9tZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmID0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3AuX21kZiB8fCB0aGlzLl9pc0ZpcnN0RnJhbWUpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaGllcmFyY2h5KQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmZpbmFsVHJhbnNmb3JtLm1hdCwKICAgICAgICAgICAgICAgICAgICBuID0gMCwKICAgICAgICAgICAgICAgICAgICBpID0gdGhpcy5oaWVyYXJjaHkubGVuZ3RoOwogICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmluYWxUcmFuc2Zvcm0uX21hdE1kZikKICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbiA8IGk7KSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oaWVyYXJjaHlbbl0uZmluYWxUcmFuc2Zvcm0ubVByb3AuX21kZikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9tYXRNZGYgPSAhMDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmKQogICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICB0ID0gdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC52LnByb3BzLAogICAgICAgICAgICAgICAgICAgICAgci5jbG9uZUZyb21Qcm9wcyh0KSwKICAgICAgICAgICAgICAgICAgICAgIG4gPSAwOwogICAgICAgICAgICAgICAgICAgICAgbiA8IGk7CiAgICAgICAgICAgICAgICAgICAgICBuICs9IDEKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICByLm11bHRpcGx5KHRoaXMuaGllcmFyY2h5W25dLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLnYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtLl9sb2NhbE1hdE1kZiA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmKSwKICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5ID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLm8udik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW5kZXJMb2NhbFRyYW5zZm9ybTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jYWxUcmFuc2Zvcm1zKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0ID0gMCwKICAgICAgICAgICAgICAgICAgICByID0gdGhpcy5sb2NhbFRyYW5zZm9ybXMubGVuZ3RoOwogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZpbmFsVHJhbnNmb3JtLl9sb2NhbE1hdE1kZiA9CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9tYXRNZGYpLAogICAgICAgICAgICAgICAgICAgICAgIXRoaXMuZmluYWxUcmFuc2Zvcm0uX2xvY2FsTWF0TWRmIHx8CiAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYpCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBmb3IgKDsgdCA8IHI7KQogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFRyYW5zZm9ybXNbdF0uX21kZiAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maW5hbFRyYW5zZm9ybS5fbG9jYWxNYXRNZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxUcmFuc2Zvcm1zW3RdLl9vcE1kZiAmJgogICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsT3BhY2l0eSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC5vLnYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiA9ICEwKSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0ICs9IDEpOwogICAgICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fbG9jYWxNYXRNZGYpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxNYXQ7CiAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxUcmFuc2Zvcm1zWzBdLm1hdHJpeC5jbG9uZShuKSwgdCA9IDE7CiAgICAgICAgICAgICAgICAgICAgICB0IDwgcjsKICAgICAgICAgICAgICAgICAgICAgIHQgKz0gMQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0aGlzLmxvY2FsVHJhbnNmb3Jtc1t0XS5tYXRyaXg7CiAgICAgICAgICAgICAgICAgICAgICBuLm11bHRpcGx5KGkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBuLm11bHRpcGx5KHRoaXMuZmluYWxUcmFuc2Zvcm0ubWF0KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5OwogICAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICBhICo9IHRoaXMubG9jYWxUcmFuc2Zvcm1zW3RdLm9wYWNpdHkgKiAwLjAxOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5ID0gYTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2VhcmNoRWZmZWN0VHJhbnNmb3JtczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyYWJsZUVmZmVjdHNNYW5hZ2VyKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5yZW5kZXJhYmxlRWZmZWN0c01hbmFnZXIuZ2V0RWZmZWN0cygKICAgICAgICAgICAgICAgICAgICBlZmZlY3RUeXBlcy5UUkFOU0ZPUk1fRUZGRUNUCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGlmICh0Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsVHJhbnNmb3JtcyA9IFtdKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsTWF0ID0gbmV3IE1hdHJpeCgpKTsKICAgICAgICAgICAgICAgICAgICB2YXIgciA9IDAsCiAgICAgICAgICAgICAgICAgICAgICBuID0gdC5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgdGhpcy5sb2NhbFRyYW5zZm9ybXMucHVzaCh0W3JdKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2xvYmFsVG9Mb2NhbDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIHZhciByID0gW107CiAgICAgICAgICAgICAgICByLnB1c2godGhpcy5maW5hbFRyYW5zZm9ybSk7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBuID0gITAsIGkgPSB0aGlzLmNvbXA7IG47KQogICAgICAgICAgICAgICAgICBpLmZpbmFsVHJhbnNmb3JtCiAgICAgICAgICAgICAgICAgICAgPyAoaS5kYXRhLmhhc01hc2sgJiYgci5zcGxpY2UoMCwgMCwgaS5maW5hbFRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IGkuY29tcCkpCiAgICAgICAgICAgICAgICAgICAgOiAobiA9ICExKTsKICAgICAgICAgICAgICAgIHZhciBhLAogICAgICAgICAgICAgICAgICBvID0gci5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGw7CiAgICAgICAgICAgICAgICBmb3IgKGEgPSAwOyBhIDwgbzsgYSArPSAxKQogICAgICAgICAgICAgICAgICAobCA9IHJbYV0ubWF0LmFwcGx5VG9Qb2ludEFycmF5KDAsIDAsIDApKSwKICAgICAgICAgICAgICAgICAgICAodCA9IFt0WzBdIC0gbFswXSwgdFsxXSAtIGxbMV0sIDBdKTsKICAgICAgICAgICAgICAgIHJldHVybiB0OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgbUhlbHBlcjogbmV3IE1hdHJpeCgpLAogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBNYXNrRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudCA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IHIpLAogICAgICAgICAgICAgICAgKHRoaXMuc3RvcmVkRGF0YSA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLm1hc2tzUHJvcGVydGllcyA9IHRoaXMuZGF0YS5tYXNrc1Byb3BlcnRpZXMgfHwgW10pLAogICAgICAgICAgICAgICAgKHRoaXMubWFza0VsZW1lbnQgPSBudWxsKTsKICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuZ2xvYmFsRGF0YS5kZWZzLAogICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgIGEgPSB0aGlzLm1hc2tzUHJvcGVydGllcyA/IHRoaXMubWFza3NQcm9wZXJ0aWVzLmxlbmd0aCA6IDA7CiAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGEgPSBjcmVhdGVTaXplZEFycmF5KGEpKSwgKHRoaXMuc29saWRQYXRoID0gIiIpOwogICAgICAgICAgICAgIHZhciBvLAogICAgICAgICAgICAgICAgbCA9IHRoaXMubWFza3NQcm9wZXJ0aWVzLAogICAgICAgICAgICAgICAgYyA9IDAsCiAgICAgICAgICAgICAgICB1ID0gW10sCiAgICAgICAgICAgICAgICBkLAogICAgICAgICAgICAgICAgRSwKICAgICAgICAgICAgICAgIGIgPSBjcmVhdGVFbGVtZW50SUQoKSwKICAgICAgICAgICAgICAgIFAsCiAgICAgICAgICAgICAgICBSLAogICAgICAgICAgICAgICAgVCwKICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICB4ID0gImNsaXBQYXRoIiwKICAgICAgICAgICAgICAgIGsgPSAiY2xpcC1wYXRoIjsKICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYTsgaSArPSAxKQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKChsW2ldLm1vZGUgIT09ICJhIiAmJiBsW2ldLm1vZGUgIT09ICJuIikgfHwKICAgICAgICAgICAgICAgICAgICBsW2ldLmludiB8fAogICAgICAgICAgICAgICAgICAgIGxbaV0uby5rICE9PSAxMDAgfHwKICAgICAgICAgICAgICAgICAgICBsW2ldLm8ueCkgJiYKICAgICAgICAgICAgICAgICAgICAoKHggPSAibWFzayIpLCAoayA9ICJtYXNrIikpLAogICAgICAgICAgICAgICAgICAgIChsW2ldLm1vZGUgPT09ICJzIiB8fCBsW2ldLm1vZGUgPT09ICJpIikgJiYgYyA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgPyAoKFAgPSBjcmVhdGVOUygicmVjdCIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgUC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiI2ZmZmZmZiIpLAogICAgICAgICAgICAgICAgICAgICAgICBQLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmVsZW1lbnQuY29tcC5kYXRhLncgfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIFAuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCB0aGlzLmVsZW1lbnQuY29tcC5kYXRhLmggfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHUucHVzaChQKSkKICAgICAgICAgICAgICAgICAgICAgIDogKFAgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAobyA9IGNyZWF0ZU5TKCJwYXRoIikpLAogICAgICAgICAgICAgICAgICAgIGxbaV0ubW9kZSA9PT0gIm4iKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAodGhpcy52aWV3RGF0YVtpXSA9IHsKICAgICAgICAgICAgICAgICAgICBvcDogUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICBsW2ldLm8sCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgcHJvcDogU2hhcGVQcm9wZXJ0eUZhY3RvcnkuZ2V0U2hhcGVQcm9wKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgbFtpXSwKICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIGVsZW06IG8sCiAgICAgICAgICAgICAgICAgICAgbGFzdFBhdGg6ICIiLAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKG8pOwogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIChjICs9IDEpLAogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgImZpbGwiLAogICAgICAgICAgICAgICAgICAgICAgbFtpXS5tb2RlID09PSAicyIgPyAiIzAwMDAwMCIgOiAiI2ZmZmZmZiIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKCJjbGlwLXJ1bGUiLCAibm9uemVybyIpOwogICAgICAgICAgICAgICAgICB2YXIgUzsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIChsW2ldLnguayAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgPyAoKHggPSAibWFzayIpLAogICAgICAgICAgICAgICAgICAgICAgICAoayA9ICJtYXNrIiksCiAgICAgICAgICAgICAgICAgICAgICAgIChNID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbaV0ueCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAoUyA9IGNyZWF0ZUVsZW1lbnRJRCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSBjcmVhdGVOUygiZmlsdGVyIikpLAogICAgICAgICAgICAgICAgICAgICAgICBSLnNldEF0dHJpYnV0ZSgiaWQiLCBTKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBjcmVhdGVOUygiZmVNb3JwaG9sb2d5IikpLAogICAgICAgICAgICAgICAgICAgICAgICBULnNldEF0dHJpYnV0ZSgib3BlcmF0b3IiLCAiZXJvZGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgVC5zZXRBdHRyaWJ1dGUoImluIiwgIlNvdXJjZUdyYXBoaWMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgVC5zZXRBdHRyaWJ1dGUoInJhZGl1cyIsICIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgIFIuYXBwZW5kQ2hpbGQoVCksCiAgICAgICAgICAgICAgICAgICAgICAgIG4uYXBwZW5kQ2hpbGQoUiksCiAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJva2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbaV0ubW9kZSA9PT0gInMiID8gIiMwMDAwMDAiIDogIiNmZmZmZmYiCiAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICA6ICgoVCA9IG51bGwpLCAoTSA9IG51bGwpKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnN0b3JlZERhdGFbaV0gPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW06IG8sCiAgICAgICAgICAgICAgICAgICAgICAgIHg6IE0sCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuOiBULAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0UGF0aDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RPcGVyYXRvcjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcklkOiBTLAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmFkaXVzOiAwLAogICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICBsW2ldLm1vZGUgPT09ICJpIikKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgRSA9IHUubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIHZhciBBID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKGQgPSAwOyBkIDwgRTsgZCArPSAxKSBBLmFwcGVuZENoaWxkKHVbZF0pOwogICAgICAgICAgICAgICAgICAgIHZhciBPID0gY3JlYXRlTlMoIm1hc2siKTsKICAgICAgICAgICAgICAgICAgICBPLnNldEF0dHJpYnV0ZSgibWFzay10eXBlIiwgImFscGhhIiksCiAgICAgICAgICAgICAgICAgICAgICBPLnNldEF0dHJpYnV0ZSgiaWQiLCBiICsgIl8iICsgYyksCiAgICAgICAgICAgICAgICAgICAgICBPLmFwcGVuZENoaWxkKG8pLAogICAgICAgICAgICAgICAgICAgICAgbi5hcHBlbmRDaGlsZChPKSwKICAgICAgICAgICAgICAgICAgICAgIEEuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAibWFzayIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgYiArICJfIiArIGMgKyAiKSIKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAodS5sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICAgICAgIHUucHVzaChBKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIHUucHVzaChvKTsKICAgICAgICAgICAgICAgICAgbFtpXS5pbnYgJiYKICAgICAgICAgICAgICAgICAgICAhdGhpcy5zb2xpZFBhdGggJiYKICAgICAgICAgICAgICAgICAgICAodGhpcy5zb2xpZFBhdGggPSB0aGlzLmNyZWF0ZUxheWVyU29saWRQYXRoKCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhW2ldID0gewogICAgICAgICAgICAgICAgICAgICAgZWxlbTogbywKICAgICAgICAgICAgICAgICAgICAgIGxhc3RQYXRoOiAiIiwKICAgICAgICAgICAgICAgICAgICAgIG9wOiBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICBsW2ldLm8sCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudAogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHByb3A6IFNoYXBlUHJvcGVydHlGYWN0b3J5LmdldFNoYXBlUHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICBsW2ldLAogICAgICAgICAgICAgICAgICAgICAgICAzCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgaW52UmVjdDogUCwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW2ldLnByb3AuayB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd1BhdGgoCiAgICAgICAgICAgICAgICAgICAgICBsW2ldLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVtpXS5wcm9wLnYsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW2ldCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdGhpcy5tYXNrRWxlbWVudCA9IGNyZWF0ZU5TKHgpLCBhID0gdS5sZW5ndGgsIGkgPSAwOwogICAgICAgICAgICAgICAgaSA8IGE7CiAgICAgICAgICAgICAgICBpICs9IDEKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB0aGlzLm1hc2tFbGVtZW50LmFwcGVuZENoaWxkKHVbaV0pOwogICAgICAgICAgICAgIGMgPiAwICYmCiAgICAgICAgICAgICAgICAodGhpcy5tYXNrRWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgYiksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5tYXNrZWRFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgYiArICIpIgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKHRoaXMubWFza0VsZW1lbnQpKSwKICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGEubGVuZ3RoICYmCiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkUmVuZGVyYWJsZUNvbXBvbmVudCh0aGlzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLmdldE1hc2tQcm9wZXJ0eSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlld0RhdGFbZV0ucHJvcDsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZWxlbWVudC5maW5hbFRyYW5zZm9ybS5tYXQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKQogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLnZpZXdEYXRhW3JdLnByb3AuX21kZiB8fCBlKSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3UGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXNrc1Byb3BlcnRpZXNbcl0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGFbcl0ucHJvcC52LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW3JdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbcl0ub3AuX21kZiB8fCBlKSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVtyXS5lbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgImZpbGwtb3BhY2l0eSIsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGFbcl0ub3AudgogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFza3NQcm9wZXJ0aWVzW3JdLm1vZGUgIT09ICJuIiAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbcl0uaW52UmVjdCAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmZpbmFsVHJhbnNmb3JtLm1Qcm9wLl9tZGYgfHwgZSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVtyXS5pbnZSZWN0LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldEludmVyc2VNYXRyaXgoKS50bzJkQ1NTKCkKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZWREYXRhW3JdLnggJiYgKHRoaXMuc3RvcmVkRGF0YVtyXS54Ll9tZGYgfHwgZSkpKQogICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IHRoaXMuc3RvcmVkRGF0YVtyXS5leHBhbjsKICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbcl0ueC52IDwgMAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5zdG9yZWREYXRhW3JdLmxhc3RPcGVyYXRvciAhPT0gImVyb2RlIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuc3RvcmVkRGF0YVtyXS5sYXN0T3BlcmF0b3IgPSAiZXJvZGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbcl0uZWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2NhdGlvbkhyZWYoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIyIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZWREYXRhW3JdLmZpbHRlcklkICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgicmFkaXVzIiwgLXRoaXMuc3RvcmVkRGF0YVtyXS54LnYpKQogICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zdG9yZWREYXRhW3JdLmxhc3RPcGVyYXRvciAhPT0gImRpbGF0ZSIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLnN0b3JlZERhdGFbcl0ubGFzdE9wZXJhdG9yID0gImRpbGF0ZSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVkRGF0YVtyXS5lbGVtLnNldEF0dHJpYnV0ZSgiZmlsdGVyIiwgbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbcl0uZWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cm9rZS13aWR0aCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZWREYXRhW3JdLngudiAqIDIKICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLmdldE1hc2tlbGVtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFza0VsZW1lbnQ7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVMYXllclNvbGlkUGF0aCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gIk0wLDAgIjsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChlICs9ICIgaCIgKyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUudyksCiAgICAgICAgICAgICAgICAgIChlICs9ICIgdiIgKyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUuaCksCiAgICAgICAgICAgICAgICAgIChlICs9ICIgaC0iICsgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncpLAogICAgICAgICAgICAgICAgICAoZSArPSAiIHYtIiArIHRoaXMuZ2xvYmFsRGF0YS5jb21wU2l6ZS5oICsgIiAiKSwKICAgICAgICAgICAgICAgICAgZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLmRyYXdQYXRoID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgICAgIHZhciBuID0gIiBNIiArIHQudlswXVswXSArICIsIiArIHQudlswXVsxXSwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYTsKICAgICAgICAgICAgICAgIGZvciAoYSA9IHQuX2xlbmd0aCwgaSA9IDE7IGkgPCBhOyBpICs9IDEpCiAgICAgICAgICAgICAgICAgIG4gKz0KICAgICAgICAgICAgICAgICAgICAiIEMiICsKICAgICAgICAgICAgICAgICAgICB0Lm9baSAtIDFdWzBdICsKICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgIHQub1tpIC0gMV1bMV0gKwogICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgdC5pW2ldWzBdICsKICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgIHQuaVtpXVsxXSArCiAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICB0LnZbaV1bMF0gKwogICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgdC52W2ldWzFdOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodC5jICYmCiAgICAgICAgICAgICAgICAgICAgYSA+IDEgJiYKICAgICAgICAgICAgICAgICAgICAobiArPQogICAgICAgICAgICAgICAgICAgICAgIiBDIiArCiAgICAgICAgICAgICAgICAgICAgICB0Lm9baSAtIDFdWzBdICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICB0Lm9baSAtIDFdWzFdICsKICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICB0LmlbMF1bMF0gKwogICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgIHQuaVswXVsxXSArCiAgICAgICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICAgICAgdC52WzBdWzBdICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICB0LnZbMF1bMV0pLAogICAgICAgICAgICAgICAgICAgIHIubGFzdFBhdGggIT09IG4pCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIG8gPSAiIjsKICAgICAgICAgICAgICAgICAgci5lbGVtICYmCiAgICAgICAgICAgICAgICAgICAgKHQuYyAmJiAobyA9IGUuaW52ID8gdGhpcy5zb2xpZFBhdGggKyBuIDogbiksCiAgICAgICAgICAgICAgICAgICAgICByLmVsZW0uc2V0QXR0cmlidXRlKCJkIiwgbykpLAogICAgICAgICAgICAgICAgICAgIChyLmxhc3RQYXRoID0gbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudCA9IG51bGwpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICh0aGlzLm1hc2tFbGVtZW50ID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubWFza3NQcm9wZXJ0aWVzID0gbnVsbCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJzRmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSB7fTsKICAgICAgICAgICAgICAoZS5jcmVhdGVGaWx0ZXIgPSB0KSwgKGUuY3JlYXRlQWxwaGFUb0x1bWluYW5jZUZpbHRlciA9IHIpOwogICAgICAgICAgICAgIGZ1bmN0aW9uIHQobiwgaSkgewogICAgICAgICAgICAgICAgdmFyIGEgPSBjcmVhdGVOUygiZmlsdGVyIik7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiaWQiLCBuKSwKICAgICAgICAgICAgICAgICAgaSAhPT0gITAgJiYKICAgICAgICAgICAgICAgICAgKGEuc2V0QXR0cmlidXRlKCJmaWx0ZXJVbml0cyIsICJvYmplY3RCb3VuZGluZ0JveCIpLAogICAgICAgICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJ4IiwgIjAlIiksCiAgICAgICAgICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoInkiLCAiMCUiKSwKICAgICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwJSIpLAogICAgICAgICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwJSIpKSwKICAgICAgICAgICAgICAgICAgYQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gcigpIHsKICAgICAgICAgICAgICAgIHZhciBuID0gY3JlYXRlTlMoImZlQ29sb3JNYXRyaXgiKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJ0eXBlIiwgIm1hdHJpeCIpLAogICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwgInNSR0IiKSwKICAgICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgInZhbHVlcyIsCiAgICAgICAgICAgICAgICAgICAgIjAgMCAwIDEgMCAgMCAwIDAgMSAwICAwIDAgMCAxIDAgIDAgMCAwIDEgMSIKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgbgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgZmVhdHVyZVN1cHBvcnQgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB7CiAgICAgICAgICAgICAgICAgIG1hc2tUeXBlOiAhMCwKICAgICAgICAgICAgICAgICAgc3ZnTHVtYUhpZGRlbjogITAsCiAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkNhbnZhczogdHlwZW9mIE9mZnNjcmVlbkNhbnZhcyA8ICJ1IiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoL01TSUUgMTAvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpIHx8CiAgICAgICAgICAgICAgICAgICAgL01TSUUgOS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgfHwKICAgICAgICAgICAgICAgICAgICAvcnY6MTEuMC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgfHwKICAgICAgICAgICAgICAgICAgICAvRWRnZVwvXGQuL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgJiYKICAgICAgICAgICAgICAgICAgKGUubWFza1R5cGUgPSAhMSksCiAgICAgICAgICAgICAgICAgIC9maXJlZm94L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJgogICAgICAgICAgICAgICAgICAoZS5zdmdMdW1hSGlkZGVuID0gITEpLAogICAgICAgICAgICAgICAgICBlCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMSA9IHt9LAogICAgICAgICAgICAgIGlkUHJlZml4ID0gImZpbHRlcl9yZXN1bHRfIjsKICAgICAgICAgICAgZnVuY3Rpb24gU1ZHRWZmZWN0cyhlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gIlNvdXJjZUdyYXBoaWMiLAogICAgICAgICAgICAgICAgbiA9IGUuZGF0YS5lZiA/IGUuZGF0YS5lZi5sZW5ndGggOiAwLAogICAgICAgICAgICAgICAgaSA9IGNyZWF0ZUVsZW1lbnRJRCgpLAogICAgICAgICAgICAgICAgYSA9IGZpbHRlcnNGYWN0b3J5LmNyZWF0ZUZpbHRlcihpLCAhMCksCiAgICAgICAgICAgICAgICBvID0gMDsKICAgICAgICAgICAgICB0aGlzLmZpbHRlcnMgPSBbXTsKICAgICAgICAgICAgICB2YXIgbDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgbjsgdCArPSAxKSB7CiAgICAgICAgICAgICAgICBsID0gbnVsbDsKICAgICAgICAgICAgICAgIHZhciBjID0gZS5kYXRhLmVmW3RdLnR5OwogICAgICAgICAgICAgICAgaWYgKHJlZ2lzdGVyZWRFZmZlY3RzJDFbY10pIHsKICAgICAgICAgICAgICAgICAgdmFyIHUgPSByZWdpc3RlcmVkRWZmZWN0cyQxW2NdLmVmZmVjdDsKICAgICAgICAgICAgICAgICAgKGwgPSBuZXcgdSgKICAgICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICAgIGUuZWZmZWN0c01hbmFnZXIuZWZmZWN0RWxlbWVudHNbdF0sCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICBpZFByZWZpeCArIG8sCiAgICAgICAgICAgICAgICAgICAgcgogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAociA9IGlkUHJlZml4ICsgbyksCiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMVtjXS5jb3VudHNBc0VmZmVjdCAmJiAobyArPSAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGwgJiYgdGhpcy5maWx0ZXJzLnB1c2gobCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG8gJiYKICAgICAgICAgICAgICAgIChlLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChhKSwKICAgICAgICAgICAgICAgICAgZS5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJmaWx0ZXIiLAogICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgaSArICIpIgogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVycy5sZW5ndGggJiYgZS5hZGRSZW5kZXJhYmxlQ29tcG9uZW50KHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChTVkdFZmZlY3RzLnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKSB0aGlzLmZpbHRlcnNbdF0ucmVuZGVyRnJhbWUoZSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdFZmZlY3RzLnByb3RvdHlwZS5nZXRFZmZlY3RzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgbiA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzW3RdLnR5cGUgPT09IGUgJiYgbi5wdXNoKHRoaXMuZmlsdGVyc1t0XSk7CiAgICAgICAgICAgICAgICByZXR1cm4gbjsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJFZmZlY3QkMShlLCB0LCByKSB7CiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMVtlXSA9IHsgZWZmZWN0OiB0LCBjb3VudHNBc0VmZmVjdDogciB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0Jhc2VFbGVtZW50KCkgeyB9CiAgICAgICAgICAgIFNWR0Jhc2VFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICBpbml0UmVuZGVyZXJFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudCA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjcmVhdGVDb250YWluZXJFbGVtZW50czogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMubWF0dGVFbGVtZW50ID0gY3JlYXRlTlMoImciKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybWVkRWxlbWVudCA9IHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgKHRoaXMubWFza2VkRWxlbWVudCA9IHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX3NpemVDaGFuZ2VkID0gITEpOwogICAgICAgICAgICAgICAgdmFyIHQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS50ZCkgewogICAgICAgICAgICAgICAgICB0aGlzLm1hdHRlTWFza3MgPSB7fTsKICAgICAgICAgICAgICAgICAgdmFyIHIgPSBjcmVhdGVOUygiZyIpOwogICAgICAgICAgICAgICAgICByLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmxheWVySWQpLAogICAgICAgICAgICAgICAgICAgIHIuYXBwZW5kQ2hpbGQodGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICh0ID0gciksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQocik7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnR0CiAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5tYXR0ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICAgKHQgPSB0aGlzLm1hdHRlRWxlbWVudCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5iYXNlRWxlbWVudCA9IHRoaXMubWF0dGVFbGVtZW50KSkKICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmJhc2VFbGVtZW50ID0gdGhpcy5sYXllckVsZW1lbnQpOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhLmxuICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuZGF0YS5sbiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLmNsICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIHRoaXMuZGF0YS5jbCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnR5ID09PSAwICYmICF0aGlzLmRhdGEuaGQpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSBjcmVhdGVOUygiY2xpcFBhdGgiKSwKICAgICAgICAgICAgICAgICAgICBpID0gY3JlYXRlTlMoInBhdGgiKTsKICAgICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgImQiLAogICAgICAgICAgICAgICAgICAgICJNMCwwIEwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudyArCiAgICAgICAgICAgICAgICAgICAgIiwwIEwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudyArCiAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaCArCiAgICAgICAgICAgICAgICAgICAgIiBMMCwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaCArCiAgICAgICAgICAgICAgICAgICAgInoiCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIHZhciBhID0gY3JlYXRlRWxlbWVudElEKCk7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAobi5zZXRBdHRyaWJ1dGUoImlkIiwgYSksCiAgICAgICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKGkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQobiksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrTWFza3MoKSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG8gPSBjcmVhdGVOUygiZyIpOwogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgImNsaXAtcGF0aCIsCiAgICAgICAgICAgICAgICAgICAgICAidXJsKCIgKyBnZXRMb2NhdGlvbkhyZWYoKSArICIjIiArIGEgKyAiKSIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgby5hcHBlbmRDaGlsZCh0aGlzLmxheWVyRWxlbWVudCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQgPSBvKSwKICAgICAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICAgICAgICAgPyB0LmFwcGVuZENoaWxkKHRoaXMudHJhbnNmb3JtZWRFbGVtZW50KQogICAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmJhc2VFbGVtZW50ID0gdGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAiY2xpcC1wYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgYSArICIpIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuYm0gIT09IDAgJiYgdGhpcy5zZXRCbGVuZE1vZGUoKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJlbmRlckVsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0uX2xvY2FsTWF0TWRmICYmCiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtZWRFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAidHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsTWF0LnRvMmRDU1MoKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiAmJgogICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVkRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgIm9wYWNpdHkiLAogICAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBkZXN0cm95QmFzZUVsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLmxheWVyRWxlbWVudCA9IG51bGwpLAogICAgICAgICAgICAgICAgICAodGhpcy5tYXR0ZUVsZW1lbnQgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgdGhpcy5tYXNrTWFuYWdlci5kZXN0cm95KCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXRCYXNlRWxlbWVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5oZCA/IG51bGwgOiB0aGlzLmJhc2VFbGVtZW50OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgY3JlYXRlUmVuZGVyYWJsZUNvbXBvbmVudHM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLm1hc2tNYW5hZ2VyID0gbmV3IE1hc2tFbGVtZW50KAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEsCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YQogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlciA9IG5ldyBTVkdFZmZlY3RzKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hFZmZlY3RUcmFuc2Zvcm1zKCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXRNYXR0ZTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKHRoaXMubWF0dGVNYXNrcyB8fCAodGhpcy5tYXR0ZU1hc2tzID0ge30pLAogICAgICAgICAgICAgICAgICAgICF0aGlzLm1hdHRlTWFza3NbdF0pCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmxheWVySWQgKyAiXyIgKyB0LAogICAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICAgIG87CiAgICAgICAgICAgICAgICAgIGlmICh0ID09PSAxIHx8IHQgPT09IDMpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbCA9IGNyZWF0ZU5TKCJtYXNrIik7CiAgICAgICAgICAgICAgICAgICAgbC5zZXRBdHRyaWJ1dGUoImlkIiwgciksCiAgICAgICAgICAgICAgICAgICAgICBsLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgIm1hc2stdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgIHQgPT09IDMgPyAibHVtaW5hbmNlIiA6ICJhbHBoYSIKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAoYSA9IGNyZWF0ZU5TKCJ1c2UiKSksCiAgICAgICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZU5TKAogICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsCiAgICAgICAgICAgICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgIiMiICsgdGhpcy5sYXllcklkCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgbC5hcHBlbmRDaGlsZChhKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKGwpLAogICAgICAgICAgICAgICAgICAgICAgIWZlYXR1cmVTdXBwb3J0Lm1hc2tUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICB0ID09PSAxICYmCiAgICAgICAgICAgICAgICAgICAgICAobC5zZXRBdHRyaWJ1dGUoIm1hc2stdHlwZSIsICJsdW1pbmFuY2UiKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG4gPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICAgICAgICAgICAgIChpID0gZmlsdGVyc0ZhY3RvcnkuY3JlYXRlRmlsdGVyKG4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQoaSksCiAgICAgICAgICAgICAgICAgICAgICAgIGkuYXBwZW5kQ2hpbGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyc0ZhY3RvcnkuY3JlYXRlQWxwaGFUb0x1bWluYW5jZUZpbHRlcigpCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChvID0gY3JlYXRlTlMoImciKSksCiAgICAgICAgICAgICAgICAgICAgICAgIG8uYXBwZW5kQ2hpbGQoYSksCiAgICAgICAgICAgICAgICAgICAgICAgIGwuYXBwZW5kQ2hpbGQobyksCiAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgbiArICIpIgogICAgICAgICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBjcmVhdGVOUygibWFzayIpOwogICAgICAgICAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJpZCIsIHIpLAogICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoIm1hc2stdHlwZSIsICJhbHBoYSIpOwogICAgICAgICAgICAgICAgICAgIHZhciB1ID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICAgICAgICBjLmFwcGVuZENoaWxkKHUpLAogICAgICAgICAgICAgICAgICAgICAgKG4gPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IGZpbHRlcnNGYWN0b3J5LmNyZWF0ZUZpbHRlcihuKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSBjcmVhdGVOUygiZmVDb21wb25lbnRUcmFuc2ZlciIpOwogICAgICAgICAgICAgICAgICAgIGQuc2V0QXR0cmlidXRlKCJpbiIsICJTb3VyY2VHcmFwaGljIiksIGkuYXBwZW5kQ2hpbGQoZCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIEUgPSBjcmVhdGVOUygiZmVGdW5jQSIpOwogICAgICAgICAgICAgICAgICAgIEUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRhYmxlIiksCiAgICAgICAgICAgICAgICAgICAgICBFLnNldEF0dHJpYnV0ZSgidGFibGVWYWx1ZXMiLCAiMS4wIDAuMCIpLAogICAgICAgICAgICAgICAgICAgICAgZC5hcHBlbmRDaGlsZChFKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKGkpOwogICAgICAgICAgICAgICAgICAgIHZhciBiID0gY3JlYXRlTlMoInJlY3QiKTsKICAgICAgICAgICAgICAgICAgICBiLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmNvbXAuZGF0YS53KSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCB0aGlzLmNvbXAuZGF0YS5oKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJ4IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJ5IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJmaWxsIiwgIiNmZmZmZmYiKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJvcGFjaXR5IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBuICsgIikiCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChiKSwKICAgICAgICAgICAgICAgICAgICAgIChhID0gY3JlYXRlTlMoInVzZSIpKSwKICAgICAgICAgICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlTlMoCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgImhyZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiIyIgKyB0aGlzLmxheWVySWQKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB1LmFwcGVuZENoaWxkKGEpLAogICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZVN1cHBvcnQubWFza1R5cGUgfHwKICAgICAgICAgICAgICAgICAgICAgIChjLnNldEF0dHJpYnV0ZSgibWFzay10eXBlIiwgImx1bWluYW5jZSIpLAogICAgICAgICAgICAgICAgICAgICAgICBpLmFwcGVuZENoaWxkKAogICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnNGYWN0b3J5LmNyZWF0ZUFscGhhVG9MdW1pbmFuY2VGaWx0ZXIoKQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAobyA9IGNyZWF0ZU5TKCJnIikpLAogICAgICAgICAgICAgICAgICAgICAgICB1LmFwcGVuZENoaWxkKGIpLAogICAgICAgICAgICAgICAgICAgICAgICBvLmFwcGVuZENoaWxkKHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChvKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChjKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB0aGlzLm1hdHRlTWFza3NbdF0gPSByOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF0dGVNYXNrc1t0XTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNldE1hdHRlOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5tYXR0ZUVsZW1lbnQgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5tYXR0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJtYXNrIiwKICAgICAgICAgICAgICAgICAgICAidXJsKCIgKyBnZXRMb2NhdGlvbkhyZWYoKSArICIjIiArIHQgKyAiKSIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBIaWVyYXJjaHlFbGVtZW50KCkgeyB9CiAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGluaXRIaWVyYXJjaHk6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLmhpZXJhcmNoeSA9IFtdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzUGFyZW50ID0gITEpLAogICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrUGFyZW50aW5nKCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRIaWVyYXJjaHk6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0aGlzLmhpZXJhcmNoeSA9IHQ7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRBc1BhcmVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5faXNQYXJlbnQgPSAhMDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNoZWNrUGFyZW50aW5nOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRhdGEucGFyZW50ICE9PSB2b2lkIDAgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5jb21wLmJ1aWxkRWxlbWVudFBhcmVudGluZyh0aGlzLCB0aGlzLmRhdGEucGFyZW50LCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gUmVuZGVyYWJsZURPTUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IHsKICAgICAgICAgICAgICAgIGluaXRFbGVtZW50OiBmdW5jdGlvbiAociwgbiwgaSkgewogICAgICAgICAgICAgICAgICB0aGlzLmluaXRGcmFtZSgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdEJhc2VEYXRhKHIsIG4sIGkpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShyLCBuLCBpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRIaWVyYXJjaHkoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRSZW5kZXJhYmxlKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb250YWluZXJFbGVtZW50cygpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUmVuZGVyYWJsZUNvbXBvbmVudHMoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBoaWRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5oaWRkZW4gJiYgKCF0aGlzLmlzSW5SYW5nZSB8fCB0aGlzLmlzVHJhbnNwYXJlbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmJhc2VFbGVtZW50IHx8IHRoaXMubGF5ZXJFbGVtZW50OwogICAgICAgICAgICAgICAgICAgIChyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpLCAodGhpcy5oaWRkZW4gPSAhMCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBzaG93OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzSW5SYW5nZSAmJiAhdGhpcy5pc1RyYW5zcGFyZW50KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaGQpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciByID0gdGhpcy5iYXNlRWxlbWVudCB8fCB0aGlzLmxheWVyRWxlbWVudDsKICAgICAgICAgICAgICAgICAgICAgIHIuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICh0aGlzLmhpZGRlbiA9ICExKSwgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICEwKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHJlbmRlckZyYW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5oZCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuIHx8CiAgICAgICAgICAgICAgICAgICAgKHRoaXMucmVuZGVyVHJhbnNmb3JtKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclJlbmRlcmFibGUoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTG9jYWxUcmFuc2Zvcm0oKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRWxlbWVudCgpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJJbm5lckNvbnRlbnQoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzRmlyc3RGcmFtZSAmJiAodGhpcy5faXNGaXJzdEZyYW1lID0gITEpKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICByZW5kZXJJbm5lckNvbnRlbnQ6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgICAgIHByZXBhcmVGcmFtZTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVSZW5kZXJhYmxlRnJhbWUociksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhyLCB0aGlzLmlzSW5SYW5nZSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja1RyYW5zcGFyZW5jeSgpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuaW5uZXJFbGVtID0gbnVsbCksIHRoaXMuZGVzdHJveUJhc2VFbGVtZW50KCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgICAgW1JlbmRlcmFibGVFbGVtZW50LCBjcmVhdGVQcm94eUZ1bmN0aW9uKGUpXSwKICAgICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gSUltYWdlRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5nZXRBc3NldERhdGEoZS5yZWZJZCkpLAogICAgICAgICAgICAgICAgdGhpcy5hc3NldERhdGEgJiYKICAgICAgICAgICAgICAgIHRoaXMuYXNzZXREYXRhLnNpZCAmJgogICAgICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5zbG90TWFuYWdlci5nZXRQcm9wKHRoaXMuYXNzZXREYXRhKSksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpLAogICAgICAgICAgICAgICAgKHRoaXMuc291cmNlUmVjdCA9IHsKICAgICAgICAgICAgICAgICAgdG9wOiAwLAogICAgICAgICAgICAgICAgICBsZWZ0OiAwLAogICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5hc3NldERhdGEudywKICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmFzc2V0RGF0YS5oLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIEJhc2VFbGVtZW50LAogICAgICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudCwKICAgICAgICAgICAgICAgIFNWR0Jhc2VFbGVtZW50LAogICAgICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgICAgIEZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50LAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgSUltYWdlRWxlbWVudAogICAgICAgICAgICApLAogICAgICAgICAgICAgIChJSW1hZ2VFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmdsb2JhbERhdGEuZ2V0QXNzZXRzUGF0aCh0aGlzLmFzc2V0RGF0YSk7CiAgICAgICAgICAgICAgICAodGhpcy5pbm5lckVsZW0gPSBjcmVhdGVOUygiaW1hZ2UiKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJFbGVtLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmFzc2V0RGF0YS53ICsgInB4IiksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IiwKICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0RGF0YS5oICsgInB4IgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLmlubmVyRWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgInByZXNlcnZlQXNwZWN0UmF0aW8iLAogICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXREYXRhLnByIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlckNvbmZpZy5pbWFnZVByZXNlcnZlQXNwZWN0UmF0aW8KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbm5lckVsZW0uc2V0QXR0cmlidXRlTlMoCiAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLAogICAgICAgICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAgICAgICBlCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaW5uZXJFbGVtKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSUltYWdlRWxlbWVudC5wcm90b3R5cGUuc291cmNlUmVjdEF0VGltZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZVJlY3Q7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFByb2Nlc3NlZEVsZW1lbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwgKHRoaXMucG9zID0gdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gSVNoYXBlRWxlbWVudCgpIHsgfQogICAgICAgICAgICBJU2hhcGVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICBhZGRTaGFwZVRvTW9kaWZpZXJzOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlTW9kaWZpZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHRoaXMuc2hhcGVNb2RpZmllcnNbcl0uYWRkU2hhcGUodCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpc1NoYXBlSW5BbmltYXRlZE1vZGlmaWVyczogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBuID0gdGhpcy5zaGFwZU1vZGlmaWVycy5sZW5ndGg7IHIgPCBuOykKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hhcGVNb2RpZmllcnNbcl0uaXNBbmltYXRlZFdpdGhTaGFwZSh0KSkgcmV0dXJuICEwOwogICAgICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcmVuZGVyTW9kaWZpZXJzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaGFwZU1vZGlmaWVycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuc2hhcGVzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgdGhpcy5zaGFwZXNbdF0uc2gucmVzZXQoKTsKICAgICAgICAgICAgICAgICAgciA9IHRoaXMuc2hhcGVNb2RpZmllcnMubGVuZ3RoOwogICAgICAgICAgICAgICAgICB2YXIgbjsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICB0ID0gciAtIDE7CiAgICAgICAgICAgICAgICAgICAgdCA+PSAwICYmCiAgICAgICAgICAgICAgICAgICAgKChuID0gdGhpcy5zaGFwZU1vZGlmaWVyc1t0XS5wcm9jZXNzU2hhcGVzKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lCiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAhbik7CiAgICAgICAgICAgICAgICAgICAgdCAtPSAxCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZWFyY2hQcm9jZXNzZWRFbGVtZW50OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLnByb2Nlc3NlZEVsZW1lbnRzLCBuID0gMCwgaSA9IHIubGVuZ3RoOwogICAgICAgICAgICAgICAgICBuIDwgaTsKCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgaWYgKHJbbl0uZWxlbSA9PT0gdCkgcmV0dXJuIHJbbl0ucG9zOwogICAgICAgICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGFkZFByb2Nlc3NlZEVsZW1lbnQ6IGZ1bmN0aW9uICh0LCByKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBuID0gdGhpcy5wcm9jZXNzZWRFbGVtZW50cywgaSA9IG4ubGVuZ3RoOyBpOykKICAgICAgICAgICAgICAgICAgaWYgKCgoaSAtPSAxKSwgbltpXS5lbGVtID09PSB0KSkgewogICAgICAgICAgICAgICAgICAgIG5baV0ucG9zID0gcjsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG4ucHVzaChuZXcgUHJvY2Vzc2VkRWxlbWVudCh0LCByKSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBwcmVwYXJlRnJhbWU6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVSZW5kZXJhYmxlRnJhbWUodCksCiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVByb3BlcnRpZXModCwgdGhpcy5pc0luUmFuZ2UpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBsaW5lQ2FwRW51bSA9IHsgMTogImJ1dHQiLCAyOiAicm91bmQiLCAzOiAic3F1YXJlIiB9LAogICAgICAgICAgICAgIGxpbmVKb2luRW51bSA9IHsgMTogIm1pdGVyIiwgMjogInJvdW5kIiwgMzogImJldmVsIiB9OwogICAgICAgICAgICBmdW5jdGlvbiBTVkdTaGFwZURhdGEoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLmNhY2hlcyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlcyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybWVycyA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMubFN0ciA9ICIiKSwKICAgICAgICAgICAgICAgICh0aGlzLnNoID0gciksCiAgICAgICAgICAgICAgICAodGhpcy5sdmwgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISFyLmspOwogICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwLCBpID0gZS5sZW5ndGg7IG4gPCBpOykgewogICAgICAgICAgICAgICAgaWYgKGVbbl0ubVByb3BzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICB0aGlzLl9pc0FuaW1hdGVkID0gITA7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbiArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBTVkdTaGFwZURhdGEucHJvdG90eXBlLnNldEFzQW5pbWF0ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdGhpcy5faXNBbmltYXRlZCA9ICEwOwogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBTVkdTdHlsZURhdGEoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLmRhdGEgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlLnR5KSwKICAgICAgICAgICAgICAgICh0aGlzLmQgPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy5sdmwgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5jbG9zZWQgPSBlLmhkID09PSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5wRWxlbSA9IGNyZWF0ZU5TKCJwYXRoIikpLAogICAgICAgICAgICAgICAgKHRoaXMubXNFbGVtID0gbnVsbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU1ZHU3R5bGVEYXRhLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAodGhpcy5kID0gIiIpLCAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBEYXNoUHJvcGVydHkoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgICAodGhpcy5kYXRhUHJvcHMgPSBjcmVhdGVTaXplZEFycmF5KHQubGVuZ3RoKSksCiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlciA9IHIpLAogICAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLmRhc2hTdHIgPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy5kYXNoQXJyYXkgPSBjcmVhdGVUeXBlZEFycmF5KAogICAgICAgICAgICAgICAgICAiZmxvYXQzMiIsCiAgICAgICAgICAgICAgICAgIHQubGVuZ3RoID8gdC5sZW5ndGggLSAxIDogMAogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy5kYXNob2Zmc2V0ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIDEpKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihuKTsKICAgICAgICAgICAgICB2YXIgaSwKICAgICAgICAgICAgICAgIGEgPSB0Lmxlbmd0aCB8fCAwLAogICAgICAgICAgICAgICAgbzsKICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYTsgaSArPSAxKQogICAgICAgICAgICAgICAgKG8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0W2ldLnYsIDAsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuayA9IG8uayB8fCB0aGlzLmspLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhUHJvcHNbaV0gPSB7IG46IHRbaV0ubiwgcDogbyB9KTsKICAgICAgICAgICAgICB0aGlzLmsgfHwgdGhpcy5nZXRWYWx1ZSghMCksICh0aGlzLl9pc0FuaW1hdGVkID0gdGhpcy5rKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoRGFzaFByb3BlcnR5LnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISh0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkID09PSB0aGlzLmZyYW1lSWQgJiYgIWUpICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gdGhpcy5fbWRmIHx8IGUpLAogICAgICAgICAgICAgICAgICB0aGlzLl9tZGYpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IDAsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRhdGFQcm9wcy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyID09PSAic3ZnIiAmJiAodGhpcy5kYXNoU3RyID0gIiIpLCB0ID0gMDsKICAgICAgICAgICAgICAgICAgdCA8IHI7CiAgICAgICAgICAgICAgICAgIHQgKz0gMQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm9wc1t0XS5uICE9PSAibyIKICAgICAgICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyZXIgPT09ICJzdmciCiAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmRhc2hTdHIgKz0gIiAiICsgdGhpcy5kYXRhUHJvcHNbdF0ucC52KQogICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5kYXNoQXJyYXlbdF0gPSB0aGlzLmRhdGFQcm9wc1t0XS5wLnYpCiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5kYXNob2Zmc2V0WzBdID0gdGhpcy5kYXRhUHJvcHNbdF0ucC52KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgRGFzaFByb3BlcnR5KTsKICAgICAgICAgICAgZnVuY3Rpb24gU1ZHU3Ryb2tlU3R5bGVEYXRhKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZSksCiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgICAgICh0aGlzLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0Lm8sIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLncgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LncsIDAsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLmQgPSBuZXcgRGFzaFByb3BlcnR5KGUsIHQuZCB8fCB7fSwgInN2ZyIsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLmMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmMsIDEsIDI1NSwgdGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMuc3R5bGUgPSByKSwKICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISF0aGlzLl9pc0FuaW1hdGVkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIFNWR1N0cm9rZVN0eWxlRGF0YSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0ZpbGxTdHlsZURhdGEoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihlKSwKICAgICAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMpLAogICAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQubywgMCwgMC4wMSwgdGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMuYyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuYywgMSwgMjU1LCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5zdHlsZSA9IHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgU1ZHRmlsbFN0eWxlRGF0YSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR05vU3R5bGVEYXRhKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZSksCiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlID0gcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBTVkdOb1N0eWxlRGF0YSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIEdyYWRpZW50UHJvcGVydHkoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwgKHRoaXMuYyA9IGNyZWF0ZVR5cGVkQXJyYXkoInVpbnQ4YyIsIHQucCAqIDQpKTsKICAgICAgICAgICAgICB2YXIgbiA9IHQuay5rWzBdLnMKICAgICAgICAgICAgICAgID8gdC5rLmtbMF0ucy5sZW5ndGggLSB0LnAgKiA0CiAgICAgICAgICAgICAgICA6IHQuay5rLmxlbmd0aCAtIHQucCAqIDQ7CiAgICAgICAgICAgICAgKHRoaXMubyA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCBuKSksCiAgICAgICAgICAgICAgICAodGhpcy5fY21kZiA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLl9vbWRmID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX2NvbGxhcHNhYmxlID0gdGhpcy5jaGVja0NvbGxhcHNhYmxlKCkpLAogICAgICAgICAgICAgICAgKHRoaXMuX2hhc09wYWNpdHkgPSBuKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihyKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3AgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmssIDEsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLmsgPSB0aGlzLnByb3AuayksCiAgICAgICAgICAgICAgICB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoR3JhZGllbnRQcm9wZXJ0eS5wcm90b3R5cGUuY29tcGFyZVBvaW50cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgciA9IDAsIG4gPSB0aGlzLm8ubGVuZ3RoIC8gMiwgaTsgciA8IG47KSB7CiAgICAgICAgICAgICAgICBpZiAoKChpID0gTWF0aC5hYnMoZVtyICogNF0gLSBlW3QgKiA0ICsgciAqIDJdKSksIGkgPiAwLjAxKSkKICAgICAgICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChHcmFkaWVudFByb3BlcnR5LnByb3RvdHlwZS5jaGVja0NvbGxhcHNhYmxlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuby5sZW5ndGggLyAyICE9PSB0aGlzLmMubGVuZ3RoIC8gNCkgcmV0dXJuICExOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5rLmtbMF0ucykKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZSA9IDAsIHQgPSB0aGlzLmRhdGEuay5rLmxlbmd0aDsgZSA8IHQ7KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBhcmVQb2ludHModGhpcy5kYXRhLmsua1tlXS5zLCB0aGlzLmRhdGEucCkpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAgICAgICAgICAgZSArPSAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICghdGhpcy5jb21wYXJlUG9pbnRzKHRoaXMuZGF0YS5rLmssIHRoaXMuZGF0YS5wKSkKICAgICAgICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChHcmFkaWVudFByb3BlcnR5LnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3AuZ2V0VmFsdWUoKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9jbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9vbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcC5fbWRmIHx8IGUpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuZGF0YS5wICogNCwKICAgICAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgICAgIGk7CiAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgICAgKG4gPSB0ICUgNCA9PT0gMCA/IDEwMCA6IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IE1hdGgucm91bmQodGhpcy5wcm9wLnZbdF0gKiBuKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNbdF0gIT09IGkgJiYgKCh0aGlzLmNbdF0gPSBpKSwgKHRoaXMuX2NtZGYgPSAhZSkpOwogICAgICAgICAgICAgICAgICBpZiAodGhpcy5vLmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMucHJvcC52Lmxlbmd0aCwgdCA9IHRoaXMuZGF0YS5wICogNDsKICAgICAgICAgICAgICAgICAgICAgIHQgPCByOwogICAgICAgICAgICAgICAgICAgICAgdCArPSAxCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKG4gPSB0ICUgMiA9PT0gMCA/IDEwMCA6IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAoaSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgdCAlIDIgPT09IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTWF0aC5yb3VuZCh0aGlzLnByb3Audlt0XSAqIDEwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wcm9wLnZbdF0pLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9bdCAtIHRoaXMuZGF0YS5wICogNF0gIT09IGkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLm9bdCAtIHRoaXMuZGF0YS5wICogNF0gPSBpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fb21kZiA9ICFlKSk7CiAgICAgICAgICAgICAgICAgIHRoaXMuX21kZiA9ICFlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgR3JhZGllbnRQcm9wZXJ0eSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0dyYWRpZW50RmlsbFN0eWxlRGF0YShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcyksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRHcmFkaWVudERhdGEoZSwgdCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKFNWR0dyYWRpZW50RmlsbFN0eWxlRGF0YS5wcm90b3R5cGUuaW5pdEdyYWRpZW50RGF0YSA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgcgogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAodGhpcy5vID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5vLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5zLCAxLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5lID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5lLCAxLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5oID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgIHQuaCB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy5hID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgIHQuYSB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICh0aGlzLmcgPSBuZXcgR3JhZGllbnRQcm9wZXJ0eShlLCB0LmcsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlID0gciksCiAgICAgICAgICAgICAgICAodGhpcy5zdG9wcyA9IFtdKSwKICAgICAgICAgICAgICAgIHRoaXMuc2V0R3JhZGllbnREYXRhKHIucEVsZW0sIHQpLAogICAgICAgICAgICAgICAgdGhpcy5zZXRHcmFkaWVudE9wYWNpdHkodCwgciksCiAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICEhdGhpcy5faXNBbmltYXRlZCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdHcmFkaWVudEZpbGxTdHlsZURhdGEucHJvdG90eXBlLnNldEdyYWRpZW50RGF0YSA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IGNyZWF0ZUVsZW1lbnRJRCgpLAogICAgICAgICAgICAgICAgICBuID0gY3JlYXRlTlModC50ID09PSAxID8gImxpbmVhckdyYWRpZW50IiA6ICJyYWRpYWxHcmFkaWVudCIpOwogICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoImlkIiwgciksCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJzcHJlYWRNZXRob2QiLCAicGFkIiksCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJncmFkaWVudFVuaXRzIiwgInVzZXJTcGFjZU9uVXNlIik7CiAgICAgICAgICAgICAgICB2YXIgaSA9IFtdLAogICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgICAgICBsOwogICAgICAgICAgICAgICAgZm9yIChsID0gdC5nLnAgKiA0LCBvID0gMDsgbyA8IGw7IG8gKz0gNCkKICAgICAgICAgICAgICAgICAgKGEgPSBjcmVhdGVOUygic3RvcCIpKSwgbi5hcHBlbmRDaGlsZChhKSwgaS5wdXNoKGEpOwogICAgICAgICAgICAgICAgZS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgIHQudHkgPT09ICJnZiIgPyAiZmlsbCIgOiAic3Ryb2tlIiwKICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyByICsgIikiCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAodGhpcy5nZiA9IG4pLAogICAgICAgICAgICAgICAgICAodGhpcy5jc3QgPSBpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhLnByb3RvdHlwZS5zZXRHcmFkaWVudE9wYWNpdHkgPQogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZy5faGFzT3BhY2l0eSAmJiAhdGhpcy5nLl9jb2xsYXBzYWJsZSkgewogICAgICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgICAgICBhID0gY3JlYXRlTlMoIm1hc2siKSwKICAgICAgICAgICAgICAgICAgICAgIG8gPSBjcmVhdGVOUygicGF0aCIpOwogICAgICAgICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQobyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGwgPSBjcmVhdGVFbGVtZW50SUQoKSwKICAgICAgICAgICAgICAgICAgICAgIGMgPSBjcmVhdGVFbGVtZW50SUQoKTsKICAgICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiaWQiLCBjKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdSA9IGNyZWF0ZU5TKAogICAgICAgICAgICAgICAgICAgICAgZS50ID09PSAxID8gImxpbmVhckdyYWRpZW50IiA6ICJyYWRpYWxHcmFkaWVudCIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJpZCIsIGwpLAogICAgICAgICAgICAgICAgICAgICAgdS5zZXRBdHRyaWJ1dGUoInNwcmVhZE1ldGhvZCIsICJwYWQiKSwKICAgICAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJncmFkaWVudFVuaXRzIiwgInVzZXJTcGFjZU9uVXNlIiksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IGUuZy5rLmtbMF0ucyA/IGUuZy5rLmtbMF0ucy5sZW5ndGggOiBlLmcuay5rLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLnN0b3BzOwogICAgICAgICAgICAgICAgICAgIGZvciAobiA9IGUuZy5wICogNDsgbiA8IGk7IG4gKz0gMikKICAgICAgICAgICAgICAgICAgICAgIChyID0gY3JlYXRlTlMoInN0b3AiKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHIuc2V0QXR0cmlidXRlKCJzdG9wLWNvbG9yIiwgInJnYigyNTUsMjU1LDI1NSkiKSwKICAgICAgICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChyKSwKICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHIpOwogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgZS50eSA9PT0gImdmIiA/ICJmaWxsIiA6ICJzdHJva2UiLAogICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBsICsgIikiCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIGUudHkgPT09ICJncyIgJiYKICAgICAgICAgICAgICAgICAgICAgIChvLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgInN0cm9rZS1saW5lY2FwIiwKICAgICAgICAgICAgICAgICAgICAgICAgbGluZUNhcEVudW1bZS5sYyB8fCAyXQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cm9rZS1saW5lam9pbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUpvaW5FbnVtW2UubGogfHwgMl0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5saiA9PT0gMSAmJgogICAgICAgICAgICAgICAgICAgICAgICBvLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW1pdGVybGltaXQiLCBlLm1sKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5vZiA9IHUpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMubXMgPSBhKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm9zdCA9IGQpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWFza0lkID0gYyksCiAgICAgICAgICAgICAgICAgICAgICAodC5tc0VsZW0gPSBvKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgICAgW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sCiAgICAgICAgICAgICAgICBTVkdHcmFkaWVudEZpbGxTdHlsZURhdGEKICAgICAgICAgICAgICApOwogICAgICAgICAgICBmdW5jdGlvbiBTVkdHcmFkaWVudFN0cm9rZVN0eWxlRGF0YShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcyksCiAgICAgICAgICAgICAgICAodGhpcy53ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC53LCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5kID0gbmV3IERhc2hQcm9wZXJ0eShlLCB0LmQgfHwge30sICJzdmciLCB0aGlzKSksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRHcmFkaWVudERhdGEoZSwgdCwgciksCiAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICEhdGhpcy5faXNBbmltYXRlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgIFtTVkdHcmFkaWVudEZpbGxTdHlsZURhdGEsIER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sCiAgICAgICAgICAgICAgU1ZHR3JhZGllbnRTdHJva2VTdHlsZURhdGEKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZnVuY3Rpb24gU2hhcGVHcm91cERhdGEoKSB7CiAgICAgICAgICAgICAgKHRoaXMuaXQgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5wcmV2Vmlld0RhdGEgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5nciA9IGNyZWF0ZU5TKCJnIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR1RyYW5zZm9ybURhdGEoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybSA9IHsgbVByb3BzOiBlLCBvcDogdCwgY29udGFpbmVyOiByIH0pLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9CiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtLm1Qcm9wcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwKICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm0ub3AuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGJ1aWxkU2hhcGVTdHJpbmcgPSBmdW5jdGlvbiAodCwgciwgbiwgaSkgewogICAgICAgICAgICAgIGlmIChyID09PSAwKSByZXR1cm4gIiI7CiAgICAgICAgICAgICAgdmFyIGEgPSB0Lm8sCiAgICAgICAgICAgICAgICBvID0gdC5pLAogICAgICAgICAgICAgICAgbCA9IHQudiwKICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICB1ID0gIiBNIiArIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQobFswXVswXSwgbFswXVsxXSk7CiAgICAgICAgICAgICAgZm9yIChjID0gMTsgYyA8IHI7IGMgKz0gMSkKICAgICAgICAgICAgICAgIHUgKz0KICAgICAgICAgICAgICAgICAgIiBDIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQoYVtjIC0gMV1bMF0sIGFbYyAtIDFdWzFdKSArCiAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQob1tjXVswXSwgb1tjXVsxXSkgKwogICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICBpLmFwcGx5VG9Qb2ludFN0cmluZ2lmaWVkKGxbY11bMF0sIGxbY11bMV0pOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBuICYmCiAgICAgICAgICAgICAgICByICYmCiAgICAgICAgICAgICAgICAoKHUgKz0KICAgICAgICAgICAgICAgICAgIiBDIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQoYVtjIC0gMV1bMF0sIGFbYyAtIDFdWzFdKSArCiAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQob1swXVswXSwgb1swXVsxXSkgKwogICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICBpLmFwcGx5VG9Qb2ludFN0cmluZ2lmaWVkKGxbMF1bMF0sIGxbMF1bMV0pKSwKICAgICAgICAgICAgICAgICAgKHUgKz0gInoiKSksCiAgICAgICAgICAgICAgICB1CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBTVkdFbGVtZW50c1JlbmRlcmVyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgICAgICB0ID0gbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgICAgICByID0geyBjcmVhdGVSZW5kZXJGdW5jdGlvbjogbiB9OwogICAgICAgICAgICAgICAgZnVuY3Rpb24gbihFKSB7CiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoRS50eSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgImZsIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImdmIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1OwogICAgICAgICAgICAgICAgICAgIGNhc2UgImdzIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInN0IjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInNoIjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJlbCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAicmMiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgInNyIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRyIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgICAgIGNhc2UgIm5vIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gaShFLCBiLCBQKSB7CiAgICAgICAgICAgICAgICAgIChQIHx8IGIudHJhbnNmb3JtLm9wLl9tZGYpICYmCiAgICAgICAgICAgICAgICAgICAgYi50cmFuc2Zvcm0uY29udGFpbmVyLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJvcGFjaXR5IiwKICAgICAgICAgICAgICAgICAgICAgIGIudHJhbnNmb3JtLm9wLnYKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIChQIHx8IGIudHJhbnNmb3JtLm1Qcm9wcy5fbWRmKSAmJgogICAgICAgICAgICAgICAgICAgIGIudHJhbnNmb3JtLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAidHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgIGIudHJhbnNmb3JtLm1Qcm9wcy52LnRvMmRDU1MoKQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhKCkgeyB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBvKEUsIGIsIFApIHsKICAgICAgICAgICAgICAgICAgdmFyIFIsCiAgICAgICAgICAgICAgICAgICAgVCwKICAgICAgICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICAgICAgIHgsCiAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgICAgIEEgPSBiLnN0eWxlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgTyA9IGIubHZsLAogICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICQ7CiAgICAgICAgICAgICAgICAgIGZvciAoUyA9IDA7IFMgPCBBOyBTICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKCh4ID0gYi5zaC5fbWRmIHx8IFApLCBiLnN0eWxlc1tTXS5sdmwgPCBPKSkgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgRCA9IHQucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgSCA9IE8gLSBiLnN0eWxlc1tTXS5sdmwsCiAgICAgICAgICAgICAgICAgICAgICAgICQgPSBiLnRyYW5zZm9ybWVycy5sZW5ndGggLSAxOwogICAgICAgICAgICAgICAgICAgICAgICAheCAmJiBIID4gMDsKCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICh4ID0gYi50cmFuc2Zvcm1lcnNbJF0ubVByb3BzLl9tZGYgfHwgeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEggLT0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQgLT0gMSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICBIID0gTyAtIGIuc3R5bGVzW1NdLmx2bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gYi50cmFuc2Zvcm1lcnMubGVuZ3RoIC0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICBIID4gMDsKCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICBELm11bHRpcGx5KGIudHJhbnNmb3JtZXJzWyRdLm1Qcm9wcy52KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChIIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCQgLT0gMSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIEQgPSBlOwogICAgICAgICAgICAgICAgICAgIGlmICgoKEYgPSBiLnNoLnBhdGhzKSwgKFQgPSBGLl9sZW5ndGgpLCB4KSkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChNID0gIiIsIFIgPSAwOyBSIDwgVDsgUiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoayA9IEYuc2hhcGVzW1JdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBrICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgay5fbGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gKz0gYnVpbGRTaGFwZVN0cmluZyhrLCBrLl9sZW5ndGgsIGsuYywgRCkpOwogICAgICAgICAgICAgICAgICAgICAgYi5jYWNoZXNbU10gPSBNOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBNID0gYi5jYWNoZXNbU107CiAgICAgICAgICAgICAgICAgICAgKGIuc3R5bGVzW1NdLmQgKz0gRS5oZCA9PT0gITAgPyAiIiA6IE0pLAogICAgICAgICAgICAgICAgICAgICAgKGIuc3R5bGVzW1NdLl9tZGYgPSB4IHx8IGIuc3R5bGVzW1NdLl9tZGYpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBsKEUsIGIsIFApIHsKICAgICAgICAgICAgICAgICAgdmFyIFIgPSBiLnN0eWxlOwogICAgICAgICAgICAgICAgICAoYi5jLl9tZGYgfHwgUCkgJiYKICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJmaWxsIiwKICAgICAgICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgICAgICBibUZsb29yKGIuYy52WzBdKSArCiAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihiLmMudlsxXSkgKwogICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgIGJtRmxvb3IoYi5jLnZbMl0pICsKICAgICAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKGIuby5fbWRmIHx8IFApICYmCiAgICAgICAgICAgICAgICAgICAgUi5wRWxlbS5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIsIGIuby52KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGMoRSwgYiwgUCkgewogICAgICAgICAgICAgICAgICB1KEUsIGIsIFApLCBkKEUsIGIsIFApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gdShFLCBiLCBQKSB7CiAgICAgICAgICAgICAgICAgIHZhciBSID0gYi5nZiwKICAgICAgICAgICAgICAgICAgICBUID0gYi5nLl9oYXNPcGFjaXR5LAogICAgICAgICAgICAgICAgICAgIE0gPSBiLnMudiwKICAgICAgICAgICAgICAgICAgICB4ID0gYi5lLnY7CiAgICAgICAgICAgICAgICAgIGlmIChiLm8uX21kZiB8fCBQKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGsgPSBFLnR5ID09PSAiZ2YiID8gImZpbGwtb3BhY2l0eSIgOiAic3Ryb2tlLW9wYWNpdHkiOwogICAgICAgICAgICAgICAgICAgIGIuc3R5bGUucEVsZW0uc2V0QXR0cmlidXRlKGssIGIuby52KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoYi5zLl9tZGYgfHwgUCkgewogICAgICAgICAgICAgICAgICAgIHZhciBTID0gRS50ID09PSAxID8gIngxIiA6ICJjeCIsCiAgICAgICAgICAgICAgICAgICAgICBBID0gUyA9PT0gIngxIiA/ICJ5MSIgOiAiY3kiOwogICAgICAgICAgICAgICAgICAgIFIuc2V0QXR0cmlidXRlKFMsIE1bMF0pLAogICAgICAgICAgICAgICAgICAgICAgUi5zZXRBdHRyaWJ1dGUoQSwgTVsxXSksCiAgICAgICAgICAgICAgICAgICAgICBUICYmCiAgICAgICAgICAgICAgICAgICAgICAhYi5nLl9jb2xsYXBzYWJsZSAmJgogICAgICAgICAgICAgICAgICAgICAgKGIub2Yuc2V0QXR0cmlidXRlKFMsIE1bMF0pLAogICAgICAgICAgICAgICAgICAgICAgICBiLm9mLnNldEF0dHJpYnV0ZShBLCBNWzFdKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIE8sIEYsIEQsIEg7CiAgICAgICAgICAgICAgICAgIGlmIChiLmcuX2NtZGYgfHwgUCkgewogICAgICAgICAgICAgICAgICAgIE8gPSBiLmNzdDsKICAgICAgICAgICAgICAgICAgICB2YXIgJCA9IGIuZy5jOwogICAgICAgICAgICAgICAgICAgIGZvciAoRCA9IE8ubGVuZ3RoLCBGID0gMDsgRiA8IEQ7IEYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChIID0gT1tGXSksCiAgICAgICAgICAgICAgICAgICAgICAgIEguc2V0QXR0cmlidXRlKCJvZmZzZXQiLCAkW0YgKiA0XSArICIlIiksCiAgICAgICAgICAgICAgICAgICAgICAgIEguc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICJzdG9wLWNvbG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAicmdiKCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICRbRiAqIDQgKyAxXSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAkW0YgKiA0ICsgMl0gKwogICAgICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgJFtGICogNCArIDNdICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoVCAmJiAoYi5nLl9vbWRmIHx8IFApKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHEgPSBiLmcubzsKICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgYi5nLl9jb2xsYXBzYWJsZSA/IChPID0gYi5jc3QpIDogKE8gPSBiLm9zdCksCiAgICAgICAgICAgICAgICAgICAgICBEID0gTy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICBGID0gMDsKICAgICAgICAgICAgICAgICAgICAgIEYgPCBEOwogICAgICAgICAgICAgICAgICAgICAgRiArPSAxCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKEggPSBPW0ZdKSwKICAgICAgICAgICAgICAgICAgICAgICAgYi5nLl9jb2xsYXBzYWJsZSB8fAogICAgICAgICAgICAgICAgICAgICAgICBILnNldEF0dHJpYnV0ZSgib2Zmc2V0IiwgcVtGICogMl0gKyAiJSIpLAogICAgICAgICAgICAgICAgICAgICAgICBILnNldEF0dHJpYnV0ZSgic3RvcC1vcGFjaXR5IiwgcVtGICogMiArIDFdKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoRS50ID09PSAxKQogICAgICAgICAgICAgICAgICAgIChiLmUuX21kZiB8fCBQKSAmJgogICAgICAgICAgICAgICAgICAgICAgKFIuc2V0QXR0cmlidXRlKCJ4MiIsIHhbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICBSLnNldEF0dHJpYnV0ZSgieTIiLCB4WzFdKSwKICAgICAgICAgICAgICAgICAgICAgICAgVCAmJgogICAgICAgICAgICAgICAgICAgICAgICAhYi5nLl9jb2xsYXBzYWJsZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoYi5vZi5zZXRBdHRyaWJ1dGUoIngyIiwgeFswXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYi5vZi5zZXRBdHRyaWJ1dGUoInkyIiwgeFsxXSkpKTsKICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIEo7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKChiLnMuX21kZiB8fCBiLmUuX21kZiB8fCBQKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKEogPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coTVswXSAtIHhbMF0sIDIpICsgTWF0aC5wb3coTVsxXSAtIHhbMV0sIDIpCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFIuc2V0QXR0cmlidXRlKCJyIiwgSiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgVCAmJiAhYi5nLl9jb2xsYXBzYWJsZSAmJiBiLm9mLnNldEF0dHJpYnV0ZSgiciIsIEopKSwKICAgICAgICAgICAgICAgICAgICAgICAgYi5lLl9tZGYgfHwgYi5oLl9tZGYgfHwgYi5hLl9tZGYgfHwgUCkKICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgIEogfHwKICAgICAgICAgICAgICAgICAgICAgICAgKEogPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coTVswXSAtIHhbMF0sIDIpICsgTWF0aC5wb3coTVsxXSAtIHhbMV0sIDIpCiAgICAgICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICAgICAgdmFyIEsgPSBNYXRoLmF0YW4yKHhbMV0gLSBNWzFdLCB4WzBdIC0gTVswXSksCiAgICAgICAgICAgICAgICAgICAgICAgIGVlID0gYi5oLnY7CiAgICAgICAgICAgICAgICAgICAgICBlZSA+PSAxID8gKGVlID0gMC45OSkgOiBlZSA8PSAtMSAmJiAoZWUgPSAtMC45OSk7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgbGUgPSBKICogZWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlID0gTWF0aC5jb3MoSyArIGIuYS52KSAqIGxlICsgTVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgQiA9IE1hdGguc2luKEsgKyBiLmEudikgKiBsZSArIE1bMV07CiAgICAgICAgICAgICAgICAgICAgICBSLnNldEF0dHJpYnV0ZSgiZngiLCByZSksCiAgICAgICAgICAgICAgICAgICAgICAgIFIuc2V0QXR0cmlidXRlKCJmeSIsIEIpLAogICAgICAgICAgICAgICAgICAgICAgICBUICYmCiAgICAgICAgICAgICAgICAgICAgICAgICFiLmcuX2NvbGxhcHNhYmxlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChiLm9mLnNldEF0dHJpYnV0ZSgiZngiLCByZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYi5vZi5zZXRBdHRyaWJ1dGUoImZ5IiwgQikpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZChFLCBiLCBQKSB7CiAgICAgICAgICAgICAgICAgIHZhciBSID0gYi5zdHlsZSwKICAgICAgICAgICAgICAgICAgICBUID0gYi5kOwogICAgICAgICAgICAgICAgICBUICYmCiAgICAgICAgICAgICAgICAgICAgKFQuX21kZiB8fCBQKSAmJgogICAgICAgICAgICAgICAgICAgIFQuZGFzaFN0ciAmJgogICAgICAgICAgICAgICAgICAgIChSLnBFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWRhc2hhcnJheSIsIFQuZGFzaFN0ciksCiAgICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWRhc2hvZmZzZXQiLCBULmRhc2hvZmZzZXRbMF0pKSwKICAgICAgICAgICAgICAgICAgICBiLmMgJiYKICAgICAgICAgICAgICAgICAgICAoYi5jLl9tZGYgfHwgUCkgJiYKICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJzdHJva2UiLAogICAgICAgICAgICAgICAgICAgICAgInJnYigiICsKICAgICAgICAgICAgICAgICAgICAgIGJtRmxvb3IoYi5jLnZbMF0pICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICBibUZsb29yKGIuYy52WzFdKSArCiAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihiLmMudlsyXSkgKwogICAgICAgICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAoYi5vLl9tZGYgfHwgUCkgJiYKICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW9wYWNpdHkiLCBiLm8udiksCiAgICAgICAgICAgICAgICAgICAgKGIudy5fbWRmIHx8IFApICYmCiAgICAgICAgICAgICAgICAgICAgKFIucEVsZW0uc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCBiLncudiksCiAgICAgICAgICAgICAgICAgICAgICBSLm1zRWxlbSAmJiBSLm1zRWxlbS5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIGIudy52KSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcjsKICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBTVkdTaGFwZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLnNoYXBlcyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc0RhdGEgPSBlLnNoYXBlcyksCiAgICAgICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0ID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuc2hhcGVNb2RpZmllcnMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5pdGVtc0RhdGEgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9jZXNzZWRFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGVkQ29udGVudHMgPSBbXSksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpLAogICAgICAgICAgICAgICAgKHRoaXMucHJldlZpZXdEYXRhID0gW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICBCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIFRyYW5zZm9ybUVsZW1lbnQsCiAgICAgICAgICAgICAgICBTVkdCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIElTaGFwZUVsZW1lbnQsCiAgICAgICAgICAgICAgICBIaWVyYXJjaHlFbGVtZW50LAogICAgICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICAgICAgUmVuZGVyYWJsZURPTUVsZW1lbnQsCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICBTVkdTaGFwZUVsZW1lbnQKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5pbml0U2Vjb25kYXJ5RWxlbWVudCA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuaWRlbnRpdHlNYXRyaXggPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmJ1aWxkRXhwcmVzc2lvbkludGVyZmFjZSA9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFNoYXBlcygKICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZXNEYXRhLAogICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zRGF0YSwKICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2Vmlld0RhdGEsCiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyVW5pcXVlU2hhcGVzKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuZmlsdGVyVW5pcXVlU2hhcGVzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLnN0eWxlc0xpc3QubGVuZ3RoLAogICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICBvID0gW10sCiAgICAgICAgICAgICAgICAgIGwgPSAhMTsKICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBhID0gdGhpcy5zdHlsZXNMaXN0W25dLCBsID0gITEsIG8ubGVuZ3RoID0gMCwgZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgZSA8IHQ7CiAgICAgICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAociA9IHRoaXMuc2hhcGVzW2VdKSwKICAgICAgICAgICAgICAgICAgICAgIHIuc3R5bGVzLmluZGV4T2YoYSkgIT09IC0xICYmCiAgICAgICAgICAgICAgICAgICAgICAoby5wdXNoKHIpLCAobCA9IHIuX2lzQW5pbWF0ZWQgfHwgbCkpOwogICAgICAgICAgICAgICAgICBvLmxlbmd0aCA+IDEgJiYgbCAmJiB0aGlzLnNldFNoYXBlc0FzQW5pbWF0ZWQobyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuc2V0U2hhcGVzQXNBbmltYXRlZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgZVt0XS5zZXRBc0FuaW1hdGVkKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU3R5bGVFbGVtZW50ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICBuID0gbmV3IFNWR1N0eWxlRGF0YShlLCB0KSwKICAgICAgICAgICAgICAgICAgaSA9IG4ucEVsZW07CiAgICAgICAgICAgICAgICBpZiAoZS50eSA9PT0gInN0IikgciA9IG5ldyBTVkdTdHJva2VTdHlsZURhdGEodGhpcywgZSwgbik7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChlLnR5ID09PSAiZmwiKSByID0gbmV3IFNWR0ZpbGxTdHlsZURhdGEodGhpcywgZSwgbik7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChlLnR5ID09PSAiZ2YiIHx8IGUudHkgPT09ICJncyIpIHsKICAgICAgICAgICAgICAgICAgdmFyIGEgPQogICAgICAgICAgICAgICAgICAgIGUudHkgPT09ICJnZiIKICAgICAgICAgICAgICAgICAgICAgID8gU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhCiAgICAgICAgICAgICAgICAgICAgICA6IFNWR0dyYWRpZW50U3Ryb2tlU3R5bGVEYXRhOwogICAgICAgICAgICAgICAgICAociA9IG5ldyBhKHRoaXMsIGUsIG4pKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChyLmdmKSwKICAgICAgICAgICAgICAgICAgICByLm1hc2tJZCAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChyLm1zKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKHIub2YpLAogICAgICAgICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICJtYXNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyByLm1hc2tJZCArICIpIgogICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgZS50eSA9PT0gIm5vIiAmJiAociA9IG5ldyBTVkdOb1N0eWxlRGF0YSh0aGlzLCBlLCBuKSk7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoZS50eSA9PT0gInN0IiB8fCBlLnR5ID09PSAiZ3MiKSAmJgogICAgICAgICAgICAgICAgICAoaS5zZXRBdHRyaWJ1dGUoInN0cm9rZS1saW5lY2FwIiwgbGluZUNhcEVudW1bZS5sYyB8fCAyXSksCiAgICAgICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoInN0cm9rZS1saW5lam9pbiIsIGxpbmVKb2luRW51bVtlLmxqIHx8IDJdKSwKICAgICAgICAgICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICBlLmxqID09PSAxICYmIGkuc2V0QXR0cmlidXRlKCJzdHJva2UtbWl0ZXJsaW1pdCIsIGUubWwpKSwKICAgICAgICAgICAgICAgICAgZS5yID09PSAyICYmIGkuc2V0QXR0cmlidXRlKCJmaWxsLXJ1bGUiLCAiZXZlbm9kZCIpLAogICAgICAgICAgICAgICAgICBlLmxuICYmIGkuc2V0QXR0cmlidXRlKCJpZCIsIGUubG4pLAogICAgICAgICAgICAgICAgICBlLmNsICYmIGkuc2V0QXR0cmlidXRlKCJjbGFzcyIsIGUuY2wpLAogICAgICAgICAgICAgICAgICBlLmJtICYmIChpLnN0eWxlWyJtaXgtYmxlbmQtbW9kZSJdID0gZ2V0QmxlbmRNb2RlKGUuYm0pKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0LnB1c2gobiksCiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9BbmltYXRlZENvbnRlbnRzKGUsIHIpLAogICAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUdyb3VwRWxlbWVudCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IG5ldyBTaGFwZUdyb3VwRGF0YSgpOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgZS5sbiAmJiB0LmdyLnNldEF0dHJpYnV0ZSgiaWQiLCBlLmxuKSwKICAgICAgICAgICAgICAgICAgZS5jbCAmJiB0LmdyLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCBlLmNsKSwKICAgICAgICAgICAgICAgICAgZS5ibSAmJiAodC5nci5zdHlsZVsibWl4LWJsZW5kLW1vZGUiXSA9IGdldEJsZW5kTW9kZShlLmJtKSksCiAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlVHJhbnNmb3JtRWxlbWVudCA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IFRyYW5zZm9ybVByb3BlcnR5RmFjdG9yeS5nZXRUcmFuc2Zvcm1Qcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgbiA9IG5ldyBTVkdUcmFuc2Zvcm1EYXRhKHIsIHIubywgdCk7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hZGRUb0FuaW1hdGVkQ29udGVudHMoZSwgbiksIG47CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU2hhcGVFbGVtZW50ID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgbiA9IDQ7CiAgICAgICAgICAgICAgICBlLnR5ID09PSAicmMiCiAgICAgICAgICAgICAgICAgID8gKG4gPSA1KQogICAgICAgICAgICAgICAgICA6IGUudHkgPT09ICJlbCIKICAgICAgICAgICAgICAgICAgICA/IChuID0gNikKICAgICAgICAgICAgICAgICAgICA6IGUudHkgPT09ICJzciIgJiYgKG4gPSA3KTsKICAgICAgICAgICAgICAgIHZhciBpID0gU2hhcGVQcm9wZXJ0eUZhY3RvcnkuZ2V0U2hhcGVQcm9wKHRoaXMsIGUsIG4sIHRoaXMpLAogICAgICAgICAgICAgICAgICBhID0gbmV3IFNWR1NoYXBlRGF0YSh0LCByLCBpKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVzLnB1c2goYSksCiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU2hhcGVUb01vZGlmaWVycyhhKSwKICAgICAgICAgICAgICAgICAgdGhpcy5hZGRUb0FuaW1hdGVkQ29udGVudHMoZSwgYSksCiAgICAgICAgICAgICAgICAgIGEKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuYWRkVG9BbmltYXRlZENvbnRlbnRzID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBuID0gdGhpcy5hbmltYXRlZENvbnRlbnRzLmxlbmd0aDsgciA8IG47KSB7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGVkQ29udGVudHNbcl0uZWxlbWVudCA9PT0gdCkgcmV0dXJuOwogICAgICAgICAgICAgICAgICByICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGVkQ29udGVudHMucHVzaCh7CiAgICAgICAgICAgICAgICAgIGZuOiBTVkdFbGVtZW50c1JlbmRlcmVyLmNyZWF0ZVJlbmRlckZ1bmN0aW9uKGUpLAogICAgICAgICAgICAgICAgICBlbGVtZW50OiB0LAogICAgICAgICAgICAgICAgICBkYXRhOiBlLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuc2V0RWxlbWVudFN0eWxlcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IGUuc3R5bGVzLAogICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICBuID0gdGhpcy5zdHlsZXNMaXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzTGlzdFtyXS5jbG9zZWQgfHwgdC5wdXNoKHRoaXMuc3R5bGVzTGlzdFtyXSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUucmVsb2FkU2hhcGVzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lID0gITA7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMuaXRlbXNEYXRhLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMucHJldlZpZXdEYXRhW2VdID0gdGhpcy5pdGVtc0RhdGFbZV07CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFNoYXBlcygKICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2Vmlld0RhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclVuaXF1ZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGUgPSAwOwogICAgICAgICAgICAgICAgICBlIDwgdDsKICAgICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbZV0uZ2V0VmFsdWUoKTsKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTW9kaWZpZXJzKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuc2VhcmNoU2hhcGVzID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgbwogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIGwgPSBbXS5jb25jYXQoYSksCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUgPSBlLmxlbmd0aCAtIDEsCiAgICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICAgIEUsCiAgICAgICAgICAgICAgICAgIGIgPSBbXSwKICAgICAgICAgICAgICAgICAgUCA9IFtdLAogICAgICAgICAgICAgICAgICBSLAogICAgICAgICAgICAgICAgICBULAogICAgICAgICAgICAgICAgICBNOwogICAgICAgICAgICAgICAgZm9yIChjID0gdTsgYyA+PSAwOyBjIC09IDEpIHsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgoTSA9IHRoaXMuc2VhcmNoUHJvY2Vzc2VkRWxlbWVudChlW2NdKSksCiAgICAgICAgICAgICAgICAgICAgICBNID8gKHRbY10gPSByW00gLSAxXSkgOiAoZVtjXS5fcmVuZGVyID0gbyksCiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAiZmwiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAic3QiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAiZ2YiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAiZ3MiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAibm8iKQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTQogICAgICAgICAgICAgICAgICAgICAgPyAodFtjXS5zdHlsZS5jbG9zZWQgPSAhMSkKICAgICAgICAgICAgICAgICAgICAgIDogKHRbY10gPSB0aGlzLmNyZWF0ZVN0eWxlRWxlbWVudChlW2NdLCBpKSksCiAgICAgICAgICAgICAgICAgICAgICBlW2NdLl9yZW5kZXIgJiYKICAgICAgICAgICAgICAgICAgICAgIHRbY10uc3R5bGUucEVsZW0ucGFyZW50Tm9kZSAhPT0gbiAmJgogICAgICAgICAgICAgICAgICAgICAgbi5hcHBlbmRDaGlsZCh0W2NdLnN0eWxlLnBFbGVtKSwKICAgICAgICAgICAgICAgICAgICAgIGIucHVzaCh0W2NdLnN0eWxlKTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZVtjXS50eSA9PT0gImdyIikgewogICAgICAgICAgICAgICAgICAgIGlmICghTSkgdFtjXSA9IHRoaXMuY3JlYXRlR3JvdXBFbGVtZW50KGVbY10pOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgIGZvciAoRSA9IHRbY10uaXQubGVuZ3RoLCBkID0gMDsgZCA8IEU7IGQgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgdFtjXS5wcmV2Vmlld0RhdGFbZF0gPSB0W2NdLml0W2RdOwogICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoU2hhcGVzKAogICAgICAgICAgICAgICAgICAgICAgZVtjXS5pdCwKICAgICAgICAgICAgICAgICAgICAgIHRbY10uaXQsCiAgICAgICAgICAgICAgICAgICAgICB0W2NdLnByZXZWaWV3RGF0YSwKICAgICAgICAgICAgICAgICAgICAgIHRbY10uZ3IsCiAgICAgICAgICAgICAgICAgICAgICBpICsgMSwKICAgICAgICAgICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgICAgICAgICBvCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIGVbY10uX3JlbmRlciAmJgogICAgICAgICAgICAgICAgICAgICAgdFtjXS5nci5wYXJlbnROb2RlICE9PSBuICYmCiAgICAgICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKHRbY10uZ3IpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAidHIiCiAgICAgICAgICAgICAgICAgICAgICA/IChNIHx8ICh0W2NdID0gdGhpcy5jcmVhdGVUcmFuc2Zvcm1FbGVtZW50KGVbY10sIG4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSB0W2NdLnRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICAgICAgICAgIGwucHVzaChSKSkKICAgICAgICAgICAgICAgICAgICAgIDogZVtjXS50eSA9PT0gInNoIiB8fAogICAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAicmMiIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIGVbY10udHkgPT09ICJlbCIgfHwKICAgICAgICAgICAgICAgICAgICAgICAgZVtjXS50eSA9PT0gInNyIgogICAgICAgICAgICAgICAgICAgICAgICA/IChNIHx8ICh0W2NdID0gdGhpcy5jcmVhdGVTaGFwZUVsZW1lbnQoZVtjXSwgbCwgaSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RWxlbWVudFN0eWxlcyh0W2NdKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBlW2NdLnR5ID09PSAidG0iIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgZVtjXS50eSA9PT0gInJkIiB8fAogICAgICAgICAgICAgICAgICAgICAgICAgIGVbY10udHkgPT09ICJtcyIgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAicGIiIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgZVtjXS50eSA9PT0gInp6IiB8fAogICAgICAgICAgICAgICAgICAgICAgICAgIGVbY10udHkgPT09ICJvcCIKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoVCA9IHRbY10pLCAoVC5jbG9zZWQgPSAhMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoVCA9IFNoYXBlTW9kaWZpZXJzLmdldE1vZGlmaWVyKGVbY10udHkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVC5pbml0KHRoaXMsIGVbY10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodFtjXSA9IFQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlTW9kaWZpZXJzLnB1c2goVCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUC5wdXNoKFQpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogZVtjXS50eSA9PT0gInJwIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIChNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoVCA9IHRbY10pLCAoVC5jbG9zZWQgPSAhMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoVCA9IFNoYXBlTW9kaWZpZXJzLmdldE1vZGlmaWVyKGVbY10udHkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRbY10gPSBUKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVC5pbml0KHRoaXMsIGUsIGMsIHQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlTW9kaWZpZXJzLnB1c2goVCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvID0gITEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAucHVzaChUKSk7CiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkUHJvY2Vzc2VkRWxlbWVudChlW2NdLCBjICsgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgKHUgPSBiLmxlbmd0aCwgYyA9IDA7IGMgPCB1OyBjICs9IDEpIGJbY10uY2xvc2VkID0gITA7CiAgICAgICAgICAgICAgICBmb3IgKHUgPSBQLmxlbmd0aCwgYyA9IDA7IGMgPCB1OyBjICs9IDEpIFBbY10uY2xvc2VkID0gITA7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVySW5uZXJDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJNb2RpZmllcnMoKTsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy5zdHlsZXNMaXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMuc3R5bGVzTGlzdFtlXS5yZXNldCgpOwogICAgICAgICAgICAgICAgZm9yICh0aGlzLnJlbmRlclNoYXBlKCksIGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0W2VdLl9tZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlc0xpc3RbZV0ubXNFbGVtICYmCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0W2VdLm1zRWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICJkIiwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0W2VdLmQKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlc0xpc3RbZV0uZCA9ICJNMCAwIiArIHRoaXMuc3R5bGVzTGlzdFtlXS5kKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0eWxlc0xpc3RbZV0ucEVsZW0uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAiZCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzTGlzdFtlXS5kIHx8ICJNMCAwIgogICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVyU2hhcGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMuYW5pbWF0ZWRDb250ZW50cy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHI7CiAgICAgICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgICAgICAociA9IHRoaXMuYW5pbWF0ZWRDb250ZW50c1tlXSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSB8fCByLmVsZW1lbnQuX2lzQW5pbWF0ZWQpICYmCiAgICAgICAgICAgICAgICAgICAgci5kYXRhICE9PSAhMCAmJgogICAgICAgICAgICAgICAgICAgIHIuZm4oci5kYXRhLCByLmVsZW1lbnQsIHRoaXMuX2lzRmlyc3RGcmFtZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveUJhc2VFbGVtZW50KCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc0RhdGEgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXRlbXNEYXRhID0gbnVsbCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIExldHRlclByb3BzKGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgICAgICAgICAodGhpcy5vID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5zdyA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMuc2MgPSByKSwKICAgICAgICAgICAgICAgICh0aGlzLmZjID0gbiksCiAgICAgICAgICAgICAgICAodGhpcy5tID0gaSksCiAgICAgICAgICAgICAgICAodGhpcy5wID0gYSksCiAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gewogICAgICAgICAgICAgICAgICBvOiAhMCwKICAgICAgICAgICAgICAgICAgc3c6ICEhdCwKICAgICAgICAgICAgICAgICAgc2M6ICEhciwKICAgICAgICAgICAgICAgICAgZmM6ICEhbiwKICAgICAgICAgICAgICAgICAgbTogITAsCiAgICAgICAgICAgICAgICAgIHA6ICEwLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgTGV0dGVyUHJvcHMucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChlLCB0LCByLCBuLCBpLCBhKSB7CiAgICAgICAgICAgICAgKHRoaXMuX21kZi5vID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZi5zdyA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYuc2MgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5fbWRmLmZjID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZi5tID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZi5wID0gITEpOwogICAgICAgICAgICAgIHZhciBvID0gITE7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHRoaXMubyAhPT0gZSAmJiAoKHRoaXMubyA9IGUpLCAodGhpcy5fbWRmLm8gPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMuc3cgIT09IHQgJiYgKCh0aGlzLnN3ID0gdCksICh0aGlzLl9tZGYuc3cgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMuc2MgIT09IHIgJiYgKCh0aGlzLnNjID0gciksICh0aGlzLl9tZGYuc2MgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMuZmMgIT09IG4gJiYgKCh0aGlzLmZjID0gbiksICh0aGlzLl9tZGYuZmMgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMubSAhPT0gaSAmJiAoKHRoaXMubSA9IGkpLCAodGhpcy5fbWRmLm0gPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIGEubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAodGhpcy5wWzBdICE9PSBhWzBdIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMucFsxXSAhPT0gYVsxXSB8fAogICAgICAgICAgICAgICAgICB0aGlzLnBbNF0gIT09IGFbNF0gfHwKICAgICAgICAgICAgICAgICAgdGhpcy5wWzVdICE9PSBhWzVdIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMucFsxMl0gIT09IGFbMTJdIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMucFsxM10gIT09IGFbMTNdKSAmJgogICAgICAgICAgICAgICAgKCh0aGlzLnAgPSBhKSwgKHRoaXMuX21kZi5wID0gITApLCAobyA9ICEwKSksCiAgICAgICAgICAgICAgICBvCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gVGV4dFByb3BlcnR5KGUsIHQpIHsKICAgICAgICAgICAgICAodGhpcy5fZnJhbWVJZCA9IGluaXRpYWxEZWZhdWx0RnJhbWUpLAogICAgICAgICAgICAgICAgKHRoaXMucHYgPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy52ID0gIiIpLAogICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAgIHQuZCAmJiB0LmQuc2lkICYmICh0LmQgPSBlLmdsb2JhbERhdGEuc2xvdE1hbmFnZXIuZ2V0UHJvcCh0LmQpKSwKICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSB0aGlzLmVsZW0uY29tcCksCiAgICAgICAgICAgICAgICAodGhpcy5rZXlzSW5kZXggPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmNhblJlc2l6ZSA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLm1pbmltdW1Gb250U2l6ZSA9IDEpLAogICAgICAgICAgICAgICAgKHRoaXMuZWZmZWN0c1NlcXVlbmNlID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudERhdGEgPSB7CiAgICAgICAgICAgICAgICAgIGFzY2VudDogMCwKICAgICAgICAgICAgICAgICAgYm94V2lkdGg6IHRoaXMuZGVmYXVsdEJveFdpZHRoLAogICAgICAgICAgICAgICAgICBmOiAiIiwKICAgICAgICAgICAgICAgICAgZlN0eWxlOiAiIiwKICAgICAgICAgICAgICAgICAgZldlaWdodDogIiIsCiAgICAgICAgICAgICAgICAgIGZjOiAiIiwKICAgICAgICAgICAgICAgICAgajogIiIsCiAgICAgICAgICAgICAgICAgIGp1c3RpZnlPZmZzZXQ6ICIiLAogICAgICAgICAgICAgICAgICBsOiBbXSwKICAgICAgICAgICAgICAgICAgbGg6IDAsCiAgICAgICAgICAgICAgICAgIGxpbmVXaWR0aHM6IFtdLAogICAgICAgICAgICAgICAgICBsczogIiIsCiAgICAgICAgICAgICAgICAgIG9mOiAiIiwKICAgICAgICAgICAgICAgICAgczogIiIsCiAgICAgICAgICAgICAgICAgIHNjOiAiIiwKICAgICAgICAgICAgICAgICAgc3c6IDAsCiAgICAgICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgICAgIHRyOiAwLAogICAgICAgICAgICAgICAgICBzejogMCwKICAgICAgICAgICAgICAgICAgcHM6IG51bGwsCiAgICAgICAgICAgICAgICAgIGZpbGxDb2xvckFuaW06ICExLAogICAgICAgICAgICAgICAgICBzdHJva2VDb2xvckFuaW06ICExLAogICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aEFuaW06ICExLAogICAgICAgICAgICAgICAgICB5T2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgICBmaW5hbFNpemU6IDAsCiAgICAgICAgICAgICAgICAgIGZpbmFsVGV4dDogW10sCiAgICAgICAgICAgICAgICAgIGZpbmFsTGluZUhlaWdodDogMCwKICAgICAgICAgICAgICAgICAgX19jb21wbGV0ZTogITEsCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHRoaXMuY29weURhdGEodGhpcy5jdXJyZW50RGF0YSwgdGhpcy5kYXRhLmQua1swXS5zKSwKICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUHJvcGVydHkoKSB8fAogICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZVRleHREYXRhKHRoaXMuY3VycmVudERhdGEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmRlZmF1bHRCb3hXaWR0aCA9IFswLCAwXSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuY29weURhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgciBpbiB0KQogICAgICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgcikgJiYgKGVbcl0gPSB0W3JdKTsKICAgICAgICAgICAgICAgIHJldHVybiBlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNldEN1cnJlbnREYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGUuX19jb21wbGV0ZSB8fCB0aGlzLmNvbXBsZXRlVGV4dERhdGEoZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnREYXRhID0gZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnREYXRhLmJveFdpZHRoID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnREYXRhLmJveFdpZHRoIHx8IHRoaXMuZGVmYXVsdEJveFdpZHRoKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVGV4dFByb3BlcnR5LnByb3RvdHlwZS5zZWFyY2hQcm9wZXJ0eSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEtleWZyYW1lcygpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNlYXJjaEtleWZyYW1lcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICh0aGlzLmtmID0gdGhpcy5kYXRhLmQuay5sZW5ndGggPiAxKSwKICAgICAgICAgICAgICAgICAgdGhpcy5rZiAmJiB0aGlzLmFkZEVmZmVjdCh0aGlzLmdldEtleWZyYW1lVmFsdWUuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAgIHRoaXMua2YKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuYWRkRWZmZWN0ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLnB1c2goZSksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0VmFsdWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAhKAogICAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkID09PSB0aGlzLmZyYW1lSWQgfHwKICAgICAgICAgICAgICAgICAgICAgICF0aGlzLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgpICYmCiAgICAgICAgICAgICAgICAgICAgIWUKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudERhdGEudCA9IHRoaXMuZGF0YS5kLmtbdGhpcy5rZXlzSW5kZXhdLnMudDsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmN1cnJlbnREYXRhLAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmtleXNJbmRleDsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jaykgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudERhdGEodGhpcy5jdXJyZW50RGF0YSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMCksICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICAgICAgICAgIHZhciBuLAogICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgYSA9IGUgfHwgdGhpcy5kYXRhLmQua1t0aGlzLmtleXNJbmRleF0uczsKICAgICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkKICAgICAgICAgICAgICAgICAgICByICE9PSB0aGlzLmtleXNJbmRleAogICAgICAgICAgICAgICAgICAgICAgPyAoYSA9IHRoaXMuZWZmZWN0c1NlcXVlbmNlW25dKGEsIGEudCkpCiAgICAgICAgICAgICAgICAgICAgICA6IChhID0gdGhpcy5lZmZlY3RzU2VxdWVuY2Vbbl0odGhpcy5jdXJyZW50RGF0YSwgYS50KSk7CiAgICAgICAgICAgICAgICAgIHQgIT09IGEgJiYgdGhpcy5zZXRDdXJyZW50RGF0YShhKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy52ID0gdGhpcy5jdXJyZW50RGF0YSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMucHYgPSB0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmdldEtleWZyYW1lVmFsdWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMuZGF0YS5kLmssCiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLmVsZW0uY29tcC5yZW5kZXJlZEZyYW1lLAogICAgICAgICAgICAgICAgICByID0gMCwKICAgICAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgICByIDw9IG4gLSAxICYmICEociA9PT0gbiAtIDEgfHwgZVtyICsgMV0udCA+IHQpOwoKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdGhpcy5rZXlzSW5kZXggIT09IHIgJiYgKHRoaXMua2V5c0luZGV4ID0gciksCiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5kLmtbdGhpcy5rZXlzSW5kZXhdLnMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuYnVpbGRGaW5hbFRleHQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdmFyIHQgPSBbXSwgciA9IDAsIG4gPSBlLmxlbmd0aCwgaSwgYSwgbyA9ICExLCBsID0gITEsIGMgPSAiIjsKICAgICAgICAgICAgICAgICAgciA8IG47CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAobyA9IGwpLAogICAgICAgICAgICAgICAgICAgIChsID0gITEpLAogICAgICAgICAgICAgICAgICAgIChpID0gZS5jaGFyQ29kZUF0KHIpKSwKICAgICAgICAgICAgICAgICAgICAoYyA9IGUuY2hhckF0KHIpKSwKICAgICAgICAgICAgICAgICAgICBGb250TWFuYWdlci5pc0NvbWJpbmVkQ2hhcmFjdGVyKGkpCiAgICAgICAgICAgICAgICAgICAgICA/IChvID0gITApCiAgICAgICAgICAgICAgICAgICAgICA6IGkgPj0gNTUyOTYgJiYgaSA8PSA1NjMxOQogICAgICAgICAgICAgICAgICAgICAgICA/IEZvbnRNYW5hZ2VyLmlzUmVnaW9uYWxGbGFnKGUsIHIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoYyA9IGUuc3Vic3RyKHIsIDE0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoYSA9IGUuY2hhckNvZGVBdChyICsgMSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA+PSA1NjMyMCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA8PSA1NzM0MyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEZvbnRNYW5hZ2VyLmlzTW9kaWZpZXIoaSwgYSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGMgPSBlLnN1YnN0cihyLCAyKSksIChvID0gITApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEZvbnRNYW5hZ2VyLmlzRmxhZ0Vtb2ppKGUuc3Vic3RyKHIsIDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGMgPSBlLnN1YnN0cihyLCA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChjID0gZS5zdWJzdHIociwgMikpKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBpID4gNTYzMTkKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoYSA9IGUuY2hhckNvZGVBdChyICsgMSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udE1hbmFnZXIuaXNWYXJpYXRpb25TZWxlY3RvcihpKSAmJiAobyA9ICEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IEZvbnRNYW5hZ2VyLmlzWmVyb1dpZHRoSm9pbmVyKGkpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChvID0gITApLCAobCA9ICEwKSksCiAgICAgICAgICAgICAgICAgICAgbyA/ICgodFt0Lmxlbmd0aCAtIDFdICs9IGMpLCAobyA9ICExKSkgOiB0LnB1c2goYyksCiAgICAgICAgICAgICAgICAgICAgKHIgKz0gYy5sZW5ndGgpOwogICAgICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuY29tcGxldGVUZXh0RGF0YSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBlLl9fY29tcGxldGUgPSAhMDsKICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZm9udE1hbmFnZXIsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRhdGEsCiAgICAgICAgICAgICAgICAgIG4gPSBbXSwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgICAgbCA9IDAsCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUgPSByLm0uZywKICAgICAgICAgICAgICAgICAgZCA9IDAsCiAgICAgICAgICAgICAgICAgIEUgPSAwLAogICAgICAgICAgICAgICAgICBiID0gMCwKICAgICAgICAgICAgICAgICAgUCA9IFtdLAogICAgICAgICAgICAgICAgICBSID0gMCwKICAgICAgICAgICAgICAgICAgVCA9IDAsCiAgICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICAgIHgsCiAgICAgICAgICAgICAgICAgIGsgPSB0LmdldEZvbnRCeU5hbWUoZS5mKSwKICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgQSA9IDAsCiAgICAgICAgICAgICAgICAgIE8gPSBnZXRGb250UHJvcGVydGllcyhrKTsKICAgICAgICAgICAgICAgIChlLmZXZWlnaHQgPSBPLndlaWdodCksCiAgICAgICAgICAgICAgICAgIChlLmZTdHlsZSA9IE8uc3R5bGUpLAogICAgICAgICAgICAgICAgICAoZS5maW5hbFNpemUgPSBlLnMpLAogICAgICAgICAgICAgICAgICAoZS5maW5hbFRleHQgPSB0aGlzLmJ1aWxkRmluYWxUZXh0KGUudCkpLAogICAgICAgICAgICAgICAgICAoYSA9IGUuZmluYWxUZXh0Lmxlbmd0aCksCiAgICAgICAgICAgICAgICAgIChlLmZpbmFsTGluZUhlaWdodCA9IGUubGgpOwogICAgICAgICAgICAgICAgdmFyIEYgPSAoZS50ciAvIDFlMykgKiBlLmZpbmFsU2l6ZSwKICAgICAgICAgICAgICAgICAgRDsKICAgICAgICAgICAgICAgIGlmIChlLnN6KQogICAgICAgICAgICAgICAgICBmb3IgKHZhciBIID0gITAsICQgPSBlLnN6WzBdLCBxID0gZS5zelsxXSwgSiwgSzsgSDspIHsKICAgICAgICAgICAgICAgICAgICAoSyA9IHRoaXMuYnVpbGRGaW5hbFRleHQoZS50KSksCiAgICAgICAgICAgICAgICAgICAgICAoSiA9IDApLAogICAgICAgICAgICAgICAgICAgICAgKFIgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgIChhID0gSy5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgKEYgPSAoZS50ciAvIDFlMykgKiBlLmZpbmFsU2l6ZSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGVlID0gLTE7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGE7IGkgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChEID0gS1tpXS5jaGFyQ29kZUF0KDApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAgIEtbaV0gPT09ICIgIgogICAgICAgICAgICAgICAgICAgICAgICAgID8gKGVlID0gaSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChEID09PSAxMyB8fCBEID09PSAzKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICgoUiA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSiArPSBlLmZpbmFsTGluZUhlaWdodCB8fCBlLmZpbmFsU2l6ZSAqIDEuMikpLAogICAgICAgICAgICAgICAgICAgICAgICB0LmNoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKFMgPSB0LmdldENoYXJEYXRhKEtbaV0sIGsuZlN0eWxlLCBrLmZGYW1pbHkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBID0gbyA/IDAgOiAoUy53ICogZS5maW5hbFNpemUpIC8gMTAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChBID0gdC5tZWFzdXJlVGV4dChLW2ldLCBlLmYsIGUuZmluYWxTaXplKSksCiAgICAgICAgICAgICAgICAgICAgICAgIFIgKyBBID4gJCAmJiBLW2ldICE9PSAiICIKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChlZSA9PT0gLTEgPyAoYSArPSAxKSA6IChpID0gZWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEogKz0gZS5maW5hbExpbmVIZWlnaHQgfHwgZS5maW5hbFNpemUgKiAxLjIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSy5zcGxpY2UoaSwgZWUgPT09IGkgPyAxIDogMCwgIlxyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWUgPSAtMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9IDApKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKChSICs9IEEpLCAoUiArPSBGKSk7CiAgICAgICAgICAgICAgICAgICAgKEogKz0gKGsuYXNjZW50ICogZS5maW5hbFNpemUpIC8gMTAwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVzaXplICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGUuZmluYWxTaXplID4gdGhpcy5taW5pbXVtRm9udFNpemUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgcSA8IEoKICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGUuZmluYWxTaXplIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChlLmZpbmFsTGluZUhlaWdodCA9IChlLmZpbmFsU2l6ZSAqIGUubGgpIC8gZS5zKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoKGUuZmluYWxUZXh0ID0gSyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgPSBlLmZpbmFsVGV4dC5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChIID0gITEpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKFIgPSAtRiksIChBID0gMCk7CiAgICAgICAgICAgICAgICB2YXIgbGUgPSAwLAogICAgICAgICAgICAgICAgICByZTsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhOyBpICs9IDEpCiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoKG8gPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAocmUgPSBlLmZpbmFsVGV4dFtpXSksCiAgICAgICAgICAgICAgICAgICAgICAoRCA9IHJlLmNoYXJDb2RlQXQoMCkpLAogICAgICAgICAgICAgICAgICAgICAgRCA9PT0gMTMgfHwgRCA9PT0gMwogICAgICAgICAgICAgICAgICAgICAgICA/ICgobGUgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBQLnB1c2goUiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBSID4gVCA/IFIgOiBUKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9IC0yICogRiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGMgPSAiIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKz0gMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKGMgPSByZSksCiAgICAgICAgICAgICAgICAgICAgICB0LmNoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgID8gKChTID0gdC5nZXRDaGFyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgICByZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBrLmZTdHlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldEZvbnRCeU5hbWUoZS5mKS5mRmFtaWx5CiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChBID0gbyA/IDAgOiAoUy53ICogZS5maW5hbFNpemUpIC8gMTAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoQSA9IHQubWVhc3VyZVRleHQoYywgZS5mLCBlLmZpbmFsU2l6ZSkpLAogICAgICAgICAgICAgICAgICAgICAgcmUgPT09ICIgIiA/IChsZSArPSBBICsgRikgOiAoKFIgKz0gQSArIEYgKyBsZSksIChsZSA9IDApKSwKICAgICAgICAgICAgICAgICAgICAgIG4ucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGw6IEEsCiAgICAgICAgICAgICAgICAgICAgICAgIGFuOiBBLAogICAgICAgICAgICAgICAgICAgICAgICBhZGQ6IGQsCiAgICAgICAgICAgICAgICAgICAgICAgIG46IG8sCiAgICAgICAgICAgICAgICAgICAgICAgIGFuSW5kZXhlczogW10sCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbDogYywKICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogYiwKICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0b3JKdXN0aWZ5T2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICB1ID09IDIpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIGlmICgoKGQgKz0gQSksIGMgPT09ICIiIHx8IGMgPT09ICIgIiB8fCBpID09PSBhIC0gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoKGMgPT09ICIiIHx8IGMgPT09ICIgIikgJiYgKGQgLT0gQSk7IEUgPD0gaTspCiAgICAgICAgICAgICAgICAgICAgICAgIChuW0VdLmFuID0gZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uaW5kID0gbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uZXh0cmEgPSBBKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKTsKICAgICAgICAgICAgICAgICAgICAgIChsICs9IDEpLCAoZCA9IDApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1ID09IDMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKChkICs9IEEpLCBjID09PSAiIiB8fCBpID09PSBhIC0gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoYyA9PT0gIiIgJiYgKGQgLT0gQSk7IEUgPD0gaTspCiAgICAgICAgICAgICAgICAgICAgICAgIChuW0VdLmFuID0gZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uaW5kID0gbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uZXh0cmEgPSBBKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKTsKICAgICAgICAgICAgICAgICAgICAgIChkID0gMCksIChsICs9IDEpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIChuW2xdLmluZCA9IGwpLCAobltsXS5leHRyYSA9IDApLCAobCArPSAxKTsKICAgICAgICAgICAgICAgIGlmICgoKGUubCA9IG4pLCAoVCA9IFIgPiBUID8gUiA6IFQpLCBQLnB1c2goUiksIGUuc3opKQogICAgICAgICAgICAgICAgICAoZS5ib3hXaWR0aCA9IGUuc3pbMF0pLCAoZS5qdXN0aWZ5T2Zmc2V0ID0gMCk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKChlLmJveFdpZHRoID0gVCksIGUuaikpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgPSAtZS5ib3hXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgIGUuanVzdGlmeU9mZnNldCA9IC1lLmJveFdpZHRoIC8gMjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgPSAwOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlLmxpbmVXaWR0aHMgPSBQOwogICAgICAgICAgICAgICAgdmFyIEIgPSByLmEsCiAgICAgICAgICAgICAgICAgIHosCiAgICAgICAgICAgICAgICAgIE47CiAgICAgICAgICAgICAgICB4ID0gQi5sZW5ndGg7CiAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgICAgWSA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChNID0gMDsgTSA8IHg7IE0gKz0gMSkgewogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIHogPSBCW01dLAogICAgICAgICAgICAgICAgICAgIHouYS5zYyAmJiAoZS5zdHJva2VDb2xvckFuaW0gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgei5hLnN3ICYmIChlLnN0cm9rZVdpZHRoQW5pbSA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAoei5hLmZjIHx8IHouYS5maCB8fCB6LmEuZnMgfHwgei5hLmZiKSAmJgogICAgICAgICAgICAgICAgICAgIChlLmZpbGxDb2xvckFuaW0gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgUSA9IDAsCiAgICAgICAgICAgICAgICAgICAgViA9IHoucy5iLAogICAgICAgICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgICAgICAgIGkgPCBhOwogICAgICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKE4gPSBuW2ldKSwKICAgICAgICAgICAgICAgICAgICAgIChOLmFuSW5kZXhlc1tNXSA9IFEpLAogICAgICAgICAgICAgICAgICAgICAgKChWID09IDEgJiYgTi52YWwgIT09ICIiKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoViA9PSAyICYmIE4udmFsICE9PSAiIiAmJiBOLnZhbCAhPT0gIiAiKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoViA9PSAzICYmIChOLm4gfHwgTi52YWwgPT0gIiAiIHx8IGkgPT0gYSAtIDEpKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoViA9PSA0ICYmIChOLm4gfHwgaSA9PSBhIC0gMSkpKSAmJgogICAgICAgICAgICAgICAgICAgICAgKHoucy5ybiA9PT0gMSAmJiBZLnB1c2goUSksIChRICs9IDEpKTsKICAgICAgICAgICAgICAgICAgci5hW01dLnMudG90YWxDaGFycyA9IFE7CiAgICAgICAgICAgICAgICAgIHZhciBoZSA9IC0xLAogICAgICAgICAgICAgICAgICAgIHllOwogICAgICAgICAgICAgICAgICBpZiAoei5zLnJuID09PSAxKQogICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhOyBpICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAoTiA9IG5baV0pLAogICAgICAgICAgICAgICAgICAgICAgICBoZSAhPSBOLmFuSW5kZXhlc1tNXSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKGhlID0gTi5hbkluZGV4ZXNbTV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICh5ZSA9IFkuc3BsaWNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogWS5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgIClbMF0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgKE4uYW5JbmRleGVzW01dID0geWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKGUueU9mZnNldCA9IGUuZmluYWxMaW5lSGVpZ2h0IHx8IGUuZmluYWxTaXplICogMS4yKSwKICAgICAgICAgICAgICAgICAgKGUubHMgPSBlLmxzIHx8IDApLAogICAgICAgICAgICAgICAgICAoZS5hc2NlbnQgPSAoay5hc2NlbnQgKiBlLmZpbmFsU2l6ZSkgLyAxMDApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnVwZGF0ZURvY3VtZW50RGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB0ID0gdCA9PT0gdm9pZCAwID8gdGhpcy5rZXlzSW5kZXggOiB0OwogICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmNvcHlEYXRhKHt9LCB0aGlzLmRhdGEuZC5rW3RdLnMpOwogICAgICAgICAgICAgICAgKHIgPSB0aGlzLmNvcHlEYXRhKHIsIGUpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YS5kLmtbdF0ucyA9IHIpLAogICAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlKHQpLAogICAgICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnREYXRhKHIpLAogICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnJlY2FsY3VsYXRlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5kYXRhLmQua1tlXS5zOwogICAgICAgICAgICAgICAgKHQuX19jb21wbGV0ZSA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMua2V5c0luZGV4ID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWUodCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuY2FuUmVzaXplRm9udCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5jYW5SZXNpemUgPSBlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZSh0aGlzLmtleXNJbmRleCksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuc2V0TWluaW11bUZvbnRTaXplID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICh0aGlzLm1pbmltdW1Gb250U2l6ZSA9IE1hdGguZmxvb3IoZSkgfHwgMSksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGUodGhpcy5rZXlzSW5kZXgpLAogICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgVGV4dFNlbGVjdG9yUHJvcCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBNYXRoLm1heCwKICAgICAgICAgICAgICAgIHQgPSBNYXRoLm1pbiwKICAgICAgICAgICAgICAgIHIgPSBNYXRoLmZsb29yOwogICAgICAgICAgICAgIGZ1bmN0aW9uIG4oYSwgbykgewogICAgICAgICAgICAgICAgKHRoaXMuX2N1cnJlbnRUZXh0TGVuZ3RoID0gLTEpLAogICAgICAgICAgICAgICAgICAodGhpcy5rID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gbyksCiAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBhKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuY29tcCA9IGEuY29tcCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsUyA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5maW5hbEUgPSAwKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGEpLAogICAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgICBvLnMgfHwgeyBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICJlIiBpbiBvCiAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5lID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoYSwgby5lLCAwLCAwLCB0aGlzKSkKICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmUgPSB7IHY6IDEwMCB9KSwKICAgICAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgICAgby5vIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAodGhpcy54ZSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgICAgby54ZSB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubmUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICAgIG8ubmUgfHwgeyBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNtID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgICBvLnNtIHx8IHsgazogMTAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmEgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChhLCBvLmEsIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwgdGhpcy5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAobi5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICBnZXRNdWx0OiBmdW5jdGlvbiAobykgewogICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGV4dExlbmd0aCAhPT0KICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW0udGV4dFByb3BlcnR5LmN1cnJlbnREYXRhLmwubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgICAgICB2YXIgbCA9IDAsCiAgICAgICAgICAgICAgICAgICAgYyA9IDAsCiAgICAgICAgICAgICAgICAgICAgdSA9IDEsCiAgICAgICAgICAgICAgICAgICAgZCA9IDE7CiAgICAgICAgICAgICAgICAgIHRoaXMubmUudiA+IDAKICAgICAgICAgICAgICAgICAgICA/IChsID0gdGhpcy5uZS52IC8gMTAwKQogICAgICAgICAgICAgICAgICAgIDogKGMgPSAtdGhpcy5uZS52IC8gMTAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnhlLnYgPiAwCiAgICAgICAgICAgICAgICAgICAgICA/ICh1ID0gMSAtIHRoaXMueGUudiAvIDEwMCkKICAgICAgICAgICAgICAgICAgICAgIDogKGQgPSAxICsgdGhpcy54ZS52IC8gMTAwKTsKICAgICAgICAgICAgICAgICAgdmFyIEUgPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZyhsLCBjLCB1LCBkKS5nZXQsCiAgICAgICAgICAgICAgICAgICAgYiA9IDAsCiAgICAgICAgICAgICAgICAgICAgUCA9IHRoaXMuZmluYWxTLAogICAgICAgICAgICAgICAgICAgIFIgPSB0aGlzLmZpbmFsRSwKICAgICAgICAgICAgICAgICAgICBUID0gdGhpcy5kYXRhLnNoOwogICAgICAgICAgICAgICAgICBpZiAoVCA9PT0gMikKICAgICAgICAgICAgICAgICAgICBSID09PSBQCiAgICAgICAgICAgICAgICAgICAgICA/IChiID0gbyA+PSBSID8gMSA6IDApCiAgICAgICAgICAgICAgICAgICAgICA6IChiID0gZSgwLCB0KDAuNSAvIChSIC0gUCkgKyAobyAtIFApIC8gKFIgLSBQKSwgMSkpKSwKICAgICAgICAgICAgICAgICAgICAgIChiID0gRShiKSk7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFQgPT09IDMpCiAgICAgICAgICAgICAgICAgICAgUiA9PT0gUAogICAgICAgICAgICAgICAgICAgICAgPyAoYiA9IG8gPj0gUiA/IDAgOiAxKQogICAgICAgICAgICAgICAgICAgICAgOiAoYiA9IDEgLSBlKDAsIHQoMC41IC8gKFIgLSBQKSArIChvIC0gUCkgLyAoUiAtIFApLCAxKSkpLAogICAgICAgICAgICAgICAgICAgICAgKGIgPSBFKGIpKTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVCA9PT0gNCkKICAgICAgICAgICAgICAgICAgICBSID09PSBQCiAgICAgICAgICAgICAgICAgICAgICA/IChiID0gMCkKICAgICAgICAgICAgICAgICAgICAgIDogKChiID0gZSgwLCB0KDAuNSAvIChSIC0gUCkgKyAobyAtIFApIC8gKFIgLSBQKSwgMSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgYiA8IDAuNSA/IChiICo9IDIpIDogKGIgPSAxIC0gMiAqIChiIC0gMC41KSkpLAogICAgICAgICAgICAgICAgICAgICAgKGIgPSBFKGIpKTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVCA9PT0gNSkgewogICAgICAgICAgICAgICAgICAgIGlmIChSID09PSBQKSBiID0gMDsKICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBNID0gUiAtIFA7CiAgICAgICAgICAgICAgICAgICAgICBvID0gdChlKDAsIG8gKyAwLjUgLSBQKSwgUiAtIFApOwogICAgICAgICAgICAgICAgICAgICAgdmFyIHggPSAtTSAvIDIgKyBvLAogICAgICAgICAgICAgICAgICAgICAgICBrID0gTSAvIDI7CiAgICAgICAgICAgICAgICAgICAgICBiID0gTWF0aC5zcXJ0KDEgLSAoeCAqIHgpIC8gKGsgKiBrKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGIgPSBFKGIpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBUID09PSA2CiAgICAgICAgICAgICAgICAgICAgICA/IChSID09PSBQCiAgICAgICAgICAgICAgICAgICAgICAgID8gKGIgPSAwKQogICAgICAgICAgICAgICAgICAgICAgICA6ICgobyA9IHQoZSgwLCBvICsgMC41IC0gUCksIFIgLSBQKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmNvcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLlBJICsgKE1hdGguUEkgKiAyICogbykgLyAoUiAtIFApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGIgPSBFKGIpKSkKICAgICAgICAgICAgICAgICAgICAgIDogKG8gPj0gcihQKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAobyAtIFAgPCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoYiA9IGUoMCwgdCh0KFIsIDEpIC0gKFAgLSBvKSwgMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKGIgPSBlKDAsIHQoUiAtIG8sIDEpKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAoYiA9IEUoYikpKTsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc20udiAhPT0gMTAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLnNtLnYgKiAwLjAxOwogICAgICAgICAgICAgICAgICAgIFMgPT09IDAgJiYgKFMgPSAxZS04KTsKICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IDAuNSAtIFMgKiAwLjU7CiAgICAgICAgICAgICAgICAgICAgYiA8IEEgPyAoYiA9IDApIDogKChiID0gKGIgLSBBKSAvIFMpLCBiID4gMSAmJiAoYiA9IDEpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gYiAqIHRoaXMuYS52OwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGdldFZhbHVlOiBmdW5jdGlvbiAobykgewogICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSBvIHx8IHRoaXMuX21kZiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2N1cnJlbnRUZXh0TGVuZ3RoID0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS50ZXh0UHJvcGVydHkuY3VycmVudERhdGEubC5sZW5ndGggfHwgMCksCiAgICAgICAgICAgICAgICAgICAgbyAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5yID09PSAyICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZS52ID0gdGhpcy5fY3VycmVudFRleHRMZW5ndGgpOwogICAgICAgICAgICAgICAgICB2YXIgbCA9IHRoaXMuZGF0YS5yID09PSAyID8gMSA6IDEwMCAvIHRoaXMuZGF0YS50b3RhbENoYXJzLAogICAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLm8udiAvIGwsCiAgICAgICAgICAgICAgICAgICAgdSA9IHRoaXMucy52IC8gbCArIGMsCiAgICAgICAgICAgICAgICAgICAgZCA9IHRoaXMuZS52IC8gbCArIGM7CiAgICAgICAgICAgICAgICAgIGlmICh1ID4gZCkgewogICAgICAgICAgICAgICAgICAgIHZhciBFID0gdTsKICAgICAgICAgICAgICAgICAgICAodSA9IGQpLCAoZCA9IEUpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsUyA9IHUpLCAodGhpcy5maW5hbEUgPSBkKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIG4pOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGkoYSwgbywgbCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBuKGEsIG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4geyBnZXRUZXh0U2VsZWN0b3JQcm9wOiBpIH07CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFRleHRBbmltYXRvckRhdGFQcm9wZXJ0eShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSB7IHByb3BUeXBlOiAhMSB9LAogICAgICAgICAgICAgICAgaSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wLAogICAgICAgICAgICAgICAgYSA9IHQuYTsKICAgICAgICAgICAgICAodGhpcy5hID0gewogICAgICAgICAgICAgICAgcjogYS5yID8gaShlLCBhLnIsIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgcng6IGEucnggPyBpKGUsIGEucngsIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgcnk6IGEucnkgPyBpKGUsIGEucnksIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgc2s6IGEuc2sgPyBpKGUsIGEuc2ssIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgc2E6IGEuc2EgPyBpKGUsIGEuc2EsIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgczogYS5zID8gaShlLCBhLnMsIDEsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgICAgIGE6IGEuYSA/IGkoZSwgYS5hLCAxLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgICBvOiBhLm8gPyBpKGUsIGEubywgMCwgMC4wMSwgcikgOiBuLAogICAgICAgICAgICAgICAgcDogYS5wID8gaShlLCBhLnAsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgICAgIHN3OiBhLnN3ID8gaShlLCBhLnN3LCAwLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgICBzYzogYS5zYyA/IGkoZSwgYS5zYywgMSwgMCwgcikgOiBuLAogICAgICAgICAgICAgICAgZmM6IGEuZmMgPyBpKGUsIGEuZmMsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgICAgIGZoOiBhLmZoID8gaShlLCBhLmZoLCAwLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgICBmczogYS5mcyA/IGkoZSwgYS5mcywgMCwgMC4wMSwgcikgOiBuLAogICAgICAgICAgICAgICAgZmI6IGEuZmIgPyBpKGUsIGEuZmIsIDAsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgICAgIHQ6IGEudCA/IGkoZSwgYS50LCAwLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAodGhpcy5zID0gVGV4dFNlbGVjdG9yUHJvcC5nZXRUZXh0U2VsZWN0b3JQcm9wKGUsIHQucywgcikpLAogICAgICAgICAgICAgICAgKHRoaXMucy50ID0gdC5zLnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFRleHRBbmltYXRvclByb3BlcnR5KGUsIHQsIHIpIHsKICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuX2hhc01hc2tlZFBhdGggPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5fZnJhbWVJZCA9IC0xKSwKICAgICAgICAgICAgICAgICh0aGlzLl90ZXh0RGF0YSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMuX3JlbmRlclR5cGUgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLl9lbGVtID0gciksCiAgICAgICAgICAgICAgICAodGhpcy5fYW5pbWF0b3JzRGF0YSA9IGNyZWF0ZVNpemVkQXJyYXkoCiAgICAgICAgICAgICAgICAgIHRoaXMuX3RleHREYXRhLmEubGVuZ3RoCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICh0aGlzLl9wYXRoRGF0YSA9IHt9KSwKICAgICAgICAgICAgICAgICh0aGlzLl9tb3JlT3B0aW9ucyA9IHsgYWxpZ25tZW50OiB7fSB9KSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVkTGV0dGVycyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyA9ICExKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoVGV4dEFuaW1hdG9yUHJvcGVydHkucHJvdG90eXBlLnNlYXJjaFByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5fdGV4dERhdGEuYS5sZW5ndGgsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wOwogICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAociA9IHRoaXMuX3RleHREYXRhLmFbZV0pLAogICAgICAgICAgICAgICAgICAodGhpcy5fYW5pbWF0b3JzRGF0YVtlXSA9IG5ldyBUZXh0QW5pbWF0b3JEYXRhUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbSwKICAgICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgdGhpcy5fdGV4dERhdGEucCAmJiAibSIgaW4gdGhpcy5fdGV4dERhdGEucAogICAgICAgICAgICAgICAgPyAoKHRoaXMuX3BhdGhEYXRhID0gewogICAgICAgICAgICAgICAgICBhOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAuYSwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICAgIGY6IG4odGhpcy5fZWxlbSwgdGhpcy5fdGV4dERhdGEucC5mLCAwLCAwLCB0aGlzKSwKICAgICAgICAgICAgICAgICAgbDogbih0aGlzLl9lbGVtLCB0aGlzLl90ZXh0RGF0YS5wLmwsIDAsIDAsIHRoaXMpLAogICAgICAgICAgICAgICAgICByOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAuciwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICAgIHA6IG4odGhpcy5fZWxlbSwgdGhpcy5fdGV4dERhdGEucC5wLCAwLCAwLCB0aGlzKSwKICAgICAgICAgICAgICAgICAgbTogdGhpcy5fZWxlbS5tYXNrTWFuYWdlci5nZXRNYXNrUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGV4dERhdGEucC5tCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2hhc01hc2tlZFBhdGggPSAhMCkpCiAgICAgICAgICAgICAgICA6ICh0aGlzLl9oYXNNYXNrZWRQYXRoID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21vcmVPcHRpb25zLmFsaWdubWVudCA9IG4oCiAgICAgICAgICAgICAgICAgIHRoaXMuX2VsZW0sCiAgICAgICAgICAgICAgICAgIHRoaXMuX3RleHREYXRhLm0uYSwKICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0QW5pbWF0b3JQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0TWVhc3VyZXMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnID0gdCksCiAgICAgICAgICAgICAgICAgICAgISgKICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9tZGYgJiYKICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9pc0ZpcnN0RnJhbWUgJiYKICAgICAgICAgICAgICAgICAgICAgICF0ICYmCiAgICAgICAgICAgICAgICAgICAgICAoIXRoaXMuX2hhc01hc2tlZFBhdGggfHwgIXRoaXMuX3BhdGhEYXRhLm0uX21kZikKICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuX2lzRmlyc3RGcmFtZSA9ICExOwogICAgICAgICAgICAgICAgICB2YXIgciA9IHRoaXMuX21vcmVPcHRpb25zLmFsaWdubWVudC52LAogICAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLl9hbmltYXRvcnNEYXRhLAogICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLl90ZXh0RGF0YSwKICAgICAgICAgICAgICAgICAgICBhID0gdGhpcy5tSGVscGVyLAogICAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLl9yZW5kZXJUeXBlLAogICAgICAgICAgICAgICAgICAgIGwgPSB0aGlzLnJlbmRlcmVkTGV0dGVycy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICAgICAgRSwKICAgICAgICAgICAgICAgICAgICBiID0gZS5sLAogICAgICAgICAgICAgICAgICAgIFAsCiAgICAgICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgICAgICBULAogICAgICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICAgICAgeCwKICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICAgICAgQSwKICAgICAgICAgICAgICAgICAgICBPLAogICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICQsCiAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICBKOwogICAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFzTWFza2VkUGF0aCkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgoSiA9IHRoaXMuX3BhdGhEYXRhLm0pLAogICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5fcGF0aERhdGEubiB8fCB0aGlzLl9wYXRoRGF0YS5fbWRmKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIEsgPSBKLnY7CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRGF0YS5yLnYgJiYgKEsgPSBLLnJldmVyc2UoKSksCiAgICAgICAgICAgICAgICAgICAgICAgIChQID0geyB0TGVuZ3RoOiAwLCBzZWdtZW50czogW10gfSksCiAgICAgICAgICAgICAgICAgICAgICAgIChFID0gSy5fbGVuZ3RoIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZWU7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKEggPSAwLCBkID0gMDsgZCA8IEU7IGQgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgKGVlID0gYmV6LmJ1aWxkQmV6aWVyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgICBLLnZbZF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgSy52W2QgKyAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbSy5vW2RdWzBdIC0gSy52W2RdWzBdLCBLLm9bZF1bMV0gLSBLLnZbZF1bMV1dLAogICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEsuaVtkICsgMV1bMF0gLSBLLnZbZCArIDFdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSy5pW2QgKyAxXVsxXSAtIEsudltkICsgMV1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUC50TGVuZ3RoICs9IGVlLnNlZ21lbnRMZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuc2VnbWVudHMucHVzaChlZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEggKz0gZWUuc2VnbWVudExlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgICAoZCA9IEUpLAogICAgICAgICAgICAgICAgICAgICAgICBKLnYuYyAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKGVlID0gYmV6LmJ1aWxkQmV6aWVyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgICBLLnZbZF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgSy52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFtLLm9bZF1bMF0gLSBLLnZbZF1bMF0sIEsub1tkXVsxXSAtIEsudltkXVsxXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgW0suaVswXVswXSAtIEsudlswXVswXSwgSy5pWzBdWzFdIC0gSy52WzBdWzFdXQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUC50TGVuZ3RoICs9IGVlLnNlZ21lbnRMZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuc2VnbWVudHMucHVzaChlZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEggKz0gZWUuc2VnbWVudExlbmd0aCkpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fcGF0aERhdGEucGkgPSBQKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKChQID0gdGhpcy5fcGF0aERhdGEucGkpLAogICAgICAgICAgICAgICAgICAgICAgICAoUiA9IHRoaXMuX3BhdGhEYXRhLmYudiksCiAgICAgICAgICAgICAgICAgICAgICAgIChTID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgIChrID0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgIChNID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgICh4ID0gITApLAogICAgICAgICAgICAgICAgICAgICAgICAoRiA9IFAuc2VnbWVudHMpLAogICAgICAgICAgICAgICAgICAgICAgICBSIDwgMCAmJiBKLnYuYykKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBQLnRMZW5ndGggPCBNYXRoLmFicyhSKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoUiA9IC1NYXRoLmFicyhSKSAlIFAudExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgIFMgPSBGLmxlbmd0aCAtIDEsCiAgICAgICAgICAgICAgICAgICAgICAgIE8gPSBGW1NdLnBvaW50cywKICAgICAgICAgICAgICAgICAgICAgICAgayA9IE8ubGVuZ3RoIC0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgUiA8IDA7CgogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAoUiArPSBPW2tdLnBhcnRpYWxMZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChrIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGsgPCAwICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChTIC09IDEpLCAoTyA9IEZbU10ucG9pbnRzKSwgKGsgPSBPLmxlbmd0aCAtIDEpKTsKICAgICAgICAgICAgICAgICAgICAoTyA9IEZbU10ucG9pbnRzKSwKICAgICAgICAgICAgICAgICAgICAgIChBID0gT1trIC0gMV0pLAogICAgICAgICAgICAgICAgICAgICAgKFQgPSBPW2tdKSwKICAgICAgICAgICAgICAgICAgICAgIChEID0gVC5wYXJ0aWFsTGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAoRSA9IGIubGVuZ3RoKSwgKGMgPSAwKSwgKHUgPSAwKTsKICAgICAgICAgICAgICAgICAgdmFyIGxlID0gZS5maW5hbFNpemUgKiAxLjIgKiAwLjcxNCwKICAgICAgICAgICAgICAgICAgICByZSA9ICEwLAogICAgICAgICAgICAgICAgICAgIEIsCiAgICAgICAgICAgICAgICAgICAgeiwKICAgICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICAgIFYsCiAgICAgICAgICAgICAgICAgICAgUTsKICAgICAgICAgICAgICAgICAgViA9IG4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICB2YXIgWSwKICAgICAgICAgICAgICAgICAgICBoZSA9IC0xLAogICAgICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgICAgIHZlLAogICAgICAgICAgICAgICAgICAgIFBlLAogICAgICAgICAgICAgICAgICAgIENlID0gUiwKICAgICAgICAgICAgICAgICAgICBpZSA9IFMsCiAgICAgICAgICAgICAgICAgICAgbWUgPSBrLAogICAgICAgICAgICAgICAgICAgIHBlID0gLTEsCiAgICAgICAgICAgICAgICAgICAgZ2UsCiAgICAgICAgICAgICAgICAgICAgRWUsCiAgICAgICAgICAgICAgICAgICAgU2UsCiAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICBHLAogICAgICAgICAgICAgICAgICAgIHRlLAogICAgICAgICAgICAgICAgICAgIGFlLAogICAgICAgICAgICAgICAgICAgIHNlLAogICAgICAgICAgICAgICAgICAgIGNlID0gIiIsCiAgICAgICAgICAgICAgICAgICAgZGUgPSB0aGlzLmRlZmF1bHRQcm9wc0FycmF5LAogICAgICAgICAgICAgICAgICAgIGo7CiAgICAgICAgICAgICAgICAgIGlmIChlLmogPT09IDIgfHwgZS5qID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIFUgPSAwLAogICAgICAgICAgICAgICAgICAgICAgWCA9IDAsCiAgICAgICAgICAgICAgICAgICAgICBvZSA9IGUuaiA9PT0gMiA/IC0wLjUgOiAtMSwKICAgICAgICAgICAgICAgICAgICAgIGZlID0gMCwKICAgICAgICAgICAgICAgICAgICAgIHVlID0gITA7CiAgICAgICAgICAgICAgICAgICAgZm9yIChkID0gMDsgZCA8IEU7IGQgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIGlmIChiW2RdLm4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChVICYmIChVICs9IFgpOyBmZSA8IGQ7KQogICAgICAgICAgICAgICAgICAgICAgICAgIChiW2ZlXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgPSBVKSwgKGZlICs9IDEpOwogICAgICAgICAgICAgICAgICAgICAgICAoVSA9IDApLCAodWUgPSAhMCk7CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIChCID0gbltOXS5hKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIudC5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVlICYmIGUuaiA9PT0gMiAmJiAoWCArPSBCLnQudiAqIG9lKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHogPSBuW05dLnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSA9IHouZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmFbTl0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKFUgKz0gQi50LnYgKiBZWzBdICogb2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoVSArPSBCLnQudiAqIFkgKiBvZSkpOwogICAgICAgICAgICAgICAgICAgICAgICB1ZSA9ICExOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZvciAoVSAmJiAoVSArPSBYKTsgZmUgPCBkOykKICAgICAgICAgICAgICAgICAgICAgIChiW2ZlXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgPSBVKSwgKGZlICs9IDEpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGZvciAoZCA9IDA7IGQgPCBFOyBkICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKGEucmVzZXQoKSwgKGdlID0gMSksIGJbZF0ubikpCiAgICAgICAgICAgICAgICAgICAgICAoYyA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAodSArPSBlLnlPZmZzZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAodSArPSByZSA/IDEgOiAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSBDZSksCiAgICAgICAgICAgICAgICAgICAgICAgIChyZSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFzTWFza2VkUGF0aCAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKFMgPSBpZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGsgPSBtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE8gPSBGW1NdLnBvaW50cyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEEgPSBPW2sgLSAxXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBPW2tdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRCA9IFQucGFydGlhbExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSAwKSksCiAgICAgICAgICAgICAgICAgICAgICAgIChjZSA9ICIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHNlID0gIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAodGUgPSAiIiksCiAgICAgICAgICAgICAgICAgICAgICAgIChqID0gIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAoZGUgPSB0aGlzLmRlZmF1bHRQcm9wc0FycmF5KTsKICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYXNNYXNrZWRQYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZSAhPT0gYltkXS5saW5lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlLmopIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUiArPSBIIC0gZS5saW5lV2lkdGhzW2JbZF0ubGluZV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSICs9IChIIC0gZS5saW5lV2lkdGhzW2JbZF0ubGluZV0pIC8gMjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIHBlID0gYltkXS5saW5lOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGhlICE9PSBiW2RdLmluZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIChiW2hlXSAmJiAoUiArPSBiW2hlXS5leHRyYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiArPSBiW2RdLmFuIC8gMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGUgPSBiW2RdLmluZCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChSICs9IHJbMF0gKiBiW2RdLmFuICogMC4wMDUpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgWiA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBWOyBOICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEIgPSBuW05dLmEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHogPSBuW05dLnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSA9IHouZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmFbTl0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKFogKz0gQi5wLnZbMF0gKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKFogKz0gQi5wLnZbMF0gKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmEucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoeiA9IG5bTl0ucyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0uYW5JbmRleGVzW05dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuYVtOXS5zLnRvdGFsQ2hhcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoWiArPSBCLmEudlswXSAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoWiArPSBCLmEudlswXSAqIFkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICB4ID0gITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0aERhdGEuYS52ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChSID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbMF0uYW4gKiAwLjUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKChIIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0aERhdGEuZi52IC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlswXS5hbiAqIDAuNSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbYi5sZW5ndGggLSAxXS5hbiAqIDAuNSkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgLSAxKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiArPSB0aGlzLl9wYXRoRGF0YS5mLnYpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB4OwoKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgIE0gKyBEID49IFIgKyBaIHx8ICFPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoJCA9IChSICsgWiAtIE0pIC8gVC5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlID0gQS5wb2ludFswXSArIChULnBvaW50WzBdIC0gQS5wb2ludFswXSkgKiAkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBlID0gQS5wb2ludFsxXSArIChULnBvaW50WzFdIC0gQS5wb2ludFsxXSkgKiAkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXJbMF0gKiBiW2RdLmFuICogMC4wMDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShyWzFdICogbGUpICogMC4wMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCA9ICExKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKChNICs9IFQucGFydGlhbExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrID49IE8ubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoayA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZbU10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKE8gPSBGW1NdLnBvaW50cykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSi52LmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGsgPSAwKSwgKFMgPSAwKSwgKE8gPSBGW1NdLnBvaW50cykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChNIC09IFQucGFydGlhbExlbmd0aCksIChPID0gbnVsbCkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEEgPSBUKSwgKFQgPSBPW2tdKSwgKEQgPSBULnBhcnRpYWxMZW5ndGgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICh5ZSA9IGJbZF0uYW4gLyAyIC0gYltkXS5hZGQpLCBhLnRyYW5zbGF0ZSgteWUsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICh5ZSA9IGJbZF0uYW4gLyAyIC0gYltkXS5hZGQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGEudHJhbnNsYXRlKC15ZSwgMCwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtclswXSAqIGJbZF0uYW4gKiAwLjAwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1yWzFdICogbGUgKiAwLjAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi50LnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYyAhPT0gMCB8fCBlLmogIT09IDApICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5faGFzTWFza2VkUGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoUiArPSBCLnQudiAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoUiArPSBCLnQudiAqIFkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChjICs9IEIudC52ICogWVswXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChjICs9IEIudC52ICogWSkpKTsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3Ryb2tlV2lkdGhBbmltICYmIChTZSA9IGUuc3cgfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3Ryb2tlQ29sb3JBbmltICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChlLnNjCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoRWUgPSBbZS5zY1swXSwgZS5zY1sxXSwgZS5zY1syXV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoRWUgPSBbMCwgMCwgMF0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5maWxsQ29sb3JBbmltICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGUuZmMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKFcgPSBbZS5mY1swXSwgZS5mY1sxXSwgZS5mY1syXV0pLAogICAgICAgICAgICAgICAgICAgICAgICBOID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgTiA8IFY7CiAgICAgICAgICAgICAgICAgICAgICAgIE4gKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi5hLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1CLmEudlswXSAqIFlbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIuYS52WzFdICogWVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmEudlsyXSAqIFlbMl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1CLmEudlswXSAqIFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIuYS52WzFdICogWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmEudlsyXSAqIFkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi5zLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEuc2NhbGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIChCLnMudlswXSAtIDEpICogWVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgKEIucy52WzFdIC0gMSkgKiBZWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEuc2NhbGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIChCLnMudlswXSAtIDEpICogWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgKEIucy52WzFdIC0gMSkgKiBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAoKEIgPSBuW05dLmEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHogPSBuW05dLnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkgPSB6LmdldE11bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0uYW5JbmRleGVzW05dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmFbTl0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuc2sucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEuc2tld0Zyb21BeGlzKC1CLnNrLnYgKiBZWzBdLCBCLnNhLnYgKiBZWzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEuc2tld0Zyb21BeGlzKC1CLnNrLnYgKiBZLCBCLnNhLnYgKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLnIucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEucm90YXRlWigtQi5yLnYgKiBZWzJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEucm90YXRlWigtQi5yLnYgKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLnJ5LnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBhLnJvdGF0ZVkoQi5yeS52ICogWVsxXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhLnJvdGF0ZVkoQi5yeS52ICogWSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5yeC5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYS5yb3RhdGVYKEIucngudiAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYS5yb3RhdGVYKEIucngudiAqIFkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuby5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGdlICs9IChCLm8udiAqIFlbMF0gLSBnZSkgKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChnZSArPSAoQi5vLnYgKiBZIC0gZ2UpICogWSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdHJva2VXaWR0aEFuaW0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuc3cucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChTZSArPSBCLnN3LnYgKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChTZSArPSBCLnN3LnYgKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0cm9rZUNvbG9yQW5pbSAmJiBCLnNjLnByb3BUeXBlKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChHID0gMDsgRyA8IDM7IEcgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKEVlW0ddICs9IChCLnNjLnZbR10gLSBFZVtHXSkgKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChFZVtHXSArPSAoQi5zYy52W0ddIC0gRWVbR10pICogWSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmZpbGxDb2xvckFuaW0gJiYgZS5mYykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChCLmZjLnByb3BUeXBlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChHID0gMDsgRyA8IDM7IEcgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChXW0ddICs9IChCLmZjLnZbR10gLSBXW0ddKSAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoV1tHXSArPSAoQi5mYy52W0ddIC0gV1tHXSkgKiBZKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBCLmZoLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoVyA9IGFkZEh1ZVRvUkdCKFcsIEIuZmgudiAqIFlbMF0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChXID0gYWRkSHVlVG9SR0IoVywgQi5maC52ICogWSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuZnMucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChXID0gYWRkU2F0dXJhdGlvblRvUkdCKFcsIEIuZnMudiAqIFlbMF0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChXID0gYWRkU2F0dXJhdGlvblRvUkdCKFcsIEIuZnMudiAqIFkpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmZiLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoVyA9IGFkZEJyaWdodG5lc3NUb1JHQihXLCBCLmZiLnYgKiBZWzBdKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoVyA9IGFkZEJyaWdodG5lc3NUb1JHQihXLCBCLmZiLnYgKiBZKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNNYXNrZWRQYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIucC52WzFdICogWVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1CLnAudlsyXSAqIFlbMV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhLnRyYW5zbGF0ZSgwLCBCLnAudlsxXSAqIFksIC1CLnAudlsyXSAqIFkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMF0gKiBZWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMV0gKiBZWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIucC52WzJdICogWVsyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMF0gKiBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMV0gKiBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIucC52WzJdICogWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAoZS5zdHJva2VXaWR0aEFuaW0gJiYgKHRlID0gU2UgPCAwID8gMCA6IFNlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0cm9rZUNvbG9yQW5pbSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIChhZSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmdiKCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChFZVswXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoRWVbMV0gKiAyNTUpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKEVlWzJdICogMjU1KSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGUuZmlsbENvbG9yQW5pbSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIGUuZmMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoc2UgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJnYigiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoV1swXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoV1sxXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoV1syXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIikiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNNYXNrZWRQYXRoKQogICAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAoYS50cmFuc2xhdGUoMCwgLWUubHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoMCwgclsxXSAqIGxlICogMC4wMSArIHUsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0aERhdGEucC52KQogICAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBxID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChULnBvaW50WzFdIC0gQS5wb2ludFsxXSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFQucG9pbnRbMF0gLSBBLnBvaW50WzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmUgPSAoTWF0aC5hdGFuKHEpICogMTgwKSAvIE1hdGguUEk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgVC5wb2ludFswXSA8IEEucG9pbnRbMF0gJiYgKG5lICs9IDE4MCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnJvdGF0ZSgoLW5lICogTWF0aC5QSSkgLyAxODApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGEudHJhbnNsYXRlKHZlLCBQZSwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFIgLT0gclswXSAqIGJbZF0uYW4gKiAwLjAwNSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYltkICsgMV0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgICBoZSAhPT0gYltkICsgMV0uaW5kICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChSICs9IGJbZF0uYW4gLyAyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSICs9IGUudHIgKiAwLjAwMSAqIGUuZmluYWxTaXplKSk7CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKAogICAgICAgICAgICAgICAgICAgICAgICAoYS50cmFuc2xhdGUoYywgdSwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcyAmJiBhLnRyYW5zbGF0ZShlLnBzWzBdLCBlLnBzWzFdICsgZS5hc2NlbnQsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGUuaikKICAgICAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0uYW5pbWF0b3JKdXN0aWZ5T2Zmc2V0ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5qdXN0aWZ5T2Zmc2V0ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUuYm94V2lkdGggLSBlLmxpbmVXaWR0aHNbYltkXS5saW5lXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYltkXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5ib3hXaWR0aCAtIGUubGluZVdpZHRoc1tiW2RdLmxpbmVdKSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBhLnRyYW5zbGF0ZSgwLCAtZS5scyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoeWUsIDAsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgclswXSAqIGJbZF0uYW4gKiAwLjAwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbMV0gKiBsZSAqIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoYyArPSBiW2RdLmwgKyBlLnRyICogMC4wMDEgKiBlLmZpbmFsU2l6ZSk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBvID09PSAiaHRtbCIKICAgICAgICAgICAgICAgICAgICAgICAgPyAoY2UgPSBhLnRvQ1NTKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogbyA9PT0gInN2ZyIKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChjZSA9IGEudG8yZENTUygpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKGRlID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1szXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzVdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1s2XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzhdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1s5XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1sxMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzEyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1sxNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzE1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGogPSBnZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGwgPD0gZAogICAgICAgICAgICAgICAgICAgICAgPyAoKFEgPSBuZXcgTGV0dGVyUHJvcHMoaiwgdGUsIGFlLCBzZSwgY2UsIGRlKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZWRMZXR0ZXJzLnB1c2goUSksCiAgICAgICAgICAgICAgICAgICAgICAgIChsICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sZXR0ZXJzQ2hhbmdlZEZsYWcgPSAhMCkpCiAgICAgICAgICAgICAgICAgICAgICA6ICgoUSA9IHRoaXMucmVuZGVyZWRMZXR0ZXJzW2RdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnID0KICAgICAgICAgICAgICAgICAgICAgICAgICBRLnVwZGF0ZShqLCB0ZSwgYWUsIHNlLCBjZSwgZGUpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXR0ZXJzQ2hhbmdlZEZsYWcpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0QW5pbWF0b3JQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0VmFsdWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCAhPT0gdGhpcy5fZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuX2ZyYW1lSWQgPSB0aGlzLl9lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRBbmltYXRvclByb3BlcnR5LnByb3RvdHlwZS5tSGVscGVyID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgICAgICAoVGV4dEFuaW1hdG9yUHJvcGVydHkucHJvdG90eXBlLmRlZmF1bHRQcm9wc0FycmF5ID0gW10pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgVGV4dEFuaW1hdG9yUHJvcGVydHkpOwogICAgICAgICAgICBmdW5jdGlvbiBJVGV4dEVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuaW5pdEVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyA9ICEwKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRCYXNlRGF0YShlLCB0LCByKSwKICAgICAgICAgICAgICAgICh0aGlzLnRleHRQcm9wZXJ0eSA9IG5ldyBUZXh0UHJvcGVydHkoCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIGUudCwKICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcwogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy50ZXh0QW5pbWF0b3IgPSBuZXcgVGV4dEFuaW1hdG9yUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgIGUudCwKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUeXBlLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShlLCB0LCByKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEhpZXJhcmNoeSgpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbnRhaW5lckVsZW1lbnRzKCksCiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVJlbmRlcmFibGVDb21wb25lbnRzKCksCiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnQoKSwKICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpLAogICAgICAgICAgICAgICAgdGhpcy50ZXh0QW5pbWF0b3Iuc2VhcmNoUHJvcGVydGllcyh0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUucHJlcGFyZUZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhlLCB0aGlzLmlzSW5SYW5nZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuY3JlYXRlUGF0aFNoYXBlID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICBuID0gdC5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEgPSAiIjsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIHRbcl0udHkgPT09ICJzaCIgJiYKICAgICAgICAgICAgICAgICAgICAoKGkgPSB0W3JdLmtzLmspLAogICAgICAgICAgICAgICAgICAgICAgKGEgKz0gYnVpbGRTaGFwZVN0cmluZyhpLCBpLmkubGVuZ3RoLCAhMCwgZSkpKTsKICAgICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJVGV4dEVsZW1lbnQucHJvdG90eXBlLnVwZGF0ZURvY3VtZW50RGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS51cGRhdGVEb2N1bWVudERhdGEoZSwgdCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuY2FuUmVzaXplRm9udCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS5jYW5SZXNpemVGb250KGUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJVGV4dEVsZW1lbnQucHJvdG90eXBlLnNldE1pbmltdW1Gb250U2l6ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS5zZXRNaW5pbXVtRm9udFNpemUoZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuYXBwbHlUZXh0UHJvcGVydGllc1RvTWF0cml4ID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHN3aXRjaCAoCiAgICAgICAgICAgICAgICAoZS5wcyAmJiB0LnRyYW5zbGF0ZShlLnBzWzBdLCBlLnBzWzFdICsgZS5hc2NlbnQsIDApLAogICAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZSgwLCAtZS5scywgMCksCiAgICAgICAgICAgICAgICAgIGUuaikKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgdC50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgKyAoZS5ib3hXaWR0aCAtIGUubGluZVdpZHRoc1tyXSksCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgIGUuanVzdGlmeU9mZnNldCArIChlLmJveFdpZHRoIC0gZS5saW5lV2lkdGhzW3JdKSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZShuLCBpLCAwKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5idWlsZENvbG9yID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoZVswXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKGVbMV0gKiAyNTUpICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChlWzJdICogMjU1KSArCiAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5lbXB0eVByb3AgPSBuZXcgTGV0dGVyUHJvcHMoKSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUudmFsaWRhdGVUZXh0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5Ll9tZGYgfHwgdGhpcy50ZXh0UHJvcGVydHkuX2lzRmlyc3RGcmFtZSkgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuYnVpbGROZXdUZXh0KCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5Ll9pc0ZpcnN0RnJhbWUgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5Ll9tZGYgPSAhMSkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZW1wdHlTaGFwZURhdGEgPSB7IHNoYXBlczogW10gfTsKICAgICAgICAgICAgZnVuY3Rpb24gU1ZHVGV4dExvdHRpZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLnRleHRTcGFucyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlclR5cGUgPSAic3ZnIiksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICBCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIFRyYW5zZm9ybUVsZW1lbnQsCiAgICAgICAgICAgICAgICBTVkdCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQsCiAgICAgICAgICAgICAgICBGcmFtZUVsZW1lbnQsCiAgICAgICAgICAgICAgICBSZW5kZXJhYmxlRE9NRWxlbWVudCwKICAgICAgICAgICAgICAgIElUZXh0RWxlbWVudCwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIFNWR1RleHRMb3R0aWVFbGVtZW50CiAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5kYXRhLnNpbmdsZVNoYXBlICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuY2hhcnMgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dENvbnRhaW5lciA9IGNyZWF0ZU5TKCJ0ZXh0IikpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUuYnVpbGRUZXh0Q29udGVudHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgdCA9IDAsIHIgPSBlLmxlbmd0aCwgbiA9IFtdLCBpID0gIiI7IHQgPCByOykKICAgICAgICAgICAgICAgICAgZVt0XSA9PT0gIlxyIiB8fCBlW3RdID09PSAiAyIKICAgICAgICAgICAgICAgICAgICA/IChuLnB1c2goaSksIChpID0gIiIpKQogICAgICAgICAgICAgICAgICAgIDogKGkgKz0gZVt0XSksCiAgICAgICAgICAgICAgICAgICAgKHQgKz0gMSk7CiAgICAgICAgICAgICAgICByZXR1cm4gbi5wdXNoKGkpLCBuOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUuYnVpbGRTaGFwZURhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgaWYgKGUuc2hhcGVzICYmIGUuc2hhcGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICB2YXIgciA9IGUuc2hhcGVzWzBdOwogICAgICAgICAgICAgICAgICBpZiAoci5pdCkgewogICAgICAgICAgICAgICAgICAgIHZhciBuID0gci5pdFtyLml0Lmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgICAgIG4ucyAmJiAoKG4ucy5rWzBdID0gdCksIChuLnMua1sxXSA9IHQpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5idWlsZE5ld1RleHQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFkZER5bmFtaWNQcm9wZXJ0eSh0aGlzKTsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGE7CiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZExldHRlcnMgPSBjcmVhdGVTaXplZEFycmF5KHIgPyByLmwubGVuZ3RoIDogMCkpLAogICAgICAgICAgICAgICAgICByLmZjCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAiZmlsbCIsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkQ29sb3Ioci5mYykKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAicmdiYSgwLDAsMCwwKSIpLAogICAgICAgICAgICAgICAgICByLnNjICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgInN0cm9rZSIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZENvbG9yKHIuc2MpCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCByLnN3KSksCiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC1zaXplIiwgci5maW5hbFNpemUpOwogICAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuZ2V0Rm9udEJ5TmFtZShyLmYpOwogICAgICAgICAgICAgICAgaWYgKG4uZkNsYXNzKSB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgbi5mQ2xhc3MpOwogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC1mYW1pbHkiLCBuLmZGYW1pbHkpOwogICAgICAgICAgICAgICAgICB2YXIgaSA9IHIuZldlaWdodCwKICAgICAgICAgICAgICAgICAgICBhID0gci5mU3R5bGU7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC1zdHlsZSIsIGEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC13ZWlnaHQiLCBpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIHIudCk7CiAgICAgICAgICAgICAgICB2YXIgbyA9IHIubCB8fCBbXSwKICAgICAgICAgICAgICAgICAgbCA9ICEhdGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmNoYXJzOwogICAgICAgICAgICAgICAgdCA9IG8ubGVuZ3RoOwogICAgICAgICAgICAgICAgdmFyIGMsCiAgICAgICAgICAgICAgICAgIHUgPSB0aGlzLm1IZWxwZXIsCiAgICAgICAgICAgICAgICAgIGQgPSAiIiwKICAgICAgICAgICAgICAgICAgRSA9IHRoaXMuZGF0YS5zaW5nbGVTaGFwZSwKICAgICAgICAgICAgICAgICAgYiA9IDAsCiAgICAgICAgICAgICAgICAgIFAgPSAwLAogICAgICAgICAgICAgICAgICBSID0gITAsCiAgICAgICAgICAgICAgICAgIFQgPSByLnRyICogMC4wMDEgKiByLmZpbmFsU2l6ZTsKICAgICAgICAgICAgICAgIGlmIChFICYmICFsICYmICFyLnN6KSB7CiAgICAgICAgICAgICAgICAgIHZhciBNID0gdGhpcy50ZXh0Q29udGFpbmVyLAogICAgICAgICAgICAgICAgICAgIHggPSAic3RhcnQiOwogICAgICAgICAgICAgICAgICBzd2l0Y2ggKHIuaikgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgIHggPSAiZW5kIjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgIHggPSAibWlkZGxlIjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICB4ID0gInN0YXJ0IjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIE0uc2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIsIHgpLAogICAgICAgICAgICAgICAgICAgIE0uc2V0QXR0cmlidXRlKCJsZXR0ZXItc3BhY2luZyIsIFQpOwogICAgICAgICAgICAgICAgICB2YXIgayA9IHRoaXMuYnVpbGRUZXh0Q29udGVudHMoci5maW5hbFRleHQpOwogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIHQgPSBrLmxlbmd0aCwgUCA9IHIucHMgPyByLnBzWzFdICsgci5hc2NlbnQgOiAwLCBlID0gMDsKICAgICAgICAgICAgICAgICAgICBlIDwgdDsKICAgICAgICAgICAgICAgICAgICBlICs9IDEKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIChjID0gdGhpcy50ZXh0U3BhbnNbZV0uc3BhbiB8fCBjcmVhdGVOUygidHNwYW4iKSksCiAgICAgICAgICAgICAgICAgICAgICAoYy50ZXh0Q29udGVudCA9IGtbZV0pLAogICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoIngiLCAwKSwKICAgICAgICAgICAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJ5IiwgUCksCiAgICAgICAgICAgICAgICAgICAgICAoYy5zdHlsZS5kaXNwbGF5ID0gImluaGVyaXQiKSwKICAgICAgICAgICAgICAgICAgICAgIE0uYXBwZW5kQ2hpbGQoYyksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRTcGFuc1tlXSB8fAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdID0geyBzcGFuOiBudWxsLCBnbHlwaDogbnVsbCB9KSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1tlXS5zcGFuID0gYyksCiAgICAgICAgICAgICAgICAgICAgICAoUCArPSByLmZpbmFsTGluZUhlaWdodCk7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LmFwcGVuZENoaWxkKE0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLnRleHRTcGFucy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgQTsKICAgICAgICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1tlXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy50ZXh0U3BhbnNbZV0gPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbjogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFNwYW46IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAhbCB8fCAhRSB8fCBlID09PSAwKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAoKGMgPQogICAgICAgICAgICAgICAgICAgICAgICAgIFMgPiBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudGV4dFNwYW5zW2VdLnNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3JlYXRlTlMobCA/ICJnIiA6ICJ0ZXh0IikpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFMgPD0gZSkKICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGMuc2V0QXR0cmlidXRlKCJzdHJva2UtbGluZWNhcCIsICJidXR0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVqb2luIiwgInJvdW5kIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW1pdGVybGltaXQiLCAiNCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLnNwYW4gPSBjKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwpCiAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBPID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBjLmFwcGVuZENoaWxkKE8pLCAodGhpcy50ZXh0U3BhbnNbZV0uY2hpbGRTcGFuID0gTyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLnNwYW4gPSBjKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChjKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGMuc3R5bGUuZGlzcGxheSA9ICJpbmhlcml0IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKHUucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgRSAmJgogICAgICAgICAgICAgICAgICAgICAgICAob1tlXS5uICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChiID0gLVQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFAgKz0gci55T2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQICs9IFIgPyAxIDogMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9ICExKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVRleHRQcm9wZXJ0aWVzVG9NYXRyaXgociwgdSwgb1tlXS5saW5lLCBiLCBQKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoYiArPSBvW2VdLmwgfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKz0gVCkpLAogICAgICAgICAgICAgICAgICAgICAgICBsKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgQSA9IHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRDaGFyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgci5maW5hbFRleHRbZV0sCiAgICAgICAgICAgICAgICAgICAgICAgIG4uZlN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuZ2V0Rm9udEJ5TmFtZShyLmYpLmZGYW1pbHkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgRjsKICAgICAgICAgICAgICAgICAgICAgIGlmIChBLnQgPT09IDEpCiAgICAgICAgICAgICAgICAgICAgICAgIEYgPSBuZXcgU1ZHQ29tcEVsZW1lbnQoQS5kYXRhLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBEID0gZW1wdHlTaGFwZURhdGE7CiAgICAgICAgICAgICAgICAgICAgICAgIEEuZGF0YSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIEEuZGF0YS5zaGFwZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoRCA9IHRoaXMuYnVpbGRTaGFwZURhdGEoQS5kYXRhLCByLmZpbmFsU2l6ZSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChGID0gbmV3IFNWR1NoYXBlRWxlbWVudChELCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRleHRTcGFuc1tlXS5nbHlwaCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgSCA9IHRoaXMudGV4dFNwYW5zW2VdLmdseXBoOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRTcGFuc1tlXS5jaGlsZFNwYW4ucmVtb3ZlQ2hpbGQoSC5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIEguZGVzdHJveSgpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLmdseXBoID0gRiksCiAgICAgICAgICAgICAgICAgICAgICAgIChGLl9kZWJ1ZyA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgRi5wcmVwYXJlRnJhbWUoMCksCiAgICAgICAgICAgICAgICAgICAgICAgIEYucmVuZGVyRnJhbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0U3BhbnNbZV0uY2hpbGRTcGFuLmFwcGVuZENoaWxkKEYubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgQS50ID09PSAxICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dFNwYW5zW2VdLmNoaWxkU3Bhbi5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInNjYWxlKCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIHIuZmluYWxTaXplIC8gMTAwICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIHIuZmluYWxTaXplIC8gMTAwICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgIEUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zbGF0ZSgiICsgdS5wcm9wc1sxMl0gKyAiLCIgKyB1LnByb3BzWzEzXSArICIpIgogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAoYy50ZXh0Q29udGVudCA9IG9bZV0udmFsKSwKICAgICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGVOUygKICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sOnNwYWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlc2VydmUiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRSAmJiBjICYmIGMuc2V0QXR0cmlidXRlKCJkIiwgZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgKDsgZSA8IHRoaXMudGV4dFNwYW5zLmxlbmd0aDspCiAgICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1tlXS5zcGFuLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpLCAoZSArPSAxKTsKICAgICAgICAgICAgICAgIHRoaXMuX3NpemVDaGFuZ2VkID0gITA7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5zb3VyY2VSZWN0QXRUaW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodGhpcy5wcmVwYXJlRnJhbWUodGhpcy5jb21wLnJlbmRlcmVkRnJhbWUgLSB0aGlzLmRhdGEuc3QpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVySW5uZXJDb250ZW50KCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2l6ZUNoYW5nZWQpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdGhpcy5fc2l6ZUNoYW5nZWQgPSAhMTsKICAgICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmxheWVyRWxlbWVudC5nZXRCQm94KCk7CiAgICAgICAgICAgICAgICAgIHRoaXMuYmJveCA9IHsKICAgICAgICAgICAgICAgICAgICB0b3A6IGUueSwKICAgICAgICAgICAgICAgICAgICBsZWZ0OiBlLngsCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGUud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBlLmhlaWdodCwKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJib3g7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy50ZXh0U3BhbnMubGVuZ3RoLAogICAgICAgICAgICAgICAgICByOwogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlZEZyYW1lID0gdGhpcy5jb21wLnJlbmRlcmVkRnJhbWUsIGUgPSAwOwogICAgICAgICAgICAgICAgICBlIDwgdDsKICAgICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIChyID0gdGhpcy50ZXh0U3BhbnNbZV0uZ2x5cGgpLAogICAgICAgICAgICAgICAgICAgIHIgJiYKICAgICAgICAgICAgICAgICAgICAoci5wcmVwYXJlRnJhbWUodGhpcy5jb21wLnJlbmRlcmVkRnJhbWUgLSB0aGlzLmRhdGEuc3QpLAogICAgICAgICAgICAgICAgICAgICAgci5fbWRmICYmICh0aGlzLl9tZGYgPSAhMCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUucmVuZGVySW5uZXJDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodGhpcy52YWxpZGF0ZVRleHQoKSwKICAgICAgICAgICAgICAgICAgICAoIXRoaXMuZGF0YS5zaW5nbGVTaGFwZSB8fCB0aGlzLl9tZGYpICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dEFuaW1hdG9yLmdldE1lYXN1cmVzKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGEsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZwogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyB8fAogICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0QW5pbWF0b3IubGV0dGVyc0NoYW5nZWRGbGFnKSkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICB0aGlzLl9zaXplQ2hhbmdlZCA9ICEwOwogICAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLnRleHRBbmltYXRvci5yZW5kZXJlZExldHRlcnMsCiAgICAgICAgICAgICAgICAgICAgbiA9IHRoaXMudGV4dFByb3BlcnR5LmN1cnJlbnREYXRhLmw7CiAgICAgICAgICAgICAgICAgIHQgPSBuLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgdmFyIGksIGEsIG87CiAgICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgICAgbltlXS5uIHx8CiAgICAgICAgICAgICAgICAgICAgICAoKGkgPSByW2VdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGEgPSB0aGlzLnRleHRTcGFuc1tlXS5zcGFuKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSB0aGlzLnRleHRTcGFuc1tlXS5nbHlwaCksCiAgICAgICAgICAgICAgICAgICAgICAgIG8gJiYgby5yZW5kZXJGcmFtZSgpLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYubSAmJiBhLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgaS5tKSwKICAgICAgICAgICAgICAgICAgICAgICAgaS5fbWRmLm8gJiYgYS5zZXRBdHRyaWJ1dGUoIm9wYWNpdHkiLCBpLm8pLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYuc3cgJiYgYS5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIGkuc3cpLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYuc2MgJiYgYS5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsIGkuc2MpLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYuZmMgJiYgYS5zZXRBdHRyaWJ1dGUoImZpbGwiLCBpLmZjKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIElTb2xpZEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtJSW1hZ2VFbGVtZW50XSwgSVNvbGlkRWxlbWVudCksCiAgICAgICAgICAgICAgKElTb2xpZEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGNyZWF0ZU5TKCJyZWN0Iik7CiAgICAgICAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmRhdGEuc3cpLAogICAgICAgICAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgdGhpcy5kYXRhLnNoKSwKICAgICAgICAgICAgICAgICAgZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCB0aGlzLmRhdGEuc2MpLAogICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChlKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gTnVsbEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRCYXNlRGF0YShlLCB0LCByKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRUcmFuc2Zvcm0oZSwgdCwgciksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRIaWVyYXJjaHkoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoTnVsbEVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhlLCAhMCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUuZ2V0QmFzZUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoTnVsbEVsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUuc291cmNlUmVjdEF0VGltZSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKE51bGxFbGVtZW50LnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgICBbQmFzZUVsZW1lbnQsIFRyYW5zZm9ybUVsZW1lbnQsIEhpZXJhcmNoeUVsZW1lbnQsIEZyYW1lRWxlbWVudF0sCiAgICAgICAgICAgICAgICBOdWxsRWxlbWVudAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR1JlbmRlcmVyQmFzZSgpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0Jhc2VSZW5kZXJlcl0sIFNWR1JlbmRlcmVyQmFzZSksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlTnVsbCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bGxFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlU2hhcGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTVkdTaGFwZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVUZXh0ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU1ZHVGV4dExvdHRpZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVJbWFnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IElJbWFnZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVTb2xpZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IElTb2xpZEVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jb25maWdBbmltYXRpb24gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgInhtbG5zIiwKICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAieG1sbnM6eGxpbmsiLAogICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy52aWV3Qm94U2l6ZQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnZpZXdCb3hTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIDogdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICAgICIwIDAgIiArIGUudyArICIgIiArIGUuaAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnZpZXdCb3hPbmx5IHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIGUudyksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgZS5oKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zdmdFbGVtZW50LnN0eWxlLndpZHRoID0gIjEwMCUiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zdmdFbGVtZW50LnN0eWxlLmhlaWdodCA9ICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlM2QoMCwwLDApIiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudC5zdHlsZS5jb250ZW50VmlzaWJpbGl0eSA9CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5jb250ZW50VmlzaWJpbGl0eSkpLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy53aWR0aCAmJgogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJ3aWR0aCIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcud2lkdGgKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuaGVpZ2h0ICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgImhlaWdodCIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuaGVpZ2h0CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsYXNzTmFtZSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJjbGFzcyIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuY2xhc3NOYW1lCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmlkICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5yZW5kZXJDb25maWcuaWQpLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5mb2N1c2FibGUgIT09IHZvaWQgMCAmJgogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJmb2N1c2FibGUiLAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmZvY3VzYWJsZQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5wcmVzZXJ2ZUFzcGVjdFJhdGlvCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS53cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuc3ZnRWxlbWVudCk7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZ2xvYmFsRGF0YS5kZWZzOwogICAgICAgICAgICAgICAgdGhpcy5zZXR1cEdsb2JhbERhdGEoZSwgdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEucHJvZ3Jlc3NpdmVMb2FkID0KICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5wcm9ncmVzc2l2ZUxvYWQpLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gZSk7CiAgICAgICAgICAgICAgICB2YXIgciA9IGNyZWF0ZU5TKCJjbGlwUGF0aCIpLAogICAgICAgICAgICAgICAgICBuID0gY3JlYXRlTlMoInJlY3QiKTsKICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIGUudyksCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBlLmgpLAogICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgieCIsIDApLAogICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgieSIsIDApOwogICAgICAgICAgICAgICAgdmFyIGkgPSBjcmVhdGVFbGVtZW50SUQoKTsKICAgICAgICAgICAgICAgIHIuc2V0QXR0cmlidXRlKCJpZCIsIGkpLAogICAgICAgICAgICAgICAgICByLmFwcGVuZENoaWxkKG4pLAogICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgImNsaXAtcGF0aCIsCiAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBpICsgIikiCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHQuYXBwZW5kQ2hpbGQociksCiAgICAgICAgICAgICAgICAgICh0aGlzLmxheWVycyA9IGUubGF5ZXJzKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBjcmVhdGVTaXplZEFycmF5KGUubGF5ZXJzLmxlbmd0aCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdSZW5kZXJlckJhc2UucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0ud3JhcHBlciAmJgogICAgICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIuaW5uZXJUZXh0ID0gIiIpLAogICAgICAgICAgICAgICAgICAodGhpcy5sYXllckVsZW1lbnQgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5kZWZzID0gbnVsbCk7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMubGF5ZXJzID8gdGhpcy5sYXllcnMubGVuZ3RoIDogMDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0gJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLmRlc3Ryb3kgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLmRlc3Ryb3koKTsKICAgICAgICAgICAgICAgICh0aGlzLmVsZW1lbnRzLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5kZXN0cm95ZWQgPSAhMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGlvbkl0ZW0gPSBudWxsKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS51cGRhdGVDb250YWluZXJTaXplID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5maW5kSW5kZXhCeUluZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IDAsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmxheWVycy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXllcnNbdF0uaW5kID09PSBlKSByZXR1cm4gdDsKICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5idWlsZEl0ZW0gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmVsZW1lbnRzOwogICAgICAgICAgICAgICAgaWYgKCEodFtlXSB8fCB0aGlzLmxheWVyc1tlXS50eSA9PT0gOTkpKSB7CiAgICAgICAgICAgICAgICAgIHRbZV0gPSAhMDsKICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmNyZWF0ZUl0ZW0odGhpcy5sYXllcnNbZV0pOwogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKCh0W2VdID0gciksCiAgICAgICAgICAgICAgICAgICAgICBnZXRFeHByZXNzaW9uc1BsdWdpbigpICYmCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sYXllcnNbZV0udHkgPT09IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UucmVnaXN0ZXJDb21wb3NpdGlvbihyKSwKICAgICAgICAgICAgICAgICAgICAgICAgci5pbml0RXhwcmVzc2lvbnMoKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRJblBvcyhyLCBlKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJzW2VdLnR0KQogICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiA9CiAgICAgICAgICAgICAgICAgICAgICAidHAiIGluIHRoaXMubGF5ZXJzW2VdCiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5maW5kSW5kZXhCeUluZCh0aGlzLmxheWVyc1tlXS50cCkKICAgICAgICAgICAgICAgICAgICAgICAgOiBlIC0gMTsKICAgICAgICAgICAgICAgICAgICBpZiAobiA9PT0gLTEpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWxlbWVudHNbbl0gfHwgdGhpcy5lbGVtZW50c1tuXSA9PT0gITApCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSXRlbShuKSwgdGhpcy5hZGRQZW5kaW5nRWxlbWVudChyKTsKICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBpID0gdFtuXSwKICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGkuZ2V0TWF0dGUodGhpcy5sYXllcnNbZV0udHQpOwogICAgICAgICAgICAgICAgICAgICAgci5zZXRNYXR0ZShhKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jaGVja1BlbmRpbmdFbGVtZW50cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZvciAoOyB0aGlzLnBlbmRpbmdFbGVtZW50cy5sZW5ndGg7KSB7CiAgICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5wZW5kaW5nRWxlbWVudHMucG9wKCk7CiAgICAgICAgICAgICAgICAgIGlmICgoZS5jaGVja1BhcmVudGluZygpLCBlLmRhdGEudHQpKQogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy5lbGVtZW50cy5sZW5ndGg7IHQgPCByOykgewogICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudHNbdF0gPT09IGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG4gPQogICAgICAgICAgICAgICAgICAgICAgICAgICJ0cCIgaW4gZS5kYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZmluZEluZGV4QnlJbmQoZS5kYXRhLnRwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0IC0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gdGhpcy5lbGVtZW50c1tuXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gaS5nZXRNYXR0ZSh0aGlzLmxheWVyc1t0XS50dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGUuc2V0TWF0dGUoYSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgdCArPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLnJlbmRlcmVkRnJhbWUgPT09IGUgfHwgdGhpcy5kZXN0cm95ZWQpKSB7CiAgICAgICAgICAgICAgICAgIGUgPT09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IChlID0gdGhpcy5yZW5kZXJlZEZyYW1lKQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMucmVuZGVyZWRGcmFtZSA9IGUpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZnJhbWVOdW0gPSBlKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZyYW1lSWQgKz0gMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5wcm9qZWN0SW50ZXJmYWNlLmN1cnJlbnRGcmFtZSA9IGUpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuX21kZiA9ICExKTsKICAgICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlTGF5ZXJzIHx8IHRoaXMuY2hlY2tMYXllcnMoZSksIHQgPSByIC0gMTsKICAgICAgICAgICAgICAgICAgICB0ID49IDA7CiAgICAgICAgICAgICAgICAgICAgdCAtPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3RdKSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1t0XS5wcmVwYXJlRnJhbWUoZSAtIHRoaXMubGF5ZXJzW3RdLnN0KTsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2xvYmFsRGF0YS5fbWRmKQogICAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3RdKSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW3RdLnJlbmRlckZyYW1lKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuYXBwZW5kRWxlbWVudEluUG9zID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByID0gZS5nZXRCYXNlRWxlbWVudCgpOwogICAgICAgICAgICAgICAgaWYgKHIpIHsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IDAsIGk7IG4gPCB0OykKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW25dICYmCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW25dICE9PSAhMCAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tuXS5nZXRCYXNlRWxlbWVudCgpICYmCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IHRoaXMuZWxlbWVudHNbbl0uZ2V0QmFzZUVsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSAxKTsKICAgICAgICAgICAgICAgICAgaQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5sYXllckVsZW1lbnQuaW5zZXJ0QmVmb3JlKHIsIGkpCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIElDb21wRWxlbWVudCgpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1FbGVtZW50LAogICAgICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgICAgIEZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50LAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgSUNvbXBFbGVtZW50CiAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuaW5pdEVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgICAgdGhpcy5pbml0RnJhbWUoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0QmFzZURhdGEoZSwgdCwgciksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShlLCB0LCByKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgICB0aGlzLmluaXRIaWVyYXJjaHkoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29udGFpbmVyRWxlbWVudHMoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVSZW5kZXJhYmxlQ29tcG9uZW50cygpLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhLnh0IHx8ICF0LnByb2dyZXNzaXZlTG9hZCkgJiYgdGhpcy5idWlsZEFsbEl0ZW1zKCksCiAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJQ29tcEVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVQcm9wZXJ0aWVzKGUsIHRoaXMuaXNJblJhbmdlKSwKICAgICAgICAgICAgICAgICAgICAhKCF0aGlzLmlzSW5SYW5nZSAmJiAhdGhpcy5kYXRhLnh0KSkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBpZiAodGhpcy50bS5fcGxhY2Vob2xkZXIpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlZEZyYW1lID0gZSAvIHRoaXMuZGF0YS5zcjsKICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLnRtLnY7CiAgICAgICAgICAgICAgICAgICAgdCA9PT0gdGhpcy5kYXRhLm9wICYmICh0ID0gdGhpcy5kYXRhLm9wIC0gMSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gdCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuZWxlbWVudHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVMYXllcnMgfHwgdGhpcy5jaGVja0xheWVycyh0aGlzLnJlbmRlcmVkRnJhbWUpLAogICAgICAgICAgICAgICAgICAgIHIgPSBuIC0gMTsKICAgICAgICAgICAgICAgICAgICByID49IDA7CiAgICAgICAgICAgICAgICAgICAgciAtPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3JdKSAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHNbcl0ucHJlcGFyZUZyYW1lKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVkRnJhbWUgLSB0aGlzLmxheWVyc1tyXS5zdAogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tyXS5fbWRmICYmICh0aGlzLl9tZGYgPSAhMCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJQ29tcEVsZW1lbnQucHJvdG90eXBlLnJlbmRlcklubmVyQ29udGVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy5sYXllcnMubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkKICAgICAgICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgfHwgdGhpcy5lbGVtZW50c1tlXSkgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLnJlbmRlckZyYW1lKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuc2V0RWxlbWVudHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50czsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSUNvbXBFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95RWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0gJiYgdGhpcy5lbGVtZW50c1tlXS5kZXN0cm95KCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveUVsZW1lbnRzKCksIHRoaXMuZGVzdHJveUJhc2VFbGVtZW50KCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0NvbXBFbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgICAgICAodGhpcy5sYXllcnMgPSBlLmxheWVycyksCiAgICAgICAgICAgICAgICAodGhpcy5zdXBwb3J0czNkID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5wZW5kaW5nRWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50cyA9IHRoaXMubGF5ZXJzCiAgICAgICAgICAgICAgICAgID8gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLmxheWVycy5sZW5ndGgpCiAgICAgICAgICAgICAgICAgIDogW10pLAogICAgICAgICAgICAgICAgdGhpcy5pbml0RWxlbWVudChlLCB0LCByKSwKICAgICAgICAgICAgICAgICh0aGlzLnRtID0gZS50bQogICAgICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgICAgICA6IHsgX3BsYWNlaG9sZGVyOiAhMCB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgW1NWR1JlbmRlcmVyQmFzZSwgSUNvbXBFbGVtZW50LCBTVkdCYXNlRWxlbWVudF0sCiAgICAgICAgICAgICAgU1ZHQ29tcEVsZW1lbnQKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAoU1ZHQ29tcEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbXAgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTVkdDb21wRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmdW5jdGlvbiBTVkdSZW5kZXJlcihlLCB0KSB7CiAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uSXRlbSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJzID0gbnVsbCksCiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gLTEpLAogICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudCA9IGNyZWF0ZU5TKCJzdmciKSk7CiAgICAgICAgICAgICAgdmFyIHIgPSAiIjsKICAgICAgICAgICAgICBpZiAodCAmJiB0LnRpdGxlKSB7CiAgICAgICAgICAgICAgICB2YXIgbiA9IGNyZWF0ZU5TKCJ0aXRsZSIpLAogICAgICAgICAgICAgICAgICBpID0gY3JlYXRlRWxlbWVudElEKCk7CiAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgiaWQiLCBpKSwKICAgICAgICAgICAgICAgICAgKG4udGV4dENvbnRlbnQgPSB0LnRpdGxlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKG4pLAogICAgICAgICAgICAgICAgICAociArPSBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHQgJiYgdC5kZXNjcmlwdGlvbikgewogICAgICAgICAgICAgICAgdmFyIGEgPSBjcmVhdGVOUygiZGVzYyIpLAogICAgICAgICAgICAgICAgICBvID0gY3JlYXRlRWxlbWVudElEKCk7CiAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiaWQiLCBvKSwKICAgICAgICAgICAgICAgICAgKGEudGV4dENvbnRlbnQgPSB0LmRlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKGEpLAogICAgICAgICAgICAgICAgICAociArPSAiICIgKyBvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgciAmJiB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLCByKTsKICAgICAgICAgICAgICB2YXIgbCA9IGNyZWF0ZU5TKCJkZWZzIik7CiAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKGwpOwogICAgICAgICAgICAgIHZhciBjID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuYXBwZW5kQ2hpbGQoYyksCiAgICAgICAgICAgICAgICAodGhpcy5sYXllckVsZW1lbnQgPSBjKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlckNvbmZpZyA9IHsKICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzoKICAgICAgICAgICAgICAgICAgICAodCAmJiB0LnByZXNlcnZlQXNwZWN0UmF0aW8pIHx8ICJ4TWlkWU1pZCBtZWV0IiwKICAgICAgICAgICAgICAgICAgaW1hZ2VQcmVzZXJ2ZUFzcGVjdFJhdGlvOgogICAgICAgICAgICAgICAgICAgICh0ICYmIHQuaW1hZ2VQcmVzZXJ2ZUFzcGVjdFJhdGlvKSB8fCAieE1pZFlNaWQgc2xpY2UiLAogICAgICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0eTogKHQgJiYgdC5jb250ZW50VmlzaWJpbGl0eSkgfHwgInZpc2libGUiLAogICAgICAgICAgICAgICAgICBwcm9ncmVzc2l2ZUxvYWQ6ICh0ICYmIHQucHJvZ3Jlc3NpdmVMb2FkKSB8fCAhMSwKICAgICAgICAgICAgICAgICAgaGlkZU9uVHJhbnNwYXJlbnQ6ICEodCAmJiB0LmhpZGVPblRyYW5zcGFyZW50ID09PSAhMSksCiAgICAgICAgICAgICAgICAgIHZpZXdCb3hPbmx5OiAodCAmJiB0LnZpZXdCb3hPbmx5KSB8fCAhMSwKICAgICAgICAgICAgICAgICAgdmlld0JveFNpemU6ICh0ICYmIHQudmlld0JveFNpemUpIHx8ICExLAogICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICh0ICYmIHQuY2xhc3NOYW1lKSB8fCAiIiwKICAgICAgICAgICAgICAgICAgaWQ6ICh0ICYmIHQuaWQpIHx8ICIiLAogICAgICAgICAgICAgICAgICBmb2N1c2FibGU6IHQgJiYgdC5mb2N1c2FibGUsCiAgICAgICAgICAgICAgICAgIGZpbHRlclNpemU6IHsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS53aWR0aCkgfHwgIjEwMCUiLAogICAgICAgICAgICAgICAgICAgIGhlaWdodDoKICAgICAgICAgICAgICAgICAgICAgICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUuaGVpZ2h0KSB8fCAiMTAwJSIsCiAgICAgICAgICAgICAgICAgICAgeDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS54KSB8fCAiMCUiLAogICAgICAgICAgICAgICAgICAgIHk6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUueSkgfHwgIjAlIiwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgd2lkdGg6IHQgJiYgdC53aWR0aCwKICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0ICYmIHQuaGVpZ2h0LAogICAgICAgICAgICAgICAgICBydW5FeHByZXNzaW9uczoKICAgICAgICAgICAgICAgICAgICAhdCB8fCB0LnJ1bkV4cHJlc3Npb25zID09PSB2b2lkIDAgfHwgdC5ydW5FeHByZXNzaW9ucywKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IHsKICAgICAgICAgICAgICAgICAgX21kZjogITEsCiAgICAgICAgICAgICAgICAgIGZyYW1lTnVtOiAtMSwKICAgICAgICAgICAgICAgICAgZGVmczogbCwKICAgICAgICAgICAgICAgICAgcmVuZGVyQ29uZmlnOiB0aGlzLnJlbmRlckNvbmZpZywKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5wZW5kaW5nRWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5kZXN0cm95ZWQgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlclR5cGUgPSAic3ZnIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTVkdSZW5kZXJlckJhc2VdLCBTVkdSZW5kZXJlciksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVDb21wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU1ZHQ29tcEVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gU2hhcGVUcmFuc2Zvcm1NYW5hZ2VyKCkgewogICAgICAgICAgICAgICh0aGlzLnNlcXVlbmNlcyA9IHt9KSwKICAgICAgICAgICAgICAgICh0aGlzLnNlcXVlbmNlTGlzdCA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybV9rZXlfY291bnQgPSAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBTaGFwZVRyYW5zZm9ybU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGFkZFRyYW5zZm9ybVNlcXVlbmNlOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0Lmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSA9ICJfIjsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIGkgKz0gdFtyXS50cmFuc2Zvcm0ua2V5ICsgIl8iOwogICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlzLnNlcXVlbmNlc1tpXTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIGEgfHwKICAgICAgICAgICAgICAgICAgKChhID0gewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybXM6IFtdLmNvbmNhdCh0KSwKICAgICAgICAgICAgICAgICAgICBmaW5hbFRyYW5zZm9ybTogbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgICAgICAgIF9tZGY6ICExLAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zZXF1ZW5jZXNbaV0gPSBhKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcXVlbmNlTGlzdC5wdXNoKGEpKSwKICAgICAgICAgICAgICAgICAgYQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByb2Nlc3NTZXF1ZW5jZTogZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwLCBpID0gdC50cmFuc2Zvcm1zLmxlbmd0aCwgYSA9IHI7IG4gPCBpICYmICFyOykgewogICAgICAgICAgICAgICAgICBpZiAodC50cmFuc2Zvcm1zW25dLnRyYW5zZm9ybS5tUHJvcHMuX21kZikgewogICAgICAgICAgICAgICAgICAgIGEgPSAhMDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoYSkKICAgICAgICAgICAgICAgICAgZm9yICh0LmZpbmFsVHJhbnNmb3JtLnJlc2V0KCksIG4gPSBpIC0gMTsgbiA+PSAwOyBuIC09IDEpCiAgICAgICAgICAgICAgICAgICAgdC5maW5hbFRyYW5zZm9ybS5tdWx0aXBseSgKICAgICAgICAgICAgICAgICAgICAgIHQudHJhbnNmb3Jtc1tuXS50cmFuc2Zvcm0ubVByb3BzLnYKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdC5fbWRmID0gYTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByb2Nlc3NTZXF1ZW5jZXM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuc2VxdWVuY2VMaXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1NlcXVlbmNlKHRoaXMuc2VxdWVuY2VMaXN0W3JdLCB0KTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldE5ld0tleTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtX2tleV9jb3VudCArPSAxKSwKICAgICAgICAgICAgICAgICAgIl8iICsgdGhpcy50cmFuc2Zvcm1fa2V5X2NvdW50CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBsdW1hTG9hZGVyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciB0ID0gIl9fbG90dGllX2VsZW1lbnRfbHVtYV9idWZmZXIiLAogICAgICAgICAgICAgICAgciA9IG51bGwsCiAgICAgICAgICAgICAgICBuID0gbnVsbCwKICAgICAgICAgICAgICAgIGkgPSBudWxsOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGEoKSB7CiAgICAgICAgICAgICAgICB2YXIgYyA9IGNyZWF0ZU5TKCJzdmciKSwKICAgICAgICAgICAgICAgICAgdSA9IGNyZWF0ZU5TKCJmaWx0ZXIiKSwKICAgICAgICAgICAgICAgICAgZCA9IGNyZWF0ZU5TKCJmZUNvbG9yTWF0cml4Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICB1LnNldEF0dHJpYnV0ZSgiaWQiLCB0KSwKICAgICAgICAgICAgICAgICAgZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAibWF0cml4IiksCiAgICAgICAgICAgICAgICAgIGQuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCAic1JHQiIpLAogICAgICAgICAgICAgICAgICBkLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAidmFsdWVzIiwKICAgICAgICAgICAgICAgICAgICAiMC4zLCAwLjMsIDAuMywgMCwgMCwgMC4zLCAwLjMsIDAuMywgMCwgMCwgMC4zLCAwLjMsIDAuMywgMCwgMCwgMC4zLCAwLjMsIDAuMywgMCwgMCIKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChkKSwKICAgICAgICAgICAgICAgICAgYy5hcHBlbmRDaGlsZCh1KSwKICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoImlkIiwgdCArICJfc3ZnIiksCiAgICAgICAgICAgICAgICAgIGZlYXR1cmVTdXBwb3J0LnN2Z0x1bWFIaWRkZW4gJiYgKGMuc3R5bGUuZGlzcGxheSA9ICJub25lIiksCiAgICAgICAgICAgICAgICAgIGMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oKSB7CiAgICAgICAgICAgICAgICByIHx8CiAgICAgICAgICAgICAgICAgICgoaSA9IGEoKSksCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKSwKICAgICAgICAgICAgICAgICAgICAociA9IGNyZWF0ZVRhZygiY2FudmFzIikpLAogICAgICAgICAgICAgICAgICAgIChuID0gci5nZXRDb250ZXh0KCIyZCIpKSwKICAgICAgICAgICAgICAgICAgICAobi5maWx0ZXIgPSAidXJsKCMiICsgdCArICIpIiksCiAgICAgICAgICAgICAgICAgICAgKG4uZmlsbFN0eWxlID0gInJnYmEoMCwwLDAsMCkiKSwKICAgICAgICAgICAgICAgICAgICBuLmZpbGxSZWN0KDAsIDAsIDEsIDEpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbChjKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICByIHx8IG8oKSwKICAgICAgICAgICAgICAgICAgKHIud2lkdGggPSBjLndpZHRoKSwKICAgICAgICAgICAgICAgICAgKHIuaGVpZ2h0ID0gYy5oZWlnaHQpLAogICAgICAgICAgICAgICAgICAobi5maWx0ZXIgPSAidXJsKCMiICsgdCArICIpIiksCiAgICAgICAgICAgICAgICAgIHIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB7IGxvYWQ6IG8sIGdldDogbCB9OwogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVDYW52YXMoZSwgdCkgewogICAgICAgICAgICAgIGlmIChmZWF0dXJlU3VwcG9ydC5vZmZzY3JlZW5DYW52YXMpCiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9mZnNjcmVlbkNhbnZhcyhlLCB0KTsKICAgICAgICAgICAgICB2YXIgciA9IGNyZWF0ZVRhZygiY2FudmFzIik7CiAgICAgICAgICAgICAgcmV0dXJuIChyLndpZHRoID0gZSksIChyLmhlaWdodCA9IHQpLCByOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBhc3NldExvYWRlciA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIGxvYWRMdW1hQ2FudmFzOiBsdW1hTG9hZGVyLmxvYWQsCiAgICAgICAgICAgICAgICBnZXRMdW1hQ2FudmFzOiBsdW1hTG9hZGVyLmdldCwKICAgICAgICAgICAgICAgIGNyZWF0ZUNhbnZhcywKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgIHJlZ2lzdGVyZWRFZmZlY3RzID0ge307CiAgICAgICAgICAgIGZ1bmN0aW9uIENWRWZmZWN0cyhlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gZS5kYXRhLmVmID8gZS5kYXRhLmVmLmxlbmd0aCA6IDA7CiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzID0gW107CiAgICAgICAgICAgICAgdmFyIG47CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgewogICAgICAgICAgICAgICAgbiA9IG51bGw7CiAgICAgICAgICAgICAgICB2YXIgaSA9IGUuZGF0YS5lZlt0XS50eTsKICAgICAgICAgICAgICAgIGlmIChyZWdpc3RlcmVkRWZmZWN0c1tpXSkgewogICAgICAgICAgICAgICAgICB2YXIgYSA9IHJlZ2lzdGVyZWRFZmZlY3RzW2ldLmVmZmVjdDsKICAgICAgICAgICAgICAgICAgbiA9IG5ldyBhKGUuZWZmZWN0c01hbmFnZXIuZWZmZWN0RWxlbWVudHNbdF0sIGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbiAmJiB0aGlzLmZpbHRlcnMucHVzaChuKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzLmxlbmd0aCAmJiBlLmFkZFJlbmRlcmFibGVDb21wb25lbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKENWRWZmZWN0cy5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgciA9IHRoaXMuZmlsdGVycy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgdGhpcy5maWx0ZXJzW3RdLnJlbmRlckZyYW1lKGUpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQ1ZFZmZlY3RzLnByb3RvdHlwZS5nZXRFZmZlY3RzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgbiA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzW3RdLnR5cGUgPT09IGUgJiYgbi5wdXNoKHRoaXMuZmlsdGVyc1t0XSk7CiAgICAgICAgICAgICAgICByZXR1cm4gbjsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJFZmZlY3QoZSwgdCkgewogICAgICAgICAgICAgIHJlZ2lzdGVyZWRFZmZlY3RzW2VdID0geyBlZmZlY3Q6IHQgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBDVk1hc2tFbGVtZW50KGUsIHQpIHsKICAgICAgICAgICAgICAodGhpcy5kYXRhID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50ID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5tYXNrc1Byb3BlcnRpZXMgPSB0aGlzLmRhdGEubWFza3NQcm9wZXJ0aWVzIHx8IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGgpKTsKICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgIG4gPSB0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGgsCiAgICAgICAgICAgICAgICBpID0gITE7CiAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICAgIHRoaXMubWFza3NQcm9wZXJ0aWVzW3JdLm1vZGUgIT09ICJuIiAmJiAoaSA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbcl0gPSBTaGFwZVByb3BlcnR5RmFjdG9yeS5nZXRTaGFwZVByb3AoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgIHRoaXMubWFza3NQcm9wZXJ0aWVzW3JdLAogICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgKHRoaXMuaGFzTWFza3MgPSBpKSwKICAgICAgICAgICAgICAgIGkgJiYgdGhpcy5lbGVtZW50LmFkZFJlbmRlcmFibGVDb21wb25lbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKENWTWFza0VsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGlmICh0aGlzLmhhc01hc2tzKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMuZWxlbWVudC5maW5hbFRyYW5zZm9ybS5tYXQsCiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLmVsZW1lbnQuY2FudmFzQ29udGV4dCwKICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgbiA9IHRoaXMubWFza3NQcm9wZXJ0aWVzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbzsKICAgICAgICAgICAgICAgIGZvciAodC5iZWdpblBhdGgoKSwgciA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hc2tzUHJvcGVydGllc1tyXS5tb2RlICE9PSAibiIpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hc2tzUHJvcGVydGllc1tyXS5pbnYgJiYKICAgICAgICAgICAgICAgICAgICAgICh0Lm1vdmVUbygwLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgdC5saW5lVG8odGhpcy5lbGVtZW50Lmdsb2JhbERhdGEuY29tcFNpemUudywgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHQubGluZVRvKAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5nbG9iYWxEYXRhLmNvbXBTaXplLncsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lmdsb2JhbERhdGEuY29tcFNpemUuaAogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICB0LmxpbmVUbygwLCB0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5jb21wU2l6ZS5oKSwKICAgICAgICAgICAgICAgICAgICAgICAgdC5saW5lVG8oMCwgMCkpLAogICAgICAgICAgICAgICAgICAgICAgKG8gPSB0aGlzLnZpZXdEYXRhW3JdLnYpLAogICAgICAgICAgICAgICAgICAgICAgKGkgPSBlLmFwcGx5VG9Qb2ludEFycmF5KG8udlswXVswXSwgby52WzBdWzFdLCAwKSksCiAgICAgICAgICAgICAgICAgICAgICB0Lm1vdmVUbyhpWzBdLCBpWzFdKTsKICAgICAgICAgICAgICAgICAgICB2YXIgbCwKICAgICAgICAgICAgICAgICAgICAgIGMgPSBvLl9sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChsID0gMTsgbCA8IGM7IGwgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChhID0gZS5hcHBseVRvVHJpcGxlUG9pbnRzKG8ub1tsIC0gMV0sIG8uaVtsXSwgby52W2xdKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHQuYmV6aWVyQ3VydmVUbyhhWzBdLCBhWzFdLCBhWzJdLCBhWzNdLCBhWzRdLCBhWzVdKTsKICAgICAgICAgICAgICAgICAgICAoYSA9IGUuYXBwbHlUb1RyaXBsZVBvaW50cyhvLm9bbCAtIDFdLCBvLmlbMF0sIG8udlswXSkpLAogICAgICAgICAgICAgICAgICAgICAgdC5iZXppZXJDdXJ2ZVRvKGFbMF0sIGFbMV0sIGFbMl0sIGFbM10sIGFbNF0sIGFbNV0pOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5yZW5kZXJlci5zYXZlKCEwKSwgdC5jbGlwKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQ1ZNYXNrRWxlbWVudC5wcm90b3R5cGUuZ2V0TWFza1Byb3BlcnR5ID0KICAgICAgICAgICAgICAgIE1hc2tFbGVtZW50LnByb3RvdHlwZS5nZXRNYXNrUHJvcGVydHkpLAogICAgICAgICAgICAgIChDVk1hc2tFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50ID0gbnVsbDsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQ1ZCYXNlRWxlbWVudCgpIHsgfQogICAgICAgICAgICB2YXIgb3BlcmF0aW9uc01hcCA9IHsKICAgICAgICAgICAgICAxOiAic291cmNlLWluIiwKICAgICAgICAgICAgICAyOiAic291cmNlLW91dCIsCiAgICAgICAgICAgICAgMzogInNvdXJjZS1pbiIsCiAgICAgICAgICAgICAgNDogInNvdXJjZS1vdXQiLAogICAgICAgICAgICB9OwogICAgICAgICAgICAoQ1ZCYXNlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudHM6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgICBpbml0UmVuZGVyZXJFbGVtZW50OiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgY3JlYXRlQ29udGFpbmVyRWxlbWVudHM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEudHQgPj0gMSkgewogICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcnMgPSBbXTsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dCwKICAgICAgICAgICAgICAgICAgICByID0gYXNzZXRMb2FkZXIuY3JlYXRlQ2FudmFzKAogICAgICAgICAgICAgICAgICAgICAgdC5jYW52YXMud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICB0LmNhbnZhcy5oZWlnaHQKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcnMucHVzaChyKTsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSBhc3NldExvYWRlci5jcmVhdGVDYW52YXMoCiAgICAgICAgICAgICAgICAgICAgdC5jYW52YXMud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgdC5jYW52YXMuaGVpZ2h0CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVycy5wdXNoKG4pLAogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS50dCA+PSAzICYmCiAgICAgICAgICAgICAgICAgICAgIWRvY3VtZW50Ll9pc1Byb3h5ICYmCiAgICAgICAgICAgICAgICAgICAgYXNzZXRMb2FkZXIubG9hZEx1bWFDYW52YXMoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQgPSB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcyA9IHRoaXMuZ2xvYmFsRGF0YS50cmFuc2Zvcm1DYW52YXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJhYmxlRWZmZWN0c01hbmFnZXIgPSBuZXcgQ1ZFZmZlY3RzKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hFZmZlY3RUcmFuc2Zvcm1zKCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjcmVhdGVDb250ZW50OiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgc2V0QmxlbmRNb2RlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZ2xvYmFsRGF0YTsKICAgICAgICAgICAgICAgIGlmICh0LmJsZW5kTW9kZSAhPT0gdGhpcy5kYXRhLmJtKSB7CiAgICAgICAgICAgICAgICAgIHQuYmxlbmRNb2RlID0gdGhpcy5kYXRhLmJtOwogICAgICAgICAgICAgICAgICB2YXIgciA9IGdldEJsZW5kTW9kZSh0aGlzLmRhdGEuYm0pOwogICAgICAgICAgICAgICAgICB0LmNhbnZhc0NvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNyZWF0ZVJlbmRlcmFibGVDb21wb25lbnRzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy5tYXNrTWFuYWdlciA9IG5ldyBDVk1hc2tFbGVtZW50KHRoaXMuZGF0YSwgdGhpcykpLAogICAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1FZmZlY3RzID0KICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlci5nZXRFZmZlY3RzKAogICAgICAgICAgICAgICAgICAgICAgZWZmZWN0VHlwZXMuVFJBTlNGT1JNX0VGRkVDVAogICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgaGlkZUVsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICF0aGlzLmhpZGRlbiAmJgogICAgICAgICAgICAgICAgICAoIXRoaXMuaXNJblJhbmdlIHx8IHRoaXMuaXNUcmFuc3BhcmVudCkgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuaGlkZGVuID0gITApOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2hvd0VsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuaXNJblJhbmdlICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLmlzVHJhbnNwYXJlbnQgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLmhpZGRlbiA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLm1hc2tNYW5hZ2VyLl9pc0ZpcnN0RnJhbWUgPSAhMCkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgY2xlYXJDYW52YXM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0LmNsZWFyUmVjdCgKICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYW52YXMudHgsCiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLnR5LAogICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUNhbnZhcy53ICogdGhpcy50cmFuc2Zvcm1DYW52YXMuc3gsCiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLmggKiB0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByZXBhcmVMYXllcjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS50dCA+PSAxKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5idWZmZXJzWzBdLAogICAgICAgICAgICAgICAgICAgIHIgPSB0LmdldENvbnRleHQoIjJkIik7CiAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXMociksCiAgICAgICAgICAgICAgICAgICAgci5kcmF3SW1hZ2UodGhpcy5jYW52YXNDb250ZXh0LmNhbnZhcywgMCwgMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudFRyYW5zZm9ybSA9IHRoaXMuY2FudmFzQ29udGV4dC5nZXRUcmFuc2Zvcm0oKSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQ2FudmFzKHRoaXMuY2FudmFzQ29udGV4dCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnNldFRyYW5zZm9ybSh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZXhpdExheWVyOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhLnR0ID49IDEpIHsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmJ1ZmZlcnNbMV0sCiAgICAgICAgICAgICAgICAgICAgciA9IHQuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckNhbnZhcyhyKSwKICAgICAgICAgICAgICAgICAgICByLmRyYXdJbWFnZSh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXModGhpcy5jYW52YXNDb250ZXh0KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSk7CiAgICAgICAgICAgICAgICAgIHZhciBuID0gdGhpcy5jb21wLmdldEVsZW1lbnRCeUlkKAogICAgICAgICAgICAgICAgICAgICJ0cCIgaW4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLnRwIDogdGhpcy5kYXRhLmluZCAtIDEKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIChuLnJlbmRlckZyYW1lKCEwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgMCwgMCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHQgPj0gMyAmJiAhZG9jdW1lbnQuX2lzUHJveHkpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIHZhciBpID0gYXNzZXRMb2FkZXIuZ2V0THVtYUNhbnZhcygKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5jYW52YXMKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgYSA9IGkuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgICBhLmRyYXdJbWFnZSh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXModGhpcy5jYW52YXNDb250ZXh0KSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5kcmF3SW1hZ2UoaSwgMCwgMCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKHRoaXMuY2FudmFzQ29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPQogICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnNNYXBbdGhpcy5kYXRhLnR0XSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LmRyYXdJbWFnZSh0LCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5jYW52YXNDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICAiZGVzdGluYXRpb24tb3ZlciIpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5kcmF3SW1hZ2UodGhpcy5idWZmZXJzWzBdLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY2FudmFzQ29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPQogICAgICAgICAgICAgICAgICAgICAgInNvdXJjZS1vdmVyIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW5kZXJGcmFtZTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgISh0aGlzLmhpZGRlbiB8fCB0aGlzLmRhdGEuaGQpICYmCiAgICAgICAgICAgICAgICAgICEodGhpcy5kYXRhLnRkID09PSAxICYmICF0KQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyVA=="}},"time_used":77,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":36,"receive":41,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/recaptcha/api.js?render=explicit","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.969Z","timestamp":1785139669969,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /recaptcha/api.js?render=explicit HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript; charset=utf-8\r\nexpires: Mon, 27 Jul 2026 08:07:50 GMT\r\ndate: Mon, 27 Jul 2026 08:07:50 GMT\r\ncache-control: private, max-age=300\r\ncross-origin-resource-policy: cross-origin\r\nreport-to: {\"group\":\"coop_38fac9d5b82543fc4729580d18ff2d3d\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/38fac9d5b82543fc4729580d18ff2d3d\"}]}\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_38fac9d5b82543fc4729580d18ff2d3d\"\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":978,"size_decoded":1287,"mime_type":"text/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (978), with no line terminators","md5":"f59c1c6ef60fb44cd5f3d7e17b13f225","sha1":"0c2d6e018d142bf58e17428c6348283ab20e27d9","sha256":"e6f65a57ede1281f138b76bb5754be5fdf233999cb7f1e0873b5f589d1bfbb8c","sha512":"8a7695bfc4f3c03857285fa6d96a2c16aa3dbe606e01dffbe81024dff48f9c9d41cefb008ec4b5addb263c7ed25bd7fc65b00e61c4ad331d19eb7cc10187a1e2","ssdeep":"","tlshash":"951154731e08e0390f3209e1a2ffdab1e453701cf16849e89419dac42eaeccbcf05485","first_seen":"2026-07-14T22:47:23.686577Z","last_seen":"2026-08-04T06:04:26.243684Z","times_seen":724,"resource_available":true,"data":"LyogUExFQVNFIERPIE5PVCBDT1BZIEFORCBQQVNURSBUSElTIENPREUuICovKGZ1bmN0aW9uKCl7dmFyIHc9d2luZG93LEM9J19fX2dyZWNhcHRjaGFfY2ZnJyxjZmc9d1tDXT13W0NdfHx7fSxOPSdncmVjYXB0Y2hhJzt2YXIgZ3I9d1tOXT13W05dfHx7fTtnci5yZWFkeT1nci5yZWFkeXx8ZnVuY3Rpb24oZil7KGNmZ1snZm5zJ109Y2ZnWydmbnMnXXx8W10pLnB1c2goZik7fTt3WydfX3JlY2FwdGNoYV9hcGknXT0naHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpMi8nOyhjZmdbJ3JlbmRlciddPWNmZ1sncmVuZGVyJ118fFtdKS5wdXNoKCdleHBsaWNpdCcpOyhjZmdbJ2FuY2hvci1tcyddPWNmZ1snYW5jaG9yLW1zJ118fFtdKS5wdXNoKDIwMDAwKTsoY2ZnWydleGVjdXRlLW1zJ109Y2ZnWydleGVjdXRlLW1zJ118fFtdKS5wdXNoKDMwMDAwKTt3WydfX2dvb2dsZV9yZWNhcHRjaGFfY2xpZW50J109dHJ1ZTt2YXIgZD1kb2N1bWVudCxwbz1kLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3BvLnR5cGU9J3RleHQvamF2YXNjcmlwdCc7cG8uYXN5bmM9dHJ1ZTsgcG8uY2hhcnNldD0ndXRmLTgnO3BvLnNyYz0naHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdi9yZWNhcHRjaGFfX2VuLmpzJztwby5jcm9zc09yaWdpbj0nYW5vbnltb3VzJztwby5pbnRlZ3JpdHk9J3NoYTM4NC1ETUp1Y2ZnamNtdGM0YTh4OWdGZlBnd29XWEsrMXFvems3Sy93VEZHVnRkdVlzM3dnMkJJOFo1bHJKWFpWK2lFJzt2YXIgZT1kLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtub25jZV0nKSxuPWUmJihlWydub25jZSddfHxlLmdldEF0dHJpYnV0ZSgnbm9uY2UnKSk7aWYobil7cG8uc2V0QXR0cmlidXRlKCdub25jZScsbik7fXZhciBzPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocG8sIHMpO30pKCk7"}},"time_used":45,"timings":{"blocked":-1,"dns":2,"connect":24,"send":0,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CxZrXy87.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.113Z","timestamp":1785139670113,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CxZrXy87.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/_nuxt/D3OnLe3d.js\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1aacf-654aa2b830142-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 27700\r\nKeep-Alive: timeout=5, max=85\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":109263,"size_decoded":28053,"mime_type":"application/javascript","magic":"ASCII text","md5":"7e3b301e325ace9ccfccb0825515d7ab","sha1":"af3ccf166811d1657225c7740a1690e54442c01a","sha256":"5da5f1a6d33cd911f34e9b6d696072c8ba14154bf855b0fa58658f80006c23db","sha512":"d12acc6c1afcec4cb14384f9fbd82d50cf83cdfd48a04601221d751679fa715e15bd20e2962b2b6ea0c7e7dd1f2a214edb7f2ff821b29bcc1fe66bebe66e7a3c","ssdeep":"1536:ip1MxwyUB9xI0fxk8p5F8BKNS4Sei0pdlZRxX0blK5TjvjHAQQzFTf7S8F+3V3UF:98k2SiX0bQQ9fUvs1","tlshash":"fbb3704752e125385293f17e5f5bc021366a880b7d89f8d43a9c06689f4d82c47faffa","first_seen":"2025-10-23T03:46:52.210796Z","last_seen":"2026-07-27T11:49:48.930501Z","times_seen":8,"resource_available":true,"data":"ZnVuY3Rpb24gYWUodCkgewogIHJldHVybiAoCiAgICB0ICE9PSBudWxsICYmCiAgICB0eXBlb2YgdCA9PSAib2JqZWN0IiAmJgogICAgImNvbnN0cnVjdG9yIiBpbiB0ICYmCiAgICB0LmNvbnN0cnVjdG9yID09PSBPYmplY3QKICApOwp9CmZ1bmN0aW9uIHJlKHQsIGUpIHsKICB0ID09PSB2b2lkIDAgJiYgKHQgPSB7fSksCiAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSksCiAgICBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChpKSA9PiB7CiAgICAgIHR5cGVvZiB0W2ldID4gInUiCiAgICAgICAgPyAodFtpXSA9IGVbaV0pCiAgICAgICAgOiBhZShlW2ldKSAmJgogICAgICAgICAgYWUodFtpXSkgJiYKICAgICAgICAgIE9iamVjdC5rZXlzKGVbaV0pLmxlbmd0aCA+IDAgJiYKICAgICAgICAgIHJlKHRbaV0sIGVbaV0pOwogICAgfSk7Cn0KY29uc3QgdmUgPSB7CiAgYm9keToge30sCiAgYWRkRXZlbnRMaXN0ZW5lcigpIHt9LAogIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSB7fSwKICBhY3RpdmVFbGVtZW50OiB7IGJsdXIoKSB7fSwgbm9kZU5hbWU6ICIiIH0sCiAgcXVlcnlTZWxlY3RvcigpIHsKICAgIHJldHVybiBudWxsOwogIH0sCiAgcXVlcnlTZWxlY3RvckFsbCgpIHsKICAgIHJldHVybiBbXTsKICB9LAogIGdldEVsZW1lbnRCeUlkKCkgewogICAgcmV0dXJuIG51bGw7CiAgfSwKICBjcmVhdGVFdmVudCgpIHsKICAgIHJldHVybiB7IGluaXRFdmVudCgpIHt9IH07CiAgfSwKICBjcmVhdGVFbGVtZW50KCkgewogICAgcmV0dXJuIHsKICAgICAgY2hpbGRyZW46IFtdLAogICAgICBjaGlsZE5vZGVzOiBbXSwKICAgICAgc3R5bGU6IHt9LAogICAgICBzZXRBdHRyaWJ1dGUoKSB7fSwKICAgICAgZ2V0RWxlbWVudHNCeVRhZ05hbWUoKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9LAogICAgfTsKICB9LAogIGNyZWF0ZUVsZW1lbnROUygpIHsKICAgIHJldHVybiB7fTsKICB9LAogIGltcG9ydE5vZGUoKSB7CiAgICByZXR1cm4gbnVsbDsKICB9LAogIGxvY2F0aW9uOiB7CiAgICBoYXNoOiAiIiwKICAgIGhvc3Q6ICIiLAogICAgaG9zdG5hbWU6ICIiLAogICAgaHJlZjogIiIsCiAgICBvcmlnaW46ICIiLAogICAgcGF0aG5hbWU6ICIiLAogICAgcHJvdG9jb2w6ICIiLAogICAgc2VhcmNoOiAiIiwKICB9LAp9OwpmdW5jdGlvbiBCKCkgewogIGNvbnN0IHQgPSB0eXBlb2YgZG9jdW1lbnQgPCAidSIgPyBkb2N1bWVudCA6IHt9OwogIHJldHVybiByZSh0LCB2ZSksIHQ7Cn0KY29uc3QgTWUgPSB7CiAgZG9jdW1lbnQ6IHZlLAogIG5hdmlnYXRvcjogeyB1c2VyQWdlbnQ6ICIiIH0sCiAgbG9jYXRpb246IHsKICAgIGhhc2g6ICIiLAogICAgaG9zdDogIiIsCiAgICBob3N0bmFtZTogIiIsCiAgICBocmVmOiAiIiwKICAgIG9yaWdpbjogIiIsCiAgICBwYXRobmFtZTogIiIsCiAgICBwcm90b2NvbDogIiIsCiAgICBzZWFyY2g6ICIiLAogIH0sCiAgaGlzdG9yeTogeyByZXBsYWNlU3RhdGUoKSB7fSwgcHVzaFN0YXRlKCkge30sIGdvKCkge30sIGJhY2soKSB7fSB9LAogIEN1c3RvbUV2ZW50OiBmdW5jdGlvbiAoKSB7CiAgICByZXR1cm4gdGhpczsKICB9LAogIGFkZEV2ZW50TGlzdGVuZXIoKSB7fSwKICByZW1vdmVFdmVudExpc3RlbmVyKCkge30sCiAgZ2V0Q29tcHV0ZWRTdHlsZSgpIHsKICAgIHJldHVybiB7CiAgICAgIGdldFByb3BlcnR5VmFsdWUoKSB7CiAgICAgICAgcmV0dXJuICIiOwogICAgICB9LAogICAgfTsKICB9LAogIEltYWdlKCkge30sCiAgRGF0ZSgpIHt9LAogIHNjcmVlbjoge30sCiAgc2V0VGltZW91dCgpIHt9LAogIGNsZWFyVGltZW91dCgpIHt9LAogIG1hdGNoTWVkaWEoKSB7CiAgICByZXR1cm4ge307CiAgfSwKICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCkgewogICAgcmV0dXJuIHR5cGVvZiBzZXRUaW1lb3V0ID4gInUiID8gKHQoKSwgbnVsbCkgOiBzZXRUaW1lb3V0KHQsIDApOwogIH0sCiAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodCkgewogICAgdHlwZW9mIHNldFRpbWVvdXQgPiAidSIgfHwgY2xlYXJUaW1lb3V0KHQpOwogIH0sCn07CmZ1bmN0aW9uIEEoKSB7CiAgY29uc3QgdCA9IHR5cGVvZiB3aW5kb3cgPCAidSIgPyB3aW5kb3cgOiB7fTsKICByZXR1cm4gcmUodCwgTWUpLCB0Owp9CmZ1bmN0aW9uIENlKHQpIHsKICByZXR1cm4gKAogICAgdCA9PT0gdm9pZCAwICYmICh0ID0gIiIpLAogICAgdAogICAgICAudHJpbSgpCiAgICAgIC5zcGxpdCgiICIpCiAgICAgIC5maWx0ZXIoKGUpID0+ICEhZS50cmltKCkpCiAgKTsKfQpmdW5jdGlvbiBJZSh0KSB7CiAgY29uc3QgZSA9IHQ7CiAgT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoaSkgPT4gewogICAgdHJ5IHsKICAgICAgZVtpXSA9IG51bGw7CiAgICB9IGNhdGNoIHt9CiAgICB0cnkgewogICAgICBkZWxldGUgZVtpXTsKICAgIH0gY2F0Y2gge30KICB9KTsKfQpmdW5jdGlvbiBaKHQsIGUpIHsKICByZXR1cm4gZSA9PT0gdm9pZCAwICYmIChlID0gMCksIHNldFRpbWVvdXQodCwgZSk7Cn0KZnVuY3Rpb24gSCgpIHsKICByZXR1cm4gRGF0ZS5ub3coKTsKfQpmdW5jdGlvbiBMZSh0KSB7CiAgY29uc3QgZSA9IEEoKTsKICBsZXQgaTsKICByZXR1cm4gKAogICAgZS5nZXRDb21wdXRlZFN0eWxlICYmIChpID0gZS5nZXRDb21wdXRlZFN0eWxlKHQsIG51bGwpKSwKICAgICFpICYmIHQuY3VycmVudFN0eWxlICYmIChpID0gdC5jdXJyZW50U3R5bGUpLAogICAgaSB8fCAoaSA9IHQuc3R5bGUpLAogICAgaQogICk7Cn0KZnVuY3Rpb24gT2UodCwgZSkgewogIGUgPT09IHZvaWQgMCAmJiAoZSA9ICJ4Iik7CiAgY29uc3QgaSA9IEEoKTsKICBsZXQgcywgciwgbjsKICBjb25zdCBhID0gTGUodCk7CiAgcmV0dXJuICgKICAgIGkuV2ViS2l0Q1NTTWF0cml4CiAgICAgID8gKChyID0gYS50cmFuc2Zvcm0gfHwgYS53ZWJraXRUcmFuc2Zvcm0pLAogICAgICAgIHIuc3BsaXQoIiwiKS5sZW5ndGggPiA2ICYmCiAgICAgICAgICAociA9IHIKICAgICAgICAgICAgLnNwbGl0KCIsICIpCiAgICAgICAgICAgIC5tYXAoKGwpID0+IGwucmVwbGFjZSgiLCIsICIuIikpCiAgICAgICAgICAgIC5qb2luKCIsICIpKSwKICAgICAgICAobiA9IG5ldyBpLldlYktpdENTU01hdHJpeChyID09PSAibm9uZSIgPyAiIiA6IHIpKSkKICAgICAgOiAoKG4gPQogICAgICAgICAgYS5Nb3pUcmFuc2Zvcm0gfHwKICAgICAgICAgIGEuT1RyYW5zZm9ybSB8fAogICAgICAgICAgYS5Nc1RyYW5zZm9ybSB8fAogICAgICAgICAgYS5tc1RyYW5zZm9ybSB8fAogICAgICAgICAgYS50cmFuc2Zvcm0gfHwKICAgICAgICAgIGEKICAgICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpCiAgICAgICAgICAgIC5yZXBsYWNlKCJ0cmFuc2xhdGUoIiwgIm1hdHJpeCgxLCAwLCAwLCAxLCIpKSwKICAgICAgICAocyA9IG4udG9TdHJpbmcoKS5zcGxpdCgiLCIpKSksCiAgICBlID09PSAieCIgJiYKICAgICAgKGkuV2ViS2l0Q1NTTWF0cml4CiAgICAgICAgPyAociA9IG4ubTQxKQogICAgICAgIDogcy5sZW5ndGggPT09IDE2CiAgICAgICAgPyAociA9IHBhcnNlRmxvYXQoc1sxMl0pKQogICAgICAgIDogKHIgPSBwYXJzZUZsb2F0KHNbNF0pKSksCiAgICBlID09PSAieSIgJiYKICAgICAgKGkuV2ViS2l0Q1NTTWF0cml4CiAgICAgICAgPyAociA9IG4ubTQyKQogICAgICAgIDogcy5sZW5ndGggPT09IDE2CiAgICAgICAgPyAociA9IHBhcnNlRmxvYXQoc1sxM10pKQogICAgICAgIDogKHIgPSBwYXJzZUZsb2F0KHNbNV0pKSksCiAgICByIHx8IDAKICApOwp9CmZ1bmN0aW9uIE4odCkgewogIHJldHVybiAoCiAgICB0eXBlb2YgdCA9PSAib2JqZWN0IiAmJgogICAgdCAhPT0gbnVsbCAmJgogICAgdC5jb25zdHJ1Y3RvciAmJgogICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsIC0xKSA9PT0gIk9iamVjdCIKICApOwp9CmZ1bmN0aW9uIHplKHQpIHsKICByZXR1cm4gdHlwZW9mIHdpbmRvdyA8ICJ1IiAmJiB0eXBlb2Ygd2luZG93LkhUTUxFbGVtZW50IDwgInUiCiAgICA/IHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudAogICAgOiB0ICYmICh0Lm5vZGVUeXBlID09PSAxIHx8IHQubm9kZVR5cGUgPT09IDExKTsKfQpmdW5jdGlvbiBfKCkgewogIGNvbnN0IHQgPSBPYmplY3QoYXJndW1lbnRzLmxlbmd0aCA8PSAwID8gdm9pZCAwIDogYXJndW1lbnRzWzBdKSwKICAgIGUgPSBbIl9fcHJvdG9fXyIsICJjb25zdHJ1Y3RvciIsICJwcm90b3R5cGUiXTsKICBmb3IgKGxldCBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkgKz0gMSkgewogICAgY29uc3QgcyA9IGkgPCAwIHx8IGFyZ3VtZW50cy5sZW5ndGggPD0gaSA/IHZvaWQgMCA6IGFyZ3VtZW50c1tpXTsKICAgIGlmIChzICE9IG51bGwgJiYgIXplKHMpKSB7CiAgICAgIGNvbnN0IHIgPSBPYmplY3Qua2V5cyhPYmplY3QocykpLmZpbHRlcigobikgPT4gZS5pbmRleE9mKG4pIDwgMCk7CiAgICAgIGZvciAobGV0IG4gPSAwLCBhID0gci5sZW5ndGg7IG4gPCBhOyBuICs9IDEpIHsKICAgICAgICBjb25zdCBsID0gcltuXSwKICAgICAgICAgIG8gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsIGwpOwogICAgICAgIG8gIT09IHZvaWQgMCAmJgogICAgICAgICAgby5lbnVtZXJhYmxlICYmCiAgICAgICAgICAoTih0W2xdKSAmJiBOKHNbbF0pCiAgICAgICAgICAgID8gc1tsXS5fX3N3aXBlcl9fCiAgICAgICAgICAgICAgPyAodFtsXSA9IHNbbF0pCiAgICAgICAgICAgICAgOiBfKHRbbF0sIHNbbF0pCiAgICAgICAgICAgIDogIU4odFtsXSkgJiYgTihzW2xdKQogICAgICAgICAgICA/ICgodFtsXSA9IHt9KSwgc1tsXS5fX3N3aXBlcl9fID8gKHRbbF0gPSBzW2xdKSA6IF8odFtsXSwgc1tsXSkpCiAgICAgICAgICAgIDogKHRbbF0gPSBzW2xdKSk7CiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gUih0LCBlLCBpKSB7CiAgdC5zdHlsZS5zZXRQcm9wZXJ0eShlLCBpKTsKfQpmdW5jdGlvbiB3ZSh0KSB7CiAgbGV0IHsgc3dpcGVyOiBlLCB0YXJnZXRQb3NpdGlvbjogaSwgc2lkZTogcyB9ID0gdDsKICBjb25zdCByID0gQSgpLAogICAgbiA9IC1lLnRyYW5zbGF0ZTsKICBsZXQgYSA9IG51bGwsCiAgICBsOwogIGNvbnN0IG8gPSBlLnBhcmFtcy5zcGVlZDsKICAoZS53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGUgPSAibm9uZSIpLAogICAgci5jYW5jZWxBbmltYXRpb25GcmFtZShlLmNzc01vZGVGcmFtZUlEKTsKICBjb25zdCBjID0gaSA+IG4gPyAibmV4dCIgOiAicHJldiIsCiAgICBkID0gKHAsIHUpID0+IChjID09PSAibmV4dCIgJiYgcCA+PSB1KSB8fCAoYyA9PT0gInByZXYiICYmIHAgPD0gdSksCiAgICBmID0gKCkgPT4gewogICAgICAobCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpKSwgYSA9PT0gbnVsbCAmJiAoYSA9IGwpOwogICAgICBjb25zdCBwID0gTWF0aC5tYXgoTWF0aC5taW4oKGwgLSBhKSAvIG8sIDEpLCAwKSwKICAgICAgICB1ID0gMC41IC0gTWF0aC5jb3MocCAqIE1hdGguUEkpIC8gMjsKICAgICAgbGV0IGggPSBuICsgdSAqIChpIC0gbik7CiAgICAgIGlmICgoZChoLCBpKSAmJiAoaCA9IGkpLCBlLndyYXBwZXJFbC5zY3JvbGxUbyh7IFtzXTogaCB9KSwgZChoLCBpKSkpIHsKICAgICAgICAoZS53cmFwcGVyRWwuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIiksCiAgICAgICAgICAoZS53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGUgPSAiIiksCiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgKGUud3JhcHBlckVsLnN0eWxlLm92ZXJmbG93ID0gIiIpLCBlLndyYXBwZXJFbC5zY3JvbGxUbyh7IFtzXTogaCB9KTsKICAgICAgICAgIH0pLAogICAgICAgICAgci5jYW5jZWxBbmltYXRpb25GcmFtZShlLmNzc01vZGVGcmFtZUlEKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZS5jc3NNb2RlRnJhbWVJRCA9IHIucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGYpOwogICAgfTsKICBmKCk7Cn0KZnVuY3Rpb24gcXQodCkgewogIHJldHVybiAoCiAgICB0LnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtdHJhbnNmb3JtIikgfHwKICAgICh0LnNoYWRvd1Jvb3QgJiYgdC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtdHJhbnNmb3JtIikpIHx8CiAgICB0CiAgKTsKfQpmdW5jdGlvbiBEKHQsIGUpIHsKICBlID09PSB2b2lkIDAgJiYgKGUgPSAiIik7CiAgY29uc3QgaSA9IFsuLi50LmNoaWxkcmVuXTsKICByZXR1cm4gKAogICAgdCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiBpLnB1c2goLi4udC5hc3NpZ25lZEVsZW1lbnRzKCkpLAogICAgZSA/IGkuZmlsdGVyKChzKSA9PiBzLm1hdGNoZXMoZSkpIDogaQogICk7Cn0KZnVuY3Rpb24gQWUodCwgZSkgewogIGNvbnN0IGkgPSBlLmNvbnRhaW5zKHQpOwogIHJldHVybiAhaSAmJiBlIGluc3RhbmNlb2YgSFRNTFNsb3RFbGVtZW50CiAgICA/IFsuLi5lLmFzc2lnbmVkRWxlbWVudHMoKV0uaW5jbHVkZXModCkKICAgIDogaTsKfQpmdW5jdGlvbiBqKHQpIHsKICB0cnkgewogICAgY29uc29sZS53YXJuKHQpOwogICAgcmV0dXJuOwogIH0gY2F0Y2gge30KfQpmdW5jdGlvbiBlZSh0LCBlKSB7CiAgZSA9PT0gdm9pZCAwICYmIChlID0gW10pOwogIGNvbnN0IGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpOwogIHJldHVybiBpLmNsYXNzTGlzdC5hZGQoLi4uKEFycmF5LmlzQXJyYXkoZSkgPyBlIDogQ2UoZSkpKSwgaTsKfQpmdW5jdGlvbiBYdCh0KSB7CiAgY29uc3QgZSA9IEEoKSwKICAgIGkgPSBCKCksCiAgICBzID0gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwKICAgIHIgPSBpLmJvZHksCiAgICBuID0gdC5jbGllbnRUb3AgfHwgci5jbGllbnRUb3AgfHwgMCwKICAgIGEgPSB0LmNsaWVudExlZnQgfHwgci5jbGllbnRMZWZ0IHx8IDAsCiAgICBsID0gdCA9PT0gZSA/IGUuc2Nyb2xsWSA6IHQuc2Nyb2xsVG9wLAogICAgbyA9IHQgPT09IGUgPyBlLnNjcm9sbFggOiB0LnNjcm9sbExlZnQ7CiAgcmV0dXJuIHsgdG9wOiBzLnRvcCArIGwgLSBuLCBsZWZ0OiBzLmxlZnQgKyBvIC0gYSB9Owp9CmZ1bmN0aW9uIF9lKHQsIGUpIHsKICBjb25zdCBpID0gW107CiAgZm9yICg7IHQucHJldmlvdXNFbGVtZW50U2libGluZzsgKSB7CiAgICBjb25zdCBzID0gdC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nOwogICAgZSA/IHMubWF0Y2hlcyhlKSAmJiBpLnB1c2gocykgOiBpLnB1c2gocyksICh0ID0gcyk7CiAgfQogIHJldHVybiBpOwp9CmZ1bmN0aW9uIEdlKHQsIGUpIHsKICBjb25zdCBpID0gW107CiAgZm9yICg7IHQubmV4dEVsZW1lbnRTaWJsaW5nOyApIHsKICAgIGNvbnN0IHMgPSB0Lm5leHRFbGVtZW50U2libGluZzsKICAgIGUgPyBzLm1hdGNoZXMoZSkgJiYgaS5wdXNoKHMpIDogaS5wdXNoKHMpLCAodCA9IHMpOwogIH0KICByZXR1cm4gaTsKfQpmdW5jdGlvbiBrKHQsIGUpIHsKICByZXR1cm4gQSgpLmdldENvbXB1dGVkU3R5bGUodCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKTsKfQpmdW5jdGlvbiBkZSh0KSB7CiAgbGV0IGUgPSB0LAogICAgaTsKICBpZiAoZSkgewogICAgZm9yIChpID0gMDsgKGUgPSBlLnByZXZpb3VzU2libGluZykgIT09IG51bGw7ICkKICAgICAgZS5ub2RlVHlwZSA9PT0gMSAmJiAoaSArPSAxKTsKICAgIHJldHVybiBpOwogIH0KfQpmdW5jdGlvbiBEZSh0LCBlKSB7CiAgY29uc3QgaSA9IFtdOwogIGxldCBzID0gdC5wYXJlbnRFbGVtZW50OwogIGZvciAoOyBzOyApIGUgPyBzLm1hdGNoZXMoZSkgJiYgaS5wdXNoKHMpIDogaS5wdXNoKHMpLCAocyA9IHMucGFyZW50RWxlbWVudCk7CiAgcmV0dXJuIGk7Cn0KZnVuY3Rpb24gVXQodCwgZSkgewogIGZ1bmN0aW9uIGkocykgewogICAgcy50YXJnZXQgPT09IHQgJiYgKGUuY2FsbCh0LCBzKSwgdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgaSkpOwogIH0KICBlICYmIHQuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIGkpOwp9CmZ1bmN0aW9uIGNlKHQsIGUsIGkpIHsKICBjb25zdCBzID0gQSgpOwogIHJldHVybiAoCiAgICB0W2UgPT09ICJ3aWR0aCIgPyAib2Zmc2V0V2lkdGgiIDogIm9mZnNldEhlaWdodCJdICsKICAgIHBhcnNlRmxvYXQoCiAgICAgIHMKICAgICAgICAuZ2V0Q29tcHV0ZWRTdHlsZSh0LCBudWxsKQogICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKGUgPT09ICJ3aWR0aCIgPyAibWFyZ2luLXJpZ2h0IiA6ICJtYXJnaW4tdG9wIikKICAgICkgKwogICAgcGFyc2VGbG9hdCgKICAgICAgcwogICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHQsIG51bGwpCiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoZSA9PT0gIndpZHRoIiA/ICJtYXJnaW4tbGVmdCIgOiAibWFyZ2luLWJvdHRvbSIpCiAgICApCiAgKTsKfQpmdW5jdGlvbiBLdCh0KSB7CiAgcmV0dXJuIChBcnJheS5pc0FycmF5KHQpID8gdCA6IFt0XSkuZmlsdGVyKChlKSA9PiAhIWUpOwp9CmZ1bmN0aW9uIEp0KHQpIHsKICByZXR1cm4gKGUpID0+CiAgICBNYXRoLmFicyhlKSA+IDAgJiYKICAgIHQuYnJvd3NlciAmJgogICAgdC5icm93c2VyLm5lZWQzZEZpeCAmJgogICAgTWF0aC5hYnMoZSkgJSA5MCA9PT0gMAogICAgICA/IGUgKyAwLjAwMQogICAgICA6IGU7Cn0KbGV0IFc7CmZ1bmN0aW9uIFZlKCkgewogIGNvbnN0IHQgPSBBKCksCiAgICBlID0gQigpOwogIHJldHVybiB7CiAgICBzbW9vdGhTY3JvbGw6CiAgICAgIGUuZG9jdW1lbnRFbGVtZW50ICYmCiAgICAgIGUuZG9jdW1lbnRFbGVtZW50LnN0eWxlICYmCiAgICAgICJzY3JvbGxCZWhhdmlvciIgaW4gZS5kb2N1bWVudEVsZW1lbnQuc3R5bGUsCiAgICB0b3VjaDogISEoCiAgICAgICJvbnRvdWNoc3RhcnQiIGluIHQgfHwKICAgICAgKHQuRG9jdW1lbnRUb3VjaCAmJiBlIGluc3RhbmNlb2YgdC5Eb2N1bWVudFRvdWNoKQogICAgKSwKICB9Owp9CmZ1bmN0aW9uIFNlKCkgewogIHJldHVybiBXIHx8IChXID0gVmUoKSksIFc7Cn0KbGV0IFk7CmZ1bmN0aW9uIGtlKHQpIHsKICBsZXQgeyB1c2VyQWdlbnQ6IGUgfSA9IHQgPT09IHZvaWQgMCA/IHt9IDogdDsKICBjb25zdCBpID0gU2UoKSwKICAgIHMgPSBBKCksCiAgICByID0gcy5uYXZpZ2F0b3IucGxhdGZvcm0sCiAgICBuID0gZSB8fCBzLm5hdmlnYXRvci51c2VyQWdlbnQsCiAgICBhID0geyBpb3M6ICExLCBhbmRyb2lkOiAhMSB9LAogICAgbCA9IHMuc2NyZWVuLndpZHRoLAogICAgbyA9IHMuc2NyZWVuLmhlaWdodCwKICAgIGMgPSBuLm1hdGNoKC8oQW5kcm9pZCk7P1tcc1wvXSsoW1xkLl0rKT8vKTsKICBsZXQgZCA9IG4ubWF0Y2goLyhpUGFkKS4qT1NccyhbXGRfXSspLyk7CiAgY29uc3QgZiA9IG4ubWF0Y2goLyhpUG9kKSguKk9TXHMoW1xkX10rKSk/LyksCiAgICBwID0gIWQgJiYgbi5tYXRjaCgvKGlQaG9uZVxzT1N8aU9TKVxzKFtcZF9dKykvKSwKICAgIHUgPSByID09PSAiV2luMzIiOwogIGxldCBoID0gciA9PT0gIk1hY0ludGVsIjsKICBjb25zdCBtID0gWwogICAgIjEwMjR4MTM2NiIsCiAgICAiMTM2NngxMDI0IiwKICAgICI4MzR4MTE5NCIsCiAgICAiMTE5NHg4MzQiLAogICAgIjgzNHgxMTEyIiwKICAgICIxMTEyeDgzNCIsCiAgICAiNzY4eDEwMjQiLAogICAgIjEwMjR4NzY4IiwKICAgICI4MjB4MTE4MCIsCiAgICAiMTE4MHg4MjAiLAogICAgIjgxMHgxMDgwIiwKICAgICIxMDgweDgxMCIsCiAgXTsKICByZXR1cm4gKAogICAgIWQgJiYKICAgICAgaCAmJgogICAgICBpLnRvdWNoICYmCiAgICAgIG0uaW5kZXhPZihgJHtsfXgke299YCkgPj0gMCAmJgogICAgICAoKGQgPSBuLm1hdGNoKC8oVmVyc2lvbilcLyhbXGQuXSspLykpLAogICAgICBkIHx8IChkID0gWzAsIDEsICIxM18wXzAiXSksCiAgICAgIChoID0gITEpKSwKICAgIGMgJiYgIXUgJiYgKChhLm9zID0gImFuZHJvaWQiKSwgKGEuYW5kcm9pZCA9ICEwKSksCiAgICAoZCB8fCBwIHx8IGYpICYmICgoYS5vcyA9ICJpb3MiKSwgKGEuaW9zID0gITApKSwKICAgIGEKICApOwp9CmZ1bmN0aW9uIFRlKHQpIHsKICByZXR1cm4gdCA9PT0gdm9pZCAwICYmICh0ID0ge30pLCBZIHx8IChZID0ga2UodCkpLCBZOwp9CmxldCBxOwpmdW5jdGlvbiBCZSgpIHsKICBjb25zdCB0ID0gQSgpLAogICAgZSA9IFRlKCk7CiAgbGV0IGkgPSAhMTsKICBmdW5jdGlvbiBzKCkgewogICAgY29uc3QgbCA9IHQubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpOwogICAgcmV0dXJuICgKICAgICAgbC5pbmRleE9mKCJzYWZhcmkiKSA+PSAwICYmCiAgICAgIGwuaW5kZXhPZigiY2hyb21lIikgPCAwICYmCiAgICAgIGwuaW5kZXhPZigiYW5kcm9pZCIpIDwgMAogICAgKTsKICB9CiAgaWYgKHMoKSkgewogICAgY29uc3QgbCA9IFN0cmluZyh0Lm5hdmlnYXRvci51c2VyQWdlbnQpOwogICAgaWYgKGwuaW5jbHVkZXMoIlZlcnNpb24vIikpIHsKICAgICAgY29uc3QgW28sIGNdID0gbAogICAgICAgIC5zcGxpdCgiVmVyc2lvbi8iKVsxXQogICAgICAgIC5zcGxpdCgiICIpWzBdCiAgICAgICAgLnNwbGl0KCIuIikKICAgICAgICAubWFwKChkKSA9PiBOdW1iZXIoZCkpOwogICAgICBpID0gbyA8IDE2IHx8IChvID09PSAxNiAmJiBjIDwgMik7CiAgICB9CiAgfQogIGNvbnN0IHIgPSAvKGlQaG9uZXxpUG9kfGlQYWQpLipBcHBsZVdlYktpdCg/IS4qU2FmYXJpKS9pLnRlc3QoCiAgICAgIHQubmF2aWdhdG9yLnVzZXJBZ2VudAogICAgKSwKICAgIG4gPSBzKCksCiAgICBhID0gbiB8fCAociAmJiBlLmlvcyk7CiAgcmV0dXJuIHsKICAgIGlzU2FmYXJpOiBpIHx8IG4sCiAgICBuZWVkUGVyc3BlY3RpdmVGaXg6IGksCiAgICBuZWVkM2RGaXg6IGEsCiAgICBpc1dlYlZpZXc6IHIsCiAgfTsKfQpmdW5jdGlvbiBGZSgpIHsKICByZXR1cm4gcSB8fCAocSA9IEJlKCkpLCBxOwp9CmZ1bmN0aW9uIE5lKHQpIHsKICBsZXQgeyBzd2lwZXI6IGUsIG9uOiBpLCBlbWl0OiBzIH0gPSB0OwogIGNvbnN0IHIgPSBBKCk7CiAgbGV0IG4gPSBudWxsLAogICAgYSA9IG51bGw7CiAgY29uc3QgbCA9ICgpID0+IHsKICAgICAgIWUgfHwgZS5kZXN0cm95ZWQgfHwgIWUuaW5pdGlhbGl6ZWQgfHwgKHMoImJlZm9yZVJlc2l6ZSIpLCBzKCJyZXNpemUiKSk7CiAgICB9LAogICAgbyA9ICgpID0+IHsKICAgICAgIWUgfHwKICAgICAgICBlLmRlc3Ryb3llZCB8fAogICAgICAgICFlLmluaXRpYWxpemVkIHx8CiAgICAgICAgKChuID0gbmV3IFJlc2l6ZU9ic2VydmVyKChmKSA9PiB7CiAgICAgICAgICBhID0gci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBwLCBoZWlnaHQ6IHUgfSA9IGU7CiAgICAgICAgICAgIGxldCBoID0gcCwKICAgICAgICAgICAgICBtID0gdTsKICAgICAgICAgICAgZi5mb3JFYWNoKChUKSA9PiB7CiAgICAgICAgICAgICAgbGV0IHsgY29udGVudEJveFNpemU6IGcsIGNvbnRlbnRSZWN0OiBiLCB0YXJnZXQ6IHcgfSA9IFQ7CiAgICAgICAgICAgICAgKHcgJiYgdyAhPT0gZS5lbCkgfHwKICAgICAgICAgICAgICAgICgoaCA9IGIgPyBiLndpZHRoIDogKGdbMF0gfHwgZykuaW5saW5lU2l6ZSksCiAgICAgICAgICAgICAgICAobSA9IGIgPyBiLmhlaWdodCA6IChnWzBdIHx8IGcpLmJsb2NrU2l6ZSkpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoaCAhPT0gcCB8fCBtICE9PSB1KSAmJiBsKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9KSksCiAgICAgICAgbi5vYnNlcnZlKGUuZWwpKTsKICAgIH0sCiAgICBjID0gKCkgPT4gewogICAgICBhICYmIHIuY2FuY2VsQW5pbWF0aW9uRnJhbWUoYSksCiAgICAgICAgbiAmJiBuLnVub2JzZXJ2ZSAmJiBlLmVsICYmIChuLnVub2JzZXJ2ZShlLmVsKSwgKG4gPSBudWxsKSk7CiAgICB9LAogICAgZCA9ICgpID0+IHsKICAgICAgIWUgfHwgZS5kZXN0cm95ZWQgfHwgIWUuaW5pdGlhbGl6ZWQgfHwgcygib3JpZW50YXRpb25jaGFuZ2UiKTsKICAgIH07CiAgaSgiaW5pdCIsICgpID0+IHsKICAgIGlmIChlLnBhcmFtcy5yZXNpemVPYnNlcnZlciAmJiB0eXBlb2Ygci5SZXNpemVPYnNlcnZlciA8ICJ1IikgewogICAgICBvKCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHIuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgbCksIHIuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLCBkKTsKICB9KSwKICAgIGkoImRlc3Ryb3kiLCAoKSA9PiB7CiAgICAgIGMoKSwKICAgICAgICByLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGwpLAogICAgICAgIHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLCBkKTsKICAgIH0pOwp9CmZ1bmN0aW9uIFJlKHQpIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaSwgb246IHMsIGVtaXQ6IHIgfSA9IHQ7CiAgY29uc3QgbiA9IFtdLAogICAgYSA9IEEoKSwKICAgIGwgPSBmdW5jdGlvbiAoZCwgZikgewogICAgICBmID09PSB2b2lkIDAgJiYgKGYgPSB7fSk7CiAgICAgIGNvbnN0IHAgPSBhLk11dGF0aW9uT2JzZXJ2ZXIgfHwgYS5XZWJraXRNdXRhdGlvbk9ic2VydmVyLAogICAgICAgIHUgPSBuZXcgcCgoaCkgPT4gewogICAgICAgICAgaWYgKGUuX19wcmV2ZW50T2JzZXJ2ZXJfXykgcmV0dXJuOwogICAgICAgICAgaWYgKGgubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgIHIoIm9ic2VydmVyVXBkYXRlIiwgaFswXSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG0gPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHIoIm9ic2VydmVyVXBkYXRlIiwgaFswXSk7CiAgICAgICAgICB9OwogICAgICAgICAgYS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUKICAgICAgICAgICAgPyBhLnJlcXVlc3RBbmltYXRpb25GcmFtZShtKQogICAgICAgICAgICA6IGEuc2V0VGltZW91dChtLCAwKTsKICAgICAgICB9KTsKICAgICAgdS5vYnNlcnZlKGQsIHsKICAgICAgICBhdHRyaWJ1dGVzOiB0eXBlb2YgZi5hdHRyaWJ1dGVzID4gInUiID8gITAgOiBmLmF0dHJpYnV0ZXMsCiAgICAgICAgY2hpbGRMaXN0OiBlLmlzRWxlbWVudCB8fCAodHlwZW9mIGYuY2hpbGRMaXN0ID4gInUiID8gITAgOiBmKS5jaGlsZExpc3QsCiAgICAgICAgY2hhcmFjdGVyRGF0YTogdHlwZW9mIGYuY2hhcmFjdGVyRGF0YSA+ICJ1IiA/ICEwIDogZi5jaGFyYWN0ZXJEYXRhLAogICAgICB9KSwKICAgICAgICBuLnB1c2godSk7CiAgICB9LAogICAgbyA9ICgpID0+IHsKICAgICAgaWYgKGUucGFyYW1zLm9ic2VydmVyKSB7CiAgICAgICAgaWYgKGUucGFyYW1zLm9ic2VydmVQYXJlbnRzKSB7CiAgICAgICAgICBjb25zdCBkID0gRGUoZS5ob3N0RWwpOwogICAgICAgICAgZm9yIChsZXQgZiA9IDA7IGYgPCBkLmxlbmd0aDsgZiArPSAxKSBsKGRbZl0pOwogICAgICAgIH0KICAgICAgICBsKGUuaG9zdEVsLCB7IGNoaWxkTGlzdDogZS5wYXJhbXMub2JzZXJ2ZVNsaWRlQ2hpbGRyZW4gfSksCiAgICAgICAgICBsKGUud3JhcHBlckVsLCB7IGF0dHJpYnV0ZXM6ICExIH0pOwogICAgICB9CiAgICB9LAogICAgYyA9ICgpID0+IHsKICAgICAgbi5mb3JFYWNoKChkKSA9PiB7CiAgICAgICAgZC5kaXNjb25uZWN0KCk7CiAgICAgIH0pLAogICAgICAgIG4uc3BsaWNlKDAsIG4ubGVuZ3RoKTsKICAgIH07CiAgaSh7IG9ic2VydmVyOiAhMSwgb2JzZXJ2ZVBhcmVudHM6ICExLCBvYnNlcnZlU2xpZGVDaGlsZHJlbjogITEgfSksCiAgICBzKCJpbml0IiwgbyksCiAgICBzKCJkZXN0cm95IiwgYyk7Cn0KdmFyICRlID0gewogIG9uKHQsIGUsIGkpIHsKICAgIGNvbnN0IHMgPSB0aGlzOwogICAgaWYgKCFzLmV2ZW50c0xpc3RlbmVycyB8fCBzLmRlc3Ryb3llZCB8fCB0eXBlb2YgZSAhPSAiZnVuY3Rpb24iKSByZXR1cm4gczsKICAgIGNvbnN0IHIgPSBpID8gInVuc2hpZnQiIDogInB1c2giOwogICAgcmV0dXJuICgKICAgICAgdC5zcGxpdCgiICIpLmZvckVhY2goKG4pID0+IHsKICAgICAgICBzLmV2ZW50c0xpc3RlbmVyc1tuXSB8fCAocy5ldmVudHNMaXN0ZW5lcnNbbl0gPSBbXSksCiAgICAgICAgICBzLmV2ZW50c0xpc3RlbmVyc1tuXVtyXShlKTsKICAgICAgfSksCiAgICAgIHMKICAgICk7CiAgfSwKICBvbmNlKHQsIGUsIGkpIHsKICAgIGNvbnN0IHMgPSB0aGlzOwogICAgaWYgKCFzLmV2ZW50c0xpc3RlbmVycyB8fCBzLmRlc3Ryb3llZCB8fCB0eXBlb2YgZSAhPSAiZnVuY3Rpb24iKSByZXR1cm4gczsKICAgIGZ1bmN0aW9uIHIoKSB7CiAgICAgIHMub2ZmKHQsIHIpLCByLl9fZW1pdHRlclByb3h5ICYmIGRlbGV0ZSByLl9fZW1pdHRlclByb3h5OwogICAgICBmb3IgKHZhciBuID0gYXJndW1lbnRzLmxlbmd0aCwgYSA9IG5ldyBBcnJheShuKSwgbCA9IDA7IGwgPCBuOyBsKyspCiAgICAgICAgYVtsXSA9IGFyZ3VtZW50c1tsXTsKICAgICAgZS5hcHBseShzLCBhKTsKICAgIH0KICAgIHJldHVybiAoci5fX2VtaXR0ZXJQcm94eSA9IGUpLCBzLm9uKHQsIHIsIGkpOwogIH0sCiAgb25BbnkodCwgZSkgewogICAgY29uc3QgaSA9IHRoaXM7CiAgICBpZiAoIWkuZXZlbnRzTGlzdGVuZXJzIHx8IGkuZGVzdHJveWVkIHx8IHR5cGVvZiB0ICE9ICJmdW5jdGlvbiIpIHJldHVybiBpOwogICAgY29uc3QgcyA9IGUgPyAidW5zaGlmdCIgOiAicHVzaCI7CiAgICByZXR1cm4gaS5ldmVudHNBbnlMaXN0ZW5lcnMuaW5kZXhPZih0KSA8IDAgJiYgaS5ldmVudHNBbnlMaXN0ZW5lcnNbc10odCksIGk7CiAgfSwKICBvZmZBbnkodCkgewogICAgY29uc3QgZSA9IHRoaXM7CiAgICBpZiAoIWUuZXZlbnRzTGlzdGVuZXJzIHx8IGUuZGVzdHJveWVkIHx8ICFlLmV2ZW50c0FueUxpc3RlbmVycykgcmV0dXJuIGU7CiAgICBjb25zdCBpID0gZS5ldmVudHNBbnlMaXN0ZW5lcnMuaW5kZXhPZih0KTsKICAgIHJldHVybiBpID49IDAgJiYgZS5ldmVudHNBbnlMaXN0ZW5lcnMuc3BsaWNlKGksIDEpLCBlOwogIH0sCiAgb2ZmKHQsIGUpIHsKICAgIGNvbnN0IGkgPSB0aGlzOwogICAgcmV0dXJuICgKICAgICAgIWkuZXZlbnRzTGlzdGVuZXJzIHx8CiAgICAgICAgaS5kZXN0cm95ZWQgfHwKICAgICAgICAhaS5ldmVudHNMaXN0ZW5lcnMgfHwKICAgICAgICB0LnNwbGl0KCIgIikuZm9yRWFjaCgocykgPT4gewogICAgICAgICAgdHlwZW9mIGUgPiAidSIKICAgICAgICAgICAgPyAoaS5ldmVudHNMaXN0ZW5lcnNbc10gPSBbXSkKICAgICAgICAgICAgOiBpLmV2ZW50c0xpc3RlbmVyc1tzXSAmJgogICAgICAgICAgICAgIGkuZXZlbnRzTGlzdGVuZXJzW3NdLmZvckVhY2goKHIsIG4pID0+IHsKICAgICAgICAgICAgICAgIChyID09PSBlIHx8IChyLl9fZW1pdHRlclByb3h5ICYmIHIuX19lbWl0dGVyUHJveHkgPT09IGUpKSAmJgogICAgICAgICAgICAgICAgICBpLmV2ZW50c0xpc3RlbmVyc1tzXS5zcGxpY2UobiwgMSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgfSksCiAgICAgIGkKICAgICk7CiAgfSwKICBlbWl0KCkgewogICAgY29uc3QgdCA9IHRoaXM7CiAgICBpZiAoIXQuZXZlbnRzTGlzdGVuZXJzIHx8IHQuZGVzdHJveWVkIHx8ICF0LmV2ZW50c0xpc3RlbmVycykgcmV0dXJuIHQ7CiAgICBsZXQgZSwgaSwgczsKICAgIGZvciAodmFyIHIgPSBhcmd1bWVudHMubGVuZ3RoLCBuID0gbmV3IEFycmF5KHIpLCBhID0gMDsgYSA8IHI7IGErKykKICAgICAgblthXSA9IGFyZ3VtZW50c1thXTsKICAgIHJldHVybiAoCiAgICAgIHR5cGVvZiBuWzBdID09ICJzdHJpbmciIHx8IEFycmF5LmlzQXJyYXkoblswXSkKICAgICAgICA/ICgoZSA9IG5bMF0pLCAoaSA9IG4uc2xpY2UoMSwgbi5sZW5ndGgpKSwgKHMgPSB0KSkKICAgICAgICA6ICgoZSA9IG5bMF0uZXZlbnRzKSwgKGkgPSBuWzBdLmRhdGEpLCAocyA9IG5bMF0uY29udGV4dCB8fCB0KSksCiAgICAgIGkudW5zaGlmdChzKSwKICAgICAgKEFycmF5LmlzQXJyYXkoZSkgPyBlIDogZS5zcGxpdCgiICIpKS5mb3JFYWNoKChvKSA9PiB7CiAgICAgICAgdC5ldmVudHNBbnlMaXN0ZW5lcnMgJiYKICAgICAgICAgIHQuZXZlbnRzQW55TGlzdGVuZXJzLmxlbmd0aCAmJgogICAgICAgICAgdC5ldmVudHNBbnlMaXN0ZW5lcnMuZm9yRWFjaCgoYykgPT4gewogICAgICAgICAgICBjLmFwcGx5KHMsIFtvLCAuLi5pXSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIHQuZXZlbnRzTGlzdGVuZXJzICYmCiAgICAgICAgICAgIHQuZXZlbnRzTGlzdGVuZXJzW29dICYmCiAgICAgICAgICAgIHQuZXZlbnRzTGlzdGVuZXJzW29dLmZvckVhY2goKGMpID0+IHsKICAgICAgICAgICAgICBjLmFwcGx5KHMsIGkpOwogICAgICAgICAgICB9KTsKICAgICAgfSksCiAgICAgIHQKICAgICk7CiAgfSwKfTsKZnVuY3Rpb24gSGUoKSB7CiAgY29uc3QgdCA9IHRoaXM7CiAgbGV0IGUsIGk7CiAgY29uc3QgcyA9IHQuZWw7CiAgdHlwZW9mIHQucGFyYW1zLndpZHRoIDwgInUiICYmIHQucGFyYW1zLndpZHRoICE9PSBudWxsCiAgICA/IChlID0gdC5wYXJhbXMud2lkdGgpCiAgICA6IChlID0gcy5jbGllbnRXaWR0aCksCiAgICB0eXBlb2YgdC5wYXJhbXMuaGVpZ2h0IDwgInUiICYmIHQucGFyYW1zLmhlaWdodCAhPT0gbnVsbAogICAgICA/IChpID0gdC5wYXJhbXMuaGVpZ2h0KQogICAgICA6IChpID0gcy5jbGllbnRIZWlnaHQpLAogICAgISgoZSA9PT0gMCAmJiB0LmlzSG9yaXpvbnRhbCgpKSB8fCAoaSA9PT0gMCAmJiB0LmlzVmVydGljYWwoKSkpICYmCiAgICAgICgoZSA9CiAgICAgICAgZSAtCiAgICAgICAgcGFyc2VJbnQoayhzLCAicGFkZGluZy1sZWZ0IikgfHwgMCwgMTApIC0KICAgICAgICBwYXJzZUludChrKHMsICJwYWRkaW5nLXJpZ2h0IikgfHwgMCwgMTApKSwKICAgICAgKGkgPQogICAgICAgIGkgLQogICAgICAgIHBhcnNlSW50KGsocywgInBhZGRpbmctdG9wIikgfHwgMCwgMTApIC0KICAgICAgICBwYXJzZUludChrKHMsICJwYWRkaW5nLWJvdHRvbSIpIHx8IDAsIDEwKSksCiAgICAgIE51bWJlci5pc05hTihlKSAmJiAoZSA9IDApLAogICAgICBOdW1iZXIuaXNOYU4oaSkgJiYgKGkgPSAwKSwKICAgICAgT2JqZWN0LmFzc2lnbih0LCB7CiAgICAgICAgd2lkdGg6IGUsCiAgICAgICAgaGVpZ2h0OiBpLAogICAgICAgIHNpemU6IHQuaXNIb3Jpem9udGFsKCkgPyBlIDogaSwKICAgICAgfSkpOwp9CmZ1bmN0aW9uIGplKCkgewogIGNvbnN0IHQgPSB0aGlzOwogIGZ1bmN0aW9uIGUodiwgUCkgewogICAgcmV0dXJuIHBhcnNlRmxvYXQodi5nZXRQcm9wZXJ0eVZhbHVlKHQuZ2V0RGlyZWN0aW9uTGFiZWwoUCkpIHx8IDApOwogIH0KICBjb25zdCBpID0gdC5wYXJhbXMsCiAgICB7IHdyYXBwZXJFbDogcywgc2xpZGVzRWw6IHIsIHNpemU6IG4sIHJ0bFRyYW5zbGF0ZTogYSwgd3JvbmdSVEw6IGwgfSA9IHQsCiAgICBvID0gdC52aXJ0dWFsICYmIGkudmlydHVhbC5lbmFibGVkLAogICAgYyA9IG8gPyB0LnZpcnR1YWwuc2xpZGVzLmxlbmd0aCA6IHQuc2xpZGVzLmxlbmd0aCwKICAgIGQgPSBEKHIsIGAuJHt0LnBhcmFtcy5zbGlkZUNsYXNzfSwgc3dpcGVyLXNsaWRlYCksCiAgICBmID0gbyA/IHQudmlydHVhbC5zbGlkZXMubGVuZ3RoIDogZC5sZW5ndGg7CiAgbGV0IHAgPSBbXTsKICBjb25zdCB1ID0gW10sCiAgICBoID0gW107CiAgbGV0IG0gPSBpLnNsaWRlc09mZnNldEJlZm9yZTsKICB0eXBlb2YgbSA9PSAiZnVuY3Rpb24iICYmIChtID0gaS5zbGlkZXNPZmZzZXRCZWZvcmUuY2FsbCh0KSk7CiAgbGV0IFQgPSBpLnNsaWRlc09mZnNldEFmdGVyOwogIHR5cGVvZiBUID09ICJmdW5jdGlvbiIgJiYgKFQgPSBpLnNsaWRlc09mZnNldEFmdGVyLmNhbGwodCkpOwogIGNvbnN0IGcgPSB0LnNuYXBHcmlkLmxlbmd0aCwKICAgIGIgPSB0LnNsaWRlc0dyaWQubGVuZ3RoOwogIGxldCB3ID0gaS5zcGFjZUJldHdlZW4sCiAgICB5ID0gLW0sCiAgICBTID0gMCwKICAgIE0gPSAwOwogIGlmICh0eXBlb2YgbiA+ICJ1IikgcmV0dXJuOwogIHR5cGVvZiB3ID09ICJzdHJpbmciICYmIHcuaW5kZXhPZigiJSIpID49IDAKICAgID8gKHcgPSAocGFyc2VGbG9hdCh3LnJlcGxhY2UoIiUiLCAiIikpIC8gMTAwKSAqIG4pCiAgICA6IHR5cGVvZiB3ID09ICJzdHJpbmciICYmICh3ID0gcGFyc2VGbG9hdCh3KSksCiAgICAodC52aXJ0dWFsU2l6ZSA9IC13KSwKICAgIGQuZm9yRWFjaCgodikgPT4gewogICAgICBhID8gKHYuc3R5bGUubWFyZ2luTGVmdCA9ICIiKSA6ICh2LnN0eWxlLm1hcmdpblJpZ2h0ID0gIiIpLAogICAgICAgICh2LnN0eWxlLm1hcmdpbkJvdHRvbSA9ICIiKSwKICAgICAgICAodi5zdHlsZS5tYXJnaW5Ub3AgPSAiIik7CiAgICB9KSwKICAgIGkuY2VudGVyZWRTbGlkZXMgJiYKICAgICAgaS5jc3NNb2RlICYmCiAgICAgIChSKHMsICItLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlIiwgIiIpLAogICAgICBSKHMsICItLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIiLCAiIikpOwogIGNvbnN0IE8gPSBpLmdyaWQgJiYgaS5ncmlkLnJvd3MgPiAxICYmIHQuZ3JpZDsKICBPID8gdC5ncmlkLmluaXRTbGlkZXMoZCkgOiB0LmdyaWQgJiYgdC5ncmlkLnVuc2V0U2xpZGVzKCk7CiAgbGV0IEk7CiAgY29uc3QgRSA9CiAgICBpLnNsaWRlc1BlclZpZXcgPT09ICJhdXRvIiAmJgogICAgaS5icmVha3BvaW50cyAmJgogICAgT2JqZWN0LmtleXMoaS5icmVha3BvaW50cykuZmlsdGVyKAogICAgICAodikgPT4gdHlwZW9mIGkuYnJlYWtwb2ludHNbdl0uc2xpZGVzUGVyVmlldyA8ICJ1IgogICAgKS5sZW5ndGggPiAwOwogIGZvciAobGV0IHYgPSAwOyB2IDwgZjsgdiArPSAxKSB7CiAgICBJID0gMDsKICAgIGxldCBQOwogICAgaWYgKAogICAgICAoZFt2XSAmJiAoUCA9IGRbdl0pLAogICAgICBPICYmIHQuZ3JpZC51cGRhdGVTbGlkZSh2LCBQLCBkKSwKICAgICAgIShkW3ZdICYmIGsoUCwgImRpc3BsYXkiKSA9PT0gIm5vbmUiKSkKICAgICkgewogICAgICBpZiAoaS5zbGlkZXNQZXJWaWV3ID09PSAiYXV0byIpIHsKICAgICAgICBFICYmIChkW3ZdLnN0eWxlW3QuZ2V0RGlyZWN0aW9uTGFiZWwoIndpZHRoIildID0gIiIpOwogICAgICAgIGNvbnN0IEMgPSBnZXRDb21wdXRlZFN0eWxlKFApLAogICAgICAgICAgeCA9IFAuc3R5bGUudHJhbnNmb3JtLAogICAgICAgICAgTCA9IFAuc3R5bGUud2Via2l0VHJhbnNmb3JtOwogICAgICAgIGlmICgKICAgICAgICAgICh4ICYmIChQLnN0eWxlLnRyYW5zZm9ybSA9ICJub25lIiksCiAgICAgICAgICBMICYmIChQLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICJub25lIiksCiAgICAgICAgICBpLnJvdW5kTGVuZ3RocykKICAgICAgICApCiAgICAgICAgICBJID0gdC5pc0hvcml6b250YWwoKSA/IGNlKFAsICJ3aWR0aCIpIDogY2UoUCwgImhlaWdodCIpOwogICAgICAgIGVsc2UgewogICAgICAgICAgY29uc3QgeiA9IGUoQywgIndpZHRoIiksCiAgICAgICAgICAgIFYgPSBlKEMsICJwYWRkaW5nLWxlZnQiKSwKICAgICAgICAgICAgeWUgPSBlKEMsICJwYWRkaW5nLXJpZ2h0IiksCiAgICAgICAgICAgIG5lID0gZShDLCAibWFyZ2luLWxlZnQiKSwKICAgICAgICAgICAgb2UgPSBlKEMsICJtYXJnaW4tcmlnaHQiKSwKICAgICAgICAgICAgbGUgPSBDLmdldFByb3BlcnR5VmFsdWUoImJveC1zaXppbmciKTsKICAgICAgICAgIGlmIChsZSAmJiBsZSA9PT0gImJvcmRlci1ib3giKSBJID0geiArIG5lICsgb2U7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY29uc3QgeyBjbGllbnRXaWR0aDogRWUsIG9mZnNldFdpZHRoOiBQZSB9ID0gUDsKICAgICAgICAgICAgSSA9IHogKyBWICsgeWUgKyBuZSArIG9lICsgKFBlIC0gRWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB4ICYmIChQLnN0eWxlLnRyYW5zZm9ybSA9IHgpLAogICAgICAgICAgTCAmJiAoUC5zdHlsZS53ZWJraXRUcmFuc2Zvcm0gPSBMKSwKICAgICAgICAgIGkucm91bmRMZW5ndGhzICYmIChJID0gTWF0aC5mbG9vcihJKSk7CiAgICAgIH0gZWxzZQogICAgICAgIChJID0gKG4gLSAoaS5zbGlkZXNQZXJWaWV3IC0gMSkgKiB3KSAvIGkuc2xpZGVzUGVyVmlldyksCiAgICAgICAgICBpLnJvdW5kTGVuZ3RocyAmJiAoSSA9IE1hdGguZmxvb3IoSSkpLAogICAgICAgICAgZFt2XSAmJiAoZFt2XS5zdHlsZVt0LmdldERpcmVjdGlvbkxhYmVsKCJ3aWR0aCIpXSA9IGAke0l9cHhgKTsKICAgICAgZFt2XSAmJiAoZFt2XS5zd2lwZXJTbGlkZVNpemUgPSBJKSwKICAgICAgICBoLnB1c2goSSksCiAgICAgICAgaS5jZW50ZXJlZFNsaWRlcwogICAgICAgICAgPyAoKHkgPSB5ICsgSSAvIDIgKyBTIC8gMiArIHcpLAogICAgICAgICAgICBTID09PSAwICYmIHYgIT09IDAgJiYgKHkgPSB5IC0gbiAvIDIgLSB3KSwKICAgICAgICAgICAgdiA9PT0gMCAmJiAoeSA9IHkgLSBuIC8gMiAtIHcpLAogICAgICAgICAgICBNYXRoLmFicyh5KSA8IDEgLyAxZTMgJiYgKHkgPSAwKSwKICAgICAgICAgICAgaS5yb3VuZExlbmd0aHMgJiYgKHkgPSBNYXRoLmZsb29yKHkpKSwKICAgICAgICAgICAgTSAlIGkuc2xpZGVzUGVyR3JvdXAgPT09IDAgJiYgcC5wdXNoKHkpLAogICAgICAgICAgICB1LnB1c2goeSkpCiAgICAgICAgICA6IChpLnJvdW5kTGVuZ3RocyAmJiAoeSA9IE1hdGguZmxvb3IoeSkpLAogICAgICAgICAgICAoTSAtIE1hdGgubWluKHQucGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCwgTSkpICUKICAgICAgICAgICAgICB0LnBhcmFtcy5zbGlkZXNQZXJHcm91cCA9PT0KICAgICAgICAgICAgICAwICYmIHAucHVzaCh5KSwKICAgICAgICAgICAgdS5wdXNoKHkpLAogICAgICAgICAgICAoeSA9IHkgKyBJICsgdykpLAogICAgICAgICh0LnZpcnR1YWxTaXplICs9IEkgKyB3KSwKICAgICAgICAoUyA9IEkpLAogICAgICAgIChNICs9IDEpOwogICAgfQogIH0KICBpZiAoCiAgICAoKHQudmlydHVhbFNpemUgPSBNYXRoLm1heCh0LnZpcnR1YWxTaXplLCBuKSArIFQpLAogICAgYSAmJgogICAgICBsICYmCiAgICAgIChpLmVmZmVjdCA9PT0gInNsaWRlIiB8fCBpLmVmZmVjdCA9PT0gImNvdmVyZmxvdyIpICYmCiAgICAgIChzLnN0eWxlLndpZHRoID0gYCR7dC52aXJ0dWFsU2l6ZSArIHd9cHhgKSwKICAgIGkuc2V0V3JhcHBlclNpemUgJiYKICAgICAgKHMuc3R5bGVbdC5nZXREaXJlY3Rpb25MYWJlbCgid2lkdGgiKV0gPSBgJHt0LnZpcnR1YWxTaXplICsgd31weGApLAogICAgTyAmJiB0LmdyaWQudXBkYXRlV3JhcHBlclNpemUoSSwgcCksCiAgICAhaS5jZW50ZXJlZFNsaWRlcykKICApIHsKICAgIGNvbnN0IHYgPSBbXTsKICAgIGZvciAobGV0IFAgPSAwOyBQIDwgcC5sZW5ndGg7IFAgKz0gMSkgewogICAgICBsZXQgQyA9IHBbUF07CiAgICAgIGkucm91bmRMZW5ndGhzICYmIChDID0gTWF0aC5mbG9vcihDKSksCiAgICAgICAgcFtQXSA8PSB0LnZpcnR1YWxTaXplIC0gbiAmJiB2LnB1c2goQyk7CiAgICB9CiAgICAocCA9IHYpLAogICAgICBNYXRoLmZsb29yKHQudmlydHVhbFNpemUgLSBuKSAtIE1hdGguZmxvb3IocFtwLmxlbmd0aCAtIDFdKSA+IDEgJiYKICAgICAgICBwLnB1c2godC52aXJ0dWFsU2l6ZSAtIG4pOwogIH0KICBpZiAobyAmJiBpLmxvb3ApIHsKICAgIGNvbnN0IHYgPSBoWzBdICsgdzsKICAgIGlmIChpLnNsaWRlc1Blckdyb3VwID4gMSkgewogICAgICBjb25zdCBQID0gTWF0aC5jZWlsKAogICAgICAgICAgKHQudmlydHVhbC5zbGlkZXNCZWZvcmUgKyB0LnZpcnR1YWwuc2xpZGVzQWZ0ZXIpIC8gaS5zbGlkZXNQZXJHcm91cAogICAgICAgICksCiAgICAgICAgQyA9IHYgKiBpLnNsaWRlc1Blckdyb3VwOwogICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IFA7IHggKz0gMSkgcC5wdXNoKHBbcC5sZW5ndGggLSAxXSArIEMpOwogICAgfQogICAgZm9yIChsZXQgUCA9IDA7IFAgPCB0LnZpcnR1YWwuc2xpZGVzQmVmb3JlICsgdC52aXJ0dWFsLnNsaWRlc0FmdGVyOyBQICs9IDEpCiAgICAgIGkuc2xpZGVzUGVyR3JvdXAgPT09IDEgJiYgcC5wdXNoKHBbcC5sZW5ndGggLSAxXSArIHYpLAogICAgICAgIHUucHVzaCh1W3UubGVuZ3RoIC0gMV0gKyB2KSwKICAgICAgICAodC52aXJ0dWFsU2l6ZSArPSB2KTsKICB9CiAgaWYgKChwLmxlbmd0aCA9PT0gMCAmJiAocCA9IFswXSksIHcgIT09IDApKSB7CiAgICBjb25zdCB2ID0KICAgICAgdC5pc0hvcml6b250YWwoKSAmJiBhID8gIm1hcmdpbkxlZnQiIDogdC5nZXREaXJlY3Rpb25MYWJlbCgibWFyZ2luUmlnaHQiKTsKICAgIGQuZmlsdGVyKChQLCBDKSA9PgogICAgICAhaS5jc3NNb2RlIHx8IGkubG9vcCA/ICEwIDogQyAhPT0gZC5sZW5ndGggLSAxCiAgICApLmZvckVhY2goKFApID0+IHsKICAgICAgUC5zdHlsZVt2XSA9IGAke3d9cHhgOwogICAgfSk7CiAgfQogIGlmIChpLmNlbnRlcmVkU2xpZGVzICYmIGkuY2VudGVyZWRTbGlkZXNCb3VuZHMpIHsKICAgIGxldCB2ID0gMDsKICAgIGguZm9yRWFjaCgoQykgPT4gewogICAgICB2ICs9IEMgKyAodyB8fCAwKTsKICAgIH0pLAogICAgICAodiAtPSB3KTsKICAgIGNvbnN0IFAgPSB2ID4gbiA/IHYgLSBuIDogMDsKICAgIHAgPSBwLm1hcCgoQykgPT4gKEMgPD0gMCA/IC1tIDogQyA+IFAgPyBQICsgVCA6IEMpKTsKICB9CiAgaWYgKGkuY2VudGVySW5zdWZmaWNpZW50U2xpZGVzKSB7CiAgICBsZXQgdiA9IDA7CiAgICBoLmZvckVhY2goKEMpID0+IHsKICAgICAgdiArPSBDICsgKHcgfHwgMCk7CiAgICB9KSwKICAgICAgKHYgLT0gdyk7CiAgICBjb25zdCBQID0gKGkuc2xpZGVzT2Zmc2V0QmVmb3JlIHx8IDApICsgKGkuc2xpZGVzT2Zmc2V0QWZ0ZXIgfHwgMCk7CiAgICBpZiAodiArIFAgPCBuKSB7CiAgICAgIGNvbnN0IEMgPSAobiAtIHYgLSBQKSAvIDI7CiAgICAgIHAuZm9yRWFjaCgoeCwgTCkgPT4gewogICAgICAgIHBbTF0gPSB4IC0gQzsKICAgICAgfSksCiAgICAgICAgdS5mb3JFYWNoKCh4LCBMKSA9PiB7CiAgICAgICAgICB1W0xdID0geCArIEM7CiAgICAgICAgfSk7CiAgICB9CiAgfQogIGlmICgKICAgIChPYmplY3QuYXNzaWduKHQsIHsKICAgICAgc2xpZGVzOiBkLAogICAgICBzbmFwR3JpZDogcCwKICAgICAgc2xpZGVzR3JpZDogdSwKICAgICAgc2xpZGVzU2l6ZXNHcmlkOiBoLAogICAgfSksCiAgICBpLmNlbnRlcmVkU2xpZGVzICYmIGkuY3NzTW9kZSAmJiAhaS5jZW50ZXJlZFNsaWRlc0JvdW5kcykKICApIHsKICAgIFIocywgIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUiLCBgJHstcFswXX1weGApLAogICAgICBSKAogICAgICAgIHMsCiAgICAgICAgIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1hZnRlciIsCiAgICAgICAgYCR7dC5zaXplIC8gMiAtIGhbaC5sZW5ndGggLSAxXSAvIDJ9cHhgCiAgICAgICk7CiAgICBjb25zdCB2ID0gLXQuc25hcEdyaWRbMF0sCiAgICAgIFAgPSAtdC5zbGlkZXNHcmlkWzBdOwogICAgKHQuc25hcEdyaWQgPSB0LnNuYXBHcmlkLm1hcCgoQykgPT4gQyArIHYpKSwKICAgICAgKHQuc2xpZGVzR3JpZCA9IHQuc2xpZGVzR3JpZC5tYXAoKEMpID0+IEMgKyBQKSk7CiAgfQogIGlmICgKICAgIChmICE9PSBjICYmIHQuZW1pdCgic2xpZGVzTGVuZ3RoQ2hhbmdlIiksCiAgICBwLmxlbmd0aCAhPT0gZyAmJgogICAgICAodC5wYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiB0LmNoZWNrT3ZlcmZsb3coKSwKICAgICAgdC5lbWl0KCJzbmFwR3JpZExlbmd0aENoYW5nZSIpKSwKICAgIHUubGVuZ3RoICE9PSBiICYmIHQuZW1pdCgic2xpZGVzR3JpZExlbmd0aENoYW5nZSIpLAogICAgaS53YXRjaFNsaWRlc1Byb2dyZXNzICYmIHQudXBkYXRlU2xpZGVzT2Zmc2V0KCksCiAgICB0LmVtaXQoInNsaWRlc1VwZGF0ZWQiKSwKICAgICFvICYmICFpLmNzc01vZGUgJiYgKGkuZWZmZWN0ID09PSAic2xpZGUiIHx8IGkuZWZmZWN0ID09PSAiZmFkZSIpKQogICkgewogICAgY29uc3QgdiA9IGAke2kuY29udGFpbmVyTW9kaWZpZXJDbGFzc31iYWNrZmFjZS1oaWRkZW5gLAogICAgICBQID0gdC5lbC5jbGFzc0xpc3QuY29udGFpbnModik7CiAgICBmIDw9IGkubWF4QmFja2ZhY2VIaWRkZW5TbGlkZXMKICAgICAgPyBQIHx8IHQuZWwuY2xhc3NMaXN0LmFkZCh2KQogICAgICA6IFAgJiYgdC5lbC5jbGFzc0xpc3QucmVtb3ZlKHYpOwogIH0KfQpmdW5jdGlvbiBXZSh0KSB7CiAgY29uc3QgZSA9IHRoaXMsCiAgICBpID0gW10sCiAgICBzID0gZS52aXJ0dWFsICYmIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZDsKICBsZXQgciA9IDAsCiAgICBuOwogIHR5cGVvZiB0ID09ICJudW1iZXIiCiAgICA/IGUuc2V0VHJhbnNpdGlvbih0KQogICAgOiB0ID09PSAhMCAmJiBlLnNldFRyYW5zaXRpb24oZS5wYXJhbXMuc3BlZWQpOwogIGNvbnN0IGEgPSAobCkgPT4gKHMgPyBlLnNsaWRlc1tlLmdldFNsaWRlSW5kZXhCeURhdGEobCldIDogZS5zbGlkZXNbbF0pOwogIGlmIChlLnBhcmFtcy5zbGlkZXNQZXJWaWV3ICE9PSAiYXV0byIgJiYgZS5wYXJhbXMuc2xpZGVzUGVyVmlldyA+IDEpCiAgICBpZiAoZS5wYXJhbXMuY2VudGVyZWRTbGlkZXMpCiAgICAgIChlLnZpc2libGVTbGlkZXMgfHwgW10pLmZvckVhY2goKGwpID0+IHsKICAgICAgICBpLnB1c2gobCk7CiAgICAgIH0pOwogICAgZWxzZQogICAgICBmb3IgKG4gPSAwOyBuIDwgTWF0aC5jZWlsKGUucGFyYW1zLnNsaWRlc1BlclZpZXcpOyBuICs9IDEpIHsKICAgICAgICBjb25zdCBsID0gZS5hY3RpdmVJbmRleCArIG47CiAgICAgICAgaWYgKGwgPiBlLnNsaWRlcy5sZW5ndGggJiYgIXMpIGJyZWFrOwogICAgICAgIGkucHVzaChhKGwpKTsKICAgICAgfQogIGVsc2UgaS5wdXNoKGEoZS5hY3RpdmVJbmRleCkpOwogIGZvciAobiA9IDA7IG4gPCBpLmxlbmd0aDsgbiArPSAxKQogICAgaWYgKHR5cGVvZiBpW25dIDwgInUiKSB7CiAgICAgIGNvbnN0IGwgPSBpW25dLm9mZnNldEhlaWdodDsKICAgICAgciA9IGwgPiByID8gbCA6IHI7CiAgICB9CiAgKHIgfHwgciA9PT0gMCkgJiYgKGUud3JhcHBlckVsLnN0eWxlLmhlaWdodCA9IGAke3J9cHhgKTsKfQpmdW5jdGlvbiBZZSgpIHsKICBjb25zdCB0ID0gdGhpcywKICAgIGUgPSB0LnNsaWRlcywKICAgIGkgPSB0LmlzRWxlbWVudAogICAgICA/IHQuaXNIb3Jpem9udGFsKCkKICAgICAgICA/IHQud3JhcHBlckVsLm9mZnNldExlZnQKICAgICAgICA6IHQud3JhcHBlckVsLm9mZnNldFRvcAogICAgICA6IDA7CiAgZm9yIChsZXQgcyA9IDA7IHMgPCBlLmxlbmd0aDsgcyArPSAxKQogICAgZVtzXS5zd2lwZXJTbGlkZU9mZnNldCA9CiAgICAgICh0LmlzSG9yaXpvbnRhbCgpID8gZVtzXS5vZmZzZXRMZWZ0IDogZVtzXS5vZmZzZXRUb3ApIC0KICAgICAgaSAtCiAgICAgIHQuY3NzT3ZlcmZsb3dBZGp1c3RtZW50KCk7Cn0KY29uc3QgZmUgPSAodCwgZSwgaSkgPT4gewogIGUgJiYgIXQuY2xhc3NMaXN0LmNvbnRhaW5zKGkpCiAgICA/IHQuY2xhc3NMaXN0LmFkZChpKQogICAgOiAhZSAmJiB0LmNsYXNzTGlzdC5jb250YWlucyhpKSAmJiB0LmNsYXNzTGlzdC5yZW1vdmUoaSk7Cn07CmZ1bmN0aW9uIHFlKHQpIHsKICB0ID09PSB2b2lkIDAgJiYgKHQgPSAodGhpcyAmJiB0aGlzLnRyYW5zbGF0ZSkgfHwgMCk7CiAgY29uc3QgZSA9IHRoaXMsCiAgICBpID0gZS5wYXJhbXMsCiAgICB7IHNsaWRlczogcywgcnRsVHJhbnNsYXRlOiByLCBzbmFwR3JpZDogbiB9ID0gZTsKICBpZiAocy5sZW5ndGggPT09IDApIHJldHVybjsKICB0eXBlb2Ygc1swXS5zd2lwZXJTbGlkZU9mZnNldCA+ICJ1IiAmJiBlLnVwZGF0ZVNsaWRlc09mZnNldCgpOwogIGxldCBhID0gLXQ7CiAgciAmJiAoYSA9IHQpLCAoZS52aXNpYmxlU2xpZGVzSW5kZXhlcyA9IFtdKSwgKGUudmlzaWJsZVNsaWRlcyA9IFtdKTsKICBsZXQgbCA9IGkuc3BhY2VCZXR3ZWVuOwogIHR5cGVvZiBsID09ICJzdHJpbmciICYmIGwuaW5kZXhPZigiJSIpID49IDAKICAgID8gKGwgPSAocGFyc2VGbG9hdChsLnJlcGxhY2UoIiUiLCAiIikpIC8gMTAwKSAqIGUuc2l6ZSkKICAgIDogdHlwZW9mIGwgPT0gInN0cmluZyIgJiYgKGwgPSBwYXJzZUZsb2F0KGwpKTsKICBmb3IgKGxldCBvID0gMDsgbyA8IHMubGVuZ3RoOyBvICs9IDEpIHsKICAgIGNvbnN0IGMgPSBzW29dOwogICAgbGV0IGQgPSBjLnN3aXBlclNsaWRlT2Zmc2V0OwogICAgaS5jc3NNb2RlICYmIGkuY2VudGVyZWRTbGlkZXMgJiYgKGQgLT0gc1swXS5zd2lwZXJTbGlkZU9mZnNldCk7CiAgICBjb25zdCBmID0KICAgICAgICAoYSArIChpLmNlbnRlcmVkU2xpZGVzID8gZS5taW5UcmFuc2xhdGUoKSA6IDApIC0gZCkgLwogICAgICAgIChjLnN3aXBlclNsaWRlU2l6ZSArIGwpLAogICAgICBwID0KICAgICAgICAoYSAtIG5bMF0gKyAoaS5jZW50ZXJlZFNsaWRlcyA/IGUubWluVHJhbnNsYXRlKCkgOiAwKSAtIGQpIC8KICAgICAgICAoYy5zd2lwZXJTbGlkZVNpemUgKyBsKSwKICAgICAgdSA9IC0oYSAtIGQpLAogICAgICBoID0gdSArIGUuc2xpZGVzU2l6ZXNHcmlkW29dLAogICAgICBtID0gdSA+PSAwICYmIHUgPD0gZS5zaXplIC0gZS5zbGlkZXNTaXplc0dyaWRbb10sCiAgICAgIFQgPQogICAgICAgICh1ID49IDAgJiYgdSA8IGUuc2l6ZSAtIDEpIHx8CiAgICAgICAgKGggPiAxICYmIGggPD0gZS5zaXplKSB8fAogICAgICAgICh1IDw9IDAgJiYgaCA+PSBlLnNpemUpOwogICAgVCAmJiAoZS52aXNpYmxlU2xpZGVzLnB1c2goYyksIGUudmlzaWJsZVNsaWRlc0luZGV4ZXMucHVzaChvKSksCiAgICAgIGZlKGMsIFQsIGkuc2xpZGVWaXNpYmxlQ2xhc3MpLAogICAgICBmZShjLCBtLCBpLnNsaWRlRnVsbHlWaXNpYmxlQ2xhc3MpLAogICAgICAoYy5wcm9ncmVzcyA9IHIgPyAtZiA6IGYpLAogICAgICAoYy5vcmlnaW5hbFByb2dyZXNzID0gciA/IC1wIDogcCk7CiAgfQp9CmZ1bmN0aW9uIFhlKHQpIHsKICBjb25zdCBlID0gdGhpczsKICBpZiAodHlwZW9mIHQgPiAidSIpIHsKICAgIGNvbnN0IGQgPSBlLnJ0bFRyYW5zbGF0ZSA/IC0xIDogMTsKICAgIHQgPSAoZSAmJiBlLnRyYW5zbGF0ZSAmJiBlLnRyYW5zbGF0ZSAqIGQpIHx8IDA7CiAgfQogIGNvbnN0IGkgPSBlLnBhcmFtcywKICAgIHMgPSBlLm1heFRyYW5zbGF0ZSgpIC0gZS5taW5UcmFuc2xhdGUoKTsKICBsZXQgeyBwcm9ncmVzczogciwgaXNCZWdpbm5pbmc6IG4sIGlzRW5kOiBhLCBwcm9ncmVzc0xvb3A6IGwgfSA9IGU7CiAgY29uc3QgbyA9IG4sCiAgICBjID0gYTsKICBpZiAocyA9PT0gMCkgKHIgPSAwKSwgKG4gPSAhMCksIChhID0gITApOwogIGVsc2UgewogICAgciA9ICh0IC0gZS5taW5UcmFuc2xhdGUoKSkgLyBzOwogICAgY29uc3QgZCA9IE1hdGguYWJzKHQgLSBlLm1pblRyYW5zbGF0ZSgpKSA8IDEsCiAgICAgIGYgPSBNYXRoLmFicyh0IC0gZS5tYXhUcmFuc2xhdGUoKSkgPCAxOwogICAgKG4gPSBkIHx8IHIgPD0gMCksIChhID0gZiB8fCByID49IDEpLCBkICYmIChyID0gMCksIGYgJiYgKHIgPSAxKTsKICB9CiAgaWYgKGkubG9vcCkgewogICAgY29uc3QgZCA9IGUuZ2V0U2xpZGVJbmRleEJ5RGF0YSgwKSwKICAgICAgZiA9IGUuZ2V0U2xpZGVJbmRleEJ5RGF0YShlLnNsaWRlcy5sZW5ndGggLSAxKSwKICAgICAgcCA9IGUuc2xpZGVzR3JpZFtkXSwKICAgICAgdSA9IGUuc2xpZGVzR3JpZFtmXSwKICAgICAgaCA9IGUuc2xpZGVzR3JpZFtlLnNsaWRlc0dyaWQubGVuZ3RoIC0gMV0sCiAgICAgIG0gPSBNYXRoLmFicyh0KTsKICAgIG0gPj0gcCA/IChsID0gKG0gLSBwKSAvIGgpIDogKGwgPSAobSArIGggLSB1KSAvIGgpLCBsID4gMSAmJiAobCAtPSAxKTsKICB9CiAgT2JqZWN0LmFzc2lnbihlLCB7IHByb2dyZXNzOiByLCBwcm9ncmVzc0xvb3A6IGwsIGlzQmVnaW5uaW5nOiBuLCBpc0VuZDogYSB9KSwKICAgIChpLndhdGNoU2xpZGVzUHJvZ3Jlc3MgfHwgKGkuY2VudGVyZWRTbGlkZXMgJiYgaS5hdXRvSGVpZ2h0KSkgJiYKICAgICAgZS51cGRhdGVTbGlkZXNQcm9ncmVzcyh0KSwKICAgIG4gJiYgIW8gJiYgZS5lbWl0KCJyZWFjaEJlZ2lubmluZyB0b0VkZ2UiKSwKICAgIGEgJiYgIWMgJiYgZS5lbWl0KCJyZWFjaEVuZCB0b0VkZ2UiKSwKICAgICgobyAmJiAhbikgfHwgKGMgJiYgIWEpKSAmJiBlLmVtaXQoImZyb21FZGdlIiksCiAgICBlLmVtaXQoInByb2dyZXNzIiwgcik7Cn0KY29uc3QgWCA9ICh0LCBlLCBpKSA9PiB7CiAgZSAmJiAhdC5jbGFzc0xpc3QuY29udGFpbnMoaSkKICAgID8gdC5jbGFzc0xpc3QuYWRkKGkpCiAgICA6ICFlICYmIHQuY2xhc3NMaXN0LmNvbnRhaW5zKGkpICYmIHQuY2xhc3NMaXN0LnJlbW92ZShpKTsKfTsKZnVuY3Rpb24gVWUoKSB7CiAgY29uc3QgdCA9IHRoaXMsCiAgICB7IHNsaWRlczogZSwgcGFyYW1zOiBpLCBzbGlkZXNFbDogcywgYWN0aXZlSW5kZXg6IHIgfSA9IHQsCiAgICBuID0gdC52aXJ0dWFsICYmIGkudmlydHVhbC5lbmFibGVkLAogICAgYSA9IHQuZ3JpZCAmJiBpLmdyaWQgJiYgaS5ncmlkLnJvd3MgPiAxLAogICAgbCA9IChmKSA9PiBEKHMsIGAuJHtpLnNsaWRlQ2xhc3N9JHtmfSwgc3dpcGVyLXNsaWRlJHtmfWApWzBdOwogIGxldCBvLCBjLCBkOwogIGlmIChuKQogICAgaWYgKGkubG9vcCkgewogICAgICBsZXQgZiA9IHIgLSB0LnZpcnR1YWwuc2xpZGVzQmVmb3JlOwogICAgICBmIDwgMCAmJiAoZiA9IHQudmlydHVhbC5zbGlkZXMubGVuZ3RoICsgZiksCiAgICAgICAgZiA+PSB0LnZpcnR1YWwuc2xpZGVzLmxlbmd0aCAmJiAoZiAtPSB0LnZpcnR1YWwuc2xpZGVzLmxlbmd0aCksCiAgICAgICAgKG8gPSBsKGBbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7Zn0iXWApKTsKICAgIH0gZWxzZSBvID0gbChgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke3J9Il1gKTsKICBlbHNlCiAgICBhCiAgICAgID8gKChvID0gZS5maWx0ZXIoKGYpID0+IGYuY29sdW1uID09PSByKVswXSksCiAgICAgICAgKGQgPSBlLmZpbHRlcigoZikgPT4gZi5jb2x1bW4gPT09IHIgKyAxKVswXSksCiAgICAgICAgKGMgPSBlLmZpbHRlcigoZikgPT4gZi5jb2x1bW4gPT09IHIgLSAxKVswXSkpCiAgICAgIDogKG8gPSBlW3JdKTsKICBvICYmCiAgICAoYSB8fAogICAgICAoKGQgPSBHZShvLCBgLiR7aS5zbGlkZUNsYXNzfSwgc3dpcGVyLXNsaWRlYClbMF0pLAogICAgICBpLmxvb3AgJiYgIWQgJiYgKGQgPSBlWzBdKSwKICAgICAgKGMgPSBfZShvLCBgLiR7aS5zbGlkZUNsYXNzfSwgc3dpcGVyLXNsaWRlYClbMF0pLAogICAgICBpLmxvb3AgJiYgIWMgPT09IDAgJiYgKGMgPSBlW2UubGVuZ3RoIC0gMV0pKSksCiAgICBlLmZvckVhY2goKGYpID0+IHsKICAgICAgWChmLCBmID09PSBvLCBpLnNsaWRlQWN0aXZlQ2xhc3MpLAogICAgICAgIFgoZiwgZiA9PT0gZCwgaS5zbGlkZU5leHRDbGFzcyksCiAgICAgICAgWChmLCBmID09PSBjLCBpLnNsaWRlUHJldkNsYXNzKTsKICAgIH0pLAogICAgdC5lbWl0U2xpZGVzQ2xhc3NlcygpOwp9CmNvbnN0ICQgPSAodCwgZSkgPT4gewogICAgaWYgKCF0IHx8IHQuZGVzdHJveWVkIHx8ICF0LnBhcmFtcykgcmV0dXJuOwogICAgY29uc3QgaSA9ICgpID0+ICh0LmlzRWxlbWVudCA/ICJzd2lwZXItc2xpZGUiIDogYC4ke3QucGFyYW1zLnNsaWRlQ2xhc3N9YCksCiAgICAgIHMgPSBlLmNsb3Nlc3QoaSgpKTsKICAgIGlmIChzKSB7CiAgICAgIGxldCByID0gcy5xdWVyeVNlbGVjdG9yKGAuJHt0LnBhcmFtcy5sYXp5UHJlbG9hZGVyQ2xhc3N9YCk7CiAgICAgICFyICYmCiAgICAgICAgdC5pc0VsZW1lbnQgJiYKICAgICAgICAocy5zaGFkb3dSb290CiAgICAgICAgICA/IChyID0gcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYC4ke3QucGFyYW1zLmxhenlQcmVsb2FkZXJDbGFzc31gKSkKICAgICAgICAgIDogcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgICAgICBzLnNoYWRvd1Jvb3QgJiYKICAgICAgICAgICAgICAgICgociA9IHMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKAogICAgICAgICAgICAgICAgICBgLiR7dC5wYXJhbXMubGF6eVByZWxvYWRlckNsYXNzfWAKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgciAmJiByLnJlbW92ZSgpKTsKICAgICAgICAgICAgfSkpLAogICAgICAgIHIgJiYgci5yZW1vdmUoKTsKICAgIH0KICB9LAogIFUgPSAodCwgZSkgPT4gewogICAgaWYgKCF0LnNsaWRlc1tlXSkgcmV0dXJuOwogICAgY29uc3QgaSA9IHQuc2xpZGVzW2VdLnF1ZXJ5U2VsZWN0b3IoJ1tsb2FkaW5nPSJsYXp5Il0nKTsKICAgIGkgJiYgaS5yZW1vdmVBdHRyaWJ1dGUoImxvYWRpbmciKTsKICB9LAogIHRlID0gKHQpID0+IHsKICAgIGlmICghdCB8fCB0LmRlc3Ryb3llZCB8fCAhdC5wYXJhbXMpIHJldHVybjsKICAgIGxldCBlID0gdC5wYXJhbXMubGF6eVByZWxvYWRQcmV2TmV4dDsKICAgIGNvbnN0IGkgPSB0LnNsaWRlcy5sZW5ndGg7CiAgICBpZiAoIWkgfHwgIWUgfHwgZSA8IDApIHJldHVybjsKICAgIGUgPSBNYXRoLm1pbihlLCBpKTsKICAgIGNvbnN0IHMgPQogICAgICAgIHQucGFyYW1zLnNsaWRlc1BlclZpZXcgPT09ICJhdXRvIgogICAgICAgICAgPyB0LnNsaWRlc1BlclZpZXdEeW5hbWljKCkKICAgICAgICAgIDogTWF0aC5jZWlsKHQucGFyYW1zLnNsaWRlc1BlclZpZXcpLAogICAgICByID0gdC5hY3RpdmVJbmRleDsKICAgIGlmICh0LnBhcmFtcy5ncmlkICYmIHQucGFyYW1zLmdyaWQucm93cyA+IDEpIHsKICAgICAgY29uc3QgYSA9IHIsCiAgICAgICAgbCA9IFthIC0gZV07CiAgICAgIGwucHVzaCguLi5BcnJheS5mcm9tKHsgbGVuZ3RoOiBlIH0pLm1hcCgobywgYykgPT4gYSArIHMgKyBjKSksCiAgICAgICAgdC5zbGlkZXMuZm9yRWFjaCgobywgYykgPT4gewogICAgICAgICAgbC5pbmNsdWRlcyhvLmNvbHVtbikgJiYgVSh0LCBjKTsKICAgICAgICB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgbiA9IHIgKyBzIC0gMTsKICAgIGlmICh0LnBhcmFtcy5yZXdpbmQgfHwgdC5wYXJhbXMubG9vcCkKICAgICAgZm9yIChsZXQgYSA9IHIgLSBlOyBhIDw9IG4gKyBlOyBhICs9IDEpIHsKICAgICAgICBjb25zdCBsID0gKChhICUgaSkgKyBpKSAlIGk7CiAgICAgICAgKGwgPCByIHx8IGwgPiBuKSAmJiBVKHQsIGwpOwogICAgICB9CiAgICBlbHNlCiAgICAgIGZvciAobGV0IGEgPSBNYXRoLm1heChyIC0gZSwgMCk7IGEgPD0gTWF0aC5taW4obiArIGUsIGkgLSAxKTsgYSArPSAxKQogICAgICAgIGEgIT09IHIgJiYgKGEgPiBuIHx8IGEgPCByKSAmJiBVKHQsIGEpOwogIH07CmZ1bmN0aW9uIEtlKHQpIHsKICBjb25zdCB7IHNsaWRlc0dyaWQ6IGUsIHBhcmFtczogaSB9ID0gdCwKICAgIHMgPSB0LnJ0bFRyYW5zbGF0ZSA/IHQudHJhbnNsYXRlIDogLXQudHJhbnNsYXRlOwogIGxldCByOwogIGZvciAobGV0IG4gPSAwOyBuIDwgZS5sZW5ndGg7IG4gKz0gMSkKICAgIHR5cGVvZiBlW24gKyAxXSA8ICJ1IgogICAgICA/IHMgPj0gZVtuXSAmJiBzIDwgZVtuICsgMV0gLSAoZVtuICsgMV0gLSBlW25dKSAvIDIKICAgICAgICA/IChyID0gbikKICAgICAgICA6IHMgPj0gZVtuXSAmJiBzIDwgZVtuICsgMV0gJiYgKHIgPSBuICsgMSkKICAgICAgOiBzID49IGVbbl0gJiYgKHIgPSBuKTsKICByZXR1cm4gaS5ub3JtYWxpemVTbGlkZUluZGV4ICYmIChyIDwgMCB8fCB0eXBlb2YgciA+ICJ1IikgJiYgKHIgPSAwKSwgcjsKfQpmdW5jdGlvbiBKZSh0KSB7CiAgY29uc3QgZSA9IHRoaXMsCiAgICBpID0gZS5ydGxUcmFuc2xhdGUgPyBlLnRyYW5zbGF0ZSA6IC1lLnRyYW5zbGF0ZSwKICAgIHsgc25hcEdyaWQ6IHMsIHBhcmFtczogciwgYWN0aXZlSW5kZXg6IG4sIHJlYWxJbmRleDogYSwgc25hcEluZGV4OiBsIH0gPSBlOwogIGxldCBvID0gdCwKICAgIGM7CiAgY29uc3QgZCA9ICh1KSA9PiB7CiAgICBsZXQgaCA9IHUgLSBlLnZpcnR1YWwuc2xpZGVzQmVmb3JlOwogICAgcmV0dXJuICgKICAgICAgaCA8IDAgJiYgKGggPSBlLnZpcnR1YWwuc2xpZGVzLmxlbmd0aCArIGgpLAogICAgICBoID49IGUudmlydHVhbC5zbGlkZXMubGVuZ3RoICYmIChoIC09IGUudmlydHVhbC5zbGlkZXMubGVuZ3RoKSwKICAgICAgaAogICAgKTsKICB9OwogIGlmICgodHlwZW9mIG8gPiAidSIgJiYgKG8gPSBLZShlKSksIHMuaW5kZXhPZihpKSA+PSAwKSkgYyA9IHMuaW5kZXhPZihpKTsKICBlbHNlIHsKICAgIGNvbnN0IHUgPSBNYXRoLm1pbihyLnNsaWRlc1Blckdyb3VwU2tpcCwgbyk7CiAgICBjID0gdSArIE1hdGguZmxvb3IoKG8gLSB1KSAvIHIuc2xpZGVzUGVyR3JvdXApOwogIH0KICBpZiAoKGMgPj0gcy5sZW5ndGggJiYgKGMgPSBzLmxlbmd0aCAtIDEpLCBvID09PSBuICYmICFlLnBhcmFtcy5sb29wKSkgewogICAgYyAhPT0gbCAmJiAoKGUuc25hcEluZGV4ID0gYyksIGUuZW1pdCgic25hcEluZGV4Q2hhbmdlIikpOwogICAgcmV0dXJuOwogIH0KICBpZiAobyA9PT0gbiAmJiBlLnBhcmFtcy5sb29wICYmIGUudmlydHVhbCAmJiBlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpIHsKICAgIGUucmVhbEluZGV4ID0gZChvKTsKICAgIHJldHVybjsKICB9CiAgY29uc3QgZiA9IGUuZ3JpZCAmJiByLmdyaWQgJiYgci5ncmlkLnJvd3MgPiAxOwogIGxldCBwOwogIGlmIChlLnZpcnR1YWwgJiYgci52aXJ0dWFsLmVuYWJsZWQgJiYgci5sb29wKSBwID0gZChvKTsKICBlbHNlIGlmIChmKSB7CiAgICBjb25zdCB1ID0gZS5zbGlkZXMuZmlsdGVyKChtKSA9PiBtLmNvbHVtbiA9PT0gbylbMF07CiAgICBsZXQgaCA9IHBhcnNlSW50KHUuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLCAxMCk7CiAgICBOdW1iZXIuaXNOYU4oaCkgJiYgKGggPSBNYXRoLm1heChlLnNsaWRlcy5pbmRleE9mKHUpLCAwKSksCiAgICAgIChwID0gTWF0aC5mbG9vcihoIC8gci5ncmlkLnJvd3MpKTsKICB9IGVsc2UgaWYgKGUuc2xpZGVzW29dKSB7CiAgICBjb25zdCB1ID0gZS5zbGlkZXNbb10uZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpOwogICAgdSA/IChwID0gcGFyc2VJbnQodSwgMTApKSA6IChwID0gbyk7CiAgfSBlbHNlIHAgPSBvOwogIE9iamVjdC5hc3NpZ24oZSwgewogICAgcHJldmlvdXNTbmFwSW5kZXg6IGwsCiAgICBzbmFwSW5kZXg6IGMsCiAgICBwcmV2aW91c1JlYWxJbmRleDogYSwKICAgIHJlYWxJbmRleDogcCwKICAgIHByZXZpb3VzSW5kZXg6IG4sCiAgICBhY3RpdmVJbmRleDogbywKICB9KSwKICAgIGUuaW5pdGlhbGl6ZWQgJiYgdGUoZSksCiAgICBlLmVtaXQoImFjdGl2ZUluZGV4Q2hhbmdlIiksCiAgICBlLmVtaXQoInNuYXBJbmRleENoYW5nZSIpLAogICAgKGUuaW5pdGlhbGl6ZWQgfHwgZS5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0KSAmJgogICAgICAoYSAhPT0gcCAmJiBlLmVtaXQoInJlYWxJbmRleENoYW5nZSIpLCBlLmVtaXQoInNsaWRlQ2hhbmdlIikpOwp9CmZ1bmN0aW9uIFFlKHQsIGUpIHsKICBjb25zdCBpID0gdGhpcywKICAgIHMgPSBpLnBhcmFtczsKICBsZXQgciA9IHQuY2xvc2VzdChgLiR7cy5zbGlkZUNsYXNzfSwgc3dpcGVyLXNsaWRlYCk7CiAgIXIgJiYKICAgIGkuaXNFbGVtZW50ICYmCiAgICBlICYmCiAgICBlLmxlbmd0aCA+IDEgJiYKICAgIGUuaW5jbHVkZXModCkgJiYKICAgIFsuLi5lLnNsaWNlKGUuaW5kZXhPZih0KSArIDEsIGUubGVuZ3RoKV0uZm9yRWFjaCgobCkgPT4gewogICAgICAhciAmJiBsLm1hdGNoZXMgJiYgbC5tYXRjaGVzKGAuJHtzLnNsaWRlQ2xhc3N9LCBzd2lwZXItc2xpZGVgKSAmJiAociA9IGwpOwogICAgfSk7CiAgbGV0IG4gPSAhMSwKICAgIGE7CiAgaWYgKHIpIHsKICAgIGZvciAobGV0IGwgPSAwOyBsIDwgaS5zbGlkZXMubGVuZ3RoOyBsICs9IDEpCiAgICAgIGlmIChpLnNsaWRlc1tsXSA9PT0gcikgewogICAgICAgIChuID0gITApLCAoYSA9IGwpOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgfQogIGlmIChyICYmIG4pCiAgICAoaS5jbGlja2VkU2xpZGUgPSByKSwKICAgICAgaS52aXJ0dWFsICYmIGkucGFyYW1zLnZpcnR1YWwuZW5hYmxlZAogICAgICAgID8gKGkuY2xpY2tlZEluZGV4ID0gcGFyc2VJbnQoCiAgICAgICAgICAgIHIuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLAogICAgICAgICAgICAxMAogICAgICAgICAgKSkKICAgICAgICA6IChpLmNsaWNrZWRJbmRleCA9IGEpOwogIGVsc2UgewogICAgKGkuY2xpY2tlZFNsaWRlID0gdm9pZCAwKSwgKGkuY2xpY2tlZEluZGV4ID0gdm9pZCAwKTsKICAgIHJldHVybjsKICB9CiAgcy5zbGlkZVRvQ2xpY2tlZFNsaWRlICYmCiAgICBpLmNsaWNrZWRJbmRleCAhPT0gdm9pZCAwICYmCiAgICBpLmNsaWNrZWRJbmRleCAhPT0gaS5hY3RpdmVJbmRleCAmJgogICAgaS5zbGlkZVRvQ2xpY2tlZFNsaWRlKCk7Cn0KdmFyIFplID0gewogIHVwZGF0ZVNpemU6IEhlLAogIHVwZGF0ZVNsaWRlczogamUsCiAgdXBkYXRlQXV0b0hlaWdodDogV2UsCiAgdXBkYXRlU2xpZGVzT2Zmc2V0OiBZZSwKICB1cGRhdGVTbGlkZXNQcm9ncmVzczogcWUsCiAgdXBkYXRlUHJvZ3Jlc3M6IFhlLAogIHVwZGF0ZVNsaWRlc0NsYXNzZXM6IFVlLAogIHVwZGF0ZUFjdGl2ZUluZGV4OiBKZSwKICB1cGRhdGVDbGlja2VkU2xpZGU6IFFlLAp9OwpmdW5jdGlvbiBldCh0KSB7CiAgdCA9PT0gdm9pZCAwICYmICh0ID0gdGhpcy5pc0hvcml6b250YWwoKSA/ICJ4IiA6ICJ5Iik7CiAgY29uc3QgZSA9IHRoaXMsCiAgICB7IHBhcmFtczogaSwgcnRsVHJhbnNsYXRlOiBzLCB0cmFuc2xhdGU6IHIsIHdyYXBwZXJFbDogbiB9ID0gZTsKICBpZiAoaS52aXJ0dWFsVHJhbnNsYXRlKSByZXR1cm4gcyA/IC1yIDogcjsKICBpZiAoaS5jc3NNb2RlKSByZXR1cm4gcjsKICBsZXQgYSA9IE9lKG4sIHQpOwogIHJldHVybiAoYSArPSBlLmNzc092ZXJmbG93QWRqdXN0bWVudCgpKSwgcyAmJiAoYSA9IC1hKSwgYSB8fCAwOwp9CmZ1bmN0aW9uIHR0KHQsIGUpIHsKICBjb25zdCBpID0gdGhpcywKICAgIHsgcnRsVHJhbnNsYXRlOiBzLCBwYXJhbXM6IHIsIHdyYXBwZXJFbDogbiwgcHJvZ3Jlc3M6IGEgfSA9IGk7CiAgbGV0IGwgPSAwLAogICAgbyA9IDA7CiAgY29uc3QgYyA9IDA7CiAgaS5pc0hvcml6b250YWwoKSA/IChsID0gcyA/IC10IDogdCkgOiAobyA9IHQpLAogICAgci5yb3VuZExlbmd0aHMgJiYgKChsID0gTWF0aC5mbG9vcihsKSksIChvID0gTWF0aC5mbG9vcihvKSkpLAogICAgKGkucHJldmlvdXNUcmFuc2xhdGUgPSBpLnRyYW5zbGF0ZSksCiAgICAoaS50cmFuc2xhdGUgPSBpLmlzSG9yaXpvbnRhbCgpID8gbCA6IG8pLAogICAgci5jc3NNb2RlCiAgICAgID8gKG5baS5pc0hvcml6b250YWwoKSA/ICJzY3JvbGxMZWZ0IiA6ICJzY3JvbGxUb3AiXSA9IGkuaXNIb3Jpem9udGFsKCkKICAgICAgICAgID8gLWwKICAgICAgICAgIDogLW8pCiAgICAgIDogci52aXJ0dWFsVHJhbnNsYXRlIHx8CiAgICAgICAgKGkuaXNIb3Jpem9udGFsKCkKICAgICAgICAgID8gKGwgLT0gaS5jc3NPdmVyZmxvd0FkanVzdG1lbnQoKSkKICAgICAgICAgIDogKG8gLT0gaS5jc3NPdmVyZmxvd0FkanVzdG1lbnQoKSksCiAgICAgICAgKG4uc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7bH1weCwgJHtvfXB4LCAke2N9cHgpYCkpOwogIGxldCBkOwogIGNvbnN0IGYgPSBpLm1heFRyYW5zbGF0ZSgpIC0gaS5taW5UcmFuc2xhdGUoKTsKICBmID09PSAwID8gKGQgPSAwKSA6IChkID0gKHQgLSBpLm1pblRyYW5zbGF0ZSgpKSAvIGYpLAogICAgZCAhPT0gYSAmJiBpLnVwZGF0ZVByb2dyZXNzKHQpLAogICAgaS5lbWl0KCJzZXRUcmFuc2xhdGUiLCBpLnRyYW5zbGF0ZSwgZSk7Cn0KZnVuY3Rpb24gaXQoKSB7CiAgcmV0dXJuIC10aGlzLnNuYXBHcmlkWzBdOwp9CmZ1bmN0aW9uIHN0KCkgewogIHJldHVybiAtdGhpcy5zbmFwR3JpZFt0aGlzLnNuYXBHcmlkLmxlbmd0aCAtIDFdOwp9CmZ1bmN0aW9uIHJ0KHQsIGUsIGksIHMsIHIpIHsKICB0ID09PSB2b2lkIDAgJiYgKHQgPSAwKSwKICAgIGUgPT09IHZvaWQgMCAmJiAoZSA9IHRoaXMucGFyYW1zLnNwZWVkKSwKICAgIGkgPT09IHZvaWQgMCAmJiAoaSA9ICEwKSwKICAgIHMgPT09IHZvaWQgMCAmJiAocyA9ICEwKTsKICBjb25zdCBuID0gdGhpcywKICAgIHsgcGFyYW1zOiBhLCB3cmFwcGVyRWw6IGwgfSA9IG47CiAgaWYgKG4uYW5pbWF0aW5nICYmIGEucHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uKSByZXR1cm4gITE7CiAgY29uc3QgbyA9IG4ubWluVHJhbnNsYXRlKCksCiAgICBjID0gbi5tYXhUcmFuc2xhdGUoKTsKICBsZXQgZDsKICBpZiAoCiAgICAocyAmJiB0ID4gbyA/IChkID0gbykgOiBzICYmIHQgPCBjID8gKGQgPSBjKSA6IChkID0gdCksCiAgICBuLnVwZGF0ZVByb2dyZXNzKGQpLAogICAgYS5jc3NNb2RlKQogICkgewogICAgY29uc3QgZiA9IG4uaXNIb3Jpem9udGFsKCk7CiAgICBpZiAoZSA9PT0gMCkgbFtmID8gInNjcm9sbExlZnQiIDogInNjcm9sbFRvcCJdID0gLWQ7CiAgICBlbHNlIHsKICAgICAgaWYgKCFuLnN1cHBvcnQuc21vb3RoU2Nyb2xsKQogICAgICAgIHJldHVybiAoCiAgICAgICAgICB3ZSh7IHN3aXBlcjogbiwgdGFyZ2V0UG9zaXRpb246IC1kLCBzaWRlOiBmID8gImxlZnQiIDogInRvcCIgfSksICEwCiAgICAgICAgKTsKICAgICAgbC5zY3JvbGxUbyh7IFtmID8gImxlZnQiIDogInRvcCJdOiAtZCwgYmVoYXZpb3I6ICJzbW9vdGgiIH0pOwogICAgfQogICAgcmV0dXJuICEwOwogIH0KICByZXR1cm4gKAogICAgZSA9PT0gMAogICAgICA/IChuLnNldFRyYW5zaXRpb24oMCksCiAgICAgICAgbi5zZXRUcmFuc2xhdGUoZCksCiAgICAgICAgaSAmJiAobi5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLCBlLCByKSwgbi5lbWl0KCJ0cmFuc2l0aW9uRW5kIikpKQogICAgICA6IChuLnNldFRyYW5zaXRpb24oZSksCiAgICAgICAgbi5zZXRUcmFuc2xhdGUoZCksCiAgICAgICAgaSAmJiAobi5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLCBlLCByKSwgbi5lbWl0KCJ0cmFuc2l0aW9uU3RhcnQiKSksCiAgICAgICAgbi5hbmltYXRpbmcgfHwKICAgICAgICAgICgobi5hbmltYXRpbmcgPSAhMCksCiAgICAgICAgICBuLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCB8fAogICAgICAgICAgICAobi5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiAocCkgewogICAgICAgICAgICAgICFuIHx8CiAgICAgICAgICAgICAgICBuLmRlc3Ryb3llZCB8fAogICAgICAgICAgICAgICAgKHAudGFyZ2V0ID09PSB0aGlzICYmCiAgICAgICAgICAgICAgICAgIChuLndyYXBwZXJFbC5yZW1vdmVFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aW9uZW5kIiwKICAgICAgICAgICAgICAgICAgICBuLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAobi5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgZGVsZXRlIG4ub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kLAogICAgICAgICAgICAgICAgICAobi5hbmltYXRpbmcgPSAhMSksCiAgICAgICAgICAgICAgICAgIGkgJiYgbi5lbWl0KCJ0cmFuc2l0aW9uRW5kIikpKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICBuLndyYXBwZXJFbC5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAidHJhbnNpdGlvbmVuZCIsCiAgICAgICAgICAgIG4ub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kCiAgICAgICAgICApKSksCiAgICAhMAogICk7Cn0KdmFyIG50ID0gewogIGdldFRyYW5zbGF0ZTogZXQsCiAgc2V0VHJhbnNsYXRlOiB0dCwKICBtaW5UcmFuc2xhdGU6IGl0LAogIG1heFRyYW5zbGF0ZTogc3QsCiAgdHJhbnNsYXRlVG86IHJ0LAp9OwpmdW5jdGlvbiBvdCh0LCBlKSB7CiAgY29uc3QgaSA9IHRoaXM7CiAgaS5wYXJhbXMuY3NzTW9kZSB8fAogICAgKChpLndyYXBwZXJFbC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHt0fW1zYCksCiAgICAoaS53cmFwcGVyRWwuc3R5bGUudHJhbnNpdGlvbkRlbGF5ID0gdCA9PT0gMCA/ICIwbXMiIDogIiIpKSwKICAgIGkuZW1pdCgic2V0VHJhbnNpdGlvbiIsIHQsIGUpOwp9CmZ1bmN0aW9uIGJlKHQpIHsKICBsZXQgeyBzd2lwZXI6IGUsIHJ1bkNhbGxiYWNrczogaSwgZGlyZWN0aW9uOiBzLCBzdGVwOiByIH0gPSB0OwogIGNvbnN0IHsgYWN0aXZlSW5kZXg6IG4sIHByZXZpb3VzSW5kZXg6IGEgfSA9IGU7CiAgbGV0IGwgPSBzOwogIGlmICgKICAgIChsIHx8IChuID4gYSA/IChsID0gIm5leHQiKSA6IG4gPCBhID8gKGwgPSAicHJldiIpIDogKGwgPSAicmVzZXQiKSksCiAgICBlLmVtaXQoYHRyYW5zaXRpb24ke3J9YCksCiAgICBpICYmIG4gIT09IGEpCiAgKSB7CiAgICBpZiAobCA9PT0gInJlc2V0IikgewogICAgICBlLmVtaXQoYHNsaWRlUmVzZXRUcmFuc2l0aW9uJHtyfWApOwogICAgICByZXR1cm47CiAgICB9CiAgICBlLmVtaXQoYHNsaWRlQ2hhbmdlVHJhbnNpdGlvbiR7cn1gKSwKICAgICAgbCA9PT0gIm5leHQiCiAgICAgICAgPyBlLmVtaXQoYHNsaWRlTmV4dFRyYW5zaXRpb24ke3J9YCkKICAgICAgICA6IGUuZW1pdChgc2xpZGVQcmV2VHJhbnNpdGlvbiR7cn1gKTsKICB9Cn0KZnVuY3Rpb24gbHQodCwgZSkgewogIHQgPT09IHZvaWQgMCAmJiAodCA9ICEwKTsKICBjb25zdCBpID0gdGhpcywKICAgIHsgcGFyYW1zOiBzIH0gPSBpOwogIHMuY3NzTW9kZSB8fAogICAgKHMuYXV0b0hlaWdodCAmJiBpLnVwZGF0ZUF1dG9IZWlnaHQoKSwKICAgIGJlKHsgc3dpcGVyOiBpLCBydW5DYWxsYmFja3M6IHQsIGRpcmVjdGlvbjogZSwgc3RlcDogIlN0YXJ0IiB9KSk7Cn0KZnVuY3Rpb24gYXQodCwgZSkgewogIHQgPT09IHZvaWQgMCAmJiAodCA9ICEwKTsKICBjb25zdCBpID0gdGhpcywKICAgIHsgcGFyYW1zOiBzIH0gPSBpOwogIChpLmFuaW1hdGluZyA9ICExKSwKICAgICFzLmNzc01vZGUgJiYKICAgICAgKGkuc2V0VHJhbnNpdGlvbigwKSwKICAgICAgYmUoeyBzd2lwZXI6IGksIHJ1bkNhbGxiYWNrczogdCwgZGlyZWN0aW9uOiBlLCBzdGVwOiAiRW5kIiB9KSk7Cn0KdmFyIGR0ID0geyBzZXRUcmFuc2l0aW9uOiBvdCwgdHJhbnNpdGlvblN0YXJ0OiBsdCwgdHJhbnNpdGlvbkVuZDogYXQgfTsKZnVuY3Rpb24gY3QodCwgZSwgaSwgcywgcikgewogIHQgPT09IHZvaWQgMCAmJiAodCA9IDApLAogICAgaSA9PT0gdm9pZCAwICYmIChpID0gITApLAogICAgdHlwZW9mIHQgPT0gInN0cmluZyIgJiYgKHQgPSBwYXJzZUludCh0LCAxMCkpOwogIGNvbnN0IG4gPSB0aGlzOwogIGxldCBhID0gdDsKICBhIDwgMCAmJiAoYSA9IDApOwogIGNvbnN0IHsKICAgIHBhcmFtczogbCwKICAgIHNuYXBHcmlkOiBvLAogICAgc2xpZGVzR3JpZDogYywKICAgIHByZXZpb3VzSW5kZXg6IGQsCiAgICBhY3RpdmVJbmRleDogZiwKICAgIHJ0bFRyYW5zbGF0ZTogcCwKICAgIHdyYXBwZXJFbDogdSwKICAgIGVuYWJsZWQ6IGgsCiAgfSA9IG47CiAgaWYgKAogICAgKCFoICYmICFzICYmICFyKSB8fAogICAgbi5kZXN0cm95ZWQgfHwKICAgIChuLmFuaW1hdGluZyAmJiBsLnByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbikKICApCiAgICByZXR1cm4gITE7CiAgdHlwZW9mIGUgPiAidSIgJiYgKGUgPSBuLnBhcmFtcy5zcGVlZCk7CiAgY29uc3QgbSA9IE1hdGgubWluKG4ucGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCwgYSk7CiAgbGV0IFQgPSBtICsgTWF0aC5mbG9vcigoYSAtIG0pIC8gbi5wYXJhbXMuc2xpZGVzUGVyR3JvdXApOwogIFQgPj0gby5sZW5ndGggJiYgKFQgPSBvLmxlbmd0aCAtIDEpOwogIGNvbnN0IGcgPSAtb1tUXTsKICBpZiAobC5ub3JtYWxpemVTbGlkZUluZGV4KQogICAgZm9yIChsZXQgUyA9IDA7IFMgPCBjLmxlbmd0aDsgUyArPSAxKSB7CiAgICAgIGNvbnN0IE0gPSAtTWF0aC5mbG9vcihnICogMTAwKSwKICAgICAgICBPID0gTWF0aC5mbG9vcihjW1NdICogMTAwKSwKICAgICAgICBJID0gTWF0aC5mbG9vcihjW1MgKyAxXSAqIDEwMCk7CiAgICAgIHR5cGVvZiBjW1MgKyAxXSA8ICJ1IgogICAgICAgID8gTSA+PSBPICYmIE0gPCBJIC0gKEkgLSBPKSAvIDIKICAgICAgICAgID8gKGEgPSBTKQogICAgICAgICAgOiBNID49IE8gJiYgTSA8IEkgJiYgKGEgPSBTICsgMSkKICAgICAgICA6IE0gPj0gTyAmJiAoYSA9IFMpOwogICAgfQogIGlmICgKICAgIG4uaW5pdGlhbGl6ZWQgJiYKICAgIGEgIT09IGYgJiYKICAgICgoIW4uYWxsb3dTbGlkZU5leHQgJiYKICAgICAgKHAKICAgICAgICA/IGcgPiBuLnRyYW5zbGF0ZSAmJiBnID4gbi5taW5UcmFuc2xhdGUoKQogICAgICAgIDogZyA8IG4udHJhbnNsYXRlICYmIGcgPCBuLm1pblRyYW5zbGF0ZSgpKSkgfHwKICAgICAgKCFuLmFsbG93U2xpZGVQcmV2ICYmCiAgICAgICAgZyA+IG4udHJhbnNsYXRlICYmCiAgICAgICAgZyA+IG4ubWF4VHJhbnNsYXRlKCkgJiYKICAgICAgICAoZiB8fCAwKSAhPT0gYSkpCiAgKQogICAgcmV0dXJuICExOwogIGEgIT09IChkIHx8IDApICYmIGkgJiYgbi5lbWl0KCJiZWZvcmVTbGlkZUNoYW5nZVN0YXJ0IiksIG4udXBkYXRlUHJvZ3Jlc3MoZyk7CiAgbGV0IGI7CiAgYSA+IGYgPyAoYiA9ICJuZXh0IikgOiBhIDwgZiA/IChiID0gInByZXYiKSA6IChiID0gInJlc2V0Iik7CiAgY29uc3QgdyA9IG4udmlydHVhbCAmJiBuLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7CiAgaWYgKCEodyAmJiByKSAmJiAoKHAgJiYgLWcgPT09IG4udHJhbnNsYXRlKSB8fCAoIXAgJiYgZyA9PT0gbi50cmFuc2xhdGUpKSkKICAgIHJldHVybiAoCiAgICAgIG4udXBkYXRlQWN0aXZlSW5kZXgoYSksCiAgICAgIGwuYXV0b0hlaWdodCAmJiBuLnVwZGF0ZUF1dG9IZWlnaHQoKSwKICAgICAgbi51cGRhdGVTbGlkZXNDbGFzc2VzKCksCiAgICAgIGwuZWZmZWN0ICE9PSAic2xpZGUiICYmIG4uc2V0VHJhbnNsYXRlKGcpLAogICAgICBiICE9PSAicmVzZXQiICYmIChuLnRyYW5zaXRpb25TdGFydChpLCBiKSwgbi50cmFuc2l0aW9uRW5kKGksIGIpKSwKICAgICAgITEKICAgICk7CiAgaWYgKGwuY3NzTW9kZSkgewogICAgY29uc3QgUyA9IG4uaXNIb3Jpem9udGFsKCksCiAgICAgIE0gPSBwID8gZyA6IC1nOwogICAgaWYgKGUgPT09IDApCiAgICAgIHcgJiYKICAgICAgICAoKG4ud3JhcHBlckVsLnN0eWxlLnNjcm9sbFNuYXBUeXBlID0gIm5vbmUiKSwKICAgICAgICAobi5faW1tZWRpYXRlVmlydHVhbCA9ICEwKSksCiAgICAgICAgdyAmJiAhbi5fY3NzTW9kZVZpcnR1YWxJbml0aWFsU2V0ICYmIG4ucGFyYW1zLmluaXRpYWxTbGlkZSA+IDAKICAgICAgICAgID8gKChuLl9jc3NNb2RlVmlydHVhbEluaXRpYWxTZXQgPSAhMCksCiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgICAgICAgdVtTID8gInNjcm9sbExlZnQiIDogInNjcm9sbFRvcCJdID0gTTsKICAgICAgICAgICAgfSkpCiAgICAgICAgICA6ICh1W1MgPyAic2Nyb2xsTGVmdCIgOiAic2Nyb2xsVG9wIl0gPSBNKSwKICAgICAgICB3ICYmCiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAgICAgICAobi53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGUgPSAiIiksIChuLl9pbW1lZGlhdGVWaXJ0dWFsID0gITEpOwogICAgICAgICAgfSk7CiAgICBlbHNlIHsKICAgICAgaWYgKCFuLnN1cHBvcnQuc21vb3RoU2Nyb2xsKQogICAgICAgIHJldHVybiAoCiAgICAgICAgICB3ZSh7IHN3aXBlcjogbiwgdGFyZ2V0UG9zaXRpb246IE0sIHNpZGU6IFMgPyAibGVmdCIgOiAidG9wIiB9KSwgITAKICAgICAgICApOwogICAgICB1LnNjcm9sbFRvKHsgW1MgPyAibGVmdCIgOiAidG9wIl06IE0sIGJlaGF2aW9yOiAic21vb3RoIiB9KTsKICAgIH0KICAgIHJldHVybiAhMDsKICB9CiAgcmV0dXJuICgKICAgIG4uc2V0VHJhbnNpdGlvbihlKSwKICAgIG4uc2V0VHJhbnNsYXRlKGcpLAogICAgbi51cGRhdGVBY3RpdmVJbmRleChhKSwKICAgIG4udXBkYXRlU2xpZGVzQ2xhc3NlcygpLAogICAgbi5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLCBlLCBzKSwKICAgIG4udHJhbnNpdGlvblN0YXJ0KGksIGIpLAogICAgZSA9PT0gMAogICAgICA/IG4udHJhbnNpdGlvbkVuZChpLCBiKQogICAgICA6IG4uYW5pbWF0aW5nIHx8CiAgICAgICAgKChuLmFuaW1hdGluZyA9ICEwKSwKICAgICAgICBuLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kIHx8CiAgICAgICAgICAobi5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCA9IGZ1bmN0aW9uIChNKSB7CiAgICAgICAgICAgICFuIHx8CiAgICAgICAgICAgICAgbi5kZXN0cm95ZWQgfHwKICAgICAgICAgICAgICAoTS50YXJnZXQgPT09IHRoaXMgJiYKICAgICAgICAgICAgICAgIChuLndyYXBwZXJFbC5yZW1vdmVFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAidHJhbnNpdGlvbmVuZCIsCiAgICAgICAgICAgICAgICAgIG4ub25TbGlkZVRvV3JhcHBlclRyYW5zaXRpb25FbmQKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAobi5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCA9IG51bGwpLAogICAgICAgICAgICAgICAgZGVsZXRlIG4ub25TbGlkZVRvV3JhcHBlclRyYW5zaXRpb25FbmQsCiAgICAgICAgICAgICAgICBuLnRyYW5zaXRpb25FbmQoaSwgYikpKTsKICAgICAgICAgIH0pLAogICAgICAgIG4ud3JhcHBlckVsLmFkZEV2ZW50TGlzdGVuZXIoCiAgICAgICAgICAidHJhbnNpdGlvbmVuZCIsCiAgICAgICAgICBuLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kCiAgICAgICAgKSksCiAgICAhMAogICk7Cn0KZnVuY3Rpb24gZnQodCwgZSwgaSwgcykgewogIHQgPT09IHZvaWQgMCAmJiAodCA9IDApLAogICAgaSA9PT0gdm9pZCAwICYmIChpID0gITApLAogICAgdHlwZW9mIHQgPT0gInN0cmluZyIgJiYgKHQgPSBwYXJzZUludCh0LCAxMCkpOwogIGNvbnN0IHIgPSB0aGlzOwogIGlmIChyLmRlc3Ryb3llZCkgcmV0dXJuOwogIHR5cGVvZiBlID4gInUiICYmIChlID0gci5wYXJhbXMuc3BlZWQpOwogIGNvbnN0IG4gPSByLmdyaWQgJiYgci5wYXJhbXMuZ3JpZCAmJiByLnBhcmFtcy5ncmlkLnJvd3MgPiAxOwogIGxldCBhID0gdDsKICBpZiAoci5wYXJhbXMubG9vcCkKICAgIGlmIChyLnZpcnR1YWwgJiYgci5wYXJhbXMudmlydHVhbC5lbmFibGVkKSBhID0gYSArIHIudmlydHVhbC5zbGlkZXNCZWZvcmU7CiAgICBlbHNlIHsKICAgICAgbGV0IGw7CiAgICAgIGlmIChuKSB7CiAgICAgICAgY29uc3QgcCA9IGEgKiByLnBhcmFtcy5ncmlkLnJvd3M7CiAgICAgICAgbCA9IHIuc2xpZGVzLmZpbHRlcigKICAgICAgICAgICh1KSA9PiB1LmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSAqIDEgPT09IHAKICAgICAgICApWzBdLmNvbHVtbjsKICAgICAgfSBlbHNlIGwgPSByLmdldFNsaWRlSW5kZXhCeURhdGEoYSk7CiAgICAgIGNvbnN0IG8gPSBuCiAgICAgICAgICA/IE1hdGguY2VpbChyLnNsaWRlcy5sZW5ndGggLyByLnBhcmFtcy5ncmlkLnJvd3MpCiAgICAgICAgICA6IHIuc2xpZGVzLmxlbmd0aCwKICAgICAgICB7IGNlbnRlcmVkU2xpZGVzOiBjIH0gPSByLnBhcmFtczsKICAgICAgbGV0IGQgPSByLnBhcmFtcy5zbGlkZXNQZXJWaWV3OwogICAgICBkID09PSAiYXV0byIKICAgICAgICA/IChkID0gci5zbGlkZXNQZXJWaWV3RHluYW1pYygpKQogICAgICAgIDogKChkID0gTWF0aC5jZWlsKHBhcnNlRmxvYXQoci5wYXJhbXMuc2xpZGVzUGVyVmlldywgMTApKSksCiAgICAgICAgICBjICYmIGQgJSAyID09PSAwICYmIChkID0gZCArIDEpKTsKICAgICAgbGV0IGYgPSBvIC0gbCA8IGQ7CiAgICAgIGlmICgKICAgICAgICAoYyAmJiAoZiA9IGYgfHwgbCA8IE1hdGguY2VpbChkIC8gMikpLAogICAgICAgIHMgJiYgYyAmJiByLnBhcmFtcy5zbGlkZXNQZXJWaWV3ICE9PSAiYXV0byIgJiYgIW4gJiYgKGYgPSAhMSksCiAgICAgICAgZikKICAgICAgKSB7CiAgICAgICAgY29uc3QgcCA9IGMKICAgICAgICAgID8gbCA8IHIuYWN0aXZlSW5kZXgKICAgICAgICAgICAgPyAicHJldiIKICAgICAgICAgICAgOiAibmV4dCIKICAgICAgICAgIDogbCAtIHIuYWN0aXZlSW5kZXggLSAxIDwgci5wYXJhbXMuc2xpZGVzUGVyVmlldwogICAgICAgICAgPyAibmV4dCIKICAgICAgICAgIDogInByZXYiOwogICAgICAgIHIubG9vcEZpeCh7CiAgICAgICAgICBkaXJlY3Rpb246IHAsCiAgICAgICAgICBzbGlkZVRvOiAhMCwKICAgICAgICAgIGFjdGl2ZVNsaWRlSW5kZXg6IHAgPT09ICJuZXh0IiA/IGwgKyAxIDogbCAtIG8gKyAxLAogICAgICAgICAgc2xpZGVSZWFsSW5kZXg6IHAgPT09ICJuZXh0IiA/IHIucmVhbEluZGV4IDogdm9pZCAwLAogICAgICAgIH0pOwogICAgICB9CiAgICAgIGlmIChuKSB7CiAgICAgICAgY29uc3QgcCA9IGEgKiByLnBhcmFtcy5ncmlkLnJvd3M7CiAgICAgICAgYSA9IHIuc2xpZGVzLmZpbHRlcigKICAgICAgICAgICh1KSA9PiB1LmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSAqIDEgPT09IHAKICAgICAgICApWzBdLmNvbHVtbjsKICAgICAgfSBlbHNlIGEgPSByLmdldFNsaWRlSW5kZXhCeURhdGEoYSk7CiAgICB9CiAgcmV0dXJuICgKICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgIHIuc2xpZGVUbyhhLCBlLCBpLCBzKTsKICAgIH0pLAogICAgcgogICk7Cn0KZnVuY3Rpb24gdXQodCwgZSwgaSkgewogIGUgPT09IHZvaWQgMCAmJiAoZSA9ICEwKTsKICBjb25zdCBzID0gdGhpcywKICAgIHsgZW5hYmxlZDogciwgcGFyYW1zOiBuLCBhbmltYXRpbmc6IGEgfSA9IHM7CiAgaWYgKCFyIHx8IHMuZGVzdHJveWVkKSByZXR1cm4gczsKICB0eXBlb2YgdCA+ICJ1IiAmJiAodCA9IHMucGFyYW1zLnNwZWVkKTsKICBsZXQgbCA9IG4uc2xpZGVzUGVyR3JvdXA7CiAgbi5zbGlkZXNQZXJWaWV3ID09PSAiYXV0byIgJiYKICAgIG4uc2xpZGVzUGVyR3JvdXAgPT09IDEgJiYKICAgIG4uc2xpZGVzUGVyR3JvdXBBdXRvICYmCiAgICAobCA9IE1hdGgubWF4KHMuc2xpZGVzUGVyVmlld0R5bmFtaWMoImN1cnJlbnQiLCAhMCksIDEpKTsKICBjb25zdCBvID0gcy5hY3RpdmVJbmRleCA8IG4uc2xpZGVzUGVyR3JvdXBTa2lwID8gMSA6IGwsCiAgICBjID0gcy52aXJ0dWFsICYmIG4udmlydHVhbC5lbmFibGVkOwogIGlmIChuLmxvb3ApIHsKICAgIGlmIChhICYmICFjICYmIG4ubG9vcFByZXZlbnRzU2xpZGluZykgcmV0dXJuICExOwogICAgaWYgKAogICAgICAocy5sb29wRml4KHsgZGlyZWN0aW9uOiAibmV4dCIgfSksCiAgICAgIChzLl9jbGllbnRMZWZ0ID0gcy53cmFwcGVyRWwuY2xpZW50TGVmdCksCiAgICAgIHMuYWN0aXZlSW5kZXggPT09IHMuc2xpZGVzLmxlbmd0aCAtIDEgJiYgbi5jc3NNb2RlKQogICAgKQogICAgICByZXR1cm4gKAogICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgICBzLnNsaWRlVG8ocy5hY3RpdmVJbmRleCArIG8sIHQsIGUsIGkpOwogICAgICAgIH0pLAogICAgICAgICEwCiAgICAgICk7CiAgfQogIHJldHVybiBuLnJld2luZCAmJiBzLmlzRW5kCiAgICA/IHMuc2xpZGVUbygwLCB0LCBlLCBpKQogICAgOiBzLnNsaWRlVG8ocy5hY3RpdmVJbmRleCArIG8sIHQsIGUsIGkpOwp9CmZ1bmN0aW9uIHB0KHQsIGUsIGkpIHsKICBlID09PSB2b2lkIDAgJiYgKGUgPSAhMCk7CiAgY29uc3QgcyA9IHRoaXMsCiAgICB7CiAgICAgIHBhcmFtczogciwKICAgICAgc25hcEdyaWQ6IG4sCiAgICAgIHNsaWRlc0dyaWQ6IGEsCiAgICAgIHJ0bFRyYW5zbGF0ZTogbCwKICAgICAgZW5hYmxlZDogbywKICAgICAgYW5pbWF0aW5nOiBjLAogICAgfSA9IHM7CiAgaWYgKCFvIHx8IHMuZGVzdHJveWVkKSByZXR1cm4gczsKICB0eXBlb2YgdCA+ICJ1IiAmJiAodCA9IHMucGFyYW1zLnNwZWVkKTsKICBjb25zdCBkID0gcy52aXJ0dWFsICYmIHIudmlydHVhbC5lbmFibGVkOwogIGlmIChyLmxvb3ApIHsKICAgIGlmIChjICYmICFkICYmIHIubG9vcFByZXZlbnRzU2xpZGluZykgcmV0dXJuICExOwogICAgcy5sb29wRml4KHsgZGlyZWN0aW9uOiAicHJldiIgfSksIChzLl9jbGllbnRMZWZ0ID0gcy53cmFwcGVyRWwuY2xpZW50TGVmdCk7CiAgfQogIGNvbnN0IGYgPSBsID8gcy50cmFuc2xhdGUgOiAtcy50cmFuc2xhdGU7CiAgZnVuY3Rpb24gcChnKSB7CiAgICByZXR1cm4gZyA8IDAgPyAtTWF0aC5mbG9vcihNYXRoLmFicyhnKSkgOiBNYXRoLmZsb29yKGcpOwogIH0KICBjb25zdCB1ID0gcChmKSwKICAgIGggPSBuLm1hcCgoZykgPT4gcChnKSk7CiAgbGV0IG0gPSBuW2guaW5kZXhPZih1KSAtIDFdOwogIGlmICh0eXBlb2YgbSA+ICJ1IiAmJiByLmNzc01vZGUpIHsKICAgIGxldCBnOwogICAgbi5mb3JFYWNoKChiLCB3KSA9PiB7CiAgICAgIHUgPj0gYiAmJiAoZyA9IHcpOwogICAgfSksCiAgICAgIHR5cGVvZiBnIDwgInUiICYmIChtID0gbltnID4gMCA/IGcgLSAxIDogZ10pOwogIH0KICBsZXQgVCA9IDA7CiAgaWYgKAogICAgKHR5cGVvZiBtIDwgInUiICYmCiAgICAgICgoVCA9IGEuaW5kZXhPZihtKSksCiAgICAgIFQgPCAwICYmIChUID0gcy5hY3RpdmVJbmRleCAtIDEpLAogICAgICByLnNsaWRlc1BlclZpZXcgPT09ICJhdXRvIiAmJgogICAgICAgIHIuc2xpZGVzUGVyR3JvdXAgPT09IDEgJiYKICAgICAgICByLnNsaWRlc1Blckdyb3VwQXV0byAmJgogICAgICAgICgoVCA9IFQgLSBzLnNsaWRlc1BlclZpZXdEeW5hbWljKCJwcmV2aW91cyIsICEwKSArIDEpLAogICAgICAgIChUID0gTWF0aC5tYXgoVCwgMCkpKSksCiAgICByLnJld2luZCAmJiBzLmlzQmVnaW5uaW5nKQogICkgewogICAgY29uc3QgZyA9CiAgICAgIHMucGFyYW1zLnZpcnR1YWwgJiYgcy5wYXJhbXMudmlydHVhbC5lbmFibGVkICYmIHMudmlydHVhbAogICAgICAgID8gcy52aXJ0dWFsLnNsaWRlcy5sZW5ndGggLSAxCiAgICAgICAgOiBzLnNsaWRlcy5sZW5ndGggLSAxOwogICAgcmV0dXJuIHMuc2xpZGVUbyhnLCB0LCBlLCBpKTsKICB9IGVsc2UgaWYgKHIubG9vcCAmJiBzLmFjdGl2ZUluZGV4ID09PSAwICYmIHIuY3NzTW9kZSkKICAgIHJldHVybiAoCiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgcy5zbGlkZVRvKFQsIHQsIGUsIGkpOwogICAgICB9KSwKICAgICAgITAKICAgICk7CiAgcmV0dXJuIHMuc2xpZGVUbyhULCB0LCBlLCBpKTsKfQpmdW5jdGlvbiBodCh0LCBlLCBpKSB7CiAgZSA9PT0gdm9pZCAwICYmIChlID0gITApOwogIGNvbnN0IHMgPSB0aGlzOwogIGlmICghcy5kZXN0cm95ZWQpCiAgICByZXR1cm4gKAogICAgICB0eXBlb2YgdCA+ICJ1IiAmJiAodCA9IHMucGFyYW1zLnNwZWVkKSwgcy5zbGlkZVRvKHMuYWN0aXZlSW5kZXgsIHQsIGUsIGkpCiAgICApOwp9CmZ1bmN0aW9uIG10KHQsIGUsIGksIHMpIHsKICBlID09PSB2b2lkIDAgJiYgKGUgPSAhMCksIHMgPT09IHZvaWQgMCAmJiAocyA9IDAuNSk7CiAgY29uc3QgciA9IHRoaXM7CiAgaWYgKHIuZGVzdHJveWVkKSByZXR1cm47CiAgdHlwZW9mIHQgPiAidSIgJiYgKHQgPSByLnBhcmFtcy5zcGVlZCk7CiAgbGV0IG4gPSByLmFjdGl2ZUluZGV4OwogIGNvbnN0IGEgPSBNYXRoLm1pbihyLnBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAsIG4pLAogICAgbCA9IGEgKyBNYXRoLmZsb29yKChuIC0gYSkgLyByLnBhcmFtcy5zbGlkZXNQZXJHcm91cCksCiAgICBvID0gci5ydGxUcmFuc2xhdGUgPyByLnRyYW5zbGF0ZSA6IC1yLnRyYW5zbGF0ZTsKICBpZiAobyA+PSByLnNuYXBHcmlkW2xdKSB7CiAgICBjb25zdCBjID0gci5zbmFwR3JpZFtsXSwKICAgICAgZCA9IHIuc25hcEdyaWRbbCArIDFdOwogICAgbyAtIGMgPiAoZCAtIGMpICogcyAmJiAobiArPSByLnBhcmFtcy5zbGlkZXNQZXJHcm91cCk7CiAgfSBlbHNlIHsKICAgIGNvbnN0IGMgPSByLnNuYXBHcmlkW2wgLSAxXSwKICAgICAgZCA9IHIuc25hcEdyaWRbbF07CiAgICBvIC0gYyA8PSAoZCAtIGMpICogcyAmJiAobiAtPSByLnBhcmFtcy5zbGlkZXNQZXJHcm91cCk7CiAgfQogIHJldHVybiAoCiAgICAobiA9IE1hdGgubWF4KG4sIDApKSwKICAgIChuID0gTWF0aC5taW4obiwgci5zbGlkZXNHcmlkLmxlbmd0aCAtIDEpKSwKICAgIHIuc2xpZGVUbyhuLCB0LCBlLCBpKQogICk7Cn0KZnVuY3Rpb24gZ3QoKSB7CiAgY29uc3QgdCA9IHRoaXM7CiAgaWYgKHQuZGVzdHJveWVkKSByZXR1cm47CiAgY29uc3QgeyBwYXJhbXM6IGUsIHNsaWRlc0VsOiBpIH0gPSB0LAogICAgcyA9IGUuc2xpZGVzUGVyVmlldyA9PT0gImF1dG8iID8gdC5zbGlkZXNQZXJWaWV3RHluYW1pYygpIDogZS5zbGlkZXNQZXJWaWV3OwogIGxldCByID0gdC5jbGlja2VkSW5kZXgsCiAgICBuOwogIGNvbnN0IGEgPSB0LmlzRWxlbWVudCA/ICJzd2lwZXItc2xpZGUiIDogYC4ke2Uuc2xpZGVDbGFzc31gOwogIGlmIChlLmxvb3ApIHsKICAgIGlmICh0LmFuaW1hdGluZykgcmV0dXJuOwogICAgKG4gPSBwYXJzZUludCh0LmNsaWNrZWRTbGlkZS5nZXRBdHRyaWJ1dGUoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksIDEwKSksCiAgICAgIGUuY2VudGVyZWRTbGlkZXMKICAgICAgICA/IHIgPCB0Lmxvb3BlZFNsaWRlcyAtIHMgLyAyIHx8CiAgICAgICAgICByID4gdC5zbGlkZXMubGVuZ3RoIC0gdC5sb29wZWRTbGlkZXMgKyBzIC8gMgogICAgICAgICAgPyAodC5sb29wRml4KCksCiAgICAgICAgICAgIChyID0gdC5nZXRTbGlkZUluZGV4KAogICAgICAgICAgICAgIEQoaSwgYCR7YX1bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7bn0iXWApWzBdCiAgICAgICAgICAgICkpLAogICAgICAgICAgICBaKCgpID0+IHsKICAgICAgICAgICAgICB0LnNsaWRlVG8ocik7CiAgICAgICAgICAgIH0pKQogICAgICAgICAgOiB0LnNsaWRlVG8ocikKICAgICAgICA6IHIgPiB0LnNsaWRlcy5sZW5ndGggLSBzCiAgICAgICAgPyAodC5sb29wRml4KCksCiAgICAgICAgICAociA9IHQuZ2V0U2xpZGVJbmRleCgKICAgICAgICAgICAgRChpLCBgJHthfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtufSJdYClbMF0KICAgICAgICAgICkpLAogICAgICAgICAgWigoKSA9PiB7CiAgICAgICAgICAgIHQuc2xpZGVUbyhyKTsKICAgICAgICAgIH0pKQogICAgICAgIDogdC5zbGlkZVRvKHIpOwogIH0gZWxzZSB0LnNsaWRlVG8ocik7Cn0KdmFyIHZ0ID0gewogIHNsaWRlVG86IGN0LAogIHNsaWRlVG9Mb29wOiBmdCwKICBzbGlkZU5leHQ6IHV0LAogIHNsaWRlUHJldjogcHQsCiAgc2xpZGVSZXNldDogaHQsCiAgc2xpZGVUb0Nsb3Nlc3Q6IG10LAogIHNsaWRlVG9DbGlja2VkU2xpZGU6IGd0LAp9OwpmdW5jdGlvbiB3dCh0KSB7CiAgY29uc3QgZSA9IHRoaXMsCiAgICB7IHBhcmFtczogaSwgc2xpZGVzRWw6IHMgfSA9IGU7CiAgaWYgKCFpLmxvb3AgfHwgKGUudmlydHVhbCAmJiBlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpKSByZXR1cm47CiAgY29uc3QgciA9ICgpID0+IHsKICAgICAgRChzLCBgLiR7aS5zbGlkZUNsYXNzfSwgc3dpcGVyLXNsaWRlYCkuZm9yRWFjaCgoZiwgcCkgPT4gewogICAgICAgIGYuc2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIsIHApOwogICAgICB9KTsKICAgIH0sCiAgICBuID0gZS5ncmlkICYmIGkuZ3JpZCAmJiBpLmdyaWQucm93cyA+IDEsCiAgICBhID0gaS5zbGlkZXNQZXJHcm91cCAqIChuID8gaS5ncmlkLnJvd3MgOiAxKSwKICAgIGwgPSBlLnNsaWRlcy5sZW5ndGggJSBhICE9PSAwLAogICAgbyA9IG4gJiYgZS5zbGlkZXMubGVuZ3RoICUgaS5ncmlkLnJvd3MgIT09IDAsCiAgICBjID0gKGQpID0+IHsKICAgICAgZm9yIChsZXQgZiA9IDA7IGYgPCBkOyBmICs9IDEpIHsKICAgICAgICBjb25zdCBwID0gZS5pc0VsZW1lbnQKICAgICAgICAgID8gZWUoInN3aXBlci1zbGlkZSIsIFtpLnNsaWRlQmxhbmtDbGFzc10pCiAgICAgICAgICA6IGVlKCJkaXYiLCBbaS5zbGlkZUNsYXNzLCBpLnNsaWRlQmxhbmtDbGFzc10pOwogICAgICAgIGUuc2xpZGVzRWwuYXBwZW5kKHApOwogICAgICB9CiAgICB9OwogIGlmIChsKSB7CiAgICBpZiAoaS5sb29wQWRkQmxhbmtTbGlkZXMpIHsKICAgICAgY29uc3QgZCA9IGEgLSAoZS5zbGlkZXMubGVuZ3RoICUgYSk7CiAgICAgIGMoZCksIGUucmVjYWxjU2xpZGVzKCksIGUudXBkYXRlU2xpZGVzKCk7CiAgICB9IGVsc2UKICAgICAgaigKICAgICAgICAiU3dpcGVyIExvb3AgV2FybmluZzogVGhlIG51bWJlciBvZiBzbGlkZXMgaXMgbm90IGV2ZW4gdG8gc2xpZGVzUGVyR3JvdXAsIGxvb3AgbW9kZSBtYXkgbm90IGZ1bmN0aW9uIHByb3Blcmx5LiBZb3UgbmVlZCB0byBhZGQgbW9yZSBzbGlkZXMgKG9yIG1ha2UgZHVwbGljYXRlcywgb3IgZW1wdHkgc2xpZGVzKSIKICAgICAgKTsKICAgIHIoKTsKICB9IGVsc2UgaWYgKG8pIHsKICAgIGlmIChpLmxvb3BBZGRCbGFua1NsaWRlcykgewogICAgICBjb25zdCBkID0gaS5ncmlkLnJvd3MgLSAoZS5zbGlkZXMubGVuZ3RoICUgaS5ncmlkLnJvd3MpOwogICAgICBjKGQpLCBlLnJlY2FsY1NsaWRlcygpLCBlLnVwZGF0ZVNsaWRlcygpOwogICAgfSBlbHNlCiAgICAgIGooCiAgICAgICAgIlN3aXBlciBMb29wIFdhcm5pbmc6IFRoZSBudW1iZXIgb2Ygc2xpZGVzIGlzIG5vdCBldmVuIHRvIGdyaWQucm93cywgbG9vcCBtb2RlIG1heSBub3QgZnVuY3Rpb24gcHJvcGVybHkuIFlvdSBuZWVkIHRvIGFkZCBtb3JlIHNsaWRlcyAob3IgbWFrZSBkdXBsaWNhdGVzLCBvciBlbXB0eSBzbGlkZXMpIgogICAgICApOwogICAgcigpOwogIH0gZWxzZSByKCk7CiAgZS5sb29wRml4KHsKICAgIHNsaWRlUmVhbEluZGV4OiB0LAogICAgZGlyZWN0aW9uOiBpLmNlbnRlcmVkU2xpZGVzID8gdm9pZCAwIDogIm5leHQiLAogIH0pOwp9CmZ1bmN0aW9uIFN0KHQpIHsKICBsZXQgewogICAgc2xpZGVSZWFsSW5kZXg6IGUsCiAgICBzbGlkZVRvOiBpID0gITAsCiAgICBkaXJlY3Rpb246IHMsCiAgICBzZXRUcmFuc2xhdGU6IHIsCiAgICBhY3RpdmVTbGlkZUluZGV4OiBuLAogICAgYnlDb250cm9sbGVyOiBhLAogICAgYnlNb3VzZXdoZWVsOiBsLAogIH0gPSB0ID09PSB2b2lkIDAgPyB7fSA6IHQ7CiAgY29uc3QgbyA9IHRoaXM7CiAgaWYgKCFvLnBhcmFtcy5sb29wKSByZXR1cm47CiAgby5lbWl0KCJiZWZvcmVMb29wRml4Iik7CiAgY29uc3QgewogICAgICBzbGlkZXM6IGMsCiAgICAgIGFsbG93U2xpZGVQcmV2OiBkLAogICAgICBhbGxvd1NsaWRlTmV4dDogZiwKICAgICAgc2xpZGVzRWw6IHAsCiAgICAgIHBhcmFtczogdSwKICAgIH0gPSBvLAogICAgeyBjZW50ZXJlZFNsaWRlczogaCB9ID0gdTsKICBpZiAoCiAgICAoKG8uYWxsb3dTbGlkZVByZXYgPSAhMCksCiAgICAoby5hbGxvd1NsaWRlTmV4dCA9ICEwKSwKICAgIG8udmlydHVhbCAmJiB1LnZpcnR1YWwuZW5hYmxlZCkKICApIHsKICAgIGkgJiYKICAgICAgKCF1LmNlbnRlcmVkU2xpZGVzICYmIG8uc25hcEluZGV4ID09PSAwCiAgICAgICAgPyBvLnNsaWRlVG8oby52aXJ0dWFsLnNsaWRlcy5sZW5ndGgsIDAsICExLCAhMCkKICAgICAgICA6IHUuY2VudGVyZWRTbGlkZXMgJiYgby5zbmFwSW5kZXggPCB1LnNsaWRlc1BlclZpZXcKICAgICAgICA/IG8uc2xpZGVUbyhvLnZpcnR1YWwuc2xpZGVzLmxlbmd0aCArIG8uc25hcEluZGV4LCAwLCAhMSwgITApCiAgICAgICAgOiBvLnNuYXBJbmRleCA9PT0gby5zbmFwR3JpZC5sZW5ndGggLSAxICYmCiAgICAgICAgICBvLnNsaWRlVG8oby52aXJ0dWFsLnNsaWRlc0JlZm9yZSwgMCwgITEsICEwKSksCiAgICAgIChvLmFsbG93U2xpZGVQcmV2ID0gZCksCiAgICAgIChvLmFsbG93U2xpZGVOZXh0ID0gZiksCiAgICAgIG8uZW1pdCgibG9vcEZpeCIpOwogICAgcmV0dXJuOwogIH0KICBsZXQgbSA9IHUuc2xpZGVzUGVyVmlldzsKICBtID09PSAiYXV0byIKICAgID8gKG0gPSBvLnNsaWRlc1BlclZpZXdEeW5hbWljKCkpCiAgICA6ICgobSA9IE1hdGguY2VpbChwYXJzZUZsb2F0KHUuc2xpZGVzUGVyVmlldywgMTApKSksCiAgICAgIGggJiYgbSAlIDIgPT09IDAgJiYgKG0gPSBtICsgMSkpOwogIGNvbnN0IFQgPSB1LnNsaWRlc1Blckdyb3VwQXV0byA/IG0gOiB1LnNsaWRlc1Blckdyb3VwOwogIGxldCBnID0gVDsKICBnICUgVCAhPT0gMCAmJiAoZyArPSBUIC0gKGcgJSBUKSksCiAgICAoZyArPSB1Lmxvb3BBZGRpdGlvbmFsU2xpZGVzKSwKICAgIChvLmxvb3BlZFNsaWRlcyA9IGcpOwogIGNvbnN0IGIgPSBvLmdyaWQgJiYgdS5ncmlkICYmIHUuZ3JpZC5yb3dzID4gMTsKICBjLmxlbmd0aCA8IG0gKyBnCiAgICA/IGooCiAgICAgICAgIlN3aXBlciBMb29wIFdhcm5pbmc6IFRoZSBudW1iZXIgb2Ygc2xpZGVzIGlzIG5vdCBlbm91Z2ggZm9yIGxvb3AgbW9kZSwgaXQgd2lsbCBiZSBkaXNhYmxlZCBhbmQgbm90IGZ1bmN0aW9uIHByb3Blcmx5LiBZb3UgbmVlZCB0byBhZGQgbW9yZSBzbGlkZXMgKG9yIG1ha2UgZHVwbGljYXRlcykgb3IgbG93ZXIgdGhlIHZhbHVlcyBvZiBzbGlkZXNQZXJWaWV3IGFuZCBzbGlkZXNQZXJHcm91cCBwYXJhbWV0ZXJzIgogICAgICApCiAgICA6IGIgJiYKICAgICAgdS5ncmlkLmZpbGwgPT09ICJyb3ciICYmCiAgICAgIGooCiAgICAgICAgIlN3aXBlciBMb29wIFdhcm5pbmc6IExvb3AgbW9kZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGdyaWQuZmlsbCA9IGByb3dgIgogICAgICApOwogIGNvbnN0IHcgPSBbXSwKICAgIHkgPSBbXTsKICBsZXQgUyA9IG8uYWN0aXZlSW5kZXg7CiAgdHlwZW9mIG4gPiAidSIKICAgID8gKG4gPSBvLmdldFNsaWRlSW5kZXgoCiAgICAgICAgYy5maWx0ZXIoKHgpID0+IHguY2xhc3NMaXN0LmNvbnRhaW5zKHUuc2xpZGVBY3RpdmVDbGFzcykpWzBdCiAgICAgICkpCiAgICA6IChTID0gbik7CiAgY29uc3QgTSA9IHMgPT09ICJuZXh0IiB8fCAhcywKICAgIE8gPSBzID09PSAicHJldiIgfHwgIXM7CiAgbGV0IEkgPSAwLAogICAgRSA9IDA7CiAgY29uc3QgdiA9IGIgPyBNYXRoLmNlaWwoYy5sZW5ndGggLyB1LmdyaWQucm93cykgOiBjLmxlbmd0aCwKICAgIEMgPSAoYiA/IGNbbl0uY29sdW1uIDogbikgKyAoaCAmJiB0eXBlb2YgciA+ICJ1IiA/IC1tIC8gMiArIDAuNSA6IDApOwogIGlmIChDIDwgZykgewogICAgSSA9IE1hdGgubWF4KGcgLSBDLCBUKTsKICAgIGZvciAobGV0IHggPSAwOyB4IDwgZyAtIEM7IHggKz0gMSkgewogICAgICBjb25zdCBMID0geCAtIE1hdGguZmxvb3IoeCAvIHYpICogdjsKICAgICAgaWYgKGIpIHsKICAgICAgICBjb25zdCB6ID0gdiAtIEwgLSAxOwogICAgICAgIGZvciAobGV0IFYgPSBjLmxlbmd0aCAtIDE7IFYgPj0gMDsgViAtPSAxKQogICAgICAgICAgY1tWXS5jb2x1bW4gPT09IHogJiYgdy5wdXNoKFYpOwogICAgICB9IGVsc2Ugdy5wdXNoKHYgLSBMIC0gMSk7CiAgICB9CiAgfSBlbHNlIGlmIChDICsgbSA+IHYgLSBnKSB7CiAgICBFID0gTWF0aC5tYXgoQyAtICh2IC0gZyAqIDIpLCBUKTsKICAgIGZvciAobGV0IHggPSAwOyB4IDwgRTsgeCArPSAxKSB7CiAgICAgIGNvbnN0IEwgPSB4IC0gTWF0aC5mbG9vcih4IC8gdikgKiB2OwogICAgICBiCiAgICAgICAgPyBjLmZvckVhY2goKHosIFYpID0+IHsKICAgICAgICAgICAgei5jb2x1bW4gPT09IEwgJiYgeS5wdXNoKFYpOwogICAgICAgICAgfSkKICAgICAgICA6IHkucHVzaChMKTsKICAgIH0KICB9CiAgaWYgKAogICAgKChvLl9fcHJldmVudE9ic2VydmVyX18gPSAhMCksCiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICBvLl9fcHJldmVudE9ic2VydmVyX18gPSAhMTsKICAgIH0pLAogICAgTyAmJgogICAgICB3LmZvckVhY2goKHgpID0+IHsKICAgICAgICAoY1t4XS5zd2lwZXJMb29wTW92ZURPTSA9ICEwKSwKICAgICAgICAgIHAucHJlcGVuZChjW3hdKSwKICAgICAgICAgIChjW3hdLnN3aXBlckxvb3BNb3ZlRE9NID0gITEpOwogICAgICB9KSwKICAgIE0gJiYKICAgICAgeS5mb3JFYWNoKCh4KSA9PiB7CiAgICAgICAgKGNbeF0uc3dpcGVyTG9vcE1vdmVET00gPSAhMCksCiAgICAgICAgICBwLmFwcGVuZChjW3hdKSwKICAgICAgICAgIChjW3hdLnN3aXBlckxvb3BNb3ZlRE9NID0gITEpOwogICAgICB9KSwKICAgIG8ucmVjYWxjU2xpZGVzKCksCiAgICB1LnNsaWRlc1BlclZpZXcgPT09ICJhdXRvIgogICAgICA/IG8udXBkYXRlU2xpZGVzKCkKICAgICAgOiBiICYmCiAgICAgICAgKCh3Lmxlbmd0aCA+IDAgJiYgTykgfHwgKHkubGVuZ3RoID4gMCAmJiBNKSkgJiYKICAgICAgICBvLnNsaWRlcy5mb3JFYWNoKCh4LCBMKSA9PiB7CiAgICAgICAgICBvLmdyaWQudXBkYXRlU2xpZGUoTCwgeCwgby5zbGlkZXMpOwogICAgICAgIH0pLAogICAgdS53YXRjaFNsaWRlc1Byb2dyZXNzICYmIG8udXBkYXRlU2xpZGVzT2Zmc2V0KCksCiAgICBpKQogICkgewogICAgaWYgKHcubGVuZ3RoID4gMCAmJiBPKSB7CiAgICAgIGlmICh0eXBlb2YgZSA+ICJ1IikgewogICAgICAgIGNvbnN0IHggPSBvLnNsaWRlc0dyaWRbU10sCiAgICAgICAgICB6ID0gby5zbGlkZXNHcmlkW1MgKyBJXSAtIHg7CiAgICAgICAgbAogICAgICAgICAgPyBvLnNldFRyYW5zbGF0ZShvLnRyYW5zbGF0ZSAtIHopCiAgICAgICAgICA6IChvLnNsaWRlVG8oUyArIE1hdGguY2VpbChJKSwgMCwgITEsICEwKSwKICAgICAgICAgICAgciAmJgogICAgICAgICAgICAgICgoby50b3VjaEV2ZW50c0RhdGEuc3RhcnRUcmFuc2xhdGUgPQogICAgICAgICAgICAgICAgby50b3VjaEV2ZW50c0RhdGEuc3RhcnRUcmFuc2xhdGUgLSB6KSwKICAgICAgICAgICAgICAoby50b3VjaEV2ZW50c0RhdGEuY3VycmVudFRyYW5zbGF0ZSA9CiAgICAgICAgICAgICAgICBvLnRvdWNoRXZlbnRzRGF0YS5jdXJyZW50VHJhbnNsYXRlIC0geikpKTsKICAgICAgfSBlbHNlIGlmIChyKSB7CiAgICAgICAgY29uc3QgeCA9IGIgPyB3Lmxlbmd0aCAvIHUuZ3JpZC5yb3dzIDogdy5sZW5ndGg7CiAgICAgICAgby5zbGlkZVRvKG8uYWN0aXZlSW5kZXggKyB4LCAwLCAhMSwgITApLAogICAgICAgICAgKG8udG91Y2hFdmVudHNEYXRhLmN1cnJlbnRUcmFuc2xhdGUgPSBvLnRyYW5zbGF0ZSk7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoeS5sZW5ndGggPiAwICYmIE0pCiAgICAgIGlmICh0eXBlb2YgZSA+ICJ1IikgewogICAgICAgIGNvbnN0IHggPSBvLnNsaWRlc0dyaWRbU10sCiAgICAgICAgICB6ID0gby5zbGlkZXNHcmlkW1MgLSBFXSAtIHg7CiAgICAgICAgbAogICAgICAgICAgPyBvLnNldFRyYW5zbGF0ZShvLnRyYW5zbGF0ZSAtIHopCiAgICAgICAgICA6IChvLnNsaWRlVG8oUyAtIEUsIDAsICExLCAhMCksCiAgICAgICAgICAgIHIgJiYKICAgICAgICAgICAgICAoKG8udG91Y2hFdmVudHNEYXRhLnN0YXJ0VHJhbnNsYXRlID0KICAgICAgICAgICAgICAgIG8udG91Y2hFdmVudHNEYXRhLnN0YXJ0VHJhbnNsYXRlIC0geiksCiAgICAgICAgICAgICAgKG8udG91Y2hFdmVudHNEYXRhLmN1cnJlbnRUcmFuc2xhdGUgPQogICAgICAgICAgICAgICAgby50b3VjaEV2ZW50c0RhdGEuY3VycmVudFRyYW5zbGF0ZSAtIHopKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgeCA9IGIgPyB5Lmxlbmd0aCAvIHUuZ3JpZC5yb3dzIDogeS5sZW5ndGg7CiAgICAgICAgby5zbGlkZVRvKG8uYWN0aXZlSW5kZXggLSB4LCAwLCAhMSwgITApOwogICAgICB9CiAgfQogIGlmICgKICAgICgoby5hbGxvd1NsaWRlUHJldiA9IGQpLAogICAgKG8uYWxsb3dTbGlkZU5leHQgPSBmKSwKICAgIG8uY29udHJvbGxlciAmJiBvLmNvbnRyb2xsZXIuY29udHJvbCAmJiAhYSkKICApIHsKICAgIGNvbnN0IHggPSB7CiAgICAgIHNsaWRlUmVhbEluZGV4OiBlLAogICAgICBkaXJlY3Rpb246IHMsCiAgICAgIHNldFRyYW5zbGF0ZTogciwKICAgICAgYWN0aXZlU2xpZGVJbmRleDogbiwKICAgICAgYnlDb250cm9sbGVyOiAhMCwKICAgIH07CiAgICBBcnJheS5pc0FycmF5KG8uY29udHJvbGxlci5jb250cm9sKQogICAgICA/IG8uY29udHJvbGxlci5jb250cm9sLmZvckVhY2goKEwpID0+IHsKICAgICAgICAgICFMLmRlc3Ryb3llZCAmJgogICAgICAgICAgICBMLnBhcmFtcy5sb29wICYmCiAgICAgICAgICAgIEwubG9vcEZpeCh7CiAgICAgICAgICAgICAgLi4ueCwKICAgICAgICAgICAgICBzbGlkZVRvOiBMLnBhcmFtcy5zbGlkZXNQZXJWaWV3ID09PSB1LnNsaWRlc1BlclZpZXcgPyBpIDogITEsCiAgICAgICAgICAgIH0pOwogICAgICAgIH0pCiAgICAgIDogby5jb250cm9sbGVyLmNvbnRyb2wgaW5zdGFuY2VvZiBvLmNvbnN0cnVjdG9yICYmCiAgICAgICAgby5jb250cm9sbGVyLmNvbnRyb2wucGFyYW1zLmxvb3AgJiYKICAgICAgICBvLmNvbnRyb2xsZXIuY29udHJvbC5sb29wRml4KHsKICAgICAgICAgIC4uLngsCiAgICAgICAgICBzbGlkZVRvOgogICAgICAgICAgICBvLmNvbnRyb2xsZXIuY29udHJvbC5wYXJhbXMuc2xpZGVzUGVyVmlldyA9PT0gdS5zbGlkZXNQZXJWaWV3CiAgICAgICAgICAgICAgPyBpCiAgICAgICAgICAgICAgOiAhMSwKICAgICAgICB9KTsKICB9CiAgby5lbWl0KCJsb29wRml4Iik7Cn0KZnVuY3Rpb24gVHQoKSB7CiAgY29uc3QgdCA9IHRoaXMsCiAgICB7IHBhcmFtczogZSwgc2xpZGVzRWw6IGkgfSA9IHQ7CiAgaWYgKCFlLmxvb3AgfHwgKHQudmlydHVhbCAmJiB0LnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpKSByZXR1cm47CiAgdC5yZWNhbGNTbGlkZXMoKTsKICBjb25zdCBzID0gW107CiAgdC5zbGlkZXMuZm9yRWFjaCgocikgPT4gewogICAgY29uc3QgbiA9CiAgICAgIHR5cGVvZiByLnN3aXBlclNsaWRlSW5kZXggPiAidSIKICAgICAgICA/IHIuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpICogMQogICAgICAgIDogci5zd2lwZXJTbGlkZUluZGV4OwogICAgc1tuXSA9IHI7CiAgfSksCiAgICB0LnNsaWRlcy5mb3JFYWNoKChyKSA9PiB7CiAgICAgIHIucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpOwogICAgfSksCiAgICBzLmZvckVhY2goKHIpID0+IHsKICAgICAgaS5hcHBlbmQocik7CiAgICB9KSwKICAgIHQucmVjYWxjU2xpZGVzKCksCiAgICB0LnNsaWRlVG8odC5yZWFsSW5kZXgsIDApOwp9CnZhciBidCA9IHsgbG9vcENyZWF0ZTogd3QsIGxvb3BGaXg6IFN0LCBsb29wRGVzdHJveTogVHQgfTsKZnVuY3Rpb24geHQodCkgewogIGNvbnN0IGUgPSB0aGlzOwogIGlmICgKICAgICFlLnBhcmFtcy5zaW11bGF0ZVRvdWNoIHx8CiAgICAoZS5wYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiBlLmlzTG9ja2VkKSB8fAogICAgZS5wYXJhbXMuY3NzTW9kZQogICkKICAgIHJldHVybjsKICBjb25zdCBpID0gZS5wYXJhbXMudG91Y2hFdmVudHNUYXJnZXQgPT09ICJjb250YWluZXIiID8gZS5lbCA6IGUud3JhcHBlckVsOwogIGUuaXNFbGVtZW50ICYmIChlLl9fcHJldmVudE9ic2VydmVyX18gPSAhMCksCiAgICAoaS5zdHlsZS5jdXJzb3IgPSAibW92ZSIpLAogICAgKGkuc3R5bGUuY3Vyc29yID0gdCA/ICJncmFiYmluZyIgOiAiZ3JhYiIpLAogICAgZS5pc0VsZW1lbnQgJiYKICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICBlLl9fcHJldmVudE9ic2VydmVyX18gPSAhMTsKICAgICAgfSk7Cn0KZnVuY3Rpb24geXQoKSB7CiAgY29uc3QgdCA9IHRoaXM7CiAgKHQucGFyYW1zLndhdGNoT3ZlcmZsb3cgJiYgdC5pc0xvY2tlZCkgfHwKICAgIHQucGFyYW1zLmNzc01vZGUgfHwKICAgICh0LmlzRWxlbWVudCAmJiAodC5fX3ByZXZlbnRPYnNlcnZlcl9fID0gITApLAogICAgKHRbCiAgICAgIHQucGFyYW1zLnRvdWNoRXZlbnRzVGFyZ2V0ID09PSAiY29udGFpbmVyIiA/ICJlbCIgOiAid3JhcHBlckVsIgogICAgXS5zdHlsZS5jdXJzb3IgPSAiIiksCiAgICB0LmlzRWxlbWVudCAmJgogICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAgIHQuX19wcmV2ZW50T2JzZXJ2ZXJfXyA9ICExOwogICAgICB9KSk7Cn0KdmFyIEV0ID0geyBzZXRHcmFiQ3Vyc29yOiB4dCwgdW5zZXRHcmFiQ3Vyc29yOiB5dCB9OwpmdW5jdGlvbiBQdCh0LCBlKSB7CiAgZSA9PT0gdm9pZCAwICYmIChlID0gdGhpcyk7CiAgZnVuY3Rpb24gaShzKSB7CiAgICBpZiAoIXMgfHwgcyA9PT0gQigpIHx8IHMgPT09IEEoKSkgcmV0dXJuIG51bGw7CiAgICBzLmFzc2lnbmVkU2xvdCAmJiAocyA9IHMuYXNzaWduZWRTbG90KTsKICAgIGNvbnN0IHIgPSBzLmNsb3Nlc3QodCk7CiAgICByZXR1cm4gIXIgJiYgIXMuZ2V0Um9vdE5vZGUgPyBudWxsIDogciB8fCBpKHMuZ2V0Um9vdE5vZGUoKS5ob3N0KTsKICB9CiAgcmV0dXJuIGkoZSk7Cn0KZnVuY3Rpb24gdWUodCwgZSwgaSkgewogIGNvbnN0IHMgPSBBKCksCiAgICB7IHBhcmFtczogciB9ID0gdCwKICAgIG4gPSByLmVkZ2VTd2lwZURldGVjdGlvbiwKICAgIGEgPSByLmVkZ2VTd2lwZVRocmVzaG9sZDsKICByZXR1cm4gbiAmJiAoaSA8PSBhIHx8IGkgPj0gcy5pbm5lcldpZHRoIC0gYSkKICAgID8gbiA9PT0gInByZXZlbnQiCiAgICAgID8gKGUucHJldmVudERlZmF1bHQoKSwgITApCiAgICAgIDogITEKICAgIDogITA7Cn0KZnVuY3Rpb24gTXQodCkgewogIGNvbnN0IGUgPSB0aGlzLAogICAgaSA9IEIoKTsKICBsZXQgcyA9IHQ7CiAgcy5vcmlnaW5hbEV2ZW50ICYmIChzID0gcy5vcmlnaW5hbEV2ZW50KTsKICBjb25zdCByID0gZS50b3VjaEV2ZW50c0RhdGE7CiAgaWYgKHMudHlwZSA9PT0gInBvaW50ZXJkb3duIikgewogICAgaWYgKHIucG9pbnRlcklkICE9PSBudWxsICYmIHIucG9pbnRlcklkICE9PSBzLnBvaW50ZXJJZCkgcmV0dXJuOwogICAgci5wb2ludGVySWQgPSBzLnBvaW50ZXJJZDsKICB9IGVsc2UKICAgIHMudHlwZSA9PT0gInRvdWNoc3RhcnQiICYmCiAgICAgIHMudGFyZ2V0VG91Y2hlcy5sZW5ndGggPT09IDEgJiYKICAgICAgKHIudG91Y2hJZCA9IHMudGFyZ2V0VG91Y2hlc1swXS5pZGVudGlmaWVyKTsKICBpZiAocy50eXBlID09PSAidG91Y2hzdGFydCIpIHsKICAgIHVlKGUsIHMsIHMudGFyZ2V0VG91Y2hlc1swXS5wYWdlWCk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IHsgcGFyYW1zOiBuLCB0b3VjaGVzOiBhLCBlbmFibGVkOiBsIH0gPSBlOwogIGlmICgKICAgICFsIHx8CiAgICAoIW4uc2ltdWxhdGVUb3VjaCAmJiBzLnBvaW50ZXJUeXBlID09PSAibW91c2UiKSB8fAogICAgKGUuYW5pbWF0aW5nICYmIG4ucHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uKQogICkKICAgIHJldHVybjsKICAhZS5hbmltYXRpbmcgJiYgbi5jc3NNb2RlICYmIG4ubG9vcCAmJiBlLmxvb3BGaXgoKTsKICBsZXQgbyA9IHMudGFyZ2V0OwogIGlmICgKICAgIChuLnRvdWNoRXZlbnRzVGFyZ2V0ID09PSAid3JhcHBlciIgJiYgIUFlKG8sIGUud3JhcHBlckVsKSkgfHwKICAgICgid2hpY2giIGluIHMgJiYgcy53aGljaCA9PT0gMykgfHwKICAgICgiYnV0dG9uIiBpbiBzICYmIHMuYnV0dG9uID4gMCkgfHwKICAgIChyLmlzVG91Y2hlZCAmJiByLmlzTW92ZWQpCiAgKQogICAgcmV0dXJuOwogIGNvbnN0IGMgPSAhIW4ubm9Td2lwaW5nQ2xhc3MgJiYgbi5ub1N3aXBpbmdDbGFzcyAhPT0gIiIsCiAgICBkID0gcy5jb21wb3NlZFBhdGggPyBzLmNvbXBvc2VkUGF0aCgpIDogcy5wYXRoOwogIGMgJiYgcy50YXJnZXQgJiYgcy50YXJnZXQuc2hhZG93Um9vdCAmJiBkICYmIChvID0gZFswXSk7CiAgY29uc3QgZiA9IG4ubm9Td2lwaW5nU2VsZWN0b3IgPyBuLm5vU3dpcGluZ1NlbGVjdG9yIDogYC4ke24ubm9Td2lwaW5nQ2xhc3N9YCwKICAgIHAgPSAhIShzLnRhcmdldCAmJiBzLnRhcmdldC5zaGFkb3dSb290KTsKICBpZiAobi5ub1N3aXBpbmcgJiYgKHAgPyBQdChmLCBvKSA6IG8uY2xvc2VzdChmKSkpIHsKICAgIGUuYWxsb3dDbGljayA9ICEwOwogICAgcmV0dXJuOwogIH0KICBpZiAobi5zd2lwZUhhbmRsZXIgJiYgIW8uY2xvc2VzdChuLnN3aXBlSGFuZGxlcikpIHJldHVybjsKICAoYS5jdXJyZW50WCA9IHMucGFnZVgpLCAoYS5jdXJyZW50WSA9IHMucGFnZVkpOwogIGNvbnN0IHUgPSBhLmN1cnJlbnRYLAogICAgaCA9IGEuY3VycmVudFk7CiAgaWYgKCF1ZShlLCBzLCB1KSkgcmV0dXJuOwogIE9iamVjdC5hc3NpZ24ociwgewogICAgaXNUb3VjaGVkOiAhMCwKICAgIGlzTW92ZWQ6ICExLAogICAgYWxsb3dUb3VjaENhbGxiYWNrczogITAsCiAgICBpc1Njcm9sbGluZzogdm9pZCAwLAogICAgc3RhcnRNb3Zpbmc6IHZvaWQgMCwKICB9KSwKICAgIChhLnN0YXJ0WCA9IHUpLAogICAgKGEuc3RhcnRZID0gaCksCiAgICAoci50b3VjaFN0YXJ0VGltZSA9IEgoKSksCiAgICAoZS5hbGxvd0NsaWNrID0gITApLAogICAgZS51cGRhdGVTaXplKCksCiAgICAoZS5zd2lwZURpcmVjdGlvbiA9IHZvaWQgMCksCiAgICBuLnRocmVzaG9sZCA+IDAgJiYgKHIuYWxsb3dUaHJlc2hvbGRNb3ZlID0gITEpOwogIGxldCBtID0gITA7CiAgby5tYXRjaGVzKHIuZm9jdXNhYmxlRWxlbWVudHMpICYmCiAgICAoKG0gPSAhMSksIG8ubm9kZU5hbWUgPT09ICJTRUxFQ1QiICYmIChyLmlzVG91Y2hlZCA9ICExKSksCiAgICBpLmFjdGl2ZUVsZW1lbnQgJiYKICAgICAgaS5hY3RpdmVFbGVtZW50Lm1hdGNoZXMoci5mb2N1c2FibGVFbGVtZW50cykgJiYKICAgICAgaS5hY3RpdmVFbGVtZW50ICE9PSBvICYmCiAgICAgIChzLnBvaW50ZXJUeXBlID09PSAibW91c2UiIHx8CiAgICAgICAgKHMucG9pbnRlclR5cGUgIT09ICJtb3VzZSIgJiYgIW8ubWF0Y2hlcyhyLmZvY3VzYWJsZUVsZW1lbnRzKSkpICYmCiAgICAgIGkuYWN0aXZlRWxlbWVudC5ibHVyKCk7CiAgY29uc3QgVCA9IG0gJiYgZS5hbGxvd1RvdWNoTW92ZSAmJiBuLnRvdWNoU3RhcnRQcmV2ZW50RGVmYXVsdDsKICAobi50b3VjaFN0YXJ0Rm9yY2VQcmV2ZW50RGVmYXVsdCB8fCBUKSAmJgogICAgIW8uaXNDb250ZW50RWRpdGFibGUgJiYKICAgIHMucHJldmVudERlZmF1bHQoKSwKICAgIG4uZnJlZU1vZGUgJiYKICAgICAgbi5mcmVlTW9kZS5lbmFibGVkICYmCiAgICAgIGUuZnJlZU1vZGUgJiYKICAgICAgZS5hbmltYXRpbmcgJiYKICAgICAgIW4uY3NzTW9kZSAmJgogICAgICBlLmZyZWVNb2RlLm9uVG91Y2hTdGFydCgpLAogICAgZS5lbWl0KCJ0b3VjaFN0YXJ0Iiwgcyk7Cn0KZnVuY3Rpb24gQ3QodCkgewogIGNvbnN0IGUgPSBCKCksCiAgICBpID0gdGhpcywKICAgIHMgPSBpLnRvdWNoRXZlbnRzRGF0YSwKICAgIHsgcGFyYW1zOiByLCB0b3VjaGVzOiBuLCBydGxUcmFuc2xhdGU6IGEsIGVuYWJsZWQ6IGwgfSA9IGk7CiAgaWYgKCFsIHx8ICghci5zaW11bGF0ZVRvdWNoICYmIHQucG9pbnRlclR5cGUgPT09ICJtb3VzZSIpKSByZXR1cm47CiAgbGV0IG8gPSB0OwogIGlmICgKICAgIChvLm9yaWdpbmFsRXZlbnQgJiYgKG8gPSBvLm9yaWdpbmFsRXZlbnQpLAogICAgby50eXBlID09PSAicG9pbnRlcm1vdmUiICYmCiAgICAgIChzLnRvdWNoSWQgIT09IG51bGwgfHwgby5wb2ludGVySWQgIT09IHMucG9pbnRlcklkKSkKICApCiAgICByZXR1cm47CiAgbGV0IGM7CiAgaWYgKG8udHlwZSA9PT0gInRvdWNobW92ZSIpIHsKICAgIGlmICgKICAgICAgKChjID0gWy4uLm8uY2hhbmdlZFRvdWNoZXNdLmZpbHRlcigoTSkgPT4gTS5pZGVudGlmaWVyID09PSBzLnRvdWNoSWQpWzBdKSwKICAgICAgIWMgfHwgYy5pZGVudGlmaWVyICE9PSBzLnRvdWNoSWQpCiAgICApCiAgICAgIHJldHVybjsKICB9IGVsc2UgYyA9IG87CiAgaWYgKCFzLmlzVG91Y2hlZCkgewogICAgcy5zdGFydE1vdmluZyAmJiBzLmlzU2Nyb2xsaW5nICYmIGkuZW1pdCgidG91Y2hNb3ZlT3Bwb3NpdGUiLCBvKTsKICAgIHJldHVybjsKICB9CiAgY29uc3QgZCA9IGMucGFnZVgsCiAgICBmID0gYy5wYWdlWTsKICBpZiAoby5wcmV2ZW50ZWRCeU5lc3RlZFN3aXBlcikgewogICAgKG4uc3RhcnRYID0gZCksIChuLnN0YXJ0WSA9IGYpOwogICAgcmV0dXJuOwogIH0KICBpZiAoIWkuYWxsb3dUb3VjaE1vdmUpIHsKICAgIG8udGFyZ2V0Lm1hdGNoZXMocy5mb2N1c2FibGVFbGVtZW50cykgfHwgKGkuYWxsb3dDbGljayA9ICExKSwKICAgICAgcy5pc1RvdWNoZWQgJiYKICAgICAgICAoT2JqZWN0LmFzc2lnbihuLCB7IHN0YXJ0WDogZCwgc3RhcnRZOiBmLCBjdXJyZW50WDogZCwgY3VycmVudFk6IGYgfSksCiAgICAgICAgKHMudG91Y2hTdGFydFRpbWUgPSBIKCkpKTsKICAgIHJldHVybjsKICB9CiAgaWYgKHIudG91Y2hSZWxlYXNlT25FZGdlcyAmJiAhci5sb29wKSB7CiAgICBpZiAoaS5pc1ZlcnRpY2FsKCkpIHsKICAgICAgaWYgKAogICAgICAgIChmIDwgbi5zdGFydFkgJiYgaS50cmFuc2xhdGUgPD0gaS5tYXhUcmFuc2xhdGUoKSkgfHwKICAgICAgICAoZiA+IG4uc3RhcnRZICYmIGkudHJhbnNsYXRlID49IGkubWluVHJhbnNsYXRlKCkpCiAgICAgICkgewogICAgICAgIChzLmlzVG91Y2hlZCA9ICExKSwgKHMuaXNNb3ZlZCA9ICExKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoCiAgICAgIChkIDwgbi5zdGFydFggJiYgaS50cmFuc2xhdGUgPD0gaS5tYXhUcmFuc2xhdGUoKSkgfHwKICAgICAgKGQgPiBuLnN0YXJ0WCAmJiBpLnRyYW5zbGF0ZSA+PSBpLm1pblRyYW5zbGF0ZSgpKQogICAgKQogICAgICByZXR1cm47CiAgfQogIGlmICgKICAgIChlLmFjdGl2ZUVsZW1lbnQgJiYKICAgICAgZS5hY3RpdmVFbGVtZW50Lm1hdGNoZXMocy5mb2N1c2FibGVFbGVtZW50cykgJiYKICAgICAgZS5hY3RpdmVFbGVtZW50ICE9PSBvLnRhcmdldCAmJgogICAgICBvLnBvaW50ZXJUeXBlICE9PSAibW91c2UiICYmCiAgICAgIGUuYWN0aXZlRWxlbWVudC5ibHVyKCksCiAgICBlLmFjdGl2ZUVsZW1lbnQgJiYKICAgICAgby50YXJnZXQgPT09IGUuYWN0aXZlRWxlbWVudCAmJgogICAgICBvLnRhcmdldC5tYXRjaGVzKHMuZm9jdXNhYmxlRWxlbWVudHMpKQogICkgewogICAgKHMuaXNNb3ZlZCA9ICEwKSwgKGkuYWxsb3dDbGljayA9ICExKTsKICAgIHJldHVybjsKICB9CiAgcy5hbGxvd1RvdWNoQ2FsbGJhY2tzICYmIGkuZW1pdCgidG91Y2hNb3ZlIiwgbyksCiAgICAobi5wcmV2aW91c1ggPSBuLmN1cnJlbnRYKSwKICAgIChuLnByZXZpb3VzWSA9IG4uY3VycmVudFkpLAogICAgKG4uY3VycmVudFggPSBkKSwKICAgIChuLmN1cnJlbnRZID0gZik7CiAgY29uc3QgcCA9IG4uY3VycmVudFggLSBuLnN0YXJ0WCwKICAgIHUgPSBuLmN1cnJlbnRZIC0gbi5zdGFydFk7CiAgaWYgKGkucGFyYW1zLnRocmVzaG9sZCAmJiBNYXRoLnNxcnQocCAqKiAyICsgdSAqKiAyKSA8IGkucGFyYW1zLnRocmVzaG9sZCkKICAgIHJldHVybjsKICBpZiAodHlwZW9mIHMuaXNTY3JvbGxpbmcgPiAidSIpIHsKICAgIGxldCBNOwogICAgKGkuaXNIb3Jpem9udGFsKCkgJiYgbi5jdXJyZW50WSA9PT0gbi5zdGFydFkpIHx8CiAgICAoaS5pc1ZlcnRpY2FsKCkgJiYgbi5jdXJyZW50WCA9PT0gbi5zdGFydFgpCiAgICAgID8gKHMuaXNTY3JvbGxpbmcgPSAhMSkKICAgICAgOiBwICogcCArIHUgKiB1ID49IDI1ICYmCiAgICAgICAgKChNID0gKE1hdGguYXRhbjIoTWF0aC5hYnModSksIE1hdGguYWJzKHApKSAqIDE4MCkgLyBNYXRoLlBJKSwKICAgICAgICAocy5pc1Njcm9sbGluZyA9IGkuaXNIb3Jpem9udGFsKCkKICAgICAgICAgID8gTSA+IHIudG91Y2hBbmdsZQogICAgICAgICAgOiA5MCAtIE0gPiByLnRvdWNoQW5nbGUpKTsKICB9CiAgaWYgKAogICAgKHMuaXNTY3JvbGxpbmcgJiYgaS5lbWl0KCJ0b3VjaE1vdmVPcHBvc2l0ZSIsIG8pLAogICAgdHlwZW9mIHMuc3RhcnRNb3ZpbmcgPiAidSIgJiYKICAgICAgKG4uY3VycmVudFggIT09IG4uc3RhcnRYIHx8IG4uY3VycmVudFkgIT09IG4uc3RhcnRZKSAmJgogICAgICAocy5zdGFydE1vdmluZyA9ICEwKSwKICAgIHMuaXNTY3JvbGxpbmcgfHwKICAgICAgKG8udHlwZSA9PT0gInRvdWNobW92ZSIgJiYgcy5wcmV2ZW50VG91Y2hNb3ZlRnJvbVBvaW50ZXJNb3ZlKSkKICApIHsKICAgIHMuaXNUb3VjaGVkID0gITE7CiAgICByZXR1cm47CiAgfQogIGlmICghcy5zdGFydE1vdmluZykgcmV0dXJuOwogIChpLmFsbG93Q2xpY2sgPSAhMSksCiAgICAhci5jc3NNb2RlICYmIG8uY2FuY2VsYWJsZSAmJiBvLnByZXZlbnREZWZhdWx0KCksCiAgICByLnRvdWNoTW92ZVN0b3BQcm9wYWdhdGlvbiAmJiAhci5uZXN0ZWQgJiYgby5zdG9wUHJvcGFnYXRpb24oKTsKICBsZXQgaCA9IGkuaXNIb3Jpem9udGFsKCkgPyBwIDogdSwKICAgIG0gPSBpLmlzSG9yaXpvbnRhbCgpID8gbi5jdXJyZW50WCAtIG4ucHJldmlvdXNYIDogbi5jdXJyZW50WSAtIG4ucHJldmlvdXNZOwogIHIub25lV2F5TW92ZW1lbnQgJiYKICAgICgoaCA9IE1hdGguYWJzKGgpICogKGEgPyAxIDogLTEpKSwgKG0gPSBNYXRoLmFicyhtKSAqIChhID8gMSA6IC0xKSkpLAogICAgKG4uZGlmZiA9IGgpLAogICAgKGggKj0gci50b3VjaFJhdGlvKSwKICAgIGEgJiYgKChoID0gLWgpLCAobSA9IC1tKSk7CiAgY29uc3QgVCA9IGkudG91Y2hlc0RpcmVjdGlvbjsKICAoaS5zd2lwZURpcmVjdGlvbiA9IGggPiAwID8gInByZXYiIDogIm5leHQiKSwKICAgIChpLnRvdWNoZXNEaXJlY3Rpb24gPSBtID4gMCA/ICJwcmV2IiA6ICJuZXh0Iik7CiAgY29uc3QgZyA9IGkucGFyYW1zLmxvb3AgJiYgIXIuY3NzTW9kZSwKICAgIGIgPQogICAgICAoaS50b3VjaGVzRGlyZWN0aW9uID09PSAibmV4dCIgJiYgaS5hbGxvd1NsaWRlTmV4dCkgfHwKICAgICAgKGkudG91Y2hlc0RpcmVjdGlvbiA9PT0gInByZXYiICYmIGkuYWxsb3dTbGlkZVByZXYpOwogIGlmICghcy5pc01vdmVkKSB7CiAgICBpZiAoCiAgICAgIChnICYmIGIgJiYgaS5sb29wRml4KHsgZGlyZWN0aW9uOiBpLnN3aXBlRGlyZWN0aW9uIH0pLAogICAgICAocy5zdGFydFRyYW5zbGF0ZSA9IGkuZ2V0VHJhbnNsYXRlKCkpLAogICAgICBpLnNldFRyYW5zaXRpb24oMCksCiAgICAgIGkuYW5pbWF0aW5nKQogICAgKSB7CiAgICAgIGNvbnN0IE0gPSBuZXcgd2luZG93LkN1c3RvbUV2ZW50KCJ0cmFuc2l0aW9uZW5kIiwgewogICAgICAgIGJ1YmJsZXM6ICEwLAogICAgICAgIGNhbmNlbGFibGU6ICEwLAogICAgICAgIGRldGFpbDogeyBieVN3aXBlclRvdWNoTW92ZTogITAgfSwKICAgICAgfSk7CiAgICAgIGkud3JhcHBlckVsLmRpc3BhdGNoRXZlbnQoTSk7CiAgICB9CiAgICAocy5hbGxvd01vbWVudHVtQm91bmNlID0gITEpLAogICAgICByLmdyYWJDdXJzb3IgJiYKICAgICAgICAoaS5hbGxvd1NsaWRlTmV4dCA9PT0gITAgfHwgaS5hbGxvd1NsaWRlUHJldiA9PT0gITApICYmCiAgICAgICAgaS5zZXRHcmFiQ3Vyc29yKCEwKSwKICAgICAgaS5lbWl0KCJzbGlkZXJGaXJzdE1vdmUiLCBvKTsKICB9CiAgbGV0IHc7CiAgaWYgKAogICAgKG5ldyBEYXRlKCkuZ2V0VGltZSgpLAogICAgcy5pc01vdmVkICYmCiAgICAgIHMuYWxsb3dUaHJlc2hvbGRNb3ZlICYmCiAgICAgIFQgIT09IGkudG91Y2hlc0RpcmVjdGlvbiAmJgogICAgICBnICYmCiAgICAgIGIgJiYKICAgICAgTWF0aC5hYnMoaCkgPj0gMSkKICApIHsKICAgIE9iamVjdC5hc3NpZ24obiwgewogICAgICBzdGFydFg6IGQsCiAgICAgIHN0YXJ0WTogZiwKICAgICAgY3VycmVudFg6IGQsCiAgICAgIGN1cnJlbnRZOiBmLAogICAgICBzdGFydFRyYW5zbGF0ZTogcy5jdXJyZW50VHJhbnNsYXRlLAogICAgfSksCiAgICAgIChzLmxvb3BTd2FwUmVzZXQgPSAhMCksCiAgICAgIChzLnN0YXJ0VHJhbnNsYXRlID0gcy5jdXJyZW50VHJhbnNsYXRlKTsKICAgIHJldHVybjsKICB9CiAgaS5lbWl0KCJzbGlkZXJNb3ZlIiwgbyksCiAgICAocy5pc01vdmVkID0gITApLAogICAgKHMuY3VycmVudFRyYW5zbGF0ZSA9IGggKyBzLnN0YXJ0VHJhbnNsYXRlKTsKICBsZXQgeSA9ICEwLAogICAgUyA9IHIucmVzaXN0YW5jZVJhdGlvOwogIGlmICgKICAgIChyLnRvdWNoUmVsZWFzZU9uRWRnZXMgJiYgKFMgPSAwKSwKICAgIGggPiAwCiAgICAgID8gKGcgJiYKICAgICAgICAgIGIgJiYKICAgICAgICAgICF3ICYmCiAgICAgICAgICBzLmFsbG93VGhyZXNob2xkTW92ZSAmJgogICAgICAgICAgcy5jdXJyZW50VHJhbnNsYXRlID4KICAgICAgICAgICAgKHIuY2VudGVyZWRTbGlkZXMKICAgICAgICAgICAgICA/IGkubWluVHJhbnNsYXRlKCkgLQogICAgICAgICAgICAgICAgaS5zbGlkZXNTaXplc0dyaWRbaS5hY3RpdmVJbmRleCArIDFdIC0KICAgICAgICAgICAgICAgIChyLnNsaWRlc1BlclZpZXcgIT09ICJhdXRvIiAmJgogICAgICAgICAgICAgICAgaS5zbGlkZXMubGVuZ3RoIC0gci5zbGlkZXNQZXJWaWV3ID49IDIKICAgICAgICAgICAgICAgICAgPyBpLnNsaWRlc1NpemVzR3JpZFtpLmFjdGl2ZUluZGV4ICsgMV0gKyBpLnBhcmFtcy5zcGFjZUJldHdlZW4KICAgICAgICAgICAgICAgICAgOiAwKSAtCiAgICAgICAgICAgICAgICBpLnBhcmFtcy5zcGFjZUJldHdlZW4KICAgICAgICAgICAgICA6IGkubWluVHJhbnNsYXRlKCkpICYmCiAgICAgICAgICBpLmxvb3BGaXgoewogICAgICAgICAgICBkaXJlY3Rpb246ICJwcmV2IiwKICAgICAgICAgICAgc2V0VHJhbnNsYXRlOiAhMCwKICAgICAgICAgICAgYWN0aXZlU2xpZGVJbmRleDogMCwKICAgICAgICAgIH0pLAogICAgICAgIHMuY3VycmVudFRyYW5zbGF0ZSA+IGkubWluVHJhbnNsYXRlKCkgJiYKICAgICAgICAgICgoeSA9ICExKSwKICAgICAgICAgIHIucmVzaXN0YW5jZSAmJgogICAgICAgICAgICAocy5jdXJyZW50VHJhbnNsYXRlID0KICAgICAgICAgICAgICBpLm1pblRyYW5zbGF0ZSgpIC0KICAgICAgICAgICAgICAxICsKICAgICAgICAgICAgICAoLWkubWluVHJhbnNsYXRlKCkgKyBzLnN0YXJ0VHJhbnNsYXRlICsgaCkgKiogUykpKQogICAgICA6IGggPCAwICYmCiAgICAgICAgKGcgJiYKICAgICAgICAgIGIgJiYKICAgICAgICAgICF3ICYmCiAgICAgICAgICBzLmFsbG93VGhyZXNob2xkTW92ZSAmJgogICAgICAgICAgcy5jdXJyZW50VHJhbnNsYXRlIDwKICAgICAgICAgICAgKHIuY2VudGVyZWRTbGlkZXMKICAgICAgICAgICAgICA/IGkubWF4VHJhbnNsYXRlKCkgKwogICAgICAgICAgICAgICAgaS5zbGlkZXNTaXplc0dyaWRbaS5zbGlkZXNTaXplc0dyaWQubGVuZ3RoIC0gMV0gKwogICAgICAgICAgICAgICAgaS5wYXJhbXMuc3BhY2VCZXR3ZWVuICsKICAgICAgICAgICAgICAgIChyLnNsaWRlc1BlclZpZXcgIT09ICJhdXRvIiAmJgogICAgICAgICAgICAgICAgaS5zbGlkZXMubGVuZ3RoIC0gci5zbGlkZXNQZXJWaWV3ID49IDIKICAgICAgICAgICAgICAgICAgPyBpLnNsaWRlc1NpemVzR3JpZFtpLnNsaWRlc1NpemVzR3JpZC5sZW5ndGggLSAxXSArCiAgICAgICAgICAgICAgICAgICAgaS5wYXJhbXMuc3BhY2VCZXR3ZWVuCiAgICAgICAgICAgICAgICAgIDogMCkKICAgICAgICAgICAgICA6IGkubWF4VHJhbnNsYXRlKCkpICYmCiAgICAgICAgICBpLmxvb3BGaXgoewogICAgICAgICAgICBkaXJlY3Rpb246ICJuZXh0IiwKICAgICAgICAgICAgc2V0VHJhbnNsYXRlOiAhMCwKICAgICAgICAgICAgYWN0aXZlU2xpZGVJbmRleDoKICAgICAgICAgICAgICBpLnNsaWRlcy5sZW5ndGggLQogICAgICAgICAgICAgIChyLnNsaWRlc1BlclZpZXcgPT09ICJhdXRvIgogICAgICAgICAgICAgICAgPyBpLnNsaWRlc1BlclZpZXdEeW5hbWljKCkKICAgICAgICAgICAgICAgIDogTWF0aC5jZWlsKHBhcnNlRmxvYXQoci5zbGlkZXNQZXJWaWV3LCAxMCkpKSwKICAgICAgICAgIH0pLAogICAgICAgIHMuY3VycmVudFRyYW5zbGF0ZSA8IGkubWF4VHJhbnNsYXRlKCkgJiYKICAgICAgICAgICgoeSA9ICExKSwKICAgICAgICAgIHIucmVzaXN0YW5jZSAmJgogICAgICAgICAgICAocy5jdXJyZW50VHJhbnNsYXRlID0KICAgICAgICAgICAgICBpLm1heFRyYW5zbGF0ZSgpICsKICAgICAgICAgICAgICAxIC0KICAgICAgICAgICAgICAoaS5tYXhUcmFuc2xhdGUoKSAtIHMuc3RhcnRUcmFuc2xhdGUgLSBoKSAqKiBTKSkpLAogICAgeSAmJiAoby5wcmV2ZW50ZWRCeU5lc3RlZFN3aXBlciA9ICEwKSwKICAgICFpLmFsbG93U2xpZGVOZXh0ICYmCiAgICAgIGkuc3dpcGVEaXJlY3Rpb24gPT09ICJuZXh0IiAmJgogICAgICBzLmN1cnJlbnRUcmFuc2xhdGUgPCBzLnN0YXJ0VHJhbnNsYXRlICYmCiAgICAgIChzLmN1cnJlbnRUcmFuc2xhdGUgPSBzLnN0YXJ0VHJhbnNsYXRlKSwKICAgICFpLmFsbG93U2xpZGVQcmV2ICYmCiAgICAgIGkuc3dpcGVEaXJlY3Rpb24gPT09ICJwcmV2IiAmJgogICAgICBzLmN1cnJlbnRUcmFuc2xhdGUgPiBzLnN0YXJ0VHJhbnNsYXRlICYmCiAgICAgIChzLmN1cnJlbnRUcmFuc2xhdGUgPSBzLnN0YXJ0VHJhbnNsYXRlKSwKICAgICFpLmFsbG93U2xpZGVQcmV2ICYmCiAgICAgICFpLmFsbG93U2xpZGVOZXh0ICYmCiAgICAgIChzLmN1cnJlbnRUcmFuc2xhdGUgPSBzLnN0YXJ0VHJhbnNsYXRlKSwKICAgIHIudGhyZXNob2xkID4gMCkKICApCiAgICBpZiAoTWF0aC5hYnMoaCkgPiByLnRocmVzaG9sZCB8fCBzLmFsbG93VGhyZXNob2xkTW92ZSkgewogICAgICBpZiAoIXMuYWxsb3dUaHJlc2hvbGRNb3ZlKSB7CiAgICAgICAgKHMuYWxsb3dUaHJlc2hvbGRNb3ZlID0gITApLAogICAgICAgICAgKG4uc3RhcnRYID0gbi5jdXJyZW50WCksCiAgICAgICAgICAobi5zdGFydFkgPSBuLmN1cnJlbnRZKSwKICAgICAgICAgIChzLmN1cnJlbnRUcmFuc2xhdGUgPSBzLnN0YXJ0VHJhbnNsYXRlKSwKICAgICAgICAgIChuLmRpZmYgPSBpLmlzSG9yaXpvbnRhbCgpCiAgICAgICAgICAgID8gbi5jdXJyZW50WCAtIG4uc3RhcnRYCiAgICAgICAgICAgIDogbi5jdXJyZW50WSAtIG4uc3RhcnRZKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIHMuY3VycmVudFRyYW5zbGF0ZSA9IHMuc3RhcnRUcmFuc2xhdGU7CiAgICAgIHJldHVybjsKICAgIH0KICAhci5mb2xsb3dGaW5nZXIgfHwKICAgIHIuY3NzTW9kZSB8fAogICAgKCgoci5mcmVlTW9kZSAmJiByLmZyZWVNb2RlLmVuYWJsZWQgJiYgaS5mcmVlTW9kZSkgfHwKICAgICAgci53YXRjaFNsaWRlc1Byb2dyZXNzKSAmJgogICAgICAoaS51cGRhdGVBY3RpdmVJbmRleCgpLCBpLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSksCiAgICByLmZyZWVNb2RlICYmIHIuZnJlZU1vZGUuZW5hYmxlZCAmJiBpLmZyZWVNb2RlICYmIGkuZnJlZU1vZGUub25Ub3VjaE1vdmUoKSwKICAgIGkudXBkYXRlUHJvZ3Jlc3Mocy5jdXJyZW50VHJhbnNsYXRlKSwKICAgIGkuc2V0VHJhbnNsYXRlKHMuY3VycmVudFRyYW5zbGF0ZSkpOwp9CmZ1bmN0aW9uIEl0KHQpIHsKICBjb25zdCBlID0gdGhpcywKICAgIGkgPSBlLnRvdWNoRXZlbnRzRGF0YTsKICBsZXQgcyA9IHQ7CiAgcy5vcmlnaW5hbEV2ZW50ICYmIChzID0gcy5vcmlnaW5hbEV2ZW50KTsKICBsZXQgcjsKICBpZiAocy50eXBlID09PSAidG91Y2hlbmQiIHx8IHMudHlwZSA9PT0gInRvdWNoY2FuY2VsIikgewogICAgaWYgKAogICAgICAoKHIgPSBbLi4ucy5jaGFuZ2VkVG91Y2hlc10uZmlsdGVyKChTKSA9PiBTLmlkZW50aWZpZXIgPT09IGkudG91Y2hJZClbMF0pLAogICAgICAhciB8fCByLmlkZW50aWZpZXIgIT09IGkudG91Y2hJZCkKICAgICkKICAgICAgcmV0dXJuOwogIH0gZWxzZSB7CiAgICBpZiAoaS50b3VjaElkICE9PSBudWxsIHx8IHMucG9pbnRlcklkICE9PSBpLnBvaW50ZXJJZCkgcmV0dXJuOwogICAgciA9IHM7CiAgfQogIGlmICgKICAgIFsicG9pbnRlcmNhbmNlbCIsICJwb2ludGVyb3V0IiwgInBvaW50ZXJsZWF2ZSIsICJjb250ZXh0bWVudSJdLmluY2x1ZGVzKAogICAgICBzLnR5cGUKICAgICkgJiYKICAgICEoCiAgICAgIFsicG9pbnRlcmNhbmNlbCIsICJjb250ZXh0bWVudSJdLmluY2x1ZGVzKHMudHlwZSkgJiYKICAgICAgKGUuYnJvd3Nlci5pc1NhZmFyaSB8fCBlLmJyb3dzZXIuaXNXZWJWaWV3KQogICAgKQogICkKICAgIHJldHVybjsKICAoaS5wb2ludGVySWQgPSBudWxsKSwgKGkudG91Y2hJZCA9IG51bGwpOwogIGNvbnN0IHsKICAgIHBhcmFtczogYSwKICAgIHRvdWNoZXM6IGwsCiAgICBydGxUcmFuc2xhdGU6IG8sCiAgICBzbGlkZXNHcmlkOiBjLAogICAgZW5hYmxlZDogZCwKICB9ID0gZTsKICBpZiAoIWQgfHwgKCFhLnNpbXVsYXRlVG91Y2ggJiYgcy5wb2ludGVyVHlwZSA9PT0gIm1vdXNlIikpIHJldHVybjsKICBpZiAoCiAgICAoaS5hbGxvd1RvdWNoQ2FsbGJhY2tzICYmIGUuZW1pdCgidG91Y2hFbmQiLCBzKSwKICAgIChpLmFsbG93VG91Y2hDYWxsYmFja3MgPSAhMSksCiAgICAhaS5pc1RvdWNoZWQpCiAgKSB7CiAgICBpLmlzTW92ZWQgJiYgYS5ncmFiQ3Vyc29yICYmIGUuc2V0R3JhYkN1cnNvcighMSksCiAgICAgIChpLmlzTW92ZWQgPSAhMSksCiAgICAgIChpLnN0YXJ0TW92aW5nID0gITEpOwogICAgcmV0dXJuOwogIH0KICBhLmdyYWJDdXJzb3IgJiYKICAgIGkuaXNNb3ZlZCAmJgogICAgaS5pc1RvdWNoZWQgJiYKICAgIChlLmFsbG93U2xpZGVOZXh0ID09PSAhMCB8fCBlLmFsbG93U2xpZGVQcmV2ID09PSAhMCkgJiYKICAgIGUuc2V0R3JhYkN1cnNvcighMSk7CiAgY29uc3QgZiA9IEgoKSwKICAgIHAgPSBmIC0gaS50b3VjaFN0YXJ0VGltZTsKICBpZiAoZS5hbGxvd0NsaWNrKSB7CiAgICBjb25zdCBTID0gcy5wYXRoIHx8IChzLmNvbXBvc2VkUGF0aCAmJiBzLmNvbXBvc2VkUGF0aCgpKTsKICAgIGUudXBkYXRlQ2xpY2tlZFNsaWRlKChTICYmIFNbMF0pIHx8IHMudGFyZ2V0LCBTKSwKICAgICAgZS5lbWl0KCJ0YXAgY2xpY2siLCBzKSwKICAgICAgcCA8IDMwMCAmJgogICAgICAgIGYgLSBpLmxhc3RDbGlja1RpbWUgPCAzMDAgJiYKICAgICAgICBlLmVtaXQoImRvdWJsZVRhcCBkb3VibGVDbGljayIsIHMpOwogIH0KICBpZiAoCiAgICAoKGkubGFzdENsaWNrVGltZSA9IEgoKSksCiAgICBaKCgpID0+IHsKICAgICAgZS5kZXN0cm95ZWQgfHwgKGUuYWxsb3dDbGljayA9ICEwKTsKICAgIH0pLAogICAgIWkuaXNUb3VjaGVkIHx8CiAgICAgICFpLmlzTW92ZWQgfHwKICAgICAgIWUuc3dpcGVEaXJlY3Rpb24gfHwKICAgICAgKGwuZGlmZiA9PT0gMCAmJiAhaS5sb29wU3dhcFJlc2V0KSB8fAogICAgICAoaS5jdXJyZW50VHJhbnNsYXRlID09PSBpLnN0YXJ0VHJhbnNsYXRlICYmICFpLmxvb3BTd2FwUmVzZXQpKQogICkgewogICAgKGkuaXNUb3VjaGVkID0gITEpLCAoaS5pc01vdmVkID0gITEpLCAoaS5zdGFydE1vdmluZyA9ICExKTsKICAgIHJldHVybjsKICB9CiAgKGkuaXNUb3VjaGVkID0gITEpLCAoaS5pc01vdmVkID0gITEpLCAoaS5zdGFydE1vdmluZyA9ICExKTsKICBsZXQgdTsKICBpZiAoCiAgICAoYS5mb2xsb3dGaW5nZXIKICAgICAgPyAodSA9IG8gPyBlLnRyYW5zbGF0ZSA6IC1lLnRyYW5zbGF0ZSkKICAgICAgOiAodSA9IC1pLmN1cnJlbnRUcmFuc2xhdGUpLAogICAgYS5jc3NNb2RlKQogICkKICAgIHJldHVybjsKICBpZiAoYS5mcmVlTW9kZSAmJiBhLmZyZWVNb2RlLmVuYWJsZWQpIHsKICAgIGUuZnJlZU1vZGUub25Ub3VjaEVuZCh7IGN1cnJlbnRQb3M6IHUgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGggPSB1ID49IC1lLm1heFRyYW5zbGF0ZSgpICYmICFlLnBhcmFtcy5sb29wOwogIGxldCBtID0gMCwKICAgIFQgPSBlLnNsaWRlc1NpemVzR3JpZFswXTsKICBmb3IgKAogICAgbGV0IFMgPSAwOwogICAgUyA8IGMubGVuZ3RoOwogICAgUyArPSBTIDwgYS5zbGlkZXNQZXJHcm91cFNraXAgPyAxIDogYS5zbGlkZXNQZXJHcm91cAogICkgewogICAgY29uc3QgTSA9IFMgPCBhLnNsaWRlc1Blckdyb3VwU2tpcCAtIDEgPyAxIDogYS5zbGlkZXNQZXJHcm91cDsKICAgIHR5cGVvZiBjW1MgKyBNXSA8ICJ1IgogICAgICA/IChoIHx8ICh1ID49IGNbU10gJiYgdSA8IGNbUyArIE1dKSkgJiYgKChtID0gUyksIChUID0gY1tTICsgTV0gLSBjW1NdKSkKICAgICAgOiAoaCB8fCB1ID49IGNbU10pICYmICgobSA9IFMpLCAoVCA9IGNbYy5sZW5ndGggLSAxXSAtIGNbYy5sZW5ndGggLSAyXSkpOwogIH0KICBsZXQgZyA9IG51bGwsCiAgICBiID0gbnVsbDsKICBhLnJld2luZCAmJgogICAgKGUuaXNCZWdpbm5pbmcKICAgICAgPyAoYiA9CiAgICAgICAgICBhLnZpcnR1YWwgJiYgYS52aXJ0dWFsLmVuYWJsZWQgJiYgZS52aXJ0dWFsCiAgICAgICAgICAgID8gZS52aXJ0dWFsLnNsaWRlcy5sZW5ndGggLSAxCiAgICAgICAgICAgIDogZS5zbGlkZXMubGVuZ3RoIC0gMSkKICAgICAgOiBlLmlzRW5kICYmIChnID0gMCkpOwogIGNvbnN0IHcgPSAodSAtIGNbbV0pIC8gVCwKICAgIHkgPSBtIDwgYS5zbGlkZXNQZXJHcm91cFNraXAgLSAxID8gMSA6IGEuc2xpZGVzUGVyR3JvdXA7CiAgaWYgKHAgPiBhLmxvbmdTd2lwZXNNcykgewogICAgaWYgKCFhLmxvbmdTd2lwZXMpIHsKICAgICAgZS5zbGlkZVRvKGUuYWN0aXZlSW5kZXgpOwogICAgICByZXR1cm47CiAgICB9CiAgICBlLnN3aXBlRGlyZWN0aW9uID09PSAibmV4dCIgJiYKICAgICAgKHcgPj0gYS5sb25nU3dpcGVzUmF0aW8KICAgICAgICA/IGUuc2xpZGVUbyhhLnJld2luZCAmJiBlLmlzRW5kID8gZyA6IG0gKyB5KQogICAgICAgIDogZS5zbGlkZVRvKG0pKSwKICAgICAgZS5zd2lwZURpcmVjdGlvbiA9PT0gInByZXYiICYmCiAgICAgICAgKHcgPiAxIC0gYS5sb25nU3dpcGVzUmF0aW8KICAgICAgICAgID8gZS5zbGlkZVRvKG0gKyB5KQogICAgICAgICAgOiBiICE9PSBudWxsICYmIHcgPCAwICYmIE1hdGguYWJzKHcpID4gYS5sb25nU3dpcGVzUmF0aW8KICAgICAgICAgID8gZS5zbGlkZVRvKGIpCiAgICAgICAgICA6IGUuc2xpZGVUbyhtKSk7CiAgfSBlbHNlIHsKICAgIGlmICghYS5zaG9ydFN3aXBlcykgewogICAgICBlLnNsaWRlVG8oZS5hY3RpdmVJbmRleCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGUubmF2aWdhdGlvbiAmJgogICAgKHMudGFyZ2V0ID09PSBlLm5hdmlnYXRpb24ubmV4dEVsIHx8IHMudGFyZ2V0ID09PSBlLm5hdmlnYXRpb24ucHJldkVsKQogICAgICA/IHMudGFyZ2V0ID09PSBlLm5hdmlnYXRpb24ubmV4dEVsCiAgICAgICAgPyBlLnNsaWRlVG8obSArIHkpCiAgICAgICAgOiBlLnNsaWRlVG8obSkKICAgICAgOiAoZS5zd2lwZURpcmVjdGlvbiA9PT0gIm5leHQiICYmIGUuc2xpZGVUbyhnICE9PSBudWxsID8gZyA6IG0gKyB5KSwKICAgICAgICBlLnN3aXBlRGlyZWN0aW9uID09PSAicHJldiIgJiYgZS5zbGlkZVRvKGIgIT09IG51bGwgPyBiIDogbSkpOwogIH0KfQpmdW5jdGlvbiBwZSgpIHsKICBjb25zdCB0ID0gdGhpcywKICAgIHsgcGFyYW1zOiBlLCBlbDogaSB9ID0gdDsKICBpZiAoaSAmJiBpLm9mZnNldFdpZHRoID09PSAwKSByZXR1cm47CiAgZS5icmVha3BvaW50cyAmJiB0LnNldEJyZWFrcG9pbnQoKTsKICBjb25zdCB7IGFsbG93U2xpZGVOZXh0OiBzLCBhbGxvd1NsaWRlUHJldjogciwgc25hcEdyaWQ6IG4gfSA9IHQsCiAgICBhID0gdC52aXJ0dWFsICYmIHQucGFyYW1zLnZpcnR1YWwuZW5hYmxlZDsKICAodC5hbGxvd1NsaWRlTmV4dCA9ICEwKSwKICAgICh0LmFsbG93U2xpZGVQcmV2ID0gITApLAogICAgdC51cGRhdGVTaXplKCksCiAgICB0LnVwZGF0ZVNsaWRlcygpLAogICAgdC51cGRhdGVTbGlkZXNDbGFzc2VzKCk7CiAgY29uc3QgbCA9IGEgJiYgZS5sb29wOwogIChlLnNsaWRlc1BlclZpZXcgPT09ICJhdXRvIiB8fCBlLnNsaWRlc1BlclZpZXcgPiAxKSAmJgogIHQuaXNFbmQgJiYKICAhdC5pc0JlZ2lubmluZyAmJgogICF0LnBhcmFtcy5jZW50ZXJlZFNsaWRlcyAmJgogICFsCiAgICA/IHQuc2xpZGVUbyh0LnNsaWRlcy5sZW5ndGggLSAxLCAwLCAhMSwgITApCiAgICA6IHQucGFyYW1zLmxvb3AgJiYgIWEKICAgID8gdC5zbGlkZVRvTG9vcCh0LnJlYWxJbmRleCwgMCwgITEsICEwKQogICAgOiB0LnNsaWRlVG8odC5hY3RpdmVJbmRleCwgMCwgITEsICEwKSwKICAgIHQuYXV0b3BsYXkgJiYKICAgICAgdC5hdXRvcGxheS5ydW5uaW5nICYmCiAgICAgIHQuYXV0b3BsYXkucGF1c2VkICYmCiAgICAgIChjbGVhclRpbWVvdXQodC5hdXRvcGxheS5yZXNpemVUaW1lb3V0KSwKICAgICAgKHQuYXV0b3BsYXkucmVzaXplVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIHQuYXV0b3BsYXkgJiYKICAgICAgICAgIHQuYXV0b3BsYXkucnVubmluZyAmJgogICAgICAgICAgdC5hdXRvcGxheS5wYXVzZWQgJiYKICAgICAgICAgIHQuYXV0b3BsYXkucmVzdW1lKCk7CiAgICAgIH0sIDUwMCkpKSwKICAgICh0LmFsbG93U2xpZGVQcmV2ID0gciksCiAgICAodC5hbGxvd1NsaWRlTmV4dCA9IHMpLAogICAgdC5wYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiBuICE9PSB0LnNuYXBHcmlkICYmIHQuY2hlY2tPdmVyZmxvdygpOwp9CmZ1bmN0aW9uIEx0KHQpIHsKICBjb25zdCBlID0gdGhpczsKICBlLmVuYWJsZWQgJiYKICAgIChlLmFsbG93Q2xpY2sgfHwKICAgICAgKGUucGFyYW1zLnByZXZlbnRDbGlja3MgJiYgdC5wcmV2ZW50RGVmYXVsdCgpLAogICAgICBlLnBhcmFtcy5wcmV2ZW50Q2xpY2tzUHJvcGFnYXRpb24gJiYKICAgICAgICBlLmFuaW1hdGluZyAmJgogICAgICAgICh0LnN0b3BQcm9wYWdhdGlvbigpLCB0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKSkpOwp9CmZ1bmN0aW9uIE90KCkgewogIGNvbnN0IHQgPSB0aGlzLAogICAgeyB3cmFwcGVyRWw6IGUsIHJ0bFRyYW5zbGF0ZTogaSwgZW5hYmxlZDogcyB9ID0gdDsKICBpZiAoIXMpIHJldHVybjsKICAodC5wcmV2aW91c1RyYW5zbGF0ZSA9IHQudHJhbnNsYXRlKSwKICAgIHQuaXNIb3Jpem9udGFsKCkKICAgICAgPyAodC50cmFuc2xhdGUgPSAtZS5zY3JvbGxMZWZ0KQogICAgICA6ICh0LnRyYW5zbGF0ZSA9IC1lLnNjcm9sbFRvcCksCiAgICB0LnRyYW5zbGF0ZSA9PT0gMCAmJiAodC50cmFuc2xhdGUgPSAwKSwKICAgIHQudXBkYXRlQWN0aXZlSW5kZXgoKSwKICAgIHQudXBkYXRlU2xpZGVzQ2xhc3NlcygpOwogIGxldCByOwogIGNvbnN0IG4gPSB0Lm1heFRyYW5zbGF0ZSgpIC0gdC5taW5UcmFuc2xhdGUoKTsKICBuID09PSAwID8gKHIgPSAwKSA6IChyID0gKHQudHJhbnNsYXRlIC0gdC5taW5UcmFuc2xhdGUoKSkgLyBuKSwKICAgIHIgIT09IHQucHJvZ3Jlc3MgJiYgdC51cGRhdGVQcm9ncmVzcyhpID8gLXQudHJhbnNsYXRlIDogdC50cmFuc2xhdGUpLAogICAgdC5lbWl0KCJzZXRUcmFuc2xhdGUiLCB0LnRyYW5zbGF0ZSwgITEpOwp9CmZ1bmN0aW9uIHp0KHQpIHsKICBjb25zdCBlID0gdGhpczsKICAkKGUsIHQudGFyZ2V0KSwKICAgICEoCiAgICAgIGUucGFyYW1zLmNzc01vZGUgfHwKICAgICAgKGUucGFyYW1zLnNsaWRlc1BlclZpZXcgIT09ICJhdXRvIiAmJiAhZS5wYXJhbXMuYXV0b0hlaWdodCkKICAgICkgJiYgZS51cGRhdGUoKTsKfQpmdW5jdGlvbiBBdCgpIHsKICBjb25zdCB0ID0gdGhpczsKICB0LmRvY3VtZW50VG91Y2hIYW5kbGVyUHJvY2VlZGVkIHx8CiAgICAoKHQuZG9jdW1lbnRUb3VjaEhhbmRsZXJQcm9jZWVkZWQgPSAhMCksCiAgICB0LnBhcmFtcy50b3VjaFJlbGVhc2VPbkVkZ2VzICYmICh0LmVsLnN0eWxlLnRvdWNoQWN0aW9uID0gImF1dG8iKSk7Cn0KY29uc3QgeGUgPSAodCwgZSkgPT4gewogIGNvbnN0IGkgPSBCKCksCiAgICB7IHBhcmFtczogcywgZWw6IHIsIHdyYXBwZXJFbDogbiwgZGV2aWNlOiBhIH0gPSB0LAogICAgbCA9ICEhcy5uZXN0ZWQsCiAgICBvID0gZSA9PT0gIm9uIiA/ICJhZGRFdmVudExpc3RlbmVyIiA6ICJyZW1vdmVFdmVudExpc3RlbmVyIiwKICAgIGMgPSBlOwogICFyIHx8CiAgICB0eXBlb2YgciA9PSAic3RyaW5nIiB8fAogICAgKGlbb10oInRvdWNoc3RhcnQiLCB0Lm9uRG9jdW1lbnRUb3VjaFN0YXJ0LCB7IHBhc3NpdmU6ICExLCBjYXB0dXJlOiBsIH0pLAogICAgcltvXSgidG91Y2hzdGFydCIsIHQub25Ub3VjaFN0YXJ0LCB7IHBhc3NpdmU6ICExIH0pLAogICAgcltvXSgicG9pbnRlcmRvd24iLCB0Lm9uVG91Y2hTdGFydCwgeyBwYXNzaXZlOiAhMSB9KSwKICAgIGlbb10oInRvdWNobW92ZSIsIHQub25Ub3VjaE1vdmUsIHsgcGFzc2l2ZTogITEsIGNhcHR1cmU6IGwgfSksCiAgICBpW29dKCJwb2ludGVybW92ZSIsIHQub25Ub3VjaE1vdmUsIHsgcGFzc2l2ZTogITEsIGNhcHR1cmU6IGwgfSksCiAgICBpW29dKCJ0b3VjaGVuZCIsIHQub25Ub3VjaEVuZCwgeyBwYXNzaXZlOiAhMCB9KSwKICAgIGlbb10oInBvaW50ZXJ1cCIsIHQub25Ub3VjaEVuZCwgeyBwYXNzaXZlOiAhMCB9KSwKICAgIGlbb10oInBvaW50ZXJjYW5jZWwiLCB0Lm9uVG91Y2hFbmQsIHsgcGFzc2l2ZTogITAgfSksCiAgICBpW29dKCJ0b3VjaGNhbmNlbCIsIHQub25Ub3VjaEVuZCwgeyBwYXNzaXZlOiAhMCB9KSwKICAgIGlbb10oInBvaW50ZXJvdXQiLCB0Lm9uVG91Y2hFbmQsIHsgcGFzc2l2ZTogITAgfSksCiAgICBpW29dKCJwb2ludGVybGVhdmUiLCB0Lm9uVG91Y2hFbmQsIHsgcGFzc2l2ZTogITAgfSksCiAgICBpW29dKCJjb250ZXh0bWVudSIsIHQub25Ub3VjaEVuZCwgeyBwYXNzaXZlOiAhMCB9KSwKICAgIChzLnByZXZlbnRDbGlja3MgfHwgcy5wcmV2ZW50Q2xpY2tzUHJvcGFnYXRpb24pICYmCiAgICAgIHJbb10oImNsaWNrIiwgdC5vbkNsaWNrLCAhMCksCiAgICBzLmNzc01vZGUgJiYgbltvXSgic2Nyb2xsIiwgdC5vblNjcm9sbCksCiAgICBzLnVwZGF0ZU9uV2luZG93UmVzaXplCiAgICAgID8gdFtjXSgKICAgICAgICAgIGEuaW9zIHx8IGEuYW5kcm9pZAogICAgICAgICAgICA/ICJyZXNpemUgb3JpZW50YXRpb25jaGFuZ2Ugb2JzZXJ2ZXJVcGRhdGUiCiAgICAgICAgICAgIDogInJlc2l6ZSBvYnNlcnZlclVwZGF0ZSIsCiAgICAgICAgICBwZSwKICAgICAgICAgICEwCiAgICAgICAgKQogICAgICA6IHRbY10oIm9ic2VydmVyVXBkYXRlIiwgcGUsICEwKSwKICAgIHJbb10oImxvYWQiLCB0Lm9uTG9hZCwgeyBjYXB0dXJlOiAhMCB9KSk7Cn07CmZ1bmN0aW9uIF90KCkgewogIGNvbnN0IHQgPSB0aGlzLAogICAgeyBwYXJhbXM6IGUgfSA9IHQ7CiAgKHQub25Ub3VjaFN0YXJ0ID0gTXQuYmluZCh0KSksCiAgICAodC5vblRvdWNoTW92ZSA9IEN0LmJpbmQodCkpLAogICAgKHQub25Ub3VjaEVuZCA9IEl0LmJpbmQodCkpLAogICAgKHQub25Eb2N1bWVudFRvdWNoU3RhcnQgPSBBdC5iaW5kKHQpKSwKICAgIGUuY3NzTW9kZSAmJiAodC5vblNjcm9sbCA9IE90LmJpbmQodCkpLAogICAgKHQub25DbGljayA9IEx0LmJpbmQodCkpLAogICAgKHQub25Mb2FkID0genQuYmluZCh0KSksCiAgICB4ZSh0LCAib24iKTsKfQpmdW5jdGlvbiBHdCgpIHsKICB4ZSh0aGlzLCAib2ZmIik7Cn0KdmFyIER0ID0geyBhdHRhY2hFdmVudHM6IF90LCBkZXRhY2hFdmVudHM6IEd0IH07CmNvbnN0IGhlID0gKHQsIGUpID0+IHQuZ3JpZCAmJiBlLmdyaWQgJiYgZS5ncmlkLnJvd3MgPiAxOwpmdW5jdGlvbiBWdCgpIHsKICBjb25zdCB0ID0gdGhpcywKICAgIHsgcmVhbEluZGV4OiBlLCBpbml0aWFsaXplZDogaSwgcGFyYW1zOiBzLCBlbDogciB9ID0gdCwKICAgIG4gPSBzLmJyZWFrcG9pbnRzOwogIGlmICghbiB8fCAobiAmJiBPYmplY3Qua2V5cyhuKS5sZW5ndGggPT09IDApKSByZXR1cm47CiAgY29uc3QgYSA9IHQuZ2V0QnJlYWtwb2ludChuLCB0LnBhcmFtcy5icmVha3BvaW50c0Jhc2UsIHQuZWwpOwogIGlmICghYSB8fCB0LmN1cnJlbnRCcmVha3BvaW50ID09PSBhKSByZXR1cm47CiAgY29uc3QgbyA9IChhIGluIG4gPyBuW2FdIDogdm9pZCAwKSB8fCB0Lm9yaWdpbmFsUGFyYW1zLAogICAgYyA9IGhlKHQsIHMpLAogICAgZCA9IGhlKHQsIG8pLAogICAgZiA9IHQucGFyYW1zLmdyYWJDdXJzb3IsCiAgICBwID0gby5ncmFiQ3Vyc29yLAogICAgdSA9IHMuZW5hYmxlZDsKICBjICYmICFkCiAgICA/IChyLmNsYXNzTGlzdC5yZW1vdmUoCiAgICAgICAgYCR7cy5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWRgLAogICAgICAgIGAke3MuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ncmlkLWNvbHVtbmAKICAgICAgKSwKICAgICAgdC5lbWl0Q29udGFpbmVyQ2xhc3NlcygpKQogICAgOiAhYyAmJgogICAgICBkICYmCiAgICAgIChyLmNsYXNzTGlzdC5hZGQoYCR7cy5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWRgKSwKICAgICAgKChvLmdyaWQuZmlsbCAmJiBvLmdyaWQuZmlsbCA9PT0gImNvbHVtbiIpIHx8CiAgICAgICAgKCFvLmdyaWQuZmlsbCAmJiBzLmdyaWQuZmlsbCA9PT0gImNvbHVtbiIpKSAmJgogICAgICAgIHIuY2xhc3NMaXN0LmFkZChgJHtzLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9Z3JpZC1jb2x1bW5gKSwKICAgICAgdC5lbWl0Q29udGFpbmVyQ2xhc3NlcygpKSwKICAgIGYgJiYgIXAgPyB0LnVuc2V0R3JhYkN1cnNvcigpIDogIWYgJiYgcCAmJiB0LnNldEdyYWJDdXJzb3IoKSwKICAgIFsibmF2aWdhdGlvbiIsICJwYWdpbmF0aW9uIiwgInNjcm9sbGJhciJdLmZvckVhY2goKHcpID0+IHsKICAgICAgaWYgKHR5cGVvZiBvW3ddID4gInUiKSByZXR1cm47CiAgICAgIGNvbnN0IHkgPSBzW3ddICYmIHNbd10uZW5hYmxlZCwKICAgICAgICBTID0gb1t3XSAmJiBvW3ddLmVuYWJsZWQ7CiAgICAgIHkgJiYgIVMgJiYgdFt3XS5kaXNhYmxlKCksICF5ICYmIFMgJiYgdFt3XS5lbmFibGUoKTsKICAgIH0pOwogIGNvbnN0IGggPSBvLmRpcmVjdGlvbiAmJiBvLmRpcmVjdGlvbiAhPT0gcy5kaXJlY3Rpb24sCiAgICBtID0gcy5sb29wICYmIChvLnNsaWRlc1BlclZpZXcgIT09IHMuc2xpZGVzUGVyVmlldyB8fCBoKSwKICAgIFQgPSBzLmxvb3A7CiAgaCAmJiBpICYmIHQuY2hhbmdlRGlyZWN0aW9uKCksIF8odC5wYXJhbXMsIG8pOwogIGNvbnN0IGcgPSB0LnBhcmFtcy5lbmFibGVkLAogICAgYiA9IHQucGFyYW1zLmxvb3A7CiAgT2JqZWN0LmFzc2lnbih0LCB7CiAgICBhbGxvd1RvdWNoTW92ZTogdC5wYXJhbXMuYWxsb3dUb3VjaE1vdmUsCiAgICBhbGxvd1NsaWRlTmV4dDogdC5wYXJhbXMuYWxsb3dTbGlkZU5leHQsCiAgICBhbGxvd1NsaWRlUHJldjogdC5wYXJhbXMuYWxsb3dTbGlkZVByZXYsCiAgfSksCiAgICB1ICYmICFnID8gdC5kaXNhYmxlKCkgOiAhdSAmJiBnICYmIHQuZW5hYmxlKCksCiAgICAodC5jdXJyZW50QnJlYWtwb2ludCA9IGEpLAogICAgdC5lbWl0KCJfYmVmb3JlQnJlYWtwb2ludCIsIG8pLAogICAgaSAmJgogICAgICAobQogICAgICAgID8gKHQubG9vcERlc3Ryb3koKSwgdC5sb29wQ3JlYXRlKGUpLCB0LnVwZGF0ZVNsaWRlcygpKQogICAgICAgIDogIVQgJiYgYgogICAgICAgID8gKHQubG9vcENyZWF0ZShlKSwgdC51cGRhdGVTbGlkZXMoKSkKICAgICAgICA6IFQgJiYgIWIgJiYgdC5sb29wRGVzdHJveSgpKSwKICAgIHQuZW1pdCgiYnJlYWtwb2ludCIsIG8pOwp9CmZ1bmN0aW9uIGt0KHQsIGUsIGkpIHsKICBpZiAoKGUgPT09IHZvaWQgMCAmJiAoZSA9ICJ3aW5kb3ciKSwgIXQgfHwgKGUgPT09ICJjb250YWluZXIiICYmICFpKSkpIHJldHVybjsKICBsZXQgcyA9ICExOwogIGNvbnN0IHIgPSBBKCksCiAgICBuID0gZSA9PT0gIndpbmRvdyIgPyByLmlubmVySGVpZ2h0IDogaS5jbGllbnRIZWlnaHQsCiAgICBhID0gT2JqZWN0LmtleXModCkubWFwKChsKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgbCA9PSAic3RyaW5nIiAmJiBsLmluZGV4T2YoIkAiKSA9PT0gMCkgewogICAgICAgIGNvbnN0IG8gPSBwYXJzZUZsb2F0KGwuc3Vic3RyKDEpKTsKICAgICAgICByZXR1cm4geyB2YWx1ZTogbiAqIG8sIHBvaW50OiBsIH07CiAgICAgIH0KICAgICAgcmV0dXJuIHsgdmFsdWU6IGwsIHBvaW50OiBsIH07CiAgICB9KTsKICBhLnNvcnQoKGwsIG8pID0+IHBhcnNlSW50KGwudmFsdWUsIDEwKSAtIHBhcnNlSW50KG8udmFsdWUsIDEwKSk7CiAgZm9yIChsZXQgbCA9IDA7IGwgPCBhLmxlbmd0aDsgbCArPSAxKSB7CiAgICBjb25zdCB7IHBvaW50OiBvLCB2YWx1ZTogYyB9ID0gYVtsXTsKICAgIGUgPT09ICJ3aW5kb3ciCiAgICAgID8gci5tYXRjaE1lZGlhKGAobWluLXdpZHRoOiAke2N9cHgpYCkubWF0Y2hlcyAmJiAocyA9IG8pCiAgICAgIDogYyA8PSBpLmNsaWVudFdpZHRoICYmIChzID0gbyk7CiAgfQogIHJldHVybiBzIHx8ICJtYXgiOwp9CnZhciBCdCA9IHsgc2V0QnJlYWtwb2ludDogVnQsIGdldEJyZWFrcG9pbnQ6IGt0IH07CmZ1bmN0aW9uIEZ0KHQsIGUpIHsKICBjb25zdCBpID0gW107CiAgcmV0dXJuICgKICAgIHQuZm9yRWFjaCgocykgPT4gewogICAgICB0eXBlb2YgcyA9PSAib2JqZWN0IgogICAgICAgID8gT2JqZWN0LmtleXMocykuZm9yRWFjaCgocikgPT4gewogICAgICAgICAgICBzW3JdICYmIGkucHVzaChlICsgcik7CiAgICAgICAgICB9KQogICAgICAgIDogdHlwZW9mIHMgPT0gInN0cmluZyIgJiYgaS5wdXNoKGUgKyBzKTsKICAgIH0pLAogICAgaQogICk7Cn0KZnVuY3Rpb24gTnQoKSB7CiAgY29uc3QgdCA9IHRoaXMsCiAgICB7IGNsYXNzTmFtZXM6IGUsIHBhcmFtczogaSwgcnRsOiBzLCBlbDogciwgZGV2aWNlOiBuIH0gPSB0LAogICAgYSA9IEZ0KAogICAgICBbCiAgICAgICAgImluaXRpYWxpemVkIiwKICAgICAgICBpLmRpcmVjdGlvbiwKICAgICAgICB7ICJmcmVlLW1vZGUiOiB0LnBhcmFtcy5mcmVlTW9kZSAmJiBpLmZyZWVNb2RlLmVuYWJsZWQgfSwKICAgICAgICB7IGF1dG9oZWlnaHQ6IGkuYXV0b0hlaWdodCB9LAogICAgICAgIHsgcnRsOiBzIH0sCiAgICAgICAgeyBncmlkOiBpLmdyaWQgJiYgaS5ncmlkLnJvd3MgPiAxIH0sCiAgICAgICAgewogICAgICAgICAgImdyaWQtY29sdW1uIjogaS5ncmlkICYmIGkuZ3JpZC5yb3dzID4gMSAmJiBpLmdyaWQuZmlsbCA9PT0gImNvbHVtbiIsCiAgICAgICAgfSwKICAgICAgICB7IGFuZHJvaWQ6IG4uYW5kcm9pZCB9LAogICAgICAgIHsgaW9zOiBuLmlvcyB9LAogICAgICAgIHsgImNzcy1tb2RlIjogaS5jc3NNb2RlIH0sCiAgICAgICAgeyBjZW50ZXJlZDogaS5jc3NNb2RlICYmIGkuY2VudGVyZWRTbGlkZXMgfSwKICAgICAgICB7ICJ3YXRjaC1wcm9ncmVzcyI6IGkud2F0Y2hTbGlkZXNQcm9ncmVzcyB9LAogICAgICBdLAogICAgICBpLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MKICAgICk7CiAgZS5wdXNoKC4uLmEpLCByLmNsYXNzTGlzdC5hZGQoLi4uZSksIHQuZW1pdENvbnRhaW5lckNsYXNzZXMoKTsKfQpmdW5jdGlvbiBSdCgpIHsKICBjb25zdCB0ID0gdGhpcywKICAgIHsgZWw6IGUsIGNsYXNzTmFtZXM6IGkgfSA9IHQ7CiAgIWUgfHwKICAgIHR5cGVvZiBlID09ICJzdHJpbmciIHx8CiAgICAoZS5jbGFzc0xpc3QucmVtb3ZlKC4uLmkpLCB0LmVtaXRDb250YWluZXJDbGFzc2VzKCkpOwp9CnZhciAkdCA9IHsgYWRkQ2xhc3NlczogTnQsIHJlbW92ZUNsYXNzZXM6IFJ0IH07CmZ1bmN0aW9uIEh0KCkgewogIGNvbnN0IHQgPSB0aGlzLAogICAgeyBpc0xvY2tlZDogZSwgcGFyYW1zOiBpIH0gPSB0LAogICAgeyBzbGlkZXNPZmZzZXRCZWZvcmU6IHMgfSA9IGk7CiAgaWYgKHMpIHsKICAgIGNvbnN0IHIgPSB0LnNsaWRlcy5sZW5ndGggLSAxLAogICAgICBuID0gdC5zbGlkZXNHcmlkW3JdICsgdC5zbGlkZXNTaXplc0dyaWRbcl0gKyBzICogMjsKICAgIHQuaXNMb2NrZWQgPSB0LnNpemUgPiBuOwogIH0gZWxzZSB0LmlzTG9ja2VkID0gdC5zbmFwR3JpZC5sZW5ndGggPT09IDE7CiAgaS5hbGxvd1NsaWRlTmV4dCA9PT0gITAgJiYgKHQuYWxsb3dTbGlkZU5leHQgPSAhdC5pc0xvY2tlZCksCiAgICBpLmFsbG93U2xpZGVQcmV2ID09PSAhMCAmJiAodC5hbGxvd1NsaWRlUHJldiA9ICF0LmlzTG9ja2VkKSwKICAgIGUgJiYgZSAhPT0gdC5pc0xvY2tlZCAmJiAodC5pc0VuZCA9ICExKSwKICAgIGUgIT09IHQuaXNMb2NrZWQgJiYgdC5lbWl0KHQuaXNMb2NrZWQgPyAibG9jayIgOiAidW5sb2NrIik7Cn0KdmFyIGp0ID0geyBjaGVja092ZXJmbG93OiBIdCB9LAogIGllID0gewogICAgaW5pdDogITAsCiAgICBkaXJlY3Rpb246ICJob3Jpem9udGFsIiwKICAgIG9uZVdheU1vdmVtZW50OiAhMSwKICAgIHN3aXBlckVsZW1lbnROb2RlTmFtZTogIlNXSVBFUi1DT05UQUlORVIiLAogICAgdG91Y2hFdmVudHNUYXJnZXQ6ICJ3cmFwcGVyIiwKICAgIGluaXRpYWxTbGlkZTogMCwKICAgIHNwZWVkOiAzMDAsCiAgICBjc3NNb2RlOiAhMSwKICAgIHVwZGF0ZU9uV2luZG93UmVzaXplOiAhMCwKICAgIHJlc2l6ZU9ic2VydmVyOiAhMCwKICAgIG5lc3RlZDogITEsCiAgICBjcmVhdGVFbGVtZW50czogITEsCiAgICBldmVudHNQcmVmaXg6ICJzd2lwZXIiLAogICAgZW5hYmxlZDogITAsCiAgICBmb2N1c2FibGVFbGVtZW50czogImlucHV0LCBzZWxlY3QsIG9wdGlvbiwgdGV4dGFyZWEsIGJ1dHRvbiwgdmlkZW8sIGxhYmVsIiwKICAgIHdpZHRoOiBudWxsLAogICAgaGVpZ2h0OiBudWxsLAogICAgcHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uOiAhMSwKICAgIHVzZXJBZ2VudDogbnVsbCwKICAgIHVybDogbnVsbCwKICAgIGVkZ2VTd2lwZURldGVjdGlvbjogITEsCiAgICBlZGdlU3dpcGVUaHJlc2hvbGQ6IDIwLAogICAgYXV0b0hlaWdodDogITEsCiAgICBzZXRXcmFwcGVyU2l6ZTogITEsCiAgICB2aXJ0dWFsVHJhbnNsYXRlOiAhMSwKICAgIGVmZmVjdDogInNsaWRlIiwKICAgIGJyZWFrcG9pbnRzOiB2b2lkIDAsCiAgICBicmVha3BvaW50c0Jhc2U6ICJ3aW5kb3ciLAogICAgc3BhY2VCZXR3ZWVuOiAwLAogICAgc2xpZGVzUGVyVmlldzogMSwKICAgIHNsaWRlc1Blckdyb3VwOiAxLAogICAgc2xpZGVzUGVyR3JvdXBTa2lwOiAwLAogICAgc2xpZGVzUGVyR3JvdXBBdXRvOiAhMSwKICAgIGNlbnRlcmVkU2xpZGVzOiAhMSwKICAgIGNlbnRlcmVkU2xpZGVzQm91bmRzOiAhMSwKICAgIHNsaWRlc09mZnNldEJlZm9yZTogMCwKICAgIHNsaWRlc09mZnNldEFmdGVyOiAwLAogICAgbm9ybWFsaXplU2xpZGVJbmRleDogITAsCiAgICBjZW50ZXJJbnN1ZmZpY2llbnRTbGlkZXM6ICExLAogICAgd2F0Y2hPdmVyZmxvdzogITAsCiAgICByb3VuZExlbmd0aHM6ICExLAogICAgdG91Y2hSYXRpbzogMSwKICAgIHRvdWNoQW5nbGU6IDQ1LAogICAgc2ltdWxhdGVUb3VjaDogITAsCiAgICBzaG9ydFN3aXBlczogITAsCiAgICBsb25nU3dpcGVzOiAhMCwKICAgIGxvbmdTd2lwZXNSYXRpbzogMC41LAogICAgbG9uZ1N3aXBlc01zOiAzMDAsCiAgICBmb2xsb3dGaW5nZXI6ICEwLAogICAgYWxsb3dUb3VjaE1vdmU6ICEwLAogICAgdGhyZXNob2xkOiA1LAogICAgdG91Y2hNb3ZlU3RvcFByb3BhZ2F0aW9uOiAhMSwKICAgIHRvdWNoU3RhcnRQcmV2ZW50RGVmYXVsdDogITAsCiAgICB0b3VjaFN0YXJ0Rm9yY2VQcmV2ZW50RGVmYXVsdDogITEsCiAgICB0b3VjaFJlbGVhc2VPbkVkZ2VzOiAhMSwKICAgIHVuaXF1ZU5hdkVsZW1lbnRzOiAhMCwKICAgIHJlc2lzdGFuY2U6ICEwLAogICAgcmVzaXN0YW5jZVJhdGlvOiAwLjg1LAogICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogITEsCiAgICBncmFiQ3Vyc29yOiAhMSwKICAgIHByZXZlbnRDbGlja3M6ICEwLAogICAgcHJldmVudENsaWNrc1Byb3BhZ2F0aW9uOiAhMCwKICAgIHNsaWRlVG9DbGlja2VkU2xpZGU6ICExLAogICAgbG9vcDogITEsCiAgICBsb29wQWRkQmxhbmtTbGlkZXM6ICEwLAogICAgbG9vcEFkZGl0aW9uYWxTbGlkZXM6IDAsCiAgICBsb29wUHJldmVudHNTbGlkaW5nOiAhMCwKICAgIHJld2luZDogITEsCiAgICBhbGxvd1NsaWRlUHJldjogITAsCiAgICBhbGxvd1NsaWRlTmV4dDogITAsCiAgICBzd2lwZUhhbmRsZXI6IG51bGwsCiAgICBub1N3aXBpbmc6ICEwLAogICAgbm9Td2lwaW5nQ2xhc3M6ICJzd2lwZXItbm8tc3dpcGluZyIsCiAgICBub1N3aXBpbmdTZWxlY3RvcjogbnVsbCwKICAgIHBhc3NpdmVMaXN0ZW5lcnM6ICEwLAogICAgbWF4QmFja2ZhY2VIaWRkZW5TbGlkZXM6IDEwLAogICAgY29udGFpbmVyTW9kaWZpZXJDbGFzczogInN3aXBlci0iLAogICAgc2xpZGVDbGFzczogInN3aXBlci1zbGlkZSIsCiAgICBzbGlkZUJsYW5rQ2xhc3M6ICJzd2lwZXItc2xpZGUtYmxhbmsiLAogICAgc2xpZGVBY3RpdmVDbGFzczogInN3aXBlci1zbGlkZS1hY3RpdmUiLAogICAgc2xpZGVWaXNpYmxlQ2xhc3M6ICJzd2lwZXItc2xpZGUtdmlzaWJsZSIsCiAgICBzbGlkZUZ1bGx5VmlzaWJsZUNsYXNzOiAic3dpcGVyLXNsaWRlLWZ1bGx5LXZpc2libGUiLAogICAgc2xpZGVOZXh0Q2xhc3M6ICJzd2lwZXItc2xpZGUtbmV4dCIsCiAgICBzbGlkZVByZXZDbGFzczogInN3aXBlci1zbGlkZS1wcmV2IiwKICAgIHdyYXBwZXJDbGFzczogInN3aXBlci13cmFwcGVyIiwKICAgIGxhenlQcmVsb2FkZXJDbGFzczogInN3aXBlci1sYXp5LXByZWxvYWRlciIsCiAgICBsYXp5UHJlbG9hZFByZXZOZXh0OiAwLAogICAgcnVuQ2FsbGJhY2tzT25Jbml0OiAhMCwKICAgIF9lbWl0Q2xhc3NlczogITEsCiAgfTsKZnVuY3Rpb24gV3QodCwgZSkgewogIHJldHVybiBmdW5jdGlvbiAocykgewogICAgcyA9PT0gdm9pZCAwICYmIChzID0ge30pOwogICAgY29uc3QgciA9IE9iamVjdC5rZXlzKHMpWzBdLAogICAgICBuID0gc1tyXTsKICAgIGlmICh0eXBlb2YgbiAhPSAib2JqZWN0IiB8fCBuID09PSBudWxsKSB7CiAgICAgIF8oZSwgcyk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICgKICAgICAgKHRbcl0gPT09ICEwICYmICh0W3JdID0geyBlbmFibGVkOiAhMCB9KSwKICAgICAgciA9PT0gIm5hdmlnYXRpb24iICYmCiAgICAgICAgdFtyXSAmJgogICAgICAgIHRbcl0uZW5hYmxlZCAmJgogICAgICAgICF0W3JdLnByZXZFbCAmJgogICAgICAgICF0W3JdLm5leHRFbCAmJgogICAgICAgICh0W3JdLmF1dG8gPSAhMCksCiAgICAgIFsicGFnaW5hdGlvbiIsICJzY3JvbGxiYXIiXS5pbmRleE9mKHIpID49IDAgJiYKICAgICAgICB0W3JdICYmCiAgICAgICAgdFtyXS5lbmFibGVkICYmCiAgICAgICAgIXRbcl0uZWwgJiYKICAgICAgICAodFtyXS5hdXRvID0gITApLAogICAgICAhKHIgaW4gdCAmJiAiZW5hYmxlZCIgaW4gbikpCiAgICApIHsKICAgICAgXyhlLCBzKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdHlwZW9mIHRbcl0gPT0gIm9iamVjdCIgJiYgISgiZW5hYmxlZCIgaW4gdFtyXSkgJiYgKHRbcl0uZW5hYmxlZCA9ICEwKSwKICAgICAgdFtyXSB8fCAodFtyXSA9IHsgZW5hYmxlZDogITEgfSksCiAgICAgIF8oZSwgcyk7CiAgfTsKfQpjb25zdCBLID0gewogICAgZXZlbnRzRW1pdHRlcjogJGUsCiAgICB1cGRhdGU6IFplLAogICAgdHJhbnNsYXRlOiBudCwKICAgIHRyYW5zaXRpb246IGR0LAogICAgc2xpZGU6IHZ0LAogICAgbG9vcDogYnQsCiAgICBncmFiQ3Vyc29yOiBFdCwKICAgIGV2ZW50czogRHQsCiAgICBicmVha3BvaW50czogQnQsCiAgICBjaGVja092ZXJmbG93OiBqdCwKICAgIGNsYXNzZXM6ICR0LAogIH0sCiAgSiA9IHt9OwpjbGFzcyBHIHsKICBjb25zdHJ1Y3RvcigpIHsKICAgIGxldCBlLCBpOwogICAgZm9yICh2YXIgcyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBuZXcgQXJyYXkocyksIG4gPSAwOyBuIDwgczsgbisrKQogICAgICByW25dID0gYXJndW1lbnRzW25dOwogICAgci5sZW5ndGggPT09IDEgJiYKICAgIHJbMF0uY29uc3RydWN0b3IgJiYKICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyWzBdKS5zbGljZSg4LCAtMSkgPT09ICJPYmplY3QiCiAgICAgID8gKGkgPSByWzBdKQogICAgICA6IChbZSwgaV0gPSByKSwKICAgICAgaSB8fCAoaSA9IHt9KSwKICAgICAgKGkgPSBfKHt9LCBpKSksCiAgICAgIGUgJiYgIWkuZWwgJiYgKGkuZWwgPSBlKTsKICAgIGNvbnN0IGEgPSBCKCk7CiAgICBpZiAoCiAgICAgIGkuZWwgJiYKICAgICAgdHlwZW9mIGkuZWwgPT0gInN0cmluZyIgJiYKICAgICAgYS5xdWVyeVNlbGVjdG9yQWxsKGkuZWwpLmxlbmd0aCA+IDEKICAgICkgewogICAgICBjb25zdCBkID0gW107CiAgICAgIHJldHVybiAoCiAgICAgICAgYS5xdWVyeVNlbGVjdG9yQWxsKGkuZWwpLmZvckVhY2goKGYpID0+IHsKICAgICAgICAgIGNvbnN0IHAgPSBfKHt9LCBpLCB7IGVsOiBmIH0pOwogICAgICAgICAgZC5wdXNoKG5ldyBHKHApKTsKICAgICAgICB9KSwKICAgICAgICBkCiAgICAgICk7CiAgICB9CiAgICBjb25zdCBsID0gdGhpczsKICAgIChsLl9fc3dpcGVyX18gPSAhMCksCiAgICAgIChsLnN1cHBvcnQgPSBTZSgpKSwKICAgICAgKGwuZGV2aWNlID0gVGUoeyB1c2VyQWdlbnQ6IGkudXNlckFnZW50IH0pKSwKICAgICAgKGwuYnJvd3NlciA9IEZlKCkpLAogICAgICAobC5ldmVudHNMaXN0ZW5lcnMgPSB7fSksCiAgICAgIChsLmV2ZW50c0FueUxpc3RlbmVycyA9IFtdKSwKICAgICAgKGwubW9kdWxlcyA9IFsuLi5sLl9fbW9kdWxlc19fXSksCiAgICAgIGkubW9kdWxlcyAmJiBBcnJheS5pc0FycmF5KGkubW9kdWxlcykgJiYgbC5tb2R1bGVzLnB1c2goLi4uaS5tb2R1bGVzKTsKICAgIGNvbnN0IG8gPSB7fTsKICAgIGwubW9kdWxlcy5mb3JFYWNoKChkKSA9PiB7CiAgICAgIGQoewogICAgICAgIHBhcmFtczogaSwKICAgICAgICBzd2lwZXI6IGwsCiAgICAgICAgZXh0ZW5kUGFyYW1zOiBXdChpLCBvKSwKICAgICAgICBvbjogbC5vbi5iaW5kKGwpLAogICAgICAgIG9uY2U6IGwub25jZS5iaW5kKGwpLAogICAgICAgIG9mZjogbC5vZmYuYmluZChsKSwKICAgICAgICBlbWl0OiBsLmVtaXQuYmluZChsKSwKICAgICAgfSk7CiAgICB9KTsKICAgIGNvbnN0IGMgPSBfKHt9LCBpZSwgbyk7CiAgICByZXR1cm4gKAogICAgICAobC5wYXJhbXMgPSBfKHt9LCBjLCBKLCBpKSksCiAgICAgIChsLm9yaWdpbmFsUGFyYW1zID0gXyh7fSwgbC5wYXJhbXMpKSwKICAgICAgKGwucGFzc2VkUGFyYW1zID0gXyh7fSwgaSkpLAogICAgICBsLnBhcmFtcyAmJgogICAgICAgIGwucGFyYW1zLm9uICYmCiAgICAgICAgT2JqZWN0LmtleXMobC5wYXJhbXMub24pLmZvckVhY2goKGQpID0+IHsKICAgICAgICAgIGwub24oZCwgbC5wYXJhbXMub25bZF0pOwogICAgICAgIH0pLAogICAgICBsLnBhcmFtcyAmJiBsLnBhcmFtcy5vbkFueSAmJiBsLm9uQW55KGwucGFyYW1zLm9uQW55KSwKICAgICAgT2JqZWN0LmFzc2lnbihsLCB7CiAgICAgICAgZW5hYmxlZDogbC5wYXJhbXMuZW5hYmxlZCwKICAgICAgICBlbDogZSwKICAgICAgICBjbGFzc05hbWVzOiBbXSwKICAgICAgICBzbGlkZXM6IFtdLAogICAgICAgIHNsaWRlc0dyaWQ6IFtdLAogICAgICAgIHNuYXBHcmlkOiBbXSwKICAgICAgICBzbGlkZXNTaXplc0dyaWQ6IFtdLAogICAgICAgIGlzSG9yaXpvbnRhbCgpIHsKICAgICAgICAgIHJldHVybiBsLnBhcmFtcy5kaXJlY3Rpb24gPT09ICJob3Jpem9udGFsIjsKICAgICAgICB9LAogICAgICAgIGlzVmVydGljYWwoKSB7CiAgICAgICAgICByZXR1cm4gbC5wYXJhbXMuZGlyZWN0aW9uID09PSAidmVydGljYWwiOwogICAgICAgIH0sCiAgICAgICAgYWN0aXZlSW5kZXg6IDAsCiAgICAgICAgcmVhbEluZGV4OiAwLAogICAgICAgIGlzQmVnaW5uaW5nOiAhMCwKICAgICAgICBpc0VuZDogITEsCiAgICAgICAgdHJhbnNsYXRlOiAwLAogICAgICAgIHByZXZpb3VzVHJhbnNsYXRlOiAwLAogICAgICAgIHByb2dyZXNzOiAwLAogICAgICAgIHZlbG9jaXR5OiAwLAogICAgICAgIGFuaW1hdGluZzogITEsCiAgICAgICAgY3NzT3ZlcmZsb3dBZGp1c3RtZW50KCkgewogICAgICAgICAgcmV0dXJuIE1hdGgudHJ1bmModGhpcy50cmFuc2xhdGUgLyAyICoqIDIzKSAqIDIgKiogMjM7CiAgICAgICAgfSwKICAgICAgICBhbGxvd1NsaWRlTmV4dDogbC5wYXJhbXMuYWxsb3dTbGlkZU5leHQsCiAgICAgICAgYWxsb3dTbGlkZVByZXY6IGwucGFyYW1zLmFsbG93U2xpZGVQcmV2LAogICAgICAgIHRvdWNoRXZlbnRzRGF0YTogewogICAgICAgICAgaXNUb3VjaGVkOiB2b2lkIDAsCiAgICAgICAgICBpc01vdmVkOiB2b2lkIDAsCiAgICAgICAgICBhbGxvd1RvdWNoQ2FsbGJhY2tzOiB2b2lkIDAsCiAgICAgICAgICB0b3VjaFN0YXJ0VGltZTogdm9pZCAwLAogICAgICAgICAgaXNTY3JvbGxpbmc6IHZvaWQgMCwKICAgICAgICAgIGN1cnJlbnRUcmFuc2xhdGU6IHZvaWQgMCwKICAgICAgICAgIHN0YXJ0VHJhbnNsYXRlOiB2b2lkIDAsCiAgICAgICAgICBhbGxvd1RocmVzaG9sZE1vdmU6IHZvaWQgMCwKICAgICAgICAgIGZvY3VzYWJsZUVsZW1lbnRzOiBsLnBhcmFtcy5mb2N1c2FibGVFbGVtZW50cywKICAgICAgICAgIGxhc3RDbGlja1RpbWU6IDAsCiAgICAgICAgICBjbGlja1RpbWVvdXQ6IHZvaWQgMCwKICAgICAgICAgIHZlbG9jaXRpZXM6IFtdLAogICAgICAgICAgYWxsb3dNb21lbnR1bUJvdW5jZTogdm9pZCAwLAogICAgICAgICAgc3RhcnRNb3Zpbmc6IHZvaWQgMCwKICAgICAgICAgIHBvaW50ZXJJZDogbnVsbCwKICAgICAgICAgIHRvdWNoSWQ6IG51bGwsCiAgICAgICAgfSwKICAgICAgICBhbGxvd0NsaWNrOiAhMCwKICAgICAgICBhbGxvd1RvdWNoTW92ZTogbC5wYXJhbXMuYWxsb3dUb3VjaE1vdmUsCiAgICAgICAgdG91Y2hlczogeyBzdGFydFg6IDAsIHN0YXJ0WTogMCwgY3VycmVudFg6IDAsIGN1cnJlbnRZOiAwLCBkaWZmOiAwIH0sCiAgICAgICAgaW1hZ2VzVG9Mb2FkOiBbXSwKICAgICAgICBpbWFnZXNMb2FkZWQ6IDAsCiAgICAgIH0pLAogICAgICBsLmVtaXQoIl9zd2lwZXIiKSwKICAgICAgbC5wYXJhbXMuaW5pdCAmJiBsLmluaXQoKSwKICAgICAgbAogICAgKTsKICB9CiAgZ2V0RGlyZWN0aW9uTGFiZWwoZSkgewogICAgcmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsKCkKICAgICAgPyBlCiAgICAgIDogewogICAgICAgICAgd2lkdGg6ICJoZWlnaHQiLAogICAgICAgICAgIm1hcmdpbi10b3AiOiAibWFyZ2luLWxlZnQiLAogICAgICAgICAgIm1hcmdpbi1ib3R0b20gIjogIm1hcmdpbi1yaWdodCIsCiAgICAgICAgICAibWFyZ2luLWxlZnQiOiAibWFyZ2luLXRvcCIsCiAgICAgICAgICAibWFyZ2luLXJpZ2h0IjogIm1hcmdpbi1ib3R0b20iLAogICAgICAgICAgInBhZGRpbmctbGVmdCI6ICJwYWRkaW5nLXRvcCIsCiAgICAgICAgICAicGFkZGluZy1yaWdodCI6ICJwYWRkaW5nLWJvdHRvbSIsCiAgICAgICAgICBtYXJnaW5SaWdodDogIm1hcmdpbkJvdHRvbSIsCiAgICAgICAgfVtlXTsKICB9CiAgZ2V0U2xpZGVJbmRleChlKSB7CiAgICBjb25zdCB7IHNsaWRlc0VsOiBpLCBwYXJhbXM6IHMgfSA9IHRoaXMsCiAgICAgIHIgPSBEKGksIGAuJHtzLnNsaWRlQ2xhc3N9LCBzd2lwZXItc2xpZGVgKSwKICAgICAgbiA9IGRlKHJbMF0pOwogICAgcmV0dXJuIGRlKGUpIC0gbjsKICB9CiAgZ2V0U2xpZGVJbmRleEJ5RGF0YShlKSB7CiAgICByZXR1cm4gdGhpcy5nZXRTbGlkZUluZGV4KAogICAgICB0aGlzLnNsaWRlcy5maWx0ZXIoCiAgICAgICAgKGkpID0+IGkuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpICogMSA9PT0gZQogICAgICApWzBdCiAgICApOwogIH0KICByZWNhbGNTbGlkZXMoKSB7CiAgICBjb25zdCBlID0gdGhpcywKICAgICAgeyBzbGlkZXNFbDogaSwgcGFyYW1zOiBzIH0gPSBlOwogICAgZS5zbGlkZXMgPSBEKGksIGAuJHtzLnNsaWRlQ2xhc3N9LCBzd2lwZXItc2xpZGVgKTsKICB9CiAgZW5hYmxlKCkgewogICAgY29uc3QgZSA9IHRoaXM7CiAgICBlLmVuYWJsZWQgfHwKICAgICAgKChlLmVuYWJsZWQgPSAhMCksCiAgICAgIGUucGFyYW1zLmdyYWJDdXJzb3IgJiYgZS5zZXRHcmFiQ3Vyc29yKCksCiAgICAgIGUuZW1pdCgiZW5hYmxlIikpOwogIH0KICBkaXNhYmxlKCkgewogICAgY29uc3QgZSA9IHRoaXM7CiAgICBlLmVuYWJsZWQgJiYKICAgICAgKChlLmVuYWJsZWQgPSAhMSksCiAgICAgIGUucGFyYW1zLmdyYWJDdXJzb3IgJiYgZS51bnNldEdyYWJDdXJzb3IoKSwKICAgICAgZS5lbWl0KCJkaXNhYmxlIikpOwogIH0KICBzZXRQcm9ncmVzcyhlLCBpKSB7CiAgICBjb25zdCBzID0gdGhpczsKICAgIGUgPSBNYXRoLm1pbihNYXRoLm1heChlLCAwKSwgMSk7CiAgICBjb25zdCByID0gcy5taW5UcmFuc2xhdGUoKSwKICAgICAgYSA9IChzLm1heFRyYW5zbGF0ZSgpIC0gcikgKiBlICsgcjsKICAgIHMudHJhbnNsYXRlVG8oYSwgdHlwZW9mIGkgPiAidSIgPyAwIDogaSksCiAgICAgIHMudXBkYXRlQWN0aXZlSW5kZXgoKSwKICAgICAgcy51cGRhdGVTbGlkZXNDbGFzc2VzKCk7CiAgfQogIGVtaXRDb250YWluZXJDbGFzc2VzKCkgewogICAgY29uc3QgZSA9IHRoaXM7CiAgICBpZiAoIWUucGFyYW1zLl9lbWl0Q2xhc3NlcyB8fCAhZS5lbCkgcmV0dXJuOwogICAgY29uc3QgaSA9IGUuZWwuY2xhc3NOYW1lCiAgICAgIC5zcGxpdCgiICIpCiAgICAgIC5maWx0ZXIoCiAgICAgICAgKHMpID0+CiAgICAgICAgICBzLmluZGV4T2YoInN3aXBlciIpID09PSAwIHx8CiAgICAgICAgICBzLmluZGV4T2YoZS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcykgPT09IDAKICAgICAgKTsKICAgIGUuZW1pdCgiX2NvbnRhaW5lckNsYXNzZXMiLCBpLmpvaW4oIiAiKSk7CiAgfQogIGdldFNsaWRlQ2xhc3NlcyhlKSB7CiAgICBjb25zdCBpID0gdGhpczsKICAgIHJldHVybiBpLmRlc3Ryb3llZAogICAgICA/ICIiCiAgICAgIDogZS5jbGFzc05hbWUKICAgICAgICAgIC5zcGxpdCgiICIpCiAgICAgICAgICAuZmlsdGVyKAogICAgICAgICAgICAocykgPT4KICAgICAgICAgICAgICBzLmluZGV4T2YoInN3aXBlci1zbGlkZSIpID09PSAwIHx8CiAgICAgICAgICAgICAgcy5pbmRleE9mKGkucGFyYW1zLnNsaWRlQ2xhc3MpID09PSAwCiAgICAgICAgICApCiAgICAgICAgICAuam9pbigiICIpOwogIH0KICBlbWl0U2xpZGVzQ2xhc3NlcygpIHsKICAgIGNvbnN0IGUgPSB0aGlzOwogICAgaWYgKCFlLnBhcmFtcy5fZW1pdENsYXNzZXMgfHwgIWUuZWwpIHJldHVybjsKICAgIGNvbnN0IGkgPSBbXTsKICAgIGUuc2xpZGVzLmZvckVhY2goKHMpID0+IHsKICAgICAgY29uc3QgciA9IGUuZ2V0U2xpZGVDbGFzc2VzKHMpOwogICAgICBpLnB1c2goeyBzbGlkZUVsOiBzLCBjbGFzc05hbWVzOiByIH0pLCBlLmVtaXQoIl9zbGlkZUNsYXNzIiwgcywgcik7CiAgICB9KSwKICAgICAgZS5lbWl0KCJfc2xpZGVDbGFzc2VzIiwgaSk7CiAgfQogIHNsaWRlc1BlclZpZXdEeW5hbWljKGUsIGkpIHsKICAgIGUgPT09IHZvaWQgMCAmJiAoZSA9ICJjdXJyZW50IiksIGkgPT09IHZvaWQgMCAmJiAoaSA9ICExKTsKICAgIGNvbnN0IHMgPSB0aGlzLAogICAgICB7CiAgICAgICAgcGFyYW1zOiByLAogICAgICAgIHNsaWRlczogbiwKICAgICAgICBzbGlkZXNHcmlkOiBhLAogICAgICAgIHNsaWRlc1NpemVzR3JpZDogbCwKICAgICAgICBzaXplOiBvLAogICAgICAgIGFjdGl2ZUluZGV4OiBjLAogICAgICB9ID0gczsKICAgIGxldCBkID0gMTsKICAgIGlmICh0eXBlb2Ygci5zbGlkZXNQZXJWaWV3ID09ICJudW1iZXIiKSByZXR1cm4gci5zbGlkZXNQZXJWaWV3OwogICAgaWYgKHIuY2VudGVyZWRTbGlkZXMpIHsKICAgICAgbGV0IGYgPSBuW2NdID8gTWF0aC5jZWlsKG5bY10uc3dpcGVyU2xpZGVTaXplKSA6IDAsCiAgICAgICAgcDsKICAgICAgZm9yIChsZXQgdSA9IGMgKyAxOyB1IDwgbi5sZW5ndGg7IHUgKz0gMSkKICAgICAgICBuW3VdICYmCiAgICAgICAgICAhcCAmJgogICAgICAgICAgKChmICs9IE1hdGguY2VpbChuW3VdLnN3aXBlclNsaWRlU2l6ZSkpLCAoZCArPSAxKSwgZiA+IG8gJiYgKHAgPSAhMCkpOwogICAgICBmb3IgKGxldCB1ID0gYyAtIDE7IHUgPj0gMDsgdSAtPSAxKQogICAgICAgIG5bdV0gJiYKICAgICAgICAgICFwICYmCiAgICAgICAgICAoKGYgKz0gblt1XS5zd2lwZXJTbGlkZVNpemUpLCAoZCArPSAxKSwgZiA+IG8gJiYgKHAgPSAhMCkpOwogICAgfSBlbHNlIGlmIChlID09PSAiY3VycmVudCIpCiAgICAgIGZvciAobGV0IGYgPSBjICsgMTsgZiA8IG4ubGVuZ3RoOyBmICs9IDEpCiAgICAgICAgKGkgPyBhW2ZdICsgbFtmXSAtIGFbY10gPCBvIDogYVtmXSAtIGFbY10gPCBvKSAmJiAoZCArPSAxKTsKICAgIGVsc2UgZm9yIChsZXQgZiA9IGMgLSAxOyBmID49IDA7IGYgLT0gMSkgYVtjXSAtIGFbZl0gPCBvICYmIChkICs9IDEpOwogICAgcmV0dXJuIGQ7CiAgfQogIHVwZGF0ZSgpIHsKICAgIGNvbnN0IGUgPSB0aGlzOwogICAgaWYgKCFlIHx8IGUuZGVzdHJveWVkKSByZXR1cm47CiAgICBjb25zdCB7IHNuYXBHcmlkOiBpLCBwYXJhbXM6IHMgfSA9IGU7CiAgICBzLmJyZWFrcG9pbnRzICYmIGUuc2V0QnJlYWtwb2ludCgpLAogICAgICBbLi4uZS5lbC5xdWVyeVNlbGVjdG9yQWxsKCdbbG9hZGluZz0ibGF6eSJdJyldLmZvckVhY2goKGEpID0+IHsKICAgICAgICBhLmNvbXBsZXRlICYmICQoZSwgYSk7CiAgICAgIH0pLAogICAgICBlLnVwZGF0ZVNpemUoKSwKICAgICAgZS51cGRhdGVTbGlkZXMoKSwKICAgICAgZS51cGRhdGVQcm9ncmVzcygpLAogICAgICBlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKTsKICAgIGZ1bmN0aW9uIHIoKSB7CiAgICAgIGNvbnN0IGEgPSBlLnJ0bFRyYW5zbGF0ZSA/IGUudHJhbnNsYXRlICogLTEgOiBlLnRyYW5zbGF0ZSwKICAgICAgICBsID0gTWF0aC5taW4oTWF0aC5tYXgoYSwgZS5tYXhUcmFuc2xhdGUoKSksIGUubWluVHJhbnNsYXRlKCkpOwogICAgICBlLnNldFRyYW5zbGF0ZShsKSwgZS51cGRhdGVBY3RpdmVJbmRleCgpLCBlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKTsKICAgIH0KICAgIGxldCBuOwogICAgaWYgKHMuZnJlZU1vZGUgJiYgcy5mcmVlTW9kZS5lbmFibGVkICYmICFzLmNzc01vZGUpCiAgICAgIHIoKSwgcy5hdXRvSGVpZ2h0ICYmIGUudXBkYXRlQXV0b0hlaWdodCgpOwogICAgZWxzZSB7CiAgICAgIGlmICgKICAgICAgICAocy5zbGlkZXNQZXJWaWV3ID09PSAiYXV0byIgfHwgcy5zbGlkZXNQZXJWaWV3ID4gMSkgJiYKICAgICAgICBlLmlzRW5kICYmCiAgICAgICAgIXMuY2VudGVyZWRTbGlkZXMKICAgICAgKSB7CiAgICAgICAgY29uc3QgYSA9IGUudmlydHVhbCAmJiBzLnZpcnR1YWwuZW5hYmxlZCA/IGUudmlydHVhbC5zbGlkZXMgOiBlLnNsaWRlczsKICAgICAgICBuID0gZS5zbGlkZVRvKGEubGVuZ3RoIC0gMSwgMCwgITEsICEwKTsKICAgICAgfSBlbHNlIG4gPSBlLnNsaWRlVG8oZS5hY3RpdmVJbmRleCwgMCwgITEsICEwKTsKICAgICAgbiB8fCByKCk7CiAgICB9CiAgICBzLndhdGNoT3ZlcmZsb3cgJiYgaSAhPT0gZS5zbmFwR3JpZCAmJiBlLmNoZWNrT3ZlcmZsb3coKSwgZS5lbWl0KCJ1cGRhdGUiKTsKICB9CiAgY2hhbmdlRGlyZWN0aW9uKGUsIGkpIHsKICAgIGkgPT09IHZvaWQgMCAmJiAoaSA9ICEwKTsKICAgIGNvbnN0IHMgPSB0aGlzLAogICAgICByID0gcy5wYXJhbXMuZGlyZWN0aW9uOwogICAgcmV0dXJuICgKICAgICAgZSB8fCAoZSA9IHIgPT09ICJob3Jpem9udGFsIiA/ICJ2ZXJ0aWNhbCIgOiAiaG9yaXpvbnRhbCIpLAogICAgICBlID09PSByIHx8CiAgICAgICAgKGUgIT09ICJob3Jpem9udGFsIiAmJiBlICE9PSAidmVydGljYWwiKSB8fAogICAgICAgIChzLmVsLmNsYXNzTGlzdC5yZW1vdmUoYCR7cy5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc30ke3J9YCksCiAgICAgICAgcy5lbC5jbGFzc0xpc3QuYWRkKGAke3MucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9JHtlfWApLAogICAgICAgIHMuZW1pdENvbnRhaW5lckNsYXNzZXMoKSwKICAgICAgICAocy5wYXJhbXMuZGlyZWN0aW9uID0gZSksCiAgICAgICAgcy5zbGlkZXMuZm9yRWFjaCgobikgPT4gewogICAgICAgICAgZSA9PT0gInZlcnRpY2FsIiA/IChuLnN0eWxlLndpZHRoID0gIiIpIDogKG4uc3R5bGUuaGVpZ2h0ID0gIiIpOwogICAgICAgIH0pLAogICAgICAgIHMuZW1pdCgiY2hhbmdlRGlyZWN0aW9uIiksCiAgICAgICAgaSAmJiBzLnVwZGF0ZSgpKSwKICAgICAgcwogICAgKTsKICB9CiAgY2hhbmdlTGFuZ3VhZ2VEaXJlY3Rpb24oZSkgewogICAgY29uc3QgaSA9IHRoaXM7CiAgICAoaS5ydGwgJiYgZSA9PT0gInJ0bCIpIHx8CiAgICAgICghaS5ydGwgJiYgZSA9PT0gImx0ciIpIHx8CiAgICAgICgoaS5ydGwgPSBlID09PSAicnRsIiksCiAgICAgIChpLnJ0bFRyYW5zbGF0ZSA9IGkucGFyYW1zLmRpcmVjdGlvbiA9PT0gImhvcml6b250YWwiICYmIGkucnRsKSwKICAgICAgaS5ydGwKICAgICAgICA/IChpLmVsLmNsYXNzTGlzdC5hZGQoYCR7aS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ydGxgKSwKICAgICAgICAgIChpLmVsLmRpciA9ICJydGwiKSkKICAgICAgICA6IChpLmVsLmNsYXNzTGlzdC5yZW1vdmUoYCR7aS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ydGxgKSwKICAgICAgICAgIChpLmVsLmRpciA9ICJsdHIiKSksCiAgICAgIGkudXBkYXRlKCkpOwogIH0KICBtb3VudChlKSB7CiAgICBjb25zdCBpID0gdGhpczsKICAgIGlmIChpLm1vdW50ZWQpIHJldHVybiAhMDsKICAgIGxldCBzID0gZSB8fCBpLnBhcmFtcy5lbDsKICAgIGlmICgodHlwZW9mIHMgPT0gInN0cmluZyIgJiYgKHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHMpKSwgIXMpKQogICAgICByZXR1cm4gITE7CiAgICAocy5zd2lwZXIgPSBpKSwKICAgICAgcy5wYXJlbnROb2RlICYmCiAgICAgICAgcy5wYXJlbnROb2RlLmhvc3QgJiYKICAgICAgICBzLnBhcmVudE5vZGUuaG9zdC5ub2RlTmFtZSA9PT0KICAgICAgICAgIGkucGFyYW1zLnN3aXBlckVsZW1lbnROb2RlTmFtZS50b1VwcGVyQ2FzZSgpICYmCiAgICAgICAgKGkuaXNFbGVtZW50ID0gITApOwogICAgY29uc3QgciA9ICgpID0+CiAgICAgIGAuJHsoaS5wYXJhbXMud3JhcHBlckNsYXNzIHx8ICIiKS50cmltKCkuc3BsaXQoIiAiKS5qb2luKCIuIil9YDsKICAgIGxldCBhID0KICAgICAgcyAmJiBzLnNoYWRvd1Jvb3QgJiYgcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IKICAgICAgICA/IHMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKHIoKSkKICAgICAgICA6IEQocywgcigpKVswXTsKICAgIHJldHVybiAoCiAgICAgICFhICYmCiAgICAgICAgaS5wYXJhbXMuY3JlYXRlRWxlbWVudHMgJiYKICAgICAgICAoKGEgPSBlZSgiZGl2IiwgaS5wYXJhbXMud3JhcHBlckNsYXNzKSksCiAgICAgICAgcy5hcHBlbmQoYSksCiAgICAgICAgRChzLCBgLiR7aS5wYXJhbXMuc2xpZGVDbGFzc31gKS5mb3JFYWNoKChsKSA9PiB7CiAgICAgICAgICBhLmFwcGVuZChsKTsKICAgICAgICB9KSksCiAgICAgIE9iamVjdC5hc3NpZ24oaSwgewogICAgICAgIGVsOiBzLAogICAgICAgIHdyYXBwZXJFbDogYSwKICAgICAgICBzbGlkZXNFbDoKICAgICAgICAgIGkuaXNFbGVtZW50ICYmICFzLnBhcmVudE5vZGUuaG9zdC5zbGlkZVNsb3RzID8gcy5wYXJlbnROb2RlLmhvc3QgOiBhLAogICAgICAgIGhvc3RFbDogaS5pc0VsZW1lbnQgPyBzLnBhcmVudE5vZGUuaG9zdCA6IHMsCiAgICAgICAgbW91bnRlZDogITAsCiAgICAgICAgcnRsOiBzLmRpci50b0xvd2VyQ2FzZSgpID09PSAicnRsIiB8fCBrKHMsICJkaXJlY3Rpb24iKSA9PT0gInJ0bCIsCiAgICAgICAgcnRsVHJhbnNsYXRlOgogICAgICAgICAgaS5wYXJhbXMuZGlyZWN0aW9uID09PSAiaG9yaXpvbnRhbCIgJiYKICAgICAgICAgIChzLmRpci50b0xvd2VyQ2FzZSgpID09PSAicnRsIiB8fCBrKHMsICJkaXJlY3Rpb24iKSA9PT0gInJ0bCIpLAogICAgICAgIHdyb25nUlRMOiBrKGEsICJkaXNwbGF5IikgPT09ICItd2Via2l0LWJveCIsCiAgICAgIH0pLAogICAgICAhMAogICAgKTsKICB9CiAgaW5pdChlKSB7CiAgICBjb25zdCBpID0gdGhpczsKICAgIGlmIChpLmluaXRpYWxpemVkIHx8IGkubW91bnQoZSkgPT09ICExKSByZXR1cm4gaTsKICAgIGkuZW1pdCgiYmVmb3JlSW5pdCIpLAogICAgICBpLnBhcmFtcy5icmVha3BvaW50cyAmJiBpLnNldEJyZWFrcG9pbnQoKSwKICAgICAgaS5hZGRDbGFzc2VzKCksCiAgICAgIGkudXBkYXRlU2l6ZSgpLAogICAgICBpLnVwZGF0ZVNsaWRlcygpLAogICAgICBpLnBhcmFtcy53YXRjaE92ZXJmbG93ICYmIGkuY2hlY2tPdmVyZmxvdygpLAogICAgICBpLnBhcmFtcy5ncmFiQ3Vyc29yICYmIGkuZW5hYmxlZCAmJiBpLnNldEdyYWJDdXJzb3IoKSwKICAgICAgaS5wYXJhbXMubG9vcCAmJiBpLnZpcnR1YWwgJiYgaS5wYXJhbXMudmlydHVhbC5lbmFibGVkCiAgICAgICAgPyBpLnNsaWRlVG8oCiAgICAgICAgICAgIGkucGFyYW1zLmluaXRpYWxTbGlkZSArIGkudmlydHVhbC5zbGlkZXNCZWZvcmUsCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIGkucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwKICAgICAgICAgICAgITEsCiAgICAgICAgICAgICEwCiAgICAgICAgICApCiAgICAgICAgOiBpLnNsaWRlVG8oCiAgICAgICAgICAgIGkucGFyYW1zLmluaXRpYWxTbGlkZSwKICAgICAgICAgICAgMCwKICAgICAgICAgICAgaS5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0LAogICAgICAgICAgICAhMSwKICAgICAgICAgICAgITAKICAgICAgICAgICksCiAgICAgIGkucGFyYW1zLmxvb3AgJiYgaS5sb29wQ3JlYXRlKCksCiAgICAgIGkuYXR0YWNoRXZlbnRzKCk7CiAgICBjb25zdCByID0gWy4uLmkuZWwucXVlcnlTZWxlY3RvckFsbCgnW2xvYWRpbmc9ImxhenkiXScpXTsKICAgIHJldHVybiAoCiAgICAgIGkuaXNFbGVtZW50ICYmIHIucHVzaCguLi5pLmhvc3RFbC5xdWVyeVNlbGVjdG9yQWxsKCdbbG9hZGluZz0ibGF6eSJdJykpLAogICAgICByLmZvckVhY2goKG4pID0+IHsKICAgICAgICBuLmNvbXBsZXRlCiAgICAgICAgICA/ICQoaSwgbikKICAgICAgICAgIDogbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKGEpID0+IHsKICAgICAgICAgICAgICAkKGksIGEudGFyZ2V0KTsKICAgICAgICAgICAgfSk7CiAgICAgIH0pLAogICAgICB0ZShpKSwKICAgICAgKGkuaW5pdGlhbGl6ZWQgPSAhMCksCiAgICAgIHRlKGkpLAogICAgICBpLmVtaXQoImluaXQiKSwKICAgICAgaS5lbWl0KCJhZnRlckluaXQiKSwKICAgICAgaQogICAgKTsKICB9CiAgZGVzdHJveShlLCBpKSB7CiAgICBlID09PSB2b2lkIDAgJiYgKGUgPSAhMCksIGkgPT09IHZvaWQgMCAmJiAoaSA9ICEwKTsKICAgIGNvbnN0IHMgPSB0aGlzLAogICAgICB7IHBhcmFtczogciwgZWw6IG4sIHdyYXBwZXJFbDogYSwgc2xpZGVzOiBsIH0gPSBzOwogICAgcmV0dXJuICgKICAgICAgdHlwZW9mIHMucGFyYW1zID4gInUiIHx8CiAgICAgICAgcy5kZXN0cm95ZWQgfHwKICAgICAgICAocy5lbWl0KCJiZWZvcmVEZXN0cm95IiksCiAgICAgICAgKHMuaW5pdGlhbGl6ZWQgPSAhMSksCiAgICAgICAgcy5kZXRhY2hFdmVudHMoKSwKICAgICAgICByLmxvb3AgJiYgcy5sb29wRGVzdHJveSgpLAogICAgICAgIGkgJiYKICAgICAgICAgIChzLnJlbW92ZUNsYXNzZXMoKSwKICAgICAgICAgIG4gJiYgdHlwZW9mIG4gIT0gInN0cmluZyIgJiYgbi5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksCiAgICAgICAgICBhICYmIGEucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpLAogICAgICAgICAgbCAmJgogICAgICAgICAgICBsLmxlbmd0aCAmJgogICAgICAgICAgICBsLmZvckVhY2goKG8pID0+IHsKICAgICAgICAgICAgICBvLmNsYXNzTGlzdC5yZW1vdmUoCiAgICAgICAgICAgICAgICByLnNsaWRlVmlzaWJsZUNsYXNzLAogICAgICAgICAgICAgICAgci5zbGlkZUZ1bGx5VmlzaWJsZUNsYXNzLAogICAgICAgICAgICAgICAgci5zbGlkZUFjdGl2ZUNsYXNzLAogICAgICAgICAgICAgICAgci5zbGlkZU5leHRDbGFzcywKICAgICAgICAgICAgICAgIHIuc2xpZGVQcmV2Q2xhc3MKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgby5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksCiAgICAgICAgICAgICAgICBvLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTsKICAgICAgICAgICAgfSkpLAogICAgICAgIHMuZW1pdCgiZGVzdHJveSIpLAogICAgICAgIE9iamVjdC5rZXlzKHMuZXZlbnRzTGlzdGVuZXJzKS5mb3JFYWNoKChvKSA9PiB7CiAgICAgICAgICBzLm9mZihvKTsKICAgICAgICB9KSwKICAgICAgICBlICE9PSAhMSAmJgogICAgICAgICAgKHMuZWwgJiYgdHlwZW9mIHMuZWwgIT0gInN0cmluZyIgJiYgKHMuZWwuc3dpcGVyID0gbnVsbCksIEllKHMpKSwKICAgICAgICAocy5kZXN0cm95ZWQgPSAhMCkpLAogICAgICBudWxsCiAgICApOwogIH0KICBzdGF0aWMgZXh0ZW5kRGVmYXVsdHMoZSkgewogICAgXyhKLCBlKTsKICB9CiAgc3RhdGljIGdldCBleHRlbmRlZERlZmF1bHRzKCkgewogICAgcmV0dXJuIEo7CiAgfQogIHN0YXRpYyBnZXQgZGVmYXVsdHMoKSB7CiAgICByZXR1cm4gaWU7CiAgfQogIHN0YXRpYyBpbnN0YWxsTW9kdWxlKGUpIHsKICAgIEcucHJvdG90eXBlLl9fbW9kdWxlc19fIHx8IChHLnByb3RvdHlwZS5fX21vZHVsZXNfXyA9IFtdKTsKICAgIGNvbnN0IGkgPSBHLnByb3RvdHlwZS5fX21vZHVsZXNfXzsKICAgIHR5cGVvZiBlID09ICJmdW5jdGlvbiIgJiYgaS5pbmRleE9mKGUpIDwgMCAmJiBpLnB1c2goZSk7CiAgfQogIHN0YXRpYyB1c2UoZSkgewogICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZSkKICAgICAgPyAoZS5mb3JFYWNoKChpKSA9PiBHLmluc3RhbGxNb2R1bGUoaSkpLCBHKQogICAgICA6IChHLmluc3RhbGxNb2R1bGUoZSksIEcpOwogIH0KfQpPYmplY3Qua2V5cyhLKS5mb3JFYWNoKCh0KSA9PiB7CiAgT2JqZWN0LmtleXMoS1t0XSkuZm9yRWFjaCgoZSkgPT4gewogICAgRy5wcm90b3R5cGVbZV0gPSBLW3RdW2VdOwogIH0pOwp9KTsKRy51c2UoW05lLCBSZV0pOwpjb25zdCBZdCA9IFsKICAiZXZlbnRzUHJlZml4IiwKICAiaW5qZWN0U3R5bGVzIiwKICAiaW5qZWN0U3R5bGVzVXJscyIsCiAgIm1vZHVsZXMiLAogICJpbml0IiwKICAiX2RpcmVjdGlvbiIsCiAgIm9uZVdheU1vdmVtZW50IiwKICAic3dpcGVyRWxlbWVudE5vZGVOYW1lIiwKICAidG91Y2hFdmVudHNUYXJnZXQiLAogICJpbml0aWFsU2xpZGUiLAogICJfc3BlZWQiLAogICJjc3NNb2RlIiwKICAidXBkYXRlT25XaW5kb3dSZXNpemUiLAogICJyZXNpemVPYnNlcnZlciIsCiAgIm5lc3RlZCIsCiAgImZvY3VzYWJsZUVsZW1lbnRzIiwKICAiX2VuYWJsZWQiLAogICJfd2lkdGgiLAogICJfaGVpZ2h0IiwKICAicHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uIiwKICAidXNlckFnZW50IiwKICAidXJsIiwKICAiX2VkZ2VTd2lwZURldGVjdGlvbiIsCiAgIl9lZGdlU3dpcGVUaHJlc2hvbGQiLAogICJfZnJlZU1vZGUiLAogICJfYXV0b0hlaWdodCIsCiAgInNldFdyYXBwZXJTaXplIiwKICAidmlydHVhbFRyYW5zbGF0ZSIsCiAgIl9lZmZlY3QiLAogICJicmVha3BvaW50cyIsCiAgImJyZWFrcG9pbnRzQmFzZSIsCiAgIl9zcGFjZUJldHdlZW4iLAogICJfc2xpZGVzUGVyVmlldyIsCiAgIm1heEJhY2tmYWNlSGlkZGVuU2xpZGVzIiwKICAiX2dyaWQiLAogICJfc2xpZGVzUGVyR3JvdXAiLAogICJfc2xpZGVzUGVyR3JvdXBTa2lwIiwKICAiX3NsaWRlc1Blckdyb3VwQXV0byIsCiAgIl9jZW50ZXJlZFNsaWRlcyIsCiAgIl9jZW50ZXJlZFNsaWRlc0JvdW5kcyIsCiAgIl9zbGlkZXNPZmZzZXRCZWZvcmUiLAogICJfc2xpZGVzT2Zmc2V0QWZ0ZXIiLAogICJub3JtYWxpemVTbGlkZUluZGV4IiwKICAiX2NlbnRlckluc3VmZmljaWVudFNsaWRlcyIsCiAgIl93YXRjaE92ZXJmbG93IiwKICAicm91bmRMZW5ndGhzIiwKICAidG91Y2hSYXRpbyIsCiAgInRvdWNoQW5nbGUiLAogICJzaW11bGF0ZVRvdWNoIiwKICAiX3Nob3J0U3dpcGVzIiwKICAiX2xvbmdTd2lwZXMiLAogICJsb25nU3dpcGVzUmF0aW8iLAogICJsb25nU3dpcGVzTXMiLAogICJfZm9sbG93RmluZ2VyIiwKICAiYWxsb3dUb3VjaE1vdmUiLAogICJfdGhyZXNob2xkIiwKICAidG91Y2hNb3ZlU3RvcFByb3BhZ2F0aW9uIiwKICAidG91Y2hTdGFydFByZXZlbnREZWZhdWx0IiwKICAidG91Y2hTdGFydEZvcmNlUHJldmVudERlZmF1bHQiLAogICJ0b3VjaFJlbGVhc2VPbkVkZ2VzIiwKICAidW5pcXVlTmF2RWxlbWVudHMiLAogICJfcmVzaXN0YW5jZSIsCiAgIl9yZXNpc3RhbmNlUmF0aW8iLAogICJfd2F0Y2hTbGlkZXNQcm9ncmVzcyIsCiAgIl9ncmFiQ3Vyc29yIiwKICAicHJldmVudENsaWNrcyIsCiAgInByZXZlbnRDbGlja3NQcm9wYWdhdGlvbiIsCiAgIl9zbGlkZVRvQ2xpY2tlZFNsaWRlIiwKICAiX2xvb3AiLAogICJsb29wQWRkaXRpb25hbFNsaWRlcyIsCiAgImxvb3BBZGRCbGFua1NsaWRlcyIsCiAgImxvb3BQcmV2ZW50c1NsaWRpbmciLAogICJfcmV3aW5kIiwKICAiX2FsbG93U2xpZGVQcmV2IiwKICAiX2FsbG93U2xpZGVOZXh0IiwKICAiX3N3aXBlSGFuZGxlciIsCiAgIl9ub1N3aXBpbmciLAogICJub1N3aXBpbmdDbGFzcyIsCiAgIm5vU3dpcGluZ1NlbGVjdG9yIiwKICAicGFzc2l2ZUxpc3RlbmVycyIsCiAgImNvbnRhaW5lck1vZGlmaWVyQ2xhc3MiLAogICJzbGlkZUNsYXNzIiwKICAic2xpZGVBY3RpdmVDbGFzcyIsCiAgInNsaWRlVmlzaWJsZUNsYXNzIiwKICAic2xpZGVGdWxseVZpc2libGVDbGFzcyIsCiAgInNsaWRlTmV4dENsYXNzIiwKICAic2xpZGVQcmV2Q2xhc3MiLAogICJzbGlkZUJsYW5rQ2xhc3MiLAogICJ3cmFwcGVyQ2xhc3MiLAogICJsYXp5UHJlbG9hZGVyQ2xhc3MiLAogICJsYXp5UHJlbG9hZFByZXZOZXh0IiwKICAicnVuQ2FsbGJhY2tzT25Jbml0IiwKICAib2JzZXJ2ZXIiLAogICJvYnNlcnZlUGFyZW50cyIsCiAgIm9ic2VydmVTbGlkZUNoaWxkcmVuIiwKICAiYTExeSIsCiAgIl9hdXRvcGxheSIsCiAgIl9jb250cm9sbGVyIiwKICAiY292ZXJmbG93RWZmZWN0IiwKICAiY3ViZUVmZmVjdCIsCiAgImZhZGVFZmZlY3QiLAogICJmbGlwRWZmZWN0IiwKICAiY3JlYXRpdmVFZmZlY3QiLAogICJjYXJkc0VmZmVjdCIsCiAgImhhc2hOYXZpZ2F0aW9uIiwKICAiaGlzdG9yeSIsCiAgImtleWJvYXJkIiwKICAibW91c2V3aGVlbCIsCiAgIl9uYXZpZ2F0aW9uIiwKICAiX3BhZ2luYXRpb24iLAogICJwYXJhbGxheCIsCiAgIl9zY3JvbGxiYXIiLAogICJfdGh1bWJzIiwKICAidmlydHVhbCIsCiAgInpvb20iLAogICJjb250cm9sIiwKXTsKZnVuY3Rpb24gRih0KSB7CiAgcmV0dXJuICgKICAgIHR5cGVvZiB0ID09ICJvYmplY3QiICYmCiAgICB0ICE9PSBudWxsICYmCiAgICB0LmNvbnN0cnVjdG9yICYmCiAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwgLTEpID09PSAiT2JqZWN0IiAmJgogICAgIXQuX19zd2lwZXJfXwogICk7Cn0KZnVuY3Rpb24gc2UodCwgZSkgewogIGNvbnN0IGkgPSBbIl9fcHJvdG9fXyIsICJjb25zdHJ1Y3RvciIsICJwcm90b3R5cGUiXTsKICBPYmplY3Qua2V5cyhlKQogICAgLmZpbHRlcigocykgPT4gaS5pbmRleE9mKHMpIDwgMCkKICAgIC5mb3JFYWNoKChzKSA9PiB7CiAgICAgIHR5cGVvZiB0W3NdID4gInUiCiAgICAgICAgPyAodFtzXSA9IGVbc10pCiAgICAgICAgOiBGKGVbc10pICYmIEYodFtzXSkgJiYgT2JqZWN0LmtleXMoZVtzXSkubGVuZ3RoID4gMAogICAgICAgID8gZVtzXS5fX3N3aXBlcl9fCiAgICAgICAgICA/ICh0W3NdID0gZVtzXSkKICAgICAgICAgIDogc2UodFtzXSwgZVtzXSkKICAgICAgICA6ICh0W3NdID0gZVtzXSk7CiAgICB9KTsKfQpmdW5jdGlvbiBRdCh0KSB7CiAgcmV0dXJuICgKICAgIHQgPT09IHZvaWQgMCAmJiAodCA9IHt9KSwKICAgIHQubmF2aWdhdGlvbiAmJgogICAgICB0eXBlb2YgdC5uYXZpZ2F0aW9uLm5leHRFbCA+ICJ1IiAmJgogICAgICB0eXBlb2YgdC5uYXZpZ2F0aW9uLnByZXZFbCA+ICJ1IgogICk7Cn0KZnVuY3Rpb24gWnQodCkgewogIHJldHVybiB0ID09PSB2b2lkIDAgJiYgKHQgPSB7fSksIHQucGFnaW5hdGlvbiAmJiB0eXBlb2YgdC5wYWdpbmF0aW9uLmVsID4gInUiOwp9CmZ1bmN0aW9uIGVpKHQpIHsKICByZXR1cm4gdCA9PT0gdm9pZCAwICYmICh0ID0ge30pLCB0LnNjcm9sbGJhciAmJiB0eXBlb2YgdC5zY3JvbGxiYXIuZWwgPiAidSI7Cn0KZnVuY3Rpb24gUSh0KSB7CiAgcmV0dXJuICgKICAgIHQgPT09IHZvaWQgMCAmJiAodCA9ICIiKSwKICAgIHQucmVwbGFjZSgvLVthLXpdL2csIChlKSA9PiBlLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgiLSIsICIiKSkKICApOwp9CmZ1bmN0aW9uIHRpKHQpIHsKICBsZXQgewogICAgc3dpcGVyOiBlLAogICAgc2xpZGVzOiBpLAogICAgcGFzc2VkUGFyYW1zOiBzLAogICAgY2hhbmdlZFBhcmFtczogciwKICAgIG5leHRFbDogbiwKICAgIHByZXZFbDogYSwKICAgIHNjcm9sbGJhckVsOiBsLAogICAgcGFnaW5hdGlvbkVsOiBvLAogIH0gPSB0OwogIGNvbnN0IGMgPSByLmZpbHRlcigKICAgICAgKEUpID0+IEUgIT09ICJjaGlsZHJlbiIgJiYgRSAhPT0gImRpcmVjdGlvbiIgJiYgRSAhPT0gIndyYXBwZXJDbGFzcyIKICAgICksCiAgICB7CiAgICAgIHBhcmFtczogZCwKICAgICAgcGFnaW5hdGlvbjogZiwKICAgICAgbmF2aWdhdGlvbjogcCwKICAgICAgc2Nyb2xsYmFyOiB1LAogICAgICB2aXJ0dWFsOiBoLAogICAgICB0aHVtYnM6IG0sCiAgICB9ID0gZTsKICBsZXQgVCwgZywgYiwgdywgeSwgUywgTSwgTzsKICByLmluY2x1ZGVzKCJ0aHVtYnMiKSAmJgogICAgcy50aHVtYnMgJiYKICAgIHMudGh1bWJzLnN3aXBlciAmJgogICAgIXMudGh1bWJzLnN3aXBlci5kZXN0cm95ZWQgJiYKICAgIGQudGh1bWJzICYmCiAgICAoIWQudGh1bWJzLnN3aXBlciB8fCBkLnRodW1icy5zd2lwZXIuZGVzdHJveWVkKSAmJgogICAgKFQgPSAhMCksCiAgICByLmluY2x1ZGVzKCJjb250cm9sbGVyIikgJiYKICAgICAgcy5jb250cm9sbGVyICYmCiAgICAgIHMuY29udHJvbGxlci5jb250cm9sICYmCiAgICAgIGQuY29udHJvbGxlciAmJgogICAgICAhZC5jb250cm9sbGVyLmNvbnRyb2wgJiYKICAgICAgKGcgPSAhMCksCiAgICByLmluY2x1ZGVzKCJwYWdpbmF0aW9uIikgJiYKICAgICAgcy5wYWdpbmF0aW9uICYmCiAgICAgIChzLnBhZ2luYXRpb24uZWwgfHwgbykgJiYKICAgICAgKGQucGFnaW5hdGlvbiB8fCBkLnBhZ2luYXRpb24gPT09ICExKSAmJgogICAgICBmICYmCiAgICAgICFmLmVsICYmCiAgICAgIChiID0gITApLAogICAgci5pbmNsdWRlcygic2Nyb2xsYmFyIikgJiYKICAgICAgcy5zY3JvbGxiYXIgJiYKICAgICAgKHMuc2Nyb2xsYmFyLmVsIHx8IGwpICYmCiAgICAgIChkLnNjcm9sbGJhciB8fCBkLnNjcm9sbGJhciA9PT0gITEpICYmCiAgICAgIHUgJiYKICAgICAgIXUuZWwgJiYKICAgICAgKHcgPSAhMCksCiAgICByLmluY2x1ZGVzKCJuYXZpZ2F0aW9uIikgJiYKICAgICAgcy5uYXZpZ2F0aW9uICYmCiAgICAgIChzLm5hdmlnYXRpb24ucHJldkVsIHx8IGEpICYmCiAgICAgIChzLm5hdmlnYXRpb24ubmV4dEVsIHx8IG4pICYmCiAgICAgIChkLm5hdmlnYXRpb24gfHwgZC5uYXZpZ2F0aW9uID09PSAhMSkgJiYKICAgICAgcCAmJgogICAgICAhcC5wcmV2RWwgJiYKICAgICAgIXAubmV4dEVsICYmCiAgICAgICh5ID0gITApOwogIGNvbnN0IEkgPSAoRSkgPT4gewogICAgZVtFXSAmJgogICAgICAoZVtFXS5kZXN0cm95KCksCiAgICAgIEUgPT09ICJuYXZpZ2F0aW9uIgogICAgICAgID8gKGUuaXNFbGVtZW50ICYmIChlW0VdLnByZXZFbC5yZW1vdmUoKSwgZVtFXS5uZXh0RWwucmVtb3ZlKCkpLAogICAgICAgICAgKGRbRV0ucHJldkVsID0gdm9pZCAwKSwKICAgICAgICAgIChkW0VdLm5leHRFbCA9IHZvaWQgMCksCiAgICAgICAgICAoZVtFXS5wcmV2RWwgPSB2b2lkIDApLAogICAgICAgICAgKGVbRV0ubmV4dEVsID0gdm9pZCAwKSkKICAgICAgICA6IChlLmlzRWxlbWVudCAmJiBlW0VdLmVsLnJlbW92ZSgpLAogICAgICAgICAgKGRbRV0uZWwgPSB2b2lkIDApLAogICAgICAgICAgKGVbRV0uZWwgPSB2b2lkIDApKSk7CiAgfTsKICByLmluY2x1ZGVzKCJsb29wIikgJiYKICAgIGUuaXNFbGVtZW50ICYmCiAgICAoZC5sb29wICYmICFzLmxvb3AgPyAoUyA9ICEwKSA6ICFkLmxvb3AgJiYgcy5sb29wID8gKE0gPSAhMCkgOiAoTyA9ICEwKSksCiAgICBjLmZvckVhY2goKEUpID0+IHsKICAgICAgaWYgKEYoZFtFXSkgJiYgRihzW0VdKSkKICAgICAgICBPYmplY3QuYXNzaWduKGRbRV0sIHNbRV0pLAogICAgICAgICAgKEUgPT09ICJuYXZpZ2F0aW9uIiB8fCBFID09PSAicGFnaW5hdGlvbiIgfHwgRSA9PT0gInNjcm9sbGJhciIpICYmCiAgICAgICAgICAgICJlbmFibGVkIiBpbiBzW0VdICYmCiAgICAgICAgICAgICFzW0VdLmVuYWJsZWQgJiYKICAgICAgICAgICAgSShFKTsKICAgICAgZWxzZSB7CiAgICAgICAgY29uc3QgdiA9IHNbRV07CiAgICAgICAgKHYgPT09ICEwIHx8IHYgPT09ICExKSAmJgogICAgICAgIChFID09PSAibmF2aWdhdGlvbiIgfHwgRSA9PT0gInBhZ2luYXRpb24iIHx8IEUgPT09ICJzY3JvbGxiYXIiKQogICAgICAgICAgPyB2ID09PSAhMSAmJiBJKEUpCiAgICAgICAgICA6IChkW0VdID0gc1tFXSk7CiAgICAgIH0KICAgIH0pLAogICAgYy5pbmNsdWRlcygiY29udHJvbGxlciIpICYmCiAgICAgICFnICYmCiAgICAgIGUuY29udHJvbGxlciAmJgogICAgICBlLmNvbnRyb2xsZXIuY29udHJvbCAmJgogICAgICBkLmNvbnRyb2xsZXIgJiYKICAgICAgZC5jb250cm9sbGVyLmNvbnRyb2wgJiYKICAgICAgKGUuY29udHJvbGxlci5jb250cm9sID0gZC5jb250cm9sbGVyLmNvbnRyb2wpLAogICAgci5pbmNsdWRlcygiY2hpbGRyZW4iKSAmJiBpICYmIGggJiYgZC52aXJ0dWFsLmVuYWJsZWQKICAgICAgPyAoKGguc2xpZGVzID0gaSksIGgudXBkYXRlKCEwKSkKICAgICAgOiByLmluY2x1ZGVzKCJ2aXJ0dWFsIikgJiYKICAgICAgICBoICYmCiAgICAgICAgZC52aXJ0dWFsLmVuYWJsZWQgJiYKICAgICAgICAoaSAmJiAoaC5zbGlkZXMgPSBpKSwgaC51cGRhdGUoITApKSwKICAgIHIuaW5jbHVkZXMoImNoaWxkcmVuIikgJiYgaSAmJiBkLmxvb3AgJiYgKE8gPSAhMCksCiAgICBUICYmIG0uaW5pdCgpICYmIG0udXBkYXRlKCEwKSwKICAgIGcgJiYgKGUuY29udHJvbGxlci5jb250cm9sID0gZC5jb250cm9sbGVyLmNvbnRyb2wpLAogICAgYiAmJgogICAgICAoZS5pc0VsZW1lbnQgJiYKICAgICAgICAoIW8gfHwgdHlwZW9mIG8gPT0gInN0cmluZyIpICYmCiAgICAgICAgKChvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLAogICAgICAgIG8uY2xhc3NMaXN0LmFkZCgic3dpcGVyLXBhZ2luYXRpb24iKSwKICAgICAgICBvLnBhcnQuYWRkKCJwYWdpbmF0aW9uIiksCiAgICAgICAgZS5lbC5hcHBlbmRDaGlsZChvKSksCiAgICAgIG8gJiYgKGQucGFnaW5hdGlvbi5lbCA9IG8pLAogICAgICBmLmluaXQoKSwKICAgICAgZi5yZW5kZXIoKSwKICAgICAgZi51cGRhdGUoKSksCiAgICB3ICYmCiAgICAgIChlLmlzRWxlbWVudCAmJgogICAgICAgICghbCB8fCB0eXBlb2YgbCA9PSAic3RyaW5nIikgJiYKICAgICAgICAoKGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSksCiAgICAgICAgbC5jbGFzc0xpc3QuYWRkKCJzd2lwZXItc2Nyb2xsYmFyIiksCiAgICAgICAgbC5wYXJ0LmFkZCgic2Nyb2xsYmFyIiksCiAgICAgICAgZS5lbC5hcHBlbmRDaGlsZChsKSksCiAgICAgIGwgJiYgKGQuc2Nyb2xsYmFyLmVsID0gbCksCiAgICAgIHUuaW5pdCgpLAogICAgICB1LnVwZGF0ZVNpemUoKSwKICAgICAgdS5zZXRUcmFuc2xhdGUoKSksCiAgICB5ICYmCiAgICAgIChlLmlzRWxlbWVudCAmJgogICAgICAgICgoIW4gfHwgdHlwZW9mIG4gPT0gInN0cmluZyIpICYmCiAgICAgICAgICAoKG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSksCiAgICAgICAgICBuLmNsYXNzTGlzdC5hZGQoInN3aXBlci1idXR0b24tbmV4dCIpLAogICAgICAgICAgKG4uaW5uZXJIVE1MID0gZS5ob3N0RWwuY29uc3RydWN0b3IubmV4dEJ1dHRvblN2ZyksCiAgICAgICAgICBuLnBhcnQuYWRkKCJidXR0b24tbmV4dCIpLAogICAgICAgICAgZS5lbC5hcHBlbmRDaGlsZChuKSksCiAgICAgICAgKCFhIHx8IHR5cGVvZiBhID09ICJzdHJpbmciKSAmJgogICAgICAgICAgKChhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLAogICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCJzd2lwZXItYnV0dG9uLXByZXYiKSwKICAgICAgICAgIChhLmlubmVySFRNTCA9IGUuaG9zdEVsLmNvbnN0cnVjdG9yLnByZXZCdXR0b25TdmcpLAogICAgICAgICAgYS5wYXJ0LmFkZCgiYnV0dG9uLXByZXYiKSwKICAgICAgICAgIGUuZWwuYXBwZW5kQ2hpbGQoYSkpKSwKICAgICAgbiAmJiAoZC5uYXZpZ2F0aW9uLm5leHRFbCA9IG4pLAogICAgICBhICYmIChkLm5hdmlnYXRpb24ucHJldkVsID0gYSksCiAgICAgIHAuaW5pdCgpLAogICAgICBwLnVwZGF0ZSgpKSwKICAgIHIuaW5jbHVkZXMoImFsbG93U2xpZGVOZXh0IikgJiYgKGUuYWxsb3dTbGlkZU5leHQgPSBzLmFsbG93U2xpZGVOZXh0KSwKICAgIHIuaW5jbHVkZXMoImFsbG93U2xpZGVQcmV2IikgJiYgKGUuYWxsb3dTbGlkZVByZXYgPSBzLmFsbG93U2xpZGVQcmV2KSwKICAgIHIuaW5jbHVkZXMoImRpcmVjdGlvbiIpICYmIGUuY2hhbmdlRGlyZWN0aW9uKHMuZGlyZWN0aW9uLCAhMSksCiAgICAoUyB8fCBPKSAmJiBlLmxvb3BEZXN0cm95KCksCiAgICAoTSB8fCBPKSAmJiBlLmxvb3BDcmVhdGUoKSwKICAgIGUudXBkYXRlKCk7Cn0KY29uc3QgbWUgPSAodCkgPT4gewogICAgaWYgKHBhcnNlRmxvYXQodCkgPT09IE51bWJlcih0KSkgcmV0dXJuIE51bWJlcih0KTsKICAgIGlmICh0ID09PSAidHJ1ZSIgfHwgdCA9PT0gIiIpIHJldHVybiAhMDsKICAgIGlmICh0ID09PSAiZmFsc2UiKSByZXR1cm4gITE7CiAgICBpZiAodCA9PT0gIm51bGwiKSByZXR1cm4gbnVsbDsKICAgIGlmICh0ICE9PSAidW5kZWZpbmVkIikgewogICAgICBpZiAoCiAgICAgICAgdHlwZW9mIHQgPT0gInN0cmluZyIgJiYKICAgICAgICB0LmluY2x1ZGVzKCJ7IikgJiYKICAgICAgICB0LmluY2x1ZGVzKCJ9IikgJiYKICAgICAgICB0LmluY2x1ZGVzKCciJykKICAgICAgKSB7CiAgICAgICAgbGV0IGU7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGUgPSBKU09OLnBhcnNlKHQpOwogICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgZSA9IHQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiBlOwogICAgICB9CiAgICAgIHJldHVybiB0OwogICAgfQogIH0sCiAgZ2UgPSBbCiAgICAiYTExeSIsCiAgICAiYXV0b3BsYXkiLAogICAgImNvbnRyb2xsZXIiLAogICAgImNhcmRzLWVmZmVjdCIsCiAgICAiY292ZXJmbG93LWVmZmVjdCIsCiAgICAiY3JlYXRpdmUtZWZmZWN0IiwKICAgICJjdWJlLWVmZmVjdCIsCiAgICAiZmFkZS1lZmZlY3QiLAogICAgImZsaXAtZWZmZWN0IiwKICAgICJmcmVlLW1vZGUiLAogICAgImdyaWQiLAogICAgImhhc2gtbmF2aWdhdGlvbiIsCiAgICAiaGlzdG9yeSIsCiAgICAia2V5Ym9hcmQiLAogICAgIm1vdXNld2hlZWwiLAogICAgIm5hdmlnYXRpb24iLAogICAgInBhZ2luYXRpb24iLAogICAgInBhcmFsbGF4IiwKICAgICJzY3JvbGxiYXIiLAogICAgInRodW1icyIsCiAgICAidmlydHVhbCIsCiAgICAiem9vbSIsCiAgXTsKZnVuY3Rpb24gaWkodCwgZSwgaSkgewogIGNvbnN0IHMgPSB7fSwKICAgIHIgPSB7fTsKICBzZShzLCBpZSk7CiAgY29uc3QgbiA9IFsuLi5ZdCwgIm9uIl0sCiAgICBhID0gbi5tYXAoKG8pID0+IG8ucmVwbGFjZSgvXy8sICIiKSk7CiAgbi5mb3JFYWNoKChvKSA9PiB7CiAgICAobyA9IG8ucmVwbGFjZSgiXyIsICIiKSksIHR5cGVvZiB0W29dIDwgInUiICYmIChyW29dID0gdFtvXSk7CiAgfSk7CiAgY29uc3QgbCA9IFsuLi50LmF0dHJpYnV0ZXNdOwogIHJldHVybiAoCiAgICB0eXBlb2YgZSA9PSAic3RyaW5nIiAmJgogICAgICB0eXBlb2YgaSA8ICJ1IiAmJgogICAgICBsLnB1c2goeyBuYW1lOiBlLCB2YWx1ZTogRihpKSA/IHsgLi4uaSB9IDogaSB9KSwKICAgIGwuZm9yRWFjaCgobykgPT4gewogICAgICBjb25zdCBjID0gZ2UuZmlsdGVyKChkKSA9PiBvLm5hbWUuaW5kZXhPZihgJHtkfS1gKSA9PT0gMClbMF07CiAgICAgIGlmIChjKSB7CiAgICAgICAgY29uc3QgZCA9IFEoYyksCiAgICAgICAgICBmID0gUShvLm5hbWUuc3BsaXQoYCR7Y30tYClbMV0pOwogICAgICAgIHR5cGVvZiByW2RdID4gInUiICYmIChyW2RdID0ge30pLAogICAgICAgICAgcltkXSA9PT0gITAgJiYgKHJbZF0gPSB7IGVuYWJsZWQ6ICEwIH0pLAogICAgICAgICAgKHJbZF1bZl0gPSBtZShvLnZhbHVlKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgZCA9IFEoby5uYW1lKTsKICAgICAgICBpZiAoIWEuaW5jbHVkZXMoZCkpIHJldHVybjsKICAgICAgICBjb25zdCBmID0gbWUoby52YWx1ZSk7CiAgICAgICAgcltkXSAmJiBnZS5pbmNsdWRlcyhvLm5hbWUpICYmICFGKGYpCiAgICAgICAgICA/IChyW2RdLmNvbnN0cnVjdG9yICE9PSBPYmplY3QgJiYgKHJbZF0gPSB7fSksIChyW2RdLmVuYWJsZWQgPSAhIWYpKQogICAgICAgICAgOiAocltkXSA9IGYpOwogICAgICB9CiAgICB9KSwKICAgIHNlKHMsIHIpLAogICAgcy5uYXZpZ2F0aW9uCiAgICAgID8gKHMubmF2aWdhdGlvbiA9IHsKICAgICAgICAgIHByZXZFbDogIi5zd2lwZXItYnV0dG9uLXByZXYiLAogICAgICAgICAgbmV4dEVsOiAiLnN3aXBlci1idXR0b24tbmV4dCIsCiAgICAgICAgICAuLi4ocy5uYXZpZ2F0aW9uICE9PSAhMCA/IHMubmF2aWdhdGlvbiA6IHt9KSwKICAgICAgICB9KQogICAgICA6IHMubmF2aWdhdGlvbiA9PT0gITEgJiYgZGVsZXRlIHMubmF2aWdhdGlvbiwKICAgIHMuc2Nyb2xsYmFyCiAgICAgID8gKHMuc2Nyb2xsYmFyID0gewogICAgICAgICAgZWw6ICIuc3dpcGVyLXNjcm9sbGJhciIsCiAgICAgICAgICAuLi4ocy5zY3JvbGxiYXIgIT09ICEwID8gcy5zY3JvbGxiYXIgOiB7fSksCiAgICAgICAgfSkKICAgICAgOiBzLnNjcm9sbGJhciA9PT0gITEgJiYgZGVsZXRlIHMuc2Nyb2xsYmFyLAogICAgcy5wYWdpbmF0aW9uCiAgICAgID8gKHMucGFnaW5hdGlvbiA9IHsKICAgICAgICAgIGVsOiAiLnN3aXBlci1wYWdpbmF0aW9uIiwKICAgICAgICAgIC4uLihzLnBhZ2luYXRpb24gIT09ICEwID8gcy5wYWdpbmF0aW9uIDoge30pLAogICAgICAgIH0pCiAgICAgIDogcy5wYWdpbmF0aW9uID09PSAhMSAmJiBkZWxldGUgcy5wYWdpbmF0aW9uLAogICAgeyBwYXJhbXM6IHMsIHBhc3NlZFBhcmFtczogciB9CiAgKTsKfQpleHBvcnQgewogIEcgYXMgUywKICBadCBhcyBhLAogIGVpIGFzIGIsCiAgUSBhcyBjLAogIEIgYXMgZCwKICBEIGFzIGUsCiAgZWUgYXMgZiwKICBpaSBhcyBnLAogIEEgYXMgaCwKICBEZSBhcyBpLAogIFh0IGFzIGosCiAgWiBhcyBrLAogIEggYXMgbCwKICBLdCBhcyBtLAogIFF0IGFzIG4sCiAgY2UgYXMgbywKICBZdCBhcyBwLAogIGRlIGFzIHEsCiAgQ2UgYXMgciwKICBSIGFzIHMsCiAgT2UgYXMgdCwKICB0aSBhcyB1LAogIFV0IGFzIHYsCiAgTiBhcyB3LAogIHF0IGFzIHgsCiAgSnQgYXMgeSwKfTsK"}},"time_used":30,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":30,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Inter-SemiBold.XVCL1Lno.ttf","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.382Z","timestamp":1785139670382,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Inter-SemiBold.XVCL1Lno.ttf HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"4d33c-654aa2b832c3a\"\r\nAccept-Ranges: bytes\r\nContent-Length: 316220\r\nKeep-Alive: timeout=5, max=84\r\nConnection: Keep-Alive\r\nContent-Type: font/ttf\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":316220,"size_decoded":316508,"mime_type":"font/ttf","magic":"TrueType Font data, 16 tables, 1st \"GDEF\", 52 names, Microsoft, language 0x409","md5":"465266b2b986e33ef7e395f4df87b300","sha1":"5e0c44e57e7e090252d79f622899e67585bb892c","sha256":"b0b540e69bf6717016e33874670e09acf4bffc2ca3f4c1cf174a4ff696308c65","sha512":"b653746094471135e0b4cb286b45c4fe2b146a877ed3ad03bf1c116f0413c0c2e66d9245651349dcf1c322b71071b499b83129d88a17b25f3ca7b18d5a5428b6","ssdeep":"3072:tYR7HDJwbA5Maf/j41tIW+8EziE7/VgC+zvVF7ALp5p28gzEPuNOVKpxG6IXfsCQ:qR6aT19iEjAa5hgJRLQCo4TJIwH7","tlshash":"0d646a07f363831dc9062d3a47e3c7a07367bc917a12e10abb283799c98b5b45d9b5c9","first_seen":"2023-10-14T00:46:20Z","last_seen":"2026-08-04T00:48:00.996031Z","times_seen":3179,"resource_available":false,"data":"AAEAAAAQAQAABAAAR0RFRjEzMboAAAI8AAAEGEdQT1Ok8c74AAF+RAABLi5HU1VCSydsUwAAXxAAAFV4T1MvMiNfbmIAAAHcAAAAYFNUQVTvidk5AAABmAAAAERjbWFw9ZJbgwABGSgAAGUaZ2FzcAAAABAAAAEUAAAACGdseWZ5B34YAAKsdAACJsZoZWFkLSthbwAAAWAAAAA2aGhlYR5dGXwAAAE8AAAAJGhtdHgkNYg5AAAPdAAAJ8psb2NhCYXJ9wAAN0AAACfQbWF4cAoMAQYAAAEcAAAAIG5hbWVMn3Y3AAAGVAAACR5wb3N0p6g1cgAAtIgAAGSecHJlcGgGjIUAAAEMAAAAB7gB/4WwBI0AAAEAAf//AA8AAQAACfMAlAAMAHAABwABAAAAAAAAAAAAAAAAAAUAAQABAAAKqP1YAAAdgPdI9LEcagABAAAAAAAAAAAAAAAAAAAJ8gABAAAAAwTdn5r9X18PPPUAGwsAAAAAANzyuxsAAAAA3VVQ1vdI/HwcagwpAAAABgACAAEAAAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQ8AAHNsbnQBEAABABQABAADAAEAAgEXAAAAAP/2AAAAAQAAAAABGwJYAAAABAcuAlgABQAAByYGmgAAANMHJgaaAAAD2gDAA5oAAAIABQMAAAACAATgAAL/EgCh/wAAAAEAAAAAUlNNUwDAACD//wqo/VgAAAqoAqgAAAGfAAAAAAYACAAAAAAgAAwAAQAAABIAAAAAAAAAAAAAAAAAAgCrAAIAOwABAD0ArQABAK8BFQABARcBiAABAYoBlwABAZkBoAABAaIB1QABAdcB8wABAfUB9gABAfgCQQABAkMCSAABAkoCVAABAlYCYQABAmMCgwABAoUCmQABApsCmwABAp4CvAABAsACwgABAsQCxQABAsoCywABAs0C1wABAtoDQgABA0UDSQABA0wDcQABA3QDdQABA3kDhgABA4gDtAABA7YDtwABA7kDzgABA9ED1wABA9oD2gABA9wD3AABA94D3gABA+ID9gABA/gD+gABA/4D/gABBAAEAwABBAYEBwABBAkECQABBA0EEQABBBQEHQABBCAEIQABBCMEIwABBCcEQAABBEIEQgABBEQERQABBEcESAABBEoEUQABBFMEagABBGwEfQABBIEEhAABBIgEmQABBJ0EtAABBLgEugABBLwEwQABBMMEwwABBMUE0QABBNQE2QABBNwE3gABBOEE4QABBOME4wABBOYE5wABBOoE7wABBP8FAgABBQQFBAABBQkFCQABBQsFDQABBRAFEQABBSIFIgABBeUF5QABBhAGEAABBiEGIQABBikGKQABBiwGLAABBjsGOwABBkoGSgABBlIGZgABBmgGaAABBmsGawABBm4GbgABBncGeAADBnkGeQABBnoGfAADBoIGgwADBqIGpgABBwgHIQABByQHJAABB0MHXAABB18HXwABB38HgwABB4cHhwABB4kHiQABB4sHjwABB5IHkgABB5QHlAABB5gHmQABB5sHmwABB6kHqQABB6sHrAABB64HsAABB7MHswABB7kHvAABB78HvwABB8MHzAABB9EH0QADB9QH1AABB9UH1QACB98H3wADB+cH5wADB+kH6QABB+0H7wABB/YH9wADB/0H/QABCAQIBAADCAsICwABCA0IDQABCBQIFAABCBYIFgABCBcIFwADCBkIGgABCCAIIQABCCMIIwABCCkIKgABCC0ILwABCDMIMwABCDgIOAABCEIIRAABCEYIRwABCEsISwABCE8ITwADCFsIXAADCF4IXgABCF8IYAADCGYIZgABCGoIawABCHIIcgABCHgIeAADCHkIeQABCHoIegADCH8IfwABCIIIggADCJEIoAABCKQIpgABCKoIqwABCLUItgABCLsIuwABCL8IvwABCMAIwAADCMIIwgABCMUIxQADCM8I0AABCN8I3wABCOEI4QABCPkJHgADCTEJMwABCTQJNAADCTcJPQABCT8JeAADCXsJewABCYEJhwABCZMJkwABCZoJmgABCbkJvAADCb4JwQABCcwJzQADCdIJ1gADCdkJ3QADCeAJ4QABCegJ6AABCe4J7wABCfEJ8gABAAAANAJ2AAMAAQQJAAAAkAYYAAMAAQQJAAEAHAX8AAMAAQQJAAIADgXuAAMAAQQJAAMAMgW8AAMAAQQJAAQAHAX8AAMAAQQJAAUANgWGAAMAAQQJAAYAHAVqAAMAAQQJAAcAVAUWAAMAAQQJAAgACAUOAAMAAQQJAAkAIATuAAMAAQQJAAsAIATOAAMAAQQJAAwAIATOAAMAAQQJAA0BIAOuAAMAAQQJAA4ANAN6AAMAAQQJABAACgNwAAMAAQQJABEAEANgAAMAAQQJABIACgNwAAMAAQQJAQAAFgNKAAMAAQQJAQEAHAMuAAMAAQQJAQIAOgL0AAMAAQQJAQMARgKuAAMAAQQJAQQAGgKUAAMAAQQJAQUAEgKCAAMAAQQJAQYAEAJyAAMAAQQJAQcAEgJgAAMAAQQJAQgALAI0AAMAAQQJAQkAJAIQAAMAAQQJAQoAMgHeAAMAAQQJAQsALgGwAAMAAQQJAQwAHAGUAAMAAQQJAQ0AKAFsAAMAAQQJAQ4AHgFOAAMAAQQJAQ8ADAFCAAMAAQQJARAACgE4AAMAAQQJAREACAEwAAMAAQQJARIAFgEaAAMAAQQJARMAFAEGAAMAAQQJARQAIgDkAAMAAQQJARUACgDaAAMAAQQJARYAGADCAAMAAQQJARcADgXuAAMAAQQJARgADAC2AAMAAQQJARkADACqAAMAAQQJARoAGgCQAAMAAQQJARsAEANgAAMAAQQJARwAHgByAAMAAQQJAR0ACABqAAMAAQQJAR4AFgBUAAMAAQQJAR8AEgBCAAMAAQQJASAAIAAiAAMAAQQJASEACgAYAAMAAQQJASIAGAAAAEIAbABhAGMAawAgAEkAdABhAGwAaQBjAEIAbABhAGMAawBFAHgAdAByAGEAQgBvAGwAZAAgAEkAdABhAGwAaQBjAEUAeAB0AHIAYQBCAG8AbABkAEIAbwBsAGQAIABJAHQAYQBsAGkAYwBCAG8AbABkAFMAZQBtAGkAQgBvAGwAZAAgAEkAdABhAGwAaQBjAE0AZQBkAGkAdQBtACAASQB0AGEAbABpAGMATQBlAGQAaQB1AG0ASQB0AGEAbABpAGMATABpAGcAaAB0ACAASQB0AGEAbABpAGMATABpAGcAaAB0AEUAeAB0AHIAYQBMAGkAZwBoAHQAIABJAHQAYQBsAGkAYwBFAHgAdAByAGEATABpAGcAaAB0AFQAaABpAG4AIABJAHQAYQBsAGkAYwBUAGgAaQBuAFMAbABhAG4AdABXAGUAaQBnAGgAdABTAGkAbgBnAGwAZQAtAHMAdABvAHIAZQB5ACAAYQBDAGEAcAB0AGkAdABhAGwAIABHACAAdwBpAHQAaAAgAHMAcAB1AHIARgBsAGEAdAAtAHQAbwBwACAAdABoAHIAZQBlAFUAcABwAGUAcgAtAGMAYQBzAGUAIABpACAAdwBpAHQAaAAgAHMAZQByAGkAZgBBAGwAdABlAHIAbgBhAHQAZQAgAEcAZQByAG0AYQBuACAAZABvAHUAYgBsAGUAIABzAHIAIAB3AGkAdABoACAAYwB1AHIAdgBlAGQAIAB0AGEAaQBsAEwAbwB3AGUAcgAtAGMAYQBzAGUAIABMACAAdwBpAHQAaAAgAHQAYQBpAGwATwBwAGUAbgAgAG4AaQBuAGUATwBwAGUAbgAgAHMAaQB4AE8AcABlAG4AIABmAG8AdQByAEEAbAB0AGUAcgBuAGEAdABlACAAbwBuAGUARABpAHMAYQBtAGIAaQBnAHUAYQB0AGkAbwBuACAAdwBpAHQAaABvAHUAdAAgAHMAbABhAHMAaABlAGQAIAB6AGUAcgBvAHIAIABjAHUAcgB2AGUAcwAgAGkAbgB0AG8AIAByAG8AdQBuAGQAIABuAGUAaQBnAGgAYgBvAHIAcwBEAGkAcwBhAG0AYgBpAGcAdQBhAHQAaQBvAG4ATwBwAGUAbgAgAGQAaQBnAGkAdABzAFMAZQBtAGkAQgBvAGwAZABJAG4AdABlAHIAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4AIABUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAGEAdgBhAGkAbABhAGIAbABlACAAdwBpAHQAaAAgAGEAIABGAEEAUQAgAGEAdAA6ACAAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAGgAdAB0AHAAcwA6AC8ALwByAHMAbQBzAC4AbQBlAC8AUgBhAHMAbQB1AHMAIABBAG4AZABlAHIAcwBzAG8AbgByAHMAbQBzAEkAbgB0AGUAcgAgAFUASQAgAGEAbgBkACAASQBuAHQAZQByACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAAcgBzAG0AcwAuAEkAbgB0AGUAcgAtAFMAZQBtAGkAQgBvAGwAZABWAGUAcgBzAGkAbwBuACAAMwAuADAAMQA5ADsAZwBpAHQALQAwAGEANQAxADAANgBlADAAYgAzAC4AMAAxADkAOwBSAFMATQBTADsASQBuAHQAZQByAC0AUwBlAG0AaQBCAG8AbABkAFIAZQBnAHUAbABhAHIASQBuAHQAZQByACAAUwBlAG0AaQBCAG8AbABkAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADIAMAAgAFQAaABlACAASQBuAHQAZQByACAAUAByAG8AagBlAGMAdAAgAEEAdQB0AGgAbwByAHMAIAAoAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcgBzAG0AcwAvAGkAbgB0AGUAcgApAAALWAEVAAAAAAf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBEB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/b+1Qf2/ysH9v8mB/b++gf2/9YH9v+4B/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2AEUH9gBFB/YARQf2/tUH9v8rB/b/Jgf2/voH9v/WB/b/uAf2AEUH9gBFCy8ARQsvAEULLwBFCy8ARQc7AMoHOwDKBzsAygc7AMoH5gBGCUwAcAc7AMoHOwDKCC4Algj5AJYILgCWCC4AlgguAJYILgCWCC4AlgguAJYILgCWCC4AiwguAJYH+ADKChQAcAf4AMoH+ADKB/gAygf4AMoH+ADKB/gAygf4/6IOJgDKDiYAygavAMoGrwDKBq8AygavAMoGrwDKBq8AygavAMoGrwDKBq8AygavAMoGrwC/Bq8AygavAMoGrwDKBq8AygavAMoGrwDKBq8AygavAMoGrwDKBq8AygavAMoGr/+uBq8AygavAMoGrwDKBq8AygavAKoGrwDKCEoAegg2AFYIMgB3ClgAdgn+AHIKCgB5CjQAdwisAHYIfAC0Bq8AygavAMoGrwDKBq8AygZxAMoGmv/KBnEAygZxAIYITgCWCE4AlgjzAJYITgCWCE4AlghOAJYITgCWCE4AlghOAJYITgCWCGAAlghiAJYI8wCWCGAAlghgAJYIYACWCGAAlghgAJYIYACWCGAAlggvAMoILwDKCC8AyggvAMoILwDKCC8AyggvAMoILwDKCMoAcAgvAMoJEwDKCPAAygr+AMoMUgDKCC8Aygn5ALYKAQCtCeIAswwHALILrgCuC7oAtQvjALMLAwCuCyEArgpbALIKKwDwCC8Aygm1AGEJ4gCzDAcAsguuAK4LugC1C+MAswsDAK4LIQCuCC8AygMGAMoDBv+XAwb/pgMG/6IDBv/AAwb/zQMGAMoDBv98BO4AdgMG/6MDBv+xAwYANAMGALIDBv98Awb+3gMG/60DBgDKAwYAsQMoALoDBgDKA/MACgMG/5cEowCtBIQAswaqALIGUACuBlwAtQaGALMFpgCuBcMArgMG/7EDBv+jBP4AsgTOAPADBgDKAwb/lwUlAHAFJQBwBSUAcAUlAHAFJQBwBSUAcAUlAHAFJQBwBSUAcAUlAHAFJQBwBSUAcAUlAHAFJQBwBSX/7gUlAHAFJQBwBSUAcAbjAHAGvgBwCOUAcAiOAHAIlABwCL8AcAfkAHAIAgBwBSUAcAUlAHAHOQBwBwkArgUlAHAFJQBwBisAUgYrAFIGKwBSBisAUgYrAFIHcgDKB3IAygdyAMoHcgDKB3IAygdyAMoI9gAmB/MAygfPAMoHcgDKBjoAygY6AMoGOgDKBjoAygY6AMoGOv+gBjoAygY6AMoGWwAvBjr/ogkXAMoJ+ADKCfgAygn4AMoJ+ADKCnMAygn4AMoJ+ADKCfgAyggmAMoIJgDKCCYAyggmAMoIJgDKCCYAyggmAMoIJgDKCCYAyggmAMoISv/ECCYAyggmAMoIJgDKCCYAyggmAMoIJgDKCCYAyghyAO4IJgDKCsYAygiGAJYIhgCWCIYAlgiGAJYIzgCWCIYAlgiGAJYIhgCWCIYAlgiGAJYIhgCWCIYAlgiGAJYIhgCWCIYAlgiGAJYIhgCWCIYAlgiGAJYIhgCWCIYAlgiGAJYIhgCWCIYAlgiGAJYIhgCWCIYAlgiGAIwIhgCWCIYAlgiGAJYIzgCWCM4AlgjOAJYIzgCWCM4AlgiGAJYIhgCWCMP/5gj9/+gJWwBsCwP/7QqS/9EKLP/wCkz/7glX/+0IhgCWCJ4AWAiGAJYIhgCWCIYAlgiGAJYIhgCWCvYAlgcUAMoHFADKBxQAygcuANAJJQBwBxQAygiqAIoIiACWBygAygcoAMoHKADKBygAygcoAMoHKADKBygAygcoAMoHKADKBygAygczAM4IHwDKB1UAGgckAIAHJACAByQAgAckAIAHJACAByQAgAckAIAHJACAByQAgAckAIAHJACAByQAgAckAIAHwgDKB0IAcAdCAHAHQgBwB0IAcAdCAHAHQgBwB0IAcAdCAHAHqABwB0IAcAdCAHAHQgBwCBIAygmOAMoIEgDKCBIAyggSAMoIEgDKCBIAyggSAMoIEgDKCBIAyggSAMoIEgDKCBIAyggSAMoIEgDKCBIAyggSAMoIEgDKCBIAyggSAMoIEgDKCBIAyggSAMoIEgDKCBIAyggSAMoJjgDKCY4AygmOAMoJjgDKCY4AyghL//UH9gBFB/YARQf2AEULEwA3CxMANwsTADcLEwA3CxMANwsTADcLEwA3B5gATweYAE8HmABPB5gATweYAE8HmABPB8AAPghhAEoHwAA+B8AAPgfAAD4HwAA+B8AAPgfAAD4HwAA+B8AAPgfAAD4HxQATB8AAPgoXAC4HwAA+CbAAXwtkAFQMAgArCz8AJgfAAD4HwAA+CeoAWgnR/+8HwAA+By4AngcuAJ4HLgCeBy4AngcuAJ4HLgCeBy4AngcuAJ4HLgCeBy4AngcuAJ0GUgByBlIAcgZSAHIGUgByBlIAcgZSAHIGUgByBlIAcgZSAHIGUgByBlIAcgZSAHIGUv+IBlIAcgZSAHIGUgByBlIAcgZSAHIGUgByBlIAcgZSAHIGUgByBlIAcgZSAHIGUgByBlIAcgZSAHIGUgByBlIAcgZSAHIGUgByBlIAcgZSALMGUgByBlIAcgZSAHIKFwByChcAcgoXAHIKFwByBu8AewbvAHsG7wB7Bu8AewbvAHsG7wB7Bu8AewbvAHsG7wB7Bu8AewbvAHsG7wB7Bu//wAbvAHsG7wB7Bu8AewbvAHsG7wB7Bu8AewbvAHsG7wB7Bu8AewbvAHsG7wB7Bu8AewbvAHsG7wB7Bu8AewbvAHsG7wB7Bu8AewbvAMoG7/+eBu8AygbfALoG7wDKBu8AygbvAMoGWgB4Bl4AeAb1AHgGYQBXBloAeAZaAHgGWgB4BloAeAZaAHgGWgB4BloAeAZaAHgG7wB7Bu8AewbfAHsHEQB7Bu8AewfmAH4H4QB7Bu8AewbvAHsG7wB7Bu8AewbvAHsMEgB7DBIAewwSAHsNWgB7CtEAewbvAHsGhQB4BoUAeAaLAHgGhQB4BoUAeAaFAHgGhQB4BoUAeAaFAHgGhQB4BoUAeAaFAHgGhQB4BoUAeAaFAHgGhQB4BoUAeAaFAHgGhQB4BoUAeAaFAHgGhQB4BoUAeAaF/44GhQB4BoUAeAaFAHgGhQB4BoUAeAaFAHgGhQB4BoUAeAQwASUEJgA4BAcAQgQwASUEJgA4CdoAOAbhAHsHAwB+BuEAewbhAHsG4QB7BuEAewbhAHsG4QB7BuEAewbhAHsGvgC6Br4Auga+/4sGwv+LBrUAuga1ALoKrQC6Br4AtgeXAFYHwQBWBr7/iwa+/2UGvv9lBr4Amwa+ALoGvv+ABr4Auga+ALoGvgC6At4AngLeALoC3v+DAt7/gwMj/5MC3v+vAt7/rwLe/44C3v+5At4AugLe/2gC3v+PAt7/nQLeABsC7gAOAt7/aALe/soC3v+ZAt4AugLeAJ4C3gCgAt7/xALe/44C3v+OAt7/jgLeAJ4C3v+DBbsAngLe/8QEuwASBLsAEgLe/2YC3v9mAt7/xALe/8QFsgC6BkIAugYvALoGQgC6BkL/aAZCALoGQgC6BkIAugZCABMC3gC6At7/8QLe/48Djf+UA10AugU6ADUEWf9FBC0AwALeALoC3gBNA+AAugLeAJ0C3v+NAt7/jgLe/2cDKAC6Azv//gMo/5ADKP85BToANQQtAMADKAC6AygAnwPgALoDKAC6Ayj/jQMo/+ADKP+5AwYAygngALoJ4AC6CeAAtgngALYJ4AC6CeAAugngALoGtQC6BrUAugbeALoGxgC6CK4Augbm/6YGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoJkgC6BrAAeAawAHgGsAB4BrAAeAbUAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrD/oQawAHgGsAB4BrAAeAbUAHgG1AB4BtQAeAbUAHgG1AB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgGsAB4BrAAeAawAHgKygB7DNIAeAbfALoGuQDABt8AugbfALoG3wC6Bt8AugbfAHsHawB7B14AewjxAJYEXQC6BF0AugRd/5AEXQA2BMwANgPcAHMD4gCzBF0AugRdALoEXQBNBF0AXgRd/8AEXQCPBF0AugRdAJ4EXQCFBF3/jgSAALoEgAC6BID/kASAALoEgAC6BIAATQSAAF8EgP/CBIAAkASAALoEgACeBIAAhgSA/44GCgB2BgoAdgYNAHYGCgB2BgoAdgYKAHYGCgB2BgoAdgYKAHYGCgB2BgoAdgYKAHYGCgB2BgoAdgYKAHEHGgDKBxsAygQuAEYEOABGBDgARgWpAEYJewBGBC4AWgQuAEYELgBGBHIARgQuAEYELgBGBC4ARgQuAEYELgBGBC7/6gaxALoGsQC6BrEAugd7AMAHKwC6By4AAAaxALoGsQC6BrEAugaxALoGsQC6BrEAugaxALoGsQC6BrEAugaxALoGsQC6BrEAugaxALoGsQC1BrEAugaxALoGsQC6BrEAugaxALoGsQC6BrEAugaxALoHewDAB3sAwAd7AMAHewDAB3sAwAZWAEAGVgBABlYAQAZWAEAJNgBFCTYARQk2AEUJNgBFCTYARQk2AEUJNgBFCTYARQk2AEUGMABWBjAAVgYwAFYGMABWBrcAVgZWAEAGVgBABvgAQAZiAEcGVgBABlYAQAZWAEAGVgBABlYAQAZWAEAGVgBABlYAQAZWAEAGVgBABlYAQAZWAEAGVgBABlYAQAZWAEAHNgA+BzYAPgc2AD4GVgBABi4ApgYuAKYGJQCoBp8AqAbeAKYGLgCmBi4ApgYuAKYGLgCmBi4ApgYuAKYHdwCvBzsAwgZfAMoH9gBFCIYAlgbIALoIQgDxBz4AzQj6AKAI6wDKCIAAjQkEAEAI0v/OCOr/xQlrAD8LIv/OCsj/ywqS/9gKvP/WCh7/ywo7/8sJdv/OCOr/xQlrAD8LIv/OCsj/ywqS/9gKvP/WCh7/ywo7/8sIgACNCIAAjQedAGoJDP/uB50AagfGAEcHMgDKBmQAygZf/6IIiQBFC3AATwtwAE8HKwCmB48AygehAMoHkwDKB/gARQiGAJYH9gDKBzYAPgk8AJYIlADKCiYAcAg6AQcIOgEHCEYBBwg6APoJ/gBwCy4BAAtoAQAJAgBwCasAzgddAM4MOgBrDFwAygeYAJYLdQDKB3sAlAdQAMoMVgCxB40AlglDALwJQgCeB7oAeAcdAJYIKQBFCTQAcAaGAHgGugC6ByEAewchAHsHIQB7ByEAewchAHsHIQB7ByEAewchAHsHIQB7ByEAewchAHsHIQB7ByEAewchAHsHIQB7ByEAewchAHsHIQB7ByEAewchAHsHIQB7ByEAewchAHsHIQB7ByEAewchAHsGpAC6BfgAQAbGAKAGLgB4Bi4AeAZaAI4GLgB4BmoAcgZaAHYImwB1Bi4AeAYuAHgGLgB4Bi4AeAYuAHgGLgB4Bi4AeAX4AHUGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGtQC6BrUAuga1ALoGygC9A1QAygNU/xUDVADKA1T/jgNUAMoDVACtA1T/rANU/6wDVAA1A1QABANUABMDVP/UA1QAKQNU/6gDVP+aA1T/cANU/3oDVP92BpoATgYyAKIHyACZBm4AsgZuALIGbgCyBm7/ggYxAI0HOwCsBdYATQZ2ALkGdgC3BnYAuQZ2ALkGdgC5BnYAuQZ2ALkGdgC5BnYAuQZ2ALkGdgC5BnYAuQZ2ALkGdgC5BnYAuQZ2ALkGdgC5BnYAuQjeAKsIXQCOCKIAugnWAM4J1gDOCdYAzgnWAM4J1gDOCdYAzgnWAM4J1gDOCdYAzgnWAM4J1gDOCdYAzgnWAM4J1gDOCdYAzgnWAM4J1gDOCdYAzgnWAM4J1gDOCdYAzgnWAM4J1gDOCdYAzgcJAHgGqgB7BkkAugUZALoFOwC6BRn/aAc0ADIJeABWCXgAVgWtAGUGqwC6B5IAugZDALoGuAC6ByEAugbLALoIHQBmBpkATgeGAE4HqwBOCGIAuglOALoGegC6B4gAugfuALoGegC6B2YAugaFALoGDQBmCFEAeAYIAFYGMABWByYAugaFALoGcAC6B34AugZwALoJSgC6CiAAugZYALoHkgBeCMAAugbFADkGxQA5Cl4AhgoJALoGCgB4CRIAXgZMAGYGOgC6CiwAugY7AE4HzQC/CA0AgAhRAEIHHQCWBsEAQAckAIAGWgB4BjUAKAc9ALsE2wBTBuoAkwgGAHoHeABOBjAAXgdDAHINagDKCNIApAiIAFILKABcB1EAvQf2AEUHzgDdCF4AMwhOAJYILgCWCC4AlggTAJYHQgBwDuoAYwl0ALgJxADWCD4AvAy5AMoIPgDGBnH/ogc7AMoHOwDKB1YAlgVKAJkG1gCqBtYAqgcrAKYHUwCRBvUAuwbaAGEHIQCVBnUAdQcbAJMHIQCaB1YAlgUZAJoHHQCWB1MAkQa9AKEGvQCPB2AAmwdgAbEHYADvB2AAwgddAJEHYADqB2AAtQdgAOwHYAC2B2AAtwdgAJsHYAG6B2AAtwdgAJkHYADuB2AA5gdKAHsDZgDXBs0A1wNmANcJYgDXBfwAbQv4AG0JYgBtBfwAhgX8AG0F/ACGBFQBFARUAF8EVAE2BFQBNgRUAEsEVABLBFQAXQRUAEsK/gCeBFQBFARUAF8EVAE2BFQASwRUAF0EVABLCv4AjQcTACMIQgC0BCoALQPwAVADgQEdBCoALQUgAMMFIADDBYAAAAdgAAALAAAACwAAAAV2AQMFdgEDBXYBOAV2AX0GpADIBqQA3gV2ASYFIADDBYAAAAdgAAALAAAABXYBAwV2AQMFdgE4BXYBfQakAMgGpADeBXYBJgKCAJUCWgBEAogARwJYAKAEWwCgBH0AlQR7AEQEewBBAoIAQgLaAJwFEgCcB0oAnAmCAJwC2gCcBRIAnAdKAJwCtgCiBK4AogM/AKcDMgC8CN4AwwYIAMMDMgC8AzIAvAMyALwDPwCnAzMAogMyAMMDMgDDAy4ApwMyALwDMgC8Ay0ArAQwAKwEMACeBpIArAaYAJ4HZgEHB2YBBwdmAQcHZgEHB2YBGgdmARoHZgD/B2YBCwdmAPgHZgELB2YBBwdmANwHZgDYB2YBBwdmAQcHZgEHB2YBBwdmARoHZgEaB2YA/wdmAQsHZgD4B2YBCwdmAQcHZgDcB2YA2AY7ANcFJv/+BqgAngYyAGMFSwBjBfoAzAX6AMwHUwCKChAA5woQAOcHUwCKBvAAcAbYAHAIBgBwCHkAgAbyAIAHHwCABQoApAU4ANkFMwC0AfgAZgSIAHIGqwCOBpUAygZeAJUKnwB7Bz4A4AfQALYITQEiA7X/ugdCAKIHkgCFBm0AagQ+AEQEpgB8BEYASQSmAE0EWwBJAtkAKASiAE0EjgByAfgAZgH5/9IEPQByAfYAcganAHIEiAByBHoASQSeAHQEngBNAxoAcgQYAEYC2QAqBIIAcgRKACQGMQAmBC8AMgRKACQEKQBqBQIAYQOAAGoEpgBuBNIAZQT0AFsEswB2BNEAXARaAEoEzgBbBNEAYgL2ALIC9gA1AvYAzgL2ACME5gClBOYApQTkALYEPgBEBKYAfARGAEkEpgBNBFsASQLZACgEogBNBI4AcgH4AGYB+f/SBD0AcgH2AHIGpwByBIgAcgR6AEkEngB0BJ4ATQMaAHIEGABGAtkAKgSCAHIESgAkBjEAJgQvADIESgAkBCkAagUCAGEDgABqBKYAbgTSAGUE9ABbBLMAdgTRAFwEWgBKBM4AWwTRAGIC9gCyAvYANQL2AM4C9gAjBOYApQTmAKUE5AC2BIUAVAMnAFgEMgBhBFoAWgR4AFEEQgBpBFoAUQPuAEIEWQBSBFoAVQMC/kMEhQBUAycAWAQyAGEEWgBaBHgAUQRCAGkEWgBRA+4AQgRZAFIEWgBVBG0AkwRtAJMEbgCjArQAoAK0ADAEhQBUAycAWAQyAGEEWgBaBHgAUQRCAGkEWgBRA+4AQgRZAFIEWgBVBG0AkwRtAJMEbgCjArQAoAK0ADAEhQBUAycAWAQyAGEEWgBaBHgAUQRCAGkEWgBRA+4AQgRZAFIEWgBVCh0AWAqDAFgJsABYCo4AWgrsAGkGKgBPCfMAQgpCAFgLFQBpCyAAWglIAOwL2gDsDmwA7AuKAEQLywBJC8IASQtmAEQK9gBEBXgCHgTAAF8FeAGbA7sBEgYWAR4GFgEeBcYA2wWAAL8FLgCWBcoBBAUuAMQFLgDLAwMAsAP2AJ4D9gDNBcYA2wY2ALgDugEiAyMAegAAAF4AAP2mAAD6ZAAA+uwAAPqGAAD6uwAV+p4AEPrEABD6ygAY+94ACvqWAAD6uQAA+tYAGvveABX7aAAK/ZIAG/tLABj7yAAA+qUAEPrEAAD8FQAd+7MAGPoDABX7ZQAK+g0AEPqfArsAAAK7AAABzQAAAzUAAAYwAAAMTgAABYAAAAsAAAADrAAAAsAAAAHUAAAHYAAAAzIAAAHNAAAA5gAAAAAAAAwSAMoNCwCkC3oApAdyAMoH9gBFCIYAlgdDANcKgAEWDsABFh2AARYKgAEWDsABFgqAAWAOwAFgHYABYAqAAWAOwAFgCoACSAqAAiAKgAIgCoACSA7AARYTQAEWDsABFhNAARYKgAGkCoABpgqAAaYMsgEWDLIBDgqAARYOwAEWHYABFgqAARYOwAEWCoABYA7AAWAdgAFgCoABYA7AAWAOwAEWE0ABFg7AARYTQAEWCbABGgmwAeILYgCXC2IAmApdAJUKXQEdC2IAlwtiAJcKXQCVCl0BHQsYAEAKEADnChAA5woQAQgKEAEIChABCAoQAQgKEAEIC6MAkgujAJILowCSC6MAkgvAAPQLwAD0C0AA0AtAANALQADQC4ABAAuAAQAL2gDmC9oA5gvaAOYKvwEyCMABEgjAARIIwACMC0ABAAtAAQAKgAFACoABQAqAAUANYADuDWABAAr2AMoJgAC4CwwBFgsMARYLDAEYCwwBFgsMARgJpgEYC20BAAttAQAG4QDmBuEA5g9IACAPSABkAAD8RwAA/IsPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkBzMAyglCAJ4IOgEHCDoBBw8mAMoH+P+iB0IA8gc7AKcK4gDKB/gARQc7AKAILgCWBz4Awwf4/6IHiABwB4gAcAeIAHoGX/+i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AAAnygAAJ+IAACf6AAAoPgAAKFYAAChuAAAohgAAKJ4AACiuAAAovgAAKM4AACkEAAApHAAAKTQAAClMAAApZAAAKXwAACmUAAAprAAAKcQAACncAAAqQQAAKqUAACraAAAq8gAAKwoAACsiAAArOgAAK1oAACtqAAAregAAK5IAACwPAAAszAAALOQAAC1xAAAuCQAALiEAAC45AAAuUQAALmkAAC6BAAAumQAALrEAAC9sAAAvhAAAL5wAAC+0AAAvzAAAL+QAAC/8AAAwFAAAMCwAADBEAAAwXAAAMHQAADCMAAAwpAAAMLwAADDUAAAw7AAAMQQAADEkAAAxPAAAMVQAADFsAAAxhAAAMZwAADG0AAAxxAAAMdwAADH2AAAyEAAAMioAADJEAAAyXgAAMngAADKSAAAzHgAAMzYAADNGAAAzVgAAM2YAADN2AAAzjgAAM/sAADRMAAA0ZAAANHwAADTkAAA1WgAANWoAADWCAAA2HwAANoQAADacAAA2tAAANswAADbkAAA2/AAANxQAADcsAAA3TAAAN2QAADfnAAA4XwAAONYAADl6AAA5kgAAOaoAADnCAAA52gAAOfIAADoKAAA6IgAAOjoAADpSAAA6cgAAOoIAADsnAAA7twAAO94AADv2AAA8DgAAPCYAADw+AAA8VgAAPG4AADyGAAA8xAAAPQ8AAD1KAAA9WgAAPagAAD4VAAA+LQAAPkUAAD5dAAA+dQAAPo0AAD6lAAA+vQAAPtUAAD7tAAA/BQAAPx0AAD81AAA/TQAAP2UAAD99AAA/lQAAP60AAD/FAAA/3QAAP/UAAEANAABAJQAAQD0AAEBVAABAbQAAQIUAAECdAABAtQAAQM0AAEEpAABBWAAAQXAAAEGIAABB0wAAQesAAEIDAABCGwAAQjMAAEJLAABCYwAAQqsAAELDAABC2wAAQvMAAEMLAABDGwAAQ00AAEOUAABDrAAAQ8QAAEQ1AABETQAARGUAAER9AABElQAARK0AAETFAABFBQAARRUAAEUvAABFPwAARVkAAEVzAABFjQAARaUAAEW9AABF1QAARe0AAEYHAABGHwAARkwAAEZkAABGfAAARpQAAEasAABGxAAARtwAAEciAABHOgAAR0oAAEelAABIRQAASF0AAEh1AABIjQAASK0AAEjFAABI3QAASPUAAEkN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AAEQHAABECwAARA+AAEQUAABEGAAARCVAAEQyQABEOEAARD5AAERLAABEWEAARGhAAER4QABEg0AARJKAAESdQABEpEAARLBAAETIQABE1wAARQHAAEUYgABFJUAARTKAAEU3AABFO4AARUaAAEVLAABFVgAARV0AAEVpQABFgUAARYXAAEWKQABFjsAARZkAAEWfgABFqoAARbmAAEXIgABF3MAAReFAAEYTwABGUYAARo9AAEa8AABG04AARv8AAEcXQABHM4AAR1RAAEd2AABHj0AAR7AAAEfHgABH1kAAR+gAAEf5QABICwAASErAAEiMAABItEAASMeAAEjRgABI6YAASPsAAEkgQABJNMAASVlAAEl1QABJjQAASamAAEnEwABJ1oAASfpAAEoMQABKGwAASjEAAEpDQABKSkAASmXAAEp3gABKkIAASqyAAErJwABK2gAASvkAAEsLAABLHMAASygAAEs5wABLScAAS1xAAEtogABLfsAAS4iAAEufQABLwEAAS9CAAEvsAABMDsAATBjAAExDgABMZkAATHbAAEyHgABMkEAATJkAAEyjQABMqcAATLOAAEy4AABMvIAATNRAAEzYwABM3UAATOHAAEzmQABM6sAATO9AAEzzwABM+EAATPzAAE0BQABNBcAATR7AAE0jQABNJ8AATSxAAE1LQABNT8AATWFAAE1lwABNakAATW7AAE1zQABNd8AATXxAAE2AwABNhUAATYnAAE2OQABNksAATZdAAE2bwABNoEAATaTAAE2pQABNrcAATbJAAE22wABNu0AATb/AAE3JgABN30AATeiAAE39AABOHYAATi0AAE5HwABOaEAATnHAAE6aAABOu4AATsLAAE7HQABOy8AATtBAAE7UwABO2UAATt3AAE7iQABO5sAATutAAE7vwABO9EAATvjAAE79QABPAcAATwZAAE8KwABPFIAATxkAAE85wABPPkAAT1lAAE9dwABPZ8AAT2xAAE9wwABPewAAT4GAAE+LQABPmsAAT6qAAE+vAABPs4AAT7gAAE+8gABPwQAAT8WAAE/KAABPzoAAT9MAAE/XgABP34AAT+eAAE/vgABP94AAT/+AAFAFgABQDYAAUBWAAFAdgABQJYAAUFeAAFCeAABQ+cAAUSmAAFExgABROYAAUUGAAFFJgABRUUAAUV2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A0QDOgMyAyoDIgMaAxIDCgMCAvoC8gLqAuIC2gLSAsoCwgK6ArICqgKiApoCkgKKAoICegJyAmoCYgJaAlICSgJCAjoCMgIqAiICGgIUAg4CCAICBsAAAgVfBsAAAgVTBsAAAgVhBsAAAgVVBsAAAwVeBV4GwAADBV4FUQbAAAMFXgVfBsAAAwVeBVMGwAADBV4FYQbAAAMFXgVVBsAAAwVRBV4GwAADBVEFUQbAAAMFUQVfBsAAAwVRBVMGwAADBVEFYQbAAAMFUQVVBsAAAwVfBV4GwAADBV8FUQbAAAMFXwVfBsAAAwVfBVMGwAADBV8FYQbAAAMFXwVVBsAAAwVTBV4GwAADBVMFUQbAAAMFUwVfBsAAAwVTBVMGwAADBVMFYQbAAAMFUwVVBsAAAwVhBV4GwAADBWEFUQbAAAMFYQVfBsAAAwVhBVMGwAADBWEFYQbAAAMFYQVVBsAAAwVVBV4GwAADBVUFUQbAAAMFVQVfBsAAAwVVBVMGwAADBVUFYQbAAAMFVQVVBsEABAVeBV4FXgbBAAQFXgVeBVEGwQAEBV4FXgVfBsEABAVeBV4FUwbBAAQFXgVeBWEGwQAEBV4FXgVVBsEABAVeBVEFXgbBAAQFXgVRBVEGwQAEBV4FUQVfBsEABAVeBVEFUwbBAAQFXgVRBWEGwQAEBV4FUQVVBsEABAVeBV8FXgbBAAQFXgVfBVEGwQAEBV4FXwVfBsEABAVeBV8FUwbBAAQFXgVfBWEGwQAEBV4FXwVVBsEABAVeBVMFXgbBAAQFXgVTBVEGwQAEBV4FUwVfBsEABAVeBVMFUwbBAAQFXgVTBWEGwQAEBV4FUwVVBsEABAVeBWEFXgbBAAQFXgVhBVEGwQAEBV4FYQVfBsEABAVeBWEFUwbBAAQFXgVhBWEGwQAEBV4FYQVVBsEABAVeBVUFXgbBAAQFXgVVBVEGwQAEBV4FVQVfBsEABAVeBVUFUwbBAAQFXgVVBWEGwQAEBV4FVQVVBsEABAVRBV4FXgbBAAQFUQVeBVEGwQAEBVEFXgVfBsEABAVRBV4FUwbBAAQFUQVeBWEGwQAEBVEFXgVVBsEABAVRBVEFXgbBAAQFUQVRBVEGwQAEBVEFUQVfBsEABAVRBVEFUwbBAAQFUQVRBWEGwQAEBVEFUQVVBsEABAVRBV8FXgbBAAQFUQVfBVEGwQAEBVEFXwVfBsEABAVRBV8FUwbBAAQFUQVfBWEGwQAEBVEFXwVVBsEABAVRBVMFXgbBAAQFUQVTBVEGwQAEBVEFUwVfBsEABAVRBVMFUwbBAAQFUQVTBWEGwQAEBVEFUwVVBsEABAVRBWEFXgbBAAQFUQVhBVEGwQAEBVEFYQVfBsEABAVRBWEFUwbBAAQFUQVhBWEGwQAEBVEFYQVVBsEABAVRBVUFXgbBAAQFUQVVBVEGwQAEBVEFVQVfBsEABAVRBVUFUwbBAAQFUQVVBWEGwQAEBVEFVQVVBsEABAVfBV4FXgbBAAQFXwVeBVEGwQAEBV8FXgVfBsEABAVfBV4FUwbBAAQFXwVeBWEGwQAEBV8FXgVVBsEABAVfBVEFXgbBAAQFXwVRBVEGwQAEBV8FUQVfBsEABAVfBVEFUwbBAAQFXwVRBWEGwQAEBV8FUQVVBsEABAVfBV8FXgbBAAQFXwVfBVEGwQAEBV8FXwVfBsEABAVfBV8FUwbBAAQFXwVfBWEGwQAEBV8FXwVVBsEABAVfBVMFXgbBAAQFXwVTBVEGwQAEBV8FUwVfBsEABAVfBVMFUwbBAAQFXwVTBWEGwQAEBV8FUwVVBsEABAVfBWEFXgbBAAQFXwVhBVEGwQAEBV8FYQVfBsEABAVfBWEFUwbBAAQFXwVhBWEGwQAEBV8FYQVVBsEABAVfBVUFXgbBAAQFXwVVBVEGwQAEBV8FVQVfBsEABAVfBVUFUwbBAAQFXwVVBWEGwQAEBV8FVQVVBsEABAVTBV4FXgbBAAQFUwVeBVEGwQAEBVMFXgVfBsEABAVTBV4FUwbBAAQFUwVeBWEGwQAEBVMFXgVVBsEABAVTBVEFXgbBAAQFUwVRBVEGwQAEBVMFUQVfBsEABAVTBVEFUwbBAAQFUwVRBWEGwQAEBVMFUQVVBsEABAVTBV8FXgbBAAQFUwVfBVEGwQAEBVMFXwVfBsEABAVTBV8FUwbBAAQFUwVfBWEGwQAEBVMFXwVVBsEABAVTBVMFXgbBAAQFUwVTBVEGwQAEBVMFUwVfBsEABAVTBVMFUwbBAAQFUwVTBWEGwQAEBVMFUwVVBsEABAVTBWEFXgbBAAQFUwVhBVEGwQAEBVMFYQVfBsEABAVTBWEFUwbBAAQFUwVhBWEGwQAEBVMFYQVVBsEABAVTBVUFXgbBAAQFUwVVBVEGwQAEBVMFVQVfBsEABAVTBVUFUwbBAAQFUwVVBWEGwQAEBVMFVQVVBsEABAVhBV4FXgbBAAQFYQVeBVEGwQAEBWEFXgVfBsEABAVhBV4FUwbBAAQFYQVeBWEGwQAEBWEFXgVVBsEABAVhBVEFXgbBAAQFYQVRBVEGwQAEBWEFUQVfBsEABAVhBVEFUwbBAAQFYQVRBWEGwQAEBWEFUQVVBsEABAVhBV8FXgbBAAQFYQVfBVEGwQAEBWEFXwVfBsEABAVhBV8FUwbBAAQFYQVfBWEGwQAEBWEFXwVVBsEABAVhBVMFXgbBAAQFYQVTBVEGwQAEBWEFUwVfBsEABAVhBVMFUwbBAAQFYQVTBWEGwQAEBWEFUwVVBsEABAVhBWEFXgbBAAQFYQVhBVEGwQAEBWEFYQVfBsEABAVhBWEFUwbBAAQFYQVhBWEGwQAEBWEFYQVVBsEABAVhBVUFXgbBAAQFYQVVBVEGwQAEBWEFVQVfBsEABAVhBVUFUwbBAAQFYQVVBWEGwQAEBWEFVQVVBsEABAVVBV4FXgbBAAQFVQVeBVEGwQAEBVUFXgVfBsEABAVVBV4FUwbBAAQFVQVeBWEGwQAEBVUFXgVVBsEABAVVBVEFXgbBAAQFVQVRBVEGwQAEBVUFUQVfBsEABAVVBVEFUwbBAAQFVQVRBWEGwQAEBVUFUQVVBsEABAVVBV8FXgbBAAQFVQVfBVEGwQAEBVUFXwVfBsEABAVVBV8FUwbBAAQFVQVfBWEGwQAEBVUFXwVVBsEABAVVBVMFXgbBAAQFVQVTBVEGwQAEBVUFUwVfBsEABAVVBVMFUwbBAAQFVQVTBWEGwQAEBVUFUwVVBsEABAVVBWEFXgbBAAQFVQVhBVEGwQAEBVUFYQVfBsEABAVVBWEFUwbBAAQFVQVhBWEGwQAEBVUFYQVVBsEABAVVBVUFXgbBAAQFVQVVBVEGwQAEBVUFVQVfBsEABAVVBVUFUwbBAAQFVQVVBWEGwQAEBVUFVQVVACYBpgGcAZIBiAF+AXQBagFgAVYBTAFCATgBLgEkARoBEAEGAPwA8gDoAN4A1ADKAMAAtgCsAKIAmgCSAIoAggB6AHIAagBiAFoAVABOBqkAAgVTBqkAAgVVBqkAAwVRBVEGqQADBVEFUwapAAMFUQVVBqkAAwVTBVEGqQADBVMFUwapAAMFUwVVBqkAAwVVBVEGqQADBVUFUwapAAMFVQVVBqoABAVRBVEFUQaqAAQFUQVRBVMGqgAEBVEFUQVVBqoABAVRBVMFUQaqAAQFUQVTBVMGqgAEBVEFUwVVBqoABAVRBVUFUQaqAAQFUQVVBVMGqgAEBVEFVQVVBqoABAVTBVEFUQaqAAQFUwVRBVMGqgAEBVMFUQVVBqoABAVTBVMFUQaqAAQFUwVTBVMGqgAEBVMFUwVVBqoABAVTBVUFUQaqAAQFUwVVBVMGqgAEBVMFVQVVBqoABAVVBVEFUQaqAAQFVQVRBVMGqgAEBVUFUQVVBqoABAVVBVMFUQaqAAQFVQVTBVMGqgAEBVUFUwVVBqoABAVVBVUFUQaqAAQFVQVVBVMGqgAEBVUFVQVVACsDogOYA4QDegNmA1wDUgNIAz4DNAMqAyADDAMCAu4C5ALQAsYCvAKyAqgCngKUAooCdgJsAlgCTgI6AjACJgIcAhICCAH+AfQB5AHcAcwBxAG0AawBIgArA0oDQAMsAyIDDgMEAvoC8ALmAtwC0gLIArQCqgKWAowCeAJuAmQCWgJQAkYCPAIyAh4CFAIAAfYB4gHYAc4BxAG6AbABpgGcAYwBhAF0AWwBXAFUAUgAOAL8AvIC6ALeAtQCygLAArYCrAKiApgCjgKEAnoCcAJmAlwCUgJIAj4CNAIqAiACFgIMAgIB+AHuAeQB2gHQAcYBvAGyAagBngGUAYoBgAF2AWwBYgFYAU4BRAE8ATQBLAEkARwBFAEMAQQA/AB4AHIGxQACBZwGrgACBY8AOAJ+AnQCagJgAlYCTAJCAjgCLgIkAhoCEAIGAfwB8gHoAd4B1AHKAcABtgGsAaIBmAGOAYQBegFwAWYBXAFSAUgBPgE0ASoBIAEWAQwBAgD4AO4A5ADaANAAxgC+ALYArgCmAJ4AlgCOAIYAfgB4AHIGxAACBZwGrQACBY8GxQADBV4FnAbFAAMFUQWcBq4AAwVRBY8GxQADBV8FnAbFAAMFUwWcBq4AAwVTBY8GxQADBWEFnAbFAAMFVQWcBq4AAwVVBY8GxgAEBV4FXgWcBsYABAVeBVEFnAbGAAQFXgVfBZwGxgAEBV4FUwWcBsYABAVeBWEFnAbGAAQFXgVVBZwGxgAEBVEFXgWcBsYABAVRBVEFnAavAAQFUQVRBY8GxgAEBVEFXwWcBsYABAVRBVMFnAavAAQFUQVTBY8GxgAEBVEFYQWcBsYABAVRBVUFnAavAAQFUQVVBY8GxgAEBV8FXgWcBsYABAVfBVEFnAbGAAQFXwVfBZwGxgAEBV8FUwWcBsYABAVfBWEFnAbGAAQFXwVVBZwGxgAEBVMFXgWcBsYABAVTBVEFnAavAAQFUwVRBY8GxgAEBVMFXwWcBsYABAVTBVMFnAavAAQFUwVTBY8GxgAEBVMFYQWcBsYABAVTBVUFnAavAAQFUwVVBY8GxgAEBWEFXgWcBsYABAVhBVEFnAbGAAQFYQVfBZwGxgAEBWEFUwWcBsYABAVhBWEFnAbGAAQFYQVVBZwGxgAEBVUFXgWcBsYABAVVBVEFnAavAAQFVQVRBY8GxgAEBVUFXwWcBsYABAVVBVMFnAavAAQFVQVTBY8GxgAEBVUFYQWcBsYABAVVBVUFnAavAAQFVQVVBY8AAQAIBVEFUwVVBV4FXwVhBY4FmwABAAAAAQAIAAIAYgAuBUQFRQVGBUcFSAVJBUoFXgVfBWAFYQViBWMFZAVlBWYFZwWABZsFnAWdBZ4FnwWgBaEFogWjBaQFpQWmBacFrga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswAAgALBTsFPQAABT8FPwADBUEFQwAEBVEFUQAHBVMFVQAIBVcFXAALBX8FfwARBY4FmgASBa0FrQAfBqgGsQAgBrYGuQAqAAEAAAABAAgAAgAkAA8GKgYrBiwGLQYuBi8GMAYxBjIGMwY3BjgGNgY0BjUAAQAPBQ4FDwUQBRIFEwUUBRYFFwUYBRkFOwU8BZIFlAWVAAEAAAABAAgAAgAoABEFvAW9BjkGOgY7BjwGPQY+Bj8GQAZBBkIGRgZHBkUGQwZEAAEAEQKnAvcFDgUPBRAFEgUTBRQFFgUXBRgFGQU7BTwFkgWUBZUAAQAAAAEACAABACIADQAGAAAAAQAIAAMAAQJKAAEAFAABAfgAAQAAACsAAQABBpEAAQAAAAEACAACAC4AFAYfBiAGIQYiBiMGJAYlBiYGJwYoBh8GIAYhBiIGIwYkBiUGJgYnBigAAgAEBQ4FEAAABRIFFAADBRYFGQAGBg4GFwAKAAYAAAACACYACgADAAEALgABABIAAAABAAAAKQACAAEGDgYXAAAAAwABABIAAQG4AAAAAQAAACkAAgACBh8GMwAABlcGVwAV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ABAAfAB2AHAAagBkAF4AWABSAEwARgBAADoANAAuACgAIgDJAAIGkADNAAIGgwDQAAIGhwDOAAIGfADVAAIGgADKAAIGegDRAAIGhADWAAIGiwDGAAIGfQDTAAIGewDMAAIGgQDSAAIGggDPAAIGfgDUAAIGfwDLAAIGeADHAAMGfQZ4AAYALAAmACAAGgAUAA4ApQACBoQApgACBosApwACBn0AowACBoEApAACBoIAqAACBooABwA0AC4AKAAiABwAFgAQAJYAAgZ8AJIAAgaEAJMAAgZ3AJAAAgaBAJQAAgaCAJEAAgZ+AJUAAgZ4AAEABACLAAIGhAAXAL4AtgCuAKYAngCWAJAAigCEAH4AeAByAGwAZgBgAFoAVABOAEgAQgA8ADYAMABvAAIGkABzAAIGgwBnAAIGhwBkAAIGfAByAAIGgABgAAIGegBmAAIGhABxAAIGiwBjAAIGfQBpAAIGewBuAAIGiQBiAAIGgQBrAAIGiABoAAIGggBlAAIGfgBqAAIGfwBhAAIGeABsAAMGfAZ6AG0AAwZ8BngAdwADBoEGgwB2AAMGgQaAAHUAAwaBBnoAdAADBoEGeAAGACwAJgAgABoAFAAOAFkAAghiAFcAAgaEAFgAAgaLAFoAAgZ3AFsAAgaJAFYAAgaCAAUAJAAeABgAEgAMAE4AAgaEAE0AAgaBAEsAAgaIAE8AAgaCAEwAAgZ4AAMAFAAOAAgARAACCGIAQgACBoQAQwACBosAAgAMAAYAPgACBnwAPwACBngAAQAEAAoAAgaFABsA5ADcANQAzADEALwAtACsAKQAngCYAJIAjACGAIAAegB0AG4AaABiAFwAVgBQAEoARAA+ADgABAACBoMAFAACBo4ACAACBoUACQACCIoADQACBocACwACBnwAFgACBoAABQACBnoAEwACBoQAFQACBosAAwACBn0AEQACBnsABwACBoEADgACBoIAHwACB+EADAACBn4AEgACBn8ABgACBngAEAADBoQGfAAPAAMGfQZ8ABoAAwaBBoMAGQADBoEGgAAYAAMGgQZ6ABcAAwaBBngAHgADBn4GgAAdAAMGfgZ6ABwAAwZ+BngAAQA/AAIADQA9AEEASQBUAF8AiQCNAKEAxQEJAQ4BGAEjASsBQAFDAUQBdgF+AYsBmQGlAaYBxQHIAc8B1QHtAfgCEQIc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BacFrgYfBiAGIQYiBiMGJAYlBiYGJwYoBp4GvwbABsEGwgbDBsQGxQbGBscGyAbJBsoGywbMBywHLQcuBy8HMAcxB2cHaAdpB2oHawdsAAIAJwACAAIAAACNAJYAAQDFANYACwDbAOgAHQFAAUAAKwGOAY4ALAH5AhQALQIWAhcASQIZAhkASwLUAtYATALYAtgATwLaAuEAUANGA0cAWANMA1UAWgNoA2gAZANyA3IAZQN7A3sAZgVBBUMAZwVNBU0AagVTBVUAawVXBV0AbgV7BXwAdQWCBYYAdwWOBZEAfAWTBZMAgAWWBZoAgQWtBa0AhgYOBhcAhwaRBpEAkQaoBrEAkga2BrkAnAciByMAoAclByYAogcoBygApAcrBysApQddB14ApgdgB2EAqAdjB2MAqgdmB2YAqwACAAAAAAAA/jAAwAAAAAAAAAAAAAAAAAAAAAAAAAAACfMAAAABAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMgAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkEWgRbBFwEXQReBF8EYARhBGIEYwRkBGUEZgRnBGgEaQRqBGsEbARtBG4EbwRwBHEEcgRzBHQEdQR2BHcEeAR5BHoEewR8BH0EfgR/BIAEgQSCBIMEhASFBIYEhwSIBIkEigSLBIwEjQSOBI8EkASRBJIEkwSUBJUElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSyBLMEtAS1BLYEtwS4BLkEugS7BLwEvQS+BL8EwATBBMIEwwTEBMUExgTHBMgEyQTKBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoE2wTcBN0E3gTfBOAE4QTiBOME5ATlBOYE5wToBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gT3BPgE+QT6BPsE/AT9BP4E/wUABQEFAgUDBQQFBQUGBQcFCAUJBQoFCwUMBQ0FDgUPBRAFEQUSBRMFFAUVBRYFFwUYBRkFGgUbBRwFHQUeBR8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBTEFMgUzBTQFNQU2BTcFOAU5BToFOwU8BT0FPgU/BUAFQQVCBUMFRAVFBUYFRwVIBUkFSgVLBUwFTQVOBU8FUAVRBVIFUwVUBVUFVgVXBVgFWQVaBVsFXAVdBV4FXwVgBWEFYgVjBWQFZQVmBWcFaAVpBWoFawVsBW0FbgVvBXAFcQVyBXMFdAV1BXYFdwV4BXkFegV7BXwFfQV+BX8FgAWBBYIFgwWEBYUFhgWHBYgFiQWKBYsFjAWNBY4FjwWQBZEFkgWTBZQFlQWWBZcFmAWZBZoFmwWcBZ0FngWfBaAFoQWiBaMFpAWlBaYFpwWoBakFqgWrBawFrQWuBa8FsAWxBbIFswW0BbUFtgW3BbgFuQW6BbsFvAW9Bb4FvwXABcEFwgXDBcQFxQXGBccFyAXJBcoFywXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBesF7AXtBe4F7wXwBfEF8gXzBfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gX/BgAGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYRBhIGEwYUBhUGFgYXBhgGGQYaBhsGHAYdBh4GHwYgBiEGIgYjBiQGJQYmBicGKAYpBioGKwYsBi0GLgYvBjAGMQYyBjMGNAY1BjYGNwY4BjkGOgY7BjwGPQY+Bj8GQAZBBkIGQwZEBkUGRgZHBkgGSQZKBksGTAZNBk4GTwZQBlEGUgZTBlQGVQZWBlcGWAZZBloGWwZcBl0GXgZfBmAGYQZiBmMGZAZlBmYGZwZoBmkGagZrBmwGbQZuBm8GcAZxBnIGcwZ0BnUGdgZ3BngGeQZ6BnsGfAZ9Bn4GfwaABoEGggaDBoQGhQaGBocGiAaJBooGiwaMBo0GjgaPBpAGkQaSBpMGlAaVBpYGlwaYBpkGmgabBpwGnQaeBp8GoAahBqIGowakBqUGpganBqgGqQaqBqsGrAatBq4GrwawBrEGsgazBrQGtQa2BrcGuAa5BroGuwa8Br0Gvga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswGzQbOBs8G0AbRBtIG0wbUBtUG1gbXBtgG2QbaBtsG3AbdBt4G3wbgBuEG4gbjBuQG5QbmBucG6AbpBuoG6wbsBu0G7gbvBvAG8QbyBvMG9Ab1BvYG9wb4BvkG+gb7BvwG/Qb+Bv8HAAcBBwIHAwcEBwUHBgcHBwgHCQcKBwsHDAcNBw4HDwcQBxEHEgcTBxQHFQcWBxcHGAcZBxoHGwccBx0HHgcfByAHIQciByMHJAclByYHJwcoBykHKgcrBywHLQcuBy8HMAcxBzIHMwc0BzUHNgc3BzgHOQc6BzsHPAc9Bz4HPwdAB0EHQgdDB0QHRQdGB0cHSAdJB0oHSwdMB00HTgdPB1AHUQdSB1MHVAdVB1YHVwdYB1kHWgdbB1wHXQdeB18HYAdhB2IHYwdkB2UHZgdnB2gHaQdqB2sHbAdtB24HbwdwB3EHcgdzB3QHdQd2B3cHeAd5B3oHewd8B30Hfgd/B4AHgQeCB4MHhAeFB4YHhweIB4kHigeLB4wHjQeOB48HkAeRB5IHkweUB5UHlgeXB5gHmQeaB5sHnAedB54HnwegB6EHogejB6QHpQemB6cHqAepB6oHqwesB60HrgevB7AHsQeyB7MHtAe1B7YHtwe4B7kHuge7B7wHvQe+B78HwAfBB8IHwwfEB8UHxgfHB8gHyQfKB8sHzAfNB84HzwfQB9EH0gfTB9QH1QfWB9cH2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gfrB+wH7QfuB+8H8AfxB/IH8wf0B/UH9gf3B/gH+Qf6B/sH/Af9B/4H/wgACAEIAggDCAQIBQgGCAcICAgJCAoICwgMCA0IDggPCBAIEQgSCBMIFAgVCBYIFwgYCBkIGggbCBwIHQgeCB8IIAghCCIIIwgkCCUIJggnCCgIKQgqCCsILAgtCC4ILwgwCDEIMggzCDQINQg2CDcIOAg5CDoIOwg8CD0IPgg/CEAIQQhCCEMIRAhFCEYIRwhICEkISghLCEwITQhOCE8IUAhRCFIIUwhUCFUIVghXCFgIWQhaCFsIXAhdCF4IXwhgCGEIYghjCGQIZQhmCGcIaAhpCGoIawhsCG0IbghvCHAIcQhyCHMIdAh1CHYIdwh4CHkIegh7CHwIfQh+CH8IgAiBCIIIgwiECIUIhgiHCIgIiQiKCIsIjAiNCI4IjwiQCJEIkgiTCJQIlQiWCJcImAiZCJoImwicCJ0IngifCKAIoQiiCKMIpAilCKYIpwioCKkIqgirCKwIrQiuCK8IsAixCLIIswi0CLUItgi3CLgIuQi6CLsIvAi9CL4IvwjACMEIwgjDCMQIxQjGCMcIyAjJCMoIywjMCM0IzgjPCNAI0QjSCNMI1AjVCNYI1wjYCNkI2gjbCNwI3QjeCN8I4AjhCOII4wjkCOUI5gjnCOgI6QjqCOsI7AjtCO4I7wjwCPEI8gjzCPQI9Qj2CPcI+Aj5CPoI+wj8CP0I/gj/CQAJAQkCCQMJBAkFCQYJBwkICQkJCgkLCQwJDQkOCQ8JEAkRCRIJEwkUCRUJFgkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJJQkmCScJKAkpCSoJKwksCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgk7CTwJPQk+CT8JQAlBCUIJQwlECUUJRglHCUgJSQlKCUsJTAlNCU4JTwlQCVEJUglTCVQJVQlWCVcJWAlZCVoJWwlcCV0JXglfCWAJYQliCWMJZAllCWYJZwloCWkJaglrCWwJbQluCW8JcAlxCXIJcwl0CXUJdgl3CXgJeQl6CXsJfAl9CX4JfwmACYEJggmDCYQJhQmGCYcJiAmJCYoJiwmMCY0JjgmPCZAJkQmSCZMJlAmVCZYJlwmYCZkJmgmbCZwJnQmeCZ8JoAmhCaIJowmkCaUJpgmnCagJqQmqCasJrAmtCa4JrwmwCbEJsgmzCbQJtQm2CbcJuAm5CboJuwm8Cb0Jvgm/CcAJwQnCCcMJxAnFCcYJxwnICckJygnLCcwJzQnOCc8J0AnRCdIJ0wnUCdUJ1gnXCdgJ2QnaCdsJ3AndCd4J3wngCeEJ4gnjCeQJ5QnmCecJ6AnpCeoJ6wnsCe0J7gnvCfAJ8QnyCfMJ9An1CfYJ9wn4CfkJ+gn7CfwJ/Qn+Cf8KAAoBCgIKAwoECgUKBgoHCggKCQoKCgsKDAoNCg4KDwoQChEKEgoTChQKFQoWChcKGAoZChoKGwocCh0KHgofCiAKIQoiCiMKJAolCiYKJwooCikKKgorCiwKLQouCi8KMAoxCjIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwpACkEKQgpDCkQKRQpGCkcKSApJCkoKSwpMCk0KTgpPClAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KYAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpwCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CoAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KkAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqgCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCrAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KwArBCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrQCtEK0grTCtQK1QrWCtcK2ArZCtoK2wrcCt0K3grfCuAK4QriCuMK5ArlCuYK5wroCukK6grrCuwK7QruCu8K8ArxCvIHdW5pMDA0MQd1bmkwMEM0B3VuaTAwQzMHdW5pMDBDMAd1bmkwMEMxB3VuaTAwQzIHdW5pMDBDNQd1bmkwMUZBB3VuaUVFMDIHdW5pMDEwMAd1bmkwMTAyB3VuaTAxMDQHdW5pMDFDRAd1bmkwMURFB3VuaTAxRTAHdW5pMDIwMAd1bmkwMjAyB3VuaTAyMjYHdW5pMUUwMAd1bmkxRUEwB3VuaTFFQTIHdW5pMUVBNAd1bmkxRUE2B3VuaTFFQTgHdW5pMUVBQQd1bmkxRUFDB3VuaTFFQUUHdW5pMUVCMAd1bmkxRUIyB3VuaTFFQjQHdW5pMUVCNgd1bmkwMzkxB3VuaTAzODYHdW5pMUYwOAd1bmkxRjA5B3VuaTFGMEEHdW5pMUYwQgd1bmkxRjBDB3VuaTFGMEQHdW5pMUYwRQd1bmkxRjBGB3VuaTFGQjgHdW5pMUZCOQd1bmkxRkJBB3VuaTAyM0EHdW5pMUZCQgd1bmkwNDEwB3VuaTA0RDAHdW5pMDREMgd1bmkxRjg4B3VuaTFGODkHdW5pMUY4QQd1bmkxRjhCB3VuaTFGOEMHdW5pMUY4RAd1bmkxRjhFB3VuaTFGOEYHdW5pMUZCQwd1bmkwMzlCB3VuaTAwQzYHdW5pMDFFMgd1bmkwMUZDB3VuaTA0RDQHdW5pMDA0Mgd1bmkxRTAyB3VuaTFFMDQHdW5pMUUwNgd1bmkwMjQzB3VuaTAxODEHdW5pMDQxMgd1bmkwMzkyB3VuaTAwNDMHdW5pMDE4Nwd1bmkwMEM3B3VuaTAxMDYHdW5pMDEwOAd1bmkwMTBBB3VuaTAxMEMHdW5pMUUwOAd1bmkwMjNCB3VuaTAxODYHdW5pMDNGOQd1bmkwMDQ0B3VuaTAxOEEHdW5pMDEwRQd1bmkxRTBBB3VuaTFFMEMHdW5pMUUwRQd1bmkxRTEwB3VuaTFFMTIHdW5pMDE4OQd1bmkwMUYyB3VuaTAxQzUHdW5pMDA0NQd1bmkwMEM4B3VuaTAwQzkHdW5pMDBDQQd1bmkwMENCB3VuaTAxMTIHdW5pMDExNAd1bmkwMTE2B3VuaTAxMTgHdW5pMDExQQd1bmkwMjA0B3VuaTAyMDYHdW5pMDIyOAd1bmkxRTE0B3VuaTFFMTYHdW5pMUUxOAd1bmkxRTFBB3VuaTFFMUMHdW5pMUVCOAd1bmkxRUJBB3VuaTFFQkMHdW5pMUVCRQd1bmkxRUMwB3VuaTFFQzIHdW5pMUVDNAd1bmkxRUM2B3VuaTAyNDYHdW5pMDE4RQd1bmkwMzk1B3VuaTAzODgHdW5pMUYxOAd1bmkxRjE5B3VuaTFGMUEHdW5pMUYxQgd1bmkxRjFDB3VuaTFGMUQHdW5pMUZDOAd1bmkxRkM5B3VuaTA0MTUHdW5pMDQwMAd1bmkwNDAxB3VuaTA0RDYHdW5pMDA0Ngd1bmkwMTkxB3VuaTFFMUUHdW5pMjEzMgd1bmkwMDQ3B3VuaTAxRTQHdW5pMDE5Mwd1bmkwMTFDB3VuaTAxMUUHdW5pMDEyMAd1bmkwMTIyB3VuaTAxRTYHdW5pMDFGNAd1bmkxRTIwB3VuaUUwMDIHdW5pRTAwMwd1bmlFMDA0B3VuaUUwMDUHdW5pRTAwNgd1bmlFMDA3B3VuaUUwMDgHdW5pRTAwOQd1bmlFMDBBB3VuaUUwMEIHdW5pMDA0OAd1bmkxRTI4B3VuaTAxMjQHdW5pMDIxRQd1bmkxRTIyB3VuaTFFMjQHdW5pMUUyNgd1bmkxRTJBB3VuaTAxMjYHdW5pMDRDNwd1bmkwNEEyB3VuaTA0QzkHdW5pMDRBNAd1bmkwMUY2B3VuaTAzOTcHdW5pMDM4OQd1bmkxRjI4B3VuaTFGMjkHdW5pMUYyQQd1bmkxRjJCB3VuaTFGMkMHdW5pMUYyRAd1bmkxRjJFB3VuaTFGMkYHdW5pMUZDQQd1bmkxRkNCB3VuaTA0MUQHdW5pMUY5OAd1bmkxRjk5B3VuaTFGOUEHdW5pMUY5Qgd1bmkxRjlDB3VuaTFGOUQHdW5pMUY5RQd1bmkxRjlGB3VuaTFGQ0MHdW5pMDA0OQd1bmkwMENGB3VuaTFFMkUHdW5pMDE5Nwd1bmkxRTJDB3VuaTAwQ0MHdW5pMDBDRAd1bmkwMENFB3VuaTAxMjgHdW5pMDEyQQd1bmkwMTJDB3VuaTAxMkUHdW5pMDEzMAd1bmkwMUNGB3VuaTAyMDgHdW5pMDIwQQd1bmkxRUM4B3VuaTFFQ0EHdW5pMDE5Ngd1bmkwMzk5B3VuaTAzOEEHdW5pMDNBQQd1bmkxRjM4B3VuaTFGMzkHdW5pMUYzQQd1bmkxRjNCB3VuaTFGM0MHdW5pMUYzRAd1bmkxRjNFB3VuaTFGM0YHdW5pMUZEOAd1bmkxRkQ5B3VuaTFGREEHdW5pMUZEQgd1bmkwNDA2B3VuaTA0MDcHdW5pRTAwQwd1bmlFMDBEB3VuaUUwMEUHdW5pRTAwRgd1bmlFMDEwB3VuaUUwMTEHdW5pRTAxMgd1bmlFMDEzB3VuaUUwMTQHdW5pRTAxNQd1bmlFMDE2B3VuaUUwMTcHdW5pRTAxOAd1bmlFMDE5B3VuaUUwMUEHdW5pRTAxQgd1bmlFMDFDB3VuaUUwMUQHdW5pRTAxRQd1bmlFMDFGB3VuaUUwMjAHdW5pRTAyMQd1bmlFMDIyB3VuaUUwMjMHdW5pRTAyNAd1bmlFMDI1B3VuaUUwMjYHdW5pRTAyNwd1bmlFMDI4B3VuaUUwMjkHdW5pRTAyQQd1bmlFMDJCB3VuaTAwNEEHdW5pMDEzNAd1bmkwMjQ4B3VuaTAzN0YHdW5pMDQwOAd1bmkwMDRCB3VuaTAxMzYHdW5pMDFFOAd1bmkxRTMwB3VuaTFFMzIHdW5pMUUzNAd1bmkwNEEwB3VuaTA0OUEHdW5pMDE5OAd1bmkwMzlBB3VuaTAwNEMHdW5pMDEzOQd1bmkwMTNCB3VuaTAxM0QHdW5pMUUzNgd1bmkxRTM4B3VuaTFFM0EHdW5pMUUzQwd1bmkwMTQxB3VuaTAyM0QHdW5pMDFDOAd1bmkwMDREB3VuaTFFM0UHdW5pMUU0MAd1bmkxRTQyB3VuaTA0Q0QHdW5pMDM5Qwd1bmkwM0ZBB3VuaTA0MUMHdW5pMDA0RQd1bmkwMEQxB3VuaTAxNDMHdW5pMDE0NQd1bmkwMTQ3B3VuaTAxRjgHdW5pMUU0NAd1bmkxRTQ2B3VuaTFFNDgHdW5pMUU0QQd1bmkwMTlEB3VuaTAxNEEHdW5pMDQxOAd1bmkwNDBEB3VuaTA0MTkHdW5pMDRFMgd1bmkwNEU0B3VuaTA0OEEHdW5pMDM3Ngd1bmkwMzlEB3VuaTAxQ0IHdW5pMDA0Rgd1bmkwMEQ2B3VuaTAwRDUHdW5pMDBEOAd1bmkwMUEwB3VuaTAwRDIHdW5pMDBEMwd1bmkwMEQ0B3VuaTAxNEMHdW5pMDE0RQd1bmkwMTUwB3VuaTAxRDEHdW5pMDFFQQd1bmkwMUVDB3VuaTAyMEMHdW5pMDIwRQd1bmkwMjJBB3VuaTAyMkMHdW5pMDIyRQd1bmkwMjMwB3VuaTFFNEMHdW5pMUU0RQd1bmkxRTUwB3VuaTFFNTIHdW5pMUVDQwd1bmkxRUNFB3VuaTFFRDAHdW5pMUVEMgd1bmkxRUQ0B3VuaTFFRDYHdW5pMUVEOAd1bmkxRURBB3VuaTFFREMHdW5pMUVERQd1bmkxRUUwB3VuaTFFRTIHdW5pMDFGRQd1bmkwMzlGB3VuaTAzOEMHdW5pMUY0OAd1bmkxRjQ5B3VuaTFGNEEHdW5pMUY0Qgd1bmkxRjRDB3VuaTFGNEQHdW5pMUZGOAd1bmkwM0Y0B3VuaTFGRjkHdW5pMDQxRQd1bmkwNEU2B3VuaTAxOUYHdW5pMDRFOAd1bmkwNEVBB3VuaTAxNTIHdW5pMDA1MAd1bmkxRTU0B3VuaTFFNTYHdW5pMDQ4RQd1bmkwMUE0B3VuaTAzQTEHdW5pMUZFQwd1bmkwMDUxB3VuaTAwNTIHdW5pMDE1NAd1bmkwMTU2B3VuaTAxNTgHdW5pMDIxMAd1bmkwMjEyB3VuaTFFNTgHdW5pMUU1QQd1bmkxRTVDB3VuaTFFNUUHdW5pMjExRgd1bmkyMTFFB3VuaTAyNEMHdW5pMDA1Mwd1bmkwMTVBB3VuaTAxNUMHdW5pMDE1RQd1bmkwMTYwB3VuaTAyMTgHdW5pMUU2MAd1bmkxRTYyB3VuaTFFNjQHdW5pMUU2Ngd1bmkxRTY4B3VuaTA0MDUHdW5pMDFBNwd1bmkxRTlFB3VuaTAwNTQHdW5pMDE2Mgd1bmkwMTY0B3VuaTAyMUEHdW5pMUU2QQd1bmkxRTZDB3VuaTFFNkUHdW5pMUU3MAd1bmkwMUFDB3VuaTAxQUUHdW5pMDIzRQd1bmkwM0E0B3VuaTAwNTUHdW5pMDFBRgd1bmkwMEQ5B3VuaTAwREEHdW5pMDBEQgd1bmkwMERDB3VuaTAxNjgHdW5pMDE2QQd1bmkwMTZDB3VuaTAxNkUHdW5pMDE3MAd1bmkwMTcyB3VuaTAxRDMHdW5pMDFENQd1bmkwMUQ3B3VuaTAxRDkHdW5pMDFEQgd1bmkwMjE0B3VuaTAyMTYHdW5pMUU3Mgd1bmkxRTc0B3VuaTFFNzYHdW5pMUU3OAd1bmkxRTdBB3VuaTFFRTQHdW5pMUVFNgd1bmkxRUU4B3VuaTFFRUEHdW5pMUVFQwd1bmkxRUVFB3VuaTFFRjAHdW5pMDI0NAd1bmkwMDU2B3VuaTFFN0MHdW5pMUU3RQd1bmkwMDU3B3VuaTAxNzQHdW5pMUU4MAd1bmkxRTgyB3VuaTFFODQHdW5pMUU4Ngd1bmkxRTg4B3VuaTAwNTgHdW5pMUU4QQd1bmkxRThDB3VuaTA0QjIHdW5pMDRGQwd1bmkwM0E3B3VuaTAwNTkHdW5pMDFCMwd1bmkwMEREB3VuaTAxNzYHdW5pMDE3OAd1bmkwMjMyB3VuaTFFOEUHdW5pMUVGMgd1bmkxRUY0B3VuaTFFRjYHdW5pMUVGOAd1bmkwMjRFB3VuaTAzQTUHdW5pMDM4RQd1bmkwM0FCB3VuaTFGNTkHdW5pMUY1Qgd1bmkxRjVEB3VuaTFGNUYHdW5pMUZFOAd1bmkxRkU5B3VuaTFGRUEHdW5pMUZFQgd1bmlFRTAzB3VuaTAwNUEHdW5pMDE3OQd1bmkwMTdCB3VuaTAxN0QHdW5pMUU5MAd1bmkxRTkyB3VuaTFFOTQHdW5pMDIyNAd1bmkwMUI1B3VuaTAzOTYHdW5pMkM3Rgd1bmkwMDYxB3VuaTAwRTEHdW5pMDEwMwd1bmkxRUFGB3VuaTFFQjcHdW5pMUVCMQd1bmkxRUIzB3VuaTFFQjUHdW5pMDFDRQd1bmkwMEUyB3VuaTFFQTUHdW5pMUVBRAd1bmkxRUE3B3VuaTFFQTkHdW5pMUVBQgd1bmkwMjAxB3VuaTAwRTQHdW5pMDFERgd1bmkwMjI3B3VuaTFFQTEHdW5pMDFFMQd1bmkwMEUwB3VuaTFFQTMHdW5pMDIwMwd1bmkwMTAxB3VuaTAxMDUHdW5pMUU5QQd1bmkwMEU1B3VuaTAxRkIHdW5pRUUwNAd1bmkxRTAxB3VuaTAwRTMHdW5pMDI1MAd1bmkwNDMwB3VuaTA0RDEHdW5pMDREMwd1bmkwMEU2B3VuaTAxRTMHdW5pMDFGRAd1bmkwNEQ1B3VuaUUwMkMHdW5pRTAyRAd1bmlFMDJFB3VuaUUwMkYHdW5pRTAzMAd1bmlFMDMxB3VuaUUwMzIHdW5pRTAzMwd1bmlFMDM0B3VuaUUwMzUHdW5pRTAzNgd1bmlFMDM3B3VuaUUwMzgHdW5pRTAzOQd1bmlFMDNBB3VuaUUwM0IHdW5pRTAzQwd1bmlFMDNEB3VuaUUwM0UHdW5pRTAzRgd1bmlFMDQwB3VuaUUwNDEHdW5pRTA0Mgd1bmlFMDQzB3VuaUUwNDQHdW5pRTA0NQd1bmlFMDQ2B3VuaUUwNDcHdW5pRTA0OAd1bmlFMDQ5B3VuaUUwNEEHdW5pMDA2Mgd1bmkwMTgwB3VuaTAxODMHdW5pMDI1Mwd1bmkxRTAzB3VuaTFFMDUHdW5pMUUwNwd1bmkwMDYzB3VuaTAyM0MHdW5pMDE4OAd1bmkwMjU1B3VuaTAwRTcHdW5pMDEwNwd1bmkwMTA5B3VuaTAxMEIHdW5pMDEwRAd1bmkxRTA5B3VuaTAzRjIHdW5pMDQ0MQd1bmkwMDY0B3VuaTAxMTEHdW5pMDI1Ngd1bmkwMjU3B3VuaTAxOEMHdW5pMDIyMQd1bmkwMTBGB3VuaTFFMEIHdW5pMUUwRAd1bmkxRTBGB3VuaTFFMTEHdW5pMUUxMwd1bmkwMUYzB3VuaTAyQTMHdW5pMDFDNgd1bmkwMkE1B3VuaTAyQTQHdW5pMjBBQgd1bmkwMDY1B3VuaTAwRUIHdW5pMDI0Nwd1bmkwMEU4B3VuaTAwRTkHdW5pMDBFQQd1bmkwMTEzB3VuaTAxMTUHdW5pMDExNwd1bmkwMTE5B3VuaTAxMUIHdW5pMDIwNQd1bmkwMjA3B3VuaTAyMjkHdW5pMUUxNQd1bmkxRTE3B3VuaTFFMTkHdW5pMUUxQgd1bmkxRTFEB3VuaTFFQjkHdW5pMUVCQgd1bmkxRUJEB3VuaTFFQkYHdW5pMUVDMQd1bmkxRUMzB3VuaTFFQzUHdW5pMUVDNwd1bmkwNDM1B3VuaTA0NTAHdW5pMDQ1MQd1bmkwNEQ3B3VuaTAxREQMX3BhcnQuZl9iYXNlB3VuaTAwNjYHdW5pMUU5Qwd1bmkxRTlCB3VuaTFFMUYHdW5pMDJBOQd1bmkwMDY3B3VuaTAyNjAHdW5pMDFFNQd1bmkwMTFEB3VuaTAxMUYHdW5pMDEyMQd1bmkwMTIzB3VuaTAxRTcHdW5pMDFGNQd1bmkxRTIxB3VuaTAwNjgHdW5pMUUyOQd1bmkwNDVCB3VuaTA0NTIHdW5pMDI2Ngd1bmkwMjY3B3VuaTAxOTUHdW5pMDI2NQd1bmkwMkFFB3VuaTAyQUYHdW5pMDEyNwd1bmkwMTI1B3VuaTAyMUYHdW5pMUUyMwd1bmkxRTI1B3VuaTFFMjcHdW5pMUUyQgd1bmkxRTk2B3VuaTA0QkIHdW5pMDA2OQd1bmkwMTMxB3VuaTAwRUYHdW5pMUUyRgd1bmkwMTI5B3VuaTFFMkQHdW5pRTA0Qgd1bmkwMjY4B3VuaTAwRUMHdW5pMDBFRAd1bmkwMEVFB3VuaTAxMkIHdW5pMDEyRAd1bmlFMDRDB3VuaTAxMkYHdW5pMDFEMAd1bmkwMjA5B3VuaTAyMEIHdW5pMUVDOQd1bmkxRUNCB3VuaUUwNEQHdW5pMDIzNwd1bmkwMjVGB3VuaTAyNDkHdW5pRTA0RQd1bmkwNDU2B3VuaTA0NTcHdW5pMDEzMwd1bmkwMDZBB3VuaUUwNEYHdW5pMDI5RAd1bmkwMTM1B3VuaTAxRjAHdW5pMDNGMwd1bmkwNDU4B3VuaTAxQzkHdW5pMDA2Qgd1bmkwMTk5B3VuaTAxMzcHdW5pMDFFOQd1bmkxRTMxB3VuaTFFMzMHdW5pMUUzNQd1bmkwMjlFB3VuaTAwNkMHdW5pMDE0Mgd1bmkwMTlBB3VuaTAyNkIHdW5pMDI2RAd1bmkwMjZDB3VuaTAyMzQHdW5pMDE0MAd1bmkwMTNBB3VuaTAxM0MHdW5pMDEzRQd1bmkxRTM3B3VuaTFFMzkHdW5pMUUzQgd1bmkxRTNEB3VuaUUwNTAHdW5pRTA1MQd1bmlFMDUyB3VuaUUwNTMHdW5pRTA1NAd1bmlFMDU1B3VuaUUwNTYHdW5pRTA1Nwd1bmlFMDU4B3VuaUUwNTkHdW5pRTA1QQd1bmlFMDVCB3VuaUUwNUMHdW5pMDRDRgd1bmkwMDZEB3VuaTAyNzEHdW5pMDI2Rgd1bmkwMjcwB3VuaTFFM0YHdW5pMUU0MQd1bmkxRTQzB3VuaTAwNkUHdW5pMDBGMQd1bmkwMjczB3VuaTAxNEIHdW5pMDIzNQd1bmkwMjcyB3VuaTAxOUUHdW5pMDE0NAd1bmkwMTQ2B3VuaTAxNDgHdW5pMDFGOQd1bmkxRTQ1B3VuaTFFNDcHdW5pMUU0OQd1bmkxRTRCB3VuaTAxQ0MHdW5pMDA2Rgd1bmkwMEY2B3VuaTAwRjUHdW5pMDBGOAd1bmkwMUExB3VuaTAwRjIHdW5pMDBGMwd1bmkwMEY0B3VuaTAxNEQHdW5pMDE0Rgd1bmkwMTUxB3VuaTAxRDIHdW5pMDFFQgd1bmkwMUVEB3VuaTAyMEQHdW5pMDIwRgd1bmkwMjJCB3VuaTAyMkQHdW5pMDIyRgd1bmkwMjMxB3VuaTFFNEQHdW5pMUU0Rgd1bmkxRTUxB3VuaTFFNTMHdW5pMUVDRAd1bmkxRUNGB3VuaTFFRDEHdW5pMUVEMwd1bmkxRUQ1B3VuaTFFRDcHdW5pMUVEOQd1bmkxRURCB3VuaTFFREQHdW5pMUVERgd1bmkxRUUxB3VuaTFFRTMHdW5pMDFGRgd1bmkwM0JGB3VuaTAzQ0MHdW5pMUY0MAd1bmkxRjQxB3VuaTFGNDIHdW5pMUY0Mwd1bmkxRjQ0B3VuaTFGNDUHdW5pMUY3OAd1bmkwNDczB3VuaTAyNzUHdW5pMDQzRQd1bmkwNEU3B3VuaTAxNTMHdW5pMDQ3OQd1bmkwMDcwB3VuaTA0OEYHdW5pMDFBNQd1bmkxRTU1B3VuaTFFNTcHdW5pMDQ0MAd1bmkwMDcxB3VuaTAyQTAHdW5pMDI0Qgd1bmkwMjRBB3VuaTAwNzIHdW5pRTA1RAd1bmkwMjREB3VuaTAyNzkHdW5pMDI3Qgd1bmkwMjdGB3VuaTAyN0UHdW5pRTA1RQd1bmkwMTU1B3VuaTAxNTcHdW5pMDE1OQd1bmkwMjExB3VuaTAyMTMHdW5pMUU1OQd1bmkxRTVCB3VuaTFFNUQHdW5pMUU1Rgd1bmlFMDVGB3VuaTAyN0QHdW5pRTA2MAd1bmkwMjdDB3VuaUUwNjEHdW5pRTA2Mgd1bmlFMDYzB3VuaUUwNjQHdW5pRTA2NQd1bmlFMDY2B3VuaUUwNjcHdW5pRTA2OAd1bmlFMDY5B3VuaTAwNzMHdW5pMDI4Mgd1bmkwMjNGB3VuaTAxNUIHdW5pMDE1RAd1bmkwMTVGB3VuaTAxNjEHdW5pMDIxOQd1bmkxRTYxB3VuaTFFNjMHdW5pMUU2NQd1bmkxRTY3B3VuaTFFNjkHdW5pMDQ1NQd1bmkwMUE4B3VuaTAwREYHdW5pRTA2QQd1bmkwMDc0B3VuaTAxQUIHdW5pMDI4OAd1bmkwMjM2B3VuaTAyQTgHdW5pMDI4Nwd1bmkwMTY3B3VuaTAxNjMHdW5pMDE2NQd1bmkwMjFCB3VuaTFFNkIHdW5pMUU2RAd1bmkxRTZGB3VuaTFFNzEHdW5pMUU5Nwd1bmkwMDc1B3VuaTAwRkMHdW5pMDE2OQd1bmkwMUIwB3VuaTAwQjUHdW5pMDI4OQd1bmkwMEY5B3VuaTAwRkEHdW5pMDBGQgd1bmkwMTZCB3VuaTAxNkQHdW5pMDE2Rgd1bmkwMTcxB3VuaTAxNzMHdW5pMDFENAd1bmkwMUQ2B3VuaTAxRDgHdW5pMDFEQQd1bmkwMURDB3VuaTAyMTUHdW5pMDIxNwd1bmkxRTczB3VuaTFFNzUHdW5pMUU3Nwd1bmkxRTc5B3VuaTFFN0IHdW5pMUVFNQd1bmkxRUU3B3VuaTFFRTkHdW5pMUVFQgd1bmkxRUVEB3VuaTFFRUYHdW5pMUVGMQd1bmkwMDc2B3VuaTAyOEMHdW5pMUU3RAd1bmkxRTdGB3VuaTAwNzcHdW5pMUU4NQd1bmkwMjhEB3VuaTAxNzUHdW5pMUU4MQd1bmkxRTgzB3VuaTFFODcHdW5pMUU4OQd1bmkxRTk4B3VuaTAwNzgHdW5pMUU4Qgd1bmkxRThEB3VuaTA0NDUHdW5pMDNDNwd1bmkwMDc5B3VuaTAwRkYHdW5pMDFCNAd1bmkwMjRGB3VuaTAwRkQHdW5pMDE3Nwd1bmkwMjMzB3VuaTFFOEYHdW5pMUU5OQd1bmkxRUYzB3VuaTFFRjUHdW5pMUVGNwd1bmkxRUY5B3VuaTA0NDMHdW5pMDQ1RQd1bmkwNEVGB3VuaTA0RjEHdW5pMDRGMwd1bmkwMjhFB3VuaTA0RUUHdW5pMDRGMAd1bmkwNEYyB3VuaUVFMDUHdW5pMDA3QQd1bmkwMUI2B3VuaTAyMjUHdW5pMDI0MAd1bmkwMjkwB3VuaTAxN0EHdW5pMDE3Qwd1bmkwMTdFB3VuaTFFOTEHdW5pMUU5Mwd1bmkxRTk1B3VuaTAyOTEHdW5pMDBERQd1bmkwMzkzB3VuaTAzOTQHdW5pMDM5OAd1bmkwMzlFB3VuaTAzQTAHdW5pMDNBMwd1bmkwM0E2B3VuaTAzQTgHdW5pMDNBOQd1bmkxRkZCB3VuaTAzOEYHdW5pMUY2OAd1bmkxRjY5B3VuaTFGNkEHdW5pMUY2Qgd1bmkxRjZDB3VuaTFGNkQHdW5pMUY2RQd1bmkxRjZGB3VuaTFGRkEHdW5pMUZBOAd1bmkxRkE5B3VuaTFGQUEHdW5pMUZBQgd1bmkxRkFDB3VuaTFGQUQHdW5pMUZBRQd1bmkxRkFGB3VuaTFGRkMHdW5pMDFCMQd1bmkwM0QyB3VuaTAzRDMHdW5pMDNENAd1bmkwMTk0B3VuaTA0MTEHdW5pMDQ5MAd1bmkwNEZBB3VuaTA0MTQHdW5pMDQxNgd1bmkwNDk2B3VuaTA0MTcHdW5pMDQxQQd1bmkwNDlDB3VuaTA0QzMHdW5pMDQxQgd1bmkwNDcyB3VuaTA0MEYHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDRCNAd1bmkwNDI3B3VuaTA0QjYHdW5pMDRCOAd1bmkwNEJBB3VuaTA0MEIHdW5pMDQyOAd1bmkwNDI5B3VuaTA0MkEHdW5pMDQyQgd1bmkwNDJDB3VuaTA0MDkHdW5pMDQwQQd1bmkwNDJEB3VuaTA0MkUHdW5pMDQyRgd1bmkwNDk0B3VuaTA0QTYHdW5pMDQwNAd1bmkwNEE4B3VuaTA0QkMHdW5pMDREOAd1bmkwNEUwB3VuaTA0NzQHdW5pMDQwMgd1bmkwMEYwB3VuaTAwRkUHdW5pMDNCMQd1bmkwM0FDB3VuaTFGMDAHdW5pMUYwMQd1bmkxRjAyB3VuaTFGMDMHdW5pMUYwNAd1bmkxRjA1B3VuaTFGMDYHdW5pMUYwNwd1bmkxRjcwB3VuaTFGODAHdW5pMUY4MQd1bmkxRjgyB3VuaTFGODMHdW5pMUY4NAd1bmkxRjg1B3VuaTFGODYHdW5pMUY4Nwd1bmkxRkIwB3VuaTFGQjEHdW5pMUZCMgd1bmkxRkIzB3VuaTFGQjQHdW5pMUZCNgd1bmkxRkI3B3VuaTAzQjIHdW5pMDNCMwd1bmkwM0I0B3VuaTAzQjUHdW5pMDNBRAd1bmkwMjlBB3VuaTAyNUIHdW5pMDI1Qwd1bmkwMjVFB3VuaTAyNUQHdW5pMUYxMAd1bmkxRjExB3VuaTFGMTIHdW5pMUYxMwd1bmkxRjE0B3VuaTFGMTUHdW5pMUY3Mgd1bmkwM0I2B3VuaTAzQjcHdW5pMDNBRQd1bmkxRjIwB3VuaTFGMjEHdW5pMUYyMgd1bmkxRjIzB3VuaTFGMjQHdW5pMUYyNQd1bmkxRjI2B3VuaTFGMjcHdW5pMUY3NAd1bmkxRjkwB3VuaTFGOTEHdW5pMUY5Mgd1bmkxRjkzB3VuaTFGOTQHdW5pMUY5NQd1bmkxRjk2B3VuaTFGOTcHdW5pMUZDMgd1bmkxRkMzB3VuaTFGQzQHdW5pMUZDNgd1bmkxRkM3B3VuaTAzQjgHdW5pMDNCOQd1bmkwMzkwB3VuaTAzQUYHdW5pMDNDQQd1bmkxRjMwB3VuaTFGMzEHdW5pMUYzMgd1bmkxRjMzB3VuaTFGMzQHdW5pMUYzNQd1bmkxRjM2B3VuaTFGMzcHdW5pMUY3Ngd1bmkxRkQwB3VuaTFGRDEHdW5pMUZEMgd1bmkxRkQ2B3VuaTFGRDcHdW5pMDNCQgd1bmkwM0JFB3VuaTAzQzAHdW5pMDNDMQd1bmkxRkU0B3VuaTFGRTUHdW5pMDNGQwd1bmkwM0MyB3VuaTAzQzMHdW5pMDNDNAd1bmkwM0M1B3VuaTAzQjAHdW5pMDNDQgd1bmkwM0NEB3VuaTFGNTAHdW5pMUY1MQd1bmkxRjUyB3VuaTFGNTMHdW5pMUY1NAd1bmkxRjU1B3VuaTFGNTYHdW5pMUY1Nwd1bmkxRjdBB3VuaTFGRTAHdW5pMUZFMQd1bmkxRkUyB3VuaTFGRTYHdW5pMUZFNwd1bmkwM0M2B3VuaTAzRDUHdW5pMDNDOAd1bmkwM0M5B3VuaTAzQ0UHdW5pMUY2MAd1bmkxRjYxB3VuaTFGNjIHdW5pMUY2Mwd1bmkxRjY0B3VuaTFGNjUHdW5pMUY2Ngd1bmkxRjY3B3VuaTFGN0MHdW5pMUZBMAd1bmkxRkExB3VuaTFGQTIHdW5pMUZBMwd1bmkxRkE0B3VuaTFGQTUHdW5pMUZBNgd1bmkxRkE3B3VuaTFGRjIHdW5pMUZGMwd1bmkxRkY0B3VuaTFGRjYHdW5pMUZGNwd1bmkwMjYzB3VuaTA0MzEHdW5pMDQzMgd1bmkwNDMzB3VuaTA0OTEHdW5pMDRGQgd1bmkwNDM0B3VuaTA0MzYHdW5pMDQ5Nwd1bmkwNDM3B3VuaTA0MzgHdW5pMDQ4Qgd1bmkwNDNBB3VuaTA0QzQHdW5pMDQ5Qgd1bmkwNDlEB3VuaTA0QTEHdW5pMDQzQgd1bmkwNEM2B3VuaTA1MkYHdW5pMDQzQwd1bmkwNENFB3VuaTA0M0QHdW5pMDRBMwd1bmkwNEE1B3VuaTA0QzgHdW5pMDRDQQd1bmkwNDNGB3VuaTA0NDIHdW5pMDQ0NAd1bmkwNEZEB3VuaTA0QjMHdW5pMDQ0Ngd1bmkwNDVGB3VuaTA0NDcHdW5pMDRCNwd1bmkwNEI5B3VuaTA0NDgHdW5pMDQ0OQd1bmkwNDRDB3VuaTA0NEEHdW5pMDQ0Qgd1bmkwNDhEB3VuaTA0NjMHdW5pMDQ1OQd1bmkwNDVBB3VuaTA0NEQHdW5pMDQ0RQd1bmkwNDRGB3VuaTA0OTUHdW5pMDRBNwd1bmkwNDU0B3VuaTA0QTkHdW5pMDRCNQd1bmkwNEJEB3VuaTA0RTEHdW5pMDQ3NQd1bmkwMDI0B3VuaTAwQTIHdW5pMDBBNQd1bmkwMEEzB3VuaTAxOTIHdW5pMjBCQQd1bmkyMEJEB3VuaTIwQUMHdW5pMjBCOQd1bmkyMEI4B3VuaTIwQTcHdW5pMjBCMQd1bmkyMEFEB3VuaTIwQTkHdW5pMjBBNAd1bmkyMEIzB3VuaTIwQjQHdW5pMjBBNgd1bmkyMEIyB3VuaTIwQTEHdW5pMjBCNQd1bmkyMEEyB3VuaTIwQUUHdW5pMjBBRgd1bmkyMEE1B3VuaTIwQUEHdW5pMjBCQwd1bmkyMEE4B3VuaTIwQkUHdW5pMjBBMwd1bmkwRTNGB3VuaTIwQkYHdW5pMDAzMAd1bmkwMDMxB3VuaTAwMzIHdW5pMDFCQgd1bmkwMDMzB3VuaTAwMzQHdW5pMDAzNQd1bmkwMUJDB3VuaTAwMzYHdW5pMDAzNwd1bmkwMDM4B3VuaTAwMzkHdW5pRTA2Qgd1bmlFMDZDB3VuaUUwNkQHdW5pRTA2RQd1bmlFMDZGB3VuaUUwNzAHdW5pRTA3MQd1bmlFMDcyB3VuaUUwNzMHdW5pRTA3NAd1bmlFMDc1B3VuaUUwNzYHdW5pRTA3Nwd1bmlFMDc4B3VuaUUwNzkHdW5pRTA3QQd1bmlFMDdCB3VuaUUwN0MHdW5pRTA3RAd1bmlFMDdFB3VuaUUwN0YHdW5pRTA4MAd1bmkwMDI2B3VuaTAwMjEHdW5pMjAzQwd1bmkwMEExB3VuaTIwNDkHdW5pMDAzRgd1bmkyMDQ3B3VuaTIwNDgHdW5pMDBCRgd1bmkyMDNEB3VuaTJFMTgHdW5pMDAyOAd1bmkwMDI5B3VuaTAwNUIHdW5pMjA0NQd1bmkwMDVEB3VuaTIwNDYHdW5pMDA3Qgd1bmkwMDdEB3VuaTAwNDAMdW5pMDAyOC5jYXNlDHVuaTAwMjkuY2FzZQx1bmkwMDVCLmNhc2UMdW5pMDA1RC5jYXNlDHVuaTAwN0IuY2FzZQx1bmkwMDdELmNhc2UMdW5pMDA0MC5jYXNlB3VuaTAwMjMHdW5pMDBBNAd1bmkwMDJGB3VuaTAwN0MHdW5pMDBBNgd1bmkwMDVDB3VuaTAwMkQHdW5pMDBBRAd1bmkyMDEzB3VuaTIwMTIHdW5pMjAxNAd1bmkyMDE1B3VuaTIwMjIHdW5pMjVFNgd1bmkyMDQzB3VuaTIwMjMHdW5pMjA0Qwd1bmkyMDREB3VuaTI1QUEMdW5pMDAyRC5jYXNlDHVuaTIwMTMuY2FzZQx1bmkyMDEyLmNhc2UMdW5pMjAxNC5jYXNlDHVuaTIwMjIuY2FzZQx1bmkyNUU2LmNhc2UMdW5pMjA0My5jYXNlDHVuaTIwMjMuY2FzZQx1bmkyMDRDLmNhc2UMdW5pMjA0RC5jYXNlDHVuaTI1QUEuY2FzZQd1bmkyMDE4B3VuaTIwMTkHdW5pMDJCQwd1bmkwMDI3B3VuaTAwMjIHdW5pMjAxQwd1bmkyMDFEB3VuaTIwMUUHdW5pMjAxQQd1bmkyMDMyB3VuaTIwMzMHdW5pMjAzNAd1bmkyMDU3B3VuaTIwMzUHdW5pMjAzNgd1bmkyMDM3B3VuaTAyQjkHdW5pMDJCQQd1bmkwMDJDB3VuaTAwMkUHdW5pMjAyNgd1bmkyMDI1B3VuaTAwM0EMdW5pMDAzQS5jYXNlB3VuaUVFMDEHdW5pMDAzQgd1bmlFMDkzB3VuaUUwOTQHdW5pRTA5NQd1bmlFMDk2B3VuaTAwQjcHdW5pMDM4Nwd1bmkwMzdFB3VuaTIwMzkHdW5pMjAzQQd1bmkwMEFCB3VuaTAwQkIHdW5pMDAzQwd1bmkwMDNFB3VuaTIyNjQHdW5pMjI2NQd1bmkwMDNEB3VuaTIyNjAHdW5pMDAyQgd1bmkyMjEyB3VuaTAwRDcHdW5pMDBGNwd1bmkwMEIxB3VuaTIyNDgHdW5pMDA3RQx1bmkwMDNDLmNhc2UMdW5pMDAzRS5jYXNlDHVuaTIyNjQuY2FzZQx1bmkyMjY1LmNhc2UMdW5pMDAzRC5jYXNlDHVuaTIyNjAuY2FzZQx1bmkwMDJCLmNhc2UMdW5pMjIxMi5jYXNlDHVuaTAwRDcuY2FzZQx1bmkwMEY3LmNhc2UMdW5pMDBCMS5jYXNlDHVuaTIyNDguY2FzZQx1bmkwMDdFLmNhc2UHdW5pMDBBQwd1bmkwMDVGB3VuaTIwMjAHdW5pMjAyMQd1bmkwMDVFB3VuaTAwMkEMdW5pMDAyQS5jYXNlB3VuaTAwQUUHdW5pMDBBOQZ1MUYxMkYHdW5pMjExNwd1bmkyMTIyB3VuaTIxMjAHdW5pMjEyMQd1bmkyMTNCBnUxRjE2QgZ1MUYxNkEHdW5pMDBCMAd1bmkwMEFBB3VuaTAwQkEHdW5pRTBBNQd1bmlFMEE2B3VuaTAwQjYHdW5pMjA0Qgd1bmkwMEE3B3VuaTIyMUUHdW5pMjIwMgd1bmkyMjExB3VuaTIyMEYHdW5pMjIyQgd1bmkyMjFBB3VuaTIyMDUHdW5pMjVDQQd1bmkxRDQzB3VuaTFENDcHdW5pMUQ5Qwd1bmkxRDQ4B3VuaTFENDkHdW5pMURBMAd1bmkxRDREB3VuaTAyQjAHdW5pMjA3MQd1bmkwMkIyB3VuaTFENEYHdW5pMDJFMQd1bmkxRDUwB3VuaTIwN0YHdW5pMUQ1Mgd1bmkxRDU2B3VuaUUxNjMHdW5pMDJCMwd1bmkwMkUyB3VuaTFENTcHdW5pMUQ1OAd1bmkxRDVCB3VuaTAyQjcHdW5pMDJFMwd1bmkwMkI4B3VuaTFEQkIHdW5pMjA3MAd1bmkwMEI5B3VuaTAwQjIHdW5pMDBCMwd1bmkyMDc0B3VuaTIwNzUHdW5pMjA3Ngd1bmkyMDc3B3VuaTIwNzgHdW5pMjA3OQd1bmkyMDdEB3VuaTIwN0UHdW5pRTBBNwd1bmlFMEE4B3VuaTIwN0EHdW5pMjA3Qgd1bmkyMDdDB3VuaTIwOTAHdW5pRTBBOQd1bmlFMEFBB3VuaUUwQUIHdW5pMjA5MQd1bmlFMEFDB3VuaUUwQUQHdW5pMjA5NQd1bmkxRDYyB3VuaTJDN0MHdW5pMjA5Ngd1bmkyMDk3B3VuaTIwOTgHdW5pMjA5OQd1bmkyMDkyB3VuaTIwOUEHdW5pRTBBRQd1bmkxRDYzB3VuaTIwOUIHdW5pMjA5Qwd1bmkxRDY0B3VuaTFENjUHdW5pRTBBRgd1bmkyMDkzB3VuaUUwQjAHdW5pRTBCMQd1bmkyMDgwB3VuaTIwODEHdW5pMjA4Mgd1bmkyMDgzB3VuaTIwODQHdW5pMjA4NQd1bmkyMDg2B3VuaTIwODcHdW5pMjA4OAd1bmkyMDg5B3VuaTIwOEQHdW5pMjA4RQd1bmlFMEIyB3VuaUUwQjMHdW5pMjA4QQd1bmkyMDhCB3VuaTIwOEMHdW5pRTBCNAd1bmlFMEI1B3VuaUUwQjYHdW5pRTBCNwd1bmlFMEI4B3VuaUUwQjkHdW5pRTBCQQd1bmlFMEJCB3VuaUUwQkMHdW5pRTBCRAd1bmkyMDQ0B3VuaUUwQkUHdW5pRTBCRgd1bmlFMEMwB3VuaUUwQzEHdW5pRTBDMgd1bmlFMEMzB3VuaUUwQzQHdW5pRTBDNQd1bmlFMEM2B3VuaUUwQzcHdW5pRTBDOAd1bmlFMEM5B3VuaUUwQ0EHdW5pRTBDQgd1bmlFMENDB3VuaUUwQ0QHdW5pRTBDRQd1bmlFMENGB3VuaUUwRDAHdW5pRTBEMQd1bmlFMEQyB3VuaUUwRDMHdW5pRTBENAd1bmlFMEQ1B3VuaUUwRDYHdW5pRTBENwd1bmlFMEQ4B3VuaUUwRDkHdW5pRTBEQQd1bmlFMERCB3VuaUUwREMHdW5pRTBERAd1bmlFMERFB3VuaUUwREYHdW5pRTBFMAd1bmlFMEUxB3VuaUUwRTIHdW5pRTBFMwd1bmlFMEU0B3VuaUUwRTUHdW5pMDBCRAd1bmkyMTUzB3VuaTAwQkMHdW5pMDBCRQd1bmkyMTVBB3VuaTIxNUYHdW5pMjE1RQd1bmkyMTVCB3VuaTIxNUQHdW5pMjE1Qwd1bmkwMDI1B3VuaTIwMzAHdW5pMjAzMQd1bmkyMTREB3VuaTIxMDYHdW5pMjEwNQd1bmkyMTAwB3VuaTIxMDEHdW5pMDBCNAd1bmkwMkREB3VuaTAwNjAHdW5pMDM4NAd1bmkwMEE4D2Nhc2VkaWVyZXNpcy5jbgd1bmkwMkM2B3VuaTAyREMMY2FzZXRpbGRlLmNuB3VuaTAwQUYHdW5pMDJEOAd1bmlFMEU2B3VuaTAyRDkHdW5pMDJEQQp1bmkwMkRBLnVjB3VuaTAyQzcHdW5pMDM4NQd1bmkwMEI4B3VuaTAyREIHdW5pRjZDMwd1bmkwMzAxB3VuaTAzMEIHdW5pMDMwMAd1bmkwMzBGB3VuaTAzMDQHdW5pMDMwOAd1bmkwMzA2B3VuaTAzMTEHdW5pMDMwOQd1bmkwMzAyB3VuaTAzMEMHdW5pMDMwMwd1bmkwMzA3B3VuaTAzMEEHdW5pMDMxQgd1bmkwMzI4B3VuaTAzMjcHdW5pMDMyRAd1bmkwMzJFB3VuaTAzMjMHdW5pMDMyNgd1bmkwMzI0B3VuaTAzMjUHdW5pMDMzMgd1bmkwMzMwB3VuaTAwMjAHdW5pMDBBMAd1bmkyMDJGB3VuaTIwNUYHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMEIHdW5pMjExNgd1bmkyMTAzB3VuaTIxMDkHdW5pMjEyQQd1bmkyMTJCB3VuaTAyOTgHdW5pMjEyRQd1bmkyMTkwB3VuaTI3RjUGdTFGODUwB3VuaTIxRDAHdW5pMjdGOAd1bmkyMTkyB3VuaTI3RjYGdTFGODUyB3VuaTIxRDIHdW5pMjdGOQd1bmkyMTk2B3VuaTIxOTcHdW5pMjE5OAd1bmkyMTk5B3VuaTIxOTQHdW5pMjdGNwd1bmkyMUQ0B3VuaTI3RkEHdW5pMjE5MQd1bmkyMTkzB3VuaTIxOTUHdW5pMjFBOQd1bmkyMUFBDHVuaTIxOTAuY2FzZQx1bmkyN0Y1LmNhc2ULdTFGODUwLmNhc2UMdW5pMjFEMC5jYXNlDHVuaTI3RjguY2FzZQx1bmkyMTkyLmNhc2UMdW5pMjdGNi5jYXNlC3UxRjg1Mi5jYXNlDHVuaTIxRDIuY2FzZQx1bmkyN0Y5LmNhc2UMdW5pMjE5NC5jYXNlDHVuaTI3RjcuY2FzZQx1bmkyMUQ0LmNhc2UMdW5pMjdGQS5jYXNlB3VuaTI3MTMHdW5pMjcxNwd1bmkyNUJDB3VuaTI1QjIHdW5pMjVDMAd1bmkyNUJBB3VuaTI1QkQHdW5pMjVCMwd1bmkyNUMxB3VuaTI1QjcHdW5pMjZBMAd1bmkyNUNGB3VuaTI1Q0IHdW5pMjVBMAd1bmkyNUExB3VuaTI1QTIHdW5pMkIxMgd1bmkyQjEzB3VuaTI1QzYHdW5pMjc1Ngd1bmkyNUM3B3VuaUUwMDAHdW5pMjYzQwd1bmkyNjAwB3VuaTI2NjEHdW5pMjY2NQd1bmkyNzY0B3VuaTI2MDUHdW5pMjYwNgd1bmkyQjA2B3VuaTIxRTcHdW5pMjFFQQd1bmkyMzE4B3VuaTIzMDMHdW5pMjMwNQd1bmkyMzgwB3VuaTIzMjUHdW5pMjM4Nwd1bmkyMzhCB3VuaTIxQkEHdW5pMjFCQgd1bmkyMzJCB3VuaTIzMjYHdW5pMjMyNwd1bmkyM0NGB3VuaTIzQ0UHdW5pMjFCNQd1bmkyMUIzB3VuaTIxQjAHdW5pMjFCMQd1bmkyMUI0B3VuaTIxRTQHdW5pMjFFNQd1bmkyMURFB3VuaTIxREYHdW5pMjVFRgd1bmkyQjFDB3VuaTIwREQHdW5pMjBERQd1bmkyNEI2B3VuaTI0QjcHdW5pMjRCOAd1bmkyNEI5B3VuaTI0QkEHdW5pMjRCQgd1bmkyNEJDB3VuaTI0QkQHdW5pMjRCRQd1bmkyNEJGB3VuaTI0QzAHdW5pMjRDMQd1bmkyNEMyB3VuaTI0QzMHdW5pMjRDNAd1bmkyNEM1B3VuaTI0QzYHdW5pMjRDNwd1bmkyNEM4B3VuaTI0QzkHdW5pMjRDQQd1bmkyNENCB3VuaTI0Q0MHdW5pMjRDRAd1bmkyNENFB3VuaTI0Q0YHdW5pMjRFQQd1bmkyNDYwB3VuaTI0NjEHdW5pMjQ2Mgd1bmkyNDYzB3VuaTI0NjQHdW5pMjQ2NQd1bmkyNDY2B3VuaTI0NjcHdW5pMjQ2OAd1bmlFMTJCB3VuaUUxMkMHdW5pRTEyRAd1bmlFMTJFB3VuaUUxMkYHdW5pRTEzMAd1bmlFMTMxB3VuaUUxMzIHdW5pRTEzMwd1bmlFMTM0B3VuaUUxMzUHdW5pRTEzNgd1bmlFMTM3B3VuaUUxNUYHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTEzOAd1bmlFMTM5B3VuaUUxM0EHdW5pRTEzQgd1bmlFMTNDB3VuaUUxM0QGdTFGMTMwBnUxRjEzMQZ1MUYxMzIGdTFGMTMzBnUxRjEzNAZ1MUYxMzUGdTFGMTM2BnUxRjEzNwZ1MUYxMzgGdTFGMTM5BnUxRjEzQQZ1MUYxM0IGdTFGMTNDBnUxRjEzRAZ1MUYxM0UGdTFGMTNGBnUxRjE0MAZ1MUYxNDEGdTFGMTQyBnUxRjE0MwZ1MUYxNDQGdTFGMTQ1BnUxRjE0NgZ1MUYxNDcGdTFGMTQ4BnUxRjE0OQd1bmlFMTNFB3VuaUUxM0YHdW5pRTE0MAd1bmlFMTQxB3VuaUUxNDIHdW5pRTE0Mwd1bmlFMTQ0B3VuaUUxNDUHdW5pRTE0Ngd1bmlFMTQ3B3VuaUUxNDgHdW5pRTE0OQd1bmlFMTRBB3VuaUUxNEIHdW5pRTE0Qwd1bmlFMTREB3VuaUUxNEUHdW5pRTE0Rgd1bmlFMTUwB3VuaUUxNTEHdW5pRTE1Mgd1bmlFMTUzB3VuaUUxNTQHdW5pRTE1NQd1bmlFMTU2B3VuaUUxNTcHdW5pRTE1OAd1bmlFMTU5B3VuaUUxNUEHdW5pRTE1Qgd1bmlFMTVDB3VuaUUxNUQHdW5pRTE1RQd1bmkwMTgyB3VuaTA0QkUHdW5pMDRGNAd1bmkwNENCB3VuaTAxRjEHdW5pMDExMAd1bmkwM0RDB3VuaTAxOEIHdW5pMDQ2NAd1bmkwNEM1B3VuaTAxOTAHdW5pMDRBQQd1bmkwMUE5B3VuaTAwRDAHdW5pMDFCNwd1bmkwMUVFB3VuaTAxQjgHdW5pMDQ5Mgd1bmkwMjYyB3VuaTAyOUIHdW5pMDEzMgd1bmkwMjZBB3VuaTA0NzYHdW5pMDNERQd1bmkwNDgwB3VuaTA0NkUHdW5pMDFDNwd1bmkwMTNGB3VuaTAyOUYHdW5pMDFDQQd1bmkwMjc0B3VuaTAyNzYHdW5pMDFBMgd1bmkwNDYwB3VuaTA0N0EHdW5pMDQ3Qwd1bmkwNDdFB3VuaTA0NzAHdW5pMDI4MAd1bmkwMjgxB3VuaTAyQjYHdW5pMDNFMAd1bmkwMThGB3VuaTA0REEHdW5pMDNEQQd1bmkwMTY2B3VuaTA0QUMHdW5pMDE4NAd1bmkwNDc4B3VuaTA0QUUHdW5pMDRCMAd1bmkwMUIyB3VuaTAxQTYHdW5pMDRGOAd1bmkwMjhGB3VuaTA0NkEHdW5pMDQ2Qwd1bmkwNDY2B3VuaTA0NjgHdW5pMDQ5OAd1bmkwNERFB3VuaTA0QzEHdW5pMDREQw5fdGlsZGVjcm9zcy5jbgd1bmlFMTFCB3VuaUUxMDQHdW5pMDJDRgd1bmkwMzQxB3VuaTAzMTcHdW5pMDQxMwd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQwMwd1bmkwNDBDB3VuaTA0MEUHdW5pMDQ2Mgd1bmkwMzFBB3VuaTAzMkIHdW5pMDJDNQd1bmkwMkMyB3VuaTAzNTAHdW5pMDJDMwd1bmkwMkM0B3VuaTAyNTEHdW5pRTEwQQd1bmkwMjUyB3VuaTIwNDIHdW5pMDI2NAd1bmkwMzM2B3VuaTAzMzUHdW5pMDNEMAd1bmlFMTFBB3VuaUUxMUMHdW5pRTEyNwd1bmkwMzYxB3VuaTAzMkYHdW5pRTEyMAd1bmkwMzNBB3VuaTAzMkEHdW5pMDMxMAd1bmkyMDM4B3VuaTIwNDEHdW5pMDMyQwd1bmlFMTE5B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaTIwNDAHdW5pMDRCRgd1bmkwNEY1B3VuaTA0Q0MHdW5pRTE2NAd1bmlFMTE2B3VuaUUxMUYHdW5pRTEyNgd1bmkwMkQxB3VuaTAyRDAHdW5pMDMxMwd1bmkwMzE1E2NvbW1hYWNjZW50cmlnaHQuY24HdW5pRTEyOAd1bmkwMkJEB3VuaTAzMTQHdW5pMDJCQgd1bmkwMzEyB3VuaUUxMDMHdW5pMDI5Nwd1bmlFMTE0B3VuaUUxMEIPY3lyaWxsaWN0YWlsLmNuDmN5cmlsbGljdGljLmNuB3VuaTA0ODUHdW5pMDJFRQd1bmkwMThEB3VuaTAzNDQHdW5pRTEyMQd1bmlFMTA2B3VuaUUxMTcHdW5pRTExMwd1bmlFMTI0B3VuaUUxMEUHdW5pRTExOAd1bmlFMTBEB3VuaTAzREQHdW5pRTEyMgd1bmlFMTBDB3VuaTAyRDUHdW5pMjE3Nwd1bmkwNDY1B3VuaTIxN0EHdW5pMDM0Nwd1bmkwMjU4B3VuaTA0QUIHdW5pMDI4Mwd1bmkwMjg2B3VuaTAxQUEHdW5pMDI4NQd1bmkyMEEwB3VuaTAxQzMHdW5pMDI5Mgd1bmkwMUVGB3VuaTAyOTMHdW5pMDFCOQd1bmkwMUJBB3VuaTAyQUEHdW5pMDJBRAd1bmkwMkI1B3VuaTAyQzkHdW5pMjE3NAd1bmkyMTczB3VuaTAyQ0IHdW5pMDJFMAd1bmkwMjYxB3VuaTA0OTMHdW5pMDQ1Mwd1bmkwMjk0B3VuaTAyQTEHdW5pMDFCRQd1bmkwMkEyB3VuaTAyOTYHdW5pMDJDMAd1bmkwMkU0B3VuaTAyQzEHdW5pMDI5NQd1bmkwMzQwB3VuaTAyQ0UHdW5pMDMxNgd1bmkwMkIxB3VuaTAzMjEHdW5pMDMyMgd1bmkyMDEwB3VuaTIwMjcHdW5pMjAxMQd1bmkwNEU1B3VuaTA0MzkHdW5pMDRFMwd1bmkwMzQ1B3VuaTA0NzcHdW5pMDI4NAd1bmkwM0JBB3VuaTAzRjAHdW5pMDEzOAd1bmkwNDVDB3VuaTAzREYHdW5pMDQ4MRRrb3JvbmlzYWNjZW50bGVmdC5jbgd1bmkwMzQzB3VuaTA0NkYHdW5pMDE5Qgd1bmlFMTBGB3VuaTAyQzgHdW5pMDMwRQd1bmkwMzBEB3VuaTAzMjkHdW5pMDE3Rgd1bmkwMkVGB3VuaTIxMTMHdW5pMDI2RQd1bmlFMEY2B3VuaUUwRjgHdW5pRTEyMwd1bmlFMTExB3VuaUUwRjcHdW5pRTBGOQd1bmkwMkNEB3VuaTAzMzEHdW5pMDE5Qwd1bmkwMkQ3B3VuaTAzQkMHdW5pMjE3OAd1bmkwM0JEB3VuaTAzNzQHdW5pMDM3NQd1bmkwNEU5B3VuaTA0RUIHdW5pMDFBMwd1bmkwMjc3B3VuaTA0NjEHdW5pMDQ3Qgd1bmkwNDdEB3VuaTIwMjQHdW5pMjE3MAd1bmkwMjU0B3VuaTA0N0YHdW5pMjAzRQd1bmkwMzNGB3VuaTAzMDUHdW5pMDQ4NAd1bmkwNEMwB3VuaTAzNDIHdW5pMDI3OAd1bmkwMUMwB3VuaTAxQzEHdW5pMDFDMgd1bmkwM0Q2B3VuaTAyRDYHdW5pMDQ3MQd1bmkwNDg2B3VuaTAyREYHdW5pMjAxRgd1bmkyMDFCB3VuaTIwM0IHdW5pMjA0Rgd1bmkwM0YxB3VuaTAyREUHdW5pRTExNQd1bmkwMkJGB3VuaTAyRDMHdW5pMDJCRQd1bmkwMkQyB3VuaTAzMUMHdW5pMDMzOQd1bmkyMTY3B3VuaTIxNkEHdW5pMjE2Qwd1bmkyMTY0B3VuaTIxNkUHdW5pMjE2Mwd1bmkyMTZEB3VuaTIxNjgHdW5pMjE2MAd1bmkyMTY2B3VuaTIxNjUHdW5pMjE2OQd1bmkyMTZGB3VuaTIxNjIHdW5pMjE2Qgd1bmkyMTYxB3VuaTAyN0EHdW5pMDJCNAd1bmkwM0UxB3VuaTAyNTkHdW5pMDREOQd1bmkwNERCB3VuaTAyNUEHdW5pMDMzQwd1bmkwMkNBB3VuaTIxNzYHdW5pMjE3NQd1bmkwMzM4B3VuaTAzMzcHdW5pMjQyMwd1bmkwMzNCB3VuaTAzREIHdW5pMDMxRQd1bmkwMzE4B3VuaTAzMTkHdW5pMDMxRAd1bmkwNEFEB3VuaTIxNzkHdW5pMDJBNwd1bmkwM0QxB3VuaTAxQUQHdW5pMDQ4Mgd1bmkyMTcyB3VuaUUxMTIHdW5pRTEyQQd1bmlFMTFFB3VuaUUxMDUHdW5pMDM2MAd1bmlFMTI1B3VuaUUxMTAHdW5pMDMzNAd1bmkwMzNFB3VuaTA0ODMHdW5pMDJFNQd1bmkwMkU5B3VuaTAyRTYHdW5pMDJFOAd1bmkwMkU3B3VuaTAxQkQHdW5pMDE4NQd1bmlFMTI5B3VuaTAyQTYHdW5pMjE3Qgd1bmkyMTcxB3VuaTIwMTcHdW5pMDMzMwd1bmkyMDNGB3VuaTAxRjcHdW5pMDIxQwd1bmkwMjFEB3VuaTAyMjAHdW5pMDIyMgd1bmkwMjIzB3VuaTAyMzgHdW5pMDIzOQd1bmkwMjQxB3VuaTAyNDIHdW5pMDI0NQd1bmlFMEYzB3VuaTAyOTkHdW5pMDI5Qwd1bmkwMkFCB3VuaTAyQUMHdW5pRTBGNQd1bmkwMkVBB3VuaTAyRUIHdW5pMDJFQwd1bmkwMkVEB3VuaTAyRjAHdW5pMDJGMQd1bmkwMkYyB3VuaTAyRjMHdW5pMDJGNAd1bmkwMkY1B3VuaTAyRjYHdW5pMDJGNwd1bmkwMkY4B3VuaTAyRjkHdW5pMDJGQQd1bmkwMkZCB3VuaTAyRkMHdW5pMDJGRAd1bmkwMkZFB3VuaTAyRkYHdW5pMDM0Ngd1bmkwMzQ4B3VuaTAzNDkHdW5pMDM0QQd1bmkwMzRCB3VuaTAzNEMHdW5pMDM0RAd1bmkwMzRFB3VuaTAzNEYHdW5pMDM1MQd1bmkwMzUyB3VuaTAzNTMHdW5pMDM1NAd1bmkwMzU1B3VuaTAzNTYHdW5pMDM1Nwd1bmkwMzU4B3VuaTAzNTkHdW5pMDM1QQd1bmkwMzVCB3VuaTAzNUMHdW5pMDM1RAd1bmkwMzVFB3VuaTAzNUYHdW5pMDM2Mgd1bmkwMzYzB3VuaTAzNjQHdW5pMDM2NQd1bmkwMzY2B3VuaTAzNjcHdW5pMDM2OAd1bmkwMzY5B3VuaTAzNkEHdW5pMDM2Qgd1bmkwMzZDB3VuaTAzNkQHdW5pMDM2RQd1bmkwMzZGB3VuaTAzNzAHdW5pMDM3MQd1bmkwMzcyB3VuaTAzNzMHdW5pMDM3Nwd1bmkwMzdCB3VuaTAzN0MHdW5pMDM3RAd1bmkwM0NGB3VuaTAzRDcHdW5pMDNEOAd1bmkwM0Q5B3VuaTAzRjUHdW5pMDNGNgd1bmkwM0Y3B3VuaTAzRjgHdW5pMDNGQgd1bmkwM0ZEB3VuaTAzRkUHdW5pMDNGRgd1bmkwNDVEB3VuaTA0ODcHdW5pMDQ4OAd1bmkwNDg5B3VuaTA0OEMHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RjYHdW5pMDRGNwd1bmkwNEZFB3VuaTA0RkYHdW5pMURCRgd1bmkxREMwB3VuaTFEQzEHdW5pMURDMgd1bmkxREMzB3VuaTFEQzQHdW5pMURDNQd1bmkxREM2B3VuaTFEQzcHdW5pMURDOAd1bmkxREM5B3VuaTFEQ0EHdW5pMURDQgd1bmkxRENDB3VuaTFEQ0QHdW5pMURDRQd1bmkxRENGB3VuaTFERDAHdW5pMUREMQd1bmkxREQyB3VuaTFERDMHdW5pMURENAd1bmkxREQ1B3VuaTFERDYHdW5pMURENwd1bmkxREQ4B3VuaTFERDkHdW5pMUREQQd1bmkxRERCB3VuaTFEREMHdW5pMURERAd1bmkxRERFB3VuaTFEREYHdW5pMURFMAd1bmkxREUxB3VuaTFERTIHdW5pMURFMwd1bmkxREU0B3VuaTFERTUHdW5pMURFNgd1bmkxREU3B3VuaTFERTgHdW5pMURFOQd1bmkxREVBB3VuaTFERUIHdW5pMURFQwd1bmkxREVEB3VuaTFERUUHdW5pMURFRgd1bmkxREYwB3VuaTFERjEHdW5pMURGMgd1bmkxREYzB3VuaTFERjQHdW5pMURGNQd1bmkxREZDB3VuaTFERkQHdW5pMURGRQd1bmkxREZGB3VuaTFFOUQHdW5pMUU5Rgd1bmkxRUZBB3VuaTFFRkIHdW5pMUVGQwd1bmkxRUZEB3VuaTFFRkUHdW5pMUVGRgd1bmkxRjcxB3VuaTFGNzMHdW5pMUY3NQd1bmkxRjc3B3VuaTFGNzkHdW5pMUY3Qgd1bmkxRjdEB3VuaTFGQkQHdW5pMUZCRQd1bmkxRkJGB3VuaTFGQzAHdW5pMUZDMQd1bmkxRkNEB3VuaUUwRkIHdW5pMUZDRQd1bmlFMEZEB3VuaTFGQ0YHdW5pRTBGRgd1bmkxRkQzB3VuaTFGREQHdW5pRTBGQwd1bmkxRkRFB3VuaUUwRkUHdW5pMUZERgd1bmlFMTAwB3VuaTFGRTMHdW5pMUZFRAd1bmkxRkVFB3VuaTFGRUYHdW5pRTEwMQd1bmkxRkZEB3VuaUUxMDIHdW5pMUZGRQd1bmlFMEZBB3VuaTIwNEEHdW5pMjA0RQd1bmkyMDUwB3VuaTIwNTEHdW5pMjA1Mgd1bmkyMDUzB3VuaTIwNTQHdW5pMjA1NQd1bmkyMDU2B3VuaTIwNTgHdW5pMjA1OQd1bmkyMDVBB3VuaTIwNUIHdW5pMjA1Qwd1bmkyMDVEB3VuaTIwNUUHdW5pRTBGNAd1bmkyMDk0B3VuaTIwQjAHdW5pMjBCNgd1bmkyMEI3B3VuaTIwQkIHdW5pMjBEQgd1bmkyMERDB3VuaTIwRTgHdW5pMjBGMAd1bmkyMTRGB3VuaTIxN0MHdW5pMjE3RAd1bmkyMTdFB3VuaTIxN0YHdW5pMjE4MAd1bmkyMTgxB3VuaTIxODIHdW5pMjE4Mwd1bmkyMTg0B3VuaTIxODUHdW5pMjE4Ngd1bmkyMTg3B3VuaTIxODgHdW5pMjdFRgd1bmkyREZGB3VuaUE2OUYHdW5pQTdGRgd1bmlBOTJFB3VuaUZFMjAHdW5pRkUyMQd1bmlGRTIyB3VuaUZFMjMHdW5pRkUyNAd1bmlGRTI1B3VuaUZFMjYHdW5pRkUyNwd1bmlGRTI4B3VuaUZFMjkHdW5pRkUyQQd1bmlGRTJCB3VuaUZFMkMHdW5pRkUyRAd1bmkwMjhBB3VuaTAyRDQHdW5pMDRBRgd1bmkwNEIxB3VuaTIxMjMHdW5pMjAxNgd1bmkwMkNDB3VuaTAyOEIHdW5pMDFCRgd1bmkwMzNEB3VuaTA0RjkHdW5pMDM3QQd1bmkwNDZCB3VuaTA0NkQHdW5pMDQ2Nwd1bmkwNDY5B3VuaTA0OTkHdW5pMDRERgd1bmlGRUZGB3VuaTA0QzIHdW5pMDRERAAAAAAABAAAAAMAAFEcAAAABAAAACQAAwAB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AAABNwAABBkAAAQZAAABOQAABBoAAAQaAAAEAwAABBsAAAQbAAAEBgAABBwAAAQcAAABKgAABB0AAAQdAAAAuwAABB4AAAQeAAABcAAABB8AAAQiAAAHxAAABCMAAAQkAAAECQAABCUAAAQlAAAHyAAABCYAAAQmAAAECwAABCcAAAQnAAAEDQAABCgAAAQsAAAEEgAABC0AAAQvAAAEGQAABDAAAAQwAAACGQAABDEAAAQzAAAEtgAABDQAAAQ0AAAEuwAABDUAAAQ1AAACfwAABDYAAAQ2AAAEvAAABDcAAAQ4AAAEvgAABDkAAAQ5AAAIQwAABDoAAAQ6AAAEwQAABDsAAAQ7AAAExgAABDwAAAQ8AAAEyQAABD0AAAQ9AAAEywAABD4AAAQ+AAADNwAABD8AAAQ/AAAE0AAABEAAAARAAAADQAAABEEAAARBAAACUQAABEIAAARCAAAE0QAABEMAAARDAAADwwAABEQAAAREAAAE0gAABEUAAARFAAADtAAABEYAAARGAAAE1QAABEcAAARHAAAE1wAABEgAAARJAAAE2gAABEoAAARLAAAE3QAABEwAAARMAAAE3AAABE0AAARPAAAE4wAABFAAAARRAAACgAAABFIAAARSAAAClwAABFMAAARTAAAILwAABFQAAARUAAAE6AAABFUAAARVAAADcAAABFYAAARXAAACwAAABFgAAARYAAACyQAABFkAAARaAAAE4QAABFsAAARbAAAClgAABFwAAARcAAAISwAABF0AAARdAAAJMwAABF4AAAReAAADxAAABF8AAARfAAAE1gAABGAAAARgAAAHnwAABGEAAARhAAAIbgAABGIAAARiAAAHzAAABGMAAARjAAAE4AAABGQAAARkAAAHhgAABGUAAARlAAAIFQAABGYAAARmAAAHtwAABGcAAARnAAAJ7AAABGgAAARoAAAHuAAABGkAAARpAAAJ7QAABGoAAARqAAAHtQAABGsAAARrAAAJ6gAABGwAAARsAAAHtgAABG0AAARtAAAJ6wAABG4AAARuAAAHlwAABG8AAARvAAAIUAAABHAAAARwAAAHowAABHEAAARxAAAIgQAABHIAAARyAAAEBwAABHMAAARzAAADNQAABHQAAAR0AAAEIwAABHUAAAR1AAAE7QAABHYAAAR2AAAHlAAABHcAAAR3AAAIRgAABHgAAAR4AAAHrgAABHkAAAR5AAADOgAABHoAAAR6AAAHoAAABHsAAAR7AAAIbwAABHwAAAR8AAAHoQAABH0AAAR9AAAIcAAABH4AAAR+AAAHogAABH8AAAR/AAAIdAAABIAAAASAAAAHlgAABIEAAASBAAAITQAABIIAAASCAAAIugAABIMAAASDAAAIxQAABIQAAASEAAAIeAAABIUAAASFAAAIBAAABIYAAASGAAAIggAABIcAAASJAAAJNAAABIoAAASKAAABPAAABIsAAASLAAAEwAAABIwAAASMAAAJNwAABI0AAASNAAAE3wAABI4AAASOAAABeQAABI8AAASPAAADPAAABJAAAASQAAAD/QAABJEAAASRAAAEuQAABJIAAASSAAAHjwAABJMAAASTAAAILgAABJQAAASUAAAEHAAABJUAAASVAAAE5gAABJYAAASWAAAEAQAABJcAAASXAAAEvQAABJgAAASYAAAHuQAABJkAAASZAAAJ7gAABJoAAASaAAABFQAABJsAAASbAAAEwwAABJwAAAScAAAEBAAABJ0AAASdAAAExAAABKAAAASgAAABFAAABKEAAAShAAAExQAABKIAAASiAAAAqwAABKMAAASjAAAEzAAABKQAAASkAAAArQAABKUAAASlAAAEzQAABKYAAASmAAAEHQAABKcAAASnAAAE5wAABKgAAASoAAAEHwAABKkAAASpAAAE6QAABKoAAASqAAAHiQAABKsAAASrAAAIGQAABKwAAASsAAAHrAAABK0AAAStAAAItQAABK4AAASuAAAHrwAABK8AAASvAAAJ4AAABLAAAASwAAAHsAAABLEAAASxAAAJ4QAABLIAAASyAAAB0gAABLMAAASzAAAE1AAABLQAAAS0AAAEDAAABLUAAAS1AAAE6gAABLYAAAS2AAAEDgAABLcAAAS3AAAE2AAABLgAAAS4AAAEDwAABLkAAAS5AAAE2QAABLoAAAS6AAAEEAAABLsAAAS7AAACpgAABLwAAAS8AAAEIAAABL0AAAS9AAAE6wAABL4AAAS+AAAHfwAABL8AAAS/AAAH7QAABMAAAATAAAAIeQAABMEAAATBAAAHuwAABMIAAATCAAAJ8QAABMMAAATDAAAEBQAABMQAAATEAAAEwgAABMUAAATFAAAHhwAABMYAAATGAAAExwAABMcAAATHAAAAqgAABMgAAATIAAAEzgAABMkAAATJAAAArAAABMoAAATKAAAEzwAABMsAAATLAAAHgQAABMwAAATMAAAH7wAABM0AAATNAAABJwAABM4AAATOAAAEygAABM8AAATPAAAC7wAABNAAAATQAAAAMQAABNEAAATRAAACGgAABNIAAATSAAAAMgAABNMAAATTAAACGwAABNQAAATUAAAAQAAABNUAAATVAAACHwAABNYAAATWAAAAiAAABNcAAATXAAACggAABNgAAATYAAAEIQAABNkAAATZAAAIpQAABNoAAATaAAAHqQAABNsAAATbAAAIpgAABNwAAATcAAAHvAAABN0AAATdAAAJ8gAABN4AAATeAAAHugAABN8AAATfAAAJ7wAABOAAAATgAAAEIgAABOEAAAThAAAE7AAABOIAAATiAAABOgAABOMAAATjAAAIRAAABOQAAATkAAABOwAABOUAAATlAAAIQgAABOYAAATmAAABcQAABOcAAATnAAADOAAABOgAAAToAAABcwAABOkAAATpAAAIagAABOoAAATqAAABdAAABOsAAATrAAAIawAABOwAAATtAAAJOAAABO4AAATuAAADyQAABO8AAATvAAADxQAABPAAAATwAAADygAABPEAAATxAAADxgAABPIAAATyAAADywAABPMAAATzAAADxwAABPQAAAT0AAAHgAAABPUAAAT1AAAH7gAABPYAAAT3AAAJOgAABPgAAAT4AAAHswAABPkAAAT5AAAJ6AAABPoAAAT6AAAD/gAABPsAAAT7AAAEugAABPwAAAT8AAAB0wAABP0AAAT9AAAE0wAABP4AAAT/AAAJPAAABS8AAAUvAAAEyAAADj8AAA4/AAAFDAAAHUMAAB1DAAAFyQAAHUcAAB1HAAAFygAAHUgAAB1JAAAFzAAAHU0AAB1NAAAFzwAAHU8AAB1PAAAF0wAAHVAAAB1QAAAF1QAAHVIAAB1SAAAF1wAAHVYAAB1WAAAF2AAAHVcAAB1YAAAF3AAAHVsAAB1bAAAF3gAAHWIAAB1iAAAF/AAAHWMAAB1jAAAGBQAAHWQAAB1lAAAGCAAAHZwAAB2cAAAFywAAHaAAAB2gAAAFzgAAHbsAAB27AAAF4gAAHb8AAB31AAAJPgAAHfwAAB3/AAAJdQAAHgAAAB4A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BTME7wTxBUwE8AVPBcAGaAWwBboFjAWoBVIFrwZtBbkFmAXlBeYGZAOHBb4FhwZ1BeQFuwWNBlQGUgZVBTgABQAGAAcABAADAAgAPQBLAGAAYQBiAGMAygDLAMwAxgeLASwBRQFGAUcBQgFBBZYBQwGnAagBqQGqAdcD2QNyAg0B+QIBAhcCCAITAhwCSgJnAmgCaQJlAq8CsAKxAqkEJQL4AwwDDQMOAwkDCAWXAwoDiQOKA4sDhAO6BCYDtwALAhAADAH6AA0CEQBMAksATQJMAE4CTQBPAk4AVgJYB4MCUwBkAmoAZQJrAGYCbABnAm0AaAJuAJACjQCRAo4AkgKPAJMCkACjAp8AqQKeAM0CqwDOArIAzwKzANACtQDRAqgHkgLCAQoCxgEPAs0ISgEZAtsBGgLcARsC3QeZAtoBIALUAS0C/gEuAv8BLwMAATYC+gFIAw8BSQMQAUoDEQF1AzkBfwNNAYADTgGBA08BjANmAY0DZwGOA2gBjwNpAZoDewGbA3wHqwN6AasDhQGsA4wBrQONAa4DjgGvA48BsAOQAckDqwHYA7sB2QHuA9IB7wPTAfAD1AhXAkAARgd+AkEHrQjMAFIASgJIAFwAVQeFAlYIBgB6B6gHiACKBPIAjwP7ApoA1wDIARYCzALVCFEIYwE1Av0BcgFEAwsHnghsAXoDPQeyAZcDcQeKCBwDdQGhCLkBogGmA4YD9wexAdYDuAH1A84HjAeOCCMIJAURBRUIywgyCeYIfAh9CH4IHwBeAmAHmAEiAsoHmwE/AwYADgIAANICtgFLAxIBsQORAbIDkgGzA5MBtAOUAbUDlQKDAA8CCQAQAgwAPgIdAI4CjACUApEBEALOAUwDEwFNAxQHjQghAscHggBdAl4AlQKSAK4I1AEwAwEACQIUAD8CHgFkAysAEQIHABICDwBpAm8AagJwANMCtwDUArgBTgMVAU8DFgGCA1ABgwNRAbYDlgG3A5cBkANqAZwDfQjVCNYApAKgCNcCVwjYCNkB9APPABMCCgBrAnEBUAMXAVEDGAFSAxkBUwMaAdoDvALZAvsDdwK8CNoI2wAuAFECRwEhAaMDZQPQCNwI3QBFAcQI3gB5AmYBCwK+A0QDQwGKA0cB4AO5AhgH1AfWAkIIcwJJAlQCVQgYCKQIpwRHBEgESgRJAr0CiwgtB5AEtQfYApsCmAKZAq4EbAeTAtYC2ALXCFoC8gLzAvEC/AL5B5wDNgedCG0IewNICKEDSQNZA1cDSwNKB6QHpQNkCBoIRwgdCBsDeQN2A4gJ3gnlA6UDqgPIB7QD0QPYCCAIIggwCDgINAf/BqYI4ARGB5EI4QLFAtIHmgNCCDEIMwJfAmICYQjOCLcDeAKJCCUI4gjjCCYCnAKdBdAIPAXSBdoIoggnB6YF3wXhBXkFegf8BWsH+giNCIsINQg3B9AH0gfTB88GagZzCFMIKAipCCsJ5AhhCDoHwAf1B/QIjgiMCd8IEwiACGQGbgZwBnEGdgZrBmUIiQiDCCwF1AXbBeAINgjGCMgIygjJCMcI5QjmCOcI6AgFCFgGegZ4BoEGgwZ8CHcGfgaEBn0GgAaFBnkGgghVCFQGewfkBn8H/Qf2B/sH9wg7B8IIsgizB80GhgiPCLQIsQg9CD4GiwaNBo4GjAaIBocIVgfjB84H5waJBooH4AaQCGIGjwjSCMMH2gfZCK0IrAiQB+IIrwioCecIxAh2CDkHwQh6CE8IBwhFCPkIFwjAB98IaAhpAT0JIwnpCSQJJQkmBYkBDAZnBnQAIgWIAHwAsADZAeID5ARtACEASAPaA9sAewH2AK8D3ADYARcAPAEoAT4D3QFlA94BewPfAaQB4QPgAdQD4QPiANoB4wQoBEUEVARuBIkEJwRBBEIEQwREBFIEUwRrBGwISAR+CGUIZwR/AywEgASBBIUEhgSHBIgEmgO1BJwEnQRvBIoDLQSLBJ4JJwfbCLgD+AP5A/oEmwh/CSgJKQkqB6oIsAeECBAHlQhMB6cIowhJCIgCUALIAW4JKwksCS0JLgBTASkJLwSECTAJMQkyAIYAhwQkB8kEHgGWAOcA6AENBBcEGAQRB8oBOAfLBAgAMAP8AEcHwwP/AIUEAAQCATcBOQQDBAYBKgC7AXAHxAfFB8YHxwQJBAoHyAQLBA0EEgQTBBQEFQQWBBkEGgQbAhkEtgS3BLgEuwJ/BLwEvgS/CEMEwQTGBMkEywM3BNADQAJRBNEDwwTSA7QE1QTXBNoE2wTdBN4E3ATjBOQE5QKAAoEClwgvBOgDcALAAsECyQThBOIClghLCTMDxATWB58IbgfMBOAHhggVB7cJ7Ae4Ce0HtQnqB7YJ6weXCFAHowiBBAcDNQQjBO0HlAhGB64DOgegCG8HoQhwB6IIdAeWCE0IugjFCHgIBAiCCTQJNQk2ATwEwAk3BN8BeQM8A/0EuQePCC4EHATmBAEEvQe5Ce4BFQTDBAQExAEUBMUAqwTMAK0EzQQdBOcEHwTpB4kIGQesCLUHrwngB7AJ4QHSBNQEDATqBA4E2AQPBNkEEAKmBCAE6wd/B+0IeQe7CfEEBQTCB4cExwCqBM4ArATPB4EH7wEnBMoC7wAxAhoAMgIbAEACHwCIAoIEIQilB6kIpge8CfIHugnvBCIE7AE6CEQBOwhCAXEDOAFzCGoBdAhrCTgJOQPJA8UDygPGA8sDxweAB+4JOgk7B7MJ6AP+BLoB0wTTCTwJPQXKBcwFzQXTBdUF2AXcBd0F/AYFBggGCQAUAhYAQgJDAEMCRABEAkUAUAJPAFcCWQBYAloAWQJbAFoCXABbAl0AbAJyAG0CcwBuAnQAbwJ1AHACdgCLAogAlgKTAKUCoQCmAqIApwKjAKIClQCoAqQAyQKsAMcCqgERAs8BEgLQARMC0QEcAt4BHQLfAR4C4AEfAuEBJAL0ASUC9QEmAvYBMQMCATIDAwEzAwQBNAMFAVQDGwFVAxwBVgMdAVcDHgF3Az4BeAM/AYQDUgGFA1MBhgNUAYcDVQGRA2sBkgNsAZMDbQGUA24BlQNvAZ0DfgGeA38BnwOAAaADgQG4A5gBuQOZAboDmgG7A5sBvAOcAcYDpgHHA6cBygOsAcsDrQHMA6kBzQOuAc4DrwHQA7IB0QOzAdsDvQHxA9UB8gPWAfMD1wKlA4IDsAO+AhIChwKGCXkBmAl6ABUCCwAWAg4AFwICABgCBAAZAgUAGgIGABsCAwAcAfsAHQH9AB4B/gAfAf8AIAH8AHECdwByAngAcwJ5AHQCegB1AnsAdgJ8AHcCfQB4An4A1QK5ANYCugFYAx8BWQMgAVoDIQFbAyIBXAMjAV0DJAFeAyUBXwMmAWADJwFhAygBYgMpAWMDKgG9A50BvgOeAb8DnwHAA6ABwQOhAcIDogHDA6MB3AO/Ad0DwAHeA8EB3wPCCXsJfAl9CX4JfwmABDEJgQRRCYIEXQmDBHgJhAM0CYUElAmGBKcJhwQ/BEAAKwAsAC0ALwA7CYgJiQmKCYsJjARmBGcEaARpBGoAgwCEALkAugDECY0JjwmRBHkEegR7CZMJlAmWCZgElQSWBJcJmgSCBIMEmASZAegB6QHqAesBfAmbCZwJnQSzBLQBbQFvA+0D4wP2CZ8JoQg/CEEFVAVTBVUFVgnjCNEFaQVqBXEIhQVuBW8FcAiEBaoFqwVXBVoIcQV+BX0IQAaTBl0GXgVyBXMFdAV2BXcFeAflBYoFiwiGBTIFOQh1CNMH7AfmB9cFWQYpBT4FQAU2BTcFNAmjBb8FWwVcCaQIhwmlCaYJpwmoCakJqgmrBXUJrAmtCa4JrwmwCbEJsgaUBeMF0QXxBfIF8wXtBe4F1gYcBh0GHgYYBhkF9AX4BgIGCwm0BfsF/gX/BgAGAQYDBgYGBwgeBQEFAwULBPwFBgT/BPgFCQT7BQcCYwT1BPoFBAUFCbUE+QUABP0E/gUCCbYJtwT3BPYE8wm4BQgE9AUKBQ0JuQm6BwYHBwZhBmAGoQWyAYkBiAW0BbUFswniBlYGWQZbBloGWAZXCJkIoAieCJYIlAibCJoIkQiYCJwIkgifCJMIlwiVCJ0IcgjQCLsIKggpCKsIqggUCGYItggWCM8GqAa6Bq0Guwa2BrwG/Ab/BvsFxwPbBcMFlQbxBvcG+Ab6BvkG0AbUBtIG1gbSBtYGzwbTBtEG1QbRBtUG3wbhBcgG2QapBq4GtwasBrEGuQKtArQCuwK/AsQDRgNMA1YDWAW8Bb0F7wXwBfUF9gX3BfkF+gYEBgoGDAYNBhoGGwjfCbMI5AhbCF8IXAhgCaIJjgmVCZAJlwmSCZkJngmgB/4Hvwi/CAkH6QfqB+sH1QgBCBIIDwgNCFIIwgheCLwICwgACIoH8QgKCA4H6AfcB74H3Qi+B/IH4QgICBEIXQgMCMEH8wfeB/kIzQi9BzkHOgc7BzwF2QfwBYEACgHsAhUDzAAAAAEAAAASACAACgADACoAOgAyAAJERkxUADxsYXRuADwAA2Nwc3AAMmtlcm4AOG1hcmsAPgABAAAAAQAwAAQAAAABAEIACQAIAAIAKgAyADwAAAAAAAEAAAAAAAEAAQAAAAEAAgABAIwABQAQACAAAQACAAAu7gABAAIAADl8AAEAGAFaAAMAOARSAAD//wADAAAAAQACAAEADgZ3BnsGfAaCCBcIWwhcCF8IYAkPCRAJFgkYCbwADgAAInAAASJ2AAEifAABIoIAACKIAAEijgABIpQAASKaAAEioAABIqYAACKsAAIisgACIrgAASK+AAIAJgACAAkAAAALAJYACAChANcAlADZAOgAywEJAYcA2wGKAesBWgHtAfcBvANEA0QBxwPJA8sByAPZBCQBywUVBRUCFwd+B48CGAeSB5ICKgeUB5kCKwebB5sCMQeeB58CMgejB6MCNAenB7MCNQe1B7wCQgfDB8wCSghjCGMCVAh5CHkCVQjUCNUCVgjXCNgCWAjcCNwCWgjeCN4CWwkfCR8CXAkhCSECXQknCScCXgkpCSkCXwktCS0CYAkwCTICYQk3CTgCZAk6CToCZgk8CTwCZwl7CXsCaAl9CX0CaQl/CX8CagACAH4AAgA7AAAAPQBcADoAXwCtAFoArwETAKkBFwGIAQ4BigGXAYABmQGgAY4BogHVAZYB1wHzAcoB9QH2AecB+AJBAekCQwJIAjMCSgJUAjkCVgJdAkQCXwJfAkwCYQJhAk0CYwKDAk4ChQKIAm8CigKZAnMCmwKbAoMCngK8AoQCwALCAqMCxALFAqYCygLLAqgCzQLXAqoC2gM4ArUDOwNCAxQDRQNJAxwDTANxAyEDdAN1A0cDeQOGA0kDiAO0A1cDtgO3A4QDuQPOA4YD0QPXA5wD2gPaA6MD3APcA6QD4gP2A6UD+AP6A7oD/gP+A70EAAQCA74EBgQHA8EECQQJA8MEDQQRA8QEFQQVA8kEGQQZA8oEGwQcA8sEIAQhA80EIwQjA88EJwRAA9AERARFA+oERwRIA+wESgRRA+4EUwRqA/YEbAR9BA4EgQSEBCAEiASZBCQEnQS0BDYEuAS6BE4EvATBBFEEwwTDBFcExQTIBFgE1ATUBFwE1wTZBF0E3gTeBGAE4wTjBGEE5gTmBGIE6wTvBGME/wUCBGgFBAUEBGwFCwUNBG0GZAZkBHAGZgZmBHEGaAZoBHIGawZrBHMGeQZ5BHQGogamBHUHCAchBHoHQwdcBJQHfweBBK4HgweDBLEHhweHBLIHiQeJBLMHiwePBLQHkgeSBLkHlAeUBLoHmAeZBLsHmwebBL0HqQepBL4HqwesBL8HrwewBMEHswezBMMHuQe8BMQHwwfDBMgHxQfLBMkH1AfUBNAH7QfvBNEH/Qf9BNQIGQgZBNUIIAghBNYIIwgjBNgIKQgpBNkILQgvBNoIQghEBN0IRghGBOAISwhLBOEIaghrBOIIcghyBOQIeQh5BOUIfwh/BOYIkwiVBOcIlwiXBOoImQiZBOsInAidBOwIpAimBO4Itgi2BPEI3wjfBPIJMQkzBPMJOAk9BPYJgQmHBPwJkwmTBQMJmgmaBQQJvgnBBQUJ6AnoBQkJ7gnvBQoJ8QnyBQwFDilgKWYAAClgKWYAAClgKWYAAClgHqoAAClgHrAAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAClgKWYAAAAAHrwAAAAAHrwAAAAAHrYAAAAAHrwAACbeJuQAACbeJuQAACbeJuQAACbeJuQAAB7CHsgAAB7OHtQAACbeJuQAACbeJuQAAAAAKboAAAAAKboAAAAAKboAAAAAHtoAAAAAKboAAAAAKboAAAAAKboAAAAAHtoAAAAAKboAAAAAKcAAAAAAKboAAClsKXIAAB7gHuYAAClsKXIAAClsKXIAAClsKXIAAClsKXIAAClsKXIAAClsKXIAAClsKXIAAB9kH2oAAB9kH1gAAB9kHuwAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH14AAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB9kH2oAAB7yHvgAAB7+HwQAAB8KIdQAAB8QHxYAAB8cHyIAAB8oHy4AAB80HzoAAB9AH0YAAB9MH1IAAB9kH2oAAB9kH1gAAB9kH14AAB9kH2oAACbSJtgAAB9wH3YAACbSJtgAAB98H4IAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGH4gAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGJswAACbGH4gAACbGJswAACAqIDAAACAqIDAAACAqIDAAACAqIDAAACAqIDAAACAqIDAAACAqIDAAACAqIDAAAB+OH5QAACAqIDAAACAqIDAAACAqIDAAACAqIDAAACAqIDAAAB+aH6AAAB+mH6wAAB/WH9wAAB/iH+gAAB/uH/QAAB/6IAAAACAGIAwAACASIBgAACAeICQAAB+yH7gAAB++H8QAACAqIDAAAB/KH9AAAB/WH9wAAB/iH+gAAB/uH/QAAB/6IAAAACAGIAwAACASIBgAACAeICQAACAqIDAAACl4KX4AACl4KX4AACl4KX4AACl4KX4AACl4KX4AACl4IDYAACl4IDwAACl4KX4AACBCIEgAACl4KX4AACl4KX4AACl4KX4AACl4KX4AACl4KX4AACl4KX4AACl4KX4AACl4KX4AACl4KX4AACRuKkQAACl4KX4AACBOIFQAACl4KX4AACBaIGAAACBmIGwAACByIHgAACB+IIQAACCKIJAAACCWIJwAACCiIKgAACCuILQAACl4KX4AACl4KX4AACC6IMAAACDGIMwAACl4KX4AACl4INIAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACFiINgAACFiIN4AACFiIVwAACFiIWgAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACFiIVwAACDkIOoAACDwIPYAACD8IQIAACEIIQ4AACEUIRoAACEgISYAACEsITIAACE4IT4AACFiIVwAACFiIVwAACFEIUoAACFQIVYAACFiIVwAACFiIWgAAAAAIW4AAAAAIW4AAAAAIW4AAAAAIW4AAAAAIW4AACjWJxoAACjWJxoAACjWJxoAACjWKNwAACjWJxoAACjWJxoAACjWJxoAAClUKVoAAClUIXQAAClUKVoAAClUKVoAAClUKVoAAClUKVoAAClUKVoAAClUKVoAACF6IYAAAClUKVoAAClUKVoAACmEKYoAACmEIYYAACmEKYoAACmEKYoAACmEKYoAACmEKYoAACmEKYoAACmEKYoAACh8IbAAACh8IYwAACh8IZIAACh8IbAAACh8IbAAACh8IaQAACh8IbAAACh8IbAAACh8IbAAACh8IbAAACGYIZ4AACh8IbAAAAAAIbAAAAAAIaQAAAAAIbAAAAAAIbAAAAAAIbAAAAAAIbAAAAAAIaoAACh8IbAAACh8IbAAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgIbYAACcgIcIAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgIcIAACcgIbYAACcgJyYAACcgIbwAACcgJyYAACcgIcIAACcgJyYAACHIJY4AACHOIdQAACHaIeAAACHmIewAACHyIfgAACH+IgQAACIKIhAAACIWJjwAACcgJyYAACIcIiIAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACcgJyYAACIoIi4AAAAAKL4AAAAAIjQAAAAAKL4AAAAAIjoAAAAAIkAAAAAAKL4AAAAAIkYAACcgJyYAACJMIlIAACJMKKwAACJMIlIAACJMIlIAACJMIlIAACJMIlIAACJMIlIAACJMIlIAACJMIlIAACJMIlIAACJYIl4AACZaImQAACaoJq4AACaoImoAACaoJq4AACaoJq4AACaoJq4AACaoJq4AACaoJq4AACaoJq4AACaoJq4AACaoJq4AACaoJq4AACaoJq4AACJwJq4AACjEKMoAACjEKMoAACjEKMoAACjEKMoAACjEKMoAACjEKMoAACjEKMoAACjEKMoAACjEKMoAACjEKMoAACjEKMoAACKIIo4AACKIIo4AACKIInwAACKIInYAACKIIo4AACKIIo4AACKIIoIAACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIIo4AACKIInYAACKIInwAACKIIo4AACKIIoIAACKIIo4AACKUIpoAAClgKWYAAClgIqAAAClgKWYAACKyIrgAACKyIrgAACKyIqYAACKyIqwAACKyIrgAACKyIrgAACKyIrgAACnkKeoAACnkKeoAACnkKeoAACnkKeoAACnkKeoAACnkKeoAACiOKJQAACiOIr4AACiOKJQAACiOKJQAACiOKJQAACiOKJQAACiOIsQAACiOKJQAACiOKJQAACiOIsoAACiOKJQAACiOKJQAACLQItYAACiOKJQAACLcIuIAACLoIu4AACL0J3oAACL6IwAAACiOKJQAACiOKJQAACMGIwwAACMSIxgAACiOKJQAACMkIyoAACMkIx4AACMkIyoAACMkIyoAACMkIyoAACMkIyoAACMkIyoAACMkIyoAACMkIyoAACaQIzwAACaQIzAAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQJvAAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzYAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQIzwAACaQJvAAACaQIzwAACaQIzwAACaQIzwAACaQJvAAAAAAKmIAAAAAKmIAAAAAI0IAAAAAKmIAACNaI1QAACNaI0gAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI8AAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI04AACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI1QAACNaI8AAACNgI2YAACNgI2YAACNgI2YAACNgI2YAACNgI2YAACNgI2YAAAAAKgIAAAAAKgIAAAAAKgIAAAAAKgIAAAAAI2wAAAAAKgIAAAAAKgIAAAAAKgIAAAAAI2wAAAAAKgIAAAAAKgIAACOEI4oAACOEI4oAACOEI4oAACSSI3IAACN4I34AACOEI4oAACOEI4oAACOEI4oAACOEI4oAACOEI4oAACOEI4oAACOEI4oAACOEI4oAACOEI4oAACOWKZAAACOWKZwAACOWKZAAACOWI5AAACOWKUIAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZwAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWKZAAACOWI5AAACOWKZwAACOWKZAAACmWKZAAACOoI64AAAAAI5wAAAAAI6IAACOoI64AACkeKSQAACO0I7oAACkeKSQAACkeKSQAACkeKSQAACkeKSQAACkeKSQAACkeKSQAACkeI8AAACkeKSQAACPYI94AACPYI94AACPYI94AACPYI94AACSSKhQAACSSKhQAACPGI8wAACPYI94AACPYI94AACPYI94AACPYI94AACPYI94AACPYI9IAACPYI94AACPYI94AACPYI94AACmuKbQAACmuKbQAACmuJCwAACmuKbQAACPkI+oAACmuKbQAACmuKbQAACmuKbQAACmuI/AAACmuI/YAACmuKbQAACmuKbQAACmuKbQAACP8KbQAACQCJAgAACmuKbQAACmuKbQAACmuKbQAACmuKbQAACmuKbQAACmuKbQAACQOJBQAACmuKbQAACmuJCwAACmuKbQAACQaJoQAACQaJoQAACo+KkQAACQmJCwAACQmJCwAACQmJCwAACQmJCAAACQmJCwAACQmJCwAACQyJDgAACo+KkQAACo+KkQAACo+KkQAACQ+JEQAACo+KkQAACRKJGIAACo+JGgAACo+KkQAACo+KkQAACo+KkQAACo+KkQAACo+KkQAACo+KkQAACRuKkQAACRQKVoAACRuKkQAACRuKkQAACRWKcYAACRcJGIAACRuJGgAACRuKkQAACRuKkQAACRuKkQAACRuKkQAACRuKkQAACRuKkQAACl4KX4AACpcKmIAACpcKmIAACpcKmIAACpcKmIAACpcJHQAACpcKmIAACpcKmIAACSSKhQAACSSJHoAACSSKhQAACSSKhQAACSSKhQAACSAJIYAACoOKhQAACSSJUAAACSSKhQAACSSKhQAACSSJIwAACSSKhQAACSSKhQAACSSKhQAACSSKhQAACSSKhQAACoaKiAAACoaKUIAACoaKUIAACSeJJgAACoaKiAAACoaKZwAACoaJtgAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaJtgAACoaKZwAACoaKiAAACoaKUIAACoaKiAAACSeJKQAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKiAAACoaKUIAACS8JMIAACSqJLAAACS8JMIAACS8JLYAACS8JMIAACS8JMIAACTIJM4AACTIJM4AACo+JOYAACo+JOYAACo+JOYAACTUJNoAACTUJNoAACo+JOYAACo+JOAAACo+JOYAACo+JOYAACo+JOYAACo+JOYAACo+JOYAACo+JOYAACo+JOYAACo+JOYAACo+JPIAACo+JPIAACo+JPIAACo+JPIAACo+JOwAACo+JPIAACo+JPIAACo+JPIAACo+JPIAACo+JPIAACo+JPIAACo+JPIAACo+JPIAACT4JmwAACT4JmwAACT4JmwAACT4JeIAACT4JmwAACT4JmwAACT4JmwAACT4JmwAACT4JmwAACT4JmwAACT4JmwAACT4JmwAACT4JmwAACT4JmwAACT+JQQAACUcJRYAACUcJRYAACUKJRAAACUcJRYAACUcJRYAACUcJRYAACUcJRYAACUcJRYAACUcJRYAACUcJRYAACUcJRYAACUcJSIAACVGJUwAACVGJSgAACVGJSgAACVkJWoAACUuJTQAACVGJToAACVGJUAAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVGJUwAACVkJVIAACVkJVgAACVkJWoAACVkJV4AACVkJWoAACV2JXwAACV2JXwAACV2JXAAACV2JXwAACWUJZoAACWUJYIAACWUJZoAACWUJZoAACWUJYgAACWUJY4AACWUJZoAACWUJZoAACWUJZoAACnwKfYAACnwKfYAACnwJaAAACnwKfYAACXWJdwAACXWJb4AACWmJawAACXWJbIAACXWJdwAACXWJdwAACXWJdwAACXWJdwAACXWJbgAACXWJdwAACXWJdwAACXWJb4AACXWJdwAACXWJdwAACXWJdwAACXWJb4AACXWJdwAACXEJcoAAAAAKOIAAAAAJdAAAAAAKOIAACXWJdwAACXoJmwAACXoJmwAACXoJmwAACXoJeIAACXoJmwAACXoJmwAACXoJmwAACXoJmwAACXoJmwAAAAAKdgAACcgJyYAACYwAAAAACXuAAAAACX0AAAAACYAAAAAACYGAAAAACYMAAAAACYSAAAAACYYAAAAACYeAAAAACYkAAAAACYqAAAAACX6AAAAACYAAAAAACYGAAAAACYMAAAAACYSAAAAACYYAAAAACYeAAAAACYkAAAAACYqAAAAACYwAAAAAAAAJjYAAAAAJjwAAAAAKNwAAAAAKdgAAAAAKLIAAAAAKLIAAAAAKKYAAClgAAAAACcgJyYAAAAAKOIAAAAAKFgAAAAAKFgAAAAAKFgAAAAAJkIAAAAAJkgAACZOJlQAAAAAKeoAACZaJmAAAAAAKdgAAChMAAAAACiCJmYAAAAAKGoAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAACn8KgIAAAAAKggAAAAAKggAAAAAKggAAAAAJmwAAAAAKfYAAAAAKggAAAAAKggAAAAAKggAAAAAKggAAAAAKggAAAAAKggAAAAAKggAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoO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BWIJAAABBSYAAAABBTIJAAABA1ILAAABA2ULAAABA1kAAAABA2UJAAABA1gAEAABA5UJAAABAxcAAAABBO0JAAABBE0LAAABBGQAAAABBGsJAgABBeAAAAABBecJAgABBegAAAABBe8JAgABBkIAAAABBkoJAgABBhIAAAABBhoJAgABBZwAAAABBaMJAgABBckAAAABBdAJAgABB+4AAAABB/YJAgABB5UAAAABB5wJAgABB6EAAAABB6gJAgABB8oAAAABB9IJAgABBuoAAAABBvIJAgABBwgAAAABBw8JAgABBBYAAAABBB4JAgABAXELAAABAZcLAAABAnUAAAABAnYLAAABAm8AAAABAnEJAAABAyQAAAABAyYJAAABAwUAAAABAwYJAAABBSoAAAABBSwJAAABBNEAAAABBNIJAAABBN0AAAABBN4JAAABBQYAAAABBQgJAAABBCYAAAABBCgJAAABBEQAAAABBEYJAAABA34AAAABA4AJAAABA04AAAABA1AJAAABAYQLAAABAoALAAABAqYLAAABBFAAAAABBFIJAAABBCoAAAABBCwJAAABBlIAAAABBlMJAAABBfsAAAABBf0JAAABBgEAAAABBgIJAAABBiwAAAABBi4JAAABBVEAAAABBVIJAAABBW4AAAABBXAJAAABBKYAAAABBKcJAAABBHYAAAABBHcJAAABApMJAAABApIAAAABApMLAAABBKkJAAABAZQLAAABA4AAAAABAboJAAABBQ8LAAABBBQLAAABBCcLAAABBDgAAAABBDgJAAABBAELAAABBDkJAAABBBQJAAABBDALAAABBEMLAAABBFYLAAABBK4AAAABBOgAAAABBOgJAAABBUYAAAABBUYJAAABBu4AAAABBu4JAAABBn0AAAABBn0JAAABBhcAAAABBhcJAAABBjcAAAABBjcJAAABBUIAAAABBIkAAAABBIkJAAABB58AAAABB6sJAAABA5QLAAABA4cJAAABBZIJAAABBQIJAAABA6oAAAABA4gJAAABA68AAAABA40JAAABA64JAAABA6ULAAABA43/6gABBBwLAAABA/YLAAABBAkLAAABBAn/9AABBAkJAAABBCr/9AABBCoJAAABA/sLAAABBXYLAAABBZ0LAAABBYoACgABBYoJAAABA/MLAAABA80LAAABA+ALAAABBeQAAAABBeQJAAABBX0AAAABBX0JAAABBzEAAAABBzEJAAABB84AAAABBwwAAAABBwwJAAABBbYAAAABBbYJAAABBZ4AAAABBZ4JAAABA60LAAABA5MAAAABA5oJAAABA1IJAAABAywJAAABAz8HAAABBQYJAAABA4oJAAABA2QJAAABA3cHAAABA2gAAAABA5QAAAABBAAHAAABA2gJAAABAu8HAAABA2oAAAABAx4IAAABA2cAAAABAxsIAAABAzIJAAABA0UAAAABAjYJAAABAl4JAAABAdAAAAABAlUJAAABA2X9rgABA2cHAAABA3cJAAABBVT+AAABA14HAAABAW0LAAABA14AAAABAW0JAAABAZYAAAABAZQJAAABAV0JAAABAYMJAAABAXD9hQABAWP9hQABAWMHAAABASD9qgABAW4HAAABAuD9iAABAYMLAAABAzUAAAABAXAJAAABBNT+AAABAyIHAAABAcwAAAABAcoJAAABAXUAAAABAdQAAAABA5YAAAABAccAAAABAXQJAAABAYELAAABAcEAAAABBQUJAAABA1sJAAABA40AAAABA40HAAABA0gJAAABA1sAAAABA1gG/gABA1j//gABA2sI/gABAXb9ygABA7UHAAABA8IJAAABAW/9ygABA64HAAABBXD9ygABAzEHAAABAjEAAAABAu4HAAABAnkJAAABAmYHAAABAnoJAAABAmcHAAABAxAAAAABAvoAAAABAvUHAAABAlj+kAABAeoHAAABAdYIHQABAlYAAAABAdYKHQABA1oJAAABA8IAAAABA5kHAAABA0cJAAABA24JAAABA4QAAAABA1oHAAABA3QJAAABA04JAAABA2EJAAABA4oAAAABA2EHAAABAysJAAABAysAAAABAysHAAABBJsJAAABBIgJAAABBK4JAAABBJYAAAABBJsHAAABAxgJAAABBPD/1wABAzMHAAABAz0JAAABAxYJAAABAyoJAAABAy0AAAABBFEIwAABA5YLAAABBOb/1wABAyoHAAABAygJAAABAxMAAAABBMcAAAABBJUAAAABBTkAAAABBK0AAAABBS4AAAABBuUAAAABBosAAAABBlYAAAABBn8AAAABBeEAAAABBf4AAAABBEAAAAABA84JAAABBUIJAAABBBf/AAABBc//AAABCCcAAAABBNYJAAABA9EAAAABA/MJAAABA9wJAAABAxUHAAABAXoJAAABA04HAAABAxwJAAABAyEHAAABBPoHAAABAzAAAAABA6oHAAABBGAHAAABAwMHAAABA5f/6gABA5IJAAABA1UIBQABBDEAAAABBDEJAAABBDYAAwABBDoJAAABAy4AEAABA2sJAAABA4IAAAABA3wJAAABArwJAAABAz8JAAABAwsJAAABAsAJAAAB+4gJAAABCR0JAAABCDgAEAABCHUJAAABA7sJAAABBEMAAAABBEMJAAABB68AAAABB6oJAAABB6YAAAABB3QJAAABB3gAEAABB7UJAAABB5wAAAABB6QJAgABCTMJAAABB5kAAgABB58JAAABB9gAAAABBhIJAAABB84JAAABB7oAAAABB5gJAAABB4YAAAABB4EJAAABB8cJAAABBy8AAAABBv4JAAABB5QAAAABB6AJAAABB4wAEAABB8kJAAABB7YAAwABB7oJAAABB6oJAgABCUsJAAABB3QAAgABB3oJAAABB8QAAAABBf4JAAABB6UAAAABB6IJAAABB6MJAAABB7UAAAABB5IJAAABB6n/6gABB6MAAAABB6UJAAABB6T/9AABB6QACgABB6QABgABB6QAAAABB6QJAAABB6AAAAABB6YJAAABBdj//gABBCMLAAABBCMJAAABA8UJAAABA8MJAAABBBMJAAABA0sAAAABAYYJAAABBBQAAAABA8EAAAABA9wLAAABA+AAAAABA+AJAAABCDIAAAABBREKqgABA5sJAAABA5sLAAABBbgJAAABBbgLAAABA4EJAAABA6AAAAABA6IJAAABA3oLAAABA7UAAgABA84LAAABA5YJAAABBQoAAAABBQoHAAABAzgJAAABAzgHAAAB/KYJDAABA44HAAABA48HAAABAyUAAAABAyUHAAABA2L9rgABA2QHAAABAscJAAABA1UJAAABA2AHAAABAzQJAAABA1gJAAABAWgAAAABAWYHAAABA0YAAAABAYEJAAABA/sAAAABA/sJAAABA3UAAAABA0MJAAABAYIAAAABAYQJAAABBPwAAAABBPwJAAABA0UHAAABA0gAAAABA0UJAAABAw4AAAABAw4HAAABAXIAAAABAXAHAAABBEAJAAABA+7/AAABA0IJAAABA8sLAAABAwMJAAABA2cJAAABArQHAAABA8sABgABA8sJAAABAxgAAAABAxgHAAABAyoAAAABA1UHAAABAxoHAAABAXAAAAABA1sHAAABA1gAAAABA1gHAAABBOoAAAABBOkHAAABAXoHAAABAxwHAAABAW8AAAABAW4JAAABAwgHAAABA2IAAAABAxYIAAABBPIAAAABBPIHAAABB1QAAAABBGAJAAABAtsHAAABAtsJAAABBLwHAAABBLwJAAABl3AABAAABUZUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQATsJOwk7CTsJOvE68TrxOvE68TrxOvE68TrxPgk68UGxPgk+CT4JPgk+CT4JPgk+CU2pcEE+MTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwlYWTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwlJeUVZRbFYWUNhQ2FDYUNhQ2FDYUNhQ2FDYUNhWZlYWVhZWFlYWVhZWFlYWZBhWFk/gT+BidF1YVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWlE6GToZUPFrQVhZWFk6GToZbHlYWVTKa2k6GVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFk+aT5pPmk+aT5pU5lQeUy5TLlQeVB5UHlQeUy5UHljmZk5XfmXYaU5pTmlOaU5p2GbIYahWwlYWVhZWFlYWVhZWFlYWVvBWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFmGoT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JbbFtsW2xbbFtsT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk7CUYJQflB+UFBQflBQUFBPgmJ0iCZufGJ0cpx/ynNafYZidHQYauxidE+aYnRPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pk9GT0ZPRk9GT0T5pX8llqWbBUgFReVF5UXlReVF5UgFEyUJBQkFEyUTJRMmOuZ0Ji2mLaYtpjrmhGYtpnxGhGaEZjrmOuY65jrmOuY65jrmOuY65jrmOuY65jrk+oT6hPqE+oT6hPqE+oT6hPqE+oT6hRRFFEUURRRFFEUURRRFFEUURRRLYiUURRRKg4UURRRFFEUURRRFFEUURRRFFEUURfClFEUURRRFFEUURRRFFEUQ5RRFFEUURRDlEOUQ5RDlD8UPxQ/FD8UPxQ/FD8UPxQ/FD8VhZQ/FD8VhZQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UkhSSFJIYBxSSFJIUkhOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJWFmuCepBWFlUMVhZWFlYWVhZWFlNqU2pTalu+UQ5RDl9kUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ6fRFEOUZhRDlEOUQ5RDlEOUQ5gHFCiUKJQolGuXwpOYmwYTmJOYk5iTmJOYk5iTmJOYlFEUURRRFFEXwpfClD8Vx5OYlFEUURRRFFEUURRRFFEUURRRGGoYahgenB6dNZhQmGoT+BhqGDcbK5xMG1EYahhqG8mdmJ1nG/QYUJhqGGoT+BP4E/gYahgemGoYahhqGGodzBlZmGoYahhqFBeUF5QXlBeUF5QXlBeUURWFle4WShWFk/gVjxXuFUyVhZWFlYWVTK/yrroxLxWFlYWVhZP4FYWVhZWFlYWVhZWFlYWVhZWFlFEUURdWE5iUURRRFFEUUResE/gXwpRRFFEUURRRFFEUURRRFFEYahSSF++X75SSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSKO+UkhRxFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFEOUKJSSFJIUkhSSFJIUkhOYk5iceZSklKSUURRRFKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSeFKSbdpSklKSbdpSkk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7OT+BP4E/gX2RP4E/gT+BP4E/gT+BP4Ky2sWxP4FD8UPxQ/FD8g7RVWFD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8V0xXTFdMV0xQ/FioU0xYqFioT7ZPtk+2T7ZPtk+2T7ZPtlioWKhQomjIWKhYqFioWKhYqFioWKhYqFgsWKhYqFioWKhYqFCiWKhTalwQU2pcEFwQU2pTalNqU2pcYlxiXLSJsJSeUqxPgmSGT4KGoFfyTmhidGJ0TthqYlQeVB5WFk+CY65Sxk7YVhZRRFFEVhZO2FJIVhZSSFJIUkhPgk68VhZX8lOIUkhSSE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RO7FLgTuJObk5uUQ5Obk5uTm5Obk5uTm5Obk5uTm5Obk5uXQZO7FC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtHtyTvZ5slJIUkhSSFJIfqRQxlD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FJIUkhP0k50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdGjIToBOwlEgUSBRIE56ToBRRE/gUF5SSFBeUF5QXlFET+BP4FFET+BRRE/gUSBRRE/gUURVflJIT+BRRFFET+BRRFFET+BhqFJIUkhRRE7CUQ5P4FEOWKhOwln2WjxR2k6GUNhOvE68TsJP/E/uU6ZS+tAcTwBR8E/8UApPCk6Mi4pPFHf+fHhiDlAYUCZOwlA0Tx5PKE8oTyhPMk88Y0RWFoEQU+JT4lFEU+JTFFqGT0ZPRlMUWoZVpFWkWoZdrl2uXgRV8FXwjXBPRk9QUgZPUFIGT1qPlk94T3hPeE94VcpT4njYU+JPeE94U8RPeE94T3hPeFPiU+JT4k94T3hT4k6SyjpPZE9kUEJQQoJeTphPgk6YT2SFIk9kT2RPZE9kVhZQUF5aTp5OpFIcVKJSHE6kUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6k6qVMROqlDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUhxSHFIcUhxSHFIcUhxYalIcUhxOsE9uUhxOtlIy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AAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAP+Q/6r/4wAAABgAUwAAAAD/YP+9AAAAAAAAAAAAAAAAAAAAAAAAAAD/oABgAAAAAAAYABgAAAAAAAAAAP9gAAAAAAAAAFMAAAAAAAAAAAAAAAAAAP9QADAAAAAAAAAAAAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/70AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ev+DAAAAAAAAAAAAAP9jAAAAAAAAAAAAAAAAAAAAAP+q/8AAAP+qAAD/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAP+W/+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+6AAAAAAAAAAAAAAAAAAAAAP+WAAAAAAAAAAAAAAAAAAD/vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1D/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAD/ygAA/+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MP8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+j/cP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAP+QAAAAAP7wAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAA/0D/oAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAD/3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9QAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/qAAAAAAAAAAAAAAAAAAAAAAAA/7EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ygAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAA/7YAAAAAAAAAAAAAAAAAAAAAAAD/WgAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAD/kwAAAAAAAP+g/5AAAAAAAAAAAP9KAAD/oAAAAGAAAP/1AAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAP/WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/tAAAAAAAAAAAP+gAAAAAAAAAAD+cAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAAAAAAAAAAAAAAAAAEAAAAAAAAP9g/7MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAP+z/6oAAAAAAAAAAABg/90AAAAAAAAAAAAAAAAAAABg/8AAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAP+9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+wAE0AAAAAAAD/QP/AAAD/Mv77/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/lAAAP8tAAAAAP+z/vAAAAAAAAAAAAAAAAAAAAAAAAD/AP6QAAAAAAAAAAD/kAAAAAAAAP9QAAAAAP+A/xwAAP8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAAAAAAP+9/8AAAAAAAAAAAAAA/5b/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gwAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAA/5AAAAAAAAAAAP6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/qAAAAAP8d/3r/5QAAAAAAAAAAAAAAAP+zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAA/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8UAAAAAAAAAAP/7AAAAAAAAAAAAAP+Q/8AAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1gAAAAD/QAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAD/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MAB4AAAAAAAA/6AAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9bAAD/k/8Q/13/XgAAAAAAAAAAAAAAAP+qAAD/UP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8P7wAAD/UAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAD/YAAAAAAAAAAA/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2L/oP+T/0D/Zv9iAAAAAAAAAAAAAAAA/6oAAP9Q/6AAAAAA//MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAP9wAAAAAAAAAAAAAAAAAAAAAAAA/vAAAAAAAAAAAP9gAAAAAAAAAAD+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/GAAAAAP+g/73/zAAAAAAAAAAAABEAAP/AAAAAAP/KAAAAAAAAAAAAAP/KAAAAAAAmAAAAAAAAAAAAAAAAAAABIP9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9gAAAAAAAAAAD/kAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAACQAAAAAAEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAD/YADwAAAAAAAAAAAAAABwAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wwAAAAAAAAAA/6AAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAA/iD+2AAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAD+2P/K/7AAAP9w/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAAAAAAAAAAAAAAAAAAAAD/4//YAAAAAP+Q/+oAAP8A/6D/8/+g/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAP9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAA/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wgAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+gAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/YP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HgAAAAAAAAAAAAAAAAAA/7D+9QAAAAAAAAAAAAD/EAAAAAAAAAAAAAD/cP8EAAAAAAAA/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAAAAP9w/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9Q/8QAAP6AAAD/YP+QADgAMP9QAAAAAP+W/1D/YP84AAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6gAAD/YP9QAAAAAP+AAAAAAAAAAAAAAP6pAAD/cP9QAAD/EAAA/+AAAAAA/fAAAAAAAAD+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/k//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAA/1D/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAD/oAAAAAD/AP6QAAAAAAAAAAAAAP+QAAAAAAAAAAAAAP+gAAAAAP9Q/6D/oP9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAP+QAAAAAP8Q/4AAAP+gAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAP/w/zgAAP/gAAAAAAAAAAD/6AAAAAAAAAAA/+AAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP7Q/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+8AAA/wAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAA/0AAAAAA/qAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP5gAAAAAP8QAAAAAAAAAAAAAAAAAAAAAP7jAAD/UAAAAAAAAAAAAAAAAAAA/qAAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAAAAAAAAAAAKwAAAEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAP7w/yAAAAAAAAAAAP7wAAD/oAAA/6D/oAAA/6AAAAAA/oAAAAAAAAAAAP+gAAAAAAAAAAD/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAD/vQAAAAAAAAAAAAAAAABwAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAMAAYAAAAAAAAAAAAHAAAABgAAAAAAAAAAAAAAAAAAAAYACgABAAUABAAAAAAAAAAAAAAAAAAAAAAACAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7/+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MABgAAAAAAAAAAAAAAAAAAAAAP8g/1AAAAAA/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAwAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9QAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+0AKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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BXv/vAV8/7wFff+8Ba//8AWy//AHBgA5BwcAOQAHAZr/xgGb/8YD4f96BAD/oAQC/6oEFP+NBRf/swAHAZr/xgGb/8YD4f96BAD/FgQC/6oEFP+NBRf/swAHAuAAYANiAGAFNf9QBYf/oAWO/7AFrv+gB6v/YAAHAqoAYAK3AHAFh/+ABY7/QAWo/3AFrv+gBcH/oAAIAMgAYAEhAGACtwBgAtQAYALVAHADiABgB4MAYAeLAGAACAK3AIAFE/+gBTD/cAU4/8AFTf++BVAAEAWH/6AFjv8wAAgCtwBwBRP/oAUw/3AFOP/ABU3/vgVQABAFh/+gBY7/MAAIBeP/4wXm/+AF5/+TBej/7QXp/+MF6gAlBev/5QXs/+0ACAYf/+YGIv/jBiP/ngYk/+8GJf/mBiYAIgYn/+gGKP/vAAkCqgBgArcAcAWH/4AFjv9ABaj/cAWu/6AFwf+gBwb/6AcH/+gACQKeAGACsQBgArIAYAKzAGACtgBgArcAgAK4AGADXQBgBRcAgAAJAMYA4ADHAIAAyQBwArUAYAK3AHAC4ACAAuEAYANiAIAFqQBgAAkAyABgASEAYAGb/zABov8wAaP/MAK3AHAC1QBgB4MAYAeLAGAACQOl/4gFcP8wBXH/MAV7/x4FfP8eBX3/HgWo/6AFqf9wBcX/YAAJA+H+4AP/AJAEDf9QBBT/cAS7ALAE0f9wBNf/oATd/5AHq/7wAAkBmv/GAZv/xgPh/3oEAP8WBAL/qgQU/40FF/+zBwYAKAcHACgACQGa/6ABnf+gAZ7/oAGf/6ABoP+gAaL/kAGj/5AD4f9QBBT/cAAJAMYA4ADHAIAAyQBwArUAYAK3AGAC4ACAAuEAYANiAIAFqQBgAAoAigDYATUA2AK8ANgCvQDYAsMA2ALGANgCxwDYAsgA2ALJANgC/ADYAAsAxgDgAMcAgADJAHACtQBgArcAYALgAIAC4QBgA2IAgAWpAGAHBv+sBwf/pAALAMYA4ADHAIAAyQBwArUAYAK3AGAC4ACAAuEAYANiAIAFqQBgBwYCNgcHAjYACwDGAOAAxwCAAMkAcAK1AGACtwBgAuAAgALhAGADYgCABakAYAcG/soHB/7KAAsAxgDgAMcAgADJAHACtQBgArcAYALgAIAC4QBgA2IAgAWpAGAHBv+pBwf/qQALAIoAUAE1AFACvABQAr0AUALDAFACxgBQAscAUALIAFACyQBQAvwAUAWpAGAADAGb/zABov8wAaP/MAKeAGACqQBgAqoAYAKrAGACsgBgArMAYAK3AHACuABgAsEAYAAOAdv/oAHd/6AB3v+gAd//oAVR/3AFdP9ABYf/UAWa/5AFqP6QBa3/kAWu/6AFuf+ACIT/gAiF/4AADgDGAOAAxwCAAMgAYADJAHABIQBgArUAYAK3AGAC1QBgAuAAgALhAGADYgCABakAYAeDAGAHiwBgAA4CCP+QArcAcAMJ/4AFE/+gBTD/cAU4/8AFQ/+gBU3/QgVQABAFh/+QBY7/MAWW/5AFqP9QBan/IAAPAFUAYAGb/1ABoQBgAaL/UAGj/1ACngBwArEAcAKyAIACtwBgArgAcAVN/2AFff8wBY7/oAWo/5AFqf8gAA8AqQCABIAAYASHAGAFE/9gBjkAAAY6AAAGOwAABjwAAAY9/7EGPgAABj8AAAZAAAAGQQAABkIAAAZQAAAADwBVAGABm/9QAaEAYAGi/1ABo/9QAp4AcAKxAHACsgCAArcAcAK4AHAFTf9gBX3/MAWO/6AFqP+QBan/IAAQAdv/oAHd/6AB3v+gAd//oAVR/3AFdP9ABYf/UAWa/5AFqP6QBa3/kAWu/6AFuf+ABwYAnAcHAJwIhP+ACIX/gAAQAMYA4ADHAIAAyABwAMkAcAEhAHACtQBgArcAYALUAGAC1QBwAuAAgALhAGADYgCAA4gAYAWpAGAHgwBwB4sAcAARAgj/kAK3AIADCf+ABRP/oAUw/3AFOP/ABUP/oAVN/0IFUAAQBXv/oAV8/6AFff+gBYf/kAWO/zAFlv+QBaj/UAWp/yAAEQII/5ACtwBwAwn/gAUT/6AFMP9wBTj/wAVD/6AFTf9CBVAAEAV7/6AFfP+gBX3/oAWH/5AFjv8wBZb/kAWo/1AFqf8gABECpwBgAqgAYAKsAGACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAgAK5AGACugBgArsAYALAAGACwgBgBN4AYAASAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AIACuQBgAroAYAK7AGACwABgAsIAYANdAGAE3gBgABIDh/+AA///kARS/1AEa/9ABH//QASB/1AEu/9gBOX/oAUT/vAFGP+QBTD/QAU4/0AFQ/9gBUv+oAVN/nAFjv7wBZr/gAWp/5AAEwCKAJYAxgDgAMcAgADJAHABNQCWArUAYAK3AGACvACWAr0AlgLDAJYCxgCWAscAlgLIAJYCyQCWAuAAgALhAGAC/ACWA2IAgAWpAGAAEwCKACYAxgDgAMcAgADJAHABNQAmArUAYAK3AGACvAAmAr0AJgLDACYCxgAmAscAJgLIACYCyQAmAuAAgALhAGAC/AAmA2IAgAWpAGAAFAKnAGACqABgAqwAYAKtAGACrwBgArAAYAKxAGACtABgArUAYAK2AGACtwCAArkAYAK6AGACuwBgAsAAYALCAGADXQBgBN4AYAVN/5AFqf+QABQBmf+AAZr/gAGb/4ABnP+AAZ3/gAGe/4ABn/+AAaD/gAGh/4ABov+AAaP/gAGk/4AEDP+ABBH/gAQU/4AEJP+ABvH/gAer/4AHrP+AB8f/gAAUAZn/kAGa/5ABm/+QAZz/kAGd/5ABnv+QAZ//kAGg/5ABof+QAaL/kAGj/5ABpP+QBAz/kAQR/5AEFP+QBCT/kAbx/5AHq/+QB6z/kAfH/5AAFAGZ/6ABmv+gAZv/oAGc/6ABnf+gAZ7/oAGf/6ABoP+gAaH/oAGi/6ABo/+gAaT/oAQM/6AEEf+gBBT/oAQk/6AG8f+gB6v/oAes/6AHx/+gABQBmf7wAZr+8AGb/vABnP7wAZ3+8AGe/vABn/7wAaD+8AGh/vABov7wAaP+8AGk/vAEDP7wBBH+8AQU/vAEJP7wBvH+8Aer/vAHrP7wB8f+8AAUA+H/gARs/6AEbf+gBG7/oARv/6AEcP+gBHH/oARy/6AEc/+gBHT/oAR1/6AEdv+gBHf/oAR4/6AEef+gBHr/oAR7/6AEfP+gBH3/oAWpAMAAFQGZ/4ABmv+AAZv/gAGc/4ABnf+AAZ7/gAGf/4ABoP+AAaH/gAGi/4ABo/+AAaT/gAK3AHAEDP+ABBH/gAQU/4AEJP+ABvH/gAer/4AHrP+AB8f/gAAVAZr/oAGd/6ABnv+gAZ//oAGg/6ABof+gAdv/oAHd/6AB3v+gAd//oAUU/+gFF//ABRj/swUZ/+AFMf/mBTX+5wZm/oAGkf/AB6v/oAiE/oAIhf6AABUBmv+gAZ3/oAGe/6ABn/+gAaD/oAGh/6AB2/+gAd3/oAHe/6AB3/+gBRT/6AUX/8AFGP+zBRn/4AUx/+YFNf7nBmb+gAaR/8AHq/+gCIT+AAiF/oAAFQHV/6AB1v+gAdf/oAHY/6AB2f+gAdr/oAHb/6AB3P+gAd3/oAHe/6AB3/+gAeD/oAHh/6AB4v+gAeP/oAHo/6AB6f+gAez/oAQJ/6AHr/+gB7D/oAAWAZn/cAGa/3ABm/9wAZz/cAGd/3ABnv9wAZ//cAGg/3ABof9wAaL/cAGj/3ABpP9wAdb/cAP7/6AEDP9wBBH/cAQU/3AEJP9wBvH/cAer/3AHrP9wB8f/cAAWAZn/MAGa/zABm/8wAZz/MAGd/zABnv8wAZ//MAGg/zABof8wAaL/MAGj/zABpP8wAdb/cAP7/6AEDP8wBBH/MAQU/zAEJP8wBvH/MAer/zAHrP8wB8f/MAAWAZn/IAGa/yABm/8gAZz/IAGd/yABnv8gAZ//IAGg/yABof8gAaL/IAGj/yABpP8gAdb/kAP7/5AEDP8gBBH/IAQU/yAEJP8gBvH/IAer/yAHrP8gB8f/IAAXAZn/cAGa/3ABm/9wAZz/cAGd/3ABnv9wAZ//cAGg/3ABof9wAaL/cAGj/3ABpP9wAdb/cAK3AGACxf+ABAz/cAQR/3AEFP9wBCT/cAbx/3AHq/9wB6z/cAfH/3AAFwGZ/yABmv8gAZv/IAGc/yABnf8gAZ7/IAGf/yABoP8gAaH/IAGi/yABo/8gAaT/IAHW/3ACtwBgAsX/gAQM/yAEEf8gBBT/IAQk/yAG8f8gB6v/IAes/yAHx/8gABgAVQBgAF4A0AB5ANAAqgDQAK4A0AE1ANABNwDQATwA0AE9ANABiQDQAaEAYAKeAHACrwBgArEAYAKyAHACswBgArYAYAK3AJACuABgAsX/YALGAGADXQBwBRcBAAahANAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwCQArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwBwArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwBgArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQHF/8ABxv/AAcf/wAHI/8AByf/AAcr/wAHL/8ABzP/AAc3/wAHO/8AD4f8AA/v/wAQj/8AEQv+gBVD/wAVp/1AFav+gBW7/UAVv/6AFdP+gB6v/QAiR/8AIlP/ACJr/wAib/8AAGQII/5ACF/+QAmX/cAMI/3ADCf9wA4T/cAOF/5ADqf9wA7f/oAPO/5AD0P+QA9H/kAPW/5MD1/+TA9j/kAUT/0AFMP+gBU3/IAVR/10Fff8QBYD/kAWH/yAFjv8gBan/YAWu/6AAGgEL/rACSP9gAkn/YAJU/2ACV/9gAl7/YAJh/2ACYv9gAmb/YAKD/2ACsP+gArcAgAMP/2ADQ/9gBCf/YAUT/0AFMP9QBX3+8AWH/3AFif9QBY7+4AWW/4AFqP9wBa7/kAXB/6AIpP9gABoBCf9QAQr/UAEL/1ABDP9QAQ3/UAHFABABxgAQAccAEAHIABAByQAQAcoAEAHLABABzAAQAc0AEAHOABACtwBwA/sAEAQjABAFUAAQBXv/kAV8/5AFff+QCJEAEAiUABAImgAQCJsAEAAaAQv+sAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/6ACtwBwAw//YAND/2AEJ/9gBRP/QAUw/1AFff7wBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAGwDGAOAAxwCAAMkAcAK1AGACtwBgAuAAgALhAGADYgCABakAYAWqAHAFqwBwBbMAcAW6AHAFuwBwBbwAcAW9AHAGOQCABjoAgAY7AIAGPACABj0AgAY+AIAGPwCABkAAgAZBAIAGQgCABlAAgAAbA+D/kARC/3AEgP+gBIf/QAVR/70FUv+9BV7/vQWH/70Fiv+gBYz/oAWO/1AFlP+9BZX/vQWX/70Fmv+9BaH/vQWi/70FpP+9Baf/vQWo/70Frv+gBq3/vQau/70Gr/+9BsT/vQbF/70Gxv+9ABwCCP+QAhf/kAJl/3ACtwBwAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA87/kAPQ/5AD0f+QA9b/kwPX/5MD2P+QBRP/QAUw/6AFTf8gBVH/XQV7/6AFfP+gBX3/oAWA/5AFh/8gBY7/IAWp/2AFrv+gABwAVQBgANAAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKrAGACrACAArIAcAKzAHACtQBwArcAYAK4AGACxgBwAuAAgALhAGADXQBgA2IAgAOAAGAE8ABgBPIAYAT7AGAFRQBQBUcAUAVJAFAFqQBwAB0B2/+gAd3/oAHe/6AB3/+gBVH/gwVS/70FXv+9BXT/QAWH/3YFlP+9BZX/vQWX/70Fmv+gBaH/vQWi/70FpP+9Baf/vQWo/yoFrf+QBa7/oAW5/4AGrf+9Bq7/vQav/70GxP+9BsX/vQbG/70IhP+ACIX/gAAeAdv/oAHd/6AB3v+gAd//oAVR/3AFUv+qBV7/qgV0/0AFh/9jBZT/qgWV/6oFl/+qBZr/gAWh/6oFov+qBaT/qgWn/6oFqP8WBaz/gAWt/4AFrv+gBbn/gAat/6oGrv+qBq//qgbE/6oGxf+qBsb/qgiE/4AIhf+AAB4B2/+gAd3/oAHe/6AB3/+gBVH/jQVS/8YFXv/GBXT/QAWH/4AFlP/GBZX/xgWX/8YFmv+aBaH/xgWi/8YFpP/GBaf/xgWo/zMFrP+gBa3/oAWu/6AFuf+QBq3/xgau/8YGr//GBsT/xgbF/8YGxv/GCIT/gAiF/4AAIAEJ/5ABCv+QAQv/kAEM/5ABDf+QAkj/YAJJ/2ACVP9gAlf/YAJe/2ACYf9gAmL/YAJm/2ACg/9gArD/oAK3AIADD/9gA0P/YAQn/2AFE/9ABTD/UAV7/5AFfP+QBX3/kAWH/3AFif9QBY7+4AWW/4AFqP9wBa7/kAXB/6AIpP9gACABCf+gAQr/oAEL/6ABDP+gAQ3/oAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/6ACtwBwAw//YAND/2AEJ/9gBRP/QAUw/1AFe/+gBXz/oAV9/6AFh/9wBYn/UAWO/uAFlv+ABaj/cAWu/5AFwf+gCKT/YAAgAQn/oAEK/6ABC/+gAQz/oAEN/6ACSP9gAkn/YAJU/2ACV/9gAl7/YAJh/2ACYv9gAmb/YAKD/2ACsP+gArcAgAMP/2ADQ/9gBCf/YAUT/0AFMP9QBXv/oAV8/6AFff+gBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAIQBVAGABmQDQAZoA0AGbANABnADQAZ0A0AGeANABnwDQAaAA0AGhANABogDQAaMA0AGkANACngBwArEAcAKyAIACtwBwArgAcAQMANAEEQDQBBQA0AQkANAFTf9gBXv/MAV8/zAFff8wBY7/oAWo/5AFqf8gBvEA0AerANAHrADQB8cA0AAiAdX/oAHW/6AB1/+gAdj/oAHZ/6AB2v+gAdv/oAHc/6AB3f+gAd7/oAHf/6AB4P+gAeH/oAHi/6AB4/+gAej/oAHp/6AB7P+gBAn/oAVR/3AFav+QBW//kAV0/5AFh/9QBZr/kAWo/pAFrP+ABa3/gAWu/6AFuf+AB6//oAew/6AIhP+ACIX/gAAiAdX/oAHW/6AB1/+gAdj/oAHZ/6AB2v+gAdv/oAHc/6AB3f+gAd7/oAHf/6AB4P+gAeH/oAHi/6AB4/+gAej/oAHp/6AB7P+gBAn/oAVR/3AFav+gBW//oAV0/6AFh/9QBZr/kAWo/pAFrP+gBa3/oAWu/6AFuf+gB6//oAew/6AIhP+ACIX/gAAiArcAcAQK/3AEDf+gBBT/kAS+/6AE0f9QBNf/YATd/4AE/v+gBRP/kAVR/xYFUv8WBV7/FgWH/xYFiv9wBYz/cAWO/3AFlP8WBZX/FgWW/4AFl/8WBZr/oAWh/xYFov8WBaT/FgWn/xYFqP9wBa7/gAat/xYGrv8WBq//FgbE/xYGxf8WBsb/FgAlAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA83/kAPO/5ADz/+QA9D/kAPR/5AD0v+QA9P/kAPU/5AD1f+QA9b/kAPX/5AD2P+QBRP/QAUw/6AFTf8gBVH/XQV7/xAFfP8QBX3/EAV//5AFgP+QBYH/kAWC/5AFh/8gBY7/IAWp/2AFrv+gCIf/kAAlAFUAYACKAHABNQBwAaEAYAKeAHACpwBgAqgAYAKpAHACqgBwAqsAcAKsAGACrQBgAq8AYAKwAGACsQBwArIAcAKzAHACtABgArUAYAK2AGACtwBwArgAcAK5AGACugBgArsAYAK8AHACvQBwAsAAYALBAHACwgBgAsMAcALGAHACxwBwAsgAcALJAHAC/ABwBN4AYAAlAIoAYAE1AGACngBwAqcAYAKoAGACqQBgAqoAcAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAHACswBgArQAYAK1AGACtgBgArcAkAK4AGACuQBgAroAYAK7AGACvABgAr0AYALAAGACwQBgAsIAYALDAGACxgBgAscAYALIAGACyQBgAvwAYANdAHAE3gBgBakAYAAlAFUAYACKAHAA0ABgATUAcAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKpAGACqgBgAqsAcAKsAIACsgBgArMAYAK1AHACtwBwArgAYAK8AHACvQBwAsEAYALDAHACxgBwAscAcALIAHACyQBwAuAAgALhAGAC/ABwA10AYANiAIADgABgBPAAYATyAGAE+wBgBakAcAAlAFUAYABeANAAeQDQAKoA0ACuANABNQDQATcA0AE8ANABPQDQAYkA0AGhAGACngBwAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAKyAHACswBgArQAcAK1AHACtgBwArcAkAK4AGACuQBwAroAcAK7AHACwABwAsIAcALF/2ACxgBgA10AcATeAHAFFwEABqEA0AAoAIoAYAE1AGAB+P/jAp4AYAKnAGACqABgAqkAYAKqAGACqwBgAqwAYAKtAGACrwBgArAAYAKxAGACsgBgArMAYAK0AGACtQBgArYAYAK3AHACuABgArkAYAK6AGACuwBgArwAYAK9AGACwABgAsEAYALCAGACwwBgAsYAYALHAGACyABgAskAYAL8AGADXQBgBN4AYAVN/6YFjv+QBaj/oAAqAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA87/kAPQ/5AD0f+QA9b/kwPX/5MD2P+QBRP/QAUw/6AFTf8gBVH/oAVS/8YFXv/GBX3/EAWA/5AFh/9tBY7/IAWU/8YFlf/GBZf/xgWa/8YFof/GBaL/xgWk/8YFp//GBaj/xgWp/2AFrv+gBq3/xgau/8YGr//GBsT/xgbF/8YGxv/GACoAVQBgANAAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKnAHACqABwAqkAYAKqAGACqwBgAqwAcAKtAHACrwBwArAAcAKxAHACsgBgArMAYAK0AHACtQBwArYAcAK3AKACuABgArkAcAK6AHACuwBwAsAAcALBAGACwgBwAsYAcALgAIAC4QBgA10AcANiAIADgABgBN4AcATwAGAE8gBgBPsAYAWpAHAAKgBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqcAYAKoAGACqQBgAqoAYAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAGACswBgArQAYAK1AGACtgBgArcAkAK4AGACuQBgAroAYAK7AGACwABgAsEAYALCAGACxgBwAuAAgALhAGADXQBgA2IAgAOAAGAE3gBgBPAAYATyAGAE+wBgBakAcAAtAFUAYABeANAAeQDQAIoAcACqANAArgDQATUAcAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAHACqABwAqwAcAKtAHACrwBwArAAcAKxAHACsgBwArMAYAK0AHACtQBwArYAcAK3AJACuABwArkAcAK6AHACuwBwArwAcAK9AHACwABwAsIAcALDAHACxf9gAsYAcALHAHACyABwAskAcAL8AHADXQBwBN4AcAUXAQAGoQDQAC0AVQBgAF4A0AB5ANAAigBwAKoA0ACuANABNQBwATcA0AE8ANABPQDQAYkA0AGhAGACngBwAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAKyAIACswBgArQAcAK1AHACtgBwArcAkAK4AHACuQBwAroAcAK7AHACvABwAr0AcALAAHACwgBwAsMAcALF/2ACxgBwAscAcALIAHACyQBwAvwAcANdAHAE3gBwBRcBAAahANAALQH4/+MCtwBwAtIAMANdAGADpAAwA6YAMAOnADADsQAwA7IAMAOzADADtAAwA7UAMAO2ADADtwAwA7gAMAO5ADADugAwA7sAMAO8ADADvQAwA74AMAO/ADADwAAwA8EAMAPCADADwwAwA8QAMAPFADADxgAwA8cAMAPMADAEtQAwBLwAMAS9ADAE0wAwBNQAMATtADAFTf+mBY7/kAWo/6AIRgAwCGcAMAk9ADAJ4AAwCeEAMAAvAgj/kAIX/5ACZf9wAtL/cAMI/3ADCf9wA4T/cAOF/5ADqf9wA7H/cAOy/3ADs/9wA7T/cAO3/6ADzf+TA87/mgPP/5MD0P+aA9H/mgPS/5MD0/+TA9T/kwPV/5MD1v+TA9f/kwPY/5oEvP9wBL3/cATT/3AE1P9wBRP/QAUw/6AFTf8gBVH/XQV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/8gBY7/IAWp/2AFrv+gCIf/oAk9/3AALwII/5ACF/+QAmX/cALS/3ADCP9wAwn/cAOE/3ADhf+QA6n/cAOx/3ADsv9wA7P/cAO0/3ADt/+gA83/oAPO/6ADz/+gA9D/oAPR/6AD0v+gA9P/oAPU/6AD1f+gA9b/oAPX/6AD2P+gBLz/cAS9/3AE0/9wBNT/cAUT/0AFMP+gBU3/IAVR/10Fe/+gBXz/oAV9/6AFf/+gBYD/oAWB/6AFgv+gBYf/IAWO/yAFqf9gBa7/oAiH/6AJPf9wAC8CCP+QAhf/kAJl/3AC0v9QAwj/cAMJ/3ADhP9wA4X/kAOp/3ADsf9QA7L/UAOz/1ADtP9QA7f/oAPN/5ADzv+QA8//kAPQ/5AD0f+QA9L/kAPT/5AD1P+QA9X/kAPW/5AD1/+QA9j/kAS8/1AEvf9QBNP/UATU/1AFE/9ABTD/oAVN/yAFUf9dBXv/EAV8/xAFff8QBX//kAWA/5AFgf+QBYL/kAWH/yAFjv8gBan/YAWu/6AIh/+QCT3/UAAxAFUAYABeANAAeQDQAIoAYACqANAArgDQATUAYAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAHACqABwAqkAYAKqAGACqwBgAqwAcAKtAHACrwBwArAAcAKxAHACsgBgArMAYAK0AHACtQBwArYAcAK3AKACuABgArkAcAK6AHACuwBwArwAYAK9AGACwABwAsEAYALCAHACwwBgAsX/YALGAGACxwBgAsgAYALJAGAC/ABgA10AcATeAHAFFwEABqEA0AAxAFUAYABeANAAeQDQAIoAcACqANAArgDQATUAcAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAGACqABgAqkAYAKqAHACqwBwAqwAYAKtAGACrwBgArAAYAKxAGACsgBwArMAYAK0AGACtQBgArYAYAK3AIACuABwArkAYAK6AGACuwBgArwAcAK9AHACwABgAsEAYALCAGACwwBwAsX/YALGAHACxwBwAsgAcALJAHAC/ABwA10AYATeAGAFFwEABqEA0AAzAFUAYACKAGAA0ABgATUAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AYAKnAGACqABgAqkAYAKqAGACqwBgAqwAYAKtAGACrwBgArAAYAKxAGACsgBgArMAYAK0AGACtQBgArYAYAK3AGACuABgArkAYAK6AGACuwBgArwAYAK9AGACwABgAsEAYALCAGACwwBgAsYAYALHAGACyABgAskAYALgAIAC4QBgAvwAYANdAGADYgCAA4AAYATeAGAE8ABgBPIAYAT7AGAFqQBwADMAVQBgAIoAcADQAGABNQBwAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqcAcAKoAHACqQBgAqoAYAKrAHACrABwAq0AcAKvAHACsABwArEAcAKyAGACswBgArQAcAK1AHACtgBwArcAcAK4AHACuQBwAroAcAK7AHACvABwAr0AcALAAHACwQBgAsIAcALDAHACxgBwAscAcALIAHACyQBwAuAAgALhAGAC/ABwA10AYANiAIADgABgBN4AcATwAGAE8gBgBPsAYAWpAHAANgGZ/0ABmv9AAZv/QAGc/0ABnf9AAZ7/QAGf/0ABoP9AAaH/QAGi/0ABo/9AAaT/QAHF/6ABxv+gAcf/oAHV/0AB1v9AAdf/QAHY/0AB2f9AAdr/QAHb/0AB3P9AAd3/QAHe/0AB3/9AAeD/QAHh/0AB4v9AAeP/QAHo/0AB6f9AAez/QAPh/0AD+/+gBAn/QAQM/0AEEf9ABBT/QAQj/6AEJP9ABVD/oAVp/6AFbv+gBvH/QAer/0AHrP9AB6//QAew/0AHx/9ACJH/oAiU/6AImv+gCJv/oAA2AZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAcX/kAHG/5ABx/+QAdX/gAHW/4AB1/+AAdj/gAHZ/4AB2v+AAdv/gAHc/4AB3f+AAd7/gAHf/4AB4P+AAeH/gAHi/4AB4/+AAej/gAHp/4AB7P+AA/v/kAQA/4AECf+ABAz/YAQR/2AEFP8wBBv/gAQj/5AEJP9gBPf/oAVQ/5AG8f9gB6v/YAes/2AHr/+AB7D/gAfH/2AIkf+QCJT/kAia/5AIm/+QADcEQ/+gBIX/oAVp/5AFbv+QBfQAOgX1ADoF9gA6BfcAOgX4ADoF+QA6BfoAOgX7ADoF/AA6Bf0AOgX+ADoF/wA6BgAAOgYBADoGAgA6BgMAOgYEADoGBQA6BgYAOgYHADoGCAA6BgkAOgYKADoGCwA6BgwAOgYNADoGDgA6Bg8AOgYQADoGEQA6BhIAOgYTADoGFAA6BhUAOgYWADoGFwA6BhgAOgYZADoGHAA6Bh0AOgYeADoGKgA6BisAOgYsADoGLQA6Bi4AOgYvADoGMAA6BjEAOgYyADoGMwA6ADgAigBgATUAYAGZAIABmgCAAZsAgAGcAIABnQCAAZ4AgAGfAIABoACAAaEAgAGiAIABowCAAaQAgAKeAHACpwBgAqgAYAKpAGACqgBwAqsAYAKsAGACrQBgAq8AYAKwAGACsQBgArIAcAKzAGACtABgArUAYAK2AGACtwCQArgAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALBAGACwgBgAsMAYALGAGACxwBgAsgAYALJAGAC/ABgA10AcAQMAIAEEQCABBQAgAQkAIAE3gBgBvEAgAerAIAHrACAB8cAgABBBEL/YARD/5AERP/GBEX/xgRG/8YER//GBEj/xgRJ/8YESv/GBEv/xgRM/8YETf/GBE7/xgRP/8YEUP/GBFH/xgSA/0AEhf+QBIf+8ASc/6AEnf+QBJ7/kASf/5AEoP+QBKH/kASi/5AEo/+QBKT/kASl/5AEpv+QBKf/kASo/5AEqf+QBKr/kASr/5AErP+QBK3/kASu/5AEr/+QBLD/kASx/5AEsv+QBLP/kAS0/5AFD/9gBRv/YAVR/8YFUv/GBV7/xgWH/8YFlP/GBZX/xgWX/8YFmv/GBaH/xgWi/8YFpP/GBaf/xgWo/8YGrf/GBq7/xgav/8YGxP/GBsX/xgbG/8YAQwAC/1AAA/9QAAT/UAAF/1AABv9QAAf/UAAI/1AACf9QAAr/UAAL/1AADP9QAA3/UAAO/1AAD/9QABD/UAAR/1AAEv9QABP/UAAU/1AAFf9QABb/UAAX/1AAGP9QABn/UAAa/1AAG/9QABz/UAAd/1AAHv9QAB//UAAg/1AAIf9QACL/UAAj/1AAJP9QACX/UAAm/1AAJ/9QACj/UAAp/1AAKv9QACv/UAAs/1AALf9QAC7/UAAv/1AAMP9QADH/UAAy/1AAM/9QADT/UAA1/1AANv9QADf/UAA4/1AAOf9QADr/UAA7/1AAPP9QAD3/UAA+/1AAP/9QAED/UAPI/1AD2/9QBwYA6wcHAOsARwII/5ACF/+QAmX/cAKb/6AC8v+gAvP/oAMI/3ADCf9wA4P/oAOE/6ADhf+gA4b/oAOH/6ADiP+gA4n/oAOK/6ADi/+gA4z/oAON/6ADjv+gA4//oAOQ/6ADkf+gA5L/oAOT/6ADlP+gA5X/oAOW/6ADl/+gA5j/oAOZ/6ADmv+gA5v/oAOc/6ADnf+gA57/oAOf/6ADoP+gA6H/oAOi/6ADo/+gA6n/cAO3/6ADzf+TA87/mgPP/5MD0P+aA9H/mgPS/5MD0/+TA9T/kwPV/5MD1v+TA9f/kwPY/5oFE/9ABTD/oAVN/yAFUf9dBXv/oAV8/6AFff+gBX//oAWA/6AFgf+gBYL/oAWH/yAFjv8gBan/YAWu/6AIh/+gAEkD2/+QBH7/QAVN/6AFaf+QBW7/kAVw/yAFcf8gBXv/MAV8/zAFff8wBaj/oAX0/8YF9f/GBfb/xgX3/8YF+P/GBfn/xgX6/8YF+//GBfz/xgX9/8YF/v/GBf//xgYA/8YGAf/GBgL/xgYD/8YGBP/GBgX/xgYG/8YGB//GBgj/xgYJ/8YGCv/GBgv/xgYM/8YGDf/GBg7/xgYP/8YGEP/GBhH/xgYS/8YGE//GBhT/xgYV/8YGFv/GBhf/xgYY/8YGGf/GBhz/xgYd/8YGHv/GBir/xgYr/8YGLP/GBi3/xgYu/8YGL//GBjD/xgYx/8YGMv/GBjP/xgY5AIAGOgCABjsAgAY8AIAGPQCABj4AgAY/AIAGQACABkEAgAZCAIAGUACAAFECCP+QAhf/kAJl/3ACm/+gAtL/cALy/6AC8/+gAwj/cAMJ/3ADg/+gA4T/oAOF/6ADhv+gA4f/oAOI/6ADif+gA4r/oAOL/6ADjP+gA43/oAOO/6ADj/+gA5D/oAOR/6ADkv+gA5P/oAOU/6ADlf+gA5b/oAOX/6ADmP+gA5n/oAOa/6ADm/+gA5z/oAOd/6ADnv+gA5//oAOg/6ADof+gA6L/oAOj/6ADqf9wA7H/cAOy/3ADs/9wA7T/cAO3/6ADzf+gA87/oAPP/6AD0P+gA9H/oAPS/6AD0/+gA9T/oAPV/6AD1v+gA9f/oAPY/6AEvP9wBL3/cATT/3AE1P9wBRP/QAUw/6AFTf8gBVH/XQV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/8gBY7/IAWp/2AFrv+gCIf/oAk9/3AAUwGZ/5ABmv+QAZv/kAGc/5ABnf+QAZ7/kAGf/5ABoP+QAaH/kAGi/5ABo/+QAaT/kAHF/2gBxv9oAcf/aAHI/14Byf9eAcr/XgHL/14BzP9eAc3/XgHO/14C4ABgA2IAYAOk/3ADpv9wA6f/cAO1/3ADtv9wA7f/cAO4/3ADuf9wA7r/cAO7/3ADvP9wA73/cAO+/3ADv/9wA8D/cAPB/3ADwv9wA8P/cAPE/3ADxf9wA8b/cAPH/3ADzP9wA+H/kAP7/2gEDP+QBBH/kAQU/5AEI/9oBCT/kARC/3AEtf9wBO3/cAT3/3AFNf9QBVD/aAVp/4gFav9gBW7/iAVv/2AFdP9gBXsAcAV8AHAFfQBwBYf/oAWO/7AFrv+gBvH/kAer/5AHrP+QB8f/kAhG/3AIZ/9wCJH/aAiU/2gImv9oCJv/aAng/3AJ4f9wAFUAAv+gAAP/oAAE/6AABf+gAAb/oAAH/6AACP+gAAn/oAAK/6AAC/+gAAz/oAAN/6AADv+gAA//oAAQ/6AAEf+gABL/oAAT/6AAFP+gABX/oAAW/6AAF/+gABj/oAAZ/6AAGv+gABv/oAAc/6AAHf+gAB7/oAAf/6AAIP+gACH/oAAi/6AAI/+gACT/oAAl/6AAJv+gACf/oAAo/6AAKf+gACr/oAAr/6AALP+gAC3/oAAu/6AAL/+gADD/oAAx/6AAMv+gADP/oAA0/6AANf+gADb/oAA3/6AAOP+gADn/oAA6/6AAO/+gADz/oAA9/6AAPv+gAD//oABA/6ABmf+gAZr/oAGb/6ABnP+gAZ3/oAGe/6ABn/+gAaD/oAGh/6ABov+gAaP/oAGk/6ADyP+gA9v/oAQM/6AEEf+gBBT/oAQk/6AG8f+gB6v/oAes/6AHx/+gAFsBm/8wAaL/MAGj/zACtwBwA9v/kAVN/6AFUf+9BVL/vQVe/70Faf9wBW7/cAWH/70Fjv+QBZT/vQWV/70Fl/+9BZr/vQWh/70Fov+9BaT/vQWn/70FqP+gBan/oAX0/5YF9f+WBfb/lgX3/5YF+P+WBfn/lgX6/5YF+/+WBfz/lgX9/5YF/v+WBf//lgYA/5YGAf+WBgL/lgYD/5YGBP+WBgX/lgYG/5YGB/+WBgj/lgYJ/5YGCv+WBgv/lgYM/5YGDf+WBg7/lgYP/5YGEP+WBhH/lgYS/5YGE/+WBhT/lgYV/5YGFv+WBhf/lgYY/5YGGf+WBhz/lgYd/5YGHv+WBir/lgYr/5YGLP+WBi3/lgYu/5YGL/+WBjD/lgYx/5YGMv+WBjP/lgY5AIAGOgCABjsAgAY8AIAGPQCABj4AgAY/AIAGQACABkEAgAZCAIAGUACABq3/vQau/70Gr/+9BsT/vQbF/70Gxv+9AF8ASf/TAEr/0wBL/9MATP/TAE3/0wBO/9MAT//TAFD/0wBR/9MAUv/TAFP/0wCN/9MAjv/TAI//0wCQ/9MAkf/TAJL/0wCT/9MAlP/TAJX/0wCW/9MAl//TAUD/0wFB/9MBQv/TAUP/0wFE/9MBRf/TAUb/0wFH/9MBSP/TAUn/0wFK/9MBS//TAUz/0wFN/9MBTv/TAU//0wFQ/9MBUf/TAVL/0wFT/9MBVP/TAVX/0wFW/9MBV//TAVj/0wFZ/9MBWv/TAVv/0wFc/9MBXf/TAV7/0wFf/9MBYP/TAWH/0wFi/9MBY//TAWT/0wFl/9MBZv/TAWf/0wFo/9MBaf/TAWr/0wFr/9MBbP/TAW3/0wFu/9MBb//TAXD/0wFx/9MBcv/TAXP/0wF0/9MBdf/TAX3/0wPc/9MEB//TBAr/0wQZ/9MEHv/TBQD/0wUB/9MFAv/TBRP/gAUw/6AFqf9ABbD/0wbY/9MG2f/TB4n/0wep/9MHrv/TB8b/0wBhA4f/YAPb/1AEf/+gBIH/oAS2/6AFDv+gBRP/QAUW/6AFGv+gBTD/oAVN/0AFUf96BVL/egVe/3oFcP6wBXH+sAV7/vAFfP7wBX3+8AV//1AFgP9QBYH/UAWC/1AFh/96BYr/eAWL/8gFjP94BY3/yAWO/wAFlP96BZX/egWX/3oFmv96BaH/egWi/3oFpP96Baf/egWo/3oFqf7gBfT/QAX1/0AF9v9ABff/QAX4/0AF+f9ABfr/QAX7/0AF/P9ABf3/QAX+/0AF//9ABgD/QAYB/0AGAv9ABgP/QAYE/0AGBf9ABgb/QAYH/0AGCP9ABgn/QAYK/0AGC/9ABgz/QAYN/0AGDv9ABg//QAYQ/0AGEf9ABhL/QAYT/0AGFP9ABhX/QAYW/0AGF/9ABhj/QAYZ/0AGHP9ABh3/QAYe/0AGKv9ABiv/QAYs/0AGLf9ABi7/QAYv/0AGMP9ABjH/QAYy/0AGM/9ABq3/egau/3oGr/96BsT/egbF/3oGxv96CIf/UABiAgj/kAIX/5ACZf9wApv/cwLS/3AC8v9zAvP/cwMI/3ADCf9wA4P/cwOE/40Dhf+aA4b/cwOH/3MDiP9zA4n/cwOK/3MDi/9zA4z/cwON/3MDjv9zA4//cwOQ/3MDkf9zA5L/cwOT/3MDlP9zA5X/cwOW/3MDl/9zA5j/cwOZ/3MDmv9zA5v/cwOc/3MDnf9zA57/cwOf/3MDoP9zA6H/cwOi/3MDo/9zA6n/cAOx/3ADsv9wA7P/cAO0/3ADt/+gA83/kwPO/5oDz/+TA9D/mgPR/5oD0v+TA9P/kwPU/5MD1f+TA9b/kwPX/5MD2P+aBLz/cAS9/3AE0/9wBNT/cAUT/0AFMP+gBU3/IAVR/6AFUv/GBV7/xgV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/9tBY7/IAWU/8YFlf/GBZf/xgWa/8YFof/GBaL/xgWk/8YFp//GBaj/xgWp/2AFrv+gBq3/xgau/8YGr//GBsT/xgbF/8YGxv/GCIf/oAk9/3AAdgAC/5AAA/+QAAT/kAAF/5AABv+QAAf/kAAI/5AACf+QAAr/kAAL/5AADP+QAA3/kAAO/5AAD/+QABD/kAAR/5AAEv+QABP/kAAU/5AAFf+QABb/kAAX/5AAGP+QABn/kAAa/5AAG/+QABz/kAAd/5AAHv+QAB//kAAg/5AAIf+QACL/kAAj/5AAJP+QACX/kAAm/5AAJ/+QACj/kAAp/5AAKv+QACv/kAAs/5AALf+QAC7/kAAv/5AAMP+QADH/kAAy/5AAM/+QADT/kAA1/5AANv+QADf/kAA4/5AAOf+QADr/kAA7/5AAPP+QAD3/kAA+/5AAP/+QAED/kAEJ/5ABCv+QAQv/kAEM/5ABDf+QAZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAcX/cAHG/3ABx/9wAe3/kAHu/5AB7/+QAfD/kAHx/5AB8v+QAfP/kAH0/5AB9f+QAfb/kAH3/5ADyP+QA+H/YAP7/3AEDP9gBBH/YAQU/2AEI/9wBCT/YAVQ/3AFaf9gBW7/YAVw/qAFcf6gBXv+4AV8/uAFff7gBvH/YAer/2AHrP9gB8f/YAiR/3AIlP9wCJr/cAib/3AAeQGZ/2ABmv9gAZv/YAGc/2ABnf9gAZ7/YAGf/2ABoP9gAaH/YAGi/2ABo/9gAaT/YAHF/1ABxv9QAcf/UAHI/5AByf+QAcr/kAHL/5ABzP+QAc3/kAHO/5AB1f8wAdb/MAHX/zAB2P8wAdn/MAHa/zAB2/8wAdz/MAHd/zAB3v8wAd//MAHg/zAB4f8wAeL/MAHj/zAB6P8wAen/MAHs/zADpP+gA6b/oAOn/6ADqP+gA6n/oAOr/6ADrP+gA63/oAOu/6ADr/+gA7D/oAO1/6ADtv+gA7f/oAO4/6ADuf+gA7r/oAO7/6ADvP+gA73/oAO+/6ADv/+gA8D/oAPB/6ADwv+gA8P/oAPE/6ADxf+gA8b/oAPH/6ADzP+gA+H/MAP7/1AECf8wBAz/YAQR/2AEFP9gBCP/UAQk/2AEtf+gBO3/oAVQ/1AFaf8ABWz/oAVt/6AFbv8ABYj/oAWq/5AFq/+QBa//wAWy/8AFs/+QBbr/kAW7/5AFvP+QBb3/kAY5/4AGOv+ABjv/gAY8/4AGPf+ABj7/gAY//4AGQP+ABkH/gAZC/4AGUP+ABvH/YAer/2AHrP9gB6//MAew/zAHx/9gCEb/oAhn/6AIkf9QCJT/UAia/1AIm/9QCeD/oAnh/6AAiQAC/6AAA/+gAAT/oAAF/6AABv+gAAf/oAAI/6AACf+gAAr/oAAL/6AADP+gAA3/oAAO/6AAD/+gABD/oAAR/6AAEv+gABP/oAAU/6AAFf+gABb/oAAX/6AAGP+gABn/oAAa/6AAG/+gABz/oAAd/6AAHv+gAB//oAAg/6AAIf+gACL/oAAj/6AAJP+gACX/oAAm/6AAJ/+gACj/oAAp/6AAKv+gACv/oAAs/6AALf+gAC7/oAAv/6AAMP+gADH/oAAy/6AAM/+gADT/oAA1/6AANv+gADf/oAA4/6AAOf+gADr/oAA7/6AAPP+gAD3/oAA+/6AAP/+gAED/oAEJ/4ABCv+AAQv/gAEM/4ABDf+AAZn/IAGa/yABm/8gAZz/IAGd/yABnv8gAZ//IAGg/yABof8gAaL/IAGj/yABpP8gAcX/kAHG/5ABx/+QAc//gAHQ/4AB0f+AAdL/gAHT/4AB1P+AAdX/cAHW/3AB1/9wAdj/cAHZ/3AB2v9wAdv/cAHc/3AB3f9wAd7/cAHf/3AB4P9wAeH/cAHi/3AB4/9wAej/cAHp/3AB7P9wA8j/oAPh/3oD+/+QBAD/gAQC/6oECf9wBAz/IAQR/yAEFP8gBCP/kAQk/yAFF/+zBVD/kAbx/yAHq/8gB6z/IAev/3AHsP9wB7v/gAe8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BaT/gwWn/4MFqP+DBan/QAWu/6AF9P+gBfX/oAX2/6AF9/+gBfj/oAX5/6AF+v+gBfv/oAX8/6AF/f+gBf7/oAX//6AGAP+gBgH/oAYC/6AGA/+gBgT/oAYF/6AGBv+gBgf/oAYI/6AGCf+gBgr/oAYL/6AGDP+gBg3/oAYO/6AGD/+gBhD/oAYR/6AGEv+gBhP/oAYU/6AGFf+gBhb/oAYX/6AGGP+gBhn/oAYc/6AGHf+gBh7/oAYq/6AGK/+gBiz/oAYt/6AGLv+gBi//oAYw/6AGMf+gBjL/oAYz/6AGrf+DBq7/gwav/4MGxP+DBsX/gwbG/4MIh/+QAAIAkQACAEAAAABJAJYAPwChAMwAjQDOAM4AuQDQANkAugDbAOIAxADlAOcAzADpAOkAzwEJAX0A0AGZAlMBRQJVAlYCAAJYAl4CAgJgAmICCQJkAoMCDAKFApwCLAKeAtYCRALYAvgCfQL7AvwCngL+AwoCoAMMA0ICrQNFA0gC5ANKA3IC6AN0A3UDEQN3A6kDEwOrA7ADRgO2A8gDTAPMA9wDXwPfA+EDcAP7BAADcwQDBAQDeQQGBAcDewQJBAsDfQQNBA0DgAQQBBsDgQQjBFIDjQRrBIQDvQSGBLwD1wS/BNIEDgTVBNsEIgTeBN4EKQTjBOUEKgToBOsELQTtBO0EMQTvBPAEMgTyBPIENAT0BPQENQT7BPsENgUABQIENwUJBQkEOgUOBQ4EOwUTBRQEPAUWBRoEPgUdBR8EQwUwBTEERgUzBTMESAU1BTUESQU4BTgESgU7BTsESwU9BT0ETAU/BT8ETQVBBUEETgVDBUQETwVGBUYEUQVIBUgEUgVKBUsEUwVNBU4EVQVQBVIEVwVbBVsEWgVeBV4EWwVpBWoEXAVsBXEEXgV0BXQEZAV7BX0EZQV/BX8EaAWCBYIEaQWHBYgEagWKBZoEbAWdBaIEfQWkBbAEgwWyBbMEkAW5Bb8EkgXBBcEEmQXaBdoEmgXjBeMEmwXmBeYEnAXqBewEnQX0BhkEoAYcBh8ExgYmBiYEygYoBigEywYqBjMEzAY5BkIE1gZLBksE4AZPBlAE4QZXBlcE4wZcBlwE5AaoBqwE5Qa/BsME6gbYBt4E7wbxBvIE9gb4BvgE+AcGBwcE+QeCB4IE+weFB4YE/AeJB4kE/geLB4sE/wePB48FAAeZB5kFAQecB5wFAgefB58FAwepB6kFBAerB6wFBQevB7AFBwe3B7gFCQe7B7wFCwfDB8oFDQfMB8wFFQftB+8FFggVCBUFGQgZCBkFGggjCCMFGwguCC8FHAhCCEQFHghGCEYFIQhLCEsFIghNCE0FIwhaCFoFJAhnCGcFJQhqCGsFJgh5CHkFKAiHCIcFKQiRCJIFKgiUCJQFLAiWCJYFLQiYCKAFLgikCKYFNwi1CLUFOgi5CLkFOwjhCOEFPAkuCS4FPQkzCTMFPgk3CTcFPwk6CTwFQAngCeEFQwnoCegFRQEaAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgArcAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR4AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/yABo/8gAdb/kAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwCAAsoAYALLAGACzABgAs0AYALOAGACzwBgAtAAYALRAGAC0wBgAtQAYALVAGAC1gBgAtcAYALZAGAC2gBgAtsAYALcAGAC3QBgAt4AYALfAGAC4ABgAuEAYALiAGAC4wBgAuQAYALlAGAC5wBgAugAYALpAGAC6gBgAusAYALsAGAC7QBgAu4AYALvAGADcgBgA3MAYAPZAGAD2gBgA94AYAP7/5AD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR4AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/yABo/8gAdb/cAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwBwAsX/gALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR8AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/zABo/8wAdb/cAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwCAAsoAYALLAGACzABgAs0AYALOAGACzwBgAtAAYALRAGAC0wBgAtQAYALVAGAC1gBgAtcAYALZAGAC2gBgAtsAYALcAGAC3QBgAt4AYALfAGAC4ABgAuEAYALiAGAC4wBgAuQAYALlAGAC5wBgAugAYALpAGAC6gBgAusAYALsAGAC7QBgAu4AYALvAGADXQBgA3IAYANzAGAD2QBgA9oAYAPeAGAD+/+gA/wAYAP9AGAEAwBgBAQAYAQFAGAECABgBAsAYAQQAGAEEgBgBBMAYAQVAGAEFgBgBBgAYAQaAGAEHABgBB0AYAQmAGAFCQBgBQwAYAUNAGAFTgBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEtAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAK0AHACtQBwArYAcAK3AIACuQBwAroAcAK7AHACwABwAsIAcALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA10AYANiAHADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AcAUJAGAFDABgBQ0AYAVOAGAFjv+wBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEtAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AIACuQBgAroAYAK7AGACwABgAsIAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA10AYANiAGADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AYAUJAGAFDABgBQ0AYAVOAGAFjv+wBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAExAEEAcABCAHAAQwBwAEQAcABFAHAARgBwAEcAcABIAHAAVABwAFUAcABWAHAAVwBwAFgAcABZAHAAWgBwAFsAcABcAHAAXQBwAF4AcABfAHAAYABwAGEAcABiAHAAYwBwAGQAcABlAHAAZgBwAGcAcABoAHAAaQBwAGoAcABrAHAAbABwAG0AcABuAHAAbwBwAHAAcABxAHAAcgBwAHMAcAB0AHAAdQBwAHYAcAB3AHAAeABwAHkAcAB7AHAAhABwAIUAcACGAHAAhwBwAIgAcACJAHAAiwBwAKEAcACiAHAAowBwAKQAcAClAHAApgBwAKcAcACoAHAAqQBwAKoAcACrAHAArABwAK0AcACuAHAArwBwALAAcACxAHAAsgBwALMAcAC0AHAAtQBwALYAcAC3AHAAuABwALkAcAC6AHAAuwBwALwAcAC9AHAAvgBwAL8AcADAAHAAwQBwAMIAcADDAHAAxABwAMUAcADJAHAAygBwAMsAcADQAHAA0QBwANIAcADVAHAA1gBwANcAcADYAHAA5wBwAOkAcAEOAHABDwBwARAAcAERAHABEgBwARMAcAEUAHABFQBwARYAcAEXAHABGABwARkAcAEaAHABGwBwARwAcAEdAHABHgBwAR8AcAEgAHABIQBwASIAcAEjAHABJABwASUAcAEmAHABJwBwASgAcAEpAHABKgBwASsAcAEsAHABLQBwAS4AcAEvAHABMABwATEAcAEyAHABMwBwATQAcAE2AHABNwBwATgAcAE5AHABOgBwATsAcAE8AHABPQBwAT4AcAE/AHABdgBwAXcAcAF4AHABeQBwAXoAcAF7AHABfABwAX4AcAF/AHABgABwAYEAcAGCAHABgwBwAYQAcAGFAHABhgBwAYcAcAGIAHABiQBwAYoAcAGYAHABov8wAaP/MAHW/3ACBABgAj8AcAJBAHACQgBwAkMAcAJEAHACRQBwAnsAYAKUAHAClQBwApYAcAKXAHACmABwApkAcAKaAHACngBwAp8AcAKgAHACoQBwAqIAcAKjAHACpABwAqUAcAKmAHACpwBgAqgAYAKsAGACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAgAK5AGACugBgArsAYALAAGACwgBgAsoAcALLAHACzABwAs0AcALOAHACzwBwAtAAcALRAHAC0wBwAtQAcALVAHAC1gBwAtcAcALZAHAC2gBwAtsAcALcAHAC3QBwAt4AcALfAHAC4ABwAuEAcALiAHAC4wBwAuQAcALlAHAC5wBwAugAcALpAHAC6gBwAusAcALsAHAC7QBwAu4AcALvAHADXQBgA3IAcANzAHAD2QBwA9oAcAPeAHAD+/+gA/wAcAP9AHAEAwBwBAQAcAQFAHAECABwBAsAcAQQAHAEEgBwBBMAcAQVAHAEFgBwBBgAcAQaAHAEHABwBB0AcAQmAHAE3gBgBQkAcAUMAHAFDQBwBU4AcAW/AHAGoQBwBtoAcAbbAHAG3ABwBt0AcAbeAHAG+ABwB4YAcAeXAHAHnwBwB8MAcAfEAHAHxQBwB8kAcAfKAHAIWgBwCHkAcAiWAHAImABwCJkAcAidAHAIngBwCKAAcAkuAHABOABBAGAAQgBgAEMAYABEAGAARQBgAEYAYABHAGAASABgAFQAYABVAGAAVgBgAFcAYABYAGAAWQBgAFoAYABbAGAAXABgAF0AYABeAGAAXwBgAGAAYABhAGAAYgBgAGMAYABkAGAAZQBgAGYAYABnAGAAaABgAGkAYABqAGAAawBgAGwAYABtAGAAbgBgAG8AYABwAGAAcQBgAHIAYABzAGAAdABgAHUAYAB2AGAAdwBgAHgAYAB5AGAAewBgAIQAYACFAGAAhgBgAIcAYACIAGAAiQBgAIoAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMYA4ADHAIAAyQBwAMoAYADLAGAA0ABgANEAYADSAGAA1QBgANYAYADXAGAA2ABgAOcAYADpAGABDgBgAQ8AYAEQAGABEQBgARIAYAETAGABFABgARUAYAEWAGABFwBgARgAYAEZAGABGgBgARsAYAEcAGABHQBgAR4AYAEfAGABIABgASEAYAEiAGABIwBgASQAYAElAGABJgBgAScAYAEoAGABKQBgASoAYAErAGABLABgAS0AYAEuAGABLwBgATAAYAExAGABMgBgATMAYAE0AGABNQBgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACpwBgAqgAYAKsAHACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALCAGACwwBgAsYAYALHAGACyABgAskAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAcALhAHAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgAvwAYANiAHADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AYAUJAGAFDABgBQ0AYAVOAGAFqQBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAE8AEEAcABCAHAAQwBwAEQAcABFAHAARgBwAEcAcABIAHAAVABwAFUAcABWAHAAVwBwAFgAcABZAHAAWgBwAFsAcABcAHAAXQBwAF4AcABfAHAAYABwAGEAcABiAHAAYwBwAGQAcABlAHAAZgBwAGcAcABoAHAAaQBwAGoAcABrAHAAbABwAG0AcABuAHAAbwBwAHAAcABxAHAAcgBwAHMAcAB0AHAAdQBwAHYAcAB3AHAAeABwAHkAcAB7AHAAhABwAIUAcACGAHAAhwBwAIgAcACJAHAAigBgAIsAcAChAHAAogBwAKMAcACkAHAApQBwAKYAcACnAHAAqABwAKkAcACqAHAAqwBwAKwAcACtAHAArgBwAK8AcACwAHAAsQBwALIAcACzAHAAtABwALUAcAC2AHAAtwBwALgAcAC5AHAAugBwALsAcAC8AHAAvQBwAL4AcAC/AHAAwABwAMEAcADCAHAAwwBwAMQAcADFAHAAxgDgAMcAgADJAHAAygBwAMsAcADQAGAA0QBwANIAcADVAHAA1gBwANcAcADYAHAA5wBwAOkAcAEOAHABDwBwARAAcAERAHABEgBwARMAcAEUAHABFQBwARYAcAEXAHABGABwARkAcAEaAHABGwBwARwAcAEdAHABHgBwAR8AcAEgAHABIQBwASIAcAEjAHABJABwASUAcAEmAHABJwBwASgAcAEpAHABKgBwASsAcAEsAHABLQBwAS4AcAEvAHABMABwATEAcAEyAHABMwBwATQAcAE1AGABNgBwATcAcAE4AHABOQBwAToAcAE7AHABPABwAT0AcAE+AHABPwBwAXYAcAF3AHABeABwAXkAcAF6AHABewBwAXwAcAF+AHABfwBwAYAAcAGBAHABggBwAYMAcAGEAHABhQBwAYYAcAGHAHABiABwAYkAcAGKAHABmABwAj8AcAJBAHACQgBwAkMAcAJEAHACRQBwApQAcAKVAHAClgBwApcAcAKYAHACmQBwApoAcAKeAHACnwBwAqAAcAKhAHACogBwAqMAcAKkAHACpQBwAqYAcAKnAHACqABwAqwAgAKtAHACrwBwArAAcAKxAHACtABwArUAcAK2AHACtwBgArkAcAK6AHACuwBwArwAYAK9AGACwABwAsIAcALDAGACxgBwAscAYALIAGACyQBgAsoAcALLAHACzABwAs0AcALOAHACzwBwAtAAcALRAHAC0wBwAtQAcALVAHAC1gBwAtcAcALZAHAC2gBwAtsAcALcAHAC3QBwAt4AcALfAHAC4ACAAuEAcALiAHAC4wBwAuQAcALlAHAC5wBwAugAcALpAHAC6gBwAusAcALsAHAC7QBwAu4AcALvAHAC/ABgA2IAgANyAHADcwBwA9kAcAPaAHAD3gBwA/wAcAP9AHAEAwBwBAQAcAQFAHAECABwBAsAcAQQAHAEEgBwBBMAcAQVAHAEFgBwBBgAcAQaAHAEHABwBB0AcAQmAHAE3gBwBPIAYAUJAHAFDABwBQ0AcAU8AGAFPwBgBUIAYAVOAHAFqQBgBb8AcAahAHAG2gBwBtsAcAbcAHAG3QBwBt4AcAb4AHAHhgBwB5cAcAefAHAHwwBwB8QAcAfFAHAHyQBwB8oAcAhaAHAIeQBwCJYAcAiYAHAImQBwCJ0AcAieAHAIoABwCS4AcAFfAAIAQAADAEAABABAAAUAQAAGAEAABwBAAAgAQAAJAEAACgBAAAsAQAAMAEAADQBAAA4AQAAPAEAAEABAABEAQAASAEAAEwBAABQAQAAVAEAAFgBAABcAQAAYAEAAGQBAABoAQAAbAEAAHABAAB0AQAAeAEAAHwBAACAAQAAhAEAAIgBAACMAQAAkAEAAJQBAACYAQAAnAEAAKABAACkAQAAqAEAAKwBAACwAQAAtAEAALgBAAC8AQAAwAEAAMQBAADIAQAAzAEAANABAADUAQAA2AEAANwBAADgAQAA5AEAAOgBAADsAQAA8AEAAPQBAAD4AQAA/AEAAQABAAEEAKABCACgAQwAoAEQAKABFACgARgAoAEcAKABIACgAVAAoAFUAKABWACgAVwAoAFgAKABZACgAWgAoAFsAKABcACgAXQAoAF4AKABfACgAYAAoAGEAKABiACgAYwAoAGQAKABlACgAZgAoAGcAKABoACgAaQAoAGoAKABrACgAbAAoAG0AKABuACgAbwAoAHAAKABxACgAcgAoAHMAKAB0ACgAdQAoAHYAKAB3ACgAeAAoAHkAKAB7ACgAhAAoAIUAKACGACgAhwAoAIgAKACJACgAiwAoAKEAKACiACgAowAoAKQAKAClACgApgAoAKcAKACoACgAqQAoAKoAKACrACgArAAoAK0AKACuACgArwAoALAAKACxACgAsgAoALMAKAC0ACgAtQAoALYAKAC3ACgAuAAoALkAKAC6ACgAuwAoALwAKAC9ACgAvgAoAL8AKADAACgAwQAoAMIAKADDACgAxAAoAMUAKADGAOAAxwCAAMkAKADKACgAywAoANAAKADRACgA0gAoANUAKADWACgA1wAoANgAKADnACgA6QAoAQ4AKAEPACgBEAAoAREAKAESACgBEwAoARQAKAEVACgBFgAoARcAKAEYACgBGQAoARoAKAEbACgBHAAoAR0AKAEeACgBHwAoASAAKAEhACgBIgAoASMAKAEkACgBJQAoASYAKAEnACgBKAAoASkAKAEqACgBKwAoASwAKAEtACgBLgAoAS8AKAEwACgBMQAoATIAKAEzACgBNAAoATYAKAE3ACgBOAAoATkAKAE6ACgBOwAoATwAKAE9ACgBPgAoAT8AKAF2ACgBdwAoAXgAKAF5ACgBegAoAXsAKAF8ACgBfgAoAX8AKAGAACgBgQAoAYIAKAGDACgBhAAoAYUAKAGGACgBhwAoAYgAKAGJACgBigAoAZgAKAI/ACgCQQAoAkIAKAJDACgCRAAoAkUAKAKUACgClQAoApYAKAKXACgCmAAoApkAKAKaACgCngAoAp8AKAKgACgCoQAoAqIAKAKjACgCpAAoAqUAKAKmACgCtQBgArcAYALKACgCywAoAswAKALNACgCzgAoAs8AKALQACgC0QAoAtMAKALUACgC1QAoAtYAKALXACgC2QAoAtoAKALbACgC3AAoAt0AKALeACgC3wAoAuAAKALhACgC4gAoAuMAKALkACgC5QAoAucAKALoACgC6QAoAuoAKALrACgC7AAoAu0AKALuACgC7wAoA2IAgANyACgDcwAoA8gAQAPZACgD2gAoA94AKAP8ACgD/QAoBAMAKAQEACgEBQAoBAgAKAQLACgEEAAoBBIAKAQTACgEFQAoBBYAKAQYACgEGgAoBBwAKAQdACgEJgAoBQkAKAUMACgFDQAoBU4AKAWpAGAFvwAoBqEAKAbaACgG2wAoBtwAKAbdACgG3gAoBvgAKAeGACgHlwAoB58AKAfDACgHxAAoB8UAKAfJACgHygAoCFoAKAh5ACgIlgAoCJgAKAiZACgInQAoCJ4AKAigACgJLgAoAXgASf+QAEr/kABL/5AATP+QAE3/kABO/5AAT/+QAFD/kABR/5AAUv+QAFP/kACKARAAjf+QAI7/kACP/5AAkP+QAJH/kACS/5AAk/+QAJT/kACV/5AAlv+QAJf/kAE1ARABQP+QAUH/kAFC/5ABQ/+QAUT/kAFF/5ABRv+QAUf/kAFI/5ABSf+QAUr/kAFL/5ABTP+QAU3/kAFO/5ABT/+QAVD/kAFR/5ABUv+QAVP/kAFU/5ABVf+QAVb/kAFX/5ABWP+QAVn/kAFa/5ABW/+QAVz/kAFd/5ABXv+QAV//kAFg/5ABYf+QAWL/kAFj/5ABZP+QAWX/kAFm/5ABZ/+QAWj/kAFp/5ABav+QAWv/kAFs/5ABbf+QAW7/kAFv/5ABcP+QAXH/kAFy/5ABc/+QAXT/kAF1/5ABff+QAZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAaX/kAGm/5ABp/+QAaj/kAGp/5ABqv+QAav/kAGs/5ABrf+QAa7/kAGv/5ABsP+QAbH/kAGy/5ABs/+QAbT/kAG1/5ABtv+QAbf/kAG4/5ABuf+QAbr/kAG7/5ABvP+QAb3/kAG+/5ABv/+QAcD/kAHB/5ABwv+QAcP/kAHE/5ABxf8gAcb/IAHH/yACGACAAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK5AGACugBgArsAYAK8ARACvQEQAsAAYALCAGACwwEQAsYBEALHARACyAEQAskBEALgAGAC8ACAAvEAgAL0AIAC9QCAAvYAgAL3AIAC+ACAAvkAgAL6AIAC+wCAAvwBEAL9AIAC/gCAAv8AgAMAAIADAQCAAwIAgAMDAIADBACAAwUAgAMGAIADOwCAAzwAgAM9AIADPgCAAz8AgANAAIADQwCAA0UAgANGAIADRwCAA0sAgANMAIADTQCAA04AgANPAIADUACAA1EAgANSAIADUwCAA1QAgANVAIADVgCAA1cAgANYAIADWQCAA1oAgANbAIADXACAA10AgANeAIADXwCAA2AAgANhAIADYgBgA6T/IAOm/yADp/8gA7X/IAO2/yADt/8gA7j/IAO5/yADuv8gA7v/IAO8/yADvf8gA77/IAO//yADwP8gA8H/IAPC/yADw/8gA8T/IAPF/yADxv8gA8f/IAPM/yAD3P+QA+D/kAPh/vAD+/8gA/8AoAQH/5AECv+QBAz/YAQN/tAEEf9gBBT/cAQZ/5AEHv+QBCP/IAQk/2AEQQCABEL/YARTAIAEVACABFUAgARWAIAEVwCABFgAgARZAIAEWgCABFsAgARcAIAEXQCABF4AgARfAIAEYACABGEAgARiAIAEYwCABGQAgARlAIAEZgCABGcAgARoAIAEaQCABGoAgASBAIAEggCABIMAgASEAIAEiACABIkAgASKAIAEiwCABIwAgASNAIAEjgCABI8AgASQAIAEkQCABJIAgASTAIAElACABJUAgASWAIAElwCABJgAgASZAIAEtf8gBLb/gAS3AIAEuACABLkAgAS7AIAEvwCABMAAgATBAIAEwgCABMMAgATEAIAEyQCABMoAgATLAIAEzACABM0AgATOAIAEzwCABNAAgATVAIAE1gCABNoAgATbAIAE3ACABN4AYATiAIAE5ACABOYAgATnAIAE7f8gBPf/cAUA/5AFAf+QBQL/kAUO/4AFD/7QBRL/gAUT/2AFFP+ABRb/gAUY/4AFGf+ABRr/gAUb/tAFHP+ABR//gAVQ/yAFXACABWn/kAVu/5AFrP9ABa3/QAWw/5AFuf9ABb7/gAbY/5AG2f+QBvH/YAeJ/5AHnACAB6n/kAer/2AHrP9gB67/kAfG/5AHx/9gCBUAgAgvAIAIQgCACEMAgAhEAIAIRv8gCEsAgAhn/yAIkf8gCJT/IAia/yAIm/8gCOEAgAkzAIAJOwCACeD/IAnh/yAJ6ACAAdwAAv7QAAP+0AAE/tAABf7QAAb+0AAH/tAACP7QAAn+0AAK/tAAC/7QAAz+0AAN/tAADv7QAA/+0AAQ/tAAEf7QABL+0AAT/tAAFP7QABX+0AAW/tAAF/7QABj+0AAZ/tAAGv7QABv+0AAc/tAAHf7QAB7+0AAf/tAAIP7QACH+0AAi/tAAI/7QACT+0AAl/tAAJv7QACf+0AAo/tAAKf7QACr+0AAr/tAALP7QAC3+0AAu/tAAL/7QADD+0AAx/tAAMv7QADP+0AA0/tAANf7QADb+0AA3/tAAOP7QADn+0AA6/tAAO/7QADz+0AA9/tAAPv7QAD/+0ABA/tABCf7wAQr+8AEL/vABDP7wAQ3+8AH4/4AB+f+AAfr/gAH7/4AB/P+AAf3/gAH+/4AB//+AAgD/gAIB/4ACAv+AAgP/gAIE/4ACBf+AAgb/gAIH/4ACCP+AAgn/gAIK/4ACC/+AAgz/gAIN/4ACDv+AAg//gAIQ/4ACEf+AAhL/gAIT/4ACFP+AAhX/gAIW/4ACF/+AAhn/gAIa/4ACG/+AAhz/gAId/4ACHv+AAh//gAIg/3ACIf9wAiL/cAIj/3ACJP9wAiX/cAIm/3ACJ/9wAij/cAIp/3ACKv9wAiv/cAIs/3ACLf9wAi7/cAIv/3ACMP9wAjH/cAIy/3ACM/9wAjT/cAI1/3ACNv9wAjf/cAI4/3ACOf9wAjr/cAI7/3ACPP9wAj3/cAI+/3ACRv9wAkf/cAJI/3ACSf9wAkr/cAJL/3ACTP9wAk3/cAJO/3ACT/9wAlD/cAJR/3ACUv9wAlP/cAJU/3ACVf9wAlb/cAJX/3ACWP9wAln/cAJa/3ACW/9wAlz/cAJd/3ACXv9wAmD/cAJh/3ACYv9wAmP/cAJk/3ACZf9wAmb/cAJn/3ACaP9wAmn/cAJq/3ACa/9wAmz/cAJt/3ACbv9wAm//cAJw/3ACcf9wAnL/cAJz/3ACdP9wAnX/cAJ2/3ACd/9wAnj/cAJ5/3ACev9wAnv/cAJ8/3ACff9wAn7/cAJ//3ACgP9wAoH/cAKC/3ACg/9wAor/cAKL/3ACjP9wAo3/cAKO/3ACj/9wApD/cAKR/3ACkv9wApP/cAKpAQACqgEAAqsBAAKyAQACswEAArgBAALBAQADB/9wAwj/cAMJ/3ADCv9wAwv/cAMM/3ADDf9wAw7/cAMP/3ADEP9wAxH/cAMS/3ADE/9wAxT/cAMV/3ADFv9wAxf/cAMY/3ADGf9wAxr/cAMb/3ADHP9wAx3/cAMe/3ADH/9wAyD/cAMh/3ADIv9wAyP/cAMk/3ADJf9wAyb/cAMn/3ADKP9wAyn/cAMq/3ADK/9wAyz/cAMt/3ADLv9wAy//cAMw/3ADMf9wAzL/cAMz/3ADNP9wAzX/cAM2/3ADN/9wAzj/cAM5/3ADOv9wA0H/cANC/3ADY/+QA2T/kANl/5ADZv+QA2f/kANo/5ADaf+QA2r/kANr/5ADbP+QA23/kANu/5ADb/+QA3D/kANx/5ADyP7QA9v+0AQl/3AEJ/9wBCj/cAQp/3AEKv9wBCv/cAQs/3AELf9wBC7/cAQv/3AEMP9wBDH/cAQy/3AEM/9wBDT/cAQ1/3AENv9wBDf/cAQ4/3AEOf9wBDr/cAQ7/3AEPP9wBD3/cAQ+/3AEP/9wBED/cARD/3AERP9wBEX/cARG/3AER/9wBEj/cARJ/3AESv9wBEv/cARM/3AETf9wBE7/cARP/3AEUP9wBFH/cARS/3AEa/9wBGz/cARt/3AEbv9wBG//cARw/3AEcf9wBHL/cARz/3AEdP9wBHX/cAR2/3AEd/9wBHj/cAR5/3AEev9wBHv/cAR8/3AEff9wBIH/cASF/3AEhv9wBJr/cASb/3AEnf9wBJ7/cASf/3AEoP9wBKH/cASi/3AEo/9wBKT/cASl/3AEpv9wBKf/cASo/3AEqf9wBKr/cASr/3AErP9wBK3/cASu/3AEr/9wBLD/cASx/3AEsv9wBLP/cAS0/3AEtv/UBNL/cATX/4AE2P+ABNn/gATl/5AE6P9wBOn/cATv/3AFDv/UBRL/0AUT/1wFFP/kBRb/1AUXADgFGP/YBRn/5AUa/9QFHAAEBR3/UAUe/6AFMP+ABUv/YAVw/nAFcf5wBXv+oAV8/qAFff6gBX//oAWA/6AFgf+gBYL/oAWK/1AFjP9QBY7/AAWp/kAF9P9mBfX/ZgX2/2YF9/9mBfj/ZgX5/2YF+v9mBfv/ZgX8/2YF/f9mBf7/ZgX//2YGAP9mBgH/ZgYC/2YGA/9mBgT/ZgYF/2YGBv9mBgf/ZgYI/2YGCf9mBgr/ZgYL/2YGDP9mBg3/ZgYO/2YGD/9mBhD/ZgYR/2YGEv9mBhP/ZgYU/2YGFf9mBhb/ZgYX/2YGGP9mBhn/ZgYc/2YGHf9mBh7/ZgYq/2YGK/9mBiz/ZgYt/2YGLv9mBi//ZgYw/2YGMf9mBjL/ZgYz/2YHBgCuBwcArggZ/3AITf9wCGr/cAhr/3AIh/+gCKT/cAil/3AIpv9wCYH/cAJ7AAL/xAAD/8QABP/EAAX/xAAG/8QAB//EAAj/xAAJ/8QACv/EAAv/xAAM/8QADf/EAA7/xAAP/8QAEP/EABH/xAAS/8QAE//EABT/xAAV/8QAFv/EABf/xAAY/8QAGf/EABr/xAAb/8QAHP/EAB3/xAAe/8QAH//EACD/xAAh/8QAIv/EACP/xAAk/8QAJf/EACb/xAAn/8QAKP/EACn/xAAq/8QAK//EACz/xAAt/8QALv/EAC//xAAw/8QAMf/EADL/xAAz/8QANP/EADX/xAA2/8QAN//EADj/xAA5/8QAOv/EADv/xAA8/8QAPf/EAD7/xAA//8QAQP/EAEEAMABCADAAQwAwAEQAMABFADAARgAwAEcAMABIADAASf+KAEr/igBL/4oATP+KAE3/igBO/4oAT/+KAFD/igBR/4oAUv+KAFP/igBUACAAVQAwAFYAMABXADAAWAAwAFkAMABaADAAWwAwAFwAMABdADAAXgAwAF8AMABgADAAYQAwAGIAMABjADAAZAAwAGUAMABmADAAZwAwAGgAMABpADAAagAwAGsAMABsADAAbQAwAG4AMABvADAAcAAwAHEAMAByADAAcwAwAHQAMAB1ADAAdgAwAHcAMAB4ADAAeQAwAHsAMACEADAAhQAwAIYAMACHADAAiAAwAIkASACLADAAjf+KAI7/igCP/4oAkP+KAJH/igCS/4oAk/+KAJT/igCV/4oAlv+KAJf/igCh/6wAogAwAKMAMACkADAApQAwAKYAMACnADAAqAAwAKkAMACqADAAqwAwAKwAMACtADAArgAwAK8AMACwADAAsQAwALIAMACzADAAtAAwALUAMAC2ADAAtwAwALgAMAC5ADAAugAwALsAMAC8ADAAvQAwAL4AMAC/ADAAwAAwAMEAMADCADAAwwAwAMQAMADFAjYAyQAwAMoAMADLADAA0AAwANEAMADSADAA1QAwANYAMADXADAA2AAwAOcAMADpADABCQCbAQoAmwELAJsBDACbAQ0AmwEO/+gBDwAwARAAMAERADABEgAwARMAMAEUADABFQAwARYAMAEXADABGACcARkAMAEaADABGwAwARwAMAEdADABHgAwAR8AMAEgADABIQAwASIAMAEj/soBJAAwASUAMAEmADABJwAwASgAMAEpADABKgAwASv/qQEsADABLQAwAS4AMAEvADABMAAwATEAMAEyADABMwAwATQAMAE2ADABNwAwATgAMAE5ADABOgAwATsAMAE8ADABPQAwAT4AMAE/ADABQP+KAUH/igFC/4oBQ/+KAUT/igFF/4oBRv+KAUf/igFI/4oBSf+KAUr/igFL/4oBTP+KAU3/igFO/4oBT/+KAVD/igFR/4oBUv+KAVP/igFU/4oBVf+KAVb/igFX/4oBWP+KAVn/igFa/4oBW/+KAVz/igFd/4oBXv+KAV//igFg/4oBYf+KAWL/igFj/4oBZP+KAWX/igFm/4oBZ/+KAWj/igFp/4oBav+KAWv/igFs/4oBbf+KAW7/igFv/4oBcP+KAXH/igFy/4oBc/+KAXT/igF1/4oBdgAwAXcAMAF4ADABeQAwAXoAMAF7ADABfAAwAX3/igF+ADABfwAwAYAAMAGBADABggAwAYMAMAGEADABhQAwAYYAMAGHADABiAAwAYkAMAGKADABiwAwAYwAMAGNADABjgAwAY8AMAGQADABkQAwAZIAMAGTADABlAAwAZUAMAGWADABlwAwAZgAMAGZACgBmgAoAZsAKAGcACgBnQAoAZ4AKAGfACgBoAAoAaEAKAGiACgBowAoAaQAKAGl/7wBpv+8Aaf/vAGo/7wBqf+8Aar/vAGr/7wBrP+8Aa3/vAGu/7wBr/+8AbD/vAGx/7wBsv+8AbP/vAG0/7wBtf+8Abb/vAG3/7wBuP+8Abn/vAG6/7wBu/+8Abz/vAG9/7wBvv+8Ab//vAHA/7wBwf+8AcL/vAHD/7wBxP+8AcX/wgHG/8IBx//CAcj+RgHJ/kYByv5GAcv+RgHM/kYBzf5GAc7+RgHP//gB0P/4AdH/+AHS//gB0//4AdT/+AHV/80B1v/NAdf/zQHY/80B2f/NAdr/zQHb/80B3P/NAd3/zQHe/80B3//NAeD/zQHh/80B4v/NAeP/zQHo/80B6f/NAez/zQHtAC4B7gAuAe8ALgHwAC4B8QAuAfIALgHzAC4B9AAuAfUALgH2AC4B9wAuAj8AMAJBADACQgAwAkMAMAJEADACRQAwApQAMAKVADAClgAwApcAMAKYADACmQAwApoAMAKeADACnwAwAqAAMAKhADACogAwAqMAMAKkADACpQAwAqYAMALKADACywAwAswAMALNADACzgAwAs8AMALQADAC0QAwAtMAMALUADAC1QAwAtYAMALXADAC2QAwAtoAMALbADAC3AAwAt0AMALeADAC3wAwAuAAMALhADAC4gAwAuMAMALkADAC5QAwAucAMALoADAC6QAwAuoAMALrADAC7AAwAu0AMALuADAC7wAwA3IAMANzADADyP/EA9kAMAPaADAD3P+KA94AMAP7/8ID/AAwA/0AMAQA//gEAwAwBAQAMAQFADAEB/+KBAgAMAQJ/80ECv+KBAsAMAQMACgEEAAwBBEAKAQSADAEEwAwBBQAKAQVADAEFgAwBBgAMAQZ/4oEGgAwBBwAMAQdADAEHv+KBCP/wgQkACgEJgAwBLYAHATuADAFAP+KBQH/igUC/4oFCQAwBQwAMAUNADAFDgAcBQ8A/AUQAGEFEgAyBRMABAUUADkFFgAcBRcArgUYACYFGQA/BRoAHAUbAPwFHAAyBR0ABAUxAgYFNQDrBUP+NAVK/kUFSwA9BU4AMAVQ/8IFUQFVBVIBVQVTASAFVAEgBVX+SwVW/ksFXgFVBV8BIAVgASAFYf5LBYcBVQWO/9AFjwAkBZAAFAWRABQFkgAUBZMAFAWUACgFlQFVBZcBVQWYABQFmQAUBZoBVQWdABQFngAUBZ8AFAWgABQFoQFVBaIBVQWkAVUFpQAUBaYAFAWnAVUFqAFVBbD/igW/ADAGoQAwBq0BVQauAVUGrwFVBrAAFAaxABQGxAFVBsUBVQbGAVUGxwAUBsgAFAbY/4oG2f+KBtoAMAbbADAG3AAwBt0AMAbeADAG8QAoBvgAMAeGADAHif+KB5cAMAefADAHqf+KB6sAKAesACgHrv+KB6//zQew/80Hu//4B7z/+AfDADAHxAAwB8UAMAfG/4oHxwAoB8j/+AfJADAHygAwCFoAMAh5ADAIkf/CCJL/+AiU/8IIlgAwCJgAMAiZADAImv/CCJv/wgic//gInQAwCJ4AMAif//gIoAAwCS4AMAk8//gCewAC/8QAA//EAAT/xAAF/8QABv/EAAf/xAAI/8QACf/EAAr/xAAL/8QADP/EAA3/xAAO/8QAD//EABD/xAAR/8QAEv/EABP/xAAU/8QAFf/EABb/xAAX/8QAGP/EABn/xAAa/8QAG//EABz/xAAd/8QAHv/EAB//xAAg/8QAIf/EACL/xAAj/8QAJP/EACX/xAAm/8QAJ//EACj/xAAp/8QAKv/EACv/xAAs/8QALf/EAC7/xAAv/8QAMP/EADH/xAAy/8QAM//EADT/xAA1/8QANv/EADf/xAA4/8QAOf/EADr/xAA7/8QAPP/EAD3/xAA+/8QAP//EAED/xABBADAAQgAwAEMAMABEADAARQAwAEYAMABHADAASAAwAEn/igBK/4oAS/+KAEz/igBN/4oATv+KAE//igBQ/4oAUf+KAFL/igBT/4oAVAAgAFUAMABWADAAVwAwAFgAMABZADAAWgAwAFsAMABcADAAXQAwAF4AMABfADAAYAAwAGEAMABiADAAYwAwAGQAMABlADAAZgAwAGcAMABoADAAaQAwAGoAMABrADAAbAAwAG0AMABuADAAbwAwAHAAMABxADAAcgAwAHMAMAB0ADAAdQAwAHYAMAB3ADAAeAAwAHkAMAB7ADAAhAAwAIUAMACGADAAhwAwAIgAMACJAEgAiwAwAI3/igCO/4oAj/+KAJD/igCR/4oAkv+KAJP/igCU/4oAlf+KAJb/igCX/4oAof+kAKIAMACjADAApAAwAKUAMACmADAApwAwAKgAMACpADAAqgAwAKsAMACsADAArQAwAK4AMACvADAAsAAwALEAMACyADAAswAwALQAMAC1ADAAtgAwALcAMAC4ADAAuQAwALoAMAC7ADAAvAAwAL0AMAC+ADAAvwAwAMAAMADBADAAwgAwAMMAMADEADAAxQI2AMkAMADKADAAywAwANAAMADRADAA0gAwANUAMADWADAA1wAwANgAMADnADAA6QAwAQkAmwEKAJsBCwCbAQwAmwENAJsBDv/oAQ8AMAEQADABEQAwARIAMAETADABFAAwARUAMAEWADABFwAwARgAnAEZADABGgAwARsAMAEcADABHQAwAR4AMAEfADABIAAwASEAMAEiADABI/7KASQAMAElADABJgAwAScAMAEoADABKQAwASoAMAEr/6kBLAAwAS0AMAEuADABLwAwATAAMAExADABMgAwATMAMAE0ADABNgAwATcAMAE4ADABOQAwAToAMAE7ADABPAAwAT0AMAE+ADABPwAwAUD/igFB/4oBQv+KAUP/igFE/4oBRf+KAUb/igFH/4oBSP+KAUn/igFK/4oBS/+KAUz/igFN/4oBTv+KAU//igFQ/4oBUf+KAVL/igFT/4oBVP+KAVX/igFW/4oBV/+KAVj/igFZ/4oBWv+KAVv/igFc/4oBXf+KAV7/igFf/4oBYP+KAWH/igFi/4oBY/+KAWT/igFl/4oBZv+KAWf/igFo/4oBaf+KAWr/igFr/4oBbP+KAW3/igFu/4oBb/+KAXD/igFx/4oBcv+KAXP/igF0/4oBdf+KAXYAMAF3ADABeAAwAXkAMAF6ADABewAwAXwAMAF9/4oBfgAwAX8AMAGAADABgQAwAYIAMAGDADABhAAwAYUAMAGGADABhwAwAYgAMAGJADABigAwAYsAMAGMADABjQAwAY4AMAGPADABkAAwAZEAMAGSADABkwAwAZQAMAGVADABlgAwAZcAMAGYADABmQAoAZoAKAGbACgBnAAoAZ0AKAGeACgBnwAoAaAAKAGhACgBogAoAaMAKAGkACgBpf+8Aab/vAGn/7wBqP+8Aan/vAGq/7wBq/+8Aaz/vAGt/7wBrv+8Aa//vAGw/7wBsf+8AbL/vAGz/7wBtP+8AbX/vAG2/7wBt/+8Abj/vAG5/7wBuv+8Abv/vAG8/7wBvf+8Ab7/vAG//7wBwP+8AcH/vAHC/7wBw/+8AcT/vAHF/8IBxv/CAcf/wgHI/kYByf5GAcr+RgHL/kYBzP5GAc3+RgHO/kYBz//4AdD/+AHR//gB0v/4AdP/+AHU//gB1f/NAdb/zQHX/80B2P/NAdn/zQHa/80B2//NAdz/zQHd/80B3v/NAd//zQHg/80B4f/NAeL/zQHj/80B6P/NAen/zQHs/80B7QAuAe4ALgHvAC4B8AAuAfEALgHyAC4B8wAuAfQALgH1AC4B9gAuAfcALgI/ADACQQAwAkIAMAJDADACRAAwAkUAMAKUADAClQAwApYAMAKXADACmAAwApkAMAKaADACngAwAp8AMAKgADACoQAwAqIAMAKjADACpAAwAqUAMAKmADACygAwAssAMALMADACzQAwAs4AMALPADAC0AAwAtEAMALTADAC1AAwAtUAMALWADAC1wAwAtkAMALaADAC2wAwAtwAMALdADAC3gAwAt8AMALgADAC4QAwAuIAMALjADAC5AAwAuUAMALnADAC6AAwAukAMALqADAC6wAwAuwAMALtADAC7gAwAu8AMANyADADcwAwA8j/xAPZADAD2gAwA9z/igPeADAD+//CA/wAMAP9ADAEAP/4BAMAMAQEADAEBQAwBAf/igQIADAECf/NBAr/igQLADAEDAAoBBAAMAQRACgEEgAwBBMAMAQUACgEFQAwBBYAMAQYADAEGf+KBBoAMAQcADAEHQAwBB7/igQj/8IEJAAoBCYAMAS2ABwE7gAwBQD/igUB/4oFAv+KBQkAMAUMADAFDQAwBQ4AHAUPAPwFEABhBRIAMgUTAAQFFAA5BRYAHAUXAK4FGAAmBRkAPwUaABwFGwD8BRwAMgUdAAQFMQIGBTUA6wVD/jQFSv5FBUsAPQVOADAFUP/CBVEBVQVSAVUFUwEgBVQBIAVV/ksFVv5LBV4BVQVfASAFYAEgBWH+SwWHAVUFjv/QBY8AJAWQABQFkQAUBZIAFAWTABQFlAAoBZUBVQWXAVUFmAAUBZkAFAWaAVUFnQAUBZ4AFAWfABQFoAAUBaEBVQWiAVUFpAFVBaUAFAWmABQFpwFVBagBVQWw/4oFvwAwBqEAMAatAVUGrgFVBq8BVQawABQGsQAUBsQBVQbFAVUGxgFVBscAFAbIABQG2P+KBtn/igbaADAG2wAwBtwAMAbdADAG3gAwBvEAKAb4ADAHhgAwB4n/igeXADAHnwAwB6n/igerACgHrAAoB67/igev/80HsP/NB7v/+Ae8//gHwwAwB8QAMAfFADAHxv+KB8cAKAfI//gHyQAwB8oAMAhaADAIeQAwCJH/wgiS//gIlP/CCJYAMAiYADAImQAwCJr/wgib/8IInP/4CJ0AMAieADAIn//4CKAAMAkuADAJPP/4AAIAgQACAJcAAAChAMcAlgDJAOkAvQEJAlIA3gJUAlQCKAJWAlYCKQJYAl4CKgJgAmECMQJkAoMCMwKFAvkCUwL7AvwCyAL+A6QCygOmA6kDcQOrA8gDdQPMA9gDkwPaA9wDoAPgA+ADowP7A/4DpAQABAADqAQDBAcDqQQJBAoDrgQNBA0DsAQQBBIDsQQUBBsDtAQeBB4DvAQiBEMDvQRGBEYD3wRsBH0D4ASBBIQD8gSIBLUD9gS3BLoEJAS8BN4EKAThBOUESwTnBOsEUATtBO8EVQUABQIEWAUJBQkEWwUMBRAEXAUSBRMEYQUXBR8EYwU7BT0EbAU/BT8EbwVBBUIEcAVEBUQEcgVGBUYEcwVIBUgEdAVOBU4EdQVQBVIEdgVbBVsEeQVeBV4EegVpBWoEewVsBXEEfQV0BXQEgwV7BX0EhAV/BX8EhwWCBYIEiAWHBYgEiQWKBY0EiwWQBZUEjwWXBZoElQWdBaIEmQWkBacEnwWqBa0EowWvBbAEpwWyBbMEqQW5Bb8EqwXJBcsEsgXNBdMEtQXVBdoEvAXcBdwEwgXeBeIEwwXlBecEyAXqBesEywXtBe0EzQX0BhkEzgYcBh4E9AYhBiEE9wYjBiME+AYmBiYE+QYpBjME+gY5BkIFBQZQBlAFDwZXBlcFEAaoBqwFEQa/BsMFFgbYBt4FGwbxBvIFIgb4BvgFJAeGB4YFJQeJB4kFJgeLB4wFJwePB48FKQeXB5cFKgecB5wFKwefB58FLAepB6kFLQerB6wFLgevB7AFMAe3B7kFMge7B7wFNQfDB8oFNwfMB8wFPwftB+8FQAgVCBUFQwgZCBkFRAgjCCMFRQguCC8FRghCCEQFSAhGCEYFSwhLCEsFTAhNCE0FTQhaCFoFTghnCGcFTwhqCGsFUAh5CHkFUgiHCIcFUwiRCJIFVAiUCJQFVgiWCJYFVwiYCKAFWAikCKYFYQi1CLUFZAjhCOEFZQkuCS4FZgkzCTMFZwk3CTcFaAk6CT0FaQngCeEFbQnoCegFbwACAU8AAgBAAAUAQQBIAAEASQBTAAQAVAB5AAEAewB7AAEAhACJAAEAigCKABsAiwCLAAEAjQCXAAQAoQDFAAEAxgDHABYAyQDLAAEAzADPABYA0ADSAAEA0wDUABYA1QDYAAEA2gDaABYA4wDkABYA5wDnAAEA6ADoABYA6QDpAAEBCQENACMBDgE0AAEBNQE1ABsBNgE/AAEBQAF1AAQBdgF8AAEBfQF9AAQBfgGKAAEBiwGXABQBmAGYAAEBmQGkAA0BxQHHABwByAHOAB8BzwHUABMB1QHjAAwB6AHpAAwB7AHsAAwB7QH3ABkB+AIXAAcCGAIYAAMCGQIfAAcCIAI+AAICPwI/AAECQQJFAAECRgJeAAICYAKDAAIChQKJACcCigKTAAIClAKaAAECmwKbAAgCnAKdAAoCngKmAAECpwKoABICqQKrACICrAKtABICrgKuAAoCrwKxABICsgKzACICtAK2ABICtwK3AEYCuAK4ACICuQK7ABICvAK9ABsCvgK/AAoCwALAABICwQLBACICwgLCABICwwLDABsCxgLJABsCygLRAAEC0gLSAB0C0wLXAAEC2ALYAAoC2QLlAAEC5gLmAAoC5wLvAAEC8ALxAAMC8gLzAAgC9AL7AAMC/AL8ABsC/QMGAAMDBwM6AAIDOwNAAAMDQQNCAAIDQwNDAAMDRQNHAAMDSwNiAAMDYwNxABEDcgNzAAEDdAOCAAoDgwOjAAgDpAOkAAkDpgOnAAkDqAOpAB4DqwOwAB4DsQO0AB0DtQPHAAkDyAPIAAUDzAPMAAkDzQPYABgD2QPaAAED2wPbAD0D3APcAAQD3gPeAAED4APgAD8D+wP7ABwD/AP9AAEEAAQAABMEAwQFAAEEBgQGADEEBwQHAAQECAQIAAEECQQJAAwECgQKAAQECwQLAAEEDAQMAA0EEAQQAAEEEQQRAA0EEgQTAAEEFAQUAA0EFQQWAAEEFwQXADEEGAQYAAEEGQQZAAQEGgQaAAEEHAQdAAEEHgQeAAQEIwQjABwEJAQkAA0EJQQlAAIEJgQmAAEEJwRAAAIEQQRBAAMEQgRCAEQEQwRDADIERARRABUEUwRqAAMEbAR9AA8EgQSEAAMEhQSFADIEhgSGAAIEiASZAAMEmgSbAAIEnAScAEsEnQS0AAsEtQS1AAkEtgS2ACkEtwS5AAMEugS6AAoEuwS7ACYEvAS9AB0EvwTEAAMExQTFACEExgTIACYEyQTQAAME0QTRACEE0gTSAAIE0wTUAB0E1QTWAAME1wTZAAcE2gTcAAME3QTdACEE3gTeABIE4QThACYE4gTiAAME5ATkAAME5QTlABEE5gTnAAME6ATpAAIE6wTrAAoE7ATsACEE7QTtAAkE7gTuABQE7wTvAAIFAAUCAAQFCQUJAAEFDAUNAAEFDgUOACkFDwUPADcFEAUQAFIFEgUSADsFEwUTADMFFgUWACkFGgUaACkFGwUbADcFHAUcADsFHQUdADMFHgUeAE0FHwUfADYFOwU7ACwFPAU8AC0FPQU9ACwFPwU/AC0FQQVBACwFQgVCAC0FRQVFAC4FRwVHAC4FSQVJAC4FTQVNAE4FTgVOAAEFUAVQABwFUQVSAA4FVwVbABcFXAVcAAMFXgVeAA4FYgVjABcFaQVpADoFagVqADAFbAVtACoFbgVuADoFbwVvADAFcAVxADkFdAV0ADAFewV9AC8FfwWCACUFhwWHAA4FiAWIACoFigWKADQFiwWLADUFjAWMADQFjQWNADUFkAWTABAFlAWVAA4FlgWWABcFlwWXAA4FmAWZABAFmgWaAA4FnQWgABAFoQWiAA4FowWjABcFpAWkAA4FpQWmABAFpwWoAA4FqgWrACAFrAWtACsFrgWuABcFrwWvADgFsAWwAAQFsgWyADgFswWzACAFuQW5ACsFugW9ACAFvgW+ADYFvwW/AAEFyQXJAEAFygXKACgFywXNACQFzgXOAEEFzwXPACQF0AXQACgF0QXRAEUF0gXSAEcF0wXUACgF1wXXACQF2wXbAEwF3AXcAE8F3gXeADwF3wXfAFMF4AXgAFQF4QXhADwF5AXkAEkF5gXmAFEF5wXnAEMF7gXuAEoF9AYZAAYGHAYeAAYGIAYgAEgGIgYiAFAGIwYjAEIGKgYzAAYGOQZCABoGUAZQABoGoQahAAEGrQavAA4GsAaxABAGxAbGAA4GxwbIABAG2AbZAAQG2gbeAAEG8QbxAA0G+Ab4AAEHhgeGAAEHiQeJAAQHiweLAD4HlweXAAEHnAecAAMHnwefAAEHqQepAAQHqwesAA0HrgeuAAQHrwewAAwHuwe8ABMHwwfFAAEHxgfG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jPxLCAD8nQNj+AADZvya//8Ayv2GB2YIAAYmAKEAAAAGBnWv/v//AMoAAAdmCnkGJgChAAAABwZqAToCAv//AMoAAAdmCnkGJgChAAAABwZzAToCAv//AMoAAAdmCmYGJgChAAAABwZwApwCAv//AMr91wdmCAAGJgChAAAABwaLBzAAAP//AMoAAAdmCl4GJgChAAAABwZpARIAIv//AMr9+AdmCAAGJgChAAAABwaKB34AAgACAHAAAAhaCAAAAwAPAABBFSE1ExEhESERIREhESERCFr4FqcBcwO2AXP+jfxKBoPm5vl9CAD8nQNj+AADZvyaAAIAyv2rB2YIAAATAB8AAGEhFRQOAyMiJicRFhYzMjY2NSURIREhESERIREhEQXyAXQfS4HEiSxYExQ+GT9uQ/rYAXMDtQF0/oz8S3lAh3thOQcFASsDBR9UTWYIAPydA2P4AANm/Jr//wDK/hIIuggABCYAoQAAAAcIAwauAAD//wDK/coIlggABCYAoQAAAAcIAgZQ/5wAAQDKAAAKjggAAA0AAEERIREhESERIREhESERCo782P6M/Ev+jQFzA7UIAP7J+TcDZvyaCAD8nQNjAAEAyv/kC5gIAAAbAABFIiQCNTUhESERIREhESERFBYzMjY1ESERFAIECMnc/rm0/Ev+jQFzA7UBdLuop7UBc7L+vBykATrhw/yaCAD8nQNj+qPAwMDAA0L8vuP+xqL//wDKAAAHZggABgYAoQAA//8AtgAACS8IjQQnAKEBygAAAAYGZ6UA//8ArQAACTcIAAQnAKEB0gAAAAYIThT4//8AswAACRgIAAQnAKEBsgAAAAYJosIA//8AsgAACz4IBQQnAKED2AAAAAYJjtMA//8ArgAACuQIAAQnAKEDfgAAAAYJlesA//8AtQAACvAIAAQnAKEDigAAAAYJkLIA//8AswAACxoIAAQnAKEDtAAAAAYJl8EA//8ArgAACjoJTwQnAKEC1AAAAAYJkikw//8ArgAAClcJTwQnAKEC8gAAAAYJmSkw//8AsgAACZIIAAQnAKECLAAAAAYJnvYA//8A8AAACWIIlAQnAKEB/AAAAAYJoMYA//8AygAAB2YIAAYGAKEAAP//AGH9WAjrCAAEJwChAYYAAAAnCYkETgAAAAYITsj4//8As/1YCRgIAAQnAKEBsgAAACcJiQR6AAAABgmiwgD//wCy/VgLPggFBCcAoQPYAAAAJwmJBqAAAAAGCY7TAP//AK79WArkCAAEJwChA34AAAAnCYkGRgAAAAYJlesA//8Atf1YCvAIAAQnAKEDigAAACcJiQZSAAAABgmQsgD//wCz/VgLGggABCcAoQO0AAAAJwmJBnwAAAAGCZfBAP//AK79WAo6CU8EJwChAtQAAAAnCYkFnAAAAAYJkikw//8Arv1YClcJTwQnAKEC8gAAACcJiQW6AAAABgmZKTD//wDK/VgHZggABiYAoQAAAAcJiQLIAAAAAQDKAAACPQgAAAMAAEERIRECPf6NCAD4AAgAAAP/lwAAA3EKWwADAA8AGwAAQREhESciJjU0NjMyFhUUBiEiJjU0NjMyFhUUBgI9/o1xT3NzT1FvbwIHT3NzT1FvbwgA+AAIAOJwTFBtbVBMcHBMUG1tUExw////pgAAA2gL0QYmAMUAAAAHCAgDnAAA////ogAAA2EIAAYmAMUAAAAHB/7+6QAd////wP3pA8IIAAYmAMUAAAAHBpAFIQAA////zQAAAj0KkwYmAMUAAAAHBmb+MgIA//8AygAAAzsKkwYmAMUAAAAHBmT+2wIA////fAAAA4wKdgYmAMUAAAAHBmr+oQIA//8AdgAABHcKRwQnAMUA8gAAAAcGa/+2AgD///+jAAADZQoABiYAxQAAAAcGbf6fAgD///+xAAADWQoQBiYAxQAAAAcGbv7tAgD//wA0/boCWwgABiYAxQAAAAYGdroA//8AsgAAAlYKYwYmAMUAAAAHBnAAAgIA////fAAAA4wKdgYmAMUAAAAHBnP+oQIA///+3gAAAv0KkwYmAMUAAAAHBnsEWAIA////rQAAA1YKigYmAMUAAAAHBn8E5AK2//8AygAAAuMLCQYmAMUAAAAHBoAFBAIS//8Asf3XAlQIAAYmAMUAAAAHBosEnAAA//8Auv/wAy4IAAYGAuIAAP//AMoAAAI9CAAGBgDFAAD//wAKAAADKgiNBCcAxQDtAAAABwZn/vgAAP///5cAAANxClsGBgDGAAD//wCtAAAD3ggABCcAxQGiAAAABghOFPj//wCzAAADvwgABCcAxQGCAAAABgmiwgD//wCyAAAF5QgFBCcAxQOoAAAABgmO0wD//wCuAAAFiwgABCcAxQNOAAAABgmV6wD//wC1AAAFlwgABCcAxQNaAAAABgmQsgD//wCzAAAFwQgABCcAxQOEAAAABgmXwQD//wCuAAAE4QlPBCcAxQKkAAAABgmSKTD//wCuAAAE/glPBCcAxQLCAAAABgmZKTD///+xAAADWQoQBiYAxQAAAAcGbv7tAgD///+jAAADZQoABiYAxQAAAAcGbf6fAgD//wCyAAAEOQgABCcAxQH8AAAABgme9gD//wDwAAAECQiUBCcAxQHMAAAABgmgxgD//wDKAAACPQgABgYAxQAA////lwAAA3EKWwYmAMUAAAAHBmj+eQIAAAMAcAAABLUIAAADAAcACwAAUxEhEQERIREBESERcARF+7sERf6X/o0GyQE3/sn5NwE3/skIAPgACAD//wBwAAAEtQpbBiYA6QAAAAcGaf+IACD//wBwAAAEtQvRBiYA6QAAAAcICASrAAD//wBwAAAEtQgABiYA6QAAAAYH/vgd//8AcP3pBNEIAAYmAOkAAAAHBpAGMAAA//8AcAAABLUKkwYmAOkAAAAHBmb/QQIA//8AcAAABLUKkwYmAOkAAAAHBmT/6gIA//8AcAAABLUKdgYmAOkAAAAHBmr/sAIA//8AcAAABLUKRwYmAOkAAAAHBmv/0wIA//8AcAAABLUKAAYmAOkAAAAHBm3/rgIA//8AcAAABLUKEAYmAOkAAAAHBm7//AIA//8AcP26BNMIAAYmAOkAAAAHBnYCMgAA//8AcAAABLUKYwYmAOkAAAAHBnABEgIA//8AcAAABLUKdgYmAOkAAAAHBnP/sAIA////7gAABLUKkwYmAOkAAAAHBnsFZwIA//8AcAAABLUKigYmAOkAAAAHBn8F8wK2//8AcAAABLULCQYmAOkAAAAHBoAGEwIS//8AcP3XBLUIAAYmAOkAAAAHBosFqwAA//8AcAAABnMIAAQnAOkBvgAAAAYITtf4//8AcAAABk4IAAQnAOkBmQAAAAcJov9/AAD//wBwAAAIdQgFBCcA6QPAAAAABgmOkgD//wBwAAAIHggABCcA6QNqAAAABgmVrQD//wBwAAAIJAgABCcA6QNvAAAABwmQ/24AAP//AHAAAAhPCAAEJwDpA5oAAAAHCZf/fgAA//8AcAAAB3QJTwQnAOkCvwAAAAYJkuow//8AcAAAB5IJTwQnAOkC3QAAAAYJmeow//8AcAAABLUKEAYmAOkAAAAHBm7//AIA//8AcAAABLUKAAYmAOkAAAAHBm3/rgIA//8AcAAABskIAAQnAOkCFAAAAAYJnrQA//8ArgAABpkIlAQnAOkB5AAAAAYJoIQA//8AcAAABLUIAAYGAOkAAP//AHAAAAS1ClsGJgDpAAAABwZo/4gCAAABAFL/5AViCAAAEwAAQSERBgIEIyIkJjUhHgIzMjY2NwPyAXABpv7XxbT+4agBcQFHflJZfEEBCAD6YMb+45mB/r1TeEBLlGz//wBS/+QGsQp2BiYBCQAAAAcGagHGAgD//wBS/+QGhggABiYBCQAAAAcH/gIOALL//wBS/+QFYggABgYBCQAA//8AUv/kBWIIAAYGAQkAAAABAMoAAAdBCAAADAAAcxEhETMBIQEBIQEDEcoBcxkDHwHF/OgDH/5C/Z3jCAD8UwOt/Gn7lwNu/vT9nv//AMr9agdBCAAGJgEOAAAABwZ3AjUAAv//AMoAAAdBCnYGJgEOAAAABwZzANgCAP//AMoAAAdBCpMGJgEOAAAABwZkARICAP//AMr92QdBCAAGJgEOAAAABwaLBs4AAv//AMr+JgdBCAAGJgEOAAAABwhiBwIAAgABACYAAAiXCAAADgAAYQEjESERIREhETMBIQEBBs79X7f+jf4jA1BeAtcByvzXA0sDf/yBBtYBKvy2A0r8Wvum//8Ayv4bB40IAAQmBAMAAAAHCAMFggAKAAEAygAAB7oIJAATAABzESERMwE2NhYXAyYGBwEBIQEDEcoBcxkC0GDc53F9Tn9I/fsDU/5C/YL9CAD8YgMEZ1ccRv73KyJM/eD7qgNQ/u39w///AMoAAAdBCAAGBgEOAAAAAQDKAAAFwwgAAAUAAHMRIREhEcoBcwOGCAD5N/7J//8AygAABcMKkwYmARgAAAAHBmT+2AIA//8Ayv1oBcMIAAYmARgAAAAHBncBxgAA//8AygAABcMIZgYmARgAAAAHB/gClQAA//8Ayv3XBcMIAAYmARgAAAAHBosGYAAA////oP3XBcMKAAYmARgAAAAnBosGYAAAAAcGbf6cAgD//wDK/iUFwwgABiYBGAAAAAcIYgaTAAD//wDK/cIFwwgABiYBGAAAAAcGiQaaAAAAAgAvAAAF/QgAAAMACQAAQRUBNRMRIREhEQOo/IfUAXMDhwUd2/8A2fvlCAD5N/7J////ogAABcMIAAYmARgAAAAHB/7+6QAd//8Ayv3ACHkIYwQmARgAAAAHAsMGOgAAAAEAygAACS4IAAAPAABTIQEzASERIREjASEBIxEhygHGAmAYAmABxv6cE/3K/vb9yhP+nAgA+jQFzPgABX/6hwV8+n7//wDKAAAJLgqTBiYBIwAAAAcGZAJTAgD//wDKAAAJLgpjBiYBIwAAAAcGcAN6AgD//wDK/dcJLggABiYBIwAAAAcGiwgWAAD//wDK/coKXwgABiYBIwAAAAcIAggZ/5z//wDKAAAJLggABgYBIwAA//8AygAACS4IAAYGASMAAP//AMoAAAkuCAAGBgEjAAAAAQDKAAAHXQgAAAsAAEERIQEjESERIQEzEQdd/rb8OxH+jQFMA8QSCAD4AAVz+o0IAPqMBXT//wDKAAAHXQpHBiYBKwAAAAcGawFUAgD//wDKAAAHXQqTBiYBKwAAAAcGZAFrAgD//wDK/WgHXQgABiYBKwAAAAcGdwKUAAD//wDKAAAHXQp2BiYBKwAAAAcGcwExAgD//wDKAAAHXQqTBiYBKwAAAAcGZgDCAgD//wDKAAAHXQpjBiYBKwAAAAcGcAKSAgD//wDK/dcHXQgABiYBKwAAAAcGiwcuAAD//wDK/iUHXQgABiYBKwAAAAcIYgdhAAD//wDK/cIHXQgABiYBKwAAAAcGiQdnAAAAAv/E/cAHgQgAABEAHQAAcyEVFA4CIyImJxEWFjMyNjUBESEBIxEhESEBMxHuAXNSi7BeJmoiEi0TWX8Gk/62/DsR/o0BTAPEEnaDsWktAwcBHgMCRmQIc/gABXP6jQgA+owFdAACAMr9qwddCAAAEAAcAABhIRUUBgYjIiYnERYWMzI2NQERIQEjESERIQEzEQYTAUqJ8p8kUCEZQiFnggFK/rb8OxH+jQFMA8QSbq3XYwgLARoFCFtqCHD4AAVz+o0IAPqMBXQAAQDKAAAHXQgAAAsAAFMhETMBIREhESMBIcoBcBMDwwFN/o0R/Dr+twgA+owFdPgABXP6jf//AMoAAAddCpMGJgE3AAAABwZmAMICAP//AMoAAAddChAGJgE3AAAABwZuAX0CAP//AMoAAAddCgAGJgE3AAAABwZtAS8CAP//AMoAAAddClsGJgE3AAAABwZpAQkAIP//AMr9ygiOChAGJgE3AAAAJwZuAX0CAAAHCAIGR/+c//8A7gAAB4IIAAYGATclAP//AMoAAAddCAAGBgErAAD//wDK/cAKJwhjBCYBKwAAAAcCwwfoAAAAAgCW/+QH8AgcAA8AHwAAQRACBCEgJAIREBIkISAEEgE0AiQjIgQCFRQSBDMyJBIH8Pf+V/7z/vP+V/f3AakBDQENAan3/ouR/wCnp/8AkZEBAKenAQCRBAD+tf4p+vsB1wFKAUsB1/r6/in+tekBQaWl/r/p6f6/paUBQQAEAJb/5AfwClsADwAfACsANwAAQRACBCEgJAIREBIkISAEEgE0AiQjIgQCFRQSBDMyJBIBIiY1NDYzMhYVFAYhIiY1NDYzMhYVFAYH8Pf+V/7z/vP+V/f3AakBDQENAan3/ouR/wCnp/8AkZEBAKenAQCR/J1Pc3NPUW9vAgdPc3NPUW9vBAD+tf4p+vsB1wFKAUsB1/r6/in+tekBQaWl/r/p6f6/paUBQQXLcExQbW1QTHBwTFBtbVBMcP//AJb/5AfwClYGJgFAAAAABwZsAawAAAADAJb/ogfwCFoAAwATACMAAEUnARcTEAIEISAkAhEQEiQhIAQSATQCJCMiBAIVFBIEMzIkEgHFtQWttX73/lf+8/7z/lf39wGpAQ0BDQGp9/6Lkf8Ap6f/AJGRAQCnpwEAkV58CDx8/CL+tf4p+vsB1wFKAUsB1/r6/in+tekBQaWl/r/p6f6/paUBQQADAJb/5AipCHQABwAXACcAAEEhEAAhNTI2ExACBCEgJAIREBIkISAEEgE0AiQjIgQCFRQSBDMyJBIHowEG/vz+8ZR5Tff+V/7z/vP+V/f3AakBDQENAan3/ouR/wCnp/8AkZEBAKenAQCRCHT+5P7G1Mz8Qv61/in6+wHXAUoBSwHX+vr+Kf616QFBpaX+v+np/r+lpQFB//8Alv/kB/AKkwYmAUAAAAAHBmYA8QIA//8Alv/kB/AKkwYmAUAAAAAHBmQBmgIA//8Alv/kB/AKdgYmAUAAAAAHBmoBYAIA//8Alv/kB/AKAAYmAUAAAAAHBm0BXgIA//8Alv/kB/AKEAYmAUAAAAAHBm4BrAIA//8Alv/kB/AKUAYmAUAAAAAHBmUCSgIQ//8Alv/kB/AKdgYmAUAAAAAHBnMBYAIAAAMAlv24B/AIHAAPAB8ANAAAQRACBCEgJAIREBIkISAEEgE0AiQjIgQCFRQSBDMyJBIBIiYnJjY2NxcGBhUUFjMyNjcXBgYH8Pf+V/7z/vP+V/f3AakBDQENAan3/ouR/wCnp/8AkZEBAKenAQCR/e+CrQ8KL3xm91x/LzQmORUjJHAEAP61/in6+wHXAUoBSwHX+vr+Kf616QFBpaX+v+np/r+lpQFB+qGIgE+gii5pM3VOLzQTCc0VJ///AJb9uAfwCgAGJgFMAAAABwZtAV4CAP//AJb/5AfwCpMGJgFAAAAABwZ7BxcCAP//AJb/5AfwCooGJgFAAAAABwZ/B6MCtv//AJb/5AfwDAAGJgFAAAAABwgOB5YAAP//AJb/5AfwC2oGJgFAAAAABwjBB6YCQP//AJb/5AfwCmMGJgFAAAAABwZwAsICAP//AJb/5AfwDAAGJgFAAAAABwgRB6oAAP//AJb/5AfwC9EGJgFAAAAABwi9BkQAAP//AJb/5AfwC4MGJgFAAAAABwi+B6YCMP//AJb/5AfwC74GJgFAAAAABwhfBhsAAP//AJb/5AfwC74GJgFAAAAABwhbBnsAAP//AJb91wfwCBwGJgFAAAAABwaLB10AAP//AJb/5AfwCwkGJgFAAAAABwaAB8MCEv//AJb/5Af6CukGJgFAAAAABwfwAgUB7v//AIz/5AfwCuQGJgFAAAAABwfxAFIB9P//AJb/5AfwCywGJgFAAAAABwfyAaQB3f//AJb/5AfwCygGJgFAAAAABwfzAR8B0f//AJb91wfwCnYGJgFAAAAAJwZqAWACAAAHBosHXQAA//8Alv/kCKkKkwYmAUQAAAAHBmQBmgIA//8Alv/kCKkKkwYmAUQAAAAHBmYA8QIA//8Alv/kCKkLCQYmAUQAAAAHBoAHwwIS//8Alv/kCKkKRwYmAUQAAAAHBmsBgwIA//8Alv3XCKkIdAYmAUQAAAAHBosHXQAA//8Alv+iB/AKkwYmAUMAAAAHBmQBmgIA//8Alv/kB/AIHAYGAUAAAP///+b/5AhbCI0EJgFAawAABwZn/tUAAP///+j/5AiVCBwEJwFAAKUAAAAHCE7/T//4//8AbP/kCPMIHAQnAUABAwAAAAcJov97AAD////t/+QKmwgcBCcBQAKrAAAABwmO/w4AAP///9H/5AoqCBwEJwFAAjoAAAAHCZX/DgAA////8P/kCcQIHAQnAUAB1AAAAAcJkP7uAAD////u/+QJ5AgcBCcBQAH0AAAABwmX/vwAAP///+3/5AjvCBwEJwFAAP8AAAAHCZ7/MQAAAAMAlv/kB/AIHAADABMAIwAAQREhEQUQAgQhICQCERASJCEgBBIBNAIkIyIEAhUUEgQzMiQSBuX6vQZO9/5X/vP+8/5X9/cBqQENAQ0Bqff+i5H/AKen/wCRkQEAp6cBAJEEgv78AQSC/rX+Kfr7AdcBSgFLAdf6+v4p/rXpAUGlpf6/6en+v6WlAUH//wBY/+QINgiUBCYBQEYAAAcJoP8uAAD//wCW/+QH8AgcBgYBQAAA//8Alv/kB/AKWwYGAUEAAP//AJb/5AfwCBwGBgQHAAD//wCW/+QH8AgcBgYEBwAA//8Alv/kB/AKWwYmBAcAAAAHBmkBOAAgAAIAlgAACkwIAAASAB0AAGEgJAIREBIkISERIREhESERIREBESMiBgIVFBIWMwQw/vT+YO7uAaABDAYU/D8DfPyEA8n6xOCj+YyM+aPyAcoBQgFFAcvy/sn91P7J/dH+yQE3BZKh/sHr6v7EoQABAMoAAAacCAAAFwAAcxEhMgQSFRQCBCMhESEyNjY1NCYmIyERygMA7AFBpab+vO3+AwHLirBVVbGL/qwIALD+zcPF/s6vATFgqG1tpl35Nv//AMoAAAacCpMGJgF2AAAABwZkANgCAP//AMoAAAacCmMGJgF2AAAABwZwAf8CAAACANAAAAaiCAAAAwAbAABBAQcBAREhMgQSFRQCBCMhESEyNjY1NCYmIyERBDMB3bb+I/1TAwHsAUGkpv687f4DAcyKr1VVsIz+rAU3/SN3AuD7PQgAsP7Nw8X+zq8BMWCobW2mXfk2AAIAcAAACK0IAAAYACMAAEEhNTQ2NjMhMgQSFRQCBCMhESERIyIGBhUBITI2NjU0JiYjIQG+/rJ97KUDXewBQaWm/rzt/nj+jFlSVB0CkAFWirBUVLGL/qwFZbOR3Huw/s3Dxf7Or/1MBspKdD7+F2CobW2mXf//AMoAAAacCAAGBgF2AAD//wCKAAAIHggABCcBdgGCAAAABgmimgAAAwCW/1AH8AgcAAcAFwAnAABBIRMXASEDJwEQAgQhICQCERASJCEgBBIBNAIkIyIEAhUUEgQzMiQSA8UBUMeOAVX+mOhjAuT3/lf+8/7z/lf39wGpAQ0BDQGp9/6Lkf8Ap6f/AJGRAQCnpwEAkQKw/v6o/koBJowC/v61/in6+wHXAUoBSwHX+vr+Kf616QFBpaX+v+np/r+lpQFBAAIAygAABucIAAAXABsAAHMRITIEEhUUAgQjIREhMjY2NTQmJiMhEQEBIQHKAwDsAUGlp/687P3dAfGKsFVWsIv+rAKvAfv+Yv4OCACk/tnExf7fnQE0TZVtbZtR+TYDoPxgA6D//wDKAAAG5wqTBiYBfgAAAAcGZADfAgD//wDK/WgG5wgABiYBfgAAAAcGdwIqAAD//wDKAAAG5wp2BiYBfgAAAAcGcwClAgD//wDKAAAG5wqTBiYBfgAAAAcGewZcAgD//wDKAAAG5wqKBiYBfgAAAAcGfwboArb//wDKAAAG5wpjBiYBfgAAAAcGcAIGAgD//wDK/dcG5wgABiYBfgAAAAcGiwbEAAD//wDK/dcG5woABiYBfgAAACcGiwbEAAAABwZtAKMCAP//AMr+JQbnCAAGJgF+AAAABwhiBvcAAAADAM7+DwbsCbYABQAdACEAAEEBJwElNwERITIEEhUUAgQjIREhMjY2NTQmJiMhEQEBIQEFMv1enwKJ/kkw/dsDAesBQqWn/rzs/dwB8oqwVFWxiv6sAq8B+/5i/g4JGfT2GgqJcJT2SggApP7ZxMX+350BNE2VbW2bUfk2A6D8YAOgAAMAygAAB6YIAAAYABwAIAAAUyEyBBIVFAYGBwchAyEyNjY1NCYmIyERISEBIQEhIQEhygLy9wFDnnPPilf9UgEB7IOlT0eehP6B/o0Fgv1pAVECoP1I/tUCnwEiCACh/uG6pPGiLB8BOU2RZFuWWfk3A5b8agOWAAMAGgAABw4IAAADABsAHwAAQSERIQMRITIEEhUUAgQjIREhMjY2NTQmJiMhEQEBIQEByf5RAa/ZAwHrAUKkpv687f3dAfKJsFVVsYv+rAKvAfz+Yf4PAwIBI/vbCACk/tnExf7fnQE0TZVtbZtR+TYDoPxgA6AAAQCA/+EGpAgcADMAAEEmJiMiBgYHFB4CFxceAxUUAgQjIiQCJyEeAjMyNjY3LgInJyYANTQSJDMyBBIXBSMOz6V0plgBO2Z8P8B016tkuP6l9u/+ocUIAW0IdLt0ebdoAQFcpW7p/f7bxQFU19oBSbwDBc2DkkZ4TUBeQSwPMBtcjMaFtP7vmZQBHMxrjkZJg1hQaUccPEEBCdy1ARCXl/71rf//AID/4QakCpMGJgGLAAAABwZkAOkCAP//AID/4QakCnYGJgGLAAAABwZqAK4CAP//AID9iAakCBwGJgGLAAAABwZ1AbQAAP//AID/4QakCnYGJgGLAAAABwZzAK4CAP//AID9UgakCBwGJgGLAAAABwZ3Ahf/6v//AID/4QakCmMGJgGLAAAABwZwAhACAP//AID9wgakCBwGJgGLAAAABwaLBrH/6v//AID/4QakCuIGJgGLAAAABwe+BuEB+v//AID/4QakC6oGJgGLAAAABwfoBv4CVv//AID9wgakCmMGJgGLAAAAJwaLBrH/6gAHBnACEAIA//8AgP/hBqQIHAYGAYsAAAABAID/4QakCBwAMwAAQSE2EiQzMgQSFRQABwcOAgceAjMyNjY3IQYCBCMiJAI1ND4CNzc+Aic0JiYjIgYGAgH+mwS7AUna2AFTxf7b/elupVwBAWi3eXS7dQcBbQjF/qHv9f6kuGSr2HPAVKFoAVmmdG6nZAXNrQELl5f+8LXc/vdBPBxHaVBYg0lGjmvM/uSUmQERtIXGjFwbMBRCb1VNeEZCfAABAMr/5AdCCBwALQAAcxE0EiQzMgQEFwEWBBYVFAIEIyImJxMWFjMyNjU0LgMjIzUBJiYjIgYGFRHKpQE12pUBJQEQc/44twEJj7j+vdFp42BpQJxVq705XG5rKsABgkS4dXuPPgVI5QFEq1qZX/3TE53+pL/+7JQoJgEgGiiqlFl7TSgP9AHWMkxywHT6uAABAHAAAAbSCAAABwAAUxEhESERIRFwBmL9h/6QBskBN/7J+TcGyf//AHD9iAbSCAAGJgGZAAAABwZ1Ac4AAP//AHAAAAbSCnYGJgGZAAAABwZzAL4CAP//AHD9aAbSCAAGJgGZAAAABwZ3AiAAAP//AHAAAAbSCmMGJgGZAAAABwZwAiACAP//AHD91wbSCAAGJgGZAAAABwaLBroAAP//AHD+JQbSCAAGJgGZAAAABwhiBu0AAP//AHD9wgbSCAAGJgGZAAAABwaJBvMAAAABAHAAAAc4CAAAEAAAQREhESERIyIGBhUVITU0ADMHOP2H/pDhTlUh/sYBCvQIAP7J+TcGyUdvPWir3wEIAAIAcP3ABtIIAAANABUAAGEVFBYzMxEjIi4CNTUBESERIREhEQRZi1ZTsl6zjlP9hwZi/Yf+kHZjPv7XLWixhHYGyQE3/sn5NwbJAAIAcP78BtIJBAADAAsAAEEBMwEBESERIREhEQGWA1r6/Kf93wZi/Yf+kP78Cgj1+AfNATf+yfk3Bsn//wBwAAAG0ggABgYBmQAAAAEAyv/hB0gIAAAVAABBIREUAgQjIiQCNREhERQWFjMyNjY1BdUBc8/+ivr7/orOAXNxzo2Nz3AIAPrG3P6yu7sBTtwFOvrlgMhxcciAAAIAyv/hCR4IWgAJAB8AAEEhFAIEIzUyNjYlIREUAgQjIiQCNREhERQWFjMyNjY1CBkBBXD++OOVki/9vAFzz/6K+vv+is4Bc3HOjY3PcAhayf7mldhiuir6xtz+sru7AU7cBTr65YDIcXHIgP//AMr/4QdICpMGJgGlAAAABwZmALYCAP//AMr/4QdICpMGJgGlAAAABwZkAWACAP//AMr/4QdICnYGJgGlAAAABwZqASYCAP//AMr/4QdIClsGJgGlAAAABwZpAP4AIP//AMr/4QdICkcGJgGlAAAABwZrAUkCAP//AMr/4QdICgAGJgGlAAAABwZtASQCAP//AMr/4QdIChAGJgGlAAAABwZuAXICAP//AMr/4QdICtAGJgGlAAAABwZyAg4AAP//AMr/4QdIClAGJgGlAAAABwZlAhACEP//AMr9vAdICAAGJgGlAAAABwZ2AnUAAv//AMr/4QdICnYGJgGlAAAABwZzASYCAP//AMr/4QdIDAAGJgGlAAAABwgOB1wAAP//AMr/4QdIC9EGJgGlAAAABwgIBiEAAP//AMr/4QdIC2QGJgGlAAAABwgKB3ICOP//AMr/4QdICw0GJgGlAAAABwgMB2wCOP//AMr/4QdICpMGJgGlAAAABwZ7Bt0CAP//AMr/4QdICooGJgGlAAAABwZ/B2gCtv//AMr9ywdICAAGJgGlAAAABwaNCBb/9P//AMr93QdICAAGJgGlAAAABwaQB6f/9P//AMr9tgdICAAGJgGlAAAABwaJB1z/9P//AMr/4QdIC9EGJgGlAAAABwi9BgoAAP//AMr/4QdIC3sGJgGlAAAABwhdB2wCRv//AMr9ywdICAAGJgGlAAAABwaLByL/9P//AMr/4QdICwkGJgGlAAAABwaAB4kCEv//AMr/4QkeCpMGJgGmAAAABwZkAWACAP//AMr/4QkeCpMGJgGmAAAABwZmALYCAP//AMr/4QkeCwkGJgGmAAAABwaAB4kCEv//AMr/4QkeCkcGJgGmAAAABwZrAUkCAP//AMr9ywkeCFoGJgGmAAAABwaLByL/9AAC//X/4QhWCAAAAwAZAABBFSE1ASERFAIEIyIkAjURIREUFhYzMjY2NQhW958GAQF00P6K+vr+is8Bc3HPjI3PcASU3NwDbPrG3P6yu7sBTtwFOvrlgMhxcciAAAEARQAAB7IIAAAHAABBATMBIQEhAQHcAhUVAhQBmP0u/jb9LwgA+bQGTPgACAD//wBFAAAHsgpHBiYBxQAAAAcGawE7AgD//wBF/dcHsggABiYBxQAAAAcGiwcVAAAAAQA3AAAK3AgAAA8AAGEBIQEzASEBMwEhASEBIwECef2+AY8BcRMBigFrAYsSAXEBj/2+/pL+ZhD+ZQgA+h8F4foeBeL4AAWd+mP//wA3AAAK3Ap2BiYByAAAAAcGagKmAgD//wA3AAAK3AqTBiYByAAAAAcGZgI3AgD//wA3AAAK3AqTBiYByAAAAAcGZALhAgD//wA3AAAK3ApbBiYByAAAAAcGaQJ+ACD//wA3AAAK3ApjBiYByAAAAAcGcAQIAgD//wA3/eEK3AgABiYByAAAAAcGiwijAAoAAQBPAAAHSQgAAA0AAEEBMwEhAQEhASMBIQEBAgABwxABxQGn/YkCgf5S/jgQ/jj+VAKH/YEIAP0SAu78APwAAun9FwQABAD//wBPAAAHSQpjBiYBzwAAAAcGcAJKAgD//wBPAAAHSQpbBiYBzwAAAAcGaQDAACD//wBP/hIHuAgABiYBzwAAAAcIAwWtAAD//wBP/agH1AgABiYBzwAAAAcIAATxAAD//wBPAAAHSQgABgYBzwAAAAEAPgAAB4IIAAAJAABTIQEzASEBESERPgGjAfUUAfUBo/0X/o4IAPx2A4r6/P0EAvwAAQBKAAAIMggbABAAAFMhATMBPgIXAyYGBwERIRFKAZkCHRgBkU/W8HRTW346/fn+jggA/HYCnIV+BjD+5R8tXPzD/NcDKf//AD4AAAeCCpMGJgHVAAAABwZkATcCAP//AD4AAAeCCnYGJgHVAAAABwZqAP0CAAADAD4AAAeCClsACQAVACEAAFMhATMBIQERIREDIiY1NDYzMhYVFAYhIiY1NDYzMhYVFAY+AaMB9RQB9QGj/Rf+jnJPc3NPUW9vAgdPc3NPUW9vCAD8dgOK+vz9BAL8BeZwTFBtbVBMcHBMUG1tUExw//8APgAAB4IKAAYmAdUAAAAHBm0A+wIA//8APgAAB4IKYwYmAdUAAAAHBnACXgIA//8APgAAB4IKkwYmAdUAAAAHBmYAjgIA//8APv3XB4IIAAYmAdUAAAAHBosG+gAA//8APgAAB4ILCQYmAdUAAAAHBoAHYAIS//8APgAAB4IKRwYmAdUAAAAHBmsBIAIAAAIAEwAAB7IIAAADAA0AAEEVITUTIQEzASEBESERB7L4YSsBowH1FAH1AaP9F/6OBlfKygGp/HYDivr8/QQC/P//AD4AAAeCCAAGBgHVAAD//wAuAAAJhgiNBCcB1QIEAAAABwZn/x0AAP//AD4AAAeCClsGBgHZAAD//wBfAAAJHggABCcB1QGdAAAABwmi/24AAP//AFQAAArSCAAEJwHVA1EAAAAHCZX/kQAA//8AKwAAC3AIAAQnAdUD7gAAAAcJl/85AAD//wAmAAAKrglPBCcB1QMsAAAABgmZoTD//wA+AAAHggoQBiYB1QAAAAcGbgFJAgD//wA+AAAHggoABiYB1QAAAAcGbQD7AgD//wBaAAAJWAgABCcB1QHWAAAABgmengD////vAAAJPwiUBCcB1QG+AAAABwmg/sUAAP//AD79ugeCCAAGJgHVAAAABwZ2AhYAAAABAJ4AAAaQCAAACQAAczUBIREhFQEhEaQEGvvgBez75wQf5wXiATfn+h7+yf//AJ4AAAaQCpMGJgHtAAAABwZkAPECAP//AJ4AAAaQCmMGJgHtAAAABwZwAhgCAP//AJ4AAAaQCnYGJgHtAAAABwZzALYCAP//AJ4AAAaQCnYGJgHtAAAABwZqALYCAP//AJ791waQCAAGJgHtAAAABwaLBq0AAP//AJ7+JQaQCAAGJgHtAAAABwhiBuAAAAABAJ7+sAaqCAAAEgAAUxEhFQEhMgAVFSE1NCYmIyE1AZ4F7PvgAkH0AQv+yCFWUPv5BCAGyQE35/oe/vrfol8/bkTnBeL//wCeAAAGkAgABiYB7QAAAAcH/gEaAB3//wCeAAAGkAgABgYB7QAAAAEAnf2oBqAIAAAbAABBIi4EIyM1ASERIRUBHgQzMjY3EQYGBbR4v6ehs9eJgAQS++kF5Pvbh9GolpVWOV4sKH79qFeImohX3AXyATLa+eokhpyOXA8M/tYSFwACAHL/4QWfBhQAJQA2AABFIiYmNTQ+Ajc+AjU1NCYjIgYHJTY2JDMyHgIVESE1Iw4CAzI2NjU1DgMHDgIVFBYCdJLph2Cm0XCHqE2GfoWbG/6uKLgBCqFv3LZv/qQMIXezGm2gVxFRZGIkUYBKkh9pzpeCqmY1DA4XMTQGcXx0TzCMvV80d8yZ+/zTQG9DAQpXkFW1DhgSDgULMllGZGb//wBy/+EFnwiTBiYB+AAAAAcGZACWAAD//wBy/+EFnwgQBiYB+AAAAAcGbgCoAAD//wBy/+EFnwjvBiYB+AAAAAcH3AChAA3//wBy/dcFnwgQBiYB+AAAACcGbgCoAAAABwaLBkoAAP//AHL/4QWfCO8GJgH4AAAABwfdAKEADf//AHL/4QWfCbkGJgH4AAAABwfeAJwADP//AHL/4QWfCYsGJgH4AAAABwfhAJ0AE///AHL/4QWfCHYGJgH4AAAABwZzAFwAAP//AHL/4QWfCHYGJgH4AAAABwZqAFwAAP//AHL/4Qb2COkGJgH4AAAABwfwAQH/7v//AHL91wWfCHYGJgH4AAAAJwZqAFwAAAAHBosGSgAA////iP/hBZ8I5AYmAfgAAAAHB/H/Tv/0//8Acv/hBj8JLAYmAfgAAAAHB/IAoP/d//8Acv/hBZ8JKAYmAfgAAAAGB/Mb0f//AHL/4QWfCJMGJgH4AAAABwZ7BhMAAAAEAHL/4QWfCFsAJQA2AEIATgAARSImJjU0PgI3PgI1NTQmIyIGByU2NiQzMh4CFREhNSMOAgMyNjY1NQ4DBw4CFRQWAyImNTQ2MzIWFRQGISImNTQ2MzIWFRQGAnSS6YdgptFwh6hNhn6Fmxv+rii4AQqhb9y2b/6kDCF3sxptoFcRUWRiJFGASpJNT3NzT1FvbwIHT3NzT1Fvbx9pzpeCqmY1DA4XMTQGcXx0TzCMvV80d8yZ+/zTQG9DAQpXkFW1DhgSDgULMllGZGYF93BMUG1tUExwcExQbW1QTHD//wBy/+EFnwoABiYB+AAAAAcIDwaS/+D//wBy/+EFnwhjBiYB+AAAAAcGcAG+AAD//wBy/dcFnwYUBiYB+AAAAAcGiwZKAAD//wBy/+EFnwn5BiYB+AAAAAcIEgasAAr//wBy/+EFnwiTBiYB+AAAAAYGZu0A//8Acv/hBZ8JCQYmAfgAAAAHBoAGvwAS//8Acv/hBZ8IigYmAfgAAAAHBn8GnwC2//8Acv/hBZ8IAAYmAfgAAAAHBm0AWgAA//8Acv26Bb4GFAYmAfgAAAAHBnYDHAAA//8Acv/hBZ8I8QYmAfgAAAAHCI0CaADWAAQAcv/hBZ8JRgAlADYARgBSAABFIiYmNTQ+Ajc+AjU1NCYjIgYHJTY2JDMyHgIVESE1Iw4CAzI2NjU1DgMHDgIVFBYTIiYmNTQ2NjMyFhYVFAYGJzI2NTQmByIGFRQWAnSS6YdgptFwh6hNhn6Fmxv+rii4AQqhb9y2b/6kDCF3sxptoFcRUWRiJFGASpLeYZ9dXZ9hYZ5cXJ5hSV9fSUhgYB9pzpeCqmY1DA4XMTQGcXx0TzCMvV80d8yZ+/zTQG9DAQpXkFW1DhgSDgULMllGZGYFvFmWXV2aXFyaXV2WWapjP0JmAWVCP2T//wBy/+EFnwopBiYB+AAAAAcIigGGAID//wBy/boFvglGBiYCEwAAAAcGdgMcAAD//wBy/dUFnwYUBiYB+AAAAAcI7AFRAAD//wBy/+EFnwhHBiYB+AAAAAYGa38AAAIAs//sBeEGHwAlADYAAEEyFhYVFA4CBw4CFRUUFjMyNjcFBgYEIyIuAjURIRUzPgITIgYGFRU+Azc+AjU0JgPek+mHYabRb4ioTIV/hZocAVEnuf73om7dtm8BXAwheLIbbaFXElBlYiRRf0qRBh9pzpeCqmY1DA4XMTQGcXx0TzCMvV80d82YBATTQG9D/vZXkFW1DhgSDwQLMlpFZGb//wBy/+EFnwYUBgYB+AAA//8Acv/hBZ8IEAYmAfgAAAAHBm4AqAAA//8Acv/hBZ8IWwYGAggAAAADAHL/4QmfBhQAJQA2AFoAAEUiJCcTNiQzMhYWEhUVITUhLgIjIgYGFRUUFhYzMjY2NwUGBgQBMjY2NTUOAwcOAhUUFhMiJiY1ND4CNz4CNTU0JiMiBgclNjYkMzIeAhcDIw4CBwbj/rk0BlgBG8GN/cRv+yoDewFYnWhvqF1isHZOgV0YAVMgtP7y+yNtoFcRUWRiJFGASpIjmvCIYabRb4inTYZ+hJwb/q4ouAELpUSRiW4eQBklresez7YDWamrW77+28pv9GijXmuuZtWGv2UtWEEmhsdtAQlXkFW1DhgSDgULMllGZGb+9mnOl4KqZzQMDhgxMwZxfHRPMIy9Xxk+blb8DFaESv//AHL/4QmfCAAGJgIcAAAABwZtAg4AAP//AHL/4QmfCJMGJgIcAAAABwZkAkoAAP//AHL/4QmfBhQGBgIcAAAAAgB7/+UGJgYUABYAJgAARSIkAjUQEiQzMhYWFzM1IREhNSMOAgMyNjY1NCYmIyIGBhUUFhYC9LX+4qapASCxh65mHA8Ba/6cFhxqrh9zolRToXV5olJToxu6AWL9AQABYbVbfzj++gDyOH1YASl94JWV3Hp+3o+Q4YH//wB7/+UGJgiTBiYCIAAAAAcGZADOAAD//wB7/+UGJggQBiYCIAAAAAcGbgDgAAD//wB7/+UGJgjvBiYCIAAAAAcH3ADZAA3//wB7/dcGJggQBiYCIAAAACcGbgDgAAAABwaLBoIAAP//AHv/5QYmCO8GJgIgAAAABwfdANkADf//AHv/5QYmCbkGJgIgAAAABwfeANQADP//AHv/5QYmCYsGJgIgAAAABwfhANUAE///AHv/5QYmCHYGJgIgAAAABwZzAJQAAP//AHv/5QYmCHYGJgIgAAAABwZqAJQAAP//AHv/5QcuCOkGJgIgAAAABwfwATn/7v//AHv91wYmCHYGJgIgAAAAJwZqAJQAAAAHBosGggAA////wP/lBiYI5AYmAiAAAAAGB/GG9P//AHv/5QZ3CSwGJgIgAAAABwfyANj/3f//AHv/5QYmCSgGJgIgAAAABgfzU9H//wB7/+UGJgiTBiYCIAAAAAcGewZLAAD//wB7/+UGJghbBiYCIAAAAAYGaGwA//8Ae//lBiYKAAYmAiAAAAAHCA8Gyv/g//8Ae//lBiYIYwYmAiAAAAAHBnAB9gAA//8Ae/3XBiYGFAYmAiAAAAAHBosGggAA//8Ae//lBiYJ+QYmAiAAAAAHCBIG5AAK//8Ae//lBiYIkwYmAiAAAAAGBmYlAP//AHv/5QYmCQkGJgIgAAAABwaABvcAEv//AHv/5QYmCIoGJgIgAAAABwZ/BtcAtv//AHv/5QYmCAAGJgIgAAAABwZtAJIAAP//AHv9ugZEBhQGJgIgAAAABwZ2A6IAAP//AHv/5QYmCPEGJgIgAAAABwiNAqAA1v//AHv/5QYmCUYGJgIgAAAABwZxAXwAAP//AHv/5QYmCikGJgIgAAAABwiKAb4AgP//AHv91QYmBhQGJgIgAAAABwjsAYkAAP//AHv/5QYmCEcGJgIgAAAABwZrALcAAAACAMr/5QZ0CAAAFgAmAABzESERMz4CMzIEEhEUAgQjIiYmJyMVAxQWFjMyNjY1NCYmIyIGBsoBag8cZq6HsgEfqab+4rWErmkdFQFVoXN4olNSonl0olMIAP0COH9btf6f/wD9/p66WH048gMAleB9geGQj95+etz///+e/+UGdAgABiYCPwAAAAcH/v7lAtIAAgDK/+UGdAgAABgAKAAAQREhETM+AjMyBBIRFAIEIyImJicjFSERARQWFjMyNjY1NCYmIyIGBgWe/JYPHGauh7IBH6mm/uK1hK5pHRX+nAFjVaFzeKJTUqJ5dKJTCAD+6v4YOH9btf6f/wD9/p66WH048ggA+wCV4H2B4ZCP3n563AACALr/5QZkCBwAJQA1AABFIiYmJyMVIRE0PgIzMhYXESYmIyIGBhURMz4CMzIEEhEUAgQBMjY2NTQmJiMiBgYVFBYWA+uErmkdFf6cUo2wXT5dJBYvGTpoQQ8cZq6HsgEfqab+4v7meKJTUqJ5dKJTVaEbWH048gZShbJnLAcH/uUDBR1KQv6wOH9btf6f/wD9/p66ASmB4ZCP3n563JWV4H3//wDK/+UGdAhjBiYCPwAAAAcGcAJ+AAD//wDK/dcGdAgABiYCPwAAAAcGiwauAAD//wDK/iUGdAgABiYCPwAAAAcIYgbhAAAAAQB4/+IF6gYUACAAAEUiJAI1NBIkMzIEFhchJiYjIgYGFRQWFjMyNjY3IQYGBANY5v63sbQBSeG7ASGsDP6mFZ2Db6hdXKdxUH9WEAFaDab+4h7KAWXp6gFnyYn5pm+Vd96bneF5PXRTo/uNAAIAeP3ABeoIAAADACQAAEEBIwEBIiQCNTQSJDMyBBYXISYmIyIGBhUUFhYzMjY2NyEGBgQFivxJ4wO3/rHm/rextAFJ4bsBIawM/qYVnYNvqF1cp3FQf1YQAVoNpv7iCAD1wApA9+LKAWXp6gFnyYn5pm+Vd96bneF5PXRTo/uNAAIAeP/iBxAGlgAQADEAAEEhNTQ2NjMyFhcVJiYjIgYVASIkAjU0EiQzMgQWFyEmJiMiBgYVFBYWMzI2NjchBgYEBe7+qnzUhSlTJxYvGlxn/Wrm/rextAFJ4bsBIawM/qYVnYNvqF1cp3FQf1YQAVoNpv7iA+zelM1rCAz8AwZYbvsZygFl6eoBZ8mJ+aZvlXfem53heT10U6P7jQACAFf/lAXuBhQAGAA0AABFIiQCNTQSJDMyBBYXISYmIyIGBhUUFhYzASc+BDMyFhYVFgYEIxEyNjc2JiMiDgMDXuP+tLS0AUnhuwEhrA3+pRWdg2+oXVyocP3l7Eqgtc7qhoW9ZQGZ/uPIi6UCAUsoQZGXmZQexwFn7ukBZMmJ+aZvlXfem53lfP6Sq2LMu5ZXVp5shtN6ASBfSTU0Rn2juf//AHj9iAXqBhQGJgJGAAAABwZ1AXMAAP//AHj/4gXqCJMGJgJGAAAABwZkAKwAAP//AHj/4gXqCHYGJgJGAAAABwZqAHIAAP//AHj/4gXqCGMGJgJGAAAABwZwAdMAAP//AHj/4gXqCHYGJgJGAAAABwZzAHIAAP//AHj9iAXqCJMGJgJGAAAAJwZ1AXMAAAAHBmQArAAA//8AeP/iBeoGFAYGAkYAAP//AHj/4gXqBhQGBgJGAAAAAgB7/+UGJggAABYAJgAARSIkAjUQEiQzMhYWFzMRIREhNSMOAgMyNjY1NCYmIyIGBhUUFhYC9LX+4qapASCxh65mHA8Ba/6cFhxqrh9zolRToXV5olJToxu6AWL9AQABYbVbfzgC/vgA8jh9WAEpfeCVldx6ft6PkOGB//8Ae//lBuMIAAYmAlIAAAAHB/4CawLSAAMAe/3AB14IAAASACkAOQAAQSIuAjURIREUFhYzMjY3EQYGASIkAjUQEiQzMhYWFzMRIREhNSMOAgMyNjY1NCYmIyIGBhUUFhYGnmSvhEoBaT1jORkxFSBk/Bq1/uKmqQEgsYeuZhwPAWv+nBYcaq4fc6JUU6F1eaJSU6P9wDBsr38Brf5TQkodBQP+5QcHAiW6AWL9AQABYbVbfzgC/vgA8jh9WAEpfeCVldx6ft6PkOGBAAMAe//lB3EIHgASACgAOAAARSIkAjUQEiQzMhYWFzMRIw4CATQ+AjMyFhcRJiYjIgYGFREhERMDATI2NjU0JiYjIgYGFRQWFgL0tf7ipqkBILGHrmYcoaEcaa4BQliUslk2aSAZMRQ1bUv+nHuC/p5zolRToXV5olJToxu6AWL9AQABYbVbfzj78Dh9WAZph7RpLAsI/uQGBBRIT/myAUoBsAGi/HJ94JWV3Hp+3o+Q4YEAAwB7/+UGJggAAAMAGgAqAABBIREhASE1Iw4CIyIkAjUQEiQzMhYWFzMRIQE0JiYjIgYGFRQWFjMyNjYBUQPq/BYE1f6cFhxqroS1/uKmqQEgsYeuZhwPAWv+nFOhdXmiUlOjd3OiVAgA/ur5FvI4fVi6AWL9AQABYbVbfzgC/vsAldx6ft6PkOGBfeAAAwB+/cAIlggAAB8ANgBGAABBIREUFjMyNjU0JicmBgcBJwE2NjMyFhUUBgYjIiYmNSUiJAI1EBIkMzIWFhczESERITUjDgIDMjY2NTQmJiMiBgYVFBYWBLoBbF9APU5ISEKOTf5wrgFrbveH2/9t0pm/4mP+PbX+4qapASCxiK1nGw8Ba/6cFhxprx90oVVUoXV4o1JUogFV/gVXVUg4NkwDBkc9/qTdAT1WWtKqbaFZh9yAQroBYv0BAAFhtVt/OAL++ADyOH1YASl94JWV3Hp+3o+Q4YH//wB7/+UIAQhmBCYCUgAAAAcH+AXyAAD//wB7/+UGJgljBiYCUgAAAAcGcAGaAQD//wB7/dcGJggABiYCUgAAAAcGiwaAAAD//wB7/iUGJggABiYCUgAAAAcIYgaoAAD//wB7/WgGJggABiYCUgAAAAcGdwHnAAD//wB7/cIGJggABiYCUgAAAAcGiQa6AAD//wB7/+ULeAgABCYCUgAAAAcDzQXlAAAAAwB7/+ULeAgAAAsAIgAyAABhNQE1IREhFQEVIREFIiQCNRASJDMyFhYXMxEhESE1Iw4CAzI2NjU0JiYjIgYGFRQWFgaKAxj78wXJ/Q4DDPd8tf7ipqkBILGHrmYcDwFr/pwWHGquH3OiVFOhdXmiUlOj5gPhDQEs9/wwDf7UG7oBYv0BAAFhtVt/OAL++ADyOH1YASl94JWV3Hp+3o+Q4YH//wB7/+ULeAh2BCYCUgAAAAcD1AXlAAAABAB7/r4NIggAAB0AJwA+AE4AAGERITI2NyYmIyIOAgcDJzcSADYzMhYWFw4DIwMRITUBIREhFQEBIiQCNRASJDMyFhYXMxEhESE1Iw4CAzI2NjU0JiYjIgYGFRQWFglJAamEewEBQCcvVWSIYv3uibwBFvaMZatnAQFBituab/wgAwr7+gXL/Pn6mrX+4qapASCxh65mHA8Ba/6cFhxqrh9zolRToXV5olJTowEqXz4oKzt8wof+pJbDAQsBaLdboWpOpo9YASr+1uoD7AEq5PwO/ru6AWL9AQABYbVbfzgC/vgA8jh9WAEpfeCVldx6ft6PkOGBAAIAe/2gCmYIAAA4AEgAAGEhNSMOAiMiJAI1EBIkMzIWFhczESERIRcBFgQSFRQCBCMiLgInIR4CMzI2NjU0JiYjIzUBIQEUFhYzMjY2NTQmJiMiBgYGAf6cFxpmoHKz/uGnqwEfsHKfZhoQAWsEOgP94rwBA4e4/rvUgfLKjx4BXhRkoG12qFpnu3/CAe/9b/vWVKd8fp5KSp99fqZTvzNkQ7kBYv4BAAFhtURlMgLH/gDw/VYWo/77qcH+8Y8wccOUPmU6WZpib6BW9QJt/imT4X6D4o2O3YB83f//AHv+GQbjCAAGJgJSAAAAJwf+AmsC0gAHBakA1f86AAEAeP/iBg0GFAAmAABFIiQCNTQSJDMyFhYSFRUhNSEuAiMiBgYHFRQWFjMyNjY3BQYGBANi5/6xtLUBRtyO/cNw+xUDkAFYnWhvqF0BYrB2T4BeGAFSILP+6h7BAWPx7QFnyVu+/tvKb/Roo15rrWfVhr9lLVhBJobHbQADAHj/4gYNCFsAJgAyAD4AAEUiJAI1NBIkMzIWFhIVFSE1IS4CIyIGBgcVFBYWMzI2NjcFBgYEASImNTQ2MzIWFRQGISImNTQ2MzIWFRQGA2Ln/rG0tQFG3I79w3D7FQOQAVidaG+oXQFisHZPgF4YAVIgs/7q/gVPc3NPUW9vAgdPc3NPUW9vHsEBY/HtAWfJW77+28pv9GijXmutZ9WGv2UtWEEmhsdtBwBwTFBtbVBMcHBMUG1tUExwAAIAeP3ABg0IAAADACoAAEEBIwEBIiQCNTQSJDMyFhYSFRUhNSEuAiMiBgYHFRQWFjMyNjY3BQYGBAWK/EnjA7f+u+f+sbS1AUbcjv3DcPsVA5ABWJ1ob6hdAWKwdk+AXhgBUiCz/uoIAPXACkD34sEBY/HtAWfJW77+28pv9GijXmutZ9WGv2UtWEEmhsdt//8AeP/iBg0IkwYmAmQAAAAGBmbyAP//AHj/4gYNCJMGJgJkAAAABwZkAJwAAP//AHj/4gYNCHYGJgJkAAAABwZqAGIAAP//AHj/4gYNCAAGJgJkAAAABwZtAGAAAP//AHj/4gYNCBAGJgJkAAAABwZuAK4AAP//AHj/4gYNCGMGJgJkAAAABwZwAcMAAP//AHj91QYNBhQGJgJkAAAABwZ2AgUAG///AHj/4gYNCHYGJgJkAAAABwZzAGIAAP//AHj/4gYNCJMGJgJkAAAABwZ7BhkAAP//AHj/4gYNCIoGJgJkAAAABwZ/BqQAtv//AHj9iAYNBhQGJgJkAAAABwZ1AWkAAP//AHj/4gYNCfkGJgJkAAAABwhgBq8AEv//AHj/4gYNCkAGJgJkAAAABwhcBX0AAP//AHj9wgYNBhQGJgJkAAAABwaJBpgAAP//AHj96QYNBhQGJgJkAAAABwaQBuMAAP//AHj9iAYNCBAGJgJkAAAAJwZ1AWkAAAAHBm4ArgAA//8AeP3XBg0GFAYmAmQAAAAHBosGXgAA//8AeP/iBg0JCQYmAmQAAAAHBoAGxQAS//8AeP/iBg0IRwYmAmQAAAAHBmsAhQAA//8AeP/iBvwI6QYmAmQAAAAHB/ABBv/u////jv/iBg0I5AYmAmQAAAAHB/H/U//0//8AeP/iBkUJLAYmAmQAAAAHB/IApv/d//8AeP/iBg0JKAYmAmQAAAAGB/Mh0f//AHj91wYNCHYGJgJkAAAAJwZqAGIAAAAHBosGXgAA//8AeP/iBg0GFAYGAmQAAP//AHj/4gYNCJMGJgJkAAAABgZm8gD//wB4/+IGDQhbBgYCZQAA//8AeP/iBg0IEAYmAmQAAAAHBm4ArgAAAAEAeP/sBg0GHgAmAABBMgQSFRQCBCMiJiYCNTUhFSEeAjMyNjY3NTQmJiMiBgYHJTY2JAMi6AFPtLX+utyO/cNwBOv8cAFXnmhwp10BYrB2ToJdGP6tILQBFgYewf6d8e3+mclbvgElym/0aKNea65m1Ya/ZS1YQSaGx20AAQElAAAEGAhgABAAAGERNDY2MzIWFwMmJiMiBhURASWB2oVekiNJF0UrZVQGkZvOZh4M/ugHD2Fa+YcAAgA4AAAEDghgAAMAFAAAQREhERMRNDY2MzIWFwMmJiMiBhURA8T8dOOB2oVekiNIF0YrZVMGAP7oARj6AAaRm85mHgz+6AcPYVr5hwACAEIAAAPvCGAAAwAUAABTEQERARE0NjYzMhYXAyYmIyIGFRFCAzD9ioHahV6SI0kWRitlVAOuATUBHf7M+zQGkZvOZh4M/ugHD2Fa+Yf//wElAAAEGApjBiYChAAAAAcGcADdAgD//wA4AAAEDgpjBiYChQAAAAcGcADTAgD//wA4/cAJEwhgBCYChQAAAAcC+gMUAAAAAgB7/aAGJwYUACUANQAAQSIkJiclHgIzMjY1ESMOAiMiJAI1NBIkMzIWFhczNSERFAIEAzI2NjU0JiYjIgYGFRQWFgNWw/7oqiEBRhZUj22ayhIca6+Esf7hqakBILGHr2gbFAFlvP66zHOiVFOhdXmiUlOj/aBpsGtPLVk7laoBIzh2UKcBTfv9AV21W384/vnnxf7+gAOScNKTkdp5ftuLjdN1AAMAfv2gB2sIHAASADgASAAAQSE1ND4CMzIWFxEmJiMiBgYVASIkJiclHgIzMjY1ESMOAiMiJAI1NBIkMzIWFhczNSERFAIEAzI2NjU0JiYjIgYGFRQWFgYq/ptQiq9dP10kJCIZOmdB/S/D/umrIQFGFlWPbJvJEhxqsISx/uGpqQEgsYivZxwTAWW7/rnMdKFVVKF1eKNSVKIFraWEsGktBwf+5QQEHUpC905psGtPLVk7laoBIzh2UKcBTfv9AV21W384/vnnxf7+gAOScNKTkdp5ftuLjdN1//8Ae/2gB1IGFAYmAooAAAAHB/4C2v77//8Ae/2gBicIdgYmAooAAAAHBmoAgQAA//8Ae/2gBicIEAYmAooAAAAHBm4AzQAA//8Ae/2gBicIYwYmAooAAAAHBnAB4gAA//8Ae/2gBicJRgYmAooAAAAHB/kB+ADa//8Ae/2gBicIdgYmAooAAAAHBnMAgQAA//8Ae/2gBicIkwYmAooAAAAHBmQAuwAA//8Ae/2gBicIAAYmAooAAAAHBm0AfwAAAAEAugAABggIAAAWAABBESERIREzNjYzMhYSFREhETQmIyIGBgIk/pYBYhI247Cg7oP+lp+PYJdVA4T8fAgA/PuCl4b+/rr8LgOam61TnP//ALr9iAYICAAGJgKUAAAABgZ1mAAAAv+LAAAGCAgAABYAGgAAQREhESERMzY2MzIWEhURIRE0JiMiBgYBNSEVAiT+lgFiEjbjsKDug/6Wn49gl1X9ZwO/A4T8fAgA/PuCl4b+/rr8LgOam61TnAKO5eUAA/+L/cAGCAgAABEAKAAsAABhIRUUDgIjIiYnERYWMzI2NQERIREhETM2NjMyFhIVESERNCYjIgYGATUhFQSeAWpLhbBlPV0kFjAZV4P9hv6WAWISNuOwoO6D/pafj2CXVf1nA792f69sMAcHARsDBUZjA/r8fAgA/PuCl4b+/rr8LgOam61TnAKO5eUAAgC6AAAF/wgcABIAKQAAQSE1ND4CMzIWFxEmJiMiBgYVExEhESERMzY2MzIWEgcRIRE0JiMiBgYCFP6mToisXj1eIxYvGjlpQxD+lgFaEjXprJ/tgwH+lp+MX5NTBgBThLFoLAcH/uUDBRxJQ/0x/HwGAP77gZiI/v64/C4DmpquU5wAAwC6/cAF/wgcABEAJAA7AABhIRUUDgIjIiYnERYWMzI2NQEhNTQ+AjMyFhcRJiYjIgYGFRMRIREhETM2NjMyFhIHESERNCYjIgYGBJQBakuFsGQ+XiMWLxpWhP2A/qZOiKxePV4jFi8aOWlDEP6WAVoSNemsn+2DAf6Wn4xfk1N2f69sMAcHARsDBUZjBnZThLFoLAcH/uUDBRxJQ/0x/HwGAP77gZiI/v64/C4DmpquU5wAAgC6/+QJ8wgAABYALAAAcxEhETM2NjMyFhIVFSE1NCYjIgYGFREFIiQCNTUhFRQWFjMyNhIRNSEVEAIAugFiEjbjsKDthP6Wn49gl1UEwrP++o8BakluN3m1ZQFqtf6kCAD8+4KXhv7+utKam61TnG/8fByPARnOpqaCjTfiAdwBeLa2/ib9nP7YAAEAtv4ABgUGAAAWAABBESERIREjBgYjIiYCNREhEQYWMzI2NgSaAWv+nRI147Gf7oQBawGgjmKVVQJ8A4T4AAMFgpeGAQO5A9L8ZputU5wAAQBW/cAG3gYUACQAAFMRNjYzMh4CFREUFjMyNjY1ESERIREjBgYjIiYCNRE0JiMiBlYkXj1lr4ZLno9hllUBa/6dEjXksKDug4NWGTAE6wEbBwcwbK9//hybrVOcbwOE98ADRYOWhgECugIcY0YFAAEAVv3ACBsGFAA0AABTETY2MzIeAhURFBYzMjY2NREhERQWFjMyNjcRBgYjIi4CNREjBgYjIiYCNRE0JiYjIgZWJF49Za+GS56PYZZVAWs+ZjoXMxUkXT9lroNKEjXksKDugz1jORkwBOsBGwcHMGyvf/4cm61TnG8DhPmKQkodBQP+5QcHMGyvfwF7g5aGAQK6AhxCSh0FAAL/iwAABggIAAAWABoAAEERIREhETM2NjMyFhIVESERNCYjIgYGATUhFQIk/pYBYhI247Cg7oP+lp+PYJdV/WcDvwOE/HwIAPz7gpeG/v66/C4DmputU5wCjuXl////ZQAABggKdgYmApQAAAAHBmr+igIA////ZQAABggKdgYmApQAAAAHBnP+igIA//8AmwAABggKYwYmApQAAAAHBnD/6wIA//8Auv3XBggIAAYmApQAAAAHBosGdwAA////gAAABggKWwYmApQAAAAHBmj+YgIA//8Auv34BggIAAYmApQAAAAHBooGxgAC//8Auv4lBggIAAYmApQAAAAHCGIGqgAA//8AugAABggIAAYGApQAAAACAJ4AAAJCCGMAAwAPAABzESERAyImNTQ2MzIWFRQGugFqtFZ8fFZXe3sGAPoABtpzUVJzc1JRcwABALoAAAIkBgAAAwAAcxEhEboBagYA+gAAA/+DAAADXQhbAAMADwAbAABzESERASImNTQ2MzIWFRQGISImNTQ2MzIWFRQGugFq/iFPc3NPUW9vAgdPc3NPUW9vBgD6AAbicExQbW1QTHBwTFBtbVBMcP///4MAAANdCpMGJgKoAAAABwgJBLgAHP///5MAAAOVCEcEJgKoJAAABwZr/tQAAP///6/96QOxCGMGJgKnAAAABwaQBRAAAP///6/96QOxBgAGJgKoAAAABwaQBRAAAP///44AAANNCGMGJgKnAAAABwf+/tX/K////7kAAAIkCJMGJgKoAAAABwZm/h4AAP//ALoAAAMnCJMGJgKoAAAABwZk/scAAP///2gAAAN4CHYGJgKoAAAABwZq/o0AAP///48AAANRCAAGJgKoAAAABwZt/osAAP///50AAANFCBAGJgKoAAAABwZu/tkAAAACABv9ugJCBgAAAwAYAABzESERAyImJyY2NjcXBgYXBhYzMjY3FwYGugFqwYGtDwswe2f3XX8BATA0JToUIyNxBgD6AP26iIBOoIovaTR0TjA0FAjMFSf//wAO/boCNghjBiYCtPMAAAYGcOIA////aAAAA3gIdgYmAqgAAAAHBnP+jQAA///+ygAAAukIkwYmAqgAAAAHBnsERAAA////mQAAA0IIigYmAqgAAAAHBn8E0AC2//8AugAAAs8JCQYmAqgAAAAHBoAE8AAS//8Anv3XAkMI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IREFxv7w7jRZNBQhUB5Rb2/8znD+owUM/qRS/wD++ggMASUKBm9uUgOW/tcBKQJq+gAGAPoABgD//wC6/coG9wYABCYEywAAAAcIAgSx/5wAAQC6AAAFywYAAAcAAHMRIREhESERugUR/qP9pgYA+gAE1/spAAEAZgAABaYGAAAHAABTESERIREhEWYFQP4P/qIE1wEp/tf7KQTXAAUAeP32B9kIAAADABAAHAApADUAAEERIREBIiQmAjU0EjYkMzMRAzMRIyIOAhUUFhYBIxEzMgQWEhUUAgYEAzI+AjU0JiYjIxEDcwFr/pWp/ujLb2/LARipTU0tLWCTYzNarwHrTU2pARjLb2/L/uipYZJjMlivgS399goK9fYB7HLSASOxsQEk03L5zgEkA+pPi7VnieOI/twGMnLT/tyxsf7d0nIBJE6KtWeJ5In8FgABAFb9qAWyBgAAIQAAcwEBIQEBIQETHgIHDgIjIiYnExYWMzI2NicuAicDAVYBzf4/AYABJgErAX/+OP4qVTgGB3PZoTNXMRQVTxk2XDQHARYsI8z+zgMAAwD99gIK/QD+XkSdsGN4zX0IDAEoCAw0aU8kSFY4AUT+Bv//AFb+EgZYBgAGJgOxAAAABwgDBE0AAAABALr+Ega2BgAACwAAQREzESERIREhESERBcvr/p77ZgFdAloGAPsO/QQB7gYA+ykE1wACALr+EgXLBgAAAwALAABlIREhAREhESERIRECkQFh/p8DOvrvAV0CWor9iAfu+gAGAPspBNcAAgC6AAAFvQYCAAMAFQAAQREhERMRDgIjIAARESERFBYWMzI2Bb3+pLk7laVS/sz+mwFaRo5reNgGAPoABgD9Sv7YGikYARUBJgIA/gBjeDcw//8Auv4NBxoGAgQmBNcAAAAHCAMFD//7AAMAugAABb0GAgADAAcAGQAAQREjEQERIRETEQ4CIyAAEREhERQWFjMyNgOu6QL4/qS5O5WlUv7M/psBWkaOa3jYBGf8nwNhAZn6AAYA/Ur+2BopGAEVASYCAP4AY3g3MAABALoAAAiXBgAACwAAUyERIREhESERIREhugFdAeMBXQHjAV34IwYA+yoE1vsqBNb6AAACALr+SAm9BgAABQARAABBAyERIxEBIREhESERIREhESEJvR7+q7X5JQFdAeMBXQHjAV34IwEp/R8B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/tZxx/75l5f++shxccgBB5bU/o3+5p8E0AUU/XYABADuAAAMYAgAAAQACQANABEAAGEBASERASERIQEBBwE3EScBFwTo/AYD+gd4+QUF0/ot/ScHa8f8LsfHA9LHBAAEAPgAASQFuP0k/oTMA8TM+3DMA8TMAAQBAAAADHIIAAAEAAgADAARAABhESEJAicBFwMBNwEBIQEBIQEAB3gD+vwG+7nHA9LHx/wuxwPS+iUF1ALZ/Sf6LAgA/AD8AAG4zAPEzPw8A8TM/Dz+oALcAtwABADKAAAKLQgAAAMABwALAA8AAHMRIREBIREhAQE3AQUnARfKCWP3wQcb+OUFE/wuxwPS/C7HA9LHCAD4AAEkBbj63APEzPw8zMwDxMwAAgC4ASkIyAgeAAMABgAAUxEhEQkCvAgG9/YECAQIASkBpf5bAtcEHvviAAQBFgD2CfQIAAACAAYACgAOAABlAQEDESERIREhEQERIREDqP1uApLQBxb+4QEl/KwDTvYCigKK/OIBKP7YBRT67APsASj+2AADARYA9gn0CAAAAgAGAAoAAGUBAQMRIREhESERA6j9bgKS0AcW/uEBJfYCigKK/OIBKP7YBRT67AADARgA9gn2CAAAAgAGAAoAAGURAQURIREhESERB2QCkvciASX+4QcW9gUU/XaUBRT67AEo/tgAAwEWAAAJ9AhAAAIABgAKAABJAgMRIREBESERA6j9bgKS0AcW/uEBJQMsAooCivziASj+2PreBkr5tgADARgAAAn2CEAAAgAGAAoAAEERAQERIREBESERB2QCkvciASX+4QcWAywFFP12+koGSvm2BSIBKP7YAAMBGP/gCJAIAQACAAYACgAARQEhBQMhEQERIREGBv12BRT84gIBKvp+BYIgApPRBln5pwU6ASX+2wADAQABdgptBooAAgAGAAoAAEkDESERAREhEQWB/W4Ckvt/ASUCZgXiAXYCigKK+u4FEPrwAfQBKP7YAAMBAAF2Cm0GigACAAYACgAAQREBBREhEQERIREF7AKS+IIF4gJmASUBdgUU/XaUASj+2P4MBRD68AAEAOYAAAX6CFIAAgAGAAoADgAAUwkCESERAREhEQERIRHmAooCivujA6f9mAEo/ZkDpwXAApL9bvvtARD+8P5TBqv5VQOMARD+8AAEAOb/wgX6CBQAAgAGAAoA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"}},"time_used":38,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Inter-Medium.CKLJZXR2.ttf","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.383Z","timestamp":1785139670383,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Inter-Medium.CKLJZXR2.ttf HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"4cefc-654aa2b832082\"\r\nAccept-Ranges: bytes\r\nContent-Length: 315132\r\nKeep-Alive: timeout=5, max=90\r\nConnection: Keep-Alive\r\nContent-Type: font/ttf\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":315132,"size_decoded":315420,"mime_type":"font/ttf","magic":"TrueType Font data, 16 tables, 1st \"GDEF\", 52 names, Microsoft, language 0x409","md5":"cad1054327a25f42f2447d1829596bfe","sha1":"e76f580811e031813e7150131a0724811cdd737a","sha256":"a645f55492d1c8cdace43c72be8cbec08e680b5a86d8b4c2d1c50d6e41e9cc96","sha512":"98a5038a92128993b4689233fef229d90d8bc1c84f415e85f317e478ca408772ce51acdcd5f1b3758a10a4ada9be1e3089fc0e1046cecff718f969b4f4bdf828","ssdeep":"3072:2bbJwbA5Maf/j41tIW+8CriE3O0nRh+IvVjbALlagBd9CwXSBuw6QJJCz0zF4stW:2yaT1diEF7aagBd9BXgCU+DU+FFh","tlshash":"b8646c03f363c31dd9172d3a87a3c7a063a3bc916a13e20af7243a65ca8b5b45d574d9","first_seen":"2023-10-31T18:47:11Z","last_seen":"2026-08-04T00:48:00.999954Z","times_seen":1290,"resource_available":false,"data":"AAEAAAAQAQAABAAAR0RFRjEzMboAAAI8AAAEGEdQT1Pco93iAAF+OAABLeBHU1VCSydsUwAAXwQAAFV4T1MvMiL7bmIAAAHcAAAAYFNUQVTvJdk3AAABmAAAAERjbWFw9ZJbgwABGRwAAGUaZ2FzcAAAABAAAAEUAAAACGdseWZWHsMCAAKsGAACIuFoZWFkLZBhWAAAAWAAAAA2aGhlYR7CGZ0AAAE8AAAAJGhtdHgQ3erzAAAPaAAAJ8psb2NhCXVS7wAANzQAACfQbWF4cAoMAQYAAAEcAAAAIG5hbWVL6HT6AAAGVAAACRJwb3N0p6g1cgAAtHwAAGSecHJlcGgGjIUAAAEMAAAAB7gB/4WwBI0AAAEAAf//AA8AAQAACfMAlAAMAHAABwABAAAAAAAAAAAAAAAAAAUAAQABAAAKqP1YAAAdgPet9NIcagABAAAAAAAAAAAAAAAAAAAJ8gABAAAAAwTdnkKFoF8PPPUAGwsAAAAAANzyuxsAAAAA3VVQ1vet/HwcagwSAAAABgACAAEAAAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQ8AAHNsbnQBEAABABQABAADAAEAAgEXAAAAAP/2AAAAAQAAAAABGQH0AAAABAcuAfQABQAAByYGmgAAANMHJgaaAAAD2gDAA5oAAAIABQMAAAACAATgAAL/EgCh/wAAAAEAAAAAUlNNUwDAACD//wqo/VgAAAqoAqgAAAGfAAAAAAYACAAAAAAgAAwAAQAAABIAAAAAAAAAAAAAAAAAAgCrAAIAOwABAD0ArQABAK8BFQABARcBiAABAYoBlwABAZkBoAABAaIB1QABAdcB8wABAfUB9gABAfgCQQABAkMCSAABAkoCVAABAlYCYQABAmMCgwABAoUCmQABApsCmwABAp4CvAABAsACwgABAsQCxQABAsoCywABAs0C1wABAtoDQgABA0UDSQABA0wDcQABA3QDdQABA3kDhgABA4gDtAABA7YDtwABA7kDzgABA9ED1wABA9oD2gABA9wD3AABA94D3gABA+ID9gABA/gD+gABA/4D/gABBAAEAwABBAYEBwABBAkECQABBA0EEQABBBQEHQABBCAEIQABBCMEIwABBCcEQAABBEIEQgABBEQERQABBEcESAABBEoEUQABBFMEagABBGwEfQABBIEEhAABBIgEmQABBJ0EtAABBLgEugABBLwEwQABBMMEwwABBMUE0QABBNQE2QABBNwE3gABBOEE4QABBOME4wABBOYE5wABBOoE7wABBP8FAgABBQQFBAABBQkFCQABBQsFDQABBRAFEQABBSIFIgABBeUF5QABBhAGEAABBiEGIQABBikGKQABBiwGLAABBjsGOwABBkoGSgABBlIGZgABBmgGaAABBmsGawABBm4GbgABBncGeAADBnkGeQABBnoGfAADBoIGgwADBqIGpgABBwgHIQABByQHJAABB0MHXAABB18HXwABB38HgwABB4cHhwABB4kHiQABB4sHjwABB5IHkgABB5QHlAABB5gHmQABB5sHmwABB6kHqQABB6sHrAABB64HsAABB7MHswABB7kHvAABB78HvwABB8MHzAABB9EH0QADB9QH1AABB9UH1QACB98H3wADB+cH5wADB+kH6QABB+0H7wABB/YH9wADB/0H/QABCAQIBAADCAsICwABCA0IDQABCBQIFAABCBYIFgABCBcIFwADCBkIGgABCCAIIQABCCMIIwABCCkIKgABCC0ILwABCDMIMwABCDgIOAABCEIIRAABCEYIRwABCEsISwABCE8ITwADCFsIXAADCF4IXgABCF8IYAADCGYIZgABCGoIawABCHIIcgABCHgIeAADCHkIeQABCHoIegADCH8IfwABCIIIggADCJEIoAABCKQIpgABCKoIqwABCLUItgABCLsIuwABCL8IvwABCMAIwAADCMIIwgABCMUIxQADCM8I0AABCN8I3wABCOEI4QABCPkJHgADCTEJMwABCTQJNAADCTcJPQABCT8JeAADCXsJewABCYEJhwABCZMJkwABCZoJmgABCbkJvAADCb4JwQABCcwJzQADCdIJ1gADCdkJ3QADCeAJ4QABCegJ6AABCe4J7wABCfEJ8gABAAAANAJ2AAMAAQQJAAAAkAYMAAMAAQQJAAEAGAX0AAMAAQQJAAIADgXmAAMAAQQJAAMALgW4AAMAAQQJAAQAGAX0AAMAAQQJAAUANgWCAAMAAQQJAAYAGAVqAAMAAQQJAAcAVAUWAAMAAQQJAAgACAUOAAMAAQQJAAkAIATuAAMAAQQJAAsAIATOAAMAAQQJAAwAIATOAAMAAQQJAA0BIAOuAAMAAQQJAA4ANAN6AAMAAQQJABAACgNwAAMAAQQJABEADANkAAMAAQQJABIACgNwAAMAAQQJAQAAFgNOAAMAAQQJAQEAHAMyAAMAAQQJAQIAOgL4AAMAAQQJAQMARgKyAAMAAQQJAQQAGgKYAAMAAQQJAQUAEgKGAAMAAQQJAQYAEAJ2AAMAAQQJAQcAEgJkAAMAAQQJAQgALAI4AAMAAQQJAQkAJAIUAAMAAQQJAQoAMgHiAAMAAQQJAQsALgG0AAMAAQQJAQwAHAGYAAMAAQQJAQ0AKAFwAAMAAQQJAQ4AHgFSAAMAAQQJAQ8ADAFGAAMAAQQJARAACgE8AAMAAQQJAREACAE0AAMAAQQJARIAFgEeAAMAAQQJARMAFAEKAAMAAQQJARQAIgDoAAMAAQQJARUACgDeAAMAAQQJARYAGADGAAMAAQQJARcADgXmAAMAAQQJARgADAC6AAMAAQQJARkADANkAAMAAQQJARoAGgCgAAMAAQQJARsAEACQAAMAAQQJARwAHgByAAMAAQQJAR0ACABqAAMAAQQJAR4AFgBUAAMAAQQJAR8AEgBCAAMAAQQJASAAIAAiAAMAAQQJASEACgAYAAMAAQQJASIAGAAAAEIAbABhAGMAawAgAEkAdABhAGwAaQBjAEIAbABhAGMAawBFAHgAdAByAGEAQgBvAGwAZAAgAEkAdABhAGwAaQBjAEUAeAB0AHIAYQBCAG8AbABkAEIAbwBsAGQAIABJAHQAYQBsAGkAYwBCAG8AbABkAFMAZQBtAGkAQgBvAGwAZAAgAEkAdABhAGwAaQBjAFMAZQBtAGkAQgBvAGwAZABNAGUAZABpAHUAbQAgAEkAdABhAGwAaQBjAEkAdABhAGwAaQBjAEwAaQBnAGgAdAAgAEkAdABhAGwAaQBjAEwAaQBnAGgAdABFAHgAdAByAGEATABpAGcAaAB0ACAASQB0AGEAbABpAGMARQB4AHQAcgBhAEwAaQBnAGgAdABUAGgAaQBuACAASQB0AGEAbABpAGMAVABoAGkAbgBTAGwAYQBuAHQAVwBlAGkAZwBoAHQAUwBpAG4AZwBsAGUALQBzAHQAbwByAGUAeQAgAGEAQwBhAHAAdABpAHQAYQBsACAARwAgAHcAaQB0AGgAIABzAHAAdQByAEYAbABhAHQALQB0AG8AcAAgAHQAaAByAGUAZQBVAHAAcABlAHIALQBjAGEAcwBlACAAaQAgAHcAaQB0AGgAIABzAGUAcgBpAGYAQQBsAHQAZQByAG4AYQB0AGUAIABHAGUAcgBtAGEAbgAgAGQAbwB1AGIAbABlACAAcwByACAAdwBpAHQAaAAgAGMAdQByAHYAZQBkACAAdABhAGkAbABMAG8AdwBlAHIALQBjAGEAcwBlACAATAAgAHcAaQB0AGgAIAB0AGEAaQBsAE8AcABlAG4AIABuAGkAbgBlAE8AcABlAG4AIABzAGkAeABPAHAAZQBuACAAZgBvAHUAcgBBAGwAdABlAHIAbgBhAHQAZQAgAG8AbgBlAEQAaQBzAGEAbQBiAGkAZwB1AGEAdABpAG8AbgAgAHcAaQB0AGgAbwB1AHQAIABzAGwAYQBzAGgAZQBkACAAegBlAHIAbwByACAAYwB1AHIAdgBlAHMAIABpAG4AdABvACAAcgBvAHUAbgBkACAAbgBlAGkAZwBoAGIAbwByAHMARABpAHMAYQBtAGIAaQBnAHUAYQB0AGkAbwBuAE8AcABlAG4AIABkAGkAZwBpAHQAcwBNAGUAZABpAHUAbQBJAG4AdABlAHIAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4AIABUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAGEAdgBhAGkAbABhAGIAbABlACAAdwBpAHQAaAAgAGEAIABGAEEAUQAgAGEAdAA6ACAAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAGgAdAB0AHAAcwA6AC8ALwByAHMAbQBzAC4AbQBlAC8AUgBhAHMAbQB1AHMAIABBAG4AZABlAHIAcwBzAG8AbgByAHMAbQBzAEkAbgB0AGUAcgAgAFUASQAgAGEAbgBkACAASQBuAHQAZQByACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAAcgBzAG0AcwAuAEkAbgB0AGUAcgAtAE0AZQBkAGkAdQBtAFYAZQByAHMAaQBvAG4AIAAzAC4AMAAxADkAOwBnAGkAdAAtADAAYQA1ADEAMAA2AGUAMABiADMALgAwADEAOQA7AFIAUwBNAFMAOwBJAG4AdABlAHIALQBNAGUAZABpAHUAbQBSAGUAZwB1AGwAYQByAEkAbgB0AGUAcgAgAE0AZQBkAGkAdQBtAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADIAMAAgAFQAaABlACAASQBuAHQAZQByACAAUAByAG8AagBlAGMAdAAgAEEAdQB0AGgAbwByAHMAIAAoAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcgBzAG0AcwAvAGkAbgB0AGUAcgApAAALJAEGAAAAAAezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswA8B7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7P+zgez/y0Hs/81B7P/Bwez/90Hs//IB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgezAEYHswBGB7MARgez/s4Hs/8tB7P/NQez/wcHs//dB7P/yAezAEYHswBGCwoARgsKAEYLCgBGCwoARgcyAOEHMgDhBzIA4QcyAOEH1QBPCRAAfAcyAOEHMgDhCBcAnwi6AJ8IFwCfCBcAnwgXAJ8IFwCfCBcAnwgXAJ8IFwCfCBcAkggXAJ8H8ADhCdwAfAfwAOEH8ADhB/AA4QfwAOEH8ADhB/AA4Qfw/68OAQDhDgEA4QaiAOEGogDhBqIA4QaiAOEGogDhBqIA4QaiAOEGogDhBqIA4QaiAOEGogDQBqIA4QaiAOEGogDhBqIA4QaiAOEGogDhBqIA4QaiAOEGogDhBqIA4QaiAOEGov/FBqIA4QaiAOEGogDhBqIA4QaiALEGogDhB/EAbwgXAF0ICwBuCjwAbQnbAGsJ1wBuCgQAbgiQAG0IUADUBqIA4QaiAOEGogDhBqIA4QZyAOEGh//NBnIA4QZyAJsIPQCfCD0Anwi6AJ8IPQCfCD0Anwg9AJ8IPQCfCD0Anwg9AJ8IPQCfCFAAnwhRAJ8IugCfCFAAnwhQAJ8IUACfCFAAnwhQAJ8IUACfCFAAnwgqAOEIKgDhCCoA4QgqAOEIKgDhCCoA4QgqAOEIKgDhCKsAfAgqAOEIwgDhCLwA4QrrAOEMSQDhCCoA4Qm6AL8J7gC6CdUAvgwGAL0LpQC7C6EAvgvOAL4K9gC7CwoAuwpaAL0KGgEkCCoA4QmWAGIJ1QC+DAYAvQulALsLoQC+C84Avgr2ALsLCgC7CCoA4QL3AOEC9/+mAvf/rQL3/68C9//MAvf/0gL3AOEC9/+gBOcAfQL3/6IC9//FAvcAJgL3AL8C9/+gAvf+6QL3/8EC9wDhAvcAvgMAAMkC9wDhA6YADQL3/6YEigC6BHAAvgahAL0GQAC7BjwAvgZpAL4FkQC7BaYAuwL3/8UC9/+iBPUAvQS1ASQC9wDhAvf/pgUCAHwFAgB8BQIAfAUCAHwFAgB8BQIAfAUCAHwFAgB8BQIAfAUCAHwFAgB8BQIAfAUCAHwFAgB8BQL/7wUCAHwFAgB8BQIAfAa+AHwGoQB8CNIAfAhzAHwIbAB8CJoAfAfEAHwH2QB8BQIAfAUCAHwHJgB8BuYA4wUCAHwFAgB8BhIAYwYSAGMGEgBjBhIAYwYSAGMHTwDhB08A4QdPAOEHTwDhB08A4QdPAOEIlQAfB8IA4QeaAOEHTwDhBjUA4QY1AOEGNQDhBjUA4QY1AOEGNf+gBjUA4QY1AOEGRgA2BjX/rwjyAOEJ4ADhCeAA4QngAOEJ4ADhCh4A4QngAOEJ4ADhCeAA4Qg3AOEINwDhCDcA4Qg3AOEINwDhCDcA4Qg3AOEINwDhCDcA4Qg3AOEIT//QCDcA4Qg3AOEINwDhCDcA4Qg3AOEINwDhCDcA4QhdAPMINwDhCsEA4QhzAJ8IcwCfCHMAnwhzAJ8IqQCfCHMAnwhzAJ8IcwCfCHMAnwhzAJ8IcwCfCHMAnwhzAJ8IcwCfCHMAnwhzAJ8IcwCfCHMAnwhzAJ8IcwCfCHMAnwhzAJ8IcwCfCHMAnwhzAJ8IcwCfCHMAnwhzAJwIcwCfCHMAnwhzAJ8IqQCfCKkAnwipAJ8IqQCfCKkAnwhzAJ8IcwCfCK7/6wj6/+wJWgBoCxL/7gqR/80KLP/wCkz/7wlm/+4IcwCfCKUAbAhzAJ8IcwCfCHMAnwhzAJ8IcwCfCrkAnwcIAOEHCADhBwgA4QcVAOQI5gB8BwgA4QiBAIcIdACfBxgA4QcYAOEHGADhBxgA4QcYAOEHGADhBxgA4QcYAOEHGADhBxgA4QceAOMH0gDhBzoAHQcUAJAHFACQBxQAkAcUAJAHFACQBxQAkAcUAJAHFACQBxQAkAcUAJAHFACQBxQAkAcUAJAHoQDhBykAfAcpAHwHKQB8BykAfAcpAHwHKQB8BykAfAcpAHwHlAB8BykAfAcpAHwHKQB8CB0A4QmJAOEIHQDhCB0A4QgdAOEIHQDhCB0A4QgdAOEIHQDhCB0A4QgdAOEIHQDhCB0A4QgdAOEIHQDhCB0A4QgdAOEIHQDhCB0A4QgdAOEIHQDhCB0A4QgdAOEIHQDhCB0A4QgdAOEJiQDhCYkA4QmJAOEJiQDhCYkA4Qg6//YHswBGB7MARgezAEYKwgA6CsIAOgrCADoKwgA6CsIAOgrCADoKwgA6B1QATgdUAE4HVABOB1QATgdUAE4HVABOB4gAQwgSAEsHiABDB4gAQweIAEMHiABDB4gAQweIAEMHiABDB4gAQweIAEMHjgAOB4gAQwmKADsHiABDCVQAVgsEAFALnQA6CtoANweIAEMHiABDCZEAUwl2AC4HiABDBwcAowcHAKMHBwCjBwcAowcHAKMHBwCjBwcAowcHAKMHBwCjBwcAowcHAKIGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAIEGQ/+cBkMAgQZDAIEGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAIEGQwCBBkMAgQZDAMYGQwCBBkMAgQZDAIEKIgCBCiIAgQoiAIEKIgCBBuIAhgbiAIYG4gCGBuIAhgbiAIYG4gCGBuIAhgbiAIYG4gCGBuIAhgbiAIYG4gCGBuL/zAbiAIYG4gCGBuIAhgbiAIYG4gCGBuIAhgbiAIYG4gCGBuIAhgbiAIYG4gCGBuIAhgbiAIYG4gCGBuIAhgbiAIYG4gCGBuIAhgbiAOEG4v+rBuIA4QbKAMkG4gDhBuIA4QbiAOEGPwCEBkEAhAbWAIQGQgAiBj8AhAY/AIQGPwCEBj8AhAY/AIQGPwCEBj8AhAY/AIQG4gCGBuIAhgbKAIYG6gCGBuIAhgfnAIcHqgCGBuIAhgbiAIYG4gCGBuIAhgbiAIYL2wCGC9sAhgvbAIYM5wCGCqoAhgbiAIYGdgCEBnYAhAZ6AIQGdgCEBnYAhAZ2AIQGdgCEBnYAhAZ2AIQGdgCEBnYAhAZ2AIQGdgCEBnYAhAZ2AIQGdgCEBnYAhAZ2AIQGdgCEBnYAhAZ2AIQGdgCEBnYAhAZ2/6EGdgCEBnYAhAZ2AIQGdgCEBnYAhAZ2AIQGdgCEBnYAhAQUATIEDwBAA94ARQQUATIEDwBACXsAQAbKAIYG4gCHBsoAhgbKAIYGygCGBsoAhgbKAIYGygCGBsoAhgbKAIYGnwDJBp8AyQaf/5IGof+SBpIAyQaSAMkKigDJBp8AxwdyAGcHngBnBp//kgaf/4IGn/+CBp8AogafAMkGn/+IBp8AyQafAMkGnwDJAr0AowK9AMkCvf+KAr3/igMa/5oCvf+yAr3/sgK9/5MCvf+2Ar0AyQK9/4QCvf+GAr3/qQK9AAQCxf/9Ar3/hAK9/s0Cvf+lAr0AyQK9AKMCvQCkAr3/0AK9/5ECvf+RAr3/kQK9AKMCvf+KBXoAowK9/9AERv/3BEb/9wK9/4ECvf+BAr3/0AK9/9AFdQDJBh8AyQYGAMkGHwDJBh//hAYfAMkGHwDJBh8AyQYfAB4CvQDJAr3/9gK9/5IDcv+rAyYAyQTrADoEDv9yA9IAzAK9AMkCvQBYA50AyQK9AKICvf+CAr3/hAK9/4IDAADJAwr//QMA/5QDAP9OBOsAOgPSAMwDAADJAwAArAOdAMkDAADJAwD/ggMA/9gDAP/WAvcA4Qm4AMkJuADJCbgAxwm4AMcJuADJCbgAyQm4AMkGkgDJBpIAyQahAMkGmwDJCIsAyQbD/8EGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkJTwDJBqAAhAagAIQGoACEBqAAhAa0AIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqD/sgagAIQGoACEBqAAhAa0AIQGtACEBrQAhAa0AIQGtACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQGoACEBqAAhAagAIQK1wCGDKUAhAbKAMkGtgDMBsoAyQbKAMkGygDJBsoAyQbKAIYHTgCGBzMAhgjCAJ8EOgDJBDoAyQQ6/5QEOgA7BIwAOwOUAF4DnwDGBDoAyQQ6AMkEOgBYBDoAeQQ6/8IEOgCZBDoAyQQ6AKEEOgB6BDr/gwRcAMkEXADJBFz/lARcAMkEXADJBFwAWARcAHoEXP/DBFwAmgRcAMkEXAChBFwAewRc/4MF5QCFBeUAhQXmAIUF5QCFBeUAhQXlAIUF5QCFBeUAhQXlAIUF5QCFBeUAhQXlAIUF5QCFBeUAhQXlAH4G5wDhBwYA4QQXAE8EIABPBCQATwV+AE8JOgBPBBcAZQQXAE8EFwBPBDkATwQXAE8EFwBPBBcATwQXAE8EFwBPBBf/8QaKAMkGigDJBooAyQcqAMwHAgDJBvkAAAaKAMkGigDJBooAyQaKAMkGigDJBooAyQaKAMkGigDJBooAyQaKAMkGigDJBooAyQaKAMkGigC0BooAyQaKAMkGigDJBooAyQaKAMkGigDJBooAyQaKAMkHKgDMByoAzAcqAMwHKgDMByoAzAY7AFAGOwBQBjsAUAY7AFAJEwBSCRMAUgkTAFIJEwBSCRMAUgkTAFIJEwBSCRMAUgkTAFIGEABnBhAAZwYQAGcGEABnBqgAZwY7AFAGOwBQBvEAUAZBAFUGOwBQBjsAUAY7AFAGOwBQBjsAUAY7AFAGOwBQBjsAUAY7AFAGOwBQBjsAUAY7AFAGOwBQBjsAUAY7AFAHCQBDBwkAQwcJAEMGOwBQBhEAqQYRAKkGCgCoBkYAqAa3AKkGEQCpBhEAqQYRAKkGEQCpBhEAqQYRAKkHHgCyBxYA1QZaAOEHswBGCHMAnwZcAJUIGQD2BxcAwgidAJgIvgDhCHAAmgj8AEwInf/LCNn/xglKAD4LCf/LCqj/yQqD/9AKsP/PCfn/ygoO/8oJXf/LCNn/xglKAD4LCf/LCqj/yQqD/9AKsP/PCfn/ygoO/8oIcACaCHAAmgdyAHUIqP/nB3IAdQdbADIHOQDhBlwA4QZa/68IZgBGCvAATgrwAE4HFgC7B1YA4QduAOEHhgDhB+gARghzAJ8H7wDhBwkAQwj4AJ8IbADhCgkAfAgLAQoICwEKCBsBCggLAPkJ8wB8CtMA/AsYAPwI+QB8CYIA4wdGAOMMEQBSDGQA4Qd8AJ8LSgDhB24AoAcUAOEMIwCuB24AnwkaANAJGQCnB6sAhAcCAKUH7gBGCQwAfAZzAIQGtwDJBxYAhgcWAIYHFgCGBxYAhgcWAIYHFgCGBxYAhgcWAIYHFgCGBxYAhgcWAIYHFgCGBxYAhgcWAIYHFgCGBxYAhgcWAIYHFgCGBxYAhgcWAIYHFgCGBxYAhgcWAIYHFgCGBxYAhgcWAIYGlADJBewAUAZbAIAGFQCEBhUAhAZFAI8GFQCEBl8AgQZFAHsIRgCCBhUAhAYVAIQGFQCEBhUAhAYVAIQGFQCEBhUAhAXcAH4GkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGkgDJBpIAyQaSAMkGXQCdAyAAzQMg/xUDIADNAyD/iQMgAM0DIACeAyD/oAMg/5oDIAAiAyD/5AMg//oDIP/IAyAADgMg/6gDIP+FAyD/bAMg/2kDIP9vBoUAVwYRAKsHXAB+BlsAvQZbAL0GWwC9Blv/gwYOAI4HFgCoBYMAOgZzAMkGcwDJBnMAyQZzAMkGcwDJBnMAyQZzAMkGcwDJBnMAyQZzAMkGcwDJBnMAyQZzAMkGcwDJBnMAyQZzAMkGcwDJBnMAyQh1AJ4IBgCPCG0AyQlhALEJYQCxCWEAsQlhALEJYQCxCWEAsQlhALEJYQCxCWEAsQlhALEJYQCxCWEAsQlhALEJYQCxCWEAsQlhALEJYQCxCWEAsQlhALEJYQCxCWEAsQlhALEJYQCxCWEAsQbKAGwGkwCGBjoAyQUSAMkFJgDJBRL/dAcIADMJSABnCUgAZwWOAG4GngDJB2UAyQYWAMkGkADJBsoAyQaWAMkH6gBzBooATwdVAE8HXgBPCFEAyQkbAMkGcQDJB0AAyQfrAMkGcQDJBzsAyQZ2AMkF9gBzB+YAhAX8AGcGEABnBxEAyQZ2AMkGYADJBzEAyQZgAMkJIwDJCdQAyQY4AMkHYwBTCIAAyQaWACoGlgAqCkMAgwn2AMkF/wCECQEAYwY8AG0GFQDJCigAyQYWAD0HXgCqB/YAgAgqAEUHAgClBrIAUAcUAJAGPwCEBh4AKAcWALYEjgA+BrMAjgfZAHEHZABLBhAAVwcqAH0M2QDhCGUAmAgoAE0KzABMBzYAtgezAEYHXQC6CGsAOgg9AJ8IFwCfCBcAnwgKAJ8HKQB8Dm0AYglsAMgJUADnCBcAxgx+AOEIFwDLBnL/rwcyAOEHMgDhBxsAnwUzAKIGvwDDBr8AwwcWALsHMgCaBtIAyga1AF4G/gClBl4AfgbyAJ8G/gCnBxsAnwT6AKMHAgClBzIAmgaGAKIGhgCaB0AAsQdAAa4HQAEEB0AA0Qc+AJoHQAD7B0AAxQdAAPAHQADGB0AAxQdAALEHQAG7B0AAxgdAAKIHQAD8B0AA+QcpAIYDOwDVBnYA1QM7ANUJAwDVBcgAbguQAG4JAwBuBcgAiQXIAG4FyACJBCgBIAQoAHIEKAFBBCgBQQQoAFYEKABWBCgAYgQoAFYKpQCTBCgBIAQoAHIEKAFBBCgAVgQoAGIEKABWCqUAigcCACoIGwCsBAsANgPEAVwDNgESBAsANgUYAMYFGADGBYAAAAdAAAALAAAACwAAAAXTATIF0wEyBdMBcAXTAbAGkgDIBpIA2wXTAVMFGADGBYAAAAdAAAALAAAABdMBMgXTATIF0wFwBdMBsAaSAMgGkgDbBdMBUwJZAI4CMQA4AnwAOgJkALQEZgC0BFYAjgRWADgEVgA2AlkANQKjAJQEwwCUBuMAlAkDAJQCowCUBMMAlAbjAJQCqwCzBHUAswMqALIDHQDGCPMAyQYIAMkDHQDGAx0AxgMdAMYDKgCyAx4AqQMdAMkDHQDJAxsArgMdAMYDHQDGAxoAtAQQALQEEACtBkEAtAZEAK0HUwESB1MBEgdTARIHUwESB1MBKQdTASkHUwEGB1MBFgdTAQwHUwEWB1MBEgdTAOEHUwDeB1MBEgdTARIHUwESB1MBEgdTASkHUwEpB1MBBgdTARYHUwEMB1MBFgdTARIHUwDhB1MA3gYWAMoFD//9BswAtwYRAFoFOgBqBb0AtAW9ALQHWgCNChAA5woQAOcHWgCNBtAAcAa1AHAH0wBwCEQAgAbVAIAHAACABQUArAUUAMoFEgCoAewAbwR8AHsGogCTBpYA4QY3AJMKbgCGBxcA4AdgAJMIHgERA2L/pQcZAIUHjQCCBjYAbQQ1AEwEnQCIBD8ATgSdAFIEVgBOAsoANASXAFIEgQB7AewAbwHu/9UEJgB7AekAewaWAHsEfAB7BHEATgSRAHwEkQBSAwsAewQIAE0CzgAxBHcAewQ7ACwGIgAtBB4AOQQ7ACwEGgBvBO0AZgN5AG0EowB5BMcAbgTgAGIEogB9BL4AZARPAE8EwQBiBL4AaQLfALcC3wA+At8AzgLfACYE3QCqBN0AqgTcAMMENQBMBJ0AiAQ/AE4EnQBSBFYATgLKADQElwBSBIEAewHsAG8B7v/VBCYAewHpAHsGlgB7BHwAewRxAE4EkQB8BJEAUgMLAHsECABNAs4AMQR3AHsEOwAsBiIALQQeADkEOwAsBBoAbwTtAGYDeQBtBKMAeQTHAG4E4ABiBKIAfQS+AGQETwBPBMEAYgS+AGkC3wC3At8APgLfAM4C3wAmBN0AqgTdAKoE3ADDBHYAWAMeAFwENwBqBFEAYQRoAFYENQBuBEsAVgPlAEUEUgBXBEsAWgMD/koEdgBYAx4AXAQ3AGoEUQBhBGgAVgQ1AG4ESwBWA+UARQRSAFcESwBaBGoAmgRqAJoEaQCuAqQApAKkADgEdgBYAx4AXAQ3AGoEUQBhBGgAVgQ1AG4ESwBWA+UARQRSAFcESwBaBGoAmgRqAJoEaQCuAqQApAKkADgEdgBYAx4AXAQ3AGoEUQBhBGgAVgQ1AG4ESwBWA+UARQRSAFcESwBaCiYAXApyAFwJtABcCn8AYQrXAG4GLQBWCdoARQpBAFwLAgBuCwwAYQkcAOwLrQDsDjAA7AulAEwLugBOC7MATgtnAEwK8wBMBXgCJwRoAHIFeAGqA1YA+QZLAU8GSwFPBWMA1gWAAMoFDwCRBV0A1AUPANAFDwDTAtIArAOzAHUDswCyBWMA1gYTAMIDVQEJAwoAfQAAAHoAAP3bAAD52QAA+yAAAPq/AAD6zAAK+tUACPr+AAj67AAM/B0ABfrTAAD68gAA+xcADfwJAAr7XAAF/b0ADvtwAAz7/AAA+uoACPr+AAD8FgAO+8AADPpGAAr7WgAF+i4ACPrSAuoAAALqAAAB5gAAAyYAAAYYAAAMJwAABYAAAAsAAAADrAAAAsAAAAHUAAAHQAAAAx0AAAHmAAAA8wAAAAAAAAwFAOEM9gCsC3cArAdPAOEHswBGCHMAnwcaAMoKgAEWDsABFh2AARYKgAEWDsABFgqAAWAOwAFgHYABYAqAAWAOwAFgCoACTwqAAicKgAInCoACTw7AARYTQAEWDsABFhNAARYKgAGxCoABswqAAbMMogEWDKIBDgqAARYOwAEWHYABFgqAARYOwAEWCoABYA7AAWAdgAFgCoABYA7AAWAOwAEWE0ABFg7AARYTQAEWCbABJQmwAgMLPQCSCz0Akgo2AI4KNgESCz0Akgs9AJIKNgCOCjYBEgsYAEAKEADnChAA5woQAQgKEAEIChABCAoQAQgKEAEIC5oAjQuaAI0LmgCNC5oAjQvAAPQLwAD0C0AA0AtAANALQADQC4ABAAuAAQALjQDzC40A8wuNAPMK4gFDCMABHwjAAR8IwACMC0ABAAtAAQAKgAFACoABQAqAAUANYADuDWABAAsxAOEJgAC4CvEBFgrxARYK8QEYCvEBFgrxARgJYwEYC0YBAAtGAQAGwgDzBsIA8w9IACAPSABkAAD8JgAA/GoPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkBzIA4QkZAKcICwEKCAsBCg73AOEH8P+vBxkA8QcWAKYKqQDhB+gARgcWAKIIFwCfBxcAtgfw/68HhAB8B4QAfAeEAI0GWv+vBxYAygeEAM8JCQDh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AAAJNQAACU0AAAllAAAJfwAACiMAAAozAAAKQwAACsUAAAt2AAALjgAAC6YAAAu+AAAL1gAAC+4AAAwOAAAMowAADSQAAA00AAANjAAADgsAAA4jAAAOOwAADlMAAA5rAAAOgwAADpsAAA8NAAAPJQAADz0AAA9uAAAPhgAAD54AAA+2AAAPzAAAD+QAAA/8AAAQFAAAECwAABBEAAAQXAAAEHQAABCMAAAQpAAAELwAABDUAAAQ7AAAEQwAABEkAAARPAAAEVQAABFsAAARhAAAEZwAABG0AAAR1AAAEhsAABJPAAASXwAAEnkAABKRAAASqQAAEsEAABLbAAAS9QAAEw0AABMlAAATPQAAE00AABNlAAATfQAAE5UAABPAAAAUGQAAFDEAABRfAAAU6AAAFX8AABY8AAAWVAAAFmwAABaEAAAWnAAAFrQAABbMAAAW5AAAF3IAABgOAAAY0gAAGOoAABkCAAAZGgAAGTIAABlKAAAZYgAAGXoAABmrAAAZwQAAGdkAABnxAAAaCQAAGiEAABo5AAAaUQAAGpIAABr5AAAbEQAAGykAABtjAAAbwgAAG9IAABvqAAAcAgAAHBoAABwyAAAcSgAAHGIAABx6AAAckgAAHKoAABzCAAAc2gAAHOoAAB0KAAAdKgAAHUoAAB1qAAAdigAAHaoAAB3KAAAd6gAAHgIAAB4eAAAeeAAAHpAAAB6oAAAewAAAHtgAAB7wAAAfCAAAHyIAAB86AAAfUgAAH2gAAB+AAAAfmAAAH7AAAB/IAAAf4AAAH/gAACAIAAAgGAAAIDIAACBCAAAgWgAAIHIAACCKAAAgogAAILoAACDSAAAg6gAAIQIAACEaAAAhMgAAIUoAACFiAAAhcgAAIYoAACHFAAAh3QAAIfUAACILAAAiIwAAIjsAACJTAAAiawAAIoMAACKbAAAiswAAIssAACLjAAAi+wAAIxMAACMrAAAjQwAAI1sAACNzAAAjiwAAI6MAACO7AAAj0wAAI+sAACQDAAAkGwAAJDMAACRLAAAkYwAAJHsAACSLAAAkowAAJOoAACUCAAAlGgAAJSoAACU6AAAldgAAJY4AACWmAAAlvgAAJdYAACXuAAAmLwAAJkcAACaYAAAmqAAAJscAACbfAAAm9wAAJw8AACcnAAAnRwAAJ18AACd3AAAnqAAAJ8AAACfY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AAEOagABDnoAAQ6vAAEO4wABDvsAAQ8TAAEPRQABD3oAAQ+7AAEP/QABECkAARBmAAEQkQABEK0AARDdAAERPQABEXgAARIgAAESegABEqwAARLhAAES8wABEwUAARMxAAETQwABE28AAROLAAETvAABFBwAARQuAAEUQAABFFIAARR7AAEUkwABFL8AART7AAEVNwABFYgAARWaAAEWZQABF1wAARhTAAEZBgABGWQAARoSAAEacwABGuQAARtnAAEb7gABHFIAARzVAAEdMwABHW0AAR2xAAEd9gABHj0AAR84AAEgPQABIN0AASEoAAEhUAABIagAASHvAAEifwABIsoAASNcAAEjywABJCgAASSXAAElAwABJUoAASXYAAEmHQABJlcAASauAAEm9gABJxEAASd8AAEnwAABKCQAASiTAAEpBQABKUUAASnAAAEqBgABKkoAASp3AAEquwABKvgAAStCAAErcwABK8sAASvyAAEsTAABLM4AAS0OAAEtewABLgQAAS4sAAEu1wABL2EAAS+hAAEv4gABMAUAATAoAAEwUQABMGsAATCSAAEwpAABMLYAATETAAExJQABMTcAATFJAAExWwABMW0AATF/AAExkQABMaMAATG1AAExxwABMdkAATI9AAEyTwABMmEAATJzAAEy7gABMwAAATNDAAEzVQABM2cAATN5AAEziwABM50AATOvAAEzwQABM9MAATPlAAEz9wABNAkAATQbAAE0LQABND8AATRRAAE0YwABNHUAATSHAAE0mQABNKsAATS9AAE05AABNTsAATVgAAE1sgABNjMAATZwAAE23AABN14AATeEAAE4JQABOKsAATjIAAE42gABOOwAATj+AAE5EAABOSIAATk0AAE5RgABOVgAATlqAAE5fAABOY4AATmgAAE5sgABOcQAATnWAAE56AABOg8AATohAAE6owABOrUAATsiAAE7NAABO1wAATtuAAE7gAABO6kAATvDAAE76gABPCUAATxhAAE8cwABPIUAATyXAAE8qQABPLsAATzNAAE83wABPPEAAT0DAAE9FQABPTUAAT1VAAE9dQABPZUAAT21AAE9zQABPe0AAT4NAAE+LQABPk0AAT8TAAFALAABQZoAAUJWAAFCdgABQpYAAUK2AAFC1gABQvUAAUMmAAFDRQABQ2IAAUOuAAFD+gABRCgAAUR0AAFEwgABRNwAAUUNAAFFHQABRUoAAUWjAAFF+AABRiYAAUaFAAFGwAABRwoAAUcnAAFHOQABR2YAAUeGAAFHtAABR84AAUgaAAFISwABSH0AAUi6AAFIzAABSPkAAUkLAAFJHQABSS8AAUldAAFJbwABSacAAUnVAAFKCAABSjUAAUphAAFKrQABSr8AAUrRAAFLHQABSx0AAUsdAAFLHQABSx0AAUsdAAFLHQABSx0AAUsdAAFLHQABSx0AAUsdAAFLHQABSx0AAUsdAAFLHQABSx0AAUuyAAFLygABS+IAAUvyAAFMAgABTBoAAUyaAAFMzAABTP4AAU0wAAFNeAABTcAAAU3wAAFOIAABTlAAAU6XAAFO3gABTw4AAU87AAFPawABT5gAAU/hAAFQKgABUI4AAVDyAAFRIwABUVYAAVGeAAFSBwABUm8AAVKhAAFSswABUsUAAVLXAAFS6QABUxkAAVNLAAFTXQABU28AAVOBAAFTkwABU6UAAVO3AAFTyQABU/EAAVQhAAFUOwABVFUAAVRxAAFUjAABVLUAAVTdAAFVBwABVTEAAVV7AAFV0wABVm0AAVaHAAFWsQABVxQAAVeHAAFX+gABWBoAAVhwAAFYogABWUQAAVouAAFa6wABW4YAAVvbAAFb6wABXCUAAVyHAAFcrwABXPAAAV1SAAFenAABXsQAAV78AAFfqgABX+QAAWAcAAFgsgABYTkAAWG9AAFiFQABYnEAAWK/AAFi6gABYzEAAWNoAAFjngABY9cAAWQQAAFkSAABZIIAAWS7AAFlAgABZUgAAWVaAAFlbAABZj8AAWajAAFmvQABZtcAAWbxAAFnCwABZyUAAWc/AAFnWQABZ3MAAWeNAAFnpwABZ8EAAWfbAAFn9QABaA8AAWgpAAFoQwABaF0AAWh3AAFokQABaKsAAWjFAAFo3wABaPkAAWkTAAFpLQABaUcAAWlhAAFpewABaZUAAWmvAAFpyQABaeMAAWn9AAFqFwABajEAAWpLAAFqZQABan8AAWqZAAFqswABas0AAWrnAAFrAQABaxsAAWs1AAFrTwABa2kAAWuDAAFrnQABa7cAAWvRAAFr6wABbAUAAWwfAAFsOQABbFMAAWxtAAFshwABbKEAAWy7AAFs1QABbO8AAW0JAAFtIwABbT0AAW1XAAFtcQABbYsAAW2lAAFtvwABbdkAAW3zAAFuDQABbicAAW5BAAFuWwABbnUAAW6PAAFuqQABbsMAAW7dAAFu9wABbxEAAW8rAAFvRQABb18AAW95AAFvkwABb60AAW/HAAFv4QABb/sAAXAVAAFwLwABcEkAAXBjAAFwfQABcJcAAXCxAAFwywABcOUAAXD/AAFxGQABcTMAAXFNAAFxZwABcYEAAXGbAAFxtQABcc8AAXHpAAFyAwABch0AAXI3AAFyUQABcmsAAXKFAAFynwABcvcAAXMPAAFzJwABcz8AAXNXAAFzZwABc7MAAXQMAAF0rQABdMUAAXVnAAF1fwABdY8AAXWfAAF2FwABdi8AAXapAAF2wQABdzwAAXfhAAF3+QABeDMAAXhLAAF4/gABeWsAAXopAAF6QQABelkAAXqBAAF6mQABes8AAXt6AAF8KgABfJkAAX01AAF+OAABftIAAX7iAAF/PwABf50AAX/4AAGAjAABgREAAYEpAAGBswABgcsAAYHjAAGCRAABglwAAYJsAAGChAABguwAAYNnAAGDfwABg8cAAYRkAAGFIQABhXgAAYXrAAGGAwABhhsAAYYzAAGGSwABhpYAAYbYAAGHGQABhysAAYc9AAGHTwABh18AAYdvAAGHfwABh48AAYefAAGHrwABh8cAAYffAAGH9wABiFgAAYiAAAGI3QABiRQAAYlKAAGJXAABiZMAAYnJAAGKVQABim0AAYsXAAGL7AABjKQAAYy9AAGMzwABjYkAAY3KAAGOCwABjmsAAY61AAGO5wABj1QAAY9mAAGPnAABj/IAAZAoAAGQWwABkIgAAZDTAAGRIAABkUwAAZFeAAGRqAABkcAAAZHWAAGR7gABkicAAZJhAAGStwABkx8AAZM6AAGTZQABk5UAAZPDAAGT3wABlAwAAZRCAAGUVAABlIMAAZSyAAGUywABlT8AAZV7AAGVwAABle8AAZYKAAGWLAABlnoAAZcgAAGXMgABl5IAAZfxAAGYXgABmMsAAZkoAAGZiAABmeEAAZo6AAGahAABmr8AAZr6AAGbIgABm0oAAZvWAAGb7gABnAAAAZx+AAGclgABnQIAAZ2bAAGeKgABnpMAAZ8oAAGfOAABn0gAAZ9gAAGgAgABoHUAAaEPAAGhsAABogkAAaJzAAGigwABopMAAaKrAAGivQABo1YAAaNmAAGjfgABo5QAAaQCAAGkfgABpPIAAaUKAAGlegABpdwAAaY5AAGmmQABpwcAAacZAAGnKwABpz0AAaeyAAGn7QABqCkAAag7AAGoZwABqHkAAaiPAAGopwABqL8AAaj2AAGpDgABqSYAAak2AAGpugABqgIAAaoYAAGqYAABqsoAAar5AAGrCwABq7oAAaxKAAGsmAABrLMAAazNAAGs3wABrPEAAa0sAAGtYQABrdsAAa5ZAAGuhgABrrMAAa8NAAGvZwABr5QAAa/CAAGv1AABr+0AAbCAAAGwmgABsKoAAbDCAAGxBAABsRQAAbEyAAGxQgABsVgAAbHrAAGyngABswwAAbOcAAG0lgABtKYAAbS2AAG1JwABtb0AAbXPAAG19gABtggAAbZLAAG2WwABtm0AAbb+AAG3GQABtzEAAbdRAAG4AQABuCkAAbg5AAG4XAABuI0AAbilAAG40QABuYcAAbnmAAG6rQABuu4AAbtTAAG7hAABu5YAAbvGAAG72AABu+oAAbv8AAG8JAABvDwAAbxMAAG8XAABvGwAAbyEAAG8lAABvKwAAby8AAG83AABvPQAAb0EAAG9FAABvTQAAb1UAAG9bAABvbsAAb4CAAG+bQABvukAAb75AAG/DwABv8AAAcAVAAHAJQABwEUAAcBdAAHAewABwJoAAcDAAAHA6QABwXMAAcGFAAHBrQABwdQAAcHmAAHB/gABwg4AAcK5AAHDVQABw9AAAcQrAAHESwABxKkAAcUKAAHFkgABxiIAAcZ+AAHG0wABxzIAAcdEAAHHkAABx7YAAcfgAAHIDAAByDgAAchkAAHIkAAByREAAcmxAAHJzgAByoEAAcqhAAHKuQAByuEAAcsHAAHLUAABy8sAAcxnAAHM6wABzUAAAc4MAAHOzwABz8YAAdDBAAHRMgAB0ZIAAdHIAAHR4AAB0fAAAdIAAAHSTwAB0v4AAdM3AAHTYgAB040AAdO4AAHT4AAB1BQAAdRJAAHUfgAB1MkAAdTbAAHU7QAB1P8AAdVQAAHVagAB1ZEAAdW8AAHV4QAB1ggAAdY9AAHWZQAB1qEAAdbXAAHW8QAB1xoAAdd9AAHYEAAB2KAAAdj8AAHZNgAB2TYAAdlpAAHZvgAB2e8AAdoBAAHaEwAB2i0AAdo/AAHaUQAB2o0AAds3AAHbXgAB23AAAdu6AAHb1AAB2+YAAdwkAAHcqAAB3QwAAd1GAAHdngAB3eYAAd5HAAHeswAB3vgAAd9pAAHfqAAB3+0AAeAiAAHgVwAB4IIAAeDRAAHhGAAB4V4AAeG1AAHiJgAB4rYAAeNIAAHjmwAB5EUAAeTTAAHlUQAB5bEAAeYOAAHmHgAB5i4AAeZ1AAHm6gAB5wIAAecaAAHnMAAB53MAAeilAAHpUwAB6WMAAel7AAHpkQAB6akAAenBAAHp2QAB6fEAAepkAAHqxAAB6yYAAeu7AAHr6AAB7AsAAewuAAHsUQAB7HQAAeykAAHs1QAB7RcAAe1PAAHthwAB7bkAAe4DAAHuPAAB7pAAAe8CAAHvcAAB78wAAfCSAAHxVAAB8e0AAfJ5AAHy8QAB83wAAfQPAAH0cAAB9LUAAfTPAAH09wAB9TkAAfWBAAH1twAB9kMAAfafAAH3EwAB90wAAfeIAAH4GgAB+IcAAfkOAAH5cgAB+bkAAfpIAAH6sgAB+x4AAfuCAAH73AAB/D4AAf0CAAH9nQAB/ikAAf47AAH+hQAB/xQAAf8mAAH/gAAB/8gAAf/YAAH/8AACACcAAgCmAAIBJwACAbQAAgJAAAICWAACAnAAAgKIAAICngACArYAAgLOAAIC5gACAxUAAgNNAAIDfAACA8kAAgRTAAIElAACBNQAAgUXAAIFWgACBcIAAgYqAAIGQgACBoAAAga+AAIG/QACBzwAAgelAAIIDgACCCYAAgiFAAII4gACCQUAAgkoAAIJSwACCW4AAgmaAAIJxgACCecAAgn5AAIKfwACCpkAAgr7AAILSQACC5EAAgvhAAIMAwACDC0AAgxfAAIMeQACDKMAAg1MAAINbgACDZgAAg20AAIOHgACDtkAAg8zAAIQNgACEO4AAhEQAAIROgACEVwAAhGtAAISvwACEs8AAhLfAAIS7wACEv8AAhO4AAIUYAACFZEAAhYGAAIWdwACFvwAAhdGAAIYIgACGcoAAhn5AAIalAACGx0AAht6AAIbwAACG/QAAhwmAAIcOAACHEoAAhxjAAIcfQACHJYAAhzIAAIc+gACHToAAh2LAAIdnQACHa8AAh3BAAIeZwACHowAAh6cAAIetAACHv0AAh8VAAIfLwACH6sAAiAmAAIgVwACIG8AAiB/AAIhEQACIcEAAiIXAAIigwACIpsAAiKxAAIisQACIskAAiLhAAEAAAAKAUgDugACREZMVAD2bGF0bgAOAOwAA0NBVCAAok1PTCAAXFJPTSAAFgAA//8AIAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAAP//ACAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEwAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhAAD//wAgAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAEAAAAAP//AB8AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiYWFsdAJqY2FsdAJeY2FzZQJYY2NtcAJGY3YwMQIyY3YwMgIeY3YwMwIKY3YwNAH2Y3YwNQHiY3YwNgHOY3YwNwG6Y3YwOAGmY3YwOQGSY3YxMAF+Y3YxMQFqZGxpZwFkZG5vbQFeZnJhYwFAbG9jbAE6bG9jbAE0bG9jbAEubnVtcgEob3JkbgEgcG51bQEac2FsdAEUc2luZgEOc3MwMQEEc3MwMgD6c3MwMwDwc3MwNADmc3VicwDgc3VwcwDadG51bQDUemVybwDOAAAAAQBTAAAAAQBSAAAAAQBUAAAAAQBVAAYAAQBeAAABAwAGAAEAXAAAAQIABgABAFsAAAEBAAYAAQBaAAABAAAAAAEAagAAAAEAWQAAAAEAUQAAAAIAVgBYAAAAAQAsAAAAAQANAAAAAQAOAAAAAQAPAAAADQASABQAFgAYABoAHAAeACAAIgAkACYAKAAqAAAAAQAtAAAAAQBQAAYAAQBpAAABDgAAAAAAAAAAAAAABgABAGgAAAENAAAAAAAAAAAAAAAGAAEAZwAAAQwAAAAAAAAAAAAAAAYAAQBmAAABCwAAAAAAAAAAAAAABgABAGUAAAEKAAAAAAAAAAAAAAAGAAEAZAAAAQkAAAAAAAAAAAAAAAYAAQBjAAABCAAAAAAAAAAAAAAABgABAGIAAAEHAAAAAAAAAAAAAAAGAAEAYQAAAQYAAAAAAAAAAAAAAAYAAQBgAAABBQAAAAAAAAAAAAAABgABAF8AAAEEAAAAAAAAAAAAAAAAAAcAAgAEAAUABwAIAAoACwAAAAEALgAAAAQALwAwADMANAAAAAIAAAABAGtPakuySdxJtjkEOOI4yDWKNW41VDKOMeYx0DG4MbgxdjFWMTYvFC8GLtAuri6CLq4uZC6uLkQuri4iLq4t/i6uLdguri2wLq4thi6uLVouri0SLMAsniyQLDor7Cs8GfoZhBlqGUgXrgw8DAoLWAtYC1gLWAtYC1gLWAtYCu4K7gruCu4K7gruCu4K7gruCu4KvAqqCqoKqgqqCqoKqgqqCmAKHgnQCa4IbAfGB4gHZgdEBjgF5gU0BBYD7gNcAzoDGAL+AuQCpgPuApICNAISAfoBlgDYAAEAAAABAAgAAgBcACsF9AX1BfYF9wX4BfkF+gX7BfwF/QX+Bf8GAAYBBgIGAwYEBgUGBgYHBggGCQYKBgsGDAYNBg4GDwYQBhEGEgYTBhQGFQYWBhcGGAYZBhoGGwYeBhwGHQABACsB+AI/AkYCUgJkAoUCigKUAqcCwwLLAtMC8AL3AwcDOwNBA0UDYwN0A4MDpAOoA7EDtgPNBQ4FDwUQBRIFEwUUBRYFFwUYBRkFOwU8BT0FPwWSBZQFlQABAAAAAQAIAAIARgAgAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4CIAACAAMB+AIUAAACFgIXAB0CGQIZAB8AAQAAAAEACAABAAYACgACAAEAjQCWAAAAAQAAAAEACAACAA4ABAUcBSwHLgdpAAEABAUSBSMHJQdgAAEAAAABAAgAAgBGACAA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AQABAQECAQMBBAEFAQYBBwEIAAIAAgDFANYAAADbAOgAEgABAAAAAQAIAAEABgABAAEAAQNyAAEAAAABAAgAAgAgAA0C4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gACAAMC0wLWAAAC2ALYAAQC2gLhAAUAAQAAAAEACAABAAYABgABAAQFGQUpBysHZgABAAAAAQAIAAEABgAIAAEABAUWBSYHKAdjAAEAAAABAAgAAgAOAAQFHQUtBy8HagABAAQFEwUkByYHYQABAAAAAQAIAAIADgAEBRsFKwctB2gAAQAEBQ8FIQcjB14AAQAAAAEACAACAGIALgDpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8BAAEBAQIBAwEEAQUBBgEHAQgC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gNzAAIABgDFANYAAADbAOgAEgLTAtYAIALYAtgAJALaAuEAJQNyA3IALQABAAAAAQAIAAIBLgANA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IABgAAAAEACAADAAAAAQEGAAEAEgABAAAAXQACACgB+AIUAAACFgIXAB0CGQIfAB8CRgJeACYCYAKDAD8CigKTAGMDBwM6AG0DQQNDAKEDYwNxAKQEJQQlALMEJwRAALQEQwRRAM4EgQSGAN0EmgSbAOMEnQS0AOUEvgS+AP0E0gTSAP4E4wTjAP8E5QTlAQAE6ATpAQEE7wTvAQMFCAUIAQQFHgUeAQUH1AfVAQYIGAgZAQgITQhNAQoIaghrAQsIcwhzAQ0IiAiIAQ4IpAinAQ8IsAiwARMI2gjbARQJJAkmARYJKgkqARkJOQk5ARoJgQmCARsJhQmFAR0JvwnAAR4JxgnGASAJ7gnvASEAAgACA0UDRwAAA0wDVQADAAEAAAABAAgAAgBqADIA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AQABAQECAQMBBAEFAQYBBwEIAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4DcwUaBSoHLAdnAAIACgDFANYAAADbAOgAEgLTAtYAIALYAtgAJALaAuEAJQNyA3IALQUOBQ4ALgUgBSAALwciByIAMAddB10AMQABAAAAAQAIAAIAJgAQBRwFHQUeBR8FLAUtBS4FLwcuBy8HMAcxB2kHagdrB2wAAQAQBRIFEwUWBRkFIwUkBSYFKQclByYHKAcrB2AHYQdjB2YAAQAAAAEACAACAKAATQCXAJgAmQCaAJsAnACdAJ4AnwCgAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4C4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiBRsFHAUdBR4FHwUrBSwFLQUuBS8AAgAQAI0AlgAAAfgCFAAKAhYCFwAnAtMC1gApAtgC2AAtAtoC4QAuA0UDRwA2A0wDVQA5BQ8FDwBDBRIFEwBEBRYFFgBGBRkFGQBHBSEFIQBIBSMFJABJBSYFJgBLBSkFKQBMAAQAAAABAAgAAQAUAAEACAABAAQGoQADAwcFfAABAAEBKwABAAAAAQAIAAIADgAEBboFuwW6BbsAAQAEAAIBQAH4AwcABgAAAAIAJAAKAAMAASdeAAEAEgAAAAEAAABXAAEAAgFAAwcAAwABJ0QAAQASAAAAAQAAAFcAAQACAAIB+AABAAAAAQAIAAIBRABMBfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gX/Bf8GAAYBBgIGAwYEBgUGBQYGBgcGCAYJBgoGCwYMBg0GDgYPBhAGEQYSBhMGFAYVBhYGFwYOBg8GEQYSBhQGFwYOBg8GEAYRBhIGEwYUBhUGFgYXBg4GDwYRBhIGFAYXBhgGGQYaBhsGGAYZBhoGGwYdBh0GHgYcBh0GHgYcBh0AAQAAAAEACAACAJ4ATAXJBcoFywXMBc0FzgXPBdAF0QXSBdMF1AXUBdUF1gXXBdgF2QXaBdoF2wXcBd0F3gXfBeAF4QXiBeMF5AXlBeYF5wXoBekF6gXrBewF4wXkBeYF5wXpBewF4wXkBeUF5gXnBegF6QXqBesF7AXjBeQF5gXnBekF7AXtBe4F7wXwBe0F7gXvBfAF8gXyBfMF8QXyBfMF8QXyAAEATAH4Aj8CRgJSAmQChQKKApQCpwLDAssC0wLiAvAC9wMHAzsDQQNFA1YDYwN0A4MDpAOoA7EDtgPNBQ4FDwUQBRIFEwUUBRYFFwUYBRkFGgUbBRwFHQUeBR8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwU7BTwFPQU/BUQFRQVGBUcFUQVeBZIFlAWVBZ8FoQWiAAEAAAABAAgAAgAOAAQFGgUqBywHZwABAAQFDgUgByIHXQABAAAAAQAIAAIAJAAPBSAFIQUiBSMFJAUlBSYFJwUoBSkFLAWDBYQFhQWGAAEADwUOBQ8FEAUSBRMFFAUWBRcFGAUZBRwFewV8BX8FggABAAAAAQAIAAIAJAAPBQ4FDwUQBRIFEwUUBRYFFwUYBRkFHAV7BXwFfwWCAAIAAwUgBSkAAAUsBSwACgWDBYYACwAEAAAAAQAIAAEANgAEACwAIgAYAA4AAQAEBToAAgUzAAEABAU5AAIFMQABAAQFOgACBTgAAQAEBTkAAgU1AAEABAUxBTMFNQU4AAEAAAABAAgAAgPEAAIFowWuAAEAAAABAAgAAgAWAAgFRAVFBUYFRwVIBUkFowWuAAEACAU7BTwFPQU/BUEFQgWWBa0AAQAAAAEACAACBy4ALgVEBUUFRgVHBUgFSQVKBV4FXwVgBWEFYgVjBWQFZQVmBWcFaAWABZsFnAWdBZ4FnwWgBaEFogWjBaQFpQWmBacGvwbABsEGwgbDBsQGxQbGBscGyAbJBsoGywbMAAEAAAABAAgAAgBkAC8FowVEBUUFRgVHBUgFSQVKBV4FXwVgBWEFYgVjBWQFZQVmBWcFaAWABZsFnAWdBZ4FnwWgBaEFogWjBaQFpQWmBacGvwbABsEGwgbDBsQGxQbGBscGyAbJBsoGywbMAAIACwOxA7EAAAU7BT0AAQU/BT8ABAVBBUMABQVRBVEACAVTBVUACQVXBV0ADAV/BX8AEwWOBZoAFAaoBrEAIQa2BrkAKwABAAAAAQAIAAIAFgAIBaMFRQVeBV8FYQWABaMFrgABAAgDsQU8BVEFUwVVBX8FlgWtAAYAAAA/CzwLIAsGCuwK0ghcCEgIMggaBt4GwgauBpoGhAZ0BmIGTgY8BigF2gXKBbgFqgWaBYgELAQaBAYD8APeA8oDtAOcA4IDbgNYA0ADJgMKAvQC3ALCAqYCiAJCAiYCEAH4AeIBygGwAZgBfgFiAUgBMgEaAQQA7ADSALoAoACEAAMAAwZQBlANJAABANgAAwZQBlANJAABAAAAPQADAAIGNA0IAAEAvAADBjQGNA0IAAEAAAA8AAMAAQzuAAEAogADBhoGGgzuAAEAAAA7AAMAAwYCBgIM1gABAIoAAgYCDNYAAQAAADoAAwACBegMvAABAHAAAgXoDLwAAQAAADkAAwABDKQAAQBYAAIF0AykAAEAAAA4AAMAAwW6BboMjgABAEIAAQyOAAEAAAA3AAMAAgWiDHYAAQAqAAEMdgABAAAANgADAAEMYAABABQAAQxgAAEAAAA1AAEAAQOxAAMAAwVyBXIMRgABANgAAwVyBXIMRgABAAAATwADAAIFVgwqAAEAvAADBVYFVgwqAAEAAABOAAMAAQwQAAEAogADBTwFPAwQAAEAAABNAAMAAwUkBSQL+AABAIoAAgUkC/gAAQAAAEwAAwACBQoL3gABAHAAAgUKC94AAQAAAEsAAwABC8YAAQBYAAIE8gvGAAEAAABKAAMAAwTcBNwLsAABAEIAAQuwAAEAAABJAAMAAgTEC5gAAQAqAAELmAABAAAASAADAAELggABABQAAQuCAAEAAAA1AAEAAgWWBa0AAwACAB4AFAABCEYAAAABAAAASAACAAEFRAVJAAAAAgAGBU0FTgAABWkFfgACBYIFggAYBakFqQAZBawFrQAaBmoGagAcAAMAAAABA2AABwNgA2ADYANgBEwETAG4AAEAAABHAAMAAAABA0IABgNCA0IDQgQuBC4BmgABAAAARgADAAAAAQMmAAUDJgMmBBIEEgF+AAEAAABFAAMAAAABAwwABAMMA/gD+AFkAAEAAABEAAMAAAABAvQAAwPgA+ABTAABAAAAQwADAAAAAQLeAAYC3gLeAt4C3gPKATYAAQAAAEIAAwAAAAECwgAFAsICwgLCA64BGgABAAAAQQADAAAAAQKoAAQCqAKoA5QBAAABAAAAQAADAAAAAQKQAAMCkAN8AOgAAQAAAD8AAwAAAAECegACA2YA0gABAAAAPgADAAAAAQJmAAUCZgJmAmYCZgC+AAEAAAA9AAMAAAABAkwABAJMAkwCTACkAAEAAAA8AAMAAAABAjQAAwI0AjQAjAABAAAAOwADAAAAAQIeAAICHgB2AAEAAAA6AAMAAAABAgoAAQBiAAEAAAA5AAMAAwLkAuQAUAABAfgAAAABAAAAOAADAAICzgA6AAEB4gAAAAEAAAA3AAMAAQAmAAEBzgAAAAEAAAA2AAMAAgKoBlwAAQZcAAICqAAUAAAAAgA2AAIACQAAAAsAlgAIAKEA1wCUANkA6ADLAQkBhwDbAYoB6wFaAe0B9wG8A0QDRAHHA8kDywHIA9kEJAHLBO4FCwIXBQ4FFQI1BRUFOgI9BUQFSgJjBU4FTgJqBV4FaAJrBYAFgAJ2BZsFpwJ3Bb4FvgKEBlIGYwKFBqEGoQKXBr8GzAKYBs8G0gKmBtcG2QKqBt8G5wKtBuoG7wK2BvEG+QK8B34HjwLFB5IHkgLXB5QHmQLYB5sHmwLeB54HnwLfB6MHowLhB6cHswLiB7UHvALvB8MHzAL3CGMIYwMBCHkIeQMCCNQI1QMDCNcI2AMFCNwI3AMHCN4I3gMICR8JHwMJCSEJIQMKCScJJwMLCSkJKQMMCS0JLQMNCTAJMgMOCTcJOAMRCToJOgMTCTwJPAMUCXsJewMVCX0JfQMWCX8JfwMXAAMAAAABAGAAAwBgAGAC5gAAAAMAAAABAE4AAgBOAtQAAAADAAAAAQA+AAECxAAAAAMAAwAwADACtgABADAAAAAAAAMAAgAeAqQAAQAeAAAAAAADAAEClAABAA4AAAAAAAIACgU7BT0AAAU/BT8AAwVBBUMABAVRBVEABwVTBVUACAVXBV0ACwV/BX8AEgWOBZoAEwaoBrEAIAa2BrkAKgADAAQAyARwAkYEYAABBGAAAAAAAAMAAwC0AjIETAABBEwAAAAAAAMAAAABBDoABACiBEoCIAQ6AAAAAwAAAAEEJgADAI4CDAQmAAAAAwABAfoAAQQUAAEAfAAAAAMAAgQEAeoAAQQEAAMAUABQAGwAAAADAAID7gHUAAED7gACADoAVgAAAAMAAQHAAAED2gADACYAJgBCAAAAAwABAawAAQPGAAIAEgAuAAAAAgABBpEGoAAAAAMAAgOqAZAAAQOqAAEAEgAAAAIAMQACAAkAAAALAJYACAChANcAlADZAOgAywEJAYcA2wGKAesBWgHtAfcBvANEA0QBxwPJA8sByAPZBCQBywTuBQsCFwUOBRUCNQUVBToCPQVOBU4CYwW+Bb4CZAZSBmMCZQahBqECdwbPBtICeAbXBtkCfAbfBucCfwbqBu8CiAbxBvkCjgd+B48ClweSB5ICqQeUB5kCqgebB5sCsAeeB58CsQejB6MCswenB7MCtAe1B7wCwQfDB8wCyQhjCGMC0wh5CHkC1AjUCNUC1QjXCNgC1wjcCNwC2QjeCN4C2gkfCR8C2wkhCSEC3AknCScC3QkpCSkC3gktCS0C3wkwCTIC4Ak3CTgC4wk6CToC5Qk8CTwC5gl7CXsC5wl9CX0C6Al/CX8C6QADAAYCfgJ+An4CfgJuAFQAAQJuAAAAAAADAAUCZgJmAmYCVgA8AAECVgAAAAAAAwAEAlACUAJAACYAAQJAAAAAAAADAAMCPAIsABIAAQIsAAAAAAACAFkB+AIUAAACFgIfAB0CPwJiACcCZAKDAEsChQKsAGsCrgKzAJMCtQK6AJkCvAK+AJ8CwALDAKICxQLhAKYC7wNDAMMDRQNFARgDRwNLARkDTQNVAR4DVwNXAScDWQNZASgDYwNyASkDdAOGATkDiAPIAUwDzQPYAY0EJQTtAZkF/QX9AmIGpgamAmMHkAeRAmQHkweTAmYHmgeaAmcHnAedAmgHpAelAmoHtAe0AmwH1AfUAm0H1gfWAm4H2AfYAm8H2wfbAnAH7QfvAnEH/wf/AnQIBggGAnUIEAgQAnYIFQgVAncIGAgdAngIIAgmAn4ILQg0AoUIOAg4Ao0IQghEAo4IRghNApEIUAhRApkIVwhXApsIWghaApwIZQhlAp0IZwhnAp4IaghuAp8IcwhzAqQIewh7AqUIfwh/AqYIgQiBAqcIiAiIAqgIoQihAqkIowinAqoIsAiwAq8ItQi1ArAItwi5ArEIywjMArQIzgjOArYI1gjWArcI2QjbArgI3QjdArsI4AjjArwJIAkgAsAJIgkmAsEJKAkoAsYJKgkrAscJLgkvAskJMwkzAssJOQk5AswJOwk7As0JPQk9As4JeQl6As8JfAl8AtEJfgl+AtIJgAmHAtMJiQmJAtsJkwmTAtwJmgmaAt0JxgnGAt4J3gneAt8J4AnhAuAJ5QnmAuIJ6AnoAuQJ6gnvAuUJ8QnyAusAAQAGBTsFPAU9BT8FQQVCAAIACQACAoMAAAKFBmgCggZqBmsGZgZtBnEGaAZzB7wGbQe+B/cHtwf5CAEH8QgECE0H+ghPCfIIRAADAAIAhgBiAAEAFAAAAAEAAAA1AAEAAQU8AAMAAQBIAAEAFAABAGQAAQAAADUAAQABBVUAAwABAC4AAQAUAAEASgABAAAANQABAAEFUwADAAEAFAABApIAAQAwAAEAAAA1AAEAAgV/BYAAAwAAAAEAMAACABwAFAABAAAANQABAAIFPAVFAAEACAVRBVMFVQVeBV8FYQWVBaIAAQABBX8ABAAAAAEACAABAX4ACAE8AQwAVgBOAEQAOgAoABYAAgAMAAYGygACBZwGygACBY8AAgAMAAYGyQACBZwGyQACBY8AAQAEBrcAAgWPAAEABAa2AAIFjwADAN4A1gDKABIArACiAJgAjgCEAHoAcABmAF4AVgBOAEYAPgA2AC4AJgECAPYGywADBZ8FnAbLAAMFnwWPBsMAAwWfBZ8GwwADBZ8FkgbLAAMFkgWcBssAAwWSBY8GwwADBZIFnwbDAAMFkgWSBswABAWfBZ8FnAbMAAQFnwWfBY8GzAAEBZ8FkgWcBswABAWfBZIFjwbMAAQFkgWfBZwGzAAEBZIFnwWPBswABAWSBZIFnAbMAAQFkgWSBY8ABQAoACAAGAASAAwGxwACBZwGsAACBY8GyAADBZ8FnAbIAAMFkgWcBrEAAwWSBY8ABwA4ADAAKAAiABwAFgAQBsoAAgbFBrcAAgauBskAAgbEBrYAAgatBrgAAwWSBY8GrAADBZIFkga5AAQFkgWSBY8AAQAIBY4FkgWbBZ8GqAapBr8GwAAEAAAAAQAIAAEAfgABAAgAAgAMAAYGvwACBV4GvwACBVEABAAAAAEACAABAIIAAQAIAAEABAaoAAIFUQAGAAAABABQADIAIAAOAAMAAAACADwANAAAAAEAAAAyAAMAAAACAFAASgAAAAEAAAAxAAMAAAACABgAEAABAC4AAAABAAIFUQVeAAEAAQWbAAMAAAACACAAGgABABAAAAACAAEFDgUvAAAAAQABBVEAAQABBY4ABAAAAAEACAABESYACA6eDiAOIA3IDXANcAvAABYBAAugC5YLjAuCC3gLbgtkC1oLUAtGCzwLMgsoCx4LFAsKCwAK9grsCuIK2ArOCsQKugqwCqYKnAqSCogKfgp0CmoKYApWCkwKQgo4Ci4KJAoaChAKBgn8CfIJ6AneCdQJygnACbYJrAmiCZgJjgmECXoJcAlmCVwJUglICT4JNAkqCSAJFgkMCQII+AjuCOQI2gjQCMYIvAiyCKgIngiUCIoIgAh2CGwIYghYCE4IRAg6CDAIJggcCBIICAf+B/QH6gfgB9YHzAfCB7gHrgekB5oHkAeGB3wHcgdoB14HVAdKB0AHNgcsByIHGAcOBwQG+gbwBuYG3AbSBsgGvga0BqoGoAaWBowGggZ4Bm4GZAZaBlAGRgY8BjIGKAYeBhQGCgYABfYF7AXiBdgFzgXEBboFsAWmBZwFkgWIBX4FdAVqBWAFVgVMBUIFOAUuBSQFGgUQBQYE/ATyBOgE3gTUBMoEwAS2BKwEogSYBI4EhAR6BHAEZgRcBFIESAQ+BDQEKgQgBBYEDAQCA/gD7gPkA9oD0APGA7wDsgOoA54DlAOKA4ADdgNsA2IDWANOA0QDOgMyAyoDIgMaAxIDCgMCAvoC8gLqAuIC2gLSAsoCwgK6ArICqgKiApoCkgKKAoICegJyAmoCYgJaAlICSgJCAjoCMgIqAiICGgIUAg4CCAICBsAAAgVfBsAAAgVTBsAAAgVhBsAAAgVVBsAAAwVeBV4GwAADBV4FUQbAAAMFXgVfBsAAAwVeBVMGwAADBV4FYQbAAAMFXgVVBsAAAwVRBV4GwAADBVEFUQbAAAMFUQVfBsAAAwVRBVMGwAADBVEFYQbAAAMFUQVVBsAAAwVfBV4GwAADBV8FUQbAAAMFXwVfBsAAAwVfBVMGwAADBV8FYQbAAAMFXwVVBsAAAwVTBV4GwAADBVMFUQbAAAMFUwVfBsAAAwVTBVMGwAADBVMFYQbAAAMFUwVVBsAAAwVhBV4GwAADBWEFUQbAAAMFYQVfBsAAAwVhBVMGwAADBWEFYQbAAAMFYQVVBsAAAwVVBV4GwAADBVUFUQbAAAMFVQVfBsAAAwVVBVMGwAADBVUFYQbAAAMFVQVVBsEABAVeBV4FXgbBAAQFXgVeBVEGwQAEBV4FXgVfBsEABAVeBV4FUwbBAAQFXgVeBWEGwQAEBV4FXgVVBsEABAVeBVEFXgbBAAQFXgVRBVEGwQAEBV4FUQVfBsEABAVeBVEFUwbBAAQFXgVRBWEGwQAEBV4FUQVVBsEABAVeBV8FXgbBAAQFXgVfBVEGwQAEBV4FXwVfBsEABAVeBV8FUwbBAAQFXgVfBWEGwQAEBV4FXwVVBsEABAVeBVMFXgbBAAQFXgVTBVEGwQAEBV4FUwVfBsEABAVeBVMFUwbBAAQFXgVTBWEGwQAEBV4FUwVVBsEABAVeBWEFXgbBAAQFXgVhBVEGwQAEBV4FYQVfBsEABAVeBWEFUwbBAAQFXgVhBWEGwQAEBV4FYQVVBsEABAVeBVUFXgbBAAQFXgVVBVEGwQAEBV4FVQVfBsEABAVeBVUFUwbBAAQFXgVVBWEGwQAEBV4FVQVVBsEABAVRBV4FXgbBAAQFUQVeBVEGwQAEBVEFXgVfBsEABAVRBV4FUwbBAAQFUQVeBWEGwQAEBVEFXgVVBsEABAVRBVEFXgbBAAQFUQVRBVEGwQAEBVEFUQVfBsEABAVRBVEFUwbBAAQFUQVRBWEGwQAEBVEFUQVVBsEABAVRBV8FXgbBAAQFUQVfBVEGwQAEBVEFXwVfBsEABAVRBV8FUwbBAAQFUQVfBWEGwQAEBVEFXwVVBsEABAVRBVMFXgbBAAQFUQVTBVEGwQAEBVEFUwVfBsEABAVRBVMFUwbBAAQFUQVTBWEGwQAEBVEFUwVVBsEABAVRBWEFXgbBAAQFUQVhBVEGwQAEBVEFYQVfBsEABAVRBWEFUwbBAAQFUQVhBWEGwQAEBVEFYQVVBsEABAVRBVUFXgbBAAQFUQVVBVEGwQAEBVEFVQVfBsEABAVRBVUFUwbBAAQFUQVVBWEGwQAEBVEFVQVVBsEABAVfBV4FXgbBAAQFXwVeBVEGwQAEBV8FXgVfBsEABAVfBV4FUwbBAAQFXwVeBWEGwQAEBV8FXgVVBsEABAVfBVEFXgbBAAQFXwVRBVEGwQAEBV8FUQVfBsEABAVfBVEFUwbBAAQFXwVRBWEGwQAEBV8FUQVVBsEABAVfBV8FXgbBAAQFXwVfBVEGwQAEBV8FXwVfBsEABAVfBV8FUwbBAAQFXwVfBWEGwQAEBV8FXwVVBsEABAVfBVMFXgbBAAQFXwVTBVEGwQAEBV8FUwVfBsEABAVfBVMFUwbBAAQFXwVTBWEGwQAEBV8FUwVVBsEABAVfBWEFXgbBAAQFXwVhBVEGwQAEBV8FYQVfBsEABAVfBWEFUwbBAAQFXwVhBWEGwQAEBV8FYQVVBsEABAVfBVUFXgbBAAQFXwVVBVEGwQAEBV8FVQVfBsEABAVfBVUFUwbBAAQFXwVVBWEGwQAEBV8FVQVVBsEABAVTBV4FXgbBAAQFUwVeBVEGwQAEBVMFXgVfBsEABAVTBV4FUwbBAAQFUwVeBWEGwQAEBVMFXgVVBsEABAVTBVEFXgbBAAQFUwVRBVEGwQAEBVMFUQVfBsEABAVTBVEFUwbBAAQFUwVRBWEGwQAEBVMFUQVVBsEABAVTBV8FXgbBAAQFUwVfBVEGwQAEBVMFXwVfBsEABAVTBV8FUwbBAAQFUwVfBWEGwQAEBVMFXwVVBsEABAVTBVMFXgbBAAQFUwVTBVEGwQAEBVMFUwVfBsEABAVTBVMFUwbBAAQFUwVTBWEGwQAEBVMFUwVVBsEABAVTBWEFXgbBAAQFUwVhBVEGwQAEBVMFYQVfBsEABAVTBWEFUwbBAAQFUwVhBWEGwQAEBVMFYQVVBsEABAVTBVUFXgbBAAQFUwVVBVEGwQAEBVMFVQVfBsEABAVTBVUFUwbBAAQFUwVVBWEGwQAEBVMFVQVVBsEABAVhBV4FXgbBAAQFYQVeBVEGwQAEBWEFXgVfBsEABAVhBV4FUwbBAAQFYQVeBWEGwQAEBWEFXgVVBsEABAVhBVEFXgbBAAQFYQVRBVEGwQAEBWEFUQVfBsEABAVhBVEFUwbBAAQFYQVRBWEGwQAEBWEFUQVVBsEABAVhBV8FXgbBAAQFYQVfBVEGwQAEBWEFXwVfBsEABAVhBV8FUwbBAAQFYQVfBWEGwQAEBWEFXwVVBsEABAVhBVMFXgbBAAQFYQVTBVEGwQAEBWEFUwVfBsEABAVhBVMFUwbBAAQFYQVTBWEGwQAEBWEFUwVVBsEABAVhBWEFXgbBAAQFYQVhBVEGwQAEBWEFYQVfBsEABAVhBWEFUwbBAAQFYQVhBWEGwQAEBWEFYQVVBsEABAVhBVUFXgbBAAQFYQVVBVEGwQAEBWEFVQVfBsEABAVhBVUFUwbBAAQFYQVVBWEGwQAEBWEFVQVVBsEABAVVBV4FXgbBAAQFVQVeBVEGwQAEBVUFXgVfBsEABAVVBV4FUwbBAAQFVQVeBWEGwQAEBVUFXgVVBsEABAVVBVEFXgbBAAQFVQVRBVEGwQAEBVUFUQVfBsEABAVVBVEFUwbBAAQFVQVRBWEGwQAEBVUFUQVVBsEABAVVBV8FXgbBAAQFVQVfBVEGwQAEBVUFXwVfBsEABAVVBV8FUwbBAAQFVQVfBWEGwQAEBVUFXwVVBsEABAVVBVMFXgbBAAQFVQVTBVEGwQAEBVUFUwVfBsEABAVVBVMFUwbBAAQFVQVTBWEGwQAEBVUFUwVVBsEABAVVBWEFXgbBAAQFVQVhBVEGwQAEBVUFYQVfBsEABAVVBWEFUwbBAAQFVQVhBWEGwQAEBVUFYQVVBsEABAVVBVUFXgbBAAQFVQVVBVEGwQAEBVUFVQVfBsEABAVVBVUFUwbBAAQFVQVVBWEGwQAEBVUFVQVVACYBpgGcAZIBiAF+AXQBagFgAVYBTAFCATgBLgEkARoBEAEGAPwA8gDoAN4A1ADKAMAAtgCsAKIAmgCSAIoAggB6AHIAagBiAFoAVABOBqkAAgVTBqkAAgVVBqkAAwVRBVEGqQADBVEFUwapAAMFUQVVBqkAAwVTBVEGqQADBVMFUwapAAMFUwVVBqkAAwVVBVEGqQADBVUFUwapAAMFVQVVBqoABAVRBVEFUQaqAAQFUQVRBVMGqgAEBVEFUQVVBqoABAVRBVMFUQaqAAQFUQVTBVMGqgAEBVEFUwVVBqoABAVRBVUFUQaqAAQFUQVVBVMGqgAEBVEFVQVVBqoABAVTBVEFUQaqAAQFUwVRBVMGqgAEBVMFUQVVBqoABAVTBVMFUQaqAAQFUwVTBVMGqgAEBVMFUwVVBqoABAVTBVUFUQaqAAQFUwVVBVMGqgAEBVMFVQVVBqoABAVVBVEFUQaqAAQFVQVRBVMGqgAEBVUFUQVVBqoABAVVBVMFUQaqAAQFVQVTBVMGqgAEBVUFUwVVBqoABAVVBVUFUQaqAAQFVQVVBVMGqgAEBVUFVQVVACsDogOYA4QDegNmA1wDUgNIAz4DNAMqAyADDAMCAu4C5ALQAsYCvAKyAqgCngKUAooCdgJsAlgCTgI6AjACJgIcAhICCAH+AfQB5AHcAcwBxAG0AawBIgArA0oDQAMsAyIDDgMEAvoC8ALmAtwC0gLIArQCqgKWAowCeAJuAmQCWgJQAkYCPAIyAh4CFAIAAfYB4gHYAc4BxAG6AbABpgGcAYwBhAF0AWwBXAFUAUgAOAL8AvIC6ALeAtQCygLAArYCrAKiApgCjgKEAnoCcAJmAlwCUgJIAj4CNAIqAiACFgIMAgIB+AHuAeQB2gHQAcYBvAGyAagBngGUAYoBgAF2AWwBYgFYAU4BRAE8ATQBLAEkARwBFAEMAQQA/AB4AHIGxQACBZwGrgACBY8AOAJ+AnQCagJgAlYCTAJCAjgCLgIkAhoCEAIGAfwB8gHoAd4B1AHKAcABtgGsAaIBmAGOAYQBegFwAWYBXAFSAUgBPgE0ASoBIAEWAQwBAgD4AO4A5ADaANAAxgC+ALYArgCmAJ4AlgCOAIYAfgB4AHIGxAACBZwGrQACBY8GxQADBV4FnAbFAAMFUQWcBq4AAwVRBY8GxQADBV8FnAbFAAMFUwWcBq4AAwVTBY8GxQADBWEFnAbFAAMFVQWcBq4AAwVVBY8GxgAEBV4FXgWcBsYABAVeBVEFnAbGAAQFXgVfBZwGxgAEBV4FUwWcBsYABAVeBWEFnAbGAAQFXgVVBZwGxgAEBVEFXgWcBsYABAVRBVEFnAavAAQFUQVRBY8GxgAEBVEFXwWcBsYABAVRBVMFnAavAAQFUQVTBY8GxgAEBVEFYQWcBsYABAVRBVUFnAavAAQFUQVVBY8GxgAEBV8FXgWcBsYABAVfBVEFnAbGAAQFXwVfBZwGxgAEBV8FUwWcBsYABAVfBWEFnAbGAAQFXwVVBZwGxgAEBVMFXgWcBsYABAVTBVEFnAavAAQFUwVRBY8GxgAEBVMFXwWcBsYABAVTBVMFnAavAAQFUwVTBY8GxgAEBVMFYQWcBsYABAVTBVUFnAavAAQFUwVVBY8GxgAEBWEFXgWcBsYABAVhBVEFnAbGAAQFYQVfBZwGxgAEBWEFUwWcBsYABAVhBWEFnAbGAAQFYQVVBZwGxgAEBVUFXgWcBsYABAVVBVEFnAavAAQFVQVRBY8GxgAEBVUFXwWcBsYABAVVBVMFnAavAAQFVQVTBY8GxgAEBVUFYQWcBsYABAVVBVUFnAavAAQFVQVVBY8AAQAIBVEFUwVVBV4FXwVhBY4FmwABAAAAAQAIAAIAYgAuBUQFRQVGBUcFSAVJBUoFXgVfBWAFYQViBWMFZAVlBWYFZwWABZsFnAWdBZ4FnwWgBaEFogWjBaQFpQWmBacFrga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswAAgALBTsFPQAABT8FPwADBUEFQwAEBVEFUQAHBVMFVQAIBVcFXAALBX8FfwARBY4FmgASBa0FrQAfBqgGsQAgBrYGuQAqAAEAAAABAAgAAgAkAA8GKgYrBiwGLQYuBi8GMAYxBjIGMwY3BjgGNgY0BjUAAQAPBQ4FDwUQBRIFEwUUBRYFFwUYBRkFOwU8BZIFlAWVAAEAAAABAAgAAgAoABEFvAW9BjkGOgY7BjwGPQY+Bj8GQAZBBkIGRgZHBkUGQwZEAAEAEQKnAvcFDgUPBRAFEgUTBRQFFgUXBRgFGQU7BTwFkgWUBZUAAQAAAAEACAABACIADQAGAAAAAQAIAAMAAQJKAAEAFAABAfgAAQAAACsAAQABBpEAAQAAAAEACAACAC4AFAYfBiAGIQYiBiMGJAYlBiYGJwYoBh8GIAYhBiIGIwYkBiUGJgYnBigAAgAEBQ4FEAAABRIFFAADBRYFGQAGBg4GFwAKAAYAAAACACYACgADAAEALgABABIAAAABAAAAKQACAAEGDgYXAAAAAwABABIAAQG4AAAAAQAAACkAAgACBh8GMwAABlcGVwAVAAYAAAABAAgAAwAA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A48AAgZ5A4oAAgZ4AAgAPAA2ADAAKgAkAB4AGAASA4AAAghiA34AAgaEA38AAgaLA4IAAgZ9A30AAgZ3A4EAAgaJA3sAAgaIA3wAAgaCAAkARAA+ADgAMgAsACYAIAAaABQDawACBoQDbAACBosDagACBncDZwACBoEDaAACBogDbgACB+gDaQACBoIDbQACB74DZgACBngACAA8ADYAMAAqACQAHgAYABIDVQACCGIDUgACBoQDUwACBosDUAACBnsDTgACBncDTwACBoIDUQACBn8DTQACBngAAgAMAAYDPwACBoQDPgACBngABQAkAB4AGAASAAwDKQACBoMDKAACBoADJwACBnoDKgACBosDJgACBngAAQAEAysAAgZ4ABoAzADGAMAAugC0AK4AqACiAJwAlgCQAIoAhAB+AHgAcgBsAGYAYABaAFQATgBIAEIAPAA2AxgAAgjBAxwAAgi+AwkAAgaDAxsAAgi8AxMAAgaHAx0AAghfAw8AAgZ8Ax4AAghbAyAAAgaAAwwAAgZ6AxkAAgaEAxoAAggRAx8AAgaLAwgAAgZ9AxcAAggOAxUAAgZ7AyQAAgfzAw4AAgaBAyMAAgfyAyIAAgfxAyEAAgfwAxIAAgaCAxAAAgZ+AxYAAgZ/AxEAAgZ5Aw0AAgZ4AAkARAA+ADgAMgAsACYAIAAaABQC+AACBoMDBAACCGIDAQACBnoDAgACBoQDAwACBosC/wACBncDBQACBokDAAACBoIC/gACBngAAwAUAA4ACAL1AAIGhAL2AAIGiwL0AAIGeAAHADQALgAoACIAHAAWABAC4AACCGIC2gACBoQC3gACBosC3AACBncC4QACBokC3QACBoIC2wACBngABQAkAB4AGAASAAwC0QACCGIC0AACBosCzQACBncCzgACBoICzwACBngAAgAMAAYCxgACBoECxwACBoIADABcAFYAUABKAEQAPgA4ADIALAAmACAAGgKrAAIGgwKyAAIGfAK5AAIGgAKvAAIGegKpAAIGfQKqAAIICAK3AAIGewKxAAIGgQK2AAIGggKzAAIGfgK4AAIGfwKwAAIGeAADABQADgAIAqwAAgaQArUAAgaHAroAAgaLAAcANAAuACgAIgAcABYAEAKlAAIIYgKhAAIGhAKiAAIGiwKjAAIGfQKfAAIGgQKgAAIGggKkAAIGigAHADQALgAoACIAHAAWABACkwACBnwCjwACBoQCkAACB/kCjQACBoECkQACBoICjgACBn4CkgACBngAAQAEAogAAgaEABcAtACuAKgAogCcAJYAkACKAIQAfgB4AHIAbABmAGAAWgBUAE4ASABCADwANgAwAnUAAgaQAnkAAgaDAm0AAgaHAnIAAghfAmoAAgZ8AnMAAghbAngAAgaAAmcAAgZ6AmwAAgaEAncAAgaLAmUAAgZ9Am8AAgZ7An0AAgfzAnQAAgaJAmkAAgaBAnwAAgfyAnsAAgfxAnoAAgfwAnEAAgaIAm4AAgaCAmsAAgZ+AnAAAgZ/AmgAAgZ4AAYALAAmACAAGgAUAA4CWwACCGICWQACBoQCWgACBosCXAACBncCXQACBokCWAACBoIABQAkAB4AGAASAAwCTQACBoQCTAACBoECSgACBogCTgACBoICSwACBngAAwAUAA4ACAJFAAIIYgJDAAIGhAJEAAIGiwACAAwABgIdAAIGfAIeAAIGeAABAAQCFQACBoUAGwDUAM4AyADCALwAtgCwAKoApACeAJgAkgCMAIYAgAB6AHQAbgBoAGIAXABWAFAASgBEAD4AOAIXAAIGgwIWAAIGjgITAAIGhQIUAAIIigIRAAIGhwIQAAIGfAIOAAIGgAINAAIGegIKAAIGhAIMAAIIEQILAAIGiwIIAAIGfQIJAAIIDgIHAAIGewIGAAIH8wIBAAIGgQIFAAIH8gIEAAIH8QICAAIH8AIAAAIGggH/AAIH4QH6AAIGfgIPAAIGfwH+AAIH3gH9AAIH3QH7AAIH3AH5AAIGeAAGACwAJgAgABoAFAAOAfMAAghiAe8AAgaEAfIAAgaLAfEAAgaBAfAAAgaCAe4AAgZ4AAoATABGAEAAOgA0AC4AKAAiABwAFgHfAAIGgwHsAAIGhwHaAAIGfAHeAAIGgAHcAAIGegHbAAIGhAHdAAIGiwHZAAIGfQHYAAIGgQHXAAIGeAACAAwABgHQAAIGhAHRAAIGfQAGACwAJgAgABoAFAAOAcoAAgZ6Ac0AAgaEAc4AAgaLAcwAAgZ9AckAAgaBAcsAAgZ4AAIADAAGAcYAAgaDAccAAgaLAAUAJAAeABgAEgAMAcIAAgaDAcEAAgaAAcAAAgZ6AcMAAgaLAb8AAgZ4ABgAxgC+ALYArgCmAJ4AmACSAIwAhgCAAHoAdABuAGgAYgBcAFYAUABKAEQAPgA4ADIBuQACBpABqwACBoMBrgACBoUBsAACBocBrAACBnwBvgACBoABpwACBnoBuAACBo0BvQACBosBqgACBn0BtgACBnsBugACBokBqQACBoEBsQACBoIBrQACBn4BtwACBn8BrwACBnkBqAACBngBuwADBoMGeAG8AAMGfAZ9AbIAAwZ9BnwBtQADBn0GegG0AAMGfQaCAbMAAwZ9BngABwA0AC4AKAAiABwAFgAQAZ8AAghiAZ0AAgaEAZ4AAgaLAZwAAgZ3AaAAAgaJAZoAAgaIAZsAAgaCAAkARgA+ADgAMgAsACYAIAAaABQBkQACBoQBkgACBosBkAACBncBjQACBoEBjgACBogBjwACBoIBjAACBngBlAADBoIGhAGTAAMGeAaEAAgAPAA2ADAAKgAkAB4AGAASAYcAAghiAYQAAgaEAYUAAgaLAYIAAgZ7AYAAAgZ3AYEAAgaCAYMAAgZ/AX8AAgZ4AAIADAAGAXgAAgaEAXcAAgZ4AAUAJAAeABgAEgAMAWIAAgaDAWEAAgaAAWAAAgZ6AWMAAgaLAV8AAgZ4AAEABAFkAAIGeAAaAOAA2ADQAMgAwAC4ALAAqACgAJgAkACKAIQAfgB4AHIAbABmAGAAWgBUAE4ASABCADwANgFCAAIGgwFMAAIGhwFIAAIGfAFZAAIGgAFFAAIGegFSAAIGhAFYAAIGiwFBAAIGfQFOAAIGewFHAAIGgQFLAAIGggFJAAIGfgFPAAIGfwFKAAIGeQFGAAIGeAFRAAMGgwZ8AVUAAwaDBn0BVAADBoMGeAFWAAMGfAZ6AVcAAwZ8BngBUwADBoQGfAFQAAMGfQZ8AV0AAwaBBoMBXAADBoEGgAFbAAMGgQZ6AVoAAwaBBngACQBEAD4AOAAyACwAJgAgABoAFAEsAAIGgwEzAAIIYgEwAAIGegExAAIGhAEyAAIGiwEuAAIGdwE0AAIGiQEvAAIGggEtAAIGeAADABQADgAIASUAAgaEASYAAgaLASQAAgZ4AAYALAAmACAAGgAUAA4BHgACCGIHmQACBoQBHAACBosBGgACBncBHwACBokBGQACBngABQAkAB4AGAASAAwBEwACCGIBEgACBosBDwACBncBEAACBoIBEQACBngAAQAEAQoAAgaBABAAfAB2AHAAagBkAF4AWABSAEwARgBAADoANAAuACgAIgDJAAIGkADNAAIGgwDQAAIGhwDOAAIGfADVAAIGgADKAAIGegDRAAIGhADWAAIGiwDGAAIGfQDTAAIGewDMAAIGgQDSAAIGggDPAAIGfgDUAAIGfwDLAAIGeADHAAMGfQZ4AAYALAAmACAAGgAUAA4ApQACBoQApgACBosApwACBn0AowACBoEApAACBoIAqAACBooABwA0AC4AKAAiABwAFgAQAJYAAgZ8AJIAAgaEAJMAAgZ3AJAAAgaBAJQAAgaCAJEAAgZ+AJUAAgZ4AAEABACLAAIGhAAXAL4AtgCuAKYAngCWAJAAigCEAH4AeAByAGwAZgBgAFoAVABOAEgAQgA8ADYAMABvAAIGkABzAAIGgwBnAAIGhwBkAAIGfAByAAIGgABgAAIGegBmAAIGhABxAAIGiwBjAAIGfQBpAAIGewBuAAIGiQBiAAIGgQBrAAIGiABoAAIGggBlAAIGfgBqAAIGfwBhAAIGeABsAAMGfAZ6AG0AAwZ8BngAdwADBoEGgwB2AAMGgQaAAHUAAwaBBnoAdAADBoEGeAAGACwAJgAgABoAFAAOAFkAAghiAFcAAgaEAFgAAgaLAFoAAgZ3AFsAAgaJAFYAAgaCAAUAJAAeABgAEgAMAE4AAgaEAE0AAgaBAEsAAgaIAE8AAgaCAEwAAgZ4AAMAFAAOAAgARAACCGIAQgACBoQAQwACBosAAgAMAAYAPgACBnwAPwACBngAAQAEAAoAAgaFABsA5ADcANQAzADEALwAtACsAKQAngCYAJIAjACGAIAAegB0AG4AaABiAFwAVgBQAEoARAA+ADgABAACBoMAFAACBo4ACAACBoUACQACCIoADQACBocACwACBnwAFgACBoAABQACBnoAEwACBoQAFQACBosAAwACBn0AEQACBnsABwACBoEADgACBoIAHwACB+EADAACBn4AEgACBn8ABgACBngAEAADBoQGfAAPAAMGfQZ8ABoAAwaBBoMAGQADBoEGgAAYAAMGgQZ6ABcAAwaBBngAHgADBn4GgAAdAAMGfgZ6ABwAAwZ+BngAAQA/AAIADQA9AEEASQBUAF8AiQCNAKEAxQEJAQ4BGAEjASsBQAFDAUQBdgF+AYsBmQGlAaYBxQHIAc8B1QHtAfgCEQIcAj8CRgJSAmQChQKK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BiMGJAYlBiYGJwYoBp4GvwbABsEGwgbDBsQGxQbGBscGyAbJBsoGywbMBywHLQcuBy8HMAcxB2cHaAdpB2oHawdsAAIAJwACAAIAAACNAJYAAQDFANYACwDbAOgAHQFAAUAAKwGOAY4ALAH5AhQALQIWAhcASQIZAhkASwLUAtYATALYAtgATwLaAuEAUANGA0cAWANMA1UAWgNoA2gAZANyA3IAZQN7A3sAZgVBBUMAZwVNBU0AagVTBVUAawVXBV0AbgV7BXwAdQWCBYYAdwWOBZEAfAWTBZMAgAWWBZoAgQWtBa0AhgYOBhcAhwaRBpEAkQaoBrEAkga2BrkAnAciByMAoAclByYAogcoBygApAcrBysApQddB14ApgdgB2EAqAdjB2MAqgdmB2YAqwACAAAAAAAA/jAAwAAAAAAAAAAAAAAAAAAAAAAAAAAACfMAAAABAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMgAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkEWgRbBFwEXQReBF8EYARhBGIEYwRkBGUEZgRnBGgEaQRqBGsEbARtBG4EbwRwBHEEcgRzBHQEdQR2BHcEeAR5BHoEewR8BH0EfgR/BIAEgQSCBIMEhASFBIYEhwSIBIkEigSLBIwEjQSOBI8EkASRBJIEkwSUBJUElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSyBLMEtAS1BLYEtwS4BLkEugS7BLwEvQS+BL8EwATBBMIEwwTEBMUExgTHBMgEyQTKBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoE2wTcBN0E3gTfBOAE4QTiBOME5ATlBOYE5wToBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gT3BPgE+QT6BPsE/AT9BP4E/wUABQEFAgUDBQQFBQUGBQcFCAUJBQoFCwUMBQ0FDgUPBRAFEQUSBRMFFAUVBRYFFwUYBRkFGgUbBRwFHQUeBR8FIAUhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBTEFMgUzBTQFNQU2BTcFOAU5BToFOwU8BT0FPgU/BUAFQQVCBUMFRAVFBUYFRwVIBUkFSgVLBUwFTQVOBU8FUAVRBVIFUwVUBVUFVgVXBVgFWQVaBVsFXAVdBV4FXwVgBWEFYgVjBWQFZQVmBWcFaAVpBWoFawVsBW0FbgVvBXAFcQVyBXMFdAV1BXYFdwV4BXkFegV7BXwFfQV+BX8FgAWBBYIFgwWEBYUFhgWHBYgFiQWKBYsFjAWNBY4FjwWQBZEFkgWTBZQFlQWWBZcFmAWZBZoFmwWcBZ0FngWfBaAFoQWiBaMFpAWlBaYFpwWoBakFqgWrBawFrQWuBa8FsAWxBbIFswW0BbUFtgW3BbgFuQW6BbsFvAW9Bb4FvwXABcEFwgXDBcQFxQXGBccFyAXJBcoFywXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBesF7AXtBe4F7wXwBfEF8gXzBfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gX/BgAGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYRBhIGEwYUBhUGFgYXBhgGGQYaBhsGHAYdBh4GHwYgBiEGIgYjBiQGJQYmBicGKAYpBioGKwYsBi0GLgYvBjAGMQYyBjMGNAY1BjYGNwY4BjkGOgY7BjwGPQY+Bj8GQAZBBkIGQwZEBkUGRgZHBkgGSQZKBksGTAZNBk4GTwZQBlEGUgZTBlQGVQZWBlcGWAZZBloGWwZcBl0GXgZfBmAGYQZiBmMGZAZlBmYGZwZoBmkGagZrBmwGbQZuBm8GcAZxBnIGcwZ0BnUGdgZ3BngGeQZ6BnsGfAZ9Bn4GfwaABoEGggaDBoQGhQaGBocGiAaJBooGiwaMBo0GjgaPBpAGkQaSBpMGlAaVBpYGlwaYBpkGmgabBpwGnQaeBp8GoAahBqIGowakBqUGpganBqgGqQaqBqsGrAatBq4GrwawBrEGsgazBrQGtQa2BrcGuAa5BroGuwa8Br0Gvga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswGzQbOBs8G0AbRBtIG0wbUBtUG1gbXBtgG2QbaBtsG3AbdBt4G3wbgBuEG4gbjBuQG5QbmBucG6AbpBuoG6wbsBu0G7gbvBvAG8QbyBvMG9Ab1BvYG9wb4BvkG+gb7BvwG/Qb+Bv8HAAcBBwIHAwcEBwUHBgcHBwgHCQcKBwsHDAcNBw4HDwcQBxEHEgcTBxQHFQcWBxcHGAcZBxoHGwccBx0HHgcfByAHIQciByMHJAclByYHJwcoBykHKgcrBywHLQcuBy8HMAcxBzIHMwc0BzUHNgc3BzgHOQc6BzsHPAc9Bz4HPwdAB0EHQgdDB0QHRQdGB0cHSAdJB0oHSwdMB00HTgdPB1AHUQdSB1MHVAdVB1YHVwdYB1kHWgdbB1wHXQdeB18HYAdhB2IHYwdkB2UHZgdnB2gHaQdqB2sHbAdtB24HbwdwB3EHcgdzB3QHdQd2B3cHeAd5B3oHewd8B30Hfgd/B4AHgQeCB4MHhAeFB4YHhweIB4kHigeLB4wHjQeOB48HkAeRB5IHkweUB5UHlgeXB5gHmQeaB5sHnAedB54HnwegB6EHogejB6QHpQemB6cHqAepB6oHqwesB60HrgevB7AHsQeyB7MHtAe1B7YHtwe4B7kHuge7B7wHvQe+B78HwAfBB8IHwwfEB8UHxgfHB8gHyQfKB8sHzAfNB84HzwfQB9EH0gfTB9QH1QfWB9cH2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH5wfoB+kH6gfrB+wH7QfuB+8H8AfxB/IH8wf0B/UH9gf3B/gH+Qf6B/sH/Af9B/4H/wgACAEIAggDCAQIBQgGCAcICAgJCAoICwgMCA0IDggPCBAIEQgSCBMIFAgVCBYIFwgYCBkIGggbCBwIHQgeCB8IIAghCCIIIwgkCCUIJggnCCgIKQgqCCsILAgtCC4ILwgwCDEIMggzCDQINQg2CDcIOAg5CDoIOwg8CD0IPgg/CEAIQQhCCEMIRAhFCEYIRwhICEkISghLCEwITQhOCE8IUAhRCFIIUwhUCFUIVghXCFgIWQhaCFsIXAhdCF4IXwhgCGEIYghjCGQIZQhmCGcIaAhpCGoIawhsCG0IbghvCHAIcQhyCHMIdAh1CHYIdwh4CHkIegh7CHwIfQh+CH8IgAiBCIIIgwiECIUIhgiHCIgIiQiKCIsIjAiNCI4IjwiQCJEIkgiTCJQIlQiWCJcImAiZCJoImwicCJ0IngifCKAIoQiiCKMIpAilCKYIpwioCKkIqgirCKwIrQiuCK8IsAixCLIIswi0CLUItgi3CLgIuQi6CLsIvAi9CL4IvwjACMEIwgjDCMQIxQjGCMcIyAjJCMoIywjMCM0IzgjPCNAI0QjSCNMI1AjVCNYI1wjYCNkI2gjbCNwI3QjeCN8I4AjhCOII4wjkCOUI5gjnCOgI6QjqCOsI7AjtCO4I7wjwCPEI8gjzCPQI9Qj2CPcI+Aj5CPoI+wj8CP0I/gj/CQAJAQkCCQMJBAkFCQYJBwkICQkJCgkLCQwJDQkOCQ8JEAkRCRIJEwkUCRUJFgkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJJQkmCScJKAkpCSoJKwksCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgk7CTwJPQk+CT8JQAlBCUIJQwlECUUJRglHCUgJSQlKCUsJTAlNCU4JTwlQCVEJUglTCVQJVQlWCVcJWAlZCVoJWwlcCV0JXglfCWAJYQliCWMJZAllCWYJZwloCWkJaglrCWwJbQluCW8JcAlxCXIJcwl0CXUJdgl3CXgJeQl6CXsJfAl9CX4JfwmACYEJggmDCYQJhQmGCYcJiAmJCYoJiwmMCY0JjgmPCZAJkQmSCZMJlAmVCZYJlwmYCZkJmgmbCZwJnQmeCZ8JoAmhCaIJowmkCaUJpgmnCagJqQmqCasJrAmtCa4JrwmwCbEJsgmzCbQJtQm2CbcJuAm5CboJuwm8Cb0Jvgm/CcAJwQnCCcMJxAnFCcYJxwnICckJygnLCcwJzQnOCc8J0AnRCdIJ0wnUCdUJ1gnXCdgJ2QnaCdsJ3AndCd4J3wngCeEJ4gnjCeQJ5QnmCecJ6AnpCeoJ6wnsCe0J7gnvCfAJ8QnyCfMJ9An1CfYJ9wn4CfkJ+gn7CfwJ/Qn+Cf8KAAoBCgIKAwoECgUKBgoHCggKCQoKCgsKDAoNCg4KDwoQChEKEgoTChQKFQoWChcKGAoZChoKGwocCh0KHgofCiAKIQoiCiMKJAolCiYKJwooCikKKgorCiwKLQouCi8KMAoxCjIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwpACkEKQgpDCkQKRQpGCkcKSApJCkoKSwpMCk0KTgpPClAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KYAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpwCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CoAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KkAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqgCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCrAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KwArBCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrQCtEK0grTCtQK1QrWCtcK2ArZCtoK2wrcCt0K3grfCuAK4QriCuMK5ArlCuYK5wroCukK6grrCuwK7QruCu8K8ArxCvIHdW5pMDA0MQd1bmkwMEM0B3VuaTAwQzMHdW5pMDBDMAd1bmkwMEMxB3VuaTAwQzIHdW5pMDBDNQd1bmkwMUZBB3VuaUVFMDIHdW5pMDEwMAd1bmkwMTAyB3VuaTAxMDQHdW5pMDFDRAd1bmkwMURFB3VuaTAxRTAHdW5pMDIwMAd1bmkwMjAyB3VuaTAyMjYHdW5pMUUwMAd1bmkxRUEwB3VuaTFFQTIHdW5pMUVBNAd1bmkxRUE2B3VuaTFFQTgHdW5pMUVBQQd1bmkxRUFDB3VuaTFFQUUHdW5pMUVCMAd1bmkxRUIyB3VuaTFFQjQHdW5pMUVCNgd1bmkwMzkxB3VuaTAzODYHdW5pMUYwOAd1bmkxRjA5B3VuaTFGMEEHdW5pMUYwQgd1bmkxRjBDB3VuaTFGMEQHdW5pMUYwRQd1bmkxRjBGB3VuaTFGQjgHdW5pMUZCOQd1bmkxRkJBB3VuaTAyM0EHdW5pMUZCQgd1bmkwNDEwB3VuaTA0RDAHdW5pMDREMgd1bmkxRjg4B3VuaTFGODkHdW5pMUY4QQd1bmkxRjhCB3VuaTFGOEMHdW5pMUY4RAd1bmkxRjhFB3VuaTFGOEYHdW5pMUZCQwd1bmkwMzlCB3VuaTAwQzYHdW5pMDFFMgd1bmkwMUZDB3VuaTA0RDQHdW5pMDA0Mgd1bmkxRTAyB3VuaTFFMDQHdW5pMUUwNgd1bmkwMjQzB3VuaTAxODEHdW5pMDQxMgd1bmkwMzkyB3VuaTAwNDMHdW5pMDE4Nwd1bmkwMEM3B3VuaTAxMDYHdW5pMDEwOAd1bmkwMTBBB3VuaTAxMEMHdW5pMUUwOAd1bmkwMjNCB3VuaTAxODYHdW5pMDNGOQd1bmkwMDQ0B3VuaTAxOEEHdW5pMDEwRQd1bmkxRTBBB3VuaTFFMEMHdW5pMUUwRQd1bmkxRTEwB3VuaTFFMTIHdW5pMDE4OQd1bmkwMUYyB3VuaTAxQzUHdW5pMDA0NQd1bmkwMEM4B3VuaTAwQzkHdW5pMDBDQQd1bmkwMENCB3VuaTAxMTIHdW5pMDExNAd1bmkwMTE2B3VuaTAxMTgHdW5pMDExQQd1bmkwMjA0B3VuaTAyMDYHdW5pMDIyOAd1bmkxRTE0B3VuaTFFMTYHdW5pMUUxOAd1bmkxRTFBB3VuaTFFMUMHdW5pMUVCOAd1bmkxRUJBB3VuaTFFQkMHdW5pMUVCRQd1bmkxRUMwB3VuaTFFQzIHdW5pMUVDNAd1bmkxRUM2B3VuaTAyNDYHdW5pMDE4RQd1bmkwMzk1B3VuaTAzODgHdW5pMUYxOAd1bmkxRjE5B3VuaTFGMUEHdW5pMUYxQgd1bmkxRjFDB3VuaTFGMUQHdW5pMUZDOAd1bmkxRkM5B3VuaTA0MTUHdW5pMDQwMAd1bmkwNDAxB3VuaTA0RDYHdW5pMDA0Ngd1bmkwMTkxB3VuaTFFMUUHdW5pMjEzMgd1bmkwMDQ3B3VuaTAxRTQHdW5pMDE5Mwd1bmkwMTFDB3VuaTAxMUUHdW5pMDEyMAd1bmkwMTIyB3VuaTAxRTYHdW5pMDFGNAd1bmkxRTIwB3VuaUUwMDIHdW5pRTAwMwd1bmlFMDA0B3VuaUUwMDUHdW5pRTAwNgd1bmlFMDA3B3VuaUUwMDgHdW5pRTAwOQd1bmlFMDBBB3VuaUUwMEIHdW5pMDA0OAd1bmkxRTI4B3VuaTAxMjQHdW5pMDIxRQd1bmkxRTIyB3VuaTFFMjQHdW5pMUUyNgd1bmkxRTJBB3VuaTAxMjYHdW5pMDRDNwd1bmkwNEEyB3VuaTA0QzkHdW5pMDRBNAd1bmkwMUY2B3VuaTAzOTcHdW5pMDM4OQd1bmkxRjI4B3VuaTFGMjkHdW5pMUYyQQd1bmkxRjJCB3VuaTFGMkMHdW5pMUYyRAd1bmkxRjJFB3VuaTFGMkYHdW5pMUZDQQd1bmkxRkNCB3VuaTA0MUQHdW5pMUY5OAd1bmkxRjk5B3VuaTFGOUEHdW5pMUY5Qgd1bmkxRjlDB3VuaTFGOUQHdW5pMUY5RQd1bmkxRjlGB3VuaTFGQ0MHdW5pMDA0OQd1bmkwMENGB3VuaTFFMkUHdW5pMDE5Nwd1bmkxRTJDB3VuaTAwQ0MHdW5pMDBDRAd1bmkwMENFB3VuaTAxMjgHdW5pMDEyQQd1bmkwMTJDB3VuaTAxMkUHdW5pMDEzMAd1bmkwMUNGB3VuaTAyMDgHdW5pMDIwQQd1bmkxRUM4B3VuaTFFQ0EHdW5pMDE5Ngd1bmkwMzk5B3VuaTAzOEEHdW5pMDNBQQd1bmkxRjM4B3VuaTFGMzkHdW5pMUYzQQd1bmkxRjNCB3VuaTFGM0MHdW5pMUYzRAd1bmkxRjNFB3VuaTFGM0YHdW5pMUZEOAd1bmkxRkQ5B3VuaTFGREEHdW5pMUZEQgd1bmkwNDA2B3VuaTA0MDcHdW5pRTAwQwd1bmlFMDBEB3VuaUUwMEUHdW5pRTAwRgd1bmlFMDEwB3VuaUUwMTEHdW5pRTAxMgd1bmlFMDEzB3VuaUUwMTQHdW5pRTAxNQd1bmlFMDE2B3VuaUUwMTcHdW5pRTAxOAd1bmlFMDE5B3VuaUUwMUEHdW5pRTAxQgd1bmlFMDFDB3VuaUUwMUQHdW5pRTAxRQd1bmlFMDFGB3VuaUUwMjAHdW5pRTAyMQd1bmlFMDIyB3VuaUUwMjMHdW5pRTAyNAd1bmlFMDI1B3VuaUUwMjYHdW5pRTAyNwd1bmlFMDI4B3VuaUUwMjkHdW5pRTAyQQd1bmlFMDJCB3VuaTAwNEEHdW5pMDEzNAd1bmkwMjQ4B3VuaTAzN0YHdW5pMDQwOAd1bmkwMDRCB3VuaTAxMzYHdW5pMDFFOAd1bmkxRTMwB3VuaTFFMzIHdW5pMUUzNAd1bmkwNEEwB3VuaTA0OUEHdW5pMDE5OAd1bmkwMzlBB3VuaTAwNEMHdW5pMDEzOQd1bmkwMTNCB3VuaTAxM0QHdW5pMUUzNgd1bmkxRTM4B3VuaTFFM0EHdW5pMUUzQwd1bmkwMTQxB3VuaTAyM0QHdW5pMDFDOAd1bmkwMDREB3VuaTFFM0UHdW5pMUU0MAd1bmkxRTQyB3VuaTA0Q0QHdW5pMDM5Qwd1bmkwM0ZBB3VuaTA0MUMHdW5pMDA0RQd1bmkwMEQxB3VuaTAxNDMHdW5pMDE0NQd1bmkwMTQ3B3VuaTAxRjgHdW5pMUU0NAd1bmkxRTQ2B3VuaTFFNDgHdW5pMUU0QQd1bmkwMTlEB3VuaTAxNEEHdW5pMDQxOAd1bmkwNDBEB3VuaTA0MTkHdW5pMDRFMgd1bmkwNEU0B3VuaTA0OEEHdW5pMDM3Ngd1bmkwMzlEB3VuaTAxQ0IHdW5pMDA0Rgd1bmkwMEQ2B3VuaTAwRDUHdW5pMDBEOAd1bmkwMUEwB3VuaTAwRDIHdW5pMDBEMwd1bmkwMEQ0B3VuaTAxNEMHdW5pMDE0RQd1bmkwMTUwB3VuaTAxRDEHdW5pMDFFQQd1bmkwMUVDB3VuaTAyMEMHdW5pMDIwRQd1bmkwMjJBB3VuaTAyMkMHdW5pMDIyRQd1bmkwMjMwB3VuaTFFNEMHdW5pMUU0RQd1bmkxRTUwB3VuaTFFNTIHdW5pMUVDQwd1bmkxRUNFB3VuaTFFRDAHdW5pMUVEMgd1bmkxRUQ0B3VuaTFFRDYHdW5pMUVEOAd1bmkxRURBB3VuaTFFREMHdW5pMUVERQd1bmkxRUUwB3VuaTFFRTIHdW5pMDFGRQd1bmkwMzlGB3VuaTAzOEMHdW5pMUY0OAd1bmkxRjQ5B3VuaTFGNEEHdW5pMUY0Qgd1bmkxRjRDB3VuaTFGNEQHdW5pMUZGOAd1bmkwM0Y0B3VuaTFGRjkHdW5pMDQxRQd1bmkwNEU2B3VuaTAxOUYHdW5pMDRFOAd1bmkwNEVBB3VuaTAxNTIHdW5pMDA1MAd1bmkxRTU0B3VuaTFFNTYHdW5pMDQ4RQd1bmkwMUE0B3VuaTAzQTEHdW5pMUZFQwd1bmkwMDUxB3VuaTAwNTIHdW5pMDE1NAd1bmkwMTU2B3VuaTAxNTgHdW5pMDIxMAd1bmkwMjEyB3VuaTFFNTgHdW5pMUU1QQd1bmkxRTVDB3VuaTFFNUUHdW5pMjExRgd1bmkyMTFFB3VuaTAyNEMHdW5pMDA1Mwd1bmkwMTVBB3VuaTAxNUMHdW5pMDE1RQd1bmkwMTYwB3VuaTAyMTgHdW5pMUU2MAd1bmkxRTYyB3VuaTFFNjQHdW5pMUU2Ngd1bmkxRTY4B3VuaTA0MDUHdW5pMDFBNwd1bmkxRTlFB3VuaTAwNTQHdW5pMDE2Mgd1bmkwMTY0B3VuaTAyMUEHdW5pMUU2QQd1bmkxRTZDB3VuaTFFNkUHdW5pMUU3MAd1bmkwMUFDB3VuaTAxQUUHdW5pMDIzRQd1bmkwM0E0B3VuaTAwNTUHdW5pMDFBRgd1bmkwMEQ5B3VuaTAwREEHdW5pMDBEQgd1bmkwMERDB3VuaTAxNjgHdW5pMDE2QQd1bmkwMTZDB3VuaTAxNkUHdW5pMDE3MAd1bmkwMTcyB3VuaTAxRDMHdW5pMDFENQd1bmkwMUQ3B3VuaTAxRDkHdW5pMDFEQgd1bmkwMjE0B3VuaTAyMTYHdW5pMUU3Mgd1bmkxRTc0B3VuaTFFNzYHdW5pMUU3OAd1bmkxRTdBB3VuaTFFRTQHdW5pMUVFNgd1bmkxRUU4B3VuaTFFRUEHdW5pMUVFQwd1bmkxRUVFB3VuaTFFRjAHdW5pMDI0NAd1bmkwMDU2B3VuaTFFN0MHdW5pMUU3RQd1bmkwMDU3B3VuaTAxNzQHdW5pMUU4MAd1bmkxRTgyB3VuaTFFODQHdW5pMUU4Ngd1bmkxRTg4B3VuaTAwNTgHdW5pMUU4QQd1bmkxRThDB3VuaTA0QjIHdW5pMDRGQwd1bmkwM0E3B3VuaTAwNTkHdW5pMDFCMwd1bmkwMEREB3VuaTAxNzYHdW5pMDE3OAd1bmkwMjMyB3VuaTFFOEUHdW5pMUVGMgd1bmkxRUY0B3VuaTFFRjYHdW5pMUVGOAd1bmkwMjRFB3VuaTAzQTUHdW5pMDM4RQd1bmkwM0FCB3VuaTFGNTkHdW5pMUY1Qgd1bmkxRjVEB3VuaTFGNUYHdW5pMUZFOAd1bmkxRkU5B3VuaTFGRUEHdW5pMUZFQgd1bmlFRTAzB3VuaTAwNUEHdW5pMDE3OQd1bmkwMTdCB3VuaTAxN0QHdW5pMUU5MAd1bmkxRTkyB3VuaTFFOTQHdW5pMDIyNAd1bmkwMUI1B3VuaTAzOTYHdW5pMkM3Rgd1bmkwMDYxB3VuaTAwRTEHdW5pMDEwMwd1bmkxRUFGB3VuaTFFQjcHdW5pMUVCMQd1bmkxRUIzB3VuaTFFQjUHdW5pMDFDRQd1bmkwMEUyB3VuaTFFQTUHdW5pMUVBRAd1bmkxRUE3B3VuaTFFQTkHdW5pMUVBQgd1bmkwMjAxB3VuaTAwRTQHdW5pMDFERgd1bmkwMjI3B3VuaTFFQTEHdW5pMDFFMQd1bmkwMEUwB3VuaTFFQTMHdW5pMDIwMwd1bmkwMTAxB3VuaTAxMDUHdW5pMUU5QQd1bmkwMEU1B3VuaTAxRkIHdW5pRUUwNAd1bmkxRTAxB3VuaTAwRTMHdW5pMDI1MAd1bmkwNDMwB3VuaTA0RDEHdW5pMDREMwd1bmkwMEU2B3VuaTAxRTMHdW5pMDFGRAd1bmkwNEQ1B3VuaUUwMkMHdW5pRTAyRAd1bmlFMDJFB3VuaUUwMkYHdW5pRTAzMAd1bmlFMDMxB3VuaUUwMzIHdW5pRTAzMwd1bmlFMDM0B3VuaUUwMzUHdW5pRTAzNgd1bmlFMDM3B3VuaUUwMzgHdW5pRTAzOQd1bmlFMDNBB3VuaUUwM0IHdW5pRTAzQwd1bmlFMDNEB3VuaUUwM0UHdW5pRTAzRgd1bmlFMDQwB3VuaUUwNDEHdW5pRTA0Mgd1bmlFMDQzB3VuaUUwNDQHdW5pRTA0NQd1bmlFMDQ2B3VuaUUwNDcHdW5pRTA0OAd1bmlFMDQ5B3VuaUUwNEEHdW5pMDA2Mgd1bmkwMTgwB3VuaTAxODMHdW5pMDI1Mwd1bmkxRTAzB3VuaTFFMDUHdW5pMUUwNwd1bmkwMDYzB3VuaTAyM0MHdW5pMDE4OAd1bmkwMjU1B3VuaTAwRTcHdW5pMDEwNwd1bmkwMTA5B3VuaTAxMEIHdW5pMDEwRAd1bmkxRTA5B3VuaTAzRjIHdW5pMDQ0MQd1bmkwMDY0B3VuaTAxMTEHdW5pMDI1Ngd1bmkwMjU3B3VuaTAxOEMHdW5pMDIyMQd1bmkwMTBGB3VuaTFFMEIHdW5pMUUwRAd1bmkxRTBGB3VuaTFFMTEHdW5pMUUxMwd1bmkwMUYzB3VuaTAyQTMHdW5pMDFDNgd1bmkwMkE1B3VuaTAyQTQHdW5pMjBBQgd1bmkwMDY1B3VuaTAwRUIHdW5pMDI0Nwd1bmkwMEU4B3VuaTAwRTkHdW5pMDBFQQd1bmkwMTEzB3VuaTAxMTUHdW5pMDExNwd1bmkwMTE5B3VuaTAxMUIHdW5pMDIwNQd1bmkwMjA3B3VuaTAyMjkHdW5pMUUxNQd1bmkxRTE3B3VuaTFFMTkHdW5pMUUxQgd1bmkxRTFEB3VuaTFFQjkHdW5pMUVCQgd1bmkxRUJEB3VuaTFFQkYHdW5pMUVDMQd1bmkxRUMzB3VuaTFFQzUHdW5pMUVDNwd1bmkwNDM1B3VuaTA0NTAHdW5pMDQ1MQd1bmkwNEQ3B3VuaTAxREQMX3BhcnQuZl9iYXNlB3VuaTAwNjYHdW5pMUU5Qwd1bmkxRTlCB3VuaTFFMUYHdW5pMDJBOQd1bmkwMDY3B3VuaTAyNjAHdW5pMDFFNQd1bmkwMTFEB3VuaTAxMUYHdW5pMDEyMQd1bmkwMTIzB3VuaTAxRTcHdW5pMDFGNQd1bmkxRTIxB3VuaTAwNjgHdW5pMUUyOQd1bmkwNDVCB3VuaTA0NTIHdW5pMDI2Ngd1bmkwMjY3B3VuaTAxOTUHdW5pMDI2NQd1bmkwMkFFB3VuaTAyQUYHdW5pMDEyNwd1bmkwMTI1B3VuaTAyMUYHdW5pMUUyMwd1bmkxRTI1B3VuaTFFMjcHdW5pMUUyQgd1bmkxRTk2B3VuaTA0QkIHdW5pMDA2OQd1bmkwMTMxB3VuaTAwRUYHdW5pMUUyRgd1bmkwMTI5B3VuaTFFMkQHdW5pRTA0Qgd1bmkwMjY4B3VuaTAwRUMHdW5pMDBFRAd1bmkwMEVFB3VuaTAxMkIHdW5pMDEyRAd1bmlFMDRDB3VuaTAxMkYHdW5pMDFEMAd1bmkwMjA5B3VuaTAyMEIHdW5pMUVDOQd1bmkxRUNCB3VuaUUwNEQHdW5pMDIzNwd1bmkwMjVGB3VuaTAyNDkHdW5pRTA0RQd1bmkwNDU2B3VuaTA0NTcHdW5pMDEzMwd1bmkwMDZBB3VuaUUwNEYHdW5pMDI5RAd1bmkwMTM1B3VuaTAxRjAHdW5pMDNGMwd1bmkwNDU4B3VuaTAxQzkHdW5pMDA2Qgd1bmkwMTk5B3VuaTAxMzcHdW5pMDFFOQd1bmkxRTMxB3VuaTFFMzMHdW5pMUUzNQd1bmkwMjlFB3VuaTAwNkMHdW5pMDE0Mgd1bmkwMTlBB3VuaTAyNkIHdW5pMDI2RAd1bmkwMjZDB3VuaTAyMzQHdW5pMDE0MAd1bmkwMTNBB3VuaTAxM0MHdW5pMDEzRQd1bmkxRTM3B3VuaTFFMzkHdW5pMUUzQgd1bmkxRTNEB3VuaUUwNTAHdW5pRTA1MQd1bmlFMDUyB3VuaUUwNTMHdW5pRTA1NAd1bmlFMDU1B3VuaUUwNTYHdW5pRTA1Nwd1bmlFMDU4B3VuaUUwNTkHdW5pRTA1QQd1bmlFMDVCB3VuaUUwNUMHdW5pMDRDRgd1bmkwMDZEB3VuaTAyNzEHdW5pMDI2Rgd1bmkwMjcwB3VuaTFFM0YHdW5pMUU0MQd1bmkxRTQzB3VuaTAwNkUHdW5pMDBGMQd1bmkwMjczB3VuaTAxNEIHdW5pMDIzNQd1bmkwMjcyB3VuaTAxOUUHdW5pMDE0NAd1bmkwMTQ2B3VuaTAxNDgHdW5pMDFGOQd1bmkxRTQ1B3VuaTFFNDcHdW5pMUU0OQd1bmkxRTRCB3VuaTAxQ0MHdW5pMDA2Rgd1bmkwMEY2B3VuaTAwRjUHdW5pMDBGOAd1bmkwMUExB3VuaTAwRjIHdW5pMDBGMwd1bmkwMEY0B3VuaTAxNEQHdW5pMDE0Rgd1bmkwMTUxB3VuaTAxRDIHdW5pMDFFQgd1bmkwMUVEB3VuaTAyMEQHdW5pMDIwRgd1bmkwMjJCB3VuaTAyMkQHdW5pMDIyRgd1bmkwMjMxB3VuaTFFNEQHdW5pMUU0Rgd1bmkxRTUxB3VuaTFFNTMHdW5pMUVDRAd1bmkxRUNGB3VuaTFFRDEHdW5pMUVEMwd1bmkxRUQ1B3VuaTFFRDcHdW5pMUVEOQd1bmkxRURCB3VuaTFFREQHdW5pMUVERgd1bmkxRUUxB3VuaTFFRTMHdW5pMDFGRgd1bmkwM0JGB3VuaTAzQ0MHdW5pMUY0MAd1bmkxRjQxB3VuaTFGNDIHdW5pMUY0Mwd1bmkxRjQ0B3VuaTFGNDUHdW5pMUY3OAd1bmkwNDczB3VuaTAyNzUHdW5pMDQzRQd1bmkwNEU3B3VuaTAxNTMHdW5pMDQ3OQd1bmkwMDcwB3VuaTA0OEYHdW5pMDFBNQd1bmkxRTU1B3VuaTFFNTcHdW5pMDQ0MAd1bmkwMDcxB3VuaTAyQTAHdW5pMDI0Qgd1bmkwMjRBB3VuaTAwNzIHdW5pRTA1RAd1bmkwMjREB3VuaTAyNzkHdW5pMDI3Qgd1bmkwMjdGB3VuaTAyN0UHdW5pRTA1RQd1bmkwMTU1B3VuaTAxNTcHdW5pMDE1OQd1bmkwMjExB3VuaTAyMTMHdW5pMUU1OQd1bmkxRTVCB3VuaTFFNUQHdW5pMUU1Rgd1bmlFMDVGB3VuaTAyN0QHdW5pRTA2MAd1bmkwMjdDB3VuaUUwNjEHdW5pRTA2Mgd1bmlFMDYzB3VuaUUwNjQHdW5pRTA2NQd1bmlFMDY2B3VuaUUwNjcHdW5pRTA2OAd1bmlFMDY5B3VuaTAwNzMHdW5pMDI4Mgd1bmkwMjNGB3VuaTAxNUIHdW5pMDE1RAd1bmkwMTVGB3VuaTAxNjEHdW5pMDIxOQd1bmkxRTYxB3VuaTFFNjMHdW5pMUU2NQd1bmkxRTY3B3VuaTFFNjkHdW5pMDQ1NQd1bmkwMUE4B3VuaTAwREYHdW5pRTA2QQd1bmkwMDc0B3VuaTAxQUIHdW5pMDI4OAd1bmkwMjM2B3VuaTAyQTgHdW5pMDI4Nwd1bmkwMTY3B3VuaTAxNjMHdW5pMDE2NQd1bmkwMjFCB3VuaTFFNkIHdW5pMUU2RAd1bmkxRTZGB3VuaTFFNzEHdW5pMUU5Nwd1bmkwMDc1B3VuaTAwRkMHdW5pMDE2OQd1bmkwMUIwB3VuaTAwQjUHdW5pMDI4OQd1bmkwMEY5B3VuaTAwRkEHdW5pMDBGQgd1bmkwMTZCB3VuaTAxNkQHdW5pMDE2Rgd1bmkwMTcxB3VuaTAxNzMHdW5pMDFENAd1bmkwMUQ2B3VuaTAxRDgHdW5pMDFEQQd1bmkwMURDB3VuaTAyMTUHdW5pMDIxNwd1bmkxRTczB3VuaTFFNzUHdW5pMUU3Nwd1bmkxRTc5B3VuaTFFN0IHdW5pMUVFNQd1bmkxRUU3B3VuaTFFRTkHdW5pMUVFQgd1bmkxRUVEB3VuaTFFRUYHdW5pMUVGMQd1bmkwMDc2B3VuaTAyOEMHdW5pMUU3RAd1bmkxRTdGB3VuaTAwNzcHdW5pMUU4NQd1bmkwMjhEB3VuaTAxNzUHdW5pMUU4MQd1bmkxRTgzB3VuaTFFODcHdW5pMUU4OQd1bmkxRTk4B3VuaTAwNzgHdW5pMUU4Qgd1bmkxRThEB3VuaTA0NDUHdW5pMDNDNwd1bmkwMDc5B3VuaTAwRkYHdW5pMDFCNAd1bmkwMjRGB3VuaTAwRkQHdW5pMDE3Nwd1bmkwMjMzB3VuaTFFOEYHdW5pMUU5OQd1bmkxRUYzB3VuaTFFRjUHdW5pMUVGNwd1bmkxRUY5B3VuaTA0NDMHdW5pMDQ1RQd1bmkwNEVGB3VuaTA0RjEHdW5pMDRGMwd1bmkwMjhFB3VuaTA0RUUHdW5pMDRGMAd1bmkwNEYyB3VuaUVFMDUHdW5pMDA3QQd1bmkwMUI2B3VuaTAyMjUHdW5pMDI0MAd1bmkwMjkwB3VuaTAxN0EHdW5pMDE3Qwd1bmkwMTdFB3VuaTFFOTEHdW5pMUU5Mwd1bmkxRTk1B3VuaTAyOTEHdW5pMDBERQd1bmkwMzkzB3VuaTAzOTQHdW5pMDM5OAd1bmkwMzlFB3VuaTAzQTAHdW5pMDNBMwd1bmkwM0E2B3VuaTAzQTgHdW5pMDNBOQd1bmkxRkZCB3VuaTAzOEYHdW5pMUY2OAd1bmkxRjY5B3VuaTFGNkEHdW5pMUY2Qgd1bmkxRjZDB3VuaTFGNkQHdW5pMUY2RQd1bmkxRjZGB3VuaTFGRkEHdW5pMUZBOAd1bmkxRkE5B3VuaTFGQUEHdW5pMUZBQgd1bmkxRkFDB3VuaTFGQUQHdW5pMUZBRQd1bmkxRkFGB3VuaTFGRkMHdW5pMDFCMQd1bmkwM0QyB3VuaTAzRDMHdW5pMDNENAd1bmkwMTk0B3VuaTA0MTEHdW5pMDQ5MAd1bmkwNEZBB3VuaTA0MTQHdW5pMDQxNgd1bmkwNDk2B3VuaTA0MTcHdW5pMDQxQQd1bmkwNDlDB3VuaTA0QzMHdW5pMDQxQgd1bmkwNDcyB3VuaTA0MEYHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDRCNAd1bmkwNDI3B3VuaTA0QjYHdW5pMDRCOAd1bmkwNEJBB3VuaTA0MEIHdW5pMDQyOAd1bmkwNDI5B3VuaTA0MkEHdW5pMDQyQgd1bmkwNDJDB3VuaTA0MDkHdW5pMDQwQQd1bmkwNDJEB3VuaTA0MkUHdW5pMDQyRgd1bmkwNDk0B3VuaTA0QTYHdW5pMDQwNAd1bmkwNEE4B3VuaTA0QkMHdW5pMDREOAd1bmkwNEUwB3VuaTA0NzQHdW5pMDQwMgd1bmkwMEYwB3VuaTAwRkUHdW5pMDNCMQd1bmkwM0FDB3VuaTFGMDAHdW5pMUYwMQd1bmkxRjAyB3VuaTFGMDMHdW5pMUYwNAd1bmkxRjA1B3VuaTFGMDYHdW5pMUYwNwd1bmkxRjcwB3VuaTFGODAHdW5pMUY4MQd1bmkxRjgyB3VuaTFGODMHdW5pMUY4NAd1bmkxRjg1B3VuaTFGODYHdW5pMUY4Nwd1bmkxRkIwB3VuaTFGQjEHdW5pMUZCMgd1bmkxRkIzB3VuaTFGQjQHdW5pMUZCNgd1bmkxRkI3B3VuaTAzQjIHdW5pMDNCMwd1bmkwM0I0B3VuaTAzQjUHdW5pMDNBRAd1bmkwMjlBB3VuaTAyNUIHdW5pMDI1Qwd1bmkwMjVFB3VuaTAyNUQHdW5pMUYxMAd1bmkxRjExB3VuaTFGMTIHdW5pMUYxMwd1bmkxRjE0B3VuaTFGMTUHdW5pMUY3Mgd1bmkwM0I2B3VuaTAzQjcHdW5pMDNBRQd1bmkxRjIwB3VuaTFGMjEHdW5pMUYyMgd1bmkxRjIzB3VuaTFGMjQHdW5pMUYyNQd1bmkxRjI2B3VuaTFGMjcHdW5pMUY3NAd1bmkxRjkwB3VuaTFGOTEHdW5pMUY5Mgd1bmkxRjkzB3VuaTFGOTQHdW5pMUY5NQd1bmkxRjk2B3VuaTFGOTcHdW5pMUZDMgd1bmkxRkMzB3VuaTFGQzQHdW5pMUZDNgd1bmkxRkM3B3VuaTAzQjgHdW5pMDNCOQd1bmkwMzkwB3VuaTAzQUYHdW5pMDNDQQd1bmkxRjMwB3VuaTFGMzEHdW5pMUYzMgd1bmkxRjMzB3VuaTFGMzQHdW5pMUYzNQd1bmkxRjM2B3VuaTFGMzcHdW5pMUY3Ngd1bmkxRkQwB3VuaTFGRDEHdW5pMUZEMgd1bmkxRkQ2B3VuaTFGRDcHdW5pMDNCQgd1bmkwM0JFB3VuaTAzQzAHdW5pMDNDMQd1bmkxRkU0B3VuaTFGRTUHdW5pMDNGQwd1bmkwM0MyB3VuaTAzQzMHdW5pMDNDNAd1bmkwM0M1B3VuaTAzQjAHdW5pMDNDQgd1bmkwM0NEB3VuaTFGNTAHdW5pMUY1MQd1bmkxRjUyB3VuaTFGNTMHdW5pMUY1NAd1bmkxRjU1B3VuaTFGNTYHdW5pMUY1Nwd1bmkxRjdBB3VuaTFGRTAHdW5pMUZFMQd1bmkxRkUyB3VuaTFGRTYHdW5pMUZFNwd1bmkwM0M2B3VuaTAzRDUHdW5pMDNDOAd1bmkwM0M5B3VuaTAzQ0UHdW5pMUY2MAd1bmkxRjYxB3VuaTFGNjIHdW5pMUY2Mwd1bmkxRjY0B3VuaTFGNjUHdW5pMUY2Ngd1bmkxRjY3B3VuaTFGN0MHdW5pMUZBMAd1bmkxRkExB3VuaTFGQTIHdW5pMUZBMwd1bmkxRkE0B3VuaTFGQTUHdW5pMUZBNgd1bmkxRkE3B3VuaTFGRjIHdW5pMUZGMwd1bmkxRkY0B3VuaTFGRjYHdW5pMUZGNwd1bmkwMjYzB3VuaTA0MzEHdW5pMDQzMgd1bmkwNDMzB3VuaTA0OTEHdW5pMDRGQgd1bmkwNDM0B3VuaTA0MzYHdW5pMDQ5Nwd1bmkwNDM3B3VuaTA0MzgHdW5pMDQ4Qgd1bmkwNDNBB3VuaTA0QzQHdW5pMDQ5Qgd1bmkwNDlEB3VuaTA0QTEHdW5pMDQzQgd1bmkwNEM2B3VuaTA1MkYHdW5pMDQzQwd1bmkwNENFB3VuaTA0M0QHdW5pMDRBMwd1bmkwNEE1B3VuaTA0QzgHdW5pMDRDQQd1bmkwNDNGB3VuaTA0NDIHdW5pMDQ0NAd1bmkwNEZEB3VuaTA0QjMHdW5pMDQ0Ngd1bmkwNDVGB3VuaTA0NDcHdW5pMDRCNwd1bmkwNEI5B3VuaTA0NDgHdW5pMDQ0OQd1bmkwNDRDB3VuaTA0NEEHdW5pMDQ0Qgd1bmkwNDhEB3VuaTA0NjMHdW5pMDQ1OQd1bmkwNDVBB3VuaTA0NEQHdW5pMDQ0RQd1bmkwNDRGB3VuaTA0OTUHdW5pMDRBNwd1bmkwNDU0B3VuaTA0QTkHdW5pMDRCNQd1bmkwNEJEB3VuaTA0RTEHdW5pMDQ3NQd1bmkwMDI0B3VuaTAwQTIHdW5pMDBBNQd1bmkwMEEzB3VuaTAxOTIHdW5pMjBCQQd1bmkyMEJEB3VuaTIwQUMHdW5pMjBCOQd1bmkyMEI4B3VuaTIwQTcHdW5pMjBCMQd1bmkyMEFEB3VuaTIwQTkHdW5pMjBBNAd1bmkyMEIzB3VuaTIwQjQHdW5pMjBBNgd1bmkyMEIyB3VuaTIwQTEHdW5pMjBCNQd1bmkyMEEyB3VuaTIwQUUHdW5pMjBBRgd1bmkyMEE1B3VuaTIwQUEHdW5pMjBCQwd1bmkyMEE4B3VuaTIwQkUHdW5pMjBBMwd1bmkwRTNGB3VuaTIwQkYHdW5pMDAzMAd1bmkwMDMxB3VuaTAwMzIHdW5pMDFCQgd1bmkwMDMzB3VuaTAwMzQHdW5pMDAzNQd1bmkwMUJDB3VuaTAwMzYHdW5pMDAzNwd1bmkwMDM4B3VuaTAwMzkHdW5pRTA2Qgd1bmlFMDZDB3VuaUUwNkQHdW5pRTA2RQd1bmlFMDZGB3VuaUUwNzAHdW5pRTA3MQd1bmlFMDcyB3VuaUUwNzMHdW5pRTA3NAd1bmlFMDc1B3VuaUUwNzYHdW5pRTA3Nwd1bmlFMDc4B3VuaUUwNzkHdW5pRTA3QQd1bmlFMDdCB3VuaUUwN0MHdW5pRTA3RAd1bmlFMDdFB3VuaUUwN0YHdW5pRTA4MAd1bmkwMDI2B3VuaTAwMjEHdW5pMjAzQwd1bmkwMEExB3VuaTIwNDkHdW5pMDAzRgd1bmkyMDQ3B3VuaTIwNDgHdW5pMDBCRgd1bmkyMDNEB3VuaTJFMTgHdW5pMDAyOAd1bmkwMDI5B3VuaTAwNUIHdW5pMjA0NQd1bmkwMDVEB3VuaTIwNDYHdW5pMDA3Qgd1bmkwMDdEB3VuaTAwNDAMdW5pMDAyOC5jYXNlDHVuaTAwMjkuY2FzZQx1bmkwMDVCLmNhc2UMdW5pMDA1RC5jYXNlDHVuaTAwN0IuY2FzZQx1bmkwMDdELmNhc2UMdW5pMDA0MC5jYXNlB3VuaTAwMjMHdW5pMDBBNAd1bmkwMDJGB3VuaTAwN0MHdW5pMDBBNgd1bmkwMDVDB3VuaTAwMkQHdW5pMDBBRAd1bmkyMDEzB3VuaTIwMTIHdW5pMjAxNAd1bmkyMDE1B3VuaTIwMjIHdW5pMjVFNgd1bmkyMDQzB3VuaTIwMjMHdW5pMjA0Qwd1bmkyMDREB3VuaTI1QUEMdW5pMDAyRC5jYXNlDHVuaTIwMTMuY2FzZQx1bmkyMDEyLmNhc2UMdW5pMjAxNC5jYXNlDHVuaTIwMjIuY2FzZQx1bmkyNUU2LmNhc2UMdW5pMjA0My5jYXNlDHVuaTIwMjMuY2FzZQx1bmkyMDRDLmNhc2UMdW5pMjA0RC5jYXNlDHVuaTI1QUEuY2FzZQd1bmkyMDE4B3VuaTIwMTkHdW5pMDJCQwd1bmkwMDI3B3VuaTAwMjIHdW5pMjAxQwd1bmkyMDFEB3VuaTIwMUUHdW5pMjAxQQd1bmkyMDMyB3VuaTIwMzMHdW5pMjAzNAd1bmkyMDU3B3VuaTIwMzUHdW5pMjAzNgd1bmkyMDM3B3VuaTAyQjkHdW5pMDJCQQd1bmkwMDJDB3VuaTAwMkUHdW5pMjAyNgd1bmkyMDI1B3VuaTAwM0EMdW5pMDAzQS5jYXNlB3VuaUVFMDEHdW5pMDAzQgd1bmlFMDkzB3VuaUUwOTQHdW5pRTA5NQd1bmlFMDk2B3VuaTAwQjcHdW5pMDM4Nwd1bmkwMzdFB3VuaTIwMzkHdW5pMjAzQQd1bmkwMEFCB3VuaTAwQkIHdW5pMDAzQwd1bmkwMDNFB3VuaTIyNjQHdW5pMjI2NQd1bmkwMDNEB3VuaTIyNjAHdW5pMDAyQgd1bmkyMjEyB3VuaTAwRDcHdW5pMDBGNwd1bmkwMEIxB3VuaTIyNDgHdW5pMDA3RQx1bmkwMDNDLmNhc2UMdW5pMDAzRS5jYXNlDHVuaTIyNjQuY2FzZQx1bmkyMjY1LmNhc2UMdW5pMDAzRC5jYXNlDHVuaTIyNjAuY2FzZQx1bmkwMDJCLmNhc2UMdW5pMjIxMi5jYXNlDHVuaTAwRDcuY2FzZQx1bmkwMEY3LmNhc2UMdW5pMDBCMS5jYXNlDHVuaTIyNDguY2FzZQx1bmkwMDdFLmNhc2UHdW5pMDBBQwd1bmkwMDVGB3VuaTIwMjAHdW5pMjAyMQd1bmkwMDVFB3VuaTAwMkEMdW5pMDAyQS5jYXNlB3VuaTAwQUUHdW5pMDBBOQZ1MUYxMkYHdW5pMjExNwd1bmkyMTIyB3VuaTIxMjAHdW5pMjEyMQd1bmkyMTNCBnUxRjE2QgZ1MUYxNkEHdW5pMDBCMAd1bmkwMEFBB3VuaTAwQkEHdW5pRTBBNQd1bmlFMEE2B3VuaTAwQjYHdW5pMjA0Qgd1bmkwMEE3B3VuaTIyMUUHdW5pMjIwMgd1bmkyMjExB3VuaTIyMEYHdW5pMjIyQgd1bmkyMjFBB3VuaTIyMDUHdW5pMjVDQQd1bmkxRDQzB3VuaTFENDcHdW5pMUQ5Qwd1bmkxRDQ4B3VuaTFENDkHdW5pMURBMAd1bmkxRDREB3VuaTAyQjAHdW5pMjA3MQd1bmkwMkIyB3VuaTFENEYHdW5pMDJFMQd1bmkxRDUwB3VuaTIwN0YHdW5pMUQ1Mgd1bmkxRDU2B3VuaUUxNjMHdW5pMDJCMwd1bmkwMkUyB3VuaTFENTcHdW5pMUQ1OAd1bmkxRDVCB3VuaTAyQjcHdW5pMDJFMwd1bmkwMkI4B3VuaTFEQkIHdW5pMjA3MAd1bmkwMEI5B3VuaTAwQjIHdW5pMDBCMwd1bmkyMDc0B3VuaTIwNzUHdW5pMjA3Ngd1bmkyMDc3B3VuaTIwNzgHdW5pMjA3OQd1bmkyMDdEB3VuaTIwN0UHdW5pRTBBNwd1bmlFMEE4B3VuaTIwN0EHdW5pMjA3Qgd1bmkyMDdDB3VuaTIwOTAHdW5pRTBBOQd1bmlFMEFBB3VuaUUwQUIHdW5pMjA5MQd1bmlFMEFDB3VuaUUwQUQHdW5pMjA5NQd1bmkxRDYyB3VuaTJDN0MHdW5pMjA5Ngd1bmkyMDk3B3VuaTIwOTgHdW5pMjA5OQd1bmkyMDkyB3VuaTIwOUEHdW5pRTBBRQd1bmkxRDYzB3VuaTIwOUIHdW5pMjA5Qwd1bmkxRDY0B3VuaTFENjUHdW5pRTBBRgd1bmkyMDkzB3VuaUUwQjAHdW5pRTBCMQd1bmkyMDgwB3VuaTIwODEHdW5pMjA4Mgd1bmkyMDgzB3VuaTIwODQHdW5pMjA4NQd1bmkyMDg2B3VuaTIwODcHdW5pMjA4OAd1bmkyMDg5B3VuaTIwOEQHdW5pMjA4RQd1bmlFMEIyB3VuaUUwQjMHdW5pMjA4QQd1bmkyMDhCB3VuaTIwOEMHdW5pRTBCNAd1bmlFMEI1B3VuaUUwQjYHdW5pRTBCNwd1bmlFMEI4B3VuaUUwQjkHdW5pRTBCQQd1bmlFMEJCB3VuaUUwQkMHdW5pRTBCRAd1bmkyMDQ0B3VuaUUwQkUHdW5pRTBCRgd1bmlFMEMwB3VuaUUwQzEHdW5pRTBDMgd1bmlFMEMzB3VuaUUwQzQHdW5pRTBDNQd1bmlFMEM2B3VuaUUwQzcHdW5pRTBDOAd1bmlFMEM5B3VuaUUwQ0EHdW5pRTBDQgd1bmlFMENDB3VuaUUwQ0QHdW5pRTBDRQd1bmlFMENGB3VuaUUwRDAHdW5pRTBEMQd1bmlFMEQyB3VuaUUwRDMHdW5pRTBENAd1bmlFMEQ1B3VuaUUwRDYHdW5pRTBENwd1bmlFMEQ4B3VuaUUwRDkHdW5pRTBEQQd1bmlFMERCB3VuaUUwREMHdW5pRTBERAd1bmlFMERFB3VuaUUwREYHdW5pRTBFMAd1bmlFMEUxB3VuaUUwRTIHdW5pRTBFMwd1bmlFMEU0B3VuaUUwRTUHdW5pMDBCRAd1bmkyMTUzB3VuaTAwQkMHdW5pMDBCRQd1bmkyMTVBB3VuaTIxNUYHdW5pMjE1RQd1bmkyMTVCB3VuaTIxNUQHdW5pMjE1Qwd1bmkwMDI1B3VuaTIwMzAHdW5pMjAzMQd1bmkyMTREB3VuaTIxMDYHdW5pMjEwNQd1bmkyMTAwB3VuaTIxMDEHdW5pMDBCNAd1bmkwMkREB3VuaTAwNjAHdW5pMDM4NAd1bmkwMEE4D2Nhc2VkaWVyZXNpcy5jbgd1bmkwMkM2B3VuaTAyREMMY2FzZXRpbGRlLmNuB3VuaTAwQUYHdW5pMDJEOAd1bmlFMEU2B3VuaTAyRDkHdW5pMDJEQQp1bmkwMkRBLnVjB3VuaTAyQzcHdW5pMDM4NQd1bmkwMEI4B3VuaTAyREIHdW5pRjZDMwd1bmkwMzAxB3VuaTAzMEIHdW5pMDMwMAd1bmkwMzBGB3VuaTAzMDQHdW5pMDMwOAd1bmkwMzA2B3VuaTAzMTEHdW5pMDMwOQd1bmkwMzAyB3VuaTAzMEMHdW5pMDMwMwd1bmkwMzA3B3VuaTAzMEEHdW5pMDMxQgd1bmkwMzI4B3VuaTAzMjcHdW5pMDMyRAd1bmkwMzJFB3VuaTAzMjMHdW5pMDMyNgd1bmkwMzI0B3VuaTAzMjUHdW5pMDMzMgd1bmkwMzMwB3VuaTAwMjAHdW5pMDBBMAd1bmkyMDJGB3VuaTIwNUYHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMEIHdW5pMjExNgd1bmkyMTAzB3VuaTIxMDkHdW5pMjEyQQd1bmkyMTJCB3VuaTAyOTgHdW5pMjEyRQd1bmkyMTkwB3VuaTI3RjUGdTFGODUwB3VuaTIxRDAHdW5pMjdGOAd1bmkyMTkyB3VuaTI3RjYGdTFGODUyB3VuaTIxRDIHdW5pMjdGOQd1bmkyMTk2B3VuaTIxOTcHdW5pMjE5OAd1bmkyMTk5B3VuaTIxOTQHdW5pMjdGNwd1bmkyMUQ0B3VuaTI3RkEHdW5pMjE5MQd1bmkyMTkzB3VuaTIxOTUHdW5pMjFBOQd1bmkyMUFBDHVuaTIxOTAuY2FzZQx1bmkyN0Y1LmNhc2ULdTFGODUwLmNhc2UMdW5pMjFEMC5jYXNlDHVuaTI3RjguY2FzZQx1bmkyMTkyLmNhc2UMdW5pMjdGNi5jYXNlC3UxRjg1Mi5jYXNlDHVuaTIxRDIuY2FzZQx1bmkyN0Y5LmNhc2UMdW5pMjE5NC5jYXNlDHVuaTI3RjcuY2FzZQx1bmkyMUQ0LmNhc2UMdW5pMjdGQS5jYXNlB3VuaTI3MTMHdW5pMjcxNwd1bmkyNUJDB3VuaTI1QjIHdW5pMjVDMAd1bmkyNUJBB3VuaTI1QkQHdW5pMjVCMwd1bmkyNUMxB3VuaTI1QjcHdW5pMjZBMAd1bmkyNUNGB3VuaTI1Q0IHdW5pMjVBMAd1bmkyNUExB3VuaTI1QTIHdW5pMkIxMgd1bmkyQjEzB3VuaTI1QzYHdW5pMjc1Ngd1bmkyNUM3B3VuaUUwMDAHdW5pMjYzQwd1bmkyNjAwB3VuaTI2NjEHdW5pMjY2NQd1bmkyNzY0B3VuaTI2MDUHdW5pMjYwNgd1bmkyQjA2B3VuaTIxRTcHdW5pMjFFQQd1bmkyMzE4B3VuaTIzMDMHdW5pMjMwNQd1bmkyMzgwB3VuaTIzMjUHdW5pMjM4Nwd1bmkyMzhCB3VuaTIxQkEHdW5pMjFCQgd1bmkyMzJCB3VuaTIzMjYHdW5pMjMyNwd1bmkyM0NGB3VuaTIzQ0UHdW5pMjFCNQd1bmkyMUIzB3VuaTIxQjAHdW5pMjFCMQd1bmkyMUI0B3VuaTIxRTQHdW5pMjFFNQd1bmkyMURFB3VuaTIxREYHdW5pMjVFRgd1bmkyQjFDB3VuaTIwREQHdW5pMjBERQd1bmkyNEI2B3VuaTI0QjcHdW5pMjRCOAd1bmkyNEI5B3VuaTI0QkEHdW5pMjRCQgd1bmkyNEJDB3VuaTI0QkQHdW5pMjRCRQd1bmkyNEJGB3VuaTI0QzAHdW5pMjRDMQd1bmkyNEMyB3VuaTI0QzMHdW5pMjRDNAd1bmkyNEM1B3VuaTI0QzYHdW5pMjRDNwd1bmkyNEM4B3VuaTI0QzkHdW5pMjRDQQd1bmkyNENCB3VuaTI0Q0MHdW5pMjRDRAd1bmkyNENFB3VuaTI0Q0YHdW5pMjRFQQd1bmkyNDYwB3VuaTI0NjEHdW5pMjQ2Mgd1bmkyNDYzB3VuaTI0NjQHdW5pMjQ2NQd1bmkyNDY2B3VuaTI0NjcHdW5pMjQ2OAd1bmlFMTJCB3VuaUUxMkMHdW5pRTEyRAd1bmlFMTJFB3VuaUUxMkYHdW5pRTEzMAd1bmlFMTMxB3VuaUUxMzIHdW5pRTEzMwd1bmlFMTM0B3VuaUUxMzUHdW5pRTEzNgd1bmlFMTM3B3VuaUUxNUYHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTEzOAd1bmlFMTM5B3VuaUUxM0EHdW5pRTEzQgd1bmlFMTNDB3VuaUUxM0QGdTFGMTMwBnUxRjEzMQZ1MUYxMzIGdTFGMTMzBnUxRjEzNAZ1MUYxMzUGdTFGMTM2BnUxRjEzNwZ1MUYxMzgGdTFGMTM5BnUxRjEzQQZ1MUYxM0IGdTFGMTNDBnUxRjEzRAZ1MUYxM0UGdTFGMTNGBnUxRjE0MAZ1MUYxNDEGdTFGMTQyBnUxRjE0MwZ1MUYxNDQGdTFGMTQ1BnUxRjE0NgZ1MUYxNDcGdTFGMTQ4BnUxRjE0OQd1bmlFMTNFB3VuaUUxM0YHdW5pRTE0MAd1bmlFMTQxB3VuaUUxNDIHdW5pRTE0Mwd1bmlFMTQ0B3VuaUUxNDUHdW5pRTE0Ngd1bmlFMTQ3B3VuaUUxNDgHdW5pRTE0OQd1bmlFMTRBB3VuaUUxNEIHdW5pRTE0Qwd1bmlFMTREB3VuaUUxNEUHdW5pRTE0Rgd1bmlFMTUwB3VuaUUxNTEHdW5pRTE1Mgd1bmlFMTUzB3VuaUUxNTQHdW5pRTE1NQd1bmlFMTU2B3VuaUUxNTcHdW5pRTE1OAd1bmlFMTU5B3VuaUUxNUEHdW5pRTE1Qgd1bmlFMTVDB3VuaUUxNUQHdW5pRTE1RQd1bmkwMTgyB3VuaTA0QkUHdW5pMDRGNAd1bmkwNENCB3VuaTAxRjEHdW5pMDExMAd1bmkwM0RDB3VuaTAxOEIHdW5pMDQ2NAd1bmkwNEM1B3VuaTAxOTAHdW5pMDRBQQd1bmkwMUE5B3VuaTAwRDAHdW5pMDFCNwd1bmkwMUVFB3VuaTAxQjgHdW5pMDQ5Mgd1bmkwMjYyB3VuaTAyOUIHdW5pMDEzMgd1bmkwMjZBB3VuaTA0NzYHdW5pMDNERQd1bmkwNDgwB3VuaTA0NkUHdW5pMDFDNwd1bmkwMTNGB3VuaTAyOUYHdW5pMDFDQQd1bmkwMjc0B3VuaTAyNzYHdW5pMDFBMgd1bmkwNDYwB3VuaTA0N0EHdW5pMDQ3Qwd1bmkwNDdFB3VuaTA0NzAHdW5pMDI4MAd1bmkwMjgxB3VuaTAyQjYHdW5pMDNFMAd1bmkwMThGB3VuaTA0REEHdW5pMDNEQQd1bmkwMTY2B3VuaTA0QUMHdW5pMDE4NAd1bmkwNDc4B3VuaTA0QUUHdW5pMDRCMAd1bmkwMUIyB3VuaTAxQTYHdW5pMDRGOAd1bmkwMjhGB3VuaTA0NkEHdW5pMDQ2Qwd1bmkwNDY2B3VuaTA0NjgHdW5pMDQ5OAd1bmkwNERFB3VuaTA0QzEHdW5pMDREQw5fdGlsZGVjcm9zcy5jbgd1bmlFMTFCB3VuaUUxMDQHdW5pMDJDRgd1bmkwMzQxB3VuaTAzMTcHdW5pMDQxMwd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQwMwd1bmkwNDBDB3VuaTA0MEUHdW5pMDQ2Mgd1bmkwMzFBB3VuaTAzMkIHdW5pMDJDNQd1bmkwMkMyB3VuaTAzNTAHdW5pMDJDMwd1bmkwMkM0B3VuaTAyNTEHdW5pRTEwQQd1bmkwMjUyB3VuaTIwNDIHdW5pMDI2NAd1bmkwMzM2B3VuaTAzMzUHdW5pMDNEMAd1bmlFMTFBB3VuaUUxMUMHdW5pRTEyNwd1bmkwMzYxB3VuaTAzMkYHdW5pRTEyMAd1bmkwMzNBB3VuaTAzMkEHdW5pMDMxMAd1bmkyMDM4B3VuaTIwNDEHdW5pMDMyQwd1bmlFMTE5B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaTIwNDAHdW5pMDRCRgd1bmkwNEY1B3VuaTA0Q0MHdW5pRTE2NAd1bmlFMTE2B3VuaUUxMUYHdW5pRTEyNgd1bmkwMkQxB3VuaTAyRDAHdW5pMDMxMwd1bmkwMzE1E2NvbW1hYWNjZW50cmlnaHQuY24HdW5pRTEyOAd1bmkwMkJEB3VuaTAzMTQHdW5pMDJCQgd1bmkwMzEyB3VuaUUxMDMHdW5pMDI5Nwd1bmlFMTE0B3VuaUUxMEIPY3lyaWxsaWN0YWlsLmNuDmN5cmlsbGljdGljLmNuB3VuaTA0ODUHdW5pMDJFRQd1bmkwMThEB3VuaTAzNDQHdW5pRTEyMQd1bmlFMTA2B3VuaUUxMTcHdW5pRTExMwd1bmlFMTI0B3VuaUUxMEUHdW5pRTExOAd1bmlFMTBEB3VuaTAzREQHdW5pRTEyMgd1bmlFMTBDB3VuaTAyRDUHdW5pMjE3Nwd1bmkwNDY1B3VuaTIxN0EHdW5pMDM0Nwd1bmkwMjU4B3VuaTA0QUIHdW5pMDI4Mwd1bmkwMjg2B3VuaTAxQUEHdW5pMDI4NQd1bmkyMEEwB3VuaTAxQzMHdW5pMDI5Mgd1bmkwMUVGB3VuaTAyOTMHdW5pMDFCOQd1bmkwMUJBB3VuaTAyQUEHdW5pMDJBRAd1bmkwMkI1B3VuaTAyQzkHdW5pMjE3NAd1bmkyMTczB3VuaTAyQ0IHdW5pMDJFMAd1bmkwMjYxB3VuaTA0OTMHdW5pMDQ1Mwd1bmkwMjk0B3VuaTAyQTEHdW5pMDFCRQd1bmkwMkEyB3VuaTAyOTYHdW5pMDJDMAd1bmkwMkU0B3VuaTAyQzEHdW5pMDI5NQd1bmkwMzQwB3VuaTAyQ0UHdW5pMDMxNgd1bmkwMkIxB3VuaTAzMjEHdW5pMDMyMgd1bmkyMDEwB3VuaTIwMjcHdW5pMjAxMQd1bmkwNEU1B3VuaTA0MzkHdW5pMDRFMwd1bmkwMzQ1B3VuaTA0NzcHdW5pMDI4NAd1bmkwM0JBB3VuaTAzRjAHdW5pMDEzOAd1bmkwNDVDB3VuaTAzREYHdW5pMDQ4MRRrb3JvbmlzYWNjZW50bGVmdC5jbgd1bmkwMzQzB3VuaTA0NkYHdW5pMDE5Qgd1bmlFMTBGB3VuaTAyQzgHdW5pMDMwRQd1bmkwMzBEB3VuaTAzMjkHdW5pMDE3Rgd1bmkwMkVGB3VuaTIxMTMHdW5pMDI2RQd1bmlFMEY2B3VuaUUwRjgHdW5pRTEyMwd1bmlFMTExB3VuaUUwRjcHdW5pRTBGOQd1bmkwMkNEB3VuaTAzMzEHdW5pMDE5Qwd1bmkwMkQ3B3VuaTAzQkMHdW5pMjE3OAd1bmkwM0JEB3VuaTAzNzQHdW5pMDM3NQd1bmkwNEU5B3VuaTA0RUIHdW5pMDFBMwd1bmkwMjc3B3VuaTA0NjEHdW5pMDQ3Qgd1bmkwNDdEB3VuaTIwMjQHdW5pMjE3MAd1bmkwMjU0B3VuaTA0N0YHdW5pMjAzRQd1bmkwMzNGB3VuaTAzMDUHdW5pMDQ4NAd1bmkwNEMwB3VuaTAzNDIHdW5pMDI3OAd1bmkwMUMwB3VuaTAxQzEHdW5pMDFDMgd1bmkwM0Q2B3VuaTAyRDYHdW5pMDQ3MQd1bmkwNDg2B3VuaTAyREYHdW5pMjAxRgd1bmkyMDFCB3VuaTIwM0IHdW5pMjA0Rgd1bmkwM0YxB3VuaTAyREUHdW5pRTExNQd1bmkwMkJGB3VuaTAyRDMHdW5pMDJCRQd1bmkwMkQyB3VuaTAzMUMHdW5pMDMzOQd1bmkyMTY3B3VuaTIxNkEHdW5pMjE2Qwd1bmkyMTY0B3VuaTIxNkUHdW5pMjE2Mwd1bmkyMTZEB3VuaTIxNjgHdW5pMjE2MAd1bmkyMTY2B3VuaTIxNjUHdW5pMjE2OQd1bmkyMTZGB3VuaTIxNjIHdW5pMjE2Qgd1bmkyMTYxB3VuaTAyN0EHdW5pMDJCNAd1bmkwM0UxB3VuaTAyNTkHdW5pMDREOQd1bmkwNERCB3VuaTAyNUEHdW5pMDMzQwd1bmkwMkNBB3VuaTIxNzYHdW5pMjE3NQd1bmkwMzM4B3VuaTAzMzcHdW5pMjQyMwd1bmkwMzNCB3VuaTAzREIHdW5pMDMxRQd1bmkwMzE4B3VuaTAzMTkHdW5pMDMxRAd1bmkwNEFEB3VuaTIxNzkHdW5pMDJBNwd1bmkwM0QxB3VuaTAxQUQHdW5pMDQ4Mgd1bmkyMTcyB3VuaUUxMTIHdW5pRTEyQQd1bmlFMTFFB3VuaUUxMDUHdW5pMDM2MAd1bmlFMTI1B3VuaUUxMTAHdW5pMDMzNAd1bmkwMzNFB3VuaTA0ODMHdW5pMDJFNQd1bmkwMkU5B3VuaTAyRTYHdW5pMDJFOAd1bmkwMkU3B3VuaTAxQkQHdW5pMDE4NQd1bmlFMTI5B3VuaTAyQTYHdW5pMjE3Qgd1bmkyMTcxB3VuaTIwMTcHdW5pMDMzMwd1bmkyMDNGB3VuaTAxRjcHdW5pMDIxQwd1bmkwMjFEB3VuaTAyMjAHdW5pMDIyMgd1bmkwMjIzB3VuaTAyMzgHdW5pMDIzOQd1bmkwMjQxB3VuaTAyNDIHdW5pMDI0NQd1bmlFMEYzB3VuaTAyOTkHdW5pMDI5Qwd1bmkwMkFCB3VuaTAyQUMHdW5pRTBGNQd1bmkwMkVBB3VuaTAyRUIHdW5pMDJFQwd1bmkwMkVEB3VuaTAyRjAHdW5pMDJGMQd1bmkwMkYyB3VuaTAyRjMHdW5pMDJGNAd1bmkwMkY1B3VuaTAyRjYHdW5pMDJGNwd1bmkwMkY4B3VuaTAyRjkHdW5pMDJGQQd1bmkwMkZCB3VuaTAyRkMHdW5pMDJGRAd1bmkwMkZFB3VuaTAyRkYHdW5pMDM0Ngd1bmkwMzQ4B3VuaTAzNDkHdW5pMDM0QQd1bmkwMzRCB3VuaTAzNEMHdW5pMDM0RAd1bmkwMzRFB3VuaTAzNEYHdW5pMDM1MQd1bmkwMzUyB3VuaTAzNTMHdW5pMDM1NAd1bmkwMzU1B3VuaTAzNTYHdW5pMDM1Nwd1bmkwMzU4B3VuaTAzNTkHdW5pMDM1QQd1bmkwMzVCB3VuaTAzNUMHdW5pMDM1RAd1bmkwMzVFB3VuaTAzNUYHdW5pMDM2Mgd1bmkwMzYzB3VuaTAzNjQHdW5pMDM2NQd1bmkwMzY2B3VuaTAzNjcHdW5pMDM2OAd1bmkwMzY5B3VuaTAzNkEHdW5pMDM2Qgd1bmkwMzZDB3VuaTAzNkQHdW5pMDM2RQd1bmkwMzZGB3VuaTAzNzAHdW5pMDM3MQd1bmkwMzcyB3VuaTAzNzMHdW5pMDM3Nwd1bmkwMzdCB3VuaTAzN0MHdW5pMDM3RAd1bmkwM0NGB3VuaTAzRDcHdW5pMDNEOAd1bmkwM0Q5B3VuaTAzRjUHdW5pMDNGNgd1bmkwM0Y3B3VuaTAzRjgHdW5pMDNGQgd1bmkwM0ZEB3VuaTAzRkUHdW5pMDNGRgd1bmkwNDVEB3VuaTA0ODcHdW5pMDQ4OAd1bmkwNDg5B3VuaTA0OEMHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RjYHdW5pMDRGNwd1bmkwNEZFB3VuaTA0RkYHdW5pMURCRgd1bmkxREMwB3VuaTFEQzEHdW5pMURDMgd1bmkxREMzB3VuaTFEQzQHdW5pMURDNQd1bmkxREM2B3VuaTFEQzcHdW5pMURDOAd1bmkxREM5B3VuaTFEQ0EHdW5pMURDQgd1bmkxRENDB3VuaTFEQ0QHdW5pMURDRQd1bmkxRENGB3VuaTFERDAHdW5pMUREMQd1bmkxREQyB3VuaTFERDMHdW5pMURENAd1bmkxREQ1B3VuaTFERDYHdW5pMURENwd1bmkxREQ4B3VuaTFERDkHdW5pMUREQQd1bmkxRERCB3VuaTFEREMHdW5pMURERAd1bmkxRERFB3VuaTFEREYHdW5pMURFMAd1bmkxREUxB3VuaTFERTIHdW5pMURFMwd1bmkxREU0B3VuaTFERTUHdW5pMURFNgd1bmkxREU3B3VuaTFERTgHdW5pMURFOQd1bmkxREVBB3VuaTFERUIHdW5pMURFQwd1bmkxREVEB3VuaTFERUUHdW5pMURFRgd1bmkxREYwB3VuaTFERjEHdW5pMURGMgd1bmkxREYzB3VuaTFERjQHdW5pMURGNQd1bmkxREZDB3VuaTFERkQHdW5pMURGRQd1bmkxREZGB3VuaTFFOUQHdW5pMUU5Rgd1bmkxRUZBB3VuaTFFRkIHdW5pMUVGQwd1bmkxRUZEB3VuaTFFRkUHdW5pMUVGRgd1bmkxRjcxB3VuaTFGNzMHdW5pMUY3NQd1bmkxRjc3B3VuaTFGNzkHdW5pMUY3Qgd1bmkxRjdEB3VuaTFGQkQHdW5pMUZCRQd1bmkxRkJGB3VuaTFGQzAHdW5pMUZDMQd1bmkxRkNEB3VuaUUwRkIHdW5pMUZDRQd1bmlFMEZEB3VuaTFGQ0YHdW5pRTBGRgd1bmkxRkQzB3VuaTFGREQHdW5pRTBGQwd1bmkxRkRFB3VuaUUwRkUHdW5pMUZERgd1bmlFMTAwB3VuaTFGRTMHdW5pMUZFRAd1bmkxRkVFB3VuaTFGRUYHdW5pRTEwMQd1bmkxRkZEB3VuaUUxMDIHdW5pMUZGRQd1bmlFMEZBB3VuaTIwNEEHdW5pMjA0RQd1bmkyMDUwB3VuaTIwNTEHdW5pMjA1Mgd1bmkyMDUzB3VuaTIwNTQHdW5pMjA1NQd1bmkyMDU2B3VuaTIwNTgHdW5pMjA1OQd1bmkyMDVBB3VuaTIwNUIHdW5pMjA1Qwd1bmkyMDVEB3VuaTIwNUUHdW5pRTBGNAd1bmkyMDk0B3VuaTIwQjAHdW5pMjBCNgd1bmkyMEI3B3VuaTIwQkIHdW5pMjBEQgd1bmkyMERDB3VuaTIwRTgHdW5pMjBGMAd1bmkyMTRGB3VuaTIxN0MHdW5pMjE3RAd1bmkyMTdFB3VuaTIxN0YHdW5pMjE4MAd1bmkyMTgxB3VuaTIxODIHdW5pMjE4Mwd1bmkyMTg0B3VuaTIxODUHdW5pMjE4Ngd1bmkyMTg3B3VuaTIxODgHdW5pMjdFRgd1bmkyREZGB3VuaUE2OUYHdW5pQTdGRgd1bmlBOTJFB3VuaUZFMjAHdW5pRkUyMQd1bmlGRTIyB3VuaUZFMjMHdW5pRkUyNAd1bmlGRTI1B3VuaUZFMjYHdW5pRkUyNwd1bmlGRTI4B3VuaUZFMjkHdW5pRkUyQQd1bmlGRTJCB3VuaUZFMkMHdW5pRkUyRAd1bmkwMjhBB3VuaTAyRDQHdW5pMDRBRgd1bmkwNEIxB3VuaTIxMjMHdW5pMjAxNgd1bmkwMkNDB3VuaTAyOEIHdW5pMDFCRgd1bmkwMzNEB3VuaTA0RjkHdW5pMDM3QQd1bmkwNDZCB3VuaTA0NkQHdW5pMDQ2Nwd1bmkwNDY5B3VuaTA0OTkHdW5pMDRERgd1bmlGRUZGB3VuaTA0QzIHdW5pMDRERAAAAAAABAAAAAMAAFEcAAAABAAAACQAAwABAABRHAADAAoAAAAk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AAABOQAABBoAAAQaAAAEAwAABBsAAAQbAAAEBgAABBwAAAQcAAABKgAABB0AAAQdAAAAuwAABB4AAAQeAAABcAAABB8AAAQiAAAHxAAABCMAAAQkAAAECQAABCUAAAQlAAAHyAAABCYAAAQmAAAECwAABCcAAAQnAAAEDQAABCgAAAQsAAAEEgAABC0AAAQvAAAEGQAABDAAAAQwAAACGQAABDEAAAQzAAAEtgAABDQAAAQ0AAAEuwAABDUAAAQ1AAACfwAABDYAAAQ2AAAEvAAABDcAAAQ4AAAEvgAABDkAAAQ5AAAIQwAABDoAAAQ6AAAEwQAABDsAAAQ7AAAExgAABDwAAAQ8AAAEyQAABD0AAAQ9AAAEywAABD4AAAQ+AAADNwAABD8AAAQ/AAAE0AAABEAAAARAAAADQAAABEEAAARBAAACUQAABEIAAARCAAAE0QAABEMAAARDAAADwwAABEQAAAREAAAE0gAABEUAAARFAAADtAAABEYAAARGAAAE1QAABEcAAARHAAAE1wAABEgAAARJAAAE2gAABEoAAARLAAAE3QAABEwAAARMAAAE3AAABE0AAARPAAAE4wAABFAAAARRAAACgAAABFIAAARSAAAClwAABFMAAARTAAAILwAABFQAAARUAAAE6AAABFUAAARVAAADcAAABFYAAARXAAACwAAABFgAAARYAAACyQAABFkAAARaAAAE4QAABFsAAARbAAAClgAABFwAAARcAAAISwAABF0AAARdAAAJMwAABF4AAAReAAADxAAABF8AAARfAAAE1gAABGAAAARgAAAHnwAABGEAAARhAAAIbgAABGIAAARiAAAHzAAABGMAAARjAAAE4AAABGQAAARkAAAHhgAABGUAAARlAAAIFQAABGYAAARmAAAHtwAABGcAAARnAAAJ7AAABGgAAARoAAAHuAAABGkAAARpAAAJ7QAABGoAAARqAAAHtQAABGsAAARrAAAJ6gAABGwAAARsAAAHtgAABG0AAARtAAAJ6wAABG4AAARuAAAHlwAABG8AAARvAAAIUAAABHAAAARwAAAHowAABHEAAARxAAAIgQAABHIAAARyAAAEBwAABHMAAARzAAADNQAABHQAAAR0AAAEIwAABHUAAAR1AAAE7QAABHYAAAR2AAAHlAAABHcAAAR3AAAIRgAABHgAAAR4AAAHrgAABHkAAAR5AAADOgAABHoAAAR6AAAHoAAABHsAAAR7AAAIbwAABHwAAAR8AAAHoQAABH0AAAR9AAAIcAAABH4AAAR+AAAHogAABH8AAAR/AAAIdAAABIAAAASAAAAHlgAABIEAAASBAAAITQAABIIAAASCAAAIugAABIMAAASDAAAIxQAABIQAAASEAAAIeAAABIUAAASFAAAIBAAABIYAAASGAAAIggAABIcAAASJAAAJNAAABIoAAASKAAABPAAABIsAAASLAAAEwAAABIwAAASMAAAJNwAABI0AAASNAAAE3wAABI4AAASOAAABeQAABI8AAASPAAADPAAABJAAAASQAAAD/QAABJEAAASRAAAEuQAABJIAAASSAAAHjwAABJMAAASTAAAILgAABJQAAASUAAAEHAAABJUAAASVAAAE5gAABJYAAASWAAAEAQAABJcAAASXAAAEvQAABJgAAASYAAAHuQAABJkAAASZAAAJ7gAABJoAAASaAAABFQAABJsAAASbAAAEwwAABJwAAAScAAAEBAAABJ0AAASdAAAExAAABKAAAASgAAABFAAABKEAAAShAAAExQAABKIAAASiAAAAqwAABKMAAASjAAAEzAAABKQAAASkAAAArQAABKUAAASlAAAEzQAABKYAAASmAAAEHQAABKcAAASnAAAE5wAABKgAAASoAAAEHwAABKkAAASpAAAE6QAABKoAAASqAAAHiQAABKsAAASrAAAIGQAABKwAAASsAAAHrAAABK0AAAStAAAItQAABK4AAASuAAAHrwAABK8AAASvAAAJ4AAABLAAAASwAAAHsAAABLEAAASxAAAJ4QAABLIAAASyAAAB0gAABLMAAASzAAAE1AAABLQAAAS0AAAEDAAABLUAAAS1AAAE6gAABLYAAAS2AAAEDgAABLcAAAS3AAAE2AAABLgAAAS4AAAEDwAABLkAAAS5AAAE2QAABLoAAAS6AAAEEAAABLsAAAS7AAACpgAABLwAAAS8AAAEIAAABL0AAAS9AAAE6wAABL4AAAS+AAAHfwAABL8AAAS/AAAH7QAABMAAAATAAAAIeQAABMEAAATBAAAHuwAABMIAAATCAAAJ8QAABMMAAATDAAAEBQAABMQAAATEAAAEwgAABMUAAATFAAAHhwAABMYAAATGAAAExwAABMcAAATHAAAAqgAABMgAAATIAAAEzgAABMkAAATJAAAArAAABMoAAATKAAAEzwAABMsAAATLAAAHgQAABMwAAATMAAAH7wAABM0AAATNAAABJwAABM4AAATOAAAEygAABM8AAATPAAAC7wAABNAAAATQAAAAMQAABNEAAATRAAACGgAABNIAAATSAAAAMgAABNMAAATTAAACGwAABNQAAATUAAAAQAAABNUAAATVAAACHwAABNYAAATWAAAAiAAABNcAAATXAAACggAABNgAAATYAAAEIQAABNkAAATZAAAIpQAABNoAAATaAAAHqQAABNsAAATbAAAIpgAABNwAAATcAAAHvAAABN0AAATdAAAJ8gAABN4AAATeAAAHugAABN8AAATfAAAJ7wAABOAAAATgAAAEIgAABOEAAAThAAAE7AAABOIAAATiAAABOgAABOMAAATjAAAIRAAABOQAAATkAAABOwAABOUAAATlAAAIQgAABOYAAATmAAABcQAABOcAAATnAAADOAAABOgAAAToAAABcwAABOkAAATpAAAIagAABOoAAATqAAABdAAABOsAAATrAAAIawAABOwAAATtAAAJOAAABO4AAATuAAADyQAABO8AAATvAAADxQAABPAAAATwAAADygAABPEAAATxAAADxgAABPIAAATyAAADywAABPMAAATzAAADxwAABPQAAAT0AAAHgAAABPUAAAT1AAAH7gAABPYAAAT3AAAJOgAABPgAAAT4AAAHswAABPkAAAT5AAAJ6AAABPoAAAT6AAAD/gAABPsAAAT7AAAEugAABPwAAAT8AAAB0wAABP0AAAT9AAAE0wAABP4AAAT/AAAJPAAABS8AAAUvAAAEyAAADj8AAA4/AAAFDAAAHUMAAB1DAAAFyQAAHUcAAB1HAAAFygAAHUgAAB1JAAAFzAAAHU0AAB1NAAAFzwAAHU8AAB1PAAAF0wAAHVAAAB1QAAAF1QAAHVIAAB1SAAAF1wAAHVYAAB1WAAAF2AAAHVcAAB1YAAAF3AAAHVsAAB1bAAAF3gAAHWIAAB1iAAAF/AAAHWMAAB1jAAAGBQAAHWQAAB1lAAAGCAAAHZwAAB2cAAAFywAAHaAAAB2gAAAFzgAAHbsAAB27AAAF4gAAHb8AAB31AAAJPgAAHfwAAB3/AAAJdQAAHgAAAB4AAAAAFAAAHgEAAB4BAAACFgAAHgIAAB4CAAAAQgAAHgMAAB4DAAACQwAAHgQAAB4EAAAAQwAAHgUAAB4FAAACRAAAHgYAAB4GAAAARAAAHgcAAB4HAAACRQAAHggAAB4IAAAAUAAAHgkAAB4JAAACTwAAHgoAAB4KAAAAVwAAHgsAAB4LAAACWQAAHgwAAB4MAAAAWAAAHg0AAB4NAAACWgAAHg4AAB4OAAAAWQAAHg8AAB4PAAACWwAAHhAAAB4QAAAAWgAAHhEAAB4RAAACXAAAHhIAAB4SAAAAWwAAHhMAAB4TAAACXQAAHhQAAB4UAAAAbAAAHhUAAB4VAAACcgAAHhYAAB4WAAAAbQAAHhcAAB4XAAACcwAAHhgAAB4YAAAAbgAAHhkAAB4ZAAACdAAAHhoAAB4aAAAAbwAAHhsAAB4bAAACdQAAHhwAAB4cAAAAcAAAHh0AAB4dAAACdgAAHh4AAB4eAAAAiwAAHh8AAB4fAAACiAAAHiAAAB4gAAAAlgAAHiEAAB4hAAACkwAAHiIAAB4iAAAApQAAHiMAAB4jAAACoQAAHiQAAB4kAAAApgAAHiUAAB4lAAACogAAHiYAAB4mAAAApwAAHicAAB4nAAACowAAHigAAB4oAAAAogAAHikAAB4pAAAClQAAHioAAB4qAAAAqAAAHisAAB4rAAACpAAAHiwAAB4sAAAAyQAAHi0AAB4tAAACrAAAHi4AAB4uAAAAxwAAHi8AAB4vAAACqgAAHjAAAB4wAAABEQAAHjEAAB4xAAACzwAAHjIAAB4yAAABEgAAHjMAAB4zAAAC0AAAHjQAAB40AAABEwAAHjUAAB41AAAC0QAAHjYAAB42AAABHAAAHjcAAB43AAAC3gAAHjgAAB44AAABHQAAHjkAAB45AAAC3wAAHjoAAB46AAABHgAAHjsAAB47AAAC4AAAHjwAAB48AAABHwAAHj0AAB49AAAC4QAAHj4AAB4+AAABJAAAHj8AAB4/AAAC9AAAHkAAAB5AAAABJQAAHkEAAB5BAAAC9QAAHkIAAB5CAAABJgAAHkMAAB5DAAAC9gAAHkQAAB5EAAABMQAAHkUAAB5FAAADAgAAHkYAAB5GAAABMgAAHkcAAB5HAAADAwAAHkgAAB5IAAABMwAAHkkAAB5JAAADBAAAHkoAAB5KAAABNAAAHksAAB5LAAADBQAAHkwAAB5MAAABVAAAHk0AAB5NAAADGwAAHk4AAB5OAAABVQAAHk8AAB5PAAADHAAAHlAAAB5QAAABVgAAHlEAAB5RAAADHQAAHlIAAB5SAAABVwAAHlMAAB5TAAADHgAAHlQAAB5UAAABdwAAHlUAAB5VAAADPgAAHlYAAB5WAAABeAAAHlcAAB5XAAADPwAAHlgAAB5YAAABhAAAHlkAAB5ZAAADUgAAHloAAB5aAAABhQAAHlsAAB5bAAADUwAAHlwAAB5cAAABhgAAHl0AAB5dAAADVAAAHl4AAB5eAAABhwAAHl8AAB5fAAADVQAAHmAAAB5gAAABkQAAHmEAAB5hAAADawAAHmIAAB5iAAABkgAAHmMAAB5jAAADbAAAHmQAAB5kAAABkwAAHmUAAB5lAAADbQAAHmYAAB5mAAABlAAAHmcAAB5nAAADbgAAHmgAAB5oAAABlQAAHmkAAB5pAAADbwAAHmoAAB5qAAABnQAAHmsAAB5rAAADfgAAHmwAAB5sAAABngAAHm0AAB5tAAADfwAAHm4AAB5uAAABnwAAHm8AAB5vAAADgAAAHnAAAB5wAAABoAAAHnEAAB5xAAADgQAAHnIAAB5yAAABuAAAHnMAAB5zAAADmAAAHnQAAB50AAABuQAAHnUAAB51AAADmQAAHnYAAB52AAABugAAHncAAB53AAADmgAAHngAAB54AAABuwAAHnkAAB55AAADmwAAHnoAAB56AAABvAAAHnsAAB57AAADnAAAHnwAAB58AAABxgAAHn0AAB59AAADpgAAHn4AAB5+AAABxwAAHn8AAB5/AAADpwAAHoAAAB6AAAABygAAHoEAAB6BAAADrAAAHoIAAB6CAAABywAAHoMAAB6DAAADrQAAHoQAAB6EAAABzAAAHoUAAB6FAAADqQAAHoYAAB6GAAABzQAAHocAAB6HAAADrgAAHogAAB6IAAABzgAAHokAAB6JAAADrwAAHooAAB6KAAAB0AAAHosAAB6LAAADsgAAHowAAB6MAAAB0QAAHo0AAB6NAAADswAAHo4AAB6OAAAB2wAAHo8AAB6PAAADvQAAHpAAAB6QAAAB8QAAHpEAAB6RAAAD1QAAHpIAAB6SAAAB8gAAHpMAAB6TAAAD1gAAHpQAAB6UAAAB8wAAHpUAAB6VAAAD1wAAHpYAAB6WAAACpQAAHpcAAB6XAAADggAAHpgAAB6YAAADsAAAHpkAAB6ZAAADvgAAHpoAAB6aAAACEgAAHpsAAB6bAAAChwAAHpwAAB6cAAAChgAAHp0AAB6dAAAJeQAAHp4AAB6eAAABmAAAHp8AAB6fAAAJegAAHqAAAB6gAAAAFQAAHqEAAB6hAAACCwAAHqIAAB6iAAAAFgAAHqMAAB6jAAACDgAAHqQAAB6kAAAAFwAAHqUAAB6lAAACAgAAHqYAAB6mAAAAGAAAHqcAAB6nAAACBAAAHqgAAB6oAAAAGQAAHqkAAB6pAAACBQAAHqoAAB6qAAAAGgAAHqsAAB6rAAACBgAAHqwAAB6sAAAAGwAAHq0AAB6tAAACAwAAHq4AAB6uAAAAHAAAHq8AAB6vAAAB+wAAHrAAAB6wAAAAHQAAHrEAAB6xAAAB/QAAHrIAAB6yAAAAHgAAHrMAAB6zAAAB/gAAHrQAAB60AAAAHwAAHrUAAB61AAAB/wAAHrYAAB62AAAAIAAAHrcAAB63AAAB/AAAHrgAAB64AAAAcQAAHrkAAB65AAACdwAAHroAAB66AAAAcgAAHrsAAB67AAACeAAAHrwAAB68AAAAcwAAHr0AAB69AAACeQAAHr4AAB6+AAAAdAAAHr8AAB6/AAACegAAHsAAAB7AAAAAdQAAHsEAAB7BAAACewAAHsIAAB7CAAAAdgAAHsMAAB7DAAACfAAAHsQAAB7EAAAAdwAAHsUAAB7FAAACfQAAHsYAAB7GAAAAeAAAHscAAB7HAAACfgAAHsgAAB7IAAAA1QAAHskAAB7JAAACuQAAHsoAAB7KAAAA1gAAHssAAB7LAAACugAAHswAAB7MAAABWAAAHs0AAB7NAAADHwAAHs4AAB7OAAABWQAAHs8AAB7PAAADIAAAHtAAAB7QAAABWgAAHtEAAB7RAAADIQAAHtIAAB7SAAABWwAAHtMAAB7TAAADIgAAHtQAAB7UAAABXAAAHtUAAB7VAAADIwAAHtYAAB7WAAABXQAAHtcAAB7XAAADJAAAHtgAAB7YAAABXgAAHtkAAB7ZAAADJQAAHtoAAB7aAAABXwAAHtsAAB7bAAADJgAAHtwAAB7cAAABYAAAHt0AAB7dAAADJwAAHt4AAB7eAAABYQAAHt8AAB7fAAADKAAAHuAAAB7gAAABYgAAHuEAAB7hAAADKQAAHuIAAB7iAAABYwAAHuMAAB7jAAADKgAAHuQAAB7kAAABvQAAHuUAAB7lAAADnQAAHuYAAB7mAAABvgAAHucAAB7nAAADngAAHugAAB7oAAABvwAAHukAAB7pAAADnwAAHuoAAB7qAAABwAAAHusAAB7rAAADoAAAHuwAAB7sAAABwQAAHu0AAB7tAAADoQAAHu4AAB7uAAABwgAAHu8AAB7vAAADogAAHvAAAB7wAAABwwAAHvEAAB7xAAADowAAHvIAAB7yAAAB3AAAHvMAAB7zAAADvwAAHvQAAB70AAAB3QAAHvUAAB71AAADwAAAHvYAAB72AAAB3gAAHvcAAB73AAADwQAAHvgAAB74AAAB3wAAHvkAAB75AAADwgAAHvoAAB7/AAAJewAAHwAAAB8HAAAEKQAAHwgAAB8PAAAAIwAAHxAAAB8VAAAESwAAHxgAAB8dAAAAfQAAHyAAAB8nAAAEVQAAHygAAB8vAAAAsQAAHzAAAB83AAAEcAAAHzgAAB8/AAAA2wAAH0AAAB9FAAADLgAAH0gAAB9NAAABZwAAH1AAAB9XAAAEjAAAH1kAAB9ZAAAB5AAAH1sAAB9bAAAB5QAAH10AAB9dAAAB5gAAH18AAB9fAAAB5wAAH2AAAB9nAAAEnwAAH2gAAB9vAAAD5QAAH3AAAB9wAAAEMQAAH3EAAB9xAAAJgQAAH3IAAB9yAAAEUQAAH3MAAB9zAAAJggAAH3QAAB90AAAEXQAAH3UAAB91AAAJgwAAH3YAAB92AAAEeAAAH3cAAB93AAAJhAAAH3gAAB94AAADNAAAH3kAAB95AAAJhQAAH3oAAB96AAAElAAAH3sAAB97AAAJhgAAH3wAAB98AAAEpwAAH30AAB99AAAJhwAAH4AAAB+HAAAEMgAAH4gAAB+PAAAAMwAAH5AAAB+XAAAEXgAAH5gAAB+fAAAAvAAAH6AAAB+nAAAEqAAAH6gAAB+vAAAD7gAAH7AAAB+0AAAEOgAAH7YAAB+3AAAEPwAAH7gAAB+6AAAAKwAAH7sAAB+7AAAALwAAH7wAAB+8AAAAOwAAH70AAB/BAAAJiAAAH8IAAB/EAAAEZgAAH8YAAB/HAAAEaQAAH8gAAB/JAAAAgwAAH8oAAB/LAAAAuQAAH8wAAB/MAAAAxAAAH80AAB/NAAAJjQAAH84AAB/OAAAJjwAAH88AAB/PAAAJkQAAH9AAAB/SAAAEeQAAH9MAAB/TAAAJkwAAH9YAAB/XAAAEfAAAH9gAAB/bAAAA4wAAH90AAB/dAAAJlAAAH94AAB/eAAAJlgAAH98AAB/fAAAJmAAAH+AAAB/iAAAElQAAH+MAAB/jAAAJmgAAH+QAAB/lAAAEggAAH+YAAB/nAAAEmAAAH+gAAB/rAAAB6AAAH+wAAB/sAAABfAAAH+0AAB/vAAAJmwAAH/IAAB/0AAAEsAAAH/YAAB/3AAAEswAAH/gAAB/4AAABbQAAH/kAAB/5AAABbwAAH/oAAB/6AAAD7QAAH/sAAB/7AAAD4wAAH/wAAB/8AAAD9gAAH/0AAB/9AAAJnwAAH/4AAB/+AAAJoQAAIAAAACALAAAGlQAAIBAAACAQAAAIPwAAIBEAACARAAAIQQAAIBIAACASAAAFVAAAIBMAACATAAAFUwAAIBQAACAVAAAFVQAAIBYAACAWAAAJ4wAAIBcAACAXAAAI0QAAIBgAACAZAAAFaQAAIBoAACAaAAAFcQAAIBsAACAbAAAIhQAAIBwAACAeAAAFbgAAIB8AACAfAAAIhAAAICAAACAhAAAFqgAAICIAACAiAAAFVwAAICMAACAjAAAFWgAAICQAACAkAAAIcQAAICUAACAlAAAFfgAAICYAACAmAAAFfQAAICcAACAnAAAIQAAAIC8AACAvAAAGkwAAIDAAACAxAAAGXQAAIDIAACA0AAAFcgAAIDUAACA3AAAFdgAAIDgAACA4AAAH5QAAIDkAACA6AAAFigAAIDsAACA7AAAIhgAAIDwAACA8AAAFMgAAID0AACA9AAAFOQAAID4AACA+AAAIdQAAID8AACA/AAAI0wAAIEAAACBAAAAH7AAAIEEAACBBAAAH5gAAIEIAACBCAAAH1wAAIEMAACBDAAAFWQAAIEQAACBEAAAGKQAAIEUAACBFAAAFPgAAIEYAACBGAAAFQAAAIEcAACBIAAAFNgAAIEkAACBJAAAFNAAAIEoAACBKAAAJowAAIEsAACBLAAAFvwAAIEwAACBNAAAFWwAAIE4AACBOAAAJpAAAIE8AACBPAAAIhwAAIFAAACBWAAAJpQAAIFcAACBXAAAFdQAAIFgAACBeAAAJrAAAIF8AACBfAAAGlAAAIHAAACBwAAAF4wAAIHEAACBxAAAF0QAAIHQAACB5AAAF5wAAIHoAACB8AAAF8QAAIH0AACB+AAAF7QAAIH8AACB/AAAF1gAAIIAAACCJAAAGDgAAIIoAACCMAAAGHAAAII0AACCOAAAGGAAAIJAAACCQAAAF9AAAIJEAACCRAAAF+AAAIJIAACCSAAAGAgAAIJMAACCTAAAGCwAAIJQAACCUAAAJtAAAIJUAACCVAAAF+wAAIJYAACCZAAAF/gAAIJoAACCaAAAGAwAAIJsAACCcAAAGBgAAIKAAACCgAAAIHgAAIKEAACChAAAFAQAAIKIAACCiAAAFAwAAIKMAACCjAAAFCwAAIKQAACCkAAAE/AAAIKUAACClAAAFBgAAIKYAACCmAAAE/wAAIKcAACCnAAAE+AAAIKgAACCoAAAFCQAAIKkAACCpAAAE+wAAIKoAACCqAAAFBwAAIKsAACCrAAACYwAAIKwAACCsAAAE9QAAIK0AACCtAAAE+gAAIK4AACCvAAAFBAAAILAAACCwAAAJtQAAILEAACCxAAAE+QAAILIAACCyAAAFAAAAILMAACC0AAAE/QAAILUAACC1AAAFAgAAILYAACC3AAAJtgAAILgAACC4AAAE9wAAILkAACC5AAAE9gAAILoAACC6AAAE8wAAILsAACC7AAAJuAAAILwAACC8AAAFCAAAIL0AACC9AAAE9AAAIL4AACC+AAAFCgAAIL8AACC/AAAFDQAAINsAACDcAAAJuQAAIN0AACDeAAAHBgAAIOgAACDoAAAJuwAAIPAAACDwAAAJvAAAIQAAACEBAAAGYgAAIQMAACEDAAAGogAAIQUAACEFAAAGYQAAIQYAACEGAAAGYAAAIQkAACEJAAAGowAAIRMAACETAAAIWQAAIRYAACEWAAAGoQAAIRcAACEXAAAFsgAAIR4AACEeAAABiQAAIR8AACEfAAABiAAAISAAACEhAAAFtAAAISIAACEiAAAFswAAISMAACEjAAAJ4gAAISYAACEmAAAD4gAAISoAACErAAAGpAAAIS4AACEuAAAGpwAAITIAACEyAAAAjAAAITsAACE7AAAFtgAAIU0AACFNAAAGXwAAIU8AACFPAAAJvQAAIVMAACFTAAAGUwAAIVoAACFaAAAGVgAAIVsAACFbAAAGWQAAIVwAACFcAAAGWwAAIV0AACFdAAAGWgAAIV4AACFeAAAGWAAAIV8AACFfAAAGVwAAIWAAACFgAAAImQAAIWEAACFhAAAIoAAAIWIAACFiAAAIngAAIWMAACFjAAAIlgAAIWQAACFkAAAIlAAAIWUAACFlAAAImwAAIWYAACFmAAAImgAAIWcAACFnAAAIkQAAIWgAACFoAAAImAAAIWkAACFpAAAInAAAIWoAACFqAAAIkgAAIWsAACFrAAAInwAAIWwAACFsAAAIkwAAIW0AACFtAAAIlwAAIW4AACFuAAAIlQAAIW8AACFvAAAInQAAIXAAACFwAAAIcgAAIXEAACFxAAAI0AAAIXIAACFyAAAIuwAAIXMAACFzAAAIKgAAIXQAACF0AAAIKQAAIXUAACF1AAAIqwAAIXYAACF2AAAIqgAAIXcAACF3AAAIFAAAIXgAACF4AAAIZgAAIXkAACF5AAAItgAAIXoAACF6AAAIFgAAIXsAACF7AAAIzwAAIXwAACGIAAAJvgAAIZAAACGQAAAGqAAAIZEAACGRAAAGugAAIZIAACGSAAAGrQAAIZMAACGTAAAGuwAAIZQAACGUAAAGtgAAIZUAACGVAAAGvAAAIZYAACGZAAAGsgAAIakAACGqAAAGvQAAIbAAACGxAAAG/QAAIbMAACGzAAAG/AAAIbQAACG0AAAG/wAAIbUAACG1AAAG+wAAIboAACG7AAAG9AAAIdAAACHQAAAGqwAAIdIAACHSAAAGsAAAIdQAACHUAAAGuAAAId4AACHfAAAHAgAAIeQAACHlAAAHAAAAIecAACHnAAAG6wAAIeoAACHqAAAG7AAAIgIAACICAAAFwgAAIgUAACIFAAAFxwAAIgYAACIGAAAD2wAAIg8AACIPAAAFxAAAIhEAACIRAAAFwwAAIhIAACISAAAFlQAAIhoAACIaAAAFxgAAIh4AACIeAAAFwQAAIisAACIrAAAFxQAAIkgAACJIAAAFmQAAImAAACJgAAAFkwAAImQAACJlAAAFkAAAIwMAACMDAAAG7gAAIwUAACMFAAAG7wAAIxgAACMYAAAG7QAAIyUAACMlAAAG8QAAIyYAACMnAAAG9wAAIysAACMrAAAG9gAAI4AAACOAAAAG8AAAI4cAACOHAAAG8gAAI4sAACOLAAAG8wAAI84AACPOAAAG+gAAI88AACPPAAAG+QAAJCMAACQjAAAIrgAAJGAAACRoAAAHIwAAJLYAACTPAAAHCAAAJOoAACTqAAAHIgAAJaAAACWiAAAG2gAAJaoAACWqAAAFXQAAJbIAACWyAAAG0AAAJbMAACWzAAAG1AAAJbYAACW2AAAG0gAAJbcAACW3AAAG1gAAJboAACW6AAAG0gAAJbsAACW7AAAG1gAAJbwAACW8AAAGzwAAJb0AACW9AAAG0wAAJcAAACXAAAAG0QAAJcEAACXBAAAG1QAAJcQAACXEAAAG0QAAJcUAACXFAAAG1QAAJcYAACXGAAAG3wAAJccAACXHAAAG4QAAJcoAACXKAAAFyAAAJcsAACXLAAAG2QAAJc8AACXPAAAG2AAAJeYAACXmAAAFWAAAJe8AACXvAAAHBAAAJgAAACYAAAAG5AAAJgUAACYGAAAG6AAAJjwAACY8AAAG4wAAJmEAACZhAAAG5QAAJmUAACZlAAAG5gAAJqAAACagAAAG1wAAJxMAACcTAAAGzQAAJxcAACcXAAAGzgAAJ1YAACdWAAAG4AAAJ2QAACdkAAAG5wAAJ4AAACeIAAAHIwAAJ+8AACfvAAAJywAAJ/UAACf1AAAGqQAAJ/YAACf2AAAGrgAAJ/cAACf3AAAGtwAAJ/gAACf4AAAGrAAAJ/kAACf5AAAGsQAAJ/oAACf6AAAGuQAAKwYAACsGAAAG6gAAKxIAACsTAAAG3QAAKxwAACscAAAHBQAALHwAACx8AAAF/QAALH8AACx/AAAB9wAALf8AAC3/AAAJzAAALhgAAC4YAAAFOgAApp8AAKafAAAJzQAAp/8AAKf/AAAJzgAAqS4AAKkuAAAJzwAA4AAAAOAAAAAG4gAA4AIAAOALAAAAlwAA4AwAAOArAAAA6QAA4CwAAOBKAAACIAAA4EsAAOBLAAACrQAA4EwAAOBMAAACtAAA4E0AAOBNAAACuwAA4E4AAOBOAAACvwAA4E8AAOBPAAACxAAA4FAAAOBcAAAC4gAA4F0AAOBdAAADRgAA4F4AAOBeAAADTAAA4F8AAOBfAAADVgAA4GAAAOBgAAADWAAA4GEAAOBpAAADWgAA4GoAAOBqAAADcwAA4GsAAOCAAAAFGgAA4JMAAOCWAAAFgwAA4KUAAOCmAAAFvAAA4KcAAOCoAAAF7wAA4KkAAOCrAAAF9QAA4KwAAOCtAAAF+QAA4K4AAOCuAAAGBAAA4K8AAOCvAAAGCgAA4LAAAOCxAAAGDAAA4LIAAOCzAAAGGgAA4LQAAOC9AAAGHwAA4L4AAODlAAAGKgAA4OYAAODmAAAGbwAA4PMAAODzAAAI3wAA4PQAAOD0AAAJswAA4PUAAOD1AAAI5AAA4PYAAOD2AAAIWwAA4PcAAOD3AAAIXwAA4PgAAOD4AAAIXAAA4PkAAOD5AAAIYAAA4PoAAOD6AAAJogAA4PsAAOD7AAAJjgAA4PwAAOD8AAAJlQAA4P0AAOD9AAAJkAAA4P4AAOD+AAAJlwAA4P8AAOD/AAAJkgAA4QAAAOEAAAAJmQAA4QEAAOEBAAAJngAA4QIAAOECAAAJoAAA4QMAAOEDAAAH/gAA4QQAAOEEAAAHvwAA4QUAAOEFAAAIvwAA4QYAAOEGAAAICQAA4QcAAOEJAAAH6QAA4QoAAOEKAAAH1QAA4QsAAOELAAAIAQAA4QwAAOEMAAAIEgAA4Q0AAOENAAAIDwAA4Q4AAOEOAAAIDQAA4Q8AAOEPAAAIUgAA4RAAAOEQAAAIwgAA4REAAOERAAAIXgAA4RIAAOESAAAIvAAA4RMAAOETAAAICwAA4RQAAOEUAAAIAAAA4RUAAOEVAAAIigAA4RYAAOEWAAAH8QAA4RcAAOEXAAAICgAA4RgAAOEYAAAIDgAA4RkAAOEZAAAH6AAA4RoAAOEaAAAH3AAA4RsAAOEbAAAHvgAA4RwAAOEcAAAH3QAA4R4AAOEeAAAIvgAA4R8AAOEfAAAH8gAA4SAAAOEgAAAH4QAA4SEAAOEhAAAICAAA4SIAAOEiAAAIEQAA4SMAAOEjAAAIXQAA4SQAAOEkAAAIDAAA4SUAAOElAAAIwQAA4SYAAOEmAAAH8wAA4ScAAOEnAAAH3gAA4SgAAOEoAAAH+QAA4SkAAOEpAAAIzQAA4SoAAOEqAAAIvQAA4SsAAOE3AAAHLAAA4TgAAOE9AAAHPQAA4T4AAOFeAAAHXQAA4V8AAOFiAAAHOQAA4WMAAOFjAAAF2QAA4WQAAOFkAAAH8AAA7gEAAO4BAAAFgQAA7gIAAO4CAAAACgAA7gMAAO4DAAAB7AAA7gQAAO4EAAACFQAA7gUAAO4FAAADzAAA9sMAAPbDAAAGdwAA/iAAAP4tAAAJ0AAA/v8AAP7/AAAJ8AAB8S8AAfEvAAAFsQAB8TAAAfFJAAAHQwAB8WoAAfFqAAAFuAAB8WsAAfFrAAAFtwAB+FAAAfhQAAAGqgAB+FIAAfhSAAAGrwAEE/4AAAGEAQAABwCEAH4BSAHDAu8C/wMeA0cDTwNQA18DYQNzA3cDfwOKA4wDoQPhBJ0E/wUvDj8dQx1JHU0dUB1SHVgdWx1lHZwdoB27HfUd/x7/HwcfDx8VHx0fJx8vHzcfPx9FH00fVx9ZH1sfXR9fH2cfbx99H4cfjx+XH58fpx+vH7QfxB/TH9cf2x/vH/Qf/iALICcgXyBxIHkgfyCJII4gnCC/IN4g6CDwIQEhAyEGIQkhEyEXISMhJiErIS4hMiE7IU0hTyFTIXshiCGVIZkhqiGxIbUhuyHQIdIh1CHfIeUh5yHqIgIiBiIPIhIiGiIeIisiSCJgImUjAyMFIxgjJyMrI4AjhyOLI88kIyRoJM8k6iWiJaolsyW3Jb0lwSXHJcslzyXmJe8mACYGJjwmYSZlJqAnEycXJ1YnZCeIJ+8n+isGKxMrHCx8LH8t/y4Ypp+n/6ku4ADgC+Ar4ErgT+Bc4GDgaeBq4IDgluCz4L3g5eDm4RzhKuE34T3hXuFk7gX2w/4t/v///wAAACAAoAFKAcUC8AMAAyEDSANQA1EDYANiA3QDegOEA4wDjgOjA/AEoAUvDj8dQx1HHU0dTx1SHVYdWx1iHZwdoB27Hb8d/B4AHwAfCB8QHxgfIB8oHzAfOB9AH0gfUB9ZH1sfXR9fH2AfaB9wH4AfiB+QH5gfoB+oH7Afth/GH9Yf2B/dH/If9iAAIBAgLyBwIHQgeiCAIIogkCCgINsg6CDwIQAhAyEFIQkhEyEWIR4hJiEqIS4hMiE7IU0hTyFTIVohfCGQIZYhqSGwIbMhuiHQIdIh1CHeIeQh5yHqIgIiBSIPIhEiGiIeIisiSCJgImQjAyMFIxgjJSMrI4AjhyOLI84kIyRgJLYk6iWgJaolsiW2JbolwCXEJcolzyXmJe8mACYFJjwmYSZlJqAnEycXJ1YnZCeAJ+8n9SsGKxIrHCx8LH8t/y4Ypp+n/6ku4ADgAuAM4CzgS+BQ4F3gYeBq4Gvgk+Cl4LTgvuDm4PPhHuEr4TjhPuFf7gH2w/4g/v///wAAAAAAAAAABfkAAAAABbIEgQWxAAAFrwAAAAAAAP3aAAAAAAAAAAD/mfbN6IYAAOiCAADohQAA6IMAAOgv6C7oJ+t/63kAAOUp4RvlO+Fl5TXhieVA4aPj7uIf5Tzii+KK4oniiOU/5H0AAOSy4KvkzuEk5QjkRuSKAAAAAOSm4QsAAOS+AADmlQAAAAAAAOVzAADljgAAAAAAAAAA6NPozOVi5Z8AAOWa50YAAAAA4rzleuV531rke+US6G7lAAAA6EIAAOUc5RTlTQAA5Trk2+Te5OTlJOUc5QTlAuPAAADjtQAA46zjo+Oa41HjM+Ms4+vj6uPVAADjy+Nw42vjaAAA5Iviw+JS4jjhOt+zAAAAAAAAAAAAAAAA4QnfcuEV4OTg4+Cn4ITggeA337rft9+K34Pfo+HcAADb5NvL2+nZgdV4283XImMuYc9goSbiIJUg3SH0AAAikgAAIvkjCSSvJPAAACVrJWwliQAAAAAmASYFJh8AAAAAD7QLsArxAAEBhAJAA5AEggAABtQHEAAAAAAAAAdWAAAHVgdcB2YAAAdwB5YIEglsAAAAAAAACiQAAAomAAAKJgAACigAAAAAAAAAAAAACiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwMDCgAAAAADD4AAAxgAAAMbgycDPwAAAz8AAANBA0MDSQNYgAAAAAAAAAADWAAAAAADV4NYAAAAAAAAAAAAAAAAAAAAAANWgAADZoAAAAAAAANngAAAAAAAAAAAAAAAAAAAAAAAA2QAAANkAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAANfAAAAAAAAAAAAAAAAA1yDXQNdg18DX4NhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1WAAANXAAAAAAAAAAADVoAAAAAAAANcA3CAAAAAAAADdQN3gAAAAAAAAAABpEFMQVtBUsE7gZcBTAFbAU7BTwFrQWUBXsFUQV8BU0FDgUPBRAFEgUTBRQFFgUXBRgFGQV/BYIFjgWSBY8FNQVDAAIAQQBJAFQAXwCJAI0AoQDFAQkBDgEYASMBKwFAAXYBfQF+AYsBmQGlAcUByAHPAdUB7QU9BVAFPwWsBakGZgH4Aj8CRgJSAmQChQKKApQCpwLDAssC0wLwAvcDBwM7A0EDRQNjA3QDgwOkA6gDsQO2A80FQQVOBUIFmgaSBTME7wTxBUwE8AVPBcAGaAWwBboFjAWoBVIFrwZtBbkFmAXlBeYGZAOHBb4FhwZ1BeQFuwWNBlQGUgZVBTgABQAGAAcABAADAAgAPQBLAGAAYQBiAGMAygDLAMwAxgeLASwBRQFGAUcBQgFBBZYBQwGnAagBqQGqAdcD2QNyAg0B+QIBAhcCCAITAhwCSgJnAmgCaQJlAq8CsAKxAqkEJQL4AwwDDQMOAwkDCAWXAwoDiQOKA4sDhAO6BCYDtwALAhAADAH6AA0CEQBMAksATQJMAE4CTQBPAk4AVgJYB4MCUwBkAmoAZQJrAGYCbABnAm0AaAJuAJACjQCRAo4AkgKPAJMCkACjAp8AqQKeAM0CqwDOArIAzwKzANACtQDRAqgHkgLCAQoCxgEPAs0ISgEZAtsBGgLcARsC3QeZAtoBIALUAS0C/gEuAv8BLwMAATYC+gFIAw8BSQMQAUoDEQF1AzkBfwNNAYADTgGBA08BjANmAY0DZwGOA2gBjwNpAZoDewGbA3wHqwN6AasDhQGsA4wBrQONAa4DjgGvA48BsAOQAckDqwHYA7sB2QHuA9IB7wPTAfAD1AhXAkAARgd+AkEHrQjMAFIASgJIAFwAVQeFAlYIBgB6B6gHiACKBPIAjwP7ApoA1wDIARYCzALVCFEIYwE1Av0BcgFEAwsHnghsAXoDPQeyAZcDcQeKCBwDdQGhCLkBogGmA4YD9wexAdYDuAH1A84HjAeOCCMIJAURBRUIywgyCeYIfAh9CH4IHwBeAmAHmAEiAsoHmwE/AwYADgIAANICtgFLAxIBsQORAbIDkgGzA5MBtAOUAbUDlQKDAA8CCQAQAgwAPgIdAI4CjACUApEBEALOAUwDEwFNAxQHjQghAscHggBdAl4AlQKSAK4I1AEwAwEACQIUAD8CHgFkAysAEQIHABICDwBpAm8AagJwANMCtwDUArgBTgMVAU8DFgGCA1ABgwNRAbYDlgG3A5cBkANqAZwDfQjVCNYApAKgCNcCVwjYCNkB9APPABMCCgBrAnEBUAMXAVEDGAFSAxkBUwMaAdoDvALZAvsDdwK8CNoI2wAuAFECRwEhAaMDZQPQCNwI3QBFAcQI3gB5AmYBCwK+A0QDQwGKA0cB4AO5AhgH1AfWAkIIcwJJAlQCVQgYCKQIpwRHBEgESgRJAr0CiwgtB5AEtQfYApsCmAKZAq4EbAeTAtYC2ALXCFoC8gLzAvEC/AL5B5wDNgedCG0IewNICKEDSQNZA1cDSwNKB6QHpQNkCBoIRwgdCBsDeQN2A4gJ3gnlA6UDqgPIB7QD0QPYCCAIIggwCDgINAf/BqYI4ARGB5EI4QLFAtIHmgNCCDEIMwJfAmICYQjOCLcDeAKJCCUI4gjjCCYCnAKdBdAIPAXSBdoIoggnB6YF3wXhBXkFegf8BWsH+giNCIsINQg3B9AH0gfTB88GagZzCFMIKAipCCsJ5AhhCDoHwAf1B/QIjgiMCd8IEwiACGQGbgZwBnEGdgZrBmUIiQiDCCwF1AXbBeAINgjGCMgIygjJCMcI5QjmCOcI6AgFCFgGegZ4BoEGgwZ8CHcGfgaEBn0GgAaFBnkGgghVCFQGewfkBn8H/Qf2B/sH9wg7B8IIsgizB80GhgiPCLQIsQg9CD4GiwaNBo4GjAaIBocIVgfjB84H5waJBooH4AaQCGIGjwjSCMMH2gfZCK0IrAiQB+IIrwioCecIxAh2CDkHwQh6CE8IBwhFCPkIFwjAB98IaAhpAT0JIwnpCSQJJQkmBYkBDAZnBnQAIgWIAHwAsADZAeID5ARtACEASAPaA9sAewH2AK8D3ADYARcAPAEoAT4D3QFlA94BewPfAaQB4QPgAdQD4QPiANoB4wQoBEUEVARuBIkEJwRBBEIEQwREBFIEUwRrBGwISAR+CGUIZwR/AywEgASBBIUEhgSHBIgEmgO1BJwEnQRvBIoDLQSLBJ4JJwfbCLgD+AP5A/oEmwh/CSgJKQkqB6oIsAeECBAHlQhMB6cIowhJCIgCUALIAW4JKwksCS0JLgBTASkJLwSECTAJMQkyAIYAhwQkB8kEHgGWAOcA6AENBBcEGAQRB8oBOAfLBAgAMAP8AEcHwwP/AIUEAAQCATcBOQQDBAYBKgC7AXAHxAfFB8YHxwQJBAoHyAQLBA0EEgQTBBQEFQQWBBkEGgQbAhkEtgS3BLgEuwJ/BLwEvgS/CEMEwQTGBMkEywM3BNADQAJRBNEDwwTSA7QE1QTXBNoE2wTdBN4E3ATjBOQE5QKAAoEClwgvBOgDcALAAsECyQThBOIClghLCTMDxATWB58IbgfMBOAHhggVB7cJ7Ae4Ce0HtQnqB7YJ6weXCFAHowiBBAcDNQQjBO0HlAhGB64DOgegCG8HoQhwB6IIdAeWCE0IugjFCHgIBAiCCTQJNQk2ATwEwAk3BN8BeQM8A/0EuQePCC4EHATmBAEEvQe5Ce4BFQTDBAQExAEUBMUAqwTMAK0EzQQdBOcEHwTpB4kIGQesCLUHrwngB7AJ4QHSBNQEDATqBA4E2AQPBNkEEAKmBCAE6wd/B+0IeQe7CfEEBQTCB4cExwCqBM4ArATPB4EH7wEnBMoC7wAxAhoAMgIbAEACHwCIAoIEIQilB6kIpge8CfIHugnvBCIE7AE6CEQBOwhCAXEDOAFzCGoBdAhrCTgJOQPJA8UDygPGA8sDxweAB+4JOgk7B7MJ6AP+BLoB0wTTCTwJPQXKBcwFzQXTBdUF2AXcBd0F/AYFBggGCQAUAhYAQgJDAEMCRABEAkUAUAJPAFcCWQBYAloAWQJbAFoCXABbAl0AbAJyAG0CcwBuAnQAbwJ1AHACdgCLAogAlgKTAKUCoQCmAqIApwKjAKIClQCoAqQAyQKsAMcCqgERAs8BEgLQARMC0QEcAt4BHQLfAR4C4AEfAuEBJAL0ASUC9QEmAvYBMQMCATIDAwEzAwQBNAMFAVQDGwFVAxwBVgMdAVcDHgF3Az4BeAM/AYQDUgGFA1MBhgNUAYcDVQGRA2sBkgNsAZMDbQGUA24BlQNvAZ0DfgGeA38BnwOAAaADgQG4A5gBuQOZAboDmgG7A5sBvAOcAcYDpgHHA6cBygOsAcsDrQHMA6kBzQOuAc4DrwHQA7IB0QOzAdsDvQHxA9UB8gPWAfMD1wKlA4IDsAO+AhIChwKGCXkBmAl6ABUCCwAWAg4AFwICABgCBAAZAgUAGgIGABsCAwAcAfsAHQH9AB4B/gAfAf8AIAH8AHECdwByAngAcwJ5AHQCegB1AnsAdgJ8AHcCfQB4An4A1QK5ANYCugFYAx8BWQMgAVoDIQFbAyIBXAMjAV0DJAFeAyUBXwMmAWADJwFhAygBYgMpAWMDKgG9A50BvgOeAb8DnwHAA6ABwQOhAcIDogHDA6MB3AO/Ad0DwAHeA8EB3wPCCXsJfAl9CX4JfwmABDEJgQRRCYIEXQmDBHgJhAM0CYUElAmGBKcJhwQ/BEAAKwAsAC0ALwA7CYgJiQmKCYsJjARmBGcEaARpBGoAgwCEALkAugDECY0JjwmRBHkEegR7CZMJlAmWCZgElQSWBJcJmgSCBIMEmASZAegB6QHqAesBfAmbCZwJnQSzBLQBbQFvA+0D4wP2CZ8JoQg/CEEFVAVTBVUFVgnjCNEFaQVqBXEIhQVuBW8FcAiEBaoFqwVXBVoIcQV+BX0IQAaTBl0GXgVyBXMFdAV2BXcFeAflBYoFiwiGBTIFOQh1CNMH7AfmB9cFWQYpBT4FQAU2BTcFNAmjBb8FWwVcCaQIhwmlCaYJpwmoCakJqgmrBXUJrAmtCa4JrwmwCbEJsgaUBeMF0QXxBfIF8wXtBe4F1gYcBh0GHgYYBhkF9AX4BgIGCwm0BfsF/gX/BgAGAQYDBgYGBwgeBQEFAwULBPwFBgT/BPgFCQT7BQcCYwT1BPoFBAUFCbUE+QUABP0E/gUCCbYJtwT3BPYE8wm4BQgE9AUKBQ0JuQm6BwYHBwZhBmAGoQWyAYkBiAW0BbUFswniBlYGWQZbBloGWAZXCJkIoAieCJYIlAibCJoIkQiYCJwIkgifCJMIlwiVCJ0IcgjQCLsIKggpCKsIqggUCGYItggWCM8GqAa6Bq0Guwa2BrwG/Ab/BvsFxwPbBcMFlQbxBvcG+Ab6BvkG0AbUBtIG1gbSBtYGzwbTBtEG1QbRBtUG3wbhBcgG2QapBq4GtwasBrEGuQKtArQCuwK/AsQDRgNMA1YDWAW8Bb0F7wXwBfUF9gX3BfkF+gYEBgoGDAYNBhoGGwjfCbMI5AhbCF8IXAhgCaIJjgmVCZAJlwmSCZkJngmgB/4Hvwi/CAkH6QfqB+sH1QgBCBIIDwgNCFIIwgheCLwICwgACIoH8QgKCA4H6AfcB74H3Qi+B/IH4QgICBEIXQgMCMEH8wfeB/kIzQi9BzkHOgc7BzwF2QfwBYEACgHsAhUDzAAAAAEAAAASACAACgADACoAOgAyAAJERkxUADxsYXRuADwAA2Nwc3AAMmtlcm4AOG1hcmsAPgABAAAAAQAwAAQAAAABAEIACQAIAAIAKgAyADwAAAAAAAEAAAAAAAEAAQAAAAEAAgABAIwABQAQACAAAQACAAAuoAABAAIAADkuAAEAGAFaAAMAOARSAAD//wADAAAAAQACAAEADgZ3BnsGfAaCCBcIWwhcCF8IYAkPCRAJFgkYCbwADgAAInAAASJ2AAEifAABIoIAACKIAAEijgABIpQAASKaAAEioAABIqYAACKsAAIisgACIrgAASK+AAIAJgACAAkAAAALAJYACAChANcAlADZAOgAywEJAYcA2wGKAesBWgHtAfcBvANEA0QBxwPJA8sByAPZBCQBywUVBRUCFwd+B48CGAeSB5ICKgeUB5kCKwebB5sCMQeeB58CMgejB6MCNAenB7MCNQe1B7wCQgfDB8wCSghjCGMCVAh5CHkCVQjUCNUCVgjXCNgCWAjcCNwCWgjeCN4CWwkfCR8CXAkhCSECXQknCScCXgkpCSkCXwktCS0CYAkwCTICYQk3CTgCZAk6CToCZgk8CTwCZwl7CXsCaAl9CX0CaQl/CX8CagACAH4AAgA7AAAAPQBcADoAXwCtAFoArwETAKkBFwGIAQ4BigGXAYABmQGgAY4BogHVAZYB1wHzAcoB9QH2AecB+AJBAekCQwJIAjMCSgJUAjkCVgJdAkQCXwJfAkwCYQJhAk0CYwKDAk4ChQKIAm8CigKZAnMCmwKbAoMCngK8AoQCwALCAqMCxALFAqYCygLLAqgCzQLXAqoC2gM4ArUDOwNCAxQDRQNJAxwDTANxAyEDdAN1A0cDeQOGA0kDiAO0A1cDtgO3A4QDuQPOA4YD0QPXA5wD2gPaA6MD3APcA6QD4gP2A6UD+AP6A7oD/gP+A70EAAQCA74EBgQHA8EECQQJA8MEDQQRA8QEFQQVA8kEGQQZA8oEGwQcA8sEIAQhA80EIwQjA88EJwRAA9AERARFA+oERwRIA+wESgRRA+4EUwRqA/YEbAR9BA4EgQSEBCAEiASZBCQEnQS0BDYEuAS6BE4EvATBBFEEwwTDBFcExQTIBFgE1ATUBFwE1wTZBF0E3gTeBGAE4wTjBGEE5gTmBGIE6wTvBGME/wUCBGgFBAUEBGwFCwUNBG0GZAZkBHAGZgZmBHEGaAZoBHIGawZrBHMGeQZ5BHQGogamBHUHCAchBHoHQwdcBJQHfweBBK4HgweDBLEHhweHBLIHiQeJBLMHiwePBLQHkgeSBLkHlAeUBLoHmAeZBLsHmwebBL0HqQepBL4HqwesBL8HrwewBMEHswezBMMHuQe8BMQHwwfDBMgHxQfLBMkH1AfUBNAH7QfvBNEH/Qf9BNQIGQgZBNUIIAghBNYIIwgjBNgIKQgpBNkILQgvBNoIQghEBN0IRghGBOAISwhLBOEIaghrBOIIcghyBOQIeQh5BOUIfwh/BOYIkwiVBOcIlwiXBOoImQiZBOsInAidBOwIpAimBO4Itgi2BPEI3wjfBPIJMQkzBPMJOAk9BPYJgQmHBPwJkwmTBQMJmgmaBQQJvgnBBQUJ6AnoBQkJ7gnvBQoJ8QnyBQwFDikYKR4AACkYKR4AACkYKR4AACkYHqoAACkYHrAAACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AACkYKR4AAAAAHrwAAAAAHrwAAAAAHrYAAAAAHrwAACa6JsAAACa6JsAAACa6JsAAACa6JsAAAB7CHsgAAB7OHtQAACa6JsAAACa6JsAAAAAAKXIAAAAAKXIAAAAAKXIAAAAAHtoAAAAAKXIAAAAAKXIAAAAAKXIAAAAAHtoAAAAAKXIAAAAAKXgAAAAAKXIAACkkKSoAAB7gHuYAACkkKSoAACkkKSoAACkkKSoAACkkKSoAACkkKSoAACkkKSoAACkkKSoAAB9eH2QAAB9eH1IAAB9eHuwAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH1gAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAAB9eH2QAACXKHvIAAB74IbYAAB7+HwQAAB8KHxAAAB8WHxwAAB8iHygAAB8uHzQAAB86H0AAAB9GH0wAAB9eH2QAAB9eH1IAAB9eH1gAAB9eH2QAACauJrQAAB9qH3AAACauJrQAAB92JFAAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiH3wAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiJqgAACaiH3wAACaiJqgAACAeICQAACAeICQAACAeICQAACAeICQAACAeICQAACAeICQAACAeICQAACAeICQAAB+CH4gAACAeICQAACAeICQAACAeICQAACAeICQAACAeICQAAB+OH5QAAB+aH6AAAB/KH9AAAB/WH9wAAB/iH+gAAB/uH/QAAB/6IAAAACAGIAwAACASIBgAAB+mH6wAAB+yH7gAACAeICQAAB++H8QAAB/KH9AAAB/WH9wAAB/iH+gAAB/uH/QAAB/6IAAAACAGIAwAACASIBgAACAeICQAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACkwICoAACkwIDAAACkwKTYAACA2IDwAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACkwKTYAACRKKfYAACkwKTYAACBCIEgAACkwKTYAACBOIFQAACBaIGAAACBmIGwAACW4IHIAACB4IH4AACigKUIAACCEIIoAACCQIJYAACkwKTYAACkwKTYAACCcIKIAACCoIK4AACkwKTYAACkwILQAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACE+ILoAACE+IMAAACE+ITgAACE+IUQAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACE+ITgAACDGIMwAACDSINgAACDeIOQAACDqIPAAACD2IPwAACECIQgAACEOIf4AACEUIRoAACE+ITgAACE+ITgAACEgISYAACEsITIAACE+ITgAACE+IUQAAAAAIUoAAAAAIUoAAAAAIUoAAAAAIUoAAAAAIUoAACiOJvYAACiOJvYAACiOJvYAACiOKJQAACiOJvYAACiOJvYAACiOJvYAACkMKRIAACkMIVAAACkMKRIAACkMKRIAACkMKRIAACkMKRIAACkMKRIAACkMKRIAACFWIVwAACkMKRIAACkMKRIAACk8KUIAACk8IWIAACk8KUIAACk8KUIAACk8KUIAACk8KUIAACk8KUIAACk8KUIAACg0IYwAACg0IWgAACg0IW4AACg0IYwAACg0IYwAACg0IYAAACg0IYwAACg0IYwAACg0IYwAACg0IYwAACF0IXoAACg0IYwAAAAAIYwAAAAAIYAAAAAAIYwAAAAAIYwAAAAAIYwAAAAAIYwAAAAAIYYAACg0IYwAACg0IYwAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8IZIAACb8IZ4AACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8IZ4AACb8IZIAACb8JwIAACb8IZgAACb8JwIAACb8IZ4AACb8JwIAACGkIaoAACGwIbYAACG8IcIAACHIIc4AACHUIdoAACHgIeYAACHsIfIAACH4If4AACb8JwIAACIEIgoAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACb8JwIAACIQJ1wAAAAAKHYAAAAAIhYAAAAAKHYAAAAAIkAAAAAAIhwAAAAAKHYAAAAAIiIAACb8JwIAACIuIjQAACIuIigAACIuIjQAACIuIjQAACIuIjQAACIuIjQAACIuIjQAACIuIjQAACIuIjQAACIuIjQAACI6IkAAACJGIkwAACaEJooAACaEIlIAACaEJooAACaEJooAACaEJooAACaEJooAACaEJooAACaEJooAACaEJooAACaEJooAACaEJooAACaEJooAACJYIl4AACh8KIIAACh8KIIAACh8KIIAACh8KIIAACh8KIIAACh8KIIAACh8KIIAACh8KIIAACh8KIIAACh8KIIAACh8KIIAACJwKBAAACJwKBAAACJwImoAACJwImQAACJwKBAAACJwKBAAACJwKAoAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwKBAAACJwImQAACJwImoAACJwKBAAACJwKAoAACJwKBAAACJ2InwAACkYKR4AACkYIoIAACkYKR4AACKUIpoAACKUIpoAACKUIogAACKUIo4AACKUIpoAACKUIpoAACKUIpoAACmcKaIAACmcKaIAACmcKaIAACmcKaIAACmcKaIAACmcKaIAAChGKEwAAChGIqAAAChGKEwAAChGKEwAAChGKEwAAChGKEwAAChGIqYAAChGKEwAAChGKEwAAChGIqwAAChGKEwAAChGKEwAACKyIrgAAChGKEwAACK+IsQAACLKItAAACLWItwAACLiIugAAChGKEwAAChGKEwAACLuIvQAACL6IwAAAChGKEwAACMMIxIAACMMIwYAACMMIxIAACMMIxIAACMMIxIAACMMIxIAACMMIxIAACMMIxIAACMMIxIAACMkIx4AACMkIxgAACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkJswAACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkJaYAACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkIx4AACMkJswAACMkIx4AACMkIx4AACMkIx4AACMkJswAAAAAIzAAAAAAIzAAAAAAIyoAAAAAIzAAACUiIzwAACUiIzYAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiJHQAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiKPoAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiIzwAACUiJHQAACNCI0gAACNCI0gAACNCI0gAACNCI0gAACNCI0gAACNCI0gAAAAAKcwAAAAAKcwAAAAAKcwAAAAAKcwAAAAAJS4AAAAAKcwAAAAAKcwAAAAAKcwAAAAAJS4AAAAAKcwAAAAAKcwAACNUI1oAACNUI1oAACNUI1oAACNsJmAAACUiI04AACNUI1oAACNUI1oAACNUI1oAACNUI1oAACNUI1oAACNUI1oAACNUI1oAACNUI1oAACNUI1oAACNsKUgAACNsKVQAACNsKUgAACNsI2YAACNsI2AAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKVQAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsKUgAACNsI2YAACNsKVQAACNsKUgAAClOKUgAACN+I4QAAAAAI3IAAAAAI3gAACN+I4QAACjWKNwAACOKI5AAACjWKNwAACjWKNwAACjWKNwAACjWKNwAACjWKNwAACjWKNwAACjWI5YAACjWKNwAACOuI7QAACOuI7QAACOuI7QAACOuI7QAACRoKcwAACRoKcwAACOcI6IAACOuI7QAACOuI7QAACOuI7QAACOuI7QAACOuI7QAACOuI6gAACOuI7QAACOuI7QAACOuI7QAAClmKWwAAClmKWwAAClmJD4AAClmKWwAACO6I8AAAClmKWwAAClmKWwAAClmKWwAAClmI8YAAClmKRIAAClmKWwAAClmKWwAAClmKWwAACPMKWwAACPSI9gAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAAClmKWwAACPeI+QAAClmKWwAAClmJD4AAClmKWwAACPqI/AAACPqI/AAACnwKfYAACP8JD4AACP8JD4AACP8JD4AACP8I/YAACP8JD4AACP8JD4AACQCJAgAACnwKfYAACnwKfYAACnwKfYAACQOJBQAACnwKfYAACQaJD4AACnwJEQAACnwKfYAACnwKfYAACnwKfYAACnwKfYAACnwKfYAACnwKfYAACRKKfYAACQgJCYAACRKKfYAACRKKfYAACQsJDIAACQ4JD4AACRKJEQAACRKKfYAACRKKfYAACRKKfYAACRKKfYAACRKKfYAACRKKfYAACkwKTYAACoOKhQAACoOKhQAACoOKhQAACoOKhQAACoOJFAAACoOKhQAACoOKhQAACRoKcwAACRoKSoAACRoKcwAACRoKcwAACRoKcwAACRWJFwAACnGKcwAACRoJGIAACRoKcwAACRoKcwAACRoKKwAACRoKcwAACRoKcwAACRoKcwAACRoKcwAACRoKcwAACoCKdIAACoCKPoAACoCKPoAACR6JG4AACoCKdIAACoCJXwAACoCJHQAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCJHQAACoCJXwAACoCKdIAACoCKPoAACoCKdIAACR6JIAAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKdIAACoCKPoAACSYJJ4AACSGJIwAACSYJJ4AACSYJJIAACSYJJ4AACSYJJ4AACSkJKoAACSkJKoAACnwJMIAACnwJMIAACnwJMIAACSwJLYAACSwJLYAACnwJMIAACnwJLwAACnwJMIAACnwJMIAACnwJMIAACnwJMIAACnwJMIAACnwJMIAACnwJMIAACnwJMIAACnwJM4AACnwJM4AACnwJM4AACnwJM4AACnwJMgAACnwJM4AACnwJM4AACnwJM4AACnwJM4AACnwJM4AACnwJM4AACnwJM4AACnwJM4AACTUJbIAACTUJbIAACTUJbIAACTUJaYAACTUJbIAACTUJbIAACTUJbIAACTUJbIAACTUJbIAACTUJbIAACTUJbIAACTUJbIAACTUJbIAACTUJbIAACTaJOAAACT4JPIAACT4JPIAACTmJOwAACT4JPIAACT4JPIAACT4JPIAACT4JPIAACT4JPIAACT4JPIAACT4JPIAACT4JPIAACT4JP4AACUiJSgAACUiJQQAACUiJQQAACU6KcwAACUKJRAAACUiJRYAACUiJRwAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACUiJSgAACU6JS4AACU6JTQAACU6KcwAACU6KSoAACU6KcwAACWOJUYAACWOJUYAACWOJUAAACWOJUYAACVeJWQAACVeJUwAACVeJWQAACVeJWQAACVeJVIAACVeJVgAACVeJWQAACVeJWQAACVeJWQAACmoKa4AACmoKa4AACmoJWoAACmoKa4AACWaJaAAACWaJYgAACVwJXYAACWaJXwAACWaJaAAACWaJaAAACWaJaAAACWaJaAAACWaJYIAACWaJaAAACWaJaAAACWaJYgAACWaJaAAACWaJaAAACWaJaAAACWaJYgAACWaJaAAACWOJZQAAAAAKJoAAAAAKIgAAAAAKJoAACWaJaAAACWsJbIAACWsJbIAACWsJbIAACWsJaYAACWsJbIAACWsJbIAACWsJbIAACWsJbIAACWsJbIAAAAAKZAAACb8JwIAACX6AAAAACW4AAAAACW+AAAAACXKAAAAACXQAAAAACXWAAAAACXcAAAAACXiAAAAACXoAAAAACXuAAAAACX0AAAAACXEAAAAACXKAAAAACXQAAAAACXWAAAAACXcAAAAACXiAAAAACXoAAAAACXuAAAAACX0AAAAACX6AAAAAAAAJgAAAAAAJgYAAAAAJgwAAAAAKZAAAAAAKGoAAAAAKGoAAAAAKF4AACgWAAAAACb8JwIAAAAAKJoAAAAAKBAAAAAAKBAAAAAAKBAAAAAAJhIAAAAAJhgAACYeJiQAAAAAJioAACYwJjYAAAAAKZAAACgEAAAAACg6JjwAAAAAKCIAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAACm0KboAAAAAKcAAAAAAKcAAAAAAKcAAAAAAJkIAAAAAJkgAAAAAKcAAAAAAKcAAAAAAKcAAAAAAKcAAAAAAKcAAAAAAKcAAAAAAKcAAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnGKcwAACnG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A0kLAAABA2ILAAABA1IAAAABA2IJAAABAywAEAABA4YJAAABAxYAAAABBEoLAAABBFQAAAABBF4JAwABBaQAAAABBa4JAwABBdgAAAABBeIJAwABBkMAAAABBk0JAwABBgMAAAABBg0JAwABBYAAAAABBYoJAwABBb4AAAABBcgJAwABB+8AAAABB/kJAwABB44AAAABB5gJAwABB4oAAAABB5QJAwABB7cAAAABB8EJAwABBt8AAAABBukJAwABBvQAAAABBv4JAwABBBMAAAABBB0JAwABAWILAAABAZYLAAABAnIAAAABAnMLAAABAioAAAABAioJAAABAxAAAAABAxEJAAABAvYAAAABAvcJAAABBScAAAABBSgJAAABBMcJAAABBMIAAAABBMMJAAABBBcAAAABBBgJAAABBCwAAAABBC0JAAABA3sAAAABA3wJAAABAzsAAAABAzwJAAABAXwLAAABAmgLAAABApsLAAABBDwAAAABBD0JAAABBB8AAAABBCAJAAABBlEAAAABBlIJAAABBfIAAAABBfIJAAABBeoAAAABBesJAAABBhgAAAABBhkJAAABBUIAAAABBVcAAAABBVgJAAABBKUAAAABBKYJAAABBGUAAAABBGYJAAABAoIJAAABAoEAAAABAoILAAABBJYJAAABAZQLAAABA2gAAAABAZcJAAABBQoLAAABBBwLAAABBDYLAAABBDQAAAABBDQJAAABBAILAAABBC4JAAABBBwJAAABBCALAAABBDoLAAABBFMLAAABBIsAAAABBIsJAAABBNgAAAABBNgJAAABBTcAAAABBTcJAAABBu8AAAABBu8JAAABBm4AAAABBm4JAAABBgoAAAABBgoJAAABBioAAAABBioJAAABBUMAAAABBUMJAAABBIIAAAABBIIJAAABB2oAAAABA5gLAAABBV0JAAABBO8JAAABA5oLAAABA6MAAAABA4AJAAABA6YAAAABA4IJAAABA8IAAAABA58JAAABA6ILAAABA4b/4wABA4sJAAABBCgLAAABA/ULAAABBA7/7AABBB//7AABBB8JAAABA9oLAAABBUcLAAABBXoLAAABBWEADQABBWEJAAABA94LAAABA6oLAAABA8QLAAABBZgAAAABBZgJAAABBWIAAAABBWIJAAABBxIAAAABBxIJAAABB6sAAAABB6sJAAABBugAAAABBugJAAABBZ8AAAABBZ8JAAABBYUAAAABBYUJAAABA54LAAABA34AAAABA4UJAAABA1MJAAABAzoHAAABAywAAAABBRUJAAABBPsHAAABA4MJAAABA2oHAAABA6QAAAABA9gHAAABAysIAAABA1oAAAABAyoIAAABA1gJAAABAyUJAAABAz4AAAABAgkJAAABAj8JAAABAcQAAAABAjoJAAABA179pwABA2IHAAABA3oJAAABBUP+AAABA08HAAABAV4LAAABA00AAAABAV4JAAABAZEAAAABAZAJAAABAUYJAAABAWD9ggABAVr9ggABAVoHAAABARD9mQABAV0HAAABAnD9iAABAtIHAAABAXoLAAABAyYAAAABBMH+AAABAxMHAAABAb0AAAABAbsJAAABAWIAAAABAbwAAAABAWYJAAABA2kAAAABAxMJAAABAbYAAAABAWAJAAABAXYLAAABAbIAAAABBPYJAAABA3oAAAABA3oHAAABA2MJAAABA0oAAAABA1AG/wABA2oJAAABA1D//wABA2oI/wABAWH9xQABA54HAAABA7UJAAABAV79xQABA5sHAAABBWz9xQABAy4HAAABAh4AAAABAtsHAAABAm4JAAABAlUHAAABAm8JAAABAlYHAAABAwAAAAABAuUAAAABAt4HAAABAlH+kAABAdoHAAABAccIDgABAkkAAAABAccKDgABA0cJAAABA5MAAAABA34HAAABAy4JAAABA2EJAAABA1wAAAABA0cHAAABA2QJAAABAzEJAAABA18AAAABAx4JAAABAx4HAAABBIoJAAABBHAJAAABBKMJAAABBIcAAAABBIoHAAABAwgJAAABBL7/ygABAyIHAAABAzYJAAABAwMJAAABAx0JAAABAx4AAAABBEIIwAABBLn/ygABAx0HAAABAyAJAAABAwIAAAABAwYHAAABBMYAAAABBGYAAAABBSYAAAABBKIAAAABBRMAAAABBtIAAAABBnIAAAABBk0AAAABBnoAAAABBcIAAAABBdcAAAABBDgAAAABA7kJAAABBPEJAAABA7kLAAABA/7/AAABBdb/AAABCAYAAAABBMEJAAABA74JAAABA8oAAAABA+4JAAABA9QJAAABAw4HAAABAxAHAAABAV8JAAABA0MHAAABAxgJAAABAwoHAAABBN8HAAABAygAAAABA58HAAABBEAHAAABAv4HAAABA47/4wABA4kJAAABA0oIBgABBDYAAAABBDYJAAABBC0AAgABBDEJAAABAxcAEAABA3IJAAABA30AAAABA3QJAAABArwJAAABAzoJAAABAyYJAAABAsAJAAAB+7QJAAABCRYJAAABCBwAEAABCHYJAAABA64JAAABBDoAAAABBDoJAAABB6wAAAABB3AJAAABB18AEAABB58AAAABB6kJAwABCSgJAAABB6YAAQABB64JAAABB9wAAAABBgsJAAABB9IJAAABB7AAAAABB40JAAABB4MAAAABB3oJAAABB8oJAAABByYAAAABBwkJAAABB40AAAABB3MAEAABB84JAAABB7YAAgABB7oJAAABB6IAAAABB6wJAwABCUgJAAABB3UAAQABB3wJAAABB8gAAAABBfcJAAABB50JAAABB7YAAAABB5MJAAABB6j/4wABB6MJAAABB6T/7AABB6QADQABB6QACwABB6QAAAABB6QJAAABB54AAAABB6UJAAABBbT//QABBA4LAAABBA4JAAABA/oAAAABA8IJAAABA/YJAAABA04AAAABAX0JAAABBBwAAAABA7YAAAABA9QLAAABA8QAAAABA8QJAAABCAsAAAABBOoKqQABA5IJAAABA5ILAAABBXgJAAABBXgLAAABA34JAAABA5QAAAABA5UJAAABA38LAAABA6YAAQABA8cLAAABA38JAAABBO8AAAABBO8HAAABAzAJAAABAzAHAAAB/L0JDAABA4EHAAABA4IHAAABAxIAAAABAxIHAAABA139pwABA2AHAAABAsoJAAABA04JAAABA1gHAAABAyQJAAABA1AJAAABAVQAAAABAVMHAAABA0sAAAABAXoJAAABA9oAAAABA9oJAAABA2YAAAABA0oJAAABAXsAAAABAXwJAAABBPAAAAABBPAJAAABAz4HAAABA0AAAAABAz4JAAABAvsAAAABAvsHAAABAWEAAAABAWAHAAABBDgJAAABA9//AAABAzUJAAABA74LAAABAv4JAAABA2YJAAABArAHAAABA6oACwABA6oJAAABAwgAAAABAwgHAAABAy8AAAABA04HAAABAw8HAAABAWAAAAABA0oHAAABA1AHAAABBK8AAAABBK4HAAABAV8HAAABAxgHAAABAV4AAAABAV0JAAABAuQHAAABA1AAAAABAx8IAAABBN0AAAABBN0HAAABByQAAAABBEAJAAABAs4HAAABAs4JAAABBKQHAAABBKQJAAABl3AABAAABUZUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQATsJOwk7CTsJOvE68TrxOvE68TrxOvE68TrxPgk68UGxPgk+CT4JPgk+CT4JPgk+CU2pcEE+MTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwlYWTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwlJeUVZRbFYWUNhQ2FDYUNhQ2FDYUNhQ2FDYUNhWZlYWVhZWFlYWVhZWFlYWZBhWFk/gT+BidF1YVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWlE6GToZUPFrQVhZWFk6GToZbHlYWVTKa2k6GVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFk+aT5pPmk+aT5pU5lQeUy5TLlQeVB5UHlQeUy5UHljmZk5XfmXYaU5pTmlOaU5p2GbIYahWwlYWVhZWFlYWVhZWFlYWVvBWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWFmGoT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JbbFtsW2xbbFtsT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk+CT4JPgk7CUYJQflB+UFBQflBQUFBPgmJ0iCZufGJ0cpx/ynNafYZidHQYauxidE+aYnRPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pPmk+aT5pk9GT0ZPRk9GT0T5pX8llqWbBUgFReVF5UXlReVF5UgFEyUJBQkFEyUTJRMmOuZ0Ji2mLaYtpjrmhGYtpnxGhGaEZjrmOuY65jrmOuY65jrmOuY65jrmOuY65jrk+oT6hPqE+oT6hPqE+oT6hPqE+oT6hRRFFEUURRRFFEUURRRFFEUURRRLYiUURRRKg4UURRRFFEUURRRFFEUURRRFFEUURfClFEUURRRFFEUURRRFFEUQ5RRFFEUURRDlEOUQ5RDlD8UPxQ/FD8UPxQ/FD8UPxQ/FD8VhZQ/FD8VhZQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UkhSSFJIYBxSSFJIUkhOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJWFmuCepBWFlUMVhZWFlYWVhZWFlNqU2pTalu+UQ5RDl9kUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ5RDlEOUQ6fRFEOUZhRDlEOUQ5RDlEOUQ5gHFCiUKJQolGuXwpOYmwYTmJOYk5iTmJOYk5iTmJOYlFEUURRRFFEXwpfClD8Vx5OYlFEUURRRFFEUURRRFFEUURRRGGoYahgenB6dNZhQmGoT+BhqGDcbK5xMG1EYahhqG8mdmJ1nG/QYUJhqGGoT+BP4E/gYahgemGoYahhqGGodzBlZmGoYahhqFBeUF5QXlBeUF5QXlBeUURWFle4WShWFk/gVjxXuFUyVhZWFlYWVTK/yrroxLxWFlYWVhZP4FYWVhZWFlYWVhZWFlYWVhZWFlFEUURdWE5iUURRRFFEUUResE/gXwpRRFFEUURRRFFEUURRRFFEYahSSF++X75SSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSKO+UkhRxFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFJIUkhSSFEOUKJSSFJIUkhSSFJIUkhOYk5iceZSklKSUURRRFKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSeFKSbdpSklKSbdpSkk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7OT+BP4E/gX2RP4E/gT+BP4E/gT+BP4Ky2sWxP4FD8UPxQ/FD8g7RVWFD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8V0xXTFdMV0xQ/FioU0xYqFioT7ZPtk+2T7ZPtk+2T7ZPtlioWKhQomjIWKhYqFioWKhYqFioWKhYqFgsWKhYqFioWKhYqFCiWKhTalwQU2pcEFwQU2pTalNqU2pcYlxiXLSJsJSeUqxPgmSGT4KGoFfyTmhidGJ0TthqYlQeVB5WFk+CY65Sxk7YVhZRRFFEVhZO2FJIVhZSSFJIUkhPgk68VhZX8lOIUkhSSE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RPxE/ET8RO7FLgTuJObk5uUQ5Obk5uTm5Obk5uTm5Obk5uTm5Obk5uXQZO7FC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtFC0ULRQtHtyTvZ5slJIUkhSSFJIfqRQxlD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FD8UPxQ/FJIUkhP0k50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdGjIToBOwlEgUSBRIE56ToBRRE/gUF5SSFBeUF5QXlFET+BP4FFET+BRRE/gUSBRRE/gUURVflJIT+BRRFFET+BRRFFET+BhqFJIUkhRRE7CUQ5P4FEOWKhOwln2WjxR2k6GUNhOvE68TsJP/E/uU6ZS+tAcTwBR8E/8UApPCk6Mi4pPFHf+fHhiDlAYUCZOwlA0Tx5PKE8oTyhPMk88Y0RWFoEQU+JT4lFEU+JTFFqGT0ZPRlMUWoZVpFWkWoZdrl2uXgRV8FXwjXBPRk9QUgZPUFIGT1qPlk94T3hPeE94VcpT4njYU+JPeE94U8RPeE94T3hPeFPiU+JT4k94T3hT4k6SyjpPZE9kUEJQQoJeTphPgk6YT2SFIk9kT2RPZE9kVhZQUF5aTp5OpFIcVKJSHE6kUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUOpQ6k6qVMROqlDqUOpQ6lDqUOpQ6lDqUOpQ6lDqUhxSHFIcUhxSHFIcUhxYalIcUhxOsE9uUhxOtlIyU+JT4lPiT3hPeFPiU+JT4k94T3hPgk+CVhZWFlYWVhZWFk7CTsJWFteO4XxOwk7CTrxOvE+CYnReWlD8VhZPgpIIYnRjrmOuVABUAFEyUTJidFYWUFBOvGJ0UTJidFQeUkhRDlFEUUROwk7CUSBRIFEgUURRRFFEWKhQXk7CUURYqFJIUkhWFlXwVhZWFlfyV/JRMlYWVhZWFlEyVhZWFlYWVhZgHFJIUkhRIE7IUURSSFFEUkhidFEgUTJYqFioUUQAAuDUAAQAAOu8494AZgBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yAAAAAD/GP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP9wAAD/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q/+gAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAP/KAAAAAP7y/5AAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAA/2b/wv/R/3D/oP+eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/eAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2D/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5oAAAAAAAAAAAAAAAD/lv+qAAAAAAAAAAAAAP/LAAAAAAAAAAAAAAAAAAAAAP+aAAAAAP/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAA//D/kP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6AAA/6AAAAAAAAAAAP9A/6AAAP8w/wwAAAAA/3D/9AANAAD/8AAAAAAAAAAAAAD/AAAA/ysAAP9A/1D/MAAAAIAAAAAAAAAAAP/2AAAAAP8g/xAAAAAAAAAAAP7gAAAAAAAA/6D/oP/k/6D/OAAA/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/40AAAAA/wD+5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI3/JgAAAAD/MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/SAAAAAP74/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3D/3f/8/3AAAP/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIP/wAAAAAAAAAE0AAAAAAAAAAAAA/93/oP/LAAAAAP/mAAAAAAAAAAAAAP/mAAAAAAAAAAD/6gAAAAD/6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAA/+AAAAAAAAAAAAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAD/IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/IP9g/6r/DP7m/zD/MP9QAAAAAAAAAAD/WgAAAAD/MAAAAAAAAAAAAAAAAP+AAAAAAAAAAAD/cP9QAAAAAP9zAQD/AAAA/6AAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAA/pD/cAAAAAAAAP6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wb/kP+W/zD/AP8Y/5AAAAAAAAAAAACA/00AAP7w/0D/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAP9QAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAP8A/1AAAAAA/+j+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ygAAAAD/QP+N/9IAAAAAAAAAAP+g/6AAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHD/UAAAAAD/ggAAAAAAAAAAAAAAAAAAAAD/oABgAAAAAAAA/5AAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IAAAAAP+Q/43/8gAAABgAWgAAAAD/YP+mAAAAAAAAAAAAAAAAAAAAAAAAAAD/oABwAAAAAAAYABgAAAAAAAAAAP9gAAAAAAAAAFoAAAAAAAAAAAAAAAAAAP9QADAAAAAAAAAAAAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Tf9aAAAAAAAAAAAAAP9aAAAAAAAAAAAAAAAAAAAAAP+N/8AAAP+NAAD/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2gAAAAAAAP9z/+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+tAAAAAAAAAAAAAAAAAAAAAP9zAAAAAAAAAAAAAAAAAAD/pgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1D/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAD/5QAA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MP8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+j/cP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAP+QAAAAAP7wAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAA/0D/oAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAD/5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9QAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAA/7YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zQAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAA/8sAAAAAAAAAAAAAAAAAAAAAAAD/TQAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAD/mgAAAAAAAP+g/5AAAAAAAAAAAP8NAAD/oAAAAGAAAP/6AAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAP/WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/tAAAAAAAAAAAP+gAAAAAAAAAAD+cAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAAAAAAAAAAAAAAAAACAAAAAAAAP9g/5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAP+6/6sAAAAAAAAAAABg/+YAAAAAAAAAAAAAAAAAAABg/8AAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAP+mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+wAGYAAAAAAAD/QP/AAAD/af72/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/lAAAP82AAAAAP/a/vAAAAAAAAAAAAAAAAAAAAAAAAD/AP6QAAAAAAAAAAD/kAAAAAAAAP9QAAAAAP+A/xwAAP8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/uAAAAAAAAP+m/7gAAAAAAAAAAAAA/3P/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ggAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAA/5AAAAAAAAAAAP6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAP8m/03/8gAAAAAAAAAAAAAAAP+aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAA/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8IAAAAAAAAAAP/+AAAAAAAAAAAAAP9w/8AAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0QAAAAD/QAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAD/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MAB4AAAAAAAA/6AAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9mAAD/mv8w/yb/ZwAAAAAAAAAAAAAAAP+NAAD/UP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8P7wAAD/UAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAD/YAAAAAAAAAAA/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2n/oP+a/1D/M/9pAAAAAAAAAAAAAAAA/40AAP9Q/6AAAAAA//oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAP9wAAAAAAAAAAAAAAAAAAAAAAAA/vAAAAAAAAAAAP9gAAAAAAAAAAD+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/DAAAAAP+g/6b/0AAAAAAAAAAAABYAAP+4AAAAAP/FAAAAAAAAAAAAAP/FAAAAAAAzAAAAAAAAAAAAAAAAAAABIP9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9gAAAAAAAAAAD/kAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAACQAAAAAAEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAD/YADwAAAAAAAAAAAAAABwAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wgAAAAAAAAAA/6AAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6gAAAAA/iD+4AAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAD+4P/F/7AAAP9o/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6gAAAAAAAAAAAAAAAAAAAAD/4P/XAAAAAP+Q/+0AAP8A/4D/+v+g/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAP9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAA/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+gAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/DwAAAAAAAAAAAAAAAAAA/7T/BgAAAAAAAAAAAAD/OAAAAAAAAAAAAAD/cP8IAAAAAAAA/7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tAAAAAAAAAAAAAAAAAAAAAAAAP9w/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9Q/8QAAP6AAAD/YP+QADAALP9QAAAAAP9z/1D/YP8wAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6gAAD/YP9QAAAAAP+AAAAAAAAAAAAAAP7IAAD/cP9QAAD/EAAA/+AAAAAA/fAAAAAAAAD+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/k//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAA/1D/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAD/oAAAAAD/AP6QAAAAAAAAAAAAAP+QAAAAAAAAAAAAAP+gAAAAAP9Q/6D/oP9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAP+QAAAAAP8Q/4AAAP+gAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+MAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAP/w/zgAAP/gAAAAAAAAAAD/6AAAAAAAAAAA/+AAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAP7Q/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+8AAA/wAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAA/0AAAAAA/qAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP5gAAAAAP8QAAAAAAAAAAAAAAAAAAAAAP76AAD/UAAAAAAAAAAAAAAAAAAA/qAAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAANQAAAEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAP7w/yAAAAAAAAAAAP7wAAD/oAAA/6D/oAAA/6AAAAAA/oAAAAAAAAAAAP+gAAAAAAAAAAD/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//cAAAAAAAAAAAAAAAD/pgAAAAAAAAAAAAAAAABwAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAMAAYAAAAAAAAAAAAHAAAABgAAAAAAAAAAAAAAAAAAAAYACgAAgAKAAgAAAAAAAAAAAAAAAAAAAAAACAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/9/+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/pgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MABgAAAAAAAAAAAAAAAAAAAAAP8g/1AAAAAA/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAYAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9QAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAAAAAAAAA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AuAAYANiAGAFNf9QBYf/oAWO/9gFrv+gB6v/YAAHAqoAYAK3AHAFh/+ABY7/QAWo/3AFrv+gBcH/oAAIAMgAYAEhAGACtwBgAtQAYALVAHADiABgB4MAYAeLAGAACAK3AIAFE/+gBTD/cAU4/+AFTf/fBVAACAWH/6AFjv8wAAgCtwBwBRP/oAUw/3AFOP/gBU3/3wVQAAgFh/+gBY7/MAAIBeP/4wXm/+AF5/+TBej/7QXp/+MF6gAlBev/5QXs/+0ACAYf/+YGIv/jBiP/ngYk/+8GJf/mBiYAIgYn/+gGKP/vAAkCqgBgArcAcAWH/4AFjv9ABaj/cAWu/6AFwf+gBwb/4AcH/+AACQKeAGACsQBgArIAYAKzAGACtgBgArcAgAK4AGADXQBgBRcAgAAJAMYA4ADHAIAAyQBwArUAYAK3AHAC4ACAAuEAYANiAIAFqQBgAAkAyABgASEAYAGb/zABov8wAaP/MAK3AHAC1QBgB4MAYAeLAGAACQOl/4gFcP8wBXH/MAV7/w8FfP8PBX3/DwWo/6AFqf9wBcX/YAAJA+H+4AP/AJAEDf9QBBT/cAS7ALAE0f9wBNf/oATd/5AHq/7wAAkBmv+zAZv/swPh/00EAP7zBAL/jQQU/2YFF/+6BwYAFAcHABQACQGa/6ABnf+gAZ7/oAGf/6ABoP+gAaL/kAGj/5AD4f9QBBT/cAAJAMYA4ADHAIAAyQBwArUAYAK3AGAC4ACAAuEAYANiAIAFqQBgAAoAigD4ATUA+AK8APgCvQD4AsMA+ALGAPgCxwD4AsgA+ALJAPgC/AD4AAsAxgDgAMcAgADJAHACtQBgArcAYALgAIAC4QBgA2IAgAWpAGAHBv+QBwf/jAALAMYA4ADHAIAAyQBwArUAYAK3AGAC4ACAAuEAYANiAIAFqQBgBwYCHwcHAh8ACwDGAOAAxwCAAMkAcAK1AGACtwBgAuAAgALhAGADYgCABakAYAcG/rMHB/6zAAsAxgDgAMcAgADJAHACtQBgArcAYALgAIAC4QBgA2IAgAWpAGAHBv9+Bwf/fgALAIoAKAE1ACgCvAAoAr0AKALDACgCxgAoAscAKALIACgCyQAoAvwAKAWpAGAADAGb/zABov8wAaP/MAKeAGACqQBgAqoAYAKrAGACsgBgArMAYAK3AHACuABgAsEAYAAOAdv/oAHd/6AB3v+gAd//oAVR/3AFdP9ABYf/UAWa/5AFqP6QBa3/kAWu/6AFuf+ACIT/gAiF/4AADgDGAOAAxwCAAMgAYADJAHABIQBgArUAYAK3AGAC1QBgAuAAgALhAGADYgCABakAYAeDAGAHiwBgAA4CCP+QArcAcAMJ/4AFE/+gBTD/cAU4/+AFQ/+gBU3/OQVQAAgFh/+QBY7/MAWW/5AFqP9QBan/IAAPAFUAYAGb/1ABoQBgAaL/UAGj/1ACngBwArEAcAKyAIACtwBgArgAcAVN/2AFff8wBY7/oAWo/5AFqf8gAA8AqQCABIAAYASHAGAFE/9gBjkAAAY6AAAGOwAABjwAAAY9/6YGPgAABj8AAAZAAAAGQQAABkIAAAZQAAAADwBVAGABm/9QAaEAYAGi/1ABo/9QAp4AcAKxAHACsgCAArcAcAK4AHAFTf9gBX3/MAWO/6AFqP+QBan/IAAQAdv/oAHd/6AB3v+gAd//oAVR/3AFdP9ABYf/UAWa/5AFqP6QBa3/kAWu/6AFuf+ABwYAgAcHAIAIhP+ACIX/gAAQAMYA4ADHAIAAyABwAMkAcAEhAHACtQBgArcAYALUAGAC1QBwAuAAgALhAGADYgCAA4gAYAWpAGAHgwBwB4sAcAARAgj/kAK3AIADCf+ABRP/oAUw/3AFOP/gBUP/oAVN/zkFUAAIBXv/oAV8/6AFff+gBYf/kAWO/zAFlv+QBaj/UAWp/yAAEQII/5ACtwBwAwn/gAUT/6AFMP9wBTj/4AVD/6AFTf85BVAACAV7/6AFfP+gBX3/oAWH/5AFjv8wBZb/kAWo/1AFqf8gABECpwBgAqgAYAKsAGACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAgAK5AGACugBgArsAYALAAGACwgBgBN4AYAASAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AIACuQBgAroAYAK7AGACwABgAsIAYANdAGAE3gBgABIDh/+AA///kARS/1AEa/9ABH//QASB/1AEu/9gBOX/oAUT/vAFGP+QBTD/QAU4/0AFQ/9gBUv+oAVN/nAFjv7wBZr/gAWp/5AAEwCKAEsAxgDgAMcAgADJAHABNQBLArUAYAK3AGACvABLAr0ASwLDAEsCxgBLAscASwLIAEsCyQBLAuAAgALhAGAC/ABLA2IAgAWpAGAAEwCKABMAxgDgAMcAgADJAHABNQATArUAYAK3AGACvAATAr0AEwLDABMCxgATAscAEwLIABMCyQATAuAAgALhAGAC/AATA2IAgAWpAGAAFAKnAGACqABgAqwAYAKtAGACrwBgArAAYAKxAGACtABgArUAYAK2AGACtwCAArkAYAK6AGACuwBgAsAAYALCAGADXQBgBN4AYAVN/5AFqf+QABQBmf+AAZr/gAGb/4ABnP+AAZ3/gAGe/4ABn/+AAaD/gAGh/4ABov+AAaP/gAGk/4AEDP+ABBH/gAQU/4AEJP+ABvH/gAer/4AHrP+AB8f/gAAUAZn/kAGa/5ABm/+QAZz/kAGd/5ABnv+QAZ//kAGg/5ABof+QAaL/kAGj/5ABpP+QBAz/kAQR/5AEFP+QBCT/kAbx/5AHq/+QB6z/kAfH/5AAFAGZ/6ABmv+gAZv/oAGc/6ABnf+gAZ7/oAGf/6ABoP+gAaH/oAGi/6ABo/+gAaT/oAQM/6AEEf+gBBT/oAQk/6AG8f+gB6v/oAes/6AHx/+gABQBmf7wAZr+8AGb/vABnP7wAZ3+8AGe/vABn/7wAaD+8AGh/vABov7wAaP+8AGk/vAEDP7wBBH+8AQU/vAEJP7wBvH+8Aer/vAHrP7wB8f+8AAUA+H/gARs/6AEbf+gBG7/oARv/6AEcP+gBHH/oARy/6AEc/+gBHT/oAR1/6AEdv+gBHf/oAR4/6AEef+gBHr/oAR7/6AEfP+gBH3/oAWpAMAAFQGZ/4ABmv+AAZv/gAGc/4ABnf+AAZ7/gAGf/4ABoP+AAaH/gAGi/4ABo/+AAaT/gAK3AHAEDP+ABBH/gAQU/4AEJP+ABvH/gAer/4AHrP+AB8f/gAAVAZr/oAGd/6ABnv+gAZ//oAGg/6ABof+gAdv/oAHd/6AB3v+gAd//oAUU/+AFF//MBRj/ugUZ/+YFMf/zBTX+9gZm/oAGkf/gB6v/oAiE/oAIhf6AABUBmv+gAZ3/oAGe/6ABn/+gAaD/oAGh/6AB2/+gAd3/oAHe/6AB3/+gBRT/4AUX/8wFGP+6BRn/5gUx//MFNf72Bmb+gAaR/+AHq/+gCIT+AAiF/oAAFQHV/6AB1v+gAdf/oAHY/6AB2f+gAdr/oAHb/6AB3P+gAd3/oAHe/6AB3/+gAeD/oAHh/6AB4v+gAeP/oAHo/6AB6f+gAez/oAQJ/6AHr/+gB7D/oAAWAZn/cAGa/3ABm/9wAZz/cAGd/3ABnv9wAZ//cAGg/3ABof9wAaL/cAGj/3ABpP9wAdb/cAP7/6AEDP9wBBH/cAQU/3AEJP9wBvH/cAer/3AHrP9wB8f/cAAWAZn/MAGa/zABm/8wAZz/MAGd/zABnv8wAZ//MAGg/zABof8wAaL/MAGj/zABpP8wAdb/cAP7/6AEDP8wBBH/MAQU/zAEJP8wBvH/MAer/zAHrP8wB8f/MAAWAZn/IAGa/yABm/8gAZz/IAGd/yABnv8gAZ//IAGg/yABof8gAaL/IAGj/yABpP8gAdb/kAP7/5AEDP8gBBH/IAQU/yAEJP8gBvH/IAer/yAHrP8gB8f/IAAXAZn/cAGa/3ABm/9wAZz/cAGd/3ABnv9wAZ//cAGg/3ABof9wAaL/cAGj/3ABpP9wAdb/cAK3AGACxf+ABAz/cAQR/3AEFP9wBCT/cAbx/3AHq/9wB6z/cAfH/3AAFwGZ/yABmv8gAZv/IAGc/yABnf8gAZ7/IAGf/yABoP8gAaH/IAGi/yABo/8gAaT/IAHW/3ACtwBgAsX/gAQM/yAEEf8gBBT/IAQk/yAG8f8gB6v/IAes/yAHx/8gABgAVQBgAF4A0AB5ANAAqgDQAK4A0AE1ANABNwDQATwA0AE9ANABiQDQAaEAYAKeAHACrwBgArEAYAKyAHACswBgArYAYAK3AJACuABgAsX/YALGAGADXQBwBRcBAAahANAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwCQArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwBwArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwBgArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAWpAHAAGQHF/+ABxv/gAcf/4AHI/+AByf/gAcr/4AHL/+ABzP/gAc3/4AHO/+AD4f8AA/v/4AQj/+AEQv+gBVD/4AVp/1AFav+gBW7/UAVv/6AFdP+gB6v/QAiR/+AIlP/gCJr/4Aib/+AAGQII/5ACF/+QAmX/cAMI/3ADCf9wA4T/cAOF/5ADqf9wA7f/oAPO/5AD0P+QA9H/kAPW/5oD1/+aA9j/kAUT/0AFMP+gBU3/IAVR/0YFff8QBYD/kAWH/yAFjv8gBan/YAWu/6AAGgEL/rACSP9gAkn/YAJU/2ACV/9gAl7/YAJh/2ACYv9gAmb/YAKD/2ACsP+oArcAgAMP/2ADQ/9gBCf/YAUT/0AFMP9QBX3+8AWH/3AFif9QBY7+4AWW/4AFqP9wBa7/kAXB/6AIpP9gABoBCf9QAQr/UAEL/1ABDP9QAQ3/UAHFAAgBxgAIAccACAHIAAgByQAIAcoACAHLAAgBzAAIAc0ACAHOAAgCtwBwA/sACAQjAAgFUAAIBXv/kAV8/5AFff+QCJEACAiUAAgImgAICJsACAAaAQv+sAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/6gCtwBwAw//YAND/2AEJ/9gBRP/QAUw/1AFff7wBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAGwDGAOAAxwCAAMkAcAK1AGACtwBgAuAAgALhAGADYgCABakAYAWqAHAFqwBwBbMAcAW6AHAFuwBwBbwAcAW9AHAGOQCABjoAgAY7AIAGPACABj0AgAY+AIAGPwCABkAAgAZBAIAGQgCABlAAgAAbA+D/kARC/3AEgP+gBIf/QAVR/6YFUv+mBV7/pgWH/6YFiv+gBYz/oAWO/1AFlP+mBZX/pgWX/6YFmv+mBaH/pgWi/6YFpP+mBaf/pgWo/6YFrv+gBq3/pgau/6YGr/+mBsT/pgbF/6YGxv+mABwCCP+QAhf/kAJl/3ACtwBwAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA87/kAPQ/5AD0f+QA9b/mgPX/5oD2P+QBRP/QAUw/6AFTf8gBVH/RgV7/6AFfP+gBX3/oAWA/5AFh/8gBY7/IAWp/2AFrv+gABwAVQBgANAAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKrAGACrACAArIAcAKzAHACtQBwArcAYAK4AGACxgBwAuAAgALhAGADXQBgA2IAgAOAAGAE8ABgBPIAYAT7AGAFRQAoBUcAKAVJACgFqQBwAB0B2/+gAd3/oAHe/6AB3/+gBVH/igVS/6YFXv+mBXT/QAWH/4MFlP+mBZX/pgWX/6YFmv+gBaH/pgWi/6YFpP+mBaf/pgWo/10Frf+QBa7/oAW5/4AGrf+mBq7/pgav/6YGxP+mBsX/pgbG/6YIhP+ACIX/gAAeAdv/oAHd/6AB3v+gAd//oAVR/3AFUv+NBV7/jQV0/0AFh/9qBZT/jQWV/40Fl/+NBZr/gAWh/40Fov+NBaT/jQWn/40FqP9DBaz/gAWt/4AFrv+gBbn/gAat/40Grv+NBq//jQbE/40Gxf+NBsb/jQiE/4AIhf+AAB4B2/+gAd3/oAHe/6AB3/+gBVH/lgVS/7MFXv+zBXT/QAWH/5AFlP+zBZX/swWX/7MFmv+dBaH/swWi/7MFpP+zBaf/swWo/2oFrP+gBa3/oAWu/6AFuf+QBq3/swau/7MGr/+zBsT/swbF/7MGxv+zCIT/gAiF/4AAIAEJ/5ABCv+QAQv/kAEM/5ABDf+QAkj/YAJJ/2ACVP9gAlf/YAJe/2ACYf9gAmL/YAJm/2ACg/9gArD/qAK3AIADD/9gA0P/YAQn/2AFE/9ABTD/UAV7/5AFfP+QBX3/kAWH/3AFif9QBY7+4AWW/4AFqP9wBa7/kAXB/6AIpP9gACABCf+gAQr/oAEL/6ABDP+gAQ3/oAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/6gCtwBwAw//YAND/2AEJ/9gBRP/QAUw/1AFe/+gBXz/oAV9/6AFh/9wBYn/UAWO/uAFlv+ABaj/cAWu/5AFwf+gCKT/YAAgAQn/oAEK/6ABC/+gAQz/oAEN/6ACSP9gAkn/YAJU/2ACV/9gAl7/YAJh/2ACYv9gAmb/YAKD/2ACsP+oArcAgAMP/2ADQ/9gBCf/YAUT/0AFMP9QBXv/oAV8/6AFff+gBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAIQBVAGABmQDQAZoA0AGbANABnADQAZ0A0AGeANABnwDQAaAA0AGhANABogDQAaMA0AGkANACngBwArEAcAKyAIACtwBwArgAcAQMANAEEQDQBBQA0AQkANAFTf9gBXv/MAV8/zAFff8wBY7/oAWo/5AFqf8gBvEA0AerANAHrADQB8cA0AAiAdX/oAHW/6AB1/+gAdj/oAHZ/6AB2v+gAdv/oAHc/6AB3f+gAd7/oAHf/6AB4P+gAeH/oAHi/6AB4/+gAej/oAHp/6AB7P+gBAn/oAVR/3AFav+QBW//kAV0/5AFh/9QBZr/kAWo/pAFrP+ABa3/gAWu/6AFuf+AB6//oAew/6AIhP+ACIX/gAAiAdX/oAHW/6AB1/+gAdj/oAHZ/6AB2v+gAdv/oAHc/6AB3f+gAd7/oAHf/6AB4P+gAeH/oAHi/6AB4/+gAej/oAHp/6AB7P+gBAn/oAVR/3AFav+gBW//oAV0/6AFh/9QBZr/kAWo/pAFrP+gBa3/oAWu/6AFuf+gB6//oAew/6AIhP+ACIX/gAAiArcAcAQK/3AEDf+gBBT/kAS+/6AE0f9QBNf/YATd/4AE/v+gBRP/kAVR/vMFUv7zBV7+8wWH/vMFiv9wBYz/cAWO/3AFlP7zBZX+8wWW/4AFl/7zBZr/oAWh/vMFov7zBaT+8wWn/vMFqP9wBa7/gAat/vMGrv7zBq/+8wbE/vMGxf7zBsb+8wAlAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA83/kAPO/5ADz/+QA9D/kAPR/5AD0v+QA9P/kAPU/5AD1f+QA9b/kAPX/5AD2P+QBRP/QAUw/6AFTf8gBVH/RgV7/xAFfP8QBX3/EAV//5AFgP+QBYH/kAWC/5AFh/8gBY7/IAWp/2AFrv+gCIf/kAAlAFUAYACKAHABNQBwAaEAYAKeAHACpwBgAqgAYAKpAHACqgBwAqsAcAKsAGACrQBgAq8AYAKwAGACsQBwArIAcAKzAHACtABgArUAYAK2AGACtwBwArgAcAK5AGACugBgArsAYAK8AHACvQBwAsAAYALBAHACwgBgAsMAcALGAHACxwBwAsgAcALJAHAC/ABwBN4AYAAlAIoAYAE1AGACngBwAqcAYAKoAGACqQBgAqoAcAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAHACswBgArQAYAK1AGACtgBgArcAkAK4AGACuQBgAroAYAK7AGACvABgAr0AYALAAGACwQBgAsIAYALDAGACxgBgAscAYALIAGACyQBgAvwAYANdAHAE3gBgBakAYAAlAFUAYACKAHAA0ABgATUAcAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKpAGACqgBgAqsAcAKsAIACsgBgArMAYAK1AHACtwBwArgAYAK8AHACvQBwAsEAYALDAHACxgBwAscAcALIAHACyQBwAuAAgALhAGAC/ABwA10AYANiAIADgABgBPAAYATyAGAE+wBgBakAcAAlAFUAYABeANAAeQDQAKoA0ACuANABNQDQATcA0AE8ANABPQDQAYkA0AGhAGACngBwAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAKyAHACswBgArQAcAK1AHACtgBwArcAkAK4AGACuQBwAroAcAK7AHACwABwAsIAcALF/2ACxgBgA10AcATeAHAFFwEABqEA0AAoAIoAYAE1AGAB+P/yAp4AYAKnAGACqABgAqkAYAKqAGACqwBgAqwAYAKtAGACrwBgArAAYAKxAGACsgBgArMAYAK0AGACtQBgArYAYAK3AHACuABgArkAYAK6AGACuwBgArwAYAK9AGACwABgAsEAYALCAGACwwBgAsYAYALHAGACyABgAskAYAL8AGADXQBgBN4AYAVN/6MFjv+QBaj/oAAqAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA87/kAPQ/5AD0f+QA9b/mgPX/5oD2P+QBRP/QAUw/6AFTf8gBVH/oAVS/7MFXv+zBX3/EAWA/5AFh/+GBY7/IAWU/7MFlf+zBZf/swWa/7MFof+zBaL/swWk/7MFp/+zBaj/swWp/2AFrv+gBq3/swau/7MGr/+zBsT/swbF/7MGxv+zACoAVQBgANAAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKnAHACqABwAqkAYAKqAGACqwBgAqwAcAKtAHACrwBwArAAcAKxAHACsgBgArMAYAK0AHACtQBwArYAcAK3AKACuABgArkAcAK6AHACuwBwAsAAcALBAGACwgBwAsYAcALgAIAC4QBgA10AcANiAIADgABgBN4AcATwAGAE8gBgBPsAYAWpAHAAKgBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqcAYAKoAGACqQBgAqoAYAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAGACswBgArQAYAK1AGACtgBgArcAkAK4AGACuQBgAroAYAK7AGACwABgAsEAYALCAGACxgBwAuAAgALhAGADXQBgA2IAgAOAAGAE3gBgBPAAYATyAGAE+wBgBakAcAAtAFUAYABeANAAeQDQAIoAcACqANAArgDQATUAcAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAHACqABwAqwAcAKtAHACrwBwArAAcAKxAHACsgBwArMAYAK0AHACtQBwArYAcAK3AJACuABwArkAcAK6AHACuwBwArwAcAK9AHACwABwAsIAcALDAHACxf9gAsYAcALHAHACyABwAskAcAL8AHADXQBwBN4AcAUXAQAGoQDQAC0AVQBgAF4A0AB5ANAAigBwAKoA0ACuANABNQBwATcA0AE8ANABPQDQAYkA0AGhAGACngBwAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAKyAIACswBgArQAcAK1AHACtgBwArcAkAK4AHACuQBwAroAcAK7AHACvABwAr0AcALAAHACwgBwAsMAcALF/2ACxgBwAscAcALIAHACyQBwAvwAcANdAHAE3gBwBRcBAAahANAALQH4//ICtwBwAtIAMANdAGADpAAwA6YAMAOnADADsQAwA7IAMAOzADADtAAwA7UAMAO2ADADtwAwA7gAMAO5ADADugAwA7sAMAO8ADADvQAwA74AMAO/ADADwAAwA8EAMAPCADADwwAwA8QAMAPFADADxgAwA8cAMAPMADAEtQAwBLwAMAS9ADAE0wAwBNQAMATtADAFTf+jBY7/kAWo/6AIRgAwCGcAMAk9ADAJ4AAwCeEAMAAvAgj/kAIX/5ACZf9wAtL/YAMI/3ADCf9wA4T/cAOF/5ADqf9wA7H/YAOy/2ADs/9gA7T/YAO3/6ADzf+aA87/nQPP/5oD0P+dA9H/nQPS/5oD0/+aA9T/mgPV/5oD1v+aA9f/mgPY/50EvP9gBL3/YATT/2AE1P9gBRP/QAUw/6AFTf8gBVH/RgV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/8gBY7/IAWp/2AFrv+gCIf/oAk9/2AALwII/5ACF/+QAmX/cALS/2ADCP9wAwn/cAOE/3ADhf+QA6n/cAOx/2ADsv9gA7P/YAO0/2ADt/+gA83/oAPO/6ADz/+gA9D/oAPR/6AD0v+gA9P/oAPU/6AD1f+gA9b/oAPX/6AD2P+gBLz/YAS9/2AE0/9gBNT/YAUT/0AFMP+gBU3/IAVR/0YFe/+gBXz/oAV9/6AFf/+gBYD/oAWB/6AFgv+gBYf/IAWO/yAFqf9gBa7/oAiH/6AJPf9gAC8CCP+QAhf/kAJl/3AC0v9QAwj/cAMJ/3ADhP9wA4X/kAOp/3ADsf9QA7L/UAOz/1ADtP9QA7f/oAPN/5ADzv+QA8//kAPQ/5AD0f+QA9L/kAPT/5AD1P+QA9X/kAPW/5AD1/+QA9j/kAS8/1AEvf9QBNP/UATU/1AFE/9ABTD/oAVN/yAFUf9GBXv/EAV8/xAFff8QBX//kAWA/5AFgf+QBYL/kAWH/yAFjv8gBan/YAWu/6AIh/+QCT3/UAAxAFUAYABeANAAeQDQAIoAYACqANAArgDQATUAYAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAHACqABwAqkAYAKqAGACqwBgAqwAcAKtAHACrwBwArAAcAKxAHACsgBgArMAYAK0AHACtQBwArYAcAK3AKACuABgArkAcAK6AHACuwBwArwAYAK9AGACwABwAsEAYALCAHACwwBgAsX/YALGAGACxwBgAsgAYALJAGAC/ABgA10AcATeAHAFFwEABqEA0AAxAFUAYABeANAAeQDQAIoAcACqANAArgDQATUAcAE3ANABPADQAT0A0AGJANABoQBgAp4AcAKnAGACqABgAqkAYAKqAHACqwBwAqwAYAKtAGACrwBgArAAYAKxAGACsgBwArMAYAK0AGACtQBgArYAYAK3AIACuABwArkAYAK6AGACuwBgArwAcAK9AHACwABgAsEAYALCAGACwwBwAsX/YALGAHACxwBwAsgAcALJAHAC/ABwA10AYATeAGAFFwEABqEA0AAzAFUAYACKAGAA0ABgATUAYAGhAGABxgBgAccAYAHNAGABzgBgAp4AYAKnAGACqABgAqkAYAKqAGACqwBgAqwAYAKtAGACrwBgArAAYAKxAGACsgBgArMAYAK0AGACtQBgArYAYAK3AGACuABgArkAYAK6AGACuwBgArwAYAK9AGACwABgAsEAYALCAGACwwBgAsYAYALHAGACyABgAskAYALgAIAC4QBgAvwAYANdAGADYgCAA4AAYATeAGAE8ABgBPIAYAT7AGAFqQBwADMAVQBgAIoAcADQAGABNQBwAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqcAcAKoAHACqQBgAqoAYAKrAHACrABwAq0AcAKvAHACsABwArEAcAKyAGACswBgArQAcAK1AHACtgBwArcAcAK4AHACuQBwAroAcAK7AHACvABwAr0AcALAAHACwQBgAsIAcALDAHACxgBwAscAcALIAHACyQBwAuAAgALhAGAC/ABwA10AYANiAIADgABgBN4AcATwAGAE8gBgBPsAYAWpAHAANgGZ/0ABmv9AAZv/QAGc/0ABnf9AAZ7/QAGf/0ABoP9AAaH/QAGi/0ABo/9AAaT/QAHF/6ABxv+gAcf/oAHV/0AB1v9AAdf/QAHY/0AB2f9AAdr/QAHb/0AB3P9AAd3/QAHe/0AB3/9AAeD/QAHh/0AB4v9AAeP/QAHo/0AB6f9AAez/QAPh/0AD+/+gBAn/QAQM/0AEEf9ABBT/QAQj/6AEJP9ABVD/oAVp/6AFbv+gBvH/QAer/0AHrP9AB6//QAew/0AHx/9ACJH/oAiU/6AImv+gCJv/oAA2AZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAcX/kAHG/5ABx/+QAdX/gAHW/4AB1/+AAdj/gAHZ/4AB2v+AAdv/gAHc/4AB3f+AAd7/gAHf/4AB4P+AAeH/gAHi/4AB4/+AAej/gAHp/4AB7P+AA/v/kAQA/4AECf+ABAz/YAQR/2AEFP8wBBv/gAQj/5AEJP9gBPf/oAVQ/5AG8f9gB6v/YAes/2AHr/+AB7D/gAfH/2AIkf+QCJT/kAia/5AIm/+QADcEQ/+gBIX/oAVp/5AFbv+QBfQATQX1AE0F9gBNBfcATQX4AE0F+QBNBfoATQX7AE0F/ABNBf0ATQX+AE0F/wBNBgAATQYBAE0GAgBNBgMATQYEAE0GBQBNBgYATQYHAE0GCABNBgkATQYKAE0GCwBNBgwATQYNAE0GDgBNBg8ATQYQAE0GEQBNBhIATQYTAE0GFABNBhUATQYWAE0GFwBNBhgATQYZAE0GHABNBh0ATQYeAE0GKgBNBisATQYsAE0GLQBNBi4ATQYvAE0GMABNBjEATQYyAE0GMwBNADgAigBgATUAYAGZAIABmgCAAZsAgAGcAIABnQCAAZ4AgAGfAIABoACAAaEAgAGiAIABowCAAaQAgAKeAHACpwBgAqgAYAKpAGACqgBwAqsAYAKsAGACrQBgAq8AYAKwAGACsQBgArIAcAKzAGACtABgArUAYAK2AGACtwCQArgAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALBAGACwgBgAsMAYALGAGACxwBgAsgAYALJAGAC/ABgA10AcAQMAIAEEQCABBQAgAQkAIAE3gBgBvEAgAerAIAHrACAB8cAgABBBEL/YARD/5AERP+zBEX/swRG/7MER/+zBEj/swRJ/7MESv+zBEv/swRM/7METf+zBE7/swRP/7MEUP+zBFH/swSA/0AEhf+QBIf+8ASc/6AEnf+QBJ7/kASf/5AEoP+QBKH/kASi/5AEo/+QBKT/kASl/5AEpv+QBKf/kASo/5AEqf+QBKr/kASr/5AErP+QBK3/kASu/5AEr/+QBLD/kASx/5AEsv+QBLP/kAS0/5AFD/9gBRv/YAVR/7MFUv+zBV7/swWH/7MFlP+zBZX/swWX/7MFmv+zBaH/swWi/7MFpP+zBaf/swWo/7MGrf+zBq7/swav/7MGxP+zBsX/swbG/7MAQwAC/1AAA/9QAAT/UAAF/1AABv9QAAf/UAAI/1AACf9QAAr/UAAL/1AADP9QAA3/UAAO/1AAD/9QABD/UAAR/1AAEv9QABP/UAAU/1AAFf9QABb/UAAX/1AAGP9QABn/UAAa/1AAG/9QABz/UAAd/1AAHv9QAB//UAAg/1AAIf9QACL/UAAj/1AAJP9QACX/UAAm/1AAJ/9QACj/UAAp/1AAKv9QACv/UAAs/1AALf9QAC7/UAAv/1AAMP9QADH/UAAy/1AAM/9QADT/UAA1/1AANv9QADf/UAA4/1AAOf9QADr/UAA7/1AAPP9QAD3/UAA+/1AAP/9QAED/UAPI/1AD2/9QBwYA5AcHAOQARwII/5ACF/+QAmX/cAKb/6AC8v+gAvP/oAMI/3ADCf9wA4P/oAOE/6ADhf+gA4b/oAOH/6ADiP+gA4n/oAOK/6ADi/+gA4z/oAON/6ADjv+gA4//oAOQ/6ADkf+gA5L/oAOT/6ADlP+gA5X/oAOW/6ADl/+gA5j/oAOZ/6ADmv+gA5v/oAOc/6ADnf+gA57/oAOf/6ADoP+gA6H/oAOi/6ADo/+gA6n/cAO3/6ADzf+aA87/nQPP/5oD0P+dA9H/nQPS/5oD0/+aA9T/mgPV/5oD1v+aA9f/mgPY/50FE/9ABTD/oAVN/yAFUf9GBXv/oAV8/6AFff+gBX//oAWA/6AFgf+gBYL/oAWH/yAFjv8gBan/YAWu/6AIh/+gAEkD2/+QBH7/QAVN/6AFaf+QBW7/kAVw/yAFcf8gBXv/MAV8/zAFff8wBaj/oAX0/7MF9f+zBfb/swX3/7MF+P+zBfn/swX6/7MF+/+zBfz/swX9/7MF/v+zBf//swYA/7MGAf+zBgL/swYD/7MGBP+zBgX/swYG/7MGB/+zBgj/swYJ/7MGCv+zBgv/swYM/7MGDf+zBg7/swYP/7MGEP+zBhH/swYS/7MGE/+zBhT/swYV/7MGFv+zBhf/swYY/7MGGf+zBhz/swYd/7MGHv+zBir/swYr/7MGLP+zBi3/swYu/7MGL/+zBjD/swYx/7MGMv+zBjP/swY5AIAGOgCABjsAgAY8AIAGPQCABj4AgAY/AIAGQACABkEAgAZCAIAGUACAAFECCP+QAhf/kAJl/3ACm/+gAtL/YALy/6AC8/+gAwj/cAMJ/3ADg/+gA4T/oAOF/6ADhv+gA4f/oAOI/6ADif+gA4r/oAOL/6ADjP+gA43/oAOO/6ADj/+gA5D/oAOR/6ADkv+gA5P/oAOU/6ADlf+gA5b/oAOX/6ADmP+gA5n/oAOa/6ADm/+gA5z/oAOd/6ADnv+gA5//oAOg/6ADof+gA6L/oAOj/6ADqf9wA7H/YAOy/2ADs/9gA7T/YAO3/6ADzf+gA87/oAPP/6AD0P+gA9H/oAPS/6AD0/+gA9T/oAPV/6AD1v+gA9f/oAPY/6AEvP9gBL3/YATT/2AE1P9gBRP/QAUw/6AFTf8gBVH/RgV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/8gBY7/IAWp/2AFrv+gCIf/oAk9/2AAUwGZ/5ABmv+QAZv/kAGc/5ABnf+QAZ7/kAGf/5ABoP+QAaH/kAGi/5ABo/+QAaT/kAHF/2wBxv9sAcf/bAHI/18Byf9fAcr/XwHL/18BzP9fAc3/XwHO/18C4ABgA2IAYAOk/3ADpv9wA6f/cAO1/3ADtv9wA7f/cAO4/3ADuf9wA7r/cAO7/3ADvP9wA73/cAO+/3ADv/9wA8D/cAPB/3ADwv9wA8P/cAPE/3ADxf9wA8b/cAPH/3ADzP9wA+H/kAP7/2wEDP+QBBH/kAQU/5AEI/9sBCT/kARC/3AEtf9wBO3/cAT3/3AFNf9QBVD/bAVp/4gFav9gBW7/iAVv/2AFdP9gBXsAcAV8AHAFfQBwBYf/oAWO/9gFrv+gBvH/kAer/5AHrP+QB8f/kAhG/3AIZ/9wCJH/bAiU/2wImv9sCJv/bAng/3AJ4f9wAFUAAv+gAAP/oAAE/6AABf+gAAb/oAAH/6AACP+gAAn/oAAK/6AAC/+gAAz/oAAN/6AADv+gAA//oAAQ/6AAEf+gABL/oAAT/6AAFP+gABX/oAAW/6AAF/+gABj/oAAZ/6AAGv+gABv/oAAc/6AAHf+gAB7/oAAf/6AAIP+gACH/oAAi/6AAI/+gACT/oAAl/6AAJv+gACf/oAAo/6AAKf+gACr/oAAr/6AALP+gAC3/oAAu/6AAL/+gADD/oAAx/6AAMv+gADP/oAA0/6AANf+gADb/oAA3/6AAOP+gADn/oAA6/6AAO/+gADz/oAA9/6AAPv+gAD//oABA/6ABmf+gAZr/oAGb/6ABnP+gAZ3/oAGe/6ABn/+gAaD/oAGh/6ABov+gAaP/oAGk/6ADyP+gA9v/oAQM/6AEEf+gBBT/oAQk/6AG8f+gB6v/oAes/6AHx/+gAFsBm/8wAaL/MAGj/zACtwBwA9v/kAVN/6AFUf+mBVL/pgVe/6YFaf9wBW7/cAWH/6YFjv+QBZT/pgWV/6YFl/+mBZr/pgWh/6YFov+mBaT/pgWn/6YFqP+gBan/oAX0/3MF9f9zBfb/cwX3/3MF+P9zBfn/cwX6/3MF+/9zBfz/cwX9/3MF/v9zBf//cwYA/3MGAf9zBgL/cwYD/3MGBP9zBgX/cwYG/3MGB/9zBgj/cwYJ/3MGCv9zBgv/cwYM/3MGDf9zBg7/cwYP/3MGEP9zBhH/cwYS/3MGE/9zBhT/cwYV/3MGFv9zBhf/cwYY/3MGGf9zBhz/cwYd/3MGHv9zBir/cwYr/3MGLP9zBi3/cwYu/3MGL/9zBjD/cwYx/3MGMv9zBjP/cwY5AIAGOgCABjsAgAY8AIAGPQCABj4AgAY/AIAGQACABkEAgAZCAIAGUACABq3/pgau/6YGr/+mBsT/pgbF/6YGxv+mAF8ASf/aAEr/2gBL/9oATP/aAE3/2gBO/9oAT//aAFD/2gBR/9oAUv/aAFP/2gCN/9oAjv/aAI//2gCQ/9oAkf/aAJL/2gCT/9oAlP/aAJX/2gCW/9oAl//aAUD/2gFB/9oBQv/aAUP/2gFE/9oBRf/aAUb/2gFH/9oBSP/aAUn/2gFK/9oBS//aAUz/2gFN/9oBTv/aAU//2gFQ/9oBUf/aAVL/2gFT/9oBVP/aAVX/2gFW/9oBV//aAVj/2gFZ/9oBWv/aAVv/2gFc/9oBXf/aAV7/2gFf/9oBYP/aAWH/2gFi/9oBY//aAWT/2gFl/9oBZv/aAWf/2gFo/9oBaf/aAWr/2gFr/9oBbP/aAW3/2gFu/9oBb//aAXD/2gFx/9oBcv/aAXP/2gF0/9oBdf/aAX3/2gPc/9oEB//aBAr/2gQZ/9oEHv/aBQD/2gUB/9oFAv/aBRP/gAUw/6AFqf9ABbD/2gbY/9oG2f/aB4n/2gep/9oHrv/aB8b/2gBhA4f/YAPb/1AEf/+gBIH/oAS2/6AFDv+gBRP/QAUW/6AFGv+gBTD/oAVN/0AFUf9NBVL/TQVe/00FcP6wBXH+sAV7/vAFfP7wBX3+8AV//1AFgP9QBYH/UAWC/1AFh/9NBYr/eAWL/8gFjP94BY3/yAWO/wAFlP9NBZX/TQWX/00Fmv9NBaH/TQWi/00FpP9NBaf/TQWo/00Fqf7gBfT/AAX1/wAF9v8ABff/AAX4/wAF+f8ABfr/AAX7/wAF/P8ABf3/AAX+/wAF//8ABgD/AAYB/wAGAv8ABgP/AAYE/wAGBf8ABgb/AAYH/wAGCP8ABgn/AAYK/wAGC/8ABgz/AAYN/wAGDv8ABg//AAYQ/wAGEf8ABhL/AAYT/wAGFP8ABhX/AAYW/wAGF/8ABhj/AAYZ/wAGHP8ABh3/AAYe/wAGKv8ABiv/AAYs/wAGLf8ABi7/AAYv/wAGMP8ABjH/AAYy/wAGM/8ABq3/TQau/00Gr/9NBsT/TQbF/00Gxv9NCIf/UABiAgj/kAIX/5ACZf9wApv/igLS/2AC8v+KAvP/igMI/3ADCf9wA4P/igOE/5YDhf+dA4b/igOH/4oDiP+KA4n/igOK/4oDi/+KA4z/igON/4oDjv+KA4//igOQ/4oDkf+KA5L/igOT/4oDlP+KA5X/igOW/4oDl/+KA5j/igOZ/4oDmv+KA5v/igOc/4oDnf+KA57/igOf/4oDoP+KA6H/igOi/4oDo/+KA6n/cAOx/2ADsv9gA7P/YAO0/2ADt/+gA83/mgPO/50Dz/+aA9D/nQPR/50D0v+aA9P/mgPU/5oD1f+aA9b/mgPX/5oD2P+dBLz/YAS9/2AE0/9gBNT/YAUT/0AFMP+gBU3/IAVR/6AFUv+zBV7/swV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/+GBY7/IAWU/7MFlf+zBZf/swWa/7MFof+zBaL/swWk/7MFp/+zBaj/swWp/2AFrv+gBq3/swau/7MGr/+zBsT/swbF/7MGxv+zCIf/oAk9/2AAdgAC/5AAA/+QAAT/kAAF/5AABv+QAAf/kAAI/5AACf+QAAr/kAAL/5AADP+QAA3/kAAO/5AAD/+QABD/kAAR/5AAEv+QABP/kAAU/5AAFf+QABb/kAAX/5AAGP+QABn/kAAa/5AAG/+QABz/kAAd/5AAHv+QAB//kAAg/5AAIf+QACL/kAAj/5AAJP+QACX/kAAm/5AAJ/+QACj/kAAp/5AAKv+QACv/kAAs/5AALf+QAC7/kAAv/5AAMP+QADH/kAAy/5AAM/+QADT/kAA1/5AANv+QADf/kAA4/5AAOf+QADr/kAA7/5AAPP+QAD3/kAA+/5AAP/+QAED/kAEJ/5ABCv+QAQv/kAEM/5ABDf+QAZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAcX/cAHG/3ABx/9wAe3/kAHu/5AB7/+QAfD/kAHx/5AB8v+QAfP/kAH0/5AB9f+QAfb/kAH3/5ADyP+QA+H/YAP7/3AEDP9gBBH/YAQU/2AEI/9wBCT/YAVQ/3AFaf9gBW7/YAVw/qAFcf6gBXv+4AV8/uAFff7gBvH/YAer/2AHrP9gB8f/YAiR/3AIlP9wCJr/cAib/3AAeQGZ/2ABmv9gAZv/YAGc/2ABnf9gAZ7/YAGf/2ABoP9gAaH/YAGi/2ABo/9gAaT/YAHF/1ABxv9QAcf/UAHI/5AByf+QAcr/kAHL/5ABzP+QAc3/kAHO/5AB1f8wAdb/MAHX/zAB2P8wAdn/MAHa/zAB2/8wAdz/MAHd/zAB3v8wAd//MAHg/zAB4f8wAeL/MAHj/zAB6P8wAen/MAHs/zADpP+gA6b/oAOn/6ADqP+gA6n/oAOr/6ADrP+gA63/oAOu/6ADr/+gA7D/oAO1/6ADtv+gA7f/oAO4/6ADuf+gA7r/oAO7/6ADvP+gA73/oAO+/6ADv/+gA8D/oAPB/6ADwv+gA8P/oAPE/6ADxf+gA8b/oAPH/6ADzP+gA+H/MAP7/1AECf8wBAz/YAQR/2AEFP9gBCP/UAQk/2AEtf+gBO3/oAVQ/1AFaf8ABWz/oAVt/6AFbv8ABYj/oAWq/5AFq/+QBa//wAWy/8AFs/+QBbr/kAW7/5AFvP+QBb3/kAY5/4AGOv+ABjv/gAY8/4AGPf+ABj7/gAY//4AGQP+ABkH/gAZC/4AGUP+ABvH/YAer/2AHrP9gB6//MAew/zAHx/9gCEb/oAhn/6AIkf9QCJT/UAia/1AIm/9QCeD/oAnh/6AAiQAC/6AAA/+gAAT/oAAF/6AABv+gAAf/oAAI/6AACf+gAAr/oAAL/6AADP+gAA3/oAAO/6AAD/+gABD/oAAR/6AAEv+gABP/oAAU/6AAFf+gABb/oAAX/6AAGP+gABn/oAAa/6AAG/+gABz/oAAd/6AAHv+gAB//oAAg/6AAIf+gACL/oAAj/6AAJP+gACX/oAAm/6AAJ/+gACj/oAAp/6AAKv+gACv/oAAs/6AALf+gAC7/oAAv/6AAMP+gADH/oAAy/6AAM/+gADT/oAA1/6AANv+gADf/oAA4/6AAOf+gADr/oAA7/6AAPP+gAD3/oAA+/6AAP/+gAED/oAEJ/4ABCv+AAQv/gAEM/4ABDf+AAZn/IAGa/yABm/8gAZz/IAGd/yABnv8gAZ//IAGg/yABof8gAaL/IAGj/yABpP8gAcX/kAHG/5ABx/+QAc//gAHQ/4AB0f+AAdL/gAHT/4AB1P+AAdX/cAHW/3AB1/9wAdj/cAHZ/3AB2v9wAdv/cAHc/3AB3f9wAd7/cAHf/3AB4P9wAeH/cAHi/3AB4/9wAej/cAHp/3AB7P9wA8j/oAPh/00D+/+QBAD/gAQC/40ECf9wBAz/IAQR/yAEFP8gBCP/kAQk/yAFF/+6BVD/kAbx/yAHq/8gB6z/IAev/3AHsP9wB7v/gAe8/4AHx/8gB8j/gAiR/5AIkv+ACJT/kAia/5AIm/+QCJz/gAif/4AJPP+AAJwAAv/YAAP/2AAE/9gABf/YAAb/2AAH/9gACP/YAAn/2AAK/9gAC//YAAz/2AAN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/4AGBv+ABgf/gAYI/4AGCf+ABgr/gAYL/4AGDP+ABg3/gAYO/4AGD/+ABhD/gAYR/4AGEv+ABhP/gAYU/4AGFf+ABhb/gAYX/4AGGP+ABhn/gAYc/4AGHf+ABh7/gAYq/4AGK/+ABiz/gAYt/4AGLv+ABi//gAYw/4AGMf+ABjL/gAYz/4AGrf9aBq7/Wgav/1oGxP9aBsX/WgbG/1oIh/+QAAIAkQACAEAAAABJAJYAPwChAMwAjQDOAM4AuQDQANkAugDbAOIAxADlAOcAzADpAOkAzwEJAX0A0AGZAlMBRQJVAlYCAAJYAl4CAgJgAmICCQJkAoMCDAKFApwCLAKeAtYCRALYAvgCfQL7AvwCngL+AwoCoAMMA0ICrQNFA0gC5ANKA3IC6AN0A3UDEQN3A6kDEwOrA7ADRgO2A8gDTAPMA9wDXwPfA+EDcAP7BAADcwQDBAQDeQQGBAcDewQJBAsDfQQNBA0DgAQQBBsDgQQjBFIDjQRrBIQDvQSGBLwD1wS/BNIEDgTVBNsEIgTeBN4EKQTjBOUEKgToBOsELQTtBO0EMQTvBPAEMgTyBPIENAT0BPQENQT7BPsENgUABQIENwUJBQkEOgUOBQ4EOwUTBRQEPAUWBRoEPgUdBR8EQwUwBTEERgUzBTMESAU1BTUESQU4BTgESgU7BTsESwU9BT0ETAU/BT8ETQVBBUEETgVDBUQETwVGBUYEUQVIBUgEUgVKBUsEUwVNBU4EVQVQBVIEVwVbBVsEWgVeBV4EWwVpBWoEXAVsBXEEXgV0BXQEZAV7BX0EZQV/BX8EaAWCBYIEaQWHBYgEagWKBZoEbAWdBaIEfQWkBbAEgwWyBbMEkAW5Bb8EkgXBBcEEmQXaBdoEmgXjBeMEmwXmBeYEnAXqBewEnQX0BhkEoAYcBh8ExgYmBiYEygYoBigEywYqBjMEzAY5BkIE1gZLBksE4AZPBlAE4QZXBlcE4wZcBlwE5AaoBqwE5Qa/BsME6gbYBt4E7wbxBvIE9gb4BvgE+AcGBwcE+QeCB4IE+weFB4YE/AeJB4kE/geLB4sE/wePB48FAAeZB5kFAQecB5wFAgefB58FAwepB6kFBAerB6wFBQevB7AFBwe3B7gFCQe7B7wFCwfDB8oFDQfMB8wFFQftB+8FFggVCBUFGQgZCBkFGggjCCMFGwguCC8FHAhCCEQFHghGCEYFIQhLCEsFIghNCE0FIwhaCFoFJAhnCGcFJQhqCGsFJgh5CHkFKAiHCIcFKQiRCJIFKgiUCJQFLAiWCJYFLQiYCKAFLgikCKYFNwi1CLUFOgi5CLkFOwjhCOEFPAkuCS4FPQkzCTMFPgk3CTcFPwk6CTwFQAngCeEFQwnoCegFRQEaAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgArcAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR4AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/yABo/8gAdb/kAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwCAAsoAYALLAGACzABgAs0AYALOAGACzwBgAtAAYALRAGAC0wBgAtQAYALVAGAC1gBgAtcAYALZAGAC2gBgAtsAYALcAGAC3QBgAt4AYALfAGAC4ABgAuEAYALiAGAC4wBgAuQAYALlAGAC5wBgAugAYALpAGAC6gBgAusAYALsAGAC7QBgAu4AYALvAGADcgBgA3MAYAPZAGAD2gBgA94AYAP7/5AD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR4AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/yABo/8gAdb/cAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwBwAsX/gALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYAUJAGAFDABgBQ0AYAVOAGAFvwBgBqEAYAbaAGAG2wBgBtwAYAbdAGAG3gBgBvgAYAeGAGAHlwBgB58AYAfDAGAHxABgB8UAYAfJAGAHygBgCFoAYAh5AGAIlgBgCJgAYAiZAGAInQBgCJ4AYAigAGAJLgBgAR8AQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMkAYADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAGi/zABo/8wAdb/cAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACtwCAAsoAYALLAGACzABgAs0AYALOAGACzwBgAtAAYALRAGAC0wBgAtQAYALVAGAC1gBgAtcAYALZAGAC2gBgAtsAYALcAGAC3QBgAt4AYALfAGAC4ABgAuEAYALiAGAC4wBgAuQAYALlAGAC5wBgAugAYALpAGAC6gBgAusAYALsAGAC7QBgAu4AYALvAGADXQBgA3IAYANzAGAD2QBgA9oAYAPeAGAD+/+gA/wAYAP9AGAEAwBgBAQAYAQFAGAECABgBAsAYAQQAGAEEgBgBBMAYAQVAGAEFgBgBBgAYAQaAGAEHABgBB0AYAQmAGAFCQBgBQwAYAUNAGAFTgBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEtAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAK0AHACtQBwArYAcAK3AIACuQBwAroAcAK7AHACwABwAsIAcALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA10AYANiAHADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AcAUJAGAFDABgBQ0AYAVOAGAFjv+wBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEtAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AIACuQBgAroAYAK7AGACwABgAsIAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA10AYANiAGADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AYAUJAGAFDABgBQ0AYAVOAGAFjv+wBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAExAEEAcABCAHAAQwBwAEQAcABFAHAARgBwAEcAcABIAHAAVABwAFUAcABWAHAAVwBwAFgAcABZAHAAWgBwAFsAcABcAHAAXQBwAF4AcABfAHAAYABwAGEAcABiAHAAYwBwAGQAcABlAHAAZgBwAGcAcABoAHAAaQBwAGoAcABrAHAAbABwAG0AcABuAHAAbwBwAHAAcABxAHAAcgBwAHMAcAB0AHAAdQBwAHYAcAB3AHAAeABwAHkAcAB7AHAAhABwAIUAcACGAHAAhwBwAIgAcACJAHAAiwBwAKEAcACiAHAAowBwAKQAcAClAHAApgBwAKcAcACoAHAAqQBwAKoAcACrAHAArABwAK0AcACuAHAArwBwALAAcACxAHAAsgBwALMAcAC0AHAAtQBwALYAcAC3AHAAuABwALkAcAC6AHAAuwBwALwAcAC9AHAAvgBwAL8AcADAAHAAwQBwAMIAcADDAHAAxABwAMUAcADJAHAAygBwAMsAcADQAHAA0QBwANIAcADVAHAA1gBwANcAcADYAHAA5wBwAOkAcAEOAHABDwBwARAAcAERAHABEgBwARMAcAEUAHABFQBwARYAcAEXAHABGABwARkAcAEaAHABGwBwARwAcAEdAHABHgBwAR8AcAEgAHABIQBwASIAcAEjAHABJABwASUAcAEmAHABJwBwASgAcAEpAHABKgBwASsAcAEsAHABLQBwAS4AcAEvAHABMABwATEAcAEyAHABMwBwATQAcAE2AHABNwBwATgAcAE5AHABOgBwATsAcAE8AHABPQBwAT4AcAE/AHABdgBwAXcAcAF4AHABeQBwAXoAcAF7AHABfABwAX4AcAF/AHABgABwAYEAcAGCAHABgwBwAYQAcAGFAHABhgBwAYcAcAGIAHABiQBwAYoAcAGYAHABov8wAaP/MAHW/3ACBABgAj8AcAJBAHACQgBwAkMAcAJEAHACRQBwAnsAYAKUAHAClQBwApYAcAKXAHACmABwApkAcAKaAHACngBwAp8AcAKgAHACoQBwAqIAcAKjAHACpABwAqUAcAKmAHACpwBgAqgAYAKsAGACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAgAK5AGACugBgArsAYALAAGACwgBgAsoAcALLAHACzABwAs0AcALOAHACzwBwAtAAcALRAHAC0wBwAtQAcALVAHAC1gBwAtcAcALZAHAC2gBwAtsAcALcAHAC3QBwAt4AcALfAHAC4ABwAuEAcALiAHAC4wBwAuQAcALlAHAC5wBwAugAcALpAHAC6gBwAusAcALsAHAC7QBwAu4AcALvAHADXQBgA3IAcANzAHAD2QBwA9oAcAPeAHAD+/+gA/wAcAP9AHAEAwBwBAQAcAQFAHAECABwBAsAcAQQAHAEEgBwBBMAcAQVAHAEFgBwBBgAcAQaAHAEHABwBB0AcAQmAHAE3gBgBQkAcAUMAHAFDQBwBU4AcAW/AHAGoQBwBtoAcAbbAHAG3ABwBt0AcAbeAHAG+ABwB4YAcAeXAHAHnwBwB8MAcAfEAHAHxQBwB8kAcAfKAHAIWgBwCHkAcAiWAHAImABwCJkAcAidAHAIngBwCKAAcAkuAHABOABBAGAAQgBgAEMAYABEAGAARQBgAEYAYABHAGAASABgAFQAYABVAGAAVgBgAFcAYABYAGAAWQBgAFoAYABbAGAAXABgAF0AYABeAGAAXwBgAGAAYABhAGAAYgBgAGMAYABkAGAAZQBgAGYAYABnAGAAaABgAGkAYABqAGAAawBgAGwAYABtAGAAbgBgAG8AYABwAGAAcQBgAHIAYABzAGAAdABgAHUAYAB2AGAAdwBgAHgAYAB5AGAAewBgAIQAYACFAGAAhgBgAIcAYACIAGAAiQBgAIoAYACLAGAAoQBgAKIAYACjAGAApABgAKUAYACmAGAApwBgAKgAYACpAGAAqgBgAKsAYACsAGAArQBgAK4AYACvAGAAsABgALEAYACyAGAAswBgALQAYAC1AGAAtgBgALcAYAC4AGAAuQBgALoAYAC7AGAAvABgAL0AYAC+AGAAvwBgAMAAYADBAGAAwgBgAMMAYADEAGAAxQBgAMYA4ADHAIAAyQBwAMoAYADLAGAA0ABgANEAYADSAGAA1QBgANYAYADXAGAA2ABgAOcAYADpAGABDgBgAQ8AYAEQAGABEQBgARIAYAETAGABFABgARUAYAEWAGABFwBgARgAYAEZAGABGgBgARsAYAEcAGABHQBgAR4AYAEfAGABIABgASEAYAEiAGABIwBgASQAYAElAGABJgBgAScAYAEoAGABKQBgASoAYAErAGABLABgAS0AYAEuAGABLwBgATAAYAExAGABMgBgATMAYAE0AGABNQBgATYAYAE3AGABOABgATkAYAE6AGABOwBgATwAYAE9AGABPgBgAT8AYAF2AGABdwBgAXgAYAF5AGABegBgAXsAYAF8AGABfgBgAX8AYAGAAGABgQBgAYIAYAGDAGABhABgAYUAYAGGAGABhwBgAYgAYAGJAGABigBgAZgAYAI/AGACQQBgAkIAYAJDAGACRABgAkUAYAKUAGAClQBgApYAYAKXAGACmABgApkAYAKaAGACngBgAp8AYAKgAGACoQBgAqIAYAKjAGACpABgAqUAYAKmAGACpwBgAqgAYAKsAHACrQBgAq8AYAKwAGACsQBgArQAYAK1AGACtgBgArcAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALCAGACwwBgAsYAYALHAGACyABgAskAYALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAcALhAHAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgAvwAYANiAHADcgBgA3MAYAPZAGAD2gBgA94AYAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBN4AYAUJAGAFDABgBQ0AYAVOAGAFqQBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAE8AEEAcABCAHAAQwBwAEQAcABFAHAARgBwAEcAcABIAHAAVABwAFUAcABWAHAAVwBwAFgAcABZAHAAWgBwAFsAcABcAHAAXQBwAF4AcABfAHAAYABwAGEAcABiAHAAYwBwAGQAcABlAHAAZgBwAGcAcABoAHAAaQBwAGoAcABrAHAAbABwAG0AcABuAHAAbwBwAHAAcABxAHAAcgBwAHMAcAB0AHAAdQBwAHYAcAB3AHAAeABwAHkAcAB7AHAAhABwAIUAcACGAHAAhwBwAIgAcACJAHAAigBgAIsAcAChAHAAogBwAKMAcACkAHAApQBwAKYAcACnAHAAqABwAKkAcACqAHAAqwBwAKwAcACtAHAArgBwAK8AcACwAHAAsQBwALIAcACzAHAAtABwALUAcAC2AHAAtwBwALgAcAC5AHAAugBwALsAcAC8AHAAvQBwAL4AcAC/AHAAwABwAMEAcADCAHAAwwBwAMQAcADFAHAAxgDgAMcAgADJAHAAygBwAMsAcADQAGAA0QBwANIAcADVAHAA1gBwANcAcADYAHAA5wBwAOkAcAEOAHABDwBwARAAcAERAHABEgBwARMAcAEUAHABFQBwARYAcAEXAHABGABwARkAcAEaAHABGwBwARwAcAEdAHABHgBwAR8AcAEgAHABIQBwASIAcAEjAHABJABwASUAcAEmAHABJwBwASgAcAEpAHABKgBwASsAcAEsAHABLQBwAS4AcAEvAHABMABwATEAcAEyAHABMwBwATQAcAE1AGABNgBwATcAcAE4AHABOQBwAToAcAE7AHABPABwAT0AcAE+AHABPwBwAXYAcAF3AHABeABwAXkAcAF6AHABewBwAXwAcAF+AHABfwBwAYAAcAGBAHABggBwAYMAcAGEAHABhQBwAYYAcAGHAHABiABwAYkAcAGKAHABmABwAj8AcAJBAHACQgBwAkMAcAJEAHACRQBwApQAcAKVAHAClgBwApcAcAKYAHACmQBwApoAcAKeAHACnwBwAqAAcAKhAHACogBwAqMAcAKkAHACpQBwAqYAcAKnAHACqABwAqwAgAKtAHACrwBwArAAcAKxAHACtABwArUAcAK2AHACtwBgArkAcAK6AHACuwBwArwAYAK9AGACwABwAsIAcALDAGACxgBwAscAYALIAGACyQBgAsoAcALLAHACzABwAs0AcALOAHACzwBwAtAAcALRAHAC0wBwAtQAcALVAHAC1gBwAtcAcALZAHAC2gBwAtsAcALcAHAC3QBwAt4AcALfAHAC4ACAAuEAcALiAHAC4wBwAuQAcALlAHAC5wBwAugAcALpAHAC6gBwAusAcALsAHAC7QBwAu4AcALvAHAC/ABgA2IAgANyAHADcwBwA9kAcAPaAHAD3gBwA/wAcAP9AHAEAwBwBAQAcAQFAHAECABwBAsAcAQQAHAEEgBwBBMAcAQVAHAEFgBwBBgAcAQaAHAEHABwBB0AcAQmAHAE3gBwBPIAYAUJAHAFDABwBQ0AcAU8AGAFPwBgBUIAYAVOAHAFqQBgBb8AcAahAHAG2gBwBtsAcAbcAHAG3QBwBt4AcAb4AHAHhgBwB5cAcAefAHAHwwBwB8QAcAfFAHAHyQBwB8oAcAhaAHAIeQBwCJYAcAiYAHAImQBwCJ0AcAieAHAIoABwCS4AcAFfAAIAQAADAEAABABAAAUAQAAGAEAABwBAAAgAQAAJAEAACgBAAAsAQAAMAEAADQBAAA4AQAAPAEAAEABAABEAQAASAEAAEwBAABQAQAAVAEAAFgBAABcAQAAYAEAAGQBAABoAQAAbAEAAHABAAB0AQAAeAEAAHwBAACAAQAAhAEAAIgBAACMAQAAkAEAAJQBAACYAQAAnAEAAKABAACkAQAAqAEAAKwBAACwAQAAtAEAALgBAAC8AQAAwAEAAMQBAADIAQAAzAEAANABAADUAQAA2AEAANwBAADgAQAA5AEAAOgBAADsAQAA8AEAAPQBAAD4AQAA/AEAAQABAAEEAKABCACgAQwAoAEQAKABFACgARgAoAEcAKABIACgAVAAoAFUAKABWACgAVwAoAFgAKABZACgAWgAoAFsAKABcACgAXQAoAF4AKABfACgAYAAoAGEAKABiACgAYwAoAGQAKABlACgAZgAoAGcAKABoACgAaQAoAGoAKABrACgAbAAoAG0AKABuACgAbwAoAHAAKABxACgAcgAoAHMAKAB0ACgAdQAoAHYAKAB3ACgAeAAoAHkAKAB7ACgAhAAoAIUAKACGACgAhwAoAIgAKACJACgAiwAoAKEAKACiACgAowAoAKQAKAClACgApgAoAKcAKACoACgAqQAoAKoAKACrACgArAAoAK0AKACuACgArwAoALAAKACxACgAsgAoALMAKAC0ACgAtQAoALYAKAC3ACgAuAAoALkAKAC6ACgAuwAoALwAKAC9ACgAvgAoAL8AKADAACgAwQAoAMIAKADDACgAxAAoAMUAKADGAOAAxwCAAMkAKADKACgAywAoANAAKADRACgA0gAoANUAKADWACgA1wAoANgAKADnACgA6QAoAQ4AKAEPACgBEAAoAREAKAESACgBEwAoARQAKAEVACgBFgAoARcAKAEYACgBGQAoARoAKAEbACgBHAAoAR0AKAEeACgBHwAoASAAKAEhACgBIgAoASMAKAEkACgBJQAoASYAKAEnACgBKAAoASkAKAEqACgBKwAoASwAKAEtACgBLgAoAS8AKAEwACgBMQAoATIAKAEzACgBNAAoATYAKAE3ACgBOAAoATkAKAE6ACgBOwAoATwAKAE9ACgBPgAoAT8AKAF2ACgBdwAoAXgAKAF5ACgBegAoAXsAKAF8ACgBfgAoAX8AKAGAACgBgQAoAYIAKAGDACgBhAAoAYUAKAGGACgBhwAoAYgAKAGJACgBigAoAZgAKAI/ACgCQQAoAkIAKAJDACgCRAAoAkUAKAKUACgClQAoApYAKAKXACgCmAAoApkAKAKaACgCngAoAp8AKAKgACgCoQAoAqIAKAKjACgCpAAoAqUAKAKmACgCtQBgArcAYALKACgCywAoAswAKALNACgCzgAoAs8AKALQACgC0QAoAtMAKALUACgC1QAoAtYAKALXACgC2QAoAtoAKALbACgC3AAoAt0AKALeACgC3wAoAuAAKALhACgC4gAoAuMAKALkACgC5QAoAucAKALoACgC6QAoAuoAKALrACgC7AAoAu0AKALuACgC7wAoA2IAgANyACgDcwAoA8gAQAPZACgD2gAoA94AKAP8ACgD/QAoBAMAKAQEACgEBQAoBAgAKAQLACgEEAAoBBIAKAQTACgEFQAoBBYAKAQYACgEGgAoBBwAKAQdACgEJgAoBQkAKAUMACgFDQAoBU4AKAWpAGAFvwAoBqEAKAbaACgG2wAoBtwAKAbdACgG3gAoBvgAKAeGACgHlwAoB58AKAfDACgHxAAoB8UAKAfJACgHygAoCFoAKAh5ACgIlgAoCJgAKAiZACgInQAoCJ4AKAigACgJLgAoAXgASf+QAEr/kABL/5AATP+QAE3/kABO/5AAT/+QAFD/kABR/5AAUv+QAFP/kACKARAAjf+QAI7/kACP/5AAkP+QAJH/kACS/5AAk/+QAJT/kACV/5AAlv+QAJf/kAE1ARABQP+QAUH/kAFC/5ABQ/+QAUT/kAFF/5ABRv+QAUf/kAFI/5ABSf+QAUr/kAFL/5ABTP+QAU3/kAFO/5ABT/+QAVD/kAFR/5ABUv+QAVP/kAFU/5ABVf+QAVb/kAFX/5ABWP+QAVn/kAFa/5ABW/+QAVz/kAFd/5ABXv+QAV//kAFg/5ABYf+QAWL/kAFj/5ABZP+QAWX/kAFm/5ABZ/+QAWj/kAFp/5ABav+QAWv/kAFs/5ABbf+QAW7/kAFv/5ABcP+QAXH/kAFy/5ABc/+QAXT/kAF1/5ABff+QAZn/YAGa/2ABm/9gAZz/YAGd/2ABnv9gAZ//YAGg/2ABof9gAaL/YAGj/2ABpP9gAaX/kAGm/5ABp/+QAaj/kAGp/5ABqv+QAav/kAGs/5ABrf+QAa7/kAGv/5ABsP+QAbH/kAGy/5ABs/+QAbT/kAG1/5ABtv+QAbf/kAG4/5ABuf+QAbr/kAG7/5ABvP+QAb3/kAG+/5ABv/+QAcD/kAHB/5ABwv+QAcP/kAHE/5ABxf8gAcb/IAHH/yACGACAAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK5AGACugBgArsAYAK8ARACvQEQAsAAYALCAGACwwEQAsYBEALHARACyAEQAskBEALgAGAC8ACAAvEAgAL0AIAC9QCAAvYAgAL3AIAC+ACAAvkAgAL6AIAC+wCAAvwBEAL9AIAC/gCAAv8AgAMAAIADAQCAAwIAgAMDAIADBACAAwUAgAMGAIADOwCAAzwAgAM9AIADPgCAAz8AgANAAIADQwCAA0UAgANGAIADRwCAA0sAgANMAIADTQCAA04AgANPAIADUACAA1EAgANSAIADUwCAA1QAgANVAIADVgCAA1cAgANYAIADWQCAA1oAgANbAIADXACAA10AgANeAIADXwCAA2AAgANhAIADYgBgA6T/IAOm/yADp/8gA7X/IAO2/yADt/8gA7j/IAO5/yADuv8gA7v/IAO8/yADvf8gA77/IAO//yADwP8gA8H/IAPC/yADw/8gA8T/IAPF/yADxv8gA8f/IAPM/yAD3P+QA+D/kAPh/vAD+/8gA/8AoAQH/5AECv+QBAz/YAQN/tAEEf9gBBT/cAQZ/5AEHv+QBCP/IAQk/2AEQQCABEL/YARTAIAEVACABFUAgARWAIAEVwCABFgAgARZAIAEWgCABFsAgARcAIAEXQCABF4AgARfAIAEYACABGEAgARiAIAEYwCABGQAgARlAIAEZgCABGcAgARoAIAEaQCABGoAgASBAIAEggCABIMAgASEAIAEiACABIkAgASKAIAEiwCABIwAgASNAIAEjgCABI8AgASQAIAEkQCABJIAgASTAIAElACABJUAgASWAIAElwCABJgAgASZAIAEtf8gBLb/gAS3AIAEuACABLkAgAS7AIAEvwCABMAAgATBAIAEwgCABMMAgATEAIAEyQCABMoAgATLAIAEzACABM0AgATOAIAEzwCABNAAgATVAIAE1gCABNoAgATbAIAE3ACABN4AYATiAIAE5ACABOYAgATnAIAE7f8gBPf/cAUA/5AFAf+QBQL/kAUO/4AFD/7QBRL/gAUT/2AFFP+ABRb/gAUY/4AFGf+ABRr/gAUb/tAFHP+ABR//gAVQ/yAFXACABWn/kAVu/5AFrP9ABa3/QAWw/5AFuf9ABb7/gAbY/5AG2f+QBvH/YAeJ/5AHnACAB6n/kAer/2AHrP9gB67/kAfG/5AHx/9gCBUAgAgvAIAIQgCACEMAgAhEAIAIRv8gCEsAgAhn/yAIkf8gCJT/IAia/yAIm/8gCOEAgAkzAIAJOwCACeD/IAnh/yAJ6ACAAdwAAv7QAAP+0AAE/tAABf7QAAb+0AAH/tAACP7QAAn+0AAK/tAAC/7QAAz+0AAN/tAADv7QAA/+0AAQ/tAAEf7QABL+0AAT/tAAFP7QABX+0AAW/tAAF/7QABj+0AAZ/tAAGv7QABv+0AAc/tAAHf7QAB7+0AAf/tAAIP7QACH+0AAi/tAAI/7QACT+0AAl/tAAJv7QACf+0AAo/tAAKf7QACr+0AAr/tAALP7QAC3+0AAu/tAAL/7QADD+0AAx/tAAMv7QADP+0AA0/tAANf7QADb+0AA3/tAAOP7QADn+0AA6/tAAO/7QADz+0AA9/tAAPv7QAD/+0ABA/tABCf7wAQr+8AEL/vABDP7wAQ3+8AH4/4AB+f+AAfr/gAH7/4AB/P+AAf3/gAH+/4AB//+AAgD/gAIB/4ACAv+AAgP/gAIE/4ACBf+AAgb/gAIH/4ACCP+AAgn/gAIK/4ACC/+AAgz/gAIN/4ACDv+AAg//gAIQ/4ACEf+AAhL/gAIT/4ACFP+AAhX/gAIW/4ACF/+AAhn/gAIa/4ACG/+AAhz/gAId/4ACHv+AAh//gAIg/3ACIf9wAiL/cAIj/3ACJP9wAiX/cAIm/3ACJ/9wAij/cAIp/3ACKv9wAiv/cAIs/3ACLf9wAi7/cAIv/3ACMP9wAjH/cAIy/3ACM/9wAjT/cAI1/3ACNv9wAjf/cAI4/3ACOf9wAjr/cAI7/3ACPP9wAj3/cAI+/3ACRv9wAkf/cAJI/3ACSf9wAkr/cAJL/3ACTP9wAk3/cAJO/3ACT/9wAlD/cAJR/3ACUv9wAlP/cAJU/3ACVf9wAlb/cAJX/3ACWP9wAln/cAJa/3ACW/9wAlz/cAJd/3ACXv9wAmD/cAJh/3ACYv9wAmP/cAJk/3ACZf9wAmb/cAJn/3ACaP9wAmn/cAJq/3ACa/9wAmz/cAJt/3ACbv9wAm//cAJw/3ACcf9wAnL/cAJz/3ACdP9wAnX/cAJ2/3ACd/9wAnj/cAJ5/3ACev9wAnv/cAJ8/3ACff9wAn7/cAJ//3ACgP9wAoH/cAKC/3ACg/9wAor/cAKL/3ACjP9wAo3/cAKO/3ACj/9wApD/cAKR/3ACkv9wApP/cAKpAQACqgEAAqsBAAKyAQACswEAArgBAALBAQADB/9wAwj/cAMJ/3ADCv9wAwv/cAMM/3ADDf9wAw7/cAMP/3ADEP9wAxH/cAMS/3ADE/9wAxT/cAMV/3ADFv9wAxf/cAMY/3ADGf9wAxr/cAMb/3ADHP9wAx3/cAMe/3ADH/9wAyD/cAMh/3ADIv9wAyP/cAMk/3ADJf9wAyb/cAMn/3ADKP9wAyn/cAMq/3ADK/9wAyz/cAMt/3ADLv9wAy//cAMw/3ADMf9wAzL/cAMz/3ADNP9wAzX/cAM2/3ADN/9wAzj/cAM5/3ADOv9wA0H/cANC/3ADY/+QA2T/kANl/5ADZv+QA2f/kANo/5ADaf+QA2r/kANr/5ADbP+QA23/kANu/5ADb/+QA3D/kANx/5ADyP7QA9v+0AQl/3AEJ/9wBCj/cAQp/3AEKv9wBCv/cAQs/3AELf9wBC7/cAQv/3AEMP9wBDH/cAQy/3AEM/9wBDT/cAQ1/3AENv9wBDf/cAQ4/3AEOf9wBDr/cAQ7/3AEPP9wBD3/cAQ+/3AEP/9wBED/cARD/3AERP9wBEX/cARG/3AER/9wBEj/cARJ/3AESv9wBEv/cARM/3AETf9wBE7/cARP/3AEUP9wBFH/cARS/3AEa/9wBGz/cARt/3AEbv9wBG//cARw/3AEcf9wBHL/cARz/3AEdP9wBHX/cAR2/3AEd/9wBHj/cAR5/3AEev9wBHv/cAR8/3AEff9wBIH/cASF/3AEhv9wBJr/cASb/3AEnf9wBJ7/cASf/3AEoP9wBKH/cASi/3AEo/9wBKT/cASl/3AEpv9wBKf/cASo/3AEqf9wBKr/cASr/3AErP9wBK3/cASu/3AEr/9wBLD/cASx/3AEsv9wBLP/cAS0/3AEtv/UBNL/cATX/4AE2P+A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AUAGrwFABrAAAAaxAAAGxAFABsUBQAbGAUAGxwAABsgAAAbY/3UG2f91BtoAGAbbABgG3AAYBt0AGAbeABgG8QAUBvgAGAeGABgHif91B5cAGAefABgHqf91B6sAFAesABQHrv91B6//vgew/74Hu//8B7z//AfDABgHxAAYB8UAGAfG/3UHxwAUB8j//AfJABgHygAYCFoAGAh5ABgIkf/ICJL//AiU/8gIlgAYCJgAGAiZABgImv/ICJv/yAic//wInQAYCJ4AGAif//wIoAAYCS4AGAk8//wCewAC/8QAA//EAAT/xAAF/8QABv/EAAf/xAAI/8QACf/EAAr/xAAL/8QADP/EAA3/xAAO/8QAD//EABD/xAAR/8QAEv/EABP/xAAU/8QAFf/EABb/xAAX/8QAGP/EABn/xAAa/8QAG//EABz/xAAd/8QAHv/EAB//xAAg/8QAIf/EACL/xAAj/8QAJP/EACX/xAAm/8QAJ//EACj/xAAp/8QAKv/EACv/xAAs/8QALf/EAC7/xAAv/8QAMP/EADH/xAAy/8QAM//EADT/xAA1/8QANv/EADf/xAA4/8QAOf/EADr/xAA7/8QAPP/EAD3/xAA+/8QAP//EAED/xABBABgAQgAYAEMAGABEABgARQAYAEYAGABHABgASAAYAEn/dQBK/3UAS/91AEz/dQBN/3UATv91AE//dQBQ/3UAUf91AFL/dQBT/3UAVAAQAFUAGABWABgAVwAYAFgAGABZABgAWgAYAFsAGABcABgAXQAYAF4AGABfABgAYAAYAGEAGABiABgAYwAYAGQAGABlABgAZgAYAGcAGABoABgAaQAYAGoAGABrABgAbAAYAG0AGABuABgAbwAYAHAAGABxABgAcgAYAHMAGAB0ABgAdQAYAHYAGAB3ABgAeAAYAHkAGAB7ABgAhAAYAIUAGACGABgAhwAYAIgAGACJACQAiwAYAI3/dQCO/3UAj/91AJD/dQCR/3UAkv91AJP/dQCU/3UAlf91AJb/dQCX/3UAof+MAKIAGACjABgApAAYAKUAGACmABgApwAYAKgAGACpABgAqgAYAKsAGACsABgArQAYAK4AGACvABgAsAAYALEAGACyABgAswAYALQAGAC1ABgAtgAYALcAGAC4ABgAuQAYALoAGAC7ABgAvAAYAL0AGAC+ABgAvwAYAMAAGADBABgAwgAYAMMAGADEABgAxQIfAMkAGADKABgAywAYANAAGADRABgA0gAYANUAGADWABgA1wAYANgAGADnABgA6QAYAQkAgAEKAIABCwCAAQwAgAENAIABDv/gAQ8AGAEQABgBEQAYARIAGAETABgBFAAYARUAGAEWABgBFwAYARgAgAEZABgBGgAYARsAGAEcABgBHQAYAR4AGAEfABgBIAAYASEAGAEiABgBI/6zASQAGAElABgBJgAYAScAGAEoABgBKQAYASoAGAEr/34BLAAYAS0AGAEuABgBLwAYATAAGAExABgBMgAYATMAGAE0ABgBNgAYATcAGAE4ABgBOQAYAToAGAE7ABgBPAAYAT0AGAE+ABgBPwAYAUD/dQFB/3UBQv91AUP/dQFE/3UBRf91AUb/dQFH/3UBSP91AUn/dQFK/3UBS/91AUz/dQFN/3UBTv91AU//dQFQ/3UBUf91AVL/dQFT/3UBVP91AVX/dQFW/3UBV/91AVj/dQFZ/3UBWv91AVv/dQFc/3UBXf91AV7/dQFf/3UBYP91AWH/dQFi/3UBY/91AWT/dQFl/3UBZv91AWf/dQFo/3UBaf91AWr/dQFr/3UBbP91AW3/dQFu/3UBb/91AXD/dQFx/3UBcv91AXP/dQF0/3UBdf91AXYAGAF3ABgBeAAYAXkAGAF6ABgBewAYAXwAGAF9/3UBfgAYAX8AGAGAABgBgQAYAYIAGAGDABgBhAAYAYUAGAGGABgBhwAYAYgAGAGJABgBigAYAYsAGAGMABgBjQAYAY4AGAGPABgBkAAYAZEAGAGSABgBkwAYAZQAGAGVABgBlgAYAZcAGAGYABgBmQAUAZoAFAGbABQBnAAUAZ0AFAGeABQBnwAUAaAAFAGhABQBogAUAaMAFAGkABQBpf+RAab/kQGn/5EBqP+RAan/kQGq/5EBq/+RAaz/kQGt/5EBrv+RAa//kQGw/5EBsf+RAbL/kQGz/5EBtP+RAbX/kQG2/5EBt/+RAbj/kQG5/5EBuv+RAbv/kQG8/5EBvf+RAb7/kQG//5EBwP+RAcH/kQHC/5EBw/+RAcT/kQHF/8gBxv/IAcf/yAHI/lAByf5QAcr+UAHL/lABzP5QAc3+UAHO/lABz//8AdD//AHR//wB0v/8AdP//AHU//wB1f++Adb/vgHX/74B2P++Adn/vgHa/74B2/++Adz/vgHd/74B3v++Ad//vgHg/74B4f++AeL/vgHj/74B6P++Aen/vgHs/74B7QAhAe4AIQHvACEB8AAhAfEAIQHyACEB8wAhAfQAIQH1ACEB9gAhAfcAIQI/ABgCQQAYAkIAGAJDABgCRAAYAkUAGAKUABgClQAYApYAGAKXABgCmAAYApkAGAKaABgCngAYAp8AGAKgABgCoQAYAqIAGAKjABgCpAAYAqUAGAKmABgCygAYAssAGALMABgCzQAYAs4AGALPABgC0AAYAtEAGALTABgC1AAYAtUAGALWABgC1wAYAtkAGALaABgC2wAYAtwAGALdABgC3gAYAt8AGALgABgC4QAYAuIAGALjABgC5AAYAuUAGALnABgC6AAYAukAGALqABgC6wAYAuwAGALtABgC7gAYAu8AGANyABgDcwAYA8j/xAPZABgD2gAYA9z/dQPeABgD+//IA/wAGAP9ABgEAP/8BAMAGAQEABgEBQAYBAf/dQQIABgECf++BAr/dQQLABgEDAAUBBAAGAQRABQEEgAYBBMAGAQUABQEFQAYBBYAGAQYABgEGf91BBoAGAQcABgEHQAYBB7/dQQj/8gEJAAUBCYAGAS2ABgE7gAYBQD/dQUB/3UFAv91BQkAGAUMABgFDQAYBQ4AGAUPAOwFEABOBRIAGQUT//gFFAAuBRYAGAUXAJ0FGAATBRkAKgUaABgFGwDsBRwAGQUd//gFMQH9BTUA5AVD/kgFSv5QBUsAHgVOABgFUP/IBVEBQAVSAUAFUwEIBVQBCAVV/ioFVv4qBV4BQAVfAQgFYAEIBWH+KgWHAUAFjv/ABY8AMAWQAAAFkQAABZIAAAWTAAAFlAAUBZUBQAWXAUAFmAAABZkAAAWaAUAFnQAABZ4AAAWfAAAFoAAABaEBQAWiAUAFpAFABaUAAAWmAAAFpwFABagBQAWw/3UFvwAYBqEAGAatAUAGrgFABq8BQAawAAAGsQAABsQBQAbFAUAGxgFABscAAAbIAAAG2P91Btn/dQbaABgG2wAYBtwAGAbdABgG3gAYBvEAFAb4ABgHhgAYB4n/dQeXABgHnwAYB6n/dQerABQHrAAUB67/dQev/74HsP++B7v//Ae8//wHwwAYB8QAGAfFABgHxv91B8cAFAfI//wHyQAYB8oAGAhaABgIeQAYCJH/yAiS//wIlP/ICJYAGAiYABgImQAYCJr/yAib/8gInP/8CJ0AGAieABgIn//8CKAAGAkuABgJPP/8AAIAgQACAJcAAAChAMcAlgDJAOkAvQEJAlIA3gJUAlQCKAJWAlYCKQJYAl4CKgJgAmECMQJkAoMCMwKFAvkCUwL7AvwCyAL+A6QCygOmA6kDcQOrA8gDdQPMA9gDkwPaA9wDoAPgA+ADowP7A/4DpAQABAADqAQDBAcDqQQJBAoDrgQNBA0DsAQQBBIDsQQUBBsDtAQeBB4DvAQiBEMDvQRGBEYD3wRsBH0D4ASBBIQD8gSIBLUD9gS3BLoEJAS8BN4EKAThBOUESwTnBOsEUATtBO8EVQUABQIEWAUJBQkEWwUMBRAEXAUSBRMEYQUXBR8EYwU7BT0EbAU/BT8EbwVBBUIEcAVEBUQEcgVGBUYEcwVIBUgEdAVOBU4EdQVQBVIEdgVbBVsEeQVeBV4EegVpBWoEewVsBXEEfQV0BXQEgwV7BX0EhAV/BX8EhwWCBYIEiAWHBYgEiQWKBY0EiwWQBZUEjwWXBZoElQWdBaIEmQWkBacEnwWqBa0EowWvBbAEpwWyBbMEqQW5Bb8EqwXJBcsEsgXNBdMEtQXVBdoEvAXcBdwEwgXeBeIEwwXlBecEyAXqBesEywXtBe0EzQX0BhkEzgYcBh4E9AYhBiEE9wYjBiME+AYmBiYE+QYpBjME+gY5BkIFBQZQBlAFDwZXBlcFEAaoBqwFEQa/BsMFFgbYBt4FGwbxBvIFIgb4BvgFJAeGB4YFJQeJB4kFJgeLB4wFJwePB48FKQeXB5cFKgecB5wFKwefB58FLAepB6kFLQerB6wFLgevB7AFMAe3B7kFMge7B7wFNQfDB8oFNwfMB8wFPwftB+8FQAgVCBUFQwgZCBkFRAgjCCMFRQguCC8FRghCCEQFSAhGCEYFSwhLCEsFTAhNCE0FTQhaCFoFTghnCGcFTwhqCGsFUAh5CHkFUgiHCIcFUwiRCJIFVAiUCJQFVgiWCJYFVwiYCKAFWAikCKYFYQi1CLUFZAjhCOEFZQkuCS4FZgkzCTMFZwk3CTcFaAk6CT0FaQngCeEFbQnoCegFbwACAU8AAgBAAAUAQQBIAAEASQBTAAQAVAB5AAEAewB7AAEAhACJAAEAigCKABsAiwCLAAEAjQCXAAQAoQDFAAEAxgDHABYAyQDLAAEAzADPABYA0ADSAAEA0wDUABYA1QDYAAEA2gDaABYA4wDkABYA5wDnAAEA6ADoABYA6QDpAAEBCQENACMBDgE0AAEBNQE1ABsBNgE/AAEBQAF1AAQBdgF8AAEBfQF9AAQBfgGKAAEBiwGXABQBmAGYAAEBmQGkAA0BxQHHABwByAHOAB8BzwHUABMB1QHjAAwB6AHpAAwB7AHsAAwB7QH3ABkB+AIXAAcCGAIYAAMCGQIfAAcCIAI+AAICPwI/AAECQQJFAAECRgJeAAICYAKDAAIChQKJACcCigKTAAIClAKaAAECmwKbAAgCnAKdAAoCngKmAAECpwKoABICqQKrACICrAKtABICrgKuAAoCrwKxABICsgKzACICtAK2ABICtwK3AEYCuAK4ACICuQK7ABICvAK9ABsCvgK/AAoCwALAABICwQLBACICwgLCABICwwLDABsCxgLJABsCygLRAAEC0gLSAB0C0wLXAAEC2ALYAAoC2QLlAAEC5gLmAAoC5wLvAAEC8ALxAAMC8gLzAAgC9AL7AAMC/AL8ABsC/QMGAAMDBwM6AAIDOwNAAAMDQQNCAAIDQwNDAAMDRQNHAAMDSwNiAAMDYwNxABEDcgNzAAEDdAOCAAoDgwOjAAgDpAOkAAkDpgOnAAkDqAOpAB4DqwOwAB4DsQO0AB0DtQPHAAkDyAPIAAUDzAPMAAkDzQPYABgD2QPaAAED2wPbAD0D3APcAAQD3gPeAAED4APgAD8D+wP7ABwD/AP9AAEEAAQAABMEAwQFAAEEBgQGADEEBwQHAAQECAQIAAEECQQJAAwECgQKAAQECwQLAAEEDAQMAA0EEAQQAAEEEQQRAA0EEgQTAAEEFAQUAA0EFQQWAAEEFwQXADEEGAQYAAEEGQQZAAQEGgQaAAEEHAQdAAEEHgQeAAQEIwQjABwEJAQkAA0EJQQlAAIEJgQmAAEEJwRAAAIEQQRBAAMEQgRCAEQEQwRDADIERARRABUEUwRqAAMEbAR9AA8EgQSEAAMEhQSFADIEhgSGAAIEiASZAAMEmgSbAAIEnAScAEsEnQS0AAsEtQS1AAkEtgS2ACkEtwS5AAMEugS6AAoEuwS7ACYEvAS9AB0EvwTEAAMExQTFACEExgTIACYEyQTQAAME0QTRACEE0gTSAAIE0wTUAB0E1QTWAAME1wTZAAcE2gTcAAME3QTdACEE3gTeABIE4QThACYE4gTiAAME5ATkAAME5QTlABEE5gTnAAME6ATpAAIE6wTrAAoE7ATsACEE7QTtAAkE7gTuABQE7wTvAAIFAAUCAAQFCQUJAAEFDAUNAAEFDgUOACkFDwUPADcFEAUQAFIFEgUSADsFEwUTADMFFgUWACkFGgUaACkFGwUbADcFHAUcADsFHQUdADMFHgUeAE0FHwUfADYFOwU7ACwFPAU8AC0FPQU9ACwFPwU/AC0FQQVBACwFQgVCAC0FRQVFAC4FRwVHAC4FSQVJAC4FTQVNAE4FTgVOAAEFUAVQABwFUQVSAA4FVwVbABcFXAVcAAMFXgVeAA4FYgVjABcFaQVpADoFagVqADAFbAVtACoFbgVuADoFbwVvADAFcAVxADkFdAV0ADAFewV9AC8FfwWCACUFhwWHAA4FiAWIACoFigWKADQFiwWLADUFjAWMADQFjQWNADUFkAWTABAFlAWVAA4FlgWWABcFlwWXAA4FmAWZABAFmgWaAA4FnQWgABAFoQWiAA4FowWjABcFpAWkAA4FpQWmABAFpwWoAA4FqgWrACAFrAWtACsFrgWuABcFrwWvADgFsAWwAAQFsgWyADgFswWzACAFuQW5ACsFugW9ACAFvgW+ADYFvwW/AAEFyQXJAEAFygXKACgFywXNACQFzgXOAEEFzwXPACQF0AXQACgF0QXRAEUF0gXSAEcF0wXUACgF1wXXACQF2wXbAEwF3AXcAE8F3gXeADwF3wXfAFMF4AXgAFQF4QXhADwF5AXkAEkF5gXmAFEF5wXnAEMF7gXuAEoF9AYZAAYGHAYeAAYGIAYgAEgGIgYiAFAGIwYjAEIGKgYzAAYGOQZCABoGUAZQABoGoQahAAEGrQavAA4GsAaxABAGxAbGAA4GxwbIABAG2AbZAAQG2gbeAAEG8QbxAA0G+Ab4AAEHhgeGAAEHiQeJAAQHiweLAD4HlweXAAEHnAecAAMHnwefAAEHqQepAAQHqwesAA0HrgeuAAQHrwewAAwHuwe8ABMHwwfFAAEHxgfGAAQHxwfHAA0HyAfIABMHyQfKAAEIFQgVAAMIGQgZAAIIIAghACEILgguAAoILwgvAAMIQghEAAMIRghGAAkISwhLAAMITQhNAAIIWghaAAEIZwhnAAkIaghr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zXwIDAEECQs/fVwlSVIvAXT92f//AGf+EQYQBgAGJgOxAAAABwgDBFIAAAABAMn+EQaPBgAACwAAQREzESERIREhESERBa7h/tn7YQElApwGAPr1/RwB7wYA+wIE/gACAMn+EwWuBgAAAwALAABlIREhAREhESERIRECpgEn/tkDCPsbASUCnHf9nAft+gAGAPsCBP4AAgDJAAAFmgYDAAMAFQAAQREhERMRDgIjIAARESERFBYWMzI2BZr+3KVFmqpc/uP+sAEjUJRmh+UGAPoABgD9N/7+HCsYARcBIAH2/gptiEAz//8Ayf4KBr8GAwQmBNcAAAAHCAMFAv/6AAMAyQAABZoGAwADAAcAGQAAQREjEQERIRETEQ4CIyAAEREhERQWFjMyNgOh4wLc/tylRZqqXP7j/rABI1CUZoflBFb8ywM1Aar6AAYA/Tf+/hwrGAEXASAB9v4KbYhAMwABAMkAAAheBgAACwAAUyERIREhESERIREhyQElAhMBJQITASX4awYA+wME/fsDBP36AAACAMn+SAliBgAABQARAABBAyERIxEBIREhESERIREhESEJYhz+27/5ZwElAhMBJQITASX4awEC/UYBuAECBP77AwT9+wME/foAAAEAyQAABbIGAAAUAABBISAAFRQGBCMhESERITI2NTQmIyEBqgG+ARoBMIj++rz9YQElAXqBpqaB/kID8P7o3ZDmhQYA+wKHaW+NAAIAUwAABt4GAAADABgAAEERIREBISAAFwYGBCMhESERITI2NTQmIyEB9P5fAoIBvgEaATABAYj++rz9YQElAXqBpqaB/kIGAP79AQP98P7o3ZDmhQYA+wKHaW+NAAIAyQAAB7cGAAAUABgAAEEhIAAVFAYEIyERIREhMjY1NCYjIQERIREBqgG+ARoBMIj++rz9YQElAXqBpqaB/kIE4gErA/D+6N2Q5oUGAPsCh2lvjf0SBgD6AAACACoAAAYRCOcAAwAYAABBFSE1ASEgABUUBgQjIREhESEyNjcmJiMhBAT8JgHeAb4BGgExif76vP1hASUBeoGmAQGmgf5CB9To6Pwc/ujdkOaFCOf4G4dpb40AAgAqAAAGEQjnAAMAGAAAQRUhNQEhIAAVFAYEIyERIREhMjY3JiYjIQQE/CYB3gG+ARoBMYn++rz9YQElAXqBpgEBpoH+QgbE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"}},"time_used":98,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":70,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Kcv6HAzH.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.997Z","timestamp":1785139670997,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Kcv6HAzH.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:51 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"ed-654aa2b832c3a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 171\r\nKeep-Alive: timeout=5, max=87\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":237,"size_decoded":519,"mime_type":"application/javascript","magic":"ASCII text","md5":"4ae5316871df9b0244220ba5693ec96a","sha1":"14c14f5e5855fc8a6109d54142a5c355edd98707","sha256":"dd4b7aff8fc3c1da0463ed28f7ab497b3da4671c572e7c77c8ccbba6470990a7","sha512":"c76fa27a75df8c0275c116f8297af68f35631c43d7ac84daee4d4209e62edc73ba8e93cd066c50fedbbb17b2b90fd3d9764da04c217d27a8c6d931fb7fa90030","ssdeep":"","tlshash":"dbd0c9702542f831c29e270ef631d388ba7219183a473a90f12d415d2539ac7565df9f","first_seen":"2025-10-23T03:46:52.588526Z","last_seen":"2026-07-27T11:49:48.906045Z","times_seen":8,"resource_available":true,"data":"Y29uc3Qgbj1lPT57Y29uc3QgdD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LnRvcD49LTQwMCYmdC5sZWZ0Pj0wJiZ0LmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodCsxMjAwfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSYmdC5yaWdodDw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpfTtleHBvcnR7biBhcyBpfTsK"}},"time_used":29,"timings":{"blocked":4,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/entry.BZ2cztU0.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.465Z","timestamp":1785139669465,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/entry.BZ2cztU0.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"557-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 529\r\nKeep-Alive: timeout=5, max=99\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":1367,"size_decoded":864,"mime_type":"text/css","magic":"ASCII text","md5":"bac78dda89032b90b4c1ffe81076a3e8","sha1":"0662945cc8b42a535d01646b4128fce76f1f01e0","sha256":"07443ed300275856828ad3fd9c25fb8498a398cad310354e64014819d027d890","sha512":"cfd82b9a0030e9f0d552e54b5a1b4de2cae5d83de191c96fb85189481641d3fbf780c390a7ffa07f3574aa83ca42d84546c19b9b9de8e2659ca0cddeb1e06fb1","ssdeep":"","tlshash":"6121c19719f21e10a61b9e613e2fb7186228e846cd8bdc3189c194154fd93ff356a368","first_seen":"2025-10-23T03:46:52.810931Z","last_seen":"2026-07-27T11:49:48.982352Z","times_seen":8,"resource_available":false,"data":"LnBhZ2UtZW50ZXItYWN0aXZlLAoucGFnZS1sZWF2ZS1hY3RpdmUgewogIHRyYW5zaXRpb246IGFsbCAwLjJzOwp9Ci5wYWdlLWVudGVyLWZyb20sCi5wYWdlLWxlYXZlLXRvIHsKICBvcGFjaXR5OiAwOwp9CgoudGVybXMtdGV4dCB7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICB0ZXh0LWluZGVudDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgfQoudi1pY29uIHsKICAtLXYtaWNvbi1zaXplLW11bHRpcGxpZXI6IDE7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIjsKICBoZWlnaHQ6IDFlbTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxOwogIG1pbi13aWR0aDogMWVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdGV4dC1pbmRlbnQ6IDA7CiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogIHVzZXItc2VsZWN0OiBub25lOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgd2lkdGg6IDFlbTsKfQoudi1pY29uLS1jbGlja2FibGUgewogIGN1cnNvcjogcG9pbnRlcjsKfQoudi1pY29uLS1kaXNhYmxlZCB7CiAgb3BhY2l0eTogMC4zODsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoudi1pY29uLS1zaXplLXgtc21hbGwgewogIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS12LWljb24tc2l6ZS1tdWx0aXBsaWVyKSAqIDFlbSk7Cn0KLnYtaWNvbi0tc2l6ZS1zbWFsbCB7CiAgZm9udC1zaXplOiBjYWxjKHZhcigtLXYtaWNvbi1zaXplLW11bHRpcGxpZXIpICogMS4yNWVtKTsKfQoudi1pY29uLS1zaXplLWRlZmF1bHQgewogIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS12LWljb24tc2l6ZS1tdWx0aXBsaWVyKSAqIDEuNWVtKTsKfQoudi1pY29uLS1zaXplLWxhcmdlIHsKICBmb250LXNpemU6IGNhbGModmFyKC0tdi1pY29uLXNpemUtbXVsdGlwbGllcikgKiAxLjc1ZW0pOwp9Ci52LWljb24tLXNpemUteC1sYXJnZSB7CiAgZm9udC1zaXplOiBjYWxjKHZhcigtLXYtaWNvbi1zaXplLW11bHRpcGxpZXIpICogMmVtKTsKfQoudi1pY29uX19zdmcgewogIGZpbGw6IGN1cnJlbnRDb2xvcjsKICBoZWlnaHQ6IDEwMCU7CiAgd2lkdGg6IDEwMCU7Cn0KLnYtaWNvbi0tc3RhcnQgewogIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7Cn0KLnYtaWNvbi0tZW5kIHsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiA4cHg7Cn0KLmdyZWNhcHRjaGEtYmFkZ2UgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQo="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/B8TxTyak.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.493Z","timestamp":1785139669493,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/B8TxTyak.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"3f6-654aa2b82d262-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 509\r\nKeep-Alive: timeout=5, max=99\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":1014,"size_decoded":858,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1013)","md5":"9cd5560288dddf0dffc2443bb4fbdda2","sha1":"eeefd1c567e8aaf4c67d660bf63cf1da537eea93","sha256":"eb76625c2a3a93a6f52765cf2e3f84a138840c45a1f49a5517dd59c42db173ff","sha512":"a2efb6e79b44a0e559c5ba135037f8311349c6bae4f4af1b9b3f83b51a1ea19edb427aefebf2f01e736511c656d98f554e07e43972e71a0a2cdbe8e881d952da","ssdeep":"","tlshash":"2311ccac3365e4bf86ba04f6d23506df00e56464f63381cfe2252527013f618b09af6c","first_seen":"2025-10-23T03:46:52.234662Z","last_seen":"2026-07-27T11:49:48.954309Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0eyQgYXMgbCxzIGFzIGgsYWYgYXMgcyxiayBhcyBnLG0gYXMgcn1mcm9tIi4vU20ybUNmREUuanMiO2NvbnN0IGY9bCh7aGVpZ2h0OltOdW1iZXIsU3RyaW5nXSxtYXhIZWlnaHQ6W051bWJlcixTdHJpbmddLG1heFdpZHRoOltOdW1iZXIsU3RyaW5nXSxtaW5IZWlnaHQ6W051bWJlcixTdHJpbmddLG1pbldpZHRoOltOdW1iZXIsU3RyaW5nXSx3aWR0aDpbTnVtYmVyLFN0cmluZ119LCJkaW1lbnNpb24iKTtmdW5jdGlvbiBTKGUpe3JldHVybntkaW1lbnNpb25TdHlsZXM6aCgoKT0+e2NvbnN0IHQ9e30sbj1zKGUuaGVpZ2h0KSx1PXMoZS5tYXhIZWlnaHQpLGk9cyhlLm1heFdpZHRoKSxkPXMoZS5taW5IZWlnaHQpLG89cyhlLm1pbldpZHRoKSxhPXMoZS53aWR0aCk7cmV0dXJuIG4hPW51bGwmJih0LmhlaWdodD1uKSx1IT1udWxsJiYodC5tYXhIZWlnaHQ9dSksaSE9bnVsbCYmKHQubWF4V2lkdGg9aSksZCE9bnVsbCYmKHQubWluSGVpZ2h0PWQpLG8hPW51bGwmJih0Lm1pbldpZHRoPW8pLGEhPW51bGwmJih0LndpZHRoPWEpLHR9KX19Y29uc3QgYj1sKHtyb3VuZGVkOnt0eXBlOltCb29sZWFuLE51bWJlcixTdHJpbmddLGRlZmF1bHQ6dm9pZCAwfSx0aWxlOkJvb2xlYW59LCJyb3VuZGVkIik7ZnVuY3Rpb24geChlKXtsZXQgbT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ZygpO3JldHVybntyb3VuZGVkQ2xhc3NlczpoKCgpPT57Y29uc3Qgbj1yKGUpP2UudmFsdWU6ZS5yb3VuZGVkLHU9cihlKT9lLnZhbHVlOmUudGlsZSxpPVtdO2lmKG49PT0hMHx8bj09PSIiKWkucHVzaChgJHttfS0tcm91bmRlZGApO2Vsc2UgaWYodHlwZW9mIG49PSJzdHJpbmcifHxuPT09MClmb3IoY29uc3QgZCBvZiBTdHJpbmcobikuc3BsaXQoIiAiKSlpLnB1c2goYHJvdW5kZWQtJHtkfWApO2Vsc2UodXx8bj09PSExKSYmaS5wdXNoKCJyb3VuZGVkLTAiKTtyZXR1cm4gaX0pfX1leHBvcnR7YiBhcyBhLHggYXMgYixmIGFzIG0sUyBhcyB1fTsK"}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/exchange/flow/active-arrow.svg","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.600Z","timestamp":1785139670600,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/exchange/flow/active-arrow.svg HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"1bf-654aa2b99c940\"\r\nAccept-Ranges: bytes\r\nContent-Length: 447\r\nKeep-Alive: timeout=5, max=82\r\nConnection: Keep-Alive\r\nContent-Type: image/svg+xml\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":447,"size_decoded":735,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"df311f474b8b999dbbc07b9eae073b2e","sha1":"a78a5e23b57eb84605e8156866d3989d019ff76b","sha256":"1ac7440b88bfe8df67777fd834ea14c84a21e36a5fb6f7b5558ad13775511351","sha512":"afb5b6f49ef950912569ae36ff77c24dbb27b6a6032cd58f2019f3b26051748207c412ef8f847addead77f6b684efb58c73956c727519d759b0c4565d524be6d","ssdeep":"","tlshash":"30f0e594c1fc63098f58d320532c27a82a5572e6536e814ef28c63546f8d8d25c2768c","first_seen":"2025-10-23T03:46:52.871001Z","last_seen":"2026-07-27T11:49:48.956417Z","times_seen":9,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xODA5XzQzNTEpIj4KICAgICAgICA8cGF0aCBkPSJNMTYuMTcyIDExLjAwMDdMMTAuODA4IDUuNjM2NjZMMTIuMjIyIDQuMjIyNjZMMjAgMTIuMDAwN0wxMi4yMjIgMTkuNzc4N0wxMC44MDggMTguMzY0N0wxNi4xNzIgMTMuMDAwN0g0VjExLjAwMDdIMTYuMTcyWiIgZmlsbD0iI0ZGRERCOCIvPgogICAgPC9nPgogICAgPGRlZnM+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwMF8xODA5XzQzNTEiPgogICAgICAgICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgIDwvZGVmcz4KPC9zdmc+"}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CaRhLduF.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.522Z","timestamp":1785139669522,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CaRhLduF.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"2885-654aa2b830142-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2368\r\nKeep-Alive: timeout=5, max=96\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":10373,"size_decoded":2719,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"b73ccf1445542561c8f796c27434fe67","sha1":"9b800102ded87c926f4cd345073893bf1cdd1656","sha256":"14f076afb4b8454418d6c0be4f8da8f85e4428ec136b5dc3e41e5cc98f35a2e1","sha512":"472cb836aa11d2d5dab543f74e2c93e1f8f39e5431779b10e05176be9a76bfa9ee03540ff9852e03fde04f2b224f5a61db86c740b74817059d8738109dc4c98f","ssdeep":"96:Xd0JISDyqJS84IYGRRcMqpWa8dUyjzAo3wAvSH:XmIO4rGRR9hyyjzAo1O","tlshash":"ef220306b6f75032a623f0791a2b484576254b5f4d79fdc87a8c82251f0c42d9af4fed","first_seen":"2025-10-23T03:46:52.703487Z","last_seen":"2026-07-27T11:49:48.942208Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICBhbCBhcyBDLAogIGFtIGFzIFIsCiAgciBhcyBmLAogIGJ6IGFzIHosCiAgcyBhcyBGLAogIGEgYXMgbywKICBjIGFzIHUsCiAgYiBhcyBkLAogIFEgYXMgYiwKICB0IGFzIG0sCiAgbiBhcyB4LAogIGggYXMgZywKICB5IGFzIHEsCiAgdyBhcyAkLAogIEggYXMgSSwKICBnIGFzIGgsCiAgYTIgYXMgTCwKICB1IGFzIEQsCiAgcCBhcyBPLAogIEYgYXMgUCwKfSBmcm9tICIuL1NtMm1DZkRFLmpzIjsKaW1wb3J0IHsgViBhcyBaIH0gZnJvbSAiLi9DaEVySm4wNy5qcyI7CmltcG9ydCB7IFYgYXMgTiB9IGZyb20gIi4vWmZOWml5Q20uanMiOwpjb25zdCBUID0gZnVuY3Rpb24gKGwpIHsKICAgIGNvbnN0IHAgPQogICAgICAgIC9eKChbXjw+KClbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClbXF1cXC4sOzpcc0AiXSspKil8KCIuKyIpKUAoKFxbWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlwtMC05XStcLikrW2EtekEtWl17Mix9KSkkLywKICAgICAgdiA9IGwudHJpbSgpOwogICAgcmV0dXJuIHAudGVzdCh2KTsKICB9LAogIGogPSB7IGtleTogMCB9LAogIEggPSB7IGtleTogMSwgY2xhc3M6ICJ0ZXh0LWdyYXktNzAwIG1iLTEuNSB0ZXh0LXNtLW1lZGl1bSIgfSwKICBRID0gewogICAga2V5OiAwLAogICAgY2xhc3M6CiAgICAgICJmbGV4IGp1c3RpZnktYmV0d2VlbiBhbGlnbi1jZW50ZXIgdy1mdWxsIHBsLTMuNSBiZy1ncmF5LTUwIHRleHQtZ3JheS01MDAgdGV4dC1zbS1yZWd1bGFyIiwKICB9LAogIEcgPSB7IGNsYXNzOiAiaC1mdWxsIiB9LAogIEogPSB7IGtleTogMCB9LAogIEsgPSB7IGtleTogMSwgY2xhc3M6ICJoLWZ1bGwiIH0sCiAgbGUgPSB7CiAgICBfX25hbWU6ICJJbnB1dCIsCiAgICBwcm9wczogQygKICAgICAgewogICAgICAgIG5hbWU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICAgIGJlRXJyb3I6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgICBsYWJlbDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgdmFsaWRhdGlvbjogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgaGFzQnV0dG9uOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6ICExIH0sCiAgICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgICBjb3B5OiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6ICExIH0sCiAgICAgICAgYnRuTGFiZWw6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiIiB9LAogICAgICAgIGF1dG9jb21wbGV0ZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICIiIH0sCiAgICAgICAgYnRuQ29sb3I6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAicHJpbWFyeS02MDAiIH0sCiAgICAgICAgYnRuTG9hZGluZzogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiAhMSB9LAogICAgICAgIGJ1dHRvbkRpc2FibGU6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgfSwKICAgICAgewogICAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIiIgfSwKICAgICAgICB2YWx1ZU1vZGlmaWVyczoge30sCiAgICAgICAgaGFzRXJyb3I6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgICBoYXNFcnJvck1vZGlmaWVyczoge30sCiAgICAgIH0KICAgICksCiAgICBlbWl0czogQyhbImJ0bkNsaWNrZWQiXSwgWyJ1cGRhdGU6dmFsdWUiLCAidXBkYXRlOmhhc0Vycm9yIl0pLAogICAgc2V0dXAobCwgeyBleHBvc2U6IHAsIGVtaXQ6IHYgfSkgewogICAgICBjb25zdCB3ID0gdiwKICAgICAgICBrID0gUihsLCAidmFsdWUiKSwKICAgICAgICBFID0gUihsLCAiaGFzRXJyb3IiKSwKICAgICAgICBhID0gbCwKICAgICAgICByID0gZih7fSksCiAgICAgICAgaSA9IGYoe30pLAogICAgICAgIHkgPSBmKHt9KSwKICAgICAgICBBID0geigpLAogICAgICAgIEIgPSBmKG51bGwpLAogICAgICAgIFYgPSB7CiAgICAgICAgICByZXF1aXJlZDogKHQsIGUpID0+IHsKICAgICAgICAgICAgaWYgKGkudmFsdWVbZV0pCiAgICAgICAgICAgICAgcmV0dXJuIHQKICAgICAgICAgICAgICAgID8gKChyLnZhbHVlW2VdID0geyB0ZXh0OiAiIiB9KSwgITApCiAgICAgICAgICAgICAgICA6ICgoci52YWx1ZVtlXSA9IHsKICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiaXMgcmVxdWlyZWQuIiwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogInRleHQtcmVkLTUwMCIsCiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAhMSk7CiAgICAgICAgICB9LAogICAgICAgICAgZW1haWw6ICh0LCBlKSA9PiAoCiAgICAgICAgICAgIChFLnZhbHVlID0gITEpLAogICAgICAgICAgICBUKHQpCiAgICAgICAgICAgICAgPyAoKHIudmFsdWVbZV0gPSB7IHRleHQ6ICIiIH0pLCAhMCkKICAgICAgICAgICAgICA6ICgoci52YWx1ZVtlXSA9IHsKICAgICAgICAgICAgICAgICAgdGV4dDogIkVtYWlsIGlzIG5vdCB2YWxpZCIsCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAidGV4dC1yZWQtNTAwIiwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKEUudmFsdWUgPSAhMCksCiAgICAgICAgICAgICAgICAhMSkKICAgICAgICAgICksCiAgICAgICAgICAKICAgICAgICAgIG1pbjogKHQsIGUpID0+IHsKICAgICAgICAgICAgY29uc29sZS5sb2codC5sZW5ndGgpCiAgICAgICAgICAgIGlmIChpLnZhbHVlW2VdKQogICAgICAgICAgICAgICAKICAgICAgICAgICAgICByZXR1cm4gdC5sZW5ndGggPCA4CiAgICAgICAgICAgICAgICA/ICgoci52YWx1ZVtlXSA9IHsKICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiTWluaW11bSA4IGNoYXJhY3RlcnMuIiwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogInRleHQtcmVkLTUwMCIsCiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAhMSkKICAgICAgICAgICAgICAgIDogKChyLnZhbHVlW2VdID0geyB0ZXh0OiAiIiB9KSwgITApOwogICAgICAgICAgfSwKICAgICAgICAgIGxlYXN0T25lVXBwZXI6ICh0LCBlKSA9PiB7CiAgICAgICAgICAgIGlmIChpLnZhbHVlW2VdKQogICAgICAgICAgICAgIHJldHVybiAvW0EtWl0vLnRlc3QodCkKICAgICAgICAgICAgICAgID8gKChyLnZhbHVlW2VdID0geyB0ZXh0OiAiIiB9KSwgITApCiAgICAgICAgICAgICAgICA6ICgoci52YWx1ZVtlXSA9IHsKICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiQXQgbGVhc3QgMSBVUFBFUkNBU0UuIiwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogInRleHQtcmVkLTUwMCIsCiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAhMSk7CiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTSA9IEYoKCkgPT4gewogICAgICAgICAgY29uc3QgdCA9IGEudmFsaWRhdGlvbiwKICAgICAgICAgICAgZSA9IGEubmFtZTsKICAgICAgICAgIHJldHVybiAhdCB8fCAhaS52YWx1ZVtlXQogICAgICAgICAgICA/IFtdCiAgICAgICAgICAgIDogdAogICAgICAgICAgICAgICAgLnNwbGl0KCJ8IikKICAgICAgICAgICAgICAgIC5tYXAoCiAgICAgICAgICAgICAgICAgIChuKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgKG4gPSBuLnRyaW0oKSksCiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIFZbbl0gIT0gImZ1bmN0aW9uIgogICAgICAgICAgICAgICAgICAgICAgPyAoKSA9PiBgJHtufSB2YWxpZGF0aW9uIHJ1bGUgaXMgbm90IGRlZmluZWQuYAogICAgICAgICAgICAgICAgICAgICAgOiAoYykgPT4gVltuXShjLCBlKQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIFUgPSAodCwgZSkgPT4gewogICAgICAgICAgYS5yZWFkb25seSB8fCAoKGkudmFsdWVbdF0gPSAhMCksICh5LnZhbHVlW3RdID0gZSkpOwogICAgICAgIH07CiAgICAgIHJldHVybiAoCiAgICAgICAgcCh7CiAgICAgICAgICBmb2N1c0lucHV0OiAoKSA9PiB7CiAgICAgICAgICAgIEIudmFsdWUuZm9jdXMoKTsKICAgICAgICAgIH0sCiAgICAgICAgfSksCiAgICAgICAgKHQsIGUpID0+IHsKICAgICAgICAgIHZhciBuLCBjLCBTOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgbygpLAogICAgICAgICAgICB1KAogICAgICAgICAgICAgIFAsCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICBkKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgIHQuJHNsb3RzLnRpdGxlCiAgICAgICAgICAgICAgICAgICAgPyAobygpLCB1KCJkaXYiLCBqLCBbYih0LiRzbG90cywgInRpdGxlIildKSkKICAgICAgICAgICAgICAgICAgICA6IChvKCksIHUoImRpdiIsIEgsIG0obC5sYWJlbCksIDEpKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgZCgKICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjbGFzczogeChbCiAgICAgICAgICAgICAgICAgICAgICAicm91bmRlZC1bMTJweF0gLW14LTEuNSIsCiAgICAgICAgICAgICAgICAgICAgICB5LnZhbHVlW2EubmFtZV0KICAgICAgICAgICAgICAgICAgICAgICAgPyAoKG4gPSByLnZhbHVlW2EubmFtZV0pICE9IG51bGwgJiYgbi50ZXh0KSB8fCBhLmJlRXJyb3IKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJib3JkZXItb3BhY2l0eS0yMCBib3JkZXItZXJyb3ItMzAwIGJvcmRlci00IgogICAgICAgICAgICAgICAgICAgICAgICAgIDogImJvcmRlci1vcGFjaXR5LTIwIGJvcmRlci00IGJvcmRlci1wcmltYXJ5LTMwMCIKICAgICAgICAgICAgICAgICAgICAgICAgOiAiYm9yZGVyLTQgYm9yZGVyLW9wYWNpdHktMCBib3JkZXItd2hpdGUiLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgZCgKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogeChbCiAgICAgICAgICAgICAgICAgICAgICAgICAgImZsZXggaC0xMSByb3VuZGVkLWxnIGJvcmRlci1vcGFjaXR5LTEwMCBzaGFkb3cteHMgb3ZlcmZsb3ctaGlkZGVuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAoKGMgPSByLnZhbHVlW2EubmFtZV0pICE9IG51bGwgJiYgYy50ZXh0KSB8fCBsLmJlRXJyb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gImJvcmRlciBib3JkZXItZXJyb3ItMzAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB5LnZhbHVlW2EubmFtZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gImJvcmRlciBib3JkZXItcHJpbWFyeS0zMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJib3JkZXIgYm9yZGVyLWdyYXktMzAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICBhLnJlYWRvbmx5CiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdSgiZGl2IiwgUSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkKCJkaXYiLCBudWxsLCBtKGEudmFsdWUpLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCgiZGl2IiwgRywgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuY29weQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobygpLCB1KCJkaXYiLCBKLCAiIGNvcHkgIikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChvKCksIHUoImRpdiIsIEssIFtiKHQuJHNsb3RzLCAiYXBwZW5kIildKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAobygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZfa2V5OiAiaW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogay52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvblVwZGF0ZTptb2RlbFZhbHVlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZVswXSB8fCAoZVswXSA9IChzKSA9PiAoay52YWx1ZSA9IHMpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6ICJwbGFpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGlkZS1kZXRhaWxzIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU6IGEuYXV0b2NvbXBsZXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRChBKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInB4LTMuNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHk6ICJjb21wYWN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBNLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uVXBkYXRlOmZvY3VzZWQiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlWzFdIHx8IChlWzFdID0gKHMpID0+IFUoYS5uYW1lLCBzKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxKHsgXzogMiB9LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC4kc2xvdHMuYXBwZW5kIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChTID0gci52YWx1ZVthLm5hbWVdKSAhPSBudWxsICYmIFMudGV4dCkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLmJlRXJyb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJhcHBlbmQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuOiAkKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYih0LiRzbG90cywgImFwcGVuZCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChzID0gci52YWx1ZVthLm5hbWVdKSAhPSBudWxsICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50ZXh0KSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwuYmVFcnJvcikgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXQuJHNsb3RzLmFwcGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcoSSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAiZXJyb3ItNTAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogIm1kaS1pbmZvcm1hdGlvbi1vdXRsaW5lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaCgiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2b2lkIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDQwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIm1vZGVsVmFsdWUiLCAiYXV0b2NvbXBsZXRlIiwgInJ1bGVzIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICBsLmhhc0J1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGwuYnRuQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGwuYnV0dG9uRGlzYWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBsLmJ0bkxvYWRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICIhaC1mdWxsICFyb3VuZGVkLW5vbmUgdGV4dC1jYXBpdGFsaXplIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZVsyXSB8fCAoZVsyXSA9IChzKSA9PiB3KCJidG5DbGlja2VkIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGRlZmF1bHQ6ICQoKCkgPT4gW08obShsLmJ0bkxhYmVsKSwgMSldKSwgXzogMSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImNvbG9yIiwgImRpc2FibGVkIiwgImxvYWRpbmciXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IGgoIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHIudmFsdWVbYS5uYW1lXQogICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiB4KFsKICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC1zbS1tZWRpdW0gbXQtMC41IiwKICAgICAgICAgICAgICAgICAgICAgICAgICByLnZhbHVlW2EubmFtZV0uY29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIG0oci52YWx1ZVthLm5hbWVdLnRleHQpLAogICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgIDogaCgiIiwgITApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgKQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICk7CiAgICB9LAogIH07CmV4cG9ydCB7IGxlIGFzIF8sIFQgYXMgaSB9Owo="}},"time_used":98,"timings":{"blocked":72,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VImg.3DQfrNoh.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.468Z","timestamp":1785139669468,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VImg.3DQfrNoh.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"595-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 578\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":1429,"size_decoded":914,"mime_type":"text/css","magic":"ASCII text","md5":"2ef2241d5b01ee4a96d0ecfa09220583","sha1":"8f05c69515a5e9902ff71b7ac1d413c417e75730","sha256":"834ffe28979096d7c8ee4a9236b64c29e3a9e455b9d14209e0c9c847394d8e19","sha512":"a362c33178ee2482ae9b7e5d95a8ab1924299929c81f18348b6af22253065607a7c2bb2f1f4feaff91b9f9a0690031c67981a2210e4b5dccd73aa068be0660b7","ssdeep":"","tlshash":"f621101408b6558c6186f25c28719145f32dc102b74eec56bbd27053bec534df4e33e2","first_seen":"2026-04-04T14:11:25.952487Z","last_seen":"2026-07-27T11:49:48.994389Z","times_seen":6,"resource_available":false,"data":"LnYtaW1nIHsKICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiAzOwogIHotaW5kZXg6IDA7Cn0KLnYtaW1nLnYtaW1nLS1hYnNvbHV0ZSB7CiAgaGVpZ2h0OiAxMDAlOwogIGxlZnQ6IDA7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIHdpZHRoOiAxMDAlOwogIHotaW5kZXg6IDA7Cn0KLnYtaW1nLS1ib290aW5nIC52LXJlc3BvbnNpdmVfX3NpemVyIHsKICB0cmFuc2l0aW9uOiBub25lOwp9Ci52LWltZy0tcm91bmRlZCB7CiAgYm9yZGVyLXJhZGl1czogNHB4Owp9Ci52LWltZ19fZXJyb3IsCi52LWltZ19fZ3JhZGllbnQsCi52LWltZ19faW1nLAoudi1pbWdfX3BpY3R1cmUsCi52LWltZ19fcGxhY2Vob2xkZXIgewogIGhlaWdodDogMTAwJTsKICBsZWZ0OiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDA7CiAgd2lkdGg6IDEwMCU7CiAgei1pbmRleDogMDsKfQoudi1pbWdfX2ltZy0tcHJlbG9hZCB7CiAgZmlsdGVyOiBibHVyKDRweCk7Cn0KLnYtaW1nX19pbWctLWNvbnRhaW4gewogIC1vLW9iamVjdC1maXQ6IGNvbnRhaW47CiAgb2JqZWN0LWZpdDogY29udGFpbjsKfQoudi1pbWdfX2ltZy0tY292ZXIgewogIC1vLW9iamVjdC1maXQ6IGNvdmVyOwogIG9iamVjdC1maXQ6IGNvdmVyOwp9Ci52LWltZ19fZ3JhZGllbnQgewogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cn0KLnYtcmVzcG9uc2l2ZSB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4OiAxIDAgYXV0bzsKICBtYXgtaGVpZ2h0OiAxMDAlOwogIG1heC13aWR0aDogMTAwJTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoudi1yZXNwb25zaXZlLS1pbmxpbmUgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIGZsZXg6IDAgMCBhdXRvOwp9Ci52LXJlc3BvbnNpdmVfX2NvbnRlbnQgewogIGZsZXg6IDEgMCAwcHg7CiAgbWF4LXdpZHRoOiAxMDAlOwp9Ci52LXJlc3BvbnNpdmVfX3NpemVyIH4gLnYtcmVzcG9uc2l2ZV9fY29udGVudCB7CiAgbWFyZ2luLWlubGluZS1zdGFydDogLTEwMCU7Cn0KLnYtcmVzcG9uc2l2ZV9fc2l6ZXIgewogIGZsZXg6IDEgMCAwcHg7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgdHJhbnNpdGlvbjogcGFkZGluZy1ib3R0b20gMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwp9CgpoZWFkZXIgLnYtcmVzcG9uc2l2ZV9fc2l6ZXJ7CiAgICBtYXJnaW4tdG9wOiAxMHB4Owp9CgoKCkBtZWRpYSAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDoxMDIzcHgpewoudi10b29sYmFyX19jb250ZW50IC52LXRvb2xiYXItaXRlbXMuanVzdGlmeS1iZXR3ZWVuLnctZnVsbC5pdGVtcy1jZW50ZSBkaXY6bGFzdC1jaGlsZCBzcGFuIC52LXJlc3BvbnNpdmUudi1pbWcgaW1newogIHJpZ2h0OiAwOwogfQoKfQ=="}},"time_used":87,"timings":{"blocked":-1,"dns":0,"connect":26,"send":0,"wait":27,"receive":0,"ssl":34},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/exchange/flow/review-order.svg","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.597Z","timestamp":1785139670597,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/exchange/flow/review-order.svg HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"566-654aa2b99cd28\"\r\nAccept-Ranges: bytes\r\nContent-Length: 1382\r\nKeep-Alive: timeout=5, max=90\r\nConnection: Keep-Alive\r\nContent-Type: image/svg+xml\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":1382,"size_decoded":1671,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"99ecd2e41c40705a518d170688ce2a69","sha1":"b5cd6019c9caaf5a974d00241a8664d11cb13d20","sha256":"4fc98df1ba2703b950c4e4f6e145195feedc34e3c6f398e6a5767370fa3d5949","sha512":"441d394cf03859a4bca69c057d93a8bf39efed1b5773063e6c821b97d5b513db6a526f3248a22f9086c3a63488b16c9d7ac15fdb58a36d1671acd0783fa37dec","ssdeep":"","tlshash":"1f21abe4831190c5d8402f75b07c297ca5ac6d2a3dc89d6bd5ed7683a8248cfc8834d3","first_seen":"2025-10-23T03:46:52.615061Z","last_seen":"2026-07-27T11:49:48.99213Z","times_seen":9,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0xNi42NjY3IDI1LjAwMTNIMjBDMjEgMjUuMDAxMyAyMS42NjY3IDI0LjMzNDYgMjEuNjY2NyAyMy4zMzQ2QzIxLjY2NjcgMjIuMzM0NiAyMSAyMS42NjggMjAgMjEuNjY4SDE2LjY2NjdDMTUuNjY2NyAyMS42NjggMTUgMjIuMzM0NiAxNSAyMy4zMzQ2QzE1IDI0LjMzNDYgMTUuNjY2NyAyNS4wMDEzIDE2LjY2NjcgMjUuMDAxM1pNMTYuNjY2NyAzMC4wMDEzSDIzLjMzMzNDMjQuMzMzMyAzMC4wMDEzIDI1IDI5LjMzNDYgMjUgMjguMzM0NkMyNSAyNy4zMzQ2IDI0LjMzMzMgMjYuNjY4IDIzLjMzMzMgMjYuNjY4SDE2LjY2NjdDMTUuNjY2NyAyNi42NjggMTUgMjcuMzM0NiAxNSAyOC4zMzQ2QzE1IDI5LjMzNDYgMTUuNjY2NyAzMC4wMDEzIDE2LjY2NjcgMzAuMDAxM1oiIGZpbGw9IiNFNkU2RTYiLz4KICAgIDxwYXRoIGQ9Ik0xNC4wMDA3IDM2LjY2OEgyNi4wMDA3QzI5LjE2NzMgMzYuNjY4IDMxLjY2NzMgMzQuMDAxMyAzMS42NjczIDMwLjY2OFYxNS42NjhDMzEuNjY3MyAxNS42NjggMzEuNjY3MyAxNS42NjggMzEuNjY3MyAxNS41MDEzQzMxLjY2NzMgMTUuMzM0NiAzMS42NjczIDE1LjE2OCAzMS41MDA3IDE1LjAwMTNWMTQuODM0NkMzMS41MDA3IDE0LjY2OCAzMS4zMzQgMTQuNTAxMyAzMS4xNjczIDE0LjMzNDZMMjEuMTY3MyAzLjY2Nzk3QzIxLjE2NzMgMy42Njc5NyAyMS4xNjczIDMuNjY3OTcgMjEuMDAwNyAzLjY2Nzk3QzIwLjgzNCAzLjUwMTMgMjAuODM0IDMuNTAxMyAyMC42NjczIDMuMzM0NjRIMjAuNTAwN0MyMC4zMzQgMy4zMzQ2NCAyMC4xNjczIDMuMzM0NjQgMjAuMDAwNyAzLjE2Nzk3QzIwLjAwMDcgMy4xNjc5NyAyMC4wMDA3IDMuMTY3OTcgMTkuODM0IDMuMTY3OTdIMTQuMDAwN0MxMC44MzQgMy4zMzQ2NCA4LjMzMzk4IDYuMDAxMyA4LjMzMzk4IDkuMzM0NjNWMzAuODM0NkM4LjMzMzk4IDM0LjAwMTMgMTAuODM0IDM2LjY2OCAxNC4wMDA3IDM2LjY2OFpNMjYuMTY3MyAxNC4wMDEzSDIxLjY2NzNWOS4xNjc5N0wyNi4xNjczIDE0LjAwMTNaTTExLjY2NzMgOS4zMzQ2M0MxMS42NjczIDcuODM0NjQgMTIuNjY3MyA2LjY2Nzk3IDE0LjAwMDcgNi42Njc5N0gxOC4zMzRWMTUuNjY4QzE4LjMzNCAxNi42NjggMTkuMDAwNyAxNy4zMzQ2IDIwLjAwMDcgMTcuMzM0NkgyOC4zMzRWMzAuNjY4QzI4LjMzNCAzMi4xNjggMjcuMzM0IDMzLjMzNDYgMjYuMDAwNyAzMy4zMzQ2SDE0LjAwMDdDMTIuNjY3MyAzMy4zMzQ2IDExLjY2NzMgMzIuMTY4IDExLjY2NzMgMzAuNjY4VjkuMzM0NjNaIiBmaWxsPSIjRTZFNkU2Ii8+Cjwvc3ZnPgo="}},"time_used":26,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/materialdesignicons-webfont.Dp5v-WZN%EF%B9%96v=7.4.47.woff2","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.908Z","timestamp":1785139670908,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/materialdesignicons-webfont.Dp5v-WZN%EF%B9%96v=7.4.47.woff2 HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"62710-654aa2b8389fa\"\r\nAccept-Ranges: bytes\r\nContent-Length: 403216\r\nKeep-Alive: timeout=5, max=87\r\nConnection: Keep-Alive\r\nContent-Type: font/woff2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":403216,"size_decoded":403506,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 403216, version 1.0","md5":"1d7bcee1b302339c3b8db10214dc9ec6","sha1":"4e20f6ccf43199dea5c85b23a0e0f0ba81ffee26","sha256":"662fefa8f2f8a95c18588d21774789c107c64e771cbe65a69af46291c4311afc","sha512":"6c9b5097ac35698b84624f36f39847aff57b9edd115279cc62f88f024631a6d0f5bbfde22264b71a5169c4cb865f47c4aacba11cd91ab5a7f8ba43a42b840190","ssdeep":"12288:Y2qKg4wwAtPRHbF+tHN+kGU98Qk4p9Am3nVQ0Sd:Y2qKg1bt4FD4o9AmnVQv","tlshash":"31842318e2c5f30931e05ec24c3bbfb491304e63b7aadc9c74add71903a959a1ec7a95","first_seen":"2023-12-27T10:53:37Z","last_seen":"2026-08-04T01:14:56.389751Z","times_seen":4937,"resource_available":false,"data":"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"}},"time_used":53,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":27,"receive":26,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VExpansionPanels.BlzZGA8i.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.984Z","timestamp":1785139670984,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VExpansionPanels.BlzZGA8i.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1829-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1191\r\nKeep-Alive: timeout=5, max=89\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":6185,"size_decoded":1528,"mime_type":"text/css","magic":"ASCII text, with very long lines (6184)","md5":"3429b14ca7fbc003608088435210bf02","sha1":"3fdf008e70077a8cdd49474670506afcc649f6d9","sha256":"fedf3345a418c828609d1c8d0cf3494f9e835129668026c3b641c3dd2c9bc491","sha512":"bae9bcdd7d9ab9e8cf2c288bf07c80bf14f5fea62e52dcfb2c1795c7da96a2fd1433efca6d70fb41da0b1966b34c4d54cc68e5edacfd754b3fa2b80720518b6c","ssdeep":"96:dTl0A02HrL4TFTYJe29oib39yGExiEx6Ex7duI2:9/Jl9YnF9tduI2","tlshash":"38d18875a34425e4683eb2ceea45a988d23557dabbf3e0f5e1e633104f817de3823458","first_seen":"2025-02-21T17:19:06.40293Z","last_seen":"2026-07-30T10:03:44.557586Z","times_seen":34,"resource_available":false,"data":"LnYtZXhwYW5zaW9uLXBhbmVse2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLXYtdGhlbWUtc3VyZmFjZSkpO2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSkpfS52LWV4cGFuc2lvbi1wYW5lbDpub3QoOmZpcnN0LWNoaWxkKTphZnRlcntib3JkZXItY29sb3I6cmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpfS52LWV4cGFuc2lvbi1wYW5lbC0tZGlzYWJsZWQgLnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxle2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSwuMjYpfS52LWV4cGFuc2lvbi1wYW5lbC0tZGlzYWJsZWQgLnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlIC52LWV4cGFuc2lvbi1wYW5lbC10aXRsZV9fb3ZlcmxheXtvcGFjaXR5Oi40NjE1Mzg0NjE1fS52LWV4cGFuc2lvbi1wYW5lbHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGlzdC1zdHlsZS10eXBlOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7ei1pbmRleDoxfS52LWV4cGFuc2lvbi1wYW5lbHM6bm90KC52LWV4cGFuc2lvbi1wYW5lbHMtLXZhcmlhbnQtYWNjb3JkaW9uKT46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoLnYtZXhwYW5zaW9uLXBhbmVsLS1hY3RpdmUpOm5vdCgudi1leHBhbnNpb24tcGFuZWwtLWJlZm9yZS1hY3RpdmUpe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCFpbXBvcnRhbnR9LnYtZXhwYW5zaW9uLXBhbmVsczpub3QoLnYtZXhwYW5zaW9uLXBhbmVscy0tdmFyaWFudC1hY2NvcmRpb24pPjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCgudi1leHBhbnNpb24tcGFuZWwtLWFjdGl2ZSk6bm90KC52LWV4cGFuc2lvbi1wYW5lbC0tYWZ0ZXItYWN0aXZlKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAhaW1wb3J0YW50O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAhaW1wb3J0YW50fS52LWV4cGFuc2lvbi1wYW5lbHM6bm90KC52LWV4cGFuc2lvbi1wYW5lbHMtLXZhcmlhbnQtYWNjb3JkaW9uKT46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLnYtZXhwYW5zaW9uLXBhbmVsLS1hY3RpdmUpOm5vdCgudi1leHBhbnNpb24tcGFuZWwtLWJlZm9yZS1hY3RpdmUpe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCFpbXBvcnRhbnR9LnYtZXhwYW5zaW9uLXBhbmVsczpub3QoLnYtZXhwYW5zaW9uLXBhbmVscy0tdmFyaWFudC1hY2NvcmRpb24pPjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCgudi1leHBhbnNpb24tcGFuZWwtLWFjdGl2ZSk6bm90KC52LWV4cGFuc2lvbi1wYW5lbC0tYWZ0ZXItYWN0aXZlKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAhaW1wb3J0YW50O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAhaW1wb3J0YW50fS52LWV4cGFuc2lvbi1wYW5lbHMtLXZhcmlhbnQtYWNjb3JkaW9uPjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCFpbXBvcnRhbnR9LnYtZXhwYW5zaW9uLXBhbmVscy0tdmFyaWFudC1hY2NvcmRpb24+Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowIWltcG9ydGFudDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowIWltcG9ydGFudH0udi1leHBhbnNpb24tcGFuZWxzLS12YXJpYW50LWFjY29yZGlvbj46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSAudi1leHBhbnNpb24tcGFuZWwtdGl0bGUtLWFjdGl2ZXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0udi1leHBhbnNpb24tcGFuZWxzLS12YXJpYW50LWFjY29yZGlvbj46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50fS52LWV4cGFuc2lvbi1wYW5lbHMtLXZhcmlhbnQtYWNjb3JkaW9uIC52LWV4cGFuc2lvbi1wYW5lbC10aXRsZV9fb3ZlcmxheXt0cmFuc2l0aW9uOmJvcmRlci1yYWRpdXMgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS52LWV4cGFuc2lvbi1wYW5lbHtib3JkZXItcmFkaXVzOjRweDtmbGV4OjEgMCAxMDAlO21heC13aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246YWxsIC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLXByb3BlcnR5Om1hcmdpbi10b3AsYm9yZGVyLXJhZGl1cyxib3JkZXIsbWF4LXdpZHRofS52LWV4cGFuc2lvbi1wYW5lbDpub3QoOmZpcnN0LWNoaWxkKTphZnRlcntib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6dGhpbjtjb250ZW50OiIiO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnYtZXhwYW5zaW9uLXBhbmVsLS1kaXNhYmxlZCAudi1leHBhbnNpb24tcGFuZWwtdGl0bGV7cG9pbnRlci1ldmVudHM6bm9uZX0udi1leHBhbnNpb24tcGFuZWwtLWFjdGl2ZSsudi1leHBhbnNpb24tcGFuZWwsLnYtZXhwYW5zaW9uLXBhbmVsLS1hY3RpdmU6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDoxNnB4fS52LWV4cGFuc2lvbi1wYW5lbC0tYWN0aXZlKy52LWV4cGFuc2lvbi1wYW5lbDphZnRlciwudi1leHBhbnNpb24tcGFuZWwtLWFjdGl2ZTpub3QoOmZpcnN0LWNoaWxkKTphZnRlcntvcGFjaXR5OjB9LnYtZXhwYW5zaW9uLXBhbmVsLS1hY3RpdmU+LnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxle2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS52LWV4cGFuc2lvbi1wYW5lbC0tYWN0aXZlPi52LWV4cGFuc2lvbi1wYW5lbC10aXRsZTpub3QoLnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlLS1zdGF0aWMpe21pbi1oZWlnaHQ6NjRweH0udi1leHBhbnNpb24tcGFuZWxfX3NoYWRvd3tib3JkZXItcmFkaXVzOmluaGVyaXQ7Ym94LXNoYWRvdzowIDNweCAxcHggLTJweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4yKSksMCAycHggMnB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDFweCA1cHggMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSk7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDotMX0udi1leHBhbnNpb24tcGFuZWwtdGl0bGV7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOi45Mzc1cmVtO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2xpbmUtaGVpZ2h0OjE7bWluLWhlaWdodDo0OHB4O291dGxpbmU6bm9uZTtwYWRkaW5nOjE2cHggMjRweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOnN0YXJ0O3RyYW5zaXRpb246bWluLWhlaWdodCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7d2lkdGg6MTAwJX0udi1leHBhbnNpb24tcGFuZWwtdGl0bGU6aG92ZXI+LnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWhvdmVyLW9wYWNpdHkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9LnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlOmZvY3VzLXZpc2libGU+LnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWZvY3VzLW9wYWNpdHkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9QHN1cHBvcnRzIG5vdCBzZWxlY3Rvcig6Zm9jdXMtdmlzaWJsZSl7LnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlOmZvY3VzPi52LWV4cGFuc2lvbi1wYW5lbC10aXRsZV9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1mb2N1cy1vcGFjaXR5KSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfX0udi1leHBhbnNpb24tcGFuZWwtdGl0bGUtLWZvY3VzYWJsZS52LWV4cGFuc2lvbi1wYW5lbC10aXRsZS0tYWN0aXZlIC52LWV4cGFuc2lvbi1wYW5lbC10aXRsZV9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1leHBhbnNpb24tcGFuZWwtdGl0bGUtLWZvY3VzYWJsZS52LWV4cGFuc2lvbi1wYW5lbC10aXRsZS0tYWN0aXZlOmhvdmVyIC52LWV4cGFuc2lvbi1wYW5lbC10aXRsZV9fb3ZlcmxheXtvcGFjaXR5OmNhbGMoKHZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpICsgdmFyKC0tdi1ob3Zlci1vcGFjaXR5KSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1leHBhbnNpb24tcGFuZWwtdGl0bGUtLWZvY3VzYWJsZS52LWV4cGFuc2lvbi1wYW5lbC10aXRsZS0tYWN0aXZlOmZvY3VzLXZpc2libGUgLnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlX19vdmVybGF5e29wYWNpdHk6Y2FsYygodmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkgKyB2YXIoLS12LWZvY3VzLW9wYWNpdHkpKSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfUBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmZvY3VzLXZpc2libGUpey52LWV4cGFuc2lvbi1wYW5lbC10aXRsZS0tZm9jdXNhYmxlLnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlLS1hY3RpdmU6Zm9jdXMgLnYtZXhwYW5zaW9uLXBhbmVsLXRpdGxlX19vdmVybGF5e29wYWNpdHk6Y2FsYygodmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkgKyB2YXIoLS12LWZvY3VzLW9wYWNpdHkpKSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfX0udi1leHBhbnNpb24tcGFuZWwtdGl0bGVfX292ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czppbmhlcml0O2hlaWdodDoxMDAlO2xlZnQ6MDtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0udi1leHBhbnNpb24tcGFuZWwtdGl0bGVfX2ljb257ZGlzcGxheTppbmxpbmUtZmxleDttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLXRvcDotNHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6YXV0bzstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnYtZXhwYW5zaW9uLXBhbmVsLXRleHR7ZGlzcGxheTpmbGV4fS52LWV4cGFuc2lvbi1wYW5lbC10ZXh0X193cmFwcGVye2ZsZXg6MSAxIGF1dG87bWF4LXdpZHRoOjEwMCU7cGFkZGluZzo4cHggMjRweCAxNnB4fS52LWV4cGFuc2lvbi1wYW5lbHMtLXZhcmlhbnQtYWNjb3JkaW9uPi52LWV4cGFuc2lvbi1wYW5lbHttYXJnaW4tdG9wOjB9LnYtZXhwYW5zaW9uLXBhbmVscy0tdmFyaWFudC1hY2NvcmRpb24+LnYtZXhwYW5zaW9uLXBhbmVsOmFmdGVye29wYWNpdHk6MX0udi1leHBhbnNpb24tcGFuZWxzLS12YXJpYW50LXBvcG91dD4udi1leHBhbnNpb24tcGFuZWx7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDMycHgpfS52LWV4cGFuc2lvbi1wYW5lbHMtLXZhcmlhbnQtcG9wb3V0Pi52LWV4cGFuc2lvbi1wYW5lbC0tYWN0aXZle21heC13aWR0aDpjYWxjKDEwMCUgKyAxNnB4KX0udi1leHBhbnNpb24tcGFuZWxzLS12YXJpYW50LWluc2V0Pi52LWV4cGFuc2lvbi1wYW5lbHttYXgtd2lkdGg6MTAwJX0udi1leHBhbnNpb24tcGFuZWxzLS12YXJpYW50LWluc2V0Pi52LWV4cGFuc2lvbi1wYW5lbC0tYWN0aXZle21heC13aWR0aDpjYWxjKDEwMCUgLSAzMnB4KX0udi1leHBhbnNpb24tcGFuZWxzLS1mbGF0Pi52LWV4cGFuc2lvbi1wYW5lbDphZnRlcntib3JkZXItdG9wOm5vbmV9LnYtZXhwYW5zaW9uLXBhbmVscy0tZmxhdD4udi1leHBhbnNpb24tcGFuZWwgLnYtZXhwYW5zaW9uLXBhbmVsX19zaGFkb3d7ZGlzcGxheTpub25lfS52LWV4cGFuc2lvbi1wYW5lbHMtLXRpbGUsLnYtZXhwYW5zaW9uLXBhbmVscy0tdGlsZT4udi1leHBhbnNpb24tcGFuZWx7Ym9yZGVyLXJhZGl1czowfQo="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/forwardRefs.3bbyRG_H.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.476Z","timestamp":1785139669476,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/forwardRefs.3bbyRG_H.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"37f-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 353\r\nKeep-Alive: timeout=5, max=91\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":895,"size_decoded":688,"mime_type":"text/css","magic":"ASCII text, with very long lines (894)","md5":"dc346b35679d946f6b521de659b58f22","sha1":"08e44d55fba3f60510d2ea8d73b673f759303259","sha256":"9ef7d0bcab9dfc554d88df4f092770e31e6cc15520db579600307b529d57546d","sha512":"eddd3c4c6aaf157223cd26232136eaf08ac87d51d667fe54492f79b214dee9e357a3de42f310cc3e84fd6905d5c39451604af3722b7c2af8c8df5d2ec696e15a","ssdeep":"","tlshash":"9211bd82de712498e9faf127aa5393cd83793299dc754908a04dcf250acbbb01888b40","first_seen":"2024-07-26T13:35:58Z","last_seen":"2026-07-30T17:26:10.960486Z","times_seen":44,"resource_available":false,"data":"LnYtb3ZlcmxheS1jb250YWluZXJ7Y29udGFpbjpsYXlvdXQ7ZGlzcGxheTpjb250ZW50cztsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MH0udi1vdmVybGF5LXNjcm9sbC1ibG9ja2Vke3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS12LXNjcm9sbGJhci1vZmZzZXQpfS52LW92ZXJsYXktc2Nyb2xsLWJsb2NrZWQ6bm90KGh0bWwpe292ZXJmbG93LXk6aGlkZGVuIWltcG9ydGFudH1odG1sLnYtb3ZlcmxheS1zY3JvbGwtYmxvY2tlZHtoZWlnaHQ6MTAwJTtsZWZ0OnZhcigtLXYtYm9keS1zY3JvbGwteCk7cG9zaXRpb246Zml4ZWQ7dG9wOnZhcigtLXYtYm9keS1zY3JvbGwteSk7d2lkdGg6MTAwJX0udi1vdmVybGF5e2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtkaXNwbGF5OmZsZXg7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0b3A6MH0udi1vdmVybGF5X19jb250ZW50e2NvbnRhaW46bGF5b3V0O291dGxpbmU6bm9uZTtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlfS52LW92ZXJsYXlfX3Njcmlte2JhY2tncm91bmQ6cmdiKHZhcigtLXYtdGhlbWUtb24tc3VyZmFjZSkpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTp2YXIoLS12LW92ZXJsYXktb3BhY2l0eSwuMzIpO3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0b3A6MH0udi1vdmVybGF5LS1hYnNvbHV0ZSwudi1vdmVybGF5LS1jb250YWluZWQgLnYtb3ZlcmxheV9fc2NyaW17cG9zaXRpb246YWJzb2x1dGV9LnYtb3ZlcmxheS0tc2Nyb2xsLWJsb2NrZWR7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXYtc2Nyb2xsYmFyLW9mZnNldCl9Cg=="}},"time_used":202,"timings":{"blocked":176,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/B_2FkP8S.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.496Z","timestamp":1785139669496,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/B_2FkP8S.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"c1b-654aa2b82da32-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1128\r\nKeep-Alive: timeout=5, max=98\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":3099,"size_decoded":1478,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (3098)","md5":"1b5232609ce3b11004a4df18c43dd248","sha1":"79ceee6adfcaff4405320401d1840c38c32ed931","sha256":"bb21efbb2c5f8b5fda5ac26d789e1da82d35a5b20c0c9b8e3697c70a5fe0d38b","sha512":"9431b58b7b6afb7523e120ef285cacd08f1cfc0dfbdde48c31b91d813f4f0ad48e12105703aa1960d25e3793c37df07f20a74d54cf26a62e39827487b092eded","ssdeep":"","tlshash":"17511e50d69a5d624aebcb4586f11621397cc51c3f61c6a973bab03f011b85e3027ff9","first_seen":"2025-10-23T03:46:52.191218Z","last_seen":"2026-07-27T11:49:48.902192Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2EwIGFzIGMsYlkgYXMgZyxiaiBhcyBwLGJyIGFzIGgsJCBhcyBiLGJaIGFzIFN9ZnJvbSIuL1NtMm1DZkRFLmpzIjtjb25zdCBfPWIoe2Rpc2FibGVkOkJvb2xlYW4sZ3JvdXA6Qm9vbGVhbixoaWRlT25MZWF2ZTpCb29sZWFuLGxlYXZlQWJzb2x1dGU6Qm9vbGVhbixtb2RlOlN0cmluZyxvcmlnaW46U3RyaW5nfSwidHJhbnNpdGlvbiIpO2Z1bmN0aW9uIHMobyxkLGkpe3JldHVybiBjKCkoe25hbWU6byxwcm9wczpfKHttb2RlOmksb3JpZ2luOmR9KSxzZXR1cChlLHIpe2xldHtzbG90czphfT1yO2NvbnN0IHQ9e29uQmVmb3JlRW50ZXIobil7ZS5vcmlnaW4mJihuLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj1lLm9yaWdpbil9LG9uTGVhdmUobil7aWYoZS5sZWF2ZUFic29sdXRlKXtjb25zdHtvZmZzZXRUb3A6bCxvZmZzZXRMZWZ0OmYsb2Zmc2V0V2lkdGg6eSxvZmZzZXRIZWlnaHQ6dX09bjtuLl90cmFuc2l0aW9uSW5pdGlhbFN0eWxlcz17cG9zaXRpb246bi5zdHlsZS5wb3NpdGlvbix0b3A6bi5zdHlsZS50b3AsbGVmdDpuLnN0eWxlLmxlZnQsd2lkdGg6bi5zdHlsZS53aWR0aCxoZWlnaHQ6bi5zdHlsZS5oZWlnaHR9LG4uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixuLnN0eWxlLnRvcD1gJHtsfXB4YCxuLnN0eWxlLmxlZnQ9YCR7Zn1weGAsbi5zdHlsZS53aWR0aD1gJHt5fXB4YCxuLnN0eWxlLmhlaWdodD1gJHt1fXB4YH1lLmhpZGVPbkxlYXZlJiZuLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpfSxvbkFmdGVyTGVhdmUobil7aWYoZS5sZWF2ZUFic29sdXRlJiYobiE9bnVsbCYmbi5fdHJhbnNpdGlvbkluaXRpYWxTdHlsZXMpKXtjb25zdHtwb3NpdGlvbjpsLHRvcDpmLGxlZnQ6eSx3aWR0aDp1LGhlaWdodDp4fT1uLl90cmFuc2l0aW9uSW5pdGlhbFN0eWxlcztkZWxldGUgbi5fdHJhbnNpdGlvbkluaXRpYWxTdHlsZXMsbi5zdHlsZS5wb3NpdGlvbj1sfHwiIixuLnN0eWxlLnRvcD1mfHwiIixuLnN0eWxlLmxlZnQ9eXx8IiIsbi5zdHlsZS53aWR0aD11fHwiIixuLnN0eWxlLmhlaWdodD14fHwiIn19fTtyZXR1cm4oKT0+e2NvbnN0IG49ZS5ncm91cD9nOnA7cmV0dXJuIGgobix7bmFtZTplLmRpc2FibGVkPyIiOm8sY3NzOiFlLmRpc2FibGVkLC4uLmUuZ3JvdXA/dm9pZCAwOnttb2RlOmUubW9kZX0sLi4uZS5kaXNhYmxlZD97fTp0fSxhLmRlZmF1bHQpfX19KX1mdW5jdGlvbiBtKG8sZCl7bGV0IGk9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOiJpbi1vdXQiO3JldHVybiBjKCkoe25hbWU6byxwcm9wczp7bW9kZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDppfSxkaXNhYmxlZDpCb29sZWFuLGdyb3VwOkJvb2xlYW59LHNldHVwKGUscil7bGV0e3Nsb3RzOmF9PXI7Y29uc3QgdD1lLmdyb3VwP2c6cDtyZXR1cm4oKT0+aCh0LHtuYW1lOmUuZGlzYWJsZWQ/IiI6byxjc3M6IWUuZGlzYWJsZWQsLi4uZS5kaXNhYmxlZD97fTpkfSxhLmRlZmF1bHQpfX0pfWZ1bmN0aW9uIHYoKXtsZXQgbz1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06IiI7Y29uc3QgaT0oYXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExKT8id2lkdGgiOiJoZWlnaHQiLGU9Uyhgb2Zmc2V0LSR7aX1gKTtyZXR1cm57b25CZWZvcmVFbnRlcih0KXt0Ll9wYXJlbnQ9dC5wYXJlbnROb2RlLHQuX2luaXRpYWxTdHlsZT17dHJhbnNpdGlvbjp0LnN0eWxlLnRyYW5zaXRpb24sb3ZlcmZsb3c6dC5zdHlsZS5vdmVyZmxvdyxbaV06dC5zdHlsZVtpXX19LG9uRW50ZXIodCl7Y29uc3Qgbj10Ll9pbml0aWFsU3R5bGU7aWYoIW4pcmV0dXJuO3Quc3R5bGUuc2V0UHJvcGVydHkoInRyYW5zaXRpb24iLCJub25lIiwiaW1wb3J0YW50IiksdC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjtjb25zdCBsPWAke3RbZV19cHhgO3Quc3R5bGVbaV09IjAiLHQub2Zmc2V0SGVpZ2h0LHQuc3R5bGUudHJhbnNpdGlvbj1uLnRyYW5zaXRpb24sbyYmdC5fcGFyZW50JiZ0Ll9wYXJlbnQuY2xhc3NMaXN0LmFkZChvKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0LnN0eWxlW2ldPWx9KX0sb25BZnRlckVudGVyOmEsb25FbnRlckNhbmNlbGxlZDphLG9uTGVhdmUodCl7dC5faW5pdGlhbFN0eWxlPXt0cmFuc2l0aW9uOiIiLG92ZXJmbG93OnQuc3R5bGUub3ZlcmZsb3csW2ldOnQuc3R5bGVbaV19LHQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsdC5zdHlsZVtpXT1gJHt0W2VdfXB4YCx0Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnQuc3R5bGVbaV09IjAiKX0sb25BZnRlckxlYXZlOnIsb25MZWF2ZUNhbmNlbGxlZDpyfTtmdW5jdGlvbiByKHQpe28mJnQuX3BhcmVudCYmdC5fcGFyZW50LmNsYXNzTGlzdC5yZW1vdmUobyksYSh0KX1mdW5jdGlvbiBhKHQpe2lmKCF0Ll9pbml0aWFsU3R5bGUpcmV0dXJuO2NvbnN0IG49dC5faW5pdGlhbFN0eWxlW2ldO3Quc3R5bGUub3ZlcmZsb3c9dC5faW5pdGlhbFN0eWxlLm92ZXJmbG93LG4hPW51bGwmJih0LnN0eWxlW2ldPW4pLGRlbGV0ZSB0Ll9pbml0aWFsU3R5bGV9fXMoImZhYi10cmFuc2l0aW9uIiwiY2VudGVyIGNlbnRlciIsIm91dC1pbiIpO3MoImRpYWxvZy1ib3R0b20tdHJhbnNpdGlvbiIpO3MoImRpYWxvZy10b3AtdHJhbnNpdGlvbiIpO2NvbnN0IFQ9cygiZmFkZS10cmFuc2l0aW9uIik7cygic2NhbGUtdHJhbnNpdGlvbiIpO3MoInNjcm9sbC14LXRyYW5zaXRpb24iKTtzKCJzY3JvbGwteC1yZXZlcnNlLXRyYW5zaXRpb24iKTtzKCJzY3JvbGwteS10cmFuc2l0aW9uIik7cygic2Nyb2xsLXktcmV2ZXJzZS10cmFuc2l0aW9uIik7cygic2xpZGUteC10cmFuc2l0aW9uIik7cygic2xpZGUteC1yZXZlcnNlLXRyYW5zaXRpb24iKTtjb25zdCBMPXMoInNsaWRlLXktdHJhbnNpdGlvbiIpO3MoInNsaWRlLXktcmV2ZXJzZS10cmFuc2l0aW9uIik7Y29uc3QgQT1tKCJleHBhbmQtdHJhbnNpdGlvbiIsdigpKSxCPW0oImV4cGFuZC14LXRyYW5zaXRpb24iLHYoIiIsITApKTtleHBvcnR7QSBhcyBWLEwgYXMgYSxCIGFzIGIsVCBhcyBjfTsK"}},"time_used":46,"timings":{"blocked":20,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/exchange/flow/wallet-info.svg","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.594Z","timestamp":1785139670594,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/exchange/flow/wallet-info.svg HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"3ad-654aa2b99cd28\"\r\nAccept-Ranges: bytes\r\nContent-Length: 941\r\nKeep-Alive: timeout=5, max=89\r\nConnection: Keep-Alive\r\nContent-Type: image/svg+xml\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":941,"size_decoded":1229,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"ddedc50442098d9e1afbb0950268b0fe","sha1":"c1ca1893a085b9fc2742a6e50dae9913c208f866","sha256":"0304c1defcc81718d99d0f9e070953a3e44d280f19f70262a012cdadabd6e541","sha512":"79f54d8a36e7d2eaa3752960ee79c469edcf693b280214480c59f5847fda8de565163490765815836afa3b2091ccf84b4f42f3722ad0bd03e32887a2b34595ca","ssdeep":"","tlshash":"5d11c8f8039253c05010dfe6d27e357c24b8e8fe1acc8906c59d2746693ac9f884e5a3","first_seen":"2025-10-23T03:46:52.477629Z","last_seen":"2026-07-27T11:49:48.917965Z","times_seen":9,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0yOC4xNjczIDExLjgzMjZDMjcuODM0IDkuODMyNjQgMjYuODM0IDguMTY1OTcgMjUuMTY3MyA2LjgzMjY0QzIzLjE2NzMgNS4zMzI2NCAyMC42NjczIDQuNjY1OTcgMTguMTY3MyA1LjMzMjY0TDYuMTY3MzIgNy45OTkzMUM0LjUwMDY1IDguMzMyNjQgMy4zMzM5OCA5LjgzMjY0IDMuMzMzOTggMTEuNDk5M1YyNC45OTkzQzMuMzMzOTggMjkuNjY2IDcuMDAwNjUgMzMuMzMyNiAxMS42NjczIDMzLjMzMjZIMjYuNjY3M0MzMS4zMzQgMzMuMzMyNiAzNS4wMDA2IDI5LjY2NiAzNS4wMDA2IDI0Ljk5OTNWMTkuOTk5M0MzNS4wMDA2IDE1Ljk5OTMgMzIuMDAwNiAxMi40OTkzIDI4LjE2NzMgMTEuODMyNlpNNi44MzM5OCAxMS4zMzI2TDE4LjgzNCA4LjQ5OTMxQzE5LjMzNCA4LjQ5OTMxIDE5LjY2NzMgOC4zMzI2NCAyMC4wMDA2IDguMzMyNjRDMjEuMTY3MyA4LjMzMjY0IDIyLjE2NzMgOC42NjU5NyAyMy4wMDA3IDkuMzMyNjRDMjMuNjY3MyA5Ljk5OTMgMjQuMzM0IDEwLjY2NiAyNC42NjczIDExLjQ5OTNINi44MzM5OEM2LjY2NzMyIDExLjY2NiA2LjY2NzMyIDExLjY2NiA2LjY2NzMyIDExLjQ5OTNDNi42NjczMiAxMS40OTkzIDYuNjY3MzIgMTEuMzMyNiA2LjgzMzk4IDExLjMzMjZaTTMxLjY2NzMgMjQuOTk5M0MzMS42NjczIDI3LjgzMjYgMjkuNTAwNiAyOS45OTkzIDI2LjY2NzMgMjkuOTk5M0gxMS42NjczQzguODMzOTggMjkuOTk5MyA2LjY2NzMyIDI3LjgzMjYgNi42NjczMiAyNC45OTkzVjE0Ljk5OTNIMjYuNjY3M0MyOS41MDA2IDE0Ljk5OTMgMzEuNjY3MyAxNy4xNjYgMzEuNjY3MyAxOS45OTkzVjI0Ljk5OTNaIiBmaWxsPSIjRTZFNkU2Ii8+Cjwvc3ZnPgo="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/exchange/flow/arrow.svg","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.605Z","timestamp":1785139670605,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/exchange/flow/arrow.svg HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"1bf-654aa2b99c940\"\r\nAccept-Ranges: bytes\r\nContent-Length: 447\r\nKeep-Alive: timeout=5, max=88\r\nConnection: Keep-Alive\r\nContent-Type: image/svg+xml\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":447,"size_decoded":735,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"881aff27b73d57f078af81f14c52810f","sha1":"02e794551941df6c543f193349e91cdc44d76d03","sha256":"7d81388c4475ca36fb959ba327cd0b5aba3cd8a1616af05b382216b668c084b2","sha512":"0f6e20b6b705ece086cd2e043541457607bb75b31e3fe87f6943286882d5b988b6c389026635bdb1f111cbd97c214331d15da7465a204ff9b908e9787e69a6fa","ssdeep":"","tlshash":"6ff0e590c1fc63098e48d320522c27a82a59b1e6636d814ab38e6354af4d8d25d27698","first_seen":"2025-10-23T03:46:52.108829Z","last_seen":"2026-07-27T11:49:48.918706Z","times_seen":9,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xODA5XzQyNzQpIj4KICAgICAgICA8cGF0aCBkPSJNMTYuMTcyIDExLjAwMDdMMTAuODA4IDUuNjM2NjZMMTIuMjIyIDQuMjIyNjZMMjAgMTIuMDAwN0wxMi4yMjIgMTkuNzc4N0wxMC44MDggMTguMzY0N0wxNi4xNzIgMTMuMDAwN0g0VjExLjAwMDdIMTYuMTcyWiIgZmlsbD0iI0U2RTZFNiIvPgogICAgPC9nPgogICAgPGRlZnM+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwMF8xODA5XzQyNzQiPgogICAgICAgICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgIDwvZGVmcz4KPC9zdmc+"}},"time_used":40,"timings":{"blocked":14,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T08:07:48.842Z","timestamp":1785139668842,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:13 GMT\r\nETag: \"10fe57-654aa2b9aee37-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\nContent-Type: text/html\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":1113687,"size_decoded":134488,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"1aba4e5846ada17030e1ceeaa59ccd7f","sha1":"a280b9fb0509cadc72cdb74ea65f4172f8057bb7","sha256":"620eaa2bf7a100ae2f6370fcb8d81f8bc03479db72ed865c356e7de12581924d","sha512":"8ca4aa8f148727381b840a1aeeb9a211e26301be5bf1dc15e2f355b85147425bafcc994befc46cb7f90747272f380c8f4d08f4142e3441e09d1772f3d6d74b46","ssdeep":"6144:lq/xx0X045UjYDSdDdPiDxLG9vg549Eqhf5oJkM5UHgy5gh45kWY90GBKupKMfME:HtpKM23xj2","tlshash":"bf35185bd8fa01815a0ba0a193db33b47a79f157c908dc29f98db69dcfcb2525c5238c","first_seen":"2026-07-27T05:24:57.730766Z","last_seen":"2026-07-27T11:49:48.923317Z","times_seen":5,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGRhdGEtY2Fwbz0iIj4KCjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSIgLz4KICA8dGl0bGU+TkNvbm5lY3QgfCBZb3VyIENyeXB0b0N1cnJlbmN5IGFuZCBEaWdpdGFsQ3VycmVuY3kgRXhjaGFuZ2U8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIKICAgIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TWF0ZXJpYWwrU3ltYm9scytSb3VuZGVkOndnaHRANDAwOzUwMDs2MDA7NzAwJmFtcDtkaXNwbGF5PXN3YXAiIC8+CiAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvZmF2aWNvbi5wbmciIHR5cGU9ImltYWdlL3gtaWNvbiI+CiAgPHN0eWxlIGlkPSJ2dWV0aWZ5LXRoZW1lLXN0eWxlc2hlZXQiPgogICAgOnJvb3QgewogICAgICAtLXYtdGhlbWUtYmFja2dyb3VuZDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLWJhY2tncm91bmQtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VyZmFjZTogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLXN1cmZhY2Utb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VyZmFjZS1icmlnaHQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlLWJyaWdodC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlLWxpZ2h0OiAyMzgsIDIzOCwgMjM4OwogICAgICAtLXYtdGhlbWUtc3VyZmFjZS1saWdodC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlLXZhcmlhbnQ6IDY2LCA2NiwgNjY7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlLXZhcmlhbnQtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtb24tc3VyZmFjZS12YXJpYW50OiAyMzgsIDIzOCwgMjM4OwogICAgICAtLXYtdGhlbWUtcHJpbWFyeTogMjQsIDEwMywgMTkyOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LWRhcmtlbi0xOiAzMSwgODUsIDE0NjsKICAgICAgLS12LXRoZW1lLXByaW1hcnktZGFya2VuLTEtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5OiA3MiwgMTY5LCAxNjY7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LWRhcmtlbi0xOiAxLCAxMzUsIDEzNDsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS1kYXJrZW4tMS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1lcnJvcjogMTc2LCAwLCAzMjsKICAgICAgLS12LXRoZW1lLWVycm9yLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLWluZm86IDMzLCAxNTAsIDI0MzsKICAgICAgLS12LXRoZW1lLWluZm8tb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VjY2VzczogNzYsIDE3NSwgODA7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmc6IDI1MSwgMTQwLCAwOwogICAgICAtLXYtdGhlbWUtd2FybmluZy1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTI1OiAyNDUsIDI1MCwgMjU1OwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS0yNS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTUwOiAyMzksIDI0OCwgMjU1OwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS01MC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTEwMDogMjA5LCAyMzMsIDI1NTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktMTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktMjAwOiAxNzgsIDIyMSwgMjU1OwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS0zMDA6IDEzMiwgMjAyLCAyNTU7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTMwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTQwMDogODMsIDE3NywgMjUzOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS00MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS01MDA6IDQ2LCAxNDQsIDI1MDsKICAgICAgLS12LXRoZW1lLXByaW1hcnktNTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktNjAwOiAyMSwgMTEyLCAyMzk7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTYwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTcwMDogMjMsIDkyLCAyMTE7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTcwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTgwMDogMjQsIDczLCAxNjk7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTgwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTkwMDogMjUsIDY1LCAxMzM7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTkwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktMjU6IDI1NSwgMjQ5LCAyNDU7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktMjUtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTUwOiAyNTUsIDI0NCwgMjM3OwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTUwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0xMDA6IDI1NSwgMjMwLCAyMTM7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktMTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0yMDA6IDI1NSwgMjE0LCAxNzQ7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktMjAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0zMDA6IDI1NSwgMTU2LCAxMDI7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktMzAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS00MDA6IDI1NSwgMTA1LCA0NjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS00MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTUwMDogMjU1LCA2OCwgNTsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS01MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTYwMDogMjMwLCA0NiwgNTsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS02MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTcwMDogMTg4LCAyNywgNjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS03MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTgwMDogMTUxLCAyNCwgMTI7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktODAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS05MDA6IDExOSwgMjYsIDEzOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTkwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1ncmF5LTI1OiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtZ3JheS0yNS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1ncmF5LTUwOiAyNDksIDI1MCwgMjUxOwogICAgICAtLXYtdGhlbWUtZ3JheS01MC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1ncmF5LTEwMDogMjQyLCAyNDQsIDI0NzsKICAgICAgLS12LXRoZW1lLWdyYXktMTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWdyYXktMjAwOiAyMzQsIDIzNiwgMjQwOwogICAgICAtLXYtdGhlbWUtZ3JheS0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtZ3JheS0zMDA6IDIwOCwgMjEzLCAyMjE7CiAgICAgIC0tdi10aGVtZS1ncmF5LTMwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1ncmF5LTQwMDogMTUyLCAxNjIsIDE3OTsKICAgICAgLS12LXRoZW1lLWdyYXktNDAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWdyYXktNTAwOiAxMDIsIDExMiwgMTMzOwogICAgICAtLXYtdGhlbWUtZ3JheS01MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtZ3JheS02MDA6IDcxLCA4NCwgMTAzOwogICAgICAtLXYtdGhlbWUtZ3JheS02MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtZ3JheS03MDA6IDUyLCA2NCwgODQ7CiAgICAgIC0tdi10aGVtZS1ncmF5LTcwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1ncmF5LTgwMDogMjksIDQxLCA1NzsKICAgICAgLS12LXRoZW1lLWdyYXktODAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLWdyYXktOTAwOiAxNiwgMjQsIDQwOwogICAgICAtLXYtdGhlbWUtZ3JheS05MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy0yNTogMjQ2LCAyNTQsIDI0OTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtMjUtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy01MDogMjM2LCAyNTMsIDI0MzsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNTAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy0xMDA6IDIwOSwgMjUwLCAyMjM7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTEwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTIwMDogMTY2LCAyNDQsIDE5NzsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtMjAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtMzAwOiAxMDgsIDIzMywgMTY2OwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy0zMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy00MDA6IDUwLCAyMTMsIDEzMTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNDAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNTAwOiAxOCwgMTgzLCAxMDY7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTUwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTYwMDogMywgMTUyLCA4NTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNjAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNzAwOiA1LCA5NiwgNTg7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTcwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTgwMDogNSwgOTYsIDU4OwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy04MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy05MDA6IDUsIDc5LCA0OTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtOTAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctMjU6IDI1NSwgMjUyLCAyNDU7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTI1LW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNTA6IDI1NSwgMjUwLCAyMzU7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTUwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctMTAwOiAyNTQsIDI0MCwgMTk5OwogICAgICAtLXYtdGhlbWUtd2FybmluZy0xMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZy0yMDA6IDI1NCwgMjIzLCAxMzc7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTIwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTMwMDogMjU0LCAyMDAsIDc1OwogICAgICAtLXYtdGhlbWUtd2FybmluZy0zMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZy00MDA6IDI1MywgMTc2LCAzNDsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNDAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNTAwOiAyNDcsIDE0NCwgOTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNjAwOiAyMjAsIDEwNCwgMzsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNjAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNzAwOiAxODEsIDcxLCA4OwogICAgICAtLXYtdGhlbWUtd2FybmluZy03MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtd2FybmluZy04MDA6IDE0NywgNTUsIDEzOwogICAgICAtLXYtdGhlbWUtd2FybmluZy04MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtd2FybmluZy05MDA6IDEyMiwgNDYsIDE0OwogICAgICAtLXYtdGhlbWUtd2FybmluZy05MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtZXJyb3ItMjU6IDI1NSwgMjUxLCAyNTA7CiAgICAgIC0tdi10aGVtZS1lcnJvci0yNS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1lcnJvci01MDogMjU0LCAyNDMsIDI0MjsKICAgICAgLS12LXRoZW1lLWVycm9yLTUwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWVycm9yLTEwMDogMjU0LCAyMjgsIDIyNjsKICAgICAgLS12LXRoZW1lLWVycm9yLTEwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1lcnJvci0yMDA6IDI1NCwgMjA1LCAyMDI7CiAgICAgIC0tdi10aGVtZS1lcnJvci0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtZXJyb3ItMzAwOiAyNTMsIDE2MiwgMTU1OwogICAgICAtLXYtdGhlbWUtZXJyb3ItMzAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWVycm9yLTQwMDogMjQ5LCAxMTIsIDEwMjsKICAgICAgLS12LXRoZW1lLWVycm9yLTQwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1lcnJvci01MDA6IDI0MCwgNjgsIDU2OwogICAgICAtLXYtdGhlbWUtZXJyb3ItNTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWVycm9yLTYwMDogMjE3LCA0NSwgMzI7CiAgICAgIC0tdi10aGVtZS1lcnJvci02MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtZXJyb3ItNzAwOiAxODAsIDM1LCAyNDsKICAgICAgLS12LXRoZW1lLWVycm9yLTcwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1lcnJvci04MDA6IDE0NSwgMzIsIDI0OwogICAgICAtLXYtdGhlbWUtZXJyb3ItODAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLWVycm9yLTkwMDogMTIyLCAzOSwgMjY7CiAgICAgIC0tdi10aGVtZS1lcnJvci05MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtb24tYmFja2dyb3VuZDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXN1cmZhY2U6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zdXJmYWNlLWJyaWdodDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXN1cmZhY2UtbGlnaHQ6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5OiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS1kYXJrZW4tMTogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeTogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS1kYXJrZW4tMTogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLWVycm9yOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24taW5mbzogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3M6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS0yNTogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnktNTA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LTEwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnktMjAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS0zMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LTQwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnktNTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS02MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LTcwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnktODAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS05MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktMjU6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktNTA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktMTAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTIwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS0zMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktNDAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTUwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS02MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktNzAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTgwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS05MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTI1OiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZ3JheS01MDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLWdyYXktMTAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZ3JheS0yMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTMwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLWdyYXktNDAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZ3JheS01MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTYwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLWdyYXktNzAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZ3JheS04MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTkwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtMjU6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zdWNjZXNzLTUwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc3VjY2Vzcy0xMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zdWNjZXNzLTIwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtMzAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc3VjY2Vzcy00MDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zdWNjZXNzLTUwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtNjAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc3VjY2Vzcy03MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1zdWNjZXNzLTgwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtOTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy0yNTogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmctNTA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nLTEwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmctMjAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy0zMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nLTQwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmctNTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy02MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nLTcwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmctODAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy05MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci0yNTogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLWVycm9yLTUwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItMTAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItMjAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItMzAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItNDAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItNTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItNjAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItNzAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItODAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItOTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtYm9yZGVyLWNvbG9yOiAwLCAwLCAwOwogICAgICAtLXYtYm9yZGVyLW9wYWNpdHk6IDAuMTI7CiAgICAgIC0tdi1oaWdoLWVtcGhhc2lzLW9wYWNpdHk6IDAuODc7CiAgICAgIC0tdi1tZWRpdW0tZW1waGFzaXMtb3BhY2l0eTogMC42OwogICAgICAtLXYtZGlzYWJsZWQtb3BhY2l0eTogMC4zODsKICAgICAgLS12LWlkbGUtb3BhY2l0eTogMC4wNDsKICAgICAgLS12LWhvdmVyLW9wYWNpdHk6IDAuMDQ7CiAgICAgIC0tdi1mb2N1cy1vcGFjaXR5OiAwLjEyOwogICAgICAtLXYtc2VsZWN0ZWQtb3BhY2l0eTogMC4wODsKICAgICAgLS12LWFjdGl2YXRlZC1vcGFjaXR5OiAwLjEyOwogICAgICAtLXYtcHJlc3NlZC1vcGFjaXR5OiAwLjEyOwogICAgICAtLXYtZHJhZ2dlZC1vcGFjaXR5OiAwLjA4OwogICAgICAtLXYtdGhlbWUta2JkOiAzMywgMzcsIDQxOwogICAgICAtLXYtdGhlbWUtb24ta2JkOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtY29kZTogMjQ1LCAyNDUsIDI0NTsKICAgICAgLS12LXRoZW1lLW9uLWNvZGU6IDAsIDAsIDA7CiAgICB9CgogICAgLnYtdGhlbWUtLWxpZ2h0IHsKICAgICAgY29sb3Itc2NoZW1lOiBub3JtYWw7CiAgICAgIC0tdi10aGVtZS1iYWNrZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtYmFja2dyb3VuZC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtc3VyZmFjZS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlLWJyaWdodDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLXN1cmZhY2UtYnJpZ2h0LW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1cmZhY2UtbGlnaHQ6IDIzOCwgMjM4LCAyMzg7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlLWxpZ2h0LW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1cmZhY2UtdmFyaWFudDogNjYsIDY2LCA2NjsKICAgICAgLS12LXRoZW1lLXN1cmZhY2UtdmFyaWFudC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1vbi1zdXJmYWNlLXZhcmlhbnQ6IDIzOCwgMjM4LCAyMzg7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5OiAyNCwgMTAzLCAxOTI7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXByaW1hcnktZGFya2VuLTE6IDMxLCA4NSwgMTQ2OwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS1kYXJrZW4tMS1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnk6IDcyLCAxNjksIDE2NjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktZGFya2VuLTE6IDEsIDEzNSwgMTM0OwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LWRhcmtlbi0xLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWVycm9yOiAxNzYsIDAsIDMyOwogICAgICAtLXYtdGhlbWUtZXJyb3Itb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtaW5mbzogMzMsIDE1MCwgMjQzOwogICAgICAtLXYtdGhlbWUtaW5mby1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzOiA3NiwgMTc1LCA4MDsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3Mtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZzogMjUxLCAxNDAsIDA7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktMjU6IDI0NSwgMjUwLCAyNTU7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTI1LW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktNTA6IDIzOSwgMjQ4LCAyNTU7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTUwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktMTAwOiAyMDksIDIzMywgMjU1OwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS0xMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS0yMDA6IDE3OCwgMjIxLCAyNTU7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTIwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTMwMDogMTMyLCAyMDIsIDI1NTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktMzAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktNDAwOiA4MywgMTc3LCAyNTM7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTQwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1wcmltYXJ5LTUwMDogNDYsIDE0NCwgMjUwOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS01MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS02MDA6IDIxLCAxMTIsIDIzOTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktNjAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXByaW1hcnktNzAwOiAyMywgOTIsIDIxMTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktNzAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXByaW1hcnktODAwOiAyNCwgNzMsIDE2OTsKICAgICAgLS12LXRoZW1lLXByaW1hcnktODAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXByaW1hcnktOTAwOiAyNSwgNjUsIDEzMzsKICAgICAgLS12LXRoZW1lLXByaW1hcnktOTAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0yNTogMjU1LCAyNDksIDI0NTsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0yNS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktNTA6IDI1NSwgMjQ0LCAyMzc7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktNTAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTEwMDogMjU1LCAyMzAsIDIxMzsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0xMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTIwMDogMjU1LCAyMTQsIDE3NDsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTMwMDogMjU1LCAxNTYsIDEwMjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS0zMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTQwMDogMjU1LCAxMDUsIDQ2OwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTQwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktNTAwOiAyNTUsIDY4LCA1OwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTUwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktNjAwOiAyMzAsIDQ2LCA1OwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTYwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktNzAwOiAxODgsIDI3LCA2OwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTcwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktODAwOiAxNTEsIDI0LCAxMjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS04MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtc2Vjb25kYXJ5LTkwMDogMTE5LCAyNiwgMTM7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktOTAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLWdyYXktMjU6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1ncmF5LTI1LW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWdyYXktNTA6IDI0OSwgMjUwLCAyNTE7CiAgICAgIC0tdi10aGVtZS1ncmF5LTUwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWdyYXktMTAwOiAyNDIsIDI0NCwgMjQ3OwogICAgICAtLXYtdGhlbWUtZ3JheS0xMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtZ3JheS0yMDA6IDIzNCwgMjM2LCAyNDA7CiAgICAgIC0tdi10aGVtZS1ncmF5LTIwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1ncmF5LTMwMDogMjA4LCAyMTMsIDIyMTsKICAgICAgLS12LXRoZW1lLWdyYXktMzAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWdyYXktNDAwOiAxNTIsIDE2MiwgMTc5OwogICAgICAtLXYtdGhlbWUtZ3JheS00MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtZ3JheS01MDA6IDEwMiwgMTEyLCAxMzM7CiAgICAgIC0tdi10aGVtZS1ncmF5LTUwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1ncmF5LTYwMDogNzEsIDg0LCAxMDM7CiAgICAgIC0tdi10aGVtZS1ncmF5LTYwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1ncmF5LTcwMDogNTIsIDY0LCA4NDsKICAgICAgLS12LXRoZW1lLWdyYXktNzAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLWdyYXktODAwOiAyOSwgNDEsIDU3OwogICAgICAtLXYtdGhlbWUtZ3JheS04MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtZ3JheS05MDA6IDE2LCAyNCwgNDA7CiAgICAgIC0tdi10aGVtZS1ncmF5LTkwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTI1OiAyNDYsIDI1NCwgMjQ5OwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy0yNS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTUwOiAyMzYsIDI1MywgMjQzOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy01MC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTEwMDogMjA5LCAyNTAsIDIyMzsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtMTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtMjAwOiAxNjYsIDI0NCwgMTk3OwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy0zMDA6IDEwOCwgMjMzLCAxNjY7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTMwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTQwMDogNTAsIDIxMywgMTMxOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy00MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy01MDA6IDE4LCAxODMsIDEwNjsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNjAwOiAzLCAxNTIsIDg1OwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy02MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy03MDA6IDUsIDk2LCA1ODsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtNzAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXN1Y2Nlc3MtODAwOiA1LCA5NiwgNTg7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTgwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLTkwMDogNSwgNzksIDQ5OwogICAgICAtLXYtdGhlbWUtc3VjY2Vzcy05MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtd2FybmluZy0yNTogMjU1LCAyNTIsIDI0NTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctMjUtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZy01MDogMjU1LCAyNTAsIDIzNTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctNTAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZy0xMDA6IDI1NCwgMjQwLCAxOTk7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTEwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTIwMDogMjU0LCAyMjMsIDEzNzsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctMjAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXdhcm5pbmctMzAwOiAyNTQsIDIwMCwgNzU7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTMwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTQwMDogMjUzLCAxNzYsIDM0OwogICAgICAtLXYtdGhlbWUtd2FybmluZy00MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZy01MDA6IDI0NywgMTQ0LCA5OwogICAgICAtLXYtdGhlbWUtd2FybmluZy01MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZy02MDA6IDIyMCwgMTA0LCAzOwogICAgICAtLXYtdGhlbWUtd2FybmluZy02MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtd2FybmluZy03MDA6IDE4MSwgNzEsIDg7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTcwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTgwMDogMTQ3LCA1NSwgMTM7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTgwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTkwMDogMTIyLCA0NiwgMTQ7CiAgICAgIC0tdi10aGVtZS13YXJuaW5nLTkwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1lcnJvci0yNTogMjU1LCAyNTEsIDI1MDsKICAgICAgLS12LXRoZW1lLWVycm9yLTI1LW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWVycm9yLTUwOiAyNTQsIDI0MywgMjQyOwogICAgICAtLXYtdGhlbWUtZXJyb3ItNTAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtZXJyb3ItMTAwOiAyNTQsIDIyOCwgMjI2OwogICAgICAtLXYtdGhlbWUtZXJyb3ItMTAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWVycm9yLTIwMDogMjU0LCAyMDUsIDIwMjsKICAgICAgLS12LXRoZW1lLWVycm9yLTIwMC1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi10aGVtZS1lcnJvci0zMDA6IDI1MywgMTYyLCAxNTU7CiAgICAgIC0tdi10aGVtZS1lcnJvci0zMDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtZXJyb3ItNDAwOiAyNDksIDExMiwgMTAyOwogICAgICAtLXYtdGhlbWUtZXJyb3ItNDAwLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLWVycm9yLTUwMDogMjQwLCA2OCwgNTY7CiAgICAgIC0tdi10aGVtZS1lcnJvci01MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtZXJyb3ItNjAwOiAyMTcsIDQ1LCAzMjsKICAgICAgLS12LXRoZW1lLWVycm9yLTYwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1lcnJvci03MDA6IDE4MCwgMzUsIDI0OwogICAgICAtLXYtdGhlbWUtZXJyb3ItNzAwLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLWVycm9yLTgwMDogMTQ1LCAzMiwgMjQ7CiAgICAgIC0tdi10aGVtZS1lcnJvci04MDAtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtZXJyb3ItOTAwOiAxMjIsIDM5LCAyNjsKICAgICAgLS12LXRoZW1lLWVycm9yLTkwMC1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1vbi1iYWNrZ3JvdW5kOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc3VyZmFjZTogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXN1cmZhY2UtYnJpZ2h0OiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc3VyZmFjZS1saWdodDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnk6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LWRhcmtlbi0xOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5OiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LWRhcmtlbi0xOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZXJyb3I6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1pbmZvOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc3VjY2VzczogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmc6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LTI1OiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS01MDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnktMTAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS0yMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LTMwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnktNDAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS01MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LTYwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnktNzAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tcHJpbWFyeS04MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LTkwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS0yNTogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS01MDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS0xMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktMjAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTMwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS00MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktNTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTYwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXNlY29uZGFyeS03MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1zZWNvbmRhcnktODAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTkwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLWdyYXktMjU6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTUwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZ3JheS0xMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTIwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLWdyYXktMzAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZ3JheS00MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTUwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLWdyYXktNjAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZ3JheS03MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1ncmF5LTgwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLWdyYXktOTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc3VjY2Vzcy0yNTogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtNTA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zdWNjZXNzLTEwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtMjAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc3VjY2Vzcy0zMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1zdWNjZXNzLTQwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtNTAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc3VjY2Vzcy02MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1zdWNjZXNzLTcwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXN1Y2Nlc3MtODAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc3VjY2Vzcy05MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nLTI1OiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy01MDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmctMTAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy0yMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nLTMwMDogMCwgMCwgMDsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmctNDAwOiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy01MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nLTYwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmctNzAwOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24td2FybmluZy04MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi13YXJuaW5nLTkwMDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLWVycm9yLTI1OiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tZXJyb3ItNTA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci0xMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci0yMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci0zMDA6IDAsIDAsIDA7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci00MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci01MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci02MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci03MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci04MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1lcnJvci05MDA6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IDAsIDAsIDA7CiAgICAgIC0tdi1ib3JkZXItb3BhY2l0eTogMC4xMjsKICAgICAgLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eTogMC44NzsKICAgICAgLS12LW1lZGl1bS1lbXBoYXNpcy1vcGFjaXR5OiAwLjY7CiAgICAgIC0tdi1kaXNhYmxlZC1vcGFjaXR5OiAwLjM4OwogICAgICAtLXYtaWRsZS1vcGFjaXR5OiAwLjA0OwogICAgICAtLXYtaG92ZXItb3BhY2l0eTogMC4wNDsKICAgICAgLS12LWZvY3VzLW9wYWNpdHk6IDAuMTI7CiAgICAgIC0tdi1zZWxlY3RlZC1vcGFjaXR5OiAwLjA4OwogICAgICAtLXYtYWN0aXZhdGVkLW9wYWNpdHk6IDAuMTI7CiAgICAgIC0tdi1wcmVzc2VkLW9wYWNpdHk6IDAuMTI7CiAgICAgIC0tdi1kcmFnZ2VkLW9wYWNpdHk6IDAuMDg7CiAgICAgIC0tdi10aGVtZS1rYmQ6IDMzLCAzNywgNDE7CiAgICAgIC0tdi10aGVtZS1vbi1rYmQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1jb2RlOiAyNDUsIDI0NSwgMjQ1OwogICAgICAtLXYtdGhlbWUtb24tY29kZTogMCwgMCwgMDsKICAgIH0KCiAgICAudi10aGVtZS0tZGFyayB7CiAgICAgIGNvbG9yLXNjaGVtZTogZGFyazsKICAgICAgLS12LXRoZW1lLWJhY2tncm91bmQ6IDE4LCAxOCwgMTg7CiAgICAgIC0tdi10aGVtZS1iYWNrZ3JvdW5kLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1cmZhY2U6IDMzLCAzMywgMzM7CiAgICAgIC0tdi10aGVtZS1zdXJmYWNlLW92ZXJsYXktbXVsdGlwbGllcjogMTsKICAgICAgLS12LXRoZW1lLXN1cmZhY2UtYnJpZ2h0OiAyMDQsIDE5MSwgMjE0OwogICAgICAtLXYtdGhlbWUtc3VyZmFjZS1icmlnaHQtb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtc3VyZmFjZS1saWdodDogNjYsIDY2LCA2NjsKICAgICAgLS12LXRoZW1lLXN1cmZhY2UtbGlnaHQtb3ZlcmxheS1tdWx0aXBsaWVyOiAxOwogICAgICAtLXYtdGhlbWUtc3VyZmFjZS12YXJpYW50OiAxNjMsIDE2MywgMTYzOwogICAgICAtLXYtdGhlbWUtc3VyZmFjZS12YXJpYW50LW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLW9uLXN1cmZhY2UtdmFyaWFudDogNjYsIDY2LCA2NjsKICAgICAgLS12LXRoZW1lLXByaW1hcnk6IDMzLCAxNTAsIDI0MzsKICAgICAgLS12LXRoZW1lLXByaW1hcnktb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS1kYXJrZW4tMTogMzksIDEyNCwgMTkzOwogICAgICAtLXYtdGhlbWUtcHJpbWFyeS1kYXJrZW4tMS1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnk6IDg0LCAxODIsIDE3ODsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1zZWNvbmRhcnktZGFya2VuLTE6IDcyLCAxNjksIDE2NjsKICAgICAgLS12LXRoZW1lLXNlY29uZGFyeS1kYXJrZW4tMS1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1lcnJvcjogMjA3LCAxMDIsIDEyMTsKICAgICAgLS12LXRoZW1lLWVycm9yLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLWluZm86IDMzLCAxNTAsIDI0MzsKICAgICAgLS12LXRoZW1lLWluZm8tb3ZlcmxheS1tdWx0aXBsaWVyOiAyOwogICAgICAtLXYtdGhlbWUtc3VjY2VzczogNzYsIDE3NSwgODA7CiAgICAgIC0tdi10aGVtZS1zdWNjZXNzLW92ZXJsYXktbXVsdGlwbGllcjogMjsKICAgICAgLS12LXRoZW1lLXdhcm5pbmc6IDI1MSwgMTQwLCAwOwogICAgICAtLXYtdGhlbWUtd2FybmluZy1vdmVybGF5LW11bHRpcGxpZXI6IDI7CiAgICAgIC0tdi10aGVtZS1vbi1iYWNrZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc3VyZmFjZTogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXN1cmZhY2UtYnJpZ2h0OiAwLCAwLCAwOwogICAgICAtLXYtdGhlbWUtb24tc3VyZmFjZS1saWdodDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXByaW1hcnk6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1wcmltYXJ5LWRhcmtlbi0xOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5OiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LWRhcmtlbi0xOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tZXJyb3I6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi10aGVtZS1vbi1pbmZvOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtb24tc3VjY2VzczogMjU1LCAyNTUsIDI1NTsKICAgICAgLS12LXRoZW1lLW9uLXdhcm5pbmc6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tdi1ib3JkZXItb3BhY2l0eTogMC4xMjsKICAgICAgLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eTogMTsKICAgICAgLS12LW1lZGl1bS1lbXBoYXNpcy1vcGFjaXR5OiAwLjc7CiAgICAgIC0tdi1kaXNhYmxlZC1vcGFjaXR5OiAwLjU7CiAgICAgIC0tdi1pZGxlLW9wYWNpdHk6IDAuMTsKICAgICAgLS12LWhvdmVyLW9wYWNpdHk6IDAuMDQ7CiAgICAgIC0tdi1mb2N1cy1vcGFjaXR5OiAwLjEyOwogICAgICAtLXYtc2VsZWN0ZWQtb3BhY2l0eTogMC4wODsKICAgICAgLS12LWFjdGl2YXRlZC1vcGFjaXR5OiAwLjEyOwogICAgICAtLXYtcHJlc3NlZC1vcGFjaXR5OiAwLjE2OwogICAgICAtLXYtZHJhZ2dlZC1vcGFjaXR5OiAwLjA4OwogICAgICAtLXYtdGhlbWUta2JkOiAzMywgMzcsIDQxOwogICAgICAtLXYtdGhlbWUtb24ta2JkOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLXYtdGhlbWUtY29kZTogNTIsIDUyLCA1MjsKICAgICAgLS12LXRoZW1lLW9uLWNvZGU6IDIwNCwgMjA0LCAyMDQ7CiAgICB9CgogICAgLmJnLWJhY2tncm91bmQgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWJhY2tncm91bmQtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtYmFja2dyb3VuZCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1iYWNrZ3JvdW5kKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc3VyZmFjZSB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc3VyZmFjZS1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdXJmYWNlKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1zdXJmYWNlLWJyaWdodCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc3VyZmFjZS1icmlnaHQtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc3VyZmFjZS1icmlnaHQpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc3VyZmFjZS1icmlnaHQpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1zdXJmYWNlLWxpZ2h0IHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdXJmYWNlLWxpZ2h0LW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UtbGlnaHQpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc3VyZmFjZS1saWdodCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1cmZhY2UtdmFyaWFudCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc3VyZmFjZS12YXJpYW50LW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UtdmFyaWFudCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlLXZhcmlhbnQpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1wcmltYXJ5IHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1wcmltYXJ5LW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnkpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tcHJpbWFyeSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXByaW1hcnktZGFya2VuLTEgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktZGFya2VuLTEtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtcHJpbWFyeS1kYXJrZW4tMSkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1wcmltYXJ5LWRhcmtlbi0xKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5IHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5KSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS1kYXJrZW4tMSB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LWRhcmtlbi0xLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS1kYXJrZW4tMSkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zZWNvbmRhcnktZGFya2VuLTEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1lcnJvciB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtZXJyb3Itb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3IpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3IpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1pbmZvIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1pbmZvLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWluZm8pKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24taW5mbykpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXN1Y2Nlc3Mtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc3VjY2VzcykpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctd2FybmluZyB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS13YXJuaW5nKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXdhcm5pbmcpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1wcmltYXJ5LTI1IHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1wcmltYXJ5LTI1LW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktMjUpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tcHJpbWFyeS0yNSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXByaW1hcnktNTAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktNTAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtcHJpbWFyeS01MCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1wcmltYXJ5LTUwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS0xMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktMTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktMTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktMTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS0yMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktMjAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktMjAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS0zMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktMzAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktMzAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktMzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS00MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktNDAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktNDAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktNDAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS01MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktNTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktNTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS02MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktNjAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktNjAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktNjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS03MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktNzAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktNzAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktNzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS04MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktODAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktODAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHJpbWFyeS05MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXByaW1hcnktOTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktOTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktOTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5LTI1IHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktMjUtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTI1KSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS0yNSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS01MCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTUwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS01MCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zZWNvbmRhcnktNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1zZWNvbmRhcnktMTAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktMTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS0xMDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS0yMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeS0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTIwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zZWNvbmRhcnktMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5LTMwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTMwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktMzAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1zZWNvbmRhcnktNDAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNDAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS00MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS01MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeS01MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTUwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zZWNvbmRhcnktNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5LTYwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTYwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNjAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1zZWNvbmRhcnktNzAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNzAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS03MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc2Vjb25kYXJ5LTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS04MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeS04MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTgwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zZWNvbmRhcnktODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5LTkwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTkwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktOTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmF5LTI1IHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1ncmF5LTI1LW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktMjUpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZ3JheS0yNSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyYXktNTAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktNTAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZ3JheS01MCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1ncmF5LTUwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS0xMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktMTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktMTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktMTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS0yMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktMjAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktMjAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS0zMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktMzAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktMzAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktMzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS00MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktNDAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktNDAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktNDAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS01MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktNTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktNTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS02MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktNjAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktNjAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktNjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS03MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktNzAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktNzAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktNzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS04MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktODAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktODAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JheS05MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWdyYXktOTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktOTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktOTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc3VjY2Vzcy0yNSB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtc3VjY2Vzcy0yNS1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTI1KSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1Y2Nlc3MtMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1zdWNjZXNzLTUwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTUwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtNTApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc3VjY2Vzcy01MCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtMTAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTEwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTEwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtMjAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTIwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTIwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTIwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtMzAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTMwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTMwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTMwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtNDAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTQwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTQwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtNTAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTUwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTUwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTUwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtNjAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTYwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTYwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTYwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtNzAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTcwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTcwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtODAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTgwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTgwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTgwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtOTAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTkwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTkwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTkwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXdhcm5pbmctMjUgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLXdhcm5pbmctMjUtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy0yNSkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi13YXJuaW5nLTI1KSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctd2FybmluZy01MCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy01MC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS13YXJuaW5nLTUwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXdhcm5pbmctNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTEwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy0xMDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy0xMDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy0xMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTIwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy0yMDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy0yMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTMwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy0zMDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy0zMDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTQwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy00MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy00MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy00MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTUwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy01MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy01MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy01MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTYwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy02MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy02MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTcwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy03MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy03MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy03MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTgwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy04MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy04MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy04MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy13YXJuaW5nLTkwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtd2FybmluZy05MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy05MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1lcnJvci0yNSB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtZXJyb3ItMjUtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItMjUpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1lcnJvci01MCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtZXJyb3ItNTAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItNTApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1lcnJvci0xMDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWVycm9yLTEwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1lcnJvci0xMDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItMTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZXJyb3ItMjAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1lcnJvci0yMDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItMjAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yLTIwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWVycm9yLTMwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtZXJyb3ItMzAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWVycm9yLTMwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1lcnJvci0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1lcnJvci00MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWVycm9yLTQwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1lcnJvci00MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItNDAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZXJyb3ItNTAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1lcnJvci01MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItNTAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yLTUwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWVycm9yLTYwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtZXJyb3ItNjAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWVycm9yLTYwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1lcnJvci02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1lcnJvci03MDAgewogICAgICAtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyOiB2YXIoLS12LXRoZW1lLWVycm9yLTcwMC1vdmVybGF5LW11bHRpcGxpZXIpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1lcnJvci03MDApKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItNzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZXJyb3ItODAwIHsKICAgICAgLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcjogdmFyKC0tdi10aGVtZS1lcnJvci04MDAtb3ZlcmxheS1tdWx0aXBsaWVyKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItODAwKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yLTgwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWVycm9yLTkwMCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IHZhcigtLXYtdGhlbWUtZXJyb3ItOTAwLW92ZXJsYXktbXVsdGlwbGllcik7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWVycm9yLTkwMCkpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1lcnJvci05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJhY2tncm91bmQgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtYmFja2dyb3VuZCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1iYWNrZ3JvdW5kIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1iYWNrZ3JvdW5kKTsKICAgIH0KCiAgICAudGV4dC1zdXJmYWNlIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc3VyZmFjZSB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc3VyZmFjZSk7CiAgICB9CgogICAgLnRleHQtc3VyZmFjZS1icmlnaHQgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc3VyZmFjZS1icmlnaHQpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc3VyZmFjZS1icmlnaHQgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXN1cmZhY2UtYnJpZ2h0KTsKICAgIH0KCiAgICAudGV4dC1zdXJmYWNlLWxpZ2h0IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UtbGlnaHQpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc3VyZmFjZS1saWdodCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc3VyZmFjZS1saWdodCk7CiAgICB9CgogICAgLnRleHQtc3VyZmFjZS12YXJpYW50IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UtdmFyaWFudCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zdXJmYWNlLXZhcmlhbnQgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXN1cmZhY2UtdmFyaWFudCk7CiAgICB9CgogICAgLm9uLXN1cmZhY2UtdmFyaWFudCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlLXZhcmlhbnQpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXByaW1hcnkgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtcHJpbWFyeSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1wcmltYXJ5IHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1wcmltYXJ5KTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LWRhcmtlbi0xIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktZGFya2VuLTEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcHJpbWFyeS1kYXJrZW4tMSB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtcHJpbWFyeS1kYXJrZW4tMSk7CiAgICB9CgogICAgLnRleHQtc2Vjb25kYXJ5IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zZWNvbmRhcnkgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeSk7CiAgICB9CgogICAgLnRleHQtc2Vjb25kYXJ5LWRhcmtlbi0xIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS1kYXJrZW4tMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zZWNvbmRhcnktZGFya2VuLTEgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeS1kYXJrZW4tMSk7CiAgICB9CgogICAgLnRleHQtZXJyb3IgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3IpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZXJyb3IgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLWVycm9yKTsKICAgIH0KCiAgICAudGV4dC1pbmZvIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWluZm8pKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItaW5mbyB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtaW5mbyk7CiAgICB9CgogICAgLnRleHQtc3VjY2VzcyB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXN1Y2Nlc3MpOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmcgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZykpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci13YXJuaW5nIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS13YXJuaW5nKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTI1IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcHJpbWFyeS0yNSB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtcHJpbWFyeS0yNSk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS01MCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1wcmltYXJ5LTUwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktNTAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXByaW1hcnktNTApOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktMTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktMTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktMTAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1wcmltYXJ5LTEwMCk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS0yMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtcHJpbWFyeS0yMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcHJpbWFyeS0yMDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXByaW1hcnktMjAwKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTMwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1wcmltYXJ5LTMwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1wcmltYXJ5LTMwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtcHJpbWFyeS0zMDApOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktNDAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktNDAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktNDAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1wcmltYXJ5LTQwMCk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS01MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtcHJpbWFyeS01MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcHJpbWFyeS01MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXByaW1hcnktNTAwKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTYwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1wcmltYXJ5LTYwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1wcmltYXJ5LTYwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtcHJpbWFyeS02MDApOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktNzAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXByaW1hcnktNzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktNzAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1wcmltYXJ5LTcwMCk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS04MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtcHJpbWFyeS04MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcHJpbWFyeS04MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXByaW1hcnktODAwKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTkwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1wcmltYXJ5LTkwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1wcmltYXJ5LTkwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtcHJpbWFyeS05MDApOwogICAgfQoKICAgIC50ZXh0LXNlY29uZGFyeS0yNSB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc2Vjb25kYXJ5LTI1IHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktMjUpOwogICAgfQoKICAgIC50ZXh0LXNlY29uZGFyeS01MCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc2Vjb25kYXJ5LTUwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNTApOwogICAgfQoKICAgIC50ZXh0LXNlY29uZGFyeS0xMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zZWNvbmRhcnktMTAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktMTAwKTsKICAgIH0KCiAgICAudGV4dC1zZWNvbmRhcnktMjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS0yMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc2Vjb25kYXJ5LTIwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTIwMCk7CiAgICB9CgogICAgLnRleHQtc2Vjb25kYXJ5LTMwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktMzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXNlY29uZGFyeS0zMDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeS0zMDApOwogICAgfQoKICAgIC50ZXh0LXNlY29uZGFyeS00MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zZWNvbmRhcnktNDAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNDAwKTsKICAgIH0KCiAgICAudGV4dC1zZWNvbmRhcnktNTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS01MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc2Vjb25kYXJ5LTUwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTUwMCk7CiAgICB9CgogICAgLnRleHQtc2Vjb25kYXJ5LTYwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXNlY29uZGFyeS02MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeS02MDApOwogICAgfQoKICAgIC50ZXh0LXNlY29uZGFyeS03MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zZWNvbmRhcnktNzAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zZWNvbmRhcnktNzAwKTsKICAgIH0KCiAgICAudGV4dC1zZWNvbmRhcnktODAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXNlY29uZGFyeS04MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc2Vjb25kYXJ5LTgwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc2Vjb25kYXJ5LTgwMCk7CiAgICB9CgogICAgLnRleHQtc2Vjb25kYXJ5LTkwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zZWNvbmRhcnktOTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXNlY29uZGFyeS05MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXNlY29uZGFyeS05MDApOwogICAgfQoKICAgIC50ZXh0LWdyYXktMjUgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZ3JheS0yNSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTI1IHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1ncmF5LTI1KTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTUwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZ3JheS01MCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZ3JheS01MCk7CiAgICB9CgogICAgLnRleHQtZ3JheS0xMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZ3JheS0xMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZ3JheS0xMDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLWdyYXktMTAwKTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTIwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1ncmF5LTIwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTIwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZ3JheS0yMDApOwogICAgfQoKICAgIC50ZXh0LWdyYXktMzAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktMzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktMzAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1ncmF5LTMwMCk7CiAgICB9CgogICAgLnRleHQtZ3JheS00MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZ3JheS00MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZ3JheS00MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLWdyYXktNDAwKTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTUwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1ncmF5LTUwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTUwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZ3JheS01MDApOwogICAgfQoKICAgIC50ZXh0LWdyYXktNjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktNjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktNjAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1ncmF5LTYwMCk7CiAgICB9CgogICAgLnRleHQtZ3JheS03MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZ3JheS03MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZ3JheS03MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLWdyYXktNzAwKTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTgwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1ncmF5LTgwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTgwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZ3JheS04MDApOwogICAgfQoKICAgIC50ZXh0LWdyYXktOTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWdyYXktOTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktOTAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1ncmF5LTkwMCk7CiAgICB9CgogICAgLnRleHQtc3VjY2Vzcy0yNSB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTI1KSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MtMjUgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtMjUpOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtNTAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc3VjY2Vzcy01MCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zdWNjZXNzLTUwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTUwKTsKICAgIH0KCiAgICAudGV4dC1zdWNjZXNzLTEwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zdWNjZXNzLTEwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc3VjY2Vzcy0xMDApOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtMjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MtMjAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTIwMCk7CiAgICB9CgogICAgLnRleHQtc3VjY2Vzcy0zMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc3VjY2Vzcy0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc3VjY2Vzcy0zMDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtMzAwKTsKICAgIH0KCiAgICAudGV4dC1zdWNjZXNzLTQwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zdWNjZXNzLTQwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc3VjY2Vzcy00MDApOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtNTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MtNTAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTUwMCk7CiAgICB9CgogICAgLnRleHQtc3VjY2Vzcy02MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc3VjY2Vzcy02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc3VjY2Vzcy02MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtNjAwKTsKICAgIH0KCiAgICAudGV4dC1zdWNjZXNzLTcwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1zdWNjZXNzLTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zdWNjZXNzLTcwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtc3VjY2Vzcy03MDApOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtODAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MtODAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1zdWNjZXNzLTgwMCk7CiAgICB9CgogICAgLnRleHQtc3VjY2Vzcy05MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtc3VjY2Vzcy05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc3VjY2Vzcy05MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXN1Y2Nlc3MtOTAwKTsKICAgIH0KCiAgICAudGV4dC13YXJuaW5nLTI1IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXdhcm5pbmctMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItd2FybmluZy0yNSB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtd2FybmluZy0yNSk7CiAgICB9CgogICAgLnRleHQtd2FybmluZy01MCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS13YXJuaW5nLTUwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXdhcm5pbmctNTAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXdhcm5pbmctNTApOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmctMTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXdhcm5pbmctMTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXdhcm5pbmctMTAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS13YXJuaW5nLTEwMCk7CiAgICB9CgogICAgLnRleHQtd2FybmluZy0yMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy0yMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItd2FybmluZy0yMDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXdhcm5pbmctMjAwKTsKICAgIH0KCiAgICAudGV4dC13YXJuaW5nLTMwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS13YXJuaW5nLTMwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci13YXJuaW5nLTMwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtd2FybmluZy0zMDApOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmctNDAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXdhcm5pbmctNDAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXdhcm5pbmctNDAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS13YXJuaW5nLTQwMCk7CiAgICB9CgogICAgLnRleHQtd2FybmluZy01MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy01MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItd2FybmluZy01MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXdhcm5pbmctNTAwKTsKICAgIH0KCiAgICAudGV4dC13YXJuaW5nLTYwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS13YXJuaW5nLTYwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci13YXJuaW5nLTYwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtd2FybmluZy02MDApOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmctNzAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLXdhcm5pbmctNzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLXdhcm5pbmctNzAwIHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS13YXJuaW5nLTcwMCk7CiAgICB9CgogICAgLnRleHQtd2FybmluZy04MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtd2FybmluZy04MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItd2FybmluZy04MDAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLXdhcm5pbmctODAwKTsKICAgIH0KCiAgICAudGV4dC13YXJuaW5nLTkwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS13YXJuaW5nLTkwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci13YXJuaW5nLTkwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtd2FybmluZy05MDApOwogICAgfQoKICAgIC50ZXh0LWVycm9yLTI1IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLWVycm9yLTI1KSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTI1IHsKICAgICAgLS12LWJvcmRlci1jb2xvcjogdmFyKC0tdi10aGVtZS1lcnJvci0yNSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItNTAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZXJyb3ItNTAgewogICAgICAtLXYtYm9yZGVyLWNvbG9yOiB2YXIoLS12LXRoZW1lLWVycm9yLTUwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci0xMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItMTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTEwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItMTAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci0yMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTIwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItMjAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci0zMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItMzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTMwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItMzAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci00MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItNDAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTQwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItNDAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci01MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTUwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItNTAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci02MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItNjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTYwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItNjAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci03MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItNzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTcwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItNzAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci04MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTgwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItODAwKTsKICAgIH0KCiAgICAudGV4dC1lcnJvci05MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtZXJyb3ItOTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTkwMCB7CiAgICAgIC0tdi1ib3JkZXItY29sb3I6IHZhcigtLXYtdGhlbWUtZXJyb3ItOTAwKTsKICAgIH0KCiAgICAub24tYmFja2dyb3VuZCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1iYWNrZ3JvdW5kKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc3VyZmFjZSB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc3VyZmFjZS1icmlnaHQgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc3VyZmFjZS1icmlnaHQpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zdXJmYWNlLWxpZ2h0IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UtbGlnaHQpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1wcmltYXJ5IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnkpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1wcmltYXJ5LWRhcmtlbi0xIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktZGFya2VuLTEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnkgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc2Vjb25kYXJ5KSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc2Vjb25kYXJ5LWRhcmtlbi0xIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS1kYXJrZW4tMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWVycm9yIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24taW5mbyB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1pbmZvKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc3VjY2VzcyB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24td2FybmluZyB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi13YXJuaW5nKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tcHJpbWFyeS0yNSB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1wcmltYXJ5LTI1KSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tcHJpbWFyeS01MCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1wcmltYXJ5LTUwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tcHJpbWFyeS0xMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tcHJpbWFyeS0xMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1wcmltYXJ5LTIwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1wcmltYXJ5LTIwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXByaW1hcnktMzAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktMzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tcHJpbWFyeS00MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tcHJpbWFyeS00MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1wcmltYXJ5LTUwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1wcmltYXJ5LTUwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXByaW1hcnktNjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktNjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tcHJpbWFyeS03MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tcHJpbWFyeS03MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1wcmltYXJ5LTgwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1wcmltYXJ5LTgwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXByaW1hcnktOTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXByaW1hcnktOTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc2Vjb25kYXJ5LTI1IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS0yNSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXNlY29uZGFyeS01MCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zZWNvbmRhcnktNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktMTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS0xMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktMjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS0yMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktMzAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktNDAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS00MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktNTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS01MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktNjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktNzAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS03MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktODAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS04MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zZWNvbmRhcnktOTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXNlY29uZGFyeS05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1ncmF5LTI1IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1ncmF5LTUwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1ncmF5LTEwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1ncmF5LTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWdyYXktMjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tZ3JheS0zMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZ3JheS0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1ncmF5LTQwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1ncmF5LTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWdyYXktNTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tZ3JheS02MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZ3JheS02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1ncmF5LTcwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1ncmF5LTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWdyYXktODAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWdyYXktODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tZ3JheS05MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZ3JheS05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zdWNjZXNzLTI1IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1Y2Nlc3MtMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zdWNjZXNzLTUwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1Y2Nlc3MtNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zdWNjZXNzLTEwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXN1Y2Nlc3MtMjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1Y2Nlc3MtMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc3VjY2Vzcy0zMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc3VjY2Vzcy0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zdWNjZXNzLTQwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXN1Y2Nlc3MtNTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1Y2Nlc3MtNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc3VjY2Vzcy02MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc3VjY2Vzcy02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1zdWNjZXNzLTcwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1zdWNjZXNzLTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXN1Y2Nlc3MtODAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXN1Y2Nlc3MtODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tc3VjY2Vzcy05MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tc3VjY2Vzcy05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi13YXJuaW5nLTI1IHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXdhcm5pbmctMjUpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi13YXJuaW5nLTUwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXdhcm5pbmctNTApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi13YXJuaW5nLTEwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi13YXJuaW5nLTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXdhcm5pbmctMjAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXdhcm5pbmctMjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24td2FybmluZy0zMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy0zMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi13YXJuaW5nLTQwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi13YXJuaW5nLTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXdhcm5pbmctNTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXdhcm5pbmctNTAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24td2FybmluZy02MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy02MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi13YXJuaW5nLTcwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi13YXJuaW5nLTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLXdhcm5pbmctODAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLXdhcm5pbmctODAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24td2FybmluZy05MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24td2FybmluZy05MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1lcnJvci0yNSB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1lcnJvci0yNSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWVycm9yLTUwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yLTUwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tZXJyb3ItMTAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yLTEwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWVycm9yLTIwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1lcnJvci0yMDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1lcnJvci0zMDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItMzAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tZXJyb3ItNDAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yLTQwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWVycm9yLTUwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1lcnJvci01MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1lcnJvci02MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItNjAwKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub24tZXJyb3ItNzAwIHsKICAgICAgY29sb3I6IHJnYih2YXIoLS12LXRoZW1lLW9uLWVycm9yLTcwMCkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9uLWVycm9yLTgwMCB7CiAgICAgIGNvbG9yOiByZ2IodmFyKC0tdi10aGVtZS1vbi1lcnJvci04MDApKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vbi1lcnJvci05MDAgewogICAgICBjb2xvcjogcmdiKHZhcigtLXYtdGhlbWUtb24tZXJyb3ItOTAwKSkgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIDxzdHlsZT4KICAgICosCiAgICA6OmJhY2tkcm9wLAogICAgOmFmdGVyLAogICAgOmJlZm9yZSB7CiAgICAgIC0tdHctYm9yZGVyLXNwYWNpbmcteDogMDsKICAgICAgLS10dy1ib3JkZXItc3BhY2luZy15OiAwOwogICAgICAtLXR3LXRyYW5zbGF0ZS14OiAwOwogICAgICAtLXR3LXRyYW5zbGF0ZS15OiAwOwogICAgICAtLXR3LXJvdGF0ZTogMDsKICAgICAgLS10dy1za2V3LXg6IDA7CiAgICAgIC0tdHctc2tldy15OiAwOwogICAgICAtLXR3LXNjYWxlLXg6IDE7CiAgICAgIC0tdHctc2NhbGUteTogMTsKICAgICAgLS10dy1wYW4teDogOwogICAgICAtLXR3LXBhbi15OiA7CiAgICAgIC0tdHctcGluY2gtem9vbTogOwogICAgICAtLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6IHByb3hpbWl0eTsKICAgICAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiA7CiAgICAgIC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA7CiAgICAgIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246IDsKICAgICAgLS10dy1vcmRpbmFsOiA7CiAgICAgIC0tdHctc2xhc2hlZC16ZXJvOiA7CiAgICAgIC0tdHctbnVtZXJpYy1maWd1cmU6IDsKICAgICAgLS10dy1udW1lcmljLXNwYWNpbmc6IDsKICAgICAgLS10dy1udW1lcmljLWZyYWN0aW9uOiA7CiAgICAgIC0tdHctcmluZy1pbnNldDogOwogICAgICAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7CiAgICAgIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7CiAgICAgIC0tdHctcmluZy1jb2xvcjogIzNiODJmNjgwOwogICAgICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwOwogICAgICAtLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7CiAgICAgIC0tdHctc2hhZG93OiAwIDAgIzAwMDA7CiAgICAgIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDsKICAgICAgLS10dy1ibHVyOiA7CiAgICAgIC0tdHctYnJpZ2h0bmVzczogOwogICAgICAtLXR3LWNvbnRyYXN0OiA7CiAgICAgIC0tdHctZ3JheXNjYWxlOiA7CiAgICAgIC0tdHctaHVlLXJvdGF0ZTogOwogICAgICAtLXR3LWludmVydDogOwogICAgICAtLXR3LXNhdHVyYXRlOiA7CiAgICAgIC0tdHctc2VwaWE6IDsKICAgICAgLS10dy1kcm9wLXNoYWRvdzogOwogICAgICAtLXR3LWJhY2tkcm9wLWJsdXI6IDsKICAgICAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiA7CiAgICAgIC0tdHctYmFja2Ryb3AtY29udHJhc3Q6IDsKICAgICAgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6IDsKICAgICAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiA7CiAgICAgIC0tdHctYmFja2Ryb3AtaW52ZXJ0OiA7CiAgICAgIC0tdHctYmFja2Ryb3Atb3BhY2l0eTogOwogICAgICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiA7CiAgICAgIC0tdHctYmFja2Ryb3Atc2VwaWE6IDsKICAgICAgLS10dy1jb250YWluLXNpemU6IDsKICAgICAgLS10dy1jb250YWluLWxheW91dDogOwogICAgICAtLXR3LWNvbnRhaW4tcGFpbnQ6IDsKICAgICAgLS10dy1jb250YWluLXN0eWxlOiA7CiAgICB9CgogICAgLyohIHRhaWx3aW5kY3NzIHYzLjQuMTcgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tKi8KICAgICosCiAgICA6YWZ0ZXIsCiAgICA6YmVmb3JlIHsKICAgICAgYm9yZGVyOiAwIHNvbGlkICNlYWVjZjA7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CgogICAgOmFmdGVyLAogICAgOmJlZm9yZSB7CiAgICAgIC0tdHctY29udGVudDogIiI7CiAgICB9CgogICAgOmhvc3QsCiAgICBodG1sIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOwogICAgICBmb250LWZhbWlseTogdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmLCBBcHBsZSBDb2xvciBFbW9qaSwKICAgICAgICBTZWdvZSBVSSBFbW9qaSwgU2Vnb2UgVUkgU3ltYm9sLCBOb3RvIENvbG9yIEVtb2ppOwogICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsKICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IG5vcm1hbDsKICAgICAgLW1vei10YWItc2l6ZTogNDsKICAgICAgdGFiLXNpemU6IDQ7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgYm9keSB7CiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICBtYXJnaW46IDA7CiAgICB9CgogICAgaHIgewogICAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7CiAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICBoZWlnaHQ6IDA7CiAgICB9CgogICAgYWJicjp3aGVyZShbdGl0bGVdKSB7CiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOwogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7CiAgICB9CgogICAgaDEsCiAgICBoMiwKICAgIGgzLAogICAgaDQsCiAgICBoNSwKICAgIGg2IHsKICAgICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKICAgIH0KCiAgICBhIHsKICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsKICAgIH0KCiAgICBiLAogICAgc3Ryb25nIHsKICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjsKICAgIH0KCiAgICBjb2RlLAogICAga2JkLAogICAgcHJlLAogICAgc2FtcCB7CiAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywKICAgICAgICBMaWJlcmF0aW9uIE1vbm8sIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7CiAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsOwogICAgICBmb250LXNpemU6IDFlbTsKICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IG5vcm1hbDsKICAgIH0KCiAgICBzbWFsbCB7CiAgICAgIGZvbnQtc2l6ZTogODAlOwogICAgfQoKICAgIHN1YiwKICAgIHN1cCB7CiAgICAgIGZvbnQtc2l6ZTogNzUlOwogICAgICBsaW5lLWhlaWdodDogMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDsKICAgIH0KCiAgICBzdWIgewogICAgICBib3R0b206IC0wLjI1ZW07CiAgICB9CgogICAgc3VwIHsKICAgICAgdG9wOiAtMC41ZW07CiAgICB9CgogICAgdGFibGUgewogICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7CiAgICAgIHRleHQtaW5kZW50OiAwOwogICAgfQoKICAgIGJ1dHRvbiwKICAgIGlucHV0LAogICAgb3B0Z3JvdXAsCiAgICBzZWxlY3QsCiAgICB0ZXh0YXJlYSB7CiAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OwogICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBpbmhlcml0OwogICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgYnV0dG9uLAogICAgc2VsZWN0IHsKICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICB9CgogICAgYnV0dG9uLAogICAgaW5wdXQ6d2hlcmUoW3R5cGU9ImJ1dHRvbiJdKSwKICAgIGlucHV0OndoZXJlKFt0eXBlPSJyZXNldCJdKSwKICAgIGlucHV0OndoZXJlKFt0eXBlPSJzdWJtaXQiXSkgewogICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICAgIH0KCiAgICA6LW1vei1mb2N1c3JpbmcgewogICAgICBvdXRsaW5lOiBhdXRvOwogICAgfQoKICAgIDotbW96LXVpLWludmFsaWQgewogICAgICBib3gtc2hhZG93OiBub25lOwogICAgfQoKICAgIHByb2dyZXNzIHsKICAgICAgdmVydGljYWwtYWxpZ246IGluaXRpYWw7CiAgICB9CgogICAgOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLAogICAgOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgfQoKICAgIFt0eXBlPSJzZWFyY2giXSB7CiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOwogICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgIH0KCiAgICA6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24gewogICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICB9CgogICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7CiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOwogICAgICBmb250OiBpbmhlcml0OwogICAgfQoKICAgIHN1bW1hcnkgewogICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07CiAgICB9CgogICAgYmxvY2txdW90ZSwKICAgIGRkLAogICAgZGwsCiAgICBmaWd1cmUsCiAgICBoMSwKICAgIGgyLAogICAgaDMsCiAgICBoNCwKICAgIGg1LAogICAgaDYsCiAgICBociwKICAgIHAsCiAgICBwcmUgewogICAgICBtYXJnaW46IDA7CiAgICB9CgogICAgZmllbGRzZXQgewogICAgICBtYXJnaW46IDA7CiAgICB9CgogICAgZmllbGRzZXQsCiAgICBsZWdlbmQgewogICAgICBwYWRkaW5nOiAwOwogICAgfQoKICAgIG1lbnUsCiAgICBvbCwKICAgIHVsIHsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQoKICAgIGRpYWxvZyB7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgdGV4dGFyZWEgewogICAgICByZXNpemU6IHZlcnRpY2FsOwogICAgfQoKICAgIGlucHV0OjpwbGFjZWhvbGRlciwKICAgIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7CiAgICAgIGNvbG9yOiAjOThhMmIzOwogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIFtyb2xlPSJidXR0b24iXSwKICAgIGJ1dHRvbiB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICA6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgYXVkaW8sCiAgICBjYW52YXMsCiAgICBlbWJlZCwKICAgIGlmcmFtZSwKICAgIGltZywKICAgIG9iamVjdCwKICAgIHN2ZywKICAgIHZpZGVvIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB9CgogICAgaW1nLAogICAgdmlkZW8gewogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KCiAgICBbaGlkZGVuXTp3aGVyZSg6bm90KFtoaWRkZW49InVudGlsLWZvdW5kIl0pKSB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLmNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkgewogICAgICAuY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDY0MHB4OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgIC5jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogNzY4cHg7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgIC5jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogMTAyNHB4OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkgewogICAgICAuY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyODBweDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiAxNTM2cHgpIHsKICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxNTM2cHg7CiAgICAgIH0KICAgIH0KCiAgICAucG9pbnRlci1ldmVudHMtbm9uZSB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC5cIXZpc2libGUgewogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnZpc2libGUgewogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgfQoKICAgIC5maXhlZCB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIH0KCiAgICAuXCFhYnNvbHV0ZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5hYnNvbHV0ZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIH0KCiAgICAuXCFyZWxhdGl2ZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yZWxhdGl2ZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAuc3RpY2t5IHsKICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgIH0KCiAgICAuLXRvcC0xIHsKICAgICAgdG9wOiAtMC4yNXJlbTsKICAgIH0KCiAgICAuYm90dG9tLTAgewogICAgICBib3R0b206IDA7CiAgICB9CgogICAgLmJvdHRvbS0yIHsKICAgICAgYm90dG9tOiAwLjVyZW07CiAgICB9CgogICAgLmJvdHRvbS1cWy0ycHhcXSB7CiAgICAgIGJvdHRvbTogLTJweDsKICAgIH0KCiAgICAuYm90dG9tLVxbMzBweFxdIHsKICAgICAgYm90dG9tOiAzMHB4OwogICAgfQoKICAgIC5sZWZ0LTAgewogICAgICBsZWZ0OiAwOwogICAgfQoKICAgIC5sZWZ0LTIgewogICAgICBsZWZ0OiAwLjVyZW07CiAgICB9CgogICAgLmxlZnQtXFstMTJyZW1cXSB7CiAgICAgIGxlZnQ6IC0xMnJlbTsKICAgIH0KCiAgICAucmlnaHQtMCB7CiAgICAgIHJpZ2h0OiAwOwogICAgfQoKICAgIC5yaWdodC00IHsKICAgICAgcmlnaHQ6IDFyZW07CiAgICB9CgogICAgLnJpZ2h0LTYgewogICAgICByaWdodDogMS41cmVtOwogICAgfQoKICAgIC5yaWdodC1cWy0xMHJlbVxdIHsKICAgICAgcmlnaHQ6IC0xMHJlbTsKICAgIH0KCiAgICAucmlnaHQtXFstNHB4XF0gewogICAgICByaWdodDogLTRweDsKICAgIH0KCiAgICAucmlnaHQtXFstNjBweFxdIHsKICAgICAgcmlnaHQ6IC02MHB4OwogICAgfQoKICAgIC5yaWdodC1cWzJyZW1cXSB7CiAgICAgIHJpZ2h0OiAycmVtOwogICAgfQoKICAgIC5yaWdodC1cWzQwXCVcXSB7CiAgICAgIHJpZ2h0OiA0MCU7CiAgICB9CgogICAgLnJpZ2h0LVxbNDRcJVxdIHsKICAgICAgcmlnaHQ6IDQ0JTsKICAgIH0KCiAgICAudG9wLTAgewogICAgICB0b3A6IDA7CiAgICB9CgogICAgLnRvcC0xNiB7CiAgICAgIHRvcDogNHJlbTsKICAgIH0KCiAgICAudG9wLTIgewogICAgICB0b3A6IDAuNXJlbTsKICAgIH0KCiAgICAudG9wLTI0IHsKICAgICAgdG9wOiA2cmVtOwogICAgfQoKICAgIC50b3AtMyB7CiAgICAgIHRvcDogMC43NXJlbTsKICAgIH0KCiAgICAudG9wLTQgewogICAgICB0b3A6IDFyZW07CiAgICB9CgogICAgLnRvcC1cWy0zcmVtXF0gewogICAgICB0b3A6IC0zcmVtOwogICAgfQoKICAgIC50b3AtXFszN1wlXF0gewogICAgICB0b3A6IDM3JTsKICAgIH0KCiAgICAudG9wLVxbNDBcJVxdIHsKICAgICAgdG9wOiA0MCU7CiAgICB9CgogICAgLlwhei0zMCB7CiAgICAgIHotaW5kZXg6IDMwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhei01MCB7CiAgICAgIHotaW5kZXg6IDUwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhei1cWzk5OTk5OVxdIHsKICAgICAgei1pbmRleDogOTk5OTk5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnotMTAgewogICAgICB6LWluZGV4OiAxMDsKICAgIH0KCiAgICAuei01MCB7CiAgICAgIHotaW5kZXg6IDUwOwogICAgfQoKICAgIC56LVxbLTFcXSB7CiAgICAgIHotaW5kZXg6IDA7CiAgICB9CgogICAgLnotXFs5OTlcXSB7CiAgICAgIHotaW5kZXg6IDk5OTsKICAgIH0KCiAgICAuei1cWzk5XF0gewogICAgICB6LWluZGV4OiA5OTsKICAgIH0KCiAgICAuXCFvcmRlci0xIHsKICAgICAgb3JkZXI6IDEgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItMSB7CiAgICAgIG9yZGVyOiAxOwogICAgfQoKICAgIC5vcmRlci0yIHsKICAgICAgb3JkZXI6IDI7CiAgICB9CgogICAgLm9yZGVyLWZpcnN0IHsKICAgICAgb3JkZXI6IC05OTk5OwogICAgfQoKICAgIC5vcmRlci1sYXN0IHsKICAgICAgb3JkZXI6IDk5OTk7CiAgICB9CgogICAgLmNvbC1zcGFuLTEgewogICAgICBncmlkLWNvbHVtbjogc3BhbiAxIC8gc3BhbiAxOwogICAgfQoKICAgIC5jb2wtc3Bhbi0yIHsKICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjsKICAgIH0KCiAgICAuZmxvYXQtcmlnaHQgewogICAgICBmbG9hdDogcmlnaHQ7CiAgICB9CgogICAgLmZsb2F0LWxlZnQgewogICAgICBmbG9hdDogbGVmdDsKICAgIH0KCiAgICAuXCFtLTAgewogICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAubS0xMCB7CiAgICAgIG1hcmdpbjogMi41cmVtOwogICAgfQoKICAgIC5tLTQgewogICAgICBtYXJnaW46IDFyZW07CiAgICB9CgogICAgLm0tNiB7CiAgICAgIG1hcmdpbjogMS41cmVtOwogICAgfQoKICAgIC5cIS1teS0zIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTAuNzVyZW0gIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTAuNzVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFteC1hdXRvIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLi1teC0xXC41IHsKICAgICAgbWFyZ2luLWxlZnQ6IC0wLjM3NXJlbTsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMC4zNzVyZW07CiAgICB9CgogICAgLi1teC00IHsKICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtOwogICAgfQoKICAgIC5teC0wIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KCiAgICAubXgtMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07CiAgICB9CgogICAgLm14LTFcLjUgewogICAgICBtYXJnaW4tbGVmdDogMC4zNzVyZW07CiAgICAgIG1hcmdpbi1yaWdodDogMC4zNzVyZW07CiAgICB9CgogICAgLm14LTIgewogICAgICBtYXJnaW4tbGVmdDogMC41cmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsKICAgIH0KCiAgICAubXgtMyB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwLjc1cmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07CiAgICB9CgogICAgLm14LTQgewogICAgICBtYXJnaW4tbGVmdDogMXJlbTsKICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOwogICAgfQoKICAgIC5teC01IHsKICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07CiAgICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTsKICAgIH0KCiAgICAubXgtYXV0byB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CgogICAgLm15LTEgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOwogICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtOwogICAgfQoKICAgIC5teS0xXC41IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07CiAgICAgIG1hcmdpbi10b3A6IDAuMzc1cmVtOwogICAgfQoKICAgIC5teS0xMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICAgIG1hcmdpbi10b3A6IDNyZW07CiAgICB9CgogICAgLm15LTE2IHsKICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTsKICAgICAgbWFyZ2luLXRvcDogNHJlbTsKICAgIH0KCiAgICAubXktMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsKICAgICAgbWFyZ2luLXRvcDogMC41cmVtOwogICAgfQoKICAgIC5teS0yNCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDZyZW07CiAgICAgIG1hcmdpbi10b3A6IDZyZW07CiAgICB9CgogICAgLm15LTMgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOwogICAgfQoKICAgIC5teS00IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgbWFyZ2luLXRvcDogMXJlbTsKICAgIH0KCiAgICAubXktNSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07CiAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07CiAgICB9CgogICAgLm15LTYgewogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTsKICAgIH0KCiAgICAubXktOCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07CiAgICAgIG1hcmdpbi10b3A6IDJyZW07CiAgICB9CgogICAgLlwhbWwtMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhbWwtNiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFtdC0wIHsKICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIW10LTFcLjUgewogICAgICBtYXJnaW4tdG9wOiAwLjM3NXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIW10LTJcLjUgewogICAgICBtYXJnaW4tdG9wOiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIW10LTUgewogICAgICBtYXJnaW4tdG9wOiAxLjI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTAgewogICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQoKICAgIC5tYi0wXC41IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07CiAgICB9CgogICAgLm1iLTEgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOwogICAgfQoKICAgIC5tYi0xXC41IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07CiAgICB9CgogICAgLm1iLTEwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogICAgfQoKICAgIC5tYi0xMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICB9CgogICAgLm1iLTIgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICB9CgogICAgLm1iLTJcLjUgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTsKICAgIH0KCiAgICAubWItMjAgewogICAgICBtYXJnaW4tYm90dG9tOiA1cmVtOwogICAgfQoKICAgIC5tYi0yNCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDZyZW07CiAgICB9CgogICAgLm1iLTMgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogICAgfQoKICAgIC5tYi00IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgIH0KCiAgICAubWItNSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07CiAgICB9CgogICAgLm1iLTYgewogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICB9CgogICAgLm1iLTggewogICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgfQoKICAgIC5tbC0xIHsKICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07CiAgICB9CgogICAgLm1sLTFcLjUgewogICAgICBtYXJnaW4tbGVmdDogMC4zNzVyZW07CiAgICB9CgogICAgLm1sLTIgewogICAgICBtYXJnaW4tbGVmdDogMC41cmVtOwogICAgfQoKICAgIC5tbC0zIHsKICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07CiAgICB9CgogICAgLm1sLTNcLjUgewogICAgICBtYXJnaW4tbGVmdDogMC44NzVyZW07CiAgICB9CgogICAgLm1sLTQgewogICAgICBtYXJnaW4tbGVmdDogMXJlbTsKICAgIH0KCiAgICAubWwtNSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOwogICAgfQoKICAgIC5tci0xIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOwogICAgfQoKICAgIC5tci0yIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07CiAgICB9CgogICAgLm1yLTJcLjUgewogICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtOwogICAgfQoKICAgIC5tci0zIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtOwogICAgfQoKICAgIC5tci00IHsKICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOwogICAgfQoKICAgIC5tdC0wIHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KCiAgICAubXQtMFwuNSB7CiAgICAgIG1hcmdpbi10b3A6IDAuMTI1cmVtOwogICAgfQoKICAgIC5tdC0xIHsKICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTsKICAgIH0KCiAgICAubXQtMVwuNSB7CiAgICAgIG1hcmdpbi10b3A6IDAuMzc1cmVtOwogICAgfQoKICAgIC5tdC0xMCB7CiAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsKICAgIH0KCiAgICAubXQtMTIgewogICAgICBtYXJnaW4tdG9wOiAzcmVtOwogICAgfQoKICAgIC5tdC0xNiB7CiAgICAgIG1hcmdpbi10b3A6IDRyZW07CiAgICB9CgogICAgLm10LTIgewogICAgICBtYXJnaW4tdG9wOiAwLjVyZW07CiAgICB9CgogICAgLm10LTJcLjUgewogICAgICBtYXJnaW4tdG9wOiAwLjYyNXJlbTsKICAgIH0KCiAgICAubXQtMjAgewogICAgICBtYXJnaW4tdG9wOiA1cmVtOwogICAgfQoKICAgIC5tdC0yOCB7CiAgICAgIG1hcmdpbi10b3A6IDdyZW07CiAgICB9CgogICAgLm10LTMgewogICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOwogICAgfQoKICAgIC5tdC00IHsKICAgICAgbWFyZ2luLXRvcDogMXJlbTsKICAgIH0KCiAgICAubXQtNSB7CiAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07CiAgICB9CgogICAgLm10LTYgewogICAgICBtYXJnaW4tdG9wOiAxLjVyZW07CiAgICB9CgogICAgLm10LTggewogICAgICBtYXJnaW4tdG9wOiAycmVtOwogICAgfQoKICAgIC5tdC1cWy0ycmVtXF0gewogICAgICBtYXJnaW4tdG9wOiAtMnJlbTsKICAgIH0KCiAgICAuXCFibG9jayB7CiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJsb2NrIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgogICAgLmlubGluZS1ibG9jayB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIH0KCiAgICAuXCFmbGV4IHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgIH0KCiAgICAuaW5saW5lLWZsZXggewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIH0KCiAgICAuZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB9CgogICAgLlwhaGlkZGVuIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5cIWgtMVwuNSB7CiAgICAgIGhlaWdodDogMC4zNzVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFoLTExIHsKICAgICAgaGVpZ2h0OiAyLjc1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhaC0zMiB7CiAgICAgIGhlaWdodDogOHJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWgtOSB7CiAgICAgIGhlaWdodDogMi4yNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWgtXFs1NnB4XF0gewogICAgICBoZWlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFoLWZ1bGwgewogICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaC0wXC41IHsKICAgICAgaGVpZ2h0OiAwLjEyNXJlbTsKICAgIH0KCiAgICAuaC0xIHsKICAgICAgaGVpZ2h0OiAwLjI1cmVtOwogICAgfQoKICAgIC5oLTFcLjUgewogICAgICBoZWlnaHQ6IDAuMzc1cmVtOwogICAgfQoKICAgIC5oLTEwIHsKICAgICAgaGVpZ2h0OiAyLjVyZW07CiAgICB9CgogICAgLmgtMTEgewogICAgICBoZWlnaHQ6IDIuNzVyZW07CiAgICB9CgogICAgLmgtNDggewogICAgICBoZWlnaHQ6IDEycmVtOwogICAgfQoKICAgIC5oLTUgewogICAgICBoZWlnaHQ6IDEuMjVyZW07CiAgICB9CgogICAgLmgtNTIgewogICAgICBoZWlnaHQ6IDEzcmVtOwogICAgfQoKICAgIC5oLTYgewogICAgICBoZWlnaHQ6IDEuNXJlbTsKICAgIH0KCiAgICAuaC02MCB7CiAgICAgIGhlaWdodDogMTVyZW07CiAgICB9CgogICAgLmgtOCB7CiAgICAgIGhlaWdodDogMnJlbTsKICAgIH0KCiAgICAuaC1cWzEwMFwlXF0gewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CgogICAgLmgtXFsxMDB2aFxdIHsKICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuaC1cWzEwNHB4XF0gewogICAgICBoZWlnaHQ6IDEwNHB4OwogICAgfQoKICAgIC5oLVxbMTEwcHhcXSB7CiAgICAgIGhlaWdodDogMTEwcHg7CiAgICB9CgogICAgLmgtXFsxMjBweFxdIHsKICAgICAgaGVpZ2h0OiAxMjBweDsKICAgIH0KCiAgICAuaC1cWzEyOHB4XF0gewogICAgICBoZWlnaHQ6IDEyOHB4OwogICAgfQoKICAgIC5oLVxbMTU3cHhcXSB7CiAgICAgIGhlaWdodDogMTU3cHg7CiAgICB9CgogICAgLmgtXFsxODlweFxdIHsKICAgICAgaGVpZ2h0OiAxODlweDsKICAgIH0KCiAgICAuaC1cWzFweFxdIHsKICAgICAgaGVpZ2h0OiAxcHg7CiAgICB9CgogICAgLmgtXFsyMDBweFxdIHsKICAgICAgaGVpZ2h0OiAyMDBweDsKICAgIH0KCiAgICAuaC1cWzIxNHB4XF0gewogICAgICBoZWlnaHQ6IDIxNHB4OwogICAgfQoKICAgIC5oLVxbMjE2cHhcXSB7CiAgICAgIGhlaWdodDogMjE2cHg7CiAgICB9CgogICAgLmgtXFsyNHB4XF0gewogICAgICBoZWlnaHQ6IDI0cHg7CiAgICB9CgogICAgLmgtXFsyNXB4XF0gewogICAgICBoZWlnaHQ6IDI1cHg7CiAgICB9CgogICAgLmgtXFszMjBweFxdIHsKICAgICAgaGVpZ2h0OiAzMjBweDsKICAgIH0KCiAgICAuaC1cWzM1MHB4XF0gewogICAgICBoZWlnaHQ6IDM1MHB4OwogICAgfQoKICAgIC5oLVxbMzc1cHhcXSB7CiAgICAgIGhlaWdodDogMzc1cHg7CiAgICB9CgogICAgLmgtXFs0MDBweFxdIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAuaC1cWzQwcHhcXSB7CiAgICAgIGhlaWdodDogNDBweDsKICAgIH0KCiAgICAuaC1cWzQ1cHhcXSB7CiAgICAgIGhlaWdodDogNDVweDsKICAgIH0KCiAgICAuaC1cWzQ4cHhcXSB7CiAgICAgIGhlaWdodDogNDhweDsKICAgIH0KCiAgICAuaC1cWzUwcHhcXSB7CiAgICAgIGhlaWdodDogNTBweDsKICAgIH0KCiAgICAuaC1cWzc0cHhcXSB7CiAgICAgIGhlaWdodDogNzRweDsKICAgIH0KCiAgICAuaC1cWzgwcHhcXSB7CiAgICAgIGhlaWdodDogODBweDsKICAgIH0KCiAgICAuaC1cWzk2cHhcXSB7CiAgICAgIGhlaWdodDogOTZweDsKICAgIH0KCiAgICAuaC1maXQgewogICAgICBoZWlnaHQ6IGZpdC1jb250ZW50OwogICAgfQoKICAgIC5oLWZ1bGwgewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CgogICAgLm1heC1oLTAgewogICAgICBtYXgtaGVpZ2h0OiAwOwogICAgfQoKICAgIC5tYXgtaC02NCB7CiAgICAgIG1heC1oZWlnaHQ6IDE2cmVtOwogICAgfQoKICAgIC5tYXgtaC1cWzI4MHB4XF0gewogICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgIH0KCiAgICAubWF4LWgtXFs4NXZoXF0gewogICAgICBtYXgtaGVpZ2h0OiA4NXZoOwogICAgfQoKICAgIC5tYXgtaC1cWzkxdmhcXSB7CiAgICAgIG1heC1oZWlnaHQ6IDkxdmg7CiAgICB9CgogICAgLlwhbWluLWgtZnVsbCB7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAubWluLWgtMVwuNSB7CiAgICAgIG1pbi1oZWlnaHQ6IDAuMzc1cmVtOwogICAgfQoKICAgIC5taW4taC00NCB7CiAgICAgIG1pbi1oZWlnaHQ6IDExcmVtOwogICAgfQoKICAgIC5taW4taC1cWzM1MHB4XF0gewogICAgICBtaW4taGVpZ2h0OiAzNTBweDsKICAgIH0KCiAgICAubWluLWgtXFs1MDBweFxdIHsKICAgICAgbWluLWhlaWdodDogNTAwcHg7CiAgICB9CgogICAgLm1pbi1oLWZpdCB7CiAgICAgIG1pbi1oZWlnaHQ6IGZpdC1jb250ZW50OwogICAgfQoKICAgIC5taW4taC1mdWxsIHsKICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgIH0KCiAgICAuXCF3LTFcLjUgewogICAgICB3aWR0aDogMC4zNzVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCF3LTkgewogICAgICB3aWR0aDogMi4yNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXctXFsyMHB4XF0gewogICAgICB3aWR0aDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXctXFs1NnB4XF0gewogICAgICB3aWR0aDogNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXctZnVsbCB7CiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnctMSB7CiAgICAgIHdpZHRoOiAwLjI1cmVtOwogICAgfQoKICAgIC53LTFcLjUgewogICAgICB3aWR0aDogMC4zNzVyZW07CiAgICB9CgogICAgLnctMVwvMiB7CiAgICAgIHdpZHRoOiA1MCU7CiAgICB9CgogICAgLnctMVwvMyB7CiAgICAgIHdpZHRoOiAzMy4zMzMzMzMlOwogICAgfQoKICAgIC53LTFcLzQgewogICAgICB3aWR0aDogMjUlOwogICAgfQoKICAgIC53LTEwIHsKICAgICAgd2lkdGg6IDIuNXJlbTsKICAgIH0KCiAgICAudy0xMSB7CiAgICAgIHdpZHRoOiAyLjc1cmVtOwogICAgfQoKICAgIC53LTE0IHsKICAgICAgd2lkdGg6IDMuNXJlbTsKICAgIH0KCiAgICAudy0yNCB7CiAgICAgIHdpZHRoOiA2cmVtOwogICAgfQoKICAgIC53LTNcLzUgewogICAgICB3aWR0aDogNjAlOwogICAgfQoKICAgIC53LTU2IHsKICAgICAgd2lkdGg6IDE0cmVtOwogICAgfQoKICAgIC53LTYgewogICAgICB3aWR0aDogMS41cmVtOwogICAgfQoKICAgIC53LTggewogICAgICB3aWR0aDogMnJlbTsKICAgIH0KCiAgICAudy04MCB7CiAgICAgIHdpZHRoOiAyMHJlbTsKICAgIH0KCiAgICAudy05NiB7CiAgICAgIHdpZHRoOiAyNHJlbTsKICAgIH0KCiAgICAudy1cWzEwMHZ3XF0gewogICAgICB3aWR0aDogMTAwdnc7CiAgICB9CgogICAgLnctXFsxMTVweFxdIHsKICAgICAgd2lkdGg6IDExNXB4OwogICAgfQoKICAgIC53LVxbMTIwcHhcXSB7CiAgICAgIHdpZHRoOiAxMjBweDsKICAgIH0KCiAgICAudy1cWzEyNHB4XF0gewogICAgICB3aWR0aDogMTI0cHg7CiAgICB9CgogICAgLnctXFsxMjhweFxdIHsKICAgICAgd2lkdGg6IDEyOHB4OwogICAgfQoKICAgIC53LVxbMTQwcHhcXSB7CiAgICAgIHdpZHRoOiAxNDBweDsKICAgIH0KCiAgICAudy1cWzE0MXB4XF0gewogICAgICB3aWR0aDogMTQxcHg7CiAgICB9CgogICAgLnctXFsxNTNweFxdIHsKICAgICAgd2lkdGg6IDE1M3B4OwogICAgfQoKICAgIC53LVxbMTU0cHhcXSB7CiAgICAgIHdpZHRoOiAxNTRweDsKICAgIH0KCiAgICAudy1cWzE1N3B4XF0gewogICAgICB3aWR0aDogMTU3cHg7CiAgICB9CgogICAgLnctXFsxNjBweFxdIHsKICAgICAgd2lkdGg6IDE2MHB4OwogICAgfQoKICAgIC53LVxbMTgwcHhcXSB7CiAgICAgIHdpZHRoOiAxODBweDsKICAgIH0KCiAgICAudy1cWzE4OXB4XF0gewogICAgICB3aWR0aDogMTg5cHg7CiAgICB9CgogICAgLnctXFsyMDBweFxdIHsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgfQoKICAgIC53LVxbMjA0cHhcXSB7CiAgICAgIHdpZHRoOiAyMDRweDsKICAgIH0KCiAgICAudy1cWzIwcHhcXSB7CiAgICAgIHdpZHRoOiAyMHB4OwogICAgfQoKICAgIC53LVxbMjQwcHhcXSB7CiAgICAgIHdpZHRoOiAyNDBweDsKICAgIH0KCiAgICAudy1cWzI0cHhcXSB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgfQoKICAgIC53LVxbMjYwcHhcXSB7CiAgICAgIHdpZHRoOiAyNjBweDsKICAgIH0KCiAgICAudy1cWzI3MnB4XF0gewogICAgICB3aWR0aDogMjcycHg7CiAgICB9CgogICAgLnctXFszMDBweFxdIHsKICAgICAgd2lkdGg6IDMwMHB4OwogICAgfQoKICAgIC53LVxbMzE3cHhcXSB7CiAgICAgIHdpZHRoOiAzMTdweDsKICAgIH0KCiAgICAudy1cWzMyMHB4XF0gewogICAgICB3aWR0aDogMzIwcHg7CiAgICB9CgogICAgLnctXFszNTBweFxdIHsKICAgICAgd2lkdGg6IDM1MHB4OwogICAgfQoKICAgIC53LVxbMzY1cHhcXSB7CiAgICAgIHdpZHRoOiAzNjVweDsKICAgIH0KCiAgICAudy1cWzM3NnB4XF0gewogICAgICB3aWR0aDogMzc2cHg7CiAgICB9CgogICAgLnctXFs0MDBweFxdIHsKICAgICAgd2lkdGg6IDQwMHB4OwogICAgfQoKICAgIC53LVxbNDBweFxdIHsKICAgICAgd2lkdGg6IDQwcHg7CiAgICB9CgogICAgLnctXFs3MFwlXF0gewogICAgICB3aWR0aDogNzAlOwogICAgfQoKICAgIC53LVxbNzRweFxdIHsKICAgICAgd2lkdGg6IDc0cHg7CiAgICB9CgogICAgLnctXFs4MHB4XF0gewogICAgICB3aWR0aDogODBweDsKICAgIH0KCiAgICAudy1cWzg4cHhcXSB7CiAgICAgIHdpZHRoOiA4OHB4OwogICAgfQoKICAgIC53LVxbOTZweFxdIHsKICAgICAgd2lkdGg6IDk2cHg7CiAgICB9CgogICAgLnctXFtjYWxjXCgxMDBcJS0ycmVtXClcXSB7CiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAycmVtKTsKICAgIH0KCiAgICAudy1maXQgewogICAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICB9CgogICAgLnctZnVsbCB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIC5cIW1pbi13LVxbMzcwcHhcXSB7CiAgICAgIG1pbi13aWR0aDogMzcwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFtaW4tdy1cWzY2cmVtXF0gewogICAgICBtaW4td2lkdGg6IDY2cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhbWluLXctZml0IHsKICAgICAgbWluLXdpZHRoOiBmaXQtY29udGVudCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5taW4tdy0wIHsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5taW4tdy0xMCB7CiAgICAgIG1pbi13aWR0aDogMi41cmVtOwogICAgfQoKICAgIC5taW4tdy1cWzIyNHB4XF0gewogICAgICBtaW4td2lkdGg6IDIyNHB4OwogICAgfQoKICAgIC5taW4tdy1cWzI4NXB4XF0gewogICAgICBtaW4td2lkdGg6IDI4NXB4OwogICAgfQoKICAgIC5taW4tdy1cWzMwMHB4XF0gewogICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgfQoKICAgIC5taW4tdy1cWzM1NXB4XF0gewogICAgICBtaW4td2lkdGg6IDM1NXB4OwogICAgfQoKICAgIC5taW4tdy1maXQgewogICAgICBtaW4td2lkdGg6IGZpdC1jb250ZW50OwogICAgfQoKICAgIC5cIW1heC13LVxbNjZyZW1cXSB7CiAgICAgIG1heC13aWR0aDogNjZyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAubWF4LXctMTAgewogICAgICBtYXgtd2lkdGg6IDIuNXJlbTsKICAgIH0KCiAgICAubWF4LXctNDAgewogICAgICBtYXgtd2lkdGg6IDEwcmVtOwogICAgfQoKICAgIC5tYXgtdy00OCB7CiAgICAgIG1heC13aWR0aDogMTJyZW07CiAgICB9CgogICAgLm1heC13LTUyIHsKICAgICAgbWF4LXdpZHRoOiAxM3JlbTsKICAgIH0KCiAgICAubWF4LXctODAgewogICAgICBtYXgtd2lkdGg6IDIwcmVtOwogICAgfQoKICAgIC5tYXgtdy1cWzEwMDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiAxMDAwcHg7CiAgICB9CgogICAgLm1heC13LVxbMTIwMHB4XF0gewogICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgIH0KCiAgICAubWF4LXctXFsxMjgwcHhcXSB7CiAgICAgIG1heC13aWR0aDogMTI4MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzEzMTJweFxdIHsKICAgICAgbWF4LXdpZHRoOiAxMzEycHg7CiAgICB9CgogICAgLm1heC13LVxbMTQwMHB4XF0gewogICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgIH0KCiAgICAubWF4LXctXFsxNDQwcHhcXSB7CiAgICAgIG1heC13aWR0aDogMTQ0MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzE1MHB4XF0gewogICAgICBtYXgtd2lkdGg6IDE1MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzE5OXB4XF0gewogICAgICBtYXgtd2lkdGg6IDE5OXB4OwogICAgfQoKICAgIC5tYXgtdy1cWzIxNnB4XF0gewogICAgICBtYXgtd2lkdGg6IDIxNnB4OwogICAgfQoKICAgIC5tYXgtdy1cWzI0MHB4XF0gewogICAgICBtYXgtd2lkdGg6IDI0MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzI4NXB4XF0gewogICAgICBtYXgtd2lkdGg6IDI4NXB4OwogICAgfQoKICAgIC5tYXgtdy1cWzMyXC4zcmVtXF0gewogICAgICBtYXgtd2lkdGg6IDMyLjNyZW07CiAgICB9CgogICAgLm1heC13LVxbMzQzcHhcXSB7CiAgICAgIG1heC13aWR0aDogMzQzcHg7CiAgICB9CgogICAgLm1heC13LVxbMzVcLjVyZW1cXSB7CiAgICAgIG1heC13aWR0aDogMzUuNXJlbTsKICAgIH0KCiAgICAubWF4LXctXFszNzBweFxdIHsKICAgICAgbWF4LXdpZHRoOiAzNzBweDsKICAgIH0KCiAgICAubWF4LXctXFs0MDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgIH0KCiAgICAubWF4LXctXFs1MDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgIH0KCiAgICAubWF4LXctXFs1MDRweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MDRweDsKICAgIH0KCiAgICAubWF4LXctXFs1MjBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MjBweDsKICAgIH0KCiAgICAubWF4LXctXFs1MzBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MzBweDsKICAgIH0KCiAgICAubWF4LXctXFs2MTVweFxdIHsKICAgICAgbWF4LXdpZHRoOiA2MTVweDsKICAgIH0KCiAgICAubWF4LXctXFs2NDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA2NDBweDsKICAgIH0KCiAgICAubWF4LXctXFs2NTBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA2NTBweDsKICAgIH0KCiAgICAubWF4LXctXFs3MzdweFxdIHsKICAgICAgbWF4LXdpZHRoOiA3MzdweDsKICAgIH0KCiAgICAubWF4LXctXFs3NDJweFxdIHsKICAgICAgbWF4LXdpZHRoOiA3NDJweDsKICAgIH0KCiAgICAubWF4LXctXFs3NjhweFxdIHsKICAgICAgbWF4LXdpZHRoOiA3NjhweDsKICAgIH0KCiAgICAubWF4LXctXFs5MDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgIH0KCiAgICAubWF4LXctZml0IHsKICAgICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDsKICAgIH0KCiAgICAuZmxleC0xIHsKICAgICAgZmxleDogMSAxIDAlOwogICAgfQoKICAgIC5mbGV4LXNocmluay0wIHsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLmZsZXgtZ3JvdywKICAgIC5ncm93IHsKICAgICAgZmxleC1ncm93OiAxOwogICAgfQoKICAgIC5yb3RhdGUtMTgwIHsKICAgICAgLS10dy1yb3RhdGU6IDE4MGRlZzsKICAgIH0KCiAgICAucm90YXRlLTE4MCwKICAgIC5yb3RhdGUtOTAgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXcodmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpOwogICAgfQoKICAgIC5yb3RhdGUtOTAgewogICAgICAtLXR3LXJvdGF0ZTogOTBkZWc7CiAgICB9CgogICAgLnRyYW5zZm9ybSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tldyh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7CiAgICB9CgogICAgLlwhY3Vyc29yLXBvaW50ZXIgewogICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY3Vyc29yLXBvaW50ZXIgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLnJlc2l6ZSB7CiAgICAgIHJlc2l6ZTogYm90aDsKICAgIH0KCiAgICAubGlzdC1kaXNjIHsKICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOwogICAgfQoKICAgIC5ncmlkLWNvbHMtMSB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTsKICAgIH0KCiAgICAuZ3JpZC1jb2xzLTIgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICB9CgogICAgLmdyaWQtY29scy0zIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOwogICAgfQoKICAgIC5mbGV4LXJvdyB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICB9CgogICAgLmZsZXgtY29sIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIH0KCiAgICAuaXRlbXMtc3RhcnQgewogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KCiAgICAuaXRlbXMtY2VudGVyIHsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KCiAgICAuanVzdGlmeS1ub3JtYWwgewogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IG5vcm1hbDsKICAgIH0KCiAgICAuanVzdGlmeS1lbmQgewogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgfQoKICAgIC5qdXN0aWZ5LWNlbnRlciB7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgfQoKICAgIC5cIWp1c3RpZnktYmV0d2VlbiB7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5qdXN0aWZ5LWJldHdlZW4gewogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICB9CgogICAgLmp1c3RpZnktYXJvdW5kIHsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICB9CgogICAgLmdhcC0xIHsKICAgICAgZ2FwOiAwLjI1cmVtOwogICAgfQoKICAgIC5nYXAtMVwuNSB7CiAgICAgIGdhcDogMC4zNzVyZW07CiAgICB9CgogICAgLmdhcC0xMCB7CiAgICAgIGdhcDogMi41cmVtOwogICAgfQoKICAgIC5nYXAtMTQgewogICAgICBnYXA6IDMuNXJlbTsKICAgIH0KCiAgICAuZ2FwLTIgewogICAgICBnYXA6IDAuNXJlbTsKICAgIH0KCiAgICAuZ2FwLTMgewogICAgICBnYXA6IDAuNzVyZW07CiAgICB9CgogICAgLmdhcC00IHsKICAgICAgZ2FwOiAxcmVtOwogICAgfQoKICAgIC5nYXAtNSB7CiAgICAgIGdhcDogMS4yNXJlbTsKICAgIH0KCiAgICAuZ2FwLTYgewogICAgICBnYXA6IDEuNXJlbTsKICAgIH0KCiAgICAuZ2FwLTggewogICAgICBnYXA6IDJyZW07CiAgICB9CgogICAgLnNwYWNlLXgtNj4gOm5vdChbaGlkZGVuXSl+IDpub3QoW2hpZGRlbl0pIHsKICAgICAgLS10dy1zcGFjZS14LXJldmVyc2U6IDA7CiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDEuNXJlbSAqICgxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpOwogICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMS41cmVtICogdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7CiAgICB9CgogICAgLnNlbGYtY2VudGVyIHsKICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgfQoKICAgIC5vdmVyZmxvdy1hdXRvIHsKICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICB9CgogICAgLm92ZXJmbG93LWhpZGRlbiB7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLm92ZXJmbG93LXktYXV0byB7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICB9CgogICAgLm92ZXJmbG93LXktc2Nyb2xsIHsKICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgfQoKICAgIC50cnVuY2F0ZSB7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQoKICAgIC53aGl0ZXNwYWNlLW5vcm1hbCB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICB9CgogICAgLndoaXRlc3BhY2Utbm93cmFwIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KCiAgICAuXCF3aGl0ZXNwYWNlLWJyZWFrLXNwYWNlcyB7CiAgICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXMgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYnJlYWstYWxsIHsKICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgfQoKICAgIC5cIXJvdW5kZWQtMnhsIHsKICAgICAgYm9yZGVyLXJhZGl1czogMXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXJvdW5kZWQtbGcgewogICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFyb3VuZGVkLW1kIHsKICAgICAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFyb3VuZGVkLW5vbmUgewogICAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcm91bmRlZC14bCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtMnhsIHsKICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTsKICAgIH0KCiAgICAucm91bmRlZC0zeGwgewogICAgICBib3JkZXItcmFkaXVzOiAxLjVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtXFsxMHB4XF0gewogICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgfQoKICAgIC5yb3VuZGVkLVxbMTJweFxdIHsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgIH0KCiAgICAucm91bmRlZC1cWzFyZW1cXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07CiAgICB9CgogICAgLnJvdW5kZWQtXFs4cHhcXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KCiAgICAucm91bmRlZC1mdWxsIHsKICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgfQoKICAgIC5yb3VuZGVkLWxnIHsKICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtOwogICAgfQoKICAgIC5yb3VuZGVkLW1kIHsKICAgICAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtc20gewogICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTsKICAgIH0KCiAgICAucm91bmRlZC14bCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtbC1cWzEycHhcXSB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEycHg7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEycHg7CiAgICB9CgogICAgLnJvdW5kZWQtbC1sZyB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuNXJlbTsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC41cmVtOwogICAgfQoKICAgIC5yb3VuZGVkLWwteGwgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjc1cmVtOwogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjc1cmVtOwogICAgfQoKICAgIC5yb3VuZGVkLXItMnhsIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDFyZW07CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxcmVtOwogICAgfQoKICAgIC5yb3VuZGVkLXItbGcgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC41cmVtOwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC41cmVtOwogICAgfQoKICAgIC5yb3VuZGVkLXQtMnhsIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMXJlbTsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDFyZW07CiAgICB9CgogICAgLnJvdW5kZWQtdC1sZyB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuNXJlbTsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuNXJlbTsKICAgIH0KCiAgICAuXCFyb3VuZGVkLXRsLTJ4bCB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDFyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFyb3VuZGVkLXRyLTJ4bCB7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxcmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYm9yZGVyIHsKICAgICAgYm9yZGVyLXdpZHRoOiAxcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFib3JkZXItMCB7CiAgICAgIGJvcmRlci13aWR0aDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJvcmRlci0yIHsKICAgICAgYm9yZGVyLXdpZHRoOiAycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyIHsKICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICB9CgogICAgLmJvcmRlci0wIHsKICAgICAgYm9yZGVyLXdpZHRoOiAwOwogICAgfQoKICAgIC5ib3JkZXItMiB7CiAgICAgIGJvcmRlci13aWR0aDogMnB4OwogICAgfQoKICAgIC5ib3JkZXItNCB7CiAgICAgIGJvcmRlci13aWR0aDogNHB4OwogICAgfQoKICAgIC5ib3JkZXItXFsxcHhcXSB7CiAgICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgfQoKICAgIC5cIWJvcmRlci1iLTAgewogICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYm9yZGVyLWItMiB7CiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJvcmRlci10IHsKICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1iIHsKICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OwogICAgfQoKICAgIC5ib3JkZXItYi0wIHsKICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsKICAgIH0KCiAgICAuYm9yZGVyLWItMiB7CiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDsKICAgIH0KCiAgICAuYm9yZGVyLWItXFsxcHhcXSB7CiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsKICAgIH0KCiAgICAuYm9yZGVyLWwgewogICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4OwogICAgfQoKICAgIC5ib3JkZXItbC0yIHsKICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDsKICAgIH0KCiAgICAuYm9yZGVyLWwtNCB7CiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7CiAgICB9CgogICAgLmJvcmRlci1sLVxbMXB4XF0gewogICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4OwogICAgfQoKICAgIC5ib3JkZXItci0yIHsKICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7CiAgICB9CgogICAgLmJvcmRlci10LAogICAgLmJvcmRlci10LVxbMXB4XF0gewogICAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7CiAgICB9CgogICAgLlwhYm9yZGVyLXNvbGlkIHsKICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc29saWQgewogICAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgfQoKICAgIC5ib3JkZXItZGFzaGVkIHsKICAgICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7CiAgICB9CgogICAgLlwhYm9yZGVyLVxbXCM0MzQzNDNcXSB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNjcgNjcgNjcgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYm9yZGVyLVxbXCNiM2IzYjMyMFxdIHsKICAgICAgYm9yZGVyLWNvbG9yOiAjYjNiM2IzMjAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFib3JkZXItYmx1ZS03MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDI5IDc4IDIxNiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFib3JkZXItZ3JheS0yMDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDIzNCAyMzYgMjQwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJvcmRlci1ncmF5LTMwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjA4IDIxMyAyMjEgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYm9yZGVyLXByaW1hcnktMzAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBib3JkZXItY29sb3I6IHJnYigxMzIgMjAyIDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLVxbXCMyOTMyNDJcXSB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDQxIDUwIDY2IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLVxbXCM0MzQzNDNcXSB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDY3IDY3IDY3IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLVxbXCM0ODYxODRcXSB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDcyIDk3IDEzMiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1cW1wjNkI3ODg5NjZcXSB7CiAgICAgIGJvcmRlci1jb2xvcjogIzZiNzg4OTY2OwogICAgfQoKICAgIC5ib3JkZXItXFtcI0IzQjNCM1xdIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMTc5IDE3OSAxNzkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZXJyb3ItMzAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjUzIDE2MiAxNTUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZXJyb3ItNTAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjQwIDY4IDU2IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLWVycm9yLTYwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDIxNyA0NSAzMiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTIwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDIzNCAyMzYgMjQwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktMzAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjA4IDIxMyAyMjEgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZ3JheS00MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigxNTIgMTYyIDE3OSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTUwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDEwMiAxMTIgMTMzIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktNjAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNzEgODQgMTAzIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktNzAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNTIgNjQgODQgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZ3JheS04MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyOSA0MSA1NyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTkwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDE2IDI0IDQwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktMjUgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyNDUgMjUwIDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1wcmltYXJ5LTMwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDEzMiAyMDIgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktNTAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNDYgMTQ0IDI1MCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1wcmltYXJ5LTYwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDIxIDExMiAyMzkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItc2Vjb25kYXJ5LTUwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDI1NSA2OCA1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXNlY29uZGFyeS02MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyMzAgNDYgNSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1zdWNjZXNzLTIwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDE2NiAyNDQgMTk3IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MtMzAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMTA4IDIzMyAxNjYgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItc3VjY2Vzcy01MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigxOCAxODMgMTA2IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MtNjAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMyAxNTIgODUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItd2FybmluZy0zMDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyNTQgMjAwIDc1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXdhcm5pbmctNTAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjQ3IDE0NCA5IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXdhcm5pbmctNjAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjIwIDEwNCAzIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXdoaXRlIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5cIWJvcmRlci1sLXdoaXRlIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItb3BhY2l0eS0wIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMDsKICAgIH0KCiAgICAuYm9yZGVyLW9wYWNpdHktMTAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgIH0KCiAgICAuYm9yZGVyLW9wYWNpdHktMjAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAwLjI7CiAgICB9CgogICAgLlwhYmctZ3JheS0yNSB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFiZy1ncmF5LTUwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJnLXByaW1hcnktNTAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSAyNDggMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYmctc3VjY2Vzcy01MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4IDE4MyAxMDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctXFtcIzBGMEYzRlxdIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTUgMTUgNjMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLVxbXCMwRjE0MUZcXSB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1IDIwIDMxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1cW1wjMTkxOTFBRjVcXSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTE5MWFmNTsKICAgIH0KCiAgICAuYmctXFtcIzFjMWMyMFxdIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjggMjggMzIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLVxbXCMyMzIzMkE4MFxdIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIzMjMyYTgwOwogICAgfQoKICAgIC5iZy1cW1wjMkYyRjY0XF0gewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig0NyA0NyAxMDAgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLVxbXCMzQjNCM0I2NlxdIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNiM2IzYjY2OwogICAgfQoKICAgIC5iZy1cW1wjM0IzQjc3MzNcXSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjNiNzczMzsKICAgIH0KCiAgICAuYmctXFtcIzk5QzJGRlxdIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTUzIDE5NCAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLVxbXCNGNUY3RkVcXSB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NSAyNDcgMjU0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1lcnJvci0xMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTQgMjI4IDIyNiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZXJyb3ItNTAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTQgMjQzIDI0MiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZXJyb3ItNjAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3IDQ1IDMyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1lcnJvci03MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxODAgMzUgMjQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLWdyYXktMTAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQyIDI0NCAyNDcgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLWdyYXktMjAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM0IDIzNiAyNDAgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLWdyYXktMjUgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZ3JheS0zMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDggMjEzIDIyMSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZ3JheS01MCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1ncmF5LTYwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDcxIDg0IDEwMyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZ3JheS05MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNiAyNCA0MCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctcGluay0yMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTEgMjA3IDIzMiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctcHJpbWFyeS0xMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDkgMjMzIDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctcHJpbWFyeS0yNSB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NSAyNTAgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1wcmltYXJ5LTUwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0OCAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXByaW1hcnktNjAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEgMTEyIDIzOSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctcHJpbWFyeS03MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMyA5MiAyMTEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS0xMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjMwIDIxMyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5LTQwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAxMDUgNDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS01MCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNDQgMjM3IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1zZWNvbmRhcnktNjAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMwIDQ2IDUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtMTAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA5IDI1MCAyMjMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtMjUgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDYgMjU0IDI0OSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctc3VjY2Vzcy01MCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiAyNTMgMjQzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1zdWNjZXNzLTYwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMgMTUyIDg1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy13YXJuaW5nLTEwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyNDAgMTk5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy13YXJuaW5nLTI1IHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1MiAyNDUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXdhcm5pbmctNTAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjUwIDIzNSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctd2FybmluZy02MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjAgMTA0IDMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXdoaXRlIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLlwhYmctY29udGFpbiB7CiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5maWxsLWdyYXktNDAwIHsKICAgICAgZmlsbDogIzk4YTJiMzsKICAgIH0KCiAgICAub2JqZWN0LWNvbnRhaW4gewogICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgfQoKICAgIC5vYmplY3QtY292ZXIgewogICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIH0KCiAgICAuXCFwLTAgewogICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcC04IHsKICAgICAgcGFkZGluZzogMnJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wLTAgewogICAgICBwYWRkaW5nOiAwOwogICAgfQoKICAgIC5wLTEgewogICAgICBwYWRkaW5nOiAwLjI1cmVtOwogICAgfQoKICAgIC5wLTFcLjUgewogICAgICBwYWRkaW5nOiAwLjM3NXJlbTsKICAgIH0KCiAgICAucC0yIHsKICAgICAgcGFkZGluZzogMC41cmVtOwogICAgfQoKICAgIC5wLTJcLjUgewogICAgICBwYWRkaW5nOiAwLjYyNXJlbTsKICAgIH0KCiAgICAucC0zIHsKICAgICAgcGFkZGluZzogMC43NXJlbTsKICAgIH0KCiAgICAucC00IHsKICAgICAgcGFkZGluZzogMXJlbTsKICAgIH0KCiAgICAucC02IHsKICAgICAgcGFkZGluZzogMS41cmVtOwogICAgfQoKICAgIC5wLTggewogICAgICBwYWRkaW5nOiAycmVtOwogICAgfQoKICAgIC5cIXB4LTIgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFweC0yXC41IHsKICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXB4LTQgewogICAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXB5LTBcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC4xMjVyZW0gIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDAuMTI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcHktNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB4LTAgewogICAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICB9CgogICAgLnB4LTEgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07CiAgICB9CgogICAgLnB4LTFcLjUgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuMzc1cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjM3NXJlbTsKICAgIH0KCiAgICAucHgtMTAgewogICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTsKICAgICAgcGFkZGluZy1yaWdodDogMi41cmVtOwogICAgfQoKICAgIC5weC0xMiB7CiAgICAgIHBhZGRpbmctbGVmdDogM3JlbTsKICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsKICAgIH0KCiAgICAucHgtMiB7CiAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07CiAgICB9CgogICAgLnB4LTJcLjUgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTsKICAgIH0KCiAgICAucHgtMjggewogICAgICBwYWRkaW5nLWxlZnQ6IDdyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDdyZW07CiAgICB9CgogICAgLnB4LTMgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07CiAgICB9CgogICAgLnB4LTNcLjUgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuODc1cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjg3NXJlbTsKICAgIH0KCiAgICAucHgtNCB7CiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTsKICAgICAgcGFkZGluZy1yaWdodDogMXJlbTsKICAgIH0KCiAgICAucHgtNSB7CiAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTsKICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTsKICAgIH0KCiAgICAucHgtNiB7CiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07CiAgICB9CgogICAgLnB4LTggewogICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07CiAgICB9CgogICAgLnB5LTAgewogICAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgICAgcGFkZGluZy10b3A6IDA7CiAgICB9CgogICAgLnB5LTBcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC4xMjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAwLjEyNXJlbTsKICAgIH0KCiAgICAucHktMSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtOwogICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTsKICAgIH0KCiAgICAucHktMVwuNSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjM3NXJlbTsKICAgICAgcGFkZGluZy10b3A6IDAuMzc1cmVtOwogICAgfQoKICAgIC5weS0xMCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07CiAgICB9CgogICAgLnB5LTEyIHsKICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07CiAgICAgIHBhZGRpbmctdG9wOiAzcmVtOwogICAgfQoKICAgIC5weS0xNiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtOwogICAgICBwYWRkaW5nLXRvcDogNHJlbTsKICAgIH0KCiAgICAucHktMiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07CiAgICB9CgogICAgLnB5LTJcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAwLjYyNXJlbTsKICAgIH0KCiAgICAucHktMjAgewogICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsKICAgICAgcGFkZGluZy10b3A6IDVyZW07CiAgICB9CgogICAgLnB5LTI0IHsKICAgICAgcGFkZGluZy1ib3R0b206IDZyZW07CiAgICAgIHBhZGRpbmctdG9wOiA2cmVtOwogICAgfQoKICAgIC5weS0yOCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA3cmVtOwogICAgICBwYWRkaW5nLXRvcDogN3JlbTsKICAgIH0KCiAgICAucHktMyB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtOwogICAgICBwYWRkaW5nLXRvcDogMC43NXJlbTsKICAgIH0KCiAgICAucHktNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOwogICAgICBwYWRkaW5nLXRvcDogMXJlbTsKICAgIH0KCiAgICAucHktNSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtOwogICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIH0KCiAgICAucHktNiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07CiAgICB9CgogICAgLnB5LTggewogICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsKICAgICAgcGFkZGluZy10b3A6IDJyZW07CiAgICB9CgogICAgLlwhcGItMyB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcGItNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcHItMlwuNSB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcHQtMlwuNSB7CiAgICAgIHBhZGRpbmctdG9wOiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXB0LTUgewogICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi0wIHsKICAgICAgcGFkZGluZy1ib3R0b206IDA7CiAgICB9CgogICAgLnBiLTFcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC4zNzVyZW07CiAgICB9CgogICAgLnBiLTEwIHsKICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsKICAgIH0KCiAgICAucGItMTIgewogICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsKICAgIH0KCiAgICAucGItMTYgewogICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTsKICAgIH0KCiAgICAucGItMiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07CiAgICB9CgogICAgLnBiLTJcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07CiAgICB9CgogICAgLnBiLTI0IHsKICAgICAgcGFkZGluZy1ib3R0b206IDZyZW07CiAgICB9CgogICAgLnBiLTMgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTsKICAgIH0KCiAgICAucGItNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOwogICAgfQoKICAgIC5wYi01IHsKICAgICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07CiAgICB9CgogICAgLnBiLTYgewogICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtOwogICAgfQoKICAgIC5wYi04IHsKICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07CiAgICB9CgogICAgLnBsLTEyIHsKICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtOwogICAgfQoKICAgIC5wbC0yXC41IHsKICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsKICAgIH0KCiAgICAucGwtM1wuNSB7CiAgICAgIHBhZGRpbmctbGVmdDogMC44NzVyZW07CiAgICB9CgogICAgLnBsLTQgewogICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07CiAgICB9CgogICAgLnBsLTkgewogICAgICBwYWRkaW5nLWxlZnQ6IDIuMjVyZW07CiAgICB9CgogICAgLnByLTEgewogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtOwogICAgfQoKICAgIC5wci0xXC41IHsKICAgICAgcGFkZGluZy1yaWdodDogMC4zNzVyZW07CiAgICB9CgogICAgLnByLTE2IHsKICAgICAgcGFkZGluZy1yaWdodDogNHJlbTsKICAgIH0KCiAgICAucHItMiB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsKICAgIH0KCiAgICAucHItMyB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07CiAgICB9CgogICAgLnB0LTAgewogICAgICBwYWRkaW5nLXRvcDogMDsKICAgIH0KCiAgICAucHQtMTAgewogICAgICBwYWRkaW5nLXRvcDogMi41cmVtOwogICAgfQoKICAgIC5wdC0xMiB7CiAgICAgIHBhZGRpbmctdG9wOiAzcmVtOwogICAgfQoKICAgIC5wdC0xNiB7CiAgICAgIHBhZGRpbmctdG9wOiA0cmVtOwogICAgfQoKICAgIC5wdC0yIHsKICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTsKICAgIH0KCiAgICAucHQtMlwuNSB7CiAgICAgIHBhZGRpbmctdG9wOiAwLjYyNXJlbTsKICAgIH0KCiAgICAucHQtMjAgewogICAgICBwYWRkaW5nLXRvcDogNXJlbTsKICAgIH0KCiAgICAucHQtMjQgewogICAgICBwYWRkaW5nLXRvcDogNnJlbTsKICAgIH0KCiAgICAucHQtMyB7CiAgICAgIHBhZGRpbmctdG9wOiAwLjc1cmVtOwogICAgfQoKICAgIC5wdC0zXC41IHsKICAgICAgcGFkZGluZy10b3A6IDAuODc1cmVtOwogICAgfQoKICAgIC5wdC00IHsKICAgICAgcGFkZGluZy10b3A6IDFyZW07CiAgICB9CgogICAgLnB0LTUgewogICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIH0KCiAgICAucHQtNiB7CiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07CiAgICB9CgogICAgLnB0LTggewogICAgICBwYWRkaW5nLXRvcDogMnJlbTsKICAgIH0KCiAgICAuXCF0ZXh0LWxlZnQgewogICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGVmdCB7CiAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CgogICAgLlwhdGV4dC1jZW50ZXIgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1jZW50ZXIgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLnRleHQtcmlnaHQgewogICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIH0KCiAgICAuZm9udC1pbnRlciB7CiAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgIH0KCiAgICAudGV4dC1cWzE0NHB4XF0gewogICAgICBmb250LXNpemU6IDE0NHB4OwogICAgfQoKICAgIC50ZXh0LVxbMTRweFxdIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQoKICAgIC50ZXh0LVxbMjBweFxdIHsKICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQoKICAgIC50ZXh0LXRleHQtbGcgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICB9CgogICAgLmZvbnQtXFs2MDBcXSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLmZvbnQtYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CgogICAgLmZvbnQtbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuZm9udC1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLmNhcGl0YWxpemUgewogICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIH0KCiAgICAuXCFsZWFkaW5nLTUgewogICAgICBsaW5lLWhlaWdodDogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5sZWFkaW5nLVxbMTMwcHhcXSB7CiAgICAgIGxpbmUtaGVpZ2h0OiAxMzBweDsKICAgIH0KCiAgICAudHJhY2tpbmctbm9ybWFsIHsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7CiAgICB9CgogICAgLnRyYWNraW5nLXRpZ2h0IHsKICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgfQoKICAgIC5cIXRleHQtXFtcIzYyNjI2MlxdIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYig5OCA5OCA5OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdGV4dC1ibHVlLTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCF0ZXh0LWdyYXktMjUgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCF0ZXh0LWdyYXktNTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYigxMDIgMTEyIDEzMyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdGV4dC1ncmF5LTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IoNTIgNjQgODQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtZ3JheS04MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKDI5IDQxIDU3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCF0ZXh0LXByaW1hcnktODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYigyNCA3MyAxNjkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtcmVkLTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IoMTg1IDI4IDI4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1cW1wjMDMwMzNBXF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigzIDMgNTggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1cW1wjM0I0ODU4XF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYig1OSA3MiA4OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LVxbXCM1OTZCOTJcXSB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDg5IDEwNyAxNDYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1cW1wjOTBBMEJCXF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxNDQgMTYwIDE4NyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LVxbXCNCMkJFRkFcXSB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDE3OCAxOTAgMjUwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtXFtcI0M4RDFGRlxdIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjAwIDIwOSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1cW1wjQ0NDQ0NDXF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyMDQgMjA0IDIwNCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LVxbXCNDREQ0RTBcXSB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIwNSAyMTIgMjI0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItNTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjQwIDY4IDU2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItNjAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjE3IDQ1IDMyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItNzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTgwIDM1IDI0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItOTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTIyIDM5IDI2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS0xMDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNDIgMjQ0IDI0NyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LWdyYXktMzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjA4IDIxMyAyMjEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTQwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDE1MiAxNjIgMTc5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS01MCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS01MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxMDIgMTEyIDEzMyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LWdyYXktNjAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoNzEgODQgMTAzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS03MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYig1MiA2NCA4NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LWdyYXktODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjkgNDEgNTcgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTkwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDE2IDI0IDQwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcGluay05NTAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYig4MCA3IDM2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS0yMDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxNzggMjIxIDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktMjUgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNDUgMjUwIDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktMzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTMyIDIwMiAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTUwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjM5IDI0OCAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTUwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDQ2IDE0NCAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTYwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIxIDExMiAyMzkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIzIDkyIDIxMSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjQgNzMgMTY5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS05MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNSA2NSAxMzMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1yZWQtNTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcmVkLTYwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIyMCAzOCAzOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXJlZC04MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxNTMgMjcgMjcgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1zZWNvbmRhcnktNDAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjU1IDEwNSA0NiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXNlY29uZGFyeS03MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxODggMjcgNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtNzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoNSA5NiA1OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtOTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoNSA3OSA0OSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmctNjAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjIwIDEwNCAzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtd2FybmluZy03MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxODEgNzEgOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmctODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTQ3IDU1IDEzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtd2hpdGUgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5saW5lLXRocm91Z2ggewogICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogbGluZS10aHJvdWdoOwogICAgfQoKICAgIC5vcGFjaXR5LTMwIHsKICAgICAgb3BhY2l0eTogMC4zOwogICAgfQoKICAgIC5vcGFjaXR5LTY1IHsKICAgICAgb3BhY2l0eTogMC42NTsKICAgIH0KCiAgICAuXCFzaGFkb3ctbGcgewogICAgICAtLXR3LXNoYWRvdzogMHB4IDEycHggMTZweCAtNHB4ICMxMDE4MjgxNCwgMHB4IDRweCA2cHggLTJweCAjMTAxODI4MDggIWltcG9ydGFudDsKICAgICAgLS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDEycHggMTZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksCiAgICAgICAgMHB4IDRweCA2cHggLTJweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhc2hhZG93LWxnLAogICAgLlwhc2hhZG93LXhzIHsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLAogICAgICAgIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhc2hhZG93LXhzIHsKICAgICAgLS10dy1zaGFkb3c6IDBweCAxcHggMnB4IDBweCAjMTAxODI4MGQgIWltcG9ydGFudDsKICAgICAgLS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDFweCAycHggMHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcikgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2hhZG93IHsKICAgICAgLS10dy1zaGFkb3c6IDAgMXB4IDNweCAwICMwMDAwMDAxYSwgMCAxcHggMnB4IC0xcHggIzAwMDAwMDFhOwogICAgICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLAogICAgICAgIDAgMXB4IDJweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7CiAgICB9CgogICAgLnNoYWRvdywKICAgIC5zaGFkb3ctbGcgewogICAgICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksCiAgICAgICAgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7CiAgICB9CgogICAgLnNoYWRvdy1sZyB7CiAgICAgIC0tdHctc2hhZG93OiAwcHggMTJweCAxNnB4IC00cHggIzEwMTgyODE0LCAwcHggNHB4IDZweCAtMnB4ICMxMDE4MjgwODsKICAgICAgLS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDEycHggMTZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksCiAgICAgICAgMHB4IDRweCA2cHggLTJweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpOwogICAgfQoKICAgIC5zaGFkb3ctbWQgewogICAgICAtLXR3LXNoYWRvdzogMHB4IDRweCA4cHggLTJweCAjMTAxODI4MWEsIDBweCAycHggNHB4IC0ycHggIzEwMTgyODBmOwogICAgICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwcHggNHB4IDhweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksCiAgICAgICAgMHB4IDJweCA0cHggLTJweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpOwogICAgfQoKICAgIC5zaGFkb3ctbWQsCiAgICAuc2hhZG93LXhzIHsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLAogICAgICAgIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpOwogICAgfQoKICAgIC5zaGFkb3cteHMgewogICAgICAtLXR3LXNoYWRvdzogMHB4IDFweCAycHggMHB4ICMxMDE4MjgwZDsKICAgICAgLS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDFweCAycHggMHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7CiAgICB9CgogICAgLm91dGxpbmUtbm9uZSB7CiAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMDAwMDsKICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgIH0KCiAgICAub3V0bGluZSB7CiAgICAgIG91dGxpbmUtc3R5bGU6IHNvbGlkOwogICAgfQoKICAgIC5vdXRsaW5lLTAgewogICAgICBvdXRsaW5lLXdpZHRoOiAwOwogICAgfQoKICAgIC5ibHVyIHsKICAgICAgLS10dy1ibHVyOiBibHVyKDhweCk7CiAgICB9CgogICAgLmJsdXIsCiAgICAuZmlsdGVyIHsKICAgICAgZmlsdGVyOiB2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpOwogICAgfQoKICAgIC5iYWNrZHJvcC1maWx0ZXIgewogICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogdmFyKC0tdHctYmFja2Ryb3AtYmx1cikgdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcykgdmFyKC0tdHctYmFja2Ryb3AtY29udHJhc3QpIHZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSkgdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSkgdmFyKC0tdHctYmFja2Ryb3AtaW52ZXJ0KSB2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5KSB2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSkgdmFyKC0tdHctYmFja2Ryb3Atc2VwaWEpOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKTsKICAgIH0KCiAgICAuXCF0cmFuc2l0aW9uLWFsbCB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbCAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50cmFuc2l0aW9uIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsCiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwKICAgICAgICBmaWx0ZXIsIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLAogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvciwgZmlsbCwgc3Ryb2tlLCBvcGFjaXR5LCBib3gtc2hhZG93LCB0cmFuc2Zvcm0sCiAgICAgICAgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXI7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsCiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwKICAgICAgICBmaWx0ZXIsIGJhY2tkcm9wLWZpbHRlciwgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgfQoKICAgIC50cmFuc2l0aW9uLWFsbCB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgfQoKICAgIC5kdXJhdGlvbi0zMDAgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzOwogICAgfQoKICAgIC5kaXNwbGF5LW1kLXNlbWlib2xkIHsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KCiAgICAuZGlzcGxheS1tZC1ib2xkLAogICAgLmRpc3BsYXktbWQtc2VtaWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMzZweDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjcycHg7CiAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4OwogICAgfQoKICAgIC5kaXNwbGF5LW1kLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC5kaXNwbGF5LXNtLW1lZGl1bSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLmRpc3BsYXktc20tbWVkaXVtLAogICAgLmRpc3BsYXktc20tc2VtaWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7CiAgICB9CgogICAgLmRpc3BsYXktc20tc2VtaWJvbGQgewogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQoKICAgIC5cIWRpc3BsYXktc20tYm9sZCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhZGlzcGxheS1zbS1ib2xkLAogICAgLmRpc3BsYXktc20tYm9sZCB7CiAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC5kaXNwbGF5LXNtLWJvbGQgewogICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgIH0KCiAgICAuZGlzcGxheS14cy1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLmRpc3BsYXkteHMtYm9sZCwKICAgIC5kaXNwbGF5LXhzLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgfQoKICAgIC5kaXNwbGF5LXhzLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LXhsLXJlZ3VsYXIgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgfQoKICAgIC50ZXh0LXhsLW1lZGl1bSwKICAgIC50ZXh0LXhsLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICB9CgogICAgLnRleHQteGwtbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAudGV4dC14bC1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQteGwtYm9sZCwKICAgIC50ZXh0LXhsLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgfQoKICAgIC50ZXh0LXhsLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LWxnLXJlZ3VsYXIgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgfQoKICAgIC50ZXh0LWxnLW1lZGl1bSwKICAgIC50ZXh0LWxnLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB9CgogICAgLnRleHQtbGctbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAudGV4dC1sZy1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQtbGctYm9sZCwKICAgIC50ZXh0LWxnLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgfQoKICAgIC50ZXh0LWxnLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LW1kLXJlZ3VsYXIgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgfQoKICAgIC50ZXh0LW1kLW1lZGl1bSwKICAgIC50ZXh0LW1kLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICB9CgogICAgLnRleHQtbWQtbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAudGV4dC1tZC1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQtbWQtYm9sZCwKICAgIC50ZXh0LW1kLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgfQoKICAgIC50ZXh0LW1kLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LXNtLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CgogICAgLlwhdGV4dC1zbS1tZWRpdW0gewogICAgICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtc20tbWVkaXVtLAogICAgLnRleHQtc20tbWVkaXVtIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnRleHQtc20tbWVkaXVtIHsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CgogICAgLlwhdGV4dC1zbS1zZW1pYm9sZCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdGV4dC1zbS1zZW1pYm9sZCwKICAgIC50ZXh0LXNtLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQtc20tc2VtaWJvbGQgewogICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIH0KCiAgICAuXCF0ZXh0LXNtLWJvbGQgewogICAgICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtc20tYm9sZCwKICAgIC50ZXh0LXNtLWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIH0KCiAgICAudGV4dC1zbS1ib2xkIHsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CgogICAgLnRleHQteHMtcmVndWxhciB7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICB9CgogICAgLnRleHQteHMtbWVkaXVtLAogICAgLnRleHQteHMtcmVndWxhciB7CiAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBsaW5lLWhlaWdodDogMThweDsKICAgIH0KCiAgICAudGV4dC14cy1tZWRpdW0gewogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC50ZXh0LXhzLXNlbWlib2xkIHsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KCiAgICAudGV4dC14cy1ib2xkLAogICAgLnRleHQteHMtc2VtaWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICB9CgogICAgLnRleHQteHMtYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CgogICAgLmFmdGVyXDpoaWRkZW46YWZ0ZXIgewogICAgICBjb250ZW50OiB2YXIoLS10dy1jb250ZW50KTsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAuaG92ZXJcOlwhYm9yZGVyLXByaW1hcnktNjAwOmhvdmVyIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBib3JkZXItY29sb3I6IHJnYigyMSAxMTIgMjM5IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6XCFiZy1cW1wjMjMyMzJBQjJcXTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzIzMmFiMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6XCFiZy1cW1wjM0IzQjNCNjZcXTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjNiM2I2NiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6XCFiZy1ncmF5LTMwMDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA4IDIxMyAyMjEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaG92ZXJcOlwhYmctZ3JheS01MDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5IDI1MCAyNTEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaG92ZXJcOlwhYmctcHJpbWFyeS0xMDA6aG92ZXIgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwOSAyMzMgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmhvdmVyXDpcIWJnLXNsYXRlLTIwMDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI2IDIzMiAyNDAgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaG92ZXJcOlwhYmctdHJhbnNwYXJlbnQ6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmhvdmVyXDpiZy1ncmF5LTUwOmhvdmVyIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5IDI1MCAyNTEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmhvdmVyXDpiZy1wcmltYXJ5LTUwOmhvdmVyIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0OCAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmhvdmVyXDpiZy1wcmltYXJ5LTYwMDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxIDExMiAyMzkgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmhvdmVyXDpiZy1zbGF0ZS0xMDA6aG92ZXIgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDEgMjQ1IDI0OSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuaG92ZXJcOmZpbGwtZ3JheS02MDA6aG92ZXIgewogICAgICBmaWxsOiAjNDc1NDY3OwogICAgfQoKICAgIC5ob3Zlclw6XCF0ZXh0LWN1cnJlbnQ6aG92ZXIgewogICAgICBjb2xvcjogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmhvdmVyXDpcIXRleHQtZ3JheS04MDA6aG92ZXIgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKDI5IDQxIDU3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpcIXRleHQtd2hpdGUgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHsKICAgICAgLnNtXDpoLVxbMjg4cHhcXSB7CiAgICAgICAgaGVpZ2h0OiAyODhweDsKICAgICAgfQoKICAgICAgLnNtXDp3LVxbNTAwcHhcXSB7CiAgICAgICAgd2lkdGg6IDUwMHB4OwogICAgICB9CgogICAgICAuc21cOnctYXV0byB7CiAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5zbVw6dy1maXQgewogICAgICAgIHdpZHRoOiBmaXQtY29udGVudDsKICAgICAgfQoKICAgICAgLnNtXDptYXgtdy1maXQgewogICAgICAgIG1heC13aWR0aDogZml0LWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIC5zbVw6Z3JpZC1jb2xzLTIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgfQoKICAgICAgLnNtXDpncmlkLWNvbHMtMyB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAuc21cOmZsZXgtcm93IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuc21cOnRleHQteGwtYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICAuc21cOnRleHQtc20tcmVndWxhciB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgIC5tZFw6cmVsYXRpdmUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLm1kXDpcIW9yZGVyLTEgewogICAgICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFvcmRlci0yIHsKICAgICAgICBvcmRlcjogMiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOm9yZGVyLTEgewogICAgICAgIG9yZGVyOiAxOwogICAgICB9CgogICAgICAubWRcOm9yZGVyLTIgewogICAgICAgIG9yZGVyOiAyOwogICAgICB9CgogICAgICAubWRcOmNvbC1zcGFuLTEgewogICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgLyBzcGFuIDE7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFteC0wIHsKICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhbXgtYXV0byB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpteS0xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTsKICAgICAgICBtYXJnaW4tdG9wOiA0cmVtOwogICAgICB9CgogICAgICAubWRcOm15LTI0IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cmVtOwogICAgICAgIG1hcmdpbi10b3A6IDZyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6XCFtYi0yOCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogN3JlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhbXQtMCB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhbXQtMTIgewogICAgICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LTE2IHsKICAgICAgICBtYXJnaW4tdG9wOiA0cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFtdC0yIHsKICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LTIwIHsKICAgICAgICBtYXJnaW4tdG9wOiA1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFtdC00IHsKICAgICAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFtdC01IHsKICAgICAgICBtYXJnaW4tdG9wOiAxLjI1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFtdC02IHsKICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LTggewogICAgICAgIG1hcmdpbi10b3A6IDJyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LVxbLTgwcHhcXSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTgwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDptdC0wIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAubWRcOm10LTEwIHsKICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtMjAgewogICAgICAgIG1hcmdpbi10b3A6IDVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtMjQgewogICAgICAgIG1hcmdpbi10b3A6IDZyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtMyB7CiAgICAgICAgbWFyZ2luLXRvcDogMC43NXJlbTsKICAgICAgfQoKICAgICAgLm1kXDptdC0zMiB7CiAgICAgICAgbWFyZ2luLXRvcDogOHJlbTsKICAgICAgfQoKICAgICAgLm1kXDptdC00IHsKICAgICAgICBtYXJnaW4tdG9wOiAxcmVtOwogICAgICB9CgogICAgICAubWRcOm10LTUgewogICAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtNiB7CiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtOwogICAgICB9CgogICAgICAubWRcOm10LTggewogICAgICAgIG1hcmdpbi10b3A6IDJyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtXFstMTJyZW1cXSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycmVtOwogICAgICB9CgogICAgICAubWRcOlwhYmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6YmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAubWRcOmZsZXggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFoaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpoaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFoLVxbNjBweFxdIHsKICAgICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpoLVxbMTAwcHhcXSB7CiAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgfQoKICAgICAgLm1kXDpoLVxbMjAwcHhcXSB7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgLm1kXDpoLVxbNDAwcHhcXSB7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgfQoKICAgICAgLm1kXDpoLVxbODAwcHhcXSB7CiAgICAgICAgaGVpZ2h0OiA4MDBweDsKICAgICAgfQoKICAgICAgLm1kXDpoLVxbOTBweFxdIHsKICAgICAgICBoZWlnaHQ6IDkwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF3LTEwIHsKICAgICAgICB3aWR0aDogMi41cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF3LVxbMjAwcHhcXSB7CiAgICAgICAgd2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF3LWZpdCB7CiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6dy0xXC8yIHsKICAgICAgICB3aWR0aDogNTAlOwogICAgICB9CgogICAgICAubWRcOnctMVwvMyB7CiAgICAgICAgd2lkdGg6IDMzLjMzMzMzMyU7CiAgICAgIH0KCiAgICAgIC5tZFw6dy0yXC8zIHsKICAgICAgICB3aWR0aDogNjYuNjY2NjY3JTsKICAgICAgfQoKICAgICAgLm1kXDp3LTJcLzQgewogICAgICAgIHdpZHRoOiA1MCU7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1cWzEwMHB4XF0gewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgfQoKICAgICAgLm1kXDp3LVxbMzAwcHhcXSB7CiAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICB9CgogICAgICAubWRcOnctXFs0MDBweFxdIHsKICAgICAgICB3aWR0aDogNDAwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1cWzUwMHB4XF0gewogICAgICAgIHdpZHRoOiA1MDBweDsKICAgICAgfQoKICAgICAgLm1kXDp3LVxbNzBcJVxdIHsKICAgICAgICB3aWR0aDogNzAlOwogICAgICB9CgogICAgICAubWRcOnctXFs3NVwlXF0gewogICAgICAgIHdpZHRoOiA3NSU7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1cWzkwcHhcXSB7CiAgICAgICAgd2lkdGg6IDkwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1cWzk3MHB4XF0gewogICAgICAgIHdpZHRoOiA5NzBweDsKICAgICAgfQoKICAgICAgLm1kXDp3LWF1dG8gewogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICAubWRcOnctZml0IHsKICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1mdWxsIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm1kXDptaW4tdy1cWzI5NnB4XF0gewogICAgICAgIG1pbi13aWR0aDogMjk2cHg7CiAgICAgIH0KCiAgICAgIC5tZFw6bWF4LXctXFs2MDFweFxdIHsKICAgICAgICBtYXgtd2lkdGg6IDYwMXB4OwogICAgICB9CgogICAgICAubWRcOmdyaWQtY29scy0yIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgIH0KCiAgICAgIC5tZFw6Z3JpZC1jb2xzLTMgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgfQoKICAgICAgLm1kXDpncmlkLWNvbHMtNSB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAubWRcOmZsZXgtcm93IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAubWRcOml0ZW1zLWNlbnRlciB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm1kXDpqdXN0aWZ5LWJldHdlZW4gewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1kXDpcIWdhcC0xNiB7CiAgICAgICAgZ2FwOiA0cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFnYXAtNiB7CiAgICAgICAgZ2FwOiAxLjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpnYXAtMCB7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICAubWRcOmdhcC0xMCB7CiAgICAgICAgZ2FwOiAyLjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6Z2FwLTE2IHsKICAgICAgICBnYXA6IDRyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6Z2FwLTIwIHsKICAgICAgICBnYXA6IDVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6Z2FwLTUgewogICAgICAgIGdhcDogMS4yNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDpnYXAtNiB7CiAgICAgICAgZ2FwOiAxLjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6Z2FwLTggewogICAgICAgIGdhcDogMnJlbTsKICAgICAgfQoKICAgICAgLm1kXDpcIXJvdW5kZWQtMnhsIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFyb3VuZGVkLTN4bCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMS41cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFyb3VuZGVkLXhsIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6cm91bmRlZC0yeGwgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6XCFib3JkZXIgewogICAgICAgIGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6Ym9yZGVyIHsKICAgICAgICBib3JkZXItd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLm1kXDpwLTE2IHsKICAgICAgICBwYWRkaW5nOiA0cmVtOwogICAgICB9CgogICAgICAubWRcOnAtOCB7CiAgICAgICAgcGFkZGluZzogMnJlbTsKICAgICAgfQoKICAgICAgLm1kXDpcIXB4LTAgewogICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXB4LTE2IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweC02IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHgtOCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHgtXFs3MnB4XF0gewogICAgICAgIHBhZGRpbmctbGVmdDogNzJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDcycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXB4LVxbODhweFxdIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDg4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweS0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweS0xNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNHJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHktMjAgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXB5LTI0IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA2cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweS00IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweS00MCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDEwcmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweS01IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAxLjI1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6cHgtMTYgewogICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtOwogICAgICB9CgogICAgICAubWRcOnB4LTIwIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDpweC0yNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA2cmVtOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHgtNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHgtNiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtOwogICAgICB9CgogICAgICAubWRcOnB4LTggewogICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOwogICAgICB9CgogICAgICAubWRcOnB5LTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtOwogICAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHktMTYgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtOwogICAgICAgIHBhZGRpbmctdG9wOiA0cmVtOwogICAgICB9CgogICAgICAubWRcOnB5LTIwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsKICAgICAgICBwYWRkaW5nLXRvcDogNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDpweS0yNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDZyZW07CiAgICAgICAgcGFkZGluZy10b3A6IDZyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHktNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07CiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHktXFs3MnB4XF0gewogICAgICAgIHBhZGRpbmctYm90dG9tOiA3MnB4OwogICAgICAgIHBhZGRpbmctdG9wOiA3MnB4OwogICAgICB9CgogICAgICAubWRcOlwhcGItNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXBiLTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFwdC0yMCB7CiAgICAgICAgcGFkZGluZy10b3A6IDVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXB0LTUgewogICAgICAgIHBhZGRpbmctdG9wOiAxLjI1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6cHQtMCB7CiAgICAgICAgcGFkZGluZy10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5tZFw6cHQtMTYgewogICAgICAgIHBhZGRpbmctdG9wOiA0cmVtOwogICAgICB9CgogICAgICAubWRcOnB0LTI0IHsKICAgICAgICBwYWRkaW5nLXRvcDogNnJlbTsKICAgICAgfQoKICAgICAgLm1kXDpwdC01IHsKICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDpcIXRleHQtbGVmdCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhdGV4dC1jZW50ZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOnRleHQtY2VudGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF0ZXh0LWdyYXktOTAwIHsKICAgICAgICAtLXR3LXRleHQtb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICAgIGNvbG9yOiByZ2IoMTYgMjQgNDAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXkteGwtc2VtaWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS14bC1ib2xkLAogICAgICAubWRcOmRpc3BsYXkteGwtc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDYwcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0xLjJweDsKICAgICAgICBsaW5lLWhlaWdodDogNzJweDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LXhsLWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS1sZy1zZW1pYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LWxnLWJvbGQsCiAgICAgIC5tZFw6ZGlzcGxheS1sZy1zZW1pYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuOTZweDsKICAgICAgICBsaW5lLWhlaWdodDogNjBweDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LWxnLWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFkaXNwbGF5LW1kLXNlbWlib2xkIHsKICAgICAgICBsaW5lLWhlaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhZGlzcGxheS1tZC1zZW1pYm9sZCwKICAgICAgLm1kXDpkaXNwbGF5LW1kLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAzNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjcycHg7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS1tZC1zZW1pYm9sZCB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFkaXNwbGF5LW1kLWJvbGQgewogICAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFkaXNwbGF5LW1kLWJvbGQsCiAgICAgIC5tZFw6ZGlzcGxheS1tZC1ib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAzNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjcycHg7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS1tZC1ib2xkIHsKICAgICAgICBsaW5lLWhlaWdodDogNDRweDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LXNtLXNlbWlib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXktc20tYm9sZCwKICAgICAgLm1kXDpkaXNwbGF5LXNtLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXktc20tYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LXhzLW1lZGl1bSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LXhzLWJvbGQsCiAgICAgIC5tZFw6ZGlzcGxheS14cy1tZWRpdW0gewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS14cy1ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAubWRcOnRleHQteGwtcmVndWxhciB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICAubWRcOlwhdGV4dC14bC1tZWRpdW0gewogICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF0ZXh0LXhsLW1lZGl1bSwKICAgICAgLm1kXDp0ZXh0LXhsLW1lZGl1bSB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubWRcOnRleHQteGwtbWVkaXVtIHsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LXhsLXNlbWlib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAubWRcOnRleHQteGwtYm9sZCwKICAgICAgLm1kXDp0ZXh0LXhsLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICAubWRcOnRleHQteGwtYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LWxnLXJlZ3VsYXIgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgfQoKICAgICAgLm1kXDpcIXRleHQtbGctbWVkaXVtIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubWRcOlwhdGV4dC1sZy1tZWRpdW0sCiAgICAgIC5tZFw6XCF0ZXh0LWxnLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF0ZXh0LWxnLXNlbWlib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAubWRcOnRleHQtbGctc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgfQoKICAgICAgLm1kXDpcIXRleHQtbWQtcmVndWxhciB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXRleHQtbWQtcmVndWxhciwKICAgICAgLm1kXDp0ZXh0LW1kLXJlZ3VsYXIgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LW1kLW1lZGl1bSwKICAgICAgLm1kXDp0ZXh0LW1kLXJlZ3VsYXIgewogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICB9CgogICAgICAubWRcOnRleHQtbWQtbWVkaXVtIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6dGV4dC1zbS1yZWd1bGFyIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgIC5sZ1w6YWJzb2x1dGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgLmxnXDpib3R0b20tXFstMTByZW1cXSB7CiAgICAgICAgYm90dG9tOiAtMTByZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFvcmRlci0yIHsKICAgICAgICBvcmRlcjogMiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOm9yZGVyLTEgewogICAgICAgIG9yZGVyOiAxOwogICAgICB9CgogICAgICAubGdcOm9yZGVyLTIgewogICAgICAgIG9yZGVyOiAyOwogICAgICB9CgogICAgICAubGdcOlwhbXgtMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpcIW15LTIwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOm14LTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgICAgfQoKICAgICAgLmxnXDpteC0zIHsKICAgICAgICBtYXJnaW4tbGVmdDogMC43NXJlbTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6bXktMzIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhyZW07CiAgICAgICAgbWFyZ2luLXRvcDogOHJlbTsKICAgICAgfQoKICAgICAgLmxnXDpcIW10LTFcLjUgewogICAgICAgIG1hcmdpbi10b3A6IDAuMzc1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFtdC0yMCB7CiAgICAgICAgbWFyZ2luLXRvcDogNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOlwhbXQtMjQgewogICAgICAgIG1hcmdpbi10b3A6IDZyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpcIW10LVxbODhweFxdIHsKICAgICAgICBtYXJnaW4tdG9wOiA4OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6bXQtMTIgewogICAgICAgIG1hcmdpbi10b3A6IDNyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6bXQtMTQgewogICAgICAgIG1hcmdpbi10b3A6IDMuNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDptdC0yNCB7CiAgICAgICAgbWFyZ2luLXRvcDogNnJlbTsKICAgICAgfQoKICAgICAgLmxnXDpcIWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOmJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxnXDpmbGV4IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAubGdcOlwhaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6aGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAubGdcOmgtMzYgewogICAgICAgIGhlaWdodDogOXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpoLVxbMjRyZW1cXSB7CiAgICAgICAgaGVpZ2h0OiAyNHJlbTsKICAgICAgfQoKICAgICAgLmxnXDpoLVxbNzZweFxdIHsKICAgICAgICBoZWlnaHQ6IDc2cHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCF3LTFcLzIgewogICAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpcIXctMlwvNSB7CiAgICAgICAgd2lkdGg6IDQwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOnctMVwvMiB7CiAgICAgICAgd2lkdGg6IDUwJTsKICAgICAgfQoKICAgICAgLmxnXDp3LTFcLzMgewogICAgICAgIHdpZHRoOiAzMy4zMzMzMzMlOwogICAgICB9CgogICAgICAubGdcOnctMlwvMyB7CiAgICAgICAgd2lkdGg6IDY2LjY2NjY2NyU7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy0yXC81IHsKICAgICAgICB3aWR0aDogNDAlOwogICAgICB9CgogICAgICAubGdcOnctM1wvNSB7CiAgICAgICAgd2lkdGg6IDYwJTsKICAgICAgfQoKICAgICAgLmxnXDp3LTRcLzEyIHsKICAgICAgICB3aWR0aDogMzMuMzMzMzMzJTsKICAgICAgfQoKICAgICAgLmxnXDp3LTRcLzUgewogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy01XC8xMiB7CiAgICAgICAgd2lkdGg6IDQxLjY2NjY2NyU7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy04MCB7CiAgICAgICAgd2lkdGg6IDIwcmVtOwogICAgICB9CgogICAgICAubGdcOnctXFs0NTBweFxdIHsKICAgICAgICB3aWR0aDogNDUwcHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy1cWzU1MHB4XF0gewogICAgICAgIHdpZHRoOiA1NTBweDsKICAgICAgfQoKICAgICAgLmxnXDp3LWZpdCB7CiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50OwogICAgICB9CgogICAgICAubGdcOm1heC13LVxbMzJyZW1cXSB7CiAgICAgICAgbWF4LXdpZHRoOiAzMnJlbTsKICAgICAgfQoKICAgICAgLmxnXDpncmlkLWNvbHMtMiB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAubGdcOmdyaWQtY29scy0zIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgIH0KCiAgICAgIC5sZ1w6Z3JpZC1jb2xzLTQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgfQoKICAgICAgLmxnXDpmbGV4LXJvdyB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQoKICAgICAgLmxnXDpqdXN0aWZ5LWFyb3VuZCB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFnYXAtMiB7CiAgICAgICAgZ2FwOiAwLjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpnYXAtMTYgewogICAgICAgIGdhcDogNHJlbTsKICAgICAgfQoKICAgICAgLmxnXDpnYXAtMzIgewogICAgICAgIGdhcDogOHJlbTsKICAgICAgfQoKICAgICAgLmxnXDpnYXAtNSB7CiAgICAgICAgZ2FwOiAxLjI1cmVtOwogICAgICB9CgogICAgICAubGdcOmdhcC02IHsKICAgICAgICBnYXA6IDEuNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpyb3VuZGVkLTJ4bCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpyb3VuZGVkLVxbMnJlbVxdIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAycmVtOwogICAgICB9CgogICAgICAubGdcOmJvcmRlciB7CiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6Ym9yZGVyLXIgewogICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4OwogICAgICB9CgogICAgICAubGdcOmJvcmRlci1ncmF5LTMwMCB7CiAgICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYigyMDggMjEzIDIyMSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFiZy1jb3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOnAtMTAgewogICAgICAgIHBhZGRpbmc6IDIuNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpwLTIwIHsKICAgICAgICBwYWRkaW5nOiA1cmVtOwogICAgICB9CgogICAgICAubGdcOnAtNiB7CiAgICAgICAgcGFkZGluZzogMS41cmVtOwogICAgICB9CgogICAgICAubGdcOlwhcHgtMjggewogICAgICAgIHBhZGRpbmctbGVmdDogN3JlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDdyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpcIXB4LTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFweS0xMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpweC0wIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICAgICAgcGFkZGluZy1yaWdodDogMDsKICAgICAgfQoKICAgICAgLmxnXDpweC0yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cHgtNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cHgtNiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtOwogICAgICB9CgogICAgICAubGdcOnB5LTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtOwogICAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cHktMjAgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA1cmVtOwogICAgICAgIHBhZGRpbmctdG9wOiA1cmVtOwogICAgICB9CgogICAgICAubGdcOnBiLTAgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgICB9CgogICAgICAubGdcOnBiLTMyIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHJlbTsKICAgICAgfQoKICAgICAgLmxnXDpwYi04IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsKICAgICAgfQoKICAgICAgLmxnXDpwdC0wIHsKICAgICAgICBwYWRkaW5nLXRvcDogMDsKICAgICAgfQoKICAgICAgLmxnXDpwdC0xIHsKICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpwdC0yMCB7CiAgICAgICAgcGFkZGluZy10b3A6IDVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6XCF0ZXh0LWxlZnQgewogICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LWNlbnRlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXktbGctc2VtaWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6ZGlzcGxheS1sZy1ib2xkLAogICAgICAubGdcOmRpc3BsYXktbGctc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjk2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6ZGlzcGxheS1sZy1ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXktbWQtc2VtaWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6ZGlzcGxheS1tZC1ib2xkLAogICAgICAubGdcOmRpc3BsYXktbWQtc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDM2cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjcycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6ZGlzcGxheS1tZC1ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXktc20tYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXkteHMtc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LXhsLXJlZ3VsYXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6dGV4dC14bC1tZWRpdW0sCiAgICAgIC5sZ1w6dGV4dC14bC1yZWd1bGFyIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICAubGdcOnRleHQteGwtbWVkaXVtIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGdcOnRleHQteGwtYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICAubGdcOnRleHQtbGctcmVndWxhciB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICB9CgogICAgICAubGdcOnRleHQtbGctcmVndWxhciwKICAgICAgLmxnXDp0ZXh0LW1kLXJlZ3VsYXIgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CgogICAgICAubGdcOnRleHQtbWQtcmVndWxhciB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICB9CgogICAgICAubGdcOnRleHQtbWQtbWVkaXVtIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGdcOnRleHQtbWQtbWVkaXVtLAogICAgICAubGdcOnRleHQtbWQtc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6dGV4dC1tZC1zZW1pYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LXNtLXJlZ3VsYXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6dGV4dC1zbS1yZWd1bGFyLAogICAgICAubGdcOnRleHQtc20tc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6dGV4dC1zbS1zZW1pYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLmxnXDphZnRlclw6YmxvY2s6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6IHZhcigtLXR3LWNvbnRlbnQpOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkgewogICAgICAueGxcOlwhYm90dG9tLVxbLTdyZW1cXSB7CiAgICAgICAgYm90dG9tOiAtN3JlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAueGxcOm1iLTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgICAgfQoKICAgICAgLnhsXDptdC04IHsKICAgICAgICBtYXJnaW4tdG9wOiAycmVtOwogICAgICB9CgogICAgICAueGxcOlwhaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC54bFw6aGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAueGxcOmgtXFsyODBweFxdIHsKICAgICAgICBoZWlnaHQ6IDI4MHB4OwogICAgICB9CgogICAgICAueGxcOmdyaWQtY29scy00IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgIH0KCiAgICAgIC54bFw6Z3JpZC1jb2xzLTUgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgfQoKICAgICAgLnhsXDpncmlkLWNvbHMtNiB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAueGxcOlwhcHktOCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMnJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAueGxcOlwhcHQtMCB7CiAgICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgfQogIDwvc3R5bGU+CiAgPHN0eWxlPgogICAgQGtleWZyYW1lcyB2LXNoYWtlIHsKICAgICAgNTklIHsKICAgICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgfQoKICAgICAgNjAlLAogICAgICA4MCUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIDcwJSwKICAgICAgOTAlIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTJweDsKICAgICAgfQogICAgfQoKICAgIC5iZy1ibGFjayB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctd2hpdGUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRyYW5zcGFyZW50IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgY29sb3I6IGN1cnJlbnRDb2xvciAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1yZWQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjZGQyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1saWdodGVuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY5YTlhICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1kYXJrZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNTM5MzUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcmVkLWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1yZWQtZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzYyODI4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1kYXJrZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiNzFjMWMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcmVkLWFjY2VudC0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1yZWQtYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXJlZC1hY2NlbnQtMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjE3NDQgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcmVkLWFjY2VudC00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1waW5rIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1waW5rLWxpZ2h0ZW4tNSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2U0ZWMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcGluay1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhiYmQwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0OGZiMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1waW5rLWxpZ2h0ZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDYyOTIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcGluay1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM0MDdhICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDgxYjYwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstZGFya2VuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWQxNDU3ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODgwZTRmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstYWNjZW50LTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY0MDgxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstYWNjZW50LTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjUwMDU3ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXBpbmstYWNjZW50LTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXB1cnBsZSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWxpZ2h0ZW4tNSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2U1ZjUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWxpZ2h0ZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWJlZTcgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWxpZ2h0ZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWxpZ2h0ZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiYTY4YzggIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWxpZ2h0ZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYjQ3YmMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWRhcmtlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhlMjRhYSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1wdXJwbGUtZGFya2VuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2IxZmEyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXB1cnBsZS1kYXJrZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWRhcmtlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRhMTQ4YyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1wdXJwbGUtYWNjZW50LTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWE4MGZjICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXB1cnBsZS1hY2NlbnQtMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctcHVycGxlLWFjY2VudC0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1MDBmOSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1wdXJwbGUtYWNjZW50LTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtcHVycGxlIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLXB1cnBsZS1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlN2Y2ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtcHVycGxlLWxpZ2h0ZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1wdXJwbGUtbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2IzOWRkYiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLXB1cnBsZS1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTU3NWNkICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtcHVycGxlLWxpZ2h0ZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1wdXJwbGUtZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWUzNWIxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtcHVycGxlLWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLXB1cnBsZS1kYXJrZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0NTI3YTAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1wdXJwbGUtZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzExYjkyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtcHVycGxlLWFjY2VudC0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2IzODhmZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLXB1cnBsZS1hY2NlbnQtMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3YzRkZmYgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1wdXJwbGUtYWNjZW50LTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjUxZmZmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtcHVycGxlLWFjY2VudC00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlYSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1pbmRpZ28gewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzVjYWU5ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1saWdodGVuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWZhOGRhICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWM2YmMwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1kYXJrZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzOTQ5YWIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctaW5kaWdvLWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1pbmRpZ28tZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1kYXJrZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYTIzN2UgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctaW5kaWdvLWFjY2VudC0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1pbmRpZ28tYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM2ZGZlICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWluZGlnby1hY2NlbnQtMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzZDVhZmUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctaW5kaWdvLWFjY2VudC00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ibHVlIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ibHVlLWxpZ2h0ZW4tNSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2YyZmQgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ibHVlLWxpZ2h0ZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjYgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4OGU1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtZGFya2VuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTU2NWMwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ0N2ExICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtYWNjZW50LTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ4YWZmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtYWNjZW50LTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjk3OWZmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtYWNjZW50LTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpZ2h0LWJsdWUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpZ2h0LWJsdWUtbGlnaHRlbi01IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZjVmZSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ibHVlLWxpZ2h0ZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiM2U1ZmMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1saWdodGVuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODFkNGZhICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpZ2h0LWJsdWUtbGlnaHRlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRmYzNmNyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ibHVlLWxpZ2h0ZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOWI2ZjYgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1kYXJrZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1kYXJrZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjg4ZDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1kYXJrZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjc3YmQgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1kYXJrZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1hY2NlbnQtMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4MGQ4ZmYgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1hY2NlbnQtMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MGM0ZmYgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1hY2NlbnQtMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtYmx1ZS1hY2NlbnQtNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDkxZWEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctY3lhbiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctY3lhbi1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBmN2ZhICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWN5YW4tbGlnaHRlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2IyZWJmMiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWxpZ2h0ZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4MGRlZWEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctY3lhbi1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRkMGUxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWN5YW4tbGlnaHRlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI2YzZkYSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWRhcmtlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYWNjMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTdhNyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWRhcmtlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWRhcmtlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjA2NCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWFjY2VudC0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg0ZmZmZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWFjY2VudC0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWFjY2VudC0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1jeWFuLWFjY2VudC00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjhkNCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy10ZWFsIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy10ZWFsLWxpZ2h0ZW4tNSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGYyZjEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctdGVhbC1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjJkZmRiICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzgwY2JjNCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy10ZWFsLWxpZ2h0ZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGI2YWMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctdGVhbC1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4OTdiICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtZGFya2VuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2OTVjICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZDQwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtYWNjZW50LTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRmZmRhICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtYWNjZW50LTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRlOWI2ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXRlYWwtYWNjZW50LTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZWVuIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmVlbi1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThmNWU5ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZWVuLWxpZ2h0ZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JlZW4tbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E1ZDZhNyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmVlbi1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODFjNzg0ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZWVuLWxpZ2h0ZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JlZW4tZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZWVuLWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM4OGUzYyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmVlbi1kYXJrZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZTdkMzIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JlZW4tZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWI1ZTIwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZWVuLWFjY2VudC0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2I5ZjZjYSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmVlbi1hY2NlbnQtMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2OWYwYWUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JlZW4tYWNjZW50LTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNjc2ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZWVuLWFjY2VudC00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYzg1MyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ncmVlbiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtZ3JlZW4tbGlnaHRlbi01IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ncmVlbi1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNlZGM4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpZ2h0LWdyZWVuLWxpZ2h0ZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjNWUxYTUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtZ3JlZW4tbGlnaHRlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ncmVlbi1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNjYzY1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpZ2h0LWdyZWVuLWRhcmtlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdjYjM0MiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ncmVlbi1kYXJrZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2ODlmMzggIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtZ3JlZW4tZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU4YjJmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpZ2h0LWdyZWVuLWRhcmtlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMzNjkxZSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ncmVlbi1hY2NlbnQtMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2ZmOTAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGlnaHQtZ3JlZW4tYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjJmZjU5ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpZ2h0LWdyZWVuLWFjY2VudC0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc2ZmYwMyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saWdodC1ncmVlbi1hY2NlbnQtNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NGRkMTcgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGltZSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGltZS1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYmU3ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpbWUtbGlnaHRlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjRjMyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWxpZ2h0ZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmVlOWMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctbGltZS1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNlNzc1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWxpbWUtbGlnaHRlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZTE1NyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWRhcmtlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MwY2EzMyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FmYjQyYiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWRhcmtlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzllOWQyNCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWRhcmtlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzgyNzcxNyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWFjY2VudC0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZmY4MSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWFjY2VudC0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWFjY2VudC0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M2ZmYwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1saW1lLWFjY2VudC00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FlZWEwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy15ZWxsb3cgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOWM0ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1saWdodGVuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNTlkICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1kYXJrZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGQ4MzUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmcteWVsbG93LWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy15ZWxsb3ctZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlhODI1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1kYXJrZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNTdmMTcgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmcteWVsbG93LWFjY2VudC0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy15ZWxsb3ctYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXllbGxvdy1hY2NlbnQtMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmVhMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmcteWVsbG93LWFjY2VudC00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1hbWJlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYW1iZXItbGlnaHRlbi01IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1hbWJlci1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlY2IzICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWFtYmVyLWxpZ2h0ZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmUwODIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYW1iZXItbGlnaHRlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1hbWJlci1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjYTI4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWFtYmVyLWRhcmtlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYjMwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1hbWJlci1kYXJrZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmEwMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYW1iZXItZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY4ZjAwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWFtYmVyLWRhcmtlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1hbWJlci1hY2NlbnQtMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmU1N2YgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYW1iZXItYWNjZW50LTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWFtYmVyLWFjY2VudC0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzQwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1hbWJlci1hY2NlbnQtNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFiMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctb3JhbmdlIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtbGlnaHRlbi01IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNlMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtbGlnaHRlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2M4MCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtbGlnaHRlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYjc0ZCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtbGlnaHRlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLW9yYW5nZS1kYXJrZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNTdjMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctb3JhbmdlLWRhcmtlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmNmMwMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLW9yYW5nZS1hY2NlbnQtMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmQxODAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctb3JhbmdlLWFjY2VudC0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWI0MCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1vcmFuZ2UtYWNjZW50LTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLW9yYW5nZS1hY2NlbnQtNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZkMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1vcmFuZ2UgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtb3JhbmdlLWxpZ2h0ZW4tNSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmU5ZTcgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1vcmFuZ2UtbGlnaHRlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2NiYyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLW9yYW5nZS1saWdodGVuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtb3JhbmdlLWxpZ2h0ZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjhhNjUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1vcmFuZ2UtbGlnaHRlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzA0MyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLW9yYW5nZS1kYXJrZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNDUxMWUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1vcmFuZ2UtZGFya2VuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0YTE5ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtb3JhbmdlLWRhcmtlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q4NDMxNSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLW9yYW5nZS1kYXJrZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiZjM2MGMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1vcmFuZ2UtYWNjZW50LTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5ZTgwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWRlZXAtb3JhbmdlLWFjY2VudC0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmU0MCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1kZWVwLW9yYW5nZS1hY2NlbnQtMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjNkMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZGVlcC1vcmFuZ2UtYWNjZW50LTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJyb3duIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1icm93bi1saWdodGVuLTUgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlYmU5ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJyb3duLWxpZ2h0ZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYnJvd24tbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JjYWFhNCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1icm93bi1saWdodGVuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTE4ODdmICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJyb3duLWxpZ2h0ZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYnJvd24tZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmQ0YzQxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJyb3duLWRhcmtlbi0yIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1icm93bi1kYXJrZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZTM0MmUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYnJvd24tZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2UyNzIzICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtZ3JleSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1ncmV5LWxpZ2h0ZW4tNSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1ncmV5LWxpZ2h0ZW4tNCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1ncmV5LWxpZ2h0ZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiMGJlYzUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1ncmV5LWxpZ2h0ZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1ncmV5LWxpZ2h0ZW4tMSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1ncmV5LWRhcmtlbi0xIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU0NmU3YSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ibHVlLWdyZXktZGFya2VuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWJsdWUtZ3JleS1kYXJrZW4tMyB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNzQ3NGYgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctYmx1ZS1ncmV5LWRhcmtlbi00IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MzIzOCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmV5IHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmV5LWxpZ2h0ZW4tNSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JleS1saWdodGVuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZXktbGlnaHRlbi0zIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1ncmV5LWxpZ2h0ZW4tMiB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctZ3JleS1saWdodGVuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZXktZGFya2VuLTEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZXktZGFya2VuLTIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZXktZGFya2VuLTMgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLWdyZXktZGFya2VuLTQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJnLXNoYWRlcy1ibGFjayB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYmctc2hhZGVzLXdoaXRlIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1zaGFkZXMtdHJhbnNwYXJlbnQgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmxhY2sgewogICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXdoaXRlIHsKICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC10cmFuc3BhcmVudCB7CiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXJlZCB7CiAgICAgIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjZmZjZGQyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWxpZ2h0ZW4tMyB7CiAgICAgIGNvbG9yOiAjZWY5YTlhICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWRhcmtlbi0xIHsKICAgICAgY29sb3I6ICNlNTM5MzUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1yZWQtZGFya2VuLTIgewogICAgICBjb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXJlZC1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjYzYyODI4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWRhcmtlbi00IHsKICAgICAgY29sb3I6ICNiNzFjMWMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1yZWQtYWNjZW50LTEgewogICAgICBjb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXJlZC1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjZmY1MjUyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcmVkLWFjY2VudC0zIHsKICAgICAgY29sb3I6ICNmZjE3NDQgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1yZWQtYWNjZW50LTQgewogICAgICBjb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXBpbmsgewogICAgICBjb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXBpbmstbGlnaHRlbi01IHsKICAgICAgY29sb3I6ICNmY2U0ZWMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1waW5rLWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjZjhiYmQwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1saWdodGVuLTMgewogICAgICBjb2xvcjogI2Y0OGZiMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXBpbmstbGlnaHRlbi0yIHsKICAgICAgY29sb3I6ICNmMDYyOTIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1waW5rLWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjZWM0MDdhICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjZDgxYjYwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1kYXJrZW4tMiB7CiAgICAgIGNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjYWQxNDU3ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjODgwZTRmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1hY2NlbnQtMSB7CiAgICAgIGNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjZmY0MDgxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1hY2NlbnQtMyB7CiAgICAgIGNvbG9yOiAjZjUwMDU3ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcGluay1hY2NlbnQtNCB7CiAgICAgIGNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcHVycGxlIHsKICAgICAgY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtbGlnaHRlbi01IHsKICAgICAgY29sb3I6ICNmM2U1ZjUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtbGlnaHRlbi00IHsKICAgICAgY29sb3I6ICNlMWJlZTcgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtbGlnaHRlbi0zIHsKICAgICAgY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtbGlnaHRlbi0yIHsKICAgICAgY29sb3I6ICNiYTY4YzggIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtbGlnaHRlbi0xIHsKICAgICAgY29sb3I6ICNhYjQ3YmMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtZGFya2VuLTEgewogICAgICBjb2xvcjogIzhlMjRhYSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXB1cnBsZS1kYXJrZW4tMiB7CiAgICAgIGNvbG9yOiAjN2IxZmEyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcHVycGxlLWRhcmtlbi0zIHsKICAgICAgY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtZGFya2VuLTQgewogICAgICBjb2xvcjogIzRhMTQ4YyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXB1cnBsZS1hY2NlbnQtMSB7CiAgICAgIGNvbG9yOiAjZWE4MGZjICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcHVycGxlLWFjY2VudC0yIHsKICAgICAgY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wdXJwbGUtYWNjZW50LTMgewogICAgICBjb2xvcjogI2Q1MDBmOSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXB1cnBsZS1hY2NlbnQtNCB7CiAgICAgIGNvbG9yOiAjYTBmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1wdXJwbGUgewogICAgICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtcHVycGxlLWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZWRlN2Y2ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1wdXJwbGUtbGlnaHRlbi00IHsKICAgICAgY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLXB1cnBsZS1saWdodGVuLTMgewogICAgICBjb2xvcjogI2IzOWRkYiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtcHVycGxlLWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjOTU3NWNkICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1wdXJwbGUtbGlnaHRlbi0xIHsKICAgICAgY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLXB1cnBsZS1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjNWUzNWIxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1wdXJwbGUtZGFya2VuLTIgewogICAgICBjb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtcHVycGxlLWRhcmtlbi0zIHsKICAgICAgY29sb3I6ICM0NTI3YTAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLXB1cnBsZS1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjMzExYjkyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1wdXJwbGUtYWNjZW50LTEgewogICAgICBjb2xvcjogI2IzODhmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtcHVycGxlLWFjY2VudC0yIHsKICAgICAgY29sb3I6ICM3YzRkZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLXB1cnBsZS1hY2NlbnQtMyB7CiAgICAgIGNvbG9yOiAjNjUxZmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1wdXJwbGUtYWNjZW50LTQgewogICAgICBjb2xvcjogIzYyMDBlYSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWluZGlnbyB7CiAgICAgIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjYzVjYWU5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWxpZ2h0ZW4tMyB7CiAgICAgIGNvbG9yOiAjOWZhOGRhICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjNWM2YmMwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWRhcmtlbi0xIHsKICAgICAgY29sb3I6ICMzOTQ5YWIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1pbmRpZ28tZGFya2VuLTIgewogICAgICBjb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWluZGlnby1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWRhcmtlbi00IHsKICAgICAgY29sb3I6ICMxYTIzN2UgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1pbmRpZ28tYWNjZW50LTEgewogICAgICBjb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWluZGlnby1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjNTM2ZGZlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaW5kaWdvLWFjY2VudC0zIHsKICAgICAgY29sb3I6ICMzZDVhZmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1pbmRpZ28tYWNjZW50LTQgewogICAgICBjb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJsdWUgewogICAgICBjb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJsdWUtbGlnaHRlbi01IHsKICAgICAgY29sb3I6ICNlM2YyZmQgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1saWdodGVuLTMgewogICAgICBjb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJsdWUtbGlnaHRlbi0yIHsKICAgICAgY29sb3I6ICM2NGI1ZjYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjMWU4OGU1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1kYXJrZW4tMiB7CiAgICAgIGNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjMTU2NWMwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjMGQ0N2ExICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1hY2NlbnQtMSB7CiAgICAgIGNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjNDQ4YWZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1hY2NlbnQtMyB7CiAgICAgIGNvbG9yOiAjMjk3OWZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1hY2NlbnQtNCB7CiAgICAgIGNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGlnaHQtYmx1ZSB7CiAgICAgIGNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGlnaHQtYmx1ZS1saWdodGVuLTUgewogICAgICBjb2xvcjogI2UxZjVmZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWJsdWUtbGlnaHRlbi00IHsKICAgICAgY29sb3I6ICNiM2U1ZmMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWxpZ2h0ZW4tMyB7CiAgICAgIGNvbG9yOiAjODFkNGZhICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGlnaHQtYmx1ZS1saWdodGVuLTIgewogICAgICBjb2xvcjogIzRmYzNmNyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWJsdWUtbGlnaHRlbi0xIHsKICAgICAgY29sb3I6ICMyOWI2ZjYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWRhcmtlbi0xIHsKICAgICAgY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWRhcmtlbi0yIHsKICAgICAgY29sb3I6ICMwMjg4ZDEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWRhcmtlbi0zIHsKICAgICAgY29sb3I6ICMwMjc3YmQgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWRhcmtlbi00IHsKICAgICAgY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWFjY2VudC0xIHsKICAgICAgY29sb3I6ICM4MGQ4ZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWFjY2VudC0yIHsKICAgICAgY29sb3I6ICM0MGM0ZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWFjY2VudC0zIHsKICAgICAgY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ibHVlLWFjY2VudC00IHsKICAgICAgY29sb3I6ICMwMDkxZWEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1jeWFuIHsKICAgICAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1jeWFuLWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZTBmN2ZhICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtY3lhbi1saWdodGVuLTQgewogICAgICBjb2xvcjogI2IyZWJmMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tbGlnaHRlbi0zIHsKICAgICAgY29sb3I6ICM4MGRlZWEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1jeWFuLWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjNGRkMGUxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtY3lhbi1saWdodGVuLTEgewogICAgICBjb2xvcjogIzI2YzZkYSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tZGFya2VuLTEgewogICAgICBjb2xvcjogIzAwYWNjMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tZGFya2VuLTIgewogICAgICBjb2xvcjogIzAwOTdhNyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tZGFya2VuLTMgewogICAgICBjb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tZGFya2VuLTQgewogICAgICBjb2xvcjogIzAwNjA2NCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tYWNjZW50LTEgewogICAgICBjb2xvcjogIzg0ZmZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tYWNjZW50LTIgewogICAgICBjb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tYWNjZW50LTMgewogICAgICBjb2xvcjogIzAwZTVmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWN5YW4tYWNjZW50LTQgewogICAgICBjb2xvcjogIzAwYjhkNCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXRlYWwgewogICAgICBjb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXRlYWwtbGlnaHRlbi01IHsKICAgICAgY29sb3I6ICNlMGYyZjEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC10ZWFsLWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjYjJkZmRiICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1saWdodGVuLTMgewogICAgICBjb2xvcjogIzgwY2JjNCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXRlYWwtbGlnaHRlbi0yIHsKICAgICAgY29sb3I6ICM0ZGI2YWMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC10ZWFsLWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjMDA4OTdiICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1kYXJrZW4tMiB7CiAgICAgIGNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjMDA2OTVjICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjMDA0ZDQwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1hY2NlbnQtMSB7CiAgICAgIGNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjNjRmZmRhICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1hY2NlbnQtMyB7CiAgICAgIGNvbG9yOiAjMWRlOWI2ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtdGVhbC1hY2NlbnQtNCB7CiAgICAgIGNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JlZW4gewogICAgICBjb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWdyZWVuLWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZThmNWU5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JlZW4tbGlnaHRlbi00IHsKICAgICAgY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ncmVlbi1saWdodGVuLTMgewogICAgICBjb2xvcjogI2E1ZDZhNyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWdyZWVuLWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjODFjNzg0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JlZW4tbGlnaHRlbi0xIHsKICAgICAgY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ncmVlbi1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JlZW4tZGFya2VuLTIgewogICAgICBjb2xvcjogIzM4OGUzYyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWdyZWVuLWRhcmtlbi0zIHsKICAgICAgY29sb3I6ICMyZTdkMzIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ncmVlbi1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjMWI1ZTIwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JlZW4tYWNjZW50LTEgewogICAgICBjb2xvcjogI2I5ZjZjYSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWdyZWVuLWFjY2VudC0yIHsKICAgICAgY29sb3I6ICM2OWYwYWUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ncmVlbi1hY2NlbnQtMyB7CiAgICAgIGNvbG9yOiAjMDBlNjc2ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JlZW4tYWNjZW50LTQgewogICAgICBjb2xvcjogIzAwYzg1MyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWdyZWVuIHsKICAgICAgY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ncmVlbi1saWdodGVuLTUgewogICAgICBjb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWdyZWVuLWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjZGNlZGM4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGlnaHQtZ3JlZW4tbGlnaHRlbi0zIHsKICAgICAgY29sb3I6ICNjNWUxYTUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ncmVlbi1saWdodGVuLTIgewogICAgICBjb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWdyZWVuLWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjOWNjYzY1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGlnaHQtZ3JlZW4tZGFya2VuLTEgewogICAgICBjb2xvcjogIzdjYjM0MiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWdyZWVuLWRhcmtlbi0yIHsKICAgICAgY29sb3I6ICM2ODlmMzggIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ncmVlbi1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjNTU4YjJmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGlnaHQtZ3JlZW4tZGFya2VuLTQgewogICAgICBjb2xvcjogIzMzNjkxZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWdyZWVuLWFjY2VudC0xIHsKICAgICAgY29sb3I6ICNjY2ZmOTAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saWdodC1ncmVlbi1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjYjJmZjU5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGlnaHQtZ3JlZW4tYWNjZW50LTMgewogICAgICBjb2xvcjogIzc2ZmYwMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpZ2h0LWdyZWVuLWFjY2VudC00IHsKICAgICAgY29sb3I6ICM2NGRkMTcgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saW1lIHsKICAgICAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saW1lLWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZjlmYmU3ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGltZS1saWdodGVuLTQgewogICAgICBjb2xvcjogI2YwZjRjMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtbGlnaHRlbi0zIHsKICAgICAgY29sb3I6ICNlNmVlOWMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1saW1lLWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjZGNlNzc1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGltZS1saWdodGVuLTEgewogICAgICBjb2xvcjogI2Q0ZTE1NyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtZGFya2VuLTEgewogICAgICBjb2xvcjogI2MwY2EzMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtZGFya2VuLTIgewogICAgICBjb2xvcjogI2FmYjQyYiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtZGFya2VuLTMgewogICAgICBjb2xvcjogIzllOWQyNCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtZGFya2VuLTQgewogICAgICBjb2xvcjogIzgyNzcxNyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtYWNjZW50LTEgewogICAgICBjb2xvcjogI2Y0ZmY4MSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtYWNjZW50LTIgewogICAgICBjb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtYWNjZW50LTMgewogICAgICBjb2xvcjogI2M2ZmYwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWxpbWUtYWNjZW50LTQgewogICAgICBjb2xvcjogI2FlZWEwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXllbGxvdyB7CiAgICAgIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjZmZmOWM0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWxpZ2h0ZW4tMyB7CiAgICAgIGNvbG9yOiAjZmZmNTlkICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjZmZlZTU4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWRhcmtlbi0xIHsKICAgICAgY29sb3I6ICNmZGQ4MzUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC15ZWxsb3ctZGFya2VuLTIgewogICAgICBjb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXllbGxvdy1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjZjlhODI1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWRhcmtlbi00IHsKICAgICAgY29sb3I6ICNmNTdmMTcgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC15ZWxsb3ctYWNjZW50LTEgewogICAgICBjb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXllbGxvdy1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjZmYwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQteWVsbG93LWFjY2VudC0zIHsKICAgICAgY29sb3I6ICNmZmVhMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC15ZWxsb3ctYWNjZW50LTQgewogICAgICBjb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWFtYmVyIHsKICAgICAgY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1hbWJlci1saWdodGVuLTUgewogICAgICBjb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWFtYmVyLWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjZmZlY2IzICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYW1iZXItbGlnaHRlbi0zIHsKICAgICAgY29sb3I6ICNmZmUwODIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1hbWJlci1saWdodGVuLTIgewogICAgICBjb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWFtYmVyLWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjZmZjYTI4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYW1iZXItZGFya2VuLTEgewogICAgICBjb2xvcjogI2ZmYjMwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWFtYmVyLWRhcmtlbi0yIHsKICAgICAgY29sb3I6ICNmZmEwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1hbWJlci1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjZmY4ZjAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYW1iZXItZGFya2VuLTQgewogICAgICBjb2xvcjogI2ZmNmYwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWFtYmVyLWFjY2VudC0xIHsKICAgICAgY29sb3I6ICNmZmU1N2YgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1hbWJlci1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiAjZmZkNzQwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYW1iZXItYWNjZW50LTMgewogICAgICBjb2xvcjogI2ZmYzQwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWFtYmVyLWFjY2VudC00IHsKICAgICAgY29sb3I6ICNmZmFiMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1vcmFuZ2UgewogICAgICBjb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1saWdodGVuLTUgewogICAgICBjb2xvcjogI2ZmZjNlMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1saWdodGVuLTQgewogICAgICBjb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1saWdodGVuLTMgewogICAgICBjb2xvcjogI2ZmY2M4MCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1saWdodGVuLTIgewogICAgICBjb2xvcjogI2ZmYjc0ZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1saWdodGVuLTEgewogICAgICBjb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtb3JhbmdlLWRhcmtlbi0yIHsKICAgICAgY29sb3I6ICNmNTdjMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1vcmFuZ2UtZGFya2VuLTMgewogICAgICBjb2xvcjogI2VmNmMwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtb3JhbmdlLWFjY2VudC0xIHsKICAgICAgY29sb3I6ICNmZmQxODAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1vcmFuZ2UtYWNjZW50LTIgewogICAgICBjb2xvcjogI2ZmYWI0MCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW9yYW5nZS1hY2NlbnQtMyB7CiAgICAgIGNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtb3JhbmdlLWFjY2VudC00IHsKICAgICAgY29sb3I6ICNmZjZkMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLW9yYW5nZSB7CiAgICAgIGNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1vcmFuZ2UtbGlnaHRlbi01IHsKICAgICAgY29sb3I6ICNmYmU5ZTcgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLW9yYW5nZS1saWdodGVuLTQgewogICAgICBjb2xvcjogI2ZmY2NiYyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtb3JhbmdlLWxpZ2h0ZW4tMyB7CiAgICAgIGNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1vcmFuZ2UtbGlnaHRlbi0yIHsKICAgICAgY29sb3I6ICNmZjhhNjUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLW9yYW5nZS1saWdodGVuLTEgewogICAgICBjb2xvcjogI2ZmNzA0MyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtb3JhbmdlLWRhcmtlbi0xIHsKICAgICAgY29sb3I6ICNmNDUxMWUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLW9yYW5nZS1kYXJrZW4tMiB7CiAgICAgIGNvbG9yOiAjZTY0YTE5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1vcmFuZ2UtZGFya2VuLTMgewogICAgICBjb2xvcjogI2Q4NDMxNSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtb3JhbmdlLWRhcmtlbi00IHsKICAgICAgY29sb3I6ICNiZjM2MGMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLW9yYW5nZS1hY2NlbnQtMSB7CiAgICAgIGNvbG9yOiAjZmY5ZTgwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVlcC1vcmFuZ2UtYWNjZW50LTIgewogICAgICBjb2xvcjogI2ZmNmU0MCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlZXAtb3JhbmdlLWFjY2VudC0zIHsKICAgICAgY29sb3I6ICNmZjNkMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kZWVwLW9yYW5nZS1hY2NlbnQtNCB7CiAgICAgIGNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYnJvd24gewogICAgICBjb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJyb3duLWxpZ2h0ZW4tNSB7CiAgICAgIGNvbG9yOiAjZWZlYmU5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYnJvd24tbGlnaHRlbi00IHsKICAgICAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1icm93bi1saWdodGVuLTMgewogICAgICBjb2xvcjogI2JjYWFhNCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJyb3duLWxpZ2h0ZW4tMiB7CiAgICAgIGNvbG9yOiAjYTE4ODdmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYnJvd24tbGlnaHRlbi0xIHsKICAgICAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1icm93bi1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjNmQ0YzQxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYnJvd24tZGFya2VuLTIgewogICAgICBjb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJyb3duLWRhcmtlbi0zIHsKICAgICAgY29sb3I6ICM0ZTM0MmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1icm93bi1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjM2UyNzIzICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1ncmV5IHsKICAgICAgY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWdyZXktbGlnaHRlbi01IHsKICAgICAgY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWdyZXktbGlnaHRlbi00IHsKICAgICAgY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWdyZXktbGlnaHRlbi0zIHsKICAgICAgY29sb3I6ICNiMGJlYzUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWdyZXktbGlnaHRlbi0yIHsKICAgICAgY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWdyZXktbGlnaHRlbi0xIHsKICAgICAgY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWdyZXktZGFya2VuLTEgewogICAgICBjb2xvcjogIzU0NmU3YSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJsdWUtZ3JleS1kYXJrZW4tMiB7CiAgICAgIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtYmx1ZS1ncmV5LWRhcmtlbi0zIHsKICAgICAgY29sb3I6ICMzNzQ3NGYgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ibHVlLWdyZXktZGFya2VuLTQgewogICAgICBjb2xvcjogIzI2MzIzOCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWdyZXkgewogICAgICBjb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWdyZXktbGlnaHRlbi01IHsKICAgICAgY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ncmV5LWxpZ2h0ZW4tNCB7CiAgICAgIGNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JleS1saWdodGVuLTMgewogICAgICBjb2xvcjogI2VlZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWdyZXktbGlnaHRlbi0yIHsKICAgICAgY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1ncmV5LWxpZ2h0ZW4tMSB7CiAgICAgIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JleS1kYXJrZW4tMSB7CiAgICAgIGNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JleS1kYXJrZW4tMiB7CiAgICAgIGNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JleS1kYXJrZW4tMyB7CiAgICAgIGNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZ3JleS1kYXJrZW4tNCB7CiAgICAgIGNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtc2hhZGVzLWJsYWNrIHsKICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1zaGFkZXMtd2hpdGUgewogICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXNoYWRlcy10cmFuc3BhcmVudCB7CiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIQogKiByZXNzLmNzcyDigKIgdjIuMC40CiAqIE1JVCBMaWNlbnNlCiAqIGdpdGh1Yi5jb20vZmlsaXBlbGluaGFyZXMvcmVzcwogKi8KICAgIGh0bWwgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgICAgLW1vei10YWItc2l6ZTogNDsKICAgICAgLW8tdGFiLXNpemU6IDQ7CiAgICAgIHRhYi1zaXplOiA0OwogICAgICB3b3JkLWJyZWFrOiBub3JtYWw7CiAgICB9CgoKICAgIC52LWNvbC1sZy02LnYtY29sLTEyOm50aC1jaGlsZCgxKSAubGFzdF9oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgoKCgogICAgKiwKICAgIDphZnRlciwKICAgIDpiZWZvcmUgewogICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgICBib3gtc2l6aW5nOiBpbmhlcml0OwogICAgfQoKICAgIDphZnRlciwKICAgIDpiZWZvcmUgewogICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7CiAgICAgIHZlcnRpY2FsLWFsaWduOiBpbmhlcml0OwogICAgfQoKICAgICogewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgaHIgewogICAgICBoZWlnaHQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgfQoKICAgIGRldGFpbHMsCiAgICBtYWluIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgogICAgc3VtbWFyeSB7CiAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTsKICAgIH0KCiAgICBzbWFsbCB7CiAgICAgIGZvbnQtc2l6ZTogODAlOwogICAgfQoKICAgIFtoaWRkZW5dIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICBhYmJyW3RpdGxlXSB7CiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOwogICAgfQoKICAgIGEgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICBhOmFjdGl2ZSwKICAgIGE6aG92ZXIgewogICAgICBvdXRsaW5lLXdpZHRoOiAwOwogICAgfQoKICAgIGNvZGUsCiAgICBrYmQsCiAgICBwcmUsCiAgICBzYW1wIHsKICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOwogICAgfQoKICAgIHByZSB7CiAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgfQoKICAgIGIsCiAgICBzdHJvbmcgewogICAgICBmb250LXdlaWdodDogYm9sZGVyOwogICAgfQoKICAgIHN1YiwKICAgIHN1cCB7CiAgICAgIGZvbnQtc2l6ZTogNzUlOwogICAgICBsaW5lLWhlaWdodDogMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CiAgICB9CgogICAgc3ViIHsKICAgICAgYm90dG9tOiAtMC4yNWVtOwogICAgfQoKICAgIHN1cCB7CiAgICAgIHRvcDogLTAuNWVtOwogICAgfQoKICAgIGlucHV0IHsKICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgIH0KCiAgICBbZGlzYWJsZWRdIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgfQoKICAgIFt0eXBlPSJudW1iZXIiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwKICAgIFt0eXBlPSJudW1iZXIiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7CiAgICAgIGhlaWdodDogYXV0bzsKICAgIH0KCiAgICBbdHlwZT0ic2VhcmNoIl0gewogICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsKICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICB9CgogICAgW3R5cGU9InNlYXJjaCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLAogICAgW3R5cGU9InNlYXJjaCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHsKICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgfQoKICAgIHRleHRhcmVhIHsKICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIHJlc2l6ZTogdmVydGljYWw7CiAgICB9CgogICAgYnV0dG9uLAogICAgaW5wdXQsCiAgICBvcHRncm91cCwKICAgIHNlbGVjdCwKICAgIHRleHRhcmVhIHsKICAgICAgZm9udDogaW5oZXJpdDsKICAgIH0KCiAgICBvcHRncm91cCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CgogICAgYnV0dG9uIHsKICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICB9CgogICAgYnV0dG9uLAogICAgc2VsZWN0IHsKICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICB9CgogICAgW3JvbGU9ImJ1dHRvbiJdLAogICAgW3R5cGU9ImJ1dHRvbiJdLAogICAgW3R5cGU9InJlc2V0Il0sCiAgICBbdHlwZT0ic3VibWl0Il0sCiAgICBidXR0b24gewogICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIFt0eXBlPSJidXR0b24iXTo6LW1vei1mb2N1cy1pbm5lciwKICAgIFt0eXBlPSJyZXNldCJdOjotbW96LWZvY3VzLWlubmVyLAogICAgW3R5cGU9InN1Ym1pdCJdOjotbW96LWZvY3VzLWlubmVyLAogICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHsKICAgICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgICBwYWRkaW5nOiAwOwogICAgfQoKICAgIFt0eXBlPSJidXR0b24iXTo6LW1vei1mb2N1cy1pbm5lciwKICAgIFt0eXBlPSJyZXNldCJdOjotbW96LWZvY3VzLWlubmVyLAogICAgW3R5cGU9InN1Ym1pdCJdOjotbW96LWZvY3VzLWlubmVyLAogICAgYnV0dG9uOi1tb3otZm9jdXNyaW5nIHsKICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OwogICAgfQoKICAgIFt0eXBlPSJyZXNldCJdLAogICAgW3R5cGU9InN1Ym1pdCJdLAogICAgYnV0dG9uLAogICAgaHRtbCBbdHlwZT0iYnV0dG9uIl0gewogICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsKICAgIH0KCiAgICBidXR0b24sCiAgICBpbnB1dCwKICAgIHNlbGVjdCwKICAgIHRleHRhcmVhIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTsKICAgIH0KCiAgICBzZWxlY3QgewogICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIH0KCiAgICBzZWxlY3Q6Oi1tcy1leHBhbmQgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIHNlbGVjdDo6LW1zLXZhbHVlIHsKICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjsKICAgIH0KCiAgICBsZWdlbmQgewogICAgICBib3JkZXI6IDA7CiAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICBkaXNwbGF5OiB0YWJsZTsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgfQoKICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24gewogICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsKICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIGZvbnQ6IGluaGVyaXQ7CiAgICB9CgogICAgOjotbXMtY2xlYXIsCiAgICA6Oi1tcy1yZXZlYWwgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIGltZyB7CiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTsKICAgIH0KCiAgICBwcm9ncmVzcyB7CiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKICAgIH0KCiAgICBAbWVkaWEgc2NyZWVuIHsKICAgICAgW2hpZGRlbn49InNjcmVlbiJdIHsKICAgICAgICBkaXNwbGF5OiBpbmhlcml0OwogICAgICB9CgogICAgICBbaGlkZGVufj0ic2NyZWVuIl06bm90KDphY3RpdmUpOm5vdCg6Zm9jdXMpOm5vdCg6dGFyZ2V0KSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgW2FyaWEtYnVzeT0idHJ1ZSJdIHsKICAgICAgY3Vyc29yOiBwcm9ncmVzczsKICAgIH0KCiAgICBbYXJpYS1jb250cm9sc10gewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgW2FyaWEtZGlzYWJsZWQ9InRydWUiXSB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIH0KCiAgICAuZGlhbG9nLWJvdHRvbS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5kaWFsb2ctdG9wLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLmRpYWxvZy10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIyNW1zICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5kaWFsb2ctYm90dG9tLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlLAogICAgLmRpYWxvZy10b3AtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUsCiAgICAuZGlhbG9nLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTI1bXMgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmRpYWxvZy1ib3R0b20tdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuZGlhbG9nLWJvdHRvbS10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSwKICAgIC5kaWFsb2ctdG9wLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLmRpYWxvZy10b3AtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUsCiAgICAuZGlhbG9nLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLmRpYWxvZy10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZGlhbG9nLXRyYW5zaXRpb24tZW50ZXItZnJvbSwKICAgIC5kaWFsb2ctdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTsKICAgIH0KCiAgICAuZGlhbG9nLXRyYW5zaXRpb24tZW50ZXItdG8sCiAgICAuZGlhbG9nLXRyYW5zaXRpb24tbGVhdmUtZnJvbSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLmRpYWxvZy1ib3R0b20tdHJhbnNpdGlvbi1lbnRlci1mcm9tLAogICAgLmRpYWxvZy1ib3R0b20tdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKDUwdmggKyA1MCUpKTsKICAgIH0KCiAgICAuZGlhbG9nLXRvcC10cmFuc2l0aW9uLWVudGVyLWZyb20sCiAgICAuZGlhbG9nLXRvcC10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTUwdmggLSA1MCUpKTsKICAgIH0KCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUsCiAgICAucGlja2VyLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnBpY2tlci10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3MgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1tb3ZlLAogICAgLnBpY2tlci10cmFuc2l0aW9uLW1vdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5waWNrZXItcmV2ZXJzZS10cmFuc2l0aW9uLWVudGVyLWZyb20sCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS10bywKICAgIC5waWNrZXItdHJhbnNpdGlvbi1lbnRlci1mcm9tLAogICAgLnBpY2tlci10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUsCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1mcm9tLAogICAgLnBpY2tlci1yZXZlcnNlLXRyYW5zaXRpb24tbGVhdmUtdG8sCiAgICAucGlja2VyLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlLAogICAgLnBpY2tlci10cmFuc2l0aW9uLWxlYXZlLWZyb20sCiAgICAucGlja2VyLXRyYW5zaXRpb24tbGVhdmUtdG8gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgIH0KCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUsCiAgICAucGlja2VyLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnBpY2tlci10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5waWNrZXItdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAucGlja2VyLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5waWNrZXItdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAucGlja2VyLXRyYW5zaXRpb24tZW50ZXItZnJvbSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUpOwogICAgfQoKICAgIC5waWNrZXItdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlKTsKICAgIH0KCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBpY2tlci1yZXZlcnNlLXRyYW5zaXRpb24tbW92ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBpY2tlci1yZXZlcnNlLXRyYW5zaXRpb24tZW50ZXItZnJvbSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlKTsKICAgIH0KCiAgICAucGlja2VyLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUpOwogICAgfQoKICAgIC5leHBhbmQtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuZXhwYW5kLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5leHBhbmQtdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZXhwYW5kLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLmV4cGFuZC10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5leHBhbmQteC10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5leHBhbmQteC10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3MgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZXhwYW5kLXgtdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZXhwYW5kLXgtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuZXhwYW5kLXgtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY2FsZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zY2FsZS10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3MgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2NhbGUtdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2NhbGUtdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgLnNjYWxlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xcyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY2FsZS10cmFuc2l0aW9uLWVudGVyLWZyb20gewogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgfQoKICAgIC5zY2FsZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zY2FsZS10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY2FsZS1yb3RhdGUtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuc2NhbGUtcm90YXRlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY2FsZS1yb3RhdGUtdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2NhbGUtcm90YXRlLXRyYW5zaXRpb24tbGVhdmUtdG8gewogICAgICBvcGFjaXR5OiAwOwogICAgfQoKICAgIC5zY2FsZS1yb3RhdGUtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjFzICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNjYWxlLXJvdGF0ZS10cmFuc2l0aW9uLWVudGVyLWZyb20gewogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDApIHJvdGF0ZSgtNDVkZWcpOwogICAgfQoKICAgIC5zY2FsZS1yb3RhdGUtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuc2NhbGUtcm90YXRlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNjYWxlLXJvdGF0ZS1yZXZlcnNlLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnNjYWxlLXJvdGF0ZS1yZXZlcnNlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY2FsZS1yb3RhdGUtcmV2ZXJzZS10cmFuc2l0aW9uLW1vdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY2FsZS1yb3RhdGUtcmV2ZXJzZS10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAuc2NhbGUtcm90YXRlLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjFzICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNjYWxlLXJvdGF0ZS1yZXZlcnNlLXRyYW5zaXRpb24tZW50ZXItZnJvbSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgcm90YXRlKDQ1ZGVnKTsKICAgIH0KCiAgICAuc2NhbGUtcm90YXRlLXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuc2NhbGUtcm90YXRlLXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHkgIWltcG9ydGFudDsKICAgIH0KCiAgICAubWVzc2FnZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5tZXNzYWdlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZXNzYWdlLXRyYW5zaXRpb24tbW92ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lc3NhZ2UtdHJhbnNpdGlvbi1lbnRlci1mcm9tLAogICAgLm1lc3NhZ2UtdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7CiAgICB9CgogICAgLm1lc3NhZ2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUsCiAgICAubWVzc2FnZS10cmFuc2l0aW9uLWxlYXZlLWZyb20gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB9CgogICAgLm1lc3NhZ2UtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAubWVzc2FnZS10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zbGlkZS15LXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnNsaWRlLXktdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNsaWRlLXktdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2xpZGUteS10cmFuc2l0aW9uLWVudGVyLWZyb20sCiAgICAuc2xpZGUteS10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTsKICAgIH0KCiAgICAuc2xpZGUteS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zbGlkZS15LXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNsaWRlLXktcmV2ZXJzZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zbGlkZS15LXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNsaWRlLXktcmV2ZXJzZS10cmFuc2l0aW9uLW1vdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zbGlkZS15LXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1mcm9tLAogICAgLnNsaWRlLXktcmV2ZXJzZS10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE1cHgpOwogICAgfQoKICAgIC5zbGlkZS15LXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuc2xpZGUteS1yZXZlcnNlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNjcm9sbC15LXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnNjcm9sbC15LXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY3JvbGwteS10cmFuc2l0aW9uLW1vdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY3JvbGwteS10cmFuc2l0aW9uLWVudGVyLWZyb20sCiAgICAuc2Nyb2xsLXktdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgLnNjcm9sbC15LXRyYW5zaXRpb24tZW50ZXItZnJvbSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7CiAgICB9CgogICAgLnNjcm9sbC15LXRyYW5zaXRpb24tbGVhdmUtdG8gewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTVweCk7CiAgICB9CgogICAgLnNjcm9sbC15LXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnNjcm9sbC15LXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNjcm9sbC15LXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuc2Nyb2xsLXktcmV2ZXJzZS10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3MgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2Nyb2xsLXktcmV2ZXJzZS10cmFuc2l0aW9uLW1vdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY3JvbGwteS1yZXZlcnNlLXRyYW5zaXRpb24tZW50ZXItZnJvbSwKICAgIC5zY3JvbGwteS1yZXZlcnNlLXRyYW5zaXRpb24tbGVhdmUtdG8gewogICAgICBvcGFjaXR5OiAwOwogICAgfQoKICAgIC5zY3JvbGwteS1yZXZlcnNlLXRyYW5zaXRpb24tZW50ZXItZnJvbSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNXB4KTsKICAgIH0KCiAgICAuc2Nyb2xsLXktcmV2ZXJzZS10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTsKICAgIH0KCiAgICAuc2Nyb2xsLXktcmV2ZXJzZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zY3JvbGwteS1yZXZlcnNlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNjcm9sbC14LXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnNjcm9sbC14LXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY3JvbGwteC10cmFuc2l0aW9uLW1vdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY3JvbGwteC10cmFuc2l0aW9uLWVudGVyLWZyb20sCiAgICAuc2Nyb2xsLXgtdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgLnNjcm9sbC14LXRyYW5zaXRpb24tZW50ZXItZnJvbSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4KTsKICAgIH0KCiAgICAuc2Nyb2xsLXgtdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgpOwogICAgfQoKICAgIC5zY3JvbGwteC10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zY3JvbGwteC10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zY3JvbGwteC1yZXZlcnNlLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnNjcm9sbC14LXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNjcm9sbC14LXJldmVyc2UtdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2Nyb2xsLXgtcmV2ZXJzZS10cmFuc2l0aW9uLWVudGVyLWZyb20sCiAgICAuc2Nyb2xsLXgtcmV2ZXJzZS10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAuc2Nyb2xsLXgtcmV2ZXJzZS10cmFuc2l0aW9uLWVudGVyLWZyb20gewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4KTsKICAgIH0KCiAgICAuc2Nyb2xsLXgtcmV2ZXJzZS10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgpOwogICAgfQoKICAgIC5zY3JvbGwteC1yZXZlcnNlLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLAogICAgLnNjcm9sbC14LXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2xpZGUteC10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zbGlkZS14LXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zbGlkZS14LXRyYW5zaXRpb24tbW92ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNsaWRlLXgtdHJhbnNpdGlvbi1lbnRlci1mcm9tLAogICAgLnNsaWRlLXgtdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4KTsKICAgIH0KCiAgICAuc2xpZGUteC10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zbGlkZS14LXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNsaWRlLXgtcmV2ZXJzZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zbGlkZS14LXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNsaWRlLXgtcmV2ZXJzZS10cmFuc2l0aW9uLW1vdmUgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zbGlkZS14LXJldmVyc2UtdHJhbnNpdGlvbi1lbnRlci1mcm9tLAogICAgLnNsaWRlLXgtcmV2ZXJzZS10cmFuc2l0aW9uLWxlYXZlLXRvIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCk7CiAgICB9CgogICAgLnNsaWRlLXgtcmV2ZXJzZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5zbGlkZS14LXJldmVyc2UtdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmFkZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5mYWRlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWRlLXRyYW5zaXRpb24tbW92ZSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZhZGUtdHJhbnNpdGlvbi1lbnRlci1mcm9tLAogICAgLmZhZGUtdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmFkZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5mYWRlLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWItdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsCiAgICAuZmFiLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWItdHJhbnNpdGlvbi1tb3ZlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cyAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmFiLXRyYW5zaXRpb24tZW50ZXItZnJvbSwKICAgIC5mYWItdHJhbnNpdGlvbi1sZWF2ZS10byB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgcm90YXRlKC00NWRlZyk7CiAgICB9CgogICAgLmZhYi10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwKICAgIC5mYWItdHJhbnNpdGlvbi1sZWF2ZS1hY3RpdmUgewogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0gIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCB7CiAgICAgIGRpcmVjdGlvbjogcnRsOwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIHsKICAgICAgZGlyZWN0aW9uOiBsdHI7CiAgICB9CgogICAgLmJsb2NrcXVvdGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICAgIHBhZGRpbmc6IDE2cHggMCAxNnB4IDI0cHg7CiAgICB9CgogICAgaHRtbCB7CiAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OwogICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgfQoKICAgIGh0bWwub3ZlcmZsb3cteS1oaWRkZW4gewogICAgICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIH0KCiAgICA6cm9vdCB7CiAgICAgIC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXI6IDE7CiAgICAgIC0tdi1zY3JvbGxiYXItb2Zmc2V0OiAwcHg7CiAgICB9CgogICAgQHN1cHBvcnRzICgtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmUpIHsKICAgICAgYm9keSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIG9ubHkgcHJpbnQgewogICAgICAuaGlkZGVuLXByaW50LW9ubHkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSBvbmx5IHNjcmVlbiB7CiAgICAgIC5oaWRkZW4tc2NyZWVuLW9ubHkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1OTkuOThweCkgewogICAgICAuaGlkZGVuLXhzIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5NTkuOThweCkgewogICAgICAuaGlkZGVuLXNtIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk4cHgpIHsKICAgICAgLmhpZGRlbi1tZCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTkuOThweCkgewogICAgICAuaGlkZGVuLWxnIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTkyMHB4KSBhbmQgKG1heC13aWR0aDogMjU1OS45OHB4KSB7CiAgICAgIC5oaWRkZW4teGwgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiAyNTYwcHgpIHsKICAgICAgLmhpZGRlbi14eGwgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAuaGlkZGVuLXNtLWFuZC11cCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7CiAgICAgIC5oaWRkZW4tbWQtYW5kLXVwIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7CiAgICAgIC5oaWRkZW4tbGctYW5kLXVwIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTkyMHB4KSB7CiAgICAgIC5oaWRkZW4teGwtYW5kLXVwIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDogOTU5Ljk4cHgpIHsKICAgICAgLmhpZGRlbi1zbS1hbmQtZG93biB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNzkuOThweCkgewogICAgICAuaGlkZGVuLW1kLWFuZC1kb3duIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDogMTkxOS45OHB4KSB7CiAgICAgIC5oaWRkZW4tbGctYW5kLWRvd24gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyNTU5Ljk4cHgpIHsKICAgICAgLmhpZGRlbi14bC1hbmQtZG93biB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgLmVsZXZhdGlvbi0yNCB7CiAgICAgIGJveC1zaGFkb3c6IDAgMTFweCAxNXB4IC03cHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAgICAgMCAyNHB4IDM4cHggM3B4IHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgICAgICAwIDlweCA0NnB4IDhweCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTIpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5lbGV2YXRpb24tMjMgewogICAgICBib3gtc2hhZG93OiAwIDExcHggMTRweCAtN3B4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMjNweCAzNnB4IDNweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA5cHggNDRweCA4cHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTIyIHsKICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDE0cHggLTZweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDIycHggMzVweCAzcHggdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xNCkpLAogICAgICAgIDAgOHB4IDQycHggN3B4IHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmVsZXZhdGlvbi0yMSB7CiAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAgICAgMCAyMXB4IDMzcHggM3B4IHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgICAgICAwIDhweCA0MHB4IDdweCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTIpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5lbGV2YXRpb24tMjAgewogICAgICBib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMjBweCAzMXB4IDNweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA4cHggMzhweCA3cHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTE5IHsKICAgICAgYm94LXNoYWRvdzogMCA5cHggMTJweCAtNnB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMTlweCAyOXB4IDJweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA3cHggMzZweCA2cHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTE4IHsKICAgICAgYm94LXNoYWRvdzogMCA5cHggMTFweCAtNXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMThweCAyOHB4IDJweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA3cHggMzRweCA2cHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTE3IHsKICAgICAgYm94LXNoYWRvdzogMCA4cHggMTFweCAtNXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMTdweCAyNnB4IDJweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA2cHggMzJweCA1cHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTE2IHsKICAgICAgYm94LXNoYWRvdzogMCA4cHggMTBweCAtNXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMTZweCAyNHB4IDJweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA2cHggMzBweCA1cHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTE1IHsKICAgICAgYm94LXNoYWRvdzogMCA4cHggOXB4IC01cHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAgICAgMCAxNXB4IDIycHggMnB4IHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgICAgICAwIDZweCAyOHB4IDVweCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTIpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5lbGV2YXRpb24tMTQgewogICAgICBib3gtc2hhZG93OiAwIDdweCA5cHggLTRweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDE0cHggMjFweCAycHggdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xNCkpLAogICAgICAgIDAgNXB4IDI2cHggNHB4IHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmVsZXZhdGlvbi0xMyB7CiAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMTNweCAxOXB4IDJweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA1cHggMjRweCA0cHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTEyIHsKICAgICAgYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAgICAgMCAxMnB4IDE3cHggMnB4IHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgICAgICAwIDVweCAyMnB4IDRweCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTIpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5lbGV2YXRpb24tMTEgewogICAgICBib3gtc2hhZG93OiAwIDZweCA3cHggLTRweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDExcHggMTVweCAxcHggdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xNCkpLAogICAgICAgIDAgNHB4IDIwcHggM3B4IHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmVsZXZhdGlvbi0xMCB7CiAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDZweCAtM3B4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgMTBweCAxNHB4IDFweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCA0cHggMThweCAzcHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTkgewogICAgICBib3gtc2hhZG93OiAwIDVweCA2cHggLTNweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDlweCAxMnB4IDFweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCAzcHggMTZweCAycHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTggewogICAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDhweCAxMHB4IDFweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCAzcHggMTRweCAycHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTcgewogICAgICBib3gtc2hhZG93OiAwIDRweCA1cHggLTJweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDdweCAxMHB4IDFweCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCAycHggMTZweCAxcHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTYgewogICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDZweCAxMHB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xNCkpLAogICAgICAgIDAgMXB4IDE4cHggMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTIpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5lbGV2YXRpb24tNSB7CiAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMikpLAogICAgICAgIDAgNXB4IDhweCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgICAgICAwIDFweCAxNHB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjEyKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZWxldmF0aW9uLTQgewogICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggLTFweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDRweCA1cHggMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjE0KSksCiAgICAgICAgMCAxcHggMTBweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmVsZXZhdGlvbi0zIHsKICAgICAgYm94LXNoYWRvdzogMCAzcHggM3B4IC0ycHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAgICAgMCAzcHggNHB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xNCkpLAogICAgICAgIDAgMXB4IDhweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmVsZXZhdGlvbi0yIHsKICAgICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAgICAgMCAycHggMnB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xNCkpLAogICAgICAgIDAgMXB4IDVweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmVsZXZhdGlvbi0xIHsKICAgICAgYm94LXNoYWRvdzogMCAycHggMXB4IC0xcHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4yKSksCiAgICAgICAgMCAxcHggMXB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xNCkpLAogICAgICAgIDAgMXB4IDNweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmVsZXZhdGlvbi0wIHsKICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAwLjIpKSwKICAgICAgICAwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIDAuMTQpKSwKICAgICAgICAwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgMC4xMikpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmQtc3Itb25seSwKICAgIC5kLXNyLW9ubHktZm9jdXNhYmxlOm5vdCg6Zm9jdXMpIHsKICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7CiAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDsKICAgICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7CiAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50OwogICAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm92ZXJmbG93LWF1dG8gewogICAgICBvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vdmVyZmxvdy1oaWRkZW4gewogICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm92ZXJmbG93LXZpc2libGUgewogICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vdmVyZmxvdy1zY3JvbGwgewogICAgICBvdmVyZmxvdzogc2Nyb2xsICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm92ZXJmbG93LXgtYXV0byB7CiAgICAgIG92ZXJmbG93LXg6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAub3ZlcmZsb3cteC1oaWRkZW4gewogICAgICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIH0KCiAgICAub3ZlcmZsb3cteC1zY3JvbGwgewogICAgICBvdmVyZmxvdy14OiBzY3JvbGwgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3ZlcmZsb3cteS1hdXRvIHsKICAgICAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vdmVyZmxvdy15LWhpZGRlbiB7CiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vdmVyZmxvdy15LXNjcm9sbCB7CiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5kLW5vbmUgewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmQtaW5saW5lIHsKICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmQtaW5saW5lLWJsb2NrIHsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmQtYmxvY2sgewogICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgfQoKICAgIC5kLXRhYmxlIHsKICAgICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZC10YWJsZS1yb3cgewogICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZC10YWJsZS1jZWxsIHsKICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5kLWZsZXggewogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmQtaW5saW5lLWZsZXggewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbG9hdC1ub25lIHsKICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmxvYXQtbGVmdCB7CiAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsb2F0LXJpZ2h0IHsKICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LWVuZCB7CiAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LWVuZCwKICAgIC52LWxvY2FsZS0taXMtcnRsIC5mbG9hdC1zdGFydCB7CiAgICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5mbG9hdC1zdGFydCB7CiAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMS0xLAogICAgLmZsZXgtZmlsbCB7CiAgICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMS0wIHsKICAgICAgZmxleDogMSAwIGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmxleC0wLTEgewogICAgICBmbGV4OiAwIDEgYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4LTAtMCB7CiAgICAgIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMS0xLTEwMCB7CiAgICAgIGZsZXg6IDEgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMS0wLTEwMCB7CiAgICAgIGZsZXg6IDEgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMC0xLTEwMCB7CiAgICAgIGZsZXg6IDAgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMC0wLTEwMCB7CiAgICAgIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMS0xLTAgewogICAgICBmbGV4OiAxIDEgMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4LTEtMC0wIHsKICAgICAgZmxleDogMSAwIDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmxleC0wLTEtMCB7CiAgICAgIGZsZXg6IDAgMSAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtMC0wLTAgewogICAgICBmbGV4OiAwIDAgMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4LXJvdyB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmxleC1jb2x1bW4gewogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtcm93LXJldmVyc2UgewogICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmxleC1jb2x1bW4tcmV2ZXJzZSB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4LWdyb3ctMCB7CiAgICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4LWdyb3ctMSB7CiAgICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4LXNocmluay0wIHsKICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmxleC1zaHJpbmstMSB7CiAgICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtd3JhcCB7CiAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4LW5vd3JhcCB7CiAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZsZXgtd3JhcC1yZXZlcnNlIHsKICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsKICAgIH0KCiAgICAuanVzdGlmeS1zdGFydCB7CiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5qdXN0aWZ5LWVuZCB7CiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuanVzdGlmeS1jZW50ZXIgewogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgfQoKICAgIC5qdXN0aWZ5LXNwYWNlLWJldHdlZW4gewogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICAgIH0KCiAgICAuanVzdGlmeS1zcGFjZS1hcm91bmQgewogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5qdXN0aWZ5LXNwYWNlLWV2ZW5seSB7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmFsaWduLXN0YXJ0IHsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tZW5kIHsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmFsaWduLWNlbnRlciB7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tYmFzZWxpbmUgewogICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tc3RyZXRjaCB7CiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmFsaWduLWNvbnRlbnQtc3RhcnQgewogICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmFsaWduLWNvbnRlbnQtZW5kIHsKICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tY29udGVudC1jZW50ZXIgewogICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tY29udGVudC1zcGFjZS1iZXR3ZWVuIHsKICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5hbGlnbi1jb250ZW50LXNwYWNlLWFyb3VuZCB7CiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5hbGlnbi1jb250ZW50LXNwYWNlLWV2ZW5seSB7CiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5hbGlnbi1jb250ZW50LXN0cmV0Y2ggewogICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmFsaWduLXNlbGYtYXV0byB7CiAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tc2VsZi1zdGFydCB7CiAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tc2VsZi1lbmQgewogICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5hbGlnbi1zZWxmLWNlbnRlciB7CiAgICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OwogICAgfQoKICAgIC5hbGlnbi1zZWxmLWJhc2VsaW5lIHsKICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYWxpZ24tc2VsZi1zdHJldGNoIHsKICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcmRlci1maXJzdCB7CiAgICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcmRlci0wIHsKICAgICAgb3JkZXI6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItMSB7CiAgICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9yZGVyLTIgewogICAgICBvcmRlcjogMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcmRlci0zIHsKICAgICAgb3JkZXI6IDMgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItNCB7CiAgICAgIG9yZGVyOiA0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9yZGVyLTUgewogICAgICBvcmRlcjogNSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcmRlci02IHsKICAgICAgb3JkZXI6IDYgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItNyB7CiAgICAgIG9yZGVyOiA3ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9yZGVyLTggewogICAgICBvcmRlcjogOCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcmRlci05IHsKICAgICAgb3JkZXI6IDkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItMTAgewogICAgICBvcmRlcjogMTAgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItMTEgewogICAgICBvcmRlcjogMTEgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItMTIgewogICAgICBvcmRlcjogMTIgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItbGFzdCB7CiAgICAgIG9yZGVyOiAxMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0wIHsKICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdhLTEgewogICAgICBnYXA6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0yIHsKICAgICAgZ2FwOiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2EtMyB7CiAgICAgIGdhcDogMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS00IHsKICAgICAgZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdhLTUgewogICAgICBnYXA6IDIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2EtNiB7CiAgICAgIGdhcDogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS03IHsKICAgICAgZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdhLTggewogICAgICBnYXA6IDMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2EtOSB7CiAgICAgIGdhcDogMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0xMCB7CiAgICAgIGdhcDogNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0xMSB7CiAgICAgIGdhcDogNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0xMiB7CiAgICAgIGdhcDogNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0xMyB7CiAgICAgIGdhcDogNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0xNCB7CiAgICAgIGdhcDogNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0xNSB7CiAgICAgIGdhcDogNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS0xNiB7CiAgICAgIGdhcDogNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYS1hdXRvIHsKICAgICAgZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdyLTAgewogICAgICByb3ctZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdyLTEgewogICAgICByb3ctZ2FwOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ3ItMiB7CiAgICAgIHJvdy1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci0zIHsKICAgICAgcm93LWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci00IHsKICAgICAgcm93LWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci01IHsKICAgICAgcm93LWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci02IHsKICAgICAgcm93LWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci03IHsKICAgICAgcm93LWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci04IHsKICAgICAgcm93LWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci05IHsKICAgICAgcm93LWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci0xMCB7CiAgICAgIHJvdy1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ3ItMTEgewogICAgICByb3ctZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdyLTEyIHsKICAgICAgcm93LWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci0xMyB7CiAgICAgIHJvdy1nYXA6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ3ItMTQgewogICAgICByb3ctZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdyLTE1IHsKICAgICAgcm93LWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nci0xNiB7CiAgICAgIHJvdy1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ3ItYXV0byB7CiAgICAgIHJvdy1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2MtMCB7CiAgICAgIC1tb3otY29sdW1uLWdhcDogMCAhaW1wb3J0YW50OwogICAgICBjb2x1bW4tZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdjLTEgewogICAgICAtbW96LWNvbHVtbi1nYXA6IDRweCAhaW1wb3J0YW50OwogICAgICBjb2x1bW4tZ2FwOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2MtMiB7CiAgICAgIC1tb3otY29sdW1uLWdhcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbHVtbi1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYy0zIHsKICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbHVtbi1nYXA6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2MtNCB7CiAgICAgIC1tb3otY29sdW1uLWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICBjb2x1bW4tZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdjLTUgewogICAgICAtbW96LWNvbHVtbi1nYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgY29sdW1uLWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYy02IHsKICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbHVtbi1nYXA6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2MtNyB7CiAgICAgIC1tb3otY29sdW1uLWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICBjb2x1bW4tZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdjLTggewogICAgICAtbW96LWNvbHVtbi1nYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgY29sdW1uLWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYy05IHsKICAgICAgLW1vei1jb2x1bW4tZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbHVtbi1nYXA6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2MtMTAgewogICAgICAtbW96LWNvbHVtbi1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgY29sdW1uLWdhcDogNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYy0xMSB7CiAgICAgIC1tb3otY29sdW1uLWdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICBjb2x1bW4tZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdjLTEyIHsKICAgICAgLW1vei1jb2x1bW4tZ2FwOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbHVtbi1nYXA6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2MtMTMgewogICAgICAtbW96LWNvbHVtbi1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgY29sdW1uLWdhcDogNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYy0xNCB7CiAgICAgIC1tb3otY29sdW1uLWdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICBjb2x1bW4tZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdjLTE1IHsKICAgICAgLW1vei1jb2x1bW4tZ2FwOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbHVtbi1nYXA6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZ2MtMTYgewogICAgICAtbW96LWNvbHVtbi1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgY29sdW1uLWdhcDogNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5nYy1hdXRvIHsKICAgICAgLW1vei1jb2x1bW4tZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIGNvbHVtbi1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMCB7CiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS0xIHsKICAgICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMiB7CiAgICAgIG1hcmdpbjogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1hLTMgewogICAgICBtYXJnaW46IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtNCB7CiAgICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS01IHsKICAgICAgbWFyZ2luOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1hLTYgewogICAgICBtYXJnaW46IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtNyB7CiAgICAgIG1hcmdpbjogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS04IHsKICAgICAgbWFyZ2luOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1hLTkgewogICAgICBtYXJnaW46IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMTAgewogICAgICBtYXJnaW46IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMTEgewogICAgICBtYXJnaW46IDQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMTIgewogICAgICBtYXJnaW46IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMTMgewogICAgICBtYXJnaW46IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMTQgewogICAgICBtYXJnaW46IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMTUgewogICAgICBtYXJnaW46IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtMTYgewogICAgICBtYXJnaW46IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtYXV0byB7CiAgICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC0wIHsKICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LTEgewogICAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LTIgewogICAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LTMgewogICAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtNCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC01IHsKICAgICAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LTYgewogICAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtNyB7CiAgICAgIG1hcmdpbi1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC04IHsKICAgICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LTkgewogICAgICBtYXJnaW4tbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtMTAgewogICAgICBtYXJnaW4tbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtMTEgewogICAgICBtYXJnaW4tbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtMTIgewogICAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtMTMgewogICAgICBtYXJnaW4tbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtMTQgewogICAgICBtYXJnaW4tbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtMTUgewogICAgICBtYXJnaW4tbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtMTYgewogICAgICBtYXJnaW4tbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtYXV0byB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teS0wIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LTEgewogICAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LTIgewogICAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LTMgewogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktNCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teS01IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LTYgewogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktNyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDI4cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teS04IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LTkgewogICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktMTAgewogICAgICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktMTEgewogICAgICBtYXJnaW4tYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktMTIgewogICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktMTMgewogICAgICBtYXJnaW4tYm90dG9tOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktMTQgewogICAgICBtYXJnaW4tYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktMTUgewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktMTYgewogICAgICBtYXJnaW4tYm90dG9tOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktYXV0byB7CiAgICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tdC0wIHsKICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tdC0xIHsKICAgICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LTIgewogICAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtMyB7CiAgICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtNCB7CiAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtNSB7CiAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtNiB7CiAgICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtNyB7CiAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtOCB7CiAgICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtOSB7CiAgICAgIG1hcmdpbi10b3A6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtMTAgewogICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LTExIHsKICAgICAgbWFyZ2luLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tdC0xMiB7CiAgICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtMTMgewogICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LTE0IHsKICAgICAgbWFyZ2luLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tdC0xNSB7CiAgICAgIG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtMTYgewogICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LWF1dG8gewogICAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTAgewogICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAubXItMSB7CiAgICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTIgewogICAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci0zIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTQgewogICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXItNSB7CiAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci02IHsKICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTcgewogICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXItOCB7CiAgICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci05IHsKICAgICAgbWFyZ2luLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTEwIHsKICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTExIHsKICAgICAgbWFyZ2luLXJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTEyIHsKICAgICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTEzIHsKICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTE0IHsKICAgICAgbWFyZ2luLXJpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTE1IHsKICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLTE2IHsKICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLWF1dG8gewogICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAubWItMCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAubWItMSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi0yIHsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTMgewogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTQgewogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTUgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTYgewogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTcgewogICAgICBtYXJnaW4tYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTggewogICAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTkgewogICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTEwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi0xMSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWItMTIgewogICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTEzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi0xNCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWItMTUgewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTE2IHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1hdXRvIHsKICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC0wIHsKICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtMiB7CiAgICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtMyB7CiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLTQgewogICAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC01IHsKICAgICAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtNiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLTcgewogICAgICBtYXJnaW4tbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC04IHsKICAgICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtOSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLTEwIHsKICAgICAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtMTEgewogICAgICBtYXJnaW4tbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC0xMiB7CiAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLTEzIHsKICAgICAgbWFyZ2luLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtMTQgewogICAgICBtYXJnaW4tbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC0xNSB7CiAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLTE2IHsKICAgICAgbWFyZ2luLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtYXV0byB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1zLTAgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1zLTEgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXMtMiB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy0zIHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy00IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy01IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy02IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy03IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy04IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy05IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy0xMCB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXMtMTEgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1zLTEyIHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy0xMyB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXMtMTQgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1zLTE1IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy0xNiB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXMtYXV0byB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtMCB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLTEgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLTIgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLTMgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS00IHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtNSB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLTYgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS03IHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtOCB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLTkgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS0xMCB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLTExIHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtMTIgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS0xMyB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLTE0IHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtMTUgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS0xNiB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLWF1dG8gewogICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS1uMSB7CiAgICAgIG1hcmdpbjogLTRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS1uMiB7CiAgICAgIG1hcmdpbjogLThweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS1uMyB7CiAgICAgIG1hcmdpbjogLTEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtbjQgewogICAgICBtYXJnaW46IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1hLW41IHsKICAgICAgbWFyZ2luOiAtMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS1uNiB7CiAgICAgIG1hcmdpbjogLTI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtbjcgewogICAgICBtYXJnaW46IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1hLW44IHsKICAgICAgbWFyZ2luOiAtMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS1uOSB7CiAgICAgIG1hcmdpbjogLTM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtbjEwIHsKICAgICAgbWFyZ2luOiAtNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS1uMTEgewogICAgICBtYXJnaW46IC00NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1hLW4xMiB7CiAgICAgIG1hcmdpbjogLTQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtbjEzIHsKICAgICAgbWFyZ2luOiAtNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYS1uMTQgewogICAgICBtYXJnaW46IC01NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1hLW4xNSB7CiAgICAgIG1hcmdpbjogLTYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWEtbjE2IHsKICAgICAgbWFyZ2luOiAtNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC1uMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogLTRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC1uMiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogLThweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC1uMyB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW40IHsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogLTE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtbjUgewogICAgICBtYXJnaW4tbGVmdDogLTIwcHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC1uNiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMjRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW43IHsKICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1yaWdodDogLTI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXgtbjggewogICAgICBtYXJnaW4tbGVmdDogLTMycHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teC1uOSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMzZweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW4xMCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW4xMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW4xMiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNDhweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW4xMyB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW4xNCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW4xNSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm14LW4xNiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LW4xIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LW4yIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLThweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LW4zIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjQgewogICAgICBtYXJnaW4tYm90dG9tOiAtMTZweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAtMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teS1uNSB7CiAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LW42IHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjcgewogICAgICBtYXJnaW4tYm90dG9tOiAtMjhweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAtMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5teS1uOCB7CiAgICAgIG1hcmdpbi1ib3R0b206IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm15LW45IHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjEwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTQwcHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjExIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTQ0cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjEyIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjEzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTUycHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjE0IHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTU2cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjE1IHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXktbjE2IHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTY0cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtbjEgewogICAgICBtYXJnaW4tdG9wOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4yIHsKICAgICAgbWFyZ2luLXRvcDogLThweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tdC1uMyB7CiAgICAgIG1hcmdpbi10b3A6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW40IHsKICAgICAgbWFyZ2luLXRvcDogLTE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtbjUgewogICAgICBtYXJnaW4tdG9wOiAtMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tdC1uNiB7CiAgICAgIG1hcmdpbi10b3A6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW43IHsKICAgICAgbWFyZ2luLXRvcDogLTI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXQtbjggewogICAgICBtYXJnaW4tdG9wOiAtMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tdC1uOSB7CiAgICAgIG1hcmdpbi10b3A6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4xMCB7CiAgICAgIG1hcmdpbi10b3A6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4xMSB7CiAgICAgIG1hcmdpbi10b3A6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4xMiB7CiAgICAgIG1hcmdpbi10b3A6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4xMyB7CiAgICAgIG1hcmdpbi10b3A6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4xNCB7CiAgICAgIG1hcmdpbi10b3A6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4xNSB7CiAgICAgIG1hcmdpbi10b3A6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm10LW4xNiB7CiAgICAgIG1hcmdpbi10b3A6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLW4xIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLW4yIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLW4zIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci1uNCB7CiAgICAgIG1hcmdpbi1yaWdodDogLTE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXItbjUgewogICAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLW42IHsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci1uNyB7CiAgICAgIG1hcmdpbi1yaWdodDogLTI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXItbjggewogICAgICBtYXJnaW4tcmlnaHQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLW45IHsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci1uMTAgewogICAgICBtYXJnaW4tcmlnaHQ6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLW4xMSB7CiAgICAgIG1hcmdpbi1yaWdodDogLTQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXItbjEyIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAtNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci1uMTMgewogICAgICBtYXJnaW4tcmlnaHQ6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1yLW4xNCB7CiAgICAgIG1hcmdpbi1yaWdodDogLTU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXItbjE1IHsKICAgICAgbWFyZ2luLXJpZ2h0OiAtNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tci1uMTYgewogICAgICBtYXJnaW4tcmlnaHQ6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLW4xIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IC04cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWItbjMgewogICAgICBtYXJnaW4tYm90dG9tOiAtMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uNCB7CiAgICAgIG1hcmdpbi1ib3R0b206IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLW41IHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWItbjYgewogICAgICBtYXJnaW4tYm90dG9tOiAtMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uNyB7CiAgICAgIG1hcmdpbi1ib3R0b206IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLW44IHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWItbjkgewogICAgICBtYXJnaW4tYm90dG9tOiAtMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMTAgewogICAgICBtYXJnaW4tYm90dG9tOiAtNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMTEgewogICAgICBtYXJnaW4tYm90dG9tOiAtNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMTIgewogICAgICBtYXJnaW4tYm90dG9tOiAtNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMTMgewogICAgICBtYXJnaW4tYm90dG9tOiAtNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMTQgewogICAgICBtYXJnaW4tYm90dG9tOiAtNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMTUgewogICAgICBtYXJnaW4tYm90dG9tOiAtNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tYi1uMTYgewogICAgICBtYXJnaW4tYm90dG9tOiAtNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC1uMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLW4yIHsKICAgICAgbWFyZ2luLWxlZnQ6IC04cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjMgewogICAgICBtYXJnaW4tbGVmdDogLTEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjQgewogICAgICBtYXJnaW4tbGVmdDogLTE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjUgewogICAgICBtYXJnaW4tbGVmdDogLTIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjYgewogICAgICBtYXJnaW4tbGVmdDogLTI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjcgewogICAgICBtYXJnaW4tbGVmdDogLTI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjggewogICAgICBtYXJnaW4tbGVmdDogLTMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjkgewogICAgICBtYXJnaW4tbGVmdDogLTM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjEwIHsKICAgICAgbWFyZ2luLWxlZnQ6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLW4xMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC1uMTIgewogICAgICBtYXJnaW4tbGVmdDogLTQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjEzIHsKICAgICAgbWFyZ2luLWxlZnQ6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1sLW4xNCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAtNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tbC1uMTUgewogICAgICBtYXJnaW4tbGVmdDogLTYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWwtbjE2IHsKICAgICAgbWFyZ2luLWxlZnQ6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1zLW4xIHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMiB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC04cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXMtbjMgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uNCB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1zLW41IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXMtbjYgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uNyB7CiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1zLW44IHsKICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubXMtbjkgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMTAgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMTEgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMTIgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMTMgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMTQgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMTUgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tcy1uMTYgewogICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS1uMSB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLW4yIHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC04cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjMgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjQgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjUgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjYgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjcgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjggewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjkgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjEwIHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLW4xMSB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS1uMTIgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjEzIHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1lLW4xNCB7CiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5tZS1uMTUgewogICAgICBtYXJnaW4taW5saW5lLWVuZDogLTYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAubWUtbjE2IHsKICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBhLTAgewogICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBhLTEgewogICAgICBwYWRkaW5nOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGEtMiB7CiAgICAgIHBhZGRpbmc6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS0zIHsKICAgICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS00IHsKICAgICAgcGFkZGluZzogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS01IHsKICAgICAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS02IHsKICAgICAgcGFkZGluZzogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS03IHsKICAgICAgcGFkZGluZzogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS04IHsKICAgICAgcGFkZGluZzogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS05IHsKICAgICAgcGFkZGluZzogMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS0xMCB7CiAgICAgIHBhZGRpbmc6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGEtMTEgewogICAgICBwYWRkaW5nOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBhLTEyIHsKICAgICAgcGFkZGluZzogNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS0xMyB7CiAgICAgIHBhZGRpbmc6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGEtMTQgewogICAgICBwYWRkaW5nOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBhLTE1IHsKICAgICAgcGFkZGluZzogNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYS0xNiB7CiAgICAgIHBhZGRpbmc6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHgtMCB7CiAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB4LTEgewogICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHgtMiB7CiAgICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weC0zIHsKICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHgtNCB7CiAgICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB4LTUgewogICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weC02IHsKICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHgtNyB7CiAgICAgIHBhZGRpbmctbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB4LTggewogICAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weC05IHsKICAgICAgcGFkZGluZy1sZWZ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHgtMTAgewogICAgICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weC0xMSB7CiAgICAgIHBhZGRpbmctbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB4LTEyIHsKICAgICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHgtMTMgewogICAgICBwYWRkaW5nLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weC0xNCB7CiAgICAgIHBhZGRpbmctbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB4LTE1IHsKICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHgtMTYgewogICAgICBwYWRkaW5nLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weS0wIHsKICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAucHktMSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weS0yIHsKICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB5LTMgewogICAgICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXRvcDogMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weS00IHsKICAgICAgcGFkZGluZy1ib3R0b206IDE2cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHktNSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB5LTYgewogICAgICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weS03IHsKICAgICAgcGFkZGluZy1ib3R0b206IDI4cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHktOCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB5LTkgewogICAgICBwYWRkaW5nLWJvdHRvbTogMzZweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXRvcDogMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weS0xMCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB5LTExIHsKICAgICAgcGFkZGluZy1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHktMTIgewogICAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weS0xMyB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB5LTE0IHsKICAgICAgcGFkZGluZy1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHktMTUgewogICAgICBwYWRkaW5nLWJvdHRvbTogNjBweCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXRvcDogNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5weS0xNiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB0LTAgewogICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wdC0xIHsKICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wdC0yIHsKICAgICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wdC0zIHsKICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHQtNCB7CiAgICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB0LTUgewogICAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wdC02IHsKICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHQtNyB7CiAgICAgIHBhZGRpbmctdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB0LTggewogICAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wdC05IHsKICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHQtMTAgewogICAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wdC0xMSB7CiAgICAgIHBhZGRpbmctdG9wOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB0LTEyIHsKICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHQtMTMgewogICAgICBwYWRkaW5nLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wdC0xNCB7CiAgICAgIHBhZGRpbmctdG9wOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB0LTE1IHsKICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHQtMTYgewogICAgICBwYWRkaW5nLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wci0wIHsKICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wci0xIHsKICAgICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnByLTIgewogICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItMyB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItNCB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItNSB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItNiB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItNyB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItOCB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItOSB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItMTAgewogICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnByLTExIHsKICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wci0xMiB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItMTMgewogICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnByLTE0IHsKICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wci0xNSB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHItMTYgewogICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBiLTAgewogICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi0xIHsKICAgICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi0yIHsKICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi0zIHsKICAgICAgcGFkZGluZy1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGItNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBiLTUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi02IHsKICAgICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGItNyB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBiLTggewogICAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi05IHsKICAgICAgcGFkZGluZy1ib3R0b206IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGItMTAgewogICAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi0xMSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBiLTEyIHsKICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGItMTMgewogICAgICBwYWRkaW5nLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi0xNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBiLTE1IHsKICAgICAgcGFkZGluZy1ib3R0b206IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGItMTYgewogICAgICBwYWRkaW5nLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0wIHsKICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBsLTEgewogICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0yIHsKICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGwtMyB7CiAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC00IHsKICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBsLTUgewogICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGwtNiB7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC03IHsKICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBsLTggewogICAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGwtOSB7CiAgICAgIHBhZGRpbmctbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0xMCB7CiAgICAgIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0xMSB7CiAgICAgIHBhZGRpbmctbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0xMiB7CiAgICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0xMyB7CiAgICAgIHBhZGRpbmctbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0xNCB7CiAgICAgIHBhZGRpbmctbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0xNSB7CiAgICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wbC0xNiB7CiAgICAgIHBhZGRpbmctbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wcy0wIHsKICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAucHMtMSB7CiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHMtMiB7CiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHMtMyB7CiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBzLTQgewogICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wcy01IHsKICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDIwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHMtNiB7CiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBzLTcgewogICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wcy04IHsKICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDMycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHMtOSB7CiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBzLTEwIHsKICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHMtMTEgewogICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wcy0xMiB7CiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBzLTEzIHsKICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucHMtMTQgewogICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wcy0xNSB7CiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBzLTE2IHsKICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMCB7CiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wZS0xIHsKICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMiB7CiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBlLTMgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtNCB7CiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wZS01IHsKICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBlLTYgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtNyB7CiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMjhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wZS04IHsKICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnBlLTkgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDM2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMTAgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMTEgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMTIgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMTMgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDUycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMTQgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMTUgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDYwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucGUtMTYgewogICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDY0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC0wIHsKICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yb3VuZGVkLXNtIHsKICAgICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQgewogICAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC1sZyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yb3VuZGVkLXhsIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yb3VuZGVkLXBpbGwgewogICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC1jaXJjbGUgewogICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC1zaGFwZWQgewogICAgICBib3JkZXItcmFkaXVzOiAyNHB4IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC10LTAgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtdC1zbSB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtdCB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtdC1sZyB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtdC14bCB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC10LXBpbGwgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDk5OTlweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yb3VuZGVkLXQtY2lyY2xlIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC10LXNoYXBlZCB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1lLTAgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLWUtMCB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWUtc20gewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1lLXNtIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWUgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1lIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWUtbGcgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1lLWxnIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWUteGwgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLWUteGwgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1lLXBpbGwgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1lLXBpbGwgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtZS1jaXJjbGUgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1lLWNpcmNsZSB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDUwJSAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1lLXNoYXBlZCB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtZS1zaGFwZWQgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC1iLTAgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtYi1zbSB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtYiB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtYi1sZyB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJvdW5kZWQtYi14bCB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC1iLXBpbGwgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDk5OTlweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yb3VuZGVkLWItY2lyY2xlIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAucm91bmRlZC1iLXNoYXBlZCB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1zLTAgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1zLTAgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXMtc20gewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtcy1zbSB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXMgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtcyB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXMtbGcgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtcy1sZyB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXMteGwgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1zLXhsIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1zLXBpbGwgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtcy1waWxsIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDk5OTlweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtcy1jaXJjbGUgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtcy1jaXJjbGUgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1zLXNoYXBlZCB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLXMtc2hhcGVkIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC10cy0wIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLXRzLTAgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXRzLXNtIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtdHMtc20gewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtdHMgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC10cyB7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC10cy1sZyB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLXRzLWxnIHsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXRzLXhsIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLXRzLXhsIHsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC10cy1waWxsIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtdHMtcGlsbCB7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC10cy1jaXJjbGUgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC10cy1jaXJjbGUgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtdHMtc2hhcGVkIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweCAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtdHMtc2hhcGVkIHsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDI0cHggMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXRlLTAgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLXRlLTAgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtdGUtc20gewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtdGUtc20gewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC10ZSB7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC10ZSB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXRlLWxnIHsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLXRlLWxnIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtdGUteGwgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLXRlLXhsIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXRlLXBpbGwgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtdGUtcGlsbCB7CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDk5OTlweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLXRlLWNpcmNsZSB7CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC10ZS1jaXJjbGUgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC10ZS1zaGFwZWQgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweCAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtdGUtc2hhcGVkIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweCAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtYmUtMCB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtYmUtMCB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1iZS1zbSB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1iZS1zbSB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWJlIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLWJlIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtYmUtbGcgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtYmUtbGcgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1iZS14bCB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtYmUteGwgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtYmUtcGlsbCB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1iZS1waWxsIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtYmUtY2lyY2xlIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDUwJSAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLWJlLWNpcmNsZSB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDUwJSAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWJlLXNoYXBlZCB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1iZS1zaGFwZWQgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyNHB4IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1icy0wIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLWJzLTAgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWJzLXNtIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtYnMtc20gewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtYnMgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1icyB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1icy1sZyB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLWJzLWxnIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtbHRyIC5yb3VuZGVkLWJzLXhsIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC52LWxvY2FsZS0taXMtcnRsIC5yb3VuZGVkLWJzLXhsIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI0cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1icy1waWxsIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtYnMtcGlsbCB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLWx0ciAucm91bmRlZC1icy1jaXJjbGUgewogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudi1sb2NhbGUtLWlzLXJ0bCAucm91bmRlZC1icy1jaXJjbGUgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1sdHIgLnJvdW5kZWQtYnMtc2hhcGVkIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjRweCAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtbG9jYWxlLS1pcy1ydGwgLnJvdW5kZWQtYnMtc2hhcGVkIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI0cHggMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItMCB7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItd2lkdGg6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLAogICAgLmJvcmRlci10aGluIHsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci13aWR0aDogdGhpbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc20gewogICAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXdpZHRoOiAxcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLW1kIHsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci13aWR0aDogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1sZyB7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItd2lkdGg6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXIteGwgewogICAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXdpZHRoOiA4cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLW9wYWNpdHktMCB7CiAgICAgIC0tdi1ib3JkZXItb3BhY2l0eTogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItb3BhY2l0eSB7CiAgICAgIC0tdi1ib3JkZXItb3BhY2l0eTogMC4xMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItb3BhY2l0eS0yNSB7CiAgICAgIC0tdi1ib3JkZXItb3BhY2l0eTogMC4yNSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItb3BhY2l0eS01MCB7CiAgICAgIC0tdi1ib3JkZXItb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1vcGFjaXR5LTc1IHsKICAgICAgLS12LWJvcmRlci1vcGFjaXR5OiAwLjc1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1vcGFjaXR5LTEwMCB7CiAgICAgIC0tdi1ib3JkZXItb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItdC0wIHsKICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItYmxvY2stc3RhcnQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1zdGFydC13aWR0aDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItdCwKICAgIC5ib3JkZXItdC10aGluIHsKICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItYmxvY2stc3RhcnQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1zdGFydC13aWR0aDogdGhpbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItdC1zbSB7CiAgICAgIGJvcmRlci1ibG9jay1zdGFydC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItdC1tZCB7CiAgICAgIGJvcmRlci1ibG9jay1zdGFydC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItdC1sZyB7CiAgICAgIGJvcmRlci1ibG9jay1zdGFydC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItdC14bCB7CiAgICAgIGJvcmRlci1ibG9jay1zdGFydC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZS0wIHsKICAgICAgYm9yZGVyLWlubGluZS1lbmQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtZW5kLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItaW5saW5lLWVuZC13aWR0aDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZSwKICAgIC5ib3JkZXItZS10aGluIHsKICAgICAgYm9yZGVyLWlubGluZS1lbmQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtZW5kLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgICBib3JkZXItaW5saW5lLWVuZC13aWR0aDogdGhpbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZS1zbSB7CiAgICAgIGJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItaW5saW5lLWVuZC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZS1tZCB7CiAgICAgIGJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItaW5saW5lLWVuZC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZS1sZyB7CiAgICAgIGJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItaW5saW5lLWVuZC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZS14bCB7CiAgICAgIGJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOiByZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSwKICAgICAgICAgIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItaW5saW5lLWVuZC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItYi0wIHsKICAgICAgYm9yZGVyLWJsb2NrLWVuZC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLWVuZC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLWVuZC13aWR0aDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItYiwKICAgIC5ib3JkZXItYi10aGluIHsKICAgICAgYm9yZGVyLWJsb2NrLWVuZC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLWVuZC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJsb2NrLWVuZC13aWR0aDogdGhpbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItYi1zbSB7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItYi1tZCB7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtd2lkdGg6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItYi1sZyB7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtd2lkdGg6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItYi14bCB7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1ibG9jay1lbmQtd2lkdGg6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcy0wIHsKICAgICAgYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1zdGFydC13aWR0aDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcywKICAgIC5ib3JkZXItcy10aGluIHsKICAgICAgYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksCiAgICAgICAgICB2YXIoLS12LWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZTogc29saWQgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWlubGluZS1zdGFydC13aWR0aDogdGhpbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcy1zbSB7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcy1tZCB7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcy1sZyB7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6IDRweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItcy14bCB7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLAogICAgICAgICAgdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6IDhweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItc29saWQgewogICAgICBib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1kYXNoZWQgewogICAgICBib3JkZXItc3R5bGU6IGRhc2hlZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItZG90dGVkIHsKICAgICAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWRvdWJsZSB7CiAgICAgIGJvcmRlci1zdHlsZTogZG91YmxlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1ub25lIHsKICAgICAgYm9yZGVyLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGVmdCB7CiAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1yaWdodCB7CiAgICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtY2VudGVyIHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtanVzdGlmeSB7CiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1zdGFydCB7CiAgICAgIHRleHQtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZW5kIHsKICAgICAgdGV4dC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVjb3JhdGlvbi1saW5lLXRocm91Z2ggewogICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlY29yYXRpb24tbm9uZSB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWRlY29yYXRpb24tb3ZlcmxpbmUgewogICAgICB0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXdyYXAgewogICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbm8td3JhcCB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wcmUgewogICAgICB3aGl0ZS1zcGFjZTogcHJlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtcHJlLWxpbmUgewogICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1wcmUtd3JhcCB7CiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJyZWFrIHsKICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50OwogICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktaG92ZXIgewogICAgICBvcGFjaXR5OiB2YXIoLS12LWhvdmVyLW9wYWNpdHkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktZm9jdXMgewogICAgICBvcGFjaXR5OiB2YXIoLS12LWZvY3VzLW9wYWNpdHkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktc2VsZWN0ZWQgewogICAgICBvcGFjaXR5OiB2YXIoLS12LXNlbGVjdGVkLW9wYWNpdHkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktYWN0aXZhdGVkIHsKICAgICAgb3BhY2l0eTogdmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3BhY2l0eS1wcmVzc2VkIHsKICAgICAgb3BhY2l0eTogdmFyKC0tdi1wcmVzc2VkLW9wYWNpdHkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktZHJhZ2dlZCB7CiAgICAgIG9wYWNpdHk6IHZhcigtLXYtZHJhZ2dlZC1vcGFjaXR5KSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcGFjaXR5LTAgewogICAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktMTAgewogICAgICBvcGFjaXR5OiAwLjEgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3BhY2l0eS0yMCB7CiAgICAgIG9wYWNpdHk6IDAuMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcGFjaXR5LTMwIHsKICAgICAgb3BhY2l0eTogMC4zICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktNDAgewogICAgICBvcGFjaXR5OiAwLjQgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3BhY2l0eS01MCB7CiAgICAgIG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcGFjaXR5LTYwIHsKICAgICAgb3BhY2l0eTogMC42ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktNzAgewogICAgICBvcGFjaXR5OiAwLjcgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3BhY2l0eS04MCB7CiAgICAgIG9wYWNpdHk6IDAuOCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5vcGFjaXR5LTkwIHsKICAgICAgb3BhY2l0eTogMC45ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm9wYWNpdHktMTAwIHsKICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWhpZ2gtZW1waGFzaXMgewogICAgICBjb2xvcjogcmdiYSh2YXIoLS12LXRoZW1lLW9uLWJhY2tncm91bmQpLAogICAgICAgICAgdmFyKC0tdi1oaWdoLWVtcGhhc2lzLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LW1lZGl1bS1lbXBoYXNpcyB7CiAgICAgIGNvbG9yOiByZ2JhKHZhcigtLXYtdGhlbWUtb24tYmFja2dyb3VuZCksCiAgICAgICAgICB2YXIoLS12LW1lZGl1bS1lbXBoYXNpcy1vcGFjaXR5KSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1kaXNhYmxlZCB7CiAgICAgIGNvbG9yOiByZ2JhKHZhcigtLXYtdGhlbWUtb24tYmFja2dyb3VuZCksCiAgICAgICAgICB2YXIoLS12LWRpc2FibGVkLW9wYWNpdHkpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXRydW5jYXRlIHsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhaW1wb3J0YW50OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaDEgewogICAgICBmb250LXNpemU6IDZyZW0gIWltcG9ydGFudDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxNTYyNWVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaDEsCiAgICAudGV4dC1oMiB7CiAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWgyIHsKICAgICAgZm9udC1zaXplOiAzLjc1cmVtICFpbXBvcnRhbnQ7CiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDgzMzMzMzMzZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1oMyB7CiAgICAgIGZvbnQtc2l6ZTogM3JlbSAhaW1wb3J0YW50OwogICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1OwogICAgfQoKICAgIC50ZXh0LWgzLAogICAgLnRleHQtaDQgewogICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWg0IHsKICAgICAgZm9udC1zaXplOiAyLjEyNXJlbSAhaW1wb3J0YW50OwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wMDczNTI5NDEyZW0gIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMTc1OwogICAgfQoKICAgIC50ZXh0LWg1IHsKICAgICAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4zMzM7CiAgICB9CgogICAgLnRleHQtaDUsCiAgICAudGV4dC1oNiB7CiAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtaDYgewogICAgICBmb250LXNpemU6IDEuMjVyZW0gIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICB9CgogICAgLnRleHQtc3VidGl0bGUtMSB7CiAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogNDAwOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbSAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS43NTsKICAgIH0KCiAgICAudGV4dC1zdWJ0aXRsZS0xLAogICAgLnRleHQtc3VidGl0bGUtMiB7CiAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtc3VidGl0bGUtMiB7CiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDA3MTQyODU3MWVtICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICB9CgogICAgLnRleHQtYm9keS0xIHsKICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzMTI1ZW0gIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICAudGV4dC1ib2R5LTEsCiAgICAudGV4dC1ib2R5LTIgewogICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJvZHktMiB7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0MjllbSAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS40MjU7CiAgICB9CgogICAgLnRleHQtYm9keS0yLAogICAgLnRleHQtYnV0dG9uIHsKICAgICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LWJ1dHRvbiB7CiAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4OTI4NTcxNDNlbSAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMi42OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtY2FwdGlvbiB7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzMzMzMzNlbSAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS42Njc7CiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtY2FwdGlvbiwKICAgIC50ZXh0LW92ZXJsaW5lIHsKICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgZm9udC1zaXplOiAwLjc1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtb3ZlcmxpbmUgewogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4xNjY2NjY2NjY3ZW0gIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDIuNjY3OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbm9uZSB7CiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtY2FwaXRhbGl6ZSB7CiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbG93ZXJjYXNlIHsKICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50ZXh0LXVwcGVyY2FzZSB7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZm9udC13ZWlnaHQtdGhpbiB7CiAgICAgIGZvbnQtd2VpZ2h0OiAxMDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZm9udC13ZWlnaHQtbGlnaHQgewogICAgICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZvbnQtd2VpZ2h0LXJlZ3VsYXIgewogICAgICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZvbnQtd2VpZ2h0LW1lZGl1bSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZm9udC13ZWlnaHQtYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuZm9udC13ZWlnaHQtYmxhY2sgewogICAgICBmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZvbnQtaXRhbGljIHsKICAgICAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbW9ubyB7CiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgIWltcG9ydGFudDsKICAgIH0KCiAgICAucG9zaXRpb24tc3RhdGljIHsKICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wb3NpdGlvbi1yZWxhdGl2ZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wb3NpdGlvbi1maXhlZCB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wb3NpdGlvbi1hYnNvbHV0ZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wb3NpdGlvbi1zdGlja3kgewogICAgICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRvcC0wIHsKICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnJpZ2h0LTAgewogICAgICByaWdodDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3R0b20tMCB7CiAgICAgIGJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5sZWZ0LTAgewogICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci1hdXRvIHsKICAgICAgY3Vyc29yOiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci1kZWZhdWx0IHsKICAgICAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci1wb2ludGVyIHsKICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci13YWl0IHsKICAgICAgY3Vyc29yOiB3YWl0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci10ZXh0IHsKICAgICAgY3Vyc29yOiB0ZXh0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci1tb3ZlIHsKICAgICAgY3Vyc29yOiBtb3ZlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci1oZWxwIHsKICAgICAgY3Vyc29yOiBoZWxwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci1ub3QtYWxsb3dlZCB7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY3Vyc29yLXByb2dyZXNzIHsKICAgICAgY3Vyc29yOiBwcm9ncmVzcyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jdXJzb3ItZ3JhYiB7CiAgICAgIGN1cnNvcjogZ3JhYiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jdXJzb3ItZ3JhYmJpbmcgewogICAgICBjdXJzb3I6IGdyYWJiaW5nICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmN1cnNvci1ub25lIHsKICAgICAgY3Vyc29yOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZpbGwtaGVpZ2h0IHsKICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmgtYXV0byB7CiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5oLXNjcmVlbiB7CiAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgIH0KCiAgICAuaC0wIHsKICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmgtMjUgewogICAgICBoZWlnaHQ6IDI1JSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5oLTUwIHsKICAgICAgaGVpZ2h0OiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaC03NSB7CiAgICAgIGhlaWdodDogNzUlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmgtMTAwIHsKICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmgtc2NyZWVuIHsKICAgICAgaGVpZ2h0OiAxMDBkdmggIWltcG9ydGFudDsKICAgIH0KCiAgICAudy1hdXRvIHsKICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAudy0wIHsKICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAudy0yNSB7CiAgICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudy0zMyB7CiAgICAgIHdpZHRoOiAzMyUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudy01MCB7CiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudy02NiB7CiAgICAgIHdpZHRoOiA2NiUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudy03NSB7CiAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudy0xMDAgewogICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAuZC1zbS1ub25lIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXNtLWlubGluZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXNtLWlubGluZS1ibG9jayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXNtLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1zbS10YWJsZSB7CiAgICAgICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtc20tdGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtc20tdGFibGUtY2VsbCB7CiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1zbS1mbGV4IHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXNtLWlubGluZS1mbGV4IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxvYXQtc20tbm9uZSB7CiAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsb2F0LXNtLWxlZnQgewogICAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdC1zbS1yaWdodCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC52LWxvY2FsZS0taXMtcnRsIC5mbG9hdC1zbS1lbmQgewogICAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC52LWxvY2FsZS0taXMtbHRyIC5mbG9hdC1zbS1lbmQsCiAgICAgIC52LWxvY2FsZS0taXMtcnRsIC5mbG9hdC1zbS1zdGFydCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC52LWxvY2FsZS0taXMtbHRyIC5mbG9hdC1zbS1zdGFydCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tMS0xLAogICAgICAuZmxleC1zbS1maWxsIHsKICAgICAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS0xLTAgewogICAgICAgIGZsZXg6IDEgMCBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXNtLTAtMSB7CiAgICAgICAgZmxleDogMCAxIGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tMC0wIHsKICAgICAgICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS0xLTEtMTAwIHsKICAgICAgICBmbGV4OiAxIDEgMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS0xLTAtMTAwIHsKICAgICAgICBmbGV4OiAxIDAgMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS0wLTEtMTAwIHsKICAgICAgICBmbGV4OiAwIDEgMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS0wLTAtMTAwIHsKICAgICAgICBmbGV4OiAwIDAgMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS0xLTEtMCB7CiAgICAgICAgZmxleDogMSAxIDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tMS0wLTAgewogICAgICAgIGZsZXg6IDEgMCAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXNtLTAtMS0wIHsKICAgICAgICBmbGV4OiAwIDEgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS0wLTAtMCB7CiAgICAgICAgZmxleDogMCAwIDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tcm93IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXNtLWNvbHVtbiB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS1yb3ctcmV2ZXJzZSB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXNtLWNvbHVtbi1yZXZlcnNlIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tZ3Jvdy0wIHsKICAgICAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tZ3Jvdy0xIHsKICAgICAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tc2hyaW5rLTAgewogICAgICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXNtLXNocmluay0xIHsKICAgICAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS13cmFwIHsKICAgICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtc20tbm93cmFwIHsKICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1zbS13cmFwLXJldmVyc2UgewogICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5qdXN0aWZ5LXNtLXN0YXJ0IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktc20tZW5kIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5qdXN0aWZ5LXNtLWNlbnRlciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktc20tc3BhY2UtYmV0d2VlbiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5qdXN0aWZ5LXNtLXNwYWNlLWFyb3VuZCB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktc20tc3BhY2UtZXZlbmx5IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc20tc3RhcnQgewogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zbS1lbmQgewogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc20tY2VudGVyIHsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zbS1iYXNlbGluZSB7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zbS1zdHJldGNoIHsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1zbS1zdGFydCB7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1zbS1lbmQgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LXNtLWNlbnRlciB7CiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LXNtLXNwYWNlLWJldHdlZW4gewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQtc20tc3BhY2UtYXJvdW5kIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQtc20tc3BhY2UtZXZlbmx5IHsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1ldmVubHkgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQtc20tc3RyZXRjaCB7CiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi1zbS1hdXRvIHsKICAgICAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zZWxmLXNtLXN0YXJ0IHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zZWxmLXNtLWVuZCB7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtc20tY2VudGVyIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtc20tYmFzZWxpbmUgewogICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zZWxmLXNtLXN0cmV0Y2ggewogICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXNtLWZpcnN0IHsKICAgICAgICBvcmRlcjogLTEgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXNtLTAgewogICAgICAgIG9yZGVyOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1zbS0xIHsKICAgICAgICBvcmRlcjogMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItc20tMiB7CiAgICAgICAgb3JkZXI6IDIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXNtLTMgewogICAgICAgIG9yZGVyOiAzICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1zbS00IHsKICAgICAgICBvcmRlcjogNCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItc20tNSB7CiAgICAgICAgb3JkZXI6IDUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXNtLTYgewogICAgICAgIG9yZGVyOiA2ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1zbS03IHsKICAgICAgICBvcmRlcjogNyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItc20tOCB7CiAgICAgICAgb3JkZXI6IDggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXNtLTkgewogICAgICAgIG9yZGVyOiA5ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1zbS0xMCB7CiAgICAgICAgb3JkZXI6IDEwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1zbS0xMSB7CiAgICAgICAgb3JkZXI6IDExICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1zbS0xMiB7CiAgICAgICAgb3JkZXI6IDEyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1zbS1sYXN0IHsKICAgICAgICBvcmRlcjogMTMgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTAgewogICAgICAgIGdhcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2Etc20tMSB7CiAgICAgICAgZ2FwOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTIgewogICAgICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1zbS0zIHsKICAgICAgICBnYXA6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTQgewogICAgICAgIGdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2Etc20tNSB7CiAgICAgICAgZ2FwOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1zbS02IHsKICAgICAgICBnYXA6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTcgewogICAgICAgIGdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2Etc20tOCB7CiAgICAgICAgZ2FwOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1zbS05IHsKICAgICAgICBnYXA6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTEwIHsKICAgICAgICBnYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTExIHsKICAgICAgICBnYXA6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTEyIHsKICAgICAgICBnYXA6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTEzIHsKICAgICAgICBnYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTE0IHsKICAgICAgICBnYXA6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTE1IHsKICAgICAgICBnYXA6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLTE2IHsKICAgICAgICBnYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXNtLWF1dG8gewogICAgICAgIGdhcDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3Itc20tMCB7CiAgICAgICAgcm93LWdhcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3Itc20tMSB7CiAgICAgICAgcm93LWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1zbS0yIHsKICAgICAgICByb3ctZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTMgewogICAgICAgIHJvdy1nYXA6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTQgewogICAgICAgIHJvdy1nYXA6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTUgewogICAgICAgIHJvdy1nYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTYgewogICAgICAgIHJvdy1nYXA6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTcgewogICAgICAgIHJvdy1nYXA6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTggewogICAgICAgIHJvdy1nYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTkgewogICAgICAgIHJvdy1nYXA6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTEwIHsKICAgICAgICByb3ctZ2FwOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1zbS0xMSB7CiAgICAgICAgcm93LWdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3Itc20tMTIgewogICAgICAgIHJvdy1nYXA6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTEzIHsKICAgICAgICByb3ctZ2FwOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1zbS0xNCB7CiAgICAgICAgcm93LWdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3Itc20tMTUgewogICAgICAgIHJvdy1nYXA6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXNtLTE2IHsKICAgICAgICByb3ctZ2FwOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1zbS1hdXRvIHsKICAgICAgICByb3ctZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1zbS0wIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDAgIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1zbS0xIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDRweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2Mtc20tMiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTMgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTQgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTUgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTYgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTcgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTggewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTkgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTEwIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1zbS0xMSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2Mtc20tMTIgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTEzIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1zbS0xNCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2Mtc20tMTUgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXNtLTE2IHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1zbS1hdXRvIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0wIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLTEgewogICAgICAgIG1hcmdpbjogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0yIHsKICAgICAgICBtYXJnaW46IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtc20tMyB7CiAgICAgICAgbWFyZ2luOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS00IHsKICAgICAgICBtYXJnaW46IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLTUgewogICAgICAgIG1hcmdpbjogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtc20tNiB7CiAgICAgICAgbWFyZ2luOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS03IHsKICAgICAgICBtYXJnaW46IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLTggewogICAgICAgIG1hcmdpbjogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtc20tOSB7CiAgICAgICAgbWFyZ2luOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0xMCB7CiAgICAgICAgbWFyZ2luOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0xMSB7CiAgICAgICAgbWFyZ2luOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0xMiB7CiAgICAgICAgbWFyZ2luOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0xMyB7CiAgICAgICAgbWFyZ2luOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0xNCB7CiAgICAgICAgbWFyZ2luOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0xNSB7CiAgICAgICAgbWFyZ2luOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS0xNiB7CiAgICAgICAgbWFyZ2luOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS1hdXRvIHsKICAgICAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS0xIHsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLTQgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS01IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLTcgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS04IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tOSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLTEwIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tMTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS0xMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLTEzIHsKICAgICAgICBtYXJnaW4tbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tMTQgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS0xNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLTE2IHsKICAgICAgICBtYXJnaW4tbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tYXV0byB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS0xIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS01IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLTcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS04IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLTEwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS0xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLTEzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS0xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLTE2IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tYXV0byB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLTAgewogICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLTEgewogICAgICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtc20tMiB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS0zIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS00IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS01IHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS02IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS03IHsKICAgICAgICBtYXJnaW4tdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS04IHsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS05IHsKICAgICAgICBtYXJnaW4tdG9wOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS0xMCB7CiAgICAgICAgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtc20tMTEgewogICAgICAgIG1hcmdpbi10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLTEyIHsKICAgICAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS0xMyB7CiAgICAgICAgbWFyZ2luLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtc20tMTQgewogICAgICAgIG1hcmdpbi10b3A6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLTE1IHsKICAgICAgICBtYXJnaW4tdG9wOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS0xNiB7CiAgICAgICAgbWFyZ2luLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtc20tYXV0byB7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS0xIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLTMgewogICAgICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tNCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS01IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLTYgewogICAgICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tNyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS04IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLTkgewogICAgICAgIG1hcmdpbi1yaWdodDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMTAgewogICAgICAgIG1hcmdpbi1yaWdodDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMTEgewogICAgICAgIG1hcmdpbi1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMTIgewogICAgICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMTMgewogICAgICAgIG1hcmdpbi1yaWdodDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMTQgewogICAgICAgIG1hcmdpbi1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMTUgewogICAgICAgIG1hcmdpbi1yaWdodDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tMTYgewogICAgICAgIG1hcmdpbi1yaWdodDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tYXV0byB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS0wIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS0xIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXNtLTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tNyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tOCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tMTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXNtLTExIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS0xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tMTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXNtLTE0IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS0xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tMTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXNtLWF1dG8gewogICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS0xIHsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS0yIHsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS0zIHsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS02IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLTggewogICAgICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS05IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS0xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLTEyIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS0xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLTE1IHsKICAgICAgICBtYXJnaW4tbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS1hdXRvIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtc20tMCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtc20tMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS0yIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTcgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTggewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTkgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTEwIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS0xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtc20tMTIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTEzIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS0xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtc20tMTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLTE2IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1hdXRvIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS0wIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLTQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS01IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLTcgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS04IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLTEwIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tMTEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS0xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLTEzIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tMTQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS0xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLTE2IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tYXV0byB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLW4xIHsKICAgICAgICBtYXJnaW46IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLW4yIHsKICAgICAgICBtYXJnaW46IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLW4zIHsKICAgICAgICBtYXJnaW46IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS1uNCB7CiAgICAgICAgbWFyZ2luOiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtc20tbjUgewogICAgICAgIG1hcmdpbjogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLW42IHsKICAgICAgICBtYXJnaW46IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS1uNyB7CiAgICAgICAgbWFyZ2luOiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtc20tbjggewogICAgICAgIG1hcmdpbjogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLW45IHsKICAgICAgICBtYXJnaW46IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS1uMTAgewogICAgICAgIG1hcmdpbjogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLW4xMSB7CiAgICAgICAgbWFyZ2luOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtc20tbjEyIHsKICAgICAgICBtYXJnaW46IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS1uMTMgewogICAgICAgIG1hcmdpbjogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXNtLW4xNCB7CiAgICAgICAgbWFyZ2luOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtc20tbjE1IHsKICAgICAgICBtYXJnaW46IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1zbS1uMTYgewogICAgICAgIG1hcmdpbjogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLW4xIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tbjIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS1uMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tbjQgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLW41IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS1uNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tbjcgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLW44IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTMycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS1uOSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tbjEwIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS1uMTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLW4xMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tbjEzIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTUycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1zbS1uMTQgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXNtLW4xNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtc20tbjE2IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTY0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS1uMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLW4yIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tbjMgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLW40IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS1uNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tbjYgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLW43IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS1uOCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTMycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tbjkgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLW4xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tbjExIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS1uMTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLW4xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTUycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktc20tbjE0IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1zbS1uMTUgewogICAgICAgIG1hcmdpbi1ib3R0b206IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXNtLW4xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTY0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtc20tbjEgewogICAgICAgIG1hcmdpbi10b3A6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4yIHsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS1uMyB7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW40IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtc20tbjUgewogICAgICAgIG1hcmdpbi10b3A6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS1uNiB7CiAgICAgICAgbWFyZ2luLXRvcDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW43IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtc20tbjggewogICAgICAgIG1hcmdpbi10b3A6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1zbS1uOSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4xMCB7CiAgICAgICAgbWFyZ2luLXRvcDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4xMSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4xMiB7CiAgICAgICAgbWFyZ2luLXRvcDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4xMyB7CiAgICAgICAgbWFyZ2luLXRvcDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4xNCB7CiAgICAgICAgbWFyZ2luLXRvcDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4xNSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXNtLW4xNiB7CiAgICAgICAgbWFyZ2luLXRvcDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLW4xIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLW4yIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLW4zIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS1uNCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tbjUgewogICAgICAgIG1hcmdpbi1yaWdodDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLW42IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS1uNyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tbjggewogICAgICAgIG1hcmdpbi1yaWdodDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLW45IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS1uMTAgewogICAgICAgIG1hcmdpbi1yaWdodDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLW4xMSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tbjEyIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS1uMTMgewogICAgICAgIG1hcmdpbi1yaWdodDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXNtLW4xNCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItc20tbjE1IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1zbS1uMTYgewogICAgICAgIG1hcmdpbi1yaWdodDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXNtLW4xIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tbjMgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXNtLW41IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tbjYgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uNyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXNtLW44IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItc20tbjkgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMTUgewogICAgICAgIG1hcmdpbi1ib3R0b206IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1zbS1uMTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS1uMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLW4yIHsKICAgICAgICBtYXJnaW4tbGVmdDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjQgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjcgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjggewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjEwIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLW4xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS1uMTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjEzIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXNtLW4xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1zbS1uMTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtc20tbjE2IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLW4xIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtc20tbjMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLW41IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtc20tbjYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXNtLW44IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtc20tbjkgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMTEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMTIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMTQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1zbS1uMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS1uMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLW4yIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjcgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjggewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjkgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjEwIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLW4xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS1uMTIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjEzIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXNtLW4xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1zbS1uMTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtc20tbjE2IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXNtLTAgewogICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXNtLTEgewogICAgICAgIHBhZGRpbmc6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtc20tMiB7CiAgICAgICAgcGFkZGluZzogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS0zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS00IHsKICAgICAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS01IHsKICAgICAgICBwYWRkaW5nOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS02IHsKICAgICAgICBwYWRkaW5nOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS03IHsKICAgICAgICBwYWRkaW5nOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS04IHsKICAgICAgICBwYWRkaW5nOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS05IHsKICAgICAgICBwYWRkaW5nOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS0xMCB7CiAgICAgICAgcGFkZGluZzogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtc20tMTEgewogICAgICAgIHBhZGRpbmc6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXNtLTEyIHsKICAgICAgICBwYWRkaW5nOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS0xMyB7CiAgICAgICAgcGFkZGluZzogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtc20tMTQgewogICAgICAgIHBhZGRpbmc6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXNtLTE1IHsKICAgICAgICBwYWRkaW5nOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1zbS0xNiB7CiAgICAgICAgcGFkZGluZzogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtc20tMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtc20tMSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXNtLTIgewogICAgICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS0zIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS00IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS01IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS02IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS03IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS04IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS05IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS0xMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtc20tMTEgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXNtLTEyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS0xMyB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtc20tMTQgewogICAgICAgIHBhZGRpbmctbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXNtLTE1IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1zbS0xNiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktc20tMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktc20tMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXNtLTIgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS0zIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS00IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS01IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS02IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS03IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS04IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS05IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS0xMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktc20tMTEgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXNtLTEyIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS0xMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktc20tMTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXNtLTE1IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1zbS0xNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtc20tMCB7CiAgICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXNtLTEgewogICAgICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXNtLTIgewogICAgICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXNtLTMgewogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1zbS00IHsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtc20tNSB7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXNtLTYgewogICAgICAgIHBhZGRpbmctdG9wOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1zbS03IHsKICAgICAgICBwYWRkaW5nLXRvcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtc20tOCB7CiAgICAgICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXNtLTkgewogICAgICAgIHBhZGRpbmctdG9wOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1zbS0xMCB7CiAgICAgICAgcGFkZGluZy10b3A6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXNtLTExIHsKICAgICAgICBwYWRkaW5nLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtc20tMTIgewogICAgICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1zbS0xMyB7CiAgICAgICAgcGFkZGluZy10b3A6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXNtLTE0IHsKICAgICAgICBwYWRkaW5nLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtc20tMTUgewogICAgICAgIHBhZGRpbmctdG9wOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1zbS0xNiB7CiAgICAgICAgcGFkZGluZy10b3A6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXNtLTAgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXNtLTEgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItc20tMiB7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS0zIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS00IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS01IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS02IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS03IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS04IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS05IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS0xMCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItc20tMTEgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXNtLTEyIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS0xMyB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItc20tMTQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXNtLTE1IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1zbS0xNiB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItc20tMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXNtLTEgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXNtLTIgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXNtLTMgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1zbS00IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItc20tNSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXNtLTYgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1zbS03IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItc20tOCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXNtLTkgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1zbS0xMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXNtLTExIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItc20tMTIgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1zbS0xMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXNtLTE0IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItc20tMTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1zbS0xNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTAgewogICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtc20tMSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTIgewogICAgICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1zbS0zIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtc20tNSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1zbS02IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTcgewogICAgICAgIHBhZGRpbmctbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtc20tOCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1zbS05IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTEwIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTExIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTEyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTEzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTE0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTE1IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXNtLTE2IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXNtLTAgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1zbS0xIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1zbS0yIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1zbS0zIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtc20tNCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXNtLTUgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1zbS02IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtc20tNyB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXNtLTggewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1zbS05IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtc20tMTAgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1zbS0xMSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXNtLTEyIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtc20tMTMgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1zbS0xNCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXNtLTE1IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtc20tMTYgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0wIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXNtLTEgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0yIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtc20tMyB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS00IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXNtLTUgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtc20tNiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS03IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXNtLTggewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtc20tOSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0xMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0xMSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0xMiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0xMyB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0xNCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0xNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1zbS0xNiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWxlZnQgewogICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtc20tcmlnaHQgewogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWNlbnRlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWp1c3RpZnkgewogICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtc20tc3RhcnQgewogICAgICAgIHRleHQtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWVuZCB7CiAgICAgICAgdGV4dC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWgxIHsKICAgICAgICBmb250LXNpemU6IDZyZW0gIWltcG9ydGFudDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDE1NjI1ZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtc20taDEsCiAgICAgIC50ZXh0LXNtLWgyIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtc20taDIgewogICAgICAgIGZvbnQtc2l6ZTogMy43NXJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDgzMzMzMzMzZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtc20taDMgewogICAgICAgIGZvbnQtc2l6ZTogM3JlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwgIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS4wNTsKICAgICAgfQoKICAgICAgLnRleHQtc20taDMsCiAgICAgIC50ZXh0LXNtLWg0IHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtc20taDQgewogICAgICAgIGZvbnQtc2l6ZTogMi4xMjVyZW0gIWltcG9ydGFudDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMDczNTI5NDEyZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS4xNzU7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWg1IHsKICAgICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzsKICAgICAgfQoKICAgICAgLnRleHQtc20taDUsCiAgICAgIC50ZXh0LXNtLWg2IHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWg2IHsKICAgICAgICBmb250LXNpemU6IDEuMjVyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxMjVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLXN1YnRpdGxlLTEgewogICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5Mzc1ZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS43NTsKICAgICAgfQoKICAgICAgLnRleHQtc20tc3VidGl0bGUtMSwKICAgICAgLnRleHQtc20tc3VidGl0bGUtMiB7CiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1zbS1zdWJ0aXRsZS0yIHsKICAgICAgICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMDcxNDI4NTcxZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CgogICAgICAudGV4dC1zbS1ib2R5LTEgewogICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzMTI1ZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAudGV4dC1zbS1ib2R5LTEsCiAgICAgIC50ZXh0LXNtLWJvZHktMiB7CiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXNtLWJvZHktMiB7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0MjllbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyNTsKICAgICAgfQoKICAgICAgLnRleHQtc20tYnV0dG9uIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4OTI4NTcxNDNlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyLjY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1zbS1jYXB0aW9uIHsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzMzMzMzNlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY2NzsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1zbS1jYXB0aW9uLAogICAgICAudGV4dC1zbS1vdmVybGluZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDAuNzVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtc20tb3ZlcmxpbmUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMTY2NjY2NjY2N2VtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNjY3OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgtc20tYXV0byB7CiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLXNtLXNjcmVlbiB7CiAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1zbS0wIHsKICAgICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgtc20tMjUgewogICAgICAgIGhlaWdodDogMjUlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLXNtLTUwIHsKICAgICAgICBoZWlnaHQ6IDUwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1zbS03NSB7CiAgICAgICAgaGVpZ2h0OiA3NSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgtc20tMTAwIHsKICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tYXV0byB7CiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tMCB7CiAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tMjUgewogICAgICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tMzMgewogICAgICAgIHdpZHRoOiAzMyUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tNTAgewogICAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tNjYgewogICAgICAgIHdpZHRoOiA2NiUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tNzUgewogICAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnctc20tMTAwIHsKICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7CiAgICAgIC5kLW1kLW5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbWQtaW5saW5lIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbWQtaW5saW5lLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbWQtYmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLW1kLXRhYmxlIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1tZC10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1tZC10YWJsZS1jZWxsIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLW1kLWZsZXggewogICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbWQtaW5saW5lLWZsZXggewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdC1tZC1ub25lIHsKICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxvYXQtbWQtbGVmdCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsb2F0LW1kLXJpZ2h0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LW1kLWVuZCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LW1kLWVuZCwKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LW1kLXN0YXJ0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LW1kLXN0YXJ0IHsKICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC0xLTEsCiAgICAgIC5mbGV4LW1kLWZpbGwgewogICAgICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLTEtMCB7CiAgICAgICAgZmxleDogMSAwIGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbWQtMC0xIHsKICAgICAgICBmbGV4OiAwIDEgYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC0wLTAgewogICAgICAgIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLTEtMS0xMDAgewogICAgICAgIGZsZXg6IDEgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLTEtMC0xMDAgewogICAgICAgIGZsZXg6IDEgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLTAtMS0xMDAgewogICAgICAgIGZsZXg6IDAgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLTAtMC0xMDAgewogICAgICAgIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLTEtMS0wIHsKICAgICAgICBmbGV4OiAxIDEgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC0xLTAtMCB7CiAgICAgICAgZmxleDogMSAwIDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbWQtMC0xLTAgewogICAgICAgIGZsZXg6IDAgMSAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLTAtMC0wIHsKICAgICAgICBmbGV4OiAwIDAgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC1yb3cgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbWQtY29sdW1uIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLXJvdy1yZXZlcnNlIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbWQtY29sdW1uLXJldmVyc2UgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC1ncm93LTAgewogICAgICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC1ncm93LTEgewogICAgICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC1zaHJpbmstMCB7CiAgICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbWQtc2hyaW5rLTEgewogICAgICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLXdyYXAgewogICAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1tZC1ub3dyYXAgewogICAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LW1kLXdyYXAtcmV2ZXJzZSB7CiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktbWQtc3RhcnQgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS1tZC1lbmQgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktbWQtY2VudGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS1tZC1zcGFjZS1iZXR3ZWVuIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktbWQtc3BhY2UtYXJvdW5kIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS1tZC1zcGFjZS1ldmVubHkgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1tZC1zdGFydCB7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLW1kLWVuZCB7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1tZC1jZW50ZXIgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLW1kLWJhc2VsaW5lIHsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLW1kLXN0cmV0Y2ggewogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LW1kLXN0YXJ0IHsKICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LW1kLWVuZCB7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQtbWQtY2VudGVyIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQtbWQtc3BhY2UtYmV0d2VlbiB7CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1tZC1zcGFjZS1hcm91bmQgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1tZC1zcGFjZS1ldmVubHkgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1tZC1zdHJldGNoIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zZWxmLW1kLWF1dG8gewogICAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtbWQtc3RhcnQgewogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtbWQtZW5kIHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi1tZC1jZW50ZXIgewogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi1tZC1iYXNlbGluZSB7CiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtbWQtc3RyZXRjaCB7CiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbWQtZmlyc3QgewogICAgICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbWQtMCB7CiAgICAgICAgb3JkZXI6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLW1kLTEgewogICAgICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1tZC0yIHsKICAgICAgICBvcmRlcjogMiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbWQtMyB7CiAgICAgICAgb3JkZXI6IDMgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLW1kLTQgewogICAgICAgIG9yZGVyOiA0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1tZC01IHsKICAgICAgICBvcmRlcjogNSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbWQtNiB7CiAgICAgICAgb3JkZXI6IDYgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLW1kLTcgewogICAgICAgIG9yZGVyOiA3ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1tZC04IHsKICAgICAgICBvcmRlcjogOCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbWQtOSB7CiAgICAgICAgb3JkZXI6IDkgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLW1kLTEwIHsKICAgICAgICBvcmRlcjogMTAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLW1kLTExIHsKICAgICAgICBvcmRlcjogMTEgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLW1kLTEyIHsKICAgICAgICBvcmRlcjogMTIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLW1kLWxhc3QgewogICAgICAgIG9yZGVyOiAxMyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMCB7CiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1tZC0xIHsKICAgICAgICBnYXA6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMiB7CiAgICAgICAgZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLW1kLTMgewogICAgICAgIGdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtNCB7CiAgICAgICAgZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1tZC01IHsKICAgICAgICBnYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLW1kLTYgewogICAgICAgIGdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtNyB7CiAgICAgICAgZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1tZC04IHsKICAgICAgICBnYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLW1kLTkgewogICAgICAgIGdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMTAgewogICAgICAgIGdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMTEgewogICAgICAgIGdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMTIgewogICAgICAgIGdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMTMgewogICAgICAgIGdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMTQgewogICAgICAgIGdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMTUgewogICAgICAgIGdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtMTYgewogICAgICAgIGdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbWQtYXV0byB7CiAgICAgICAgZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1tZC0wIHsKICAgICAgICByb3ctZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1tZC0xIHsKICAgICAgICByb3ctZ2FwOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLW1kLTIgewogICAgICAgIHJvdy1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtMyB7CiAgICAgICAgcm93LWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtNCB7CiAgICAgICAgcm93LWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtNSB7CiAgICAgICAgcm93LWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtNiB7CiAgICAgICAgcm93LWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtNyB7CiAgICAgICAgcm93LWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtOCB7CiAgICAgICAgcm93LWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtOSB7CiAgICAgICAgcm93LWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtMTAgewogICAgICAgIHJvdy1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLW1kLTExIHsKICAgICAgICByb3ctZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1tZC0xMiB7CiAgICAgICAgcm93LWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtMTMgewogICAgICAgIHJvdy1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLW1kLTE0IHsKICAgICAgICByb3ctZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1tZC0xNSB7CiAgICAgICAgcm93LWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbWQtMTYgewogICAgICAgIHJvdy1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLW1kLWF1dG8gewogICAgICAgIHJvdy1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLW1kLTAgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLW1kLTEgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1tZC0yIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtMyB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtNCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtNSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtNiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtNyB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtOCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtOSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtMTAgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLW1kLTExIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1tZC0xMiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtMTMgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLW1kLTE0IHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDU2cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1tZC0xNSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbWQtMTYgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLW1kLWF1dG8gewogICAgICAgIC1tb3otY29sdW1uLWdhcDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTAgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtMSB7CiAgICAgICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTIgewogICAgICAgIG1hcmdpbjogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1tZC0zIHsKICAgICAgICBtYXJnaW46IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTQgewogICAgICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtNSB7CiAgICAgICAgbWFyZ2luOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1tZC02IHsKICAgICAgICBtYXJnaW46IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTcgewogICAgICAgIG1hcmdpbjogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtOCB7CiAgICAgICAgbWFyZ2luOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1tZC05IHsKICAgICAgICBtYXJnaW46IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTEwIHsKICAgICAgICBtYXJnaW46IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTExIHsKICAgICAgICBtYXJnaW46IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTEyIHsKICAgICAgICBtYXJnaW46IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTEzIHsKICAgICAgICBtYXJnaW46IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTE0IHsKICAgICAgICBtYXJnaW46IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTE1IHsKICAgICAgICBtYXJnaW46IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLTE2IHsKICAgICAgICBtYXJnaW46IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLWF1dG8gewogICAgICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC0zIHsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC02IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLTggewogICAgICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC05IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC0xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLTEyIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC0xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLTE1IHsKICAgICAgICBtYXJnaW4tbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC1hdXRvIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC0zIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLTUgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC02IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtNyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLTggewogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC05IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtMTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC0xMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLTEyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtMTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC0xNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLTE1IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtMTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC1hdXRvIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtMCB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtMSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1tZC0yIHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTMgewogICAgICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTUgewogICAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTYgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTcgewogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTggewogICAgICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTkgewogICAgICAgIG1hcmdpbi10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTEwIHsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1tZC0xMSB7CiAgICAgICAgbWFyZ2luLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtMTIgewogICAgICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTEzIHsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1tZC0xNCB7CiAgICAgICAgbWFyZ2luLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtMTUgewogICAgICAgIG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLTE2IHsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1tZC1hdXRvIHsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0wIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLTEgewogICAgICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0yIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC00IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLTUgewogICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC03IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLTggewogICAgICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtOSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0xMSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0xMiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0xNCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0xNSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC0xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC1hdXRvIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbWQtMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC0zIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC00IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC01IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC02IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC03IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC04IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC05IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC0xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbWQtMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLTEyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC0xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbWQtMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLTE1IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC0xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbWQtYXV0byB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC00IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC03IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtOCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLTkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC0xMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLTExIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtMTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC0xMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLTE0IHsKICAgICAgICBtYXJnaW4tbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtMTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC0xNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLWF1dG8gewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1tZC0wIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1tZC0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLTIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtOCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLTExIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1tZC0xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLTE0IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1tZC0xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLWF1dG8gewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC0yIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC0zIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC02IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLTggewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC05IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC0xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLTEyIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC0xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLTE1IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1hdXRvIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtbjEgewogICAgICAgIG1hcmdpbjogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtbjIgewogICAgICAgIG1hcmdpbjogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtbjMgewogICAgICAgIG1hcmdpbjogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLW40IHsKICAgICAgICBtYXJnaW46IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1tZC1uNSB7CiAgICAgICAgbWFyZ2luOiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtbjYgewogICAgICAgIG1hcmdpbjogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLW43IHsKICAgICAgICBtYXJnaW46IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1tZC1uOCB7CiAgICAgICAgbWFyZ2luOiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtbjkgewogICAgICAgIG1hcmdpbjogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLW4xMCB7CiAgICAgICAgbWFyZ2luOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtbjExIHsKICAgICAgICBtYXJnaW46IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1tZC1uMTIgewogICAgICAgIG1hcmdpbjogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLW4xMyB7CiAgICAgICAgbWFyZ2luOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbWQtbjE0IHsKICAgICAgICBtYXJnaW46IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1tZC1uMTUgewogICAgICAgIG1hcmdpbjogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLW1kLW4xNiB7CiAgICAgICAgbWFyZ2luOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtbjEgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC1uMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLW4zIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC1uNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtbjUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLW42IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC1uNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtbjggewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLW45IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC1uMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLW4xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtbjEyIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC1uMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LW1kLW4xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbWQtbjE1IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1tZC1uMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLW4xIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtbjIgewogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtbjQgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLW41IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtbjcgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLW44IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtbjEwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC1uMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtbjEzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1tZC1uMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LW1kLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbWQtbjE2IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1tZC1uMSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjIgewogICAgICAgIG1hcmdpbi10b3A6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLW4zIHsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjQgewogICAgICAgIG1hcmdpbi10b3A6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1tZC1uNSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLW42IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjcgewogICAgICAgIG1hcmdpbi10b3A6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1tZC1uOCB7CiAgICAgICAgbWFyZ2luLXRvcDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LW1kLW45IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjEwIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjExIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjEyIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjEzIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjE0IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjE1IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbWQtbjE2IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtbjEgewogICAgICAgIG1hcmdpbi1yaWdodDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtbjIgewogICAgICAgIG1hcmdpbi1yaWdodDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtbjMgewogICAgICAgIG1hcmdpbi1yaWdodDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLW40IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC1uNSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtbjYgewogICAgICAgIG1hcmdpbi1yaWdodDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLW43IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC1uOCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtbjkgewogICAgICAgIG1hcmdpbi1yaWdodDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLW4xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtbjExIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC1uMTIgewogICAgICAgIG1hcmdpbi1yaWdodDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLW4xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbWQtbjE0IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1tZC1uMTUgewogICAgICAgIG1hcmdpbi1yaWdodDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLW1kLW4xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbWQtbjEgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4yIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW40IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbWQtbjUgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW43IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbWQtbjggewogICAgICAgIG1hcmdpbi1ib3R0b206IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1tZC1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4xMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4xNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLW1kLW4xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLW4xIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtbjIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uOCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uOSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtbjExIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLW4xMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbWQtbjE0IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLW1kLW4xNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1tZC1uMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtbjEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4yIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1tZC1uMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW40IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtbjUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1tZC1uNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW43IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbWQtbjggewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1tZC1uOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4xMCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4xMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLW1kLW4xNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLW4xIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtbjIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uOCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtbjExIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLW4xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbWQtbjE0IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLW1kLW4xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1tZC1uMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbWQtMCB7CiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbWQtMSB7CiAgICAgICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1tZC0yIHsKICAgICAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTMgewogICAgICAgIHBhZGRpbmc6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTQgewogICAgICAgIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTUgewogICAgICAgIHBhZGRpbmc6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTYgewogICAgICAgIHBhZGRpbmc6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTcgewogICAgICAgIHBhZGRpbmc6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTggewogICAgICAgIHBhZGRpbmc6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTkgewogICAgICAgIHBhZGRpbmc6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTEwIHsKICAgICAgICBwYWRkaW5nOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1tZC0xMSB7CiAgICAgICAgcGFkZGluZzogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbWQtMTIgewogICAgICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTEzIHsKICAgICAgICBwYWRkaW5nOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1tZC0xNCB7CiAgICAgICAgcGFkZGluZzogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbWQtMTUgewogICAgICAgIHBhZGRpbmc6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLW1kLTE2IHsKICAgICAgICBwYWRkaW5nOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1tZC0wIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1tZC0xIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtbWQtMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTMgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTUgewogICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTcgewogICAgICAgIHBhZGRpbmctbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTggewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTkgewogICAgICAgIHBhZGRpbmctbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTEwIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1tZC0xMSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtbWQtMTIgewogICAgICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTEzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1tZC0xNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtbWQtMTUgewogICAgICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LW1kLTE2IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1tZC0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1tZC0xIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktbWQtMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTMgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTYgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTcgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTggewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTkgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1tZC0xMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktbWQtMTIgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTEzIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1tZC0xNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktbWQtMTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LW1kLTE2IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1tZC0wIHsKICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbWQtMSB7CiAgICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbWQtMiB7CiAgICAgICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbWQtMyB7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LW1kLTQgewogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1tZC01IHsKICAgICAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbWQtNiB7CiAgICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LW1kLTcgewogICAgICAgIHBhZGRpbmctdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1tZC04IHsKICAgICAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbWQtOSB7CiAgICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LW1kLTEwIHsKICAgICAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbWQtMTEgewogICAgICAgIHBhZGRpbmctdG9wOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1tZC0xMiB7CiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LW1kLTEzIHsKICAgICAgICBwYWRkaW5nLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbWQtMTQgewogICAgICAgIHBhZGRpbmctdG9wOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1tZC0xNSB7CiAgICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LW1kLTE2IHsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbWQtMCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbWQtMSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1tZC0yIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTMgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTUgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTYgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTcgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTggewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTkgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTEwIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1tZC0xMSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbWQtMTIgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTEzIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1tZC0xNCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbWQtMTUgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLW1kLTE2IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1tZC0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbWQtMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbWQtMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbWQtMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLW1kLTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1tZC01IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbWQtNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLW1kLTcgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1tZC04IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbWQtOSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLW1kLTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbWQtMTEgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1tZC0xMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLW1kLTEzIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbWQtMTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1tZC0xNSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLW1kLTE2IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1tZC0xIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLW1kLTMgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1tZC01IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLW1kLTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtNyB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1tZC04IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLW1kLTkgewogICAgICAgIHBhZGRpbmctbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMTAgewogICAgICAgIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMTEgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMTIgewogICAgICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMTMgewogICAgICAgIHBhZGRpbmctbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMTQgewogICAgICAgIHBhZGRpbmctbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMTUgewogICAgICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbWQtMTYgewogICAgICAgIHBhZGRpbmctbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbWQtMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLW1kLTEgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLW1kLTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLW1kLTMgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1tZC00IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbWQtNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLW1kLTYgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1tZC03IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbWQtOCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLW1kLTkgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1tZC0xMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLW1kLTExIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbWQtMTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1tZC0xMyB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLW1kLTE0IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbWQtMTUgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1tZC0xNiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTAgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtbWQtMSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1tZC0zIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTQgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtbWQtNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1tZC02IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTcgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtbWQtOCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1tZC05IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTEwIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTExIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTEyIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTEzIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTE0IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTE1IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLW1kLTE2IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbWQtbGVmdCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1tZC1yaWdodCB7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbWQtY2VudGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbWQtanVzdGlmeSB7CiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1tZC1zdGFydCB7CiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbWQtZW5kIHsKICAgICAgICB0ZXh0LWFsaWduOiBlbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbWQtaDEgewogICAgICAgIGZvbnQtc2l6ZTogNnJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMTU2MjVlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1tZC1oMSwKICAgICAgLnRleHQtbWQtaDIgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1tZC1oMiB7CiAgICAgICAgZm9udC1zaXplOiAzLjc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwODMzMzMzMzNlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1tZC1oMyB7CiAgICAgICAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1OwogICAgICB9CgogICAgICAudGV4dC1tZC1oMywKICAgICAgLnRleHQtbWQtaDQgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1tZC1oNCB7CiAgICAgICAgZm9udC1zaXplOiAyLjEyNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzM1Mjk0MTJlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE3NTsKICAgICAgfQoKICAgICAgLnRleHQtbWQtaDUgewogICAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzMzOwogICAgICB9CgogICAgICAudGV4dC1tZC1oNSwKICAgICAgLnRleHQtbWQtaDYgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbWQtaDYgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQoKICAgICAgLnRleHQtbWQtc3VidGl0bGUtMSB7CiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1OwogICAgICB9CgogICAgICAudGV4dC1tZC1zdWJ0aXRsZS0xLAogICAgICAudGV4dC1tZC1zdWJ0aXRsZS0yIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LW1kLXN1YnRpdGxlLTIgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzE0Mjg1NzFlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC50ZXh0LW1kLWJvZHktMSB7CiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC50ZXh0LW1kLWJvZHktMSwKICAgICAgLnRleHQtbWQtYm9keS0yIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbWQtYm9keS0yIHsKICAgICAgICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTQyOWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDI1OwogICAgICB9CgogICAgICAudGV4dC1tZC1idXR0b24gewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5Mjg1NzE0M2VtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNjsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LW1kLWNhcHRpb24gewogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMzMzMzMzMzM2VtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjY3OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LW1kLWNhcHRpb24sCiAgICAgIC50ZXh0LW1kLW92ZXJsaW5lIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1tZC1vdmVybGluZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xNjY2NjY2NjY3ZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMi42Njc7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1tZC1hdXRvIHsKICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgtbWQtc2NyZWVuIHsKICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLW1kLTAgewogICAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1tZC0yNSB7CiAgICAgICAgaGVpZ2h0OiAyNSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgtbWQtNTAgewogICAgICAgIGhlaWdodDogNTAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLW1kLTc1IHsKICAgICAgICBoZWlnaHQ6IDc1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1tZC0xMDAgewogICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC1hdXRvIHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC0wIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC0yNSB7CiAgICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC0zMyB7CiAgICAgICAgd2lkdGg6IDMzJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC01MCB7CiAgICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC02NiB7CiAgICAgICAgd2lkdGg6IDY2JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC03NSB7CiAgICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1tZC0xMDAgewogICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7CiAgICAgIC5kLWxnLW5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbGctaW5saW5lIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbGctaW5saW5lLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbGctYmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLWxnLXRhYmxlIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1sZy10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1sZy10YWJsZS1jZWxsIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLWxnLWZsZXggewogICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtbGctaW5saW5lLWZsZXggewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdC1sZy1ub25lIHsKICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxvYXQtbGctbGVmdCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsb2F0LWxnLXJpZ2h0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LWxnLWVuZCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LWxnLWVuZCwKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LWxnLXN0YXJ0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LWxnLXN0YXJ0IHsKICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy0xLTEsCiAgICAgIC5mbGV4LWxnLWZpbGwgewogICAgICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLTEtMCB7CiAgICAgICAgZmxleDogMSAwIGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbGctMC0xIHsKICAgICAgICBmbGV4OiAwIDEgYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy0wLTAgewogICAgICAgIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLTEtMS0xMDAgewogICAgICAgIGZsZXg6IDEgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLTEtMC0xMDAgewogICAgICAgIGZsZXg6IDEgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLTAtMS0xMDAgewogICAgICAgIGZsZXg6IDAgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLTAtMC0xMDAgewogICAgICAgIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLTEtMS0wIHsKICAgICAgICBmbGV4OiAxIDEgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy0xLTAtMCB7CiAgICAgICAgZmxleDogMSAwIDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbGctMC0xLTAgewogICAgICAgIGZsZXg6IDAgMSAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLTAtMC0wIHsKICAgICAgICBmbGV4OiAwIDAgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy1yb3cgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbGctY29sdW1uIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLXJvdy1yZXZlcnNlIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbGctY29sdW1uLXJldmVyc2UgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy1ncm93LTAgewogICAgICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy1ncm93LTEgewogICAgICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy1zaHJpbmstMCB7CiAgICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgtbGctc2hyaW5rLTEgewogICAgICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLXdyYXAgewogICAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC1sZy1ub3dyYXAgewogICAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LWxnLXdyYXAtcmV2ZXJzZSB7CiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktbGctc3RhcnQgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS1sZy1lbmQgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktbGctY2VudGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS1sZy1zcGFjZS1iZXR3ZWVuIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnktbGctc3BhY2UtYXJvdW5kIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS1sZy1zcGFjZS1ldmVubHkgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1sZy1zdGFydCB7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWxnLWVuZCB7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1sZy1jZW50ZXIgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWxnLWJhc2VsaW5lIHsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWxnLXN0cmV0Y2ggewogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LWxnLXN0YXJ0IHsKICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LWxnLWVuZCB7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQtbGctY2VudGVyIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQtbGctc3BhY2UtYmV0d2VlbiB7CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1sZy1zcGFjZS1hcm91bmQgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1sZy1zcGFjZS1ldmVubHkgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC1sZy1zdHJldGNoIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zZWxmLWxnLWF1dG8gewogICAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtbGctc3RhcnQgewogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtbGctZW5kIHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi1sZy1jZW50ZXIgewogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi1sZy1iYXNlbGluZSB7CiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYtbGctc3RyZXRjaCB7CiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbGctZmlyc3QgewogICAgICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbGctMCB7CiAgICAgICAgb3JkZXI6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLWxnLTEgewogICAgICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1sZy0yIHsKICAgICAgICBvcmRlcjogMiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbGctMyB7CiAgICAgICAgb3JkZXI6IDMgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLWxnLTQgewogICAgICAgIG9yZGVyOiA0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1sZy01IHsKICAgICAgICBvcmRlcjogNSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbGctNiB7CiAgICAgICAgb3JkZXI6IDYgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLWxnLTcgewogICAgICAgIG9yZGVyOiA3ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci1sZy04IHsKICAgICAgICBvcmRlcjogOCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXItbGctOSB7CiAgICAgICAgb3JkZXI6IDkgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLWxnLTEwIHsKICAgICAgICBvcmRlcjogMTAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLWxnLTExIHsKICAgICAgICBvcmRlcjogMTEgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLWxnLTEyIHsKICAgICAgICBvcmRlcjogMTIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLWxnLWxhc3QgewogICAgICAgIG9yZGVyOiAxMyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMCB7CiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1sZy0xIHsKICAgICAgICBnYXA6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMiB7CiAgICAgICAgZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLWxnLTMgewogICAgICAgIGdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctNCB7CiAgICAgICAgZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1sZy01IHsKICAgICAgICBnYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLWxnLTYgewogICAgICAgIGdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctNyB7CiAgICAgICAgZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS1sZy04IHsKICAgICAgICBnYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLWxnLTkgewogICAgICAgIGdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMTAgewogICAgICAgIGdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMTEgewogICAgICAgIGdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMTIgewogICAgICAgIGdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMTMgewogICAgICAgIGdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMTQgewogICAgICAgIGdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMTUgewogICAgICAgIGdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctMTYgewogICAgICAgIGdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EtbGctYXV0byB7CiAgICAgICAgZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1sZy0wIHsKICAgICAgICByb3ctZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1sZy0xIHsKICAgICAgICByb3ctZ2FwOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLWxnLTIgewogICAgICAgIHJvdy1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctMyB7CiAgICAgICAgcm93LWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctNCB7CiAgICAgICAgcm93LWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctNSB7CiAgICAgICAgcm93LWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctNiB7CiAgICAgICAgcm93LWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctNyB7CiAgICAgICAgcm93LWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctOCB7CiAgICAgICAgcm93LWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctOSB7CiAgICAgICAgcm93LWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctMTAgewogICAgICAgIHJvdy1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLWxnLTExIHsKICAgICAgICByb3ctZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1sZy0xMiB7CiAgICAgICAgcm93LWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctMTMgewogICAgICAgIHJvdy1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLWxnLTE0IHsKICAgICAgICByb3ctZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci1sZy0xNSB7CiAgICAgICAgcm93LWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3ItbGctMTYgewogICAgICAgIHJvdy1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLWxnLWF1dG8gewogICAgICAgIHJvdy1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLWxnLTAgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLWxnLTEgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1sZy0yIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctMyB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctNCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctNSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctNiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctNyB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctOCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctOSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctMTAgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLWxnLTExIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1sZy0xMiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctMTMgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLWxnLTE0IHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDU2cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy1sZy0xNSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MtbGctMTYgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLWxnLWF1dG8gewogICAgICAgIC1tb3otY29sdW1uLWdhcDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTAgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctMSB7CiAgICAgICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTIgewogICAgICAgIG1hcmdpbjogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1sZy0zIHsKICAgICAgICBtYXJnaW46IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTQgewogICAgICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctNSB7CiAgICAgICAgbWFyZ2luOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1sZy02IHsKICAgICAgICBtYXJnaW46IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTcgewogICAgICAgIG1hcmdpbjogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctOCB7CiAgICAgICAgbWFyZ2luOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1sZy05IHsKICAgICAgICBtYXJnaW46IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTEwIHsKICAgICAgICBtYXJnaW46IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTExIHsKICAgICAgICBtYXJnaW46IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTEyIHsKICAgICAgICBtYXJnaW46IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTEzIHsKICAgICAgICBtYXJnaW46IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTE0IHsKICAgICAgICBtYXJnaW46IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTE1IHsKICAgICAgICBtYXJnaW46IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLTE2IHsKICAgICAgICBtYXJnaW46IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLWF1dG8gewogICAgICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy0zIHsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy02IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLTggewogICAgICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy05IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy0xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLTEyIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy0xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLTE1IHsKICAgICAgICBtYXJnaW4tbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy1hdXRvIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy0zIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLTUgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy02IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctNyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLTggewogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy05IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctMTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy0xMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLTEyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctMTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy0xNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLTE1IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctMTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy1hdXRvIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctMCB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctMSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1sZy0yIHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTMgewogICAgICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTUgewogICAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTYgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTcgewogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTggewogICAgICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTkgewogICAgICAgIG1hcmdpbi10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTEwIHsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1sZy0xMSB7CiAgICAgICAgbWFyZ2luLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctMTIgewogICAgICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTEzIHsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1sZy0xNCB7CiAgICAgICAgbWFyZ2luLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctMTUgewogICAgICAgIG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLTE2IHsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1sZy1hdXRvIHsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0wIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLTEgewogICAgICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0yIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy00IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLTUgewogICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy03IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLTggewogICAgICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctOSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0xMSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0xMiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0xNCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0xNSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy0xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy1hdXRvIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbGctMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy0zIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy00IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy01IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy02IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy03IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy04IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy05IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy0xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbGctMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLTEyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy0xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbGctMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLTE1IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy0xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbGctYXV0byB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy00IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy03IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctOCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLTkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy0xMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLTExIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctMTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy0xMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLTE0IHsKICAgICAgICBtYXJnaW4tbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctMTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy0xNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLWF1dG8gewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1sZy0wIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1sZy0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLTIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctOCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLTExIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1sZy0xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLTE0IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1sZy0xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLWF1dG8gewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy0yIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy0zIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy02IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLTggewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy05IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy0xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLTEyIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy0xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLTE1IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1hdXRvIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctbjEgewogICAgICAgIG1hcmdpbjogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctbjIgewogICAgICAgIG1hcmdpbjogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctbjMgewogICAgICAgIG1hcmdpbjogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLW40IHsKICAgICAgICBtYXJnaW46IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1sZy1uNSB7CiAgICAgICAgbWFyZ2luOiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctbjYgewogICAgICAgIG1hcmdpbjogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLW43IHsKICAgICAgICBtYXJnaW46IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1sZy1uOCB7CiAgICAgICAgbWFyZ2luOiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctbjkgewogICAgICAgIG1hcmdpbjogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLW4xMCB7CiAgICAgICAgbWFyZ2luOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctbjExIHsKICAgICAgICBtYXJnaW46IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1sZy1uMTIgewogICAgICAgIG1hcmdpbjogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLW4xMyB7CiAgICAgICAgbWFyZ2luOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEtbGctbjE0IHsKICAgICAgICBtYXJnaW46IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS1sZy1uMTUgewogICAgICAgIG1hcmdpbjogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLWxnLW4xNiB7CiAgICAgICAgbWFyZ2luOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctbjEgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy1uMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLW4zIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy1uNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctbjUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLW42IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy1uNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctbjggewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLW45IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy1uMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLW4xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctbjEyIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy1uMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LWxnLW4xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgtbGctbjE1IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC1sZy1uMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLW4xIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctbjIgewogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctbjQgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLW41IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctbjcgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLW44IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctbjEwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy1uMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctbjEzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS1sZy1uMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LWxnLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXktbGctbjE2IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1sZy1uMSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjIgewogICAgICAgIG1hcmdpbi10b3A6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLW4zIHsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjQgewogICAgICAgIG1hcmdpbi10b3A6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1sZy1uNSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLW42IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjcgewogICAgICAgIG1hcmdpbi10b3A6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC1sZy1uOCB7CiAgICAgICAgbWFyZ2luLXRvcDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LWxnLW45IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjEwIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjExIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjEyIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjEzIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjE0IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjE1IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQtbGctbjE2IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctbjEgewogICAgICAgIG1hcmdpbi1yaWdodDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctbjIgewogICAgICAgIG1hcmdpbi1yaWdodDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctbjMgewogICAgICAgIG1hcmdpbi1yaWdodDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLW40IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy1uNSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctbjYgewogICAgICAgIG1hcmdpbi1yaWdodDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLW43IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy1uOCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctbjkgewogICAgICAgIG1hcmdpbi1yaWdodDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLW4xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctbjExIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy1uMTIgewogICAgICAgIG1hcmdpbi1yaWdodDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLW4xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXItbGctbjE0IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci1sZy1uMTUgewogICAgICAgIG1hcmdpbi1yaWdodDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLWxnLW4xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbGctbjEgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4yIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW40IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbGctbjUgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW43IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWItbGctbjggewogICAgICAgIG1hcmdpbi1ib3R0b206IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi1sZy1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4xMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4xNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLWxnLW4xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLW4xIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctbjIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uOCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uOSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctbjExIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLW4xMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwtbGctbjE0IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLWxnLW4xNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC1sZy1uMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctbjEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4yIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1sZy1uMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW40IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctbjUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1sZy1uNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW43IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMtbGctbjggewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy1sZy1uOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4xMCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4xMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLWxnLW4xNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLW4xIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctbjIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uOCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctbjExIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLW4xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUtbGctbjE0IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLWxnLW4xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS1sZy1uMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbGctMCB7CiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbGctMSB7CiAgICAgICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1sZy0yIHsKICAgICAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTMgewogICAgICAgIHBhZGRpbmc6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTQgewogICAgICAgIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTUgewogICAgICAgIHBhZGRpbmc6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTYgewogICAgICAgIHBhZGRpbmc6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTcgewogICAgICAgIHBhZGRpbmc6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTggewogICAgICAgIHBhZGRpbmc6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTkgewogICAgICAgIHBhZGRpbmc6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTEwIHsKICAgICAgICBwYWRkaW5nOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1sZy0xMSB7CiAgICAgICAgcGFkZGluZzogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbGctMTIgewogICAgICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTEzIHsKICAgICAgICBwYWRkaW5nOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS1sZy0xNCB7CiAgICAgICAgcGFkZGluZzogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEtbGctMTUgewogICAgICAgIHBhZGRpbmc6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLWxnLTE2IHsKICAgICAgICBwYWRkaW5nOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1sZy0wIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1sZy0xIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtbGctMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTMgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTUgewogICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTcgewogICAgICAgIHBhZGRpbmctbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTggewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTkgewogICAgICAgIHBhZGRpbmctbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTEwIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1sZy0xMSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtbGctMTIgewogICAgICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTEzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC1sZy0xNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgtbGctMTUgewogICAgICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LWxnLTE2IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1sZy0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1sZy0xIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktbGctMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTMgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTYgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTcgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTggewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTkgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1sZy0xMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktbGctMTIgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTEzIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS1sZy0xNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHktbGctMTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LWxnLTE2IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1sZy0wIHsKICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbGctMSB7CiAgICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbGctMiB7CiAgICAgICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbGctMyB7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LWxnLTQgewogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1sZy01IHsKICAgICAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbGctNiB7CiAgICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LWxnLTcgewogICAgICAgIHBhZGRpbmctdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1sZy04IHsKICAgICAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbGctOSB7CiAgICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LWxnLTEwIHsKICAgICAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbGctMTEgewogICAgICAgIHBhZGRpbmctdG9wOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1sZy0xMiB7CiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LWxnLTEzIHsKICAgICAgICBwYWRkaW5nLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQtbGctMTQgewogICAgICAgIHBhZGRpbmctdG9wOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC1sZy0xNSB7CiAgICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LWxnLTE2IHsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbGctMCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbGctMSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1sZy0yIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTMgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTUgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTYgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTcgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTggewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTkgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTEwIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1sZy0xMSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbGctMTIgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTEzIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci1sZy0xNCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHItbGctMTUgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLWxnLTE2IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1sZy0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbGctMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbGctMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbGctMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLWxnLTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1sZy01IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbGctNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLWxnLTcgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1sZy04IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbGctOSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLWxnLTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbGctMTEgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1sZy0xMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLWxnLTEzIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGItbGctMTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi1sZy0xNSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLWxnLTE2IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1sZy0xIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLWxnLTMgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1sZy01IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLWxnLTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctNyB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC1sZy04IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLWxnLTkgewogICAgICAgIHBhZGRpbmctbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMTAgewogICAgICAgIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMTEgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMTIgewogICAgICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMTMgewogICAgICAgIHBhZGRpbmctbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMTQgewogICAgICAgIHBhZGRpbmctbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMTUgewogICAgICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwtbGctMTYgewogICAgICAgIHBhZGRpbmctbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbGctMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLWxnLTEgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLWxnLTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLWxnLTMgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1sZy00IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbGctNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLWxnLTYgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1sZy03IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbGctOCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLWxnLTkgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1sZy0xMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLWxnLTExIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbGctMTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1sZy0xMyB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLWxnLTE0IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMtbGctMTUgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy1sZy0xNiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTAgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtbGctMSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1sZy0zIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTQgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtbGctNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1sZy02IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTcgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUtbGctOCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS1sZy05IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTEwIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTExIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTEyIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTEzIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTE0IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTE1IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLWxnLTE2IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbGctbGVmdCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1sZy1yaWdodCB7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbGctY2VudGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbGctanVzdGlmeSB7CiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1sZy1zdGFydCB7CiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbGctZW5kIHsKICAgICAgICB0ZXh0LWFsaWduOiBlbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbGctaDEgewogICAgICAgIGZvbnQtc2l6ZTogNnJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMTU2MjVlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1sZy1oMSwKICAgICAgLnRleHQtbGctaDIgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1sZy1oMiB7CiAgICAgICAgZm9udC1zaXplOiAzLjc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwODMzMzMzMzNlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1sZy1oMyB7CiAgICAgICAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1OwogICAgICB9CgogICAgICAudGV4dC1sZy1oMywKICAgICAgLnRleHQtbGctaDQgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1sZy1oNCB7CiAgICAgICAgZm9udC1zaXplOiAyLjEyNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzM1Mjk0MTJlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE3NTsKICAgICAgfQoKICAgICAgLnRleHQtbGctaDUgewogICAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzMzOwogICAgICB9CgogICAgICAudGV4dC1sZy1oNSwKICAgICAgLnRleHQtbGctaDYgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbGctaDYgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQoKICAgICAgLnRleHQtbGctc3VidGl0bGUtMSB7CiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1OwogICAgICB9CgogICAgICAudGV4dC1sZy1zdWJ0aXRsZS0xLAogICAgICAudGV4dC1sZy1zdWJ0aXRsZS0yIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LWxnLXN1YnRpdGxlLTIgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzE0Mjg1NzFlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC50ZXh0LWxnLWJvZHktMSB7CiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC50ZXh0LWxnLWJvZHktMSwKICAgICAgLnRleHQtbGctYm9keS0yIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQtbGctYm9keS0yIHsKICAgICAgICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTQyOWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDI1OwogICAgICB9CgogICAgICAudGV4dC1sZy1idXR0b24gewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5Mjg1NzE0M2VtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNjsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LWxnLWNhcHRpb24gewogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMzMzMzMzMzM2VtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjY3OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LWxnLWNhcHRpb24sCiAgICAgIC50ZXh0LWxnLW92ZXJsaW5lIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC1sZy1vdmVybGluZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xNjY2NjY2NjY3ZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMi42Njc7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1sZy1hdXRvIHsKICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgtbGctc2NyZWVuIHsKICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLWxnLTAgewogICAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1sZy0yNSB7CiAgICAgICAgaGVpZ2h0OiAyNSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgtbGctNTAgewogICAgICAgIGhlaWdodDogNTAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLWxnLTc1IHsKICAgICAgICBoZWlnaHQ6IDc1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC1sZy0xMDAgewogICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy1hdXRvIHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy0wIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy0yNSB7CiAgICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy0zMyB7CiAgICAgICAgd2lkdGg6IDMzJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy01MCB7CiAgICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy02NiB7CiAgICAgICAgd2lkdGg6IDY2JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy03NSB7CiAgICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy1sZy0xMDAgewogICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTkyMHB4KSB7CiAgICAgIC5kLXhsLW5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQteGwtaW5saW5lIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQteGwtaW5saW5lLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQteGwtYmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXhsLXRhYmxlIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC14bC10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC14bC10YWJsZS1jZWxsIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXhsLWZsZXggewogICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQteGwtaW5saW5lLWZsZXggewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdC14bC1ub25lIHsKICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxvYXQteGwtbGVmdCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsb2F0LXhsLXJpZ2h0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LXhsLWVuZCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LXhsLWVuZCwKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LXhsLXN0YXJ0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LXhsLXN0YXJ0IHsKICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC0xLTEsCiAgICAgIC5mbGV4LXhsLWZpbGwgewogICAgICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLTEtMCB7CiAgICAgICAgZmxleDogMSAwIGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteGwtMC0xIHsKICAgICAgICBmbGV4OiAwIDEgYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC0wLTAgewogICAgICAgIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLTEtMS0xMDAgewogICAgICAgIGZsZXg6IDEgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLTEtMC0xMDAgewogICAgICAgIGZsZXg6IDEgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLTAtMS0xMDAgewogICAgICAgIGZsZXg6IDAgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLTAtMC0xMDAgewogICAgICAgIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLTEtMS0wIHsKICAgICAgICBmbGV4OiAxIDEgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC0xLTAtMCB7CiAgICAgICAgZmxleDogMSAwIDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteGwtMC0xLTAgewogICAgICAgIGZsZXg6IDAgMSAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLTAtMC0wIHsKICAgICAgICBmbGV4OiAwIDAgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC1yb3cgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteGwtY29sdW1uIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLXJvdy1yZXZlcnNlIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteGwtY29sdW1uLXJldmVyc2UgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC1ncm93LTAgewogICAgICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC1ncm93LTEgewogICAgICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC1zaHJpbmstMCB7CiAgICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteGwtc2hyaW5rLTEgewogICAgICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLXdyYXAgewogICAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14bC1ub3dyYXAgewogICAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXhsLXdyYXAtcmV2ZXJzZSB7CiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnkteGwtc3RhcnQgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS14bC1lbmQgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnkteGwtY2VudGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS14bC1zcGFjZS1iZXR3ZWVuIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnkteGwtc3BhY2UtYXJvdW5kIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS14bC1zcGFjZS1ldmVubHkgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi14bC1zdGFydCB7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXhsLWVuZCB7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi14bC1jZW50ZXIgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXhsLWJhc2VsaW5lIHsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXhsLXN0cmV0Y2ggewogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LXhsLXN0YXJ0IHsKICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LXhsLWVuZCB7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQteGwtY2VudGVyIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQteGwtc3BhY2UtYmV0d2VlbiB7CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC14bC1zcGFjZS1hcm91bmQgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC14bC1zcGFjZS1ldmVubHkgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC14bC1zdHJldGNoIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zZWxmLXhsLWF1dG8gewogICAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYteGwtc3RhcnQgewogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYteGwtZW5kIHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi14bC1jZW50ZXIgewogICAgICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi14bC1iYXNlbGluZSB7CiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYteGwtc3RyZXRjaCB7CiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteGwtZmlyc3QgewogICAgICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteGwtMCB7CiAgICAgICAgb3JkZXI6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXhsLTEgewogICAgICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14bC0yIHsKICAgICAgICBvcmRlcjogMiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteGwtMyB7CiAgICAgICAgb3JkZXI6IDMgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXhsLTQgewogICAgICAgIG9yZGVyOiA0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14bC01IHsKICAgICAgICBvcmRlcjogNSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteGwtNiB7CiAgICAgICAgb3JkZXI6IDYgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXhsLTcgewogICAgICAgIG9yZGVyOiA3ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14bC04IHsKICAgICAgICBvcmRlcjogOCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteGwtOSB7CiAgICAgICAgb3JkZXI6IDkgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXhsLTEwIHsKICAgICAgICBvcmRlcjogMTAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXhsLTExIHsKICAgICAgICBvcmRlcjogMTEgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXhsLTEyIHsKICAgICAgICBvcmRlcjogMTIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXhsLWxhc3QgewogICAgICAgIG9yZGVyOiAxMyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMCB7CiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14bC0xIHsKICAgICAgICBnYXA6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMiB7CiAgICAgICAgZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXhsLTMgewogICAgICAgIGdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtNCB7CiAgICAgICAgZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14bC01IHsKICAgICAgICBnYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXhsLTYgewogICAgICAgIGdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtNyB7CiAgICAgICAgZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14bC04IHsKICAgICAgICBnYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXhsLTkgewogICAgICAgIGdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMTAgewogICAgICAgIGdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMTEgewogICAgICAgIGdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMTIgewogICAgICAgIGdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMTMgewogICAgICAgIGdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMTQgewogICAgICAgIGdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMTUgewogICAgICAgIGdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtMTYgewogICAgICAgIGdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteGwtYXV0byB7CiAgICAgICAgZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14bC0wIHsKICAgICAgICByb3ctZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14bC0xIHsKICAgICAgICByb3ctZ2FwOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXhsLTIgewogICAgICAgIHJvdy1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtMyB7CiAgICAgICAgcm93LWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtNCB7CiAgICAgICAgcm93LWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtNSB7CiAgICAgICAgcm93LWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtNiB7CiAgICAgICAgcm93LWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtNyB7CiAgICAgICAgcm93LWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtOCB7CiAgICAgICAgcm93LWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtOSB7CiAgICAgICAgcm93LWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtMTAgewogICAgICAgIHJvdy1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXhsLTExIHsKICAgICAgICByb3ctZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14bC0xMiB7CiAgICAgICAgcm93LWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtMTMgewogICAgICAgIHJvdy1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXhsLTE0IHsKICAgICAgICByb3ctZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14bC0xNSB7CiAgICAgICAgcm93LWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteGwtMTYgewogICAgICAgIHJvdy1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXhsLWF1dG8gewogICAgICAgIHJvdy1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXhsLTAgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXhsLTEgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14bC0yIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtMyB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtNCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtNSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtNiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtNyB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtOCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtOSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtMTAgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXhsLTExIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14bC0xMiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtMTMgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXhsLTE0IHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDU2cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14bC0xNSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteGwtMTYgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXhsLWF1dG8gewogICAgICAgIC1tb3otY29sdW1uLWdhcDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTAgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtMSB7CiAgICAgICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTIgewogICAgICAgIG1hcmdpbjogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14bC0zIHsKICAgICAgICBtYXJnaW46IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTQgewogICAgICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtNSB7CiAgICAgICAgbWFyZ2luOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14bC02IHsKICAgICAgICBtYXJnaW46IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTcgewogICAgICAgIG1hcmdpbjogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtOCB7CiAgICAgICAgbWFyZ2luOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14bC05IHsKICAgICAgICBtYXJnaW46IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTEwIHsKICAgICAgICBtYXJnaW46IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTExIHsKICAgICAgICBtYXJnaW46IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTEyIHsKICAgICAgICBtYXJnaW46IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTEzIHsKICAgICAgICBtYXJnaW46IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTE0IHsKICAgICAgICBtYXJnaW46IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTE1IHsKICAgICAgICBtYXJnaW46IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLTE2IHsKICAgICAgICBtYXJnaW46IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLWF1dG8gewogICAgICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC0zIHsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC02IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLTggewogICAgICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC05IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC0xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLTEyIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC0xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLTE1IHsKICAgICAgICBtYXJnaW4tbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC1hdXRvIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC0zIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLTUgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC02IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtNyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLTggewogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC05IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtMTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC0xMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLTEyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtMTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC0xNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLTE1IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtMTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC1hdXRvIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtMCB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtMSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14bC0yIHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTMgewogICAgICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTUgewogICAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTYgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTcgewogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTggewogICAgICAgIG1hcmdpbi10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTkgewogICAgICAgIG1hcmdpbi10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTEwIHsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14bC0xMSB7CiAgICAgICAgbWFyZ2luLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtMTIgewogICAgICAgIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTEzIHsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14bC0xNCB7CiAgICAgICAgbWFyZ2luLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtMTUgewogICAgICAgIG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLTE2IHsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14bC1hdXRvIHsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0wIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLTEgewogICAgICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0yIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC00IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLTUgewogICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC03IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLTggewogICAgICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtOSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0xMSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0xMiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0xNCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0xNSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC0xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC1hdXRvIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteGwtMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC0zIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC00IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC01IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC02IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC03IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC04IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC05IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC0xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteGwtMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLTEyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC0xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteGwtMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLTE1IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC0xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteGwtYXV0byB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC00IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC03IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtOCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLTkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC0xMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLTExIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtMTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC0xMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLTE0IHsKICAgICAgICBtYXJnaW4tbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtMTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC0xNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLWF1dG8gewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14bC0wIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14bC0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLTIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtOCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLTExIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14bC0xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLTE0IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14bC0xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLWF1dG8gewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC0yIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC0zIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC02IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLTggewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC05IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC0xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLTEyIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC0xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLTE1IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1hdXRvIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtbjEgewogICAgICAgIG1hcmdpbjogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtbjIgewogICAgICAgIG1hcmdpbjogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtbjMgewogICAgICAgIG1hcmdpbjogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLW40IHsKICAgICAgICBtYXJnaW46IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14bC1uNSB7CiAgICAgICAgbWFyZ2luOiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtbjYgewogICAgICAgIG1hcmdpbjogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLW43IHsKICAgICAgICBtYXJnaW46IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14bC1uOCB7CiAgICAgICAgbWFyZ2luOiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtbjkgewogICAgICAgIG1hcmdpbjogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLW4xMCB7CiAgICAgICAgbWFyZ2luOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtbjExIHsKICAgICAgICBtYXJnaW46IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14bC1uMTIgewogICAgICAgIG1hcmdpbjogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLW4xMyB7CiAgICAgICAgbWFyZ2luOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteGwtbjE0IHsKICAgICAgICBtYXJnaW46IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14bC1uMTUgewogICAgICAgIG1hcmdpbjogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXhsLW4xNiB7CiAgICAgICAgbWFyZ2luOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtbjEgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC1uMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLW4zIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC1uNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtbjUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLW42IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC1uNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtbjggewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLW45IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC1uMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLW4xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtbjEyIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC1uMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXhsLW4xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteGwtbjE1IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14bC1uMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLW4xIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtbjIgewogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtbjQgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLW41IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtbjcgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLW44IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtbjEwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC1uMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtbjEzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14bC1uMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteGwtbjE2IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14bC1uMSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjIgewogICAgICAgIG1hcmdpbi10b3A6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLW4zIHsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjQgewogICAgICAgIG1hcmdpbi10b3A6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14bC1uNSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLW42IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjcgewogICAgICAgIG1hcmdpbi10b3A6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14bC1uOCB7CiAgICAgICAgbWFyZ2luLXRvcDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXhsLW45IHsKICAgICAgICBtYXJnaW4tdG9wOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjEwIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjExIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjEyIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjEzIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjE0IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjE1IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteGwtbjE2IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtbjEgewogICAgICAgIG1hcmdpbi1yaWdodDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtbjIgewogICAgICAgIG1hcmdpbi1yaWdodDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtbjMgewogICAgICAgIG1hcmdpbi1yaWdodDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLW40IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC1uNSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtbjYgewogICAgICAgIG1hcmdpbi1yaWdodDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLW43IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC1uOCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtbjkgewogICAgICAgIG1hcmdpbi1yaWdodDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLW4xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtbjExIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC1uMTIgewogICAgICAgIG1hcmdpbi1yaWdodDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLW4xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteGwtbjE0IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14bC1uMTUgewogICAgICAgIG1hcmdpbi1yaWdodDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXhsLW4xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteGwtbjEgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4yIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW40IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteGwtbjUgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW43IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteGwtbjggewogICAgICAgIG1hcmdpbi1ib3R0b206IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14bC1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4xMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4xNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXhsLW4xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLW4xIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtbjIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uOCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uOSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtbjExIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteGwtbjE0IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14bC1uMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtbjEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4yIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14bC1uMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW40IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtbjUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14bC1uNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW43IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteGwtbjggewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14bC1uOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4xMCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4xMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXhsLW4xNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLW4xIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtbjIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uOCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtbjExIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteGwtbjE0IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14bC1uMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteGwtMCB7CiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteGwtMSB7CiAgICAgICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14bC0yIHsKICAgICAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTMgewogICAgICAgIHBhZGRpbmc6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTQgewogICAgICAgIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTUgewogICAgICAgIHBhZGRpbmc6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTYgewogICAgICAgIHBhZGRpbmc6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTcgewogICAgICAgIHBhZGRpbmc6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTggewogICAgICAgIHBhZGRpbmc6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTkgewogICAgICAgIHBhZGRpbmc6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTEwIHsKICAgICAgICBwYWRkaW5nOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14bC0xMSB7CiAgICAgICAgcGFkZGluZzogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteGwtMTIgewogICAgICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTEzIHsKICAgICAgICBwYWRkaW5nOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14bC0xNCB7CiAgICAgICAgcGFkZGluZzogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteGwtMTUgewogICAgICAgIHBhZGRpbmc6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXhsLTE2IHsKICAgICAgICBwYWRkaW5nOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14bC0wIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14bC0xIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteGwtMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTMgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTUgewogICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTcgewogICAgICAgIHBhZGRpbmctbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTggewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTkgewogICAgICAgIHBhZGRpbmctbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTEwIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14bC0xMSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteGwtMTIgewogICAgICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTEzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14bC0xNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteGwtMTUgewogICAgICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXhsLTE2IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14bC0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14bC0xIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteGwtMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTMgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTYgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTcgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTggewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTkgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14bC0xMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteGwtMTIgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTEzIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14bC0xNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteGwtMTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXhsLTE2IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14bC0wIHsKICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteGwtMSB7CiAgICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteGwtMiB7CiAgICAgICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteGwtMyB7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXhsLTQgewogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14bC01IHsKICAgICAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteGwtNiB7CiAgICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXhsLTcgewogICAgICAgIHBhZGRpbmctdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14bC04IHsKICAgICAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteGwtOSB7CiAgICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXhsLTEwIHsKICAgICAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteGwtMTEgewogICAgICAgIHBhZGRpbmctdG9wOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14bC0xMiB7CiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXhsLTEzIHsKICAgICAgICBwYWRkaW5nLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteGwtMTQgewogICAgICAgIHBhZGRpbmctdG9wOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14bC0xNSB7CiAgICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXhsLTE2IHsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteGwtMCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteGwtMSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14bC0yIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTMgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTUgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTYgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTcgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTggewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTkgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTEwIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14bC0xMSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteGwtMTIgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTEzIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14bC0xNCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteGwtMTUgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXhsLTE2IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14bC0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteGwtMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteGwtMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteGwtMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXhsLTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14bC01IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteGwtNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXhsLTcgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14bC04IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteGwtOSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXhsLTEwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteGwtMTEgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14bC0xMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXhsLTEzIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteGwtMTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14bC0xNSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXhsLTE2IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14bC0xIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXhsLTMgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14bC01IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXhsLTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtNyB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14bC04IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXhsLTkgewogICAgICAgIHBhZGRpbmctbGVmdDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMTAgewogICAgICAgIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMTEgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMTIgewogICAgICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMTMgewogICAgICAgIHBhZGRpbmctbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMTQgewogICAgICAgIHBhZGRpbmctbGVmdDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMTUgewogICAgICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteGwtMTYgewogICAgICAgIHBhZGRpbmctbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteGwtMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXhsLTEgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXhsLTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXhsLTMgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14bC00IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteGwtNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXhsLTYgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14bC03IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteGwtOCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXhsLTkgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14bC0xMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXhsLTExIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteGwtMTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14bC0xMyB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXhsLTE0IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteGwtMTUgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14bC0xNiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTAgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUteGwtMSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS14bC0zIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTQgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUteGwtNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS14bC02IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTcgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUteGwtOCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS14bC05IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTEwIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTExIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTEyIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTEzIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTE0IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTE1IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXhsLTE2IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteGwtbGVmdCB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14bC1yaWdodCB7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteGwtY2VudGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteGwtanVzdGlmeSB7CiAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14bC1zdGFydCB7CiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteGwtZW5kIHsKICAgICAgICB0ZXh0LWFsaWduOiBlbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteGwtaDEgewogICAgICAgIGZvbnQtc2l6ZTogNnJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMTU2MjVlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14bC1oMSwKICAgICAgLnRleHQteGwtaDIgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14bC1oMiB7CiAgICAgICAgZm9udC1zaXplOiAzLjc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwODMzMzMzMzNlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14bC1oMyB7CiAgICAgICAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1OwogICAgICB9CgogICAgICAudGV4dC14bC1oMywKICAgICAgLnRleHQteGwtaDQgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14bC1oNCB7CiAgICAgICAgZm9udC1zaXplOiAyLjEyNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzM1Mjk0MTJlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE3NTsKICAgICAgfQoKICAgICAgLnRleHQteGwtaDUgewogICAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzMzOwogICAgICB9CgogICAgICAudGV4dC14bC1oNSwKICAgICAgLnRleHQteGwtaDYgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteGwtaDYgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQoKICAgICAgLnRleHQteGwtc3VidGl0bGUtMSB7CiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1OwogICAgICB9CgogICAgICAudGV4dC14bC1zdWJ0aXRsZS0xLAogICAgICAudGV4dC14bC1zdWJ0aXRsZS0yIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXhsLXN1YnRpdGxlLTIgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzE0Mjg1NzFlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC50ZXh0LXhsLWJvZHktMSB7CiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC50ZXh0LXhsLWJvZHktMSwKICAgICAgLnRleHQteGwtYm9keS0yIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteGwtYm9keS0yIHsKICAgICAgICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTQyOWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDI1OwogICAgICB9CgogICAgICAudGV4dC14bC1idXR0b24gewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5Mjg1NzE0M2VtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNjsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXhsLWNhcHRpb24gewogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMzMzMzMzMzM2VtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjY3OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXhsLWNhcHRpb24sCiAgICAgIC50ZXh0LXhsLW92ZXJsaW5lIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14bC1vdmVybGluZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xNjY2NjY2NjY3ZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMi42Njc7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC14bC1hdXRvIHsKICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgteGwtc2NyZWVuIHsKICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLXhsLTAgewogICAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC14bC0yNSB7CiAgICAgICAgaGVpZ2h0OiAyNSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgteGwtNTAgewogICAgICAgIGhlaWdodDogNTAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLXhsLTc1IHsKICAgICAgICBoZWlnaHQ6IDc1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC14bC0xMDAgewogICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC1hdXRvIHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC0wIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC0yNSB7CiAgICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC0zMyB7CiAgICAgICAgd2lkdGg6IDMzJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC01MCB7CiAgICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC02NiB7CiAgICAgICAgd2lkdGg6IDY2JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC03NSB7CiAgICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14bC0xMDAgewogICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjU2MHB4KSB7CiAgICAgIC5kLXh4bC1ub25lIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXh4bC1pbmxpbmUgewogICAgICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC14eGwtaW5saW5lLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQteHhsLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC14eGwtdGFibGUgewogICAgICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXh4bC10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC14eGwtdGFibGUtY2VsbCB7CiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC14eGwtZmxleCB7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC14eGwtaW5saW5lLWZsZXggewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdC14eGwtbm9uZSB7CiAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsb2F0LXh4bC1sZWZ0IHsKICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxvYXQteHhsLXJpZ2h0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LXh4bC1lbmQgewogICAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC52LWxvY2FsZS0taXMtbHRyIC5mbG9hdC14eGwtZW5kLAogICAgICAudi1sb2NhbGUtLWlzLXJ0bCAuZmxvYXQteHhsLXN0YXJ0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LXh4bC1zdGFydCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteHhsLTEtMSwKICAgICAgLmZsZXgteHhsLWZpbGwgewogICAgICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC0xLTAgewogICAgICAgIGZsZXg6IDEgMCBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC0wLTEgewogICAgICAgIGZsZXg6IDAgMSBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC0wLTAgewogICAgICAgIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC0xLTEtMTAwIHsKICAgICAgICBmbGV4OiAxIDEgMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14eGwtMS0wLTEwMCB7CiAgICAgICAgZmxleDogMSAwIDEwMCUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteHhsLTAtMS0xMDAgewogICAgICAgIGZsZXg6IDAgMSAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC0wLTAtMTAwIHsKICAgICAgICBmbGV4OiAwIDAgMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14eGwtMS0xLTAgewogICAgICAgIGZsZXg6IDEgMSAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC0xLTAtMCB7CiAgICAgICAgZmxleDogMSAwIDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteHhsLTAtMS0wIHsKICAgICAgICBmbGV4OiAwIDEgMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14eGwtMC0wLTAgewogICAgICAgIGZsZXg6IDAgMCAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC1yb3cgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteHhsLWNvbHVtbiB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14eGwtcm93LXJldmVyc2UgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14eGwtY29sdW1uLXJldmVyc2UgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14eGwtZ3Jvdy0wIHsKICAgICAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteHhsLWdyb3ctMSB7CiAgICAgICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC1zaHJpbmstMCB7CiAgICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsZXgteHhsLXNocmluay0xIHsKICAgICAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxleC14eGwtd3JhcCB7CiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC1ub3dyYXAgewogICAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LXh4bC13cmFwLXJldmVyc2UgewogICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5qdXN0aWZ5LXh4bC1zdGFydCB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5qdXN0aWZ5LXh4bC1lbmQgewogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnkteHhsLWNlbnRlciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmp1c3RpZnkteHhsLXNwYWNlLWJldHdlZW4gewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS14eGwtc3BhY2UtYXJvdW5kIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuanVzdGlmeS14eGwtc3BhY2UtZXZlbmx5IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24teHhsLXN0YXJ0IHsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24teHhsLWVuZCB7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi14eGwtY2VudGVyIHsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi14eGwtYmFzZWxpbmUgewogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24teHhsLXN0cmV0Y2ggewogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LXh4bC1zdGFydCB7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC14eGwtZW5kIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC14eGwtY2VudGVyIHsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQteHhsLXNwYWNlLWJldHdlZW4gewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLWNvbnRlbnQteHhsLXNwYWNlLWFyb3VuZCB7CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1jb250ZW50LXh4bC1zcGFjZS1ldmVubHkgewogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tY29udGVudC14eGwtc3RyZXRjaCB7CiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi14eGwtYXV0byB7CiAgICAgICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuYWxpZ24tc2VsZi14eGwtc3RhcnQgewogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYteHhsLWVuZCB7CiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYteHhsLWNlbnRlciB7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5hbGlnbi1zZWxmLXh4bC1iYXNlbGluZSB7CiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmFsaWduLXNlbGYteHhsLXN0cmV0Y2ggewogICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXh4bC1maXJzdCB7CiAgICAgICAgb3JkZXI6IC0xICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14eGwtMCB7CiAgICAgICAgb3JkZXI6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXh4bC0xIHsKICAgICAgICBvcmRlcjogMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteHhsLTIgewogICAgICAgIG9yZGVyOiAyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14eGwtMyB7CiAgICAgICAgb3JkZXI6IDMgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXh4bC00IHsKICAgICAgICBvcmRlcjogNCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteHhsLTUgewogICAgICAgIG9yZGVyOiA1ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14eGwtNiB7CiAgICAgICAgb3JkZXI6IDYgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXh4bC03IHsKICAgICAgICBvcmRlcjogNyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteHhsLTggewogICAgICAgIG9yZGVyOiA4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14eGwtOSB7CiAgICAgICAgb3JkZXI6IDkgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXh4bC0xMCB7CiAgICAgICAgb3JkZXI6IDEwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5vcmRlci14eGwtMTEgewogICAgICAgIG9yZGVyOiAxMSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAub3JkZXIteHhsLTEyIHsKICAgICAgICBvcmRlcjogMTIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm9yZGVyLXh4bC1sYXN0IHsKICAgICAgICBvcmRlcjogMTMgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXh4bC0wIHsKICAgICAgICBnYXA6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXh4bC0xIHsKICAgICAgICBnYXA6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteHhsLTIgewogICAgICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtMyB7CiAgICAgICAgZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtNCB7CiAgICAgICAgZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtNSB7CiAgICAgICAgZ2FwOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtNiB7CiAgICAgICAgZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtNyB7CiAgICAgICAgZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtOCB7CiAgICAgICAgZ2FwOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtOSB7CiAgICAgICAgZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtMTAgewogICAgICAgIGdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteHhsLTExIHsKICAgICAgICBnYXA6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXh4bC0xMiB7CiAgICAgICAgZ2FwOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtMTMgewogICAgICAgIGdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteHhsLTE0IHsKICAgICAgICBnYXA6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdhLXh4bC0xNSB7CiAgICAgICAgZ2FwOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYS14eGwtMTYgewogICAgICAgIGdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2EteHhsLWF1dG8gewogICAgICAgIGdhcDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteHhsLTAgewogICAgICAgIHJvdy1nYXA6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC0xIHsKICAgICAgICByb3ctZ2FwOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC0yIHsKICAgICAgICByb3ctZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC0zIHsKICAgICAgICByb3ctZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14eGwtNCB7CiAgICAgICAgcm93LWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteHhsLTUgewogICAgICAgIHJvdy1nYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC02IHsKICAgICAgICByb3ctZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14eGwtNyB7CiAgICAgICAgcm93LWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteHhsLTggewogICAgICAgIHJvdy1nYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC05IHsKICAgICAgICByb3ctZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14eGwtMTAgewogICAgICAgIHJvdy1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC0xMSB7CiAgICAgICAgcm93LWdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteHhsLTEyIHsKICAgICAgICByb3ctZ2FwOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14eGwtMTMgewogICAgICAgIHJvdy1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC0xNCB7CiAgICAgICAgcm93LWdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ3IteHhsLTE1IHsKICAgICAgICByb3ctZ2FwOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nci14eGwtMTYgewogICAgICAgIHJvdy1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdyLXh4bC1hdXRvIHsKICAgICAgICByb3ctZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14eGwtMCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteHhsLTEgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14eGwtMiB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXh4bC0zIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDEycHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14eGwtNCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteHhsLTUgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXh4bC02IHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDI0cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14eGwtNyB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteHhsLTggewogICAgICAgIC1tb3otY29sdW1uLWdhcDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXh4bC05IHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDM2cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14eGwtMTAgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXh4bC0xMSB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteHhsLTEyIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDQ4cHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14eGwtMTMgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNTJweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXh4bC0xNCB7CiAgICAgICAgLW1vei1jb2x1bW4tZ2FwOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgY29sdW1uLWdhcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZ2MteHhsLTE1IHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IDYwcHggIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5nYy14eGwtMTYgewogICAgICAgIC1tb3otY29sdW1uLWdhcDogNjRweCAhaW1wb3J0YW50OwogICAgICAgIGNvbHVtbi1nYXA6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmdjLXh4bC1hdXRvIHsKICAgICAgICAtbW96LWNvbHVtbi1nYXA6IGF1dG8gIWltcG9ydGFudDsKICAgICAgICBjb2x1bW4tZ2FwOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtMCB7CiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtMSB7CiAgICAgICAgbWFyZ2luOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXh4bC0yIHsKICAgICAgICBtYXJnaW46IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTMgewogICAgICAgIG1hcmdpbjogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTQgewogICAgICAgIG1hcmdpbjogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTUgewogICAgICAgIG1hcmdpbjogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTYgewogICAgICAgIG1hcmdpbjogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTcgewogICAgICAgIG1hcmdpbjogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTggewogICAgICAgIG1hcmdpbjogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTkgewogICAgICAgIG1hcmdpbjogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTEwIHsKICAgICAgICBtYXJnaW46IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXh4bC0xMSB7CiAgICAgICAgbWFyZ2luOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtMTIgewogICAgICAgIG1hcmdpbjogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTEzIHsKICAgICAgICBtYXJnaW46IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXh4bC0xNCB7CiAgICAgICAgbWFyZ2luOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtMTUgewogICAgICAgIG1hcmdpbjogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLTE2IHsKICAgICAgICBtYXJnaW46IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXh4bC1hdXRvIHsKICAgICAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC0wIHsKICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteHhsLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteHhsLTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteHhsLTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC01IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteHhsLTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC04IHsKICAgICAgICBtYXJnaW4tbGVmdDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteHhsLTkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtMTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtMTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtMTQgewogICAgICAgIG1hcmdpbi1sZWZ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtMTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtYXV0byB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC0wIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC01IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtNyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC04IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLTkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtMTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtMTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtMTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtMTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtMTQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtMTUgewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtMTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtYXV0byB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC0wIHsKICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtMSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtMiB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtMyB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLTQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC01IHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtNiB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLTcgewogICAgICAgIG1hcmdpbi10b3A6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC04IHsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtOSB7CiAgICAgICAgbWFyZ2luLXRvcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLTEwIHsKICAgICAgICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtMTEgewogICAgICAgIG1hcmdpbi10b3A6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC0xMiB7CiAgICAgICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLTEzIHsKICAgICAgICBtYXJnaW4tdG9wOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtMTQgewogICAgICAgIG1hcmdpbi10b3A6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC0xNSB7CiAgICAgICAgbWFyZ2luLXRvcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLTE2IHsKICAgICAgICBtYXJnaW4tdG9wOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtYXV0byB7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLTAgewogICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLTEgewogICAgICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14eGwtMiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC0zIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC00IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC01IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC02IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC03IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC04IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC05IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC0xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14eGwtMTEgewogICAgICAgIG1hcmdpbi1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLTEyIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC0xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14eGwtMTQgewogICAgICAgIG1hcmdpbi1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLTE1IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC0xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14eGwtYXV0byB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLTEgewogICAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC00IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC03IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtOCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLTkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC0xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLTExIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtMTIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC0xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLTE0IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtMTUgewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC0xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLWF1dG8gewogICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0wIHsKICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0yIHsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC00IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC03IHsKICAgICAgICBtYXJnaW4tbGVmdDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLTggewogICAgICAgIG1hcmdpbi1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtOSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0xMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0xMSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0xMiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0xMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0xNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0xNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC0xNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC1hdXRvIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC0yIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC0zIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC02IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLTggewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC05IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC0xMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLTEyIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC0xNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLTE1IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC1hdXRvIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC0xIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteHhsLTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtNCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC01IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteHhsLTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtNyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC04IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteHhsLTkgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMTAgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMTEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMTIgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMTMgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMTQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMTUgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtMTYgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtYXV0byB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXh4bC1uMSB7CiAgICAgICAgbWFyZ2luOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjIgewogICAgICAgIG1hcmdpbjogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLW4zIHsKICAgICAgICBtYXJnaW46IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjQgewogICAgICAgIG1hcmdpbjogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXh4bC1uNSB7CiAgICAgICAgbWFyZ2luOiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLW42IHsKICAgICAgICBtYXJnaW46IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjcgewogICAgICAgIG1hcmdpbjogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1hLXh4bC1uOCB7CiAgICAgICAgbWFyZ2luOiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWEteHhsLW45IHsKICAgICAgICBtYXJnaW46IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjEwIHsKICAgICAgICBtYXJnaW46IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjExIHsKICAgICAgICBtYXJnaW46IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjEyIHsKICAgICAgICBtYXJnaW46IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjEzIHsKICAgICAgICBtYXJnaW46IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjE0IHsKICAgICAgICBtYXJnaW46IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjE1IHsKICAgICAgICBtYXJnaW46IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYS14eGwtbjE2IHsKICAgICAgICBtYXJnaW46IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtbjEgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtbjIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtbjMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uNCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteHhsLW41IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtbjYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uNyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXgteHhsLW44IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTMycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teC14eGwtbjkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMzZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uMTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uMTEgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uMTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uMTMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uMTQgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uMTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm14LXh4bC1uMTYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC1uMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTRweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC1uMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLThweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW40IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTZweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtbjUgewogICAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW43IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjhweCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5teS14eGwtbjggewogICAgICAgIG1hcmdpbi1ib3R0b206IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXRvcDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm15LXh4bC1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW4xMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW4xMSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW4xMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTUycHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW4xNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTU2cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXkteHhsLW4xNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTY0cHggIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tdG9wOiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLW4xIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtbjIgewogICAgICAgIG1hcmdpbi10b3A6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uMyB7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uNCB7CiAgICAgICAgbWFyZ2luLXRvcDogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uNSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uNiB7CiAgICAgICAgbWFyZ2luLXRvcDogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uNyB7CiAgICAgICAgbWFyZ2luLXRvcDogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uOCB7CiAgICAgICAgbWFyZ2luLXRvcDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uOSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uMTAgewogICAgICAgIG1hcmdpbi10b3A6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtbjExIHsKICAgICAgICBtYXJnaW4tdG9wOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLW4xMiB7CiAgICAgICAgbWFyZ2luLXRvcDogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uMTMgewogICAgICAgIG1hcmdpbi10b3A6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tdC14eGwtbjE0IHsKICAgICAgICBtYXJnaW4tdG9wOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXQteHhsLW4xNSB7CiAgICAgICAgbWFyZ2luLXRvcDogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm10LXh4bC1uMTYgewogICAgICAgIG1hcmdpbi10b3A6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14eGwtbjEgewogICAgICAgIG1hcmdpbi1yaWdodDogLTRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4yIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC1uMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW40IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14eGwtbjUgewogICAgICAgIG1hcmdpbi1yaWdodDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC1uNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW43IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tci14eGwtbjggewogICAgICAgIG1hcmdpbi1yaWdodDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1yLXh4bC1uOSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4xMCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4xMSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4xMiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4xMyB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4xNCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4xNSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXIteHhsLW4xNiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLW4xIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtbjIgewogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uNCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uNiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uNyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uOCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uOSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uMTAgewogICAgICAgIG1hcmdpbi1ib3R0b206IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtbjExIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uMTMgewogICAgICAgIG1hcmdpbi1ib3R0b206IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tYi14eGwtbjE0IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWIteHhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1iLXh4bC1uMTYgewogICAgICAgIG1hcmdpbi1ib3R0b206IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtbjEgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtbjIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtbjMgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLW40IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC1uNSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtbjYgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLW43IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC1uOCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtbjkgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLW4xMCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC00MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtbjExIHsKICAgICAgICBtYXJnaW4tbGVmdDogLTQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC1uMTIgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLW4xMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC01MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tbC14eGwtbjE0IHsKICAgICAgICBtYXJnaW4tbGVmdDogLTU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1sLXh4bC1uMTUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWwteHhsLW4xNiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC02NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtbjEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC1uMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLThweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW4zIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW40IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW41IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW42IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW43IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW44IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW45IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW4xMCB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC1uMTEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC00NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtbjEyIHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW4xMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1zLXh4bC1uMTQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC01NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tcy14eGwtbjE1IHsKICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubXMteHhsLW4xNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC1uMSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC1uMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC04cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC1uMyB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0xMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtbjQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteHhsLW41IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC1uNiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0yNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtbjcgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteHhsLW44IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC1uOSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC0zNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtbjEwIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC1uMTEgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteHhsLW4xMiB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC00OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtbjEzIHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1lLXh4bC1uMTQgewogICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAtNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWUteHhsLW4xNSB7CiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IC02MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZS14eGwtbjE2IHsKICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXh4bC0wIHsKICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14eGwtMSB7CiAgICAgICAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14eGwtMiB7CiAgICAgICAgcGFkZGluZzogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14eGwtMyB7CiAgICAgICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteHhsLTQgewogICAgICAgIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXh4bC01IHsKICAgICAgICBwYWRkaW5nOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14eGwtNiB7CiAgICAgICAgcGFkZGluZzogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteHhsLTcgewogICAgICAgIHBhZGRpbmc6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXh4bC04IHsKICAgICAgICBwYWRkaW5nOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14eGwtOSB7CiAgICAgICAgcGFkZGluZzogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteHhsLTEwIHsKICAgICAgICBwYWRkaW5nOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14eGwtMTEgewogICAgICAgIHBhZGRpbmc6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXh4bC0xMiB7CiAgICAgICAgcGFkZGluZzogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteHhsLTEzIHsKICAgICAgICBwYWRkaW5nOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYS14eGwtMTQgewogICAgICAgIHBhZGRpbmc6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhLXh4bC0xNSB7CiAgICAgICAgcGFkZGluZzogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGEteHhsLTE2IHsKICAgICAgICBwYWRkaW5nOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14eGwtMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteHhsLTEgewogICAgICAgIHBhZGRpbmctbGVmdDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14eGwtMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXh4bC0zIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14eGwtNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteHhsLTUgewogICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXh4bC02IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14eGwtNyB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteHhsLTggewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXh4bC05IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14eGwtMTAgewogICAgICAgIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXh4bC0xMSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteHhsLTEyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14eGwtMTMgewogICAgICAgIHBhZGRpbmctbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB4LXh4bC0xNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHgteHhsLTE1IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weC14eGwtMTYgewogICAgICAgIHBhZGRpbmctbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXh4bC0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14eGwtMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXh4bC0yIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteHhsLTMgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXh4bC00IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14eGwtNSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteHhsLTYgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXh4bC03IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14eGwtOCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDMycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteHhsLTkgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXh4bC0xMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteHhsLTExIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDRweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14eGwtMTIgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXh4bC0xMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHkteHhsLTE0IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTZweCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5weS14eGwtMTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB5LXh4bC0xNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTAgewogICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14eGwtMSB7CiAgICAgICAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTIgewogICAgICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXh4bC0zIHsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTQgewogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14eGwtNSB7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXh4bC02IHsKICAgICAgICBwYWRkaW5nLXRvcDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTcgewogICAgICAgIHBhZGRpbmctdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wdC14eGwtOCB7CiAgICAgICAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnB0LXh4bC05IHsKICAgICAgICBwYWRkaW5nLXRvcDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTEwIHsKICAgICAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTExIHsKICAgICAgICBwYWRkaW5nLXRvcDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTEyIHsKICAgICAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTEzIHsKICAgICAgICBwYWRkaW5nLXRvcDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTE0IHsKICAgICAgICBwYWRkaW5nLXRvcDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTE1IHsKICAgICAgICBwYWRkaW5nLXRvcDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHQteHhsLTE2IHsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteHhsLTAgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXh4bC0xIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXh4bC0yIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXh4bC0zIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14eGwtNCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteHhsLTUgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXh4bC02IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14eGwtNyB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteHhsLTggewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXh4bC05IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14eGwtMTAgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXh4bC0xMSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteHhsLTEyIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14eGwtMTMgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnByLXh4bC0xNCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHIteHhsLTE1IHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wci14eGwtMTYgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteHhsLTEgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0yIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14eGwtMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC00IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteHhsLTUgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14eGwtNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC03IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGIteHhsLTggewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYi14eGwtOSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0xMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0xMSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0xMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0xMyB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDUycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0xNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0xNSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBiLXh4bC0xNiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDY0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXh4bC0wIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXh4bC0xIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteHhsLTIgewogICAgICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtMyB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtNCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtNSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtNiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtNyB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtOCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtOSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtMTAgewogICAgICAgIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteHhsLTExIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXh4bC0xMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtMTMgewogICAgICAgIHBhZGRpbmctbGVmdDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGwteHhsLTE0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDU2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBsLXh4bC0xNSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wbC14eGwtMTYgewogICAgICAgIHBhZGRpbmctbGVmdDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTAgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14eGwtMSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTIgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXh4bC0zIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTQgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14eGwtNSB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXh4bC02IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTcgewogICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wcy14eGwtOCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBzLXh4bC05IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMzZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTEwIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTExIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTEyIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTEzIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNTJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTE0IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTE1IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHMteHhsLTE2IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogNjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUteHhsLTAgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUteHhsLTEgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS14eGwtMiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC0zIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDEycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC00IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC01IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDIwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC02IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDI0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC03IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC04IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC05IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC0xMCB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS14eGwtMTEgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUteHhsLTEyIHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC0xMyB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wZS14eGwtMTQgewogICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogNTZweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGUteHhsLTE1IHsKICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDYwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBlLXh4bC0xNiB7CiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA2NHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1sZWZ0IHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1yaWdodCB7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWNlbnRlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1qdXN0aWZ5IHsKICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1zdGFydCB7CiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWVuZCB7CiAgICAgICAgdGV4dC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1oMSB7CiAgICAgICAgZm9udC1zaXplOiA2cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxNTYyNWVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1oMSwKICAgICAgLnRleHQteHhsLWgyIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWgyIHsKICAgICAgICBmb250LXNpemU6IDMuNzVyZW0gIWltcG9ydGFudDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA4MzMzMzMzM2VtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1oMyB7CiAgICAgICAgZm9udC1zaXplOiAzcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1OwogICAgICB9CgogICAgICAudGV4dC14eGwtaDMsCiAgICAgIC50ZXh0LXh4bC1oNCB7CiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1oNCB7CiAgICAgICAgZm9udC1zaXplOiAyLjEyNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzM1Mjk0MTJlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE3NTsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWg1IHsKICAgICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWg1LAogICAgICAudGV4dC14eGwtaDYgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWg2IHsKICAgICAgICBmb250LXNpemU6IDEuMjVyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxMjVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1zdWJ0aXRsZS0xIHsKICAgICAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzU7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1zdWJ0aXRsZS0xLAogICAgICAudGV4dC14eGwtc3VidGl0bGUtMiB7CiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14eGwtc3VidGl0bGUtMiB7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDA3MTQyODU3MWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWJvZHktMSB7CiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC50ZXh0LXh4bC1ib2R5LTEsCiAgICAgIC50ZXh0LXh4bC1ib2R5LTIgewogICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14eGwtYm9keS0yIHsKICAgICAgICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTQyOWVtICFpbXBvcnRhbnQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDI1OwogICAgICB9CgogICAgICAudGV4dC14eGwtYnV0dG9uIHsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4OTI4NTcxNDNlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyLjY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudGV4dC14eGwtY2FwdGlvbiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMzMzMzMzMzMzZW0gIWltcG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS42Njc7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteHhsLWNhcHRpb24sCiAgICAgIC50ZXh0LXh4bC1vdmVybGluZSB7CiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDAuNzVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnRleHQteHhsLW92ZXJsaW5lIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjE2NjY2NjY2NjdlbSAhaW1wb3J0YW50OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyLjY2NzsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLXh4bC1hdXRvIHsKICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgteHhsLXNjcmVlbiB7CiAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC14eGwtMCB7CiAgICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLXh4bC0yNSB7CiAgICAgICAgaGVpZ2h0OiAyNSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmgteHhsLTUwIHsKICAgICAgICBoZWlnaHQ6IDUwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaC14eGwtNzUgewogICAgICAgIGhlaWdodDogNzUlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5oLXh4bC0xMDAgewogICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14eGwtYXV0byB7CiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLncteHhsLTAgewogICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC53LXh4bC0yNSB7CiAgICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14eGwtMzMgewogICAgICAgIHdpZHRoOiAzMyUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLncteHhsLTUwIHsKICAgICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC53LXh4bC02NiB7CiAgICAgICAgd2lkdGg6IDY2JSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAudy14eGwtNzUgewogICAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLncteHhsLTEwMCB7CiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSBwcmludCB7CiAgICAgIC5kLXByaW50LW5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtcHJpbnQtaW5saW5lIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtcHJpbnQtaW5saW5lLWJsb2NrIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtcHJpbnQtYmxvY2sgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXByaW50LXRhYmxlIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1wcmludC10YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZC1wcmludC10YWJsZS1jZWxsIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5kLXByaW50LWZsZXggewogICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmQtcHJpbnQtaW5saW5lLWZsZXggewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5mbG9hdC1wcmludC1ub25lIHsKICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZmxvYXQtcHJpbnQtbGVmdCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsb2F0LXByaW50LXJpZ2h0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LXByaW50LWVuZCB7CiAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LXByaW50LWVuZCwKICAgICAgLnYtbG9jYWxlLS1pcy1ydGwgLmZsb2F0LXByaW50LXN0YXJ0IHsKICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnYtbG9jYWxlLS1pcy1sdHIgLmZsb2F0LXByaW50LXN0YXJ0IHsKICAgICAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CiAgPC9zdHlsZT4KICA8c3R5bGU+CiAgICAqLAogICAgOmFmdGVyLAogICAgOmJlZm9yZSB7CiAgICAgIC0tdHctYm9yZGVyLXNwYWNpbmcteDogMDsKICAgICAgLS10dy1ib3JkZXItc3BhY2luZy15OiAwOwogICAgICAtLXR3LXRyYW5zbGF0ZS14OiAwOwogICAgICAtLXR3LXRyYW5zbGF0ZS15OiAwOwogICAgICAtLXR3LXJvdGF0ZTogMDsKICAgICAgLS10dy1za2V3LXg6IDA7CiAgICAgIC0tdHctc2tldy15OiAwOwogICAgICAtLXR3LXNjYWxlLXg6IDE7CiAgICAgIC0tdHctc2NhbGUteTogMTsKICAgICAgLS10dy1wYW4teDogOwogICAgICAtLXR3LXBhbi15OiA7CiAgICAgIC0tdHctcGluY2gtem9vbTogOwogICAgICAtLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6IHByb3hpbWl0eTsKICAgICAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiA7CiAgICAgIC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA7CiAgICAgIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246IDsKICAgICAgLS10dy1vcmRpbmFsOiA7CiAgICAgIC0tdHctc2xhc2hlZC16ZXJvOiA7CiAgICAgIC0tdHctbnVtZXJpYy1maWd1cmU6IDsKICAgICAgLS10dy1udW1lcmljLXNwYWNpbmc6IDsKICAgICAgLS10dy1udW1lcmljLWZyYWN0aW9uOiA7CiAgICAgIC0tdHctcmluZy1pbnNldDogOwogICAgICAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7CiAgICAgIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7CiAgICAgIC0tdHctcmluZy1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7CiAgICAgIC0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDsKICAgICAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDsKICAgICAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwOwogICAgICAtLXR3LWJsdXI6IDsKICAgICAgLS10dy1icmlnaHRuZXNzOiA7CiAgICAgIC0tdHctY29udHJhc3Q6IDsKICAgICAgLS10dy1ncmF5c2NhbGU6IDsKICAgICAgLS10dy1odWUtcm90YXRlOiA7CiAgICAgIC0tdHctaW52ZXJ0OiA7CiAgICAgIC0tdHctc2F0dXJhdGU6IDsKICAgICAgLS10dy1zZXBpYTogOwogICAgICAtLXR3LWRyb3Atc2hhZG93OiA7CiAgICAgIC0tdHctYmFja2Ryb3AtYmx1cjogOwogICAgICAtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6IDsKICAgICAgLS10dy1iYWNrZHJvcC1jb250cmFzdDogOwogICAgICAtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogOwogICAgICAtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDsKICAgICAgLS10dy1iYWNrZHJvcC1pbnZlcnQ6IDsKICAgICAgLS10dy1iYWNrZHJvcC1vcGFjaXR5OiA7CiAgICAgIC0tdHctYmFja2Ryb3Atc2F0dXJhdGU6IDsKICAgICAgLS10dy1iYWNrZHJvcC1zZXBpYTogOwogICAgICAtLXR3LWNvbnRhaW4tc2l6ZTogOwogICAgICAtLXR3LWNvbnRhaW4tbGF5b3V0OiA7CiAgICAgIC0tdHctY29udGFpbi1wYWludDogOwogICAgICAtLXR3LWNvbnRhaW4tc3R5bGU6IDsKICAgIH0KCiAgICA6OmJhY2tkcm9wIHsKICAgICAgLS10dy1ib3JkZXItc3BhY2luZy14OiAwOwogICAgICAtLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7CiAgICAgIC0tdHctdHJhbnNsYXRlLXg6IDA7CiAgICAgIC0tdHctdHJhbnNsYXRlLXk6IDA7CiAgICAgIC0tdHctcm90YXRlOiAwOwogICAgICAtLXR3LXNrZXcteDogMDsKICAgICAgLS10dy1za2V3LXk6IDA7CiAgICAgIC0tdHctc2NhbGUteDogMTsKICAgICAgLS10dy1zY2FsZS15OiAxOwogICAgICAtLXR3LXBhbi14OiA7CiAgICAgIC0tdHctcGFuLXk6IDsKICAgICAgLS10dy1waW5jaC16b29tOiA7CiAgICAgIC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5OwogICAgICAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246IDsKICAgICAgLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246IDsKICAgICAgLS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogOwogICAgICAtLXR3LW9yZGluYWw6IDsKICAgICAgLS10dy1zbGFzaGVkLXplcm86IDsKICAgICAgLS10dy1udW1lcmljLWZpZ3VyZTogOwogICAgICAtLXR3LW51bWVyaWMtc3BhY2luZzogOwogICAgICAtLXR3LW51bWVyaWMtZnJhY3Rpb246IDsKICAgICAgLS10dy1yaW5nLWluc2V0OiA7CiAgICAgIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDsKICAgICAgLS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjsKICAgICAgLS10dy1yaW5nLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDsKICAgICAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwOwogICAgICAtLXR3LXNoYWRvdzogMCAwICMwMDAwOwogICAgICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDAgIzAwMDA7CiAgICAgIC0tdHctYmx1cjogOwogICAgICAtLXR3LWJyaWdodG5lc3M6IDsKICAgICAgLS10dy1jb250cmFzdDogOwogICAgICAtLXR3LWdyYXlzY2FsZTogOwogICAgICAtLXR3LWh1ZS1yb3RhdGU6IDsKICAgICAgLS10dy1pbnZlcnQ6IDsKICAgICAgLS10dy1zYXR1cmF0ZTogOwogICAgICAtLXR3LXNlcGlhOiA7CiAgICAgIC0tdHctZHJvcC1zaGFkb3c6IDsKICAgICAgLS10dy1iYWNrZHJvcC1ibHVyOiA7CiAgICAgIC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczogOwogICAgICAtLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiA7CiAgICAgIC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiA7CiAgICAgIC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTogOwogICAgICAtLXR3LWJhY2tkcm9wLWludmVydDogOwogICAgICAtLXR3LWJhY2tkcm9wLW9wYWNpdHk6IDsKICAgICAgLS10dy1iYWNrZHJvcC1zYXR1cmF0ZTogOwogICAgICAtLXR3LWJhY2tkcm9wLXNlcGlhOiA7CiAgICAgIC0tdHctY29udGFpbi1zaXplOiA7CiAgICAgIC0tdHctY29udGFpbi1sYXlvdXQ6IDsKICAgICAgLS10dy1jb250YWluLXBhaW50OiA7CiAgICAgIC0tdHctY29udGFpbi1zdHlsZTogOwogICAgfQoKICAgIC8qISB0YWlsd2luZGNzcyB2My40LjE3IHwgTUlUIExpY2Vuc2UgfCBodHRwczovL3RhaWx3aW5kY3NzLmNvbSovCiAgICAqLAogICAgOmFmdGVyLAogICAgOmJlZm9yZSB7CiAgICAgIGJvcmRlcjogMCBzb2xpZCAjZWFlY2YwOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgfQoKICAgIDphZnRlciwKICAgIDpiZWZvcmUgewogICAgICAtLXR3LWNvbnRlbnQ6ICIiOwogICAgfQoKICAgIDpob3N0LAogICAgaHRtbCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgICAgZm9udC1mYW1pbHk6IHVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgc2Fucy1zZXJpZiwgQXBwbGUgQ29sb3IgRW1vamksCiAgICAgICAgU2Vnb2UgVUkgRW1vamksIFNlZ29lIFVJIFN5bWJvbCwgTm90byBDb2xvciBFbW9qaTsKICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7CiAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7CiAgICAgIC1tb3otdGFiLXNpemU6IDQ7CiAgICAgIC1vLXRhYi1zaXplOiA0OwogICAgICB0YWItc2l6ZTogNDsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICBib2R5IHsKICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgIG1hcmdpbjogMDsKICAgIH0KCiAgICBociB7CiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsKICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIGhlaWdodDogMDsKICAgIH0KCiAgICBhYmJyOndoZXJlKFt0aXRsZV0pIHsKICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsKICAgIH0KCiAgICBoMSwKICAgIGgyLAogICAgaDMsCiAgICBoNCwKICAgIGg1LAogICAgaDYgewogICAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OwogICAgfQoKICAgIGEgewogICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OwogICAgfQoKICAgIGIsCiAgICBzdHJvbmcgewogICAgICBmb250LXdlaWdodDogYm9sZGVyOwogICAgfQoKICAgIGNvZGUsCiAgICBrYmQsCiAgICBwcmUsCiAgICBzYW1wIHsKICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLAogICAgICAgIExpYmVyYXRpb24gTW9ubywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsKICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7CiAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOwogICAgfQoKICAgIHNtYWxsIHsKICAgICAgZm9udC1zaXplOiA4MCU7CiAgICB9CgogICAgc3ViLAogICAgc3VwIHsKICAgICAgZm9udC1zaXplOiA3NSU7CiAgICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKICAgIH0KCiAgICBzdWIgewogICAgICBib3R0b206IC0wLjI1ZW07CiAgICB9CgogICAgc3VwIHsKICAgICAgdG9wOiAtMC41ZW07CiAgICB9CgogICAgdGFibGUgewogICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7CiAgICAgIHRleHQtaW5kZW50OiAwOwogICAgfQoKICAgIGJ1dHRvbiwKICAgIGlucHV0LAogICAgb3B0Z3JvdXAsCiAgICBzZWxlY3QsCiAgICB0ZXh0YXJlYSB7CiAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OwogICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBpbmhlcml0OwogICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgYnV0dG9uLAogICAgc2VsZWN0IHsKICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICB9CgogICAgYnV0dG9uLAogICAgaW5wdXQ6d2hlcmUoW3R5cGU9ImJ1dHRvbiJdKSwKICAgIGlucHV0OndoZXJlKFt0eXBlPSJyZXNldCJdKSwKICAgIGlucHV0OndoZXJlKFt0eXBlPSJzdWJtaXQiXSkgewogICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgICB9CgogICAgOi1tb3otZm9jdXNyaW5nIHsKICAgICAgb3V0bGluZTogYXV0bzsKICAgIH0KCiAgICA6LW1vei11aS1pbnZhbGlkIHsKICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgIH0KCiAgICBwcm9ncmVzcyB7CiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKICAgIH0KCiAgICA6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sCiAgICA6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24gewogICAgICBoZWlnaHQ6IGF1dG87CiAgICB9CgogICAgW3R5cGU9InNlYXJjaCJdIHsKICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7CiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgfQoKICAgIDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7CiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIH0KCiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHsKICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247CiAgICAgIGZvbnQ6IGluaGVyaXQ7CiAgICB9CgogICAgc3VtbWFyeSB7CiAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTsKICAgIH0KCiAgICBibG9ja3F1b3RlLAogICAgZGQsCiAgICBkbCwKICAgIGZpZ3VyZSwKICAgIGgxLAogICAgaDIsCiAgICBoMywKICAgIGg0LAogICAgaDUsCiAgICBoNiwKICAgIGhyLAogICAgcCwKICAgIHByZSB7CiAgICAgIG1hcmdpbjogMDsKICAgIH0KCiAgICBmaWVsZHNldCB7CiAgICAgIG1hcmdpbjogMDsKICAgIH0KCiAgICBmaWVsZHNldCwKICAgIGxlZ2VuZCB7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgbWVudSwKICAgIG9sLAogICAgdWwgewogICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgZGlhbG9nIHsKICAgICAgcGFkZGluZzogMDsKICAgIH0KCiAgICB0ZXh0YXJlYSB7CiAgICAgIHJlc2l6ZTogdmVydGljYWw7CiAgICB9CgogICAgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsCiAgICB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7CiAgICAgIGNvbG9yOiAjOThhMmIzOwogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIGlucHV0OjpwbGFjZWhvbGRlciwKICAgIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7CiAgICAgIGNvbG9yOiAjOThhMmIzOwogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIFtyb2xlPSJidXR0b24iXSwKICAgIGJ1dHRvbiB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICA6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgYXVkaW8sCiAgICBjYW52YXMsCiAgICBlbWJlZCwKICAgIGlmcmFtZSwKICAgIGltZywKICAgIG9iamVjdCwKICAgIHN2ZywKICAgIHZpZGVvIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB9CgogICAgaW1nLAogICAgdmlkZW8gewogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KCiAgICBbaGlkZGVuXTp3aGVyZSg6bm90KFtoaWRkZW49InVudGlsLWZvdW5kIl0pKSB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgQGZvbnQtZmFjZSB7CiAgICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIHNyYzogdXJsKF9udXh0L0ludGVyLVJlZ3VsYXIuRFlqeWd3UW0udHRmKSBmb3JtYXQoIndvZmYyIik7CiAgICB9CgogICAgQGZvbnQtZmFjZSB7CiAgICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIHNyYzogdXJsKF9udXh0L0ludGVyLU1lZGl1bS5DS0xKWlhSMi50dGYpIGZvcm1hdCgid29mZjIiKTsKICAgIH0KCiAgICBAZm9udC1mYWNlIHsKICAgICAgZm9udC1kaXNwbGF5OiBzd2FwOwogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgc3JjOiB1cmwoX251eHQvSW50ZXItU2VtaUJvbGQuWFZDTDFMbm8udHRmKSBmb3JtYXQoIndvZmYyIik7CiAgICB9CgogICAgQGZvbnQtZmFjZSB7CiAgICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIHNyYzogdXJsKF9udXh0L0ludGVyLUJvbGQuemRpb212WVoudHRmKSBmb3JtYXQoIndvZmYyIik7CiAgICB9CgogICAgLmNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkgewogICAgICAuY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDY0MHB4OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgIC5jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogNzY4cHg7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgIC5jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogMTAyNHB4OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkgewogICAgICAuY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyODBweDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiAxNTM2cHgpIHsKICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxNTM2cHg7CiAgICAgIH0KICAgIH0KCiAgICAucG9pbnRlci1ldmVudHMtbm9uZSB7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC5cIXZpc2libGUgewogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnZpc2libGUgewogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgfQoKICAgIC5maXhlZCB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIH0KCiAgICAuXCFhYnNvbHV0ZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5hYnNvbHV0ZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIH0KCiAgICAuXCFyZWxhdGl2ZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yZWxhdGl2ZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAuc3RpY2t5IHsKICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgIH0KCiAgICAuLXRvcC0xIHsKICAgICAgdG9wOiAtMC4yNXJlbTsKICAgIH0KCiAgICAuYm90dG9tLTAgewogICAgICBib3R0b206IDA7CiAgICB9CgogICAgLmJvdHRvbS0yIHsKICAgICAgYm90dG9tOiAwLjVyZW07CiAgICB9CgogICAgLmJvdHRvbS1cWy0ycHhcXSB7CiAgICAgIGJvdHRvbTogLTJweDsKICAgIH0KCiAgICAuYm90dG9tLVxbMzBweFxdIHsKICAgICAgYm90dG9tOiAzMHB4OwogICAgfQoKICAgIC5sZWZ0LTAgewogICAgICBsZWZ0OiAwOwogICAgfQoKICAgIC5sZWZ0LTIgewogICAgICBsZWZ0OiAwLjVyZW07CiAgICB9CgogICAgLmxlZnQtXFstMTJyZW1cXSB7CiAgICAgIGxlZnQ6IC0xMnJlbTsKICAgIH0KCiAgICAucmlnaHQtMCB7CiAgICAgIHJpZ2h0OiAwOwogICAgfQoKICAgIC5yaWdodC00IHsKICAgICAgcmlnaHQ6IDFyZW07CiAgICB9CgogICAgLnJpZ2h0LTYgewogICAgICByaWdodDogMS41cmVtOwogICAgfQoKICAgIC5yaWdodC1cWy0xMHJlbVxdIHsKICAgICAgcmlnaHQ6IC0xMHJlbTsKICAgIH0KCiAgICAucmlnaHQtXFstNHB4XF0gewogICAgICByaWdodDogLTRweDsKICAgIH0KCiAgICAucmlnaHQtXFstNjBweFxdIHsKICAgICAgcmlnaHQ6IC02MHB4OwogICAgfQoKICAgIC5yaWdodC1cWzJyZW1cXSB7CiAgICAgIHJpZ2h0OiAycmVtOwogICAgfQoKICAgIC5yaWdodC1cWzQwXCVcXSB7CiAgICAgIHJpZ2h0OiA0MCU7CiAgICB9CgogICAgLnJpZ2h0LVxbNDRcJVxdIHsKICAgICAgcmlnaHQ6IDQ0JTsKICAgIH0KCiAgICAudG9wLTAgewogICAgICB0b3A6IDA7CiAgICB9CgogICAgLnRvcC0xNiB7CiAgICAgIHRvcDogNHJlbTsKICAgIH0KCiAgICAudG9wLTIgewogICAgICB0b3A6IDAuNXJlbTsKICAgIH0KCiAgICAudG9wLTI0IHsKICAgICAgdG9wOiA2cmVtOwogICAgfQoKICAgIC50b3AtMyB7CiAgICAgIHRvcDogMC43NXJlbTsKICAgIH0KCiAgICAudG9wLTQgewogICAgICB0b3A6IDFyZW07CiAgICB9CgogICAgLnRvcC1cWy0zcmVtXF0gewogICAgICB0b3A6IC0zcmVtOwogICAgfQoKICAgIC50b3AtXFszN1wlXF0gewogICAgICB0b3A6IDM3JTsKICAgIH0KCiAgICAudG9wLVxbNDBcJVxdIHsKICAgICAgdG9wOiA0MCU7CiAgICB9CgogICAgLlwhei0zMCB7CiAgICAgIHotaW5kZXg6IDMwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhei01MCB7CiAgICAgIHotaW5kZXg6IDUwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhei1cWzk5OTk5OVxdIHsKICAgICAgei1pbmRleDogOTk5OTk5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnotMTAgewogICAgICB6LWluZGV4OiAxMDsKICAgIH0KCiAgICAuei01MCB7CiAgICAgIHotaW5kZXg6IDUwOwogICAgfQoKICAgIC56LVxbLTFcXSB7CiAgICAgIHotaW5kZXg6IDA7CiAgICB9CgogICAgLnotXFs5OTlcXSB7CiAgICAgIHotaW5kZXg6IDk5OTsKICAgIH0KCiAgICAuei1cWzk5XF0gewogICAgICB6LWluZGV4OiA5OTsKICAgIH0KCiAgICAuXCFvcmRlci0xIHsKICAgICAgb3JkZXI6IDEgIWltcG9ydGFudDsKICAgIH0KCiAgICAub3JkZXItMSB7CiAgICAgIG9yZGVyOiAxOwogICAgfQoKICAgIC5vcmRlci0yIHsKICAgICAgb3JkZXI6IDI7CiAgICB9CgogICAgLm9yZGVyLWZpcnN0IHsKICAgICAgb3JkZXI6IC05OTk5OwogICAgfQoKICAgIC5vcmRlci1sYXN0IHsKICAgICAgb3JkZXI6IDk5OTk7CiAgICB9CgogICAgLmNvbC1zcGFuLTEgewogICAgICBncmlkLWNvbHVtbjogc3BhbiAxIC8gc3BhbiAxOwogICAgfQoKICAgIC5jb2wtc3Bhbi0yIHsKICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjsKICAgIH0KCiAgICAuZmxvYXQtcmlnaHQgewogICAgICBmbG9hdDogcmlnaHQ7CiAgICB9CgogICAgLmZsb2F0LWxlZnQgewogICAgICBmbG9hdDogbGVmdDsKICAgIH0KCiAgICAuXCFtLTAgewogICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAubS0xMCB7CiAgICAgIG1hcmdpbjogMi41cmVtOwogICAgfQoKICAgIC5tLTQgewogICAgICBtYXJnaW46IDFyZW07CiAgICB9CgogICAgLm0tNiB7CiAgICAgIG1hcmdpbjogMS41cmVtOwogICAgfQoKICAgIC5cIS1teS0zIHsKICAgICAgbWFyZ2luLWJvdHRvbTogLTAuNzVyZW0gIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogLTAuNzVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFteC1hdXRvIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLi1teC0xXC41IHsKICAgICAgbWFyZ2luLWxlZnQ6IC0wLjM3NXJlbTsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMC4zNzVyZW07CiAgICB9CgogICAgLi1teC00IHsKICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtOwogICAgfQoKICAgIC5teC0wIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KCiAgICAubXgtMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07CiAgICB9CgogICAgLm14LTFcLjUgewogICAgICBtYXJnaW4tbGVmdDogMC4zNzVyZW07CiAgICAgIG1hcmdpbi1yaWdodDogMC4zNzVyZW07CiAgICB9CgogICAgLm14LTIgewogICAgICBtYXJnaW4tbGVmdDogMC41cmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsKICAgIH0KCiAgICAubXgtMyB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwLjc1cmVtOwogICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07CiAgICB9CgogICAgLm14LTQgewogICAgICBtYXJnaW4tbGVmdDogMXJlbTsKICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOwogICAgfQoKICAgIC5teC01IHsKICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07CiAgICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTsKICAgIH0KCiAgICAubXgtYXV0byB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CgogICAgLm15LTEgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOwogICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtOwogICAgfQoKICAgIC5teS0xXC41IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07CiAgICAgIG1hcmdpbi10b3A6IDAuMzc1cmVtOwogICAgfQoKICAgIC5teS0xMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICAgIG1hcmdpbi10b3A6IDNyZW07CiAgICB9CgogICAgLm15LTE2IHsKICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTsKICAgICAgbWFyZ2luLXRvcDogNHJlbTsKICAgIH0KCiAgICAubXktMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsKICAgICAgbWFyZ2luLXRvcDogMC41cmVtOwogICAgfQoKICAgIC5teS0yNCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDZyZW07CiAgICAgIG1hcmdpbi10b3A6IDZyZW07CiAgICB9CgogICAgLm15LTMgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOwogICAgfQoKICAgIC5teS00IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgbWFyZ2luLXRvcDogMXJlbTsKICAgIH0KCiAgICAubXktNSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07CiAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07CiAgICB9CgogICAgLm15LTYgewogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTsKICAgIH0KCiAgICAubXktOCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07CiAgICAgIG1hcmdpbi10b3A6IDJyZW07CiAgICB9CgogICAgLlwhbWwtMSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhbWwtNiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFtdC0wIHsKICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIW10LTFcLjUgewogICAgICBtYXJnaW4tdG9wOiAwLjM3NXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIW10LTJcLjUgewogICAgICBtYXJnaW4tdG9wOiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIW10LTUgewogICAgICBtYXJnaW4tdG9wOiAxLjI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm1iLTAgewogICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQoKICAgIC5tYi0wXC41IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07CiAgICB9CgogICAgLm1iLTEgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOwogICAgfQoKICAgIC5tYi0xXC41IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07CiAgICB9CgogICAgLm1iLTEwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogICAgfQoKICAgIC5tYi0xMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICB9CgogICAgLm1iLTIgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICB9CgogICAgLm1iLTJcLjUgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTsKICAgIH0KCiAgICAubWItMjAgewogICAgICBtYXJnaW4tYm90dG9tOiA1cmVtOwogICAgfQoKICAgIC5tYi0yNCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDZyZW07CiAgICB9CgogICAgLm1iLTMgewogICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogICAgfQoKICAgIC5tYi00IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgIH0KCiAgICAubWItNSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07CiAgICB9CgogICAgLm1iLTYgewogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICB9CgogICAgLm1iLTggewogICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgfQoKICAgIC5tbC0xIHsKICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07CiAgICB9CgogICAgLm1sLTFcLjUgewogICAgICBtYXJnaW4tbGVmdDogMC4zNzVyZW07CiAgICB9CgogICAgLm1sLTIgewogICAgICBtYXJnaW4tbGVmdDogMC41cmVtOwogICAgfQoKICAgIC5tbC0zIHsKICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07CiAgICB9CgogICAgLm1sLTNcLjUgewogICAgICBtYXJnaW4tbGVmdDogMC44NzVyZW07CiAgICB9CgogICAgLm1sLTQgewogICAgICBtYXJnaW4tbGVmdDogMXJlbTsKICAgIH0KCiAgICAubWwtNSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOwogICAgfQoKICAgIC5tci0xIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOwogICAgfQoKICAgIC5tci0yIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07CiAgICB9CgogICAgLm1yLTJcLjUgewogICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtOwogICAgfQoKICAgIC5tci0zIHsKICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtOwogICAgfQoKICAgIC5tci00IHsKICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOwogICAgfQoKICAgIC5tdC0wIHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KCiAgICAubXQtMFwuNSB7CiAgICAgIG1hcmdpbi10b3A6IDAuMTI1cmVtOwogICAgfQoKICAgIC5tdC0xIHsKICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTsKICAgIH0KCiAgICAubXQtMVwuNSB7CiAgICAgIG1hcmdpbi10b3A6IDAuMzc1cmVtOwogICAgfQoKICAgIC5tdC0xMCB7CiAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsKICAgIH0KCiAgICAubXQtMTIgewogICAgICBtYXJnaW4tdG9wOiAzcmVtOwogICAgfQoKICAgIC5tdC0xNiB7CiAgICAgIG1hcmdpbi10b3A6IDRyZW07CiAgICB9CgogICAgLm10LTIgewogICAgICBtYXJnaW4tdG9wOiAwLjVyZW07CiAgICB9CgogICAgLm10LTJcLjUgewogICAgICBtYXJnaW4tdG9wOiAwLjYyNXJlbTsKICAgIH0KCiAgICAubXQtMjAgewogICAgICBtYXJnaW4tdG9wOiA1cmVtOwogICAgfQoKICAgIC5tdC0yOCB7CiAgICAgIG1hcmdpbi10b3A6IDdyZW07CiAgICB9CgogICAgLm10LTMgewogICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOwogICAgfQoKICAgIC5tdC00IHsKICAgICAgbWFyZ2luLXRvcDogMXJlbTsKICAgIH0KCiAgICAubXQtNSB7CiAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07CiAgICB9CgogICAgLm10LTYgewogICAgICBtYXJnaW4tdG9wOiAxLjVyZW07CiAgICB9CgogICAgLm10LTggewogICAgICBtYXJnaW4tdG9wOiAycmVtOwogICAgfQoKICAgIC5tdC1cWy0ycmVtXF0gewogICAgICBtYXJnaW4tdG9wOiAtMnJlbTsKICAgIH0KCiAgICAuXCFibG9jayB7CiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJsb2NrIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgogICAgLmlubGluZS1ibG9jayB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIH0KCiAgICAuXCFmbGV4IHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mbGV4IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgIH0KCiAgICAuaW5saW5lLWZsZXggewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIH0KCiAgICAuZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB9CgogICAgLlwhaGlkZGVuIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5cIWgtMVwuNSB7CiAgICAgIGhlaWdodDogMC4zNzVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFoLTExIHsKICAgICAgaGVpZ2h0OiAyLjc1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhaC0zMiB7CiAgICAgIGhlaWdodDogOHJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWgtOSB7CiAgICAgIGhlaWdodDogMi4yNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWgtXFs1NnB4XF0gewogICAgICBoZWlnaHQ6IDU2cHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFoLWZ1bGwgewogICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaC0wXC41IHsKICAgICAgaGVpZ2h0OiAwLjEyNXJlbTsKICAgIH0KCiAgICAuaC0xIHsKICAgICAgaGVpZ2h0OiAwLjI1cmVtOwogICAgfQoKICAgIC5oLTFcLjUgewogICAgICBoZWlnaHQ6IDAuMzc1cmVtOwogICAgfQoKICAgIC5oLTEwIHsKICAgICAgaGVpZ2h0OiAyLjVyZW07CiAgICB9CgogICAgLmgtMTEgewogICAgICBoZWlnaHQ6IDIuNzVyZW07CiAgICB9CgogICAgLmgtNDggewogICAgICBoZWlnaHQ6IDEycmVtOwogICAgfQoKICAgIC5oLTUgewogICAgICBoZWlnaHQ6IDEuMjVyZW07CiAgICB9CgogICAgLmgtNTIgewogICAgICBoZWlnaHQ6IDEzcmVtOwogICAgfQoKICAgIC5oLTYgewogICAgICBoZWlnaHQ6IDEuNXJlbTsKICAgIH0KCiAgICAuaC02MCB7CiAgICAgIGhlaWdodDogMTVyZW07CiAgICB9CgogICAgLmgtOCB7CiAgICAgIGhlaWdodDogMnJlbTsKICAgIH0KCiAgICAuaC1cWzEwMFwlXF0gewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CgogICAgLmgtXFsxMDB2aFxdIHsKICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuaC1cWzEwNHB4XF0gewogICAgICBoZWlnaHQ6IDEwNHB4OwogICAgfQoKICAgIC5oLVxbMTEwcHhcXSB7CiAgICAgIGhlaWdodDogMTEwcHg7CiAgICB9CgogICAgLmgtXFsxMjBweFxdIHsKICAgICAgaGVpZ2h0OiAxMjBweDsKICAgIH0KCiAgICAuaC1cWzEyOHB4XF0gewogICAgICBoZWlnaHQ6IDEyOHB4OwogICAgfQoKICAgIC5oLVxbMTU3cHhcXSB7CiAgICAgIGhlaWdodDogMTU3cHg7CiAgICB9CgogICAgLmgtXFsxODlweFxdIHsKICAgICAgaGVpZ2h0OiAxODlweDsKICAgIH0KCiAgICAuaC1cWzFweFxdIHsKICAgICAgaGVpZ2h0OiAxcHg7CiAgICB9CgogICAgLmgtXFsyMDBweFxdIHsKICAgICAgaGVpZ2h0OiAyMDBweDsKICAgIH0KCiAgICAuaC1cWzIxNHB4XF0gewogICAgICBoZWlnaHQ6IDIxNHB4OwogICAgfQoKICAgIC5oLVxbMjE2cHhcXSB7CiAgICAgIGhlaWdodDogMjE2cHg7CiAgICB9CgogICAgLmgtXFsyNHB4XF0gewogICAgICBoZWlnaHQ6IDI0cHg7CiAgICB9CgogICAgLmgtXFsyNXB4XF0gewogICAgICBoZWlnaHQ6IDI1cHg7CiAgICB9CgogICAgLmgtXFszMjBweFxdIHsKICAgICAgaGVpZ2h0OiAzMjBweDsKICAgIH0KCiAgICAuaC1cWzM1MHB4XF0gewogICAgICBoZWlnaHQ6IDM1MHB4OwogICAgfQoKICAgIC5oLVxbMzc1cHhcXSB7CiAgICAgIGhlaWdodDogMzc1cHg7CiAgICB9CgogICAgLmgtXFs0MDBweFxdIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAuaC1cWzQwcHhcXSB7CiAgICAgIGhlaWdodDogNDBweDsKICAgIH0KCiAgICAuaC1cWzQ1cHhcXSB7CiAgICAgIGhlaWdodDogNDVweDsKICAgIH0KCiAgICAuaC1cWzQ4cHhcXSB7CiAgICAgIGhlaWdodDogNDhweDsKICAgIH0KCiAgICAuaC1cWzUwcHhcXSB7CiAgICAgIGhlaWdodDogNTBweDsKICAgIH0KCiAgICAuaC1cWzc0cHhcXSB7CiAgICAgIGhlaWdodDogNzRweDsKICAgIH0KCiAgICAuaC1cWzgwcHhcXSB7CiAgICAgIGhlaWdodDogODBweDsKICAgIH0KCiAgICAuaC1cWzk2cHhcXSB7CiAgICAgIGhlaWdodDogOTZweDsKICAgIH0KCiAgICAuaC1maXQgewogICAgICBoZWlnaHQ6IC1tb3otZml0LWNvbnRlbnQ7CiAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7CiAgICB9CgogICAgLmgtZnVsbCB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KCiAgICAubWF4LWgtMCB7CiAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICB9CgogICAgLm1heC1oLTY0IHsKICAgICAgbWF4LWhlaWdodDogMTZyZW07CiAgICB9CgogICAgLm1heC1oLVxbMjgwcHhcXSB7CiAgICAgIG1heC1oZWlnaHQ6IDI4MHB4OwogICAgfQoKICAgIC5tYXgtaC1cWzg1dmhcXSB7CiAgICAgIG1heC1oZWlnaHQ6IDg1dmg7CiAgICB9CgogICAgLm1heC1oLVxbOTF2aFxdIHsKICAgICAgbWF4LWhlaWdodDogOTF2aDsKICAgIH0KCiAgICAuXCFtaW4taC1mdWxsIHsKICAgICAgbWluLWhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5taW4taC0xXC41IHsKICAgICAgbWluLWhlaWdodDogMC4zNzVyZW07CiAgICB9CgogICAgLm1pbi1oLTQ0IHsKICAgICAgbWluLWhlaWdodDogMTFyZW07CiAgICB9CgogICAgLm1pbi1oLVxbMzUwcHhcXSB7CiAgICAgIG1pbi1oZWlnaHQ6IDM1MHB4OwogICAgfQoKICAgIC5taW4taC1cWzUwMHB4XF0gewogICAgICBtaW4taGVpZ2h0OiA1MDBweDsKICAgIH0KCiAgICAubWluLWgtZml0IHsKICAgICAgbWluLWhlaWdodDogLW1vei1maXQtY29udGVudDsKICAgICAgbWluLWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICB9CgogICAgLm1pbi1oLWZ1bGwgewogICAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgfQoKICAgIC5cIXctMVwuNSB7CiAgICAgIHdpZHRoOiAwLjM3NXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXctOSB7CiAgICAgIHdpZHRoOiAyLjI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdy1cWzIwcHhcXSB7CiAgICAgIHdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdy1cWzU2cHhcXSB7CiAgICAgIHdpZHRoOiA1NnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdy1mdWxsIHsKICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAudy0xIHsKICAgICAgd2lkdGg6IDAuMjVyZW07CiAgICB9CgogICAgLnctMVwuNSB7CiAgICAgIHdpZHRoOiAwLjM3NXJlbTsKICAgIH0KCiAgICAudy0xXC8yIHsKICAgICAgd2lkdGg6IDUwJTsKICAgIH0KCiAgICAudy0xXC8zIHsKICAgICAgd2lkdGg6IDMzLjMzMzMzMyU7CiAgICB9CgogICAgLnctMVwvNCB7CiAgICAgIHdpZHRoOiAyNSU7CiAgICB9CgogICAgLnctMTAgewogICAgICB3aWR0aDogMi41cmVtOwogICAgfQoKICAgIC53LTExIHsKICAgICAgd2lkdGg6IDIuNzVyZW07CiAgICB9CgogICAgLnctMTQgewogICAgICB3aWR0aDogMy41cmVtOwogICAgfQoKICAgIC53LTI0IHsKICAgICAgd2lkdGg6IDZyZW07CiAgICB9CgogICAgLnctM1wvNSB7CiAgICAgIHdpZHRoOiA2MCU7CiAgICB9CgogICAgLnctNTYgewogICAgICB3aWR0aDogMTRyZW07CiAgICB9CgogICAgLnctNiB7CiAgICAgIHdpZHRoOiAxLjVyZW07CiAgICB9CgogICAgLnctOCB7CiAgICAgIHdpZHRoOiAycmVtOwogICAgfQoKICAgIC53LTgwIHsKICAgICAgd2lkdGg6IDIwcmVtOwogICAgfQoKICAgIC53LTk2IHsKICAgICAgd2lkdGg6IDI0cmVtOwogICAgfQoKICAgIC53LVxbMTAwdndcXSB7CiAgICAgIHdpZHRoOiAxMDB2dzsKICAgIH0KCiAgICAudy1cWzExNXB4XF0gewogICAgICB3aWR0aDogMTE1cHg7CiAgICB9CgogICAgLnctXFsxMjBweFxdIHsKICAgICAgd2lkdGg6IDEyMHB4OwogICAgfQoKICAgIC53LVxbMTI0cHhcXSB7CiAgICAgIHdpZHRoOiAxMjRweDsKICAgIH0KCiAgICAudy1cWzEyOHB4XF0gewogICAgICB3aWR0aDogMTI4cHg7CiAgICB9CgogICAgLnctXFsxNDBweFxdIHsKICAgICAgd2lkdGg6IDE0MHB4OwogICAgfQoKICAgIC53LVxbMTQxcHhcXSB7CiAgICAgIHdpZHRoOiAxNDFweDsKICAgIH0KCiAgICAudy1cWzE1M3B4XF0gewogICAgICB3aWR0aDogMTUzcHg7CiAgICB9CgogICAgLnctXFsxNTRweFxdIHsKICAgICAgd2lkdGg6IDE1NHB4OwogICAgfQoKICAgIC53LVxbMTU3cHhcXSB7CiAgICAgIHdpZHRoOiAxNTdweDsKICAgIH0KCiAgICAudy1cWzE2MHB4XF0gewogICAgICB3aWR0aDogMTYwcHg7CiAgICB9CgogICAgLnctXFsxODBweFxdIHsKICAgICAgd2lkdGg6IDE4MHB4OwogICAgfQoKICAgIC53LVxbMTg5cHhcXSB7CiAgICAgIHdpZHRoOiAxODlweDsKICAgIH0KCiAgICAudy1cWzIwMHB4XF0gewogICAgICB3aWR0aDogMjAwcHg7CiAgICB9CgogICAgLnctXFsyMDRweFxdIHsKICAgICAgd2lkdGg6IDIwNHB4OwogICAgfQoKICAgIC53LVxbMjBweFxdIHsKICAgICAgd2lkdGg6IDIwcHg7CiAgICB9CgogICAgLnctXFsyNDBweFxdIHsKICAgICAgd2lkdGg6IDI0MHB4OwogICAgfQoKICAgIC53LVxbMjRweFxdIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICB9CgogICAgLnctXFsyNjBweFxdIHsKICAgICAgd2lkdGg6IDI2MHB4OwogICAgfQoKICAgIC53LVxbMjcycHhcXSB7CiAgICAgIHdpZHRoOiAyNzJweDsKICAgIH0KCiAgICAudy1cWzMwMHB4XF0gewogICAgICB3aWR0aDogMzAwcHg7CiAgICB9CgogICAgLnctXFszMTdweFxdIHsKICAgICAgd2lkdGg6IDMxN3B4OwogICAgfQoKICAgIC53LVxbMzIwcHhcXSB7CiAgICAgIHdpZHRoOiAzMjBweDsKICAgIH0KCiAgICAudy1cWzM1MHB4XF0gewogICAgICB3aWR0aDogMzUwcHg7CiAgICB9CgogICAgLnctXFszNjVweFxdIHsKICAgICAgd2lkdGg6IDM2NXB4OwogICAgfQoKICAgIC53LVxbMzc2cHhcXSB7CiAgICAgIHdpZHRoOiAzNzZweDsKICAgIH0KCiAgICAudy1cWzQwMHB4XF0gewogICAgICB3aWR0aDogNDAwcHg7CiAgICB9CgogICAgLnctXFs0MHB4XF0gewogICAgICB3aWR0aDogNDBweDsKICAgIH0KCiAgICAudy1cWzcwXCVcXSB7CiAgICAgIHdpZHRoOiA3MCU7CiAgICB9CgogICAgLnctXFs3NHB4XF0gewogICAgICB3aWR0aDogNzRweDsKICAgIH0KCiAgICAudy1cWzgwcHhcXSB7CiAgICAgIHdpZHRoOiA4MHB4OwogICAgfQoKICAgIC53LVxbODhweFxdIHsKICAgICAgd2lkdGg6IDg4cHg7CiAgICB9CgogICAgLnctXFs5NnB4XF0gewogICAgICB3aWR0aDogOTZweDsKICAgIH0KCiAgICAudy1cW2NhbGNcKDEwMFwlLTJyZW1cKVxdIHsKICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDJyZW0pOwogICAgfQoKICAgIC53LWZpdCB7CiAgICAgIHdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogICAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICB9CgogICAgLnctZnVsbCB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIC5cIW1pbi13LVxbMzcwcHhcXSB7CiAgICAgIG1pbi13aWR0aDogMzcwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFtaW4tdy1cWzY2cmVtXF0gewogICAgICBtaW4td2lkdGg6IDY2cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhbWluLXctZml0IHsKICAgICAgbWluLXdpZHRoOiAtbW96LWZpdC1jb250ZW50ICFpbXBvcnRhbnQ7CiAgICAgIG1pbi13aWR0aDogZml0LWNvbnRlbnQgIWltcG9ydGFudDsKICAgIH0KCiAgICAubWluLXctMCB7CiAgICAgIG1pbi13aWR0aDogMDsKICAgIH0KCiAgICAubWluLXctMTAgewogICAgICBtaW4td2lkdGg6IDIuNXJlbTsKICAgIH0KCiAgICAubWluLXctXFsyMjRweFxdIHsKICAgICAgbWluLXdpZHRoOiAyMjRweDsKICAgIH0KCiAgICAubWluLXctXFsyODVweFxdIHsKICAgICAgbWluLXdpZHRoOiAyODVweDsKICAgIH0KCiAgICAubWluLXctXFszMDBweFxdIHsKICAgICAgbWluLXdpZHRoOiAzMDBweDsKICAgIH0KCiAgICAubWluLXctXFszNTVweFxdIHsKICAgICAgbWluLXdpZHRoOiAzNTVweDsKICAgIH0KCiAgICAubWluLXctZml0IHsKICAgICAgbWluLXdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogICAgICBtaW4td2lkdGg6IGZpdC1jb250ZW50OwogICAgfQoKICAgIC5cIW1heC13LVxbNjZyZW1cXSB7CiAgICAgIG1heC13aWR0aDogNjZyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAubWF4LXctMTAgewogICAgICBtYXgtd2lkdGg6IDIuNXJlbTsKICAgIH0KCiAgICAubWF4LXctNDAgewogICAgICBtYXgtd2lkdGg6IDEwcmVtOwogICAgfQoKICAgIC5tYXgtdy00OCB7CiAgICAgIG1heC13aWR0aDogMTJyZW07CiAgICB9CgogICAgLm1heC13LTUyIHsKICAgICAgbWF4LXdpZHRoOiAxM3JlbTsKICAgIH0KCiAgICAubWF4LXctODAgewogICAgICBtYXgtd2lkdGg6IDIwcmVtOwogICAgfQoKICAgIC5tYXgtdy1cWzEwMDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiAxMDAwcHg7CiAgICB9CgogICAgLm1heC13LVxbMTIwMHB4XF0gewogICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgIH0KCiAgICAubWF4LXctXFsxMjgwcHhcXSB7CiAgICAgIG1heC13aWR0aDogMTI4MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzEzMTJweFxdIHsKICAgICAgbWF4LXdpZHRoOiAxMzEycHg7CiAgICB9CgogICAgLm1heC13LVxbMTQwMHB4XF0gewogICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgIH0KCiAgICAubWF4LXctXFsxNDQwcHhcXSB7CiAgICAgIG1heC13aWR0aDogMTQ0MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzE1MHB4XF0gewogICAgICBtYXgtd2lkdGg6IDE1MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzE5OXB4XF0gewogICAgICBtYXgtd2lkdGg6IDE5OXB4OwogICAgfQoKICAgIC5tYXgtdy1cWzIxNnB4XF0gewogICAgICBtYXgtd2lkdGg6IDIxNnB4OwogICAgfQoKICAgIC5tYXgtdy1cWzI0MHB4XF0gewogICAgICBtYXgtd2lkdGg6IDI0MHB4OwogICAgfQoKICAgIC5tYXgtdy1cWzI4NXB4XF0gewogICAgICBtYXgtd2lkdGg6IDI4NXB4OwogICAgfQoKICAgIC5tYXgtdy1cWzMyXC4zcmVtXF0gewogICAgICBtYXgtd2lkdGg6IDMyLjNyZW07CiAgICB9CgogICAgLm1heC13LVxbMzQzcHhcXSB7CiAgICAgIG1heC13aWR0aDogMzQzcHg7CiAgICB9CgogICAgLm1heC13LVxbMzVcLjVyZW1cXSB7CiAgICAgIG1heC13aWR0aDogMzUuNXJlbTsKICAgIH0KCiAgICAubWF4LXctXFszNzBweFxdIHsKICAgICAgbWF4LXdpZHRoOiAzNzBweDsKICAgIH0KCiAgICAubWF4LXctXFs0MDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgIH0KCiAgICAubWF4LXctXFs1MDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgIH0KCiAgICAubWF4LXctXFs1MDRweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MDRweDsKICAgIH0KCiAgICAubWF4LXctXFs1MjBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MjBweDsKICAgIH0KCiAgICAubWF4LXctXFs1MzBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA1MzBweDsKICAgIH0KCiAgICAubWF4LXctXFs2MTVweFxdIHsKICAgICAgbWF4LXdpZHRoOiA2MTVweDsKICAgIH0KCiAgICAubWF4LXctXFs2NDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA2NDBweDsKICAgIH0KCiAgICAubWF4LXctXFs2NTBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA2NTBweDsKICAgIH0KCiAgICAubWF4LXctXFs3MzdweFxdIHsKICAgICAgbWF4LXdpZHRoOiA3MzdweDsKICAgIH0KCiAgICAubWF4LXctXFs3NDJweFxdIHsKICAgICAgbWF4LXdpZHRoOiA3NDJweDsKICAgIH0KCiAgICAubWF4LXctXFs3NjhweFxdIHsKICAgICAgbWF4LXdpZHRoOiA3NjhweDsKICAgIH0KCiAgICAubWF4LXctXFs5MDBweFxdIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgIH0KCiAgICAubWF4LXctZml0IHsKICAgICAgbWF4LXdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogICAgICBtYXgtd2lkdGg6IGZpdC1jb250ZW50OwogICAgfQoKICAgIC5mbGV4LTEgewogICAgICBmbGV4OiAxIDEgMCU7CiAgICB9CgogICAgLmZsZXgtc2hyaW5rLTAgewogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZmxleC1ncm93LAogICAgLmdyb3cgewogICAgICBmbGV4LWdyb3c6IDE7CiAgICB9CgogICAgLnJvdGF0ZS0xODAgewogICAgICAtLXR3LXJvdGF0ZTogMTgwZGVnOwogICAgfQoKICAgIC5yb3RhdGUtMTgwLAogICAgLnJvdGF0ZS05MCB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tldyh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7CiAgICB9CgogICAgLnJvdGF0ZS05MCB7CiAgICAgIC0tdHctcm90YXRlOiA5MGRlZzsKICAgIH0KCiAgICAudHJhbnNmb3JtIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3KHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTsKICAgIH0KCiAgICAuXCFjdXJzb3ItcG9pbnRlciB7CiAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jdXJzb3ItcG9pbnRlciB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAucmVzaXplIHsKICAgICAgcmVzaXplOiBib3RoOwogICAgfQoKICAgIC5saXN0LWRpc2MgewogICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7CiAgICB9CgogICAgLmdyaWQtY29scy0xIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpOwogICAgfQoKICAgIC5ncmlkLWNvbHMtMiB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgIH0KCiAgICAuZ3JpZC1jb2xzLTMgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7CiAgICB9CgogICAgLmZsZXgtcm93IHsKICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIH0KCiAgICAuZmxleC1jb2wgewogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgfQoKICAgIC5pdGVtcy1zdGFydCB7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQoKICAgIC5pdGVtcy1jZW50ZXIgewogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQoKICAgIC5qdXN0aWZ5LW5vcm1hbCB7CiAgICAgIGp1c3RpZnktY29udGVudDogbm9ybWFsOwogICAgfQoKICAgIC5qdXN0aWZ5LWVuZCB7CiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICB9CgogICAgLmp1c3RpZnktY2VudGVyIHsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB9CgogICAgLlwhanVzdGlmeS1iZXR3ZWVuIHsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmp1c3RpZnktYmV0d2VlbiB7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIH0KCiAgICAuanVzdGlmeS1hcm91bmQgewogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgIH0KCiAgICAuZ2FwLTEgewogICAgICBnYXA6IDAuMjVyZW07CiAgICB9CgogICAgLmdhcC0xXC41IHsKICAgICAgZ2FwOiAwLjM3NXJlbTsKICAgIH0KCiAgICAuZ2FwLTEwIHsKICAgICAgZ2FwOiAyLjVyZW07CiAgICB9CgogICAgLmdhcC0xNCB7CiAgICAgIGdhcDogMy41cmVtOwogICAgfQoKICAgIC5nYXAtMiB7CiAgICAgIGdhcDogMC41cmVtOwogICAgfQoKICAgIC5nYXAtMyB7CiAgICAgIGdhcDogMC43NXJlbTsKICAgIH0KCiAgICAuZ2FwLTQgewogICAgICBnYXA6IDFyZW07CiAgICB9CgogICAgLmdhcC01IHsKICAgICAgZ2FwOiAxLjI1cmVtOwogICAgfQoKICAgIC5nYXAtNiB7CiAgICAgIGdhcDogMS41cmVtOwogICAgfQoKICAgIC5nYXAtOCB7CiAgICAgIGdhcDogMnJlbTsKICAgIH0KCiAgICAuc3BhY2UteC02PiA6bm90KFtoaWRkZW5dKX4gOm5vdChbaGlkZGVuXSkgewogICAgICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDsKICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMS41cmVtICogKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7CiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygxLjVyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTsKICAgIH0KCiAgICAuc2VsZi1jZW50ZXIgewogICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICB9CgogICAgLm92ZXJmbG93LWF1dG8gewogICAgICBvdmVyZmxvdzogYXV0bzsKICAgIH0KCiAgICAub3ZlcmZsb3ctaGlkZGVuIHsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAub3ZlcmZsb3cteS1hdXRvIHsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIH0KCiAgICAub3ZlcmZsb3cteS1zY3JvbGwgewogICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgICB9CgogICAgLnRydW5jYXRlIHsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgogICAgLndoaXRlc3BhY2Utbm9ybWFsIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIH0KCiAgICAud2hpdGVzcGFjZS1ub3dyYXAgewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQoKICAgIC5cIXdoaXRlc3BhY2UtYnJlYWstc3BhY2VzIHsKICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5icmVhay1hbGwgewogICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICB9CgogICAgLlwhcm91bmRlZC0yeGwgewogICAgICBib3JkZXItcmFkaXVzOiAxcmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcm91bmRlZC1sZyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXJvdW5kZWQtbWQgewogICAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXJvdW5kZWQtbm9uZSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFyb3VuZGVkLXhsIHsKICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5yb3VuZGVkIHsKICAgICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsKICAgIH0KCiAgICAucm91bmRlZC0yeGwgewogICAgICBib3JkZXItcmFkaXVzOiAxcmVtOwogICAgfQoKICAgIC5yb3VuZGVkLTN4bCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEuNXJlbTsKICAgIH0KCiAgICAucm91bmRlZC1cWzEwcHhcXSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICB9CgogICAgLnJvdW5kZWQtXFsxMnB4XF0gewogICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgfQoKICAgIC5yb3VuZGVkLVxbMXJlbVxdIHsKICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTsKICAgIH0KCiAgICAucm91bmRlZC1cWzhweFxdIHsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQoKICAgIC5yb3VuZGVkLWZ1bGwgewogICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICB9CgogICAgLnJvdW5kZWQtbGcgewogICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtbWQgewogICAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTsKICAgIH0KCiAgICAucm91bmRlZC1zbSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtOwogICAgfQoKICAgIC5yb3VuZGVkLXhsIHsKICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTsKICAgIH0KCiAgICAucm91bmRlZC1sLVxbMTJweFxdIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTJweDsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTJweDsKICAgIH0KCiAgICAucm91bmRlZC1sLWxnIHsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC41cmVtOwogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtbC14bCB7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuNzVyZW07CiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuNzVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtci0yeGwgewogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMXJlbTsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDFyZW07CiAgICB9CgogICAgLnJvdW5kZWQtci1sZyB7CiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjVyZW07CiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjVyZW07CiAgICB9CgogICAgLnJvdW5kZWQtdC0yeGwgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxcmVtOwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMXJlbTsKICAgIH0KCiAgICAucm91bmRlZC10LWxnIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC41cmVtOwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC41cmVtOwogICAgfQoKICAgIC5cIXJvdW5kZWQtdGwtMnhsIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXJvdW5kZWQtdHItMnhsIHsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDFyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFib3JkZXIgewogICAgICBib3JkZXItd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJvcmRlci0wIHsKICAgICAgYm9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYm9yZGVyLTIgewogICAgICBib3JkZXItd2lkdGg6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXIgewogICAgICBib3JkZXItd2lkdGg6IDFweDsKICAgIH0KCiAgICAuYm9yZGVyLTAgewogICAgICBib3JkZXItd2lkdGg6IDA7CiAgICB9CgogICAgLmJvcmRlci0yIHsKICAgICAgYm9yZGVyLXdpZHRoOiAycHg7CiAgICB9CgogICAgLmJvcmRlci00IHsKICAgICAgYm9yZGVyLXdpZHRoOiA0cHg7CiAgICB9CgogICAgLmJvcmRlci1cWzFweFxdIHsKICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICB9CgogICAgLlwhYm9yZGVyLWItMCB7CiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFib3JkZXItYi0yIHsKICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYm9yZGVyLXQgewogICAgICBib3JkZXItdG9wLXdpZHRoOiAxcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuYm9yZGVyLWIgewogICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7CiAgICB9CgogICAgLmJvcmRlci1iLTAgewogICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwOwogICAgfQoKICAgIC5ib3JkZXItYi0yIHsKICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4OwogICAgfQoKICAgIC5ib3JkZXItYi1cWzFweFxdIHsKICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OwogICAgfQoKICAgIC5ib3JkZXItbCB7CiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7CiAgICB9CgogICAgLmJvcmRlci1sLTIgewogICAgICBib3JkZXItbGVmdC13aWR0aDogMnB4OwogICAgfQoKICAgIC5ib3JkZXItbC00IHsKICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDsKICAgIH0KCiAgICAuYm9yZGVyLWwtXFsxcHhcXSB7CiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7CiAgICB9CgogICAgLmJvcmRlci1yLTIgewogICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDJweDsKICAgIH0KCiAgICAuYm9yZGVyLXQsCiAgICAuYm9yZGVyLXQtXFsxcHhcXSB7CiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsKICAgIH0KCiAgICAuXCFib3JkZXItc29saWQgewogICAgICBib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1zb2xpZCB7CiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7CiAgICB9CgogICAgLmJvcmRlci1kYXNoZWQgewogICAgICBib3JkZXItc3R5bGU6IGRhc2hlZDsKICAgIH0KCiAgICAuXCFib3JkZXItXFtcIzQzNDM0M1xdIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBib3JkZXItY29sb3I6IHJnYig2NyA2NyA2NyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFib3JkZXItXFtcI2IzYjNiMzIwXF0gewogICAgICBib3JkZXItY29sb3I6ICNiM2IzYjMyMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJvcmRlci1ibHVlLTcwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJvcmRlci1ncmF5LTIwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjM0IDIzNiAyNDAgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYm9yZGVyLWdyYXktMzAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBib3JkZXItY29sb3I6IHJnYigyMDggMjEzIDIyMSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFib3JkZXItcHJpbWFyeS0zMDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDEzMiAyMDIgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ib3JkZXItXFtcIzI5MzI0MlxdIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNDEgNTAgNjYgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItXFtcIzQzNDM0M1xdIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNjcgNjcgNjcgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItXFtcIzQ4NjE4NFxdIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNzIgOTcgMTMyIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLVxbXCM2Qjc4ODk2NlxdIHsKICAgICAgYm9yZGVyLWNvbG9yOiAjNmI3ODg5NjY7CiAgICB9CgogICAgLmJvcmRlci1cW1wjQjNCM0IzXF0gewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigxNzkgMTc5IDE3OSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1lcnJvci0zMDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyNTMgMTYyIDE1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1lcnJvci01MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyNDAgNjggNTYgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZXJyb3ItNjAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjE3IDQ1IDMyIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktMjAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjM0IDIzNiAyNDAgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZ3JheS0zMDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyMDggMjEzIDIyMSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTQwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDE1MiAxNjIgMTc5IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktNTAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMTAyIDExMiAxMzMgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZ3JheS02MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYig3MSA4NCAxMDMgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItZ3JheS03MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYig1MiA2NCA4NCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1ncmF5LTgwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDI5IDQxIDU3IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLWdyYXktOTAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMTYgMjQgNDAgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItcHJpbWFyeS0yNSB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDI0NSAyNTAgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktMzAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMTMyIDIwMiAyNTUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItcHJpbWFyeS01MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYig0NiAxNDQgMjUwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXByaW1hcnktNjAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjEgMTEyIDIzOSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1zZWNvbmRhcnktNTAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjU1IDY4IDUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItc2Vjb25kYXJ5LTYwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDIzMCA0NiA1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYm9yZGVyLXN1Y2Nlc3MtMjAwIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMTY2IDI0NCAxOTcgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItc3VjY2Vzcy0zMDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigxMDggMjMzIDE2NiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci1zdWNjZXNzLTUwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDE4IDE4MyAxMDYgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItc3VjY2Vzcy02MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigzIDE1MiA4NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJvcmRlci13YXJuaW5nLTMwMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgIGJvcmRlci1jb2xvcjogcmdiKDI1NCAyMDAgNzUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItd2FybmluZy01MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyNDcgMTQ0IDkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItd2FybmluZy02MDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyMjAgMTA0IDMgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ib3JkZXItd2hpdGUgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLlwhYm9yZGVyLWwtd2hpdGUgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmJvcmRlci1vcGFjaXR5LTAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAwOwogICAgfQoKICAgIC5ib3JkZXItb3BhY2l0eS0xMDAgewogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgfQoKICAgIC5ib3JkZXItb3BhY2l0eS0yMCB7CiAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDAuMjsKICAgIH0KCiAgICAuXCFiZy1ncmF5LTI1IHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIWJnLWdyYXktNTAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhYmctcHJpbWFyeS01MCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0OCAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFiZy1zdWNjZXNzLTUwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTggMTgzIDEwNiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5iZy1cW1wjMEYwRjNGXF0gewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNSAxNSA2MyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctXFtcIzBGMTQxRlxdIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTUgMjAgMzEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLVxbXCMxOTE5MUFGNVxdIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE5MTkxYWY1OwogICAgfQoKICAgIC5iZy1cW1wjMWMxYzIwXF0gewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyOCAyOCAzMiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctXFtcIzIzMjMyQTgwXF0gewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyMzJhODA7CiAgICB9CgogICAgLmJnLVxbXCMyRjJGNjRcXSB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ3IDQ3IDEwMCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctXFtcIzNCM0IzQjY2XF0gewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2IzYjNiNjY7CiAgICB9CgogICAgLmJnLVxbXCMzQjNCNzczM1xdIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNiM2I3NzMzOwogICAgfQoKICAgIC5iZy1cW1wjOTlDMkZGXF0gewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTMgMTk0IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctXFtcI0Y1RjdGRVxdIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1IDI0NyAyNTQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLWVycm9yLTEwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyMjggMjI2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1lcnJvci01MCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyNDMgMjQyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1lcnJvci02MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTcgNDUgMzIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLWVycm9yLTcwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4MCAzNSAyNCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZ3JheS0xMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDIgMjQ0IDI0NyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZ3JheS0yMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzQgMjM2IDI0MCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctZ3JheS0yNSB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1ncmF5LTMwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwOCAyMTMgMjIxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1ncmF5LTUwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5IDI1MCAyNTEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLWdyYXktNjAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzEgODQgMTAzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1ncmF5LTkwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2IDI0IDQwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1waW5rLTIwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MSAyMDcgMjMyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1wcmltYXJ5LTEwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwOSAyMzMgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1wcmltYXJ5LTI1IHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1IDI1MCAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXByaW1hcnktNTAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgMjQ4IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctcHJpbWFyeS02MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMSAxMTIgMjM5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1wcmltYXJ5LTcwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzIDkyIDIxMSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5LTEwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyMzAgMjEzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1zZWNvbmRhcnktNDAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDEwNSA0NiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctc2Vjb25kYXJ5LTUwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI0NCAyMzcgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXNlY29uZGFyeS02MDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzAgNDYgNSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctc3VjY2Vzcy0xMDAgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDkgMjUwIDIyMyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctc3VjY2Vzcy0yNSB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NiAyNTQgMjQ5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy1zdWNjZXNzLTUwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2IDI1MyAyNDMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXN1Y2Nlc3MtNjAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMyAxNTIgODUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXdhcm5pbmctMTAwIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU0IDI0MCAxOTkgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJnLXdhcm5pbmctMjUgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjUyIDI0NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctd2FybmluZy01MCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTAgMjM1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5iZy13YXJuaW5nLTYwMCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMCAxMDQgMyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYmctd2hpdGUgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuXCFiZy1jb250YWluIHsKICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmZpbGwtZ3JheS00MDAgewogICAgICBmaWxsOiAjOThhMmIzOwogICAgfQoKICAgIC5vYmplY3QtY29udGFpbiB7CiAgICAgIC1vLW9iamVjdC1maXQ6IGNvbnRhaW47CiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICB9CgogICAgLm9iamVjdC1jb3ZlciB7CiAgICAgIC1vLW9iamVjdC1maXQ6IGNvdmVyOwogICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIH0KCiAgICAuXCFwLTAgewogICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcC04IHsKICAgICAgcGFkZGluZzogMnJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wLTAgewogICAgICBwYWRkaW5nOiAwOwogICAgfQoKICAgIC5wLTEgewogICAgICBwYWRkaW5nOiAwLjI1cmVtOwogICAgfQoKICAgIC5wLTFcLjUgewogICAgICBwYWRkaW5nOiAwLjM3NXJlbTsKICAgIH0KCiAgICAucC0yIHsKICAgICAgcGFkZGluZzogMC41cmVtOwogICAgfQoKICAgIC5wLTJcLjUgewogICAgICBwYWRkaW5nOiAwLjYyNXJlbTsKICAgIH0KCiAgICAucC0zIHsKICAgICAgcGFkZGluZzogMC43NXJlbTsKICAgIH0KCiAgICAucC00IHsKICAgICAgcGFkZGluZzogMXJlbTsKICAgIH0KCiAgICAucC02IHsKICAgICAgcGFkZGluZzogMS41cmVtOwogICAgfQoKICAgIC5wLTggewogICAgICBwYWRkaW5nOiAycmVtOwogICAgfQoKICAgIC5cIXB4LTIgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCFweC0yXC41IHsKICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXB4LTQgewogICAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXB5LTBcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC4xMjVyZW0gIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDAuMTI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcHktNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnB4LTAgewogICAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICB9CgogICAgLnB4LTEgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07CiAgICB9CgogICAgLnB4LTFcLjUgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuMzc1cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjM3NXJlbTsKICAgIH0KCiAgICAucHgtMTAgewogICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTsKICAgICAgcGFkZGluZy1yaWdodDogMi41cmVtOwogICAgfQoKICAgIC5weC0xMiB7CiAgICAgIHBhZGRpbmctbGVmdDogM3JlbTsKICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsKICAgIH0KCiAgICAucHgtMiB7CiAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07CiAgICB9CgogICAgLnB4LTJcLjUgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTsKICAgIH0KCiAgICAucHgtMjggewogICAgICBwYWRkaW5nLWxlZnQ6IDdyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDdyZW07CiAgICB9CgogICAgLnB4LTMgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07CiAgICB9CgogICAgLnB4LTNcLjUgewogICAgICBwYWRkaW5nLWxlZnQ6IDAuODc1cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjg3NXJlbTsKICAgIH0KCiAgICAucHgtNCB7CiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTsKICAgICAgcGFkZGluZy1yaWdodDogMXJlbTsKICAgIH0KCiAgICAucHgtNSB7CiAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTsKICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTsKICAgIH0KCiAgICAucHgtNiB7CiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOwogICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07CiAgICB9CgogICAgLnB4LTggewogICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07CiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07CiAgICB9CgogICAgLnB5LTAgewogICAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgICAgcGFkZGluZy10b3A6IDA7CiAgICB9CgogICAgLnB5LTBcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC4xMjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAwLjEyNXJlbTsKICAgIH0KCiAgICAucHktMSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtOwogICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTsKICAgIH0KCiAgICAucHktMVwuNSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjM3NXJlbTsKICAgICAgcGFkZGluZy10b3A6IDAuMzc1cmVtOwogICAgfQoKICAgIC5weS0xMCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07CiAgICB9CgogICAgLnB5LTEyIHsKICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07CiAgICAgIHBhZGRpbmctdG9wOiAzcmVtOwogICAgfQoKICAgIC5weS0xNiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtOwogICAgICBwYWRkaW5nLXRvcDogNHJlbTsKICAgIH0KCiAgICAucHktMiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07CiAgICB9CgogICAgLnB5LTJcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAwLjYyNXJlbTsKICAgIH0KCiAgICAucHktMjAgewogICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsKICAgICAgcGFkZGluZy10b3A6IDVyZW07CiAgICB9CgogICAgLnB5LTI0IHsKICAgICAgcGFkZGluZy1ib3R0b206IDZyZW07CiAgICAgIHBhZGRpbmctdG9wOiA2cmVtOwogICAgfQoKICAgIC5weS0yOCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA3cmVtOwogICAgICBwYWRkaW5nLXRvcDogN3JlbTsKICAgIH0KCiAgICAucHktMyB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtOwogICAgICBwYWRkaW5nLXRvcDogMC43NXJlbTsKICAgIH0KCiAgICAucHktNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOwogICAgICBwYWRkaW5nLXRvcDogMXJlbTsKICAgIH0KCiAgICAucHktNSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtOwogICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIH0KCiAgICAucHktNiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07CiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07CiAgICB9CgogICAgLnB5LTggewogICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsKICAgICAgcGFkZGluZy10b3A6IDJyZW07CiAgICB9CgogICAgLlwhcGItMyB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcGItNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcHItMlwuNSB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhcHQtMlwuNSB7CiAgICAgIHBhZGRpbmctdG9wOiAwLjYyNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXB0LTUgewogICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wYi0wIHsKICAgICAgcGFkZGluZy1ib3R0b206IDA7CiAgICB9CgogICAgLnBiLTFcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC4zNzVyZW07CiAgICB9CgogICAgLnBiLTEwIHsKICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsKICAgIH0KCiAgICAucGItMTIgewogICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsKICAgIH0KCiAgICAucGItMTYgewogICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTsKICAgIH0KCiAgICAucGItMiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07CiAgICB9CgogICAgLnBiLTJcLjUgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07CiAgICB9CgogICAgLnBiLTI0IHsKICAgICAgcGFkZGluZy1ib3R0b206IDZyZW07CiAgICB9CgogICAgLnBiLTMgewogICAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTsKICAgIH0KCiAgICAucGItNCB7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOwogICAgfQoKICAgIC5wYi01IHsKICAgICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07CiAgICB9CgogICAgLnBiLTYgewogICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtOwogICAgfQoKICAgIC5wYi04IHsKICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07CiAgICB9CgogICAgLnBsLTEyIHsKICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtOwogICAgfQoKICAgIC5wbC0yXC41IHsKICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsKICAgIH0KCiAgICAucGwtM1wuNSB7CiAgICAgIHBhZGRpbmctbGVmdDogMC44NzVyZW07CiAgICB9CgogICAgLnBsLTQgewogICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07CiAgICB9CgogICAgLnBsLTkgewogICAgICBwYWRkaW5nLWxlZnQ6IDIuMjVyZW07CiAgICB9CgogICAgLnByLTEgewogICAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtOwogICAgfQoKICAgIC5wci0xXC41IHsKICAgICAgcGFkZGluZy1yaWdodDogMC4zNzVyZW07CiAgICB9CgogICAgLnByLTE2IHsKICAgICAgcGFkZGluZy1yaWdodDogNHJlbTsKICAgIH0KCiAgICAucHItMiB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsKICAgIH0KCiAgICAucHItMyB7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07CiAgICB9CgogICAgLnB0LTAgewogICAgICBwYWRkaW5nLXRvcDogMDsKICAgIH0KCiAgICAucHQtMTAgewogICAgICBwYWRkaW5nLXRvcDogMi41cmVtOwogICAgfQoKICAgIC5wdC0xMiB7CiAgICAgIHBhZGRpbmctdG9wOiAzcmVtOwogICAgfQoKICAgIC5wdC0xNiB7CiAgICAgIHBhZGRpbmctdG9wOiA0cmVtOwogICAgfQoKICAgIC5wdC0yIHsKICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTsKICAgIH0KCiAgICAucHQtMlwuNSB7CiAgICAgIHBhZGRpbmctdG9wOiAwLjYyNXJlbTsKICAgIH0KCiAgICAucHQtMjAgewogICAgICBwYWRkaW5nLXRvcDogNXJlbTsKICAgIH0KCiAgICAucHQtMjQgewogICAgICBwYWRkaW5nLXRvcDogNnJlbTsKICAgIH0KCiAgICAucHQtMyB7CiAgICAgIHBhZGRpbmctdG9wOiAwLjc1cmVtOwogICAgfQoKICAgIC5wdC0zXC41IHsKICAgICAgcGFkZGluZy10b3A6IDAuODc1cmVtOwogICAgfQoKICAgIC5wdC00IHsKICAgICAgcGFkZGluZy10b3A6IDFyZW07CiAgICB9CgogICAgLnB0LTUgewogICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIH0KCiAgICAucHQtNiB7CiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07CiAgICB9CgogICAgLnB0LTggewogICAgICBwYWRkaW5nLXRvcDogMnJlbTsKICAgIH0KCiAgICAuXCF0ZXh0LWxlZnQgewogICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnRleHQtbGVmdCB7CiAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CgogICAgLlwhdGV4dC1jZW50ZXIgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1jZW50ZXIgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLnRleHQtcmlnaHQgewogICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIH0KCiAgICAuZm9udC1pbnRlciB7CiAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgIH0KCiAgICAudGV4dC1cWzE0NHB4XF0gewogICAgICBmb250LXNpemU6IDE0NHB4OwogICAgfQoKICAgIC50ZXh0LVxbMTRweFxdIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQoKICAgIC50ZXh0LVxbMjBweFxdIHsKICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQoKICAgIC50ZXh0LXRleHQtbGcgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICB9CgogICAgLmZvbnQtXFs2MDBcXSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLmZvbnQtYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CgogICAgLmZvbnQtbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuZm9udC1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLmNhcGl0YWxpemUgewogICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIH0KCiAgICAuXCFsZWFkaW5nLTUgewogICAgICBsaW5lLWhlaWdodDogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5sZWFkaW5nLVxbMTMwcHhcXSB7CiAgICAgIGxpbmUtaGVpZ2h0OiAxMzBweDsKICAgIH0KCiAgICAudHJhY2tpbmctbm9ybWFsIHsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7CiAgICB9CgogICAgLnRyYWNraW5nLXRpZ2h0IHsKICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgfQoKICAgIC5cIXRleHQtXFtcIzYyNjI2MlxdIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYig5OCA5OCA5OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdGV4dC1ibHVlLTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCF0ZXh0LWdyYXktMjUgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCF0ZXh0LWdyYXktNTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYigxMDIgMTEyIDEzMyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdGV4dC1ncmF5LTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IoNTIgNjQgODQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtZ3JheS04MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogcmdiKDI5IDQxIDU3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuXCF0ZXh0LXByaW1hcnktODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYigyNCA3MyAxNjkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtcmVkLTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiByZ2IoMTg1IDI4IDI4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAudGV4dC1cW1wjMDMwMzNBXF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigzIDMgNTggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1cW1wjM0I0ODU4XF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYig1OSA3MiA4OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LVxbXCM1OTZCOTJcXSB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDg5IDEwNyAxNDYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1cW1wjOTBBMEJCXF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxNDQgMTYwIDE4NyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LVxbXCNCMkJFRkFcXSB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDE3OCAxOTAgMjUwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtXFtcI0M4RDFGRlxdIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjAwIDIwOSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1cW1wjQ0NDQ0NDXF0gewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyMDQgMjA0IDIwNCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LVxbXCNDREQ0RTBcXSB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIwNSAyMTIgMjI0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItNTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjQwIDY4IDU2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItNjAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjE3IDQ1IDMyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItNzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTgwIDM1IDI0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZXJyb3ItOTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTIyIDM5IDI2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS0xMDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNDIgMjQ0IDI0NyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LWdyYXktMzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjA4IDIxMyAyMjEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTQwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDE1MiAxNjIgMTc5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS01MCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS01MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxMDIgMTEyIDEzMyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LWdyYXktNjAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoNzEgODQgMTAzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtZ3JheS03MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYig1MiA2NCA4NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LWdyYXktODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjkgNDEgNTcgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1ncmF5LTkwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDE2IDI0IDQwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcGluay05NTAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYig4MCA3IDM2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS0yMDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxNzggMjIxIDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktMjUgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNDUgMjUwIDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktMzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTMyIDIwMiAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTUwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjM5IDI0OCAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTUwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDQ2IDE0NCAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTYwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIxIDExMiAyMzkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1wcmltYXJ5LTcwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIzIDkyIDIxMSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXByaW1hcnktODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjQgNzMgMTY5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcHJpbWFyeS05MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNSA2NSAxMzMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1yZWQtNTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtcmVkLTYwMCB7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDIyMCAzOCAzOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXJlZC04MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxNTMgMjcgMjcgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAudGV4dC1zZWNvbmRhcnktNDAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjU1IDEwNSA0NiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXNlY29uZGFyeS03MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxODggMjcgNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtNzAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoNSA5NiA1OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXN1Y2Nlc3MtOTAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoNSA3OSA0OSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmctNjAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjIwIDEwNCAzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtd2FybmluZy03MDAgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxODEgNzEgOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC50ZXh0LXdhcm5pbmctODAwIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMTQ3IDU1IDEzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLnRleHQtd2hpdGUgewogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5saW5lLXRocm91Z2ggewogICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogbGluZS10aHJvdWdoOwogICAgfQoKICAgIC5vcGFjaXR5LTMwIHsKICAgICAgb3BhY2l0eTogMC4zOwogICAgfQoKICAgIC5vcGFjaXR5LTY1IHsKICAgICAgb3BhY2l0eTogMC42NTsKICAgIH0KCiAgICAuXCFzaGFkb3ctbGcgewogICAgICAtLXR3LXNoYWRvdzogMHB4IDEycHggMTZweCAtNHB4IHJnYmEoMTYsIDI0LCA0MCwgMC4wOCksCiAgICAgICAgMHB4IDRweCA2cHggLTJweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDMpICFpbXBvcnRhbnQ7CiAgICAgIC0tdHctc2hhZG93LWNvbG9yZWQ6IDBweCAxMnB4IDE2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLAogICAgICAgIDBweCA0cHggNnB4IC0ycHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXNoYWRvdy1sZywKICAgIC5cIXNoYWRvdy14cyB7CiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSwKICAgICAgICB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXNoYWRvdy14cyB7CiAgICAgIC0tdHctc2hhZG93OiAwcHggMXB4IDJweCAwcHggcmdiYSgxNiwgMjQsIDQwLCAwLjA1KSAhaW1wb3J0YW50OwogICAgICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwcHggMXB4IDJweCAwcHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zaGFkb3cgewogICAgICAtLXR3LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEpLAogICAgICAgIDAgMXB4IDJweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAxcHggM3B4IDAgdmFyKC0tdHctc2hhZG93LWNvbG9yKSwKICAgICAgICAwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpOwogICAgfQoKICAgIC5zaGFkb3csCiAgICAuc2hhZG93LWxnIHsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLAogICAgICAgIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpOwogICAgfQoKICAgIC5zaGFkb3ctbGcgewogICAgICAtLXR3LXNoYWRvdzogMHB4IDEycHggMTZweCAtNHB4IHJnYmEoMTYsIDI0LCA0MCwgMC4wOCksCiAgICAgICAgMHB4IDRweCA2cHggLTJweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDMpOwogICAgICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwcHggMTJweCAxNnB4IC00cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSwKICAgICAgICAwcHggNHB4IDZweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7CiAgICB9CgogICAgLnNoYWRvdy1tZCB7CiAgICAgIC0tdHctc2hhZG93OiAwcHggNHB4IDhweCAtMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4xKSwKICAgICAgICAwcHggMnB4IDRweCAtMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4wNik7CiAgICAgIC0tdHctc2hhZG93LWNvbG9yZWQ6IDBweCA0cHggOHB4IC0ycHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSwKICAgICAgICAwcHggMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7CiAgICB9CgogICAgLnNoYWRvdy1tZCwKICAgIC5zaGFkb3cteHMgewogICAgICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksCiAgICAgICAgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7CiAgICB9CgogICAgLnNoYWRvdy14cyB7CiAgICAgIC0tdHctc2hhZG93OiAwcHggMXB4IDJweCAwcHggcmdiYSgxNiwgMjQsIDQwLCAwLjA1KTsKICAgICAgLS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDFweCAycHggMHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7CiAgICB9CgogICAgLm91dGxpbmUtbm9uZSB7CiAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgIH0KCiAgICAub3V0bGluZSB7CiAgICAgIG91dGxpbmUtc3R5bGU6IHNvbGlkOwogICAgfQoKICAgIC5vdXRsaW5lLTAgewogICAgICBvdXRsaW5lLXdpZHRoOiAwOwogICAgfQoKICAgIC5ibHVyIHsKICAgICAgLS10dy1ibHVyOiBibHVyKDhweCk7CiAgICB9CgogICAgLmJsdXIsCiAgICAuZmlsdGVyIHsKICAgICAgZmlsdGVyOiB2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpOwogICAgfQoKICAgIC5iYWNrZHJvcC1maWx0ZXIgewogICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogdmFyKC0tdHctYmFja2Ryb3AtYmx1cikgdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcykgdmFyKC0tdHctYmFja2Ryb3AtY29udHJhc3QpIHZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSkgdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSkgdmFyKC0tdHctYmFja2Ryb3AtaW52ZXJ0KSB2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5KSB2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSkgdmFyKC0tdHctYmFja2Ryb3Atc2VwaWEpOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKTsKICAgIH0KCiAgICAuXCF0cmFuc2l0aW9uLWFsbCB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbCAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC50cmFuc2l0aW9uIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsCiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwKICAgICAgICBmaWx0ZXIsIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLAogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvciwgZmlsbCwgc3Ryb2tlLCBvcGFjaXR5LCBib3gtc2hhZG93LCB0cmFuc2Zvcm0sCiAgICAgICAgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXI7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsCiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwKICAgICAgICBmaWx0ZXIsIGJhY2tkcm9wLWZpbHRlciwgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgfQoKICAgIC50cmFuc2l0aW9uLWFsbCB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgfQoKICAgIC5kdXJhdGlvbi0zMDAgewogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzOwogICAgfQoKICAgIC5kaXNwbGF5LW1kLXNlbWlib2xkIHsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KCiAgICAuZGlzcGxheS1tZC1ib2xkLAogICAgLmRpc3BsYXktbWQtc2VtaWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMzZweDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjcycHg7CiAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4OwogICAgfQoKICAgIC5kaXNwbGF5LW1kLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC5kaXNwbGF5LXNtLW1lZGl1bSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLmRpc3BsYXktc20tbWVkaXVtLAogICAgLmRpc3BsYXktc20tc2VtaWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7CiAgICB9CgogICAgLmRpc3BsYXktc20tc2VtaWJvbGQgewogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQoKICAgIC5cIWRpc3BsYXktc20tYm9sZCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhZGlzcGxheS1zbS1ib2xkLAogICAgLmRpc3BsYXktc20tYm9sZCB7CiAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC5kaXNwbGF5LXNtLWJvbGQgewogICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgIH0KCiAgICAuZGlzcGxheS14cy1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLmRpc3BsYXkteHMtYm9sZCwKICAgIC5kaXNwbGF5LXhzLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgfQoKICAgIC5kaXNwbGF5LXhzLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LXhsLXJlZ3VsYXIgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgfQoKICAgIC50ZXh0LXhsLW1lZGl1bSwKICAgIC50ZXh0LXhsLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICB9CgogICAgLnRleHQteGwtbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAudGV4dC14bC1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQteGwtYm9sZCwKICAgIC50ZXh0LXhsLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgfQoKICAgIC50ZXh0LXhsLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LWxnLXJlZ3VsYXIgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgfQoKICAgIC50ZXh0LWxnLW1lZGl1bSwKICAgIC50ZXh0LWxnLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB9CgogICAgLnRleHQtbGctbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAudGV4dC1sZy1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQtbGctYm9sZCwKICAgIC50ZXh0LWxnLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgfQoKICAgIC50ZXh0LWxnLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LW1kLXJlZ3VsYXIgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgfQoKICAgIC50ZXh0LW1kLW1lZGl1bSwKICAgIC50ZXh0LW1kLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICB9CgogICAgLnRleHQtbWQtbWVkaXVtIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAudGV4dC1tZC1zZW1pYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQtbWQtYm9sZCwKICAgIC50ZXh0LW1kLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgfQoKICAgIC50ZXh0LW1kLWJvbGQgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC50ZXh0LXNtLXJlZ3VsYXIgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CgogICAgLlwhdGV4dC1zbS1tZWRpdW0gewogICAgICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtc20tbWVkaXVtLAogICAgLnRleHQtc20tbWVkaXVtIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnRleHQtc20tbWVkaXVtIHsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CgogICAgLlwhdGV4dC1zbS1zZW1pYm9sZCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLlwhdGV4dC1zbS1zZW1pYm9sZCwKICAgIC50ZXh0LXNtLXNlbWlib2xkIHsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgLnRleHQtc20tc2VtaWJvbGQgewogICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIH0KCiAgICAuXCF0ZXh0LXNtLWJvbGQgewogICAgICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5cIXRleHQtc20tYm9sZCwKICAgIC50ZXh0LXNtLWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIH0KCiAgICAudGV4dC1zbS1ib2xkIHsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CgogICAgLnRleHQteHMtcmVndWxhciB7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICB9CgogICAgLnRleHQteHMtbWVkaXVtLAogICAgLnRleHQteHMtcmVndWxhciB7CiAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBsaW5lLWhlaWdodDogMThweDsKICAgIH0KCiAgICAudGV4dC14cy1tZWRpdW0gewogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC50ZXh0LXhzLXNlbWlib2xkIHsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KCiAgICAudGV4dC14cy1ib2xkLAogICAgLnRleHQteHMtc2VtaWJvbGQgewogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICB9CgogICAgLnRleHQteHMtYm9sZCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CgogICAgYm9keSB7CiAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgIH0KCiAgICAuYnRuIHsKICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtOwogICAgICBwYWRkaW5nOiAwLjYyNXJlbSAycmVtOwogICAgfQoKICAgIC5idG4tZXJyb3ItZmlsbGVkIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTgwIDM1IDI0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDI1NSAyNTEgMjUwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmJ0bi1lcnJvci1lbGV2YXRlZCB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyMjggMjI2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7CiAgICAgIC0tdHctdGV4dC1vcGFjaXR5OiAxOwogICAgICBjb2xvcjogcmdiKDEyMiAzOSAyNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5idG4tcHJpbWFyeS1maWxsZWQgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMyA5MiAyMTEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICAgIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiByZ2IoMjU1IDI1MSAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYnRuLXByaW1hcnktZWxldmF0ZWQgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgMjQ4IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTsKICAgICAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigyNSA2NSAxMzMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTsKICAgIH0KCiAgICAuYnRuLWRlZmF1bHQtb3V0bGluZSB7CiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7CiAgICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOwogICAgICBib3JkZXItY29sb3I6IHJnYigyMDggMjEzIDIyMSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgICAtLXR3LXRleHQtb3BhY2l0eTogMTsKICAgICAgY29sb3I6IHJnYigxNiAyNCA0MCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpOwogICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICB9CgogICAgLmlucHV0QnRuIHsKICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuNXJlbTsKICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuNXJlbTsKICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICBtYXJnaW4tdG9wOiAwLjVyZW07CiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtOwogICAgfQoKICAgIC50ZXh0LWdyYWRpYW50IHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywKICAgICAgICAgICNmZmYgMzAuNSUsCiAgICAgICAgICAjYzhjOGM4IDU3LjUlLAogICAgICAgICAgI2ZmZiA4My41JSk7CiAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICB9CgogICAgLnRleHQtZ3JhZGlhbnQsCiAgICAudGl0bGUtZ3JhZGllbnQgewogICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgLnRpdGxlLWdyYWRpZW50IHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2M4ZDFmZiwgI2RmZTRmZiA0OC41JSwgI2M4ZDFmZik7CiAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDE5MjBweCkgewogICAgICAudi1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogODIuNXJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIC52LWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogODIuNXJlbSAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnYtYnRuIC52LWJ0bl9fY29udGVudCB7CiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7CiAgICB9CgogICAgLm1hdGVyaWFsLXN5bWJvbHMtcm91bmRlZCB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgZm9udC1mYW1pbHk6IE1hdGVyaWFsIFN5bWJvbHMgUm91bmRlZDsKICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICJ3Z2h0IiAzMDA7CiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB9CgogICAgLnYtdGFiLnYtdGFiLnYtYnRuIHsKICAgICAgbWluLXdpZHRoOiAtbW96LWZpdC1jb250ZW50ICFpbXBvcnRhbnQ7CiAgICAgIG1pbi13aWR0aDogZml0LWNvbnRlbnQgIWltcG9ydGFudDsKICAgIH0KCiAgICBpbnB1dFt0eXBlPSJudW1iZXIiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwKICAgIGlucHV0W3R5cGU9Im51bWJlciJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHsKICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICBtYXJnaW46IDA7CiAgICB9CgogICAgLmFmdGVyXDpoaWRkZW46YWZ0ZXIgewogICAgICBjb250ZW50OiB2YXIoLS10dy1jb250ZW50KTsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAuaG92ZXJcOlwhYm9yZGVyLXByaW1hcnktNjAwOmhvdmVyIHsKICAgICAgLS10dy1ib3JkZXItb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBib3JkZXItY29sb3I6IHJnYigyMSAxMTIgMjM5IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6XCFiZy1cW1wjMjMyMzJBQjJcXTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzIzMmFiMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6XCFiZy1cW1wjM0IzQjNCNjZcXTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjNiM2I2NiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6XCFiZy1ncmF5LTMwMDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA4IDIxMyAyMjEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaG92ZXJcOlwhYmctZ3JheS01MDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5IDI1MCAyNTEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaG92ZXJcOlwhYmctcHJpbWFyeS0xMDA6aG92ZXIgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwOSAyMzMgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmhvdmVyXDpcIWJnLXNsYXRlLTIwMDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI2IDIzMiAyNDAgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuaG92ZXJcOlwhYmctdHJhbnNwYXJlbnQ6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6YmctZ3JheS01MDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSAyNTAgMjUxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ob3Zlclw6YmctcHJpbWFyeS01MDpob3ZlciB7CiAgICAgIC0tdHctYmctb3BhY2l0eTogMTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSAyNDggMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ob3Zlclw6YmctcHJpbWFyeS02MDA6aG92ZXIgewogICAgICAtLXR3LWJnLW9wYWNpdHk6IDE7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMSAxMTIgMjM5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpOwogICAgfQoKICAgIC5ob3Zlclw6Ymctc2xhdGUtMTAwOmhvdmVyIHsKICAgICAgLS10dy1iZy1vcGFjaXR5OiAxOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQxIDI0NSAyNDkgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7CiAgICB9CgogICAgLmhvdmVyXDpmaWxsLWdyYXktNjAwOmhvdmVyIHsKICAgICAgZmlsbDogIzQ3NTQ2NzsKICAgIH0KCiAgICAuaG92ZXJcOlwhdGV4dC1jdXJyZW50OmhvdmVyIHsKICAgICAgY29sb3I6IGN1cnJlbnRDb2xvciAhaW1wb3J0YW50OwogICAgfQoKICAgIC5ob3Zlclw6XCF0ZXh0LWdyYXktODAwOmhvdmVyIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYigyOSA0MSA1NyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmdyb3VwOmhvdmVyIC5ncm91cC1ob3Zlclw6XCF0ZXh0LXdoaXRlIHsKICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7CiAgICAgIC5zbVw6aC1cWzI4OHB4XF0gewogICAgICAgIGhlaWdodDogMjg4cHg7CiAgICAgIH0KCiAgICAgIC5zbVw6dy1cWzUwMHB4XF0gewogICAgICAgIHdpZHRoOiA1MDBweDsKICAgICAgfQoKICAgICAgLnNtXDp3LWF1dG8gewogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICAuc21cOnctZml0IHsKICAgICAgICB3aWR0aDogLW1vei1maXQtY29udGVudDsKICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIC5zbVw6bWF4LXctZml0IHsKICAgICAgICBtYXgtd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDsKICAgICAgfQoKICAgICAgLnNtXDpncmlkLWNvbHMtMiB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAuc21cOmdyaWQtY29scy0zIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgIH0KCiAgICAgIC5zbVw6ZmxleC1yb3cgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgIC5zbVw6dGV4dC14bC1ib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIC5zbVw6dGV4dC1zbS1yZWd1bGFyIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgLm1kXDpyZWxhdGl2ZSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubWRcOlwhb3JkZXItMSB7CiAgICAgICAgb3JkZXI6IDEgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW9yZGVyLTIgewogICAgICAgIG9yZGVyOiAyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6b3JkZXItMSB7CiAgICAgICAgb3JkZXI6IDE7CiAgICAgIH0KCiAgICAgIC5tZFw6b3JkZXItMiB7CiAgICAgICAgb3JkZXI6IDI7CiAgICAgIH0KCiAgICAgIC5tZFw6Y29sLXNwYW4tMSB7CiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMSAvIHNwYW4gMTsKICAgICAgfQoKICAgICAgLm1kXDpcIW14LTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFteC1hdXRvIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOm15LTE2IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cmVtOwogICAgICAgIG1hcmdpbi10b3A6IDRyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXktMjQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDZyZW07CiAgICAgICAgbWFyZ2luLXRvcDogNnJlbTsKICAgICAgfQoKICAgICAgLm1kXDpcIW1iLTI4IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA3cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFtdC0wIHsKICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFtdC0xMiB7CiAgICAgICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhbXQtMTYgewogICAgICAgIG1hcmdpbi10b3A6IDRyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LTIgewogICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhbXQtMjAgewogICAgICAgIG1hcmdpbi10b3A6IDVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LTQgewogICAgICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LTUgewogICAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIW10LTYgewogICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhbXQtOCB7CiAgICAgICAgbWFyZ2luLXRvcDogMnJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhbXQtXFstODBweFxdIHsKICAgICAgICBtYXJnaW4tdG9wOiAtODBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOm10LTAgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtMTAgewogICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDptdC0yMCB7CiAgICAgICAgbWFyZ2luLXRvcDogNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDptdC0yNCB7CiAgICAgICAgbWFyZ2luLXRvcDogNnJlbTsKICAgICAgfQoKICAgICAgLm1kXDptdC0zIHsKICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOwogICAgICB9CgogICAgICAubWRcOm10LTMyIHsKICAgICAgICBtYXJnaW4tdG9wOiA4cmVtOwogICAgICB9CgogICAgICAubWRcOm10LTQgewogICAgICAgIG1hcmdpbi10b3A6IDFyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtNSB7CiAgICAgICAgbWFyZ2luLXRvcDogMS4yNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDptdC02IHsKICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6bXQtOCB7CiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgICAgfQoKICAgICAgLm1kXDptdC1cWy0xMnJlbVxdIHsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6XCFibG9jayB7CiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpibG9jayB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5tZFw6ZmxleCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLm1kXDpcIWhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLm1kXDpcIWgtXFs2MHB4XF0gewogICAgICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOmgtXFsxMDBweFxdIHsKICAgICAgICBoZWlnaHQ6IDEwMHB4OwogICAgICB9CgogICAgICAubWRcOmgtXFsyMDBweFxdIHsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICB9CgogICAgICAubWRcOmgtXFs0MDBweFxdIHsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICB9CgogICAgICAubWRcOmgtXFs4MDBweFxdIHsKICAgICAgICBoZWlnaHQ6IDgwMHB4OwogICAgICB9CgogICAgICAubWRcOmgtXFs5MHB4XF0gewogICAgICAgIGhlaWdodDogOTBweDsKICAgICAgfQoKICAgICAgLm1kXDpcIXctMTAgewogICAgICAgIHdpZHRoOiAyLjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXctXFsyMDBweFxdIHsKICAgICAgICB3aWR0aDogMjAwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXctZml0IHsKICAgICAgICB3aWR0aDogLW1vei1maXQtY29udGVudCAhaW1wb3J0YW50OwogICAgICAgIHdpZHRoOiBmaXQtY29udGVudCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOnctMVwvMiB7CiAgICAgICAgd2lkdGg6IDUwJTsKICAgICAgfQoKICAgICAgLm1kXDp3LTFcLzMgewogICAgICAgIHdpZHRoOiAzMy4zMzMzMzMlOwogICAgICB9CgogICAgICAubWRcOnctMlwvMyB7CiAgICAgICAgd2lkdGg6IDY2LjY2NjY2NyU7CiAgICAgIH0KCiAgICAgIC5tZFw6dy0yXC80IHsKICAgICAgICB3aWR0aDogNTAlOwogICAgICB9CgogICAgICAubWRcOnctXFsxMDBweFxdIHsKICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1cWzMwMHB4XF0gewogICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLm1kXDp3LVxbNDAwcHhcXSB7CiAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICB9CgogICAgICAubWRcOnctXFs1MDBweFxdIHsKICAgICAgICB3aWR0aDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1cWzcwXCVcXSB7CiAgICAgICAgd2lkdGg6IDcwJTsKICAgICAgfQoKICAgICAgLm1kXDp3LVxbNzVcJVxdIHsKICAgICAgICB3aWR0aDogNzUlOwogICAgICB9CgogICAgICAubWRcOnctXFs5MHB4XF0gewogICAgICAgIHdpZHRoOiA5MHB4OwogICAgICB9CgogICAgICAubWRcOnctXFs5NzBweFxdIHsKICAgICAgICB3aWR0aDogOTcwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6dy1hdXRvIHsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQoKICAgICAgLm1kXDp3LWZpdCB7CiAgICAgICAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50OwogICAgICB9CgogICAgICAubWRcOnctZnVsbCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tZFw6bWluLXctXFsyOTZweFxdIHsKICAgICAgICBtaW4td2lkdGg6IDI5NnB4OwogICAgICB9CgogICAgICAubWRcOm1heC13LVxbNjAxcHhcXSB7CiAgICAgICAgbWF4LXdpZHRoOiA2MDFweDsKICAgICAgfQoKICAgICAgLm1kXDpncmlkLWNvbHMtMiB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAubWRcOmdyaWQtY29scy0zIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgIH0KCiAgICAgIC5tZFw6Z3JpZC1jb2xzLTUgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgfQoKICAgICAgLm1kXDpmbGV4LXJvdyB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQoKICAgICAgLm1kXDppdGVtcy1jZW50ZXIgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5tZFw6anVzdGlmeS1iZXR3ZWVuIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5tZFw6XCFnYXAtMTYgewogICAgICAgIGdhcDogNHJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhZ2FwLTYgewogICAgICAgIGdhcDogMS41cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6Z2FwLTAgewogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgLm1kXDpnYXAtMTAgewogICAgICAgIGdhcDogMi41cmVtOwogICAgICB9CgogICAgICAubWRcOmdhcC0xNiB7CiAgICAgICAgZ2FwOiA0cmVtOwogICAgICB9CgogICAgICAubWRcOmdhcC0yMCB7CiAgICAgICAgZ2FwOiA1cmVtOwogICAgICB9CgogICAgICAubWRcOmdhcC01IHsKICAgICAgICBnYXA6IDEuMjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6Z2FwLTYgewogICAgICAgIGdhcDogMS41cmVtOwogICAgICB9CgogICAgICAubWRcOmdhcC04IHsKICAgICAgICBnYXA6IDJyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6XCFyb3VuZGVkLTJ4bCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcm91bmRlZC0zeGwgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcm91bmRlZC14bCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOnJvdW5kZWQtMnhsIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtOwogICAgICB9CgogICAgICAubWRcOlwhYm9yZGVyIHsKICAgICAgICBib3JkZXItd2lkdGg6IDFweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOmJvcmRlciB7CiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6cC0xNiB7CiAgICAgICAgcGFkZGluZzogNHJlbTsKICAgICAgfQoKICAgICAgLm1kXDpwLTggewogICAgICAgIHBhZGRpbmc6IDJyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweC0wIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweC0xNiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNHJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHgtNiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXB4LTggewogICAgICAgIHBhZGRpbmctbGVmdDogMnJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXB4LVxbNzJweFxdIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDcycHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA3MnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweC1cWzg4cHhcXSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4OHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogODhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHktMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHktMTYgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDRyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXB5LTIwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiA1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFweS0yNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDZyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogNnJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHktNCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHktNDAgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctdG9wOiAxMHJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHktNSB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOnB4LTE2IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogNHJlbTsKICAgICAgfQoKICAgICAgLm1kXDpweC0yMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cmVtOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHgtMjQgewogICAgICAgIHBhZGRpbmctbGVmdDogNnJlbTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cmVtOwogICAgICB9CgogICAgICAubWRcOnB4LTQgewogICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOwogICAgICB9CgogICAgICAubWRcOnB4LTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsKICAgICAgfQoKICAgICAgLm1kXDpweC04IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTsKICAgICAgfQoKICAgICAgLm1kXDpweS0xMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsKICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtOwogICAgICB9CgogICAgICAubWRcOnB5LTE2IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTsKICAgICAgICBwYWRkaW5nLXRvcDogNHJlbTsKICAgICAgfQoKICAgICAgLm1kXDpweS0yMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07CiAgICAgICAgcGFkZGluZy10b3A6IDVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHktMjQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA2cmVtOwogICAgICAgIHBhZGRpbmctdG9wOiA2cmVtOwogICAgICB9CgogICAgICAubWRcOnB5LTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOwogICAgICAgIHBhZGRpbmctdG9wOiAxcmVtOwogICAgICB9CgogICAgICAubWRcOnB5LVxbNzJweFxdIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNzJweDsKICAgICAgICBwYWRkaW5nLXRvcDogNzJweDsKICAgICAgfQoKICAgICAgLm1kXDpcIXBiLTQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFwYi01IHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhcHQtMjAgewogICAgICAgIHBhZGRpbmctdG9wOiA1cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCFwdC01IHsKICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOnB0LTAgewogICAgICAgIHBhZGRpbmctdG9wOiAwOwogICAgICB9CgogICAgICAubWRcOnB0LTE2IHsKICAgICAgICBwYWRkaW5nLXRvcDogNHJlbTsKICAgICAgfQoKICAgICAgLm1kXDpwdC0yNCB7CiAgICAgICAgcGFkZGluZy10b3A6IDZyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6cHQtNSB7CiAgICAgICAgcGFkZGluZy10b3A6IDEuMjVyZW07CiAgICAgIH0KCiAgICAgIC5tZFw6XCF0ZXh0LWxlZnQgewogICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIXRleHQtY2VudGVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LWNlbnRlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAubWRcOlwhdGV4dC1ncmF5LTkwMCB7CiAgICAgICAgLS10dy10ZXh0LW9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBjb2xvcjogcmdiKDE2IDI0IDQwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LXhsLXNlbWlib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXkteGwtYm9sZCwKICAgICAgLm1kXDpkaXNwbGF5LXhsLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiA2MHB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMS4ycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDcycHg7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS14bC1ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXktbGctc2VtaWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS1sZy1ib2xkLAogICAgICAubWRcOmRpc3BsYXktbGctc2VtaWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjk2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS1sZy1ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAubWRcOlwhZGlzcGxheS1tZC1zZW1pYm9sZCB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLm1kXDpcIWRpc3BsYXktbWQtc2VtaWJvbGQsCiAgICAgIC5tZFw6ZGlzcGxheS1tZC1zZW1pYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMzZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC43MnB4OwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXktbWQtc2VtaWJvbGQgewogICAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4OwogICAgICB9CgogICAgICAubWRcOlwhZGlzcGxheS1tZC1ib2xkIHsKICAgICAgICBsaW5lLWhlaWdodDogNDRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhZGlzcGxheS1tZC1ib2xkLAogICAgICAubWRcOmRpc3BsYXktbWQtYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMzZweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC43MnB4OwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXktbWQtYm9sZCB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS1zbS1zZW1pYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LXNtLWJvbGQsCiAgICAgIC5tZFw6ZGlzcGxheS1zbS1zZW1pYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgICAgfQoKICAgICAgLm1kXDpkaXNwbGF5LXNtLWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS14cy1tZWRpdW0gewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6ZGlzcGxheS14cy1ib2xkLAogICAgICAubWRcOmRpc3BsYXkteHMtbWVkaXVtIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAubWRcOmRpc3BsYXkteHMtYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LXhsLXJlZ3VsYXIgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgLm1kXDpcIXRleHQteGwtbWVkaXVtIHsKICAgICAgICBsaW5lLWhlaWdodDogMzBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhdGV4dC14bC1tZWRpdW0sCiAgICAgIC5tZFw6dGV4dC14bC1tZWRpdW0gewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LXhsLW1lZGl1bSB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIC5tZFw6dGV4dC14bC1zZW1pYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LXhsLWJvbGQsCiAgICAgIC5tZFw6dGV4dC14bC1zZW1pYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LXhsLWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6dGV4dC1sZy1yZWd1bGFyIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF0ZXh0LWxnLW1lZGl1bSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLm1kXDpcIXRleHQtbGctbWVkaXVtLAogICAgICAubWRcOlwhdGV4dC1sZy1zZW1pYm9sZCB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubWRcOlwhdGV4dC1sZy1zZW1pYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LWxnLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF0ZXh0LW1kLXJlZ3VsYXIgewogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5tZFw6XCF0ZXh0LW1kLXJlZ3VsYXIsCiAgICAgIC5tZFw6dGV4dC1tZC1yZWd1bGFyIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KCiAgICAgIC5tZFw6dGV4dC1tZC1tZWRpdW0sCiAgICAgIC5tZFw6dGV4dC1tZC1yZWd1bGFyIHsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfQoKICAgICAgLm1kXDp0ZXh0LW1kLW1lZGl1bSB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubWRcOnRleHQtc20tcmVndWxhciB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgewogICAgICAubGdcOmFic29sdXRlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIC5sZ1w6Ym90dG9tLVxbLTEwcmVtXF0gewogICAgICAgIGJvdHRvbTogLTEwcmVtOwogICAgICB9CgogICAgICAubGdcOlwhb3JkZXItMiB7CiAgICAgICAgb3JkZXI6IDIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpvcmRlci0xIHsKICAgICAgICBvcmRlcjogMTsKICAgICAgfQoKICAgICAgLmxnXDpvcmRlci0yIHsKICAgICAgICBvcmRlcjogMjsKICAgICAgfQoKICAgICAgLmxnXDpcIW14LTAgewogICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFteS0yMCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXJlbSAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi10b3A6IDVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpteC0wIHsKICAgICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6bXgtMyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtOwogICAgICB9CgogICAgICAubGdcOm15LTMyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cmVtOwogICAgICAgIG1hcmdpbi10b3A6IDhyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFtdC0xXC41IHsKICAgICAgICBtYXJnaW4tdG9wOiAwLjM3NXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOlwhbXQtMjAgewogICAgICAgIG1hcmdpbi10b3A6IDVyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpcIW10LTI0IHsKICAgICAgICBtYXJnaW4tdG9wOiA2cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFtdC1cWzg4cHhcXSB7CiAgICAgICAgbWFyZ2luLXRvcDogODhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOm10LTEyIHsKICAgICAgICBtYXJnaW4tdG9wOiAzcmVtOwogICAgICB9CgogICAgICAubGdcOm10LTE0IHsKICAgICAgICBtYXJnaW4tdG9wOiAzLjVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6bXQtMjQgewogICAgICAgIG1hcmdpbi10b3A6IDZyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFibG9jayB7CiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpibG9jayB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5sZ1w6ZmxleCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLmxnXDpcIWhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmxnXDpoLTM2IHsKICAgICAgICBoZWlnaHQ6IDlyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6aC1cWzI0cmVtXF0gewogICAgICAgIGhlaWdodDogMjRyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6aC1cWzc2cHhcXSB7CiAgICAgICAgaGVpZ2h0OiA3NnB4OwogICAgICB9CgogICAgICAubGdcOlwhdy0xXC8yIHsKICAgICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCF3LTJcLzUgewogICAgICAgIHdpZHRoOiA0MCUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDp3LTFcLzIgewogICAgICAgIHdpZHRoOiA1MCU7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy0xXC8zIHsKICAgICAgICB3aWR0aDogMzMuMzMzMzMzJTsKICAgICAgfQoKICAgICAgLmxnXDp3LTJcLzMgewogICAgICAgIHdpZHRoOiA2Ni42NjY2NjclOwogICAgICB9CgogICAgICAubGdcOnctMlwvNSB7CiAgICAgICAgd2lkdGg6IDQwJTsKICAgICAgfQoKICAgICAgLmxnXDp3LTNcLzUgewogICAgICAgIHdpZHRoOiA2MCU7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy00XC8xMiB7CiAgICAgICAgd2lkdGg6IDMzLjMzMzMzMyU7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy00XC81IHsKICAgICAgICB3aWR0aDogODAlOwogICAgICB9CgogICAgICAubGdcOnctNVwvMTIgewogICAgICAgIHdpZHRoOiA0MS42NjY2NjclOwogICAgICB9CgogICAgICAubGdcOnctODAgewogICAgICAgIHdpZHRoOiAyMHJlbTsKICAgICAgfQoKICAgICAgLmxnXDp3LVxbNDUwcHhcXSB7CiAgICAgICAgd2lkdGg6IDQ1MHB4OwogICAgICB9CgogICAgICAubGdcOnctXFs1NTBweFxdIHsKICAgICAgICB3aWR0aDogNTUwcHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6dy1maXQgewogICAgICAgIHdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogICAgICAgIHdpZHRoOiBmaXQtY29udGVudDsKICAgICAgfQoKICAgICAgLmxnXDptYXgtdy1cWzMycmVtXF0gewogICAgICAgIG1heC13aWR0aDogMzJyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6Z3JpZC1jb2xzLTIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgfQoKICAgICAgLmxnXDpncmlkLWNvbHMtMyB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAubGdcOmdyaWQtY29scy00IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgIH0KCiAgICAgIC5sZ1w6ZmxleC1yb3cgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgIC5sZ1w6anVzdGlmeS1hcm91bmQgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9CgogICAgICAubGdcOlwhZ2FwLTIgewogICAgICAgIGdhcDogMC41cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6Z2FwLTE2IHsKICAgICAgICBnYXA6IDRyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6Z2FwLTMyIHsKICAgICAgICBnYXA6IDhyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6Z2FwLTUgewogICAgICAgIGdhcDogMS4yNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpnYXAtNiB7CiAgICAgICAgZ2FwOiAxLjVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cm91bmRlZC0yeGwgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cm91bmRlZC1cWzJyZW1cXSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnJlbTsKICAgICAgfQoKICAgICAgLmxnXDpib3JkZXIgewogICAgICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgICB9CgogICAgICAubGdcOmJvcmRlci1yIHsKICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLmxnXDpib3JkZXItZ3JheS0zMDAgewogICAgICAgIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7CiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjA4IDIxMyAyMjEgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpOwogICAgICB9CgogICAgICAubGdcOlwhYmctY292ZXIgewogICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxnXDpwLTEwIHsKICAgICAgICBwYWRkaW5nOiAyLjVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cC0yMCB7CiAgICAgICAgcGFkZGluZzogNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpwLTYgewogICAgICAgIHBhZGRpbmc6IDEuNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpcIXB4LTI4IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDdyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA3cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6XCFweC02IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubGdcOlwhcHktMTAgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6cHgtMCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6cHgtMiB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtOwogICAgICB9CgogICAgICAubGdcOnB4LTQgewogICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOwogICAgICB9CgogICAgICAubGdcOnB4LTYgewogICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpweS0xMCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsKICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtOwogICAgICB9CgogICAgICAubGdcOnB5LTIwIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsKICAgICAgICBwYWRkaW5nLXRvcDogNXJlbTsKICAgICAgfQoKICAgICAgLmxnXDpwYi0wIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmxnXDpwYi0zMiB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDhyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cGItOCB7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cHQtMCB7CiAgICAgICAgcGFkZGluZy10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6cHQtMSB7CiAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07CiAgICAgIH0KCiAgICAgIC5sZ1w6cHQtMjAgewogICAgICAgIHBhZGRpbmctdG9wOiA1cmVtOwogICAgICB9CgogICAgICAubGdcOlwhdGV4dC1sZWZ0IHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5sZ1w6dGV4dC1jZW50ZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmxnXDpkaXNwbGF5LWxnLXNlbWlib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXktbGctYm9sZCwKICAgICAgLmxnXDpkaXNwbGF5LWxnLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC45NnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4OwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXktbGctYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLmxnXDpkaXNwbGF5LW1kLXNlbWlib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXktbWQtYm9sZCwKICAgICAgLmxnXDpkaXNwbGF5LW1kLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAzNnB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC43MnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4OwogICAgICB9CgogICAgICAubGdcOmRpc3BsYXktbWQtYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLmxnXDpkaXNwbGF5LXNtLWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgICAgfQoKICAgICAgLmxnXDpkaXNwbGF5LXhzLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5sZ1w6dGV4dC14bC1yZWd1bGFyIHsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CgogICAgICAubGdcOnRleHQteGwtbWVkaXVtLAogICAgICAubGdcOnRleHQteGwtcmVndWxhciB7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LXhsLW1lZGl1bSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LXhsLWJvbGQgewogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlcjsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LWxnLXJlZ3VsYXIgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LWxnLXJlZ3VsYXIsCiAgICAgIC5sZ1w6dGV4dC1tZC1yZWd1bGFyIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LW1kLXJlZ3VsYXIgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LW1kLW1lZGl1bSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxnXDp0ZXh0LW1kLW1lZGl1bSwKICAgICAgLmxnXDp0ZXh0LW1kLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICB9CgogICAgICAubGdcOnRleHQtbWQtc2VtaWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6dGV4dC1zbS1yZWd1bGFyIHsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CgogICAgICAubGdcOnRleHQtc20tcmVndWxhciwKICAgICAgLmxnXDp0ZXh0LXNtLXNlbWlib2xkIHsKICAgICAgICBmb250LWZhbWlseTogSW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAubGdcOnRleHQtc20tc2VtaWJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5sZ1w6YWZ0ZXJcOmJsb2NrOmFmdGVyIHsKICAgICAgICBjb250ZW50OiB2YXIoLS10dy1jb250ZW50KTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHsKICAgICAgLnhsXDpcIWJvdHRvbS1cWy03cmVtXF0gewogICAgICAgIGJvdHRvbTogLTdyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnhsXDptYi02IHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgIH0KCiAgICAgIC54bFw6bXQtOCB7CiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgICAgfQoKICAgICAgLnhsXDpcIWhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAueGxcOmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnhsXDpoLVxbMjgwcHhcXSB7CiAgICAgICAgaGVpZ2h0OiAyODBweDsKICAgICAgfQoKICAgICAgLnhsXDpncmlkLWNvbHMtNCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOwogICAgICB9CgogICAgICAueGxcOmdyaWQtY29scy01IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgIH0KCiAgICAgIC54bFw6Z3JpZC1jb2xzLTYgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgfQoKICAgICAgLnhsXDpcIXB5LTggewogICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDJyZW0gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnhsXDpcIXB0LTAgewogICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KICA8L3N0eWxlPgogIDxzdHlsZT4KICAgIEBmb250LWZhY2UgewogICAgICBmb250LWZhbWlseTogTWF0ZXJpYWwgRGVzaWduIEljb25zOwogICAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIHNyYzogdXJsKF9udXh0L21hdGVyaWFsZGVzaWduaWNvbnMtd2ViZm9udC5DU3I4S1ZsbyVFRiVCOSU5NnY9Ny40LjQ3LmVvdCk7CiAgICAgIHNyYzogdXJsKF9udXh0L21hdGVyaWFsZGVzaWduaWNvbnMtd2ViZm9udC5DU3I4S1ZsbyVFRiVCOSU5Ni5lb3QjaWVmaXgmdj03LjQuNDcpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSwKICAgICAgICB1cmwoX251eHQvbWF0ZXJpYWxkZXNpZ25pY29ucy13ZWJmb250LkRwNXYtV1pOJUVGJUI5JTk2dj03LjQuNDcud29mZjIpIGZvcm1hdCgid29mZjIiKSwKICAgICAgICB1cmwoX251eHQvbWF0ZXJpYWxkZXNpZ25pY29ucy13ZWJmb250LlBYbTMtMndLJUVGJUI5JTk2dj03LjQuNDcud29mZikgZm9ybWF0KCJ3b2ZmIiksCiAgICAgICAgdXJsKF9udXh0L21hdGVyaWFsZGVzaWduaWNvbnMtd2ViZm9udC5CN21Qd1ZQXyVFRiVCOSU5NnY9Ny40LjQ3LnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpOwogICAgfQoKICAgIC5tZGktc2V0LAogICAgLm1kaTpiZWZvcmUgewogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIGZvbnQ6IDI0cHgvMSBNYXRlcmlhbCBEZXNpZ24gSWNvbnM7CiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICAgIH0KCiAgICAubWRpLWFiLXRlc3Rpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh4kiOwogICAgfQoKICAgIC5tZGktYWJhY3VzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZugIjsKICAgIH0KCiAgICAubWRpLWFiamFkLWFyYWJpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMqCI7CiAgICB9CgogICAgLm1kaS1hYmphZC1oZWJyZXc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjKkiOwogICAgfQoKICAgIC5tZGktYWJ1Z2lkYS1kZXZhbmFnYXJpOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyqIjsKICAgIH0KCiAgICAubWRpLWFidWdpZGEtdGhhaTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMqyI7CiAgICB9CgogICAgLm1kaS1hY2Nlc3MtcG9pbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgIMiOwogICAgfQoKICAgIC5tZGktYWNjZXNzLXBvaW50LWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZS4IjsKICAgIH0KCiAgICAubWRpLWFjY2Vzcy1wb2ludC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUuSI7CiAgICB9CgogICAgLm1kaS1hY2Nlc3MtcG9pbnQtbmV0d29yazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAgiI7CiAgICB9CgogICAgLm1kaS1hY2Nlc3MtcG9pbnQtbmV0d29yay1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr6EiOwogICAgfQoKICAgIC5tZGktYWNjZXNzLXBvaW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUkSI7CiAgICB9CgogICAgLm1kaS1hY2Nlc3MtcG9pbnQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUuiI7CiAgICB9CgogICAgLm1kaS1hY2Nlc3MtcG9pbnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZS7IjsKICAgIH0KCiAgICAubWRpLWFjY291bnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgIQiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAhSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrZAiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGoIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtYXJyb3ctZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGpIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtkSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWFycm93LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtkiI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2TIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtYXJyb3ctcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtlCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWFycm93LXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGnIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtYXJyb3ctdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhqiI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWJhZGdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayKIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtYmFkZ2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsiyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAhiI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWJveC1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs4giOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1ib3gtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GziSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CktCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCKIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgIciOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1ib3gtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOKIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2FuY2VsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYufIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2FuY2VsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi6AiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1jYXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6kIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2FyZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6lIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2FzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GClyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWNhc2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCmCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICIIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvoiI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWNoaWxkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqJIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2hpbGQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqKIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2hpbGQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDiCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAiSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2VIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrZYiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2XIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2wIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjbEiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1jb252ZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICKIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY29udmVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyBIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY293Ym95LWhhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6myI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWNvd2JveS1oYXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfsyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWNyZWRpdC1jYXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6mIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtY3JlZGl0LWNhcmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GupyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWRldGFpbHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmLEiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1kZXRhaWxzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjbIiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJq8IjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+7IjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtZXllOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCgIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtZXllLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxibsiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1maWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKnIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtZmlsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKoIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtZmlsZS10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKpIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtZmlsZS10ZXh0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsqoiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1maWx0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpLYiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1maWx0ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+nSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWdyb3VwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGJIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtZ3JvdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtmCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWhhcmQtaGF0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJa1IjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtaGFyZC1oYXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GonyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKZIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtaGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvoyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWluanVyeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GglSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LWluanVyeS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCWIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQta2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICLIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQta2V5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr6QiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWeIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWgIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbG9jay1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpaEiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhZ8iOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAjSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq6wiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAjiI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LW11bHRpcGxlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOFIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbXVsdGlwbGUtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHviI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LW11bHRpcGxlLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeTIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbXVsdGlwbGUtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvpSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgI8iOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1tdWx0aXBsZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICQIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbXVsdGlwbGUtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCAIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbXVsdGlwbGUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiKIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbXVsdGlwbGUtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiIsiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1tdXNpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CggyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LW11c2ljLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws6kiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1uZXR3b3JrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICRIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbmV0d29yay1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq7EiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1uZXR3b3JrLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauyIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtbmV0d29yay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+mIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICSIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr6ciOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICTIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAlCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CggSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2ZIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtcXVlc3Rpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtmiI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXJlYWN0aXZhdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlKsiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1yZWFjdGl2YXRlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlKwiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgJUiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrrSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXNjaG9vbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GooCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXNjaG9vbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaihIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICWIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpLUiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYsCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXNldHRpbmdzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg4kiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICXIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtc3Rhci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+oIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtc3VwZXJ2aXNvcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqiyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXN1cGVydmlzb3ItY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqMIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtc3VwZXJ2aXNvci1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTrCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXN1cGVydmlzb3Itb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GErSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXN3aXRjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAmSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXN3aXRjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOLIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkmyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXN5bmMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GknCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXRhZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwmyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXRhZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCcIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtdGllOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOjIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtdGllLWhhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GimCI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXRpZS1oYXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GimSI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXRpZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOKIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtdGllLXZvaWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyIIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtdGllLXZvaWNlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMiiI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXRpZS12b2ljZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMiyI7CiAgICB9CgogICAgLm1kaS1hY2NvdW50LXRpZS12b2ljZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyJIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtdGllLXdvbWFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqMIjsKICAgIH0KCiAgICAubWRpLWFjY291bnQtdm9pY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl4siOwogICAgfQoKICAgIC5tZGktYWNjb3VudC12b2ljZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu5QiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC13cmVuY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxopoiOwogICAgfQoKICAgIC5tZGktYWNjb3VudC13cmVuY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GimyI7CiAgICB9CgogICAgLm1kaS1hZGp1c3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgJoiOwogICAgfQoKICAgIC5tZGktYWR2ZXJ0aXNlbWVudHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpKoiOwogICAgfQoKICAgIC5tZGktYWR2ZXJ0aXNlbWVudHMtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSrIjsKICAgIH0KCiAgICAubWRpLWFpci1jb25kaXRpb25lcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAmyI7CiAgICB9CgogICAgLm1kaS1haXItZmlsdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLWDIjsKICAgIH0KCiAgICAubWRpLWFpci1ob3JuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLasIjsKICAgIH0KCiAgICAubWRpLWFpci1odW1pZGlmaWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKZIjsKICAgIH0KCiAgICAubWRpLWFpci1odW1pZGlmaWVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRpiI7CiAgICB9CgogICAgLm1kaS1haXItcHVyaWZpZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtYQiOwogICAgfQoKICAgIC5tZGktYWlyLXB1cmlmaWVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtlyI7CiAgICB9CgogICAgLm1kaS1haXJiYWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr6kiOwogICAgfQoKICAgIC5tZGktYWlyYmFsbG9vbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAnCI7CiAgICB9CgogICAgLm1kaS1haXJiYWxsb29uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgIsiOwogICAgfQoKICAgIC5tZGktYWlycGxhbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgJ0iOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoboiOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxobsiOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxobwiOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaG9IjsKICAgIH0KCiAgICAubWRpLWFpcnBsYW5lLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxob4iOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtbGFuZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXlCI7CiAgICB9CgogICAgLm1kaS1haXJwbGFuZS1tYXJrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxob8iOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxooAiOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICeIjsKICAgIH0KCiAgICAubWRpLWFpcnBsYW5lLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxooEiOwogICAgfQoKICAgIC5tZGktYWlycGxhbmUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKCIjsKICAgIH0KCiAgICAubWRpLWFpcnBsYW5lLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GigyI7CiAgICB9CgogICAgLm1kaS1haXJwbGFuZS1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GihCI7CiAgICB9CgogICAgLm1kaS1haXJwbGFuZS10YWtlb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeVIjsKICAgIH0KCiAgICAubWRpLWFpcnBvcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoYsiOwogICAgfQoKICAgIC5tZGktYWxhcm06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgKAiOwogICAgfQoKICAgIC5tZGktYWxhcm0tYmVsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CejiI7CiAgICB9CgogICAgLm1kaS1hbGFybS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAoSI7CiAgICB9CgogICAgLm1kaS1hbGFybS1saWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CejyI7CiAgICB9CgogICAgLm1kaS1hbGFybS1saWdodC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnJ4iOwogICAgfQoKICAgIC5tZGktYWxhcm0tbGlnaHQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnJ8iOwogICAgfQoKICAgIC5tZGktYWxhcm0tbGlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvqiI7CiAgICB9CgogICAgLm1kaS1hbGFybS1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAoiI7CiAgICB9CgogICAgLm1kaS1hbGFybS1ub3RlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmxIjsKICAgIH0KCiAgICAubWRpLWFsYXJtLW5vdGUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmyIjsKICAgIH0KCiAgICAubWRpLWFsYXJtLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAoyI7CiAgICB9CgogICAgLm1kaS1hbGFybS1wYW5lbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXhCI7CiAgICB9CgogICAgLm1kaS1hbGFybS1wYW5lbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeFIjsKICAgIH0KCiAgICAubWRpLWFsYXJtLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgKQiOwogICAgfQoKICAgIC5tZGktYWxhcm0tc25vb3plOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqOIjsKICAgIH0KCiAgICAubWRpLWFsYnVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIClIjsKICAgIH0KCiAgICAubWRpLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICmIjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CApyI7CiAgICB9CgogICAgLm1kaS1hbGVydC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzpCI7CiAgICB9CgogICAgLm1kaS1hbGVydC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgKgiOwogICAgfQoKICAgIC5tZGktYWxlcnQtY2lyY2xlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYetIjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LWNpcmNsZS1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeuIjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeWIjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LWRlY2FncmFtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJq9IjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LWRlY2FncmFtLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws6UiOwogICAgfQoKICAgIC5tZGktYWxlcnQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkrsiOwogICAgfQoKICAgIC5tZGktYWxlcnQtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSviI7CiAgICB9CgogICAgLm1kaS1hbGVydC1vY3RhZ29uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICpIjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LW9jdGFnb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzpiI7CiAgICB9CgogICAgLm1kaS1hbGVydC1vY3RhZ3JhbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdpyI7CiAgICB9CgogICAgLm1kaS1hbGVydC1vY3RhZ3JhbS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOnIjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgKoiOwogICAgfQoKICAgIC5tZGktYWxlcnQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSuiI7CiAgICB9CgogICAgLm1kaS1hbGVydC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkr0iOwogICAgfQoKICAgIC5tZGktYWxlcnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZK8IjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZK/IjsKICAgIH0KCiAgICAubWRpLWFsZXJ0LXJob21idXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh44iOwogICAgfQoKICAgIC5tZGktYWxlcnQtcmhvbWJ1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYePIjsKICAgIH0KCiAgICAubWRpLWFsaWVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKaIjsKICAgIH0KCiAgICAubWRpLWFsaWVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg4siOwogICAgfQoKICAgIC5tZGktYWxpZ24taG9yaXpvbnRhbC1jZW50ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh4MiOwogICAgfQoKICAgIC5tZGktYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWiIjsKICAgIH0KCiAgICAubWRpLWFsaWduLWhvcml6b250YWwtbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHgiI7CiAgICB9CgogICAgLm1kaS1hbGlnbi1ob3Jpem9udGFsLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeEIjsKICAgIH0KCiAgICAubWRpLWFsaWduLXZlcnRpY2FsLWJvdHRvbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHhSI7CiAgICB9CgogICAgLm1kaS1hbGlnbi12ZXJ0aWNhbC1jZW50ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh4YiOwogICAgfQoKICAgIC5tZGktYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GloyI7CiAgICB9CgogICAgLm1kaS1hbGlnbi12ZXJ0aWNhbC10b3A6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh4ciOwogICAgfQoKICAgIC5tZGktYWxsLWluY2x1c2l2ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CaviI7CiAgICB9CgogICAgLm1kaS1hbGwtaW5jbHVzaXZlLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GijSI7CiAgICB9CgogICAgLm1kaS1hbGwtaW5jbHVzaXZlLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKOIjsKICAgIH0KCiAgICAubWRpLWFsbGVyZ3k6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiZgiOwogICAgfQoKICAgIC5tZGktYWxwaGE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgKsiOwogICAgfQoKICAgIC5tZGktYWxwaGEtYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrriI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1hLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsiCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1hLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+rIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWEtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+sIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWEtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr60iOwogICAgfQoKICAgIC5tZGktYWxwaGEtYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrryI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1iLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsiSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1iLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+uIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWItY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+vIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWItY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr7AiOwogICAgfQoKICAgIC5tZGktYWxwaGEtYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrsCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1jLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsiiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1jLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+xIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWMtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+yIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWMtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr7MiOwogICAgfQoKICAgIC5tZGktYWxwaGEtZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrsSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1kLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsiyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1kLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+0IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+1IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr7YiOwogICAgfQoKICAgIC5tZGktYWxwaGEtZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrsiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1lLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsjCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1lLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+3IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWUtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+4IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWUtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr7kiOwogICAgfQoKICAgIC5tZGktYWxwaGEtZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrsyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1mLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsjSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1mLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+6IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWYtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+7IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWYtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr7wiOwogICAgfQoKICAgIC5tZGktYWxwaGEtZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrtCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1nLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsjiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1nLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+9IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWctY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK++IjsKICAgIH0KCiAgICAubWRpLWFscGhhLWctY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr78iOwogICAgfQoKICAgIC5tZGktYWxwaGEtaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrtSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1oLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsjyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1oLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCAIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWgtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCBIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWgtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsIIiOwogICAgfQoKICAgIC5tZGktYWxwaGEtaTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrtiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1pLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CskCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1pLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCDIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWktY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCEIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWktY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsIUiOwogICAgfQoKICAgIC5tZGktYWxwaGEtajpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrtyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1qLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CskSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1qLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCGIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWotY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCHIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWotY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsIgiOwogICAgfQoKICAgIC5tZGktYWxwaGEtazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CruCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1rLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CskiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1rLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCJIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWstY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCKIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWstY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsIsiOwogICAgfQoKICAgIC5tZGktYWxwaGEtbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CruSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1sLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CskyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1sLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCMIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWwtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCNIjsKICAgIH0KCiAgICAubWRpLWFscGhhLWwtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsI4iOwogICAgfQoKICAgIC5tZGktYWxwaGEtbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CruiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1tLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CslCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1tLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCPIjsKICAgIH0KCiAgICAubWRpLWFscGhhLW0tY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCQIjsKICAgIH0KCiAgICAubWRpLWFscGhhLW0tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsJEiOwogICAgfQoKICAgIC5tZGktYWxwaGEtbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CruyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1uLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CslSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1uLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCSIjsKICAgIH0KCiAgICAubWRpLWFscGhhLW4tY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCTIjsKICAgIH0KCiAgICAubWRpLWFscGhhLW4tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsJQiOwogICAgfQoKICAgIC5tZGktYWxwaGEtbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrvCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1vLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsliI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1vLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCVIjsKICAgIH0KCiAgICAubWRpLWFscGhhLW8tY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCWIjsKICAgIH0KCiAgICAubWRpLWFscGhhLW8tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsJciOwogICAgfQoKICAgIC5tZGktYWxwaGEtcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrvSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1wLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CslyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1wLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCYIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXAtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCZIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXAtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsJoiOwogICAgfQoKICAgIC5tZGktYWxwaGEtcTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrviI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1xLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsmCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1xLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCbIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXEtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCcIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXEtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsJ0iOwogICAgfQoKICAgIC5tZGktYWxwaGEtcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrvyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1yLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsmSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1yLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCeIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXItY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCfIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXItY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsKAiOwogICAgfQoKICAgIC5tZGktYWxwaGEtczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsgCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1zLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsmiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS1zLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLChIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXMtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCiIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXMtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsKMiOwogICAgfQoKICAgIC5tZGktYWxwaGEtdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsgSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS10LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsmyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS10LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCkIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLClIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsKYiOwogICAgfQoKICAgIC5tZGktYWxwaGEtdTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsgiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS11LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsnCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS11LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCnIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXUtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCoIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXUtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsKkiOwogICAgfQoKICAgIC5tZGktYWxwaGEtdjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsgyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS12LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsnSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS12LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCqIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXYtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCrIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXYtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsKwiOwogICAgfQoKICAgIC5tZGktYWxwaGEtdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CshCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS13LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsniI7CiAgICB9CgogICAgLm1kaS1hbHBoYS13LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCtIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXctY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCuIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXctY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsK8iOwogICAgfQoKICAgIC5tZGktYWxwaGEteDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CshSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS14LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsnyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS14LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCwIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXgtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCxIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXgtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsLIiOwogICAgfQoKICAgIC5tZGktYWxwaGEteTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CshiI7CiAgICB9CgogICAgLm1kaS1hbHBoYS15LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsoCI7CiAgICB9CgogICAgLm1kaS1hbHBoYS15LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLCzIjsKICAgIH0KCiAgICAubWRpLWFscGhhLXktY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLC0IjsKICAgIH0KCiAgICAubWRpLWFscGhhLXktY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsLUiOwogICAgfQoKICAgIC5tZGktYWxwaGEtejpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CshyI7CiAgICB9CgogICAgLm1kaS1hbHBoYS16LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsoSI7CiAgICB9CgogICAgLm1kaS1hbHBoYS16LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLC2IjsKICAgIH0KCiAgICAubWRpLWFscGhhLXotY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLC3IjsKICAgIH0KCiAgICAubWRpLWFscGhhLXotY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsLgiOwogICAgfQoKICAgIC5tZGktYWxwaGFiZXQtYXVyZWJlc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjKwiOwogICAgfQoKICAgIC5tZGktYWxwaGFiZXQtY3lyaWxsaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjK0iOwogICAgfQoKICAgIC5tZGktYWxwaGFiZXQtZ3JlZWs6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjK4iOwogICAgfQoKICAgIC5tZGktYWxwaGFiZXQtbGF0aW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjK8iOwogICAgfQoKICAgIC5tZGktYWxwaGFiZXQtcGlxYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjLAiOwogICAgfQoKICAgIC5tZGktYWxwaGFiZXQtdGVuZ3dhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMtyI7CiAgICB9CgogICAgLm1kaS1hbHBoYWJldGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgKwiOwogICAgfQoKICAgIC5tZGktYWxwaGFiZXRpY2FsLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAjCI7CiAgICB9CgogICAgLm1kaS1hbHBoYWJldGljYWwtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAjSI7CiAgICB9CgogICAgLm1kaS1hbHBoYWJldGljYWwtdmFyaWFudC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgI4iOwogICAgfQoKICAgIC5tZGktYWx0aW1ldGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeXIjsKICAgIH0KCiAgICAubWRpLWFtYnVsYW5jZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAryI7CiAgICB9CgogICAgLm1kaS1hbW11bml0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOoIjsKICAgIH0KCiAgICAubWRpLWFtcGVyc2FuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqjSI7CiAgICB9CgogICAgLm1kaS1hbXBsaWZpZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgLAiOwogICAgfQoKICAgIC5tZGktYW1wbGlmaWVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGtSI7CiAgICB9CgogICAgLm1kaS1hbmNob3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgLEiOwogICAgfQoKICAgIC5tZGktYW5kcm9pZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAsiI7CiAgICB9CgogICAgLm1kaS1hbmRyb2lkLXN0dWRpbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAtCI7CiAgICB9CgogICAgLm1kaS1hbmdsZS1hY3V0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CktyI7CiAgICB9CgogICAgLm1kaS1hbmdsZS1vYnR1c2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpLgiOwogICAgfQoKICAgIC5tZGktYW5nbGUtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpLkiOwogICAgfQoKICAgIC5tZGktYW5ndWxhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CasiI7CiAgICB9CgogICAgLm1kaS1hbmd1bGFyanM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmr8iOwogICAgfQoKICAgIC5tZGktYW5pbWF0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeYIjsKICAgIH0KCiAgICAubWRpLWFuaW1hdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqPIjsKICAgIH0KCiAgICAubWRpLWFuaW1hdGlvbi1wbGF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKS6IjsKICAgIH0KCiAgICAubWRpLWFuaW1hdGlvbi1wbGF5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqpAiOwogICAgfQoKICAgIC5tZGktYW5zaWJsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCmiI7CiAgICB9CgogICAgLm1kaS1hbnRlbm5hOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSZIjsKICAgIH0KCiAgICAubWRpLWFudmlsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKbIjsKICAgIH0KCiAgICAubWRpLWFwYWNoZS1rYWZrYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAjyI7CiAgICB9CgogICAgLm1kaS1hcGk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgpsiOwogICAgfQoKICAgIC5tZGktYXBpLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJlyI7CiAgICB9CgogICAgLm1kaS1hcHBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAtSI7CiAgICB9CgogICAgLm1kaS1hcHBsZS1maW5kZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgLYiOwogICAgfQoKICAgIC5tZGktYXBwbGUtaWNsb3VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIC4IjsKICAgIH0KCiAgICAubWRpLWFwcGxlLWlvczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAtyI7CiAgICB9CgogICAgLm1kaS1hcHBsZS1rZXlib2FyZC1jYXBzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJiyIjsKICAgIH0KCiAgICAubWRpLWFwcGxlLWtleWJvYXJkLWNvbW1hbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmLMiOwogICAgfQoKICAgIC5tZGktYXBwbGUta2V5Ym9hcmQtY29udHJvbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYtCI7CiAgICB9CgogICAgLm1kaS1hcHBsZS1rZXlib2FyZC1vcHRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmLUiOwogICAgfQoKICAgIC5tZGktYXBwbGUta2V5Ym9hcmQtc2hpZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmLYiOwogICAgfQoKICAgIC5tZGktYXBwbGUtc2FmYXJpOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIC5IjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOGIjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWFycmF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYO1IjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWFycmF5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg7YiOwogICAgfQoKICAgIC5tZGktYXBwbGljYXRpb24tYnJhY2VzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYO3IjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWJyYWNlcy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYO4IjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWJyYWNrZXRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKLIjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWJyYWNrZXRzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsowiOwogICAgfQoKICAgIC5tZGktYXBwbGljYXRpb24tY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJm1IjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZW3IjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgq4iOwogICAgfQoKICAgIC5tZGktYXBwbGljYXRpb24tZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJiZIjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLWV4cG9ydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2rSI7CiAgICB9CgogICAgLm1kaS1hcHBsaWNhdGlvbi1pbXBvcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtq4iOwogICAgfQoKICAgIC5tZGktYXBwbGljYXRpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYlCI7CiAgICB9CgogICAgLm1kaS1hcHBsaWNhdGlvbi1wYXJlbnRoZXNlczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDuSI7CiAgICB9CgogICAgLm1kaS1hcHBsaWNhdGlvbi1wYXJlbnRoZXNlcy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYO6IjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2gIjsKICAgIH0KCiAgICAubWRpLWFwcGxpY2F0aW9uLXNldHRpbmdzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlZUiOwogICAgfQoKICAgIC5tZGktYXBwbGljYXRpb24tdmFyaWFibGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg7siOwogICAgfQoKICAgIC5tZGktYXBwbGljYXRpb24tdmFyaWFibGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDvCI7CiAgICB9CgogICAgLm1kaS1hcHByb3hpbWF0ZWx5LWVxdWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6eIjsKICAgIH0KCiAgICAubWRpLWFwcHJveGltYXRlbHktZXF1YWwtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6fIjsKICAgIH0KCiAgICAubWRpLWFwcHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgLsiOwogICAgfQoKICAgIC5tZGktYXBwcy1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtYYiOwogICAgfQoKICAgIC5tZGktYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjhyI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIC8IjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk70iOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZO+IjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtYXJyb3ctZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJmSI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLWFycm93LWRvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJmiI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLWFycm93LXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmbIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtYXJyb3ctdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJnCI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdiyI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLWNhbmNlbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2MIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnY0iOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2OIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnY8iOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2QIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2RIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnZIiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2TIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2UIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtZXllOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2VIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtZXllLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnZYiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2XIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2YIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtbG9jay1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnZkiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnZoiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1tYXJrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnZsiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1tYXJrZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdnCI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2dIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdniI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLW11c2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2fIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtbXVzaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdoCI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdoSI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2iIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIjiI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnaMiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnaQiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1yZWZyZXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2lIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtcmVmcmVzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2mIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2nIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnagiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnakiOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdqiI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2rIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdrCI7CiAgICB9CgogICAgLm1kaS1hcmNoaXZlLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxna0iOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1zdGFyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxna4iOwogICAgfQoKICAgIC5tZGktYXJjaGl2ZS1zeW5jOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2vIjsKICAgIH0KCiAgICAubWRpLWFyY2hpdmUtc3luYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2wIjsKICAgIH0KCiAgICAubWRpLWFybS1mbGV4OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+XIjsKICAgIH0KCiAgICAubWRpLWFybS1mbGV4LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv5YiOwogICAgfQoKICAgIC5tZGktYXJyYW5nZS1icmluZy1mb3J3YXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIC9IjsKICAgIH0KCiAgICAubWRpLWFycmFuZ2UtYnJpbmctdG8tZnJvbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgL4iOwogICAgfQoKICAgIC5tZGktYXJyYW5nZS1zZW5kLWJhY2t3YXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIC/IjsKICAgIH0KCiAgICAubWRpLWFycmFuZ2Utc2VuZC10by1iYWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGAIjsKICAgIH0KCiAgICAubWRpLWFycm93LWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBgSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBgiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tbGVmdC1ib2xkLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlpCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tbGVmdC1ib2xkLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWlIjsKICAgIH0KCiAgICAubWRpLWFycm93LWJvdHRvbS1sZWZ0LWJvbGQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmtyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tbGVmdC10aGljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmuCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tbGVmdC10aGluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaa2IjsKICAgIH0KCiAgICAubWRpLWFycm93LWJvdHRvbS1sZWZ0LXRoaW4tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlpYiOwogICAgfQoKICAgIC5tZGktYXJyb3ctYm90dG9tLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGDIjsKICAgIH0KCiAgICAubWRpLWFycm93LWJvdHRvbS1yaWdodC1ib2xkLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlpiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tcmlnaHQtYm9sZC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlpyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tcmlnaHQtYm9sZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKa5IjsKICAgIH0KCiAgICAubWRpLWFycm93LWJvdHRvbS1yaWdodC10aGljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmuiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tcmlnaHQtdGhpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmtyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ib3R0b20tcmlnaHQtdGhpbi1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWlSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1jb2xsYXBzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYlSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1jb2xsYXBzZS1hbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgYQiOwogICAgfQoKICAgIC5tZGktYXJyb3ctY29sbGFwc2UtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CekiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1jb2xsYXBzZS1ob3Jpem9udGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGMIjsKICAgIH0KCiAgICAubWRpLWFycm93LWNvbGxhcHNlLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnpMiOwogICAgfQoKICAgIC5tZGktYXJyb3ctY29sbGFwc2UtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnpQiOwogICAgfQoKICAgIC5tZGktYXJyb3ctY29sbGFwc2UtdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnpUiOwogICAgfQoKICAgIC5tZGktYXJyb3ctY29sbGFwc2UtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoY0iOwogICAgfQoKICAgIC5tZGktYXJyb3ctZGVjaXNpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwprsiOwogICAgfQoKICAgIC5tZGktYXJyb3ctZGVjaXNpb24tYXV0bzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmvCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1kZWNpc2lvbi1hdXRvLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpr0iOwogICAgfQoKICAgIC5tZGktYXJyb3ctZGVjaXNpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmviI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGFIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tYm9sZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcriI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1kb3duLWJvbGQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyvIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tYm9sZC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcsCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1kb3duLWJvbGQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGHIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tYm9sZC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBiCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1kb3duLWJvbGQtaGV4YWdvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGJIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tYm9sZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKa/IjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuAIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLObIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws5wiOwogICAgfQoKICAgIC5tZGktYXJyb3ctZG93bi1kcm9wLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBiiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1kb3duLWRyb3AtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgYsiOwogICAgfQoKICAgIC5tZGktYXJyb3ctZG93bi1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6hIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tbGVmdC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6iIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnqMiOwogICAgfQoKICAgIC5tZGktYXJyb3ctZG93bi1yaWdodC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6kIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tdGhpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgYYiOwogICAgfQoKICAgIC5tZGktYXJyb3ctZG93bi10aGluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaazIjsKICAgIH0KCiAgICAubWRpLWFycm93LWRvd24tdGhpbi1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWmSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1leHBhbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJYiOwogICAgfQoKICAgIC5tZGktYXJyb3ctZXhwYW5kLWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBjCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1leHBhbmQtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeliI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1leHBhbmQtaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChjiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1leHBhbmQtbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CelyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1leHBhbmQtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnpgiOwogICAgfQoKICAgIC5tZGktYXJyb3ctZXhwYW5kLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6ZIjsKICAgIH0KCiAgICAubWRpLWFycm93LWV4cGFuZC12ZXJ0aWNhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChjyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1ob3Jpem9udGFsLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhZsiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBjSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LWJvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnLEiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC1ib2xkLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcsiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LWJvbGQtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnLMiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC1ib2xkLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBjyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LWJvbGQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgZAiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC1ib2xkLWhleGFnb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBkSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LWJvbGQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CngCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LWJvdHRvbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GepSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LWJvdHRvbS1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6mIjsKICAgIH0KCiAgICAubWRpLWFycm93LWxlZnQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuBIjsKICAgIH0KCiAgICAubWRpLWFycm93LWxlZnQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOdIjsKICAgIH0KCiAgICAubWRpLWFycm93LWxlZnQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws54iOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC1kcm9wLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBkiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LWRyb3AtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgZMiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5syI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LXJpZ2h0LWJvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwubQiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC1yaWdodC1ib2xkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp4EiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC10aGljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBjiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1sZWZ0LXRoaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxprEiOwogICAgfQoKICAgIC5tZGktYXJyb3ctbGVmdC10aGluLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaaIjsKICAgIH0KCiAgICAubWRpLWFycm93LWxlZnQtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6nIjsKICAgIH0KCiAgICAubWRpLWFycm93LWxlZnQtdG9wLWJvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnqgiOwogICAgfQoKICAgIC5tZGktYXJyb3ctb3NjaWxsYXRpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxspEiOwogICAgfQoKICAgIC5tZGktYXJyb3ctb3NjaWxsYXRpbmctb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKSIjsKICAgIH0KCiAgICAubWRpLWFycm93LXByb2plY3RpbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoYAiOwogICAgfQoKICAgIC5tZGktYXJyb3ctcHJvamVjdGlsZS1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgvyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBlCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1yaWdodC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJy0IjsKICAgIH0KCiAgICAubWRpLWFycm93LXJpZ2h0LWJvbGQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJy1IjsKICAgIH0KCiAgICAubWRpLWFycm93LXJpZ2h0LWJvbGQtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnLYiOwogICAgfQoKICAgIC5tZGktYXJyb3ctcmlnaHQtYm9sZC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgZYiOwogICAgfQoKICAgIC5tZGktYXJyb3ctcmlnaHQtYm9sZC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBlyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1yaWdodC1ib2xkLWhleGFnb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBmCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1yaWdodC1ib2xkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp4IiOwogICAgfQoKICAgIC5tZGktYXJyb3ctcmlnaHQtYm90dG9tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6pIjsKICAgIH0KCiAgICAubWRpLWFycm93LXJpZ2h0LWJvdHRvbS1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6qIjsKICAgIH0KCiAgICAubWRpLWFycm93LXJpZ2h0LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbgiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1yaWdodC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws58iOwogICAgfQoKICAgIC5tZGktYXJyb3ctcmlnaHQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws6AiOwogICAgfQoKICAgIC5tZGktYXJyb3ctcmlnaHQtZHJvcC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgZkiOwogICAgfQoKICAgIC5tZGktYXJyb3ctcmlnaHQtZHJvcC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBmiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1yaWdodC10aGljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBlSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy1yaWdodC10aGluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaawIjsKICAgIH0KCiAgICAubWRpLWFycm93LXJpZ2h0LXRoaW4tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlpgiOwogICAgfQoKICAgIC5tZGktYXJyb3ctcmlnaHQtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6rIjsKICAgIH0KCiAgICAubWRpLWFycm93LXJpZ2h0LXRvcC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6sIjsKICAgIH0KCiAgICAubWRpLWFycm93LXNwbGl0LWhvcml6b250YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpLsiOwogICAgfQoKICAgIC5tZGktYXJyb3ctc3BsaXQtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpLwiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdG9wLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgZsiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdG9wLWxlZnQtYm9sZC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpagiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdG9wLWxlZnQtYm9sZC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlqSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy10b3AtbGVmdC1ib2xkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp4MiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdG9wLWxlZnQtYm90dG9tLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLm1IjsKICAgIH0KCiAgICAubWRpLWFycm93LXRvcC1sZWZ0LWJvdHRvbS1yaWdodC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLm2IjsKICAgIH0KCiAgICAubWRpLWFycm93LXRvcC1sZWZ0LXRoaWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeEIjsKICAgIH0KCiAgICAubWRpLWFycm93LXRvcC1sZWZ0LXRoaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxprUiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdG9wLWxlZnQtdGhpbi1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWkyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy10b3AtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgZwiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdG9wLXJpZ2h0LWJvbGQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWqIjsKICAgIH0KCiAgICAubWRpLWFycm93LXRvcC1yaWdodC1ib2xkLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWrIjsKICAgIH0KCiAgICAubWRpLWFycm93LXRvcC1yaWdodC1ib2xkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp4UiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLm3IjsKICAgIH0KCiAgICAubWRpLWFycm93LXRvcC1yaWdodC1ib3R0b20tbGVmdC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLm4IjsKICAgIH0KCiAgICAubWRpLWFycm93LXRvcC1yaWdodC10aGljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnhiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy10b3AtcmlnaHQtdGhpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmtCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy10b3AtcmlnaHQtdGhpbi1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWlCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11LWRvd24tbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GerSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11LWRvd24tbGVmdC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6uIjsKICAgIH0KCiAgICAubWRpLWFycm93LXUtZG93bi1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GeryI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11LWRvd24tcmlnaHQtYm9sZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GesCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11LWxlZnQtYm90dG9tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6xIjsKICAgIH0KCiAgICAubWRpLWFycm93LXUtbGVmdC1ib3R0b20tYm9sZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GesiI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11LWxlZnQtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6zIjsKICAgIH0KCiAgICAubWRpLWFycm93LXUtbGVmdC10b3AtYm9sZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GetCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11LXJpZ2h0LWJvdHRvbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GetSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11LXJpZ2h0LWJvdHRvbS1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ62IjsKICAgIH0KCiAgICAubWRpLWFycm93LXUtcmlnaHQtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ63IjsKICAgIH0KCiAgICAubWRpLWFycm93LXUtcmlnaHQtdG9wLWJvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnrgiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdS11cC1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ65IjsKICAgIH0KCiAgICAubWRpLWFycm93LXUtdXAtbGVmdC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ66IjsKICAgIH0KCiAgICAubWRpLWFycm93LXUtdXAtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnrsiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdS11cC1yaWdodC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ68IjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGdIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWJvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnLciOwogICAgfQoKICAgIC5tZGktYXJyb3ctdXAtYm9sZC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnLgiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdXAtYm9sZC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcuSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11cC1ib2xkLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBnyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11cC1ib2xkLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGgIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWJvbGQtaGV4YWdvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGhIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWJvbGQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnhyI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11cC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm4MiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdXAtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOhIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOiIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwubkiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdXAtZG93bi1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLm6IjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWRvd24tYm9sZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeIIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWRyb3AtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGiIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLWRyb3AtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgaMiOwogICAgfQoKICAgIC5tZGktYXJyb3ctdXAtbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GevSI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11cC1sZWZ0LWJvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnr4iOwogICAgfQoKICAgIC5tZGktYXJyb3ctdXAtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnr8iOwogICAgfQoKICAgIC5tZGktYXJyb3ctdXAtcmlnaHQtYm9sZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfgCI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11cC10aGljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBniI7CiAgICB9CgogICAgLm1kaS1hcnJvdy11cC10aGluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaayIjsKICAgIH0KCiAgICAubWRpLWFycm93LXVwLXRoaW4tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlpciOwogICAgfQoKICAgIC5tZGktYXJyb3ctdmVydGljYWwtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFnCI7CiAgICB9CgogICAgLm1kaS1hcnRib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GumiI7CiAgICB9CgogICAgLm1kaS1hcnRzdGF0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2bIjsKICAgIH0KCiAgICAubWRpLWFzcGVjdC1yYXRpbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CopCI7CiAgICB9CgogICAgLm1kaS1hc3Npc3RhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgaQiOwogICAgfQoKICAgIC5tZGktYXN0ZXJpc2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm4QiOwogICAgfQoKICAgIC5tZGktYXN0ZXJpc2stY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqKciOwogICAgfQoKICAgIC5tZGktYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgaUiOwogICAgfQoKICAgIC5tZGktYXRsYXNzaWFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCEIjsKICAgIH0KCiAgICAubWRpLWF0bTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1hyI7CiAgICB9CgogICAgLm1kaS1hdG9tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2oIjsKICAgIH0KCiAgICAubWRpLWF0b20tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5uyI7CiAgICB9CgogICAgLm1kaS1hdHRhY2htZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGmIjsKICAgIH0KCiAgICAubWRpLWF0dGFjaG1lbnQtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq4EiOwogICAgfQoKICAgIC5tZGktYXR0YWNobWVudC1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeEIjsKICAgIH0KCiAgICAubWRpLWF0dGFjaG1lbnQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq4IiOwogICAgfQoKICAgIC5tZGktYXR0YWNobWVudC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq4MiOwogICAgfQoKICAgIC5tZGktYXR0YWNobWVudC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauEIjsKICAgIH0KCiAgICAubWRpLWF0dGFjaG1lbnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauFIjsKICAgIH0KCiAgICAubWRpLWF0djpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtsCI7CiAgICB9CgogICAgLm1kaS1hdWRpby1pbnB1dC1yY2E6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoasiOwogICAgfQoKICAgIC5tZGktYXVkaW8taW5wdXQtc3RlcmVvLW1pbmlqYWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGsIjsKICAgIH0KCiAgICAubWRpLWF1ZGlvLWlucHV0LXhscjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhrSI7CiAgICB9CgogICAgLm1kaS1hdWRpby12aWRlbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CkvSI7CiAgICB9CgogICAgLm1kaS1hdWRpby12aWRlby1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhrYiOwogICAgfQoKICAgIC5tZGktYXVnbWVudGVkLXJlYWxpdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoZAiOwogICAgfQoKICAgIC5tZGktYXVyb3JhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa65IjsKICAgIH0KCiAgICAubWRpLWF1dG8tZG93bmxvYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjb4iOwogICAgfQoKICAgIC5tZGktYXV0by1maXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgagiOwogICAgfQoKICAgIC5tZGktYXV0by1tb2RlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCgIjsKICAgIH0KCiAgICAubWRpLWF1dG8tdXBsb2FkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGpIjsKICAgIH0KCiAgICAubWRpLWF1dG9yZW5ldzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBqiI7CiAgICB9CgogICAgLm1kaS1hdXRvcmVuZXctb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaenIjsKICAgIH0KCiAgICAubWRpLWF2LXRpbWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGrIjsKICAgIH0KCiAgICAubWRpLWF3bmluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuhyI7CiAgICB9CgogICAgLm1kaS1hd25pbmctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuiCI7CiAgICB9CgogICAgLm1kaS1hd3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuI8iOwogICAgfQoKICAgIC5tZGktYXhlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOIIjsKICAgIH0KCiAgICAubWRpLWF4ZS1iYXR0bGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoYIiOwogICAgfQoKICAgIC5tZGktYXhpczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1iCI7CiAgICB9CgogICAgLm1kaS1heGlzLWFycm93OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLWJIjsKICAgIH0KCiAgICAubWRpLWF4aXMtYXJyb3ctaW5mbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQjiI7CiAgICB9CgogICAgLm1kaS1heGlzLWFycm93LWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtYoiOwogICAgfQoKICAgIC5tZGktYXhpcy1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLWLIjsKICAgIH0KCiAgICAubWRpLWF4aXMteC1hcnJvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1jCI7CiAgICB9CgogICAgLm1kaS1heGlzLXgtYXJyb3ctbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1jSI7CiAgICB9CgogICAgLm1kaS1heGlzLXgtcm90YXRlLWNsb2Nrd2lzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1jiI7CiAgICB9CgogICAgLm1kaS1heGlzLXgtcm90YXRlLWNvdW50ZXJjbG9ja3dpc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtY8iOwogICAgfQoKICAgIC5tZGktYXhpcy14LXktYXJyb3ctbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1kCI7CiAgICB9CgogICAgLm1kaS1heGlzLXktYXJyb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZEiOwogICAgfQoKICAgIC5tZGktYXhpcy15LWFycm93LWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZIiOwogICAgfQoKICAgIC5tZGktYXhpcy15LXJvdGF0ZS1jbG9ja3dpc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZMiOwogICAgfQoKICAgIC5tZGktYXhpcy15LXJvdGF0ZS1jb3VudGVyY2xvY2t3aXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLWUIjsKICAgIH0KCiAgICAubWRpLWF4aXMtei1hcnJvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1lSI7CiAgICB9CgogICAgLm1kaS1heGlzLXotYXJyb3ctbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1liI7CiAgICB9CgogICAgLm1kaS1heGlzLXotcm90YXRlLWNsb2Nrd2lzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1lyI7CiAgICB9CgogICAgLm1kaS1heGlzLXotcm90YXRlLWNvdW50ZXJjbG9ja3dpc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZgiOwogICAgfQoKICAgIC5tZGktYmFiZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqKUiOwogICAgfQoKICAgIC5tZGktYmFieTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBrCI7CiAgICB9CgogICAgLm1kaS1iYWJ5LWJvdHRsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8uSI7CiAgICB9CgogICAgLm1kaS1iYWJ5LWJvdHRsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLy6IjsKICAgIH0KCiAgICAubWRpLWJhYnktYnVnZ3k6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj6AiOwogICAgfQoKICAgIC5tZGktYmFieS1idWdneS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq7MiOwogICAgfQoKICAgIC5tZGktYmFieS1jYXJyaWFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CajyI7CiAgICB9CgogICAgLm1kaS1iYWJ5LWNhcnJpYWdlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+oCI7CiAgICB9CgogICAgLm1kaS1iYWJ5LWZhY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwubwiOwogICAgfQoKICAgIC5tZGktYmFieS1mYWNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwub0iOwogICAgfQoKICAgIC5tZGktYmFja2J1cmdlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBrSI7CiAgICB9CgogICAgLm1kaS1iYWNrc3BhY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwga4iOwogICAgfQoKICAgIC5tZGktYmFja3NwYWNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrZwiOwogICAgfQoKICAgIC5tZGktYmFja3NwYWNlLXJldmVyc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwub4iOwogICAgfQoKICAgIC5tZGktYmFja3NwYWNlLXJldmVyc2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5vyI7CiAgICB9CgogICAgLm1kaS1iYWNrdXAtcmVzdG9yZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBryI7CiAgICB9CgogICAgLm1kaS1iYWN0ZXJpYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7lSI7CiAgICB9CgogICAgLm1kaS1iYWN0ZXJpYS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuWIjsKICAgIH0KCiAgICAubWRpLWJhZGdlLWFjY291bnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtqciOwogICAgfQoKICAgIC5tZGktYmFkZ2UtYWNjb3VudC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2qCI7CiAgICB9CgogICAgLm1kaS1iYWRnZS1hY2NvdW50LWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtqkiOwogICAgfQoKICAgIC5tZGktYmFkZ2UtYWNjb3VudC1ob3Jpem9udGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiNIjsKICAgIH0KCiAgICAubWRpLWJhZGdlLWFjY291bnQtaG9yaXpvbnRhbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiOIjsKICAgIH0KCiAgICAubWRpLWJhZGdlLWFjY291bnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2qiI7CiAgICB9CgogICAgLm1kaS1iYWRtaW50b246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoZEiOwogICAgfQoKICAgIC5tZGktYmFnLWNhcnJ5LW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLy7IjsKICAgIH0KCiAgICAubWRpLWJhZy1jYXJyeS1vbi1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1pSI7CiAgICB9CgogICAgLm1kaS1iYWctY2Fycnktb24tb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLy8IjsKICAgIH0KCiAgICAubWRpLWJhZy1jaGVja2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLy9IjsKICAgIH0KCiAgICAubWRpLWJhZy1wZXJzb25hbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4kCI7CiAgICB9CgogICAgLm1kaS1iYWctcGVyc29uYWwtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiRIjsKICAgIH0KCiAgICAubWRpLWJhZy1wZXJzb25hbC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4kiI7CiAgICB9CgogICAgLm1kaS1iYWctcGVyc29uYWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4kyI7CiAgICB9CgogICAgLm1kaS1iYWctcGVyc29uYWwtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GypCI7CiAgICB9CgogICAgLm1kaS1iYWctcGVyc29uYWwtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKlIjsKICAgIH0KCiAgICAubWRpLWJhZy1wZXJzb25hbC10YWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrIwiOwogICAgfQoKICAgIC5tZGktYmFnLXBlcnNvbmFsLXRhZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayNIjsKICAgIH0KCiAgICAubWRpLWJhZy1zdWl0Y2FzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWiyI7CiAgICB9CgogICAgLm1kaS1iYWctc3VpdGNhc2Utb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaNIjsKICAgIH0KCiAgICAubWRpLWJhZy1zdWl0Y2FzZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWjiI7CiAgICB9CgogICAgLm1kaS1iYWctc3VpdGNhc2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWjCI7CiAgICB9CgogICAgLm1kaS1iYWd1ZXR0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8viI7CiAgICB9CgogICAgLm1kaS1iYWxjb255OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCXIjsKICAgIH0KCiAgICAubWRpLWJhbGxvb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqKYiOwogICAgfQoKICAgIC5tZGktYmFsbG90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeJIjsKICAgIH0KCiAgICAubWRpLWJhbGxvdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeKIjsKICAgIH0KCiAgICAubWRpLWJhbGxvdC1yZWNvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLC5IjsKICAgIH0KCiAgICAubWRpLWJhbGxvdC1yZWNvdW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsLoiOwogICAgfQoKICAgIC5tZGktYmFuZGFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2ryI7CiAgICB9CgogICAgLm1kaS1iYW5rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGwIjsKICAgIH0KCiAgICAubWRpLWJhbmstY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmZUiOwogICAgfQoKICAgIC5tZGktYmFuay1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsIMiOwogICAgfQoKICAgIC5tZGktYmFuay1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwhCI7CiAgICB9CgogICAgLm1kaS1iYW5rLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLawIjsKICAgIH0KCiAgICAubWRpLWJhbmstb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmWIjsKICAgIH0KCiAgICAubWRpLWJhbmstb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmZciOwogICAgfQoKICAgIC5tZGktYmFuay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqAIjsKICAgIH0KCiAgICAubWRpLWJhbmstcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2sSI7CiAgICB9CgogICAgLm1kaS1iYW5rLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2siI7CiAgICB9CgogICAgLm1kaS1iYW5rLXRyYW5zZmVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKinIjsKICAgIH0KCiAgICAubWRpLWJhbmstdHJhbnNmZXItaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqKgiOwogICAgfQoKICAgIC5tZGktYmFuay10cmFuc2Zlci1vdXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqKkiOwogICAgfQoKICAgIC5tZGktYmFyY29kZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBsSI7CiAgICB9CgogICAgLm1kaS1iYXJjb2RlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GItiI7CiAgICB9CgogICAgLm1kaS1iYXJjb2RlLXNjYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgbIiOwogICAgfQoKICAgIC5tZGktYmFybGV5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGzIjsKICAgIH0KCiAgICAubWRpLWJhcmxleS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrZ0iOwogICAgfQoKICAgIC5tZGktYmFybjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtniI7CiAgICB9CgogICAgLm1kaS1iYXJyZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgbQiOwogICAgfQoKICAgIC5tZGktYmFycmVsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqKgiOwogICAgfQoKICAgIC5tZGktYmFzZWJhbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoZIiOwogICAgfQoKICAgIC5tZGktYmFzZWJhbGwtYmF0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGTIjsKICAgIH0KCiAgICAubWRpLWJhc2ViYWxsLWRpYW1vbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl6wiOwogICAgfQoKICAgIC5tZGktYmFzZWJhbGwtZGlhbW9uZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZetIjsKICAgIH0KCiAgICAubWRpLWJhc2ViYWxsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsZoiOwogICAgfQoKICAgIC5tZGktYmFzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGgyI7CiAgICB9CgogICAgLm1kaS1iYXNrZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgbYiOwogICAgfQoKICAgIC5tZGktYmFza2V0LWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOlIjsKICAgIH0KCiAgICAubWRpLWJhc2tldC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOmIjsKICAgIH0KCiAgICAubWRpLWJhc2tldC1maWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIG3IjsKICAgIH0KCiAgICAubWRpLWJhc2tldC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUoyI7CiAgICB9CgogICAgLm1kaS1iYXNrZXQtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUpCI7CiAgICB9CgogICAgLm1kaS1iYXNrZXQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSlIjsKICAgIH0KCiAgICAubWRpLWJhc2tldC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUpiI7CiAgICB9CgogICAgLm1kaS1iYXNrZXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGgSI7CiAgICB9CgogICAgLm1kaS1iYXNrZXQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUpyI7CiAgICB9CgogICAgLm1kaS1iYXNrZXQtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSoIjsKICAgIH0KCiAgICAubWRpLWJhc2tldC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlKkiOwogICAgfQoKICAgIC5tZGktYmFza2V0LXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSqIjsKICAgIH0KCiAgICAubWRpLWJhc2tldC11bmZpbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgbgiOwogICAgfQoKICAgIC5tZGktYmFza2V0YmFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CghiI7CiAgICB9CgogICAgLm1kaS1iYXNrZXRiYWxsLWhvb3A6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsLsiOwogICAgfQoKICAgIC5tZGktYmFza2V0YmFsbC1ob29wLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsLwiOwogICAgfQoKICAgIC5tZGktYmF0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2fIjsKICAgIH0KCiAgICAubWRpLWJhdGh0dWI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoJgiOwogICAgfQoKICAgIC5tZGktYmF0aHR1Yi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCZIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgbkiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS0xMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBuiI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LTEwLWJsdWV0b290aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CkviI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LTIwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIG7IjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktMjAtYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKS/IjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktMzA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgbwiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS0zMC1ibHVldG9vdGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpYAiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS00MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBvSI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LTQwLWJsdWV0b290aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClgSI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LTUwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIG+IjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktNTAtYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWCIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktNjA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgb8iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS02MC1ibHVldG9vdGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpYMiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS03MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCgCI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LTcwLWJsdWV0b290aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClhCI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LTgwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKBIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktODAtYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWFIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktOTA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgoIiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS05MC1ibHVldG9vdGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpYYiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCgyI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWFsZXJ0LWJsdWV0b290aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClhyI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWFsZXJ0LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg4wiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1hbGVydC12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg40iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+eIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktYXJyb3ctZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+fIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktYXJyb3ctdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn6AiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1hcnJvdy11cC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+hIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWIIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktYmx1ZXRvb3RoLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpYkiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CChCI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLTEwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKcIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctMTAwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKFIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctMjA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgoYiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy0zMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CChyI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLTQwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKIIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctNTA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwop0iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy02MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCiSI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLTcwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKeIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctODA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgooiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy05MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCiyI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLWhpZ2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiqYiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy1sb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiqQiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy1tZWRpdW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiqUiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKfIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctd2lyZWxlc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoIciOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy0xMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgiCI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLXdpcmVsZXNzLTIwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCJIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctd2lyZWxlc3MtMzA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoIoiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy00MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgiyI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLXdpcmVsZXNzLTUwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCMIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctd2lyZWxlc3MtNjA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoI0iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy03MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgjiI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLXdpcmVsZXNzLTgwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCPIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktY2hhcmdpbmctd2lyZWxlc3MtOTA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoJAiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgkSI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLXdpcmVsZXNzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoJIiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfoiI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn6MiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnpSI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp6YiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1oZWFydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIjyI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWhlYXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiJAiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1oZWFydC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiRIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktaGlnaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKoyI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnpwiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1sb2NrLW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnp0iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1sb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiqEiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1tZWRpdW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiqIiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfpCI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn6UiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1taW51cy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKMIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktbmVnYXRpdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgo0iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiZ0iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJniI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgo4iOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+mIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+nIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktcGx1cy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKPIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktcG9zaXRpdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgpAiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn6giOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfqSI7CiAgICB9CgogICAgLm1kaS1iYXR0ZXJ5LXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoLQiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS1zeW5jLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoLUiOwogICAgfQoKICAgIC5tZGktYmF0dGVyeS11bmtub3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKRIjsKICAgIH0KCiAgICAubWRpLWJhdHRlcnktdW5rbm93bi1ibHVldG9vdGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpYoiOwogICAgfQoKICAgIC5tZGktYmVhY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgpIiOwogICAgfQoKICAgIC5tZGktYmVha2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOqIjsKICAgIH0KCiAgICAubWRpLWJlYWtlci1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIqSI7CiAgICB9CgogICAgLm1kaS1iZWFrZXItYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIqiI7CiAgICB9CgogICAgLm1kaS1iZWFrZXItY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiKsiOwogICAgfQoKICAgIC5tZGktYmVha2VyLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiKwiOwogICAgfQoKICAgIC5tZGktYmVha2VyLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYitIjsKICAgIH0KCiAgICAubWRpLWJlYWtlci1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiuIjsKICAgIH0KCiAgICAubWRpLWJlYWtlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqQIjsKICAgIH0KCiAgICAubWRpLWJlYWtlci1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYivIjsKICAgIH0KCiAgICAubWRpLWJlYWtlci1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiLAiOwogICAgfQoKICAgIC5tZGktYmVha2VyLXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYixIjsKICAgIH0KCiAgICAubWRpLWJlYWtlci1xdWVzdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiyIjsKICAgIH0KCiAgICAubWRpLWJlYWtlci1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiLMiOwogICAgfQoKICAgIC5tZGktYmVha2VyLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYi0IjsKICAgIH0KCiAgICAubWRpLWJlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLoyI7CiAgICB9CgogICAgLm1kaS1iZWQtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrpQiOwogICAgfQoKICAgIC5tZGktYmVkLWRvdWJsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/lCI7CiAgICB9CgogICAgLm1kaS1iZWQtZG91YmxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv5MiOwogICAgfQoKICAgIC5tZGktYmVkLWVtcHR5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKgIjsKICAgIH0KCiAgICAubWRpLWJlZC1raW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+SIjsKICAgIH0KCiAgICAubWRpLWJlZC1raW5nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv5EiOwogICAgfQoKICAgIC5tZGktYmVkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgpkiOwogICAgfQoKICAgIC5tZGktYmVkLXF1ZWVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+QIjsKICAgIH0KCiAgICAubWRpLWJlZC1xdWVlbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+bIjsKICAgIH0KCiAgICAubWRpLWJlZC1zaW5nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxga0iOwogICAgfQoKICAgIC5tZGktYmVkLXNpbmdsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGuIjsKICAgIH0KCiAgICAubWRpLWJlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+oSI7CiAgICB9CgogICAgLm1kaS1iZWUtZmxvd2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6iIjsKICAgIH0KCiAgICAubWRpLWJlZWhpdmUtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj60iOwogICAgfQoKICAgIC5tZGktYmVlaGl2ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOOIjsKICAgIH0KCiAgICAubWRpLWJlZWtlZXBlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GToiI7CiAgICB9CgogICAgLm1kaS1iZWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKYIjsKICAgIH0KCiAgICAubWRpLWJlZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMjCI7CiAgICB9CgogICAgLm1kaS1iZWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKaIjsKICAgIH0KCiAgICAubWRpLWJlbGwtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZkiOwogICAgfQoKICAgIC5tZGktYmVsbC1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqBIjsKICAgIH0KCiAgICAubWRpLWJlbGwtYmFkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhasiOwogICAgfQoKICAgIC5tZGktYmVsbC1iYWRnZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIW4IjsKICAgIH0KCiAgICAubWRpLWJlbGwtY2FuY2VsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+nIjsKICAgIH0KCiAgICAubWRpLWJlbGwtY2FuY2VsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj6giOwogICAgfQoKICAgIC5tZGktYmVsbC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHpSI7CiAgICB9CgogICAgLm1kaS1iZWxsLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh6YiOwogICAgfQoKICAgIC5tZGktYmVsbC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZoiOwogICAgfQoKICAgIC5tZGktYmVsbC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1myI7CiAgICB9CgogICAgLm1kaS1iZWxsLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GoqSI7CiAgICB9CgogICAgLm1kaS1iZWxsLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaiqIjsKICAgIH0KCiAgICAubWRpLWJlbGwtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj6kiOwogICAgfQoKICAgIC5tZGktYmVsbC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+qIjsKICAgIH0KCiAgICAubWRpLWJlbGwtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKbIjsKICAgIH0KCiAgICAubWRpLWJlbGwtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqpEiOwogICAgfQoKICAgIC5tZGktYmVsbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKcIjsKICAgIH0KCiAgICAubWRpLWJlbGwtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCnSI7CiAgICB9CgogICAgLm1kaS1iZWxsLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqkiI7CiAgICB9CgogICAgLm1kaS1iZWxsLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPqyI7CiAgICB9CgogICAgLm1kaS1iZWxsLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+sIjsKICAgIH0KCiAgICAubWRpLWJlbGwtcmluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCniI7CiAgICB9CgogICAgLm1kaS1iZWxsLXJpbmctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCnyI7CiAgICB9CgogICAgLm1kaS1iZWxsLXNsZWVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKgIjsKICAgIH0KCiAgICAubWRpLWJlbGwtc2xlZXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqkyI7CiAgICB9CgogICAgLm1kaS1iZW5jaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwoSI7CiAgICB9CgogICAgLm1kaS1iZW5jaC1iYWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCiIjsKICAgIH0KCiAgICAubWRpLWJldGE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgqEiOwogICAgfQoKICAgIC5tZGktYmV0YW1heDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CniyI7CiAgICB9CgogICAgLm1kaS1iaWF0aGxvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4lCI7CiAgICB9CgogICAgLm1kaS1iaWN5Y2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKcIjsKICAgIH0KCiAgICAubWRpLWJpY3ljbGUtYmFza2V0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYi1IjsKICAgIH0KCiAgICAubWRpLWJpY3ljbGUtY2FyZ286YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxopwiOwogICAgfQoKICAgIC5tZGktYmljeWNsZS1lbGVjdHJpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWtCI7CiAgICB9CgogICAgLm1kaS1iaWN5Y2xlLXBlbm55LWZhcnRoaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZepIjsKICAgIH0KCiAgICAubWRpLWJpa2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgqMiOwogICAgfQoKICAgIC5tZGktYmlrZS1mYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSfIjsKICAgIH0KCiAgICAubWRpLWJpa2UtcGVkYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsKMiOwogICAgfQoKICAgIC5tZGktYmlrZS1wZWRhbC1jbGlwbGVzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwpCI7CiAgICB9CgogICAgLm1kaS1iaWtlLXBlZGFsLW1vdW50YWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbClIjsKICAgIH0KCiAgICAubWRpLWJpbGxib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAkCI7CiAgICB9CgogICAgLm1kaS1iaWxsaWFyZHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwraEiOwogICAgfQoKICAgIC5tZGktYmlsbGlhcmRzLXJhY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwraIiOwogICAgfQoKICAgIC5tZGktYmlub2N1bGFyczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCpSI7CiAgICB9CgogICAgLm1kaS1iaW86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgqYiOwogICAgfQoKICAgIC5tZGktYmlvaGF6YXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKnIjsKICAgIH0KCiAgICAubWRpLWJpcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl4YiOwogICAgfQoKICAgIC5tZGktYml0YnVja2V0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKoIjsKICAgIH0KCiAgICAubWRpLWJpdGNvaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoJMiOwogICAgfQoKICAgIC5tZGktYmxhY2stbWVzYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCqSI7CiAgICB9CgogICAgLm1kaS1ibGVuZGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOrIjsKICAgIH0KCiAgICAubWRpLWJsZW5kZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgmiI7CiAgICB9CgogICAgLm1kaS1ibGVuZGVyLXNvZnR3YXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKrIjsKICAgIH0KCiAgICAubWRpLWJsaW5kczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCrCI7CiAgICB9CgogICAgLm1kaS1ibGluZHMtaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GoqyI7CiAgICB9CgogICAgLm1kaS1ibGluZHMtaG9yaXpvbnRhbC1jbG9zZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqKwiOwogICAgfQoKICAgIC5tZGktYmxpbmRzLW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgJEiOwogICAgfQoKICAgIC5tZGktYmxpbmRzLXZlcnRpY2FsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaitIjsKICAgIH0KCiAgICAubWRpLWJsaW5kcy12ZXJ0aWNhbC1jbG9zZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqK4iOwogICAgfQoKICAgIC5tZGktYmxvY2staGVscGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKtIjsKICAgIH0KCiAgICAubWRpLWJsb29kLWJhZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzrCI7CiAgICB9CgogICAgLm1kaS1ibHVldG9vdGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgq8iOwogICAgfQoKICAgIC5tZGktYmx1ZXRvb3RoLWF1ZGlvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKwIjsKICAgIH0KCiAgICAubWRpLWJsdWV0b290aC1jb25uZWN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKxIjsKICAgIH0KCiAgICAubWRpLWJsdWV0b290aC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgrIiOwogICAgfQoKICAgIC5tZGktYmx1ZXRvb3RoLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKzIjsKICAgIH0KCiAgICAubWRpLWJsdWV0b290aC10cmFuc2ZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCtCI7CiAgICB9CgogICAgLm1kaS1ibHVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIK1IjsKICAgIH0KCiAgICAubWRpLWJsdXItbGluZWFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIK2IjsKICAgIH0KCiAgICAubWRpLWJsdXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIK3IjsKICAgIH0KCiAgICAubWRpLWJsdXItcmFkaWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIK4IjsKICAgIH0KCiAgICAubWRpLWJvbHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtrMiOwogICAgfQoKICAgIC5tZGktYm9tYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CakSI7CiAgICB9CgogICAgLm1kaS1ib21iLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbhSI7CiAgICB9CgogICAgLm1kaS1ib25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIK5IjsKICAgIH0KCiAgICAubWRpLWJvbmUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaegIjsKICAgIH0KCiAgICAubWRpLWJvb2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgroiOwogICAgfQoKICAgIC5tZGktYm9vay1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6tIjsKICAgIH0KCiAgICAubWRpLWJvb2stYWNjb3VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6uIjsKICAgIH0KCiAgICAubWRpLWJvb2stYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmbwiOwogICAgfQoKICAgIC5tZGktYm9vay1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm9IjsKICAgIH0KCiAgICAubWRpLWJvb2stYWxwaGFiZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJ0iOwogICAgfQoKICAgIC5tZGktYm9vay1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm+IjsKICAgIH0KCiAgICAubWRpLWJvb2stYXJyb3ctZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm/IjsKICAgIH0KCiAgICAubWRpLWJvb2stYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GagCI7CiAgICB9CgogICAgLm1kaS1ib29rLWFycm93LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GagSI7CiAgICB9CgogICAgLm1kaS1ib29rLWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqCIjsKICAgIH0KCiAgICAubWRpLWJvb2stYXJyb3ctcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GagyI7CiAgICB9CgogICAgLm1kaS1ib29rLWFycm93LXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqEIjsKICAgIH0KCiAgICAubWRpLWJvb2stYXJyb3ctdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GahSI7CiAgICB9CgogICAgLm1kaS1ib29rLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GahiI7CiAgICB9CgogICAgLm1kaS1ib29rLWNhbmNlbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqHIjsKICAgIH0KCiAgICAubWRpLWJvb2stY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk7MiOwogICAgfQoKICAgIC5tZGktYm9vay1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZO0IjsKICAgIH0KCiAgICAubWRpLWJvb2stY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmogiOwogICAgfQoKICAgIC5tZGktYm9vay1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqJIjsKICAgIH0KCiAgICAubWRpLWJvb2stY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqKIjsKICAgIH0KCiAgICAubWRpLWJvb2stY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmosiOwogICAgfQoKICAgIC5tZGktYm9vay1jcm9zczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCoiI7CiAgICB9CgogICAgLm1kaS1ib29rLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmowiOwogICAgfQoKICAgIC5tZGktYm9vay1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmo0iOwogICAgfQoKICAgIC5tZGktYm9vay1lZHVjYXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm4kiOwogICAgfQoKICAgIC5tZGktYm9vay1lZHVjYXRpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbiiI7CiAgICB9CgogICAgLm1kaS1ib29rLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaidIjsKICAgIH0KCiAgICAubWRpLWJvb2staGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GoniI7CiAgICB9CgogICAgLm1kaS1ib29rLWluZm9ybWF0aW9uLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxga8iOwogICAgfQoKICAgIC5tZGktYm9vay1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6aIjsKICAgIH0KCiAgICAubWRpLWJvb2stbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6bIjsKICAgIH0KCiAgICAubWRpLWJvb2stbG9jay1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmo4iOwogICAgfQoKICAgIC5tZGktYm9vay1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmo8iOwogICAgfQoKICAgIC5tZGktYm9vay1tYXJrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmpAiOwogICAgfQoKICAgIC5tZGktYm9vay1tYXJrZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GakSI7CiAgICB9CgogICAgLm1kaS1ib29rLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeZIjsKICAgIH0KCiAgICAubWRpLWJvb2stbWludXMtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqpQiOwogICAgfQoKICAgIC5tZGktYm9vay1taW51cy1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSLIjsKICAgIH0KCiAgICAubWRpLWJvb2stbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GakiI7CiAgICB9CgogICAgLm1kaS1ib29rLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIK7IjsKICAgIH0KCiAgICAubWRpLWJvb2stbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQtiI7CiAgICB9CgogICAgLm1kaS1ib29rLW11c2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIGnIjsKICAgIH0KCiAgICAubWRpLWJvb2stbXVzaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GakyI7CiAgICB9CgogICAgLm1kaS1ib29rLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GalCI7CiAgICB9CgogICAgLm1kaS1ib29rLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqVIjsKICAgIH0KCiAgICAubWRpLWJvb2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCvSI7CiAgICB9CgogICAgLm1kaS1ib29rLW9wZW4tYmxhbmstdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCviI7CiAgICB9CgogICAgLm1kaS1ib29rLW9wZW4tYmxhbmstdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOLIjsKICAgIH0KCiAgICAubWRpLWJvb2stb3Blbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2jIjsKICAgIH0KCiAgICAubWRpLWJvb2stb3Blbi1wYWdlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl5oiOwogICAgfQoKICAgIC5tZGktYm9vay1vcGVuLXBhZ2UtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeWIjsKICAgIH0KCiAgICAubWRpLWJvb2stb3Blbi12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZO3IjsKICAgIH0KCiAgICAubWRpLWJvb2stb3Blbi12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs4wiOwogICAgfQoKICAgIC5tZGktYm9vay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2kIjsKICAgIH0KCiAgICAubWRpLWJvb2stcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6giI7CiAgICB9CgogICAgLm1kaS1ib29rLXBsYXktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6gyI7CiAgICB9CgogICAgLm1kaS1ib29rLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl5siOwogICAgfQoKICAgIC5tZGktYm9vay1wbHVzLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqVIjsKICAgIH0KCiAgICAubWRpLWJvb2stcGx1cy1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKueIjsKICAgIH0KCiAgICAubWRpLWJvb2stcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqWIjsKICAgIH0KCiAgICAubWRpLWJvb2stcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GalyI7CiAgICB9CgogICAgLm1kaS1ib29rLXJlZnJlc2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GamCI7CiAgICB9CgogICAgLm1kaS1ib29rLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqlyI7CiAgICB9CgogICAgLm1kaS1ib29rLXJlbW92ZS1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqliI7CiAgICB9CgogICAgLm1kaS1ib29rLXJlbW92ZS1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOKIjsKICAgIH0KCiAgICAubWRpLWJvb2stcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmpkiOwogICAgfQoKICAgIC5tZGktYm9vay1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuoQiOwogICAgfQoKICAgIC5tZGktYm9vay1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6hSI7CiAgICB9CgogICAgLm1kaS1ib29rLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqaIjsKICAgIH0KCiAgICAubWRpLWJvb2stc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GamyI7CiAgICB9CgogICAgLm1kaS1ib29rLXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmpwiOwogICAgfQoKICAgIC5tZGktYm9vay1zeW5jLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm4giOwogICAgfQoKICAgIC5tZGktYm9vay12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIK/IjsKICAgIH0KCiAgICAubWRpLWJvb2ttYXJrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOAIjsKICAgIH0KCiAgICAubWRpLWJvb2ttYXJrLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GttSI7CiAgICB9CgogICAgLm1kaS1ib29rbWFyay1ib3gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpawiOwogICAgfQoKICAgIC5tZGktYm9va21hcmstYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpa0iOwogICAgfQoKICAgIC5tZGktYm9va21hcmstYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrbYiOwogICAgfQoKICAgIC5tZGktYm9va21hcmstY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg4EiOwogICAgfQoKICAgIC5tZGktYm9va21hcmstY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNuyI7CiAgICB9CgogICAgLm1kaS1ib29rbWFyay1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnjCI7CiAgICB9CgogICAgLm1kaS1ib29rbWFyay1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeNIjsKICAgIH0KCiAgICAubWRpLWJvb2ttYXJrLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiVIjsKICAgIH0KCiAgICAubWRpLWJvb2ttYXJrLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuJYiOwogICAgfQoKICAgIC5tZGktYm9va21hcmstbXVzaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg4IiOwogICAgfQoKICAgIC5tZGktYm9va21hcmstbXVzaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNuSI7CiAgICB9CgogICAgLm1kaS1ib29rbWFyay1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp44iOwogICAgfQoKICAgIC5tZGktYm9va21hcmstb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp48iOwogICAgfQoKICAgIC5tZGktYm9va21hcmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDgyI7CiAgICB9CgogICAgLm1kaS1ib29rbWFyay1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOFIjsKICAgIH0KCiAgICAubWRpLWJvb2ttYXJrLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDhCI7CiAgICB9CgogICAgLm1kaS1ib29rbWFyay1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg4YiOwogICAgfQoKICAgIC5tZGktYm9va21hcmstcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjboiOwogICAgfQoKICAgIC5tZGktYm9va3NoZWxmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmfIjsKICAgIH0KCiAgICAubWRpLWJvb20tZ2F0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6hiI7CiAgICB9CgogICAgLm1kaS1ib29tLWdhdGUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuociOwogICAgfQoKICAgIC5tZGktYm9vbS1nYXRlLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuogiOwogICAgfQoKICAgIC5tZGktYm9vbS1nYXRlLWFycm93LWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuokiOwogICAgfQoKICAgIC5tZGktYm9vbS1nYXRlLWFycm93LWRvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6iiI7CiAgICB9CgogICAgLm1kaS1ib29tLWdhdGUtYXJyb3ctdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuowiOwogICAgfQoKICAgIC5tZGktYm9vbS1nYXRlLWFycm93LXVwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuo0iOwogICAgfQoKICAgIC5tZGktYm9vbS1nYXRlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuosiOwogICAgfQoKICAgIC5tZGktYm9vbS1nYXRlLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+5IjsKICAgIH0KCiAgICAubWRpLWJvb20tZ2F0ZS11cC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+6IjsKICAgIH0KCiAgICAubWRpLWJvb21ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl5wiOwogICAgfQoKICAgIC5tZGktYm9vbWVyYW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOPIjsKICAgIH0KCiAgICAubWRpLWJvb3RzdHJhcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbhiI7CiAgICB9CgogICAgLm1kaS1ib3JkZXItYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOHIjsKICAgIH0KCiAgICAubWRpLWJvcmRlci1hbGwtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CioSI7CiAgICB9CgogICAgLm1kaS1ib3JkZXItYm90dG9tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOIIjsKICAgIH0KCiAgICAubWRpLWJvcmRlci1ib3R0b20tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CioiI7CiAgICB9CgogICAgLm1kaS1ib3JkZXItY29sb3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg4kiOwogICAgfQoKICAgIC5tZGktYm9yZGVyLWhvcml6b250YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg4oiOwogICAgfQoKICAgIC5tZGktYm9yZGVyLWluc2lkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDiyI7CiAgICB9CgogICAgLm1kaS1ib3JkZXItbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDjCI7CiAgICB9CgogICAgLm1kaS1ib3JkZXItbGVmdC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKjIjsKICAgIH0KCiAgICAubWRpLWJvcmRlci1ub25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIONIjsKICAgIH0KCiAgICAubWRpLWJvcmRlci1ub25lLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoqQiOwogICAgfQoKICAgIC5tZGktYm9yZGVyLW91dHNpZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg44iOwogICAgfQoKICAgIC5tZGktYm9yZGVyLXJhZGl1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrtCI7CiAgICB9CgogICAgLm1kaS1ib3JkZXItcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg48iOwogICAgfQoKICAgIC5tZGktYm9yZGVyLXJpZ2h0LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoqUiOwogICAgfQoKICAgIC5tZGktYm9yZGVyLXN0eWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOQIjsKICAgIH0KCiAgICAubWRpLWJvcmRlci10b3A6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg5EiOwogICAgfQoKICAgIC5tZGktYm9yZGVyLXRvcC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKmIjsKICAgIH0KCiAgICAubWRpLWJvcmRlci12ZXJ0aWNhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDkiI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtc29kYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBsCI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtc29kYS1jbGFzc2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGxIjsKICAgIH0KCiAgICAubWRpLWJvdHRsZS1zb2RhLWNsYXNzaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNoyI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtc29kYS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGyIjsKICAgIH0KCiAgICAubWRpLWJvdHRsZS10b25pYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEriI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtdG9uaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEryI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtdG9uaWMtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEsCI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtdG9uaWMtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSxIjsKICAgIH0KCiAgICAubWRpLWJvdHRsZS10b25pYy1za3VsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEsiI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtdG9uaWMtc2t1bGwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEsyI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtd2luZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChlCI7CiAgICB9CgogICAgLm1kaS1ib3R0bGUtd2luZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyQIjsKICAgIH0KCiAgICAubWRpLWJvdy1hcnJvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhgSI7CiAgICB9CgogICAgLm1kaS1ib3ctdGllOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJm4IjsKICAgIH0KCiAgICAubWRpLWJvd2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwio4iOwogICAgfQoKICAgIC5tZGktYm93bC1taXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJciOwogICAgfQoKICAgIC5tZGktYm93bC1taXgtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLpCI7CiAgICB9CgogICAgLm1kaS1ib3dsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiqkiOwogICAgfQoKICAgIC5tZGktYm93bGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDkyI7CiAgICB9CgogICAgLm1kaS1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg5QiOwogICAgfQoKICAgIC5tZGktYm94LWN1dHRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDlSI7CiAgICB9CgogICAgLm1kaS1ib3gtY3V0dGVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtiiI7CiAgICB9CgogICAgLm1kaS1ib3gtc2hhZG93OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJi3IjsKICAgIH0KCiAgICAubWRpLWJveGluZy1nbG92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtpSI7CiAgICB9CgogICAgLm1kaS1icmFpbGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeQIjsKICAgIH0KCiAgICAubWRpLWJyYWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeRIjsKICAgIH0KCiAgICAubWRpLWJyZWFkLXNsaWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOuIjsKICAgIH0KCiAgICAubWRpLWJyZWFkLXNsaWNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws68iOwogICAgfQoKICAgIC5tZGktTkNvbm5lY3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJgiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOWIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOwIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1hY2NvdW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws7EiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLWFycm93LWxlZnQtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqo0iOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLWFycm93LWxlZnQtcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqjiI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2UtYXJyb3ctdXAtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqjyI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2UtYXJyb3ctdXAtZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqQIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDlyI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2UtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMniI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2UtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg5AiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg5EiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLWRvd25sb2FkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOYIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1kb3dubG9hZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLC9IjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqYIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsL4iOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfmSI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2UtZXllLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn5oiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiqIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLC/IjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmZgiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmZIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCUIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKirIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYAiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CorCI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2UtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYEiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CorSI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2Utc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYIiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLXVwbG9hZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDmSI7CiAgICB9CgogICAgLm1kaS1icmllZmNhc2UtdXBsb2FkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYMiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkpQiOwogICAgfQoKICAgIC5tZGktYnJpZWZjYXNlLXZhcmlhbnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmaIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS12YXJpYW50LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmbIjsKICAgIH0KCiAgICAubWRpLWJyaWVmY2FzZS12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkpUiOwogICAgfQoKICAgIC5tZGktYnJpZ2h0bmVzcy0xOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOaIjsKICAgIH0KCiAgICAubWRpLWJyaWdodG5lc3MtMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDmyI7CiAgICB9CgogICAgLm1kaS1icmlnaHRuZXNzLTM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg5wiOwogICAgfQoKICAgIC5tZGktYnJpZ2h0bmVzcy00OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOdIjsKICAgIH0KCiAgICAubWRpLWJyaWdodG5lc3MtNTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDniI7CiAgICB9CgogICAgLm1kaS1icmlnaHRuZXNzLTY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg58iOwogICAgfQoKICAgIC5tZGktYnJpZ2h0bmVzcy03OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOgIjsKICAgIH0KCiAgICAubWRpLWJyaWdodG5lc3MtYXV0bzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDoSI7CiAgICB9CgogICAgLm1kaS1icmlnaHRuZXNzLXBlcmNlbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws7IiOwogICAgfQoKICAgIC5tZGktYnJvYWRjYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZygIjsKICAgIH0KCiAgICAubWRpLWJyb2FkY2FzdC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnKEiOwogICAgfQoKICAgIC5tZGktYnJvb206YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg6IiOwogICAgfQoKICAgIC5tZGktYnJ1c2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg6MiOwogICAgfQoKICAgIC5tZGktYnJ1c2gtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2xIjsKICAgIH0KCiAgICAubWRpLWJydXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqI0iOwogICAgfQoKICAgIC5tZGktYnJ1c2gtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgkyI7CiAgICB9CgogICAgLm1kaS1idWNrZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkJUiOwogICAgfQoKICAgIC5tZGktYnVja2V0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkJYiOwogICAgfQoKICAgIC5tZGktYnVmZmV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJW4IjsKICAgIH0KCiAgICAubWRpLWJ1ZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDpCI7CiAgICB9CgogICAgLm1kaS1idWctY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqK4iOwogICAgfQoKICAgIC5tZGktYnVnLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqK8iOwogICAgfQoKICAgIC5tZGktYnVnLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqLAiOwogICAgfQoKICAgIC5tZGktYnVnLXBhdXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsau1IjsKICAgIH0KCiAgICAubWRpLWJ1Zy1wYXVzZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsau2IjsKICAgIH0KCiAgICAubWRpLWJ1Zy1wbGF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsau3IjsKICAgIH0KCiAgICAubWRpLWJ1Zy1wbGF5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq7giOwogICAgfQoKICAgIC5tZGktYnVnLXN0b3A6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq7kiOwogICAgfQoKICAgIC5tZGktYnVnLXN0b3Atb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GruiI7CiAgICB9CgogICAgLm1kaS1idWdsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2tCI7CiAgICB9CgogICAgLm1kaS1idWxraGVhZC1saWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GoryI7CiAgICB9CgogICAgLm1kaS1idWxsZG96ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrKIiOwogICAgfQoKICAgIC5tZGktYnVsbGV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOzIjsKICAgIH0KCiAgICAubWRpLWJ1bGxldGluLWJvYXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOlIjsKICAgIH0KCiAgICAubWRpLWJ1bGxob3JuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOmIjsKICAgIH0KCiAgICAubWRpLWJ1bGxob3JuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrKMiOwogICAgfQoKICAgIC5tZGktYnVsbGhvcm4tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlriI7CiAgICB9CgogICAgLm1kaS1idWxsaG9ybi12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpa8iOwogICAgfQoKICAgIC5tZGktYnVsbHNleWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl50iOwogICAgfQoKICAgIC5tZGktYnVsbHNleWUtYXJyb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo4kiOwogICAgfQoKICAgIC5tZGktYnVsbWE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi6ciOwogICAgfQoKICAgIC5tZGktYnVuay1iZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjIIiOwogICAgfQoKICAgIC5tZGktYnVuay1iZWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CClyI7CiAgICB9CgogICAgLm1kaS1idXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg6ciOwogICAgfQoKICAgIC5tZGktYnVzLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqZIjsKICAgIH0KCiAgICAubWRpLWJ1cy1hcnRpY3VsYXRlZC1lbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnpwiOwogICAgfQoKICAgIC5tZGktYnVzLWFydGljdWxhdGVkLWZyb250OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6dIjsKICAgIH0KCiAgICAubWRpLWJ1cy1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjiiI7CiAgICB9CgogICAgLm1kaS1idXMtZG91YmxlLWRlY2tlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeniI7CiAgICB9CgogICAgLm1kaS1idXMtZWxlY3RyaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpJ0iOwogICAgfQoKICAgIC5tZGktYnVzLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIkiI7CiAgICB9CgogICAgLm1kaS1idXMtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvL8iOwogICAgfQoKICAgIC5tZGktYnVzLXNjaG9vbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CenyI7CiAgICB9CgogICAgLm1kaS1idXMtc2lkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeoCI7CiAgICB9CgogICAgLm1kaS1idXMtc2lnbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzgSI7CiAgICB9CgogICAgLm1kaS1idXMtc3RvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAkiI7CiAgICB9CgogICAgLm1kaS1idXMtc3RvcC1jb3ZlcmVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCTIjsKICAgIH0KCiAgICAubWRpLWJ1cy1zdG9wLXVuY292ZXJlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAlCI7CiAgICB9CgogICAgLm1kaS1idXMtd3JlbmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOCIjsKICAgIH0KCiAgICAubWRpLWJ1dHRlcmZseTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWiSI7CiAgICB9CgogICAgLm1kaS1idXR0ZXJmbHktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWiiI7CiAgICB9CgogICAgLm1kaS1idXR0b24tY3Vyc29yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2PIjsKICAgIH0KCiAgICAubWRpLWJ1dHRvbi1wb2ludGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2QIjsKICAgIH0KCiAgICAubWRpLWNhYmluLWEtZnJhbWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoowiOwogICAgfQoKICAgIC5tZGktY2FibGUtZGF0YTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOlCI7CiAgICB9CgogICAgLm1kaS1jYWNoZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg6giOwogICAgfQoKICAgIC5tZGktY2FjdHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLa1IjsKICAgIH0KCiAgICAubWRpLWNha2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg6kiOwogICAgfQoKICAgIC5tZGktY2FrZS1sYXllcmVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOqIjsKICAgIH0KCiAgICAubWRpLWNha2UtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDqyI7CiAgICB9CgogICAgLm1kaS1jYWtlLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfsCI7CiAgICB9CgogICAgLm1kaS1jYWxjdWxhdG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOsIjsKICAgIH0KCiAgICAubWRpLWNhbGN1bGF0b3ItdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqmiI7CiAgICB9CgogICAgLm1kaS1jYWxjdWxhdG9yLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWpiI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDrSI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuXIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWFjY291bnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7mCI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CosSI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2iIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWFycm93LWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhLQiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhLUiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItYmFkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrp0iOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItYmFkZ2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuniI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1ibGFuazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDriI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1ibGFuay1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBsyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1ibGFuay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2mIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOvIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYQiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg7AiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItY2xvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GboSI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1jb2xsYXBzZS1ob3Jpem9udGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKdIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWNvbGxhcHNlLWhvcml6b250YWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtoyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1jdXJzb3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlbsiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItY3Vyc29yLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxraQiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CipyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxraUiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmsIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWVuZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2mIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWV4cGFuZC1ob3Jpem9udGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKeIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWV4cGFuZC1ob3Jpem9udGFsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxraciOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItZXhwb3J0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKykIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWV4cG9ydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2oIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWZpbHRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GosiI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1maWx0ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GosyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1oZWFydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnkiI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1oZWFydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2pIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWltcG9ydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CspSI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1pbXBvcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtqiI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmBIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtmyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1sb2NrLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtnCI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmYIiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZwiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtqyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1tb250aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4lyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1tb250aC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiYIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOxIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLW11bHRpcGxlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOyIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLW11bHRpc2VsZWN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiyIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLW11bHRpc2VsZWN0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrZUiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtpyI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIOzIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtrCI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CakiI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1xdWVzdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2tIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXJhbmdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJm5IjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXJhbmdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwragiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHoSI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1yZWZyZXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiIMiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIO0IjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGFIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CljCI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtriI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeTIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXN0YXItZm91ci1wb2ludHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsJ8iOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItc3Rhci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2TIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXN0YXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmtIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXN0YXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxra8iOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6jiI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci1zeW5jLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuo8iOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItdGV4dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDtSI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci10ZXh0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYYiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItdG9kYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg7YiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItdG9kYXktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GosCI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci13ZWVrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKizIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXdlZWstYmVnaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqLQiOwogICAgfQoKICAgIC5tZGktY2FsZW5kYXItd2Vlay1iZWdpbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaixIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXdlZWstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GotCI7CiAgICB9CgogICAgLm1kaS1jYWxlbmRhci13ZWVrZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuZIjsKICAgIH0KCiAgICAubWRpLWNhbGVuZGFyLXdlZWtlbmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7miI7CiAgICB9CgogICAgLm1kaS1jYWxsLW1hZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg7ciOwogICAgfQoKICAgIC5tZGktY2FsbC1tZXJnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDuCI7CiAgICB9CgogICAgLm1kaS1jYWxsLW1pc3NlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CDuSI7CiAgICB9CgogICAgLm1kaS1jYWxsLXJlY2VpdmVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIO6IjsKICAgIH0KCiAgICAubWRpLWNhbGwtc3BsaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg7siOwogICAgfQoKICAgIC5tZGktY2FtY29yZGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIO8IjsKICAgIH0KCiAgICAubWRpLWNhbWNvcmRlci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwg78iOwogICAgfQoKICAgIC5tZGktY2FtZXJhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISAIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOLIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1idXJzdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CakyI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtY29udHJvbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtqSI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtZG9jdW1lbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxobEiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLWRvY3VtZW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhsiI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtZW5oYW5jZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEgSI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtZW5oYW5jZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2qIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1mbGlwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeZIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1mbGlwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl5oiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLWZyb250OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISCIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1mcm9udC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISDIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1nb3BybzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeoSI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtaW1hZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo4wiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLWlyaXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhIQiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqJQiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwjSI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtbG9jay1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsI4iOwogICAgfQoKICAgIC5tZGktY2FtZXJhLWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GolSI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaanIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1tYXJrZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmqCI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtbWV0ZXJpbmctY2VudGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6iIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1tZXRlcmluZy1tYXRyaXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnqMiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLW1ldGVyaW5nLXBhcnRpYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnqQiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLW1ldGVyaW5nLXNwb3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnqUiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXnyI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpr8iOwogICAgfQoKICAgIC5tZGktY2FtZXJhLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZ0iOwogICAgfQoKICAgIC5tZGktY2FtZXJhLXBhcnR5LW1vZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhIUiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu5siOwogICAgfQoKICAgIC5tZGktY2FtZXJhLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7nCI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtcmVhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEhiI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtcmVhci12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISHIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1yZXRha2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuJkiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLXJldGFrZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiaIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS1zd2l0Y2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhIgiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLXN3aXRjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGKIjsKICAgIH0KCiAgICAubWRpLWNhbWVyYS10aW1lcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEiSI7CiAgICB9CgogICAgLm1kaS1jYW1lcmEtd2lyZWxlc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtrYiOwogICAgfQoKICAgIC5tZGktY2FtZXJhLXdpcmVsZXNzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtrciOwogICAgfQoKICAgIC5tZGktY2FtcGZpcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu50iOwogICAgfQoKICAgIC5tZGktY2FuY2VsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJy6IjsKICAgIH0KCiAgICAubWRpLWNhbmRlbGFicmE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn5IiOwogICAgfQoKICAgIC5tZGktY2FuZGVsYWJyYS1maXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+TIjsKICAgIH0KCiAgICAubWRpLWNhbmRsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXoiI7CiAgICB9CgogICAgLm1kaS1jYW5keTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlsCI7CiAgICB9CgogICAgLm1kaS1jYW5keS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpbEiOwogICAgfQoKICAgIC5tZGktY2FuZHktb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpbIiOwogICAgfQoKICAgIC5tZGktY2FuZHktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlsyI7CiAgICB9CgogICAgLm1kaS1jYW5keWNhbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhIoiOwogICAgfQoKICAgIC5tZGktY2FubmFiaXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnqYiOwogICAgfQoKICAgIC5tZGktY2FubmFiaXMtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmuIjsKICAgIH0KCiAgICAubWRpLWNhcHMtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqmyI7CiAgICB9CgogICAgLm1kaS1jYXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhIsiOwogICAgfQoKICAgIC5tZGktY2FyLTItcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAlSI7CiAgICB9CgogICAgLm1kaS1jYXItMy1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCWIjsKICAgIH0KCiAgICAubWRpLWNhci1hcnJvdy1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6yIjsKICAgIH0KCiAgICAubWRpLWNhci1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOsyI7CiAgICB9CgogICAgLm1kaS1jYXItYmFjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4myI7CiAgICB9CgogICAgLm1kaS1jYXItYmF0dGVyeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEjCI7CiAgICB9CgogICAgLm1kaS1jYXItYnJha2UtYWJzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGHIjsKICAgIH0KCiAgICAubWRpLWNhci1icmFrZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxiCI7CiAgICB9CgogICAgLm1kaS1jYXItYnJha2UtZmx1aWQtbGV2ZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpIkiOwogICAgfQoKICAgIC5tZGktY2FyLWJyYWtlLWhvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtZ4iOwogICAgfQoKICAgIC5tZGktY2FyLWJyYWtlLWxvdy1wcmVzc3VyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkiiI7CiAgICB9CgogICAgLm1kaS1jYXItYnJha2UtcGFya2luZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1nyI7CiAgICB9CgogICAgLm1kaS1jYXItYnJha2UtcmV0YXJkZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgJciOwogICAgfQoKICAgIC5tZGktY2FyLWJyYWtlLXRlbXBlcmF0dXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSLIjsKICAgIH0KCiAgICAubWRpLWNhci1icmFrZS13b3JuLWxpbmluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpIwiOwogICAgfQoKICAgIC5tZGktY2FyLWNoaWxkLXNlYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvqMiOwogICAgfQoKICAgIC5tZGktY2FyLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaW0IjsKICAgIH0KCiAgICAubWRpLWNhci1jbHV0Y2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgJgiOwogICAgfQoKICAgIC5tZGktY2FyLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPjCI7CiAgICB9CgogICAgLm1kaS1jYXItY29ubmVjdGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISNIjsKICAgIH0KCiAgICAubWRpLWNhci1jb252ZXJ0aWJsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CepyI7CiAgICB9CgogICAgLm1kaS1jYXItY29vbGFudC1sZXZlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAmSI7CiAgICB9CgogICAgLm1kaS1jYXItY3J1aXNlLWNvbnRyb2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtaAiOwogICAgfQoKICAgIC5tZGktY2FyLWRlZnJvc3QtZnJvbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtaEiOwogICAgfQoKICAgIC5tZGktY2FyLWRlZnJvc3QtcmVhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1oiI7CiAgICB9CgogICAgLm1kaS1jYXItZG9vcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtqyI7CiAgICB9CgogICAgLm1kaS1jYXItZG9vci1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKdIjsKICAgIH0KCiAgICAubWRpLWNhci1kb29yLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GygSI7CiAgICB9CgogICAgLm1kaS1jYXItZWxlY3RyaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrawiOwogICAgfQoKICAgIC5tZGktY2FyLWVsZWN0cmljLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlrUiOwogICAgfQoKICAgIC5tZGktY2FyLWVtZXJnZW5jeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYjyI7CiAgICB9CgogICAgLm1kaS1jYXItZXNwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGJIjsKICAgIH0KCiAgICAubWRpLWNhci1lc3RhdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnqgiOwogICAgfQoKICAgIC5tZGktY2FyLWhhdGNoYmFjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeqSI7CiAgICB9CgogICAgLm1kaS1jYXItaW5mbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGviI7CiAgICB9CgogICAgLm1kaS1jYXIta2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2tIjsKICAgIH0KCiAgICAubWRpLWNhci1saWZ0ZWQtcGlja3VwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZStIjsKICAgIH0KCiAgICAubWRpLWNhci1saWdodC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkjSI7CiAgICB9CgogICAgLm1kaS1jYXItbGlnaHQtZGltbWVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGKIjsKICAgIH0KCiAgICAubWRpLWNhci1saWdodC1mb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYsiOwogICAgfQoKICAgIC5tZGktY2FyLWxpZ2h0LWhpZ2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsYwiOwogICAgfQoKICAgIC5tZGktY2FyLWxpbW91c2luZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjjSI7CiAgICB9CgogICAgLm1kaS1jYXItbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwra4iOwogICAgfQoKICAgIC5tZGktY2FyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4nCI7CiAgICB9CgogICAgLm1kaS1jYXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTrSI7CiAgICB9CgogICAgLm1kaS1jYXItcGFya2luZy1saWdodHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtaMiOwogICAgfQoKICAgIC5tZGktY2FyLXBpY2t1cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeqiI7CiAgICB9CgogICAgLm1kaS1jYXItc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6NIjsKICAgIH0KCiAgICAubWRpLWNhci1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GujiI7CiAgICB9CgogICAgLm1kaS1jYXItc2VhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+pCI7CiAgICB9CgogICAgLm1kaS1jYXItc2VhdC1jb29sZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvqUiOwogICAgfQoKICAgIC5tZGktY2FyLXNlYXQtaGVhdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6mIjsKICAgIH0KCiAgICAubWRpLWNhci1zZWxlY3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxobkiOwogICAgfQoKICAgIC5tZGktY2FyLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+NIjsKICAgIH0KCiAgICAubWRpLWNhci1zaGlmdC1wYXR0ZXJuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2AIjsKICAgIH0KCiAgICAubWRpLWNhci1zaWRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6rIjsKICAgIH0KCiAgICAubWRpLWNhci1zcGVlZC1saW1pdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSOIjsKICAgIH0KCiAgICAubWRpLWNhci1zcG9ydHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnqwiOwogICAgfQoKICAgIC5tZGktY2FyLXRpcmUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsY0iOwogICAgfQoKICAgIC5tZGktY2FyLXRyYWN0aW9uLWNvbnRyb2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtaQiOwogICAgfQoKICAgIC5tZGktY2FyLXR1cmJvY2hhcmdlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAmiI7CiAgICB9CgogICAgLm1kaS1jYXItd2FzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEjiI7CiAgICB9CgogICAgLm1kaS1jYXItd2luZHNoaWVsZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAmyI7CiAgICB9CgogICAgLm1kaS1jYXItd2luZHNoaWVsZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCcIjsKICAgIH0KCiAgICAubWRpLWNhci13aXJlbGVzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhuCI7CiAgICB9CgogICAgLm1kaS1jYXItd3JlbmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCUIjsKICAgIH0KCiAgICAubWRpLWNhcmFiaW5lcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTgCI7CiAgICB9CgogICAgLm1kaS1jYXJhdmFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6tIjsKICAgIH0KCiAgICAubWRpLWNhcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwra8iOwogICAgfQoKICAgIC5tZGktY2FyZC1hY2NvdW50LWRldGFpbHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl5IiOwogICAgfQoKICAgIC5tZGktY2FyZC1hY2NvdW50LWRldGFpbHMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2qyI7CiAgICB9CgogICAgLm1kaS1jYXJkLWFjY291bnQtZGV0YWlscy1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqjIjsKICAgIH0KCiAgICAubWRpLWNhcmQtYWNjb3VudC1kZXRhaWxzLXN0YXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbmyI7CiAgICB9CgogICAgLm1kaS1jYXJkLWFjY291bnQtbWFpbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGjiI7CiAgICB9CgogICAgLm1kaS1jYXJkLWFjY291bnQtbWFpbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqYIjsKICAgIH0KCiAgICAubWRpLWNhcmQtYWNjb3VudC1waG9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6mSI7CiAgICB9CgogICAgLm1kaS1jYXJkLWFjY291bnQtcGhvbmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6miI7CiAgICB9CgogICAgLm1kaS1jYXJkLWJ1bGxldGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2wIjsKICAgIH0KCiAgICAubWRpLWNhcmQtYnVsbGV0ZWQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2xIjsKICAgIH0KCiAgICAubWRpLWNhcmQtYnVsbGV0ZWQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrbIiOwogICAgfQoKICAgIC5tZGktY2FyZC1idWxsZXRlZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2zIjsKICAgIH0KCiAgICAubWRpLWNhcmQtYnVsbGV0ZWQtc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrbQiOwogICAgfQoKICAgIC5tZGktY2FyZC1idWxsZXRlZC1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK21IjsKICAgIH0KCiAgICAubWRpLWNhcmQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmIAiOwogICAgfQoKICAgIC5tZGktY2FyZC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiBIjsKICAgIH0KCiAgICAubWRpLWNhcmQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn7EiOwogICAgfQoKICAgIC5tZGktY2FyZC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+yIjsKICAgIH0KCiAgICAubWRpLWNhcmQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiCIjsKICAgIH0KCiAgICAubWRpLWNhcmQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmIMiOwogICAgfQoKICAgIC5tZGktY2FyZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK22IjsKICAgIH0KCiAgICAubWRpLWNhcmQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHvyI7CiAgICB9CgogICAgLm1kaS1jYXJkLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIgCI7CiAgICB9CgogICAgLm1kaS1jYXJkLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYhCI7CiAgICB9CgogICAgLm1kaS1jYXJkLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiFIjsKICAgIH0KCiAgICAubWRpLWNhcmQtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYG0IjsKICAgIH0KCiAgICAubWRpLWNhcmQtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgbUiOwogICAgfQoKICAgIC5tZGktY2FyZC10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK23IjsKICAgIH0KCiAgICAubWRpLWNhcmQtdGV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK24IjsKICAgIH0KCiAgICAubWRpLWNhcmRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJi4IjsKICAgIH0KCiAgICAubWRpLWNhcmRzLWNsdWI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo44iOwogICAgfQoKICAgIC5tZGktY2FyZHMtY2x1Yi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKfIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLWRpYW1vbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo48iOwogICAgfQoKICAgIC5tZGktY2FyZHMtZGlhbW9uZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCdIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOQIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLWhlYXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoqAiOwogICAgfQoKICAgIC5tZGktY2FyZHMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYuSI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKhIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLXBsYXlpbmctY2x1YjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GioiI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nLWNsdWItbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoqMiOwogICAgfQoKICAgIC5tZGktY2FyZHMtcGxheWluZy1jbHViLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoqQiOwogICAgfQoKICAgIC5tZGktY2FyZHMtcGxheWluZy1jbHViLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoqUiOwogICAgfQoKICAgIC5tZGktY2FyZHMtcGxheWluZy1kaWFtb25kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKmIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLXBsYXlpbmctZGlhbW9uZC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GipyI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nLWRpYW1vbmQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GiqCI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nLWRpYW1vbmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GiqSI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKqIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLXBsYXlpbmctaGVhcnQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoqsiOwogICAgfQoKICAgIC5tZGktY2FyZHMtcGxheWluZy1oZWFydC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKsIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLXBsYXlpbmctaGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GirSI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmLoiOwogICAgfQoKICAgIC5tZGktY2FyZHMtcGxheWluZy1zcGFkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GiriI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nLXNwYWRlLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKvIjsKICAgIH0KCiAgICAubWRpLWNhcmRzLXBsYXlpbmctc3BhZGUtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GisCI7CiAgICB9CgogICAgLm1kaS1jYXJkcy1wbGF5aW5nLXNwYWRlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxorEiOwogICAgfQoKICAgIC5tZGktY2FyZHMtc3BhZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo5EiOwogICAgfQoKICAgIC5tZGktY2FyZHMtc3BhZGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GisiI7CiAgICB9CgogICAgLm1kaS1jYXJkcy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuHIjsKICAgIH0KCiAgICAubWRpLWNhcnJvdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEjyI7CiAgICB9CgogICAgLm1kaS1jYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISQIjsKICAgIH0KCiAgICAubWRpLWNhcnQtYXJyb3ctZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1piI7CiAgICB9CgogICAgLm1kaS1jYXJ0LWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGOIjsKICAgIH0KCiAgICAubWRpLWNhcnQtYXJyb3ctdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtaciOwogICAgfQoKICAgIC5tZGktY2FydC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXqiI7CiAgICB9CgogICAgLm1kaS1jYXJ0LWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOgIjsKICAgIH0KCiAgICAubWRpLWNhcnQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtagiOwogICAgfQoKICAgIC5tZGktY2FydC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmasiOwogICAgfQoKICAgIC5tZGktY2FydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISRIjsKICAgIH0KCiAgICAubWRpLWNhcnQtcGVyY2VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuriI7CiAgICB9CgogICAgLm1kaS1jYXJ0LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhJIiOwogICAgfQoKICAgIC5tZGktY2FydC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtakiOwogICAgfQoKICAgIC5tZGktY2FydC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZerIjsKICAgIH0KCiAgICAubWRpLWNhc2Utc2Vuc2l0aXZlLWFsdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEkyI7CiAgICB9CgogICAgLm1kaS1jYXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISUIjsKICAgIH0KCiAgICAubWRpLWNhc2gtMTAwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISVIjsKICAgIH0KCiAgICAubWRpLWNhc2gtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk64iOwogICAgfQoKICAgIC5tZGktY2FzaC1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqkSI7CiAgICB9CgogICAgLm1kaS1jYXNoLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsqsiOwogICAgfQoKICAgIC5tZGktY2FzaC1mYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGcIjsKICAgIH0KCiAgICAubWRpLWNhc2gtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTqiI7CiAgICB9CgogICAgLm1kaS1jYXNoLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTqyI7CiAgICB9CgogICAgLm1kaS1jYXNoLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2uCI7CiAgICB9CgogICAgLm1kaS1jYXNoLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmgIjsKICAgIH0KCiAgICAubWRpLWNhc2gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhJYiOwogICAgfQoKICAgIC5tZGktY2FzaC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsbkiOwogICAgfQoKICAgIC5tZGktY2FzaC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmhIjsKICAgIH0KCiAgICAubWRpLWNhc2gtcmVmdW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqcIjsKICAgIH0KCiAgICAubWRpLWNhc2gtcmVnaXN0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws7QiOwogICAgfQoKICAgIC5tZGktY2FzaC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiaIiOwogICAgfQoKICAgIC5tZGktY2FzaC1zeW5jOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqSIjsKICAgIH0KCiAgICAubWRpLWNhc3NldHRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeUIjsKICAgIH0KCiAgICAubWRpLWNhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhJgiOwogICAgfQoKICAgIC5tZGktY2FzdC1hdWRpbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAniI7CiAgICB9CgogICAgLm1kaS1jYXN0LWF1ZGlvLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnYkiOwogICAgfQoKICAgIC5tZGktY2FzdC1jb25uZWN0ZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhJkiOwogICAgfQoKICAgIC5tZGktY2FzdC1lZHVjYXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuJ0iOwogICAgfQoKICAgIC5tZGktY2FzdC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnooiOwogICAgfQoKICAgIC5tZGktY2FzdC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICfIjsKICAgIH0KCiAgICAubWRpLWNhc3RsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEmiI7CiAgICB9CgogICAgLm1kaS1jYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhJsiOwogICAgfQoKICAgIC5tZGktY2N0djpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeriI7CiAgICB9CgogICAgLm1kaS1jY3R2LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhnyI7CiAgICB9CgogICAgLm1kaS1jZWlsaW5nLWZhbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GelyI7CiAgICB9CgogICAgLm1kaS1jZWlsaW5nLWZhbi1saWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GemCI7CiAgICB9CgogICAgLm1kaS1jZWlsaW5nLWxpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2pIjsKICAgIH0KCiAgICAubWRpLWNlaWxpbmctbGlnaHQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo50iOwogICAgfQoKICAgIC5tZGktY2VpbGluZy1saWdodC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOeIjsKICAgIH0KCiAgICAubWRpLWNlaWxpbmctbGlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfhyI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhJwiOwogICAgfQoKICAgIC5tZGktY2VsbHBob25lLWFycm93LWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp5UiOwogICAgfQoKICAgIC5tZGktY2VsbHBob25lLWFycm93LWRvd24tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnhSI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUtYmFzaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhJ4iOwogICAgfQoKICAgIC5tZGktY2VsbHBob25lLWNoYXJnaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6XIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfvSI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWRIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1kb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISfIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1pbmZvcm1hdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9gSI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUta2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWOIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1saW5rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIShIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1saW5rLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEoiI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CljyI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaC6IjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1tZXNzYWdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOTIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1tZXNzYWdlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDkiI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUtbmZjOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqQIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1uZmMtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuYIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpZAiOwogICAgfQoKICAgIC5tZGktY2VsbHBob25lLXBsYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgJ8iOwogICAgfQoKICAgIC5tZGktY2VsbHBob25lLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CljSI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUtc2NyZWVuc2hvdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CotSI7CiAgICB9CgogICAgLm1kaS1jZWxscGhvbmUtc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhKMiOwogICAgfQoKICAgIC5tZGktY2VsbHBob25lLXNvdW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWSIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOSIjsKICAgIH0KCiAgICAubWRpLWNlbGxwaG9uZS13aXJlbGVzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CglSI7CiAgICB9CgogICAgLm1kaS1jZW50b3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhJoiOwogICAgfQoKICAgIC5tZGktY2VydGlmaWNhdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhKQiOwogICAgfQoKICAgIC5tZGktY2VydGlmaWNhdGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGiCI7CiAgICB9CgogICAgLm1kaS1jaGFpci1yb2xsaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2IIjsKICAgIH0KCiAgICAubWRpLWNoYWlyLXNjaG9vbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEpSI7CiAgICB9CgogICAgLm1kaS1jaGFuZGVsaWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6TIjsKICAgIH0KCiAgICAubWRpLWNoYXJpdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsY8iOwogICAgfQoKICAgIC5tZGktY2hhcml0eS1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsoIiOwogICAgfQoKICAgIC5tZGktY2hhcnQtYXJjOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISmIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWFyZWFzcGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhKciOwogICAgfQoKICAgIC5tZGktY2hhcnQtYXJlYXNwbGluZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqRIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWJhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEqCI7CiAgICB9CgogICAgLm1kaS1jaGFydC1iYXItc3RhY2tlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdqiI7CiAgICB9CgogICAgLm1kaS1jaGFydC1iZWxsLWN1cnZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGQIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWJlbGwtY3VydmUtY3VtdWxhdGl2ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+pyI7CiAgICB9CgogICAgLm1kaS1jaGFydC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlY0iOwogICAgfQoKICAgIC5tZGktY2hhcnQtYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbONIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOOIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWOIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWJveC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlY8iOwogICAgfQoKICAgIC5tZGktY2hhcnQtYnViYmxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJejIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWRvbnV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6vIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWRvbnV0LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnrAiOwogICAgfQoKICAgIC5tZGktY2hhcnQtZ2FudHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmawiOwogICAgfQoKICAgIC5tZGktY2hhcnQtaGlzdG9ncmFtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISpIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhKoiOwogICAgfQoKICAgIC5tZGktY2hhcnQtbGluZS1zdGFja2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2rIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LWxpbmUtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CesSI7CiAgICB9CgogICAgLm1kaS1jaGFydC1tdWx0aWxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo5QiOwogICAgfQoKICAgIC5tZGktY2hhcnQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiJMiOwogICAgfQoKICAgIC5tZGktY2hhcnQtcGllOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISrIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LXBpZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+fIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LXBwZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOgCI7CiAgICB9CgogICAgLm1kaS1jaGFydC1zYW5rZXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh58iOwogICAgfQoKICAgIC5tZGktY2hhcnQtc2Fua2V5LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh6AiOwogICAgfQoKICAgIC5tZGktY2hhcnQtc2NhdHRlci1wbG90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqSIjsKICAgIH0KCiAgICAubWRpLWNoYXJ0LXNjYXR0ZXItcGxvdC1oZXhiaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwma0iOwogICAgfQoKICAgIC5tZGktY2hhcnQtdGltZWxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwma4iOwogICAgfQoKICAgIC5tZGktY2hhcnQtdGltZWxpbmUtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6kyI7CiAgICB9CgogICAgLm1kaS1jaGFydC10aW1lbGluZS12YXJpYW50LXNoaW1tZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlrYiOwogICAgfQoKICAgIC5tZGktY2hhcnQtdHJlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6lCI7CiAgICB9CgogICAgLm1kaS1jaGFydC13YXRlcmZhbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpJgiOwogICAgfQoKICAgIC5tZGktY2hhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtuSI7CiAgICB9CgogICAgLm1kaS1jaGF0LWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK26IjsKICAgIH0KCiAgICAubWRpLWNoYXQtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLiSI7CiAgICB9CgogICAgLm1kaS1jaGF0LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCQIjsKICAgIH0KCiAgICAubWRpLWNoYXQtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQkyI7CiAgICB9CgogICAgLm1kaS1jaGF0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu54iOwogICAgfQoKICAgIC5tZGktY2hhdC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCPIjsKICAgIH0KCiAgICAubWRpLWNoYXQtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCSIjsKICAgIH0KCiAgICAubWRpLWNoYXQtcHJvY2Vzc2luZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtuyI7CiAgICB9CgogICAgLm1kaS1jaGF0LXByb2Nlc3Npbmctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLiiI7CiAgICB9CgogICAgLm1kaS1jaGF0LXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZy4IjsKICAgIH0KCiAgICAubWRpLWNoYXQtcXVlc3Rpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcuSI7CiAgICB9CgogICAgLm1kaS1jaGF0LXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQkSI7CiAgICB9CgogICAgLm1kaS1jaGF0LXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCUIjsKICAgIH0KCiAgICAubWRpLWNoYXQtc2xlZXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi5EiOwogICAgfQoKICAgIC5tZGktY2hhdC1zbGVlcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuSIjsKICAgIH0KCiAgICAubWRpLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISsIjsKICAgIH0KCiAgICAubWRpLWNoZWNrLWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CErSI7CiAgICB9CgogICAgLm1kaS1jaGVjay1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLieIjsKICAgIH0KCiAgICAubWRpLWNoZWNrLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXoCI7CiAgICB9CgogICAgLm1kaS1jaGVjay1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXoSI7CiAgICB9CgogICAgLm1kaS1jaGVjay1kZWNhZ3JhbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CekSI7CiAgICB9CgogICAgLm1kaS1jaGVjay1kZWNhZ3JhbS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2AIjsKICAgIH0KCiAgICAubWRpLWNoZWNrLW5ldHdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsZMiOwogICAgfQoKICAgIC5tZGktY2hlY2stbmV0d29yay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGUIjsKICAgIH0KCiAgICAubWRpLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoZUiOwogICAgfQoKICAgIC5tZGktY2hlY2stdW5kZXJsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLifIjsKICAgIH0KCiAgICAubWRpLWNoZWNrLXVuZGVybGluZS1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuKAiOwogICAgfQoKICAgIC5tZGktY2hlY2stdW5kZXJsaW5lLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLihIjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm9vazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqnSI7CiAgICB9CgogICAgLm1kaS1jaGVja2Jvb2stYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwnSI7CiAgICB9CgogICAgLm1kaS1jaGVja2Jvb2stYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsJ4iOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtYmxhbms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhK4iOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtYmxhbmstYmFkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhbYiOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtYmxhbmstYmFkZ2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CElyI7CiAgICB9CgogICAgLm1kaS1jaGVja2JveC1ibGFuay1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhK8iOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtYmxhbmstY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhLAiOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtYmxhbmstb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYusIjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LWJsYW5rLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYutIjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LWJsYW5rLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhLEiOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtaW50ZXJtZWRpYXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGWIjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LWludGVybWVkaWF0ZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2UIjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW1hcmtlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEsiI7CiAgICB9CgogICAgLm1kaS1jaGVja2JveC1tYXJrZWQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsISzIjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW1hcmtlZC1jaXJjbGUtYXV0by1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCmIjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW1hcmtlZC1jaXJjbGUtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwpyI7CiAgICB9CgogICAgLm1kaS1jaGVja2JveC1tYXJrZWQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhLQiOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtbWFya2VkLWNpcmNsZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpKciOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtbWFya2VkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhLUiOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtbXVsdGlwbGUtYmxhbms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhLYiOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtbXVsdGlwbGUtYmxhbmstY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJi7IjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW11bHRpcGxlLWJsYW5rLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJi8IjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW11bHRpcGxlLWJsYW5rLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhLciOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtbXVsdGlwbGUtbWFya2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIS4IjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW11bHRpcGxlLW1hcmtlZC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmL0iOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtbXVsdGlwbGUtbWFya2VkLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJi+IjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW11bHRpcGxlLW1hcmtlZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIS5IjsKICAgIH0KCiAgICAubWRpLWNoZWNrYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsZEiOwogICAgfQoKICAgIC5tZGktY2hlY2tib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxkiI7CiAgICB9CgogICAgLm1kaS1jaGVja2VyYm9hcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhLoiOwogICAgfQoKICAgIC5tZGktY2hlY2tlcmJvYXJkLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiCIjsKICAgIH0KCiAgICAubWRpLWNoZWNrZXJib2FyZC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiBIjsKICAgIH0KCiAgICAubWRpLWNoZWNrZXJib2FyZC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiIMiOwogICAgfQoKICAgIC5tZGktY2hlZXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYq5IjsKICAgIH0KCiAgICAubWRpLWNoZWVzZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj64iOwogICAgfQoKICAgIC5tZGktY2hlZi1oYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrbwiOwogICAgfQoKICAgIC5tZGktY2hlbWljYWwtd2VhcG9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIS7IjsKICAgIH0KCiAgICAubWRpLWNoZXNzLWJpc2hvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChnCI7CiAgICB9CgogICAgLm1kaS1jaGVzcy1raW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGXIjsKICAgIH0KCiAgICAubWRpLWNoZXNzLWtuaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChmCI7CiAgICB9CgogICAgLm1kaS1jaGVzcy1wYXduOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGZIjsKICAgIH0KCiAgICAubWRpLWNoZXNzLXF1ZWVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGaIjsKICAgIH0KCiAgICAubWRpLWNoZXNzLXJvb2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoZsiOwogICAgfQoKICAgIC5tZGktY2hldnJvbi1kb3VibGUtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CEvCI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLWRvdWJsZS1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIS9IjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tZG91YmxlLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIS+IjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tZG91YmxlLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIS/IjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFgCI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLWRvd24tYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeWIjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tZG93bi1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnlyI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLWRvd24tY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKymIjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tZG93bi1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CspyI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhYEiOwogICAgfQoKICAgIC5tZGktY2hldnJvbi1sZWZ0LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnmCI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLWxlZnQtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp5kiOwogICAgfQoKICAgIC5tZGktY2hldnJvbi1sZWZ0LWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsqCI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLWxlZnQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrKkiOwogICAgfQoKICAgIC5tZGktY2hldnJvbi1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFgiI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLXJpZ2h0LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnmiI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLXJpZ2h0LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKebIjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tcmlnaHQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKyqIjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tcmlnaHQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrKsiOwogICAgfQoKICAgIC5tZGktY2hldnJvbi10cmlwbGUtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2uSI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLXRyaXBsZS1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLa6IjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tdHJpcGxlLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLa7IjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tdHJpcGxlLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLa8IjsKICAgIH0KCiAgICAubWRpLWNoZXZyb24tdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhYMiOwogICAgfQoKICAgIC5tZGktY2hldnJvbi11cC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp5wiOwogICAgfQoKICAgIC5tZGktY2hldnJvbi11cC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnnSI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLXVwLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsrCI7CiAgICB9CgogICAgLm1kaS1jaGV2cm9uLXVwLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKytIjsKICAgIH0KCiAgICAubWRpLWNoaWxpLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+qIjsKICAgIH0KCiAgICAubWRpLWNoaWxpLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn6siOwogICAgfQoKICAgIC5tZGktY2hpbGktaG90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6yIjsKICAgIH0KCiAgICAubWRpLWNoaWxpLWhvdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+sIjsKICAgIH0KCiAgICAubWRpLWNoaWxpLW1lZGl1bTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CesyI7CiAgICB9CgogICAgLm1kaS1jaGlsaS1tZWRpdW0tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfrSI7CiAgICB9CgogICAgLm1kaS1jaGlsaS1taWxkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ60IjsKICAgIH0KCiAgICAubWRpLWNoaWxpLW1pbGQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfriI7CiAgICB9CgogICAgLm1kaS1jaGlsaS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkaciOwogICAgfQoKICAgIC5tZGktY2hpbGktb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn68iOwogICAgfQoKICAgIC5tZGktY2hpcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYmiI7CiAgICB9CgogICAgLm1kaS1jaHVyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhYQiOwogICAgfQoKICAgIC5tZGktY2h1cmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrIIiOwogICAgfQoKICAgIC5tZGktY2lnYXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhokiOwogICAgfQoKICAgIC5tZGktY2lnYXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCbIjsKICAgIH0KCiAgICAubWRpLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdpSI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZecIjsKICAgIH0KCiAgICAubWRpLWNpcmNsZS1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXnSI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtZG91YmxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqVIjsKICAgIH0KCiAgICAubWRpLWNpcmNsZS1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo5UiOwogICAgfQoKICAgIC5tZGktY2lyY2xlLWV4cGFuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6liI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtaGFsZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOlSI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtaGFsZi1mdWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6WIjsKICAgIH0KCiAgICAubWRpLWNpcmNsZS1tZWRpdW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp54iOwogICAgfQoKICAgIC5tZGktY2lyY2xlLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKy4IjsKICAgIH0KCiAgICAubWRpLWNpcmNsZS1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqVIjsKICAgIH0KCiAgICAubWRpLWNpcmNsZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDkyI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtb3BhY2l0eTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhkyI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdpiI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtMTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqniI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqnyI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtMzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqoCI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtNDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqoSI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtNTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqoiI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtNjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqoyI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtNzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqpCI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc2xpY2UtODpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqpSI7CiAgICB9CgogICAgLm1kaS1jaXJjbGUtc21hbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp58iOwogICAgfQoKICAgIC5tZGktY2lyY3VsYXItc2F3OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiiIjsKICAgIH0KCiAgICAubWRpLWNpdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhYYiOwogICAgfQoKICAgIC5tZGktY2l0eS1zd2l0Y2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsKgiOwogICAgfQoKICAgIC5tZGktY2l0eS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKi2IjsKICAgIH0KCiAgICAubWRpLWNpdHktdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKi3IjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFhyI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtYWNjb3VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFiCI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtYWNjb3VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGVIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFiSI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CztyI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtYXJyb3ctZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFiiI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtYXJyb3ctZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGWIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1hcnJvdy1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWLIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1hcnJvdy1sZWZ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws7giOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLO5IjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1hcnJvdy1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLO6IjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1hcnJvdy11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxlyI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtYXJyb3ctdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxmCI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhY4iOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLWNoZWNrLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmjIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1jaGVjay1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmkIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKoIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GboiI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtY2xvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GboyI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTpSI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOmIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1maWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmlIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1maWxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiaYiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLWZsb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm4giOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLWZsb3ctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GElyI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtbGlzdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDlCI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtbGlzdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOVIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYmCI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYmSI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiaciOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiagiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYmiI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmJsiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhYwiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXBsYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsZkiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXBsYXktbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiakiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXBsYXktbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJqiI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtcGxheS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGaIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2RIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjJ8iOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXB1bHNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGdIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1wdWxzZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGeIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmJwiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZidIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmJ4iOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZifIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWNIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC10ZXh0LWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaO5IjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC10ZXh0LWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo7oiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXRleHQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiasiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXRleHQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJrCI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtdGV4dC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKAiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXRleHQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKEiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXRleHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CouCI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtdGV4dC1wbGF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGbIjsKICAgIH0KCiAgICAubWRpLWNsaXBib2FyZC10ZXh0LXBsYXktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxnCI7CiAgICB9CgogICAgLm1kaS1jbGlwYm9hcmQtdGV4dC1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKIiOwogICAgfQoKICAgIC5tZGktY2xpcGJvYXJkLXRleHQtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKMiOwogICAgfQoKICAgIC5tZGktY2xpcHB5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWPIjsKICAgIH0KCiAgICAubWRpLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWUIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWVIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl44iOwogICAgfQoKICAgIC5tZGktY2xvY2stY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvqgiOwogICAgfQoKICAgIC5tZGktY2xvY2stY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+qSI7CiAgICB9CgogICAgLm1kaS1jbG9jay1kaWdpdGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqXIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxproiOwogICAgfQoKICAgIC5tZGktY2xvY2stZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaa7IjsKICAgIH0KCiAgICAubWRpLWNsb2NrLWVuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFkSI7CiAgICB9CgogICAgLm1kaS1jbG9jay1mYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWSIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWTIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGjIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoaQiOwogICAgfQoKICAgIC5tZGktY2xvY2stb3V0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWUIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhZAiOwogICAgfQoKICAgIC5tZGktY2xvY2stcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhoSI7CiAgICB9CgogICAgLm1kaS1jbG9jay1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoaIiOwogICAgfQoKICAgIC5tZGktY2xvY2stcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGlIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGmIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXN0YXItZm91ci1wb2ludHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsKkiOwogICAgfQoKICAgIC5tZGktY2xvY2stc3Rhci1mb3VyLXBvaW50cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCqIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXN0YXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWVIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtZWlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkYYiOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS1laWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGSIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtZWxldmVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGJIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtZWxldmVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkZUiOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS1maXZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGDIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtZml2ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGPIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtZm91cjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRgiI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLWZvdXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRjiI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLW5pbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkYciOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS1uaW5lLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkZMiOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS1vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkL8iOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS1vbmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRiyI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLXNldmVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGFIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtc2V2ZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRkSI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLXNpeDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRhCI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLXNpeC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGQIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtdGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGIIjsKICAgIH0KCiAgICAubWRpLWNsb2NrLXRpbWUtdGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkZQiOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS10aHJlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRgSI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLXRocmVlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkY0iOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS10d2VsdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkYoiOwogICAgfQoKICAgIC5tZGktY2xvY2stdGltZS10d2VsdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRliI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLXR3bzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRgCI7CiAgICB9CgogICAgLm1kaS1jbG9jay10aW1lLXR3by1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGMIjsKICAgIH0KCiAgICAubWRpLWNsb3NlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWWIjsKICAgIH0KCiAgICAubWRpLWNsb3NlLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFlyI7CiAgICB9CgogICAgLm1kaS1jbG9zZS1ib3gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsZ0iOwogICAgfQoKICAgIC5tZGktY2xvc2UtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsZ4iOwogICAgfQoKICAgIC5tZGktY2xvc2UtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhZgiOwogICAgfQoKICAgIC5tZGktY2xvc2UtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWZIjsKICAgIH0KCiAgICAubWRpLWNsb3NlLWNpcmNsZS1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYqiI7CiAgICB9CgogICAgLm1kaS1jbG9zZS1jaXJjbGUtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CigyI7CiAgICB9CgogICAgLm1kaS1jbG9zZS1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFmiI7CiAgICB9CgogICAgLm1kaS1jbG9zZS1uZXR3b3JrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWbIjsKICAgIH0KCiAgICAubWRpLWNsb3NlLW5ldHdvcmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxnyI7CiAgICB9CgogICAgLm1kaS1jbG9zZS1vY3RhZ29uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWcIjsKICAgIH0KCiAgICAubWRpLWNsb3NlLW9jdGFnb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFnSI7CiAgICB9CgogICAgLm1kaS1jbG9zZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuJIjsKICAgIH0KCiAgICAubWRpLWNsb3NlLXRoaWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6YIjsKICAgIH0KCiAgICAubWRpLWNsb3NlZC1jYXB0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWeIjsKICAgIH0KCiAgICAubWRpLWNsb3NlZC1jYXB0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtr0iOwogICAgfQoKICAgIC5tZGktY2xvdWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhZ8iOwogICAgfQoKICAgIC5tZGktY2xvdWQtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp6AiOwogICAgfQoKICAgIC5tZGktY2xvdWQtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvoCI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+hIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWFycm93LWRvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvoiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1hcnJvdy1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+jIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWFycm93LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvpCI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvpSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1hcnJvdy1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+mIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWFycm93LXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+nIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWFycm93LXVwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr6giOwogICAgfQoKICAgIC5tZGktY2xvdWQtYnJhY2VzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ61IjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvqSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1jYW5jZWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvqiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvqyI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+sIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWNoZWNrLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhaAiOwogICAgfQoKICAgIC5tZGktY2xvdWQtY2hlY2stdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuMIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFoSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvrSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvriI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+vIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvsCI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1jb2ctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvsSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1kb3dubG9hZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFoiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1kb3dubG9hZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK29IjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWtleTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyoSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1rZXktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyoiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYexIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvsiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1sb2NrLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvsyI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh7IiOwogICAgfQoKICAgIC5tZGktY2xvdWQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr7QiOwogICAgfQoKICAgIC5tZGktY2xvdWQtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvtSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr7YiOwogICAgfQoKICAgIC5tZGktY2xvdWQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhaQiOwogICAgfQoKICAgIC5tZGktY2xvdWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFoyI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1wZXJjZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsai1IjsKICAgIH0KCiAgICAubWRpLWNsb3VkLXBlcmNlbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GotiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+3IjsKICAgIH0KCiAgICAubWRpLWNsb3VkLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvuCI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1wcmludDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFpSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1wcmludC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWmIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKi5IjsKICAgIH0KCiAgICAubWRpLWNsb3VkLXF1ZXN0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr7kiOwogICAgfQoKICAgIC5tZGktY2xvdWQtcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvuiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1yZWZyZXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr7siOwogICAgfQoKICAgIC5tZGktY2xvdWQtcmVmcmVzaC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSqIjsKICAgIH0KCiAgICAubWRpLWNsb3VkLXJlZnJlc2gtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+8IjsKICAgIH0KCiAgICAubWRpLWNsb3VkLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvvSI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvviI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpZYiOwogICAgfQoKICAgIC5tZGktY2xvdWQtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpZciOwogICAgfQoKICAgIC5tZGktY2xvdWQtc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYvyI7CiAgICB9CgogICAgLm1kaS1jbG91ZC1zeW5jLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi5YiOwogICAgfQoKICAgIC5tZGktY2xvdWQtdGFnczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CetiI7CiAgICB9CgogICAgLm1kaS1jbG91ZC11cGxvYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhaciOwogICAgfQoKICAgIC5tZGktY2xvdWQtdXBsb2FkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrb4iOwogICAgfQoKICAgIC5tZGktY2xvdWRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6VIjsKICAgIH0KCiAgICAubWRpLWNsb3ZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgliI7CiAgICB9CgogICAgLm1kaS1jbG92ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxoiI7CiAgICB9CgogICAgLm1kaS1jb2FjaC1sYW1wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCgIjsKICAgIH0KCiAgICAubWRpLWNvYWNoLWxhbXAtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GotyI7CiAgICB9CgogICAgLm1kaS1jb2F0LXJhY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgp4iOwogICAgfQoKICAgIC5tZGktY29kZS1hcnJheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFqCI7CiAgICB9CgogICAgLm1kaS1jb2RlLWJsb2NrLWJyYWNlczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GygyI7CiAgICB9CgogICAgLm1kaS1jb2RlLWJsb2NrLWJyYWNrZXRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKEIjsKICAgIH0KCiAgICAubWRpLWNvZGUtYmxvY2stcGFyZW50aGVzZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsoUiOwogICAgfQoKICAgIC5tZGktY29kZS1ibG9jay10YWdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKGIjsKICAgIH0KCiAgICAubWRpLWNvZGUtYnJhY2VzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWpIjsKICAgIH0KCiAgICAubWRpLWNvZGUtYnJhY2VzLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDliI7CiAgICB9CgogICAgLm1kaS1jb2RlLWJyYWNrZXRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWqIjsKICAgIH0KCiAgICAubWRpLWNvZGUtZXF1YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhasiOwogICAgfQoKICAgIC5tZGktY29kZS1ncmVhdGVyLXRoYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhawiOwogICAgfQoKICAgIC5tZGktY29kZS1ncmVhdGVyLXRoYW4tb3ItZXF1YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwha0iOwogICAgfQoKICAgIC5tZGktY29kZS1qc29uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJimIjsKICAgIH0KCiAgICAubWRpLWNvZGUtbGVzcy10aGFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWuIjsKICAgIH0KCiAgICAubWRpLWNvZGUtbGVzcy10aGFuLW9yLWVxdWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWvIjsKICAgIH0KCiAgICAubWRpLWNvZGUtbm90LWVxdWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWwIjsKICAgIH0KCiAgICAubWRpLWNvZGUtbm90LWVxdWFsLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhbEiOwogICAgfQoKICAgIC5tZGktY29kZS1wYXJlbnRoZXNlczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFsiI7CiAgICB9CgogICAgLm1kaS1jb2RlLXBhcmVudGhlc2VzLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDlyI7CiAgICB9CgogICAgLm1kaS1jb2RlLXN0cmluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFsyI7CiAgICB9CgogICAgLm1kaS1jb2RlLXRhZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhbQiOwogICAgfQoKICAgIC5tZGktY29kZS10YWdzLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqUIjsKICAgIH0KCiAgICAubWRpLWNvZGVwZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhbUiOwogICAgfQoKICAgIC5tZGktY29mZmVlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIW2IjsKICAgIH0KCiAgICAubWRpLWNvZmZlZS1tYWtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCnyI7CiAgICB9CgogICAgLm1kaS1jb2ZmZWUtbWFrZXItY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpLEiOwogICAgfQoKICAgIC5tZGktY29mZmVlLW1ha2VyLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpLIiOwogICAgfQoKICAgIC5tZGktY29mZmVlLW1ha2VyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoJsiOwogICAgfQoKICAgIC5tZGktY29mZmVlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+qiI7CiAgICB9CgogICAgLm1kaS1jb2ZmZWUtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvqsiOwogICAgfQoKICAgIC5tZGktY29mZmVlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm4oiOwogICAgfQoKICAgIC5tZGktY29mZmVlLXRvLWdvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIW3IjsKICAgIH0KCiAgICAubWRpLWNvZmZlZS10by1nby1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyOIjsKICAgIH0KCiAgICAubWRpLWNvZmZpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtvyI7CiAgICB9CgogICAgLm1kaS1jb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkpMiOwogICAgfQoKICAgIC5tZGktY29nLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSlCI7CiAgICB9CgogICAgLm1kaS1jb2ctY2xvY2t3aXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYedIjsKICAgIH0KCiAgICAubWRpLWNvZy1jb3VudGVyY2xvY2t3aXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeeIjsKICAgIH0KCiAgICAubWRpLWNvZy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj44iOwogICAgfQoKICAgIC5tZGktY29nLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+PIjsKICAgIH0KCiAgICAubWRpLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKK7IjsKICAgIH0KCiAgICAubWRpLWNvZy1wYXVzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GksyI7CiAgICB9CgogICAgLm1kaS1jb2ctcGF1c2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GktCI7CiAgICB9CgogICAgLm1kaS1jb2ctcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GktSI7CiAgICB9CgogICAgLm1kaS1jb2ctcGxheS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaS2IjsKICAgIH0KCiAgICAubWRpLWNvZy1yZWZyZXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGeIjsKICAgIH0KCiAgICAubWRpLWNvZy1yZWZyZXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkZ8iOwogICAgfQoKICAgIC5tZGktY29nLXN0b3A6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpLciOwogICAgfQoKICAgIC5tZGktY29nLXN0b3Atb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkuCI7CiAgICB9CgogICAgLm1kaS1jb2ctc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRoCI7CiAgICB9CgogICAgLm1kaS1jb2ctc3luYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGhIjsKICAgIH0KCiAgICAubWRpLWNvZy10cmFuc2ZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBmyI7CiAgICB9CgogICAgLm1kaS1jb2ctdHJhbnNmZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBnCI7CiAgICB9CgogICAgLm1kaS1jb2dzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOWIjsKICAgIH0KCiAgICAubWRpLWNvbGxhZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmYAiOwogICAgfQoKICAgIC5tZGktY29sbGFwc2UtYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqmIjsKICAgIH0KCiAgICAubWRpLWNvbGxhcHNlLWFsbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqnIjsKICAgIH0KCiAgICAubWRpLWNvbG9yLWhlbHBlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CFuSI7CiAgICB9CgogICAgLm1kaS1jb21tYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4oyI7CiAgICB9CgogICAgLm1kaS1jb21tYS1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuKsiOwogICAgfQoKICAgIC5tZGktY29tbWEtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuKQiOwogICAgfQoKICAgIC5tZGktY29tbWEtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLilIjsKICAgIH0KCiAgICAubWRpLWNvbW1hLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLimIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhboiOwogICAgfQoKICAgIC5tZGktY29tbWVudC1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIW7IjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtYWNjb3VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIW8IjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhb0iOwogICAgfQoKICAgIC5tZGktY29tbWVudC1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIW+IjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnoSI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LWFycm93LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnoiI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKejIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtYXJyb3ctcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnpCI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LWJvb2ttYXJrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZauIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtYm9va21hcmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWryI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIW/IjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGgCI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhr8iOwogICAgfQoKICAgIC5tZGktY29tbWVudC1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi4QiOwogICAgfQoKICAgIC5tZGktY29tbWVudC1leWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqLoiOwogICAgfQoKICAgIC5tZGktY29tbWVudC1leWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CouyI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LWZsYXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZawIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtZmxhc2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWsSI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZefIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXoCI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGfIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGgSI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXoSI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeiIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGgiI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp6UiOwogICAgfQoKICAgIC5tZGktY29tbWVudC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhoMiOwogICAgfQoKICAgIC5tZGktY29tbWVudC1wcm9jZXNzaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIaEIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtcHJvY2Vzc2luZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIaFIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtcXVlc3Rpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoJciOwogICAgfQoKICAgIC5tZGktY29tbWVudC1xdWVzdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIaGIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtcXVvdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgKEiOwogICAgfQoKICAgIC5tZGktY29tbWVudC1xdW90ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCiIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeeIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhociOwogICAgfQoKICAgIC5tZGktY29tbWVudC1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqLwiOwogICAgfQoKICAgIC5tZGktY29tbWVudC1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CovSI7CiAgICB9CgogICAgLm1kaS1jb21tZW50LXRleHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhogiOwogICAgfQoKICAgIC5tZGktY29tbWVudC10ZXh0LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGgIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtdGV4dC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGhIjsKICAgIH0KCiAgICAubWRpLWNvbW1lbnQtdGV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIaJIjsKICAgIH0KCiAgICAubWRpLWNvbXBhcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhooiOwogICAgfQoKICAgIC5tZGktY29tcGFyZS1ob3Jpem9udGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKSIjsKICAgIH0KCiAgICAubWRpLWNvbXBhcmUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKzIjsKICAgIH0KCiAgICAubWRpLWNvbXBhcmUtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkpMiOwogICAgfQoKICAgIC5tZGktY29tcGFzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGiyI7CiAgICB9CgogICAgLm1kaS1jb21wYXNzLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CugCI7CiAgICB9CgogICAgLm1kaS1jb21wYXNzLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6BIjsKICAgIH0KCiAgICAubWRpLWNvbXBhc3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGjCI7CiAgICB9CgogICAgLm1kaS1jb21wYXNzLXJvc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjoIiOwogICAgfQoKICAgIC5tZGktY29tcG9zdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GouCI7CiAgICB9CgogICAgLm1kaS1jb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWMIjsKICAgIH0KCiAgICAubWRpLWNvbmUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWNIjsKICAgIH0KCiAgICAubWRpLWNvbm5lY3Rpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmJYiOwogICAgfQoKICAgIC5tZGktY29uc29sZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGjSI7CiAgICB9CgogICAgLm1kaS1jb25zb2xlLWxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnrciOwogICAgfQoKICAgIC5tZGktY29uc29sZS1uZXR3b3JrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKpIjsKICAgIH0KCiAgICAubWRpLWNvbnNvbGUtbmV0d29yay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGgIjsKICAgIH0KCiAgICAubWRpLWNvbnNvbGlkYXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOYIjsKICAgIH0KCiAgICAubWRpLWNvbnRhY3RsZXNzLXBheW1lbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtaoiOwogICAgfQoKICAgIC5tZGktY29udGFjdGxlc3MtcGF5bWVudC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjKEiOwogICAgfQoKICAgIC5tZGktY29udGFjdGxlc3MtcGF5bWVudC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQiCI7CiAgICB9CgogICAgLm1kaS1jb250YWN0czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbiyI7CiAgICB9CgogICAgLm1kaS1jb250YWN0cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJa4IjsKICAgIH0KCiAgICAubWRpLWNvbnRhaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqL4iOwogICAgfQoKICAgIC5tZGktY29udGFpbi1lbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqL8iOwogICAgfQoKICAgIC5tZGktY29udGFpbi1zdGFydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpgCI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LWNvcHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwho8iOwogICAgfQoKICAgIC5tZGktY29udGVudC1jdXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhpAiOwogICAgfQoKICAgIC5tZGktY29udGVudC1kdXBsaWNhdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhpEiOwogICAgfQoKICAgIC5tZGktY29udGVudC1wYXN0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGkiI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhpMiOwogICAgfQoKICAgIC5tZGktY29udGVudC1zYXZlLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2CIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2DIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1hbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhpQiOwogICAgfQoKICAgIC5tZGktY29udGVudC1zYXZlLWFsbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2EIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjqiI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmUtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjqyI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmUtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGbIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1jb2ctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRnCI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmUtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzuyI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLO8IjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtgyI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmUtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GthCI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmUtbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4pyI7CiAgICB9CgogICAgLm1kaS1jb250ZW50LXNhdmUtbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLioIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmYMiOwogICAgfQoKICAgIC5tZGktY29udGVudC1zYXZlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmEIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCYIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2BIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrYIiOwogICAgfQoKICAgIC5tZGktY29udGVudC1zYXZlLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJibIjsKICAgIH0KCiAgICAubWRpLWNvbnRlbnQtc2F2ZS1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKyuIjsKICAgIH0KCiAgICAubWRpLWNvbnRyYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIaVIjsKICAgIH0KCiAgICAubWRpLWNvbnRyYXN0LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGliI7CiAgICB9CgogICAgLm1kaS1jb250cmFzdC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhpciOwogICAgfQoKICAgIC5tZGktY29udHJvbGxlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKtCI7CiAgICB9CgogICAgLm1kaS1jb250cm9sbGVyLWNsYXNzaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwroIiOwogICAgfQoKICAgIC5tZGktY29udHJvbGxlci1jbGFzc2ljLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwroMiOwogICAgfQoKICAgIC5tZGktY29udHJvbGxlci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwirUiOwogICAgfQoKICAgIC5tZGktY29va2llOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIaYIjsKICAgIH0KCiAgICAubWRpLWNvb2tpZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbkCI7CiAgICB9CgogICAgLm1kaS1jb29raWUtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbkSI7CiAgICB9CgogICAgLm1kaS1jb29raWUtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm5IiOwogICAgfQoKICAgIC5tZGktY29va2llLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm5MiOwogICAgfQoKICAgIC5tZGktY29va2llLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZukIjsKICAgIH0KCiAgICAubWRpLWNvb2tpZS1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZulIjsKICAgIH0KCiAgICAubWRpLWNvb2tpZS1jb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm5QiOwogICAgfQoKICAgIC5tZGktY29va2llLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZuVIjsKICAgIH0KCiAgICAubWRpLWNvb2tpZS1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZumIjsKICAgIH0KCiAgICAubWRpLWNvb2tpZS1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm6ciOwogICAgfQoKICAgIC5tZGktY29va2llLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm6giOwogICAgfQoKICAgIC5tZGktY29va2llLWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbqSI7CiAgICB9CgogICAgLm1kaS1jb29raWUtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm5oiOwogICAgfQoKICAgIC5tZGktY29va2llLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm5siOwogICAgfQoKICAgIC5tZGktY29va2llLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbqiI7CiAgICB9CgogICAgLm1kaS1jb29raWUtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm6siOwogICAgfQoKICAgIC5tZGktY29va2llLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm54iOwogICAgfQoKICAgIC5tZGktY29va2llLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm5YiOwogICAgfQoKICAgIC5tZGktY29va2llLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GblyI7CiAgICB9CgogICAgLm1kaS1jb29raWUtcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbrCI7CiAgICB9CgogICAgLm1kaS1jb29raWUtcmVmcmVzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZutIjsKICAgIH0KCiAgICAubWRpLWNvb2tpZS1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm5giOwogICAgfQoKICAgIC5tZGktY29va2llLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZuZIjsKICAgIH0KCiAgICAubWRpLWNvb2tpZS1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbnCI7CiAgICB9CgogICAgLm1kaS1jb29raWUtc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbnSI7CiAgICB9CgogICAgLm1kaS1jb29sYW50LXRlbXBlcmF0dXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+IIjsKICAgIH0KCiAgICAubWRpLWNvcHlsZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaS5IjsKICAgIH0KCiAgICAubWRpLWNvcHlyaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXpiI7CiAgICB9CgogICAgLm1kaS1jb3Jkb3ZhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWYIjsKICAgIH0KCiAgICAubWRpLWNvcm46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnrgiOwogICAgfQoKICAgIC5tZGktY29ybi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj68iOwogICAgfQoKICAgIC5tZGktY29zaW5lLXdhdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkbkiOwogICAgfQoKICAgIC5tZGktY291bnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGmSI7CiAgICB9CgogICAgLm1kaS1jb3VudGVydG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCcIjsKICAgIH0KCiAgICAubWRpLWNvdW50ZXJ0b3Atb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgnSI7CiAgICB9CgogICAgLm1kaS1jb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhpoiOwogICAgfQoKICAgIC5tZGktY293LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjvCI7CiAgICB9CgogICAgLm1kaS1jcHUtMzItYml0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLufIjsKICAgIH0KCiAgICAubWRpLWNwdS02NC1iaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu6AiOwogICAgfQoKICAgIC5tZGktY3JhZGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaaLIjsKICAgIH0KCiAgICAubWRpLWNyYWRsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaaRIjsKICAgIH0KCiAgICAubWRpLWNyYW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGiIjsKICAgIH0KCiAgICAubWRpLWNyZWF0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJm0IjsKICAgIH0KCiAgICAubWRpLWNyZWF0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsKsiOwogICAgfQoKICAgIC5tZGktY3JlYXRpdmUtY29tbW9uczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1qyI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/ryI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPkCI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+RIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLWNoaXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpI8iOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtY2hpcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSQIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuhIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu6IiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GflyI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn5giOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtZmFzdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkkSI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1mYXN0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpJIiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjpyI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo6giOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqoIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLW1hcmtlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLa+IjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6sIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvq0iOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv7AiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGnCI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv7EiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl6QiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGmyI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+yIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZtiI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1yZWZyZXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmFIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXJlZnJlc2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZhiI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1yZWZ1bmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv7MiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtcmVmdW5kLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqqgiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6uIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6vIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXNjYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv7QiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtc2Nhbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIadIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZhyI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZiCI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/tSI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOXIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmYkiOwogICAgfQoKICAgIC5tZGktY3JlZGl0LWNhcmQtc3luYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmKIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXdpcmVsZXNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCCIjsKICAgIH0KCiAgICAubWRpLWNyZWRpdC1jYXJkLXdpcmVsZXNzLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CVuiI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC13aXJlbGVzcy1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CVuyI7CiAgICB9CgogICAgLm1kaS1jcmVkaXQtY2FyZC13aXJlbGVzcy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLWsIjsKICAgIH0KCiAgICAubWRpLWNyaWNrZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwta0iOwogICAgfQoKICAgIC5tZGktY3JvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGniI7CiAgICB9CgogICAgLm1kaS1jcm9wLWZyZWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhp8iOwogICAgfQoKICAgIC5tZGktY3JvcC1sYW5kc2NhcGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhqAiOwogICAgfQoKICAgIC5tZGktY3JvcC1wb3J0cmFpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGoSI7CiAgICB9CgogICAgLm1kaS1jcm9wLXJvdGF0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CaliI7CiAgICB9CgogICAgLm1kaS1jcm9wLXNxdWFyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGoiI7CiAgICB9CgogICAgLm1kaS1jcm9zczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClkyI7CiAgICB9CgogICAgLm1kaS1jcm9zcy1ib2xuaXNpOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOtIjsKICAgIH0KCiAgICAubWRpLWNyb3NzLWNlbHRpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CztSI7CiAgICB9CgogICAgLm1kaS1jcm9zcy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLO2IjsKICAgIH0KCiAgICAubWRpLWNyb3NzaGFpcnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhqMiOwogICAgfQoKICAgIC5tZGktY3Jvc3NoYWlycy1ncHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhqQiOwogICAgfQoKICAgIC5tZGktY3Jvc3NoYWlycy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvYUiOwogICAgfQoKICAgIC5tZGktY3Jvc3NoYWlycy1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEtiI7CiAgICB9CgogICAgLm1kaS1jcm93ZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GltSI7CiAgICB9CgogICAgLm1kaS1jcm93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGpSI7CiAgICB9CgogICAgLm1kaS1jcm93bi1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn5wiOwogICAgfQoKICAgIC5tZGktY3Jvd24tY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn50iOwogICAgfQoKICAgIC5tZGktY3Jvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHkCI7CiAgICB9CgogICAgLm1kaS1jcnllbmdpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpZkiOwogICAgfQoKICAgIC5tZGktY3J5c3RhbC1iYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKyvIjsKICAgIH0KCiAgICAubWRpLWN1YmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhqYiOwogICAgfQoKICAgIC5tZGktY3ViZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkJwiOwogICAgfQoKICAgIC5tZGktY3ViZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQnSI7CiAgICB9CgogICAgLm1kaS1jdWJlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhqciOwogICAgfQoKICAgIC5tZGktY3ViZS1zY2FuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6EIjsKICAgIH0KCiAgICAubWRpLWN1YmUtc2VuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGqCI7CiAgICB9CgogICAgLm1kaS1jdWJlLXVuZm9sZGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIapIjsKICAgIH0KCiAgICAubWRpLWN1cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGqiI7CiAgICB9CgogICAgLm1kaS1jdXAtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJelIjsKICAgIH0KCiAgICAubWRpLWN1cC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNvSI7CiAgICB9CgogICAgLm1kaS1jdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMjyI7CiAgICB9CgogICAgLm1kaS1jdXAtd2F0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhqsiOwogICAgfQoKICAgIC5tZGktY3VwYm9hcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvYYiOwogICAgfQoKICAgIC5tZGktY3VwYm9hcmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9hyI7CiAgICB9CgogICAgLm1kaS1jdXBjYWtlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWaIjsKICAgIH0KCiAgICAubWRpLWN1cmxpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoaMiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktYmR0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGkIjsKICAgIH0KCiAgICAubWRpLWN1cnJlbmN5LWJybDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuhSI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS1idGM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhqwiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktY255OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ66IjsKICAgIH0KCiAgICAubWRpLWN1cnJlbmN5LWV0aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeuyI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS1ldXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhq0iOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktZXVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMlSI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS1mcmE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqLkiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktZ2JwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIauIjsKICAgIH0KCiAgICAubWRpLWN1cnJlbmN5LWlsczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxoSI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS1pbnI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhq8iOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktanB5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ68IjsKICAgIH0KCiAgICAubWRpLWN1cnJlbmN5LWtydzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CevSI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS1renQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoaUiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktbW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSSIjsKICAgIH0KCiAgICAubWRpLWN1cnJlbmN5LW5nbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGsCI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS1waHA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp6YiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktcmlhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6nCI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS1ydWI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwhrEiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktcnVwZWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpbYiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktc2lnbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeviI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS10aGI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsIUiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktdHJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIayIjsKICAgIH0KCiAgICAubWRpLWN1cnJlbmN5LXR3ZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CevyI7CiAgICB9CgogICAgLm1kaS1jdXJyZW5jeS11YWg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrpsiOwogICAgfQoKICAgIC5tZGktY3VycmVuY3ktdXNkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeBIjsKICAgIH0KCiAgICAubWRpLWN1cnJlbmN5LXVzZC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmboiOwogICAgfQoKICAgIC5tZGktY3VycmVudC1hYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSgCI7CiAgICB9CgogICAgLm1kaS1jdXJyZW50LWRjOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWcIjsKICAgIH0KCiAgICAubWRpLWN1cnNvci1kZWZhdWx0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeAIjsKICAgIH0KCiAgICAubWRpLWN1cnNvci1kZWZhdWx0LWNsaWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLO9IjsKICAgIH0KCiAgICAubWRpLWN1cnNvci1kZWZhdWx0LWNsaWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws74iOwogICAgfQoKICAgIC5tZGktY3Vyc29yLWRlZmF1bHQtZ2VzdHVyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEpyI7CiAgICB9CgogICAgLm1kaS1jdXJzb3ItZGVmYXVsdC1nZXN0dXJlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhKgiOwogICAgfQoKICAgIC5tZGktY3Vyc29yLWRlZmF1bHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGvyI7CiAgICB9CgogICAgLm1kaS1jdXJzb3ItbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGviI7CiAgICB9CgogICAgLm1kaS1jdXJzb3ItcG9pbnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGvSI7CiAgICB9CgogICAgLm1kaS1jdXJzb3ItdGV4dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXpyI7CiAgICB9CgogICAgLm1kaS1jdXJ0YWluczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhhiI7CiAgICB9CgogICAgLm1kaS1jdXJ0YWlucy1jbG9zZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoYciOwogICAgfQoKICAgIC5tZGktY3lsaW5kZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpY4iOwogICAgfQoKICAgIC5tZGktY3lsaW5kZXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWPIjsKICAgIH0KCiAgICAubWRpLWRhbmNlLWJhbGxyb29tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZe7IjsKICAgIH0KCiAgICAubWRpLWRhbmNlLXBvbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlbgiOwogICAgfQoKICAgIC5tZGktZGF0YS1tYXRyaXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlLwiOwogICAgfQoKICAgIC5tZGktZGF0YS1tYXRyaXgtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUvSI7CiAgICB9CgogICAgLm1kaS1kYXRhLW1hdHJpeC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUviI7CiAgICB9CgogICAgLm1kaS1kYXRhLW1hdHJpeC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZS/IjsKICAgIH0KCiAgICAubWRpLWRhdGEtbWF0cml4LXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVgCI7CiAgICB9CgogICAgLm1kaS1kYXRhLW1hdHJpeC1zY2FuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWBIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIa8IjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZi6IjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKQiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtYXJyb3ctZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYuyI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1hcnJvdy1kb3duLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKUiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYvCI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1hcnJvdy1sZWZ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKYiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmL0iOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtYXJyb3ctcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYpyI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1hcnJvdy11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYviI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1hcnJvdy11cC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZioIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqpIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKkiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmL8iOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtY2xvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYqiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1jb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmYsiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmYwiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuhiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmKsiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtZXhwb3J0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWeIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLWV4cG9ydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZisIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GknyI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1leWUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSgIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLWV5ZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkoSI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1leWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkoiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1pbXBvcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpZ0iOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtaW1wb3J0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmK0iOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqqiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmK4iOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYu2IjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLW1hcmtlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZivIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIa7IjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmLAiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2Utb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmAIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZixIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmLIiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGuiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmLMiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXgiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1yZWZyZXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmLQiOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2UtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSAIjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZi1IjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChpiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYtiI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0gSI7CiAgICB9CgogICAgLm1kaS1kYXRhYmFzZS1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZi3IjsKICAgIH0KCiAgICAubWRpLWRhdGFiYXNlLXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws78iOwogICAgfQoKICAgIC5tZGktZGF0YWJhc2Utc3luYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZi4IjsKICAgIH0KCiAgICAubWRpLWRlYXRoLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo5giOwogICAgfQoKICAgIC5tZGktZGVhdGgtc3Rhci12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOZIjsKICAgIH0KCiAgICAubWRpLWRlYXRobHktaGFsbG93czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuhyI7CiAgICB9CgogICAgLm1kaS1kZWJpYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo5oiOwogICAgfQoKICAgIC5tZGktZGVidWctc3RlcC1pbnRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIa5IjsKICAgIH0KCiAgICAubWRpLWRlYnVnLXN0ZXAtb3V0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIa4IjsKICAgIH0KCiAgICAubWRpLWRlYnVnLXN0ZXAtb3ZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGtyI7CiAgICB9CgogICAgLm1kaS1kZWNhZ3JhbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdrCI7CiAgICB9CgogICAgLm1kaS1kZWNhZ3JhbS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2tIjsKICAgIH0KCiAgICAubWRpLWRlY2ltYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqEiOwogICAgfQoKICAgIC5tZGktZGVjaW1hbC1jb21tYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCoiI7CiAgICB9CgogICAgLm1kaS1kZWNpbWFsLWNvbW1hLWRlY3JlYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKjIjsKICAgIH0KCiAgICAubWRpLWRlY2ltYWwtY29tbWEtaW5jcmVhc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqQiOwogICAgfQoKICAgIC5tZGktZGVjaW1hbC1kZWNyZWFzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGtiI7CiAgICB9CgogICAgLm1kaS1kZWNpbWFsLWluY3JlYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIa1IjsKICAgIH0KCiAgICAubWRpLWRlbGV0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGtCI7CiAgICB9CgogICAgLm1kaS1kZWxldGUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqUiOwogICAgfQoKICAgIC5tZGktZGVsZXRlLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqYiOwogICAgfQoKICAgIC5tZGktZGVsZXRlLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CagyI7CiAgICB9CgogICAgLm1kaS1kZWxldGUtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrogiOwogICAgfQoKICAgIC5tZGktZGVsZXRlLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWWIjsKICAgIH0KCiAgICAubWRpLWRlbGV0ZS1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWXIjsKICAgIH0KCiAgICAubWRpLWRlbGV0ZS1lbXB0eTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbjCI7CiAgICB9CgogICAgLm1kaS1kZWxldGUtZW1wdHktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6nSI7CiAgICB9CgogICAgLm1kaS1kZWxldGUtZm9yZXZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXqCI7CiAgICB9CgogICAgLm1kaS1kZWxldGUtZm9yZXZlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6JIjsKICAgIH0KCiAgICAubWRpLWRlbGV0ZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqciOwogICAgfQoKICAgIC5tZGktZGVsZXRlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKoIjsKICAgIH0KCiAgICAubWRpLWRlbGV0ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKenIjsKICAgIH0KCiAgICAubWRpLWRlbGV0ZS1yZXN0b3JlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCZIjsKICAgIH0KCiAgICAubWRpLWRlbGV0ZS1zd2VlcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXqSI7CiAgICB9CgogICAgLm1kaS1kZWxldGUtc3dlZXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxoiI7CiAgICB9CgogICAgLm1kaS1kZWxldGUtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CGsyI7CiAgICB9CgogICAgLm1kaS1kZWx0YTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHgiI7CiAgICB9CgogICAgLm1kaS1kZXNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYi5IjsKICAgIH0KCiAgICAubWRpLWRlc2stbGFtcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClnyI7CiAgICB9CgogICAgLm1kaS1kZXNrLWxhbXAtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayfIjsKICAgIH0KCiAgICAubWRpLWRlc2stbGFtcC1vbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsoCI7CiAgICB9CgogICAgLm1kaS1kZXNrcGhvbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh4MiOwogICAgfQoKICAgIC5tZGktZGVza3RvcC1jbGFzc2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+AIjsKICAgIH0KCiAgICAubWRpLWRlc2t0b3AtdG93ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh4UiOwogICAgfQoKICAgIC5tZGktZGVza3RvcC10b3dlci1tb25pdG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqrIjsKICAgIH0KCiAgICAubWRpLWRldGFpbHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh4YiOwogICAgfQoKICAgIC5tZGktZGV2LXRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLWuIjsKICAgIH0KCiAgICAubWRpLWRldmVsb3Blci1ib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CalyI7CiAgICB9CgogICAgLm1kaS1kZXZpYW50YXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeHIjsKICAgIH0KCiAgICAubWRpLWRldmljZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvrAiOwogICAgfQoKICAgIC5tZGktZGhhcm1hY2hha3JhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWLIjsKICAgIH0KCiAgICAubWRpLWRpYWJldGVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSmIjsKICAgIH0KCiAgICAubWRpLWRpYWxwYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJwiOwogICAgfQoKICAgIC5tZGktZGlhbWV0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsaMiOwogICAgfQoKICAgIC5tZGktZGlhbWV0ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxpCI7CiAgICB9CgogICAgLm1kaS1kaWFtZXRlci12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGlIjsKICAgIH0KCiAgICAubWRpLWRpYW1vbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrooiOwogICAgfQoKICAgIC5tZGktZGlhbW9uZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6LIjsKICAgIH0KCiAgICAubWRpLWRpYW1vbmQtc3RvbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh4giOwogICAgfQoKICAgIC5tZGktZGlhcGVyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs48iOwogICAgfQoKICAgIC5tZGktZGljZS0xOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeKIjsKICAgIH0KCiAgICAubWRpLWRpY2UtMS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWKIjsKICAgIH0KCiAgICAubWRpLWRpY2UtMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHiyI7CiAgICB9CgogICAgLm1kaS1kaWNlLTItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFiyI7CiAgICB9CgogICAgLm1kaS1kaWNlLTM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh4wiOwogICAgfQoKICAgIC5tZGktZGljZS0zLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhYwiOwogICAgfQoKICAgIC5tZGktZGljZS00OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeNIjsKICAgIH0KCiAgICAubWRpLWRpY2UtNC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWNIjsKICAgIH0KCiAgICAubWRpLWRpY2UtNTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHjiI7CiAgICB9CgogICAgLm1kaS1kaWNlLTUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFjiI7CiAgICB9CgogICAgLm1kaS1kaWNlLTY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh48iOwogICAgfQoKICAgIC5tZGktZGljZS02LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhY8iOwogICAgfQoKICAgIC5tZGktZGljZS1kMTA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhZMiOwogICAgfQoKICAgIC5tZGktZGljZS1kMTAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdryI7CiAgICB9CgogICAgLm1kaS1kaWNlLWQxMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFlCI7CiAgICB9CgogICAgLm1kaS1kaWNlLWQxMi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGnIjsKICAgIH0KCiAgICAubWRpLWRpY2UtZDIwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWVIjsKICAgIH0KCiAgICAubWRpLWRpY2UtZDIwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl6oiOwogICAgfQoKICAgIC5tZGktZGljZS1kNDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFkCI7CiAgICB9CgogICAgLm1kaS1kaWNlLWQ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl6siOwogICAgfQoKICAgIC5tZGktZGljZS1kNjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFkSI7CiAgICB9CgogICAgLm1kaS1kaWNlLWQ2LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl60iOwogICAgfQoKICAgIC5tZGktZGljZS1kODpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFkiI7CiAgICB9CgogICAgLm1kaS1kaWNlLWQ4LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl6wiOwogICAgfQoKICAgIC5tZGktZGljZS1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdriI7CiAgICB9CgogICAgLm1kaS1kaWNlLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhZYiOwogICAgfQoKICAgIC5tZGktZGlnaXRhbC1vY2VhbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GItyI7CiAgICB9CgogICAgLm1kaS1kaXAtc3dpdGNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+BIjsKICAgIH0KCiAgICAubWRpLWRpcmVjdGlvbnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh5AiOwogICAgfQoKICAgIC5tZGktZGlyZWN0aW9ucy1mb3JrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmBIjsKICAgIH0KCiAgICAubWRpLWRpc2M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl64iOwogICAgfQoKICAgIC5tZGktZGlzYy1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHkSI7CiAgICB9CgogICAgLm1kaS1kaXNjLXBsYXllcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CloCI7CiAgICB9CgogICAgLm1kaS1kaXNod2FzaGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqsIjsKICAgIH0KCiAgICAubWRpLWRpc2h3YXNoZXItYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhrgiOwogICAgfQoKICAgIC5tZGktZGlzaHdhc2hlci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhrkiOwogICAgfQoKICAgIC5tZGktZGlzcXVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeSIjsKICAgIH0KCiAgICAubWRpLWRpc3RyaWJ1dGUtaG9yaXpvbnRhbC1jZW50ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh4kiOwogICAgfQoKICAgIC5tZGktZGlzdHJpYnV0ZS1ob3Jpem9udGFsLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh4giOwogICAgfQoKICAgIC5tZGktZGlzdHJpYnV0ZS1ob3Jpem9udGFsLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeKIjsKICAgIH0KCiAgICAubWRpLWRpc3RyaWJ1dGUtdmVydGljYWwtYm90dG9tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeLIjsKICAgIH0KCiAgICAubWRpLWRpc3RyaWJ1dGUtdmVydGljYWwtY2VudGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeMIjsKICAgIH0KCiAgICAubWRpLWRpc3RyaWJ1dGUtdmVydGljYWwtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeNIjsKICAgIH0KCiAgICAubWRpLWRpdmVyc2lmeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhtyI7CiAgICB9CgogICAgLm1kaS1kaXZpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpbciOwogICAgfQoKICAgIC5tZGktZGl2aW5nLWZsaXBwZXJzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLa/IjsKICAgIH0KCiAgICAubWRpLWRpdmluZy1oZWxtZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt4AiOwogICAgfQoKICAgIC5tZGktZGl2aW5nLXNjdWJhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa23IjsKICAgIH0KCiAgICAubWRpLWRpdmluZy1zY3ViYS1mbGFnOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeCIjsKICAgIH0KCiAgICAubWRpLWRpdmluZy1zY3ViYS1tYXNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeBIjsKICAgIH0KCiAgICAubWRpLWRpdmluZy1zY3ViYS10YW5rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeDIjsKICAgIH0KCiAgICAubWRpLWRpdmluZy1zY3ViYS10YW5rLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeEIjsKICAgIH0KCiAgICAubWRpLWRpdmluZy1zbm9ya2VsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeFIjsKICAgIH0KCiAgICAubWRpLWRpdmlzaW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeUIjsKICAgIH0KCiAgICAubWRpLWRpdmlzaW9uLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHlSI7CiAgICB9CgogICAgLm1kaS1kbG5hOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmBIjsKICAgIH0KCiAgICAubWRpLWRuYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CahCI7CiAgICB9CgogICAgLm1kaS1kbnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh5YiOwogICAgfQoKICAgIC5tZGktZG5zLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrowiOwogICAgfQoKICAgIC5tZGktZG9jay1ib3R0b206YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqkiOwogICAgfQoKICAgIC5tZGktZG9jay1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKqIjsKICAgIH0KCiAgICAubWRpLWRvY2stcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqsiOwogICAgfQoKICAgIC5tZGktZG9jay10b3A6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlJMiOwogICAgfQoKICAgIC5tZGktZG9jay13aW5kb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgqwiOwogICAgfQoKICAgIC5tZGktZG9ja2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGoIjsKICAgIH0KCiAgICAubWRpLWRvY3RvcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpgiI7CiAgICB9CgogICAgLm1kaS1kb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqYMiOwogICAgfQoKICAgIC5tZGktZG9nLXNlcnZpY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqq0iOwogICAgfQoKICAgIC5tZGktZG9nLXNpZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqYQiOwogICAgfQoKICAgIC5tZGktZG9nLXNpZGUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZuuIjsKICAgIH0KCiAgICAubWRpLWRvbGJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqzIjsKICAgIH0KCiAgICAubWRpLWRvbGx5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqeIjsKICAgIH0KCiAgICAubWRpLWRvbHBoaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxorQiOwogICAgfQoKICAgIC5tZGktZG9tYWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeXIjsKICAgIH0KCiAgICAubWRpLWRvbWFpbi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwta8iOwogICAgfQoKICAgIC5tZGktZG9tYWluLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgq0iOwogICAgfQoKICAgIC5tZGktZG9tYWluLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCriI7CiAgICB9CgogICAgLm1kaS1kb21haW4tc3dpdGNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCsIjsKICAgIH0KCiAgICAubWRpLWRvbWUtbGlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkJ4iOwogICAgfQoKICAgIC5tZGktZG9taW5vLW1hc2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgKMiOwogICAgfQoKICAgIC5tZGktZG9ua2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+CIjsKICAgIH0KCiAgICAubWRpLWRvb3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoJoiOwogICAgfQoKICAgIC5tZGktZG9vci1jbG9zZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoJsiOwogICAgfQoKICAgIC5tZGktZG9vci1jbG9zZWQtY2FuY2VsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKTIjsKICAgIH0KCiAgICAubWRpLWRvb3ItY2xvc2VkLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgq8iOwogICAgfQoKICAgIC5tZGktZG9vci1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCcIjsKICAgIH0KCiAgICAubWRpLWRvb3Itc2xpZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgniI7CiAgICB9CgogICAgLm1kaS1kb29yLXNsaWRpbmctbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgnyI7CiAgICB9CgogICAgLm1kaS1kb29yLXNsaWRpbmctb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgoCI7CiAgICB9CgogICAgLm1kaS1kb29yYmVsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLpiI7CiAgICB9CgogICAgLm1kaS1kb29yYmVsbC12aWRlbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChqSI7CiAgICB9CgogICAgLm1kaS1kb3QtbmV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKquIjsKICAgIH0KCiAgICAubWRpLWRvdHMtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaW4IjsKICAgIH0KCiAgICAubWRpLWRvdHMtZ3JpZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXvCI7CiAgICB9CgogICAgLm1kaS1kb3RzLWhleGFnb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl78iOwogICAgfQoKICAgIC5tZGktZG90cy1ob3Jpem9udGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeYIjsKICAgIH0KCiAgICAubWRpLWRvdHMtaG9yaXpvbnRhbC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn4MiOwogICAgfQoKICAgIC5tZGktZG90cy1ob3Jpem9udGFsLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6NIjsKICAgIH0KCiAgICAubWRpLWRvdHMtc3F1YXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZe9IjsKICAgIH0KCiAgICAubWRpLWRvdHMtdHJpYW5nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl74iOwogICAgfQoKICAgIC5tZGktZG90cy12ZXJ0aWNhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHmSI7CiAgICB9CgogICAgLm1kaS1kb3RzLXZlcnRpY2FsLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfhCI7CiAgICB9CgogICAgLm1kaS1kb3RzLXZlcnRpY2FsLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6OIjsKICAgIH0KCiAgICAubWRpLWRvd25sb2FkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeaIjsKICAgIH0KCiAgICAubWRpLWRvd25sb2FkLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRoiI7CiAgICB9CgogICAgLm1kaS1kb3dubG9hZC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRoyI7CiAgICB9CgogICAgLm1kaS1kb3dubG9hZC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkaQiOwogICAgfQoKICAgIC5tZGktZG93bmxvYWQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkaUiOwogICAgfQoKICAgIC5tZGktZG93bmxvYWQtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMoCI7CiAgICB9CgogICAgLm1kaS1kb3dubG9hZC1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjKEiOwogICAgfQoKICAgIC5tZGktZG93bmxvYWQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp6kiOwogICAgfQoKICAgIC5tZGktZG93bmxvYWQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzkCI7CiAgICB9CgogICAgLm1kaS1kb3dubG9hZC1uZXR3b3JrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJu0IjsKICAgIH0KCiAgICAubWRpLWRvd25sb2FkLW5ldHdvcmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxpiI7CiAgICB9CgogICAgLm1kaS1kb3dubG9hZC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgrAiOwogICAgfQoKICAgIC5tZGktZG93bmxvYWQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgrEiOwogICAgfQoKICAgIC5tZGktZG93bmxvYWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CujyI7CiAgICB9CgogICAgLm1kaS1kcmFnOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIebIjsKICAgIH0KCiAgICAubWRpLWRyYWctaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHnCI7CiAgICB9CgogICAgLm1kaS1kcmFnLWhvcml6b250YWwtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLsCI7CiAgICB9CgogICAgLm1kaS1kcmFnLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrpAiOwogICAgfQoKICAgIC5tZGktZHJhZy12ZXJ0aWNhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHnSI7CiAgICB9CgogICAgLm1kaS1kcmFnLXZlcnRpY2FsLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi7EiOwogICAgfQoKICAgIC5tZGktZHJhbWEtbWFza3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtIIiOwogICAgfQoKICAgIC5tZGktZHJhdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9iSI7CiAgICB9CgogICAgLm1kaS1kcmF3LXBlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmuSI7CiAgICB9CgogICAgLm1kaS1kcmF3aW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeeIjsKICAgIH0KCiAgICAubWRpLWRyYXdpbmctYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIefIjsKICAgIH0KCiAgICAubWRpLWRyZXNzZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvYoiOwogICAgfQoKICAgIC5tZGktZHJlc3Nlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2LIjsKICAgIH0KCiAgICAubWRpLWRyb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIeiIjsKICAgIH0KCiAgICAubWRpLWRyb3Bib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh6MiOwogICAgfQoKICAgIC5tZGktZHJ1cGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIekIjsKICAgIH0KCiAgICAubWRpLWR1Y2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh6UiOwogICAgfQoKICAgIC5tZGktZHVtYmJlbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh6YiOwogICAgfQoKICAgIC5tZGktZHVtcC10cnVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxpyI7CiAgICB9CgogICAgLm1kaS1lYXItaGVhcmluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfhSI7CiAgICB9CgogICAgLm1kaS1lYXItaGVhcmluZy1sb29wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauuIjsKICAgIH0KCiAgICAubWRpLWVhci1oZWFyaW5nLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CphSI7CiAgICB9CgogICAgLm1kaS1lYXJidWRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGPIjsKICAgIH0KCiAgICAubWRpLWVhcmJ1ZHMtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGQIjsKICAgIH0KCiAgICAubWRpLWVhcmJ1ZHMtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoZEiOwogICAgfQoKICAgIC5tZGktZWFyYnVkcy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGSIjsKICAgIH0KCiAgICAubWRpLWVhcnRoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIenIjsKICAgIH0KCiAgICAubWRpLWVhcnRoLWFycm93LWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsociOwogICAgfQoKICAgIC5tZGktZWFydGgtYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyiCI7CiAgICB9CgogICAgLm1kaS1lYXJ0aC1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMkSI7CiAgICB9CgogICAgLm1kaS1lYXJ0aC1hcnJvdy11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyiSI7CiAgICB9CgogICAgLm1kaS1lYXJ0aC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm40iOwogICAgfQoKICAgIC5tZGktZWFydGgtYm94LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCHIjsKICAgIH0KCiAgICAubWRpLWVhcnRoLWJveC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm44iOwogICAgfQoKICAgIC5tZGktZWFydGgtYm94LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkIYiOwogICAgfQoKICAgIC5tZGktZWFydGgtYm94LXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQiCI7CiAgICB9CgogICAgLm1kaS1lYXJ0aC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQhCI7CiAgICB9CgogICAgLm1kaS1lYXJ0aC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh6giOwogICAgfQoKICAgIC5tZGktZWFydGgtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQgyI7CiAgICB9CgogICAgLm1kaS1lYXJ0aC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkIUiOwogICAgfQoKICAgIC5tZGktZWdnOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqvIjsKICAgIH0KCiAgICAubWRpLWVnZy1lYXN0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqrAiOwogICAgfQoKICAgIC5tZGktZWdnLWZyaWVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGKIjsKICAgIH0KCiAgICAubWRpLWVnZy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj7AiOwogICAgfQoKICAgIC5tZGktZWdnLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+xIjsKICAgIH0KCiAgICAubWRpLWVnZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+yIjsKICAgIH0KCiAgICAubWRpLWVpZmZlbC10b3dlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVqyI7CiAgICB9CgogICAgLm1kaS1laWdodC10cmFjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnqiI7CiAgICB9CgogICAgLm1kaS1lamVjdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHqiI7CiAgICB9CgogICAgLm1kaS1lamVjdC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrKMiOwogICAgfQoKICAgIC5tZGktZWplY3QtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrKQiOwogICAgfQoKICAgIC5tZGktZWplY3Qtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CukSI7CiAgICB9CgogICAgLm1kaS1lbGVjdHJpYy1zd2l0Y2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwup8iOwogICAgfQoKICAgIC5tZGktZWxlY3RyaWMtc3dpdGNoLWNsb3NlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDmSI7CiAgICB9CgogICAgLm1kaS1lbGVjdHJvbi1mcmFtZXdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgKQiOwogICAgfQoKICAgIC5tZGktZWxlcGhhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn4YiOwogICAgfQoKICAgIC5tZGktZWxldmF0aW9uLWRlY2xpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh6siOwogICAgfQoKICAgIC5tZGktZWxldmF0aW9uLXJpc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh6wiOwogICAgfQoKICAgIC5tZGktZWxldmF0b3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh60iOwogICAgfQoKICAgIC5tZGktZWxldmF0b3ItZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLgiI7CiAgICB9CgogICAgLm1kaS1lbGV2YXRvci1wYXNzZW5nZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjoEiOwogICAgfQoKICAgIC5tZGktZWxldmF0b3ItcGFzc2VuZ2VyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GluSI7CiAgICB9CgogICAgLm1kaS1lbGV2YXRvci1wYXNzZW5nZXItb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpboiOwogICAgfQoKICAgIC5tZGktZWxldmF0b3ItcGFzc2VuZ2VyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpbsiOwogICAgfQoKICAgIC5tZGktZWxldmF0b3ItdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi4EiOwogICAgfQoKICAgIC5tZGktZWxsaXBzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6oCI7CiAgICB9CgogICAgLm1kaS1lbGxpcHNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuqEiOwogICAgfQoKICAgIC5tZGktZW1haWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh64iOwogICAgfQoKICAgIC5tZGktZW1haWwtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm48iOwogICAgfQoKICAgIC5tZGktZW1haWwtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1giI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1hcnJvdy1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOaIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLWFycm93LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDmyI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDnCI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1hcnJvdy1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOdIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0gyI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqsSI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqyIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu6MiOwogICAgfQoKICAgIC5tZGktZW1haWwtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLukIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLWZhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoa8iOwogICAgfQoKICAgIC5tZGktZW1haWwtZmFzdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGwIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLWhlYXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsZsiOwogICAgfQoKICAgIC5tZGktZW1haWwtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHsSI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxraEiOwogICAgfQoKICAgIC5tZGktZW1haWwtbWFyay1hcy11bnJlYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrpIiOwogICAgfQoKICAgIC5tZGktZW1haWwtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu6UiOwogICAgfQoKICAgIC5tZGktZW1haWwtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7piI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7pyI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuoIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLW5ld3NsZXR0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvrEiOwogICAgfQoKICAgIC5tZGktZW1haWwtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+jIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+kIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh68iOwogICAgfQoKICAgIC5tZGktZW1haWwtb3Blbi1oZWFydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGcIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLW9wZW4tbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu6kiOwogICAgfQoKICAgIC5tZGktZW1haWwtb3Blbi1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuqIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXryI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIewIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp6siOwogICAgfQoKICAgIC5tZGktZW1haWwtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKesIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZoSI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZoiI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1zZWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWbIjsKICAgIH0KCiAgICAubWRpLWVtYWlsLXNlYWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlnCI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpaEiOwogICAgfQoKICAgIC5tZGktZW1haWwtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpaIiOwogICAgfQoKICAgIC5tZGktZW1haWwtc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLhyI7CiAgICB9CgogICAgLm1kaS1lbWFpbC1zeW5jLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi4giOwogICAgfQoKICAgIC5tZGktZW1haWwtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXsCI7CiAgICB9CgogICAgLm1kaS1lbWJlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CssCI7CiAgICB9CgogICAgLm1kaS1lbWJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJq0IjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGoIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLWFuZ3J5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGpIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLWFuZ3J5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsaoiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tY29uZnVzZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg54iOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tY29uZnVzZWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDnyI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1jb29sOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGrIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLWNvb2wtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHsyI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1jcnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsawiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tY3J5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsa0iOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tZGVhZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxriI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1kZWFkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmpsiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tZGV2aWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsa8iOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tZGV2aWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHtCI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1leGNpdGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGwIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLWV4Y2l0ZWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CanCI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1mcm93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9jCI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1mcm93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2NIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLWhhcHB5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLGxIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLWhhcHB5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh7UiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24ta2lzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxsiI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1raXNzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsbMiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tbG9sOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiUIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLWxvbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiVIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKyIjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsrMiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tbmV1dHJhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxtCI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1uZXV0cmFsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh7YiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHsiI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbK0IjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GytSI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1wb29wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIe3IjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLXBvb3Atb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxtSI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsrYiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsrciOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tc2FkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLG2IjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLXNhZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIe4IjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLXNpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlbwiOwogICAgfQoKICAgIC5tZGktZW1vdGljb24tc2ljay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZW9IjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLXRvbmd1ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHuSI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi10b25ndWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxtyI7CiAgICB9CgogICAgLm1kaS1lbW90aWNvbi13aW5rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLG4IjsKICAgIH0KCiAgICAubWRpLWVtb3RpY29uLXdpbmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxuSI7CiAgICB9CgogICAgLm1kaS1lbmdpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh7oiOwogICAgfQoKICAgIC5tZGktZW5naW5lLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CphiI7CiAgICB9CgogICAgLm1kaS1lbmdpbmUtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqYciOwogICAgfQoKICAgIC5tZGktZW5naW5lLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh7siOwogICAgfQoKICAgIC5tZGktZXBzaWxvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDoCI7CiAgICB9CgogICAgLm1kaS1lcXVhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHvCI7CiAgICB9CgogICAgLm1kaS1lcXVhbC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh70iOwogICAgfQoKICAgIC5tZGktZXF1YWxpemVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqiIjsKICAgIH0KCiAgICAubWRpLWVxdWFsaXplci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqjIjsKICAgIH0KCiAgICAubWRpLWVyYXNlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CHviI7CiAgICB9CgogICAgLm1kaS1lcmFzZXItdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZgiI7CiAgICB9CgogICAgLm1kaS1lc2NhbGF0b3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh78iOwogICAgfQoKICAgIC5tZGktZXNjYWxhdG9yLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOmSI7CiAgICB9CgogICAgLm1kaS1lc2NhbGF0b3ItZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLgCI7CiAgICB9CgogICAgLm1kaS1lc2NhbGF0b3ItdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxir8iOwogICAgfQoKICAgIC5tZGktZXNsaW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLG6IjsKICAgIH0KCiAgICAubWRpLWV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKqzIjsKICAgIH0KCiAgICAubWRpLWV0aGVyZXVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGqIjsKICAgIH0KCiAgICAubWRpLWV0aGVybmV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiAIjsKICAgIH0KCiAgICAubWRpLWV0aGVybmV0LWNhYmxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiBIjsKICAgIH0KCiAgICAubWRpLWV0aGVybmV0LWNhYmxlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIgiI7CiAgICB9CgogICAgLm1kaS1ldGhlcm5ldC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs5EiOwogICAgfQoKICAgIC5tZGktZXYtcGx1Zy1jY3MxOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSZIjsKICAgIH0KCiAgICAubWRpLWV2LXBsdWctY2NzMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUmiI7CiAgICB9CgogICAgLm1kaS1ldi1wbHVnLWNoYWRlbW86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlJsiOwogICAgfQoKICAgIC5tZGktZXYtcGx1Zy10ZXNsYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUnCI7CiAgICB9CgogICAgLm1kaS1ldi1wbHVnLXR5cGUxOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSdIjsKICAgIH0KCiAgICAubWRpLWV2LXBsdWctdHlwZTI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlJ4iOwogICAgfQoKICAgIC5tZGktZXYtc3RhdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXsSI7CiAgICB9CgogICAgLm1kaS1ldmVybm90ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIhCI7CiAgICB9CgogICAgLm1kaS1leGNhdmF0b3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgKUiOwogICAgfQoKICAgIC5tZGktZXhjbGFtYXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiIUiOwogICAgfQoKICAgIC5tZGktZXhjbGFtYXRpb24tdGhpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiLgiOwogICAgfQoKICAgIC5tZGktZXhpdC1ydW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqYgiOwogICAgfQoKICAgIC5tZGktZXhpdC10by1hcHA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiIYiOwogICAgfQoKICAgIC5tZGktZXhwYW5kLWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqtCI7CiAgICB9CgogICAgLm1kaS1leHBhbmQtYWxsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqrUiOwogICAgfQoKICAgIC5tZGktZXhwYW5zaW9uLWNhcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoq4iOwogICAgfQoKICAgIC5tZGktZXhwYW5zaW9uLWNhcmQtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+siI7CiAgICB9CgogICAgLm1kaS1leHBvbmVudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CloyI7CiAgICB9CgogICAgLm1kaS1leHBvbmVudC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpaQiOwogICAgfQoKICAgIC5tZGktZXhwb3J0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiHIjsKICAgIH0KCiAgICAubWRpLWV4cG9ydC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6TIjsKICAgIH0KCiAgICAubWRpLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIiCI7CiAgICB9CgogICAgLm1kaS1leWUtYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjvSI7CiAgICB9CgogICAgLm1kaS1leWUtYXJyb3ctbGVmdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaO+IjsKICAgIH0KCiAgICAubWRpLWV5ZS1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjvyI7CiAgICB9CgogICAgLm1kaS1leWUtYXJyb3ctcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkgCI7CiAgICB9CgogICAgLm1kaS1leWUtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtIQiOwogICAgfQoKICAgIC5tZGktZXllLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtIUiOwogICAgfQoKICAgIC5tZGktZXllLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CulCI7CiAgICB9CgogICAgLm1kaS1leWUtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrpUiOwogICAgfQoKICAgIC5tZGktZXllLWNsb3NlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyoyI7CiAgICB9CgogICAgLm1kaS1leWUtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwhiI7CiAgICB9CgogICAgLm1kaS1leWUtbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCHIjsKICAgIH0KCiAgICAubWRpLWV5ZS1sb2NrLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwiCI7CiAgICB9CgogICAgLm1kaS1leWUtbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCJIjsKICAgIH0KCiAgICAubWRpLWV5ZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GApiI7CiAgICB9CgogICAgLm1kaS1leWUtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GApyI7CiAgICB9CgogICAgLm1kaS1leWUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiJIjsKICAgIH0KCiAgICAubWRpLWV5ZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbkSI7CiAgICB9CgogICAgLm1kaS1leWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbkCI7CiAgICB9CgogICAgLm1kaS1leWUtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChqyI7CiAgICB9CgogICAgLm1kaS1leWUtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGsIjsKICAgIH0KCiAgICAubWRpLWV5ZS1yZWZyZXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaW8IjsKICAgIH0KCiAgICAubWRpLWV5ZS1yZWZyZXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpb0iOwogICAgfQoKICAgIC5tZGktZXllLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXoyI7CiAgICB9CgogICAgLm1kaS1leWUtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl6QiOwogICAgfQoKICAgIC5tZGktZXllLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGtIjsKICAgIH0KCiAgICAubWRpLWV5ZS1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGuIjsKICAgIH0KCiAgICAubWRpLWV5ZWRyb3BwZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiIoiOwogICAgfQoKICAgIC5tZGktZXllZHJvcHBlci1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPnSI7CiAgICB9CgogICAgLm1kaS1leWVkcm9wcGVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPnyI7CiAgICB9CgogICAgLm1kaS1leWVkcm9wcGVyLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj5wiOwogICAgfQoKICAgIC5tZGktZXllZHJvcHBlci1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj54iOwogICAgfQoKICAgIC5tZGktZXllZHJvcHBlci12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiLIjsKICAgIH0KCiAgICAubWRpLWZhY2UtYWdlbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbAiOwogICAgfQoKICAgIC5tZGktZmFjZS1tYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmYMiOwogICAgfQoKICAgIC5tZGktZmFjZS1tYW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuliI7CiAgICB9CgogICAgLm1kaS1mYWNlLW1hbi1wcm9maWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmEIjsKICAgIH0KCiAgICAubWRpLWZhY2UtbWFuLXNoaW1tZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl4wiOwogICAgfQoKICAgIC5tZGktZmFjZS1tYW4tc2hpbW1lci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeNIjsKICAgIH0KCiAgICAubWRpLWZhY2UtbWFzazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWhiI7CiAgICB9CgogICAgLm1kaS1mYWNlLW1hc2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWhyI7CiAgICB9CgogICAgLm1kaS1mYWNlLXJlY29nbml0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLG7IjsKICAgIH0KCiAgICAubWRpLWZhY2Utd29tYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgbciOwogICAgfQoKICAgIC5tZGktZmFjZS13b21hbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYG4IjsKICAgIH0KCiAgICAubWRpLWZhY2Utd29tYW4tcHJvZmlsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBtiI7CiAgICB9CgogICAgLm1kaS1mYWNlLXdvbWFuLXNoaW1tZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl44iOwogICAgfQoKICAgIC5tZGktZmFjZS13b21hbi1zaGltbWVyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl48iOwogICAgfQoKICAgIC5tZGktZmFjZWJvb2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiIwiOwogICAgfQoKICAgIC5tZGktZmFjZWJvb2stZ2FtaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+dIjsKICAgIH0KCiAgICAubWRpLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIjiI7CiAgICB9CgogICAgLm1kaS1mYWNlYm9vay13b3JrcGxhY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrLEiOwogICAgfQoKICAgIC5tZGktZmFjdG9yeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIjyI7CiAgICB9CgogICAgLm1kaS1mYW1pbHktdHJlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYjiI7CiAgICB9CgogICAgLm1kaS1mYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJAiOwogICAgfQoKICAgIC5tZGktZmFuLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGsIjsKICAgIH0KCiAgICAubWRpLWZhbi1hdXRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZydIjsKICAgIH0KCiAgICAubWRpLWZhbi1jaGV2cm9uLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxka0iOwogICAgfQoKICAgIC5tZGktZmFuLWNoZXZyb24tdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxka4iOwogICAgfQoKICAgIC5tZGktZmFuLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsai6IjsKICAgIH0KCiAgICAubWRpLWZhbi1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRsCI7CiAgICB9CgogICAgLm1kaS1mYW4tb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCdIjsKICAgIH0KCiAgICAubWRpLWZhbi1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGvIjsKICAgIH0KCiAgICAubWRpLWZhbi1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkbEiOwogICAgfQoKICAgIC5tZGktZmFuLXNwZWVkLTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkbIiOwogICAgfQoKICAgIC5tZGktZmFuLXNwZWVkLTI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkbMiOwogICAgfQoKICAgIC5tZGktZmFuLXNwZWVkLTM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkbQiOwogICAgfQoKICAgIC5tZGktZmFzdC1mb3J3YXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiRIjsKICAgIH0KCiAgICAubWRpLWZhc3QtZm9yd2FyZC0xMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1sSI7CiAgICB9CgogICAgLm1kaS1mYXN0LWZvcndhcmQtMTU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpLoiOwogICAgfQoKICAgIC5tZGktZmFzdC1mb3J3YXJkLTMwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSGIjsKICAgIH0KCiAgICAubWRpLWZhc3QtZm9yd2FyZC00NTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GskiI7CiAgICB9CgogICAgLm1kaS1mYXN0LWZvcndhcmQtNTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHuCI7CiAgICB9CgogICAgLm1kaS1mYXN0LWZvcndhcmQtNjA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmIsiOwogICAgfQoKICAgIC5tZGktZmFzdC1mb3J3YXJkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm5IiOwogICAgfQoKICAgIC5tZGktZmF1Y2V0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaypIjsKICAgIH0KCiAgICAubWRpLWZhdWNldC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayqIjsKICAgIH0KCiAgICAubWRpLWZheDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIkiI7CiAgICB9CgogICAgLm1kaS1mZWF0aGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuTIjsKICAgIH0KCiAgICAubWRpLWZlYXR1cmUtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmJIjsKICAgIH0KCiAgICAubWRpLWZlYXR1cmUtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqYoiOwogICAgfQoKICAgIC5tZGktZmVkb3JhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKObIjsKICAgIH0KCiAgICAubWRpLWZlbmNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6aIjsKICAgIH0KCiAgICAubWRpLWZlbmNlLWVsZWN0cmljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+2IjsKICAgIH0KCiAgICAubWRpLWZlbmNpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk4EiOwogICAgfQoKICAgIC5tZGktZmVycmlzLXdoZWVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqkIjsKICAgIH0KCiAgICAubWRpLWZlcnJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiTIjsKICAgIH0KCiAgICAubWRpLWZpbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJQiOwogICAgfQoKICAgIC5tZGktZmlsZS1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJy7IjsKICAgIH0KCiAgICAubWRpLWZpbGUtYWNjb3VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCoIjsKICAgIH0KCiAgICAubWRpLWZpbGUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqYsiOwogICAgfQoKICAgIC5tZGktZmlsZS1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmMIjsKICAgIH0KCiAgICAubWRpLWZpbGUtYXJyb3ctbGVmdC1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqkyI7CiAgICB9CgogICAgLm1kaS1maWxlLWFycm93LWxlZnQtcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqlCI7CiAgICB9CgogICAgLm1kaS1maWxlLWFycm93LXVwLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqpUiOwogICAgfQoKICAgIC5tZGktZmlsZS1hcnJvdy11cC1kb3duLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqpYiOwogICAgfQoKICAgIC5tZGktZmlsZS1jYWJpbmV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKq2IjsKICAgIH0KCiAgICAubWRpLWZpbGUtY2FkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLurIjsKICAgIH0KCiAgICAubWRpLWZpbGUtY2FkLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7rCI7CiAgICB9CgogICAgLm1kaS1maWxlLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3hiI7CiAgICB9CgogICAgLm1kaS1maWxlLWNhbmNlbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeHIjsKICAgIH0KCiAgICAubWRpLWZpbGUtY2VydGlmaWNhdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhoYiOwogICAgfQoKICAgIC5tZGktZmlsZS1jZXJ0aWZpY2F0ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaHIjsKICAgIH0KCiAgICAubWRpLWZpbGUtY2hhcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJUiOwogICAgfQoKICAgIC5tZGktZmlsZS1jaGFydC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnhiI7CiAgICB9CgogICAgLm1kaS1maWxlLWNoYXJ0LWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp4ciOwogICAgfQoKICAgIC5tZGktZmlsZS1jaGFydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCpIjsKICAgIH0KCiAgICAubWRpLWZpbGUtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJYiOwogICAgfQoKICAgIC5tZGktZmlsZS1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLipIjsKICAgIH0KCiAgICAubWRpLWZpbGUtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi6EiOwogICAgfQoKICAgIC5tZGktZmlsZS1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuiIjsKICAgIH0KCiAgICAubWRpLWZpbGUtY2xvdWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJciOwogICAgfQoKICAgIC5tZGktZmlsZS1jbG91ZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCqIjsKICAgIH0KCiAgICAubWRpLWZpbGUtY29kZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIriI7CiAgICB9CgogICAgLm1kaS1maWxlLWNvZGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAqyI7CiAgICB9CgogICAgLm1kaS1maWxlLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBuyI7CiAgICB9CgogICAgLm1kaS1maWxlLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYG8IjsKICAgIH0KCiAgICAubWRpLWZpbGUtY29tcGFyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CiqiI7CiAgICB9CgogICAgLm1kaS1maWxlLWRlbGltaXRlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CImCI7CiAgICB9CgogICAgLm1kaS1maWxlLWRlbGltaXRlZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqlIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJkiOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqlyI7CiAgICB9CgogICAgLm1kaS1maWxlLWRvY3VtZW50LWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqpgiOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwjyI7CiAgICB9CgogICAgLm1kaS1maWxlLWRvY3VtZW50LWFycm93LXJpZ2h0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsJAiOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqmSI7CiAgICB9CgogICAgLm1kaS1maWxlLWRvY3VtZW50LWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqpoiOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeIIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeJIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqpsiOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqcIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlJciOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSYIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnriI7CiAgICB9CgogICAgLm1kaS1maWxlLWRvY3VtZW50LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqp0iOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqp4iOwogICAgfQoKICAgIC5tZGktZmlsZS1kb2N1bWVudC1yZWZyZXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbG6IjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQtcmVmcmVzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbG7IjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqfIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZG9jdW1lbnQtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqqAiOwogICAgfQoKICAgIC5tZGktZmlsZS1kb3dubG9hZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClpSI7CiAgICB9CgogICAgLm1kaS1maWxlLWRvd25sb2FkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpaYiOwogICAgfQoKICAgIC5tZGktZmlsZS1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYenIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeoIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZXhjZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJsiOwogICAgfQoKICAgIC5tZGktZmlsZS1leGNlbC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJwiOwogICAgfQoKICAgIC5tZGktZmlsZS1leGNlbC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GArCI7CiAgICB9CgogICAgLm1kaS1maWxlLWV4Y2VsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgK0iOwogICAgfQoKICAgIC5tZGktZmlsZS1leHBvcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJ0iOwogICAgfQoKICAgIC5tZGktZmlsZS1leHBvcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAriI7CiAgICB9CgogICAgLm1kaS1maWxlLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3iiI7CiAgICB9CgogICAgLm1kaS1maWxlLWV5ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeLIjsKICAgIH0KCiAgICAubWRpLWZpbGUtZmluZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIniI7CiAgICB9CgogICAgLm1kaS1maWxlLWZpbmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CulyI7CiAgICB9CgogICAgLm1kaS1maWxlLWdpZi1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbgiOwogICAgfQoKICAgIC5tZGktZmlsZS1oaWRkZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJMiOwogICAgfQoKICAgIC5tZGktZmlsZS1pbWFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CInyI7CiAgICB9CgogICAgLm1kaS1maWxlLWltYWdlLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdsiI7CiAgICB9CgogICAgLm1kaS1maWxlLWltYWdlLW1hcmtlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2zIjsKICAgIH0KCiAgICAubWRpLWZpbGUtaW1hZ2UtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpLsiOwogICAgfQoKICAgIC5tZGktZmlsZS1pbWFnZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaS8IjsKICAgIH0KCiAgICAubWRpLWZpbGUtaW1hZ2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6sCI7CiAgICB9CgogICAgLm1kaS1maWxlLWltYWdlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpL0iOwogICAgfQoKICAgIC5tZGktZmlsZS1pbWFnZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpL4iOwogICAgfQoKICAgIC5tZGktZmlsZS1pbWFnZS1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpL8iOwogICAgfQoKICAgIC5tZGktZmlsZS1pbWFnZS1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlgCI7CiAgICB9CgogICAgLm1kaS1maWxlLWltcG9ydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIoCI7CiAgICB9CgogICAgLm1kaS1maWxlLWltcG9ydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCvIjsKICAgIH0KCiAgICAubWRpLWZpbGUtanBnLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIpSI7CiAgICB9CgogICAgLm1kaS1maWxlLWtleTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGhCI7CiAgICB9CgogICAgLm1kaS1maWxlLWtleS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaFIjsKICAgIH0KCiAgICAubWRpLWZpbGUtbGluazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFtyI7CiAgICB9CgogICAgLm1kaS1maWxlLWxpbmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFuCI7CiAgICB9CgogICAgLm1kaS1maWxlLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiKEiOwogICAgfQoKICAgIC5tZGktZmlsZS1sb2NrLW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp4giOwogICAgfQoKICAgIC5tZGktZmlsZS1sb2NrLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GniSI7CiAgICB9CgogICAgLm1kaS1maWxlLWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAsCI7CiAgICB9CgogICAgLm1kaS1maWxlLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdtCI7CiAgICB9CgogICAgLm1kaS1maWxlLW1hcmtlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ21IjsKICAgIH0KCiAgICAubWRpLWZpbGUtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqqEiOwogICAgfQoKICAgIC5tZGktZmlsZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqiIjsKICAgIH0KCiAgICAubWRpLWZpbGUtbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CquSI7CiAgICB9CgogICAgLm1kaS1maWxlLW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAsSI7CiAgICB9CgogICAgLm1kaS1maWxlLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiiIjsKICAgIH0KCiAgICAubWRpLWZpbGUtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAsiI7CiAgICB9CgogICAgLm1kaS1maWxlLW11c2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIijIjsKICAgIH0KCiAgICAubWRpLWZpbGUtbXVzaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4qiI7CiAgICB9CgogICAgLm1kaS1maWxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiKQiOwogICAgfQoKICAgIC5tZGktZmlsZS1wZGYtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIimIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcGVyY2VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgniI7CiAgICB9CgogICAgLm1kaS1maWxlLXBlcmNlbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAsyI7CiAgICB9CgogICAgLm1kaS1maWxlLXBob25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYW5IjsKICAgIH0KCiAgICAubWRpLWZpbGUtcGhvbmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFuiI7CiAgICB9CgogICAgLm1kaS1maWxlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnZIiOwogICAgfQoKICAgIC5tZGktZmlsZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu60iOwogICAgfQoKICAgIC5tZGktZmlsZS1wbmctYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLitIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcG93ZXJwb2ludDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIpyI7CiAgICB9CgogICAgLm1kaS1maWxlLXBvd2VycG9pbnQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIioIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcG93ZXJwb2ludC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAtCI7CiAgICB9CgogICAgLm1kaS1maWxlLXBvd2VycG9pbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAtSI7CiAgICB9CgogICAgLm1kaS1maWxlLXByZXNlbnRhdGlvbi1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiKkiOwogICAgfQoKICAgIC5tZGktZmlsZS1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChryI7CiAgICB9CgogICAgLm1kaS1maWxlLXF1ZXN0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgLYiOwogICAgfQoKICAgIC5tZGktZmlsZS1yZWZyZXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSYIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcmVmcmVzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJWBIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6YIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgLciOwogICAgfQoKICAgIC5tZGktZmlsZS1yZXBsYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKyyIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcmVwbGFjZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKyzIjsKICAgIH0KCiAgICAubWRpLWZpbGUtcmVzdG9yZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZsCI7CiAgICB9CgogICAgLm1kaS1maWxlLXJlc3RvcmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAuCI7CiAgICB9CgogICAgLm1kaS1maWxlLXJvdGF0ZS1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsai7IjsKICAgIH0KCiAgICAubWRpLWZpbGUtcm90YXRlLWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GovCI7CiAgICB9CgogICAgLm1kaS1maWxlLXJvdGF0ZS1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GovSI7CiAgICB9CgogICAgLm1kaS1maWxlLXJvdGF0ZS1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsai+IjsKICAgIH0KCiAgICAubWRpLWZpbGUtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLG8IjsKICAgIH0KCiAgICAubWRpLWZpbGUtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsb0iOwogICAgfQoKICAgIC5tZGktZmlsZS1zZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiqIjsKICAgIH0KCiAgICAubWRpLWZpbGUtc2VuZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYC5IjsKICAgIH0KCiAgICAubWRpLWZpbGUtc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgbkiOwogICAgfQoKICAgIC5tZGktZmlsZS1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYG6IjsKICAgIH0KCiAgICAubWRpLWZpbGUtc2lnbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GngyI7CiAgICB9CgogICAgLm1kaS1maWxlLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgLoiOwogICAgfQoKICAgIC5tZGktZmlsZS1zdGFyLWZvdXItcG9pbnRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCtIjsKICAgIH0KCiAgICAubWRpLWZpbGUtc3Rhci1mb3VyLXBvaW50cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCuIjsKICAgIH0KCiAgICAubWRpLWZpbGUtc3Rhci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYC7IjsKICAgIH0KCiAgICAubWRpLWZpbGUtc3dhcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+tCI7CiAgICB9CgogICAgLm1kaS1maWxlLXN3YXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+tSI7CiAgICB9CgogICAgLm1kaS1maWxlLXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiJYiOwogICAgfQoKICAgIC5tZGktZmlsZS1zeW5jLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiJciOwogICAgfQoKICAgIC5tZGktZmlsZS10YWJsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CxviI7CiAgICB9CgogICAgLm1kaS1maWxlLXRhYmxlLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDoSI7CiAgICB9CgogICAgLm1kaS1maWxlLXRhYmxlLWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDoiI7CiAgICB9CgogICAgLm1kaS1maWxlLXRhYmxlLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOjIjsKICAgIH0KCiAgICAubWRpLWZpbGUtdGFibGUtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg6QiOwogICAgfQoKICAgIC5tZGktZmlsZS10YWJsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLG/IjsKICAgIH0KCiAgICAubWRpLWZpbGUtdHJlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZhSI7CiAgICB9CgogICAgLm1kaS1maWxlLXRyZWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPkiI7CiAgICB9CgogICAgLm1kaS1maWxlLXVuZG86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo5wiOwogICAgfQoKICAgIC5tZGktZmlsZS11bmRvLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgLwiOwogICAgfQoKICAgIC5tZGktZmlsZS11cGxvYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqY0iOwogICAgfQoKICAgIC5tZGktZmlsZS11cGxvYWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpjiI7CiAgICB9CgogICAgLm1kaS1maWxlLXZpZGVvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIirIjsKICAgIH0KCiAgICAubWRpLWZpbGUtdmlkZW8tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4rCI7CiAgICB9CgogICAgLm1kaS1maWxlLXdvcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiKwiOwogICAgfQoKICAgIC5tZGktZmlsZS13b3JkLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIrSI7CiAgICB9CgogICAgLm1kaS1maWxlLXdvcmQtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgL0iOwogICAgfQoKICAgIC5tZGktZmlsZS13b3JkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgL4iOwogICAgfQoKICAgIC5tZGktZmlsZS14bWwtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2LIjsKICAgIH0KCiAgICAubWRpLWZpbG06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiK8iOwogICAgfQoKICAgIC5tZGktZmlsbXN0cmlwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiwIjsKICAgIH0KCiAgICAubWRpLWZpbG1zdHJpcC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjLIiOwogICAgfQoKICAgIC5tZGktZmlsbXN0cmlwLWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0mCI7CiAgICB9CgogICAgLm1kaS1maWxtc3RyaXAtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIixIjsKICAgIH0KCiAgICAubWRpLWZpbHRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIsiI7CiAgICB9CgogICAgLm1kaS1maWx0ZXItY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo6wiOwogICAgfQoKICAgIC5tZGktZmlsdGVyLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo60iOwogICAgfQoKICAgIC5tZGktZmlsdGVyLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqoyI7CiAgICB9CgogICAgLm1kaS1maWx0ZXItY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqqQiOwogICAgfQoKICAgIC5tZGktZmlsdGVyLW1lbnU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg6UiOwogICAgfQoKICAgIC5tZGktZmlsdGVyLW1lbnUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDpiI7CiAgICB9CgogICAgLm1kaS1maWx0ZXItbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu64iOwogICAgfQoKICAgIC5tZGktZmlsdGVyLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu68iOwogICAgfQoKICAgIC5tZGktZmlsdGVyLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsai/IjsKICAgIH0KCiAgICAubWRpLWZpbHRlci1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamAIjsKICAgIH0KCiAgICAubWRpLWZpbHRlci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk68iOwogICAgfQoKICAgIC5tZGktZmlsdGVyLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOwIjsKICAgIH0KCiAgICAubWRpLWZpbHRlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIizIjsKICAgIH0KCiAgICAubWRpLWZpbHRlci1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuwIjsKICAgIH0KCiAgICAubWRpLWZpbHRlci1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu7EiOwogICAgfQoKICAgIC5tZGktZmlsdGVyLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CItCI7CiAgICB9CgogICAgLm1kaS1maWx0ZXItcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiLUiOwogICAgfQoKICAgIC5tZGktZmlsdGVyLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqlIjsKICAgIH0KCiAgICAubWRpLWZpbHRlci1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqmIjsKICAgIH0KCiAgICAubWRpLWZpbHRlci12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIi2IjsKICAgIH0KCiAgICAubWRpLWZpbHRlci12YXJpYW50LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSSIjsKICAgIH0KCiAgICAubWRpLWZpbHRlci12YXJpYW50LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhJMiOwogICAgfQoKICAgIC5tZGktZmlsdGVyLXZhcmlhbnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYC/IjsKICAgIH0KCiAgICAubWRpLWZpbmFuY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoJ8iOwogICAgfQoKICAgIC5tZGktZmluZC1yZXBsYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuUIjsKICAgIH0KCiAgICAubWRpLWZpbmdlcnByaW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIi3IjsKICAgIH0KCiAgICAubWRpLWZpbmdlcnByaW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6sSI7CiAgICB9CgogICAgLm1kaS1maXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIi4IjsKICAgIH0KCiAgICAubWRpLWZpcmUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl5ciOwogICAgfQoKICAgIC5tZGktZmlyZS1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoIciOwogICAgfQoKICAgIC5tZGktZmlyZS1leHRpbmd1aXNoZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu7IiOwogICAgfQoKICAgIC5tZGktZmlyZS1oeWRyYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYS3IjsKICAgIH0KCiAgICAubWRpLWZpcmUtaHlkcmFudC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEuCI7CiAgICB9CgogICAgLm1kaS1maXJlLWh5ZHJhbnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYS5IjsKICAgIH0KCiAgICAubWRpLWZpcmUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyiIjsKICAgIH0KCiAgICAubWRpLWZpcmUtc3RhdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzgyI7CiAgICB9CgogICAgLm1kaS1maXJlLXRydWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKrIjsKICAgIH0KCiAgICAubWRpLWZpcmViYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWnIjsKICAgIH0KCiAgICAubWRpLWZpcmVmb3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiLkiOwogICAgfQoKICAgIC5tZGktZmlyZXBsYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLiuIjsKICAgIH0KCiAgICAubWRpLWZpcmVwbGFjZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuK8iOwogICAgfQoKICAgIC5tZGktZmlyZXdpcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlr4iOwogICAgfQoKICAgIC5tZGktZmlyZXdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuLAiOwogICAgfQoKICAgIC5tZGktZmlyZXdvcmstb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyjIjsKICAgIH0KCiAgICAubWRpLWZpc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiLoiOwogICAgfQoKICAgIC5tZGktZmlzaC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj7MiOwogICAgfQoKICAgIC5tZGktZmlzaGJvd2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu7MiOwogICAgfQoKICAgIC5tZGktZmlzaGJvd2wtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7tCI7CiAgICB9CgogICAgLm1kaS1maXQtdG8tcGFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7tSI7CiAgICB9CgogICAgLm1kaS1maXQtdG8tcGFnZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLu2IjsKICAgIH0KCiAgICAubWRpLWZpdC10by1zY3JlZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo7QiOwogICAgfQoKICAgIC5tZGktZml0LXRvLXNjcmVlbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaO1IjsKICAgIH0KCiAgICAubWRpLWZsYWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiLsiOwogICAgfQoKICAgIC5tZGktZmxhZy1jaGVja2VyZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiLwiOwogICAgfQoKICAgIC5tZGktZmxhZy1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CumSI7CiAgICB9CgogICAgLm1kaS1mbGFnLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgrIiOwogICAgfQoKICAgIC5tZGktZmxhZy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo64iOwogICAgfQoKICAgIC5tZGktZmxhZy1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjryI7CiAgICB9CgogICAgLm1kaS1mbGFnLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiL0iOwogICAgfQoKICAgIC5tZGktZmxhZy1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6aIjsKICAgIH0KCiAgICAubWRpLWZsYWctcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKzIjsKICAgIH0KCiAgICAubWRpLWZsYWctcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6bIjsKICAgIH0KCiAgICAubWRpLWZsYWctcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgrQiOwogICAgfQoKICAgIC5tZGktZmxhZy10cmlhbmdsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CIvyI7CiAgICB9CgogICAgLm1kaS1mbGFnLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiYAiOwogICAgfQoKICAgIC5tZGktZmxhZy12YXJpYW50LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa60IjsKICAgIH0KCiAgICAubWRpLWZsYWctdmFyaWFudC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa61IjsKICAgIH0KCiAgICAubWRpLWZsYWctdmFyaWFudC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrrAiOwogICAgfQoKICAgIC5tZGktZmxhZy12YXJpYW50LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6xIjsKICAgIH0KCiAgICAubWRpLWZsYWctdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIi+IjsKICAgIH0KCiAgICAubWRpLWZsYWctdmFyaWFudC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6yIjsKICAgIH0KCiAgICAubWRpLWZsYWctdmFyaWFudC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrrMiOwogICAgfQoKICAgIC5tZGktZmxhZy12YXJpYW50LXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GutiI7CiAgICB9CgogICAgLm1kaS1mbGFnLXZhcmlhbnQtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrrciOwogICAgfQoKICAgIC5tZGktZmxhcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbIiOwogICAgfQoKICAgIC5tZGktZmxhc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiYEiOwogICAgfQoKICAgIC5tZGktZmxhc2gtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu7ciOwogICAgfQoKICAgIC5tZGktZmxhc2gtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7uCI7CiAgICB9CgogICAgLm1kaS1mbGFzaC1hdXRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImCIjsKICAgIH0KCiAgICAubWRpLWZsYXNoLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJgyI7CiAgICB9CgogICAgLm1kaS1mbGFzaC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GthSI7CiAgICB9CgogICAgLm1kaS1mbGFzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuVIjsKICAgIH0KCiAgICAubWRpLWZsYXNoLXJlZC1leWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmbsiOwogICAgfQoKICAgIC5tZGktZmxhc2gtdHJpYW5nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrJ0iOwogICAgfQoKICAgIC5tZGktZmxhc2gtdHJpYW5nbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsniI7CiAgICB9CgogICAgLm1kaS1mbGFzaGxpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImEIjsKICAgIH0KCiAgICAubWRpLWZsYXNobGlnaHQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImFIjsKICAgIH0KCiAgICAubWRpLWZsYXNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKTIjsKICAgIH0KCiAgICAubWRpLWZsYXNrLWVtcHR5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKUIjsKICAgIH0KCiAgICAubWRpLWZsYXNrLWVtcHR5LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYi6IjsKICAgIH0KCiAgICAubWRpLWZsYXNrLWVtcHR5LW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiLsiOwogICAgfQoKICAgIC5tZGktZmxhc2stZW1wdHktb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+0IjsKICAgIH0KCiAgICAubWRpLWZsYXNrLWVtcHR5LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+1IjsKICAgIH0KCiAgICAubWRpLWZsYXNrLWVtcHR5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgpUiOwogICAgfQoKICAgIC5tZGktZmxhc2stZW1wdHktcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIvCI7CiAgICB9CgogICAgLm1kaS1mbGFzay1lbXB0eS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiL0iOwogICAgfQoKICAgIC5tZGktZmxhc2stZW1wdHktcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYi+IjsKICAgIH0KCiAgICAubWRpLWZsYXNrLWVtcHR5LXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYi/IjsKICAgIH0KCiAgICAubWRpLWZsYXNrLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmAIjsKICAgIH0KCiAgICAubWRpLWZsYXNrLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiYEiOwogICAgfQoKICAgIC5tZGktZmxhc2stb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+2IjsKICAgIH0KCiAgICAubWRpLWZsYXNrLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+3IjsKICAgIH0KCiAgICAubWRpLWZsYXNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgpYiOwogICAgfQoKICAgIC5tZGktZmxhc2stcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJgiI7CiAgICB9CgogICAgLm1kaS1mbGFzay1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiYMiOwogICAgfQoKICAgIC5tZGktZmxhc2stcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmEIjsKICAgIH0KCiAgICAubWRpLWZsYXNrLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmFIjsKICAgIH0KCiAgICAubWRpLWZsYXNrLXJvdW5kLWJvdHRvbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJiyI7CiAgICB9CgogICAgLm1kaS1mbGFzay1yb3VuZC1ib3R0b20tZW1wdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiYwiOwogICAgfQoKICAgIC5tZGktZmxhc2stcm91bmQtYm90dG9tLWVtcHR5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiY0iOwogICAgfQoKICAgIC5tZGktZmxhc2stcm91bmQtYm90dG9tLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiY4iOwogICAgfQoKICAgIC5tZGktZmxldXItZGUtbGlzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyDIjsKICAgIH0KCiAgICAubWRpLWZsaXAtaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDpyI7CiAgICB9CgogICAgLm1kaS1mbGlwLXRvLWJhY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiYciOwogICAgfQoKICAgIC5tZGktZmxpcC10by1mcm9udDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJiCI7CiAgICB9CgogICAgLm1kaS1mbGlwLXZlcnRpY2FsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOoIjsKICAgIH0KCiAgICAubWRpLWZsb29yLWxhbXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo50iOwogICAgfQoKICAgIC5tZGktZmxvb3ItbGFtcC1kdWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGAIjsKICAgIH0KCiAgICAubWRpLWZsb29yLWxhbXAtZHVhbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+OIjsKICAgIH0KCiAgICAubWRpLWZsb29yLWxhbXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfiCI7CiAgICB9CgogICAgLm1kaS1mbG9vci1sYW1wLXRvcmNoaWVyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdhyI7CiAgICB9CgogICAgLm1kaS1mbG9vci1sYW1wLXRvcmNoaWVyZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+WIjsKICAgIH0KCiAgICAubWRpLWZsb29yLWxhbXAtdG9yY2hpZXJlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgYEiOwogICAgfQoKICAgIC5tZGktZmxvb3ItbGFtcC10b3JjaGllcmUtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+PIjsKICAgIH0KCiAgICAubWRpLWZsb29yLXBsYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoKEiOwogICAgfQoKICAgIC5tZGktZmxvcHB5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImJIjsKICAgIH0KCiAgICAubWRpLWZsb3BweS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKevIjsKICAgIH0KCiAgICAubWRpLWZsb3dlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJiiI7CiAgICB9CgogICAgLm1kaS1mbG93ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnsCI7CiAgICB9CgogICAgLm1kaS1mbG93ZXItcG9sbGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKFIjsKICAgIH0KCiAgICAubWRpLWZsb3dlci1wb2xsZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GihiI7CiAgICB9CgogICAgLm1kaS1mbG93ZXItcG9wcHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtIgiOwogICAgfQoKICAgIC5tZGktZmxvd2VyLXR1bGlwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKexIjsKICAgIH0KCiAgICAubWRpLWZsb3dlci10dWxpcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKeyIjsKICAgIH0KCiAgICAubWRpLWZvY3VzLWF1dG86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvY4iOwogICAgfQoKICAgIC5tZGktZm9jdXMtZmllbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvY8iOwogICAgfQoKICAgIC5tZGktZm9jdXMtZmllbGQtaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9kCI7CiAgICB9CgogICAgLm1kaS1mb2N1cy1maWVsZC12ZXJ0aWNhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9kSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiYsiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWFjY291bnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiYwiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWFjY291bnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CunCI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt4wiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt40iOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWFycm93LWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp6giOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWFycm93LWRvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnqSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnqiI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItYXJyb3ctbGVmdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaerIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1hcnJvdy1sZWZ0LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaesIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1hcnJvdy1sZWZ0LXJpZ2h0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp60iOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeuIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1hcnJvdy1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaevIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1hcnJvdy11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnsCI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItYXJyb3ctdXAtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnsSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItYXJyb3ctdXAtZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeyIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1hcnJvdy11cC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaezIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1jYW5jZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp7QiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWNhbmNlbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsae1IjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlviI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlvyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqroiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqrsiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBvyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgoAiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWRvd25sb2FkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImNIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1kb3dubG9hZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOpIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOeIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt44iOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GeiiI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItZXllLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnosiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWZpbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp7YiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWZpbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GntyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItZ29vZ2xlLWRyaXZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImOIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1oZWFydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDqiI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItaGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDqyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItaGlkZGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6eIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1ob21lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYK1IjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1ob21lLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgrYiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWltYWdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImPIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1pbmZvcm1hdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCtyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItaW5mb3JtYXRpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCuCI7CiAgICB9CgogICAgLm1kaS1mb2xkZXIta2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKsIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1rZXktbmV0d29yazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CirSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXIta2V5LW5ldHdvcmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CygCI7CiAgICB9CgogICAgLm1kaS1mb2xkZXIta2V5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg6wiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZAiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJkSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItbG9jay1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqqciOwogICAgfQoKICAgIC5tZGktZm9sZGVyLWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqqCI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmtIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1tYXJrZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJriI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrYkiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrYoiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZIiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJhiI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZMiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW11bHRpcGxlLWltYWdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImUIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImVIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1tdWx0aXBsZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZG+IjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1tdWx0aXBsZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkb8iOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW11c2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2ZIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1tdXNpYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2aIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1uZXR3b3JrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGwIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1uZXR3b3JrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsoEiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnuCI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp7kiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnbAiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3jyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJliI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnuiI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItcGxheS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsae7IjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImXIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrp0iOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXBvdW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSJIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1wb3VuZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSKIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GniiI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItcXVlc3Rpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GniyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdiSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItcmVmcmVzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJWCIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZgiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6eIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpagiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWpIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBvSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBviI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItc3RhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CanSI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItc3Rhci1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPkyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItc3Rhci1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+UIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci1zdGFyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrp8iOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXN3YXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvrYiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXN3YXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+tyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0iyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItc3luYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSMIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci10YWJsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLoyI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItdGFibGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLpCI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItdGV4dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CygiI7CiAgICB9CgogICAgLm1kaS1mb2xkZXItdGV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKDIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci11cGxvYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZkiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXVwbG9hZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOtIjsKICAgIH0KCiAgICAubWRpLWZvbGRlci13cmVuY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp7wiOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXdyZW5jaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsae9IjsKICAgIH0KCiAgICAubWRpLWZvbGRlci16aXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6siOwogICAgfQoKICAgIC5tZGktZm9sZGVyLXppcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ65IjsKICAgIH0KCiAgICAubWRpLWZvbnQtYXdlc29tZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAuiI7CiAgICB9CgogICAgLm1kaS1mb29kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImaIjsKICAgIH0KCiAgICAubWRpLWZvb2QtYXBwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZsiOwogICAgfQoKICAgIC5tZGktZm9vZC1hcHBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKEIjsKICAgIH0KCiAgICAubWRpLWZvb2QtY3JvaXNzYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+IIjsKICAgIH0KCiAgICAubWRpLWZvb2QtZHJ1bXN0aWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCfIjsKICAgIH0KCiAgICAubWRpLWZvb2QtZHJ1bXN0aWNrLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRqCI7CiAgICB9CgogICAgLm1kaS1mb29kLWRydW1zdGljay1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRqSI7CiAgICB9CgogICAgLm1kaS1mb29kLWRydW1zdGljay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCgIjsKICAgIH0KCiAgICAubWRpLWZvb2QtZm9yay1kcmluazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXsiI7CiAgICB9CgogICAgLm1kaS1mb29kLWhhbGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWyIjsKICAgIH0KCiAgICAubWRpLWZvb2QtaG90LWRvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhiyI7CiAgICB9CgogICAgLm1kaS1mb29kLWtvc2hlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVsyI7CiAgICB9CgogICAgLm1kaS1mb29kLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXsyI7CiAgICB9CgogICAgLm1kaS1mb29kLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSVIjsKICAgIH0KCiAgICAubWRpLWZvb2Qtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkliI7CiAgICB9CgogICAgLm1kaS1mb29kLXN0ZWFrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGqIjsKICAgIH0KCiAgICAubWRpLWZvb2Qtc3RlYWstb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGrIjsKICAgIH0KCiAgICAubWRpLWZvb2QtdGFrZW91dC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoLYiOwogICAgfQoKICAgIC5tZGktZm9vZC10YWtlb3V0LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaC3IjsKICAgIH0KCiAgICAubWRpLWZvb2QtdHVya2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZycIjsKICAgIH0KCiAgICAubWRpLWZvb2QtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJnCI7CiAgICB9CgogICAgLm1kaS1mb29kLXZhcmlhbnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+lIjsKICAgIH0KCiAgICAubWRpLWZvb3QtcHJpbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvZIiOwogICAgfQoKICAgIC5tZGktZm9vdGJhbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZ0iOwogICAgfQoKICAgIC5tZGktZm9vdGJhbGwtYXVzdHJhbGlhbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJniI7CiAgICB9CgogICAgLm1kaS1mb290YmFsbC1oZWxtZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiZ8iOwogICAgfQoKICAgIC5tZGktZm9yZXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKXIjsKICAgIH0KCiAgICAubWRpLWZvcmVzdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGjIjsKICAgIH0KCiAgICAubWRpLWZvcmtsaWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+JIjsKICAgIH0KCiAgICAubWRpLWZvcm0tZHJvcGRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkIAiOwogICAgfQoKICAgIC5tZGktZm9ybS1zZWxlY3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkIEiOwogICAgfQoKICAgIC5tZGktZm9ybS10ZXh0YXJlYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GClSI7CiAgICB9CgogICAgLm1kaS1mb3JtLXRleHRib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmI4iOwogICAgfQoKICAgIC5tZGktZm9ybS10ZXh0Ym94LWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjZ0iOwogICAgfQoKICAgIC5tZGktZm9ybS10ZXh0Ym94LXBhc3N3b3JkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+1IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1hbGlnbi1ib3R0b206YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnZMiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWFsaWduLWNlbnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJoCI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtYWxpZ24tanVzdGlmeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJoSI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtYWxpZ24tbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJoiI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtYWxpZ24tbWlkZGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2UIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1hbGlnbi1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJoyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtYWxpZ24tdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2VIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1hbm5vdGF0aW9uLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKq8IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1hbm5vdGF0aW9uLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmYYiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWJvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiaQiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWNsZWFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImlIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1jb2xvci1maWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImmIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1jb2xvci1oaWdobGlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuLEiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWNvbG9yLW1hcmtlci1jYW5jZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjJMiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWNvbG9yLXRleHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmp4iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWNvbHVtbnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo58iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWZsb2F0LWNlbnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJpyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtZmxvYXQtbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJqCI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtZmxvYXQtbm9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJqSI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtZmxvYXQtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiaoiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWZvbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm5YiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWZvbnQtc2l6ZS1kZWNyZWFzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnsyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtZm9udC1zaXplLWluY3JlYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKe0IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1oZWFkZXItMTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJqyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtaGVhZGVyLTI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiawiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWhlYWRlci0zOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImtIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1oZWFkZXItNDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJriI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtaGVhZGVyLTU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwia8iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWhlYWRlci02OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImwIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1oZWFkZXItZGVjcmVhc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwibEiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWhlYWRlci1lcXVhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJsiI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtaGVhZGVyLWluY3JlYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsImzIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1oZWFkZXItcG91bmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwibQiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWhvcml6b250YWwtYWxpZ24tY2VudGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJieIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1ob3Jpem9udGFsLWFsaWduLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJ8iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWhvcml6b250YWwtYWxpZ24tcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmKAiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWluZGVudC1kZWNyZWFzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJtSI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtaW5kZW50LWluY3JlYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIm2IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1pdGFsaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwibciOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxldHRlci1jYXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKy0IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1sZXR0ZXItY2FzZS1sb3dlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CstSI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGV0dGVyLWNhc2UtdXBwZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrLYiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxldHRlci1lbmRzLXdpdGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvrgiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxldHRlci1tYXRjaGVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL65IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1sZXR0ZXItc3BhY2luZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlliI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGV0dGVyLXNwYWNpbmctdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GruyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGV0dGVyLXN0YXJ0cy13aXRoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL66IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1saW5lLWhlaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrvCI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGluZS1zcGFjaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIm4IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1saW5lLXN0eWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeIIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1saW5lLXdlaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXiSI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGlzdC1idWxsZXRlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJuSI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGlzdC1idWxsZXRlZC1zcXVhcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt5AiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxpc3QtYnVsbGV0ZWQtdHJpYW5nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwurIiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxpc3QtYnVsbGV0ZWQtdHlwZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJuiI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGlzdC1jaGVja2JveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClqiI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGlzdC1jaGVja3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnZYiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxpc3QtZ3JvdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoaAiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxpc3QtZ3JvdXAtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtliI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGlzdC1udW1iZXJlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJuyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtbGlzdC1udW1iZXJlZC1ydGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtI0iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LWxpc3QtdGV4dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJryI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtb3ZlcmxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwurMiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXBhZ2UtYnJlYWs6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm5ciOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXBhZ2Utc3BsaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpJciOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXBhaW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIm8IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1wYXJhZ3JhcGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwib0iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXBhcmFncmFwaC1zcGFjaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsau9IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1waWxjcm93OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuYIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1waWxjcm93LWFycm93LWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwioYiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXBpbGNyb3ctYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwioUiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXF1b3RlLWNsb3NlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIm+IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1xdW90ZS1jbG9zZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaoIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1xdW90ZS1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2XIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1xdW90ZS1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhqciOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXJvdGF0ZS05MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CaqiI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtc2VjdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CanyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtc2l6ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJvyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtc3RyaWtldGhyb3VnaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKgCI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtc3RyaWtldGhyb3VnaC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqBIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC1zdWJzY3JpcHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwioIiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXN1cGVyc2NyaXB0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqDIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqEIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC10ZXh0LXJvdGF0aW9uLWFuZ2xlLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvrsiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXRleHQtcm90YXRpb24tYW5nbGUtdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvrwiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXRleHQtcm90YXRpb24tZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1syI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtdGV4dC1yb3RhdGlvbi1kb3duLXZlcnRpY2FsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL69IjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC10ZXh0LXJvdGF0aW9uLW5vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbQiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXRleHQtcm90YXRpb24tdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvr4iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXRleHQtcm90YXRpb24tdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvr8iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXRleHQtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4siI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtdGV4dC12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlI8iOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXRleHQtd3JhcHBpbmctY2xpcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0jiI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtdGV4dC13cmFwcGluZy1vdmVyZmxvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0jyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtdGV4dC13cmFwcGluZy13cmFwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSQIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC10ZXh0Ym94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSRIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC10aXRsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXtCI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtdW5kZXJsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqHIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC11bmRlcmxpbmUtd2F2eTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjqSI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtdmVydGljYWwtYWxpZ24tYm90dG9tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJihIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC12ZXJ0aWNhbC1hbGlnbi1jZW50ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmKIiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXZlcnRpY2FsLWFsaWduLXRvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYoyI7CiAgICB9CgogICAgLm1kaS1mb3JtYXQtd3JhcC1pbmxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiogiOwogICAgfQoKICAgIC5tZGktZm9ybWF0LXdyYXAtc3F1YXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqJIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC13cmFwLXRpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqKIjsKICAgIH0KCiAgICAubWRpLWZvcm1hdC13cmFwLXRvcC1ib3R0b206YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiosiOwogICAgfQoKICAgIC5tZGktZm9ydW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiowiOwogICAgfQoKICAgIC5tZGktZm9ydW0tbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqqkiOwogICAgfQoKICAgIC5tZGktZm9ydW0tbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqqiI7CiAgICB9CgogICAgLm1kaS1mb3J1bS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCiIjsKICAgIH0KCiAgICAubWRpLWZvcnVtLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqqsiOwogICAgfQoKICAgIC5tZGktZm9ydW0tcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqsIjsKICAgIH0KCiAgICAubWRpLWZvcnVtLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqrSI7CiAgICB9CgogICAgLm1kaS1mb3J1bS1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqriI7CiAgICB9CgogICAgLm1kaS1mb3J3YXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqNIjsKICAgIH0KCiAgICAubWRpLWZvcndhcmRidXJnZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbUiOwogICAgfQoKICAgIC5tZGktZm91bnRhaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpasiOwogICAgfQoKICAgIC5tZGktZm91bnRhaW4tcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSSIjsKICAgIH0KCiAgICAubWRpLWZvdW50YWluLXBlbi10aXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtJMiOwogICAgfQoKICAgIC5tZGktZnJhY3Rpb24tb25lLWhhbGY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxppIiOwogICAgfQoKICAgIC5tZGktZnJlZWJzZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjoCI7CiAgICB9CgogICAgLm1kaS1mcmVuY2gtZnJpZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZciOwogICAgfQoKICAgIC5tZGktZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwurQiOwogICAgfQoKICAgIC5tZGktZnJpZGdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqQIjsKICAgIH0KCiAgICAubWRpLWZyaWRnZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGsSI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2UtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGsiI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2UtYm90dG9tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqSIjsKICAgIH0KCiAgICAubWRpLWZyaWRnZS1pbmR1c3RyaWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeuIjsKICAgIH0KCiAgICAubWRpLWZyaWRnZS1pbmR1c3RyaWFsLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZevIjsKICAgIH0KCiAgICAubWRpLWZyaWRnZS1pbmR1c3RyaWFsLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl7AiOwogICAgfQoKICAgIC5tZGktZnJpZGdlLWluZHVzdHJpYWwtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZexIjsKICAgIH0KCiAgICAubWRpLWZyaWRnZS1pbmR1c3RyaWFsLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeyIjsKICAgIH0KCiAgICAubWRpLWZyaWRnZS1pbmR1c3RyaWFsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl7MiOwogICAgfQoKICAgIC5tZGktZnJpZGdlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGryI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2Utb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhrAiOwogICAgfQoKICAgIC5tZGktZnJpZGdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwio8iOwogICAgfQoKICAgIC5tZGktZnJpZGdlLXRvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKkSI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2UtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXtCI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2UtdmFyaWFudC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXtSI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2UtdmFyaWFudC1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZe2IjsKICAgIH0KCiAgICAubWRpLWZyaWRnZS12YXJpYW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXtyI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2UtdmFyaWFudC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXuCI7CiAgICB9CgogICAgLm1kaS1mcmlkZ2UtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZe5IjsKICAgIH0KCiAgICAubWRpLWZydWl0LWNoZXJyaWVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGCIjsKICAgIH0KCiAgICAubWRpLWZydWl0LWNoZXJyaWVzLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPuCI7CiAgICB9CgogICAgLm1kaS1mcnVpdC1jaXRydXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgYMiOwogICAgfQoKICAgIC5tZGktZnJ1aXQtY2l0cnVzLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPuSI7CiAgICB9CgogICAgLm1kaS1mcnVpdC1ncmFwZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgYQiOwogICAgfQoKICAgIC5tZGktZnJ1aXQtZ3JhcGVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgYUiOwogICAgfQoKICAgIC5tZGktZnJ1aXQtcGVhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GojiI7CiAgICB9CgogICAgLm1kaS1mcnVpdC1waW5lYXBwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgYYiOwogICAgfQoKICAgIC5tZGktZnJ1aXQtd2F0ZXJtZWxvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBhyI7CiAgICB9CgogICAgLm1kaS1mdWVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+KIjsKICAgIH0KCiAgICAubWRpLWZ1ZWwtY2VsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GitSI7CiAgICB9CgogICAgLm1kaS1mdWxsc2NyZWVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqTIjsKICAgIH0KCiAgICAubWRpLWZ1bGxzY3JlZW4tZXhpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKlCI7CiAgICB9CgogICAgLm1kaS1mdW5jdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKlSI7CiAgICB9CgogICAgLm1kaS1mdW5jdGlvbi12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKGxIjsKICAgIH0KCiAgICAubWRpLWZ1cmlnYW5hLWhvcml6b250YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgoEiOwogICAgfQoKICAgIC5tZGktZnVyaWdhbmEtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgoIiOwogICAgfQoKICAgIC5tZGktZnVzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyhSI7CiAgICB9CgogICAgLm1kaS1mdXNlLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCtIjsKICAgIH0KCiAgICAubWRpLWZ1c2UtYmxhZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsoYiOwogICAgfQoKICAgIC5tZGktZnVzZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkKwiOwogICAgfQoKICAgIC5tZGktZ2FtZXBhZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKliI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4syI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLWNpcmNsZS1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLi0IjsKICAgIH0KCiAgICAubWRpLWdhbWVwYWQtY2lyY2xlLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuLUiOwogICAgfQoKICAgIC5tZGktZ2FtZXBhZC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4tiI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLWNpcmNsZS1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4tyI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLWNpcmNsZS11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4uCI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuLkiOwogICAgfQoKICAgIC5tZGktZ2FtZXBhZC1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLi6IjsKICAgIH0KCiAgICAubWRpLWdhbWVwYWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkmSI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLi7IjsKICAgIH0KCiAgICAubWRpLWdhbWVwYWQtcm91bmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuLwiOwogICAgfQoKICAgIC5tZGktZ2FtZXBhZC1yb3VuZC1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLi9IjsKICAgIH0KCiAgICAubWRpLWdhbWVwYWQtcm91bmQtbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4viI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLXJvdW5kLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuL8iOwogICAgfQoKICAgIC5tZGktZ2FtZXBhZC1yb3VuZC1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5gCI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLXJvdW5kLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmBIjsKICAgIH0KCiAgICAubWRpLWdhbWVwYWQtc3F1YXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLq1IjsKICAgIH0KCiAgICAubWRpLWdhbWVwYWQtc3F1YXJlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwurYiOwogICAgfQoKICAgIC5tZGktZ2FtZXBhZC11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5giI7CiAgICB9CgogICAgLm1kaS1nYW1lcGFkLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwipciOwogICAgfQoKICAgIC5tZGktZ2FtZXBhZC12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwurciOwogICAgfQoKICAgIC5tZGktZ2FtbWE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg64iOwogICAgfQoKICAgIC5tZGktZ2FudHJ5LWNyYW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeRIjsKICAgIH0KCiAgICAubWRpLWdhcmFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbmSI7CiAgICB9CgogICAgLm1kaS1nYXJhZ2UtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwobIiOwogICAgfQoKICAgIC5tZGktZ2FyYWdlLWFsZXJ0LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi5UiOwogICAgfQoKICAgIC5tZGktZ2FyYWdlLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn7siOwogICAgfQoKICAgIC5tZGktZ2FyYWdlLW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm5oiOwogICAgfQoKICAgIC5tZGktZ2FyYWdlLW9wZW4tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLlCI7CiAgICB9CgogICAgLm1kaS1nYXJhZ2UtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLkyI7CiAgICB9CgogICAgLm1kaS1nYXJhZ2UtdmFyaWFudC1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+8IjsKICAgIH0KCiAgICAubWRpLWdhcy1idXJuZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqJsiOwogICAgfQoKICAgIC5tZGktZ2FzLWN5bGluZGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmHIjsKICAgIH0KCiAgICAubWRpLWdhcy1zdGF0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqYIjsKICAgIH0KCiAgICAubWRpLWdhcy1zdGF0aW9uLWluLXVzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzhCI7CiAgICB9CgogICAgLm1kaS1nYXMtc3RhdGlvbi1pbi11c2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzhSI7CiAgICB9CgogICAgLm1kaS1nYXMtc3RhdGlvbi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkIkiOwogICAgfQoKICAgIC5tZGktZ2FzLXN0YXRpb24tb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkIoiOwogICAgfQoKICAgIC5tZGktZ2FzLXN0YXRpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6uCI7CiAgICB9CgogICAgLm1kaS1nYXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqZIjsKICAgIH0KCiAgICAubWRpLWdhdGUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn7giOwogICAgfQoKICAgIC5tZGktZ2F0ZS1hbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo6EiOwogICAgfQoKICAgIC5tZGktZ2F0ZS1hcnJvdy1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+3IjsKICAgIH0KCiAgICAubWRpLWdhdGUtYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhakiOwogICAgfQoKICAgIC5tZGktZ2F0ZS1idWZmZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq74iOwogICAgfQoKICAgIC5tZGktZ2F0ZS1uYW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOiIjsKICAgIH0KCiAgICAubWRpLWdhdGUtbm9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOjIjsKICAgIH0KCiAgICAubWRpLWdhdGUtbm90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOkIjsKICAgIH0KCiAgICAubWRpLWdhdGUtb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFqiI7CiAgICB9CgogICAgLm1kaS1nYXRlLW9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOlIjsKICAgIH0KCiAgICAubWRpLWdhdGUteG5vcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjpiI7CiAgICB9CgogICAgLm1kaS1nYXRlLXhvcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjpyI7CiAgICB9CgogICAgLm1kaS1nYXRzYnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuYMiOwogICAgfQoKICAgIC5tZGktZ2F1Z2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwipoiOwogICAgfQoKICAgIC5tZGktZ2F1Z2UtZW1wdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwobMiOwogICAgfQoKICAgIC5tZGktZ2F1Z2UtZnVsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChtCI7CiAgICB9CgogICAgLm1kaS1nYXVnZS1sb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwobUiOwogICAgfQoKICAgIC5tZGktZ2F2ZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwipsiOwogICAgfQoKICAgIC5tZGktZ2VuZGVyLWZlbWFsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKnCI7CiAgICB9CgogICAgLm1kaS1nZW5kZXItbWFsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKnSI7CiAgICB9CgogICAgLm1kaS1nZW5kZXItbWFsZS1mZW1hbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwip4iOwogICAgfQoKICAgIC5tZGktZ2VuZGVyLW1hbGUtZmVtYWxlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhL8iOwogICAgfQoKICAgIC5tZGktZ2VuZGVyLW5vbi1iaW5hcnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhYAiOwogICAgfQoKICAgIC5tZGktZ2VuZGVyLXRyYW5zZ2VuZGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqfIjsKICAgIH0KCiAgICAubWRpLWdlbmVyYXRvci1tb2JpbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsooiOwogICAgfQoKICAgIC5tZGktZ2VuZXJhdG9yLXBvcnRhYmxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKLIjsKICAgIH0KCiAgICAubWRpLWdlbmVyYXRvci1zdGF0aW9uYXJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKMIjsKICAgIH0KCiAgICAubWRpLWdlbnRvbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjqCI7CiAgICB9CgogICAgLm1kaS1nZXN0dXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+LIjsKICAgIH0KCiAgICAubWRpLWdlc3R1cmUtZG91YmxlLXRhcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcvCI7CiAgICB9CgogICAgLm1kaS1nZXN0dXJlLXBpbmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKq9IjsKICAgIH0KCiAgICAubWRpLWdlc3R1cmUtc3ByZWFkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKq+IjsKICAgIH0KCiAgICAubWRpLWdlc3R1cmUtc3dpcGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbYiOwogICAgfQoKICAgIC5tZGktZ2VzdHVyZS1zd2lwZS1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJy9IjsKICAgIH0KCiAgICAubWRpLWdlc3R1cmUtc3dpcGUtaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CqvyI7CiAgICB9CgogICAgLm1kaS1nZXN0dXJlLXN3aXBlLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnL4iOwogICAgfQoKICAgIC5tZGktZ2VzdHVyZS1zd2lwZS1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcvyI7CiAgICB9CgogICAgLm1kaS1nZXN0dXJlLXN3aXBlLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2AIjsKICAgIH0KCiAgICAubWRpLWdlc3R1cmUtc3dpcGUtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq4AiOwogICAgfQoKICAgIC5tZGktZ2VzdHVyZS10YXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnYEiOwogICAgfQoKICAgIC5tZGktZ2VzdHVyZS10YXAtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqpIjsKICAgIH0KCiAgICAubWRpLWdlc3R1cmUtdGFwLWJ1dHRvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKqCI7CiAgICB9CgogICAgLm1kaS1nZXN0dXJlLXRhcC1ob2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLW3IjsKICAgIH0KCiAgICAubWRpLWdlc3R1cmUtdHdvLWRvdWJsZS10YXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnYIiOwogICAgfQoKICAgIC5tZGktZ2VzdHVyZS10d28tdGFwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2DIjsKICAgIH0KCiAgICAubWRpLWdob3N0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqgIjsKICAgIH0KCiAgICAubWRpLWdob3N0LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CntSI7CiAgICB9CgogICAgLm1kaS1naG9zdC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZnCI7CiAgICB9CgogICAgLm1kaS1naG9zdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmdIjsKICAgIH0KCiAgICAubWRpLWdpZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuYQiOwogICAgfQoKICAgIC5tZGktZ2lmdC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm68iOwogICAgfQoKICAgIC5tZGktZ2lmdC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbsCI7CiAgICB9CgogICAgLm1kaS1naWZ0LW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm7EiOwogICAgfQoKICAgIC5tZGktZ2lmdC1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm7IiOwogICAgfQoKICAgIC5tZGktZ2lmdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqhIjsKICAgIH0KCiAgICAubWRpLWdpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKoiI7CiAgICB9CgogICAgLm1kaS1naXRodWI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiqQiOwogICAgfQoKICAgIC5tZGktZ2l0bGFiOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6gIjsKICAgIH0KCiAgICAubWRpLWdsYXNzLWNvY2t0YWlsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2WIjsKICAgIH0KCiAgICAubWRpLWdsYXNzLWNvY2t0YWlsLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXpiI7CiAgICB9CgogICAgLm1kaS1nbGFzcy1mbHV0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKpSI7CiAgICB9CgogICAgLm1kaS1nbGFzcy1mcmFnaWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGzIjsKICAgIH0KCiAgICAubWRpLWdsYXNzLW11ZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKpiI7CiAgICB9CgogICAgLm1kaS1nbGFzcy1tdWctb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZenIjsKICAgIH0KCiAgICAubWRpLWdsYXNzLW11Zy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSWIjsKICAgIH0KCiAgICAubWRpLWdsYXNzLW11Zy12YXJpYW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXqCI7CiAgICB9CgogICAgLm1kaS1nbGFzcy1waW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjI0iOwogICAgfQoKICAgIC5tZGktZ2xhc3Mtc3RhbmdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqnIjsKICAgIH0KCiAgICAubWRpLWdsYXNzLXR1bGlwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqoIjsKICAgIH0KCiAgICAubWRpLWdsYXNzLXdpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwobYiOwogICAgfQoKICAgIC5tZGktZ2xhc3NlczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKqiI7CiAgICB9CgogICAgLm1kaS1nbG9iZS1saWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZryI7CiAgICB9CgogICAgLm1kaS1nbG9iZS1saWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuXIjsKICAgIH0KCiAgICAubWRpLWdsb2JlLW1vZGVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOpIjsKICAgIH0KCiAgICAubWRpLWdtYWlsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqrIjsKICAgIH0KCiAgICAubWRpLWdub21lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqsIjsKICAgIH0KCiAgICAubWRpLWdvLWthcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbkiOwogICAgfQoKICAgIC5tZGktZ28ta2FydC10cmFjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1uiI7CiAgICB9CgogICAgLm1kaS1nb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrqEiOwogICAgfQoKICAgIC5tZGktZ29sZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJjyI7CiAgICB9CgogICAgLm1kaS1nb2xmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCjIjsKICAgIH0KCiAgICAubWRpLWdvbGYtY2FydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGpCI7CiAgICB9CgogICAgLm1kaS1nb2xmLXRlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCgyI7CiAgICB9CgogICAgLm1kaS1nb25kb2xhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqGIjsKICAgIH0KCiAgICAubWRpLWdvb2RyZWFkczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1uyI7CiAgICB9CgogICAgLm1kaS1nb29nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiq0iOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLWFkczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyhyI7CiAgICB9CgogICAgLm1kaS1nb29nbGUtYW5hbHl0aWNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+MIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1hc3Npc3RhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn40iOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLWNhcmRib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKriI7CiAgICB9CgogICAgLm1kaS1nb29nbGUtY2hyb21lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqvIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1jaXJjbGVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqwIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1jaXJjbGVzLWNvbW11bml0aWVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqxIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1jaXJjbGVzLWV4dGVuZGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqyIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1jaXJjbGVzLWdyb3VwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIqzIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1jbGFzc3Jvb206YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi4AiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLWNsb3VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYe2IjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1kb3duYXNhdXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjaIiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLWRyaXZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIq2IjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1lYXJ0aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKtyI7CiAgICB9CgogICAgLm1kaS1nb29nbGUtZml0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWsIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1nbGFzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CKuCI7CiAgICB9CgogICAgLm1kaS1nb29nbGUtaGFuZ291dHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi4kiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLWtlZXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm5wiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLWxlbnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp7YiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLW1hcHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl7UiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLW15LWJ1c2luZXNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGIIjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1uZWFyYnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwirkiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLXBsYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwirwiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwir0iOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLXBvZGNhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwurkiOwogICAgfQoKICAgIC5tZGktZ29vZ2xlLXNwcmVhZHNoZWV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKe3IjsKICAgIH0KCiAgICAubWRpLWdvb2dsZS1zdHJlZXQtdmlldzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyiCI7CiAgICB9CgogICAgLm1kaS1nb29nbGUtdHJhbnNsYXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIq/IjsKICAgIH0KCiAgICAubWRpLWdyYWRpZW50LWhvcml6b250YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnYoiOwogICAgfQoKICAgIC5tZGktZ3JhZGllbnQtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmqAiOwogICAgfQoKICAgIC5tZGktZ3JhaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtbwiOwogICAgfQoKICAgIC5tZGktZ3JhcGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgYkiOwogICAgfQoKICAgIC5tZGktZ3JhcGgtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBiiI7CiAgICB9CgogICAgLm1kaS1ncmFwaHFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKG3IjsKICAgIH0KCiAgICAubWRpLWdyYXNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSQIjsKICAgIH0KCiAgICAubWRpLWdyYXZlLXN0b25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6iIjsKICAgIH0KCiAgICAubWRpLWdyZWFzZS1wZW5jaWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmYgiOwogICAgfQoKICAgIC5tZGktZ3JlYXRlci10aGFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWtIjsKICAgIH0KCiAgICAubWRpLWdyZWF0ZXItdGhhbi1vci1lcXVhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClriI7CiAgICB9CgogICAgLm1kaS1ncmVlbmhvdXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsICtIjsKICAgIH0KCiAgICAubWRpLWdyaWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi4EiOwogICAgfQoKICAgIC5tZGktZ3JpZC1sYXJnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdmCI7CiAgICB9CgogICAgLm1kaS1ncmlkLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLgiI7CiAgICB9CgogICAgLm1kaS1ncmlsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5hSI7CiAgICB9CgogICAgLm1kaS1ncmlsbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaKIjsKICAgIH0KCiAgICAubWRpLWdyb3VwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuDIjsKICAgIH0KCiAgICAubWRpLWd1aXRhci1hY291c3RpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdsSI7CiAgICB9CgogICAgLm1kaS1ndWl0YXItZWxlY3RyaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi4QiOwogICAgfQoKICAgIC5tZGktZ3VpdGFyLXBpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi4UiOwogICAgfQoKICAgIC5tZGktZ3VpdGFyLXBpY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLhiI7CiAgICB9CgogICAgLm1kaS1ndXktZmF3a2VzLW1hc2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoKUiOwogICAgfQoKICAgIC5tZGktZ3ltbmFzdGljczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpgSI7CiAgICB9CgogICAgLm1kaS1oYWlsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuBIjsKICAgIH0KCiAgICAubWRpLWhhaXItZHJ5ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg68iOwogICAgfQoKICAgIC5tZGktaGFpci1kcnllci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOwIjsKICAgIH0KCiAgICAubWRpLWhhbGxvd2VlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuoyI7CiAgICB9CgogICAgLm1kaS1oYW1idXJnZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmoUiOwogICAgfQoKICAgIC5tZGktaGFtYnVyZ2VyLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ22IjsKICAgIH0KCiAgICAubWRpLWhhbWJ1cmdlci1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdtyI7CiAgICB9CgogICAgLm1kaS1oYW1idXJnZXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ24IjsKICAgIH0KCiAgICAubWRpLWhhbWJ1cmdlci1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ25IjsKICAgIH0KCiAgICAubWRpLWhhbWJ1cmdlci1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnboiOwogICAgfQoKICAgIC5tZGktaGFtbWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOqIjsKICAgIH0KCiAgICAubWRpLWhhbW1lci1zY3Jld2RyaXZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMoiI7CiAgICB9CgogICAgLm1kaS1oYW1tZXItc2lja2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaKHIjsKICAgIH0KCiAgICAubWRpLWhhbW1lci13cmVuY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjKMiOwogICAgfQoKICAgIC5tZGktaGFuZC1iYWNrLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuYYiOwogICAgfQoKICAgIC5tZGktaGFuZC1iYWNrLWxlZnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCwIjsKICAgIH0KCiAgICAubWRpLWhhbmQtYmFjay1sZWZ0LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCyIjsKICAgIH0KCiAgICAubWRpLWhhbmQtYmFjay1sZWZ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoKwiOwogICAgfQoKICAgIC5tZGktaGFuZC1iYWNrLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmHIjsKICAgIH0KCiAgICAubWRpLWhhbmQtYmFjay1yaWdodC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoLEiOwogICAgfQoKICAgIC5tZGktaGFuZC1iYWNrLXJpZ2h0LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCzIjsKICAgIH0KCiAgICAubWRpLWhhbmQtYmFjay1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCtIjsKICAgIH0KCiAgICAubWRpLWhhbmQtY2xhcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GliyI7CiAgICB9CgogICAgLm1kaS1oYW5kLWNsYXAtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamCIjsKICAgIH0KCiAgICAubWRpLWhhbmQtY29pbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GijyI7CiAgICB9CgogICAgLm1kaS1oYW5kLWNvaW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GikCI7CiAgICB9CgogICAgLm1kaS1oYW5kLWN5Y2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6cIjsKICAgIH0KCiAgICAubWRpLWhhbmQtZXh0ZW5kZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxorYiOwogICAgfQoKICAgIC5tZGktaGFuZC1leHRlbmRlZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaK3IjsKICAgIH0KCiAgICAubWRpLWhhbmQtZnJvbnQtbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgqyI7CiAgICB9CgogICAgLm1kaS1oYW5kLWZyb250LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgriI7CiAgICB9CgogICAgLm1kaS1oYW5kLWZyb250LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmPIjsKICAgIH0KCiAgICAubWRpLWhhbmQtZnJvbnQtcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgryI7CiAgICB9CgogICAgLm1kaS1oYW5kLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOxIjsKICAgIH0KCiAgICAubWRpLWhhbmQtaGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVviI7CiAgICB9CgogICAgLm1kaS1oYW5kLW9rYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZAiOwogICAgfQoKICAgIC5tZGktaGFuZC1wZWFjZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpkSI7CiAgICB9CgogICAgLm1kaS1oYW5kLXBlYWNlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZIiOwogICAgfQoKICAgIC5tZGktaGFuZC1wb2ludGluZy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmTIjsKICAgIH0KCiAgICAubWRpLWhhbmQtcG9pbnRpbmctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CplCI7CiAgICB9CgogICAgLm1kaS1oYW5kLXBvaW50aW5nLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuHIjsKICAgIH0KCiAgICAubWRpLWhhbmQtcG9pbnRpbmctdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZUiOwogICAgfQoKICAgIC5tZGktaGFuZC1zYXc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuYgiOwogICAgfQoKICAgIC5tZGktaGFuZC13YXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZW/IjsKICAgIH0KCiAgICAubWRpLWhhbmQtd2FzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaAIjsKICAgIH0KCiAgICAubWRpLWhhbmQtd2F0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjp8iOwogICAgfQoKICAgIC5tZGktaGFuZC13YXZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaChIjsKICAgIH0KCiAgICAubWRpLWhhbmQtd2F2ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCiIjsKICAgIH0KCiAgICAubWRpLWhhbmRiYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2TIjsKICAgIH0KCiAgICAubWRpLWhhbmRjdWZmczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEviI7CiAgICB9CgogICAgLm1kaS1oYW5kcy1wcmF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJW5IjsKICAgIH0KCiAgICAubWRpLWhhbmRzaGFrZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GImCI7CiAgICB9CgogICAgLm1kaS1oYW5kc2hha2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWoSI7CiAgICB9CgogICAgLm1kaS1oYW5nZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi4giOwogICAgfQoKICAgIC5tZGktaGFyZC1oYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpa8iOwogICAgfQoKICAgIC5tZGktaGFyZGRpc2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi4oiOwogICAgfQoKICAgIC5tZGktaGFyZGRpc2stcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBiyI7CiAgICB9CgogICAgLm1kaS1oYXJkZGlzay1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgYwiOwogICAgfQoKICAgIC5tZGktaGF0LWZlZG9yYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CupCI7CiAgICB9CgogICAgLm1kaS1oYXphcmQtbGlnaHRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKJIjsKICAgIH0KCiAgICAubWRpLWhkbWktcG9ydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuuCI7CiAgICB9CgogICAgLm1kaS1oZHI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtb0iOwogICAgfQoKICAgIC5tZGktaGRyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C1viI7CiAgICB9CgogICAgLm1kaS1oZWFkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2eIjsKICAgIH0KCiAgICAubWRpLWhlYWQtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjLgiOwogICAgfQoKICAgIC5tZGktaGVhZC1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYy5IjsKICAgIH0KCiAgICAubWRpLWhlYWQtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjLoiOwogICAgfQoKICAgIC5tZGktaGVhZC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYy7IjsKICAgIH0KCiAgICAubWRpLWhlYWQtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYy8IjsKICAgIH0KCiAgICAubWRpLWhlYWQtY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjL0iOwogICAgfQoKICAgIC5tZGktaGVhZC1kb3RzLWhvcml6b250YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjL4iOwogICAgfQoKICAgIC5tZGktaGVhZC1kb3RzLWhvcml6b250YWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMvyI7CiAgICB9CgogICAgLm1kaS1oZWFkLWZsYXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2AIjsKICAgIH0KCiAgICAubWRpLWhlYWQtZmxhc2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNgSI7CiAgICB9CgogICAgLm1kaS1oZWFkLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2CIjsKICAgIH0KCiAgICAubWRpLWhlYWQtaGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNgyI7CiAgICB9CgogICAgLm1kaS1oZWFkLWxpZ2h0YnVsYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNhCI7CiAgICB9CgogICAgLm1kaS1oZWFkLWxpZ2h0YnVsYi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2FIjsKICAgIH0KCiAgICAubWRpLWhlYWQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjYYiOwogICAgfQoKICAgIC5tZGktaGVhZC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2HIjsKICAgIH0KCiAgICAubWRpLWhlYWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNnyI7CiAgICB9CgogICAgLm1kaS1oZWFkLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjYgiOwogICAgfQoKICAgIC5tZGktaGVhZC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjYkiOwogICAgfQoKICAgIC5tZGktaGVhZC1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNiiI7CiAgICB9CgogICAgLm1kaS1oZWFkLXF1ZXN0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjYsiOwogICAgfQoKICAgIC5tZGktaGVhZC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjYwiOwogICAgfQoKICAgIC5tZGktaGVhZC1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNjSI7CiAgICB9CgogICAgLm1kaS1oZWFkLXNub3dmbGFrZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNjiI7CiAgICB9CgogICAgLm1kaS1oZWFkLXNub3dmbGFrZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2PIjsKICAgIH0KCiAgICAubWRpLWhlYWQtc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNkCI7CiAgICB9CgogICAgLm1kaS1oZWFkLXN5bmMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNkSI7CiAgICB9CgogICAgLm1kaS1oZWFkcGhvbmVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuLIjsKICAgIH0KCiAgICAubWRpLWhlYWRwaG9uZXMtYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKWwIjsKICAgIH0KCiAgICAubWRpLWhlYWRwaG9uZXMtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuMIjsKICAgIH0KCiAgICAubWRpLWhlYWRwaG9uZXMtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+OIjsKICAgIH0KCiAgICAubWRpLWhlYWRwaG9uZXMtc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi40iOwogICAgfQoKICAgIC5tZGktaGVhZHNldDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLjiI7CiAgICB9CgogICAgLm1kaS1oZWFkc2V0LWRvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi48iOwogICAgfQoKICAgIC5tZGktaGVhZHNldC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi5AiOwogICAgfQoKICAgIC5tZGktaGVhcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi5EiOwogICAgfQoKICAgIC5tZGktaGVhcnQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuSIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuTIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LWJyb2tlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLlCI7CiAgICB9CgogICAgLm1kaS1oZWFydC1icm9rZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0lCI7CiAgICB9CgogICAgLm1kaS1oZWFydC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpbEiOwogICAgfQoKICAgIC5tZGktaGVhcnQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpbIiOwogICAgfQoKICAgIC5tZGktaGVhcnQtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmjIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmkIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LWZsYXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLu5IjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LWhhbGY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm58iOwogICAgfQoKICAgIC5tZGktaGVhcnQtaGFsZi1mdWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJueIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LWhhbGYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CboCI7CiAgICB9CgogICAgLm1kaS1oZWFydC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQryI7CiAgICB9CgogICAgLm1kaS1oZWFydC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCyIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmWIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZciOwogICAgfQoKICAgIC5tZGktaGVhcnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2ZIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZC0IjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi5UiOwogICAgfQoKICAgIC5tZGktaGVhcnQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQriI7CiAgICB9CgogICAgLm1kaS1oZWFydC1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkLEiOwogICAgfQoKICAgIC5tZGktaGVhcnQtcHVsc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl7YiOwogICAgfQoKICAgIC5tZGktaGVhcnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCwIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCzIjsKICAgIH0KCiAgICAubWRpLWhlYXJ0LXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyjSI7CiAgICB9CgogICAgLm1kaS1oZWFydC1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZpSI7CiAgICB9CgogICAgLm1kaS1oZWFydC1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmmIjsKICAgIH0KCiAgICAubWRpLWhlYXQtcHVtcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpgyI7CiAgICB9CgogICAgLm1kaS1oZWF0LXB1bXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GphCI7CiAgICB9CgogICAgLm1kaS1oZWF0LXdhdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqYUiOwogICAgfQoKICAgIC5tZGktaGVhdGluZy1jb2lsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqvIjsKICAgIH0KCiAgICAubWRpLWhlbGljb3B0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq4IiOwogICAgfQoKICAgIC5tZGktaGVscDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLliI7CiAgICB9CgogICAgLm1kaS1oZWxwLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CeiyI7CiAgICB9CgogICAgLm1kaS1oZWxwLWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwiiI7CiAgICB9CgogICAgLm1kaS1oZWxwLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCLIjsKICAgIH0KCiAgICAubWRpLWhlbHAtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsIwiOwogICAgfQoKICAgIC5tZGktaGVscC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi5ciOwogICAgfQoKICAgIC5tZGktaGVscC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYpSI7CiAgICB9CgogICAgLm1kaS1oZWxwLW5ldHdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm7UiOwogICAgfQoKICAgIC5tZGktaGVscC1uZXR3b3JrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsooiOwogICAgfQoKICAgIC5tZGktaGVscC1yaG9tYnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6lIjsKICAgIH0KCiAgICAubWRpLWhlbHAtcmhvbWJ1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6mIjsKICAgIH0KCiAgICAubWRpLWhleGFkZWNpbWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqnIjsKICAgIH0KCiAgICAubWRpLWhleGFnb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi5giOwogICAgfQoKICAgIC5tZGktaGV4YWdvbi1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CboSI7CiAgICB9CgogICAgLm1kaS1oZXhhZ29uLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg7IiOwogICAgfQoKICAgIC5tZGktaGV4YWdvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuZIjsKICAgIH0KCiAgICAubWRpLWhleGFnb24tc2xpY2UtMTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrgyI7CiAgICB9CgogICAgLm1kaS1oZXhhZ29uLXNsaWNlLTI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq4QiOwogICAgfQoKICAgIC5tZGktaGV4YWdvbi1zbGljZS0zOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuFIjsKICAgIH0KCiAgICAubWRpLWhleGFnb24tc2xpY2UtNDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrhiI7CiAgICB9CgogICAgLm1kaS1oZXhhZ29uLXNsaWNlLTU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq4ciOwogICAgfQoKICAgIC5tZGktaGV4YWdvbi1zbGljZS02OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuIIjsKICAgIH0KCiAgICAubWRpLWhleGFncmFtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuJIjsKICAgIH0KCiAgICAubWRpLWhleGFncmFtLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq4oiOwogICAgfQoKICAgIC5tZGktaGlnaC1kZWZpbml0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+PIjsKICAgIH0KCiAgICAubWRpLWhpZ2gtZGVmaW5pdGlvbi1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwobgiOwogICAgfQoKICAgIC5tZGktaGlnaHdheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXtyI7CiAgICB9CgogICAgLm1kaS1oaWtpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtb8iOwogICAgfQoKICAgIC5tZGktaGlzdG9yeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLmiI7CiAgICB9CgogICAgLm1kaS1ob2NrZXktcHVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ChuSI7CiAgICB9CgogICAgLm1kaS1ob2NrZXktc3RpY2tzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKG6IjsKICAgIH0KCiAgICAubWRpLWhvbG9sZW5zOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIubIjsKICAgIH0KCiAgICAubWRpLWhvbWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi5wiOwogICAgfQoKICAgIC5tZGktaG9tZS1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCmIjsKICAgIH0KCiAgICAubWRpLWhvbWUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwobsiOwogICAgfQoKICAgIC5tZGktaG9tZS1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeQIjsKICAgIH0KCiAgICAubWRpLWhvbWUtYW5hbHl0aWNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLq6IjsKICAgIH0KCiAgICAubWRpLWhvbWUtYXNzaXN0YW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+QIjsKICAgIH0KCiAgICAubWRpLWhvbWUtYXV0b21hdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfkSI7CiAgICB9CgogICAgLm1kaS1ob21lLWJhdHRlcnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpIEiOwogICAgfQoKICAgIC5tZGktaG9tZS1iYXR0ZXJ5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpIIiOwogICAgfQoKICAgIC5tZGktaG9tZS1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn5IiOwogICAgfQoKICAgIC5tZGktaG9tZS1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBjSI7CiAgICB9CgogICAgLm1kaS1ob21lLWNpdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtJUiOwogICAgfQoKICAgIC5tZGktaG9tZS1jaXR5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtJYiOwogICAgfQoKICAgIC5tZGktaG9tZS1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GokiI7CiAgICB9CgogICAgLm1kaS1ob21lLWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqJMiOwogICAgfQoKICAgIC5tZGktaG9tZS1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWZIjsKICAgIH0KCiAgICAubWRpLWhvbWUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWaIjsKICAgIH0KCiAgICAubWRpLWhvbWUtZXhwb3J0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvpsiOwogICAgfQoKICAgIC5tZGktaG9tZS1mbG9vZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7uiI7CiAgICB9CgogICAgLm1kaS1ob21lLWZsb29yLTA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt5IiOwogICAgfQoKICAgIC5tZGktaG9tZS1mbG9vci0xOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaAIjsKICAgIH0KCiAgICAubWRpLWhvbWUtZmxvb3ItMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2gSI7CiAgICB9CgogICAgLm1kaS1ob21lLWZsb29yLTM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtoIiOwogICAgfQoKICAgIC5tZGktaG9tZS1mbG9vci1hOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaDIjsKICAgIH0KCiAgICAubWRpLWhvbWUtZmxvb3ItYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2hCI7CiAgICB9CgogICAgLm1kaS1ob21lLWZsb29yLWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtoUiOwogICAgfQoKICAgIC5tZGktaG9tZS1mbG9vci1sOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaGIjsKICAgIH0KCiAgICAubWRpLWhvbWUtZmxvb3ItbmVnYXRpdmUtMTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3kyI7CiAgICB9CgogICAgLm1kaS1ob21lLWdyb3VwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeUIjsKICAgIH0KCiAgICAubWRpLWhvbWUtZ3JvdXAtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp4EiOwogICAgfQoKICAgIC5tZGktaG9tZS1ncm91cC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeAIjsKICAgIH0KCiAgICAubWRpLWhvbWUtZ3JvdXAtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeCIjsKICAgIH0KCiAgICAubWRpLWhvbWUtaGVhcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoKciOwogICAgfQoKICAgIC5tZGktaG9tZS1pbXBvcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+nCI7CiAgICB9CgogICAgLm1kaS1ob21lLWxpZ2h0YnVsYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJkSI7CiAgICB9CgogICAgLm1kaS1ob21lLWxpZ2h0YnVsYi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmSIjsKICAgIH0KCiAgICAubWRpLWhvbWUtbGlnaHRuaW5nLWJvbHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpIMiOwogICAgfQoKICAgIC5tZGktaG9tZS1saWdodG5pbmctYm9sdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSEIjsKICAgIH0KCiAgICAubWRpLWhvbWUtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjqyI7CiAgICB9CgogICAgLm1kaS1ob21lLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjrCI7CiAgICB9CgogICAgLm1kaS1ob21lLW1hcC1tYXJrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl7giOwogICAgfQoKICAgIC5tZGktaG9tZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CltCI7CiAgICB9CgogICAgLm1kaS1ob21lLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj5UiOwogICAgfQoKICAgIC5tZGktaG9tZS1tb2Rlcm46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi50iOwogICAgfQoKICAgIC5tZGktaG9tZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqYYiOwogICAgfQoKICAgIC5tZGktaG9tZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GphyI7CiAgICB9CgogICAgLm1kaS1ob21lLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmqEiOwogICAgfQoKICAgIC5tZGktaG9tZS1wZXJjZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbG8IjsKICAgIH0KCiAgICAubWRpLWhvbWUtcGVyY2VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbG9IjsKICAgIH0KCiAgICAubWRpLWhvbWUtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CltSI7CiAgICB9CgogICAgLm1kaS1ob21lLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPliI7CiAgICB9CgogICAgLm1kaS1ob21lLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJhyI7CiAgICB9CgogICAgLm1kaS1ob21lLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+XIjsKICAgIH0KCiAgICAubWRpLWhvbWUtcm9vZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEqyI7CiAgICB9CgogICAgLm1kaS1ob21lLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOsCI7CiAgICB9CgogICAgLm1kaS1ob21lLXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6xIjsKICAgIH0KCiAgICAubWRpLWhvbWUtc2lsbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuoCI7CiAgICB9CgogICAgLm1kaS1ob21lLXNpbG8tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuoSI7CiAgICB9CgogICAgLm1kaS1ob21lLXNvdW5kLWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCvIjsKICAgIH0KCiAgICAubWRpLWhvbWUtc291bmQtaW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwsCI7CiAgICB9CgogICAgLm1kaS1ob21lLXNvdW5kLW91dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwsSI7CiAgICB9CgogICAgLm1kaS1ob21lLXNvdW5kLW91dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCyIjsKICAgIH0KCiAgICAubWRpLWhvbWUtc3dpdGNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6UIjsKICAgIH0KCiAgICAubWRpLWhvbWUtc3dpdGNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnpUiOwogICAgfQoKICAgIC5tZGktaG9tZS10aGVybW9tZXRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9lCI7CiAgICB9CgogICAgLm1kaS1ob21lLXRoZXJtb21ldGVyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvZUiOwogICAgfQoKICAgIC5tZGktaG9tZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIueIjsKICAgIH0KCiAgICAubWRpLWhvbWUtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6nIjsKICAgIH0KCiAgICAubWRpLWhvb2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6IiOwogICAgfQoKICAgIC5tZGktaG9vay1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6MiOwogICAgfQoKICAgIC5tZGktaG9vcC1ob3VzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5liI7CiAgICB9CgogICAgLm1kaS1ob3BzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIufIjsKICAgIH0KCiAgICAubWRpLWhvcml6b250YWwtcm90YXRlLWNsb2Nrd2lzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDsyI7CiAgICB9CgogICAgLm1kaS1ob3Jpem9udGFsLXJvdGF0ZS1jb3VudGVyY2xvY2t3aXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYO0IjsKICAgIH0KCiAgICAubWRpLWhvcnNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZa/IjsKICAgIH0KCiAgICAubWRpLWhvcnNlLWh1bWFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeAIjsKICAgIH0KCiAgICAubWRpLWhvcnNlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl4EiOwogICAgfQoKICAgIC5tZGktaG9yc2UtdmFyaWFudC1mYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGuIjsKICAgIH0KCiAgICAubWRpLWhvcnNlc2hvZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpmCI7CiAgICB9CgogICAgLm1kaS1ob3NwaXRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/tiI7CiAgICB9CgogICAgLm1kaS1ob3NwaXRhbC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi6AiOwogICAgfQoKICAgIC5tZGktaG9zcGl0YWwtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv7ciOwogICAgfQoKICAgIC5tZGktaG9zcGl0YWwtYnVpbGRpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi6EiOwogICAgfQoKICAgIC5tZGktaG9zcGl0YWwtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuiIjsKICAgIH0KCiAgICAubWRpLWhvdC10dWI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoKgiOwogICAgfQoKICAgIC5tZGktaG91cnMtMTI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxspQiOwogICAgfQoKICAgIC5tZGktaG91cnMtMjQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkbgiOwogICAgfQoKICAgIC5tZGktaHViOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKVIjsKICAgIH0KCiAgICAubWRpLWh1Yi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKWIjsKICAgIH0KCiAgICAubWRpLWh1YnNwb3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtJciOwogICAgfQoKICAgIC5tZGktaHVsdTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgqSI7CiAgICB9CgogICAgLm1kaS1odW1hbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLpiI7CiAgICB9CgogICAgLm1kaS1odW1hbi1iYWJ5LWNoYW5naW5nLXRhYmxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6LIjsKICAgIH0KCiAgICAubWRpLWh1bWFuLWNhbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxloEiOwogICAgfQoKICAgIC5tZGktaHVtYW4tY2FwYWNpdHktZGVjcmVhc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlpsiOwogICAgfQoKICAgIC5tZGktaHVtYW4tY2FwYWNpdHktaW5jcmVhc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlpwiOwogICAgfQoKICAgIC5tZGktaHVtYW4tY2hpbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi6ciOwogICAgfQoKICAgIC5tZGktaHVtYW4tZG9sbHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpoAiOwogICAgfQoKICAgIC5tZGktaHVtYW4tZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTqCI7CiAgICB9CgogICAgLm1kaS1odW1hbi1mZW1hbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmYkiOwogICAgfQoKICAgIC5tZGktaHVtYW4tZmVtYWxlLWJveTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpmSI7CiAgICB9CgogICAgLm1kaS1odW1hbi1mZW1hbGUtZGFuY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl4kiOwogICAgfQoKICAgIC5tZGktaHVtYW4tZmVtYWxlLWZlbWFsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpmiI7CiAgICB9CgogICAgLm1kaS1odW1hbi1mZW1hbGUtZmVtYWxlLWNoaWxkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKOIjsKICAgIH0KCiAgICAubWRpLWh1bWFuLWZlbWFsZS1naXJsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmbIjsKICAgIH0KCiAgICAubWRpLWh1bWFuLWdyZWV0aW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+EIjsKICAgIH0KCiAgICAubWRpLWh1bWFuLWdyZWV0aW5nLXByb3hpbWl0eTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWnSI7CiAgICB9CgogICAgLm1kaS1odW1hbi1ncmVldGluZy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmKIjsKICAgIH0KCiAgICAubWRpLWh1bWFuLWhhbmRzZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZiyI7CiAgICB9CgogICAgLm1kaS1odW1hbi1oYW5kc3VwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmMIjsKICAgIH0KCiAgICAubWRpLWh1bWFuLW1hbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmY0iOwogICAgfQoKICAgIC5tZGktaHVtYW4tbWFsZS1ib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CikCI7CiAgICB9CgogICAgLm1kaS1odW1hbi1tYWxlLWJvYXJkLXBvbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoYYiOwogICAgfQoKICAgIC5tZGktaHVtYW4tbWFsZS1ib3k6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZwiOwogICAgfQoKICAgIC5tZGktaHVtYW4tbWFsZS1jaGlsZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOjCI7CiAgICB9CgogICAgLm1kaS1odW1hbi1tYWxlLWZlbWFsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLqCI7CiAgICB9CgogICAgLm1kaS1odW1hbi1tYWxlLWZlbWFsZS1jaGlsZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgoyI7CiAgICB9CgogICAgLm1kaS1odW1hbi1tYWxlLWdpcmw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZ0iOwogICAgfQoKICAgIC5tZGktaHVtYW4tbWFsZS1oZWlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu7siOwogICAgfQoKICAgIC5tZGktaHVtYW4tbWFsZS1oZWlnaHQtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7vCI7CiAgICB9CgogICAgLm1kaS1odW1hbi1tYWxlLW1hbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZ4iOwogICAgfQoKICAgIC5tZGktaHVtYW4tbWFsZS1tYWxlLWNoaWxkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKPIjsKICAgIH0KCiAgICAubWRpLWh1bWFuLW5vbi1iaW5hcnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoYgiOwogICAgfQoKICAgIC5tZGktaHVtYW4tcHJlZ25hbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl48iOwogICAgfQoKICAgIC5tZGktaHVtYW4tcXVldWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlbEiOwogICAgfQoKICAgIC5tZGktaHVtYW4tc2Nvb3RlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHqSI7CiAgICB9CgogICAgLm1kaS1odW1hbi13YWxrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrbEiOwogICAgfQoKICAgIC5tZGktaHVtYW4td2hlZWxjaGFpcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOjSI7CiAgICB9CgogICAgLm1kaS1odW1hbi13aGl0ZS1jYW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaaBIjsKICAgIH0KCiAgICAubWRpLWh1bWJsZS1idW5kbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnYQiOwogICAgfQoKICAgIC5tZGktaHZhYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNkiI7CiAgICB9CgogICAgLm1kaS1odmFjLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWniI7CiAgICB9CgogICAgLm1kaS1oeWRyYXVsaWMtb2lsLWxldmVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYykIjsKICAgIH0KCiAgICAubWRpLWh5ZHJhdWxpYy1vaWwtdGVtcGVyYXR1cmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjKUiOwogICAgfQoKICAgIC5tZGktaHlkcm8tcG93ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi6UiOwogICAgfQoKICAgIC5tZGktaHlkcm9nZW4tc3RhdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GilCI7CiAgICB9CgogICAgLm1kaS1pY2UtY3JlYW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoKoiOwogICAgfQoKICAgIC5tZGktaWNlLWNyZWFtLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5kiI7CiAgICB9CgogICAgLm1kaS1pY2UtcG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLu9IjsKICAgIH0KCiAgICAubWRpLWlkLWNhcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv4AiOwogICAgfQoKICAgIC5tZGktaWRlbnRpZmllcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7viI7CiAgICB9CgogICAgLm1kaS1pZGVvZ3JhbS1jams6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjLEiOwogICAgfQoKICAgIC5tZGktaWRlb2dyYW0tY2prLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjLIiOwogICAgfQoKICAgIC5tZGktaW1hZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi6kiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtYWxidW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi6oiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtYXJlYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLqyI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1hcmVhLWNsb3NlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIusIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWF1dG8tYWRqdXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+BIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWJyb2tlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLrSI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1icm9rZW4tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLriI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GspSI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaymIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh6MiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYekIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci1ibGFjay13aGl0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLsCI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1maWx0ZXItY2VudGVyLWZvY3VzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuxIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci1jZW50ZXItZm9jdXMtc3Ryb25nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLu/IjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci1jZW50ZXItZm9jdXMtc3Ryb25nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvIAiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtZmlsdGVyLWNlbnRlci1mb2N1cy13ZWFrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIuyIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci1kcmFtYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLsyI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1maWx0ZXItZHJhbWEtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvvyI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1maWx0ZXItZnJhbWVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu0IjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci1oZHI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi7UiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtZmlsdGVyLWhkci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGkIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci1ub25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu2IjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci10aWx0LXNoaWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu3IjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZpbHRlci12aW50YWdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu4IjsKICAgIH0KCiAgICAubWRpLWltYWdlLWZyYW1lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmJIjsKICAgIH0KCiAgICAubWRpLWltYWdlLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqrAiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqxIjsKICAgIH0KCiAgICAubWRpLWltYWdlLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GduyI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1tYXJrZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdvCI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQmSI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2HIjsKICAgIH0KCiAgICAubWRpLWltYWdlLW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp7giOwogICAgfQoKICAgIC5tZGktaW1hZ2UtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi7kiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLryI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoKsiOwogICAgfQoKICAgIC5tZGktaW1hZ2Utb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh5EiOwogICAgfQoKICAgIC5tZGktaW1hZ2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CltiI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKG8IjsKICAgIH0KCiAgICAubWRpLWltYWdlLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GthiI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1yZWZyZXNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsae+IjsKICAgIH0KCiAgICAubWRpLWltYWdlLXJlZnJlc2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnvyI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkJgiOwogICAgfQoKICAgIC5tZGktaW1hZ2UtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrYgiOwogICAgfQoKICAgIC5tZGktaW1hZ2Utc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKW3IjsKICAgIH0KCiAgICAubWRpLWltYWdlLXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKW4IjsKICAgIH0KCiAgICAubWRpLWltYWdlLXNpemUtc2VsZWN0LWFjdHVhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyjSI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1zaXplLXNlbGVjdC1sYXJnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyjiI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1zaXplLXNlbGVjdC1zbWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyjyI7CiAgICB9CgogICAgLm1kaS1pbWFnZS1zeW5jOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaiAIjsKICAgIH0KCiAgICAubWRpLWltYWdlLXN5bmMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GogSI7CiAgICB9CgogICAgLm1kaS1pbWFnZS10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiNIjsKICAgIH0KCiAgICAubWRpLWltcG9ydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CLuiI7CiAgICB9CgogICAgLm1kaS1pbmJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CahyI7CiAgICB9CgogICAgLm1kaS1pbmJveC1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu7IjsKICAgIH0KCiAgICAubWRpLWluYm94LWFycm93LWRvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJsCI7CiAgICB9CgogICAgLm1kaS1pbmJveC1hcnJvdy11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPkSI7CiAgICB9CgogICAgLm1kaS1pbmJveC1hcnJvdy11cC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmxIjsKICAgIH0KCiAgICAubWRpLWluYm94LWZ1bGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxibIiOwogICAgfQoKICAgIC5tZGktaW5ib3gtZnVsbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmzIjsKICAgIH0KCiAgICAubWRpLWluYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKwIjsKICAgIH0KCiAgICAubWRpLWluYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrqgiOwogICAgfQoKICAgIC5tZGktaW5ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJtCI7CiAgICB9CgogICAgLm1kaS1pbmJveC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlp8iOwogICAgfQoKICAgIC5tZGktaW5ib3gtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlqAiOwogICAgfQoKICAgIC5tZGktaW5jb2duaXRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJe5IjsKICAgIH0KCiAgICAubWRpLWluY29nbml0by1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkKEiOwogICAgfQoKICAgIC5tZGktaW5jb2duaXRvLWNpcmNsZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkKIiOwogICAgfQoKICAgIC5tZGktaW5jb2duaXRvLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CBtSI7CiAgICB9CgogICAgLm1kaS1pbmR1Y3Rpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoYwiOwogICAgfQoKICAgIC5tZGktaW5maW5pdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6QiOwogICAgfQoKICAgIC5tZGktaW5mb3JtYXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwi7wiOwogICAgfQoKICAgIC5tZGktaW5mb3JtYXRpb24tYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGlIjsKICAgIH0KCiAgICAubWRpLWluZm9ybWF0aW9uLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGmIjsKICAgIH0KCiAgICAubWRpLWluZm9ybWF0aW9uLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GejCI7CiAgICB9CgogICAgLm1kaS1pbmZvcm1hdGlvbi1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GejSI7CiAgICB9CgogICAgLm1kaS1pbmZvcm1hdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu9IjsKICAgIH0KCiAgICAubWRpLWluZm9ybWF0aW9uLXNsYWItYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGnIjsKICAgIH0KCiAgICAubWRpLWluZm9ybWF0aW9uLXNsYWItYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsagiOwogICAgfQoKICAgIC5tZGktaW5mb3JtYXRpb24tc2xhYi1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsakiOwogICAgfQoKICAgIC5tZGktaW5mb3JtYXRpb24tc2xhYi1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxqiI7CiAgICB9CgogICAgLm1kaS1pbmZvcm1hdGlvbi1zbGFiLXN5bWJvbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxqyI7CiAgICB9CgogICAgLm1kaS1pbmZvcm1hdGlvbi1zeW1ib2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsawiOwogICAgfQoKICAgIC5tZGktaW5mb3JtYXRpb24tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZjiI7CiAgICB9CgogICAgLm1kaS1pbmZvcm1hdGlvbi12YXJpYW50LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxrSI7CiAgICB9CgogICAgLm1kaS1pbmZvcm1hdGlvbi12YXJpYW50LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGuIjsKICAgIH0KCiAgICAubWRpLWluZm9ybWF0aW9uLXZhcmlhbnQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGvIjsKICAgIH0KCiAgICAubWRpLWluZm9ybWF0aW9uLXZhcmlhbnQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsbAiOwogICAgfQoKICAgIC5tZGktaW5zdGFncmFtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu+IjsKICAgIH0KCiAgICAubWRpLWluc3RydW1lbnQtdHJpYW5nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgY4iOwogICAgfQoKICAgIC5tZGktaW50ZWdyYXRlZC1jaXJjdWl0LWNoaXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpJMiOwogICAgfQoKICAgIC5tZGktaW52ZXJ0LWNvbG9yczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMgSI7CiAgICB9CgogICAgLm1kaS1pbnZlcnQtY29sb3JzLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5iiI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOSIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtYXJyb3ctbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzkyI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLWFycm93LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzlCI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOVIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtYXJyb3ctcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzliI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOXIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzmCI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOZIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtY2xvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzmiI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs5siOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs5wiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1leHBvcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GznSI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLWZhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs54iOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1mYXN0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs58iOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1pbXBvcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs6AiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1pbXBvcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzoSI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLWxpc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs6IiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1saXN0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs6MiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzpCI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs6UiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzpiI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs6ciOwogICAgfQoKICAgIC5tZGktaW52b2ljZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOoIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzqSI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzqiI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzqyI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOsIjsKICAgIH0KCiAgICAubWRpLWludm9pY2Utc2VuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzrSI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXNlbmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzriI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs68iOwogICAgfQoKICAgIC5tZGktaW52b2ljZS10ZXh0LWFycm93LWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs7AiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS10ZXh0LWFycm93LWxlZnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzsSI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs7IiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS10ZXh0LWFycm93LXJpZ2h0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs7MiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS10ZXh0LWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbO0IjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbO1IjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GztiI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtY2xvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GztyI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzuCI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbO5IjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1mYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbO6IjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1mYXN0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxs7siOwogICAgfQoKICAgIC5tZGktaW52b2ljZS10ZXh0LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbO8IjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbO9IjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzviI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzvyI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87G0gCI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87G0gSI7CiAgICB9CgogICAgLm1kaS1pbnZvaWNlLXRleHQtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbSCIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxtIMiOwogICAgfQoKICAgIC5tZGktaW52b2ljZS10ZXh0LXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbSEIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1zZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbSFIjsKICAgIH0KCiAgICAubWRpLWludm9pY2UtdGV4dC1zZW5kLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxtIYiOwogICAgfQoKICAgIC5tZGktaW9icm9rZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi6giOwogICAgfQoKICAgIC5tZGktaXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqZ8iOwogICAgfQoKICAgIC5tZGktaXAtbmV0d29yazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpoCI7CiAgICB9CgogICAgLm1kaS1pcC1uZXR3b3JrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwspAiOwogICAgfQoKICAgIC5tZGktaXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmgiI7CiAgICB9CgogICAgLm1kaS1pcG9kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKRIjsKICAgIH0KCiAgICAubWRpLWlyb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoKQiOwogICAgfQoKICAgIC5tZGktaXJvbi1ib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GguCI7CiAgICB9CgogICAgLm1kaS1pcm9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoKUiOwogICAgfQoKICAgIC5tZGktaXNsYW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGPIjsKICAgIH0KCiAgICAubWRpLWlzbGFuZC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbOGIjsKICAgIH0KCiAgICAubWRpLWl2LWJhZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCuSI7CiAgICB9CgogICAgLm1kaS1qYWJiZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt5UiOwogICAgfQoKICAgIC5tZGktamVlcG5leTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMgiI7CiAgICB9CgogICAgLm1kaS1qZWxseWZpc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvIEiOwogICAgfQoKICAgIC5tZGktamVsbHlmaXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvIIiOwogICAgfQoKICAgIC5tZGktamlyYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMgyI7CiAgICB9CgogICAgLm1kaS1qcXVlcnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwob0iOwogICAgfQoKICAgIC5tZGktanNmaWRkbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjIQiOwogICAgfQoKICAgIC5tZGktanVtcC1yb3BlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYu/IjsKICAgIH0KCiAgICAubWRpLWthYmFkZGk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtociOwogICAgfQoKICAgIC5tZGkta2FuZ2Fyb286YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlZgiOwogICAgfQoKICAgIC5tZGkta2FyYXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCsIjsKICAgIH0KCiAgICAubWRpLWtheWFraW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKvIjsKICAgIH0KCiAgICAubWRpLWtlZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMhSI7CiAgICB9CgogICAgLm1kaS1rZXR0bGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl7oiOwogICAgfQoKICAgIC5tZGkta2V0dGxlLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyXIjsKICAgIH0KCiAgICAubWRpLWtldHRsZS1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyYIjsKICAgIH0KCiAgICAubWRpLWtldHRsZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjJsiOwogICAgfQoKICAgIC5tZGkta2V0dGxlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYycIjsKICAgIH0KCiAgICAubWRpLWtldHRsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2WIjsKICAgIH0KCiAgICAubWRpLWtldHRsZS1wb3VyLW92ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnLwiOwogICAgfQoKICAgIC5tZGkta2V0dGxlLXN0ZWFtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyZIjsKICAgIH0KCiAgICAubWRpLWtldHRsZS1zdGVhbS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyaIjsKICAgIH0KCiAgICAubWRpLWtldHRsZWJlbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjIAiOwogICAgfQoKICAgIC5tZGkta2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyGIjsKICAgIH0KCiAgICAubWRpLWtleS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmgyI7CiAgICB9CgogICAgLm1kaS1rZXktYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmhCI7CiAgICB9CgogICAgLm1kaS1rZXktYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjJIiOwogICAgfQoKICAgIC5tZGkta2V5LWNoYWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZW0IjsKICAgIH0KCiAgICAubWRpLWtleS1jaGFpbi12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZW1IjsKICAgIH0KCiAgICAubWRpLWtleS1jaGFuZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjIciOwogICAgfQoKICAgIC5tZGkta2V5LWxpbms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhp8iOwogICAgfQoKICAgIC5tZGkta2V5LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyIIjsKICAgIH0KCiAgICAubWRpLWtleS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeWIjsKICAgIH0KCiAgICAubWRpLWtleS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyJIjsKICAgIH0KCiAgICAubWRpLWtleS1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjIoiOwogICAgfQoKICAgIC5tZGkta2V5LXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhp4iOwogICAgfQoKICAgIC5tZGkta2V5LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjIsiOwogICAgfQoKICAgIC5tZGkta2V5LXdpcmVsZXNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+CIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyMIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWJhY2tzcGFjZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMjSI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC1jYXBzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyOIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWNsb3NlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyPIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWNsb3NlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsIAiOwogICAgfQoKICAgIC5tZGkta2V5Ym9hcmQtZXNjOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYq3IjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWYxOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqrIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWYxMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKtCI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC1mMTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxirUiOwogICAgfQoKICAgIC5tZGkta2V5Ym9hcmQtZjEyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYq2IjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWYyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqsIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWYzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqtIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWY0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYquIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWY1OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqvIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWY2OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqwIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWY3OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqxIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWY4OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqyIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLWY5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqzIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMkCI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5iyI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKW7IjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLXJldHVybjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMkSI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnuSI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKe6IjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLXNwYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGQIjsKICAgIH0KCiAgICAubWRpLWtleWJvYXJkLXRhYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMkiI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC10YWItcmV2ZXJzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMpSI7CiAgICB9CgogICAgLm1kaS1rZXlib2FyZC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyTIjsKICAgIH0KCiAgICAubWRpLWtoYW5kYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDvSI7CiAgICB9CgogICAgLm1kaS1raWNrc3RhcnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdhSI7CiAgICB9CgogICAgLm1kaS1raXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaaFIjsKICAgIH0KCiAgICAubWRpLWtpdGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmhiI7CiAgICB9CgogICAgLm1kaS1raXRlc3VyZmluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdhCI7CiAgICB9CgogICAgLm1kaS1rbGluZ29uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2bIjsKICAgIH0KCiAgICAubWRpLWtuaWZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKe7IjsKICAgIH0KCiAgICAubWRpLWtuaWZlLW1pbGl0YXJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKe8IjsKICAgIH0KCiAgICAubWRpLWtub2I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrpYiOwogICAgfQoKICAgIC5tZGkta29hbGE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnL8iOwogICAgfQoKICAgIC5tZGkta29kaTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMlCI7CiAgICB9CgogICAgLm1kaS1rdWJlcm5ldGVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYO+IjsKICAgIH0KCiAgICAubWRpLWxhYmVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyVIjsKICAgIH0KCiAgICAubWRpLWxhYmVsLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY21IjsKICAgIH0KCiAgICAubWRpLWxhYmVsLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjbYiOwogICAgfQoKICAgIC5tZGktbGFiZWwtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuLIjsKICAgIH0KCiAgICAubWRpLWxhYmVsLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuMIjsKICAgIH0KCiAgICAubWRpLWxhYmVsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjJYiOwogICAgfQoKICAgIC5tZGktbGFiZWwtcGVyY2VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLqiI7CiAgICB9CgogICAgLm1kaS1sYWJlbC1wZXJjZW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi6siOwogICAgfQoKICAgIC5tZGktbGFiZWwtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrjSI7CiAgICB9CgogICAgLm1kaS1sYWJlbC12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq44iOwogICAgfQoKICAgIC5tZGktbGFkZGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaiIjsKICAgIH0KCiAgICAubWRpLWxhZHlidWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoK0iOwogICAgfQoKICAgIC5tZGktbGFtYmRhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJinIjsKICAgIH0KCiAgICAubWRpLWxhbXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmrUiOwogICAgfQoKICAgIC5tZGktbGFtcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+QIjsKICAgIH0KCiAgICAubWRpLWxhbXBzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZW2IjsKICAgIH0KCiAgICAubWRpLWxhbXBzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn5EiOwogICAgfQoKICAgIC5tZGktbGFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyXIjsKICAgIH0KCiAgICAubWRpLWxhbi1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKqiI7CiAgICB9CgogICAgLm1kaS1sYW4tY29ubmVjdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMmCI7CiAgICB9CgogICAgLm1kaS1sYW4tZGlzY29ubmVjdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMmSI7CiAgICB9CgogICAgLm1kaS1sYW4tcGVuZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMmiI7CiAgICB9CgogICAgLm1kaS1sYW5kLWZpZWxkczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqsiI7CiAgICB9CgogICAgLm1kaS1sYW5kLXBsb3RzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaqzIjsKICAgIH0KCiAgICAubWRpLWxhbmQtcGxvdHMtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaq0IjsKICAgIH0KCiAgICAubWRpLWxhbmQtcGxvdHMtY2lyY2xlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqrUiOwogICAgfQoKICAgIC5tZGktbGFuZC1wbG90cy1tYXJrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsZ0iOwogICAgfQoKICAgIC5tZGktbGFuZC1yb3dzLWhvcml6b250YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqrYiOwogICAgfQoKICAgIC5tZGktbGFuZC1yb3dzLXZlcnRpY2FsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaq3IjsKICAgIH0KCiAgICAubWRpLWxhbmRzbGlkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpiCI7CiAgICB9CgogICAgLm1kaS1sYW5kc2xpZGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpiSI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS1jOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmxIjsKICAgIH0KCiAgICAubWRpLWxhbmd1YWdlLWNwcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZsiI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS1jc2hhcnA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjJsiOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtY3NzMzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMnCI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS1mb3J0cmFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiaIjsKICAgIH0KCiAgICAubWRpLWxhbmd1YWdlLWdvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+TIjsKICAgIH0KCiAgICAubWRpLWxhbmd1YWdlLWhhc2tlbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwspIiOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtaHRtbDU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjJ0iOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtamF2YTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CstyI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS1qYXZhc2NyaXB0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyeIjsKICAgIH0KCiAgICAubWRpLWxhbmd1YWdlLWtvdGxpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GImSI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS1sdWE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOworEiOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtbWFya2Rvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZQiOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtbWFya2Rvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9myI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS1waHA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjJ8iOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtcHl0aG9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIygIjsKICAgIH0KCiAgICAubWRpLWxhbmd1YWdlLXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn5QiOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtcnVieTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0rSI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS1ydWJ5LW9uLXJhaWxzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuPIjsKICAgIH0KCiAgICAubWRpLWxhbmd1YWdlLXJ1c3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmJciOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2Utc3dpZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6UiOwogICAgfQoKICAgIC5tZGktbGFuZ3VhZ2UtdHlwZXNjcmlwdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbpiI7CiAgICB9CgogICAgLm1kaS1sYW5ndWFnZS14YW1sOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmzIjsKICAgIH0KCiAgICAubWRpLWxhcHRvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMoiI7CiAgICB9CgogICAgLm1kaS1sYXB0b3AtYWNjb3VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpiiI7CiAgICB9CgogICAgLm1kaS1sYXB0b3Atb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJunIjsKICAgIH0KCiAgICAubWRpLWxhcmF2ZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq5AiOwogICAgfQoKICAgIC5tZGktbGFzZXItcG9pbnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GShCI7CiAgICB9CgogICAgLm1kaS1sYXNzbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8gyI7CiAgICB9CgogICAgLm1kaS1sYXN0cGFzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRhiI7CiAgICB9CgogICAgLm1kaS1sYXRpdHVkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9lyI7CiAgICB9CgogICAgLm1kaS1sYXVuY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjKciOwogICAgfQoKICAgIC5tZGktbGF2YS1sYW1wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+VIjsKICAgIH0KCiAgICAubWRpLWxheWVyczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMqCI7CiAgICB9CgogICAgLm1kaS1sYXllcnMtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GikiI7CiAgICB9CgogICAgLm1kaS1sYXllcnMtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuYwiOwogICAgfQoKICAgIC5tZGktbGF5ZXJzLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMqSI7CiAgICB9CgogICAgLm1kaS1sYXllcnMtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp70iOwogICAgfQoKICAgIC5tZGktbGF5ZXJzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp74iOwogICAgfQoKICAgIC5tZGktbGF5ZXJzLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuY0iOwogICAgfQoKICAgIC5tZGktbGF5ZXJzLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5jiI7CiAgICB9CgogICAgLm1kaS1sYXllcnMtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiGIjsKICAgIH0KCiAgICAubWRpLWxheWVycy1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIhyI7CiAgICB9CgogICAgLm1kaS1sYXllcnMtdHJpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2YIjsKICAgIH0KCiAgICAubWRpLWxheWVycy10cmlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9mSI7CiAgICB9CgogICAgLm1kaS1sZWFkLXBlbmNpbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZjyI7CiAgICB9CgogICAgLm1kaS1sZWFmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIyqIjsKICAgIH0KCiAgICAubWRpLWxlYWYtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSFIjsKICAgIH0KCiAgICAubWRpLWxlYWYtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpIYiOwogICAgfQoKICAgIC5tZGktbGVhZi1tYXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CykyI7CiAgICB9CgogICAgLm1kaS1sZWFmLW1hcGxlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLmiI7CiAgICB9CgogICAgLm1kaS1sZWFmLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLmSI7CiAgICB9CgogICAgLm1kaS1sZWFrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeXIjsKICAgIH0KCiAgICAubWRpLWxlYWstb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLeYIjsKICAgIH0KCiAgICAubWRpLWxlY3Rlcm46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq7AiOwogICAgfQoKICAgIC5tZGktbGVkLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMqyI7CiAgICB9CgogICAgLm1kaS1sZWQtb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjKwiOwogICAgfQoKICAgIC5tZGktbGVkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjK0iOwogICAgfQoKICAgIC5tZGktbGVkLXN0cmlwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+WIjsKICAgIH0KCiAgICAubWRpLWxlZC1zdHJpcC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGRIjsKICAgIH0KCiAgICAubWRpLWxlZC1zdHJpcC12YXJpYW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpiyI7CiAgICB9CgogICAgLm1kaS1sZWQtdmFyaWFudC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjK4iOwogICAgfQoKICAgIC5tZGktbGVkLXZhcmlhbnQtb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjK8iOwogICAgfQoKICAgIC5tZGktbGVkLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMsCI7CiAgICB9CgogICAgLm1kaS1sZWVrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYW9IjsKICAgIH0KCiAgICAubWRpLWxlc3MtdGhhbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ClvCI7CiAgICB9CgogICAgLm1kaS1sZXNzLXRoYW4tb3ItZXF1YWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpb0iOwogICAgfQoKICAgIC5tZGktbGlicmFyeTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMsSI7CiAgICB9CgogICAgLm1kaS1saWJyYXJ5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqKIiOwogICAgfQoKICAgIC5tZGktbGlicmFyeS1zaGVsdmVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6pIjsKICAgIH0KCiAgICAubWRpLWxpY2Vuc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv4MiOwogICAgfQoKICAgIC5tZGktbGlmZWJ1b3k6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwob4iOwogICAgfQoKICAgIC5tZGktbGlnaHQtZmxvb2QtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmhyI7CiAgICB9CgogICAgLm1kaS1saWdodC1mbG9vZC11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmiCI7CiAgICB9CgogICAgLm1kaS1saWdodC1yZWNlc3NlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GemyI7CiAgICB9CgogICAgLm1kaS1saWdodC1zd2l0Y2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpb4iOwogICAgfQoKICAgIC5tZGktbGlnaHQtc3dpdGNoLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GopCI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjLUiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaehIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeiIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1hdXRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCAIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1hdXRvLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoIEiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLWNmbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIiCI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItY2ZsLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIiSI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItY2ZsLXNwaXJhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJtSI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItY2ZsLXNwaXJhbC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi4MiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLWZsdW9yZXNjZW50LXR1YmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoIQiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLWZsdW9yZXNjZW50LXR1YmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GghSI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItZ3JvdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiZMiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLWdyb3VwLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLjSI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItZ3JvdXAtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi44iOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLWdyb3VwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiZQiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmVIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1tdWx0aXBsZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi48iOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLW11bHRpcGxlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuQIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYmWIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1uaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpjCI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItbmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpjSI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmPIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5kCI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6giOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLW9uLTEwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamOIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1vbi0yMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpjyI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItb24tMzA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqZAiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLW9uLTQwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamRIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1vbi01MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpkiI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItb24tNjA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqZMiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLW9uLTcwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamUIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1vbi04MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GplSI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItb24tOTA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqZYiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6kiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjLYiOwogICAgfQoKICAgIC5tZGktbGlnaHRidWxiLXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaejIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1xdWVzdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaekIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1zcG90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+0IjsKICAgIH0KCiAgICAubWRpLWxpZ2h0YnVsYi1zcG90LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GftSI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GggiI7CiAgICB9CgogICAgLm1kaS1saWdodGJ1bGItdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCDIjsKICAgIH0KCiAgICAubWRpLWxpZ2h0aG91c2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwp78iOwogICAgfQoKICAgIC5tZGktbGlnaHRob3VzZS1vbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CogCI7CiAgICB9CgogICAgLm1kaS1saWdodG5pbmctYm9sdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQiyI7CiAgICB9CgogICAgLm1kaS1saWdodG5pbmctYm9sdC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoKAiOwogICAgfQoKICAgIC5tZGktbGlnaHRuaW5nLWJvbHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQjCI7CiAgICB9CgogICAgLm1kaS1saW5lLXNjYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmKQiOwogICAgfQoKICAgIC5tZGktbGluZ2VyaWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkbYiOwogICAgfQoKICAgIC5tZGktbGluazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMtyI7CiAgICB9CgogICAgLm1kaS1saW5rLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0miI7CiAgICB9CgogICAgLm1kaS1saW5rLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSbIjsKICAgIH0KCiAgICAubWRpLWxpbmstYm94LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtJwiOwogICAgfQoKICAgIC5tZGktbGluay1ib3gtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSdIjsKICAgIH0KCiAgICAubWRpLWxpbmstY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKsIjsKICAgIH0KCiAgICAubWRpLWxpbmstY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsq0iOwogICAgfQoKICAgIC5tZGktbGluay1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKuIjsKICAgIH0KCiAgICAubWRpLWxpbmstbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCuiI7CiAgICB9CgogICAgLm1kaS1saW5rLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMuCI7CiAgICB9CgogICAgLm1kaS1saW5rLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwspQiOwogICAgfQoKICAgIC5tZGktbGluay12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIy5IjsKICAgIH0KCiAgICAubWRpLWxpbmstdmFyaWFudC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDvyI7CiAgICB9CgogICAgLm1kaS1saW5rLXZhcmlhbnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIy6IjsKICAgIH0KCiAgICAubWRpLWxpbmstdmFyaWFudC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSAIjsKICAgIH0KCiAgICAubWRpLWxpbmstdmFyaWFudC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIEiOwogICAgfQoKICAgIC5tZGktbGlua2VkaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjLsiOwogICAgfQoKICAgIC5tZGktbGludXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjL0iOwogICAgfQoKICAgIC5tZGktbGludXgtbWludDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjrSI7CiAgICB9CgogICAgLm1kaS1saXBzdGljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOtSI7CiAgICB9CgogICAgLm1kaS1saXF1aWQtc3BvdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgpiI7CiAgICB9CgogICAgLm1kaS1saXF1b3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpJ4iOwogICAgfQoKICAgIC5tZGktbGlzdC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrbsiOwogICAgfQoKICAgIC5tZGktbGlzdC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtvCI7CiAgICB9CgogICAgLm1kaS1saXN0LXN0YXR1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWqyI7CiAgICB9CgogICAgLm1kaS1saXRlY29pbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpoSI7CiAgICB9CgogICAgLm1kaS1sb2FkaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2yIjsKICAgIH0KCiAgICAubWRpLWxvY2F0aW9uLWVudGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+EIjsKICAgIH0KCiAgICAubWRpLWxvY2F0aW9uLWV4aXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv4UiOwogICAgfQoKICAgIC5tZGktbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMviI7CiAgICB9CgogICAgLm1kaS1sb2NrLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOuIjsKICAgIH0KCiAgICAubWRpLWxvY2stYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXkSI7CiAgICB9CgogICAgLm1kaS1sb2NrLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6aIjsKICAgIH0KCiAgICAubWRpLWxvY2stY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GaqCI7CiAgICB9CgogICAgLm1kaS1sb2NrLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKW/IjsKICAgIH0KCiAgICAubWRpLWxvY2stbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmqkiOwogICAgfQoKICAgIC5tZGktbG9jay1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqqIjsKICAgIH0KCiAgICAubWRpLWxvY2stb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmxIjsKICAgIH0KCiAgICAubWRpLWxvY2stb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmbIiOwogICAgfQoKICAgIC5tZGktbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIy/IjsKICAgIH0KCiAgICAubWRpLWxvY2stb3Blbi1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOmyI7CiAgICB9CgogICAgLm1kaS1sb2NrLW9wZW4tYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXkiI7CiAgICB9CgogICAgLm1kaS1sb2NrLW9wZW4tY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjpwiOwogICAgfQoKICAgIC5tZGktbG9jay1vcGVuLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmqsiOwogICAgfQoKICAgIC5tZGktbG9jay1vcGVuLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqsIjsKICAgIH0KCiAgICAubWRpLWxvY2stb3Blbi1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqtIjsKICAgIH0KCiAgICAubWRpLWxvY2stb3Blbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2AIjsKICAgIH0KCiAgICAubWRpLWxvY2stb3Blbi1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZquIjsKICAgIH0KCiAgICAubWRpLWxvY2stb3Blbi1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmq8iOwogICAgfQoKICAgIC5tZGktbG9jay1vcGVuLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GasCI7CiAgICB9CgogICAgLm1kaS1sb2NrLW9wZW4tcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmrEiOwogICAgfQoKICAgIC5tZGktbG9jay1vcGVuLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv4YiOwogICAgfQoKICAgIC5tZGktbG9jay1vcGVuLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/hyI7CiAgICB9CgogICAgLm1kaS1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjYEiOwogICAgfQoKICAgIC5tZGktbG9jay1wYXR0ZXJuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuqIjsKICAgIH0KCiAgICAubWRpLWxvY2stcGVyY2VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwkiI7CiAgICB9CgogICAgLm1kaS1sb2NrLXBlcmNlbnQtb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwkyI7CiAgICB9CgogICAgLm1kaS1sb2NrLXBlcmNlbnQtb3Blbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCUIjsKICAgIH0KCiAgICAubWRpLWxvY2stcGVyY2VudC1vcGVuLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsJUiOwogICAgfQoKICAgIC5tZGktbG9jay1wZXJjZW50LW9wZW4tdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCWIjsKICAgIH0KCiAgICAubWRpLWxvY2stcGVyY2VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCXIjsKICAgIH0KCiAgICAubWRpLWxvY2stcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXuyI7CiAgICB9CgogICAgLm1kaS1sb2NrLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GasiI7CiAgICB9CgogICAgLm1kaS1sb2NrLXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOvIjsKICAgIH0KCiAgICAubWRpLWxvY2stcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqzIjsKICAgIH0KCiAgICAubWRpLWxvY2stcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmrQiOwogICAgfQoKICAgIC5tZGktbG9jay1yZXNldDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdsyI7CiAgICB9CgogICAgLm1kaS1sb2NrLXNtYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKyIjsKICAgIH0KCiAgICAubWRpLWxvY2tlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CflyI7CiAgICB9CgogICAgLm1kaS1sb2NrZXItbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn5giOwogICAgfQoKICAgIC5tZGktbG9naW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjYIiOwogICAgfQoKICAgIC5tZGktbG9naW4tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXvCI7CiAgICB9CgogICAgLm1kaS1sb2dvdXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjYMiOwogICAgfQoKICAgIC5tZGktbG9nb3V0LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl70iOwogICAgfQoKICAgIC5tZGktbG9uZ2l0dWRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2aIjsKICAgIH0KCiAgICAubWRpLWxvb2tzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2EIjsKICAgIH0KCiAgICAubWRpLWxvdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWgiI7CiAgICB9CgogICAgLm1kaS1sb3Rpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWgyI7CiAgICB9CgogICAgLm1kaS1sb3Rpb24tcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWhCI7CiAgICB9CgogICAgLm1kaS1sb3Rpb24tcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaFIjsKICAgIH0KCiAgICAubWRpLWxvdXBlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2FIjsKICAgIH0KCiAgICAubWRpLWx1bXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjYYiOwogICAgfQoKICAgIC5tZGktbHVuZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgoQiOwogICAgfQoKICAgIC5tZGktbWFjZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhgyI7CiAgICB9CgogICAgLm1kaS1tYWdhemluZS1waXN0b2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjKQiOwogICAgfQoKICAgIC5tZGktbWFnYXppbmUtcmlmbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjKMiOwogICAgfQoKICAgIC5tZGktbWFnaWMtc3RhZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoYQiOwogICAgfQoKICAgIC5tZGktbWFnbmV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2HIjsKICAgIH0KCiAgICAubWRpLW1hZ25ldC1vbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNiCI7CiAgICB9CgogICAgLm1kaS1tYWduaWZ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2JIjsKICAgIH0KCiAgICAubWRpLW1hZ25pZnktY2xvc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpoAiOwogICAgfQoKICAgIC5tZGktbWFnbmlmeS1leHBhbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxobQiOwogICAgfQoKICAgIC5tZGktbWFnbmlmeS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNiiI7CiAgICB9CgogICAgLm1kaS1tYWduaWZ5LW1pbnVzLWN1cnNvcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpoiI7CiAgICB9CgogICAgLm1kaS1tYWduaWZ5LW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm6wiOwogICAgfQoKICAgIC5tZGktbWFnbmlmeS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2LIjsKICAgIH0KCiAgICAubWRpLW1hZ25pZnktcGx1cy1jdXJzb3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqaMiOwogICAgfQoKICAgIC5tZGktbWFnbmlmeS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm60iOwogICAgfQoKICAgIC5tZGktbWFnbmlmeS1yZW1vdmUtY3Vyc29yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiMIjsKICAgIH0KCiAgICAubWRpLW1hZ25pZnktcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiI0iOwogICAgfQoKICAgIC5tZGktbWFnbmlmeS1zY2FuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYm2IjsKICAgIH0KCiAgICAubWRpLW1haWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwursiOwogICAgfQoKICAgIC5tZGktbWFpbGJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbriI7CiAgICB9CgogICAgLm1kaS1tYWlsYm94LW9wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtogiOwogICAgfQoKICAgIC5tZGktbWFpbGJveC1vcGVuLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtokiOwogICAgfQoKICAgIC5tZGktbWFpbGJveC1vcGVuLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaKIjsKICAgIH0KCiAgICAubWRpLW1haWxib3gtb3Blbi11cC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaLIjsKICAgIH0KCiAgICAubWRpLW1haWxib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2jCI7CiAgICB9CgogICAgLm1kaS1tYWlsYm94LXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaNIjsKICAgIH0KCiAgICAubWRpLW1haWxib3gtdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2jiI7CiAgICB9CgogICAgLm1kaS1tYW5qYXJvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiKIjsKICAgIH0KCiAgICAubWRpLW1hcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNjSI7CiAgICB9CgogICAgLm1kaS1tYXAtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwurwiOwogICAgfQoKICAgIC5tZGktbWFwLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwur0iOwogICAgfQoKICAgIC5tZGktbWFwLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSeIjsKICAgIH0KCiAgICAubWRpLW1hcC1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSfIjsKICAgIH0KCiAgICAubWRpLW1hcC1sZWdlbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqIEiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNjiI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLWFjY291bnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo6MiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1hY2NvdW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo6QiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8hSI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvIYiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CylSI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi7siOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjY8iOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1kaXN0YW5jZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjsCI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIIiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYubIjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItbGVmdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYudIjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmZAiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYu5IjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZAiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYm3IjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2RIjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi70iOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+ZIjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItcGF0aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0oCI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmZEiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi7giOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8hyI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLXF1ZXN0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvIgiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1yYWRpdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZIiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1yYWRpdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLvCI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8iSI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYu6IjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItcmVtb3ZlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvIoiOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLnCI7CiAgICB9CgogICAgLm1kaS1tYXAtbWFya2VyLXJpZ2h0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi54iOwogICAgfQoKICAgIC5tZGktbWFwLW1hcmtlci1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiIIjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItc3Rhci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiJIjsKICAgIH0KCiAgICAubWRpLW1hcC1tYXJrZXItdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIMiOwogICAgfQoKICAgIC5tZGktbWFwLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaBIjsKICAgIH0KCiAgICAubWRpLW1hcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaCIjsKICAgIH0KCiAgICAubWRpLW1hcC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaDIjsKICAgIH0KCiAgICAubWRpLW1hcC1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpoQiOwogICAgfQoKICAgIC5tZGktbWFwLXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaFIjsKICAgIH0KCiAgICAubWRpLW1hcGJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuqiI7CiAgICB9CgogICAgLm1kaS1tYXJnaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZMiOwogICAgfQoKICAgIC5tZGktbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmSIjsKICAgIH0KCiAgICAubWRpLW1hcmtlci1jYW5jZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt5kiOwogICAgfQoKICAgIC5tZGktbWFya2VyLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2VIjsKICAgIH0KCiAgICAubWRpLW1hc3RvZG9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuRIjsKICAgIH0KCiAgICAubWRpLW1hdGVyaWFsLWRlc2lnbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmhiI7CiAgICB9CgogICAgLm1kaS1tYXRlcmlhbC11aTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNlyI7CiAgICB9CgogICAgLm1kaS1tYXRoLWNvbXBhc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZgiOwogICAgfQoKICAgIC5tZGktbWF0aC1jb3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwspYiOwogICAgfQoKICAgIC5tZGktbWF0aC1pbnRlZ3JhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/iCI7CiAgICB9CgogICAgLm1kaS1tYXRoLWludGVncmFsLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/iSI7CiAgICB9CgogICAgLm1kaS1tYXRoLWxvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GChSI7CiAgICB9CgogICAgLm1kaS1tYXRoLW5vcm06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv4oiOwogICAgfQoKICAgIC5tZGktbWF0aC1ub3JtLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/iyI7CiAgICB9CgogICAgLm1kaS1tYXRoLXNpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CylyI7CiAgICB9CgogICAgLm1kaS1tYXRoLXRhbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CymCI7CiAgICB9CgogICAgLm1kaS1tYXRyaXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmKgiOwogICAgfQoKICAgIC5tZGktbWVkYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpociOwogICAgfQoKICAgIC5tZGktbWVkYWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMpiI7CiAgICB9CgogICAgLm1kaS1tZWRpY2FsLWJhZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbryI7CiAgICB9CgogICAgLm1kaS1tZWRpY2FsLWNvdHRvbi1zd2FiOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaq4IjsKICAgIH0KCiAgICAubWRpLW1lZGljYXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrJQiOwogICAgfQoKICAgIC5tZGktbWVkaWNhdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayVIjsKICAgIH0KCiAgICAubWRpLW1lZGl0YXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhbsiOwogICAgfQoKICAgIC5tZGktbWVtb3J5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2bIjsKICAgIH0KCiAgICAubWRpLW1lbW9yeS1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKmIjsKICAgIH0KCiAgICAubWRpLW1lbm9yYWg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn5QiOwogICAgfQoKICAgIC5tZGktbWVub3JhaC1maXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+VIjsKICAgIH0KCiAgICAubWRpLW1lbnU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZwiOwogICAgfQoKICAgIC5tZGktbWVudS1jbG9zZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GykCI7CiAgICB9CgogICAgLm1kaS1tZW51LWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZ0iOwogICAgfQoKICAgIC5tZGktbWVudS1kb3duLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmrYiOwogICAgfQoKICAgIC5tZGktbWVudS1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2eIjsKICAgIH0KCiAgICAubWRpLW1lbnUtbGVmdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiCIjsKICAgIH0KCiAgICAubWRpLW1lbnUtb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuqyI7CiAgICB9CgogICAgLm1kaS1tZW51LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2fIjsKICAgIH0KCiAgICAubWRpLW1lbnUtcmlnaHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CogyI7CiAgICB9CgogICAgLm1kaS1tZW51LXN3YXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqaQiOwogICAgfQoKICAgIC5tZGktbWVudS1zd2FwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqaUiOwogICAgfQoKICAgIC5tZGktbWVudS11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNoCI7CiAgICB9CgogICAgLm1kaS1tZW51LXVwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmrciOwogICAgfQoKICAgIC5tZGktbWVyZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvZwiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNoSI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2iIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CohCI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWFycm93LWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi7IiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1hcnJvdy1sZWZ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi7MiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1hcnJvdy1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLtCI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWFycm93LXJpZ2h0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi7UiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1iYWRnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlgSI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWJhZGdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpYIiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1ib29rbWFyazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWrCI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWJvb2ttYXJrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlq0iOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1idWxsZXRlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CaoiI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWJ1bGxldGVkLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CaoyI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6KIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuiyI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbsSI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWyIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtZHJhdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNoyI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWZhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp4wiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1mYXN0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp40iOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1mbGFzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWqSI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWZsYXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlqoiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1pbWFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNpCI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLWltYWdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhawiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+MIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWtIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxha4iOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWvIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2Utb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmNIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2Utb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmY4iOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2lIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZkyI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCuyI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXByb2Nlc3Npbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjaYiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1wcm9jZXNzaW5nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhbAiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcuiI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXF1ZXN0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnLsiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1yZXBseTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNpyI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXJlcGx5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnL0iOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1yZXBseS10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2oIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtcmVwbHktdGV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZy+IjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2Utc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm7AiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWxIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2Utc3RhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CamiI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXN0YXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJkCI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXRleHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjakiOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS10ZXh0LWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWzIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtdGV4dC1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYW0IjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtdGV4dC1mYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeOIjsKICAgIH0KCiAgICAubWRpLW1lc3NhZ2UtdGV4dC1mYXN0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp48iOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS10ZXh0LWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv40iOwogICAgfQoKICAgIC5tZGktbWVzc2FnZS10ZXh0LWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFtSI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXRleHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNqiI7CiAgICB9CgogICAgLm1kaS1tZXNzYWdlLXZpZGVvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2rIjsKICAgIH0KCiAgICAubWRpLW1ldGVvcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYqSI7CiAgICB9CgogICAgLm1kaS1tZXRlci1lbGVjdHJpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GplyI7CiAgICB9CgogICAgLm1kaS1tZXRlci1lbGVjdHJpYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamYIjsKICAgIH0KCiAgICAubWRpLW1ldGVyLWdhczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpmSI7CiAgICB9CgogICAgLm1kaS1tZXRlci1nYXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpmiI7CiAgICB9CgogICAgLm1kaS1tZXRyb25vbWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn5oiOwogICAgfQoKICAgIC5tZGktbWV0cm9ub21lLXRpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn5siOwogICAgfQoKICAgIC5tZGktbWljcm8tc2Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn5wiOwogICAgfQoKICAgIC5tZGktbWljcm9waG9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNrCI7CiAgICB9CgogICAgLm1kaS1taWNyb3Bob25lLW1lc3NhZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlIoiOwogICAgfQoKICAgIC5tZGktbWljcm9waG9uZS1tZXNzYWdlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUiyI7CiAgICB9CgogICAgLm1kaS1taWNyb3Bob25lLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKzIjsKICAgIH0KCiAgICAubWRpLW1pY3JvcGhvbmUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2tIjsKICAgIH0KCiAgICAubWRpLW1pY3JvcGhvbmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNriI7CiAgICB9CgogICAgLm1kaS1taWNyb3Bob25lLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOworQiOwogICAgfQoKICAgIC5tZGktbWljcm9waG9uZS1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmiSI7CiAgICB9CgogICAgLm1kaS1taWNyb3Bob25lLXF1ZXN0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpooiOwogICAgfQoKICAgIC5tZGktbWljcm9waG9uZS1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNryI7CiAgICB9CgogICAgLm1kaS1taWNyb3Bob25lLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjbAiOwogICAgfQoKICAgIC5tZGktbWljcm9waG9uZS12YXJpYW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNsSI7CiAgICB9CgogICAgLm1kaS1taWNyb3Njb3BlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmUIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNsiI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtYWNjZXNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6OIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC1henVyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CghSI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtYXp1cmUtZGV2b3BzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+VIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC1iaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIKkIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC1keW5hbWljcy0zNjU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpogiOwogICAgfQoKICAgIC5tZGktbWljcm9zb2Z0LWVkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwh6kiOwogICAgfQoKICAgIC5tZGktbWljcm9zb2Z0LWV4Y2VsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6PIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC1pbnRlcm5ldC1leHBsb3JlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMgCI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtb2ZmaWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+GIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC1vbmVkcml2ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPiiI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtb25lbm90ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdhyI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtb3V0bG9vazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0oiI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtcG93ZXJwb2ludDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOkCI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtc2hhcmVwb2ludDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOkSI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtdGVhbXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwirsiOwogICAgfQoKICAgIC5tZGktbWljcm9zb2Z0LXZpc3VhbC1zdHVkaW86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmJAiOwogICAgfQoKICAgIC5tZGktbWljcm9zb2Z0LXZpc3VhbC1zdHVkaW8tY29kZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ConiI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtd2luZG93czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CWsyI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQtd2luZG93cy1jbGFzc2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKihIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC13b3JkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6SIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC14Ym94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJa5IjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC14Ym94LWNvbnRyb2xsZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlroiOwogICAgfQoKICAgIC5tZGktbWljcm9zb2Z0LXhib3gtY29udHJvbGxlci1iYXR0ZXJ5LWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2LIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC14Ym94LWNvbnRyb2xsZXItYmF0dGVyeS1jaGFyZ2luZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CooiI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQteGJveC1jb250cm9sbGVyLWJhdHRlcnktZW1wdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnYwiOwogICAgfQoKICAgIC5tZGktbWljcm9zb2Z0LXhib3gtY29udHJvbGxlci1iYXR0ZXJ5LWZ1bGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnY0iOwogICAgfQoKICAgIC5tZGktbWljcm9zb2Z0LXhib3gtY29udHJvbGxlci1iYXR0ZXJ5LWxvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdjiI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQteGJveC1jb250cm9sbGVyLWJhdHRlcnktbWVkaXVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2PIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC14Ym94LWNvbnRyb2xsZXItYmF0dGVyeS11bmtub3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2QIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvc29mdC14Ym94LWNvbnRyb2xsZXItbWVudTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5ryI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQteGJveC1jb250cm9sbGVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CWuyI7CiAgICB9CgogICAgLm1kaS1taWNyb3NvZnQteGJveC1jb250cm9sbGVyLXZpZXc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwubAiOwogICAgfQoKICAgIC5tZGktbWljcm93YXZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKZIjsKICAgIH0KCiAgICAubWRpLW1pY3Jvd2F2ZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkKMiOwogICAgfQoKICAgIC5tZGktbWlkZGxld2FyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9nSI7CiAgICB9CgogICAgLm1kaS1taWRkbGV3YXJlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvZ4iOwogICAgfQoKICAgIC5tZGktbWlkaTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjsSI7CiAgICB9CgogICAgLm1kaS1taWRpLXBvcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo7IiOwogICAgfQoKICAgIC5tZGktbWluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3miI7CiAgICB9CgogICAgLm1kaS1taW5lY3JhZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjbMiOwogICAgfQoKICAgIC5tZGktbWluaS1zZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CohSI7CiAgICB9CgogICAgLm1kaS1taW5pZGlzYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CohiI7CiAgICB9CgogICAgLm1kaS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNtCI7CiAgICB9CgogICAgLm1kaS1taW51cy1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjbUiOwogICAgfQoKICAgIC5tZGktbWludXMtYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWBIjsKICAgIH0KCiAgICAubWRpLW1pbnVzLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWCIjsKICAgIH0KCiAgICAubWRpLW1pbnVzLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJuyIjsKICAgIH0KCiAgICAubWRpLW1pbnVzLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNtiI7CiAgICB9CgogICAgLm1kaS1taW51cy1jaXJjbGUtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjZoiOwogICAgfQoKICAgIC5tZGktbWludXMtY2lyY2xlLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq5MiOwogICAgfQoKICAgIC5tZGktbWludXMtY2lyY2xlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRmSI7CiAgICB9CgogICAgLm1kaS1taW51cy1jaXJjbGUtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkZoiOwogICAgfQoKICAgIC5tZGktbWludXMtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjbciOwogICAgfQoKICAgIC5tZGktbWludXMtbmV0d29yazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNuCI7CiAgICB9CgogICAgLm1kaS1taW51cy1uZXR3b3JrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwspoiOwogICAgfQoKICAgIC5tZGktbWludXMtdGhpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmLkiOwogICAgfQoKICAgIC5tZGktbWlycm9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYe9IjsKICAgIH0KCiAgICAubWRpLW1pcnJvci1yZWN0YW5nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnp8iOwogICAgfQoKICAgIC5tZGktbWlycm9yLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnqAiOwogICAgfQoKICAgIC5tZGktbWl4ZWQtbWFydGlhbC1hcnRzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaPIjsKICAgIH0KCiAgICAubWRpLW1peGVkLXJlYWxpdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwob8iOwogICAgfQoKICAgIC5tZGktbW9sZWN1bGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrqwiOwogICAgfQoKICAgIC5tZGktbW9sZWN1bGUtY286YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi74iOwogICAgfQoKICAgIC5tZGktbW9sZWN1bGUtY28yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+kIjsKICAgIH0KCiAgICAubWRpLW1vbml0b3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjbkiOwogICAgfQoKICAgIC5tZGktbW9uaXRvci1hY2NvdW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsambIjsKICAgIH0KCiAgICAubWRpLW1vbml0b3ItYXJyb3ctZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnkCI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLWFycm93LWRvd24tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnkSI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLWNlbGxwaG9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmiSI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLWNlbGxwaG9uZS1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaKIjsKICAgIH0KCiAgICAubWRpLW1vbml0b3ItZGFzaGJvYXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiHIjsKICAgIH0KCiAgICAubWRpLW1vbml0b3ItZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLhiI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOtCI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt5siOwogICAgfQoKICAgIC5tZGktbW9uaXRvci1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNuiI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2kCI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLXNjcmVlbnNob3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuZEiOwogICAgfQoKICAgIC5tZGktbW9uaXRvci1zaGFyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSgyI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLXNoaW1tZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIQiOwogICAgfQoKICAgIC5tZGktbW9uaXRvci1zbWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhtiI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLXNwZWFrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvZ8iOwogICAgfQoKICAgIC5tZGktbW9uaXRvci1zcGVha2VyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9oCI7CiAgICB9CgogICAgLm1kaS1tb25pdG9yLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt5wiOwogICAgfQoKICAgIC5tZGktbW9uaXRvci12ZXJ0aWNhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwsyI7CiAgICB9CgogICAgLm1kaS1tb29uLWZpcnN0LXF1YXJ0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvaEiOwogICAgfQoKICAgIC5tZGktbW9vbi1mdWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2iIjsKICAgIH0KCiAgICAubWRpLW1vb24tbGFzdC1xdWFydGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2jIjsKICAgIH0KCiAgICAubWRpLW1vb24tbmV3OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2kIjsKICAgIH0KCiAgICAubWRpLW1vb24td2FuaW5nLWNyZXNjZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2lIjsKICAgIH0KCiAgICAubWRpLW1vb24td2FuaW5nLWdpYmJvdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvaYiOwogICAgfQoKICAgIC5tZGktbW9vbi13YXhpbmctY3Jlc2NlbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvaciOwogICAgfQoKICAgIC5tZGktbW9vbi13YXhpbmctZ2liYm91czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9qCI7CiAgICB9CgogICAgLm1kaS1tb3BlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GChiI7CiAgICB9CgogICAgLm1kaS1tb3BlZC1lbGVjdHJpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWtyI7CiAgICB9CgogICAgLm1kaS1tb3BlZC1lbGVjdHJpYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZa4IjsKICAgIH0KCiAgICAubWRpLW1vcGVkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlrkiOwogICAgfQoKICAgIC5tZGktbW9yZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNuyI7CiAgICB9CgogICAgLm1kaS1tb3J0YXItcGVzdGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2IIjsKICAgIH0KCiAgICAubWRpLW1vcnRhci1wZXN0bGUtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPsSI7CiAgICB9CgogICAgLm1kaS1tb3NxdWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtYUiOwogICAgfQoKICAgIC5tZGktbW9zcXVlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoKciOwogICAgfQoKICAgIC5tZGktbW90aGVyLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyUIjsKICAgIH0KCiAgICAubWRpLW1vdGhlci1udXJzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0oSI7CiAgICB9CgogICAgLm1kaS1tb3Rpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlrIiOwogICAgfQoKICAgIC5tZGktbW90aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlrMiOwogICAgfQoKICAgIC5tZGktbW90aW9uLXBhdXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaQIjsKICAgIH0KCiAgICAubWRpLW1vdGlvbi1wYXVzZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaSIjsKICAgIH0KCiAgICAubWRpLW1vdGlvbi1wbGF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaPIjsKICAgIH0KCiAgICAubWRpLW1vdGlvbi1wbGF5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlpEiOwogICAgfQoKICAgIC5tZGktbW90aW9uLXNlbnNvcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2kSI7CiAgICB9CgogICAgLm1kaS1tb3Rpb24tc2Vuc29yLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQtSI7CiAgICB9CgogICAgLm1kaS1tb3RvcmJpa2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjbwiOwogICAgfQoKICAgIC5tZGktbW90b3JiaWtlLWVsZWN0cmljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZa6IjsKICAgIH0KCiAgICAubWRpLW1vdG9yYmlrZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrJYiOwogICAgfQoKICAgIC5tZGktbW91c2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjb0iOwogICAgfQoKICAgIC5tZGktbW91c2UtYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaLIjsKICAgIH0KCiAgICAubWRpLW1vdXNlLWxlZnQtY2xpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxtIciOwogICAgfQoKICAgIC5tZGktbW91c2UtbGVmdC1jbGljay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbSIIjsKICAgIH0KCiAgICAubWRpLW1vdXNlLW1vdmUtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVkCI7CiAgICB9CgogICAgLm1kaS1tb3VzZS1tb3ZlLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWRIjsKICAgIH0KCiAgICAubWRpLW1vdXNlLW1vdmUtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlZIiOwogICAgfQoKICAgIC5tZGktbW91c2Utb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2+IjsKICAgIH0KCiAgICAubWRpLW1vdXNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxtIkiOwogICAgfQoKICAgIC5tZGktbW91c2UtcmlnaHQtY2xpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxtIoiOwogICAgfQoKICAgIC5tZGktbW91c2UtcmlnaHQtY2xpY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87G0iyI7CiAgICB9CgogICAgLm1kaS1tb3VzZS1zY3JvbGwtd2hlZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxtIwiOwogICAgfQoKICAgIC5tZGktbW91c2UtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CNvyI7CiAgICB9CgogICAgLm1kaS1tb3VzZS12YXJpYW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COgCI7CiAgICB9CgogICAgLm1kaS1tb3ZlLXJlc2l6ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZlSI7CiAgICB9CgogICAgLm1kaS1tb3ZlLXJlc2l6ZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmWIjsKICAgIH0KCiAgICAubWRpLW1vdmllOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6BIjsKICAgIH0KCiAgICAubWRpLW1vdmllLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZuzIjsKICAgIH0KCiAgICAubWRpLW1vdmllLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm7QiOwogICAgfQoKICAgIC5tZGktbW92aWUtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZu1IjsKICAgIH0KCiAgICAubWRpLW1vdmllLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZu2IjsKICAgIH0KCiAgICAubWRpLW1vdmllLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhKIiOwogICAgfQoKICAgIC5tZGktbW92aWUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSjIjsKICAgIH0KCiAgICAubWRpLW1vdmllLWZpbHRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEpCI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1maWx0ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEpSI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbtyI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZu4IjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbuSI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GbuiI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+OIjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm7siOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZu8IjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZu9IjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm74iOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZu/IjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyAIjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnIEiOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyCIjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyDIjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnIQiOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+PIjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GchSI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1vcGVuLXBsYXktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GchiI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1vcGVuLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnIciOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnIgiOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnIkiOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GciiI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1vcGVuLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyLIjsKICAgIH0KCiAgICAubWRpLW1vdmllLW9wZW4tc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcjCI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1vcGVuLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnI0iOwogICAgfQoKICAgIC5tZGktbW92aWUtb3Blbi1zdGFyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnI4iOwogICAgfQoKICAgIC5tZGktbW92aWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3nSI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1wbGF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyPIjsKICAgIH0KCiAgICAubWRpLW1vdmllLXBsYXktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GckCI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyRIjsKICAgIH0KCiAgICAubWRpLW1vdmllLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GckiI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnJMiOwogICAgfQoKICAgIC5tZGktbW92aWUtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnJQiOwogICAgfQoKICAgIC5tZGktbW92aWUtcm9sbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfniI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh5IiOwogICAgfQoKICAgIC5tZGktbW92aWUtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh5MiOwogICAgfQoKICAgIC5tZGktbW92aWUtc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnJUiOwogICAgfQoKICAgIC5tZGktbW92aWUtc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcliI7CiAgICB9CgogICAgLm1kaS1tb3ZpZS1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyXIjsKICAgIH0KCiAgICAubWRpLW1vdmllLXN0YXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcmCI7CiAgICB9CgogICAgLm1kaS1tb3dlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZryI7CiAgICB9CgogICAgLm1kaS1tb3dlci1iYWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmbAiOwogICAgfQoKICAgIC5tZGktbW93ZXItYmFnLW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2gIjsKICAgIH0KCiAgICAubWRpLW1vd2VyLW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2fIjsKICAgIH0KCiAgICAubWRpLW11ZmZpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmjCI7CiAgICB9CgogICAgLm1kaS1tdWx0aWNhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxopMiOwogICAgfQoKICAgIC5tZGktbXVsdGltZWRpYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GulyI7CiAgICB9CgogICAgLm1kaS1tdWx0aXBsaWNhdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COgiI7CiAgICB9CgogICAgLm1kaS1tdWx0aXBsaWNhdGlvbi1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjoMiOwogICAgfQoKICAgIC5tZGktbXVzaHJvb206YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn58iOwogICAgfQoKICAgIC5tZGktbXVzaHJvb20tb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+6IjsKICAgIH0KCiAgICAubWRpLW11c2hyb29tLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+7IjsKICAgIH0KCiAgICAubWRpLW11c2hyb29tLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn6AiOwogICAgfQoKICAgIC5tZGktbXVzaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnZoiOwogICAgfQoKICAgIC5tZGktbXVzaWMtYWNjaWRlbnRhbC1kb3VibGUtZmxhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9qSI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1hY2NpZGVudGFsLWRvdWJsZS1zaGFycDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9qiI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1hY2NpZGVudGFsLWZsYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvasiOwogICAgfQoKICAgIC5tZGktbXVzaWMtYWNjaWRlbnRhbC1uYXR1cmFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2sIjsKICAgIH0KCiAgICAubWRpLW11c2ljLWFjY2lkZW50YWwtc2hhcnA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwva0iOwogICAgfQoKICAgIC5tZGktbXVzaWMtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6EIjsKICAgIH0KCiAgICAubWRpLW11c2ljLWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMsyI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8hCI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COhSI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjoYiOwogICAgfQoKICAgIC5tZGktbXVzaWMtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq5QiOwogICAgfQoKICAgIC5tZGktbXVzaWMtY2xlZi1hbHRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2uIjsKICAgIH0KCiAgICAubWRpLW11c2ljLWNsZWYtYmFzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9ryI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1jbGVmLXRyZWJsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9sCI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ub3RlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6HIjsKICAgIH0KCiAgICAubWRpLW11c2ljLW5vdGUtYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJe+IjsKICAgIH0KCiAgICAubWRpLW11c2ljLW5vdGUtYmx1ZXRvb3RoLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CXvyI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ub3RlLWVpZ2h0aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COiCI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ub3RlLWVpZ2h0aC1kb3R0ZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvbEiOwogICAgfQoKICAgIC5tZGktbXVzaWMtbm90ZS1oYWxmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6JIjsKICAgIH0KCiAgICAubWRpLW11c2ljLW5vdGUtaGFsZi1kb3R0ZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvbIiOwogICAgfQoKICAgIC5tZGktbXVzaWMtbm90ZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuiSI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ub3RlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COiiI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ub3RlLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL2zIjsKICAgIH0KCiAgICAubWRpLW11c2ljLW5vdGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9tCI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1ub3RlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt54iOwogICAgfQoKICAgIC5tZGktbXVzaWMtbm90ZS1xdWFydGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6LIjsKICAgIH0KCiAgICAubWRpLW11c2ljLW5vdGUtcXVhcnRlci1kb3R0ZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvbUiOwogICAgfQoKICAgIC5tZGktbXVzaWMtbm90ZS1zaXh0ZWVudGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjowiOwogICAgfQoKICAgIC5tZGktbXVzaWMtbm90ZS1zaXh0ZWVudGgtZG90dGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL22IjsKICAgIH0KCiAgICAubWRpLW11c2ljLW5vdGUtd2hvbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjo0iOwogICAgfQoKICAgIC5tZGktbXVzaWMtbm90ZS13aG9sZS1kb3R0ZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvbciOwogICAgfQoKICAgIC5tZGktbXVzaWMtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2bIjsKICAgIH0KCiAgICAubWRpLW11c2ljLXJlc3QtZWlnaHRoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL24IjsKICAgIH0KCiAgICAubWRpLW11c2ljLXJlc3QtaGFsZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9uSI7CiAgICB9CgogICAgLm1kaS1tdXNpYy1yZXN0LXF1YXJ0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvboiOwogICAgfQoKICAgIC5tZGktbXVzaWMtcmVzdC1zaXh0ZWVudGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvbsiOwogICAgfQoKICAgIC5tZGktbXVzaWMtcmVzdC13aG9sZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9vCI7CiAgICB9CgogICAgLm1kaS1tdXN0YWNoZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXniI7CiAgICB9CgogICAgLm1kaS1uYWlsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLefIjsKICAgIH0KCiAgICAubWRpLW5hczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjsyI7CiAgICB9CgogICAgLm1kaS1uYXRpdmVzY3JpcHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwooAiOwogICAgfQoKICAgIC5tZGktbmF0dXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6OIjsKICAgIH0KCiAgICAubWRpLW5hdHVyZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGxIjsKICAgIH0KCiAgICAubWRpLW5hdHVyZS1wZW9wbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjo8iOwogICAgfQoKICAgIC5tZGktbmF0dXJlLXBlb3BsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGyIjsKICAgIH0KCiAgICAubWRpLW5hdmlnYXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjpAiOwogICAgfQoKICAgIC5tZGktbmF2aWdhdGlvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiHIjsKICAgIH0KCiAgICAubWRpLW5hdmlnYXRpb24tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjsCI7CiAgICB9CgogICAgLm1kaS1uYXZpZ2F0aW9uLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjsSI7CiAgICB9CgogICAgLm1kaS1uZWFyLW1lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeNIjsKICAgIH0KCiAgICAubWRpLW5lY2tsYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyLIjsKICAgIH0KCiAgICAubWRpLW5lZWRsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COkSI7CiAgICB9CgogICAgLm1kaS1uZWVkbGUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeSIjsKICAgIH0KCiAgICAubWRpLW5ldGZsaXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnYYiOwogICAgfQoKICAgIC5tZGktbmV0d29yazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbsyI7CiAgICB9CgogICAgLm1kaS1uZXR3b3JrLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CymyI7CiAgICB9CgogICAgLm1kaS1uZXR3b3JrLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKcIjsKICAgIH0KCiAgICAubWRpLW5ldHdvcmstb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CynSI7CiAgICB9CgogICAgLm1kaS1uZXR3b3JrLXBvczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GriyI7CiAgICB9CgogICAgLm1kaS1uZXR3b3JrLXN0cmVuZ3RoLTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo7QiOwogICAgfQoKICAgIC5tZGktbmV0d29yay1zdHJlbmd0aC0xLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKO1IjsKICAgIH0KCiAgICAubWRpLW5ldHdvcmstc3RyZW5ndGgtMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjtiI7CiAgICB9CgogICAgLm1kaS1uZXR3b3JrLXN0cmVuZ3RoLTItYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo7ciOwogICAgfQoKICAgIC5tZGktbmV0d29yay1zdHJlbmd0aC0zOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKO4IjsKICAgIH0KCiAgICAubWRpLW5ldHdvcmstc3RyZW5ndGgtMy1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjuSI7CiAgICB9CgogICAgLm1kaS1uZXR3b3JrLXN0cmVuZ3RoLTQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo7oiOwogICAgfQoKICAgIC5tZGktbmV0d29yay1zdHJlbmd0aC00LWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKO7IjsKICAgIH0KCiAgICAubWRpLW5ldHdvcmstc3RyZW5ndGgtNC1jb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpJoiOwogICAgfQoKICAgIC5tZGktbmV0d29yay1zdHJlbmd0aC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo7wiOwogICAgfQoKICAgIC5tZGktbmV0d29yay1zdHJlbmd0aC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjvSI7CiAgICB9CgogICAgLm1kaS1uZXR3b3JrLXN0cmVuZ3RoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo74iOwogICAgfQoKICAgIC5tZGktbmV3LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COlCI7CiAgICB9CgogICAgLm1kaS1uZXdzcGFwZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjpUiOwogICAgfQoKICAgIC5tZGktbmV3c3BhcGVyLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWDIjsKICAgIH0KCiAgICAubWRpLW5ld3NwYXBlci1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8jCI7CiAgICB9CgogICAgLm1kaS1uZXdzcGFwZXItcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8jSI7CiAgICB9CgogICAgLm1kaS1uZXdzcGFwZXItcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWEIjsKICAgIH0KCiAgICAubWRpLW5ld3NwYXBlci12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCBIjsKICAgIH0KCiAgICAubWRpLW5ld3NwYXBlci12YXJpYW50LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCCIjsKICAgIH0KCiAgICAubWRpLW5ld3NwYXBlci12YXJpYW50LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgIMiOwogICAgfQoKICAgIC5tZGktbmV3c3BhcGVyLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAhCI7CiAgICB9CgogICAgLm1kaS1uZmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjpYiOwogICAgfQoKICAgIC5tZGktbmZjLXNlYXJjaC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmTIjsKICAgIH0KCiAgICAubWRpLW5mYy10YXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjpciOwogICAgfQoKICAgIC5tZGktbmZjLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjpgiOwogICAgfQoKICAgIC5tZGktbmZjLXZhcmlhbnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmUIjsKICAgIH0KCiAgICAubWRpLW5pbmphOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ20IjsKICAgIH0KCiAgICAubWRpLW5pbnRlbmRvLWdhbWUtYm95OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6TIjsKICAgIH0KCiAgICAubWRpLW5pbnRlbmRvLXN3aXRjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfoSI7CiAgICB9CgogICAgLm1kaS1uaW50ZW5kby13aWk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlqsiOwogICAgfQoKICAgIC5tZGktbmludGVuZG8td2lpdTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcrSI7CiAgICB9CgogICAgLm1kaS1uaXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIUiOwogICAgfQoKICAgIC5tZGktbm9kZWpzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6ZIjsKICAgIH0KCiAgICAubWRpLW5vb2RsZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhb4iOwogICAgfQoKICAgIC5tZGktbm90LWVxdWFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaNIjsKICAgIH0KCiAgICAubWRpLW5vdC1lcXVhbC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaOIjsKICAgIH0KCiAgICAubWRpLW5vdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjpoiOwogICAgfQoKICAgIC5tZGktbm90ZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdvSI7CiAgICB9CgogICAgLm1kaS1ub3RlLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnb4iOwogICAgfQoKICAgIC5tZGktbm90ZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdvyI7CiAgICB9CgogICAgLm1kaS1ub3RlLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnoAiOwogICAgfQoKICAgIC5tZGktbm90ZS1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6BIjsKICAgIH0KCiAgICAubWRpLW5vdGUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6CIjsKICAgIH0KCiAgICAubWRpLW5vdGUtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmY8iOwogICAgfQoKICAgIC5tZGktbm90ZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmQIjsKICAgIH0KCiAgICAubWRpLW5vdGUtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmrgiOwogICAgfQoKICAgIC5tZGktbm90ZS1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJq5IjsKICAgIH0KCiAgICAubWRpLW5vdGUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6DIjsKICAgIH0KCiAgICAubWRpLW5vdGUtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnoQiOwogICAgfQoKICAgIC5tZGktbm90ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6bIjsKICAgIH0KCiAgICAubWRpLW5vdGUtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COnCI7CiAgICB9CgogICAgLm1kaS1ub3RlLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COnSI7CiAgICB9CgogICAgLm1kaS1ub3RlLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZkSI7CiAgICB9CgogICAgLm1kaS1ub3RlLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmSIjsKICAgIH0KCiAgICAubWRpLW5vdGUtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmTIjsKICAgIH0KCiAgICAubWRpLW5vdGUtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmZQiOwogICAgfQoKICAgIC5tZGktbm90ZS10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6eIjsKICAgIH0KCiAgICAubWRpLW5vdGUtdGV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeXIjsKICAgIH0KCiAgICAubWRpLW5vdGVib29rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCuIjsKICAgIH0KCiAgICAubWRpLW5vdGVib29rLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZO1IjsKICAgIH0KCiAgICAubWRpLW5vdGVib29rLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk7YiOwogICAgfQoKICAgIC5tZGktbm90ZWJvb2stZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTpyI7CiAgICB9CgogICAgLm1kaS1ub3RlYm9vay1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk6kiOwogICAgfQoKICAgIC5tZGktbm90ZWJvb2staGVhcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqIsiOwogICAgfQoKICAgIC5tZGktbm90ZWJvb2staGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GojCI7CiAgICB9CgogICAgLm1kaS1ub3RlYm9vay1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYkCI7CiAgICB9CgogICAgLm1kaS1ub3RlYm9vay1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiRIjsKICAgIH0KCiAgICAubWRpLW5vdGVib29rLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmVIjsKICAgIH0KCiAgICAubWRpLW5vdGVib29rLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwur8iOwogICAgfQoKICAgIC5tZGktbm90ZWJvb2stcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYkiI7CiAgICB9CgogICAgLm1kaS1ub3RlYm9vay1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmJMiOwogICAgfQoKICAgIC5tZGktbm90ZWJvb2stcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiUIjsKICAgIH0KCiAgICAubWRpLW5vdGVib29rLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiVIjsKICAgIH0KCiAgICAubWRpLW5vdGlmaWNhdGlvbi1jbGVhci1hbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjp8iOwogICAgfQoKICAgIC5tZGktbnBtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJu3IjsKICAgIH0KCiAgICAubWRpLW51a2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmqQiOwogICAgfQoKICAgIC5tZGktbnVsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfoiI7CiAgICB9CgogICAgLm1kaS1udW1lcmljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6gIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsuSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTAtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6hIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMC1ib3gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvI4iOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0wLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6iIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COoyI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTAtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKeIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CynyI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrLoiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0xLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COpCI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTEtYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyPIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMS1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COpSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTEtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjqYiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0xLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyoCI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTEtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsqEiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0xMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/qSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTEwLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C9vSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTEwLWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/qiI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTEwLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+rIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMTAtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvb4iOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0xMC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv6wiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0xMC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/rSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrLsiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0yLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COpyI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTItYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyQIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMi1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COqCI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTItYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjqkiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0yLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyoiI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTItY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsqMiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0zOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKy8IjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMy1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjqoiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0zLWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8kSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTMtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjqsiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0zLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6sIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtMy1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsqQiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy0zLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKlIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CsvSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6tIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNC1ib3gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvJIiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy00LWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6yIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COriI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKmIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CypyI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrL4iOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy01LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COsSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTUtYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyTIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNS1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COryI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTUtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjrAiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy01LWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyqCI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTUtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsqkiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy02OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKy/IjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNi1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjrMiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy02LWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8lCI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTYtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjrQiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy02LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI61IjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNi1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsqoiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy02LWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKrIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtgCI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTctYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI62IjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNy1ib3gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvJUiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy03LWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI63IjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNy1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COuCI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTctY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKsIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtNy1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyrSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrYEiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy04LWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COuSI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTgtYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyWIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtOC1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COuiI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTgtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjrsiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy04LWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyriI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTgtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsq8iOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy05OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2CIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtOS1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjrwiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy05LWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8lyI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTktYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjr0iOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy05LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6+IjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtOS1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsrAiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy05LWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKxIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtOS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+uIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtOS1wbHVzLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COvyI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLTktcGx1cy1ib3gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvJgiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy05LXBsdXMtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj4AiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy05LXBsdXMtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj4EiOwogICAgfQoKICAgIC5tZGktbnVtZXJpYy05LXBsdXMtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKyIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtOS1wbHVzLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLKzIjsKICAgIH0KCiAgICAubWRpLW51bWVyaWMtbmVnYXRpdmUtMTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBkiI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnkyI7CiAgICB9CgogICAgLm1kaS1udW1lcmljLXBvc2l0aXZlLTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl4siOwogICAgfQoKICAgIC5tZGktbnV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJu4IjsKICAgIH0KCiAgICAubWRpLW51dHJpdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPgiI7CiAgICB9CgogICAgLm1kaS1udXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSGIjsKICAgIH0KCiAgICAubWRpLW9hcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZvCI7CiAgICB9CgogICAgLm1kaS1vY2FyaW5hOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLegIjsKICAgIH0KCiAgICAubWRpLW9jaTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLqSI7CiAgICB9CgogICAgLm1kaS1vY3I6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhLoiOwogICAgfQoKICAgIC5tZGktb2N0YWdvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPgyI7CiAgICB9CgogICAgLm1kaS1vY3RhZ29uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj4QiOwogICAgfQoKICAgIC5tZGktb2N0YWdyYW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm7kiOwogICAgfQoKICAgIC5tZGktb2N0YWdyYW0tZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwtCI7CiAgICB9CgogICAgLm1kaS1vY3RhZ3JhbS1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsLUiOwogICAgfQoKICAgIC5tZGktb2N0YWdyYW0tbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsLYiOwogICAgfQoKICAgIC5tZGktb2N0YWdyYW0tbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwtyI7CiAgICB9CgogICAgLm1kaS1vY3RhZ3JhbS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ21IjsKICAgIH0KCiAgICAubWRpLW9jdGFncmFtLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsLgiOwogICAgfQoKICAgIC5tZGktb2N0YWdyYW0tcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbC5IjsKICAgIH0KCiAgICAubWRpLW9jdGFoZWRyb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZAiOwogICAgfQoKICAgIC5tZGktb2N0YWhlZHJvbi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZEiOwogICAgfQoKICAgIC5tZGktb2Rub2tsYXNzbmlraTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPhSI7CiAgICB9CgogICAgLm1kaS1vZmZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GImyI7CiAgICB9CgogICAgLm1kaS1vZmZpY2UtYnVpbGRpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppEiOwogICAgfQoKICAgIC5tZGktb2ZmaWNlLWJ1aWxkaW5nLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GliSI7CiAgICB9CgogICAgLm1kaS1vZmZpY2UtYnVpbGRpbmctY29nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpYoiOwogICAgfQoKICAgIC5tZGktb2ZmaWNlLWJ1aWxkaW5nLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUoCI7CiAgICB9CgogICAgLm1kaS1vZmZpY2UtYnVpbGRpbmctbWFya2VyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlKEiOwogICAgfQoKICAgIC5tZGktb2ZmaWNlLWJ1aWxkaW5nLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6qIjsKICAgIH0KCiAgICAubWRpLW9mZmljZS1idWlsZGluZy1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6rIjsKICAgIH0KCiAgICAubWRpLW9mZmljZS1idWlsZGluZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSfIjsKICAgIH0KCiAgICAubWRpLW9mZmljZS1idWlsZGluZy1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6oIjsKICAgIH0KCiAgICAubWRpLW9mZmljZS1idWlsZGluZy1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrqkiOwogICAgfQoKICAgIC5tZGktb2ZmaWNlLWJ1aWxkaW5nLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GurCI7CiAgICB9CgogICAgLm1kaS1vZmZpY2UtYnVpbGRpbmctcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrq0iOwogICAgfQoKICAgIC5tZGktb2lsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+HIjsKICAgIH0KCiAgICAubWRpLW9pbC1sYW1wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyZIjsKICAgIH0KCiAgICAubWRpLW9pbC1sZXZlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBkyI7CiAgICB9CgogICAgLm1kaS1vaWwtdGVtcGVyYXR1cmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv7giOwogICAgfQoKICAgIC5tZGktb206YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpbMiOwogICAgfQoKICAgIC5tZGktb21lZ2E6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj4kiOwogICAgfQoKICAgIC5tZGktb25lLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6tIjsKICAgIH0KCiAgICAubWRpLW9uZXBhc3N3b3JkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKBIjsKICAgIH0KCiAgICAubWRpLW9wYWNpdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl4wiOwogICAgfQoKICAgIC5tZGktb3Blbi1pbi1hcHA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj4siOwogICAgfQoKICAgIC5tZGktb3Blbi1pbi1uZXc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj4wiOwogICAgfQoKICAgIC5tZGktb3Blbi1zb3VyY2UtaW5pdGlhdGl2ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuriI7CiAgICB9CgogICAgLm1kaS1vcGVuaWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj40iOwogICAgfQoKICAgIC5tZGktb3BlcmE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj44iOwogICAgfQoKICAgIC5tZGktb3JiaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwgJgiOwogICAgfQoKICAgIC5tZGktb3JiaXQtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXmyI7CiAgICB9CgogICAgLm1kaS1vcmRlci1hbHBoYWJldGljYWwtYXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIiNIjsKICAgIH0KCiAgICAubWRpLW9yZGVyLWFscGhhYmV0aWNhbC1kZXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSHIjsKICAgIH0KCiAgICAubWRpLW9yZGVyLWJvb2wtYXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIq+IjsKICAgIH0KCiAgICAubWRpLW9yZGVyLWJvb2wtYXNjZW5kaW5nLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpo8iOwogICAgfQoKICAgIC5tZGktb3JkZXItYm9vbC1kZXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6EIjsKICAgIH0KCiAgICAubWRpLW9yZGVyLWJvb2wtZGVzY2VuZGluZy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaQIjsKICAgIH0KCiAgICAubWRpLW9yZGVyLW51bWVyaWMtYXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJWFIjsKICAgIH0KCiAgICAubWRpLW9yZGVyLW51bWVyaWMtZGVzY2VuZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CVhiI7CiAgICB9CgogICAgLm1kaS1vcmlnaW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrYMiOwogICAgfQoKICAgIC5tZGktb3JuYW1lbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj48iOwogICAgfQoKICAgIC5tZGktb3JuYW1lbnQtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPkCI7CiAgICB9CgogICAgLm1kaS1vdXRkb29yLWxhbXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgZQiOwogICAgfQoKICAgIC5tZGktb3ZlcnNjYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgIUiOwogICAgfQoKICAgIC5tZGktb3dsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+SIjsKICAgIH0KCiAgICAubWRpLXBhYy1tYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrq8iOwogICAgfQoKICAgIC5tZGktcGFja2FnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPkyI7CiAgICB9CgogICAgLm1kaS1wYWNrYWdlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2RIjsKICAgIH0KCiAgICAubWRpLXBhY2thZ2UtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPlCI7CiAgICB9CgogICAgLm1kaS1wYWNrYWdlLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+VIjsKICAgIH0KCiAgICAubWRpLXBhY2thZ2UtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPliI7CiAgICB9CgogICAgLm1kaS1wYWNrYWdlLXZhcmlhbnQtY2xvc2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+XIjsKICAgIH0KCiAgICAubWRpLXBhY2thZ2UtdmFyaWFudC1jbG9zZWQtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrZIiOwogICAgfQoKICAgIC5tZGktcGFja2FnZS12YXJpYW50LWNsb3NlZC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnlCI7CiAgICB9CgogICAgLm1kaS1wYWNrYWdlLXZhcmlhbnQtY2xvc2VkLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp5UiOwogICAgfQoKICAgIC5tZGktcGFja2FnZS12YXJpYW50LWNsb3NlZC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp5YiOwogICAgfQoKICAgIC5tZGktcGFja2FnZS12YXJpYW50LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeXIjsKICAgIH0KCiAgICAubWRpLXBhY2thZ2UtdmFyaWFudC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaeYIjsKICAgIH0KCiAgICAubWRpLXBhY2thZ2UtdmFyaWFudC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp5kiOwogICAgfQoKICAgIC5tZGktcGFnZS1maXJzdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYgCI7CiAgICB9CgogICAgLm1kaS1wYWdlLWxhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmIEiOwogICAgfQoKICAgIC5tZGktcGFnZS1sYXlvdXQtYm9keTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbuiI7CiAgICB9CgogICAgLm1kaS1wYWdlLWxheW91dC1mb290ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm7siOwogICAgfQoKICAgIC5tZGktcGFnZS1sYXlvdXQtaGVhZGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJu8IjsKICAgIH0KCiAgICAubWRpLXBhZ2UtbGF5b3V0LWhlYWRlci1mb290ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvb8iOwogICAgfQoKICAgIC5tZGktcGFnZS1sYXlvdXQtc2lkZWJhci1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJu9IjsKICAgIH0KCiAgICAubWRpLXBhZ2UtbGF5b3V0LXNpZGViYXItcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwm74iOwogICAgfQoKICAgIC5tZGktcGFnZS1uZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6wIjsKICAgIH0KCiAgICAubWRpLXBhZ2UtbmV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6xIjsKICAgIH0KCiAgICAubWRpLXBhZ2UtcHJldmlvdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrrIiOwogICAgfQoKICAgIC5tZGktcGFnZS1wcmV2aW91cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6zIjsKICAgIH0KCiAgICAubWRpLXBhaWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkJciOwogICAgfQoKICAgIC5tZGktcGFpbC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQtyI7CiAgICB9CgogICAgLm1kaS1wYWlsLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkLwiOwogICAgfQoKICAgIC5tZGktcGFpbC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkLkiOwogICAgfQoKICAgIC5tZGktcGFpbC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQviI7CiAgICB9CgogICAgLm1kaS1wYWlsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkLoiOwogICAgfQoKICAgIC5tZGktcGFpbC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZC2IjsKICAgIH0KCiAgICAubWRpLXBhaWwtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZC7IjsKICAgIH0KCiAgICAubWRpLXBhaWwtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZC4IjsKICAgIH0KCiAgICAubWRpLXBhaWwtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkL0iOwogICAgfQoKICAgIC5tZGktcGFsZXR0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPmCI7CiAgICB9CgogICAgLm1kaS1wYWxldHRlLWFkdmFuY2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+ZIjsKICAgIH0KCiAgICAubWRpLXBhbGV0dGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4jCI7CiAgICB9CgogICAgLm1kaS1wYWxldHRlLXN3YXRjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CitSI7CiAgICB9CgogICAgLm1kaS1wYWxldHRlLXN3YXRjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2cIjsKICAgIH0KCiAgICAubWRpLXBhbGV0dGUtc3dhdGNoLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZoiOwogICAgfQoKICAgIC5tZGktcGFsbS10cmVlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGVIjsKICAgIH0KCiAgICAubWRpLXBhbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CutCI7CiAgICB9CgogICAgLm1kaS1wYW4tYm90dG9tLWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrrUiOwogICAgfQoKICAgIC5tZGktcGFuLWJvdHRvbS1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CutiI7CiAgICB9CgogICAgLm1kaS1wYW4tZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CutyI7CiAgICB9CgogICAgLm1kaS1wYW4taG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuuCI7CiAgICB9CgogICAgLm1kaS1wYW4tbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuuSI7CiAgICB9CgogICAgLm1kaS1wYW4tcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrroiOwogICAgfQoKICAgIC5tZGktcGFuLXRvcC1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK67IjsKICAgIH0KCiAgICAubWRpLXBhbi10b3AtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrrwiOwogICAgfQoKICAgIC5tZGktcGFuLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK69IjsKICAgIH0KCiAgICAubWRpLXBhbi12ZXJ0aWNhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CuviI7CiAgICB9CgogICAgLm1kaS1wYW5kYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPmiI7CiAgICB9CgogICAgLm1kaS1wYW5kb3JhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+bIjsKICAgIH0KCiAgICAubWRpLXBhbm9yYW1hOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+cIjsKICAgIH0KCiAgICAubWRpLXBhbm9yYW1hLWZpc2hleWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj50iOwogICAgfQoKICAgIC5tZGktcGFub3JhbWEtaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkqCI7CiAgICB9CgogICAgLm1kaS1wYW5vcmFtYS1ob3Jpem9udGFsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj54iOwogICAgfQoKICAgIC5tZGktcGFub3JhbWEtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmjCI7CiAgICB9CgogICAgLm1kaS1wYW5vcmFtYS1zcGhlcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpo0iOwogICAgfQoKICAgIC5tZGktcGFub3JhbWEtc3BoZXJlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpo4iOwogICAgfQoKICAgIC5tZGktcGFub3JhbWEtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmjyI7CiAgICB9CgogICAgLm1kaS1wYW5vcmFtYS12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxppAiOwogICAgfQoKICAgIC5tZGktcGFub3JhbWEtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpKkiOwogICAgfQoKICAgIC5tZGktcGFub3JhbWEtdmVydGljYWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPnyI7CiAgICB9CgogICAgLm1kaS1wYW5vcmFtYS13aWRlLWFuZ2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWfIjsKICAgIH0KCiAgICAubWRpLXBhbm9yYW1hLXdpZGUtYW5nbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPoCI7CiAgICB9CgogICAgLm1kaS1wYXBlci1jdXQtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj6EiOwogICAgfQoKICAgIC5tZGktcGFwZXItcm9sbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFlyI7CiAgICB9CgogICAgLm1kaS1wYXBlci1yb2xsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhZgiOwogICAgfQoKICAgIC5tZGktcGFwZXJjbGlwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+iIjsKICAgIH0KCiAgICAubWRpLXBhcGVyY2xpcC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrhiI7CiAgICB9CgogICAgLm1kaS1wYXBlcmNsaXAtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GnmiI7CiAgICB9CgogICAgLm1kaS1wYXBlcmNsaXAtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq4ciOwogICAgfQoKICAgIC5tZGktcGFwZXJjbGlwLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GriCI7CiAgICB9CgogICAgLm1kaS1wYXBlcmNsaXAtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GriSI7CiAgICB9CgogICAgLm1kaS1wYXBlcmNsaXAtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauKIjsKICAgIH0KCiAgICAubWRpLXBhcmFjaHV0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CytCI7CiAgICB9CgogICAgLm1kaS1wYXJhY2h1dGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CytSI7CiAgICB9CgogICAgLm1kaS1wYXJhZ2xpZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdhSI7CiAgICB9CgogICAgLm1kaS1wYXJraW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+jIjsKICAgIH0KCiAgICAubWRpLXBhcnR5LXBvcHBlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBliI7CiAgICB9CgogICAgLm1kaS1wYXNzcG9ydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfoyI7CiAgICB9CgogICAgLm1kaS1wYXNzcG9ydC1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyuCI7CiAgICB9CgogICAgLm1kaS1wYXNzcG9ydC1iaW9tZXRyaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6EiOwogICAgfQoKICAgIC5tZGktcGFzc3BvcnQtY2FuY2VsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbK5IjsKICAgIH0KCiAgICAubWRpLXBhc3Nwb3J0LWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbK6IjsKICAgIH0KCiAgICAubWRpLXBhc3Nwb3J0LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbK7IjsKICAgIH0KCiAgICAubWRpLXBhc3Nwb3J0LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsrwiOwogICAgfQoKICAgIC5tZGktcGFzc3BvcnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbK9IjsKICAgIH0KCiAgICAubWRpLXBhc3RhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWgIjsKICAgIH0KCiAgICAubWRpLXBhdGlvLWhlYXRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+gCI7CiAgICB9CgogICAgLm1kaS1wYXRyZW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKCIjsKICAgIH0KCiAgICAubWRpLXBhdXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+kIjsKICAgIH0KCiAgICAubWRpLXBhdXNlLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCvCI7CiAgICB9CgogICAgLm1kaS1wYXVzZS1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtuiI7CiAgICB9CgogICAgLm1kaS1wYXVzZS1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj6UiOwogICAgfQoKICAgIC5tZGktcGF1c2UtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj6YiOwogICAgfQoKICAgIC5tZGktcGF1c2Utb2N0YWdvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPpyI7CiAgICB9CgogICAgLm1kaS1wYXVzZS1vY3RhZ29uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj6giOwogICAgfQoKICAgIC5tZGktcGF3OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+pIjsKICAgIH0KCiAgICAubWRpLXBhdy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmZciOwogICAgfQoKICAgIC5tZGktcGF3LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm2IjsKICAgIH0KCiAgICAubWRpLXBhdy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm1IjsKICAgIH0KCiAgICAubWRpLXBlYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKEIjsKICAgIH0KCiAgICAubWRpLXBlYW51dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/vCI7CiAgICB9CgogICAgLm1kaS1wZWFudXQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+9IjsKICAgIH0KCiAgICAubWRpLXBlYW51dC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/vyI7CiAgICB9CgogICAgLm1kaS1wZWFudXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/viI7CiAgICB9CgogICAgLm1kaS1wZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj6oiOwogICAgfQoKICAgIC5tZGktcGVuLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6IiOwogICAgfQoKICAgIC5tZGktcGVuLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLejIjsKICAgIH0KCiAgICAubWRpLXBlbi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6QiOwogICAgfQoKICAgIC5tZGktcGVuLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6UiOwogICAgfQoKICAgIC5tZGktcGVuLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3piI7CiAgICB9CgogICAgLm1kaS1wZW5jaWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj6siOwogICAgfQoKICAgIC5tZGktcGVuY2lsLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPrCI7CiAgICB9CgogICAgLm1kaS1wZW5jaWwtYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWEIjsKICAgIH0KCiAgICAubWRpLXBlbmNpbC1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFhSI7CiAgICB9CgogICAgLm1kaS1wZW5jaWwtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj60iOwogICAgfQoKICAgIC5tZGktcGVuY2lsLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbvyI7CiAgICB9CgogICAgLm1kaS1wZW5jaWwtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnbYiOwogICAgfQoKICAgIC5tZGktcGVuY2lsLWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj64iOwogICAgfQoKICAgIC5tZGktcGVuY2lsLWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3pyI7CiAgICB9CgogICAgLm1kaS1wZW5jaWwtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6giOwogICAgfQoKICAgIC5tZGktcGVuY2lsLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6kiOwogICAgfQoKICAgIC5tZGktcGVuY2lsLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPryI7CiAgICB9CgogICAgLm1kaS1wZW5jaWwtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6oiOwogICAgfQoKICAgIC5tZGktcGVuY2lsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsrYiOwogICAgfQoKICAgIC5tZGktcGVuY2lsLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt6siOwogICAgfQoKICAgIC5tZGktcGVuY2lsLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3rCI7CiAgICB9CgogICAgLm1kaS1wZW5jaWwtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLetIjsKICAgIH0KCiAgICAubWRpLXBlbmNpbC1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3riI7CiAgICB9CgogICAgLm1kaS1wZW5jaWwtcnVsZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjZMiOwogICAgfQoKICAgIC5tZGktcGVuY2lsLXJ1bGVyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsJEiOwogICAgfQoKICAgIC5tZGktcGVuZ3VpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7gCI7CiAgICB9CgogICAgLm1kaS1wZW50YWdvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcgSI7CiAgICB9CgogICAgLm1kaS1wZW50YWdvbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyAIjsKICAgIH0KCiAgICAubWRpLXBlbnRhZ3JhbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZpyI7CiAgICB9CgogICAgLm1kaS1wZXJjZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+wIjsKICAgIH0KCiAgICAubWRpLXBlcmNlbnQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaiCIjsKICAgIH0KCiAgICAubWRpLXBlcmNlbnQtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqIMiOwogICAgfQoKICAgIC5tZGktcGVyY2VudC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqIQiOwogICAgfQoKICAgIC5tZGktcGVyY2VudC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GohSI7CiAgICB9CgogICAgLm1kaS1wZXJjZW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxibgiOwogICAgfQoKICAgIC5tZGktcGVyaW9kaWMtdGFibGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOworYiOwogICAgfQoKICAgIC5tZGktcGVyc3BlY3RpdmUtbGVzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0oyI7CiAgICB9CgogICAgLm1kaS1wZXJzcGVjdGl2ZS1tb3JlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSkIjsKICAgIH0KCiAgICAubWRpLXBoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ+FIjsKICAgIH0KCiAgICAubWRpLXBob25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+yIjsKICAgIH0KCiAgICAubWRpLXBob25lLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyaIjsKICAgIH0KCiAgICAubWRpLXBob25lLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxho4iOwogICAgfQoKICAgIC5tZGktcGhvbmUtYmx1ZXRvb3RoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+zIjsKICAgIH0KCiAgICAubWRpLXBob25lLWJsdWV0b290aC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaPIjsKICAgIH0KCiAgICAubWRpLXBob25lLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCvCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1jYW5jZWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGkCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGqSI7CiAgICB9CgogICAgLm1kaS1waG9uZS1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaqIjsKICAgIH0KCiAgICAubWRpLXBob25lLWNsYXNzaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmIIiOwogICAgfQoKICAgIC5tZGktcGhvbmUtY2xhc3NpYy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxibkiOwogICAgfQoKICAgIC5tZGktcGhvbmUtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp5siOwogICAgfQoKICAgIC5tZGktcGhvbmUtZGlhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVmSI7CiAgICB9CgogICAgLm1kaS1waG9uZS1kaWFsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlZoiOwogICAgfQoKICAgIC5tZGktcGhvbmUtZm9yd2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPtCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1mb3J3YXJkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhpEiOwogICAgfQoKICAgIC5tZGktcGhvbmUtaGFuZ3VwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+1IjsKICAgIH0KCiAgICAubWRpLXBob25lLWhhbmd1cC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaSIjsKICAgIH0KCiAgICAubWRpLXBob25lLWluLXRhbGs6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj7YiOwogICAgfQoKICAgIC5tZGktcGhvbmUtaW4tdGFsay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYaCIjsKICAgIH0KCiAgICAubWRpLXBob25lLWluY29taW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+3IjsKICAgIH0KCiAgICAubWRpLXBob25lLWluY29taW5nLW91dGdvaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsay/IjsKICAgIH0KCiAgICAubWRpLXBob25lLWluY29taW5nLW91dGdvaW5nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrYAiOwogICAgfQoKICAgIC5tZGktcGhvbmUtaW5jb21pbmctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGkyI7CiAgICB9CgogICAgLm1kaS1waG9uZS1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+4IjsKICAgIH0KCiAgICAubWRpLXBob25lLWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGlCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1sb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj7kiOwogICAgfQoKICAgIC5tZGktcGhvbmUtbG9nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhpUiOwogICAgfQoKICAgIC5tZGktcGhvbmUtbWVzc2FnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGliI7CiAgICB9CgogICAgLm1kaS1waG9uZS1tZXNzYWdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhpciOwogICAgfQoKICAgIC5tZGktcGhvbmUtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmZgiOwogICAgfQoKICAgIC5tZGktcGhvbmUtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGmCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1taXNzZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj7oiOwogICAgfQoKICAgIC5tZGktcGhvbmUtbWlzc2VkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhqUiOwogICAgfQoKICAgIC5tZGktcGhvbmUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLevIjsKICAgIH0KCiAgICAubWRpLXBob25lLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYamIjsKICAgIH0KCiAgICAubWRpLXBob25lLW91dGdvaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI+7IjsKICAgIH0KCiAgICAubWRpLXBob25lLW91dGdvaW5nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhpkiOwogICAgfQoKICAgIC5tZGktcGhvbmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3sCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1wYXVzZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj7wiOwogICAgfQoKICAgIC5tZGktcGhvbmUtcGF1c2VkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhpoiOwogICAgfQoKICAgIC5tZGktcGhvbmUtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZmSI7CiAgICB9CgogICAgLm1kaS1waG9uZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhpsiOwogICAgfQoKICAgIC5tZGktcGhvbmUtcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmkyI7CiAgICB9CgogICAgLm1kaS1waG9uZS1yZWZyZXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxppQiOwogICAgfQoKICAgIC5tZGktcGhvbmUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSvIjsKICAgIH0KCiAgICAubWRpLXBob25lLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSwIjsKICAgIH0KCiAgICAubWRpLXBob25lLXJldHVybjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgryI7CiAgICB9CgogICAgLm1kaS1waG9uZS1yZXR1cm4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGnCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1yaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYarIjsKICAgIH0KCiAgICAubWRpLXBob25lLXJpbmctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGrCI7CiAgICB9CgogICAgLm1kaS1waG9uZS1yb3RhdGUtbGFuZHNjYXBlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKFIjsKICAgIH0KCiAgICAubWRpLXBob25lLXJvdGF0ZS1wb3J0cmFpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CihiI7CiAgICB9CgogICAgLm1kaS1waG9uZS1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CPvSI7CiAgICB9CgogICAgLm1kaS1waG9uZS1zZXR0aW5ncy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYadIjsKICAgIH0KCiAgICAubWRpLXBob25lLXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxppUiOwogICAgfQoKICAgIC5tZGktcGhvbmUtc3luYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaaWIjsKICAgIH0KCiAgICAubWRpLXBob25lLXZvaXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj74iOwogICAgfQoKICAgIC5tZGktcGk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwj78iOwogICAgfQoKICAgIC5tZGktcGktYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCAIjsKICAgIH0KCiAgICAubWRpLXBpLWhvbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt7EiOwogICAgfQoKICAgIC5tZGktcGlhbm86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmb0iOwogICAgfQoKICAgIC5tZGktcGlhbm8tb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqYIjsKICAgIH0KCiAgICAubWRpLXBpY2theGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOworciOwogICAgfQoKICAgIC5tZGktcGljdHVyZS1pbi1waWN0dXJlLWJvdHRvbS1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5lyI7CiAgICB9CgogICAgLm1kaS1waWN0dXJlLWluLXBpY3R1cmUtYm90dG9tLXJpZ2h0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuZgiOwogICAgfQoKICAgIC5tZGktcGljdHVyZS1pbi1waWN0dXJlLXRvcC1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5mSI7CiAgICB9CgogICAgLm1kaS1waWN0dXJlLWluLXBpY3R1cmUtdG9wLXJpZ2h0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuZoiOwogICAgfQoKICAgIC5tZGktcGllcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CihyI7CiAgICB9CgogICAgLm1kaS1waWVyLWNyYW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKIIjsKICAgIH0KCiAgICAubWRpLXBpZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQgSI7CiAgICB9CgogICAgLm1kaS1waWctdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAhiI7CiAgICB9CgogICAgLm1kaS1waWctdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm4IjsKICAgIH0KCiAgICAubWRpLXBpZ2d5LWJhbms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgIciOwogICAgfQoKICAgIC5tZGktcGlnZ3ktYmFuay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm5IjsKICAgIH0KCiAgICAubWRpLXBpbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkIIiOwogICAgfQoKICAgIC5tZGktcGlsbC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtjCI7CiAgICB9CgogICAgLm1kaS1waWxsLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpnCI7CiAgICB9CgogICAgLm1kaS1waWxsYXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnIIiOwogICAgfQoKICAgIC5tZGktcGluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCDIjsKICAgIH0KCiAgICAubWRpLXBpbi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkIQiOwogICAgfQoKICAgIC5tZGktcGluLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSwIjsKICAgIH0KCiAgICAubWRpLXBpbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSxIjsKICAgIH0KCiAgICAubWRpLXBpbmUtdHJlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQhSI7CiAgICB9CgogICAgLm1kaS1waW5lLXRyZWUtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCGIjsKICAgIH0KCiAgICAubWRpLXBpbmUtdHJlZS1maXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCaIjsKICAgIH0KCiAgICAubWRpLXBpbmUtdHJlZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGzIjsKICAgIH0KCiAgICAubWRpLXBpbmUtdHJlZS12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsbQiOwogICAgfQoKICAgIC5tZGktcGludGVyZXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCHIjsKICAgIH0KCiAgICAubWRpLXBpbndoZWVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuVIjsKICAgIH0KCiAgICAubWRpLXBpbndoZWVsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq5YiOwogICAgfQoKICAgIC5tZGktcGlwZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfpSI7CiAgICB9CgogICAgLm1kaS1waXBlLWRpc2Nvbm5lY3RlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfpiI7CiAgICB9CgogICAgLm1kaS1waXBlLWxlYWs6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwookiOwogICAgfQoKICAgIC5tZGktcGlwZS12YWx2ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhjSI7CiAgICB9CgogICAgLm1kaS1waXBlLXdyZW5jaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNlCI7CiAgICB9CgogICAgLm1kaS1waXJhdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqIgiOwogICAgfQoKICAgIC5tZGktcGlzdG9sOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyDIjsKICAgIH0KCiAgICAubWRpLXBpc3RvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CiiiI7CiAgICB9CgogICAgLm1kaS1waXRjaGZvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlZMiOwogICAgfQoKICAgIC5tZGktcGl6emE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkIkiOwogICAgfQoKICAgIC5tZGktcGxhbmUtY2FyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsau/IjsKICAgIH0KCiAgICAubWRpLXBsYW5lLXRyYWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayAIjsKICAgIH0KCiAgICAubWRpLXBsYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkIoiOwogICAgfQoKICAgIC5tZGktcGxheS1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiboiOwogICAgfQoKICAgIC5tZGktcGxheS1ib3gtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbC6IjsKICAgIH0KCiAgICAubWRpLXBsYXktYm94LWxvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqJYiOwogICAgfQoKICAgIC5tZGktcGxheS1ib3gtbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaiXIjsKICAgIH0KCiAgICAubWRpLXBsYXktYm94LWxvY2stb3Blbi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaiYIjsKICAgIH0KCiAgICAubWRpLXBsYXktYm94LWxvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GomSI7CiAgICB9CgogICAgLm1kaS1wbGF5LWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0mSI7CiAgICB9CgogICAgLm1kaS1wbGF5LWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+mIjsKICAgIH0KCiAgICAubWRpLXBsYXktYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkIsiOwogICAgfQoKICAgIC5tZGktcGxheS1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkIwiOwogICAgfQoKICAgIC5tZGktcGxheS1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQjSI7CiAgICB9CgogICAgLm1kaS1wbGF5LW5ldHdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoosiOwogICAgfQoKICAgIC5tZGktcGxheS1uZXR3b3JrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsrciOwogICAgfQoKICAgIC5tZGktcGxheS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLybIjsKICAgIH0KCiAgICAubWRpLXBsYXktcGF1c2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkI4iOwogICAgfQoKICAgIC5tZGktcGxheS1wcm90ZWN0ZWQtY29udGVudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQjyI7CiAgICB9CgogICAgLm1kaS1wbGF5LXNwZWVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKO/IjsKICAgIH0KCiAgICAubWRpLXBsYXlsaXN0LWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeHIjsKICAgIH0KCiAgICAubWRpLXBsYXlsaXN0LWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpIAiOwogICAgfQoKICAgIC5tZGktcGxheWxpc3QtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkJAiOwogICAgfQoKICAgIC5tZGktcGxheWxpc3QtbXVzaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsrgiOwogICAgfQoKICAgIC5tZGktcGxheWxpc3QtbXVzaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyuSI7CiAgICB9CgogICAgLm1kaS1wbGF5bGlzdC1wbGF5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCRIjsKICAgIH0KCiAgICAubWRpLXBsYXlsaXN0LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkJIiOwogICAgfQoKICAgIC5tZGktcGxheWxpc3QtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCTIjsKICAgIH0KCiAgICAubWRpLXBsYXlsaXN0LXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt7IiOwogICAgfQoKICAgIC5tZGktcGxleDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CauiI7CiAgICB9CgogICAgLm1kaS1wbGllcnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpqQiOwogICAgfQoKICAgIC5tZGktcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQlSI7CiAgICB9CgogICAgLm1kaS1wbHVzLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQliI7CiAgICB9CgogICAgLm1kaS1wbHVzLWJveC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMtCI7CiAgICB9CgogICAgLm1kaS1wbHVzLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWDIjsKICAgIH0KCiAgICAubWRpLXBsdXMtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnIQiOwogICAgfQoKICAgIC5tZGktcGx1cy1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkJciOwogICAgfQoKICAgIC5tZGktcGx1cy1jaXJjbGUtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwjYwiOwogICAgfQoKICAgIC5tZGktcGx1cy1jaXJjbGUtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQmCI7CiAgICB9CgogICAgLm1kaS1wbHVzLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCZIjsKICAgIH0KCiAgICAubWRpLXBsdXMtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpnSI7CiAgICB9CgogICAgLm1kaS1wbHVzLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpniI7CiAgICB9CgogICAgLm1kaS1wbHVzLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaSIjsKICAgIH0KCiAgICAubWRpLXBsdXMtbWludXMtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaTIjsKICAgIH0KCiAgICAubWRpLXBsdXMtbWludXMtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTiSI7CiAgICB9CgogICAgLm1kaS1wbHVzLW5ldHdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkJoiOwogICAgfQoKICAgIC5tZGktcGx1cy1uZXR3b3JrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsroiOwogICAgfQoKICAgIC5tZGktcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyFIjsKICAgIH0KCiAgICAubWRpLXBsdXMtdGhpY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh6wiOwogICAgfQoKICAgIC5tZGktcG9ja2V0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbK+IjsKICAgIH0KCiAgICAubWRpLXBvZGNhc3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppQiOwogICAgfQoKICAgIC5tZGktcG9kaXVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSlIjsKICAgIH0KCiAgICAubWRpLXBvZGl1bS1icm9uemU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtKYiOwogICAgfQoKICAgIC5tZGktcG9kaXVtLWdvbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtKciOwogICAgfQoKICAgIC5tZGktcG9kaXVtLXNpbHZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0qCI7CiAgICB9CgogICAgLm1kaS1wb2ludC1vZi1zYWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaSIjsKICAgIH0KCiAgICAubWRpLXBva2ViYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCdIjsKICAgIH0KCiAgICAubWRpLXBva2Vtb24tZ286YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqIkiOwogICAgfQoKICAgIC5tZGktcG9rZXItY2hpcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgsCI7CiAgICB9CgogICAgLm1kaS1wb2xhcm9pZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQniI7CiAgICB9CgogICAgLm1kaS1wb2xpY2UtYmFkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhaciOwogICAgfQoKICAgIC5tZGktcG9saWNlLWJhZGdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhagiOwogICAgfQoKICAgIC5tZGktcG9saWNlLXN0YXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoLkiOwogICAgfQoKICAgIC5tZGktcG9sbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQnyI7CiAgICB9CgogICAgLm1kaS1wb2xvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZODIjsKICAgIH0KCiAgICAubWRpLXBvbHltZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkKEiOwogICAgfQoKICAgIC5tZGktcG9vbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYhiI7CiAgICB9CgogICAgLm1kaS1wb29sLXRoZXJtb21ldGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamfIjsKICAgIH0KCiAgICAubWRpLXBvcGNvcm46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkKIiOwogICAgfQoKICAgIC5tZGktcG9zdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GAiCI7CiAgICB9CgogICAgLm1kaS1wb3N0LWxhbXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqaAiOwogICAgfQoKICAgIC5tZGktcG9zdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYCJIjsKICAgIH0KCiAgICAubWRpLXBvc3RhZ2Utc3RhbXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsrsiOwogICAgfQoKICAgIC5tZGktcG90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIulIjsKICAgIH0KCiAgICAubWRpLXBvdC1taXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmZsiOwogICAgfQoKICAgIC5tZGktcG90LW1peC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJm3IjsKICAgIH0KCiAgICAubWRpLXBvdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIu/IjsKICAgIH0KCiAgICAubWRpLXBvdC1zdGVhbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZmiI7CiAgICB9CgogICAgLm1kaS1wb3Qtc3RlYW0tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CMpiI7CiAgICB9CgogICAgLm1kaS1wb3VuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQoyI7CiAgICB9CgogICAgLm1kaS1wb3VuZC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkKQiOwogICAgfQoKICAgIC5tZGktcG91bmQtYm94LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhb8iOwogICAgfQoKICAgIC5tZGktcG93ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkKUiOwogICAgfQoKICAgIC5tZGktcG93ZXItY3ljbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpIEiOwogICAgfQoKICAgIC5tZGktcG93ZXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSCIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSDIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXBsdWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmqUiOwogICAgfQoKICAgIC5tZGktcG93ZXItcGx1Zy1iYXR0ZXJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbC7IjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXBsdWctYmF0dGVyeS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbC8IjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXBsdWctb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqmIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXBsdWctb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkKQiOwogICAgfQoKICAgIC5tZGktcG93ZXItcGx1Zy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZClIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCmIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXNsZWVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSEIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXNvY2tldDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQpyI7CiAgICB9CgogICAgLm1kaS1wb3dlci1zb2NrZXQtYXU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpIUiOwogICAgfQoKICAgIC5tZGktcG93ZXItc29ja2V0LWNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6zIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXNvY2tldC1kZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEhyI7CiAgICB9CgogICAgLm1kaS1wb3dlci1zb2NrZXQtZXU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn6ciOwogICAgfQoKICAgIC5tZGktcG93ZXItc29ja2V0LWZyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSIIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXNvY2tldC1pdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTvyI7CiAgICB9CgogICAgLm1kaS1wb3dlci1zb2NrZXQtanA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIkiOwogICAgfQoKICAgIC5tZGktcG93ZXItc29ja2V0LXVrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+oIjsKICAgIH0KCiAgICAubWRpLXBvd2VyLXNvY2tldC11czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfqSI7CiAgICB9CgogICAgLm1kaS1wb3dlci1zdGFuZGJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSGIjsKICAgIH0KCiAgICAubWRpLXBvd2Vyc2hlbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqIoiOwogICAgfQoKICAgIC5tZGktcHJlc2NyaXB0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyGIjsKICAgIH0KCiAgICAubWRpLXByZXNlbnRhdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQqCI7CiAgICB9CgogICAgLm1kaS1wcmVzZW50YXRpb24tcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQqSI7CiAgICB9CgogICAgLm1kaS1wcmV0emVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWiIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkKoiOwogICAgfQoKICAgIC5tZGktcHJpbnRlci0zZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQqyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLTNkLW5venpsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5myI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLTNkLW5venpsZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHgCI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLTNkLW5venpsZS1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeBIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItM2Qtbm96emxlLWhlYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxorgiOwogICAgfQoKICAgIC5tZGktcHJpbnRlci0zZC1ub3p6bGUtaGVhdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaK5IjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItM2Qtbm96emxlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsmSI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLTNkLW5venpsZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsmiI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLTNkLW5venpsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmcIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItM2Qtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayOIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkKwiOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFhiI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRmCI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5nSI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6FIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GehiI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBlyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuvCI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa69IjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuviI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1jYW5jZWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuvyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvgCI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+BIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvgiI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1jb2ctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvgyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+EIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLWVkaXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvhSI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvhiI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+HIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLW5ldHdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr4giOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3MtbmV0d29yay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+JIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GviiI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GviyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+MIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLXBhdXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+NIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLXBhdXNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr44iOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3MtcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvjyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1wbGF5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr5AiOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3MtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvkSI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr5IiOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3MtcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvkyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy1yZWZyZXNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr5QiOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3MtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+VIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+WIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr5ciOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3Mtc3Rhci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+YIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLXN0b3A6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr5kiOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3Mtc3RvcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+aIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxr5siOwogICAgfQoKICAgIC5tZGktcHJpbnRlci1wb3Mtc3luYy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa+cIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItcG9zLXdyZW5jaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvnSI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXBvcy13cmVuY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GvniI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRlyI7CiAgICB9CgogICAgLm1kaS1wcmludGVyLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyHIjsKICAgIH0KCiAgICAubWRpLXByaW50ZXItd2lyZWxlc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqIsiOwogICAgfQoKICAgIC5tZGktcHJpb3JpdHktaGlnaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYgyI7CiAgICB9CgogICAgLm1kaS1wcmlvcml0eS1sb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmIQiOwogICAgfQoKICAgIC5tZGktcHJvZmVzc2lvbmFsLWhleGFnb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkK0iOwogICAgfQoKICAgIC5tZGktcHJvZ3Jlc3MtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsrwiOwogICAgfQoKICAgIC5tZGktcHJvZ3Jlc3MtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppUiOwogICAgfQoKICAgIC5tZGktcHJvZ3Jlc3MtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppYiOwogICAgfQoKICAgIC5tZGktcHJvZ3Jlc3MtY2xvc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIoiOwogICAgfQoKICAgIC5tZGktcHJvZ3Jlc3MtZG93bmxvYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppciOwogICAgfQoKICAgIC5tZGktcHJvZ3Jlc3MtaGVscGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6iIjsKICAgIH0KCiAgICAubWRpLXByb2dyZXNzLXBlbmNpbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GehyI7CiAgICB9CgogICAgLm1kaS1wcm9ncmVzcy1xdWVzdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUoiI7CiAgICB9CgogICAgLm1kaS1wcm9ncmVzcy1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6IIjsKICAgIH0KCiAgICAubWRpLXByb2dyZXNzLXN0YXItZm91ci1wb2ludHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsL0iOwogICAgfQoKICAgIC5tZGktcHJvZ3Jlc3MtdGFnOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbSNIjsKICAgIH0KCiAgICAubWRpLXByb2dyZXNzLXVwbG9hZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmmCI7CiAgICB9CgogICAgLm1kaS1wcm9ncmVzcy13cmVuY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwsr0iOwogICAgfQoKICAgIC5tZGktcHJvamVjdG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCuIjsKICAgIH0KCiAgICAubWRpLXByb2plY3Rvci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqKMiOwogICAgfQoKICAgIC5tZGktcHJvamVjdG9yLXNjcmVlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQryI7CiAgICB9CgogICAgLm1kaS1wcm9qZWN0b3Itc2NyZWVuLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgjSI7CiAgICB9CgogICAgLm1kaS1wcm9qZWN0b3Itc2NyZWVuLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCOIjsKICAgIH0KCiAgICAubWRpLXByb2plY3Rvci1zY3JlZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcpCI7CiAgICB9CgogICAgLm1kaS1wcm9qZWN0b3Itc2NyZWVuLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoI8iOwogICAgfQoKICAgIC5tZGktcHJvamVjdG9yLXNjcmVlbi12YXJpYW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgkCI7CiAgICB9CgogICAgLm1kaS1wcm9qZWN0b3Itc2NyZWVuLXZhcmlhbnQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoJEiOwogICAgfQoKICAgIC5tZGktcHJvamVjdG9yLXNjcmVlbi12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoJIiOwogICAgfQoKICAgIC5tZGktcHJvcGFuZS10YW5rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2XIjsKICAgIH0KCiAgICAubWRpLXByb3BhbmUtdGFuay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2YIjsKICAgIH0KCiAgICAubWRpLXByb3RvY29sOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+YIjsKICAgIH0KCiAgICAubWRpLXB1Ymxpc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmqciOwogICAgfQoKICAgIC5tZGktcHVibGlzaC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpYUiOwogICAgfQoKICAgIC5tZGktcHVsc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkLAiOwogICAgfQoKICAgIC5tZGktcHVtcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQgiI7CiAgICB9CgogICAgLm1kaS1wdW1wLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsoiI7CiAgICB9CgogICAgLm1kaS1wdW1wa2luOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK6/IjsKICAgIH0KCiAgICAubWRpLXB1cnNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLycIjsKICAgIH0KCiAgICAubWRpLXB1cnNlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvJ0iOwogICAgfQoKICAgIC5tZGktcHV6emxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCxIjsKICAgIH0KCiAgICAubWRpLXB1enpsZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQpiI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQpyI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTkyI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOZIjsKICAgIH0KCiAgICAubWRpLXB1enpsZS1oZWFydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTlCI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtaGVhcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTmiI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk5EiOwogICAgfQoKICAgIC5tZGktcHV6emxlLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk5ciOwogICAgfQoKICAgIC5tZGktcHV6emxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqaYiOwogICAgfQoKICAgIC5tZGktcHV6emxlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk5AiOwogICAgfQoKICAgIC5tZGktcHV6emxlLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTliI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOSIjsKICAgIH0KCiAgICAubWRpLXB1enpsZS1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTmCI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtc3RhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTlSI7CiAgICB9CgogICAgLm1kaS1wdXp6bGUtc3Rhci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZObIjsKICAgIH0KCiAgICAubWRpLXB5cmFtaWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZIiOwogICAgfQoKICAgIC5tZGktcHlyYW1pZC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZMiOwogICAgfQoKICAgIC5tZGktcWk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppkiOwogICAgfQoKICAgIC5tZGktcXFjaGF0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJiFIjsKICAgIH0KCiAgICAubWRpLXFyY29kZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQsiI7CiAgICB9CgogICAgLm1kaS1xcmNvZGUtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CiuCI7CiAgICB9CgogICAgLm1kaS1xcmNvZGUtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhowiOwogICAgfQoKICAgIC5tZGktcXJjb2RlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhosiOwogICAgfQoKICAgIC5tZGktcXJjb2RlLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGjSI7CiAgICB9CgogICAgLm1kaS1xcmNvZGUtc2NhbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQsyI7CiAgICB9CgogICAgLm1kaS1xdWFkY29wdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJC0IjsKICAgIH0KCiAgICAubWRpLXF1YWxpdHktaGlnaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQtSI7CiAgICB9CgogICAgLm1kaS1xdWFsaXR5LWxvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CojCI7CiAgICB9CgogICAgLm1kaS1xdWFsaXR5LW1lZGl1bTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CojSI7CiAgICB9CgogICAgLm1kaS1xdWV1ZS1maXJzdC1pbi1sYXN0LW91dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GyryI7CiAgICB9CgogICAgLm1kaS1xdW9yYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0qSI7CiAgICB9CgogICAgLm1kaS1yYWJiaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpIciOwogICAgfQoKICAgIC5tZGktcmFiYml0LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqaEiOwogICAgfQoKICAgIC5tZGktcmFiYml0LXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpoiI7CiAgICB9CgogICAgLm1kaS1yYWNpbmctaGVsbWV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaTIjsKICAgIH0KCiAgICAubWRpLXJhY3F1ZXRiYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaUIjsKICAgIH0KCiAgICAubWRpLXJhZGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJC3IjsKICAgIH0KCiAgICAubWRpLXJhZGlhdG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJC4IjsKICAgIH0KCiAgICAubWRpLXJhZGlhdG9yLWRpc2FibGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuXIjsKICAgIH0KCiAgICAubWRpLXJhZGlhdG9yLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrmCI7CiAgICB9CgogICAgLm1kaS1yYWRpbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQuSI7CiAgICB9CgogICAgLm1kaS1yYWRpby1hbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyviI7CiAgICB9CgogICAgLm1kaS1yYWRpby1mbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CyvyI7CiAgICB9CgogICAgLm1kaS1yYWRpby1oYW5kaGVsZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQuiI7CiAgICB9CgogICAgLm1kaS1yYWRpby1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiJwiOwogICAgfQoKICAgIC5tZGktcmFkaW8tdG93ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkLsiOwogICAgfQoKICAgIC5tZGktcmFkaW9hY3RpdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkLwiOwogICAgfQoKICAgIC5tZGktcmFkaW9hY3RpdmUtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGdIjsKICAgIH0KCiAgICAubWRpLXJhZGlvYWN0aXZlLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGeIjsKICAgIH0KCiAgICAubWRpLXJhZGlvYWN0aXZlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7gSI7CiAgICB9CgogICAgLm1kaS1yYWRpb2JveC1ibGFuazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQvSI7CiAgICB9CgogICAgLm1kaS1yYWRpb2JveC1pbmRldGVybWluYXRlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsZ4iOwogICAgfQoKICAgIC5tZGktcmFkaW9ib3gtbWFya2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJC+IjsKICAgIH0KCiAgICAubWRpLXJhZGlvbG9neS1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk4UiOwogICAgfQoKICAgIC5tZGktcmFkaW9sb2d5LWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOGIjsKICAgIH0KCiAgICAubWRpLXJhZGl1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzgCI7CiAgICB9CgogICAgLm1kaS1yYWRpdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzgSI7CiAgICB9CgogICAgLm1kaS1yYWlscm9hZC1saWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8niI7CiAgICB9CgogICAgLm1kaS1yYWtlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWEIjsKICAgIH0KCiAgICAubWRpLXJhc3BiZXJyeS1waTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQvyI7CiAgICB9CgogICAgLm1kaS1yYXc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqI8iOwogICAgfQoKICAgIC5tZGktcmF3LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GokCI7CiAgICB9CgogICAgLm1kaS1yYXktZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGAIjsKICAgIH0KCiAgICAubWRpLXJheS1lbmQtYXJyb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkYEiOwogICAgfQoKICAgIC5tZGktcmF5LXN0YXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGCIjsKICAgIH0KCiAgICAubWRpLXJheS1zdGFydC1hcnJvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRgyI7CiAgICB9CgogICAgLm1kaS1yYXktc3RhcnQtZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGEIjsKICAgIH0KCiAgICAubWRpLXJheS1zdGFydC12ZXJ0ZXgtZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeYIjsKICAgIH0KCiAgICAubWRpLXJheS12ZXJ0ZXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkYUiOwogICAgfQoKICAgIC5tZGktcmF6b3ItZG91YmxlLWVkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxppciOwogICAgfQoKICAgIC5tZGktcmF6b3Itc2luZ2xlLWVkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxppgiOwogICAgfQoKICAgIC5tZGktcmVhY3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnIgiOwogICAgfQoKICAgIC5tZGktcmVhZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRhyI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKCkIjsKICAgIH0KCiAgICAubWRpLXJlY2VpcHQtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsL4iOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbC/IjsKICAgIH0KCiAgICAubWRpLXJlY2VpcHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTtyI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0LXNlbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsYAiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC1zZW5kLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsYEiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGJIjsKICAgIH0KCiAgICAubWRpLXJlY2VpcHQtdGV4dC1hcnJvdy1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGCIjsKICAgIH0KCiAgICAubWRpLXJlY2VpcHQtdGV4dC1hcnJvdy1sZWZ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsYMiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGEIjsKICAgIH0KCiAgICAubWRpLXJlY2VpcHQtdGV4dC1hcnJvdy1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGFIjsKICAgIH0KCiAgICAubWRpLXJlY2VpcHQtdGV4dC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpoyI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0LXRleHQtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GppCI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0LXRleHQtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsYYiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsYciOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsYgiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LWVkaXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxiSI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0LXRleHQtbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqaUiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqaYiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxp5wiOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqaciOwogICAgfQoKICAgIC5tZGktcmVjZWlwdC10ZXh0LXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpqCI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0LXRleHQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsampIjsKICAgIH0KCiAgICAubWRpLXJlY2VpcHQtdGV4dC1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpqiI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0LXRleHQtc2VuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxiiI7CiAgICB9CgogICAgLm1kaS1yZWNlaXB0LXRleHQtc2VuZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGLIjsKICAgIH0KCiAgICAubWRpLXJlY29yZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRiiI7CiAgICB9CgogICAgLm1kaS1yZWNvcmQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuCIjsKICAgIH0KCiAgICAubWRpLXJlY29yZC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7gyI7CiAgICB9CgogICAgLm1kaS1yZWNvcmQtcGxheWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKaaIjsKICAgIH0KCiAgICAubWRpLXJlY29yZC1yZWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkYsiOwogICAgfQoKICAgIC5tZGktcmVjdGFuZ2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmeIjsKICAgIH0KCiAgICAubWRpLXJlY3RhbmdsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmfIjsKICAgIH0KCiAgICAubWRpLXJlY3ljbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkYwiOwogICAgfQoKICAgIC5tZGktcmVjeWNsZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6dIjsKICAgIH0KCiAgICAubWRpLXJlZGRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRjSI7CiAgICB9CgogICAgLm1kaS1yZWRoYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhJsiOwogICAgfQoKICAgIC5tZGktcmVkbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRjiI7CiAgICB9CgogICAgLm1kaS1yZWRvLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkY8iOwogICAgfQoKICAgIC5tZGktcmVmbGVjdC1ob3Jpem9udGFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiOIjsKICAgIH0KCiAgICAubWRpLXJlZmxlY3QtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqI8iOwogICAgfQoKICAgIC5tZGktcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRkCI7CiAgICB9CgogICAgLm1kaS1yZWZyZXNoLWF1dG86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo7IiOwogICAgfQoKICAgIC5tZGktcmVmcmVzaC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjbciOwogICAgfQoKICAgIC5tZGktcmVnZXg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkZEiOwogICAgfQoKICAgIC5tZGktcmVnaXN0ZXJlZC10cmFkZW1hcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqaciOwogICAgfQoKICAgIC5tZGktcmVpdGVyYXRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaIIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW1hbnktdG8tbWFueTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSliI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1tYW55LXRvLW9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSlyI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1tYW55LXRvLW9uZS1vci1tYW55OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKYIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW1hbnktdG8tb25seS1vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkpkiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tbWFueS10by16ZXJvLW9yLW1hbnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkpoiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tbWFueS10by16ZXJvLW9yLW9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSmyI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1vbmUtb3ItbWFueS10by1tYW55OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKcIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW9uZS1vci1tYW55LXRvLW9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSnSI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1vbmUtb3ItbWFueS10by1vbmUtb3ItbWFueTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSniI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1vbmUtb3ItbWFueS10by1vbmx5LW9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSnyI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1vbmUtb3ItbWFueS10by16ZXJvLW9yLW1hbnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkqAiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tb25lLW9yLW1hbnktdG8temVyby1vci1vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkqEiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tb25lLXRvLW1hbnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkqIiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tb25lLXRvLW9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSoyI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1vbmUtdG8tb25lLW9yLW1hbnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkqQiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tb25lLXRvLW9ubHktb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKlIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW9uZS10by16ZXJvLW9yLW1hbnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkqYiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tb25lLXRvLXplcm8tb3Itb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKnIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW9ubHktb25lLXRvLW1hbnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkqgiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24tb25seS1vbmUtdG8tb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKpIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW9ubHktb25lLXRvLW9uZS1vci1tYW55OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKqIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW9ubHktb25lLXRvLW9ubHktb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKrIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLW9ubHktb25lLXRvLXplcm8tb3ItbWFueTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSrCI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi1vbmx5LW9uZS10by16ZXJvLW9yLW9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSrSI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi16ZXJvLW9yLW1hbnktdG8tbWFueTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSriI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi16ZXJvLW9yLW1hbnktdG8tb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZKvIjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLXplcm8tb3ItbWFueS10by1vbmUtb3ItbWFueTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSsCI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi16ZXJvLW9yLW1hbnktdG8tb25seS1vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkrEiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24temVyby1vci1tYW55LXRvLXplcm8tb3ItbWFueTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GSsiI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi16ZXJvLW9yLW1hbnktdG8temVyby1vci1vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkrMiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24temVyby1vci1vbmUtdG8tbWFueTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GStCI7CiAgICB9CgogICAgLm1kaS1yZWxhdGlvbi16ZXJvLW9yLW9uZS10by1vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkrUiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24temVyby1vci1vbmUtdG8tb25lLW9yLW1hbnk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkrYiOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24temVyby1vci1vbmUtdG8tb25seS1vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkrciOwogICAgfQoKICAgIC5tZGktcmVsYXRpb24temVyby1vci1vbmUtdG8temVyby1vci1tYW55OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZK4IjsKICAgIH0KCiAgICAubWRpLXJlbGF0aW9uLXplcm8tb3Itb25lLXRvLXplcm8tb3Itb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZK5IjsKICAgIH0KCiAgICAubWRpLXJlbGF0aXZlLXNjYWxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGSIjsKICAgIH0KCiAgICAubWRpLXJlbG9hZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRkyI7CiAgICB9CgogICAgLm1kaS1yZWxvYWQtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhIsiOwogICAgfQoKICAgIC5tZGktcmVtaW5kZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoowiOwogICAgfQoKICAgIC5tZGktcmVtb3RlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGUIjsKICAgIH0KCiAgICAubWRpLXJlbW90ZS1kZXNrdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKK5IjsKICAgIH0KCiAgICAubWRpLXJlbW90ZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu4QiOwogICAgfQoKICAgIC5tZGktcmVtb3RlLXR2OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuFIjsKICAgIH0KCiAgICAubWRpLXJlbW90ZS10di1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu4YiOwogICAgfQoKICAgIC5tZGktcmVuYW1lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCYIjsKICAgIH0KCiAgICAubWRpLXJlbmFtZS1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkZUiOwogICAgfQoKICAgIC5tZGktcmVuYW1lLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCZIjsKICAgIH0KCiAgICAubWRpLXJlbmFtZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCaIjsKICAgIH0KCiAgICAubWRpLXJlb3JkZXItaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CaiCI7CiAgICB9CgogICAgLm1kaS1yZW9yZGVyLXZlcnRpY2FsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqJIjsKICAgIH0KCiAgICAubWRpLXJlcGVhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRliI7CiAgICB9CgogICAgLm1kaS1yZXBlYXQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGXIjsKICAgIH0KCiAgICAubWRpLXJlcGVhdC1vbmNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGYIjsKICAgIH0KCiAgICAubWRpLXJlcGVhdC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJWHIjsKICAgIH0KCiAgICAubWRpLXJlcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRmSI7CiAgICB9CgogICAgLm1kaS1yZXBseTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRmiI7CiAgICB9CgogICAgLm1kaS1yZXBseS1hbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkZsiOwogICAgfQoKICAgIC5tZGktcmVwbHktYWxsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvJ8iOwogICAgfQoKICAgIC5tZGktcmVwbHktY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYauIjsKICAgIH0KCiAgICAubWRpLXJlcGx5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvKAiOwogICAgfQoKICAgIC5tZGktcmVwcm9kdWN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGcIjsKICAgIH0KCiAgICAubWRpLXJlc2lzdG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2EIjsKICAgIH0KCiAgICAubWRpLXJlc2lzdG9yLW5vZGVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2FIjsKICAgIH0KCiAgICAubWRpLXJlc2l6ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpqCI7CiAgICB9CgogICAgLm1kaS1yZXNpemUtYm90dG9tLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGdIjsKICAgIH0KCiAgICAubWRpLXJlc3BvbnNpdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkZ4iOwogICAgfQoKICAgIC5tZGktcmVzdGFydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CciSI7CiAgICB9CgogICAgLm1kaS1yZXN0YXJ0LWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSMIjsKICAgIH0KCiAgICAubWRpLXJlc3RhcnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLaVIjsKICAgIH0KCiAgICAubWRpLXJlc3RvcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppsiOwogICAgfQoKICAgIC5tZGktcmVzdG9yZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEjSI7CiAgICB9CgogICAgLm1kaS1yZXdpbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkZ8iOwogICAgfQoKICAgIC5tZGktcmV3aW5kLTEwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSqIjsKICAgIH0KCiAgICAubWRpLXJld2luZC0xNTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlhiI7CiAgICB9CgogICAgLm1kaS1yZXdpbmQtMzA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtpYiOwogICAgfQoKICAgIC5tZGktcmV3aW5kLTQ1OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayTIjsKICAgIH0KCiAgICAubWRpLXJld2luZC01OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYe5IjsKICAgIH0KCiAgICAubWRpLXJld2luZC02MDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GYjCI7CiAgICB9CgogICAgLm1kaS1yZXdpbmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CciiI7CiAgICB9CgogICAgLm1kaS1yaG9tYnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyLIjsKICAgIH0KCiAgICAubWRpLXJob21idXMtbWVkaXVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiQIjsKICAgIH0KCiAgICAubWRpLXJob21idXMtbWVkaXVtLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk5wiOwogICAgfQoKICAgIC5tZGktcmhvbWJ1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyMIjsKICAgIH0KCiAgICAubWRpLXJob21idXMtc3BsaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqJEiOwogICAgfQoKICAgIC5tZGktcmhvbWJ1cy1zcGxpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOdIjsKICAgIH0KCiAgICAubWRpLXJpYmJvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRoCI7CiAgICB9CgogICAgLm1kaS1yaWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+qIjsKICAgIH0KCiAgICAubWRpLXJpY2tzaGF3OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZa7IjsKICAgIH0KCiAgICAubWRpLXJpY2tzaGF3LWVsZWN0cmljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZa8IjsKICAgIH0KCiAgICAubWRpLXJpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn6siOwogICAgfQoKICAgIC5tZGktcml2ZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuaAiOwogICAgfQoKICAgIC5tZGktcm9hZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRoSI7CiAgICB9CgogICAgLm1kaS1yb2FkLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkaIiOwogICAgfQoKICAgIC5tZGktcm9iYmVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGYIjsKICAgIH0KCiAgICAubWRpLXJvYm90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqpIjsKICAgIH0KCiAgICAubWRpLXJvYm90LWFuZ3J5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqdIjsKICAgIH0KCiAgICAubWRpLXJvYm90LWFuZ3J5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmp4iOwogICAgfQoKICAgIC5tZGktcm9ib3QtY29uZnVzZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmp8iOwogICAgfQoKICAgIC5tZGktcm9ib3QtY29uZnVzZWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GaoCI7CiAgICB9CgogICAgLm1kaS1yb2JvdC1kZWFkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqhIjsKICAgIH0KCiAgICAubWRpLXJvYm90LWRlYWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GaoiI7CiAgICB9CgogICAgLm1kaS1yb2JvdC1leGNpdGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqjIjsKICAgIH0KCiAgICAubWRpLXJvYm90LWV4Y2l0ZWQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GapCI7CiAgICB9CgogICAgLm1kaS1yb2JvdC1oYXBweTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcmSI7CiAgICB9CgogICAgLm1kaS1yb2JvdC1oYXBweS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyaIjsKICAgIH0KCiAgICAubWRpLXJvYm90LWluZHVzdHJpYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrYYiOwogICAgfQoKICAgIC5tZGktcm9ib3QtaW5kdXN0cmlhbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaiaIjsKICAgIH0KCiAgICAubWRpLXJvYm90LWxvdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmqUiOwogICAgfQoKICAgIC5tZGktcm9ib3QtbG92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqmIjsKICAgIH0KCiAgICAubWRpLXJvYm90LW1vd2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYe3IjsKICAgIH0KCiAgICAubWRpLXJvYm90LW1vd2VyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh7MiOwogICAgfQoKICAgIC5tZGktcm9ib3Qtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZqnIjsKICAgIH0KCiAgICAubWRpLXJvYm90LW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZm7IjsKICAgIH0KCiAgICAubWRpLXJvYm90LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmboiOwogICAgfQoKICAgIC5tZGktcm9ib3QtdmFjdXVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyNIjsKICAgIH0KCiAgICAubWRpLXJvYm90LXZhY3V1bS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtnSI7CiAgICB9CgogICAgLm1kaS1yb2JvdC12YWN1dW0tb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbCBIjsKICAgIH0KCiAgICAubWRpLXJvYm90LXZhY3V1bS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSIIjsKICAgIH0KCiAgICAubWRpLXJvYm90LXZhY3V1bS12YXJpYW50LWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2eIjsKICAgIH0KCiAgICAubWRpLXJvYm90LXZhY3V1bS12YXJpYW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GwgiI7CiAgICB9CgogICAgLm1kaS1yb2NrZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkaMiOwogICAgfQoKICAgIC5tZGktcm9ja2V0LWxhdW5jaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTniI7CiAgICB9CgogICAgLm1kaS1yb2NrZXQtbGF1bmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk58iOwogICAgfQoKICAgIC5tZGktcm9ja2V0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjq8iOwogICAgfQoKICAgIC5tZGktcm9kZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYynIjsKICAgIH0KCiAgICAubWRpLXJvbGxlci1zaGFkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpqyI7CiAgICB9CgogICAgLm1kaS1yb2xsZXItc2hhZGUtY2xvc2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamsIjsKICAgIH0KCiAgICAubWRpLXJvbGxlci1za2F0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0qyI7CiAgICB9CgogICAgLm1kaS1yb2xsZXItc2thdGUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIWFIjsKICAgIH0KCiAgICAubWRpLXJvbGxlcmJsYWRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSsIjsKICAgIH0KCiAgICAubWRpLXJvbGxlcmJsYWRlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAriI7CiAgICB9CgogICAgLm1kaS1yb2xsdXBqczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvgCI7CiAgICB9CgogICAgLm1kaS1yb2xvZGV4OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaq5IjsKICAgIH0KCiAgICAubWRpLXJvbG9kZXgtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GquiI7CiAgICB9CgogICAgLm1kaS1yb21hbi1udW1lcmFsLTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgogiOwogICAgfQoKICAgIC5tZGktcm9tYW4tbnVtZXJhbC0xMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCkSI7CiAgICB9CgogICAgLm1kaS1yb21hbi1udW1lcmFsLTI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgokiOwogICAgfQoKICAgIC5tZGktcm9tYW4tbnVtZXJhbC0zOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKKIjsKICAgIH0KCiAgICAubWRpLXJvbWFuLW51bWVyYWwtNDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCiyI7CiAgICB9CgogICAgLm1kaS1yb21hbi1udW1lcmFsLTU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgowiOwogICAgfQoKICAgIC5tZGktcm9tYW4tbnVtZXJhbC02OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKNIjsKICAgIH0KCiAgICAubWRpLXJvbWFuLW51bWVyYWwtNzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GCjiI7CiAgICB9CgogICAgLm1kaS1yb21hbi1udW1lcmFsLTg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgo8iOwogICAgfQoKICAgIC5tZGktcm9tYW4tbnVtZXJhbC05OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKQIjsKICAgIH0KCiAgICAubWRpLXJvb20tc2VydmljZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CijSI7CiAgICB9CgogICAgLm1kaS1yb29tLXNlcnZpY2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2lyI7CiAgICB9CgogICAgLm1kaS1yb3RhdGUtMzYwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaaZIjsKICAgIH0KCiAgICAubWRpLXJvdGF0ZS0zZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7hyI7CiAgICB9CgogICAgLm1kaS1yb3RhdGUtM2QtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRpCI7CiAgICB9CgogICAgLm1kaS1yb3RhdGUtbGVmdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRpSI7CiAgICB9CgogICAgLm1kaS1yb3RhdGUtbGVmdC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGmIjsKICAgIH0KCiAgICAubWRpLXJvdGF0ZS1vcmJpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2mCI7CiAgICB9CgogICAgLm1kaS1yb3RhdGUtcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkaciOwogICAgfQoKICAgIC5tZGktcm90YXRlLXJpZ2h0LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkagiOwogICAgfQoKICAgIC5tZGktcm91bmRlZC1jb3JuZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmIciOwogICAgfQoKICAgIC5tZGktcm91dGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeiIjsKICAgIH0KCiAgICAubWRpLXJvdXRlci1uZXR3b3JrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYKHIjsKICAgIH0KCiAgICAubWRpLXJvdXRlci1uZXR3b3JrLXdpcmVsZXNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKXIjsKICAgIH0KCiAgICAubWRpLXJvdXRlci13aXJlbGVzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRqSI7CiAgICB9CgogICAgLm1kaS1yb3V0ZXItd2lyZWxlc3Mtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZajIjsKICAgIH0KCiAgICAubWRpLXJvdXRlci13aXJlbGVzcy1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpqSI7CiAgICB9CgogICAgLm1kaS1yb3V0ZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkaoiOwogICAgfQoKICAgIC5tZGktcm91dGVzLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGZIjsKICAgIH0KCiAgICAubWRpLXJvd2luZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYiCI7CiAgICB9CgogICAgLm1kaS1yc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkasiOwogICAgfQoKICAgIC5tZGktcnNzLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRrCI7CiAgICB9CgogICAgLm1kaS1yc3Mtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyhIjsKICAgIH0KCiAgICAubWRpLXJ1ZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRtSI7CiAgICB9CgogICAgLm1kaS1ydWdieTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2mSI7CiAgICB9CgogICAgLm1kaS1ydWxlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRrSI7CiAgICB9CgogICAgLm1kaS1ydWxlci1zcXVhcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws4IiOwogICAgfQoKICAgIC5tZGktcnVsZXItc3F1YXJlLWNvbXBhc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwur4iOwogICAgfQoKICAgIC5tZGktcnVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyOIjsKICAgIH0KCiAgICAubWRpLXJ1bi1mYXN0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGuIjsKICAgIH0KCiAgICAubWRpLXJ2LXRydWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYeUIjsKICAgIH0KCiAgICAubWRpLXNhY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtK4iOwogICAgfQoKICAgIC5tZGktc2Fjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGMIjsKICAgIH0KCiAgICAubWRpLXNhY2stcGVyY2VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0ryI7CiAgICB9CgogICAgLm1kaS1zYWZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmqIjsKICAgIH0KCiAgICAubWRpLXNhZmUtc3F1YXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYm8IjsKICAgIH0KCiAgICAubWRpLXNhZmUtc3F1YXJlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxib0iOwogICAgfQoKICAgIC5tZGktc2FmZXR5LWdvZ2dsZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtLAiOwogICAgfQoKICAgIC5tZGktc2FpbC1ib2F0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuIIjsKICAgIH0KCiAgICAubWRpLXNhaWwtYm9hdC1zaW5rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauvIjsKICAgIH0KCiAgICAubWRpLXNhbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwka8iOwogICAgfQoKICAgIC5tZGktc2FsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaiGIjsKICAgIH0KCiAgICAubWRpLXNhbGVzZm9yY2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoo4iOwogICAgfQoKICAgIC5tZGktc2FzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfrCI7CiAgICB9CgogICAgLm1kaS1zYXRlbGxpdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkbAiOwogICAgfQoKICAgIC5tZGktc2F0ZWxsaXRlLXVwbGluazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CkiSI7CiAgICB9CgogICAgLm1kaS1zYXRlbGxpdGUtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRsSI7CiAgICB9CgogICAgLm1kaS1zYXVzYWdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKK6IjsKICAgIH0KCiAgICAubWRpLXNhdXNhZ2Utb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6JIjsKICAgIH0KCiAgICAubWRpLXNhdy1ibGFkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5oSI7CiAgICB9CgogICAgLm1kaS1zYXd0b290aC13YXZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZG6IjsKICAgIH0KCiAgICAubWRpLXNheG9waG9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYiSI7CiAgICB9CgogICAgLm1kaS1zY2FsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRsiI7CiAgICB9CgogICAgLm1kaS1zY2FsZS1iYWxhbmNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeRIjsKICAgIH0KCiAgICAubWRpLXNjYWxlLWJhdGhyb29tOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJGzIjsKICAgIH0KCiAgICAubWRpLXNjYWxlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBmiI7CiAgICB9CgogICAgLm1kaS1zY2FsZS11bmJhbGFuY2VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaa4IjsKICAgIH0KCiAgICAubWRpLXNjYW4taGVscGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+YIjsKICAgIH0KCiAgICAubWRpLXNjYW5uZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmqsiOwogICAgfQoKICAgIC5tZGktc2Nhbm5lci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpIoiOwogICAgfQoKICAgIC5tZGktc2NhdHRlci1wbG90OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuJIjsKICAgIH0KCiAgICAubWRpLXNjYXR0ZXItcGxvdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLuKIjsKICAgIH0KCiAgICAubWRpLXNjZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaWYIjsKICAgIH0KCiAgICAubWRpLXNjZW50LW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlmSI7CiAgICB9CgogICAgLm1kaS1zY2hvb2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkbQiOwogICAgfQoKICAgIC5tZGktc2Nob29sLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhoAiOwogICAgfQoKICAgIC5tZGktc2Npc3NvcnMtY3V0dGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpqyI7CiAgICB9CgogICAgLm1kaS1zY29vdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZa9IjsKICAgIH0KCiAgICAubWRpLXNjb290ZXItZWxlY3RyaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlr4iOwogICAgfQoKICAgIC5tZGktc2NvcmVib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GJviI7CiAgICB9CgogICAgLm1kaS1zY29yZWJvYXJkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxib8iOwogICAgfQoKICAgIC5tZGktc2NyZWVuLXJvdGF0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJG1IjsKICAgIH0KCiAgICAubWRpLXNjcmVlbi1yb3RhdGlvbi1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJG4IjsKICAgIH0KCiAgICAubWRpLXNjcmV3LWZsYXQtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLezIjsKICAgIH0KCiAgICAubWRpLXNjcmV3LWxhZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3tCI7CiAgICB9CgogICAgLm1kaS1zY3Jldy1tYWNoaW5lLWZsYXQtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLe1IjsKICAgIH0KCiAgICAubWRpLXNjcmV3LW1hY2hpbmUtcm91bmQtdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLe2IjsKICAgIH0KCiAgICAubWRpLXNjcmV3LXJvdW5kLXRvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3tyI7CiAgICB9CgogICAgLm1kaS1zY3Jld2RyaXZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRtiI7CiAgICB9CgogICAgLm1kaS1zY3JpcHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr4EiOwogICAgfQoKICAgIC5tZGktc2NyaXB0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkbciOwogICAgfQoKICAgIC5tZGktc2NyaXB0LXRleHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr4IiOwogICAgfQoKICAgIC5tZGktc2NyaXB0LXRleHQta2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZylIjsKICAgIH0KCiAgICAubWRpLXNjcmlwdC10ZXh0LWtleS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZymIjsKICAgIH0KCiAgICAubWRpLXNjcmlwdC10ZXh0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr4MiOwogICAgfQoKICAgIC5tZGktc2NyaXB0LXRleHQtcGxheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcpyI7CiAgICB9CgogICAgLm1kaS1zY3JpcHQtdGV4dC1wbGF5LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnKgiOwogICAgfQoKICAgIC5tZGktc2Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkbkiOwogICAgfQoKICAgIC5tZGktc2VhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRuiI7CiAgICB9CgogICAgLm1kaS1zZWFsLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv5kiOwogICAgfQoKICAgIC5tZGktc2VhcmNoLXdlYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcjyI7CiAgICB9CgogICAgLm1kaS1zZWF0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLODIjsKICAgIH0KCiAgICAubWRpLXNlYXQtZmxhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRuyI7CiAgICB9CgogICAgLm1kaS1zZWF0LWZsYXQtYW5nbGVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJG8IjsKICAgIH0KCiAgICAubWRpLXNlYXQtaW5kaXZpZHVhbC1zdWl0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRvSI7CiAgICB9CgogICAgLm1kaS1zZWF0LWxlZ3Jvb20tZXh0cmE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkb4iOwogICAgfQoKICAgIC5tZGktc2VhdC1sZWdyb29tLW5vcm1hbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CRvyI7CiAgICB9CgogICAgLm1kaS1zZWF0LWxlZ3Jvb20tcmVkdWNlZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSgCI7CiAgICB9CgogICAgLm1kaS1zZWF0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws4QiOwogICAgfQoKICAgIC5tZGktc2VhdC1wYXNzZW5nZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiYkiOwogICAgfQoKICAgIC5tZGktc2VhdC1yZWNsaW5lLWV4dHJhOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKBIjsKICAgIH0KCiAgICAubWRpLXNlYXQtcmVjbGluZS1ub3JtYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkoIiOwogICAgfQoKICAgIC5tZGktc2VhdGJlbHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws4UiOwogICAgfQoKICAgIC5tZGktc2VjdXJpdHk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkoMiOwogICAgfQoKICAgIC5tZGktc2VjdXJpdHktbmV0d29yazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CShCI7CiAgICB9CgogICAgLm1kaS1zZWVkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmiIjsKICAgIH0KCiAgICAubWRpLXNlZWQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+9IjsKICAgIH0KCiAgICAubWRpLXNlZWQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj74iOwogICAgfQoKICAgIC5tZGktc2VlZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmjIjsKICAgIH0KCiAgICAubWRpLXNlZWQtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GprSI7CiAgICB9CgogICAgLm1kaS1zZWVkLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpriI7CiAgICB9CgogICAgLm1kaS1zZWVzYXc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlqQiOwogICAgfQoKICAgIC5tZGktc2VnbWVudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7iyI7CiAgICB9CgogICAgLm1kaS1zZWxlY3Q6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkoUiOwogICAgfQoKICAgIC5tZGktc2VsZWN0LWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CShiI7CiAgICB9CgogICAgLm1kaS1zZWxlY3QtYXJyb3ctZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtmSI7CiAgICB9CgogICAgLm1kaS1zZWxlY3QtYXJyb3ctdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrZgiOwogICAgfQoKICAgIC5tZGktc2VsZWN0LWNvbG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSxIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdC1jb21wYXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuZIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdC1kcmFnOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmsIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdC1ncm91cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+giI7CiAgICB9CgogICAgLm1kaS1zZWxlY3QtaW52ZXJzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CShyI7CiAgICB9CgogICAgLm1kaS1zZWxlY3QtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqAIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdC1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKgSI7CiAgICB9CgogICAgLm1kaS1zZWxlY3QtbXVsdGlwbGUtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqCIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkogiOwogICAgfQoKICAgIC5tZGktc2VsZWN0LXBsYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+aIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn4EiOwogICAgfQoKICAgIC5tZGktc2VsZWN0LXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIhCI7CiAgICB9CgogICAgLm1kaS1zZWxlY3Rpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkokiOwogICAgfQoKICAgIC5tZGktc2VsZWN0aW9uLWRyYWc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqa0iOwogICAgfQoKICAgIC5tZGktc2VsZWN0aW9uLWVsbGlwc2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtLIiOwogICAgfQoKICAgIC5tZGktc2VsZWN0aW9uLWVsbGlwc2UtYXJyb3ctaW5zaWRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyiIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdGlvbi1lbGxpcHNlLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfgiI7CiAgICB9CgogICAgLm1kaS1zZWxlY3Rpb24tbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqDIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdGlvbi1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKhSI7CiAgICB9CgogICAgLm1kaS1zZWxlY3Rpb24tbXVsdGlwbGUtbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqEIjsKICAgIH0KCiAgICAubWRpLXNlbGVjdGlvbi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnbciOwogICAgfQoKICAgIC5tZGktc2VsZWN0aW9uLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfgyI7CiAgICB9CgogICAgLm1kaS1zZWxlY3Rpb24tc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiFIjsKICAgIH0KCiAgICAubWRpLXNlbWFudGljLXdlYjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMliI7CiAgICB9CgogICAgLm1kaS1zZW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKKIjsKICAgIH0KCiAgICAubWRpLXNlbmQtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhaEiOwogICAgfQoKICAgIC5tZGktc2VuZC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWiIjsKICAgIH0KCiAgICAubWRpLXNlbmQtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLe4IjsKICAgIH0KCiAgICAubWRpLXNlbmQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt7kiOwogICAgfQoKICAgIC5tZGktc2VuZC1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFoyI7CiAgICB9CgogICAgLm1kaS1zZW5kLWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhaQiOwogICAgfQoKICAgIC5tZGktc2VuZC1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+tIjsKICAgIH0KCiAgICAubWRpLXNlbmQtbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYWmIjsKICAgIH0KCiAgICAubWRpLXNlbmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFpSI7CiAgICB9CgogICAgLm1kaS1zZW5kLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsY0iOwogICAgfQoKICAgIC5tZGktc2VuZC12YXJpYW50LWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbG+IjsKICAgIH0KCiAgICAubWRpLXNlbmQtdmFyaWFudC1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbG/IjsKICAgIH0KCiAgICAubWRpLXNlbmQtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGOIjsKICAgIH0KCiAgICAubWRpLXNlcmlhbC1wb3J0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmcIjsKICAgIH0KCiAgICAubWRpLXNlcnZlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSiyI7CiAgICB9CgogICAgLm1kaS1zZXJ2ZXItbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkowiOwogICAgfQoKICAgIC5tZGktc2VydmVyLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxspgiOwogICAgfQoKICAgIC5tZGktc2VydmVyLW5ldHdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwko0iOwogICAgfQoKICAgIC5tZGktc2VydmVyLW5ldHdvcmstb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKOIjsKICAgIH0KCiAgICAubWRpLXNlcnZlci1uZXR3b3JrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxspkiOwogICAgfQoKICAgIC5tZGktc2VydmVyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSjyI7CiAgICB9CgogICAgLm1kaS1zZXJ2ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GymiI7CiAgICB9CgogICAgLm1kaS1zZXJ2ZXItcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSkCI7CiAgICB9CgogICAgLm1kaS1zZXJ2ZXItcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbKbIjsKICAgIH0KCiAgICAubWRpLXNlcnZlci1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkpEiOwogICAgfQoKICAgIC5tZGktc2VydmVyLXNlY3VyaXR5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKSIjsKICAgIH0KCiAgICAubWRpLXNldC1hbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnbgiOwogICAgfQoKICAgIC5tZGktc2V0LWNlbnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CduSI7CiAgICB9CgogICAgLm1kaS1zZXQtY2VudGVyLXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ26IjsKICAgIH0KCiAgICAubWRpLXNldC1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ27IjsKICAgIH0KCiAgICAubWRpLXNldC1sZWZ0LWNlbnRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdvCI7CiAgICB9CgogICAgLm1kaS1zZXQtbGVmdC1yaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdvSI7CiAgICB9CgogICAgLm1kaS1zZXQtbWVyZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk6AiOwogICAgfQoKICAgIC5tZGktc2V0LW5vbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnb4iOwogICAgfQoKICAgIC5tZGktc2V0LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2/IjsKICAgIH0KCiAgICAubWRpLXNldC1zcGxpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GToSI7CiAgICB9CgogICAgLm1kaS1zZXQtc3F1YXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZGdIjsKICAgIH0KCiAgICAubWRpLXNldC10b3AtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKafIjsKICAgIH0KCiAgICAubWRpLXNldHRpbmdzLWhlbHBlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpriI7CiAgICB9CgogICAgLm1kaS1zaGFrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhI4iOwogICAgfQoKICAgIC5tZGktc2hha2VyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhI8iOwogICAgfQoKICAgIC5tZGktc2hhcGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoLEiOwogICAgfQoKICAgIC5tZGktc2hhcGUtY2lyY2xlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmZ0iOwogICAgfQoKICAgIC5tZGktc2hhcGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgsiI7CiAgICB9CgogICAgLm1kaS1zaGFwZS1vdmFsLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh7oiOwogICAgfQoKICAgIC5tZGktc2hhcGUtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSlSI7CiAgICB9CgogICAgLm1kaS1zaGFwZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsY8iOwogICAgfQoKICAgIC5tZGktc2hhcGUtcG9seWdvbi1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmeIjsKICAgIH0KCiAgICAubWRpLXNoYXBlLXJlY3RhbmdsZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmfIjsKICAgIH0KCiAgICAubWRpLXNoYXBlLXNxdWFyZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmgIjsKICAgIH0KCiAgICAubWRpLXNoYXBlLXNxdWFyZS1yb3VuZGVkLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk7oiOwogICAgfQoKICAgIC5tZGktc2hhcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkpYiOwogICAgfQoKICAgIC5tZGktc2hhcmUtYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYe0IjsKICAgIH0KCiAgICAubWRpLXNoYXJlLWFsbC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYe1IjsKICAgIH0KCiAgICAubWRpLXNoYXJlLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGrSI7CiAgICB9CgogICAgLm1kaS1zaGFyZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvKMiOwogICAgfQoKICAgIC5tZGktc2hhcmUtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvKQiOwogICAgfQoKICAgIC5tZGktc2hhcmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CksiI7CiAgICB9CgogICAgLm1kaS1zaGFyZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKXIjsKICAgIH0KCiAgICAubWRpLXNoYXJlLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUlCI7CiAgICB9CgogICAgLm1kaS1zaGFyazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GiuiI7CiAgICB9CgogICAgLm1kaS1zaGFyay1maW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmbMiOwogICAgfQoKICAgIC5tZGktc2hhcmstZmluLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmbQiOwogICAgfQoKICAgIC5tZGktc2hhcmstb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaK7IjsKICAgIH0KCiAgICAubWRpLXNoZWVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOGIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSmCI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtYWNjb3VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CijyI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtYWNjb3VudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiSIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1hY2NvdW50LXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlqciOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWFjY291bnQtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZaoIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1haXJwbGFuZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CauyI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtYWlycGxhbmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzhyI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu4wiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu40iOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWJ1ZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPmiI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtYnVnLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj5siOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWNhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+gyI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlaUiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOws4giOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWNyb3NzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOJIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1jcm9zcy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOKIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1jcm93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GivCI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtY3Jvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GivSI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGoCI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYahIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1oYWxmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2gIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1oYWxmLWZ1bGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnoAiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWhvbWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmooiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLWhvbWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CziyI7CiAgICB9CgogICAgLm1kaS1zaGllbGQta2V5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+EIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1rZXktb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvhSI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtbGluay12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLSzIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1saW5rLXZhcmlhbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0tCI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmnSI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaaaIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1sb2NrLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GmmyI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOMIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1tb29uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCoIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1tb29uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoKkiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmniI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwppwiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkpkiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq5oiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrmyI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtcmVmcmVzaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CCqiI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtcmVmcmVzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIegIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq5wiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKudIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtpoiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhLsiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXN0YXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GEvCI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtc3VuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGdIjsKICAgIH0KCiAgICAubWRpLXNoaWVsZC1zdW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBniI7CiAgICB9CgogICAgLm1kaS1zaGllbGQtc3dvcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxor4iOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXN3b3JkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxor8iOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXN5bmM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhqIiOwogICAgfQoKICAgIC5tZGktc2hpZWxkLXN5bmMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GGoyI7CiAgICB9CgogICAgLm1kaS1zaGltbWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWFIjsKICAgIH0KCiAgICAubWRpLXNoaXAtd2hlZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoLMiOwogICAgfQoKICAgIC5tZGktc2hpcHBpbmctcGFsbGV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaGOIjsKICAgIH0KCiAgICAubWRpLXNob2UtYmFsbGV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeKIjsKICAgIH0KCiAgICAubWRpLXNob2UtY2xlYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxl4ciOwogICAgfQoKICAgIC5tZGktc2hvZS1mb3JtYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrYciOwogICAgfQoKICAgIC5tZGktc2hvZS1oZWVsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2IIjsKICAgIH0KCiAgICAubWRpLXNob2UtcHJpbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt7oiOwogICAgfQoKICAgIC5tZGktc2hvZS1zbmVha2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZeIIjsKICAgIH0KCiAgICAubWRpLXNob3BwaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKaIjsKICAgIH0KCiAgICAubWRpLXNob3BwaW5nLW11c2ljOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKbIjsKICAgIH0KCiAgICAubWRpLXNob3BwaW5nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh5UiOwogICAgfQoKICAgIC5tZGktc2hvcHBpbmctc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6EIjsKICAgIH0KCiAgICAubWRpLXNob3BwaW5nLXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamvIjsKICAgIH0KCiAgICAubWRpLXNob3JlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZO5IjsKICAgIH0KCiAgICAubWRpLXNob3ZlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CckCI7CiAgICB9CgogICAgLm1kaS1zaG92ZWwtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyRIjsKICAgIH0KCiAgICAubWRpLXNob3dlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmoCI7CiAgICB9CgogICAgLm1kaS1zaG93ZXItaGVhZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmoSI7CiAgICB9CgogICAgLm1kaS1zaHJlZGRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSnCI7CiAgICB9CgogICAgLm1kaS1zaHVmZmxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKdIjsKICAgIH0KCiAgICAubWRpLXNodWZmbGUtZGlzYWJsZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkp4iOwogICAgfQoKICAgIC5tZGktc2h1ZmZsZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKfIjsKICAgIH0KCiAgICAubWRpLXNodXJpa2VuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2/IjsKICAgIH0KCiAgICAubWRpLXNpY2tsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjgCI7CiAgICB9CgogICAgLm1kaS1zaWdtYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSoCI7CiAgICB9CgogICAgLm1kaS1zaWdtYS1sb3dlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CYqyI7CiAgICB9CgogICAgLm1kaS1zaWduLWNhdXRpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkqEiOwogICAgfQoKICAgIC5tZGktc2lnbi1kaXJlY3Rpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnoEiOwogICAgfQoKICAgIC5tZGktc2lnbi1kaXJlY3Rpb24tbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgIAiOwogICAgfQoKICAgIC5tZGktc2lnbi1kaXJlY3Rpb24tcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/nCI7CiAgICB9CgogICAgLm1kaS1zaWduLWRpcmVjdGlvbi1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv50iOwogICAgfQoKICAgIC5tZGktc2lnbi1sYW5ndWFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtjSI7CiAgICB9CgogICAgLm1kaS1zaWduLWxhbmd1YWdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrY4iOwogICAgfQoKICAgIC5tZGktc2lnbi1wb2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZO4IjsKICAgIH0KCiAgICAubWRpLXNpZ24tcmVhbC1lc3RhdGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhJgiOwogICAgfQoKICAgIC5tZGktc2lnbi10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6CIjsKICAgIH0KCiAgICAubWRpLXNpZ24teWllbGQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrq8iOwogICAgfQoKICAgIC5tZGktc2lnbmFsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKiIjsKICAgIH0KCiAgICAubWRpLXNpZ25hbC0yZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CckiI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtM2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnJMiOwogICAgfQoKICAgIC5tZGktc2lnbmFsLTRnOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyUIjsKICAgIH0KCiAgICAubWRpLXNpZ25hbC01ZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CpryI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtY2VsbHVsYXItMTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CivCI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtY2VsbHVsYXItMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CivSI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtY2VsbHVsYXItMzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CiviI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtY2VsbHVsYXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CivyI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtZGlzdGFuY2UtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5pCI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtaHNwYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CclSI7CiAgICB9CgogICAgLm1kaS1zaWduYWwtaHNwYS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyWIjsKICAgIH0KCiAgICAubWRpLXNpZ25hbC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnoMiOwogICAgfQoKICAgIC5tZGktc2lnbmFsLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmIoiOwogICAgfQoKICAgIC5tZGktc2lnbmF0dXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLe7IjsKICAgIH0KCiAgICAubWRpLXNpZ25hdHVyZS1mcmVlaGFuZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3vCI7CiAgICB9CgogICAgLm1kaS1zaWduYXR1cmUtaW1hZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt70iOwogICAgfQoKICAgIC5tZGktc2lnbmF0dXJlLXRleHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwt74iOwogICAgfQoKICAgIC5tZGktc2lsbzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GunyI7CiAgICB9CgogICAgLm1kaS1zaWxvLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwrYkiOwogICAgfQoKICAgIC5tZGktc2lsdmVyd2FyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSoyI7CiAgICB9CgogICAgLm1kaS1zaWx2ZXJ3YXJlLWNsZWFuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+eIjsKICAgIH0KCiAgICAubWRpLXNpbHZlcndhcmUtZm9yazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSpCI7CiAgICB9CgogICAgLm1kaS1zaWx2ZXJ3YXJlLWZvcmsta25pZmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqbAiOwogICAgfQoKICAgIC5tZGktc2lsdmVyd2FyZS1zcG9vbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSpSI7CiAgICB9CgogICAgLm1kaS1zaWx2ZXJ3YXJlLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkqYiOwogICAgfQoKICAgIC5tZGktc2ltOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKnIjsKICAgIH0KCiAgICAubWRpLXNpbS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSqCI7CiAgICB9CgogICAgLm1kaS1zaW0tYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXkyI7CiAgICB9CgogICAgLm1kaS1zaW0tb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKpIjsKICAgIH0KCiAgICAubWRpLXNpbS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXlCI7CiAgICB9CgogICAgLm1kaS1zaW0tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GXlSI7CiAgICB9CgogICAgLm1kaS1zaW1wbGUtaWNvbnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjJ0iOwogICAgfQoKICAgIC5tZGktc2luYS13ZWlibzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrnyI7CiAgICB9CgogICAgLm1kaS1zaW5lLXdhdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpZsiOwogICAgfQoKICAgIC5tZGktc2l0ZW1hcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSqiI7CiAgICB9CgogICAgLm1kaS1zaXRlbWFwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxppwiOwogICAgfQoKICAgIC5tZGktc2l6ZS1sOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6mIjsKICAgIH0KCiAgICAubWRpLXNpemUtbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOpSI7CiAgICB9CgogICAgLm1kaS1zaXplLXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjqQiOwogICAgfQoKICAgIC5tZGktc2l6ZS14bDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOpyI7CiAgICB9CgogICAgLm1kaS1zaXplLXhzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6jIjsKICAgIH0KCiAgICAubWRpLXNpemUteHhsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6oIjsKICAgIH0KCiAgICAubWRpLXNpemUteHhzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6iIjsKICAgIH0KCiAgICAubWRpLXNpemUteHh4bDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOqSI7CiAgICB9CgogICAgLm1kaS1za2F0ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0tSI7CiAgICB9CgogICAgLm1kaS1za2F0ZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmpkiOwogICAgfQoKICAgIC5tZGktc2thdGVib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTgiI7CiAgICB9CgogICAgLm1kaS1za2F0ZWJvYXJkaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSBIjsKICAgIH0KCiAgICAubWRpLXNrZXctbGVzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0tiI7CiAgICB9CgogICAgLm1kaS1za2V3LW1vcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtLciOwogICAgfQoKICAgIC5tZGktc2tpOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyEIjsKICAgIH0KCiAgICAubWRpLXNraS1jcm9zcy1jb3VudHJ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyFIjsKICAgIH0KCiAgICAubWRpLXNraS13YXRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMhiI7CiAgICB9CgogICAgLm1kaS1za2lwLWJhY2t3YXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKrIjsKICAgIH0KCiAgICAubWRpLXNraXAtYmFja3dhcmQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C8pSI7CiAgICB9CgogICAgLm1kaS1za2lwLWZvcndhcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkqwiOwogICAgfQoKICAgIC5tZGktc2tpcC1mb3J3YXJkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvKYiOwogICAgfQoKICAgIC5tZGktc2tpcC1uZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKtIjsKICAgIH0KCiAgICAubWRpLXNraXAtbmV4dC1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmaEiOwogICAgfQoKICAgIC5tZGktc2tpcC1uZXh0LWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmiIjsKICAgIH0KCiAgICAubWRpLXNraXAtbmV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLynIjsKICAgIH0KCiAgICAubWRpLXNraXAtcHJldmlvdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkq4iOwogICAgfQoKICAgIC5tZGktc2tpcC1wcmV2aW91cy1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmaMiOwogICAgfQoKICAgIC5tZGktc2tpcC1wcmV2aW91cy1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZpCI7CiAgICB9CgogICAgLm1kaS1za2lwLXByZXZpb3VzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvKgiOwogICAgfQoKICAgIC5tZGktc2t1bGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmowiOwogICAgfQoKICAgIC5tZGktc2t1bGwtY3Jvc3Nib25lczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvhiI7CiAgICB9CgogICAgLm1kaS1za3VsbC1jcm9zc2JvbmVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr4ciOwogICAgfQoKICAgIC5tZGktc2t1bGwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CviCI7CiAgICB9CgogICAgLm1kaS1za3VsbC1zY2FuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOHIjsKICAgIH0KCiAgICAubWRpLXNrdWxsLXNjYW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTiCI7CiAgICB9CgogICAgLm1kaS1za3lwZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSryI7CiAgICB9CgogICAgLm1kaS1za3lwZS1idXNpbmVzczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSsCI7CiAgICB9CgogICAgLm1kaS1zbGFjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSsSI7CiAgICB9CgogICAgLm1kaS1zbGFzaC1mb3J3YXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+fIjsKICAgIH0KCiAgICAubWRpLXNsYXNoLWZvcndhcmQtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+gIjsKICAgIH0KCiAgICAubWRpLXNsZWRkaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJCbIjsKICAgIH0KCiAgICAubWRpLXNsZWVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJKyIjsKICAgIH0KCiAgICAubWRpLXNsZWVwLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSsyI7CiAgICB9CgogICAgLm1kaS1zbGlkZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GWpSI7CiAgICB9CgogICAgLm1kaS1zbG9wZS1kb3duaGlsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C3vyI7CiAgICB9CgogICAgLm1kaS1zbG9wZS11cGhpbGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuIAiOwogICAgfQoKICAgIC5tZGktc2xvdC1tYWNoaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSUIjsKICAgIH0KCiAgICAubWRpLXNsb3QtbWFjaGluZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSVIjsKICAgIH0KCiAgICAubWRpLXNtYXJ0LWNhcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgr0iOwogICAgfQoKICAgIC5tZGktc21hcnQtY2FyZC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo7ciOwogICAgfQoKICAgIC5tZGktc21hcnQtY2FyZC1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjuCI7CiAgICB9CgogICAgLm1kaS1zbWFydC1jYXJkLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgr4iOwogICAgfQoKICAgIC5tZGktc21hcnQtY2FyZC1yZWFkZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgr8iOwogICAgfQoKICAgIC5tZGktc21hcnQtY2FyZC1yZWFkZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDgCI7CiAgICB9CgogICAgLm1kaS1zbW9nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKmxIjsKICAgIH0KCiAgICAubWRpLXNtb2tlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6ZIjsKICAgIH0KCiAgICAubWRpLXNtb2tlLWRldGVjdG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI6SIjsKICAgIH0KCiAgICAubWRpLXNtb2tlLWRldGVjdG9yLWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSuIjsKICAgIH0KCiAgICAubWRpLXNtb2tlLWRldGVjdG9yLWFsZXJ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpK8iOwogICAgfQoKICAgIC5tZGktc21va2UtZGV0ZWN0b3Itb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCJIjsKICAgIH0KCiAgICAubWRpLXNtb2tlLWRldGVjdG9yLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCKIjsKICAgIH0KCiAgICAubWRpLXNtb2tlLWRldGVjdG9yLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoIgiOwogICAgfQoKICAgIC5tZGktc21va2UtZGV0ZWN0b3ItdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgiyI7CiAgICB9CgogICAgLm1kaS1zbW9rZS1kZXRlY3Rvci12YXJpYW50LWFsZXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSwIjsKICAgIH0KCiAgICAubWRpLXNtb2tlLWRldGVjdG9yLXZhcmlhbnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCMIjsKICAgIH0KCiAgICAubWRpLXNtb2tpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkrQiOwogICAgfQoKICAgIC5tZGktc21va2luZy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkrUiOwogICAgfQoKICAgIC5tZGktc21va2luZy1waXBlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCNIjsKICAgIH0KCiAgICAubWRpLXNtb2tpbmctcGlwZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxkKgiOwogICAgfQoKICAgIC5tZGktc25haWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmbciOwogICAgfQoKICAgIC5tZGktc25ha2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlI4iOwogICAgfQoKICAgIC5tZGktc25hcGNoYXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkrYiOwogICAgfQoKICAgIC5tZGktc25vd2JvYXJkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYyHIjsKICAgIH0KCiAgICAubWRpLXNub3dmbGFrZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CclyI7CiAgICB9CgogICAgLm1kaS1zbm93Zmxha2UtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvKkiOwogICAgfQoKICAgIC5tZGktc25vd2ZsYWtlLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamwIjsKICAgIH0KCiAgICAubWRpLXNub3dmbGFrZS1tZWx0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuLIjsKICAgIH0KCiAgICAubWRpLXNub3dmbGFrZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk6MiOwogICAgfQoKICAgIC5tZGktc25vd2ZsYWtlLXRoZXJtb21ldGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsamxIjsKICAgIH0KCiAgICAubWRpLXNub3dmbGFrZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyqIjsKICAgIH0KCiAgICAubWRpLXNub3dtYW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkrciOwogICAgfQoKICAgIC5tZGktc25vd21vYmlsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CbnSI7CiAgICB9CgogICAgLm1kaS1zbm93c2hvZWluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpsiI7CiAgICB9CgogICAgLm1kaS1zb2NjZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkrgiOwogICAgfQoKICAgIC5tZGktc29jY2VyLWZpZWxkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKC0IjsKICAgIH0KCiAgICAubWRpLXNvY2lhbC1kaXN0YW5jZS0yLW1ldGVyczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVuSI7CiAgICB9CgogICAgLm1kaS1zb2NpYWwtZGlzdGFuY2UtNi1mZWV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZW6IjsKICAgIH0KCiAgICAubWRpLXNvZmE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwkrkiOwogICAgfQoKICAgIC5tZGktc29mYS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWtIjsKICAgIH0KCiAgICAubWRpLXNvZmEtc2luZ2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWuIjsKICAgIH0KCiAgICAubWRpLXNvZmEtc2luZ2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxla8iOwogICAgfQoKICAgIC5tZGktc29sYXItcGFuZWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtpsiOwogICAgfQoKICAgIC5tZGktc29sYXItcGFuZWwtbGFyZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtpwiOwogICAgfQoKICAgIC5tZGktc29sYXItcG93ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqbIiOwogICAgfQoKICAgIC5tZGktc29sYXItcG93ZXItdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpsyI7CiAgICB9CgogICAgLm1kaS1zb2xhci1wb3dlci12YXJpYW50LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqbQiOwogICAgfQoKICAgIC5tZGktc29sZGVyaW5nLWlyb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgpIiOwogICAgfQoKICAgIC5tZGktc29saWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmo0iOwogICAgfQoKICAgIC5tZGktc29ueS1wbGF5c3RhdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CQlCI7CiAgICB9CgogICAgLm1kaS1zb3J0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJK6IjsKICAgIH0KCiAgICAubWRpLXNvcnQtYWxwaGFiZXRpY2FsLWFzY2VuZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CWvSI7CiAgICB9CgogICAgLm1kaS1zb3J0LWFscGhhYmV0aWNhbC1hc2NlbmRpbmctdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFiCI7CiAgICB9CgogICAgLm1kaS1zb3J0LWFscGhhYmV0aWNhbC1kZXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJa/IjsKICAgIH0KCiAgICAubWRpLXNvcnQtYWxwaGFiZXRpY2FsLWRlc2NlbmRpbmctdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFiSI7CiAgICB9CgogICAgLm1kaS1zb3J0LWFscGhhYmV0aWNhbC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJK7IjsKICAgIH0KCiAgICAubWRpLXNvcnQtYXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJK8IjsKICAgIH0KCiAgICAubWRpLXNvcnQtYm9vbC1hc2NlbmRpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjoUiOwogICAgfQoKICAgIC5tZGktc29ydC1ib29sLWFzY2VuZGluZy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6GIjsKICAgIH0KCiAgICAubWRpLXNvcnQtYm9vbC1kZXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6HIjsKICAgIH0KCiAgICAubWRpLXNvcnQtYm9vbC1kZXNjZW5kaW5nLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjogiOwogICAgfQoKICAgIC5tZGktc29ydC1jYWxlbmRhci1hc2NlbmRpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlYciOwogICAgfQoKICAgIC5tZGktc29ydC1jYWxlbmRhci1kZXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWIIjsKICAgIH0KCiAgICAubWRpLXNvcnQtY2xvY2stYXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWJIjsKICAgIH0KCiAgICAubWRpLXNvcnQtY2xvY2stYXNjZW5kaW5nLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlYoiOwogICAgfQoKICAgIC5tZGktc29ydC1jbG9jay1kZXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWLIjsKICAgIH0KCiAgICAubWRpLXNvcnQtY2xvY2stZGVzY2VuZGluZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWMIjsKICAgIH0KCiAgICAubWRpLXNvcnQtZGVzY2VuZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSvSI7CiAgICB9CgogICAgLm1kaS1zb3J0LW51bWVyaWMtYXNjZW5kaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6JIjsKICAgIH0KCiAgICAubWRpLXNvcnQtbnVtZXJpYy1hc2NlbmRpbmctdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CkjSI7CiAgICB9CgogICAgLm1kaS1zb3J0LW51bWVyaWMtZGVzY2VuZGluZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOiiI7CiAgICB9CgogICAgLm1kaS1zb3J0LW51bWVyaWMtZGVzY2VuZGluZy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKuSIjsKICAgIH0KCiAgICAubWRpLXNvcnQtbnVtZXJpYy12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJK+IjsKICAgIH0KCiAgICAubWRpLXNvcnQtcmV2ZXJzZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsIy8IjsKICAgIH0KCiAgICAubWRpLXNvcnQtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CSvyI7CiAgICB9CgogICAgLm1kaS1zb3J0LXZhcmlhbnQtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzjSI7CiAgICB9CgogICAgLm1kaS1zb3J0LXZhcmlhbnQtbG9jay1vcGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOOIjsKICAgIH0KCiAgICAubWRpLXNvcnQtdmFyaWFudC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqrsiOwogICAgfQoKICAgIC5tZGktc29ydC12YXJpYW50LXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GFhyI7CiAgICB9CgogICAgLm1kaS1zb3VuZGJhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GfmyI7CiAgICB9CgogICAgLm1kaS1zb3VuZGNsb3VkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOAIjsKICAgIH0KCiAgICAubWRpLXNvdXJjZS1icmFuY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmKwiOwogICAgfQoKICAgIC5tZGktc291cmNlLWJyYW5jaC1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTjyI7CiAgICB9CgogICAgLm1kaS1zb3VyY2UtYnJhbmNoLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOLIjsKICAgIH0KCiAgICAubWRpLXNvdXJjZS1icmFuY2gtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTiiI7CiAgICB9CgogICAgLm1kaS1zb3VyY2UtYnJhbmNoLXJlZnJlc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk40iOwogICAgfQoKICAgIC5tZGktc291cmNlLWJyYW5jaC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk4wiOwogICAgfQoKICAgIC5tZGktc291cmNlLWJyYW5jaC1zeW5jOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZOOIjsKICAgIH0KCiAgICAubWRpLXNvdXJjZS1jb21taXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnJgiOwogICAgfQoKICAgIC5tZGktc291cmNlLWNvbW1pdC1lbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnJkiOwogICAgfQoKICAgIC5tZGktc291cmNlLWNvbW1pdC1lbmQtbG9jYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnJoiOwogICAgfQoKICAgIC5tZGktc291cmNlLWNvbW1pdC1sb2NhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcmyI7CiAgICB9CgogICAgLm1kaS1zb3VyY2UtY29tbWl0LW5leHQtbG9jYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnJwiOwogICAgfQoKICAgIC5tZGktc291cmNlLWNvbW1pdC1zdGFydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcnSI7CiAgICB9CgogICAgLm1kaS1zb3VyY2UtY29tbWl0LXN0YXJ0LW5leHQtbG9jYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnJ4iOwogICAgfQoKICAgIC5tZGktc291cmNlLWZvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk4EiOwogICAgfQoKICAgIC5tZGktc291cmNlLW1lcmdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJitIjsKICAgIH0KCiAgICAubWRpLXNvdXJjZS1wdWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOCIjsKICAgIH0KCiAgICAubWRpLXNvdXJjZS1yZXBvc2l0b3J5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOPIjsKICAgIH0KCiAgICAubWRpLXNvdXJjZS1yZXBvc2l0b3J5LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLOQIjsKICAgIH0KCiAgICAubWRpLXNveS1zYXVjZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfriI7CiAgICB9CgogICAgLm1kaS1zb3ktc2F1Y2Utb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+8IjsKICAgIH0KCiAgICAubWRpLXNwYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzkSI7CiAgICB9CgogICAgLm1kaS1zcGEtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzkiI7CiAgICB9CgogICAgLm1kaS1zcGFjZS1pbnZhZGVyczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CviSI7CiAgICB9CgogICAgLm1kaS1zcGFjZS1zdGF0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY6DIjsKICAgIH0KCiAgICAubWRpLXNwYWRlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLmlIjsKICAgIH0KCiAgICAubWRpLXNwZWFrZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk4MiOwogICAgfQoKICAgIC5tZGktc3BlYWtlci1ibHVldG9vdGg6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpqIiOwogICAgfQoKICAgIC5tZGktc3BlYWtlci1tZXNzYWdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayRIjsKICAgIH0KCiAgICAubWRpLXNwZWFrZXItbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtLgiOwogICAgfQoKICAgIC5tZGktc3BlYWtlci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk4QiOwogICAgfQoKICAgIC5tZGktc3BlYWtlci1wYXVzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtsyI7CiAgICB9CgogICAgLm1kaS1zcGVha2VyLXBsYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrbIiOwogICAgfQoKICAgIC5tZGktc3BlYWtlci1zdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa20IjsKICAgIH0KCiAgICAubWRpLXNwZWFrZXItd2lyZWxlc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnJ8iOwogICAgfQoKICAgIC5tZGktc3BlYXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxoYUiOwogICAgfQoKICAgIC5tZGktc3BlZWRvbWV0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk4UiOwogICAgfQoKICAgIC5tZGktc3BlZWRvbWV0ZXItbWVkaXVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6FIjsKICAgIH0KCiAgICAubWRpLXNwZWVkb21ldGVyLXNsb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvoYiOwogICAgfQoKICAgIC5tZGktc3BlbGxjaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CThiI7CiAgICB9CgogICAgLm1kaS1zcGhlcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZQiOwogICAgfQoKICAgIC5tZGktc3BoZXJlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GllSI7CiAgICB9CgogICAgLm1kaS1zcGlkZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh6oiOwogICAgfQoKICAgIC5tZGktc3BpZGVyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsbUiOwogICAgfQoKICAgIC5tZGktc3BpZGVyLXRocmVhZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHqyI7CiAgICB9CgogICAgLm1kaS1zcGlkZXItd2ViOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+KIjsKICAgIH0KCiAgICAubWRpLXNwaXJpdC1sZXZlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GTsSI7CiAgICB9CgogICAgLm1kaS1zcG9vbi1zdWdhcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQqSI7CiAgICB9CgogICAgLm1kaS1zcG90aWZ5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOHIjsKICAgIH0KCiAgICAubWRpLXNwb3RsaWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTiCI7CiAgICB9CgogICAgLm1kaS1zcG90bGlnaHQtYmVhbTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTiSI7CiAgICB9CgogICAgLm1kaS1zcHJheTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CZpSI7CiAgICB9CgogICAgLm1kaS1zcHJheS1ib3R0bGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq6AiOwogICAgfQoKICAgIC5tZGktc3ByaW5rbGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGfIjsKICAgIH0KCiAgICAubWRpLXNwcmlua2xlci1maXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaadIjsKICAgIH0KCiAgICAubWRpLXNwcmlua2xlci12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGgIjsKICAgIH0KCiAgICAubWRpLXNwcm91dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5piI7CiAgICB9CgogICAgLm1kaS1zcHJvdXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C5pyI7CiAgICB9CgogICAgLm1kaS1zcXVhcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnaQiOwogICAgfQoKICAgIC5tZGktc3F1YXJlLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUgCI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsZAiOwogICAgfQoKICAgIC5tZGktc3F1YXJlLWVkaXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CkjCI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtbWVkaXVtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiTIjsKICAgIH0KCiAgICAubWRpLXNxdWFyZS1tZWRpdW0tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ColCI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYuuIjsKICAgIH0KCiAgICAubWRpLXNxdWFyZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLryI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtb3BhY2l0eTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GhlCI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdoyI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtcm9vdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CehCI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtcm9vdC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpqMiOwogICAgfQoKICAgIC5tZGktc3F1YXJlLXJvdW5kZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxk7siOwogICAgfQoKICAgIC5tZGktc3F1YXJlLXJvdW5kZWQtYmFkZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqIciOwogICAgfQoKICAgIC5tZGktc3F1YXJlLXJvdW5kZWQtYmFkZ2Utb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GoiCI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtcm91bmRlZC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZO8IjsKICAgIH0KCiAgICAubWRpLXNxdWFyZS1zbWFsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87ColSI7CiAgICB9CgogICAgLm1kaS1zcXVhcmUtd2F2ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GRuyI7CiAgICB9CgogICAgLm1kaS1zcXVlZWdlZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CroSI7CiAgICB9CgogICAgLm1kaS1zc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwo4AiOwogICAgfQoKICAgIC5tZGktc3RhY2stZXhjaGFuZ2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmIsiOwogICAgfQoKICAgIC5tZGktc3RhY2stb3ZlcmZsb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk4wiOwogICAgfQoKICAgIC5tZGktc3RhY2twYXRoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsI2ZIjsKICAgIH0KCiAgICAubWRpLXN0YWRpdW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv7kiOwogICAgfQoKICAgIC5tZGktc3RhZGl1bS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayDIjsKICAgIH0KCiAgICAubWRpLXN0YWRpdW0tdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcoCI7CiAgICB9CgogICAgLm1kaS1zdGFpcnM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk40iOwogICAgfQoKICAgIC5tZGktc3RhaXJzLWJveDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOniI7CiAgICB9CgogICAgLm1kaS1zdGFpcnMtZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKviI7CiAgICB9CgogICAgLm1kaS1zdGFpcnMtdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxir0iOwogICAgfQoKICAgIC5tZGktc3RhbXBlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C0uSI7CiAgICB9CgogICAgLm1kaS1zdGFuZGFyZC1kZWZpbml0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+vIjsKICAgIH0KCiAgICAubWRpLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk44iOwogICAgfQoKICAgIC5tZGktc3Rhci1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqbMiOwogICAgfQoKICAgIC5tZGktc3Rhci1ib3gtbXVsdGlwbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxioYiOwogICAgfQoKICAgIC5tZGktc3Rhci1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKhyI7CiAgICB9CgogICAgLm1kaS1zdGFyLWJveC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKm0IjsKICAgIH0KCiAgICAubWRpLXN0YXItY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlaYiOwogICAgfQoKICAgIC5tZGktc3Rhci1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWqIjsKICAgIH0KCiAgICAubWRpLXN0YXItY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOPIjsKICAgIH0KCiAgICAubWRpLXN0YXItY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpqQiOwogICAgfQoKICAgIC5tZGktc3Rhci1jb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmagiOwogICAgfQoKICAgIC5tZGktc3Rhci1jb2ctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZqSI7CiAgICB9CgogICAgLm1kaS1zdGFyLWNyZXNjZW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKW5IjsKICAgIH0KCiAgICAubWRpLXN0YXItZGF2aWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpboiOwogICAgfQoKICAgIC5tZGktc3Rhci1mYWNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKalIjsKICAgIH0KCiAgICAubWRpLXN0YXItZm91ci1wb2ludHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwq6IiOwogICAgfQoKICAgIC5tZGktc3Rhci1mb3VyLXBvaW50cy1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsZEiOwogICAgfQoKICAgIC5tZGktc3Rhci1mb3VyLXBvaW50cy1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxkiI7CiAgICB9CgogICAgLm1kaS1zdGFyLWZvdXItcG9pbnRzLWNpcmNsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GxkyI7CiAgICB9CgogICAgLm1kaS1zdGFyLWZvdXItcG9pbnRzLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGUIjsKICAgIH0KCiAgICAubWRpLXN0YXItZm91ci1wb2ludHMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CroyI7CiAgICB9CgogICAgLm1kaS1zdGFyLWZvdXItcG9pbnRzLXNtYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGVIjsKICAgIH0KCiAgICAubWRpLXN0YXItaGFsZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CJhiI7CiAgICB9CgogICAgLm1kaS1zdGFyLWhhbGYtZnVsbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTkCI7CiAgICB9CgogICAgLm1kaS1zdGFyLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWkIjsKICAgIH0KCiAgICAubWRpLXN0YXItbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVqCI7CiAgICB9CgogICAgLm1kaS1zdGFyLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTkSI7CiAgICB9CgogICAgLm1kaS1zdGFyLW9mZi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWbIjsKICAgIH0KCiAgICAubWRpLXN0YXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTkiI7CiAgICB9CgogICAgLm1kaS1zdGFyLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlaMiOwogICAgfQoKICAgIC5tZGktc3Rhci1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlaciOwogICAgfQoKICAgIC5tZGktc3Rhci1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlaUiOwogICAgfQoKICAgIC5tZGktc3Rhci1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVqSI7CiAgICB9CgogICAgLm1kaS1zdGFyLXNldHRpbmdzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZmqIjsKICAgIH0KCiAgICAubWRpLXN0YXItc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZqyI7CiAgICB9CgogICAgLm1kaS1zdGFyLXNob290aW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2BIjsKICAgIH0KCiAgICAubWRpLXN0YXItc2hvb3Rpbmctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdgiI7CiAgICB9CgogICAgLm1kaS1zdGFyLXRocmVlLXBvaW50czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CrpCI7CiAgICB9CgogICAgLm1kaS1zdGFyLXRocmVlLXBvaW50cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKulIjsKICAgIH0KCiAgICAubWRpLXN0YXRlLW1hY2hpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh68iOwogICAgfQoKICAgIC5tZGktc3RlYW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk5MiOwogICAgfQoKICAgIC5tZGktc3RlZXJpbmc6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk5QiOwogICAgfQoKICAgIC5tZGktc3RlZXJpbmctb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSOIjsKICAgIH0KCiAgICAubWRpLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk5UiOwogICAgfQoKICAgIC5tZGktc3RlcC1iYWNrd2FyZC0yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOWIjsKICAgIH0KCiAgICAubWRpLXN0ZXAtZm9yd2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTlyI7CiAgICB9CgogICAgLm1kaS1zdGVwLWZvcndhcmQtMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTmCI7CiAgICB9CgogICAgLm1kaS1zdGV0aG9zY29wZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTmSI7CiAgICB9CgogICAgLm1kaS1zdGlja2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2kIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjaUiOwogICAgfQoKICAgIC5tZGktc3RpY2tlci1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2mIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjaciOwogICAgfQoKICAgIC5tZGktc3RpY2tlci1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2oIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwl5AiOwogICAgfQoKICAgIC5tZGktc3RpY2tlci1lbW9qaTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CehSI7CiAgICB9CgogICAgLm1kaS1zdGlja2VyLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2pIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GNqiI7CiAgICB9CgogICAgLm1kaS1zdGlja2VyLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjasiOwogICAgfQoKICAgIC5tZGktc3RpY2tlci1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2sIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2tIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2uIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxja8iOwogICAgfQoKICAgIC5tZGktc3RpY2tlci10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6OIjsKICAgIH0KCiAgICAubWRpLXN0aWNrZXItdGV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ6PIjsKICAgIH0KCiAgICAubWRpLXN0b2NraW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOaIjsKICAgIH0KCiAgICAubWRpLXN0b21hY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgpMiOwogICAgfQoKICAgIC5tZGktc3Rvb2w6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpZ0iOwogICAgfQoKICAgIC5tZGktc3Rvb2wtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GlniI7CiAgICB9CgogICAgLm1kaS1zdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJObIjsKICAgIH0KCiAgICAubWRpLXN0b3AtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJmmIjsKICAgIH0KCiAgICAubWRpLXN0b3AtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmaciOwogICAgfQoKICAgIC5tZGktc3RvcmFnZS10YW5rOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsam1IjsKICAgIH0KCiAgICAubWRpLXN0b3JhZ2UtdGFuay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsam2IjsKICAgIH0KCiAgICAubWRpLXN0b3JlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOcIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLTI0LWhvdXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk50iOwogICAgfQoKICAgIC5tZGktc3RvcmUtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo4EiOwogICAgfQoKICAgIC5tZGktc3RvcmUtYWxlcnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjgiI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjgyI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOEIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOFIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLWNsb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo4YiOwogICAgfQoKICAgIC5tZGktc3RvcmUtY29nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOHIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLWNvZy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOIIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo4kiOwogICAgfQoKICAgIC5tZGktc3RvcmUtZWRpdC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOKIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLW1hcmtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjiyI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1tYXJrZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjjCI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZniI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaONIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLW9mZjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjjiI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjjyI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2hIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxmZ8iOwogICAgfQoKICAgIC5tZGktc3RvcmUtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOQIjsKICAgIH0KCiAgICAubWRpLXN0b3JlLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GZoCI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjkSI7CiAgICB9CgogICAgLm1kaS1zdG9yZS1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo5IiOwogICAgfQoKICAgIC5tZGktc3RvcmUtc2VhcmNoLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo5MiOwogICAgfQoKICAgIC5tZGktc3RvcmUtc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo5QiOwogICAgfQoKICAgIC5tZGktc3RvcmUtc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjlSI7CiAgICB9CgogICAgLm1kaS1zdG9yZWZyb250OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+HIjsKICAgIH0KCiAgICAubWRpLXN0b3JlZnJvbnQtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrb0iOwogICAgfQoKICAgIC5tZGktc3RvcmVmcm9udC1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa2+IjsKICAgIH0KCiAgICAubWRpLXN0b3JlZnJvbnQtZWRpdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GtvyI7CiAgICB9CgogICAgLm1kaS1zdG9yZWZyb250LWVkaXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GugCI7CiAgICB9CgogICAgLm1kaS1zdG9yZWZyb250LW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6DIjsKICAgIH0KCiAgICAubWRpLXN0b3JlZnJvbnQtbWludXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuhCI7CiAgICB9CgogICAgLm1kaS1zdG9yZWZyb250LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxg4EiOwogICAgfQoKICAgIC5tZGktc3RvcmVmcm9udC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6BIjsKICAgIH0KCiAgICAubWRpLXN0b3JlZnJvbnQtcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6CIjsKICAgIH0KCiAgICAubWRpLXN0b3JlZnJvbnQtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa6FIjsKICAgIH0KCiAgICAubWRpLXN0b3JlZnJvbnQtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxroYiOwogICAgfQoKICAgIC5tZGktc3RvdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk54iOwogICAgfQoKICAgIC5tZGktc3RyYXRlZ3k6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh5YiOwogICAgfQoKICAgIC5tZGktc3RyZXRjaC10by1wYWdlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLyrIjsKICAgIH0KCiAgICAubWRpLXN0cmV0Y2gtdG8tcGFnZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLysIjsKICAgIH0KCiAgICAubWRpLXN0cmluZy1saWdodHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiroiOwogICAgfQoKICAgIC5tZGktc3RyaW5nLWxpZ2h0cy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxirsiOwogICAgfQoKICAgIC5tZGktc3ViZGlyZWN0b3J5LWFycm93LWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmIwiOwogICAgfQoKICAgIC5tZGktc3ViZGlyZWN0b3J5LWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJiNIjsKICAgIH0KCiAgICAubWRpLXN1Ym1hcmluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVrCI7CiAgICB9CgogICAgLm1kaS1zdWJ0aXRsZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqJYiOwogICAgfQoKICAgIC5tZGktc3VidGl0bGVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqJciOwogICAgfQoKICAgIC5tZGktc3Vid2F5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqsIjsKICAgIH0KCiAgICAubWRpLXN1YndheS1hbGVydC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLadIjsKICAgIH0KCiAgICAubWRpLXN1YndheS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOfIjsKICAgIH0KCiAgICAubWRpLXN1bW1pdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CehiI7CiAgICB9CgogICAgLm1kaS1zdW4tYW5nbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrKciOwogICAgfQoKICAgIC5tZGktc3VuLWFuZ2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrKgiOwogICAgfQoKICAgIC5tZGktc3VuLWNsb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsam3IjsKICAgIH0KCiAgICAubWRpLXN1bi1jbG9jay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsam4IjsKICAgIH0KCiAgICAubWRpLXN1bi1jb21wYXNzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaalIjsKICAgIH0KCiAgICAubWRpLXN1bi1zbm93Zmxha2U6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnpYiOwogICAgfQoKICAgIC5tZGktc3VuLXNub3dmbGFrZS12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsam5IjsKICAgIH0KCiAgICAubWRpLXN1bi10aGVybW9tZXRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjliI7CiAgICB9CgogICAgLm1kaS1zdW4tdGhlcm1vbWV0ZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GjlyI7CiAgICB9CgogICAgLm1kaS1zdW4td2lyZWxlc3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn74iOwogICAgfQoKICAgIC5tZGktc3VuLXdpcmVsZXNzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxn78iOwogICAgfQoKICAgIC5tZGktc3VuZ2xhc3NlczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CToCI7CiAgICB9CgogICAgLm1kaS1zdXJmaW5nOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZ2GIjsKICAgIH0KCiAgICAubWRpLXN1cnJvdW5kLXNvdW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJeFIjsKICAgIH0KCiAgICAubWRpLXN1cnJvdW5kLXNvdW5kLTItMDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfsCI7CiAgICB9CgogICAgLm1kaS1zdXJyb3VuZC1zb3VuZC0yLTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnKkiOwogICAgfQoKICAgIC5tZGktc3Vycm91bmQtc291bmQtMy0xOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+xIjsKICAgIH0KCiAgICAubWRpLXN1cnJvdW5kLXNvdW5kLTUtMTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CfsiI7CiAgICB9CgogICAgLm1kaS1zdXJyb3VuZC1zb3VuZC01LTEtMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcqiI7CiAgICB9CgogICAgLm1kaS1zdXJyb3VuZC1zb3VuZC03LTE6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn7MiOwogICAgfQoKICAgIC5tZGktc3ZnOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJyhIjsKICAgIH0KCiAgICAubWRpLXN3YXAtaG9yaXpvbnRhbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CToSI7CiAgICB9CgogICAgLm1kaS1zd2FwLWhvcml6b250YWwtYm9sZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvjSI7CiAgICB9CgogICAgLm1kaS1zd2FwLWhvcml6b250YWwtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+hIjsKICAgIH0KCiAgICAubWRpLXN3YXAtaG9yaXpvbnRhbC1jaXJjbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C/oiI7CiAgICB9CgogICAgLm1kaS1zd2FwLWhvcml6b250YWwtaGlkZGVuOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbSOIjsKICAgIH0KCiAgICAubWRpLXN3YXAtaG9yaXpvbnRhbC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOBIjsKICAgIH0KCiAgICAubWRpLXN3YXAtdmVydGljYWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk6IiOwogICAgfQoKICAgIC5tZGktc3dhcC12ZXJ0aWNhbC1ib2xkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+OIjsKICAgIH0KCiAgICAubWRpLXN3YXAtdmVydGljYWwtY2lyY2xlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+jIjsKICAgIH0KCiAgICAubWRpLXN3YXAtdmVydGljYWwtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwv6QiOwogICAgfQoKICAgIC5tZGktc3dhcC12ZXJ0aWNhbC12YXJpYW50OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKOCIjsKICAgIH0KCiAgICAubWRpLXN3aW06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk6MiOwogICAgfQoKICAgIC5tZGktc3dpdGNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOkIjsKICAgIH0KCiAgICAubWRpLXN3b3JkOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOlIjsKICAgIH0KCiAgICAubWRpLXN3b3JkLWNyb3NzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ6HIjsKICAgIH0KCiAgICAubWRpLXN5bGxhYmFyeS1oYW5ndWw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjLMiOwogICAgfQoKICAgIC5tZGktc3lsbGFiYXJ5LWhpcmFnYW5hOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYy0IjsKICAgIH0KCiAgICAubWRpLXN5bGxhYmFyeS1rYXRha2FuYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GMtSI7CiAgICB9CgogICAgLm1kaS1zeWxsYWJhcnkta2F0YWthbmEtaGFsZndpZHRoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYy2IjsKICAgIH0KCiAgICAubWRpLXN5bWJvbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUgSI7CiAgICB9CgogICAgLm1kaS1zeW1mb255OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKumIjsKICAgIH0KCiAgICAubWRpLXN5bmFnb2d1ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GshCI7CiAgICB9CgogICAgLm1kaS1zeW5hZ29ndWUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GshSI7CiAgICB9CgogICAgLm1kaS1zeW5jOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOmIjsKICAgIH0KCiAgICAubWRpLXN5bmMtYWxlcnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk6ciOwogICAgfQoKICAgIC5tZGktc3luYy1jaXJjbGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjbgiOwogICAgfQoKICAgIC5tZGktc3luYy1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk6giOwogICAgfQoKICAgIC5tZGktdGFiOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOpIjsKICAgIH0KCiAgICAubWRpLXRhYi1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CtiyI7CiAgICB9CgogICAgLm1kaS10YWItcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CdnCI7CiAgICB9CgogICAgLm1kaS10YWItcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2MIjsKICAgIH0KCiAgICAubWRpLXRhYi1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpp4iOwogICAgfQoKICAgIC5tZGktdGFiLXVuc2VsZWN0ZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk6oiOwogICAgfQoKICAgIC5tZGktdGFibGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk6siOwogICAgfQoKICAgIC5tZGktdGFibGUtYWNjb3VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOuSI7CiAgICB9CgogICAgLm1kaS10YWJsZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOuiI7CiAgICB9CgogICAgLm1kaS10YWJsZS1hcnJvdy1kb3duOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY67IjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWFycm93LWxlZnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjrwiOwogICAgfQoKICAgIC5tZGktdGFibGUtYXJyb3ctcmlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjr0iOwogICAgfQoKICAgIC5tZGktdGFibGUtYXJyb3ctdXA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjr4iOwogICAgfQoKICAgIC5tZGktdGFibGUtYm9yZGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiYIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOvyI7CiAgICB9CgogICAgLm1kaS10YWJsZS1jaGFpcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBoSI7CiAgICB9CgogICAgLm1kaS10YWJsZS1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPgCI7CiAgICB9CgogICAgLm1kaS10YWJsZS1jbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPgSI7CiAgICB9CgogICAgLm1kaS10YWJsZS1jb2c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj4IiOwogICAgfQoKICAgIC5tZGktdGFibGUtY29sdW1uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKC1IjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWNvbHVtbi1wbHVzLWFmdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOsIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWNvbHVtbi1wbHVzLWJlZm9yZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTrSI7CiAgICB9CgogICAgLm1kaS10YWJsZS1jb2x1bW4tcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOuIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWNvbHVtbi13aWR0aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTryI7CiAgICB9CgogICAgLm1kaS10YWJsZS1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOwIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWV5ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GClCI7CiAgICB9CgogICAgLm1kaS10YWJsZS1leWUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+DIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWZpbHRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GujCI7CiAgICB9CgogICAgLm1kaS10YWJsZS1mdXJuaXR1cmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlrwiOwogICAgfQoKICAgIC5tZGktdGFibGUtaGVhZGVycy1leWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiJ0iOwogICAgfQoKICAgIC5tZGktdGFibGUtaGVhZGVycy1leWUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYieIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+EIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWtleTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GPhSI7CiAgICB9CgogICAgLm1kaS10YWJsZS1sYXJnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTsSI7CiAgICB9CgogICAgLm1kaS10YWJsZS1sYXJnZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6HIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLWxhcmdlLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+iCI7CiAgICB9CgogICAgLm1kaS10YWJsZS1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+GIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLW1lcmdlLWNlbGxzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKamIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+HIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+IIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLW5ldHdvcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj4kiOwogICAgfQoKICAgIC5tZGktdGFibGUtb2YtY29udGVudHM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoLYiOwogICAgfQoKICAgIC5tZGktdGFibGUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY+KIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXBpY25pYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GdgyI7CiAgICB9CgogICAgLm1kaS10YWJsZS1waXZvdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GgvCI7CiAgICB9CgogICAgLm1kaS10YWJsZS1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKm1IjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayhIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXJlZnJlc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjqAiOwogICAgfQoKICAgIC5tZGktdGFibGUtcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKm2IjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXJvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CgtyI7CiAgICB9CgogICAgLm1kaS10YWJsZS1yb3ctaGVpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOyIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXJvdy1wbHVzLWFmdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJOzIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXJvdy1wbHVzLWJlZm9yZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTtCI7CiAgICB9CgogICAgLm1kaS10YWJsZS1yb3ctcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJO1IjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXNlYXJjaDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CkjyI7CiAgICB9CgogICAgLm1kaS10YWJsZS1zZXR0aW5nczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CguCI7CiAgICB9CgogICAgLm1kaS10YWJsZS1zcGxpdC1jZWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZCqIjsKICAgIH0KCiAgICAubWRpLXRhYmxlLXN0YXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj4siOwogICAgfQoKICAgIC5tZGktdGFibGUtc3luYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GOoSI7CiAgICB9CgogICAgLm1kaS10YWJsZS10ZW5uaXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuagiOwogICAgfQoKICAgIC5tZGktdGFibGV0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJO2IjsKICAgIH0KCiAgICAubWRpLXRhYmxldC1jZWxscGhvbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpqciOwogICAgfQoKICAgIC5tZGktdGFibGV0LWRhc2hib2FyZDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C7jiI7CiAgICB9CgogICAgLm1kaS10YWNvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ2iIjsKICAgIH0KCiAgICAubWRpLXRhZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTuSI7CiAgICB9CgogICAgLm1kaS10YWctYXJyb3ctZG93bjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcqyI7CiAgICB9CgogICAgLm1kaS10YWctYXJyb3ctZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZysIjsKICAgIH0KCiAgICAubWRpLXRhZy1hcnJvdy1sZWZ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZytIjsKICAgIH0KCiAgICAubWRpLXRhZy1hcnJvdy1sZWZ0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxnK4iOwogICAgfQoKICAgIC5tZGktdGFnLWFycm93LXJpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZyvIjsKICAgIH0KCiAgICAubWRpLXRhZy1hcnJvdy1yaWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZywIjsKICAgIH0KCiAgICAubWRpLXRhZy1hcnJvdy11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcsSI7CiAgICB9CgogICAgLm1kaS10YWctYXJyb3ctdXAtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GcsiI7CiAgICB9CgogICAgLm1kaS10YWctY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqboiOwogICAgfQoKICAgIC5tZGktdGFnLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqbsiOwogICAgfQoKICAgIC5tZGktdGFnLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxspwiOwogICAgfQoKICAgIC5tZGktdGFnLWVkaXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GynSI7CiAgICB9CgogICAgLm1kaS10YWctZmFjZXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk7oiOwogICAgfQoKICAgIC5tZGktdGFnLWhlYXJ0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqLIjsKICAgIH0KCiAgICAubWRpLXRhZy1oZWFydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK+PIjsKICAgIH0KCiAgICAubWRpLXRhZy1oaWRkZW46YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsbYiOwogICAgfQoKICAgIC5tZGktdGFnLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSQIjsKICAgIH0KCiAgICAubWRpLXRhZy1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYifIjsKICAgIH0KCiAgICAubWRpLXRhZy1tdWx0aXBsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTuyI7CiAgICB9CgogICAgLm1kaS10YWctbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GLtyI7CiAgICB9CgogICAgLm1kaS10YWctb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYigIjsKICAgIH0KCiAgICAubWRpLXRhZy1vZmYtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GIoSI7CiAgICB9CgogICAgLm1kaS10YWctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTvCI7CiAgICB9CgogICAgLm1kaS10YWctcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CcoiI7CiAgICB9CgogICAgLm1kaS10YWctcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYiiIjsKICAgIH0KCiAgICAubWRpLXRhZy1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnKMiOwogICAgfQoKICAgIC5tZGktdGFnLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYijIjsKICAgIH0KCiAgICAubWRpLXRhZy1zZWFyY2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpIciOwogICAgfQoKICAgIC5tZGktdGFnLXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaSIIjsKICAgIH0KCiAgICAubWRpLXRhZy10ZXh0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYikIjsKICAgIH0KCiAgICAubWRpLXRhZy10ZXh0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwk70iOwogICAgfQoKICAgIC5tZGktdGFpbHdpbmQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxj78iOwogICAgfQoKICAgIC5tZGktdGFsbHktbWFyay0xOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaq8IjsKICAgIH0KCiAgICAubWRpLXRhbGx5LW1hcmstMjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GqvSI7CiAgICB9CgogICAgLm1kaS10YWxseS1tYXJrLTM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqr4iOwogICAgfQoKICAgIC5tZGktdGFsbHktbWFyay00OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaq/IjsKICAgIH0KCiAgICAubWRpLXRhbGx5LW1hcmstNTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrgCI7CiAgICB9CgogICAgLm1kaS10YW5ncmFtOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJO4IjsKICAgIH0KCiAgICAubWRpLXRhbms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwtLoiOwogICAgfQoKICAgIC5tZGktdGFua2VyLXRydWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+lIjsKICAgIH0KCiAgICAubWRpLXRhcGUtZHJpdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxm58iOwogICAgfQoKICAgIC5tZGktdGFwZS1tZWFzdXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2NIjsKICAgIH0KCiAgICAubWRpLXRhcmdldDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CTviI7CiAgICB9CgogICAgLm1kaS10YXJnZXQtYWNjb3VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvkCI7CiAgICB9CgogICAgLm1kaS10YXJnZXQtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CptyI7CiAgICB9CgogICAgLm1kaS10YXhpOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJO/IjsKICAgIH0KCiAgICAubWRpLXRlYTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2niI7CiAgICB9CgogICAgLm1kaS10ZWEtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C2nyI7CiAgICB9CgogICAgLm1kaS10ZWFtdmlld2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSAIjsKICAgIH0KCiAgICAubWRpLXRlZGR5LWJlYXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxo7siOwogICAgfQoKICAgIC5tZGktdGVsZXNjb3BlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsK2OIjsKICAgIH0KCiAgICAubWRpLXRlbGV2aXNpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlIIiOwogICAgfQoKICAgIC5tZGktdGVsZXZpc2lvbi1hbWJpZW50LWxpZ2h0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY2WIjsKICAgIH0KCiAgICAubWRpLXRlbGV2aXNpb24tYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKC5IjsKICAgIH0KCiAgICAubWRpLXRlbGV2aXNpb24tY2xhc3NpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CftCI7CiAgICB9CgogICAgLm1kaS10ZWxldmlzaW9uLWNsYXNzaWMtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKC6IjsKICAgIH0KCiAgICAubWRpLXRlbGV2aXNpb24tZ3VpZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlIMiOwogICAgfQoKICAgIC5tZGktdGVsZXZpc2lvbi1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwoLsiOwogICAgfQoKICAgIC5tZGktdGVsZXZpc2lvbi1wYXVzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+iSI7CiAgICB9CgogICAgLm1kaS10ZWxldmlzaW9uLXBsYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwu48iOwogICAgfQoKICAgIC5tZGktdGVsZXZpc2lvbi1zaGltbWVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSQIjsKICAgIH0KCiAgICAubWRpLXRlbGV2aXNpb24tc3BlYWtlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsmyI7CiAgICB9CgogICAgLm1kaS10ZWxldmlzaW9uLXNwZWFrZXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaycIjsKICAgIH0KCiAgICAubWRpLXRlbGV2aXNpb24tc3RvcDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+iiI7CiAgICB9CgogICAgLm1kaS10ZW1wZXJhdHVyZS1jZWxzaXVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSEIjsKICAgIH0KCiAgICAubWRpLXRlbXBlcmF0dXJlLWZhaHJlbmhlaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlIUiOwogICAgfQoKICAgIC5tZGktdGVtcGVyYXR1cmUta2VsdmluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSGIjsKICAgIH0KCiAgICAubWRpLXRlbXBsZS1idWRkaGlzdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GshiI7CiAgICB9CgogICAgLm1kaS10ZW1wbGUtYnVkZGhpc3Qtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GshyI7CiAgICB9CgogICAgLm1kaS10ZW1wbGUtaGluZHU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrIgiOwogICAgfQoKICAgIC5tZGktdGVtcGxlLWhpbmR1LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrIkiOwogICAgfQoKICAgIC5tZGktdGVubmlzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLagIjsKICAgIH0KCiAgICAubWRpLXRlbm5pcy1iYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSHIjsKICAgIH0KCiAgICAubWRpLXRlbm5pcy1iYWxsLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxsZ8iOwogICAgfQoKICAgIC5tZGktdGVudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUiCI7CiAgICB9CgogICAgLm1kaS10ZXJyYWZvcm06YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxgaIiOwogICAgfQoKICAgIC5tZGktdGVycmFpbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUiSI7CiAgICB9CgogICAgLm1kaS10ZXN0LXR1YmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmagiOwogICAgfQoKICAgIC5tZGktdGVzdC10dWJlLWVtcHR5OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKSRIjsKICAgIH0KCiAgICAubWRpLXRlc3QtdHViZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpJIiOwogICAgfQoKICAgIC5tZGktdGV4dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmqCI7CiAgICB9CgogICAgLm1kaS10ZXh0LWFjY291bnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlbAiOwogICAgfQoKICAgIC5tZGktdGV4dC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwiJoiOwogICAgfQoKICAgIC5tZGktdGV4dC1ib3gtY2hlY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuqYiOwogICAgfQoKICAgIC5tZGktdGV4dC1ib3gtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6pyI7CiAgICB9CgogICAgLm1kaS10ZXh0LWJveC1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsam8IjsKICAgIH0KCiAgICAubWRpLXRleHQtYm94LWVkaXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpvSI7CiAgICB9CgogICAgLm1kaS10ZXh0LWJveC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6qCI7CiAgICB9CgogICAgLm1kaS10ZXh0LWJveC1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqpIjsKICAgIH0KCiAgICAubWRpLXRleHQtYm94LW11bHRpcGxlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKq3IjsKICAgIH0KCiAgICAubWRpLXRleHQtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqrgiOwogICAgfQoKICAgIC5tZGktdGV4dC1ib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CnrSI7CiAgICB9CgogICAgLm1kaS10ZXh0LWJveC1wbHVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqqIjsKICAgIH0KCiAgICAubWRpLXRleHQtYm94LXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C6qyI7CiAgICB9CgogICAgLm1kaS10ZXh0LWJveC1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuqwiOwogICAgfQoKICAgIC5tZGktdGV4dC1ib3gtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuq0iOwogICAgfQoKICAgIC5tZGktdGV4dC1ib3gtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLquIjsKICAgIH0KCiAgICAubWRpLXRleHQtYm94LXNlYXJjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLqvIjsKICAgIH0KCiAgICAubWRpLXRleHQtbG9uZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmqiI7CiAgICB9CgogICAgLm1kaS10ZXh0LXJlY29nbml0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYS9IjsKICAgIH0KCiAgICAubWRpLXRleHQtc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY64IjsKICAgIH0KCiAgICAubWRpLXRleHQtc2VhcmNoLXZhcmlhbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqb4iOwogICAgfQoKICAgIC5tZGktdGV4dC1zaGFkb3c6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmakiOwogICAgfQoKICAgIC5tZGktdGV4dC1zaG9ydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmqSI7CiAgICB9CgogICAgLm1kaS10ZXh0dXJlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSMIjsKICAgIH0KCiAgICAubWRpLXRleHR1cmUtYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL+mIjsKICAgIH0KCiAgICAubWRpLXRoZWF0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlI0iOwogICAgfQoKICAgIC5tZGktdGhlbWUtbGlnaHQtZGFyazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUjiI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlcjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUjyI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4gSI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1hdXRvOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsayPIjsKICAgIH0KCiAgICAubWRpLXRoZXJtb21ldGVyLWJsdWV0b290aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GilSI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GpvyI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1jaGV2cm9uLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwuIIiOwogICAgfQoKICAgIC5tZGktdGhlcm1vbWV0ZXItY2hldnJvbi11cDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4gyI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1oaWdoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYOCIjsKICAgIH0KCiAgICAubWRpLXRoZXJtb21ldGVyLWxpbmVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSQIjsKICAgIH0KCiAgICAubWRpLXRoZXJtb21ldGVyLWxvdzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GDgyI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4hCI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlLEiOwogICAgfQoKICAgIC5tZGktdGhlcm1vbWV0ZXItcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C4hSI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1wcm9iZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsqyI7CiAgICB9CgogICAgLm1kaS10aGVybW9tZXRlci1wcm9iZS1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrKwiOwogICAgfQoKICAgIC5tZGktdGhlcm1vbWV0ZXItd2F0ZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxqoAiOwogICAgfQoKICAgIC5tZGktdGhlcm1vc3RhdDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87COkyI7CiAgICB9CgogICAgLm1kaS10aGVybW9zdGF0LWF1dG86YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrJciOwogICAgfQoKICAgIC5tZGktdGhlcm1vc3RhdC1ib3g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwopEiOwogICAgfQoKICAgIC5tZGktdGhlcm1vc3RhdC1ib3gtYXV0bzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GsmCI7CiAgICB9CgogICAgLm1kaS10aGVybW9zdGF0LWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GygCI7CiAgICB9CgogICAgLm1kaS10aG91Z2h0LWJ1YmJsZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CftiI7CiAgICB9CgogICAgLm1kaS10aG91Z2h0LWJ1YmJsZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJ+3IjsKICAgIH0KCiAgICAubWRpLXRodW1iLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJEiOwogICAgfQoKICAgIC5tZGktdGh1bWItZG93bi1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSSIjsKICAgIH0KCiAgICAubWRpLXRodW1iLXVwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSTIjsKICAgIH0KCiAgICAubWRpLXRodW1iLXVwLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJQiOwogICAgfQoKICAgIC5tZGktdGh1bWJzLXVwLWRvd246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJUiOwogICAgfQoKICAgIC5tZGktdGh1bWJzLXVwLWRvd24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GklCI7CiAgICB9CgogICAgLm1kaS10aWNrZXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJYiOwogICAgfQoKICAgIC5tZGktdGlja2V0LWFjY291bnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJciOwogICAgfQoKICAgIC5tZGktdGlja2V0LWNvbmZpcm1hdGlvbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUmCI7CiAgICB9CgogICAgLm1kaS10aWNrZXQtY29uZmlybWF0aW9uLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjqoiOwogICAgfQoKICAgIC5tZGktdGlja2V0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpJMiOwogICAgfQoKICAgIC5tZGktdGlja2V0LXBlcmNlbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnKQiOwogICAgfQoKICAgIC5tZGktdGlja2V0LXBlcmNlbnQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GQqyI7CiAgICB9CgogICAgLm1kaS10aWU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJkiOwogICAgfQoKICAgIC5tZGktdGlsZGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnKUiOwogICAgfQoKICAgIC5tZGktdGlsZGUtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaOzIjsKICAgIH0KCiAgICAubWRpLXRpbWVsYXBzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUmiI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvkSI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZS1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+lSI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZS1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsL6YIjsKICAgIH0KCiAgICAubWRpLXRpbWVsaW5lLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZSyIjsKICAgIH0KCiAgICAubWRpLXRpbWVsaW5lLWNoZWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlLMiOwogICAgfQoKICAgIC5tZGktdGltZWxpbmUtY2xvY2s6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxh7siOwogICAgfQoKICAgIC5tZGktdGltZWxpbmUtY2xvY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GHvCI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZS1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GUtCI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZS1taW51cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZS1IjsKICAgIH0KCiAgICAubWRpLXRpbWVsaW5lLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr5IiOwogICAgfQoKICAgIC5tZGktdGltZWxpbmUtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+liI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZS1wbHVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvpciOwogICAgfQoKICAgIC5tZGktdGltZWxpbmUtcXVlc3Rpb246YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwvpkiOwogICAgfQoKICAgIC5tZGktdGltZWxpbmUtcXVlc3Rpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87C+miI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZS1yZW1vdmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlLYiOwogICAgfQoKICAgIC5tZGktdGltZWxpbmUtcmVtb3ZlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlLciOwogICAgfQoKICAgIC5tZGktdGltZWxpbmUtdGV4dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvkyI7CiAgICB9CgogICAgLm1kaS10aW1lbGluZS10ZXh0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr5QiOwogICAgfQoKICAgIC5tZGktdGltZXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjqsiOwogICAgfQoKICAgIC5tZGktdGltZXItMTA6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJwiOwogICAgfQoKICAgIC5tZGktdGltZXItMzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUnSI7CiAgICB9CgogICAgLm1kaS10aW1lci1hbGVydDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrjCI7CiAgICB9CgogICAgLm1kaS10aW1lci1hbGVydC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauNIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLWNhbmNlbDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrjiI7CiAgICB9CgogICAgLm1kaS10aW1lci1jYW5jZWwtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrjyI7CiAgICB9CgogICAgLm1kaS10aW1lci1jaGVjazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrkCI7CiAgICB9CgogICAgLm1kaS10aW1lci1jaGVjay1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauRIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLWNvZzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkpSI7CiAgICB9CgogICAgLm1kaS10aW1lci1jb2ctb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkpiI7CiAgICB9CgogICAgLm1kaS10aW1lci1lZGl0OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauSIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLWVkaXQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrkyI7CiAgICB9CgogICAgLm1kaS10aW1lci1sb2NrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauUIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLWxvY2stb3BlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrlSI7CiAgICB9CgogICAgLm1kaS10aW1lci1sb2NrLW9wZW4tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrliI7CiAgICB9CgogICAgLm1kaS10aW1lci1sb2NrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq5ciOwogICAgfQoKICAgIC5tZGktdGltZXItbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauYIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLW1hcmtlci1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauZIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLW1pbnVzOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauaIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq5siOwogICAgfQoKICAgIC5tZGktdGltZXItbXVzaWM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq5wiOwogICAgfQoKICAgIC5tZGktdGltZXItbXVzaWMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrnSI7CiAgICB9CgogICAgLm1kaS10aW1lci1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxjqwiOwogICAgfQoKICAgIC5tZGktdGltZXItb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlJ4iOwogICAgfQoKICAgIC5tZGktdGltZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUmyI7CiAgICB9CgogICAgLm1kaS10aW1lci1wYXVzZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrniI7CiAgICB9CgogICAgLm1kaS10aW1lci1wYXVzZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaufIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXBsYXk6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq6AiOwogICAgfQoKICAgIC5tZGktdGltZXItcGxheS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauhIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq6IiOwogICAgfQoKICAgIC5tZGktdGltZXItcGx1cy1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaujIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXJlZnJlc2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxq6QiOwogICAgfQoKICAgIC5tZGktdGltZXItcmVmcmVzaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaulIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrpiI7CiAgICB9CgogICAgLm1kaS10aW1lci1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrpyI7CiAgICB9CgogICAgLm1kaS10aW1lci1zYW5kOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSfIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXNhbmQtY29tcGxldGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpp8iOwogICAgfQoKICAgIC5tZGktdGltZXItc2FuZC1lbXB0eTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CarSI7CiAgICB9CgogICAgLm1kaS10aW1lci1zYW5kLWZ1bGw6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwnowiOwogICAgfQoKICAgIC5tZGktdGltZXItc2FuZC1wYXVzZWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpqAiOwogICAgfQoKICAgIC5tZGktdGltZXItc2V0dGluZ3M6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxpKMiOwogICAgfQoKICAgIC5tZGktdGltZXItc2V0dGluZ3Mtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GkpCI7CiAgICB9CgogICAgLm1kaS10aW1lci1zdGFyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauoIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXN0YXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrqSI7CiAgICB9CgogICAgLm1kaS10aW1lci1zdG9wOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsauqIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXN0b3Atb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrqyI7CiAgICB9CgogICAgLm1kaS10aW1lci1zeW5jOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsausIjsKICAgIH0KCiAgICAubWRpLXRpbWVyLXN5bmMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GrrSI7CiAgICB9CgogICAgLm1kaS10aW1ldGFibGU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlKAiOwogICAgfQoKICAgIC5tZGktdGlyZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GiliI7CiAgICB9CgogICAgLm1kaS10b2FzdGVyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYGjIjsKICAgIH0KCiAgICAubWRpLXRvYXN0ZXItb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYa3IjsKICAgIH0KCiAgICAubWRpLXRvYXN0ZXItb3ZlbjpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CzkyI7CiAgICB9CgogICAgLm1kaS10b2dnbGUtc3dpdGNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJShIjsKICAgIH0KCiAgICAubWRpLXRvZ2dsZS1zd2l0Y2gtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSiIjsKICAgIH0KCiAgICAubWRpLXRvZ2dsZS1zd2l0Y2gtb2ZmLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqJkiOwogICAgfQoKICAgIC5tZGktdG9nZ2xlLXN3aXRjaC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKiaIjsKICAgIH0KCiAgICAubWRpLXRvZ2dsZS1zd2l0Y2gtdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GopSI7CiAgICB9CgogICAgLm1kaS10b2dnbGUtc3dpdGNoLXZhcmlhbnQtb2ZmOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaimIjsKICAgIH0KCiAgICAubWRpLXRvaWxldDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmqyI7CiAgICB9CgogICAgLm1kaS10b29sYm94OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKasIjsKICAgIH0KCiAgICAubWRpLXRvb2xib3gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CmrSI7CiAgICB9CgogICAgLm1kaS10b29sczpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GBpCI7CiAgICB9CgogICAgLm1kaS10b29sdGlwOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSjIjsKICAgIH0KCiAgICAubWRpLXRvb2x0aXAtYWNjb3VudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CAjCI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLWNlbGxwaG9uZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GguyI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLWNoZWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWcIjsKICAgIH0KCiAgICAubWRpLXRvb2x0aXAtY2hlY2stb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVnSI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLWVkaXQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlKQiOwogICAgfQoKICAgIC5tZGktdG9vbHRpcC1lZGl0LW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxi4UiOwogICAgfQoKICAgIC5tZGktdG9vbHRpcC1pbWFnZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUpSI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLWltYWdlLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr5UiOwogICAgfQoKICAgIC5tZGktdG9vbHRpcC1taW51czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVniI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxlZ8iOwogICAgfQoKICAgIC5tZGktdG9vbHRpcC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSmIjsKICAgIH0KCiAgICAubWRpLXRvb2x0aXAtcGx1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvliI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUpyI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLXF1ZXN0aW9uOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsa66IjsKICAgIH0KCiAgICAubWRpLXRvb2x0aXAtcXVlc3Rpb24tb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GuuyI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLXJlbW92ZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GVoCI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLXJlbW92ZS1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZWhIjsKICAgIH0KCiAgICAubWRpLXRvb2x0aXAtdGV4dDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CUqCI7CiAgICB9CgogICAgLm1kaS10b29sdGlwLXRleHQtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CvlyI7CiAgICB9CgogICAgLm1kaS10b290aDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CjgyI7CiAgICB9CgogICAgLm1kaS10b290aC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSpIjsKICAgIH0KCiAgICAubWRpLXRvb3RoYnJ1c2g6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxhKkiOwogICAgfQoKICAgIC5tZGktdG9vdGhicnVzaC1lbGVjdHJpYzpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GErCI7CiAgICB9CgogICAgLm1kaS10b290aGJydXNoLXBhc3RlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYSqIjsKICAgIH0KCiAgICAubWRpLXRvcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsZiGIjsKICAgIH0KCiAgICAubWRpLXRvcnRvaXNlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsLS7IjsKICAgIH0KCiAgICAubWRpLXRvc2xpbms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxirgiOwogICAgfQoKICAgIC5tZGktdG91Y2gtdGV4dC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsbGgIjsKICAgIH0KCiAgICAubWRpLXRvdXJuYW1lbnQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwpq4iOwogICAgfQoKICAgIC5tZGktdG93LXRydWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKC8IjsKICAgIH0KCiAgICAubWRpLXRvd2VyLWJlYWNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJqBIjsKICAgIH0KCiAgICAubWRpLXRvd2VyLWZpcmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwmoIiOwogICAgfQoKICAgIC5tZGktdG93bi1oYWxsOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaG1IjsKICAgIH0KCiAgICAubWRpLXRveS1icmljazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKiCI7CiAgICB9CgogICAgLm1kaS10b3ktYnJpY2stbWFya2VyOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqJIjsKICAgIH0KCiAgICAubWRpLXRveS1icmljay1tYXJrZXItb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKiiI7CiAgICB9CgogICAgLm1kaS10b3ktYnJpY2stbWludXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiosiOwogICAgfQoKICAgIC5tZGktdG95LWJyaWNrLW1pbnVzLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxiowiOwogICAgfQoKICAgIC5tZGktdG95LWJyaWNrLW91dGxpbmU6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxio0iOwogICAgfQoKICAgIC5tZGktdG95LWJyaWNrLXBsdXM6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxio4iOwogICAgfQoKICAgIC5tZGktdG95LWJyaWNrLXBsdXMtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKjyI7CiAgICB9CgogICAgLm1kaS10b3ktYnJpY2stcmVtb3ZlOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqQIjsKICAgIH0KCiAgICAubWRpLXRveS1icmljay1yZW1vdmUtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKkSI7CiAgICB9CgogICAgLm1kaS10b3ktYnJpY2stc2VhcmNoOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsYqSIjsKICAgIH0KCiAgICAubWRpLXRveS1icmljay1zZWFyY2gtb3V0bGluZTpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GKkyI7CiAgICB9CgogICAgLm1kaS10cmFjay1saWdodDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CklCI7CiAgICB9CgogICAgLm1kaS10cmFjay1saWdodC1vZmY6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOxrIEiOwogICAgfQoKICAgIC5tZGktdHJhY2twYWQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwn7giOwogICAgfQoKICAgIC5tZGktdHJhY2twYWQtbG9jazpiZWZvcmUgewogICAgICBjb250ZW50OiAi87CksyI7CiAgICB9CgogICAgLm1kaS10cmFjdG9yOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsKKSIjsKICAgIH0KCiAgICAubWRpLXRyYWN0b3ItdmFyaWFudDpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GThCI7CiAgICB9CgogICAgLm1kaS10cmFkZW1hcms6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwqbgiOwogICAgfQoKICAgIC5tZGktdHJhZmZpYy1jb25lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsY28IjsKICAgIH0KCiAgICAubWRpLXRyYWZmaWMtbGlnaHQ6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwlKsiOwogICAgfQoKICAgIC5tZGktdHJhZmZpYy1saWdodC1vdXRsaW5lOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaCqIjsKICAgIH0KCiAgICAubWRpLXRyYWluOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsJSsIjsKICAgIH0KCiAgICAubWRpLXRyYWluLWJ1czpiZWZvcmUgewogICAgICBjb250ZW50OiAi87GzhyI7CiAgICB9CgogICAgLm1kaS10cmFpbi1jYXI6YmVmb3JlIHsKICAgICAgY29udGVudDogIvOwr5giOwogICAgfQoKICAgIC5tZGktdHJhaW4tY2FyLWF1dG9yYWNrOmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLzsaytIjsKICAgIH0KCg=="}},"time_used":277,"timings":{"blocked":-1,"dns":101,"connect":26,"send":0,"wait":35,"receive":77,"ssl":38},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/VBtn.kOa7mB5A.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.474Z","timestamp":1785139669474,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/VBtn.kOa7mB5A.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"43dc-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 3203\r\nKeep-Alive: timeout=5, max=93\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":17372,"size_decoded":3540,"mime_type":"text/css","magic":"ASCII text, with very long lines (17371)","md5":"31dfee68e7c7fba4a3703b8b237b2534","sha1":"6399de8ef220bc36512d0e1db2a84875d3679762","sha256":"fdf62e58c50a97cc1a79600a953336cc54c5964976a0cec0e5da50818c2206dd","sha512":"30d64255db58f5e3f4fd68e321adbc5bdff91756cdbcc03d835a9076180b704dbfb46f203adcc3318b31f50f7bca7d5170f462ab1c404ae3d89904845a58aa76","ssdeep":"384:qCfsNgF2D5Nxydy20AaKAvElkfubMPwIdfU:qqFYNxydy20lKAvEloubMrU","tlshash":"347231e07f506d35be2f589176fad94b93166443dd1b4004eccabaeb83c23f21e6a254","first_seen":"2025-10-23T03:46:52.694089Z","last_seen":"2026-07-27T11:49:48.931265Z","times_seen":9,"resource_available":false,"data":"LnYtcHJvZ3Jlc3MtbGluZWFye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246LjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3dpZHRoOjEwMCV9QG1lZGlhIChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7LnYtcHJvZ3Jlc3MtbGluZWFye2JvcmRlcjp0aGluIHNvbGlkIGJ1dHRvbnRleHR9fS52LXByb2dyZXNzLWxpbmVhcl9fYmFja2dyb3VuZCwudi1wcm9ncmVzcy1saW5lYXJfX2J1ZmZlcntiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTp2YXIoLS12LWJvcmRlci1vcGFjaXR5KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt0cmFuc2l0aW9uLXByb3BlcnR5OndpZHRoLGxlZnQscmlnaHQ7dHJhbnNpdGlvbjppbmhlcml0O3dpZHRoOjEwMCV9QG1lZGlhIChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7LnYtcHJvZ3Jlc3MtbGluZWFyX19idWZmZXJ7YmFja2dyb3VuZC1jb2xvcjpoaWdobGlnaHQ7b3BhY2l0eTouM319LnYtcHJvZ3Jlc3MtbGluZWFyX19jb250ZW50e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS52LXByb2dyZXNzLWxpbmVhcl9fZGV0ZXJtaW5hdGUsLnYtcHJvZ3Jlc3MtbGluZWFyX19pbmRldGVybWluYXRle2JhY2tncm91bmQ6Y3VycmVudENvbG9yfUBtZWRpYSAoZm9yY2VkLWNvbG9yczphY3RpdmUpey52LXByb2dyZXNzLWxpbmVhcl9fZGV0ZXJtaW5hdGUsLnYtcHJvZ3Jlc3MtbGluZWFyX19pbmRldGVybWluYXRle2JhY2tncm91bmQtY29sb3I6aGlnaGxpZ2h0fX0udi1wcm9ncmVzcy1saW5lYXJfX2RldGVybWluYXRle2hlaWdodDppbmhlcml0O2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOmluaGVyaXQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTp3aWR0aCxsZWZ0LHJpZ2h0fS52LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZSAubG9uZywudi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGUgLnNob3J0e2FuaW1hdGlvbi1kdXJhdGlvbjoyLjJzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXBsYXktc3RhdGU6cGF1c2VkO2JvdHRvbTowO2hlaWdodDppbmhlcml0O2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDphdXRvO3RvcDowO3dpZHRoOmF1dG99LnYtcHJvZ3Jlc3MtbGluZWFyX19pbmRldGVybWluYXRlIC5sb25ne2FuaW1hdGlvbi1uYW1lOmluZGV0ZXJtaW5hdGUtbHRyfS52LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZSAuc2hvcnR7YW5pbWF0aW9uLW5hbWU6aW5kZXRlcm1pbmF0ZS1zaG9ydC1sdHJ9LnYtcHJvZ3Jlc3MtbGluZWFyX19zdHJlYW17YW5pbWF0aW9uOnN0cmVhbSAuMjVzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWQ7Ym90dG9tOjA7bGVmdDphdXRvO29wYWNpdHk6LjM7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOmluaGVyaXQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTp3aWR0aCxsZWZ0LHJpZ2h0fS52LXByb2dyZXNzLWxpbmVhci0tcmV2ZXJzZSAudi1wcm9ncmVzcy1saW5lYXJfX2JhY2tncm91bmQsLnYtcHJvZ3Jlc3MtbGluZWFyLS1yZXZlcnNlIC52LXByb2dyZXNzLWxpbmVhcl9fY29udGVudCwudi1wcm9ncmVzcy1saW5lYXItLXJldmVyc2UgLnYtcHJvZ3Jlc3MtbGluZWFyX19kZXRlcm1pbmF0ZSwudi1wcm9ncmVzcy1saW5lYXItLXJldmVyc2UgLnYtcHJvZ3Jlc3MtbGluZWFyX19pbmRldGVybWluYXRlIC5sb25nLC52LXByb2dyZXNzLWxpbmVhci0tcmV2ZXJzZSAudi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGUgLnNob3J0e2xlZnQ6YXV0bztyaWdodDowfS52LXByb2dyZXNzLWxpbmVhci0tcmV2ZXJzZSAudi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGUgLmxvbmd7YW5pbWF0aW9uLW5hbWU6aW5kZXRlcm1pbmF0ZS1ydGx9LnYtcHJvZ3Jlc3MtbGluZWFyLS1yZXZlcnNlIC52LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZSAuc2hvcnR7YW5pbWF0aW9uLW5hbWU6aW5kZXRlcm1pbmF0ZS1zaG9ydC1ydGx9LnYtcHJvZ3Jlc3MtbGluZWFyLS1yZXZlcnNlIC52LXByb2dyZXNzLWxpbmVhcl9fc3RyZWFte3JpZ2h0OmF1dG99LnYtcHJvZ3Jlc3MtbGluZWFyLS1hYnNvbHV0ZSwudi1wcm9ncmVzcy1saW5lYXItLWZpeGVke2xlZnQ6MDt6LWluZGV4OjF9LnYtcHJvZ3Jlc3MtbGluZWFyLS1hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0udi1wcm9ncmVzcy1saW5lYXItLWZpeGVke3Bvc2l0aW9uOmZpeGVkfS52LXByb2dyZXNzLWxpbmVhci0tcm91bmRlZHtib3JkZXItcmFkaXVzOjk5OTlweH0udi1wcm9ncmVzcy1saW5lYXItLXJvdW5kZWQudi1wcm9ncmVzcy1saW5lYXItLXJvdW5kZWQtYmFyIC52LXByb2dyZXNzLWxpbmVhcl9fZGV0ZXJtaW5hdGUsLnYtcHJvZ3Jlc3MtbGluZWFyLS1yb3VuZGVkLnYtcHJvZ3Jlc3MtbGluZWFyLS1yb3VuZGVkLWJhciAudi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGV7Ym9yZGVyLXJhZGl1czppbmhlcml0fS52LXByb2dyZXNzLWxpbmVhci0tc3RyaXBlZCAudi1wcm9ncmVzcy1saW5lYXJfX2RldGVybWluYXRle2FuaW1hdGlvbjpwcm9ncmVzcy1saW5lYXItc3RyaXBlcyAxcyBsaW5lYXIgaW5maW5pdGU7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLGhzbGEoMCwwJSwxMDAlLC4yNSkgMjUlLHRyYW5zcGFyZW50IDAsdHJhbnNwYXJlbnQgNTAlLGhzbGEoMCwwJSwxMDAlLC4yNSkgMCxoc2xhKDAsMCUsMTAwJSwuMjUpIDc1JSx0cmFuc3BhcmVudCAwLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQ7YmFja2dyb3VuZC1zaXplOnZhcigtLXYtcHJvZ3Jlc3MtbGluZWFyLWhlaWdodCl9LnYtcHJvZ3Jlc3MtbGluZWFyLS1hY3RpdmUgLnYtcHJvZ3Jlc3MtbGluZWFyX19pbmRldGVybWluYXRlIC5sb25nLC52LXByb2dyZXNzLWxpbmVhci0tYWN0aXZlIC52LXByb2dyZXNzLWxpbmVhcl9faW5kZXRlcm1pbmF0ZSAuc2hvcnQsLnYtcHJvZ3Jlc3MtbGluZWFyLS1hY3RpdmUgLnYtcHJvZ3Jlc3MtbGluZWFyX19zdHJlYW17YW5pbWF0aW9uLXBsYXktc3RhdGU6cnVubmluZ30udi1wcm9ncmVzcy1saW5lYXItLXJvdW5kZWQtYmFyIC52LXByb2dyZXNzLWxpbmVhcl9fZGV0ZXJtaW5hdGUsLnYtcHJvZ3Jlc3MtbGluZWFyLS1yb3VuZGVkLWJhciAudi1wcm9ncmVzcy1saW5lYXJfX2luZGV0ZXJtaW5hdGUsLnYtcHJvZ3Jlc3MtbGluZWFyLS1yb3VuZGVkLWJhciAudi1wcm9ncmVzcy1saW5lYXJfX3N0cmVhbSsudi1wcm9ncmVzcy1saW5lYXJfX2JhY2tncm91bmR7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnYtcHJvZ3Jlc3MtbGluZWFyLS1yb3VuZGVkLWJhciAudi1wcm9ncmVzcy1saW5lYXJfX2RldGVybWluYXRle2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjA7Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czowfUBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1sdHJ7MCV7bGVmdDotOTAlO3JpZ2h0OjEwMCV9NjAle2xlZnQ6LTkwJTtyaWdodDoxMDAlfXRve2xlZnQ6MTAwJTtyaWdodDotMzUlfX1Aa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUtcnRsezAle2xlZnQ6MTAwJTtyaWdodDotOTAlfTYwJXtsZWZ0OjEwMCU7cmlnaHQ6LTkwJX10b3tsZWZ0Oi0zNSU7cmlnaHQ6MTAwJX19QGtleWZyYW1lcyBpbmRldGVybWluYXRlLXNob3J0LWx0cnswJXtsZWZ0Oi0yMDAlO3JpZ2h0OjEwMCV9NjAle2xlZnQ6MTA3JTtyaWdodDotOCV9dG97bGVmdDoxMDclO3JpZ2h0Oi04JX19QGtleWZyYW1lcyBpbmRldGVybWluYXRlLXNob3J0LXJ0bHswJXtsZWZ0OjEwMCU7cmlnaHQ6LTIwMCV9NjAle2xlZnQ6LTglO3JpZ2h0OjEwNyV9dG97bGVmdDotOCU7cmlnaHQ6MTA3JX19QGtleWZyYW1lcyBzdHJlYW17dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS12LXByb2dyZXNzLWxpbmVhci1zdHJlYW0tdG8pKX19QGtleWZyYW1lcyBwcm9ncmVzcy1saW5lYXItc3RyaXBlc3swJXtiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6dmFyKC0tdi1wcm9ncmVzcy1saW5lYXItaGVpZ2h0KX19LnYtYnRue2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmlubGluZS1ncmlkO2ZsZXgtc2hyaW5rOjA7Zm9udC13ZWlnaHQ6NTAwO2dyaWQtdGVtcGxhdGUtYXJlYXM6InByZXBlbmQgY29udGVudCBhcHBlbmQiO2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCBhdXRvIG1heC1jb250ZW50O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGV0dGVyLXNwYWNpbmc6LjA4OTI4NTcxNDNlbTtsaW5lLWhlaWdodDpub3JtYWw7bWF4LXdpZHRoOjEwMCU7b3V0bGluZTpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtaW5kZW50Oi4wODkyODU3MTQzZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RyYW5zaXRpb24tZHVyYXRpb246LjI4czt0cmFuc2l0aW9uLXByb3BlcnR5OmJveC1zaGFkb3csdHJhbnNmb3JtLG9wYWNpdHksYmFja2dyb3VuZDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS52LWJ0bi0tc2l6ZS14LXNtYWxsey0tdi1idG4tc2l6ZTouNjI1cmVtOy0tdi1idG4taGVpZ2h0OjIwcHg7Zm9udC1zaXplOnZhcigtLXYtYnRuLXNpemUpO21pbi13aWR0aDozNnB4O3BhZGRpbmc6MCA4cHh9LnYtYnRuLS1zaXplLXNtYWxsey0tdi1idG4tc2l6ZTouNzVyZW07LS12LWJ0bi1oZWlnaHQ6MjhweDtmb250LXNpemU6dmFyKC0tdi1idG4tc2l6ZSk7bWluLXdpZHRoOjUwcHg7cGFkZGluZzowIDEycHh9LnYtYnRuLS1zaXplLWRlZmF1bHR7LS12LWJ0bi1zaXplOi44NzVyZW07LS12LWJ0bi1oZWlnaHQ6MzZweDtmb250LXNpemU6dmFyKC0tdi1idG4tc2l6ZSk7bWluLXdpZHRoOjY0cHg7cGFkZGluZzowIDE2cHh9LnYtYnRuLS1zaXplLWxhcmdley0tdi1idG4tc2l6ZToxcmVtOy0tdi1idG4taGVpZ2h0OjQ0cHg7Zm9udC1zaXplOnZhcigtLXYtYnRuLXNpemUpO21pbi13aWR0aDo3OHB4O3BhZGRpbmc6MCAyMHB4fS52LWJ0bi0tc2l6ZS14LWxhcmdley0tdi1idG4tc2l6ZToxLjEyNXJlbTstLXYtYnRuLWhlaWdodDo1MnB4O2ZvbnQtc2l6ZTp2YXIoLS12LWJ0bi1zaXplKTttaW4td2lkdGg6OTJweDtwYWRkaW5nOjAgMjRweH0udi1idG4udi1idG4tLWRlbnNpdHktZGVmYXVsdHtoZWlnaHQ6Y2FsYyh2YXIoLS12LWJ0bi1oZWlnaHQpKX0udi1idG4udi1idG4tLWRlbnNpdHktY29tZm9ydGFibGV7aGVpZ2h0OmNhbGModmFyKC0tdi1idG4taGVpZ2h0KSAtIDhweCl9LnYtYnRuLnYtYnRuLS1kZW5zaXR5LWNvbXBhY3R7aGVpZ2h0OmNhbGModmFyKC0tdi1idG4taGVpZ2h0KSAtIDEycHgpfS52LWJ0bntib3JkZXItY29sb3I6cmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksdmFyKC0tdi1ib3JkZXItb3BhY2l0eSkpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MH0udi1idG4tLWJvcmRlcntib3JkZXItd2lkdGg6dGhpbjtib3gtc2hhZG93Om5vbmV9LnYtYnRuLS1hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0udi1idG4tLWZpeGVke3Bvc2l0aW9uOmZpeGVkfS52LWJ0bjpob3Zlcj4udi1idG5fX292ZXJsYXl7b3BhY2l0eTpjYWxjKHZhcigtLXYtaG92ZXItb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1idG46Zm9jdXMtdmlzaWJsZT4udi1idG5fX292ZXJsYXl7b3BhY2l0eTpjYWxjKHZhcigtLXYtZm9jdXMtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX1Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1idG46Zm9jdXM+LnYtYnRuX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWZvY3VzLW9wYWNpdHkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9fS52LWJ0bi0tYWN0aXZlPi52LWJ0bl9fb3ZlcmxheSwudi1idG5bYXJpYS1oYXNwb3B1cD1tZW51XVthcmlhLWV4cGFuZGVkPXRydWVdPi52LWJ0bl9fb3ZlcmxheXtvcGFjaXR5OmNhbGModmFyKC0tdi1hY3RpdmF0ZWQtb3BhY2l0eSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1idG4tLWFjdGl2ZTpob3Zlcj4udi1idG5fX292ZXJsYXksLnYtYnRuW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpob3Zlcj4udi1idG5fX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtaG92ZXItb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9LnYtYnRuLS1hY3RpdmU6Zm9jdXMtdmlzaWJsZT4udi1idG5fX292ZXJsYXksLnYtYnRuW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpmb2N1cy12aXNpYmxlPi52LWJ0bl9fb3ZlcmxheXtvcGFjaXR5OmNhbGMoKHZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpICsgdmFyKC0tdi1mb2N1cy1vcGFjaXR5KSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX1Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1idG4tLWFjdGl2ZTpmb2N1cz4udi1idG5fX292ZXJsYXksLnYtYnRuW2FyaWEtaGFzcG9wdXA9bWVudV1bYXJpYS1leHBhbmRlZD10cnVlXTpmb2N1cz4udi1idG5fX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtZm9jdXMtb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9fS52LWJ0bi0tdmFyaWFudC1vdXRsaW5lZCwudi1idG4tLXZhcmlhbnQtcGxhaW4sLnYtYnRuLS12YXJpYW50LXRleHQsLnYtYnRuLS12YXJpYW50LXRvbmFse2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdH0udi1idG4tLXZhcmlhbnQtcGxhaW57b3BhY2l0eTouNjJ9LnYtYnRuLS12YXJpYW50LXBsYWluOmZvY3VzLC52LWJ0bi0tdmFyaWFudC1wbGFpbjpob3ZlcntvcGFjaXR5OjF9LnYtYnRuLS12YXJpYW50LXBsYWluIC52LWJ0bl9fb3ZlcmxheXtkaXNwbGF5Om5vbmV9LnYtYnRuLS12YXJpYW50LWVsZXZhdGVkLC52LWJ0bi0tdmFyaWFudC1mbGF0e2JhY2tncm91bmQ6cmdiKHZhcigtLXYtdGhlbWUtc3VyZmFjZSkpO2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSkpfS52LWJ0bi0tdmFyaWFudC1lbGV2YXRlZHtib3gtc2hhZG93OjAgM3B4IDFweCAtMnB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDJweCAycHggMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgMXB4IDVweCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKX0udi1idG4tLXZhcmlhbnQtZmxhdHtib3gtc2hhZG93OjAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMikpLDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHkscmdiYSgwLDAsMCwuMTIpKX0udi1idG4tLXZhcmlhbnQtb3V0bGluZWR7Ym9yZGVyOnRoaW4gc29saWR9LnYtYnRuLS12YXJpYW50LXRleHQgLnYtYnRuX19vdmVybGF5e2JhY2tncm91bmQ6Y3VycmVudENvbG9yfS52LWJ0bi0tdmFyaWFudC10b25hbCAudi1idG5fX3VuZGVybGF5e2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTp2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KTtwb2ludGVyLWV2ZW50czpub25lO3JpZ2h0OjA7dG9wOjB9LnYtYnRuIC52LWJ0bl9fdW5kZXJsYXl7cG9zaXRpb246YWJzb2x1dGV9QHN1cHBvcnRzIHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1idG46YWZ0ZXJ7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItcmFkaXVzOmluaGVyaXQ7Y29udGVudDoiIjtoZWlnaHQ6MTAwJTtsZWZ0OjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dDt3aWR0aDoxMDAlfS52LWJ0bjpmb2N1cy12aXNpYmxlOmFmdGVye29wYWNpdHk6Y2FsYyh2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikqLjI1KX19LnYtYnRuLS1pY29ue2JvcmRlci1yYWRpdXM6NTAlO21pbi13aWR0aDowO3BhZGRpbmc6MH0udi1idG4tLWljb24udi1idG4tLXNpemUtZGVmYXVsdHstLXYtYnRuLXNpemU6MXJlbX0udi1idG4tLWljb24udi1idG4tLWRlbnNpdHktZGVmYXVsdHtoZWlnaHQ6Y2FsYyh2YXIoLS12LWJ0bi1oZWlnaHQpICsgMTJweCk7d2lkdGg6Y2FsYyh2YXIoLS12LWJ0bi1oZWlnaHQpICsgMTJweCl9LnYtYnRuLS1pY29uLnYtYnRuLS1kZW5zaXR5LWNvbWZvcnRhYmxle2hlaWdodDpjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkpO3dpZHRoOmNhbGModmFyKC0tdi1idG4taGVpZ2h0KSl9LnYtYnRuLS1pY29uLnYtYnRuLS1kZW5zaXR5LWNvbXBhY3R7aGVpZ2h0OmNhbGModmFyKC0tdi1idG4taGVpZ2h0KSAtIDhweCk7d2lkdGg6Y2FsYyh2YXIoLS12LWJ0bi1oZWlnaHQpIC0gOHB4KX0udi1idG4tLWVsZXZhdGVkOmZvY3VzLC52LWJ0bi0tZWxldmF0ZWQ6aG92ZXJ7Ym94LXNoYWRvdzowIDJweCA0cHggLTFweCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4yKSksMCA0cHggNXB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDFweCAxMHB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xMikpfS52LWJ0bi0tZWxldmF0ZWQ6YWN0aXZle2JveC1zaGFkb3c6MCA1cHggNXB4IC0zcHggdmFyKC0tdi1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMikpLDAgOHB4IDEwcHggMXB4IHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjE0KSksMCAzcHggMTRweCAycHggdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xMikpfS52LWJ0bi0tZmxhdHtib3gtc2hhZG93Om5vbmV9LnYtYnRuLS1ibG9ja3tkaXNwbGF5OmZsZXg7ZmxleDoxIDAgYXV0bzttaW4td2lkdGg6MTAwJX0udi1idG4tLWRpc2FibGVke29wYWNpdHk6LjI2O3BvaW50ZXItZXZlbnRzOm5vbmV9LnYtYnRuLS1kaXNhYmxlZDpob3ZlcntvcGFjaXR5Oi4yNn0udi1idG4tLWRpc2FibGVkLnYtYnRuLS12YXJpYW50LWVsZXZhdGVkLC52LWJ0bi0tZGlzYWJsZWQudi1idG4tLXZhcmlhbnQtZmxhdHtiYWNrZ3JvdW5kOnJnYih2YXIoLS12LXRoZW1lLXN1cmZhY2UpKTtib3gtc2hhZG93Om5vbmU7Y29sb3I6cmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UpLC4yNik7b3BhY2l0eToxfS52LWJ0bi0tZGlzYWJsZWQudi1idG4tLXZhcmlhbnQtZWxldmF0ZWQgLnYtYnRuX19vdmVybGF5LC52LWJ0bi0tZGlzYWJsZWQudi1idG4tLXZhcmlhbnQtZmxhdCAudi1idG5fX292ZXJsYXl7b3BhY2l0eTouNDYxNTM4NDYxNX0udi1idG4tLWxvYWRpbmd7cG9pbnRlci1ldmVudHM6bm9uZX0udi1idG4tLWxvYWRpbmcgLnYtYnRuX19hcHBlbmQsLnYtYnRuLS1sb2FkaW5nIC52LWJ0bl9fY29udGVudCwudi1idG4tLWxvYWRpbmcgLnYtYnRuX19wcmVwZW5ke29wYWNpdHk6MH0udi1idG4tLXN0YWNrZWR7YWxpZ24tY29udGVudDpjZW50ZXI7Z3JpZC10ZW1wbGF0ZS1hcmVhczoicHJlcGVuZCIgImNvbnRlbnQiICJhcHBlbmQiO2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvO2dyaWQtdGVtcGxhdGUtcm93czptYXgtY29udGVudCBtYXgtY29udGVudCBtYXgtY29udGVudDtqdXN0aWZ5LWl0ZW1zOmNlbnRlcn0udi1idG4tLXN0YWNrZWQgLnYtYnRuX19jb250ZW50e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtsaW5lLWhlaWdodDoxLjI1fS52LWJ0bi0tc3RhY2tlZCAudi1idG5fX2FwcGVuZCwudi1idG4tLXN0YWNrZWQgLnYtYnRuX19jb250ZW50Pi52LWljb24tLWVuZCwudi1idG4tLXN0YWNrZWQgLnYtYnRuX19jb250ZW50Pi52LWljb24tLXN0YXJ0LC52LWJ0bi0tc3RhY2tlZCAudi1idG5fX3ByZXBlbmR7bWFyZ2luLWlubGluZTowfS52LWJ0bi0tc3RhY2tlZCAudi1idG5fX2NvbnRlbnQ+LnYtaWNvbi0tc3RhcnQsLnYtYnRuLS1zdGFja2VkIC52LWJ0bl9fcHJlcGVuZHttYXJnaW4tYm90dG9tOjRweH0udi1idG4tLXN0YWNrZWQgLnYtYnRuX19hcHBlbmQsLnYtYnRuLS1zdGFja2VkIC52LWJ0bl9fY29udGVudD4udi1pY29uLS1lbmR7bWFyZ2luLXRvcDo0cHh9LnYtYnRuLS1zdGFja2VkLnYtYnRuLS1zaXplLXgtc21hbGx7LS12LWJ0bi1zaXplOi42MjVyZW07LS12LWJ0bi1oZWlnaHQ6NTZweDtmb250LXNpemU6dmFyKC0tdi1idG4tc2l6ZSk7bWluLXdpZHRoOjU2cHg7cGFkZGluZzowIDEycHh9LnYtYnRuLS1zdGFja2VkLnYtYnRuLS1zaXplLXNtYWxsey0tdi1idG4tc2l6ZTouNzVyZW07LS12LWJ0bi1oZWlnaHQ6NjRweDtmb250LXNpemU6dmFyKC0tdi1idG4tc2l6ZSk7bWluLXdpZHRoOjY0cHg7cGFkZGluZzowIDE0cHh9LnYtYnRuLS1zdGFja2VkLnYtYnRuLS1zaXplLWRlZmF1bHR7LS12LWJ0bi1zaXplOi44NzVyZW07LS12LWJ0bi1oZWlnaHQ6NzJweDtmb250LXNpemU6dmFyKC0tdi1idG4tc2l6ZSk7bWluLXdpZHRoOjcycHg7cGFkZGluZzowIDE2cHh9LnYtYnRuLS1zdGFja2VkLnYtYnRuLS1zaXplLWxhcmdley0tdi1idG4tc2l6ZToxcmVtOy0tdi1idG4taGVpZ2h0OjgwcHg7Zm9udC1zaXplOnZhcigtLXYtYnRuLXNpemUpO21pbi13aWR0aDo4MHB4O3BhZGRpbmc6MCAxOHB4fS52LWJ0bi0tc3RhY2tlZC52LWJ0bi0tc2l6ZS14LWxhcmdley0tdi1idG4tc2l6ZToxLjEyNXJlbTstLXYtYnRuLWhlaWdodDo4OHB4O2ZvbnQtc2l6ZTp2YXIoLS12LWJ0bi1zaXplKTttaW4td2lkdGg6ODhweDtwYWRkaW5nOjAgMjBweH0udi1idG4tLXN0YWNrZWQudi1idG4tLWRlbnNpdHktZGVmYXVsdHtoZWlnaHQ6Y2FsYyh2YXIoLS12LWJ0bi1oZWlnaHQpKX0udi1idG4tLXN0YWNrZWQudi1idG4tLWRlbnNpdHktY29tZm9ydGFibGV7aGVpZ2h0OmNhbGModmFyKC0tdi1idG4taGVpZ2h0KSAtIDE2cHgpfS52LWJ0bi0tc3RhY2tlZC52LWJ0bi0tZGVuc2l0eS1jb21wYWN0e2hlaWdodDpjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkgLSAyNHB4KX0udi1idG4tLXNsaW17cGFkZGluZzowIDhweH0udi1idG4tLXJlYWRvbmx5e3BvaW50ZXItZXZlbnRzOm5vbmV9LnYtYnRuLS1yb3VuZGVke2JvcmRlci1yYWRpdXM6MjRweH0udi1idG4tLXJvdW5kZWQudi1idG4tLWljb257Ym9yZGVyLXJhZGl1czo0cHh9LnYtYnRuIC52LWljb257LS12LWljb24tc2l6ZS1tdWx0aXBsaWVyOi44NTcxNDI4NTcxfS52LWJ0bi0taWNvbiAudi1pY29uey0tdi1pY29uLXNpemUtbXVsdGlwbGllcjoxfS52LWJ0bi0tc3RhY2tlZCAudi1pY29uey0tdi1pY29uLXNpemUtbXVsdGlwbGllcjoxLjE0Mjg1NzE0Mjl9LnYtYnRuLS1zdGFja2VkLnYtYnRuLS1ibG9ja3ttaW4td2lkdGg6MTAwJX0udi1idG5fX2xvYWRlcnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LnYtYnRuX19sb2FkZXI+LnYtcHJvZ3Jlc3MtY2lyY3VsYXJ7aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS52LWJ0bl9fYXBwZW5kLC52LWJ0bl9fY29udGVudCwudi1idG5fX3ByZXBlbmR7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDt0cmFuc2l0aW9uOnRyYW5zZm9ybSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udi1idG5fX3ByZXBlbmR7Z3JpZC1hcmVhOnByZXBlbmQ7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkvLTkpIGNhbGModmFyKC0tdi1idG4taGVpZ2h0KS80LjUpfS52LWJ0bi0tc2xpbSAudi1idG5fX3ByZXBlbmR7bWFyZ2luLWlubGluZS1zdGFydDowfS52LWJ0bl9fYXBwZW5ke2dyaWQtYXJlYTphcHBlbmQ7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkvNC41KSBjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkvLTkpfS52LWJ0bi0tc2xpbSAudi1idG5fX2FwcGVuZHttYXJnaW4taW5saW5lLWVuZDowfS52LWJ0bl9fY29udGVudHtncmlkLWFyZWE6Y29udGVudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0udi1idG5fX2NvbnRlbnQ+LnYtaWNvbi0tc3RhcnR7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkvLTkpIGNhbGModmFyKC0tdi1idG4taGVpZ2h0KS80LjUpfS52LWJ0bl9fY29udGVudD4udi1pY29uLS1lbmR7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkvNC41KSBjYWxjKHZhcigtLXYtYnRuLWhlaWdodCkvLTkpfS52LWJ0bi0tc3RhY2tlZCAudi1idG5fX2NvbnRlbnR7d2hpdGUtc3BhY2U6bm9ybWFsfS52LWJ0bl9fb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXItcmFkaXVzOmluaGVyaXQ7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXR9LnYtYnRuX19vdmVybGF5LC52LWJ0bl9fdW5kZXJsYXl7aGVpZ2h0OjEwMCU7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0udi1wYWdpbmF0aW9uIC52LWJ0bntib3JkZXItcmFkaXVzOjRweH0udi1wYWdpbmF0aW9uIC52LWJ0bi0tcm91bmRlZHtib3JkZXItcmFkaXVzOjUwJX0udi1wYWdpbmF0aW9uIC52LWJ0bl9fb3ZlcmxheXt0cmFuc2l0aW9uOm5vbmV9LnYtcGFnaW5hdGlvbiAudi1wYWdpbmF0aW9uX19pdGVtLS1pcy1hY3RpdmUgLnYtYnRuX19vdmVybGF5e29wYWNpdHk6dmFyKC0tdi1ib3JkZXItb3BhY2l0eSl9LnYtYnRuLXRvZ2dsZT4udi1idG4udi1idG4tLWFjdGl2ZTpub3QoLnYtYnRuLS1kaXNhYmxlZCk+LnYtYnRuX19vdmVybGF5e29wYWNpdHk6Y2FsYyh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSp2YXIoLS12LXRoZW1lLW92ZXJsYXktbXVsdGlwbGllcikpfS52LWJ0bi10b2dnbGU+LnYtYnRuLnYtYnRuLS1hY3RpdmU6bm90KC52LWJ0bi0tZGlzYWJsZWQpOmhvdmVyPi52LWJ0bl9fb3ZlcmxheXtvcGFjaXR5OmNhbGMoKHZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpICsgdmFyKC0tdi1ob3Zlci1vcGFjaXR5KSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX0udi1idG4tdG9nZ2xlPi52LWJ0bi52LWJ0bi0tYWN0aXZlOm5vdCgudi1idG4tLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlPi52LWJ0bl9fb3ZlcmxheXtvcGFjaXR5OmNhbGMoKHZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpICsgdmFyKC0tdi1mb2N1cy1vcGFjaXR5KSkqdmFyKC0tdi10aGVtZS1vdmVybGF5LW11bHRpcGxpZXIpKX1Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKXsudi1idG4tdG9nZ2xlPi52LWJ0bi52LWJ0bi0tYWN0aXZlOm5vdCgudi1idG4tLWRpc2FibGVkKTpmb2N1cz4udi1idG5fX292ZXJsYXl7b3BhY2l0eTpjYWxjKCh2YXIoLS12LWFjdGl2YXRlZC1vcGFjaXR5KSArIHZhcigtLXYtZm9jdXMtb3BhY2l0eSkpKnZhcigtLXYtdGhlbWUtb3ZlcmxheS1tdWx0aXBsaWVyKSl9fS52LWJ0bi10b2dnbGU+LnYtYnRuLnYtYnRuLS1hY3RpdmU6bm90KC52LWJ0bi0tZGlzYWJsZWQpLnYtYnRuLS12YXJpYW50LXBsYWlue29wYWNpdHk6MX0udi1idG4tZ3JvdXB7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjA7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LXdyYXA6bm93cmFwO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnYtYnRuLWdyb3VwLS1ib3JkZXJ7Ym9yZGVyLXdpZHRoOnRoaW47Ym94LXNoYWRvdzpub25lfS52LWJ0bi1ncm91cHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4yKSksMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xNCkpLDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xMikpO2NvbG9yOnJnYmEodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlKSx2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSkpfS52LWJ0bi1ncm91cC0tZGVuc2l0eS1kZWZhdWx0LnYtYnRuLWdyb3Vwe2hlaWdodDo0OHB4fS52LWJ0bi1ncm91cC0tZGVuc2l0eS1jb21mb3J0YWJsZS52LWJ0bi1ncm91cHtoZWlnaHQ6NDBweH0udi1idG4tZ3JvdXAtLWRlbnNpdHktY29tcGFjdC52LWJ0bi1ncm91cHtoZWlnaHQ6MzZweH0udi1idG4tZ3JvdXAgLnYtYnRue2JvcmRlci1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6MH0udi1idG4tZ3JvdXAgLnYtYnRuOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLWlubGluZS1lbmQ6bm9uZX0udi1idG4tZ3JvdXAgLnYtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci1pbmxpbmUtc3RhcnQ6bm9uZX0udi1idG4tZ3JvdXAgLnYtYnRuOmZpcnN0LWNoaWxke2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOmluaGVyaXQ7Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czppbmhlcml0fS52LWJ0bi1ncm91cCAudi1idG46bGFzdC1jaGlsZHtib3JkZXItZW5kLWVuZC1yYWRpdXM6aW5oZXJpdDtib3JkZXItc3RhcnQtZW5kLXJhZGl1czppbmhlcml0fS52LWJ0bi1ncm91cC0tZGl2aWRlZCAudi1idG46bm90KDpsYXN0LWNoaWxkKXtib3JkZXItaW5saW5lLWVuZC1jb2xvcjpyZ2JhKHZhcigtLXYtYm9yZGVyLWNvbG9yKSx2YXIoLS12LWJvcmRlci1vcGFjaXR5KSk7Ym9yZGVyLWlubGluZS1lbmQtc3R5bGU6c29saWQ7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dGhpbn0udi1idG4tZ3JvdXAtLXRpbGV7Ym9yZGVyLXJhZGl1czowfS52LXByb2dyZXNzLWNpcmN1bGFye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS52LXByb2dyZXNzLWNpcmN1bGFyPnN2Z3tib3R0b206MDtoZWlnaHQ6MTAwJTtsZWZ0OjA7bWFyZ2luOmF1dG87cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MH0udi1wcm9ncmVzcy1jaXJjdWxhcl9fY29udGVudHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnYtcHJvZ3Jlc3MtY2lyY3VsYXJfX3VuZGVybGF5e2NvbG9yOnJnYmEodmFyKC0tdi1ib3JkZXItY29sb3IpLHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKTtzdHJva2U6Y3VycmVudENvbG9yO3otaW5kZXg6MX0udi1wcm9ncmVzcy1jaXJjdWxhcl9fb3ZlcmxheXtzdHJva2U6Y3VycmVudENvbG9yO3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluLW91dCxzdHJva2Utd2lkdGggMHM7ei1pbmRleDoyfS52LXByb2dyZXNzLWNpcmN1bGFyLS1zaXplLXgtc21hbGx7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0udi1wcm9ncmVzcy1jaXJjdWxhci0tc2l6ZS1zbWFsbHtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS52LXByb2dyZXNzLWNpcmN1bGFyLS1zaXplLWRlZmF1bHR7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0udi1wcm9ncmVzcy1jaXJjdWxhci0tc2l6ZS1sYXJnZXtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS52LXByb2dyZXNzLWNpcmN1bGFyLS1zaXplLXgtbGFyZ2V7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweH0udi1wcm9ncmVzcy1jaXJjdWxhci0taW5kZXRlcm1pbmF0ZT5zdmd7YW5pbWF0aW9uOnByb2dyZXNzLWNpcmN1bGFyLXJvdGF0ZSAxLjRzIGxpbmVhciBpbmZpbml0ZTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0fS52LXByb2dyZXNzLWNpcmN1bGFyLS1pbmRldGVybWluYXRlIC52LXByb2dyZXNzLWNpcmN1bGFyX19vdmVybGF5e2FuaW1hdGlvbjpwcm9ncmVzcy1jaXJjdWxhci1kYXNoIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGUscHJvZ3Jlc3MtY2lyY3VsYXItcm90YXRlIDEuNHMgbGluZWFyIGluZmluaXRlO3N0cm9rZS1kYXNoYXJyYXk6MjUsMjAwO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcn0udi1wcm9ncmVzcy1jaXJjdWxhci0tZGlzYWJsZS1zaHJpbms+c3Zne2FuaW1hdGlvbi1kdXJhdGlvbjouN3N9LnYtcHJvZ3Jlc3MtY2lyY3VsYXItLWRpc2FibGUtc2hyaW5rIC52LXByb2dyZXNzLWNpcmN1bGFyX19vdmVybGF5e2FuaW1hdGlvbjpub25lfS52LXByb2dyZXNzLWNpcmN1bGFyLS1pbmRldGVybWluYXRlOm5vdCgudi1wcm9ncmVzcy1jaXJjdWxhci0tdmlzaWJsZSkgLnYtcHJvZ3Jlc3MtY2lyY3VsYXJfX292ZXJsYXksLnYtcHJvZ3Jlc3MtY2lyY3VsYXItLWluZGV0ZXJtaW5hdGU6bm90KC52LXByb2dyZXNzLWNpcmN1bGFyLS12aXNpYmxlKT5zdmd7YW5pbWF0aW9uLXBsYXktc3RhdGU6cGF1c2VkIWltcG9ydGFudH1Aa2V5ZnJhbWVzIHByb2dyZXNzLWNpcmN1bGFyLWRhc2h7MCV7c3Ryb2tlLWRhc2hhcnJheToxLDIwMDtzdHJva2UtZGFzaG9mZnNldDowcHh9NTAle3N0cm9rZS1kYXNoYXJyYXk6MTAwLDIwMDtzdHJva2UtZGFzaG9mZnNldDotMTVweH10b3tzdHJva2UtZGFzaGFycmF5OjEwMCwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTEyNHB4fX1Aa2V5ZnJhbWVzIHByb2dyZXNzLWNpcmN1bGFyLXJvdGF0ZXt0b3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9fQo="}},"time_used":194,"timings":{"blocked":167,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/ChErJn07.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.527Z","timestamp":1785139669527,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/ChErJn07.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"4755-654aa2b830142-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 6488\r\nKeep-Alive: timeout=5, max=96\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":18261,"size_decoded":6839,"mime_type":"application/javascript","magic":"ASCII text, with very long lines (18260)","md5":"d86fc07cc54b8244aac3d222905bf549","sha1":"966ca857168f311e8c986305fbf43a9c5ffe4a85","sha256":"aca945dfc8112c7a7b9db53c59b6bbadd29ac11efb01e855c11e6e39a5b619bc","sha512":"4090cbfe6313c7c2bac9eb1d56b7483a071bf4e8db0097b25b52f6508736f4472efa29ab1879bce7bff4e8a69e6a1be5381ad309c2d3cc2a44423df17555558c","ssdeep":"384:aux6RGK+JooEWGVrA/U9RsplbO1+vTPvdmahZYzYYnkjchlPTiiEMkcMk/7/EFGX:auYRVRpVrA/Ujs3O1+vTPvdmahZYzYKR","tlshash":"92822a8038babd379f3b90dca0d58071c758176a942494e0d6bb1a3d13d9da473a6b3f","first_seen":"2025-10-23T03:46:52.625633Z","last_seen":"2026-07-27T11:49:48.996131Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e3ggYXMgd2UscyBhcyBkLCQgYXMgUixhMSBhcyBaLFIgYXMgZWUsciBhcyBMLGogYXMgSCxhZCBhcyBNZSxiQSBhcyBEZSxhaSBhcyBvZSxhNyBhcyBYLGEwIGFzIFUsYTUgYXMgaixmIGFzIHQsSSBhcyBuZSxYIGFzIHJlLGFLIGFzIE4sYTkgYXMgdGUsYWMgYXMgJGUsSCBhcyBBZSxiYSBhcyBkZSxiayBhcyBjZSxheCBhcyBxLGFhIGFzIHZlLGFiIGFzIGZlLGFuIGFzIGxlLGFoIGFzIFJlLGE0IGFzIG1lLGFmIGFzIEVlLEYgYXMgRyxhMiBhcyBKLGFvIGFzIExlLGJCIGFzIHBlLGF5IGFzIFEsYXYgYXMgVGUsdSBhcyBPZSxiQyBhcyB6ZSxrIGFzIE5lLG8gYXMgVWUsYXcgYXMgc2UsYWcgYXMgYWUsYkQgYXMgamUsYjMgYXMgS2UsYWUgYXMgV2UsYkUgYXMgSGV9ZnJvbSIuL1NtMm1DZkRFLmpzIjtpbXBvcnR7YSBhcyBnZSxiIGFzIFhlfWZyb20iLi9CXzJGa1A4Uy5qcyI7aW1wb3J0e20gYXMgeWUsTSBhcyBiZX1mcm9tIi4vQ0k4VkZzZ0guanMiO2ltcG9ydHtjIGFzIHFlLGQgYXMgWWUsTCBhcyBHZSxhIGFzIEplLHUgYXMgUWV9ZnJvbSIuL1pmTlppeUNtLmpzIjtpbXBvcnR7YSBhcyBaZSxiIGFzIGVhLG0gYXMgYWEsdSBhcyBuYX1mcm9tIi4vQjhUeFR5YWsuanMiO2ltcG9ydHtWIGFzIHRhfWZyb20iLi9DTXVVVGxTMi5qcyI7aW1wb3J0e24gYXMgbGEsYSBhcyBpYSxzIGFzIHNhLGYgYXMgdWF9ZnJvbSIuL0MxMGRiWDNrLmpzIjtpbXBvcnR7SSBhcyBvYX1mcm9tIi4vQ0Fsa1didV8uanMiO2NvbnN0IGhlPVN5bWJvbC5mb3IoInZ1ZXRpZnk6Zm9ybSIpLERhPVIoe2Rpc2FibGVkOkJvb2xlYW4sZmFzdEZhaWw6Qm9vbGVhbixyZWFkb25seTpCb29sZWFuLG1vZGVsVmFsdWU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LHZhbGlkYXRlT246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImlucHV0In19LCJmb3JtIik7ZnVuY3Rpb24gJGEoZSl7Y29uc3Qgcz1aKGUsIm1vZGVsVmFsdWUiKSx1PWQoKCk9PmUuZGlzYWJsZWQpLGw9ZCgoKT0+ZS5yZWFkb25seSksbj1lZSghMSksYT1MKFtdKSxjPUwoW10pO2FzeW5jIGZ1bmN0aW9uIHgoKXtjb25zdCBvPVtdO2xldCByPSEwO2MudmFsdWU9W10sbi52YWx1ZT0hMDtmb3IoY29uc3QgeSBvZiBhLnZhbHVlKXtjb25zdCBmPWF3YWl0IHkudmFsaWRhdGUoKTtpZihmLmxlbmd0aD4wJiYocj0hMSxvLnB1c2goe2lkOnkuaWQsZXJyb3JNZXNzYWdlczpmfSkpLCFyJiZlLmZhc3RGYWlsKWJyZWFrfXJldHVybiBjLnZhbHVlPW8sbi52YWx1ZT0hMSx7dmFsaWQ6cixlcnJvcnM6Yy52YWx1ZX19ZnVuY3Rpb24gUCgpe2EudmFsdWUuZm9yRWFjaChvPT5vLnJlc2V0KCkpfWZ1bmN0aW9uIG0oKXthLnZhbHVlLmZvckVhY2gobz0+by5yZXNldFZhbGlkYXRpb24oKSl9cmV0dXJuIEgoYSwoKT0+e2xldCBvPTAscj0wO2NvbnN0IHk9W107Zm9yKGNvbnN0IGYgb2YgYS52YWx1ZSlmLmlzVmFsaWQ9PT0hMT8ocisrLHkucHVzaCh7aWQ6Zi5pZCxlcnJvck1lc3NhZ2VzOmYuZXJyb3JNZXNzYWdlc30pKTpmLmlzVmFsaWQ9PT0hMCYmbysrO2MudmFsdWU9eSxzLnZhbHVlPXI+MD8hMTpvPT09YS52YWx1ZS5sZW5ndGg/ITA6bnVsbH0se2RlZXA6ITAsZmx1c2g6InBvc3QifSksTWUoaGUse3JlZ2lzdGVyOm89PntsZXR7aWQ6cix2bTp5LHZhbGlkYXRlOmYscmVzZXQ6SSxyZXNldFZhbGlkYXRpb246Vn09bzthLnZhbHVlLnNvbWUoQj0+Qi5pZD09PXIpLGEudmFsdWUucHVzaCh7aWQ6cix2YWxpZGF0ZTpmLHJlc2V0OkkscmVzZXRWYWxpZGF0aW9uOlYsdm06RGUoeSksaXNWYWxpZDpudWxsLGVycm9yTWVzc2FnZXM6W119KX0sdW5yZWdpc3RlcjpvPT57YS52YWx1ZT1hLnZhbHVlLmZpbHRlcihyPT5yLmlkIT09byl9LHVwZGF0ZToobyxyLHkpPT57Y29uc3QgZj1hLnZhbHVlLmZpbmQoST0+SS5pZD09PW8pO2YmJihmLmlzVmFsaWQ9cixmLmVycm9yTWVzc2FnZXM9eSl9LGlzRGlzYWJsZWQ6dSxpc1JlYWRvbmx5OmwsaXNWYWxpZGF0aW5nOm4saXNWYWxpZDpzLGl0ZW1zOmEsdmFsaWRhdGVPbjpvZShlLCJ2YWxpZGF0ZU9uIil9KSx7ZXJyb3JzOmMsaXNEaXNhYmxlZDp1LGlzUmVhZG9ubHk6bCxpc1ZhbGlkYXRpbmc6bixpc1ZhbGlkOnMsaXRlbXM6YSx2YWxpZGF0ZTp4LHJlc2V0OlAscmVzZXRWYWxpZGF0aW9uOm19fWZ1bmN0aW9uIHJhKGUpe2NvbnN0IHM9d2UoaGUsbnVsbCk7cmV0dXJuey4uLnMsaXNSZWFkb25seTpkKCgpPT4hISgoZT09bnVsbD92b2lkIDA6ZS5yZWFkb25seSk/PyhzPT1udWxsP3ZvaWQgMDpzLmlzUmVhZG9ubHkudmFsdWUpKSksaXNEaXNhYmxlZDpkKCgpPT4hISgoZT09bnVsbD92b2lkIDA6ZS5kaXNhYmxlZCk/PyhzPT1udWxsP3ZvaWQgMDpzLmlzRGlzYWJsZWQudmFsdWUpKSl9fWNvbnN0IGRhPVIoe2FjdGl2ZTpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4sbWF4OltOdW1iZXIsU3RyaW5nXSx2YWx1ZTp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSwuLi5YKCksLi4ueWUoe3RyYW5zaXRpb246e2NvbXBvbmVudDpnZX19KX0sIlZDb3VudGVyIiksY2E9VSgpKHtuYW1lOiJWQ291bnRlciIsZnVuY3Rpb25hbDohMCxwcm9wczpkYSgpLHNldHVwKGUscyl7bGV0e3Nsb3RzOnV9PXM7Y29uc3QgbD1kKCgpPT5lLm1heD9gJHtlLnZhbHVlfSAvICR7ZS5tYXh9YDpTdHJpbmcoZS52YWx1ZSkpO3JldHVybiBqKCgpPT50KGJlLHt0cmFuc2l0aW9uOmUudHJhbnNpdGlvbn0se2RlZmF1bHQ6KCk9PltuZSh0KCJkaXYiLHtjbGFzczpbInYtY291bnRlciIseyJ0ZXh0LWVycm9yIjplLm1heCYmIWUuZGlzYWJsZWQmJnBhcnNlRmxvYXQoZS52YWx1ZSk+cGFyc2VGbG9hdChlLm1heCl9LGUuY2xhc3NdLHN0eWxlOmUuc3R5bGV9LFt1LmRlZmF1bHQ/dS5kZWZhdWx0KHtjb3VudGVyOmwudmFsdWUsbWF4OmUubWF4LHZhbHVlOmUudmFsdWV9KTpsLnZhbHVlXSksW1tyZSxlLmFjdGl2ZV1dKV19KSkse319fSksdmE9Uih7dGV4dDpTdHJpbmcsb25DbGljazpOKCksLi4uWCgpLC4uLnRlKCl9LCJWTGFiZWwiKSxmYT1VKCkoe25hbWU6IlZMYWJlbCIscHJvcHM6dmEoKSxzZXR1cChlLHMpe2xldHtzbG90czp1fT1zO3JldHVybiBqKCgpPT57dmFyIGw7cmV0dXJuIHQoImxhYmVsIix7Y2xhc3M6WyJ2LWxhYmVsIix7InYtbGFiZWwtLWNsaWNrYWJsZSI6ISFlLm9uQ2xpY2t9LGUuY2xhc3NdLHN0eWxlOmUuc3R5bGUsb25DbGljazplLm9uQ2xpY2t9LFtlLnRleHQsKGw9dS5kZWZhdWx0KT09bnVsbD92b2lkIDA6bC5jYWxsKHUpXSl9KSx7fX19KSxtYT1SKHtmbG9hdGluZzpCb29sZWFuLC4uLlgoKX0sIlZGaWVsZExhYmVsIiksWT1VKCkoe25hbWU6IlZGaWVsZExhYmVsIixwcm9wczptYSgpLHNldHVwKGUscyl7bGV0e3Nsb3RzOnV9PXM7cmV0dXJuIGooKCk9PnQoZmEse2NsYXNzOlsidi1maWVsZC1sYWJlbCIseyJ2LWZpZWxkLWxhYmVsLS1mbG9hdGluZyI6ZS5mbG9hdGluZ30sZS5jbGFzc10sc3R5bGU6ZS5zdHlsZSwiYXJpYS1oaWRkZW4iOmUuZmxvYXRpbmd8fHZvaWQgMH0sdSkpLHt9fX0pO2Z1bmN0aW9uIFZlKGUpe2NvbnN0e3Q6c309JGUoKTtmdW5jdGlvbiB1KGwpe2xldHtuYW1lOm59PWw7Y29uc3QgYT17cHJlcGVuZDoicHJlcGVuZEFjdGlvbiIscHJlcGVuZElubmVyOiJwcmVwZW5kQWN0aW9uIixhcHBlbmQ6ImFwcGVuZEFjdGlvbiIsYXBwZW5kSW5uZXI6ImFwcGVuZEFjdGlvbiIsY2xlYXI6ImNsZWFyIn1bbl0sYz1lW2BvbkNsaWNrOiR7bn1gXTtmdW5jdGlvbiB4KG0pe20ua2V5IT09IkVudGVyIiYmbS5rZXkhPT0iICJ8fChtLnByZXZlbnREZWZhdWx0KCksbS5zdG9wUHJvcGFnYXRpb24oKSxkZShjLG5ldyBQb2ludGVyRXZlbnQoImNsaWNrIixtKSkpfWNvbnN0IFA9YyYmYT9zKGAkdnVldGlmeS5pbnB1dC4ke2F9YCxlLmxhYmVsPz8iIik6dm9pZCAwO3JldHVybiB0KEFlLHtpY29uOmVbYCR7bn1JY29uYF0sImFyaWEtbGFiZWwiOlAsb25DbGljazpjLG9uS2V5ZG93bjp4fSxudWxsKX1yZXR1cm57SW5wdXRJY29uOnV9fWNvbnN0IHhlPVIoe2ZvY3VzZWQ6Qm9vbGVhbiwib25VcGRhdGU6Zm9jdXNlZCI6TigpfSwiZm9jdXMiKTtmdW5jdGlvbiBDZShlKXtsZXQgcz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06Y2UoKTtjb25zdCB1PVooZSwiZm9jdXNlZCIpLGw9ZCgoKT0+KHtbYCR7c30tLWZvY3VzZWRgXTp1LnZhbHVlfSkpO2Z1bmN0aW9uIG4oKXt1LnZhbHVlPSEwfWZ1bmN0aW9uIGEoKXt1LnZhbHVlPSExfXJldHVybntmb2N1c0NsYXNzZXM6bCxpc0ZvY3VzZWQ6dSxmb2N1czpuLGJsdXI6YX19Y29uc3QgZ2E9WyJ1bmRlcmxpbmVkIiwib3V0bGluZWQiLCJmaWxsZWQiLCJzb2xvIiwic29sby1pbnZlcnRlZCIsInNvbG8tZmlsbGVkIiwicGxhaW4iXSxrZT1SKHthcHBlbmRJbm5lckljb246cSxiZ0NvbG9yOlN0cmluZyxjbGVhcmFibGU6Qm9vbGVhbixjbGVhckljb246e3R5cGU6cSxkZWZhdWx0OiIkY2xlYXIifSxhY3RpdmU6Qm9vbGVhbixjZW50ZXJBZmZpeDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6dm9pZCAwfSxjb2xvcjpTdHJpbmcsYmFzZUNvbG9yOlN0cmluZyxkaXJ0eTpCb29sZWFuLGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxlcnJvcjpCb29sZWFuLGZsYXQ6Qm9vbGVhbixsYWJlbDpTdHJpbmcscGVyc2lzdGVudENsZWFyOkJvb2xlYW4scHJlcGVuZElubmVySWNvbjpxLHJldmVyc2U6Qm9vbGVhbixzaW5nbGVMaW5lOkJvb2xlYW4sdmFyaWFudDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiZmlsbGVkIix2YWxpZGF0b3I6ZT0+Z2EuaW5jbHVkZXMoZSl9LCJvbkNsaWNrOmNsZWFyIjpOKCksIm9uQ2xpY2s6YXBwZW5kSW5uZXIiOk4oKSwib25DbGljazpwcmVwZW5kSW5uZXIiOk4oKSwuLi5YKCksLi4ucWUoKSwuLi5aZSgpLC4uLnRlKCl9LCJWRmllbGQiKSxJZT1VKCkoe25hbWU6IlZGaWVsZCIsaW5oZXJpdEF0dHJzOiExLHByb3BzOntpZDpTdHJpbmcsLi4ueGUoKSwuLi5rZSgpfSxlbWl0czp7InVwZGF0ZTpmb2N1c2VkIjplPT4hMCwidXBkYXRlOm1vZGVsVmFsdWUiOmU9PiEwfSxzZXR1cChlLHMpe2xldHthdHRyczp1LGVtaXQ6bCxzbG90czpufT1zO2NvbnN0e3RoZW1lQ2xhc3NlczphfT12ZShlKSx7bG9hZGVyQ2xhc3NlczpjfT1ZZShlKSx7Zm9jdXNDbGFzc2VzOngsaXNGb2N1c2VkOlAsZm9jdXM6bSxibHVyOm99PUNlKGUpLHtJbnB1dEljb246cn09VmUoZSkse3JvdW5kZWRDbGFzc2VzOnl9PWVhKGUpLHtydGxDbGFzc2VzOmZ9PWZlKCksST1kKCgpPT5lLmRpcnR5fHxlLmFjdGl2ZSksVj1kKCgpPT4hIShlLmxhYmVsfHxuLmxhYmVsKSksQj1kKCgpPT4hZS5zaW5nbGVMaW5lJiZWLnZhbHVlKSxGPWxlKCksYj1kKCgpPT5lLmlkfHxgaW5wdXQtJHtGfWApLGk9ZCgoKT0+YCR7Yi52YWx1ZX0tbWVzc2FnZXNgKSxnPUwoKSxDPUwoKSx2PUwoKSxoPWQoKCk9PlsicGxhaW4iLCJ1bmRlcmxpbmVkIl0uaW5jbHVkZXMoZS52YXJpYW50KSkse2JhY2tncm91bmRDb2xvckNsYXNzZXM6ayxiYWNrZ3JvdW5kQ29sb3JTdHlsZXM6TX09UmUob2UoZSwiYmdDb2xvciIpKSx7dGV4dENvbG9yQ2xhc3NlczpwLHRleHRDb2xvclN0eWxlczpLfT1tZShkKCgpPT5lLmVycm9yfHxlLmRpc2FibGVkP3ZvaWQgMDpJLnZhbHVlJiZQLnZhbHVlP2UuY29sb3I6ZS5iYXNlQ29sb3IpKTtIKEksXz0+e2lmKEIudmFsdWUpe2NvbnN0IFM9Zy52YWx1ZS4kZWwsdz1DLnZhbHVlLiRlbDtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pntjb25zdCBEPWxhKFMpLCQ9dy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxXPSQueC1ELngsVD0kLnktRC55LShELmhlaWdodC8yLSQuaGVpZ2h0LzIpLE89JC53aWR0aC8uNzUsej1NYXRoLmFicyhPLUQud2lkdGgpPjE/e21heFdpZHRoOkVlKE8pfTp2b2lkIDAsU2U9Z2V0Q29tcHV0ZWRTdHlsZShTKSxpZT1nZXRDb21wdXRlZFN0eWxlKHcpLFBlPXBhcnNlRmxvYXQoU2UudHJhbnNpdGlvbkR1cmF0aW9uKSoxZTN8fDE1MCxCZT1wYXJzZUZsb2F0KGllLmdldFByb3BlcnR5VmFsdWUoIi0tdi1maWVsZC1sYWJlbC1zY2FsZSIpKSxGZT1pZS5nZXRQcm9wZXJ0eVZhbHVlKCJjb2xvciIpO1Muc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSIsdy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLGlhKFMse3RyYW5zZm9ybTpgdHJhbnNsYXRlKCR7V31weCwgJHtUfXB4KSBzY2FsZSgke0JlfSlgLGNvbG9yOkZlLC4uLnp9LHtkdXJhdGlvbjpQZSxlYXNpbmc6c2EsZGlyZWN0aW9uOl8/Im5vcm1hbCI6InJldmVyc2UifSkuZmluaXNoZWQudGhlbigoKT0+e1Muc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxpdHkiKSx3LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ2aXNpYmlsaXR5Iil9KX0pfX0se2ZsdXNoOiJwb3N0In0pO2NvbnN0IEE9ZCgoKT0+KHtpc0FjdGl2ZTpJLGlzRm9jdXNlZDpQLGNvbnRyb2xSZWY6dixibHVyOm8sZm9jdXM6bX0pKTtmdW5jdGlvbiBFKF8pe18udGFyZ2V0IT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmXy5wcmV2ZW50RGVmYXVsdCgpfXJldHVybiBqKCgpPT57dmFyIFcsVCxPO2NvbnN0IF89ZS52YXJpYW50PT09Im91dGxpbmVkIixTPSEhKG5bInByZXBlbmQtaW5uZXIiXXx8ZS5wcmVwZW5kSW5uZXJJY29uKSx3PSEhKGUuY2xlYXJhYmxlfHxuLmNsZWFyKSYmIWUuZGlzYWJsZWQsRD0hIShuWyJhcHBlbmQtaW5uZXIiXXx8ZS5hcHBlbmRJbm5lckljb258fHcpLCQ9KCk9Pm4ubGFiZWw/bi5sYWJlbCh7Li4uQS52YWx1ZSxsYWJlbDplLmxhYmVsLHByb3BzOntmb3I6Yi52YWx1ZX19KTplLmxhYmVsO3JldHVybiB0KCJkaXYiLEooe2NsYXNzOlsidi1maWVsZCIseyJ2LWZpZWxkLS1hY3RpdmUiOkkudmFsdWUsInYtZmllbGQtLWFwcGVuZGVkIjpELCJ2LWZpZWxkLS1jZW50ZXItYWZmaXgiOmUuY2VudGVyQWZmaXg/PyFoLnZhbHVlLCJ2LWZpZWxkLS1kaXNhYmxlZCI6ZS5kaXNhYmxlZCwidi1maWVsZC0tZGlydHkiOmUuZGlydHksInYtZmllbGQtLWVycm9yIjplLmVycm9yLCJ2LWZpZWxkLS1mbGF0IjplLmZsYXQsInYtZmllbGQtLWhhcy1iYWNrZ3JvdW5kIjohIWUuYmdDb2xvciwidi1maWVsZC0tcGVyc2lzdGVudC1jbGVhciI6ZS5wZXJzaXN0ZW50Q2xlYXIsInYtZmllbGQtLXByZXBlbmRlZCI6Uywidi1maWVsZC0tcmV2ZXJzZSI6ZS5yZXZlcnNlLCJ2LWZpZWxkLS1zaW5nbGUtbGluZSI6ZS5zaW5nbGVMaW5lLCJ2LWZpZWxkLS1uby1sYWJlbCI6ISQoKSxbYHYtZmllbGQtLXZhcmlhbnQtJHtlLnZhcmlhbnR9YF06ITB9LGEudmFsdWUsay52YWx1ZSx4LnZhbHVlLGMudmFsdWUseS52YWx1ZSxmLnZhbHVlLGUuY2xhc3NdLHN0eWxlOltNLnZhbHVlLGUuc3R5bGVdLG9uQ2xpY2s6RX0sdSksW3QoImRpdiIse2NsYXNzOiJ2LWZpZWxkX19vdmVybGF5In0sbnVsbCksdChHZSx7bmFtZToidi1maWVsZCIsYWN0aXZlOiEhZS5sb2FkaW5nLGNvbG9yOmUuZXJyb3I/ImVycm9yIjp0eXBlb2YgZS5sb2FkaW5nPT0ic3RyaW5nIj9lLmxvYWRpbmc6ZS5jb2xvcn0se2RlZmF1bHQ6bi5sb2FkZXJ9KSxTJiZ0KCJkaXYiLHtrZXk6InByZXBlbmQiLGNsYXNzOiJ2LWZpZWxkX19wcmVwZW5kLWlubmVyIn0sW2UucHJlcGVuZElubmVySWNvbiYmdChyLHtrZXk6InByZXBlbmQtaWNvbiIsbmFtZToicHJlcGVuZElubmVyIn0sbnVsbCksKFc9blsicHJlcGVuZC1pbm5lciJdKT09bnVsbD92b2lkIDA6Vy5jYWxsKG4sQS52YWx1ZSldKSx0KCJkaXYiLHtjbGFzczoidi1maWVsZF9fZmllbGQiLCJkYXRhLW5vLWFjdGl2YXRvciI6IiJ9LFtbImZpbGxlZCIsInNvbG8iLCJzb2xvLWludmVydGVkIiwic29sby1maWxsZWQiXS5pbmNsdWRlcyhlLnZhcmlhbnQpJiZCLnZhbHVlJiZ0KFkse2tleToiZmxvYXRpbmctbGFiZWwiLHJlZjpDLGNsYXNzOltwLnZhbHVlXSxmbG9hdGluZzohMCxmb3I6Yi52YWx1ZSxzdHlsZTpLLnZhbHVlfSx7ZGVmYXVsdDooKT0+WyQoKV19KSxWLnZhbHVlJiZ0KFkse2tleToibGFiZWwiLHJlZjpnLGZvcjpiLnZhbHVlfSx7ZGVmYXVsdDooKT0+WyQoKV19KSwoVD1uLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpULmNhbGwobix7Li4uQS52YWx1ZSxwcm9wczp7aWQ6Yi52YWx1ZSxjbGFzczoidi1maWVsZF9faW5wdXQiLCJhcmlhLWRlc2NyaWJlZGJ5IjppLnZhbHVlfSxmb2N1czptLGJsdXI6b30pXSksdyYmdChYZSx7a2V5OiJjbGVhciJ9LHtkZWZhdWx0OigpPT5bbmUodCgiZGl2Iix7Y2xhc3M6InYtZmllbGRfX2NsZWFyYWJsZSIsb25Nb3VzZWRvd246ej0+e3oucHJldmVudERlZmF1bHQoKSx6LnN0b3BQcm9wYWdhdGlvbigpfX0sW3QodGEse2RlZmF1bHRzOntWSWNvbjp7aWNvbjplLmNsZWFySWNvbn19fSx7ZGVmYXVsdDooKT0+W24uY2xlYXI/bi5jbGVhcih7Li4uQS52YWx1ZSxwcm9wczp7b25Gb2N1czptLG9uQmx1cjpvLG9uQ2xpY2s6ZVsib25DbGljazpjbGVhciJdfX0pOnQocix7bmFtZToiY2xlYXIiLG9uRm9jdXM6bSxvbkJsdXI6b30sbnVsbCldfSldKSxbW3JlLGUuZGlydHldXSldfSksRCYmdCgiZGl2Iix7a2V5OiJhcHBlbmQiLGNsYXNzOiJ2LWZpZWxkX19hcHBlbmQtaW5uZXIifSxbKE89blsiYXBwZW5kLWlubmVyIl0pPT1udWxsP3ZvaWQgMDpPLmNhbGwobixBLnZhbHVlKSxlLmFwcGVuZElubmVySWNvbiYmdChyLHtrZXk6ImFwcGVuZC1pY29uIixuYW1lOiJhcHBlbmRJbm5lciJ9LG51bGwpXSksdCgiZGl2Iix7Y2xhc3M6WyJ2LWZpZWxkX19vdXRsaW5lIixwLnZhbHVlXSxzdHlsZTpLLnZhbHVlfSxbXyYmdChHLG51bGwsW3QoImRpdiIse2NsYXNzOiJ2LWZpZWxkX19vdXRsaW5lX19zdGFydCJ9LG51bGwpLEIudmFsdWUmJnQoImRpdiIse2NsYXNzOiJ2LWZpZWxkX19vdXRsaW5lX19ub3RjaCJ9LFt0KFkse3JlZjpDLGZsb2F0aW5nOiEwLGZvcjpiLnZhbHVlfSx7ZGVmYXVsdDooKT0+WyQoKV19KV0pLHQoImRpdiIse2NsYXNzOiJ2LWZpZWxkX19vdXRsaW5lX19lbmQifSxudWxsKV0pLGgudmFsdWUmJkIudmFsdWUmJnQoWSx7cmVmOkMsZmxvYXRpbmc6ITAsZm9yOmIudmFsdWV9LHtkZWZhdWx0OigpPT5bJCgpXX0pXSldKX0pLHtjb250cm9sUmVmOnZ9fX0pO2Z1bmN0aW9uIHlhKGUpe2NvbnN0IHM9T2JqZWN0LmtleXMoSWUucHJvcHMpLmZpbHRlcih1PT4hTGUodSkmJnUhPT0iY2xhc3MiJiZ1IT09InN0eWxlIik7cmV0dXJuIHBlKGUscyl9Y29uc3QgYmE9Uih7YWN0aXZlOkJvb2xlYW4sY29sb3I6U3RyaW5nLG1lc3NhZ2VzOnt0eXBlOltBcnJheSxTdHJpbmddLGRlZmF1bHQ6KCk9PltdfSwuLi5YKCksLi4ueWUoe3RyYW5zaXRpb246e2NvbXBvbmVudDpnZSxsZWF2ZUFic29sdXRlOiEwLGdyb3VwOiEwfX0pfSwiVk1lc3NhZ2VzIiksaGE9VSgpKHtuYW1lOiJWTWVzc2FnZXMiLHByb3BzOmJhKCksc2V0dXAoZSxzKXtsZXR7c2xvdHM6dX09cztjb25zdCBsPWQoKCk9PlEoZS5tZXNzYWdlcykpLHt0ZXh0Q29sb3JDbGFzc2VzOm4sdGV4dENvbG9yU3R5bGVzOmF9PW1lKGQoKCk9PmUuY29sb3IpKTtyZXR1cm4gaigoKT0+dChiZSx7dHJhbnNpdGlvbjplLnRyYW5zaXRpb24sdGFnOiJkaXYiLGNsYXNzOlsidi1tZXNzYWdlcyIsbi52YWx1ZSxlLmNsYXNzXSxzdHlsZTpbYS52YWx1ZSxlLnN0eWxlXX0se2RlZmF1bHQ6KCk9PltlLmFjdGl2ZSYmbC52YWx1ZS5tYXAoKGMseCk9PnQoImRpdiIse2NsYXNzOiJ2LW1lc3NhZ2VzX19tZXNzYWdlIixrZXk6YCR7eH0tJHtsLnZhbHVlfWB9LFt1Lm1lc3NhZ2U/dS5tZXNzYWdlKHttZXNzYWdlOmN9KTpjXSkpXX0pKSx7fX19KSxWYT1SKHtkaXNhYmxlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZXJyb3I6Qm9vbGVhbixlcnJvck1lc3NhZ2VzOnt0eXBlOltBcnJheSxTdHJpbmddLGRlZmF1bHQ6KCk9PltdfSxtYXhFcnJvcnM6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MX0sbmFtZTpTdHJpbmcsbGFiZWw6U3RyaW5nLHJlYWRvbmx5Ont0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxydWxlczp7dHlwZTpBcnJheSxkZWZhdWx0OigpPT5bXX0sbW9kZWxWYWx1ZTpudWxsLHZhbGlkYXRlT246U3RyaW5nLHZhbGlkYXRpb25WYWx1ZTpudWxsLC4uLnhlKCl9LCJ2YWxpZGF0aW9uIik7ZnVuY3Rpb24geGEoZSl7bGV0IHM9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOmNlKCksdT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06bGUoKTtjb25zdCBsPVooZSwibW9kZWxWYWx1ZSIpLG49ZCgoKT0+ZS52YWxpZGF0aW9uVmFsdWU9PT12b2lkIDA/bC52YWx1ZTplLnZhbGlkYXRpb25WYWx1ZSksYT1yYShlKSxjPUwoW10pLHg9ZWUoITApLFA9ZCgoKT0+ISEoUShsLnZhbHVlPT09IiI/bnVsbDpsLnZhbHVlKS5sZW5ndGh8fFEobi52YWx1ZT09PSIiP251bGw6bi52YWx1ZSkubGVuZ3RoKSksbT1kKCgpPT57dmFyIGk7cmV0dXJuKGk9ZS5lcnJvck1lc3NhZ2VzKSE9bnVsbCYmaS5sZW5ndGg/UShlLmVycm9yTWVzc2FnZXMpLmNvbmNhdChjLnZhbHVlKS5zbGljZSgwLE1hdGgubWF4KDAsK2UubWF4RXJyb3JzKSk6Yy52YWx1ZX0pLG89ZCgoKT0+e3ZhciBDO2xldCBpPShlLnZhbGlkYXRlT24/PygoQz1hLnZhbGlkYXRlT24pPT1udWxsP3ZvaWQgMDpDLnZhbHVlKSl8fCJpbnB1dCI7aT09PSJsYXp5IiYmKGk9ImlucHV0IGxhenkiKSxpPT09ImVhZ2VyIiYmKGk9ImlucHV0IGVhZ2VyIik7Y29uc3QgZz1uZXcgU2V0KChpPT1udWxsP3ZvaWQgMDppLnNwbGl0KCIgIikpPz9bXSk7cmV0dXJue2lucHV0OmcuaGFzKCJpbnB1dCIpLGJsdXI6Zy5oYXMoImJsdXIiKXx8Zy5oYXMoImlucHV0Iil8fGcuaGFzKCJpbnZhbGlkLWlucHV0IiksaW52YWxpZElucHV0OmcuaGFzKCJpbnZhbGlkLWlucHV0IiksbGF6eTpnLmhhcygibGF6eSIpLGVhZ2VyOmcuaGFzKCJlYWdlciIpfX0pLHI9ZCgoKT0+e3ZhciBpO3JldHVybiBlLmVycm9yfHwoaT1lLmVycm9yTWVzc2FnZXMpIT1udWxsJiZpLmxlbmd0aD8hMTplLnJ1bGVzLmxlbmd0aD94LnZhbHVlP2MudmFsdWUubGVuZ3RofHxvLnZhbHVlLmxhenk/bnVsbDohMDohYy52YWx1ZS5sZW5ndGg6ITB9KSx5PWVlKCExKSxmPWQoKCk9Pih7W2Ake3N9LS1lcnJvcmBdOnIudmFsdWU9PT0hMSxbYCR7c30tLWRpcnR5YF06UC52YWx1ZSxbYCR7c30tLWRpc2FibGVkYF06YS5pc0Rpc2FibGVkLnZhbHVlLFtgJHtzfS0tcmVhZG9ubHlgXTphLmlzUmVhZG9ubHkudmFsdWV9KSksST1UZSgidmFsaWRhdGlvbiIpLFY9ZCgoKT0+ZS5uYW1lPz9PZSh1KSk7emUoKCk9Pnt2YXIgaTsoaT1hLnJlZ2lzdGVyKT09bnVsbHx8aS5jYWxsKGEse2lkOlYudmFsdWUsdm06SSx2YWxpZGF0ZTpiLHJlc2V0OkIscmVzZXRWYWxpZGF0aW9uOkZ9KX0pLE5lKCgpPT57dmFyIGk7KGk9YS51bnJlZ2lzdGVyKT09bnVsbHx8aS5jYWxsKGEsVi52YWx1ZSl9KSxVZShhc3luYygpPT57dmFyIGk7by52YWx1ZS5sYXp5fHxhd2FpdCBiKCFvLnZhbHVlLmVhZ2VyKSwoaT1hLnVwZGF0ZSk9PW51bGx8fGkuY2FsbChhLFYudmFsdWUsci52YWx1ZSxtLnZhbHVlKX0pLHNlKCgpPT5vLnZhbHVlLmlucHV0fHxvLnZhbHVlLmludmFsaWRJbnB1dCYmci52YWx1ZT09PSExLCgpPT57SChuLCgpPT57aWYobi52YWx1ZSE9bnVsbCliKCk7ZWxzZSBpZihlLmZvY3VzZWQpe2NvbnN0IGk9SCgoKT0+ZS5mb2N1c2VkLGc9PntnfHxiKCksaSgpfSl9fSl9KSxzZSgoKT0+by52YWx1ZS5ibHVyLCgpPT57SCgoKT0+ZS5mb2N1c2VkLGk9PntpfHxiKCl9KX0pLEgoW3IsbV0sKCk9Pnt2YXIgaTsoaT1hLnVwZGF0ZSk9PW51bGx8fGkuY2FsbChhLFYudmFsdWUsci52YWx1ZSxtLnZhbHVlKX0pO2FzeW5jIGZ1bmN0aW9uIEIoKXtsLnZhbHVlPW51bGwsYXdhaXQgYWUoKSxhd2FpdCBGKCl9YXN5bmMgZnVuY3Rpb24gRigpe3gudmFsdWU9ITAsby52YWx1ZS5sYXp5P2MudmFsdWU9W106YXdhaXQgYighby52YWx1ZS5lYWdlcil9YXN5bmMgZnVuY3Rpb24gYigpe2xldCBpPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTohMTtjb25zdCBnPVtdO3kudmFsdWU9ITA7Zm9yKGNvbnN0IEMgb2YgZS5ydWxlcyl7aWYoZy5sZW5ndGg+PSsoZS5tYXhFcnJvcnM/PzEpKWJyZWFrO2NvbnN0IGg9YXdhaXQodHlwZW9mIEM9PSJmdW5jdGlvbiI/QzooKT0+Qykobi52YWx1ZSk7aWYoaCE9PSEwKXtpZihoIT09ITEmJnR5cGVvZiBoIT0ic3RyaW5nIil7Y29uc29sZS53YXJuKGAke2h9IGlzIG5vdCBhIHZhbGlkIHZhbHVlLiBSdWxlIGZ1bmN0aW9ucyBtdXN0IHJldHVybiBib29sZWFuIHRydWUgb3IgYSBzdHJpbmcuYCk7Y29udGludWV9Zy5wdXNoKGh8fCIiKX19cmV0dXJuIGMudmFsdWU9Zyx5LnZhbHVlPSExLHgudmFsdWU9aSxjLnZhbHVlfXJldHVybntlcnJvck1lc3NhZ2VzOm0saXNEaXJ0eTpQLGlzRGlzYWJsZWQ6YS5pc0Rpc2FibGVkLGlzUmVhZG9ubHk6YS5pc1JlYWRvbmx5LGlzUHJpc3RpbmU6eCxpc1ZhbGlkOnIsaXNWYWxpZGF0aW5nOnkscmVzZXQ6QixyZXNldFZhbGlkYXRpb246Rix2YWxpZGF0ZTpiLHZhbGlkYXRpb25DbGFzc2VzOmZ9fWNvbnN0IF9lPVIoe2lkOlN0cmluZyxhcHBlbmRJY29uOnEsY2VudGVyQWZmaXg6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxwcmVwZW5kSWNvbjpxLGhpZGVEZXRhaWxzOltCb29sZWFuLFN0cmluZ10saGlkZVNwaW5CdXR0b25zOkJvb2xlYW4saGludDpTdHJpbmcscGVyc2lzdGVudEhpbnQ6Qm9vbGVhbixtZXNzYWdlczp7dHlwZTpbQXJyYXksU3RyaW5nXSxkZWZhdWx0OigpPT5bXX0sZGlyZWN0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJob3Jpem9udGFsIix2YWxpZGF0b3I6ZT0+WyJob3Jpem9udGFsIiwidmVydGljYWwiXS5pbmNsdWRlcyhlKX0sIm9uQ2xpY2s6cHJlcGVuZCI6TigpLCJvbkNsaWNrOmFwcGVuZCI6TigpLC4uLlgoKSwuLi5KZSgpLC4uLmplKGFhKCksWyJtYXhXaWR0aCIsIm1pbldpZHRoIiwid2lkdGgiXSksLi4udGUoKSwuLi5WYSgpfSwiVklucHV0IiksdWU9VSgpKHtuYW1lOiJWSW5wdXQiLHByb3BzOnsuLi5fZSgpfSxlbWl0czp7InVwZGF0ZTptb2RlbFZhbHVlIjplPT4hMH0sc2V0dXAoZSxzKXtsZXR7YXR0cnM6dSxzbG90czpsLGVtaXQ6bn09cztjb25zdHtkZW5zaXR5Q2xhc3NlczphfT1RZShlKSx7ZGltZW5zaW9uU3R5bGVzOmN9PW5hKGUpLHt0aGVtZUNsYXNzZXM6eH09dmUoZSkse3J0bENsYXNzZXM6UH09ZmUoKSx7SW5wdXRJY29uOm19PVZlKGUpLG89bGUoKSxyPWQoKCk9PmUuaWR8fGBpbnB1dC0ke299YCkseT1kKCgpPT5gJHtyLnZhbHVlfS1tZXNzYWdlc2ApLHtlcnJvck1lc3NhZ2VzOmYsaXNEaXJ0eTpJLGlzRGlzYWJsZWQ6Vixpc1JlYWRvbmx5OkIsaXNQcmlzdGluZTpGLGlzVmFsaWQ6Yixpc1ZhbGlkYXRpbmc6aSxyZXNldDpnLHJlc2V0VmFsaWRhdGlvbjpDLHZhbGlkYXRlOnYsdmFsaWRhdGlvbkNsYXNzZXM6aH09eGEoZSwidi1pbnB1dCIsciksaz1kKCgpPT4oe2lkOnIsbWVzc2FnZXNJZDp5LGlzRGlydHk6SSxpc0Rpc2FibGVkOlYsaXNSZWFkb25seTpCLGlzUHJpc3RpbmU6Rixpc1ZhbGlkOmIsaXNWYWxpZGF0aW5nOmkscmVzZXQ6ZyxyZXNldFZhbGlkYXRpb246Qyx2YWxpZGF0ZTp2fSkpLE09ZCgoKT0+e3ZhciBwO3JldHVybihwPWUuZXJyb3JNZXNzYWdlcykhPW51bGwmJnAubGVuZ3RofHwhRi52YWx1ZSYmZi52YWx1ZS5sZW5ndGg/Zi52YWx1ZTplLmhpbnQmJihlLnBlcnNpc3RlbnRIaW50fHxlLmZvY3VzZWQpP2UuaGludDplLm1lc3NhZ2VzfSk7cmV0dXJuIGooKCk9Pnt2YXIgXyxTLHcsRDtjb25zdCBwPSEhKGwucHJlcGVuZHx8ZS5wcmVwZW5kSWNvbiksSz0hIShsLmFwcGVuZHx8ZS5hcHBlbmRJY29uKSxBPU0udmFsdWUubGVuZ3RoPjAsRT0hZS5oaWRlRGV0YWlsc3x8ZS5oaWRlRGV0YWlscz09PSJhdXRvIiYmKEF8fCEhbC5kZXRhaWxzKTtyZXR1cm4gdCgiZGl2Iix7Y2xhc3M6WyJ2LWlucHV0Iixgdi1pbnB1dC0tJHtlLmRpcmVjdGlvbn1gLHsidi1pbnB1dC0tY2VudGVyLWFmZml4IjplLmNlbnRlckFmZml4LCJ2LWlucHV0LS1oaWRlLXNwaW4tYnV0dG9ucyI6ZS5oaWRlU3BpbkJ1dHRvbnN9LGEudmFsdWUseC52YWx1ZSxQLnZhbHVlLGgudmFsdWUsZS5jbGFzc10sc3R5bGU6W2MudmFsdWUsZS5zdHlsZV19LFtwJiZ0KCJkaXYiLHtrZXk6InByZXBlbmQiLGNsYXNzOiJ2LWlucHV0X19wcmVwZW5kIn0sWyhfPWwucHJlcGVuZCk9PW51bGw/dm9pZCAwOl8uY2FsbChsLGsudmFsdWUpLGUucHJlcGVuZEljb24mJnQobSx7a2V5OiJwcmVwZW5kLWljb24iLG5hbWU6InByZXBlbmQifSxudWxsKV0pLGwuZGVmYXVsdCYmdCgiZGl2Iix7Y2xhc3M6InYtaW5wdXRfX2NvbnRyb2wifSxbKFM9bC5kZWZhdWx0KT09bnVsbD92b2lkIDA6Uy5jYWxsKGwsay52YWx1ZSldKSxLJiZ0KCJkaXYiLHtrZXk6ImFwcGVuZCIsY2xhc3M6InYtaW5wdXRfX2FwcGVuZCJ9LFtlLmFwcGVuZEljb24mJnQobSx7a2V5OiJhcHBlbmQtaWNvbiIsbmFtZToiYXBwZW5kIn0sbnVsbCksKHc9bC5hcHBlbmQpPT1udWxsP3ZvaWQgMDp3LmNhbGwobCxrLnZhbHVlKV0pLEUmJnQoImRpdiIse2lkOnkudmFsdWUsY2xhc3M6InYtaW5wdXRfX2RldGFpbHMiLHJvbGU6ImFsZXJ0IiwiYXJpYS1saXZlIjoicG9saXRlIn0sW3QoaGEse2FjdGl2ZTpBLG1lc3NhZ2VzOk0udmFsdWV9LHttZXNzYWdlOmwubWVzc2FnZX0pLChEPWwuZGV0YWlscyk9PW51bGw/dm9pZCAwOkQuY2FsbChsLGsudmFsdWUpXSldKX0pLHtyZXNldDpnLHJlc2V0VmFsaWRhdGlvbjpDLHZhbGlkYXRlOnYsaXNWYWxpZDpiLGVycm9yTWVzc2FnZXM6Zn19fSksQ2E9WyJjb2xvciIsImZpbGUiLCJ0aW1lIiwiZGF0ZSIsImRhdGV0aW1lLWxvY2FsIiwid2VlayIsIm1vbnRoIl0sa2E9Uih7YXV0b2ZvY3VzOkJvb2xlYW4sY291bnRlcjpbQm9vbGVhbixOdW1iZXIsU3RyaW5nXSxjb3VudGVyVmFsdWU6W051bWJlcixGdW5jdGlvbl0scHJlZml4OlN0cmluZyxwbGFjZWhvbGRlcjpTdHJpbmcscGVyc2lzdGVudFBsYWNlaG9sZGVyOkJvb2xlYW4scGVyc2lzdGVudENvdW50ZXI6Qm9vbGVhbixzdWZmaXg6U3RyaW5nLHJvbGU6U3RyaW5nLHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InRleHQifSxtb2RlbE1vZGlmaWVyczpPYmplY3QsLi4uX2UoKSwuLi5rZSgpfSwiVlRleHRGaWVsZCIpLEFhPVUoKSh7bmFtZToiVlRleHRGaWVsZCIsZGlyZWN0aXZlczp7SW50ZXJzZWN0Om9hfSxpbmhlcml0QXR0cnM6ITEscHJvcHM6a2EoKSxlbWl0czp7ImNsaWNrOmNvbnRyb2wiOmU9PiEwLCJtb3VzZWRvd246Y29udHJvbCI6ZT0+ITAsInVwZGF0ZTpmb2N1c2VkIjplPT4hMCwidXBkYXRlOm1vZGVsVmFsdWUiOmU9PiEwfSxzZXR1cChlLHMpe2xldHthdHRyczp1LGVtaXQ6bCxzbG90czpufT1zO2NvbnN0IGE9WihlLCJtb2RlbFZhbHVlIikse2lzRm9jdXNlZDpjLGZvY3VzOngsYmx1cjpQfT1DZShlKSxtPWQoKCk9PnR5cGVvZiBlLmNvdW50ZXJWYWx1ZT09ImZ1bmN0aW9uIj9lLmNvdW50ZXJWYWx1ZShhLnZhbHVlKTp0eXBlb2YgZS5jb3VudGVyVmFsdWU9PSJudW1iZXIiP2UuY291bnRlclZhbHVlOihhLnZhbHVlPz8iIikudG9TdHJpbmcoKS5sZW5ndGgpLG89ZCgoKT0+e2lmKHUubWF4bGVuZ3RoKXJldHVybiB1Lm1heGxlbmd0aDtpZighKCFlLmNvdW50ZXJ8fHR5cGVvZiBlLmNvdW50ZXIhPSJudW1iZXIiJiZ0eXBlb2YgZS5jb3VudGVyIT0ic3RyaW5nIikpcmV0dXJuIGUuY291bnRlcn0pLHI9ZCgoKT0+WyJwbGFpbiIsInVuZGVybGluZWQiXS5pbmNsdWRlcyhlLnZhcmlhbnQpKTtmdW5jdGlvbiB5KHYsaCl7dmFyIGssTTshZS5hdXRvZm9jdXN8fCF2fHwoTT0oaz1oWzBdLnRhcmdldCk9PW51bGw/dm9pZCAwOmsuZm9jdXMpPT1udWxsfHxNLmNhbGwoayl9Y29uc3QgZj1MKCksST1MKCksVj1MKCksQj1kKCgpPT5DYS5pbmNsdWRlcyhlLnR5cGUpfHxlLnBlcnNpc3RlbnRQbGFjZWhvbGRlcnx8Yy52YWx1ZXx8ZS5hY3RpdmUpO2Z1bmN0aW9uIEYoKXt2YXIgdjtWLnZhbHVlIT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmKCh2PVYudmFsdWUpPT1udWxsfHx2LmZvY3VzKCkpLGMudmFsdWV8fHgoKX1mdW5jdGlvbiBiKHYpe2woIm1vdXNlZG93bjpjb250cm9sIix2KSx2LnRhcmdldCE9PVYudmFsdWUmJihGKCksdi5wcmV2ZW50RGVmYXVsdCgpKX1mdW5jdGlvbiBpKHYpe0YoKSxsKCJjbGljazpjb250cm9sIix2KX1mdW5jdGlvbiBnKHYpe3Yuc3RvcFByb3BhZ2F0aW9uKCksRigpLGFlKCgpPT57YS52YWx1ZT1udWxsLGRlKGVbIm9uQ2xpY2s6Y2xlYXIiXSx2KX0pfWZ1bmN0aW9uIEModil7dmFyIGs7Y29uc3QgaD12LnRhcmdldDtpZihhLnZhbHVlPWgudmFsdWUsKGs9ZS5tb2RlbE1vZGlmaWVycykhPW51bGwmJmsudHJpbSYmWyJ0ZXh0Iiwic2VhcmNoIiwicGFzc3dvcmQiLCJ0ZWwiLCJ1cmwiXS5pbmNsdWRlcyhlLnR5cGUpKXtjb25zdCBNPVtoLnNlbGVjdGlvblN0YXJ0LGguc2VsZWN0aW9uRW5kXTthZSgoKT0+e2guc2VsZWN0aW9uU3RhcnQ9TVswXSxoLnNlbGVjdGlvbkVuZD1NWzFdfSl9fXJldHVybiBqKCgpPT57Y29uc3Qgdj0hIShuLmNvdW50ZXJ8fGUuY291bnRlciE9PSExJiZlLmNvdW50ZXIhPW51bGwpLGg9ISEodnx8bi5kZXRhaWxzKSxbayxNXT1LZSh1KSx7bW9kZWxWYWx1ZTpwLC4uLkt9PXVlLmZpbHRlclByb3BzKGUpLEE9eWEoZSk7cmV0dXJuIHQodWUsSih7cmVmOmYsbW9kZWxWYWx1ZTphLnZhbHVlLCJvblVwZGF0ZTptb2RlbFZhbHVlIjpFPT5hLnZhbHVlPUUsY2xhc3M6WyJ2LXRleHQtZmllbGQiLHsidi10ZXh0LWZpZWxkLS1wcmVmaXhlZCI6ZS5wcmVmaXgsInYtdGV4dC1maWVsZC0tc3VmZml4ZWQiOmUuc3VmZml4LCJ2LWlucHV0LS1wbGFpbi11bmRlcmxpbmVkIjpyLnZhbHVlfSxlLmNsYXNzXSxzdHlsZTplLnN0eWxlfSxrLEsse2NlbnRlckFmZml4OiFyLnZhbHVlLGZvY3VzZWQ6Yy52YWx1ZX0pLHsuLi5uLGRlZmF1bHQ6RT0+e2xldHtpZDpfLGlzRGlzYWJsZWQ6Uyxpc0RpcnR5OncsaXNSZWFkb25seTpELGlzVmFsaWQ6JH09RTtyZXR1cm4gdChJZSxKKHtyZWY6SSxvbk1vdXNlZG93bjpiLG9uQ2xpY2s6aSwib25DbGljazpjbGVhciI6Zywib25DbGljazpwcmVwZW5kSW5uZXIiOmVbIm9uQ2xpY2s6cHJlcGVuZElubmVyIl0sIm9uQ2xpY2s6YXBwZW5kSW5uZXIiOmVbIm9uQ2xpY2s6YXBwZW5kSW5uZXIiXSxyb2xlOmUucm9sZX0sQSx7aWQ6Xy52YWx1ZSxhY3RpdmU6Qi52YWx1ZXx8dy52YWx1ZSxkaXJ0eTp3LnZhbHVlfHxlLmRpcnR5LGRpc2FibGVkOlMudmFsdWUsZm9jdXNlZDpjLnZhbHVlLGVycm9yOiQudmFsdWU9PT0hMX0pLHsuLi5uLGRlZmF1bHQ6Vz0+e2xldHtwcm9wczp7Y2xhc3M6VCwuLi5PfX09Vztjb25zdCB6PW5lKHQoImlucHV0IixKKHtyZWY6Vix2YWx1ZTphLnZhbHVlLG9uSW5wdXQ6QyxhdXRvZm9jdXM6ZS5hdXRvZm9jdXMscmVhZG9ubHk6RC52YWx1ZSxkaXNhYmxlZDpTLnZhbHVlLG5hbWU6ZS5uYW1lLHBsYWNlaG9sZGVyOmUucGxhY2Vob2xkZXIsc2l6ZToxLHR5cGU6ZS50eXBlLG9uRm9jdXM6RixvbkJsdXI6UH0sTyxNKSxudWxsKSxbW1dlKCJpbnRlcnNlY3QiKSx7aGFuZGxlcjp5fSxudWxsLHtvbmNlOiEwfV1dKTtyZXR1cm4gdChHLG51bGwsW2UucHJlZml4JiZ0KCJzcGFuIix7Y2xhc3M6InYtdGV4dC1maWVsZF9fcHJlZml4In0sW3QoInNwYW4iLHtjbGFzczoidi10ZXh0LWZpZWxkX19wcmVmaXhfX3RleHQifSxbZS5wcmVmaXhdKV0pLG4uZGVmYXVsdD90KCJkaXYiLHtjbGFzczpULCJkYXRhLW5vLWFjdGl2YXRvciI6IiJ9LFtuLmRlZmF1bHQoKSx6XSk6SGUoeix7Y2xhc3M6VH0pLGUuc3VmZml4JiZ0KCJzcGFuIix7Y2xhc3M6InYtdGV4dC1maWVsZF9fc3VmZml4In0sW3QoInNwYW4iLHtjbGFzczoidi10ZXh0LWZpZWxkX19zdWZmaXhfX3RleHQifSxbZS5zdWZmaXhdKV0pXSl9fSl9LGRldGFpbHM6aD9FPT57dmFyIF87cmV0dXJuIHQoRyxudWxsLFsoXz1uLmRldGFpbHMpPT1udWxsP3ZvaWQgMDpfLmNhbGwobixFKSx2JiZ0KEcsbnVsbCxbdCgic3BhbiIsbnVsbCxudWxsKSx0KGNhLHthY3RpdmU6ZS5wZXJzaXN0ZW50Q291bnRlcnx8Yy52YWx1ZSx2YWx1ZTptLnZhbHVlLG1heDpvLnZhbHVlLGRpc2FibGVkOmUuZGlzYWJsZWR9LG4uY291bnRlcildKV0pfTp2b2lkIDB9KX0pLHVhKHt9LGYsSSxWKX19KTtleHBvcnR7QWEgYXMgVixEYSBhcyBhLF9lIGFzIGIsJGEgYXMgYyxDZSBhcyBkLHVlIGFzIGUsa2UgYXMgZix5YSBhcyBnLEllIGFzIGgsY2EgYXMgaSxmYSBhcyBqLHhlIGFzIGssa2EgYXMgbSxyYSBhcyB1fTsK"}},"time_used":106,"timings":{"blocked":77,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BhMtR_Hb.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.545Z","timestamp":1785139669545,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/BhMtR_Hb.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1db-654aa2b82da32-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 329\r\nKeep-Alive: timeout=5, max=93\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":475,"size_decoded":678,"mime_type":"application/javascript","magic":"ASCII text, with very long lines (474)","md5":"382671e003dd78134c7500df62a2751b","sha1":"c6cf0c227f90cedaca097fbb55bf8ca79795ffef","sha256":"85106edc720681277902286f75a541afe044e182a872125a56a269d093a0ec5c","sha512":"7128fed51eb6a5952853611bfe86c0d4156915a3a508ed8370ba52397b098d4b6a861b73f31e39cbda5b29870b3d2b6e3fa3aa45707c77289e783580f6fe7d6e","ssdeep":"","tlshash":"83f097427e82ab78f3a708acd90110000b128b08ef6288c030efc1a45318098d3079aa","first_seen":"2025-10-23T03:46:52.086595Z","last_seen":"2026-07-27T11:49:48.945294Z","times_seen":8,"resource_available":true,"data":"LyogZW1wdHkgY3NzICAgICAgICAqL2ltcG9ydHskIGFzIHQsYTcgYXMgcixhOCBhcyBpLGEwIGFzIGwsYWIgYXMgbSxhNSBhcyB1LGYgYXMgY31mcm9tIi4vU20ybUNmREUuanMiO2ltcG9ydHttIGFzIGYsdSBhcyBwfWZyb20iLi9COFR4VHlhay5qcyI7Y29uc3QgZD10KHtmbHVpZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LC4uLnIoKSwuLi5mKCksLi4uaSgpfSwiVkNvbnRhaW5lciIpLGs9bCgpKHtuYW1lOiJWQ29udGFpbmVyIixwcm9wczpkKCksc2V0dXAoZSxhKXtsZXR7c2xvdHM6c309YTtjb25zdHtydGxDbGFzc2VzOm59PW0oKSx7ZGltZW5zaW9uU3R5bGVzOm99PXAoZSk7cmV0dXJuIHUoKCk9PmMoZS50YWcse2NsYXNzOlsidi1jb250YWluZXIiLHsidi1jb250YWluZXItLWZsdWlkIjplLmZsdWlkfSxuLnZhbHVlLGUuY2xhc3NdLHN0eWxlOltvLnZhbHVlLGUuc3R5bGVdfSxzKSkse319fSk7ZXhwb3J0e2sgYXMgVn07Cg=="}},"time_used":173,"timings":{"blocked":147,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/recaptcha/api2/anchor?ar=1\u0026k=6LfRUoYnAAAAAKfevHpSKXaw8gRuE6AJVb9YJKYH\u0026co=aHR0cHM6Ly9uY29ubmVjdC5vcmc6NDQz\u0026hl=en\u0026v=A7KpaEASfhDcK0nXxgQEyyYv\u0026size=invisible\u0026anchor-ms=20000\u0026execute-ms=30000\u0026cb=xxau4owkhj73","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.755Z","timestamp":1785139670755,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /recaptcha/api2/anchor?ar=1\u0026k=6LfRUoYnAAAAAKfevHpSKXaw8gRuE6AJVb9YJKYH\u0026co=aHR0cHM6Ly9uY29ubmVjdC5vcmc6NDQz\u0026hl=en\u0026v=A7KpaEASfhDcK0nXxgQEyyYv\u0026size=invisible\u0026anchor-ms=20000\u0026execute-ms=30000\u0026cb=xxau4owkhj73 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/html; charset=utf-8\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-embedder-policy: require-corp\r\nreport-to: {\"group\":\"recaptcha\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/recaptcha\"}]}, {\"group\":\"coop_38fac9d5b82543fc4729580d18ff2d3d\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/38fac9d5b82543fc4729580d18ff2d3d\"}]}\r\ncache-control: no-cache, no-store, max-age=0, must-revalidate\r\npragma: no-cache\r\nexpires: Mon, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 08:07:50 GMT\r\ncontent-security-policy: script-src 'nonce-O03COv9f6GjT5LgV0DkDXA' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/recaptcha/1\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_38fac9d5b82543fc4729580d18ff2d3d\"\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":16860,"size_decoded":3171,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (1572)","md5":"0eb1fb285d110dee7ccdbb4d02e1fe5e","sha1":"7c9a9709b2f1117958a2ce861244cb8636bd412a","sha256":"ac3aa5ce272efd711c7ff712379402f8ac115a7c1306c7e65d7713efc5c8b578","sha512":"0a1e50b81f41b0054b9f8801c838341399ce72af0a116469ad38e1d66ef170f47bce0d903a7d2b209935d70f149951d6048620d290fae122a9ce6ba9b0248261","ssdeep":"384:OjfZjYjnjbjyEj/qY4WjgjAjzjfCjPjwjkjy7j/qY49jXj3j/jfmjDjUjAjyXj/W:OFkD/OE/hkc3+bsIO7/KbzbK3YcOX/+d","tlshash":"1972fd50041744009b835ce223ce7f30fe4e92517246d0b1abfd9b6beedbda6926939d","first_seen":"2026-07-27T08:08:31.072178Z","last_seen":"2026-07-27T08:08:31.072178Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIEhUTUw+PGh0bWwgZGlyPSJsdHIiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLyogY3lyaWxsaWMtZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM0dVQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4QSwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM2lVQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMSwgVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9Ci8qIGdyZWVrLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNDVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQovKiBncmVlayAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTMtVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDM3NywgVSswMzdBLTAzN0YsIFUrMDM4NC0wMzhBLCBVKzAzOEMsIFUrMDM4RS0wM0ExLCBVKzAzQTMtMDNGRjsKfQovKiBtYXRoICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hd0NVQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMi0wMzAzLCBVKzAzMDUsIFUrMDMwNy0wMzA4LCBVKzAzMTAsIFUrMDMxMiwgVSswMzE1LCBVKzAzMUEsIFUrMDMyNi0wMzI3LCBVKzAzMkMsIFUrMDMyRi0wMzMwLCBVKzAzMzItMDMzMywgVSswMzM4LCBVKzAzM0EsIFUrMDM0NiwgVSswMzRELCBVKzAzOTEtMDNBMSwgVSswM0EzLTAzQTksIFUrMDNCMS0wM0M5LCBVKzAzRDEsIFUrMDNENS0wM0Q2LCBVKzAzRjAtMDNGMSwgVSswM0Y0LTAzRjUsIFUrMjAxNi0yMDE3LCBVKzIwMzQtMjAzOCwgVSsyMDNDLCBVKzIwNDAsIFUrMjA0MywgVSsyMDQ3LCBVKzIwNTAsIFUrMjA1NywgVSsyMDVGLCBVKzIwNzAtMjA3MSwgVSsyMDc0LTIwOEUsIFUrMjA5MC0yMDlDLCBVKzIwRDAtMjBEQywgVSsyMEUxLCBVKzIwRTUtMjBFRiwgVSsyMTAwLTIxMTIsIFUrMjExNC0yMTE1LCBVKzIxMTctMjEyMSwgVSsyMTIzLTIxNEYsIFUrMjE5MCwgVSsyMTkyLCBVKzIxOTQtMjFBRSwgVSsyMUIwLTIxRTUsIFUrMjFGMS0yMUYyLCBVKzIxRjQtMjIxMSwgVSsyMjEzLTIyMTQsIFUrMjIxNi0yMkZGLCBVKzIzMDgtMjMwQiwgVSsyMzEwLCBVKzIzMTksIFUrMjMxQy0yMzIxLCBVKzIzMzYtMjM3QSwgVSsyMzdDLCBVKzIzOTUsIFUrMjM5Qi0yM0I3LCBVKzIzRDAsIFUrMjNEQy0yM0UxLCBVKzI0NzQtMjQ3NSwgVSsyNUFGLCBVKzI1QjMsIFUrMjVCNywgVSsyNUJELCBVKzI1QzEsIFUrMjVDQSwgVSsyNUNDLCBVKzI1RkIsIFUrMjY2RC0yNjZGLCBVKzI3QzAtMjdGRiwgVSsyOTAwLTJBRkYsIFUrMkIwRS0yQjExLCBVKzJCMzAtMkI0QywgVSsyQkZFLCBVKzMwMzAsIFUrRkY1QiwgVStGRjVELCBVKzFENDAwLTFEN0ZGLCBVKzFFRTAwLTFFRUZGOwp9Ci8qIHN5bWJvbHMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWF4S1VCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAxLTAwMEMsIFUrMDAwRS0wMDFGLCBVKzAwN0YtMDA5RiwgVSsyMERELTIwRTAsIFUrMjBFMi0yMEU0LCBVKzIxNTAtMjE4RiwgVSsyMTkwLCBVKzIxOTIsIFUrMjE5NC0yMTk5LCBVKzIxQUYsIFUrMjFFNi0yMUYwLCBVKzIxRjMsIFUrMjIxOC0yMjE5LCBVKzIyOTksIFUrMjJDNC0yMkM2LCBVKzIzMDAtMjQzRiwgVSsyNDQwLTI0NEEsIFUrMjQ2MC0yNEZGLCBVKzI1QTAtMjdCRiwgVSsyODAwLTI4RkYsIFUrMjkyMS0yOTIyLCBVKzI5ODEsIFUrMjlCRiwgVSsyOUVCLCBVKzJCMDAtMkJGRiwgVSs0REMwLTRERkYsIFUrRkZGOS1GRkZCLCBVKzEwMTQwLTEwMThFLCBVKzEwMTkwLTEwMTlDLCBVKzEwMUEwLCBVKzEwMUQwLTEwMUZELCBVKzEwMkUwLTEwMkZCLCBVKzEwRTYwLTEwRTdFLCBVKzFEMkMwLTFEMkQzLCBVKzFEMkUwLTFEMzdGLCBVKzFGMDAwLTFGMEZGLCBVKzFGMTAwLTFGMUFELCBVKzFGMUU2LTFGMUZGLCBVKzFGMzBELTFGMzBGLCBVKzFGMzE1LCBVKzFGMzFDLCBVKzFGMzFFLCBVKzFGMzIwLTFGMzJDLCBVKzFGMzM2LCBVKzFGMzc4LCBVKzFGMzdELCBVKzFGMzgyLCBVKzFGMzkzLTFGMzlGLCBVKzFGM0E3LTFGM0E4LCBVKzFGM0FDLTFGM0FGLCBVKzFGM0MyLCBVKzFGM0M0LTFGM0M2LCBVKzFGM0NBLTFGM0NFLCBVKzFGM0Q0LTFGM0UwLCBVKzFGM0VELCBVKzFGM0YxLTFGM0YzLCBVKzFGM0Y1LTFGM0Y3LCBVKzFGNDA4LCBVKzFGNDE1LCBVKzFGNDFGLCBVKzFGNDI2LCBVKzFGNDNGLCBVKzFGNDQxLTFGNDQyLCBVKzFGNDQ0LCBVKzFGNDQ2LTFGNDQ5LCBVKzFGNDRDLTFGNDRFLCBVKzFGNDUzLCBVKzFGNDZBLCBVKzFGNDdELCBVKzFGNEEzLCBVKzFGNEIwLCBVKzFGNEIzLCBVKzFGNEI5LCBVKzFGNEJCLCBVKzFGNEJGLCBVKzFGNEM4LTFGNENCLCBVKzFGNEQ2LCBVKzFGNERBLCBVKzFGNERGLCBVKzFGNEUzLTFGNEU2LCBVKzFGNEVBLTFGNEVELCBVKzFGNEY3LCBVKzFGNEY5LTFGNEZCLCBVKzFGNEZELTFGNEZFLCBVKzFGNTAzLCBVKzFGNTA3LTFGNTBCLCBVKzFGNTBELCBVKzFGNTEyLTFGNTEzLCBVKzFGNTNFLTFGNTRBLCBVKzFGNTRGLTFGNUZBLCBVKzFGNjEwLCBVKzFGNjUwLTFGNjdGLCBVKzFGNjg3LCBVKzFGNjhELCBVKzFGNjkxLCBVKzFGNjk0LCBVKzFGNjk4LCBVKzFGNkFELCBVKzFGNkIyLCBVKzFGNkI5LTFGNkJBLCBVKzFGNkJDLCBVKzFGNkM2LTFGNkNGLCBVKzFGNkQzLTFGNkQ3LCBVKzFGNkUwLTFGNkVBLCBVKzFGNkYwLTFGNkYzLCBVKzFGNkY3LTFGNkZDLCBVKzFGNzAwLTFGN0ZGLCBVKzFGODAwLTFGODBCLCBVKzFGODEwLTFGODQ3LCBVKzFGODUwLTFGODU5LCBVKzFGODYwLTFGODg3LCBVKzFGODkwLTFGOEFELCBVKzFGOEIwLTFGOEJCLCBVKzFGOEMwLTFGOEMxLCBVKzFGOTAwLTFGOTBCLCBVKzFGOTNCLCBVKzFGOTQ2LCBVKzFGOTg0LCBVKzFGOTk2LCBVKzFGOUU5LCBVKzFGQTAwLTFGQTZGLCBVKzFGQTcwLTFGQTdDLCBVKzFGQTgwLTFGQTg5LCBVKzFGQThGLTFGQUM2LCBVKzFGQUNFLTFGQURDLCBVKzFGQURGLTFGQUU5LCBVKzFGQUYwLTFGQUY4LCBVKzFGQjAwLTFGQkZGOwp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzT1VCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM0tVQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM3lVQkEud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYy1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzR1VCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMUM4MC0xQzhBLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RiwgVStGRTJFLUZFMkY7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzaVVCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogZ3JlZWstZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM0NVQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9Ci8qIGdyZWVrICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hMy1VQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LCBVKzAzN0EtMDM3RiwgVSswMzg0LTAzOEEsIFUrMDM4QywgVSswMzhFLTAzQTEsIFUrMDNBMy0wM0ZGOwp9Ci8qIG1hdGggKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWF3Q1VCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAyLTAzMDMsIFUrMDMwNSwgVSswMzA3LTAzMDgsIFUrMDMxMCwgVSswMzEyLCBVKzAzMTUsIFUrMDMxQSwgVSswMzI2LTAzMjcsIFUrMDMyQywgVSswMzJGLTAzMzAsIFUrMDMzMi0wMzMzLCBVKzAzMzgsIFUrMDMzQSwgVSswMzQ2LCBVKzAzNEQsIFUrMDM5MS0wM0ExLCBVKzAzQTMtMDNBOSwgVSswM0IxLTAzQzksIFUrMDNEMSwgVSswM0Q1LTAzRDYsIFUrMDNGMC0wM0YxLCBVKzAzRjQtMDNGNSwgVSsyMDE2LTIwMTcsIFUrMjAzNC0yMDM4LCBVKzIwM0MsIFUrMjA0MCwgVSsyMDQzLCBVKzIwNDcsIFUrMjA1MCwgVSsyMDU3LCBVKzIwNUYsIFUrMjA3MC0yMDcxLCBVKzIwNzQtMjA4RSwgVSsyMDkwLTIwOUMsIFUrMjBEMC0yMERDLCBVKzIwRTEsIFUrMjBFNS0yMEVGLCBVKzIxMDAtMjExMiwgVSsyMTE0LTIxMTUsIFUrMjExNy0yMTIxLCBVKzIxMjMtMjE0RiwgVSsyMTkwLCBVKzIxOTIsIFUrMjE5NC0yMUFFLCBVKzIxQjAtMjFFNSwgVSsyMUYxLTIxRjIsIFUrMjFGNC0yMjExLCBVKzIyMTMtMjIxNCwgVSsyMjE2LTIyRkYsIFUrMjMwOC0yMzBCLCBVKzIzMTAsIFUrMjMxOSwgVSsyMzFDLTIzMjEsIFUrMjMzNi0yMzdBLCBVKzIzN0MsIFUrMjM5NSwgVSsyMzlCLTIzQjcsIFUrMjNEMCwgVSsyM0RDLTIzRTEsIFUrMjQ3NC0yNDc1LCBVKzI1QUYsIFUrMjVCMywgVSsyNUI3LCBVKzI1QkQsIFUrMjVDMSwgVSsyNUNBLCBVKzI1Q0MsIFUrMjVGQiwgVSsyNjZELTI2NkYsIFUrMjdDMC0yN0ZGLCBVKzI5MDAtMkFGRiwgVSsyQjBFLTJCMTEsIFUrMkIzMC0yQjRDLCBVKzJCRkUsIFUrMzAzMCwgVStGRjVCLCBVK0ZGNUQsIFUrMUQ0MDAtMUQ3RkYsIFUrMUVFMDAtMUVFRkY7Cn0KLyogc3ltYm9scyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYXhLVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDEtMDAwQywgVSswMDBFLTAwMUYsIFUrMDA3Ri0wMDlGLCBVKzIwREQtMjBFMCwgVSsyMEUyLTIwRTQsIFUrMjE1MC0yMThGLCBVKzIxOTAsIFUrMjE5MiwgVSsyMTk0LTIxOTksIFUrMjFBRiwgVSsyMUU2LTIxRjAsIFUrMjFGMywgVSsyMjE4LTIyMTksIFUrMjI5OSwgVSsyMkM0LTIyQzYsIFUrMjMwMC0yNDNGLCBVKzI0NDAtMjQ0QSwgVSsyNDYwLTI0RkYsIFUrMjVBMC0yN0JGLCBVKzI4MDAtMjhGRiwgVSsyOTIxLTI5MjIsIFUrMjk4MSwgVSsyOUJGLCBVKzI5RUIsIFUrMkIwMC0yQkZGLCBVKzREQzAtNERGRiwgVStGRkY5LUZGRkIsIFUrMTAxNDAtMTAxOEUsIFUrMTAxOTAtMTAxOUMsIFUrMTAxQTAsIFUrMTAxRDAtMTAxRkQsIFUrMTAyRTAtMTAyRkIsIFUrMTBFNjAtMTBFN0UsIFUrMUQyQzAtMUQyRDMsIFUrMUQyRTAtMUQzN0YsIFUrMUYwMDAtMUYwRkYsIFUrMUYxMDAtMUYxQUQsIFUrMUYxRTYtMUYxRkYsIFUrMUYzMEQtMUYzMEYsIFUrMUYzMTUsIFUrMUYzMUMsIFUrMUYzMUUsIFUrMUYzMjAtMUYzMkMsIFUrMUYzMzYsIFUrMUYzNzgsIFUrMUYzN0QsIFUrMUYzODIsIFUrMUYzOTMtMUYzOUYsIFUrMUYzQTctMUYzQTgsIFUrMUYzQUMtMUYzQUYsIFUrMUYzQzIsIFUrMUYzQzQtMUYzQzYsIFUrMUYzQ0EtMUYzQ0UsIFUrMUYzRDQtMUYzRTAsIFUrMUYzRUQsIFUrMUYzRjEtMUYzRjMsIFUrMUYzRjUtMUYzRjcsIFUrMUY0MDgsIFUrMUY0MTUsIFUrMUY0MUYsIFUrMUY0MjYsIFUrMUY0M0YsIFUrMUY0NDEtMUY0NDIsIFUrMUY0NDQsIFUrMUY0NDYtMUY0NDksIFUrMUY0NEMtMUY0NEUsIFUrMUY0NTMsIFUrMUY0NkEsIFUrMUY0N0QsIFUrMUY0QTMsIFUrMUY0QjAsIFUrMUY0QjMsIFUrMUY0QjksIFUrMUY0QkIsIFUrMUY0QkYsIFUrMUY0QzgtMUY0Q0IsIFUrMUY0RDYsIFUrMUY0REEsIFUrMUY0REYsIFUrMUY0RTMtMUY0RTYsIFUrMUY0RUEtMUY0RUQsIFUrMUY0RjcsIFUrMUY0RjktMUY0RkIsIFUrMUY0RkQtMUY0RkUsIFUrMUY1MDMsIFUrMUY1MDctMUY1MEIsIFUrMUY1MEQsIFUrMUY1MTItMUY1MTMsIFUrMUY1M0UtMUY1NEEsIFUrMUY1NEYtMUY1RkEsIFUrMUY2MTAsIFUrMUY2NTAtMUY2N0YsIFUrMUY2ODcsIFUrMUY2OEQsIFUrMUY2OTEsIFUrMUY2OTQsIFUrMUY2OTgsIFUrMUY2QUQsIFUrMUY2QjIsIFUrMUY2QjktMUY2QkEsIFUrMUY2QkMsIFUrMUY2QzYtMUY2Q0YsIFUrMUY2RDMtMUY2RDcsIFUrMUY2RTAtMUY2RUEsIFUrMUY2RjAtMUY2RjMsIFUrMUY2RjctMUY2RkMsIFUrMUY3MDAtMUY3RkYsIFUrMUY4MDAtMUY4MEIsIFUrMUY4MTAtMUY4NDcsIFUrMUY4NTAtMUY4NTksIFUrMUY4NjAtMUY4ODcsIFUrMUY4OTAtMUY4QUQsIFUrMUY4QjAtMUY4QkIsIFUrMUY4QzAtMUY4QzEsIFUrMUY5MDAtMUY5MEIsIFUrMUY5M0IsIFUrMUY5NDYsIFUrMUY5ODQsIFUrMUY5OTYsIFUrMUY5RTksIFUrMUZBMDAtMUZBNkYsIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODksIFUrMUZBOEYtMUZBQzYsIFUrMUZBQ0UtMUZBREMsIFUrMUZBREYtMUZBRTksIFUrMUZBRjAtMUZBRjgsIFUrMUZCMDAtMUZCRkY7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNPVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzS1VCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzeVVCQS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA5MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNHVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDOEEsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA5MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNpVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiBncmVlay1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogOTAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzQ1VCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KLyogZ3JlZWsgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogOTAwOwogIGZvbnQtc3RyZXRjaDogMTAwJTsKICBzcmM6IHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzLVVCR0VlLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzNzcsIFUrMDM3QS0wMzdGLCBVKzAzODQtMDM4QSwgVSswMzhDLCBVKzAzOEUtMDNBMSwgVSswM0EzLTAzRkY7Cn0KLyogbWF0aCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA5MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYXdDVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDItMDMwMywgVSswMzA1LCBVKzAzMDctMDMwOCwgVSswMzEwLCBVKzAzMTIsIFUrMDMxNSwgVSswMzFBLCBVKzAzMjYtMDMyNywgVSswMzJDLCBVKzAzMkYtMDMzMCwgVSswMzMyLTAzMzMsIFUrMDMzOCwgVSswMzNBLCBVKzAzNDYsIFUrMDM0RCwgVSswMzkxLTAzQTEsIFUrMDNBMy0wM0E5LCBVKzAzQjEtMDNDOSwgVSswM0QxLCBVKzAzRDUtMDNENiwgVSswM0YwLTAzRjEsIFUrMDNGNC0wM0Y1LCBVKzIwMTYtMjAxNywgVSsyMDM0LTIwMzgsIFUrMjAzQywgVSsyMDQwLCBVKzIwNDMsIFUrMjA0NywgVSsyMDUwLCBVKzIwNTcsIFUrMjA1RiwgVSsyMDcwLTIwNzEsIFUrMjA3NC0yMDhFLCBVKzIwOTAtMjA5QywgVSsyMEQwLTIwREMsIFUrMjBFMSwgVSsyMEU1LTIwRUYsIFUrMjEwMC0yMTEyLCBVKzIxMTQtMjExNSwgVSsyMTE3LTIxMjEsIFUrMjEyMy0yMTRGLCBVKzIxOTAsIFUrMjE5MiwgVSsyMTk0LTIxQUUsIFUrMjFCMC0yMUU1LCBVKzIxRjEtMjFGMiwgVSsyMUY0LTIyMTEsIFUrMjIxMy0yMjE0LCBVKzIyMTYtMjJGRiwgVSsyMzA4LTIzMEIsIFUrMjMxMCwgVSsyMzE5LCBVKzIzMUMtMjMyMSwgVSsyMzM2LTIzN0EsIFUrMjM3QywgVSsyMzk1LCBVKzIzOUItMjNCNywgVSsyM0QwLCBVKzIzREMtMjNFMSwgVSsyNDc0LTI0NzUsIFUrMjVBRiwgVSsyNUIzLCBVKzI1QjcsIFUrMjVCRCwgVSsyNUMxLCBVKzI1Q0EsIFUrMjVDQywgVSsyNUZCLCBVKzI2NkQtMjY2RiwgVSsyN0MwLTI3RkYsIFUrMjkwMC0yQUZGLCBVKzJCMEUtMkIxMSwgVSsyQjMwLTJCNEMsIFUrMkJGRSwgVSszMDMwLCBVK0ZGNUIsIFUrRkY1RCwgVSsxRDQwMC0xRDdGRiwgVSsxRUUwMC0xRUVGRjsKfQovKiBzeW1ib2xzICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDkwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1heEtVQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMS0wMDBDLCBVKzAwMEUtMDAxRiwgVSswMDdGLTAwOUYsIFUrMjBERC0yMEUwLCBVKzIwRTItMjBFNCwgVSsyMTUwLTIxOEYsIFUrMjE5MCwgVSsyMTkyLCBVKzIxOTQtMjE5OSwgVSsyMUFGLCBVKzIxRTYtMjFGMCwgVSsyMUYzLCBVKzIyMTgtMjIxOSwgVSsyMjk5LCBVKzIyQzQtMjJDNiwgVSsyMzAwLTI0M0YsIFUrMjQ0MC0yNDRBLCBVKzI0NjAtMjRGRiwgVSsyNUEwLTI3QkYsIFUrMjgwMC0yOEZGLCBVKzI5MjEtMjkyMiwgVSsyOTgxLCBVKzI5QkYsIFUrMjlFQiwgVSsyQjAwLTJCRkYsIFUrNERDMC00REZGLCBVK0ZGRjktRkZGQiwgVSsxMDE0MC0xMDE4RSwgVSsxMDE5MC0xMDE5QywgVSsxMDFBMCwgVSsxMDFEMC0xMDFGRCwgVSsxMDJFMC0xMDJGQiwgVSsxMEU2MC0xMEU3RSwgVSsxRDJDMC0xRDJEMywgVSsxRDJFMC0xRDM3RiwgVSsxRjAwMC0xRjBGRiwgVSsxRjEwMC0xRjFBRCwgVSsxRjFFNi0xRjFGRiwgVSsxRjMwRC0xRjMwRiwgVSsxRjMxNSwgVSsxRjMxQywgVSsxRjMxRSwgVSsxRjMyMC0xRjMyQywgVSsxRjMzNiwgVSsxRjM3OCwgVSsxRjM3RCwgVSsxRjM4MiwgVSsxRjM5My0xRjM5RiwgVSsxRjNBNy0xRjNBOCwgVSsxRjNBQy0xRjNBRiwgVSsxRjNDMiwgVSsxRjNDNC0xRjNDNiwgVSsxRjNDQS0xRjNDRSwgVSsxRjNENC0xRjNFMCwgVSsxRjNFRCwgVSsxRjNGMS0xRjNGMywgVSsxRjNGNS0xRjNGNywgVSsxRjQwOCwgVSsxRjQxNSwgVSsxRjQxRiwgVSsxRjQyNiwgVSsxRjQzRiwgVSsxRjQ0MS0xRjQ0MiwgVSsxRjQ0NCwgVSsxRjQ0Ni0xRjQ0OSwgVSsxRjQ0Qy0xRjQ0RSwgVSsxRjQ1MywgVSsxRjQ2QSwgVSsxRjQ3RCwgVSsxRjRBMywgVSsxRjRCMCwgVSsxRjRCMywgVSsxRjRCOSwgVSsxRjRCQiwgVSsxRjRCRiwgVSsxRjRDOC0xRjRDQiwgVSsxRjRENiwgVSsxRjREQSwgVSsxRjRERiwgVSsxRjRFMy0xRjRFNiwgVSsxRjRFQS0xRjRFRCwgVSsxRjRGNywgVSsxRjRGOS0xRjRGQiwgVSsxRjRGRC0xRjRGRSwgVSsxRjUwMywgVSsxRjUwNy0xRjUwQiwgVSsxRjUwRCwgVSsxRjUxMi0xRjUxMywgVSsxRjUzRS0xRjU0QSwgVSsxRjU0Ri0xRjVGQSwgVSsxRjYxMCwgVSsxRjY1MC0xRjY3RiwgVSsxRjY4NywgVSsxRjY4RCwgVSsxRjY5MSwgVSsxRjY5NCwgVSsxRjY5OCwgVSsxRjZBRCwgVSsxRjZCMiwgVSsxRjZCOS0xRjZCQSwgVSsxRjZCQywgVSsxRjZDNi0xRjZDRiwgVSsxRjZEMy0xRjZENywgVSsxRjZFMC0xRjZFQSwgVSsxRjZGMC0xRjZGMywgVSsxRjZGNy0xRjZGQywgVSsxRjcwMC0xRjdGRiwgVSsxRjgwMC0xRjgwQiwgVSsxRjgxMC0xRjg0NywgVSsxRjg1MC0xRjg1OSwgVSsxRjg2MC0xRjg4NywgVSsxRjg5MC0xRjhBRCwgVSsxRjhCMC0xRjhCQiwgVSsxRjhDMC0xRjhDMSwgVSsxRjkwMC0xRjkwQiwgVSsxRjkzQiwgVSsxRjk0NiwgVSsxRjk4NCwgVSsxRjk5NiwgVSsxRjlFOSwgVSsxRkEwMC0xRkE2RiwgVSsxRkE3MC0xRkE3QywgVSsxRkE4MC0xRkE4OSwgVSsxRkE4Ri0xRkFDNiwgVSsxRkFDRS0xRkFEQywgVSsxRkFERi0xRkFFOSwgVSsxRkFGMC0xRkFGOCwgVSsxRkIwMC0xRkJGRjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDkwMDsKICBmb250LXN0cmV0Y2g6IDEwMCU7CiAgc3JjOiB1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM09VQkdFZS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA5MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNLVUJHRWUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA5MDA7CiAgZm9udC1zdHJldGNoOiAxMDAlOwogIHNyYzogdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTN5VUJBLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KCjwvc3R5bGU+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3JlY2FwdGNoYS9yZWxlYXNlcy9BN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYvc3R5bGVzX19sdHIuY3NzIj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdi9yZWNhcHRjaGFfX2VuLmpzIiBub25jZT0iTzAzQ092OWY2R2pUNUxnVjBEa0RYQSI+CiAgICAgIAogICAgPC9zY3JpcHQ+PC9oZWFkPgo8Ym9keT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbm9uY2U9Ik8wM0NPdjlmNkdqVDVMZ1YwRGtEWEEiPgogICAgICByZWNhcHRjaGEuYW5jaG9yLkVycm9yTWFpbi5pbml0KCJbXHgyMmFpbnB1dFx4MjIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFsxLDEsMV0sXHgyMkludmFsaWQgZG9tYWluIGZvciBzaXRlIGtleVx4MjIsNixudWxsLG51bGwsbnVsbCxbXHgyMmh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vaW50bC9lbi9wb2xpY2llcy9wcml2YWN5L1x4MjIsXHgyMmh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vaW50bC9lbi9wb2xpY2llcy90ZXJtcy9ceDIyXV0iKTsKICAgIDwvc2NyaXB0PjwvYm9keT48L2h0bWw+"}},"time_used":25,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/e7r5DKx9.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.504Z","timestamp":1785139669504,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/e7r5DKx9.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"d66-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1584\r\nKeep-Alive: timeout=5, max=97\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":3430,"size_decoded":1934,"mime_type":"application/javascript","magic":"Java source, Unicode text, UTF-8 text, with very long lines (3428)","md5":"5b55e90d55f4657cee2c3ebb42b45852","sha1":"4c3469f0b28318437d8df4202192fcf36bbfffe7","sha256":"02d7dd12a2a60eac1909bf53fb7710c49efb684661c332b92e7d3a05c00c8671","sha512":"a3e70a865c1f43f1932ad922325f72f3ea60b817555a6924102f55060b79df1a7bbccbc142bd7dedc1a3c8fbf3099b110268651e1089da4e38f27fd20e178762","ssdeep":"","tlshash":"056109acf1f8d2b157ff7eeca166ca13076a6796542890d0303b1d181795ec0a2cbd2b","first_seen":"2025-10-23T03:46:52.598311Z","last_seen":"2026-07-27T11:49:48.995332Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2MgYXMgTCxiIGFzIE0sZCBhcyB3LFYgYXMgRSxmIGFzIFN9ZnJvbSIuL0MxMGRiWDNrLmpzIjtpbXBvcnR7JCBhcyBPLGEzIGFzIFUsYTAgYXMgSyxhMSBhcyBCLGFiIGFzIE4sYW4gYXMgaixzIGFzIFYsciBhcyBGLHggYXMgSCxSIGFzIFcsYWQgYXMgJCxiVSBhcyB6LGsgYXMgWCxiUyBhcyBxLGFnIGFzIEcsYlYgYXMgayxqIGFzIEosYXUgYXMgQSxhMiBhcyBQLGE1IGFzIFEsZiBhcyBoLGJXIGFzIFksYlggYXMgeX1mcm9tIi4vU20ybUNmREUuanMiO2ltcG9ydHtWIGFzIFp9ZnJvbSIuL0Q4YXl1N3JQLmpzIjtpbXBvcnR7ViBhcyBffWZyb20iLi9DTXVVVGxTMi5qcyI7Y29uc3QgZWU9Tyh7aWQ6U3RyaW5nLHN1Ym1lbnU6Qm9vbGVhbiwuLi5VKEwoe2Nsb3NlRGVsYXk6MjUwLGNsb3NlT25Db250ZW50Q2xpY2s6ITAsbG9jYXRpb25TdHJhdGVneToiY29ubmVjdGVkIixsb2NhdGlvbjp2b2lkIDAsb3BlbkRlbGF5OjMwMCxzY3JpbTohMSxzY3JvbGxTdHJhdGVneToicmVwb3NpdGlvbiIsdHJhbnNpdGlvbjp7Y29tcG9uZW50Olp9fSksWyJhYnNvbHV0ZSJdKX0sIlZNZW51Iiksc2U9SygpKHtuYW1lOiJWTWVudSIscHJvcHM6ZWUoKSxlbWl0czp7InVwZGF0ZTptb2RlbFZhbHVlIjphPT4hMH0sc2V0dXAoYSxwKXtsZXR7c2xvdHM6Y309cDtjb25zdCBzPUIoYSwibW9kZWxWYWx1ZSIpLHtzY29wZUlkOnh9PU0oKSx7aXNSdGw6Zn09TigpLHY9aigpLG09VigoKT0+YS5pZHx8YHYtbWVudS0ke3Z9YCksbz1GKCksbj1IKHcsbnVsbCksZD1XKG5ldyBTZXQpOyQodyx7cmVnaXN0ZXIoKXtkLnZhbHVlLmFkZCh2KX0sdW5yZWdpc3Rlcigpe2QudmFsdWUuZGVsZXRlKHYpfSxjbG9zZVBhcmVudHMoZSl7c2V0VGltZW91dCgoKT0+e3ZhciB0OyFkLnZhbHVlLnNpemUmJiFhLnBlcnNpc3RlbnQmJihlPT1udWxsfHwodD1vLnZhbHVlKSE9bnVsbCYmdC5jb250ZW50RWwmJiF6KGUsby52YWx1ZS5jb250ZW50RWwpKSYmKHMudmFsdWU9ITEsbj09bnVsbHx8bi5jbG9zZVBhcmVudHMoKSl9LDQwKX19KSxYKCgpPT57bj09bnVsbHx8bi51bnJlZ2lzdGVyKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsZyl9KSxxKCgpPT5zLnZhbHVlPSExKTthc3luYyBmdW5jdGlvbiBnKGUpe3ZhciByLHUsaTtjb25zdCB0PWUucmVsYXRlZFRhcmdldCxsPWUudGFyZ2V0O2F3YWl0IEcoKSxzLnZhbHVlJiZ0IT09bCYmKChyPW8udmFsdWUpIT1udWxsJiZyLmNvbnRlbnRFbCkmJigodT1vLnZhbHVlKSE9bnVsbCYmdS5nbG9iYWxUb3ApJiYhW2RvY3VtZW50LG8udmFsdWUuY29udGVudEVsXS5pbmNsdWRlcyhsKSYmIW8udmFsdWUuY29udGVudEVsLmNvbnRhaW5zKGwpJiYoKGk9ayhvLnZhbHVlLmNvbnRlbnRFbClbMF0pPT1udWxsfHxpLmZvY3VzKCkpfUoocyxlPT57ZT8obj09bnVsbHx8bi5yZWdpc3RlcigpLEEmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGcse29uY2U6ITB9KSk6KG49PW51bGx8fG4udW5yZWdpc3RlcigpLEEmJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGcpKX0se2ltbWVkaWF0ZTohMH0pO2Z1bmN0aW9uIEMoZSl7bj09bnVsbHx8bi5jbG9zZVBhcmVudHMoZSl9ZnVuY3Rpb24gRChlKXt2YXIgdCxsLHIsdSxpO2lmKCFhLmRpc2FibGVkKWlmKGUua2V5PT09IlRhYiJ8fGUua2V5PT09IkVudGVyIiYmIWEuY2xvc2VPbkNvbnRlbnRDbGljayl7aWYoZS5rZXk9PT0iRW50ZXIiJiYoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50fHxlLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQmJmUudGFyZ2V0LmNsb3Nlc3QoImZvcm0iKSkpcmV0dXJuO2Uua2V5PT09IkVudGVyIiYmZS5wcmV2ZW50RGVmYXVsdCgpLFkoaygodD1vLnZhbHVlKT09bnVsbD92b2lkIDA6dC5jb250ZW50RWwsITEpLGUuc2hpZnRLZXk/InByZXYiOiJuZXh0IixJPT5JLnRhYkluZGV4Pj0wKXx8KHMudmFsdWU9ITEsKHI9KGw9by52YWx1ZSk9PW51bGw/dm9pZCAwOmwuYWN0aXZhdG9yRWwpPT1udWxsfHxyLmZvY3VzKCkpfWVsc2UgYS5zdWJtZW51JiZlLmtleT09PShmLnZhbHVlPyJBcnJvd1JpZ2h0IjoiQXJyb3dMZWZ0IikmJihzLnZhbHVlPSExLChpPSh1PW8udmFsdWUpPT1udWxsP3ZvaWQgMDp1LmFjdGl2YXRvckVsKT09bnVsbHx8aS5mb2N1cygpKX1mdW5jdGlvbiBiKGUpe3ZhciBsO2lmKGEuZGlzYWJsZWQpcmV0dXJuO2NvbnN0IHQ9KGw9by52YWx1ZSk9PW51bGw/dm9pZCAwOmwuY29udGVudEVsO3QmJnMudmFsdWU/ZS5rZXk9PT0iQXJyb3dEb3duIj8oZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkseSh0LCJuZXh0IikpOmUua2V5PT09IkFycm93VXAiPyhlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx5KHQsInByZXYiKSk6YS5zdWJtZW51JiYoZS5rZXk9PT0oZi52YWx1ZT8iQXJyb3dSaWdodCI6IkFycm93TGVmdCIpP3MudmFsdWU9ITE6ZS5rZXk9PT0oZi52YWx1ZT8iQXJyb3dMZWZ0IjoiQXJyb3dSaWdodCIpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHkodCwiZmlyc3QiKSkpOihhLnN1Ym1lbnU/ZS5rZXk9PT0oZi52YWx1ZT8iQXJyb3dMZWZ0IjoiQXJyb3dSaWdodCIpOlsiQXJyb3dEb3duIiwiQXJyb3dVcCJdLmluY2x1ZGVzKGUua2V5KSkmJihzLnZhbHVlPSEwLGUucHJldmVudERlZmF1bHQoKSxzZXRUaW1lb3V0KCgpPT5zZXRUaW1lb3V0KCgpPT5iKGUpKSkpfWNvbnN0IFI9VigoKT0+UCh7ImFyaWEtaGFzcG9wdXAiOiJtZW51IiwiYXJpYS1leHBhbmRlZCI6U3RyaW5nKHMudmFsdWUpLCJhcmlhLWNvbnRyb2xzIjptLnZhbHVlLG9uS2V5ZG93bjpifSxhLmFjdGl2YXRvclByb3BzKSk7cmV0dXJuIFEoKCk9Pntjb25zdCBlPUUuZmlsdGVyUHJvcHMoYSk7cmV0dXJuIGgoRSxQKHtyZWY6byxpZDptLnZhbHVlLGNsYXNzOlsidi1tZW51IixhLmNsYXNzXSxzdHlsZTphLnN0eWxlfSxlLHttb2RlbFZhbHVlOnMudmFsdWUsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOnQ9PnMudmFsdWU9dCxhYnNvbHV0ZTohMCxhY3RpdmF0b3JQcm9wczpSLnZhbHVlLGxvY2F0aW9uOmEubG9jYXRpb24/PyhhLnN1Ym1lbnU/ImVuZCI6ImJvdHRvbSIpLCJvbkNsaWNrOm91dHNpZGUiOkMsb25LZXlkb3duOkR9LHgpLHthY3RpdmF0b3I6Yy5hY3RpdmF0b3IsZGVmYXVsdDpmdW5jdGlvbigpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGw9bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKWxbcl09YXJndW1lbnRzW3JdO3JldHVybiBoKF8se3Jvb3Q6IlZNZW51In0se2RlZmF1bHQ6KCk9Pnt2YXIgdTtyZXR1cm5bKHU9Yy5kZWZhdWx0KT09bnVsbD92b2lkIDA6dS5jYWxsKGMsLi4ubCldfX0pfX0pfSksUyh7aWQ6bSzOqG9wZW5DaGlsZHJlbjpkfSxvKX19KTtleHBvcnR7c2UgYXMgVn07Cg=="}},"time_used":72,"timings":{"blocked":46,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/api/v1/calculation?side=send\u0026send_currency=1\u0026includes=direction,direction.receiveCurrency","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.627Z","timestamp":1785139670627,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /api/v1/calculation?side=send\u0026send_currency=1\u0026includes=direction,direction.receiveCurrency HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://nconnect.org/En\r\nclient-id: $2y$12$ZO0grh5OxBtbvRwhZ44gAuszo//Jdrb48emsErh8VW76k9jVpvCGK\r\ncontent-type: application/json\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nKeep-Alive: timeout=5, max=81\r\nConnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\nContent-Type: application/json\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":265699,"size_decoded":265902,"mime_type":"application/json","magic":"JSON text data","md5":"b7c0155d21c127fc45a1e45d3e388926","sha1":"ce172de063ddafd4fe3c4ec016c33f643f3775b4","sha256":"5402d3aef482d59c58a2ed4a05508e03f439278e3bd5739adfde4a3969068a5c","sha512":"6fd7fd0005c4fcc9129686acccfdda28a91ff1cdc1948d718e50a79cbe18254ce022e81329ac3275caee1717c62809220656c830caeaefa79d1462a585f1260b","ssdeep":"6144:BHlhkIHlhkjHlhkqHlhklHlhkEHlhkgHlhkHHlhkEHlhkUHlhkcHlhkJHlhkrHlJ:BHlhkIHlhkjHlhkqHlhklHlhkEHlhkgY","tlshash":"624482e2d5f3175c289839e2d3b2bced38d86d54e258db7bcc3e2697e41062066d071a","first_seen":"2026-07-27T05:24:57.810267Z","last_seen":"2026-07-27T11:49:48.900892Z","times_seen":5,"resource_available":false,"data":"eyJkYXRhIjp7ImN1cnJlbmN5X2lkIjoxLCJ0aXRsZSI6IkJUQyAiLCJzbHVnIjoiQlRDIiwiY3VycmVuY3lfY29kZSI6IkJUQyIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvYnRjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjpudWxsLCJkaXJlY3Rpb24iOlt7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjIsInRpdGxlIjoiRVRIICIsInNsdWciOiJFVEgiLCJjdXJyZW5jeV9jb2RlIjoiRVRIIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9ldGgucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOm51bGx9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjMsInRpdGxlIjoiVFJYICIsInNsdWciOiJUUlgiLCJjdXJyZW5jeV9jb2RlIjoiVFJYIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC90cngucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOm51bGx9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMCIsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMCwicmVzZXJ2ZSI6IjI2NDgzMC42OTQ3In19LCJkZXNjcmlwdGlvbnMiOnsiZmluYWxfZGVzY3JpcHRpb24iOiJcIlx1MDQyM1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzY1x1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcclxuXHUwNDIxXHUwNDNmXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDMxXHUwNDNlIFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzUgXHUwNDNhIEJyaWRnZS4gXHUwNDFjXHUwNDRiIFx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzNVx1MDQzYyAyNFwvNywgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzMlx1MDQ0Ylx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NDdcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4LlxyXG5cclxuXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmXHUwNDM5XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZiBcdTA0M2EgXHUwNDNkXHUwNDMwXHUwNDNjLCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDQzIFx1MDQzMlx1MDQzMFx1MDQ0MSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2RcdTA0MzhcdTA0M2FcdTA0M2RcdTA0NDNcdTA0NDIgXHUwNDMyXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDRiIFx1MDQzZlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDQzLiBcdTA0MTJcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLCBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAuXHJcblx1MDQyMSBcdTA0NDNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzVcdTA0M2MsXHJcblx1MDQxYVx1MDQzZVx1MDQzY1x1MDQzMFx1MDQzZFx1MDQzNFx1MDQzMCBCcmlkZ2VcIiIsImF1dG9fc2VuZF9kZXNjcmlwdGlvbiI6Ii0gXHUwNDE4XHUwNDM3LVx1MDQzN1x1MDQzMCBcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzZVx1MDQzMiBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNiXHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYVx1MDQzOC4gXHUwNDE1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCwgXHUwNDNjXHUwNDRiLCBcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRlLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwLCBcdTA0NDJcdTA0MzBcdTA0M2EgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZFx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0NDBcdTA0M2VcdTA0M2JcdTA0MzhcdTA0NDBcdTA0NDNcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzMiBcdTA0MzFcdTA0M2JcdTA0M2VcdTA0M2FcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M2RcdTA0MzUuXHRcdFxyXG5cIi0gXHUwNDIxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDM1XHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDQzXHUwNDNjIFx1MDQzNFx1MDQzMlx1MDQzMCBcdTA0MzhcdTA0MzcgXHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDM4XHUwNDQ1IFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzMjpcclxuMS4gXHUwNDI1XHUwNDRkXHUwNDQ4IFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4yLiBcdTA0MjFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjMuIFx1MDQxZFx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbjQuIFx1MDQxMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbi4uLi4uLi4uLi4uLi4uLi5cclxuXHUwNDFmXHUwNDIwXHUwNDE4XHUwNDFjXHUwNDE1XHUwNDI3XHUwNDEwXHUwNDFkXHUwNDE4XHUwNDE1OiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyXHUwNDRiIFx1MDQzOFx1MDQzNyBCbG9ja2NoYWluLlwiXHRcdFxyXG4tIFx1MDQxMiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0M2NcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNlXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOCBcdTA0MzggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQ0YiBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0NGVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4LiBcdTA0MWNcdTA0NGIgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDMwXHUwNDQ4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYSwgXHUwNDM3XHUwNDMwIFx1MDQzMlx1MDQ0Ylx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYyBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4LiBcdTA0MWVcdTA0M2RcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDMwIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQzY1wiIFx1MDQzMiBcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M2JcdTA0NGZcdTA0NDUgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuXHRcdFxyXG4tIFx1MDQyMVx1MDQzZVx1MDQzM1x1MDQzYlx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzBcdTA0M2MgUGF5UGFsLCBcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzVcdTA0MzZcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZFx1MDQzMCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQyMFx1MDQzZVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCwgXHUwNDExXHUwNDM1XHUwNDNiXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQxXHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDM4XHUwNDQ1IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZC4gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDRiIFwiXHUwNDIyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzhcIi4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4LCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0M2JcdTA0MzhcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0LiBcdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0NDFcdTA0MzUgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQ4XHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDM4IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDNkXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNhXHUwNDNlXHUwNDQwXHUwNDM1XHUwNDM1LiBcdTA0MWVcdTA0MzRcdTA0M2RcdTA0MzBcdTA0M2FcdTA0M2UgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0NDFcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NGZcdTA0NDUgXHUwNDRkXHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGZcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDNlIDQ4IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMi5cdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2NcIiwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzguIFBheVBhbCBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDNlXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQ0ZSBcdTA0NDEgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDRiLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDNkXHUwNDMwIFx1MDQ0Nlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzOSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIsIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQ0MCBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQyIFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDNlXHUwNDNkXHUwNDMwIFx1MDQzOCBcdTA0M2VcdTA0MzFcdTA0NGJcdTA0NDdcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0MiA0JSBcdTA0MzRcdTA0M2UgNiUuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzMlx1MDQ0Ylx1MDQzM1x1MDQzZVx1MDQzNFx1MDQ0MyBcdTA0M2VcdTA0NDIgXHUwNDRkXHUwNDQyXHUwNDNlXHUwNDM5IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOC5cdFx0XHJcbi0gQnJpZGdlIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNcdTA0MzNcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzMVx1MDQzZVx1MDQzYlx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDMwLiBcdTA0MThcdTA0M2RcdTA0M2VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDNjXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDNjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0MzIgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzhcdTA0NDUgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRmXHUwNDQ1LiBcdTA0MWVcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NGYgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzFcdTA0NDNcdTA0MzRcdTA0MzVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcbi0gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0NGIgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NGIgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbC4ifSwicmVjZWl2ZV9jdXJyZW5jeSI6eyJjdXJyZW5jeV9pZCI6NCwidGl0bGUiOiJYUlAgIiwic2x1ZyI6IlhSUCIsImN1cnJlbmN5X2NvZGUiOiJYUlAiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3hycC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MCwibmV0d29yayI6bnVsbH0sImNhbGN1bGF0ZSI6bnVsbH0seyJyYW5nZV9saW1pdCI6eyJzZW5kIjp7Im1pbiI6MCwibWF4IjoxMDAwMDAwMDAwMDAwMDAwMDAwfSwicmVjZWl2ZSI6eyJtaW4iOiIwLjAwMDAwMDAwIiwibWF4IjoxMDAwMDAwMDAwMDAwMDAwMDAwLCJyZXNlcnZlIjoiMjY0ODMwLjY5NDcifX0sImRlc2NyaXB0aW9ucyI6eyJmaW5hbF9kZXNjcmlwdGlvbiI6IlwiXHUwNDIzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDMwXHUwNDM1XHUwNDNjXHUwNDRiXHUwNDM5IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1xyXG5cdTA0MjFcdTA0M2ZcdTA0MzBcdTA0NDFcdTA0MzhcdTA0MzFcdTA0M2UgXHUwNDM3XHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzNSBcdTA0M2EgQnJpZGdlLiBcdTA0MWNcdTA0NGIgXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDM1XHUwNDNjIDI0XC83LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDMyXHUwNDRiXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0N1x1MDQzMFx1MDQzOVx1MDQ0OFx1MDQzOFx1MDQzNSBcdTA0NDFcdTA0NDBcdTA0M2VcdTA0M2FcdTA0MzguXHJcblxyXG5cdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDJcdTA0MzVcdTA0NDFcdTA0M2RcdTA0NGZcdTA0MzlcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMgXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmIFx1MDQzYSBcdTA0M2RcdTA0MzBcdTA0M2MsIFx1MDQzNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0NDMgXHUwNDMyXHUwNDMwXHUwNDQxIFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzZFx1MDQzOFx1MDQzYVx1MDQzZFx1MDQ0M1x1MDQ0MiBcdTA0MzJcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDFcdTA0NGIgXHUwNDNmXHUwNDNlIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQ0MyBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0NDMuIFx1MDQxMlx1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDJcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NGUsIFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDM1IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMC5cclxuXHUwNDIxIFx1MDQ0M1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNVx1MDQzYyxcclxuXHUwNDFhXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDNkXHUwNDM0XHUwNDMwIEJyaWRnZVwiIiwiYXV0b19zZW5kX2Rlc2NyaXB0aW9uIjoiLSBcdTA0MThcdTA0MzctXHUwNDM3XHUwNDMwIFx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzOSBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2JcdTA0NGVcdTA0NDJcdTA0M2RcdTA0NGJcdTA0NDUgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDNlXHUwNDMyIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2JcdTA0MzUgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNhXHUwNDM4LiBcdTA0MTVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQzNSBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwLCBcdTA0M2NcdTA0NGIsIFx1MDQzYSBcdTA0NDFcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGUsIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzOCBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAsIFx1MDQ0Mlx1MDQzMFx1MDQzYSBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNkXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQzOFx1MDQ0MFx1MDQ0M1x1MDQzNVx1MDQzYyBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDMyIFx1MDQzMVx1MDQzYlx1MDQzZVx1MDQzYVx1MDQ0N1x1MDQzNVx1MDQzOVx1MDQzZFx1MDQzNS5cdFx0XHJcblwiLSBcdTA0MjFcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2RcdTA0NDhcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0MzVcdTA0M2QgXHUwNDQxXHUwNDNlXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0NDNcdTA0M2MgXHUwNDM0XHUwNDMyXHUwNDMwIFx1MDQzOFx1MDQzNyBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0MzhcdTA0NDUgXHUwNDRkXHUwNDNiXHUwNDM1XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDNlXHUwNDMyOlxyXG4xLiBcdTA0MjVcdTA0NGRcdTA0NDggXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjIuIFx1MDQyMVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMy4gXHUwNDFkXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzBcclxuNC4gXHUwNDEyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzBcclxuLi4uLi4uLi4uLi4uLi4uLlxyXG5cdTA0MWZcdTA0MjBcdTA0MThcdTA0MWNcdTA0MTVcdTA0MjdcdTA0MTBcdTA0MWRcdTA0MThcdTA0MTU6IFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzNSBcdTA0NDFcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2RcdTA0NDhcdTA0M2VcdTA0NDJcdTA0NGIgXHUwNDM4XHUwNDM3IEJsb2NrY2hhaW4uXCJcdFx0XHJcbi0gXHUwNDEyIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzY1x1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0M2VcdTA0NDIgXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4IFx1MDQzOCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0M2VcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDRiIFx1MDQzMlx1MDQzN1x1MDQzOFx1MDQzY1x1MDQzMFx1MDQ0ZVx1MDQ0MiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzguIFx1MDQxY1x1MDQ0YiBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzBcdTA0NDggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDM1XHUwNDNhLCBcdTA0MzdcdTA0MzAgXHUwNDMyXHUwNDRiXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNlXHUwNDNjIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzguIFx1MDQxZVx1MDQzZFx1MDQzMCBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0M2RcdTA0MzAgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDNjXCIgXHUwNDMyIFx1MDQzNFx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzYlx1MDQ0Zlx1MDQ0NSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG5cdFx0XHJcbi0gXHUwNDIxXHUwNDNlXHUwNDMzXHUwNDNiXHUwNDMwXHUwNDQxXHUwNDNkXHUwNDNlIFx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzMFx1MDQzYyBQYXlQYWwsIFx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzNlx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNkXHUwNDMwIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzMCBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDIwXHUwNDNlXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4LCBcdTA0MTFcdTA0MzVcdTA0M2JcdTA0MzBcdTA0NDBcdTA0NDNcdTA0NDFcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0MzRcdTA0NDBcdTA0NDNcdTA0MzNcdTA0MzhcdTA0NDUgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkLiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQzMVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YywgXHUwNDQ3XHUwNDQyXHUwNDNlIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgXHUwNDQxXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNCBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NGIgXCJcdTA0MjJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIgXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQzM1x1MDQzOFwiLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzgsIFx1MDQzNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzYlx1MDQzOFx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQuIFx0XHRcclxuLSBcdTA0MWNcdTA0NGIgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQ0MVx1MDQzNSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2VcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzggXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0M2RcdTA0MzAgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZSBcdTA0NDFcdTA0M2FcdTA0M2VcdTA0NDBcdTA0MzVcdTA0MzUuIFx1MDQxZVx1MDQzNFx1MDQzZFx1MDQzMFx1MDQzYVx1MDQzZSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Zlx1MDQ0NSBcdTA0NGRcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQ0Zlx1MDQ0Mlx1MDQ0YyBcdTA0MzRcdTA0M2UgNDggXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNlXHUwNDMyLlx0XHRcclxuLSBcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0MzIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzY1wiLCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDQzIFx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQzM1x1MDQzOC4gUGF5UGFsIFx1MDQzMlx1MDQzN1x1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0M2VcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDRlIFx1MDQ0MSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NGIsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0M2RcdTA0MzAgXHUwNDQ2XHUwNDM1XHUwNDNiXHUwNDM1XHUwNDMyXHUwNDNlXHUwNDM5IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiwgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNjXHUwNDM1XHUwNDQwIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0NDIgXHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0M2VcdTA0M2RcdTA0MzAgXHUwNDM4IFx1MDQzZVx1MDQzMVx1MDQ0Ylx1MDQ0N1x1MDQzZFx1MDQzZSBcdTA0NDFcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyIDQlIFx1MDQzNFx1MDQzZSA2JS4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDMyXHUwNDRiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDQzIFx1MDQzZVx1MDQ0MiBcdTA0NGRcdTA0NDJcdTA0M2VcdTA0MzkgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzN1x1MDQzMCBcdTA0M2RcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4Llx0XHRcclxuLSBCcmlkZ2UgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzM1x1MDQzOCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgUGF5UGFsLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDMxXHUwNDNlXHUwNDNiXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDJcdTA0MzAuIFx1MDQxOFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzNFx1MDQzMCBcdTA0M2NcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0M2MgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzMiBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzOFx1MDQ0NSBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NGZcdTA0NDUuIFx1MDQxZVx1MDQzMVx1MDQ0OVx1MDQzMFx1MDQ0ZiBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmIFx1MDQzMVx1MDQ0M1x1MDQzNFx1MDQzNVx1MDQ0MiBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuLSBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQ0YiBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0YiBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgUGF5UGFsLiJ9LCJyZWNlaXZlX2N1cnJlbmN5Ijp7ImN1cnJlbmN5X2lkIjo1LCJ0aXRsZSI6IkxUQyAiLCJzbHVnIjoiTFRDIiwiY3VycmVuY3lfY29kZSI6IkxUQyIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvbHRjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjYsInRpdGxlIjoiVE9OICIsInNsdWciOiJUT04iLCJjdXJyZW5jeV9jb2RlIjoiVE9OIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC90b24ucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOm51bGx9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMDAwMDAwMCIsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMCwicmVzZXJ2ZSI6IjI2NDgzMC42OTQ3In19LCJkZXNjcmlwdGlvbnMiOnsiZmluYWxfZGVzY3JpcHRpb24iOiJcIlx1MDQyM1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzY1x1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcclxuXHUwNDIxXHUwNDNmXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDMxXHUwNDNlIFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzUgXHUwNDNhIEJyaWRnZS4gXHUwNDFjXHUwNDRiIFx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzNVx1MDQzYyAyNFwvNywgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzMlx1MDQ0Ylx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NDdcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4LlxyXG5cclxuXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmXHUwNDM5XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZiBcdTA0M2EgXHUwNDNkXHUwNDMwXHUwNDNjLCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDQzIFx1MDQzMlx1MDQzMFx1MDQ0MSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2RcdTA0MzhcdTA0M2FcdTA0M2RcdTA0NDNcdTA0NDIgXHUwNDMyXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDRiIFx1MDQzZlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDQzLiBcdTA0MTJcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLCBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAuXHJcblx1MDQyMSBcdTA0NDNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzVcdTA0M2MsXHJcblx1MDQxYVx1MDQzZVx1MDQzY1x1MDQzMFx1MDQzZFx1MDQzNFx1MDQzMCBCcmlkZ2VcIiIsImF1dG9fc2VuZF9kZXNjcmlwdGlvbiI6Ii0gXHUwNDE4XHUwNDM3LVx1MDQzN1x1MDQzMCBcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzZVx1MDQzMiBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNiXHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYVx1MDQzOC4gXHUwNDE1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCwgXHUwNDNjXHUwNDRiLCBcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRlLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwLCBcdTA0NDJcdTA0MzBcdTA0M2EgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZFx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0NDBcdTA0M2VcdTA0M2JcdTA0MzhcdTA0NDBcdTA0NDNcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzMiBcdTA0MzFcdTA0M2JcdTA0M2VcdTA0M2FcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M2RcdTA0MzUuXHRcdFxyXG5cIi0gXHUwNDIxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDM1XHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDQzXHUwNDNjIFx1MDQzNFx1MDQzMlx1MDQzMCBcdTA0MzhcdTA0MzcgXHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDM4XHUwNDQ1IFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzMjpcclxuMS4gXHUwNDI1XHUwNDRkXHUwNDQ4IFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4yLiBcdTA0MjFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjMuIFx1MDQxZFx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbjQuIFx1MDQxMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbi4uLi4uLi4uLi4uLi4uLi5cclxuXHUwNDFmXHUwNDIwXHUwNDE4XHUwNDFjXHUwNDE1XHUwNDI3XHUwNDEwXHUwNDFkXHUwNDE4XHUwNDE1OiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyXHUwNDRiIFx1MDQzOFx1MDQzNyBCbG9ja2NoYWluLlwiXHRcdFxyXG4tIFx1MDQxMiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0M2NcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNlXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOCBcdTA0MzggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQ0YiBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0NGVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4LiBcdTA0MWNcdTA0NGIgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDMwXHUwNDQ4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYSwgXHUwNDM3XHUwNDMwIFx1MDQzMlx1MDQ0Ylx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYyBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4LiBcdTA0MWVcdTA0M2RcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDMwIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQzY1wiIFx1MDQzMiBcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M2JcdTA0NGZcdTA0NDUgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuXHRcdFxyXG4tIFx1MDQyMVx1MDQzZVx1MDQzM1x1MDQzYlx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzBcdTA0M2MgUGF5UGFsLCBcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzVcdTA0MzZcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZFx1MDQzMCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQyMFx1MDQzZVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCwgXHUwNDExXHUwNDM1XHUwNDNiXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQxXHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDM4XHUwNDQ1IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZC4gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDRiIFwiXHUwNDIyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzhcIi4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4LCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0M2JcdTA0MzhcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0LiBcdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0NDFcdTA0MzUgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQ4XHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDM4IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDNkXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNhXHUwNDNlXHUwNDQwXHUwNDM1XHUwNDM1LiBcdTA0MWVcdTA0MzRcdTA0M2RcdTA0MzBcdTA0M2FcdTA0M2UgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0NDFcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NGZcdTA0NDUgXHUwNDRkXHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGZcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDNlIDQ4IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMi5cdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2NcIiwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzguIFBheVBhbCBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDNlXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQ0ZSBcdTA0NDEgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDRiLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDNkXHUwNDMwIFx1MDQ0Nlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzOSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIsIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQ0MCBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQyIFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDNlXHUwNDNkXHUwNDMwIFx1MDQzOCBcdTA0M2VcdTA0MzFcdTA0NGJcdTA0NDdcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0MiA0JSBcdTA0MzRcdTA0M2UgNiUuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzMlx1MDQ0Ylx1MDQzM1x1MDQzZVx1MDQzNFx1MDQ0MyBcdTA0M2VcdTA0NDIgXHUwNDRkXHUwNDQyXHUwNDNlXHUwNDM5IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOC5cdFx0XHJcbi0gQnJpZGdlIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNcdTA0MzNcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzMVx1MDQzZVx1MDQzYlx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDMwLiBcdTA0MThcdTA0M2RcdTA0M2VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDNjXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDNjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0MzIgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzhcdTA0NDUgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRmXHUwNDQ1LiBcdTA0MWVcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NGYgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzFcdTA0NDNcdTA0MzRcdTA0MzVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcbi0gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0NGIgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NGIgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbC4ifSwicmVjZWl2ZV9jdXJyZW5jeSI6eyJjdXJyZW5jeV9pZCI6NywidGl0bGUiOiJVU0RUIEVSQzIwIiwic2x1ZyI6IlVTRFQiLCJjdXJyZW5jeV9jb2RlIjoiVVNEVCIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvdXNkdC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MCwibmV0d29yayI6IkVSQzIwIn0sImNhbGN1bGF0ZSI6bnVsbH0seyJyYW5nZV9saW1pdCI6eyJzZW5kIjp7Im1pbiI6MCwibWF4IjoxMDAwMDAwMDAwMDAwMDAwMDAwfSwicmVjZWl2ZSI6eyJtaW4iOiIwLjAwMDAwMDAwIiwibWF4IjoxMDAwMDAwMDAwMDAwMDAwMDAwLCJyZXNlcnZlIjoiMjY0ODMwLjY5NDcifX0sImRlc2NyaXB0aW9ucyI6eyJmaW5hbF9kZXNjcmlwdGlvbiI6IlwiXHUwNDIzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDMwXHUwNDM1XHUwNDNjXHUwNDRiXHUwNDM5IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1xyXG5cdTA0MjFcdTA0M2ZcdTA0MzBcdTA0NDFcdTA0MzhcdTA0MzFcdTA0M2UgXHUwNDM3XHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzNSBcdTA0M2EgQnJpZGdlLiBcdTA0MWNcdTA0NGIgXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDM1XHUwNDNjIDI0XC83LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDMyXHUwNDRiXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0N1x1MDQzMFx1MDQzOVx1MDQ0OFx1MDQzOFx1MDQzNSBcdTA0NDFcdTA0NDBcdTA0M2VcdTA0M2FcdTA0MzguXHJcblxyXG5cdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDJcdTA0MzVcdTA0NDFcdTA0M2RcdTA0NGZcdTA0MzlcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMgXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmIFx1MDQzYSBcdTA0M2RcdTA0MzBcdTA0M2MsIFx1MDQzNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0NDMgXHUwNDMyXHUwNDMwXHUwNDQxIFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzZFx1MDQzOFx1MDQzYVx1MDQzZFx1MDQ0M1x1MDQ0MiBcdTA0MzJcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDFcdTA0NGIgXHUwNDNmXHUwNDNlIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQ0MyBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0NDMuIFx1MDQxMlx1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDJcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NGUsIFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDM1IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMC5cclxuXHUwNDIxIFx1MDQ0M1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNVx1MDQzYyxcclxuXHUwNDFhXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDNkXHUwNDM0XHUwNDMwIEJyaWRnZVwiIiwiYXV0b19zZW5kX2Rlc2NyaXB0aW9uIjoiLSBcdTA0MThcdTA0MzctXHUwNDM3XHUwNDMwIFx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzOSBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2JcdTA0NGVcdTA0NDJcdTA0M2RcdTA0NGJcdTA0NDUgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDNlXHUwNDMyIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2JcdTA0MzUgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNhXHUwNDM4LiBcdTA0MTVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQzNSBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwLCBcdTA0M2NcdTA0NGIsIFx1MDQzYSBcdTA0NDFcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGUsIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzOCBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAsIFx1MDQ0Mlx1MDQzMFx1MDQzYSBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNkXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQzOFx1MDQ0MFx1MDQ0M1x1MDQzNVx1MDQzYyBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDMyIFx1MDQzMVx1MDQzYlx1MDQzZVx1MDQzYVx1MDQ0N1x1MDQzNVx1MDQzOVx1MDQzZFx1MDQzNS5cdFx0XHJcblwiLSBcdTA0MjFcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2RcdTA0NDhcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0MzVcdTA0M2QgXHUwNDQxXHUwNDNlXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0NDNcdTA0M2MgXHUwNDM0XHUwNDMyXHUwNDMwIFx1MDQzOFx1MDQzNyBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0MzhcdTA0NDUgXHUwNDRkXHUwNDNiXHUwNDM1XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDNlXHUwNDMyOlxyXG4xLiBcdTA0MjVcdTA0NGRcdTA0NDggXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjIuIFx1MDQyMVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMy4gXHUwNDFkXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzBcclxuNC4gXHUwNDEyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzBcclxuLi4uLi4uLi4uLi4uLi4uLlxyXG5cdTA0MWZcdTA0MjBcdTA0MThcdTA0MWNcdTA0MTVcdTA0MjdcdTA0MTBcdTA0MWRcdTA0MThcdTA0MTU6IFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzNSBcdTA0NDFcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2RcdTA0NDhcdTA0M2VcdTA0NDJcdTA0NGIgXHUwNDM4XHUwNDM3IEJsb2NrY2hhaW4uXCJcdFx0XHJcbi0gXHUwNDEyIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzY1x1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0M2VcdTA0NDIgXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4IFx1MDQzOCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0M2VcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDRiIFx1MDQzMlx1MDQzN1x1MDQzOFx1MDQzY1x1MDQzMFx1MDQ0ZVx1MDQ0MiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzguIFx1MDQxY1x1MDQ0YiBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzBcdTA0NDggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDM1XHUwNDNhLCBcdTA0MzdcdTA0MzAgXHUwNDMyXHUwNDRiXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNlXHUwNDNjIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzguIFx1MDQxZVx1MDQzZFx1MDQzMCBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0M2RcdTA0MzAgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDNjXCIgXHUwNDMyIFx1MDQzNFx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzYlx1MDQ0Zlx1MDQ0NSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG5cdFx0XHJcbi0gXHUwNDIxXHUwNDNlXHUwNDMzXHUwNDNiXHUwNDMwXHUwNDQxXHUwNDNkXHUwNDNlIFx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzMFx1MDQzYyBQYXlQYWwsIFx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzNlx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNkXHUwNDMwIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzMCBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDIwXHUwNDNlXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4LCBcdTA0MTFcdTA0MzVcdTA0M2JcdTA0MzBcdTA0NDBcdTA0NDNcdTA0NDFcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0MzRcdTA0NDBcdTA0NDNcdTA0MzNcdTA0MzhcdTA0NDUgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkLiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQzMVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YywgXHUwNDQ3XHUwNDQyXHUwNDNlIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgXHUwNDQxXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNCBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NGIgXCJcdTA0MjJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIgXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQzM1x1MDQzOFwiLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzgsIFx1MDQzNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzYlx1MDQzOFx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQuIFx0XHRcclxuLSBcdTA0MWNcdTA0NGIgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQ0MVx1MDQzNSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2VcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzggXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0M2RcdTA0MzAgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZSBcdTA0NDFcdTA0M2FcdTA0M2VcdTA0NDBcdTA0MzVcdTA0MzUuIFx1MDQxZVx1MDQzNFx1MDQzZFx1MDQzMFx1MDQzYVx1MDQzZSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Zlx1MDQ0NSBcdTA0NGRcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQ0Zlx1MDQ0Mlx1MDQ0YyBcdTA0MzRcdTA0M2UgNDggXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNlXHUwNDMyLlx0XHRcclxuLSBcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0MzIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzY1wiLCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDQzIFx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQzM1x1MDQzOC4gUGF5UGFsIFx1MDQzMlx1MDQzN1x1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0M2VcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDRlIFx1MDQ0MSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NGIsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0M2RcdTA0MzAgXHUwNDQ2XHUwNDM1XHUwNDNiXHUwNDM1XHUwNDMyXHUwNDNlXHUwNDM5IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiwgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNjXHUwNDM1XHUwNDQwIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0NDIgXHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0M2VcdTA0M2RcdTA0MzAgXHUwNDM4IFx1MDQzZVx1MDQzMVx1MDQ0Ylx1MDQ0N1x1MDQzZFx1MDQzZSBcdTA0NDFcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyIDQlIFx1MDQzNFx1MDQzZSA2JS4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDMyXHUwNDRiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDQzIFx1MDQzZVx1MDQ0MiBcdTA0NGRcdTA0NDJcdTA0M2VcdTA0MzkgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzN1x1MDQzMCBcdTA0M2RcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4Llx0XHRcclxuLSBCcmlkZ2UgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzM1x1MDQzOCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgUGF5UGFsLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDMxXHUwNDNlXHUwNDNiXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDJcdTA0MzAuIFx1MDQxOFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzNFx1MDQzMCBcdTA0M2NcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0M2MgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzMiBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzOFx1MDQ0NSBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NGZcdTA0NDUuIFx1MDQxZVx1MDQzMVx1MDQ0OVx1MDQzMFx1MDQ0ZiBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmIFx1MDQzMVx1MDQ0M1x1MDQzNFx1MDQzNVx1MDQ0MiBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuLSBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQ0YiBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0YiBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgUGF5UGFsLiJ9LCJyZWNlaXZlX2N1cnJlbmN5Ijp7ImN1cnJlbmN5X2lkIjo4LCJ0aXRsZSI6IlVTRFQgVFJDMjAiLCJzbHVnIjoiVVNEVCIsImN1cnJlbmN5X2NvZGUiOiJVU0RUIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC91c2R0LnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjoiVFJDMjAifSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjksInRpdGxlIjoiVVNEVCBUT04iLCJzbHVnIjoiVVNEVCIsImN1cnJlbmN5X2NvZGUiOiJVU0RUIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC91c2R0LnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjoiVE9OIn0sImNhbGN1bGF0ZSI6bnVsbH0seyJyYW5nZV9saW1pdCI6eyJzZW5kIjp7Im1pbiI6MCwibWF4IjoxMDAwMDAwMDAwMDAwMDAwMDAwfSwicmVjZWl2ZSI6eyJtaW4iOiIwLjAwMDAwMDAwIiwibWF4IjoxMDAwMDAwMDAwMDAwMDAwMDAwLCJyZXNlcnZlIjoiMjY0ODMwLjY5NDcifX0sImRlc2NyaXB0aW9ucyI6eyJmaW5hbF9kZXNjcmlwdGlvbiI6IlwiXHUwNDIzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDMwXHUwNDM1XHUwNDNjXHUwNDRiXHUwNDM5IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1xyXG5cdTA0MjFcdTA0M2ZcdTA0MzBcdTA0NDFcdTA0MzhcdTA0MzFcdTA0M2UgXHUwNDM3XHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzNSBcdTA0M2EgQnJpZGdlLiBcdTA0MWNcdTA0NGIgXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDM1XHUwNDNjIDI0XC83LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDMyXHUwNDRiXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0N1x1MDQzMFx1MDQzOVx1MDQ0OFx1MDQzOFx1MDQzNSBcdTA0NDFcdTA0NDBcdTA0M2VcdTA0M2FcdTA0MzguXHJcblxyXG5cdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDJcdTA0MzVcdTA0NDFcdTA0M2RcdTA0NGZcdTA0MzlcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMgXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmIFx1MDQzYSBcdTA0M2RcdTA0MzBcdTA0M2MsIFx1MDQzNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0NDMgXHUwNDMyXHUwNDMwXHUwNDQxIFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzZFx1MDQzOFx1MDQzYVx1MDQzZFx1MDQ0M1x1MDQ0MiBcdTA0MzJcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDFcdTA0NGIgXHUwNDNmXHUwNDNlIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQ0MyBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0NDMuIFx1MDQxMlx1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDJcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NGUsIFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDM1IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMC5cclxuXHUwNDIxIFx1MDQ0M1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNVx1MDQzYyxcclxuXHUwNDFhXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDNkXHUwNDM0XHUwNDMwIEJyaWRnZVwiIiwiYXV0b19zZW5kX2Rlc2NyaXB0aW9uIjoiLSBcdTA0MThcdTA0MzctXHUwNDM3XHUwNDMwIFx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzOSBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2JcdTA0NGVcdTA0NDJcdTA0M2RcdTA0NGJcdTA0NDUgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDNlXHUwNDMyIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2JcdTA0MzUgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNhXHUwNDM4LiBcdTA0MTVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQzNSBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwLCBcdTA0M2NcdTA0NGIsIFx1MDQzYSBcdTA0NDFcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGUsIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzOCBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAsIFx1MDQ0Mlx1MDQzMFx1MDQzYSBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNkXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQzOFx1MDQ0MFx1MDQ0M1x1MDQzNVx1MDQzYyBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDMyIFx1MDQzMVx1MDQzYlx1MDQzZVx1MDQzYVx1MDQ0N1x1MDQzNVx1MDQzOVx1MDQzZFx1MDQzNS5cdFx0XHJcblwiLSBcdTA0MjFcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2RcdTA0NDhcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0MzVcdTA0M2QgXHUwNDQxXHUwNDNlXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0NDNcdTA0M2MgXHUwNDM0XHUwNDMyXHUwNDMwIFx1MDQzOFx1MDQzNyBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0MzhcdTA0NDUgXHUwNDRkXHUwNDNiXHUwNDM1XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDNlXHUwNDMyOlxyXG4xLiBcdTA0MjVcdTA0NGRcdTA0NDggXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjIuIFx1MDQyMVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMy4gXHUwNDFkXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzBcclxuNC4gXHUwNDEyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzBcclxuLi4uLi4uLi4uLi4uLi4uLlxyXG5cdTA0MWZcdTA0MjBcdTA0MThcdTA0MWNcdTA0MTVcdTA0MjdcdTA0MTBcdTA0MWRcdTA0MThcdTA0MTU6IFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzNSBcdTA0NDFcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2RcdTA0NDhcdTA0M2VcdTA0NDJcdTA0NGIgXHUwNDM4XHUwNDM3IEJsb2NrY2hhaW4uXCJcdFx0XHJcbi0gXHUwNDEyIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzY1x1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0M2VcdTA0NDIgXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4IFx1MDQzOCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0M2VcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDRiIFx1MDQzMlx1MDQzN1x1MDQzOFx1MDQzY1x1MDQzMFx1MDQ0ZVx1MDQ0MiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzguIFx1MDQxY1x1MDQ0YiBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzBcdTA0NDggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDM1XHUwNDNhLCBcdTA0MzdcdTA0MzAgXHUwNDMyXHUwNDRiXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNlXHUwNDNjIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzguIFx1MDQxZVx1MDQzZFx1MDQzMCBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0M2RcdTA0MzAgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDNjXCIgXHUwNDMyIFx1MDQzNFx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzYlx1MDQ0Zlx1MDQ0NSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG5cdFx0XHJcbi0gXHUwNDIxXHUwNDNlXHUwNDMzXHUwNDNiXHUwNDMwXHUwNDQxXHUwNDNkXHUwNDNlIFx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzMFx1MDQzYyBQYXlQYWwsIFx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzNlx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNkXHUwNDMwIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzMCBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDIwXHUwNDNlXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4LCBcdTA0MTFcdTA0MzVcdTA0M2JcdTA0MzBcdTA0NDBcdTA0NDNcdTA0NDFcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0MzRcdTA0NDBcdTA0NDNcdTA0MzNcdTA0MzhcdTA0NDUgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkLiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQzMVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YywgXHUwNDQ3XHUwNDQyXHUwNDNlIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgXHUwNDQxXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNCBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NGIgXCJcdTA0MjJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIgXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQzM1x1MDQzOFwiLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzgsIFx1MDQzNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzYlx1MDQzOFx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQuIFx0XHRcclxuLSBcdTA0MWNcdTA0NGIgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQ0MVx1MDQzNSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2VcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzggXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0M2RcdTA0MzAgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZSBcdTA0NDFcdTA0M2FcdTA0M2VcdTA0NDBcdTA0MzVcdTA0MzUuIFx1MDQxZVx1MDQzNFx1MDQzZFx1MDQzMFx1MDQzYVx1MDQzZSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQ0Zlx1MDQ0NSBcdTA0NGRcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQ0Zlx1MDQ0Mlx1MDQ0YyBcdTA0MzRcdTA0M2UgNDggXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNlXHUwNDMyLlx0XHRcclxuLSBcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0MzIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzY1wiLCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDQzIFx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQzYlx1MDQ0M1x1MDQzM1x1MDQzOC4gUGF5UGFsIFx1MDQzMlx1MDQzN1x1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0M2VcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDRlIFx1MDQ0MSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NGIsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0M2RcdTA0MzAgXHUwNDQ2XHUwNDM1XHUwNDNiXHUwNDM1XHUwNDMyXHUwNDNlXHUwNDM5IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiwgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNjXHUwNDM1XHUwNDQwIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0NDIgXHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0M2VcdTA0M2RcdTA0MzAgXHUwNDM4IFx1MDQzZVx1MDQzMVx1MDQ0Ylx1MDQ0N1x1MDQzZFx1MDQzZSBcdTA0NDFcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyIDQlIFx1MDQzNFx1MDQzZSA2JS4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDMyXHUwNDRiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDQzIFx1MDQzZVx1MDQ0MiBcdTA0NGRcdTA0NDJcdTA0M2VcdTA0MzkgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzN1x1MDQzMCBcdTA0M2RcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4Llx0XHRcclxuLSBCcmlkZ2UgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzM1x1MDQzOCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgUGF5UGFsLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDMxXHUwNDNlXHUwNDNiXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDJcdTA0MzAuIFx1MDQxOFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzNFx1MDQzMCBcdTA0M2NcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0M2MgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzMiBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzOFx1MDQ0NSBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NGZcdTA0NDUuIFx1MDQxZVx1MDQzMVx1MDQ0OVx1MDQzMFx1MDQ0ZiBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmIFx1MDQzMVx1MDQ0M1x1MDQzNFx1MDQzNVx1MDQ0MiBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuLSBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQ0YiBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0YiBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgUGF5UGFsLiJ9LCJyZWNlaXZlX2N1cnJlbmN5Ijp7ImN1cnJlbmN5X2lkIjoxMCwidGl0bGUiOiJVU0RUIFNPTCIsInNsdWciOiJVU0RUIiwiY3VycmVuY3lfY29kZSI6IlVTRFQiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3VzZHQucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOiJTT0wifSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjExLCJ0aXRsZSI6IkRBSSAiLCJzbHVnIjoiREFJIiwiY3VycmVuY3lfY29kZSI6IkRBSSIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvZGFpLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjEyLCJ0aXRsZSI6IkRPVCAiLCJzbHVnIjoiRE9UIiwiY3VycmVuY3lfY29kZSI6IkRPVCIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvZG90LnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjEzLCJ0aXRsZSI6IlVTREMgRVJDMjAiLCJzbHVnIjoiVVNEQyIsImN1cnJlbmN5X2NvZGUiOiJVU0RDIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC91c2RjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjoiRVJDMjAifSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjE0LCJ0aXRsZSI6IlNPTCAiLCJzbHVnIjoiU09MIiwiY3VycmVuY3lfY29kZSI6IlNPTCIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvc29sLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjE1LCJ0aXRsZSI6IlVTREMgU09MIiwic2x1ZyI6IlVTREMiLCJjdXJyZW5jeV9jb2RlIjoiVVNEQyIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvdXNkYy5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MCwibmV0d29yayI6IlNPTCJ9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMDAwMDAwMCIsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMCwicmVzZXJ2ZSI6IjI2NDgzMC42OTQ3In19LCJkZXNjcmlwdGlvbnMiOnsiZmluYWxfZGVzY3JpcHRpb24iOiJcIlx1MDQyM1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzY1x1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcclxuXHUwNDIxXHUwNDNmXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDMxXHUwNDNlIFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzUgXHUwNDNhIEJyaWRnZS4gXHUwNDFjXHUwNDRiIFx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzNVx1MDQzYyAyNFwvNywgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzMlx1MDQ0Ylx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NDdcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4LlxyXG5cclxuXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmXHUwNDM5XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZiBcdTA0M2EgXHUwNDNkXHUwNDMwXHUwNDNjLCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDQzIFx1MDQzMlx1MDQzMFx1MDQ0MSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2RcdTA0MzhcdTA0M2FcdTA0M2RcdTA0NDNcdTA0NDIgXHUwNDMyXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDRiIFx1MDQzZlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDQzLiBcdTA0MTJcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLCBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAuXHJcblx1MDQyMSBcdTA0NDNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzVcdTA0M2MsXHJcblx1MDQxYVx1MDQzZVx1MDQzY1x1MDQzMFx1MDQzZFx1MDQzNFx1MDQzMCBCcmlkZ2VcIiIsImF1dG9fc2VuZF9kZXNjcmlwdGlvbiI6Ii0gXHUwNDE4XHUwNDM3LVx1MDQzN1x1MDQzMCBcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzZVx1MDQzMiBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNiXHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYVx1MDQzOC4gXHUwNDE1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCwgXHUwNDNjXHUwNDRiLCBcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRlLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwLCBcdTA0NDJcdTA0MzBcdTA0M2EgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZFx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0NDBcdTA0M2VcdTA0M2JcdTA0MzhcdTA0NDBcdTA0NDNcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzMiBcdTA0MzFcdTA0M2JcdTA0M2VcdTA0M2FcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M2RcdTA0MzUuXHRcdFxyXG5cIi0gXHUwNDIxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDM1XHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDQzXHUwNDNjIFx1MDQzNFx1MDQzMlx1MDQzMCBcdTA0MzhcdTA0MzcgXHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDM4XHUwNDQ1IFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzMjpcclxuMS4gXHUwNDI1XHUwNDRkXHUwNDQ4IFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4yLiBcdTA0MjFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjMuIFx1MDQxZFx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbjQuIFx1MDQxMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbi4uLi4uLi4uLi4uLi4uLi5cclxuXHUwNDFmXHUwNDIwXHUwNDE4XHUwNDFjXHUwNDE1XHUwNDI3XHUwNDEwXHUwNDFkXHUwNDE4XHUwNDE1OiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyXHUwNDRiIFx1MDQzOFx1MDQzNyBCbG9ja2NoYWluLlwiXHRcdFxyXG4tIFx1MDQxMiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0M2NcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNlXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOCBcdTA0MzggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQ0YiBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0NGVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4LiBcdTA0MWNcdTA0NGIgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDMwXHUwNDQ4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYSwgXHUwNDM3XHUwNDMwIFx1MDQzMlx1MDQ0Ylx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYyBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4LiBcdTA0MWVcdTA0M2RcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDMwIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQzY1wiIFx1MDQzMiBcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M2JcdTA0NGZcdTA0NDUgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuXHRcdFxyXG4tIFx1MDQyMVx1MDQzZVx1MDQzM1x1MDQzYlx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzBcdTA0M2MgUGF5UGFsLCBcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzVcdTA0MzZcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZFx1MDQzMCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQyMFx1MDQzZVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCwgXHUwNDExXHUwNDM1XHUwNDNiXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQxXHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDM4XHUwNDQ1IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZC4gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDRiIFwiXHUwNDIyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzhcIi4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4LCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0M2JcdTA0MzhcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0LiBcdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0NDFcdTA0MzUgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQ4XHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDM4IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDNkXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNhXHUwNDNlXHUwNDQwXHUwNDM1XHUwNDM1LiBcdTA0MWVcdTA0MzRcdTA0M2RcdTA0MzBcdTA0M2FcdTA0M2UgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0NDFcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NGZcdTA0NDUgXHUwNDRkXHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGZcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDNlIDQ4IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMi5cdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2NcIiwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzguIFBheVBhbCBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDNlXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQ0ZSBcdTA0NDEgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDRiLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDNkXHUwNDMwIFx1MDQ0Nlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzOSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIsIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQ0MCBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQyIFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDNlXHUwNDNkXHUwNDMwIFx1MDQzOCBcdTA0M2VcdTA0MzFcdTA0NGJcdTA0NDdcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0MiA0JSBcdTA0MzRcdTA0M2UgNiUuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzMlx1MDQ0Ylx1MDQzM1x1MDQzZVx1MDQzNFx1MDQ0MyBcdTA0M2VcdTA0NDIgXHUwNDRkXHUwNDQyXHUwNDNlXHUwNDM5IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOC5cdFx0XHJcbi0gQnJpZGdlIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNcdTA0MzNcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzMVx1MDQzZVx1MDQzYlx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDMwLiBcdTA0MThcdTA0M2RcdTA0M2VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDNjXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDNjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0MzIgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzhcdTA0NDUgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRmXHUwNDQ1LiBcdTA0MWVcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NGYgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzFcdTA0NDNcdTA0MzRcdTA0MzVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcbi0gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0NGIgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NGIgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbC4ifSwicmVjZWl2ZV9jdXJyZW5jeSI6eyJjdXJyZW5jeV9pZCI6MTgsInRpdGxlIjoiQVJCICIsInNsdWciOiJBUkIiLCJjdXJyZW5jeV9jb2RlIjoiQVJCIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9hcmIucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOm51bGx9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMDAwMDAwMCIsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMCwicmVzZXJ2ZSI6IjI2NDgzMC42OTQ3In19LCJkZXNjcmlwdGlvbnMiOnsiZmluYWxfZGVzY3JpcHRpb24iOiJcIlx1MDQyM1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzY1x1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcclxuXHUwNDIxXHUwNDNmXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDMxXHUwNDNlIFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzUgXHUwNDNhIEJyaWRnZS4gXHUwNDFjXHUwNDRiIFx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzNVx1MDQzYyAyNFwvNywgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzMlx1MDQ0Ylx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NDdcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4LlxyXG5cclxuXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmXHUwNDM5XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZiBcdTA0M2EgXHUwNDNkXHUwNDMwXHUwNDNjLCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDQzIFx1MDQzMlx1MDQzMFx1MDQ0MSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2RcdTA0MzhcdTA0M2FcdTA0M2RcdTA0NDNcdTA0NDIgXHUwNDMyXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDRiIFx1MDQzZlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDQzLiBcdTA0MTJcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLCBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAuXHJcblx1MDQyMSBcdTA0NDNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzVcdTA0M2MsXHJcblx1MDQxYVx1MDQzZVx1MDQzY1x1MDQzMFx1MDQzZFx1MDQzNFx1MDQzMCBCcmlkZ2VcIiIsImF1dG9fc2VuZF9kZXNjcmlwdGlvbiI6Ii0gXHUwNDE4XHUwNDM3LVx1MDQzN1x1MDQzMCBcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzZVx1MDQzMiBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNiXHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYVx1MDQzOC4gXHUwNDE1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCwgXHUwNDNjXHUwNDRiLCBcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRlLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwLCBcdTA0NDJcdTA0MzBcdTA0M2EgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZFx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0NDBcdTA0M2VcdTA0M2JcdTA0MzhcdTA0NDBcdTA0NDNcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzMiBcdTA0MzFcdTA0M2JcdTA0M2VcdTA0M2FcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M2RcdTA0MzUuXHRcdFxyXG5cIi0gXHUwNDIxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDM1XHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDQzXHUwNDNjIFx1MDQzNFx1MDQzMlx1MDQzMCBcdTA0MzhcdTA0MzcgXHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDM4XHUwNDQ1IFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzMjpcclxuMS4gXHUwNDI1XHUwNDRkXHUwNDQ4IFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4yLiBcdTA0MjFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjMuIFx1MDQxZFx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbjQuIFx1MDQxMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbi4uLi4uLi4uLi4uLi4uLi5cclxuXHUwNDFmXHUwNDIwXHUwNDE4XHUwNDFjXHUwNDE1XHUwNDI3XHUwNDEwXHUwNDFkXHUwNDE4XHUwNDE1OiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyXHUwNDRiIFx1MDQzOFx1MDQzNyBCbG9ja2NoYWluLlwiXHRcdFxyXG4tIFx1MDQxMiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0M2NcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNlXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOCBcdTA0MzggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQ0YiBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0NGVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4LiBcdTA0MWNcdTA0NGIgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDMwXHUwNDQ4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYSwgXHUwNDM3XHUwNDMwIFx1MDQzMlx1MDQ0Ylx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYyBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4LiBcdTA0MWVcdTA0M2RcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDMwIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQzY1wiIFx1MDQzMiBcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M2JcdTA0NGZcdTA0NDUgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuXHRcdFxyXG4tIFx1MDQyMVx1MDQzZVx1MDQzM1x1MDQzYlx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzBcdTA0M2MgUGF5UGFsLCBcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzVcdTA0MzZcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZFx1MDQzMCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQyMFx1MDQzZVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCwgXHUwNDExXHUwNDM1XHUwNDNiXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQxXHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDM4XHUwNDQ1IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZC4gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDRiIFwiXHUwNDIyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzhcIi4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4LCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0M2JcdTA0MzhcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0LiBcdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0NDFcdTA0MzUgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQ4XHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDM4IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDNkXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNhXHUwNDNlXHUwNDQwXHUwNDM1XHUwNDM1LiBcdTA0MWVcdTA0MzRcdTA0M2RcdTA0MzBcdTA0M2FcdTA0M2UgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0NDFcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NGZcdTA0NDUgXHUwNDRkXHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGZcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDNlIDQ4IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMi5cdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2NcIiwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzguIFBheVBhbCBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDNlXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQ0ZSBcdTA0NDEgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDRiLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDNkXHUwNDMwIFx1MDQ0Nlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzOSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIsIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQ0MCBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQyIFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDNlXHUwNDNkXHUwNDMwIFx1MDQzOCBcdTA0M2VcdTA0MzFcdTA0NGJcdTA0NDdcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0MiA0JSBcdTA0MzRcdTA0M2UgNiUuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzMlx1MDQ0Ylx1MDQzM1x1MDQzZVx1MDQzNFx1MDQ0MyBcdTA0M2VcdTA0NDIgXHUwNDRkXHUwNDQyXHUwNDNlXHUwNDM5IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOC5cdFx0XHJcbi0gQnJpZGdlIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNcdTA0MzNcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzMVx1MDQzZVx1MDQzYlx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDMwLiBcdTA0MThcdTA0M2RcdTA0M2VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDNjXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDNjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0MzIgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzhcdTA0NDUgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRmXHUwNDQ1LiBcdTA0MWVcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NGYgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzFcdTA0NDNcdTA0MzRcdTA0MzVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcbi0gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0NGIgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NGIgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbC4ifSwicmVjZWl2ZV9jdXJyZW5jeSI6eyJjdXJyZW5jeV9pZCI6MTksInRpdGxlIjoiQkNIICIsInNsdWciOiJCQ0giLCJjdXJyZW5jeV9jb2RlIjoiQkNIIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9iY2gucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOm51bGx9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMDAwMDAwMCIsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMCwicmVzZXJ2ZSI6IjI2NDgzMC42OTQ3In19LCJkZXNjcmlwdGlvbnMiOnsiZmluYWxfZGVzY3JpcHRpb24iOiJcIlx1MDQyM1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzY1x1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcclxuXHUwNDIxXHUwNDNmXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDMxXHUwNDNlIFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzUgXHUwNDNhIEJyaWRnZS4gXHUwNDFjXHUwNDRiIFx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzNVx1MDQzYyAyNFwvNywgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzMlx1MDQ0Ylx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NDdcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4LlxyXG5cclxuXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmXHUwNDM5XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZiBcdTA0M2EgXHUwNDNkXHUwNDMwXHUwNDNjLCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDQzIFx1MDQzMlx1MDQzMFx1MDQ0MSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2RcdTA0MzhcdTA0M2FcdTA0M2RcdTA0NDNcdTA0NDIgXHUwNDMyXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDRiIFx1MDQzZlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDQzLiBcdTA0MTJcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLCBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAuXHJcblx1MDQyMSBcdTA0NDNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzVcdTA0M2MsXHJcblx1MDQxYVx1MDQzZVx1MDQzY1x1MDQzMFx1MDQzZFx1MDQzNFx1MDQzMCBCcmlkZ2VcIiIsImF1dG9fc2VuZF9kZXNjcmlwdGlvbiI6Ii0gXHUwNDE4XHUwNDM3LVx1MDQzN1x1MDQzMCBcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzZVx1MDQzMiBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNiXHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYVx1MDQzOC4gXHUwNDE1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCwgXHUwNDNjXHUwNDRiLCBcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRlLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwLCBcdTA0NDJcdTA0MzBcdTA0M2EgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZFx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0NDBcdTA0M2VcdTA0M2JcdTA0MzhcdTA0NDBcdTA0NDNcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzMiBcdTA0MzFcdTA0M2JcdTA0M2VcdTA0M2FcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M2RcdTA0MzUuXHRcdFxyXG5cIi0gXHUwNDIxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDM1XHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDQzXHUwNDNjIFx1MDQzNFx1MDQzMlx1MDQzMCBcdTA0MzhcdTA0MzcgXHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDM4XHUwNDQ1IFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzMjpcclxuMS4gXHUwNDI1XHUwNDRkXHUwNDQ4IFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4yLiBcdTA0MjFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjMuIFx1MDQxZFx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbjQuIFx1MDQxMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbi4uLi4uLi4uLi4uLi4uLi5cclxuXHUwNDFmXHUwNDIwXHUwNDE4XHUwNDFjXHUwNDE1XHUwNDI3XHUwNDEwXHUwNDFkXHUwNDE4XHUwNDE1OiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyXHUwNDRiIFx1MDQzOFx1MDQzNyBCbG9ja2NoYWluLlwiXHRcdFxyXG4tIFx1MDQxMiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0M2NcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNlXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOCBcdTA0MzggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQ0YiBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0NGVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4LiBcdTA0MWNcdTA0NGIgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDMwXHUwNDQ4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYSwgXHUwNDM3XHUwNDMwIFx1MDQzMlx1MDQ0Ylx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYyBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4LiBcdTA0MWVcdTA0M2RcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDMwIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQzY1wiIFx1MDQzMiBcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M2JcdTA0NGZcdTA0NDUgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuXHRcdFxyXG4tIFx1MDQyMVx1MDQzZVx1MDQzM1x1MDQzYlx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzBcdTA0M2MgUGF5UGFsLCBcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzVcdTA0MzZcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZFx1MDQzMCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQyMFx1MDQzZVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCwgXHUwNDExXHUwNDM1XHUwNDNiXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQxXHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDM4XHUwNDQ1IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZC4gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDRiIFwiXHUwNDIyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzhcIi4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4LCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0M2JcdTA0MzhcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0LiBcdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0NDFcdTA0MzUgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQ4XHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDM4IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDNkXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNhXHUwNDNlXHUwNDQwXHUwNDM1XHUwNDM1LiBcdTA0MWVcdTA0MzRcdTA0M2RcdTA0MzBcdTA0M2FcdTA0M2UgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0NDFcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NGZcdTA0NDUgXHUwNDRkXHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGZcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDNlIDQ4IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMi5cdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2NcIiwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzguIFBheVBhbCBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDNlXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQ0ZSBcdTA0NDEgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDRiLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDNkXHUwNDMwIFx1MDQ0Nlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzOSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIsIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQ0MCBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQyIFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDNlXHUwNDNkXHUwNDMwIFx1MDQzOCBcdTA0M2VcdTA0MzFcdTA0NGJcdTA0NDdcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0MiA0JSBcdTA0MzRcdTA0M2UgNiUuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzMlx1MDQ0Ylx1MDQzM1x1MDQzZVx1MDQzNFx1MDQ0MyBcdTA0M2VcdTA0NDIgXHUwNDRkXHUwNDQyXHUwNDNlXHUwNDM5IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOC5cdFx0XHJcbi0gQnJpZGdlIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNcdTA0MzNcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzMVx1MDQzZVx1MDQzYlx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDMwLiBcdTA0MThcdTA0M2RcdTA0M2VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDNjXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDNjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0MzIgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzhcdTA0NDUgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRmXHUwNDQ1LiBcdTA0MWVcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NGYgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzFcdTA0NDNcdTA0MzRcdTA0MzVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcbi0gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0NGIgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NGIgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbC4ifSwicmVjZWl2ZV9jdXJyZW5jeSI6eyJjdXJyZW5jeV9pZCI6MjAsInRpdGxlIjoiREFTSCAiLCJzbHVnIjoiREFTSCIsImN1cnJlbmN5X2NvZGUiOiJEQVNIIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9kYXNoLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjIxLCJ0aXRsZSI6IlpFQyAiLCJzbHVnIjoiWkVDIiwiY3VycmVuY3lfY29kZSI6IlpFQyIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvemVjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjIyLCJ0aXRsZSI6IkJOQiBCRVAyMCIsInNsdWciOiJCTkIiLCJjdXJyZW5jeV9jb2RlIjoiQk5CIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9ibmIucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOiJCRVAyMCJ9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMDAwMDAwMCIsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMCwicmVzZXJ2ZSI6IjI2NDgzMC42OTQ3In19LCJkZXNjcmlwdGlvbnMiOnsiZmluYWxfZGVzY3JpcHRpb24iOiJcIlx1MDQyM1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzY1x1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcclxuXHUwNDIxXHUwNDNmXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDMxXHUwNDNlIFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzUgXHUwNDNhIEJyaWRnZS4gXHUwNDFjXHUwNDRiIFx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzNVx1MDQzYyAyNFwvNywgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzMlx1MDQ0Ylx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NDdcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4LlxyXG5cclxuXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmXHUwNDM5XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZiBcdTA0M2EgXHUwNDNkXHUwNDMwXHUwNDNjLCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDQzIFx1MDQzMlx1MDQzMFx1MDQ0MSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2RcdTA0MzhcdTA0M2FcdTA0M2RcdTA0NDNcdTA0NDIgXHUwNDMyXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDRiIFx1MDQzZlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDQzLiBcdTA0MTJcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLCBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAuXHJcblx1MDQyMSBcdTA0NDNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzVcdTA0M2MsXHJcblx1MDQxYVx1MDQzZVx1MDQzY1x1MDQzMFx1MDQzZFx1MDQzNFx1MDQzMCBCcmlkZ2VcIiIsImF1dG9fc2VuZF9kZXNjcmlwdGlvbiI6Ii0gXHUwNDE4XHUwNDM3LVx1MDQzN1x1MDQzMCBcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzZVx1MDQzMiBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNiXHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYVx1MDQzOC4gXHUwNDE1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCwgXHUwNDNjXHUwNDRiLCBcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRlLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwLCBcdTA0NDJcdTA0MzBcdTA0M2EgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZFx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0NDBcdTA0M2VcdTA0M2JcdTA0MzhcdTA0NDBcdTA0NDNcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzMiBcdTA0MzFcdTA0M2JcdTA0M2VcdTA0M2FcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M2RcdTA0MzUuXHRcdFxyXG5cIi0gXHUwNDIxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDM1XHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDQzXHUwNDNjIFx1MDQzNFx1MDQzMlx1MDQzMCBcdTA0MzhcdTA0MzcgXHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDM4XHUwNDQ1IFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzMjpcclxuMS4gXHUwNDI1XHUwNDRkXHUwNDQ4IFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4yLiBcdTA0MjFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjMuIFx1MDQxZFx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbjQuIFx1MDQxMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbi4uLi4uLi4uLi4uLi4uLi5cclxuXHUwNDFmXHUwNDIwXHUwNDE4XHUwNDFjXHUwNDE1XHUwNDI3XHUwNDEwXHUwNDFkXHUwNDE4XHUwNDE1OiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyXHUwNDRiIFx1MDQzOFx1MDQzNyBCbG9ja2NoYWluLlwiXHRcdFxyXG4tIFx1MDQxMiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0M2NcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNlXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOCBcdTA0MzggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQ0YiBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0NGVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4LiBcdTA0MWNcdTA0NGIgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDMwXHUwNDQ4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYSwgXHUwNDM3XHUwNDMwIFx1MDQzMlx1MDQ0Ylx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYyBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4LiBcdTA0MWVcdTA0M2RcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDMwIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQzY1wiIFx1MDQzMiBcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M2JcdTA0NGZcdTA0NDUgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuXHRcdFxyXG4tIFx1MDQyMVx1MDQzZVx1MDQzM1x1MDQzYlx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzBcdTA0M2MgUGF5UGFsLCBcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzVcdTA0MzZcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZFx1MDQzMCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQyMFx1MDQzZVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCwgXHUwNDExXHUwNDM1XHUwNDNiXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQxXHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDM4XHUwNDQ1IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZC4gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDRiIFwiXHUwNDIyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzhcIi4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4LCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0M2JcdTA0MzhcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0LiBcdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0NDFcdTA0MzUgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQ4XHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDM4IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDNkXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNhXHUwNDNlXHUwNDQwXHUwNDM1XHUwNDM1LiBcdTA0MWVcdTA0MzRcdTA0M2RcdTA0MzBcdTA0M2FcdTA0M2UgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0NDFcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NGZcdTA0NDUgXHUwNDRkXHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGZcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDNlIDQ4IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMi5cdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2NcIiwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzguIFBheVBhbCBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDNlXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQ0ZSBcdTA0NDEgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDRiLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDNkXHUwNDMwIFx1MDQ0Nlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzOSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIsIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQ0MCBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQyIFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDNlXHUwNDNkXHUwNDMwIFx1MDQzOCBcdTA0M2VcdTA0MzFcdTA0NGJcdTA0NDdcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0MiA0JSBcdTA0MzRcdTA0M2UgNiUuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzMlx1MDQ0Ylx1MDQzM1x1MDQzZVx1MDQzNFx1MDQ0MyBcdTA0M2VcdTA0NDIgXHUwNDRkXHUwNDQyXHUwNDNlXHUwNDM5IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOC5cdFx0XHJcbi0gQnJpZGdlIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNcdTA0MzNcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzMVx1MDQzZVx1MDQzYlx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDMwLiBcdTA0MThcdTA0M2RcdTA0M2VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDNjXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDNjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0MzIgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzhcdTA0NDUgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRmXHUwNDQ1LiBcdTA0MWVcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NGYgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzFcdTA0NDNcdTA0MzRcdTA0MzVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcbi0gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0NGIgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NGIgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbC4ifSwicmVjZWl2ZV9jdXJyZW5jeSI6eyJjdXJyZW5jeV9pZCI6MjMsInRpdGxlIjoiRE9HRSAiLCJzbHVnIjoiRE9HRSIsImN1cnJlbmN5X2NvZGUiOiJET0dFIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9kb2dlLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjI0LCJ0aXRsZSI6IlhNUiAiLCJzbHVnIjoiWE1SIiwiY3VycmVuY3lfY29kZSI6IlhNUiIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wveG1yLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjI1LCJ0aXRsZSI6IkVUQyAiLCJzbHVnIjoiRVRDIiwiY3VycmVuY3lfY29kZSI6IkVUQyIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvZXRjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfSx7InJhbmdlX2xpbWl0Ijp7InNlbmQiOnsibWluIjowLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDB9LCJyZWNlaXZlIjp7Im1pbiI6IjAuMDAwMDAwMCIsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMCwicmVzZXJ2ZSI6IjI2NDgzMC42OTQ3In19LCJkZXNjcmlwdGlvbnMiOnsiZmluYWxfZGVzY3JpcHRpb24iOiJcIlx1MDQyM1x1MDQzMlx1MDQzMFx1MDQzNlx1MDQzMFx1MDQzNVx1MDQzY1x1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcclxuXHUwNDIxXHUwNDNmXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDMxXHUwNDNlIFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzUgXHUwNDNhIEJyaWRnZS4gXHUwNDFjXHUwNDRiIFx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzNVx1MDQzYyAyNFwvNywgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzMlx1MDQ0Ylx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NDdcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4LlxyXG5cclxuXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmXHUwNDM5XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0OVx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZiBcdTA0M2EgXHUwNDNkXHUwNDMwXHUwNDNjLCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDQzIFx1MDQzMlx1MDQzMFx1MDQ0MSBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2RcdTA0MzhcdTA0M2FcdTA0M2RcdTA0NDNcdTA0NDIgXHUwNDMyXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDRiIFx1MDQzZlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDQzLiBcdTA0MTJcdTA0NGIgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDEgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLCBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0NGYgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLCBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M2JcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzAuXHJcblx1MDQyMSBcdTA0NDNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzVcdTA0M2MsXHJcblx1MDQxYVx1MDQzZVx1MDQzY1x1MDQzMFx1MDQzZFx1MDQzNFx1MDQzMCBCcmlkZ2VcIiIsImF1dG9fc2VuZF9kZXNjcmlwdGlvbiI6Ii0gXHUwNDE4XHUwNDM3LVx1MDQzN1x1MDQzMCBcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzkgXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNmXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzZVx1MDQzMiBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzVcdTA0M2RcdTA0NGIgXHUwNDNmXHUwNDNlXHUwNDQxXHUwNDNiXHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYVx1MDQzOC4gXHUwNDE1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQzZFx1MDQzMCBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCwgXHUwNDNjXHUwNDRiLCBcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRlLCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNjIFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzggXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwLCBcdTA0NDJcdTA0MzBcdTA0M2EgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZFx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0NDBcdTA0M2VcdTA0M2JcdTA0MzhcdTA0NDBcdTA0NDNcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzMiBcdTA0MzFcdTA0M2JcdTA0M2VcdTA0M2FcdTA0NDdcdTA0MzVcdTA0MzlcdTA0M2RcdTA0MzUuXHRcdFxyXG5cIi0gXHUwNDIxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyIFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDM1XHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDM4XHUwNDNjXHUwNDQzXHUwNDNjIFx1MDQzNFx1MDQzMlx1MDQzMCBcdTA0MzhcdTA0MzcgXHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDM4XHUwNDQ1IFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzMjpcclxuMS4gXHUwNDI1XHUwNDRkXHUwNDQ4IFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4yLiBcdTA0MjFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4XHJcbjMuIFx1MDQxZFx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbjQuIFx1MDQxMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwXHJcbi4uLi4uLi4uLi4uLi4uLi5cclxuXHUwNDFmXHUwNDIwXHUwNDE4XHUwNDFjXHUwNDE1XHUwNDI3XHUwNDEwXHUwNDFkXHUwNDE4XHUwNDE1OiBcdTA0MWZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzZFx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUgXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDQ4XHUwNDNlXHUwNDQyXHUwNDRiIFx1MDQzOFx1MDQzNyBCbG9ja2NoYWluLlwiXHRcdFxyXG4tIFx1MDQxMiBcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDFcdTA0MzhcdTA0M2NcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNlXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOCBcdTA0MzggXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlXHUwNDMyIFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQ0YiBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0NGVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4LiBcdTA0MWNcdTA0NGIgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQzZVx1MDQ0N1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMsIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDMwXHUwNDQ4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYSwgXHUwNDM3XHUwNDMwIFx1MDQzMlx1MDQ0Ylx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYyBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM4LiBcdTA0MWVcdTA0M2RcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDMwIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0MzAgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDM1IFwiXHUwNDFjXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQzY1wiIFx1MDQzMiBcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M2JcdTA0NGZcdTA0NDUgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx0XHRcclxuXHRcdFxyXG4tIFx1MDQyMVx1MDQzZVx1MDQzM1x1MDQzYlx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzBcdTA0M2MgUGF5UGFsLCBcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzVcdTA0MzZcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZFx1MDQzMCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQyMFx1MDQzZVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCwgXHUwNDExXHUwNDM1XHUwNDNiXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQxXHUwNDM4IFx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDM4XHUwNDQ1IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZC4gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NGMsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzZVx1MDQzMVx1MDQzNVx1MDQzZCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0M2NcdTA0MzVcdTA0NDJcdTA0M2VcdTA0MzQgXHUwNDNlXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDRiIFwiXHUwNDIyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzhcIi4gQnJpZGdlIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDNlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4LCBcdTA0MzVcdTA0NDFcdTA0M2JcdTA0MzggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0M2JcdTA0MzhcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0LiBcdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0NDFcdTA0MzUgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzFcdTA0NGIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQ4XHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzcgXHUwNDM4IFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDNkXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0OCBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIgUGF5UGFsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNhXHUwNDNlXHUwNDQwXHUwNDM1XHUwNDM1LiBcdTA0MWVcdTA0MzRcdTA0M2RcdTA0MzBcdTA0M2FcdTA0M2UgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQ0Ylx1MDQ0NSBcdTA0NDFcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0NGZcdTA0NDUgXHUwNDRkXHUwNDQyXHUwNDNlIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGZcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDNlIDQ4IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMi5cdFx0XHJcbi0gXHUwNDFjXHUwNDRiIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2NcIiwgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzAgXHUwNDQyXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRiIFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0NDNcdTA0NDFcdTA0M2JcdTA0NDNcdTA0MzNcdTA0MzguIFBheVBhbCBcdTA0MzJcdTA0MzdcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDNlXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQ0ZSBcdTA0NDEgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDRiLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzkgXHUwNDNkXHUwNDMwIFx1MDQ0Nlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzOSBcdTA0MzBcdTA0M2FcdTA0M2FcdTA0MzBcdTA0NDNcdTA0M2RcdTA0NDIsIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQ0MCBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQyIFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDNlXHUwNDNkXHUwNDMwIFx1MDQzOCBcdTA0M2VcdTA0MzFcdTA0NGJcdTA0NDdcdTA0M2RcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0MiA0JSBcdTA0MzRcdTA0M2UgNiUuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzMlx1MDQ0Ylx1MDQzM1x1MDQzZVx1MDQzNFx1MDQ0MyBcdTA0M2VcdTA0NDIgXHUwNDRkXHUwNDQyXHUwNDNlXHUwNDM5IFx1MDQzYVx1MDQzZVx1MDQzY1x1MDQzOFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MiBcdTA0MzdcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDM1IFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOC5cdFx0XHJcbi0gQnJpZGdlIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNcdTA0MzNcdTA0MzggXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzMVx1MDQzZVx1MDQzYlx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDMwLiBcdTA0MThcdTA0M2RcdTA0M2VcdTA0MzNcdTA0MzRcdTA0MzAgXHUwNDNjXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDNjIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MyBcdTA0MzIgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzhcdTA0NDUgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRmXHUwNDQ1LiBcdTA0MWVcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NGYgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzFcdTA0NDNcdTA0MzRcdTA0MzVcdTA0NDIgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcbi0gXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NGJcdTA0MzJcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQ0N1x1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0NGIgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQzMFx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0M2VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0NGIgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFBheVBhbC4ifSwicmVjZWl2ZV9jdXJyZW5jeSI6eyJjdXJyZW5jeV9pZCI6MjYsInRpdGxlIjoiWExNICIsInNsdWciOiJYTE0iLCJjdXJyZW5jeV9jb2RlIjoiWExNIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC94bG0ucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjAsIm5ldHdvcmsiOm51bGx9LCJjYWxjdWxhdGUiOm51bGx9LHsicmFuZ2VfbGltaXQiOnsic2VuZCI6eyJtaW4iOjAsIm1heCI6MTAwMDAwMDAwMDAwMDAwMDAwMH0sInJlY2VpdmUiOnsibWluIjoiMC4wMDAwMDAiLCJtYXgiOjEwMDAwMDAwMDAwMDAwMDAwMDAsInJlc2VydmUiOiIyNjQ4MzAuNjk0NyJ9fSwiZGVzY3JpcHRpb25zIjp7ImZpbmFsX2Rlc2NyaXB0aW9uIjoiXCJcdTA0MjNcdTA0MzJcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M2NcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjXHJcblx1MDQyMVx1MDQzZlx1MDQzMFx1MDQ0MVx1MDQzOFx1MDQzMVx1MDQzZSBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM1IFx1MDQzYSBCcmlkZ2UuIFx1MDQxY1x1MDQ0YiBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0MzVcdTA0M2MgMjRcLzcsIFx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQ0YiBcdTA0MzJcdTA0NGJcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzNyBcdTA0MzIgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDM4XHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOC5cclxuXHJcblx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zlx1MDQzOVx1MDQ0Mlx1MDQzNVx1MDQ0MVx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0NDlcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYgXHUwNDNhIFx1MDQzZFx1MDQzMFx1MDQzYywgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQ0MyBcdTA0MzJcdTA0MzBcdTA0NDEgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNkXHUwNDM4XHUwNDNhXHUwNDNkXHUwNDQzXHUwNDQyIFx1MDQzMlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQ0YiBcdTA0M2ZcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDQzIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQ0My4gXHUwNDEyXHUwNDRiIFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMCwgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDRmIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZSwgXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNlXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwLlxyXG5cdTA0MjEgXHUwNDQzXHUwNDMyXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1XHUwNDNjLFxyXG5cdTA0MWFcdTA0M2VcdTA0M2NcdTA0MzBcdTA0M2RcdTA0MzRcdTA0MzAgQnJpZGdlXCIiLCJhdXRvX3NlbmRfZGVzY3JpcHRpb24iOiItIFx1MDQxOFx1MDQzNy1cdTA0MzdcdTA0MzAgXHUwNDNlXHUwNDQxXHUwNDNlXHUwNDMxXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZlx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2VcdTA0MzIgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDRiIFx1MDQzZlx1MDQzZVx1MDQ0MVx1MDQzYlx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2FcdTA0MzguIFx1MDQxNVx1MDQ0MVx1MDQzYlx1MDQzOCBcdTA0MzJcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M2RcdTA0MzAgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAsIFx1MDQzY1x1MDQ0YiwgXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZSwgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQzYyBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCwgXHUwNDQyXHUwNDMwXHUwNDNhIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2RcdTA0MzUgXHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNjIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0MzIgXHUwNDMxXHUwNDNiXHUwNDNlXHUwNDNhXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDNkXHUwNDM1Llx0XHRcclxuXCItIFx1MDQyMVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0MiBcdTA0MzJcdTA0MzBcdTA0NDhcdTA0MzVcdTA0MzNcdTA0M2UgXHUwNDNhXHUwNDNlXHUwNDQ4XHUwNDM1XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzNVx1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQzOFx1MDQzY1x1MDQ0M1x1MDQzYyBcdTA0MzRcdTA0MzJcdTA0MzAgXHUwNDM4XHUwNDM3IFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQ0NSBcdTA0NGRcdTA0M2JcdTA0MzVcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0M2VcdTA0MzI6XHJcbjEuIFx1MDQyNVx1MDQ0ZFx1MDQ0OCBcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzdcdTA0MzBcdTA0M2FcdTA0NDZcdTA0MzhcdTA0MzhcclxuMi4gXHUwNDIxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOFxyXG4zLiBcdTA0MWRcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG40LiBcdTA0MTJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMFxyXG4uLi4uLi4uLi4uLi4uLi4uXHJcblx1MDQxZlx1MDQyMFx1MDQxOFx1MDQxY1x1MDQxNVx1MDQyN1x1MDQxMFx1MDQxZFx1MDQxOFx1MDQxNTogXHUwNDFmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M2RcdTA0MzUgXHUwNDM0XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQ0OFx1MDQzZVx1MDQ0Mlx1MDQ0YiBcdTA0MzhcdTA0MzcgQmxvY2tjaGFpbi5cIlx0XHRcclxuLSBcdTA0MTIgXHUwNDM3XHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDNjXHUwNDNlXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzZVx1MDQ0MiBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzggXHUwNDM4IFx1MDQzYVx1MDQzZVx1MDQ0OFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZVx1MDQzMiBcdTA0M2FcdTA0NDBcdTA0MzhcdTA0M2ZcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0NGIgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDRlXHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzN1x1MDQzMFx1MDQzYVx1MDQ0Nlx1MDQzOFx1MDQzOC4gXHUwNDFjXHUwNDRiIFx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Ylx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzYyBcdTA0NDJcdTA0M2VcdTA0NDdcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzLCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0M2RcdTA0NDNcdTA0NGUgXHUwNDNkXHUwNDMwIFx1MDQzZFx1MDQzMFx1MDQ0OCBcdTA0M2FcdTA0M2VcdTA0NDhcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2EsIFx1MDQzN1x1MDQzMCBcdTA0MzJcdTA0NGJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M2VcdTA0M2MgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzOC4gXHUwNDFlXHUwNDNkXHUwNDMwIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQzMCBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDMwIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzNSBcIlx1MDQxY1x1MDQ0YiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzBcdTA0MzVcdTA0M2NcIiBcdTA0MzIgXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNiXHUwNDRmXHUwNDQ1IFx1MDQzMlx1MDQzMFx1MDQ0OFx1MDQzNVx1MDQzM1x1MDQzZSBcdTA0MzdcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdFx0XHJcblx0XHRcclxuLSBcdTA0MjFcdTA0M2VcdTA0MzNcdTA0M2JcdTA0MzBcdTA0NDFcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDMwXHUwNDNjIFBheVBhbCwgXHUwNDNmXHUwNDNiXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDM2XHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQ0Mlx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzYlx1MDQzNVx1MDQzZFx1MDQ0YiBcdTA0M2RcdTA0MzAgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MjBcdTA0M2VcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzgsIFx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzOCBcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDRiXHUwNDQ1IFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzOFx1MDQ0NSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2QuIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDMxXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXHUwNDRjLCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDMyXHUwNDMwXHUwNDQ4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0NDFcdTA0M2VcdTA0MzFcdTA0MzVcdTA0M2QgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0IFx1MDQzZVx1MDQzZlx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQ0YiBcIlx1MDQyMlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4XCIuIEJyaWRnZSBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQyIFx1MDQzZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzOCwgXHUwNDM1XHUwNDQxXHUwNDNiXHUwNDM4IFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0MiBQYXlQYWwgXHUwNDNhXHUwNDNiXHUwNDM4XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzY1x1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzNC4gXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDQxXHUwNDM1IFx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZVx1MDQzNSwgXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMxXHUwNDRiIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3IFx1MDQzOCBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDNjXHUwNDNjXHUwNDQzIFx1MDQzZFx1MDQzMCBcdTA0MzJcdTA0MzBcdTA0NDggXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyIFBheVBhbCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQ0MFx1MDQzNVx1MDQzNS4gXHUwNDFlXHUwNDM0XHUwNDNkXHUwNDMwXHUwNDNhXHUwNDNlIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0M2VcdTA0NDJcdTA0M2VcdTA0NDBcdTA0NGJcdTA0NDUgXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDRmXHUwNDQ1IFx1MDQ0ZFx1MDQ0Mlx1MDQzZSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRmXHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzZSA0OCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIuXHRcdFxyXG4tIFx1MDQxY1x1MDQ0YiBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0M2MgXHUwNDQyXHUwNDNlXHUwNDQ3XHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0MywgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDQzXHUwNDRlIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgXCJcdTA0MWNcdTA0NGIgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNiXHUwNDRmXHUwNDM1XHUwNDNjXCIsIFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0M2VcdTA0M2ZcdTA0M2JcdTA0MzBcdTA0NDJcdTA0NDMgXHUwNDM3XHUwNDMwIFx1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0YiBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDQzXHUwNDQxXHUwNDNiXHUwNDQzXHUwNDMzXHUwNDM4LiBQYXlQYWwgXHUwNDMyXHUwNDM3XHUwNDM4XHUwNDNjXHUwNDMwXHUwNDM1XHUwNDQyIFx1MDQzNFx1MDQzZVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0M1x1MDQ0ZSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0NGUgXHUwNDQxIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQ0YiwgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM5IFx1MDQzZFx1MDQzMCBcdTA0NDZcdTA0MzVcdTA0M2JcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzkgXHUwNDMwXHUwNDNhXHUwNDNhXHUwNDMwXHUwNDQzXHUwNDNkXHUwNDQyLCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M2NcdTA0MzVcdTA0NDAgXHUwNDNhXHUwNDNlXHUwNDNjXHUwNDM4XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQ0MiBcdTA0M2VcdTA0NDIgXHUwNDMyXHUwNDMwXHUwNDQ4XHUwNDM1XHUwNDMzXHUwNDNlIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQzZVx1MDQzZFx1MDQzMCBcdTA0MzggXHUwNDNlXHUwNDMxXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzYlx1MDQ0Zlx1MDQzNVx1MDQ0MiBcdTA0M2VcdTA0NDIgNCUgXHUwNDM0XHUwNDNlIDYlLiBCcmlkZ2UgXHUwNDNkXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0M1x1MDQ0N1x1MDQzMFx1MDQzNVx1MDQ0MiBcdTA0MzJcdTA0NGJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0NDMgXHUwNDNlXHUwNDQyIFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzOSBcdTA0M2FcdTA0M2VcdTA0M2NcdTA0MzhcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDIgXHUwNDM3XHUwNDMwIFx1MDQzZFx1MDQzNVx1MDQzNSBcdTA0M2VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0MzguXHRcdFxyXG4tIEJyaWRnZSBcdTA0M2VcdTA0NDJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2JcdTA0NGZcdTA0MzVcdTA0NDIgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjXHUwNDMzXHUwNDM4IFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwsIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQ0ZiBcdTA0MzFcdTA0M2VcdTA0M2JcdTA0MzVcdTA0MzUgXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzMFx1MDQzYVx1MDQzYVx1MDQzMFx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzMC4gXHUwNDE4XHUwNDNkXHUwNDNlXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQzY1x1MDQ0YiBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2MgXHUwNDNlXHUwNDQyXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzMlx1MDQzMFx1MDQzYyBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0NDMgXHUwNDMyIFx1MDQzZVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzOSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDM4XHUwNDQ1IFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0Zlx1MDQ0NS4gXHUwNDFlXHUwNDMxXHUwNDQ5XHUwNDMwXHUwNDRmIFx1MDQ0MVx1MDQ0M1x1MDQzY1x1MDQzY1x1MDQzMCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDMxXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDQyIFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzMCBcdTA0NDFcdTA0NDNcdTA0M2NcdTA0M2NcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHRcdFxyXG4tIFx1MDQxZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRiXHUwNDMyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0NDdcdTA0NDJcdTA0M2UgXHUwNDNjXHUwNDRiIFx1MDQzZFx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2RcdTA0MzhcdTA0M2NcdTA0MzBcdTA0MzVcdTA0M2MgXHUwNDMyXHUwNDNlXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRiIFx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNyBQYXlQYWwuIn0sInJlY2VpdmVfY3VycmVuY3kiOnsiY3VycmVuY3lfaWQiOjM2LCJ0aXRsZSI6IkFEQSAiLCJzbHVnIjoiQURBIiwiY3VycmVuY3lfY29kZSI6IkFEQSIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvYWRhLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjowLCJuZXR3b3JrIjpudWxsfSwiY2FsY3VsYXRlIjpudWxsfV19fQ=="}},"time_used":186,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":176,"receive":10,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BNSvKMyq.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.543Z","timestamp":1785139669543,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/BNSvKMyq.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"c05-654aa2b82da32-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 787\r\nKeep-Alive: timeout=5, max=93\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":3077,"size_decoded":1136,"mime_type":"application/javascript","magic":"ASCII text","md5":"053136720611435ac353e655c2a60580","sha1":"1a8d31b2a9d98608f43b8743305bc15f082f7f3f","sha256":"5b4ab30e55a7a73ae422448eaf5c7cb781f08cf6f014699c6520aea280f06cc7","sha512":"edebead0ee0bb9a94a4fce8d139f621eb0d4e28b81b772b0e996200b0a0848071f150d24ff0f3e16f58a7d96d1e347af6ac2376948a05bb326279e639d3c914a","ssdeep":"","tlshash":"a551bb05d1a81436a14be2364e3f5c412a18c50f8cb9bea87fdc021d1f1e02e1db936e","first_seen":"2025-10-23T03:46:52.409425Z","last_seen":"2026-07-27T11:49:48.916376Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICBhIGFzIHMsCiAgYyBhcyBvLAogIEYgYXMgZCwKICBlIGFzIGksCiAgbiBhcyByLAogIGIgYXMgdCwKICB0IGFzIGwsCn0gZnJvbSAiLi9TbTJtQ2ZERS5qcyI7CmNvbnN0IG4gPSBbImF1dG9wbGF5LXJldmVyc2UtZGlyZWN0aW9uIl0sCiAgYyA9IHsgY2xhc3M6ICIhbWluLWgtZnVsbCIgfSwKICB1ID0geyBjbGFzczogImQtZmxleCBqdXN0aWZ5LWJldHdlZW4iIH0sCiAgeCA9IHsKICAgIF9fbmFtZTogIlJldmlld3MiLAogICAgcHJvcHM6IHsKICAgICAgbGVmdFRvUmlnaHQ6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgICAgbGlzdDogeyB0eXBlOiBBcnJheSwgZGVmYXVsdDogKCkgPT4gW10gfSwKICAgICAgZGFya01vZGU6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwKICAgIH0sCiAgICBzZXR1cChlKSB7CiAgICAgIHJldHVybiAoQywgbSkgPT4gKAogICAgICAgIHMoKSwKICAgICAgICBvKAogICAgICAgICAgInN3aXBlci1jb250YWluZXIiLAogICAgICAgICAgewogICAgICAgICAgICAic2xpZGVzLXBlci12aWV3IjogImF1dG8iLAogICAgICAgICAgICAic3BhY2UtYmV0d2VlbiI6ICIxMCIsCiAgICAgICAgICAgIGxvb3A6ICEwLAogICAgICAgICAgICAiYXV0b3BsYXktZGVsYXkiOiAiMCIsCiAgICAgICAgICAgICJhdXRvcGxheS1kaXNhYmxlLW9uLWludGVyYWN0aW9uIjogITEsCiAgICAgICAgICAgICJhdXRvcGxheS1yZXZlcnNlLWRpcmVjdGlvbiI6IGUubGVmdFRvUmlnaHQsCiAgICAgICAgICAgIHNwZWVkOiAiMTQwMDAiLAogICAgICAgICAgICBjbGFzczogIiIsCiAgICAgICAgICB9LAogICAgICAgICAgWwogICAgICAgICAgICAocyghMCksCiAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICBlLmxpc3QsCiAgICAgICAgICAgICAgICAoYSkgPT4gKAogICAgICAgICAgICAgICAgICBzKCksCiAgICAgICAgICAgICAgICAgIG8oCiAgICAgICAgICAgICAgICAgICAgInN3aXBlci1zbGlkZSIsCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAga2V5OiBhLmlkLAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHIoWwogICAgICAgICAgICAgICAgICAgICAgICAidy05NiBtaW4taC00NCBwLTYgIXJvdW5kZWQteGwgc2hhZG93LXhzIGJvcmRlciBoaWRkZW4iLAogICAgICAgICAgICAgICAgICAgICAgICBlLmRhcmtNb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiYmctWyMxYzFjMjBdICFib3JkZXItWyM0MzQzNDNdIgogICAgICAgICAgICAgICAgICAgICAgICAgIDogImJnLWdyYXktMTAwICFib3JkZXItZ3JheS0zMDAiLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICB0KCJkaXYiLCBjLCBbCiAgICAgICAgICAgICAgICAgICAgICAgIHQoImRpdiIsIHUsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICB0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiByKFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC1tZC1yZWd1bGFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmRhcmtNb2RlID8gInRleHQtWyNDQ0NDQ0NdIiA6ICJ0ZXh0LWdyYXktOTAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbChhLnRpdGxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHIoWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0LW1kLXJlZ3VsYXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuZGFya01vZGUgPyAidGV4dC1bI0NDQ0NDQ10iIDogInRleHQtZ3JheS02MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsKGEuZGF0ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgIHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiByKFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm10LTIgdGV4dC1tZC1tZWRpdW0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmRhcmtNb2RlID8gInRleHQtWyNDQ0NDQ0NdIiA6ICJ0ZXh0LWdyYXktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbChhLmNvbW1lbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgKSksCiAgICAgICAgICBdLAogICAgICAgICAgOCwKICAgICAgICAgIG4KICAgICAgICApCiAgICAgICk7CiAgICB9LAogIH07CmV4cG9ydCB7IHggYXMgXyB9Owo="}},"time_used":171,"timings":{"blocked":145,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Inter-Regular.DYjygwQm.ttf","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.386Z","timestamp":1785139670386,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Inter-Regular.DYjygwQm.ttf HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"4bbec-654aa2b832852\"\r\nAccept-Ranges: bytes\r\nContent-Length: 310252\r\nKeep-Alive: timeout=5, max=90\r\nConnection: Keep-Alive\r\nContent-Type: font/ttf\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":310252,"size_decoded":310540,"mime_type":"font/ttf","magic":"TrueType Font data, 16 tables, 1st \"GDEF\", 50 names, Microsoft, language 0x409","md5":"ea5879884a95551632e9eb1bba5b2128","sha1":"cfa780d0b50b2bb7eacb82984f1b18a95aaa40c5","sha256":"3127f0b873387ee37e2040135a06e9e9c05030f509eb63689529becf28b50384","sha512":"f09113b22bab8fb07920453e2cdc3ce678231f7b9f801f44471461697a10a61a9382173e177691f4170a3f9af736a4ee880fb48cc4408c8eea4e3ee850004cc8","ssdeep":"6144:PUWaT1IUkh6w/yOjngZyKMOMxMmABlNGow+BNn6m4zLkA4X:sX+Qw/rgZyKfMxMmABlNG4BNn6m4/kJX","tlshash":"5f644a17e363c31dc5132e3a8793c7a0b767bc513b12a10abb243a55da9f1b41e9b4d8","first_seen":"2023-10-14T00:46:20Z","last_seen":"2026-08-04T04:02:14.945392Z","times_seen":4422,"resource_available":false,"data":"AAEAAAAQAQAABAAAR0RFRjEzMboAAAJAAAAEGEdQT1MX3XHDAAF+KAABIJpHU1VCSydsUwAAXvQAAFV4T1MvMiKXbmIAAAHgAAAAYFNUQVTxgdk1AAABmAAAAEhjbWFw9ZJbgwABGQwAAGUaZ2FzcAAAABAAAAEUAAAACGdseWZuGXjEAAKexAACHSZoZWFkLcNhRgAAAWAAAAA2aGhlYR71Gb8AAAE8AAAAJGhtdHj9w0zUAAAPWAAAJ8psb2NhCV0GNAAANyQAACfQbWF4cAoMAQYAAAEcAAAAIG5hbWVHIWyTAAAGWAAACQBwb3N0p6g1cgAAtGwAAGSecHJlcGgGjIUAAAEMAAAAB7gB/4WwBI0AAAEAAf//AA8AAQAACfMAlAAMAHAABwABAAAAAAAAAAAAAAAAAAUAAQABAAAKqP1YAAAdgPfg9PQcagABAAAAAAAAAAAAAAAAAAAJ8gABAAAAAwTdIxH5d18PPPUAGwsAAAAAANzyuxsAAAAA3VVQ1vfg/HwcagwAAAAABgACAAEAAAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQ8AAHNsbnQBEAABABQABAADAAEAAgEXAAAAAP/2AAAAAwAAAAIBFwGQAAACvAAAAAQHLgGQAAUAAAcmBpoAAADTByYGmgAAA9oAwAOaAAACAAUDAAAAAgAE4AAC/xIAof8AAAABAAAAAFJTTVMAwAAg//8KqP1YAAAKqAKoAAABnwAAAAAGAAgAAAAAIAAMAAEAAAASAAAAAAAAAAAAAAAAAAIAqwACADsAAQA9AK0AAQCvARUAAQEXAYgAAQGKAZcAAQGZAaAAAQGiAdUAAQHXAfMAAQH1AfYAAQH4AkEAAQJDAkgAAQJKAlQAAQJWAmEAAQJjAoMAAQKFApkAAQKbApsAAQKeArwAAQLAAsIAAQLEAsUAAQLKAssAAQLNAtcAAQLaA0IAAQNFA0kAAQNMA3EAAQN0A3UAAQN5A4YAAQOIA7QAAQO2A7cAAQO5A84AAQPRA9cAAQPaA9oAAQPcA9wAAQPeA94AAQPiA/YAAQP4A/oAAQP+A/4AAQQABAMAAQQGBAcAAQQJBAkAAQQNBBEAAQQUBB0AAQQgBCEAAQQjBCMAAQQnBEAAAQRCBEIAAQREBEUAAQRHBEgAAQRKBFEAAQRTBGoAAQRsBH0AAQSBBIQAAQSIBJkAAQSdBLQAAQS4BLoAAQS8BMEAAQTDBMMAAQTFBNEAAQTUBNkAAQTcBN4AAQThBOEAAQTjBOMAAQTmBOcAAQTqBO8AAQT/BQIAAQUEBQQAAQUJBQkAAQULBQ0AAQUQBREAAQUiBSIAAQXlBeUAAQYQBhAAAQYhBiEAAQYpBikAAQYsBiwAAQY7BjsAAQZKBkoAAQZSBmYAAQZoBmgAAQZrBmsAAQZuBm4AAQZ3BngAAwZ5BnkAAQZ6BnwAAwaCBoMAAwaiBqYAAQcIByEAAQckByQAAQdDB1wAAQdfB18AAQd/B4MAAQeHB4cAAQeJB4kAAQeLB48AAQeSB5IAAQeUB5QAAQeYB5kAAQebB5sAAQepB6kAAQerB6wAAQeuB7AAAQezB7MAAQe5B7wAAQe/B78AAQfDB8wAAQfRB9EAAwfUB9QAAQfVB9UAAgffB98AAwfnB+cAAwfpB+kAAQftB+8AAQf2B/cAAwf9B/0AAQgECAQAAwgLCAsAAQgNCA0AAQgUCBQAAQgWCBYAAQgXCBcAAwgZCBoAAQggCCEAAQgjCCMAAQgpCCoAAQgtCC8AAQgzCDMAAQg4CDgAAQhCCEQAAQhGCEcAAQhLCEsAAQhPCE8AAwhbCFwAAwheCF4AAQhfCGAAAwhmCGYAAQhqCGsAAQhyCHIAAQh4CHgAAwh5CHkAAQh6CHoAAwh/CH8AAQiCCIIAAwiRCKAAAQikCKYAAQiqCKsAAQi1CLYAAQi7CLsAAQi/CL8AAQjACMAAAwjCCMIAAQjFCMUAAwjPCNAAAQjfCN8AAQjhCOEAAQj5CR4AAwkxCTMAAQk0CTQAAwk3CT0AAQk/CXgAAwl7CXsAAQmBCYcAAQmTCZMAAQmaCZoAAQm5CbwAAwm+CcEAAQnMCc0AAwnSCdYAAwnZCd0AAwngCeEAAQnoCegAAQnuCe8AAQnxCfIAAQAAADICXgADAAEECQAAAJAGEgADAAEECQABAAoGCAADAAEECQACAA4F+gADAAEECQADADAFygADAAEECQAEABoFsAADAAEECQAFADYFegADAAEECQAGABoFYAADAAEECQAHAFQFDAADAAEECQAIAAgFBAADAAEECQAJACAE5AADAAEECQALACAExAADAAEECQAMACAExAADAAEECQANASADpAADAAEECQAOADQDcAADAAEECQASAAoGCAADAAEECQEAABYDWgADAAEECQEBABwDPgADAAEECQECADoDBAADAAEECQEDAEYCvgADAAEECQEEABoCpAADAAEECQEFABICkgADAAEECQEGABACggADAAEECQEHABICcAADAAEECQEIACwCRAADAAEECQEJACQCIAADAAEECQEKADIB7gADAAEECQELAC4BwAADAAEECQEMABwBpAADAAEECQENACgBfAADAAEECQEOAB4BXgADAAEECQEPAAwBUgADAAEECQEQAAoBSAADAAEECQERAAgBQAADAAEECQESABYBKgADAAEECQETABQBFgADAAEECQEUACIA9AADAAEECQEVAAoA6gADAAEECQEWABgA0gADAAEECQEXAA4F+gADAAEECQEYAAwAxgADAAEECQEZAAwAugADAAEECQEaABoAoAADAAEECQEbABAAkAADAAEECQEcAB4AcgADAAEECQEdAAgAagADAAEECQEeABYAVAADAAEECQEfABIAQgADAAEECQEgACAAIgADAAEECQEhAAoAGAADAAEECQEiABgAAABCAGwAYQBjAGsAIABJAHQAYQBsAGkAYwBCAGwAYQBjAGsARQB4AHQAcgBhAEIAbwBsAGQAIABJAHQAYQBsAGkAYwBFAHgAdAByAGEAQgBvAGwAZABCAG8AbABkACAASQB0AGEAbABpAGMAQgBvAGwAZABTAGUAbQBpAEIAbwBsAGQAIABJAHQAYQBsAGkAYwBTAGUAbQBpAEIAbwBsAGQATQBlAGQAaQB1AG0AIABJAHQAYQBsAGkAYwBNAGUAZABpAHUAbQBJAHQAYQBsAGkAYwBMAGkAZwBoAHQAIABJAHQAYQBsAGkAYwBMAGkAZwBoAHQARQB4AHQAcgBhAEwAaQBnAGgAdAAgAEkAdABhAGwAaQBjAEUAeAB0AHIAYQBMAGkAZwBoAHQAVABoAGkAbgAgAEkAdABhAGwAaQBjAFQAaABpAG4AUwBsAGEAbgB0AFcAZQBpAGcAaAB0AFMAaQBuAGcAbABlAC0AcwB0AG8AcgBlAHkAIABhAEMAYQBwAHQAaQB0AGEAbAAgAEcAIAB3AGkAdABoACAAcwBwAHUAcgBGAGwAYQB0AC0AdABvAHAAIAB0AGgAcgBlAGUAVQBwAHAAZQByAC0AYwBhAHMAZQAgAGkAIAB3AGkAdABoACAAcwBlAHIAaQBmAEEAbAB0AGUAcgBuAGEAdABlACAARwBlAHIAbQBhAG4AIABkAG8AdQBiAGwAZQAgAHMAcgAgAHcAaQB0AGgAIABjAHUAcgB2AGUAZAAgAHQAYQBpAGwATABvAHcAZQByAC0AYwBhAHMAZQAgAEwAIAB3AGkAdABoACAAdABhAGkAbABPAHAAZQBuACAAbgBpAG4AZQBPAHAAZQBuACAAcwBpAHgATwBwAGUAbgAgAGYAbwB1AHIAQQBsAHQAZQByAG4AYQB0AGUAIABvAG4AZQBEAGkAcwBhAG0AYgBpAGcAdQBhAHQAaQBvAG4AIAB3AGkAdABoAG8AdQB0ACAAcwBsAGEAcwBoAGUAZAAgAHoAZQByAG8AcgAgAGMAdQByAHYAZQBzACAAaQBuAHQAbwAgAHIAbwB1AG4AZAAgAG4AZQBpAGcAaABiAG8AcgBzAEQAaQBzAGEAbQBiAGkAZwB1AGEAdABpAG8AbgBPAHAAZQBuACAAZABpAGcAaQB0AHMAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4AIABUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAGEAdgBhAGkAbABhAGIAbABlACAAdwBpAHQAaAAgAGEAIABGAEEAUQAgAGEAdAA6ACAAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAGgAdAB0AHAAcwA6AC8ALwByAHMAbQBzAC4AbQBlAC8AUgBhAHMAbQB1AHMAIABBAG4AZABlAHIAcwBzAG8AbgByAHMAbQBzAEkAbgB0AGUAcgAgAFUASQAgAGEAbgBkACAASQBuAHQAZQByACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAAcgBzAG0AcwAuAEkAbgB0AGUAcgAtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADMALgAwADEAOQA7AGcAaQB0AC0AMABhADUAMQAwADYAZQAwAGIASQBuAHQAZQByACAAUgBlAGcAdQBsAGEAcgAzAC4AMAAxADkAOwBSAFMATQBTADsASQBuAHQAZQByAC0AUgBlAGcAdQBsAGEAcgBSAGUAZwB1AGwAYQByAEkAbgB0AGUAcgBDAG8AcAB5AHIAaQBnAGgAdAAgADIAMAAyADAAIABUAGgAZQAgAEkAbgB0AGUAcgAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBzACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAHIAcwBtAHMALwBpAG4AdABlAHIAKQrwAPgAAAAAB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwADQHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcP7IB3D/MAdw/0QHcP8UB3D/5Adw/9gHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3AASAdwAEgHcABIB3D+yAdw/zAHcP9EB3D/FAdw/+QHcP/YB3AASAdwAEgK5ABICuQASArkAEgK5ABIBygA+AcoAPgHKAD4BygA+AfEAFgI1ACIBygA+AcoAPgIAACoCHwAqAgAAKgIAACoCAAAqAgAAKgIAACoCAAAqAgAAKgIAACYCAAAqAfoAPgJpACIB+gA+AfoAPgH6AD4B+gA+AfoAPgH6AD4B+j/vA3cAPgN3AD4BpQA+AaUAPgGlAD4BpQA+AaUAPgGlAD4BpQA+AaUAPgGlAD4BpQA+AaUAOAGlAD4BpQA+AaUAPgGlAD4BpQA+AaUAPgGlAD4BpQA+AaUAPgGlAD4BpQA+AaU/9wGlAD4BpQA+AaUAPgGlAD4BpQAuAaUAPgHmABkB/gAZAfkAGQKIABkCbgAZAmkAGQJ1ABkCHQAZAgkAPQGlAD4BpQA+AaUAPgGlAD4BnQA+AZ0/9AGdAD4BnQAsAgsAKgILACoCIAAqAgsAKgILACoCCwAqAgsAKgILACoCCwAqAgsAKgIQACoCEAAqAiAAKgIQACoCEAAqAhAAKgIQACoCEAAqAhAAKgIQACoCCQA+AgkAPgIJAD4CCQA+AgkAPgIJAD4CCQA+AgkAPgIjACICCQA+AhwAPgIiAD4CtgA+AxAAPgIJAD4CXwAyAncAMgJyADIDAQAyAucAMgLiADIC7gAyAroAMgK9ADIClgAyAoIAVgIJAD4CXgAZAnIAMgMBADIC5wAyAuIAMgLuADICugAyAr0AMgIJAD4AugA+ALo/7QC6P+0Auj/vALo/9gC6P/YAugA+ALo/8QE4ACEAuj/oALo/9gC6AAYAugAzALo/8QC6P70Auj/1ALoAPgC6ADMAtgA2ALoAPgDWAAQAuj/tARwAMgEXADIBpgAyAYwAMgGHADIBkwAyAV8AMgFiADIAuj/2ALo/6AE7ADIBJwBWALoAPgC6P+0BOAAiATgAIgE4ACIBOAAiATgAIgE4ACIBOAAiATgAIgE4ACEBOAAiATgAIgE4ACIBOAAiATgAIgE4P/wBOAAiATgAIgE4ACIBpgAiAaEAIgIwACICFgAiAhEAIgIdACIB6QAiAewAIgE4ACIBOAAiAcUAIgGxAEYBOAAiATgAIgF+AB0BfgAdAX4AHQF+AB0BfgAdAcsAPgHLAD4BywA+AcsAPgHLAD4BywA+Ag0ABgHkAD4B2QA+AcsAPgGMAD4BjAA+AYwAPgGMAD4BjAA+AYw/6AGMAD4BjAA+AYwADwGMP+8CMwA+AnIAPgJyAD4CcgA+AnIAPgJyAD4CcgA+AnIAPgJyAD4CEgA+AhIAPgISAD4CEgA+AhIAPgISAD4CEgA+AhIAPgISAD4CEgA+AhU/9wISAD4CEgA+AhIAPgISAD4CEgA+AhIAPgISAD4CEgA+AhIAPgKvAD4CGAAqAhgAKgIYACoCGAAqAiEAKgIYACoCGAAqAhgAKgIYACoCGAAqAhgAKgIYACoCGAAqAhgAKgIYACoCGAAqAhgAKgIYACoCGAAqAhgAKgIYACoCGAAqAhgAKgIYACoCGAAqAhgAKgIYACoCGAAqAhgAKgIYACoCGAAqAiEAKgIhACoCIQAqAiEAKgIhACoCGAAqAhgAKgImP/wCPj/8AlYAGQLIP/wCpD/yAos//AKTP/wCXT/8AhgAKgIrACACGAAqAhgAKgIYACoCGAAqAhgAKgKfACoBvwA+Ab8APgG/AD4BvwA+AioAIgG/AD4CFgAhAhgAKgHCAD4BwgA+AcIAPgHCAD4BwgA+AcIAPgHCAD4BwgA+AcIAPgHCAD4BwgA+AeEAPgHIAAgBwQAoAcEAKAHBACgBwQAoAcEAKAHBACgBwQAoAcEAKAHBACgBwQAoAcEAKAHBACgBwQAoAeAAPgHEACIBxAAiAcQAIgHEACIBxAAiAcQAIgHEACIBxAAiAeAAIgHEACIBxAAiAcQAIgIKAD4CYQA+AgoAPgIKAD4CCgA+AgoAPgIKAD4CCgA+AgoAPgIKAD4CCgA+AgoAPgIKAD4CCgA+AgoAPgIKAD4CCgA+AgoAPgIKAD4CCgA+AgoAPgIKAD4CCgA+AgoAPgIKAD4CCgA+AmEAPgJhAD4CYQA+AmEAPgJhAD4CCj/+AdwAEgHcABIB3AASApwADwKcAA8CnAAPApwADwKcAA8CnAAPApwADwHEABMBxAATAcQAEwHEABMBxAATAcQAEwHUABIB8QATAdQAEgHUABIB1AASAdQAEgHUABIB1AASAdQAEgHUABIB1AASAdYAAgHUABICPwASAdQAEgI+ABMCqQATAs4AEgKdABIB1AASAdQAEgJOABMCRwAbAdQAEgG4ACoBuAAqAbgAKgG4ACoBuAAqAbgAKgG4ACoBuAAqAbgAKgG4ACoBuAAqAY0AJAGNACQBjQAkAY0AJAGNACQBjQAkAY0AJAGNACQBjQAkAY0AJAGNACQBjQAkAY0/7AGNACQBjQAkAY0AJAGNACQBjQAkAY0AJAGNACQBjQAkAY0AJAGNACQBjQAkAY0AJAGNACQBjQAkAY0AJAGNACQBjQAkAY0AJAGNACQBjQA2AY0AJAGNACQBjQAkAosAJAKLACQCiwAkAosAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAbUAJAG1P/YBtQAkAbUAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAbUAJAG1ACQBtQA+AbU/7gG1AD4BrQA2AbUAPgG1AD4BtQA+AYkAJAGJACQBrgAkAYk/+wGJACQBiQAkAYkAJAGJACQBiQAkAYkAJAGJACQBiQAkAbUAJAG1ACQBrQAkAbEAJAG1ACQB+gAkAdyAJAG1ACQBtQAkAbUAJAG1ACQBtQAkAukAJALpACQC6QAkAx0AJAKhACQBtQAkAZoAJAGaACQBmgAkAZoAJAGaACQBmgAkAZoAJAGaACQBmgAkAZoAJAGaACQBmgAkAZoAJAGaACQBmgAkAZoAJAGaACQBmgAkAZoAJAGaACQBmgAkAZoAJAGaACQBmj/tAZoAJAGaACQBmgAkAZoAJAGaACQBmgAkAZoAJAGaACQA/gBQAP4AEgDtABIA/gBQAP4AEgJHABIBrQAkAbAAJAGtACQBrQAkAa0AJAGtACQBrQAkAa0AJAGtACQBrQAkAaAANgGgADYBoD/mAaA/5gGcADYBnAA2ApoANgGgADYB0wAeAd8AHgGgP+YBoD/oAaA/6AGgACoBoAA2AaA/5AGgADYBoAA2AaAANgCnACoApwA2AKc/5ACnP+QAxD/oAKc/7QCnP+0Apz/mAKc/7QCnADYApz/oAKc/3wCnP+0Apz/7AKc/+wCnP+gApz+0AKc/7ACnADYApwAqAKcAKgCnP/cApz/lAKc/5QCnP+UApwAqAKc/5AFOACoApz/3APQ/9wD0P/cApz/nAKc/5wCnP/cApz/3AU4ANgF/ADYBdwA2AX8ANgF/P+gBfwA2AX8ANgF/ADYBfwAKAKcANgCnP/8Apz/lgNY/8IC8ADYBJwAQAPE/6ADeADYApwA2AKcAGQDWgDYApwApgKc/3gCnP96Apz/ngLYANgC2P/8Atj/mALY/2QEnABAA3gA2ALYANgC2AC6A1oA2ALYANgC2P94Atj/0ALY//QC6AD4CZAA2AmQANgJkADYCZAA2AmQANgJkADYCZAA2AZwANgGcADYBmQA2AZwANgIaADYBqD/3AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AkMANgGkACQBpAAkAaQAJAGkACQBpQAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkP/EBpAAkAaQAJAGkACQBpQAkAaUAJAGlACQBpQAkAaUAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkAaQAJAGkACQBpAAkArkAJAMeACQBrQA2Aa0ANgGtADYBrQA2Aa0ANgGtADYBrQAkAcwAJAHCACQCJQAqAQYANgEGADYBBj/mAQYAEAETABAA0wASANcANgEGADYBBgA2AQYAGIEGACUBBj/xAQYAKQEGADYBBgApAQYAHAEGP94BDgA2AQ4ANgEOP+YBDgA2AQ4ANgEOABiBDgAlAQ4/8QEOACkBDgA2AQ4AKQEOABwBDj/eAXAAJQFwACUBcAAlAXAAJQFwACUBcAAlAXAAJQFwACUBcAAlAXAAJQFwACUBcAAlAXAAJQFwACUBcAAjAa0APgG8AD4BAAAWAQIAFgEEABYBVQAWAj4AFgEAABwBAAAWAQAAFgEAABYBAAAWAQAAFgEAABYBAAAWAQAAFgEAP/4BmQA2AZkANgGZADYBtgA2AbYANgGxAAABmQA2AZkANgGZADYBmQA2AZkANgGZADYBmQA2AZkANgGZADYBmQA2AZkANgGZADYBmQA2AZkALQGZADYBmQA2AZkANgGZADYBmQA2AZkANgGZADYBmQA2AbYANgG2ADYBtgA2AbYANgG2ADYBiAAYAYgAGAGIABgBiAAYAjwAGAI8ABgCPAAYAjwAGAI8ABgCPAAYAjwAGAI8ABgCPAAYAXwAHgF8AB4BfAAeAXwAHgGmAB4BiAAYAYgAGAG6gBgBiAAYAYgAGAGIABgBiAAYAYgAGAGIABgBiAAYAYgAGAGIABgBiAAYAYgAGAGIABgBiAAYAYgAGAGIABgBiAAYAbcAEgG3ABIBtwASAYgAGAF9ACsBfQArAXwAKAF7ACgBpAArAX0AKwF9ACsBfQArAX0AKwF9ACsBfQArAbEAKwG8ADoBlQA+AdwAEgIYACoBfAAcAfwAPwG8AC4CEAAkAiQAPgIYACoCPQAWAho/8gIyP/ICSgAPArw/8gKiP/ICnT/yAqk/8gJ1P/ICeD/yAlE/8gIyP/ICSgAPArw/8gKiP/ICnT/yAqk/8gJ1P/ICeD/yAhgAKgIYACoB0gAgAhE/+AHSACABvAAHAdAAPgGVAD4BlT/vAhEAEgKcABMCnAATAcAANAHHAD4BzwA+Ad4APgH2ABICGAAqAfoAPgG3ABICLQAqAhEAPgJ7ACIB9wBDAfcAQwH8AEMB9wA+AnoAIgKeAD4CsgA+AjwAIgJWAD4BzAA+AvoADgMbAD4B2AAqAsgAPgHYACsBtgA+AvwAKwHUACoCPAA5AjwALAHnACQBugAtAe0AEgI5ACIBmAAkAa0ANgHDACQBwwAkAcMAJAHDACQBwwAkAcMAJAHDACQBwwAkAcMAJAHDACQBwwAkAcMAJAHDACQBwwAkAcMAJAHDACQBwwAkAcMAJAHDACQBwwAkAcMAJAHDACQBwwAkAcMAJAHDACQBwwAkAaEANgF4ABgBfAAYAX8AJAF/ACQBjAAkAX8AJAGVACQBjAAgAfwAJAF/ACQBfwAkAX8AJAF/ACQBfwAkAX8AJAF/ACQBcAAiAZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AXwAHwC7ADQAuz/FALsANAC7P+EAuwAwALsAJAC7P+UAuz/iALsABAC7P/EAuz/4ALs/7wC7P/0Auz/qALs/3AC7P9oAuz/WALs/2gGcABgBfAAtAbwAGQGSADIBkgAyAZIAMgGSP+EBewAkAbwAKQFMAAoBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYBnAA2AZwANgGcADYCAwAkAewAJAIOADYCOwAlAjsAJQI7ACUCOwAlAjsAJQI7ACUCOwAlAjsAJQI7ACUCOwAlAjsAJQI7ACUCOwAlAjsAJQI7ACUCOwAlAjsAJQI7ACUCOwAlAjsAJQI7ACUCOwAlAjsAJQI7ACUBowAYAZ8AJAGLADYBQwA2AUQANgFDP+ABtwANAkYAHgJGAB4BXAAeAaQANgHOADYBegA2AZoANgGdADYBmAA2Ae4AIAGfABQByQAUAcQAFAIQADYCOgA2AZoANgG+ADYB+gA2AZoANgHEADYBmgA2AXgAIAHfACQBfAAeAXwAHgG/ADYBmgA2AZQANgG5ADYBlAA2Aj8ANgJiADYBhgA2Ac0AEgIQADYBmgAHAZoABwKKACACeQA2AX0AJAI8ABoBiwAdAXwANgKJADYBfAALAbwAJQH4ACACAQASAboALQGpABgBwQAoAYkAJAGCAAoBvAAsARAACgGfACIB6wAaAdQAEgF8ABQBxAAiAxIAPgH+ACMB8gASApwADwHHACwB3AASAbsAJgIeABACCwAqAgAAKgIAACoCAAAqAcQAIgN8ABgCWQA2AjcAPgH8ADQDEQA+AfwANAGdP+8BygA+AcoAPgG4ACoBRwArAaoANQGqADUBwAA0AcQAKQGsADYBpAAXAbcALQGSACIBsgAqwbcALQG4ACoBNwArAboALQHEACkBlAAogZQAKQHIADIByABrAcgARAHIADgByAApAcgAQwHIADUByAA9AcgANcHIADUByAAyAcgAbwHIADUByAArAcgAQoHIAEMBwgAkAMQANQGIADUAxAA1AikANQFlABwCygAcAikAHAFlACMBZQAcAWUAIwD/AEsA/wAhAP8AUwD/AFMA/wAYAP8AGAD/ABoA/wAYApMAIgD/AEsA/wAhAP8AUwD/ABgA/wAaAP8AGAKTACIBvAAMAf0AKQD7ABAA5gBaALsAQgD7ABABRAAyAUQAMgFgAAAByAAAAsAAAALAAAABjABYAYwAWAGMAGoBjAB4gaAAMgGgADYBjABgAUQAMgFgAAAByAAAAsAAAAGMAFgBjABYAYwAagGMAHiBoAAyAaAANgGMAGAAjAAiAIIACwCcAAsAnAAyARwAMgEMACIBDAALAQwACwCMAAoAmwAjAR0AIwGfACMCIQAjAJsAIwEdACMBnwAjAKgAMQEPADEAxQAvAMIANAJCADQBggA0AMIANADCADQAwgA0AMUALwDCACwAwgA0AMIANADCAC0AwgA0AMIANADCAC8A/AAvAPwALwF8AC8BfAAvAdAARwHQAEcB0ABHAdAARwHQAE4B0ABOAdAAQwHQAEgB0ABIAdAASAHQAEcB0AA5gdAAOUHQAEcB0ABHAdAARwHQAEcB0ABOAdAATgHQAEMB0ABIAdAASAHQAEgB0ABHAdAAOYHQADlBfAAvAT4//wG8ADQBfAAUAUoAHAFgACcBYAAnAdgAJAKEADnChAA5wdgAJAGsABwBpIAcAegAHAIEACABrgAgAbiAIAFAAC0BPAAvATwAJwB4AB4BHAAhAaYAJgGmAD4BhAAkAo8AJAG8ADgBvAAcAfwAQADEP+QBvAAaAeIAIAGAABwBCwAVASUAJQEOABUBJQAWARQAFQCvABABIwAWAR0AIQB4AB4AeT/2AQQAIQB3ACEBoQAhARwAIQEaABUBIQAhASEAFgC/ACEA/gAVALEADgEbACEBCwANAYUADQEDABABCwANAQMAHQE2ABsA3IAcASgAIQEvAB4BMwAaASQAIQErABsBEQAVAS0AGgErABwAsgAvALIAEgCyADOAsgAKATUALAE1ACwBNQA0AQsAFQElACUBDgAVASUAFgEUABUArwAQASMAFgEdACEAeAAeAHk/9gEEACEAdwAhAaEAIQEcACEBGgAVASEAIQEhABYAvwAhAP4AFQCxAA4BGwAhAQsADQGFAA0BAwAQAQsADQEDAB0BNgAbANyAHAEoACEBLwAeATMAGgEkACEBKwAbAREAFQEtABoBKwAcALIALwCyABIAsgAzgLIACgE1ACwBNQAsATUANAEaABcAxYAYAQ8AHQESABoBFgAXAQoAHQEPABcA9wASARMAFwEPABgAwT+UARoAFwDFgBgBDwAdARIAGgEWABcBCgAdAQ8AFwD3ABIBEwAXAQ8AGAEaACgBGgAoARkALgClACoApQAQARoAFwDFgBgBDwAdARIAGgEWABcBCgAdAQ8AFwD3ABIBEwAXAQ8AGAEaACgBGgAoARkALgClACoApQAQARoAFwDFgBgBDwAdARIAGgEWABcBCgAdAQ8AFwD3ABIBEwAXAQ8AGAKMABgCmIAYAm4AGAKcABoCsIAdAYwAFwJwABICkAAYArwAHQK+ABoCPAA7AuAAOwN9ADsC8AAVAuoAFQLpABUC2gAVArwAFQFeAIwBBAAhAV4AbgC8ADgBoABgAaAAYAFAADQBYAA1ATwAIwE8ACkBPAA3ATwANwCoACoA3AATANwAJYFAADQBfAAzALwAPAC8ACAAAAAlgAA/hAAAPlOAAD7VAAA+vgAAPrcAAD7DAAA+zgAAPsOAAD8XAAA+xAAAPssAAD7WAAA/DQAAPtQAAD96AAA+5QAAPwwAAD7MAAA+zgAAPwYAAD7zgAA+ogAAPtQAAD6UAAA+wQDGAAAAxgAAAIAAAADGAAABgAAAAwAAAAFgAAACwAAAAOsAAACwAAAAdQAAAcgAAADCAAAAgAAAAEAAAAAAAAAC/gA+AzgALQLdAC0BywA+AdwAEgIYACoBvAAvAqAARYOwAEWHYABFgqAARYOwAEWCoABYA7AAWAdgAFgCoABYA7AAWAKgAJWCoACLgqAAi4KgAJWDsABFhNAARYOwAEWE0ABFgqAAb4KgAHACoABwAySARYMkgEOCoABFg7AARYdgAEWCoABFg7AARYKgAFgDsABYB2AAWAKgAFgDsABYA7AARYTQAEWDsABFhNAARYJsAEwCbACJAsYAIwLGACMChAAiAoQAQgLGACMCxgAjAoQAIgKEAEICxgAQAoQAOcKEADnChABCAoQAQgKEAEIChABCAoQAQgLkACIC5AAiAuQAIgLkACIC8AA9AvAAPQLQADQC0AA0AtAANALgAEAC4ABAAtAAQALQAEAC0ABAAsEAVQIwAEsCMABLAjAAIwLQAEAC0ABAAqAAUAKgAFACoABQA1gAO4NYAEAC2wA+AmAALgK1gEWCtYBFgrWARgK1gEWCtYBGAkgARgLIAEACyABAAakAQAGpAEAD0gAIA9IAGQAAPwEAAD8SA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAIA9IACAPSAAgD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQPSABkD0gAZA9IAGQHMAD4CPAAsAfcAQwH3AEMDsgA+Afo/7wG8ADwBvAApApwAPgH2ABIBvAApAgAAKgG8ACoB+j/vAeAAIgHgACIB4AAoAZU/7wG8ADEByQAxAjgAPgD8ACkB7QASAbwAEoG8ACE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AADQOAAA0FgAANB4AADQmAAA0LgAANDYAADQ8AAA0RAAANEoAADRSAAA0bQAANJYAADSxwAA0ucAANMVAADTNQAA040AANPmAADT/gAA1IcAANS3AADU1wAA1RAAANV6AADVkgAA1doAANYkAADWagAA1oIAANaaAADW3QAA1vUAANcqAADXQgAA14QAANfiAADX+gAA2B4AANhCAADY8QAA2W0AANmFAADZtgAA2eoAANo5AADaUQAA2q8AANrfAADbIwAA22wAANvDAADcGwAA3HIAANzJAADdRgAA3aUAAN4kAADesAAA3wkAAN9kAADfxwAA4EEAAODhAADhKQAA4bkAAOImAADicwAA4yMAAOOcAADj9gAA5HQAAOTfAADlRAAA5aMAAOY2AADmsAAA5uUAAOgBAADocAAA6MgAAOkvAADptwAA6f8AAOqqAADq+QAA65QAAOw6AADsywAA7YcAAO3LAADu+gAA74YAAO/fAADwOQAA8FEAAPDmAADw/gAA8YsAAPI/AADysAAA8tkAAPNAAADzWAAA8/EAAPQxAAD0qgAA9TIAAPXUAAD1+wAA9scAAPdpAAD37QAA+CMAAPiSAAD4zQAA+UwAAPnMAAD53AAA+e4AAPn+AAD6DgAA+h4AAPouAAD6PgAA+k4AAPpeAAD6bgAA+n4AAPqQAAD6oAAA+rAAAPrAAAD60AAA+5cAAPvXAAD77wAA/C4AAPxGAAD82QAA/PEAAP0JAAD9nAAA/jgAAP7UAAD/GwAA/2IAAP+IAAD/uwAA/+EAAQATAAEAmwABASQAAQJMAAECXgABAnAAAQKCAAEClAABAqYAAQK4AAECygABAxoAAQPiAAEEAQABBBwAAQREAAEEYwABBH0AAQSNAAEEpwABBMEAAQTbAAEE6wABBSQAAQV8AAEFlgABBbEAAQX3AAEGPQABBlkAAQZzAAEGhQABBpcAAQapAAEGuwABBs0AAQbfAAEG8QABBwMAAQcVAAEHJwABB1MAAQeAAAEHkAABB6sAAQfDAAEH2wABCCcAAQg5AAEISwABCGgAAQiAAAEIoAABCMgAAQjkAAEI/AABCRwAAQk6AAEJUgABCYcAAQm2AAEJ1gABCe4AAQpAAAEKkwABCqMAAQr7AAELCwABCxsAAQsrAAELOwABC00AAQtfAAELbwABC6EAAQvRAAEL6QABDAEAAQwzAAEMaAABDKYAAQzkAAENDAABDUMAAQ1rAAENhQABDbUAAQ4TAAEOSQABDvEAAQ9LAAEPfQABD7IAAQ/EAAEP1gABD/4AARAQAAEQOQABEFMAARCEAAEQ4gABEPQAAREGAAERGAABEUEAARFZAAERggABEboAARH1AAESRgABElgAARMjAAEUGQABFQ8AARXCAAEWIAABFs8AARcwAAEXowABGCYAARitAAEZEQABGZQAARnxAAEaKwABGm8AARqzAAEa+AABG+kAARzpAAEdiAABHc8AAR33AAEeTwABHpMAAR8nAAEfcgABIAQAASBzAAEg0AABIT8AASGrAAEh8gABIoAAASLFAAEi/wABI1QAASObAAEjtgABJCEAASRlAAEkyQABJTgAASWqAAEl6gABJmUAASarAAEm7wABJxoAASddAAEnmgABJ+IAASgTAAEoawABKJIAASjsAAEpbgABKawAASoZAAEqogABKsoAASt1AAEr/wABLD8AASyAAAEsowABLMYAASzvAAEtCQABLTAAAS1CAAEtVAABLbEAAS3DAAEt1QABLecAAS35AAEuCwABLh0AAS4vAAEuQQABLlMAAS5lAAEudwABLtsAAS7tAAEu/wABLxEAAS+MAAEvngABL+EAAS/zAAEwBQABMBcAATApAAEwOwABME0AATBfAAEwcQABMIMAATCVAAEwpwABMLkAATDLAAEw3QABMO8AATEBAAExEwABMSUAATE3AAExSQABMVsAATGCAAEx1QABMfoAATJMAAEyygABMwcAATNzAAEz9QABNBsAATS8AAE1QgABNV8AATVxAAE1gwABNZUAATWnAAE1uQABNcsAATXdAAE17wABNgEAATYTAAE2JQABNjcAATZJAAE2WwABNm0AATZ/AAE2pgABNrgAATc3AAE3SQABN7YAATfIAAE38AABOAIAATgUAAE4PQABOFcAATh+AAE4uQABOPUAATkHAAE5GQABOSsAATk9AAE5TwABOWEAATlzAAE5hQABOZcAATmpAAE5yQABOekAAToJAAE6KQABOkkAATphAAE6gQABOqEAATrBAAE64QABO6cAATzAAAE+LgABPuoAAT8KAAE/KgABP0oAAT9qAAE/iQABP7oAAT/ZAAE/9gABQEIAAUCOAAFAuwABQQYAAUFR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AtICygLCAroCsgKqAqICmgKSAooCggJ6AnICagJiAloCUgJKAkICOgIyAioCIgIaAhQCDgIIAgIGwAACBV8GwAACBVMGwAACBWEGwAACBVUGwAADBV4FXgbAAAMFXgVRBsAAAwVeBV8GwAADBV4FUwbAAAMFXgVhBsAAAwVeBVUGwAADBVEFXgbAAAMFUQVRBsAAAwVRBV8GwAADBVEFUwbAAAMFUQVhBsAAAwVRBVUGwAADBV8FXgbAAAMFXwVRBsAAAwVfBV8GwAADBV8FUwbAAAMFXwVhBsAAAwVfBVUGwAADBVMFXgbAAAMFUwVRBsAAAwVTBV8GwAADBVMFUwbAAAMFUwVhBsAAAwVTBVUGwAADBWEFXgbAAAMFYQVRBsAAAwVhBV8GwAADBWEFUwbAAAMFYQVhBsAAAwVhBVUGwAADBVUFXgbAAAMFVQVRBsAAAwVVBV8GwAADBVUFUwbAAAMFVQVhBsAAAwVVBVUGwQAEBV4FXgVeBsEABAVeBV4FUQbBAAQFXgVeBV8GwQAEBV4FXgVTBsEABAVeBV4FYQbBAAQFXgVeBVUGwQAEBV4FUQVeBsEABAVeBVEFUQbBAAQFXgVRBV8GwQAEBV4FUQVTBsEABAVeBVEFYQbBAAQFXgVRBVUGwQAEBV4FXwVeBsEABAVeBV8FUQbBAAQFXgVfBV8GwQAEBV4FXwVTBsEABAVeBV8FYQbBAAQFXgVfBVUGwQAEBV4FUwVeBsEABAVeBVMFUQbBAAQFXgVTBV8GwQAEBV4FUwVTBsEABAVeBVMFYQbBAAQFXgVTBVUGwQAEBV4FYQVeBsEABAVeBWEFUQbBAAQFXgVhBV8GwQAEBV4FYQVTBsEABAVeBWEFYQbBAAQFXgVhBVUGwQAEBV4FVQVeBsEABAVeBVUFUQbBAAQFXgVVBV8GwQAEBV4FVQVTBsEABAVeBVUFYQbBAAQFXgVVBVUGwQAEBVEFXgVeBsEABAVRBV4FUQbBAAQFUQVeBV8GwQAEBVEFXgVTBsEABAVRBV4FYQbBAAQFUQVeBVUGwQAEBVEFUQVeBsEABAVRBVEFUQbBAAQFUQVRBV8GwQAEBVEFUQVTBsEABAVRBVEFYQbBAAQFUQVRBVUGwQAEBVEFXwVeBsEABAVRBV8FUQbBAAQFUQVfBV8GwQAEBVEFXwVTBsEABAVRBV8FYQbBAAQFUQVfBVUGwQAEBVEFUwVeBsEABAVRBVMFUQbBAAQFUQVTBV8GwQAEBVEFUwVTBsEABAVRBVMFYQbBAAQFUQVTBVUGwQAEBVEFYQVeBsEABAVRBWEFUQbBAAQFUQVhBV8GwQAEBVEFYQVTBsEABAVRBWEFYQbBAAQFUQVhBVUGwQAEBVEFVQVeBsEABAVRBVUFUQbBAAQFUQVVBV8GwQAEBVEFVQVTBsEABAVRBVUFYQbBAAQFUQVVBVUGwQAEBV8FXgVeBsEABAVfBV4FUQbBAAQFXwVeBV8GwQAEBV8FXgVTBsEABAVfBV4FYQbBAAQFXwVeBVUGwQAEBV8FUQVeBsEABAVfBVEFUQbBAAQFXwVRBV8GwQAEBV8FUQVTBsEABAVfBVEFYQbBAAQFXwVRBVUGwQAEBV8FXwVeBsEABAVfBV8FUQbBAAQFXwVfBV8GwQAEBV8FXwVTBsEABAVfBV8FYQbBAAQFXwVfBVUGwQAEBV8FUwVeBsEABAVfBVMFUQbBAAQFXwVTBV8GwQAEBV8FUwVTBsEABAVfBVMFYQbBAAQFXwVTBVUGwQAEBV8FYQVeBsEABAVfBWEFUQbBAAQFXwVhBV8GwQAEBV8FYQVTBsEABAVfBWEFYQbBAAQFXwVhBVUGwQAEBV8FVQVeBsEABAVfBVUFUQbBAAQFXwVVBV8GwQAEBV8FVQVTBsEABAVfBVUFYQbBAAQFXwVVBVUGwQAEBVMFXgVeBsEABAVTBV4FUQbBAAQFUwVeBV8GwQAEBVMFXgVTBsEABAVTBV4FYQbBAAQFUwVeBVUGwQAEBVMFUQVeBsEABAVTBVEFUQbBAAQFUwVRBV8GwQAEBVMFUQVTBsEABAVTBVEFYQbBAAQFUwVRBVUGwQAEBVMFXwVeBsEABAVTBV8FUQbBAAQFUwVfBV8GwQAEBVMFXwVTBsEABAVTBV8FYQbBAAQFUwVfBVUGwQAEBVMFUwVeBsEABAVTBVMFUQbBAAQFUwVTBV8GwQAEBVMFUwVTBsEABAVTBVMFYQbBAAQFUwVTBVUGwQAEBVMFYQVeBsEABAVTBWEFUQbBAAQFUwVhBV8GwQAEBVMFYQVTBsEABAVTBWEFYQbBAAQFUwVhBVUGwQAEBVMFVQVeBsEABAVTBVUFUQbBAAQFUwVVBV8GwQAEBVMFVQVTBsEABAVTBVUFYQbBAAQFUwVVBVUGwQAEBWEFXgVeBsEABAVhBV4FUQbBAAQFYQVeBV8GwQAEBWEFXgVTBsEABAVhBV4FYQbBAAQFYQVeBVUGwQAEBWEFUQVeBsEABAVhBVEFUQbBAAQFYQVRBV8GwQAEBWEFUQVTBsEABAVhBVEFYQbBAAQFYQVRBVUGwQAEBWEFXwVeBsEABAVhBV8FUQbBAAQFYQVfBV8GwQAEBWEFXwVTBsEABAVhBV8FYQbBAAQFYQVfBVUGwQAEBWEFUwVeBsEABAVhBVMFUQbBAAQFYQVTBV8GwQAEBWEFUwVTBsEABAVhBVMFYQbBAAQFYQVTBVUGwQAEBWEFYQVeBsEABAVhBWEFUQbBAAQFYQVhBV8GwQAEBWEFYQVTBsEABAVhBWEFYQbBAAQFYQVhBVUGwQAEBWEFVQVeBsEABAVhBVUFUQbBAAQFYQVVBV8GwQAEBWEFVQVTBsEABAVhBVUFYQbBAAQFYQVVBVUGwQAEBVUFXgVeBsEABAVVBV4FUQbBAAQFVQVeBV8GwQAEBVUFXgVTBsEABAVVBV4FYQbBAAQFVQVeBVUGwQAEBVUFUQVeBsEABAVVBVEFUQbBAAQFVQVRBV8GwQAEBVUFUQVTBsEABAVVBVEFYQbBAAQFVQVRBVUGwQAEBVUFXwVeBsEABAVVBV8FUQbBAAQFVQVfBV8GwQAEBVUFXwVTBsEABAVVBV8FYQbBAAQFVQVfBVUGwQAEBVUFUwVeBsEABAVVBVMFUQbBAAQFVQVTBV8GwQAEBVUFUwVTBsEABAVVBVMFYQbBAAQFVQVTBVUGwQAEBVUFYQVeBsEABAVVBWEFUQbBAAQFVQVhBV8GwQAEBVUFYQVTBsEABAVVBWEFYQbBAAQFVQVhBVUGwQAEBVUFVQVeBsEABAVVBVUFUQbBAAQFVQVVBV8GwQAEBVUFVQVTBsEABAVVBVUFYQbBAAQFVQVVBVUAJgGmAZwBkgGIAX4BdAFqAWABVgFMAUIBOAEuASQBGgEQAQYA/ADyAOgA3gDUAMoAwAC2AKwAogCaAJIAigCCAHoAcgBqAGIAWgBUAE4GqQACBVMGqQACBVUGqQADBVEFUQapAAMFUQVTBqkAAwVRBVUGqQADBVMFUQapAAMFUwVTBqkAAwVTBVUGqQADBVUFUQapAAMFVQVTBqkAAwVVBVUGqgAEBVEFUQVRBqoABAVRBVEFUwaqAAQFUQVRBVUGqgAEBVEFUwVRBqoABAVRBVMFUwaqAAQFUQVTBVUGqgAEBVEFVQVRBqoABAVRBVUFUwaqAAQFUQVVBVUGqgAEBVMFUQVRBqoABAVTBVEFUwaqAAQFUwVRBVUGqgAEBVMFUwVRBqoABAVTBVMFUwaqAAQFUwVTBVUGqgAEBVMFVQVRBqoABAVTBVUFUwaqAAQFUwVVBVUGqgAEBVUFUQVRBqoABAVVBVEFUwaqAAQFVQVRBVUGqgAEBVUFUwVRBqoABAVVBVMFUwaqAAQFVQVTBVUGqgAEBVUFVQVRBqoABAVVBVUFUwaqAAQFVQVVBVUAKwOiA5gDhAN6A2YDXANSA0gDPgM0AyoDIAMMAwIC7gLkAtACxgK8ArICqAKeApQCigJ2AmwCWAJOAjoCMAImAhwCEgIIAf4B9AHkAdwBzAHEAbQBrAEiACsDSgNAAywDIgMOAwQC+gLwAuYC3ALSAsgCtAKqApYCjAJ4Am4CZAJaAlACRgI8AjICHgIUAgAB9gHiAdgBzgHEAboBsAGmAZwBjAGEAXQBbAFcAVQBSAA4AvwC8gLoAt4C1ALKAsACtgKsAqICmAKOAoQCegJwAmYCXAJSAkgCPgI0AioCIAIWAgwCAgH4Ae4B5AHaAdABxgG8AbIBqAGeAZQBigGAAXYBbAFiAVgBTgFEATwBNAEsASQBHAEUAQwBBAD8AHgAcgbFAAIFnAauAAIFjwA4An4CdAJqAmACVgJMAkICOAIuAiQCGgIQAgYB/AHyAegB3gHUAcoBwAG2AawBogGYAY4BhAF6AXABZgFcAVIBSAE+ATQBKgEgARYBDAECAPgA7gDkANoA0ADGAL4AtgCuAKYAngCWAI4AhgB+AHgAcgbEAAIFnAatAAIFjwbFAAMFXgWcBsUAAwVRBZwGrgADBVEFjwbFAAMFXwWcBsUAAwVTBZwGrgADBVMFjwbFAAMFYQWcBsUAAwVVBZwGrgADBVUFjwbGAAQFXgVeBZwGxgAEBV4FUQWcBsYABAVeBV8FnAbGAAQFXgVTBZwGxgAEBV4FYQWcBsYABAVeBVUFnAbGAAQFUQVeBZwGxgAEBVEFUQWcBq8ABAVRBVEFjwbGAAQFUQVfBZwGxgAEBVEFUwWcBq8ABAVRBVMFjwbGAAQFUQVhBZwGxgAEBVEFVQWcBq8ABAVRBVUFjwbGAAQFXwVeBZwGxgAEBV8FUQWcBsYABAVfBV8FnAbGAAQFXwVTBZwGxgAEBV8FYQWcBsYABAVfBVUFnAbGAAQFUwVeBZwGxgAEBVMFUQWcBq8ABAVTBVEFjwbGAAQFUwVfBZwGxgAEBVMFUwWcBq8ABAVTBVMFjwbGAAQFUwVhBZwGxgAEBVMFVQWcBq8ABAVTBVUFjwbGAAQFYQVeBZwGxgAEBWEFUQWcBsYABAVhBV8FnAbGAAQFYQVTBZwGxgAEBWEFYQWcBsYABAVhBVUFnAbGAAQFVQVeBZwGxgAEBVUFUQWcBq8ABAVVBVEFjwbGAAQFVQVfBZwGxgAEBVUFUwWcBq8ABAVVBVMFjwbGAAQFVQVhBZwGxgAEBVUFVQWcBq8ABAVVBVUFjwABAAgFUQVTBVUFXgVfBWEFjgWbAAEAAAABAAgAAgBiAC4FRAVFBUYFRwVIBUkFSgVeBV8FYAVhBWIFYwVkBWUFZgVnBYAFmwWcBZ0FngWfBaAFoQWiBaMFpAWlBaYFpwWuBr8GwAbBBsIGwwbEBsUGxgbHBsgGyQbKBssGzAACAAsFOwU9AAAFPwU/AAMFQQVDAAQFUQVRAAcFUwVVAAgFVwVcAAsFfwV/ABEFjgWaABIFrQWtAB8GqAaxACAGtga5ACoAAQAAAAEACAACACQADwYqBisGLAYtBi4GLwYwBjEGMgYzBjcGOAY2BjQGNQABAA8FDgUPBRAFEgUTBRQFFgUXBRgFGQU7BTwFkgWUBZUAAQAAAAEACAACACgAEQW8Bb0GOQY6BjsGPAY9Bj4GPwZABkEGQgZGBkcGRQZDBkQAAQARAqcC9wUOBQ8FEAUSBRMFFAUWBRcFGAUZBTsFPAWSBZQFlQABAAAAAQAIAAEAIgANAAYAAAABAAgAAwABAkoAAQAUAAEB+AABAAAAKwABAAEGkQABAAAAAQAIAAIALgAUBh8GIAYhBiIGIwYkBiUGJgYnBigGHwYgBiEGIgYjBiQGJQYmBicGKAACAAQFDgUQAAAFEgUUAAMFFgUZAAYGDgYXAAoABgAAAAIAJgAKAAMAAQAuAAEAEgAAAAEAAAApAAIAAQYOBhcAAAADAAEAEgABAbgAAAABAAAAKQACAAIGHwYzAAAGVwZXABUABgAAAAEACAADAAAAAQGOAAoBPAE8ATwBPAE8ATwBPAE8ATwBiAABAAAAJwAGAAAAAQAIAAMAAAABAWIACQEQARABEAEQARABEAEQARABXAABAAAAJQAGAAAAAQAIAAMAAAABATgACADmAOYA5gDmAOYA5gDmATIAAQAAACMABgAAAAEACAADAAAAAQEQAAcAvgC+AL4AvgC+AL4BCgABAAAAIQAGAAAAAQAIAAMAAAABAOoABgCYAJgAmACYAJgA5AABAAAAHwAGAAAAAQAIAAMAAAABAMYABQB0AHQAdAB0AMAAAQAAAB0ABgAAAAEACAADAAAAAQCkAAQAUgBSAFIAngABAAAAGwAGAAAAAQAIAAMAAAABAIQAAwAyADIAfgABAAAAGQAGAAAAAQAIAAMAAAABAGYAAgAUAGAAAQAAABcAAgACBjkGQgAABkgGUQAKAAEAAAABAAgAAgA6AAoGSAZJBkoGSwZMBk0GTgZPBlAGUQAGAAAAAQAIAAMAAAABABgAAQASAAEAAAAVAAEAAQYpAAIAAwUOBRAAAAUSBRQAAwUWBRkABgABAAAAAQAIAAECIgDcAAYAAAABAAgAAgIUAfgB8AH4AAIAAAAQABUBwgGkAYgBbAFSATgBIAEIAPIA3ADIALQAogCQAIAAcABiAFQASAA8ACwAAQABAAEAAQABAAEAAAATAAAAAQACAAEAAgAAAAIAAQACAAEAAAAAAAAAAQADAAEAAQACAAAAAwABAAEAAgABAAAAAAAAAAEABAABAAEAAQACAAAABAABAAEAAQACAAEAAAAAAAAAAQAFAAEAAQABAAEAAgAAAAUAAQABAAEAAQACAAEAAAAAAAAAAQAGAAEAAQABAAEAAQACAAAABgABAAEAAQABAAEAAgABAAAAAAAAAAEABwABAAEAAQABAAEAAQACAAAABwABAAEAAQABAAEAAQACAAEAAAAAAAAAAQAIAAEAAQABAAEAAQABAAEAAgAAAAgAAQABAAEAAQABAAEAAQACAAEAAAAAAAAAAQAJAAEAAQABAAEAAQABAAEAAQACAAAACQABAAEAAQABAAEAAQABAAEAAgABAAAAAAAAAAEACgABAAEAAQABAAEAAQABAAEAAQACAAAACgABAAEAAQABAAEAAQABAAEAAQACAAEAAAAAAAAAAQALAAEAAQABAAEAAQABAAEAAQABAAEAAgAAAAsAAQABAAEAAQAB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BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswHLActBy4HLwcwBzEHZwdoB2kHagdrB2wAAgAnAAIAAgAAAI0AlgABAMUA1gALANsA6AAdAUABQAArAY4BjgAsAfkCFAAtAhYCFwBJAhkCGQBLAtQC1gBMAtgC2ABPAtoC4QBQA0YDRwBYA0wDVQBaA2gDaABkA3IDcgBlA3sDewBmBUEFQwBnBU0FTQBqBVMFVQBrBVcFXQBuBXsFfAB1BYIFhgB3BY4FkQB8BZMFkwCABZYFmgCBBa0FrQCGBg4GFwCHBpEGkQCRBqgGsQCSBrYGuQCcByIHIwCgByUHJgCiBygHKACkBysHKwClB10HXgCmB2AHYQCoB2MHYwCqB2YHZgCrAAIAAAAAAAD+MADAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ8wAAAAEBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPTA9QD1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuA+8D8APxA/ID8wP0A/UD9gP3A/gD+QP6A/sD/AP9A/4D/wQABAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBA0EDgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhBCIEIwQkBCUEJgQnBCgEKQQqBCsELAQtBC4ELwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EUARRBFIEUwRUBFUEVgRXBFgEWQRaBFsEXARdBF4EXwRgBGEEYgRjBGQEZQRmBGcEaARpBGoEawRsBG0EbgRvBHAEcQRyBHMEdAR1BHYEdwR4BHkEegR7BHwEfQR+BH8EgASBBIIEgwSEBIUEhgSHBIgEiQSKBIsEjASNBI4EjwSQBJEEkgSTBJQElQSWBJcEmASZBJoEmwScBJ0EngSfBKAEoQSiBKMEpASlBKYEpwSoBKkEqgSrBKwErQSuBK8EsASxBLIEswS0BLUEtgS3BLgEuQS6BLsEvAS9BL4EvwTABMEEwgTDBMQExQTGBMcEyATJBMoEywTMBM0EzgTPBNAE0QTSBNME1ATVBNYE1wTYBNkE2gTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BPcE+AT5BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBQwFDQUOBQ8FEAURBRIFEwUUBRUFFgUXBRgFGQUaBRsFHAUdBR4FHwUgBSEFIgUjBSQFJQUmBScFKAUpBSoFKwUsBS0FLgUvBTAFMQUyBTMFNAU1BTYFNwU4BTkFOgU7BTwFPQU+BT8FQAVBBUIFQwVEBUUFRgVHBUgFSQVKBUsFTAVNBU4FTwVQBVEFUgVTBVQFVQVWBVcFWAVZBVoFWwVcBV0FXgVfBWAFYQViBWMFZAVlBWYFZwVoBWkFagVrBWwFbQVuBW8FcAVxBXIFcwV0BXUFdgV3BXgFeQV6BXsFfAV9BX4FfwWABYEFggWDBYQFhQWGBYcFiAWJBYoFiwWMBY0FjgWPBZAFkQWSBZMFlAWVBZYFlwWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFowWkBaUFpgWnBagFqQWqBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcFuAW5BboFuwW8Bb0FvgW/BcAFwQXCBcMFxAXFBcYFxwXIBckFygXLBcwFzQXOBc8F0AXRBdIF0wXUBdUF1gXXBdgF2QXaBdsF3AXdBd4F3wXgBeEF4gXjBeQF5QXmBecF6AXpBeoF6wXsBe0F7gXvBfAF8QXyBfMF9AX1BfYF9wX4BfkF+gX7BfwF/QX+Bf8GAAYBBgIGAwYEBgUGBgYHBggGCQYKBgsGDAYNBg4GDwYQBhEGEgYTBhQGFQYWBhcGGAYZBhoGGwYcBh0GHgYfBiAGIQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6BjsGPAY9Bj4GPwZABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBlMGVAZVBlYGVwZYBlkGWgZbBlwGXQZeBl8GYAZhBmIGYwZkBmUGZgZnBmgGaQZqBmsGbAZtBm4GbwZwBnEGcgZzBnQGdQZ2BncGeAZ5BnoGewZ8Bn0GfgZ/BoAGgQaCBoMGhAaFBoYGhwaIBokGigaLBowGjQaOBo8GkAaRBpIGkwaUBpUGlgaXBpgGmQaaBpsGnAadBp4GnwagBqEGogajBqQGpQamBqcGqAapBqoGqwasBq0GrgavBrAGsQayBrMGtAa1BrYGtwa4BrkGuga7BrwGvQa+Br8GwAbBBsIGwwbEBsUGxgbHBsgGyQbKBssGzAbNBs4GzwbQBtEG0gbTBtQG1QbWBtcG2AbZBtoG2wbcBt0G3gbfBuAG4QbiBuMG5AblBuYG5wboBukG6gbrBuwG7QbuBu8G8AbxBvIG8wb0BvUG9gb3BvgG+Qb6BvsG/Ab9Bv4G/wcABwEHAgcDBwQHBQcGBwcHCAcJBwoHCwcMBw0HDgcPBxAHEQcSBxMHFAcVBxYHFwcYBxkHGgcbBxwHHQceBx8HIAchByIHIwckByUHJgcnBygHKQcqBysHLActBy4HLwcwBzEHMgczBzQHNQc2BzcHOAc5BzoHOwc8Bz0HPgc/B0AHQQdCB0MHRAdFB0YHRwdIB0kHSgdLB0wHTQdOB08HUAdRB1IHUwdUB1UHVgdXB1gHWQdaB1sHXAddB14HXwdgB2EHYgdjB2QHZQdmB2cHaAdpB2oHawdsB20HbgdvB3AHcQdyB3MHdAd1B3YHdwd4B3kHegd7B3wHfQd+B38HgAeBB4IHgweEB4UHhgeHB4gHiQeKB4sHjAeNB44HjweQB5EHkgeTB5QHlQeWB5cHmAeZB5oHmwecB50HngefB6AHoQeiB6MHpAelB6YHpweoB6kHqgerB6wHrQeuB68HsAexB7IHswe0B7UHtge3B7gHuQe6B7sHvAe9B74HvwfAB8EHwgfDB8QHxQfGB8cHyAfJB8oHywfMB80HzgfPB9AH0QfSB9MH1AfVB9YH1wfYB9kH2gfbB9wH3QfeB98H4AfhB+IH4wfkB+UH5gfnB+gH6QfqB+sH7AftB+4H7wfwB/EH8gfzB/QH9Qf2B/cH+Af5B/oH+wf8B/0H/gf/CAAIAQgCCAMIBAgFCAYIBwgICAkICggLCAwIDQgOCA8IEAgRCBIIEwgUCBUIFggXCBgIGQgaCBsIHAgdCB4IHwggCCEIIggjCCQIJQgmCCcIKAgpCCoIKwgsCC0ILggvCDAIMQgyCDMINAg1CDYINwg4CDkIOgg7CDwIPQg+CD8IQAhBCEIIQwhECEUIRghHCEgISQhKCEsITAhNCE4ITwhQCFEIUghTCFQIVQhWCFcIWAhZCFoIWwhcCF0IXghfCGAIYQhiCGMIZAhlCGYIZwhoCGkIaghrCGwIbQhuCG8IcAhxCHIIcwh0CHUIdgh3CHgIeQh6CHsIfAh9CH4IfwiACIEIggiDCIQIhQiGCIcIiAiJCIoIiwiMCI0IjgiPCJAIkQiSCJMIlAiVCJYIlwiYCJkImgibCJwInQieCJ8IoAihCKIIowikCKUIpginCKgIqQiqCKsIrAitCK4IrwiwCLEIsgizCLQItQi2CLcIuAi5CLoIuwi8CL0Ivgi/CMAIwQjCCMMIxAjFCMYIxwjICMkIygjLCMwIzQjOCM8I0AjRCNII0wjUCNUI1gjXCNgI2QjaCNsI3AjdCN4I3wjgCOEI4gjjCOQI5QjmCOcI6AjpCOoI6wjsCO0I7gjvCPAI8QjyCPMI9Aj1CPYI9wj4CPkI+gj7CPwI/Qj+CP8JAAkBCQIJAwkECQUJBgkHCQgJCQkKCQsJDAkNCQ4JDwkQCREJEgkTCRQJFQkWCRcJGAkZCRoJGwkcCR0JHgkfCSAJIQkiCSMJJAklCSYJJwkoCSkJKgkrCSwJLQkuCS8JMAkxCTIJMwk0CTUJNgk3CTgJOQk6CTsJPAk9CT4JPwlACUEJQglDCUQJRQlGCUcJSAlJCUoJSwlMCU0JTglPCVAJUQlSCVMJVAlVCVYJVwlYCVkJWglbCVwJXQleCV8JYAlhCWIJYwlkCWUJZglnCWgJaQlqCWsJbAltCW4JbwlwCXEJcglzCXQJdQl2CXcJeAl5CXoJewl8CX0Jfgl/CYAJgQmCCYMJhAmFCYYJhwmICYkJigmLCYwJjQmOCY8JkAmRCZIJkwmUCZUJlgmXCZgJmQmaCZsJnAmdCZ4JnwmgCaEJogmjCaQJpQmmCacJqAmpCaoJqwmsCa0JrgmvCbAJsQmyCbMJtAm1CbYJtwm4CbkJugm7CbwJvQm+Cb8JwAnBCcIJwwnECcUJxgnHCcgJyQnKCcsJzAnNCc4JzwnQCdEJ0gnTCdQJ1QnWCdcJ2AnZCdoJ2wncCd0J3gnfCeAJ4QniCeMJ5AnlCeYJ5wnoCekJ6gnrCewJ7QnuCe8J8AnxCfIJ8wn0CfUJ9gn3CfgJ+Qn6CfsJ/An9Cf4J/woACgEKAgoDCgQKBQoGCgcKCAoJCgoKCwoMCg0KDgoPChAKEQoSChMKFAoVChYKFwoYChkKGgobChwKHQoeCh8KIAohCiIKIwokCiUKJgonCigKKQoqCisKLAotCi4KLwowCjEKMgozCjQKNQo2CjcKOAo5CjoKOwo8Cj0KPgo/CkAKQQpCCkMKRApFCkYKRwpICkkKSgpLCkwKTQpOCk8KUApRClIKUwpUClUKVgpXClgKWQpaClsKXApdCl4KXwpgCmEKYgpjCmQKZQpmCmcKaAppCmoKawpsCm0KbgpvCnAKcQpyCnMKdAp1CnYKdwp4CnkKegp7CnwKfQp+Cn8KgAqBCoIKgwqECoUKhgqHCogKiQqKCosKjAqNCo4KjwqQCpEKkgqTCpQKlQqWCpcKmAqZCpoKmwqcCp0KngqfCqAKoQqiCqMKpAqlCqYKpwqoCqkKqgqrCqwKrQquCq8KsAqxCrIKswq0CrUKtgq3CrgKuQq6CrsKvAq9Cr4KvwrACsEKwgrDCsQKxQrGCscKyArJCsoKywrMCs0KzgrPCtAK0QrSCtMK1ArVCtYK1wrYCtkK2grbCtwK3QreCt8K4ArhCuIK4wrkCuUK5grnCugK6QrqCusK7ArtCu4K7wrwCvEK8gd1bmkwMDQxB3VuaTAwQzQHdW5pMDBDMwd1bmkwMEMwB3VuaTAwQzEHdW5pMDBDMgd1bmkwMEM1B3VuaTAxRkEHdW5pRUUwMgd1bmkwMTAwB3VuaTAxMDIHdW5pMDEwNAd1bmkwMUNEB3VuaTAxREUHdW5pMDFFMAd1bmkwMjAwB3VuaTAyMDIHdW5pMDIyNgd1bmkxRTAwB3VuaTFFQTAHdW5pMUVBMgd1bmkxRUE0B3VuaTFFQTYHdW5pMUVBOAd1bmkxRUFBB3VuaTFFQUMHdW5pMUVBRQd1bmkxRUIwB3VuaTFFQjIHdW5pMUVCNAd1bmkxRUI2B3VuaTAzOTEHdW5pMDM4Ngd1bmkxRjA4B3VuaTFGMDkHdW5pMUYwQQd1bmkxRjBCB3VuaTFGMEMHdW5pMUYwRAd1bmkxRjBFB3VuaTFGMEYHdW5pMUZCOAd1bmkxRkI5B3VuaTFGQkEHdW5pMDIzQQd1bmkxRkJCB3VuaTA0MTAHdW5pMDREMAd1bmkwNEQyB3VuaTFGODgHdW5pMUY4OQd1bmkxRjhBB3VuaTFGOEIHdW5pMUY4Qwd1bmkxRjhEB3VuaTFGOEUHdW5pMUY4Rgd1bmkxRkJDB3VuaTAzOUIHdW5pMDBDNgd1bmkwMUUyB3VuaTAxRkMHdW5pMDRENAd1bmkwMDQyB3VuaTFFMDIHdW5pMUUwNAd1bmkxRTA2B3VuaTAyNDMHdW5pMDE4MQd1bmkwNDEyB3VuaTAzOTIHdW5pMDA0Mwd1bmkwMTg3B3VuaTAwQzcHdW5pMDEwNgd1bmkwMTA4B3VuaTAxMEEHdW5pMDEwQwd1bmkxRTA4B3VuaTAyM0IHdW5pMDE4Ngd1bmkwM0Y5B3VuaTAwNDQHdW5pMDE4QQd1bmkwMTBFB3VuaTFFMEEHdW5pMUUwQwd1bmkxRTBFB3VuaTFFMTAHdW5pMUUxMgd1bmkwMTg5B3VuaTAxRjIHdW5pMDFDNQd1bmkwMDQ1B3VuaTAwQzgHdW5pMDBDOQd1bmkwMENBB3VuaTAwQ0IHdW5pMDExMgd1bmkwMTE0B3VuaTAxMTYHdW5pMDExOAd1bmkwMTFBB3VuaTAyMDQHdW5pMDIwNgd1bmkwMjI4B3VuaTFFMTQHdW5pMUUxNgd1bmkxRTE4B3VuaTFFMUEHdW5pMUUxQwd1bmkxRUI4B3VuaTFFQkEHdW5pMUVCQwd1bmkxRUJFB3VuaTFFQzAHdW5pMUVDMgd1bmkxRUM0B3VuaTFFQzYHdW5pMDI0Ngd1bmkwMThFB3VuaTAzOTUHdW5pMDM4OAd1bmkxRjE4B3VuaTFGMTkHdW5pMUYxQQd1bmkxRjFCB3VuaTFGMUMHdW5pMUYxRAd1bmkxRkM4B3VuaTFGQzkHdW5pMDQxNQd1bmkwNDAwB3VuaTA0MDEHdW5pMDRENgd1bmkwMDQ2B3VuaTAxOTEHdW5pMUUxRQd1bmkyMTMyB3VuaTAwNDcHdW5pMDFFNAd1bmkwMTkzB3VuaTAxMUMHdW5pMDExRQd1bmkwMTIwB3VuaTAxMjIHdW5pMDFFNgd1bmkwMUY0B3VuaTFFMjAHdW5pRTAwMgd1bmlFMDAzB3VuaUUwMDQHdW5pRTAwNQd1bmlFMDA2B3VuaUUwMDcHdW5pRTAwOAd1bmlFMDA5B3VuaUUwMEEHdW5pRTAwQgd1bmkwMDQ4B3VuaTFFMjgHdW5pMDEyNAd1bmkwMjFFB3VuaTFFMjIHdW5pMUUyNAd1bmkxRTI2B3VuaTFFMkEHdW5pMDEyNgd1bmkwNEM3B3VuaTA0QTIHdW5pMDRDOQd1bmkwNEE0B3VuaTAxRjYHdW5pMDM5Nwd1bmkwMzg5B3VuaTFGMjgHdW5pMUYyOQd1bmkxRjJBB3VuaTFGMkIHdW5pMUYyQwd1bmkxRjJEB3VuaTFGMkUHdW5pMUYyRgd1bmkxRkNBB3VuaTFGQ0IHdW5pMDQxRAd1bmkxRjk4B3VuaTFGOTkHdW5pMUY5QQd1bmkxRjlCB3VuaTFGOUMHdW5pMUY5RAd1bmkxRjlFB3VuaTFGOUYHdW5pMUZDQwd1bmkwMDQ5B3VuaTAwQ0YHdW5pMUUyRQd1bmkwMTk3B3VuaTFFMkMHdW5pMDBDQwd1bmkwMENEB3VuaTAwQ0UHdW5pMDEyOAd1bmkwMTJBB3VuaTAxMkMHdW5pMDEyRQd1bmkwMTMwB3VuaTAxQ0YHdW5pMDIwOAd1bmkwMjBBB3VuaTFFQzgHdW5pMUVDQQd1bmkwMTk2B3VuaTAzOTkHdW5pMDM4QQd1bmkwM0FBB3VuaTFGMzgHdW5pMUYzOQd1bmkxRjNBB3VuaTFGM0IHdW5pMUYzQwd1bmkxRjNEB3VuaTFGM0UHdW5pMUYzRgd1bmkxRkQ4B3VuaTFGRDkHdW5pMUZEQQd1bmkxRkRCB3VuaTA0MDYHdW5pMDQwNwd1bmlFMDBDB3VuaUUwMEQHdW5pRTAwRQd1bmlFMDBGB3VuaUUwMTAHdW5pRTAxMQd1bmlFMDEyB3VuaUUwMTMHdW5pRTAxNAd1bmlFMDE1B3VuaUUwMTYHdW5pRTAxNwd1bmlFMDE4B3VuaUUwMTkHdW5pRTAxQQd1bmlFMDFCB3VuaUUwMUMHdW5pRTAxRAd1bmlFMDFFB3VuaUUwMUYHdW5pRTAyMAd1bmlFMDIxB3VuaUUwMjIHdW5pRTAyMwd1bmlFMDI0B3VuaUUwMjUHdW5pRTAyNgd1bmlFMDI3B3VuaUUwMjgHdW5pRTAyOQd1bmlFMDJBB3VuaUUwMkIHdW5pMDA0QQd1bmkwMTM0B3VuaTAyNDgHdW5pMDM3Rgd1bmkwNDA4B3VuaTAwNEIHdW5pMDEzNgd1bmkwMUU4B3VuaTFFMzAHdW5pMUUzMgd1bmkxRTM0B3VuaTA0QTAHdW5pMDQ5QQd1bmkwMTk4B3VuaTAzOUEHdW5pMDA0Qwd1bmkwMTM5B3VuaTAxM0IHdW5pMDEzRAd1bmkxRTM2B3VuaTFFMzgHdW5pMUUzQQd1bmkxRTNDB3VuaTAxNDEHdW5pMDIzRAd1bmkwMUM4B3VuaTAwNEQHdW5pMUUzRQd1bmkxRTQwB3VuaTFFNDIHdW5pMDRDRAd1bmkwMzlDB3VuaTAzRkEHdW5pMDQxQwd1bmkwMDRFB3VuaTAwRDEHdW5pMDE0Mwd1bmkwMTQ1B3VuaTAxNDcHdW5pMDFGOAd1bmkxRTQ0B3VuaTFFNDYHdW5pMUU0OAd1bmkxRTRBB3VuaTAxOUQHdW5pMDE0QQd1bmkwNDE4B3VuaTA0MEQHdW5pMDQxOQd1bmkwNEUyB3VuaTA0RTQHdW5pMDQ4QQd1bmkwMzc2B3VuaTAzOUQHdW5pMDFDQgd1bmkwMDRGB3VuaTAwRDYHdW5pMDBENQd1bmkwMEQ4B3VuaTAxQTAHdW5pMDBEMgd1bmkwMEQzB3VuaTAwRDQHdW5pMDE0Qwd1bmkwMTRFB3VuaTAxNTAHdW5pMDFEMQd1bmkwMUVBB3VuaTAxRUMHdW5pMDIwQwd1bmkwMjBFB3VuaTAyMkEHdW5pMDIyQwd1bmkwMjJFB3VuaTAyMzAHdW5pMUU0Qwd1bmkxRTRFB3VuaTFFNTAHdW5pMUU1Mgd1bmkxRUNDB3VuaTFFQ0UHdW5pMUVEMAd1bmkxRUQyB3VuaTFFRDQHdW5pMUVENgd1bmkxRUQ4B3VuaTFFREEHdW5pMUVEQwd1bmkxRURFB3VuaTFFRTAHdW5pMUVFMgd1bmkwMUZFB3VuaTAzOUYHdW5pMDM4Qwd1bmkxRjQ4B3VuaTFGNDkHdW5pMUY0QQd1bmkxRjRCB3VuaTFGNEMHdW5pMUY0RAd1bmkxRkY4B3VuaTAzRjQHdW5pMUZGOQd1bmkwNDFFB3VuaTA0RTYHdW5pMDE5Rgd1bmkwNEU4B3VuaTA0RUEHdW5pMDE1Mgd1bmkwMDUwB3VuaTFFNTQHdW5pMUU1Ngd1bmkwNDhFB3VuaTAxQTQHdW5pMDNBMQd1bmkxRkVDB3VuaTAwNTEHdW5pMDA1Mgd1bmkwMTU0B3VuaTAxNTYHdW5pMDE1OAd1bmkwMjEwB3VuaTAyMTIHdW5pMUU1OAd1bmkxRTVBB3VuaTFFNUMHdW5pMUU1RQd1bmkyMTFGB3VuaTIxMUUHdW5pMDI0Qwd1bmkwMDUzB3VuaTAxNUEHdW5pMDE1Qwd1bmkwMTVFB3VuaTAxNjAHdW5pMDIxOAd1bmkxRTYwB3VuaTFFNjIHdW5pMUU2NAd1bmkxRTY2B3VuaTFFNjgHdW5pMDQwNQd1bmkwMUE3B3VuaTFFOUUHdW5pMDA1NAd1bmkwMTYyB3VuaTAxNjQHdW5pMDIxQQd1bmkxRTZBB3VuaTFFNkMHdW5pMUU2RQd1bmkxRTcwB3VuaTAxQUMHdW5pMDFBRQd1bmkwMjNFB3VuaTAzQTQHdW5pMDA1NQd1bmkwMUFGB3VuaTAwRDkHdW5pMDBEQQd1bmkwMERCB3VuaTAwREMHdW5pMDE2OAd1bmkwMTZBB3VuaTAxNkMHdW5pMDE2RQd1bmkwMTcwB3VuaTAxNzIHdW5pMDFEMwd1bmkwMUQ1B3VuaTAxRDcHdW5pMDFEOQd1bmkwMURCB3VuaTAyMTQHdW5pMDIxNgd1bmkxRTcyB3VuaTFFNzQHdW5pMUU3Ngd1bmkxRTc4B3VuaTFFN0EHdW5pMUVFNAd1bmkxRUU2B3VuaTFFRTgHdW5pMUVFQQd1bmkxRUVDB3VuaTFFRUUHdW5pMUVGMAd1bmkwMjQ0B3VuaTAwNTYHdW5pMUU3Qwd1bmkxRTdFB3VuaTAwNTcHdW5pMDE3NAd1bmkxRTgwB3VuaTFFODIHdW5pMUU4NAd1bmkxRTg2B3VuaTFFODgHdW5pMDA1OAd1bmkxRThBB3VuaTFFOEMHdW5pMDRCMgd1bmkwNEZDB3VuaTAzQTcHdW5pMDA1OQd1bmkwMUIzB3VuaTAwREQHdW5pMDE3Ngd1bmkwMTc4B3VuaTAyMzIHdW5pMUU4RQd1bmkxRUYyB3VuaTFFRjQHdW5pMUVGNgd1bmkxRUY4B3VuaTAyNEUHdW5pMDNBNQd1bmkwMzhFB3VuaTAzQUIHdW5pMUY1OQd1bmkxRjVCB3VuaTFGNUQHdW5pMUY1Rgd1bmkxRkU4B3VuaTFGRTkHdW5pMUZFQQd1bmkxRkVCB3VuaUVFMDMHdW5pMDA1QQd1bmkwMTc5B3VuaTAxN0IHdW5pMDE3RAd1bmkxRTkwB3VuaTFFOTIHdW5pMUU5NAd1bmkwMjI0B3VuaTAxQjUHdW5pMDM5Ngd1bmkyQzdGB3VuaTAwNjEHdW5pMDBFMQd1bmkwMTAzB3VuaTFFQUYHdW5pMUVCNwd1bmkxRUIxB3VuaTFFQjMHdW5pMUVCNQd1bmkwMUNFB3VuaTAwRTIHdW5pMUVBNQd1bmkxRUFEB3VuaTFFQTcHdW5pMUVBOQd1bmkxRUFCB3VuaTAyMDEHdW5pMDBFNAd1bmkwMURGB3VuaTAyMjcHdW5pMUVBMQd1bmkwMUUxB3VuaTAwRTAHdW5pMUVBMwd1bmkwMjAzB3VuaTAxMDEHdW5pMDEwNQd1bmkxRTlBB3VuaTAwRTUHdW5pMDFGQgd1bmlFRTA0B3VuaTFFMDEHdW5pMDBFMwd1bmkwMjUwB3VuaTA0MzAHdW5pMDREMQd1bmkwNEQzB3VuaTAwRTYHdW5pMDFFMwd1bmkwMUZEB3VuaTA0RDUHdW5pRTAyQwd1bmlFMDJEB3VuaUUwMkUHdW5pRTAyRgd1bmlFMDMwB3VuaUUwMzEHdW5pRTAzMgd1bmlFMDMzB3VuaUUwMzQHdW5pRTAzNQd1bmlFMDM2B3VuaUUwMzcHdW5pRTAzOAd1bmlFMDM5B3VuaUUwM0EHdW5pRTAzQgd1bmlFMDNDB3VuaUUwM0QHdW5pRTAzRQd1bmlFMDNGB3VuaUUwNDAHdW5pRTA0MQd1bmlFMDQyB3VuaUUwNDMHdW5pRTA0NAd1bmlFMDQ1B3VuaUUwNDYHdW5pRTA0Nwd1bmlFMDQ4B3VuaUUwNDkHdW5pRTA0QQd1bmkwMDYyB3VuaTAxODAHdW5pMDE4Mwd1bmkwMjUzB3VuaTFFMDMHdW5pMUUwNQd1bmkxRTA3B3VuaTAwNjMHdW5pMDIzQwd1bmkwMTg4B3VuaTAyNTUHdW5pMDBFNwd1bmkwMTA3B3VuaTAxMDkHdW5pMDEwQgd1bmkwMTBEB3VuaTFFMDkHdW5pMDNGMgd1bmkwNDQxB3VuaTAwNjQHdW5pMDExMQd1bmkwMjU2B3VuaTAyNTcHdW5pMDE4Qwd1bmkwMjIxB3VuaTAxMEYHdW5pMUUwQgd1bmkxRTBEB3VuaTFFMEYHdW5pMUUxMQd1bmkxRTEzB3VuaTAxRjMHdW5pMDJBMwd1bmkwMUM2B3VuaTAyQTUHdW5pMDJBNAd1bmkyMEFCB3VuaTAwNjUHdW5pMDBFQgd1bmkwMjQ3B3VuaTAwRTgHdW5pMDBFOQd1bmkwMEVBB3VuaTAxMTMHdW5pMDExNQd1bmkwMTE3B3VuaTAxMTkHdW5pMDExQgd1bmkwMjA1B3VuaTAyMDcHdW5pMDIyOQd1bmkxRTE1B3VuaTFFMTcHdW5pMUUxOQd1bmkxRTFCB3VuaTFFMUQHdW5pMUVCOQd1bmkxRUJCB3VuaTFFQkQHdW5pMUVCRgd1bmkxRUMxB3VuaTFFQzMHdW5pMUVDNQd1bmkxRUM3B3VuaTA0MzUHdW5pMDQ1MAd1bmkwNDUxB3VuaTA0RDcHdW5pMDFERAxfcGFydC5mX2Jhc2UHdW5pMDA2Ngd1bmkxRTlDB3VuaTFFOUIHdW5pMUUxRgd1bmkwMkE5B3VuaTAwNjcHdW5pMDI2MAd1bmkwMUU1B3VuaTAxMUQHdW5pMDExRgd1bmkwMTIxB3VuaTAxMjMHdW5pMDFFNwd1bmkwMUY1B3VuaTFFMjEHdW5pMDA2OAd1bmkxRTI5B3VuaTA0NUIHdW5pMDQ1Mgd1bmkwMjY2B3VuaTAyNjcHdW5pMDE5NQd1bmkwMjY1B3VuaTAyQUUHdW5pMDJBRgd1bmkwMTI3B3VuaTAxMjUHdW5pMDIxRgd1bmkxRTIzB3VuaTFFMjUHdW5pMUUyNwd1bmkxRTJCB3VuaTFFOTYHdW5pMDRCQgd1bmkwMDY5B3VuaTAxMzEHdW5pMDBFRgd1bmkxRTJGB3VuaTAxMjkHdW5pMUUyRAd1bmlFMDRCB3VuaTAyNjgHdW5pMDBFQwd1bmkwMEVEB3VuaTAwRUUHdW5pMDEyQgd1bmkwMTJEB3VuaUUwNEMHdW5pMDEyRgd1bmkwMUQwB3VuaTAyMDkHdW5pMDIwQgd1bmkxRUM5B3VuaTFFQ0IHdW5pRTA0RAd1bmkwMjM3B3VuaTAyNUYHdW5pMDI0OQd1bmlFMDRFB3VuaTA0NTYHdW5pMDQ1Nwd1bmkwMTMzB3VuaTAwNkEHdW5pRTA0Rgd1bmkwMjlEB3VuaTAxMzUHdW5pMDFGMAd1bmkwM0YzB3VuaTA0NTgHdW5pMDFDOQd1bmkwMDZCB3VuaTAxOTkHdW5pMDEzNwd1bmkwMUU5B3VuaTFFMzEHdW5pMUUzMwd1bmkxRTM1B3VuaTAyOUUHdW5pMDA2Qwd1bmkwMTQyB3VuaTAxOUEHdW5pMDI2Qgd1bmkwMjZEB3VuaTAyNkMHdW5pMDIzNAd1bmkwMTQwB3VuaTAxM0EHdW5pMDEzQwd1bmkwMTNFB3VuaTFFMzcHdW5pMUUzOQd1bmkxRTNCB3VuaTFFM0QHdW5pRTA1MAd1bmlFMDUxB3VuaUUwNTIHdW5pRTA1Mwd1bmlFMDU0B3VuaUUwNTUHdW5pRTA1Ngd1bmlFMDU3B3VuaUUwNTgHdW5pRTA1OQd1bmlFMDVBB3VuaUUwNUIHdW5pRTA1Qwd1bmkwNENGB3VuaTAwNkQHdW5pMDI3MQd1bmkwMjZGB3VuaTAyNzAHdW5pMUUzRgd1bmkxRTQxB3VuaTFFNDMHdW5pMDA2RQd1bmkwMEYxB3VuaTAyNzMHdW5pMDE0Qgd1bmkwMjM1B3VuaTAyNzIHdW5pMDE5RQd1bmkwMTQ0B3VuaTAxNDYHdW5pMDE0OAd1bmkwMUY5B3VuaTFFNDUHdW5pMUU0Nwd1bmkxRTQ5B3VuaTFFNEIHdW5pMDFDQwd1bmkwMDZGB3VuaTAwRjYHdW5pMDBGNQd1bmkwMEY4B3VuaTAxQTEHdW5pMDBGMgd1bmkwMEYzB3VuaTAwRjQHdW5pMDE0RAd1bmkwMTRGB3VuaTAxNTEHdW5pMDFEMgd1bmkwMUVCB3VuaTAxRUQHdW5pMDIwRAd1bmkwMjBGB3VuaTAyMkIHdW5pMDIyRAd1bmkwMjJGB3VuaTAyMzEHdW5pMUU0RAd1bmkxRTRGB3VuaTFFNTEHdW5pMUU1Mwd1bmkxRUNEB3VuaTFFQ0YHdW5pMUVEMQd1bmkxRUQzB3VuaTFFRDUHdW5pMUVENwd1bmkxRUQ5B3VuaTFFREIHdW5pMUVERAd1bmkxRURGB3VuaTFFRTEHdW5pMUVFMwd1bmkwMUZGB3VuaTAzQkYHdW5pMDNDQwd1bmkxRjQwB3VuaTFGNDEHdW5pMUY0Mgd1bmkxRjQzB3VuaTFGNDQHdW5pMUY0NQd1bmkxRjc4B3VuaTA0NzMHdW5pMDI3NQd1bmkwNDNFB3VuaTA0RTcHdW5pMDE1Mwd1bmkwNDc5B3VuaTAwNzAHdW5pMDQ4Rgd1bmkwMUE1B3VuaTFFNTUHdW5pMUU1Nwd1bmkwNDQwB3VuaTAwNzEHdW5pMDJBMAd1bmkwMjRCB3VuaTAyNEEHdW5pMDA3Mgd1bmlFMDVEB3VuaTAyNEQHdW5pMDI3OQd1bmkwMjdCB3VuaTAyN0YHdW5pMDI3RQd1bmlFMDVFB3VuaTAxNTUHdW5pMDE1Nwd1bmkwMTU5B3VuaTAyMTEHdW5pMDIxMwd1bmkxRTU5B3VuaTFFNUIHdW5pMUU1RAd1bmkxRTVGB3VuaUUwNUYHdW5pMDI3RAd1bmlFMDYwB3VuaTAyN0MHdW5pRTA2MQd1bmlFMDYyB3VuaUUwNjMHdW5pRTA2NAd1bmlFMDY1B3VuaUUwNjYHdW5pRTA2Nwd1bmlFMDY4B3VuaUUwNjkHdW5pMDA3Mwd1bmkwMjgyB3VuaTAyM0YHdW5pMDE1Qgd1bmkwMTVEB3VuaTAxNUYHdW5pMDE2MQd1bmkwMjE5B3VuaTFFNjEHdW5pMUU2Mwd1bmkxRTY1B3VuaTFFNjcHdW5pMUU2OQd1bmkwNDU1B3VuaTAxQTgHdW5pMDBERgd1bmlFMDZBB3VuaTAwNzQHdW5pMDFBQgd1bmkwMjg4B3VuaTAyMzYHdW5pMDJBOAd1bmkwMjg3B3VuaTAxNjcHdW5pMDE2Mwd1bmkwMTY1B3VuaTAyMUIHdW5pMUU2Qgd1bmkxRTZEB3VuaTFFNkYHdW5pMUU3MQd1bmkxRTk3B3VuaTAwNzUHdW5pMDBGQwd1bmkwMTY5B3VuaTAxQjAHdW5pMDBCNQd1bmkwMjg5B3VuaTAwRjkHdW5pMDBGQQd1bmkwMEZCB3VuaTAxNkIHdW5pMDE2RAd1bmkwMTZGB3VuaTAxNzEHdW5pMDE3Mwd1bmkwMUQ0B3VuaTAxRDYHdW5pMDFEOAd1bmkwMURBB3VuaTAxREMHdW5pMDIxNQd1bmkwMjE3B3VuaTFFNzMHdW5pMUU3NQd1bmkxRTc3B3VuaTFFNzkHdW5pMUU3Qgd1bmkxRUU1B3VuaTFFRTcHdW5pMUVFOQd1bmkxRUVCB3VuaTFFRUQHdW5pMUVFRgd1bmkxRUYxB3VuaTAwNzYHdW5pMDI4Qwd1bmkxRTdEB3VuaTFFN0YHdW5pMDA3Nwd1bmkxRTg1B3VuaTAyOEQHdW5pMDE3NQd1bmkxRTgxB3VuaTFFODMHdW5pMUU4Nwd1bmkxRTg5B3VuaTFFOTgHdW5pMDA3OAd1bmkxRThCB3VuaTFFOEQHdW5pMDQ0NQd1bmkwM0M3B3VuaTAwNzkHdW5pMDBGRgd1bmkwMUI0B3VuaTAyNEYHdW5pMDBGRAd1bmkwMTc3B3VuaTAyMzMHdW5pMUU4Rgd1bmkxRTk5B3VuaTFFRjMHdW5pMUVGNQd1bmkxRUY3B3VuaTFFRjkHdW5pMDQ0Mwd1bmkwNDVFB3VuaTA0RUYHdW5pMDRGMQd1bmkwNEYzB3VuaTAyOEUHdW5pMDRFRQd1bmkwNEYwB3VuaTA0RjIHdW5pRUUwNQd1bmkwMDdBB3VuaTAxQjYHdW5pMDIyNQd1bmkwMjQwB3VuaTAyOTAHdW5pMDE3QQd1bmkwMTdDB3VuaTAxN0UHdW5pMUU5MQd1bmkxRTkzB3VuaTFFOTUHdW5pMDI5MQd1bmkwMERFB3VuaTAzOTMHdW5pMDM5NAd1bmkwMzk4B3VuaTAzOUUHdW5pMDNBMAd1bmkwM0EzB3VuaTAzQTYHdW5pMDNBOAd1bmkwM0E5B3VuaTFGRkIHdW5pMDM4Rgd1bmkxRjY4B3VuaTFGNjkHdW5pMUY2QQd1bmkxRjZCB3VuaTFGNkMHdW5pMUY2RAd1bmkxRjZFB3VuaTFGNkYHdW5pMUZGQQd1bmkxRkE4B3VuaTFGQTkHdW5pMUZBQQd1bmkxRkFCB3VuaTFGQUMHdW5pMUZBRAd1bmkxRkFFB3VuaTFGQUYHdW5pMUZGQwd1bmkwMUIxB3VuaTAzRDIHdW5pMDNEMwd1bmkwM0Q0B3VuaTAxOTQHdW5pMDQxMQd1bmkwNDkwB3VuaTA0RkEHdW5pMDQxNAd1bmkwNDE2B3VuaTA0OTYHdW5pMDQxNwd1bmkwNDFBB3VuaTA0OUMHdW5pMDRDMwd1bmkwNDFCB3VuaTA0NzIHdW5pMDQwRgd1bmkwNDIzB3VuaTA0MjQHdW5pMDQyNgd1bmkwNEI0B3VuaTA0MjcHdW5pMDRCNgd1bmkwNEI4B3VuaTA0QkEHdW5pMDQwQgd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQwOQd1bmkwNDBBB3VuaTA0MkQHdW5pMDQyRQd1bmkwNDJGB3VuaTA0OTQHdW5pMDRBNgd1bmkwNDA0B3VuaTA0QTgHdW5pMDRCQwd1bmkwNEQ4B3VuaTA0RTAHdW5pMDQ3NAd1bmkwNDAyB3VuaTAwRjAHdW5pMDBGRQd1bmkwM0IxB3VuaTAzQUMHdW5pMUYwMAd1bmkxRjAxB3VuaTFGMDIHdW5pMUYwMwd1bmkxRjA0B3VuaTFGMDUHdW5pMUYwNgd1bmkxRjA3B3VuaTFGNzAHdW5pMUY4MAd1bmkxRjgxB3VuaTFGODIHdW5pMUY4Mwd1bmkxRjg0B3VuaTFGODUHdW5pMUY4Ngd1bmkxRjg3B3VuaTFGQjAHdW5pMUZCMQd1bmkxRkIyB3VuaTFGQjMHdW5pMUZCNAd1bmkxRkI2B3VuaTFGQjcHdW5pMDNCMgd1bmkwM0IzB3VuaTAzQjQHdW5pMDNCNQd1bmkwM0FEB3VuaTAyOUEHdW5pMDI1Qgd1bmkwMjVDB3VuaTAyNUUHdW5pMDI1RAd1bmkxRjEwB3VuaTFGMTEHdW5pMUYxMgd1bmkxRjEzB3VuaTFGMTQHdW5pMUYxNQd1bmkxRjcyB3VuaTAzQjYHdW5pMDNCNwd1bmkwM0FFB3VuaTFGMjAHdW5pMUYyMQd1bmkxRjIyB3VuaTFGMjMHdW5pMUYyNAd1bmkxRjI1B3VuaTFGMjYHdW5pMUYyNwd1bmkxRjc0B3VuaTFGOTAHdW5pMUY5MQd1bmkxRjkyB3VuaTFGOTMHdW5pMUY5NAd1bmkxRjk1B3VuaTFGOTYHdW5pMUY5Nwd1bmkxRkMyB3VuaTFGQzMHdW5pMUZDNAd1bmkxRkM2B3VuaTFGQzcHdW5pMDNCOAd1bmkwM0I5B3VuaTAzOTAHdW5pMDNBRgd1bmkwM0NBB3VuaTFGMzAHdW5pMUYzMQd1bmkxRjMyB3VuaTFGMzMHdW5pMUYzNAd1bmkxRjM1B3VuaTFGMzYHdW5pMUYzNwd1bmkxRjc2B3VuaTFGRDAHdW5pMUZEMQd1bmkxRkQyB3VuaTFGRDYHdW5pMUZENwd1bmkwM0JCB3VuaTAzQkUHdW5pMDNDMAd1bmkwM0MxB3VuaTFGRTQHdW5pMUZFNQd1bmkwM0ZDB3VuaTAzQzIHdW5pMDNDMwd1bmkwM0M0B3VuaTAzQzUHdW5pMDNCMAd1bmkwM0NCB3VuaTAzQ0QHdW5pMUY1MAd1bmkxRjUxB3VuaTFGNTIHdW5pMUY1Mwd1bmkxRjU0B3VuaTFGNTUHdW5pMUY1Ngd1bmkxRjU3B3VuaTFGN0EHdW5pMUZFMAd1bmkxRkUxB3VuaTFGRTIHdW5pMUZFNgd1bmkxRkU3B3VuaTAzQzYHdW5pMDNENQd1bmkwM0M4B3VuaTAzQzkHdW5pMDNDRQd1bmkxRjYwB3VuaTFGNjEHdW5pMUY2Mgd1bmkxRjYzB3VuaTFGNjQHdW5pMUY2NQd1bmkxRjY2B3VuaTFGNjcHdW5pMUY3Qwd1bmkxRkEwB3VuaTFGQTEHdW5pMUZBMgd1bmkxRkEzB3VuaTFGQTQHdW5pMUZBNQd1bmkxRkE2B3VuaTFGQTcHdW5pMUZGMgd1bmkxRkYzB3VuaTFGRjQHdW5pMUZGNgd1bmkxRkY3B3VuaTAyNjMHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQ5MQd1bmkwNEZCB3VuaTA0MzQHdW5pMDQzNgd1bmkwNDk3B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDhCB3VuaTA0M0EHdW5pMDRDNAd1bmkwNDlCB3VuaTA0OUQHdW5pMDRBMQd1bmkwNDNCB3VuaTA0QzYHdW5pMDUyRgd1bmkwNDNDB3VuaTA0Q0UHdW5pMDQzRAd1bmkwNEEzB3VuaTA0QTUHdW5pMDRDOAd1bmkwNENBB3VuaTA0M0YHdW5pMDQ0Mgd1bmkwNDQ0B3VuaTA0RkQHdW5pMDRCMwd1bmkwNDQ2B3VuaTA0NUYHdW5pMDQ0Nwd1bmkwNEI3B3VuaTA0QjkHdW5pMDQ0OAd1bmkwNDQ5B3VuaTA0NEMHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0OEQHdW5pMDQ2Mwd1bmkwNDU5B3VuaTA0NUEHdW5pMDQ0RAd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ5NQd1bmkwNEE3B3VuaTA0NTQHdW5pMDRBOQd1bmkwNEI1B3VuaTA0QkQHdW5pMDRFMQd1bmkwNDc1B3VuaTAwMjQHdW5pMDBBMgd1bmkwMEE1B3VuaTAwQTMHdW5pMDE5Mgd1bmkyMEJBB3VuaTIwQkQHdW5pMjBBQwd1bmkyMEI5B3VuaTIwQjgHdW5pMjBBNwd1bmkyMEIxB3VuaTIwQUQHdW5pMjBBOQd1bmkyMEE0B3VuaTIwQjMHdW5pMjBCNAd1bmkyMEE2B3VuaTIwQjIHdW5pMjBBMQd1bmkyMEI1B3VuaTIwQTIHdW5pMjBBRQd1bmkyMEFGB3VuaTIwQTUHdW5pMjBBQQd1bmkyMEJDB3VuaTIwQTgHdW5pMjBCRQd1bmkyMEEzB3VuaTBFM0YHdW5pMjBCRgd1bmkwMDMwB3VuaTAwMzEHdW5pMDAzMgd1bmkwMUJCB3VuaTAwMzMHdW5pMDAzNAd1bmkwMDM1B3VuaTAxQkMHdW5pMDAzNgd1bmkwMDM3B3VuaTAwMzgHdW5pMDAzOQd1bmlFMDZCB3VuaUUwNkMHdW5pRTA2RAd1bmlFMDZFB3VuaUUwNkYHdW5pRTA3MAd1bmlFMDcxB3VuaUUwNzIHdW5pRTA3Mwd1bmlFMDc0B3VuaUUwNzUHdW5pRTA3Ngd1bmlFMDc3B3VuaUUwNzgHdW5pRTA3OQd1bmlFMDdBB3VuaUUwN0IHdW5pRTA3Qwd1bmlFMDdEB3VuaUUwN0UHdW5pRTA3Rgd1bmlFMDgwB3VuaTAwMjYHdW5pMDAyMQd1bmkyMDNDB3VuaTAwQTEHdW5pMjA0OQd1bmkwMDNGB3VuaTIwNDcHdW5pMjA0OAd1bmkwMEJGB3VuaTIwM0QHdW5pMkUxOAd1bmkwMDI4B3VuaTAwMjkHdW5pMDA1Qgd1bmkyMDQ1B3VuaTAwNUQHdW5pMjA0Ngd1bmkwMDdCB3VuaTAwN0QHdW5pMDA0MAx1bmkwMDI4LmNhc2UMdW5pMDAyOS5jYXNlDHVuaTAwNUIuY2FzZQx1bmkwMDVELmNhc2UMdW5pMDA3Qi5jYXNlDHVuaTAwN0QuY2FzZQx1bmkwMDQwLmNhc2UHdW5pMDAyMwd1bmkwMEE0B3VuaTAwMkYHdW5pMDA3Qwd1bmkwMEE2B3VuaTAwNUMHdW5pMDAyRAd1bmkwMEFEB3VuaTIwMTMHdW5pMjAxMgd1bmkyMDE0B3VuaTIwMTUHdW5pMjAyMgd1bmkyNUU2B3VuaTIwNDMHdW5pMjAyMwd1bmkyMDRDB3VuaTIwNEQHdW5pMjVBQQx1bmkwMDJELmNhc2UMdW5pMjAxMy5jYXNlDHVuaTIwMTIuY2FzZQx1bmkyMDE0LmNhc2UMdW5pMjAyMi5jYXNlDHVuaTI1RTYuY2FzZQx1bmkyMDQzLmNhc2UMdW5pMjAyMy5jYXNlDHVuaTIwNEMuY2FzZQx1bmkyMDRELmNhc2UMdW5pMjVBQS5jYXNlB3VuaTIwMTgHdW5pMjAxOQd1bmkwMkJDB3VuaTAwMjcHdW5pMDAyMgd1bmkyMDFDB3VuaTIwMUQHdW5pMjAxRQd1bmkyMDFBB3VuaTIwMzIHdW5pMjAzMwd1bmkyMDM0B3VuaTIwNTcHdW5pMjAzNQd1bmkyMDM2B3VuaTIwMzcHdW5pMDJCOQd1bmkwMkJBB3VuaTAwMkMHdW5pMDAyRQd1bmkyMDI2B3VuaTIwMjUHdW5pMDAzQQx1bmkwMDNBLmNhc2UHdW5pRUUwMQd1bmkwMDNCB3VuaUUwOTMHdW5pRTA5NAd1bmlFMDk1B3VuaUUwOTYHdW5pMDBCNwd1bmkwMzg3B3VuaTAzN0UHdW5pMjAzOQd1bmkyMDNBB3VuaTAwQUIHdW5pMDBCQgd1bmkwMDNDB3VuaTAwM0UHdW5pMjI2NAd1bmkyMjY1B3VuaTAwM0QHdW5pMjI2MAd1bmkwMDJCB3VuaTIyMTIHdW5pMDBENwd1bmkwMEY3B3VuaTAwQjEHdW5pMjI0OAd1bmkwMDdFDHVuaTAwM0MuY2FzZQx1bmkwMDNFLmNhc2UMdW5pMjI2NC5jYXNlDHVuaTIyNjUuY2FzZQx1bmkwMDNELmNhc2UMdW5pMjI2MC5jYXNlDHVuaTAwMkIuY2FzZQx1bmkyMjEyLmNhc2UMdW5pMDBENy5jYXNlDHVuaTAwRjcuY2FzZQx1bmkwMEIxLmNhc2UMdW5pMjI0OC5jYXNlDHVuaTAwN0UuY2FzZQd1bmkwMEFDB3VuaTAwNUYHdW5pMjAyMAd1bmkyMDIxB3VuaTAwNUUHdW5pMDAyQQx1bmkwMDJBLmNhc2UHdW5pMDBBRQd1bmkwMEE5BnUxRjEyRgd1bmkyMTE3B3VuaTIxMjIHdW5pMjEyMAd1bmkyMTIxB3VuaTIxM0IGdTFGMTZCBnUxRjE2QQd1bmkwMEIwB3VuaTAwQUEHdW5pMDBCQQd1bmlFMEE1B3VuaUUwQTYHdW5pMDBCNgd1bmkyMDRCB3VuaTAwQTcHdW5pMjIxRQd1bmkyMjAyB3VuaTIyMTEHdW5pMjIwRgd1bmkyMjJCB3VuaTIyMUEHdW5pMjIwNQd1bmkyNUNBB3VuaTFENDMHdW5pMUQ0Nwd1bmkxRDlDB3VuaTFENDgHdW5pMUQ0OQd1bmkxREEwB3VuaTFENEQHdW5pMDJCMAd1bmkyMDcxB3VuaTAyQjIHdW5pMUQ0Rgd1bmkwMkUxB3VuaTFENTAHdW5pMjA3Rgd1bmkxRDUyB3VuaTFENTYHdW5pRTE2Mwd1bmkwMkIzB3VuaTAyRTIHdW5pMUQ1Nwd1bmkxRDU4B3VuaTFENUIHdW5pMDJCNwd1bmkwMkUzB3VuaTAyQjgHdW5pMURCQgd1bmkyMDcwB3VuaTAwQjkHdW5pMDBCMgd1bmkwMEIzB3VuaTIwNzQHdW5pMjA3NQd1bmkyMDc2B3VuaTIwNzcHdW5pMjA3OAd1bmkyMDc5B3VuaTIwN0QHdW5pMjA3RQd1bmlFMEE3B3VuaUUwQTgHdW5pMjA3QQd1bmkyMDdCB3VuaTIwN0MHdW5pMjA5MAd1bmlFMEE5B3VuaUUwQUEHdW5pRTBBQgd1bmkyMDkxB3VuaUUwQUMHdW5pRTBBRAd1bmkyMDk1B3VuaTFENjIHdW5pMkM3Qwd1bmkyMDk2B3VuaTIwOTcHdW5pMjA5OAd1bmkyMDk5B3VuaTIwOTIHdW5pMjA5QQd1bmlFMEFFB3VuaTFENjMHdW5pMjA5Qgd1bmkyMDlDB3VuaTFENjQHdW5pMUQ2NQd1bmlFMEFGB3VuaTIwOTMHdW5pRTBCMAd1bmlFMEIxB3VuaTIwODAHdW5pMjA4MQd1bmkyMDgyB3VuaTIwODMHdW5pMjA4NAd1bmkyMDg1B3VuaTIwODYHdW5pMjA4Nwd1bmkyMDg4B3VuaTIwODkHdW5pMjA4RAd1bmkyMDhFB3VuaUUwQjIHdW5pRTBCMwd1bmkyMDhBB3VuaTIwOEIHdW5pMjA4Qwd1bmlFMEI0B3VuaUUwQjUHdW5pRTBCNgd1bmlFMEI3B3VuaUUwQjgHdW5pRTBCOQd1bmlFMEJBB3VuaUUwQkIHdW5pRTBCQwd1bmlFMEJEB3VuaTIwNDQHdW5pRTBCRQd1bmlFMEJGB3VuaUUwQzAHdW5pRTBDMQd1bmlFMEMyB3VuaUUwQzMHdW5pRTBDNAd1bmlFMEM1B3VuaUUwQzYHdW5pRTBDNwd1bmlFMEM4B3VuaUUwQzkHdW5pRTBDQQd1bmlFMENCB3VuaUUwQ0MHdW5pRTBDRAd1bmlFMENFB3VuaUUwQ0YHdW5pRTBEMAd1bmlFMEQxB3VuaUUwRDIHdW5pRTBEMwd1bmlFMEQ0B3VuaUUwRDUHdW5pRTBENgd1bmlFMEQ3B3VuaUUwRDgHdW5pRTBEOQd1bmlFMERBB3VuaUUwREIHdW5pRTBEQwd1bmlFMEREB3VuaUUwREUHdW5pRTBERgd1bmlFMEUwB3VuaUUwRTEHdW5pRTBFMgd1bmlFMEUzB3VuaUUwRTQHdW5pRTBFNQd1bmkwMEJEB3VuaTIxNTMHdW5pMDBCQwd1bmkwMEJFB3VuaTIxNUEHdW5pMjE1Rgd1bmkyMTVFB3VuaTIxNUIHdW5pMjE1RAd1bmkyMTVDB3VuaTAwMjUHdW5pMjAzMAd1bmkyMDMxB3VuaTIxNEQHdW5pMjEwNgd1bmkyMTA1B3VuaTIxMDAHdW5pMjEwMQd1bmkwMEI0B3VuaTAyREQHdW5pMDA2MAd1bmkwMzg0B3VuaTAwQTgPY2FzZWRpZXJlc2lzLmNuB3VuaTAyQzYHdW5pMDJEQwxjYXNldGlsZGUuY24HdW5pMDBBRgd1bmkwMkQ4B3VuaUUwRTYHdW5pMDJEOQd1bmkwMkRBCnVuaTAyREEudWMHdW5pMDJDNwd1bmkwMzg1B3VuaTAwQjgHdW5pMDJEQgd1bmlGNkMzB3VuaTAzMDEHdW5pMDMwQgd1bmkwMzAwB3VuaTAzMEYHdW5pMDMwNAd1bmkwMzA4B3VuaTAzMDYHdW5pMDMxMQd1bmkwMzA5B3VuaTAzMDIHdW5pMDMwQwd1bmkwMzAzB3VuaTAzMDcHdW5pMDMwQQd1bmkwMzFCB3VuaTAzMjgHdW5pMDMyNwd1bmkwMzJEB3VuaTAzMkUHdW5pMDMyMwd1bmkwMzI2B3VuaTAzMjQHdW5pMDMyNQd1bmkwMzMyB3VuaTAzMzAHdW5pMDAyMAd1bmkwMEEwB3VuaTIwMkYHdW5pMjA1Rgd1bmkyMDAwB3VuaTIwMDEHdW5pMjAwMgd1bmkyMDAzB3VuaTIwMDQHdW5pMjAwNQd1bmkyMDA2B3VuaTIwMDcHdW5pMjAwOAd1bmkyMDA5B3VuaTIwMEEHdW5pMjAwQgd1bmkyMTE2B3VuaTIxMDMHdW5pMjEwOQd1bmkyMTJBB3VuaTIxMkIHdW5pMDI5OAd1bmkyMTJFB3VuaTIxOTAHdW5pMjdGNQZ1MUY4NTAHdW5pMjFEMAd1bmkyN0Y4B3VuaTIxOTIHdW5pMjdGNgZ1MUY4NTIHdW5pMjFEMgd1bmkyN0Y5B3VuaTIxOTYHdW5pMjE5Nwd1bmkyMTk4B3VuaTIxOTkHdW5pMjE5NAd1bmkyN0Y3B3VuaTIxRDQHdW5pMjdGQQd1bmkyMTkxB3VuaTIxOTMHdW5pMjE5NQd1bmkyMUE5B3VuaTIxQUEMdW5pMjE5MC5jYXNlDHVuaTI3RjUuY2FzZQt1MUY4NTAuY2FzZQx1bmkyMUQwLmNhc2UMdW5pMjdGOC5jYXNlDHVuaTIxOTIuY2FzZQx1bmkyN0Y2LmNhc2ULdTFGODUyLmNhc2UMdW5pMjFEMi5jYXNlDHVuaTI3RjkuY2FzZQx1bmkyMTk0LmNhc2UMdW5pMjdGNy5jYXNlDHVuaTIxRDQuY2FzZQx1bmkyN0ZBLmNhc2UHdW5pMjcxMwd1bmkyNzE3B3VuaTI1QkMHdW5pMjVCMgd1bmkyNUMwB3VuaTI1QkEHdW5pMjVCRAd1bmkyNUIzB3VuaTI1QzEHdW5pMjVCNwd1bmkyNkEwB3VuaTI1Q0YHdW5pMjVDQgd1bmkyNUEwB3VuaTI1QTEHdW5pMjVBMgd1bmkyQjEyB3VuaTJCMTMHdW5pMjVDNgd1bmkyNzU2B3VuaTI1QzcHdW5pRTAwMAd1bmkyNjNDB3VuaTI2MDAHdW5pMjY2MQd1bmkyNjY1B3VuaTI3NjQHdW5pMjYwNQd1bmkyNjA2B3VuaTJCMDYHdW5pMjFFNwd1bmkyMUVBB3VuaTIzMTgHdW5pMjMwMwd1bmkyMzA1B3VuaTIzODAHdW5pMjMyNQd1bmkyMzg3B3VuaTIzOEIHdW5pMjFCQQd1bmkyMUJCB3VuaTIzMkIHdW5pMjMyNgd1bmkyMzI3B3VuaTIzQ0YHdW5pMjNDRQd1bmkyMUI1B3VuaTIxQjMHdW5pMjFCMAd1bmkyMUIxB3VuaTIxQjQHdW5pMjFFNAd1bmkyMUU1B3VuaTIxREUHdW5pMjFERgd1bmkyNUVGB3VuaTJCMUMHdW5pMjBERAd1bmkyMERFB3VuaTI0QjYHdW5pMjRCNwd1bmkyNEI4B3VuaTI0QjkHdW5pMjRCQQd1bmkyNEJCB3VuaTI0QkMHdW5pMjRCRAd1bmkyNEJFB3VuaTI0QkYHdW5pMjRDMAd1bmkyNEMxB3VuaTI0QzIHdW5pMjRDMwd1bmkyNEM0B3VuaTI0QzUHdW5pMjRDNgd1bmkyNEM3B3VuaTI0QzgHdW5pMjRDOQd1bmkyNENBB3VuaTI0Q0IHdW5pMjRDQwd1bmkyNENEB3VuaTI0Q0UHdW5pMjRDRgd1bmkyNEVBB3VuaTI0NjAHdW5pMjQ2MQd1bmkyNDYyB3VuaTI0NjMHdW5pMjQ2NAd1bmkyNDY1B3VuaTI0NjYHdW5pMjQ2Nwd1bmkyNDY4B3VuaUUxMkIHdW5pRTEyQwd1bmlFMTJEB3VuaUUxMkUHdW5pRTEyRgd1bmlFMTMwB3VuaUUxMzEHdW5pRTEzMgd1bmlFMTMzB3VuaUUxMzQHdW5pRTEzNQd1bmlFMTM2B3VuaUUxMzcHdW5pRTE1Rgd1bmlFMTYwB3VuaUUxNjEHdW5pRTE2Mgd1bmlFMTM4B3VuaUUxMzkHdW5pRTEzQQd1bmlFMTNCB3VuaUUxM0MHdW5pRTEzRAZ1MUYxMzAGdTFGMTMxBnUxRjEzMgZ1MUYxMzMGdTFGMTM0BnUxRjEzNQZ1MUYxMzYGdTFGMTM3BnUxRjEzOAZ1MUYxMzkGdTFGMTNBBnUxRjEzQgZ1MUYxM0MGdTFGMTNEBnUxRjEzRQZ1MUYxM0YGdTFGMTQwBnUxRjE0MQZ1MUYxNDIGdTFGMTQzBnUxRjE0NAZ1MUYxNDUGdTFGMTQ2BnUxRjE0NwZ1MUYxNDgGdTFGMTQ5B3VuaUUxM0UHdW5pRTEzRgd1bmlFMTQwB3VuaUUxNDEHdW5pRTE0Mgd1bmlFMTQzB3VuaUUxNDQHdW5pRTE0NQd1bmlFMTQ2B3VuaUUxNDcHdW5pRTE0OAd1bmlFMTQ5B3VuaUUxNEEHdW5pRTE0Qgd1bmlFMTRDB3VuaUUxNEQHdW5pRTE0RQd1bmlFMTRGB3VuaUUxNTAHdW5pRTE1MQd1bmlFMTUyB3VuaUUxNTMHdW5pRTE1NAd1bmlFMTU1B3VuaUUxNTYHdW5pRTE1Nwd1bmlFMTU4B3VuaUUxNTkHdW5pRTE1QQd1bmlFMTVCB3VuaUUxNUMHdW5pRTE1RAd1bmlFMTVFB3VuaTAxODIHdW5pMDRCRQd1bmkwNEY0B3VuaTA0Q0IHdW5pMDFGMQd1bmkwMTEwB3VuaTAzREMHdW5pMDE4Qgd1bmkwNDY0B3VuaTA0QzUHdW5pMDE5MAd1bmkwNEFBB3VuaTAxQTkHdW5pMDBEMAd1bmkwMUI3B3VuaTAxRUUHdW5pMDFCOAd1bmkwNDkyB3VuaTAyNjIHdW5pMDI5Qgd1bmkwMTMyB3VuaTAyNkEHdW5pMDQ3Ngd1bmkwM0RFB3VuaTA0ODAHdW5pMDQ2RQd1bmkwMUM3B3VuaTAxM0YHdW5pMDI5Rgd1bmkwMUNBB3VuaTAyNzQHdW5pMDI3Ngd1bmkwMUEyB3VuaTA0NjAHdW5pMDQ3QQd1bmkwNDdDB3VuaTA0N0UHdW5pMDQ3MAd1bmkwMjgwB3VuaTAyODEHdW5pMDJCNgd1bmkwM0UwB3VuaTAxOEYHdW5pMDREQQd1bmkwM0RBB3VuaTAxNjYHdW5pMDRBQwd1bmkwMTg0B3VuaTA0NzgHdW5pMDRBRQd1bmkwNEIwB3VuaTAxQjIHdW5pMDFBNgd1bmkwNEY4B3VuaTAyOEYHdW5pMDQ2QQd1bmkwNDZDB3VuaTA0NjYHdW5pMDQ2OAd1bmkwNDk4B3VuaTA0REUHdW5pMDRDMQd1bmkwNERDDl90aWxkZWNyb3NzLmNuB3VuaUUxMUIHdW5pRTEwNAd1bmkwMkNGB3VuaTAzNDEHdW5pMDMxNwd1bmkwNDEzB3VuaTA0MUYHdW5pMDQyMAd1bmkwNDIxB3VuaTA0MjIHdW5pMDQyNQd1bmkwNDAzB3VuaTA0MEMHdW5pMDQwRQd1bmkwNDYyB3VuaTAzMUEHdW5pMDMyQgd1bmkwMkM1B3VuaTAyQzIHdW5pMDM1MAd1bmkwMkMzB3VuaTAyQzQHdW5pMDI1MQd1bmlFMTBBB3VuaTAyNTIHdW5pMjA0Mgd1bmkwMjY0B3VuaTAzMzYHdW5pMDMzNQd1bmkwM0QwB3VuaUUxMUEHdW5pRTExQwd1bmlFMTI3B3VuaTAzNjEHdW5pMDMyRgd1bmlFMTIwB3VuaTAzM0EHdW5pMDMyQQd1bmkwMzEwB3VuaTIwMzgHdW5pMjA0MQd1bmkwMzJDB3VuaUUxMTkHdW5pRTEwNwd1bmlFMTA4B3VuaUUxMDkHdW5pMjA0MAd1bmkwNEJGB3VuaTA0RjUHdW5pMDRDQwd1bmlFMTY0B3VuaUUxMTYHdW5pRTExRgd1bmlFMTI2B3VuaTAyRDEHdW5pMDJEMAd1bmkwMzEzB3VuaTAzMTUTY29tbWFhY2NlbnRyaWdodC5jbgd1bmlFMTI4B3VuaTAyQkQHdW5pMDMxNAd1bmkwMkJCB3VuaTAzMTIHdW5pRTEwMwd1bmkwMjk3B3VuaUUxMTQHdW5pRTEwQg9jeXJpbGxpY3RhaWwuY24OY3lyaWxsaWN0aWMuY24HdW5pMDQ4NQd1bmkwMkVFB3VuaTAxOEQHdW5pMDM0NAd1bmlFMTIxB3VuaUUxMDYHdW5pRTExNwd1bmlFMTEzB3VuaUUxMjQHdW5pRTEwRQd1bmlFMTE4B3VuaUUxMEQHdW5pMDNERAd1bmlFMTIyB3VuaUUxMEMHdW5pMDJENQd1bmkyMTc3B3VuaTA0NjUHdW5pMjE3QQd1bmkwMzQ3B3VuaTAyNTgHdW5pMDRBQgd1bmkwMjgzB3VuaTAyODYHdW5pMDFBQQd1bmkwMjg1B3VuaTIwQTAHdW5pMDFDMwd1bmkwMjkyB3VuaTAxRUYHdW5pMDI5Mwd1bmkwMUI5B3VuaTAxQkEHdW5pMDJBQQd1bmkwMkFEB3VuaTAyQjUHdW5pMDJDOQd1bmkyMTc0B3VuaTIxNzMHdW5pMDJDQgd1bmkwMkUwB3VuaTAyNjEHdW5pMDQ5Mwd1bmkwNDUzB3VuaTAyOTQHdW5pMDJBMQd1bmkwMUJFB3VuaTAyQTIHdW5pMDI5Ngd1bmkwMkMwB3VuaTAyRTQHdW5pMDJDMQd1bmkwMjk1B3VuaTAzNDAHdW5pMDJDRQd1bmkwMzE2B3VuaTAyQjEHdW5pMDMyMQd1bmkwMzIyB3VuaTIwMTAHdW5pMjAyNwd1bmkyMDExB3VuaTA0RTUHdW5pMDQzOQd1bmkwNEUzB3VuaTAzNDUHdW5pMDQ3Nwd1bmkwMjg0B3VuaTAzQkEHdW5pMDNGMAd1bmkwMTM4B3VuaTA0NUMHdW5pMDNERgd1bmkwNDgxFGtvcm9uaXNhY2NlbnRsZWZ0LmNuB3VuaTAzNDMHdW5pMDQ2Rgd1bmkwMTlCB3VuaUUxMEYHdW5pMDJDOAd1bmkwMzBFB3VuaTAzMEQHdW5pMDMyOQd1bmkwMTdGB3VuaTAyRUYHdW5pMjExMwd1bmkwMjZFB3VuaUUwRjYHdW5pRTBGOAd1bmlFMTIzB3VuaUUxMTEHdW5pRTBGNwd1bmlFMEY5B3VuaTAyQ0QHdW5pMDMzMQd1bmkwMTlDB3VuaTAyRDcHdW5pMDNCQwd1bmkyMTc4B3VuaTAzQkQHdW5pMDM3NAd1bmkwMzc1B3VuaTA0RTkHdW5pMDRFQgd1bmkwMUEzB3VuaTAyNzcHdW5pMDQ2MQd1bmkwNDdCB3VuaTA0N0QHdW5pMjAyNAd1bmkyMTcwB3VuaTAyNTQHdW5pMDQ3Rgd1bmkyMDNFB3VuaTAzM0YHdW5pMDMwNQd1bmkwNDg0B3VuaTA0QzAHdW5pMDM0Mgd1bmkwMjc4B3VuaTAxQzAHdW5pMDFDMQd1bmkwMUMyB3VuaTAzRDYHdW5pMDJENgd1bmkwNDcxB3VuaTA0ODYHdW5pMDJERgd1bmkyMDFGB3VuaTIwMUIHdW5pMjAzQgd1bmkyMDRGB3VuaTAzRjEHdW5pMDJERQd1bmlFMTE1B3VuaTAyQkYHdW5pMDJEMwd1bmkwMkJFB3VuaTAyRDIHdW5pMDMxQwd1bmkwMzM5B3VuaTIxNjcHdW5pMjE2QQd1bmkyMTZDB3VuaTIxNjQHdW5pMjE2RQd1bmkyMTYzB3VuaTIxNkQHdW5pMjE2OAd1bmkyMTYwB3VuaTIxNjYHdW5pMjE2NQd1bmkyMTY5B3VuaTIxNkYHdW5pMjE2Mgd1bmkyMTZCB3VuaTIxNjEHdW5pMDI3QQd1bmkwMkI0B3VuaTAzRTEHdW5pMDI1OQd1bmkwNEQ5B3VuaTA0REIHdW5pMDI1QQd1bmkwMzNDB3VuaTAyQ0EHdW5pMjE3Ngd1bmkyMTc1B3VuaTAzMzgHdW5pMDMzNwd1bmkyNDIzB3VuaTAzM0IHdW5pMDNEQgd1bmkwMzFFB3VuaTAzMTgHdW5pMDMxOQd1bmkwMzFEB3VuaTA0QUQHdW5pMjE3OQd1bmkwMkE3B3VuaTAzRDEHdW5pMDFBRAd1bmkwNDgyB3VuaTIxNzIHdW5pRTExMgd1bmlFMTJBB3VuaUUxMUUHdW5pRTEwNQd1bmkwMzYwB3VuaUUxMjUHdW5pRTExMAd1bmkwMzM0B3VuaTAzM0UHdW5pMDQ4Mwd1bmkwMkU1B3VuaTAyRTkHdW5pMDJFNgd1bmkwMkU4B3VuaTAyRTcHdW5pMDFCRAd1bmkwMTg1B3VuaUUxMjkHdW5pMDJBNgd1bmkyMTdCB3VuaTIxNzEHdW5pMjAxNwd1bmkwMzMzB3VuaTIwM0YHdW5pMDFGNwd1bmkwMjFDB3VuaTAyMUQHdW5pMDIyMAd1bmkwMjIyB3VuaTAyMjMHdW5pMDIzOAd1bmkwMjM5B3VuaTAyNDEHdW5pMDI0Mgd1bmkwMjQ1B3VuaUUwRjMHdW5pMDI5OQd1bmkwMjlDB3VuaTAyQUIHdW5pMDJBQwd1bmlFMEY1B3VuaTAyRUEHdW5pMDJFQgd1bmkwMkVDB3VuaTAyRUQHdW5pMDJGMAd1bmkwMkYxB3VuaTAyRjIHdW5pMDJGMwd1bmkwMkY0B3VuaTAyRjUHdW5pMDJGNgd1bmkwMkY3B3VuaTAyRjgHdW5pMDJGOQd1bmkwMkZBB3VuaTAyRkIHdW5pMDJGQwd1bmkwMkZEB3VuaTAyRkUHdW5pMDJGRgd1bmkwMzQ2B3VuaTAzNDgHdW5pMDM0OQd1bmkwMzRBB3VuaTAzNEIHdW5pMDM0Qwd1bmkwMzREB3VuaTAzNEUHdW5pMDM0Rgd1bmkwMzUxB3VuaTAzNTIHdW5pMDM1Mwd1bmkwMzU0B3VuaTAzNTUHdW5pMDM1Ngd1bmkwMzU3B3VuaTAzNTgHdW5pMDM1OQd1bmkwMzVBB3VuaTAzNUIHdW5pMDM1Qwd1bmkwMzVEB3VuaTAzNUUHdW5pMDM1Rgd1bmkwMzYyB3VuaTAzNjMHdW5pMDM2NAd1bmkwMzY1B3VuaTAzNjYHdW5pMDM2Nwd1bmkwMzY4B3VuaTAzNjkHdW5pMDM2QQd1bmkwMzZCB3VuaTAzNkMHdW5pMDM2RAd1bmkwMzZFB3VuaTAzNkYHdW5pMDM3MAd1bmkwMzcxB3VuaTAzNzIHdW5pMDM3Mwd1bmkwMzc3B3VuaTAzN0IHdW5pMDM3Qwd1bmkwMzdEB3VuaTAzQ0YHdW5pMDNENwd1bmkwM0Q4B3VuaTAzRDkHdW5pMDNGNQd1bmkwM0Y2B3VuaTAzRjcHdW5pMDNGOAd1bmkwM0ZCB3VuaTAzRkQHdW5pMDNGRQd1bmkwM0ZGB3VuaTA0NUQHdW5pMDQ4Nwd1bmkwNDg4B3VuaTA0ODkHdW5pMDQ4Qwd1bmkwNEVDB3VuaTA0RUQHdW5pMDRGNgd1bmkwNEY3B3VuaTA0RkUHdW5pMDRGRgd1bmkxREJGB3VuaTFEQzAHdW5pMURDMQd1bmkxREMyB3VuaTFEQzMHdW5pMURDNAd1bmkxREM1B3VuaTFEQzYHdW5pMURDNwd1bmkxREM4B3VuaTFEQzkHdW5pMURDQQd1bmkxRENCB3VuaTFEQ0MHdW5pMURDRAd1bmkxRENFB3VuaTFEQ0YHdW5pMUREMAd1bmkxREQxB3VuaTFERDIHdW5pMUREMwd1bmkxREQ0B3VuaTFERDUHdW5pMURENgd1bmkxREQ3B3VuaTFERDgHdW5pMUREOQd1bmkxRERBB3VuaTFEREIHdW5pMUREQwd1bmkxREREB3VuaTFEREUHdW5pMURERgd1bmkxREUwB3VuaTFERTEHdW5pMURFMgd1bmkxREUzB3VuaTFERTQHdW5pMURFNQd1bmkxREU2B3VuaTFERTcHdW5pMURFOAd1bmkxREU5B3VuaTFERUEHdW5pMURFQgd1bmkxREVDB3VuaTFERUQHdW5pMURFRQd1bmkxREVGB3VuaTFERjAHdW5pMURGMQd1bmkxREYyB3VuaTFERjMHdW5pMURGNAd1bmkxREY1B3VuaTFERkMHdW5pMURGRAd1bmkxREZFB3VuaTFERkYHdW5pMUU5RAd1bmkxRTlGB3VuaTFFRkEHdW5pMUVGQgd1bmkxRUZDB3VuaTFFRkQHdW5pMUVGRQd1bmkxRUZGB3VuaTFGNzEHdW5pMUY3Mwd1bmkxRjc1B3VuaTFGNzcHdW5pMUY3OQd1bmkxRjdCB3VuaTFGN0QHdW5pMUZCRAd1bmkxRkJFB3VuaTFGQkYHdW5pMUZDMAd1bmkxRkMxB3VuaTFGQ0QHdW5pRTBGQgd1bmkxRkNFB3VuaUUwRkQHdW5pMUZDRgd1bmlFMEZGB3VuaTFGRDMHdW5pMUZERAd1bmlFMEZDB3VuaTFGREUHdW5pRTBGRQd1bmkxRkRGB3VuaUUxMDAHdW5pMUZFMwd1bmkxRkVEB3VuaTFGRUUHdW5pMUZFRgd1bmlFMTAxB3VuaTFGRkQHdW5pRTEwMgd1bmkxRkZFB3VuaUUwRkEHdW5pMjA0QQd1bmkyMDRFB3VuaTIwNTAHdW5pMjA1MQd1bmkyMDUyB3VuaTIwNTMHdW5pMjA1NAd1bmkyMDU1B3VuaTIwNTYHdW5pMjA1OAd1bmkyMDU5B3VuaTIwNUEHdW5pMjA1Qgd1bmkyMDVDB3VuaTIwNUQHdW5pMjA1RQd1bmlFMEY0B3VuaTIwOTQHdW5pMjBCMAd1bmkyMEI2B3VuaTIwQjcHdW5pMjBCQgd1bmkyMERCB3VuaTIwREMHdW5pMjBFOAd1bmkyMEYwB3VuaTIxNEYHdW5pMjE3Qwd1bmkyMTdEB3VuaTIxN0UHdW5pMjE3Rgd1bmkyMTgwB3VuaTIxODEHdW5pMjE4Mgd1bmkyMTgzB3VuaTIxODQHdW5pMjE4NQd1bmkyMTg2B3VuaTIxODcHdW5pMjE4OAd1bmkyN0VGB3VuaTJERkYHdW5pQTY5Rgd1bmlBN0ZGB3VuaUE5MkUHdW5pRkUyMAd1bmlGRTIxB3VuaUZFMjIHdW5pRkUyMwd1bmlGRTI0B3VuaUZFMjUHdW5pRkUyNgd1bmlGRTI3B3VuaUZFMjgHdW5pRkUyOQd1bmlGRTJBB3VuaUZFMkIHdW5pRkUyQwd1bmlGRTJEB3VuaTAyOEEHdW5pMDJENAd1bmkwNEFGB3VuaTA0QjEHdW5pMjEyMwd1bmkyMDE2B3VuaTAyQ0MHdW5pMDI4Qgd1bmkwMUJGB3VuaTAzM0QHdW5pMDRGOQd1bmkwMzdBB3VuaTA0NkIHdW5pMDQ2RAd1bmkwNDY3B3VuaTA0NjkHdW5pMDQ5OQd1bmkwNERGB3VuaUZFRkYHdW5pMDRDMgd1bmkwNEREAAAAAAAEAAAAAwAAURwAAAAEAAAAJAADAAEAAFEcAAMACgAAACQADAAAAABQ+AAAAAAAAAa+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AAAA8QAAAPEAAAL4AAAA8gAAAPQAAAMMAAAA9QAAAPUAAAMJAAAA9gAAAPYAAAMIAAAA9wAAAPcAAAWXAAAA+AAAAPgAAAMKAAAA+QAAAPsAAAOJAAAA/AAAAPwAAAOEAAAA/QAAAP0AAAO6AAAA/gAAAP4AAAQmAAAA/wAAAP8AAAO3AAABAAAAAQAAAAALAAABAQAAAQEAAAIQAAABAgAAAQIAAAAMAAABAwAAAQMAAAH6AAABBAAAAQQAAAANAAABBQAAAQUAAAIRAAABBgAAAQYAAABMAAABBwAAAQcAAAJLAAABCAAAAQgAAABNAAABCQAAAQkAAAJMAAABCgAAAQoAAABOAAABCwAAAQsAAAJNAAABDAAAAQwAAABPAAABDQAAAQ0AAAJOAAABDgAAAQ4AAABWAAABDwAAAQ8AAAJYAAABEAAAARAAAAeDAAABEQAAAREAAAJTAAABEgAAARIAAABkAAABEwAAARMAAAJqAAABFAAAARQAAABlAAABFQAAARUAAAJrAAABFgAAARYAAABmAAABFwAAARcAAAJsAAABGAAAARgAAABnAAABGQAAARkAAAJtAAABGgAAARoAAABoAAABGwAAARsAAAJuAAABHAAAARwAAACQAAABHQAAAR0AAAKNAAABHgAAAR4AAACRAAABHwAAAR8AAAKOAAABIAAAASAAAACSAAABIQAAASEAAAKPAAABIgAAASIAAACTAAABIwAAASMAAAKQAAABJAAAASQAAACjAAABJQAAASUAAAKfAAABJgAAASYAAACpAAABJwAAAScAAAKeAAABKAAAASgAAADNAAABKQAAASkAAAKrAAABKgAAASoAAADOAAABKwAAASsAAAKyAAABLAAAASwAAADPAAABLQAAAS0AAAKzAAABLgAAAS4AAADQAAABLwAAAS8AAAK1AAABMAAAATAAAADRAAABMQAAATEAAAKoAAABMgAAATIAAAeSAAABMwAAATMAAALCAAABNAAAATQAAAEKAAABNQAAATUAAALGAAABNgAAATYAAAEPAAABNwAAATcAAALNAAABOAAAATgAAAhKAAABOQAAATkAAAEZAAABOgAAAToAAALbAAABOwAAATsAAAEaAAABPAAAATwAAALcAAABPQAAAT0AAAEbAAABPgAAAT4AAALdAAABPwAAAT8AAAeZ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AAACeQAAAnkAAANIAAACegAAAnoAAAihAAACewAAAnsAAANJAAACfAAAAnwAAANZAAACfQAAAn0AAANXAAACfgAAAn4AAANLAAACfwAAAn8AAANKAAACgAAAAoEAAAekAAACggAAAoIAAANkAAACgwAAAoMAAAgaAAAChAAAAoQAAAhHAAAChQAAAoUAAAgdAAAChgAAAoYAAAgbAAAChwAAAocAAAN5AAACiAAAAogAAAN2AAACiQAAAokAAAOIAAACigAAAooAAAneAAACiwAAAosAAAnlAAACjAAAAowAAAOlAAACjQAAAo0AAAOqAAACjgAAAo4AAAPIAAACjwAAAo8AAAe0AAACkAAAApAAAAPRAAACkQAAApEAAAPYAAACkgAAApIAAAggAAACkwAAApMAAAgiAAAClAAAApQAAAgwAAAClQAAApUAAAg4AAAClgAAApYAAAg0AAAClwAAApcAAAf/AAACmAAAApgAAAamAAACmQAAApkAAAjgAAACmgAAApoAAARGAAACmwAAApsAAAeRAAACnAAAApwAAAjhAAACnQAAAp0AAALFAAACngAAAp4AAALSAAACnwAAAp8AAAeaAAACoAAAAqAAAANCAAACoQAAAqEAAAgxAAACogAAAqIAAAgzAAACowAAAqMAAAJfAAACpAAAAqQAAAJiAAACpQAAAqUAAAJhAAACpgAAAqYAAAjOAAACpwAAAqcAAAi3AAACqAAAAqgAAAN4AAACqQAAAqkAAAKJAAACqgAAAqoAAAglAAACqwAAAqwAAAjiAAACrQAAAq0AAAgmAAACrgAAAq8AAAKcAAACsAAAArAAAAXQAAACsQAAArEAAAg8AAACsgAAArIAAAXSAAACswAAArMAAAXaAAACtAAAArQAAAiiAAACtQAAArUAAAgnAAACtgAAArYAAAemAAACtwAAArcAAAXfAAACuAAAArgAAAXhAAACuQAAAroAAAV5AAACuwAAArsAAAf8AAACvAAAArwAAAVrAAACvQAAAr0AAAf6AAACvgAAAr4AAAiNAAACvwAAAr8AAAiLAAACwAAAAsAAAAg1AAACwQAAAsEAAAg3AAACwgAAAsIAAAfQAAACwwAAAsQAAAfSAAACxQAAAsUAAAfPAAACxgAAAsYAAAZqAAACxwAAAscAAAZzAAACyAAAAsgAAAhT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AAAEGwAABBsAAAQGAAAEHAAABBwAAAEqAAAEHQAABB0AAAC7AAAEHgAABB4AAAFwAAAEHwAABCIAAAfEAAAEIwAABCQAAAQJAAAEJQAABCUAAAfIAAAEJgAABCYAAAQLAAAEJwAABCcAAAQNAAAEKAAABCwAAAQSAAAELQAABC8AAAQZAAAEMAAABDAAAAIZAAAEMQAABDMAAAS2AAAENAAABDQAAAS7AAAENQAABDUAAAJ/AAAENgAABDYAAAS8AAAENwAABDgAAAS+AAAEOQAABDkAAAhDAAAEOgAABDoAAATBAAAEOwAABDsAAATGAAAEPAAABDwAAATJAAAEPQAABD0AAATLAAAEPgAABD4AAAM3AAAEPwAABD8AAATQAAAEQAAABEAAAANAAAAEQQAABEEAAAJRAAAEQgAABEIAAATRAAAEQwAABEMAAAPDAAAERAAABEQAAATSAAAERQAABEUAAAO0AAAERgAABEYAAATVAAAERwAABEcAAATXAAAESAAABEkAAATaAAAESgAABEsAAATdAAAETAAABEwAAATcAAAETQAABE8AAATjAAAEUAAABFEAAAKAAAAEUgAABFIAAAKXAAAEUwAABFMAAAgvAAAEVAAABFQAAAToAAAEVQAABFUAAANwAAAEVgAABFcAAALAAAAEWAAABFgAAALJAAAEWQAABFoAAAThAAAEWwAABFsAAAKWAAAEXAAABFwAAAhLAAAEXQAABF0AAAkzAAAEXgAABF4AAAPEAAAEXwAABF8AAATWAAAEYAAABGAAAAefAAAEYQAABGEAAAhuAAAEYgAABGIAAAfMAAAEYwAABGMAAATgAAAEZAAABGQAAAeGAAAEZQAABGUAAAgVAAAEZgAABGYAAAe3AAAEZwAABGcAAAnsAAAEaAAABGgAAAe4AAAEaQAABGkAAAntAAAEagAABGoAAAe1AAAEawAABGsAAAnqAAAEbAAABGwAAAe2AAAEbQAABG0AAAnrAAAEbgAABG4AAAeXAAAEbwAABG8AAAhQAAAEcAAABHAAAAejAAAEcQAABHEAAAiBAAAEcgAABHIAAAQHAAAEcwAABHMAAAM1AAAEdAAABHQAAAQjAAAEdQAABHUAAATtAAAEdgAABHYAAAeUAAAEdwAABHcAAAhGAAAEeAAABHgAAAeuAAAEeQAABHkAAAM6AAAEegAABHoAAAegAAAEewAABHsAAAhvAAAEfAAABHwAAAehAAAEfQAABH0AAAhwAAAEfgAABH4AAAeiAAAEfwAABH8AAAh0AAAEgAAABIAAAAeWAAAEgQAABIEAAAhNAAAEggAABIIAAAi6AAAEgwAABIMAAAjFAAAEhAAABIQAAAh4AAAEhQAABIUAAAgEAAAEhgAABIYAAAiCAAAEhwAABIkAAAk0AAAEigAABIoAAAE8AAAEiwAABIsAAATAAAAEjAAABIwAAAk3AAAEjQAABI0AAATfAAAEjgAABI4AAAF5AAAEjwAABI8AAAM8AAAEkAAABJAAAAP9AAAEkQAABJEAAAS5AAAEkgAABJIAAAePAAAEkwAABJMAAAguAAAElAAABJQAAAQcAAAElQAABJUAAATmAAAElgAABJYAAAQBAAAElwAABJcAAAS9AAAEmAAABJgAAAe5AAAEmQAABJkAAAnuAAAEmgAABJoAAAEVAAAEmwAABJsAAATDAAAEnAAABJwAAAQEAAAEnQAABJ0AAATEAAAEoAAABKAAAAEUAAAEoQAABKEAAATFAAAEogAABKIAAACrAAAEowAABKMAAATMAAAEpAAABKQAAACtAAAEpQAABKUAAATNAAAEpgAABKYAAAQdAAAEpwAABKcAAATnAAAEqAAABKgAAAQfAAAEqQAABKkAAATpAAAEqgAABKoAAAeJAAAEqwAABKsAAAgZAAAErAAABKwAAAesAAAErQAABK0AAAi1AAAErgAABK4AAAevAAAErwAABK8AAAngAAAEsAAABLAAAAewAAAEsQAABLEAAAnhAAAEsgAABLIAAAHSAAAEswAABLMAAATUAAAEtAAABLQAAAQMAAAEtQAABLUAAATqAAAEtgAABLYAAAQOAAAEtwAABLcAAATYAAAEuAAABLgAAAQPAAAEuQAABLkAAATZAAAEugAABLoAAAQQAAAEuwAABLsAAAKmAAAEvAAABLwAAAQgAAAEvQAABL0AAATrAAAEvgAABL4AAAd/AAAEvwAABL8AAAftAAAEwAAABMAAAAh5AAAEwQAABMEAAAe7AAAEwgAABMIAAAnxAAAEwwAABMMAAAQFAAAExAAABMQAAATCAAAExQAABMUAAAeHAAAExgAABMYAAATHAAAExwAABMcAAACqAAAEyAAABMgAAATO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Bm0FuQWYBeUF5gZkA4cFvgWHBnUF5AW7BY0GVAZSBlUFOAAFAAYABwAEAAMACAA9AEsAYABhAGIAYwDKAMsAzADGB4sBLAFFAUYBRwFCAUEFlgFDAacBqAGpAaoB1wPZA3ICDQH5AgECFwIIAhMCHAJKAmcCaAJpAmUCrwKwArECqQQlAvgDDAMNAw4DCQMIBZcDCgOJA4oDiwOEA7oEJgO3AAsCEAAMAfoADQIRAEwCSwBNAkwATgJNAE8CTgBWAlgHgwJTAGQCagBlAmsAZgJsAGcCbQBoAm4AkAKNAJECjgCSAo8AkwKQAKMCnwCpAp4AzQKrAM4CsgDPArMA0AK1ANECqAeSAsIBCgLGAQ8CzQhKARkC2wEaAtwBGwLdB5kC2gEgAtQBLQL+AS4C/wEvAwABNgL6AUgDDwFJAxABSgMRAXUDOQF/A00BgANOAYEDTwGMA2YBjQNnAY4DaAGPA2kBmgN7AZsDfAerA3oBqwOFAawDjAGtA40BrgOOAa8DjwGwA5AByQOrAdgDuwHZAe4D0gHvA9MB8APUCFcCQABGB34CQQetCMwAUgBKAkgAXABVB4UCVggGAHoHqAeIAIoE8gCPA/sCmgDXAMgBFgLMAtUIUQhjATUC/QFyAUQDCweeCGwBegM9B7IBlwNxB4oIHAN1AaEIuQGiAaYDhgP3B7EB1gO4AfUDzgeMB44IIwgkBREFFQjLCDIJ5gh8CH0IfggfAF4CYAeYASICygebAT8DBgAOAgAA0gK2AUsDEgGxA5EBsgOSAbMDkwG0A5QBtQOVAoMADwIJABACDAA+Ah0AjgKMAJQCkQEQAs4BTAMTAU0DFAeNCCECxweCAF0CXgCVApIArgjUATADAQAJAhQAPwIeAWQDKwARAgcAEgIPAGkCbwBqAnAA0wK3ANQCuAFOAxUBTwMWAYIDUAGDA1EBtgOWAbcDlwGQA2oBnAN9CNUI1gCkAqAI1wJXCNgI2QH0A88AEwIKAGsCcQFQAxcBUQMYAVIDGQFTAxoB2gO8AtkC+wN3ArwI2gjbAC4AUQJHASEBowNlA9AI3AjdAEUBxAjeAHkCZgELAr4DRANDAYoDRwHgA7kCGAfUB9YCQghzAkkCVAJVCBgIpAinBEcESARKBEkCvQKLCC0HkAS1B9gCmwKYApkCrgRsB5MC1gLYAtcIWgLyAvMC8QL8AvkHnAM2B50IbQh7A0gIoQNJA1kDVwNLA0oHpAelA2QIGghHCB0IGwN5A3YDiAneCeUDpQOqA8gHtAPRA9gIIAgiCDAIOAg0B/8GpgjgBEYHkQjhAsUC0geaA0IIMQgzAl8CYgJhCM4ItwN4AokIJQjiCOMIJgKcAp0F0Ag8BdIF2giiCCcHpgXfBeEFeQV6B/wFawf6CI0Iiwg1CDcH0AfSB9MHzwZqBnMIUwgoCKkIKwnkCGEIOgfAB/UH9AiOCIwJ3wgTCIAIZAZuBnAGcQZ2BmsGZQiJCIMILAXUBdsF4Ag2CMYIyAjKCMkIxwjlCOYI5wjoCAUIWAZ6BngGgQaDBnwIdwZ+BoQGfQaABoUGeQaCCFUIVAZ7B+QGfwf9B/YH+wf3CDsHwgiyCLMHzQaGCI8ItAixCD0IPgaLBo0GjgaMBogGhwhWB+MHzgfnBokGigfgBpAIYgaPCNIIwwfaB9kIrQisCJAH4givCKgJ5wjECHYIOQfBCHoITwgHCEUI+QgXCMAH3whoCGkBPQkjCekJJAklCSYFiQEMBmcGdAAiBYgAfACwANkB4gPkBG0AIQBIA9oD2wB7AfYArwPcANgBFwA8ASgBPgPdAWUD3gF7A98BpAHhA+AB1APhA+IA2gHjBCgERQRUBG4EiQQnBEEEQgRDBEQEUgRTBGsEbAhIBH4IZQhnBH8DLASABIEEhQSGBIcEiASaA7UEnASdBG8EigMtBIsEngknB9sIuAP4A/kD+gSbCH8JKAkpCSoHqgiwB4QIEAeVCEwHpwijCEkIiAJQAsgBbgkrCSwJLQkuAFMBKQkvBIQJMAkxCTIAhgCHBCQHyQQeAZYA5wDoAQ0EFwQYBBEHygE4B8sECAAwA/wARwfDA/8AhQQABAIBNwE5BAMEBgEqALsBcAfEB8UHxgfHBAkECgfIBAsEDQQSBBMEFAQVBBYEGQQaBBsCGQS2BLcEuAS7An8EvAS+BL8IQwTBBMYEyQTLAzcE0ANAAlEE0QPDBNIDtATVBNcE2gTbBN0E3gTcBOME5ATlAoACgQKXCC8E6ANwAsACwQLJBOEE4gKWCEsJMwPEBNYHnwhuB8wE4AeGCBUHtwnsB7gJ7Qe1CeoHtgnrB5cIUAejCIEEBwM1BCME7QeUCEYHrgM6B6AIbwehCHAHogh0B5YITQi6CMUIeAgECIIJNAk1CTYBPATACTcE3wF5AzwD/QS5B48ILgQcBOYEAQS9B7kJ7gEVBMMEBATEARQExQCrBMwArQTNBB0E5wQfBOkHiQgZB6wItQevCeAHsAnhAdIE1AQMBOoEDgTYBA8E2QQQAqYEIATrB38H7Qh5B7sJ8QQFBMIHhwTHAKoEzgCsBM8HgQfvAScEygLvADECGgAyAhsAQAIfAIgCggQhCKUHqQimB7wJ8ge6Ce8EIgTsAToIRAE7CEIBcQM4AXMIagF0CGsJOAk5A8kDxQPKA8YDywPHB4AH7gk6CTsHswnoA/4EugHTBNMJPAk9BcoFzAXNBdMF1QXYBdwF3QX8BgUGCAYJABQCFgBCAkMAQwJEAEQCRQBQAk8AVwJZAFgCWgBZAlsAWgJcAFsCXQBsAnIAbQJzAG4CdABvAnUAcAJ2AIsCiACWApMApQKhAKYCogCnAqMAogKVAKgCpADJAqwAxwKqARECzwESAtABEwLRARwC3gEdAt8BHgLgAR8C4QEkAvQBJQL1ASYC9gExAwIBMgMDATMDBAE0AwUBVAMbAVUDHAFWAx0BVwMeAXcDPgF4Az8BhANSAYUDUwGGA1QBhwNVAZEDawGSA2wBkwNtAZQDbgGVA28BnQN+AZ4DfwGfA4ABoAOBAbgDmAG5A5kBugOaAbsDmwG8A5wBxgOmAccDpwHKA6wBywOtAcwDqQHNA64BzgOvAdADsgHRA7MB2wO9AfED1QHyA9YB8wPXAqUDggOwA74CEgKHAoYJeQGYCXoAFQILABYCDgAXAgIAGAIEABkCBQAaAgYAGwIDABwB+wAdAf0AHgH+AB8B/wAgAfwAcQJ3AHICeABzAnkAdAJ6AHUCewB2AnwAdwJ9AHgCfgDVArkA1gK6AVgDHwFZAyABWgMhAVsDIgFcAyMBXQMkAV4DJQFfAyYBYAMnAWEDKAFiAykBYwMqAb0DnQG+A54BvwOfAcADoAHBA6EBwgOiAcMDowHcA78B3QPAAd4DwQHfA8IJewl8CX0Jfgl/CYAEMQmBBFEJggRdCYMEeAmEAzQJhQSUCYYEpwmHBD8EQAArACwALQAvADsJiAmJCYoJiwmMBGYEZwRoBGkEagCDAIQAuQC6AMQJjQmPCZEEeQR6BHsJkwmUCZYJmASVBJYElwmaBIIEgwSYBJkB6AHpAeoB6wF8CZsJnAmdBLMEtAFtAW8D7QPjA/YJnwmhCD8IQQVUBVMFVQVWCeMI0QVpBWoFcQiFBW4FbwVwCIQFqgWrBVcFWghxBX4FfQhABpMGXQZeBXIFcwV0BXYFdwV4B+UFigWLCIYFMgU5CHUI0wfsB+YH1wVZBikFPgVABTYFNwU0CaMFvwVbBVwJpAiHCaUJpgmnCagJqQmqCasFdQmsCa0JrgmvCbAJsQmyBpQF4wXRBfEF8gXzBe0F7gXWBhwGHQYeBhgGGQX0BfgGAgYLCbQF+wX+Bf8GAAYBBgMGBgYHCB4FAQUDBQsE/AUGBP8E+AUJBPsFBwJjBPUE+gUEBQUJtQT5BQAE/QT+BQIJtgm3BPcE9gTzCbgFCAT0BQoFDQm5CboHBgcHBmEGYAahBbIBiQGIBbQFtQWzCeIGVgZZBlsGWgZYBlcImQigCJ4IlgiUCJsImgiRCJgInAiSCJ8IkwiXCJUInQhyCNAIuwgqCCkIqwiqCBQIZgi2CBYIzwaoBroGrQa7BrYGvAb8Bv8G+wXHA9sFwwWVBvEG9wb4BvoG+QbQBtQG0gbWBtIG1gbPBtMG0QbVBtEG1QbfBuEFyAbZBqkGrga3BqwGsQa5Aq0CtAK7Ar8CxANGA0wDVgNYBbwFvQXvBfAF9QX2BfcF+QX6BgQGCgYMBg0GGgYbCN8JswjkCFsIXwhcCGAJogmOCZUJkAmXCZIJmQmeCaAH/ge/CL8ICQfpB+oH6wfVCAEIEggPCA0IUgjCCF4IvAgLCAAIigfxCAoIDgfoB9wHvgfdCL4H8gfhCAgIEQhdCAwIwQfzB94H+QjNCL0HOQc6BzsHPAXZB/AFgQAKAewCFQPMAAAAAQAAABIAIAAKAAMAKgA6ADIAAkRGTFQAPGxhdG4APAADY3BzcAAya2VybgA4bWFyawA+AAEAAAABADAABAAAAAEAQgAJAAgAAgAqADIAPAAAAAAAAQAAAAAAAQABAAAAAQACAAEAjAAFABAAIAABAAIAACxsAAEAAgAANvoAAQAYAVoAAwA4BFIAAP//AAMAAAABAAIAAQAOBncGewZ8BoIIFwhbCFwIXwhgCQ8JEAkWCRgJvAAOAAAicAABInYAASJ8AAEiggAAIogAASKUAAEijgABIpQAASKaAAEioAAAIqYAAiKsAAIisgABIrgAAgAmAAIACQAAAAsAlgAIAKEA1wCUANkA6ADLAQkBhwDbAYoB6wFaAe0B9wG8A0QDRAHHA8kDywHIA9kEJAHLBRUFFQIXB34HjwIYB5IHkgIqB5QHmQIrB5sHmwIxB54HnwIyB6MHowI0B6cHswI1B7UHvAJCB8MHzAJKCGMIYwJUCHkIeQJVCNQI1QJWCNcI2AJYCNwI3AJaCN4I3gJbCR8JHwJcCSEJIQJdCScJJwJeCSkJKQJfCS0JLQJgCTAJMgJhCTcJOAJkCToJOgJmCTwJPAJnCXsJewJoCX0JfQJpCX8JfwJqAAIAfgACADsAAAA9AFwAOgBfAK0AWgCvARMAqQEXAYgBDgGKAZcBgAGZAaABjgGiAdUBlgHXAfMBygH1AfYB5wH4AkEB6QJDAkgCMwJKAlQCOQJWAl0CRAJfAl8CTAJhAmECTQJjAoMCTgKFAogCbwKKApkCcwKbApsCgwKeArwChALAAsICowLEAsUCpgLKAssCqALNAtcCqgLaAzgCtQM7A0IDFANFA0kDHANMA3EDIQN0A3UDRwN5A4YDSQOIA7QDVwO2A7cDhAO5A84DhgPRA9cDnAPaA9oDowPcA9wDpAPiA/YDpQP4A/oDugP+A/4DvQQABAIDvgQGBAcDwQQJBAkDwwQNBBEDxAQVBBUDyQQZBBkDygQbBBwDywQgBCEDzQQjBCMDzwQnBEAD0AREBEUD6gRHBEgD7ARKBFED7gRTBGoD9gRsBH0EDgSBBIQEIASIBJkEJASdBLQENgS4BLoETgS8BMEEUQTDBMMEVwTFBMgEWATUBNQEXATXBNkEXQTeBN4EYATjBOMEYQTmBOYEYgTrBO8EYwT/BQIEaAUEBQQEbAULBQ0EbQZkBmQEcAZmBmYEcQZoBmgEcgZrBmsEcwZ5BnkEdAaiBqYEdQcIByEEegdDB1wElAd/B4EErgeDB4MEsQeHB4cEsgeJB4kEsweLB48EtAeSB5IEuQeUB5QEugeYB5kEuwebB5sEvQepB6kEvgerB6wEvwevB7AEwQezB7MEwwe5B7wExAfDB8MEyAfFB8sEyQfUB9QE0AftB+8E0Qf9B/0E1AgZCBkE1QggCCEE1ggjCCME2AgpCCkE2QgtCC8E2ghCCEQE3QhGCEYE4AhLCEsE4QhqCGsE4ghyCHIE5Ah5CHkE5Qh/CH8E5giTCJUE5wiXCJcE6giZCJkE6wicCJ0E7AikCKYE7gi2CLYE8QjfCN8E8gkxCTME8wk4CT0E9gmBCYcE/AmTCZMFAwmaCZoFBAm+CcEFBQnoCegFCQnuCe8FCgnxCfIFDAUOJvYm/AAAJvYm/AAAJvYm/AAAJvYhgAAAJvYepAAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAJvYm/AAAAAAesAAAAAAesAAAAAAeqgAAAAAesAAAJM4k1AAAJM4k1AAAJM4k1AAAJM4k1AAAIFQgNgAAIAYetgAAJM4k1AAAJM4k1AAAAAAnRAAAAAAnRAAAAAAnRAAAAAAg/AAAAAAnRAAAAAAnRAAAAAAnRAAAAAAg/AAAAAAnRAAAAAAnSgAAAAAnRAAAJwInCAAAJAIevAAAJwInCAAAJwInCAAAJwInCAAAJwInCAAAJwInCAAAJwInCAAAJwInCAAAHzoiagAAHzofLgAAHzoewgAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzofNAAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHzoiagAAHsgezgAAHtQe2gAAHuAe5gAAHuwe8gAAHvge/gAAHwQfCgAAHxAfFgAAHxwglgAAHyIfKAAAHzoiagAAHzofLgAAHzofNAAAHzoiagAAJMIkyAAAJMIkyAAAJMIkyAAAH0AfRgAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAfTAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAkvAAAJjAfTAAAJjAkvAAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH1IfWAAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH9Yf3AAAH14fZAAAH2ofcAAAH5QfmgAAH6AfpgAAIgQfrAAAJRwfsgAAJfofuAAAH74fxAAAH8of0AAAJCAfdgAAH3wfggAAH9Yf3AAAH4gfjgAAH5QfmgAAH6AfpgAAIgQfrAAAJRwfsgAAJfofuAAAH74fxAAAH8of0AAAH9Yf3AAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4f4gAAJw4gzAAAJw4nFAAAILogwAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAJw4nFAAAIwwnyAAAJw4nFAAAH+gf7gAAJw4nFAAAH/Qf+gAAJzIgAAAAIAYiRgAAIAwgEgAAIBggHgAAICQgKgAAIDAgNgAAIFQhvAAAJw4nFAAAJw4nFAAAJM4kyAAAIkAnUAAAJw4nFAAAJw4gPAAAILogtAAAILogtAAAILogtAAAILogtAAAILogtAAAILogQgAAILogSAAAILogtAAAILogwAAAILogtAAAILogtAAAILogtAAAILogtAAAILogtAAAILogtAAAILogtAAAILogtAAAILogtAAAIE4kvAAAIFQhvAAAIFogYAAAIGYgbAAAIHIgeAAAIH4lTAAAIIQgigAAIJAglgAAILogtAAAILogtAAAIJwgogAAIKggrgAAILogtAAAILogwAAAAAAgxgAAAAAgxgAAAAAgxgAAAAAgxgAAAAAgxgAAJn4lBAAAJn4lBAAAJn4lBAAAJn4mhAAAJn4lBAAAJn4lBAAAJn4lBAAAJvAnFAAAJvAgzAAAJvAnFAAAJvAnFAAAJvAnFAAAJvAnFAAAJvAnFAAAJvAnFAAAJvAnFAAAJvAnFAAAJvAnFAAAJxonIAAAJxog0gAAJxonIAAAJxonIAAAJxonIAAAJxonIAAAJxonIAAAJxonIAAAJjAg6gAAJjAg2AAAJjAg3gAAJjAg6gAAJjAg6gAAJjAg5AAAJjAg6gAAJjAg6gAAJjAg6gAAJjAg6gAAJQonRAAAJjAg6gAAAAAg6gAAAAAg5AAAAAAg6gAAAAAg6gAAAAAg6gAAAAAg6gAAAAAg6gAAJjAg6gAAJjAg6gAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQog8AAAJQog/AAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQog/AAAJQog8AAAJQonRAAAJQog9gAAJQonRAAAJQog/AAAJQonRAAAIQIhCAAAJ9ohDgAAIRQhdAAAIRohIAAAISYhLAAAITIhOAAAIT4hRAAAIUohUAAAJQonRAAAIVYhXAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAJQonRAAAIWIhaAAAAAAmbAAAAAAhbgAAAAAmbAAAAAAmbAAAAAAhdAAAAAAmbAAAAAAhegAAJQonRAAAIYYkyAAAIYYhgAAAIYYkyAAAIYYkyAAAIYYkyAAAIYYkyAAAIYYkyAAAIYYkyAAAIYYkyAAAIYYkyAAAIYYkyAAAIl4hjAAAJJ4kpAAAJJ4hkgAAJJ4kpAAAJJ4kpAAAJJ4kpAAAJJ4kpAAAJJ4kpAAAJJ4kpAAAJJ4kpAAAJJ4kpAAAJJ4kpAAAJJ4kpAAAIZghngAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAJnIndAAAIbYhvAAAIbYhvAAAIbYhqgAAIbYhpAAAIbYhvAAAIbYhvAAAIbYhsAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhvAAAIbYhpAAAIbYhqgAAIbYhvAAAIbYhsAAAIbYhvAAAIbYhvAAAJvYm/AAAJvYhwgAAJvYm/AAAIdQmYAAAIdQmYAAAIdQhyAAAIdQhzgAAIdQmYAAAIdQmYAAAIdQmYAAAJ24ndAAAJ24ndAAAJ24ndAAAJ24ndAAAJ24ndAAAJ24ndAAAJkImSAAAJkIh2gAAJkImSAAAJkImSAAAJkImSAAAJkImSAAAJkImWgAAJkImSAAAJkImSAAAJkIh4AAAJkImSAAAJkImSAAAIeYh7AAAJkImSAAAIfIh+AAAJ+Yh/gAAIgQiCgAAIhAiFgAAJkImSAAAJkImSAAAIhwiIgAAIigiLgAAJkImSAAAIxgiOgAAIxgiNAAAIxgiOgAAIxgiOgAAIxgiOgAAIxgiOgAAIxgiOgAAIxgiOgAAIxgiOgAAIkAjlgAAIkAjkAAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAk4AAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAm2AAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAjlgAAIkAk4AAAIkAjlgAAIkAjlgAAIkAjlgAAIkAk4AAAAAAiTAAAAAAiTAAAAAAiRgAAAAAiTAAAJvAmxgAAJvAmbAAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAiWAAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAiUgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAmxgAAJvAiWAAAIl4iZAAAIl4iZAAAIl4iZAAAIl4iZAAAIl4iZAAAIl4iZAAAAAAmqAAAAAAmqAAAAAAmqAAAAAAmqAAAAAAiagAAAAAmqAAAAAAmqAAAAAAmqAAAAAAiagAAAAAmqAAAAAAmqAAAInYifAAAInYifAAAInYifAAAJIwicAAAInYifAAAInYifAAAInYifAAAInYifAAAInYifAAAInYifAAAInYifAAAInYifAAAInYifAAAInYifAAAJyYnmAAAJyYnLAAAJyYnmAAAJyYj6gAAJyYjJAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnLAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYj6gAAJyYnLAAAJyYnmAAAJyYnmAAAIogijgAAAAAiggAAAAAijgAAIogijgAAJsAmxgAAJsAmxgAAJsAmxgAAJsAmxgAAJsAmxgAAJsAmxgAAJsAmxgAAJsAmxgAAJsAmbAAAJsAmxgAAIvoi4gAAIvoi4gAAIvoi4gAAIvoi4gAAJyYnmAAAJyYnmAAAIpQmqAAAIvoi4gAAIvoi4gAAIvoi4gAAIvoi4gAAIvoi4gAAIvoimgAAIvoi4gAAIvoi4gAAIvoi4gAAJ5InPgAAJ5InPgAAJ5Ii4gAAJ5InPgAAIqAipgAAJ5InPgAAJ5InPgAAJ5InPgAAJ5IirAAAJ5IisgAAJ5InPgAAJ5InPgAAJ5InPgAAIrgnPgAAIrgnPgAAJ5InPgAAJ5InPgAAJ5InPgAAJ5InPgAAJ5InPgAAJ5InPgAAIr4ixAAAJ5InPgAAJ5Ii4gAAJ5InPgAAIsoi0AAAIsoi0AAAJ8InyAAAItwi4gAAItwi4gAAItwi4gAAItwi1gAAItwi4gAAItwi4gAAIugnjAAAJ8InyAAAJ8InyAAAJ8InyAAAIu4i9AAAJ8InyAAAJ8InyAAAJ8IjBgAAJ8InyAAAJ8InyAAAJ8InyAAAJ8InyAAAJ8InyAAAJ8InyAAAIwwnyAAAIwwnyAAAIwwnyAAAIwwnyAAAIvojAAAAIwwnyAAAIwwjBgAAIwwnyAAAIwwnyAAAIwwnyAAAIwwnyAAAIwwnyAAAIwwnyAAAJw4nFAAAJ9on4AAAJ9on4AAAJ9on4AAAJ9on4AAAJ9ojEgAAJ9on4AAAJ9on4AAAJyYnmAAAJyYnLAAAJyYnmAAAJyYnmAAAJyYnmAAAIxgjHgAAJ5InmAAAJyYjJAAAJyYnmAAAJyYnmAAAJyYj6gAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJyYnmAAAJ54npAAAJ54m3gAAJ54m3gAAJ54npAAAJ54npAAAJ54nUAAAJ54migAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54migAAJ54nUAAAJ54npAAAJ54m3gAAJ54npAAAJ54migAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54npAAAJ54m3gAAIyojMAAAIyojMAAAIyojMAAAIyomSAAAIyojMAAAIyojMAAAIzYjPAAAIzYjPAAAI04jVAAAI04jVAAAI04jVAAAI0IjYAAAI0IjYAAAI04jVAAAI04jSAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jSAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI04jVAAAI/AngAAAI/AngAAAI/AngAAAI/Aj6gAAI/AngAAAI/AngAAAI/AngAAAI/AngAAAI/AngAAAI/AngAAAI/AngAAAI/AngAAAI/AngAAAI/AngAAAI1ojYAAAI3gjcgAAI3gjcgAAI2YjbAAAI3gjcgAAI3gjcgAAI3gjcgAAI3gjcgAAI3gjcgAAI3gjcgAAI3gjcgAAI3gjcgAAI3gjfgAAJ4YjlgAAJ4Yk4AAAJ4Yk4AAAJ4YjlgAAI4QjigAAJ4Ym2AAAJ4YjkAAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjlgAAJ4YjkAAAJ4Ym2AAAJ4YjlgAAJ4Yk4AAAJ4YjlgAAI8wj5AAAI8wj5AAAI8wjxgAAI8wj5AAAI64jtAAAI64jnAAA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Vf5V/lX+Vf5W2FX+Vf5V/lX+Vf5V/lX+Vf5V/lX+Vf5V/lX+Vf5V/lX+Vf5V/lX+YUJPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeFsGWwZbBlsGWwZPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94T3hPeE94TsJRalBmUGZQOFBmUDhQOE94Yg6HAm4WYg5yNn6mcjZ8YmIOcvRqhmIOT5BiDk+QT5BPkE+QT5BPkE+QT5BPkE+QT5BPkE+QT5BPkE+QT5BPkE+QT5BPkE+QT5BPkGSOZI5kjmSOZI5PkFfaWVJZmFRoVEZURlRGVEZURlRoURpQeFB4URpRGlEaY0hm3GJ0YnRidGNIZ+BidGdeZ+Bn4GNIY0hjSGNIY0hjSGNIY0hjSGNIY0hjSGNIT55Pnk+eT55Pnk+eT55Pnk+eT55PnlEsUSxRLFEsUSxRLFEsUSxRLFEstP5RLFEspxRRLFEsUSxRLFEsUSxRLFEsUSxRLF6kUSxRLFEsUSxRLFEsUSxQ9lEsUSxRLFD2UPZQ9lD2UORQ5FDkUORQ5FDkUORQ5FDkUORV/lDkUORV/lDkUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORSMFIwUjBftlIwUjBSME7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwlX+axx5bFX+VPRV/lX+Vf5V/lX+U1JTUlNSW1hQ9lD2Xv5Q9lD2UPZQ9lD2UPZQ9lD2UPZQ9lD2UPZQ9lD2UPZQ9lD2UPZQ9p4gUPZRgFD2UPZQ9lD2UPZQ9l+2UIpQilCKUZZepE5ia7JOYk5iTmJOYk5iTmJOYk5iUSxRLFEsUSxepF6kUORXBk5iUSxRLFEsUSxRLFEsUSxRLFEsYUJhQmAUcBRzsmDcYUJP1mFCYHZsSHDKbN5hQmFCbsB1PnR4b2pg3GFCYUJP1k/WT9ZhQmAUYUJhQmFCYUJ2DGUAYUJhQmFCUEZQRlBGUEZQRlBGUEZRLFX+V6BZEFX+T9ZWJFegVRpV/lX+Vf5VGr6mucTDmFX+Vf5V/k/WVf5V/lX+Vf5V/lX+Vf5V/lX+USxRLFzyTmJRLFEsUSxRLF5KT9ZepFEsUSxRLFEsUSxRLFEsUSxhQlIwX1hfWFIwUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwoppSMFGsUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwUjBSMFIwUPZQilIwUjBSMFIwUjBSME5iTmJxgFJ6UnpRLFEsUnpSelJ6UnpSelJ6UnpSelJ6UnpSelJ6UnpSelJ6UnpSelJgUnptdFJ6UnptdFJ6TsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTsJOwk7CTs5P1k/WT9Ze/k/WT9ZP1k/WT9ZP1k/Wq5KwSE/WUORQ5FDkUOSCkFVAUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORXNFc0VzRXNFDkWJBTNFiQWJBPrE+sT6xPrE+sT6xPrE+sWJBYkFCKaGJYkFiQWJBYkFiQWJBYkFiQWBRYkFiQWJBYkFiQUIpYkFNSW6pTUluqW6pTUlNSU1JTUlv8W/xcToiMk3pSlE94ZCBPeIV8V9pOaGIOYg5O2Gn8VAZUBlX+T3hjSFKuTthV/lEsUSxV/k7YUjBV/lIwUjBSME94TrxV/lfaU3BSMFIwT7pPuk+6T7pPuk+6T7pPuk+6T7pPuk+6T7pPuk+6T7pPuk+6T7pPuk+6T7pPuk+6T7pPuk7sUshO4k5uTm5Q9k5uTm5Obk5uTm5Obk5uTm5Obk5uTm5coE7sUJxQnFCcUJxQnFCcUJxQnFCcUJxQnFCcUJxQnFCcUJxQnFCcek5O9niOUjBSMFIwUjB9gFCuUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUORQ5FDkUjBSME/ITnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50TnROdE50aGJOgE7CUQhRCFEITnpOgFEsT9ZQRlIwUEZQRlBGUSxP1k/WUSxP1lEsT9ZRCFEsT9ZRLFVmUjBP1lEsUSxP1lEsUSxP1mFCUjBSMFEsTsJQ9k/WUPZYkE7CWd5aJFHCToZQwE68TrxOwk/kT/JTjlLizvhPMlHYT+RP8k8AToyKZk8Kdtp7VGGoUABQDk7CUBxPFE8eTx5PHk8oTzJi3lX+f+xTylPKUSxTylL8Wm5PPE88UvxablWMVYxabl1IXUhdnlXYVdiMTE88T0ZR7k9GUe5PUI5yT25Pbk9uT25VslPKd7RTyk9uT25TrE9uT25Pbk9uU8pTylPKT25PblPKTpLJFk9aT1pQKlAqgTpOmE94TphPWoP+T1pPWk9aT1pV/lA4XfROnk6kUgRUilIETqRQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJQ0lDSTqpUrE6qUNJQ0lDSUNJQ0lDSUNJQ0lDSUNJSBFIEUgRSBFIEUgRSBFhSUgRSBE6wT2RSBE62UhpTylPKU8pPbk9uU8pTylPKT25Pbk94T3hV/lX+Vf5V/lX+TsJOwlX+1mrWak7CTsJOvE68T3hiDl30UORV/k94kORiDmNIY0hT6FPoURpRGmIOVf5QOE68Yg5RGmIOVAZSMFD2USxRLE7CTsJRCFEIUQhRLFEsUSxYkFBGTsJRLFiQUjBSMFX+VdhV/lX+V9pX2lEaVf5V/lX+URpV/lX+Vf5V/l+2UjBSMFEITshRLFIwUSxSMGIOUQhRGliQWJBRLAAC1cIABAAA4KrYzABmAFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IAAAAAP8w/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAA/3AAAP+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5D/6AAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAA/8gAAAAA/xD/kAAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAD/cP/A/8z/cP+g/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/YP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAP+g/6wAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAD/8P+Q/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAA/0D/oAAA/zD/EAAAAAD/cAAAABAAAAAAAAAAAAAAAAAAAP8AAAD/QAAA/0D/YP8wAAAAgAAAAAAAAAAAAAAAAAAA/yD/IAAAAAAAAAAA/uAAAAAAAAD/oP+g/+T/oP84AAD+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAD+wP6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsP7wAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAA/xD/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cP/YAAD/cAAA/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg//AAAAAAAAAAYAAAAAAAAAAAAAD/1P+g/8gAAAAA/+QAAAAAAAAAAAAA/+AAAAAAAAAAAP/kAAAAAP/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAD/2AAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8g/2D/rP8Q/qD/MP8w/1AAAAAAAAAAAP8wAAAAAP8wAAAAAAAAAAAAAAAA/4AAAAAAAAAAAP9Q/1AAAAAA/1ABAP8AAAD/oAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAD+kP9wAAAAAAAA/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAABgAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/KP+Q/6D/MP7A/zj/kAAAAAAAAAAAAID/IAAA/vD/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAA/1AAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAA/wD/UAAAAAD/6P7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IAAAAAP9A/3D/0AAAAAAAAAAA/6D/oAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcP9QAAAAAP+AAAAAAAAAAAAAAAAAAAAAAP+gAGQAAAAAAAD/kAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAA/5D/cAAAAAAAGABgAAAAAP9g/5AAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAIAAAAAAABgAGAAAAAAAAAAA/2AAAAAAAAAAYAAAAAAAAAAAAAAAAAAA/1AAMAAAAAAAAAAAAAAAAAAAAAD/IAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8g/zAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAAAA/3D/wAAA/3AAAP+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAA/1D/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAA/1AAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UP8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAD/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8w/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6P9w/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAA/5AAAAAA/vAAAAAAAAAAAAAAAAD/cAAAAAAAAAAAAAAAAAAAAAD/QP+gAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1AAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAD/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+wAAD/4AAAAAAAAAAAAAAAAAAAAAAAAP9AAAD/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAP+gAAAAAAAA/6D/kAAAAAAAAAAA/tAAAP+gAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAA/9YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+0AAAAAAAAAAA/6AAAAAAAAAAAP5wAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAAAAAAAAAAAA/2D/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAAAAAAAAAAAA/8D/rAAAAAAAAAAAAGD/8AAAAAAAAAAAAAAAAAAAAGD/wAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAgAAAAAAAAP9A/8AAAP+g/vD/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+UAAA/0AAAAAAAAD+8AAAAAAAAAAAAAAAAAAAAAAAAP8A/pAAAAAAAAAAAP+QAAAAAAAA/1AAAAAA/4D/HAAA/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+wAAAAAAAA/5D/sAAAAAAAAAAAAAD/UP+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAD/kAAAAAAAAAAA/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAA/zD/IAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAD+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAAAAAAAAAAAA/1D/wAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/MAAAAAP9AAAAAAAAAAAAAAAAAAAD/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAP9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8wAHgAAAAAAAD/oAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAP+g/1D+8P9wAAAAAAAAAAAAAAAA/3AAAP9Q/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw/vAAAP9QAAAAAAAAAAAAAAAAAAAAAAAA/vAAAAAAAAAAAP9gAAAAAAAAAAD+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cP+g/6D/YP8A/3AAAAAAAAAAAAAAAAD/cAAA/1D/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UAAA/3AAAAAAAAAAAAAAAAAAAAAAAAD+8AAAAAAAAAAA/2AAAAAAAAAAAP7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAP8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAAAAA/6D/kP/UAAAAAAAAAAAAHAAA/7AAAAAA/8AAAAAAAAAAAAAA/8AAAAAAAEAAAAAAAAAAAAAAAAAAAAEg/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2AAAAAAAAAAAP+QAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAQAAAP9gAPAAAAAAAAAAAAAAAHAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAAAAAAD/oAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAAAAD+IP7oAAAAAAAAAAAAAP+wAAAAAAAAAAAAAAAAAAAAAP7o/8D/sAAA/2D/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAAAAAAAAP/d/9UAAAAA/5D/8AAA/wD/YAAA/6D/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAA/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAD+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6AAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/IABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+g/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/uP8YAAAAAAAAAAAAAP9gAAAAAAAAAAAAAP9w/wwAAAAAAAD/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+4AAAAAAAAAAAAAAAAAAAAAAAA/3D/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1D/xAAA/oAAAP9g/5AAKAAo/1AAAAAA/1D/UP9g/ygAAAAAAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/qAAAP9g/1AAAAAA/4AAAAAAAAAAAAAA/ugAAP9w/1AAAP8QAAD/4AAAAAD98AAAAAAAAP6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+T/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAAAAD/UP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/oAAAAAAAAP+gAAAAAP8A/pAAAAAAAAAAAAAA/5AAAAAAAAAAAAAA/6AAAAAA/1D/oP+g/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6AAAAAAAAAAAAAA/5AAAAAA/xD/gAAA/6AAAAAAAAAAAAAAAAD/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4gAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAA//D/OAAA/+AAAAAAAAAAAP/oAAAAAAAAAAD/4AAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP90AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3AAAAAA/tD+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7wAAD/AAAAAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vAAAAAAAAAAAAAAAAD/QAAAAAD+oAAAAAAAAAAAAAAAAAAAAAAAAP9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/mAAAAAA/xAAAAAAAAAAAAAAAAAAAAAA/xAAAP9QAAAAAAAAAAAAAAAAAAD+oAAAAAAAAP7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAP8wAAAAAAAAAAAAAAAAAAAAAAAA/vD/IAAAAAAAAAAA/vAAAP+gAAD/oP+gAAD/oAAAAAD+gAAAAAAAAAAA/6AAAAAAAAAAAP9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAP+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAHAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAwABgAAAAAAAAAAAAcAAAAGAAAAAAAAAAAAAAAAAAAABgAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8wAGAAAAAAAAAAAAAAAAAAAAAA/yD/UAAAAAD/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1AAAAAA/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAAAAAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/90AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWpAGAAAQQU/2AAAQPh/4AAAQPh/xAAAQWpAIAAAQTd/6AAAQK3AHAAAQUX/5AAAQQU/3AAAQUw/6AAAQXJAAAAAQXq/9sAAQYm/94AAQYp/9gAAQYmADwAAQWp/5AAAQK3AGAAAQK3AIAAAgVp/0AFbv9AAAID/wBgBakAsAACA+H/EASH/6AAAgVp/1AFbv9QAAID4f+ABakAwAACBRf/kAWp/4AAAgcGAfQHBwH0AAIHBv5cBwf+XAACAIoAAALHAAAAAgcG/loHB/5aAAIHBgAABwcAAAACBRP/UAUw/6AAAgPh/1AEFP9AAAIHBv+wBwf/sAACAKkAcAUw/5AAAgYp/zgGTP+cAAIEFP+ABPf/kAACBU3/kAWp/5AAAwK3AGAHBgAABwcAAAADArcAYAVN/2AFqf9wAAMCtwBgBYf/oAWO/1AAAwGi/1ABo/9QBTD/oAADBU3/oAWO/5AFqP+gAAMD4f8QBH7/kAUX/6AAAwK3AIADXQBgBY7/sAADA+H/oAUX/8gFqf+AAAMFe/+gBXz/oAV9/6AAAwK3ARAC4ABgA2IAYAADArcAcALgAGADYgBgAAMCtwCAAuAAYANiAGAAAwUT/4AFMP+gBan/QAADBTD/oAV8/6AFff7wAAMFE/+ABY7/EAWo/0AABAVN/5AFqf+QBwYAAAcHAAAABAUw/6AFe/+QBXz/kAV9/5AABAK3AIAFh/+ABY7/YAWu/4AABAKdAHACtwCABRP/UAWp/9gABAVN/6AFjv+QBaj/oAWp/6AABARD/5AEhf+QBWn/kAVu/5AABAKeAGACtwCAArgAYANdAGAABAPh/sAEDf+QBBT/oAer/zAABAGb/zABov8wAaP/MAK3AHAABAGi/yABo/8gAdb/kAP7/5AABAOl/4gFqP+gBan/cAXF/2AABAK3AHAFh/+ABY7/YAWu/4AABAGi/zABo/8wAdb/cAP7/6AABQK3AGAFe/+ABXz/kAV9/4AFqf+gAAUCtwBwBXv/kAV8/5AFff+QBan/oAAFBTD/oAV8/6AFff7wBwYAAAcHAAAABQGi/yABo/8gAdb/kAK3AIAD+/+QAAUCnQBwArcAgANdAGAFE/9QBan/2AAFAaL/IAGj/yAB1v9wArcAgALF/4AABQVN/5AFe/9ABXz/QAV9/0AFqf9wAAUD4f+gBRf/yAWp/4AHBgAUBwcAFAAFA+H/AAQA/3AEFP9ABRf/cAUY/6AABQCpAIAEgABgBIcAYAUT/2AGPQAAAAUFaf9QBWr/QAVu/1AFb/9ABXT/QAAFAaL/IAGj/yAB1v9wArcAYALF/4AABgK3AGAFfP+gBX3/EAWp/6AHBgAABwcAAAAGAfgAAAK3AIADXQBgBU3/oAWO/5AFqP+gAAYB+AAAArcAcANdAGAFTf+gBY7/kAWo/6AABgPh/1AEUv+QBGv/kASH/3AFNf9QBa7/oAAGBAD/cAQU/6AFTf+QBXD/cAVx/3AFqf+QAAYD3/+gBH7/kAVN/6AFjv+QBaj/oAWp/5AABgVw/4AFcf+ABXv/oAV8/6AFff+gBan/gAAGA///cAS7/2AFE/9QBTD/UAU4/1AFTf7wAAcCqgBgArcAgAWH/4AFjv9ABaj/cAWu/6AFwf+gAAcExf+IBNH/iATd/4gE7P+ICCD/iAgh/4gItf+IAAcBmv+gAZ3/oAGe/6ABn/+gAaD/oAGi/5ABo/+QAAcBov8gAaP/IAHW/3ACtwBgAsX/gAUP/6AFG/+gAAcFe/+0BXz/tAV9/7QFr//wBbL/8AcGACIHBwAiAAcBmv+gAZv/oAPh/yAEAP+gBAL/cAQU/0AFF//AAAcBmv+gAZv/oAPh/yAEAP7QBAL/cAQU/0AFF//AAAcC4ABgA2IAYAU1/1AFh/+gBY4AAAWu/6AHq/9gAAcCqgBgArcAcAWH/4AFjv9ABaj/cAWu/6AFwf+gAAgAyABgASEAYAK3AGAC1ABgAtUAcAOIAGAHgwBgB4sAYAAIArcAgAUT/6AFMP9wBTgAAAVNAAAFUAAABYf/oAWO/zAACAK3AHAFE/+gBTD/cAU4AAAFTQAABVAAAAWH/6AFjv8wAAgF4//jBeb/4AXn/5MF6P/tBen/4wXqACUF6//lBez/7QAIBh//5gYi/+MGI/+eBiT/7wYl/+YGJgAiBif/6AYo/+8ACQKqAGACtwBwBYf/gAWO/0AFqP9wBa7/oAXB/6AHBv/YBwf/2AAJAp4AYAKxAGACsgBgArMAYAK2AGACtwCAArgAYANdAGAFFwCAAAkAxgDgAMcAgADJAHACtQBgArcAcALgAIAC4QBgA2IAgAWpAGAACQDIAGABIQBgAZv/MAGi/zABo/8wArcAcALVAGAHgwBgB4sAYAAJA6X/iAVw/zAFcf8wBXv/AAV8/wAFff8ABaj/oAWp/3AFxf9gAAkD4f7gA/8AkAQN/1AEFP9wBLsAsATR/3AE1/+gBN3/kAer/vAACQGa/6ABm/+gA+H/IAQA/tAEAv9wBBT/QAUX/8AHBgAABwcAAAAJAZr/oAGd/6ABnv+gAZ//oAGg/6ABov+QAaP/kAPh/1AEFP9wAAkAxgDgAMcAgADJAHACtQBgArcAYALgAIAC4QBgA2IAgAWpAGAACgCKARgBNQEYArwBGAK9ARgCwwEYAsYBGALHARgCyAEY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AZ3/oAGe/6ABn/+gAaD/oAGh/6AB2/+gAd3/oAHe/6AB3/+gBRT/2AUX/9gFGP/ABRn/7AUxAAAFNf8EBmb+gAaRAAAHq/+gCIT+gAiF/oAAFQGa/6ABnf+gAZ7/oAGf/6ABoP+gAaH/oAHb/6AB3f+gAd7/oAHf/6AFFP/YBRf/2AUY/8AFGf/sBTEAAAU1/wQGZv6ABpEAAAer/6AIhP4ACIX+gAAVAdX/oAHW/6AB1/+gAdj/oAHZ/6AB2v+gAdv/oAHc/6AB3f+gAd7/oAHf/6AB4P+gAeH/oAHi/6AB4/+gAej/oAHp/6AB7P+gBAn/oAev/6AHsP+gABYBmf9wAZr/cAGb/3ABnP9wAZ3/cAGe/3ABn/9wAaD/cAGh/3ABov9wAaP/cAGk/3AB1v9wA/v/oAQM/3AEEf9wBBT/cAQk/3AG8f9wB6v/cAes/3AHx/9wABYBmf8wAZr/MAGb/zABnP8wAZ3/MAGe/zABn/8wAaD/MAGh/zABov8wAaP/MAGk/zAB1v9wA/v/oAQM/zAEEf8wBBT/MAQk/zAG8f8wB6v/MAes/zAHx/8wABYBmf8gAZr/IAGb/yABnP8gAZ3/IAGe/yABn/8gAaD/IAGh/yABov8gAaP/IAGk/yAB1v+QA/v/kAQM/yAEEf8gBBT/IAQk/yAG8f8gB6v/IAes/yAHx/8gABcBmf9wAZr/cAGb/3ABnP9wAZ3/cAGe/3ABn/9wAaD/cAGh/3ABov9wAaP/cAGk/3AB1v9wArcAYALF/4AEDP9wBBH/cAQU/3AEJP9wBvH/cAer/3AHrP9wB8f/cAAXAZn/IAGa/yABm/8gAZz/IAGd/yABnv8gAZ//IAGg/yABof8gAaL/IAGj/yABpP8gAdb/cAK3AGACxf+ABAz/IAQR/yAEFP8gBCT/IAbx/yAHq/8gB6z/IAfH/yAAGABVAGAAXgDQAHkA0ACqANAArgDQATUA0AE3ANABPADQAT0A0AGJANABoQBgAp4AcAKvAGACsQBgArIAcAKzAGACtgBgArcAkAK4AGACxf9gAsYAYANdAHAFFwEABqEA0AAZAFUAYADQAGABoQBgAcYAYAHHAGABzQBgAc4AYAKeAHACqwBgAqwAgAKyAHACswBwArUAcAK3AJACuABgAsYAcALgAIAC4QBgA10AYANiAIADgABgBPAAYATyAGAE+wBgBakAcAAZAFUAYADQAGABoQBgAcYAYAHHAGABzQBgAc4AYAKeAHACqwBgAqwAgAKyAHACswBwArUAcAK3AHACuABgAsYAcALgAIAC4QBgA10AYANiAIADgABgBPAAYATyAGAE+wBgBakAcAAZAFUAYADQAGABoQBgAcYAYAHHAGABzQBgAc4AYAKeAHACqwBgAqwAgAKyAHACswBwArUAcAK3AGACuABgAsYAcALgAIAC4QBgA10AYANiAIADgABgBPAAYATyAGAE+wBgBakAcAAZAcUAAAHGAAABxwAAAcgAAAHJAAABygAAAcsAAAHMAAABzQAAAc4AAAPh/wAD+wAABCMAAARC/6AFUAAABWn/UAVq/6AFbv9QBW//oAV0/6AHq/9ACJEAAAiUAAAImgAACJsAAAAZAgj/kAIX/5ACZf9wAwj/cAMJ/3ADhP9wA4X/kAOp/3ADt/+gA87/kAPQ/5AD0f+QA9b/oAPX/6AD2P+QBRP/QAUw/6AFTf8gBVH/MAV9/xAFgP+QBYf/IAWO/yAFqf9gBa7/oAAaAQv+sAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/7ACtwCAAw//YAND/2AEJ/9gBRP/QAUw/1AFff7wBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAGgEJ/1ABCv9QAQv/UAEM/1ABDf9QAcUAAAHGAAABxwAAAcgAAAHJAAABygAAAcsAAAHMAAABzQAAAc4AAAK3AHAD+wAABCMAAAVQAAAFe/+QBXz/kAV9/5AIkQAACJQAAAiaAAAImwAAABoBC/6wAkj/YAJJ/2ACVP9gAlf/YAJe/2ACYf9gAmL/YAJm/2ACg/9gArD/sAK3AHADD/9gA0P/YAQn/2AFE/9ABTD/UAV9/vAFh/9wBYn/UAWO/uAFlv+ABaj/cAWu/5AFwf+gCKT/YAAbAMYA4ADHAIAAyQBwArUAYAK3AGAC4ACAAuEAYANiAIAFqQBgBaoAcAWrAHAFswBwBboAcAW7AHAFvABwBb0AcAY5AIAGOgCABjsAgAY8AIAGPQCABj4AgAY/AIAGQACABkEAgAZCAIAGUACAABsD4P+QBEL/cASA/6AEh/9ABVH/kAVS/5AFXv+QBYf/kAWK/6AFjP+gBY7/UAWU/5AFlf+QBZf/kAWa/5AFof+QBaL/kAWk/5AFp/+QBaj/kAWu/6AGrf+QBq7/kAav/5AGxP+QBsX/kAbG/5AAHAII/5ACF/+QAmX/cAK3AHADCP9wAwn/cAOE/3ADhf+QA6n/cAO3/6ADzv+QA9D/kAPR/5AD1v+gA9f/oAPY/5AFE/9ABTD/oAVN/yAFUf8wBXv/oAV8/6AFff+gBYD/kAWH/yAFjv8gBan/YAWu/6AAHABVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqsAYAKsAIACsgBwArMAcAK1AHACtwBgArgAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATwAGAE8gBgBPsAYAVFAAAFRwAABUkAAAWpAHAAHQHb/6AB3f+gAd7/oAHf/6AFUf+QBVL/kAVe/5AFdP9ABYf/kAWU/5AFlf+QBZf/kAWa/6AFof+QBaL/kAWk/5AFp/+QBaj/kAWt/5AFrv+gBbn/gAat/5AGrv+QBq//kAbE/5AGxf+QBsb/kAiE/4AIhf+AAB4B2/+gAd3/oAHe/6AB3/+gBVH/cAVS/3AFXv9wBXT/QAWH/3AFlP9wBZX/cAWX/3AFmv+ABaH/cAWi/3AFpP9wBaf/cAWo/3AFrP+ABa3/gAWu/6AFuf+ABq3/cAau/3AGr/9wBsT/cAbF/3AGxv9wCIT/gAiF/4AAHgHb/6AB3f+gAd7/oAHf/6AFUf+gBVL/oAVe/6AFdP9ABYf/oAWU/6AFlf+gBZf/oAWa/6AFof+gBaL/oAWk/6AFp/+gBaj/oAWs/6AFrf+gBa7/oAW5/5AGrf+gBq7/oAav/6AGxP+gBsX/oAbG/6AIhP+ACIX/gAAgAQn/kAEK/5ABC/+QAQz/kAEN/5ACSP9gAkn/YAJU/2ACV/9gAl7/YAJh/2ACYv9gAmb/YAKD/2ACsP+wArcAgAMP/2ADQ/9gBCf/YAUT/0AFMP9QBXv/kAV8/5AFff+QBYf/cAWJ/1AFjv7gBZb/gAWo/3AFrv+QBcH/oAik/2AAIAEJ/6ABCv+gAQv/oAEM/6ABDf+gAkj/YAJJ/2ACVP9gAlf/YAJe/2ACYf9gAmL/YAJm/2ACg/9gArD/sAK3AHADD/9gA0P/YAQn/2AFE/9ABTD/UAV7/6AFfP+gBX3/oAWH/3AFif9QBY7+4AWW/4AFqP9wBa7/kAXB/6AIpP9gACABCf+gAQr/oAEL/6ABDP+gAQ3/oAJI/2ACSf9gAlT/YAJX/2ACXv9gAmH/YAJi/2ACZv9gAoP/YAKw/7ACtwCAAw//YAND/2AEJ/9gBRP/QAUw/1AFe/+gBXz/oAV9/6AFh/9wBYn/UAWO/uAFlv+ABaj/cAWu/5AFwf+gCKT/YAAhAFUAYAGZANABmgDQAZsA0AGcANABnQDQAZ4A0AGfANABoADQAaEA0AGiANABowDQAaQA0AKeAHACsQBwArIAgAK3AHACuABwBAwA0AQRANAEFADQBCQA0AVN/2AFe/8wBXz/MAV9/zAFjv+gBaj/kAWp/yAG8QDQB6sA0AesANAHxwDQACIB1f+gAdb/oAHX/6AB2P+gAdn/oAHa/6AB2/+gAdz/oAHd/6AB3v+gAd//oAHg/6AB4f+gAeL/oAHj/6AB6P+gAen/oAHs/6AECf+gBVH/cAVq/5AFb/+QBXT/kAWH/1AFmv+QBaj+kAWs/4AFrf+ABa7/oAW5/4AHr/+gB7D/oAiE/4AIhf+AACIB1f+gAdb/oAHX/6AB2P+gAdn/oAHa/6AB2/+gAdz/oAHd/6AB3v+gAd//oAHg/6AB4f+gAeL/oAHj/6AB6P+gAen/oAHs/6AECf+gBVH/cAVq/6AFb/+gBXT/oAWH/1AFmv+QBaj+kAWs/6AFrf+gBa7/oAW5/6AHr/+gB7D/oAiE/4AIhf+AACICtwBwBAr/cAQN/6AEFP+QBL7/oATR/1AE1/9gBN3/gAT+/6AFE/+QBVH+0AVS/tAFXv7QBYf+0AWK/3AFjP9wBY7/cAWU/tAFlf7QBZb/gAWX/tAFmv+gBaH+0AWi/tAFpP7QBaf+0AWo/3AFrv+ABq3+0Aau/tAGr/7QBsT+0AbF/tAGxv7QACUCCP+QAhf/kAJl/3ADCP9wAwn/cAOE/3ADhf+QA6n/cAO3/6ADzf+QA87/kAPP/5AD0P+QA9H/kAPS/5AD0/+QA9T/kAPV/5AD1v+QA9f/kAPY/5AFE/9ABTD/oAVN/yAFUf8wBXv/EAV8/xAFff8QBX//kAWA/5AFgf+QBYL/kAWH/yAFjv8gBan/YAWu/6AIh/+QACUAVQBgAIoAcAE1AHABoQBgAp4AcAKnAGACqABgAqkAcAKqAHACqwBwAqwAYAKtAGACrwBgArAAYAKxAHACsgBwArMAcAK0AGACtQBgArYAYAK3AHACuABwArkAYAK6AGACuwBgArwAcAK9AHACwABgAsEAcALCAGACwwBwAsYAcALHAHACyABwAskAcAL8AHAE3gBgACUAigBgATUAYAKeAHACpwBgAqgAYAKpAGACqgBwAqsAYAKsAGACrQBgAq8AYAKwAGACsQBgArIAcAKzAGACtABgArUAYAK2AGACtwCQArgAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALBAGACwgBgAsMAYALGAGACxwBgAsgAYALJAGAC/ABgA10AcATeAGAFqQBgACUAVQBgAIoAcADQAGABNQBwAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqkAYAKqAGACqwBwAqwAgAKyAGACswBgArUAcAK3AHACuABgArwAcAK9AHACwQBgAsMAcALGAHACxwBwAsgAcALJAHAC4ACAAuEAYAL8AHADXQBgA2IAgAOAAGAE8ABgBPIAYAT7AGAFqQBwACUAVQBgAF4A0AB5ANAAqgDQAK4A0AE1ANABNwDQATwA0AE9ANABiQDQAaEAYAKeAHACpwBwAqgAcAKsAHACrQBwAq8AcAKwAHACsQBwArIAcAKzAGACtABwArUAcAK2AHACtwCQArgAYAK5AHACugBwArsAcALAAHACwgBwAsX/YALGAGADXQBwBN4AcAUXAQAGoQDQACgAigBgATUAYAH4AAACngBgAqcAYAKoAGACqQBgAqoAYAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAGACswBgArQAYAK1AGACtgBgArcAcAK4AGACuQBgAroAYAK7AGACvABgAr0AYALAAGACwQBgAsIAYALDAGACxgBgAscAYALIAGACyQBgAvwAYANdAGAE3gBgBU3/oAWO/5AFqP+gACoCCP+QAhf/kAJl/3ADCP9wAwn/cAOE/3ADhf+QA6n/cAO3/6ADzv+QA9D/kAPR/5AD1v+gA9f/oAPY/5AFE/9ABTD/oAVN/yAFUf+gBVL/oAVe/6AFff8QBYD/kAWH/6AFjv8gBZT/oAWV/6AFl/+gBZr/oAWh/6AFov+gBaT/oAWn/6AFqP+gBan/YAWu/6AGrf+gBq7/oAav/6AGxP+gBsX/oAbG/6AAKgBVAGAA0ABgAaEAYAHGAGABxwBgAc0AYAHOAGACngBwAqcAcAKoAHACqQBgAqoAYAKrAGACrABwAq0AcAKvAHACsABwArEAcAKyAGACswBgArQAcAK1AHACtgBwArcAoAK4AGACuQBwAroAcAK7AHACwABwAsEAYALCAHACxgBwAuAAgALhAGADXQBwA2IAgAOAAGAE3gBwBPAAYATyAGAE+wBgBakAcAAqAFUAYADQAGABoQBgAcYAYAHHAGABzQBgAc4AYAKeAHACpwBgAqgAYAKpAGACqgBgAqsAYAKsAGACrQBgAq8AYAKwAGACsQBgArIAYAKzAGACtABgArUAYAK2AGACtwCQArgAYAK5AGACugBgArsAYALAAGACwQBgAsIAYALGAHAC4ACAAuEAYANdAGADYgCAA4AAYATeAGAE8ABgBPIAYAT7AGAFqQBwAC0AVQBgAF4A0AB5ANAAigBwAKoA0ACuANABNQBwATcA0AE8ANABPQDQAYkA0AGhAGACngBwAqcAcAKoAHACrABwAq0AcAKvAHACsABwArEAcAKyAHACswBgArQAcAK1AHACtgBwArcAkAK4AHACuQBwAroAcAK7AHACvABwAr0AcALAAHACwgBwAsMAcALF/2ACxgBwAscAcALIAHACyQBwAvwAcANdAHAE3gBwBRcBAAahANAALQBVAGAAXgDQAHkA0ACKAHAAqgDQAK4A0AE1AHABNwDQATwA0AE9ANABiQDQAaEAYAKeAHACpwBwAqgAcAKsAHACrQBwAq8AcAKwAHACsQBwArIAgAKzAGACtABwArUAcAK2AHACtwCQArgAcAK5AHACugBwArsAcAK8AHACvQBwAsAAcALCAHACwwBwAsX/YALGAHACxwBwAsgAcALJAHAC/ABwA10AcATeAHAFFwEABqEA0AAtAfgAAAK3AHAC0gAwA10AYAOkADADpgAwA6cAMAOxADADsgAwA7MAMAO0ADADtQAwA7YAMAO3ADADuAAwA7kAMAO6ADADuwAwA7wAMAO9ADADvgAwA78AMAPAADADwQAwA8IAMAPDADADxAAwA8UAMAPGADADxwAwA8wAMAS1ADAEvAAwBL0AMATTADAE1AAwBO0AMAVN/6AFjv+QBaj/oAhGADAIZwAwCT0AMAngADAJ4QAwAC8CCP+QAhf/kAJl/3AC0v9QAwj/cAMJ/3ADhP9wA4X/kAOp/3ADsf9QA7L/UAOz/1ADtP9QA7f/oAPN/6ADzv+gA8//oAPQ/6AD0f+gA9L/oAPT/6AD1P+gA9X/oAPW/6AD1/+gA9j/oAS8/1AEvf9QBNP/UATU/1AFE/9ABTD/oAVN/yAFUf8wBXv/oAV8/6AFff+gBX//oAWA/6AFgf+gBYL/oAWH/yAFjv8gBan/YAWu/6AIh/+gCT3/UAAvAgj/kAIX/5ACZf9wAtL/UAMI/3ADCf9wA4T/cAOF/5ADqf9wA7H/UAOy/1ADs/9QA7T/UAO3/6ADzf+QA87/kAPP/5AD0P+QA9H/kAPS/5AD0/+QA9T/kAPV/5AD1v+QA9f/kAPY/5AEvP9QBL3/UATT/1AE1P9QBRP/QAUw/6AFTf8gBVH/MAV7/xAFfP8QBX3/EAV//5AFgP+QBYH/kAWC/5AFh/8gBY7/IAWp/2AFrv+gCIf/kAk9/1AAMQBVAGAAXgDQAHkA0ACKAGAAqgDQAK4A0AE1AGABNwDQATwA0AE9ANABiQDQAaEAYAKeAHACpwBwAqgAcAKpAGACqgBgAqsAYAKsAHACrQBwAq8AcAKwAHACsQBwArIAYAKzAGACtABwArUAcAK2AHACtwCgArgAYAK5AHACugBwArsAcAK8AGACvQBgAsAAcALBAGACwgBwAsMAYALF/2ACxgBgAscAYALIAGACyQBgAvwAYANdAHAE3gBwBRcBAAahANAAMQBVAGAAXgDQAHkA0ACKAHAAqgDQAK4A0AE1AHABNwDQATwA0AE9ANABiQDQAaEAYAKeAHACpwBgAqgAYAKpAGACqgBwAqsAcAKsAGACrQBgAq8AYAKwAGACsQBgArIAcAKzAGACtABgArUAYAK2AGACtwCAArgAcAK5AGACugBgArsAYAK8AHACvQBwAsAAYALBAGACwgBgAsMAcALF/2ACxgBwAscAcALIAHACyQBwAvwAcANdAGAE3gBgBRcBAAahANAAMwBVAGAAigBgANAAYAE1AGABoQBgAcYAYAHHAGABzQBgAc4AYAKeAGACpwBgAqgAYAKpAGACqgBgAqsAYAKsAGACrQBgAq8AYAKwAGACsQBgArIAYAKzAGACtABgArUAYAK2AGACtwBgArgAYAK5AGACugBgArsAYAK8AGACvQBgAsAAYALBAGACwgBgAsMAYALGAGACxwBgAsgAYALJAGAC4ACAAuEAYAL8AGADXQBgA2IAgAOAAGAE3gBgBPAAYATyAGAE+wBgBakAcAAzAFUAYACKAHAA0ABgATUAcAGhAGABxgBgAccAYAHNAGABzgBgAp4AcAKnAHACqABwAqkAYAKqAGACqwBwAqwAcAKtAHACrwBwArAAcAKxAHACsgBgArMAYAK0AHACtQBwArYAcAK3AHACuABwArkAcAK6AHACuwBwArwAcAK9AHACwABwAsEAYALCAHACwwBwAsYAcALHAHACyABwAskAcALgAIAC4QBgAvwAcANdAGADYgCAA4AAYATeAHAE8ABgBPIAYAT7AGAFqQBwADYBmf9AAZr/QAGb/0ABnP9AAZ3/QAGe/0ABn/9AAaD/QAGh/0ABov9AAaP/QAGk/0ABxf+gAcb/oAHH/6AB1f9AAdb/QAHX/0AB2P9AAdn/QAHa/0AB2/9AAdz/QAHd/0AB3v9AAd//QAHg/0AB4f9AAeL/QAHj/0AB6P9AAen/QAHs/0AD4f9AA/v/oAQJ/0AEDP9ABBH/QAQU/0AEI/+gBCT/QAVQ/6AFaf+gBW7/oAbx/0AHq/9AB6z/QAev/0AHsP9AB8f/QAiR/6AIlP+gCJr/oAib/6AANgGZ/2ABmv9gAZv/YAGc/2ABnf9gAZ7/YAGf/2ABoP9gAaH/YAGi/2ABo/9gAaT/YAHF/5ABxv+QAcf/kAHV/4AB1v+AAdf/gAHY/4AB2f+AAdr/gAHb/4AB3P+AAd3/gAHe/4AB3/+AAeD/gAHh/4AB4v+AAeP/gAHo/4AB6f+AAez/gAP7/5AEAP+ABAn/gAQM/2AEEf9gBBT/MAQb/4AEI/+QBCT/YAT3/6AFUP+QBvH/YAer/2AHrP9gB6//gAew/4AHx/9gCJH/kAiU/5AImv+QCJv/kAA3BEP/oASF/6AFaf+QBW7/kAX0AGAF9QBgBfYAYAX3AGAF+ABgBfkAYAX6AGAF+wBgBfwAYAX9AGAF/gBgBf8AYAYAAGAGAQBgBgIAYAYDAGAGBABgBgUAYAYGAGAGBwBgBggAYAYJAGAGCgBgBgsAYAYMAGAGDQBgBg4AYAYPAGAGEABgBhEAYAYSAGAGEwBgBhQAYAYVAGAGFgBgBhcAYAYYAGAGGQBgBhwAYAYdAGAGHgBgBioAYAYrAGAGLABgBi0AYAYuAGAGLwBgBjAAYAYxAGAGMgBgBjMAYAA4AIoAYAE1AGABmQCAAZoAgAGbAIABnACAAZ0AgAGeAIABnwCAAaAAgAGhAIABogCAAaMAgAGkAIACngBwAqcAYAKoAGACqQBgAqoAcAKrAGACrABgAq0AYAKvAGACsABgArEAYAKyAHACswBgArQAYAK1AGACtgBgArcAkAK4AGACuQBgAroAYAK7AGACvABgAr0AYALAAGACwQBgAsIAYALDAGACxgBgAscAYALIAGACyQBgAvwAYANdAHAEDACABBEAgAQUAIAEJACABN4AYAbxAIAHqwCAB6wAgAfHAIAAQQRC/2AEQ/+QBET/oARF/6AERv+gBEf/oARI/6AESf+gBEr/oARL/6AETP+gBE3/oARO/6AET/+gBFD/oARR/6AEgP9ABIX/kASH/vAEnP+gBJ3/kASe/5AEn/+QBKD/kASh/5AEov+QBKP/kASk/5AEpf+QBKb/kASn/5AEqP+QBKn/kASq/5AEq/+QBKz/kASt/5AErv+QBK//kASw/5AEsf+QBLL/kASz/5AEtP+QBQ//YAUb/2AFUf+gBVL/oAVe/6AFh/+gBZT/oAWV/6AFl/+gBZr/oAWh/6AFov+gBaT/oAWn/6AFqP+gBq3/oAau/6AGr/+gBsT/oAbF/6AGxv+gAEMAAv9QAAP/UAAE/1AABf9QAAb/UAAH/1AACP9QAAn/UAAK/1AAC/9QAAz/UAAN/1AADv9QAA//UAAQ/1AAEf9QABL/UAAT/1AAFP9QABX/UAAW/1AAF/9QABj/UAAZ/1AAGv9QABv/UAAc/1AAHf9QAB7/UAAf/1AAIP9QACH/UAAi/1AAI/9QACT/UAAl/1AAJv9QACf/UAAo/1AAKf9QACr/UAAr/1AALP9QAC3/UAAu/1AAL/9QADD/UAAx/1AAMv9QADP/UAA0/1AANf9QADb/UAA3/1AAOP9QADn/UAA6/1AAO/9QADz/UAA9/1AAPv9QAD//UABA/1ADyP9QA9v/UAcGAN4HBwDeAEcCCP+QAhf/kAJl/3ACm/+gAvL/oALz/6ADCP9wAwn/cAOD/6ADhP+gA4X/oAOG/6ADh/+gA4j/oAOJ/6ADiv+gA4v/oAOM/6ADjf+gA47/oAOP/6ADkP+gA5H/oAOS/6ADk/+gA5T/oAOV/6ADlv+gA5f/oAOY/6ADmf+gA5r/oAOb/6ADnP+gA53/oAOe/6ADn/+gA6D/oAOh/6ADov+gA6P/oAOp/3ADt/+gA83/oAPO/6ADz/+gA9D/oAPR/6AD0v+gA9P/oAPU/6AD1f+gA9b/oAPX/6AD2P+gBRP/QAUw/6AFTf8gBVH/MAV7/6AFfP+gBX3/oAV//6AFgP+gBYH/oAWC/6AFh/8gBY7/IAWp/2AFrv+gCIf/oABJA9v/kAR+/0AFTf+gBWn/kAVu/5AFcP8gBXH/IAV7/zAFfP8wBX3/MAWo/6AF9P+gBfX/oAX2/6AF9/+gBfj/oAX5/6AF+v+gBfv/oAX8/6AF/f+gBf7/oAX//6AGAP+gBgH/oAYC/6AGA/+gBgT/oAYF/6AGBv+gBgf/oAYI/6AGCf+gBgr/oAYL/6AGDP+gBg3/oAYO/6AGD/+gBhD/oAYR/6AGEv+gBhP/oAYU/6AGFf+gBhb/oAYX/6AGGP+gBhn/oAYc/6AGHf+gBh7/oAYq/6AGK/+gBiz/oAYt/6AGLv+gBi//oAYw/6AGMf+gBjL/oAYz/6AGOQCABjoAgAY7AIAGPACABj0AgAY+AIAGPwCABkAAgAZBAIAGQgCABlAAgABRAgj/kAIX/5ACZf9wApv/oALS/1AC8v+gAvP/oAMI/3ADCf9wA4P/oAOE/6ADhf+gA4b/oAOH/6ADiP+gA4n/oAOK/6ADi/+gA4z/oAON/6ADjv+gA4//oAOQ/6ADkf+gA5L/oAOT/6ADlP+gA5X/oAOW/6ADl/+gA5j/oAOZ/6ADmv+gA5v/oAOc/6ADnf+gA57/oAOf/6ADoP+gA6H/oAOi/6ADo/+gA6n/cAOx/1ADsv9QA7P/UAO0/1ADt/+gA83/oAPO/6ADz/+gA9D/oAPR/6AD0v+gA9P/oAPU/6AD1f+gA9b/oAPX/6AD2P+gBLz/UAS9/1AE0/9QBNT/UAUT/0AFMP+gBU3/IAVR/zAFe/+gBXz/oAV9/6AFf/+gBYD/oAWB/6AFgv+gBYf/IAWO/yAFqf9gBa7/oAiH/6AJPf9QAFMBmf+QAZr/kAGb/5ABnP+QAZ3/kAGe/5ABn/+QAaD/kAGh/5ABov+QAaP/kAGk/5ABxf9wAcb/cAHH/3AByP9gAcn/YAHK/2ABy/9gAcz/YAHN/2ABzv9gAuAAYANiAGADpP9wA6b/cAOn/3ADtf9wA7b/cAO3/3ADuP9wA7n/cAO6/3ADu/9wA7z/cAO9/3ADvv9wA7//cAPA/3ADwf9wA8L/cAPD/3ADxP9wA8X/cAPG/3ADx/9wA8z/cAPh/5AD+/9wBAz/kAQR/5AEFP+QBCP/cAQk/5AEQv9wBLX/cATt/3AE9/9wBTX/UAVQ/3AFaf+IBWr/YAVu/4gFb/9gBXT/YAV7AHAFfABwBX0AcAWH/6AFjgAABa7/oAbx/5AHq/+QB6z/kAfH/5AIRv9wCGf/cAiR/3AIlP9wCJr/cAib/3AJ4P9wCeH/cABVAAL/oAAD/6AABP+gAAX/oAAG/6AAB/+gAAj/oAAJ/6AACv+gAAv/oAAM/6AADf+gAA7/oAAP/6AAEP+gABH/oAAS/6AAE/+gABT/oAAV/6AAFv+gABf/oAAY/6AAGf+gABr/oAAb/6AAHP+gAB3/oAAe/6AAH/+gACD/oAAh/6AAIv+gACP/oAAk/6AAJf+gACb/oAAn/6AAKP+gACn/oAAq/6AAK/+gACz/oAAt/6AALv+gAC//oAAw/6AAMf+gADL/oAAz/6AANP+gADX/oAA2/6AAN/+gADj/oAA5/6AAOv+gADv/oAA8/6AAPf+gAD7/oAA//6AAQP+gAZn/oAGa/6ABm/+gAZz/oAGd/6ABnv+gAZ//oAGg/6ABof+gAaL/oAGj/6ABpP+gA8j/oAPb/6AEDP+gBBH/oAQU/6AEJP+gBvH/oAer/6AHrP+gB8f/oABbAZv/MAGi/zABo/8wArcAcAPb/5AFTf+gBVH/kAVS/5AFXv+QBWn/cAVu/3AFh/+QBY7/kAWU/5AFlf+QBZf/kAWa/5AFof+QBaL/kAWk/5AFp/+QBaj/oAWp/6AF9P9QBfX/UAX2/1AF9/9QBfj/UAX5/1AF+v9QBfv/UAX8/1AF/f9QBf7/UAX//1AGAP9QBgH/UAYC/1AGA/9QBgT/UAYF/1AGBv9QBgf/UAYI/1AGCf9QBgr/UAYL/1AGDP9QBg3/UAYO/1AGD/9QBhD/UAYR/1AGEv9QBhP/UAYU/1AGFf9QBhb/UAYX/1AGGP9QBhn/UAYc/1AGHf9QBh7/UAYq/1AGK/9QBiz/UAYt/1AGLv9QBi//UAYw/1AGMf9QBjL/UAYz/1AGOQCABjoAgAY7AIAGPACABj0AgAY+AIAGPwCABkAAgAZBAIAGQgCABlAAgAat/5AGrv+QBq//kAbE/5AGxf+QBsb/kABfAEn/4ABK/+AAS//gAEz/4ABN/+AATv/gAE//4ABQ/+AAUf/gAFL/4ABT/+AAjf/gAI7/4ACP/+AAkP/gAJH/4ACS/+AAk//gAJT/4ACV/+AAlv/gAJf/4AFA/+ABQf/gAUL/4AFD/+ABRP/gAUX/4AFG/+ABR//gAUj/4AFJ/+ABSv/gAUv/4AFM/+ABTf/gAU7/4AFP/+ABUP/gAVH/4AFS/+ABU//gAVT/4AFV/+ABVv/gAVf/4AFY/+ABWf/gAVr/4AFb/+ABXP/gAV3/4AFe/+ABX//gAWD/4AFh/+ABYv/gAWP/4AFk/+ABZf/gAWb/4AFn/+ABaP/gAWn/4AFq/+ABa//gAWz/4AFt/+ABbv/gAW//4AFw/+ABcf/gAXL/4AFz/+ABdP/gAXX/4AF9/+AD3P/gBAf/4AQK/+AEGf/gBB7/4AUA/+AFAf/gBQL/4AUT/4AFMP+gBan/QAWw/+AG2P/gBtn/4AeJ/+AHqf/gB67/4AfG/+AAYQOH/2AD2/9QBH//oASB/6AEtv+gBQ7/oAUT/0AFFv+gBRr/oAUw/6AFTf9ABVH/IAVS/yAFXv8gBXD+sAVx/rAFe/7wBXz+8AV9/vAFf/9QBYD/UAWB/1AFgv9QBYf/IAWK/3gFi//IBYz/eAWN/8gFjv8ABZT/IAWV/yAFl/8gBZr/IAWh/yAFov8gBaT/IAWn/yAFqP8gBan+4AX0/sAF9f7ABfb+wAX3/sAF+P7ABfn+wAX6/sAF+/7ABfz+wAX9/sAF/v7ABf/+wAYA/sAGAf7ABgL+wAYD/sAGBP7ABgX+wAYG/sAGB/7ABgj+wAYJ/sAGCv7ABgv+wAYM/sAGDf7ABg7+wAYP/sAGEP7ABhH+wAYS/sAGE/7ABhT+wAYV/sAGFv7ABhf+wAYY/sAGGf7ABhz+wAYd/sAGHv7ABir+wAYr/sAGLP7ABi3+wAYu/sAGL/7ABjD+wAYx/sAGMv7ABjP+wAat/yAGrv8gBq//IAbE/yAGxf8gBsb/IAiH/1AAYgII/5ACF/+QAmX/cAKb/6AC0v9QAvL/oALz/6ADCP9wAwn/cAOD/6ADhP+gA4X/oAOG/6ADh/+gA4j/oAOJ/6ADiv+gA4v/oAOM/6ADjf+gA47/oAOP/6ADkP+gA5H/oAOS/6ADk/+gA5T/oAOV/6ADlv+gA5f/oAOY/6ADmf+gA5r/oAOb/6ADnP+gA53/oAOe/6ADn/+gA6D/oAOh/6ADov+gA6P/oAOp/3ADsf9QA7L/UAOz/1ADtP9QA7f/oAPN/6ADzv+gA8//oAPQ/6AD0f+gA9L/oAPT/6AD1P+gA9X/oAPW/6AD1/+gA9j/oAS8/1AEvf9QBNP/UATU/1AFE/9ABTD/oAVN/yAFUf+gBVL/oAVe/6AFe/+gBXz/oAV9/6AFf/+gBYD/oAWB/6AFgv+gBYf/oAWO/yAFlP+gBZX/oAWX/6AFmv+gBaH/oAWi/6AFpP+gBaf/oAWo/6AFqf9gBa7/oAat/6AGrv+gBq//oAbE/6AGxf+gBsb/oAiH/6AJPf9QAHYAAv+QAAP/kAAE/5AABf+QAAb/kAAH/5AACP+QAAn/kAAK/5AAC/+QAAz/kAAN/5AADv+QAA//kAAQ/5AAEf+QABL/kAAT/5AAFP+QABX/kAAW/5AAF/+QABj/kAAZ/5AAGv+QABv/kAAc/5AAHf+QAB7/kAAf/5AAIP+QACH/kAAi/5AAI/+QACT/kAAl/5AAJv+QACf/kAAo/5AAKf+QACr/kAAr/5AALP+QAC3/kAAu/5AAL/+QADD/kAAx/5AAMv+QADP/kAA0/5AANf+QADb/kAA3/5AAOP+QADn/kAA6/5AAO/+QADz/kAA9/5AAPv+QAD//kABA/5ABCf+QAQr/kAEL/5ABDP+QAQ3/kAGZ/2ABmv9gAZv/YAGc/2ABnf9gAZ7/YAGf/2ABoP9gAaH/YAGi/2ABo/9gAaT/YAHF/3ABxv9wAcf/cAHt/5AB7v+QAe//kAHw/5AB8f+QAfL/kAHz/5AB9P+QAfX/kAH2/5AB9/+QA8j/kAPh/2AD+/9wBAz/YAQR/2AEFP9gBCP/cAQk/2AFUP9wBWn/YAVu/2AFcP6gBXH+oAV7/uAFfP7gBX3+4Abx/2AHq/9gB6z/YAfH/2AIkf9wCJT/cAia/3AIm/9wAHkBmf9gAZr/YAGb/2ABnP9gAZ3/YAGe/2ABn/9gAaD/YAGh/2ABov9gAaP/YAGk/2ABxf9QAcb/UAHH/1AByP+QAcn/kAHK/5ABy/+QAcz/kAHN/5ABzv+QAdX/MAHW/zAB1/8wAdj/MAHZ/zAB2v8wAdv/MAHc/zAB3f8wAd7/MAHf/zAB4P8wAeH/MAHi/zAB4/8wAej/MAHp/zAB7P8wA6T/oAOm/6ADp/+gA6j/oAOp/6ADq/+gA6z/oAOt/6ADrv+gA6//oAOw/6ADtf+gA7b/oAO3/6ADuP+gA7n/oAO6/6ADu/+gA7z/oAO9/6ADvv+gA7//oAPA/6ADwf+gA8L/oAPD/6ADxP+gA8X/oAPG/6ADx/+gA8z/oAPh/zAD+/9QBAn/MAQM/2AEEf9gBBT/YAQj/1AEJP9gBLX/oATt/6AFUP9QBWn/AAVs/6AFbf+gBW7/AAWI/6AFqv+QBav/kAWv/8AFsv/ABbP/kAW6/5AFu/+QBbz/kAW9/5AGOf+ABjr/gAY7/4AGPP+ABj3/gAY+/4AGP/+ABkD/gAZB/4AGQv+ABlD/gAbx/2AHq/9gB6z/YAev/zAHsP8wB8f/YAhG/6AIZ/+gCJH/UAiU/1AImv9QCJv/UAng/6AJ4f+gAIkAAv+gAAP/oAAE/6AABf+gAAb/oAAH/6AACP+gAAn/oAAK/6AAC/+gAAz/oAAN/6AADv+gAA//oAAQ/6AAEf+gABL/oAAT/6AAFP+gABX/oAAW/6AAF/+gABj/oAAZ/6AAGv+gABv/oAAc/6AAHf+gAB7/oAAf/6AAIP+gACH/oAAi/6AAI/+gACT/oAAl/6AAJv+gACf/oAAo/6AAKf+gACr/oAAr/6AALP+gAC3/oAAu/6AAL/+gADD/oAAx/6AAMv+gADP/oAA0/6AANf+gADb/oAA3/6AAOP+gADn/oAA6/6AAO/+gADz/oAA9/6AAPv+gAD//oABA/6ABCf+AAQr/gAEL/4ABDP+AAQ3/gAGZ/yABmv8gAZv/IAGc/yABnf8gAZ7/IAGf/yABoP8gAaH/IAGi/yABo/8gAaT/IAHF/5ABxv+QAcf/kAHP/4AB0P+AAdH/gAHS/4AB0/+AAdT/gAHV/3AB1v9wAdf/cAHY/3AB2f9wAdr/cAHb/3AB3P9wAd3/cAHe/3AB3/9wAeD/cAHh/3AB4v9wAeP/cAHo/3AB6f9wAez/cAPI/6AD4f8gA/v/kAQA/4AEAv9wBAn/cAQM/yAEEf8gBBT/IAQj/5AEJP8gBRf/wAVQ/5AG8f8gB6v/IAes/yAHr/9wB7D/cAe7/4AHvP+AB8f/IAfI/4AIkf+QCJL/gAiU/5AImv+QCJv/kAic/4AIn/+ACTz/gACcAAIAAAADAAAABAAAAAUAAAAG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/2AF//9gBgD/YAYB/2AGAv9gBgP/YAYE/2AGBf9gBgb/YAYH/2AGCP9gBgn/YAYK/2AGC/9gBgz/YAYN/2AGDv9gBg//YAYQ/2AGEf9gBhL/YAYT/2AGFP9gBhX/YAYW/2AGF/9gBhj/YAYZ/2AGHP9gBh3/YAYe/2AGKv9gBiv/YAYs/2AGLf9gBi7/YAYv/2AGMP9gBjH/YAYy/2AGM/9gBq3/MAau/zAGr/8wBsT/MAbF/zAGxv8wCIf/kAACAJEAAgBAAAAASQCWAD8AoQDMAI0AzgDOALkA0ADZALoA2wDiAMQA5QDnAMwA6QDpAM8BCQF9ANABmQJTAUUCVQJWAgACWAJeAgICYAJiAgkCZAKDAgwChQKcAiwCngLWAkQC2AL4An0C+wL8Ap4C/gMKAqADDANCAq0DRQNIAuQDSgNyAugDdAN1AxEDdwOpAxMDqwOwA0YDtgPIA0wDzAPcA18D3wPhA3AD+wQAA3MEAwQEA3kEBgQHA3sECQQLA30EDQQNA4AEEAQbA4EEIwRSA40EawSEA70EhgS8A9cEvwTSBA4E1QTbBCIE3gTeBCkE4wTlBCoE6ATrBC0E7QTtBDEE7wTwBDIE8gTyBDQE9AT0BDUE+wT7BDYFAAUCBDcFCQUJBDoFDgUOBDsFEwUUBDwFFgUaBD4FHQUfBEMFMAUxBEYFMwUzBEgFNQU1BEkFOAU4BEoFOwU7BEsFPQU9BEwFPwU/BE0FQQVBBE4FQwVEBE8FRgVGBFEFSAVIBFIFSgVLBFMFTQVOBFUFUAVSBFcFWwVbBFoFXgVeBFsFaQVqBFwFbAVxBF4FdAV0BGQFewV9BGUFfwV/BGgFggWCBGkFhwWIBGoFigWaBGwFnQWiBH0FpAWwBIMFsgWzBJAFuQW/BJIFwQXBBJkF2gXaBJoF4wXjBJsF5gXmBJwF6gXsBJ0F9AYZBKAGHAYfBMYGJgYmBMoGKAYoBMsGKgYzBMwGOQZCBNYGSwZLBOAGTwZQBOEGVwZXBOMGXAZcBOQGqAasBOUGvwbDBOoG2AbeBO8G8QbyBPYG+Ab4BPgHBgcHBPkHggeCBPsHhQeGBPwHiQeJBP4HiweLBP8HjwePBQAHmQeZBQEHnAecBQIHnwefBQMHqQepBQQHqwesBQUHrwewBQcHtwe4BQkHuwe8BQsHwwfKBQ0HzAfMBRUH7QfvBRYIFQgVBRkIGQgZBRoIIwgjBRsILggvBRwIQghEBR4IRghGBSEISwhLBSIITQhNBSMIWghaBSQIZwhnBSUIaghrBSYIeQh5BSgIhwiHBSkIkQiSBSoIlAiUBSwIlgiWBS0ImAigBS4IpAimBTcItQi1BToIuQi5BTsI4QjhBTwJLgkuBT0JMwkzBT4JNwk3BT8JOgk8BUAJ4AnhBUMJ6AnoBUUBGgBBAGAAQgBgAEMAYABEAGAARQBgAEYAYABHAGAASABgAFQAYABVAGAAVgBgAFcAYABYAGAAWQBgAFoAYABbAGAAXABgAF0AYABeAGAAXwBgAGAAYABhAGAAYgBgAGMAYABkAGAAZQBgAGYAYABnAGAAaABgAGkAYABqAGAAawBgAGwAYABtAGAAbgBgAG8AYABwAGAAcQBgAHIAYABzAGAAdABgAHUAYAB2AGAAdwBgAHgAYAB5AGAAewBgAIQAYACFAGAAhgBgAIcAYACIAGAAiQBgAIsAYAChAGAAogBgAKMAYACkAGAApQBgAKYAYACnAGAAqABgAKkAYACqAGAAqwBgAKwAYACtAGAArgBgAK8AYACwAGAAsQBgALIAYACzAGAAtABgALUAYAC2AGAAtwBgALgAYAC5AGAAugBgALsAYAC8AGAAvQBgAL4AYAC/AGAAwABgAMEAYADCAGAAwwBgAMQAYADFAGAAyQBgAMoAYADLAGAA0ABgANEAYADSAGAA1QBgANYAYADXAGAA2ABgAOcAYADpAGABDgBgAQ8AYAEQAGABEQBgARIAYAETAGABFABgARUAYAEWAGABFwBgARgAYAEZAGABGgBgARsAYAEcAGABHQBgAR4AYAEfAGABIABgASEAYAEiAGABIwBgASQAYAElAGABJgBgAScAYAEoAGABKQBgASoAYAErAGABLABgAS0AYAEuAGABLwBgATAAYAExAGABMgBgATMAYAE0AGABNgBgATcAYAE4AGABOQBgAToAYAE7AGABPABgAT0AYAE+AGABPwBgAXYAYAF3AGABeABgAXkAYAF6AGABewBgAXwAYAF+AGABfwBgAYAAYAGBAGABggBgAYMAYAGEAGABhQBgAYYAYAGHAGABiABgAYkAYAGKAGABmABgAj8AYAJBAGACQgBgAkMAYAJEAGACRQBgApQAYAKVAGAClgBgApcAYAKYAGACmQBgApoAYAKeAGACnwBgAqAAYAKhAGACogBgAqMAYAKkAGACpQBgAqYAYAK3AGACygBgAssAYALMAGACzQBgAs4AYALPAGAC0ABgAtEAYALTAGAC1ABgAtUAYALWAGAC1wBgAtkAYALaAGAC2wBgAtwAYALdAGAC3gBgAt8AYALgAGAC4QBgAuIAYALjAGAC5ABgAuUAYALnAGAC6ABgAukAYALqAGAC6wBgAuwAYALtAGAC7gBgAu8AYANyAGADcwBgA9kAYAPaAGAD3gBgA/wAYAP9AGAEAwBgBAQAYAQFAGAECABgBAsAYAQQAGAEEgBgBBMAYAQVAGAEFgBgBBgAYAQaAGAEHABgBB0AYAQmAGAFCQBgBQwAYAUNAGAFTgBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEeAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGABov8gAaP/IAHW/5ACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgArcAgALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA3IAYANzAGAD2QBgA9oAYAPeAGAD+/+QA/wAYAP9AGAEAwBgBAQAYAQFAGAECABgBAsAYAQQAGAEEgBgBBMAYAQVAGAEFgBgBBgAYAQaAGAEHABgBB0AYAQmAGAFCQBgBQwAYAUNAGAFTgBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEeAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGABov8gAaP/IAHW/3ACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgArcAcALF/4ACygBgAssAYALMAGACzQBgAs4AYALPAGAC0ABgAtEAYALTAGAC1ABgAtUAYALWAGAC1wBgAtkAYALaAGAC2wBgAtwAYALdAGAC3gBgAt8AYALgAGAC4QBgAuIAYALjAGAC5ABgAuUAYALnAGAC6ABgAukAYALqAGAC6wBgAuwAYALtAGAC7gBgAu8AYANyAGADcwBgA9kAYAPaAGAD3gBgA/wAYAP9AGAEAwBgBAQAYAQFAGAECABgBAsAYAQQAGAEEgBgBBMAYAQVAGAEFgBgBBgAYAQaAGAEHABgBB0AYAQmAGAFCQBgBQwAYAUNAGAFTgBgBb8AYAahAGAG2gBgBtsAYAbcAGAG3QBgBt4AYAb4AGAHhgBgB5cAYAefAGAHwwBgB8QAYAfFAGAHyQBgB8oAYAhaAGAIeQBgCJYAYAiYAGAImQBgCJ0AYAieAGAIoABgCS4AYAEfAEEAYABCAGAAQwBgAEQAYABFAGAARgBgAEcAYABIAGAAVABgAFUAYABWAGAAVwBgAFgAYABZAGAAWgBgAFsAYABcAGAAXQBgAF4AYABfAGAAYABgAGEAYABiAGAAYwBgAGQAYABlAGAAZgBgAGcAYABoAGAAaQBgAGoAYABrAGAAbABgAG0AYABuAGAAbwBgAHAAYABxAGAAcgBgAHMAYAB0AGAAdQBgAHYAYAB3AGAAeABgAHkAYAB7AGAAhABgAIUAYACGAGAAhwBgAIgAYACJAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADJAGAAygBgAMsAYADQAGAA0QBgANIAYADVAGAA1gBgANcAYADYAGAA5wBgAOkAYAEOAGABDwBgARAAYAERAGABEgBgARMAYAEUAGABFQBgARYAYAEXAGABGABgARkAYAEaAGABGwBgARwAYAEdAGABHgBgAR8AYAEgAGABIQBgASIAYAEjAGABJABgASUAYAEmAGABJwBgASgAYAEpAGABKgBgASsAYAEsAGABLQBgAS4AYAEvAGABMABgATEAYAEyAGABMwBgATQAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGABov8wAaP/MAHW/3ACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgArcAgALKAGACywBgAswAYALNAGACzgBgAs8AYALQAGAC0QBgAtMAYALUAGAC1QBgAtYAYALXAGAC2QBgAtoAYALbAGAC3ABgAt0AYALeAGAC3wBgAuAAYALhAGAC4gBgAuMAYALkAGAC5QBgAucAYALoAGAC6QBgAuoAYALrAGAC7ABgAu0AYALuAGAC7wBgA10AYANyAGADcwBgA9kAYAPaAGAD3gBgA/v/oAP8AGAD/QBgBAMAYAQEAGAEBQBgBAgAYAQLAGAEEABgBBIAYAQTAGAEFQBgBBYAYAQYAGAEGgBgBBwAYAQdAGAEJgBgBQkAYAUMAGAFDQBgBU4AYAW/AGAGoQBgBtoAYAbbAGAG3ABgBt0AYAbeAGAG+ABgB4YAYAeXAGAHnwBgB8MAYAfEAGAHxQBgB8kAYAfKAGAIWgBgCHkAYAiWAGAImABgCJkAYAidAGAIngBgCKAAYAkuAGABLQBBAGAAQgBgAEMAYABEAGAARQBgAEYAYABHAGAASABgAFQAYABVAGAAVgBgAFcAYABYAGAAWQBgAFoAYABbAGAAXABgAF0AYABeAGAAXwBgAGAAYABhAGAAYgBgAGMAYABkAGAAZQBgAGYAYABnAGAAaABgAGkAYABqAGAAawBgAGwAYABtAGAAbgBgAG8AYABwAGAAcQBgAHIAYABzAGAAdABgAHUAYAB2AGAAdwBgAHgAYAB5AGAAewBgAIQAYACFAGAAhgBgAIcAYACIAGAAiQBgAIsAYAChAGAAogBgAKMAYACkAGAApQBgAKYAYACnAGAAqABgAKkAYACqAGAAqwBgAKwAYACtAGAArgBgAK8AYACwAGAAsQBgALIAYACzAGAAtABgALUAYAC2AGAAtwBgALgAYAC5AGAAugBgALsAYAC8AGAAvQBgAL4AYAC/AGAAwABgAMEAYADCAGAAwwBgAMQAYADFAGAAyQBgAMoAYADLAGAA0ABgANEAYADSAGAA1QBgANYAYADXAGAA2ABgAOcAYADpAGABDgBgAQ8AYAEQAGABEQBgARIAYAETAGABFABgARUAYAEWAGABFwBgARgAYAEZAGABGgBgARsAYAEcAGABHQBgAR4AYAEfAGABIABgASEAYAEiAGABIwBgASQAYAElAGABJgBgAScAYAEoAGABKQBgASoAYAErAGABLABgAS0AYAEuAGABLwBgATAAYAExAGABMgBgATMAYAE0AGABNgBgATcAYAE4AGABOQBgAToAYAE7AGABPABgAT0AYAE+AGABPwBgAXYAYAF3AGABeABgAXkAYAF6AGABewBgAXwAYAF+AGABfwBgAYAAYAGBAGABggBgAYMAYAGEAGABhQBgAYYAYAGHAGABiABgAYkAYAGKAGABmABgAj8AYAJBAGACQgBgAkMAYAJEAGACRQBgApQAYAKVAGAClgBgApcAYAKYAGACmQBgApoAYAKeAGACnwBgAqAAYAKhAGACogBgAqMAYAKkAGACpQBgAqYAYAKnAHACqABwAqwAcAKtAHACrwBwArAAcAKxAHACtABwArUAcAK2AHACtwCAArkAcAK6AHACuwBwAsAAcALCAHACygBgAssAYALMAGACzQBgAs4AYALPAGAC0ABgAtEAYALTAGAC1ABgAtUAYALWAGAC1wBgAtkAYALaAGAC2wBgAtwAYALdAGAC3gBgAt8AYALgAGAC4QBgAuIAYALjAGAC5ABgAuUAYALnAGAC6ABgAukAYALqAGAC6wBgAuwAYALtAGAC7gBgAu8AYANdAGADYgBwA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYATeAHAFCQBgBQwAYAUNAGAFTgBgBY7/sAW/AGAGoQBgBtoAYAbbAGAG3ABgBt0AYAbeAGAG+ABgB4YAYAeXAGAHnwBgB8MAYAfEAGAHxQBgB8kAYAfKAGAIWgBgCHkAYAiWAGAImABgCJkAYAidAGAIngBgCKAAYAkuAGABLQBBAGAAQgBgAEMAYABEAGAARQBgAEYAYABHAGAASABgAFQAYABVAGAAVgBgAFcAYABYAGAAWQBgAFoAYABbAGAAXABgAF0AYABeAGAAXwBgAGAAYABhAGAAYgBgAGMAYABkAGAAZQBgAGYAYABnAGAAaABgAGkAYABqAGAAawBgAGwAYABtAGAAbgBgAG8AYABwAGAAcQBgAHIAYABzAGAAdABgAHUAYAB2AGAAdwBgAHgAYAB5AGAAewBgAIQAYACFAGAAhgBgAIcAYACIAGAAiQBgAIsAYAChAGAAogBgAKMAYACkAGAApQBgAKYAYACnAGAAqABgAKkAYACqAGAAqwBgAKwAYACtAGAArgBgAK8AYACwAGAAsQBgALIAYACzAGAAtABgALUAYAC2AGAAtwBgALgAYAC5AGAAugBgALsAYAC8AGAAvQBgAL4AYAC/AGAAwABgAMEAYADCAGAAwwBgAMQAYADFAGAAyQBgAMoAYADLAGAA0ABgANEAYADSAGAA1QBgANYAYADXAGAA2ABgAOcAYADpAGABDgBgAQ8AYAEQAGABEQBgARIAYAETAGABFABgARUAYAEWAGABFwBgARgAYAEZAGABGgBgARsAYAEcAGABHQBgAR4AYAEfAGABIABgASEAYAEiAGABIwBgASQAYAElAGABJgBgAScAYAEoAGABKQBgASoAYAErAGABLABgAS0AYAEuAGABLwBgATAAYAExAGABMgBgATMAYAE0AGABNgBgATcAYAE4AGABOQBgAToAYAE7AGABPABgAT0AYAE+AGABPwBgAXYAYAF3AGABeABgAXkAYAF6AGABewBgAXwAYAF+AGABfwBgAYAAYAGBAGABggBgAYMAYAGEAGABhQBgAYYAYAGHAGABiABgAYkAYAGKAGABmABgAj8AYAJBAGACQgBgAkMAYAJEAGACRQBgApQAYAKVAGAClgBgApcAYAKYAGACmQBgApoAYAKeAGACnwBgAqAAYAKhAGACogBgAqMAYAKkAGACpQBgAqYAYAKnAGACqABgAqwAYAKtAGACrwBgArAAYAKxAGACtABgArUAYAK2AGACtwCAArkAYAK6AGACuwBgAsAAYALCAGACygBgAssAYALMAGACzQBgAs4AYALPAGAC0ABgAtEAYALTAGAC1ABgAtUAYALWAGAC1wBgAtkAYALaAGAC2wBgAtwAYALdAGAC3gBgAt8AYALgAGAC4QBgAuIAYALjAGAC5ABgAuUAYALnAGAC6ABgAukAYALqAGAC6wBgAuwAYALtAGAC7gBgAu8AYANdAGADYgBgA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYATeAGAFCQBgBQwAYAUNAGAFTgBgBY7/sAW/AGAGoQBgBtoAYAbbAGAG3ABgBt0AYAbeAGAG+ABgB4YAYAeXAGAHnwBgB8MAYAfEAGAHxQBgB8kAYAfKAGAIWgBgCHkAYAiWAGAImABgCJkAYAidAGAIngBgCKAAYAkuAGABMQBBAHAAQgBwAEMAcABEAHAARQBwAEYAcABHAHAASABwAFQAcABVAHAAVgBwAFcAcABYAHAAWQBwAFoAcABbAHAAXABwAF0AcABeAHAAXwBwAGAAcABhAHAAYgBwAGMAcABkAHAAZQBwAGYAcABnAHAAaABwAGkAcABqAHAAawBwAGwAcABtAHAAbgBwAG8AcABwAHAAcQBwAHIAcABzAHAAdABwAHUAcAB2AHAAdwBwAHgAcAB5AHAAewBwAIQAcACFAHAAhgBwAIcAcACIAHAAiQBwAIsAcAChAHAAogBwAKMAcACkAHAApQBwAKYAcACnAHAAqABwAKkAcACqAHAAqwBwAKwAcACtAHAArgBwAK8AcACwAHAAsQBwALIAcACzAHAAtABwALUAcAC2AHAAtwBwALgAcAC5AHAAugBwALsAcAC8AHAAvQBwAL4AcAC/AHAAwABwAMEAcADCAHAAwwBwAMQAcADFAHAAyQBwAMoAcADLAHAA0ABwANEAcADSAHAA1QBwANYAcADXAHAA2ABwAOcAcADpAHABDgBwAQ8AcAEQAHABEQBwARIAcAETAHABFABwARUAcAEWAHABFwBwARgAcAEZAHABGgBwARsAcAEcAHABHQBwAR4AcAEfAHABIABwASEAcAEiAHABIwBwASQAcAElAHABJgBwAScAcAEoAHABKQBwASoAcAErAHABLABwAS0AcAEuAHABLwBwATAAcAExAHABMgBwATMAcAE0AHABNgBwATcAcAE4AHABOQBwAToAcAE7AHABPABwAT0AcAE+AHABPwBwAXYAcAF3AHABeABwAXkAcAF6AHABewBwAXwAcAF+AHABfwBwAYAAcAGBAHABggBwAYMAcAGEAHABhQBwAYYAcAGHAHABiABwAYkAcAGKAHABmABwAaL/MAGj/zAB1v9wAgQAYAI/AHACQQBwAkIAcAJDAHACRABwAkUAcAJ7AGAClABwApUAcAKWAHAClwBwApgAcAKZAHACmgBwAp4AcAKfAHACoABwAqEAcAKiAHACowBwAqQAcAKlAHACpgBwAqcAYAKoAGACrABgAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AIACuQBgAroAYAK7AGACwABgAsIAYALKAHACywBwAswAcALNAHACzgBwAs8AcALQAHAC0QBwAtMAcALUAHAC1QBwAtYAcALXAHAC2QBwAtoAcALbAHAC3ABwAt0AcALeAHAC3wBwAuAAcALhAHAC4gBwAuMAcALkAHAC5QBwAucAcALoAHAC6QBwAuoAcALrAHAC7ABwAu0AcALuAHAC7wBwA10AYANyAHADcwBwA9kAcAPaAHAD3gBwA/v/oAP8AHAD/QBwBAMAcAQEAHAEBQBwBAgAcAQLAHAEEABwBBIAcAQTAHAEFQBwBBYAcAQYAHAEGgBwBBwAcAQdAHAEJgBwBN4AYAUJAHAFDABwBQ0AcAVOAHAFvwBwBqEAcAbaAHAG2wBwBtwAcAbdAHAG3gBwBvgAcAeGAHAHlwBwB58AcAfDAHAHxABwB8UAcAfJAHAHygBwCFoAcAh5AHAIlgBwCJgAcAiZAHAInQBwCJ4AcAigAHAJLgBwATgAQQBgAEIAYABDAGAARABgAEUAYABGAGAARwBgAEgAYABUAGAAVQBgAFYAYABXAGAAWABgAFkAYABaAGAAWwBgAFwAYABdAGAAXgBgAF8AYABgAGAAYQBgAGIAYABjAGAAZABgAGUAYABmAGAAZwBgAGgAYABpAGAAagBgAGsAYABsAGAAbQBgAG4AYABvAGAAcABgAHEAYAByAGAAcwBgAHQAYAB1AGAAdgBgAHcAYAB4AGAAeQBgAHsAYACEAGAAhQBgAIYAYACHAGAAiABgAIkAYACKAGAAiwBgAKEAYACiAGAAowBgAKQAYAClAGAApgBgAKcAYACoAGAAqQBgAKoAYACrAGAArABgAK0AYACuAGAArwBgALAAYACxAGAAsgBgALMAYAC0AGAAtQBgALYAYAC3AGAAuABgALkAYAC6AGAAuwBgALwAYAC9AGAAvgBgAL8AYADAAGAAwQBgAMIAYADDAGAAxABgAMUAYADGAOAAxwCAAMkAcADKAGAAywBgANAAYADRAGAA0gBgANUAYADWAGAA1wBgANgAYADnAGAA6QBgAQ4AYAEPAGABEABgAREAYAESAGABEwBgARQAYAEVAGABFgBgARcAYAEYAGABGQBgARoAYAEbAGABHABgAR0AYAEeAGABHwBgASAAYAEhAGABIgBgASMAYAEkAGABJQBgASYAYAEnAGABKABgASkAYAEqAGABKwBgASwAYAEtAGABLgBgAS8AYAEwAGABMQBgATIAYAEzAGABNABgATUAYAE2AGABNwBgATgAYAE5AGABOgBgATsAYAE8AGABPQBgAT4AYAE/AGABdgBgAXcAYAF4AGABeQBgAXoAYAF7AGABfABgAX4AYAF/AGABgABgAYEAYAGCAGABgwBgAYQAYAGFAGABhgBgAYcAYAGIAGABiQBgAYoAYAGYAGACPwBgAkEAYAJCAGACQwBgAkQAYAJFAGAClABgApUAYAKWAGAClwBgApgAYAKZAGACmgBgAp4AYAKfAGACoABgAqEAYAKiAGACowBgAqQAYAKlAGACpgBgAqcAYAKoAGACrABwAq0AYAKvAGACsABgArEAYAK0AGACtQBgArYAYAK3AGACuQBgAroAYAK7AGACvABgAr0AYALAAGACwgBgAsMAYALGAGACxwBgAsgAYALJAGACygBgAssAYALMAGACzQBgAs4AYALPAGAC0ABgAtEAYALTAGAC1ABgAtUAYALWAGAC1wBgAtkAYALaAGAC2wBgAtwAYALdAGAC3gBgAt8AYALgAHAC4QBwAuIAYALjAGAC5ABgAuUAYALnAGAC6ABgAukAYALqAGAC6wBgAuwAYALtAGAC7gBgAu8AYAL8AGADYgBwA3IAYANzAGAD2QBgA9oAYAPeAGAD/ABgA/0AYAQDAGAEBABgBAUAYAQIAGAECwBgBBAAYAQSAGAEEwBgBBUAYAQWAGAEGABgBBoAYAQcAGAEHQBgBCYAYATeAGAFCQBgBQwAYAUNAGAFTgBgBakAYAW/AGAGoQBgBtoAYAbbAGAG3ABgBt0AYAbeAGAG+ABgB4YAYAeXAGAHnwBgB8MAYAfEAGAHxQBgB8kAYAfKAGAIWgBgCHkAYAiWAGAImABgCJkAYAidAGAIngBgCKAAYAkuAGABPABBAHAAQgBwAEMAcABEAHAARQBwAEYAcABHAHAASABwAFQAcABVAHAAVgBwAFcAcABYAHAAWQBwAFoAcABbAHAAXABwAF0AcABeAHAAXwBwAGAAcABhAHAAYgBwAGMAcABkAHAAZQBwAGYAcABnAHAAaABwAGkAcABqAHAAawBwAGwAcABtAHAAbgBwAG8AcABwAHAAcQBwAHIAcABzAHAAdABwAHUAcAB2AHAAdwBwAHgAcAB5AHAAewBwAIQAcACFAHAAhgBwAIcAcACIAHAAiQBwAIoAYACLAHAAoQBwAKIAcACjAHAApABwAKUAcACmAHAApwBwAKgAcACpAHAAqgBwAKsAcACsAHAArQBwAK4AcACvAHAAsABwALEAcACyAHAAswBwALQAcAC1AHAAtgBwALcAcAC4AHAAuQBwALoAcAC7AHAAvABwAL0AcAC+AHAAvwBwAMAAcADBAHAAwgBwAMMAcADEAHAAxQBwAMYA4ADHAIAAyQBwAMoAcADLAHAA0ABgANEAcADSAHAA1QBwANYAcADXAHAA2ABwAOcAcADpAHABDgBwAQ8AcAEQAHABEQBwARIAcAETAHABFABwARUAcAEWAHABFwBwARgAcAEZAHABGgBwARsAcAEcAHABHQBwAR4AcAEfAHABIABwASEAcAEiAHABIwBwASQAcAElAHABJgBwAScAcAEoAHABKQBwASoAcAErAHABLABwAS0AcAEuAHABLwBwATAAcAExAHABMgBwATMAcAE0AHABNQBgATYAcAE3AHABOABwATkAcAE6AHABOwBwATwAcAE9AHABPgBwAT8AcAF2AHABdwBwAXgAcAF5AHABegBwAXsAcAF8AHABfgBwAX8AcAGAAHABgQBwAYIAcAGDAHABhABwAYUAcAGGAHABhwBwAYgAcAGJAHABigBwAZgAcAI/AHACQQBwAkIAcAJDAHACRABwAkUAcAKUAHAClQBwApYAcAKXAHACmABwApkAcAKaAHACngBwAp8AcAKgAHACoQBwAqIAcAKjAHACpABwAqUAcAKmAHACpwBwAqgAcAKsAIACrQBwAq8AcAKwAHACsQBwArQAcAK1AHACtgBwArcAYAK5AHACugBwArsAcAK8AGACvQBgAsAAcALCAHACwwBgAsYAcALHAGACyABgAskAYALKAHACywBwAswAcALNAHACzgBwAs8AcALQAHAC0QBwAtMAcALUAHAC1QBwAtYAcALXAHAC2QBwAtoAcALbAHAC3ABwAt0AcALeAHAC3wBwAuAAgALhAHAC4gBwAuMAcALkAHAC5QBwAucAcALoAHAC6QBwAuoAcALrAHAC7ABwAu0AcALuAHAC7wBwAvwAYANiAIADcgBwA3MAcAPZAHAD2gBwA94AcAP8AHAD/QBwBAMAcAQEAHAEBQBwBAgAcAQLAHAEEABwBBIAcAQTAHAEFQBwBBYAcAQYAHAEGgBwBBwAcAQdAHAEJgBwBN4AcATyAGAFCQBwBQwAcAUNAHAFPABgBT8AYAVCAGAFTgBwBakAYAW/AHAGoQBwBtoAcAbbAHAG3ABwBt0AcAbeAHAG+ABwB4YAcAeXAHAHnwBwB8MAcAfEAHAHxQBwB8kAcAfKAHAIWgBwCHkAcAiWAHAImABwCJkAcAidAHAIngBwCKAAcAkuAHABXwACAEAAAwBAAAQAQAAFAEAABgBAAAcAQAAIAEAACQBAAAoAQAALAEAADABAAA0AQAAOAEAADwBAABAAQAARAEAAEgBAABMAQAAUAEAAFQBAABYAQAAXAEAAGABAABkAQAAaAEAAGwBAABwAQAAdAEAAHgBAAB8AQAAgAEAAIQBAACIAQAAjAEAAJABAACUAQAAmAEAAJwBAACgAQAApAEAAKgBAACsAQAAsAEAALQBAAC4AQAAvAEAAMABAADEAQAAyAEAAMwBAADQAQAA1AEAANgBAADcAQAA4AEAAOQBAADoAQAA7AEAAPABAAD0AQAA+AEAAPwBAAEAAQABBACgAQgAoAEMAKABEACgARQAoAEYAKABHACgASAAoAFQAKABVACgAVgAoAFcAKABYACgAWQAoAFoAKABbACgAXAAoAF0AKABeACgAXwAoAGAAKABhACgAYgAoAGMAKABkACgAZQAoAGYAKABnACgAaAAoAGkAKABqACgAawAoAGwAKABtACgAbgAoAG8AKABwACgAcQAoAHIAKABzACgAdAAoAHUAKAB2ACgAdwAoAHgAKAB5ACgAewAoAIQAKACFACgAhgAoAIcAKACIACgAiQAoAIsAKAChACgAogAoAKMAKACkACgApQAoAKYAKACnACgAqAAoAKkAKACqACgAqwAoAKwAKACtACgArgAoAK8AKACwACgAsQAoALIAKACzACgAtAAoALUAKAC2ACgAtwAoALgAKAC5ACgAugAoALsAKAC8ACgAvQAoAL4AKAC/ACgAwAAoAMEAKADCACgAwwAoAMQAKADFACgAxgDgAMcAgADJACgAygAoAMsAKADQACgA0QAoANIAKADVACgA1gAoANcAKADYACgA5wAoAOkAKAEOACgBDwAoARAAKAERACgBEgAoARMAKAEUACgBFQAoARYAKAEXACgBGAAoARkAKAEaACgBGwAoARwAKAEdACgBHgAoAR8AKAEgACgBIQAoASIAKAEjACgBJAAoASUAKAEmACgBJwAoASgAKAEpACgBKgAoASsAKAEsACgBLQAoAS4AKAEvACgBMAAoATEAKAEyACgBMwAoATQAKAE2ACgBNwAoATgAKAE5ACgBOgAoATsAKAE8ACgBPQAoAT4AKAE/ACgBdgAoAXcAKAF4ACgBeQAoAXoAKAF7ACgBfAAoAX4AKAF/ACgBgAAoAYEAKAGCACgBgwAoAYQAKAGFACgBhgAoAYcAKAGIACgBiQAoAYoAKAGYACgCPwAoAkEAKAJCACgCQwAoAkQAKAJFACgClAAoApUAKAKWACgClwAoApgAKAKZACgCmgAoAp4AKAKfACgCoAAoAqEAKAKiACgCowAoAqQAKAKlACgCpgAoArUAYAK3AGACygAoAssAKALMACgCzQAoAs4AKALPACgC0AAoAtEAKALTACgC1AAoAtUAKALWACgC1wAoAtkAKALaACgC2wAoAtwAKALdACgC3gAoAt8AKALgACgC4QAoAuIAKALjACgC5AAoAuUAKALnACgC6AAoAukAKALqACgC6wAoAuwAKALtACgC7gAoAu8AKANiAIADcgAoA3MAKAPIAEAD2QAoA9oAKAPeACgD/AAoA/0AKAQDACgEBAAoBAUAKAQIACgECwAoBBAAKAQSACgEEwAoBBUAKAQWACgEGAAoBBoAKAQcACgEHQAoBCYAKAUJACgFDAAoBQ0AKAVOACgFqQBgBb8AKAahACgG2gAoBtsAKAbcACgG3QAoBt4AKAb4ACgHhgAoB5cAKAefACgHwwAoB8QAKAfFACgHyQAoB8oAKAhaACgIeQAoCJYAKAiYACgImQAoCJ0AKAieACgIoAAoCS4AKAF4AEn/kABK/5AAS/+QAEz/kABN/5AATv+QAE//kABQ/5AAUf+QAFL/kABT/5AAigEQAI3/kACO/5AAj/+QAJD/kACR/5AAkv+QAJP/kACU/5AAlf+QAJb/kACX/5ABNQEQAUD/kAFB/5ABQv+QAUP/kAFE/5ABRf+QAUb/kAFH/5ABSP+QAUn/kAFK/5ABS/+QAUz/kAFN/5ABTv+QAU//kAFQ/5ABUf+QAVL/kAFT/5ABVP+QAVX/kAFW/5ABV/+QAVj/kAFZ/5ABWv+QAVv/kAFc/5ABXf+QAV7/kAFf/5ABYP+QAWH/kAFi/5ABY/+QAWT/kAFl/5ABZv+QAWf/kAFo/5ABaf+QAWr/kAFr/5ABbP+QAW3/kAFu/5ABb/+QAXD/kAFx/5ABcv+QAXP/kAF0/5ABdf+QAX3/kAGZ/2ABmv9gAZv/YAGc/2ABnf9gAZ7/YAGf/2ABoP9gAaH/YAGi/2ABo/9gAaT/YAGl/5ABpv+QAaf/kAGo/5ABqf+QAar/kAGr/5ABrP+QAa3/kAGu/5ABr/+QAbD/kAGx/5ABsv+QAbP/kAG0/5ABtf+QAbb/kAG3/5ABuP+QAbn/kAG6/5ABu/+QAbz/kAG9/5ABvv+QAb//kAHA/5ABwf+QAcL/kAHD/5ABxP+QAcX/IAHG/yABx/8gAhgAgAKnAGACqABgAqwAYAKtAGACrwBgArAAYAKxAGACtABgArUAYAK2AGACuQBgAroAYAK7AGACvAEQAr0BEALAAGACwgBgAsMBEALGARACxwEQAsgBEALJARAC4ABgAvAAgALxAIAC9ACAAvUAgAL2AIAC9wCAAvgAgAL5AIAC+gCAAvsAgAL8ARAC/QCAAv4AgAL/AIADAACAAwEAgAMCAIADAwCAAwQAgAMFAIADBgCAAzsAgAM8AIADPQCAAz4AgAM/AIADQACAA0MAgANFAIADRgCAA0cAgANLAIADTACAA00AgANOAIADTwCAA1AAgANRAIADUgCAA1MAgANUAIADVQCAA1YAgANXAIADWACAA1kAgANaAIADWwCAA1wAgANdAIADXgCAA18AgANgAIADYQCAA2IAYAOk/yADpv8gA6f/IAO1/yADtv8gA7f/IAO4/yADuf8gA7r/IAO7/yADvP8gA73/IAO+/yADv/8gA8D/IAPB/yADwv8gA8P/IAPE/yADxf8gA8b/IAPH/yADzP8gA9z/kAPg/5AD4f7wA/v/IAP/AKAEB/+QBAr/kAQM/2AEDf7QBBH/YAQU/3AEGf+QBB7/kAQj/yAEJP9gBEEAgARC/2AEUwCABFQAgARVAIAEVgCABFcAgARYAIAEWQCABFoAgARbAIAEXACABF0AgAReAIAEXwCABGAAgARhAIAEYgCABGMAgARkAIAEZQCABGYAgARnAIAEaACABGkAgARqAIAEgQCABIIAgASDAIAEhACABIgAgASJAIAEigCABIsAgASMAIAEjQCABI4AgASPAIAEkACABJEAgASSAIAEkwCABJQAgASVAIAElgCABJcAgASYAIAEmQCABLX/IAS2/4AEtwCABLgAgAS5AIAEuwCABL8AgATAAIAEwQCABMIAgATDAIAExACABMkAgATKAIAEywCABMwAgATNAIAEzgCABM8AgATQAIAE1QCABNYAgATaAIAE2wCABNwAgATeAGAE4gCABOQAgATmAIAE5wCABO3/IAT3/3AFAP+QBQH/kAUC/5AFDv+ABQ/+0AUS/4AFE/9gBRT/gAUW/4AFGP+ABRn/gAUa/4AFG/7QBRz/gAUf/4AFUP8gBVwAgAVp/5AFbv+QBaz/QAWt/0AFsP+QBbn/QAW+/4AG2P+QBtn/kAbx/2AHif+QB5wAgAep/5AHq/9gB6z/YAeu/5AHxv+QB8f/YAgVAIAILwCACEIAgAhDAIAIRACACEb/IAhLAIAIZ/8gCJH/IAiU/yAImv8gCJv/IAjhAIAJMwCACTsAgAng/yAJ4f8gCegAgAHcAAL+0AAD/tAABP7QAAX+0AAG/tAAB/7QAAj+0AAJ/tAACv7QAAv+0AAM/tAADf7QAA7+0AAP/tAAEP7QABH+0AAS/tAAE/7QABT+0AAV/tAAFv7QABf+0AAY/tAAGf7QABr+0AAb/tAAHP7QAB3+0AAe/tAAH/7QACD+0AAh/tAAIv7QACP+0AAk/tAAJf7QACb+0AAn/tAAKP7QACn+0AAq/tAAK/7QACz+0AAt/tAALv7QAC/+0AAw/tAAMf7QADL+0AAz/tAANP7QADX+0AA2/tAAN/7QADj+0AA5/tAAOv7QADv+0AA8/tAAPf7QAD7+0AA//tAAQP7QAQn+8AEK/vABC/7wAQz+8AEN/vAB+P+AAfn/gAH6/4AB+/+AAfz/gAH9/4AB/v+AAf//gAIA/4ACAf+AAgL/gAID/4ACBP+AAgX/gAIG/4ACB/+AAgj/gAIJ/4ACCv+AAgv/gAIM/4ACDf+AAg7/gAIP/4ACEP+AAhH/gAIS/4ACE/+AAhT/gAIV/4ACFv+AAhf/gAIZ/4ACGv+AAhv/gAIc/4ACHf+AAh7/gAIf/4ACIP9wAiH/cAIi/3ACI/9wAiT/cAIl/3ACJv9wAif/cAIo/3ACKf9wAir/cAIr/3ACLP9wAi3/cAIu/3ACL/9wAjD/cAIx/3ACMv9wAjP/cAI0/3ACNf9wAjb/cAI3/3ACOP9wAjn/cAI6/3ACO/9wAjz/cAI9/3ACPv9wAkb/cAJH/3ACSP9wAkn/cAJK/3ACS/9wAkz/cAJN/3ACTv9wAk//cAJQ/3ACUf9wAlL/cAJT/3ACVP9wAlX/cAJW/3ACV/9wAlj/cAJZ/3ACWv9wAlv/cAJc/3ACXf9wAl7/cAJg/3ACYf9wAmL/cAJj/3ACZP9wAmX/cAJm/3ACZ/9wAmj/cAJp/3ACav9wAmv/cAJs/3ACbf9wAm7/cAJv/3ACcP9wAnH/cAJy/3ACc/9wAnT/cAJ1/3ACdv9wAnf/cAJ4/3ACef9wAnr/cAJ7/3ACfP9wAn3/cAJ+/3ACf/9wAoD/cAKB/3ACgv9wAoP/cAKK/3ACi/9wAoz/cAKN/3ACjv9wAo//cAKQ/3ACkf9wApL/cAKT/3ACqQEAAqoBAAKrAQACsgEAArMBAAK4AQACwQEAAwf/cAMI/3ADCf9wAwr/cAML/3ADDP9wAw3/cAMO/3ADD/9wAxD/cAMR/3ADEv9wAxP/cAMU/3ADFf9wAxb/cAMX/3ADGP9wAxn/cAMa/3ADG/9wAxz/cAMd/3ADHv9wAx//cAMg/3ADIf9wAyL/cAMj/3ADJP9wAyX/cAMm/3ADJ/9wAyj/cAMp/3ADKv9wAyv/cAMs/3ADLf9wAy7/cAMv/3ADMP9wAzH/cAMy/3ADM/9wAzT/cAM1/3ADNv9wAzf/cAM4/3ADOf9wAzr/cANB/3ADQv9wA2P/kANk/5ADZf+QA2b/kANn/5ADaP+QA2n/kANq/5ADa/+QA2z/kANt/5ADbv+QA2//kANw/5ADcf+QA8j+0APb/tAEJf9wBCf/cAQo/3AEKf9wBCr/cAQr/3AELP9wBC3/cAQu/3AEL/9wBDD/cAQx/3AEMv9wBDP/cAQ0/3AENf9wBDb/cAQ3/3AEOP9wBDn/cAQ6/3AEO/9wBDz/cAQ9/3AEPv9wBD//cARA/3AEQ/9wBET/cARF/3AERv9wBEf/cARI/3AESf9wBEr/cARL/3AETP9wBE3/cARO/3AET/9wBFD/cARR/3AEUv9wBGv/cARs/3AEbf9wBG7/cARv/3AEcP9wBHH/cARy/3AEc/9wBHT/cAR1/3AEdv9wBHf/cAR4/3AEef9wBHr/cAR7/3AEfP9wBH3/cASB/3AEhf9wBIb/cASa/3AEm/9wBJ3/cASe/3AEn/9wBKD/cASh/3AEov9wBKP/cASk/3AEpf9wBKb/cASn/3AEqP9wBKn/cASq/3AEq/9wBKz/cASt/3AErv9wBK//cASw/3AEsf9w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/+wFpwEsBagBLAWw/2AFvwAABqEAAAatASwGrgEsBq8BLAaw/+wGsf/sBsQBLAbFASwGxgEsBsf/7AbI/+wG2P9gBtn/YAbaAAAG2wAABtwAAAbdAAAG3gAABvEAAAb4AAAHhgAAB4n/YAeXAAAHnwAAB6n/YAerAAAHrAAAB67/YAev/7AHsP+wB7sAAAe8AAAHwwAAB8QAAAfFAAAHxv9gB8cAAAfIAAAHyQAAB8oAAAhaAAAIeQAACJH/zgiSAAAIlP/OCJYAAAiYAAAImQAACJr/zgib/84InAAACJ0AAAieAAAInwAACKAAAAkuAAAJPAAAAAIAgQACAJcAAAChAMcAlgDJAOkAvQEJAlIA3gJUAlQCKAJWAlYCKQJYAl4CKgJgAmECMQJkAoMCMwKFAvkCUwL7AvwCyAL+A6QCygOmA6kDcQOrA8gDdQPMA9gDkwPaA9wDoAPgA+ADowP7A/4DpAQABAADqAQDBAcDqQQJBAoDrgQNBA0DsAQQBBIDsQQUBBsDtAQeBB4DvAQiBEMDvQRGBEYD3wRsBH0D4ASBBIQD8gSIBLUD9gS3BLoEJAS8BN4EKAThBOUESwTnBOsEUATtBO8EVQUABQIEWAUJBQkEWwUMBRAEXAUSBRMEYQUXBR8EYwU7BT0EbAU/BT8EbwVBBUIEcAVEBUQEcgVGBUYEcwVIBUgEdAVOBU4EdQVQBVIEdgVbBVsEeQVeBV4EegVpBWoEewVsBXEEfQV0BXQEgwV7BX0EhAV/BX8EhwWCBYIEiAWHBYgEiQWKBY0EiwWQBZUEjwWXBZoElQWdBaIEmQWkBacEnwWqBa0EowWvBbAEpwWyBbMEqQW5Bb8EqwXJBcsEsgXNBdMEtQXVBdoEvAXcBdwEwgXeBeIEwwXlBecEyAXqBesEywXtBe0EzQX0BhkEzgYcBh4E9AYhBiEE9wYjBiME+AYmBiYE+QYpBjME+gY5BkIFBQZQBlAFDwZXBlcFEAaoBqwFEQa/BsMFFgbYBt4FGwbxBvIFIgb4BvgFJAeGB4YFJQeJB4kFJgeLB4wFJwePB48FKQeXB5cFKgecB5wFKwefB58FLAepB6kFLQerB6wFLgevB7AFMAe3B7kFMge7B7wFNQfDB8oFNwfMB8wFPwftB+8FQAgVCBUFQwgZCBkFRAgjCCMFRQguCC8FRghCCEQFSAhG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BXsFfQA6BX8FfwA5BYIFggA5BYcFhwATBYgFiAA0BYoFigA/BYsFiwBABYwFjAA/BY0FjQBABZAFkwAXBZQFlQATBZcFlwATBZgFmQAXBZoFmgATBZ0FoAAXBaEFogATBaQFpAATBaUFpgAXBacFpwATBaoFqwAsBawFrQA1Ba8FrwBDBbAFsAAEBbIFsgBDBbMFswAsBbkFuQA1BboFvQAsBb8FvwAnBckFyQAxBcoFygAyBcsFywBLBc0FzQBOBc4FzgBPBc8FzwBSBdAF0AAxBdEF0gBBBdMF0wBUBdUF1gAxBdcF2QAyBdoF2gBZBdwF3ABeBd4F3gBGBd8F3wBiBeAF4ABjBeEF4QBGBeIF4gBkBeUF5QBhBeYF5gAfBecF5wBRBeoF6gBcBesF6wAfBe0F7QBXBfQGGQAGBhwGHgAGBiEGIQBgBiMGIwBQBiYGJgBbBikGKQA+BioGMwAGBjkGQgAfBlAGUAAfBlcGVwA+BqgGqgATBqsGrAAXBr8GwQATBsIGwwAXBtgG2QAEBvEG8gAHB4YHhgAYB4kHiQAYB4sHiwAEB4wHjAASB48HjwALB5cHlwASB5wHnAADB6kHqQAEB6sHrAALB68HsAANB7cHuAAFB7kHuQAvB7sHvAAdB8MHwwALB8UHxQAnB8YHxgAYB8cHxwALB8gHyAAdB8kHyQALB8oHygAeB8wHzAACB+0H7QAIB+4H7wABCBUIFQAVCBkIGQAVCCMIIwAmCC4ILwAmCEIIRAABCEYIRgAOCEsISwAiCE0ITQAVCFoIWgABCGcIZwAOCGoIawACCIcIhwA5CJQIlAAqCJYIlgAqCJgImAAdCJwInAAdCKQIpgACCLUItQAmCOEI4QABCS4JLgACCTMJMwABCTcJNwACCToJOgALCTsJOwAmCTwJPAAdCT0JPQAoCeAJ4QAOCegJ6AABAAAABQD4/YAJ+AqAAAMABwALAA8AEwAAUxEhEQERIREBESERAREhEQERIRH4CQD3AAkA9wAJAPcACQD3AAkA/YACAP4ACEACAP4AAsACAP4A98ACAP4AAsACAP4AAAIASAAABygIAAAHAAsAAGEhASEBIQEjASEVIQFM/vwC8AEAAvD+/P2cEP38BBj76AgA+AAGvPxk3AAEAEgAAAcoCkAABwALABcAIwAAYSEBIQEhASMBIRUhEyIm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"}},"time_used":119,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":30,"receive":89,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/images/coins/btc.png","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.940Z","timestamp":1785139670940,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /images/coins/btc.png HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/En?cur_from=BTC\u0026cur_to=ETH\r\nCookie: i18n_redirected=En; g_state={\"i_l\":1,\"i_ll\":1785139670610,\"i_b\":\"0HvR8O9RKa1Yx+eHqJWBIhQa2KC9iwvt4EuuX6covAw\",\"i_e\":{\"enable_itp_optimization\":24},\"i_et\":1785139670610}; _ga_VVBQ0TLCDN=GS2.1.s1785139670$o1$g0$t1785139670$j60$l0$h0; _ga=GA1.1.413880559.1785139671\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:12 GMT\r\nETag: \"5ba7-654aa2b8fe9ec\"\r\nAccept-Ranges: bytes\r\nContent-Length: 23463\r\nKeep-Alive: timeout=5, max=80\r\nConnection: Keep-Alive\r\nContent-Type: image/png\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":23463,"size_decoded":23750,"mime_type":"image/png","magic":"PNG image data, 500 x 500, 8-bit/color RGBA, non-interlaced","md5":"5e26111d392ecab3138db65f241eb689","sha1":"26d1e24e980623d5a2aca4e8334f2d74c2699617","sha256":"5e917768bfe4bb4cac144f6faa472b7596086c6e58304cb79d7210c1bd4eab81","sha512":"33eabfccb5d37f6b5e341e624694115b174278ed8fa21d79a77edf80f76b342f008fe2a76b86582ae116e0aaa46b409633af7f22affbf2adbaadf55fe556cca2","ssdeep":"384:MNJzH+F3hMqak2u1LSzce702Q9a3TuJFzqj0FK+W1JtNIclzV:MPw3h712z/70FUjgqgw+MFhV","tlshash":"4db2e0e41416ca4d5a61002f88671498e9abd3199df22ffc060499ffe3ac010eeb7acc","first_seen":"2025-10-23T03:46:52.722155Z","last_seen":"2026-07-27T11:49:48.98465Z","times_seen":17,"resource_available":false,"data":"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2c/VNBERERERERERERERERERERERERERERERERERERERERERERERUYD+D921ys/vwTAxAAAAAElFTkSuQmCC"}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/enums.0CH7Xg2e.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.477Z","timestamp":1785139669477,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/enums.0CH7Xg2e.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"c4e-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 997\r\nKeep-Alive: timeout=5, max=92\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":3150,"size_decoded":1332,"mime_type":"text/css","magic":"ASCII text, with very long lines (3149)","md5":"16e39d4a6112427017be0def8023c51f","sha1":"3475312fee5bcd1f193084916a121553a6b3a216","sha256":"4854c7400ce443bb16a86dd3a0b6a47daa8ca9cb5e1347623e9140472fa5df66","sha512":"cefc3706845f11ca2728df3697eac5c05758b8231d3be91fcc0d242d6bfb9fc19e4d52b74835730a0b4bd0d5d6cdadc81d97615af75c3a344d0d2b5b39dda4dd","ssdeep":"","tlshash":"2851ccd47262d836791ba0c8c5ddd618d1fe7c80ef2b504d58aa3a2d478e6f13882637","first_seen":"2025-10-23T03:46:53.016582Z","last_seen":"2026-07-27T11:49:48.934862Z","times_seen":9,"resource_available":false,"data":"LmN1c3RvbS1zbmFja2Jhci1zdHlsZSAudi1zbmFja2Jhcl9fYWN0aW9uc3thbGlnbi1zZWxmOnN0YXJ0IWltcG9ydGFudH0udi1zbmFja2JhcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjo4cHg7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYyg4cHggKyB2YXIoLS12LXNjcm9sbGJhci1vZmZzZXQpKTtwYWRkaW5nOnZhcigtLXYtbGF5b3V0LXRvcCkgdmFyKC0tdi1sYXlvdXQtcmlnaHQpIHZhcigtLXYtbGF5b3V0LWJvdHRvbSkgdmFyKC0tdi1sYXlvdXQtbGVmdCk7ei1pbmRleDoxMDAwMH0udi1zbmFja2Jhcjpub3QoLnYtc25hY2tiYXItLWNlbnRlcik6bm90KC52LXNuYWNrYmFyLS10b3Ape2FsaWduLWl0ZW1zOmZsZXgtZW5kfS52LXNuYWNrYmFyX193cmFwcGVye2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjY3MnB4O21pbi1oZWlnaHQ6NDhweDttaW4td2lkdGg6MzQ0cHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MH0udi1zbmFja2Jhci0tdmFyaWFudC1vdXRsaW5lZCwudi1zbmFja2Jhci0tdmFyaWFudC1wbGFpbiwudi1zbmFja2Jhci0tdmFyaWFudC10ZXh0LC52LXNuYWNrYmFyLS12YXJpYW50LXRvbmFse2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdH0udi1zbmFja2Jhci0tdmFyaWFudC1wbGFpbntvcGFjaXR5Oi42Mn0udi1zbmFja2Jhci0tdmFyaWFudC1wbGFpbjpmb2N1cywudi1zbmFja2Jhci0tdmFyaWFudC1wbGFpbjpob3ZlcntvcGFjaXR5OjF9LnYtc25hY2tiYXItLXZhcmlhbnQtcGxhaW4gLnYtc25hY2tiYXJfX292ZXJsYXl7ZGlzcGxheTpub25lfS52LXNuYWNrYmFyLS12YXJpYW50LWVsZXZhdGVkLC52LXNuYWNrYmFyLS12YXJpYW50LWZsYXR7YmFja2dyb3VuZDpyZ2IodmFyKC0tdi10aGVtZS1zdXJmYWNlLXZhcmlhbnQpKTtjb2xvcjpyZ2IodmFyKC0tdi10aGVtZS1vbi1zdXJmYWNlLXZhcmlhbnQpKX0udi1zbmFja2Jhci0tdmFyaWFudC1lbGV2YXRlZHtib3gtc2hhZG93OjAgM3B4IDVweCAtMXB4IHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDZweCAxMHB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkscmdiYSgwLDAsMCwuMTQpKSwwIDFweCAxOHB4IDAgdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSxyZ2JhKDAsMCwwLC4xMikpfS52LXNuYWNrYmFyLS12YXJpYW50LWZsYXR7Ym94LXNoYWRvdzowIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjIpKSwwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LHJnYmEoMCwwLDAsLjE0KSksMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktYW1iaWVudC1vcGFjaXR5LHJnYmEoMCwwLDAsLjEyKSl9LnYtc25hY2tiYXItLXZhcmlhbnQtb3V0bGluZWR7Ym9yZGVyOnRoaW4gc29saWR9LnYtc25hY2tiYXItLXZhcmlhbnQtdGV4dCAudi1zbmFja2Jhcl9fb3ZlcmxheXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcn0udi1zbmFja2Jhci0tdmFyaWFudC10b25hbCAudi1zbmFja2Jhcl9fdW5kZXJsYXl7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czppbmhlcml0O2JvdHRvbTowO2xlZnQ6MDtvcGFjaXR5OnZhcigtLXYtYWN0aXZhdGVkLW9wYWNpdHkpO3BvaW50ZXItZXZlbnRzOm5vbmU7cmlnaHQ6MDt0b3A6MH0udi1zbmFja2JhciAudi1zbmFja2Jhcl9fdW5kZXJsYXl7cG9zaXRpb246YWJzb2x1dGV9LnYtc25hY2tiYXJfX2NvbnRlbnR7ZmxleC1ncm93OjE7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi4wMTc4NTcxNDI5ZW07bGluZS1oZWlnaHQ6MS40MjU7bWFyZ2luLXJpZ2h0OmF1dG87cGFkZGluZzoxNHB4IDE2cHg7dGV4dC1hbGlnbjppbml0aWFsfS52LXNuYWNrYmFyX19hY3Rpb25ze2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtkaXNwbGF5OmZsZXg7bWFyZ2luLWlubGluZS1lbmQ6OHB4fS52LXNuYWNrYmFyX19hY3Rpb25zPi52LWJ0bnttaW4td2lkdGg6YXV0bztwYWRkaW5nOjAgOHB4fS52LXNuYWNrYmFyX190aW1lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS52LXNuYWNrYmFyX190aW1lciAudi1wcm9ncmVzcy1saW5lYXJ7dHJhbnNpdGlvbjouMnMgbGluZWFyfS52LXNuYWNrYmFyLS1hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjF9LnYtc25hY2tiYXItLW11bHRpLWxpbmUgLnYtc25hY2tiYXJfX3dyYXBwZXJ7bWluLWhlaWdodDo2OHB4fS52LXNuYWNrYmFyLS12ZXJ0aWNhbCAudi1zbmFja2Jhcl9fd3JhcHBlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnYtc25hY2tiYXItLXZlcnRpY2FsIC52LXNuYWNrYmFyX193cmFwcGVyIC52LXNuYWNrYmFyX19hY3Rpb25ze2FsaWduLXNlbGY6ZmxleC1lbmQ7bWFyZ2luLWJvdHRvbTo4cHh9LnYtc25hY2tiYXItLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udi1zbmFja2Jhci0tdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnYtc25hY2tiYXItLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH0udi1zbmFja2Jhci0tbGVmdCwudi1zbmFja2Jhci0tc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnYtc25hY2tiYXItLWVuZCwudi1zbmFja2Jhci0tcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS52LXNuYWNrYmFyLXRyYW5zaXRpb24tZW50ZXItYWN0aXZlLC52LXNuYWNrYmFyLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZle3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS52LXNuYWNrYmFyLXRyYW5zaXRpb24tZW50ZXItYWN0aXZle3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eSx0cmFuc2Zvcm19LnYtc25hY2tiYXItdHJhbnNpdGlvbi1lbnRlci1mcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjgpfS52LXNuYWNrYmFyLXRyYW5zaXRpb24tbGVhdmUtYWN0aXZle3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eX0udi1zbmFja2Jhci10cmFuc2l0aW9uLWxlYXZlLXRve29wYWNpdHk6MH0K"}},"time_used":212,"timings":{"blocked":186,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CI8VFsgH.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.493Z","timestamp":1785139669493,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CI8VFsgH.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"1f3-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 333\r\nKeep-Alive: timeout=5, max=99\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":499,"size_decoded":682,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (498)","md5":"56d7bda41f695ba08b1d7269be18e48b","sha1":"b5a2ac87791d6dda3bb6834577e8b9bae559d243","sha256":"c959253aa910087a13d628a81c698ba74b0215231b7f0d5b3504ab6d4f7c5dbb","sha512":"dc032f11af19d93a20955365aac8ab740da9891088fbfaf5a37ab3d965fef5bef456160b68e18d447234685e5852630e44230dc3185c4108affba5e3497ed7d8","ssdeep":"","tlshash":"7af00e6c2acdf2b40cd3d2c042a04023f66c5db8ad7e60c09388e12003e31084323f24","first_seen":"2025-10-23T03:46:52.732999Z","last_seen":"2026-07-27T11:49:48.955034Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0eyQgYXMgZixiciBhcyBtLGEyIGFzIGwsYlkgYXMgdSxiaiBhcyBkfWZyb20iLi9TbTJtQ2ZERS5qcyI7Y29uc3Qgaj1mKHt0cmFuc2l0aW9uOnt0eXBlOltCb29sZWFuLFN0cmluZyxPYmplY3RdLGRlZmF1bHQ6ImZhZGUtdHJhbnNpdGlvbiIsdmFsaWRhdG9yOm89Pm8hPT0hMH19LCJ0cmFuc2l0aW9uIiksVD0obyxzKT0+e2xldHtzbG90czplfT1zO2NvbnN0e3RyYW5zaXRpb246dCxkaXNhYmxlZDpyLGdyb3VwOm4sLi4uYX09byx7Y29tcG9uZW50Omk9bj91OmQsLi4ucH09dHlwZW9mIHQ9PSJvYmplY3QiP3Q6e307cmV0dXJuIG0oaSxsKHR5cGVvZiB0PT0ic3RyaW5nIj97bmFtZTpyPyIiOnR9OnAsdHlwZW9mIHQ9PSJzdHJpbmciP3t9Ok9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh7ZGlzYWJsZWQ6cixncm91cDpufSkuZmlsdGVyKGM9PntsZXRbeSxiXT1jO3JldHVybiBiIT09dm9pZCAwfSkpLGEpLGUpfTtleHBvcnR7VCBhcyBNLGogYXMgbX07Cg=="}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/recaptcha__en.js","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.059Z","timestamp":1785139670059,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/recaptcha__en.js HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://nconnect.org\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/recaptcha-scs\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups; report-to=\"recaptcha-scs\"\r\nreport-to: {\"group\":\"recaptcha-scs\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/recaptcha-scs\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 382189\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:17 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:17 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 14 Jul 2026 12:02:38 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding\r\nage: 413853\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":891014,"size_decoded":383096,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (553)","md5":"a07ac1bf3466fe5eff6b753f96f39a11","sha1":"d06f6ebd81a8c180a7a6343821a3cf8279f5b86d","sha256":"c9fc8d435c9c3e131d7aedb36923a5ef798c85412192ed2afd9c52dcfb826ff7","sha512":"4648746112b8cdbab787c43e88827d96e02034c52b5436167a24d647ce349a0501df4ca67f82779c89fe0f5659bcc9b444655f83da816469c23e781fa3facc9a","ssdeep":"12288:CN7INAse6Zz779FTMfCtfTSZDYDzVRlh09yENpDvE:a0le6p5tfTSZ0D1h09yENpDvE","tlshash":"50153ade714639b24322b6f52077241ea77e9619c40c5c5d70aa98f03ef580da0f6ebb","first_seen":"2026-07-14T22:23:00.839245Z","last_seen":"2026-08-04T07:42:04.216012Z","times_seen":17341,"resource_available":true,"data":"KGZ1bmN0aW9uKCl7LyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCgogQ29weXJpZ2h0IChjKSAyMDE1LTIwMTggR29vZ2xlLCBJbmMuLCBOZXRmbGl4LCBJbmMuLCBNaWNyb3NvZnQgQ29ycC4gYW5kIGNvbnRyaWJ1dG9ycwogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoqLwovKgoKIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCi8qCgogQ29weXJpZ2h0IEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCi8qCgogQ29weXJpZ2h0IDIwMDUsIDIwMDcgQm9iIElwcG9saXRvLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKi8KLyoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIENvcHlyaWdodCAoYykgMjAxMy0yMDE2IERtaXRyeSBDaGVzdG55a2guIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKi8KdmFyIGcwPWZ1bmN0aW9uKCl7cmV0dXJuW2Z1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQl42Myk+PjM9PSgoQi0zJigoKCh2PVsxLDIsNTBdLEImODgpPT1CJiZULmNhbGwodGhpcyx6KSxCKzYpJjE1KT09dlsxXSYmKHo9PT12b2lkIDAmJktEKCkscD1LKSw3KSk9PTMmJlQuY2FsbCh0aGlzLHosMCxDRC5SVCksdilbMF0pYTp7aWYoSz09KGI9WzEsbnVsbCwnIiddLGIpW3ZbMF1dKXtwPUo7YnJlYWsgYX1pZigoQz10eXBlb2YgSyxDKT09PUFZKUorPUs7ZWxzZSBpZihBcnJheS5pc0FycmF5KEspKXtBPTA7Zm9yKEorPXo7QTxLLmxlbmd0aC1iWzBdO0ErKylKPWcwWzBdKDQ4LCJbIixLW0FdLEopLEorPSIsIjtKPWcwWzBdKHZbMl0sIlsiLEtbSy5sZW5ndGgtYlswXV0sSiksSis9Il0ifWVsc2UgQz09PU5NPyhKPUorYlt2WzFdXStLLnJlcGxhY2UoLyIvZyxPdygpKSxKKz1iW3ZbMV1dKTpDPT09REcmJihKKz1LPzE6MCk7cD1KfXJldHVybiBwfSxmdW5jdGlvbihCLHosCkssSixDLGIsQSx2KXtyZXR1cm4oKCgoQnwoKHY9WyJBIiwibFkiLCJBTCJdLEI+PjIpJjE1fHwoTEQuY2FsbCh0aGlzLDQxLDE2LFsyXSksdGhpcy51WT10aGlzLkI9LTEsdGhpcy5WPXRoaXMuWD10aGlzLlM9dGhpcy5ucT10aGlzLm89dGhpcy5JPXRoaXNbdlsyXV09LTEsdGhpcy5VPXRoaXMuVz10aGlzLkg9dGhpcy5nPXRoaXMuaj10aGlzLkQ9dGhpcy5NPXRoaXMuUD10aGlzLmlZPXRoaXMuSz10aGlzLkw9dGhpcy5rSj10aGlzLmk9dGhpcy5DPXRoaXNbdlswXV09LTEsdGhpcy5HPXRoaXMubT10aGlzLlhnPXRoaXNbdlsxXV09LTEsdGhpcy5wcT1nWzddKDYpLHRoaXMuVzE9Z1s3XSg0KSksNzIpKT09QiYmKHRoaXMuV1c9Yix0aGlzLmxYPUosdGhpcy5Gbj16LHRoaXMuaVI9Syx0aGlzLnVYPUMpLEIpfDI0KT09QiYmKEo9KEM9T1sxNl0oMTQsMCxudWxsLCJDTE9TVVJFX0ZMQUdTIikpJiZDW3pdLEE9SiE9bnVsbD9KOkspLEIrMj4+MTxCJiYoQi0yfDkpPj1CKSYmTEQuY2FsbCh0aGlzLAo1NDUsOCksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKCgoQi03PDwyPCgoKFo9WyJheiIsNiw0M10sQnw4KSZaWzFdKT09MiYmKHRoaXMuS3x8RFtaWzJdXSg3Myx0aGlzLCExKSksQikmJihCKzJeWlsxXSk+PUImJihXPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHopKSxCPj4xJjE1KT09MiYmKEtbWlswXV0oKSx2PUsucmVzcG9uc2UscD1WcSgpLG49Sy5sWS55ZSgpLFE9SDgoKSxiPVJbMjldKDI0LHosMjMsbixRKSx2W3BdPWIsSj1LLnJlc3BvbnNlLFJbMV0oNSwhMCxKKT9BPSIiOihDPWVOKEopLEE9T1syM10oMjYsQywzKSksVz1BKSxCKSs3JjE1KT09NClhOntmb3IoYiBpbiBKKWlmKEMuY2FsbCh2b2lkIDAsSltiXSxiLEopKXtXPXo7YnJlYWsgYX1XPUt9cmV0dXJuKEIrWlsxXSY1NSk+PUImJihCKzJeMTcpPEImJihXPW5ldyBQcm9taXNlKGZ1bmN0aW9uKE4peyh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihQOCgpLGZ1bmN0aW9uKCl7TigpfSwKe29uY2U6ITB9KSxkb2N1bWVudC5oaWRkZW4pfHxOKCl9KSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEI+PihwPVsxOSwyMSwzOV0sMikmMTQpPj0zJiZCLTM8cFsxXSlpZih0eXBlb2YgSy5kaXNwb3NlPT0iZnVuY3Rpb24iKUsuZGlzcG9zZSgpO2Vsc2UgZm9yKEogaW4gSylLW0pdPXo7aWYoKEImNDEpPT1CKWE6e2ZvcihLPXo7Szx3aW5kb3dbaTNdW2M4KCldO0srKylpZihHWzE1XShwWzJdKS5jb250YWlucyh3aW5kb3dbaTNdW1NOKCldW0tdLmtuKSl7UT1LO2JyZWFrIGF9dGhyb3cgRXJyb3IoRXcoKSk7fWlmKChCfDQwKT09KCgoQi01fDE0KT49QiYmKEItM15wWzBdKTxCJiYoUT16Lk0/ITA6ei52P3oudi5zaXplPj16Lmk6ITEpLEIrNiYxNik8NiYmQis5Pj40Pj0zJiYoei5NPXouQ3x8ei5PLHoubD17bjE6SyxjQTohMH0pLEIpKWE6e3RyeXtpZighKChBPWIuY2FsbChDLnYuVyxLKSxIKVsxNF0oMSxBKSxBLmRvbmUpKXsoUT1BLEMudikuVT16O2JyZWFrIGF9dj0KQS52YWx1ZX1jYXRjaChuKXtRPShnMFtDLnYuVz1udWxsLDNdKDY0LEMudixuKSxEWzEwXSgzMyxudWxsLEMpKTticmVhayBhfVE9KChDLnYuVz1udWxsLEopLmNhbGwoQy52LHYpLERbMTBdKDQsbnVsbCxDKSl9cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7aWYoKChWPVsicmMtaW1hZ2VzZWxlY3QtdGFibGUtNDQiLDQsJyInXSxCKXw4KTwxOSYmKEJ8NSk+PjM+PTApYTp0cnl7UD0oUls0Nl0oNiwxLEopLnNldEl0ZW0oeixLKSxLKTticmVhayBhfWNhdGNoKHEpe1A9bnVsbDticmVhayBhfWlmKChCLTcmMTMpPT0xKXtmb3IoTD0oZj0obj0ocD0oYj0oQT1bIkltYWdlIGNoYWxsZW5nZSIsMiwwXSx6LnJvd1NwYW4pLHopLmNvbFNwYW4seD1lWzIxXSg3NCxWWzFdLGIpJiZlWzIxXSg3MyxWWzFdLHApPycgY2xhc3M9IicrUlsxMV0oNyxWWzBdKStWWzJdOmVbMjFdKDc4LFZbMV0sYikmJmVbMjFdKDczLEFbMV0scCk/JyBjbGFzcz0iJysKUlsxMV0oNywicmMtaW1hZ2VzZWxlY3QtdGFibGUtNDIiKStWWzJdOicgY2xhc3M9IicrUlsxMV0oNywicmMtaW1hZ2VzZWxlY3QtdGFibGUtMzMiKStWWzJdLE8pWzQwXSg3OSxhWigpLCI8dGFibGUiK3grIj48dGJvZHk+IiksaFkoQVsyXSxkMChiLUFbMl0pKSksQVsyXSk7TDxmO0wrKyl7Zm9yKEM9KE9bcj1MKjEsNDBdKDc5LG4sazgoKSksaFkoQVsyXSxkMChwLUFbMl0pKSksTj1BWzJdO048QztOKyspe2ZvcihKIGluIEo9KFo9KChPWzQwXSg5NyxuLCc8dGQgcm9sZT0iYnV0dG9uIiBpZD0iJytSWzExXSg3MywoVz1OKjEscipwK1cpKSsnIiB0YWJpbmRleD0iMCIgY2xhc3M9IicrUlsxMV0oOSwicmMtaW1hZ2VzZWxlY3QtdGlsZSIpKyJcIiBhcmlhLWxhYmVsPSciKSxnKVsyNV0oNjcsbixlWzM0XSg4OCxBWzBdKSksUT1PWzQwXSg5NyxuLFV3KCkpLHtGSjpyLHhGOld9KSx2b2lkIDApLHY9eix2KUogaW4gWnx8KFpbSl09dltKXSk7T1s0MF0oOTcsZ1syNV0oVlsxXSxRLHlbVlsxXV0oVlsxXSwKWixLKSksTU0oKSl9T1s0MF0oNzgsbixGaCgpKX1PWzQwXSg5NyxuLHNSKCkpLFA9bn1pZigoQjw8MSYyKT49MSYmKEI+PjImMyk8Mil7Zm9yKGI9KFE9WyhwPUouV2goKSxDPShuPUouV2goKSxbXSkscCldLG4hPXAmJlEucHVzaChuKSxLLlpNKTtiOylBPWImLWIsQy5wdXNoKERbMjZdKDIxLHosSixBKSksYiY9fkE7UD0oKHY9KFEucHVzaC5hcHBseShRLEMpLEsuVykpJiZRLnB1c2guYXBwbHkoUSx2KSxRKX1yZXR1cm4gUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEImKCgoQT1bNjMsMTA5LDYyXSxCPj4yPDcpJiZCPDwyPj0wJiYoSz1nWzIzXSg0MiksZ1szXSg1MixLLG5ldyB6RChLLHopKSksKEIrMyYyOSk8QikmJihCLTheOSk+PUImJihKPVJbOF0oQVsyXSx0aGlzKSxLPU9bNDhdKDk2LHRoaXMpKyIiLEM9MCx6PjEmJihDPU9bNDhdKDk2LHRoaXMpKSx0aGlzLnhKW0pdPVlbNF0oQVswXSxLLEMpKSxBWzFdKSk9PUImJihiPVJbMTNdKDEzLEhbMjVdKDU3LE9bOV0oMzAsCnopLEspLFtnWzE2XSgzOCxKKV0pKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZihiPVsiY2FsbCIsMTEsMzJdLCgoQl42NSkmMjcpPT0xKVRbYlswXV0odGhpcyx6KTtpZigoQis0Pj40PT00JiYoSjNbYlswXV0odGhpcyx6LEspLHRoaXMubz0hMSx0aGlzLk09bnVsbCx0aGlzLmc9Six0aGlzLnN0eWxlPUNLKSxCKzleMjIpPEImJihCKzcmNTIpPj1CKWE6e2lmKEEzKXtBPWdbYlsxXV0oKEo9QmlnSW50KEspLDYwKSxOdW1iZXIoQmlnSW50LmFzSW50TihiWzJdLEo+PkJpZ0ludChiWzJdKSkpLE51bWJlcihCaWdJbnQuYXNJbnROKGJbMl0sSikpKTticmVhayBhfUE9T1szNl0oMjgseixTdHJpbmcoSykpfWlmKChCLTZeKCgoQl45MikmMTUpPT00JiYoej1bInJjLTJmYS10YWJsb29wLWJlZ2luIiwicmMtMmZhLXRhYmxvb3AtZW5kIiwnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjxkaXYgY2xhc3M9IiddLEE9VEQoJzxkaXYgY2xhc3M9InJjLTJmYSI+PHNwYW4gY2xhc3M9IicrUltiWzFdXSg3MSwKelswXSkrelsyXStSW2JbMV1dKDczLCJyYy0yZmEtcGF5bG9hZCIpKyciPjwvZGl2PjxzcGFuIGNsYXNzPSInK1JbYlsxXV0oOSx6WzFdKSsnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjwvZGl2PicpKSwxMCkpPj1CJiYoQi04XjgpPEIpZm9yKEMgaW4gSyl6W2JbMF1dKEosS1tDXSxDLEspO3JldHVybiBBfV19KCksUj1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEI+PjEmKEItKEM9WzQyLDUsIlgiXSxDWzFdKT4+Mz09MSYmKHRoaXMudj1KLHRoaXNbQ1syXV09Syx0aGlzLk09eiksMykpPj0xJiZCPj4xPDkmJihiPVJbMTNdKDIxLEhbMjVdKENbMF0sT1s5XSgxNCwxMykseiksW2dbMTZdKDM4LEspLGdbMTZdKDc4LEopXSkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZighKEIrNz4+KChiPVs3MiwhMSwxMV0sKEJ8YlswXSk9PUImJihDPUhbMjFdKDcsSyx6KSksQiszPj4zPT0zKSYmKGpZPW51bGwscEs9W10sbks9bmV3IE1hcCksNCkpKWE6e2ZvcihKIGluIEspe0M9CmJbMV07YnJlYWsgYX1DPXp9aWYoIShCPj4yJmJbMl0pJiZ0aGlzLmNsb3NlZCl0aHJvdyBuZXcgWlY7cmV0dXJuIEN9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEJeKEM9WzIwLCJNIiwidiJdLEI8PDEmNnx8KEo9L15bXHNceGEwXSokLy50ZXN0KHopKSw1KSk+PTgmJkIrNTxDWzBdJiYoSz1uZXcgZzQsSy5YPXouWCx6W0NbMl1dJiYoS1tDWzJdXT1uZXcgTWFwKHpbQ1syXV0pLEtbQ1sxXV09eltDWzFdXSksSj1LKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoKG49WzAsImoiLDIzXSxCKS03Pj40KSl7Sj1KPT09KEE9KGI9Yj09PXZvaWQgMD9LLndpdGhDcmVkZW50aWFsczpiLHt9KSx2b2lkIDApP251bGw6SixLLlJ8fChLLlI9Tm0oKSk7dHJ5e3Y9KG5ldyBVUkwoSy5SKSkudG9TdHJpbmcoKX1jYXRjaChaKXt2PShuZXcgVVJMKEsuUixEWzExXSg5KS5sb2NhdGlvbi5vcmlnaW4pKS50b1N0cmluZygpfVE9KChDPW5ldyBVUkwodiksSiYmKEFbT1IoKV09CkopLEsuWHIpJiYoQVt4Zl09Sy5YcixDLnNlYXJjaFBhcmFtcy5zZXQoRFYoKSxLLlhyKSkse3VybDpDLnRvU3RyaW5nKCksYm9keTp6LHRxOjEsQUI6QSxXRDpMSygpLHdpdGhDcmVkZW50aWFsczpiLGd6OksuZ3p9KX1pZihCPDwxPj1uWzJdJiZCKzU8MzMpYTppZih2PVsxLDAsMzhdLEMua2V5Q29kZT09Mzd8fEMua2V5Q29kZT09Mzl8fEMua2V5Q29kZT09dlsyXXx8Qy5rZXlDb2RlPT16fHxDLmtleUNvZGU9PTkpaWYocD1bXSxDLmtleUNvZGUhPTkpe2lmKChBPShBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHlbMjZdKDUyLFJwKSxmdW5jdGlvbihaKXtPWzExXSg2MSxaLCJkaXNwbGF5IikhPT0ibm9uZSImJnI0KChafHxkb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbCgiLnJjLWltYWdlc2VsZWN0LXRpbGUiKSxmdW5jdGlvbihXKXtwLnB1c2goVyl9KX0pLHAubGVuZ3RoKS12W25bMF1dLEopLlcxPj12WzFdJiZwW0ouVzFdPT1EWzEzXSg0LEssZG9jdW1lbnQpKXN3aXRjaChBPQpKLlcxLEMua2V5Q29kZSl7Y2FzZSAzNzpBLS07YnJlYWs7Y2FzZSB2WzJdOkEtPWI7YnJlYWs7Y2FzZSAzOTpBKys7YnJlYWs7Y2FzZSB6OkErPWI7YnJlYWs7ZGVmYXVsdDpRPXZvaWQgMDticmVhayBhfShBPj12WzFdJiZBPHAubGVuZ3RoP3BbQV0uZm9jdXMoKTpBPj1wLmxlbmd0aCYmT1syXSgzMyxWUyxkb2N1bWVudCkuZm9jdXMoKSxDKS5wcmV2ZW50RGVmYXVsdCgpLEMudigpfXJldHVybihCfDQwKT09QiYmKHo9WzE2LCJDYW5jZWwiLG51bGxdLEdELmNhbGwodGhpcyxuWzBdLG5bMF0sSG8pLHRoaXMuZz16WzJdLHRoaXMudj1uZXcgZVkoIiIpLHlbNDNdKDQzLHRoaXMudix0aGlzKSx0aGlzW25bMV1dPW5ldyBQbyx5WzQzXSg0MSx0aGlzW25bMV1dLHRoaXMpLHRoaXMuQz1uZXcgcW0seVs0M10oNTgsdGhpcy5DLHRoaXMpLHRoaXMuSD16WzJdLHRoaXMuWD1SWzEyXSgxLHpbblswXV0sIlN1Ym1pdCIsdGhpcyksdGhpcy5EPVJbMTJdKDQseltuWzBdXSx6WzFdLHRoaXMpKSwKUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKHA9WzE5LDE3LDExXSxCLTkpPDwxPj1CJiYoQi05fHBbMF0pPEIpYTp7aWYoIWlMKXtRPWdbcFsxXV0oMTMseixLLEopO2JyZWFrIGF9Zm9yKEE9KGI9KEM9eVMudGVzdChKKT9KLnJlcGxhY2UoeVMseVs2XS5iaW5kKG51bGwscFsyXSkpOkosdj1hdG9iKEMpLG5ldyBVaW50OEFycmF5KHYubGVuZ3RoKSksMCk7QTx2Lmxlbmd0aDtBKyspYltBXT12LmNoYXJDb2RlQXQoQSk7UT1ifXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZighKChCXjE4KT4+KChCXihCLShwPVszLDczNDgsITFdLDcpPj5wWzBdPT0yJiYodGhpcy5saXN0ZW5lcj1iLHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz16LHRoaXMudHlwZT1LLHRoaXMuY2FwdHVyZT0hIUMsdGhpcy5kQj1KLHRoaXMua2V5PSsrWWYsdGhpcy5JdT1wWzJdLHRoaXMubUE9cFsyXSksNDcpKTwyMiYmKEI+PjImMTUpPj0yJiYoUT1PYmplY3QudmFsdWVzKHdpbmRvd1tpM11bU04oKV0pLnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4udTc9PQp6fSkpLHBbMF0pKSlhOntpZihBPVsyMTA5LCIsIiwwXSxiPUooeigpLDkpLGIubGVuZ3RoPT1BWzJdKXtRPVNZKCk7YnJlYWsgYX1RPShDPSh2PVJbMzVdKDcsYi5sZW5ndGgpLGJbdl0uaGFzQXR0cmlidXRlKG1IKCkpKT9IWzhdKDM2LDg2OTUpKGJbdl0uZ2V0QXR0cmlidXRlKG1IKCkpLnNwbGl0KC9bPyNdLylbQVsyXV0pOkhbOF0oMTIsQVswXSkoSFs4XSg0NCxwWzFdKShiW3ZdLnRleHQsRVIpLDUwMCksditBWzFdK0MpfXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKCEoKEJ8KE49WzI5LDQzLDJdLDQpKSYzKSlhOmlmKEM9dGhpcyx2PVs2LDExLDEwMF0sWDIpdHJ5e2lmKChiPXVMLmdldCh0aGlzKSkmJmIudXJsKWlmKGIuWVopZm9yKEo9Z1sxMl0oNixkNCksbj1KLm5leHQoKTshbi5kb25lO249Si5uZXh0KCkpe2lmKEE9SFsxN10oMTQsdltOWzJdXSwxLG4udmFsdWUsYi51cmwpKXtBLnRoZW4oZnVuY3Rpb24oeCl7KEMuc2V0UmVxdWVzdEhlYWRlcih0MywKeCksdzQpLmNhbGwoQyx6KX0sZnVuY3Rpb24oKXt3NC5jYWxsKEMseil9KSxaPXZvaWQgMDticmVhayBhfX1lbHNlIGlmKEs9ZDQuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geVszOF0oNjgsbnVsbCx4LGIudXJsKSE9PW51bGx9KSlRPURbMjNdKDU4LDQsT1sxNV0oMTEsMTAsRFsyNl0oNDQsdlsxXSxIWzM3XSgyMSx2WzBdLEdbTlsxXV0oOTEsMSx2WzBdKSxLLnYuU0spLEsudi5vcmlnaW4pLChwPURbMzFdKDIyLG51bGwsYi51cmwsSykpPT1udWxsP3ZvaWQgMDpwLnN1YnN0cmluZygwLHZbTlsyXV0pKS55ZSgpLEsuTSksdGhpcy5zZXRSZXF1ZXN0SGVhZGVyKHQzLFEpO3c0LmNhbGwodGhpcyx6KX1jYXRjaCh4KXt3NC5jYWxsKHRoaXMseil9ZWxzZSB3NC5jYWxsKHRoaXMseik7aWYoQis0Pj4xPEImJihCKzFeOCk+PUIpZm9yKFc9ZnVuY3Rpb24oeCl7eCYmQS5hcHBlbmRDaGlsZCh0eXBlb2YgeD09PSJzdHJpbmciP3YuY3JlYXRlVGV4dE5vZGUoeCk6eCl9LFE9SjtRPGIubGVuZ3RoO1ErKylpZihwPQpiW1FdLCFZWzhdKDUsIm51bWJlciIscCl8fEhbNDRdKDcscCkmJnAubm9kZVR5cGU+QylXKHApO2Vsc2V7YTp7aWYocCYmdHlwZW9mIHAubGVuZ3RoPT0ibnVtYmVyIil7aWYoSFs0NF0oOSxwKSl7bj10eXBlb2YgcC5pdGVtPT0iZnVuY3Rpb24ifHx0eXBlb2YgcC5pdGVtPT1LO2JyZWFrIGF9aWYodHlwZW9mIHA9PT0iZnVuY3Rpb24iKXtuPXR5cGVvZiBwLml0ZW09PSJmdW5jdGlvbiI7YnJlYWsgYX19bj16fXI0KG4/bVtOWzBdXSg1LHApOnAsVyl9cmV0dXJuIEIrNT4+TlsyXTxCJiYoQi1OWzJdfE5bMl0pPj1CJiYoWj1tWzIzXShOWzBdLEosSyx6LGwpKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKFc9WzEsMywiaXNBcnJheSJdLEItV1sxXSleMjApPEImJkItNjw8V1swXT49QilpZihBcnJheVtXWzJdXShDKSlmb3Iobj16O248Qy5sZW5ndGg7bisrKVJbN10oMjIsMCwhMCxKLENbbl0sYixBLHYscCk7ZWxzZShRPU9bMjJdKDEwLEssQSxDLHZ8fApiLmhhbmRsZUV2ZW50LEoscHx8Yi5IfHxiKSkmJihiLldbUS5rZXldPVEpO3JldHVybihCPDwyJjYpPj0oKEI8PFdbMF0mNik8NCYmKEI+PjImMTUpPj04JiYoSz1uZXcgSXAoZnVuY3Rpb24oTix4KXtKPSh6PU4seCl9KSxaPW5ldyBCcSh6LEssSikpLDQpJiZCK1dbMF0+PjU8V1swXSYmKHRoaXMudj0hMCksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtyZXR1cm4oKEItKCgobj1bNTYsMSwxOF0sKEIrblsxXSY0Mik+PUImJihCK25bMV1eOSk8QikmJihwPVswLDFdLHRoaXMudj10eXBlb2Ygej09PSJudW1iZXIiP25ldyBEYXRlKHosS3x8cFswXSxKfHxwW25bMV1dLEN8fHBbMF0sYnx8cFswXSxBfHxwWzBdLHZ8fHBbMF0pOm5ldyBEYXRlKHomJnouZ2V0VGltZT96LmdldFRpbWUoKTplWzI5XSg0MikpKSxCfDcyKT09QiYmVC5jYWxsKHRoaXMseiksbilbMV0mMTN8fChLLmNsYXNzTGlzdD9LLmNsYXNzTGlzdC5hZGQoeik6ZVsxMF0oblsyXSxLLHopfHwoSj15WzIyXSgyLAoiIiwic3RyaW5nIixLKSxHWzM4XSgzNiwic3RyaW5nIixKKyhKLmxlbmd0aD4wPyIgIit6OnopLEspKSksQnxuWzBdKT09QiYmKGdbMTRdKDk2LG5bMV0sei52KSxRPWtbMTVdKDQ1LHoudikpLEIpLTI+PjQ9PTQmJihLPXogaW5zdGFuY2VvZiB6Sj96Om5ldyB6Sih6KSxRPUsudmFsdWU9PT1udWxsfHxLLnZhbHVlIGluc3RhbmNlb2YgSiQ/SzpuZXcgekooSy52YWx1ZSwhMCkpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYpe2lmKHg9WzE3LDIsMzVdLChCJjQ5KT09QilpZihKLk0hPXopUlsxNF0oMTUsSyxKKTtlbHNlIEM9WVsyNV0oNzAsSi52KSxnWzE0XSg5NixDLEoudik7aWYoKEIrNiY3KT09KChCKzUmNjEpPj1CJiZCLTQ8PDE8QiYmKHA9Yi5wRC5jb25jYXQoeVsxMl0oNDAsQyx4WzFdLEEsa1szXSgxMikpKS5yZWR1Y2UoZnVuY3Rpb24oUCxxKXtyZXR1cm4gUF5xfSksUT1HWzQ0XSgyNix6LEMsWVszNF0oNyxLLEEpLHApLHY9Z1t4WzBdXSgxMiwKeFsxXSxKLFEpLFJbeFsyXV0oMyx4WzFdLGIudix2KSksMSkpe2ZvcihaPSh2PShOPShWPShmPWZ1bmN0aW9uKFAscSl7bj0ocD0oQVtBW0FbMl09KEFbKFA9WzAsMSwyNzE3MzM4NzhdLHE9WzAsMjU2MjM4MzEwMiwxXSxQKVtxWzBdXV09MTczMjU4NDE5MyxBW1BbcVsyXV1dPTQwMjMyMzM0MTcscSlbMV0sQ109UFsyXSw0XT0zMjg1Mzc3NTIwLFBbcVswXV0pLFBbcVswXV0pfSxMPWZ1bmN0aW9uKFAscSxjLEUsUyxhLHUpe2ZvcihQPShwPChjPSh1PShxPVtdLFsxLDIsMF0pLFs1Niw4LDI1NV0pLEU9bipjW3VbMF1dLGNbdVsyXV0pP04oVyxjW3VbMl1dLXApOk4oVyw2NC0ocC1jW3VbMl1dKSksSyk7UD49Y1t1WzJdXTtQLS0pYltQXT1FJmNbdVsxXV0sRT4+Pj1jW3VbMF1dO2ZvcihTPShWKGIpLFA9dVsyXSx1WzJdKTtQPDU7UCsrKWZvcihhPTI0O2E+PXVbMl07YS09Y1t1WzBdXSlxW1MrK109QVtQXT4+YSZjW3VbMV1dO3JldHVybiBxfSxmdW5jdGlvbihQLHEsYyxFLFMsYSx1LApYLGQsdCxoLE0sVSx3KXtmb3IoWD1bNCwocT0oYz1RLHc9WzAsMiw0Mjk0OTY3Mjk1XSx3WzBdKSwxODU5Nzc1MzkzKSwzMV07cTw2NDtxKz1YW3dbMF1dKWNbcS9YW3dbMF1dXT1QW3FdPDwyNHxQW3ErMV08PEp8UFtxK3dbMV1dPDw4fFBbcStDXTtmb3IocT1KO3E8ODA7cSsrKWg9Y1txLUNdXmNbcS04XV5jW3EtMTRdXmNbcS1KXSxjW3FdPShoPDwxfGg+Pj5YW3dbMV1dKSZ3WzJdO2ZvcihxPShVPUFbKE09KEU9QVt1PUFbQ10sWFtTPUFbd1swXV0sd1swXV1dLEEpWzFdLHcpWzFdXSx3WzBdKTtxPDgwO3ErKylxPDQwP3E8MjA/KHQ9dV5NJihVXnUpLGE9MTUxODUwMDI0OSk6KHQ9TV5VXnUsYT1YWzFdKTpxPDYwPyh0PU0mVXx1JihNfFUpLGE9MjQwMDk1OTcwOCk6KGE9MzM5NTQ2OTc4Mix0PU1eVV51KSxkPSgoUzw8NXxTPj4+eikmd1syXSkrdCtFK2ErY1txXSZ3WzJdLEU9dSx1PVUsVT0oTTw8MzB8TT4+PndbMV0pJndbMl0sTT1TLFM9ZDtBW1hbd1tBW0NdPShBW3dbQVsxXT0KKEFbd1swXV09QVt3WzBdXStTJndbMl0sQVsxXStNJndbMl0pLDFdXT1BW3dbMV1dK1Umd1syXSxBW0NdK3Umd1syXSksMF1dXT1BW1hbd1swXV1dK0Umd1syXX0pLGZ1bmN0aW9uKFAscSxjLEUsUyxhLHUsWCl7aWYoKFg9WyhhPVswLDY0XSwxKSwicHVzaCIsImNoYXJDb2RlQXQiXSx0eXBlb2YgUCk9PT0ic3RyaW5nIil7Zm9yKGM9KHU9KEU9KFA9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KFApKSxQLmxlbmd0aCksW10pLGFbMF0pO2M8RTsrK2MpdVtYWzFdXShQW1hbMl1dKGMpKTtQPXV9aWYoKFM9YVtxfHwocT1QLmxlbmd0aCksMF0scCk9PWFbMF0pZm9yKDtTK2FbWFswXV08cTspVihQLnNsaWNlKFMsUythW1hbMF1dKSksbis9YVtYWzBdXSxTKz1hW1hbMF1dO2Zvcig7UzxxOylpZihiW3ArK109UFtTKytdLG4rKyxwPT1hW1hbMF1dKWZvcihwPWFbMF0sVihiKTtTK2FbWFswXV08cTspVihQLnNsaWNlKFMsUythW1hbMF1dKSksbis9YVtYWzBdXSxTKz1hW1hbMF1dfSksCkNoKCkpLEE9W10sYj1bXSxRPVtdLFc9WzEyOF0sMSk7Wjw2NDsrK1opV1taXT0wO3I9KGYoKSx7cmVzZXQ6Zix1cGRhdGU6TixkaWdlc3Q6TCxaMzpmdW5jdGlvbihQLHEsYyxFLFMsYSl7Zm9yKGE9KFM9TCgpLGMpLEU9cTthPFMubGVuZ3RoO2ErKylFKz12W1BdKGJOKFNbYV0vSikpK3ZbUF0oU1thXSVKKTtyZXR1cm4gRX19KX1yZXR1cm4gcn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihRPVsxNiwxMiw2XSwhKEI+PjImMykpYTp7aWYodHlwZW9mIHohPT0oSj1bNCwzMiwhMV0sIm9iamVjdCIpKXtuPXo7YnJlYWsgYX1pZihBcnJheS5pc0FycmF5KHopKXt6Lmxlbmd0aD09PShwPXpbQSRdfDAsMCkmJnAmMT92PXZvaWQgMDooQT16LHAmMnx8KCFLfHw0MDk2JnB8fFFbMF0mcD9BPU9bMThdKFFbMV0sMzQscCxBLEpbMl0sSyYmIShwJlFbMF0pKTooT1sxNF0oNTYsMzQsQSkscCZKWzBdJiZUSihBKSkpLHY9QSksbj12O2JyZWFrIGF9aWYoeiE9bnVsbCYmeltqVF09PT0Kbmgpe249KEM9KGI9ei5hVCxiW0EkXXwwKSx5WzJdKDM4LHosQyk/ejplWzMwXSgyMCxKWzFdLGIsQyx6KT9nWzQ0XSgzNSxiLHopOk9bMThdKDIwLDM0LEMsYikpO2JyZWFrIGF9aWYoeiBpbnN0YW5jZW9mIFpsKXtuPXo7YnJlYWsgYX19cmV0dXJuKEIrNV41KT49QiYmKEItMXwxNyk8QiYmKHRoaXMuZz16LmksSj1uZXcgTzgsSz1rW1FbMl1dKDI3LDEsSix6Lk0pLHRoaXMuaj1rW1FbMl1dKDI3LDIsSyx6LnYpLHRoaXMuSz16LlgpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChCfChCPDwoKEIrNl4oKEIrMl4oKFc9WyJ2Iiw0OCwyN10sKEIrMyYxNSk+PTEwJiYoQj4+MSY4KTw0KSYmKFo9R1sxMF0oODQseGoseik/ZVszNF0oOTAsSFsyMF0oMTEsIiIsei5WZSgpKSk6U3RyaW5nKHopLnJlcGxhY2UoRGwsWVs0N10uYmluZChudWxsLFdbMl0pKSksVylbMl0pPj1CJiYoQi0zfDM1KTxCJiYodGhpc1tXWzBdXT1bXSksMTkpKTxCJiYoQi0xXjI2KT49CkImJih0aGlzW1dbMF1dPUssdGhpcy5NPW5ldyBvQih6LEopKSwyKSYxNXx8KFo9Sz09bnVsbD9LOmVbNV0oV1sxXSwiISIseiw1MTIsNjQsSykpLDQwKSk9PUIpZm9yKG49WzAsbnVsbCwyXSxDPWdbMTBdKDcsImZvbnRTaXplIixKKSx2PShBPUMubWF0Y2goTGgpKSYmQVtuWzBdXXx8blsxXSxDJiYicHgiPT12P1E9cGFyc2VJbnQoQyx6KToocD1SQihyRSx7c3R5bGU6InZpc2liaWxpdHk6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xpbmUtaGVpZ2h0OjA7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjowO2hlaWdodDoxZW07In0pLEouYXBwZW5kQ2hpbGQocCksQz1wLm9mZnNldEhlaWdodCxlWzQ2XShXWzJdLHApLFE9QyksWVszNV0oMTYsSiwiZm9udFNpemUiLFErInB4IiksYj1SWzM2XShXWzFdLEopLmhlaWdodDtRPjEyJiYhKEs8PW5bMF0mJmI8PW5bMl0qUSkmJiEoYjw9Syk7KVEtPW5bMl0sWVszNV0oV1sxXSxKLCJmb250U2l6ZSIsUSsicHgiKSxiPVJbMzZdKFdbMV0sSikuaGVpZ2h0OwpyZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEJ8OCk9PSgoQT1bNDEsImlzRW5hYmxlZCIsN10sQi0zPj4zKT09MiYmeltBWzFdXSgpJiZnWzJdKDMwLEssInJlY2FwdGNoYS1jaGVja2JveC1jbGVhck91dGxpbmUiLHopLEI8PDI8MTcmJihCfEFbMl0pPj0wJiYoYj1EW0FbMF1dKDgseix2b2lkIDAsQyx2b2lkIDAsdm9pZCAwLEssSikpLEIpJiZWJC5jYWxsKHRoaXMpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoISgoQnwoTj1bMjUsMTUsImZyb21DaGFyQ29kZSJdLDYpKT4+MykpYTp7aWYoISh2PURbMTFdKDEwKVtDPUM9PT12b2lkIDA/ITE6QyxHSigpXSx2KSl7Si52PUhxLFc9SzticmVhayBhfWlmKCEoQT12W2VUKCldLEEpKXtKLnY9KFc9SyxxVSk7YnJlYWsgYX1pZighKFo9QVtpTigpXSxaKSl7Vz0oSi52PXkkLEspO2JyZWFrIGF9Zm9yKHA9KGI9a1tKLkY9Qz81OjQsNDVdKDgsImR3ZHpSbGwyZUdwZlVYVlEiKSwKeiksUT0wO1E8Yi5sZW5ndGg7USsrKXArPVN0cmluZ1tOWzJdXShiW1FdXiJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiLmNoYXJDb2RlQXQoUSUyNCkpO1c9KG49TWF0aC50cnVuYyhZaigpKSxtWzJdKDMsWi5jYWxsKEEse2Nsb3VkUHJvamVjdE51bWJlcjpwfSkpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIEouQT1NYXRoLnRydW5jKFlqKCkpLW4seH0sZnVuY3Rpb24oKXtyZXR1cm4gSi52PWNxLEt9KSl9cmV0dXJuKEJ8KChCfCgoKEJ8MikmKChCLTEmTlsxXSk9PTMmJlQuY2FsbCh0aGlzLHosMCxTVC5SVCksTilbMV0pPj03JiZCPj4xPDI0JiYoVz1rWzM0XSgyMywxNixtMywzLEsseikpLDI0KSk9PUImJih0aGlzLnY9eiksNzIpKT09QiYmKFc9UlsxM10oNDQsSFtOWzBdXSg0MixPWzldKDIyLDIyKSx6KSxbZ1sxNl0oNzgsSyksZ1sxNl0oMTQsSildKSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKChCLTVeKE49WzE2LDEsMl0sMjMpKTxCJiYKKEIrM14zMCk+PUIpe2lmKChwPShXPShRPShuPVsxMCwwLCJFZGdlIl0se3RpdGxlOmxOKCksdGFiaW5kZXg6Six3aWR0aDpTdHJpbmcodi53aWR0aCksaGVpZ2h0OlN0cmluZyh2LmhlaWdodCkscm9sZTpFOCgpLG5hbWU6aCQrQy5qfSksR1sxMF0oNSwiU2FmYXJpIikmJmtbTlswXV0oMTEsblswXSwiMTcuNSIsZVsxM10oNTcsbltOWzJdXSx6LE5bMl0sIk1TSUUiKSk+PW5bTlsxXV0pLHlbOF0oMzgsImlQb2QiKSYma1tOWzBdXSg3MyxuWzBdLCIxNy41IixtWzRdKDM2LCJrYWlvcyIsIkNyT1MiKSk+PW5bTlsxXV0pLFcpfHxwKVFbZEUoKV09a2ooKTsoKFo9KEMuQT1IWzIwXShOWzFdLG5bTlsxXV0sUSxlWzQ2XSgzMyxBKSksWWopKCksQykuQS5vbmxvYWQ9ZnVuY3Rpb24oZixMKXtmPWdbTD1bMCw2NiwxXSwzMl0oODUsTFswXSxtWzM1XShMWzFdLExbMF0seVs5XSg1LExbMl0sSyksWiksWWooKS1aKSwoMCx0JC5rZikoZil9LGIpLmFwcGVuZENoaWxkKEMuQSl9aWYoKEImNjEpPT0KQil7Zm9yKGI9KCh0aGlzLk09KCh0aGlzLmJsb2NrU2l6ZT0oKHRoaXMudj16LHRoaXMpLmJsb2NrU2l6ZT0tMSxDPUssSnx8ei5ibG9ja1NpemV8fE5bMF0pLHRoaXMpLlg9QXJyYXkodGhpcy5ibG9ja1NpemUpLEFycmF5KHRoaXMuYmxvY2tTaXplKSksQy5sZW5ndGg+dGhpcy5ibG9ja1NpemUpJiYodGhpcy52LnVwZGF0ZShDKSxDPXRoaXMudi5kaWdlc3QoKSx0aGlzLnYucmVzZXQoKSksMCk7Yjx0aGlzLmJsb2NrU2l6ZTtiKyspQT1iPEMubGVuZ3RoP0NbYl06MCx0aGlzLlhbYl09QV45Mix0aGlzLk1bYl09QV41NDt0aGlzLnYudXBkYXRlKHRoaXMuTSl9aWYoKEJ8NjQpPT1CKWE6e2lmKEo9PT0tMSl7eD16O2JyZWFrIGF9aWYoISgoUT0oQT1KKyhLPzA6LTEpLEMubGVuZ3RoLU5bMV0pLFEpPE5bMV0rKEs/MDotMSkpKXtpZihBPj1RKWlmKHA9Q1tRXSxwIT16JiZ0eXBlb2YgcD09PSJvYmplY3QiJiZwLmNvbnN0cnVjdG9yPT09T2JqZWN0KXY9ITAsWj1wW0pdO2Vsc2UgaWYoQT09PQpRKVo9cDtlbHNle3g9dm9pZCAwO2JyZWFrIGF9ZWxzZSBaPUNbQV07aWYoYiYmWiE9eil7aWYobj1iKFopLG49PXope3g9bjticmVhayBhfWlmKCFVOChuLFopKXsoeD1uLHYpP3BbSl09bjpDW0FdPW47YnJlYWsgYX19eD1aO2JyZWFrIGF9fWlmKChCfDcpPj40PE5bMV0mJihCPDxOWzJdJjE1KT49NSl7Sj1bMSwwLDJdO3RyeXtzd2l0Y2goSy5NKXtjYXNlIEpbTlsxXV06Sy5NIT1KW05bMV1dP1JbMTRdKDE0LEpbMF0sSyk6UlsxN10oNyxLLnYpO2JyZWFrO2Nhc2UgejpnWzE0XSg2NCw4LEsudik7YnJlYWs7Y2FzZSBKW05bMl1dOlJbOV0oTlswXSxKW05bMl1dLEpbMF0sSyk7YnJlYWs7Y2FzZSA1OmdbMTRdKDYzLDQsSy52KTticmVhaztjYXNlIDM6Qz0oSFtOWzFdXSg5LDEwMCksSy5YKTt0cnl7ZG97aWYoIURbNDddKDgsSlswXSxLKSl0aHJvdyBFcnJvcigpO2lmKEsuTT09NCl7aWYoSy5YIT1DKXRocm93IEVycm9yKCk7YnJlYWt9UlsxNF0oNyxKWzBdLEspfXdoaWxlKDEpfWNhdGNoKGYpe2lmKGYgaW5zdGFuY2VvZgpSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBmO31maW5hbGx5e01VPkpbTlsxXV0mJk1VLS19YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigpO319Y2F0Y2goZil7aWYoZiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGY7fX1yZXR1cm4geH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQjw8MSYoKEImMzkpPT0odj1bMCwibCIsIksiXSwoQnwyNCk9PUImJih0aGlzLlg9Six0aGlzLkE9eixiPVtudWxsLDEsITFdLHRoaXMuTD1LfHxiWzFdLHRoaXMuaT1DLHRoaXMuRmc9bmV3IHdFKHRoaXMpLHRoaXMuST1iWzJdLHRoaXNbdlsxXV09Ylt2WzBdXSx0aGlzLkY9Ylt2WzBdXSx0aGlzLmo9YlsyXSx0aGlzLlU9W10sdGhpcy5HPS0xLHRoaXMuUz12WzBdLHRoaXMubz1iW3ZbMF1dLHRoaXMubnE9YlsyXSx0aGlzLkg9Ylt2WzBdXSx0aGlzLm09Ylt2WzBdXSx0aGlzLkI9Ylt2WzBdXSx0aGlzLlA9Ylt2WzBdXSwKdGhpcy5XPXZbMF0sdGhpcy5YZz1iWzJdLHRoaXMuRD1iW3ZbMF1dLHRoaXMuTz1iW3ZbMF1dLHRoaXMuQz1iW3ZbMF1dLHRoaXMuUj1iWzJdLHRoaXMuZz1iW3ZbMF1dLHRoaXMudHU9NDVFMyx0aGlzLnY9Ylt2WzBdXSx0aGlzW3ZbMl1dPWJbMl0sdGhpcy5NPW5ldyBJQiksQikmJihBPVREKCc8ZGl2PlRoaXMgc2l0ZSBpcyBleGNlZWRpbmcgPGEgaHJlZj0iaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3JlY2FwdGNoYS9kb2NzL2JpbGxpbmctaW5mb3JtYXRpb24iIHRhcmdldD0iX2JsYW5rIj5yZUNBUFRDSEEgRW50ZXJwcmlzZSBmcmVlIHF1b3RhPC9hPi48L2Rpdj4nKSksMTIpKTwyJiYoQl40Nyk+PjQ+PXZbMF0pc3dpdGNoKHo9enx8bmV3IEZ0LHRoaXNbdlsyXV09ei5STix6LlZYJiYodGhpc1t2WzFdXT16LlZYKSx6LnYhPW51bGwmJih0aGlzLlU9ISF6LnYpLHRoaXMudi5YKXtjYXNlIEJmOmtbNDVdKDY0LDIsdGhpcyxzTyxuZXcgemwoei5NKSk7YnJlYWs7Y2FzZSBLUTprWzQ1XSg2NSwKMix0aGlzLENRKTticmVhaztkZWZhdWx0OkRbNDNdKDcxLHRoaXMsITApfXJldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoQj4+MTwoKHA9WyJyZW1vdmVMaXN0ZW5lciIsMCwiRUwiXSwoQl41MCkmMTV8fHouWC5wdXNoKHouWjIsei5sUCx6W3BbMl1dLFlbMl0oODEsZnVuY3Rpb24oUSxuKXtyZXR1cm4gUV5ufSx6KSx6LmFiLHoudmQsei5KTCksKEJeNjMpJjkpfHwoSj16LmRvY3VtZW50LEs9Si5jb21wYXRNb2RlPT0iQ1NTMUNvbXBhdCI/Si5kb2N1bWVudEVsZW1lbnQ6Si5ib2R5LHY9bmV3IGJtKEsuY2xpZW50V2lkdGgsSy5jbGllbnRIZWlnaHQpKSwxMSkmJigoQl40NykmMTEpPj0xMCYmKEE9WzAsITAsbnVsbF0sdHlwZW9mIHohPT0ibnVtYmVyIiYmeiYmIXoubUEpKWlmKEo9ei5zcmMsZ1twWzFdXSg5LEopKWVbM10oMzQsQVtwWzFdXSxKLk8seik7ZWxzZSBpZihiPXoudHlwZSxLPXoucHJveHksSi5yZW1vdmVFdmVudExpc3RlbmVyP0oucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLApLLHouY2FwdHVyZSk6Si5kZXRhY2hFdmVudD9KLmRldGFjaEV2ZW50KE9bMzddKDE3LGIpLEspOkouYWRkTGlzdGVuZXImJkpbcFswXV0mJkpbcFswXV0oSyksQVEtLSxDPWVbMThdKDcwLEopKWVbM10oMzIsQVtwWzFdXSxDLHopLEMuTT09QVtwWzFdXSYmKEMuc3JjPUFbMl0sSlt2Zl09QVsyXSk7ZWxzZSBPWzEwXSgyLEFbMV0seik7cmV0dXJuKEI+PjImNyk+PTYmJihCLTYmOCk8NiYmKHY9UlsxM10oMjEsSFsyNV0oNDEsT1s5XSgyOCwxMSkseiksW2dbMTZdKDg2LEspLGdbMTZdKDMwLEopXSkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpe2lmKGM9WzE2LDIsMTNdLChCJjEwNik9PUIpT1s0M10oMyxDLEoseixLLHtkZXN0aW5hdGlvbjp3aW5kb3csb0E6QSxvcmlnaW46dixFbDpUbCxvbk1lc3NhZ2U6ZnVuY3Rpb24oRSl7YihqWChFLmRhdGEpKX19KTtpZigoKEImMTkpPT1CJiYocFEuY2FsbCh0aGlzKSx0aGlzLk09eiwKeVs0M10oNDAsdGhpcy5NLHRoaXMpLHRoaXMuaT1LKSxCfDU2KT09Qil7aWYoeD0ocD0oVj0oTj0oQT0oTD15W2NbMV1dKDQsKFA9KG49WyhaPXYuYVQsMCksNCwyXSxaW0EkXSl8eix2KSxQKT8xOkosISFBfHxMPT09MyksTD09PTImJllbMThdKGNbMF0sblswXSx2KSYmKFo9di5hVCxQPVpbQSRdfHopLG1bMzRdKDUsbnVsbCxaLEssQykpLE49PT1RUD83Ok5bQSRdfHopLGdbMjRdKDMsbltjWzFdXSxQLFYpKSxuKVsxXSZwPyExOiEwLHgpe2ZvcihmPShuWzFdJnAmJihOPWcwW2NbMV1dKDgsTiksVj16LHA9SFs0M10oMzQsbltjWzFdXSxwLFApLFA9WVsyNV0oMzQsTixDLFAsSyxaKSksVz16KTtmPE4ubGVuZ3RoO2YrKylyPWIoTltmXSksciE9bnVsbCYmKE5bVysrXT1yKTtwPShXPChRPShwfG5bMV0pJi01MTMsZikmJihOLmxlbmd0aD1XKSxRJj0tMTAyNSkscCY9LTQwOTd9cT1OPShwIT09ViYmKGtbMzhdKDkzLE4scCksbltjWzFdXSZwJiZUSihOKSksRClbMTBdKGNbMF0sbltjWzFdXSwKTCx4LFoscCxBLE4sSyxDLFApfWlmKChCPDwxJjE1KT49MTQmJihCKzQmMjgpPDI3KWE6e2ZvcihLPShDPShiPShBPXoudix6Lk0pLDApLEErMTApO0E8SzspaWYoSj1iW0ErK10sQ3w9SiwoSiYxMjgpPT09MCl7cT0hIShrWzQzXSg3LHosQSksQyYxMjcpO2JyZWFrIGF9dGhyb3cgRXJyb3IoKTt9cmV0dXJuKEIrNSZjWzJdKT09MSYmKG5RLmNhbGwodGhpcyxLKSx0aGlzLlg9enx8IiIpLHF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuKCgoKEIrN14xMyk+PShuPVswLDMsMV0sQikmJihCKzJeMzEpPEImJihZWzM3XSg5LEssSiksSz1aZihLKSwhSiYmIWdkfHxOdShLKT9DPVN0cmluZyhLKTooa1sxMl0oMTMseixLKSxDPVJbMzZdKG5bMV0sMzIsT08seE8pKSxRPUMpLEI+Pm5bMl0pJjExfHwodj1uZXcgRGYoYixBKSxRPXtjaGFsbGVuZ2VBY2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIEdbMTFdKDQxLEdbMjddKDEsSyxDLEosNyx2KSl9LHZlcmlmeUFjY291bnQ6ZnVuY3Rpb24oWil7cmV0dXJuIEdbMTFdKDQwLApEWzMxXSgxMCw0LHosSixLLHYsWikpfSxnZXRDaGFsbGVuZ2VNZXRhZGF0YTpmdW5jdGlvbigpe3JldHVybiBPWzQwXSg2LHYuaSl9LGlzVmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi53SCgpfX0pLEIpfDcpPj5uWzFdfHwoYj1bMjA0NywwLDJdLHA9SFsyOF0oOCxuWzJdLEspLEo9SFsyOF0oblsxXSxuWzJdLEspLEM9KEo+PjMxKSpiWzJdK25bMl0sQT1KPj4+MjAmYltuWzBdXSx2PTQyOTQ5NjcyOTYqKEomMTA0ODU3NSkrcCxRPUE9PWJbblswXV0/dj9OYU46QypJbmZpbml0eTpBPT1iW25bMl1dP0MqZlEoYlsyXSwtMTA3NCkqdjpDKmZRKGJbMl0sQS16KSoodis0NTAzNTk5NjI3MzcwNDk2KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKChCXjM3KSYoKCgoKEJeMjQpJih2PVsiekoiLCJVIiw3XSwxNSkpPT0yJiYoYj1iPT09dm9pZCAwP3t9OmIsQT16LnJlcXVlc3QoTEsoKSxLLEMsSixiKSksQileMjkpJnZbMl18fChMRC5jYWxsKHRoaXMsMzUyLDE5KSwKdGhpcy5FMz10aGlzLlA9dGhpcy5vPXRoaXMuSz10aGlzLmRlPXRoaXMuQjE9dGhpcy5EPXRoaXMubnE9dGhpcy5Naj10aGlzLmtKPXRoaXMuQT10aGlzLlcxPXRoaXMuQUw9dGhpcy5Jdz10aGlzLndiPXRoaXMucWQ9dGhpcy5NeT10aGlzLmEwPXRoaXMubVg9dGhpcy55QT10aGlzLkg9dGhpcy51WT10aGlzLk09dGhpcy5pWT0tMSx0aGlzLnZ2PXRoaXMuRE09dGhpcy5tPXRoaXMuWD10aGlzLkpNPXRoaXMuZFY9dGhpcy5CaD10aGlzLm9UPXRoaXMubnU9dGhpcy5pPXRoaXMuQj10aGlzLkk9dGhpcy5qPXRoaXMuSk89dGhpcy5DPXRoaXMuUz10aGlzW3ZbMV1dPS0xLHRoaXMuVz10aGlzLlhnPXRoaXMuWEM9dGhpcy5HPXRoaXNbdlswXV09LTEsdGhpcy5pNT16LHRoaXMudmw9dGhpcy5MPXRoaXMubFk9dGhpcy5nPXRoaXMuTmQ9dGhpcy5LcT10aGlzLmdCPXRoaXMuUWU9dGhpcy5mcT0tMSx0aGlzLkFlPWdbdlsyXV0oMzYpLHRoaXMuUjE9Z1t2WzJdXSgzOSksdGhpcy5rdz1nW3ZbMl1dKHZbMl0pLAp0aGlzLnBxPWdbdlsyXV0oNSksdGhpcy5uaT1nW3ZbMl1dKDM4KSksMTIpKTwxJiYoQjw8MiY1KT49MiYmKEE9KEM9SihLKCksMTYpKT9DLmxlbmd0aCsiLCIrSihDLDIyKS5sZW5ndGg6b2YoKSksQj4+MSYxMSl8fChBPVJbMTNdKDE0LEhbMjVdKDQzLE9bOV0oMTYsNSkseiksW09bMjVdKDMsSiksT1syNV0oNSxLKV0pKSxBfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoQnwoKCgoQz1bMywwLDFdLEIpfENbMl0pJkNbMF0pPj1DWzFdJiZCLUNbMF08OSYmKEs9bmV3IFdlYWtNYXAsSj1mdW5jdGlvbihiKXsoYj1LLmdldCh0aGlzKXx8QXJyYXkoeikuZmlsbCh2b2lkIDApLEsuc2V0KHRoaXMsdGhpcy54SiksdGhpcykueEo9Yn0pLEMpWzJdKSZDWzBdKT09Q1syXSYmKHRoaXMuTT1LLHRoaXMudj16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWKXtpZigoVj1bIkNnIiw1NiwzXSwoQnxWWzFdKT09QikmJihuPXRoaXNbTFFdLE49W251bGwsCjEsMTI4XSxXPXRoaXNbUmZdLEE9ZnVuY3Rpb24oUCxxLGMsRSxTLGEsdSl7aWYoKHU9WzU1LDE2LG51bGxdLGMpLmxlbmd0aCE9PTApaWYoWltxXSlmb3IoUz1nWzEyXSgxLGMpLEU9Uy5uZXh0KCk7IUUuZG9uZTtFPVMubmV4dCgpKXthPWdbMTJdKHVbMF0sRS52YWx1ZSk7dHJ5e1E9ITAsVyhmLGEpfWZpbmFsbHl7RFsyOF0odVsxXSwxMDAsYSl9fWVsc2UgQz09dVsyXXx8Qyh6LHEsYyl9LGY9Z1syMl0oMTcsTlsxXSx2b2lkIDAsbi5yZSksYj15WzIyXSgyNSx6KSkmJihaPW4uZlgsUT0hMSxaKSl7aWYoSz09TlswXSlEWzM3XSgxMixBLGIpO2Vsc2UgYiE9TlswXSYmKHg9YltLXSkmJkEoYixLLHgpO2lmKFEpe2lmKChMPXpbQSRdfChwPWZ1bmN0aW9uKFAscSxjKXtpZihSWzE0XSg3NCwoYz1bbnVsbCwyNSwxXSxjWzBdKSx2LFAseikhPWNbMF0pc3dpdGNoKEo9PWNbMF0/dm9pZCAwOkouUEQpe2Nhc2UgY1syXTpyZXR1cm47ZGVmYXVsdDp0aHJvdyBFcnJvcigpO31kZWxldGUgKHEhPQpjWzBdJiYoTD1ZW2NbMV1dKDE2LHEsUCxMLHYseikpLGIpW1BdfSwwKSxMKSYyJiZMJjIwNDgmJihKPT1OWzBdfHwhSi5zQikpdGhyb3cgRXJyb3IoKTt2PUhbMzVdKDE0LE5bMl0sTCksSz09TlswXT9EWzJdKDgsTlsxXSxOWzJdLGYsZnVuY3Rpb24oUCxxKXtwKFAscSl9LGZbQSRdfDApOnAoSyxSWzE0XSg3NSxOWzBdLHYsSyxmKSl9fWlmKCEoQjw8MSYxMCkmJih2PVswLDFdLHRoaXMudj1bXSx6KSlhOntpZih6IGluc3RhbmNlb2YgcmQpe2lmKEM9ei5EUygpLGI9ei5GcCgpLHRoaXMudi5sZW5ndGg8PXZbMF0pe2ZvcihwPXRoaXMudixBPXZbMF07QTxDLmxlbmd0aDtBKyspcC5wdXNoKG5ldyBWUChDW0FdLGJbQV0pKTticmVhayBhfX1lbHNle2ZvcihLIGluIEM9WVsxOV0oMjIsKFE9W10sdlswXSksKG49dlswXSx6KSkseilRW24rK109eltLXTtiPVF9Zm9yKEo9dlswXTtKPEMubGVuZ3RoO0orKyltWzM4XSgzMyx2WzBdLHZbMV0sdGhpcyxiW0pdLENbSl0pfWlmKEItOT4+VlsyXT09ClZbMl0pe2ZvcihBPUM9MDtBPEo7QSsrKWI9dGhpc1tWWzBdXShLK0EpK3pbVlswXV0oQSkrQyxDPWI+Pj4xNSx0aGlzLkdTKEsrQSxiJjMyNzY3KTtyPUN9cmV0dXJuKEImMjkpPT1CJiZLLm8mJihHbC5jbGVhclRpbWVvdXQoSy5vKSxLLm89eikscn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKEItMzw8KEo9WzEyLCJYIiwiTSJdLDIpPj1CJiZCLTU8PDE8QiYmKEs9Sz09PXZvaWQgMD8hMDpLLHpbSlsxXV0mJks/KHpbSlsxXV0uY2xhc3NMaXN0LmFkZChIZikseltKWzFdXS5jbGFzc0xpc3QucmVtb3ZlKGVYKSk6eltKWzFdXSYmIUsmJih6W0pbMV1dLmNsYXNzTGlzdC5hZGQoZVgpLHpbSlsxXV0uY2xhc3NMaXN0LnJlbW92ZShIZikpKSxCKSszXkpbMF0pPj1CJiYoQisyXjI5KTxCJiYoSz10aGlzW0pbMl1dLEM9Sz09PXp8fEFycmF5LmlzQXJyYXkoSykmJksuaW5jbHVkZXMoeikpLEN9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKCgoKChDPShCPDwxJjEzfHwodGhpcy52PQpuZXcgTWFwLHRoaXMuTT16fHxudWxsKSxbNCwxNywzXSksKEImNzkpPT1CKSYmKEo9SyV6KSxCKS0yXjYpPj1CJiYoQi1DWzJdfDc0KTxCJiZULmNhbGwodGhpcyx6KSxCKStDWzJdPj5DWzBdPj0wJiZCLTY8Q1sxXSYmKHo9RXJyb3IuY2FsbCh0aGlzLFBmKCkpLHRoaXMubWVzc2FnZT16Lm1lc3NhZ2UsInN0YWNrImluIHomJih0aGlzLnN0YWNrPXouc3RhY2spLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlKSx0aGlzLm5hbWU9JE8oKSksQnw1Nik9PUImJkxELmNhbGwodGhpcywyMDMxLDIsWzJdKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUpe3JldHVybihCJjUwKT09KChCLTR8NzcpPCgoKEImKCh1PVs4LDQwLDI1XSxCLTYpPDE0JiYoQjw8MSYxNSk+PTQmJihXPVsnIiBjbGFzcz0iJywiICIsJyI+J10sdj1IWzQ1XSh1WzFdLHF1KCksei5zaXplLGltKCkseVAoKSksCllPKCksaW0oKSxjZigpLEVPKCksaW0oKSxjZigpLFhyKCksaW0oKSx1bSgpLGFmKCksaW0oKSx1bSgpLGhRKCksaW0oKSx1bSgpLGRkKCksaW0oKSx1bSgpLGtPKCksaW0oKSx0USgpLFVPKCksaW0oKSxNdSgpLHY9PT0xPyhaPUhbNDVdKDEyLFlPKCksei5zWSxpbSgpLGNmKCkpLEVPKCksaW0oKSxjZigpLFA9SFs0NV0oNDQsWHIoKSx6Lk10LGltKCksdW0oKSksZj1IWzQ1XSg3MixhZigpLHouRVksaW0oKSx1bSgpKSxTPUhbNDVdKDQ0LGhRKCksei5LRCxpbSgpLHVtKCkpLEU9SFs0NV0oNzYsZGQoKSx6LlpuLGltKCksdW0oKSksTj1IWzQ1XSgxMixrTygpLHouZXJyb3JNZXNzYWdlLGltKCksdFEoKSkscT1IWzQ1XSh1WzFdLFVPKCksei5lcnJvckNvZGUsaW0oKSxNdSgpKSxMPU9bdVsxXV0oOTgsZ1t1WzJdXSgzLGdbdVsyXV0oMzUsZ1t1WzJdXSgzNixnW3VbMl1dKDY3LGdbdVsyXV0oNjcsT1t1WzFdXSg3OCxnW3VbMl1dKDUxLGdbdVsyXV0oNCxPW3VbMV1dKDc4LGFaKCksJzxkaXYgaWQ9IicrClJbMTFdKDcsInJjLWFuY2hvci1jb250YWluZXIiKStXWzBdK1JbMTFdKDcxLCJyYy1hbmNob3IiKStXWzFdK1JbMTFdKDksInJjLWFuY2hvci1ub3JtYWwiKStXWzFdK1JbMTFdKDczLFopK1dbMl0pLFlbMjJdKDEwLHouaHUpKSxEWzMzXSg2NSkpLCc8ZGl2IGNsYXNzPSInK1JbMTFdKDcsInJjLWFuY2hvci1jb250ZW50IikrV1syXSksTnx8KHEhPW51bGw/cTpudWxsKT4wP09bMjZdKDE2LDYsNyx6KTpPWzI3XSgxMSxXWzFdKSksUD9PW3VbMV1dKDk4LGdbdVsyXV0oMzYsT1t1WzFdXSg5OSxhWigpLHdkKCkpLGVbNDZdKDMxKSksSWYoKSk6IiIpLGY/T1t1WzFdXSg3OSxnW3VbMl1dKDUxLE9bdVsxXV0oOTgsYVooKSx3ZCgpKSxSWzE1XSgyKSksSWYoKSk6IiIpLFM/T1t1WzFdXSg3OCxnW3VbMl1dKDUxLE9bdVsxXV0oNzgsYVooKSxGcigpKSxZWzldKDEpKSxJZigpKToiIiksRT9PW3VbMV1dKDk3LGdbdVsyXV0oNCxPW3VbMV1dKDk5LGFaKCksQkYoKSksR1szN10oOSkpLElmKCkpOgoiIiksJzwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJjLWFuY2hvci1ub3JtYWwtZm9vdGVyIikrV1syXSksQT16Lk10LHI9ei5FWSxuPUhbNDVdKHVbMF0sWHIoKSxBLGltKCksdW0oKSksUT1IWzQ1XSg3MixhZigpLHIsaW0oKSx1bSgpKSxjPVREKCc8ZGl2IGNsYXNzPSInK1JbMTFdKDczLCJyYy1hbmNob3ItbG9nby1wb3J0cmFpdCIpKyhufHxRP1dbMV0rUlsxMV0oMzksInJjLWFuY2hvci1vdmVyLXF1b3RhLWxvZ28iKToiIikrJyIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9InByZXNlbnRhdGlvbiI+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYW5jaG9yLWxvZ28taW1nIikrV1sxXStSWzExXSg3LCJyYy1hbmNob3ItbG9nby1pbWctcG9ydHJhaXQiKSsnIj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDcsInJjLWFuY2hvci1sb2dvLXRleHQiKSsnIj5yZUNBUFRDSEE8L2Rpdj48L2Rpdj4nKSxiPU9bdVsxXV0oNzksZ1t1WzJdXSg1MSxnW3VbMl1dKDUxLEwsYyksCmdbMTZdKDQ0LFdbMV0seikpLHMxKCkpKTp2PT09Mj8oSz1IWzQ1XSg0NCxZTygpLHouc1ksaW0oKSxjZigpKSxFTygpLGltKCksY2YoKSxwPUhbNDVdKHVbMF0sWHIoKSx6Lk10LGltKCksdW0oKSksVj1IWzQ1XSg3MixhZigpLHouRVksaW0oKSx1bSgpKSxDPUhbNDVdKDQ0LGhRKCksei5LRCxpbSgpLHVtKCkpLEo9SFs0NV0oNDQsZGQoKSx6LlpuLGltKCksdW0oKSkseD1IWzQ1XSh1WzBdLGtPKCksei5lcnJvck1lc3NhZ2UsaW0oKSx0USgpKSxVTygpLGltKCksTXUoKSxiPU9bdVsxXV0oNzgsZ1t1WzJdXSg2NyxnW3VbMl1dKDUyLE9bdVsxXV0oOTgsZ1t1WzJdXSg2NyxnW3VbMl1dKDUyLGdbdVsyXV0oMzYsZ1t1WzJdXSg1MSxnW3VbMl1dKDMsT1t1WzFdXSg5OCxnW3VbMl1dKDY4LGdbdVsyXV0oNTIsT1t1WzFdXSg3OCxhWigpLCc8ZGl2IGlkPSInK1JbMTFdKDksInJjLWFuY2hvci1jb250YWluZXIiKStXWzBdK1JbMTFdKDM5LCJyYy1hbmNob3IiKStXWzFdK1JbMTFdKDczLAoicmMtYW5jaG9yLWNvbXBhY3QiKStXWzFdK1JbMTFdKDcsSykrV1syXSksWVsyMl0oOSx6Lmh1KSksRFszM10oNjcpKSwnPGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy1hbmNob3ItY29udGVudCIpK1dbMl0pLHg/T1syNl0oMTcsNiw3LHopOk9bMjddKDEwLFdbMV0pKSxwP09bdVsxXV0oNzksZ1t1WzJdXSg1MSxPW3VbMV1dKDk4LGFaKCksd2QoKSksZVs0Nl0oNDcpKSxJZigpKToiIiksVj9PW3VbMV1dKDc5LGdbdVsyXV0oNjcsT1t1WzFdXSg5OSxhWigpLHdkKCkpLFJbMTVdKDQpKSxJZigpKToiIiksQz9PW3VbMV1dKDk4LGdbdVsyXV0oNCxPW3VbMV1dKDk5LGFaKCksRnIoKSksWVs5XSg5KSksSWYoKSk6IiIpLEo/T1t1WzFdXSg3OSxnW3VbMl1dKDM2LE9bdVsxXV0oOTksYVooKSxCRigpKSxHWzM3XSh1WzJdKSksSWYoKSk6IiIpLCc8L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLWFuY2hvci1jb21wYWN0LWZvb3RlciIpK1dbMl0pLFREKCc8ZGl2IGNsYXNzPSInK1JbMTFdKDksCiJyYy1hbmNob3ItbG9nby1sYW5kc2NhcGUiKSsnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iJytSWzExXSg3MywicmMtYW5jaG9yLWxvZ28taW1nIikrV1sxXStSWzExXSg3LCJyYy1hbmNob3ItbG9nby1pbWctbGFuZHNjYXBlIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtYW5jaG9yLWxvZ28tbGFuZHNjYXBlLXRleHQtaG9sZGVyIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1hbmNob3ItY2VudGVyLWNvbnRhaW5lciIpKyciPjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJjLWFuY2hvci1jZW50ZXItaXRlbSIpK1dbMV0rUlsxMV0oOSwicmMtYW5jaG9yLWxvZ28tdGV4dCIpKyciPnJlQ0FQVENIQTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PicpKSxnWzE2XSg0MSxXWzFdLHopKSxzMSgpKSk6Yj0iIixhPWdbdVsyXV0oMzYsYVooKSxiKSksNjkpKT09QiYmKEE9QT09PXZvaWQgMD97fToKQSxhPW5ldyB6aChmdW5jdGlvbihYLGQsdCxoLE0sVSl7cmV0dXJuKEMuc3RyZWFtcy5zZXQoKHQ9bmV3IEtuKGIsKGg9KFU9WyhNPSsrQy5vLCJjZCIpLDE2LDRdLGQ9QVtVWzBdXSkhPUs/ZDpDLlguVWwsaCksWCksTSksdCksQy5sKS5uZXh0KHt9KSxHW1VbMl1dKFVbMV0seixDLHQsTSksZnVuY3Rpb24oKXtPWzQ3XSgyNCxKLEssQyxNKX19KSksKEJ8ODgpPT1CKSYmKHRoaXMuWD10aGlzLnY9dGhpcy5NPTApLEIpJiZCLTU8PDI+PUImJihhPXo9PT1udWxsP0owKCk6ej09PXZvaWQgMD9DbigpOnopLEIpJiYoYmQuY2FsbCh0aGlzLGtbMThdKDIwLEEwKSxrWzQzXSgyNix2RiksTEsoKSksa1s0OF0odVsxXSx0aGlzLFRoLHopLGtbNDhdKDEwLHRoaXMsajQsZU4oSykpKSxhfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEI+PjEmKCgoQisodj1bMiw5LDY4XSx2KVswXSY1Nyk+PUImJkIrMz4+dlswXTxCJiYoej1bbnVsbCwhMV0sdGhpcy52PXpbMF0sdGhpcy5NPXpbMF0sCnRoaXMuaT16WzBdLHRoaXMuWD16WzBdLHRoaXMubmV4dD16WzBdLHRoaXMuQT16WzFdKSwoQjw8dlswXSYxMSk+PTcpJiYoKEJeMjkpJjE2KTw0JiYocD1HWzI2XSgxNixDLEssZVs0OF0odlsyXSx6LEopLGIsQSkpLDEyKSk8NSYmQit2WzFdPj4zPj0xKWE6e2lmKHBuKXtwPUdsLmF0b2IoSyk7YnJlYWsgYX1tWzZdKHZbMV0sNjQsKEo9eixmdW5jdGlvbihRKXtKKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFEpfSksSykscD1KfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoQz1bImNhbGwiLDgsMzNdLChCJjEyMyk9PUIpVFtDWzBdXSh0aGlzLHopO3JldHVybihCK0NbMV0mNDMpPEImJihCLTleMjEpPj1CJiYoYj1lWzJdKENbMl0sSyxKLHosUUIpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChCXihDPVsxLCJyZW1vdmUiLDQ4XSwyMCkpPj4zPT1DWzBdJiYoYj1uZXcgbm4oeixLLEopKSxCPDxDWzBdJjcpfHwoei5jbGFzc0xpc3Q/ei5jbGFzc0xpc3RbQ1sxXV0oSyk6CmVbMTBdKDE3LHosSykmJkdbMzhdKENbMl0sInN0cmluZyIsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGVbQ1swXV0oMTIseiksZnVuY3Rpb24oQSl7cmV0dXJuIEEhPUt9KS5qb2luKCIgIikseikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZihiPVsibWF0Y2giLDMsInYiXSwhKEIrNyY3KSl7Zm9yKDt6PVppLnJlbW92ZSgpOyl7dHJ5e3ouTS5jYWxsKHpbYlsyXV0pfWNhdGNoKEEpe09bNDVdKDIsQSl9V0YucHV0KHopfWdrPSExfXJldHVybihCfDUpPj4oKEJeMjcpJjExfHwoQz10aGlzW2JbMl1dW2JOKCh6KzcpLzE3KV0pLGJbMV0pfHwoSj1LW2JbMF1dKG9vKSxMbiYmWyJodHRwIiwiaHR0cHMiLCJ3cyIsIndzcyIsImZ0cCJdLmluZGV4T2YoSlt6XSk+PTAmJkxuKEspLEM9SiksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKChCXigoUT1bMiwxNSw5XSxCKzE+PTIzKSYmQi00PDI1JiYoYj1nWzMxXSg0MywwLGtbMzldKDQzLHosSiksQy50b1N0cmluZygpLApSbykscD1lWzE2XSg5OSw0LHJrLGtbMjRdKDcsMCxIWzQ4XShRWzBdLGIubGVuZ3RoLDE5LEssNzUpLGIpKSksNjgpKTwyMSYmKEIrMyY3KT49NSYmKHRoaXMuWD16LHRoaXMuTT1iLHRoaXMuY29uZmlnPUMsdGhpcy5aaT1KLHRoaXMuc3RhdGU9MCx0aGlzLnY9bmV3IHdFLHRoaXMuY2hhbm5lbD1tWzE4XShRWzBdLCJjIiwiZCIsMSxRWzBdLEssdGhpcykpLEIpKzc8MjMmJigoQnxRWzJdKSZRWzFdKT49MTImJihwPUdbMTNdKDE3LGZ1bmN0aW9uKG4sWil7aWYoKFo9WzEwLCJ2IiwiWCJdLG4uTSk9PXopcmV0dXJuIHY9WVtaWzBdXSgzNSxmdW5jdGlvbihXKXtyZXR1cm4gVy5wYXJzZShiKX0pLG5bWlsxXV0oUls0N10oNTgsSix2W0tdLHZbel0rdltDXSksQyk7cmV0dXJuIG4ucmV0dXJuKG5ldyBWQihZW1pbQT1uW1pbMl1dLDBdXSg2NSxmdW5jdGlvbihXKXtyZXR1cm4gVy5wYXJzZShBKX0pLHZbel0sdltDXSkpfSkpLCEoQi1RWzBdJjExKSlhOntpZigoQz0vcnY6ICooW1xkXC5dKikvLmV4ZWMoSikpJiYKQ1tLXSl7cD1DW0tdO2JyZWFrIGF9aWYoKHY9L01TSUUgKyhbXGRcLl0rKS8uZXhlYygoYj0iIixKKSkpJiZ2W0tdKWlmKEE9L1RyaWRlbnRcLyhcZC5cZCkvLmV4ZWMoSiksdltLXT09eilpZihBJiZBW0tdKXN3aXRjaChBW0tdKXtjYXNlICI0LjAiOmI9R2goKTticmVhaztjYXNlICI1LjAiOmI9SEYoKTticmVhaztjYXNlICI2LjAiOmI9ZTQoKTticmVhaztjYXNlIHo6Yj1QRigpfWVsc2UgYj0kaCgpO2Vsc2UgYj12W0tdO3A9Yn1yZXR1cm4gcH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoYj1bOCw3LDZdLCgoQnxiWzBdKSZiWzFdKT09Mil7Zm9yKEo9eixDPVtdO0o8SztKKyspQ1tKXT16O0E9Q31pZigoQisyJjQwKT49QiYmKEItYlsxXV5iWzFdKTxCKWtbYlsyXV0oMjQseixLLEopO2lmKCEoQisyJjE0KSlPWzJdKGJbMV0sZnVuY3Rpb24oKXt0aGlzLmhPKCl9LHosSyk7cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKChiPVs2LDEsNDI5NDk2NzI5Nl0sCkIpLWJbMV18YlsxXSk8QiYmKEItYlswXXwyMyk+PUImJihDPW5ldyBxMSh6JjQyOTQ5NjcyOTUsYk4oei9iWzJdKSkpLEIpLTU+PTE4JiYoQj4+YlsxXSY4KTw3JiYoQz1LJiZKLk9kKCk+ej9LKCk6bnVsbCksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXtpZigoQiYoUD1bImNvbnN0cnVjdG9yIiw5MywyXSxQWzFdKSk9PUIpYTp7aWYoKChyPShuPVshMCwiVW5rbm93bkVycm9yIiwid2luZG93LmxvY2F0aW9uLmhyZWYiXSxPWzE2XSgxMyxLLHosbltQWzJdXSkpLGIpPT16JiYoYj1pZCgpKSx0eXBlb2YgYik9PT0ic3RyaW5nIil7Vj17bWVzc2FnZTpiLG5hbWU6eUIoKSxsaW5lTnVtYmVyOlloKCksZmlsZU5hbWU6cixzdGFjazpZaCgpfTticmVhayBhfXg9ITE7dHJ5e1E9Yi5saW5lTnVtYmVyfHxiLmxpbmV8fCJOb3QgYXZhaWxhYmxlIn1jYXRjaChxKXtRPVloKCkseD1uWzBdfXRyeXtmPWIuZmlsZU5hbWV8fGIuZmlsZW5hbWV8fApiLnNvdXJjZVVSTHx8R2xbY0YoKV18fHJ9Y2F0Y2gocSl7Zj1ZaCgpLHg9blswXX1pZihwPUdbMjhdKDM3LEMsYiksISgheCYmYi5saW5lTnVtYmVyJiZiLmZpbGVOYW1lJiZiLnN0YWNrJiZiLm1lc3NhZ2UmJmIubmFtZSkpe1Y9KHY9Yi5tZXNzYWdlLHY9PXomJihiW1BbMF1dJiZiW1BbMF1daW5zdGFuY2VvZiBGdW5jdGlvbj8oYltQWzBdXS5uYW1lP0E9YltQWzBdXS5uYW1lOihXPWJbUFswXV0sUzRbV10/QT1TNFtXXTooTD1TdHJpbmcoVyksUzRbTF18fChOPS9mdW5jdGlvblxzKyhbXlwoXSspL20uZXhlYyhMKSxTNFtMXT1OP05bMV06bXooKSksQT1TNFtMXSkpLFo9J1Vua25vd24gRXJyb3Igb2YgdHlwZSAiJytBKyciJyk6Wj1sZCgpLHY9Wix0eXBlb2YgYi50b1N0cmluZz09PSJmdW5jdGlvbiImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmchPT1iLnRvU3RyaW5nJiYodis9SitiLnRvU3RyaW5nKCkpKSx7bWVzc2FnZTp2LG5hbWU6Yi5uYW1lfHxuWzFdLGxpbmVOdW1iZXI6USwKZmlsZU5hbWU6ZixzdGFjazpwfHwiTm90IGF2YWlsYWJsZSJ9KTticmVhayBhfVY9e21lc3NhZ2U6Yi5tZXNzYWdlLG5hbWU6Yi5uYW1lLGxpbmVOdW1iZXI6Yi5saW5lTnVtYmVyLGZpbGVOYW1lOmIuZmlsZU5hbWUsc3RhY2s6cH19aWYoQis2Pj4zPj1QWzJdJiYoQj4+MSY2KTwxKWE6aWYoYj1tW1BbMl1dKDkxLEUxKSxwPSFrWzEwXSgzLCJub25lIixiKSxDPT1udWxsfHxDPT1wKXtpZihwKXtpZighKEouZmcoYiksWVsxXSg0NSx6LGIpKSl7Vj12b2lkIDA7YnJlYWsgYX1BPShZWzM4XSg0LGIsITApLFIpWzM2XSg4LGIpLmhlaWdodCxrWzhdKDQyLEosZnVuY3Rpb24ocSl7KChxPVsiZm9jdXMiLDQwLCJTaWxrIl0sYk4pKEspLHkpWzI1XShxWzFdLDAscVsyXSwiRWRnZSIsIkNyaU9TIik+PUt8fGJbcVswXV0oKX0pfWVsc2UgQT0tMSpSWzM2XSg0MCxiKS5oZWlnaHQsRFsxM10oMjIsYiksWVszOF0oNyxiLCExKTtrWzQ2XSg2MiwiaCIsSiwoKHY9T1s0M10oMTcsSi5SKSx2KS5oZWlnaHQrPQpBLHYpKX1yZXR1cm4gVn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKE49WyJ2IiwxOCwzXSxCLTIpXjEyKTxCJiYoQisxJjYxKT49QilhOntpZighKHY9WyJHRVQiLDAsMl0sZVsyMl0oNCx2WzBdLHZbMl0sYikpKXtXPXlbMjBdKDE2LEMsYltOWzBdXSk7YnJlYWsgYX1pZigobj1iW05bMF1dLmdldFJlc3BvbnNlKCksbik9PT0iIil7Vz1DO2JyZWFrIGF9aWYoIShRPShaPVJbNDJdKDQxLGJbTlswXV0pPT16LEE9QyxuLmxlbmd0aCksYi5NKS5YKXtpZih0eXBlb2YgVGV4dERlY29kZXI9PT0idW5kZWZpbmVkIil7Vz0oKFhTKCksSFs5XSg1NixudWxsLGIpLFkpWzQzXShOWzFdLHZbMV0sYiksQyk7YnJlYWsgYX1iLk0uWD1uZXcgR2wuVGV4dERlY29kZXJ9Zm9yKHA9dlsxXTtwPFE7cCsrKWIuTS5NPUssQSs9Yi5NLlguZGVjb2RlKG5bcF0se3N0cmVhbTohKFomJnA9PVEtSil9KTtXPWIuTVtOW2IuTVsobi5sZW5ndGg9dlsxXSxOKVswXV0rPUEsYi5XPQp2WzFdLDBdXX1yZXR1cm4oQj4+MjxOWzFdJiYoQi1OWzJdJjcpPj02JiYoSj1LLnRhYkluZGV4LFc9dHlwZW9mIEo9PT0ibnVtYmVyIiYmSj49eiYmSjwzMjc2OCksKChCfDkpJjE2KTw0KSYmQi00Pj0tODMmJihlWzM2XSgxLGIsYltOWzBdXSwiZyIsZnVuY3Rpb24oeCl7eVsyNF0oNCxudWxsLCh4PVs1MCwhMCwzNV0seFsxXSksZ1t4WzJdXSh4WzBdLGIudikpfSksZVszNl0oMTAsYixiW05bMF1dLCJoIixmdW5jdGlvbigpe2IucmVzaXplKCl9KSxlWzM2XSg1LGIsYltOWzBdXSwiaSIsZnVuY3Rpb24oeCl7eVt4PVtudWxsLDM1LDUxXSwyNF0oNix4WzBdLHosZ1t4WzFdXSh4WzJdLGIudikpfSksZVszNl0oNyxiLGJbTlswXV0sSixmdW5jdGlvbigpe3JldHVybiBEWzFdKDI3LDIsdWQsYil9KSxlWzM2XShOWzJdLGIsYltOWzBdXSxDLGZ1bmN0aW9uKCl7cmV0dXJuIERbMV0oMTEsMixhbyxiKX0pLGVbMzZdKDEyLGIsYltOWzBdXSxLLGZ1bmN0aW9uKCl7cmV0dXJuIERbMV0oMTksCjIsaDAsYil9KSxlWzM2XSgxMCxiLGJbTlswXV0sImoiLGZ1bmN0aW9uKHgpe3JldHVybiBEW3g9WzEsMjgsMF0seFsxXV0oMTIseFsyXSwyLHhbMF0sNCxiKX0pLGVbMzZdKE5bMl0sYixiW05bMF1dLCJyIixmdW5jdGlvbih4KXtyZXR1cm4gZ1szMF0oKHg9WzEsMjEsMTFdLHgpWzFdLHhbMF0seFsyXSwxMywhMSxiKX0pKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVybiBCKygoKFY9WzEzLDIsNV0sQik+PlZbMV0mVlsyXSk9PTEmJihQPUdbVlswXV0oOSxmdW5jdGlvbihxLGMsRSl7aWYocVtFPVsiTSIsKGM9W251bGwsMSwwXSw2NyksOV0sRVswXV09PWNbMV0pcmV0dXJuIHY9ZGsuSigpLFE9Yi52Lkssa2guSigpLnY9Z1syNF0oMTQsY1syXSxRKSxyPWNbMF0sVz1uZXcgdDAoUSx2LmdldCgpLnllKCksSFswXSg1NixjWzJdLHYsSikpLE49Yi5GZy50aGVuKGZ1bmN0aW9uKFMpe3JldHVybiBTLnNlbmQoVTEsVyw1RTMpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pLApxLnYoKDAsdCQueTUpKGZ1bmN0aW9uKCl7cmV0dXJuIE59LDE1KSwyKTtpZighKG49KHA9KEw9KGIudVk9KChyPXEuWCl8fChyPWtbMzVdKDEwLGNbMV0seiwhMSkpLHIudltFWzBdXSksZGVjb2RlVVJJQ29tcG9uZW50KShlc2NhcGUoUlsyNV0oMSxDLGIudi5VKSkpLGIudi5IKSx7cEQ6USxOSTpMLHd6OnAsUU46ci52LnYsbmI6ci52LkxELFdBOk0xLEtiOllbMjJdKEVbMV0sSyx2LmdldCgpKSxjbzpHWzQ5XSgxMCwhMSx3ayx2KSxhTjpudWxsLGx5Om51bGwscGI6bnVsbH0pLGIpLnYuWClEWzFdKDEwLGNbMF0sYiwoZj0oeD1yW0VbMF1dKT09Y1swXT92b2lkIDA6eC52KSE9Y1swXT9mOm51bGwsbik7cmV0dXJuIHEudihHWzMyXShFWzJdLGNbMF0sY1syXSxiLChaPShBPXJbRVswXV0pPT1jWzBdP3ZvaWQgMDpBW0VbMF1dKSE9Y1swXT9aOm51bGwsbiksY1syXSl9KSksVlsxXSk+PjR8fChiTihDKSxiTihKKSxnWzI3XSgxNCx6LEssQyksZ1syN10oVlswXSx6LEssSikpLFB9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyl7aWYoISgoQi05XjEwKTwoUz1bNDIsMTQsMV0sQikmJihCKzkmMTUpPj1CJiYoQT1rW1NbMF1dKDIzLHosSy51RCxKKSxLLk09QS5idWZmZXIsSy5BPUEudixLLmk9Q3x8MCxLLnY9Sy5pLEsuWD1iIT09dm9pZCAwP0suaStiOksuTS5sZW5ndGgpLEItNCY3KSlhOntpZihWPUNbS10scT1bMCxudWxsLChXPXt9LCJzdHJpbmciKV0sVil7RT1WO2JyZWFrIGF9Zm9yKCh2PSgoWj17fSxaKS53UT1DLFoucmU9WVsxMF0oNCwib2JqZWN0Iix6LHFbMF0scVsyXSxDW3FbMF1dKSxDW1NbMl1dKSxjPVNbMl0sdiYmdi5jb25zdHJ1Y3Rvcj09PU9iamVjdCkmJihaLmZYPXYsdj1DWysrY10sdHlwZW9mIHY9PT0iZnVuY3Rpb24iJiYoWi5Gcj0hMCxJbyE9cVtTWzJdXXx8KElvPXYpLEZTIT1xW1NbMl1dfHwoRlM9Q1tjK1NbMl1dKSx2PUNbYys9Ml0pKTt2JiZBcnJheS5pc0FycmF5KHYpJiZ2Lmxlbmd0aCYmdHlwZW9mIHZbcVswXV09PT0KIm51bWJlciImJnZbcVswXV0+cVswXTspe2ZvcihmPXFbMF07Zjx2Lmxlbmd0aDtmKyspV1t2W2ZdXT12O3Y9Q1srK2NdfWZvcihRPVNbMl07diE9PXZvaWQgMDspe2lmKChOPSh0eXBlb2Ygdj09PSJudW1iZXIiJiYoUSs9dix2PUNbKytjXSksUD12b2lkIDAsdm9pZCAwKSx2IGluc3RhbmNlb2YgQkQpP249djoobj1KZSxjLS0pLChQPW4pPT1xW1NbMl1dPzA6UC52KXY9Q1srK2NdLEw9YyxBPXYscj1DLHR5cGVvZiBBPT09ImZ1bmN0aW9uIiYmKEE9QSgpLHJbTF09QSksTj1BO2ZvcigocD1RKyh2PUNbKytjXSxTKVsyXSx0eXBlb2Ygdj09PSJudW1iZXIiKSYmdjxxWzBdJiYocC09dix2PUNbKytjXSk7UTxwO1ErKyl4PVdbUV0sTj9KKFosUSxuLE4seCk6YihaLFEsbix4KX1FPUNbS109Wn1yZXR1cm4oKEJ8MTYpPT1CJiYoYmQuY2FsbCh0aGlzLGtbMThdKFNbMV0sQ2cpLGtbNDNdKDI1LGJGKSxMSygpKSxtWzIzXSgyNywiQTdLcGFFQVNmaERjSzBuWHhnUUV5eVl2Iix6LDIsbCksCks9RFs4XSgxMSxkay5KKCkuZ2V0KCkpLG1bMjNdKDIwLEsseixTWzJdLGwpLHRoaXMuTzA9ei5UKCkpLChCPj5TWzJdJjE1KT09MykmJihFPWJOKEFlKCkqeikpLEV9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQjw8KFo9WyJmaXJzdENoaWxkIiwyMiwiZGF0YSJdLDEpJjExKT09MiYmKFE9WzAsMjE0NzQ4MzY0OCwiIl0sSiZRWzFdPyhnW1pbMV1dKDI0KT9BPVFbMl0rKEJpZ0ludChKfFFbMF0pPDxCaWdJbnQoeil8QmlnSW50KEs+Pj5RWzBdKSk6KHA9Z1sxMl0oMTEsR1szMV0oMzYsMSxKLEspKSx2PXAubmV4dCgpLnZhbHVlLEM9cC5uZXh0KCkudmFsdWUsQT0iLSIra1syNl0oMzAsOCx2LEMpKSxiPUEpOmI9a1syNl0oOTQsOCxLLEopLG49YiksIShCPDwxJjE1KSlhOntpZigodj15WzQ3XS5iaW5kKG51bGwsMTIpLGcpWzEwXSgxLCJkaXNwbGF5Iix6KSE9Im5vbmUiKXtuPXYoeik7YnJlYWsgYX0oYj0oQT0oQz0oSz16LnN0eWxlLEspLnBvc2l0aW9uLApKPUsuZGlzcGxheSxLLnZpc2liaWxpdHkpLEsudmlzaWJpbGl0eT12RCgpLEsucG9zaXRpb249VHkoKSxLLmRpc3BsYXk9akMoKSx2KHopKSxLKS5kaXNwbGF5PUosSy5wb3NpdGlvbj1DLEsudmlzaWJpbGl0eT1BLG49Yn1pZighKChCXjE2KT4+MykpaWYoInRleHRDb250ZW50ImluIHopei50ZXh0Q29udGVudD1LO2Vsc2UgaWYoei5ub2RlVHlwZT09Myl6W1pbMl1dPVN0cmluZyhLKTtlbHNlIGlmKHpbWlswXV0mJnpbWlswXV0ubm9kZVR5cGU9PTMpe2Zvcig7ei5sYXN0Q2hpbGQhPXpbWlswXV07KXoucmVtb3ZlQ2hpbGQoei5sYXN0Q2hpbGQpO3pbWlswXV1bWlsyXV09U3RyaW5nKEspfWVsc2UgRFsxM10oNzIseiksei5hcHBlbmRDaGlsZChnWzMxXSg0OCw5LHopLmNyZWF0ZVRleHROb2RlKFN0cmluZyhLKSkpO3JldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgoKHY9WzEsIl9fIiwzXSxCPj52WzBdKSZ2WzJdfHwodGhpcy52PSExKSxCKS05JjcpPT12WzBdKXtpZighKGI9CihDPUdsW3BnKCldfHxHbFtRZygpXSxDKVtLXSxiKSl0aHJvdyBFcnJvcihLKyIgbm90IG9uIGdsb2JhbD8iKTsoQ1tLXT1mdW5jdGlvbihwLFEpe3ZhciBuPVtudWxsLCJjYWxsIiw0N107aWYoKCh0eXBlb2YgcD09PSJzdHJpbmciJiYocD1uZyh5WzM0XS5iaW5kKG5bMF0sMjcpLHApKSxwKSYmKGFyZ3VtZW50c1swXT1wPWtbblsyXV0oMTgsITEsITAscCxKKSksYikuYXBwbHkpcmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBaPXA7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXZhciBXPUFycmF5LnByb3RvdHlwZS5zbGljZVtuWzFdXSgoWj1mdW5jdGlvbigpe3AuYXBwbHkodGhpcyxXKX0sYXJndW1lbnRzKSwyKTtyZXR1cm4gYihaLFEpfSxDW0tdKVttWzRdKDgsdlsxXSx6LEopXT1ifXJldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKFc9WyJXIiwzMiw0MV0sQiY1Nyk9PUImJihBPUouTVtKLk0ubGVuZ3RoLXpdLGI9WWooKSxBLkh2PD0KYiYmKEEuVEU9SyksSltXWzBdXSYmSltXWzBdXT49QS5URXx8KEEuVEU9PT0xPyhKW1dbMF1dPXosQz1BLkh2LWIsSi5yYihDKSk6KEpbV1swXV09SyxKLlFlKCkpKSksKChCXjc2KSYzKT49MikmJkI+PjE8MTUpYTp7aWYodj1nWzMxXSg2NCx6LChDPW5ldyBaNigwLDApLEopKSxKPT0odj9nWzMxXSg4MCx6LHYpOmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQpe1E9QzticmVhayBhfShwPShBPWVbMTJdKDIsSiksSFsxN10oMzEseix2KSksYj1lW1dbMl1dKDMwLEsscC52KSxDLng9QS5sZWZ0K2IueCxDKS55PUEudG9wK2IueSxRPUN9cmV0dXJuKChCLTVeMTQpPEImJihCLTJeMjEpPj1CJiZULmNhbGwodGhpcyx6KSxCfFdbMV0pPT1CJiYoWj1mdW5jdGlvbihOKXtyZXR1cm4gei5uZXh0KE4pfSxuPWZ1bmN0aW9uKE4pe3JldHVybiB6WyJ0aHJvdyJdKE4pfSxRPW5ldyBQcm9taXNlKGZ1bmN0aW9uKE4seCl7ZnVuY3Rpb24gZihMKXtMLmRvbmU/TihMLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoTC52YWx1ZSkudGhlbihaLApuKS50aGVuKGYseCl9Zih6Lm5leHQoKSl9KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZigoQis4JigoQj4+KGY9WzEzLDAsIm9ubG9hZCJdLDIpJjE1fHxULmNhbGwodGhpcyx6KSxCLTE+PTYmJkI+PjE8OCYmKEE9e3RpbWVvdXQ6MUU0fSxaPUEuZG9jdW1lbnR8fGRvY3VtZW50LHg9WVszMV0oMyxiKS50b1N0cmluZygpLG49KG5ldyBXRChaKSkuY3JlYXRlRWxlbWVudChnXyksUT17T2w6bix0dTp2b2lkIDB9LHY9bmV3IE5OKE9tLFEpLHA9QS50aW1lb3V0IT1DP0EudGltZW91dDo1RTMsVz1DLHA+ZlsxXSYmKFc9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24ocixWKXtyPShIWzM3XSgyMiwoVj1bNDUsITAsNDBdLEMpLFZbMV0sbiksbmV3IHhBKDEsIlRpbWVvdXQgcmVhY2hlZCBmb3IgbG9hZGluZyBzY3JpcHQgIit4KSkseVsxM10oNzQsSix2KSxnW1ZbMF1dKFZbMl0sVlsxXSx2LEoscil9LHApLFEudHU9VyksbltmWzJdXT1uLm9ucmVhZHlzdGF0ZWNoYW5nZT0KZnVuY3Rpb24ocil7KHI9WyJ3QyIsInJlYWR5U3RhdGUiLCJsb2FkZWQiXSxuW3JbMV1dKSYmbltyWzFdXSE9clsyXSYmbltyWzFdXSE9ImNvbXBsZXRlInx8KEhbMzddKDE4LEMsQVtyWzBdXXx8SixuLFcpLHYueEEoQykpfSxuLm9uZXJyb3I9ZnVuY3Rpb24ocixWKXsocj0oVj1bITAsODgsMzddLEhbVlsyXV0oMTksQyxWWzBdLG4sVyksbmV3IHhBKDAsIkVycm9yIHdoaWxlIGxvYWRpbmcgc2NyaXB0ICIreCkpLHkpWzEzXShWWzFdLEosdiksZ1s0NV0oNDEsVlswXSx2LEoscil9LE49QS5hdHRyaWJ1dGVzfHx7fSxENihOLHt0eXBlOiJ0ZXh0L2phdmFzY3JpcHQiLGNoYXJzZXQ6IlVURi04In0pLEhbMzZdKDQ5LHosSyxOLG4pLGtbMzZdKDEwLEMsIiIsbixiKSxHWzhdKDI4LGZbMV0sWikuYXBwZW5kQ2hpbGQobiksTD12KSxCLTg8PDIpPj1CJiYoQi0zfDM5KTxCJiYoWVszNV0oMzIsbVsyXSg5MSwicmMtaW1hZ2UtdGlsZS1vdmVybGF5IixKLmVsZW1lbnQpLHtvcGFjaXR5OiIwLjUiLApkaXNwbGF5OiJibG9jayIsdG9wOiIwcHgifSksT1syXSg0MCxmdW5jdGlvbihyKXtZWzM1XSgocj1bOTAsMTYsMl0sclsxXSksbVtyWzJdXShyWzBdLCJyYy1pbWFnZS10aWxlLW92ZXJsYXkiLEouZWxlbWVudCksIm9wYWNpdHkiLHopfSxLKSksZlswXSkpPT0xKWtbNl0oMjgseixLLEopO3JldHVybiBMfSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKCEoKCgoQz1bNjIsOCw0Nl0sQiZDWzBdKT09QiYmSyYmZ1syMF0oQ1sxXSx6LEspLEItNileMjcpPEImJihCLTV8NTApPj1CJiYoSj1rW0NbMl1dKENbMl0sZnVuY3Rpb24oYixBLHYpe2Iuc3Vic2NyaWJlKCh2PXosbmV3IGZnKEEsZnVuY3Rpb24ocCl7Kyt2PD1LJiYoQS5uZXh0KHApLEs8PXYmJkEuY29tcGxldGUoKSl9KSkpfSkpLChCfDUpPj40KSlzd2l0Y2godHlwZW9mIEspe2Nhc2UgInN0cmluZyI6T1syNV0oMjcseixLKX1yZXR1cm4gSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCfChwPVsiaVkiLDE1LDVdLApCLTQmM3x8VC5jYWxsKHRoaXMseiksMTYpKT09QiYmKEouUD1EYXRlLm5vdygpLGVbMzRdKDMsSiksSi5tPXlbcFsxXV0oMTgsSi5DKSxtWzQ3XSg1MixKLm0sb3goKSxKLkwpLGI9Si5pLkQsSi5XPUssSi5NPW5ldyBJQixKLnY9eVszNV0oNCxKLmksYj9DOm51bGwsIUoubCksSi5TPksmJihKLkQ9bmV3IExnKFJ4KEpbcFswXV0sSixKLnYpLEouUykpLEhbNDFdKDM0LHZvaWQgMCxKLkZnLEoudixKLmtKLHJfKSxBPUouSD9tWzQyXSgzMyxKLkgpOnt9LEoubD8oSi5PfHwoSi5PPUxLKCkpLEFbVmcoKV09R3koKSxKLnYuc2VuZChKLm0sSi5PLEoubCxBKSk6KEouTz1IRCgpLEoudi5zZW5kKEoubSxKLk8sbnVsbCxBKSksZzBbcFsyXV0oNiwxKSxlWzEyXSg1MCwiXG4iLCImIiwyLHosSi5BLEoubSxKLk8sSi5MLEoubCxKLlgpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKChCJjg3KT09KEE9WzEsMjEsN10sQikmJihLPXRoaXMudixKPXRoaXMuQSx0aGlzLlg/ei5lcnJvcihKKToKSyYmei5jb21wbGV0ZSgpKSxCXjIpPj40KSlhOntpZigoWVszN10oQVsxXSxLLEopLEM9WmYoTnVtYmVyKEspKSxOdSkoQykpe3Y9U3RyaW5nKEMpO2JyZWFrIGF9dj0oKGI9Sy5pbmRleE9mKGVDKCkpLGIhPT0tMSkmJihLPUsuc3Vic3RyaW5nKHosYikpLEp8fGdkKT9EWzIzXSg2NSwzMiwxNixLKTpLfXJldHVybigoQl4zMikmQVsyXSk9PUFbMF0mJih2PXoudj96LnYucmVhZHlTdGF0ZTowKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCgoQnw1KSYoKEJeNDApPCgoQiY1NCk9PShRPVsyNywiWCIsODhdLEIpJiYoSj1HWzM5XShRWzJdLDEsbnVsbCx6LGtbNDddKDUsUEQpLG5ldyBNYXAoW1tbJEEscU4saUYseWcsWUFdLEsubF0sW1tjRF0sSy56Sl0sW1tTQ10sSy5ZZl0sW21MLEsucGddXSksSyksSi5jYXRjaChmdW5jdGlvbigpe30pLG49SiksMjkpJiYoQl43Nik+PTI0JiYodj1PWzI2XSg5OCwwKSxwPXA9PT12b2lkIDA/e306cCxuPW5ldyB6aChmdW5jdGlvbihaLApXLE4seCxmLEwscixWKXtpZigoTj0oeVs0NV0oMzQsMCwoTD1uZXcgbEYoWiwoZj0oeD0ocj0oVj1bNzIsbnVsbCwidiJdLCsrQS5vKSxwLmNkKSkhPVZbMV0/eDpBLlguVWwsdiksITEsZixiKSxBKSksZ1szOF0oVlswXSxMLEEpKSkmJihOLk18fHYuY29tcGFyZShOW1ZbMl1dKTw9MCkpcmV0dXJuIFc9SyxPWzJdKDM5LGZ1bmN0aW9uKCl7VyYmTC5NLmNvbXBsZXRlKCl9LDZFNCksZnVuY3Rpb24oKXtXPUp9O3JldHVybiBBLnN0cmVhbXMuc2V0KHIsTCksQS5sLm5leHQoe30pLEdbNF0oMTcsQyxBLEwsciksZnVuY3Rpb24oKXtPWzQ3XSg0MCx6LG51bGwsQSxyKX19KSksUVswXSkpPT0zKWE6c3dpdGNoKHo9ej09PXZvaWQgMD9udWxsOnosSyl7Y2FzZSBFbTpuPW5ldyBYNjticmVhayBhO2Nhc2UgdUY6bj1uZXcgYXg7YnJlYWsgYTtjYXNlIGhlOm49bmV3IGRfO2JyZWFrIGE7Y2FzZSBrQTpuPW5ldyB0ZTticmVhayBhO2Nhc2UgVW06bj1uZXcgdGUoVW0pO2JyZWFrIGE7Y2FzZSBNTjpuPQpuZXcgd187YnJlYWsgYTtjYXNlIEl4Om49bmV3IEY2O2JyZWFrIGE7Y2FzZSBCTDpuPW5ldyBzZDticmVhayBhO2Nhc2Ugemo6bj1uZXcgS1I7YnJlYWsgYTtjYXNlIEp4Om49bmV3IENSO2JyZWFrIGE7Y2FzZSBiMjpuPW5ldyBBeDticmVhayBhO2Nhc2UgSG86bj1uZXcgdkw7YnJlYWsgYTtjYXNlIFRqOm49bmV3IGpXKHopO2JyZWFrIGE7Y2FzZSBwUjpuPW5ldyBRTzticmVhayBhfXJldHVybigoQnw4MCk9PUImJlQuY2FsbCh0aGlzLHosMCxiRi5SVCksQiktND4+M3x8KEtbUVsxXV09Qz9rWzEyXSgyNCxKLHopOkosbj1LKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gQi05JigoKChiPVsxMyw0OCw2OF0sQjw8MikmYlswXXx8KEE9bVsyM10oMjIsSixLLHopKSxCKS0zfDIxKT49QiYmKEItN15iWzBdKTxCJiYoSj1LW25SXSxKfHwoQz1SWzM1XShiWzJdLHosWnQsSFsyNF0uYmluZChudWxsLDQwKSxLLGtbYlsxXV0uYmluZChudWxsLDExKSksSj1mdW5jdGlvbih2LApwKXtyZXR1cm4gWVsxM10oMTMsMTI4LDUwMCxDLHYscCl9LEtbblJdPUopLEE9SiksNyl8fChwUS5jYWxsKHRoaXMpLHRoaXMuQT1LfHw1RTMsdGhpcy5pPXp8fDAsdGhpcy5NPUp8fG5ldyBXTCh0aGlzLmksZzUsMSwxMCx0aGlzLkEpLHlbNDNdKDU3LHRoaXMuTSx0aGlzKSx0aGlzLlg9MCksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCEoKHA9WzU4LDMsMzBdLEIpLTg+PjQpKXtpZigheil0aHJvdyBFcnJvcigiSW52YWxpZCBjbGFzcyBuYW1lICIreik7aWYodHlwZW9mIEshPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJJbnZhbGlkIGRlY29yYXRvciBmdW5jdGlvbiAiK0spO31pZigoQiZwWzJdKT09QilhOntpZihOMCl7dj0oSj1LW09kXSkhPXo/SjpLW09kXT1uZXcgTWFwO2JyZWFrIGF9aWYoT2QgaW4gSyl7dj1LW09kXTticmVhayBhfXhWKEssT2QsKEM9bmV3IE1hcCx7dmFsdWU6Q30pKSx2PUN9cmV0dXJuKChCXnBbMF0pPj40fHwodj1HWzEzXSg4LGZ1bmN0aW9uKFEsCm4sWil7bj0oWj1bMTEsMSwiaSJdLFs3LDAsNl0pO3N3aXRjaChRLk0pe2Nhc2UgWlsxXTppZihKPShiPURbWlswXV0oWlswXSksYikuZG9jdW1lbnQsIUpbRHQoKV18fCFKW2ZSKCldKXtRLkdfKG5bWlsxXV0pO2JyZWFrfXJldHVybiBRLkEoeiksUS52KEpbRHQoKV0oKSxLKTtjYXNlIEs6aWYoIShBPVEuWCxBKSl7US5HXyhuWzJdKTticmVha31yZXR1cm4gUS52KEpbZlIoKV0oe2xvY2FsU3RvcmFnZTohMCxzZXNzaW9uU3RvcmFnZTohMH0pLG5bMF0pO2Nhc2UgblswXTooQz1RLlgpJiYob249Qyk7Y2FzZSBuWzJdOlEuRihuW1pbMV1dKTticmVhaztjYXNlIHo6UVtaWzJdXSgpLFEuUigpfX0pKSxCfDYpPj5wWzFdPj0wJiYoKEJeNjkpJjEwKTwyJiYoSj15WzM0XSg0OSxudWxsLHopLmNsaWVudCx2PVJbMThdKDgsMiwxLDUsNixLLEouWCkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LApzdyxCOCxKWSxiMyx6OCxqTixaRyl7cmV0dXJuKChCfDQ4KT09KChCKzEmKCgoWkc9WzMsNTAsMjRdLEIrOD4+WkdbMF09PTEpJiYob258fChvbj1EWzExXSgyKSksak49Sz09ej9vbi5zZXNzaW9uU3RvcmFnZTpvbi5sb2NhbFN0b3JhZ2UpLChCLTV8MzQpPEImJihCLTheMjApPj1CKSYmKEE9WyIvbS8wazRqIiwiL20vMDR3NjdfIiwiVGlsZVNlbGVjdGlvblN0cmVldFNpZ24iXSxDPVsiVGlsZVNlbGVjdGlvblN0cmVldFNpZ24iLCIvbS8wazRqIiwiL20vMDR3NjdfIl0sYj1tWzMxXShaR1swXSxLLEoubWV0YWRhdGEpLFJbMjZdKDEyLGIsSyk9PSIvbS8wazRqIiYmKEM9QSksdj1tWzJdKDg5LCJyYy1pbWFnZXNlbGVjdC1kZXNjLXdyYXBwZXIiKSxEWzEzXSg3MCx2KSxtWzMxXSgyOCx2LGVbMzhdLmJpbmQobnVsbCwzMikse2xhYmVsOkNbSi52Lmxlbmd0aC1LXSxVWTpKeH0pLGtbMzFdKDcseixKKSksMTUpKT09NCYmKHRoaXMudj1udWxsKSxCKSYmKHRoaXMuTT1LLHRoaXMudj0KeiksKEImODIpPT1CKSYmKGIzPVsxMiwwLDI1Nl0sQT1nWzEyXSgxMixrWzQyXSg0MSx6LDUpKSxRPUEubmV4dCgpLnZhbHVlLFY9QS5uZXh0KCkudmFsdWUsVz1BLm5leHQoKS52YWx1ZSxyPUEubmV4dCgpLnZhbHVlLHU9QS5uZXh0KCkudmFsdWUsei55eT8oYT1nWzI2XSg5MCxMUi5KKCksYjNbMF0pLHY9Z1sxMl0oNCxhKSxTPXYubmV4dCgpLnZhbHVlLHg9di5uZXh0KCkudmFsdWUsc3c9di5uZXh0KCkudmFsdWUsWD12Lm5leHQoKS52YWx1ZSxCOD12Lm5leHQoKS52YWx1ZSxKPXYubmV4dCgpLnZhbHVlLE09di5uZXh0KCkudmFsdWUsdi5uZXh0KCksdi5uZXh0KCksdD12Lm5leHQoKS52YWx1ZSx2Lm5leHQoKSxxPXYubmV4dCgpLnZhbHVlLGQ9W1lbNDFdKDIzLHIsT1syNV0oNSxyKSxPWzI1XSg1LDE4NDYpKSxHW1pHWzJdXSgxMCxyLE9bMjVdKDcsciksT1syNV0oNywxMjEzKSksWVsxNV0oNjUscixPWzI1XSg3LHIpLE9bMjVdKFpHWzBdLDE0NTQpKSxSWzE5XSg0MSxNLHEsCkspLEdbWkdbMl1dKFpHWzJdLE0sT1syNV0oNyxNKSxPWzI1XSg5LHIpKSxZWzE1XSg3NixNLE9bMjVdKDksTSksYjNbMl0pLG1bMzNdKDI3LEsscSxPWzI1XSg1LE0pKV0sRT1bWVsxNV0oNzIsUyxPWzI1XSg1LFcpLGIzWzJdKSxtWzMzXSgxMCxLLEosT1syNV0oNSxTKSksUlswXSgxMCx4LE9bMjVdKFpHWzBdLFcpLGIzWzJdKSxJKFcsc3csWCx4KV0sbj1beVszNl0oNTYsMjEsSyxPWzI1XSg3LEspKSxtWzEyXSg0MixCOCxSbiksUlsxOV0oNDAsQjgsQjgsSyksR1taR1syXV0oMTYsSixPWzI1XSg1LEI4KSw0KSxZWzE1XSg3MixyLE9bMjVdKDcsciksT1syNV0oNywxNDU0KSksR1taR1syXV0oWkdbMl0scixPWzI1XSg5LHIpLE9bMjVdKFpHWzBdLDE0NTQpKSxZWzE1XSg2NCxyLE9bMjVdKDksciksT1syNV0oNywxNDU0KSksbVsxMl0oNDcscSxiM1sxXSksRFsxNF0oOTgscSxkLEI4KSxnWzQ4XSgxMCwxOTEsc3cpLFlbMTJdKFpHWzBdLHN3LHN3KSxnWzQ4XSgxNiw2OTAsWCksUlsxNl0oMjYsCkI4LE9bMjVdKFpHWzBdLEI4KSwxKSxSWzE2XShaR1syXSxKLE9bMjVdKDUsSiksMSksRFsxNF0oMzQsSixFLEI4LC0xKSxIWzQ0XSg2MyxzdyksSFs0NF0oWkdbMV0sWCksSFs0NF0oNTgsdCldLChoPUxSLkooKSkudi5hcHBseShoLGVbMzNdKDM1LGEpKSxjPW4pOihaPUdbOF0oNDgsNjU1MzUpLHo4PWdbMjZdKDg4LExSLkooKSw1KSxwPWdbMTJdKDEyLHo4KSxiPXAubmV4dCgpLnZhbHVlLFU9cC5uZXh0KCkudmFsdWUsSlk9cC5uZXh0KCkudmFsdWUsZj1wLm5leHQoKS52YWx1ZSx3PXAubmV4dCgpLnZhbHVlLEM9W1JbMTldKDY0LGYsSlksSyksT1szN10oNTcsdyxPWzI1XShaR1swXSxmKSxPWzI1XSgxLFUpKSxHW1pHWzJdXSgxMCxVLE9bMjVdKDksVSksT1syNV0oMSxmKSksbVszM10oMjYsSyxKWSxPWzI1XSg1LHcpKV0sTD1beVszNl0oNTQsMjEsSyxPWzI1XSg1LEspKSxtWzEyXSgzOSxVLFopLG1bMTJdKDQxLGIsUm4pLFJbMTldKDksYixiLEspLG1bMTJdKDQ0LEpZLGIzWzFdKSwKRFsxNF0oMjYsSlksQyxiKSxtWzEyXSg0MCxVLFopLG1bMzNdKDE3LEssYixPWzI1XSg5LFUpKV0sKE49TFIuSigpKS52LmFwcGx5KE4sZVszM10oMjAsejgpKSxjPUwpLFA9YyxqTj1bZVs3XSg2NCxWKSxHW1pHWzJdXSgyNixWLE9bMjVdKDcsViksNjMyKSxZWzQxXSg3MCxWLE9bMjVdKDEsVikscjUpLE9bMzddKDYyLFYsT1syNV0oWkdbMF0sViksYjNbMV0pLE9bMzddKDU5LFcsT1syNV0oNyx6Lk8pLE9bMjVdKDcsVikpLE9bMzddKDU2LHIsT1syNV0oMSx6LkZnKSxPWzI1XSg5LFYpKSxQLHoueHcsZ1s1XSgyMCwzOSxRKSxSWzE2XShaR1syXSxRLE9bMjVdKDEsUSksT1syNV0oMSx6Lm96KSksbVsxMl0oMzksdSx6LnpWKSxrWzQzXSgxLDcsW3UsSyxRLHouSkxdKV0pLGpOfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoYj1bMTUsOTcsM10sQis4KT4+NHx8dGhpcy5SLnRoZW4oZnVuY3Rpb24oQSl7cmV0dXJuIEEuc2VuZChWTyl9KSwoQl4yNSk+PmJbMl09PTImJih0aGlzLng9CnohPT12b2lkIDA/ejowLHRoaXMueT1LIT09dm9pZCAwP0s6MCksKEImYlsxXSk9PUIpJiYoQz16PT1udWxsfHx0eXBlb2Ygej09PSJzdHJpbmciP3o6dm9pZCAwKSwoQi02JmJbMF0pPT00JiYoQz1HWzEzXSgzMyxmdW5jdGlvbihBKXtyZXR1cm4gQS5yZXR1cm4oeVs0Ml0oOSx6LDIyNCxLLEopKX0pKSxCJjkyKT09QiYmVC5jYWxsKHRoaXMseiksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKCgoWj1bMCwoKEImMTMpPT1CJiYobj1mdW5jdGlvbihXLE4seCxmLEwscixWLFApe2ZvcihOPShmPShXPSh4PShZWzEzXSgxMiwxMjgsNTAwLFJbMzVdKDEyLChQPVs3MiwidiIsKEw9bmV3IEdqLDY2KV0sIm51bWJlciIpLFp0LEhbMjRdLmJpbmQobnVsbCxQWzBdKSx6LGtbNDhdLmJpbmQobnVsbCwyNykpLHRoaXMuYVQsTCksSFs0NV0oUFsyXSxMW1BbMV1dLmVuZCgpLEwpLG5ldyBVaW50OEFycmF5KEwuTSkpLHI9MCxMKS5YLFcubGVuZ3RoKSwwKTtyPGY7cisrKVY9Cldbcl0seC5zZXQoVixOKSxOKz1WLmxlbmd0aDtyZXR1cm4gTC5YPVt4XSx4fSksNjEpLDJdLEIpLTVeMTcpPj1CJiYoQis3JjI4KTxCKWE6e2lmKHY9RFszOF0oNTEsKFE9KHA9KGI9WzAsbnVsbF0sei5hVCkscFtBJF18YltaWzBdXSksYlsxXSksUSxLLHAsSixDKSx2PT1iWzFdKXtuPXY7YnJlYWsgYX15W1pbMl1dKChRPXBbQSRdfGJbWlswXV0sMzYpLHosUSl8fChBPURbMV0oWlsxXSxiW1pbMF1dLHYpLEEhPT12JiYoWVsxOF0oMjAsYltaWzBdXSx6KSYmKHA9ei5hVCxRPXBbQSRdfGJbWlswXV0pLHY9QSxRPVlbMjVdKDE5LHYsSixRLEMscCksSFszNl0oWlsyXSxwLFEpKSksbj12fWlmKCgoQis0XjIyKTxCJiYoQi03fDYzKT49QiYmKEsmJiFKLmkmJihZWzQyXSgxMyxaWzBdLEopLEouWD16LEoudi5mb3JFYWNoKGZ1bmN0aW9uKFcsTix4LGYpe04hPShmPVs2NSwicmVtb3ZlIiwoeD1OLnRvTG93ZXJDYXNlKCksMTgpXSx4KSYmKHRoaXNbZlsxXV0oTiksa1tmWzJdXShmWzBdLAowLG51bGwseCx0aGlzLFcpKX0sSikpLEouaT1LKSwoQl4yMik+PjQpPj0xJiYoQl41MSk+PjQ8WlsyXSlhOntpZighSil7bj1LO2JyZWFrIGF9bj0oKGI9UlsyNl0oMjEsSix6KSxiKT09PW51bGx8fGI9PT12b2lkIDA/Qz1LOihITCgpLEM9bmV3IGVXKGIpKSxDKX1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihwPVsyLDUsMThdLChCKzcmNik+PTEmJihCXjEwKT4+NDxwWzBdJiYoZ1szXSgyNCxLLHosSixiLEEsQyl8fGVbcFsxXV0ocFsyXSxLLG5nKEMsYikpKSxCPDxwWzBdKSY3fHxULmNhbGwodGhpcyx6KSx2fV19KCkseT1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoQjw8KHY9WzQ4LDcsMTFdLDEpJjZ8fChBPVJbdlswXV0oNjksSyxQTCx6LGwpKSxCKS00fHZbMl0pPj1CJiYoQisyJjU2KTxCJiYoYj1bMTUsMCwzOF0sQz1KKEsoKSx2WzJdLGJbMF0sdlsxXSksQT1DPmJbMV0/SihLKCksdlsyXSwKYlswXSxiWzJdKS1DOi0xKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKChCKygoKHY9WzI1LDEwNyw0MF0sQikmdlsxXSk9PUImJihLPVJbMjRdKDgyLEspLHA9R1s0M10oNTYseixLKSksMSkmOCk8NCYmKEJeNyk+PTYmJihDPUhbNDVdKHZbMl0sWHIoKSx6Lk10LGltKCksdW0oKSksQT1IWzQ1XSgxMixhZigpLHouRVksaW0oKSx1bSgpKSxiPUhbNDVdKDEyLGhRKCksei5LRCxpbSgpLHVtKCkpLEs9SFs0NV0odlsyXSxkZCgpLHouWm4saW0oKSx1bSgpKSxKPU9bdlsyXV0oNzgsYVooKSwnPGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1hbmNob3ItaW52aXNpYmxlLXRleHQiKSsnIj48c3Bhbj4nKSxnW3ZbMF1dKDY4LEosInByb3RlY3RlZCBieSA8c3Ryb25nPnJlQ0FQVENIQTwvc3Ryb25nPiIpLE9bdlsyXV0oNzgsZ1t2WzBdXSg1MixnW3ZbMF1dKDY4LGdbdlswXV0oMyxnW3ZbMF1dKDMsZ1t2WzBdXSgzNSxPW3ZbMl1dKDk5LEosJFYoKSksYj9PW3ZbMl1dKDk3LApnW3ZbMF1dKDM1LE9bdlsyXV0oOTksYVooKSxxMCgpKSxZWzldKDgpKSxJZigpKToiIiksSz9PW3ZbMl1dKDk3LGdbdlswXV0oNCxPW3ZbMl1dKDk3LGFaKCksaTIoKSksR1szN10oMTApKSxJZigpKToiIiksQz9PW3ZbMl1dKDk4LGdbdlswXV0oNCxPW3ZbMl1dKDc4LGFaKCkseU8oKSksZVs0Nl0oMTUpKSxJZigpKToiIiksQT9PW3ZbMl1dKDc5LGdbdlswXV0oNjgsT1t2WzJdXSg3OSxhWigpLHlPKCkpLFJbMTVdKDMpKSxJZigpKToiIiksZ1sxNl0oNDIsIiAiLHopKSxJZigpKSxwPUopLChCfDMyKT09QikmJlQuY2FsbCh0aGlzLHosMCxZVi5SVCkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEItKChCLTheMTcpPj0oKChiPSgoQiYzOCk9PUImJihBPUs9PT12b2lkIDA/ei52IT09Y0wmJiEhKDImKHouYVRbQSRdfDApKTohISgyJkspJiZ6LnYhPT1jTCksWzYyLCJwcm90b3R5cGUiLDEyXSksQil8ODgpPT1CJiYoQT1LLmFkZChtWzI0XSg0LHopKSksKEIrNV5iWzJdKTwKQiYmKEItM14xMCk+PUImJihLPUVycm9yLmNhbGwodGhpcyx6P3oubGVuZ3RoKyIgZXJyb3JzIG9jY3VycmVkIGR1cmluZyB1bnN1YnNjcmlwdGlvbjpcbiIrei5tYXAoZnVuY3Rpb24odixwKXtyZXR1cm4gcCsxKyIpICIrdi50b1N0cmluZygpfSkuam9pbihTVygpKToiIiksdGhpcy5tZXNzYWdlPUsubWVzc2FnZSwic3RhY2siaW4gSyYmKHRoaXMuc3RhY2s9Sy5zdGFjayksdGhpcy5lcnJvcnM9eixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyx0aGlzLmNvbnN0cnVjdG9yW2JbMV1dKSx0aGlzLm5hbWU9bW8oKSksQikmJihCLTleMTEpPEImJihiZC5jYWxsKHRoaXMsa1sxOF0oYlsyXSxsMiksa1s0M10oMTEsRWQpLExLKCkpLEs9T1s0Nl0oNTUsbnVsbCwwLHopLEdbNDFdKDcsMTQsbVsxOV0oNDUsMSxLKSksdGhpcy5PMD16LlQoKSksMSkmMTR8fChZWzM3XSg4LEoseiksSj1aZihKKSxKPj0wJiZOdShKKT9DPVN0cmluZyhKKTooa1tiWzJdXSg1LDAsSiksQz1rWzI2XShiWzBdLApLLE9PLHhPKSksQT1DKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSl7aWYoQis4Pj4xPj0oUD1bInYiLCJpIiwiVyJdLEIpJiYoQi05fDIwKTxCKXtpZigoZj1bMSwhMSwyXSxKKS5SJiZKLlgmJkhbNDddKDMsZlswXSxKKSl7aWYoQz1KLlIsVz1YT1tDXSlHbC5jbGVhclRpbWVvdXQoV1tQWzBdXSksZGVsZXRlIFhPW0NdO0ouUj1LfWZvcihKW1BbMF1dJiYoSltQWzBdXS5sLS0sZGVsZXRlIEpbUFswXV0pLHI9ZlsxXSxWPWZbMV0scD1KLk07Si5BLmxlbmd0aCYmIUouRjspaWYobj1KLkEuc2hpZnQoKSx4PW5bS10sQT1uW3pdLFo9bltmWzBdXSxOPUpbUFsxXV0/Wjp4KXRyeXtpZihiPU4uY2FsbChBfHxKLkMscCksYj09PXUyJiYoYj12b2lkIDApLGIhPT12b2lkIDAmJihKW1BbMV1dPUpbUFsxXV0mJihiPT1wfHxiIGluc3RhbmNlb2YgRXJyb3IpLEouTT1wPWIpLGtbMzldKDIwLGZbMV0scCl8fHR5cGVvZiBHbFthbigpXT09PSJmdW5jdGlvbiImJgpwIGluc3RhbmNlb2YgR2xbYW4oKV0pVj1KLkY9ITB9Y2F0Y2goYyl7SltQWzFdXT0hMCxwPWMsSFs0N10oMixmWzBdLEopfHwocj0hMCl9KChKLk09cCxWKSYmKFE9UngoSltQWzJdXSxKLCEwKSxMPVJ4KEpbUFsyXV0sSixmWzFdKSxwIGluc3RhbmNlb2YgTk4/KFlbMzddKDczLGZbMl0sTCxRLHApLHAubz0hMCk6cC50aGVuKFEsTCkpLHIpJiYodj1uZXcgaHgocCksWE9bdltQWzBdXV09dixKLlI9dltQWzBdXSl9cmV0dXJuKEIrOSY3NSk+PSgoQnwxKT4+Mz09MiYmKHE9eVsyNl0oNTYsZDUpKSxCKSYmQis5Pj4xPEImJlQuY2FsbCh0aGlzLHopLHF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe3JldHVybigoKFo9WzczLDExLCJmb3JFYWNoIl0sQikmMTMpPT1CJiYocD16LnJvd1NwYW4sUT1bInJjLWltYWdlLXRpbGUtd3JhcHBlciIsNCxudWxsXSxKPXouYkIsSz16LmNvbFNwYW4sYj16LkZKLHY9ei54RixuPXoudEIsQT16Llg3LEM9ZVsyMV0oNzIsUVsxXSwKcCkmJmVbMjFdKDc0LFFbMV0sSyk/JyBjbGFzcz0iJytSW1pbMV1dKDM5LCJyYy1pbWFnZS10aWxlLTQ0IikrJyInOmVbMjFdKDc1LFFbMV0scCkmJmVbMjFdKDc4LDIsSyk/JyBjbGFzcz0iJytSW1pbMV1dKFpbMF0sInJjLWltYWdlLXRpbGUtNDIiKSsnIic6ZVsyMV0oNzUsMSxwKSYmZVsyMV0oNzksMSxLKT8nIGNsYXNzPSInK1JbWlsxXV0oNywicmMtaW1hZ2UtdGlsZS0xMSIpKyciJzonIGNsYXNzPSInK1JbWlsxXV0oNzEsInJjLWltYWdlLXRpbGUtMzMiKSsnIicsVz1URCgnPGRpdiBjbGFzcz0iJytSW1pbMV1dKDksInJjLWltYWdlLXRpbGUtdGFyZ2V0IikrJyI+PGRpdiBjbGFzcz0iJytSW1pbMV1dKDcsUVswXSkrJyIgc3R5bGU9IndpZHRoOiAnK1JbWlsxXV0oOSxZWzI0XSg0LFFbMl0sSikpKyI7IGhlaWdodDogIitSW1pbMV1dKDksWVsyNF0oMyxRWzJdLEEpKSsnIj48aW1nJytDKyIgc3JjPSciK1JbWlsxXV0oWlswXSxPWzBdKDE3LCIiLG4pKSsnXCcgYWx0PSIiIHN0eWxlPSJ0b3A6JysKUltaWzFdXSg3MSxZWzI0XSgxLFFbMl0sYiotMTAwKSkrIiU7IGxlZnQ6ICIrUltaWzFdXSg3MSxZWzI0XSgyLFFbMl0sdiotMTAwKSkrJyUiPjxkaXYgY2xhc3M9IicrUltaWzFdXShaWzBdLCJyYy1pbWFnZS10aWxlLW92ZXJsYXkiKSsnIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbWlsxXV0oNywicmMtaW1hZ2VzZWxlY3QtY2hlY2tib3giKSsnIj48L2Rpdj48L2Rpdj4nKSksQikrOSYzfHwoSz1bXSx6LlguZFEuRG4uTnRbWlsyXV0oZnVuY3Rpb24oTix4KXtOLnNlbGVjdGVkJiZrVih0aGlzLmcseCk9PS0xJiZLLnB1c2goeCl9LHopLFc9SyksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtyZXR1cm4oKChuPVsyNyw2LDVdLChCLTNeMjApPEImJihCKzgmNDEpPj1CKSYmKHRoaXMuTT1bXSx0aGlzLlg9dGhpcy52PXRoaXMuY2xvc2VkPSExLHRoaXMuQT1udWxsKSxCLW5bMV0pXm5bMF0pPj1CJiYoQituWzJdJjc3KTxCJiYodj1KLlU5LHpbS109ZnVuY3Rpb24oWiwKVyxOLHgpe3JldHVybiB2KFosKHg9WyJyZSIsMTEsIm51bWJlciJdLFcpLE4scHx8KHA9UlszNV0oMzYseFsyXSxMUSx5WzVdLmJpbmQobnVsbCx4WzFdKSxDLFlbNV0uYmluZChudWxsLHhbMV0pKVt4WzBdXSksQXx8KEE9eVszNl0oMTMseFsyXSxDKSksYil9KSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZihCLShwPVsyNywxMSwyXSxwWzJdKT4+Mz09MylrWzZdKHBbMF0seixLLEopO3JldHVybihCKzQmKChCLTU8PDE8QiYmKEIrNV4yNSk+PUImJlQuY2FsbCh0aGlzLHosMCx0eC5SVCksQikrNT4+Mz09cFsyXSYmKFE9VWRbel18fCIiKSxwWzFdKSk9PXBbMl0mJih2PWdbMzhdKHBbMl0sMSxDLEspLHYhPW51bGwmJihBPUhbMTldKHBbMl0scFsyXSxKLHopLGIodix6KSxHWzE1XSg5OCwxMjcseixBKSkpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQis3Pj4oKFo9WzMwLDE0LCJ2Il0sKEJ8MzIpPT1CKSYmKEE9bmV3IE0wLGI9QyhuZXcgRGF0ZSwKWlsxXSkoKSx2PWtbNl0oMjUsMSxBLGIpLHA9dzUoKSxuPUhbNDldKDU3LDMscCx2KS55ZSgpKSwxKTxCJiYoQi04XlpbMF0pPj1CJiZULmNhbGwodGhpcyx6KSwoQj4+MSYxMSk+PTYpJiZCPj4xPDI1KXtpZihLLnNpemUhPUtbWlsyXV0ubGVuZ3RoKXtmb3IoUT1KPXo7UTxLW1pbMl1dLmxlbmd0aDspQz1LW1pbMl1dW1FdLERbMzZdKDcsQyxLLk0pJiYoS1taWzJdXVtKKytdPUMpLFErKztLW1pbMl1dLmxlbmd0aD1KfWlmKEsuc2l6ZSE9S1taWzJdXS5sZW5ndGgpe2ZvcihwPWI9KEE9e30seik7cDxLW1pbMl1dLmxlbmd0aDspdj1LW1pbMl1dW3BdLERbMzZdKDUsdixBKXx8KEtbWlsyXV1bYisrXT12LEFbdl09MSkscCsrO0tbWlsyXV0ubGVuZ3RoPWJ9fXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoISgoQl4zMCk+Pigobj1bMCwiZ2V0TmFtZSIsNF0sKEImNDMpPT1CJiYoWj1HWzEzXSg4LGZ1bmN0aW9uKFcsTil7aWYoKE49WzY0LCJYIiwxMF0sClcuTSk9PXopcmV0dXJuIFcudihrW05bMl1dKE5bMF0sWVtOWzJdXSg5NyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdHJpbmdpZnkoSi5tZXNzYWdlKX0pLEoubWVzc2FnZVR5cGUrSi52KSxLKTtyZXR1cm4oQz1XW05bMV1dLFcpLnJldHVybihZW05bMl1dKDM0LGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0cmluZ2lmeShbQyxKLm1lc3NhZ2VUeXBlLEoudl0pfSkpfSkpLEIrblsyXSY3KT09MiYmKFo9SFsyM10oMyx6LCJpUGhvbmUiKXx8RFsyMF0oNywiaVBhZCIpfHxEWzIwXSg5LHopKSxuWzJdKSkpe2lmKEE9KHA9KEs9KHo9ej09PXZvaWQgMD9nMFszXSg5LG5bMF0pOnosSyk9PT12b2lkIDA/e306Syx5KVszNF0oNTcsbnVsbCx6LEspLHAuY2xpZW50KSxDPXAuSkIsIVlbMzBdKDI0LEEudikpdGhyb3cgRXJyb3IoSW4oKSk7Zm9yKGI9Z1sxMl0oOSxGTyhDKSksUT1iLm5leHQoKTshUS5kb25lO1E9Yi5uZXh0KCkpaWYodj1RLnZhbHVlLCFbQjdbblsxXV0oKSxzMltuWzFdXSgpLHpkW25bMV1dKCksCks1W25bMV1dKCksSlhbblsxXV0oKSxDNVtuWzFdXSgpXS5pbmNsdWRlcyh2KSl0aHJvdyBFcnJvcihiTSgpKTtaPSgoQ1tzMltuWzFdXSgpXSYmQ1tzMltuWzFdXSgpXS5sZW5ndGg+blswXXx8Q1t6ZFtuWzFdXSgpXSkmJihKPUhbMzldKDc1LG5bMF0sQVgpKSYmKENbdjdbblsxXV0oKV09SiksRylbMTFdKDExLEEubChBLkYuYmluZChBLFRkLEMpKSxmdW5jdGlvbihXKXtBLnYuaGFzKGpQKXx8QS52LnNldChqUCxXKX0pfXJldHVybiBafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoKEM9WzM3LDUsMV0sQis5KSY0Nyk+PUImJkIrNz4+Q1syXTxCJiYoSj1uZXcgbTMsYj1HWzI2XSgxNixwNSxDWzFdLFlbMTBdKDMxLHosSyksSikpLEIpXkNbMF0pJjN8fChKPW5ldyBRNixiPUhbMF0oNTEsSix6LEspKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKEImKG49WzYsMiwiU3EiXSwoKEJeMTQpJm5bMF0pPj00JiZCLW5bMV0+PjU8MSYmKFo9WVsxOV0oNjgsCnosSykpLDcxKSk9PUIpe2lmKChBPVswLChwPUouRj9KLkYubGVuZ3RoOjAsbnVsbCksJyInXSxLW25bMl1dKSYmIUpbblsyXV0pdGhyb3cgRXJyb3IobjUpO2lmKHA8QVswXXx8cD4oSi5GP0ouRi5sZW5ndGg6MCkpdGhyb3cgRXJyb3IoWkkpO2lmKEsuaT09KEouQSYmSi5GfHwoSi5BPXt9LEouRj1bXSksSikpdj1KLkEsQz1PWzE5XSgzMix6LEspLHZbQ109SyxtWzI2XSg1NCxBWzBdLEouRixLKTtlbHNlIERbMzhdKDExLEFbblsxXV0sSi5BLE9bMTldKDE2LHosSyksSyk7KE9bblsxXV0oMSxBWzFdLEssSiksVzcoSi5GLHAsQVswXSxLKSxLW25bMl1dJiZKW25bMl1dKSYmSy5pPT1KPyhRPUouZWkoKSwoUS5jaGlsZE5vZGVzW3BdfHxBWzFdKSE9Sy51KCkmJihLLnUoKS5wYXJlbnRFbGVtZW50PT1RJiZRLnJlbW92ZUNoaWxkKEsudSgpKSxiPVEuY2hpbGROb2Rlc1twXXx8QVsxXSxRLmluc2VydEJlZm9yZShLLnUoKSxiKSkpOkpbblsyXV0mJiFLW25bMl1dJiZLLk0mJksuTS5wYXJlbnROb2RlJiYKSy5NLnBhcmVudE5vZGUubm9kZVR5cGU9PTEmJksuQ3EoKX1yZXR1cm4oQjw8KChCKzg+PjQ8blsxXSYmKEJ8blsxXSk+PS03OCYmKEM9T1sxNF0oMTIsbnVsbCxLKSxDIT1udWxsJiYoRFsyMl0oNzIsMCx6LEopLHoudi52LnB1c2goQz8xOjApKSksQj4+blsxXSk+PTE5JiYoQl43MSk+PjQ8NCYmKHRoaXMudj16KSwxKSY3KT49MSYmKEJeNjEpPDIwJiYoUlsxNl0oblsxXSx6KSxPWzI4XSgxLHopLHlbMjFdKDIzLHopLEhbMzJdKDEyLHopLGdbNDhdKDEseiksei5YLnB1c2goei5aMix6LmVYLHouWk8sei5oQSx6LnBxKSxtWzQ0XSgzMyx6KSx6LlgucHVzaCh6Lm56LHoua0osei5zWix6LnVQKSx6LlguZm9yRWFjaChmdW5jdGlvbihXLE4seCl7cmV0dXJuIHhbTl09Vy5iaW5kKHopfSkpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybihCfCgoQT1bMiwzLDhdLEIrND4+QVsxXT09MSkmJihiPWtbMzRdKEFbMF0sSyxncix6LEMsSikpLEFbMl0pKT4+ND49MCYmKEJeMzMpPAoxNSYmKHogaW5zdGFuY2VvZiBOYXx8KHo9bmV3IE5hKHosSykpLGI9eiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgodj1bMiwzLDldLEItNSleMTQpPj1CJiYoQisxJjYwKTxCKWE6aWYoej09bnVsbHx8dHlwZW9mIHo9PSJzdHJpbmcifHx6IGluc3RhbmNlb2YgWmwpe3A9ejticmVhayBhfXJldHVybihCPDwxJigoKEIrNV4xMyk+PUImJihCLTh8NTApPEImJihLPVtdLEhbMjldKDEyLHZbMV0sSywhMSx6KSxwPUsuam9pbigiIikpLChCXjQ4KT4+dlsxXSl8fChBPXRoaXMsQz1bMSwyXSx6JiYodGhpcy5vPXouV0EsdGhpcy5qPXouS2IsdGhpcy5GLnJlc2V0KCksdGhpcy5YPW5ldyBPMihmdW5jdGlvbihRKXtBLlImJkEuUihRKX0sdGhpcy5GLk0sei5jbyx6LnBEKSxKPUhbdlswXV0oMzQsQ1sxXSxPWzM5XSgxNyxDWzBdLHouTkkpLHoud3opLGVbdlsyXV0oMjIsQ1swXSx0aGlzLlgsSiksei5hTiYmei5seSYmKGI9SFt2WzBdXSh2WzFdLENbMV0sT1szOV0oMSwKQ1swXSx6LmFOKSx6Lmx5KSxlW3ZbMl1dKDM3LENbMF0sdGhpcy5YLGIpKSxLPUhbdlswXV0oOTgsQ1sxXSxPWzM5XSh2WzFdLENbMF0sei5RTiksei5uYiksZVt2WzJdXSg2LENbMF0sdGhpcy5YLEspKSksMTUpfHwocD1SWzE3XSg1Nix6LGIsQyxLLERbOF0uYmluZChudWxsLDcyKSx2b2lkIDAsSikpLCgoQnw2KSYyNCk8MSYmQis0Pj0tODcpJiYoR0QuY2FsbCh0aGlzLHhlLndpZHRoLHhlLmhlaWdodCx6fHxrQSksdGhpcy5FMz0xLHRoaXMuUWU9dGhpcy5DPW51bGwsdGhpcy5YPXtkUTp7RG46bnVsbCxlbGVtZW50Om51bGx9fSx0aGlzLm1ldGFkYXRhPW51bGwsdGhpcy5XMT12b2lkIDApLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCfCgoYj1bNDQsNSwiYTciXSxCKTw8Mj49MyYmQj4+MTwxMyYmKEE9eVszOF0oYlsxXSx2b2lkIDAsSj09bnVsbD9KOkRbMzRdKDQyLHosdm9pZCAwLEopLEMsSykpLDcyKSk9PUImJksuWCl7aWYoIUsuTyl0aHJvdyBuZXcgREkoSyk7CksuTz16fXJldHVybigoKEImNjkpPT1CJiYoSz0oMCx0JC5YOCkoKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIE9bNDBdKDIwLHYpfSksej0oMCx0JFtiWzJdXSkoKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIE9bNDBdKDM2LHYpfSksKDAsdCQudkYpKCksQT1uZXcgZjUoeixudWxsLEspKSxCKzk+PjEpPEImJihCLTl8OSk+PUImJlQuY2FsbCh0aGlzLHopLEJeYlswXSk8MTImJkI+PjE+PTExJiYodGhpcy52PUFycmF5LmZyb20oei5lbnRyaWVzKCkpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCXjgpPj0oTD1bMiwyNCwxXSwyMSkmJkIrTFsyXTwzNCYmKG49W251bGwsITAsITFdLG9nLmNhbGwodGhpcyksdGhpcy5YPUt8fG5bMF0sdGhpcy5BPUw1KCksdGhpcy5GPUdbM10uYmluZChudWxsLExbMF0pLHRoaXMuTT17fSx0aGlzLlI9eiwhSikpe2ZvcihXPSh4PShiPShaPShwPXRoaXMudj1uZXcgUmcoKHRoaXMudj1uWzBdLFJ4KHRoaXMuaSwKdGhpcykpKSxSWzM3XSgxMCxuW0xbMF1dLHJyKCkscCksdGhpcykudixSWzM3XSgxOCxuW0xbMF1dLFY2KCksWiksTj10aGlzLnYsWyJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJtb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ3ZWJraXRBbmltYXRpb25GcmFtZSIsIm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIl0pLEdsW3BnKCldfHxHbFtRZygpXSksMCk7VzxiLmxlbmd0aDtXKyspQz1iW1ddLGJbV11pbiB4JiZSWzM3XShMWzBdLG5bTFswXV0sQyxOKTtmb3IoQT0oUT1SeCgodj10aGlzLnYsR2Q9bltMWzJdXSx2LnYpLHYpLDApO0E8SDcubGVuZ3RoO0ErKylIN1tBXShRKTtlUC5wdXNoKHYpfXJldHVybigoKEJ8TFsxXSk9PUImJih0aGlzLnJlc3BvbnNlPXopLEIpLTN8NDMpPEImJkItMzw8TFswXT49QiYmVC5jYWxsKHRoaXMseiksZn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoIShCKzM+PigoQl4ocD1bMiwiQSIsMjFdLDU0KSkmNnx8Si5wdXNoKFA3KCksQy5yZXBsYWNlKCRlLApmdW5jdGlvbihuLFosVyl7cmV0dXJuKFo9cWFbVz1bImNoYXJDb2RlQXQiLCJzbGljZSIsMTZdLG5dLFopfHwoWj0iXFx1IisobltXWzBdXSh6KXw2NTUzNikudG9TdHJpbmcoV1syXSlbV1sxXV0oSykscWFbbl09WiksWn0pLFA3KCkpLDQpfHwoYiYmKHY9dHlwZW9mIGI9PT0ic3RyaW5nIj9iOk9bMTldKDE2LHosYiksYj1DW3BbMV1dJiZ2P0dbcFsyXV0oMzMsdixDW3BbMV1dKXx8SjpudWxsLHYmJmImJihBPUNbcFsxXV0sdiBpbiBBJiZkZWxldGUgQVt2XSxtWzI2XSg1NSxLLEMuRixiKSxiLkRHKCksYi5NJiZlWzQ2XSg3NSxiLk0pLE9bcFswXV0ocFswXSxKLGIsSikpKSxiKSkpdGhyb3cgRXJyb3IoaU0pO3JldHVybiBCPDxwWzBdJjZ8fChRPW5ldyB5Nih6KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEImKFE9WzEsMiwwXSw0MSkpPT1CKWE6e2lmKEE9WzgwLG51bGwsITBdLEs9PVllKXtwPVllO2JyZWFrIGF9cD0oKEo9KGI9KEM9Uls0M10oNSxBW1FbMV1dLApuZXcgeTYoSyksIiIpLERbMjldKDM2LEMsIiIpKSxZKVszMV0oMTMsQVtRWzFdXSxnWzQ1XSg3MCwiIixiKSxHWzQ5XSgzLEFbUVswXV0sUVsyXSxLKSksSi5pKSE9QVtRWzBdXXx8KEouTT09Imh0dHBzIj95WzI5XSg0NCw0NDMsSik6Si5NPT16JiZ5WzI5XSgyOCxBW1FbMl1dLEopKSxKLnRvU3RyaW5nKCkpfWlmKChCKzYmMTIpPEImJihCLTReOSk+PUImJmM3KXRyeXtjNyh6KX1jYXRjaChuKXt0aHJvdyBuLmNhdXNlPXosbjt9cmV0dXJuKEItNl4yOSk8QiYmKEItM3w5KT49QiYmKHY9a1tRWzBdXSgxMyx2b2lkIDAsQyxKLEspLEE9Qy5hVCxwPURbMzhdKDY3LG51bGwsQVtBJF18eixiLEEsdil8fGJbU1BdfHwoYltTUF09R1tRWzFdXShRWzFdLDM0LGIpKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigodj1bImlzQXJyYXkiLDIsMV0sQjw8dlsyXSY3KT09dlsxXSYmVC5jYWxsKHRoaXMseiksIShCLXZbMl0+PjMpKWlmKEFycmF5W3ZbMF1dKEMpKWZvcihiPTA7YjwKQy5sZW5ndGg7YisrKXlbMTddKDMsIj0iLEssSixTdHJpbmcoQ1tiXSkpO2Vsc2UgQyE9bnVsbCYmSi5wdXNoKEsrKEM9PT0iIj8iIjp6K0dbMF0oOSxDKSkpO3JldHVybihCfDgpPT1CJiYoQz1DPT09dm9pZCAwP21nKCk6QyxBPShiPURbMjJdKDE0LEssSikpIT16P2I6QyksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQisoKCgoQiYodj1bIm1hcCIsMzQsInByb3RvdHlwZSJdLDEzKSk9PUImJihBPUFycmF5W3ZbMl1dW3ZbMF1dLmNhbGwoSyxmdW5jdGlvbihwLFEpe3JldHVybihRPXAudG9TdHJpbmcoeiksUSkubGVuZ3RoPjE/UToiMCIrUX0pLmpvaW4oIiIpKSxCKXwyNCk9PUImJihiPWxNKCksQT1DLnJlcGxhY2UobmV3IFJlZ0V4cChKKyhiP3orYitLOiIiKSsiKShbYS16XSkiLCJnIiksZnVuY3Rpb24ocCxRLG4pe3JldHVybiBRK24udG9VcHBlckNhc2UoKX0pKSw0KSY1KT09MSYmKEE9WVsyNl0oNDcsSixDLEs9PW51bGw/SzpEW3ZbMV1dKDM5LHosdm9pZCAwLApLKSxtZygpKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihRPVsxMywhMCwiY2FsbCJdLChCJjEwNik9PUImJiFFMilmb3IoRTI9e30sSj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLnNwbGl0KCIiKSxDPUssYj1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXTtDPHo7QysrKWZvcihBPUouY29uY2F0KGJbQ10uc3BsaXQoIiIpKSxYb1tDXT1BLHA9SztwPEEubGVuZ3RoO3ArKyl2PUFbcF0sRTJbdl09PT12b2lkIDAmJihFMlt2XT1wKTtpZigoQl44KTwxNCYmKEJ8Nyk+PjM+PTEpVFtRWzJdXSh0aGlzLHopO3JldHVybigoQl42NikmMTQpPCgoQis0JlFbMF0pPEImJihCLTJeUVswXSk+PUImJihDLk18fEMudiE9eiYmQy52IT1LfHxHWzMzXSgxNyxRWzFdLEMpLEMuaT8oQy5pLm5leHQ9SixDLmk9Sik6KEMuTT1KLEMuaT1KKSksMTEpJiYoQis5JjUpPj0yJiYoR0RbUVsyXV0odGhpcywKdU0ud2lkdGgsdU0uaGVpZ2h0LGIyLGFnKSx0aGlzLnY9W10sdGhpcy5YPXRoaXMuSD10aGlzLkM9bnVsbCx0aGlzLmo9MCksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEImMTIwKT09KGI9WyJwdXNoIiwidiIsNl0sQikpYTp0cnl7QT1LW2JbMV1dP0tbYlsxXV0ucmVzcG9uc2VUZXh0OiIiO2JyZWFrIGF9Y2F0Y2godil7QT16O2JyZWFrIGF9aWYoKEItKEI+PjI+PTQmJihCLTcmOCk8NyYmKEpbYlsxXV0ubGVuZ3RoPj16JiYoSltiWzFdXT1bWVs0XSg1OCxHWzddKDUsIl0iLEpbYlsxXV0pKS50b1N0cmluZygpXSksSltiWzFdXVtiWzBdXShLKSksNCleYlsyXSk+PUImJihCKzNeOCk8Qil7aWYoaFgpQz1HWzldKDEsMTg5LDU5LDE4Niw2MSxLKTtlbHNle2lmKGRyJiZrZSlhOnN3aXRjaChLKXtjYXNlIDkzOko9ejticmVhayBhO2RlZmF1bHQ6Sj1LfWVsc2UgSj1LO0M9Sn1BPUN9cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybiBCLTEmKChCLTY+PgooKChBPVsyLG51bGwsMzJdLEIrNCleMTkpPEImJihCLTZeMzApPj1CJiYoej1SWzhdKDU3LHRoaXMpLEs9T1s0OF0oQVsyXSx0aGlzKSx0aGlzLnhKW3pdPW5ldyB0WChLLHRoaXMseikpLDQpfHwoQz15WzEyXSgxMCxLKSxDIT1BWzFdJiZEWzQxXSg3LDcseixKLGtbNDJdKDM5LEFbMF0sITAsQykuYnVmZmVyKSksQisxJjcpfHx6LlgucHVzaChZW0FbMF1dKDg1LGZ1bmN0aW9uKHYscCl7cmV0dXJuIHYqcH0seiksWVtBWzBdXSg4MCxmdW5jdGlvbih2LHApe3JldHVybiB2L3B9LHopLHouVzEsWVtBWzBdXSg4NCxmdW5jdGlvbih2LHApe3JldHVybiB2JXB9LHopLHoubFksei5NdyksNyl8fFQuY2FsbCh0aGlzLHopLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gQz1bImNsYXNzTmFtZSIsMTUsImdldEF0dHJpYnV0ZSJdLChCJjExMSk9PUImJihiPXR5cGVvZiBKW0NbMF1dPT1LP0pbQ1swXV06SltDWzJdXSYmSltDWzJdXShVMigpKXx8eiksKEJeQ1sxXSkmMXx8KGI9KEs9CkRbQ1sxXV0oNjQsTWEpKT96W0tdOnZvaWQgMCksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7aWYoKChCJjI4KT09KHE9WzUsImxhc3RJbmRleCIsImdldE5hbWUiXSxCKSYmKEo9bVs0Ml0oMzAsSyksQz13cltxWzJdXSgpLElnLmhhc093blByb3BlcnR5KEpbQ10pfHwoSltDXT16KSxQPUopLChCKzdeOSk+PUImJihCLXFbMF1eMjgpPEIpJiYodGhpcy52PXopLChCJjEwNSk9PUIpYTp7Zm9yKEw9KHA9QyxuPSh2PUMsUT1bXSxBLmxlbmd0aCksWzEsIj4iLCIiXSksVz1bXTtwPG47KXtzd2l0Y2godil7Y2FzZSBDOmlmKHI9QS5pbmRleE9mKEZvKCkscCkscjxDKXtpZihRLmxlbmd0aD09PTApe1A9QTticmVhayBhfXA9KFEucHVzaChBLnN1YnN0cmluZyhwKSksbil9ZWxzZSBRLnB1c2goQS5zdWJzdHJpbmcocCxyKSkscD1yK0xbMF0sTj1yLEJoPyhzbFtxWzFdXT1wLFY9c2wuZXhlYyhBKSk6KHNsW3FbMV1dPUMsVj1zbC5leGVjKEEuc3Vic3RyaW5nKHApKSksClY/KFo9VltMWzBdXSx2PUxbMF0sVz1bIjwiLFZbQ11dLHArPVZbQ10ubGVuZ3RoKTpRLnB1c2goRm8oKSk7YnJlYWs7Y2FzZSBMWzBdOmY9QS5jaGFyQXQocCsrKTtzd2l0Y2goZil7Y2FzZSB6OmNhc2UgSjp4PUEuaW5kZXhPZihmLHApLHg8Qz9wPW46KFcucHVzaChmLEEuc3Vic3RyaW5nKHAseCtMWzBdKSkscD14K0xbMF0pO2JyZWFrO2Nhc2UgTFsxXTpXPShOPSgoVy5wdXNoKGYpLFEpLnB1c2goYihXLmpvaW4oTFsyXSksWikpLFo9Syksdj1DLFtdKTticmVhaztkZWZhdWx0OlcucHVzaChmKX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fXY9PT0xJiZwPj1uJiYocD1OK0xbMF0sUS5wdXNoKEZvKCkpLFo9Syx2PUMsTj1LLFc9W10pfVA9US5qb2luKExbMl0pfXJldHVybigoQl4zMSkmMTEpPT0xJiYoYz1mdW5jdGlvbihFLFMpe0UhPUomJihBcnJheS5pc0FycmF5KEUpP0UuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYyhhLFMpfSk6KGIrPVErZW5jb2RlVVJJQ29tcG9uZW50KFMpKwpLK2VuY29kZVVSSUNvbXBvbmVudChFKSxRPXpMKCkpKX0sUT1iLmxlbmd0aD96TCgpOksxKCksdi5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKHY9T2JqZWN0LmVudHJpZXModikpLEFycmF5LmlzQXJyYXkodik/di5mb3JFYWNoKGZ1bmN0aW9uKEUpe3JldHVybiBjKEVbQ10sRVt6XSl9KTp2LmZvckVhY2goYyksUD1EWzQwXSg1NyxKLEErYitwKSksUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoQisoZj1bImlzQXJyYXkiLCJmdW5jdGlvbiIsMl0sMyk+PjU8MSYmQiszPj0xMSlhOmlmKGI9WyJvYmplY3QiLCJudW1iZXIiLDFdLEs9PW51bGwpQy5wdXNoKEowKCkpO2Vsc2V7aWYodHlwZW9mIEs9PWJbMF0pe2lmKEFycmF5W2ZbMF1dKEspKXtmb3Iobj0ocD0oKFo9Syx2PVoubGVuZ3RoLEMpLnB1c2goSjgoKSksMCksIiIpO3A8djtwKyspQy5wdXNoKG4pLHlbMjRdKDEwLGJbMV0sWltwXSxKLEMpLG49QzEoKTt4PShDLnB1c2goYnEoKSksdm9pZCAwKTsKYnJlYWsgYX1pZihLIGluc3RhbmNlb2YgU3RyaW5nfHxLIGluc3RhbmNlb2YgTnVtYmVyfHxLIGluc3RhbmNlb2YgQm9vbGVhbilLPUsudmFsdWVPZigpO2Vsc2V7Zm9yKFcgaW4gTj0oUT1LLEMucHVzaChBOCgpKSwiIiksUSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUSxXKSYmKEE9UVtXXSx0eXBlb2YgQSE9ZlsxXSYmKEMucHVzaChOKSx5WzE1XSgyMywwLGJbZlsyXV0sQyxXKSxDLnB1c2godmgoKSkseVsyNF0oOCxiWzFdLEEsSixDKSxOPUMxKCkpKTtDLnB1c2goVEwoKSkseD12b2lkIDA7YnJlYWsgYX19c3dpdGNoKHR5cGVvZiBLKXtjYXNlICJzdHJpbmciOnlbMTVdKDE1LDAsYltmWzJdXSxDLEspO2JyZWFrO2Nhc2UgejpDLnB1c2goaXNGaW5pdGUoSykmJiFpc05hTihLKT9TdHJpbmcoSyk6SjAoKSk7YnJlYWs7Y2FzZSAiYm9vbGVhbiI6Qy5wdXNoKFN0cmluZyhLKSk7YnJlYWs7Y2FzZSBmWzFdOkMucHVzaChKMCgpKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbmtub3duIHR5cGU6ICIrCnR5cGVvZiBLKTt9fXJldHVybigoKEItN3w0MCk8QiYmQi01PDwxPj1CJiYoeD1tWzIyXSgyNik/Z1syOF0oOSx6LGpKKTpEWzIwXSgxLCJFZGcvIikpLEI+PjEpJjEwKSE9ZlsyXXx8KEM9R2wuenptYikhPXomJkMuenpzaChLLEoud2lkdGgsSi5oZWlnaHQpLHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChCfCgoQiY5Mik9PShRPVs0MCwzMywidmVyc2lvbiJdLEIpJiYocD0iXyIrcDErQVguc3BsaXQodmgoKSlbel0pLDMpKT4+Mz09MilnMFs2XSgyMyxmdW5jdGlvbihuLFope3RoaXMuYWRkKFosbil9LEsseik7aWYoKEJ8UVswXSk9PUIpYTp7aWYobVsyMl0oMjcpJiZRUiE9PW4xKXtpZihiPVo4LmJyYW5kcy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmJyYW5kPT09UVJ9KSwhYnx8IWJbUVsyXV0pe3A9TmFOO2JyZWFrIGF9dj1iW1FbMl1dLnNwbGl0KGVDKCkpfWVsc2V7aWYoKEE9WVtRWzFdXShRWzBdLEsseixDLEopLEEpPT09IiIpe3A9TmFOO2JyZWFrIGF9dj0KQS5zcGxpdChlQygpKX1wPXYubGVuZ3RoPT09MD9OYU46TnVtYmVyKHZbel0pfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKChCJjI5KT09KChCPDwxJigoTj1bMCw0OSwiY2FsbCJdLChCXk5bMV0pPj40KXx8KFc9KEt8fGRvY3VtZW50KS5nZXRFbGVtZW50c0J5VGFnTmFtZShTdHJpbmcoeikpKSwzKSk+PTImJkI+PjI8MjAmJihXaFtOWzJdXSh0aGlzLHosSiksdGhpcy5YPUJmLHRoaXMuQT1udWxsLHRoaXMudj1DLHRoaXMubD1OWzBdLHRoaXMuRj1OWzBdLHRoaXMuUj1SWzQ4XSg3MyxLLGdtLDUsbCkpLEIpKXtmb3IoWj0oUT0oSj0odj1uZXcgTWFwLHA9eixbXSksZ1sxMl0oNyxLKSksUSkubmV4dCgpOyFaLmRvbmU7Wj1RLm5leHQoKSlDPVoudmFsdWUsQyBpbnN0YW5jZW9mIE5xP3Yuc2V0KEMscCk6cCsrO2ZvcihiPShuPWdbcD16LDEyXSgxMSxLKSxuKS5uZXh0KCk7IWIuZG9uZTtiPW4ubmV4dCgpKUE9Yi52YWx1ZSxBIGluc3RhbmNlb2YKT2w/KEoucHVzaChBKSxwKyspOkEgaW5zdGFuY2VvZiB4MCYmKEoucHVzaChBLnYodixwKSkscCsrKTtXPUp9cmV0dXJuIFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKCgoKHY9WyJ2IiwxMSwiQSJdLEIrNyleMTkpPj1CJiYoQis5JjQyKTxCJiYoQT1bNCwyLDQxXSxiPWRrLkooKS5nZXQoKSxZWzE5XSg2OCx6LGIpfHxKLnBxP0ouRz1tWzEyXSgyMCxBWzBdLG51bGwsQVsxXSxBWzJdLEMsSik6WVsxOV0oMzYsSyxiKSYmKEouST1tWzIyXSgxMixBWzBdLDMsQVsxXSxDLEopKSksQiY3OCk9PUImJih0aGlzLmk9eix0aGlzW3ZbMF1dPUssdGhpcy5NPUosdGhpc1t2WzJdXT1DLHRoaXMuWD1iLm1hcChmdW5jdGlvbihRKXtyZXR1cm4gbmV3IEQ4KFEpfSkpLEJ8NCkmdlsxXSk9PTEpdGhyb3cgSj1mMSgpLEVycm9yKEo9PT12b2lkIDA/InVuZXhwZWN0ZWQgdmFsdWUgIitLK3o6Sik7cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKEImNjkpPT0oQT0KWzMxLDEsOF0sQikmJihKPVsiLWR5bmFtaXRlLSIsImh0dHBzOi8vIiwiLXNpZ25hbGVyLXBhLmdvb2dsZWFwaXMuY29tL3B1bmN0dWFsIl0sYj17aXk6bmV3IHk2KEpbQVsxXV0reitKWzBdK0srIi1zaWduYWxlci1wYS5jbGllbnRzNi5nb29nbGUuY29tL3B1bmN0dWFsIiksZkQ6bmV3IHk2KEpbQVsxXV0reitKWzBdK0srSlsyXSksUVg6ITB9KSxCKT4+QVsxXSYxNSk9PUFbMV0pe2lmKChDPWVbMl0oMzgsKEs9WyJNaXNzaW5nIHBhdGgiLDIsMV0sSylbMl0sdm9pZCAwLHopLCFDKXx8Qy5sZW5ndGg9PT0wKXRocm93IEVycm9yKEtbMF0pO3RoaXMuYWN0aW9uPSh0aGlzLnY9KEo9ZVsyXSgodGhpcy5NPW5ldyBSZWdFeHAoQywidSIpLDM0KSxLW0FbMV1dLHZvaWQgMCx6KSkmJkoubGVuZ3RoPjA/bmV3IFJlZ0V4cChKLCJ1Iik6UmVnRXhwKCIuKiIsInUiKSxlKVsyXSgzMiwzLHZvaWQgMCx6KX1pZigoKChCJjYwKT09QiYmKEoudj1PWzJdKEFbMl0sZnVuY3Rpb24odil7SlsoSlt2PQpbIlgiLCJpIiwidiJdLHZbMl1dPUssdilbMF1dJiYhSlt2WzFdXSYmKEpbdlswXV09eix5WzI4XSgxMiwhMSxudWxsLEopKX0sSi5BKSxDPUouTSxKLk09SyxKLlIuYXBwbHkoSyxDKSksQi1BWzJdKV5BWzBdKT49QiYmKEIrOSYyNik8QiYmKGVbNDhdKDE2LEspLHRoaXMudj16LHohPW51bGwmJnoubGVuZ3RoPT09MCkpdGhyb3cgRXJyb3IoIkJ5dGVTdHJpbmcgc2hvdWxkIGJlIGNvbnN0cnVjdGVkIHdpdGggbm9uLWVtcHR5IHZhbHVlcyIpO3JldHVybiBifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQi0oKChRPVs4OCw0OCwyNV0sQis0KV4yKT49QiYmKEItNHw2Myk8QiYmKGI9WyExLDEsInN0cmluZyJdLHY9SltiWzFdXSxBPUdbUVsyXV0oNyxTdHJpbmcoSlt6XSksQyksdiYmKHR5cGVvZiB2PT09InN0cmluZyI/QS5jbGFzc05hbWU9djpBcnJheS5pc0FycmF5KHYpP0EuY2xhc3NOYW1lPXYuam9pbihvOSgpKTpIWzM2XShRWzFdLCJzdHlsZSIsSyx2LEEpKSwKSi5sZW5ndGg+MiYmUls2XSg1LGJbMF0sYlsyXSwyLDAsSixBLEMpLHA9QSksNSkmMTUpPT0yKWtbNl0oMzEseixLLEopO2lmKChCLTh8NTUpPj0oKEImKEIrNT4+Mz09MiYmVC5jYWxsKHRoaXMseiwwLEwxLlJUKSxRKVswXSk9PUImJihBPUNbQSRdfDAsYj1IWzM1XSgyMywxMjgsQSksQT1ZWzM3XSg0OSxBLEssYixDLHopLFlbUVsyXV0oOTYsSixLLEEsYixDKSksQikmJihCKzNeNik8QilpZih6KXtpZih6PU51bWJlcih6KSxpc05hTih6KXx8ejwwKXRocm93IEVycm9yKCJCYWQgcG9ydCBudW1iZXIgIit6KTtLLmk9en1lbHNlIEsuaT1udWxsO3JldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKHA9WyJnZXRDb250ZXh0IiwxLDI5XSxCPj5wWzFdJjcpPT0yKWZvcihBPVswLDEwXSxKPSh0aGlzLnNpemUrQVswXSkqQVtwWzFdXSx6LndpZHRoPUosei5oZWlnaHQ9SixDPXpbcFswXV0oUjkoKSksYj0tMDtiPHRoaXMuc2l6ZStBWzBdO2IrKylmb3IoSz0tMDtLPAp0aGlzLnNpemUrQVswXTtLKyspQy5maWxsU3R5bGU9dGhpcy5LKEssYik/cm0oKTpWUigpLEMuZmlsbFJlY3QoKEsrQVswXSkqQVtwWzFdXSwoYitBWzBdKSpBW3BbMV1dLEFbcFsxXV0sQVtwWzFdXSk7cmV0dXJuIEItcFsxXT49OSYmKEJ8NSk8cFsyXSYmKHY9VEQoIkNsaWNrIHRoZSBidXR0b24gdG8gc3RhcnQgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzIG9uIHlvdXIgZGV2aWNlLiIpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEJeKChCfDQwKT09KEE9WzIsMjUsIk54Il0sQikmJihiPW1bNF0oQVsxXSx6KT9DW0FbMl1dLnNlbmQoR0wsSyxKKS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBLfSk6bnVsbCksQi00Pj0yMCYmQi00PDMzJiZULmNhbGwodGhpcyx6KSxBKVsxXSkmMTQpPj0xMyYmQj4+MTxBWzFdKXtpZihLPT16KXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSAndGhpcycgdmFsdWUgZm9yIFN0cmluZy5wcm90b3R5cGUuIitDKyIgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKaWYoSiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJGaXJzdCBhcmd1bWVudCB0byBTdHJpbmcucHJvdG90eXBlLiIrQysiIG11c3Qgbm90IGJlIGEgcmVndWxhciBleHByZXNzaW9uIik7Yj1LKyIifXJldHVybigoQj4+QVswXSYxNSk9PTQmJih0aGlzLnY9eiksKEIrM14xOCk+PUIpJiYoQis4XjIzKTxCJiYoQz1bMjUsMzEsMjhdLGI9MTAqSihLKCksQ1tBWzBdXSxDWzFdLENbMF0pK0ooSygpLENbQVswXV0sQ1sxXSwxMikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLTkmKCgoKGI9WzEsMyw0XSxCKXxiWzJdKSY2KT49MiYmQjw8MjwxNyYmKEE9eVszOF0oYlsxXSx2b2lkIDAsQz09ej9DOkRbMl0oMjIsQyksSyxKKSksMTIpKTxiWzBdJiYoQj4+YlswXSYxNSk+PWJbMV0pe2ZvcihKIGluIEM9W10sSyl5WzE3XShiWzJdLHosSixDLEtbSl0pO0E9Qy5qb2luKHpMKCkpfXJldHVybiBCLWJbMV0+PmJbMV09PTImJih0aGlzLndIPXopLEF9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCPDwoUT1bNjQsMTMsNDJdLDIpJlFbMV0pPT00KWE6e2lmKEo9PXope249bVtRWzJdXSg0Myk7YnJlYWsgYX1iPSgoQT1HWzRdKDQseixKLEspLEspLlNSJiZLLkE/dj1LLk0uc3ViYXJyYXkoQSxBK0opOihwPUErSixDPUsuTSx2PUE9PT1wP25ldyBVaW50OEFycmF5KDApOkhoP0Muc2xpY2UoQSxwKTpuZXcgVWludDhBcnJheShDLnN1YmFycmF5KEEscCkpKSx2KSxuPWIubGVuZ3RoPT16P21bUVsyXV0oNDQpOm5ldyBabChiLGVKKX1pZigoQnwoKEImNTgpPT1CJiYoYj1LLmNsKCkpJiYoQz1KLmdldEF0dHJpYnV0ZShQaCl8fHosYiE9QyYmKGI/Si5zZXRBdHRyaWJ1dGUoUGgsYik6Si5yZW1vdmVBdHRyaWJ1dGUoUGgpKSksUVswXSkpPT1CKWE6e2ZvcihiPXo7Sjspe2lmKEMoSikpe249SjticmVhayBhfUo9KGIrKyxKKS5wYXJlbnROb2RlfW49S31yZXR1cm4oQisoKEImNDcpPT1CJiYoSj1KPT09dm9pZCAwPzA6SixuPShDPURbOF0oOTEsCkhbNF0oOTIseixLKSkpIT1udWxsP0M6SiksNikmMTYpPFFbMV0mJihCPDwxJlFbMV0pPj03JiYoYnx8QyE9ej9LLkdKJkMmJkohPSEhKEsuWk0mQykmJihLLlguUWwoSixDLEspLEsuWk09Sj9LLlpNfEM6Sy5aTSZ+Qyk6Sy5nYighSikpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoISgoKChCPj4yJjE1KT09KEI+PjImKEE9WzcsOCwzXSxBKVswXXx8KHY9bmV3IEJEKEsseixKKSksNCkmJlQuY2FsbCh0aGlzLHopLEItNV4zMCk+PUImJkItQVsxXTw8MjxCJiZlWzQ1XSgxMSx6LEssSiw0KSYmeVszM10oNjIseixLLEosNCksQi1BWzJdPj5BWzJdPT1BWzJdJiYoMCxldmFsKSh6KSxCKStBWzBdJkFbMF0pKXtpZihKPShLPUs9PT12b2lkIDA/ZzBbQVsyXV0oMzIsMCk6SyxKPT09dm9pZCAwKT97fTpKLEhbNDRdKDEsSykpSj1LLGI9ZzBbQVsyXV0oMzMsMCk7ZWxzZSBpZih0eXBlb2YgSz09PSJzdHJpbmciJiYvW14wLTldLy50ZXN0KEspKXtpZihiPXdpbmRvd1tpM11bJDAoKV1bS10sCmI9PXopdGhyb3cgRXJyb3IoIkludmFsaWQgc2l0ZSBrZXkgb3Igbm90IGxvYWRlZCBpbiBhcGkuanM6ICIrSyk7fWVsc2UgYj1LO2lmKCEoQz13aW5kb3dbaTNdW1NOKCldW2JdLEMpKXRocm93IEVycm9yKCJJbnZhbGlkIHJlQ0FQVENIQSBjbGllbnQgaWQ6ICIrYik7dj17Y2xpZW50OkMsSkI6Sn19cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChCKygoQl4xNykmKFE9WyJEIiw1LDMxXSwxKXx8SiE9bnVsbCYma1s0OF0oNDIsSyx6LEopLDgpJlFbMl0pPj1CJiYoQitRWzFdJjM5KTxCKXtpZihLJiYheltRWzBdXSl0aHJvdyBFcnJvcigiQ2FuJ3QgY3JlYXRlIHNlY29uZGFyeSBkb21haW4gY2FwYWJsZSBYaHJJbyBvYmplY3QuIik7cD0oKEM9ei5NeSYmIXouUWU/bmV3IHFxKG5ldyBpcSh7VUI6Sn0pKTpuZXcgcXEoei5RZSksQykuQT16W1FbMF1dLEMpfXJldHVybiBCPj4yJlFbMV18fChwPUdbMTNdKDMyLGZ1bmN0aW9uKG4pe2lmKG4uTT09eilyZXR1cm4gbi52KGNyeXB0by5zdWJ0bGUuZGlnZXN0KHlSKCksCmIpLEopO3JldHVybiBBPW5ldyBEYXRhVmlldygodj1uLlgsdikpLG4ucmV0dXJuKEEuZ2V0VWludDMyKEssQykpfSkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYKXtpZigoKCgoKHU9WyExLDE3LDVdLEIpJjExNyk9PUImJihZMC5jYWxsKHRoaXMseixLKSx0aGlzLkQ9dVswXSx0aGlzLkM9dGhpcy5GZz1udWxsKSxCLTQ8PDE+PUImJihCLTZ8NDgpPEIpJiYoWD1SWzEzXSgxMSxIWzI1XSg1NyxPWzldKDIwLHopLEspLFtnWzE2XSgxNCxKKV0pKSxCLTgpJjExKT49MTAmJkIrNDwyNyl7aWYoKCgoKCgoKCgoKFA9KCgoUT0oQz0oQT0oYz0obj0ocT1nWzEyXSg2LChaPVswLDQsMjFdLEopKSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkudmFsdWUpLHEubmV4dCgpLnZhbHVlKSxMPXEubmV4dCgpLnZhbHVlLEM9PT12b2lkIDApP3t9OkMsR1s0MV0oMzgsMTQsbVsxOV0oNDAsMSxEWzQzXSgyOCwyLG5ldyB6bCxiLk0uWC52YWx1ZSkpKSksCm4pJiZtWzIzXSgyMyxuLFEsdVsyXSxsKSxjKSYmbVsyM10oMjYsYyxRLFpbMV0sbCksQSYmbVsyM10oMTksQSxRLDE2LGwpLEwmJm1bMjNdKDMxLEwsUSwyNCxsKSxIWzM5XSg3NSwxLGdbMTRdKDMsY2gpKSkpJiZtWzIzXSgyNCxQLFEsNyxsKSx2PUhbMzldKDc4LFpbMF0sZ1sxNF0oMixTSikpKSYmbVsyM10oMzMsdixRLFpbMl0sbCksQ1tCNy5QMV0pJiZtWzIzXSgyMSxDW0I3LlAxXSxRLDgsbCksQ1tzMi5QMV0pJiZtWzIzXSgyMCxDW3MyLlAxXSxRLDksbCksQ1ttQy5QMV0pJiZtWzIzXSgyMixDW21DLlAxXSxRLDExLGwpLENbdjcuUDFdJiZtWzIzXSgyMCxDW3Y3LlAxXSxRLDEwLGwpLENbSlguUDFdKSYmbVsyM10oMjksQ1tKWC5QMV0sUSwxNSxsKSxDKVtscS5QMV0mJm1bMjNdKDI1LENbbHEuUDFdLFEsdVsxXSxsKSxDW0VsLlAxXSYmSFs0OV0oNTAsMjgsQ1tFbC5QMV0sUSx2b2lkIDAsbCksQylbWDguUDFdJiZIWzQ5XSgyMCwyOSxDW1g4LlAxXSxRLHZvaWQgMCxsKSxiLkwmJgoocj1PWzIzXSgxMCxiLkwueWUoKSxaWzFdKSxtWzIzXSgzMCxyLFEsMjUsbCkpLHA9Yi5DKT09bnVsbD92b2lkIDA6cC5sZW5ndGgpPlpbMF18fCgoVz1iLlUpPT1udWxsP3ZvaWQgMDpXLmxlbmd0aCk+WlswXXx8Yi5CfHxiLmopeD1uZXcgdXEsZj1ZWzMyXSg4MCw0MDk2LHgsYi5DLDEsYTkpLFM9WVszMl0oNzYsNDA5NixmLGIuVSwyLGE5KSxFPVlbMTNdKDEsSyxTLGIuQiksTj1IWzQ0XSg2OCxFLE84LHVbMl0sYi5qKSxhPWtbMTRdKDEzLCEwLFJbNDddLmJpbmQobnVsbCwzMyksYi5BTCxaWzFdLE4sbVs0OV0uYmluZChudWxsLDI3KSx2b2lkIDAsITApLFY9WVsyNV0oMTAsMixaWzFdLGEpLG1bMjNdKDI5LFYsUSwyMCxsKSxiLlU9W10sYi5DPVtdO1g9KGIubyYmbVsyM10oMjgsYi5vLFEseixsKSxRKX1pZihCLXVbMl0+PXVbMl0mJihCfDEpPDIzKWE6e2lmKEM9S1tSZl0sQyE9bnVsbCl7WD1DO2JyZWFrIGF9S1soSj1SWzM1XSg0NCx6LExRLHlbdVsyXV0uYmluZChudWxsLDEyKSwKSyxZW3VbMl1dLmJpbmQobnVsbCwyNykpLEM9Si5Gcj9mdW5jdGlvbihkLHQpe3JldHVybiBJbyhkLHQsSil9OmZ1bmN0aW9uKGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4KXt6OD1bMjEsKFU9WzAsbnVsbCwxXSwwKSw0MV07YTp7SFsxXSg4LDEwMCk7dHJ5e2Zvcig7RFs0N10oMTUsVVsyXSx0KSYmdC5NIT00Oyl3PXQuWCxNPUpbd10sTT09VVsxXSYmKGIzPUouZlgpJiYoaD1iM1t3XSkmJihCOD1tWzhdKDE1LCJudW1iZXIiLFVbejhbMV1dLFVbMl0saCksQjghPVVbMV0mJihNPUpbd109QjgpKSxNIT1VWzFdJiZNKHQsZCx3KXx8a1syNl0oNixVWzFdLHcsZCxEWzI4XSh6OFsyXSxVWzJdLFVbejhbMV1dLHQpKTtpZihKWT15WzIyXSh6OFswXSxkKSlKWS5sZD1KLndRW2g4XTtzdz0hMDticmVhayBhfWNhdGNoKGpOKXtpZihqTiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGpOO31maW5hbGx5e01VPlVbejhbMV1dJiZNVS0tfXN3PXZvaWQgMH1yZXR1cm4gc3d9LApLKVtSZl09QyxoOF09ZG0uYmluZChLKSxYPUN9cmV0dXJuKEJeNDYpPj40fHwodGhpcy5NPXosdGhpcy52PW5ldyBrMCx0aGlzLmJEPXVbMF0sdGhpcy5mYj11WzBdLHRoaXMuZHo9bmV3IHQ4KSxYfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKEJ8KEE9WzgsInN0YXR1c1RleHQiLDU3XSw1KSkmMikmJihiPVs2LDQsIl0iXSxKLlgmJnR5cGVvZiBVbCE9InVuZGVmaW5lZCIpKWlmKEouQyYmUls0Ml0oQVsyXSxKKT09YlsxXSlzZXRUaW1lb3V0KEouZy5iaW5kKEopLHopO2Vsc2UgaWYoZ1szXSg1MSxKLHJfKSxSWzQyXSgyNSxKKT09YlsxXSl7Si5YPSExO3RyeXtpZihZWzQwXSg4MCx6LEopKWdbM10oNTMsSixNcSksZ1szXSg0OSxKLHdtKTtlbHNle0ouTT1iWzBdO3RyeXtDPVJbNDJdKDI1LEopPjI/Si52W0FbMV1dOiIifWNhdGNoKHApe0M9IiJ9R1tKLmk9QysiIFsiK0hbMzVdKDMyLDIsSikrYlsyXSwxNl0oNDAsITAsSil9fWZpbmFsbHl7Z1sxN10oMjIsSyxKKX19cmV0dXJuKEImCjEyMyk9PUImJih2PVJbMTddKDU5LHosQyxrWzNdKEFbMF0pLEssUls0N10uYmluZChudWxsLDMyKSx2b2lkIDAsSikpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZighKChCXjU1KT4+KCgoKG49WyJhVCIsInJlcGxhY2UiLDVdLEItNDw8MTxCKSYmKEIrblsyXSY0Nik+PUImJihnWzQxXSg1MixKKSxiPUpbblswXV0sWVsyNV0oODEsSyxDLGJbQSRdfDAseixiKSxaPUopLEIpJjg5KT09QiYmKFo9SFs4XSg0NCw4Njk4KShIWzhdKDQwLDc4NzcpKEhbOF0oMzYsNDAwNykoeilbblsxXV0oL1xzL2csSTkoKSksLy4qWzxcKFxeQF0oW15cXj5cKV0rKS8pKSksMykpKWE6e2lmKEMhPUspc3dpdGNoKEMuVnkpe2Nhc2UgSjpaPUo7YnJlYWsgYTtjYXNlIC0xOlo9LTE7YnJlYWsgYTtjYXNlIHo6Wj16O2JyZWFrIGF9Wj1LfWlmKCEoKEJeNzApPj40KSlhOntmb3IoQz0ocD0oQT1uZXcgeTYoSiksQS52Lmxlbmd0aCk+MD9BLnY6bG9jYXRpb24uaG9zdG5hbWUsdj1BLlgsCmI9Z1sxMl0oblsyXSxLLlgpLGIubmV4dCgpKTshQy5kb25lO0M9Yi5uZXh0KCkpaWYoUT1DLnZhbHVlLFEuTS50ZXN0KHYpJiZRLnYudGVzdChwKSl7Wj1RO2JyZWFrIGF9Wj16fXJldHVybiBafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCLTReKCgoKEIrKHY9WzMsNDAsInByZXZlbnREZWZhdWx0Il0sMSk+PnZbMF18fHoua2V5Q29kZSE9Mjd8fCh6LnR5cGU9PUY4P3RoaXMuUGg9dGhpcy51KCkudmFsdWU6ei50eXBlPT1CUz90aGlzLnUoKS52YWx1ZT10aGlzLlBoOnoudHlwZT09c1gmJih0aGlzLlBoPW51bGwpLHpbdlsyXV0oKSksKEItdlswXXx2WzFdKTxCKSYmKEItN3wxOCk+PUImJih0aGlzLk09Syx0aGlzLnY9eiksQikmMTA0KT09QiYmKEMudHk9eixiLnYudiYmYi5pfHxiLk54LnNlbmQoaUYsQyksYi5pJiZiLmkucmVzb2x2ZShDKSxPWzJdKDU1LGZ1bmN0aW9uKCl7cmV0dXJuIGIubChDLnJlc3BvbnNlLHp1KX0sQy50aW1lb3V0KkspLEE9Yi5PKHtpZDpudWxsLAp0aW1lb3V0Om51bGwsa0E6MUUzLGJ5Oko/MTpudWxsfSkpLChCKzUmMzMpPj1CJiYoQi0yXjI5KTxCJiYoQT1uZXcgS2YoSyx6KSksMjMpKT49QiYmKEIrdlswXV42KTxCJiYoej1mdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fSxPYmplY3Quc2V0UHJvdG90eXBlT2Yoeix6LnByb3RvdHlwZSksQT16KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigodj1bImkiLDI2LDddLEIpKzImdlsyXSk9PTEmJihiPWI9PT12b2lkIDA/Skw6YixDPUhbNF0oOTAsSixLLHZvaWQgMCx2b2lkIDAsT1swXS5iaW5kKG51bGwsMikpLEE9QyE9ej9DOmIpLEIrMj49dlsxXSYmKChCfDIpJnZbMl0pPHZbMl0mJihwUS5jYWxsKHRoaXMpLHRoaXMuUj1KIT1udWxsP3ouYmluZChKKTp6LHRoaXMuTT1udWxsLHRoaXMuQT1LLHRoaXMuWD0hMSx0aGlzLnY9bnVsbCx0aGlzW3ZbMF1dPTApLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gQi01JigoQiYxMjIpPT0oKEItKHA9ClsxNSw4LDJdLDMpXjE5KT49QiYmKEItNXw2NCk8QiYmKEM9WzgsMCwyNF0sQT1uZXcgQ2YsQS51cGRhdGUoSiksYj1BLmRpZ2VzdCgpLHY9KGJbQ1sxXV08PENbcFsyXV18YlsxXTw8enxiW3BbMl1dPDxDWzBdfGJbS10pPj4+Q1sxXSksQikmJlQuY2FsbCh0aGlzLHopLDYpfHxici5jYWxsKHRoaXMscFsxXSxBTCksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXtpZigoVj1bMCwxMDIzLDU2MzIwXSwoQi04JjExKT09MikmJnRoaXMudiYmKHRoaXMuaT16LHRoaXMuTXx8KHRoaXMuc3RhdHVzPXRoaXMuaS5zdGF0dXMsdGhpcy5zdGF0dXNUZXh0PXRoaXMuaS5zdGF0dXNUZXh0LHRoaXMuTT16LmhlYWRlcnMsdGhpcy5yZWFkeVN0YXRlPTIsRFsxOF0oMzMsdGhpcykpLHRoaXMudiYmKHRoaXMucmVhZHlTdGF0ZT0zLERbMThdKDM2LHRoaXMpLHRoaXMudikpKWlmKHRoaXMucmVzcG9uc2VUeXBlPT09ImFycmF5YnVmZmVyIil6LmFycmF5QnVmZmVyKCkudGhlbih0aGlzLng5LmJpbmQodGhpcyksCnRoaXMuYXcuYmluZCh0aGlzKSk7ZWxzZSBpZih0eXBlb2YgR2wuUmVhZGFibGVTdHJlYW0hPT0idW5kZWZpbmVkIiYmImJvZHkiaW4geil7aWYoKHRoaXMuWD16LmJvZHkuZ2V0UmVhZGVyKCksdGhpcykuUil7aWYodGhpcy5yZXNwb25zZVR5cGUpdGhyb3cgRXJyb3IoJ3Jlc3BvbnNlVHlwZSBtdXN0IGJlIGVtcHR5IGZvciAic3RyZWFtQmluYXJ5Q2h1bmtzIiBtb2RlIHJlc3BvbnNlcy4nKTt0aGlzLnJlc3BvbnNlPVtdfWVsc2UgdGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD0iIix0aGlzLlc9bmV3IFRleHREZWNvZGVyO0RbNV0oOCx0aGlzKX1lbHNlIHoudGV4dCgpLnRoZW4odGhpcy5Dei5iaW5kKHRoaXMpLHRoaXMuYXcuYmluZCh0aGlzKSk7aWYoIShCLTkmMTUpKXtpZigoUT1bNjU1MzYsNjMsMzFdLEpbVlswXV0pIT09dlMpdGhyb3cgMTtmb3Iocj0oZj1nWzMxXSg0MSxWWzBdLGtbNDVdKDEyLEouc2xpY2UoMSkpLEMudG9TdHJpbmcoKSxSbyksTD1WWzBdLFYpWzBdLApXPVtdO3I8Zi5sZW5ndGg7KXg9ZltyKytdLHg8MTI4P1dbTCsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHgpOng+MTkxJiZ4PEs/KHY9ZltyKytdLFdbTCsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKCh4JlFbMl0pPDw2fHYmUVsxXSkpOng+MjM5JiZ4PDM2NT8oTj1mW3IrK10scD1mW3IrK10sWj1mW3IrK10sbj0oKHgmeik8PDE4fChOJlFbMV0pPDwxMnwocCZRWzFdKTw8NnxaJlFbMV0pLVFbVlswXV0sV1tMKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKG4+PjEwKSksV1tMKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoVlsyXSsobiZWWzFdKSkpOihiPWZbcisrXSxBPWZbcisrXSxXW0wrK109U3RyaW5nLmZyb21DaGFyQ29kZSgoeCYxNSk8PDEyfChiJlFbMV0pPDw2fEEmUVsxXSkpO1A9Vy5qb2luKCIiKX1yZXR1cm4gQi0oKEJ8NCk8MTAmJkIrMz4+Mz49VlswXSYmVC5jYWxsKHRoaXMseiksNCk+PjM9PTEmJihBPVtudWxsLCIiLCExXSxLPUFbMl0seiYmeiBpbnN0YW5jZW9mIEVsZW1lbnQmJgooSz0oQVsxXSsoKGI9ei5pZCkhPUFbVlswXV0/YjoiIikrKChKPXouY2xhc3NOYW1lKSE9QVtWWzBdXT9KOiIiKSsoKEM9ei50ZXh0Q29udGVudCkhPUFbVlswXV0/QzoiIikpLm1hdGNoKFR1KSE9QVtWWzBdXSksUD1LP2p1KCk6bWcoKSksUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKFc9WyJpc0FycmF5IiwicHVzaCIsMThdLEItOTw8MSk8QiYmQi0zPDwxPj1CKWE6e2lmKHY9UlsxNF0oNjksbnVsbCwoQT1IWzM1XSgyNCwobj1DW1E9WzM0LDEsMF0sQSRdfFFbMl0seiksbiksQSksSyxDKSx2IT1udWxsJiZ2W2pUXT09PW5oKXtpZigheVsyXSg0LHYpKXtZW1dbMl1dKDQsUVsyXSx2KSxaPXYuYVQ7YnJlYWsgYX1wPXYuYVR9ZWxzZSBBcnJheVtXWzBdXSh2KSYmKHA9dik7KHAmJihiPXBbQSRdfFFbMl0sYiYyJiYocD1PW1dbMl1dKDI4LFFbMF0sYixwKSkpLHA9Z1syMl0oMTYsUVsxXSxwLEopLHApIT09diYmWVsyNV0oNTAscCxLLG4sQSxDKSxaPXB9cmV0dXJuKChCfAo0MCk9PUImJihKPW5nKERbMjNdLmJpbmQobnVsbCw3KSx6KSxLLm0/SigpOihLLlB8fChLLlA9W10pLEsuUFtXWzFdXShKKSkpLEItNjw8MT49QiYmKEItNHwxMSk8QikmJih0aGlzLlg9Syx0aGlzLk09ITAsdGhpcy5pPW51bGwsdGhpcy52PXopLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihCfCgocD1bNDUsMiw0XSwoQitwWzFdXjcpPEIpJiYoQi1wWzFdfDEyKT49QiYmKHRoaXMudj16KSw3KSk+PnBbMl18fCh2PXouc3R5bGUsYj16LkdRLEo9ei5QbyxLPUhbcFswXV0oMTIscGYoKSxiLGltKCksY2YoKSksQz1IW3BbMF1dKDEyLFFHKCksSixpbSgpLGNmKCkpLEE9SFtwWzBdXSg3NixuZigpLHYsaW0oKSxjZigpKSxRPU9bNDBdKDk4LGdbMjVdKHBbMl0sT1s0MF0oOTksYVooKSwnPGRpdiBjbGFzcz0iZ3JlY2FwdGNoYS1iYWRnZSIgZGF0YS1zdHlsZT0iJytSWzExXSg3MSxBKSsnIj48ZGl2IGNsYXNzPSJncmVjYXB0Y2hhLWxvZ28iPjwvZGl2PjxkaXYgY2xhc3M9ImdyZWNhcHRjaGEtZXJyb3IiPjwvZGl2PicpLApEWzE4XShwWzFdLEMsSykpLElmKCkpKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKCgoZj1bNDVFMywoKEJ8OCk8MjImJkI8PDE+PTExJiYoTD1kb2N1bWVudC5VUkwpLDMpLCJub3ciXSxCKzZeMzApPEImJihCLTZ8NzMpPj1CJiYoTD1EWzIwXSgzMyx6KSksQitmWzFdJjcwKT49QiYmKEIrMSYyNyk8Qil7Zm9yKG49KHg9KFo9KEEudj17Y2hhbm5lbDpiKGZ1bmN0aW9uKHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgsdm8sdTMsbEwsYXAsUVMsRjIsUHEsVVIsY28sTW0scGgseXEsaDMsV28sUSQsb3AsS2gsQm8pe2Zvcih2bz0oVDg9SFsxMl0oMjQsKEJvPSh5cT1bMiwxLG51bGxdLFsyLDEwLDM2XSkscikseXFbMV0sV1Msa1szXSg5KSksZ1sxMl0oMyxUOCkpLGpOPXZvLm5leHQoKTshak4uZG9uZTtqTj0Kdm8ubmV4dCgpKWlmKGg9ak4udmFsdWUsYT1BLGEudiE9eXFbQm9bMF1dJiYoYS52LnJ6PUMpLGEuRj0wLFU9RFsyMl0oMzAseXFbMV0saCksVSE9eXFbQm9bMF1dKWlmKHBoPU51bWJlcihVKSxnWzMwXSg3Mix5cVtCb1swXV0saCxKLGdpLE5LKSl7YTp7aWYobWw9bVsxMl0oNzgsSixnaSxoLE5LKSlpZihRJD1SWzQ4XSg3NCxtbCxPWCx5cVsxXSkpe1Y9USQ7YnJlYWsgYX1WPXZvaWQgMH1WJiYodD1hLGZEPVYsbEw9cGgsVzg9dC5zdHJlYW1zLmdldChsTCkpJiYoRFs4XSg3NCxIWzRdKDk1LHlxWzFdLGZEKSk9PT0wP1c4Lk0uY29tcGxldGUoKTpXOC5NLmVycm9yKHQuWC5mYj9uZXcgeFcoZkQpOmZEKSx0LnN0cmVhbXNbImRlbGV0ZSJdKGxMKSl9ZWxzZSBpZihiTD1tWzEyXSg1MCx5cVswXSxEQSxoLE5LKSlzd2l0Y2goSFsyNV0oQm9bMV0seXFbQm9bMF1dLGJMLGZmKSl7Y2FzZSB5cVsxXTppZigoUVM9KGNvPShyMD0oUHE9KFVSPShKWT1hLG0pWzEyXSgxOCx5cVsxXSxvdyxiTCwKZmYpLGUpWzMyXSg2MixVUix5cVsxXSksUlo9SlksZzBbNl0oQm9bMV0seXFbMV0sUHEpKSxwaCksUlopLnN0cmVhbXMuZ2V0KGNvKSxRUylpbnN0YW5jZW9mIEtuKXt0cnl7UVMuTS5uZXh0KG5ldyBMZil9Y2F0Y2goZmgpe31SWi5zdHJlYW1zLnNldChjbyxRUy5zdGFydChyMCkpfWJyZWFrO2Nhc2UgSjphOntpZihuRD1tWzEyXSgxOCxKLFJ3LGJMLGZmKSlpZihYPURbMjJdKDQ2LHlxWzFdLG5EKSxYIT15cVtCb1swXV0pe0c4PW5ldyByaShPW0JvWzJdXSgyMCx5cVsxXSxYKSk7YnJlYWsgYX1HOD12b2lkIDB9aWYoRzgmJihCOD1HOCxoMz1hLnN0cmVhbXMuZ2V0KHBoKSxoMyBpbnN0YW5jZW9mIGxGKSl7KGIzPShYaD1oMyxCOCkudixiMyk+WGguaSYmKFhoLlI9QyxYaC5pPWIzKTt0cnl7aDMuTS5uZXh0KEI4KX1jYXRjaChmaCl7fX1icmVhaztjYXNlIHlxWzBdOmlmKCEoWkc9YS5zdHJlYW1zLmdldChwaCksWkcgaW5zdGFuY2VvZiBsRikpYnJlYWs7aWYoUXE9bVsxMl0oNjIsCnlxWzBdLFZHLGJMLChNPVpHLnYsZmYpKSl7Zm9yKHRZPShjPWdbMTJdKDksKHN3PW5ldyBHdSxIWzEyXSgxNSxRcSx5cVsxXSxIUyxrWzNdKDcpKSkpLGMpLm5leHQoKTshdFkuZG9uZTt0WT1jLm5leHQoKSl1Mz10WS52YWx1ZSxsMz1SWzQ4XSg3NCx1MyxldSw2KSxLaD1EWzIyXSgyMixKLHUzKSxsMyYmS2ghPXlxW0JvWzBdXSYmKHE9dm9pZCAwLFA9KHE9SFs0XSg5MSx5cVswXSx1Myx2b2lkIDAsdm9pZCAwLGVbMzVdLmJpbmQobnVsbCw0KSkpPT15cVtCb1swXV0/dm9pZCAwOm5ldyBVaW50OEFycmF5KGdbMzBdKEJvWzFdLHlxWzBdLHEpfHwwKSx3PVA9PXlxW0JvWzBdXT92b2lkIDA6UCwoUz1tWzE1XSg2Nyx5cVtCb1swXV0sNywzLDExLGwzLE0pKSYmc3cuYWRkKG5ldyBQUyhTLE9bQm9bMl1dKDIwLHlxWzFdLEtoKSx3LCEhT1sxNF0oMTMseXFbQm9bMF1dLEhbNF0oOTIsSyx1MykpLCEhT1sxNF0oMTMseXFbQm9bMF1dLEhbNF0oODkseix1MykpKSkpO29wPXN3fWVsc2Ugb3A9CnZvaWQgMDtpZihvcClmb3IoRjI9WkcsV289Z1sxMl0oMTIsb3AudiksZks9V28ubmV4dCgpOyFmSy5kb25lO2ZLPVdvLm5leHQoKSl7YXA9bmV3IFBTKCh2OD1mSy52YWx1ZSx2OC5YKSx2OC52ZXJzaW9uLHY4LmRRLHY4Lk0sdjgudik7dHJ5e0YyLk0ubmV4dChhcCl9Y2F0Y2goZmgpe319YnJlYWs7Y2FzZSA1OmlmKElaPWEsdT1JWi5zdHJlYW1zLmdldChwaCkpe3UgaW5zdGFuY2VvZiBsRiYmKHlbNDVdKDM1LDAsSVopLChvWj1nWzM4XSg3Myx1LElaKSk/KG9aLnY9dS5pLG9aLk09QyxvWi5YPURhdGUubm93KCkpOklaLlIucHVzaChuZXcgJFcodS5pLHUuWCx1LnYpKSk7dHJ5e3UuTS5jb21wbGV0ZSgpfWNhdGNoKGZoKXt9fX1pZihHW0JvWzJdXSgxNywwLHlxWzBdLHIscUspKXN3aXRjaChkPVJbNDhdKDcwLHIscUsseXFbMF0pLGdbMTZdKDg5LHZvaWQgMCxkLHlxWzFdKSl7Y2FzZSB5cVsxXTpmb3IoS0s9Z1sxMl0oMyxBLnN0cmVhbXMudmFsdWVzKCkpLHo4PUtLLm5leHQoKTshejguZG9uZTt6OD0KS0submV4dCgpKXo4LnZhbHVlLkE9SjtBLnYmJkEudi5jaGFubmVsLmNsb3NlKCl9R1tCb1syXV0oMTMsMCxKLHIsaXIpJiZBLnYmJihFPUEudixNbT1SWzQ4XSg3MCxyLGlyLEopLHBEPVlbMzRdKDMseXFbMV0sTW0pLEUuSmU9cEQsQS52LlJ3PURhdGUubm93KCksQS5PfHwoZ1s0OV0oMSwwLHlxWzBdLEEpLEEuTz1DKSl9LEEsKEEuTShuZXcgWkEpLEEuaS51bnNoaWZ0KERhdGVbZlsyXV0oKSksdi5qRikpLHNsOnYuc2wsakY6di5qRixyejohMX0sQXJyYXkuZnJvbShBLnN0cmVhbXMuZW50cmllcygpKSksWi5zb3J0KGZ1bmN0aW9uKHIsVil7cmV0dXJuIHJbMF0tVlswXX0pLGcpWzEyXSgxLFopLHgpLm5leHQoKTshbi5kb25lO249eC5uZXh0KCkpTj1nWzEyXSgxLG4udmFsdWUpLFc9Ti5uZXh0KCkudmFsdWUscD1OLm5leHQoKS52YWx1ZSxHWzRdKDE4LDQsQSxwLFcpO09bMl0oNTUsZnVuY3Rpb24oKXtBLnY9PT1RJiZBLkMucmVzZXQoKX0sKFE9QS52LGZbMF0pKX1pZigoQi0yXgozMSk+PUImJihCKzQmMjcpPEIpZm9yKEo9eixDPURhdGVbZlsyXV0oKTtKPEsuUi5sZW5ndGg7KUM+PUsuUltKXS5YKzZFND9LLlIuc3BsaWNlKEopOisrSjtyZXR1cm4gTH0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKEJeMzkpJjEzKT09KCgoKEo9WzUsMSwidiJdLEItSlswXSk+PjR8fChDPVREKCI8Y2VudGVyPllvdXIgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgYXVkaW8uIFBsZWFzZSB1cGRhdGUgb3IgdXBncmFkZSB5b3VyIGJyb3dzZXIuPC9jZW50ZXI+IikpLEIpXjIxKT4+NHx8KEM9dGhpc1t6XSksSlsxXSkmJih0aGlzW0pbMl1dPUs+Pj4wLHRoaXMuTT16Pj4+MCksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKEItND4+KChCJigoQi01JjcpPT0ocD1bMjYsOTcsMjVdLDIpJiYodj1HWzEzXShwWzJdLGZ1bmN0aW9uKFEsbil7cmV0dXJuIFEucmV0dXJuKFByb21pc2UuYWxsKCh6PU9bMjhdKDQzLE9bMjhdKDM3LChuPVs4LDQ3LDkzMThdLEgpW25bMF1dKDM2LAo4MTU5KSxPWzI4XShuWzFdLE9bMjhdKDUzLEhbblswXV0oMTIsNjM5KSxIW25bMF1dKDEyLDkxOTYpKSxIW25bMF1dKDMyLG5bMl0pKSksSFtuWzBdXSgzMiw4NzcyKSksei5tYXAoZnVuY3Rpb24oWil7cmV0dXJuIERbMjRdKDU2LFopKCl9KSkpLnRoZW4oZnVuY3Rpb24oWil7cmV0dXJuIFoubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBXLm91KCl9KS5yZWR1Y2UoZnVuY3Rpb24oVyxOKXtyZXR1cm4gVytOLnNsaWNlKDAsMil9LCIiKX0pKX0pKSw3NSkpPT1CJiYoR1syOV0oMjAsbnVsbCl8fChZWzBdKDE1LHRoaXMudix0aGlzLnUoKSx5Ryx0aGlzLldGKSx0aGlzLlBoPW51bGwpLHRoaXMuT2M9ITEsSFszOF0ocFswXSxudWxsLHRoaXMpKSwzKT49MiYmKChCfDgpJjE2KTwxNSlhOntpZihKWzBdPT09Ii0iP2I9ITE6KEM9Si5sZW5ndGgsYj1DPFlXPyEwOkM9PT1ZVyYmSjw9Y1MpLGIpe3Y9SjticmVhayBhfXY9KEdbcFsyXV0oNzIsSyxKKSxrKVtwWzBdXSgzMSx6LE9PLHhPKX1pZigoQnwKMyk+PSgoQisxJjE0KT09NCYmKGI9WyIgIiwnPGRpdiBjbGFzcz0iJywnIj48L2Rpdj48L2Rpdj4nXSxYcigpLGltKCksdW0oKSxhZigpLGltKCksdW0oKSxBPU9bNDBdKDk5LGFaKCksYlsxXStSWzExXSg3MSwicmMtYW5jaG9yLW5vcm1hbC1mb290ZXIiKSt6KSxDPVREKGJbMV0rUlsxMV0oNzEsInJjLWFuY2hvci1sb2dvLWxhcmdlIikrJyIgcm9sZT0icHJlc2VudGF0aW9uIj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLWFuY2hvci1sb2dvLWltZyIpK0srUlsxMV0oNzMsInJjLWFuY2hvci1sb2dvLWltZy1sYXJnZSIpK2JbMl0pLHY9T1s0MF0ocFsxXSxnW3BbMl1dKDM1LGdbcFsyXV0oNCxBLEMpLGdbMTZdKDQwLGJbMF0sSikpLElmKCkpKSwxMikmJkItNDwxOSlhOntpZigoKEM9KGI9KEo9ei5vZmZzZXRXaWR0aCx6KS5vZmZzZXRIZWlnaHQsa2UmJiFKJiYhYiksSj09PXZvaWQgMCl8fEMpJiZ6LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dj0oSz1lWzEyXSg4LHopLG5ldyBibShLLnJpZ2h0LQpLLmxlZnQsSy5ib3R0b20tSy50b3ApKTticmVhayBhfXY9bmV3IGJtKEosYil9cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEImKChCfCh2PVsidiIsMiwwXSw0OCkpPT1CJiYoSz1bbnVsbCwzMiwzXSxrWzE2XSg2MCx0aGlzLk8pLEo9ZGsuSigpLmdldCgpLGI9dGhpcy5NW3ZbMF1dLkIxLGI9PT1hZyYmWVsxOV0oNjksS1sxXSxKKXx8Yj09PVN1JiZZWzE5XSg0LDMzLEopfHwoQz10aGlzLkkuYmluZCh0aGlzKSx0aGlzW3ZbMF1dW3ZbMF1dLmR0KCk9PW02P3RoaXNbdlswXV1bdlswXV0ud3QobmcoQyxLW3ZbMl1dKS5iaW5kKHRoaXMpLHRoaXNbdlswXV0uVTMoKSwhMCk6KCh6PXRoaXNbdlswXV0uaVt2WzBdXSk9PUtbdlsyXV0/MDpSWzI2XSgxMyx6LEtbdlsxXV0sbCkpP3RoaXNbdlswXV0uaS5leGVjdXRlKCkudGhlbihDLGZ1bmN0aW9uKCl7cmV0dXJuIEMoKX0pOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oQykpKSwxMTUpKT09QiYmKEo9WzE1LDEwNzM3MDkwNTYsCjFdLGI9ej4+PkpbdlsxXV0sQz10aGlzLkgxKGIpLHRoaXMucXgoYix6JkpbdlsxXV0/QyYzMjc2N3xLPDxKW3ZbMl1dOkMmSlsxXXxLJjMyNzY3KSksKEImMTA5KT09Qil7Zm9yKEM9dlsyXTtDPEoubGVuZ3RoO0MrKylLPShLPDx6KS1LK0ouY2hhckNvZGVBdChDKXx2WzJdO0E9S31yZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihCfCgoYj1bMjYsImtXIiw4OV0sKEJeMjcpPj0yMCkmJkIrNTwyMiYmKEo9Z1tiWzBdXShiWzJdLExSLkooKSxLKSx6W2JbMV1dLnB1c2guYXBwbHkoeltiWzFdXSxlWzMzXSgzLEopKSxDPUopLDgpKT09QiYmKHRoaXMuTT1ZWzM0XSg2LDEseiksdGhpcy5YPW1bMV0oMTYseiw3KT09Mj9scigpOkVYKCksdGhpcy52PW5ldyBYRSx0aGlzLnYuYWRkKG5ldyB1cihEWzE4XSg0NSxlWzMyXSg1Nyx6LDQpKSkpKSxDfV19KCksRD1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4oQj4+CihXPVs5LDE4LDI3XSwxKSY3fHxULmNhbGwodGhpcyx6KSxCKS1XWzBdPDwyPEImJihCKzImMjgpPj1CJiYodj1raC5KKCkudigpLG49di5MRCxRPUdbNDRdKFdbMl0sSyxDLGIsdi5SQSkscD1IWzJdKDk5LEosT1szOV0oV1sxXSx6LFEpLG4pLFo9bmV3IGF3KEEscCkpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChCKzkmKCgoQnwoWj1bNDQsKEItMj4+M3x8KHRoaXMuQT0xLHRoaXMuTT1LLHRoaXMuWD16LHRoaXMudj1KKSwxOSksMzJdLChCfDU2KT09QiYmKEM9Sy5hVCxKPUNbQSRdfHosVz15WzJdKDQsSyxKKT9lWzMwXShaWzFdLFpbMl0sQyxKLEspP2dbWlswXV0oMzQsQyxLLCEwKTpuZXcgSy5jb25zdHJ1Y3RvcihPWzE4XSgxMiwzNCxKLEMsITEpKTpLKSwoQnw3Mik9PUImJihXPXouTT8xOnoudj96LnYuc2l6ZTowKSwyKSkmNyk9PTMmJihXPUdbMTNdKDMzLGZ1bmN0aW9uKE4seCxmLEwscixWKXtpZihOLk09PShmPVs0LDEwLChWPVsyMywwLAoib25FcnJvciJdLDApXSwxKSlyZXR1cm4geD1uZXcgaEwsTD1KLlUzKCkscj1tW1ZbMF1dKDI3LEwseCx6KSxBPW1bVlswXV0oMzEsSyxyLGZbMV0pLE4uQSh6KSxOLnYoSi5GLnNlbmQobmV3IGRpKEEpKSxmW1ZbMV1dKTtpZihOLk0hPXope2lmKCFEWzZdKDI3LChDPU4uWCx0TCkpKEMpKXJldHVybiBKLk1bVlsyXV0oMSksTi5yZXR1cm4oKTtpZighQy5VMygpKXJldHVybiBKLk1bVlsyXV0oZlsyXSksTi5yZXR1cm4oKTtyZXR1cm4oSi5SKEMpLE4pLkYoZlsyXSl9aWYoKGI9Ti5pKCksYilpbnN0YW5jZW9mIFVYKUouTVtWWzJdXShmW1ZbMV1dKTtlbHNlIEouTVtWWzJdXShmWzJdKTtOLlIoKX0pKSw2KSk9PTIpR1sxM10oOSxmdW5jdGlvbihOKXsoYj1uZXcgKHY9T2JqZWN0LmFzc2lnbih7fSxDLHthTjoobj0oUT1KKT09ej92b2lkIDA6US52KSE9ej9uOm51bGwsbHk6KHA9KEE9Sik9PXo/dm9pZCAwOkEuTEQpIT16P3A6bnVsbH0pLE1LKSh2KSxLLlIpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIHguc2VuZCh3aSwKYil9KSxOLlIoKX0pO3JldHVybiBXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCLTF8MzEpPj0oZj1bNyw1NCwwXSxCKSYmKEIrZlswXV4yOCk8Qil7aWYodHlwZW9mIHohPT0ibnVtYmVyIil0aHJvdyBlWzZdKDIwLEl3KCkpO2lmKCFGRSh6KSlzd2l0Y2goQlQpe2Nhc2UgMjp0aHJvdyBlWzZdKGZbMV0sSXcoKSk7Y2FzZSAxOllbMTVdKDQ4LEl3KCkpfUw9QlQ9PT0yP3o+Pj5mWzJdOnp9aWYoKEJ8Mik8MjEmJigoQnwzKSYxMSk+PTkpe2lmKFE9KHg9YiYoQT1KLmxlbmd0aCxLKT8wOi0xLCEhQSkpTj1KW0Etel0sUT1OIT1udWxsJiZ0eXBlb2YgTj09PSJvYmplY3QiJiZOLmNvbnN0cnVjdG9yPT09T2JqZWN0O2ZvcihuPUErKHY9YiZLPzE6MCxXPVEsVz8tMTowKTt2PG47disrKUModi14LEpbdl0pO2lmKFcpZm9yKHAgaW4gWj1KW0Etel0sWikhaXNOYU4ocCkmJkMoK3AsWltwXSl9cmV0dXJuKEImNTMpPT1CJiYodGhpcy5BdT0xNUUzKSwKTH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEImKChiPVswLCJYIiwiQSJdLChCPDwxJjEyKT49OSkmJkIrNz4+NTw0JiYoSj1zSCxLPVswXSx0eXBlb2YgSj09PSJzdHJpbmciPyh0aGlzW2JbMV1dPUo9PXo1P3o6MCx0aGlzLmk9Sj09c0g/ejowLHRoaXMuUj1KPT1LYj96OjAsdGhpc1tiWzJdXT1KPT1KNj96OjAsdGhpcy52PUo9PUNiP3o6MCx0aGlzLk09Sj09Yjk/ejowKToodGhpcy52PUtbYlswXV0sdGhpcy5SPUp8fEtbYlswXV0sdGhpc1tiWzJdXT16fHxLW2JbMF1dLHRoaXMuTT1LW2JbMF1dLHRoaXMuaT1LW2JbMF1dLHRoaXNbYlsxXV09S1tiWzBdXSkpLDEyNikpPT1CJiYodGhpcy52PXosdGhpcy5NPUspLChCfDE2KT09QiYmKHRoaXNbYlsyXV09Six0aGlzLk09eix0aGlzW2JbMV1dPUMsdGhpcy5pPUspLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQpe2lmKCEoKChYPVs2RTMsIk0iLAowXSxCKXw1Nik9PUImJihkPW5ldyBCRChLLHosSikpLEI8PDEmMTUpKXtaPVsiSGFuZHNoYWtlIFJUVDogIiwxMSw1XTt0cnl7aWYoUT1KLmksUVtYWzFdXSE9WFsyXSYmKFEudj09Snx8R1s0NV0oMjMsUS5YLEopKSlpZighSi5qJiZHWzQ1XSg1NixRLlgsSikmJlFbWFsxXV09PTMpe3RyeXtBPVEucGcudi5wYXJzZShLKX1jYXRjaCh0KXtBPW51bGx9aWYoQXJyYXkuaXNBcnJheShBKSYmQS5sZW5ndGg9PTMpe2lmKHY9QSx2W1hbMl1dPT1YWzJdKWE6aWYoQTYoKSxRLlcpdlQoKTtlbHNle2lmKFEudilpZihRLnYuUCszRTM8Si5QKU9bMTBdKDIzLG51bGwsUSksWVszNV0oNCxudWxsLFEpO2Vsc2UgYnJlYWsgYTtlbHNlIFQ1KCk7RFs5XSgzLCExLFEpLEhbNDZdKDEwLDE4KX1lbHNlIFEua1c9dlsxXSxYWzJdPFEua1ctUS5nJiZ2WzJdPDM3NTAwJiZRLkgmJlEubT09WFsyXSYmIVEuQyYmKFEuQz1nW1hbMl1dKDUwLFJ4KFEuSk8sUSksWFswXSkpO2lmKERbMV0oNzIsUS5YKTw9MSYmClEubFkpe3RyeXtRLmxZKCl9Y2F0Y2godCl7akIoKX1RLmxZPXZvaWQgMH19ZWxzZSBwYigpLGVbMV0oMjUsWFsyXSxaWzFdLFEpfWVsc2UgaWYoKEouanx8US52PT1KKSYmT1sxMF0oMTcsbnVsbCxRKSwhUlsyXSg0LEspKWZvcihOPVEucGcudi5wYXJzZShLKSx4PVhbMl07eDxOLmxlbmd0aDt4KyspaWYoYj1OW3hdLHU9YltYWzJdXSwhKHU8PVEuZykpaWYoYj1iWzFdLFEuZz11LFFbWFsxXV09PTIpaWYoYltYWzJdXT09ImMiKXtpZihxPSgoQz0oKGM9KHI9KFEuUz1iWzFdLGIpWzNdLFEucHE9YlsyXSxyIT1udWxsJiYoUS5XMT1yLFEuQS5pbmZvKCJWRVI9IitRLlcxKSksYls0XSksYyE9bnVsbCkmJihRLm96PWMsUS5BLmluZm8oIlNWRVI9IitRLm96KSksYilbWlsyXV0sQyE9bnVsbCYmdHlwZW9mIEM9PT0ibnVtYmVyIiYmQz5YWzJdKSYmKEw9eipDLFEuST1MLFEuQS5pbmZvKCJiYWNrQ2hhbm5lbFJlcXVlc3RUaW1lb3V0TXNfPSIrTCkpLEU9USxKLnYpKXtpZihXPXEudj9xLnYuZ2V0UmVzcG9uc2VIZWFkZXIoUWEpOgpudWxsKVY9RS5YLGY9VywhVi52JiYoRFsyMF0oMjIsInNwZHkiLGYpfHxEWzIwXSgxOCwicXVpYyIsZil8fERbMjBdKDIyLCJoMiIsZikpJiYoVi5pPVYuQSxWLnY9bmV3IFNldCxWW1hbMV1dJiYoT1szOF0oMjEsVixWW1hbMV1dKSxWW1hbMV1dPW51bGwpKTtFLlAmJigoUz1xLnY/cS52LmdldFJlc3BvbnNlSGVhZGVyKG5iKTpudWxsKT8oRS5mcT1TLG1bOV0oMTMsRS5qLEUuUCxTKSk6WngoKSl9aWYoKGE9KFA9KCgoUVtYWzFdXT0zLFEpLlImJlEuUi5OWigpLFEpLkpMJiYoUS5GZz1EYXRlLm5vdygpLUouUCxRLkEuaW5mbyhaW1hbMl1dK1EuRmcrIm1zIikpLEopLFEpLGEpLktxPWdbMjFdKDE2LCIiLCIuIixhLmlZLGEsYS5EP2EucHE6bnVsbCksUC5qKVdUKCksWVszOV0oMzQsbnVsbCxhLlgsUCksbj1QLChwPWEuSSkmJm4uc2V0VGltZW91dChwKSxuLm8mJihSWzIxXSgxLG51bGwsbiksZVszNF0oMzUsbikpLGEudj1QO2Vsc2UgR1syMV0oMiwhMCxYWzJdLGEpO1EuaS5sZW5ndGg+ClhbMl0mJmtbMjRdKDMsWFsyXSxRKX1lbHNlIGJbWFsyXV0hPSJzdG9wIiYmYltYWzJdXSE9ImNsb3NlInx8ZVsxXSgyNyxYWzJdLDcsUSk7ZWxzZSBRW1hbMV1dPT0zJiYoYltYWzJdXT09InN0b3AifHxiW1hbMl1dPT0iY2xvc2UiP2JbWFsyXV09PSJzdG9wIj9lWzFdKDU4LFhbMl0sNyxRKTpnWzQ1XSgxLG51bGwsUSk6YltYWzJdXSE9Im5vb3AiJiZRLlImJlEuUi5nUShiKSxRLm09WFsyXSk7ZzBbNV0oNyw0KX1jYXRjaCh0KXtnbygpfX1yZXR1cm4gQj4+KChCLShCLTk8MTEmJkIrOD4+Mz49MSYmKE5QLmNhbGwodGhpcyx6KSx0aGlzW1hbMV1dPSExKSw2KSYxNSk9PTEmJihKPUo9PT12b2lkIDA/MjpKLGQ9R1szMl0oMjcsMzYsWFsyXSxrWzM2XSgxLFhbMl0sMTYsSykpLnNsaWNlKHosSikpLDEpJjE0fHwoSj16LnJULEs9Wyc8ZGl2IGlkPSJyYy1hdWRpbyIgYXJpYS1tb2RhbD0idHJ1ZSIgcm9sZT0iZGlhbG9nIj48c3BhbiBjbGFzcz0iJywiICIsJyIgdGFiSW5kZXg9IjAiPjwvc3Bhbj48L2Rpdj4nXSwKZD1PWzQwXSg5OCxnWzI1XSg2NyxPWzQwXSg5OCxhWigpLEtbWFsyXV0rUlsxMV0oNzMsInJjLWF1ZGlvY2hhbGxlbmdlLXRhYmxvb3AtYmVnaW4iKSsnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWF1ZGlvY2hhbGxlbmdlLWVycm9yLW1lc3NhZ2UiKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIiB0YWJJbmRleD0iMCI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYXVkaW9jaGFsbGVuZ2UtaW5zdHJ1Y3Rpb25zIikrJyIgaWQ9IicrUlsxMV0oNyxKKSsnIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtYXVkaW9jaGFsbGVuZ2UtY29udHJvbCIpKyciPjwvZGl2PjxkaXYgaWQ9IicrUlsxMV0oOSwicmMtcmVzcG9uc2UtbGFiZWwiKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLWF1ZGlvY2hhbGxlbmdlLWlucHV0LWxhYmVsIikrCiciIGlkPSInK1JbMTFdKDM5LCJyYy1yZXNwb25zZS1pbnB1dC1sYWJlbCIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzMsInJjLWF1ZGlvY2hhbGxlbmdlLXJlc3BvbnNlLWZpZWxkIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkIikrJyI+PC9kaXY+JyksRFszMF0oMTUsS1sxXSkpLCc8c3BhbiBjbGFzcz0iJytSWzExXSg3MywicmMtYXVkaW9jaGFsbGVuZ2UtdGFibG9vcC1lbmQiKStLWzJdKSksZH0sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEIrKEo9WzQsOCwiYXciXSxCLTc+PjM+PTAmJkItSlsxXTwxNiYmei5YLnJlYWQoKS50aGVuKHouclguYmluZCh6KSkuY2F0Y2goeltKWzJdXS5iaW5kKHopKSxKKVsxXT4+SlswXXx8VC5jYWxsKHRoaXMseiksS30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgoKHA9WyJjb25zdHJ1Y3RvciIsMCw4XSxCLTMpXjE3KT49QiYmKEIrcFsyXV4zMCk8QiYmCih2PShBPVN0cmluZyhHbC5sb2NhdGlvbi5ocmVmKSkmJkMmJmI/W2IsSFs3XSgzLHBbMV0sIiIsImtleSIseixPWzQ0XSgxMCxLLHBbMV0sQSksSnx8bnVsbCxDKV0uam9pbihvOSgpKTpudWxsKSxCLTY+PTIxKSYmKEI+PjImcFsyXSk8NCl7aWYodHlwZW9mIHo9PT0iZnVuY3Rpb24iKUs9ejtlbHNlIGlmKHR5cGVvZiB6PT09Im9iamVjdCIpSz16W3BbMF1dO2Vsc2UgdGhyb3cgRXJyb3Iodm9pZCAwKTt2PW1bMzZdKDEwLGZ1bmN0aW9uKFEpe3JldHVybiBRIGluc3RhbmNlb2YgS30pfXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoISgoQjw8KCgoQisoKFo9WyJjb29yZHMiLCJNIiwiaSJdLChCJjIxKT09QikmJihEWzEzXSgyNCxLW1pbMl1dKSxLLkE9eiksMSkmNjIpPEImJihCLTheOSk+PUImJihuPWVbMl0oMzIseix2b2lkIDAsSykpLEItOSYxNSl8fChuPUdbMTNdKDgsZnVuY3Rpb24oVyxOLHgpe3g9W251bGwsMTYsKE49WzEsOCwzXSwiQSIpXTsKc3dpdGNoKFcuTSl7Y2FzZSBOWzBdOmlmKCFiLlgpcmV0dXJuIFcucmV0dXJuKFtudWxsLG51bGxdKTtyZXR1cm4oV1soYi5SPShBPVtdLGZ1bmN0aW9uKGYsTCxyLFYsUCxxLGMsRSxTKXsoUz0ocT1bMywxLG51bGxdLFsyLDEsMzJdKSxmLmxlbmd0aD56KSYmKGM9Zlt6XSxjPnomJihmW3FbU1sxXV1dPyhWPW5ldyBPSCxMPXlbU1syXV0oU1swXSxxW1NbMF1dLFYsSixmW0pdKSxFPXlbU1syXV0oMyxxW1NbMF1dLEwscVswXSxmW3FbMF1dKSxQPW5ldyBVaW50OEFycmF5KE9iamVjdC52YWx1ZXMoZltxW1NbMV1dXSkpLHlbMzhdKDYsdm9pZCAwLEdbNDJdKDM0LHFbU1swXV0sITEsUCksRSw0KSxyPUUpOnI9cVtTWzBdXSxBW2MtcVtTWzFdXV09cikpfSksWWopKCkseFsyXV0oSixOWzJdKSxXKS52KCgwLHQkLnk1KShmdW5jdGlvbigpe3JldHVybiBiLlgudihiLmopfSwxNCksTlsyXSk7Y2FzZSBOWzJdOigoVy5tKCksYikuUj14WzBdLFcpLm8oNCk7YnJlYWs7Y2FzZSBKOihXLmkoKSwKVykuR18oTlsyXSk7YnJlYWs7Y2FzZSA0OigoUT1PWzEyXSgyLE5bMF0sbmV3IHhMLG5ldyBEeChBKSksWWopKCksVykuR18oSyk7YnJlYWs7Y2FzZSBLOnJldHVybiBwPVEueWUoKSxXLnYoUHJvbWlzZS5yZXNvbHZlKGVbeFsxXV0oNjgsNCxmYixHWzEwXSh4WzFdLDI1NSwyNTYsa1szOV0oNTksQyxwKSxiLm8pKSksTlsxXSk7Y2FzZSBOWzFdOnJldHVybiB2PVcuWCxXLnJldHVybihbWVs0XSg1OSxwKSx2XSl9fSkpLDEpJjE1fHwoSyBpbnN0YW5jZW9mIFo2PyhBPUsueSxLPUsueCk6QT16LGI9Si5YLHY9SltaWzJdXSxDPUoudi1KLlgscD1KW1pbMV1dLUpbWlsyXV0sbj0oKE51bWJlcihLKS1iKSooSi52LWIpKyhOdW1iZXIoQSktdikqKEpbWlsxXV0tdikpLyhDKkMrcCpwKSksQl44MykmMTUpKXtpZighKG9iLmNhbGwodGhpcyksQXJyYXkpLmlzQXJyYXkoeil8fCFBcnJheS5pc0FycmF5KEspKXRocm93IEVycm9yKCJTdGFydCBhbmQgZW5kIHBhcmFtZXRlcnMgbXVzdCBiZSBhcnJheXMiKTsKaWYoei5sZW5ndGghPUsubGVuZ3RoKXRocm93IEVycm9yKCJTdGFydCBhbmQgZW5kIHBvaW50cyBtdXN0IGJlIHRoZSBzYW1lIGxlbmd0aCIpO3RoaXNbKHRoaXMucHJvZ3Jlc3M9MCxaKVt0aGlzLmw9KCh0aGlzLmR1cmF0aW9uPSh0aGlzLlI9QyxKKSx0aGlzKVtaWzFdXT16LEspLDBdXT1bXX1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEJ8NzIpPT0oQj4+KEE9WzMyLDIwLDIyXSxCLTI+PjU8MSYmQi04Pj40Pj0wJiYoYj1SWzI2XShBWzJdLHosMixsKSksMikmMTV8fChDPUsuZFYrYk4oQWUoKSpLLmRlKSxLLmlzQWN0aXZlKCl8fChMYigpLEMqPXopLGI9QypKKSxCKSlhOntpZih6PT1udWxsKXtiPXo7YnJlYWsgYX1pZih0eXBlb2Ygej09PSJzdHJpbmciJiZ6KXo9K3o7ZWxzZSBpZih0eXBlb2YgeiE9PSJudW1iZXIiKXtiPXZvaWQgMDticmVhayBhfWI9QlQ9PT0yP0ZFKHopP3p8MDp2b2lkIDA6en1yZXR1cm4oQisyJjMxKT49QVsoQj4+MiZBWzJdKTwzJiYKKEI+PjImMTUpPj05JiYoYj1SYiYmWjg/IVo4Lm1vYmlsZSYmKERbQVsxXV0oMzUsImlQYWQiKXx8RFtBWzFdXSgxNSwiQW5kcm9pZCIpfHxEW0FbMV1dKDEzLHopKTpEW0FbMV1dKDEsImlQYWQiKXx8RFtBWzFdXSg5LCJBbmRyb2lkIikmJiFEW0FbMV1dKDM3LEspfHxEW0FbMV1dKDMzLHopKSwyXSYmQj4+MTxBWzBdJiYoSj0iIixLPXouSUEsSj1lWzIxXSg3NixybygpLEspP0orJ1NlbGVjdCBlYWNoIGltYWdlIHRoYXQgY29udGFpbnMgdGhlIG9iamVjdCBkZXNjcmliZWQgaW4gdGhlIHRleHQgb3IgaW4gdGhlIGltYWdlIGF0IHRoZSB0b3Agb2YgdGhlIFVJLiBUaGVuIGNsaWNrIFZlcmlmeS4gVG8gZ2V0IGEgbmV3IGNoYWxsZW5nZSwgY2xpY2sgdGhlIHJlbG9hZCBpY29uLiA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj5MZWFybiBtb3JlLjwvYT4nOkorIkNsaWNrIG9uIGFueSB0aWxlcyB5b3Ugc2VlIHdpdGggdGhlIG9iamVjdCBkZXNjcmliZWQgaW4gdGhlIHRleHQuIElmIG5ldyBpbWFnZXMgYXBwZWFyIHdpdGggdGhlIHNhbWUgb2JqZWN0LCBjbGljayB0aG9zZSBhcyB3ZWxsLiBXaGVuIHRoZXJlIGFyZSBub25lIGxlZnQsIGNsaWNrIFZlcmlmeS4iLApiPVREKEopKSxifSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKCgoQz1bIm0iLCEwLDBdLEIpPDwyJjR8fChKPVZhLkooKS5mbHVzaCgpKSxCPj4xJjMpPj1DWzJdJiZCLTU8MjApYTp7aWYoSy52fHxLLlcpe0o9KEc1KCkseik7YnJlYWsgYX1pZihLW0NbMF1dPj0zKXtKPXo7YnJlYWsgYX1LLlc9KEhUKCksSy5rSisrLGdbQ1syXV0oNDksUngoSy56SixLKSxEWzhdKDIsMixLLEtbQ1swXV0pKSksS1tDWzBdXSsrLEo9Q1sxXX1yZXR1cm4gSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgpe2lmKChCfDU2KT09KFQ4PVsyLCJkZWxldGUiLCJGZyJdLEIpKXtpZigoUD0oak49KGIzPSh6OD1uZXcgKHE9KG9aPShuRD0oeD0oZj0oWkc9KEo9Sj09PXZvaWQgMD8hMDpKLHQ9KHc9KDAsdCQuWDgpKCkuc2xpY2UoKSxbMSwzLDldKSwoMCx0JC5hNykoKSkuc2xpY2UoKSwKKDAsdCQuYjUpKHAsYikpLFlbMzBdKDEyLEEudik/MjoxKSx2OD1uZXcgZUIsZSlbNDNdKDkzLHY4LEosdFsxXSksSClbMF0oNTIsbkQsNyx4KSxrWzZdKDMwLDgsb1osQS5PKSksVT1rWzZdKDI4LHRbVDhbMF1dLHEsQS5DKSxQVCksWVszMl0oNzcsNDA5Nix6OCx3LmNvbmNhdChmKSx0WzBdLFE2KSksWVszMl0oNzgsNDA5NixiMyxaRy5jb25jYXQodiksVDhbMF0sJEwpKSxIWzQ0XSgyMSxVLFBULDUsak4pKSwoMCx0JC52RikoKSxhPVJbNDhdKDc0LFAsUFQsNSkscVAuc2l6ZSk9PT0wKXU9W107ZWxzZXtWPVtdO3RyeXtmb3IoWj1nWzEyXSg1LHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoaTkoKSkpLFE9Wi5uZXh0KCk7IVEuZG9uZTtRPVoubmV4dCgpKWZvcihuPVEudmFsdWUsVz1nWzEyXSgxLHFQKSxoPVcubmV4dCgpOyFoLmRvbmU7aD1XLm5leHQoKSlmRD1nWzEyXSgxLGgudmFsdWUpLE49ZkQubmV4dCgpLnZhbHVlLEU9ZkQubmV4dCgpLnZhbHVlLG4ubmFtZS5pbmNsdWRlcyhOKSYmCihTPW1bMzVdKFQ4WzBdLHosZ1szMl0oODIseix5WzldKDEsdFswXSxFKSx5YShuLmR1cmF0aW9uKSkseWEobi5zdGFydFRpbWUpKSxuLnJlc3BvbnNlU3RhdHVzJiZuLnJlc3BvbnNlU3RhdHVzPj1LJiYoZVs0M10oOTMsUywhMCw0KSxjPW5ldyBZTCxNPUhbNDldKDUxLHRbMF0sbi5yZXNwb25zZVN0YXR1cyxjKSxIWzQ0XSg4MyxTLFlMLDUsTSkpLFYucHVzaChTKSxxUFtUOFsxXV0oTikpfWNhdGNoKG1sKXt9dT1WfShCOD0oZD0oc3c9KEw9KEpZPShYPShZWzMyXSg4MSw0MDk2LGEsdSx0WzBdLFE2KSxuZXcgdHgpLHI9UlsyNV0oMTksbnVsbCxUOFswXSxDLGNULFgsbCksSFtUOFswXV0oMjcsQS52LFNCKSksbVsyM10oMzIsSlkscix0WzBdLGwpKSxtKVsyM10oMjksIkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsTCx0WzFdLGwpLEhbNDRdKDY5LHN3LGVCLDQsUCxsKSksbmV3IG12KGQsSFtUOFswXV0oMjcsQS52LFNCKSkpLEEpLmcuc2VuZChCOCwhMCwhMSl9aWYoIShCLTUmMTMpKWE6e2lmKEM9CkY4LGdbMF0oMTEsSikpe1FxPVlbNDhdKDYseixLLEouTyxDIT09dm9pZCAwP1N0cmluZyhDKTp2b2lkIDApO2JyZWFrIGF9UXE9KGI9ZVsxOF0oNyxKKSwhIWImJllbNDhdKDQseixLLGIsQykpfWlmKChCPDwxJjE1KT49MTAmJihCXjc4KT4+NDwzJiYoSj1bNSwxLG51bGxdLHRoaXMuVz1KW1Q4WzBdXSx0aGlzLk0ubGVuZ3RoIT09MCkpeyhiPSgoQT0oZj0odGhpcy5pPVlqKCksSltUOFswXV0pLHRoaXMuaSksdGhpcy5jbykmJihmPSgwLHQkLmxjKSh6PzE3OjE2KSksdGhpcykudVksYikudj1BLFc9MDtmb3IoeiYmKFc9dGhpcy5pK2VbMzJdKDE2LHopKTt0aGlzLk0ubGVuZ3RoPjA7KXtpZihRPXRoaXMuTS5wb3AoKSxRLkh2PD1BJiYoUS5URT1UOFswXSksdGhpc1tUOFsyXV0mJlEuVEU9PT0xKXtpZigheilicmVhaztpZigoTD1lWzMyXShUOFswXSx6KSxMKT09PTApYnJlYWs7Vz1BK0x9ZWxzZSBpZihBPnRoaXMuaSsxMClicmVhaztpZihRLkZQKXRyeXtSWzldKFQ4WzBdLDI1NSwKSlsxXSw2NCwwLHRoaXMsUS5GUCksUS5GUD1KW1Q4WzBdXSxBPVlqKCl9Y2F0Y2gobWwpe1E9KFEuZmkoKSxKW1Q4WzBdXSk7YnJlYWt9aWYoUS53Zjw9QSl7UT0oUS5maSgpLEpbVDhbMF1dKSx0aGlzLkQrPUpbMV07YnJlYWt9aWYoKCgoeD0oTj0oQT0oKHRoaXMubD0oKCgoQz1BLHI9ej9XLUE6dGhpcy5pKzEwLUEsdGhpcykuTD10aGlzLlI/cipoWSh0aGlzLlIvdGhpcy5tLEpbMF0pOnIqSlswXSx0aGlzLksoKSxRKS5WJiYodGhpcy54SltRLlZdPVEub1QsUS5WPTApLHRoaXMpLnYudj1RLkdvLDApLHRoaXMpLlhnKCkmJih0aGlzLmorPUpbMV0sdGhpcy5aMigpKSxZaigpKSxBLUMpLHRoaXMubCksTj1oWShOLC4xKSx0aGlzKS5SPyh0aGlzLlI9eCsuOSp0aGlzLlIsdGhpcy5tPU4rLjkqdGhpcy5tKToodGhpcy5tPU4sdGhpcy5SPXgpLEEpPEMmJih0aGlzLkc9Yi52KSx0aGlzLksoKSx0aGlzLk8pPT09bnVsbClRLm9qKCksUT1KW1Q4WzBdXTtlbHNleyhRLkdvPXRoaXMuTyx0aGlzKS5PPQpKW1Q4WzBdXTticmVha319aWYoKChLPShwPShRJiZ0aGlzLk0ucHVzaChRKSxaPVcsdGhpcykuaSxBKSx0aGlzKS5QKz1BLXRoaXMuaSxaKT5wKVorPUpbMV0sbj1sOShLLFopLXAsdj1oWShLLFopLVosSFs1XSg0NyxKWzFdLHRoaXMuSSxuKSx2PjAmJkhbNV0oNDgsSlsxXSx0aGlzLlUsdik7ZWxzZSBIWzVdKDMwLEpbMV0sdGhpcy5VLEstcCk7ZiYmKDAsdCQuZ1gpKGYpLHRoaXMuTS5sZW5ndGg+MCYmUlszOF0oOCxKWzFdLFQ4WzBdLHRoaXMpfWlmKChCJigoQiY1MCk9PUImJihXPWIsWj1bNDA5NiwxNiwwXSxLPT09MXx8KEshPT00PzA6eiZifHwhKFpbMV0mYikmJjMyJm4pP21bNV0oMjAsNCxiKXx8KGJ8PSF2Lmxlbmd0aHx8SiYmIShaWzBdJmIpfHwzMiZuJiYhKFpbMF0mYnx8WlsxXSZiKT8yOjI1NixiIT09VyYma1szOF0oNzgsdixiKSxUSih2KSk6KEs9PT0yJiZtWzVdKDE0LDQsYikmJih2PWcwW1Q4WzBdXSgxLHYpLFc9WltUOFswXV0sYj1IWzQzXSgzMyx6LGIsbiksbj0KWVsyNV0oMzMsdixRLG4scCxDKSksbVs1XSgxNCw0LGIpfHwoQXx8KGJ8PVpbMV0pLGIhPT1XJiZrWzM4XSg5Myx2LGIpKSkseiZifHwhKFpbMF0mYnx8WlsxXSZiKXx8SFszNl0oMSxDLG4pLFFxPXYpLDEwMSkpPT1CKWE6e2Zvcig7Sy52Lk07KXRyeXtpZihKPUsuTShLLnYpKXtRcT17dmFsdWU6Si52YWx1ZSxkb25lOiEoSy52LlU9ITEsMSl9O2JyZWFrIGF9fWNhdGNoKG1sKXtLLnYuWD12b2lkIDAsZzBbM10oNjUsSy52LG1sKX1pZigoSy52LlU9ITEsSykudi5sKXtpZigoKEM9Sy52LmwsSy52KS5sPXosQykuY0EpdGhyb3cgQy5uMTtRcT17dmFsdWU6Qy5yZXR1cm4sZG9uZTohMH07YnJlYWsgYX1RcT17dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXJldHVybiBRcX0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKEM9WzMsMiwiTSJdLEIrND4+NCl8fChKPXo/ei5kZWZhdWx0Vmlldzp3aW5kb3cpLEI+PkNbMV0mQ1swXSk9PTEmJihLPXpbQ1syXV0sSj1LW0NbMl1dLmxlbmd0aCtLLnYubGVuZ3RoKSwKSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihCLSgoQiYoKChCJjUzKT09KCgoUT1bInRvU3RyaW5nIiwxLDRdLEIpLVFbMl1eMTgpPEImJihCLTJeMTQpPj1CJiYoSj1bMjI0LDI4MzQsMF0sbj1EWzE1XShRWzFdLEpbMF0sNyxFSCgpLnNsaWNlKEhbOF0oMzYsNTYyMClbS10sSFs4XSg0NCwyODA4KVtLK3pdKSxIWzhdKDMyLEpbUVsxXV0pK1JbMzFdKDM2LEpbMl0sZnVuY3Rpb24oKXtyZXR1cm4gRUgoKS5zbGljZSgwLEhbOF0oNDQsMTM3OClbS10pfSxYSikpKSxCKSYmKEouc2V0KHU5LE9bNDFdKDMxKSksbj1EWzI5XSgzMyxuZXcgeTYoa1s0N10oUVsyXSxLKSksSltRWzBdXSgpLHopW1FbMF1dKCkpLEI+PlFbMV08MjEpJiYoQj4+UVsxXSYxNSk+PTUmJih0aGlzLmVycm9yPXopLDkzKSk9PUImJih0aGlzLlI9Syx0aGlzLlg9eix0aGlzLmk9Qyx0aGlzLnY9Six0aGlzLk09Yix0aGlzLkE9UVsxXSksUVsxXSk+PjU8MiYmKEI8PDImMTUpPj05KXtmb3IocD0oKGI9CihBPW1bMjJdKFFbMV0sbnVsbCxDLEosIkhFQURFUiIpLEFycmF5KS5mcm9tKEEpLGIpLnNvcnQoZnVuY3Rpb24oWixXKXtyZXR1cm4gWi1XfSksdj1LKTtwPGw5KHosYi5sZW5ndGgpO3ArKyl2PDw9MTYsdnw9YltwXSY2NTUzNTtuPXZ9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCgocD1bIk1BWF9TQUZFX0lOVEVHRVIiLDEsOTJdLEIpXnBbMl0pPDEzJiYoQnwyKT49cFsxXSlhOntpZih0eXBlb2YgQmlnSW50NjRBcnJheSE9PSh2PVswLDQyOTQ5NjcyOTUsMV0sInVuZGVmaW5lZCIpKXtiPSgoYWJ8fChhYj1uZXcgQmlnSW50NjRBcnJheSgxKSxoNj1uZXcgVWludDMyQXJyYXkoYWIuYnVmZmVyKSxhYlt2WzBdXT1CaWdJbnQodlsyXSksa0w9aDZbdlswXV09PT0xKSxhYilbdlswXV09SixrTCk/MDoxLFE9bmV3IEsoaDZbYl0saDZbdlsyXS1iXSk7YnJlYWsgYX1pZigodDZ8fChVSD1CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLE1QPUJpZ0ludChOdW1iZXJbcFswXV0pLAp3bz1CaWdJbnQodltwWzFdXSksdDY9QmlnSW50KHopKSxKPj1VSCkmJko8PU1QKXtRPUMoTnVtYmVyKEopKTticmVhayBhfVE9bmV3IEsoKEE9QmlnSW50LmFzVWludE4oNjQsSiksTnVtYmVyKShBJndvKSxOdW1iZXIoQT4+dDYpKX1pZigoQi01fDYwKT49QiYmKEIrN14xMyk8Qilmb3IoO0s9ei5maXJzdENoaWxkOyl6LnJlbW92ZUNoaWxkKEspO2lmKCEoKEJ8Nik+PjQpKWE6dHJ5e1E9KEo9SyYmSy5hY3RpdmVFbGVtZW50KSYmSi5ub2RlTmFtZT9KOm51bGw7YnJlYWsgYX1jYXRjaChuKXtRPXo7YnJlYWsgYX1pZigoQjw8KChCfDQ4KT09QiYmKHRoaXMubmV4dD10aGlzLk09dGhpcy52PW51bGwpLDIpJjcpPT00KWE6e2lmKEsgaW5zdGFuY2VvZiBJYil7UT1LO2JyZWFrIGF9UT0oSj1TdHJpbmcoSykucmVwbGFjZSgvJi9nLEZKKCkpLnJlcGxhY2UoLzwvZyxCYigpKS5yZXBsYWNlKC8+L2csc3ooKSkucmVwbGFjZSgvIi9nLHoyKCkpLnJlcGxhY2UoLycvZyxLeCgpKSxHWzQzXSgyNCwKeixKKSl9cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKEIrKG49WyJzbGljZSIsMTksMTJdLDcpJjIzKT09MSYmKGI9W10sdj1bMSwhMCwwXSxDPUM9PT12b2lkIDA/MTpDLEE9ITEsenx8KHo9Z1syNl0oNTYsTFIuSigpLHZbMF0pW3ZbMl1dLGIucHVzaChtW25bMl1dKDM4LHosdlsyXSkpLEE9dlsxXSksUT1nWzddKDM5KSxwPWdbN10oNSksYi5wdXNoKFEsWVswXSgyNCxwLE9bMjVdKDksSiksT1syNV0oNSx6KSksSyxHWzI0XSgxNix6LE9bMjVdKDkseiksQyksWVswXSgyNixRLHZbMF0sdlswXSkscCksQSYmTFIuSigpLnYoeiksWj1iKSxCfDgwKT09QilhOntpZih6PT1udWxsfHx0eXBlb2Ygej09PSJudW1iZXIiKXtaPXo7YnJlYWsgYX1pZih6PT09Ik5hTiJ8fHo9PT0iSW5maW5pdHkifHx6PT09Ii1JbmZpbml0eSIpe1o9TnVtYmVyKHopO2JyZWFrIGF9fXJldHVybigoQl43MCk+PTcmJkI8PDE8MTEmJihLPVs2LDAsMV0sKG5ldyBKTShPWzVdKDI4LApLWzJdLGdbblsxXV0oOSxLWzBdLHopKSxZWzMyXSgxOCwyLGdbblsxXV0oOCxLWzBdLHopKSxSWzI2XSgyMCx6LDcsbCksei5zMygpfHxLWzFdKSkucmVuZGVyKEdbMTVdKDQ2KSkpLEItMj4+Mz09MSYmKGI9WzAsMSwxMDBdLHR5cGVvZiB6PT09Im51bWJlciI/KHRoaXMudj1lWzIzXSg2LGJbMl0sYlswXSxLfHxiWzBdLEp8fGJbMV0seiksWVszOF0oOSxKfHxiWzFdLHRoaXMpKTpIWzQ0XSgyLHopPyh0aGlzLnY9ZVsyM10oNCxiWzJdLGJbMF0sei5nZXRNb250aCgpLHouZ2V0RGF0ZSgpLHouZ2V0RnVsbFllYXIoKSksWVszOF0oMSx6LmdldERhdGUoKSx0aGlzKSk6KHRoaXMudj1uZXcgRGF0ZShlWzI5XSg3NCkpLEM9dGhpcy52LmdldERhdGUoKSx0aGlzLnYuc2V0SG91cnMoYlswXSksdGhpcy52LnNldE1pbnV0ZXMoYlswXSksdGhpcy52LnNldFNlY29uZHMoYlswXSksdGhpcy52LnNldE1pbGxpc2Vjb25kcyhiWzBdKSxZWzM4XSgxNixDLHRoaXMpKSksQi05JjExKXx8KEE9SiwKYj1LLCgocD1iKT09ej8wOnAuaGVhZGVycyk/KGI9T2JqZWN0LmFzc2lnbih7fSxiKSxiLmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzPyhiLmhlYWRlcnM9bmV3IEhlYWRlcnMoYi5oZWFkZXJzKSxiLmhlYWRlcnMuc2V0KHQzLEMpKTpBcnJheS5pc0FycmF5KGIuaGVhZGVycyk/KGIuaGVhZGVycz1iLmhlYWRlcnNbblswXV0oKSxiLmhlYWRlcnMucHVzaChbdDMsQ10pKTooYi5oZWFkZXJzPU9iamVjdC5hc3NpZ24oe30sYi5oZWFkZXJzKSxiLmhlYWRlcnNbdDNdPUMpKTpBIGluc3RhbmNlb2YgUmVxdWVzdCYmIUEuaGVhZGVycy5rZXlzKCkubmV4dCgpLmRvbmU/KEE9bmV3IFJlcXVlc3QoQSksQS5oZWFkZXJzLnNldCh0MyxDKSk6KGI9T2JqZWN0LmFzc2lnbih7fSxiKSx2PXt9LGIuaGVhZGVycz0odlt0M109Qyx2KSksWj1DeChBLGIpLnRoZW4oZnVuY3Rpb24oVyl7cmV0dXJuIFcuc3RhdHVzPT09NDMxP0N4KEosSyk6V30pKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYsCnAsUSxuKXtpZighKCgoKChuPVsyLDExLDE2XSwoQj4+blswXSYyNyk+PTkpJiZCPj5uWzBdPG5bMl0mJihKPShLPW5LLmdldCh6KSkhPW51bGw/SzowLG5LLnNldCh6LEorMSkpLChCKzQmblsyXSk8MTUpJiYoQjw8blswXSYyNyk+PTE4JiZULmNhbGwodGhpcyx6LDAsZ20uUlQpLChCPDwxJm5bMV0pPT1uWzBdKSYmKFE9eVs0Ml0oMjUsSyx6LEosQykpLEItOCk+PjQpJiZKLk8pZm9yKHAgaW4gQT1KLk8sYj16LEEudil7Zm9yKHY9KEM9QS52W3BdLHopO3Y8Qy5sZW5ndGg7disrKSsrYixPWzEwXSgzLEssQ1t2XSk7ZGVsZXRlIEEudltBLk0tLSxwXX1yZXR1cm4oQiYxMjQpPT1CJiYoUT16KSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCJihuPVsiY2FsbCIsInN0YXR1c1RleHQiLDEzXSwxMjApKT09Qil7aWYoKEE9KGI9KHA9WVsyNV0oNiwodj1KLnYuWCxKKS52KSxKLnYuditwKSxiLXYpLEE8PXopJiYoSi52Llg9YixDKEssSix2b2lkIDAsdm9pZCAwLAp2b2lkIDApLEE9Yi1KLnYudiksQSl0aHJvdyBFcnJvcigpOyhKLnYudj1iLEoudikuWD12fXJldHVybihCPDwoKEJ8KChCfDI0KT09KCgoQl42MSkmblsyXSk9PTEmJihRPUhbMjFdKDQ1LEsseikpLEIpJiYoSj1bMCxudWxsLCIiXSxvZ1tuWzBdXSh0aGlzKSx0aGlzLlU9eix0aGlzLkE9dm9pZCAwLHRoaXMuUj1LLHRoaXMucmVhZHlTdGF0ZT1KWzBdLHRoaXMuc3RhdHVzPUpbMF0sdGhpc1tuWzFdXT1KWzJdLHRoaXMucmVzcG9uc2U9SlsyXSx0aGlzLnJlc3BvbnNlVGV4dD1KWzJdLHRoaXMucmVzcG9uc2VUeXBlPUpbMl0sdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U9SlsxXSx0aGlzLmw9bmV3IEhlYWRlcnMsdGhpcy5NPUpbMV0sdGhpcy5DPUhEKCksdGhpcy5pPUpbMV0sdGhpcy5XPUpbMV0sdGhpcy52PSExLHRoaXMuWD1KWzFdLHRoaXMubz1KWzJdLHRoaXMuRj1uZXcgQWJvcnRDb250cm9sbGVyKSwzKSk+PjM9PTImJihiZFtuWzBdXSh0aGlzLGJRKCksa1s0M10oMjgsQU0pLExLKCkpLApIWzMxXSgzMyx0aGlzLHopLHRoaXMuaE09ITApLDEpJm5bMl0pPT00JiYoYj1bMjYsMTEsMTVdLEM9SihLKCksYlsxXSxiWzJdLDIpLFE9Qz4wP0ooSygpLGJbMV0sYlsyXSxiWzBdKS1DOi0xKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQiYoQT1bIi5ncmVjYXB0Y2hhLWJhZGdlIiwzNSwidiJdLChCXjM3KTwyNCYmQjw8MT49MjImJihiPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKEFbMF0pLGZ1bmN0aW9uKHYpe3JldHVybiBZWzhdKDMwLHZiLHYuZ2V0QXR0cmlidXRlKCJkYXRhLXN0eWxlIikpfSkubGVuZ3RoPnopLDkyKSk9PUImJihOUC5jYWxsKHRoaXMpLHRoaXMucmVxdWVzdD16LHRoaXNbQVsyXV09Syx0aGlzLmVycm9yQ29kZT10aGlzW0FbMl1dP0hbQVsxXV0oMywyLHRoaXNbQVsyXV0pOi0xLHRoaXMuWD0oSj0oQz10aGlzW0FbMl1dKT09bnVsbD92b2lkIDA6Qy5NKSE9bnVsbD9KOm51bGwpLGJ9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBKXtpZigoQnwxNik9PSgoKChCJjk0KT09KEE9WzIyLDksNDRdLEIpJiYoYj1URCgnPHRleHRhcmVhIGlkPSInK1JbMTFdKDcxLEspKyciIG5hbWU9IicrUlsxMV0oQVsxXSx6KSsnIiBjbGFzcz0iZy1yZWNhcHRjaGEtcmVzcG9uc2UiPjwvdGV4dGFyZWE+JykpLEIpKzMmNyk8MSYmQj4+Mj49LTg0JiYoVDIoeiksajcoeiksYj1qNyh6KT9OdW1iZXIoeik6U3RyaW5nKHopKSxCKSlhOntpZih6Lk0hPT0wJiZ6Lk0hPT0yKXtiPSExO2JyZWFrIGF9Yj0hKChDPU9bQVswXV0oMSwyLEssS1tBJF18MCxKKSx6KS5NPT0yP09bNDddKDUsa1sxNV0uYmluZChudWxsLDMyKSx6LEMpOkMucHVzaChrWzE1XShBWzJdLHoudikpLDApfXJldHVybihCLUFbMV18MjMpPEImJihCLTh8NDcpPj1CJiZ6Lm9ucmVhZHlzdGF0ZWNoYW5nZSYmei5vbnJlYWR5c3RhdGVjaGFuZ2UuY2FsbCh6KSxifSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEI+PihDPVsxLCIiLDI3XSxDWzBdKSY4KTwKMiYmKChCfDUpJjIpPj1DWzBdKWZvcihKIGluIHopSy5jYWxsKHZvaWQgMCx6W0pdLEoseik7cmV0dXJuKEIrOSZDWzJdKT49QiYmQis3Pj5DWzBdPEImJihHRC5jYWxsKHRoaXMscHgud2lkdGgscHguaGVpZ2h0LHBSLFFiKSx0aGlzLm1vYmlsZVRva2VuPUNbMV0sdGhpcy51cmw9Q1sxXSx0aGlzLkQ9MCksYn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oSj1bMiwyMCw0N10sQiZKWzJdKT09QiYmKEM9RFtKWzFdXSgxOCx6LEhbMzNdKDIzKSkpLEI8PEpbMF0mN3x8KEM9Sy5pbmRleE9mKHopIT0tMSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCKzReKCgoKHA9WyJwWCIsNSwiSiJdLEIpLTReMzEpPEImJihCLXBbMV1eOCk+PUImJihDPUp8fG54W3BbMl1dKCksWksuY2FsbCh0aGlzLG51bGwsQyxLKSx0aGlzLm89eiE9PXZvaWQgMD96OiExKSwoQiY2MSk9PUImJih2PXtxdDp6W3BbMF1dKCksT0I6ei5SMCgpLHdpdGhDcmVkZW50aWFsczp6LnRLKCl9KSwKQnw0MCk9PUImJih0aGlzLnY9bmV3IFdiLHRoaXMuWD10aGlzLmk9ITEsdGhpcy5NPWVbMjddLmJpbmQobnVsbCxwWzFdKSksMjEpKT49QiYmKEIrOV4xNSk8QiYmKGdQLmxlbmd0aD8oQT1nUC5wb3AoKSxBLmluaXQoSyxDLEoseiksYj1BKTpiPW5ldyBONyhLLEMsSix6KSx0aGlzLlg9LTEsdGhpcy52PWIsdGhpcy5NPS0xLHRoaXMuQT10aGlzLnYudix0aGlzLmk9LTEsWVszMF0oMyx6LHRoaXMpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEIrOSYxMyk9PShCLSgoKEImKEIrKGI9WzQ0LDE1LDRdLDEpPj5iWzJdPT1iWzJdJiYoSj49MSYmYk4oSiksSFszMF0oMSw3LEoqOCt6LEsudikpLDU4KSk9PUImJihKPUo9PT12b2lkIDA/a1tiWzFdXS5iaW5kKG51bGwsNDgpOkosQz1rWzQ2XShiWzBdLGZ1bmN0aW9uKEEsdixwKXsocD16LEEpLnN1YnNjcmliZShuZXcgZmcodixmdW5jdGlvbihRKXt2Lm5leHQoKHA9SyxRKSl9LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBwPwp2LmNvbXBsZXRlKCk6di5lcnJvcihKKCkpfSkpfSkpLEItMiY3KT09YlsyXSYmKEM9R1szN10oODYsNjQsbnVsbCxIW2JbMl1dKDg5LHosSyx2b2lkIDAsdm9pZCAwLGtbNDZdLmJpbmQobnVsbCwyMSkpKSksNik8PDE8QiYmKEItMnw4Nik+PUImJnRoaXMudi5nZXRWYWx1ZSgpLmxlbmd0aD4wJiZ0aGlzLm1KKCExKSxiWzJdKSYmKEo9WzE2LDE1LDBdLEs9ei5jaGFyQ29kZUF0KEpbMl0pLEM9IiUiKyhLPj5iWzJdJkpbMV0pLnRvU3RyaW5nKEpbMF0pKyhLJkpbMV0pLnRvU3RyaW5nKEpbMF0pKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEIrNyYoKGI9WyJmdW5jdGlvbiIsMjUsNV0sKEJ8NTYpPT1CKSYmKEM9bVs0MF0oMTYsMCwiIixKLEspLEE9ZVsxNl0oYlsyXSx6LE96LEMpKSwxMykpPj1CJiZCLTQ8PDI8QiYmKEE9Sy52P0suTS5NPyEwOiEoIXlbMjBdKDQ4LHosSy52KSYmIUsudi5nZXRSZXNwb25zZSgpKTohMSksQikrYlsyXSYzfHx6JiZ0eXBlb2Ygei5kaXNwb3NlPT0KYlswXSYmei5kaXNwb3NlKCksKEJ8NjQpPT1CKWE6e2lmKEpbMF09PT0oQz1KLmxlbmd0aCwiLSIpP0M8eHN8fEM9PT14cyYmSjw9REs6QzxmeHx8Qz09PWZ4JiZKPD1vYyl7QT1KO2JyZWFrIGF9R1tiWzFdXSg0NCxLLEopLEE9UlszNl0oMSx6LE9PLHhPKX1yZXR1cm4oQl44Nik+PjQ9PTQmJlQuY2FsbCh0aGlzLHopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKCgoKCgoQl4yNik+PjM9PShuPVs2NCwyMiwidiJdLDMpJiYoSz1bOSxudWxsLCExXSxvZy5jYWxsKHRoaXMpLHRoaXMubD16fHxIWzE3XSgyOCxLWzBdKSx0aGlzLlU9dm9pZCAwLHRoaXMuaT1LWzFdLHRoaXMuQT1LWzFdLHRoaXMuRj1LWzFdLHRoaXMuU3E9S1syXSx0aGlzLnVZPUx4LHRoaXMuSz1LWzFdLHRoaXMuTT1LWzFdKSxCKTw8MSYxNSk9PTImJih2PVhKLHA9bmV3IFJjLHAuTT1mdW5jdGlvbihXLE4pe3JldHVybiBHWzEzXSgzMixmdW5jdGlvbih4LGYsTCl7Zj1bJyInLDIsIShMPQpbIkEiLDAsMTBdLDApXTtzd2l0Y2goeC5NKXtjYXNlIDE6aWYoKHhbTFswXV0oKE49QyxmWzFdKSkscCkudi5PZCgpPT1MWzFdKXt4LkdfKEspO2JyZWFrfXJldHVybiB4LnYoUlszMV0oMzUsTFsxXSxBLHYpLHopO2Nhc2UgejppZihOPXguWCxOIT1DKXJldHVybiB0eXBlb2YgTiE9InN0cmluZyJ8fE4uaW5jbHVkZXMoUDcoKSl8fE4uaW5jbHVkZXMoclAoKSk/dHlwZW9mIE49PSJudW1iZXIiP049IiIrTjpOIGluc3RhbmNlb2YgVmI/KHAuaT1mWzJdLE49Ti52KTpOPVlbTFsyXV0oNjcsZnVuY3Rpb24ocil7cmV0dXJuIHIuc3RyaW5naWZ5KE4pfSk6Tj1mW0xbMV1dK04rZltMWzFdXSx4LnJldHVybihRKFcsTikpO2Nhc2UgSzp4LkYoMyk7YnJlYWs7Y2FzZSBmWzFdOnguaSgpLHAuWD1mWzJdO2Nhc2UgMzpyZXR1cm4geC5yZXR1cm4oZVsyN10oMjEsVykpfX0pfSxRPWZ1bmN0aW9uKFcsTil7cmV0dXJuIEdbMTNdKDMzLGZ1bmN0aW9uKHgsZil7cmV0dXJuIHguTT09KGY9WzEsInYiLAozOV0sZlswXSk/eFtmWzFdXShiKE4sVyksMik6eC5yZXR1cm4oe2RROnguWCx3VDpEWzRdKGZbMl0sMCxOKX0pfSl9LHBbblsyXV09bVszNV0oNTksSiksWj1wKSxCKSsxXjIwKTxCJiYoQis2JjI4KT49QiYmKFo9Z1tuWzFdXSg1Nik/R1szMV0oODMsQmlnSW50LmFzSW50TihuWzBdLChCaWdJbnQuYXNVaW50TigzMixCaWdJbnQoSykpPDxCaWdJbnQoMzIpKStCaWdJbnQuYXNVaW50TigzMixCaWdJbnQoeikpKSk6R1szMV0oODcsUlszNl0oOSwzMix6LEspKSksKEImNjApPT1CJiYoSj1KPT09dm9pZCAwPyEwOkosQz1DPT09dm9pZCAwP21bMjNdLmJpbmQobnVsbCwxKTpDLFo9ZnVuY3Rpb24oVyxOLHgpe3ZhciBmPVsxMywxOCwzXSxMPUcyLmFwcGx5KGZbMl0sYXJndW1lbnRzKTtXPVc9PT12b2lkIDA/ZVszMV0oZlsxXSk6Vzt2YXIgcixWLFAscSxjLEU9dGhpcyxTLGE7cmV0dXJuIEdbZlswXV0oOCxmdW5jdGlvbih1LFgsZCx0KXtmb3IoZD0odD1bMjIsIk0iLDY0XSw4Nyk7ZCE9Cjk4OylpZihkPT01MylkPXghPXZvaWQgMCYmSGI9PXg/NTQ6NjA7ZWxzZSBpZihkPT01OSlkPXVbdFsxXV09PTE/dFsyXTo0MztlbHNle2lmKGQ9PXRbMl0pcmV0dXJuIFhKPU58fFhKLEhiPUhifHx4LFM9ZTcoWVs0XSg1NyxXKSksYz1lWzZdKDEsWFsxXSxTKSxKJiZQYihmdW5jdGlvbihoKXtyZXR1cm4gTC51bnNoaWZ0KEhbKGg9WzQ0LDU2NTcsOF0saClbMl1dKGhbMF0sNzQyMCkoKSxIW2hbMl1dKDQwLDk5MTUpKCksSFtoWzJdXSgxMiw5NDYpLEhbaFsyXV0oMzIsaFsxXSkpfSwwKSxhPURbMjRdKDMzLFhbMF0sNCxYWzJdLG51bGwsQyxmdW5jdGlvbigpe3JldHVybiB6LmFwcGx5KEUsTCl9KSx1LnYoYVt0WzFdXShTKSxYWzFdKTtpZihkPT01NClWPW5ldyAkcyxEWzhdKDc4LEhbNF0oOTUsMyxjKSk9PTB8fGEudi5PZCgpPT0wP0hbMF0oNTIsViwxLFhbMV0pOmEuWD9IWzBdKDQ4LFYsMSwzKTphLmk/SFswXSg2NSxWLDEsNCk6SFswXSh0WzJdLFYsMSwxKSxtWzIzXSh0WzBdLApQLFYsWFsxXSkscTcucHVzaChWKSxIYj12b2lkIDAsZD02MDtlbHNlIGlmKGQ9PTQzKXE9dS5YLFA9cS53VCxyPXEuZFEsbVsyM10oMjMscixjLDEpLGZ1bmN0aW9uKGgpe3JldHVybiBrWzZdKDI0LDMsYyxoKX0oWEouT2QoKSksZD01MztlbHNle2lmKGQ9PTYwKXJldHVybiB1LnJldHVybihuZXcgaVEoYyxLLFApKTtkPT04NyYmKFg9WzUsMiwyMDBdLGQ9NTkpfX19KX0pLEIpPj4yJjE0KT09Mil7aWYoYj13aW5kb3csSyBpbnN0YW5jZW9mIHliKUM9S1tuWzJdXTtlbHNlIHRocm93IEVycm9yKHopO2IuZXZhbCgoSj1DLEopKT09PUomJmIuZXZhbChKLnRvU3RyaW5nKCkpfXJldHVybiBafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChDPVsxNSw1Niw0XSwoQi01XkNbMF0pPj1CJiYoQis1JkNbMV0pPEImJihKPUsuc3R5bGVbZVsxMV0oMjYsInZpc2liaWxpdHkiKV0sYj10eXBlb2YgSiE9PSJ1bmRlZmluZWQiP0o6Sy5zdHlsZVtEWzQ4XSgxLHosIl0rIixLLCJ2aXNpYmlsaXR5IildfHwKIiIpLChCXjI5KSY3KT09MiYmVC5jYWxsKHRoaXMseiksKEJ8NSk+PkNbMl0pPj0yJiYoQitDWzJdJjE2KTwxMiYmKGI9bmV3IElwKGZ1bmN0aW9uKEEsdixwKXsodj1lW3A9WzM1LDIzLCJpbWciXSxwWzBdXShwWzFdLHosSyxkb2N1bWVudCxudWxsLHBbMl0pLHYubGVuZ3RoKT09MD9BKCk6SFs1XSgyNSx2WzBdLFlzLGZ1bmN0aW9uKCl7QSgpfSl9KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKHY9WyJ0cmFuc2Zvcm0iLDIsIi1ob3ZlciJdLCEoKEJeNzEpPj40KSlpZihiLmdiKHopLEEpWVszNV0oNDgsYi5DLCJvcGFjaXR5IixKKSxZWzM1XSgxNixiLkMsdlswXSwic2NhbGUoMCkiKSxPW3ZbMV1dKDQwLFJ4KGZ1bmN0aW9uKCl7WVszNV0oNDAsdGhpcy5DLCJkaXNwbGF5IixDKX0sYiksSyk7ZWxzZSBZWzM1XSg0OCxiLkMsImRpc3BsYXkiLEMpO3JldHVybihCLTQmKEItODw8KChCLXZbMV18NDMpPEImJihCLTN8NjQpPj1CJiYocD1tWzIzXSgzMSxKLEsseixsKSksCnZbMV0pPEImJkItNDw8dlsxXT49QiYmKGNiLmNhbGwodGhpcyx6LmVxKSx0aGlzLnR5cGU9UzcpLDEyKSk8NCYmKEJ8OSk+PjM+PXZbMV0mJihLLnZ8fGdbNl0oNzMsdlsyXSx6LEspLHA9Sy52W0pdKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoKEJeNCkmKFE9WzIsIkoiLDZdLDE0KSkpe2lmKG5RLmNhbGwodGhpcyxKKSwhKEM9Sykpe2ZvcihBPXRoaXMuY29uc3RydWN0b3I7QTspe2lmKHA9KGI9bVs0OF0oNDYsQSksbVkpW2JdKWJyZWFrO0E9KHY9bFEoQS5wcm90b3R5cGUpKSYmdi5jb25zdHJ1Y3Rvcn1DPXA/dHlwZW9mIHBbUVsxXV09PT0iZnVuY3Rpb24iP3BbUVsxXV0oKTpuZXcgcDpudWxsfXRoaXMuanM9eiE9PXZvaWQgMD96Om51bGwsdGhpcy5YPUN9cmV0dXJuKEItKCgoQitRWzBdPDM4JiZCPDxRWzBdPj0yOCYmKEMudi5jbG9zZSgpLEMudj1KLGVbMzZdKDExLEMsQy52LEV6LGZ1bmN0aW9uKFope3JldHVybiBnWzMzXSgzNCxLLHosQyxaKX0pLApDLnYuc3RhcnQoKSksQi1RWzJdKSYxMSk9PTMmJih0aGlzLnY9MCx0aGlzLmk9bnVsbCx0aGlzLlg9bmV3IFh4LHRoaXMuTT1uZXcgWHgpLDcpXjE3KTxCJiYoQis4JjEzKT49QiYmKHouaT1LKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKEItKChCKzgmMTYpPCgoKEI8PDI+PShaPVs1LDQsMTRdLFopWzFdJiYoQitaWzFdJjEyKTwyJiYobj1HWzEzXSgxNyxmdW5jdGlvbihXLE4pe2lmKFcuTT09KE49WyJ2IiwiRiIsIkEiXSxKKSlyZXR1cm4gUT1iW05bMF1dW05bMF1dLHA9SFszM10oNTcsUSksV1tOWzJdXShLKSxXW05bMF1dKGJbTlsxXV0uc2VuZChuZXcgdVEoYi5VMygpLHApKSxDKTtpZihXLk0hPUspcmV0dXJuIHY9Vy5YLG1bMzVdKDEseixDLFEsdiksV1tOWzFdXSh6KTtpZigoQT1XLmkoKSxBKWluc3RhbmNlb2YgVVgpYi5NLm9uRXJyb3IoQyk7ZWxzZSBiLk0ub25FcnJvcih6KTtXLlIoKX0pKSxCKS0yXjMyKTxCJiYoQisxJjU5KT49QiYmCihDPUouQSxSW1pbMl1dKDExLHosSiksbj1nWzM0XSgzMixLLEosQykpLDIpJiZCK1pbMF0+PTE5JiZULmNhbGwodGhpcyx6LDE5KSw3KT4+WlsxXTwyJiYoQl5aWzBdKT49MTcmJihLLnYuY2xlYXIoKSxLLmk9LTEsSy5NPS0xLEsuWD0tMSxhYy5sZW5ndGg8eiYmYWMucHVzaChLKSksQitaWzFdPj5aWzFdKXx8KEoudj1DP2tbMTJdKDM2LEsseik6Syksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQiY3Nyk9PSgoQiYoQi05Pj4oQT1bIm8iLDMsNTBdLEFbMV0pPT1BWzFdJiYoSyBpbnN0YW5jZW9mIGc0Pyh6LkE9SyxSWzQ4XSgxNCxudWxsLHouRix6LkEpKTooSnx8KEs9RFs0MV0oNzAsbnVsbCxoTSxLKSksei5BPW5ldyBnNChLLHouRikpLHY9eiksNTYpKT09QiYmS1tBWzBdXSE9eiYmKGRQKCksR2wuY2xlYXJUaW1lb3V0KEtbQVswXV0pLEtbQVswXV09eiksQikpe2ZvcihDPVtdLGI9ejtiPEsubGVuZ3RoO2IrKylDLnB1c2goS1tiXV5KW2JdKTt2PUN9cmV0dXJuKEIrCkFbMV0mMjUpPj1CJiYoQis4JkFbMl0pPEImJihKPUo9PT12b2lkIDA/bnVsbDpKLHY9a1s0Nl0oMTQsZnVuY3Rpb24ocCxRLG4pe3Auc3Vic2NyaWJlKG5ldyBmZyhRLGZ1bmN0aW9uKFope1EubmV4dCgobj1LLFopKX0sdm9pZCAwLChuPXosZnVuY3Rpb24oKXtufHxRLm5leHQoSiksUS5jb21wbGV0ZSgpfSkpKX0pKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtyZXR1cm4gZj1bInJjLWJ1dHRvbnMiLDIsInJjLWNvbnRyb2xzIl0sQis1Pj4zPj1mWzFdJiYoQjw8ZlsxXSY2KTxmWzFdJiYoUT1bXSxaPWZ1bmN0aW9uKEwpe0hbMTNdKChuKyssMTUpLHosYihMLE4rKykpLnN1YnNjcmliZShuZXcgZmcoQSxmdW5jdGlvbihyKXtBLm5leHQocil9LHZvaWQgMCxmdW5jdGlvbihyKXtmb3Iocj0obi0tLHt9KTtRLmxlbmd0aCYmbjx2O3I9e2VGOnZvaWQgMH0pci5lRj1RLnNoaWZ0KCksWihyLmVGKTshV3x8US5sZW5ndGh8fG58fEEuY29tcGxldGUoKX0pKX0sCm49QyxXPUosTj1DLHAuc3Vic2NyaWJlKG5ldyBmZyhBLGZ1bmN0aW9uKEwpe3JldHVybiBuPHY/WihMKTpRLnB1c2goTCl9LHZvaWQgMCxmdW5jdGlvbigpeyEoVz1LLFcpfHxRLmxlbmd0aHx8bnx8QS5jb21wbGV0ZSgpfSkpLHg9ZnVuY3Rpb24oKXtRPXp9KSwoQnw4KT09QiYmKEs9WyciPjwvZGl2PjxkaXYgY2xhc3M9IicsJyI+PGRpdiBjbGFzcz0iJywidW5kby1idXR0b24taG9sZGVyIl0seD1URCgnPGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy1mb290ZXIiKStLWzFdK1JbMTFdKDcxLCJyYy1zZXBhcmF0b3IiKStLWzBdK1JbMTFdKDczLGZbMl0pK0tbMV0rUlsxMV0oNzEsInByaW1hcnktY29udHJvbHMiKStLWzFdK1JbMTFdKDcsZlswXSkrS1sxXStSWzExXSg3MywiYnV0dG9uLWhvbGRlciIpK3orUlsxMV0oOSwicmVsb2FkLWJ1dHRvbi1ob2xkZXIiKStLWzBdK1JbMTFdKDksImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDM5LCJhdWRpby1idXR0b24taG9sZGVyIikrS1swXSsKUlsxMV0oNzEsImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDczLCJpbWFnZS1idXR0b24taG9sZGVyIikrS1swXStSWzExXSg3LCJidXR0b24taG9sZGVyIikreitSWzExXSg3MSwibGl2ZW5lc3MtYnV0dG9uLWhvbGRlciIpK0tbMF0rUlsxMV0oOSwiYnV0dG9uLWhvbGRlciIpK3orUlsxMV0oNzMsInFyLWJ1dHRvbi1ob2xkZXIiKStLWzBdK1JbMTFdKDcsImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDczLCJoZWxwLWJ1dHRvbi1ob2xkZXIiKStLWzBdK1JbMTFdKDcsImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDczLEtbZlsxXV0pKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzMsInZlcmlmeS1idXR0b24taG9sZGVyIikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy1jaGFsbGVuZ2UtaGVscCIpKyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHRhYkluZGV4PSIwIj48L2Rpdj48L2Rpdj48L2Rpdj4nKSkseH0sZnVuY3Rpb24oQix6LEssSixDLApiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCh4PVsyNywiRiIsNDJdLChCLTl8NTgpPEIpJiYoQis2JjQ0KT49Qil7Zm9yKDt6PUhbeFsyXV0oMTMsbnVsbCx0aGlzKTspZVsxN10oMjMsMyxudWxsLHosdGhpcy52LHRoaXNbeFsxXV0sdGhpcyk7dGhpcy5SPSExfWlmKEItNT4+Mz09Mylmb3IoSj1LfHxbRTFdLEM9MDtDPEoubGVuZ3RoO0MrKylpZigoYj1tWzJdKDg5LEpbQ10pKSYma1sxMF0oMTAseixiKSYma1sxMF0oMix6LGIucGFyZW50RWxlbWVudHx8bnVsbCkpeyhiLnRhZ05hbWU9PWtzJiZiLmhhc0F0dHJpYnV0ZSh0TSgpKXx8Yi50YWdOYW1lPT1kNXx8Yi50YWdOYW1lPT1Venx8Yi50YWdOYW1lPT1NN3x8Yi50YWdOYW1lPT13UD9iLmRpc2FibGVkfHxiLmhhc0F0dHJpYnV0ZShJYygpKSYmIVJbMzNdKDE3LDAsYik6IWVbNF0oeFswXSwwLGIpKT9nWzI2XSgyMCwxLGIpLmZvY3VzKCk6Yi5mb2N1cygpO2JyZWFrfXJldHVybigoQi04Pj4zfHwoZj1HWzEzXSg4LGZ1bmN0aW9uKEwsCnIsVixQKXtQPVsxMCwoVj1bMywhMSw2XSwwKSwiczMiXTtzd2l0Y2goTC5NKXtjYXNlIEM6aWYoIWIuWCl0aHJvdyBFcnJvcigiY291bGQgbm90IGNvbnRhY3QgcmVDQVBUQ0hBLiIpO2lmKCFiLk0pcmV0dXJuIEwucmV0dXJuKEhbMV0oNzEsUFsxXSxLKSk7aWYodHlwZW9mIEEhPT0ic3RyaW5nInx8QS5sZW5ndGghPVZbMl0pcmV0dXJuIEwucmV0dXJuKEhbMV0oNzIsUFsxXSx6KSk7cmV0dXJuKEwuQShLKSxMKS52KGIuWCx6KTtjYXNlIHo6TC5GKFZbKG49TC5YLFApWzFdXSk7YnJlYWs7Y2FzZSBLOnRocm93IEwuaSgpLEVycm9yKCJjb3VsZCBub3QgY29udGFjdCByZUNBUFRDSEEuIik7Y2FzZSBWW1BbMV1dOnJldHVybiBwPXtwaW46QX0sVz17fSxRPShXW0Z4XT1iLnYsV1tCbF09T1syM10oOTAsZU4ocCksVltQWzFdXSksVyksTC5BKEopLEwudihuLnNlbmQoczMsUSwxRTQpLDcpO2Nhc2UgNzpyZXR1cm4gTj1MLlgsdj1uZXcgekgoTiksWj12W1BbMl1dKCksYi52PVlbMzRdKDMsCkssdiksYi52JiZaIT1LJiZaIT1WWzJdJiZaIT1QWzBdfHwoYi5NPVZbMV0pLHYubGsoKSYmKHI9di5saygpLGcwWzRdKDIsQVgscixQWzFdKSksTC5yZXR1cm4oSFsxXSg2OCxQWzFdLFosdi5kSCgpKSk7Y2FzZSBKOnRocm93IEwuaSgpLEVycm9yKCJ2ZXJpZnlBY2NvdW50IHJlcXVlc3QgZmFpbGVkLiIpO319KSksQikrMz4+Mz09MyYmKGY9KEM9eVszOF0oNjYseixKLEspKT09ej92b2lkIDA6Qy5hY3Rpb24pLChCJjEyMSk9PUIpJiYoZj1HWzEzXSgxNyxmdW5jdGlvbihMLHIsVixQKXtyPVsxMCwwLChQPVsiY2FsbCIsInYiLCJpIl0sOCldO3N3aXRjaChMLk0pe2Nhc2UgSzpMLkEoeiwzKSxWPWJbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLHA9ViE9PXZvaWQgMD9WW1BbMF1dKGIpOm5ldyBLQyhnWzEyXSgxMixiKSk7Y2FzZSBDOnJldHVybiBMW1BbMV1dKHAubmV4dCgpLHJbMl0pO2Nhc2UgclsyXTppZihuPUwuWCxuLmRvbmUpe0wuR18oMyk7YnJlYWt9KHY9bi52YWx1ZSxBKS5uZXh0KHYpLApMLkdfKEMpO2JyZWFrO2Nhc2UgMzppZihMLm0oKSxMLksoOSksIW58fG4uZG9uZXx8IShXPXAucmV0dXJuKSl7TC5HXyg5KTticmVha31yZXR1cm4gTFtQWzFdXShXW1BbMF1dKHApLDkpO2Nhc2UgOTppZihMLm0oclsxXSxyWzFdLEspLFEpdGhyb3cgUS5lcnJvcjtMLm8oclswXSxLKTticmVhaztjYXNlIHJbMF06TC5vKEopO2JyZWFrO2Nhc2UgejpaPUxbUFsyXV0oKSxRPXtlcnJvcjpafSxMLkdfKDMpO2JyZWFrO2Nhc2UgSjpBLmNvbXBsZXRlKCksTC5SKCl9fSkpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpe2lmKEIrMT4+KCgoKEJeNTEpJihCLShjPVs0LDExLCJQIl0sYylbMF0+PmNbMF18fChMRC5jYWxsKHRoaXMsNjU5LDEyKSx0aGlzLmRlPUhbMF0oNTksMCxkay5KKCksMTIxKSx0aGlzLk15PXRoaXMuVj10aGlzLm5xPXRoaXMua0o9dGhpcy5DPXRoaXMudVk9dGhpcy5sWT10aGlzLnpKPXRoaXMuTT10aGlzLmk9dGhpcy5FMz0KdGhpcy53Yj10aGlzLkRNPXRoaXMuSk89dGhpcy5YQz10aGlzLkQ9dGhpcy5CMT10aGlzLkk9dGhpcy5VPXRoaXMuUz10aGlzLlg9dGhpcy5pWT10aGlzLlFlPXRoaXMuVzE9dGhpcy5YZz10aGlzLks9dGhpcy5MPXRoaXMuZFY9dGhpcy5XPXRoaXMubz10aGlzLmc9dGhpcy5BTD10aGlzLkE9dGhpcy5HPXRoaXMuS3E9dGhpcy5mcT10aGlzLnBxPXRoaXMuaj10aGlzLkg9dGhpcy5CPS0xLHRoaXMubT10aGlzW2NbMl1dPS0xLHRoaXMuQmg9Z1s3XSgzNiksdGhpcy52dj1nWzddKDM2KSx0aGlzLk1qPWdbN10oNyksdGhpcy5hMD1nWzddKDcpLHRoaXMueUE9Z1s3XSgzOSksdGhpcy5udT1nWzddKDcpKSwxNSkpPj03JiYoQisyJjE2KTwyJiYoej16fHx7fSx4PXoudUIsVz1bJyBhcmlhLWxhYmVsbGVkYnk9IicsInJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLWdpZiIsJyI+PC9kaXY+PC9kaXY+J10sbj16LmRpc2FibGVkLEs9ei5jaGVja2VkLFE9ei5JTyxiPXouYXR0cmlidXRlcyxmPQp6LkQzLHA9ei5pZCxyPXoucG8sTD1hWigpLE49JzxzcGFuIGNsYXNzPSInK1JbY1sxXV0oNywicmVjYXB0Y2hhLWNoZWNrYm94IikrIiAiK1JbY1sxXV0oMzksImdvb2ctaW5saW5lLWJsb2NrIikrKEs/IiAiK1JbY1sxXV0oMzksInJlY2FwdGNoYS1jaGVja2JveC1jaGVja2VkIik6IiAiK1JbY1sxXV0oOSwicmVjYXB0Y2hhLWNoZWNrYm94LXVuY2hlY2tlZCIpKSsobj8iICIrUltjWzFdXSg3MywicmVjYXB0Y2hhLWNoZWNrYm94LWRpc2FibGVkIik6IiIpKyh4PyIgIitSW2NbMV1dKDM5LHgpOiIiKSsnIiByb2xlPSJjaGVja2JveCIgYXJpYS1jaGVja2VkPSInKyhLP0pCKCk6Q0MoKSkrJyInKyhyP1dbMF0rUltjWzFdXSgzOSxyKSsnIic6IiIpKyhwPycgaWQ9IicrUltjWzFdXSg3MyxwKSsnIic6IiIpKyhuP2JmKCk6JyB0YWJpbmRleD0iJysoZj9SW2NbMV1dKDM5LGYpOm1nKCkpKyciJyksYj8oR1sxMF0oOTIsQUIsYik/QT1iLlZlKCk6KEM9U3RyaW5nKGIpLEE9dmwudGVzdChDKT8KQzpUSCgpKSxKPUEsR1sxMF0oODcsQUIsSikmJihKPUouVmUoKSksUD0oSiYmIUouc3RhcnRzV2l0aChvOSgpKT9vOSgpOiIiKStKKTpQPSIiLFo9T1s0MF0oOTcsTCxOK1ArJyBkaXI9Imx0ciI+Jyksdj12PXtJTzpRIT1udWxsP1E6bnVsbH0sVj1URCgodi5JTz8nPGRpdiBjbGFzcz0iJytSW2NbMV1dKDksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXIiKSsnIiByb2xlPSJwcmVzZW50YXRpb24iPjwvZGl2PjxkaXYgY2xhc3M9IicrUltjWzFdXSg3MywicmVjYXB0Y2hhLWNoZWNrYm94LWJvcmRlckFuaW1hdGlvbiIpKyciIHJvbGU9InByZXNlbnRhdGlvbiI+PC9kaXY+PGRpdiBjbGFzcz0iJytSW2NbMV1dKDcxLCJyZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lciIpKyciIHJvbGU9InByZXNlbnRhdGlvbiI+PGRpdiBjbGFzcz0iJytSW2NbMV1dKDcxLCJyZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lci1vdmVybGF5IikrV1syXTonPGRpdiBjbGFzcz0iJytSW2NbMV1dKDcxLFdbMV0pKwonIiByb2xlPSJwcmVzZW50YXRpb24iPjwvZGl2PicpKyc8ZGl2IGNsYXNzPSInK1JbY1sxXV0oNzEsInJlY2FwdGNoYS1jaGVja2JveC1jaGVja21hcmsiKSsnIiByb2xlPSJwcmVzZW50YXRpb24iPjwvZGl2PicpLHE9T1s0MF0oOTgsZ1syNV0oNTEsWixWKSwkVigpKSksQi0xXjI0KT49QiYmKEItNXw4MSk8QiYmKHRoaXMucHJvbWlzZT1LLHRoaXMucmVzb2x2ZT1KLHRoaXMucmVqZWN0PXopLGNbMF0pPT1jWzBdKWE6e2lmKGVbMjRdKChiPWI9PT12b2lkIDA/SW5maW5pdHk6Yiw1MSksSikpe3E9RFszMl0oNjQsITAsMCxiLGZ1bmN0aW9uKEUsUyl7cmV0dXJuIG1bNDhdKDIsSyxmdW5jdGlvbihhLHUpe3JldHVybiBKKEUsYSxTLHUpfSkoSFsxM10oMzksbnVsbCxDKEUsUykpKX0pO2JyZWFrIGF9dHlwZW9mIEo9PT0ibnVtYmVyIiYmKGI9SikscT1rWzQ2XSg0MCxmdW5jdGlvbihFLFMpe3JldHVybiBEWzMwXSgxNixudWxsLHosITEsSyxDLFMsYixFKX0pfXJldHVybihCPj4yJmNbMV0pPT0KMiYmKGI9Yj09PXZvaWQgMD8yOmIsRFs3XSgxNyxLLEouTSksdj1ZWzM0XShjWzFdLHosITAsQyxKKSxKLk0ucmVuZGVyKHYsbVs2XSg3NywiLSIsSi5pZCksU3RyaW5nKGdbMzJdKDQ5LHosMTAsSikpLEhbMl0oMjcsSi52LHdyKSksQT1KLk0uQSxxPUdbMzldKDkwLDEsSyxBLHYsbmV3IE1hcChbW3lnLEouWGddLFtqdCxKLlcxXSxbaUYsSi5LXSxbWUEsSi5KTF0sW3BDLEouTF0sW1EwLEouRmddLFt3aSxKLkRdLFtuQyxKLmtKXSxbWjQsZnVuY3Rpb24oRSxTKXtyZXR1cm4gT1tTPVs4LDIsNF0sMTNdKFNbMl0sU1swXSxTWzFdLDcsMjUsSixFKX1dLFtXbCxKLmlZXSxbZ3QsSi5HXSxbTlIsSi5BTF0sW08zLEouQl0sW0dMLEoubnFdXSksSixKLk8pLmNhdGNoKGZ1bmN0aW9uKEUsUyxhLHUpe2lmKCgoMCwodT1bMiwoUz1bImVuIiwwLCEwXSw0KSwwXSx0JCkuYlMpKCksSikua24uY29udGFpbnMoQSkpe2lmKChhPWItMSxhKT56KXJldHVybiBEWzMyXSgyNSxTWzFdLG51bGwsSixDLAphKTtKLk0uSyhZWzIxXSh1WzFdLFNbdVsyXV0sU1t1WzBdXSxKKSxtWzZdKDc4LCItIixKLmlkKSxTW3VbMF1dKX10aHJvdyBFO30pKSxxfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgodj1bOTcsNzMsInYiXSxCKXw1KT4+Mz09MSlhOntpZihiLk0hPT0wKXtBPXo7YnJlYWsgYX1BPShIWzI3XSg1LEMsSixIWzE2XSgzLGJbdlsyXV0pKSxLKX1yZXR1cm4oQl4oKEJeMjYpPj4oKEImNDEpPT1CJiYoSz1bInJjLXByZXBvc2l0aW9uYWwtdGFibG9vcC1iZWdpbiIsJyIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgdGFiaW5kZXg9IjAiPicsIiAiXSx6PU9bNDBdKDk5LGFaKCksJzxkaXYgaWQ9InJjLXByZXBvc2l0aW9uYWwiPjxzcGFuIGNsYXNzPSInK1JbMTFdKDcsS1swXSkrJyIgdGFiSW5kZXg9IjAiPjwvc3Bhbj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLXByZXBvc2l0aW9uYWwtc2VsZWN0LW1vcmUiKStLWzFdKSxnWzI1XSg2OCx6LCJQbGVhc2UgZmlsbCBpbiB0aGUgYW5zd2VycyB0byBwcm9jZWVkIiksCk9bNDBdKHZbMF0seiwnPC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtcHJlcG9zaXRpb25hbC12ZXJpZnktZmFpbGVkIikrS1sxXSksZ1syNV0oNTIseiwiUGxlYXNlIHRyeSBhZ2FpbiIpLE9bNDBdKDk5LGdbMjVdKDMsT1s0MF0oOTkseiwnPC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSh2WzFdLCJyYy1wcmVwb3NpdGlvbmFsLXBheWxvYWQiKSsnIj48L2Rpdj4nKSxEWzMwXSgxMSxLWzJdKSksJzxzcGFuIGNsYXNzPSInK1JbMTFdKDcxLCJyYy1wcmVwb3NpdGlvbmFsLXRhYmxvb3AtZW5kIikrJyIgdGFiSW5kZXg9IjAiPjwvc3Bhbj48L2Rpdj4nKSxBPXopLDQpfHwoQT1uZXcgemgoZnVuY3Rpb24ocCxRKXtmb3IoUT16O1E8Sy5sZW5ndGgmJiFwLmNsb3NlZDtRKyspcC5uZXh0KEtbUV0pO3AuY29tcGxldGUoKX0pKSwoQiY5Mik9PUImJihBPXo9PT1LKSw3OCkpPj40fHwoQT1URCgnPGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYW5jaG9yLWVycm9yLW1zZy1jb250YWluZXIiKSsKJyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PHNwYW4gY2xhc3M9IicrUlsxMV0odlsxXSwicmMtYW5jaG9yLWVycm9yLW1zZyIpKyciIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9kaXY+JykpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQj4+KEI+Pih2PVsxLDMyLDI0XSwyKTw0JiYoQl41Nik+PjM+PXZbMF0mJihKPUsuTSxwPUoucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxKLndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZXx8Si5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEoub1JlcXVlc3RBbmltYXRpb25GcmFtZXx8Si5tc1JlcXVlc3RBbmltYXRpb25GcmFtZXx8eiksdlswXSkmOSk9PXZbMF0pYTp7aWYoKEshPShDPVshMSwwLCIhIl0sbnVsbCl8fChLPTEwMjQpLEE9SyE9PTAsIUEpJiYhZ2Qpe3A9SjticmVhayBhfWlmKCFZWzM3XSgxNCxKLEEpKXRocm93IGVbNl0oMjEseGIoKSk7Yj10eXBlb2YgSjtzd2l0Y2goSyl7Y2FzZSA1MTI6c3dpdGNoKGIpe2Nhc2UgInN0cmluZyI6cD0KUls0Ml0oMTQsQ1t2WzBdXSxKLHopO2JyZWFrIGE7Y2FzZSAiYmlnaW50IjpwPVN0cmluZyhENCg2NCxKKSk7YnJlYWsgYTtkZWZhdWx0OnA9UlsxOF0oMTYsQ1t2WzBdXSxKLHopO2JyZWFrIGF9Y2FzZSAxMDI0OnN3aXRjaChiKXtjYXNlICJzdHJpbmciOnA9T1t2WzJdXSh2WzFdLENbdlswXV0sNjQsSik7YnJlYWsgYTtjYXNlICJiaWdpbnQiOnA9R1szMV0oOTMsRDQoNjQsSikpO2JyZWFrIGE7ZGVmYXVsdDpwPWVbNl0oODAsITAsQ1t2WzBdXSxKKTticmVhayBhfWNhc2UgQ1t2WzBdXTpzd2l0Y2goYil7Y2FzZSAic3RyaW5nIjpwPVJbNDJdKDgsQ1t2WzBdXSxKLENbMF0pO2JyZWFrIGE7Y2FzZSAiYmlnaW50IjpwPUdbMzFdKDkxLEQ0KDY0LEopKTticmVhayBhO2RlZmF1bHQ6cD1ZWzQ2XSh2WzBdLENbdlswXV0sSixDWzBdKTticmVhayBhfWRlZmF1bHQ6cD15WzI3XSh2WzBdLENbMl0sSyk7YnJlYWsgYX19cmV0dXJuKEJ8dlsyXSk9PUImJihiPXlbMTVdKDQ0LEMudXJpKSxDLlFYJiYKRFsyOF0oMixKLGJOKEFlKCkqeikudG9TdHJpbmcoKStLK2IudixiKSxwPWIpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKCh2PVs5LDEsNDhdLChCLXZbMF18NjIpPj1CJiYoQi12WzBdfHZbMl0pPEImJihBPWZ1bmN0aW9uKHAsUSxuKXtmb3Iobj0oUT1bXSx7ZUs6MH0pO1EmJiFwLmNsb3NlZCYmbi5lSzxKLmxlbmd0aDtuPXtlSzpuLmVLfSxuLmVLKyspUS5wdXNoKEhbMTNdKDIzLHosSltuLmVLXSkuc3Vic2NyaWJlKG5ldyBmZyhwLGZ1bmN0aW9uKFope3JldHVybiBmdW5jdGlvbihXLE4pe2lmKFEpe2ZvcihOPUs7TjxRLmxlbmd0aDtOKyspTiE9PVouZUsmJlFbTl0udW5zdWJzY3JpYmUoKTtRPXp9cC5uZXh0KFcpfX0obikpKSl9KSwoQiYyNik9PUIpJiYoQT1nWzE2XSgyNix2b2lkIDAsSyx6LFFCKSksKEI8PHZbMV0mMjMpPDQpJiZCKzI+PjQ+PTIpYTp7aWYoIUope0E9SzticmVhayBhfUE9KGI9UlsyNl0oMjEsSix6KSxiPT09bnVsbHx8Yj09PXZvaWQgMD9DPQpLOihITCgpLEM9RFs0MF0oNjAsSyxiKSksQyl9aWYoKCgoQnwyKSYxNik8dlsxXSYmKEJ8dlswXSk+PTI2JiYoQz17fSxKPUo9PT12b2lkIDA/e306SixZWzE5XSgzOCx6LGZDKS5mb3JFYWNoKGZ1bmN0aW9uKHAsUSxuKXsobj1mQ1twXSxuLlAxKSYmKFE9SltuLmdldE5hbWUoKV18fHRoaXMuZ2V0KG4pKSYmKENbbi5QMV09USl9LEspLEE9QyksQiYyMSk9PUIpSFszOF0oMzQsbnVsbCx0aGlzKTtyZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEpe2lmKChCPj4yJjEzKT09KChCLTJeNyk8KChCPj4yJjEyKTwocT1bMTksMjAsMTI4XSwzKSYmQjw8MT49cVswXSYmSy5pbmZvKGZ1bmN0aW9uKCl7cmV0dXJuIlRJTUVPVVQ6ICIren0pLEIpJiYoQi0yXnFbMV0pPj1CJiYoUD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSyx6KSksNCkpYTp7aWYoYj09KEE9QT09PShXPVsxMDI0LCJyZmFyciIsMTAyM10sdm9pZCAwKT8KMDpBLG51bGwpKVE9MzIsSj8oYj1bSl0sUXw9cVsyXSk6Yj1bXSxDJiYoUT1RJi0xNjc2MDgzM3woQyZXWzJdKTw8MTQpO2Vsc2V7aWYoIUFycmF5LmlzQXJyYXkoYikpdGhyb3cgRXJyb3IoIm5hcnIiKTtpZigoUT1iW0EkXXwwLG9SKSYmeiZRKXRocm93IEVycm9yKFdbMV0pO2lmKDIwNDgmUSYmISgyJlEpJiZnWzEyXSgxNywxLDUsImNhcnIiKSxRJjI1Nil0aHJvdyBFcnJvcigiZmFyciIpO2lmKFEmNjQpe1A9KChRfEEpIT09USYma1szOF0oNzgsYixRfEEpLGIpO2JyZWFrIGF9aWYoSiYmKFF8PXFbMl0sSiE9PWJbMF0pKXRocm93IEVycm9yKCJtaWQiKTtiOntpZih4PShMPShmPWIsUXw2NCksZi5sZW5ndGgpKWlmKFo9eC16LFY9ZltaXSxWIT1udWxsJiZ0eXBlb2YgVj09PSJvYmplY3QiJiZWLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtpZigodj0oTj1MJnFbMl0/MDotMSxaLU4pLHYpPj1XWzBdKXRocm93IEVycm9yKCJwdnRsbXQiKTtmb3IociBpbiBWKXA9K3IscDx2JiYoZltwKwpOXT1WW3JdLGRlbGV0ZSBWW3JdKTtRPUwmLTE2NzYwODMzfCh2JldbMl0pPDwxNDticmVhayBifWlmKEMpe2lmKG49aFkoQyx4LShMJnFbMl0/MDotMSkpLG4+V1swXSl0aHJvdyBFcnJvcihLKTtRPUwmLTE2NzYwODMzfChuJldbMl0pPDwxNH1lbHNlIFE9TH19UD0oa1szOF0oOTQsYixRfDY0fEEpLGIpfXJldHVybigoQi02XjI3KT49QiYmKEIrOCY3OSk8QiYmTEMuY2FsbCh0aGlzLDgsUlIpLEJ8NTYpPT1CJiYoYj1uZXcgTWFwLEM9Qz09PXZvaWQgMD81RTM6QyxQPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsRSxTLGEpe2E9KEouYWRkRXZlbnRMaXN0ZW5lcigoUz0oYT1LLGZ1bmN0aW9uKHUsWCl7KFg9WyJwb3J0cyIsNjMsMTZdLHUuZGF0YT09PXJ0KSYmdVtYWzBdXS5sZW5ndGg+eiYmKGtbWFsyXV0oWFsxXSxhKSxKLnJlbW92ZUV2ZW50TGlzdGVuZXIoVjAoKSxTKSxjKG5ldyBHSCh1W1hbMF1dW3pdLGIsbnVsbCxHbC5sb2NhdGlvbi5vcmlnaW4pKSl9KSxWMCgpKSxTKSxPWzJdKDU2LApmdW5jdGlvbigpe0UoKEoucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsUyksRXJyb3IoIlRpbWVkIG91dC4iKSkpfSxDKSl9KSksUH0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCEoQi0oQz1bMTMsMTUsOF0sQylbMl0+PjMpKWZvcihKIGluIEspIWlzTmFOKEopJiZ6KEssK0osS1tKXSk7aWYoKEIrNV5DWzBdKTxCJiYoQi02fDI3KT49Qil7aWYoSz0oej16PT09dm9pZCAwP2cwWzNdKENbMl0sMCk6eix3aW5kb3dbaTNdW1NOKCldKVt6XSwhSyl0aHJvdyBFcnJvcigiSW52YWxpZCByZUNBUFRDSEEgY2xpZW50IGlkOiAiK3opO2I9a1tDWzJdXShDWzFdLCItIixLLmlkKS52YWx1ZX1yZXR1cm4gYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigoQnwoKChCJihuPVszNiwxLDNdLDEyMSkpPT1CJiYoQz1sLFE9UlsyNl0oMjEsSyxrW25bMV1dKDE1LEMsSyx6LEopLEMpKSxCKzY+Pm5bMl0pPT1uWzJdJiYoUT1LLmgqNDI5NDk2NzI5NisoSy5NeD4+PnopKSwKMikpPj5uWzJdPT1uWzFdKXtpZihLIT09bnVsbCYmSiBpbiBLKXRocm93IEVycm9yKCdUaGUgb2JqZWN0IGFscmVhZHkgY29udGFpbnMgdGhlIGtleSAiJytKK3opO0tbSl09Q31pZigoQi0yJjE1KT09blsxXSlhOmlmKHY9ITEscD1SWzE0XSg3NixudWxsLEEsYixDLGZ1bmN0aW9uKFosVyl7cmV0dXJuIHY9KFc9SFsyN10oMjcsMzIsSyxKLCExLFopLFchPT1aKSYmVyE9eixXfSkscCE9eil7UT0odiYmIXlbMl0oNixwKSYmSFtuWzBdXShuWzJdLEMsSykscCk7YnJlYWsgYX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEo9WyIiLDEwLG51bGxdLEIrNT4+NHx8KEs9R1tKWzFdXSg5MSx4aix6KT96OnogaW5zdGFuY2VvZiBJYj9URChtWzI2XSg2LEpbMF0seikudG9TdHJpbmcoKSk6VEQoU3RyaW5nKFN0cmluZyh6KSkucmVwbGFjZShEbCxZWzQ3XS5iaW5kKEpbMl0sMjYpKSx5WzM4XSg0OCwwLEpbMl0sMSx6KSkpLEt9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLApRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyl7aWYoKCgoQnw1Nik9PSh3PVsyLCJoIiw0XSxCKSYmKEo9SyxDPShiPU9bMzhdKDQxLHopKT9iLmNyZWF0ZVNjcmlwdFVSTChKKTpKLHN3PW5ldyBIbChDKSksQjw8MT49MTUmJihCfHdbMF0pPDI1JiYoc3c9R1szMV0oODcsZ1syMl0oMjMpP0JpZ0ludC5hc1VpbnROKDY0LChCaWdJbnQoSz4+PjApPDxCaWdJbnQoMzIpKStCaWdJbnQoej4+PjApKTprWzI2XSg2Myw4LHosSykpKSxCKSY0Nik9PUIpe2ZvcihXPVsxOCwxLCh4PShYPTAscT1LLk8sSy5YKSwxNildO1g8V1t3WzBdXTtYKyspRT1YKjgscVtYXT1uZXcgZXQoeFtFK3dbMl1dPDwyNHx4W0UrNV08PFdbd1swXV18eFtFKzZdPDw4fHhbRSs3XSx4W0VdPDwyNHx4W0UrV1sxXV08PFdbd1swXV18eFtFK3dbMF1dPDw4fHhbRSt6XSk7Zm9yKE09V1t3WzBdXTtNPDgwO00rKyljPXFbTS0xNV0sSj1jLk14LFU9cVtNLXdbMF1dLG49VS5NeCwKYj1VW3dbMV1dLEM9Y1t3WzFdXSxxW01dPUsuRihxW00tV1t3WzBdXV0scVtNLTddLG5ldyBldChKPj4+V1sxXV5DPDwzMV5KPj4+OF5DPDwyNF5KPj4+N15DPDwyNSxDPj4+V1sxXV5KPDwzMV5DPj4+OF5KPDwyNF5DPj4+NyksbmV3IGV0KG4+Pj4xOV5iPDwxM15iPj4+Mjlebjw8el5uPj4+Nl5iPDwyNixiPj4+MTlebjw8MTNebj4+PjI5XmI8PHpeYj4+PjYpKTtmb3IoTD0oWj1LLnZbUT0ocj0oaD1LLnZbNl0sSy52WzddKSxLLnZbd1syXV0pLCh2PUsudls1XSxhPTAsQT1LLnZbMF0sdylbcD1LLnZbV1sxXV0sMF1dLEsudlt6XSk7YTw4MDthKyspTj1BW3dbMV1dLGY9QS5NeCxQPShuZXcgZXQoZj4+PjI4Xk48PHdbMl1eTj4+PndbMF1eZjw8MzBeTj4+PjdeZjw8MjUsTj4+PjI4XmY8PHdbMl1eZj4+PndbMF1eTjw8MzBeZj4+PjdeTjw8MjUpKS5hZGQobmV3IGV0KEEuTXgmcC5NeHxwLk14JlouTXh8QS5NeCZaLk14LEFbd1sxXV0mcFt3WzFdXXxwW3dbMV1dJlpbd1sxXV18QVt3WzFdXSYKWlt3WzFdXSkpLFM9UVt3WzFdXSxkPVEuTXgsVj1RW3dbMV1dLHQ9US5NeCx1PUsuRihyLG5ldyBldChkPj4+MTReVjw8V1swXV5kPj4+V1swXV5WPDwxNF5WPj4+OV5kPDwyMyxWPj4+MTReZDw8V1swXV5WPj4+V1swXV5kPDwxNF5kPj4+OV5WPDwyMyksbmV3IGV0KHQmdi5NeHx+dCZoLk14LFMmdlt3WzFdXXx+UyZoW3dbMV1dKSxQbFthXSxxW2FdKSxyPWgsaD12LHY9USxRPUwuYWRkKHUpLEw9WixaPXAscD1BLEE9dS5hZGQoUCk7KCgoKChLLnZbMF09Sy52WzBdLmFkZChBKSxLKS52W1dbMV1dPUsudltXWzFdXS5hZGQocCksSy52W3dbMF1dPUsudlt3WzBdXS5hZGQoWiksSykudlt6XT1LLnZbel0uYWRkKEwpLEspLnZbd1syXV09Sy52W3dbMl1dLmFkZChRKSxLLnYpWzVdPUsudls1XS5hZGQodiksSy52WzZdPUsudls2XS5hZGQoaCksSy52KVs3XT1LLnZbN10uYWRkKHIpfWlmKCgoQl41NikmMTQpPT0oQj4+d1swXSYxM3x8KEM9RFs0OF0od1swXSwifFsiLCJdKyIsSix6KSkmJgooJGIudGVzdChDKT9KLnN0eWxlLnNldFByb3BlcnR5KEMsSyk6Si5zdHlsZVtDXT1LKSx3WzBdKSlhOntpZigoSz16LHFSPT09IiIpfHwheTApe3N3PUs7YnJlYWsgYX10cnl7Sj1mdW5jdGlvbihCOCl7cmV0dXJuIEI4fSxLPXkwLmNyZWF0ZVBvbGljeShxUix7Y3JlYXRlSFRNTDpKLGNyZWF0ZVNjcmlwdDpKLGNyZWF0ZVNjcmlwdFVSTDpKfSl9Y2F0Y2goQjgpe31zdz1LfXJldHVybiBzd30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKCgoKChCXigoQl41MSkmKCgoKChaPVsxMSwxMywyXSxCKSY0MSk9PUImJihRPW5ldyBZYihDLEEsdm9pZCAwLHYubCxmdW5jdGlvbihXKXtyZXR1cm4gZ1sxXSg3MCxudWxsLGNsLHYubFksVyl9KSxKJiZnWzE0XSg3MyxKLFEpLGImJlEucF8oYiksSyYmT1s0N10oMTksITAsSyxRKSxwJiZIWzQ1XSg2LCExLCEwLHosUSkseVsxMF0oNjUsMzYsUSx2KSxuPVEpLEItNyl8ODYpPEImJkItNjw8MT49QiYmKEM9bmV3IFN0LEMuc2V0U2Vjb25kcyhKLnYpLApZWzI2XSg0OSxaWzJdLEMsWVsxMF0oNjIseixKLk0pLEspLG49QyksWlswXSl8fChEWzIyXSg2OCxaWzJdLEssSiksSFszMF0oNSx6LEMubGVuZ3RoLEsudiksSFs0NV0oWlsyXSxLLnYuZW5kKCksSyksSFs0NV0oMyxDLEspKSwyMSkpPj40fHwoSj1ZWzI1XSg2LEsudiksbj15WzMzXSgyMSx6LEsudixKKSksQileWlsyXSkmMTUpPT00KWE6e2lmKHR5cGVvZiBKPT09InN0cmluZyIpe249KGI9ZW5jb2RlVVJJKEopLnJlcGxhY2UoSyxEWzIyXS5iaW5kKG51bGwsWlsxXSkpLEMmJihiPWIucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLG0wKCkpKSxiKTticmVhayBhfW49en1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe2lmKChCfDMyKT09KChCLTFeKEw9WzlFNSw1LDM0XSwxOSkpPj1CJiYoQi0xfDYpPEImJihyPUdbMTNdKDE3LGZ1bmN0aW9uKFYsUCl7cmV0dXJuKCgoKCgoKGY9KFo9KFc9bVtQPVsidG9TdHJpbmciLCJzcmMiLAoobj13aW5kb3cub3JpZ2luLCJhcHBlbmRDaGlsZCIpXSwzXSg4LEssIj8iLCIjIixKLG5ldyBNYXAoW1siZCIsQS55ZSgpXSxbIm9yaWdpbiIsbl1dKSx2KSxuZXcgVVJMKFlbMzFdKDIsVylbUFswXV0oKSxkb2N1bWVudC5iYXNlVVJJKSkub3JpZ2luLHg9bmV3IFByb21pc2UoZnVuY3Rpb24ocSl7Tj1xfSksbGYpKEUzKCkpLFJbMTddKDgsbnVsbCxKLEMsITEsZnVuY3Rpb24ocSxjLEUsUyxhLHUsWCxkKXtyZXR1cm4gR1sxM10oMTYsZnVuY3Rpb24odCxoLE0sVSl7VT0oTT1bMyw0LDVdLFsiUiIsMiwxXSk7c3dpdGNoKG1bVVsyXV0oMjgscSxLKSl7Y2FzZSBNWzBdOk4oeVsxNl0oMyxKLE1bVVsyXV0sWF8scSx1ZikpO2JyZWFrO2Nhc2UgTVtVWzJdXTpwJiZwKHlbMTZdKDUsSixNW1VbMV1dLFhfLHEsYVIpKTticmVhaztjYXNlIE1bVVsxXV06USYmKGg9eVsxNl0oMTksSiw2LFhfLHEsaEIpLFg9WVszNF0oNCxLLGgpLChhPWYuY29udGVudFdpbmRvd1tYXSkmJnR5cGVvZiBhPT09CiJmdW5jdGlvbiImJihFPWdbMTJdKDUsYS5jYWxsKGYuY29udGVudFdpbmRvdykpLGQ9RS5uZXh0KCkudmFsdWUsdT1FLm5leHQoKS52YWx1ZSxTPWQsYz11LFEoUyxjKSkpfXRbVVswXV0oKX0pfSxmLFopLGYpW1BbMV1dPVlbMzFdKDM1LFcpW1BbMF1dKCksZikud2lkdGg9ZHQoKSxmLmhlaWdodD1kdCgpLGYpLmFsbG93PVs5OSw5NywxMDksMTAxLDExNCw5N10ubWFwKGZ1bmN0aW9uKHEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHEpfSkuam9pbih6KSxmKS5zY3JvbGxpbmc9a2IoKSxmLnN0eWxlLm92ZXJmbG93PXZEKCksZi5zdHlsZSkuYm9yZGVyPXRCKCksZikuc3R5bGUubWFyZ2luPW1nKCksYilbUFsyXV0oZiksVi5yZXR1cm4oeCl9KSksQikpYTp7Zm9yKHY9ejt2PEMubGVuZ3RoOysrdilpZihBPUNbdl0sIUEubUEmJkEubGlzdGVuZXI9PUsmJkEuY2FwdHVyZT09ISFKJiZBLmRCPT1iKXtyPXY7YnJlYWsgYX1yPS0xfWlmKChCJjQ1KT09Qil7Zm9yKEo9KFE9KHA9KFo9CihLPSh6PXo9PT12b2lkIDA/ZzBbM10oMSwwKTp6LEspPT09dm9pZCAwP3t9OksseVtMWzJdXSg0MSxudWxsLHosSykpLFouSkIpLFouY2xpZW50KSxnWzEyXShMWzFdLEZPKHApKSksQz1KLm5leHQoKTshQy5kb25lO0M9Si5uZXh0KCkpaWYodj1DLnZhbHVlLCFbQjcuZ2V0TmFtZSgpLG1DLmdldE5hbWUoKSxLNS5nZXROYW1lKCldLmluY2x1ZGVzKHYpKXRocm93IEVycm9yKFUzKCkpO2lmKGI9cFtLNS5nZXROYW1lKCldKXtpZihuPWVbMzVdKDkwLG51bGwsYiksIW4pdGhyb3cgRXJyb3IoTVIoKSk7US5NLmw9bn1BPVEubChRLkYuYmluZChRLHd0LHAsTFswXSwhMSkpLHI9R1sxMV0oNDIsQSl9aWYoKEIrOCYxNik8TFsxXSYmKEI+PjEmOSk+PTcpYTp7aWYoKFE9KHY9Sy5XLEopLmluZGV4T2YoSVIoKSx2KSxRKT09LTEpe3I9Rl87YnJlYWsgYX1pZihDPShiPUouc3Vic3RyaW5nKHYsUSksTnVtYmVyKGIpKSxpc05hTihDKSl7cj1CSTticmVhayBhfWlmKEE9USt6LEErQz5KLmxlbmd0aCl7cj0KRl87YnJlYWsgYX1yPShLLlc9KHA9Si5zbGljZShBLEErQyksQSkrQyxwKX1yZXR1cm4gcn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe2lmKChCXjQ3KT4+KEItOTw8MTwocj1bIlIiLDI3LDBdLEIpJiYoQiszJjExKT49QiYmKG9nLmNhbGwodGhpcyksdGhpcy52PW5ldyBzMChLKSx0aGlzLmk9eix0aGlzLk09SyYmSy5hQXx8bnVsbCxDPUsmJksuVm98fG51bGwsSyYmSy5VeiYmKEM/Q1t6a109S3Q6Qz1KRih6ayxLdCkpLHRoaXMudi5PPUMsSj1LJiZLLk5ifHxudWxsLEsmJksuWEomJihKP0pbQ3RdPUsuWEo6Sj1KRihDdCxLLlhKKSksSyYmSy5ReSYmKEo/SltiNl09Sy5ReTpKPUpGKGI2LEsuUXkpKSx0aGlzLnYubnE9SiwocD1LJiZLLmdDKSYmIVJbMl0oMjQscCkmJih0aGlzLnYubD1wKSx0aGlzLkE9SyYmSy5mMXx8ITEsdGhpc1tyWzBdXT1LJiZLLmRUfHwhMSwoQT1LJiZLLmlCKSYmIVJbMl0oMTYsQSkmJihiPXRoaXMuTSx0aGlzLnYuUD0KQSxiIT09bnVsbCYmQSBpbiBiJiYodj10aGlzLk0sQSBpbiB2JiZkZWxldGUgdltBXSkpLHRoaXMuWD1uZXcgQUYodGhpcykpLChCPDwxJjExKT49OCYmKEItOCY4KTwyJiYoTD1tWzIzXShyWzFdLEosSyx6LGwpKSwzKT09Myl0aHJvdyBFcnJvcigiRG8gbm90IGluc3RhbnRpYXRlIGRpcmVjdGx5Iik7cmV0dXJuKChCPj4yJjE5KT49MTcmJihCLTImOCk8MyYmei52LnYuTVooSyxnWzM1XSg0OCx6Lk0pKS50aGVuKGZ1bmN0aW9uKFYpe3pbVj1bImwiLCJ2IiwiTSJdLFZbMl1dW1ZbMV1dJiYoeltWWzJdXVtWWzFdXS5XPXpbVlswXV0pfSksQis1XjIyKTxCJiYoQis0JjI1KT49QiYmKFo9WzAsMl0sTj1nWzI2XSg1OCxMUi5KKCksWlsxXSksZj1nWzEyXSgxMixOKSx4PWYubmV4dCgpLnZhbHVlLHY9Zi5uZXh0KCkudmFsdWUsVz1nWzddKDM3KSxwPWdbN10oNCksbj1nWzddKDcpLEE9W0hbNDRdKDQzLHYpLG1bNF0oMTQsQyx4KSxXLHZJKEosSFsxNV0oMjQseikseCxLKSxZW3JbMl1dKHJbMV0sCnAsT1syNV0oNyx2KSxPWzI1XSg3LEopKSxZW3JbMl1dKDI4LG4sWltyWzJdXSxaW3JbMl1dKSxwLHZJKHgsSFsxNV0oMzIsWlsxXSkseCksWVtyWzJdXSgyNSxiLE9bMjVdKDcsdiksT1syNV0oNyx4KSksWVtyWzJdXSgyNixXLFpbclsyXV0sWltyWzJdXSksbixIWzQ0XSg1MCx4KV0sKFE9TFIuSigpKS52LmFwcGx5KFEsZVszM10oclsxXSxOKSksTD1BKSxMfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKChCfDUpPj4oKEI8PChiPVs0LDI2NDIxNzI1NTUsMzZdLDEpJjEzKT49MTImJigoQl41NikmOCk8MiYmKEE9KEM9Sih6KCksMzIpKT9IWzhdKDQwLDU5MDkpKEMpKyIsIitIWzhdKGJbMl0sNzYxMCkoQyk6IiIpLDMpPT0yJiYoSj1KPT09dm9pZCAwPzA6SixDPSh0eXBlb2YgSz09PSJzdHJpbmciP1lbYlswXV0oNjAsSyxKKTpLK0opfHosQz0oQz4+MTZeQykqYlsxXSxDPShDPj4xNl5DKSpiWzFdLEE9Qz4+MTZeQyksQil8NDgpPT1CJiYoSz0xMjAwLEs9Sz09PXZvaWQgMD8KMjA6Syx6PXo9PT12b2lkIDA/VGs6eix0aGlzLnY9KG5ldyBVaW50OEFycmF5KGQwKDI4MTApKSkuZmlsbCgwKSx0aGlzLk09Syx0aGlzLlg9eiksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEImKGI9WzcsNzgsInB1c2giXSwzNSkpPT1CJiYoQz1bZ1sxNl0oYlsxXSx6KV0sSiYmQ1tiWzJdXShnWzE2XSg1NCxKKSksQT1SWzEzXSgzNyxIWzI1XSg0MyxPWzldKDIwLDIwKSxLKSxDKSksKEI8PDEmOCk8YlswXSYmKEI+PjImYlswXSk+PTEmJlQuY2FsbCh0aGlzLHopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYodj1bNDgsOCwidiJdLCEoQi02JjcpKXtmb3IoSj0oYj1SW3ZbMV1dKDU5LHRoaXMpLEM9W10sSz1PW3ZbMF1dKDY0LHRoaXMpLDEpO0o8ejtKKyspQy5wdXNoKE9bdlswXV0oMzIsdGhpcykpO3RoaXMueEpbYl09RFsxMV0oOSlbS10uYXBwbHkoRFsxMV0oMiksZVszM10oMTksQykpfWlmKChCJjM3KT09QilhOntpZih6Lk0pe0E9SFsoSz16Lk0sCnYpWzFdXSgxNCxLKS50aGVuKGZ1bmN0aW9uKHAsUSl7cmV0dXJuIG5ldyAoSy5zdWJzY3JpYmUoKFE9bmV3IGpNKHApLFEpKSxwdCkoUSl9KTticmVhayBhfUE9elt2WzJdXT96Llg/UHJvbWlzZS5yZXNvbHZlKG5ldyBRbyh6Llgselt2WzJdXSkpOnouQT9Qcm9taXNlLnJlc29sdmUobmV3IG50KHpbdlsyXV0pKTpQcm9taXNlLnJlc29sdmUobmV3IFpOKHouaSx6W3ZbMl1dKSk6UHJvbWlzZS5yZWplY3QoRXJyb3IoIkFuIEFQSSBrZXkgb3IgT0F1dGggdG9rZW4gc3RyZWFtIGlzIHJlcXVpcmVkIikpfXJldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEIrKHY9WzI1LCJBIiwxXSw5KSY2KTx2WzJdJiZCLTU+PXZbMl0pYTp7aWYoZ1s0MF0oNSwoQz1bITEsNSwhMF0sSy52KSkpe3A9Q1swXTticmVhayBhfWlmKCEoKEtbdlsxXV09Sy52LnYsYj1ZW3ZbMF1dKDY4LEsudiksQT1iPj4+MyxKPWImNyxKPj0wKSYmSjw9Q1t2WzJdXSkpdGhyb3cgRXJyb3IoKTtpZihBPAp6KXRocm93IEVycm9yKCk7Sy5NPShLLlg9KHA9Q1syXSxBKSxLLmk9YixKKX1yZXR1cm4oQi0yXnZbMF0pPEImJihCKzJeOCk+PUImJihwPVREKCdUeXBlIHlvdXIgYmVzdCBndWVzcyBvZiB0aGUgdGV4dCBzaG93bi4gVG8gZ2V0IGEgbmV3IGNoYWxsZW5nZSwgY2xpY2sgdGhlIHJlbG9hZCBpY29uLiA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj5MZWFybiBtb3JlLjwvYT4nKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoQis4Pj0tKEI+PihwPVszLCIoXiIsNl0sMikmN3x8KHY9V0lbQ10sdnx8KHY9QT1lWzExXSgyNSxDKSxKLnN0eWxlW0FdPT09dm9pZCAwJiYoYj0oa2U/Z3koKTpoWD9OcigpOm51bGwpK3lbMThdKDI0LHosSyxwWzFdLEEpLEouc3R5bGVbYl0hPT12b2lkIDAmJih2PWIpKSxXSVtDXT12KSxRPXYpLDM0KSYmKEItcFswXSZwWzJdKTxwWzBdKWE6e2lmKEsgaW5zdGFuY2VvZihiPQpiPT09dm9pZCAwP08wOmIseGspKXtRPUs7YnJlYWsgYX1mb3IoQz16O0M8Yi5sZW5ndGg7KytDKWlmKEo9YltDXSxKIGluc3RhbmNlb2YgRE4mJkoud0goSykpe1E9bmV3IHhrKEspO2JyZWFrIGF9fXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKHA9WzcxLCJYIiwiVyJdLEI+PjEmMTEpPT0xKXtmb3IoSz0oSj0oQT0oQz0oYj1bMSwiPC90ZD48L3RyPiIsJzxkaXYgY2xhc3M9IiddLHoudGV4dCksYlsyXStSWzExXSgzOSwicmMtcHJlcG9zaXRpb25hbC1jaGFsbGVuZ2UiKSsnIj48ZGl2IGlkPSJyYy1wcmVwb3NpdGlvbmFsLXRhcmdldCIgY2xhc3M9IicrUlsxMV0oNywicmMtcHJlcG9zaXRpb25hbC10YXJnZXQiKSsnIiBkaXI9Imx0ciI+PGRpdiB0YWJJbmRleD0iMCIgY2xhc3M9IicrUlsxMV0ocFswXSwicmMtcHJlcG9zaXRpb25hbC1pbnN0cnVjdGlvbnMiKSsnIj48L2Rpdj48dGFibGUgY2xhc3M9IicrUlsxMV0oMzksInJjLXByZXBvc2l0aW9uYWwtdGFibGUiKSsKJyIgcm9sZT0icmVnaW9uIj4nKSxoWSkoMCxkMChDLmxlbmd0aC0wKSksMCk7SzxKO0srKylBKz0nPHRyIHJvbGU9InByZXNlbnRhdGlvbiI+PHRkIHJvbGU9ImNoZWNrYm94IiB0YWJJbmRleD0iMCI+JytEWzM5XSgxLENbSypiWzBdXSkrYlsxXTt2PVREKEErIjwvdGFibGU+PC9kaXY+PC9kaXY+Iil9cmV0dXJuKCgoQiYxMDgpPT1CJiYoTEQuY2FsbCh0aGlzLDIwMzMsMjQsWzJdKSx0aGlzLkM9dGhpcy5WPXRoaXMuTT10aGlzLmk9dGhpcy5IPXRoaXMuUD10aGlzLkE9dGhpcy5VPXRoaXNbcFsyXV09LTEsdGhpcy5EPWdbN10oMzcpLHRoaXMuZz1nWzddKDQpLHRoaXMubT0tMSx0aGlzLks9Z1s3XSg1KSx0aGlzLm89LTEsdGhpcy5qPWdbN10oNiksdGhpc1twWzFdXT0tMSksQis2KSY3OSk+PUImJkIrNz4+MjxCJiZULmNhbGwodGhpcyx6KSx2fV19KCksaz1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKEItKFc9W251bGwsCjEyOCwiTSJdLChCLTh8MjMpPEImJihCLTl8MzkpPj1CJiYoeltXWzJdXS5sZW5ndGg9PT0wJiYoeltXWzJdXT16LnYseltXWzJdXS5yZXZlcnNlKCksei52PVtdKSxOPXpbV1syXV0ucG9wKCkpLDQpPDExJiZCKzU+PjM+PTApYTp7aWYoIXYpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO2lmKChwPSgoUT1lWzE4XSgzOSwoWj1IWzQ0XSg4LEopPyEhSi5jYXB0dXJlOiEhSixLKSkpfHwoS1t2Zl09UT1uZXcgZnQoSykpLFEuYWRkKHYsQSxDLFosYikpLHApLnByb3h5KXtOPXA7YnJlYWsgYX1pZigoKHAucHJveHk9KG49ZVsxXSg4MCksbiksbi5zcmM9SyxuKS5saXN0ZW5lcj1wLEspLmFkZEV2ZW50TGlzdGVuZXIpbzR8fChKPVopLEo9PT12b2lkIDAmJihKPXopLEsuYWRkRXZlbnRMaXN0ZW5lcih2LnRvU3RyaW5nKCksbixKKTtlbHNlIGlmKEsuYXR0YWNoRXZlbnQpSy5hdHRhY2hFdmVudChPWzM3XSgxNix2LnRvU3RyaW5nKCkpLG4pO2Vsc2UgaWYoSy5hZGRMaXN0ZW5lciYmCksucmVtb3ZlTGlzdGVuZXIpSy5hZGRMaXN0ZW5lcihuKTtlbHNlIHRocm93IEVycm9yKCJhZGRFdmVudExpc3RlbmVyIGFuZCBhdHRhY2hFdmVudCBhcmUgdW5hdmFpbGFibGUuIik7Tj1wLEFRKyt9aWYoQi0yPDwxPj1CJiYoQisyXjEzKTxCKW1bMzVdKDMsV1sxXSxXWzBdLEoseixEWzhdKDc1LEspKTtyZXR1cm4oQnw4MCk9PSgoQnw0OCk9PUImJihHWzI1XSg5LEssQSksSFsyNV0oMTYseixKLGZ1bmN0aW9uKHgsZil7ZVsyOF0oOSx4Pj4+QyxmPj4+QyxiKX0pKSxCKSYmKHRoaXMuWFg9dHlwZW9mIEFib3J0Q29udHJvbGxlciE9PSJ1bmRlZmluZWQiKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4oQnwxKTwoQis2Pj4oKChCfDcyKT09KHA9WzE5LDIsMjJdLEIpJiZ6LkYmJnouRi5KTihKLEspLEI+PnBbMV08cFswXSkmJihCLTkmMTUpPj0xMyYmTEQuY2FsbCh0aGlzLDcyNyw0LFsyXSksNCl8fChBPUE9PT12b2lkIDA/THQ6QSwodj1iLllBP3ZvaWQgMDoKRFsxMV0oMTApKT9rW3BbMl1dKDE2LHBbMV0sMywxNiw1LHYsQSkudGhlbihmdW5jdGlvbihuLFosVyl7cmV0dXJuIFo9KGJbVz1bMTEsIk0iLDg1XSxXWzFdXT1SNChuIT1KP246cnkoKSksSFsyMF0oMjcsV1swXSxiKSksSFs0NF0oV1syXSxaLFZvLEssYltXWzFdXSksen0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIEN9KTpQcm9taXNlLnJlc29sdmUoQykpLDE2KSYmQis1Pj0xMCYmKFE9SFsyNV0oMTIsbnVsbCxLLEoseik9PT1DP0M6LTEpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCJihBPVswLCJWYWx1ZSBvZiBmbG9hdC9kb3VibGUgZmllbGQgbXVzdCBiZSBhIG51bWJlciwgZm91bmQgIiw3XSw1MikpPT1CKXtpZihKPT1LKUM9SjtlbHNle2lmKHR5cGVvZiBKIT09Im51bWJlciIpdGhyb3cgRXJyb3IoQVsxXSt0eXBlb2YgSit6K0opO0M9Sn1iPUN9aWYoIShCLTMmMykpUltBWzJdXSgyMCxBWzBdLCEwLHZvaWQgMCxKLHosSyxDKTtyZXR1cm4gYn0sZnVuY3Rpb24oQiwKeixLLEope3JldHVybihCPj4oSz1bNyw0LDNdLChCLUtbMl1eMjApPj1CJiYoQi1LWzBdXktbMV0pPEImJihKPXo9PT1Haz8yOjQpLDEpJktbMF0pPEtbMl0mJkI+PjI+PS00MCYmVC5jYWxsKHRoaXMseiksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgpe2lmKChCJjEyNCk9PShYPVsxLCJ2IiwyXSxCKSl7Zm9yKEsgaW4gdGhpc1tYWzFdXT1bXSx0aGlzLlg9eix6KXRoaXNbWFsxXV0ucHVzaChLKTt0aGlzW1hbMV1dLnJldmVyc2UoKX1pZihCLTk8PFhbMl0+PUImJihCLTZeMzApPEIpe2ZvcihxPShKPShOPVsoTD1LLlgsMCksMyw0XSxaPU5bMF0sTlswXSksSy5GKTtKPEwubGVuZ3RoOylxW1orK109TFtKXTw8MjR8TFtKK1hbMF1dPDwxNnxMW0orWFsyXV08PDh8TFtKK05bWFswXV1dLEo9WipOW1hbMl1dO2ZvcihFPTE2O0U8NjQ7RSsrKW49cVtFLVhbMl1dfE5bMF0sZj1xW0UtMTVdfE5bMF0scVtFXT0oKHFbRS0KMTZdfE5bMF0pKygoZj4+Pjd8Zjw8MjUpXihmPj4+MTh8Zjw8MTQpXmY+Pj5OW1hbMF1dKXxOWzBdKSsoKHFbRS03XXxOWzBdKSsoKG4+Pj4xN3xuPDwxNSleKG4+Pj4xOXxuPDwxMylebj4+PjEwKXxOWzBdKXxOWzBdO2Zvcih4PShhPUtbKFE9KGM9S1tYWzFdXVtYWzJdXXxOWzBdLEtbWFsxXV1bQz0oVj0ocD1LW1hbMV1dW1hbMF1dfE5bMF0sS1tYWzFdXVtOWyhXPUtbWFsxXV1bN118TlswXSxYKVsyXV1dfE5bMF0pLE4pWzBdLE5bWFswXV1dKXxOWzBdLFgpWzFdXVs1XXxOW3Y9S1tYWzFdXVs2XXxOWzBdLDBdLEtbWFsxXV1bTlswXV18TlswXSk7Qzw2NDtDKyspcj0oViZhXn5WJnYpKyhISVtDXXxOWzBdKXxOWzBdLEE9VysoKFY+Pj42fFY8PHopXihWPj4+MTF8Vjw8MjEpXihWPj4+MjV8Vjw8NykpfE5bMF0sUD1yKyhxW0NdfE5bMF0pfE5bMF0sVz12LGI9QStQfE5bMF0sdj1hLGE9VixWPVErYnxOWzBdLFE9YyxTPSgoeD4+PlhbMl18eDw8MzApXih4Pj4+MTN8eDw8MTkpXih4Pj4+CjIyfHg8PDEwKSkrKHgmcF54JmNecCZjKXxOWzBdLGM9cCxwPXgseD1iK1N8TlswXTtLWygoKEtbWFsoS1tYW0tbWFsxXV1bTlswXV09S1tYWzFdXVtOWzBdXSt4fE5bMF0sMV1dW1hbMF1dPUtbWFsxXV1bWFswXV0rcHxOWzBdLEspW1hbMV1dW1hbMl1dPUtbWFsxXV1bWFsyXV0rY3xOWzBdLEtbWFsxXV1bTltYWzBdXV09S1tYWzFdXVtOW1hbMF1dXStRfE5bMF0sMV1dW05bWFsyXV1dPUtbWFsxXV1bTltYWzJdXV0rVnxOWzBdLEspW1hbMV1dWzVdPUtbWFsxXV1bNV0rYXxOWzBdLEtbWFsxXV0pWzZdPUtbWFsxXV1bNl0rdnxOWzBdLFgpWzFdXVs3XT1LW1hbMV1dWzddK1d8TlswXX1yZXR1cm4oQj4+WFsyXSY3KT09WFsyXSYmKHRoaXMuc3RhdHVzPXopLHV9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKCgoVz1bIk8iLDYsMTZdLEIrV1sxXSleOCk8QiYmKEIrOV4xMyk+PUIpaWYoQXJyYXkuaXNBcnJheShBKSlmb3IoUT16O1E8QS5sZW5ndGg7USsrKWtbNV0oOCwKMCxLLEosQyxiLEFbUV0pO2Vsc2Ugbj1IWzQ0XSg3LEopPyEhSi5jYXB0dXJlOiEhSixDPWtbMThdKDQ4LEMpLGdbMF0oOCxiKT9iW1dbMF1dLnJlbW92ZShTdHJpbmcoQSksQyxuLEspOmImJih2PWVbMThdKDM4LGIpKSYmKHA9T1syNF0oMzMsMCxDLEssQSx2LG4pKSYmUltXWzJdXSgyMCxwKTtyZXR1cm4gQj4+MiY3fHxkNC5pbmNsdWRlcyhLKXx8KGQ0LnB1c2goSyksZDQubGVuZ3RoPT09MSYmKEN4fHwoQ3g9d2luZG93W2VNKCldLHdpbmRvd1tlTSgpXT1HWzEyXS5iaW5kKG51bGwsV1syXSkpLFBJPXosJGt8fCgkaz1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbixYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3Blbj1xcix3ND1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuc2VuZCxYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuc2VuZD1pNiksWDI9eikpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi02Pj4oKEI8PDEmKEM9WzM4LDEwLDJdLDE2KSk8Q1syXSYmCihCXjkpPj1DWzFdJiYoYj1LP0subWFwKGZ1bmN0aW9uKEEsdixwKXtmb3Iodj1bXSxwPTA7cDxBLmxlbmd0aDtwKyspcCE9MSYmKHZbcF09QVtwXSk7cmV0dXJuIG5ldyBRNigoeiYmKHZbMV09ei15bytBWzFdKSx2KSl9KTpbXSksNCl8fCh0aGlzLk09eix0aGlzLnY9SyksKEIrOCYxNik8MTIpJiYoQl4xNSk+PS04MSYmKGI9eVtDWzBdXSg3LHZvaWQgMCxZW0NbMV1dKDQ1LG51bGwsSiksSyx6KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKChRPVsxMiwxNywxXSxCKV42MCk+PTI4JiYoKEJ8UVsyXSkmMTYpPDYpYTp7aWYoIUdsLmRvY3VtZW50JiYhR2wud2luZG93KXtwPXo7YnJlYWsgYX1mb3IoQT0odj1nW1FbMF1dKDMsW1lrLFBEXSksdikubmV4dCgpOyFBLmRvbmU7QT12Lm5leHQoKSlpZihDPXdpbmRvdy5sb2NhdGlvbi5ocmVmLGI9a1s0N10oNixBLnZhbHVlKSxDLmxhc3RJbmRleE9mKGIsSik9PUope3A9ejticmVhayBhfXA9S31pZigoQi02JjcpPj0KMiYmKEJeUVsxXSk+PjQ8UVsyXSYmVC5jYWxsKHRoaXMseiksIShCPDxRWzJdJlFbMF0pKXtmb3IoSz0oSj0oQz1SWzhdKDYzLChiPVtdLHRoaXMpKSxPWzQ4XSgzMSx0aGlzKSksUSlbMl07Szx6O0srKyliLnB1c2goT1s0OF0oMzEsdGhpcykpO3RoaXMueEpbQ109bmV3IChGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShKLFtudWxsXS5jb25jYXQoZVszM10oMzUsYikpKSl9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKChBPVsyLDEyLDRdLEI8PEFbMF0pJjE1KT49QVsyXSYmQitBWzJdPj5BWzJdPEFbMF0pe2lmKCEoSj1PW0FbMF1dKDMwLG1bNl0oNzYseixLKSxkb2N1bWVudCksSikpdGhyb3cgRXJyb3IoInJlQ0FQVENIQSBjbGllbnQgZWxlbWVudCBoYXMgYmVlbiByZW1vdmVkOiAiK0spO3Y9Sn1pZigoQjw8MSY3KT49KChCPj5BWzBdJjcpPT1BWzBdJiZ6LmtKLnB1c2goSyksMCkmJihCPj4xJjYpPDMpe2ZvcihDPShLPWdbQVsxXV0oOSwoSj1bXSwKeikpLEsubmV4dCgpKTshQy5kb25lO0M9Sy5uZXh0KCkpYj1DLnZhbHVlLGIgaW5zdGFuY2VvZiB6Sj9KLnB1c2goYik6Si5wdXNoKG5ldyB6SihiKSk7dj1KfXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoQi00Pj4obj1bIndob2xlVGV4dCIsMzYsM10sblsyXSkpKWE6e2lmKEEuTSE9PTApe1E9ejticmVhayBhfXlbMjldKDgwLEosYixIWzE2XSgzMyxBLnYpLEMpLFE9S31pZigoQjw8MiYzMSk9PTQpe2lmKEo9Sj09PXZvaWQgMD8hMTpKKXtpZihDJiZDLmF0dHJpYnV0ZXMmJih5WzIwXSgyNSx6LEMudGFnTmFtZSxiKSxDLnRhZ05hbWUhPWQ1KSlmb3IoQT1LO0E8Qy5hdHRyaWJ1dGVzLmxlbmd0aDtBKyspeVsyMF0oMjcseixDLmF0dHJpYnV0ZXNbQV0ubmFtZSsiOiIrQy5hdHRyaWJ1dGVzW0FdLnZhbHVlLGIpfWVsc2UgZm9yKHYgaW4gQyl5WzIwXSgyMyx6LHYsYik7aWYoQy5ub2RlVHlwZT09blsyXSYmKHA9QyxwW25bMF1dJiZ5WzIwXSgyNiwKeixwW25bMF1dLGIpKSxDLm5vZGVUeXBlPT0xKWZvcihDPUMuZmlyc3RDaGlsZDtDOylrWzldKDE3LDEwMCwwLEosQyxiKSxDPUMubmV4dFNpYmxpbmd9cmV0dXJuKCgoQiY1MCk9PUImJihKPVN0cmluZyh6KSxLLmkmJihKPUoudG9Mb3dlckNhc2UoKSksUT1KKSwoQl41MCk8MTgpJiZCLTk+PTEzJiZULmNhbGwodGhpcyx6KSxCKS04Pj40PT00JiYoSj16LlBvLEs9ei5HUSxRPU9bNDBdKDk3LGdbMjVdKDQsT1s0MF0oOTksYVooKSwiPGRpdj48ZGl2PjwvZGl2PiIpLGdbblsxXV0oblsyXSx7aWQ6SyxuYW1lOkp9KSksSWYoKSkpLFF9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEImKChCJigoQi04XjE5KT49KEo9WzE4LDkzLDddLEIpJiYoQiszXjI1KTxCJiZULmNhbGwodGhpcyx6KSw0NykpPT1CJiYoQz1LLnN0eWxlLmRpc3BsYXkhPXopLEpbMV0pKT09QiYmKEM9UHJvbWlzZS5yZXNvbHZlKGtbNDhdKEpbMl0sNCxKWzBdLHosSykpKSxDfSxmdW5jdGlvbihCLHosSyl7cmV0dXJuKChCXgoxOCkmMyk+PSgoQnwoSz1bbnVsbCwiTSIsIkkiXSw5KSk+PjR8fChvYi5jYWxsKHRoaXMpLHRoaXNbS1sxXV09W10pLDIpJiYoQjw8MiY0KTwxJiYoej10aGlzW0tbMl1dP3RoaXNbS1syXV0udGhlbihmdW5jdGlvbihKKXtyZXR1cm4gbmV3IGNJKEopfSk6UHJvbWlzZS5yZXNvbHZlKEtbMF0pKSx6fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKEJ8Nyk+Pih2PVsxMCwzMSwzOV0sNCkpKWlmKEs8eilrW3ZbMl1dKDIyLHosei1LKSxiPWdbMTJdKDMsR1t2WzFdXSg2LDEseE8sT08pKSxKPWIubmV4dCgpLnZhbHVlLEM9Yi5uZXh0KCkudmFsdWUseE89Qz4+PnosT089Sj4+Pno7ZWxzZSBrW3ZbMl1dKDIxLHosSyk7cmV0dXJuKEIrNiYoKEI8PDImKChCfDcyKT09QiYmKEs/Si50YWJJbmRleD16OihKLnRhYkluZGV4PS0xLEoucmVtb3ZlQXR0cmlidXRlKFNNKCkpKSksMTMpKT49OSYmKEI8PDImMTYpPDYmJlQuY2FsbCh0aGlzLHosMCxtcC5SVCksNTkpKT49QiYmKEIrN14KdlswXSk8QiYmKEE9ej9LP2RlY29kZVVSSSh6LnJlcGxhY2UoLyUyNS9nLGw2KCkpKTpkZWNvZGVVUklDb21wb25lbnQoeik6IiIpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCgoeD1bInYiLCJVMCIsM10sQil8MjQpPT1CKXtmb3Iodj0oUT1uZXcgRTAsZ1sxMl0oOSxDLm8pKSxBPXYubmV4dCgpOyFBLmRvbmU7QT12Lm5leHQoKSlXPWdbMTJdKDQsQS52YWx1ZSksTj1XLm5leHQoKS52YWx1ZSxuPVcubmV4dCgpLnZhbHVlLGI9bmV3IFh5LHA9a1s2XSgyOCx6LGIsTiksWj1rWzZdKDU4LEsscCxuKSxnWzFdKDY1LEosWHksUSxaKTtmPVF9cmV0dXJuKEJeKCgoQnx4WyhCJjk0KT09QiYmKHRoaXMuZWxlbWVudD1KLHRoaXNbeFswXV09eix0aGlzLmRlcHRoPUssdGhpcy5NPUMpLDJdKSYxMCk+PTQmJihCKzQmMTYpPDE1JiZ0aGlzW3hbMF1dJiZHWzQ4XSgxNSw0LHRoaXMpLDQ4KSk+PTE3JiYoQnx4WzJdKTwyNiYmeiYmKHRoaXMuTVt4WzBdXVt4WzFdXSh6LnZpc2libGUpLApHWzE1XSgzNikuc3R5bGUuaGVpZ2h0PWR0KCkpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYpe2lmKCEoVj1bMSwzMiw0XSwoQnxWWzJdKT4+VlsyXSkpe2lmKFo9KE49KFE9KGdbNDFdKChuPVsyLDAsMTAyNF0sNDgpLGIpLFIpWzE3XSg1OCxuW1ZbMF1dLHZvaWQgMCxuWzBdLEMsSyx6LGIpLFlbMTRdKDMzLFZbMl0sblsyXSxRPT09UVA/NzpRW0EkXXxuW1ZbMF1dKSkpIT1udWxsP046MTAyNCxwKWlmKEFycmF5LmlzQXJyYXkoSikpZm9yKFc9bltWWzBdXSxmPUoubGVuZ3RoO1c8ZjtXKyspUS5wdXNoKEEoSltXXSxaKSk7ZWxzZSBmb3IoTD1nWzEyXSgxMixKKSx4PUwubmV4dCgpOyF4LmRvbmU7eD1MLm5leHQoKSlRLnB1c2goQSh4LnZhbHVlLFopKTtlbHNle2lmKHYpdGhyb3cgRXJyb3IoKTtRLnB1c2goQShKLFopKX1yPWJ9aWYoKEImNTkpPT1CKWlmKGI9WzEyNyw3LDBdLGJOKEopLEo+PWJbMl0pSFszMF0oMyxiW1ZbMF1dLEosSyk7CmVsc2V7Zm9yKEM9YlsyXTtDPDk7QysrKUsudi5wdXNoKEomYlswXXx6KSxKPj49YltWWzBdXTtLLnYucHVzaChWWzBdKX1yZXR1cm4oQnxWWzFdKT09QiYmVC5jYWxsKHRoaXMseikscn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKChaPVsiTSIsMiwwXSxCJjkwKT09QiYmKFE9S1taWzBdXSxDPVsxLDIsMTZdLHA9Sy52LEE9UVtwK0NbWlsyXV1dLHY9UVtwKzNdLGI9UVtwK1pbMl1dLEo9UVtwK0NbMV1dLGdbMTRdKDYzLHosSyksbj1iPDxaWzJdfEE8PDh8Sjw8Q1taWzFdXXx2PDwyNCksQisxPj0yMiYmKEI+PjEmOCk8NCl7aWYoKEE9KEo9eltLPShDPXoudixbMTI4LDEyNyw3XSksWlswXV0sSltDKytdKSxiPUEmS1sxXSxBKSZLW1pbMl1dJiYoQT1KW0MrK10sYnw9KEEmS1sxXSk8PEtbWlsxXV0sQSZLW1pbMl1dJiYoQT1KW0MrK10sYnw9KEEmS1sxXSk8PDE0LEEmS1taWzJdXSYmKEE9SltDKytdLGJ8PShBJktbMV0pPDwyMSxBJktbWlsyXV0mJihBPUpbQysrXSwKYnw9QTw8MjgsQSZLW1pbMl1dJiZKW0MrK10mS1taWzJdXSYmSltDKytdJktbWlsyXV0mJkpbQysrXSZLW1pbMl1dJiZKW0MrK10mS1taWzJdXSYmSltDKytdJktbWlsyXV0pKSkpKXRocm93IEVycm9yKCk7a1s0M10oMjMseixDKSxuPWJ9cmV0dXJuKEJ8NDgpPT1CJiYobj1uZXcgdTYpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCEoKEJeNzMpJih4PVsyLCJjbGVhclRpbWVvdXQiLDY2XSwxMykpKXtmb3IoUT0odj0oTj0ocD0oVz0obj1bIiIsMywwXSxuW3hbMF1dKSxhNCkoU3RyaW5nKEopKS5zcGxpdChlQygpKSxhNCkoU3RyaW5nKEspKS5zcGxpdChlQygpKSxoWSkocC5sZW5ndGgsTi5sZW5ndGgpLG4pW3hbMF1dO1c9PW5beFswXV0mJlE8djtRKyspe2I9TltDPXBbUV18fG5bMF0sUV18fG5bMF07ZG97aWYoKFo9KEE9LyhcZCopKFxEKikoLiopLy5leGVjKEMpfHxbIiIsIiIsIiIsIiJdLC8oXGQqKShcRCopKC4qKS8uZXhlYyhiKXx8ClsiIiwiIiwiIiwiIl0pLEFbblt4WzBdXV0ubGVuZ3RoPT1uW3hbMF1dKSYmWltuW3hbMF1dXS5sZW5ndGg9PW5beFswXV0pYnJlYWs7Vz0oQz1BW25bMV1dLFkpWzQ3XSg2NCwoYj1aW25bMV1dLEFbMV0ubGVuZ3RoPT1uW3hbMF1dPzA6cGFyc2VJbnQoQVsxXSx6KSksWlsxXS5sZW5ndGg9PW5beFswXV0/MDpwYXJzZUludChaWzFdLHopKXx8WVs0N10oeFsyXSxBW3hbMF1dLmxlbmd0aD09blt4WzBdXSxaW3hbMF1dLmxlbmd0aD09blt4WzBdXSl8fFlbNDddKDY3LEFbeFswXV0sWlt4WzBdXSl9d2hpbGUoVz09blt4WzBdXSl9Zj1XfWlmKChCfCgoQnx4WzBdKTwzMyYmKEJ8Myk+PTE1JiZULmNhbGwodGhpcyx6KSwyNCkpPT1CKUdsW3hbMV1dKHopO3JldHVybihCLTkmNyk9PTEmJih6PVJbOF0oNTYsdGhpcyksSj1PWzQ4XSg2Myx0aGlzKSxLPU9bNDhdKDMxLHRoaXMpLHRoaXMueEpbel09SltLXSksZn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoQi0KKChCKzgmMTUpPj0oTj1bOSw1LCJxeCJdLDQpJiZCKzc8MTYmJihXPW1bMjJdKDMwKT8hMTpEWzIwXSgxNSx6KSksTilbMV0mMTEpPT0zKWE6e2lmKEM9PT0obj0ocD1KLmxlbmd0aCxuZXcgaEYocCtiLCExKSksMCkpe2ZvcihBPXo7QTxwO0ErKyluW05bMl1dKEEsSi5IMShBKSk7Yj56JiZuW05bMl1dKHAseiksVz1uO2JyZWFrIGF9Zm9yKFo9dj16O1o8cDtaKyspUT1KLkgxKFopLG5bTlsyXV0oWixRPDxDJjEwNzM3NDE4MjN8diksdj1RPj4+Sy1DO2I+eiYmbltOWzJdXShwLHYpLFc9bn1yZXR1cm4gQi0oKEJeNDIpPj40PDQmJigoQl4xNikmNyk+PTYmJihXPUdbMTNdKE5bMF0sZnVuY3Rpb24oeCxmKXtyZXR1cm4gZj1bbnVsbCwzOSwiIl0sKEo9SFtmWzFdXSg3Myx6LGdbMTRdKDIsZHkpKSk/eC5yZXR1cm4oUls0N10oNzQsSyxKLGVbMjBdKDEsZlsyXSx6KSkudGhlbihmdW5jdGlvbihMKXtyZXR1cm4ga2soa1s0NV0oMjQsTCkpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pKToKeC5yZXR1cm4oZlswXSl9KSksTlsxXSk+PjM+PTImJihCXjM5KTwxMiYmKFc9WVswXSgyOCx0RiwxLDEpKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChCLTUmNik9PSgoQi01XigoQi0oKEImOTEpPT0odj1bMjksIk0iLCJyZW1vdmUiXSxCKSYmKENbdlsyXV0oSiksYi5sZW5ndGg+eiYmKEMuWD1LLEMudi5zZXQoa1s5XSgyLEosQyksbVt2WzBdXSgyMixiKSksQ1t2WzFdXSs9Yi5sZW5ndGgpKSwxKSYxNSk+PTAmJkI+PjI8NyYmKEE9KG5ldyB5NihrWzQ3XSg2LHopKSkuWCksMTkpKTxCJiYoQi00fDU5KT49QiYmKEE9UlsxM10oMTQsSFsyNV0oNTgsT1s5XSgyMywyNykseiksW2dbMTZdKDc4LEspXSkpLDIpKWE6e2lmKHR5cGVvZiB6PT09ImZ1bmN0aW9uIil7QT16O2JyZWFrIGF9QT0oeltVMF18fCh6W1UwXT1mdW5jdGlvbihwKXtyZXR1cm4gei5oYW5kbGVFdmVudChwKX0pLHpbVTBdKX1yZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosClcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEpe2lmKChCJihCLTU8PChTPVswLDEsMl0sUylbMV0+PUImJihCK1NbMl0mNjIpPEImJihjYi5jYWxsKHRoaXMsQyksdGhpcy50eXBlPU1yLHRoaXMua2V5Q29kZT16LHRoaXMucmVwZWF0PUopLDYwKSk9PUIpYTp7aWYoSz0oej1rWzE1XSgzMyx0aGlzLnYpLHRoaXMueEpbel0pLEsgaW5zdGFuY2VvZiB0WCl7YT0oKEo9RFs0NF0oMTYsU1swXSx6LHRoaXMuSCksSykudihKKSxLKVt3eSgpXTticmVhayBhfWE9S31pZigoQis5JjE1KTwoKEI+PlNbMl0mNik9PVNbMl0mJih0aGlzLmk9eix0aGlzLlg9Six0aGlzLk09Syx0aGlzLnY9QyksNSkmJkIrOD49LTQyKXtpZihLJihDPUotKHA9WzE1LChMPVNbMF0sMSksMzI3NjddLHApW1NbMV1dPj4+cFtTWzFdXSxwW1NbMV1dKSl7Zm9yKHE9U1tjPXRoaXMuSDEoKEs+Pj1wW1NbMV1dLEspKSxyPWMmcFtTWzJdXSwwXTtxPEM7cSsrKUU9ei5IMShxKSxQPShjPj4+cFtTWzBdXSktKEUmcFtTWzJdXSktCkwsTD1QPj4+cFtTWzBdXSZwW1NbMV1dLHRoaXMucXgoSytxLChQJnBbU1syXV0pPDxwW1NbMF1dfHImcFtTWzJdXSksYz10aGlzLkgxKEsrcStwW1NbMV1dKSxyPShjJnBbU1syXV0pLShFPj4+cFtTWzBdXSktTCxMPXI+Pj5wW1NbMF1dJnBbU1sxXV07aWYoKHRoaXMucXgoSytxLChMPShOPShjPj4+cFtRPXouSDEocSksU1swXV0pLShRJnBbU1syXV0pLUwsTj4+PnBbU1swXV0pJnBbU1sxXV0sKE4mcFtTWzJdXSk8PHBbU1swXV18ciZwW1NbMl1dKSksSytxK3BbU1sxXV0pPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIGJvdW5kcyIpOyhKJnBbU1sxXV0pPT09MCYmKGM9dGhpcy5IMShLK3ErcFtTWzFdXSkscj0oYyZwW1NbMl1dKS0oUT4+PnBbU1swXV0pLUwsTD1yPj4+cFtTWzBdXSZwW1NbMV1dLHRoaXMucXgoSyt6Lmxlbmd0aCxjJjEwNzM3MDkwNTZ8ciZwW1NbMl1dKSl9ZWxzZXt2PVNbMF07Zm9yKEs+Pj1wW1NbMV1dO3Y8ei5sZW5ndGgtcFtTWzFdXTt2KyspQT0KdGhpcy5IMShLK3YpLFo9ei5IMSh2KSxiPShBJnBbU1syXV0pLShaJnBbU1syXV0pLUwsTD1iPj4+cFtTWzBdXSZwW1NbMV1dLG49KEE+Pj5wW1NbMF1dKS0oWj4+PnBbU1swXV0pLUwsTD1uPj4+cFtTWzBdXSZwW1NbMV1dLHRoaXMucXgoSyt2LChuJnBbU1syXV0pPDxwW1NbMF1dfGImcFtTWzJdXSk7dGhpcy5xeCgoKEomcFtMPShmPShWPVNbMF0sKHg9dGhpcy5IMShLK3YpLFc9ei5IMSh2KSx4JnBbU1syXV0pLShXJnBbU1syXV0pLUwpLGY+Pj5wW1NbMF1dJnBbU1sxXV0pLFNbMV1dKT09PTAmJihWPSh4Pj4+cFtTWzBdXSktKFc+Pj5wW1NbMF1dKS1MLEw9Vj4+PnBbU1swXV0mcFtTWzFdXSksSyt2KSwoViZwW1NbMl1dKTw8cFtTWzBdXXxmJnBbU1syXV0pfWE9TH1yZXR1cm4gYX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVybihCKzcmNik+PSgoQnw0OCk9PSgoWj1bMjMsMTYsImxhYmVsLWlucHV0LWxhYmVsIl0sQl45KT4+NHx8KEE9QT09PXZvaWQgMD8KWWooKSszRTM6QSx2PXY9PT12b2lkIDA/WWooKSszRTMrMjUwOnYsdGhpcy5Idj1BLHRoaXMuVj1DLFE9UT09PXZvaWQgMD9nMFs0XS5iaW5kKG51bGwsMjApOlEsdGhpcy5URT1KLHRoaXMud2Y9dixwPXA9PT12b2lkIDA/ZzBbNF0uYmluZChudWxsLDI1KTpwLHRoaXMub1Q9Yix0aGlzLm9qPXAsdGhpcy5maT1RLHRoaXMuRlA9eix0aGlzLkdvPUspLEIpJiYodGhpcy5PYz0hMCx6PXRoaXMudSgpLFJbMjddKFpbMV0seixaWzJdKSxHWzI5XSgyMixudWxsKXx8T1syNl0oWlswXSwiIix0aGlzKXx8dGhpcy5SfHwhdGhpcy51KCl8fCh0aGlzLnUoKS52YWx1ZT0iIikpLDIpJiYoQi05JjE0KTwxMyYmKG49Sj09Sz9JNCgpOko9PXo/SkIoKTpDQygpKSxufSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihCJihKPVs1LCJYIiw2NV0sKEI+PjImSlswXSk+PTEmJihCXjQwKT4+SlswXTw0JiYoZVs0NF0oMjMsei52KSxSWzE3XSgzMSx6LnYpLGVbNDRdKDEsei52KSxDPXouWXcoKSksNjIpKT09CkImJih0aGlzLnY9bnVsbCx6PVsiUmVjYXB0Y2hhTUZyYW1lLnNob3ciLCJSZWNhcHRjaGFNRnJhbWUudG9rZW4iLCJSZWNhcHRjaGFNRnJhbWUuc2hvd24iXSx0aGlzLk09bnVsbCx0aGlzW0pbMV1dPW51bGwsSz10aGlzLGdbNDZdKEpbMl0sZnVuY3Rpb24oYixBKXtLLk0obmV3IEZ0KG51bGwsbmV3IGJtKGItMjAsQSkpKX0selswXSksZ1s0Nl0oODEsZnVuY3Rpb24oYixBLHYpe0suWChuZXcgRnkoe3Zpc2libGU6diE9PXZvaWQgMD92OiEwLHV5Om5ldyBibShiLEEpfSkpfSx6WzJdKSxnWzQ2XShKWzJdLGZ1bmN0aW9uKGIsQSl7Sy52KGIsQSl9LHpbMV0pKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSl7aWYoKEJ8KEpZPVs0MywiY3JlYXRlRWxlbWVudCIsMV0sODgpKT09Qil7aWYoVj0odD0oRT0oKGY9KHN3PShNPXlbMl0oMzgsKGQ9WzgsMiwzMl0sUSksYikpPzE6QSwKbiYmIU0pLHY9ISF2fHxzdz09PTMsKHN3PT09Mnx8ZikmJllbMThdKDgseixRKSkmJihDPVEuYVQsYj1DW0EkXXx6KSxtWzM0XSg3LG51bGwsQyxLLEopKSxFPT09UVA/NzpFW0EkXXx6KSxnWzI0XShKWVsyXSxkW0pZWzJdXSxiLHQpKSxyPSEoNCZWKSl7Zm9yKEw9IShhPSEoWj0hIShkWyhjPShOPShQPVM9eixWKSxFKSxKWSlbMl1dJihXPWIsTikpLFomJihXfD1kW0pZWzJdXSksWiksMCk7UzxjLmxlbmd0aDtTKyspWD1IWzI3XSgyOSxkWzJdLFcscCwhMSxjW1NdKSxYIGluc3RhbmNlb2YgcCYmKFp8fCh1PXlbMl0oNixYKSxhJiYoYT0hdSksTCYmKEw9dSkpLGNbUCsrXT1YKTtWPShOPShQPChOfD00LFMpJiYoYy5sZW5ndGg9UCksTCk/TiYtNDA5NzpOfDQwOTYsYSk/TnxkWzBdOk4mLTl9aWYoKFYhPT10JiYoa1szOF0oOTMsRSxWKSxkW0pZWzJdXSZWJiZUSihFKSksZikmJiEoZFswXSZWfHwhRS5sZW5ndGgmJihzdz09PTF8fChzdyE9PTQ/MDpkW0pZWzJdXSZWfHwhKDE2JlYpJiYKZFsyXSZiKSkpKXtmb3IocT0odz0oeD0obVs1XSgxNSw0LFYpJiYoRT1nMFsyXShKWVsyXSxFKSxWPUhbSllbMF1dKDI5LGRbSllbMl1dLFYsYiksYj1ZWzI1XSgzMixFLEosYixLLEMpKSx6KSxFKSxWKTt4PHcubGVuZ3RoO3grKylVPXdbeF0saD1EW0pZWzJdXSg1Nix6LFUpLFUhPT1oJiYod1t4XT1oKTtrWzM4XSg3OCxFLChWPXE9KHF8PWRbMF0sdy5sZW5ndGg/cXw0MDk2OnEmLTQwOTcpLFYpKX1COD1FPURbMTBdKDIsZFtKWVsyXV0sc3cscixDLFYsdixFLEssSixiKX1pZigoQj4+SllbMl0mMTUpPT0oQj4+SllbMl0+PTEyJiYoQjw8SllbMl0mMjUpPDUmJih0aGlzLnY9dGhpcy5NPW51bGwsdGhpcy5pPSEhSyx0aGlzLlg9enx8bnVsbCksMikpe2E6e2lmKHY9KG49eihLfHxCVSxKKSxDfHxIWzE3XSgyNyw5KSksbiYmbi5YP2I9bi5YKCk6KGI9dltKWVsxXV0oc2kpLHA9T1s3XSgyLG51bGwsbiksYi5pbm5lckhUTUw9bVsyNl0oMywiIixwKSksYi5jaGlsZE5vZGVzLmxlbmd0aD09CkpZWzJdJiYoUT1iLmZpcnN0Q2hpbGQsUS5ub2RlVHlwZT09SllbMl0pKXtBPVE7YnJlYWsgYX1BPWJ9Qjg9QX1pZigoKChCfDQ4KT09QiYmem8oZnVuY3Rpb24oKXt0aHJvdyB6O30pLEIpfDIpPj4zPT0yKWE6e2lmKEE9QT09PXZvaWQgMD9MdDpBLCFLMCl7aWYocD0oUT1iLm5hdmlnYXRvcik9PW51bGw/dm9pZCAwOlEudXNlckFnZW50RGF0YSwhcHx8dHlwZW9mIHAuZ2V0SGlnaEVudHJvcHlWYWx1ZXMhPT0iZnVuY3Rpb24ifHxwLmJyYW5kcyYmdHlwZW9mIHAuYnJhbmRzLm1hcCE9PSJmdW5jdGlvbiIpe0I4PVByb21pc2UucmVqZWN0KEVycm9yKCJVQUNIIHVuYXZhaWxhYmxlIikpO2JyZWFrIGF9SzA9KHR5cGVvZihnWzQyXSgzMixKLEpZWzJdLChwLmJyYW5kc3x8W10pLm1hcChmdW5jdGlvbihiMyx6OCxqTixaRyl7cmV0dXJuIHo4PShqTj0oWkc9WyJicmFuZCIsMSwidmVyc2lvbiJdLG5ldyBKeiksbVsyM10oMjYsYjNbWkdbMF1dLGpOLFpHWzFdKSksbVsyM10oMjUsYjNbWkdbMl1dLAp6OCx6KX0pKSxwKS5tb2JpbGU9PT0iYm9vbGVhbiImJmVbSllbMF1dKDc3LEMwLHAubW9iaWxlLHopLHAuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoQSkpfUI4PSh2PW5ldyBTZXQoQSksSzApLnRoZW4oZnVuY3Rpb24oYjMsejgsak4pe3JldHVybigoKCgoejg9ZVszMV0oMzQsITAsKGpOPVsibW9kZWwiLCJoYXMiLDIzXSxDMCkpLHYpW2pOWzFdXShiNCgpKSYmbVtqTlsyXV0oMzEsYjMucGxhdGZvcm0sejgsSyksdltqTlsxXV0oQXooKSkpJiZtW2pOWzJdXSgyOCxiMy5wbGF0Zm9ybVZlcnNpb24sejgsNCksdilbak5bMV1dKHZVKCkpJiZtW2pOWzJdXSgyMSxiMy5hcmNoaXRlY3R1cmUsejgsQyksdltqTlsxXV0oVG8oKSkpJiZtW2pOWzJdXSgyMSxiM1tqTlswXV0sejgsNiksdltqTlsxXV0oakUoKSkmJm1bak5bMl1dKDI5LGIzLnVhRnVsbFZlcnNpb24sejgsNyksejgpLnllKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBDMC55ZSgpfSl9cmV0dXJuIEI4fSxmdW5jdGlvbihCLHosCkssSixDLGIsQSl7cmV0dXJuKEIrKGI9WyJXIiwiRWRnZSIsOF0sKEJ8Nik+PjQ+PTImJigoQnw3KSZiWzJdKTw1JiYoblEuY2FsbCh0aGlzKSx0aGlzLlg9eix0aGlzLnY9Six0aGlzLlI9Qyx0aGlzW2JbMF1dPXAwW0tdfHxwMFsxXSksYlsyXSkmNyk+PTUmJkItNDwyMiYmKEE9bVsyMl0oMjYpP2dbMjhdKDExLCEwLFFVKTooRFsyMF0oMzcsIkNocm9tZSIpfHxEWzIwXSgzNSx6KSkmJiFrWzE3XSg0LGJbMV0pfHx5WzQ1XSgxNywiU2lsayIpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCPj4xJigoKChMPVshMCw4LDYyXSxCLTEpfDMyKTxCJiYoQi00XjYpPj1CJiYoej1SW0xbMV1dKExbMl0sdGhpcyksdGhpcy54Slt6XT1udWxsKSxCLTQ8TFsxXSYmKEIrOSY3KT49MyYmIWcwWzNdKDI1LEsuWCkmJiFLLkYmJihLLkY9TFswXSxlWzVdKDE2LExbMF0sSy5CMSxLKSxLLlU9eiksQi1MWzFdJjE1KXx8KGY9R1sxM10oOSxmdW5jdGlvbihyLApWLFApe2lmKFY9WyhQPVszMiwzLDFdLDEpLDIsMTJFNF0sci5NPT1LKXJldHVybiByLnYoWVs2XSg2LFZbMF0sQSksVltQWzJdXSk7Zm9yKG49KFo9KFc9KHA9KFE9Z1sxMl0oNCwodj1yLlgsdikpLFEubmV4dCgpLnZhbHVlKSxOPVEubmV4dCgpLnZhbHVlKSxwKSxEYXRlLm5vdygpKTtBLmkubGVuZ3RoPkMmJkEuaVtBLmkubGVuZ3RoLUtdPD1uLVZbMl07KUEuaS5wb3AoKTtyZXR1cm4oeD1BLmkubGVuZ3RoLHg+SyYmQS5NKG5ldyBuMCkscikucmV0dXJuKFlbUFswXV0oUFsyXSx6LEMsVltQWzJdXSxKLGIsR1szNl0oUFsxXSxWWzBdLDQsVyxaKSx4LEEuRixBLlApKX0pKSwxNSkpPT0zKXtmb3IoYj16O2I8Si5sZW5ndGg7YisrKUE9YitiTihLKCkqKEoubGVuZ3RoLWIpKSxDPWdbMTJdKDEsW0pbQV0sSltiXV0pLEpbYl09Qy5uZXh0KCkudmFsdWUsSltBXT1DLm5leHQoKS52YWx1ZTtmPUp9cmV0dXJuIGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKHA9WyJ2IiwKMiwiY2FsbCJdLEItM3wzOCk8QiYmKEItMV44KT49QiYmKFlbMzVdKDEseixLKSxLLlcmJihHbC5jbGVhclRpbWVvdXQoSy5XKSxLLlc9eiksT1sxMF0oMTYseixLKSxLLlguY2FuY2VsKCksSy5GJiYodHlwZW9mIEsuRj09PSJudW1iZXIiJiZHbC5jbGVhclRpbWVvdXQoSy5GKSxLLkY9eikpLEIrcFsxXSY3KT09Myl7Zm9yKEs9KHo9KGI9KEM9KEo9Uls4XSg2MCx0aGlzKSxbXSksbVs4XSgzOSkpLE9bNDhdKDMxLHRoaXMpKSk/eitaYjpaYixBPTA7QTxLLmxlbmd0aDtBKyspQ1tBXT1iW3BbMl1dKEssQSk7dGhpcy54SltKXT1DfWlmKChCK3BbMV0mNTgpPEImJihCKzMmNjApPj1CKVRbcFsyXV0odGhpcyx6KTtyZXR1cm4oQl4xOSk+PjR8fCh0aGlzW3BbMF1dPVtdKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCxqTixaRyxuRCx2OCxmRCxvWixRcSxUOCxtbCxHOCwKcEQsS0spe2lmKCEoKEJeNjQpPj4oKEIrNyYoKEIrMyYoKEImKChCPj4ocEQ9WyIiLDE2LDBdLDIpJjExKT09MSYmQyYmKChBPShiPSh2PUpbTWFdKSE9ej92OkpbTWFdPW5ldyBXVSlbS10pIT16P0E6YltLXT1bXSkucHVzaChDKSw5MCkpPT1CJiYodGhpcy52PXopLDI1KSk8QiYmKEItNV44KT49QiYmVC5jYWxsKHRoaXMseiksNykpPj01JiYoKEJeNjEpJnBEWzFdKTw0JiYoSz4+Pj1wRFsyXSx2PVs0Mjk0OTY3Mjk2LDIsMUU3XSxKPj4+PXBEWzJdLEo8PTIwOTcxNTE/bj1wRFswXSsodltwRFsyXV0qSitLKTooZ1syMl0oMTkpP0M9cERbMF0rKEJpZ0ludChKKTw8QmlnSW50KDMyKXxCaWdJbnQoSykpOihwPUo+PnBEWzFdJjY1NTM1LEE9KEs+Pj4yNHxKPDx6KSYxNjc3NzIxNSxiPXAqdlsxXSxRPUErcCo4MTQ3NDk3LFo9KEsmMTY3NzcyMTUpK0EqNjc3NzIxNitwKjY3MTA2NTYsWj49dlsyXSYmKFErPVovdlsyXT4+PnBEWzJdLFolPXZbMl0pLFE+PXZbMl0mJihiKz1RL3ZbMl0+Pj4KcERbMl0sUSU9dlsyXSksQz1iK0hbNDBdKHBEWzFdLFEpK0hbNDBdKDE3LFopKSxuPUMpLEtLPW4pLDQpKSlhOntpZigoZkQ9WzIsMzI3NjcsMV0sZj1KLmxlbmd0aCxmKT09PTApe0tLPXBEWzBdO2JyZWFrIGF9aWYoZj09PTEpe0tLPShDPT09KG49Si5QbChwRFsyXSkudG9TdHJpbmcoSyksITEpJiZKLnNpZ24mJihuPSItIituKSxuKTticmVhayBhfWlmKChvWj0oYz0oSlk9KHI9KGQ9ZiozMC1ndyhKLkgxKGYtZkRbMl0pKSxOT1tLXS1mRFsyXSksKChkKk9pKyhyLWZEWzJdKSkvcnxwRFsyXSkrZkRbMl0+PmZEWzJdKSxIWzhdKDEsZkRbMl0sMTUsbnVsbCwzMCxnWzM5XSg1LHBEWzJdLEspLGdbMzldKDYscERbMl0sSlkpKSksYy5QbChwRFsyXSkpLGMubGVuZ3RoPT09MSkmJm9aPD1mRFsxXSl7Zm9yKHc9KFY9bmV3IGhGKEoubGVuZ3RoLCExKSxWLmlrKCkscD1KLmxlbmd0aCpmRFtwRFsyXV0tZkRbMl0scERbMl0pO3A+PXBEWzJdO3AtLSlQPXc8PDE1fEouQ2cocCksVi5HUyhwLApQL29afHBEWzJdKSx3PVAlb1p8cERbMl07YT13LnRvU3RyaW5nKEspfWVsc2V7Zm9yKHU9KEU9KChNPSh2OD1uZXcgKChRcT0obWw9Si5sNSgpLShVPSh4PWMseC5sNSgpKSxxPXgubGVuZ3RoLFUpLG5ldyBoRihtbCtmRFtwRFsyXV0+Pj5mRFsyXSwhMSkpLFFxKS5paygpLGhGKShVK2ZEW3BEWzJdXT4+PmZEWzJdLCExKSx2OC5paygpLGd3KHguQ2coVS1mRFsyXSkpKS0xNSxNPnBEWzJdKSYmKHg9a1sxN10oOCxwRFsyXSwzMCx4LE0scERbMl0pKSx6OD1rWzE3XSgxMixwRFsyXSwzMCxKLE0sZkRbMl0pLHY9eC5DZyhVLWZEWzJdKSxtbCkscEQpWzJdO0U+PXBEWzJdO0UtLSl7aWYoWj0oaD1mRFsxXSx6OC5DZyhFK1UpKSxaIT09dilmb3IoRzg9KFo8PDE1fHo4LkNnKEUrVS1mRFsyXSkpPj4+cERbMl0saD1HOC92fHBEWzJdLGI9RzgldnxwRFsyXSxaRz14LkNnKFUtZkRbcERbMl1dKSxqTj16OC5DZyhFK1UtZkRbcERbMl1dKTt4aShoLFpHKT4+PnBEWzJdPihiPDx6fGpOKT4+PnBEWzJdJiYKIShoLS0sYis9dixiPmZEWzFdKTspO2ZvcihBPShUOD1wRFsyXSxTPShuRD1wRFsyXSxwRClbdD14LHN3PXEsMl0saCksTj12ODtTPHN3O1MrKylMPXQuSDEoUyksVz14aShMPj4+MTUsQSksWD14aShMJmZEWzFdLEEpKygoVyZmRFsxXSk8PDE1KStUOCtuRCxUOD1XPj4+MTUsbkQ9WD4+PjMwLE4ucXgoUyxYJjEwNzM3NDE4MjMpO2lmKE4ubGVuZ3RoPnN3KWZvcihOLnF4KHN3KyssbkQrVDgpO3N3PE4ubGVuZ3RoOylOLnF4KHN3KysscERbMl0pO2Vsc2UgaWYobkQrVDghPT0wKXRocm93IEVycm9yKCJpbXBsZW1lbnRhdGlvbiBidWciKTsoYjM9ejgudkUodjgsRSxVK2ZEWzJdKSxiMyE9PTAmJihiMz16OC5ZYyh4LEUsVSksejguR1MoRStVLHo4LkNnKEUrVSkrYjMmZkRbMV0pLGgtLSksRSZmRFsyXSk/dT1oPDwxNTpRcS5xeChFPj4+ZkRbMl0sdXxoKX1hPShWPSh6OC5CWShNKSxRcSksQjg9ejguZTAoKSxrWzI2XSg2NyxwRFsxXSxLLEI4LCEwKSl9Zm9yKFE9KFYuZTAoKSxrWzI2XSg2NSwKcERbMV0sSyxWLCEwKSk7YS5sZW5ndGg8Slk7KWE9IjAiK2E7Qz09PSExJiZKLnNpZ24mJihRPSItIitRKSxLSz1RK2F9cmV0dXJuIEtLfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQi04fDM4KTwoKHA9WyIuIiwyMSw1XSxCKS1wWzJdPj0yMiYmKEI+PjImOCk8cFsyXSYmSyYmZVsyNF0oMjAscFswXSxudWxsLHosSyksQikmJihCLTJ8MzMpPj1CKWtbNl0oNTYseixLLEopO3JldHVybiBCLTE+PjM9PTEmJihDPVsyLCIiLDQwXSx2PTEsYj1EWzQ0XShwWzFdLDAsQ1syXStLLHouSCksQT1ZWzJdKDQ4LENbMV0sQ1swXSksdGhpcy52PWZ1bmN0aW9uKG4sWixXLE4pe2ZvcihOPShXPVs4MiwxLDYxXSxXKVswXTtOIT03MjspTj09MjU/Tj1uPT09WiYmdj09PTE/V1syXTo1MzpOPT1XWzBdPyhaPURbNDRdKDIwLDAsSyx6LkgpLE49MjUpOk49PVdbMl0/KHY9RFs0NF0oMTksMCxXWzFdLGIpLE49NzIpOk49PTUzJiYodj0tMSxKPXZvaWQgMCxOPTcyKX0seFYodGhpcyx3eSgpLAp7Z2V0OmZ1bmN0aW9uKG4sWixXLE4seCxmLEwscil7Zm9yKHI9KEw9WzgyLDEzLCJoYXMiXSw1MCk7ciE9OTQ7KWlmKHI9PTY3KXI9eC5kb25lPzU5OjE2O2Vsc2UgaWYocj09NTApTj1bMiwiIiwwXSxXPVlbMl0oNDksTlsxXSxOWzBdKSxaPU5bMl0sbj1nWzEyXSgxLFcpLHg9bi5uZXh0KCkscj04ODtlbHNle2lmKHI9PUxbMV0pcmV0dXJuIHY9MSxKO3I9PTUxPyhmPURbNDRdKDE3LE5bMl0sMSxiKSxyPTIpOnI9PTk2Pyh4PW4ubmV4dCgpLHI9NjcpOnI9PTI/cj12PT09Zj9MWzFdOjQzOnI9PUxbMF0/cj01OTpyPT00Mz8oSj12b2lkIDAsdj0tMSxyPTk0KTpyPT04OD9yPTY3OnI9PTU5P3I9WjxOWzBdPzQzOjUxOnI9PTE2PyhBW0xbMl1dKHgudmFsdWUpJiZaKysscj05KTpyPT05JiYocj1aPT09Mj9MWzBdOjk2KX19LmJpbmQobnVsbCl9KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoQis0XjEyKT49KCgoKChXPVszNSwiWCIsInYiXSxCKSYKNzQpPT1CJiYodGhpc1tXWzJdXT16LHRoaXMuTT1LLHRoaXMuaT1KLHRoaXNbV1sxXV09QyksQis2KSYxMyk9PTEmJihOPVREKCdUYXAgdGhlIGNlbnRlciBvZiB0aGUgb2JqZWN0cyBpbiB0aGUgaW1hZ2UgYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMgYWJvdmUuICBJZiBub3QgY2xlYXIsIG9yIHRvIGdldCBhIG5ldyBjaGFsbGVuZ2UsIHJlbG9hZCB0aGUgY2hhbGxlbmdlLjxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3JlY2FwdGNoYSIgdGFyZ2V0PSJfYmxhbmsiPkxlYXJuIG1vcmUuPC9hPicpKSxCKSYmKEIrOSY1OCk8QilhOntpZihiPT1DKXtOPWI7YnJlYWsgYX1pZih0eXBlb2YgYj09PSJiaWdpbnQiKXtOPShqNyhiKT9uPU51bWJlcihiKToodj1ENChLLGIpLG49ajcodik/TnVtYmVyKHYpOlN0cmluZyh2KSksbik7YnJlYWsgYX1pZighZ2Qpe049YjticmVhayBhfWlmKFlbMzddKDEyLGIseikpe2lmKHR5cGVvZiBiPT09Im51bWJlciIpe049WVs0Nl0oOSwKSixiLHopO2JyZWFrIGF9Tj0oRGI/KFlbMzddKDQsYix6KSxwPVpmKE51bWJlcihiKSksTnUocCk/Wj1wOihBPVJbNDJdKDEwLEosYix6KSxRPU51bWJlcihBKSxaPU51KFEpP1E6QSkpOlo9Uls0Ml0oMTEsSixiLHopLFopO2JyZWFrIGF9fWlmKChCPj4xJjI2KT09Mil7aWYoIUouTSl7Zm9yKHYgaW4gYj1KW0pbV1syXV18fGdbNl0oNzUsSyx6LEopLEE9e30sV1syXV0sYilBW2Jbdl1dPXY7Si5NPUF9Tj0ocD1wYXJzZUludChKLk1bQ10sMTApLGlzTmFOKHApKT8wOnB9cmV0dXJuIE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoISgoQl4oKChMPVs1LCJ2Iiw0Ml0sKEItOHwxMDApPEIpJiZCKzk+PjE+PUImJlQuY2FsbCh0aGlzLHopLChCLUxbMF18TFsyXSk8QikmJihCKzZeOCk+PUImJih0aGlzW0xbMV1dPXosdGhpcy5NPUspLDYwKSk+PjMpKWE6e2lmKHouTSE9PTAmJnouTSE9PTIpe2Y9ITE7YnJlYWsgYX1mPSgoQz1PWzIyXSgzMywyLApLLEtbQSRdfDAsSiksei5NPT0yKT9PWzQ3XSg2LGtbTFsyXV0uYmluZChudWxsLDQpLHosQyk6Qy5wdXNoKGtbMTVdKDQwLHpbTFsxXV0pKSwhMCl9cmV0dXJuKEI+PjI+PTIyJiZCPj4yPDI4JiYoQz1IWzRdKDg5LEssSix2b2lkIDAsdm9pZCAwLGVbMzVdLmJpbmQobnVsbCxMWzBdKSksZj1DPT16P21bTFsyXV0oNDkpOkMpLChCfExbMF0pPj4zKT09MyYmKHY9WzQsMyw1XSxXPWdbMjZdKDkwLExSLkooKSx2WzFdKSxOPWdbMTJdKDMsVykseD1OLm5leHQoKS52YWx1ZSxuPU4ubmV4dCgpLnZhbHVlLHA9Ti5uZXh0KCkudmFsdWUsQT1nWzddKDYpLGI9Z1s3XSgzOSksWj1bSFs0NF0oNDYsSiksRFs0M10oMjAseixDLG4sSyxiKSxSWzE5XSg5LHgsSFsxNV0oMzIsdlsyXSksbiksWVswXSgyOCxBLE9bMjVdKDksSiksT1syNV0oTFswXSx4KSksdkkoeCxIWzE1XSg2NCx2WzBdKSx4KSx2SShwLEhbMTVdKDI0LDcpLHgpLFlbMF0oMjQsYixPWzI1XShMWzBdLHApLCExKSxSWzE5XSg0MCwKSixDLEspLFlbMF0oMjYsYix6LHopLEEsUlsxOV0oNzIsSixIWzE1XSg0OCx2WzFdKSxuKSxiLEhbNDRdKDUwLHgpLEhbNDRdKDQ3LG4pLEhbNDRdKDUxLHApXSwoUT1MUi5KKCkpW0xbMV1dLmFwcGx5KFEsZVszM10oMTksVykpLGY9WiksZn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKCh2PVsiTSIsImNhbGwiLDQzXSxCKTw8MiY3fHwocFFbdlsxXV0odGhpcyksdGhpcy52PXosdGhpcy5pPUt8fDAsdGhpc1t2WzBdXT1KLHRoaXMuWD1SeCh0aGlzLlZ3LHRoaXMpKSxCfDMyKT09QiYmKGI9ZnVuY3Rpb24oKXtDfHwoQz16LEooKSl9LGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUifHxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIj9KKCk6KEM9Syx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihmMCgpLGIsSyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIob0goKSxiLEspKSksQnwzKT4+NDwxJiYoQnwyKT49LTg0JiYoR0RbdlsxXV0odGhpcyxMMC53aWR0aCwKTDAuaGVpZ2h0LEVtKSx0aGlzLkM9bnVsbCx0aGlzLnY9bmV3IGVZLHlbdlsyXV0oNTksdGhpcy52LHRoaXMpLHRoaXMuWD1uZXcgcW0seVt2WzJdXSh2WzJdLHRoaXMuWCx0aGlzKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEpe2lmKCEoKHE9WzYsInJjLWltYWdlc2VsZWN0LWRlc2Mtd3JhcHBlciIsNThdLEIpLXFbMF0+PjMpJiYoSj1bIm51bWJlciIsInBhZGRpbmciLDJdLFE9bVsyXSg5MywicmMtaW1hZ2VzZWxlY3QtZGVzYyIsSy5DKSxuPW1bMl0oOTEsInJjLWltYWdlc2VsZWN0LWRlc2Mtbm8tY2Fub25pY2FsIixLLkMpLEw9UT9ROm4pKXtmb3IoQz0oKHA9KHg9KHI9KChBPW1bWj15WzI2XShxWzJdLHJFLChWPXlbMjZdKDQ4LFJILEwpLEwpKSwyXSg4OSxxWzFdLEsuQyksVz1PWzQzXSg5NixLLlIpLndpZHRoLUpbMl0qbVsxMl0oNTMsIlJpZ2h0IixBLEpbMV0pLmxlZnQsUSkmJihOPW1bMl0oOTUsInJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZXMiLApLLkMpLFctPVJbMzZdKDgsTikud2lkdGgpLFJbMzZdKDI0LEEpLmhlaWdodCksbVsxMl0oNTksIlJpZ2h0IixBLEpbMV0pLnRvcCksciktSlsyXSp4K0pbMl0qbVsxMl0oNjcsIlJpZ2h0IixMLEpbMV0pLnRvcCxMKS5zdHlsZS53aWR0aD1rWzMyXSgxMixKWzBdLFcpLDApO0M8Vi5sZW5ndGg7QysrKVJbMTFdKHFbMl0sMTAsLTEsVltDXSk7Zm9yKHY9MDt2PFoubGVuZ3RoO3YrKylSWzExXSg1OSwxMCwtMSxaW3ZdKTsoZj0oUlsxMV0oNTcsMTAscCxMKSxSWzM2XSg4LEwpLmhlaWdodCksZik+cCYmKGI9aFkoLXgsKGYtcCkvSlsyXSotMSksWVszNV0oMzIsTCwibWFyZ2luVG9wIixiK3opKX1pZigoQiY4NSk9PUIpe2lmKE49KG49ITEsWzYzLDMsNTYzMjBdKSxuPW49PT12b2lkIDA/ITE6bixydyl7aWYobiYmKFZVPyFKW0dvXSgpOi8oPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSkvLnRlc3QoSikpKXRocm93IEVycm9yKCJGb3VuZCBhbiB1bnBhaXJlZCBzdXJyb2dhdGUiKTsKVz0oSFV8fChIVT1uZXcgVGV4dEVuY29kZXIpKS5lbmNvZGUoSil9ZWxzZXtmb3IocD1uZXcgVWludDhBcnJheShOWzFdKih2PShDPXosbiksSikubGVuZ3RoKSxaPXo7WjxKLmxlbmd0aDtaKyspaWYoYj1KLmNoYXJDb2RlQXQoWiksYjwxMjgpcFtDKytdPWI7ZWxzZXtpZihiPDIwNDgpcFtDKytdPWI+PnFbMF18MTkyO2Vsc2V7aWYoYj49NTUyOTYmJmI8PTU3MzQzKXtpZihiPD01NjMxOSYmWjxKLmxlbmd0aClpZihRPUouY2hhckNvZGVBdCgrK1opLFE+PU5bMl0mJlE8PTU3MzQzKXtwWyhwW0E9KGItNTUyOTYpKksrUS1OWzJdKzY1NTM2LEMrK109QT4+MTh8MjQwLHApW0MrK109QT4+MTImTlswXXwxMjgscFtDKytdPUE+PnFbMF0mTlswXXwxMjgsQysrXT1BJk5bMF18MTI4O2NvbnRpbnVlfWVsc2UgWi0tO2lmKHYpdGhyb3cgRXJyb3IoIkZvdW5kIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZSIpO2I9NjU1MzN9cFtwW0MrK109Yj4+MTJ8MjI0LEMrK109Yj4+cVswXSZOWzBdfDEyOH1wW0MrK109CmImTlswXXwxMjh9Vz1DPT09cC5sZW5ndGg/cDpwLnN1YmFycmF5KHosQyl9UD1XfXJldHVybiBQfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoKChDPVsxMDcsInB4IiwxXSwoQiZDWzBdKT09QikmJnouYXBwZW5kQ2hpbGQoSyksQil8NSkmMyk9PUNbMl0mJih0eXBlb2YgSz09eiYmKEs9eWEoSykrQ1sxXSksSj1LKSxKfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihCXigoSj1bMzIsInhKIiwxOV0sQiszPj4zPT0xKSYmKEs9Uls4XSg2MCx0aGlzKSx6PU9bNDhdKEpbMF0sdGhpcyksdGhpc1tKWzFdXVtLXT16KSxKWzJdKSk+PjQ8MSYmQjw8MT49LTM2JiYoSz10aGlzLk0sSz09PXo/dGhpcy5NPW51bGw6QXJyYXkuaXNBcnJheShLKSYmR1tKWzBdXSgzNCwxLEsseikpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7aWYoKEIrKChWPVs0LDMsOV0sQiYxMTcpPT1CJiYoUD16PT1udWxsP3o6ZUU9PT0yP0ZFKHopP3p8MDp2b2lkIDA6CnopLDEpXjcpPj1CJiYoQi02XjIwKTxCKWE6e2lmKChaPShOPShnWzQxXSg1NCwocD1bMCwhMCxudWxsXSxiKSksYi5hVCksTltBJF18cFswXSksQyk9PXBbMl0pe1lbMjVdKDQ5LHZvaWQgMCxKLFosdm9pZCAwLE4pLFA9YjticmVhayBhfWlmKCFBcnJheS5pc0FycmF5KEMpKXRocm93IGVbNl0oMjApO2ZvcihmPShRPW1bNV0oMTksKHY9cj1DPT09UVA/NzpDW0EkXXxwWzBdLFZbMF0pLHIpKXx8UFUoQykseD1wWzFdLEw9cFswXSxuPXBbMV07TDxDLmxlbmd0aDtMKyspQT1DW0xdLEdbNDhdKDIsSyxBKSxRfHwoVz15WzJdKDYsQSkseCYmKHg9IVcpLG4mJihuPVcpKTtQPSgoKFF8fChyPXg/MTM6NSxyPW4/ciYtNDA5NzpyfDQwOTYpLGYmJnI9PT12fHwoQz1nMFsyXShWWzJdLEMpLHY9cFswXSxyPUhbNDNdKDMwLDIscixaKSkscikhPT12JiZrWzM4XSg5NSxDLHIpLFo9WVsyNV0oODIsQyxKLFosdm9pZCAwLE4pLDImcil8fCEoNDA5NiZyfHx6JnIpfHxIWzM2XShWWzBdLE4sWiksYil9aWYoKEItCjJeMjUpPj1CJiYoQitWWzJdXjMyKTxCKWE6c3dpdGNoKEM9WzIwMCw1MDEsNF0sSil7Y2FzZSBDWzBdOlA9MDticmVhayBhO2Nhc2UgNDAwOlA9VlsxXTticmVhayBhO2Nhc2UgNDAxOlA9MTY7YnJlYWsgYTtjYXNlIHo6UD03O2JyZWFrIGE7Y2FzZSA0MDQ6UD1LO2JyZWFrIGE7Y2FzZSA0MDk6UD0xMDticmVhayBhO2Nhc2UgNDEyOlA9VlsyXTticmVhayBhO2Nhc2UgNDI5OlA9ODticmVhayBhO2Nhc2UgQ1sxXTpQPTEyO2JyZWFrIGE7Y2FzZSA1MDM6UD0xNDticmVhayBhO2Nhc2UgNTA0OlA9Q1syXTticmVhayBhO2RlZmF1bHQ6UD0yO2JyZWFrIGF9cmV0dXJuIFB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpe2lmKEItKCgocT1bMTEsNTcsMF0sQi0xKV4xNyk+PUImJihCLTl8MjcpPEImJih0aGlzW3pdPUt8cVsyXSksOSk8MjgmJihCXjQwKT49MjYpYTp7Zm9yKHY9KG49KEM9KHg9KChWPShKPShWPShMPVswLCEwLDI1NV0sTClbMV0sCkopPT09dm9pZCAwPyExOkosVj09PXZvaWQgMD8hMTpWKSxwPUxSLkooKSkuaS5hcHBseShwLGVbMzNdKDQsR1sxNV0oMykpKSxMUikuSigpLE9iamVjdCkudmFsdWVzKCRpKSxnWzEyXSgxMixDKSksbi5uZXh0KCkpOyF2LmRvbmU7dj1uLm5leHQoKSlXPXYudmFsdWUseC5YLmhhcyhXKXx8KGI9Z1sxMl0oMyxnWzI2XShxWzFdLHgseikpLm5leHQoKS52YWx1ZSx4Llguc2V0KFcsYikpO3RyeXtjPShOPW5ldyAoUT1PWzQ4XSg4MCwxNCxLLDkzOSxMWzJdLEopLHFPKShZWzM0XSg1LHosUS52KSx5WzEyXSg1NixMW3FbMl1dLDIsUS52LGtbM10oMTQpKS5zbGljZSgpLFEuTSksZj1udWxsLFYmJihQPW1bMjldKDI1LHosTFtxWzJdXSx6KSxBPW1bMjldKHFbMV0seixMW3FbMl1dLDIpLGY9bmV3IGk0KEEsUCkpLG5ldyB5VShmLE4pKTticmVhayBhfWZpbmFsbHl7KHI9TFIuSigpKS52LmFwcGx5KHIsZVszM10ocVswXSxHWzE1XSgxKSkpLFo9TFIuSigpLFoudi5hcHBseShaLGVbMzNdKDI3LApaLlgudmFsdWVzKCkpKSxaLlguY2xlYXIoKX19cmV0dXJuIEI8PDEmN3x8KEs9Sz09PXZvaWQgMD84OkssSj1uZXcgWWksSi51cGRhdGUoeiksQz1KLmRpZ2VzdCgpLGM9eVsxOF0oOCwxNixDKS5zbGljZShxWzJdLEspKSxjfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYobj1bMTEsMiwiYXBwbHkiXSxCLTQ8PG5bMV08QiYmKEIrNSY0NCk+PUIpe2ZvcihDPShwPShBPVs1LDE3LDI1NV0sdj0oUT1bXSx6KSksQyk9PT12b2lkIDA/NDpDO3Y8PUoubGVuZ3RoLzEyO3YrKyliPUouc2xpY2UodioxMixsOSgodisxKSoxMixKLmxlbmd0aCkpLHA9bVszN10oMzQsMCwxLEFbMF0sMyxiLHApLFEucHVzaFtuWzJdXShRLGVbMzNdKDI3LG5ldyBVaW50OEFycmF5KFtBW25bMV1dJnA+PjI0LEFbblsxXV0mcD4+SyxBW25bMV1dJnA+PjgsQVtuWzFdXSZwXSkpKTtaPWtbMjRdKDM4LHosSFs0OF0oMSxwLEFbMV0sblswXSwyNSksUSkuc2xpY2UoeixDKX1yZXR1cm4gQi04PDwKMT49KChCLW5bMV1eblswXSk8QiYmKEItNHwzNyk+PUImJihKLnNyYz1ZWzMxXSgxOCxDKSxBPUoub3duZXJEb2N1bWVudCwoYj1tWzEzXSg3LHosSyxjVSgpLEEpKSYmSi5zZXRBdHRyaWJ1dGUoU0UoKSxiKSksQikmJihCLTVeMjQpPEImJihDPW5ldyBTZXQoQXJyYXkuZnJvbShKKHooKSw5KSkubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBXJiZXLmhhc0F0dHJpYnV0ZSYmVy5oYXNBdHRyaWJ1dGUobUgoKSk/KG5ldyB5NihXLmdldEF0dHJpYnV0ZShtSCgpKSkpLnY6bWQoKX0pKSxaPUFycmF5LmZyb20oQykuc2xpY2UoMCwyNSkuam9pbihDMSgpKSksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQj4+MSYoKEJ8KChCfCh2PVsyNywibyIsIkgiXSw0OCkpPT1CJiYoQT1lWzQzXSg0NSxLLEoseikpLDgpKT09QiYmKEs9ei5rRixBPVREKCc8ZGl2IGNsYXNzPSInK1JbMTFdKDcsInJjLWF1ZGlvY2hhbGxlbmdlLXBsYXktYnV0dG9uIikrJyI+PC9kaXY+PGF1ZGlvIGlkPSJhdWRpby1zb3VyY2UiIHNyYz0iJysKUlsxMV0oNzEsZVsxMV0oNSwiIixLKSkrJyIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvYXVkaW8+JykpLDcpKT09MSYmKG5RLmNhbGwodGhpcyksdGhpcy5YPU9bMl0odlswXSxsNCxkb2N1bWVudCksdGhpc1t2WzFdXT1KLHRoaXMuQz1DLHRoaXNbdlsyXV09Syx0aGlzLmo9Yix0aGlzLlI9bnVsbCx0aGlzLnNZPXAwW3pdfHxwMFsxXSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKFc9WzAsIlgiLDcyXSwoQiYxMjIpPT1CJiYodGhpc1tXWzFdXT16LHRoaXMudmVyc2lvbj1LLHRoaXMuZFE9Six0aGlzLnY9Yj09PXZvaWQgMD8hMTpiLHRoaXMuTT1DPT09dm9pZCAwPyExOkMpLEItMyYxNSl8fChLPXoudSgpKSYmWVszOF0oMzYsSywhMSksKEIrNSY1Nik8QikmJihCKzMmNjApPj1CKWE6e2lmKEE9KFE9WzM3LDI3LCItIl0sQyhKKEsoKSwxMSksUVtXWzBdXSkpKWlmKGI9QSgpfHxbXSxiLmxlbmd0aD5XWzBdKXtmb3IocD0odj1nWzEyXSg0LGIpLAp2KS5uZXh0KCk7IXAuZG9uZTtwPXYubmV4dCgpKWlmKG49cC52YWx1ZSxZWzE4XSgzNSkudGVzdChuLm5hbWUpKXtOPShaPSshSihuLDQ0KSxIWzhdKDMyLDYzMjMpKEoobixRWzFdKSkrUVsyXSkrWjticmVhayBhfU49IiI7YnJlYWsgYX1OPWVDKCl9cmV0dXJuKEJ8KChCLTV8OSk+PUImJkIrOT4+MTxCJiZFaS5jYWxsKHRoaXMsdHlwZW9mIHo9PT0ic3RyaW5nIj96OiJUeXBlIHRoZSB0ZXh0IixLKSxXWzJdKSk9PUImJihOMHx8QSQgaW4genx8WEcoeix1NCkseltBJF09SyksTn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEI8PCgocD1bMSwzLDJdLEIpK3BbMV0+PnBbMV09PXBbMV0mJihKPUs+Pj56LHhPPShLLUopLzQyOTQ5NjcyOTY+Pj56LE9PPUopLHBbMF0pJjEzKT09NCl7Zm9yKEo9WzYzLDEyOCwoQT1bXSwyMDQ4KV0sdj1iPTA7YjxLLmxlbmd0aDtiKyspQz1LLmNoYXJDb2RlQXQoYiksQzxKW3BbMF1dP0FbdisrXT1DOihDPEpbcFsyXV0/QVt2KytdPUM+Pgo2fDE5MjooKEMmNjQ1MTIpPT01NTI5NiYmYitwWzBdPEsubGVuZ3RoJiYoSy5jaGFyQ29kZUF0KGIrcFswXSkmNjQ1MTIpPT01NjMyMD8oQz02NTUzNisoKEMmMTAyMyk8PDEwKSsoSy5jaGFyQ29kZUF0KCsrYikmMTAyMyksQVt2KytdPUM+Pnp8MjQwLEFbdisrXT1DPj4xMiZKWzBdfEpbcFswXV0pOkFbdisrXT1DPj4xMnwyMjQsQVt2KytdPUM+PjYmSlswXXxKW3BbMF1dKSxBW3YrK109QyZKWzBdfEpbcFswXV0pO1E9QX1pZigoQitwWzBdJigoKEIrcFsyXT49MCYmQitwWzFdPj40PHBbMF0mJih0aGlzLlY9Six0aGlzLk09Syx0aGlzLlg9eiksQikmMTE1KT09QiYmKEM9Sio0Mjk0OTY3Mjk2KyhLPj4+eiksUT1OdW1iZXIuaXNTYWZlSW50ZWdlcihDKT9DOmtbMjZdKDQ4LDgsSyxKKSksMTQpKT09NClhOntpZighSyl7UT16O2JyZWFrIGF9dHJ5e1E9ISFLW2FIXTticmVhayBhfWNhdGNoKG4pe1E9ejticmVhayBhfX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsClEsbixaKXtpZigoQjw8MiYxMSk8KG49WyJ2IiwiY2FsbCIsMTJdLDEpJiYoKEJeNTUpJjcpPj02KVRbblsxXV0odGhpcyx6LDAsaHouUlQpO2lmKCgoQis5JjE2KTwxMCYmQi0zPj0xNyYmS1tuWzBdXS5NLnNlbmQoeikudGhlbihKLEsuQSxLKSxCfDQ4KT09Qil7Zm9yKHA9KGI9KEM9Z1tuWzJdXSg3LChBPSh2PXosbmV3IGR3KHYpKSxraShBKSkpLEMubmV4dCgpKSx7fSk7IWIuZG9uZTtwPXtsRDp2b2lkIDB9LGI9Qy5uZXh0KCkpUT17fSxwLmxEPWIudmFsdWUsdHooQSxwLmxELChRW1VpXT1mdW5jdGlvbihXKXt2PVd9LmJpbmQoQSksUVtNT109ZnVuY3Rpb24oVyl7cmV0dXJuIGZ1bmN0aW9uKE4pe3JldHVybigoTj17fSx4VikoQSxXLmxELChOW3d3XT12LE5bSUhdPUssTltGR109SyxOW0JFXT1LLE4pKSxKKSgpLHZ9fShwKS5iaW5kKEEpLFFbQkVdPUssUVtGR109SyxRKSk7Wj1BfXJldHVybihCPj4yJjE0KT09MiYmKHRoaXMuTT1udWxsLHRoaXNbblswXV09bnVsbCksWn0sZnVuY3Rpb24oQiwKeixLLEope2lmKChCfChLPVtudWxsLCJjYWxsIiwiaSJdLDkpKT4+Mz49MSYmKEI+PjEmOCk8OClUW0tbMV1dKHRoaXMseik7cmV0dXJuKEJ8MTYpPT1CJiYodGhpcy5YPT09c3k/dGhpcy5NLnpxKCk6KHoudmlzaWJsZT8odGhpcy5YPXpaLHoudXkmJnoudXkud2lkdGg9PTAmJnoudXkuaGVpZ2h0PT0wfHx0aGlzLk0uZDcoKSk6KCgwLHQkLlJEKSgyKSx0aGlzLlg9S1MsdGhpcy5NLmFEKCksdGhpc1tLWzJdXSYmdGhpc1tLWzJdXS5yZXNvbHZlKG5ldyBKUCgwLCIiLENTLCExKSkpLHRoaXMuUi50aGVuKGZ1bmN0aW9uKEMpe3JldHVybiBDLnNlbmQocU4seil9LE9bNDVdLmJpbmQoS1swXSw5OCkpKSksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCEoKHY9WzMwLDQwLDE1XSxCLTUpJjEzKSlhOntpZih0eXBlb2YgSj09PSJzdHJpbmciKXtwPW5ldyBiVChLLFJbNF0oMjYseiw2NCxKKSk7YnJlYWsgYX1pZihBcnJheS5pc0FycmF5KEopKXtwPW5ldyBiVChLLG5ldyBVaW50OEFycmF5KEopKTsKYnJlYWsgYX1pZihKLmNvbnN0cnVjdG9yPT09VWludDhBcnJheSl7cD1uZXcgYlQoITEsSik7YnJlYWsgYX1pZihKLmNvbnN0cnVjdG9yPT09QXJyYXlCdWZmZXIpe0M9bmV3IFVpbnQ4QXJyYXkoSikscD1uZXcgYlQoITEsQyk7YnJlYWsgYX1pZihKLmNvbnN0cnVjdG9yPT09Wmwpe3A9bmV3IChBPWdbdlswXV0oMix6LEopfHxuZXcgVWludDhBcnJheSgwKSxiVCkoITAsQSxKKTticmVhayBhfWlmKEogaW5zdGFuY2VvZiBVaW50OEFycmF5KXtwPShiPUouY29uc3RydWN0b3I9PT1VaW50OEFycmF5P0o6bmV3IFVpbnQ4QXJyYXkoSi5idWZmZXIsSi5ieXRlT2Zmc2V0LEouYnl0ZUxlbmd0aCksbmV3IGJUKCExLGIpKTticmVhayBhfXRocm93IEVycm9yKCk7fXJldHVybihCfCgoKEImNzYpPT1CJiYocD1rW3ZbMl1dKDQyLHopKSxCKS0zJjEzfHxULmNhbGwodGhpcyx6KSx2WzFdKSk9PUImJihKPWdbMjZdKDg5LExSLkooKSxLKSx6LnJiLnB1c2guYXBwbHkoei5yYixlWzMzXSgyOCxKKSksCnA9SikscH0sZnVuY3Rpb24oQix6LEssSixDKXtpZighKCgoKChCJihDPVsibWFwIiw4LDldLDEwOSkpPT1CJiYoSj1SWzEzXShDWzJdLE9bQ1syXV0oMTUseiksS1tDWzBdXShmdW5jdGlvbihiKXtyZXR1cm4gT1syNV0oMyxiKX0pKSksQil8Q1sxXSk9PUImJihKPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgeihiKX0pLEJeNDUpJjUpJiYoei52PUssSz56LlgpKXRocm93IEVycm9yKCk7cmV0dXJuIEp9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKChCPj4oSj1bOCw3LDFdLEpbMl0pJkpbMF0pPEpbMV0mJigoQl4xNykmSlsxXSk+PTMmJih0aGlzLk09eix0aGlzLnY9SyksKEIrSlswXSZKWzFdKT09SlsyXSkmJlQuY2FsbCh0aGlzLHopLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKEImKFc9WyJ2IiwiQyIsIlUzIl0sNTMpKT09QiYmKExELmNhbGwodGhpcyw2MTksMjksWzFdKSx0aGlzLmk9dGhpcy5NPXRoaXMuVj0tMSx0aGlzLlg9dGhpcy5XPQp0aGlzLkE9dGhpc1tXWzFdXT0tMSx0aGlzLm09Z1s3XSg1KSksKEItOXwzNyk8QiYmKEIrN14xNCk+PUImJihuPVsxMSw2LDMyXSxRPWRrLkooKS5nZXQoKSwhKEo9PT1oMCYmWVsxOV0oMzcsblsyXSxRKXx8Sj09PWFvJiZZWzE5XSgzNiwzMyxRKSkpKXtpZihKPT1zT3x8Sj09Q1EpS1tXWzBdXS5sPURhdGUubm93KCk7aWYoKChLW1dbMF1dLkY9RGF0ZS5ub3coKSxrKVsxNl0oNTYsSy5PKSxLKVtXWzBdXS5YPT1CZiYmS1tXWzBdXS5SIT1udWxsKUdbMTBdKDEyLDEzLEtbV1swXV0uUixLKTtlbHNlIGI9ZnVuY3Rpb24oeCl7Sy52Lk0uc2VuZCh4KS50aGVuKGZ1bmN0aW9uKGYsTCxyLFYpe2lmKGZbKFY9WzM0LChMPVtudWxsLCExLDYwXSwiYXUiKSwiczMiXSxWKVsyXV0oKT09TFswXXx8ZltWWzJdXSgpPT0wfHxmW1ZbMl1dKCk9PTEwKXI9ZltWWzFdXSgpLGtbNDddKDQ0LHRoaXMsWVtWWzBdXSg0LHosZil8fCIiKSx0aGlzLkMoSG8sWVtWWzBdXSg2LHosZil8fCIiLGYscj9EWzE4XSg2OSwKZVszMl0oNTUsciw0KSkqTFsyXTo2MCxMWzFdKX0sSy5BLEspfSxBPWZ1bmN0aW9uKHgsZil7QVAoKGY9WzEwLCJNIiwidiJdLEtbZlsyXV1bZlsxXV0uc2VuZC5iaW5kKEtbZlsyXV1bZlsxXV0pKSxmWzBdLHgpLnRoZW4oZnVuY3Rpb24oTCl7R1sxMF0oMTAsMTMsTCxLLCExKX0sSy5BLEspfSxDP1JbMjZdKDIzLEMsblswXSxsKT8oWj17fSxiKG5ldyB2RSgoWltGeF09UlsyNl0oMTMsQyxuWzBdLGwpLFopKSkpOkEobmV3IFRaKGdbMzNdKDQ0LG5bMV0sQyxKKSkpOktbV1swXV1bV1swXV0uZHQoKT09bTY/S1tXWzBdXVtXWzBdXS53dChmdW5jdGlvbih4LGYsTCxyLFYsUCl7KFY9KHI9KEw9RFs0M10oMjkseixnW1A9WzE5LDEyLDMzXSxQWzJdXSg0Myw2LG5ldyB6bCxKKSxLLnYuVTMoKSksbVsyM10oUFswXSxmLEwsMTMsbCkpLG0pWzIzXSgyMSx4LHIsUFsxXSxsKSxBKShuZXcgVFooVikpfSxLW1dbMF1dW1dbMl1dKCksITEpOihwPWZ1bmN0aW9uKHgsZixMLHIpeyhmPShMPShyPQpbNDIsNDMsNl0sRFtyWzFdXSgzMCx6LGdbMzNdKHJbMF0sclsyXSxuZXcgemwsSiksSy52LlUzKCkpKSxtWzIzXSgzNCx4LEwsNCxsKSksQSkobmV3IFRaKGYpKX0sKCh2PUtbV1swXV0uaVtXWzBdXSk9PW51bGw/MDpSWzI2XSgxMyx2LDMsbCkpP0tbV1swXV0uaS5leGVjdXRlKCkudGhlbihwLHApOlByb21pc2UucmVzb2x2ZSgpLnRoZW4ocCkpfXJldHVybigoKChCXjM4KSYxNSk9PTEmJihqYy5jYWxsKHRoaXMseixKLEMsYixBKSx0aGlzW1dbMF1dPUspLEIpfDgpPT1CJiYoSz1bXSxtWzZdKDEwLDY0LGZ1bmN0aW9uKHgpe0sucHVzaCh4KX0seiksTj1LKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgoKCgoKEE9WzIwLDQwLDEwXSwoQnw1NikhPUJ8fEsuUi53aWR0aD09Si53aWR0aCYmSy5SLmhlaWdodD09Si5oZWlnaHQpfHwoSy5SPUosQyYma1s4XSg0MSxLLGdbQVswXV0uYmluZChudWxsLDQpKSxnWzNdKDYzLEsseikpLEIpfDMpJjE1KT49OSYmKChCfDcpJkFbMF0pPAo1JiYodj1mdW5jdGlvbihwKXtpZihlWzI0XSg4MixwPT1udWxsP3ZvaWQgMDpwLnA1KSlyZXR1cm4gcC5wNShmdW5jdGlvbihRKXt0cnl7cmV0dXJuIHooUSx0aGlzKX1jYXRjaChuKXt0aGlzLmVycm9yKG4pfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIik7fSksQil8NSk8MzEmJigoQnw2KSYyNSk+PTE0KWE6e2lmKChKPShLPXR5cGVvZiB6LFs2NCwhMCxudWxsXSkseik9PUpbMl0pe3Y9ejticmVhayBhfWlmKEs9PT0iYmlnaW50Iil7dj1HWzMxXSg5NCxENChKWzBdLHopKTticmVhayBhfWlmKFlbMzddKEFbMl0seixKWzFdKSl7dj1LPT09InN0cmluZyI/T1syNF0oQVsxXSwwLEpbMF0seik6ZVs2XSg4MSxKWzFdLDAseik7YnJlYWsgYX19aWYoKEItNSY3KT09KChCJjkxKT09QiYmKHRoaXMudj16KSwyKSlhOntpZighQ3x8IWIpe3Y9SzticmVhayBhfWlmKEMuY29udGFpbnMmJmIubm9kZVR5cGU9PXope3Y9Qz09CmJ8fEMuY29udGFpbnMoYik7YnJlYWsgYX1pZih0eXBlb2YgQy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiE9InVuZGVmaW5lZCIpe3Y9Qz09Ynx8ISEoQy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSZKKTticmVhayBhfWZvcig7YiYmQyE9YjspYj1iLnBhcmVudE5vZGU7dj1iPT1DfXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoKChCfChCKzI+Pih2PVshMSwxMSwiZW5kc1dpdGgiXSwxKTxCJiYoQis2JnZbMV0pPj1CJiYoSz1HbFtwUygpXXx8Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaTIvIixLW3ZbMl1dKFFFKCkpfHxLW3ZbMl1dKG5TKCkpfHwoSys9ImFwaTIvIiksej09Wk8mJihLPUsucmVwbGFjZShXRSgpLGdTKCkpKSxBPShZWzI3XSg5LEspLk0/IiI6TmgoKSkrSyt6KSw0MCkpPT1CJiYoei52LkE9Syx6Lk0uWC52YWx1ZT1LKSxCKSY1Nik9PUImJihBPW5ldyB6Sih6KSksKEIrOV4zMCk8QiYmKEItMl52WzFdKT49QikmJgooYj1tWzRdKDIsIl9fIixLLEMpLEpbYl18fCgoSltiXT1ZWzJdKDksMCx2WzBdLCJfXyIsSixDKSlbbVs0XSgxMCwiX18iLHosQyldPUopLEE9SltiXSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEJ8KChCJjQyKT09KCgoQT1bInJlbW92ZSIsMzEsMF0sKChCXjI0KSYxMyk9PTEpJiYoeltLXT1KLmowKSxCKzQ+PjE8QikmJihCKzEmMjUpPj1CJiYoYj1lWzE2XSgzNyx6LHZTLGdbQVsxXV0oNDIsQVsyXSxrWzM5XSg0MixLLEopLEMudG9TdHJpbmcoKSxSbykpKSxCKSYmKHoudltBWzBdXShLKSx6LnYuYWRkKEssSikpLDU2KSk9PUImJihDPVJbNDddKDMyLEspLEMhPW51bGwmJkRbNDFdKDM5LDcseixKLGtbQVsxXV0oMSxBWzJdLDEwMjQsQykpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4oKEJ8KCgoKEJ8NSk+PjM9PSgoQiYxMjEpPT0oVz1bMSwiTSIsImZyb20iXSxCKSYmKFo9dGhpc1t6Pj4+V1swXV0+Pj4oeiZXWzBdKSoKMTUmMzI3NjcpLFdbMF0pJiYoYj1iPT09dm9pZCAwPzE6YixDPUM9PT12b2lkIDA/bVs0OF0oNzUsSix3NSgpLEspOkMsWj1BcnJheVtXWzJdXSh7bGVuZ3RoOmJ9LGZ1bmN0aW9uKCl7cmV0dXJuIHorQygpfSkpLEIpLTR8MjYpPEImJihCLTd8NDQpPj1CJiYodGhpcy5SPSEhUSx0aGlzW1dbMV1dPWJ8fG51bGwsdGhpcy5BPUssdGhpcy52PXosbj1bIiIsITEsMF0sdGhpcy5Qej1uW1dbMF1dLHRoaXMuWm09blsyXSx0aGlzLmk9cHx8blswXSx0aGlzLlg9Snx8IkdFVCIsdGhpcy5LXz12IT09dm9pZCAwP3Y6MSx0aGlzLkdxPUMsdGhpcy5EWj1BLHRoaXMuQnY9bnVsbCx0aGlzLnBpPW5bV1swXV0pLDMpKSYxMSk8NSYmQj4+V1swXT49LTQ1JiYodGhpc1tXWzFdXT1iLHRoaXMuaT1LLHRoaXMuQT1DLHRoaXMudj1KLHRoaXMuWD16KSxafV19KCksWT1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLAp1LFgpe2lmKCEoQi0oKEIrKCgoQnwyKT4+Mz09KHU9WzEwLDEsNTRdLDMpJiYoWD1uZXcgT3koeixLLEosMTkpKSxCLXVbMV0+PjMpfHwodGhpcy52PXp8fEdsLmRvY3VtZW50fHxkb2N1bWVudCksNCkmNyk9PTImJihuPVsxNzE5LDcsMTUwMV0sTD1nWzI2XSg4OCxMUi5KKCksblt1WzFdXSksYT1nWzEyXSg1LEwpLFM9YS5uZXh0KCkudmFsdWUsVj1hLm5leHQoKS52YWx1ZSxRPWEubmV4dCgpLnZhbHVlLHE9YS5uZXh0KCkudmFsdWUscj1hLm5leHQoKS52YWx1ZSx4PWEubmV4dCgpLnZhbHVlLE49YS5uZXh0KCkudmFsdWUsdj1IWzE1XSg3Mix1WzFdKSxXPUhbMTVdKDY0LDIpLFA9SFsxNV0oNTYsQyksYz1IWzE1XSgyNCw2KSxBPUhbMTVdKDcyLDkpLFo9SFsxNV0oNDAsblt1WzFdXSksZj1IWzE1XSgyNCwxMSksRT1nWzddKDM3KSxiPVtnWzQ4XSh1WzBdLDQ1MixRKSxZWzEyXSgxOCxRLFEpLGdbNDhdKDI2LDE0NDksUyksZ1s0OF0oMTgsMTYyNixWKSxJKHEsUSxTLFYpLGdbNDhdKHVbMF0sCjIwMjYsTiksUlsxOV0oNjUsTixOLHEpLGdbNDhdKDE4LG5bMF0sUyksZ1s0OF0odVswXSwxNTAyLFYpLG1bMzNdKDMyLE4sUyxPWzI1XSg3LFYpKSxnWzQ4XSgxOCwxODEsciksUlsxOV0oMzMscixyLFEpLGdbNDhdKHVbMF0seixTKSxJKFYscixTLHEpLGdbNDhdKDE2LEoseCksUlsxOV0oMzIseCx4LHEpLEhbNDRdKHVbMl0sUSksSFs0NF0oNjIsTiksZ1s0OF0oMTgsMjcxLHYpLFJbMTldKDMzLHYsdix4KSxnWzQ4XSh1WzBdLDE3ODksUyksUlsxOV0oMzMsdixTLHYpLGdbNDhdKDE2LDE0MDksVyksUlsxOV0oOCxXLFcseCksZ1s0OF0oMTYsMTMzNixTKSxSWzE5XSg4LFcsUyxXKSxnWzQ4XSgxNiwzNjIsSFsxNV0oNDAsMykpLGdbNDhdKDI0LDE1MTgsUCksZ1s0OF0oMjYsSyxWKSxSWzE5XSg3MixWLFYseCksUlsxOV0oNzMsVixQLFYpLGdbNDhdKHVbMF0sMTM3MixTKSxSWzE5XSg4LGMsUyxWKSxnWzQ4XSgxNiw1NzgsQSksZ1s0OF0oMTgsSyxWKSxSWzE5XSg5LFYsVix4KSxSWzE5XSh1WzFdLApWLFAsViksZ1s0OF0oMTgsODg0LFMpLFJbMTldKDMzLFYsUyxWKSxJKEhbMTVdKDQwLDQpLGMsQSxWKSxnWzQ4XSh1WzBdLDEwNSxIWzE1XSg0OCw1KSksZ1s0OF0oMTYsOTk5LFYpLFJbMTNdKDc3LFYsT1syNV0oMyxWKSwiIiksZ1s0OF0oMjYsMzM4LFMpLFJbMTldKDQxLFosUyxWKSxJKFosWixBLFYpLGdbNDhdKDE2LDc2NixIWzE1XSg1Nix1WzBdKSksZ1s0OF0oMTYsMTU4NSxWKSxSWzE5XSgzMixWLFYseCksZ1s0OF0oMjQsblsyXSxTKSxIWzQ0XSg1OSxmKSxtWzMwXSg0LDksNixFLFMsZixWKSxFLGdbNDhdKDI0LDEzMTYsUyksSShWLHIsUyxxKSxIWzQ0XSg1OCxyKSxIWzQ0XSg1MCxxKSxIWzQ0XSh1WzJdLHgpLEhbNDRdKDQ3LFMpLEhbNDRdKDYzLFYpXSwocD1MUi5KKCkpLnYuYXBwbHkocCxlWzMzXSgzNixMKSksWD1iKSw3KSY3KSl7aWYoQXJyYXkuaXNBcnJheShKKSlmb3Iodj0wO3Y8Si5sZW5ndGg7disrKVlbMF0oNjMseixLLEpbdl0sQyxiLEEpO2Vsc2UgaWYoUT0KQXx8ei5IfHx6LHA9SFs0NF0oMixiKT8hIWIuY2FwdHVyZTohIWIsTj1DfHx6LmhhbmRsZUV2ZW50LE49a1sxOF0oMzksTiksbj0hIXAsVz1nWzBdKHVbMV0sSyk/T1syNF0oMzcsMCxOLFEsU3RyaW5nKEopLEsuTyxuKTpLPyhaPWVbMThdKDYsSykpP09bMjRdKDM1LDAsTixRLEosWixuKTpudWxsOm51bGwseD1XKVJbMTZdKHVbMV0seCksZGVsZXRlIHouV1t4LmtleV07WD16fXJldHVybiBYfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCXjUzKSYoQi02JigoQj4+KEE9WyJjaGlsZHJlbiIsMTksInYiXSwxKSYxNXx8KGI9bmV3IHh5KHosSyxDPT09dm9pZCAwP251bGw6QyxKPT09dm9pZCAwPyExOkopLERPLnNldCh0aGlzLGIpKSxCPj4xPEFbMV0mJihCPDwxJjE1KT49NCkmJlQuY2FsbCh0aGlzLHopLDEwKXx8Sy5DfHwhS1tBWzJdXXx8IUsudSgpLmZvcm18fChlWzM2XSg1LEtbQVsyXV0sSy51KCkuZm9ybSxmUyxLLkJFKSxLLkM9eiksNyl8fCh2PUtbQVswXV0hPQp2b2lkIDA/S1tBWzBdXTpBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoSy5jaGlsZE5vZGVzLGZ1bmN0aW9uKHApe3JldHVybiBwLm5vZGVUeXBlPT16fSkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChCfDQ4KT09KCgoKEJeKChCKzleMjQpPj0ocD1bMCxudWxsLDc3XSxCKSYmKEItNXw1Nyk8QiYmKHRoaXMuWUE9ej16PT09dm9pZCAwPyExOnosdGhpcy5sb2NhbGU9cFsxXSx0aGlzLlg9ITEsdGhpcy5NPXBbMV0sdGhpcy5pPXBbMF0sdGhpcy52PW5ldyBvaixOdW1iZXIuaXNJbnRlZ2VyKEspJiZ0aGlzLnYuTnUoSyksenx8KHRoaXMubG9jYWxlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoTFMoKSkpLEdbNDBdKDYsNSxuZXcgUmosdGhpcykpLHBbMl0pKSYxMyk9PTQmJihBPWZ1bmN0aW9uKCl7dmFyIG49WyJNIiwiYXBwbHkiLCJpbmRleE9mIl07aWYodi5tKXJldHVybiBDW25bMV1dKHRoaXMsYXJndW1lbnRzKTt0cnl7cmV0dXJuIENbblsxXV0odGhpcywKYXJndW1lbnRzKX1jYXRjaChXKXt2YXIgWj1XO2lmKCEoWiYmdHlwZW9mIFo9PT0ib2JqZWN0IiYmdHlwZW9mIFoubWVzc2FnZT09PSJzdHJpbmciJiZaLm1lc3NhZ2VbblsyXV0oclMpPT16fHx0eXBlb2YgWj09PSJzdHJpbmciJiZaW25bMl1dKHJTKT09eikpdGhyb3cgdltuWzBdXShaKSxuZXcgVkUoWik7fX0sdj1iLEFbbVs0XSgxNixKLEssYildPUMsUT1BKSxCJjEwNik9PUImJih6PVByb21pc2UucmVzb2x2ZSh2b2lkIDApLEdaPWZ1bmN0aW9uKCl7ei50aGVuKFJbMjhdLmJpbmQobnVsbCw5KSl9KSxCKSl7dHJ5e3Rocm93IEVycm9yKCk7fWNhdGNoKG4pe0o9bltIRV18fHp9Zm9yKEE9KGI9KEM9Si5zcGxpdChJUigpKSxuZXcgU2V0KSxLKTtBPEMubGVuZ3RoO0ErKylDW0FdJiZiLmFkZChEWzQ0XSgyMixwWzBdLENbQV0pKTtRPWJ9cmV0dXJuKEJeODMpPDgmJkIrOD4+Mz49MSYmKFE9ZnVuY3Rpb24obixaLFcsTil7S1sobj0oVz1SW049WyJ4SiIsOCw1OV0sTlsxXV0oTlsyXSwKSyksT1s0OF0oOTYsSykpLFo9T1s0OF0oNjMsSyksTilbMF1dW1ddPShuPT1udWxsPzA6bi5tYXApP24ubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB6KHgsWil9KTp6KG4sWil9KSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4oKEJ8NSk8KCgoKHA9WyJBIixudWxsLDE5XSwoQiYyMyk9PUIpJiYoej17fSxLPW5ldyBlYygoeltGeF09dGhpcy52LlUzKCkseltCbF09ZzBbMl0oNSwxOCx0aGlzLk0udikseikpLHRoaXMudi5NLnNlbmQoSykudGhlbih0aGlzLkRPLHRoaXNbcFswXV0sdGhpcykpLEIpfDI0KT09QiYmKFBFKCksSi52PW5ldyAkeSgicnBjIixKLEpbcFswXV0sSi5rSiksSi5sPT09bnVsbCYmKEoudi5IPUouTyksSi52LlM9eixDPXlbMTVdKDQyLEouS3EpLG1bOV0oMTUsQyxxaCgpLGlUKCkpLG1bOV0oOSxDLHlFKCksSi5TKSxtWzldKHBbMl0sQyxZeSgpLEouZyksbVs5XSg3LEMsY0UoKSxKLkg/bWcoKTpqdSgpKSwhSi5IJiZKLnVZJiZtWzldKDcsCkMsU2MoKSxKLnVZKSxtWzldKDEzLEMsbTIoKSxsVCgpKSxIWzMyXSg2LEMsSiksSi5sJiZKLk8mJk9bNF0oMjYsSyxKLk8sSi5sLEMpLEouSSYmSi52LnNldFRpbWVvdXQoSi5JKSxBPUoudixBLmc9MSxiPUoucHEsQS5DPWVbNDldKDQseVsxNV0oMjAsQykpLEEuST1LLEEubD1wWzFdLFJbNDFdKDE3LCJ0eXBlIix6LEEsYiksRXkoKSkscFsyXSkmJkI+PjI+PTImJihDPUM9PT12b2lkIDA/ITE6QyxKPUo9PT12b2lkIDA/MDpKLFE9R1sxM10oMjQsZnVuY3Rpb24obixaLFcpe1c9WzEsMiwoWj1bMiwxNzRFNCw1XSwwKV07c3dpdGNoKG4uTSl7Y2FzZSBXWzBdOmlmKCEoSj56KSl7bi5HXyhaW1dbMl1dKTticmVha31yZXR1cm4gbi52KGcwW1dbMV1dKDE0KSxaW1dbMl1dKTtjYXNlIFpbV1syXV06cmV0dXJuIEN8fEsudi5zZXQobHEsWDMpLG4uQSg0KSxuLnYoSy5sKEsuRi5iaW5kKEssVGQpKSw2KTtjYXNlIDY6bi5GKFpbV1sxXV0pO2JyZWFrO2Nhc2UgNDpuLmkoKTtjYXNlIFpbV1sxXV06Yj0KWltXWzBdXSxKPFpbV1syXV0mJihDP0o9PXo/Yj01RTM6Sj09V1swXSYmKGI9NkU0KTpiPTZFNCksT1tXWzFdXSg4LGZ1bmN0aW9uKCl7cmV0dXJuIFlbM10oOSwwLEssKytKLEMpfSxiKSxuLlIoKX19KSksQnw0MCk9PUImJihRPUdbMTNdKDI1LGZ1bmN0aW9uKG4sWixXKXtpZigoWj0oVz1bNzUsMzUsMl0sWzEsMiw2XSksbikuTT09WlswXSl7aWYoZ1szMF0oV1swXSxLLGIsWlswXSx1VCxhaikpcmV0dXJuIHY9eVsxNl0oNTEseixaWzBdLGFqLGIsdVQpLG4udihtWzQ3XSgyNCxaWzFdLEosIiIseix2KSxaW1dbMl1dKTtpZighZ1szMF0oNzMsSyxiLFpbMV0saFAsYWopKXJldHVybiBkUygpLG4uR18oeik7cmV0dXJuKEE9eVsxNl0oV1sxXSx6LFpbMV0sYWosYixoUCksbikudihHWzQ4XSg1Nix6LEMsWlswXSwxNixBKSxKKX1yZXR1cm4gbi5yZXR1cm4obi5YKX0pKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCfDQwKT09KChCJjEwNik9PSgoUT1bInYiLAo0Nyw1XSwoQl4zMCk+PjMpfHwodGhpc1tRWzBdXT16KSxCKSYmKHA9Yi50aGVuKGZ1bmN0aW9uKFosVyxOLHgsZixMKXtMPVsxMCwxNSw0MV0seD1bMCwxLCExXSxmPXhbMl07c3dpdGNoKFouaEsoKSl7Y2FzZSB6OmNhc2UgeFswXTpmPXYuUVgsTj12Lml5O2JyZWFrO2Nhc2UgeFsxXTpOPXYuZkQ7YnJlYWs7ZGVmYXVsdDpOPW5ldyB5Nn1yZXR1cm57cXU6bmV3IChXPVJbNDNdKDExLEMseVtMWzFdXSgxNixOKSxHWzMyXSgyLHhbMV0sSixOLlgsa3kpKSx0UCkoTixtW0xbMl1dKExbMF0seFswXSxBLnZBKSxaKSxrWjpuZXcgVXkoTixaLG1bTFsyXV0oMix4WzBdLEEudkEpKSxaaTpmdW5jdGlvbihyLFYsUCxxLGMsRSxTKXtyZXR1cm4ocT1uZXcgKEU9bmV3IE1oKEEudkEhPT12b2lkIDAsZixaLChjPShTPUEuZHopPT1LP3ZvaWQgMDpTLkhvKSE9Sz9jOiExLFcpLHdTKShmdW5jdGlvbihhLHUpe3JldHVybiBuZXcgKG5ldyBJaixGMykoYSx1KX0scixWLFAsRSkscS5zdGF0ZSk9PT0KMCYmKHEuc3RhdGU9MSxHWzQzXSgxNixDLHEuY2hhbm5lbCkpLHF9fX0pLG49bmV3IEJIKHAsQSkpLEIpKWE6e2lmKGI9KEo9bVs4XSg4KSxLPT09dm9pZCAwKT8wOkssIXope249YjticmVhayBhfWZvcihDPTA7Qzx6Lmxlbmd0aDtDKyspQT1KLmNhbGwoeixDKSxiPShiPDxRWzJdKS1iK0EsYiY9YjtuPWJ9aWYoQis3Pj4xPEImJihCLTdeMzEpPj1CKXtmb3IocD12PUs7RFtRWzFdXSg3LEosYikmJmIuTSE9QzspaWYoYi5pIT09MTZ8fHApaWYoYi5pIT09MjZ8fHYpUlsxNF0oNixKLGIpO2Vsc2UgcD8odj0tMSxEWzE2XSgzMixLLHAsYixBKSk6KHY9Yi5BLFJbOV0oMTcseixKLGIpKTtlbHNlIHA9WVsyNV0oNjgsYltRWzBdXSksdiYmKGJbUVswXV1bUVswXV09dix2PUspO2lmKGIuaSE9PTEyfHwhdnx8IXApdGhyb3cgRXJyb3IoKTt9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoKG49WyJudW1iZXIiLDEwLDE1XSwoQiY4NCk9PUIpJiZDIT1udWxsKXN3aXRjaChEWzIyXSg2OCwKMCxiLEopLHR5cGVvZiBDKXtjYXNlIG5bMF06KGJOKChBPWIudixDKSksaylbMTJdKDEsMCxDKSxlWzI4XShuWzFdLE9PLHhPLEEpO2JyZWFrO2Nhc2UgSzoocD1EWzEzXSg4MCx6LHNzLEMsR1sxNF0uYmluZChudWxsLDgpKSxlKVsyOF0oNDMscC5NLHAudixiLnYpO2JyZWFrO2RlZmF1bHQ6dj1PWzI1XSgyNiwxNixDKSxlWzI4XSgxMSx2Lk0sdi52LGIudil9cmV0dXJuKChCKzM8MTMmJihCLTcmblsyXSk+PW5bMV0mJlQuY2FsbCh0aGlzLHopLEIrNykmblsyXSk9PTImJihiPUouVTkseltLXT1DP2Z1bmN0aW9uKFosVyxOKXtyZXR1cm4gYihaLFcsTixDKX06YiksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVybiBCKzg+PjQ8KChCfDMyKT09KFo9WyJ2IiwyLDE2XSxCKSYmKHRoaXNbWlswXV09Syx0aGlzLk09bmV3IG9CKEoseikpLFopWzFdJiYoQi04JjcpPj02JiYobj1HWzEzXShaWzJdLGZ1bmN0aW9uKFcsTix4LGYpe2lmKChmPVsxMiwidiIsMTNdLApLLlgpLmJEKWZvcihiPWdbZlswXV0oZlswXSxLLnN0cmVhbXMudmFsdWVzKCkpLEo9Yi5uZXh0KCk7IUouZG9uZTtKPWIubmV4dCgpKWlmKEE9Si52YWx1ZSxDPUFbZlsxXV0sQyBpbnN0YW5jZW9mIHpPJiYoQz1DW2ZbMV1dKSxDLk0pcmV0dXJuIFcucmV0dXJuKFtBLlgsQVtmWzFdXV0pO2ZvcihRPSh2PWdbZlswXV0oOSxLLnN0cmVhbXMudmFsdWVzKCkpLHYubmV4dCgpKTshUS5kb25lO1E9di5uZXh0KCkpcmV0dXJuIHA9US52YWx1ZSxXLnJldHVybihbcC5YLHBbZlsxXV1dKTtyZXR1cm4oeD0oTj1uZXcgemgsVylbZlsxXV0sTi5zb3VyY2U9Sy5sLHgpLmNhbGwoVyxIWzhdKGZbMl0sTi5ocyhLeSgpKSkseil9KSksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYocD1bNCw2LDE2XSwoQnw3Mik9PUIpe2lmKEpxKXtKPSExO3RyeXtKPSFZWzIwXShwWzFdLHopLmRvY3VtZW50fWNhdGNoKG4pe0o9ITB9SiYmKGVbNDZdKDQzLEpxKSxKcT16KX1RPSgoYj0oIShDPUN5fHwKR1sxNV0oNDApLEpxKSYmQyYmKEpxPVJCKGJZKSxZWzM1XSgzMixKcSwiZGlzcGxheSIsIm5vbmUiKSxDLmFwcGVuZENoaWxkKEpxKSksRClbMTFdKDMpLEpxKSYmKGI9WVsyMF0oMjIseil8fGIpLEsoYikpfXJldHVybigoKChCfDgwKT09QiYmKChiPUhbMzldKDczLDAsZ1sxNF0ocFsxXSxBcSkpKT8oQT1uZXcgdkgobmV3IFlpLGVbNDhdKDEzLDgsSyxiK1RPKSksQS5yZXNldCgpLEEudXBkYXRlKEopLHY9QS5kaWdlc3QoKSxDPXlbMThdKHBbMF0scFsyXSx2KS5zbGljZSgwLHBbMF0pKTpDPXosUT1DKSwoQnw3KTwyMCYmKEI+PjImMTUpPj0yJiYoQz1DPT09dm9pZCAwPyExOkMsSj1KPT09dm9pZCAwP3t9OkosUT1HWzEzXShwWzJdLGZ1bmN0aW9uKG4sWil7aWYoKFo9WyJ2IiwhMSwhMF0sbi5NKT09MSl7aWYoKEsuTS5MdShaWzFdKSxiPUsuWCxLLlgpPT1LUylyZXR1cm4gbi5HXyh6KTtyZXR1cm4gbltLLlg9amgsWlswXV0oSy5NLlMwKCkseil9KChBPUtbWlswXV1bWlswXV0mJgohS1taWzBdXS5BLGIpPT09cHl8fEEmJihiPT09c3l8fGI9PT1RSik/SFs0OF0oMTEsWlsyXSxLLEosQyk6YiE9bnkmJksuUi50aGVuKGZ1bmN0aW9uKFcpe3JldHVybiBXLnNlbmQoanQsbmV3IEZ5KHt2aXNpYmxlOiEwLFJOOkN9KSl9LE9bNDVdLmJpbmQobnVsbCwyKSksbikuUigpfSkpLEIpLTNecFsxXSk+PUImJihCKzcmNDUpPEImJlQuY2FsbCh0aGlzLHopLChCfDQ4KSE9Qil8fEMuTXx8KEMuWD1NYXRoLnRydW5jKFlqKCkpLEMuaXx8KEMuaT1SWzEzXSgxLEssSixDLHopfHxtWzJdKDcsSikpLEMuTT1DLmkudGhlbihmdW5jdGlvbihuLFosVyl7aWYoKFc9WyJsIiwidHJ1bmMiLDddLG4pJiZ0eXBlb2YgbltaSCgpXT09PSJmdW5jdGlvbiIpcmV0dXJuIFo9TWF0aFtXWzFdXShZaigpKSxDW1dbMF1dKyssbVsyXShXWzJdLG4ucmVxdWVzdFRva2VuKGIpKS50aGVuKGZ1bmN0aW9uKE4peyhDLlI9TWF0aC50cnVuYyhZaigpKS1aLE4pJiYoQy52PU4pfSk7biYmKEMudj1XSCl9KS5jYXRjaChmdW5jdGlvbigpe0Mudj0KZ099KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihCJjMwKT09KCgoYj1bNCwib2JqZWN0IiwiYXJyYXkiXSxCKSYxNSk9PUImJihKPUhbNDZdKGJbMF0sYlsxXSxLKSxDPUo9PWJbMl18fEo9PWJbMV0mJnR5cGVvZiBLLmxlbmd0aD09eiksQikmJihDPWtWKHosSyk+PTApLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe3JldHVybigoQiY3Nyk9PSgoQi0xXjI2KT49KHg9WyJNIiwicGFyZW50Tm9kZSIsM10sQikmJihCKzkmMzApPEImJlQuY2FsbCh0aGlzLHopLEIpJiYoZj1URCgnPGRpdj5yZUNBUFRDSEEgaXMgY2hhbmdpbmcgaXRzIHRlcm1zIG9mIHNlcnZpY2UuIDxhIGNsYXNzPSJtaWdyYXRlLWxpbmsiIGhyZWY9Imh0dHBzOi8vZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYWRtaW4vbWlncmF0ZSIgdGFyZ2V0PSJfYmxhbmsiPlRha2UgYWN0aW9uLjwvYT48L2Rpdj4nKSksQnwxKT49eFsyXSYmKChCXjYpJjgpPDYmJihXPUhbMTddKDMwLApDLGIpLFo9ZVszNV0oODcseix2b2lkIDAsVy52LHZvaWQgMCxOcClbMF0sWnx8KHA9ZVszNV0oODMseix2b2lkIDAsVy52LHZvaWQgMCxPcylbMF0sWj1XW3hbMF1dKE5wKSxwW3hbMV1dLmluc2VydEJlZm9yZShaLHApKSxuPVdbeFswXV0oeE0pLHY9ZG9jdW1lbnQsKFE9bVsxM10oNixLLEosbmYoKSx2KSkmJm4uc2V0QXR0cmlidXRlKFNFKCksUSksTj1HWzE3XSgyOSxKLEEpLEdsLnRydXN0ZWRUeXBlcz9SWzM2XSgxOCxuLE4pOm4uaW5uZXJIVE1MPU4sVy5YKFosbikpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoISgoKCgoKEImKChCKzkmKEE9W251bGwsInYiLDE0XSxBWzJdKSk9PTImJih0aGlzW0FbMV1dPXopLDEwNykpPT1CJiYodj1rWzddKDIsITAsITEsMCk/eihESCk6WVs3XSg3OCxBWzBdLGZ1bmN0aW9uKHAsUSxuLFope249T2JqZWN0WyhaPVsidG9KU09OIiwiSlNPTiIsInByb3RvdHlwZSJdLFE9QXJyYXlbWlsyXV1bWlswXV0sWilbMl1dW1pbMF1dO3RyeXtyZXR1cm4gZGVsZXRlIEFycmF5W1pbMl1dW1pbMF1dLApkZWxldGUgT2JqZWN0W1pbMl1dW1pbMF1dLHoocFtaWzFdXSl9ZmluYWxseXtRJiYoQXJyYXlbWlsyXV1bWlswXV09USksbiYmKE9iamVjdFtaWzJdXVtaWzBdXT1uKX19KSksQikrMl4yOSk+PUImJihCLTFeMTMpPEImJih2PUs9PXo/SzpnWzJdKDIyLEspKSxCKXw2KT4+NCkpYTpzd2l0Y2godHlwZW9mIGIpe2Nhc2UgImJvb2xlYW4iOnY9Znl8fChmeT1bMCx2b2lkIDAsITBdKTticmVhayBhO2Nhc2UgSzp2PWI+Sj92b2lkIDA6Yj09PTA/b0V8fChvRT1bMCx2b2lkIDBdKTpbLWIsdm9pZCAwXTticmVhayBhO2Nhc2UgQzp2PVswLGJdO2JyZWFrIGE7Y2FzZSB6OnY9YjticmVhayBhfXJldHVybihCLTUmMTEpPT0zJiYoej1SWzhdKDU5LHRoaXMpLEs9T1s0OF0oMzEsdGhpcyksdGhpcy5GJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5GLEspP3RoaXMueEpbel09dGhpcy5GW0tdOnRoaXMueEpbel09RFsxMV0oMSlbS10pLHZ9LGZ1bmN0aW9uKEIseiwKSyxKLEMsYixBLHYpe3JldHVybihCKygoQjw8MiYoQT1bOCw0NCwyNF0sQSlbMF0pPDImJkIrMj49LTQ2JiYoalk9eix0JC5Bcyh6KSksNSkmMjIpPEImJkItNzw8MT49QiYmKEogaW5zdGFuY2VvZiB4az9iPW1bQVsxXV0oQVsyXSx6LEopOmI9THkudGVzdChKKT9KOnZvaWQgMCxDPWIsQyE9PXZvaWQgMCYmKEsuaHJlZj1DKSksdn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oQi0zfCgoQiYxOSk9PShDPVsxMywidiIsMjJdLEIpJiYoSj1SW0NbMF1dKDQ3LEhbMjVdKDU5LE9bOV0oMjEsMTcpLHopLFtPWzI1XSgzLEspXSkpLENbMl0pKT49QiYmKEIrNV5DWzBdKTxCJiYodGhpc1tDWzFdXT16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEI+PjImKHY9WzUsNCwzXSx2WzBdKXx8KHA9SFs0NF0oODMsSyxSRSx6LEopKSxCLXZbMV0pPDwxPj1CJiYoQi12WzJdXjI0KTxCKUdbMTNdKDMzLGZ1bmN0aW9uKFEpe3JldHVybiBRLnYoKEE9Qy5JLmJpbmQoQyxiKSwobmV3IFByb21pc2UoZnVuY3Rpb24obil7cmV0dXJuIGtbMzBdKDMzLAp6LEssbil9KSkudGhlbihmdW5jdGlvbigpe3JPP3JPKEEpOlZKKEEpfSkpLEopfSk7cmV0dXJuIEIrNj4+dlsxXT49MSYmQi02Pj52WzFdPDEmJihEWzJdKDksMSx6LEMsZnVuY3Rpb24oUSxuLFosVyxOKXtuIT0oWj1bMCwoTj1bbnVsbCwwLDJdLDMpLDFdLE5bMF0pJiYoKFc9Z1s0MF0oMjQsWltOWzFdXSxaW05bMl1dLCJudW1iZXIiLFEsSikpP1coYixuLFEpOlE8S3x8bVs0N10oTlsyXSxaW05bMl1dLEdPLFpbMV0pKX0sQ1tBJF18MCksKEE9eVsyMl0oMjMsQykpJiZEWzM3XSgxMSxmdW5jdGlvbihRLG4sWixXLE4pe2ZvcihIWyhOPVs0NSwzNSwwXSxOKVswXV0oTlsxXSxiLnYuZW5kKCksYiksVz1OWzJdO1c8Wi5sZW5ndGg7VysrKUhbTlswXV0oNjcsZ1szMF0oNiwyLFpbV10pfHxuZXcgVWludDhBcnJheSgwKSxiKX0sQSkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKChCJihaPVsyOSwyLDZdLDE1KSk9PUImJihBPVs0LG51bGwsITBdLGI9ei5WZSgpLApDPShKPT1BWzFdPzA6Si5zMyk/Si5zMygpOnZvaWQgMCxwPShKPT1BWzFdPzA6Si5BeSk/Si5BeSgpOnZvaWQgMCxRPW5ldyBZTCx2PWtbWlsyXV0oMzAsWlsxXSxRLGI/Yi5sZW5ndGg6MCksQyYmKEhbNDldKDUwLDEsQyx2KSxlWzQzXSg2MSxLLEFbWlsxXV0sQVswXSkpLHAmJihIWzQ5XSg0NCwzLHAsdiksZVs0M10oWlswXSxLLEFbWlsxXV0sQVswXSkpLEhbNDRdKDg0LEssWUwsNSx2KSwoMCx0JC5BcykoSykpLEItWlsyXT4+NDwxKSYmQi01Pj4zPj0xJiYoSj0iIix6PXp8fHt9LEs9ei5RbyxIWzQ1XSg3NixISCgpLEssaW0oKSxlaCgpKXx8KEorPSJQcmVzcyBSIHRvIHJlcGxheSB0aGUgc2FtZSBjaGFsbGVuZ2UuICIpLG49VEQoSisnUHJlc3MgdGhlIHJlZnJlc2ggYnV0dG9uIHRvIGdldCBhIG5ldyBjaGFsbGVuZ2UuIDxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3JlY2FwdGNoYS8jNjE3NTk3MSIgdGFyZ2V0PSJfYmxhbmsiPkxlYXJuIGhvdyB0byBzb2x2ZSB0aGlzIGNoYWxsZW5nZS48L2E+JykpLApCfDMyKT09QilhOmlmKHomSil7bj01MTImSj81MTI6SyZKPzEwMjQ6MDticmVhayBhfXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEIrKCgoQis2XigoKGI9WzAsNCwxNV0sQikmNzcpPT1CJiYoQz1SWzEzXSgzOSxIWzI1XSg1NyxPWzldKDE4LGJbMl0pLHopLFtnWzE2XSgzOCxLKSxnWzE2XSgzMCxKKV0pKSwyMSkpPEImJihCKzEmNDcpPj1CJiYoej1EWzExXSg4KS5uYXZpZ2F0b3IudXNlckFnZW50RGF0YSxDPVJbNDRdKDgsMyxrWzM3XSg0OCwyLHlbMTFdKGJbMV0sMSwxNixuZXcgUEgsei5icmFuZHMubWFwKGZ1bmN0aW9uKEEsdixwLFEpe3JldHVybihwPShRPVsyMywzMCwiYnJhbmQiXSxuZXcgZ3IpLHY9bVtRWzBdXShRWzFdLEFbUVsyXV0scCwxKSxtKVtRWzBdXShRWzBdLEEudmVyc2lvbix2LDIpfSkpLHoubW9iaWxlKSx6LnBsYXRmb3JtKSksKEJ8ODApPT1CKSYmJE0uY2FsbCh0aGlzLHFwLHopLDkpPj4zPj1iWzBdJiYoQnwyKTwxNiYmVC5jYWxsKHRoaXMsCnopLChCXjU3KT4+YlsxXSl8fCh6PUVycm9yKCksZ1szOF0oNDkseiwiaW5jaWRlbnQiKSxjNz95WzE2XSgxMSx6KTpPWzQ1XShiWzFdLHopKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKCgoQi0xXjIzKTwoWj1bMzcsMjUsNDBdLEIpJiYoQi05fFpbMl0pPj1CJiYocD1EW1pbMV1dKDksInxbIixiLnYpPT09InZpc2libGUiLFlbMzVdKDQ4LGIudix7dmlzaWJpbGl0eTpBPyJ2aXNpYmxlIjoiaGlkZGVuIixvcGFjaXR5OkE/IjEiOiIwIix0cmFuc2l0aW9uOkE/InZpc2liaWxpdHkgMHMgbGluZWFyIDBzLCBvcGFjaXR5IDAuM3MgbGluZWFyIjoidmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4zcywgb3BhY2l0eSAwLjNzIGxpbmVhciJ9KSxwJiYhQT9iLlM9T1syXSg1NSxmdW5jdGlvbigpe1lbMzVdKDQwLHRoaXMudixDLCItMTAwMDBweCIpfSxLLGIpOkEmJihrWzE2XSg1NixiLlMpLFlbMzVdKFpbMl0sYi52LEMsIjBweCIpKSx2JiYoUT1EWzExXSgxMCkuaW5uZXJIZWlnaHQsCmVbMTRdKDI2LHosWVs0N10oMzMsITEsYiksbDkodi53aWR0aCxEWzExXSgxMSkuaW5uZXJXaWR0aCksbDkodi5oZWlnaHQsUSkpLGVbMTRdKDIzLHosZ1syNl0oMjEsSixZWzQ3XShaWzBdLCExLGIpKSx2LndpZHRoLHYuaGVpZ2h0KSx2LmhlaWdodD5RJiZBJiZZWzM1XSgzMixZWzQ3XShaWzJdLCExLGIpLHsib3ZlcmZsb3cteSI6ImF1dG8ifSkpKSxCLTl8NTUpPEImJihCKzleMTEpPj1CJiZlWzQ1XSgxOSwxLEssSix6KSYmeVszM10oNjMsMSxLLEoseiksKEIrMSY4KTw2JiYoQl40Mik+PS02MSkmJihuPVBiKGZ1bmN0aW9uKFcsTix4KXtyZXR1cm4oTj0oeD1mdW5jdGlvbihmLEwpe3JldHVybigoTD1bInJlcGxhY2UiLCJpbmRleE9mIiwidHJpbSJdLGZbTFsxXV0oQTgoKSkpIT0tMSYmKGY9Zi5zbGljZShmW0xbMV1dKEE4KCkpKSksZltMWzBdXSgvXHMrL2csbzkoKSlbTFswXV0oL1xuL2cseikpW0xbMl1dKCl9LHgoeitKKSksVz14KHorQyksTik9PVd9LEspKSxufSxmdW5jdGlvbihCLAp6LEssSixDKXtyZXR1cm4oKEJ8KChKPVszLDEyNiwxOV0sQiZKWzFdKT09QiYmViQuY2FsbCh0aGlzKSw1KSkmSlswXSk9PTEmJihLPUVSLmdldCgpLEM9WVtKWzJdXSgzNix6LEspKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZihBPVsidiIsMjA0OCwhMF0sIShCPDwxJjcpKWE6e2lmKEtbQVswXV0hPT1jTCl7Yj0hMTticmVhayBhfUtbSy5NPShLLmFUPSgoSj1DPShDPUsuYVQsTylbMThdKDQsMzQsQ1tBJF18eixDKSxPKVsxNF0oNjQsQVsxXSxKKSxKKSx2b2lkIDApLEFbMF1dPXZvaWQgMCxiPUFbMl19cmV0dXJuKEJeMzcpPj4zfHwoYj1SZWdFeHAoIl5odHRwczovL3d3dy5nc3RhdGljLmMuLj8vcmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdi9yZWNhcHRjaGFfXy4qIikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQiY4Mik9PShaPVsiVyIsIndpbmRvdyIsIlIiXSxCKSl7aWYodGhpcy51Nz10aGlzLmtuPSh0aGlzLmlkPQoocD0odGhpcy52PW5ldyBpWSgoYj1bMCwxRTUsbnVsbF0seikpLHdpbmRvdylbaTNdLHRoaXMudi5nZXQoeUopKT9iWzFdK3BbWU0oKV0rKzpwW2M4KCldKyssSiksdGhpcy5nPUssdGhpcy52LmhhcyhjSCkpe2lmKEM9ZVszNV0oODksYlsyXSx0aGlzLnYuZ2V0KGNIKSksIUMpdGhyb3cgRXJyb3IoU2goKSk7dGhpcy51Nz1DfSh0aGlzLkM9KHY9KChRPSh0aGlzLkg9KCh0aGlzW3RoaXMuUD0odGhpcy5YPSh0aGlzLm09KCh0aGlzLmk9KHRoaXNbKHRoaXMuQT0odGhpcy5vPWJbMl0sbmV3IG14KSx0aGlzKS5NPWJbMl0sWlsyXV09YlsyXSxiWzJdKSx0aGlzKS5VPW5ldyBsWSxiWzBdKSxiKVsyXSxPKVs0MV0oMjcpLFpbMF1dPWJbMl0sdGhpcykuaj0hMCwhMSksSFsyXSg0Myx0aGlzLnYsU0IpPT09IjZMZVlxRmNxQUFBQUFENmlaZXNtTmdWdWxzTzRQa3BCZHI2TlZHNk0ifHxIWzJdKDU5LHRoaXMudixTQik9PT0iNkxlYjdLTXBBQUFBQUFtMjBER05kV19PN2Z1VzRoRUNwNFBwRTZjSSJ8fApIWzJdKDQzLHRoaXMudixTQik9PT0iNkxmd21RRW9BQUFBQU9jTXYxZ0VpODVrSFBjSVpyQ3Fwem9HQlJlRSJ8fEhbMl0oMTEsdGhpcy52LFNCKT09PSI2TGNIVzlVWkFBQUFBTHR0UXo1b0RXMXZLSDUxcy04X2dET3MtcjRuIil8fEhbMl0oNTksdGhpcy52LFNCKT09PSI2TGZNc0o0a0FBQUFBT2N1RlNTamE1VGVSdm9pMjZTZXhtRzJvM0w2Inx8SFsyXSgxMSx0aGlzLnYsU0IpPT09IjZMY1hVOWNtQUFBQUFNWEJpaHA5MlM3clZyY0wtLVNnYUwweUxDUUciLEE9R2xbWlsxXV1baTNdW0VsLmdldE5hbWUoKV0sdGhpcy5PPVE/OEU0OkEmJkEubGVuZ3RoPmJbMF0/QVtiWzBdXToyRTQsdGhpcykudi5zZXQoRWwsdGhpcy5PKSxHbClbWlsxXV1baTNdW1g4LmdldE5hbWUoKV0sUT82RTQ6diYmdi5sZW5ndGg+YlswXT92W2JbMF1dOjNFNCksdGhpcy52KS5zZXQoWDgsdGhpcy5DKSxnWzJdKDEsIi0iLCExLHRoaXMsMSl9aWYoISgoKEItMV4xNSk+PSgoQj4+MSYxNSk9PTImJihuPU9bMTRdKDE0LApudWxsLEhbNF0oOTQseixLLGwsUUIpKSksQikmJihCLTJeMTIpPEImJihuPVJbNDhdKDcyLEssRXMseixsKSksQiktNiYxNSkpe2ZvcihiIGluIEM9KEo9eixbXSksSylDW0orK109YjtuPUN9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKCgoKFo9KChCJjkwKT09QiYmKEs9ei5uYixRPXouYU4sdj16Lmx5LEM9ei5jbz09PXZvaWQgMD8hMTp6LmNvLHRoaXMucEQ9ei5wRCxKPXoud3osdGhpcy5jbz1DLHRoaXMubHk9dix0aGlzLnd6PUosYj16LktiLHRoaXMuV0E9ei5XQSxwPXoucGI9PT12b2lkIDA/bnVsbDp6LnBiLHRoaXMubmI9Syx0aGlzLmFOPVEsdGhpcy5OST1BPXouTkksdGhpcy5wYj1wLHRoaXMuS2I9Yix0aGlzLlFOPW49ei5RTiksWyJMIiwxLDE4XSksQileMzYpJjE1KT09MilhOntLPUpxO3RyeXtXPUsuY29udGVudFdpbmRvd3x8KEsuY29udGVudERvY3VtZW50P0RbMTFdKDgsSy5jb250ZW50RG9jdW1lbnQpOm51bGwpO2JyZWFrIGF9Y2F0Y2goTil7fVc9Cnp9cmV0dXJuKChCKzImNTIpPj1CJiYoQi02XlpbMV0pPEImJihYZy5jYWxsKHRoaXMsQkwpLHRoaXMuWGc9W10sdGhpcy5qPTAsdGhpcy5IPVtdLHRoaXMudj1bXSx0aGlzW1pbMF1dPSExKSwoQi05XlpbMl0pPj1CJiYoQis5JjU3KTxCKSYmVC5jYWxsKHRoaXMseiksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEItKChiPVs4LCJhZGQiLDFdLEImNjEpPT1CJiYoQz1uZXcgdVksQ1tiWzFdXShhRSxIWzJdKDQzLEoudixTQikpLENbYlsxXV0oaHEseiksQ1tiWzFdXShkTywiQTdLcGFFQVNmaERjSzBuWHhnUUV5eVl2IiksQ1tiWzFdXShrTSxEYXRlLm5vdygpLUoubSksd2luZG93W2kzXVt0cSgpXSYmQ1tiWzFdXShVcyxLKSxBPWtbNDddKDksWk8pKyI/IitDLnRvU3RyaW5nKCkpLChCXjMwKT4+NHx8KEE9Uls0OF0oNzUsSyxNcCx6KSksMileNCk+PUImJihCK2JbMF0mMjUpPEImJih6PXRoaXMubGVuZ3RoLEE9dGhpcy5QbCh6LWJbMl0pPD0zMjc2Nz96KjItYlsyXToKeioyKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZighKEI8PDEmKCgoKEJ8OSk+PigoKFE9WzMxLCIuIDwvZGl2PiIsNTJdLEIpXjExKT4+ND09NCYmKHA9SFsyMV0oNDUsSyx6LGwpKSw0KXx8KEo9WyJyZWNhcHRjaGEtYWNjZXNzaWJsZS1zdGF0dXMiLCJyYy1hbmNob3ItYXJpYS1zdGF0dXMiLCc8ZGl2IGlkPSInXSxLPUhbNDVdKDQwLEVPKCkseixpbSgpLGNmKCkpLHA9VEQoSlsyXStSWzExXSg5LEpbMF0pKyciIGNsYXNzPSInK1JbMTFdKDcsSlsxXSkrJyIgYXJpYS1oaWRkZW49InRydWUiPicrRFszOV0oMixLKStRWzFdKSksQil8NTYpPT1CJiYocD1ZWzE5XSgzNyx6LEspKSwxNCkpKUdbMTNdKDE3LGZ1bmN0aW9uKG4sWixXKXtmb3IoVz1bMTEsIk0iLDldLFo9MjM7WiE9MTA7KXtpZihaPT0zMClyZXR1cm4gdj1uLlgsbi52KHdPKHYub3UoKSksQyk7aWYoWj09NDkpQT1uLlgsSFs1XSgyNSxEW1dbMF1dKFdbMF0pLElFLGZ1bmN0aW9uKE4seCxmLEwscixWLApQLHEsYyxFLFMsYSx1LFgsZCl7Zm9yKFg9WyJvdSIsIm5ld1ZhbHVlIiwwXSxkPTY4O2QhPTk0OylkPT02OD8oYz1bNkU0LCItXFxkKyQiLCItIl0scj1OLmVxLGQ9ODMpOmQ9PTg5Pyh4PW5ldyBGZyxxPW1bMjNdKDI4LHIua2V5LHgsMSksVj1iTihwZXJmb3JtYW5jZS5ub3coKS9jW1hbMl1dKSxTPWtbNl0oNTYsSyxxLFYpLFA9a1szNV0oMzIsIiIrYnx8IiIsOCksZj1tWzIzXSgzMCxQLFMsQyksTD1IWzQ0XSg2NyxmLEJOLEosdi5QdigpKSxhPUFbWFswXV0oKSxFPW1bMjNdKDMyLGEsTCx6KSx1PWVbNDZdKDI1LEMsRS5UKCkpLGcwWzRdKDIsci5rZXkrY1syXStrWzM1XSgzMixIWzM5XSg3MiwxLGdbMTRdKDIsZHkpKXx8IiIpLHUsWFsyXSksT1syXSgzOSxlWzQyXS5iaW5kKG51bGwsNiksMTEpLGQ9OTQpOmQ9PTgzJiYoZD1yLmtleSYmcltYWzFdXSYmci5rZXkubWF0Y2goZ1sxNF0oNyxzcCkrY1sxXSk/ODk6OTQpfSksbi5SKCksWj0xMDtlbHNle2lmKFo9PTEzKXJldHVybiBuLnYoeiQoZVszMV0oMjIpLAptWzM1XSg0MykpLEspO1o9PVdbMl0/Wj1uW1dbMV1dIT1DPzMwOjQ5Olo9PTIzJiYoWj1uW1dbMV1dPT0xPzEzOldbMl0pfX19KTtpZigoQiYzOSk9PUIpYTp7aWYoYj1aZihOdW1iZXIoSikpLE51KGIpJiZiPj16KXtwPUdbUVswXV0oODUsYik7YnJlYWsgYX1wPShDPUouaW5kZXhPZihlQygpKSxDIT09LTEmJihKPUouc3Vic3RyaW5nKHosQykpLGdbMjJdKFFbMl0pP0dbUVswXV0oODYsS3coNjQsQmlnSW50KEopKSk6R1tRWzBdXSg4Mix5WzQ3XSgzMyw4LEssSikpKX1yZXR1cm4gcH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7cmV0dXJuKCgoQisoKEImKCgoQisoVz1bJyI+PC9kaXY+JywiUEYiLDExXSw2KSYxNSk9PTQmJihaPWd3KHRoaXMuSDEodGhpcy5sZW5ndGgtMSkpKSwoQi04fDMyKTxCJiZCKzc+PjE+PUIpJiYoQT1BPT09dm9pZCAwPyExOkEsUT1iLnYuQyxuPUhbNDNdKDEsQyxLLFsoMCx0JC55NSkoYi5KTC5iaW5kKGIscCksMiksYi5SXSkudGhlbihmdW5jdGlvbihOLAp4LGYsTCl7cmV0dXJuIHg9KGY9KEw9Z1sxMl0oMTEsTiksTCkubmV4dCgpLnZhbHVlLEwubmV4dCgpLnZhbHVlKSwoMCx0JC55NSkoZnVuY3Rpb24ocixWLFAscSxjLEUpe3JldHVybiByPShWPShQPShxPUdbMzldKDQxLHlbMzZdKDIsMjcsMywoRT1bIkoiLCJ2IiwoYz14LnNlbmQsMTkpXSxmKSx2LGIpKSxiLm5xKSxkaylbRVswXV0oKS5nZXQoKSxZKVtFWzJdXSg2OSwxNixWKSxjLmNhbGwoeCxUZCxuZXcgRnQocSxQLCEoIXJ8fCFiW0VbMV1dW0VbMV1dKSxBKSl9LHopfSlbV1sxXV0oZnVuY3Rpb24oKXt9KSxPWzJdKDM5LGZ1bmN0aW9uKCl7bi5jYW5jZWwoKSxiLmwodixKNSl9LDE1RTMqKEorUSkpLFo9biksNDIpKT09QiYmKEs9ei50QixKPVsnIj48L2NhbnZhcz48aW1nIGNsYXNzPSInLCc8ZGl2IGlkPSJyYy1jYW52YXMiPjxjYW52YXMgY2xhc3M9IicsInJjLWNhbnZhcy1pbWFnZSJdLFo9VEQoSlsxXStSW1dbMl1dKDM5LCJyYy1jYW52YXMtY2FudmFzIikrSlswXStSW1dbMl1dKDksCkpbMl0pKyciIHNyYz0iJytSW1dbMl1dKDM5LE9bMF0oMTksIiIsSykpK1dbMF0pKSw4KSY2Mik8QiYmKEItOHw2OSk+PUImJih0aGlzLkliPTEwMjQpLEIpfDQ4KT09QiYmKHouVXx8KHouVT1uZXcgd0UoeikpLFo9ei5VKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIEItOD4+Mz09KChDPVs2LDEwLCIiXSxCJjQ3KT09QiYmKGI9R1tDWzFdXSg5MCxDdyxLKT9tWzE3XSgxOSxLLlZlKCksITEpOks9PXo/IiI6SyBpbnN0YW5jZW9mIGVXP21bMTddKENbMF0sR1sxN10oMjgsQ1syXSxLKSwhMSk6bVsxN10oMjAsU3RyaW5nKEspLCEwKSksMSkmJih0aGlzLk09Six0aGlzLnBEPXosdGhpcy52PUspLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoKEItKE49WyJjb25zdHJ1Y3RvciIsMSwwXSw1KSYxMXx8R0QuY2FsbCh0aGlzLE5bMl0sTlsyXSx1RixidSksQnwzKSYxNCk9PTIpYTp7aWYoKG49SysoQz8wOi0xKSx2PWIubGVuZ3RoLShXPQpbbnVsbCwwLDEwMjNdLE4pWzFdLHY+PU5bMV0rKEM/MDotMSkpJiZuPj12JiYocD1iW3ZdLHAhPVdbTlsyXV0mJnR5cGVvZiBwPT09Im9iamVjdCImJnBbTlswXV09PT1PYmplY3QpKXtwW0tdPSh4PUoseik7YnJlYWsgYX1pZihuPD12KXt4PUosYltuXT16O2JyZWFrIGF9eD0oeiE9PXZvaWQgMCYmKFE9KChaPUopIT1XW05bMl1dP1o6Sj1iW0EkXXxXW05bMV1dKT4+MTQmV1syXXx8NTM2ODcwOTEyLEs+PVE/eiE9V1tOWzJdXSYmKEE9e30sYltRKyhDPzA6LTEpXT0oQVtLXT16LEEpKTpiW25dPXopLEopfXJldHVybihCPj4yJjE1KT09KChCfCgoQiY3NSk9PUImJihDPUoueWUoQTUpLHg9T1syM10oNDIsQyxLKS5zdWJzdHJpbmcoeikpLDI0KSk9PUImJlQuY2FsbCh0aGlzLHosTlsyXSx2Ti5SVCksTlsxXSkmJih4PWtbMTVdKDQ2LHopPj4+TlsyXSkseH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKChCPj4odj1bIkZnIiwicGciLDExMF0sMSk8MjMmJihCLTMmMTQpPj0KNiYmKHRoaXMuTXg9enwwLHRoaXMuaD1LfDApLChCXjcwKT4+NCl8fFQuY2FsbCh0aGlzLHopLEIpJnZbMl0pPT1CJiYoSj1KPT09dm9pZCAwP1tdOkosdGhpc1t2WzBdXT0tMSx0aGlzLkNpPXosdGhpcy5KTD0tMSx0aGlzLnpWPUssdGhpcy5vej0tMSx0aGlzLnJiPVtdLHRoaXMua1c9W10sdGhpcy5PPS0xLHRoaXMueHc9Z1s3XSgzNiksdGhpc1t2WzFdXT1KLHRoaXMueXk9ITApLEItODw8MT49QiYmKEIrNl4yOSk8QiYmKGdbNDFdKDUwLEspLGI9Sy5hVCxZWzI1XSg5OCwoQz09PSIwIj9OdW1iZXIoSik9PT0wOko9PT1DKT92b2lkIDA6Six6LGJbQSRdfDAsdm9pZCAwLGIpLEE9SyksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKHA9WzE3LCJ0aHJvdyIsMTNdLChCJjgzKT09QikmJih0aGlzW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gen0sdGhpcy5uZXh0PQpmdW5jdGlvbihuKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHoubmV4dChuKSl9LHRoaXNbcFsxXV09ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKFosVyxOLHgpeyhOPXpbInRocm93Il0sTiE9PXZvaWQgMCk/WihOLmNhbGwoeixuKSk6KHg9elsicmV0dXJuIl0seCE9PXZvaWQgMCYmeC5jYWxsKHopLFcobmV3IFR5cGVFcnJvcigibm8gYHRocm93YCBtZXRob2QiKSkpfSl9LHpbInJldHVybiJdIT09dm9pZCAwJiYodGhpc1sicmV0dXJuIl09ZnVuY3Rpb24obil7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh6WyJyZXR1cm4iXShuKSl9KSksKEJ8OCk9PUImJihRPXogaW5zdGFuY2VvZiB5Nj95WzE1XSgyOCx6KTpuZXcgeTYoeikpLChCfDMyKT09QilHW3BbMl1dKHBbMF0sZnVuY3Rpb24obixaKXsoKHY9ZVs4XSgxNSxDLGIsKFo9WzE4LCJsb2NhdGlvbiIsInN0YXJ0c1dpdGgiXSxUJCkpLChBPXYuZ2V0TmFtZSgpKSYmQVtaWzJdXShqZSgpKSkmJnB3LnNldChBLApZWzM0XSg1LEosdix2b2lkIDAsbCkse1ZOOlJbNDhdKDcxLHYsUUQseixsKT9EW1pbMF1dKDc3LFJbNDhdKDc0LHYsUUQseixsKS5nZXRTZWNvbmRzKCkpOnZvaWQgMCxwYXRoOm53KCksc2FtZVNpdGU6WlMsc2VjdXJlOks9PWRvY3VtZW50W1pbMV1dLnByb3RvY29sPyEwOiExfSksbikuUigpfSk7cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCEoKChCXjIpJihRPVsyNSwxNSwxM10sUVsxXSkpPT0zJiYoQT1uZXcgV04sYj1uZXcgQWJvcnRDb250cm9sbGVyLHY9c2V0VGltZW91dChmdW5jdGlvbigpeyhiLmFib3J0KCksbSlbNF0oOTIsQSxncCgpLEssQyl9LDFFNCksZmV0Y2goSix7c2lnbmFsOmIuc2lnbmFsfSkudGhlbihmdW5jdGlvbihuKXsoY2xlYXJUaW1lb3V0KHYpLG4ub2spP21bNF0oOTUsQSxORygpLHosQyk6bVs0XSg5NCxBLE9wKCksSyxDKX0pLmNhdGNoKGZ1bmN0aW9uKCl7KGNsZWFyVGltZW91dCh2KSxtKVs0XSg5MyxBLHhKKCksSywKQyl9KSksQjw8MiZRWzJdKSlHW1FbMl1dKFFbMF0sZnVuY3Rpb24obixaKXtpZigoWj1bIlgiLCJ2VyIsIkMiXSxuLk0pPT1LKXJldHVybih2PUMuUykhPUomJnYuc2l6ZT9uLnYoQy5OeC5zZW5kKE5SLG5ldyBEUyhDLlMpKSx6KTpuLnJldHVybigpOyhBcnJheS5mcm9tKChBPW5bWlswXV0sYj1uZXcgTWFwKEEuTTcpLGIua2V5cygpKSkuZm9yRWFjaChmdW5jdGlvbihXKXtyZXR1cm4gQy5TWyJkZWxldGUiXShXKX0pLENbWlsyXV09Q1taWzJdXS5jb25jYXQoQXJyYXkuZnJvbShiLnZhbHVlcygpKS5tYXAoZnVuY3Rpb24oVyl7cmV0dXJuIG5ldyBhOShXKX0pKSxDKS5BTD1BW1pbMV1dLG4uUigpfSk7cmV0dXJuKEJ8MjQpPT1CJiYoej1SWzhdKDYwLHRoaXMpLEo9T1s0OF0oNjMsdGhpcyksSz1PWzQ4XSg2NCx0aGlzKSx0aGlzLnhKW3pdPUorSykscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSl7aWYoKChoPQpbMTUsbnVsbCwxXSxCKSYxMjQpPT1CKXtmb3Iodj0oSyYodT0obj0oZD0hIShLJihBPSghKGI9KGY9WyExLDEsKHE9KFc9RFtoWzBdXSg3MixNYSksYiE9PXZvaWQgMCksMTI4KV0sISFiKSxxKSYmTjAmJlcmJihFPUpbV10pJiZEWzM3XSgxNCxlWzQ3XS5iaW5kKGhbMV0sMyksRSksdD1bXSw0Mjk0OTY3Mjk1KSx6KSksZlswXSksTj1kP0smZlsyXT8wOi0xOnZvaWQgMCxKLmxlbmd0aCksZltoWzJdXSl8fChWPXUmJkpbdS1mW2hbMl1dXSxWIT1oWzFdJiZ0eXBlb2YgVj09PSJvYmplY3QiJiZWLmNvbnN0cnVjdG9yPT09T2JqZWN0Pyh1LS0sQT11KTpWPXZvaWQgMCwhZHx8SyZmWzJdfHxxfHwobj0hMCxBPSgoTD1mdykhPWhbMV0/TDpvVikoQS1OLE4sSixWLHZvaWQgMCkrTikpLFo9MCx2b2lkIDApO1o8dTtaKyspWD1KW1pdLFghPWhbMV0mJihYPUMoWCxiKSkhPWhbMV0mJihkJiZaPj1BPyhjPVotTixhPXZvaWQgMCwoKGE9dikhPWhbMV0/YTp2PXt9KVtjXT1YKTp0W1pdPVgpO2lmKFYpZm9yKHIgaW4gVilRPQpWW3JdLFEhPWhbMV0mJihRPUMoUSxiKSkhPWhbMV0mJihwPXZvaWQgMCx4PStyLGQmJiFOdW1iZXIuaXNOYU4oeCkmJihwPXgrTik8QT90W3BdPVE6KFM9dm9pZCAwLCgoUz12KSE9aFsxXT9TOnY9e30pW3JdPVEpKTtNPSgodiYmKG4/dC5wdXNoKHYpOnRbQV09dikscSkmJkRbaFswXV0oNDgsTWEpJiYoUD15WzIyXSgxOSxKKSkmJlAgaW5zdGFuY2VvZiBXVSYmKHRbTWFdPWVbNDNdKDQsUCkpLHQpfWlmKChCJjkwKT09QilhOntpZih2PShPW2hbMF1dKDIwLEMsYi52KSxiKS52Llcpe009ZzBbM10oNDIsSyxBLGIudi5yZXR1cm4sYiwicmV0dXJuImluIHY/dlt6XTpmdW5jdGlvbihVKXtyZXR1cm57dmFsdWU6VSxkb25lOiEwfX0pO2JyZWFrIGF9TT0oYi52LnJldHVybihBKSxEWzEwXSgzNixKLGIpKX1pZighKChCK2hbMl1eMTkpPEImJihCLTN8MjEpPj1CJiYoTT1OdShKKT9HWzMxXSg4NCxIWzQ0XSg3NCwwLEoseikpOkdbMzFdKDg4LHlbMl0oMzMseixLLEopKSksQjw8aFsyXSYKMTMpKWtbNl0oMzAseixLLEopO3JldHVybiBNfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIEItKChCJihDPVsyMywyLCJ5ZCJdLENbMF0pKT09QiYmKEo9ej09PXZvaWQgMD97fTp6LEtbQ1syXV09SltDWzJdXT09PXZvaWQgMD8hMTpKW0NbMl1dKSw0KSZDWzFdfHwoYj16LmdldCh3cik9PUx3KSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoQjw8MSY3KT49KEE9WyIiLCJNIiwyMF0sMykmJihCKzcmNCk8MilhOntpZih6IGluc3RhbmNlb2YgSGwpe2I9ei52O2JyZWFrIGF9dGhyb3cgRXJyb3IoQVswXSk7fXJldHVybihCLTh8MTUpPj1CJiZCKzQ+PjI8QiYmKEtbQVsxXV09Qz9rWzEyXShBWzJdLEoseik6SixLW0FbMV1dJiYoS1tBWzFdXT1LW0FbMV1dLnJlcGxhY2UoLzokLyxBWzBdKSksYj1LKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSl7aWYoKEI+PjImKChCfDI0KT09KCgocT1bMywiUiIsMF0sQj4+MiYxNSl8fAooUD1HWzEzXSgxNyxmdW5jdGlvbihjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSl7aWYoYy5NPT0oSlk9WzEyLCJ2IiwwXSx1PVsxLCJDaG9vc2VTZXJ2ZXIgcmVzcG9uc2UgaXMgbWlzc2luZyBnc2Vzc2lvbmlkIiwxRTZdLHVbSllbMl1dKSlyZXR1cm4gTD1uZXcgUlYsdz1uZXcgcnAsZD1IWzQ0XSg2Nyx3LFZELHVbSllbMl1dLEEpLGg9a1s2XSg1OSw0LGQscCksTj1rWzZdKDI1LHosaCx2KSxRJiYoWD1RLmkhPUM/RFszOF0oMTgsSyxRLmkpL3VbMl06dm9pZCAwLE09bVszOF0oMjQsIjogIixKLE4sWCksUz1RLlghPUM/T1syNl0oMTgsUS5NLm5vdygpKjFFMykuYWRkKFEuWCk6dm9pZCAwLFU9KGY9Uyk9PUM/dm9pZCAwOmYudG9TdHJpbmcoKSxIWzQ5XSgyNSwzLFUsTSkpLGNbSllbMV1dKFJbMTldKDI2LGIuTSxHJCxITixOLERbMjFdKDEsYltKWVsxXV0pKSxKKTtpZigoYT0oc3c9KHQ9KEI4PU9bMzZdKEpZWzBdLHVbSllbMl1dLHlbMTddKDExLChFPUwsbj1jLlgsCkMpLDQsbikpLE9bMzZdKEpZWzBdLHVbSllbMl1dLHlbMTddKEpZWzBdLEMseixuKSkpLE8pWzI2XSg2NixFLk0ubm93KCkqMUUzKSx5WzJdKDkzLEI4LHQpKSxFKS5pPXlbMl0oOTIsYSx5WzJdKDkxLEVbSllbMV1dLHN3KSksRS5YPXlbMl0oOTIsc3cseVsyXSg5MyxFW0pZWzFdXSxCOCkuYWRkKHQpKS5kaXYoT1syNl0oODIsSikpLFo9ZVsyXSgzNyx1W0pZWzJdXSx2b2lkIDAsbiksWj09Qyl0aHJvdyBFcnJvcih1WzFdKTtyZXR1cm4gYy5yZXR1cm4oe2pGOlosc2w6KHg9Z1sxNl0oNzUsdm9pZCAwLG4sSikpIT1DP3g6MCxKcTooVz1EWzhdKDk1LEhbNF0oOTMsMyxuKSkpIT1DP1c6MCxsQjpMfSl9KSksKEJeMTYpPj5xWzBdKXx8KFA9Z1sxNl0oMjUsdm9pZCAwLEsseixRQikpLEIpJiYoUD1HWzEzXSgxNyxmdW5jdGlvbihjLEUpe2lmKChFPVsxLDgsIlgiXSxjLk0pPT1FWzBdKXJldHVybiBjLnYoeVtFWzFdXShFWzBdLEVbMF0seixuZXcgVkIoYixKLEMpKSx6KTsoKEE9Y1tFWzJdXSwKSy52KS5wb3N0TWVzc2FnZShBKSxjKS5SKCl9KSksMTMpKTw4JiZCPj4yPj0xOSl7aWYoTj0oZj0oTD0oZ1s0MV0oNTYsKHY9WzAsMiwhMF0sSykpLEsuYVQpLGtbMjJdKDg5LHZbcVsyXV0sdm9pZCAwLEMsTCxMW0EkXXx2W3FbMl1dLHZbMV0sdlsyXSxiLEspKSxWPXZbcVsyXV0sdltxWzJdXSksQXJyYXkuaXNBcnJheShKKSlmb3IocD1KLmxlbmd0aCxXPXZbcVsyXV07VzxwO1crKylRPUdbNDhdKDUsYixKW1ddKSxmLnB1c2goUSksKHI9eVsyXSg2LFEpKSYmIVYrKyYmKGZbQSRdJj0tOSkscnx8TisrfHxPWzE0XSg3Mix6LGYpO2Vsc2UgZm9yKFo9Z1sxMl0oNixKKSx4PVoubmV4dCgpOyF4LmRvbmU7eD1aLm5leHQoKSluPUdbNDhdKDQsYix4LnZhbHVlKSxmLnB1c2gobiksKEE9eVsyXSgzNixuKSkmJiFWKysmJihmW0EkXSY9LTkpLEF8fE4rK3x8T1sxNF0oNDAseixmKTtQPShOJiZIWzM2XSgyLEwpLEspfXJldHVybihCPj4xJjE1KT09MiYmKEtbcVsxXV0mJihlWzQ2XSgyNyxLW3FbMV1dKSwKS1txWzFdXT16KSxLLnYmJihLLlg9eixrWzE2XSg1NixLLkMpLEsuQz16LEdbMjVdKDIwLEspLGVbNDZdKDQzLEsudiksSy52PXopKSxQfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKEJ8KFo9WzEsNDksMTBdLChCXjI2KT4+NHx8KEM9ZWUoSyxKKSxuPUM9PXZvaWQgMHx8Qy5nZXQ9PXZvaWQgMHx8WVsxNl0oMiwiIiwhMSxDLmdldCxZW1pbMl1dKDY2LGZ1bmN0aW9uKFcpe3JldHVybiBXLnN0cmluZ2lmeX0pKT9LOm5ldyBWYihZW1pbMl1dKDMzLGZ1bmN0aW9uKFcpe3JldHVybiBXLnN0cmluZ2lmeSh6K0MuZ2V0KX0pKSksNDApKT09QilhOntpZihRUj09PShiPUhbMzNdKDI2KSx2PVsiRnhpT1MiLCIiLCEwXSxQTikpe249SFsyMl0oMTcsIk1TSUUiKT9SWzI5XSgxOCwiNy4wIixaWzBdLGIpOiIiO2JyZWFrIGF9UT0oQT1HW1pbMF1dKDQsImciLDMsYiksZ1s0Ml0oMjAsSyxaWzBdLEEpKTtzd2l0Y2goUVIpe2Nhc2UgJEo6aWYoZ1s4XSgxNywiT3BlcmEiKSl7bj0KUShbIlZlcnNpb24iLCJPcGVyYSJdKTticmVhayBhfWlmKG1bMjJdKDMxKT9nWzI4XSg3LHZbMl0sJEopOkRbMjBdKDMsIk9QUiIpKXtuPVEoWyJPUFIiXSk7YnJlYWsgYX1icmVhaztjYXNlIGpKOmlmKGtbMTddKDIsQykpe249UShbIkVkZ2UiXSk7YnJlYWsgYX1pZih5WzI0XShaWzFdLHZbMl0pKXtuPVEoWyJFZGciXSk7YnJlYWsgYX1icmVhaztjYXNlIFFVOmlmKGtbMjNdKDE1LEopKXtuPVEoWyJDaHJvbWUiLCJDcmlPUyIsIkhlYWRsZXNzQ2hyb21lIl0pO2JyZWFrIGF9fWlmKFFSPT09cUcmJk9bMzddKDgsdlswXSl8fFFSPT09UVImJkdbWlsyXV0oNCwiU2FmYXJpIil8fFFSPT09aXUmJm1bNDVdKFpbMl0seix2WzBdKXx8UVI9PT1uMSYmeVs0NV0oMTgseikpe249KHA9QVsyXSkmJnBbWlswXV18fHZbWlswXV07YnJlYWsgYX1uPXZbWlswXV19aWYoKChCfDIpJjExKT09Mil7Zm9yKGI9KEM9MCxbXSk7QzxKLmxlbmd0aDtDKz1LKWIucHVzaChuZXcgZXQoSltDK3pdLEpbQ10pKTsKbj1ifXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoKEI+PigoQT1bMSwyLDM1XSxCK0FbMF0+PjMpPT1BWzFdJiYodGhpcy5BQT16LHRoaXMuU0k9Six0aGlzLkpyPUssdGhpcy51Uj1DPXlvKSxBWzBdKSY4KTxBWzFdJiZCPj5BWzBdPj00JiYoYj1uZXcgdVksYi5hZGQoeUQsSi50b1N0cmluZygpKSx3aW5kb3dbaTNdW1lKKCldJiZiLmFkZChjTixLKSx3aW5kb3dbU2VdW21HKCldJiZiLmFkZChsdSxLKSx5WzI1XSgxNyxiLERbQVsyXV0oMzQseixDLnYpKSx2PURbMTJdKDMyLEssWWssYikpLEItMyl8MjMpPj1CJiZCLTg8PEFbMV08QiYmKEo9Sj09PXZvaWQgMD8iIjpKLHY9KGI9ZVtBWzFdXSgzNyx6LEMsSykpIT1udWxsP2I6Siksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQiYoKEItKHY9WzU2LCJ3aW5kb3ciLDNdLDUpXjEyKT49QiYmKEIrNl4yMik8QiYmKEdsW3ZbMV1dW2kzXXx8Z1s0Nl0oODAse30saTMpLEdsW3ZbMV1dW2kzXVtFcCgpXT09PQp2b2lkIDAmJihHbFt2WzFdXVtpM11bRXAoKV09ZnVuY3Rpb24ocCl7cmV0dXJuIG1bN10oNjgsSiwib25sb2FkIiwiLnJlYWR5IixwKX0sR2xbdlsxXV1baTNdW1hiKCldPWZ1bmN0aW9uKHApe3JldHVybiBIWzE0XSg1MCwhMCxDLHoscCl9LEdsW3ZbMV1dW2kzXVtjOCgpXT1KLEdsW3ZbMV1dW2kzXVtZTSgpXT1KLEdsW3ZbMV1dW2kzXVtTTigpXT17fSxHbFt2WzFdXVtpM11bJDAoKV09e30sR2xbdlsxXV1baTNdW3V1KCldPUssd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZjAoKSxmdW5jdGlvbigpe3JldHVybiBWYS5KKCkuc3RhcnQoKX0sITEpKSxiPSh3aW5kb3dbaTNdW2FWKCldfHxbXSkubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwP2g1OmRwfSksYi5sZW5ndGg9PUomJmIucHVzaChkcCksR2xbdlsxXV1baTNdW2FWKCldPVtdLEdsW3ZbMV1dW2kzXVtYYigpXShiKSxrWzMwXSgzNSwhMCwhMSxmdW5jdGlvbigpe3JldHVybiBHbC53aW5kb3dbaTNdW0VwKCldKGIpfSkpLHZbMF0pKT09CkIpaWYodHlwZW9mIEs9PT0ic3RyaW5nIilEWzQwXSgxLEssSix6KTtlbHNlIGZvcihDIGluIEspRFs0MF0odlsyXSxDLEtbQ10seik7cmV0dXJuIEItNzw8MjxCJiYoQi0xXjIwKT49QiYmSy52JiYoRFsyOV0oMTYseixLKSxLLnYuY2FuY2VsKCksSy52PXopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQis1Xih2PVsxMCw0MCwnPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiddLDI2KSk+PUImJihCLTleMTIpPEIpe2ZvcihiPShLPSc8ZGl2IGNsYXNzPSInK1JbMTFdKDcsKEE9WzEsKEM9ei5zb3VyY2VzLCIgIiksMF0sInJjLXByZXBvc2l0aW9uYWwtYXR0cmlidXRpb24iKSkrJyI+JyxDKS5sZW5ndGgsSys9IlNvdXJjZXM6ICIsSj1BWzJdO0o8YjtKKyspSys9dlsyXStSWzExXSg3MyxlWzExXSgxLCIiLENbSl0pKSsnIj4nK0RbMzldKHZbMF0sSitBWzBdKSsiPC9hPiIrKEohPT1DLmxlbmd0aC1BWzBdP0MxKCk6IiIpK0FbMV07cD1URChLKycoQ0MgQlktU0EpPC9kaXY+Rm9yIGVhY2ggcGhyYXNlIGFib3ZlLCBzZWxlY3QgaXQgaWYgaXQgc291bmRzIHNvbWVob3cgaW5jb3JyZWN0LiBEbyBub3Qgc2VsZWN0IHBocmFzZXMgdGhhdCBoYXZlIGdyYW1tYXRpY2FsIHByb2JsZW1zIG9yIHNlZW0gbm9uc2Vuc2ljYWwgd2l0aG91dCBvdGhlciBjb250ZXh0LiA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj5MZWFybiBtb3JlLjwvYT4nKX1yZXR1cm4oQl4KNTApPj40Pj0zJiYoQj4+MiY4KTw4JiZ6LmtleUNvZGU9PTEzJiZIWzE4XSg2NywhMSx0aGlzKSwoQnx2WzFdKT09QiYmKHRoaXMudj16LHRoaXMuc2l6ZT1DLHRoaXMuYm94PUssdGhpcy50aW1lPUoqMTcsZTcoSy5ib3R0b20tSy50b3ApKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQl4ocD1bInB1c2giLDEyLDU1XSxwKVsyXSk+PjM+PTEmJihCXjQpPDIwKWE6c3dpdGNoKHR5cGVvZiB6KXtjYXNlICJiaWdpbnQiOlE9ITA7YnJlYWsgYTtjYXNlICJudW1iZXIiOlE9RkUoeik7YnJlYWsgYTtjYXNlICJzdHJpbmciOlE9S3x8Z2Q/a0oudGVzdCh6KTohIXomJmlzRmluaXRlKHopO2JyZWFrIGE7ZGVmYXVsdDpRPSExO2JyZWFrIGF9cmV0dXJuKEJ8KChCLTMmN3x8VC5jYWxsKHRoaXMseiksKEJ8NDgpPT1CKSYmKEs9PT0wfHxiLmluY2x1ZGVzKEspLEE9Uls0NV0oMixudWxsLEMpLHY9R1twWzFdXSgyLG51bGwsQyxKLEEseixiKSx2IT09SyYmKHYmJih6PVlbMjVdKDE4LAp2b2lkIDAsdix6LEosQykpLEEuc2V0KGIsSykpLFE9eiksNzIpKT09QiYmKEE9Qy5YLEF8fChKPT09Sz9KPUs9dDUoSik6KEo9dDUoSiksSz10NShLKSkpLEMuQVtwWzBdXShbSixLLGJdKSxBJiZ5WzNdKDIseiwwLEMpKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe3JldHVybiBCPDwxJihXPVsiQiIsNDAsIm5xIl0sQi02JjExfHwodGhpc1tXWzBdXT1DLHRoaXMuUz0iIixaPVswLCEwLG51bGxdLHRoaXMucEQ9SixwPXRoaXMsdj1aWzFdLHRoaXMuY289ej09PXZvaWQgMD8hMTp6LHY9dj09PXZvaWQgMD8hMDp2LHRoaXMuWD1bXSx0aGlzLkY9Sz09PXZvaWQgMD9udWxsOkssdGhpcy5pWT1bbnVsbF0uY29uY2F0KFt0aGlzLll3LHRoaXMuTlUsdGhpcy5Ceix0aGlzW1dbMl1dLHRoaXMuTGksdGhpcy50QV0ubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmJpbmQocCl9KSksdGhpcy52PW5ldyBONyx0aGlzLnhKPUFycmF5KDIwNDgpLmZpbGwodm9pZCAwKSwKdGhpcy5IPURbNDRdKDE4LFpbMF0sWWooKSksdGhpcy51WT1rW1dbMV1dKDUwLFpbMF0sWlsxXSx0aGlzLmt4LmJpbmQodGhpcykpLHRoaXMubz1uZXcgTWFwLHRoaXMuS3E9VkouYmluZChaWzJdLHRoaXMucHIuYmluZCh0aGlzKSw3MiksdGhpcy5BPVtdLHRoaXMuTT1bXSx0aGlzLkM9WVszOV0oMiwxKSx0aGlzLkZnPSEoIXZ8fCFyTyksQT10aGlzLkMucnVuLmJpbmQodGhpcy5DLHRoaXMuZ3QuYmluZCh0aGlzLFpbMl0pKSx0aGlzLkZnPyhRPXRoaXMubkIuYmluZCh0aGlzKSxiPWZ1bmN0aW9uKHgpe3AuQy5ydW4oZnVuY3Rpb24oKXtyZXR1cm4gUSh4KX0pfSxuPWZ1bmN0aW9uKHgpe3JldHVybiByTyhiLHt0aW1lb3V0Onh9KX0pOm49ZnVuY3Rpb24oeCl7cmV0dXJuIFZKKEEsbDkoeCw2MikpfSx0aGlzLnJiPW4sdGhpcy5RZT1mdW5jdGlvbigpe2RvY3VtZW50W3ZEKCldP1VwLnRoZW4oQSk6VkooQSwxKX0sdGhpcy5YZz1QYi5iaW5kKFpbMl0sdGhpcy5GWC5iaW5kKHRoaXMpLApaWzFdKSx0aGlzLkRNPXRoaXMuTS51bnNoaWZ0LmJpbmQodGhpcy5NKSx0aGlzLm09WlswXSx0aGlzLmk9WlswXSx0aGlzLlc9WlsyXSx0aGlzLlA9WlswXSx0aGlzLlI9WlswXSx0aGlzLkc9WWooKSx0aGlzLlU9bmV3IE1HLHRoaXMuST1uZXcgTUcsdGhpcy5EPVpbMF0sdGhpcy5nPVpbMF0sdGhpcy5sPVpbMF0sdGhpcy5qPVpbMF0sdGhpcy5PPVpbMl0sdGhpcy5MPVpbMF0seVsxMF0oNDUsdGhpcykpLDEzKXx8Sy5nZXREYXRlKCkhPXomJksudi5zZXRVVENIb3VycyhLLnYuZ2V0VVRDSG91cnMoKSsoSy5nZXREYXRlKCk8ej8xOi0xKSksKEI+PjImNyk9PTEmJih6LnN0eWxlLmRpc3BsYXk9Sz8iIjp0QigpKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKEJ8NSk+PigoKHY9WzI5LCJNIiwxNF0sQnwyKSZ2WzJdKTx2WzJdJiYoKEJeMSkmMTUpPj04JiYoQT0iIitBcnJheS5mcm9tKHdwLmtleXMoKSkpLDQpKSlhOntpZigoSj1ycigpLHR5cGVvZiBjb25zb2xlIT09CiJ1bmRlZmluZWQiKSYmdHlwZW9mIGNvbnNvbGVbSVYoKV09PT0iZnVuY3Rpb24iKXRyeXtpZihLPWNvbnNvbGVbSVYoKV0oSiksdHlwZW9mIEs9PT0ib2JqZWN0IiYmSyE9PW51bGwmJnR5cGVvZiBLW0ZiKCldPT09ImZ1bmN0aW9uIil7QT1LO2JyZWFrIGF9fWNhdGNoKHApe31BPXtydW46ZnVuY3Rpb24ocCl7cmV0dXJuIHAuYXBwbHkodm9pZCAwLEcyLmFwcGx5KHosYXJndW1lbnRzKSl9fX1yZXR1cm4oKChCXjQ2KT4+NHx8KEtbdlsxXV0mJktbdlsxXV09PUo/S1t2WzFdXT16OksudiYmSy52LmhhcyhKKSYmSy52WyJkZWxldGUiXShKKSksQi02KV52WzBdKTxCJiYoQi0xXjEpPj1CJiYoYj1EWzI0XS5iaW5kKG51bGwsMTgpLEE9T1s0NV0oNTIsSyxmdW5jdGlvbihwLFEsbixaKXtyZXR1cm4gWj0oKG49LSgoWj1wLFopJkopLFo+Pj5KKXxRPDx6KV5uLGIoWixRPj4+Sl5uKX0sQykpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEJ8ODApPT0KKCgoQisoZj1bNTcsIlQiLDQ4XSwxKSY0Nyk+PUImJkIrMz4+MTxCJiYoTD1KPj0xMDA/Sj49MUU0P2QwKE1hdGgubG9nMTAoMStKKSk6SjxLPzM6NDpKPHo/MToyKSxCJjc5KT09QiYmKEw9UltmWzJdXSg3MyxLLFBMLHosbCkpLEIpKXtwPUhbMzVdKDM0LDIsKEM9WzIwNCwyMDIsITFdLEspKTthOnN3aXRjaChwKXtjYXNlIDIwMDpjYXNlIDIwMTpjYXNlIENbMV06Y2FzZSBDWzBdOmNhc2UgMjA2OmNhc2UgMzA0OmNhc2UgMTIyMzpiPSEwO2JyZWFrIGE7ZGVmYXVsdDpiPUNbMl19aWYoISh2PWIpKXtpZihKPXA9PT0wKUE9R1s0OV0oMSxudWxsLHosU3RyaW5nKEsuSCkpLEo9IUJkLnRlc3QoQSk7dj1KfUw9dn1yZXR1cm4oKChCJmZbMF0pPT1CJiZULmNhbGwodGhpcyx6LDgpLEI+PjEpJjE1KT49MTAmJihCLTEmOCk8NyYmKGJkLmNhbGwodGhpcyxrWzE4XSg1LHNoKSxrWzQzXSgyNyxMMSksTEsoKSw5KSxrW2ZbMl1dKDEwLHRoaXMsVGgseiksa1tmWzJdXSgyLHRoaXMsQmwsSyksCnlbMzVdKDQ3LGtNLHRoaXMsSikseVszNV0oMjcsekUsdGhpcyxDKSx5WzM1XSgyNSxLOSx0aGlzLGIpLHlbMzVdKDI5LEphLHRoaXMsQSkseVszNV0oNDksQzksdGhpcyx2KSx5WzM1XSgzNyxiVix0aGlzLHApLHlbMzVdKDQ1LEFhLHRoaXMsUSkseVszNV0oMzksdmQsdGhpcyxuKSx5WzM1XSgzMSxURSx0aGlzLFopLFcmJihOPVdbZlsxXV0oKSx4PWVbNDZdKDksMyxOLDQpLGtbZlsyXV0oMzQsdGhpcyxqTCx4KSkpLEx9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChwPVs1LDQxLDEwXSwoQnwzKT4+cFswXSk8cFswXSYmKEI+PjImMTUpPj0xMil7aWYoSyl0aHJvdyBFcnJvcigiSW52YWxpZCBVVEY4Iik7ei5wdXNoKDY1NTMzKX1yZXR1cm4oKEItKChCXjY0KT4+Mz09MSYmSiYmeFYoSixDLHtnZXQ6ZnVuY3Rpb24obixaLFcsTix4LGYpe3JldHVybih4PShuPShXPShaPShmPVtudWxsLDEsKE49Sy5sWSwhMCldLG5ldyBjbCksa1szNV0oNTIsQykpLG1bMjNdKDIyLApXLFosZlsxXSkpLGspWzE0XSg2LGZbMl0sa1szNF0uYmluZChmWzBdLDQpLDIsMixuLE9bMl0uYmluZChmWzBdLDEyKSksZ1tmWzFdXSg3MSx6LGNsLE4seCksSi5hdHRyaWJ1dGVzW0NdKS52YWx1ZX19KSwyKT4+Mz09MSYmKHY9bVs0OF0oNzQsSix3NSgpLEspLFE9ZnVuY3Rpb24obixaKXtyZXR1cm4gbj1rW1o9WzIzLDM4LDEwXSw0OV0oWlsyXSx6LEMsSixBLHordigpKSx7UkE6RFtaWzFdXShaWzBdLEosYi5jb25jYXQobikubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBPWzI2XSg5OCxXKX0pLnJlZHVjZShmdW5jdGlvbihXLE4pe3JldHVybiBXLnhvcihOKX0pKSxMRDpufX0pLEI+PjIpJjExKT09MSYmKFE9UlsxM10ocFsyXSxIWzI1XShwWzFdLE9bOV0oMTYsMTIpLHopLFtnWzE2XSgxNCxLKSxnWzE2XSgzOCxKKV0pKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKHY9WzEsInRvU3RyaW5nIiwxMV0sQis2Pj41PHZbMF0mJihCfDkpPj0xOClhOntpZihLLk0hPXope0E9CksuWC5jb25jYXQoSy5NLlUpO2JyZWFrIGF9aWYoSy52IT16JiZLLnYuc2l6ZSE9PTApe2ZvcihDPShKPWdbMTJdKHZbMl0sKGI9Sy5YLEsudikudmFsdWVzKCkpLEoubmV4dCgpKTshQy5kb25lO0M9Si5uZXh0KCkpYj1iLmNvbmNhdChDLnZhbHVlLlUpO0E9YjticmVhayBhfUE9bVsyOV0oMTksSy5YKX1pZigoQiY2MCk9PSgoQis0XjMpPj1CJiYoQi12WzBdXnZbMl0pPEImJiFLLnYmJihLLnY9bmV3IE1hcCxLLk09eixLLlgmJkdbNDddKDEwLG51bGwsdlswXSx6LEsuWCxmdW5jdGlvbihwLFEpe0suYWRkKGRlY29kZVVSSUNvbXBvbmVudChwLnJlcGxhY2UoL1wrL2csbzkoKSkpLFEpfSkpLEIpKXtmb3IoQz0oSj1uZXcgWHgsSz1tWzM2XSgyMixudWxsLCExLGZ1bmN0aW9uKHAsUSl7cmV0dXJuKHAudGFnTmFtZT09KFE9WzI3LDgsMTJdLGQ1KXx8cC50YWdOYW1lPT1VeikmJkhbUVsxXV0oUVsyXSxRWzBdKShwKSE9IiJ9LHooKSksMCk7QzxLLmxlbmd0aCYmSi5hZGQoS1tDXS5uYW1lKTtDKyspOwpBPUpbdlsxXV0oKX1yZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKChCJigoQisxJjU4KTwoKGI9WzIsNCwxOV0sQi03PDxiWzBdPj1CKSYmKEIrOF5iWzJdKTxCJiYoSy5pLk09PXp8fEsuS3x8R1syOF0oYlsxXSw2LGJbMV0sSy5pLEspKSxCKSYmKEIrYlswXV4yNCk+PUImJlQuY2FsbCh0aGlzLHopLDEyMCkpPT1CKWtbNl0oMjgseixKLEspO3JldHVybiBDfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEJ8KCgoYj1bMzksIk0iLDhdLEJ8MjQpPT1CJiZuZXcgcDkoIi9yZWNhcHRjaGEvYXBpMi9qc2Vycm9ybG9nZ2luZyIseix2b2lkIDApLChCXjMxKT4+Myk9PTEmJihMRC5jYWxsKHRoaXMsNDMsMTcsWzJdKSx0aGlzLkg9dGhpcy5pPXRoaXMuVz10aGlzLkE9dGhpcy5tPS0xLHRoaXMuUz10aGlzLlg9dGhpcy5VPXRoaXMuRD10aGlzLks9dGhpcy5QPXRoaXMubz10aGlzLkw9dGhpcy5nPXRoaXMuVj10aGlzLmo9dGhpcy5DPXRoaXNbYlsxXV09LTEsdGhpcy5HPQpnWzddKDQpLHRoaXMuST1nWzddKDYpKSxiKVsyXSk+PjM9PTEmJihDPUhbYlsyXV0oMzIsNjMzNSkoSih6KCksYlswXSkpKSxDfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoKEItNF4oKChKPVsiaXNBY3RpdmUiLDcsIlgiXSxCKSY2MCk9PUImJk5QLmNhbGwodGhpcyksSilbMV0pPEImJihCLTJeMTApPj1CJiYodGhpc1tKWzJdXT16LHRoaXMuaT1mdW5jdGlvbigpe3JldHVybiBlWzI5XSg5MCl9LHRoaXMueEE9Syx0aGlzLk09ITEsdGhpcy5BPXRoaXMuaSgpKSxCKXw1Nik9PUImJihRQXx8KG45P1FBPW5ldyBaRShmdW5jdGlvbihiKXtlWzE3XSgyLGIpfSxuOSk6UUE9bmV3IFdkKGZ1bmN0aW9uKCl7ZVsxN10oMSxlWzI5XSg3NCkpfSwyMCkpLHo9UUEseltKWzBdXSgpfHx6LnN0YXJ0KCkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoKEImKChCKzQmNjApPCgoKChCXjEyKSY2KTwoUT1bMSwiLSIsNV0sUVswXSkmJihCfDIpPj05JiZULmNhbGwodGhpcywKeiksKEIrNCY2MSk8QikmJihCKzJeMzEpPj1CJiYoTEQuY2FsbCh0aGlzLDEwOTIsMTUpLHRoaXMuTT0tMSksQikmJihCLVFbMl18NzgpPj1CJiYobj1mdW5jdGlvbigpe3JldHVybigwLHQkLnk1KShKLkpMLmJpbmQoSixuZXcgQk4oSy5EaSkpLHopLnRoZW4oZnVuY3Rpb24oWixXKXtyZXR1cm4gZ1tXPVszNiwzMywyN10sV1sxXV0oNDEsNix5W1dbMF1dKDMsV1syXSwzLFosSy5vTixKKSxnRil9KX0pLChCfDQwKT09QiYmKG49WVs3XSg3OSxudWxsLGZ1bmN0aW9uKFosVyl7cmV0dXJuKFc9Wi5jcnlwdG8pP0soVy5zdWJ0bGV8fFcudixXKTpLKHoseil9KSksMjkpKT09Qil7aWYoIShZWzM3XSgyMCxLLEopLEs9WmYoSyksSikmJiFnZHx8TnUoSykpdj1LO2Vsc2V7aWYoYj0oQT0oa1sxMl0oOSx6LEspLEM9T08seE8pLEEpJjIxNDc0ODM2NDgpQT1+QT4+PnosQz1+QytRWzBdPj4+eixDPT16JiYoQT1BK1FbMF0+Pj56KTt2PShwPWtbMzldKDE3LHosQyxBKSx0eXBlb2YgcCk9PT0ibnVtYmVyIj8KYj8tcDpwOmI/UVsxXStwOnB9bj12fXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKEItKChCJigoQi0oWj1bNiwyNyw4XSw5KTwxMyYmKEItWlswXSY3KT49MCYmKHY9WzQsInJjLWltYWdlc2VsZWN0LWNhcm91c2VsLW9mZnNjcmVlbi1yaWdodCIsInJjLWltYWdlc2VsZWN0LWNhcm91c2VsLWxlYXZpbmctbGVmdCJdLHA9RFsxM10oMix6LGRvY3VtZW50KSxBLm5nKCExKSxRPWIucHJldmlvdXNFbGVtZW50U2libGluZyE9PXZvaWQgMD9iLnByZXZpb3VzRWxlbWVudFNpYmxpbmc6SFtaWzFdXSg1OCxDLCExLGIucHJldmlvdXNTaWJsaW5nKSxSW1pbMl1dKDE5LHZbMV0sYiksUltaWzJdXSg4Myx2WzJdLFEpLFJbWlsyXV0oMSxBLlguZFEuRG4ucm93U3Bhbj09dlswXSYmQS5YLmRRLkRuLmNvbFNwYW49PXZbMF0/InJjLWltYWdlc2VsZWN0LWNhcm91c2VsLW1vY2stbWFyZ2luLTEiOiJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1tb2NrLW1hcmdpbi0yIiwKYiksbj1EWzI1XSgzMixKLGIpLnRoZW4oZnVuY3Rpb24oKXtPWzJdKDcsZnVuY3Rpb24oVyl7KFc9WzM2LCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1vZmZzY3JlZW4tcmlnaHQiLCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1lbnRlcmluZy1yaWdodCJdLFJbMjddKFdbMF0sYixXWzFdKSxSKVsyN10oMjAsUSwicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtbGVhdmluZy1sZWZ0IiksUls4XSgxOSxXWzJdLGIpLFJbOF0oNjUsInJjLWltYWdlc2VsZWN0LWNhcm91c2VsLW9mZnNjcmVlbi1sZWZ0IixRKSxPWzJdKDU1LGZ1bmN0aW9uKE4seCxmLEwscil7Zm9yKChOPShmPSh4PSgoKFJbMjddKDIwLChyPShMPVsicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtZW50ZXJpbmctcmlnaHQiLDQsMF0sWyJYIiwicmMtaW1hZ2VzZWxlY3QtdGlsZXNlbGVjdGVkIiwxXSksYiksTFswXSksUilbMjddKDMyLGIsdGhpc1tyWzBdXS5kUS5Ebi5yb3dTcGFuPT1MW3JbMl1dJiZ0aGlzW3JbMF1dLmRRLkRuLmNvbFNwYW49PQpMW3JbMl1dPyJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1tb2NrLW1hcmdpbi0xIjoicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtbW9jay1tYXJnaW4tMiIpLGVbNDZdKDU5LFEpLHRoaXMubmcoSykscCkmJnAuZm9jdXMoKSx0aGlzW3JbMF1dKS5kUS5EbixMWzJdKSx4Lk50KSx4KS5JTj1MWzJdO2Y8Ti5sZW5ndGg7ZisrKU5bZl0uc2VsZWN0ZWQ9ITEsUlsyN10oMTIsTltmXS5lbGVtZW50LHJbMV0pfSw2MDAsdGhpcyl9LDEwMCxBKX0pKSxCfDY0KT09QiYmKG49ejxLPy0xOno+Sz8xOjApLDQ1KSk9PUImJihuPUsuWD09TjU/Sy52OkdbMjBdKDIsMSx6LEsudikpLDEpXjMyKT49QiYmKEItMl5aWzJdKTxCJiYobj1PaFt6XSksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCPj4oKCgoQiYoKEImKHY9WzIsNCw1N10sODYpKT09QiYmKGI9KEE9QyE9PXZvaWQgMCk/Qy50b1N0cmluZygpOiIiLHA9ZzBbdlswXV0oMTMsITAsITEsSi52LGZ1bmN0aW9uKFEsbil7Zm9yKG49Cno7bjxRLmxlbmd0aDsrK24paWYoIUF8fFFbbl0udHlwZT09YilyZXR1cm4gSztyZXR1cm4hMX0pKSx2WzJdKSk9PUImJihKPXBLLmZpbHRlcihmdW5jdGlvbihRKXtyZXR1cm4geFUuaW5jbHVkZXMobVsxXSgxNixRLEspKX0pLHBLPXBLLnNsaWNlKHorSi5sZW5ndGgpLHBLLnB1c2guYXBwbHkocEssZVszM10odlsxXSxKKSkpLEIpJjk5KT09QiYmKHRoaXMubT10aGlzLm0sdGhpcy5QPXRoaXMuUCksdlswXSkmMTUpPT12WzBdJiYoYmQuY2FsbCh0aGlzLGtbMThdKDUsREUpLGtbNDNdKDEwLGdtKSxMSygpLHZbMV0pLG1bMTldKDcyLDEseiksR1s0MV0oNiwxNCx6KSx0aGlzLk8wPXouVCgpKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCPDwxJih2PVszMywidiIsIm91Il0sNyl8fCh0aGlzLlB2PWZ1bmN0aW9uKCl7cmV0dXJuIEt9LHRoaXMucHU9ZnVuY3Rpb24ocCl7cFtKLTFdPU9bNDBdKDUyLEspfSx0aGlzW3ZbMl1dPWZ1bmN0aW9uKCl7cmV0dXJuIHp9KSwKQis2KT4+NHx8KHo9dGhpcyxLPVJbOF0oNjMsdGhpcyksYj1PW3ZbMF1dKDMxLHRoaXMpLEo9Z1szN10oOCx0aGlzKSxDPXRoaXMud2IuYmluZCh0aGlzLHRoaXNbdlsxXV1bdlsxXV0rYixKKSx0aGlzLnhKW0tdPWZ1bmN0aW9uKCl7dmFyIHA9RzIuYXBwbHkoMCxhcmd1bWVudHMpO3ouQy5ydW4oZnVuY3Rpb24oKXtyZXR1cm4gQy5hcHBseShudWxsLGVbMzNdKDQscCkpfSl9KSxBfV19KCksZz1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEItKChBPVsic2V0VGltZW91dCIsInYiLDRdLEJ8Nyk+PkFbMl18fChiPSEoIXp8fCF6W2Y5XSkpLDMpJjE1fHxLLlImJlJbMzZdKDIxLEsuUix6KSxCKXw0OCk9PUIpe2lmKHR5cGVvZiB6IT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiRm4gbXVzdCBub3QgYmUgbnVsbCBhbmQgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Yj1HbFtBWzBdXShmdW5jdGlvbigpe3ooKX0sSyl9cmV0dXJuKEI8PDImMzEpPj0xNSYmCkI+PjI8MTgmJihDPXRoaXMsSj10aGlzW0FbMV1dLEs9dGhpcy5NLGI9dGhpcy5YfHxKP29pW0FbMV1dOihLLnB1c2goeiksbmV3IG9pKGZ1bmN0aW9uKCl7cmV0dXJuIEdbMzJdKDQ5LDEsQy5NLHopfSkpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZighKEI8PChaPVs0MDk2LDI4LDM0XSwyKSYxNCkpYTp0cnl7Vz1lWzM1XShaWzFdLHopLmZpbHRlcihmdW5jdGlvbihOKXtyZXR1cm4hTi5zdGFydHNXaXRoKGdbMTRdKDMsc3ApKX0pLmxlbmd0aDticmVhayBhfWNhdGNoKE4pe1c9LTE7YnJlYWsgYX1yZXR1cm4oKEItNTw8KChCfDUpPj4zfHxMRC5jYWxsKHRoaXMsODk1LDE0KSwxKT49QiYmKEItOHw0Nik8QiYmKHA9WzAsMiwhMF0sZ1s0MV0oNTUsSiksQT1KLmFULHY9a1syMl0oOTAscFswXSx2b2lkIDAsMSxBLEFbQSRdfHBbMF0scFsxXSxwWzJdLEssSiksQz1DIT16P0dbNDhdKDMsSyxDKTpuZXcgSyx2LnB1c2goQyksYj1uPXY9PT1RUD83OnZbQSRdfApwWzBdLChRPXlbMl0oMzgsQykpPyhuJj0tOSx2Lmxlbmd0aD09PTEmJihuJj0tNDA5NykpOm58PVpbMF0sbiE9PWImJmtbMzhdKDk1LHYsbiksUXx8SFszNl0oMSxBKSxXPUMpLEIpfDQ4KT09QiYmKHo9ej09PXZvaWQgMD9nMFszXSgxLDApOnosSz1LPT09dm9pZCAwP3t9OkssSj15W1pbMl1dKDI1LG51bGwseixLKS5jbGllbnQsSyYmKEM9Si52LEQ2KEMudixLKSxDLnY9eVsyM10oMTIsbnVsbCxDLnYpKSxtWzMwXSgxOSwiLSIsSikpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQi0oKHY9WzMsNiw0MV0sQi05Pj52WzBdPT0yKSYmSi51KCkmJkdbMzVdKDI1LEoudSgpLHosSyksOCl8NTkpPj1CJiYoQis1XjI2KTxCKXtpZih0eXBlb2YgeiE9PSJudW1iZXIiKXRocm93IGVbdlsxXV0oMjIsTDkoKSk7aWYoIUZFKHopKXN3aXRjaChCVCl7Y2FzZSAyOnRocm93IGVbdlsxXV0oNTUsTDkoKSk7Y2FzZSAxOllbMTVdKDUxLEw5KCkpfXA9QlQ9PT0yP3p8MDp6fXJldHVybihCJgoxNSk9PUImJihBPVshMCwwLDldLEoubT1EYXRlLm5vdygpLEN5PUoua24sSi5NPVlbMzBdKDEzLEoudik/bmV3IFJpKEoua24sSi5QLEhbMl0oMjcsSi52LHJGKSk6bmV3IFZBKEoua24sSi5QKSxKLk0uRj1tW3ZbMl1dKDMyLEFbMl0sSi51Nyksd2luZG93W2kzXVt0cSgpXT9KLk0uSyhZWzIxXSgxLCJlbiIsQVswXSxKKSxtW3ZbMV1dKDI0LHosSi5pZCksSyk6KEouWD1EWzMyXSgyNCxBWzFdLG51bGwsSixDKSxKLlguY2F0Y2goa1sxMF0uYmluZChudWxsLDYyKSksQz09PTEmJndpbmRvd1tpM11bR0UoKV0mJndpbmRvd1tpM11bR0UoKV0uaW5jbHVkZXMoWDMpJiZZWzMwXSg4LEoudikmJllbdlswXV0oOCxBWzFdLEopLFlbMzBdKDI4LEoudikmJkoudTchPUoua24mJihiPWZ1bmN0aW9uKCl7cmV0dXJuIGdbM10oMSwwLEssSi51Nyl9LEoubz1uZXcgSGQoSi51NyxmdW5jdGlvbihRLG4pe249WyEwLCJGIiwzXSxRLnByZXZlbnREZWZhdWx0KCksZ1tuWzJdXShuWzJdLDAsblswXSwKSi51NyksSi5sKEpbblsxXV0uYmluZChKLFRkKSkudGhlbihiLGIpfSksYigpKSkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEItNF4oKEJ8Nyk+PihMPVszLCEwLDFdLExbMF0pPT0yJiYoZj1tWzIzXSgyMSxLLEoseikpLDE0KSk+PUImJihCLTZ8MTkpPEIpYTp7aWYoQyBpbnN0YW5jZW9mIElwKXtmPShtWzI0XSgzMixMWzBdLDIsQyxBLGIsSikseik7YnJlYWsgYX1pZihrWzM5XSgzNiwhMSxDKSl7Zj0oQy50aGVuKEEsYixKKSx6KTticmVhayBhfWlmKEhbNDRdKDIsQykpdHJ5e2lmKHY9Qy50aGVuLHR5cGVvZiB2PT09ImZ1bmN0aW9uIil7ZVsyNV0oOCwhMSxMWzFdLHYsSixDLGIsQSksZj16O2JyZWFrIGF9fWNhdGNoKHIpe2Y9KGIuY2FsbChKLHIpLHopO2JyZWFrIGF9Zj1LfWlmKCEoKEJeNjIpPj40KSl7aWYoTj0oeD1bITAsMSwwXSx6LkFMKSlmb3IoVz14W0xbMl1dLEM9W107TjtOPU4uQUwpQy5wdXNoKE4pLCsrVztpZih2PQooKEE9KFo9KHA9SyxiPXouekosQykscC50eXBlfHxwKSx0eXBlb2YgcCk9PT0ic3RyaW5nIj9wPW5ldyAkTShwLGIpOnAgaW5zdGFuY2VvZiAkTT9wLnRhcmdldD1wLnRhcmdldHx8YjooSj1wLHA9bmV3ICRNKEEsYiksRDYocCxKKSkseFswXSksWilmb3Iobj1aLmxlbmd0aC14W0xbMl1dOyFwLlgmJm4+PXhbMl07bi0tKVE9cC5NPVpbbl0sdj1nWzMyXSgzMix4WzJdLHAsQSx4WzBdLFEpJiZ2O2lmKHAuWHx8KFE9cC5NPWIsdj1nWzMyXSgzNCx4WzJdLHAsQSx4WzBdLFEpJiZ2LHAuWHx8KHY9Z1szMl0oMzUseFsyXSxwLEEsITEsUSkmJnYpKSxaKWZvcihuPXhbMl07IXAuWCYmbjxaLmxlbmd0aDtuKyspUT1wLk09WltuXSx2PWdbMzJdKDQwLHhbMl0scCxBLCExLFEpJiZ2O2Y9dn1pZigoQnw0KT4+NDxMWzJdJiZCPj5MWzJdPj0tNjEpaWYoSi50YWdOYW1lPT1lTClmb3IoYj16LEM9Si5lbGVtZW50cztKPUMuaXRlbShiKTtiKyspZ1tMWzBdXSgyLDAsSyxKKTtlbHNlIEs9PUxbMV0mJgpKLmJsdXIoKSxKLmRpc2FibGVkPUs7cmV0dXJuKEJ8NzIpPT1CJiZULmNhbGwodGhpcyx6KSxmfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEItKCgoYj1bNyw4Njk3LDMyXSxCKS05fDI2KTxCJiYoQi1iWzBdfDQ5KT49QiYmKEM9SFs4XShiWzJdLGJbMV0pKEooSygpLDApKSksYilbMF0mYlswXSk9PTEpYTp0cnl7Qz16KCk7YnJlYWsgYX1jYXRjaChBKXtDPUs7YnJlYWsgYX1yZXR1cm4oQi0xXjI1KT49QiYmQi04PDwyPEImJihDPWVbMl0oMzMseix2b2lkIDAsSykpLEN9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoKEItKEo9WyJjYWxsIiw1LCJSVCJdLDkpJjcpPT0yKVRbSlswXV0odGhpcyx6KTtpZigoQiY3NSk9PUIpVFtKWzBdXSh0aGlzLHosMCxQTFtKWzJdXSk7cmV0dXJuKEJeSlsxXSk+PjM9PTImJihDPUhbMjVdKDQxLE9bOV0oMjMseiksSykpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKChCfCgoQi04JjEwKT49KHA9WzQ3LDIwLDddLDQpJiYKQitwWzJdPDE2JiYoZ1twWzFdXSgyLDAsSyx6KSx2PW5ldyBQZChLKSksNTYpKT09QiYmKEM9WyIuIiwxLCJyYy1pbWFnZXNlbGVjdC10YXJnZXQiXSxSWzhdKDMzLCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1sZWF2aW5nLWxlZnQiLEdbcFsxXV0oMSxDWzFdLCExLGVbMzFdKDEzLENbMl0sSikpKSxKLmo+PUoudi5sZW5ndGh8fChiPUoublgoSi52W0oual0pLEouais9Q1sxXSxBPUouWGdbSi5qXSxZW3BbMF1dKDIsbnVsbCxLLENbMF0sQ1sxXSxiLEopLnRoZW4oZnVuY3Rpb24oUSxuLFopeygoKChuPW1bMl0oOTIsKFo9WzQsKFE9WzcsInJjLWltYWdlc2VsZWN0LWRlc2Mtd3JhcHBlciIsMV0sMzEpLCIiXSxRWzFdKSksRClbMTNdKDM4LG4pLG0pW1pbMV1dKDI1LG4sR1s0N10uYmluZChudWxsLDEpLHtsYWJlbDpSWzI2XSgyMyxBLFFbMl0pLFVZOkJMLE1JOlJbMjZdKDEyLEEsUVswXSl9KSxtKVs0NF0oWlswXSxaWzJdLG4seVsxXSgzLG51bGwsbi5pbm5lckhUTUwucmVwbGFjZShlQygpLApaWzJdKSkpLGspW1pbMV1dKDgseixKKX0pLGdbMThdKDI1LEosIlNraXAiKSxSWzI3XSgzNixtWzJdKDk1LCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1pbnN0cnVjdGlvbnMiKSwicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtaW5zdHJ1Y3Rpb25zLWhpZGRlbiIpKSksKEJeMjEpPDExJiYoQj4+MiZwWzJdKT49MCkmJihkay5KKCkuaW5pdChZWzQwXSg2NCwyLHopKSxZWzQ0XSgyNSxmdW5jdGlvbihRLG4sWil7KG4uaz1EWzhdKDksKFo9WzIsNDAsIlUzIl0sWVtaWzFdXShaWzBdLFpbMF0seikpKSxDJiZDW1pbMl1dKCkpJiYobi50PUNbWlsyXV0oKSl9KSxDPW5ldyAkVSxDLnJlbmRlcihHWzE1XSg0MSkpLEo9bmV3IHE1KEhbMjFdKHBbMF0seiw2LGwpLEhbMjFdKDM5LHoscFsyXSxsKXx8MUU0KSxLPW5ldyBpVihKLHosbmV3IHlBLG5ldyBZVSksdGhpcy52PW5ldyBjZChDLEspKSwoQnw3Mik9PUIpJiYoQz1KLldoKCksQy5yZXBsYWNlKC9ceGEwfFxzL2csbzkoKSksSi52PXsxOkMrCiItZGlzYWJsZWQiLDI6Qyt6LDQ6QysiLWFjdGl2ZSIsODpDKyItc2VsZWN0ZWQiLDE2OkMrIi1jaGVja2VkIiwzMjpDKyItZm9jdXNlZCIsNjQ6QytLfSksKEImMTIyKT09QiYmKEs9dGhpcyx2PUdbMTNdKDksZnVuY3Rpb24oUSxuLFope1o9WyhuPVs1ODYsMCw1XSw3KSw0LCJGIl07c3dpdGNoKFEuTSl7Y2FzZSAxOmlmKCEoej1LLnZbWlsyXV0seikpcmV0dXJuIEsuWD1TTCxtWzIwXSgyNiwiaHR0cCIsRFsxMV0oOSkucGFyZW50LFllKS5zZW5kKHlnKSxRLnJldHVybigpO2lmKCEoKCgoKCgoQz1uZXcgKCgoSj1kay5KKCksZSlbOV0oOCxEWzE2XSgxMiwxLFlbMTldKDEsOSxKLmdldCgpKSkpLEspLk54PW1bMjBdKDE2LCJodHRwIixEWzExXSgxKS5wYXJlbnQseixuZXcgTWFwKFtbW3FOLFRkLHd0LG1zLFlBLFZPXSxLLmxdLFtsVixLLlFlXSxbczMsSy5YQ10sW0VoLEsuQjFdLFtYSCxLLmNFXSxbdVYsSy5rV11dKSxLKSxhaSkoSy52LmoubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBPWzQwXSgyMCwKVyl9KSxKLmdldCgpLnllKCksSy5NLlgudmFsdWUpLEsuTngpLnNlbmQoUTAsQyksSykudi5YfHxLLlIudGhlbihmdW5jdGlvbihXKXtyZXR1cm4gVy5zZW5kKFEwLEMpfSksbSlbMjBdKDYsImUiLEspLEgpWzIzXShaWzFdLG5bMV0sbnVsbCxLKSxIWzBdKDU3LG5bMV0sSiw5NSkmJm1bMTNdKDI0LDEsMywiOiAiLDIsSyksSFswXSg2MSxuWzFdLEosNzMpKSYmWVsyOF0oWlsxXSwyLDEsbnVsbCxLKSxIWzQ4XSgyNCwxNSxKLmdldCgpKSkmJmVbMTNdKDMyLDEsblsxXSwzLDIsSyksR1s0OV0oMTEsITEsaGEsSikpKXtRLkdfKDIpO2JyZWFrfXJldHVybiBRLnYoUls0NV0oNTEsMyxuWzJdKSwyKTtjYXNlIDI6cmV0dXJuIFEuQShaWzFdKSxRLnYoSy5PKCksNik7Y2FzZSA2OnJldHVybiBRLnYoUlszNF0oMTQsblswXSwxOSwxMDUsIiIsSyksWlswXSk7Y2FzZSBaWzBdOlFbWlsyXV0oblsyXSk7YnJlYWs7Y2FzZSBaWzFdOlEuaSgpO2Nhc2UgblsyXTppZigoWVsyMl0oMTYsblsyXSwyLApaWzFdLDMseiksTylbMl0oNTYsZnVuY3Rpb24oKXtyZXR1cm4gSy5sKG51bGwscEMpfSxLLnYuRCoxRTMpLEsudi5YKXtRLkdfKG5bMV0pO2JyZWFrfXJldHVybiBRLnYoZVs0MV0oMzgsMSxLKSw5KTtjYXNlIDk6Sy52LkEmJksubChudWxsLGRGKSxRLlIoKX19KSksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQi05JihBPVszOCw3LCJkYXRhIl0sQSlbMV18fCh0aGlzW0FbMl1dPXosdGhpcy5jaGFubmVsPUspLChCXjUwKT4+NCl8fChDPUs9UlsyNF0oODEsSyksSj0oYj1PW0FbMF1dKDQyLHopKT9iLmNyZWF0ZVNjcmlwdChDKTpDLHY9bmV3IHliKEopKSwoQj4+MiZBWzFdKT09MSYmKHY9bmV3IE5xKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCPj4yPj0odj1bInJlcGxhY2UiLDMsMV0sLTM1KSYmKEItOSY4KTw0JiYoYj1bITEsMSxudWxsXSxLLnY9PTAmJihLPT09QyYmKEo9eixDPW5ldyBUeXBlRXJyb3IoIlByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpLApLLnY9Ylt2WzJdXSxnW3ZbMV1dKDI1LCEwLGJbMF0sSyxDLEsuTyxLLmwpfHwoSy52PUosSy5GPUMsSy5YPWJbMl0sR1szM10odlsyXSwhMCxLKSxKIT16fHxDIGluc3RhbmNlb2Yga1V8fG1bMzRdKDgxLGJbMl0sITAsQyxLKSkpKSwoQis2JjExKT49MiYmQi02PDUpJiYoSj1bIiIsMywhMF0sYj1bXSxIWzI5XSg4LEpbdlsyXV0sYixKWzJdLEspLEM9Yi5qb2luKEpbMF0pLEM9Q1t2WzBdXSgvIFx4QUQgL2csbzkoKSlbdlswXV0oL1x4QUQvZyxKWzBdKSxDPUNbdlswXV0oL1x1MjAwQi9nLEpbMF0pLEM9Q1t2WzBdXSgvICsvZyxvOSgpKSxDIT16JiYoQz1DW3ZbMF1dKC9eXHMqLyxKWzBdKSksQT1DKSxCK3ZbMl0+PnZbMV09PTImJihBPW1bMjJdKDI4KT8hMTpEWzIwXSgxMyx6KSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoISgoQl4yOCkmKEItND4+KHg9WzExLG51bGwsNDRdLDMpPT0xJiYoZj1HWzEzXSgyNCxmdW5jdGlvbihMLHIsVil7cj0KWyhWPVsiWCIsMiwiTSJdLDEpLDAsMl07c3dpdGNoKExbVlsyXV0pe2Nhc2UgclswXTpyZXR1cm4gTC52KEdbNDNdKDQsclswXSxBLnllKCksYikscltWWzFdXSk7Y2FzZSByW1ZbMV1dOmlmKCEobj1HWzM0XSg3LEMsUls2XSgzLHJbVlsxXV0sKFc9TFtWWzBdXSxnWzQ3XSg0LEosclswXSxuZXcgQ0QsdltWWzJdXVtWWzBdXS52YWx1ZSkpLFcpKSxOPUoscCkpeyhlWzE4XSg4LHJbMV0sclswXSxBLHYseikudGhlbihmdW5jdGlvbihQKXtyZXR1cm4gR1sxM10oMzIsZnVuY3Rpb24ocSxjKXtpZighKGM9WzI2LCJSIiwxXSxQKXx8UC5zMygpKXJldHVybiBxLnJldHVybigpO3FbKChSWzQwXSgyMCxjWzJdLFJbY1swXV0oMjIsUCxjWzJdLGwpKSx2Lk8oe2lkOm51bGwsdGltZW91dDpudWxsLGtBOjFFMyxieTpZWzE5XSgzNyxDLFApPzE6bnVsbH0pLFApLndWKCkmJnYuTnguc2VuZChndCxuZXcgdGEoUC53VigpKSksYylbMV1dKCl9KX0pLEwpLkdfKEspO2JyZWFrfXJldHVybiBRPW5ldyBVaChnWzQ5XSgyMCwKclswXSxBKSksTC52KHYudltWWzJdXS5zZW5kKFEpLEMpO2Nhc2UgQzpaPUxbVlswXV0sWi5zMygpfHwoTj1aLndWKCksUls0MF0oMTgsclswXSxaLnhuKCkpLHYuTyh7aWQ6bnVsbCx0aW1lb3V0Om51bGwsa0E6MUUzLGJ5OllbMTldKDY5LEMsWik/MTpudWxsfSkpO2Nhc2UgSzpyZXR1cm4gTC5yZXR1cm4obmV3IEpQKDEyMCxuLG51bGwsbnVsbCxOKSl9fSkpLChCPj4xJnhbMF0pPT0yJiYoQz1DPT09dm9pZCAwP001OkMsSi52Llg+enx8Si5NLnNvbWUoZnVuY3Rpb24oTCl7cmV0dXJuISFMLkZQfSksYj1uZXcgUHJvbWlzZShmdW5jdGlvbihMLHIpe0hbMzRdKDEzLEssSixuZXcgd0YobnVsbCwwLG51bGwsMCwyLE01LEMrWWooKSxMLHIpKX0pLGIuY2F0Y2goZzBbNF0uYmluZCh4WzFdLDE2KSksZj1iKSx4KVswXSkpSFt4WzJdXSg2OSxLLElpLHosSik7cmV0dXJuIGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKEItMyYocD1bNyw2LDFdLHBbMF0pKSlhOntpZihBPQpQYihmdW5jdGlvbihRKXtyZXR1cm4oUT0vU2Ftc3VuZ0Jyb3dzZXJcLyhbLlxkXSspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpKSYmcGFyc2VGbG9hdChRW3pdKT49Q30sSyksIWRvY3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3N8fEEpe3Y9bVsyXShwWzFdLHopO2JyZWFrIGF9dj0oYj1SW3BbMF1dKDQwKSxGSCgpLnRoZW4oZnVuY3Rpb24oUSl7cmV0dXJuIGIucmVzb2x2ZShRPzI6Myl9LGZ1bmN0aW9uKCl7cmV0dXJuIGIucmVzb2x2ZShKKX0pLGIpLnByb21pc2V9cmV0dXJuKEIrcFsyXSZwWzFdKTwzJiYoQiszJnBbMF0pPj1wWzJdJiYodj1PWzExXSg1OSxLLHopfHwoSy5jdXJyZW50U3R5bGU/Sy5jdXJyZW50U3R5bGVbel06bnVsbCl8fEsuc3R5bGUmJksuc3R5bGVbel0pLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybihCfDQ4KT09KEIrNT4+Mz49KCgoKGI9Wzg2LCJmcm9tIiw4XSwoQi02JjcpPT0zKSYmKEM9SyxnMFs2XShiWzBdLGZ1bmN0aW9uKHYscCl7Qys9CnAsQys9IjoiLEMrPXYsQys9en0sSiksQT1DKSxCKSs5JjYyKT49QiYmKEIrYlsyXSY0MSk8QiYmKEo9Sj09PXZvaWQgMD9udWxsOkosQXJyYXlbYlsxXV0oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh6K0J0KSkuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiFSWzVdKDMyLHYpfSkuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiBKPT1udWxsfHx2LmdldEF0dHJpYnV0ZShzayk9PUp9KS5mb3JFYWNoKGZ1bmN0aW9uKHYpe3JldHVybiBlWzVdKDY5LHYse30sSyl9KSksMCkmJihCLTYmNyk8MSYmKEsuaS5YPSEwLEsuZmx1c2goKSxLLmkuWD16KSxCKSYmKEE9bmV3IGV0KEsseikpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoQis4JihOPVsiY2FsbCIsNCw3Ml0sMjcpKT49QiYmKEIrM14xNyk8Qil7aWYob1IpdGhyb3cgRXJyb3IoSik7bVs0N10oMzIseix6cSxLLEtyKCkpfWlmKEItNzw8MT49QiYmKEItNnw1MSk8QilhOntpZihhYy5sZW5ndGgpe3g9CigoYj1hYy5wb3AoKSxZWzMwXSgyLEMsYiksYi52KS5pbml0KHosSyxKLEMpLGIpO2JyZWFrIGF9eD1uZXcgSkUoQyxLLHosSil9aWYoIShCPDwxJjExKSl7Zm9yKHY9KChuPXt9LGIpLnYmJlJbNDJdKDMzLGIpPj0yP2Iudi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8ejoiIikuc3BsaXQoQ3IoKSksQT1LO0E8di5sZW5ndGg7QSsrKVJbMl0oTlsxXSx2W0FdKXx8KFc9R1syXSgxNixLLEosIjoiLHZbQV0pLFE9V1tLXSxwPVdbSl0sdHlwZW9mIHA9PT0ic3RyaW5nIiYmKHA9cC50cmltKCksWj1uW1FdfHxbXSxuW1FdPVosWi5wdXNoKHApKSk7RFsxOV0oMixuLGZ1bmN0aW9uKGYpe3JldHVybiBmLmpvaW4oQyl9KX1pZigoQnxOWzJdKT09QiYmKE5QW05bMF1dKHRoaXMsclMrKHomJnoubWVzc2FnZT9TdHJpbmcoei5tZXNzYWdlKTpTdHJpbmcoeikpLHopLChLPXomJnouc3RhY2spJiZ0eXBlb2YgSz09PSJzdHJpbmciJiYodGhpcy5zdGFjaz1LKSksISgoQl44KT4+TlsxXSkpYTp7aWYoSz0KdHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJlN5bWJvbC5pdGVyYXRvciYmeltTeW1ib2wuaXRlcmF0b3JdKXt4PUtbTlswXV0oeik7YnJlYWsgYX1pZih0eXBlb2Ygei5sZW5ndGg9PSJudW1iZXIiKXt4PXtuZXh0OmVbTlsxXV0oMywwLHopfTticmVhayBhfXRocm93IEVycm9yKFN0cmluZyh6KSsiIGlzIG5vdCBhbiBpdGVyYWJsZSBvciBBcnJheUxpa2UiKTt9cmV0dXJuIHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gcD1bInYiLCgoQiY1Nik9PUImJih0aGlzLndpZHRoPXosdGhpcy5oZWlnaHQ9SyksMSksImkiXSwoQj4+cFsxXSY3KT09cFsxXSYmKGI9Yj09PXZvaWQgMD9udWxsOmIsd0UuY2FsbCh0aGlzKSx0aGlzLkE9Yix0aGlzW3BbMF1dPXp8fHRoaXMuQS5wb3J0MSxBPXRoaXMsdGhpcy5YPW5ldyBNYXAsSy5mb3JFYWNoKGZ1bmN0aW9uKFEsbixaLFcpe2ZvcihaPShXPWdbMTJdKDEsQXJyYXkuaXNBcnJheShuKT9uOltuXSksVykubmV4dCgpOyFaLmRvbmU7Wj0KVy5uZXh0KCkpQS5YLnNldChaLnZhbHVlLFEpfSksdGhpc1twWzJdXT1KLG5ldyB5NihDKSx0aGlzLk09bmV3IE1hcCxlWzM2XSg5LHRoaXMsdGhpc1twWzBdXSxFeixmdW5jdGlvbihRKXtyZXR1cm4gZ1szM10oMzMsMSxudWxsLEEsUSl9KSx0aGlzW3BbMF1dLnN0YXJ0KCkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQis2XigoQj4+MiYocD1bNjQsInYiLCJBIl0sMTUpKT09NCYmKGI9QWUoKSxBPWw5KEosQyE9ej9DOkopLHY9aFkoQSsoMjRFNCs0RTQqYiktSixLKSksMTYpKT49QiYmKEItMXwzMCk8QilrWzQzXSgyMSxLLEtbcFsxXV0reik7cmV0dXJuIEItMj4+KCgoQi02JjE1KT09MyYmKEsuaSYmSy5pW3BbMl1dJiYoSj1LLmlbcFsyXV0sQz1LLkssQyBpbiBKJiZkZWxldGUgSltDXSxEWzM4XSgxMCwnIicsSy5pW3BbMl1dLHosSykpLEsuSz16KSwoQnw0KSYxMSk9PTEmJih0aGlzLmJsb2NrU2l6ZT0tMSx0aGlzLmJsb2NrU2l6ZT1wWzBdLHRoaXMuWD1HbFtidygpXT8KbmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzW3BbMl1dPUssdGhpc1twWzFdXT1bXSx0aGlzLk09MCx0aGlzLlI9eix0aGlzLmk9MCx0aGlzLkY9R2xbQUUoKV0/bmV3IEludDMyQXJyYXkoNjQpOkFycmF5KHBbMF0pLEhJPT09dm9pZCAwJiYoR2xbQUUoKV0/SEk9bmV3IEludDMyQXJyYXkodnQpOkhJPXZ0KSx0aGlzLnJlc2V0KCkpLDMpfHwodj1tWzQyXSg4KS5jYWxsKDc2OCwyOCkucGFkRW5kKDQsdmgoKSkreiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigoQnwoUT1bNDMsMiwxXSw0KSk8MTQmJihCPj5RWzJdJlFbMl0pPj0wKWE6dHJ5e249KChBfHwhQz9DPW5ldyBJaTp2JiZrWzE0XSgxNSx6LERbOF0uYmluZChudWxsLDc5KSwtMSxKLEMsZ1tRWzFdXS5iaW5kKG51bGwsMTkpKSxiKSYmKHA9eVsxMl0oMjQsSyxKLGIsa1szXSgzOCkpKSYmcC5sZW5ndGgmJmtbMTRdKDEyLHosRFs4XS5iaW5kKG51bGwsCjg4KSxwW0tdLEosQyxnW1FbMV1dLmJpbmQobnVsbCwyMCkpLEMpO2JyZWFrIGF9Y2F0Y2goWil7fXJldHVybihCfDgpJjZ8fChiZC5jYWxsKHRoaXMsVHEoKSxrW1FbMF1dKDI0LHpIKSxMSygpKSx0aGlzLmhNPSEwLEhbMzFdKDI0LHRoaXMseikpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQisoWj1bMjgsMTksM10sWlsyXSkmNyk9PTEpYTpzd2l0Y2goUT1bbnVsbCw2LCJzdHJpbmciXSx0eXBlb2Ygeil7Y2FzZSBRWzJdOm49KEo9bmV3IG0zLFJbMjVdKDE4LFFbMF0sNCx6LHA1LEopKTticmVhayBhO2Nhc2UgIm51bWJlciI6TnVtYmVyLmlzSW50ZWdlcih6KSYmejwyMTQ3NDgzNjQ4JiZ6Pj0tMjE0NzQ4MzY0OD8oQT1uZXcgbTMscD1HWzI2XSg5LHA1LFpbMl0sWVsxMF0oNjMsUVswXSx6KSxBKSk6KGI9bmV3IG0zLHA9R1syNl0oMjUscDUsUVsxXSxrWzJdKDQsIjogIixRWzBdLHopLGIpKSxuPXA7YnJlYWsgYTtjYXNlICJib29sZWFuIjpuPShDPQpuZXcgbTMsZ1syM10oMTIsIjogIixwNSx6LDIsQykpO2JyZWFrIGE7ZGVmYXVsdDpuPSh6PT1RWzBdP3Y9MDooSz1rWzFdKDEyLHZvaWQgMCx6LHA1LDEpLHY9SFsxNF0oNTgsSFs0XSg5NCxLLHopKSE9UVswXSksdik/ejpuZXcgbTM7YnJlYWsgYX1yZXR1cm4oQis4XigoKEImKChCfDUpPj5aWzJdfHwodj1nWzM4XShaWzJdLDEsQyxLKSx2IT1udWxsJiYoQT1IW1pbMV1dKDEsMixKLHopLGIodix6KSxHWzE1XSgxOCwxMjcseixBKSkpLFpbMF0pKT09QiYmKG49UFUoeikmJlBVKHoucmF3KSksKEJ8NDApPT1CKSYmKEo9Sy5FWSxiPUsuTXQsQz1IWzQ1XSg3MixYcigpLGIsaW0oKSx1bSgpKSxBPUhbNDVdKDc2LGFmKCksSixpbSgpLHVtKCkpLG49VEQoJzxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWFuY2hvci1wdCIpKyhDfHxBP3orUlsxMV0oNzMsInJjLWFuY2hvci1vdmVyLXF1b3RhLXB0IikrejoiIikrJyI+PC9kaXY+JykpLFopWzBdKT49QiYmKEIrNV4yMCk8QiYmKG49a1szNF0oMTcsCkhbNF0oOTMsSixLLHosQykpKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChuPVsib25yZWFkeXN0YXRlY2hhbmdlIiw4LDNdLEIpKzY+PTI0JiYoQi1uWzFdJjE2KTw3JiZLLnYpeyhLLkYmJihjbGVhclRpbWVvdXQoSy5GKSxLLkY9eiksQz1LLnYsSykudj16LEp8fGdbblsyXV0oNjAsSyxqWik7dHJ5e0NbblswXV09en1jYXRjaChaKXt9fXJldHVybihCfCgoQl4xKT49LTgyJiYoQjw8MiYxNik8blsyXSYmKHRoaXMudj16KSxuWzFdKSk9PUImJihBPUoubGVuZ3RoLHA9WzEsMyw0XSx2PUEqcFsxXS9wWzJdLHYlcFsxXT92PWJOKHYpOkRbMjBdKDI4LEpbQS1wWzBdXSxwcikmJih2PURbMjBdKDI0LEpbQS16XSxwcik/di16OnYtcFswXSksQz1uZXcgVWludDhBcnJheSh2KSxiPTAsbVs2XShuWzFdLEssZnVuY3Rpb24oWil7Q1tiKytdPVp9LEopLFE9YiE9PXY/Qy5zdWJhcnJheSgwLGIpOkMpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKChCJgo3NCk9PSh2PVsibnVtYmVyIiwyLDFdLEIpJiZULmNhbGwodGhpcyx6LDAsdkYuUlQpLChCfDQwKT09QikmJihBPWtbNDZdKDQzLGZ1bmN0aW9uKHAsUSxuKXtwLnN1YnNjcmliZShuZXcgZmcoUSwobj16LGZ1bmN0aW9uKFope3JldHVybiBLLmNhbGwodm9pZCAwLFosbisrKSYmUS5uZXh0KFopfSkpKX0pKSwoQnw3Mik9PUImJihBPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh6LEspKSwoQjw8dlsyXSYxNSk9PXZbMV0mJihiPXoubyxDPUt8fCJWZXJpZnkiLE9bMzFdKDMsOSx2WzBdLGIudSgpLEMpLGIuanM9QyxHWzM1XSg4LHouby51KCksISFKLFFjKSksQX0sZnVuY3Rpb24oQix6LEssSixDKXtpZigoKCgoQz1bInYiLDMwLDE2XSxCfDcpPDE0JiYoQis5JjE1KT49MTAmJihuci5jYWxsKHRoaXMpLHRoaXMuWD0wKSxCKSY1Nyk9PUImJihKPVJbNDhdKDcxLEssWmQseixsKSksKEIrMyY1MSk+PUImJihCLTheMTApPEIpJiYodGhpc1tDWzBdXT15WzIzXSg0LG51bGwsCnopLEs9ZVszNl0oQ1syXSwwLHRoaXMpLEsubGVuZ3RoPjApKXRocm93IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcnM6ICIrSy5qb2luKCkpO3JldHVybihCXjQ1KT4+Mz09MiYmKEo9Z1syNV0oMzYsYVooKSxEW0NbMV1dKDksIiAiKSkpLEp9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoQiY1Nik9PShCKygoQz1bMTUsMywib25tZXNzYWdlIl0sKEImMzUpPT1CKSYmSiYmKEtbQ1syXV09ZnVuY3Rpb24oQSl7SihuZXcgV3QoQS5kYXRhLGdbNl0oMyx2b2lkIDAsQS5wb3J0c1t6XSkpKX0pLDIpPj5DWzFdPT1DWzFdJiYoSz1LPT09dm9pZCAwP21nKCk6SyxwUS5jYWxsKHRoaXMpLHRoaXMuWHI9Syx0aGlzLnJRPXosdGhpcy52PU5tKCksdGhpcy5jdj10aGlzLm5EPW51bGwpLEIpKWcwWzRdKENbMF0sZ1sxNF0oQ1sxXSxjaCksSyx6KTtyZXR1cm4oQj4+MSYxNCk9PTImJihiPW51bGwpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKChCPj4KMiYxNCk9PShmPVswLDMsMTBdLDIpJiYoYj1bMSwxMDczNzQxODIzLDBdLHohPT0wKSl7Zm9yKEs9dGhpcy5sZW5ndGgtYltmW0M9KEo9YlsyXSx0aGlzLkgxKGJbMl0pPj4+eiksMF1dO0o8SztKKyspQT10aGlzLkgxKEorYltmWzBdXSksdGhpcy5xeChKLEE8PDMwLXomYlsxXXxDKSxDPUE+Pj56O3RoaXMucXgoSyxDKX1yZXR1cm4oQi0oKEJ8NjQpPT1CJiYoei5qcz1LKSwxKT4+ZlsxXXx8KHRoaXMuaT1udWxsLEs9WyIiLCEwLDVdLHRoaXMubD1LW2ZbMF1dLHRoaXMuUj1LW2ZbMF1dLHRoaXMuWD1LW2ZbMF1dLHRoaXMuRj0hMSx0aGlzLnY9S1tmWzBdXSx0aGlzLk09S1tmWzBdXSx6IGluc3RhbmNlb2YgeTY/KHRoaXMuRj16LkYsWVszMV0oOSxLWzFdLHRoaXMsei5NKSx0aGlzLlI9ei5SLERbMjhdKDcsS1sxXSx6LnYsdGhpcykseVsyOV0oMzUsei5pLHRoaXMpLFJbNDNdKDUsS1sxXSx0aGlzLHouWCksRFsyOV0oMzUsdGhpcyxSWzJdKDksei5BKSksZ1s0NV0oNzIsei5sLHRoaXMpKToKeiYmKEo9UlsyOF0oZlsxXSwxLFN0cmluZyh6KSkpPyh0aGlzLkY9ITEsWVszMV0oMTUsS1sxXSx0aGlzLEpbMV18fEtbZlswXV0sS1sxXSksdGhpcy5SPWtbMTJdKDM5LEpbMl18fEtbZlswXV0pLERbMjhdKGZbMV0sS1sxXSxKW2ZbMV1dfHxLW2ZbMF1dLHRoaXMsS1sxXSkseVsyOV0oMTksSls0XSx0aGlzKSxSWzQzXShmWzJdLEtbMV0sdGhpcyxKW0tbMl1dfHxLW2ZbMF1dLEtbMV0pLERbMjldKDM0LHRoaXMsSls2XXx8S1tmWzBdXSxLWzFdKSxnWzQ1XSg2OCxKWzddfHxLW2ZbMF1dLHRoaXMsS1sxXSkpOih0aGlzLkY9ITEsdGhpcy5BPW5ldyBnNChudWxsLHRoaXMuRikpKSwoKEJ8MSkmMTUpPT0xKSYmKHA9WVsyN10oZlsyXSxKKSxwLnYhPXo/KGImJkRbMjhdKDQsITAsYitLK3AudixwKSx5WzI5XSg1MSxwLmkscCkpOihOPUdsLmxvY2F0aW9uLFE9K04ucG9ydCx2PWI/YitLK04uaG9zdG5hbWU6Ti5ob3N0bmFtZSxaPU4ucHJvdG9jb2wsbj1uZXcgeTYobnVsbCksWiYmWVszMV0oMTIsCiEwLG4sWiksdiYmRFsyOF0oNiwhMCx2LG4pLFEmJnlbMjldKDIwLFEsbiksSiYmUls0M10oOCwhMCxuLEopLHA9biksQT1DLmZxLChXPUMuUCkmJkEmJm1bOV0oMTkscCxXLEEpLG1bOV0oMTUscCxnSigpLEMuVzEpLEhbMzJdKDcscCxDKSx4PXApLHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuIEItKChCJigoKCgoQi0odj1bInNwdnQiLDE2LDIxXSw1KXx2WzJdKTxCJiYoQi0xXjIwKT49QiYmKEM9ei5pLEo9ei5YLEE9bmV3IFo2KEMrSyooei5NLUMpLEorSyooei52LUopKSksQileNjMpJjI3KT09MSYmKHRoaXMudXJpPXosdGhpcy5RWD1iLHRoaXMuSG89Syx0aGlzLk09Qyx0aGlzLnY9SiksdlsyXSkpPT1CJiYoQT1EWzM2XSgyNCwxLHZbMF0sSlt6XSxKWzBdLEspKSw1KTw8Mj49QiYmKEIrN14xMSk8QiYmKEE9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiIpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKCgoQl4xNik8KEE9WyJTcSIsNSw0NV0sCjExKSYmKEJeQVsxXSk+PTcmJih6PWtbNDddKDMsWWspLHY9bmV3IE1hcChbWyJyZWNhcHRjaGEvIisoei5pbmNsdWRlcyhhVigpKT9OaygpOk9rKCkpLDNdLFsicmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsMV0sW3osMl0sW2tbNDddKDMsUEQpLDRdXSkpLEIrMj49MikmJkIrMjwxNCYmKEtbQVswXV0mJnohPUsuZyYmZVsxNl0oMTgsSyx6KSxLLmc9eiksKEImQVsyXSk9PUImJih2PUdbMjZdKDMzLEssQyxKPT1udWxsP0o6ZVsyNl0oMTEseixKKSxiKSksQi04Pj40Pj0yJiYoQj4+MiYxNik8NykmJih2PXg3PXg3fHxuZXcgb2cpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi0oKEI+PigoQiY0Myk9PUImJih6JksmJihKfD16KSxiPUp8MSksQz0oKEImMTIwKT09QiYmKHRoaXMuWUo9dGhpcy5laz0tMSx0aGlzLmNJPXouYWx0S2V5KSxbMTUsMTMsM10pLDIpJkNbMF0pPT1DWzJdJiYoSj1tWzQ4XSg3Myx6LHc1KCksMjU1KSxiPVlbNDFdKDEwLAoxLDUsMCwyNTUsSyxKKSksOSkmQ1sxXSk9PTEmJih0aGlzLkhvPSExKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKEItMSYoKEItKChCLSh2PVs3LCJzaGlmdEtleSIsInJlbGF0ZWRUYXJnZXQiXSx2WzBdKSZ2WzBdKT09MyYmVC5jYWxsKHRoaXMseiw0KSw4KT4+NHx8KEo9W251bGwsITEsMF0sJE0uY2FsbCh0aGlzLHo/ei50eXBlOiIiKSx0aGlzLnRhcmdldD1KWzBdLHRoaXMuTT1KWzBdLHRoaXNbdlsyXV09SlswXSx0aGlzLmNsaWVudFg9SlsyXSx0aGlzLmNsaWVudFk9SlsyXSx0aGlzLnNjcmVlblg9SlsyXSx0aGlzLnNjcmVlblk9SlsyXSx0aGlzLmJ1dHRvbj1KWzJdLHRoaXMua2V5PSIiLHRoaXMua2V5Q29kZT1KWzJdLHRoaXMuY3RybEtleT1KWzFdLHRoaXMuYWx0S2V5PUpbMV0sdGhpc1t2WzFdXT1KWzFdLHRoaXMubWV0YUtleT1KWzFdLHRoaXMuc3RhdGU9SlswXSx0aGlzLkE9SlsxXSx0aGlzLnBvaW50ZXJJZD1KWzJdLHRoaXMucG9pbnRlclR5cGU9CiIiLHRoaXMudGltZVN0YW1wPUpbMl0sdGhpcy5lcT1KWzBdLHomJnRoaXMuaW5pdCh6LEspKSxCLTF8NCk8QiYmKEItNV4xNik+PUImJihEZC5jYWxsKHRoaXMsW0oubGVmdCxKLnRvcF0sW0oucmlnaHQsSi5ib3R0b21dLEMsYiksdGhpcy5YPUssdGhpcy5BPXosdGhpcy5GPSEhQSksMTQpKT09MiYmKHoudiE9PXZvaWQgMD96LnYucHVzaChLKTpLIGluc3RhbmNlb2YgZnI/Sy5NIT09dm9pZCAwP3ouTSs9Sy5WZSgpOih6LnY9W3ouTSxLXSx6Lk09dm9pZCAwKTp6Lk0rPUsscD16KSxwfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBCLShCKzUmKCgoKEJ8MjQpPT0oSj1bNTksMSwiZmlyc3RFbGVtZW50Q2hpbGQiXSxCKSYmKEM9QXJyYXkuZnJvbSh7bGVuZ3RoOks9PT12b2lkIDA/MTpLfSxmdW5jdGlvbihiLEEsdil7aWYoKGI9KHY9WzIwNDgsIk0iLCJoYXMiXSx2KVswXSx6W3ZbMV1dKS5zaXplPHZbMF0pe2RvIGI9Yk4oQWUoKSp2WzBdKTt3aGlsZSh6W3ZbMV1dW3ZbMl1dKGIpKQp9cmV0dXJuIHpbdlsxXV0uYWRkKChBPWIsQSkpLEF9KSksQiY3OCk9PUImJlQuY2FsbCh0aGlzLHopLEIrNSYyOCk8MTImJkI+PjI+PS00OSYmKHouY2xhc3NMaXN0P0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoSyxmdW5jdGlvbihiKXtSWzI3XSgzMix6LGIpfSk6R1szOF0oMjAsInN0cmluZyIsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGVbSlsxXV0oNDQseiksZnVuY3Rpb24oYil7cmV0dXJuIVlbOF0oMjYsSyxiKX0pLmpvaW4oIiAiKSx6KSksMTMpfHxULmNhbGwodGhpcyx6KSw2KTwyMCYmKChCfEpbMV0pJjE5KT49MTMmJihDPUtbSlsyXV0hPT12b2lkIDA/S1tKWzJdXTpIWzI3XShKWzBdLHosITAsSy5maXJzdENoaWxkKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKChBPVswLDksM10sQi02Pj5BWzJdPj0yJiYoQl4yNSk+PjQ8QVsyXSYmKGI9bzNbel0pLEImMTE4KT09QiYmKGI9bmV3IElwKGZ1bmN0aW9uKHYscCl7cCh6KX0pKSxCLUFbMV18CjIzKT49QiYmQis3Pj4xPEImJihDPVsyNTUsOCwyNF0sYk4oSiksSy52LnB1c2goSj4+PkFbMF0mQ1tBWzBdXSksSy52LnB1c2goSj4+PkNbMV0mQ1tBWzBdXSksSy52LnB1c2goSj4+PnomQ1tBWzBdXSksSy52LnB1c2goSj4+PkNbMl0mQ1tBWzBdXSkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLShiPVsiaSIsMCwhMV0sNikmNyk9PTIpaWYoTHIuY2FsbCh0aGlzKSx6W1IzKCldJiYodGhpcy5oZWFkZXJzPXpbUjMoKV0sdGhpcy5zdGF0dXNDb2RlPXpbckooKV0sZGVsZXRlIHpbUjMoKV0sZGVsZXRlIHpbckooKV0pLEo9eltWYygpXSl7YTp7Zm9yKEsgaW4gSil7Qz1LO2JyZWFrIGF9Qz12b2lkIDB9dGhpcy5kYXRhPSh0aGlzW2JbMF1dPUMsdGhpc1tiWzBdXT9HWzIxXSgyNSx0aGlzW2JbMF1dLEopOkopfWVsc2UgdGhpcy5kYXRhPXo7aWYoIShCLTc+PjQpKWE6e2lmKCFSYnx8IVo4KXtBPWJbMl07YnJlYWsgYX1mb3IoSj1iWzFdO0o8WjguYnJhbmRzLmxlbmd0aDtKKyspaWYoKEM9Clo4LmJyYW5kc1tKXS5icmFuZCkmJkRbMjBdKDIwLEssQykpe0E9ejticmVhayBhfUE9YlsyXX1yZXR1cm4oQj4+MSY3KT09MiYmVC5jYWxsKHRoaXMseiksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChCJjExOCk9PShwPVszNSw3LCJuYW5vcyBtdXN0IGJlIGludGVnZXI6ICJdLEIpKWE6e2I9WyJzZWNvbmRzIG11c3QgYmUgbGVzcyB0aGFuIDI1MzQwMjMwMDgwMDogIixudWxsLCJzZWNvbmRzIG11c3QgYmUgaW50ZWdlcjogIl07dHJ5e2lmKChDPU51bWJlcihKLmdldFNlY29uZHMoKSksQT15WzMzXShwWzBdLEssSiksQyk8LTYyMTM1NTk2ODAwKXRocm93IEVycm9yKCJzZWNvbmRzIG11c3QgYmUgYXQgbGVhc3QgLTYyMTM1NTk2ODAwOiAiK0MpO2lmKDI1MzQwMjMwMDgwMDw9Qyl0aHJvdyBFcnJvcihiWzBdK0MpO2lmKEE8eil0aHJvdyBFcnJvcigibmFub3MgbXVzdCBiZSBhdCBsZWFzdCAwOiAiK0EpO2lmKDFFOTw9QSl0aHJvdyBFcnJvcigibmFub3MgbXVzdCBiZSBsZXNzIHRoYW4gMTAwMDAwMDAwMDogIisKQSk7aWYoIU51bWJlci5pc0ludGVnZXIoQykpdGhyb3cgRXJyb3IoYlsyXStDKTtpZighTnVtYmVyLmlzSW50ZWdlcihBKSl0aHJvdyBFcnJvcihwWzJdK0EpO3Y9bmV3IEdxKEMsQSk7YnJlYWsgYX1jYXRjaChRKXt2PWJbMV07YnJlYWsgYX19cmV0dXJuIEItKChCfHBbMV0pPj40fHwodj16KSw2KTw8MT49QiYmKEItM3wzMik8QiYmKHRoaXMuTT16LHRoaXMuVj1LKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7cmV0dXJuKCgoKEItKEItKCh4PVsiQ0IiLDEsbnVsbF0sKEImMjkpPT1CKSYmKE49R1sxM10oMTYsZnVuY3Rpb24oZixMLHIsVixQLHEsYyl7aWYoZlsoYz1bInYiLChxPVs0LG51bGwsMF0sIk0iKSwiWCJdLGMpWzFdXT09eilyZXR1cm4gbj1nMFsyXSg0LDE4LGJbY1swXV1bY1swXV0pLGYuQSgyKSxRPW5ldyBIdChiLlUzKCksbixwZXJmb3JtYW5jZS5ub3coKS1iLk8scGVyZm9ybWFuY2Uubm93KCktYi5sKSxmW2NbMF1dKGIuRi5zZW5kKFEpLApxWzBdKTtpZihmW2NbMV1dIT0yKXtpZighRFs2XSgyOCwoWj1mW2NbMl1dLEwxKSkoWikpcmV0dXJuIGJbY1sxXV0ub25FcnJvcih6KSxmLnJldHVybigpO2lmKGdbMTZdKDkwLGwsWixxWzBdKSE9cVsxXSlyZXR1cm4gYltjWzFdXS5vbkVycm9yKGdbMTZdKDExLGwsWixxWzBdKSksZi5yZXR1cm4oKTtpZigoKFc9ZVsyXSgzOSx6LGwsWiksVykhPXFbMV0mJihMPVcsYi5BPUwsYltjWzBdXVtjWzJdXS52YWx1ZT1MKSxPWzE0XSgxMSxxWzFdLEhbNF0oOTAsMixaLGwpKSl8fE9bMTRdKDExLHFbMV0sSFs0XSg5MSxLLFosbCkpKVA9KHA9VykhPXFbMV0/cDoiIiwoVj1HbC56em1iKT09cVsxXXx8Vi56enNjKFApLGJbY1syXV09QmYseVsyNF0oNSxxWzFdLEMsZ1szNV0oNDksYltjWzBdXSkpO2Vsc2UgaWYocj1aLmFULHY9RFszOF0oMzUscVsxXSxyW0EkXXxxWzJdLHRMLHIsSixsKSliLlIodik7ZWxzZSBiW2NbMV1dLm9uRXJyb3IocVsyXSk7cmV0dXJuIGYuRihxWzJdKX1pZihBPWYuaSgpLApBIGluc3RhbmNlb2YgVVgpYltjWzFdXS5vbkVycm9yKHFbMF0pO2Vsc2UgYltjWzFdXS5vbkVycm9yKHFbMl0pO2YuUigpfSkpLDMpPDE1JiYoQnx4WzFdKT4+Mz49MCYmKEE9W251bGwsIm9iamVjdCIsNjRdLGVbNDhdKDgwLGVKKSxDPUsudixDPT1BWzBdfHxlWiYmQyE9QVswXSYmQyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/Yj1DOnR5cGVvZiBDPT09InN0cmluZyI/Yj1SWzRdKDI1LHosQVsyXSxDKTooSFs0Nl0oMzIsQVt4WzFdXSxDKSxiPUFbMF0pLEo9YixOPUo9PUFbMF0/SjpLLnY9SikseFsxXSkmMTUpPT0yJiYoej0obmV3IFB0KDE0NTMsIjAiKSkuaUQoKSx6Lm5EfHwoei5uRD1uZXcgJDcpLEs9bmV3IHFrKHtyUTp6LnJRLEJvOnouQm8/ei5CbzpnWzQyXS5iaW5kKHhbMl0sNyksWHI6ei5Ycix4Wjp6LnYsWUE6ITEsQ0Q6ITEsaUQ6ei5NLFNGOnouU0YsbkQ6ei5uRH0pLHlbNDNdKDU3LEsseiksSy5sPW5ldyBpdyx6LmN2JiYoSy5jdj16LmN2KSxrW3hbMV1dKHhbMV0sITAsCjkseFsyXSwhMSxLLmkpLHoubkQuTnUmJnoubkQuTnUoei5yUSksei5uRFt4WzBdXSYmei5uRFt4WzBdXShLKSxOPUspLChCfDcyKT09QikmJihBPUsuYVQsTj1EWzM4XSgzLHosQVtBJF18MCxDLEEsa1t4WzFdXSgxMSx2b2lkIDAsSyxiLEopKSE9PXZvaWQgMCksQikmMTE2KT09QiYmKEo9ei5FQixLPSIiLEs9SFs0NV0oOCx5YygpLEosaW0oKSx1bSgpKT9LKyI8ZGl2PkNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSByZUNBUFRDSEEgc2VydmljZS4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBhbmQgcmVsb2FkIHRvIGdldCBhIHJlQ0FQVENIQSBjaGFsbGVuZ2UuPC9kaXY+IjpLKyc8bm9zY3JpcHQ+UGxlYXNlIGVuYWJsZSBKYXZhU2NyaXB0IHRvIGdldCBhIHJlQ0FQVENIQSBjaGFsbGVuZ2UuPGJyPjwvbm9zY3JpcHQ+PGRpdiBjbGFzcz0iaWYtanMtZW5hYmxlZCI+UGxlYXNlIHVwZ3JhZGUgdG8gYSA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvP2hsPWVuIzYyMjM4MjgiPnN1cHBvcnRlZCBicm93c2VyPC9hPiB0byBnZXQgYSByZUNBUFRDSEEgY2hhbGxlbmdlLjwvZGl2Pjxicj48YnI+PGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vcmVjYXB0Y2hhIzYyNjI3MzYiIHRhcmdldD0iX2JsYW5rIj5XaHkgaXMgdGhpcyBoYXBwZW5pbmcgdG8gbWU/PC9hPicsCk49VEQoSykpLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEI8PDImKEIrKChmPVszLDI1LDBdLChCXjI4KT4+ZlswXT09MSkmJihMPXoudG9TdHJpbmcoKS5pbmRleE9mKFk3KCkpPT09LTEpLDcpPj4xPj1CJiZCLTc8PDI8QiYmKGJkLmNhbGwodGhpcyxrWzE4XSgxMyxjdCksa1s0M10oMTQsdEwpLExLKCksNCksbVsyM10oMjAsIkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIseiwxKSxLPURbOF0oMTAsZGsuSigpLmdldCgpKSxtWzIzXSgyMCxLLHosZlswXSksdGhpcy5PMD16LlQoKSksMzEpfHwoTD1LLm5vZGVUeXBlPT16P0s6Sy5vd25lckRvY3VtZW50fHxLLmRvY3VtZW50KSwoQnw0MCk9PUImJihiPWtbMzZdKDIseiwxNixKK0MsU1opLEE9Sy5tYXAoZnVuY3Rpb24ocixWKXtyZXR1cm4gYltWJWIubGVuZ3RoXX0pLEw9RFsyOV0oMSx6LEssQSkpLEI+PjImMTUpPT1mWzBdKWE6e2lmKEoubGVuZ3RoPT09MCl7TD1KO2JyZWFrIGF9aWYobj0KKFE9KEE9KE49KHA9W10sYnx8KGI9Z1s3XSgzNykscC5wdXNoKGIpKSxnWzddKDM3KSksW1lbZlsyXV0oMjksTixPW2ZbMV1dKDEsQy5DaSksanUoKSksWVtmWzJdXSgyOCxiLHoseiksTl0pLFtdKSxiKSxDLnBnJiZDLnBnLmxlbmd0aCE9PTApZm9yKHY9SFsxNV0oNjQsSykseD1nWzEyXSgxMSxDLnBnKSxXPXgubmV4dCgpOyFXLmRvbmU7Vz14Lm5leHQoKSlaPVcudmFsdWUsUS5wdXNoKFlbZlsyXV0oMjcsbixPW2ZbMV1dKDcsdiksWikpO0w9W10uY29uY2F0KGVbMzNdKDI4LEEpLGVbMzNdKDM1LFEpLGVbMzNdKDQsSiksZVszM10oMTEscCkpfXJldHVybiBMfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKCgoKFc9WyJ2IiwibGlzdGVuZXIiLCJJdSJdLEIrMT4+Mz09MykmJihvZy5jYWxsKHRoaXMpLHRoaXMuaT16IT09dm9pZCAwP3o6MSx0aGlzLkE9YiE9PXZvaWQgMD9oWSgwLGIpOjAsdGhpcy5SPSEhQSx0aGlzLk09bmV3IG1fKEssSixDLEEpLHRoaXNbV1swXV09Cm5ldyBsdyx0aGlzLlg9bmV3IHdFKHRoaXMpKSxCKSY0Myk9PUIpYTp7aWYodj1iLk9bV1swXV1bU3RyaW5nKEopXSwhdil7Tj0hMDticmVhayBhfWZvcihuPShwPSEodj12LmNvbmNhdCgpLDApLHopO248di5sZW5ndGg7KytuKShRPXZbbl0pJiYhUS5tQSYmUS5jYXB0dXJlPT1DJiYoWj1RW1dbMV1dLEE9US5kQnx8US5zcmMsUVtXWzJdXSYmZVszXSgzMyx6LGIuTyxRKSxwPVouY2FsbChBLEspIT09ITEmJnApO049cCYmIUsuZGVmYXVsdFByZXZlbnRlZH1yZXR1cm4gQisoKEI8PDEmMTUpPT0oKEItN3w3OSk8QiYmQi0yPDwyPj1CJiYoTj15WzM4XSg3LHZvaWQgMCxSWzExXSgyNCx6LEopLEssMykpLDIpJiYoSltXWzBdXS5oYXMoRWspPyhiPUpbV1swXV0uZ2V0KEVrKSxDPWhZKHoscGFyc2VJbnQoYixLKSkpOkM9eixOPUMpLDQpPDI0JiYoQl4xMDApPj0yMSYmKHRoaXNbel09S3wwKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoQiYoWj1bMTUsMTcsCjBdLDg1KSk9PUIpe2ZvcihLPSh6PW5ldyBoRih0aGlzLmxlbmd0aCx0aGlzLnNpZ24pLFopWzJdO0s8dGhpcy5sZW5ndGg7SysrKXpbS109dGhpc1tLXTtXPXp9cmV0dXJuKCgoKEJeMjgpJihCLTE+PVpbMV0mJihCLTEmMTQpPDcmJihXPUdbMTNdKDgsZnVuY3Rpb24oTix4LGYpe2lmKHg9WzcsKGY9WzI3LCJYIiwxXSwyKSwwXSxOLk09PXopcmV0dXJuIEE9Qy5lcSxOLnYoUlsyOV0oNCxmWzJdLHhbMl0seFswXSx4W2ZbMl1dLEEuZGF0YSkseFtmWzJdXSk7aWYodj0obj0ocD1OW2ZbMV1dLHAudiksYj1wLm1lc3NhZ2VUeXBlLHAubWVzc2FnZSksYj09WDV8fGI9PXV3KW4mJkouTS5oYXMobikmJihiPT1YNT9KLk0uZ2V0KG4pLnJlc29sdmUodik6Si5NLmdldChuKS5yZWplY3QoRXJyb3IoInJlQ0FQVENIQSAiK3YpKSxKLk1bImRlbGV0ZSJdKG4pKTtlbHNlIGlmKEpbZlsxXV0uaGFzKGIpKVE9SltmWzFdXS5nZXQoYiksKG5ldyBQcm9taXNlKGZ1bmN0aW9uKEwpe0woUS5jYWxsKEouaSwKdnx8dm9pZCAwLGIpKX0pKS50aGVuKGZ1bmN0aW9uKEwpe1lbMzJdKDI1LDIsSixYNSxuLEx8fEspfSxmdW5jdGlvbihMKXtZWzMyXSgyNiwyLEosdXcsKEw9TCBpbnN0YW5jZW9mIEVycm9yP0wubmFtZTpMfHxLLG4pLEwpfSk7ZWxzZSBZWzMyXShmWzBdLHhbZlsyXV0sSix1dyxuLEspO04uUigpfSkpLDE2KSk8MTMmJihCKzImWlswXSk+PTQmJihjYi5jYWxsKHRoaXMsei5lcSksdGhpcy50eXBlPWEzKSxCKV40Nyk8MTAmJkIrND4+ND49MiYmKFc9bVsyM10oMjgsSixLLHosbCkpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLShBPVs0LDUsMTldLDYpPDExJiYoQnxBWzFdKT49QVsxXSYmKGI9WVtBWzJdXShBWzBdLHosSykpLEImMTA2KT09QilhOmlmKCFLLnlkKXtiPXlbMzNdKDE3LCgoQz1LLnYudi1KLEsudikudj1KLHopLEsudixDKTticmVhayBhfXJldHVybigoKChCfDYpPj4zPT0zJiYoYj1BcnJheS5pc0FycmF5KEspP0tbel1pbnN0YW5jZW9mIEJEP0s6W2hFLApLXTpbSyx2b2lkIDBdKSwoQi04XjE1KT49QikmJihCK0FbMV1eMjEpPEImJiFPWzI2XSgyOSwiIix0aGlzKSYmKHRoaXMudSgpLnZhbHVlPXRoaXMuWCksQik+PjImNik9PUFbMF0mJihiPVlbMjZdKEFbMl0seixLLFlbMTBdKDMwLG51bGwsSiksMCkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQj4+KChCJigoYj1bMiwyNSw5XSxCPDwxPj0xOCkmJkIrMTxiWzFdJiYodGhpcy52PXopLDQ3KSk9PUImJihKPW5ldyBkSixDPWdbMjNdKDMyLCI6ICIsazcseixLLEopKSwxKSZiWzJdKT49YlswXSYmKEJeNTUpPDEzJiYoQz16LnY/T1s0M10oNDksei52LlIpOm5ldyBibSgwLDApKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQnw4KT09KCgoKEJeMjcpJihBPVsxLDQsIk0iXSwzKXx8KGI9RFsxOF0o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dCRXcBtMYmwXI0BwHTEgVkVceDAwNVdCaDlXUy1lM1pwYxc2TE0gSlh5bQI9WUkQFlkmfCUFYEpiBlx2PwFiZRYEICFBbFx4MDBccipdcyt/XHIYO1dUOl9xbFxmPFlFKycuY29kZVBvaW50QXQoeisKcClebikmWlsxXSxRKz1TdHJpbmdbWlswXV0odiksbis9djtyZXR1cm4gQz1RfSksQikmJih0aGlzLnNyYz16LHRoaXNbQVsyXV09MCx0aGlzLnY9e30pLGJ9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEImKChCPDwoKEo9WzcsKChCfDcyKT09QiYmKEsuTzA9eiksMTUxMyksMTJdLEJ8NTYpPT1CJiZOUC5jYWxsKHRoaXMpLDEpJkpbMF0pPj0zJiZCKzE+PjQ8NCYmKEs9eigpLnF1ZXJ5U2VsZWN0b3JBbGwoRFtKWzJdXSgyLDEsMSkpLEM9Sy5sZW5ndGg9PTA/IiI6SFs4XSg0NCxKWzFdKShLW0subGVuZ3RoLTFdKSksOTApKT09QiYmKGVbNDRdKDQsei52KSxSWzE3XSgzOSx6LnYpLGVbNDRdKDMyLHoudiksQz16LkJ6KCkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZighKChCfDcpPj4oKChCLShDPVsiaXNBcnJheSIsImZpbmQiLDBdLDYpPj4zfHwoSz1bbnVsbCwiIiwhMV0sR0QuY2FsbCh0aGlzLHRFLndpZHRoLHRFLmhlaWdodCxUaixVayx6PT09dm9pZCAwP251bGw6CnopLHRoaXMuaj1LW0NbMl1dLHRoaXMuZz1LWzJdLHRoaXMuSD1LWzFdLHRoaXMuQz1LW0NbMl1dLHRoaXMudj1LW0NbMl1dLHRoaXMuRD1uZXcgTWssdGhpcy5YPUtbQ1syXV0pLEIpfDQ4KT09QiYmKHpbd0pdfHwoelt3Sl09e30pLHpbd0pdLnNldmVyaXR5PUspLDMpKSlhOntpZihKIGluc3RhbmNlb2YgSTMpe2I9Si5hVDticmVhayBhfWlmKEFycmF5W0NbMF1dKEopKXtiPWdbMjJdKDUseixKLEspO2JyZWFrIGF9fXJldHVybihCfDcyKT09QiYmKGI9Sy5SW0NbMV1dKGZ1bmN0aW9uKEEsdixwLFEsbil7aWYodj1BLkE9PT0obj1bInYiLCJlcXVhbHMiLCJYIl0seltuWzJdXSkpUT1BLmkscD16W25bMF1dLHY9USBpbnN0YW5jZW9mIEY1JiZwIGluc3RhbmNlb2YgRjU/UVtuWzFdXShwKTpRIGluc3RhbmNlb2Ygek8mJnAgaW5zdGFuY2VvZiB6Tz9RW25bMV1dKHApOiExO3JldHVybiB2fSkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCEoQj4+CigoQisoQis3Pj4zPT0oKEJ8KGY9WyJWZXJpZnkgeW91ciBwaG9uZSIsMiwnPC9kaXY+PGRpdiBjbGFzcz0iJ10sNDgpKT09QiYmKHRoaXMueWE9MCx0aGlzLnYmJnRoaXMudi5jYWxsKHRoaXMuTSkpLGZbMV0pJiYoSj1bJyI+PGRpdiBjbGFzcz0iJywiICIsIiBtaW51dGVzLjwvcD4iXSxOPXouaWRlbnRpZmllcixDPXouSzEsUT16LkwxLEE9ei5jRCx2PUhbNDVdKDQwLEJQKCksTixpbSgpLGNmKCkpLFc9SFs0NV0oNzIsc3QoKSxDLGltKCksdW0oKSksWj1IWzQ1XSgxMix6TSgpLFEsaW0oKSx5UCgpKSxiPUhbNDVdKDgsS2soKSxBLGltKCksY2YoKSksSz0nPGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy0yZmEtYmFja2dyb3VuZCIpK0pbMV0rUlsxMV0oMzksInJjLTJmYS1iYWNrZ3JvdW5kLW92ZXJyaWRlIikrSlswXStSWzExXSg3MywicmMtMmZhLWNvbnRhaW5lciIpK0pbMV0rUlsxMV0oNzMsInJjLTJmYS1jb250YWluZXItb3ZlcnJpZGUiKStKWzBdK1JbMTFdKDksInJjLTJmYS1oZWFkZXIiKSsKSlsxXStSWzExXSgzOSwicmMtMmZhLWhlYWRlci1vdmVycmlkZSIpKyciPicsSz0oYj09PSJwaG9uZSI/SytmWzBdOksrIlZlcmlmeSB5b3VyIGVtYWlsIikrKGZbMl0rUlsxMV0oNzEsInJjLTJmYS1pbnN0cnVjdGlvbnMiKStKWzFdK1JbMTFdKDksInJjLTJmYS1pbnN0cnVjdGlvbnMtb3ZlcnJpZGUiKSsnIj4nKSxiPT09InBob25lIj8ocD0iPHA+VG8gbWFrZSBzdXJlIHRoaXMgaXMgcmVhbGx5IHlvdSwgd2Ugc2VudCBhIHZlcmlmaWNhdGlvbiBjb2RlIHRvIHlvdXIgcGhvbmUgYXQgIitEWzM5XSg5LHYpKyIuPC9wPjxwPkVudGVyIHRoZSBjb2RlIGJlbG93LiBJdCB3aWxsIGV4cGlyZSBpbiAiK0RbMzldKDYsWikrSltmWzFdXSxLKz1wKToobj0iPHA+VG8gbWFrZSBzdXJlIHRoaXMgaXMgcmVhbGx5IHlvdSwgd2Ugc2VudCBhIHZlcmlmaWNhdGlvbiBjb2RlIHRvICIrRFszOV0oMyx2KSsiLjwvcD48cD5FbnRlciB0aGUgY29kZSBiZWxvdy4gSXQgd2lsbCBleHBpcmUgaW4gIitEWzM5XSg0LApaKStKW2ZbMV1dLERbMzldKDEsdiksRFszOV0oOCxaKSxLKz1uKSxLKz1mWzJdK1JbMTFdKDksInJjLTJmYS1yZXNwb25zZS1maWVsZCIpK0pbMV0rUlsxMV0oNzEsInJjLTJmYS1yZXNwb25zZS1maWVsZC1vdmVycmlkZSIpK0pbMV0rKFc/UlsxMV0oMzksInJjLTJmYS1yZXNwb25zZS1maWVsZC1lcnJvciIpK0pbMV0rUlsxMV0oNywicmMtMmZhLXJlc3BvbnNlLWZpZWxkLWVycm9yLW92ZXJyaWRlIik6IiIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLTJmYS1lcnJvci1tZXNzYWdlIikrSlsxXStSWzExXSgzOSwicmMtMmZhLWVycm9yLW1lc3NhZ2Utb3ZlcnJpZGUiKSsnIj4nLFcmJihLKz0iSW5jb3JyZWN0IGNvZGUuIiksSys9ZlsyXStSWzExXSg5LCJyYy0yZmEtc3VibWl0LWJ1dHRvbi1ob2xkZXIiKStKWzFdK1JbMTFdKDcsInJjLTJmYS1zdWJtaXQtYnV0dG9uLWhvbGRlci1vdmVycmlkZSIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oOSwicmMtMmZhLWNhbmNlbC1idXR0b24taG9sZGVyIikrCkpbMV0rUlsxMV0oNzMsInJjLTJmYS1jYW5jZWwtYnV0dG9uLWhvbGRlci1vdmVycmlkZSIpKyciPjwvZGl2PjwvZGl2PjwvZGl2PicseD1URChLKSksZlsxXSkmMTUpPj1CJiZCLTc8PGZbMV08QiYmKEo9bmV3IGhGKDEsITEpLEoucXgoeixLKSx4PUopLGZbMV0pJjExKSl0aHJvdyBFcnJvcigicGxlYXNlIGNvbnN0cnVjdCBtYXBzIGFzIG11dGFibGUgdGhlbiBjYWxsIHRvSW1tdXRhYmxlIik7cmV0dXJuKEIrOCY2MSk8QiYmKEItM3w4KT49QiYmVC5jYWxsKHRoaXMseikseH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoKEI8PDEmOCk8KCh4PVs0NCw3LG51bGxdLEIreFsxXV4xNCk8QiYmKEItMV4xKT49QiYmKGY9ei52PT16LlgpLDgpJiZCKzg+PjQ+PTIpYTp7aWYocD1iW0NdKXtmPXA7YnJlYWsgYX1pZihRPWIuZlgpaWYoWj1RW0NdKXtmPSgobj0oTj0odj1nWzM0XSgyOCx6LFopLHZbS10pLHZbel0uajApLE4pPyhXPVJbeFswXV0oNSxKLApOKSxBPVJbMzVdKDM2LEosWnQsSFsyNF0uYmluZCh4WzJdLDY0KSxOLGtbNDhdLmJpbmQoeFsyXSwyNSkpLnJlLHA9Yi5Gcj9GUyhBLFcpOmZ1bmN0aW9uKEwscixWKXtyZXR1cm4gbihMLHIsVixBLFcpfSk6cD1uLGJbQ109cCk7YnJlYWsgYX19cmV0dXJuIGZ9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQisyPj4oQz1bNTAsNCwxOF0sQ1sxXSk+PTMmJihCXjIzKT4+Q1sxXTwzJiYhWVtDWzJdXSgxMiwwLHopJiZ5WzJdKDMyLHosei5hVFtBJF18MCkpdGhyb3cgRXJyb3IoKTtyZXR1cm4oQl4oKEI+PjEmMTIpPDUmJihCPj4yJjMpPj0xJiYoSj1IWzBdKENbMF0sSyx6LHopKSwxOSkpPj4zfHxULmNhbGwodGhpcyx6LDAsemwuUlQpLEp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEImNTcpPT0oTD1bMTYsMjQsMTNdLEIpKWtbMzRdKExbMV0seixKeixLLEosQzApO3JldHVybihCLTdeKCgoQiY5MSk9PUImJihKPVlbMjVdKDcsSy52KSxmPUhbMjZdKDIxLAp6LDMxLEsudixKLCEwKSksQi03JjcpfHwocD1bIjovLyIsMCwidmFsdWUiXSxKPVtdLFc9T1s0NF0oOSxwWzBdLHBbMV0sKEE9Snl8fEdsKT09bnVsbD92b2lkIDA6QS5sb2NhdGlvbi5ocmVmKSwoQz1HbFtDa118fEdsW2JjXXx8R2xbQXldfHxHbFt2UF18fEdsW1RNXSk/Sz0hMDoodHlwZW9mIGRvY3VtZW50IT09InVuZGVmaW5lZCImJihaPW5ldyBqZChkb2N1bWVudCksQz1aLmdldChwayl8fFouZ2V0KFFRKXx8Wi5nZXQobmspfHxaLmdldChaUSkpLEs9ISFDKSxLJiYodj0obj1XLmluZGV4T2YoV1AoKSk9PXBbMV18fFcuaW5kZXhPZihnMygpKT09cFsxXXx8Vy5pbmRleE9mKE5MKCkpPT1wWzFdfHxXLmluZGV4T2YoT3QoKSk9PXBbMV0pP0dsW0NrXTpHbFtiY10sdnx8dHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCJ8fChRPW5ldyBqZChkb2N1bWVudCksdj1RLmdldChuP3BrOlFRKXx8US5nZXQobmspKSwoTj12P0RbNl0oTFsyXSxwWzJdLHBbMF0seix2LG4/eHA6RFEpOm51bGwpJiYKSi5wdXNoKE4pLG4mJigoeD1lW0xbMF1dKDIzLHBbMF0scFsyXSxaUSxmayx2UCx6KSkmJkoucHVzaCh4KSwoYj1lW0xbMF1dKDE5LHBbMF0scFsyXSxuayxvWSxBeSx6KSkmJkoucHVzaChiKSkpLGY9Si5sZW5ndGg9PXBbMV0/bnVsbDpKLmpvaW4obzkoKSkpLDMwKSk8QiYmKEItOV4xOSk+PUImJihDPXt9LEouZm9yRWFjaChmdW5jdGlvbihyKXtDW3Jbel1dPXJbS119KSxmPWZ1bmN0aW9uKHIpe3JldHVybiBDW3IuZmluZChmdW5jdGlvbihWKXtyZXR1cm4gViBpbiBDfSldfHwiIn0pLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQi05JjExKT09KChCfChwPVszLDEsInRvU3RyaW5nIl0sOCkpPj40fHwodj1KLk8uYWRkKFN0cmluZyhLKSxDLHosYixBKSksMikpYTp7aWYoIShiPUxrW3BbMl1dKCksYikpe3Y9SzticmVhayBhfXY9eVszM10oNjQsKEE9Yj9TdHJpbmcoYikudG9VcHBlckNhc2UoKTpudWxsLHopLEssQyxmdW5jdGlvbihRKXtyZXR1cm4oIUF8fFEubm9kZU5hbWU9PQpBKSYmSn0pfXJldHVybihCPj4oKEJeNTYpPj5wWzBdPT1wWzFdJiZ6JiYodGhpcy5pNz16KSwyKSYxNik8cFsxXSYmKChCfDgpJjcpPj02JiYodGhpcy52PW5ldyBSWShiLEsseixDLEopKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCPj4oKChCPj4oKEE9WyJHSiIsMTEsMTBdLChCXjU0KTwxMikmJihCPj4yJjE0KT49NSYmKHY9a1sxNV0oQVsyXSw0LHRoaXMudikpLDEpJjE1KT09MSYmKEM9bmV3IEsuY29uc3RydWN0b3IoeiksSiYmKEMudj1jTCksQy5NPWNMLHY9QyksKEJ8NDApPT1CKSYmKHY9ISEoSy5SdSZ6KSYmISEoS1tBWzBdXSZ6KSksMikmQVsxXSk9PTEmJihiPUMuc3R5bGUsIm9wYWNpdHkiaW4gYj9iLm9wYWNpdHk9SjoiTW96T3BhY2l0eSJpbiBiP2IuTW96T3BhY2l0eT1KOiJmaWx0ZXIiaW4gYiYmKGIuZmlsdGVyPUo9PT0iIj8iIjoiYWxwaGEob3BhY2l0eT0iK051bWJlcihKKSpLK3opKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCwKUSl7aWYoKChCPj4oUT1bMCwyNCwidiJdLDIpPj0xNyYmQj4+MjxRWzFdJiYoSy5sPUo/a1sxMl0oMjMseik6eixwPUspLEJeMjEpJjUpPj0zJiZCKzk+PjU8MSl7aWYoKChiPVszLG51bGwsIiJdLHIzKCksaylbMjVdKDM5LGJbMV0sSyksSy5NKT09YltRWzBdXSl7aWYoKHY9IShKPSgoKChBPShDPUsuWGcrKyx5WzE1XSg0MCxLLmopKSxtKVs5XSg5LEEseUUoKSxLLlMpLG0pWzldKDExLEEscWgoKSxDKSxtWzldKDIxLEEsbTIoKSxWUSgpKSxIKVszMl0oMzYsQSxLKSxuZXcgJHkoQyxLLEsuQSx2b2lkIDApKSxKLmc9MixKLkM9ZVs0OV0oMSx5WzE1XSgzMixBKSksMSksR2wubmF2aWdhdG9yKSYmR2wubmF2aWdhdG9yLnNlbmRCZWFjb24pdHJ5e3Y9R2wubmF2aWdhdG9yLnNlbmRCZWFjb24oSi5DLnRvU3RyaW5nKCksYlsyXSl9Y2F0Y2gobil7fSgoIXYmJkdsLkltYWdlJiYoKG5ldyBJbWFnZSkuc3JjPUouQyx2PSEwKSx2KXx8KEpbUVsyXV09eVszNV0oNixKLmkseiksSltRWzJdXS5zZW5kKEouQykpLApKLlA9RGF0ZS5ub3coKSxlKVszNF0oMixKKX1PW1FbMV1dKDEsYlsxXSxRWzBdLEspfXJldHVybihCXjc5KSYoKEIrKChCPj4yJjE1KT49OSYmKEItMyZRWzFdKTw1JiYoSy5NPUMsSy5YPXosSy5pPSFKLHlbM10oMSwyLFFbMF0sSykpLDIpJjYwKT49QiYmKEItNnwyNyk8QiYmR0QuY2FsbCh0aGlzLEdNLndpZHRoLEdNLmhlaWdodCxoZSksNyl8fChKPVtIUCxlZF0scD0oSz1BcnJheS5mcm9tKFBQKCRwKSkuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gSi5pbmNsdWRlcyhuLmF1dG9jb21wbGV0ZSkmJm4udHlwZSE9cUwmJm4udmFsdWV9KSk9PXo/dm9pZCAwOksudmFsdWUpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYpe2lmKCgoVj1bODE5MiwxLCJhcHBseSJdLEIpLTUmMTUpPT0yKXtmb3IoTj0oQT0oZj0oUT1bMTUsKChXPShMPXomMzI3NjcsMCksSik+dGhpcy5sZW5ndGgmJihKPXRoaXMubGVuZ3RoKSwxMDczNzQxODIzKSwzMF0sMCksCno+Pj5RWzBdKSxLKTtmPEo7ZisrKUM9dGhpcy5IMShmKSxaPUMmMzI3Njcsdj1DPj4+UVswXSx4PXhpKFosQSksYj14aSh2LEwpLG49eGkodixBKSxwPU4reGkoWixMKStXLFc9cD4+PlFbMl0scCY9UVtWWzFdXSxOPW4rKHg+Pj5RWzBdKSsoYj4+PlFbMF0pLHArPSgoeCYzMjc2Nyk8PFFbMF0pKygoYiYzMjc2Nyk8PFFbMF0pLFcrPXA+Pj5RWzJdLHRoaXMucXgoZixwJlFbVlsxXV0pO2lmKFchPT0wfHxOIT09MCl0aHJvdyBFcnJvcigiaW1wbGVtZW50YXRpb24gYnVnIik7fWlmKCEoQj4+VlsxXSYyMykpZm9yKEM9Sy5zcGxpdChlQygpKSxKPUdsO0MubGVuZ3RoJiYoYj1DLnNoaWZ0KCkpOylDLmxlbmd0aHx8ej09PXZvaWQgMD9KW2JdJiZKW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXT9KPUpbYl06Sj1KW2JdPXt9OkpbYl09ejtpZihCPDwoQis4JjEyfHwocj1SWzE3XSg3LHRoaXMudikpLFYpWzFdPj0yNCYmKEJeMjcpPDI3KWE6e2lmKEM9PUspe3I9bmV3IEo7YnJlYWsgYX1pZihiPQpDLCFBcnJheS5pc0FycmF5KGIpKXRocm93IEVycm9yKCk7aWYoUFUoYil8fE9iamVjdC5pc1NlYWxlZChiKXx8IWljKGIpKXRocm93IEVycm9yKCk7cj1uZXcgSihIWzRdKDU3LHosKEM9YixDKSkpfWlmKCgoQl41NykmOSk9PVZbMV0pe2lmKEsubGVuZ3RoPD1WWzBdKUM9U3RyaW5nLmZyb21DaGFyQ29kZVtWWzJdXSh6LEspO2Vsc2V7Zm9yKEo9MCxiPSIiO0o8Sy5sZW5ndGg7Sis9VlswXSliKz1TdHJpbmcuZnJvbUNoYXJDb2RlW1ZbMl1dKHosQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoSyxKLEorVlswXSkpO0M9Yn1yPUN9cmV0dXJuIHJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKCgoQiYoKCh2PVszMCw1MCwyXSxCKV52WzBdKT4+NHx8VC5jYWxsKHRoaXMseiksMTIzKSk9PUImJihDPXoudmlzaWJsZSxKPXoudXk9PT12b2lkIDA/bnVsbDp6LnV5LEs9ei5yZXNpemU9PT12b2lkIDA/bnVsbDp6LnJlc2l6ZSxiPXouUk49PT12b2lkIDA/ITE6ei5STix0aGlzLnZpc2libGU9CkMsdGhpcy51eT1KLHRoaXMucmVzaXplPUssdGhpcy5STj1iKSxCKXx2WzJdKT4+NHx8KEE9UlsyNV0odlsxXSx6LEssQyx5USxKLGwpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7cmV0dXJuKHg9WzksNDcsMzddLEIteFswXV4xMCk8QiYmKEIrNCY0Nik+PUImJnouWC5wdXNoKFlbMl0oODAsZnVuY3Rpb24oZixMKXtyZXR1cm4hIWZ8fCEhTH0seiksei5rOSx6LmlQLHoucHosei5IZCksKEImMTIyKT09QiYmKHY9WzEsMzQxLDQzOF0sSj1KPT09dm9pZCAwP251bGw6SixXPXlbMzZdKDU1LDIxLEssT1syNV0oNSx6KSksQT1PW3hbMl1dKDUzLEssT1syNV0oMyxLKSxPWzI1XSg3LHZbMV0pKSxaPVlbMTVdKDY1LEssT1syNV0oMSxLKSxPWzI1XSgzLHZbMl0pKSxwPU9bMjVdKDcsMjc4KSxiPVJbMTNdKDQ2LEhbMjVdKDU4LE9beFswXV0oMjUsMzYpLEspLFtnWzE2XSg5NCxwKSxPWzI1XSgxLEspXSksUT1bVyxBLFosYl0sSiE9bnVsbCYmKG49Z1s3XSh4WzJdKSwKQz1nWzddKDM5KSxRPVtZWzBdKDI0LG4sT1syNV0oeFswXSx6KSxPWzI1XSh4WzBdLDApKV0uY29uY2F0KFEsW1lbMF0oMjgsQyx2WzBdLHZbMF0pLG4sbVsxMl0oeFsxXSxLLEopLENdKSksTj1RKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEImNjApPT0oYj1bODYsOCw0NF0sQikmJihKPW5ldyBtcCxBPUhbYlsyXV0oYlswXSxKLHpsLHosSyxsKSksQis2JjMpPj0xJiYoQnxiWzFdKTwxNSlPWzJdKDQwLGZ1bmN0aW9uKCl7Si5XLnRoZW4oZnVuY3Rpb24odixwLFEsbixaKXsobj1bbnVsbCwyLChaPVsiSmUiLCJSdyIsMF0sMCldLCgoUT1KLnYpPT1uW1pbMl1dP3ZvaWQgMDpRW1pbMF1dKSE9bltaWzJdXSkmJigocD1KLnYpPT1uW1pbMl1dP3ZvaWQgMDpwW1pbMV1dKSE9bltaWzJdXSYmRGF0ZS5ub3coKT49Si52W1pbMV1dKzI0RTQ/KE9bNDBdKDI5LEssMSx6LG5bWlsyXV0sdi5rWixKLnZbWlswXV0sSi52LmpGKS5jYXRjaChmdW5jdGlvbigpe30pLEoudltaWzFdXT0KRGF0ZS5ub3coKSxnWzQ5XSgzLG5bMl0sblsxXSxKKSk6Si5PPSExfSl9LGdbMTRdKDE2LG51bGwseixEYXRlLm5vdygpLChDPUoudik9PW51bGw/dm9pZCAwOkMuUncpKTtyZXR1cm4gQX1dfSgpLGU9ZnVuY3Rpb24oKXtyZXR1cm5bZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7cmV0dXJuKChaPVs0NywxLDBdLEItNSY3KXx8KG49WyJlbiIsITEsMl0sZGsuSigpLmluaXQoeVtaWzJdXSgxMiwzLHopKSxZWzQ0XSgyNCxmdW5jdGlvbihOLHgsZil7KHguaz0oZj1bMCwiWCIsOF0sRClbZlsyXV0oZlsyXSx5W2ZbMF1dKGZbMl0sMyx6KSksSiYmSltmWzFdXS52YWx1ZSkmJih4LnQ9SltmWzFdXS52YWx1ZSl9KSxiPU9bNV0oMjcsWlsxXSxnWzE5XSgxNyw2LHopKSxiPT0zP0o9bmV3IFlwKFlbMzJdKDE2LG5bMl0sZ1sxOV0oMzMsNix6KSksRFszNV0oMiwzLGdbMTldKDI1LDYseikpLFlbMTldKDUsMTkseil8fG5bWlsxXV0sWVsxOV0oNCwyMCx6KXx8bltaWzFdXSx5WzEwXSgyNSwKMzEseVtaWzJdXSgxNiwzLHopKXx8bltaWzFdXSxZWzIyXSg1OCwzNCx5W1pbMl1dKDgsMyx6KSl8fG5bWlsxXV0pOko9bmV3IGNQKFlbMzJdKDE3LG5bMl0sZ1sxOV0oNDAsNix6KSksYixZWzE5XSg0LDE5LHopfHxuW1pbMV1dLFlbMTldKDQsMjAseil8fG5bWlsxXV0seVsxMF0oMjQsMzEseVtaWzJdXSgyOCwzLHopKXx8bltaWzFdXSxZWzIyXSg1NywzNCx5W1pbMl1dKDMyLDMseikpfHxuW1pbMV1dKSxKLnJlbmRlcihHWzE1XSgzNikpLEM9bmV3IHE1KEhbMjFdKFpbMF0seiwyNyxsKSxIWzIxXSgxNSx6LDI4LGwpfHwxRTQpLHY9bmV3IHlBLFJbNDhdKDc0LHosU2QsWlsxXSxsKSYmKHYuc2V0KFJbNDhdKDcxLHosU2QsWlsxXSxsKSksdi5sb2FkKCkpLEE9bmV3IG1FKEMseix2KSxwPW51bGwsQS5sJiYocD1nWzMwXSgxOSkpLEs9WVsyN10oOCxrW1pbMF1dKDksbGMpKSxtW1pbMF1dKDU0LEssaHEsbltaWzJdXSksbVtaWzBdXSgyMixLLGRPLCJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiKSwKUT1lWzI5XSg2LGVbNDZdKDE2LEsudG9TdHJpbmcoKSkpLHRoaXMudj1uZXcgRXQoSixBLFEscCkpLChCKzUmNyk9PVpbMV0pJiYocFEuY2FsbCh0aGlzKSx0aGlzLk09e30sdGhpcy52PXt9KSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCgoQl43OSkmMTEpPT0obj1bOSw0OSw0XSwzKSYmKFE9ei5jbGFzc0xpc3Q/ei5jbGFzc0xpc3Q6eVsyMl0oblsyXSwiIiwic3RyaW5nIix6KS5tYXRjaCgvXFMrL2cpfHxbXSksKEJ8MjQpPT1CKXtpZigoKHY9WyJodHRwIiwhMSwiRXJyb3IgY29kZSAiXSxKLkEpLmluZm8odlsyXStLKSxLKT09MilwPVJ4KEoudmwsSiksQz1KLnlBLEE9IUMsYj1uZXcgeTYoQ3x8Ii8vd3d3Lmdvb2dsZS5jb20vaW1hZ2VzL2NsZWFyZG90LmdpZiIpLEdsLmxvY2F0aW9uJiZHbC5sb2NhdGlvbi5wcm90b2NvbD09dlswXXx8WVszMV0oMTQsITAsYixYbigpKSxlW25bMV1dKDUsYiksQT9IWzQ4XSg2NCwhMCx2WzFdLGIudG9TdHJpbmcoKSxwKToKWVsyOF0oMSwhMCx2WzFdLGIudG9TdHJpbmcoKSxwKTtlbHNlIEhbNDZdKDIsMik7Si5NPXosSi5SJiZKLlIucVooSyksT1syNF0oMixudWxsLDAsSiksa1syNV0oNDAsbnVsbCxKKX1yZXR1cm4oQnw4MCk9PSgoQisoQi1uWzJdPDwxPj1CJiYoQi1uWzJdfDI3KTxCJiYoUT1LLmxlbmd0aD09PTA/SFs0N10uYmluZChudWxsLDE2KTpLLmxlbmd0aD09PTE/S1t6XTpmdW5jdGlvbihaKXtyZXR1cm4gSy5yZWR1Y2UoZnVuY3Rpb24oVyxOKXtyZXR1cm4gTihXKX0sWil9KSwzKV4zMCk+PUImJkItblswXTw8MjxCJiZULmNhbGwodGhpcyx6KSxCKSYmKEs9ZnVuY3Rpb24oWil7cmV0dXJuIHouY2FsbChLLnNyYyxLLmxpc3RlbmVyLFopfSx6PXVjLFE9SyksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEJ8KCgoKChCXigoQT1bIlIiLDAsMjNdLChCXkFbMl0pPDEyJiYoQjw8MSYyNyk+PTUmJnouRikmJnouRi5mb3JFYWNoKEssdm9pZCAwKSwzOSkpPj40fHwoYj1SWzQ3XSg5NywKSFs0XSg5NSx6LEosSyxDKSkpLEIpJjkwKT09QiYmKHRoaXMuQT1bXSx0aGlzLm09eixKPVswLCExLG51bGxdLHRoaXMuQz1LfHxKWzJdLHRoaXNbQVswXV09SltBWzFdXSx0aGlzLm89SlsxXSx0aGlzLmw9SltBWzFdXSx0aGlzLkY9SlsxXSx0aGlzLnY9SlsyXSx0aGlzLk09dm9pZCAwLHRoaXMuaT1KWzFdLHRoaXMuTz1KWzFdLHRoaXMuWD1KWzFdKSwoQi0yfDc3KT49QikmJkItNDw8MTxCJiYodGhpcy5sZWZ0PUMsdGhpcy50b3A9eix0aGlzLndpZHRoPUssdGhpcy5oZWlnaHQ9SiksNDApKT09QiYmKHRoaXMuVWQ9Qyx0aGlzLnVjPUosdGhpcy5PST1LLHRoaXMuVlg9eiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEImKCgoKEJ8KEE9WzM2LCJjYWxsIiwxM10sMzIpKT09QiYmKEM9Si50eXBlLEMgaW4gSy52JiZtWzI2XSg1OSx6LEsudltDXSxKKSYmKE9bMTBdKDUsITAsSiksSy52W0NdLmxlbmd0aD09eiYmKGRlbGV0ZSBLLnZbQ10sSy5NLS0pKSksQikmQVsyXSk9PQpCJiYoYj1tW0FbMF1dKDQzLGZ1bmN0aW9uKHYpe3JldHVybiB2IGluc3RhbmNlb2Ygen0pKSwyMikpPT1CKVRbQVsxXV0odGhpcyx6KTtyZXR1cm4gYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCJigoQnw0OCk9PSgoQiszJihCPj4yPChCLShwPVsiSCIsNywidiJdLDkpPj4zPT0yJiYodj1LLmhhc0F0dHJpYnV0ZShJYygpKSYmUlszM10oMTgseixLKSksMzIpJiYoQi05JjE1KT49MTMmJihDPVswLG51bGwsIm4iXSx3RS5jYWxsKHRoaXMpLHRoaXMuTz1DWzBdLHRoaXNbcFsyXV09eix0aGlzLkE9Q1sxXSx0aGlzLmk9Q1sxXSx0aGlzLkY9Six0aGlzLlg9QmYsdGhpcy5sPUNbMF0sdGhpcy5NPUssUlszM10oMywhMSwibSIsImsiLENbMl0sdGhpcykpLDEzKSk9PTQmJihKPXosdj1mdW5jdGlvbigpe3JldHVybiBKPEsubGVuZ3RoP3tkb25lOiExLHZhbHVlOktbSisrXX06e2RvbmU6ITB9fSksQikmJihLJiYoSz1nMFswXSg0NCwiZ29vZy5Qcm9taXNlLnRoZW4iLApLKSksQyYmKEM9ZzBbMF0oMjgsImdvb2cuUHJvbWlzZS50aGVuIixDKSksQT1HWzhdKHBbMV0seix6LHopLEFbcFsyXV09bmV3IElwKGZ1bmN0aW9uKFEsbil7QS5NPShBLmk9Sz9mdW5jdGlvbihaLFcpe3RyeXtXPUsuY2FsbChiLFopLFEoVyl9Y2F0Y2goTil7bihOKX19OlEsQyk/ZnVuY3Rpb24oWixXKXt0cnl7Vz1DLmNhbGwoYixaKSxXPT09dm9pZCAwJiZaIGluc3RhbmNlb2Yga1U/bihaKTpRKFcpfWNhdGNoKE4pe24oTil9fTpufSksQVtwWzJdXS5YPUoseVsxOV0oMjMsMiwzLEEsSiksdj1BW3BbMl1dKSwyOSkpPT1CJiYocFEuY2FsbCh0aGlzKSx0aGlzW3BbMF1dPXosdGhpcy5XPXt9KSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCl7aWYoKEI+PjImKGg9WzMsMSwyNF0sMTMpKT09aFsxXSl7aWYoSFtKPShLPUs9PT12b2lkIDA/e306SyxKKT09PXZvaWQgMD8hMDpKLDQ0XSg5LHopJiZ6Lm5vZGVUeXBlPT0KaFsxXXx8IUhbNDRdKGhbMV0seil8fChLPXosej1HWzI1XSg3LHNpLGRvY3VtZW50KSxHWzE1XSg0MykuYXBwZW5kQ2hpbGQoeiksS1t3ci5nZXROYW1lKCldPUx3KSxwPWVbMzVdKDg4LG51bGwseiksIXApdGhyb3cgRXJyb3IoYVkoKSk7aWYoIUtbdT1DfHxuZXcgTWssckYuZ2V0TmFtZSgpXSYmd2luZG93W2kzXVtoeSgpXSYmd2luZG93W2kzXVtoeSgpXS5sZW5ndGg+MCYmKEtbckYuZ2V0TmFtZSgpXT13aW5kb3dbaTNdW2h5KCldWzBdKSxKPyhRPXAsTj1RLmdldEF0dHJpYnV0ZShzayksdj1RLmdldEF0dHJpYnV0ZShkMyksVz1RLmdldEF0dHJpYnV0ZShrcCkseD1RLmdldEF0dHJpYnV0ZSh0eSksVj1RLmdldEF0dHJpYnV0ZShVdCksQT1RLmdldEF0dHJpYnV0ZShNTCkscT1RLmdldEF0dHJpYnV0ZSh3MyksYz1RLmdldEF0dHJpYnV0ZShJWSksYj1RLmdldEF0dHJpYnV0ZShGbiksTD1RLmdldEF0dHJpYnV0ZShCbiksbj1RLmdldEF0dHJpYnV0ZShzdiksZj1RLmdldEF0dHJpYnV0ZSh6VCksCmQ9e3NpdGVrZXk6Tix0eXBlOnYsdGhlbWU6VyxzaXplOngsdGFiaW5kZXg6VixiaW5kOkEscHJlbG9hZDpxLGJhZGdlOmMsczpiLHBvb2w6TCwiY29udGVudC1iaW5kaW5nIjpuLGFjdGlvbjpmfSwoUD1RLmdldEF0dHJpYnV0ZShLcykpJiYoZFtKVSgpXT1QKSwocj1RLmdldEF0dHJpYnV0ZShDcykpJiYoZFtiMCgpXT1yKSwoWD1RLmdldEF0dHJpYnV0ZShBVSkpJiYoZFt2bigpXT1YKSwoYT1RLmdldEF0dHJpYnV0ZShUVCkpJiYoZFtqMCgpXT1hLnRvTG93ZXJDYXNlKCk9PT0iZmFsc2UiPyExOiEhYSksRT1kLEsmJkQ2KEUsSykpOkU9SyxSWzVdKDMzLHApKXRocm93IEVycm9yKHBzKCkpO2lmKHAudGFnTmFtZT09d1B8fHAudGFnTmFtZT09ZDUmJihwLnR5cGU9PVFofHxwLnR5cGU9PW5zKSlFW2NILmdldE5hbWUoKV09cCxaPUdbMjVdKDcwLHNpLGRvY3VtZW50KSxwLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKFoscCkscD1aO2lmKFlbaFsxXV0oNTMsaFsxXSxwKS5sZW5ndGghPT0KMCl0aHJvdyBFcnJvcihaMSgpKTtpZighRXx8IUhbNDRdKDgsRSkpdGhyb3cgRXJyb3IoV24oKSk7Uz1uZXcgZzkoRSxwLHUpLHdpbmRvd1tpM11bU04oKV1bUy5pZF09Uyx0PVMuaWR9aWYoKEImNDUpPT1CKXtpZihiPXRoaXMudj0oUT0odGhpcy5GPShXaC5jYWxsKHRoaXMseiwodj1bIiIsMSwyOV0sSikpLFIpWzI2XSgxNSxLLDQsbCksdGhpcy5YPSEhWVsxOV0oNjgsMTAsSyksZylbMTldKGhbMl0sNixLKSxnWzE2XSg4OCx2b2lkIDAsUSx2W2hbMV1dKT09aFswXSYmIXRoaXMuWCkpcD15WzBdKGhbMl0saFswXSxLKSxiPSFZWzE5XSg2OCwxOCxwKTt0aGlzLm89KHRoaXMuaj0odGhpcy5DPSh0aGlzLmc9KHRoaXMuVT0oKFo9KHRoaXMuSz0oKHRoaXMuUz0oQz0odGhpcy5PPSh0aGlzLkQ9KG49KCh0aGlzLlI9ISFZWzE5XSgodGhpcy5BPWIsNjkpLDE0LEspLHRoaXMpLmw9ISFZWzE5XSg1LDE1LEspLEgpWzRdKDkzLDExLEssbCx2b2lkIDAsa1s0Nl0uYmluZChudWxsLDI4KSksCmVbMjZdKDE2LG51bGwsbikpfHw4NjQwMCxSKVsyNl0oMjIsSywxMyxsKSxlKVsyNl0oaFsxXSxudWxsLEhbNF0oOTAsMTgsSyxsLFFCLGtbNDZdLmJpbmQobnVsbCwyOSkpKSkhPW51bGw/QzowLHRoaXMpLlc9KEE9ZVsyNl0oMTcsbnVsbCxIWzRdKDk0LDMxLEssbCxRQixrWzQ2XS5iaW5kKG51bGwsMjApKSkpIT1udWxsP0E6MCx5WzEyXSg4LDAsMjEsSyxrW2hbMF1dKDEzLE52KSxsKSksUls0OF0oNzUsSyxTZCx2W2hbMV1dLGwpKSk9PW51bGw/dm9pZCAwOlJbMjZdKDIwLFosNCxsKSl8fHZbMF0sdGhpcy5IPXlbMTJdKDE2LDAsMjMsSyxrW2hbMF1dKDExLE52KSxsKSxSWzI2XSgxNSxLLGhbMl0sbCl8fHZbMF0pLEhbMjFdKDQ3LEssMjcsbCkpfHwwLEhbMTJdKDIxLEssdlsyXSxPdixrW2hbMF1dKDYpLGwpKSxSWzI2XSgxNSxLLDMwLGwpfHx2WzBdKX1pZigoQi03Pj40fHwoSz1nMFswXSgxMiwiZ29vZy5hc3luYy5ydW4iLEspLEdafHxZWzJdKDgpLGdrfHwoR1ooKSxnaz16KSwKWmkuYWRkKEssSikpLEJ8NDgpPT1CKWE6e2lmKCEodj0oKFE9KHA9dm9pZCAwLFsxNiwiYmlnaW50Iiwic3RyaW5nIl0pLHAhPW51bGwpfHwocD0xMDI0KSxwIT09MCksdikmJiFnZCl7dD1iO2JyZWFrIGF9aWYoIVlbMzddKDIsYix2KSl0aHJvdyBlWzZdKDUyLHg0KCkpO0E9dHlwZW9mIGI7c3dpdGNoKHApe2Nhc2UgSjpzd2l0Y2goQSl7Y2FzZSBRWzJdOnQ9bVsxMl0oNixRWzBdLCEwLGIpO2JyZWFrIGE7Y2FzZSBRW2hbMV1dOnQ9U3RyaW5nKEt3KEMsYikpO2JyZWFrIGE7ZGVmYXVsdDp0PXlbMl0oaFsxXSwhMCw4LGIpO2JyZWFrIGF9Y2FzZSAxMDI0OnN3aXRjaChBKXtjYXNlIFFbMl06dD1ZWzIyXSgzNCxLLFFbMF0sYik7YnJlYWsgYTtjYXNlIFFbaFsxXV06dD1HWzMxXSg5MixLdyhDLGIpKTticmVhayBhO2RlZmF1bHQ6dD1ZWzI5XSgxNSwhMCw4LGIpO2JyZWFrIGF9Y2FzZSBLOnN3aXRjaChBKXtjYXNlIFFbMl06dD1tWzEyXSg0LFFbMF0sITEsYik7YnJlYWsgYTtjYXNlIFFbaFsxXV06dD0KR1szMV0oODQsS3coQyxiKSk7YnJlYWsgYTtkZWZhdWx0OnQ9SFs0NF0oNzIsSyxiLCExKTticmVhayBhfWRlZmF1bHQ6dD15WzI3XSg1LHoscCk7YnJlYWsgYX19cmV0dXJuIHR9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybigoKChCXjUyKSYxNSk+PShCKyhBPVs0OCw0OSwyXSw1KT4+MT49QiYmKEItNnw4Myk8QiYmKEo9bmV3IEJOLGI9a1s2XSgxLHosSixLKSksNykmJkI+PjE8MTcmJihiPWVbQVsyXV0oMzQseix2b2lkIDAsSykpLCgoQl41OCkmOCk8QVsyXSYmKEI8PEFbMl0mMTUpPj1BWzJdJiYoSj1SWzhdKDU4LHRoaXMpLHo9dGhpcy54SixDPU9bQVswXV0oOTYsdGhpcyksSz1nMFswXShBWzFdLCJbIixDLCIiKSx6W0pdPUspLEJ8ODApPT1CJiYoYj1OdShKKT9HWzMxXSg4NixZWzQ2XSg0LDAsSix6KSk6R1szMV0oOTAsUlsxOF0oMTUsSyxKLHopKSksKEI8PDEmMTYpPDYpJiYoQj4+MSYxMSk+PTEwJiYoSz1FcnJvcih6KSxnWzM4XShBWzBdLEssIndhcm5pbmciKSwKeVsxNl0oMTAsSyksYj1LKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQnwoQi02Pj0oKChCLShiPVsyOCw5LDI0XSw1KT4+NHx8KHRoaXMuajA9Syx0aGlzLlU5PXosQz1EWzE1XShiWzBdLEQxKSx0aGlzLnY9ISFDJiZKPT09Q3x8ITEpLEIpK2JbMV1eMTMpPj1CJiYoQi04XmJbMl0pPEImJihBPUhbMjVdKDU3LE9bYlsxXV0oMjYsYlswXSkseikpLDEwKSYmKChCXjYzKSY4KTwxJiYoQT1TdHJpbmcoeikucmVwbGFjZShmcyxnWzI3XS5iaW5kKG51bGwsMjcpKSksNykpPDQyJiZCK2JbMV0+PTIyJiZULmNhbGwodGhpcyx6KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoYj1bNCw1NywibyJdLChCXjMwKT4+Mz49MSkmJihCPDwyJmJbMF0pPDEpe2lmKEpbYlsyXV0hPXopdGhyb3cgRXJyb3IoIldhdGNoRG9nIHRpbWVyIG5vdCBudWxsIik7SltiWzJdXT1nWzBdKGJbMV0sUngoSi5BTCxKKSxLKX1pZigoKEJeNDUpJjcpPT0yKWE6e2lmKEs9PXp8fEs9PSIiKXtBPQpuZXcgSjticmVhayBhfWlmKCEoQz1vQyhLKSxBcnJheSkuaXNBcnJheShDKSl0aHJvdyBFcnJvcihMcygpKTtBPW5ldyBKKEhbYlswXV0oNTgsMzIsQykpfXJldHVybihCfDIpPj5iWzBdPj0wJiYoQnw1KTwxNSYmTEQuY2FsbCh0aGlzLDEzMTMsMjUpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuKEI8PCgoKEIrKG49WzExLCIiLDFdLDkpJjE1KT09MiYmTEQuY2FsbCh0aGlzLDI5MSwyOCksKEI8PG5bMl0mMTUpPj0zKSYmKEItMyYxMik8MiYmKEM9Qz09PXZvaWQgMD9NNTpDLG1bMjZdKDgsMCx6LERPLmdldChLKSxKLEMpKSwyKSYxNXx8KFJDPXopLChCXjI4KSYxMyk+PTEwJiZCPj4yPDIzJiYoQT1iPT0yLHY9ZVtuWzBdXSgzNSxuWzFdLCEwLEMsSz9BP3I5Oko/Vmg6R1Q6QT9IbjpKP2UwOlBuKSxwPWVbMzFdKG5bMF0sInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXIiLEMpLGtbMl0oblswXSxZWzIzXSg1MixDKSx2LCQ0LFJ4KGZ1bmN0aW9uKCl7WVszOF0oNCwKcCx6KX0sQykpLGtbMl0oMzEsWVsyM10oNDksQyksdixxdixSeChmdW5jdGlvbigpe0smJllbMzhdKDUscCwhMCl9LEMpKSxRPXYpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oQj4+MiYodj1bOCwxLDMwXSw3KXx8KEM9Qz09PXZvaWQgMD8hMTpDLHA9KEE9T1sxNF0oMTUseixIWzRdKDkxLEssSixiKSkpIT16P0E6QyksQjw8dlsxXTwxNyYmQjw8dlsxXT49dlswXSYmSy5ELmxlbmd0aCYmIUsuQikmJihLLkI9ITAsZ1szXSg1OSxLLHopKSwoQit2WzFdXnZbMl0pPEImJihCLXZbMV18OSk+PUImJihwPXouY2xhc3NMaXN0P3ouY2xhc3NMaXN0LmNvbnRhaW5zKEspOllbdlswXV0oMTYsZVt2WzFdXSg0MCx6KSxLKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCPj4xJigoKChwPVsidGltZSIsMCw3XSxCPDwyJjE1fHwodj0oej1IWzhdKDQwLDU3ODIpKGkwKyIiLHloKSk/a1szNV0oNDQsei5yZXBsYWNlKC9ccy9nLCIiKSk6eiksQi05KSYKMTUpPj1wWzFdJiZCKzg+PjQ8MiYmKEdbMTBdKDkzLFk0LEspfHxHWzEwXSg4NSxjbixLKT9iPVN0cmluZyhLKS5yZXBsYWNlKGZzLGdbMjddLmJpbmQobnVsbCwyOCkpOihLIGluc3RhbmNlb2YgeGs/Sj1lW3BbMl1dKDQyLG1bNDRdKDgseixLKSk6KEsgaW5zdGFuY2VvZiBIbD9DPWVbcFsyXV0oNDAsWVszMV0oMTksSykudG9TdHJpbmcoKSk6KEE9U3RyaW5nKEspLEM9UzAudGVzdChBKT9BLnJlcGxhY2UoZnMsZ1syN10uYmluZChudWxsLDI5KSk6bXEoKSksSj1DKSxiPUopLHY9YiksKEJ8OCk9PUIpJiYodj1TdHJpbmcoeikucmVwbGFjZSgvXC0oW2Etel0pL2csZnVuY3Rpb24oUSxuKXtyZXR1cm4gbi50b1VwcGVyQ2FzZSgpfSkpLDEzKSk9PTEmJihiPW5ldyBsMChlWzMxXSg5LEMudixKKSxDLnNpemUsQy5ib3gsQ1twWzBdXSx2b2lkIDAsITApLE9bMjJdKDE0LEssYixFdixSeChmdW5jdGlvbihRLG4pe3R5cGVvZihRPXRoaXMuQS5zdHlsZSxuPVsiYmFja2dyb3VuZFBvc2l0aW9uWSIsCiJiYWNrZ3JvdW5kUG9zaXRpb25YIiwiYmFja2dyb3VuZFBvc2l0aW9uIl0sUVtuWzJdXT16LFEpW25bMV1dIT0idW5kZWZpbmVkIiYmKFFbblsxXV09eixRW25bMF1dPXopfSxiKSksdj1iKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZihaPVsiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiaGFzIiw0Ml0sKEImNzgpPT1CKWE6dHJ5e1c9eltaWzBdXSgpO2JyZWFrIGF9Y2F0Y2goTil7Vz17bGVmdDowLHRvcDowLHJpZ2h0OjAsYm90dG9tOjB9O2JyZWFrIGF9cmV0dXJuKEImMTE3KT09QiYmKFlbWlsyXV0oMTUseixLKSxKPWtbOV0oMTgsSixLKSxXPUsudltaWzFdXShKKSksKEJ8NDgpPT1CJiZuLmluZm8oZnVuY3Rpb24oTix4LGYsTCxyLFYsUCxxLGMsRSl7aWYoKEU9WyIpIFthdHRlbXB0ICIsKGY9WzAsIj1yZWRhY3RlZCYiLCIiXSwiXTogIiksInNwbGl0Il0sbikudilpZihRKXtmb3IoTj0oTD1RW0VbMl1dKChxPWZbMl0sekwpKCkpLGZbMF0pO048TC5sZW5ndGg7TisrKWM9CkxbTl1bRVsyXV0oWFooKSksYy5sZW5ndGg+MSYmKHg9Y1sxXSxQPWNbZlswXV0sVj1QW0VbMl1dKG1kKCkpLHE9Vi5sZW5ndGg+PUomJlZbMV09PUM/cSsoUCsiPSIreCtLKTpxKyhQK2ZbMV0pKTtyPXF9ZWxzZSByPW51bGw7ZWxzZSByPVE7cmV0dXJuIlhNTEhUVFAgUkVRICgiK2IrRVswXStwK0VbMV0rdit6K0EreityfSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKChCfDQ4KT09KChuPVsiNy4wIiw1MCwxOV0sQi03PDwyPj1CKSYmKEIrN14yNSk8QiYmKEE9R1szOF0oMjMseixBLEspLEdbMjZdKDgsQyxKLEEsYiksQSYmIXlbMl0oMzYsQSkmJkhbMzZdKDQsYi5hVCksWj1iKSxCKSlhOntpZihIWzIyXSgoQT1IWzMzXSgocD1bIkNyaU9TIiwiZyIsITBdLDMxKSksNDgpLEMpKXtaPVJbMjldKDIsblswXSwxLEEpO2JyZWFrIGF9aWYoKGI9KFE9R1sxXSgyLHBbMV0sMyxBKSxnWzQyXSgyMSwwLDEsUSkpLGcpWzhdKG5bMl0sIk9wZXJhIikpe1o9YihbIlZlcnNpb24iLAoiT3BlcmEiXSk7YnJlYWsgYX1pZihrWzE3XSgzLHopKXtaPWIoWyJFZGdlIl0pO2JyZWFrIGF9aWYoeVsyNF0oblsxXSxwWzJdKSl7Wj1iKFsiRWRnIl0pO2JyZWFrIGF9aWYoeVs0NV0oMTYsIlNpbGsiKSl7Wj1iKFsiU2lsayJdKTticmVhayBhfWlmKGtbMjNdKDcscFswXSkpe1o9YihbIkNocm9tZSIsIkNyaU9TIiwiSGVhZGxlc3NDaHJvbWUiXSk7YnJlYWsgYX1aPSh2PVFbSl0pJiZ2WzFdfHxLfWlmKCgoQj4+MiYxMyk9PTEmJih0aGlzLnY9Z1syNF0oMTUsMCxbXSkpLEItOD4+Myk9PTMpR1sxM10oOSxmdW5jdGlvbihXLE4seCxmLEwscil7aWYoV1tyPVsiTSIsIiIsIkYiXSxyWzBdXT09eilyZXR1cm4gVy5BKEMpLHY9YltyWzBdXS5YLnZhbHVlLHg9bmV3IFNULE49bVsyM10oMTksdix4LEosbCksUT1uZXcgdTAoTiksVy52KGIudltyWzBdXS5zZW5kKFEpLDQpO2lmKFdbclswXV0hPUMpe2lmKChBPVcuWCxwPWJbclswXV0uWC52YWx1ZSxBKS5zYygpPT1yWzFdfHx2IT1wKXJldHVybiBXLnJldHVybigpOwpyZXR1cm4gV1soKEw9KGY9YltyWzBdXSxBLnNjKCkpLGYuWCkudmFsdWU9TCxyKVsyXV0oSyl9Vy5pKCksVy5SKCl9KTtyZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoQi0oKEItKChCJigoQisoUT1bIm5nIiw2LDJdLFFbMl0pJjEyKTxRWzJdJiYoQnwzKT49LTM4JiYoQz1uZXcgYUMsSiYmKGtbUVsyXV0oMjcsWVsyM10oNTAsSyksQywkNCxSeChLLkIsSyx6KSksa1tRWzJdXSgzNSxZWzIzXSg1NSxLKSxDLEV2LFJ4KEsuQixLLCExKSkpLHA9QyksNzUpKT09QiYmKHA9Sih6KCksNDIpKSxRWzFdKXwyOSk8QiYmQi1RWzFdPDxRWzJdPj1CJiYoSi5yZXNwb25zZT17fSx2PWZ1bmN0aW9uKCl7cmV0dXJuIEouaEwoQyxiLEEpfSxKW1FbMF1dKEspLE9bNDNdKDQ4LEouUikud2lkdGghPUouaUMoKS53aWR0aHx8T1s0M10oMSxKLlIpLmhlaWdodCE9Si5pQygpLmhlaWdodD8oa1s4XSg0MCxKLHYpLGtbNDZdKDU4LHosSixKLmlDKCkpKTp2KCkpLDcpPj4zPT0KUVsyXSl7aWYoSiBpbnN0YW5jZW9mIGJtKWI9Si5oZWlnaHQsSj1KLndpZHRoO2Vsc2V7aWYoQz09dm9pZCAwKXRocm93IEVycm9yKCJtaXNzaW5nIGhlaWdodCBhcmd1bWVudCIpO2I9Q30oSy5zdHlsZS53aWR0aD1rWzMyXSg0LHosSiksSykuc3R5bGUuaGVpZ2h0PWtbMzJdKDUseixiKX1yZXR1cm4gcH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKEIrKFc9WzMyLDMsMTVdLDQpXjgpPj1CJiYoQi00XjQpPEImJihOPWtbNDZdKDEyLGZ1bmN0aW9uKHgsZixMLHIsVixQKXt4LnN1YnNjcmliZShuZXcgZmcoZixmdW5jdGlvbihxLGMsRSl7KHI9KEw9KFY9KChFPVtudWxsLDcsMTNdLGM9cik9PUt8fGMudW5zdWJzY3JpYmUoKSx6KSxxKSxuZXcgZmcoZixQLHZvaWQgMCx5WzMwXS5iaW5kKEVbMF0sNikpKSxIKVtFWzJdXShFWzFdLEVbMF0sQyhxKSkuc3Vic2NyaWJlKHIpfSx2b2lkIDAsKFA9KHI9SyxMPUssZnVuY3Rpb24ocSxjKXsoKHE9cik9PUt8fApxLnVuc3Vic2NyaWJlKCkscj1LLFYpJiYoYz1MLFY9SixMPUssZi5uZXh0KGMpKX0pLFY9SixmdW5jdGlvbigpeyhQKCksZikuY29tcGxldGUoKX0pLGZ1bmN0aW9uKCl7TD1yPUt9KSl9KSksKEIrNF4xNyk8QikmJihCLVdbMV18MTIpPj1CKXtpZigoWj0ocD0oKEE9KCgoYj0oKG49KFE9Uls4XSg1OCwodj1bMSwoQz10aGlzLDApLDNdLHRoaXMpKSxPWzQ4XSg2Myx0aGlzKSksSj1bXSxnWzE0XSg2NCx2WzBdLHRoaXMudiksUlsxN10oODcsdGhpcy52KSxnKVsxNF0oMzEsdlswXSx0aGlzLnYpLGspW1dbMl1dKDQxLHRoaXMudiksZylbMTRdKDYzLHZbMF0sdGhpcy52KSxSKVsxN10oV1syXSx0aGlzLnYpLHRoaXMudi52KSxnKVsxNF0oV1swXSx2WzBdLHRoaXMudiksa1tXWzJdXSgzNix0aGlzLnYpKSx0aGlzLnhKW3BdKSkmJloubGVuZ3RoIT09MClaLmZvckVhY2goZnVuY3Rpb24oeCxmKXsoKChmPVsiWCIsInhKIiwidiJdLENbZlsxXV0pW2JdPXgsQ1tmWzJdXVtmWzJdXT1BLENbZlswXV0pW25dLmNhbGwoQywKei0zKSxKKS5wdXNoKENbZlsxXV1bcF0pfSk7ZWxzZSBmb3IoSz12WzFdO0s8ei12WzJdO0srKylPWzQ4XSg2Myx0aGlzKTt0aGlzLnhKW1FdPUp9cmV0dXJuIEIrOD4+MjxCJiYoQi03XjcpPj1CJiYhbVsxM10oMzEsMSwhMSx0aGlzLnUoKSx6KSYmZ1tXWzFdXSg1Mix0aGlzLGhVKSYmdGhpcy5pc0VuYWJsZWQoKSYmZ1s0NF0oNDcsMix0aGlzKSYmWVsxNl0oNywyLHRoaXMsITApLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybigoKChCKygoKEImKHA9WzAsOCwiTSJdLDU0KSk9PUImJihKPVlbMjNdKDU0LHopLEM9ei51KCksSz8oZVszNl0ocFsxXSxlWzM2XShwWzFdLGVbMzZdKHBbMV0sSFs0MV0oMTksdm9pZCAwLEosQyx6LnVrLGQ5LkNiKSxDLFtkOS56USxkOS5MYl0sei5JKSxDLGs0LHoubFMpLEMsdFUsei5TKSx6LnlsIT1EWzNdLmJpbmQobnVsbCw0MSkmJkhbNDFdKDUwLHZvaWQgMCxKLEMsei55bCxVdikpOihZW3BbMF1dKDc5LFlbcFswXV0oNDcsCllbcFswXV0oNzEsWVtwWzBdXSg1NSxKLEMsZDkuQ2Isei51ayksQyxbZDkuelEsZDkuTGJdLHouSSksQyxrNCx6LmxTKSxDLHRVLHouUyksei55bCE9RFszXS5iaW5kKG51bGwsNjUpJiZZW3BbMF1dKDM5LEosQyxVdix6LnlsKSkpLEIrM14yNSk+PUImJihCKzleMTMpPEImJihRPUsrZVs0Nl0oMjQsMyxKLHopKSxwKVsxXT49MTgmJkI8PDE8MzYmJihLPXRoaXNbcFsyXV0sdGhpc1twWzJdXT1BcnJheS5pc0FycmF5KEspPyhLLnB1c2goeiksSyk6Sz9bSyx6XTp6KSxCKSY3NSk9PUImJihDPXoueC1LLngsSj1LLnktei55LFE9W0osQyxKKnoueCtDKnoueV0pLEIpXjU5KSYxOXx8KCh2PUdsW2JdKXx8dHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCJ8fCh2PShuZXcgamQoZG9jdW1lbnQpKS5nZXQoSikpLFE9dj9EWzZdKDEyLEsseixBLHYsQyk6bnVsbCksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoIShwPVsiQSIsMTUsInYiXSxCKzkmNikpe2lmKEM9PXomJgpKLk0mJiFKW3BbMF1dKWZvcih2PUE7diYmdltwWzBdXTt2PXYuWCl2W3BbMF1dPSExO2lmKEpbcFsyXV0pSltwWzJdXS5YPUssR1twWzFdXSg0OSwyLEMsYixKKTtlbHNlIHRyeXtKW3BbMF1dP0ouaS5jYWxsKEouWCk6R1twWzFdXSg0OCwyLEMsYixKKX1jYXRjaChuKXtNdi5jYWxsKEssbil9dzkucHV0KEopfXJldHVybiBCLTI8MTYmJihCXjIpPj4zPj0wJiYoZzBbNl0oMjIsZnVuY3Rpb24obil7ZVs0OV0oMywwLDEsbix6KX0sSUMpLFJbMV0oNywhMCxJQyl8fFlbNDVdKDU4KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoIShCKygoWj1bInNldFRpbWVvdXQiLDIyMSwyNF0sKEImODgpPT1CKSYmKFc9R1sxM10oWlsyXSxmdW5jdGlvbihOLHgpe2lmKCFIWyh4PVsiSiIsIk0iLDBdLHgpWzJdXSg1OCx6LGRrW3hbMF1dKCksYikpcmV0dXJuIE4ucmV0dXJuKG51bGwpO3JldHVybihBPW5ldyBVaChnWzQ5XSgxNixLLEopKSxOKS5yZXR1cm4oQy52W3hbMV1dLnNlbmQoQSkpfSkpLAo3KSY3KSlhOntpZihuPVsyNywxODcsMTg2XSxkciYmdil7Vz1tWzE5XSg1MixuWzFdLEMpO2JyZWFrIGF9aWYodiYmIUEpe1c9ITE7YnJlYWsgYX1pZighaFgmJih0eXBlb2YgYj09PSJudW1iZXIiJiYoYj15WzIwXSg1LDkxLGIpKSxRPWI9PTE3fHxiPT0xOHx8ZHImJmI9PTkxLCghcHx8ZHIpJiZRfHxkciYmYj09SyYmKEF8fEopKSl7Vz0hMTticmVhayBhfWlmKGtlJiZBJiZwKXN3aXRjaChDKXtjYXNlIDIyMDpjYXNlIHo6Y2FzZSBaWzFdOmNhc2UgMTkyOmNhc2UgblsyXTpjYXNlIDE4OTpjYXNlIG5bMV06Y2FzZSAxODg6Y2FzZSAxOTA6Y2FzZSAxOTE6Y2FzZSAxOTI6Y2FzZSAyMjI6Vz0hMTticmVhayBhfXN3aXRjaChDKXtjYXNlIDEzOlc9aFg/Snx8dj8hMTohKHAmJkEpOiEwO2JyZWFrIGE7Y2FzZSBuWzBdOlc9IWtlJiYhaFg7YnJlYWsgYX1XPWhYJiYoQXx8dnx8Sik/ITE6bVsxOV0oNDgsblsxXSxDKX1yZXR1cm4oKEI+PjEmMTUpPT0zJiYoSz16W3ZmXSxXPUsgaW5zdGFuY2VvZgpmdD9LOm51bGwpLChCPj4yJjcpPj01KSYmKChCXjY0KSYxMCk8MTAmJihDP2I9Qy5BOmI9Si5YZysrLEE9eVsxNV0oWlsyXSxKLmopLG1bOV0oMTksQSx5RSgpLEouUyksbVs5XSgxNSxBLHFoKCksYiksbVs5XSgyMSxBLFl5KCksSi5nKSxIWzMyXSg0LEEsSiksSi5sJiZKLk8mJk9bNF0oMTAsSyxKLk8sSi5sLEEpLHA9bmV3ICR5KGIsSixKLkEsSi5VKzEpLEoubD09PW51bGwmJihwLkg9Si5PKSxDJiYoSi5pPUMuVS5jb25jYXQoSi5pKSksdj1lWzIxXSg2LCJ0eXBlPSIseixKLndiLEoscCkscFtaWzBdXSh5YShKLkUzKi41KSt5YShKLkUzKi41KkFlKCkpKSxPWzM4XSgyMCxKLlgscCksSFszMF0oNTYsInR5cGUiLHAsQSx2KSksV30sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybigoKGI9WzEyLDksMTVdLEIpPDwyPj1iWzFdJiYoKEJeNDgpJjQpPDEmJih0aGlzLk09bmV3IFNldCx0aGlzLlg9bmV3IE1hcCksKEItNXw1Mik8QiYmKEIrMV5iWzJdKT49QikmJlQuY2FsbCh0aGlzLAp6KSxCKzM+PjEpPEImJihCLWJbMV18NDQpPj1CJiYoSj1LLmFULEM9WVsyOV0oYlswXSw2NCxKW0EkXXx6LEosbVszMF0uYmluZChudWxsLGJbMl0pKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybigoKChiPVszOSwxLDE0XSxCKXwyKT4+NHx8KEo9bmV3IFlpLEoudXBkYXRlKChIW2JbMF1dKDcyLEssZ1tiWzJdXSg3LGNoKSl8fHopK1RPKSxDPXlbMThdKGJbMV0sMTYsSi5kaWdlc3QoKSkpLEIpJjEyNCk9PUImJih0aGlzLmVycm9yQ29kZT16LHRoaXMudj1LPT09dm9pZCAwPyExOkspLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCl7aWYoKChkPVsxMiwicmVxIiwiS3oiXSxCKSYyNSk9PUIpbVszNl0oNDcsZnVuY3Rpb24oaCl7cmV0dXJuIGggaW5zdGFuY2VvZiBNYXB9LEZaKCkpO2lmKChCPDwxJigoKEJ8NzIpPT1CJiYodD1LJiZ6JiZLW2RbMl1dJiZ6W2RbMl1dP0suTmohPT16Lk5qPyExOgpLLnRvU3RyaW5nKCk9PT16LnRvU3RyaW5nKCk6SyBpbnN0YW5jZW9mIFYkJiZ6IGluc3RhbmNlb2YgViQ/Sy5OaiE9ei5Oaj8hMTpLLnRvU3RyaW5nKCk9PXoudG9TdHJpbmcoKTpLPT16KSwoQi0yfDI4KT49QiYmKEItNV4zMSk8QikmJih0PUdbMTNdKDMyLGZ1bmN0aW9uKGgpe3JldHVybiBoLnJldHVybigoSz1TdHJpbmcoei5YKyspLEspKX0pKSwxMSkpPj03JiYoKEJ8NSkmZFswXSk8ZFswXSl7dj0oZj1sOShDLmkubGVuZ3RoLChjPVswLCExLCI9Il0sSikpLEMpLlI/UngoQy5SLlJqLEMuUixDKTpudWxsO2E6e2Zvcih4PShhPUMuaSwtMSk7Oyl7Zm9yKFc9IShMPSh4PT0ocj1bImNvdW50PSIrZl0sLTEpP2Y+Y1swXT8oeD1hW2NbMF1dLnYsci5wdXNoKEsreCkpOng9Y1swXTpyLnB1c2goSyt4KSxjWzBdKSwwKTtMPGY7TCsrKWlmKHA9YVtMXS5tYXAsVj1hW0xdLnYsVi09eCxWPGNbMF0peD1oWShjWzBdLGFbTF0udi0xMDApLFc9Y1sxXTtlbHNlIHRyeXtTPWRbMV0rVisiXyJ8fAoiIjt0cnl7Zm9yKFo9cCBpbnN0YW5jZW9mIE1hcD9wOk9iamVjdC5lbnRyaWVzKHApLEU9Z1tkWzBdXSg3LFopLHU9RS5uZXh0KCk7IXUuZG9uZTt1PUUubmV4dCgpKVg9Z1tkWzBdXSg2LHUudmFsdWUpLFE9WC5uZXh0KCkudmFsdWUscT1OPVgubmV4dCgpLnZhbHVlLEhbNDRdKDEsTikmJihxPShuZXcgQlIpLnllKE4pKSxyLnB1c2goUytRK2NbMl0rZW5jb2RlVVJJQ29tcG9uZW50KHEpKX1jYXRjaChoKXt0aHJvdyByLnB1c2goUyt6K2VuY29kZVVSSUNvbXBvbmVudChzRSgpKSksaDt9fWNhdGNoKGgpe3YmJnYocCl9aWYoVyl7QT1yLmpvaW4oekwoKSk7YnJlYWsgYX19QT12b2lkIDB9Yi5VPShuPUMuaS5zcGxpY2UoY1swXSwoUD1BLGYpKSxuKSx0PVB9cmV0dXJuIHR9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKCgoQz1bMywyLDRdLEItQ1syXSl8Q1swXSk8QiYmKEIrQ1sxXSY0NSk+PUImJihiPUoudj9KLk89PXomJkouZyE9SyYmSi5pLk15OiExKSxCKStDWzJdJjcpPj0KQ1swXSYmQj4+MTwxNiYmKHRoaXMudj1bXSx0aGlzLk09W10pLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZihCLSh2PVswLDMsNl0sdilbMl0+PnZbMV09PTIpZm9yKHo9dlswXTt6PHRoaXMubGVuZ3RoO3orKyl0aGlzW3pdPXZbMF07cmV0dXJuKCgoKEIrMSYyNyk9PSgoQiY5MCk9PUImJihLPW5ldyB6QyxwPVtHWzQ5XSg4LHosS0YsZGsuSigpKT9uZXcgSms6bmV3IENGLG5ldyBiMSxuZXcgQWssbmV3IHZSLG5ldyBUQyxuZXcganMsbmV3IHBGLG5ldyBRaixuZXcgbkYsbmV3IFpCLG5ldyBXUixLLG5ldyBnQixuZXcgTkYsbmV3IE9FLG5ldyB4bixuZXcgREIsbmV3IGZGKEspLG5ldyBvOCxuZXcgTEYsbmV3IFI4LG5ldyByQixuZXcgVmosbmV3IEdDLG5ldyBIUl0pLDIpJiYoZXMuY2FsbCh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIHp9KSx0aGlzLlg9eiksQi00KV4yMCk+PUImJkItdlsyXTw8MTxCJiYoQT1uZXcgRGF0ZShiLEosQyksYj49SyYmYjx6JiZBLnNldEZ1bGxZZWFyKEEuZ2V0RnVsbFllYXIoKS0KMTkwMCkscD1BKSwoQnw0OCk9PUIpJiZ0aGlzLnYmJih0aGlzLlImJnoudmFsdWU/dGhpcy5yZXNwb25zZS5wdXNoKHoudmFsdWUpOiF0aGlzLlImJihLPXoudmFsdWU/ei52YWx1ZTpuZXcgVWludDhBcnJheSgwKSxKPXRoaXMuVy5kZWNvZGUoSyx7c3RyZWFtOiF6LmRvbmV9KSkmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0Kz1KKSx6LmRvbmU/R1s0OF0oMTMsNCx0aGlzKTpEWzE4XSgzMix0aGlzKSx0aGlzLnJlYWR5U3RhdGU9PXZbMV0mJkRbNV0oOSx0aGlzKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKEItKCgoKFc9WzEsMTcsNF0sQik8PFdbMF0mMTMpPDMmJihCfFdbMF0pPj0tODMmJlQuY2FsbCh0aGlzLHopLEJ8NTYpPT1CJiYoei5zWD12b2lkIDAsei5KPWZ1bmN0aW9uKCl7cmV0dXJuIHouc1g/ei5zWDp6LnNYPW5ldyB6fSksV1syXSleV1sxXSk+PUImJihCK1dbMF1eMjgpPEImJihOPXR5cGVvZiB6PT09ImZ1bmN0aW9uIiksCkImNDcpPT1CJiYoTj1sOShoWShLLHopLEopKSwhKChCXjIyKT4+V1syXSkpYTp7Zm9yKEE9KGI9UFIscD1KLnNwbGl0KHopLDApO0E8cC5sZW5ndGgtV1swXTtBKyspe2lmKCEobj1wW0FdLG4gaW4gYikpe049dm9pZCAwO2JyZWFrIGF9Yj1iW25dfShRPShaPWJbdj1wW3AubGVuZ3RoLVdbMF1dLHZdLEMpKFopLFEhPVopJiZRIT1LJiYkbihiLHYse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpRfSl9cmV0dXJuIE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKEI+PjImKFc9WzUsNywxNV0sV1sxXSkpPT0yKXtwPWZ1bmN0aW9uKHgpe258fChuPUssdi5jYWxsKEMseCkpfSxRPWZ1bmN0aW9uKHgpe258fChuPUssQS5jYWxsKEMseCkpfSxuPXo7dHJ5e0ouY2FsbChiLHAsUSl9Y2F0Y2goeCl7USh4KX19aWYoKEItKEItOD4+Mz09MSYmKE49R1sxM10oMTcsZnVuY3Rpb24oeCxmLEwpe0w9WyhmPVsxLCJuIiwwXSwiUiIpLDEsMTldO3N3aXRjaCh4Lk0pe2Nhc2UgZlswXTppZighKEogaW5zdGFuY2VvZgooeC5BKDIpLHFGKSkpcmV0dXJuIGdbM10oNTEsQyxmW0xbMV1dKSx4LnJldHVybigpO2lmKG49RFszNV0oNDgsSyxudWxsLFJbNDhdKDY5LEosaTEsMTEsbCkuQ3UoKSksbj09PW51bGwpcmV0dXJuIGdbM10oNTgsQyxmW0xbMV1dKSx4LnJldHVybigpO3JldHVybigoQT0oUT0oQy5DPSh2PUMua1cpPT1udWxsP3ZvaWQgMDplWzQwXShMWzFdLHYpLGZ1bmN0aW9uKHIsVil7Qy5DJiZDLkMudGhlbihmdW5jdGlvbihQKXtQKHtkZXRhaWw6W3IsVl19KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9KSxmdW5jdGlvbihyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3KXt3PShVPVsxLDExLDEwXSxbOCw1NywxMl0pO2E6e2g9KFA9KHE9KEU9KFM9KHU9bmV3IHlqLHIpLmdldFZhbHVlKCksaylbNl0od1sxXSwyLHUsUyksWVszNF0oNyx6LHIpKSxtKVsyM10oMjYscSxFLHopLE09eVszM10oNDYsSyxyKSxrWzZdKDI0LEssUCxNKSk7c3dpdGNoKG1bMV0oMjQscixVWzBdKSl7Y2FzZSBVWzBdOm1bMjhdKDIsClVbMF0saCk7YnJlYWs7Y2FzZSAyOm1bMjhdKDMsMixoKTticmVhaztjYXNlIDU6bVsyOF0oMTksNixoKTticmVhaztjYXNlIDY6bVsyOF0oMiw3LGgpO2JyZWFrO2Nhc2UgNzptWzI4XSgyMyw1LGgpO2JyZWFrO2Nhc2UgejptWzI4XSgzLHosaCk7YnJlYWs7Y2FzZSBLOm1bMjhdKDE4LEssaCk7YnJlYWs7Y2FzZSB3WzBdOm1bMjhdKDcsd1swXSxoKTticmVhaztjYXNlIDk6bVsyOF0oMTksOSxoKTticmVhaztjYXNlIFVbMl06bVsyOF0oNyxVWzJdLGgpO2JyZWFrO2Nhc2UgVVsxXTptWzI4XSgyMixVWzFdLGgpO2JyZWFrO2Nhc2Ugd1syXTptWzI4XSgyLHdbMl0saCk7YnJlYWs7Y2FzZSAxODptWzI4XSg2LDEzLGgpO2JyZWFrO2Nhc2UgMTM6bVsyOF0oNiwxNCxoKTticmVhaztjYXNlIDE0Om1bMjhdKDIzLDE1LGgpO2JyZWFrO2Nhc2UgMTU6bVsyOF0oMywxNixoKTticmVhaztjYXNlIDE2Om1bMjhdKDIyLDE3LGgpO2JyZWFrO2Nhc2UgMTc6bVsyOF0oMTgsMTgsaCk7YnJlYWs7ZGVmYXVsdDpQcm9taXNlLnJlc29sdmUoKTsKYnJlYWsgYX0oZD0oVj0oWD0oYz1uZXcgdHgsdD1SWzI1XSg1MSxudWxsLDUsQy5ILGNULGMsbCksbmV3IGVCKSxIWzQ0XSg4NCxYLHlqLDYsaCkpLEhbNDRdKDg2LHQsZUIsSyxWLGwpKSxhPW5ldyBtdihkKSxDLkQpLnNlbmQoYSwhMCwhMSl9fSkseCkuQShLKSx4KS52KERbNDJdKDcsIiIsZlswXSxmWzJdLCIuIixDLnYsWVsyMV0oMTgsZlswXSxSWzQ4XSg3MCxKLGkxLDExLGwpKSxuLEEsUSksNik7Y2FzZSA2OigoWj0ocD14LlgsQy5YPXAsYj1HW0xbMl1dKDY1LDI5KSkhPW51bGw/YjowLFo+ZlsyXSk/c2V0VGltZW91dChmdW5jdGlvbigpe2dbM10oNjIsQywiciIpfSxaKTpnWzNdKDYxLEMsInIiKSx4KS5GKDUsMik7YnJlYWs7Y2FzZSBLOnguaSgyKSxnWzNdKDU5LEMsZltMWzFdXSk7Y2FzZSA1OnguRihmWzJdKTticmVhaztjYXNlIDI6eC5pKCksZ1szXSg2MyxDLGZbTFsxXV0pLHhbTFswXV0oKX19KSksV1swXSl8V1syXSk+PUImJihCK1dbMF1eMzApPEIpR1sxM10oMzMsCmZ1bmN0aW9uKHgpe0ouQT0oQz1ZWzQ2XSg4OCxLLG5ldyBZbixKKSxKLkEudGhlbihDLEMpLnRoZW4oZnVuY3Rpb24oZixMLHIsVixQKXtyPShQPShWPUoudi5NLEw9Vi5zZW5kLG5ldyBjUiksSFs0NF0oODQsUCx6bCx6LGYsbCkpLEwuY2FsbChWLG5ldyBTcyhyKSl9KSkseC5SKCl9KTtyZXR1cm4gTn0sZnVuY3Rpb24oQix6LEssSixDKXtpZigoKEJeKChKPVs1LDE4LDEzXSxCJjExNyk9PUImJihLPT16fHxUMihLKSxDPUs9PXo/bnVsbDpEW0pbMV1dKEpbMl0sSykpLDQ1KSk+PjR8fFQuY2FsbCh0aGlzLHopLCgoQnwxKSYxNCk+PTkpJiZCKzk+PjQ8Mil7aWYodHlwZW9mIEshPT0iYm9vbGVhbiIpdGhyb3cgRXJyb3IoIkV4cGVjdGVkIGJvb2xlYW4gYnV0IGdvdCAiK0hbNDZdKEpbMF0sIm9iamVjdCIsSykreitLKTtDPUt9cmV0dXJuIEN9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKCgoKCgoQi0oKChCXihKPVsxMywidW5zdWJzY3JpYmUiLDg2XSxKKVsyXSkmMTUpPT0zJiYKKEM9R1tKWzBdXSg4LGZ1bmN0aW9uKGIpe3JldHVybih6PWVbMzFdKDIzKSxiKS5yZXR1cm4oe2RROm1jK3osd1Q6RFs0XSgyMywwLHopfSl9KSksNil8NTgpPEImJkItNTw8Mj49QiYmVC5jYWxsKHRoaXMseiksQik8PDEmMTEpPT0yJiZULmNhbGwodGhpcyx6KSwoQiYyNyk9PUIpJiYoSz1kay5KKCkuZ2V0KCksQz1ZWzE5XSg0LHosSykpLEIpKzkmMTEpPT0xJiYoQz16IGluc3RhbmNlb2Ygb2l8fHomJiJjbG9zZWQiaW4geiYmZVsyNF0oNTEsei5yZW1vdmUpJiZlWzI0XSg3OSx6LmFkZCkmJmVbMjRdKDUwLHpbSlsxXV0pKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoQisoKEE9WzIsMTI3LDVdLEItQVsyXTw8QVswXT49QiYmKEIrM14yOSk8QikmJih6LnJhdz1LLE9iamVjdC5mcmVlemUmJihUSih6KSxUSihLKSksYj16KSxBWzJdKSY0MSk8QiYmKEItMV4xNyk+PUIpe2JOKChDPVsxMjgsNywwXSx6KSk7Zm9yKGJOKEspO0s+Q1tBWzBdXXx8ej5BWzFdOylKLnYucHVzaCh6JgpBWzFdfENbMF0pLHo9KHo+Pj5DWzFdfEs8PDI1KT4+PkNbQVswXV0sSz4+Pj1DWzFdO0oudi5wdXNoKHopfXJldHVybiBCPj5BWzBdJkFbMF18fChiPSh6LnN0YWNrfHwiIikuc3BsaXQobDEpWzBdKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKEIrNl4oWj1bMzYsMTUsIm4iXSxaWzFdKSk+PUImJihCLTd8OTQpPEImJihDPW5ldyBFRShLKSxnWzNdKDQ4LHosQykpKXtKPW5ldyBYNChLKTt0cnl7Z1szXSg1Mix6LEopfWZpbmFsbHl7Sy52KCl9fXJldHVybihCLSgoKCgoKEJ8NCk+PjQ8MSYmKEJ8Myk+PjQ+PTAmJihuPW5ldyBXb3JrZXIoWVszMV0oMzQseiksdm9pZCAwKSksQikrOSZaWzFdKT09MyYmKG49RGF0ZS5ub3coKSksQikmNTcpPT1CJiZ0aGlzLnYuVTMoKT09ei5yZXNwb25zZSYmKHRoaXMudi5YPUtRKSw0KSZaWzFdKT09MSYmKFE9WyJoIiwzMywicCJdLGVbWlswXV0oMTEsYixiLk0sSixmdW5jdGlvbigpe3JldHVybiBEWzQzXSg3MCxiLCEwKX0pLAplW1pbMF1dKDcsYixiLk0sUVswXSxmdW5jdGlvbihXKXtiLnYudltXPVszNSw1MiwidnoiXSxXWzJdXShnW1dbMF1dKFdbMV0sYi5NKSl9KSxlW1pbMF1dKDcsYixiLk0sImkiLGZ1bmN0aW9uKCl7cmV0dXJuIGIuZUkoKX0pLGVbWlswXV0oNyxiLGIuTSwiayIsZnVuY3Rpb24oKXtyZXR1cm4ga1s0NV0oNTAsMixiLHVkKX0pLGVbWlswXV0oMTAsYixiLk0sQyxmdW5jdGlvbihXKXtiWyhXPVshMSw4NSwidiJdLEQpWzQzXShXWzFdLGIsV1swXSksV1syXV1bV1syXV0ub0QoKX0pLHA9ZGsuSigpLmdldCgpLFlbMTldKDY5LFFbMV0scCl8fGVbWlswXV0oMTAsYixiLk0sWlsyXSxmdW5jdGlvbigpe3JldHVybiBrWzQ1XSgyLDIsYixhbyl9KSxZWzE5XSg1LDMyLHApfHxlW1pbMF1dKDUsYixiLk0sIm0iLGZ1bmN0aW9uKCl7cmV0dXJuIGtbNDVdKDY2LDIsYixoMCl9KSwoQT1HWzFdKDksMjQscCkpIT1udWxsJiZBJiZlW1pbMF1dKDksYixiLk0sIm8iLGZ1bmN0aW9uKCl7cmV0dXJuIGtbNDVdKDMsCjIsYix1MSl9KSwodj1ZWzE5XSg1LDMwLHApKSE9bnVsbCYmdiYmZVtaWzBdXSgxLGIsYi5NLFFbMl0sZnVuY3Rpb24oKXtyZXR1cm4ga1s0NV0oNTEsMixiLGE4KX0pLGVbWlswXV0oNSxiLGIuTSwiaiIsZnVuY3Rpb24oVyl7cmV0dXJuIGtbNDBdKChXPVsidiIsMjMsMzNdLFdbMV0pLG5ldyB1UShiW1dbMF1dLlUzKCksSFtXWzJdXSg2MSxiLk1bV1swXV0pKSxiLGZ1bmN0aW9uKE4seCxmKXtpZihnW2Y9WzMsIkEiLDE2XSxmWzJdXSg4OSxsLE4sZlswXSkhPW51bGwpYltmWzFdXSgpO2Vsc2UoeD1SWzI2XSgxNCxOLDEsbCkpJiZrWzQ3XSg0MyxiLHgpLG1bMzVdKGZbMl0sMCw0LGIuTS52LE4pfSl9KSxIWzQxXSgzNSx2b2lkIDAsYixiLk0sYi5yNyx6KSxIWzQxXSg1MCx2b2lkIDAsYixiLk0sYi5WdCwidCIpLEhbNDFdKDE4LHZvaWQgMCxiLGIuTSxiLmcsSykpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEE9WzksMTAsITFdLEIrQVswXV5BWzFdKT49QiYmQisxPj4KMjxCKWE6e2lmKEomKGI9WzQwOTYsMiwhMF0sYlsxXSkpe3Y9YlsyXTticmVhayBhfWlmKEomeiYmIShKJmJbMF0pKXt2PShDLnY9KGtbMzhdKDk1LEssSnxiWzFdKSxjTCksYilbMl07YnJlYWsgYX12PUFbMl19cmV0dXJuKEImMTExKT09QiYmKHRoaXMuYmxvY2tTaXplPS0xKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgodj1bInByb3RvdHlwZSIsInB1c2giLDEyXSwoQiYxMDYpPT1CKSYmKEM9Sy5hVCxKPUNbQSRdfDAsQT1lWzMwXSgxNiwzMixDLEosSyk/Z1s0NF0oMyxDLEsseik6bmV3IEsuY29uc3RydWN0b3IoT1sxOF0oMzYsMzQsSixDLCExKSkpLEImMjMpPT1CKXtmb3IoQz0oej0oSj0wLEs9W10seik9PT12b2lkIDA/ODp6LEM9PT12b2lkIDApPzA6QztKPHo7SisrKUtbdlsxXV0odzUoKSUoaGsrMSleR1s4XSg0OSxoaykpO0E9T1syM10oNTgsR1szMl0oMTEsMzYsMCxLKSxDKX1pZigoKEJ8Nik+PjR8fChBPUsuTT9tWzJdKDk0LHosSy5NfHxLLmwudik6Cm51bGwpLEJ8NDApPT1CKWlmKHouY2xhc3NMaXN0KUFycmF5W3ZbMF1dLmZvckVhY2guY2FsbChLLGZ1bmN0aW9uKHApe1JbOF0oMSxwLHopfSk7ZWxzZXtmb3IoSiBpbiBDPSgoQXJyYXlbdlswXV0uZm9yRWFjaC5jYWxsKGVbMV0odlsyXSwoYj17fSx6KSksZnVuY3Rpb24ocCl7YltwXT0hMH0pLEFycmF5KVt2WzBdXS5mb3JFYWNoLmNhbGwoSyxmdW5jdGlvbihwKXtiW3BdPSEwfSksIiIpLGIpQys9Qy5sZW5ndGg+MD8iICIrSjpKO0dbMzhdKDE2LCJzdHJpbmciLEMseil9cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKEItNT49KChCPj4yJihBPVsyMCwiUmVDQVBUQ0hBIGNvdWxkbid0IGZpbmQgdXNlci1wcm92aWRlZCBmdW5jdGlvbjogIiw0Nl0sNikpPT0yJiYoQz1IWzE0XSg1NyxLKSxDIT1udWxsJiZDIT1udWxsJiYoRFsyMl0oNjksMCx6LEopLEhbMzBdKDQsNyxDLHoudikpKSwyMykmJigoQnwyKSYxNik8MTEpYTp7aWYoQz0oSj1KPT09dm9pZCAwPyExOgpKLHopLmdldChLKSl7aWYodHlwZW9mIEM9PT0iZnVuY3Rpb24iKXtiPUM7YnJlYWsgYX1pZih0eXBlb2Ygd2luZG93W0NdPT09ImZ1bmN0aW9uIil7Yj13aW5kb3dbQ107YnJlYWsgYX1KJiZjb25zb2xlLmxvZyhBWzFdK0MpfWI9ZnVuY3Rpb24oKXt9fXJldHVybigoQiYyNik9PUImJihiPXoudGltZVJlbWFpbmluZygpKSxCPj4yPj04KSYmKEJeNDkpPEFbMF0mJihKPUo9PT12b2lkIDA/Skw6SixiPShDPUhbNF0oOTMsSyx6LHZvaWQgMCx2b2lkIDAsa1tBWzJdXS5iaW5kKG51bGwsQVswXSkpKSE9bnVsbD9DOkopLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoIShCLTMmKCh2PVs2LDQ5LDU5XSwoQl4zOSkmdlswXSl8fChBPUhbdlsxXV0odlsyXSx6LEosSyx2b2lkIDAsbCkpLHZbMF0pKSl7aWYoeiBpbnN0YW5jZW9mIEFycmF5KUo9ejtlbHNle2ZvcihiPShLPWdbMTJdKDkseiksW10pOyEoQz1LLm5leHQoKSkuZG9uZTspYi5wdXNoKEMudmFsdWUpO0o9Yn1BPUp9cmV0dXJuIEF9LApmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKChCJjEwNyk9PSgoKChuPVszLDM0LDEwXSxCfDg4KT09QiYmKFo9U3RyaW5nKHopLnJlcGxhY2UoZEIsWVs0N10uYmluZChudWxsLDI4KSkpLEIrOCleMjEpPEImJihCKzJeMTkpPj1CJiYodj1uZXcga24sYj1rWzZdKDI1LDEsdixKLnYpLEoudj5LJiZtWzM4XSgxNix6LDIsYixKLlgvSi52KSxDPksmJm1bMzhdKDI4LHosblswXSxiLEouWC9DKSxKLk0+SyYmKEE9ZDAoSi5NKSxrWzZdKDI2LDQsYixBKSksWj1iKSxCKSYmKHouQj1EYXRlLm5vdygpK3oudHUsZVs4XShuWzJdLG51bGwsei50dSx6KSksQnw0KT49MjMmJkIrNzxuWzFdKWE6e2lmKCEocD1bMCwiJiIsMV0sSikpe1o9SzticmVhayBhfVo9KChBPShiPSh2PSgoQz1LLmluZGV4T2YodGsoKSksQzxwWzBdKSYmKEM9Sy5sZW5ndGgpLEsuaW5kZXhPZihLMSgpKSksdjxwWzBdfHx2PkM/KHY9QyxRPXopOlE9Sy5zdWJzdHJpbmcoditwWzJdLEMpLFtLLnNsaWNlKHBbMF0sCnYpLFEsSy5zbGljZShDKV0pLGIpW3BbMl1dLGIpW3BbMl1dPUo/QT9BK3BbMV0rSjpKOkEsYltwWzBdXSsoYltwWzJdXT8iPyIrYltwWzJdXToiIikrYlsyXSl9cmV0dXJuKEImMTEzKT09QiYmKFo9ZVsyOF0oMjcseix6KSksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEIrOV4oKEImKChCXjg3KSYocD1bMjgsMSwyXSwyNyl8fCh2PUt8fEosUT0oQT1iJiZiIT0iKiI/U3RyaW5nKGIpLnRvVXBwZXJDYXNlKCk6IiIpfHxDP3YucXVlcnlTZWxlY3RvckFsbChBKyhDP3orQzoiIikpOnYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVUUoKSkpLDEzKSk9PUImJihRPUdbNDJdKDQ2LG51bGwsITAseikpLDYpKT49QiYmKEItM3wyNyk8QilhOnRyeXtRPUZPKFJbNDZdKDQscFsxXSx6KXx8e30pO2JyZWFrIGF9Y2F0Y2gobil7UT1bXTticmVhayBhfXJldHVybigoKEJ8NTYpPT1CJiYoUT1mdW5jdGlvbihuKXtyZXR1cm4gZVs4XSgyMyx6LG4sSyl9KSxCKXw4OCk9PUImJihKPQp6LHR5cGVvZiBLPT09InN0cmluZyI/Sj1PW3BbMl1dKHBbMF0sSyxkb2N1bWVudCk6SFs0NF0oOSxLKSYmSy5ub2RlVHlwZT09cFsxXSYmKEo9SyksUT1KKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKCgoKHA9WzExLCJGIiw3XSxCKSszPj40PDEmJkI8PDE+PS02MCYmKHY9SFs0MV0oMzUsYix6LEssQyxKKSksQikmODYpPT1CJiYoSj1bXSxZWzE5XSg2LHosZkMpLmZvckVhY2goZnVuY3Rpb24oUSl7ZkNbUV0uQmQmJiF0aGlzLmhhcyhmQ1tRXSkmJkoucHVzaChmQ1tRXS5nZXROYW1lKCkpfSxLKSx2PUopLEItcFsyXT49MTYmJihCXjM1KTwyNSYmKEE9Sj9LW3BbMV1dLmxlZnQtMTA6S1twWzFdXS5sZWZ0K0tbcFsxXV0ud2lkdGgrMTAsYj1SWzM4XShwWzJdLDksbnVsbCxLLkQoKSksQz1LW3BbMV1dLnRvcCtLW3BbMV1dLmhlaWdodCp6LEEgaW5zdGFuY2VvZiBaNj8oYi54Kz1BLngsYi55Kz1BLnkpOihiLngrPU51bWJlcihBKSx0eXBlb2YgQz09PSJudW1iZXIiJiYKKGIueSs9QykpLHY9YiksQis0JnBbMF0pPj0zJiYoKEJeNDkpJjE2KTwyJiZULmNhbGwodGhpcyx6KSx2fSxmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gQi0oKEItKChCXjE4KT4+KEs9WzgsMjQsInYiXSwzKT09MiYmKHRoaXNbS1syXV09eiksNileS1swXSk+PUImJkIrMj4+MTxCJiZULmNhbGwodGhpcyx6KSw3KTw8MT49QiYmKEItN15LWzFdKTxCJiZULmNhbGwodGhpcyx6KSxKfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBCKzYmKChCXihKPVs4MiwzOCwxRTNdLEpbMV0pKT4+NHx8KEM9SFszMF0oOSwnIj4nLCI8L2Rpdj4iLHoubGFiZWwpKSwzKXx8KEs9Sz09PXZvaWQgMD9EYXRlOkssdGhpcy52PXo9ej09PXZvaWQgMD9PWzI2XShKWzBdLEsubm93KCkqSlsyXSk6eix0aGlzLk09SyksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKCgoYj1bNDAsImNoYXJBdCIsN10sKEI8PDImMjMpPT00KSYmKEM9Uls5XSgxMSxLLHosMTYsMyksQy51cGRhdGUoSiksQT1DLlozKGJbMV0sCiIiLDApLnRvTG93ZXJDYXNlKCkpLEI8PDIpJjE1KT49MTImJihCPDwxJjE2KTwxNilhOntpZigoSj1bNjQsITEsMF0seik9PW51bGwpe0E9ejticmVhayBhfWlmKEs9dHlwZW9mIHosSz09PSJiaWdpbnQiKXtBPVN0cmluZyhENChKWzBdLHopKTticmVhayBhfWlmKCFnZCl7QT16O2JyZWFrIGF9aWYoWVszN10oMTMseixKWzFdKSl7aWYoSz09PSJzdHJpbmciKXtBPVJbNDJdKDEyLEpbMl0seixKWzFdKTticmVhayBhfWlmKEs9PT0ibnVtYmVyIil7QT1ZWzQ2XSg1LEpbMl0seixKWzFdKTticmVhayBhfX19aWYoKEIrNSYxNSk9PSgoQisxJjYyKT49QiYmQi1iWzJdPDwxPEImJihMRC5jYWxsKHRoaXMsOTU5LDEzLFsyXSksdGhpcy5QPXRoaXMuVT10aGlzLlc9dGhpcy5NPXRoaXMuaT10aGlzLm09dGhpcy5qPXRoaXMuQT10aGlzLlg9dGhpcy5IPXRoaXMuSz10aGlzLkM9dGhpcy5vPS0xLHRoaXMuRD1nW2JbMl1dKGJbMl0pLHRoaXMuZz1nW2JbMl1dKGJbMl0pKSwzKSl7Zm9yKDshZ1tiWzBdXSgyMSwKdGhpcy52KSYmdGhpcy5sPHRoaXMuTDspdGhpcy5sKz0xLHo9ZVs0NF0oMzMsdGhpcy52KSxLPWtbMTVdKDMyLHRoaXMudiksdGhpcy5YW0tdKHopO2dbYlswXV0oYlsyXSx0aGlzLnYpfHwodGhpcy5PPXRoaXMudi52KX1yZXR1cm4oQiY1MSk9PUImJihBPW5ldyB6aChmdW5jdGlvbih2KXtLLnRoZW4oZnVuY3Rpb24ocCl7di5jbG9zZWR8fCh2Lm5leHQocCksdi5jb21wbGV0ZSgpKX0sZnVuY3Rpb24ocCl7cmV0dXJuIHYuZXJyb3IocCl9KS50aGVuKHosa1syMl0uYmluZChudWxsLDUyKSl9KSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKHA9WzIsImNhbGwiLCJpbm5lckhlaWdodCJdLEI8PDEmcFswXSk9PXBbMF0pYTp7aWYoKEM9TUYseikudltDXSl7UT16LnZbQ107YnJlYWsgYX1pZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5W3BbSz16Lk0sMV1dKEssQykmJihBPWVlKEssQykpJiYidmFsdWUiaW4gQSl7UT0oYj0odj1BW3dCKCldLGRlbGV0ZSBLW0NdLApQcm9taXNlLnJlc29sdmUodikpLHopLnZbQ109YjticmVhayBhfUo9bmV3IFByb21pc2UoZnVuY3Rpb24obil7eFYoSyxDLHtjb25maWd1cmFibGU6ITAsc2V0OmZ1bmN0aW9uKFope2RlbGV0ZSAobihaKSxLKVtDXX19KX0pLFE9ei52W0NdPUp9aWYoKEItcFswXXwxNSk+PUImJihCLTVeMTApPEIpYTp7aWYoSy5sKXtRPVJbMzZdKDQwLEsubCk7YnJlYWsgYX1RPW5ldyBibSgoKEo9RFtDPVJbMTZdKDksd2luZG93KS53aWR0aCwxMV0oOCkuaW5uZXJXaWR0aCkmJko8QyYmKEM9SiksQyksaFkoUlsxNl0oMTEsd2luZG93KS5oZWlnaHQsRFsxMV0oOClbcFsyXV18fHopKX1yZXR1cm4oQi03XjEyKT49QiYmQis2Pj5wWzBdPEImJihKPUp8fHosUT1mdW5jdGlvbigpe3JldHVybiBLLmFwcGx5KHRoaXMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLHosSikpfSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEItKCgoKCgoQT1bMiwiTSIsbnVsbF0sQi0KNileMjUpPEImJihCKzYmMjkpPj1CJiYodGhpcy52PUFbMl0sdGhpc1tBWzFdXT1BWzJdKSwoQi01fDI3KTxCKSYmQi02PDwxPj1CJiYoQz1LLmRlZmF1bHRWaWV3LEo9Sy5zY3JvbGxpbmdFbGVtZW50P0suc2Nyb2xsaW5nRWxlbWVudDprZXx8Sy5jb21wYXRNb2RlIT0iQ1NTMUNvbXBhdCI/Sy5ib2R5fHxLLmRvY3VtZW50RWxlbWVudDpLLmRvY3VtZW50RWxlbWVudCxiPW5ldyBaNigoQz09ej92b2lkIDA6Qy5wYWdlWU9mZnNldCl8fEouc2Nyb2xsVG9wLChDPT16P3ZvaWQgMDpDLnBhZ2VYT2Zmc2V0KXx8Si5zY3JvbGxMZWZ0KSksQiszKSYzOSk8QiYmKEIrMV4xMSk+PUImJihiPUdbMTNdKDI1LGZ1bmN0aW9uKHYscCl7aWYoKHA9WzIsIlgiLG51bGxdLHYuTSk9PXopcmV0dXJuIHYudihIWzZdKDQsImVuIixwWzJdLDEscFswXSxLKSxwWzBdKTsoSy5OeC5zZW5kKFdsLChKPXZbcFsxXV0sSikpLHYpLlIoKX0pKSw5KTw8QVswXT49QiYmKEIrM14yMSk8QiYmKHBRLmNhbGwodGhpcyksCnRoaXNbQVsxXV09eiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKEItOF4xMCk+PShXPVsxNCwiYkMiLCJsNyJdLChCPj4xJjYpPT0yJiZlWzM1XSgyOSwwKS5mb3JFYWNoKGZ1bmN0aW9uKE4seCxmLEwscil7Zm9yKHI9KHg9KGY9WzUwLDc4LDEwXSxmWzBdKSxmWzFdKTs7KXRyeXtpZih4PT1mWzJdKWJyZWFrO2Vsc2UgeD09MzA/KHI9ZlsxXSx4PWZbMl0pOng9PWZbMF0/eD1OLnN0YXJ0c1dpdGgoZ1sxNF0oNixzcCkpPzg1OmZbMl06eD09ODUmJihyPTQ4LERhdGUubm93KCk+cGFyc2VJbnQoTi5zcGxpdChJOCgpKVsxXSxmWzJdKSsxRTQmJkdbMzBdKDcsMCxOKSx4PWZbMl0pfWNhdGNoKFYpe2lmKHI9PWZbMV0pdGhyb3cgVjtyPT00OCYmKEw9Vix4PTMwKX19KSxCKSYmKEItOF4yNSk8QilhOntpZigoQT1bIm5vbmUiLDI1MCwhMV0sSik9PShLLnY9PXopKXtaPW1bMl0oNik7YnJlYWsgYX1pZihKKXtaPSgoKG49KCgocD1LLnYsdj1LW1dbMl1dKCksClE9ZVtXWzBdXSgxNiwhMCxLKSxLLklUKCkpP1EuYWRkKEdbMTddKDU2LCEwLEssQVsyXSkpOlEuYWRkKGVbOV0oMTcsQVsyXSxBWzJdLHYsSyxwKSksSClbMjNdKFdbMF0sQVsyXSwiMSIsImJsb2NrIixLKSxDJiZDLnJlc29sdmUoKSxSWzddKDM2KSksaylbMl0oMTUsWVsyM10oNTMsSyksUSxFdixSeChmdW5jdGlvbigpe24ucmVzb2x2ZSgpfSxLKSksS1tXWzFdXSh6KSxRKS5wbGF5KCksbi5wcm9taXNlKTticmVhayBhfVo9KEtbRFsyNl0oNjYsITAsQVsxXSwiMCIsQVswXSxLLGIpLFdbMV1dKDEpLG0pWzJdKDQpfXJldHVybihCJjExNyk9PUImJihaPXc1KCkpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4KXtpZihCKyh6OD1bNCwxLDQ0XSx6OClbMF0+PTE2JiYoQnwzKTwzMCl7Zm9yKEs9KHo9dGhpcy5sZW5ndGgsdGhpc1t6LXo4WzFdXSk7Sz09PTA7KXotLSwKSz10aGlzW3otejhbMV1dLHRoaXMucG9wKCk7KGIzPXRoaXMsej09PTApJiYodGhpcy5zaWduPSExKX1yZXR1cm4oQi05JihCPDwoKEItOSYxNSk9PXo4WzBdJiYoYjM9eVszOF0oMyx2b2lkIDAsSz09bnVsbD9LOmVbMjZdKDEwLCI6ICIsSykseixKKSksMikmMTJ8fChLPW5ldyBXVSxEWzM3XSgxMyxmdW5jdGlvbihqTixaRyxuRCl7S1taR109ZzBbMl0oNyxuRCl9LHopLEsubGQ9ei5sZCxiMz1LKSwxNCkpPDImJihCfDIpPj56OFswXT49MyYmKGg9WzMsNCwxNl0sQT1BPT09dm9pZCAwP251bGw6QSxFPUosdj12PT09dm9pZCAwPzA6dixRPVE9PT12b2lkIDA/MDpRLEw9SixFPUU9PT12b2lkIDA/MDpFLEw9TD09PXZvaWQgMD8wOkwscC5ZQXx8KFY9SFsyMF0oNjMsMTEscCksQjg9TCxzdz1RLGM9RSxQPW5ldyBGNCxxPUhbMF0oNDcsUCx6OFsxXSxwLmkpLG49ZVs0M10oNDUscSxwLlgsMikseD1rWzZdKHo4WzFdLGhbMF0sbixzdz5KP3N3OnZvaWQgMCksdT1rWzZdKHo4WzFdLGhbejhbMV1dLAp4LGM+Sj9jOnZvaWQgMCksYT1rWzZdKDU5LEssdSxCOD5KP0I4OnZvaWQgMCksZD1PWzQ2XSh6OFsxXSwzMixKLGEpLEhbejhbMl1dKDY5LFYsRjQsQyxkKSksTT1lWzMxXSgzMiwhMCxwLnYpLGY9RGF0ZS5ub3coKS50b1N0cmluZygpLFc9eVsxM10oMiwhMCxoW3o4WzFdXSxmLE0pLHQ9a1szNF0oMjUsaFsyXSxCMixoWzBdLGIuc2xpY2UoKSxXKSxBJiYocj1BLFg9bmV3IHNLLEpZPWtbNl0oMzEseixYLHIpLFM9bmV3IHpRLFU9SFt6OFsyXV0oMjIsUyxzSywyLEpZKSxOPW5ldyBLcSx3PUhbejhbMl1dKDIyLE4selEsejhbMV0sVSksWj1IWzBdKDUzLHcsMiw5KSxIW3o4WzJdXSg2OSx0LEtxLDE4LFopKSx2JiZIWzQ5XSgyMCwxNCx2LHQpLGIzPXQpLChCKzgmNjApPj1CJiYoQis2JjU2KTxCJiZULmNhbGwodGhpcyx6KSxiM30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFKXtpZihCKzc+PihjPVsxNCwyOSw0MV0sMyk9PTImJihwPQpbIkNTUzFDb21wYXQiLCJweCIsLjVdLERbMjVdKDEwLCJ8WyIsSi52KT09InZpc2libGUiKSl7QT1SWzM2XSg1NixZWzQ3XShjWzJdLCExLEopKTthOntpZih2PXdpbmRvdyxWPTAsQz12LmRvY3VtZW50KXtpZihyPShiPUMuYm9keSxDLmRvY3VtZW50RWxlbWVudCksIXJ8fCFiKXtQPTA7YnJlYWsgYX0obj1SWzE2XSgxMyx2KS5oZWlnaHQsQy5jb21wYXRNb2RlPT1wWzBdJiZyLnNjcm9sbEhlaWdodCk/Vj1yLnNjcm9sbEhlaWdodCE9bj9yLnNjcm9sbEhlaWdodDpyLm9mZnNldEhlaWdodDoocT1yLnNjcm9sbEhlaWdodCxMPXIub2Zmc2V0SGVpZ2h0LHIuY2xpZW50SGVpZ2h0IT1MJiYocT1iLnNjcm9sbEhlaWdodCxMPWIub2Zmc2V0SGVpZ2h0KSxWPXE+bj9xPkw/cTpMOnE8TD9xOkwpfVA9Vn1pZihaPShXPShOPSh4PShmPWhZKFAsZVs0MF0oMzQsMCxKKS5oZWlnaHQpLGUpWzM2XSgzNixwWzJdLEopLGVbMjRdKDYsZVtjWzJdXShjWzFdLEssZG9jdW1lbnQpLnkrMTAseC55LUEuaGVpZ2h0KgpwWzJdLGVbY1syXV0oMzMsSyxkb2N1bWVudCkueStlWzQwXSgyMCwwLEopLmhlaWdodC1BLmhlaWdodC0xMCkpLGVbMjRdKDQseC55LUEuaGVpZ2h0KnosTix4LnktQS5oZWlnaHQqLjEpKSxlWzI0XSgyLDEwLFcsaFkoMTAsZi1BLmhlaWdodC0xMCkpKSxKLlg9PUpmKVE9eC54PmVbNDBdKDE4LDAsSikud2lkdGgqcFsyXSxZWzM1XSg0MCxKLnYse2xlZnQ6ZVszNl0oMzUscFsyXSxKLFEpLngrKFE/LUEud2lkdGg6MCkrcFsxXSx0b3A6WitwWzFdfSksbVsyMV0oMSwiLiIscFsxXSxwWzJdLCJ0b3AiLEosWixRKTtlbHNlIFlbMzVdKDMyLEoudix7bGVmdDplW2NbMl1dKDMyLEssZG9jdW1lbnQpLngrcFsxXSx0b3A6WitwWzFdLHdpZHRoOmVbNDBdKDMwLDAsSikud2lkdGgrcFsxXX0pfWlmKChCfDI0KT09QilHWzM1XSgxNix6LnUoKSxLLCJyYy1yZXNwb25zZS1pbnB1dC1maWVsZC1lcnJvciIpO3JldHVybihCLTl8MTEpPEImJihCKzkmNDQpPj1CJiYoSz16Lk1bei52KzBdLGdbY1swXV0oMzIsCjEseiksRT1LKSxFfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKEImKEE9WzU5LDI2LDQ4XSxBKVswXSk9PUImJihiPSEhKEsuR0omQykmJiEhKEsuWk0mQykhPUomJighKDAmQyl8fGdbM10oQVsyXSxLLG1bQVsxXV0oODAseiwyLDE2LDY0LEMsSikpKSYmIUsubSksQjw8MiY2KXx8KGI9bmV3IEROKGZ1bmN0aW9uKHYpe3JldHVybiB2LnN1YnN0cigwLEsubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1LK3p9KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7aWYoQisoYz1bMiwxLCIiXSw3KT4+Y1swXTxCJiYoQi04XjExKT49Qil7Zm9yKGY9KE49KGI9KFo9KChZWzhdKDExLCJudW1iZXIiLChXPVsyLDAsNF0sSykpLEo9PT12b2lkIDAmJihKPVdbY1sxXV0pLHkpWzE5XShjWzBdLDUsV1tjWzFdXSksQT1Yb1tKXSxBcnJheShiTihLLmxlbmd0aC96KSkpLFcpW2NbMV1dLEEpWzY0XXx8Y1syXSxXW2NbMV1dKTtmPApLLmxlbmd0aC1XWzBdO2YrPXopVj1LW2ZdLHg9S1tmK2NbMV1dLHA9QVsoViZ6KTw8V1tjWzBdXXx4Pj5XW2NbMF1dXSxQPUFbVj4+V1swXV0sQz1LW2YrV1swXV0sUT1BWyh4JjE1KTw8V1swXXxDPj42XSxuPUFbQyY2M10sWltiKytdPWNbMl0rUCtwK1ErbjtyPSh2PVdbY1sxXV0sTik7c3dpdGNoKEsubGVuZ3RoLWYpe2Nhc2UgV1swXTp2PUtbZitjWzFdXSxyPUFbKHYmMTUpPDxXWzBdXXx8TjtjYXNlIGNbMV06TD1LW2ZdLFpbYl09Y1syXStBW0w+PldbMF1dK0FbKEwmeik8PFdbY1swXV18dj4+V1tjWzBdXV0rcitOfXE9Wi5qb2luKGNbMl0pfXJldHVybiBCPj4oQisoKEIrMyYxNSk9PWNbMF0mJihxPVREKCc8ZGl2PlRoaXMgc2l0ZSBpcyBleGNlZWRpbmcgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvZmFxI2FyZS10aGVyZS1hbnktcXBzLW9yLWRhaWx5LWxpbWl0cy1vbi1teS11c2Utb2YtcmVjYXB0Y2hhIiB0YXJnZXQ9Il9ibGFuayI+cmVDQVBUQ0hBIHF1b3RhPC9hPi48L2Rpdj4nKSksCjUpJjE1fHx6JiZ6LnBhcmVudE5vZGUmJnoucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh6KSxjWzFdKSY3fHwoej1SWzI0XSg4MCx6KSxxPURbNDBdKDU2LG51bGwseikpLHF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oQjw8KHY9WyJ2Iiw0Nyw2Nl0sMikmN3x8KGpjLmNhbGwodGhpcyx6LEosQyxiLEEpLHRoaXNbdlswXV09bmV3IENxLGdbMTRdKDU3LGJPLHRoaXNbdlswXV0pLE9bdlsxXV0oMTcsITAsInJjLWFuY2hvci1jaGVja2JveCIsdGhpc1t2WzBdXSkseVsxMF0odlsyXSwzNix0aGlzW3ZbMF1dLHRoaXMpLHRoaXMuVz1LKSwoQi02JjcpPj01KSYmQj4+MTwxMyYmKEs8MTAwfHxtW3ZbMV1dKDMsMSxBZiwxKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKFE9WzMsNCxudWxsXSxCJjQ1KT09Qil7Zm9yKGI9Qz0oQT1bXSwwKTtDPEoubGVuZ3RoO0MrKyl2PUouY2hhckNvZGVBdChDKSx2PksmJihBW2IrK109diZLLHY+Pj16KSxBW2IrK109CnY7cD1BfWlmKChCPj4yJjE1KT09UVsxXSYmeiE9PWVKKXRocm93IEVycm9yKCJpbGxlZ2FsIGV4dGVybmFsIGNhbGxlciIpO2lmKChCfDg4KT09QiYmKHA9ZVtRWzFdXSg0OCxRWzJdLFFbMl0sdGhpcyx0NSh6KSxLKSksKEImMTA4KT09Qil7aWYoSyE9eiYmdHlwZW9mIEshPT0ic3RyaW5nIil0aHJvdyBFcnJvcigpO3A9S31pZihCKzU+PlFbMV08MiYmKEIrUVswXSY3KT49UVsxXSl7aWYoKHRoaXMuYnVmZmVyPUssSikmJiF6KXRocm93IEVycm9yKCk7dGhpcy52PXp9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybigoYj1bImVuZFRpbWUiLDEsInByb2dyZXNzIl0sQj4+YlsxXSYzKT09YlsxXSYmKEM8Si5zdGFydFRpbWUmJihKW2JbMF1dPUMrSltiWzBdXS1KLnN0YXJ0VGltZSxKLnN0YXJ0VGltZT1DKSxKW2JbMl1dPShDLUouc3RhcnRUaW1lKS8oSltiWzBdXS1KLnN0YXJ0VGltZSksSltiWzJdXT5LJiYoSltiWzJdXT1LKSxHWzM0XSgxNiwwLEpbYlsyXV0sCkopLEpbYlsyXV09PUs/KEoudj16LG1bMzFdKDcxLCEwLEopLEouaSgpLEoudEwoRXYpKTpKLnY9PUsmJkouT1goKSksQiYxMyk9PUImJihtWzldKDE3LHosdjIsT1s0MV0oMjIpKSxBPXopLEF9XX0oKSxPPWZ1bmN0aW9uKCl7cmV0dXJuW2Z1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZih2PVsyOSxudWxsLDgyXSwoQiY5MCk9PUIpYTp7aWYoej09KEo9KEs9WzgsbnVsbCwhMF0sdHlwZW9mIHopLEtbMV0pKXtwPXo7YnJlYWsgYX1pZihKPT09ImJpZ2ludCIpe3A9R1szMV0odlsyXSxLdyg2NCx6KSk7YnJlYWsgYX1pZihZWzM3XSgxLHosS1syXSkpe3A9Sj09PSJzdHJpbmciP1lbMjJdKDMzLDAsMTYseik6WVt2WzBdXSgxOSxLWzJdLEtbMF0seik7YnJlYWsgYX19cmV0dXJuKEIrOCYoQis2Pj40Pj0zJiYoQl40Mik8MjImJnRoaXMuQihbdGhpcy5TXSksNDIpKTxCJiYoQi0xXjkpPj1CJiYoR1sxMF0oODYsWTQsSyl8fEdbMTBdKDgzLGNuLEspP0M9U3RyaW5nKEspLnJlcGxhY2UoZnMsCmdbMjddLmJpbmQodlsxXSwyNSkpOihLIGluc3RhbmNlb2YgeGs/Sj1lWzddKDQxLG1bNDRdKDE2LHosSykpOihLIGluc3RhbmNlb2YgSGw/Yj1lWzddKDQzLFlbMzFdKDE5LEspLnRvU3RyaW5nKCkpOihBPVN0cmluZyhLKSxiPVRRLnRlc3QoQSk/QS5yZXBsYWNlKGZzLGdbMjddLmJpbmQodlsxXSwyNikpOm1xKCkpLEo9YiksQz1KKSxwPUMpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7cmV0dXJuKCgoKChXPVswLCJhZGRpdGlvbnMgdGV4dCIsNDldLEIpLTc+PjM9PTImJihuPVszLDEsMTNdLFE9SihLKCksMTEsMTApLGI9bmV3IGpxLEM9SihRLG5bMl0pLHA9SFtXWzJdXShXWzJdLG5bMV0sQyxiKSxaPUooUSw4KSx2PUhbV1syXV0oNDQsMixaLHApLEE9SihRLDQ2KSxOPUhbV1syXV0oNTIsbltXWzBdXSxBLHYpLnllKCkpLChCfDYpPDE4JiZCPj4yPj0xKSYmcHEuY2FsbCh0aGlzLHpqKSxCKXw0MCk9PUImJihOPWVbNDFdKDMxLG51bGwsZG9jdW1lbnQpLnkpLAooQiYxMjEpPT1CKSYmKEE9WyExLCJub25lIiwidmVydGljYWwiXSxBcnJheS5pc0FycmF5KEopJiYoSj1KLmpvaW4obzkoKSkpLGI9UTUreixKPT09IiJ8fEo9PXZvaWQgMD8obnF8fChDPXt9LG5xPShDW1plXT1BW1dbMF1dLENbVzJdPUFbMV0sQ1tneF09QVsxXSxDW05UXT1BW1dbMF1dLENbT0tdPSJvZmYiLENbeGddPUFbV1swXV0sQ1tEZV09QVtXWzBdXSxDW2ZxXT1BWzJdLENbb0ZdPUFbV1swXV0sQ1tMcV09V1sxXSxDW1JGXT1BW1dbMF1dLENbcnhdPUFbMV0sQ1tWNV09QVtXWzBdXSxDW0dRXT1BW1dbMF1dLENbSDJdPUFbV1swXV0sQ1tlcV09ImZhbHNlIixDKSksdj1ucSx6IGluIHY/Sy5zZXRBdHRyaWJ1dGUoYix2W3pdKTpLLnJlbW92ZUF0dHJpYnV0ZShiKSk6Sy5zZXRBdHRyaWJ1dGUoYixKKSksTn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgocD1bNiw1LDNdLEJ8ODApPT1CJiYodj1uZXcgemgoZnVuY3Rpb24oUSxuKXtpZigobj16W1AyXSgpLGUpWzI0XSg1MCwKbi5zdWJzY3JpYmUpKXJldHVybiBuLnN1YnNjcmliZShRKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm92aWRlZCBvYmplY3QgZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBTeW1ib2wub2JzZXJ2YWJsZSIpO30pKSxCKzdeMTIpPj1CJiZCLTk8PDI8Qil7aWYoSz09Sil0aHJvdyBFcnJvcigkZyk7aWYoQz1KJiZLLmkmJksuSylBPUsuSyxiPUsuaSxDPWIuQSYmQT9HWzIxXSg5LEEsYi5BKXx8ejpudWxsO2lmKEMmJksuaSE9Sil0aHJvdyBFcnJvcigkZyk7Sy5pPUosblEuWS53Yi5jYWxsKEssSil9aWYoKEIrcFsxXV4xMik8QiYmKEIrcFsxXSY1Nik+PUIpe2lmKHR5cGVvZiB6PT09ImZ1bmN0aW9uIilKJiYoej1SeCh6LEopKTtlbHNlIGlmKHomJnR5cGVvZiB6LmhhbmRsZUV2ZW50PT0iZnVuY3Rpb24iKXo9Ungoei5oYW5kbGVFdmVudCx6KTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGxpc3RlbmVyIGFyZ3VtZW50Iik7dj1OdW1iZXIoSyk+MjE0NzQ4MzY0Nz8tMTpHbC5zZXRUaW1lb3V0KHosCkt8fDApfWlmKCEoQi0oQi1wWzJdPj5wWzJdPT1wWzJdJiYodj10eXBlb2Ygej09PSJzdHJpbmciP0suZ2V0RWxlbWVudEJ5SWQoeik6eiksOSk+PjQpKXtpZighRkUoeikpc3dpdGNoKGVFKXtjYXNlIDI6dGhyb3cgZVtwWzBdXSgyMyxxVCgpKTtjYXNlIDE6WVsxNV0oNDkscVQoKSl9dj1lRT09PTI/enwwOnp9cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKChBPVswLDEsImluZGV4T2YiXSxCKSY1Nik9PUIpYTp7aWYoIU51bWJlci5pc0Zpbml0ZSh6KSl7dj1TdHJpbmcoeik7YnJlYWsgYX0oKGI9KEM9U3RyaW5nKHopLENbQVsyXV0oZUMoKSkpLGIpPT09LTEmJihiPUMubGVuZ3RoKSxKPUNbQVswXV09PT0iLSI/STgoKToiIikmJihDPUMuc3Vic3RyaW5nKEFbMV0pKSx2PUoraU8oIjAiLGhZKEFbMF0sSy1iKSkrQ31yZXR1cm4gQi0yPj4zPj1BWzBdJiYoKEJeMjApJjcpPDImJih0aGlzLnY9bmV3IHk1LHRoaXMuTT16KSx2fSxmdW5jdGlvbihCLHosSyxKLApDLGIsQSx2LHAsUSl7aWYoKHA9WyIiLCJwcm9taXNlIiwxXSxCPDxwWzJdJjE0KT09NCYmIVJbcFsyXV0oOCx6LEspKWlmKGI9Z1sxMV0ocFsyXSwiXHJcbiIscFswXSxLKSx0eXBlb2YgQz09PSJzdHJpbmciKXY9R1swXSgxMCxKKSxBPWIhPW51bGw/Ij0iK0dbMF0oOCxiKToiIixlWzM0XSgxOSxwWzBdLEMsditBKTtlbHNlIG1bOV0oMTcsQyxKLGIpO3JldHVybigoKEItKChCLTd8NjgpPEImJkItcFsyXTw8cFsyXT49QiYmKFE9Yi5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuKG48WWdbSl18fG4+WWcuc3Vic3RyKDEsQykpJiYobjxZZ1tDXXx8bj5ZZ1t6XSkmJihuPFlnW0tdfHxuPllnWzZdKX0pKSxCPDxwWzJdJjMxfHwodGhpcy5PZD1mdW5jdGlvbigpe3JldHVybiAwfSkscFsyXSkmNyk9PTMmJih0aGlzW3BbMV1dPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4sWil7Sz0oej1aLG4pfSksdGhpcy5yZXNvbHZlPUssdGhpcy5yZWplY3Q9eiksQik+PjImMTEpPT1wWzJdJiZULmNhbGwodGhpcywKeiksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKCgoQj4+KCgoKGI9WyJpIiwicHJvZ3Jlc3MiLCJkdXJhdGlvbiJdLEIrMikmNyk9PTQmJihDPW5ldyBOTixKLnRoZW4oZnVuY3Rpb24odil7Qy54QSh2KX0sZnVuY3Rpb24odil7eVsxM10oNzYsSyxDKSxnWzQ1XSgzNyx6LEMsSyx2KX0pLEE9QyksQik+PjImMTV8fExELmNhbGwodGhpcywzNjAsMjAsWzJdKSwxKSYxNSk9PTQmJigkTS5jYWxsKHRoaXMseiksdGhpcy5jb29yZHM9Sy5jb29yZHMsdGhpcy54PUsuY29vcmRzWzBdLHRoaXMueT1LLmNvb3Jkc1sxXSx0aGlzLno9Sy5jb29yZHNbMl0sdGhpc1tiWzJdXT1LW2JbMl1dLHRoaXNbYlsxXV09S1tiWzFdXSx0aGlzLnN0YXRlPUsudiksQi0xKSYxNSk+PTEzJiYoQl42MSk8MjAmJih0aGlzLkY9dm9pZCAwLEM9WzMsMCxudWxsXSx0aGlzLlg9Q1syXSx0aGlzLk09Q1syXSx0aGlzLlI9ITEsdGhpcy52PUNbMV0sdGhpc1tiWzBdXT1DWzJdLHRoaXMuQT0hMSx6IT1EWzNdLmJpbmQobnVsbCwKMSkpKXRyeXtKPXRoaXMsei5jYWxsKEssZnVuY3Rpb24odil7Z1s4XSgyNSwzLEosMix2KX0sZnVuY3Rpb24odil7Z1s4XSgxMiwzLEosMyx2KX0pfWNhdGNoKHYpe2dbOF0oMTMsQ1swXSx0aGlzLENbMF0sdil9cmV0dXJuIEIrNj49MjImJihCKzYmMTUpPDMmJihBPWdbMTZdKDc1LHZvaWQgMCxLLHosUUIpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe3JldHVybihOPVs2LCJKIiw1XSwoQitOWzBdXk5bMF0pPj1CJiYoQi1OWzJdfDI2KTxCKSYmVC5jYWxsKHRoaXMseiksKEImMTE3KT09QiYmKFE9Z1syNl0oMjYsTFJbTlsxXV0oKSxLKSx2PWdbMTJdKDMsUSkubmV4dCgpLnZhbHVlLEF8fChBPWdbMTJdKDEsZ1syNl0oODksTFJbTlsxXV0oKSxLKSkubmV4dCgpLnZhbHVlLFEucHVzaChBKSksWj1bbVsxMl0oOTcsQSx6KSxtWzEyXSg0MSx2LFJuKSxSWzE5XSgzMyx2LHYsSildLG49W1JbMTldKDMzLGIsQSxKKSxDXSxaLnB1c2goRFsxNF0oNTgsQSxuLAp2KSksKHA9TFJbTlsxXV0oKSkudi5hcHBseShwLGVbMzNdKDIwLFEpKSxXPVopLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKHY9WzEzLDYsNF0sQikmOTQpPT1CKWE6e2lmKCFIWzQ0XSg3LEspKXtwPURbdlswXV0oMTkseixTdHJpbmcoSykpO2JyZWFrIGF9aWYoSy5nNyYmKEo9Sy5nNygpLEogaW5zdGFuY2VvZiBJYikpe3A9SjticmVhayBhfXA9RFt2WzBdXSgxNyx6LFRIKCkpfXJldHVybiBCLTc8PDE+PUImJihCLTNedlsxXSk8QiYmKEo9Sj09PXZvaWQgMD8wOkosQT1IW3ZbMl1dKDkyLGIsQyxLLHZvaWQgMCxEWzE0XS5iaW5kKG51bGwsODApKSxwPUEhPXo/QTpKKSxwfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihCXjE2KT4+KChCLShCLTY8PChDPVsxLDcsMzBdLENbMF0pPEImJkItMzw8Q1swXT49QiYmKGMyW3pdPUspLENbMV0pPj4zPT0zJiZULmNhbGwodGhpcyx6KSxCLTI8PDI+PUImJihCKzkmNTYpPEIpJiYoSj1PWzQ1XSgyNyk/WjgucGxhdGZvcm09PT0KIkFuZHJvaWQiOkRbMjBdKDUsIkFuZHJvaWQiKSksNCl8fChLPVsiICIsInJjLWRlZmF1bHRjaGFsbGVuZ2UtcGF5bG9hZCIsJyI+PC9kaXY+PGRpdiBjbGFzcz0iJ10sej1PWzQwXSg3OSxhWigpLCc8ZGl2IHRhYmluZGV4PSIwIj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDczLCJyYy1kZWZhdWx0Y2hhbGxlbmdlLXJlc3BvbnNlLWZpZWxkIikrS1syXStSWzExXShDWzFdLEtbQ1swXV0pK0tbMl0rUlsxMV0oOSwicmMtZGVmYXVsdGNoYWxsZW5nZS1pbmNvcnJlY3QtcmVzcG9uc2UiKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIj4nKSxnWzI1XSgzNix6LCJNdWx0aXBsZSBjb3JyZWN0IHNvbHV0aW9ucyByZXF1aXJlZCAtIHBsZWFzZSBzb2x2ZSBtb3JlLiIpLGdbMjVdKDY4LE9bNDBdKDc4LHosSWYoKSksRFtDWzJdXSgyNSxLWzBdKSksSj16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBKPVs3LDAsNDZdLChCfEpbMF0pPj40PDImJkI8PDE+PTI3JiYoSz1uZXcgT2wsCkM9SFtKWzFdXShKWzJdLEssMSx6KSksQ30sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gQis2JigoQz1bMTksInNyYyIsbnVsbF0sKEJeMjgpPj41PDMpJiYoQl44KT49Q1swXSYmSy5DIT16JiYoR2wuY2xlYXJUaW1lb3V0KEsuQyksSy5DPXopLDQpfHwoSy5tQT16LEsubGlzdGVuZXI9Q1syXSxLLnByb3h5PUNbMl0sS1tDWzFdXT1DWzJdLEsuZEI9Q1syXSksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQnw1Nik9PSgoKCgodj1bMTUsMyw4XSwoQiY1Nik9PUImJnRoaXMudikmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PXosR1s0OF0oMTgsNCx0aGlzKSksKEItdlsxXXwxNyk+PUIpJiYoQi12WzFdfDc1KTxCJiYoQT1uZXcgemgoZnVuY3Rpb24ocCxRKXtyZXR1cm4gUT16LEoudzcoZnVuY3Rpb24oKXtRPT09Sy5sZW5ndGg/cC5jb21wbGV0ZSgpOihwLm5leHQoS1tRKytdKSxwLmNsb3NlZHx8dGhpcy53NygpKX0pfSkpLEIpJnZbMF0pPT1CJiYoQT0KbmV3IFNxKEsseixiLEosQykpLChCXjUzKTw1JiYoQnx2WzJdKT4+dlsxXT49MiYmKHRoaXMuWD10aGlzLnY9dGhpcy5NPXopLEIpKWE6e2lmKChDPWdbMzFdKHZbMl0sOSx6KSxDLmRlZmF1bHRWaWV3JiZDLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpJiYoSj1DLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoeixudWxsKSkpe0E9SltLXXx8Si5nZXRQcm9wZXJ0eVZhbHVlKEspfHwiIjticmVhayBhfUE9IiJ9cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQisoQz1bMzIsNDgsOF0sQi0yJjd8fChiPUhbNDRdKDIyLEssRHgseixKKSksNykmNik+PTMmJihCPDwxJkNbMl0pPDUmJih6PVJbQ1syXV0oNjEsdGhpcyksSz1PW0NbMV1dKENbMF0sdGhpcyksdGhpcy54Slt6XT0hSyksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMpe3JldHVybihCLSgoKEImNzUpPT0oRT1bITEsNCwxXSxCKSYmCih3RS5jYWxsKHRoaXMpLEhbNDFdKDE5LEVbMF0sdGhpcyx6LEsseUcpLEhbNDFdKDM0LEVbMF0sdGhpcyx6LEssZlMpKSxCKS0yPj5FWzFdPj0yJiYoQj4+RVsyXSY4KTwyJiYodGhpcy52PXopLDMpJjcpPT1FWzJdJiYoUz1HWzEzXSgzMixmdW5jdGlvbihhLHUsWCl7WD1bMzksInYiLCh1PVsxOSw1LDNdLDEpXTtzd2l0Y2goYS5NKXtjYXNlIFhbMl06cD1uZXcgZGsscC5pbml0KG1rKEFbWFsxXV0pKSxyPVlbMjJdKDY2LHVbMF0scC5nZXQoKSk7dHJ5e049KDAsdCQueTUpKGIuaVtYWzFdXS5iaW5kKGIuaSxyKSw2KX1jYXRjaChkKXtaPWIuWC50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlbmQoRWgsbmV3IGxPKFtdKSl9KSxaLmNhdGNoKGtbMTBdLmJpbmQobnVsbCw1NikpfWZvcihMPShxNz0oeD0obj0oKGM9KGY9KEhbNF0oNjUsZVszMl0oWFswXSxiW1hbMV1dLGJbWFsxXV0uaGFzKEVLKT9FSzpqUCksYi5rbixwKSxWPWZ1bmN0aW9uKGQpe3JldHVybiBkLnB1KEwpLGQub3UoKX0sClhBLnNsaWNlKCkpLHVPLnNsaWNlKCkpLGdbMzRdKFhbMl0sQyxwLmdldCgpKSkmJihmLnB1c2goZVs0Ml0uYmluZChudWxsLFhbMl0pKSxjLnB1c2goNzgpKSxtWzM1XSg3NSxyKSksUHJvbWlzZS5yZXNvbHZlKE9bNDFdKDI2KSkpLFtdKSx2PXtUXzowfSxbXSk7di5UXzxmLmxlbmd0aDt2PXtUXzp2LlRffSx2LlRfKyspeD14LnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBEWzI0XSg0NCxmW2QuVF9dLGNbZC5UX10pLmNhbGwoYix0LG4sZC5UXyl9fSh2KSkudGhlbihWKTtyZXR1cm4gYVsoeD14LnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIGFGKGQsbVszNV0oNDMsMTAwKSl9KS50aGVuKFYpLnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIGhmKGQsbVszNV0oMTEsMTAwKSl9KS50aGVuKFYpLFgpWzFdXSgoMCx0JC55NSkoZnVuY3Rpb24oKXtyZXR1cm4geH0sMTEpLEspO2Nhc2UgSzphLkdfKHVbMl0pO2JyZWFrO2Nhc2UgdVsyXTppZighKFA9KFE9KFc9bmV3IGR4KEwpLApQYihmdW5jdGlvbihkLHQsaCxNLFUsdyxzdyxCOCxKWSl7Zm9yKEI4PW5ldyAodD1tWzM2XSgxOSwoSlk9WzgsKFU9WyJdIiwwLCEwXSwxMDApLDRdLG51bGwpLCExLEhbSllbMF1dKDM2LDM1NDkpLHlbMjZdKDU4LE5wKVtVWzFdXSksWHgpKDI0MCw3LDI1KSxkPVVbMV07ZDx0Lmxlbmd0aCYmKHc9QjgsaD13LmFkZCxzdz1uZXcga2csa1s5XSgxLEpZWzFdLFVbMV0sVVsyXSx0W2RdLHN3KSxNPVlbSllbMl1dKDU3LEdbN10oMjEsVVswXSxzdy52KSksaC5jYWxsKHcsIiIrTSkpO2QrKyk7bVsyXSgzMixVWzFdLFcsMTcsW0I4LnRvU3RyaW5nKCldLG1bNDldLmJpbmQobnVsbCwyNikpfSxudWxsKSxlKVs0MF0oNCwwLGIuTSkscT1bXSxbXSksYi5pKXx8IU4pe2EuR18odVtYWzJdXSk7YnJlYWt9cmV0dXJuIGFbKGEuQSg2KSxYKVsxXV0oTix6KTtjYXNlIHo6YS5GKEopO2JyZWFrO2Nhc2UgNjphLmkoKTtjYXNlIEo6cT1HW1hbMF1dKDksbVs0N10oNDksSix1W1hbMl1dLERPLmdldChiLmkpKSksClA9R1tYWzBdXSg1NyxrWzEzXSgyNSxYWzJdLEssbnVsbCxETy5nZXQoYi5pKSkpO2Nhc2UgdVtYWzJdXTpyZXR1cm4gYS5yZXR1cm4obmV3IHRmKHEsUSxQLE9bNDBdKDM2LFcpKSl9fSkpLFN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCEoQisoQT1bNSwiTSIsInYiXSwoQnw0KTw0MCYmKChCfDgpJjMxKT49MjEmJih0aGlzW0FbMl1dPXosdGhpc1tBWzFdXT0hMSx0aGlzLmk9Syx0aGlzLkE9Six0aGlzLlg9RGF0ZS5ub3coKSksKEIrQVswXV4xNyk+PUImJihCK0FbMF1eNyk8QiYmKEs9W251bGwsITEsIiJdLG9nLmNhbGwodGhpcyksdGhpcy5oZWFkZXJzPW5ldyBNYXAsdGhpcy5IPUtbMl0sdGhpcy5vPUtbMV0sdGhpcy5YPUtbMV0sdGhpcy5pPUtbMl0sdGhpc1tBWzFdXT0wLHRoaXMuRj1LWzBdLHRoaXMubD1LWzJdLHRoaXMuQz1LWzFdLHRoaXMuVz0wLHRoaXMuVT1LWzFdLHRoaXMuUj1LWzFdLHRoaXMuaj16fHxLWzBdLHRoaXNbQVsyXV09S1swXSx0aGlzLkE9S1sxXSksCkFbMF0pPj40KSl7Zm9yKHRoaXMuQT0oKChKPUo9PT0oKEs9Sz09PXZvaWQgMD8yOkssdGhpcylbQVsyXV09ej09PXZvaWQgMD82MDp6LHZvaWQgMCk/MjA6Six0aGlzKS5pPWJOKHRoaXNbQVsyXV0vNiksdGhpcylbQVsxXV09W10sQz0wLEspO0M8dGhpcy5pO0MrKyl0aGlzW0FbMV1dLnB1c2goUlszMF0oMTAsMCw2KSk7dGhpcy5YPUp9aWYoKEIrOF4xNik8QiYmKEIrNiYzMSk+PUIpYTp7aWYoSz09enx8dHlwZW9mIEs9PT0iYm9vbGVhbiIpe2I9SzticmVhayBhfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe2I9ISFLO2JyZWFrIGF9fXJldHVybiBCPDwyJjMwfHwoTjB8fEEkIGluIEt8fFhHKEssdTQpLEtbQSRdfD16KSxifSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKChCJjU3KT09KEM9WzUsNCwyMl0sQikmJihLPUs9PT12b2lkIDA/ITA6Syx6LnYmJks/KHoudi5jbGFzc0xpc3QuYWRkKFVLKSx6LnYuY2xhc3NMaXN0LnJlbW92ZShNVCkpOnoudiYmIUsmJih6LnYuY2xhc3NMaXN0LmFkZChNVCksCnoudi5jbGFzc0xpc3QucmVtb3ZlKFVLKSkpLEItQ1sxXXw0Mik+PUImJihCLTNeQ1syXSk8Qil7aWYoSy5VKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtLLlU9en1yZXR1cm4oQj4+MSY3KT49Q1sxXSYmQitDWzBdPj5DWzBdPDEmJihiPW1bMjNdKDI3LEosSyx6LGwpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEJeKChwPVs1NywiY2FsbCIsMjhdLEI+PjIpJjIzfHwodj1ZWzddKDczLHosZnVuY3Rpb24oUSxuLFope3JldHVybiBuPShaPVs0LDIsM10sRylbNDZdKFpbMV0sUSksT1taWzBdXShaWzJdLFpbMF0sNSwwLFpbMl0sbihEWzExXShaWzFdKSkuY29uY2F0KG4oZG9jdW1lbnQpKSl9KSkscFswXSkpPDE4JiZCPj4xPj0xMylUW3BbMV1dKHRoaXMseiwwLEVkLlJUKTtpZigoKEJeNyk+PjM9PTMmJih2PW5ldyB6aChmdW5jdGlvbihRLG4pe0RbMzFdKDE2LChuPVsxLDIsNV0sblsxXSksblswXSw0LG5bMl0seiwKUSkuY2F0Y2goZnVuY3Rpb24oWil7cmV0dXJuIFEuZXJyb3IoWil9KX0pKSxCKS03Pj02JiZCPj4xPDEwKWE6e2ZvcihDPShBPShiPUouc3BsaXQoZUMoKSksR2wpLHopO0M8Yi5sZW5ndGg7QysrKWlmKEE9QVtiW0NdXSxBPT1LKXt2PUs7YnJlYWsgYX12PUF9aWYoQis1Pj40PDEmJihCPDwxJnBbMl0pPj03KSRNW3BbMV1dKHRoaXMsd3gseik7cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEope2lmKCEoQi0oSz1bImNhbGwiLDQsN10sS1syXSk+PktbMV0pKVRbS1swXV0odGhpcyx6KTtyZXR1cm4oQl4yMyk+PktbMV18fCh0aGlzLnY9eiksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7cmV0dXJuKEI+PihCLTQmKFE9W251bGwsIk0iLDY0XSw3KXx8KGIhPVFbMF18fChiPSEhKHomSykpLEE9WVsyOV0oMzYsUVsyXSxLLEosUlsxMF0uYmluZChRWzBdLDEpLGIpLHY9MzIsQyYmKHZ8PTIpLEs9SyYxNjc2OTIxN3x2LGtbMzhdKDc5LEEsSykscD1BKSwxKSY2KTw1JiYoQj4+CjEmNSk+PTMmJih0aGlzLnY9eix0aGlzW1FbMV1dPUspLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoKGI9WyJ0b1N0cmluZyIsNywidGVzdCJdLEItYlsxXSkmYlsxXSk9PTEmJihDPUsuS3x8KEsuSz0iOiIrKEsub3oudisrKVtiWzBdXSh6KSkpLChCLTYmYlsxXSk9PTEpYTp7aWYoIUope0M9SUZ8fChJRj1uZXcgcTEoMCwwKSk7YnJlYWsgYX1pZighL15cZCskL1tiWzJdXShKKSl7Qz1LO2JyZWFrIGF9R1syNV0oNDAseixKKSxDPW5ldyBxMShPTyx4Tyl9cmV0dXJuIEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7aWYoQi0oUD1bMyw3LDgyXSxQKVsxXTw8MjxCJiYoQis4XjI3KT49QilhOntpZihKIT1LKWZvcih2PUouZmlyc3RDaGlsZDt2Oyl7aWYoQyh2KSYmKEEucHVzaCh2KSxiKSl7Vj0hMDticmVhayBhfWlmKE9bMjBdKDIsITEsbnVsbCx2LEMsYixBKSl7Vj0hMDticmVhayBhfXY9di5uZXh0U2libGluZ31WPXp9cmV0dXJuKChCXgooQj4+KCgoQl43NSkmMTUpPT0oQi01Pj5QWzBdPT0xJiYoSy54Kj16LEsueSo9eixWPUspLFBbMF0pJiYoZj1bMzQsMTksNF0sbj1LKCksYj1uZXcgRkEsQT1KKG4sZlswXSksdj1rWzZdKDI0LDUsYixBKSxDPUoobixmWzFdKSxOPWtbNl0oMjksZlsyXSx2LEMpLFE9SihuLDIxKSxwPWtbNl0oMSw2LE4sUSksVz1KKG4sZlsyXSwyOSksTD1rWzZdKDI3LDIscCxXKSxaPUoobixmWzJdLDM1KSx4PWtbNl0oMjYsMSxMLFopLHI9SihuLGZbMl0sNDcpLFY9a1s2XSgyNCxQWzBdLHgscikueWUoKSksMSkmMTV8fFQuY2FsbCh0aGlzLHosMzcpLFBbMl0pKSYyMyk9PTQmJihWPWU3KEsueC1KLngpPD16JiZlNyhLLnktSi55KTw9eiksVn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoIShCKzY+PihBPVsiWSIsNCwoQi03Pj4zfHwodGhpcy5rZXk9eix0aGlzLmRlZmF1bHRWYWx1ZT0hMSx0aGlzLmZsYWdOYW1lRm9yRGVidWdnaW5nPXZvaWQgMCx0aGlzLnBoYXNlPTIpLCJwcm90b3R5cGUiKV0sCkEpWzFdKSl7aWYoelt6W0FbMl1dPUJ6KEtbQVsyXV0pLEFbMl1dLmNvbnN0cnVjdG9yPXosc1kpc1koeixLKTtlbHNlIGZvcihDIGluIEspQyE9QVsyXSYmKHpHPyhKPWVlKEssQykpJiZ4Vih6LEMsSik6eltDXT1LW0NdKTt6W0FbMF1dPUtbQVsyXV19cmV0dXJuKChCXjM0KSY3KT09MiYmVC5jYWxsKHRoaXMseiwwLFNkLlJUKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKFo9WzIxLDEyLDVdLChCfDgpJlpbMl0pPT0xKXtpZihKJihRPVtudWxsLDEyOCwxNl0seikpdGhyb3cgRXJyb3IoKTtpZihwPShiPSh2PW1bMzRdKDEsUVswXSwoQT1IWzM1XSgyNixRWzFdLEopLEspLEEsQyksdj09PVFQPzc6dltBJF18MCksZ1syNF0oMix6LEosYikpLHomcHx8bVtaWzJdXSgxNSw0LHApfHxRWzJdJnApcD09PWJ8fG1bWlsyXV0oMTgsNCxwKXx8a1szOF0oOTQsdixwKSx2PWcwWzJdKDgsdiksYj0wLHA9SFs0M10oMzEseixwLEopLFlbMjVdKDM1LHYsQyxKLEEsSyk7Cm49KHAmPS0xMyxwIT09YiYma1szOF0oNzksdixwKSx2KX1pZigoQiYyOCk9PUIpe2ZvcihBPShKPSh6PShLPShDPVJbOF0oNTYsdGhpcyksYj1PWzQ4XSg2Myx0aGlzKSxrW1pbMF1dKDE1LHRoaXMpKSwiIiksZ1taWzFdXSg0LEspKSxKKS5uZXh0KCk7IUEuZG9uZTtBPUoubmV4dCgpKXorPWJbQS52YWx1ZV07dGhpcy54SltDXT16fWlmKCgoQl42MCkmMTApPT0oKEJ8NjQpPT1CJiYobj1IW1pbMF1dKDQ1LEsseikpLDIpKWE6e2lmKEFycmF5LmlzQXJyYXkoSikpe2Zvcih2PTA7djxKLmxlbmd0aDt2KyspT1syMl0oMTUsITAsSyxKW3ZdLEMsYixBKTtuPW51bGw7YnJlYWsgYX1uPShDPWtbMThdKDQwLEMpLGdbMF0oMTAsSykpP2dbNDNdKDIsITAsSixLLEMsSFs0NF0oOSxiKT8hIWIuY2FwdHVyZTohIWIsQSk6a1swXSgyLCExLEssYix6LEEsQyxKKX1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChCfDUpPj0ocD1bMTIsNDgsN10sMjApJiZCK3BbMl0+Pgo1PDEpYTp7aWYoW3FMLEs2XS5zb21lKChKPXoub3V0ZXJIVE1MLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oUSl7cmV0dXJuIEouaW5jbHVkZXMoUSl9KSkpe3Y9ITE7YnJlYWsgYX12PShLPVtKUixIUCxlZCxDNixiS10sW2VkLEFSXS5pbmNsdWRlcyh6LmF1dG9jb21wbGV0ZSl8fEsuc29tZShmdW5jdGlvbihRKXtyZXR1cm4gSi5pbmNsdWRlcyhRKX0pPyEwOiExKX1pZigoQl4oKEJ8cFsyXSk+PXBbMl0mJkI8PDI8MTgmJih2ei5jYWxsKHRoaXMseiksdGhpcy5BPWIsSyYmKHRoaXMubzE9ZnVuY3Rpb24oUSl7dHJ5e0soUSl9Y2F0Y2gobil7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihuKX19KSxKJiYodGhpcy5Ubz1mdW5jdGlvbihRKXt0cnl7SihRKX1jYXRjaChuKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKG4pfXRoaXMudW5zdWJzY3JpYmUoKX0pLEMmJih0aGlzLnNhPWZ1bmN0aW9uKCl7dHJ5e0MoKX1jYXRjaChRKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKFEpfXRoaXMudW5zdWJzY3JpYmUoKX0pKSwKNjQpKTwxOSYmQisyPj40Pj0yKWE6e2lmKGI9PUope3Y9YjticmVhayBhfWlmKEE9dHlwZW9mIGIsQT09PSJiaWdpbnQiKXt2PVN0cmluZyhLdyg2NCxiKSk7YnJlYWsgYX1pZighZ2Qpe3Y9YjticmVhayBhfWlmKFlbMzddKDE1LGIseikpe2lmKEE9PT0ic3RyaW5nIil7dj1tW3BbMF1dKDEsQyx6LGIpO2JyZWFrIGF9aWYoQT09PSJudW1iZXIiKXt2PUhbNDRdKDczLEssYix6KTticmVhayBhfX19cmV0dXJuKEItOCYxNSk9PTImJih2PVRHJiYhSz9HbC5idG9hKHopOmVbNDZdKDI4LDMsZVtwWzFdXSg1LDgsMjU1LHopLEspKSwoQi0yfDIyKTxCJiZCLTY8PDI+PUImJigoSj1MUi5KKCkpLnYuYXBwbHkoSixlWzMzXSgyMCxLLnJiKSksSy5yYi5sZW5ndGg9eiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZighKG49WyJDIiwiWCIsMV0sQjw8blsyXSYxNSkpYTp7aWYoKEM9WmYoTnVtYmVyKEopKSxOdSkoQykpe1E9R1szMV0oODksQyk7YnJlYWsgYX1RPSgoYj1KLmluZGV4T2YoZUMoKSksCmIhPT0tMSkmJihKPUouc3Vic3RyaW5nKHosYikpLGdbMjJdKDUxKT9HWzMxXSg4NSxENChLLEJpZ0ludChKKSkpOkdbMzFdKDg4LERbMjNdKDY0LDMyLDE2LEopKSl9aWYoKEImMTEpPT1CJiYoSi5NPUssSi5yYj1bXSxKLlIpKXtpZigoQz1ZWzQyXSgxNyx6LEpbblsxXV0pLEMubGVuZ3RoKSE9S3x8Si5pLmxlbmd0aCE9SylqYShKLnJiLEMpLGphKEoucmIsSi5pKSxKW25bMV1dW25bMV1dLmxlbmd0aD1LLG1bMjldKDYsSi5pKSxKLmkubGVuZ3RoPUs7Si5SLm1NKCl9cmV0dXJuKEIrOF4oKEItKCgoQl44NykmMjQpPDQmJihCPDxuWzJdJjExKT49MCYmVC5jYWxsKHRoaXMseiksMyleMjYpPEImJihCLTd8MTEpPj1CJiYoYj1bMCxudWxsLCExXSx3RS5jYWxsKHRoaXMpLHRoaXMuTT16LE0xPUsuVyx0aGlzLmlZPUoscDY9Sy5TLHA9dGhpcyx0aGlzLnY9Syx0aGlzLkZnPURbMzZdKDU2LGJbMF0sYltuWzJdXSx0aGlzLmlZKSx0aGlzLktxPUMsdGhpc1tuWzFdXT1weSx0aGlzLnVZPQpiW25bMl1dLHRoaXMuTng9YltuWzJdXSx0aGlzLlhnPWJbblsyXV0sdGhpcy5SPVJbNDNdKDE4LGJbblsyXV0sdGhpcyksdGhpcy5ucT1iW25bMl1dLHRoaXMuaT1iW25bMl1dLEhbMzldKDcyLGJbMF0sZ1sxNF0oNCxBcSkpP3Y9YlsyXTooZzBbNF0oNixnWzE0XSg4LEFxKSxlWzMxXSgxOCksYlswXSksdj0hMCksdGhpcy5wcT1iWzJdLHRoaXMuST1iW25bMl1dLHRoaXMuZnE9dix0aGlzLkc9YltuWzJdXSx0aGlzLlM9Z1syM10oMTYpLHRoaXMuVT1bXSx0aGlzLkw9YltuWzJdXSx0aGlzLkI9YltuWzJdXSx0aGlzLkFMPVtdLHRoaXNbblswXV09W10sdGhpcy5ETT0oQT1lWzI3XSgyLDIyKSkhPWJbblsyXV0/QTohMSx0aGlzLmo9YltuWzJdXSx0aGlzLm89YltuWzJdXSx0aGlzLmc9YltuWzJdXSx0aGlzLks9YltuWzJdXSx0aGlzLmRWPUpGKHB5LEpGKFRkLHRoaXMuRix3dCx0aGlzLndiLFFDLHRoaXMuTyxuNix0aGlzLkYsZEYsdGhpcy5NeSxZQSxmdW5jdGlvbigpe3JldHVybiBwLk0uVHEoKX0sCnBDLHRoaXMuRTMpLHpaLEpGKHFOLHRoaXMuVzEsbXMsdGhpcy54NyxZQSx0aGlzLmtKLGlGLHRoaXMubFkseWcsdGhpcy5SNyxWTyx0aGlzLnpaLCRBLHRoaXMucmIpLG55LEpGKEo1LHRoaXMudHUsVGQsdGhpcy5GLG42LHRoaXMuRixxTix0aGlzLkQseWcsdGhpcy5SNyksamgsSkYoSjUsdGhpcy50dSxxTix0aGlzLkQseWcsdGhpcy5SNyksS1MsSkYoVGQsdGhpcy5GLG42LHRoaXMuRixxTix0aGlzLkQsaUYsdGhpcy5sWSxtcyx0aGlzLng3LFlBLHRoaXMua0opLFFKLEpGKFRkLHRoaXMuRixuNix0aGlzLkYpLHN5LEpGKHFOLHRoaXMuVzEsbXMsdGhpcy54Nyx6dSx0aGlzLm96LFFDLHRoaXMuTyxUZCx0aGlzLkYpLFNMLHt9KSx0aGlzLkE9UHJvbWlzZS5yZXNvbHZlKCkpLDkpKTxCJiZCLTU8PG5bMl0+PUImJihwPWIudltDLnRvU3RyaW5nKCldLHY9LTEscCYmKHY9RFs0Ml0oMzUseixLLEEscCxKKSksUT12Pi0xP3Bbdl06bnVsbCksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSwKdixwLFEsbixaKXtpZigoQiYoWj1bIm11bHRpcGx5IiwiY2FsbCIsMjBdLDYwKSk9PUIpVFtaWzFdXSh0aGlzLHopO2lmKChCLTReOSk+PSgoQnw0MCk9PSgoQiszJjYxKT49QiYmQi03PDwyPEImJihLPW5ldyBtMyxuPUdbMjZdKDEscDUsMSx6PT1udWxsP3o6RFsyXSgxOSx6KSxLKSksQikmJih0aGlzLnY9eix0aGlzLkxEPUssdGhpcy5NPUopLEIpJiYoQi0yXjEwKTxCKWE6e2lmKCFLKXtuPVpDfHwoWkM9bmV3IHNzKDAsMCkpO2JyZWFrIGF9aWYoIS9eLT9cZCskLy50ZXN0KEspKXtuPW51bGw7YnJlYWsgYX1uPShHWzI1XSg0MSx6LEspLG5ldyBzcyhPTyx4TykpfWlmKChCJjExMCk9PUIpYTp7aWYodj1bMCwxMF0sSi5oPj12WzBdKXtuPUoudG9TdHJpbmcodm9pZCAwKTticmVhayBhfW49KGI9KFE9KEE9KHA9bVtaWzJdXSg4Myx2WzBdLChDPUouaCx2WzFdKSksZ1sxMV0oNTUsQz4+PkssSi5NeD4+Pkt8Qzw8eikpLEEuZGl2KHApKS5zaGlmdExlZnQoSykseVsyXSg5NSxRW1pbMF1dKHApLApKKSksYi5jb21wYXJlKHApPj12WzBdJiYoUT1RLmFkZChXeiksYj15WzJdKDk0LFFbWlswXV0ocCksSikpLFEudG9TdHJpbmcodlsxXSkrYi50b1N0cmluZyh2WzFdKSl9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKG49WzEsNDcsM10sQi0yKXw0MCk8QiYmKEIrblsyXV4xMyk+PUIpWVszNV0oMTYsbVsyXSg5MiwicmMtaW1hZ2VzZWxlY3QtcHJvZ3Jlc3MiKSx6LDEwMC1KL0sqMTAwKyIlIik7aWYoKEImODUpPT0oKChCKygoQnw3KT49MiYmQi0yPDExJiYob2cuY2FsbCh0aGlzKSx0aGlzLnY9eixIWzVdKDI3LHosRjgsdGhpcy5NLCExLHRoaXMpLEhbNV0oOTEseix5Ryx0aGlzLlgsITEsdGhpcykpLDIpJjE1KT09NCYmKFo9ej4wP3o+PTB4N2ZmZmZmZmZmZmZmZmZmZj9nWjpuZXcgZXQoeix6LzQyOTQ5NjcyOTYpOno8MD96PD0tMHg3ZmZmZmZmZmZmZmZmZmZmP056Om1bMjRdKDUsbmV3IGV0KC16LC16LzQyOTQ5NjcyOTYpKTpPWSksKEIrCjImMTMpPEIpJiYoQis5Jm5bMV0pPj1CJiYoWj0hIUsudSgpJiZLLnUoKS52YWx1ZSE9eiYmSy51KCkudmFsdWUhPUsuWCksQikpe3A9JzxkaXYgY2xhc3M9IicrKGI9KEM9KFE9KHY9WyciPjxkaXYgY2xhc3M9IicsNSwoSj1KfHx7fSxudWxsKV0sSi5lcnJvckNvZGUpLEouZXJyb3JNZXNzYWdlKSxBPUhbNDVdKDgsa08oKSxDLGltKCksdFEoKSksSFs0NV0oNzIsVU8oKSxRLGltKCksTXUoKSkpLFIpWzExXSg3MywicmMtaW5saW5lLWJsb2NrIikrdlswXStSWzExXSg3LCJyYy1hbmNob3ItY2VudGVyLWNvbnRhaW5lciIpK3ZbMF0rUlsxMV0oMzksInJjLWFuY2hvci1jZW50ZXItaXRlbSIpKyIgIitSWzExXSg5LCJyYy1hbmNob3ItZXJyb3ItbWVzc2FnZSIpKyciPic7c3dpdGNoKGIpe2Nhc2UgblswXTpwKz0iSW52YWxpZCBhcmd1bWVudC4iO2JyZWFrO2Nhc2UgMjpwKz0iWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiI7YnJlYWs7Y2FzZSBuWzJdOnArPSJUaGlzIHNpdGUga2V5IGlzIG5vdCBlbmFibGVkIGZvciB0aGUgaW52aXNpYmxlIGNhcHRjaGEuIjsKYnJlYWs7Y2FzZSA0OnArPSJDb3VsZCBub3QgY29ubmVjdCB0byB0aGUgcmVDQVBUQ0hBIHNlcnZpY2UuIFBsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIHJlbG9hZC4iO2JyZWFrO2Nhc2UgdltuWzBdXTpwKz0nTG9jYWxob3N0IGlzIG5vdCBpbiB0aGUgbGlzdCBvZiA8YSBocmVmPSJodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdHJvdWJsZXNob290LXJlY2FwdGNoYS1pc3N1ZXMjbG9jYWxob3N0LWVycm9yIiB0YXJnZXQ9Il9ibGFuayI+c3VwcG9ydGVkIGRvbWFpbnM8L2E+IGZvciB0aGlzIHNpdGUga2V5Lic7YnJlYWs7Y2FzZSB6OnArPSJFUlJPUiBmb3Igc2l0ZSBvd25lcjo8YnI+SW52YWxpZCBkb21haW4gZm9yIHNpdGUga2V5IjticmVhaztjYXNlIEs6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOiBJbnZhbGlkIHNpdGUga2V5IjticmVhaztjYXNlIDg6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOiBJbnZhbGlkIGtleSB0eXBlIjsKYnJlYWs7Y2FzZSA5OnArPSJFUlJPUiBmb3Igc2l0ZSBvd25lcjogSW52YWxpZCBwYWNrYWdlIG5hbWUiO2JyZWFrO2Nhc2UgMTA6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOiBJbnZhbGlkIGFjdGlvbiBuYW1lIGdvby5nbGUvcmVjYXB0Y2hhLWFjdGlvbi1uYW1lIjticmVhaztjYXNlIDE1OnArPSJFUlJPUiBmb3Igc2l0ZSBvd25lcjo8YnI+SW52YWxpZCBlbmRwb2ludCBmb3IgaG9zdCBkb21haW4uIFBsZWFzZSBjb250YWN0IHlvdXIgYXNzaWduZWQgU2VjdXJpdHkgU2FsZXMgU3BlY2lhbGlzdHMgaWYgeW91IGhhdmUgb25lIG9yIHJlYWNoIG91dCB0byBHb29nbGUgQ2xvdWQgc3VwcG9ydCB0aHJvdWdoIGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9jb250YWN0IG90aGVyd2lzZS4iO2JyZWFrO2Nhc2UgMTc6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOjxicj5Qb2xpY3ktYmFzZWQgY2hhbGxlbmdlcyBjYW5ub3QgYmUgcmVuZGVyZWQgYXMgYSBjaGVja2JveC4iO2JyZWFrO2RlZmF1bHQ6cD0KcCsiRVJST1IgZm9yIHNpdGUgb3duZXI6PGJyPiIrRFszOV0oblsyXSxBIT12WzJdP0E6IiIpfVo9VEQocCsiPC9kaXY+PC9kaXY+PC9kaXY+Iil9cmV0dXJuIFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihCKygoKFE9WzksOCwxOV0sKEIrM14zMCk8QikmJihCKzQmMjQpPj1CJiYodj1tWzJdKDkyLCJyYy1wcmVwb3NpdGlvbmFsLXRhcmdldCIpLEE9W10sQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlWzM1XShRWzJdLEMsdixkb2N1bWVudCxKLEspLGZ1bmN0aW9uKG4sWixXLE4seCl7KFc9KCh4PShOPXRoaXMsWyJwdXNoIiwxLDE3XSksdGhpcykudlt4WzBdXShaKSx7c2VsZWN0ZWQ6ITEsZWxlbWVudDpuLGluZGV4Olp9KSxBW3hbMF1dKFcpLGVbMzZdKDksWVsyM10oNTMsdGhpcyksbmV3IHhGKG4pLERDLGZ1bmN0aW9uKGYsTCl7KChmPShOLm1KKCEoTD1bMTIsInYiLDI3XSwxKSksIVcuc2VsZWN0ZWQpKT8oUls4XSg0OSwicmMtcHJlcG9zaXRpb25hbC1zZWxlY3RlZCIsClcuZWxlbWVudCksbVsyNl0oNTIseixOW0xbMV1dLFcuaW5kZXgpKTooUltMWzJdXShMWzBdLFcuZWxlbWVudCwicmMtcHJlcG9zaXRpb25hbC1zZWxlY3RlZCIpLE5bTFsxXV0ucHVzaChXLmluZGV4KSksVykuc2VsZWN0ZWQ9ZixPWzFdKDY0LGY2LFcuZWxlbWVudCxXLnNlbGVjdGVkP29OOkw2KX0pLE8pW3hbMV1dKHhbMl0sZjYsbixMNil9LGIpKSxCK1FbMV0pPj40fHwoSz1PWzMzXSgzMix0aGlzKSxKPU9bNDhdKDY0LHRoaXMpLHo9T1s0OF0oMzIsdGhpcyksSj09eiYmZ1sxNF0oMzEsSyx0aGlzLnYpKSw2KSYyMik+PUImJihCK1FbMF1eUVsyXSk8QiYmKEs9WyciPjxkaXYgY2xhc3M9IicsInJjLWlubGluZS1ibG9jayIsJyI+PC9zcGFuPiddLEo9JzxkaXYgY2xhc3M9IicrUlsxMV0oMzksS1sxXSkrS1swXStSWzExXSg3MywicmMtYW5jaG9yLWNlbnRlci1jb250YWluZXIiKStLWzBdK1JbMTFdKFFbMF0sInJjLWFuY2hvci1jZW50ZXItaXRlbSIpK3orUlsxMV0oUVswXSwicmMtYW5jaG9yLWNoZWNrYm94LWhvbGRlciIpKwonIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDM5LEtbMV0pK0tbMF0rUlsxMV0oNzMsInJjLWFuY2hvci1jZW50ZXItY29udGFpbmVyIikrJyI+PGxhYmVsIGNsYXNzPSInK1JbMTFdKDczLCJyYy1hbmNob3ItY2VudGVyLWl0ZW0iKSt6K1JbMTFdKDcxLCJyYy1hbmNob3ItY2hlY2tib3gtbGFiZWwiKSsnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48c3BhbiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1sYWJlbGxlZGJ5PSInK1JbMTFdKDM5LCJyZWNhcHRjaGEtYWNjZXNzaWJsZS1zdGF0dXMiKStLWzJdLHA9VEQoSisiSSdtIG5vdCBhIHJvYm90PC9sYWJlbD48L2Rpdj48L2Rpdj4iKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCJjI1KT09KChCKzg+Pih2PVsiWCIsNyw2XSw1KTwxJiYoKEJeMykmdlsxXSk+PXZbMl0mJihDPW5ldyByWixwPVJbMjVdKDI2LHosSyxKLFZDLEMpKSxCfDMyKT09QiYmKHA9CltdLmNvbmNhdCh6LEssSnx8W10sSitDLzJ8fFtdLEorYi80fHxbXSxKK0EvdlsyXXx8W10pKSxCKSYmelt2WzBdXS5wdXNoKHouV2Qsei5HWix6LklqLFlbMl0oODcsZnVuY3Rpb24oUSxuKXtyZXR1cm4gUStufSx6KSxZWzJdKDgzLGZ1bmN0aW9uKFEsbil7cmV0dXJuIFEtbn0seikpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gQi0zPj4oQi0oKEIrMl4oQz1bMSwiTSIsMTBdLENbMl0pKTxCJiYoQisyXjIpPj1CJiYoSj1rW0NbMF1dKDE0LHZvaWQgMCxLLEdHLHopLGI9RFsyMl0oMzgsSixLKSksQylbMF0+PTI5JiYoQis0JjE2KTw5JiZULmNhbGwodGhpcyx6KSw0KXx8KEs9ZnVuY3Rpb24oQSx2KXtyZXR1cm5bKEE9ei5YPT09KHY9WyJBIiwiRiIsImwiXSwtMSk/MDpNYXRoLnRydW5jKFlqKCkpLXouWCx6KS52LHpbdlswXV0sei5SLEEselt2WzJdXSx6W3ZbMV1dXX0sYj16W0NbMV1dP1Byb21pc2UucmVzb2x2ZSh6W0NbMV1dLnRoZW4oSykpOlByb21pc2UucmVzb2x2ZShLKCkpKSwKYn0sZnVuY3Rpb24oQix6LEspe3JldHVybiBCPj4yPCh6PVsiQSIsMywidiJdLDE4KSYmKEItOCZ6WzFdKT49MiYmKHRoaXMuRj16WzFdLHRoaXMuUj0tMSx0aGlzLk09bnVsbCx0aGlzW3pbMF1dPS0xLHRoaXNbelsyXV09SHosdGhpcy5YPS0xLHRoaXMuaT1SWzEzXSgyLCIiLG51bGwsdGhpcyksdGhpcy5sPTApLChCJjYyKT09QiYmKG9nLmNhbGwodGhpcyksdGhpc1t6WzJdXT0wLHRoaXMuZW5kVGltZT10aGlzLnN0YXJ0VGltZT1udWxsKSxLfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKEIrKChCJjExMyk9PShBPVsiWUoiLCJmb3JFYWNoIiwia3AiXSxCKSYmKEsuQU0mJihSWzE2XSgxNixLLkFNKSxSWzE2XSg1LEsubzcpLFJbMTZdKDQsS1tBWzJdXSksSy5vNz16LEsuQU09eixLW0FbMl1dPXopLEtbQVswXV09LTEsSy5laz0tMSxLLnY9eiksOCk+PjI8QiYmKEItMl4zMSk+PUImJkomJihEWzEzXSgyNCxKKSxDKSlpZih0eXBlb2YgQz09PSJzdHJpbmciKVJbMzZdKDIwLApKLEMpO2Vsc2UgYj1mdW5jdGlvbihwLFEpe3AmJihRPWdbMzFdKDg4LHosSiksSi5hcHBlbmRDaGlsZCh0eXBlb2YgcD09PSJzdHJpbmciP1EuY3JlYXRlVGV4dE5vZGUocCk6cCkpfSxBcnJheS5pc0FycmF5KEMpP0NbQVsxXV0oYik6IVlbOF0oMSxLLEMpfHwibm9kZVR5cGUiaW4gQz9iKEMpOm1bMjldKDM1LEMpW0FbMV1dKGIpO3JldHVybihCfDIpPj0tMzUmJihCKzgmOCk8NSYmKCRNLmNhbGwodGhpcyx6LEspLHRoaXMuaWQ9Six0aGlzLkJ2PUMpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKChCPj4xJjcpPj0oWj1bImkiLCJGIiw0OF0sMSkmJigoQnwyKSY0KTwzJiYobj1HWzEzXSgyNCxmdW5jdGlvbihXLE4pe049WyJyZWFkYWJsZSIsImdldFdyaXRlciIsInYiXTtzd2l0Y2goVy5NKXtjYXNlIEM6cmV0dXJuIHA9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksdj0obmV3IFJlc3BvbnNlKHBbTlswXV0pKS5hcnJheUJ1ZmZlcigpLEE9cC53cml0YWJsZVtOWzFdXSgpLApXW05bMl1dKEEud3JpdGUoKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGIpKSxKKTtjYXNlIEo6cmV0dXJuIFdbTlsyXV0oQS5jbG9zZSgpLEspO2Nhc2UgSzpyZXR1cm4gUT1VaW50OEFycmF5LFdbTlsyXV0odix6KTtjYXNlIHo6cmV0dXJuIFcucmV0dXJuKG5ldyBRKFcuWCkpfX0pKSxCLTgpfDE3KTxCJiZCLTg8PDE+PUIpYTp7aWYoRFsxXSg3NixiLlgpPj1iLlhbWlswXV0tKGJbWlsxXV0/MTowKSl7bj0oZWEoKSxLKTticmVhayBhfWlmKGJbWlsxXV0peyhQeigpLGIpW1pbMF1dPUEuVS5jb25jYXQoYltaWzBdXSksbj16O2JyZWFrIGF9aWYoYi5NPT1DfHxiLk09PUp8fGIuVT49KGIudnY/MDpiLk1qKSl7bj1LO2JyZWFrIGF9YlskRigpLFpbMV1dPWdbMF0oWlsyXSxSeChiLkIxLGIsQSksRFs4XSgxLEosYixiLlUpKSxiLlUrKyxuPXp9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybigoKHA9WyIiLCJjYWxsIiwzXSxCJjI3KSE9Qnx8T1syNl0oMzAsCnBbMF0sdGhpcyl8fCh0aGlzLnUoKS52YWx1ZT1wWzBdLE9bMl0oNTYsdGhpcy5QRSwxMCx0aGlzKSksKEIrOSY2KT49cFsyXSYmKEJeNTkpPj40PDQpJiYoQT1bbnVsbCwhMCwiZ29vZy1pbmxpbmUtYmxvY2siXSx2PW1bMTddKDIscXosenx8InJjLWJ1dHRvbi1kZWZhdWx0IiksaUtbcFsxXV0odGhpcyxLLHYsQyksdGhpcy5DPWJ8fEFbMF0sdGhpcy5SPXp8fCJyYy1idXR0b24tZGVmYXVsdCIsdGhpcy52PUp8fDAsT1s0N10oMTgsQVsxXSxBWzJdLHRoaXMpKSxCLTJeMTMpPEImJihCKzImNjApPj1CJiYoZVs0NF0oNSx6LnYpLFJbMTddKDE1LHoudiksZVs0NF0ocFsyXSx6LnYpLFE9ei5MaSgpKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChDPVsiaSIsInYiLDIzXSxCJkNbMl0pPT1CJiYodGhpcy5NPXosdGhpc1tDWzFdXT1LLHRoaXMuU0s9SiksKEI+PjEmMyk9PTEpJiYoeltDWzFdXVtDWzBdXS5zZXQoSykseltDWzFdXVtDWzBdXS5sb2FkKCkpLGJ9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCfCgoQnw4KT4+KCgoQj4+KG49WyJzdWJzdHJpbmciLDIsInN1YnN0ciJdLG5bMV0pJjcpPT0zJiYoUT16XkteSiksQj4+MSkmMTN8fChRPWZ1bmN0aW9uKFope1ouZm9yRWFjaChmdW5jdGlvbihXLE4pe1cudHlwZT09PShOPVsiTSIsInRhcmdldCIsImFkZCJdLCJhdHRyaWJ1dGVzIikmJihBZSgpPHomJksudisrLFcuYXR0cmlidXRlTmFtZSYmSy5YW05bMl1dKFcuYXR0cmlidXRlTmFtZSksV1tOWzFdXSYmV1tOWzFdXS50YWdOYW1lJiZLW05bMF1dW05bMl1dKFdbTlsxXV0udGFnTmFtZSkpfSl9KSw0KXx8KGI9QygpW25bMl1dKHoseUNbel0pLFE9bVs0Ml0oNykuY2FsbChwYXJzZUZsb2F0KEorYi1KKV5KLEspKSw0OCkpPT1CKXtmb3IocD0oYj0oSy52LmNvb2tpZXx8IiIpLnNwbGl0KFlGKCkpLEo9W10sW10pLEE9ejtBPGIubGVuZ3RoO0ErKylDPWE0KGJbQV0pLHY9Qy5pbmRleE9mKFhaKCkpLHY9PS0xPyhKLnB1c2goIiIpLHAucHVzaChDKSk6CihKLnB1c2goQ1tuWzBdXSh6LHYpKSxwLnB1c2goQ1tuWzBdXSh2KzEpKSk7UT17a2V5czpKLHZhbHVlczpwfX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKCEoKEJeMzMpJihOPVs3LDEsMF0sTlswXSkpKWcwWzRdKDIsZ1sxNF0oOCxTSiksSyx6KTtpZigoQi0zJk5bMF0pPT1OWzFdKWE6e2lmKChRPVs4LDkwMDcxOTkyNTQ3NDA5OTEsNDI5NDk2NzI5Nl0sSykuY2hhckF0KE5bMl0pPT0iLSIpe3g9bVsyNF0oNixPWzM2XSg0LE5bMV0sSy5zdWJzdHJpbmcoeiksSikpO2JyZWFrIGF9aWYodj1wYXJzZUludChLLEp8fDEwKSx2PD1RW05bMV1dKXt4PW5ldyBldCh2JVFbMl18TlsyXSx2L1FbMl18TlsyXSk7YnJlYWsgYX1pZihLLmxlbmd0aD09TlsyXSl0aHJvdyBFcnJvcigibnVtYmVyIGZvcm1hdCBlcnJvcjogZW1wdHkgc3RyaW5nIik7aWYoSy5pbmRleE9mKEk4KCkpPj1OWzJdKXRocm93IEVycm9yKCdudW1iZXIgZm9ybWF0IGVycm9yOiBpbnRlcmlvciAiLSIgY2hhcmFjdGVyOiAnKwpLKTtpZigoQT1KfHwxMCxBKTwyfHwzNjxBKXRocm93IEVycm9yKCJyYWRpeCBvdXQgb2YgcmFuZ2U6ICIrQSk7Zm9yKGI9KHA9KFo9T1syNl0oMTgsZlEoQSxRW05bMl1dKSksTlsyXSksT1kpO3A8Sy5sZW5ndGg7cCs9UVtOWzJdXSlXPWw5KFFbTlsyXV0sSy5sZW5ndGgtcCksbj1wYXJzZUludChLLnN1YnN0cmluZyhwLHArVyksQSksVzxRW05bMl1dPyhDPU9bMjZdKDUwLGZRKEEsVykpLGI9Yi5tdWx0aXBseShDKS5hZGQoT1syNl0oNTAsbikpKTooYj1iLm11bHRpcGx5KFopLGI9Yi5hZGQoT1syNl0oMTgsbikpKTt4PWJ9cmV0dXJuIHh9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi0oKEIrKChCfDQ4KT09KGI9WzksNDMsMTZdLEIpJiYoQz1SWzEzXShiWzFdLEhbMjVdKGJbMV0sT1tiWzBdXSgyOCwzKSx6KSxbZ1tiWzJdXSg1NCxLKSxnW2JbMl1dKDg2LEopXSkpLDcpXjE3KT49QiYmKEIrYlswXV4xNCk8QiYmKEs9JzxpbWcgc3JjPSInK1JbMTFdKDM5LE9bMF0oMjAsCiIiLHouV28pKSsnIiBhbHQ9IicsSys9ZVszNF0oOTEsInJlQ0FQVENIQSBjaGFsbGVuZ2UgaW1hZ2UiKSxDPVREKEsrJyIvPicpKSw3KTw8Mj49QiYmKEItNXwxNSk8QiYmKEM9eiBpbiBjej9jelt6XTpjelt6XT1TYSt6KSxCXjI4KT4+Mz09MiYmKEM9RFsyMF0oMTEsIkZpcmVmb3giKXx8RFsyMF0oYlswXSx6KSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZigoQl40MCk+PigoKEJ8MykmKChCLTNeKEw9WyJhcHBseSIsNyw0XSwoQnw3Mik9PUImJihXPVswLCExLDddLHY9Z1syNl0oNTcsTFIuSigpLHopLFo9Z1sxMl0oMTEsdikscD1aLm5leHQoKS52YWx1ZSx4PVoubmV4dCgpLnZhbHVlLEE9Z1tMWzFdXSgzOCksTj1nW0xbMV1dKDYpLFE9W0hbNDRdKDQ2LEMpLFlbMTJdKDE2LHAsSiksdkkoeCxIWzE1XSg3MixMWzJdKSxwKSx2SSh4LEhbMTVdKDY0LFdbMl0pLHgpLFlbMF0oMjQsQSxPWzI1XShMWzFdLHgpLFdbMV0pLFJbMTldKDQxLApDLEhbMTVdKDMyLEspLHApLFlbMF0oMjQsTixXWzBdLFdbMF0pLEEsSFs0NF0oNDMsSiksSFs0NF0oNDcscCksSFs0NF0oNTgseCksWVswXSgyOSxiLFdbMF0sV1swXSksTixIWzQ0XSg1NCx4KSxIWzQ0XSg1MSxwKV0sKG49TFIuSigpKS52W0xbMF1dKG4sZVszM10oMzYsdikpLGY9USksMTMpKT49QiYmKEItM14yNik8QiYmKHoudj96LnYuYWRkKEspOnouTT1LKSwxNSkpPT0zJiYoZj1IWzhdKDM2LDIwODMpKEooeigpLDUpKSksMyk9PTIpYTp7Zm9yKHY9KHA9KGI9RFsxMl0oNjYsMSwzMCksZylbMTJdKDEsSFs4XSgzNiwxNDg4KSh6LEosZnVuY3Rpb24ocil7cmV0dXJuIHJ9KSkscC5uZXh0KCkpOyF2LmRvbmU7dj1wLm5leHQoKSlpZihDPWdbMTJdKDUsdi52YWx1ZS5zcGxpdChYWigpKSksQT1DLm5leHQoKS52YWx1ZSxRPUMubmV4dCgpLnZhbHVlLEEudHJpbSgpPT09Yil7Zj1RO2JyZWFrIGF9Zj0iIn1yZXR1cm4oQis5JjI2KTxCJiYoQi05XjI4KT49QiYmKG1uPT09dm9pZCAwJiYKKG1uPURbNDBdKDI2LHopKSxmPW1uKSxmfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoKEJ8Myk+PigoQnw1Nik9PSgoeD1bMjIsMTE1LCJpc0FycmF5Il0sKEImeFsxXSk9PUImJihKPW5ldyBsSyxOPW1bMjNdKHhbMF0sSyxKLHopKSxCLTQpJjE1fHwodGhpcy52PXp8fHtjb29raWU6IiJ9KSxCKSYmKE49UGIoZnVuY3Rpb24oKXtyZXR1cm4gSygpLnBhcmVudCE9SygpPyEwOksoKS5mcmFtZUVsZW1lbnQhPW51bGw/ITA6ITF9LCEwKSksMyk9PTMpYTp7aWYoIUEudil7Tj1iO2JyZWFrIGF9aWYoIWIpe049SjticmVhayBhfXRyeXtpZihRPW9DKGIpKWZvcih2PTA7djxRLmxlbmd0aDt2KyspaWYoQXJyYXlbeFsyXV0oUVt2XSkmJihwPVFbdl0sIShwLmxlbmd0aDxDfHwoWj1wW0tdLCFBcnJheVt4WzJdXShaKXx8Wi5sZW5ndGg8S3x8KG49WlswXSxuPT16fHxuPT0ic3RvcCJ8fG49PSJjbG9zZSIpKSkpKWZvcihXPUs7VzxaLmxlbmd0aDtXKyspWltXXT0KIiI7Tj0obmV3IEJSKS55ZShRKTticmVhayBhfWNhdGNoKGYpe049KEVZKCksYik7YnJlYWsgYX19cmV0dXJuIE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQj4+MSY3KT09KCgoKChCJjg4KT09KChCLShuPVsyOSw5MiwxOV0sNil8NzcpPEImJihCLTFeblswXSk+PUImJih6LnYhPT12b2lkIDA/ei52LnB1c2goSyk6ei5NKz1LLFo9eiksQikmJihKPW5ldyB1SyhuZXcgYU4oSykpLHNZJiZ6LnByb3RvdHlwZSYmc1koSix6LnByb3RvdHlwZSksWj1KKSxCKzI+PjQpfHwoWj16P3tnZXRFbmRwb2ludElkZW50aWZpZXI6ZnVuY3Rpb24oKXtyZXR1cm4gei5NfSxnZXRFbmRwb2ludFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gei5YfSxnZXRFeHBpcmF0aW9uVGltZTpmdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh6LnYuZ2V0VGltZSgpKX19Om51bGwpLEJeblsxXSkmNyk9PTEmJihaPUdbMTNdKDI1LGZ1bmN0aW9uKFcsTix4KXtpZigoeD1bMTAsMUU0LCJBIl0sClcuTSk9PUspe2lmKGIudiBpbnN0YW5jZW9mIG50KXJldHVybiBXLnJldHVybihQcm9taXNlLnJlc29sdmUoKSk7cmV0dXJuKCgoKChwPShRPShOPW5ldyBoUixtWzIzXSgzNCxBLE4sSykpLEQpWzIxXSg4LGIudikscCkucXQ9PUMmJihwLnF0PXt9KSxwKS5xdFtkWigpXT12LHApLkF1PXhbMV0sVylbeFsyXV0oeiksVykudihSWzE5XSh4WzBdLGIuTSxrRix0UixRLHApLDQpfWlmKFcuTSE9eilyZXR1cm4gVy5GKEopO1cuaSgpLFcuUigpfSkpLDIpKWE6e2lmKEspe2Z3PUs9PW51bGx8fEs9PT1nW25bMF1dLmJpbmQobnVsbCwzKXx8S1tVWV0hPT1Nej9nW25bMF1dLmJpbmQobnVsbCw1KTpLO3RyeXtaPWVbblsyXV0oMTIsMCx6KTticmVhayBhfWZpbmFsbHl7Znc9dm9pZCAwfX1aPWVbblsyXV0oMTQsMCx6KX1yZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKEI+PihKPVsxMCwidG9TdHJpbmciLDM2XSwxKTwyMiYmQi05Pj1KWzBdJiYoSz1iTihBZSgpKjIxNDc0ODM2NDgpW0pbMV1dKEpbMl0pKwplNyhiTihBZSgpKjIxNDc0ODM2NDgpXmVbMjldKDI2KSlbSlsxXV0oSlsyXSkpLEItMzw8Mik+PUImJkItODw8MjxCJiYodGhpcy5NLmNGKHouZXJyb3JDb2RlKSx0aGlzLlg9cHksdGhpcy5OeC5zZW5kKHlnLHopLHRoaXMuaSYmdGhpcy5pLnJlamVjdCh6LmVycm9yQ29kZSkpLEt9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybihBPVsyNiwiSiIsN10sQj4+MSZBWzJdfHwoZGtbQVsxXV0oKS5pbml0KFlbNDBdKDY1LDIseikpLEs9bmV3ICRVLEsucmVuZGVyKEdbMTVdKDQ0KSksQz1uZXcgcTUsSj1uZXcgaVYoQyx6LG5ldyB5QSxuZXcgd1opLHRoaXMudj1uZXcgY2QoSyxKKSx0aGlzLnYuaW5pdChSW0FbMF1dKDE0LHosMSxsKSkpLEIrOSZBWzJdKXx8KGI9ZG9jdW1lbnQpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyKXtpZigoQl4oKHI9WzEsMjUsNDFdLEJ8NDApPT1CJiYobj1bMCwxMCxudWxsXSxXPWVbMzNdKDcsclswXSxHWzQzXSg5MywKclswXSxuWzBdLCIiK0MpLEoubSksSi5XJiZIWzM3XSgxNyw2LFcsSi5XKSxIWzQ5XSg1OCw3LEouTyxXLHZvaWQgMCxsKSxIWzQ5XSgyNiw4LEouQyxXLHZvaWQgMCxsKSxRPWImJmJbQjcuZ2V0TmFtZSgpXT9iW0I3LmdldE5hbWUoKV06SFsyXSg5MSxKLnYsQjcpLE9bMTVdKDEzLG5bclswXV0sVyxRPT1uWzJdP3ZvaWQgMDpRLnN1YnN0cmluZyhuWzBdLDEwMCkpLERbMjZdKDQ4LHosVywoTj1IWzJdKDExLEoudixJTikpIT1uWzJdP046IiIpLHdpbmRvd1tpM11bRlIoKV0/KEE9SFsyXSgxMSxKLnYsU0IpfHxPW3JbMl1dKDI4KSxSWzI2XSgyMSxXLDYsbCl8fChaPShBZSgpKkJrK3NNKS8yLGY9ZVszMV0oMjAsenQpLHY9T1syM10oMTAsS20rZi5zdWJzdHJpbmcoblswXSxaKSw0KSx5WzM4XSg2LGwsR1s0Ml0oNDIsblsyXSwhMSx2KSxXLEspKSxwPW1bNDBdKDE3LG5bMF0sIiIsQSxXLnllKCkpLHg9ZVsxNl0oMzUsNCxLbSxwKSk6eD1EWzIzXSg1Nyw0LFcueWUoKSxIWzJdKDkxLApKLnYsU0IpfHxPW3JbMl1dKDE5KSksTD14KSw3NCkpPDM0JiZCPj4yPj0yMClhOntpZihKPT0oYj1bIkludmFsaWQgY2hlY2tib3ggc3RhdGU6ICIsIShDPUsuV2goKSwwKSwiLXVuZGV0ZXJtaW5lZCJdLGIpW3JbMF1dKXtMPUMrIi1jaGVja2VkIjticmVhayBhfWlmKEo9PTApe0w9QysiLXVuY2hlY2tlZCI7YnJlYWsgYX1pZihKPT16KXtMPUMrYlsyXTticmVhayBhfXRocm93IEVycm9yKGJbMF0rSik7fXJldHVybiBCPj4oKEJeNjcpJjE1fHwodj1iLm9yaWdpbixwPWIub0EsUT1iLkVsPT09dm9pZCAwPyJaTldOMWQiOmIuRWwsWj1iLm9uTWVzc2FnZT09PXZvaWQgMD92b2lkIDA6Yi5vbk1lc3NhZ2Usbj1iLmRlc3RpbmF0aW9uLEE9Yi5ZRj09PXZvaWQgMD92b2lkIDA6Yi5ZRixHWzExXShyWzBdLHosQyxLLHtkZXN0aW5hdGlvbjpuLHZEOmZ1bmN0aW9uKCl7cmV0dXJuIHAuY29udGVudFdpbmRvd30seW86diBpbnN0YW5jZW9mIEp1P3Y6dHlwZW9mIHY9PT0iZnVuY3Rpb24iP25ldyBKdSh2KToKbmV3IEp1KG1bclsxXV0oclswXSxKLCEwLHYpKSxFbDpRLG9uTWVzc2FnZTpaLFlGOkF9KSksclswXSkmN3x8KEw9bmV3IGJtKHoud2lkdGgsei5oZWlnaHQpKSxMfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZihCKzk+PSgoQiYoWj1bImluZGV4T2YiLDE1LCJ0ZXN0Il0sMTkpKT09QiYmKEo9IkpzbG9hZGVyIGVycm9yIChjb2RlICMiK3orIikiLEsmJihKKz0iOiAiK0spLE5QLmNhbGwodGhpcyxKKSx0aGlzLmNvZGU9eiksWilbMV0mJihCLTkmOCk8MylhOntpZighKHA9WzMsIjoiLCJVUkkgaXMgbWlzc2luZyBwcm90b2NvbDogIl0sSikpe1c9IiI7YnJlYWsgYX1pZigvXmFib3V0Oig/OmJsYW5rfHNyY2RvYykkL1taWzJdXShKKSl7Vz13aW5kb3cub3JpZ2lufHwiIjticmVhayBhfWlmKHY9KG49KEE9KC9eW1x3XC1dKjpcL1wvL1soSj0oSj0oSltaWzBdXShDbSgpKT09PTAmJihKPUouc3Vic3RyaW5nKDUpKSxKLnNwbGl0KHRrKCkpW0tdLnNwbGl0KEsxKCkpW0tdKSwKSikudG9Mb3dlckNhc2UoKSxKW1pbMF1dKE5oKCkpKT09SyYmKEo9d2luZG93LmxvY2F0aW9uLnByb3RvY29sK0opLFpbMl1dKEopfHwoSj13aW5kb3cubG9jYXRpb24uaHJlZiksSi5zdWJzdHJpbmcoSltaWzBdXShiWigpKStwWzBdKSksQVtaWzBdXShudygpKSksbiE9LTEmJihBPUEuc3Vic3RyaW5nKEssbikpLEouc3Vic3RyaW5nKEssSltaWzBdXShiWigpKSkpLCF2KXRocm93IEVycm9yKHBbMl0rSik7aWYodiE9PSJodHRwIiYmdiE9PSJodHRwcyImJnYhPT0iY2hyb21lLWV4dGVuc2lvbiImJnYhPT0ibW96LWV4dGVuc2lvbiImJnYhPT0iZmlsZSImJnYhPT0iYW5kcm9pZC1hcHAiJiZ2IT09ImNocm9tZS1zZWFyY2giJiZ2IT09ImNocm9tZS11bnRydXN0ZWQiJiZ2IT09ImNocm9tZSImJnYhPT0iYXBwIiYmdiE9PSJkZXZ0b29scyIpdGhyb3cgRXJyb3IoIkludmFsaWQgVVJJIHNjaGVtZSBpbiBvcmlnaW46ICIrdik7Vz0oKEM9IiIsUT1BW1pbMF1dKHZoKCkpLFEhPS0xKSYmCihiPUEuc3Vic3RyaW5nKFErMSksQT1BLnN1YnN0cmluZyhLLFEpLHY9PT0iaHR0cCImJmIhPT0iODAifHx2PT09Imh0dHBzIiYmYiE9PSI0NDMiKSYmKEM9cFsxXStiKSx2K3orQStDKX1yZXR1cm4gV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKEJ8NDgpPT0oKCgoKCgoQl4oVz1bNzAsNDYsM10sV1sxXSkpJjI3KT09MiYmKHRoaXMudj10aGlzLmk9MCx0aGlzLkE9ITEsdGhpcy5NPW51bGwsdGhpcy5YPTAsdGhpcy5pbml0KHosSyxKLEMpKSxCLTUpfDg1KTxCJiYoQi0yfDgzKT49QiYmR2wuc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IHo7fSwwKSxCLTcpJjcpPT00JiYoWj1SYj8hIVo4JiYhIVo4LnBsYXRmb3JtOiExKSxCKSlhOntBPUoudix2PShiPShwPVsxMjgsKFE9MCw3KSwxMjddLEM9MCksSi5NKTtkbyBuPXZbQSsrXSxDfD0obiZwWzJdKTw8YixiKz1wWzFdO3doaWxlKGI8eiYmbiZwWzBdKTtpZihiPnopZm9yKFF8PShuJnBbMl0pPj40LApiPVdbMl07Yjx6JiZuJnBbMF07Yis9cFsxXSluPXZbQSsrXSxRfD0obiZwWzJdKTw8YjtpZihrWzQzXSgzOSxKLEEpLCEobiZwWzBdKSl7Wj1LKEM+Pj4wLFE+Pj4wKTticmVhayBhfXRocm93IEVycm9yKCk7fXJldHVybigoQl5XWzBdKSYxNSk9PVdbMl0mJih6PTgsej16PT09dm9pZCAwPzE6eix0aGlzLm1heD04LHRoaXMuTT1EYXRlLm5vdygpLHRoaXMudj16KSxafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKEItKFc9WyJDIiw0LDI3XSw5KTxXWzJdJiYoQnw4KT49MjImJih0aGlzLk09eix0aGlzLnY9SyksKEImMTUpPT1CJiYoYj1KLmFULEM9YltBJF18SyxaPXlbMl0oV1sxXSxKLEMpP0o6ZVszMF0oMjMseixiLEMsSik/Z1s0NF0oMixiLEopOm5ldyBKLmNvbnN0cnVjdG9yKE9bMThdKFdbMV0sMzQsQyxiLCEwKSkpLEIrMyleV1syXSk8QiYmKEIrOSY3NCk+PUIpYTppZihBPWwsdj16bCxnWzQxXSg1MyxKKSxiPUouYVQsQz1iW0EkXXxLLG49UlsxNF0oNzIsCnosQSwxLGIpLHA9dm9pZCAwPT09QXUsUT1IW1dbMl1dKDI4LDMyLEMsdiwhcCxuKSwhcHx8USl7KFE9RFsxXSg2MCwwLFEpLG4pIT09USYmKEM9WVsyNV0oNTEsUSwxLEMsQSxiKSxIWzM2XSgxLGIsQykpLFo9UTticmVhayBhfXJldHVybiBCLTg+PigoQiYxMDgpPT1CJiYoej1bbnVsbCw1NDksMThdLExELmNhbGwodGhpcyx6WzFdLHpbMl0pLHRoaXMua0o9elswXSx0aGlzLmxZPXpbMF0sdGhpcy5TPXpbMF0sdGhpcy5XPXpbMF0sdGhpcy5pPXpbMF0sdGhpcy5ucT16WzBdLHRoaXMuUD16WzBdLHRoaXMuSz16WzBdLHRoaXMuSD16WzBdLHRoaXMuVT16WzBdLHRoaXMubz16WzBdLHRoaXMuWD16WzBdLHRoaXMuaVk9elswXSx0aGlzLkw9elswXSx0aGlzLlhnPXpbMF0sdGhpcy5nPXpbMF0sdGhpcy5WPXpbMF0sdGhpcy5EPXpbMF0sdGhpcy5CPXpbMF0sdGhpcy5JPXpbMF0sdGhpcy5qPXpbMF0sdGhpcy5XMT16WzBdLHRoaXMuRz16WzBdLHRoaXNbV1swXV09elswXSx0aGlzLm09elswXSwKdGhpcy5BTD16WzBdLHRoaXMuTT16WzBdLHRoaXMuQT16WzBdLHRoaXMudVk9Z1s3XSgzOCksdGhpcy53Yj1nWzddKDM2KSx0aGlzLnBxPWdbN10oV1sxXSkpLFdbMV0pPT1XWzFdJiYoSj1IWzhdKDQwLEspLFo9ZnVuY3Rpb24oKXtyZXR1cm4gUkM9PXo/ZUMoKTpKLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoQisoQj4+KCgoKFE9WyJwdXNoIiwxLDE0XSxCKSYxMjApPT1CJiYoYj1uZXcgdmsscD1nW1FbMV1dKDY5LEssVHQsYiksdj15WzEzXSg2LCEwLHosQy50b1N0cmluZygpLHApLEE9bmV3IGpwLGVbMTNdKDE5LEssanAsMyxwbSx2LEEpLEoudiYmSi52LmNoYW5uZWwuc2VuZChiKSxKLnN0cmVhbXNbImRlbGV0ZSJdKEMpKSwoKEJeMjcpJjE1KT09UVsxXSkmJlQuY2FsbCh0aGlzLHopLFFbMV0pJlFbMl18fChuPVREKCJTY2FuIHRoZSBRUiBjb2RlIHdpdGggeW91ciBwaG9uZSdzIGNhbWVyYS4gVGhpcyB3aWxsIGluaXRpYWxpemUgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzIG9uIHRoZSBwaG9uZS4gQWZ0ZXIgdmVyaWZpY2F0aW9uLCB5b3Ugd2lsbCBwYXNzIHRoZSBjaGFsbGVuZ2UuIikpLAo2KTwyMiYmKChCfFFbMV0pJlFbMl0pPj0zKWZvcihDPVlbMjVdKDcwLEsudiksYj1LLnYuditDO0sudi52PGI7KUpbUVswXV0oeihLLnYpKTtyZXR1cm4oQi04fDEzKTxCJiYoQi03fDIyKT49QiYmSyYmKEouVz9ZWzhdKDE4LEouVyxLKXx8Si5XW1FbMF1dKEspOkouVz1bS10sbVsxOF0oNzMsSyxKLHopKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVybihCKygoKCgoQl45Myk8KFA9WzMwLDEzLDcxXSwxOSkmJkIrNz4+Mz49MiYmKGI9Yj09PXZvaWQgMD8hMTpiLGY9WzgsMiwxXSx2PWVbMjNdKDIsITEpLE49Z1sxMl0oOSxnWzI2XSg1OCxMUi5KKCksZlsxXSkpLG49Ti5uZXh0KCkudmFsdWUseD1OLm5leHQoKS52YWx1ZSx2LmZvckVhY2goZnVuY3Rpb24ocSxjLEUsUyl7KHEuTz0ocS5KTD0oRT0oYz0oKFM9WzYsMTIsMl0scSkuUigpLHkpWzQ5XShTWzJdLHEsMyksZ1tTWzFdXShTWzBdLGMpKSxFLm5leHQoKS52YWx1ZSksCkUpLm5leHQoKS52YWx1ZSxxKS5GZz1FLm5leHQoKS52YWx1ZX0pLEE9di5tYXAoZnVuY3Rpb24ocSxjLEUsUyxhKXtyZXR1cm4gUz0oRT1rWzQyXSg0NixxLChhPVs1NSwyLDVdLGM9WzM5LDEyLDFdLGNbYVsxXV0pKVswXSxbZ1thWzJdXSgxNixjWzBdLHEuSkwpLGdbMzFdKDEzLGNbYVsxXV0sY1sxXSxxLkYoKSxxKSxnW2FbMl1dKDE3LGNbMF0sRSksUlsxNl0oNTgscS5KTCxPWzI1XShhWzJdLEUpLE9bMjVdKDMscS5KTCkpLGVbN10oYVsxXSxxLk8pLEdbMjRdKDI2LHEuTyxPWzI1XShhWzJdLHEuTyksSiksWVs0MV0oMjAscS5PLE9bMjVdKDMscS5PKSxyNSksT1szN10oNjAscS5PLE9bMjVdKDMscS5PKSwwKSxPWzM3XSg2MSxxLkZnLE9bMjVdKDksSykscS5DaSksT1szN10oYVswXSxxLkZnLE9bMjVdKDEscS5GZyksT1syNV0oOSxxLk8pKV0pLE9bMjNdKDMyLDAscSksU30pLHI9di5tYXAoZnVuY3Rpb24ocSxjKXtyZXR1cm4gYz1xLmwoKSxPWzIzXSgzMywwLHEpLGN9KSxRPQp2Lm1hcChmdW5jdGlvbihxLGMpe3JldHVybiBIW2M9WzcsNDYsMjBdLGNbMV1dKGNbMl0sMCwxMiwzOSxjWzBdLHEsYil9KSx2LmZvckVhY2goZnVuY3Rpb24ocSxjLEUpeygoRT1bImFwcGx5IiwwLCJKIl0sKGM9TFJbRVsyXV0oKSkudilbRVswXV0oYyxlWzMzXSgxMixxLmtXKSkscSkua1cubGVuZ3RoPUVbMV19KSxaPWdbN10oMzYpLEw9T1s0MV0oMjQpLHA9W1lbMF0oMjQsWixPWzI1XSgxLG4pLEwpLG1bMTJdKDk3LG4sTCksWVswXSgxNCxDLDI2NSwxNTIyLGZbMF0pLEEsT1szN10oNTgsSyxPWzI1XSg1LEspLC0xMDApLGVbN10oMSx4KSxPWzM3XSg1NCxLLE9bMjVdKDcsSyksT1syNV0oOSx4KSksSFs0NF0oNTEseCksWVswXSgyNSx0RixmWzJdLGZbMl0pLHIsUltQWzFdXSg0NSxPWzldKDI5LHopLFtnWzE2XShQWzBdLC0xKV0pLFosUSx0Rl0sVz1RaShwKSxMUi5KKCkudihuLHgpLFY9VyksQis4Pj4xPj1CKSYmKEItNl4yMik8QiYmKFY9UltQWzFdXSg4LEhbMjVdKDQyLE9bOV0oMTgsCnopLEspLFtnWzE2XSg5NCxKKSxnWzE2XSgyMixDKV0pKSwoQl5QWzJdKT4+Myk9PTEmJihWPVJbUFsxXV0oMTAsSFsyNV0oNTgsT1s5XSgyMSwyKSx6KSxbZ1sxNl0oMjIsSyksZ1sxNl0oMjIsSildKSksQikrND4+Mz09MyYmKFY9eiksNSkmUFswXSk9PTQmJihlWzQ0XSgyLHoudiksUlsxN10oNzksei52KSxLPWVbNDRdKDYsei52KT4+MyxWPXouaVlbS10oKSksVn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCgoYj1bImNhcHR1cmVTdGFja1RyYWNlIiwyNywhMF0sQikmYlsxXSk9PUIpe2lmKEVycm9yW2JbMF1dKUVycm9yW2JbMF1dKHRoaXMsTlApO2Vsc2UgaWYoSj1FcnJvcigpLnN0YWNrKXRoaXMuc3RhY2s9Sjt0aGlzLk09KCh6JiYodGhpcy5tZXNzYWdlPVN0cmluZyh6KSksSykhPT12b2lkIDAmJih0aGlzLmNhdXNlPUspLGJbMl0pfXJldHVybihCXjM4KT4+M3x8KEM9eiksQ31dfSgpLEc9ZnVuY3Rpb24oKXtyZXR1cm5bZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEIrND4+CjM9PSgoSj1bMSwicHVzaCIsOF0sQis3JjI4KTxCJiYoQitKWzJdXjIpPj1CJiYocEsubGVuZ3RoPj0xMDAmJllbNDhdKDE3LDEwLEpbMF0pLHBLW0pbMV1dKHopKSxKWzBdKSYmKEs9ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyh6KSkpLEt9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKChCPDwodj1bMSwyLCJwdXNoIl0sdilbMF0mMTEpPT12WzFdJiYocD1ZWzE5XSg0LHosSykpLEI8PHZbMV0mNykpe2ZvcihDPVJlZ0V4cCgiKFtBLVpdW1xcdyBdKykvKFteXFxzXSspXFxzKig/OlxcKCguKj8pXFwpKT8iLHopLEE9W107Yj1DLmV4ZWMoSik7KUFbdlsyXV0oW2JbdlswXV0sYlt2WzFdXSxiW0tdfHx2b2lkIDBdKTtwPUF9aWYoKEItdlsxXSY1KT09dlswXSl7Zm9yKEM9KEo9Z1sxMl0oNCxLKSxKLm5leHQoKSk7IUMuZG9uZSYmei5hZGQoQy52YWx1ZSk7Qz1KLm5leHQoKSk7cD16fXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoKCgoKChwPQpbImFUIiwiZGVsZXRlIiwidiJdLChCJjc2KT09QikmJihDPURbOF0oOTQsSyksQyE9bnVsbCYmQyE9bnVsbCYmKGJOKEMpLERbMjJdKDYzLDAseixKKSxrWzE0XSgxNywxMjgseltwWzJdXSxDKSkpLEI+PjIpJjd8fChKPW5ldyBLLE9bMTRdKDMyLHosSltwWzBdXSksUT1KKSxCKXw0MCk9PUImJihiPUtbcFsyXV0uZ2V0KHopLCFifHxiLlB6fHxiLlptPmIuS18/KGImJihZWzBdKDE1LEsuWCxKLG5tLGIuR3EpLEtbcFsyXV0ucmVtb3ZlKHopKSxDPUsuTSxDW3BbMl1dW3BbMV1dKEopJiZDLkFLKEopKTooYi5abSsrLEouc2VuZChiLkN1KCksYi5MWCgpLGIuVmUoKSxiLlIwKCkpKSksQil8MTYpPT1CKXtmb3IoYj1DLnNwbGl0KCh2PUssQT1bXSxKKSk7dj56JiZiLmxlbmd0aDspQS5wdXNoKGIuc2hpZnQoKSksdi0tO1E9KGIubGVuZ3RoJiZBLnB1c2goYi5qb2luKEopKSxBKX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKCgoeD1bInYiLAo0OCwiRCJdLEIrNCleNCk+PUImJihCKzVeNyk8Qil7aWYoQyBpbnN0YW5jZW9mIE1hcClmb3IoWj17fSx2PWdbMTJdKDksQykscD12Lm5leHQoKTshcC5kb25lO3A9di5uZXh0KCkpVz1nWzEyXSgzLHAudmFsdWUpLFE9Vy5uZXh0KCkudmFsdWUsQT1XLm5leHQoKS52YWx1ZSxaW1FdPUE7ZWxzZSBaPUM7KGI9KG49WixuZXcgcXEpLFpoLnB1c2goYiksZylbNDNdKDEsITAsalosYixiW3hbMl1dKSxiLnNlbmQoeixLLEosbil9cmV0dXJuKEJeMzUpPj4oKEItNXx4WzFdKT49QiYmQi05PDwyPEImJihuUS5jYWxsKHRoaXMseiksdGhpc1t4WzBdXT1udWxsLHRoaXMuWD1PWzJdKDMxLFdrLGRvY3VtZW50KSksKEImODgpPT1CJiYodj16LGIuWCYmKEE9Yi5BKCkqLjIsdj1kMCgoQy1BKSpiW3hbMF1dKSxiW3hbMF1dPGIuTSYmKGJbeFswXV0qPUssYlt4WzBdXT5iLk0mJihiW3hbMF1dPWIuTSkpKSxiLlg9SixOPXYpLDQpfHwoTj16JiZlWzI0XSg3OSx6Lnc3KSksTn0sZnVuY3Rpb24oQiwKeixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKEI+PjImKChCLShOPVsidG9TdHJpbmciLDUsMTNdLDMpfDIyKT49QiYmKEIrMV4yNSk8QiYmKHA9WzEsOSxudWxsXSxLLnYmJihuPUdbMzZdKDIscFswXSx6LEoudixKLlgpLEogaW5zdGFuY2VvZiBsRiYmKGI9eVtOWzJdXSgzLCEwLHBbMF0sSi5pW05bMF1dKCksbiksZVs0M10oNjEsYixKLlIsOCkpLEhbMF0oNTEsbixwWzFdLEouQSksSi5BPTAsQT1uZXcgdmssdj1nWzFdKDY3LHBbMl0sVHQsQSksUT15W05bMl1dKDgsITAscFswXSxDW05bMF1dKCksdiksWj1lW05bMl1dKDIwLHBbMl0sVkQsMixwbSxRLG4pLEhbMF0oNDksWix6LEsudi5zbCksSy52LmNoYW5uZWwuc2VuZChBKSkpLE5bMV0pKT09MSl7aWYoSzx6KXRocm93IEVycm9yKCk7aWYoKGI9KEM9Si52LEMrSyksYik+Si5YKXRocm93IEVycm9yKCk7KFc9QyxKKS52PWJ9cmV0dXJuIFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKFc9Cls3LDEsNF0sQis5Pj4zPj0wKSYmQitXWzBdPj5XWzJdPDIpYTp7aWYobVs0NV0oOSxKLEspfHxrWzE3XSg1LHopKXtOPW5ldyBncSgwLCIiLDApO2JyZWFrIGF9Zm9yKFo9KGI9KEE9WWooKSxPWzE2XShXWzFdLEMpKSx2PW5ldyBOXyxnWzEyXSgxMSxiKSksbj1aLm5leHQoKTshbi5kb25lJiZ2LmFkZChuLnZhbHVlKTtuPVoubmV4dCgpKTtOPShRPShwPXYudG9TdHJpbmcoKSxZaigpLUEpLG5ldyBncShiLmxlbmd0aCxwLFEpKX1yZXR1cm4gTn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oQi00JigoQi0zJjExKT09KEItKCgoQz1bIkEiLDE1LCJNIl0sQik+PjEmMTQpPj0zJiZCLTg8NiYmTEQuY2FsbCh0aGlzLDEyNzgsMjIsWzJdKSwzKSZDWzFdfHwoej1NYXRoLnJhbmRvbSx0aGlzW0NbMF1dPXosdGhpc1tDWzJdXT01MTJFMyx0aGlzLmk9NTAwLHRoaXMucmVzZXQoKSksMykmJihKPW5ldyB6aChmdW5jdGlvbihiLEEsdixwKXtmb3Iodj1LW09NXSgpOyFiLmNsb3NlZDspQT0Kdi5uZXh0KCkscD1BLnZhbHVlLEEuZG9uZT9iLmNvbXBsZXRlKCk6Yi5uZXh0KHApO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlWzI0XSg4Mix2PT16P3ZvaWQgMDp2LnJldHVybikmJnYucmV0dXJuKCl9fSkpLENbMV0pKT09MyYmKExELmNhbGwodGhpcywxOTk0LDI2KSx0aGlzLlg9dGhpcy5WPS0xLHRoaXMuaT10aGlzW0NbMl1dPS0xLHRoaXNbQ1swXV09LTEsdGhpcy5XPWdbN10oNyksdGhpcy5DPWdbN10oMzYpKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoISgoKHY9WzEsIlUiLCJjYWxsIl0sQiYxMDcpPT1CJiYoeDFbdlsyXV0odGhpcyksdGhpcy5kZXN0aW5hdGlvbj16LHRoaXMuc291cmNlPUspLEJeNykmMTMpKXtpZigoYj0oQT1bIlsiLCI6IiwoSj10eXBlb2YgSywiXSIpXSwiIiksSik9PT0ib2JqZWN0Iilmb3IoQyBpbiBLKWIrPUFbMF0rSitBW3ZbMF1dK0MrR1s3XSgzNyxBWzJdLEtbQ10pK3o7ZWxzZSBiPUo9PT0iZnVuY3Rpb24iP2IrKEFbMF0rCkorQVt2WzBdXStLLnRvU3RyaW5nKCkreik6YisoQVswXStKK0FbdlswXV0rSyt6KTtwPWIucmVwbGFjZSgvXHMvZywiIil9cmV0dXJuKEJ8NDApPT0oKChCJjkxKT09QiYmKHA9SFs4XSgzMiw0OTg1KShKKERoLDM2KSwxMCkpLEItNiYxMik8MyYmQjw8dlswXT49LTU3JiYoej1bbnVsbCwhMSwwXSx0aGlzLkM9elsyXSx0aGlzLlg9dm9pZCAwLHRoaXNbdlsxXV09elt2WzBdXSx0aGlzLk09dlswXSx0aGlzLmw9elswXSx0aGlzLlc9elswXSx0aGlzLkg9elswXSx0aGlzLk89elsyXSksQikmJih0aGlzLnY9Sz4+PjAsdGhpcy5NPXo+Pj4wKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKEJ8KFo9WzIzLCJjYWxsIiwxOV0sKEJ8MSk8WlsyXSYmQj4+MT49MyYmKEM9dzkuZ2V0KCksQy5NPUosQy5pPUssQy5YPXosVz1DKSw0OCkpPT1CJiYoVz1iTihBZSgpKnopKSxCJjczKT09QilMRFtaWzFdXSh0aGlzLDc3OSwxMSxbMl0pO2lmKChCLTEmMTUpPj0zJiYKKEJeNDApPFpbMF0pYTppZihiPVswLG51bGwsMl0sQXJyYXkuaXNBcnJheShKKSl7aWYoKG49SltBJF18YlswXSxuKSY0KXtXPUo7YnJlYWsgYX1mb3IoQT0oUT1iWzBdLGJbMF0pO1E8Si5sZW5ndGg7USsrKXY9SyhKW1FdKSx2IT1iWzFdJiYoSltBKytdPXYpO1c9KChwPShBPFEmJihKLmxlbmd0aD1BKSxufHopLEMmJihwPShwfDQpJi0xNTM3KSxwIT09biYma1szOF0oNzcsSixwKSxDKSYmcCZiWzJdJiZUSihKKSxKKTticmVhayBhfXJldHVybihCPj4yJjExKT09MyYmKFc9KEo9eVsyNl0oNTQsTnAsSykpJiZKLmxlbmd0aCE9PTA/Slt6XTpLLmRvY3VtZW50RWxlbWVudCksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgodj1bOCwidiIsMTVdLEI+PjEpPDEyJiYoQj4+MSZ2WzJdKT49NyYmKEs9Ult2WzBdXSg2MSx0aGlzKSx6PWtbMjFdKDcsdGhpcyksdGhpcy54SltLXT10eXBlb2YgeiksQnw1Nik9PUIpe0pbdlsxXV09PW51bGx8fEpbdlsxXV0ucnp8fHlbMzNdKDQ3LAp6LEMpIT09MTR8fEouRisrO3RyeXtKLkEubmV4dChDKX1jYXRjaChRKXt9Zm9yKGI9Z1sxMl0oMTEsSi5zdHJlYW1zLnZhbHVlcygpKSxBPWIubmV4dCgpOyFBLmRvbmU7QT1iLm5leHQoKSlBLnZhbHVlLkE9S31pZigoQiY5MSk9PUIpYTpzd2l0Y2goQT1bMCwyMjQsOTFdLGIpe2Nhc2UgQzpwPTE4NzticmVhayBhO2Nhc2UgSzpwPUo7YnJlYWsgYTtjYXNlIDE3MzpwPXo7YnJlYWsgYTtjYXNlIEFbMV06cD1BWzJdO2JyZWFrIGE7Y2FzZSBBWzBdOnA9QVsxXTticmVhayBhO2RlZmF1bHQ6cD1iO2JyZWFrIGF9cmV0dXJuIEI8PDEmNnx8KHA9SiYmSi5KWT9KLkpZW3pdfHxLOkspLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCgoKCgoUT1bMiw5LG51bGxdLEItNDw8MTxCKSYmKEIrOCY0MSk+PUImJihLPVsiQW5kcm9pZCIsIkZ4aU9TIiwiQ3JpT1MiXSxwPURbMjBdKDMzLHopJiYhKGtbMjNdKDUsS1tRWzBdXSl8fChtWzIyXSgyOCk/MDpEWzIwXSgzOSwiQ29hc3QiKSl8fApnWzhdKDIxLCJPcGVyYSIpfHxrWzE3XSgxLCJFZGdlIil8fHlbMjRdKDQ4LCEwKXx8KG1bMjJdKDI5KT9nWzI4XSgxMCwhMCwkSik6RFsyMF0oNSwiT1BSIikpfHxPWzM3XShRWzFdLEtbMV0pfHx5WzQ1XSgyMCwiU2lsayIpfHxEWzIwXSgxLEtbMF0pKSksQik8PDE+PVFbMF0mJihCXjU0KTwyMiYmVC5jYWxsKHRoaXMseiksQnw4MCk9PUImJihwPUshPVFbMl0mJksuTmo9PT16KSxCKT4+UVswXSYxNCk+PVFbMF0mJihCfDgpPj40PDEpe2lmKEdbMzZdKDEyLCh2PVs0LDNFNCw5XSwwKSwxOCxLLGZtLGwpKXRyeXtBPUdbMzldKDczLFJbNDhdKDczLEssZm0sMTgsbCkpLGI9ZU4oQSksSi5pPUoudi52Lmo5KG5ldyBvNihiKSx2WzFdKSxKLmkmJnR5cGVvZiBKLmkuY2F0Y2g9PT0iZnVuY3Rpb24iJiZKLmkuY2F0Y2goZnVuY3Rpb24oKXt9KX1jYXRjaChuKXtKLmk9UHJvbWlzZS5yZXNvbHZlKG5ldyBMbSh2b2lkIDAsOCwwLDAsW10pKX1pZihnWzE2XSgyNixsLEssNikhPVFbMl0pSi52LnYub25FcnJvcihLLnMzKCkpOwplbHNlIFlbMTldKDM2LHosSykmJkoudi52LmJSKCksa1s0N10oNDEsSixLLlUzKCkpLEsueG4oKSYmZ1syMF0oMTYsMSxLLnhuKCkpLEsuenUoKSYmT1szNl0oUVsxXSwwLEsuenUoKSksKDAsdCQueTUpKEouQy5iaW5kKEosUlsyNl0oMTMsSyw1LGwpLFJbMjZdKDIwLEssdltRWzBdXSxsKSxSWzQ4XSg3MCxLLHFGLHZbMF0sbCksZVsyNl0oNCxRWzJdLEsuVkEoKSksISFDKSw4KSxSWzQ4XSg3NSxLLFNkLDcsbCkmJk9bMzRdKDEwLEosUls0OF0oNzEsSyxTZCw3LGwpKX1yZXR1cm4oQiY4OSk9PUImJihDJT0xRTYsYj1kMChBZSgpKnopLHA9W2JdLmNvbmNhdChlWzMzXSgxMSxKLm1hcChmdW5jdGlvbihuLFope3JldHVybihuK0oubGVuZ3RoKyhDK2IpKihaK2IpKSVLfSkpKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtyZXR1cm4oQnwoKChCPj4oVz1bNSw3LDI5XSwyKSZXWzFdKT09MiYmKEs9Sz09PXZvaWQgMD9udWxsOkssTj17dGhlbjpmdW5jdGlvbih4LApmKXtyZXR1cm4oSyYmSyh4LGYpLEcpWzExXSgxMSx6LnRoZW4oeCxmKSl9LCJjYXRjaCI6ZnVuY3Rpb24oeCl7cmV0dXJuIEdbMTFdKDQzLHoudGhlbih2b2lkIDAseCksSyl9fSksKEJeNTMpPj1XWzJdKSYmQitXWzBdPj40PDEmJihaPUMuWUY9PT12b2lkIDA/dm9pZCAwOkMuWUYsUT1DLm9uTWVzc2FnZT09PXZvaWQgMD92b2lkIDA6Qy5vbk1lc3NhZ2Usdj1DLnlvLEE9Qy5WZD09PXZvaWQgMD92b2lkIDA6Qy5WZCxiPUMuZGVzdGluYXRpb24sbj1DLkVsLHA9Qy52RCxuZXcgUjYoZnVuY3Rpb24oeCxmLEwpe2IuYWRkRXZlbnRMaXN0ZW5lcihFeiwoTD1mdW5jdGlvbihyLFYpeyhWPVsiZGF0YSIsInNvdXJjZSIsJ1Rva2VuIG1pc21hdGNoIHdoaWxlIGVzdGFibGlzaGluZyBjaGFubmVsICInXSxyW1ZbMV1dJiZyW1ZbMV1dPT09cCgpJiZ2LnYoci5vcmlnaW4pKSYmKHJbVlswXV1bcnFdfHxyW1ZbMF1dKT09PW4mJihiLnJlbW92ZUV2ZW50TGlzdGVuZXIoRXosTCx6KSxBJiZyW1ZbMF1dW1ZpXSE9PQpBP2YoRXJyb3IoVlsyXStuKyciLiBFeHBlY3RlZCAnK0ErIiwgYnV0IHJlY2VpdmVkICIrcltWWzBdXVtWaV0rSikpOih4KGdbNl0oMSxRLHIucG9ydHNbS10pKSxaJiZaKHIpKSl9LEwpLHopfSkpLDI0KSk9PUImJihiZC5jYWxsKHRoaXMsa1s0N10oV1sxXSxHdCksZnVuY3Rpb24oKXt9LExLKCksbnVsbCxLKSxnWzM3XSg3Myx6LlQoKSx0aGlzKSx0aGlzLnRzPUhrKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZighKChCfChXPVsxNSwxMywxN10sNykpPj40KSlhOntpZigodj1DLmdldChBKSx2KSE9eil7Wj12O2JyZWFrIGF9Zm9yKFE9dj0wO1E8QS5sZW5ndGg7USsrKXA9QVtRXSxSWzE0XSg3MCx6LEoscCxLKSE9eiYmKHYhPT0wJiYoYj1ZWzI1XSg4Myx2b2lkIDAsdixiLEosSykpLHY9cCk7Wj0oQy5zZXQoQSx2KSx2KX1pZigoQnwxNik9PUIpYTp7aWYoSj1bMCw1LDZdLCFQSSl7Wj1DeCh6LEspO2JyZWFrIGF9dHJ5e2lmKChBPXogaW5zdGFuY2VvZgpSZXF1ZXN0P3oudXJsOnoudG9TdHJpbmcoKSxLKT09bnVsbD8wOksua2VlcGFsaXZlKXtpZihDPWQ0LmZpbmQoZnVuY3Rpb24oTil7cmV0dXJuIHlbMzhdKDY3LG51bGwsTixBKSE9PW51bGx9KSl7Yj1EWzIzXSg1Niw0LERbMjZdKDQ5LDExLEhbMzddKDI5LEpbMl0sT1tXWzBdXSgxMCwxMCxHWzQzXSg5MCwxLEpbMV0pLEM9PW51bGw/dm9pZCAwOihwPURbMzFdKDIxLG51bGwsQSxDKSk9PW51bGw/dm9pZCAwOnAuc3Vic3RyaW5nKEpbMF0sMTAwKSksQy52LlNLKSxDLnYub3JpZ2luKS55ZSgpLEMuTSksWj1EWzE0XSgyNSxudWxsLEsseixiKTticmVhayBhfVo9Q3goeixLKTticmVhayBhfWZvcihRPSh2PWdbMTJdKDYsZDQpLHYpLm5leHQoKTshUS5kb25lO1E9di5uZXh0KCkpaWYobj1IW1dbMl1dKFdbMV0sMTAwLDEsUS52YWx1ZSxBKSl7Wj1Qcm9taXNlLnJlc29sdmUobi50aGVuKGZ1bmN0aW9uKE4pe3JldHVybiBEWzE0XSg5LG51bGwsSyx6LE4pfSxmdW5jdGlvbigpe3JldHVybiBDeCh6LApLKX0pKTticmVhayBhfVo9Q3goeixLKTticmVhayBhfWNhdGNoKE4pe1o9Q3goeixLKTticmVhayBhfX1yZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBCPj4oKGI9WyJ0b1N0cmluZyIsMSw4XSxCK2JbMl0pPj5iWzFdPj1CJiYoQi1iWzJdXjkpPEImJihKPXosdHlwZW9mIEtbYlswXV09PT0iZnVuY3Rpb24iJiYoSj16K0spLEM9SitLW2VwKCldKSxiKVsxXSYzfHwoQz1SWzM4XSgzNyxuZXcgdUsobmV3IGFOKHopKSkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKCgoQl4zMSkmKGI9WzE2LDcsOV0sYilbMV18fChDPVJbMTNdKDIzLEhbMjVdKDU4LE9bYlsyXV0oMzEsMzUpLHopLFtnW2JbMF1dKDU0LEspLGdbYlswXV0oMjIsSildKSksQil8YlsyXSkmNCk8NCYmKEI+PjEmNSk+PTMmJihDPW5ldyBzcyh6JjQyOTQ5NjcyOTUsYk4oei80Mjk0OTY3Mjk2KSkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEE9W251bGwsInYiLDQ4XSwKQjw8MSYzMSk9PTQpe2ZvcihiPShDPUoucG9wKCksSy5NK0tbQVsxXV0ubGVuZ3RoKCktQyk7Yj56OylKLnB1c2goYiZ6fDEyOCksYj4+Pj03LEsuTSsrO0oucHVzaChiKSxLLk0rK31yZXR1cm4oKChCfDMpJjE1KT49KChCfEFbMl0pPT1CJiYoSz09ej9DLmkuY2FsbChDLlgsSik6Qy5NJiZDLk0uY2FsbChDLlgsSikpLChCLTheMjMpPEImJkIrNj4+MT49QiYmKHY9W10uY29uY2F0KGVbMzNdKDE5LE9iamVjdC52YWx1ZXMoUGspKSxlWzMzXSgxMSxPYmplY3QudmFsdWVzKCQxKSkpKSw1KSYmKEJeNDYpPDIxJiYodj1kb2N1bWVudC5ib2R5KSwoQisyXjEwKT49QikmJihCLTF8MjEpPEImJih0aGlzW0FbMV1dPUFbMF0sdGhpcy5NPUFbMF0sej10aGlzLEdsLnp6c21jPWZ1bmN0aW9uKHAsUSxuLFope3RyeXtuPXoudixaPWtbNDVdKDI1LHApLFE9cV8oWiksbihRKX1jYXRjaChXKXt6Lm9uRXJyb3IoMSl9fSxHbC56em1jcz1mdW5jdGlvbihwKXt0cnl7KDAsei5NKShuZXcgRnkoe3Zpc2libGU6cH0pKX1jYXRjaChRKXt6Lm9uRXJyb3IoMSl9fSksCnZ9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEIrMT4+KChCfDQwKSE9KEM9WyJvIiw2MSwzXSxCKXx8S1tDWzBdXXx8KEtbQ1swXV09eixnW0NbMl1dKDYyLEssTXEpLGdbQ1syXV0oQ1sxXSxLLGlaKSksQ1syXSk+PTAmJkItNzwxNSYmKHRoaXMuaT16LHRoaXMuY2xvc2VkPSExLHRoaXMuWD10aGlzLk09bnVsbCksQi02XjE2KT49QiYmKEIrNyY0Mik8QiYmKHRoaXMucmVxdWVzdD16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoQi0zPj4zPT0oKCgoQiY3Nyk9PSgodj1bNiw0MCw1OV0sQi05PDIwJiYoQjw8MiY5KT49OCkmJih6LnYoKSx0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLnYhPTMmJiF6LnRhcmdldC5ocmVmJiYoSz0hdGhpcy5JVCgpLGdbM10odlsyXSx0aGlzLEs/eWk6WTEpJiYoei5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuSGgoSykpKSksQikmJihwPVlbNDZdKHZbMV0sbnVsbCxmdW5jdGlvbihRLG4sWixXLE4seCxmLEwpe3JldHVybiBHWzEzXSgzMiwKZnVuY3Rpb24ocixWLFAscSxjLEUsUyl7aWYoci5NPT0oVj1bMTIsMywyXSxTPVsiZ2V0UmFuZG9tVmFsdWVzIiwiaW1wb3J0S2V5IiwxNl0sQykpe2lmKCFRKXRocm93IDE7cmV0dXJuIGM9UVsocT0oKFA9bmV3IChFPSgoZj0oTj1rWzM5XSg1OCwxOCxiKSxuZXcgVWludDhBcnJheSgxMikpLG4pW1NbMF1dKGYpLHIudiksWWkpLFApLnVwZGF0ZShBKSxuZXcgVWludDhBcnJheShQLmRpZ2VzdCgpKSksUylbMV1dKGNrKCkscSx7bmFtZTpTcCgpLGxlbmd0aDpxLmxlbmd0aH0sSyxbbVIoKSxsWigpXSksRS5jYWxsKHIsYyxWWzJdKX1pZihyLk0hPVZbMV0pcmV0dXJuIFo9ci5YLHIudihRLmVuY3J5cHQoe25hbWU6U3AoKSxpdjpmLGFkZGl0aW9uYWxEYXRhOm5ldyBVaW50OEFycmF5KDApLHRhZ0xlbmd0aDoxMjh9LFosbmV3IFVpbnQ4QXJyYXkoTikpLFZbMV0pO3JldHVybiBXPSh4PShMPXIuWCxuZXcgVWludDhBcnJheShMKSksbmV3IFVpbnQ4QXJyYXkoVlswXSt4Lmxlbmd0aCkpLApXLnNldChmLEopLFcuc2V0KHgsVlswXSksci5yZXR1cm4oZVtTWzJdXSg3MCx6LEVNLFcpKX0pfSkpLChCfHZbMV0pPT1CJiYoYj1lWzExXSgzNCwiIix6LEssSj9YSTp1Wiksa1syXSgxOSxZWzIzXSg1MixLKSxiLCQ0LFJ4KGZ1bmN0aW9uKCl7WVszNV0oMzIsdGhpcy51KCksIm92ZXJmbG93IiwidmlzaWJsZSIpfSxLKSksa1syXSgyMyxZWzIzXSg0OSxLKSxiLHF2LFJ4KGZ1bmN0aW9uKCl7Snx8WVszNV0oMzIsdGhpcy51KCksIm92ZXJmbG93IiwiIiksQyYmQygpfSxLKSkscD1iKSxCLXZbMF0pXjI1KT49QiYmKEIrNyYyMyk8QiYmKHA9ZnVuY3Rpb24oKXt2YXIgUT10aGlzLG49YXJndW1lbnRzO3JldHVybiBQYihmdW5jdGlvbigpe3JldHVybiBSWzMxXSgzMiwwLGZ1bmN0aW9uKCl7cmV0dXJuIEsuYXBwbHkoUSxuKX0sWEopfSx6KX0pLDMpKWE6e2lmKEsgaW5zdGFuY2VvZiBlVyl7cD1LLnY7YnJlYWsgYX10aHJvdyBFcnJvcih6KTt9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseiwKSyxKKXtpZigoQi05JihLPVs0MiwyLCJjYWxsIl0sOCkpPDMmJihCPDxLWzFdJjcpPj1LWzFdKVRbS1syXV0odGhpcyx6KTtpZigoQisxJktbMF0pPEImJihCKzFeOCk+PUIpVFtLWzJdXSh0aGlzLHopO3JldHVybiBKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQis2JigoQisoKEIrKCgoQT1bMCwibm93IiwiaiJdLEIpJjkwKT09QiYmKGI9bVszNV0oNTQsQVswXSx5WzldKDksMSx6KSxZaigpKSksMikmNyk9PTQmJlQuY2FsbCh0aGlzLHopLDkpPj40fHwoSj1bbnVsbF0sd0UuY2FsbCh0aGlzKSx0aGlzLmw9SltBWzBdXSx0aGlzLmk9eix0aGlzLlg9SltBWzBdXSx0aGlzLlI9SltBWzBdXSx0aGlzLkE9SltBWzBdXSx0aGlzW0FbMl1dPUssdGhpcy5GPUpbQVswXV0sdGhpcy52PUpbQVswXV0sdGhpcy5VPURhdGVbQVsxXV0oKSx0aGlzLlM9SltBWzBdXSx0aGlzLkM9SltBWzBdXSx0aGlzLkk9SltBWzBdXSksQnw1KT4+ND09NCYmKEs9ZGsuSigpLmdldCgpLGI9SFsyMV0oMzksCksseixsKSksMjcpKT09MiYmKEouWD1LLEoudiYmKEouUj16LEoudi5hYm9ydCgpLEouUj1LKSxKLk09NSxKLmk9QyxHWzE2XSg1NiwhMCxKKSxnWzE3XSgyMyxudWxsLEopKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZighKChCXjgpJigoQnw0OCk9PSgoQi0oUT1bMjcsMTYsNV0sNileMik8QiYmQis0Pj4xPj1CJiYocD1KLmxhc3RFbGVtZW50Q2hpbGQhPT12b2lkIDA/Si5sYXN0RWxlbWVudENoaWxkOkhbUVswXV0oNTcseixLLEoubGFzdENoaWxkKSksQikmJlQuY2FsbCh0aGlzLHopLFEpWzBdKSlrWzZdKDU4LHosSyxKKTtyZXR1cm4oKEJ8ODgpPT1CJiYoQz1DPT09dm9pZCAwP1N1OkMsQT1bITAsIkdldCBhIG5ldyBjaGFsbGVuZ2UiLCExXSxiPWI9PT12b2lkIDA/bnVsbDpiLG5RLmNhbGwodGhpcyksdGhpcy5CMT1DLHRoaXMuZnE9Six0aGlzLnJiPW5ldyBibSh6LEspLHRoaXMuTXk9Qz09YWcsdGhpcy5XPW51bGwsdGhpcy5YQz1DPT1TdSx0aGlzLmRWPQpDPT1RYix0aGlzLnBnPUM9PVVrLHRoaXMuUj10aGlzLnJiLHRoaXMucmVzcG9uc2U9e30sdGhpcy5rVz1iLHRoaXMua0o9W10sdj1IWzNdKDQsQVsyXSksdGhpcy5wcT1EWzQxXSg0MCxRWzFdLHY/YTY6aHUsZHEsazEsQVsxXSx2b2lkIDAsdGhpcyksdGhpcy5JPURbNDFdKDEsUVsxXSx2P3R1OlVNLE1fLGsxLCJHZXQgYW4gYXVkaW8gY2hhbGxlbmdlIix2b2lkIDAsdGhpcyksdGhpcy5ucT1EWzQxXSgzMyxRWzFdLHY/d3E6STYsRkksazEsIkdldCBhIHZpc3VhbCBjaGFsbGVuZ2UiLHZvaWQgMCx0aGlzKSx0aGlzLkc9RFs0MV0oMSxRWzFdLEJzLHN4LGsxLCJHZXQgYSBsaXZlbmVzcyBjaGFsbGVuZ2UiLHZvaWQgMCx0aGlzKSx0aGlzLmlZPURbNDFdKDQxLFFbMV0sengsS2osazEsIlZlcmlmeSB3aXRoIG1vYmlsZSIsdm9pZCAwLHRoaXMpLHRoaXMuSkw9RFs0MV0oOSxRWzFdLHY/Sm86Q2osYmosazEsIkhlbHAiLHZvaWQgMCx0aGlzLEFbMF0pLHRoaXMuRmc9RFs0MV0oMzIsUVsxXSwKdj9Bbzp2cyxUeCxrMSwiVW5kbyIsdm9pZCAwLHRoaXMsQVswXSksdGhpcy5vPVJbMTJdKDMsUVsxXSwiVmVyaWZ5Iix0aGlzLGozKSx0aGlzLmxZPW5ldyBwaiksKEItUVsyXV5RWzJdKT49QikmJkIrMT4+MjxCJiYocD1URCgnRHJhdyBhIGJveCBhcm91bmQgdGhlIG9iamVjdCBieSBjbGlja2luZyBvbiBpdHMgY29ybmVycyBhcyBpbiB0aGUgYW5pbWF0aW9uICBhYm92ZS4gSWYgbm90IGNsZWFyLCBvciB0byBnZXQgYSBuZXcgY2hhbGxlbmdlLCByZWxvYWQgdGhlIGNoYWxsZW5nZS4gPGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vcmVjYXB0Y2hhIiB0YXJnZXQ9Il9ibGFuayI+TGVhcm4gbW9yZS48L2E+JykpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKEJeOCkmNyk9PSgoQT1bImNoYXJDb2RlQXQiLDMsMjRdLEIpLTQ8PDE8QiYmKEIrNiYzMCk+PUImJiFKLnYmJiFKLlcmJihKLmtKPTEsZVs1XSgxMCx6LEouekosSiksSi5tPUspLDEpJiYoYj1LIT09Cm51bGwmJnogaW4gSz9LW3pdOnZvaWQgMCksQi1BWzFdXjgpPEImJihCLTZeQVsyXSk+PUIpYTp7Zm9yKEM9KEo9UUgoRGF0ZSksMCk7QzxKLmxlbmd0aDtDKyspaWYoSltDXS5sZW5ndGg9PUFbMV0mJkpbQ11bQVswXV0oLTEpPT16KXtiPUpbQ107YnJlYWsgYX1iPUt9cmV0dXJuIGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihCJigoQi02JihRPVsiTyIsMzIsInYiXSw3KSk9PTEmJihKPUo9PT12b2lkIDA/bmV3IG5qKDAsMCwwLDApOkosdltRWzJdXXx8dltRWzBdXSh2b2lkIDAsQT09PXZvaWQgMD8hMTpBKSx2LkY9Snx8bmV3IG5qKDAsMCwwLDApLGJbbmYoKV09Wk0oKSxiW1dzKCldPWc2K3Yuaix2LlI9SFsyMF0oUVsxXSx6LGIsQyksWVs0N10oMzYsSyx2KS5hcHBlbmRDaGlsZCh2LlIpKSwyNikpPT1CJiYodGhpc1tRWzJdXT16KSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCfChCLShRPVszLCJ4SiIsMzJdLFFbMF0pJjZ8fAooSz1SWzhdKDU3LHRoaXMpLHo9a1syMV0oNSx0aGlzKSx0aGlzW1FbMV1dW0tdPXopLFEpWzJdKT09QilHWzEzXSgxNixmdW5jdGlvbihaLFcsTil7Vz1bNSwoTj1bNDAwLDU2LCJBQSJdLG51bGwpLDFdO3N3aXRjaChaLk0pe2Nhc2UgV1syXTpyZXR1cm4gcD0hMSxaLkEoMiksWi52KGIuWCw0KTtjYXNlIDQ6cmV0dXJuIHY9Wi5YLHA9ISghQ3x8SiksWi52KHYuc2VuZCh1ViksV1swXSk7Y2FzZSBXWzBdOkRbMTBdKE5bMV0seixOW0E9Wi5YLDBdLHAsQVtOWzJdXSxBLnVSLGIsQS5TSSxBLkpyKSxaLkYoeik7YnJlYWs7Y2FzZSAyOlouaSgpLERbMTBdKDU3LHosTlswXSxwLEssV1sxXSxiLFtdLFtdKSxaLlIoKX19KTtyZXR1cm4oQisxJjcpPj02JiZCLTc8MjImJihuPXopLG59LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gQisoKGI9WzI2LDEzLDg2XSxCJmJbMF0pPT1CJiYoQz1SW2JbMV1dKDEyLEhbMjVdKDQzLE9bOV0oYlswXSwxMCkseiksW2dbMTZdKGJbMl0sSyksZ1sxNl0oNzAsCkopXSkpLDcpPj40fHwoQz1KKEsoKSwzMyxOYygpKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZigoQiYoKEJ8KEw9KChCPj4yJjcpPT0xJiYoej1TdHJpbmcoeiksSy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoej16LnRvTG93ZXJDYXNlKCkpLGY9Sy5jcmVhdGVFbGVtZW50KHopKSxbNTksMCwyOF0pLDgwKSk9PUImJih4PVsxMCwxLCExXSxDPUM9PT12b2lkIDA/dEY6QyxBPWdbMjZdKDI2LExSLkooKSx6KSxaPWdbMTJdKDYsQSksVz1aLm5leHQoKS52YWx1ZSxOPVoubmV4dCgpLnZhbHVlLGI9SFsxNV0oNzIseFtMWzFdXSksUT1nWzddKDM2KSx2PWdbN10oNSksbj1bdkkoTixIWzE1XSgzMix4WzFdKSxLLGIpLEhbNDRdKDQzLFcpLFlbTFsxXV0oTFsyXSxRLE9bMjVdKDcsTiksT1syNV0oOSxXKSksUlsxOV0oNjUsVyxIWzE1XSg0OCw1KSxOKSxHWzE0XSg3LFcsT1syNV0oMSxXKSxMWzFdKSxZW0xbMV1dKExbMl0sClEsT1syNV0oNSxXKSxMWzFdKSx2SShOLEhbMTVdKDQwLDcpLFcpLFlbTFsxXV0oTFsyXSxRLE9bMjVdKDksTikseFsyXSksUlsxOV0oMzIsTixiLEspLFlbTFsxXV0oMjcsUSxPWzI1XSgzLE4pLHhbMl0pLHZJKE4sSFsxNV0oNTYseiksSyksWVtMWzFdXSgyNSx2LE9bMjVdKDMsTiksT1syNV0oMSxKKSksUSxIWzQ0XSg0MixLKSxIWzQ0XSg1NSxXKSxIWzQ0XShMWzBdLE4pLFlbTFsxXV0oMjUsQyx4WzFdLHhbMV0pLHYsSFs0NF0oNDIsVyksSFs0NF0oNDIsTildLChwPUxSLkooKSkudi5hcHBseShwLGVbMzNdKDQsQSkpLGY9biksMTA5KSk9PUIpaWYoSj1bMUU2LDAsMzJdLEsubGVuZ3RoPHopa1sxMl0oMTQsSlsxXSxOdW1iZXIoSykpO2Vsc2UgaWYoZ1syMl0oNTUpKXA9QmlnSW50KEspLE9PPU51bWJlcihwJkJpZ0ludCg0Mjk0OTY3Mjk1KSk+Pj5KWzFdLHhPPU51bWJlcihwPj5CaWdJbnQoSlsyXSkmQmlnSW50KDQyOTQ5NjcyOTUpKTtlbHNle2Zvcih2PShuPSh4Tz1KW2I9Sy5sZW5ndGgsCjFdLEpbMV0rKEM9KyhLW09PPUpbMV0sSlsxXV09PT0iLSIpLEMpKSwoYi1DKSU2KStDO3Y8PWI7bj12LHYrPTYpT089T08qSltMWzFdXStOdW1iZXIoSy5zbGljZShuLHYpKSx4Tyo9SltMWzFdXSxPTz49NDI5NDk2NzI5NiYmKHhPKz1NYXRoLnRydW5jKE9PLzQyOTQ5NjcyOTYpLHhPPj4+PUpbMV0sT08+Pj49SlsxXSk7QyYmKFE9Z1sxMl0oMSxHWzMxXSgzOCwxLHhPLE9PKSksQT1RLm5leHQoKS52YWx1ZSx4Tz1RLm5leHQoKS52YWx1ZSxPTz1BKX1pZigoQi01XjExKTxCJiYoQisyXjE4KT49QilhOntpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWwhPT0idW5kZWZpbmVkIil7KEo9Qz0oYj1uZXcgTWVzc2FnZUNoYW5uZWwse30pLGJbT3goKV0pLm9ubWVzc2FnZT1mdW5jdGlvbihyKXtDLm5leHQhPT12b2lkIDAmJihDPUMubmV4dCxyPUMucUksQy5xST16LHIoKSl9LGY9ZnVuY3Rpb24ocil7YltKLm5leHQ9e3FJOnJ9LEo9Si5uZXh0LHhYKCldLnBvc3RNZXNzYWdlKEspfTticmVhayBhfWY9CmZ1bmN0aW9uKHIpe0dsLnNldFRpbWVvdXQocixLKX19cmV0dXJuKEImMzApPT1CJiYoZzBbNl0oNyxmdW5jdGlvbihyLFYpe3RoaXMuVy5oYXNPd25Qcm9wZXJ0eShWKSYmUlsxNl0oMTcscil9LHouVyx6KSx6Llc9e30pLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoKChCXjM4KSY3KT09KFE9WzE3LCJjYWxsIiwxXSxRKVsyXSlUW1FbMV1dKHRoaXMseik7aWYoKEImNTcpPT1CKWE6e2lmKChwPShnWzQxXSg0OSxDKSx2PUMuYVQsdltBJF18MCksSik9PW51bGwpaWYoQT1SWzQ1XSg2LG51bGwsdiksR1sxMl0oUVsyXSxudWxsLHYsYixBLHAseik9PT1LKUEuc2V0KHosMCk7ZWxzZXtuPUM7YnJlYWsgYX1lbHNlIHA9WVszN10oNDgscCxLLGIsdix6KTtZWzI1XShRWzBdLEosSyxwLGIsdiksbj1DfXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoQi0oeD1bImNhbGwiLDIsNl0seClbMV0+PjM9PTEpVFt4WzBdXSh0aGlzLAp6KTtpZigoKEI+PnhbMV0meFsyXXx8KE49R1sxM10oOSxmdW5jdGlvbihmLEwscil7TD1bMTAsKHI9WyExLDMsNF0sMiksMUU0XTtzd2l0Y2goZi5NKXtjYXNlIHo6aWYoIWIuWCl0aHJvdyBFcnJvcigiY291bGQgbm90IGNvbnRhY3QgcmVDQVBUQ0hBLiIpO2lmKCFiLk0pcmV0dXJuIGYucmV0dXJuKEhbMV0oNjksMCxMWzFdKSk7cmV0dXJuIGYuQShMWzFdKSxmLnYoYi5YLHJbMl0pO2Nhc2UgclsyXTpmLkYoKFc9Zi5YLHIpWzFdKTticmVhaztjYXNlIExbMV06dGhyb3cgZi5pKCksRXJyb3IoImNvdWxkIG5vdCBjb250YWN0IHJlQ0FQVENIQS4iKTtjYXNlIHJbMV06cmV0dXJuIHY9e30scD0odltGeF09Yi52LHYpLGYuQShKKSxmLnYoVy5zZW5kKGxWLHAsTFsyXSksQyk7Y2FzZSBDOnJldHVybiBRPWYuWCxaPW5ldyBBTShRKSxBPVouczMoKSxuPVouYXUoKSxiLnY9WVszNF0oNixMWzFdLFopLGIudiYmQSE9TFsxXSYmQSE9SyYmQSE9TFswXSYmbj9iLmk9bmV3IERNKG4pOmIuTT0KclswXSxmLnJldHVybihIWzFdKDcwLDAsQSxaLmRIKCkpKTtjYXNlIEo6dGhyb3cgZi5pKCksRXJyb3IoImNoYWxsZW5nZUFjY291bnQgcmVxdWVzdCBmYWlsZWQuIik7fX0pKSxCKXw0MCk9PUIpVFt4WzBdXSh0aGlzLHopO3JldHVybiBOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCLShMPVszLDIsNF0sKEItTFsxXXw5KTxCJiZCLTc8PDE+PUImJih2ei5jYWxsKHRoaXMpLGVbMjRdKDUxLHopfHwhej9DPXtuZXh0OnohPW51bGw/ejp2b2lkIDAsZXJyb3I6SyE9bnVsbD9LOnZvaWQgMCxjb21wbGV0ZTpKIT1udWxsP0o6dm9pZCAwfTpDPXosdGhpcy5kZXN0aW5hdGlvbj1uZXcgZmooQykpLEwpWzFdJjcpPT1MWzFdKWE6e2lmKCgoeD1bMCxudWxsLCEwXSxvMikoKSxRPXhbMV0sSikudj09QylPWzEwXSgyMix4WzFdLEopLERbMjldKDMyLHhbMV0sSiksSi52PXhbMV0sdj1MWzFdO2Vsc2UgaWYoR1s0NV0oNTUsSi5YLEMpKVE9Qy5VLFlbMzldKDMyLAp4WzFdLEouWCxDKSx2PTE7ZWxzZXtmPXZvaWQgMDticmVhayBhfWlmKEouTSE9eFswXSlpZihDLlIpaWYodj09MSlwPUMubD9DLmwubGVuZ3RoOjAsVz1EYXRlLm5vdygpLUMuUCxuPUouVSxaPWdbMjNdKDQ2KSxnW0xbMF1dKDUzLFosbmV3IExqKFoscCxXLG4pKSxrWzI0XSg1LHhbMF0sSik7ZWxzZSBHWzIxXShMWzBdLHhbTFsxXV0seFswXSxKKTtlbHNle2lmKChBPShOPUMuRixDLkcpLE49PUxbMF0pfHxOPT14WzBdJiZBPnhbMF0pUjIoKSxBPjIwMCYmKEouRE09Qy5HKTtlbHNle2lmKHY9PTEmJk9bMzJdKDI4LHhbTFsxXV0sITEsTFsxXSwxLEosQyl8fHY9PUxbMV0mJkRbOV0oMSwhMSxKKSl7Zj12b2lkIDA7YnJlYWsgYX1yNigpfShRJiZRLmxlbmd0aD54WzBdJiYoYj1KLlgsYi5YPWIuWC5jb25jYXQoUSkpLFZIKSgpO3N3aXRjaChOKXtjYXNlIDE6ZVsxXSgyNix4WzBdLDUsSik7YnJlYWs7Y2FzZSBLOmVbMV0oMjUseFswXSwxMCxKKTticmVhaztjYXNlIExbMF06ZVsxXSg1OSwKeFswXSx6LEopO2JyZWFrO2RlZmF1bHQ6ZVsxXSg1Nyx4WzBdLExbMV0sSil9fX1pZigoQi01JjE0KTxMWzFdJiYoQnxMWzBdKT49OCl7aWYoQz0oKHA9KFE9KGI9KEp8fChKPXt9KSxbNCwiIiwiIG1vcmUgaW5uZXIgZXJyb3JzIl0pLEpbR1sxM10oTFsxXSxiWzFdLEspXT0hMCxLW2VwKCldfHxiWzFdKSxLLmNhdXNlKSkmJiFKW0dbMTNdKExbMF0sYlsxXSxwKV0mJihRKz0iXG5DYXVzZWQgYnk6ICIscC5zdGFjayYmcC5zdGFjay5pbmRleE9mKHAudG9TdHJpbmcoKSk9PTB8fChRKz10eXBlb2YgcD09PSJzdHJpbmciP3A6cC5tZXNzYWdlKyJcbiIpLFErPUdbMjhdKDIyLCJcbi4uLiAiLHAsSikpLEsuZXJyb3JzKSxBcnJheS5pc0FycmF5KEMpKXtmb3Iodj0oQT0xLDApO3Y8Qy5sZW5ndGgmJiEoQT5iWzBdKTt2KyspSltHWzEzXShMWzJdLGJbMV0sQ1t2XSldfHwoUSs9IlxuSW5uZXIgZXJyb3IgIitBKysgKyI6ICIsQ1t2XS5zdGFjayYmQ1t2XS5zdGFjay5pbmRleE9mKENbdl0udG9TdHJpbmcoKSk9PQowfHwoUSs9dHlwZW9mIENbdl09PT0ic3RyaW5nIj9DW3ZdOkNbdl0ubWVzc2FnZSsiXG4iKSxRKz1HWzI4XSgyMSwiXG4uLi4gIixDW3ZdLEopKTt2PEMubGVuZ3RoJiYoUSs9eisoQy5sZW5ndGgtdikrYltMWzFdXSl9Zj1RfXJldHVybiBmfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQnwoKCgoQl4oYj1bNiwiWCIsImZyb21DaGFyQ29kZSJdLGJbMF0pKTwyNSYmQis5Pj0xOSYmKEd4PT16JiYoR3g9InBsYWNlaG9sZGVyImluIEdbMjVdKDM4LGQ1LGRvY3VtZW50KSksQT1HeCksKEI8PDImMTYpPDUmJihCKzcmNSk+PTMpJiYoSz1bXSx6W2JbMV1dLmRRLkRuLk50LmZvckVhY2goZnVuY3Rpb24odixwKXt2LnNlbGVjdGVkJiZLLnB1c2gocCl9KSxBPUspLEJ8Myk8MjMmJkI8PDI+PTEyJiYoYmQuY2FsbCh0aGlzLGtbMThdKGJbMF0sSHMpLGZ1bmN0aW9uKCl7fSxMSygpKSxHWzQxXSgzOSwxNCxtWzE5XSg0NCwxLE9bNDZdKDU2LG51bGwsMCx6KSkpLGdbMzddKDc1LHouVCgpLAp0aGlzKSx0aGlzLnRzPUhrKSw0MCkpPT1CJiYoQz1TdHJpbmdbYlsyXV0uYXBwbHkoeixLKSxBPUo9PXo/QzpKK0MpLEF9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoKEItN14oSj1bMSw0Niw4XSwyMykpPj1CJiYoQi1KWzJdfDMpPEIpdHJ5e1JbSlsxXV0oSlswXSxKWzBdLHopLnJlbW92ZUl0ZW0oSyl9Y2F0Y2goYil7fXJldHVybihCKzYmSlsyXSk8SlsyXSYmQjw8SlswXT49MjcmJih0aGlzLnZhbHVlPXosdGhpcy52PSEhSyksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKEJ8ODApPT0oKEImNTgpPT0oQi0yJigoQisoKEImKFo9WyJub3ciLCJDIiwyNV0sMjkpKT09QiYmKFc9ZTNbWlswXV0oKSksOSleMjIpPEImJihCLTZeMjkpPj1CJiZ0aGlzW1pbMV1dJiYoej10aGlzW1pbMV1dLEo9ZGsuSigpLmdldCgpLEs9T1s3XSgxNSxudWxsLGwsMSxKLDYpLHoucGxheWJhY2tSYXRlPUssdGhpc1taWzFdXS5sb2FkKCksdGhpc1taWzFdXS5wbGF5KCkpLFpbMl0pfHwKKEs9fkssSj9KPX5KK3o6Sys9eixXPVtKLEtdKSxCKSYmcC5pbmZvKGZ1bmN0aW9uKCl7cmV0dXJuIlhNTEhUVFAgUkVTUCAoIitDKyIpIFsgYXR0ZW1wdCAiK2IreitRK0srditLK24rSitBfSksQikpYTp7aWYoUHMoKEs9eixLKSkpe2lmKCEvXlxzKig/Oi0/WzEtOV1cZCp8MCk/XHMqJC8udGVzdChLKSl0aHJvdyBFcnJvcihTdHJpbmcoSykpO31lbHNlIGlmKCRYKEspJiYhTnVtYmVyLmlzU2FmZUludGVnZXIoSykpdGhyb3cgRXJyb3IoU3RyaW5nKEspKTtpZihBMyl7Vz1CaWdJbnQoeik7YnJlYWsgYX1XPXo9cWMoeik/ej9qdSgpOm1nKCk6UHMoeik/ei50cmltKCl8fCIwIjpTdHJpbmcoeil9cmV0dXJuIFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChCLSgoVz1bMiwwLDFdLChCLTkmMTUpPj0zJiZCPj5XWzBdPDQpJiYoSi5lbmRzV2l0aChudygpKSYmKEo9Si5zdWJzdHJpbmcoV1sxXSxKLmxlbmd0aC16KSksQy5zdGFydHNXaXRoKG53KCkpJiYoQz0KQy5zdWJzdHJpbmcoeikpLFo9SitLK0MpLDkpJjcpPT1XWzBdKXtmb3IoYj1bNCwxLChDPSIiLHA9Syw4KV07cDw9Si5sZW5ndGgvYltXWzFdXS1iW1dbMl1dO3ArKyl7Zm9yKEE9KHY9KHArYltRPUssV1syXV0pKmJbV1sxXV0tYltXWzJdXSxLKTt2Pj1wKmJbV1sxXV07di0tKUErPUpbdl08PFEsUSs9YltXWzBdXTtDKz0oQT4+PkspLnRvU3RyaW5nKHopfVo9Q31yZXR1cm4oKEIrNyYyNyk8QiYmKEItV1syXV4xMyk+PUImJksmJihDPUsuaW5kZXhPZihKKSxXWzFdPD1DJiZLLnNwbGljZShDLHopKSxCKSszPj5XWzBdPEImJihCLTNeMTMpPj1CJiYoWj1HWzEzXSg5LGZ1bmN0aW9uKE4pe3JldHVybiBwPU9iamVjdC5hc3NpZ24oe30sYix7YU46KEE9KFE9Qyk9PXo/dm9pZCAwOlEudikhPXo/QTpudWxsLGx5OihuPSh2PUMpPT16P3ZvaWQgMDp2LkxEKSE9ej9uOm51bGx9KSxOLnYoSi5OeC5zZW5kKHdpLG5ldyBNSyhwKSksSyl9KSksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LApwKXtpZihwPVsyLDE3LCJjIl0sKEJ8NDgpPT1CKWE6e2lmKCFiLmcpe3Y9Z1syN10oNixFcnJvcihpaikpO2JyZWFrIGF9dj0oQT1uZXcgek8oeUgoYi5qKSksbmV3IElwKGZ1bmN0aW9uKFEsbil7KFJbNDNdKDMzLChuPVsxLCJnIiwic3Vic2NyaWJlIl0sbilbMF0seixDLDQsQSxiW25bMV1dKVtuWzJdXShmdW5jdGlvbigpe30pLFJbMjRdKG5bMF0sNCxudWxsLG5bMF0sYltuWzFdXSxBKSlbblsyXV0oe25leHQ6ZnVuY3Rpb24oWixXLE4seCxmLEwscixWLFAscSxjLEUpe2lmKChMPVsxRTYsMCwyNV0sRT1bODAsMSwxNV0sWiBpbnN0YW5jZW9mIFBTKSYmWi5kUSl7cj12b2lkIDA7dHJ5e2Y9WVgoWi5kUSkscT1SWzQ4XSg3NCxmLFN0LEVbMV0pLE49TnVtYmVyKHlbMTddKDEwLG51bGwsRVsxXSxxKSksVj15WzMzXShFWzJdLEoscSkseD0obmV3IERhdGUoTipLK1YvTFswXSkpLmdldFRpbWUoKSxXPURhdGUubm93KCkteCxQPWdbMzJdKDg2LExbRVsxXV0sbVszNV0oNjIsTFtFWzFdXSwKeVs5XSgyMSxFWzFdLDI2KSx4KSxXKSwoMCx0JC5BcykoUCkscj1ZWzM0XSg0LEosZil9Y2F0Y2goUyl7cj0obmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpKS5kZWNvZGUoWi5kUSl9UShyKX1aIGluc3RhbmNlb2YgTGYmJihjPWdbMzJdKEVbMF0sTFtFWzFdXSxtWzM1XSgyLExbRVsxXV0seVs5XSgxNyxFWzFdLExbMl0pLGIuRCksWWooKS1iLkQpLCgwLHQkLkFzKShjKSl9LGVycm9yOmZ1bmN0aW9uKCl7fSxjb21wbGV0ZTpmdW5jdGlvbigpe319KX0pKX1yZXR1cm4oKEJ8MSkmKChCLTl8MzcpPCgoKChCfDQpJjcpPT00JiYoSz1bJzxhIGNsYXNzPSInLCciIHRhcmdldD0iX2JsYW5rIiBocmVmPSInLCIiXSxKPXoua0YsQz1LWzBdK1JbMTFdKDcxLHouQzEpK0tbMV0rUlsxMV0oMzksZVsxMV0ocFsxXSxLW3BbMF1dLEopKSsnIiB0aXRsZT0iJyxDKz1lWzM0XSg5MiwiQWx0ZXJuYXRpdmVseSwgZG93bmxvYWQgYXVkaW8gYXMgTVAzIiksdj1URChDKyciPjwvYT4nKSksQnxwWzBdKT4+CjQ8cFswXSYmKEI8PHBbMF0mMjcpPj1wWzFdJiZULmNhbGwodGhpcyx6KSxCKSYmKEItcFswXV45KT49QiYmJE0uY2FsbCh0aGlzLHBbMl0pLDEzKSkhPTF8fEsuUnx8KEsuUj16LGVbNV0oMTkseixLLm1hLEspKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoQjw8KEE9WyJpIiw2LDVdLDEpJjExKSlmb3IodHlwZW9mIEouUj09PSJmdW5jdGlvbiImJihLPUouUihLKSksSi5jb29yZHM9QXJyYXkoSi5NLmxlbmd0aCksQz16O0M8Si5NLmxlbmd0aDtDKyspSi5jb29yZHNbQ109KEoubFtDXS1KLk1bQ10pKksrSi5NW0NdO3JldHVybihCLSgoQnw4KT09QiYmKHRoaXMubD12b2lkIDAsdGhpc1tBWzBdXT1uZXcgY3MsUzMuY2FsbCh0aGlzLHosSykpLCEoKEItQVsxXXwyMyk8QiYmKEItMnw4KT49Qil8fEomJmImJmIud2lkdGg9PUsmJmIuaGVpZ2h0PT1LfHwoWVsxNl0oMjMseiw1MDAsMSwidG9wIixDLEosYiksUlsxNl0oMjEsQy5JKSxKPyhlWzQ0XSgxMCwuOSxudWxsLApDKSxDLlIuZm9jdXMoKSxDLlg9PUpmJiYoQy5JPUhbQVsyXV0oMjQsRFsxMV0oOCksbUssZnVuY3Rpb24oKXtyZXR1cm4gQy5HKCl9LHtwYXNzaXZlOiEwfSkpKTpDLkEuZm9jdXMoKSxDLlU9RGF0ZS5ub3coKSksQVsyXSkmMTQpPT0yJiYodj1saitPWzIzXSg1OCxLLnllKCkseikpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKCgoQT1bIjxkaXYgaWQ9J3JjLXFyJz48ZGl2IGNsYXNzPVwiIiwzNSwyNV0sQikmODkpPT1CJiYoSz9SWzhdKDE3LEoseik6UlsyN10oMTYseixKKSksKEJ8Myk+PjMpfHwoQz16Lkp1LGI9WyJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJDYW52YXMiLCJDbGljayB0byB2ZXJpZnkiLCciIGlkPVwncmMtbW9iaWxlLXZlcmlmaWNhdGlvbi1idXR0b25cJyB0YXJnZXQ9Il9ibGFuayIgcm9sZT0iYnV0dG9uIj4nXSxLPUhbNDVdKDc2LEV4KCksQyxpbSgpLHVtKCkpLEo9T1s0MF0oNzksYVooKSxBWzBdK1JbMTFdKDksInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRck91dGVyQ29udGFpbmVyIikrCiciPjxkaXYgY2xhc3M9IicrUlsxMV0oOSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQ29udGFpbmVyIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQmFja2dyb3VuZCIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRckluc3RydWN0aW9uc0NvbnRhaW5lciIpKyciPjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRclNob3J0SW5zdHJ1Y3Rpb25zQ29udGFpbmVyIikrJyI+PGgxIGNsYXNzPSInK1JbMTFdKDczLCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJTaG9ydEluc3RydWN0aW9ucyIpKyciPicpLEs/Z1tBWzJdXSgzLEosIk1vYmlsZSBWZXJpZmljYXRpb24iKTpnW0FbMl1dKEFbMV0sSiwiU2NhbiB0byBWZXJpZnkgWW91J3JlIEh1bWFuIiksT1s0MF0oNzgsSiwnPC9oMT48L2Rpdj48ZGl2IGNsYXNzPSInKwpSWzExXSg5LCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJBZGRpdGlvbmFsSW5zdHJ1Y3Rpb25zQ29udGFpbmVyIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJDYW1lcmFJY29uIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3LCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJNb2JpbGVJY29uIikrJyI+PC9kaXY+PGgyIGNsYXNzPSInK1JbMTFdKDczLCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJBZGRpdGlvbmFsSW5zdHJ1Y3Rpb25zIikrJyI+JyksSz9nW0FbMl1dKDM2LEosIkNsaWNrIGJlbG93IHRvIHZlcmlmeSB5b3UgYXJlIGh1bWFuLiByZUNBUFRDSEEgcHJvdGVjdHMgeW91ciBwcml2YWN5IGFuZCBkb2VzIG5vdCBzaGFyZSB5b3VyIGRldGFpbHMgd2l0aCB0aGlzIHdlYnNpdGUgb3IgYXBwLiIpOmdbQVsyXV0oQVsxXSxKLCJTY2FuIHRoaXMgUVIgY29kZSB3aXRoIHlvdXIgbW9iaWxlIGRldmljZSB0byB2ZXJpZnkgeW91IGFyZSBodW1hbi4gcmVDQVBUQ0hBIHByb3RlY3RzIHlvdXIgcHJpdmFjeSBhbmQgZG9lcyBub3Qgc2hhcmUgeW91ciBkZXRhaWxzIHdpdGggdGhpcyB3ZWJzaXRlIG9yIGFwcC4iKSwKT1s0MF0oNzgsSiwnPC9oMj48L2Rpdj48L2Rpdj48Y2FudmFzIGNsYXNzPSInK1JbMTFdKDcxLGJbMF0pKyciIHRhYmluZGV4PSItMSIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSInKSxnW0FbMl1dKDM2LEosZVszNF0oODksIlFSIGNvZGUiKSksT1s0MF0oNzgsSiwnIj48cCBjbGFzcz0iJytSWzExXSgzOSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyRmFsbGJhY2tUZXh0IikrJyI+PC9wPjwvY2FudmFzPjxhIGNsYXNzPSInK1JbMTFdKDcsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRckJ1dHRvbiIpK2JbMl0pLGdbQVsyXV0oNTEsSixiWzFdKSxPWzQwXSg5NyxnW0FbMl1dKDUxLE9bNDBdKDk5LEosWGYoKSksRFszMF0oMTAsIiAiKSksczEoKSksdj1KKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVybihCLTF8KChCPDwoVj1bMzUsMCw0NF0sMSkmNyk+PTMmJihCXjIxKT4+NTwxJiYoYj1bMixudWxsLDFdLApBPW5ldyBWRCxMPUhbVlsyXV0oNjgsQSx1aixLLGEyKSxKIGluc3RhbmNlb2YgRjU/KG49bmV3IGhvLEMhPWJbMV0mJihRPU9bMjhdKDQsYlsxXSx6LEMpLEhbVlsyXV0oMjEsbixyWix6LFEpKSxyPUouTT9tWzMxXSgxNixiW1ZbMV1dLCI6ICIpOmdbVlswXV0oMiwhMCx6KSxXPUhbVlsyXV0oMjIsbixkSixiW1ZbMV1dLHIpLHg9SFszOV0oMjMsMzEsYlsyXSxKKSxIW1ZbMl1dKDg1LFcsZXUsMyx4KSxlWzEzXSgxOCxiWzFdLGhvLGJbVlsxXV0sZDYsTCxuKSk6KE49bmV3IGtYLEMhPWJbMV0mJih2PU9bMjhdKDUsYlsxXSx6LEMpLEhbVlsyXV0oNzAsTixyWix6LHYpKSxmPUoudi5NP21bMzFdKDE3LGJbVlsxXV0sIjogIik6Z1tWWzBdXSgxLCEwLHopLFo9SFtWWzJdXSgyMSxOLGRKLGJbVlsxXV0sZikscD1IWzM5XSgzMSwzMSxiWzJdLEoudiksSFtWWzJdXSg3MCxaLGV1LDMscCksZVsxM10oMTcsYlsxXSxrWCw2LGQ2LEwsTikpLFA9TCksNikpPj1CJiYoQis2XjE5KTxCJiYoQT0KSi5hVCxQPURbMzhdKDgzLG51bGwsQVtBJF18eixDLEEsSyxiKSE9PXZvaWQgMCksUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQnwoKChCLTYmMTYpPCh2PVsxNSw5LDNdLDExKSYmKEJ8NCk+PjQ+PXZbMl0mJlQuY2FsbCh0aGlzLHosMCxxRi5SVCksQisxJnZbMF0pPT0yJiZULmNhbGwodGhpcyx6KSw4MCkpPT1CKWE6e2lmKEo9PShiPShDPXR5cGVvZiBKLGI9PT12b2lkIDA/ITE6YiksSykpe0E9SjticmVhayBhfWlmKEM9PT0iYmlnaW50Iil7QT1TdHJpbmcoRDQoeixKKSk7YnJlYWsgYX1pZighYiYmIWdkKXtBPUo7YnJlYWsgYX1pZihZWzM3XSg2LEosYikpe0E9Qz09PSJzdHJpbmciP1JbNDJdKDEzLDAsSixiKTpifHxEYj9SWzE4XSgxNywwLEosYik6WVs0Nl0oOCwwLEosYik7YnJlYWsgYX19cmV0dXJuKEItKChCPj4yJjEzKT09MSYmKEs9RXJyb3IuY2FsbCh0aGlzLCJbIit5WzMzXSh2WzJdLDEseikrIl0gIitZWzM0XSh2WzJdLHZbMl0seikpLHRoaXMubWVzc2FnZT0KSy5tZXNzYWdlLCJzdGFjayJpbiBLJiYodGhpcy5zdGFjaz1LLnN0YWNrKSx0aGlzLnN0YXR1cz16KSx2WzFdKXwxMCk+PUImJihCLXZbMV1edlsyXSk8QiYmKEE9VEQoJzxkaXY+Rm9yIHNpdGUgb3duZXI6IHYxYmV0YTEgaXMgZGVwcmVjYXRlZC4gPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmNsb3VkLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvbWlncmF0aW9uLXYxIiB0YXJnZXQ9Il9ibGFuayI+VGFrZSBhY3Rpb24uPC9hPjwvZGl2PicpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoKChCfDQpJjE1KT09KCgoQnwoQz1bMixudWxsLCJBIl0sMSkpJjI5KT09MSYmKHRoaXMuWD16LlNDfHxDWzFdLHRoaXMuTT16LlVCfHwhMSksNCkmJih0eXBlb2YgSi5jbGFzc05hbWU9PXo/Si5jbGFzc05hbWU9SzpKLnNldEF0dHJpYnV0ZSYmSi5zZXRBdHRyaWJ1dGUoVTIoKSxLKSksQitDWzBdPDIxJiYoKEJ8NykmMTUpPj0xMSYmKEo9WzAsITEsMTI4XSx0aGlzLmJsb2NrU2l6ZT0KLTEsdGhpcy5ibG9ja1NpemU9SltDWzBdXSx0aGlzLlg9R2xbYncoKV0/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzLk89W10sdGhpcy5NPUpbMF0sdGhpcy5pPUpbMF0sdGhpcy52PVtdLHRoaXMuUj16LHRoaXMubD1ZWzMzXShDWzBdLDEsQ1swXSxLKSx0aGlzW0NbMl1dPUpbMV0sdGhpcy5yZXNldCgpKSxCLTUpJjMpPT0xJiZULmNhbGwodGhpcyx6KSxCKSs5JjI1fHwoSyE9ej9HWzQ4XSg2LEosSyk6Sz12b2lkIDAsYj1LKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhKXtpZigoQl4oQi0xPDwoKCgoKEJeKGE9WzExLDUsMl0sNjYpKSY3KT09MyYmKFM9T1s0MF0oODQseikpLChCLTR8MTQpPEImJihCLTd8NjUpPj1CKSYmVC5jYWxsKHRoaXMseiksKEItOHwxMCk8QiYmKEIrYVsyXV4yOSk+PUIpJiYhdG8mJihtWzM5XSgyOCxmdW5jdGlvbih1KXtyZXR1cm4gd3AuYWRkKHUpfSwKZnVuY3Rpb24odSl7cmV0dXJuIHUuZXEub3JpZ2lufSksdG89bmV3IHdFLGVbMzZdKGFbMV0sdG8sRFthWzBdXShhWzBdKSxFeixmdW5jdGlvbih1LFgsZCx0LGgpe2Zvcih0PShYPWdbMTJdKDcsVXgudmFsdWVzKCkpLFgubmV4dCgpKTshdC5kb25lO3Q9WC5uZXh0KCkpaD10LnZhbHVlLChkPWguZmlsdGVyKHUpKSYmaC54QShkKX0pKSxhKVsyXT49QiYmKEItNnw4Nik8QiYmKHY9dj09PXZvaWQgMD8xNUUzOnYsR1szOV0oNykscD1mdW5jdGlvbih1LFgsZCx0LGgsTSl7cmV0dXJuKFg9KHQ9KE09WzAsImRhdGEiLChkPXUuZXEsInNvdXJjZSIpXSxkW01bMV1dPT1ydCksaD15WzE2XSg4LCJodHRwIixkLm9yaWdpbik9PXlbMTZdKDksImh0dHAiLEMpLCFKKXx8ZFtNWzJdXT09Si5jb250ZW50V2luZG93LHQpJiZoJiZYJiZkLnBvcnRzLmxlbmd0aD5NWzBdP2QucG9ydHNbTVswXV06bnVsbH0sUz1uZXcgUHJvbWlzZShmdW5jdGlvbih1LFgsZCl7KGQ9bVszOV0oMjUsZnVuY3Rpb24odCwKaCl7dSgoVXhbImRlbGV0ZSJdKGQpLGg9bmV3IEdIKHQsYixBLEMpLGVbMzZdKDExLGgsRFsxMV0oMSksRXosZnVuY3Rpb24oTSxVKXsoVT1wKE0pKSYmVSE9dCYmRFsyN10oNyxLLHosVSxoKX0pLGgpKX0scCksTylbMl0oOCxmdW5jdGlvbigpe1goKFV4WyJkZWxldGUiXShkKSxFcnJvcikoInJlQ0FQVENIQSBUaW1lb3V0IikpfSx2KX0pKSxhWzJdKSk+PjM9PTMmJih2PVshMCw4LDBdLHI9RGF0ZS5ub3coKS1KLEw9ZGsuSigpLmdldCgpLEEudi5sKSlpZihQPW5ldyBNYyxWPURbOF0oMTQsTCksTj1ZWzI2XSgyMCxhWzJdLFAsZVs0OF0oNjQsbnVsbCxWKSwiIikscD1ZWzI2XSgyMiwzLE4sYj09bnVsbD9iOk9bYVsyXV0oMTUsYiksdlthWzJdXSksZj1ZWzI2XSg0OCw0LHAsUlthWzBdXSg0LHZbYVsyXV0sciksbWcoKSksQyE9dm9pZCAwJiZ5WzE4XSg3LHZbMF0sQyxLLGYpLFc9QS5LcSx4PW5ldyBCMixuPWYueWUoKSxRPW1bMjNdKDM0LG4seCx2WzFdKSxxPWtbNl0oNTYsYVswXSwKUSxhWzJdKSxxIGluc3RhbmNlb2YgQjIpVy5sb2cocSk7ZWxzZSB0cnl7Wj1uZXcgQjIsRT1xLnllKCksYz1tWzIzXSgzMyxFLFosdlsxXSksVy5sb2coYyl9Y2F0Y2godSl7a1sxXSg3MyxXLHosNCl9cmV0dXJuIFN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oQi01JigocD1bNzIsImxvY2FsZSIsNzBdLEJ8MjQpPT1CJiZULmNhbGwodGhpcyx6KSwxMSkpPT0xJiYoQT1bOSwxLDExXSxIWzQ0XSg2OCxKLnYsUmosQVsxXSxLKSxtWzFdKDMwLEssQVsxXSl8fGdbNDFdKDQsQVsxXSxLKSxKLllBfHwoYj1IWzIwXSgzMSxBWzJdLEopLFlbMzRdKDQseixiKXx8bVsyM10oMTksSltwWzFdXSxiLHopKSxKLk0mJihDPUhbMjBdKDU5LEFbMl0sSiksUls0OF0ocFswXSxDLFZvLEFbMF0pfHxIWzQ0XShwWzJdLEMsVm8sQVswXSxKLk0pKSksdn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCEoQj4+KChCfDI0KT09KChiPVsxNSwxLDE5XSwoQiYyNyk9PUIpJiYoQz1SWzQ4XSg3MywKSyx3Nix6LGwpKSxCKSYmKEM9UlsxOF0oNCwxMDc1LHRoaXMudikpLGJbMV0pJjEzKSl7Zm9yKEs9KEo9W10sMCk7Szx6O0srKylKLnB1c2goa1syMV0oYlsyXSx0aGlzKSk7dGhpcy5CKEopfXJldHVybigoKEI+PmJbMV0mYlswXSk9PTMmJihKPURbOF0oYlswXSxkay5KKCkuZ2V0KCkpLEM9bVsyM10oMzIsSixLLHosbCkpLEIpPDxiWzFdJjEwKT09MiYmKHRoaXMudTU9Six0aGlzLmJjPUssdGhpcy5pWD16KSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtpZigoZj1bImZpcnN0Q2hpbGQiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiWCJdLEIpLTY+PjU8NCYmKEI8PDImNyk+PTMpYTp7aWYoKG49KHY9KFo9eVs0XS5iaW5kKG51bGwsMSksSFsxN10oMjksSykpLFooYnx8QlUsdm9pZCAwKSkpJiZuW2ZbMl1dKXt4PW5bZlsyXV0oKTticmVhayBhfWlmKChwPShRPShOPU9bN10oNCxDLG4pLHYudiksR1syNV0oNzEsc2ksUSkpLG0pWzQ0XSgyLEosCnAsTikscC5jaGlsZE5vZGVzLmxlbmd0aD09eilBPXAucmVtb3ZlQ2hpbGQocFtmWzBdXSk7ZWxzZXtmb3IoVz1RW2ZbMV1dKCk7cFtmWzBdXTspVy5hcHBlbmRDaGlsZChwW2ZbMF1dKTtBPVd9eD1BfWlmKChCfDQpPj40PDQmJihCPDwxJjcpPj0zKXtpZihKPT16KWI9SjtlbHNle2lmKHR5cGVvZiBKPT09InN0cmluZyIpQz1KP25ldyBabChKLGVKKTptWzQyXSg0NSk7ZWxzZXtpZihKLmNvbnN0cnVjdG9yPT09WmwpQT1KO2Vsc2V7aWYoZVomJkohPXomJkogaW5zdGFuY2VvZiBVaW50OEFycmF5KXY9Si5sZW5ndGg/bmV3IFpsKG5ldyBVaW50OEFycmF5KEopLGVKKTptWzQyXSg0Mik7ZWxzZXtpZighSyl0aHJvdyBFcnJvcigpO3Y9dm9pZCAwfUE9dn1DPUF9Yj1DfXg9Yn1yZXR1cm4geH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKChCJih4PVsyMywiWCIsIlJEIl0sNDMpKT09QiYmKG49WzEsbnVsbCwwXSxDLnY9PW5bMl0pKWlmKENbeFsxXV0pe2lmKCh2PQpDW3hbMV1dLHYpLk0pe2ZvcihiPShwPW5bMV0sdi5NKSxaPW5bMV0sQT1uWzJdO2ImJihiLkF8fChBKyssYi52PT1DJiYoWj1iKSwhKFomJkE+SykpKTtiPWIubmV4dClafHwocD1iKTtpZihaKWlmKHYudj09blsyXSYmQT09SylHWzQzXSgxMSwzLG5bMF0sSix2KTtlbHNle2lmKHApUT1wLFEubmV4dD09di5pJiYodi5pPVEpLFEubmV4dD1RLm5leHQubmV4dDtlbHNlIEhbNDJdKDEyLG5bMV0sdik7ZVsxN10oMjQsMyxuWzFdLFoseixKLHYpfX1DW3hbMV1dPW5bMV19ZWxzZSBnWzhdKDEwLHosQyx6LEopO3JldHVybigoKEIrM14xMCk+PSgoQj4+MiYxNSk9PTQmJihLLnYuUj1LW3hbMV1dLEsuUiYmKEsudi5EPXopLEsudi5jb25uZWN0KEsuaSxLLk18fHZvaWQgMCkpLChCfDg4KT09QiYmKEM9WzUsMywyXSx2PW5ldyBZVixBPUhbMF0oNDgsdixDWzBdLEssbCksbj1lWzMzXSg2LHosQSwoUT0oYj1wZXJmb3JtYW5jZSk9PW51bGw/dm9pZCAwOmIudGltZU9yaWdpbikhPW51bGw/UToKRGF0ZS5ub3coKSkscD1tW3hbMF1dKDI0LCJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiLG4sNCxsKSxaPW1beFswXV0oMjgseVs0NV0oNikscCxDWzFdLGwpLFc9bVt4WzBdXSgyNSxuYXZpZ2F0b3IudXNlckFnZW50LFosMTIsbCksSiYmbVt4WzBdXSgzMCxKLFcsQ1syXSxsKSwoMCx0JFt4WzJdXSkoeiksTj1XKSxCKSYmKEItOHw1NCk8QiYmKE49R1sxN10oMSw0LCExLDAseixLLEopLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIGtbMTBdKDY1LEssSil9KSksQik+PjEmNyk9PTQmJihiPUssQz0oSj1PWzM4XSg0Myx6KSk/Si5jcmVhdGVIVE1MKGIpOmIsTj1uZXcgSWIoQykpLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChwPVsiYXZhaWxIZWlnaHQiLCJvdXRlcldpZHRoIiwzXSxCLXBbMl1eMjcpPEImJihCKzZeMjMpPj1CKXtmb3Iodj0oYj1tWzQ4XSg3MiwwLEMseiksQT1LLCIiKTtBPEoubGVuZ3RoO0ErKyl2Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKEouY2hhckNvZGVBdChBKV4KYigpKTtRPXZ9cmV0dXJuKEJeNTQpPj0tKChCfDQwKT09QiYmKFE9R1sxN10oMjAsbnVsbCxPWzQyXS5iaW5kKG51bGwsNykpKSw2MSkmJigoQnxwWzJdKSY4KTwyJiYoSTJ8fEZmPyhLPXNjcmVlbi5hdmFpbFdpZHRoLEo9c2NyZWVuW3BbMF1dKTpCY3x8czQ/KEs9d2luZG93W3BbMV1dfHxzY3JlZW4uYXZhaWxXaWR0aHx8c2NyZWVuLndpZHRoLEo9d2luZG93Lm91dGVySGVpZ2h0fHxzY3JlZW5bcFswXV18fHNjcmVlbi5oZWlnaHQsem58fChKLT16KSk6KEo9d2luZG93Lm91dGVySGVpZ2h0fHx3aW5kb3cuaW5uZXJIZWlnaHQsSz13aW5kb3dbcFsxXV18fHdpbmRvdy5pbm5lcldpZHRoKSxRPW5ldyBibShLfHwwLEp8fDApKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKChiPVs2LDQ0LCgoQiYyNik9PUImJihDPWtbNDZdKDEzLGZ1bmN0aW9uKEEsdixwLFEsbil7KFE9QS5zdWJzY3JpYmUobmV3IGZnKHYsKHA9KFE9eixLKSx2b2lkIDApLGZ1bmN0aW9uKFosVyl7KG49SFsxM10oMzEsCm51bGwsSihaLChXPVshMCwxOCw0NV0sR1tXWzJdXShXWzFdLG51bGwsITEsSikoQSkpKSksUSk/KFEudW5zdWJzY3JpYmUoKSxRPXosbi5zdWJzY3JpYmUodikpOnA9V1swXX0pKSxwKSYmKFEudW5zdWJzY3JpYmUoKSxRPXosbi5zdWJzY3JpYmUodikpfSkpLDUpXSxCLTFeMTYpPj1CJiZCLTk8PDI8QiYmKHBRLmNhbGwodGhpcyksdGhpcy5PPW5ldyBmdCh0aGlzKSx0aGlzLkFMPW51bGwsdGhpcy56Sj10aGlzKSxCKS1iWzJdPDwxPj1CJiYoQi0yfDczKTxCKXtpZigodGhpcy5PPSgocFEuY2FsbCh0aGlzKSx0aGlzKS5YPUt8fDEwLHp8fDApLHRoaXMuTyk+dGhpcy5YKXRocm93IEVycm9yKEtHKTsodGhpcy5kZWxheT0odGhpcy5NPW5ldyBKVCx0aGlzLnY9bmV3IFNldCwwKSx0aGlzKS5SPW51bGwsdGhpcy5WYSgpfXJldHVybihCKzleMTgpPj1CJiYoQis4JmJbMV0pPEImJihDPXouTT96Lk09PUs6ei52P3oudi5oYXMoSyk6ITEpLEIrYlswXT4+MTxCJiYoQitiWzJdXjMwKT49QiYmCihDPU9bNDVdKDE5KT9aOC5wbGF0Zm9ybT09PSJXaW5kb3dzIjpEWzIwXSgxNSwiV2luZG93cyIpKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEImKCgoQl4zMCkmNyk9PSgoKGI9WzMsImdldE93blByb3BlcnR5TmFtZXMiLDVdLChCK2JbMl0mNyk+PWJbMF0pJiZCKzg8MjEmJihDPXouT2JqZWN0W2JbMV1dKSxCfGJbMl0pPDMwJiZCLTQ+PTExJiYodGhpcy52PUtbR2wuU3ltYm9sLml0ZXJhdG9yXSgpLHRoaXMuTT16KSxiKVswXSYmVC5jYWxsKHRoaXMseiksNTMpKT09QiYmKEo9eixLJiYoSj1SeCh6LEspKSxKPUNHKEopLEo9dDUoSiksYmx8fChibD1HWzI1XShiWzBdLG51bGwsMCkpLGJsKEopKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe2lmKChCJihWPVsxMSwzOSw0MF0sMTA1KSk9PUIpe0w9KGY9WyciPjxkaXYgY2xhc3M9IicsIlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5iaWN5Y2xlczwvc3Ryb25nPiIsCihDPXoubGFiZWwsIi9tLzAzc3k3diIpXSxhWigpKTtzd2l0Y2goSFs0NF0oOCxDKT9DLnRvU3RyaW5nKCk6Qyl7Y2FzZSAic3RvcF9zaWduIjpPW1ZbMl1dKDc5LEwsJzxkaXYgY2xhc3M9IicrUltWWzBdXSg3MywicmMtaW1hZ2VzZWxlY3QtY2FuZGlkYXRlcyIpK2ZbMF0rUltWWzBdXShWWzFdLCJyYy1jYW5vbmljYWwtc3RvcC1zaWduIikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSW1ZbMF1dKDksInJjLWltYWdlc2VsZWN0LWRlc2MiKSsnIj4nKTticmVhaztjYXNlICJ2ZWhpY2xlIjpjYXNlICIvbS8wN3l2OSI6Y2FzZSAiL20vMGs0aiI6T1tWWzJdXSg5OCxMLCc8ZGl2IGNsYXNzPSInK1JbVlswXV0oNywicmMtaW1hZ2VzZWxlY3QtY2FuZGlkYXRlcyIpK2ZbMF0rUltWWzBdXShWWzFdLCJyYy1jYW5vbmljYWwtY2FyIikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSW1ZbMF1dKDcxLCJyYy1pbWFnZXNlbGVjdC1kZXNjIikrJyI+Jyk7YnJlYWs7Y2FzZSAicm9hZCI6T1tWWzJdXSg3OCwKTCwnPGRpdiBjbGFzcz0iJytSW1ZbMF1dKDczLCJyYy1pbWFnZXNlbGVjdC1jYW5kaWRhdGVzIikrZlswXStSW1ZbMF1dKDcxLCJyYy1jYW5vbmljYWwtcm9hZCIpKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUltWWzBdXSg3LCJyYy1pbWFnZXNlbGVjdC1kZXNjIikrJyI+Jyk7YnJlYWs7Y2FzZSAiL20vMDE1a3IiOk9bVlsyXV0oOTksTCwnPGRpdiBjbGFzcz0iJytSW1ZbMF1dKDcsInJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZXMiKStmWzBdK1JbVlswXV0oNzMsInJjLWNhbm9uaWNhbC1icmlkZ2UiKSsnIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbVlswXV0oVlsxXSwicmMtaW1hZ2VzZWxlY3QtZGVzYyIpKyciPicpO2JyZWFrO2RlZmF1bHQ6T1tWWzJdXSg3OSxMLCc8ZGl2IGNsYXNzPSInK1JbVlswXV0oVlsxXSwicmMtaW1hZ2VzZWxlY3QtZGVzYy1uby1jYW5vbmljYWwiKSsnIj4nKX1wPXouVVksdj1hWigpO3N3aXRjaChIWzQ0XSgyLHApP3AudG9TdHJpbmcoKToKcCl7Y2FzZSAidGlsZXNlbGVjdCI6Y2FzZSAibXVsdGljYXB0Y2hhIjp4PShRPSIiLHoubGFiZWwpLFc9ei5NSSxLPXouVVk7c3dpdGNoKEhbNDRdKDIseCk/eC50b1N0cmluZygpOngpe2Nhc2UgIlRpbGVTZWxlY3Rpb25TdHJlZXRTaWduIjpjYXNlICIvbS8wMW1xZHQiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnN0cmVldCBzaWduczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiVGlsZVNlbGVjdGlvbkJpelZpZXciOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPmJ1c2luZXNzIG5hbWVzPC9zdHJvbmc+IjticmVhaztjYXNlICJzdG9wX3NpZ24iOmNhc2UgIi9tLzAycHYxOSI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+c3RvcCBzaWduczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAic2lkZXdhbGsiOmNhc2UgImZvb3RwYXRoIjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggYSA8c3Ryb25nPnNpZGV3YWxrPC9zdHJvbmc+IjticmVhazsKY2FzZSAidmVoaWNsZSI6Y2FzZSAiL20vMDd5djkiOmNhc2UgIi9tLzBrNGoiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnZlaGljbGVzPC9zdHJvbmc+IjticmVhaztjYXNlICJyb2FkIjpjYXNlICIvbS8wNmdmaiI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+cm9hZHM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgImhvdXNlIjpjYXNlICIvbS8wM2ptNSI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+aG91c2VzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTVrciI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+YnJpZGdlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMGNkbDEiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnBhbG0gdHJlZXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxNHhjcyI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+Y3Jvc3N3YWxrczwvc3Ryb25nPiI7CmJyZWFrO2Nhc2UgIi9tLzAxNXFmZiI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+dHJhZmZpYyBsaWdodHM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxcG5zMCI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+ZmlyZSBoeWRyYW50czwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMDFianYiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPmJ1c2VzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wcGc1MiI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+dGF4aXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzA0X3N2IjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz5tb3RvcmN5Y2xlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMDE5OWciOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPmJpY3ljbGVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTVxYnAiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnBhcmtpbmcgbWV0ZXJzPC9zdHJvbmc+IjsKYnJlYWs7Y2FzZSAiL20vMDFseW5oIjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz5zdGFpcnM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxamtfNCI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+Y2hpbW5leXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxM3hsbSI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+dHJhY3RvcnM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzA3ajdyIjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz50cmVlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMGM5cGg1IjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz5mbG93ZXJzPC9zdHJvbmc+IjticmVhaztjYXNlICJVU0VSX0RFRklORURfU1RST05HTEFCRUwiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgdGhhdCBtYXRjaCB0aGUgbGFiZWw6IDxzdHJvbmc+IitEW1ZbMV1dKDUsVykrIjwvc3Ryb25nPiI7CmJyZWFrO2RlZmF1bHQ6USs9IlNlbGVjdCBhbGwgaW1hZ2VzIGJlbG93IHRoYXQgbWF0Y2ggdGhlIG9uZSBvbiB0aGUgcmlnaHQifShOPShlWzIxXSg3NyxBVCgpLEspJiYoUSs9JzxzcGFuIGNsYXNzPSInK1JbVlswXV0oNywicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtaW5zdHJ1Y3Rpb25zIikrJyI+JyxRKz0iSWYgdGhlcmUgYXJlIG5vbmUsIGNsaWNrIHNraXAuPC9zcGFuPiIpLFREKFEpKSxnKVsyNV0oMzYsdixOKTticmVhaztkZWZhdWx0OnI9KGI9ei5NSSxuPShaPSIiLHopLmxhYmVsLHouVVkpO3N3aXRjaChIWzQ0XSg4LG4pP24udG9TdHJpbmcoKTpuKXtjYXNlICIxMDAwRV9zaWduX3R5cGVfVVNfc3RvcCI6Y2FzZSAiL20vMDJwdjE5IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnN0b3Agc2lnbnM8L3N0cm9uZz4uIjticmVhaztjYXNlICJzaWducyI6Y2FzZSAiL20vMDFtcWR0IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnN0cmVldCBzaWduczwvc3Ryb25nPi4iOwpicmVhaztjYXNlICJJbWFnZVNlbGVjdFN0b3JlRnJvbnQiOmNhc2UgInN0b3JlZnJvbnQiOmNhc2UgIkltYWdlU2VsZWN0Qml6RnJvbnQiOmNhc2UgIkltYWdlU2VsZWN0U3RvcmVGcm9udF9pbmNvbnNpc3RlbnQiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIGEgPHN0cm9uZz5zdG9yZSBmcm9udDwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzA1czJzIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnBsYW50czwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzBjOXBoNSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5mbG93ZXJzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDdqN3IiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dHJlZXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wY2RsMSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5wYWxtIHRyZWVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wOWRfciI6Wis9CiJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+bW91bnRhaW5zIG9yIGhpbGxzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDNrdG0xIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgb2YgPHN0cm9uZz5ib2RpZXMgb2Ygd2F0ZXI8L3N0cm9uZz4gc3VjaCBhcyBsYWtlcyBvciBvY2VhbnMuIjticmVhaztjYXNlICIvbS8wNmNucCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5yaXZlcnM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wYjN5ciI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5iZWFjaGVzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDFicXZwIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgb2YgPHN0cm9uZz50aGUgc2t5PC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDd5djkiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dmVoaWNsZXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzBrNGoiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+Y2Fyczwvc3Ryb25nPiI7CmJyZWFrO2Nhc2UgIi9tLzAxOTlnIjpaKz1mWzFdO2JyZWFrO2Nhc2UgIi9tLzA0X3N2IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPm1vdG9yY3ljbGVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTlqZCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5ib2F0czwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMHBnNTIiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dGF4aXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMnl2aGoiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIGEgPHN0cm9uZz5zY2hvb2wgYnVzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDFianYiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIGEgPHN0cm9uZz5idXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wN2pkciI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz50cmFpbnM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMTNfMWMiOlorPQoiU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnN0YXR1ZXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8waDhsaGtnIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmZvdW50YWluczwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzAxNWtyIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmJyaWRnZXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMV9tNyI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5waWxsYXJzIG9yIGNvbHVtbnM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wM2ptNSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5hIGhvdXNlPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDFuYmx0IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmFuIGFwYXJ0bWVudCBidWlsZGluZzwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzAxcG5zMCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5hIGZpcmUgaHlkcmFudDwvc3Ryb25nPi4iOwpicmVhaztjYXNlICIvbS8wMWtuamIiOmNhc2UgImJpbGxib2FyZCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5hIGJpbGxib2FyZDwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzA2Z2ZqIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnJvYWRzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDE0eGNzIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmNyb3Nzd2Fsa3M8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMTVxZmYiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dHJhZmZpYyBsaWdodHM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMWp3XzEiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+YnVzIHN0b3BzPC9zdHJvbmc+IjticmVhaztjYXNlIGZbMl06Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz50cmFmZmljIGNvbmVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTVxYnAiOlorPQoiU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnBhcmtpbmcgbWV0ZXJzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMWx5bmgiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+c3RhaXJzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMWprXzQiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+Y2hpbW5leXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxM3hsbSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz50cmFjdG9yczwvc3Ryb25nPiI7YnJlYWs7ZGVmYXVsdDpKPSJTZWxlY3QgYWxsIGltYWdlcyB0aGF0IG1hdGNoIHRoZSBsYWJlbDogPHN0cm9uZz4iK0RbVlsxXV0oMixiKSsiPC9zdHJvbmc+LiIsWis9Sn0oQT0oZVsyMV0oNzcsdmMoKSxyKSYmKForPSI8c3Bhbj5DbGljayB2ZXJpZnkgb25jZSB0aGVyZSBhcmUgbm9uZSBsZWZ0Ljwvc3Bhbj4iKSxURChaKSksZylbMjVdKDMsdixBKX1QPShPW1ZbMl1dKDc5LGdbMjVdKDUyLApMLHYpLElmKCkpLEwpfWlmKChCKzcmNDMpPEImJihCKzJeNik+PUImJkMpZm9yKFE9Qy5zcGxpdCh6TCgpKSxBPUo7QTxRLmxlbmd0aDtBKyspdj1RW0FdLmluZGV4T2YoWFooKSksbj16LHY+PUo/KHA9UVtBXS5zdWJzdHJpbmcoSix2KSxuPVFbQV0uc3Vic3RyaW5nKHYrSykpOnA9UVtBXSxiKHAsbj9kZWNvZGVVUklDb21wb25lbnQobi5yZXBsYWNlKC9cKy9nLG85KCkpKToiIik7cmV0dXJuIFB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEJ8KChCKyhMPVsxLDQsMTNdLDgpPj5MWzFdPj1MWzBdJiZCLTk8MTcmJihLLnJlYWR5U3RhdGU9eixLLmk9bnVsbCxLLlg9bnVsbCxLLlc9bnVsbCxEWzE4XSgzNCxLKSksQi1MWzBdKSY3fHwodGhpcy52PXopLDcyKSk9PUIpZm9yKHo9dGhpcy5pO3oudi5sZW5ndGg+MDspaWYoSz10aGlzLllTKCkpei5yZW1vdmUoKS5hcHBseSh0aGlzLFtLXSk7ZWxzZSBicmVhaztpZighKEIrMz4+KChCfDU2KT09CkImJihmPUdbTFsyXV0oMTYsZnVuY3Rpb24ocixWLFApe1Y9WzIsNSw3XSxQPVs4LDQsIk0iXTtzd2l0Y2gocltQWzJdXSl7Y2FzZSBKOnY9R1syM10oMTMsRFtQWzBdXSg3OSxIW1BbMV1dKDk1LFZbMF0sYikpLFRuKCkpLE49R1syM10oNSxEW1BbMF1dKDcyLEhbUFsxXV0oOTAsMyxiKSksamYoKSksVz1HWzIzXSgxNCxEW1BbMF1dKDkwLEhbUFsxXV0oOTUsSixiKSkscEcoKSkseD1BcnJheSh2KSxRPXosQT10eXBlb2YgY3J5cHRvIT09InVuZGVmaW5lZCImJnR5cGVvZiBjcnlwdG8uc3VidGxlIT09InVuZGVmaW5lZCI7Y2FzZSBWWzBdOmlmKChRKyssUSk+PTVFNil0aHJvdyBFcnJvcigiIik7aWYoIShRPnomJlElNTAwPT09MCkpe3IuR18oVlsxXSk7YnJlYWt9cmV0dXJuIHIudihuZXcgUHJvbWlzZShmdW5jdGlvbihxKXtzZXRUaW1lb3V0KHEseil9KSxWWzFdKTtjYXNlIFZbMV06aWYobj0oWj1Rdi5lbmNvZGUoVytLK1EpLHZvaWQgMCksIUEpe249eVs0MV0oMyxDLDMsWiksci5HXyhWWzJdKTsKYnJlYWt9cmV0dXJuIHIuQShQWzBdKSxyLnYoeVszNV0oMixKLHosVlswXSwhMSxaKSwxMCk7Y2FzZSAxMDpyLkYoVltuPXIuWCwyXSk7YnJlYWs7Y2FzZSBQWzBdOnIuaSgpLEE9ITEsbj15WzQxXShQWzFdLEMsMyxaKTtjYXNlIFZbMl06aWYoKCh4W3A9biV2LHBdfHwoeFtwXT1bXSkseClbcF0ucHVzaChRKSx4KVtwXS5sZW5ndGg+PU4pcmV0dXJuIHIucmV0dXJuKHhbcF0pO3IuR18oVlswXSl9fSkpLExbMV0pKSl7aWYoIShLIGluc3RhbmNlb2YgeikpdGhyb3cgRXJyb3IoIkV4cGVjdGVkIGluc3RhbmNlb2YgIitIWzQxXShMWzFdLHopKyIgYnV0IGdvdCAiKyhLJiZIWzQxXShMWzBdLEsuY29uc3RydWN0b3IpKSk7Zj1LfXJldHVybiBmfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCLSgoQjw8KEE9WyJsb2NhdGlvbiIsInNlbGYiLCJwcm90b2NvbCJdLDEpJjE2KTwyJiYoQj4+MiY1KT49NCYmKHY9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woKT09PQoic3ltYm9sIj8oSj09PXZvaWQgMD8wOkopJiZTeW1ib2xbImZvciJdJiZLP1N5bWJvbFsiZm9yIl0oSyk6SyE9bnVsbD9TeW1ib2woSyk6U3ltYm9sKCk6eiksQisxPj4zPT0xJiYoSi5NPyhiPUouTSxDPUsucGhhc2U9PT0xfHxiLk0mJiEoSy5rZXkgaW4gYi52KT9LLmRlZmF1bHRWYWx1ZTpLLmN0b3IoYi52W0sua2V5XSkpOkM9eix2PUMpLDEpfDEpPj1CJiYoQi02fDI5KTxCJiYoQz1SWzI4XSg0LDEsSilbMV18fHosIUMmJkdsW0FbMV1dJiZHbFtBWzFdXVtBWzBdXSYmKEM9R2xbQVsxXV1bQVswXV1bQVsyXV0uc2xpY2UoSywtMSkpLHY9Qz9DLnRvTG93ZXJDYXNlKCk6IiIpLHZ9XX0oKSxIPWZ1bmN0aW9uKCl7cmV0dXJuW2Z1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKEItODw8KEItKHY9WzEsNzgsMTVdLDcpPHZbMl0mJihCK3ZbMF0mMTIpPj0yJiYoSj1bNCw1MiwxNl0sQT16PT0wPzA6OSpoWSh2WzBdPDwzMi1uRyh6K3ovMi12WzBdKSxKWzBdKTw9Sz96PT0wPzA6Cno8SlswXT8xMDArKHotdlswXSkqSlsyXTp6PDY/MTQ4Kyh6LUpbMF0pKkpbMl06ejwxMj8yNDQrKHotNikqSlsyXTp6PDIyPzQzNisoei0xMikqMTk6ejw0ND84MjArKHotMjIpKjE3OkpbdlswXV0rMzIqejo0MCtKWzBdKkspLHZbMF0pPj1CJiYoQi02fDQ1KTxCJiYoQT15WzM4XSgyLEMsSj09bnVsbD9KOk9bMl0oMTQsSikseixLKSksKEJ8MjQpPT1CJiYoSy52PyhiPVJbMTddKDU3LHosbCxrWzNdKDExKSw4LGtbMzRdLmJpbmQobnVsbCw1KSx2b2lkIDAsSy52KSxDPVlbOF0oMjIsYixKKSk6Qz0hMSxBPUMpLChCKzMmdlsxXSk8QikmJihCLTleMzIpPj1CJiZULmNhbGwodGhpcyx6KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKChiPVs5LDAsMl0sQiszJmJbMF0pPj0xJiYoQl43OSk8MTImJihDPW5ldyBabShKPT09dm9pZCAwPyIiOkosSyksQT17aXNTdWNjZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIEMudj09en0sZ2V0VmVyZGljdFRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEMuTX0sCmdldFN0YXR1c0NvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gV2MuaGFzKEMudik/V2MuZ2V0KEMudik6Z0EoKX19KSxCKSY0MSk9PUIpe2lmKE1VPj16KXRocm93IG5ldyBTeW50YXhFcnJvcjtNVSsrfXJldHVybigoQj4+MSY3KT09MSYmKEM9WyJyZWNhcHRjaGEtY2hlY2tib3giLG51bGwsMV0sSj1tWzE3XSgxLE5RLENbYlsxXV0pLFpLLmNhbGwodGhpcyxDWzFdLEosSyksdGhpcy52PUNbYlsyXV0sdGhpcy5SPUNbMV0sdGhpcy50YWJJbmRleD16JiZpc0Zpbml0ZSh6KSYmeiVDW2JbMl1dPT1iWzFdJiZ6PmJbMV0/ejowKSxCKTw8YlsyXT49MTcmJigoQl41NCkmMTYpPGJbMl0mJlQuY2FsbCh0aGlzLHosYlsxXSxUJC5SVCksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKChCPDwyJigoQi04JigoQj4+MiYoYj1bNjQsMTUsM10sNyl8fChBPW1bMl0oNjUsMCxLLHosSixnWzJdLmJpbmQobnVsbCwxOCkpKSwoQl43Myk+PjQpfHxULmNhbGwodGhpcyx6KSxiWzFdKSk9PWJbMl0mJgooQT0oSj16LmdldChLKSk/Si50b1N0cmluZygpOm51bGwpLGJbMV0pKT09NCYmKEs9Uls4XSg1Nix0aGlzKSxDPU9bNDhdKDMyLHRoaXMpLEo9T1s0OF0oYlswXSx0aGlzKSx6PXlbMTFdKDMzLEMsSiksdGhpcy54SltLXT16KSxCPDwxKSY3fHwoJE0uY2FsbCh0aGlzLCJmIiksdGhpcy5lcnJvcj16KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQiY2Mik9PShRPVsiSiIsInlmIiwiYXBwZW5kQ2hpbGQiXSxCKSlhOntpZihoWCYmTzQpe3A9KChLPSgoKEo9bGYoeFkoKSksSi5zdHlsZSkuYmFja2dyb3VuZENvbG9yPURtLGRvY3VtZW50KS5ib2R5W1FbMl1dKEopLE8pWzExXSg1OCxKLCJiYWNrZ3JvdW5kQ29sb3IiKSxkb2N1bWVudC5ib2R5KS5yZW1vdmVDaGlsZChKKSxLIT09RG0pO2JyZWFrIGF9cD16fXJldHVybihCLTQmNSk+PTEmJihCXjI0KT4+NDwxJiYodGhpc1tRWzFdXT1LLHY9WyIiLCJHRVQiLG51bGxdLHRoaXMuaE09ITEsdGhpcy5NPUp8fHZbMV0sCnRoaXMuWD1DfHx2WzJdLHRoaXMuSTc9bmV3IHk2KHopLHRoaXMuTzA9dlsyXSx0aGlzLnRzPXZbMF0sdGhpcy52PW5ldyB1WSxBPWJ8fERbOF0oMTYsZGtbUVswXV0oKS5nZXQoKSksbVs0N10oMjAsdGhpcy5JNyxhRSxBKSxrWzQ4XSgyLHRoaXMsZE8sIkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIpKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEJ8KChCKzMmNyk9PSgoKChCLSh2PVsiY2FsbCIsMSwidiJdLHYpWzFdPj40PT00JiYoZkc9SyxpMD16LEVSPUosb1U9WVszOV0uYmluZChudWxsLDI0KSksQi00KV42KTxCJiZCKzg+PnZbMV0+PUImJih0ZVt2WzBdXSh0aGlzLHopLHRoaXMuSD12WzFdLHRoaXNbdlsyXV09W1tdXSksQnw1Nik9PUImJihPWzE0XSg0OCx6LEspLHA9SyksMykmJihDPWVbMzldKDM5LEspLEMhPW51bGwmJihSWzQwXSh2WzFdLDE2LEMpLFlbNV0oMTYsMzIsImJpZ2ludCIsSixDLHopKSksODgpKT09QilhOmlmKGljKEspLEE9UlsxNF0oNzEsCm51bGwsSix6LEsuYVQsYiksQSE9PW51bGx8fEMmJkxHIT09MSYmSy5NIT09Y0wpe3A9QTticmVhayBhfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQl4oKHA9WzQ3LDIsInYiXSxCXjg5KTwxOCYmKEIrNSY5KT49NCYmJE0uY2FsbCh0aGlzLCJkIikscClbMV0pPj0tNTAmJihCKzgmMTIpPDMpYTp7aWYoKEE9WyEwLCExLDBdLEMpJiZDLm9uY2Upe1E9T1syMl0oMzAsQVswXSx6LEssSixDLGIpO2JyZWFrIGF9aWYoQXJyYXkuaXNBcnJheShLKSl7Zm9yKHY9QVtwWzFdXTt2PEsubGVuZ3RoO3YrKylIWzVdKDI3LHosS1t2XSxKLEMsYik7UT1udWxsO2JyZWFrIGF9UT0oSj1rWzE4XShwWzBdLEopLGdbMF0ocFsxXSx6KT96Lk8uYWRkKFN0cmluZyhLKSxKLEFbMV0sSFs0NF0oMSxDKT8hIUMuY2FwdHVyZTohIUMsYik6a1swXSgxLEFbMV0seixDLEFbMV0sYixKLEspKX1yZXR1cm4oQisoKEIrMSZwWzBdKT49QiYmQisxPj4xPEImJihRPXBLKSwzKSY2MCk+PQpCJiYoQitwWzFdJjMxKTxCJiYoSy5YKz1KLEtbcFsyXV0rPXosSj5LLk0mJihLLk09SikpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtyZXR1cm4oQjw8KEI+PigoQl43MSk+PigoKCgoeD1bNCwicmMtaW1hZ2VzZWxlY3QtdGFibG9vcC1lbmQiLDFdLEIpLXhbMF1eMjYpPj1CJiYoQit4WzJdJjc4KTxCJiYodGhpcy52PSIiLHRoaXMuWD1udWxsLHRoaXMuTT0hMSksQiktM3w4Mik+PUImJkItODw8eFsyXTxCJiYoTj1HWzEzXSgyNSxmdW5jdGlvbihmLEwscil7TD1bNCwhMSwocj1bMCwxLCJGIl0sMjQpXTtzd2l0Y2goZi5NKXtjYXNlIEo6aWYoKChBPXt9LEFbaHFdPXosQVtkT109IkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsQVthRV09RFs4XSgxMixkay5KKCkuZ2V0KCkpLEEpW1JVXT1iLnYubywoVz1HW3JbMV1dKDMzLExbMl0sZGsuSigpLmdldCgpKSk9PUspfHwhVyl7Zi5HXyhDKTticmVha31pZighRFsxMV0oMykuaXNTZWN1cmVDb250ZXh0fHwKIURbMTFdKDIpLm5hdmlnYXRvci5tZWRpYURldmljZXMpe0FbckFdPUxbclsxXV0sZi5HXyhDKTticmVha31yZXR1cm4gZi5BKExbclt2PWZ1bmN0aW9uKCl7cmV0dXJuIERbMTFdKDEpLm5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpfSwwXV0pLGYudigoMCx0JC55NSkodiwyMiksNik7Y2FzZSA2OihBW1E9Zi5YLHJBXT1RLnNvbWUoZnVuY3Rpb24oVil7cmV0dXJuIFYua2luZD09PSJ2aWRlb2lucHV0In0pLGYpW3JbMl1dKEMpO2JyZWFrO2Nhc2UgTFtyWzBdXTpmLmkoKSxBW3JBXT1MW3JbMV1dO2Nhc2UgQzpyZXR1cm4gcD1uZXcgdVkseVsyNV0oMTgscCxBKSxuPXtxdWVyeTpwLnRvU3RyaW5nKCksdGl0bGU6InJlY2FwdGNoYSBjaGFsbGVuZ2UgZXhwaXJlcyBpbiB0d28gbWludXRlcyJ9LChaPUdbclsxXV0oclsxXSxMWzJdLGRrLkooKS5nZXQoKSkpIT1LJiZaJiYobi5hbGxvdz0iY2FtZXJhIiksZi5yZXR1cm4obmV3IFZ2KGIuTS5NQSgpLG4pKX19KSksCjMpfHwodGhpcy5yZXNwb25zZT16LHRoaXMudGltZW91dD1LLHRoaXMuZXJyb3I9Sj09PXZvaWQgMD9udWxsOkosdGhpcy5pPXY9PT12b2lkIDA/bnVsbDp2LHRoaXMudHk9bnVsbCx0aGlzLnY9Yj09PXZvaWQgMD9udWxsOmIsdGhpcy5NPXA9PT12b2lkIDA/bnVsbDpwLHRoaXMuWD1BPT09dm9pZCAwP251bGw6QSx0aGlzLlF0PUM9PT12b2lkIDA/bnVsbDpDKSwyKSYyM3x8VC5jYWxsKHRoaXMseikseFsyXSkmMTUpPT0yJiYoej1bJzxkaXYgaWQ9InJjLWltYWdlc2VsZWN0IiBhcmlhLW1vZGFsPSJ0cnVlIiByb2xlPSJkaWFsb2ciPjxkaXYgY2xhc3M9IicsInJjLWltYWdlc2VsZWN0LXJlc3BvbnNlLWZpZWxkIiwnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjxkaXYgY2xhc3M9IiddLE49T1s0MF0oNzksZ1syNV0oeFswXSxPWzQwXSg5OSxhWigpLHpbMF0rUlsxMV0oOSx6W3hbMl1dKSsnIj48L2Rpdj48c3BhbiBjbGFzcz0iJytSWzExXSg5LCJyYy1pbWFnZXNlbGVjdC10YWJsb29wLWJlZ2luIikrCnpbMl0rUlsxMV0oNzEsInJjLWltYWdlc2VsZWN0LXBheWxvYWQiKSsnIj48L2Rpdj4nKSxEWzMwXSg4LCIgIikpLCc8c3BhbiBjbGFzcz0iJytSWzExXSg3LHhbMV0pKyciIHRhYkluZGV4PSIwIj48L3NwYW4+PC9kaXY+JykpLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyKXtpZigoKEw9WyJqb2luIiwzOSwwXSxCKXwzKT4+ND49TFsyXSYmQi04PDUpYTp7aWYoKEFycmF5LmlzQXJyYXkoQSk/MjoxKT09KHA9KFc9W10sWzYzLDI3LDFFM10pLGY9W10sUT1bXSwxKSl7cjQoUSwoVz1bdixiXSxmdW5jdGlvbihWKXtXLnB1c2goVil9KSkscj1lW0xbMV1dKDI1LHBbTFsyXV0scFsxXSxXW0xbMF1dKG85KCkpKTticmVhayBhfSh4PShuPShXPShOPShyNChBLChaPVtdLGZ1bmN0aW9uKFYpe1oucHVzaChWW0pdKSxmLnB1c2goVltDXSl9KSksYk4pKChuZXcgRGF0ZSkuZ2V0VGltZSgpL3BbMl0pLGYubGVuZ3RoPT16P1tOLHYsYl06W2ZbTFswXV0odmgoKSksCk4sdixiXSkscjQoUSxmdW5jdGlvbihWKXtXLnB1c2goVil9KSxlW0xbMV1dKDI3LHBbTFsyXV0scFsxXSxXW0xbMF1dKG85KCkpKSksW04sbl0pLFopLmxlbmd0aD09enx8eC5wdXNoKFpbTFswXV0oSykpLHI9eFtMWzBdXShtZCgpKX1yZXR1cm4oQi0yJigoQjw8MiYxNSk+PTImJihCPDwyJjE0KTwxMCYmVC5jYWxsKHRoaXMseiksNykpPT0yJiYodGhpcy5hVD1EWzM2XSgyNSwxLCJzcHZ0IixKLEsseiwyMDQ4KSkscn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZighKEIrKEw9WzMsInNpZ24iLCJQbCJdLDYpPj40KSlhOntpZihRPVswXSxBW0xbMV1dKXRocm93IG5ldyBSYW5nZUVycm9yKCJFeHBvbmVudCBtdXN0IGJlIHBvc2l0aXZlIik7aWYoQS5sZW5ndGg9PT0wKXtmPWdbMzldKDQsUVswXSx6KTticmVhayBhfWlmKGIubGVuZ3RoPT09MCl7Zj1iO2JyZWFrIGF9aWYoYi5sZW5ndGg9PT0xJiZiLkgxKFFbMF0pPT09MSl7YltMWzFdXSYmKEEuSDEoUVswXSkmCnopPT09MD9iLmxlbmd0aD09PTA/eD1iOihOPWIuTEUoKSxOW0xbMV1dPSFiW0xbMV1dLHg9Tik6eD1iLGY9eDticmVhayBhfWlmKEEubGVuZ3RoPnopdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJpZ0ludCB0b28gYmlnIik7aWYoKFc9QVtMWzJdXShRWzBdKSxXKT09PTEpe2Y9YjticmVhayBhfWlmKFc+PUduKXRocm93IG5ldyBSYW5nZUVycm9yKCJCaWdJbnQgdG9vIGJpZyIpO2lmKGIubGVuZ3RoPT09MSYmYi5IMShRWzBdKT09PTIpeyhaPW5ldyBoRigocD16KyhXL0N8UVswXSkscCksYltMWzFdXSYmKFcmeikhPT0wKSxaLmlrKCksWikucXgocC16LHo8PFclQyksZj1aO2JyZWFrIGF9KFcmeikhPT0odj1iLG49SiwwKSYmKG49Yik7Zm9yKFc+Pj16O1chPT0wO1c+Pj16KXY9SFsyMl0oTFswXSxLLFFbMF0sdix2KSwoVyZ6KSE9PTAmJihuPW49PT1udWxsP3Y6SFsyMl0oMixLLFFbMF0sdixuKSk7Zj1ufXJldHVybihCK0xbQjw8MSY2fHwoSz1LPSgoel5SQ3xMWzBdKT4+NSkrUkMsZj0KYzJbKEslNjIrNjIpJTYyXSksMF1eMjUpPEImJkItNTw8Mj49QiYmKGY9bmV3IFByb21pc2UoZnVuY3Rpb24ocixWLFApeyhQPW5ldyBIYyh7bmV4dDpmdW5jdGlvbihxKXtyKHEpLFAudW5zdWJzY3JpYmUoKX0sZXJyb3I6Vixjb21wbGV0ZTpmdW5jdGlvbigpe1YobmV3IHU2KX19KSx6KS5zdWJzY3JpYmUoUCl9KSksZn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCgoKEItKEM9WyJEIiwyNSw5XSxDWzJdKXw0Myk8QiYmKEItNl5DWzJdKT49QiYmKFJbMjFdKDUseixLKSxEWzIzXSgzOSxLW0NbMF1dKSxLW0NbMF1dPXosR1tDWzFdXSgxMCxLLkZnKSxLLnYmJihKPUsudixLLnY9eixKLmFib3J0KCksSi5kaXNwb3NlKCkpKSwoQiYyOCk9PUImJihiPXtpeTpuZXcgeTYoImh0dHBzOi8vY2hhdC5nb29nbGUuY29tL3B1bmN0dWFsLyIreiksZkQ6bmV3IHk2KCJodHRwczovL2NoYXQuZ29vZ2xlLmNvbS9wdW5jdHVhbC8iK3opLFFYOiExfSksQis0KSY3KT09MSlrWzZdKDU3LHosSixLKTsKcmV0dXJuIGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEIrKFE9WyJjYWxsIiwxLDhdLFFbMl0pPj40PFFbMV0mJkI+PlFbMV0+PS04MylUW1FbMF1dKHRoaXMseik7aWYoKEJ8UVsyXSk9PUIpYTp7Zm9yKHY9KEE9KEsgaW5zdGFuY2VvZiBTdHJpbmcmJihLPVN0cmluZyhLKSkseiksSy5sZW5ndGgpO0E8djtBKyspaWYoYj1LW0FdLEpbUVswXV0oQyxiLEEsSykpe3A9e3lOOkEsSEE6Yn07YnJlYWsgYX1wPXt5TjotMSxIQTp2b2lkIDB9fXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKCgoKGI9WzQsOTUsNDhdLEIpK2JbMF0+PmJbMF18fChBPW5ldyB6aChmdW5jdGlvbih2LHApe3JldHVybiBwPU9bMl0oMzksZnVuY3Rpb24oKXsodi5uZXh0KHt9KSx2KS5jb21wbGV0ZSgpfSx6KSxmdW5jdGlvbigpe2tbMTZdKDYxLHApfX0pKSwoQiY0Nik9PUIpJiYoSj1PWzMzXSgxNSx0aGlzKSx6PU9bYlsyXV0oNjQsdGhpcyksSz1PW2JbMl1dKDMxLAp0aGlzKSx6PEsmJmdbMTRdKGJbMV0sSix0aGlzLnYpKSxCKS0zPj4zPT0xJiYodGhpcy50b3A9eix0aGlzLnJpZ2h0PUssdGhpcy5ib3R0b209Six0aGlzLmxlZnQ9QyksQil8NTYpPT1CJiYoej1nNSxBPW5ldyB6LmNvbnN0cnVjdG9yKHopKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEItKChCKygoKEI+PjImKHA9WyJNIiwzLDZdLDcpKT09MiYmKHY9NDArNCp6KSxCKzg+PjQpfHwodj1mdW5jdGlvbihRLG4sWixXLE4seCxmLEwpe0w9WzEyLDE3LDM2XTthOntOPShmPXt1RDohMH0sbiYmT2JqZWN0LmFzc2lnbihmLG4pLGcpW0xbMF1dKDU0LFEsdm9pZCAwLHZvaWQgMCxmKTt0cnl7Vz0oKFo9KHg9bmV3IEsseCkuYVQseSlbTFsyXV0oTFswXSwibnVtYmVyIixKKShaLE4pLHgpO2JyZWFrIGF9Y2F0Y2gocil7aWYociBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IHI7fWZpbmFsbHl7RFsyOF0oTFsxXSx6LE4pfVc9dm9pZCAwfXJldHVybiBXfSksCnApWzJdXjI0KTxCJiYoQi1wWzFdfDczKT49QiYmKEE9ei5hVCx2PWtbMjJdKDg4LDAsYixLLEEsQVtBJF18MCxDLCExLEoseiwhMCkpLDcpfDczKT49QiYmKEItNXwyNyk8QilhOntpZih6W3BbMF1dIT09Mil7dj0hMTticmVhayBhfXY9ISgoQz1EWzQxXSgxNywwLHopLEgpWzI3XShwWzFdLEssSixDPT09bVs0Ml0oNDYpP3ZvaWQgMDpDKSwwKX1yZXR1cm4gdn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKGI9WyJjYWxsIiwwLDMzXSwhKEIrMSY2KSlhOntpZihLIGluc3RhbmNlb2YoSj1bIiciLG51bGwsMF0semgpKXtDPUs7YnJlYWsgYX1pZihLIT16KXtpZihlWzI0XSg3OSxLW1AyXSkpe0M9T1syXSg4MCxLKTticmVhayBhfWlmKEsmJnR5cGVvZiBLLmxlbmd0aD09PSJudW1iZXIiJiZ0eXBlb2YgSyE9PSJmdW5jdGlvbiIpe0M9RFtiWzJdXSgxOCxKWzJdLEspO2JyZWFrIGF9aWYoZVsyNF0oODMsSz09ej92b2lkIDA6Sy50aGVuKSl7Qz1lWzM5XSgxNixKWzFdLEspO2JyZWFrIGF9aWYoU3ltYm9sLmFzeW5jSXRlcmF0b3ImJgplWzI0XSg4MixLPT16P3ZvaWQgMDpLW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSkpe0M9T1sxNl0oMjQsSyk7YnJlYWsgYX1pZihlWzI0XSg4MixLPT16P3ZvaWQgMDpLW09NXSkpe0M9R1s2XSg2LEpbMV0sSyk7YnJlYWsgYX19dGhyb3cgbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKEshPT1udWxsJiZ0eXBlb2YgSz09PSJvYmplY3QiP2VmKCk6SltiWzFdXStLK0pbYlsxXV0pKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpO31yZXR1cm4oQjw8MiYzKT49YlsxXSYmKEI8PDEmOCk8NCYmKHgxW2JbMF1dKHRoaXMpLHRoaXMuaT16KSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoISgoKFo9WzExLDQ2LG51bGxdLEIpfDkpPj40fHx6IGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIisKeisiIGlzIG5vdCBhbiBvYmplY3QiKTtpZigoKEJeMTYpPj40fHwoej1bInJjLWRvc2NhcHRjaGEtYm9keS10ZXh0IiwiVHJ5IGFnYWluIGxhdGVyIiwnIj48ZGl2IGNsYXNzPSInXSxLPU9bNDBdKDk4LGFaKCksJzxkaXY+PGRpdiBjbGFzcz0iJytSW1pbMF1dKDM5LCJyYy1kb3NjYXB0Y2hhLWhlYWRlciIpK3pbMl0rUltaWzBdXSg3MSwicmMtZG9zY2FwdGNoYS1oZWFkZXItdGV4dCIpKyciPicpLGdbMjVdKDY4LEsselsxXSksT1s0MF0oOTgsSywnPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSW1pbMF1dKDczLCJyYy1kb3NjYXB0Y2hhLWJvZHkiKSt6WzJdK1JbWlswXV0oMzkselswXSkrJyIgdGFiSW5kZXg9IjAiPicpLGdbMjVdKDM1LEssJ1lvdXIgY29tcHV0ZXIgb3IgbmV0d29yayBtYXkgYmUgc2VuZGluZyBhdXRvbWF0ZWQgcXVlcmllcy4gVG8gcHJvdGVjdCBvdXIgdXNlcnMsIHdlIGNhblwndCBwcm9jZXNzIHlvdXIgcmVxdWVzdCByaWdodCBub3cuIEZvciBtb3JlIGRldGFpbHMgdmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vd2Vic2VhcmNoL2Fuc3dlci84NjY0MCIgdGFyZ2V0PSJfYmxhbmsiPm91ciBoZWxwIHBhZ2U8L2E+LicpLApPWzQwXSg3OCxnWzI1XSgzNSxPWzQwXSg5NyxLLCc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbWlswXV0oNywicmMtZG9zY2FwdGNoYS1mb290ZXIiKSsnIj4nKSxEWzMwXSgxMywiICIpKSxJZigpKSxuPUspLChCKzImMTMpPj00KSYmKEItOSYxNik8NCl7Zm9yKGI9KHA9KChRPShBPVsiLmdldFJlc3BvbnNlIiwiLmdldFBhZ2VJZCIsIi5lYXAuaW5pdFR3b0ZhY3RvclZlcmlmaWNhdGlvbkhhbmRsZSJdLEdsLndpbmRvd1tpM10pW1BjKCldJiZHbC53aW5kb3dbaTNdW1BjKCldLmluZGV4T2YoeikhPT0tMSxHbC53aW5kb3cpW2kzXVtQYygpXT1bXSxnWzEyXSgxLEMpKSxwLm5leHQoKSk7IWIuZG9uZTtiPXAubmV4dCgpKXY9Yi52YWx1ZSxnW1pbMV1dKDY0LGVbNV0uYmluZChaWzJdLDYpLHYrIi5yZW5kZXIiKSxnW1pbMV1dKDgwLGdbMV0uYmluZChaWzJdLDU3KSx2K0spLGdbWlsxXV0oMSxEWzM3XS5iaW5kKFpbMl0sNyksditBWzBdKSxnW1pbMV1dKDEseVs4XS5iaW5kKFpbMl0sCjE2KSx2KyIuZXhlY3V0ZSIpLHY9PWg1JiZRJiYoZ1taWzFdXSg2NSxEWzQyXS5iaW5kKFpbMl0sMSksdisiLmNoYWxsZW5nZUFjY291bnQiKSxnW1pbMV1dKDY0LFJbNDVdLmJpbmQoWlsyXSwxKSx2K0FbMl0pKTtnW1pbMV1dKDgxLGZ1bmN0aW9uKCl7cmV0dXJuIEdsLndpbmRvd1tpM11bSl19LGRwK0FbMV0pfWlmKChCfDQwKT09QilhOntpZih6PT1aWzJdKXtuPXo7YnJlYWsgYX1pZih0eXBlb2Ygej09PSJzdHJpbmciJiZ6KXo9K3o7ZWxzZSBpZih0eXBlb2YgeiE9PSJudW1iZXIiKXtuPXZvaWQgMDticmVhayBhfW49QlQ9PT0yP0ZFKHopP3o+Pj4wOnZvaWQgMDp6fXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoKChDPVsxLDQ0LDldLChCLTd8NjQpPj1CJiZCLUNbMl08PENbMF08QikmJihLPW5ldyAkWSx6PVlbMzJdKDc5LDQwOTYsSyxxNyxDWzBdLCRzKSxKPW1bMjNdKDI0LCI0NyIseiwyKS55ZSgpKSxCKS03fDc2KTxCJiYoQi1DWzBdXjEzKT49QiYmKHRoaXMudj0KbmV3IHFRKSwoKEJeQ1sxXSkmMTApPT0yJiZULmNhbGwodGhpcyx6KSxCKTw8Q1swXSYxNXx8KEo9TFIuSigpLlguZ2V0KHopKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoQz1bMTcsbnVsbCwzMl0sQnwyNCk9PUImJih0aGlzLnY9eiksKEImNjIpPT1CKSYmKEsudSgpLmRpc2FibGVkPSF6LEo9Sy51KCksR1szNV0oQ1swXSxKLCF6LCJsYWJlbC1pbnB1dC1sYWJlbC1kaXNhYmxlZCIpKSxCPj4yJjYpfHwoYj1PWzQ1XSg1MCxDWzJdLERbMjRdLmJpbmQoQ1sxXSwxOSkseikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtyZXR1cm4oQi0oKEIrKChuPVsic2xpY2UiLDI5LDQ0XSxCLTk8NCYmQis0Pj40Pj0wKSYmKEM9WzU3NzEsMSw1RTRdLHY9bmV3IGlsLEE9SFs4XShuWzJdLDQ0MjQpKDIzLDQ1LDQwLDI0LDMpLFE9WVsxOV0oMTcsOSxFUi5nZXQoKSksSFszMF0oMTQsZnVuY3Rpb24oVyxOLHgsZixMLHIsVixQLHEsYyxFLFMpe2ZvcihTPVswLApudWxsLDU1XSxFPTE0O0UhPTUwOylpZihFPT00MilQPUhbMjFdKDEzLFEscltTWzBdXSksYz1xKCkuc3Vic3RyKFNbMF0seUNbMV0pK3EoKS5zdWJzdHIocSgpLmxlbmd0aC15Q1tTWzBdXSksTD1tWzQyXSgxNSkuY2FsbChwYXJzZUZsb2F0KFArYykrUCwzMCksbVsyM10oMjMsTCx2LDUpLFY9KChmPVcucGFyZW50RWxlbWVudCk9PVNbMV0/MDooeD1mLmxhc3RDaGlsZCk9PVNbMV0/MDp4LnNyYyk/Vy5wYXJlbnRFbGVtZW50Lmxhc3RDaGlsZC5jbGFzc05hbWU6IiIsbVsyM10oMjYsVix2LDcpLEU9MTc7ZWxzZSBpZihFPT0zMilxPUhbOF0oNDQsNTQ4MykoSFs4XSgzNiw3MykoVykucmVwbGFjZSgvXHMvZyxyWzFdKSksRT1TWzJdO2Vsc2V7aWYoRT09MTcpcmV0dXJuITA7aWYoRT09MjgpRT1RJiZIWzIxXSgxNSxRLHJbU1swXV0pPzQyOjE3O2Vsc2UgaWYoRT09U1syXSlFPXEoKSYmcSgpLmxlbmd0aD5yWzJdPzM4OjExO2Vsc2V7aWYoRT09MTEpcmV0dXJuITE7RT09MTY/RT1IWzhdKDM2LAozNjcyKShXLm5hbWUrVy5pZCsoVy5nZXRBdHRyaWJ1dGUoQVtyWzJdXSgpKXx8clsxXSksQVtTWzBdXSgpLHl2KCkpPzMyOjExOkU9PTE0PyhyPVsyLCIiLDRdLEU9MTYpOkU9PTM4JiYoTj1xKCkubGVuZ3RoLGtbMTRdKDUsITAsRFs4XS5iaW5kKFNbMV0sNzMpLE4scltTWzBdXSx2LGdbMl0uYmluZChTWzFdLDE2KSksRT0yOCl9fX0seVszXSgxNikpLGI9SFs4XSgzNiw1NjQpKEooR1sxNV0oNDcpLDQxKVtuWzBdXSgwLENbMl0pKSxwPUhbOF0oMTIsNjkwMykoSFs4XShuWzJdLDU3NjgpKGIoKSxBWzNdKCkseXYoKSkucmVwbGFjZSgvXEQvZywiIilbblswXV0oLTQpKSxwKCkmJlEmJkhbMjFdKDEzLFEsMikmJm1bMV0oNjksNix2LE9bMzVdKDIsMCwzNSxIWzIxXSg1NSxRLDIpLHApKSxaPW1bMjddKDE5LDQsZ1szXSgxNiwzLEhbOF0oblsyXSwzOTcyKShiKCksQVsyXSgpK0FbQ1sxXV0oKSx5digpLDEwKSx2KSxIWzhdKDQwLENbMF0pKGIoKSxBW0NbMV1dKCkpKS55ZSgpKSw1KSYKblsxXSk8QiYmKEItOHw4KT49QiYmKFo9Sz9uZXcgV0QoZ1szMV0oMzIseixLKSk6WVl8fChZWT1uZXcgV0QpKSw1KTw8Mj49QiYmKEIrNV4yMyk8QiYmKFo9KGI9eVszOF0oNjksbnVsbCxKLEMpKT8obmV3IFByb21pc2UoZnVuY3Rpb24oVyxOKXtKLmkoYi5hY3Rpb24pLnRoZW4oZnVuY3Rpb24oeCl7eD9XKHgpOk4oRXJyb3IoIk5vIHRva2VuIikpfSxOKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKHgsZil7Zj0oeD0wLHNldEludGVydmFsKShmdW5jdGlvbigpe0ouQSgpfHwoeCsrLHg+PTImJihOKGNjKSxjbGVhckludGVydmFsKGYpKSl9LDJFMyl9LDExNTAwKX0pKS5jYXRjaChmdW5jdGlvbihXLE4seCxmKXtyZXR1cm4gRFsyM10oNjAsKHg9WzQsMCwoZj1bMSwyNSwxNV0sbnVsbCldLHhbMF0pLE9bZlsyXV0oMTIsMTAsRFsyNl0oNDUsMTEsSFszN10oZlsxXSw2LEdbNDNdKDkyLEssVz09PWNjPzE6MyxXPT14WzJdP3ZvaWQgMDpXLm1lc3NhZ2UpLEoudi5TSyksSi52Lm9yaWdpbiksCihOPWIuYWN0aW9uKT09eFsyXT92b2lkIDA6Ti5zdWJzdHJpbmcoeFtmWzBdXSx6KSkueWUoKSxKLk0pfSk6bnVsbCksQj4+MT49MyYmKEJeNjUpPDE1KSYmKHRoaXMuaT16LHRoaXMuWD1LLHRoaXMudj1udWxsLHRoaXMuTT0wKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEI+PigoQi00XjcpPj0oKEItKCgoYj1bImtXIiwxLCJLIl0sQikmMTA4KT09QiYmKG9nLmNhbGwodGhpcykseiYmbVs0MF0oOSx0aGlzLHosSykpLDcpJjcpPT0yJiYoSj1KPT09dm9pZCAwP0QxOkosQz1uZXcgQkQoeixKLEspKSxCKSYmKEItNF4yMyk8QiYmKEs9WzAsITEsMUUzXSx0aGlzLm96PUtbMF0sdGhpcy5pPVtdLHRoaXMuQT1uZXcgV04sdGhpcy5wcT10aGlzLm5xPXRoaXMuS3E9bnVsbCx0aGlzLlhnPUtbMF0sdGhpcy5pWT10aGlzLnY9dGhpcy5PPXRoaXMuUD10aGlzLmZxPXRoaXMuaj10aGlzLmw9bnVsbCx0aGlzLm51PUtbMF0sdGhpc1tiWzJdXT1udWxsLHRoaXMudnY9R1s5XSgzNiwKU2YoKSxLW2JbMV1dLHopLHRoaXMuQz10aGlzLlI9dGhpcy5XPW51bGwsdGhpcy5nPS0xLHRoaXNbYlswXV09LTEsdGhpcy5tPUtbMF0sdGhpcy5ETT0tMSx0aGlzLkg9bnVsbCx0aGlzLlU9S1swXSx0aGlzLkY9bnVsbCx0aGlzLkFMPSEwLHRoaXMua0o9S1swXSx0aGlzLmRWPUdbOV0oMjgsbUYoKSw1RTMseiksdGhpcy5kZT1HWzldKDEyLGxsKCksMUU0LHopLHRoaXMuTWo9R1s5XSgzMixFNCgpLDIseiksdGhpcy5FMz1HWzldKDQsWDcoKSwyRTQseiksdGhpcy5EPXomJnouZFR8fEtbYlsxXV0sdGhpcy5JPXZvaWQgMCx0aGlzLlFlPXomJnoudkF8fHZvaWQgMCx0aGlzLnlBPXomJnouRHR8fHZvaWQgMCx0aGlzLk15PXomJnouZUN8fEtbYlsxXV0sdGhpcy5TPSIiLHRoaXMuWD1uZXcgdWwoeiYmei5qQyksdGhpcy53Yj1sOSh6JiZ6LlFtfHxLWzJdLEtbMl0pLHRoaXMucGc9bmV3IGFVLHRoaXMuQj16JiZ6LnFifHxLW2JbMV1dLHRoaXMuTD16JiZ6Lm1LfHxLW2JbMV1dLHRoaXMuQiYmCnRoaXMuTCYmKGhUKCksdGhpcy5MPUtbYlsxXV0pLHRoaXMuWEM9eiYmei5IRHx8S1tiWzFdXSx6JiZ6LkkxJiZ0aGlzLkEuSTEoKSx6JiZ6LkhvJiYodGhpcy5BTD1LW2JbMV1dKSx0aGlzLkpMPSF0aGlzLkImJnRoaXMuQUwmJnomJnouZ1R8fEtbYlsxXV0sdGhpcy51WT12b2lkIDAseiYmei5XWSYmei5XWT5LWzBdJiYodGhpcy51WT16LldZKSx0aGlzLkZnPUtbMF0sdGhpcy5HPUtbYlsxXV0sdGhpcy5sWT12b2lkIDAsdGhpcy5vPXRoaXMucmI9bnVsbCksYilbMV0mMTUpPT1iWzFdJiYoSj1KPT09dm9pZCAwPyJyIjpKLEsuenIoKT9LLktxKCk6Sy5SeigpfHwoSy5uZyh6KSxnWzNdKDYxLEssSikpKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKEI+PigoKChBPVsyMiwyLDddLEIpXjUwKSYxNSk9PUFbMV0mJih2PShDPUooSygpLDExLDIwKSk/SihDLGRBKCkpOi0xKSwxKTxBWzJdJiYoQj4+QVsxXSYzKT49MCYmKERbQVswXV0oNzQseixKLEspLEM9Si52LmVuZCgpLApIWzQ1XSgzNCxDLEopLEMucHVzaChKLk0pLHY9QyksKEIrNSYyMSk+PTE3JiYoQi1BWzFdJjEyKTwzKWE6e2ZvcihiPUooeigpLDkpLEM9MDtDPGIubGVuZ3RoO0MrKylpZihiW0NdW21IKCldJiZZWzE4XSgzMykudGVzdChiW0NdW21IKCldKSl7dj1DO2JyZWFrIGF9dj0tMX1yZXR1cm4oQi00JjExKT09MyYmKEsuTT16LEsudiYmKGNsZWFyVGltZW91dChLLnYpLEsudj12b2lkIDApKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKCgoKChCXjYxKSYodj1bNiwzMSwxNDIyXSwyNykpPT0yJiYoQz1SWzQ4XSg3MyxLLnYsUmosMSksQ3x8KEM9bmV3IFJqLEdbNDBdKDEwLDUsQyxLKSksYj1DLEo9Uls0OF0oNzAsYixrWSx6KSxKfHwoSj1uZXcga1ksSFs0NF0oNzAsYixrWSx6LEopKSxwPUopLEIrdlswXT49OCYmQjw8MTwyMikmJihiPXoub1QmJigoQz16Lm9UWzBdKT09bnVsbD92b2lkIDA6Qy50eXBlKSkmJihKPVlbNF0oNjIsYikmNjU1MzUsSz10aGlzLm8uZ2V0KEopfHwKMCx0aGlzLm8uc2V0KEosSysxKSksKEItMyYxNSk9PTQmJkxELmNhbGwodGhpcyx2WzJdLDIxKSxCKSY5Nyk9PUIpe2ZvcihDPShiPVsiYWxsb3ctbW9kYWxzIiwiYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IiwoRDYoSyx7ZnJhbWVib3JkZXI6IjAiLHNjcm9sbGluZzoibm8iLHNhbmRib3g6ImFsbG93LWZvcm1zIGFsbG93LXBvcHVwcyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIGFsbG93LXRvcC1uYXZpZ2F0aW9uIn0pLCJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24iKV0sUkIpKGJZLEspLEMuc3JjPVlbdlsxXV0oMixKKS50b1N0cmluZygpLEE9ejtBPGIubGVuZ3RoO0ErKylDLnNhbmRib3gmJkMuc2FuZGJveC5zdXBwb3J0cyYmQy5zYW5kYm94LmFkZCYmQy5zYW5kYm94LnN1cHBvcnRzKGJbQV0pJiZDLnNhbmRib3guYWRkKGJbQV0pO3A9Q31yZXR1cm4oQi0xXjkpPEImJihCKzgmdlsxXSk+PUImJihwPXlbMjNdKDksIiciLG51bGwsCiciJywwLGZ1bmN0aW9uKCl7cmV0dXJuIHp9LFN0cmluZyhLKSkucmVwbGFjZSh0VCxCYigpKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChwPVsxMCw3NywoKEImMTI2KT09QiYmKEs9e25leHQ6en0sS1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHY9SyksMTIpXSwoQnwyKSY3KT49MiYmKEI8PDEmMTUpPHBbMF0pe2ZvcihiPShBPShoWShDLmxlbmd0aC0oSnx8SyksSyksW10pLEp8fEspO2I8Qy5sZW5ndGg7Yis9eil5WzE3XSgyLCI9IixDW2JdLEEsQ1tiKzFdKTt2PUEuam9pbih6TCgpKX1yZXR1cm4oQis5JjM0KTxCJiYoQis5XnBbMl0pPj1CJiYodj1EWzhdKHBbMV0sSFs0XSg4OSxLLHosSixRQikpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkKXtpZigoQi04fDQpPCgoZD1bMiwwLCJIMSJdLEItZFswXSYxMyk9PTQmJihYPUFycmF5LmZyb20obkssZnVuY3Rpb24odCwKaCxNLFUsdyxzdyxCOCl7cmV0dXJuIE09KFU9bmV3IChzdz1nWzEyXSgoQjg9WzQsNTgsMV0sQjgpWzBdLHQpLGg9c3cubmV4dCgpLnZhbHVlLHc9c3cubmV4dCgpLnZhbHVlLCRMKSxIKVswXSg2OSxVLEI4WzJdLGgpLGtbNl0oQjhbMV0sMixNLHcpfSkpLEIpJiYoQitkWzBdJjQ3KT49QilhOntpZigoUz1bMzI3NjcsMzAsMTA3Mzc0MTgyM10sQykubGVuZ3RoPT09MCl7WD1DO2JyZWFrIGF9aWYoSi5sZW5ndGg9PT0wKXtYPUo7YnJlYWsgYX1mb3IoRT1DLmxlbmd0aCtKLmxlbmd0aCxDLld6KCkrSi5XeigpPj1TWzFdJiZFLS0sTj1uZXcgaEYoRSxDLnNpZ24hPT1KLnNpZ24pLE4uaWsoKSxhPUs7YTxDLmxlbmd0aDthKyspaWYoUT1OLGM9YSxxPUosdT1DW2RbMl1dKGEpLHUhPT0wKXtmb3IoZj0oYj1yPUssdj11Pj4+eixLKSxWPXUmU1tkWzFdXTtmPHEubGVuZ3RoO2YrKyxjKyspWj1RW2RbMl1dKGMpLEw9cVtkWzJdXShmKSxwPUwmU1tkWzFdXSxXPUw+Pj56LG49eGkocCx2KSxQPQp4aShXLFYpLHg9eGkoVyx2KSxaKz1iK3hpKHAsVikrcixiPXgrKG4+Pj56KSsoUD4+PnopLHI9Wj4+PlNbMV0sWiY9U1tkWzBdXSxaKz0oKG4mU1tkWzFdXSk8PHopKygoUCZTW2RbMV1dKTw8eikscis9Wj4+PlNbMV0sUS5xeChjLFomU1tkWzBdXSk7Zm9yKDtyIT09MHx8YiE9PTA7YysrKUE9UVtkWzJdXShjKSxBKz1yK2IsYj1LLHI9QT4+PlNbMV0sUS5xeChjLEEmU1tkWzBdXSl9WD1OLmUwKCl9cmV0dXJuKCgoQi0zXjIxKT49KEIrNCYxMHx8KFg9bVsyMl0oMjcpPyExOkRbMjBdKDMsIlRyaWRlbnQiKXx8RFsyMF0oMSx6KSksQikmJihCKzQmNTMpPEImJihYPUdbMTddKDE3LG51bGwsZnVuY3Rpb24oKXtyZXR1cm4gRFsxMV0oMSkuZnJhbWVzfSkpLEIrNyleMTgpPj1CJiYoQitkWzBdXjEyKTxCJiYoSyBpbnN0YW5jZW9mIFN0cmluZyYmKEsrPSIiKSxBPWRbMV0sYj0hMSxDPXtuZXh0OmZ1bmN0aW9uKHQpe2lmKCFiJiZBPEsubGVuZ3RoKXJldHVybiB0PUErKyx7dmFsdWU6Sih0LApLW3RdKSxkb25lOiExfTtyZXR1cm57ZG9uZTohMCx2YWx1ZTooYj16LHZvaWQgMCl9fX0sQ1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIEN9LFg9QyksWH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQiYodj1bMTA5LDIsIkZnIl0sdilbMF0pPT1CKUdbMTNdKDE2LGZ1bmN0aW9uKHAsUSl7cmV0dXJuKFE9WyJnZXRWYWx1ZSIsImNvb2tpZURlcHJlY2F0aW9uTGFiZWwiLCJ2Il0sSi5vfHwoQz1EWzExXSgzKS5uYXZpZ2F0b3IpPT1LfHwhQ1tRWzFdXSk/cC5yZXR1cm4oKTpwW1FbMl1dKERbMTFdKDMpLm5hdmlnYXRvcltRWzFdXVtRWzBdXSgpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIEoubz1ufSkseil9KTtyZXR1cm4oKEItMV4yNyk8QiYmQi12WzFdPDwxPj1CJiYodGhpcy52YWx1ZT16KSxCPj52WzFdPDEyJiYoQnwxKT4+Mz49MSkmJihiPVsiYW5pbWF0aW9uLXBsYXktc3RhdGUiLCJydW5uaW5nIiwib3BhY2l0eSJdLEMuZ2IoeiksWVszNV0oNDAsCkMuQywiZGlzcGxheSIsSiksWVszNV0oNDAsQy5DLGJbMF0sYlsxXSksWVszNV0oMzIsQy5DLGJbdlsxXV0sSyksWVszNV0oNDAsQ1t2WzJdXSxiWzBdLGJbMV0pKSwoQjw8dlsxXSYxNik8OSYmKEJeMzIpPj0yMSYmKEE9RFsyMF0oMzksSykmJiFEWzIwXSgzOSx6KSYmIURbMjBdKDcsImlQYWQiKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtyZXR1cm4oQj4+MiYoKChCLTEmKChCLShRPVsxMyxudWxsLDE1XSwoQiZRWzBdKT09QiYmKHRoaXMudj1RWzFdLHRoaXMuTT1RWzFdKSw5KSZRWzJdKT09MyYmKEo9PUs/Yj1KOihDPUoudnx8eixiPXR5cGVvZiBDPT09InN0cmluZyI/QzpuZXcgVWludDhBcnJheShDKSkscD1iKSwxMSkpPT0xJiYodGhpcy52PUo9PT12b2lkIDA/bnVsbDpKLHRoaXMuVlg9Sz09PXZvaWQgMD9udWxsOkssdGhpcy5STj1DPT09dm9pZCAwPyExOkMsdGhpcy5NPXo9PT12b2lkIDA/bnVsbDp6KSxCKTw8MSZRWzJdfHwoQT1KLmowLHpbS109ZnVuY3Rpb24oWiwKVyxOLHgpe3JldHVybiBBKFosVywoeD1bOSwzNSxudWxsXSxOKSxifHwoYj1SW3hbMV1dKDc2LCJudW1iZXIiLFp0LEhbMjRdLmJpbmQoeFsyXSwzMiksQyxrWzQ4XS5iaW5kKHhbMl0seFswXSkpLnJlKSx2fHwodj1SWzQ0XSgzLCJudW1iZXIiLEMpKSl9KSw1KSk9PTQmJihuPWZ1bmN0aW9uKCl7fSxuLnByb3RvdHlwZT1LLnByb3RvdHlwZSx6Llk9Sy5wcm90b3R5cGUsei5wcm90b3R5cGU9bmV3IG4sei5wcm90b3R5cGUuY29uc3RydWN0b3I9eix6LmJiPWZ1bmN0aW9uKFosVyxOKXtmb3IodmFyIHg9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxmPTI7Zjxhcmd1bWVudHMubGVuZ3RoO2YrKyl4W2YtMl09YXJndW1lbnRzW2ZdO3JldHVybiBLLnByb3RvdHlwZVtXXS5hcHBseShaLHgpfSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCLTl8MzgpPCgoQisoKEJ8NSk+Pih2PVsxLDI0LDExXSw0KXx8KGI9Sy5hVCxwPUdbMTJdKDMseixiLEMsUls0NV0odlsxXSwKeixiKSx2b2lkIDAsSikpLHYpWzBdXjIzKTxCJiYoQis3JjU5KT49QiYmKEM9T08sQT14TyxiPUE+PnosQT0oQTw8S3xDPj4+eileYixKKEM8PEteYixBKSksQikmJihCLTR8dlsyXSk+PUImJihwPXlbMzJdKHZbMF0sbnVsbCx6LDIsSykpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQpe2lmKEItNDw8MT49KCgoQl4zKSYyKT49KFg9WzYsMTYwLDI0XSwxKSYmQi00PFhbMF0mJihvaS5jYWxsKHRoaXMpLHRoaXMudj0hMSx0aGlzLmRlc3RpbmF0aW9uPXogaW5zdGFuY2VvZiB2ej96Om5ldyBmaighenx8ZVtYWzJdXSg1MCx6KT97bmV4dDp6IT1udWxsP3o6dm9pZCAwfTp6KSxlWzI3XSgxMix6KSYmei5hZGQodGhpcykpLEIpJiYoQi00XlhbMl0pPEIpe2lmKHU9KEE9R1s0XSg1LDAsKFY9WzEsITEsNjNdLEMpLEopLEouTSksVTQpe1E9KFc9KChRPXUsYik/KChaPU1RKXx8KFo9TVE9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIsCntmYXRhbDohMH0pKSxuPVopOigoUz13QSl8fChTPXdBPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiLHtmYXRhbDohMX0pKSxuPVMpLHg9bixBK0MpLEE9PT0wJiZXPT09US5sZW5ndGg/UTpRLnN1YmFycmF5KEEsVykpO3RyeXtmPXguZGVjb2RlKFEpfWNhdGNoKHQpe2lmKHE9Yil7aWYoSVU9PT12b2lkIDApe3RyeXt4LmRlY29kZShuZXcgVWludDhBcnJheShbMTI4XSkpfWNhdGNoKGgpe310cnl7eC5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzk3XSkpLElVPSEwfWNhdGNoKGgpe0lVPVZbMV19fXE9IUlVfXEmJihNUT12b2lkIDApO3Rocm93IHQ7fX1lbHNle2ZvcihQPShjPShOPW51bGwscD1BLFtdKSxwK0MpO3A8UDspe2lmKHI9dVtwKytdLHI8MTI4KWMucHVzaChyKTtlbHNlIGlmKHI8MjI0KWlmKHA+PVApWVs0MV0oNDksYyxiKTtlbHNlIHY9dVtwKytdLHI8MTk0fHwodiYxOTIpIT09MTI4PyhwLS0sWVs0MV0oNTQsYyxiKSk6Yy5wdXNoKChyJkspPDxYWzBdfHYmVlsyXSk7ZWxzZSBpZihyPAoyNDApaWYocD49UC1WWzBdKVlbNDFdKDUzLGMsYik7ZWxzZSB2PXVbcCsrXSwodiYxOTIpIT09MTI4fHxyPT09MjI0JiZ2PFhbMV18fHI9PT0yMzcmJnY+PVhbMV18fCgoRT11W3ArK10pJjE5MikhPT0xMjg/KHAtLSxZWzQxXSg1MixjLGIpKTpjLnB1c2goKHImMTUpPDwxMnwodiZWWzJdKTw8WFswXXxFJlZbMl0pO2Vsc2UgaWYocjw9MjQ0KWlmKHA+PVAtMilZWzQxXSg0OCxjLGIpO2Vsc2Ugdj11W3ArK10sKHYmMTkyKSE9PTEyOHx8KHI8PDI4KSsodi0xNDQpPj4zMCE9PTB8fCgoRT11W3ArK10pJjE5MikhPT0xMjh8fCgoTD11W3ArK10pJjE5MikhPT0xMjg/KHAtLSxZWzQxXSg1MCxjLGIpKTooYT0ociY3KTw8MTh8KHYmVlsyXSk8PDEyfChFJlZbMl0pPDxYWzBdfEwmVlsyXSxhLT02NTUzNixjLnB1c2goKGE+PnomMTAyMykrNTUyOTYsKGEmMTAyMykrNTYzMjApKTtlbHNlIFlbNDFdKDUxLGMsYik7Yy5sZW5ndGg+PTgxOTImJihOPUdbMjldKDQxLG51bGwsYyxOKSxjLmxlbmd0aD0KMCl9Zj1HWzI5XSg0MixudWxsLGMsTil9ZD1mfXJldHVybiBkfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQiY1Nik9PShwPVs5NCwxLDM4XSxCKSl7Sj1KPT09dm9pZCAwPyEwOko7dHJ5e1gyJiZ1TC5zZXQodGhpcyx7dXJsOksudG9TdHJpbmcoKSxZWjpKfSl9Y2F0Y2gobil7fSRrLmNhbGwodGhpcyx6LEssSixDLGIpfWlmKEIrNj4+cFsxXT49QiYmKEItNnw0MSk8QilZWzI1XSg4MCxKLEsseltBJF18MCxIWzM1XSgyOCwxMjgseltBJF18MCkseik7aWYoKEIrOCY2Mik8QiYmKEIrOV4zMSk+PUIpe2Zvcig7SiYmSi5ub2RlVHlwZSE9ejspSj1LP0oubmV4dFNpYmxpbmc6Si5wcmV2aW91c1NpYmxpbmc7UT1KfWlmKChCKzUmMzUpPj1CJiYoQisyJjc4KTxCKWE6e2lmKGIhPW51bGwmJmJbalRdPT09bmgpe1E9YjticmVhayBhfWlmKCFBcnJheS5pc0FycmF5KGIpKXtRPUM/SyYyP0pbU1BdfHwoSltTUF09R1syXShwWzFdLDM0LEopKTpuZXcgSjp2b2lkIDA7YnJlYWsgYX1RPQooKEE9KHY9YltBJF18MCx2fEsmenxLJjIpLEEpIT09diYma1twWzJdXShwWzBdLGIsQSksbmV3IEooYikpfXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKG49WzQwLDEwLDFdLCgoQl5uWzBdKSY3KT09MiYmdGhpcy52JiYodGhpcy5yZXNwb25zZT16LEdbNDhdKDE0LDQsdGhpcykpLChCJjc1KT09QiYmKHY9WzQsMTYsOF0sQz1LLk0sUT1LLnYscD1DW1Erel0sSj1DW1ErMl0sQT1DW1ErM10sYj1DW1ErMF0sZ1sxNF0oMzIsdlswXSxLKSxaPShiPDwwfHA8PHZbMl18Sjw8dltuWzJdXXxBPDwyNCk+Pj4wKSxCK25bMl0mMTEpPT1uWzJdJiZMRC5jYWxsKHRoaXMsMzc1LG5bMV0pLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKCgoKEJeMTApJihBPVsicmVwbGFjZSIsNCwhMF0sMTUpKT49MTEmJihCfDkpPj5BWzFdPEFbMV0mJihKPUdbM10oMTYsMCwyLEFbMl0sMSxLLkMpLEhbMTFdKDEsSikuaHMoRjcoSy5STy5ocyhLeShmdW5jdGlvbihwLApRKXtyZXR1cm4oUT1LLkgsUS51cGRhdGUoKSxRKS52PHo/cD0hMTooUS52LS0scD0hMCkscH0pKSkpLnN1YnNjcmliZShmdW5jdGlvbigpe0suVy50aGVuKGZ1bmN0aW9uKHAsUSl7S1soUT1bMSxudWxsLCJNIl0sUSlbMl1dKG5ldyBCZSksa1syNF0oOCw1LFFbMF0sUVsxXSwwLHAucXUsSykudGhlbihmdW5jdGlvbihuKXsoKEsuTShuZXcgc0YpLEspLlA9bi5sQixPKVsyXSg4LGZ1bmN0aW9uKFopeyhLLm09KFo9WyEwLDMsOF0sWlswXSkseSlbNDVdKFpbMV0sWlsyXSw3LFpbMV0sWlswXSxwLlppLEssbil9LEsubT8wOm4uSnEpfSxmdW5jdGlvbihuLFosVyxOKXtpZihaPWdbVz1bKE49WzM5LDM0LDIxXSwxKSxudWxsLDJdLE5bMV1dKE5bMl0sV1swXSxuZXcgekYsV1syXSksbiBpbnN0YW5jZW9mIEtVKVlbMjZdKDIzLFdbMl0sWixlWzQ4XSg3MixXWzFdLG4ubWVzc2FnZSksIiIpLG4uc3RhdHVzJiZnW05bMV1dKDIwLFdbMF0sWixrW05bMV1dKE5bMF0sNDAzLDUsbi5zdGF0dXMpKSwKbi5zdGF0dXM9PT01MDMmJksuRisrO2Vsc2UgWVsyNl0oTlsyXSxXWzJdLFosZVs0OF0oNzYsV1sxXSxuLnRvU3RyaW5nKCkpLCIiKTtLLk0obmV3IEpTKTt0cnl7Sy5BLm5leHQoWil9Y2F0Y2goeCl7fUhbMjldKDYsV1swXSxLKX0pfSxmdW5jdGlvbihwLFEsbixaKXtRPShuPShaPVsiIiwxNyxudWxsXSxnKVszNF0oWlsxXSwxLG5ldyB6RiwxMyksWSlbMjZdKDI0LDIsbixlWzQ4XSg2NCxaWzJdLHAudG9TdHJpbmcoKSksWlswXSksSy5BLm5leHQoUSl9KX0pKSxCKTw8MSY2KTwzJiZCPDwyPj0tNjAmJiEoQy5ub2RlTmFtZSBpbiBDVSkpaWYoQy5ub2RlVHlwZT09eilKP0sucHVzaChTdHJpbmcoQy5ub2RlVmFsdWUpW0FbMF1dKC8oXHJcbnxccnxcbikvZywiIikpOksucHVzaChDLm5vZGVWYWx1ZSk7ZWxzZSBpZihDLm5vZGVOYW1lIGluIGJEKUsucHVzaChiRFtDLm5vZGVOYW1lXSk7ZWxzZSBmb3IoYj1DLmZpcnN0Q2hpbGQ7YjspSFsyOV0oOSwzLEssSixiKSxiPWIubmV4dFNpYmxpbmc7CnJldHVybihCXjIxKT4+QVsxXXx8VC5jYWxsKHRoaXMseiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQj4+KHY9WyJ2Iiw4LDJdLHYpWzJdJjE1KT09dlsyXSl7Qz0nPGRpdiBjbGFzcz0iJysoYj1bIlRhcCB0aGUgY2VudGVyIG9mIHRoZSA8c3Ryb25nPnN0cmVldCBzaWduczwvc3Ryb25nPiIsIlRhcCB0aGUgY2VudGVyIG9mIHRoZSA8c3Ryb25nPmNhcnM8L3N0cm9uZz4iLCIvbS8wNHc2N18iXSxSWzExXSg3LCJyYy1pbWFnZXNlbGVjdC1kZXNjLW5vLWNhbm9uaWNhbCIpKSt6O3N3aXRjaChIWzQ0XSg3LEopP0oudG9TdHJpbmcoKTpKKXtjYXNlICJUaWxlU2VsZWN0aW9uU3RyZWV0U2lnbiI6Qys9YlswXTticmVhaztjYXNlICIvbS8wazRqIjpDKz1iWzFdO2JyZWFrO2Nhc2UgYlt2WzJdXTpDKz0iVGFwIHRoZSBjZW50ZXIgb2YgdGhlIDxzdHJvbmc+bWFpbCBib3hlczwvc3Ryb25nPiJ9QT1URChDK0spfWlmKEIrKChCfDU2KT09QiYmKEsuZz0xLEsuQz1lWzQ5XSh2WzFdLAp5WzE1XSgzNCxKKSksSy5sPUMsSy5JPSEwLFJbNDFdKDE4LHosMCxLLG51bGwpKSx2KVsyXTwxMSYmKEJ8dlsxXSk+PjM+PTApe2ZvcihiTihLKTtLPjEyNzspSlt2WzBdXS5wdXNoKEsmMTI3fDEyOCksSz4+Pj16O0pbdlswXV0ucHVzaChLKX1yZXR1cm4gQj4+MT49NyYmQis0PDI1JiZBcnJheS5mcm9tKEspLnJldmVyc2UoKS5zb21lKHopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKChCPDwyPj0oYj1bMSwzMCw2XSwyNCkmJihCXjcpPDMxJiZ0aGlzJiZ0aGlzLk9sJiYoej10aGlzLk9sKSYmei50YWdOYW1lPT1nXyYmSFszN10oMjMsbnVsbCwhMCx6LHRoaXMudHUpLEIpXjcxKTwxMSYmKChCfGJbMF0pJjE1KT49YlsyXSYmSjMuY2FsbCh0aGlzLHosSyksQl4zNikmMTF8fChBPWtbMTBdKDI5LGVbNDZdKDEyLEssQy5UKCkpLGVbMjBdKDIseixKKSkudGhlbihmdW5jdGlvbih2KXtyZXR1cm4gZzBbNF0oMTQsZ1sxNF0oNixkeSksdixKKX0pKSxCKS0yPDxiWzBdPj0KQiYmKEItMl5iWzFdKTxCKWcwW2JbMl1dKGJbMl0sZnVuY3Rpb24odixwKXtrWzQ4XSgzMix0aGlzLHAsdil9LEsseik7cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuKCgoKChCXjU1KSYyNik9PSgoQiYyNSk9PShRPVsxLCJQMSIsMl0sQikmJihuPUdbMTNdKDksZnVuY3Rpb24oWixXLE4pe049WzAsKFc9WzksbnVsbCw0XSwiWCIpLCExXTtzd2l0Y2goWi5NKXtjYXNlIDE6dj1XWzFdLEE9SjtjYXNlIDI6aWYoIShBPHopKXtaLkdfKFdbMl0pO2JyZWFrfWlmKCEoQT5KKSl7Wi5HXyhLKTticmVha31yZXR1cm4gWi52KG1bMzFdKDQ4LFdbMV0sMUUzKSxLKTtjYXNlIEs6cmV0dXJuIFouQShDKSxaLnYoUlszOV0oNywic3R5bGUiLCJjbGFzcyIsTlsyXSxXWzFdLGIpLFdbTlswXV0pO2Nhc2UgV1tOWzBdXTpyZXR1cm4gWi5yZXR1cm4oWltOWzFdXSk7Y2FzZSBDOnY9cD1aLmkoKTtjYXNlIHo6QSsrLFouR18oMik7YnJlYWs7Y2FzZSBXWzJdOnRocm93IHY7Cn19KSksUVsyXSkmJlQuY2FsbCh0aGlzLHopLChCPj5RWzBdJjE0KT09UVsyXSkmJihLLksmJmcwWzZdKDM5LGZ1bmN0aW9uKFosVyl7bVs5XSg5LHosVyxaKX0sSy5LKSxLLlImJmcwWzZdKDU1LGZ1bmN0aW9uKFosVyl7bVs5XSgxNSx6LFcsWil9LHt9KSksKEI+PlFbMl0mMTUpPT0zKSYmei5YLnB1c2goei5kZix6LlNYLHoueXQsei5vYix6LlJiLFlbUVsyXV0oODIsZnVuY3Rpb24oWixXKXtyZXR1cm4hIVomJiEhV30seikpLChCXjkwKT4+Myl8fCh0aGlzLk09eix0aGlzLnY9Sz09PXZvaWQgMD9udWxsOkssdGhpc1tRWzFdXT1KPT09dm9pZCAwP251bGw6Six0aGlzLkJkPUM9PT12b2lkIDA/ITE6Qyksbn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKChCXjMxKTwoQz1bMCwiY2FsbCIsMl0sMTYpJiYoQl41MCk+PTYpe2E6e2lmKHo9R2wubmF2aWdhdG9yKWlmKEo9ei51c2VyQWdlbnQpe0s9SjticmVhayBhfUs9IiJ9Yj1LfWlmKChCXjMzKTwyMSYmKEJ8OCk+PTMpVFtDWzFdXSh0aGlzLAp6KTtyZXR1cm4oKCgoQl42MCk+PjQ+PTMmJihCfDUpPj40PDEmJihnWzMyXSg4MyxDWzBdLHosWWooKS1EWzE4XSg2OSx5WzQwXSg3LG51bGwseixDWzJdKSkpLHQkLkFzKHopKSwoKEJeNTYpJjExKT09MSkmJihLPXouRCx6LkQ9W10sYj1LKSxCPDwxKSY4KTw0JiYoKEJeNDApJjcpPj0zJiYoYj0oSj1LIT16P0s6dm9pZCAwKSE9ej9KOlByb21pc2UpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCEoKEJ8KCgoKFE9WzEsIk0iLCJBIl0sQj4+UVswXSkmMTN8fChwPUsuWD09SmZ8fEsuWD09QVM/Z1syNl0oMTgseixLLnYpOm51bGwpLEIpLTReNik8QiYmKEItNl4xMCk+PUImJih0aGlzW1FbMl1dPXp8fDEwLEo9WyJocSIsImgyIiwxXSxHbC5QZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmc/KEM9R2wucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpLEs9Qy5sZW5ndGg+MCYmKENbMF0ubmV4dEhvcFByb3RvY29sPT1KWzBdfHxDWzBdLm5leHRIb3BQcm90b2NvbD09CkpbUVswXV0pKTpLPSEhKEdsLmNocm9tZSYmR2wuY2hyb21lLmxvYWRUaW1lcyYmR2wuY2hyb21lLmxvYWRUaW1lcygpJiZHbC5jaHJvbWUubG9hZFRpbWVzKCkud2FzRmV0Y2hlZFZpYVNwZHkpLHRoaXMuaT1LP3RoaXNbUVsyXV06MSx0aGlzLnY9bnVsbCx0aGlzLmk+SlsyXSYmKHRoaXMudj1uZXcgU2V0KSx0aGlzLlg9W10sdGhpc1tRWzFdXT1udWxsKSwyKSk+PjQpKXtmb3IoQT0oYj0oQz0wLEouVEUpLEouSHYpO0M8S1tRWzFdXS5sZW5ndGg7QysrKXtpZigodj1LW1FbMV1dW0NdLHYuVEUpPj1iJiZ2Lkh2PD1BKWJyZWFrOygoYj1oWSh2LlRFLGIpLHYuVEUpPGImJih2LlRFPWIsSy5nKz16KSxBPWw5KHYuSHYsQSksdikuSHY9QX1LLkRNKEopJiZLLktxKEopJiZSWzM4XShRWzBdLFFbMF0sMixLKX1yZXR1cm4oKEJ8MikmNyk9PTImJih0aGlzLm1lc3NhZ2U9eix0aGlzLm1lc3NhZ2VUeXBlPUssdGhpcy52PUopLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKEI+PgoyJihwPVs0MiwhMSw4XSw3KSkpYTp0cnl7dj1SW3BbMF1dKDQ5LEspPno/Sy52LnN0YXR1czotMTticmVhayBhfWNhdGNoKFEpe3Y9LTE7YnJlYWsgYX1pZighKCgoQi1wWzJdPj01JiYoQi03JnBbMl0pPHBbMl0mJih2PUsmej9sOnZvaWQgMCksQileNTMpJjMpKWE6e2lmKEsubGVuZ3RoPkoubGVuZ3RoKXt2PXBbMV07YnJlYWsgYX1pZihLLmxlbmd0aDxKLmxlbmd0aHx8Sz09PUope3Y9ITA7YnJlYWsgYX1mb3IoYj16O2I8Sy5sZW5ndGg7YisrKXtpZihBPShDPUtbYl0sSltiXSksQz5BKXt2PXBbMV07YnJlYWsgYX1pZihDPEEpe3Y9ITA7YnJlYWsgYX19fXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKChiPVswLDUsNDhdLChCKzNeMTYpPj1CKSYmKEItYlsxXXw0MSk8QiYmKEs9PT12b2lkIDAmJihLPXpbQSRdfGJbMF0pLEsmMzImJiEoSyY0MDk2KSYma1szOF0oNzcseixLfDQwOTYpKSxCPj4yPj0tNjUmJihCLTcmOCk8YlsxXSkmJnBxLmNhbGwodGhpcywKSngpLEJ8YlsyXSk9PUIpZzBbNl0oNTQsZnVuY3Rpb24odixwLFEsbil7bj1bImFyaWEtIiwoUT1bMCwiZGF0YS0iLCJmb3IiXSwibGFzdEluZGV4T2YiKSwic2V0QXR0cmlidXRlIl0scD09ej9DLnN0eWxlLmNzc1RleHQ9djpwPT1LP0MuY2xhc3NOYW1lPXY6cD09UVsyXT9DLmh0bWxGb3I9djp2ZS5oYXNPd25Qcm9wZXJ0eShwKT9DW25bMl1dKHZlW3BdLHYpOnBbblsxXV0oblswXSxRWzBdKT09UVswXXx8cFtuWzFdXShRWzFdLFFbMF0pPT1RWzBdP0NbblsyXV0ocCx2KTpDW3BdPXZ9LEopO3JldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKEIrMiYoKEI8PDImMTIpPChiPVsyOCwic2V0VGltZW91dCIsN10sYilbMl0mJkI8PDE+PS04MiYmKEE9bVsyM10oMzIsSixLLHosbCkpLGIpWzBdKT49QiYmKEIrOSY3OCk8QiYmKEMhPXomJkdsLmNsZWFyVGltZW91dChDKSxKLm9ubG9hZD1mdW5jdGlvbigpe30sSi5vbmVycm9yPWZ1bmN0aW9uKCl7fSxKLm9ucmVhZHlzdGF0ZWNoYW5nZT0KZnVuY3Rpb24oKXt9LEsmJndpbmRvd1tiWzFdXShmdW5jdGlvbigpe2VbNDZdKDExLEopfSwwKSksQiYxMTEpPT1CJiZULmNhbGwodGhpcyx6KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChCKzleMjEpPj0odj1bIiAgIiwzLDZdLEIpJiYoQi0yXnZbMV0pPEImJihLPU9bMzNdKDQyLHRoaXMpLHo9Z1szN10oMTYsdGhpcyksdGhpcy5BLnB1c2gobmV3IHdGKHRoaXMueEpbel0sdGhpcy52LnYrSyxudWxsLHosMixNNSxNNSkpKSwoQis3JjcpPT0xKXtpZigoQz1LLnUoKSxHKVsyOV0oMjMseikpSy51KCkucGxhY2Vob2xkZXIhPUsuWCYmKEsudSgpLnBsYWNlaG9sZGVyPUsuWCk7ZWxzZSBZWzFdKDM4LCEwLEspO09bMV0oNzIsVEYsQyxLLlgpLE9bMjZdKDI2LCIiLEspPyhiPUsudSgpLFJbMjddKDgsYiwibGFiZWwtaW5wdXQtbGFiZWwiKSk6KEsuUnx8Sy5PY3x8KEo9Sy51KCksUls4XSh2WzFdLCJsYWJlbC1pbnB1dC1sYWJlbCIsSikpLEdbMjldKDIyLHopfHxPWzJdKDcsCksubywxMCxLKSl9cmV0dXJuKEItdlsyXV44KT49QiYmQi03PDwxPEImJihiPVsiICIsJzxkaXYgY2xhc3M9IicsJyI+J10sRU8oKSxpbSgpLGNmKCksSj1IWzQ1XSg3NixZTygpLHouc1ksaW0oKSxjZigpKSxLPUhbNDVdKDQwLGp4KCksei5CRCxpbSgpLHlQKCkpLEM9SFs0NV0oNDQscFUoKSx6LkFxLGltKCksdW0oKSksWHIoKSxpbSgpLHVtKCksYWYoKSxpbSgpLHVtKCksaFEoKSxpbSgpLHVtKCksZGQoKSxpbSgpLHVtKCksQT1PWzQwXSg5NyxnWzI1XSh2WzFdLGdbMjVdKDUyLGdbMjVdKHZbMV0sT1s0MF0oNzksYVooKSxiWzFdK1JbMTFdKDcxLCJyYy1hbmNob3IiKStiWzBdK1JbMTFdKDcxLCJyYy1hbmNob3ItaW52aXNpYmxlIikrYlswXStSWzExXSg3MyxKKSt2WzBdKyhLPT09MXx8Sz09PTI/UlsxMV0oNzEsInJjLWFuY2hvci1pbnZpc2libGUtaG92ZXIiKTpSWzExXSg3LCJyYy1hbmNob3ItaW52aXNpYmxlLW5vaG92ZXIiKSkrYlsyXSksWVsyMl0oMTEsei5odSkpLERbMzNdKDY2KSksCks9PT0xIT09Qz9nWzI1XSg1MixnWzI1XSh2WzFdLGFaKCkseVs0N10oNTEsYlsyXSxiWzBdLHopKSx5WzFdKDE1LHopKTpnWzI1XSg2NyxnWzI1XSgzNSxhWigpLHlbMV0oMTYseikpLHlbNDddKDQsYlsyXSxiWzBdLHopKSksSWYoKSkpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoKXtpZigodD1bMTMsInYiLDRdLEI8PDEmMTUpPj10WzBdJiYoQl42Nik+PjU8dFsyXSl7Zm9yKFY9KGM9KFM9WyExLG51bGwsMTJdLEE9bmV3IGV1LGcpWzEyXSg3LEpbdFsxXV0pLGMubmV4dCgpKTshVi5kb25lO1Y9Yy5uZXh0KCkpbj1WLnZhbHVlLHE9bmV3IFE4LG4udmFsdWU9PT1udWxsPyhRPXEsZj1uZXcgblUsZVt0WzBdXSgyMSxTWzFdLG5VLHRbMF0sR0csUSxmKSk6bi52YWx1ZSBpbnN0YW5jZW9mIGV0P25bdFsxXV0/KE49cSxQPW4udmFsdWUudG9TdHJpbmcoKSxHWzI2XSg4LEdHLHRbMl0sUD09U1sxXT9QOgpEWzM0XSgzNCwhMCx2b2lkIDAsUCksTikpOihMPXEsdT1uLnZhbHVlLnRvU3RyaW5nKCksR1syNl0oMSxHRywyLHU9PVNbMV0/dTpEWzM0XSgzOCwhMCx2b2lkIDAsdSksTCkpOm4udmFsdWUgaW5zdGFuY2VvZiBadT9uW3RbMV1dPyh4PXEscD1PWzI1XSgzNCx6LEssbi52YWx1ZS52YWx1ZSksZD14LEdbMjZdKDksR0csNixSWzExXSgyMCwwLHApLGQpKTooQz1xLGI9T1syNV0oMTQseixLLG4udmFsdWUudmFsdWUpLFo9QyxHWzI2XSgzMixHRyw4LFJbMTFdKDMyLDAsYiksWikpOnR5cGVvZiBuLnZhbHVlPT09InN0cmluZyI/blt0WzFdXT9SWzI1XSgyNyxTWzFdLDMsbi52YWx1ZSxHRyxxKTpSWzI1XSg1OCxTWzFdLEssbi52YWx1ZSxHRyxxKTpuLnZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheT9uW3RbMV1dPyhYPXEsR1syNl0oMTcsR0csNSxHWzQyXSg1MCxTWzFdLFNbMF0sbi52YWx1ZSksWCkpOihhPXEsR1syNl0oMjQsR0csNyxHWzQyXSg1OCxTWzFdLFNbMF0sbi52YWx1ZSksCmEpKTpuLnZhbHVlIGluc3RhbmNlb2YgR3E/blt0WzFdXT8odj1xLHI9RFs0MV0oODgsU1sxXSwwLG4udmFsdWUpLGVbdFswXV0oMTYsU1sxXSxTdCwxMSxHRyx2LHIpKTooRT1xLFc9RFs0MV0oODksU1sxXSwwLG4udmFsdWUpLGVbdFswXV0oMTAsU1sxXSxTdCxTWzJdLEdHLEUsVykpOnE9bi52YWx1ZVt0WzFdXSxnWzFdKDY2LFNbMV0sUTgsQSxxKTtoPUF9aWYoQisyPj4zPj0wJiYoQl43NCk8NilhOnRyeXtoPVJbNDZdKDUsMSx6KS5nZXRJdGVtKEspO2JyZWFrIGF9Y2F0Y2goTSl7aD1udWxsO2JyZWFrIGF9cmV0dXJuKChCXjIwKT4+dFsyXTwzJiYoQnwxKT4+dFsyXT49MiYmKExELmNhbGwodGhpcywyMDMzLDI0LFsyXSksdGhpcy5WPXRoaXMuTT10aGlzLlg9dGhpcy5pPS0xLHRoaXMuQT1nWzddKDM5KSksQi0zPj50WzJdKXx8KHRoaXNbdFsxXV09W10pLGh9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi0oKEJ8MzIpPT0oKEM9WyJ2Iiw4LDU1XSwoQnxDWzFdKT49MykmJgooQl4xOCk8Q1sxXSYmKEs9U3RyaW5nKHopLGI9IjAwMDAwMDAiLnNsaWNlKEsubGVuZ3RoKStLKSxCKSYmKHRlLmNhbGwodGhpcyx6KSx0aGlzLkQ9W10sdGhpcy5CPSExLHRoaXMuZz1bXSksQ1sxXSl8Q1syXSk8QiYmKEIrQ1sxXV4xOCk+PUImJihvZy5jYWxsKHRoaXMpLHRoaXNbQ1swXV09eix0aGlzLlg9LTEsdGhpcy5pPW5ldyBXZSh0aGlzW0NbMF1dKSx5WzQzXSg1OCx0aGlzLmksdGhpcyksKHM0JiZ6bnx8RmZ8fEkyKSYmSFs1XSgyNix0aGlzW0NbMF1dLFtndixOSF0sdGhpcy5BLCExLHRoaXMpLEt8fChIWzVdKDI2LHRoaXMuaSxhMyx0aGlzLk0sITEsdGhpcyksSFs1XSgyNyx0aGlzW0NbMF1dLHNYLHRoaXMuUiwhMSx0aGlzKSksdGhpcy5GPUopLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCgoKHA9WyJkaXNwbGF5TmFtZSIsMyw5XSxCKS03Pj0xMCYmKEIrcFsyXSYxMik8NyYmKHRoaXMudj1LLHRoaXMubWFwPXopLEI+PjEpJjcpPT0xKXtmb3IoQT0KKEFycmF5LmlzQXJyYXkoYil8fChiJiYoT0ZbMF09Yi50b1N0cmluZygpKSxiPU9GKSwwKTtBPGIubGVuZ3RoO0ErKyl7aWYodj1IWzVdKDI1LEosYltBXSxDfHxLLmhhbmRsZUV2ZW50LHp8fCExLEsuSHx8SyksIXYpYnJlYWs7Sy5XW3Yua2V5XT12fVE9S31yZXR1cm4oQnxwWzFdKT4+NHx8KFE9eltwWzBdXXx8ei5uYW1lfHwidW5rbm93biB0eXBlIG5hbWUiKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEI+PjImKGI9WyJSVCIsMCw1XSxiWzJdKXx8VC5jYWxsKHRoaXMseixiWzFdLGNSW2JbMF1dKSxCfDI0KT09Qil7Zm9yKHo9YlsxXTtmRz1mRy5wYXJlbnRFbGVtZW50fHxudWxsOyl6Kys7Qz16fXJldHVybihCKzleNCk+PUImJihCKzdeMTkpPEImJihKPXosSy5NJiYoSj1LLk0sSy5NPUoubmV4dCxKLm5leHQ9eiksSy5NfHwoSy5pPXopLEM9SiksQ30sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybigoQz1bOCwzLDRdLEIrN14yOSk+PUImJihCKzImOSk8QiYmKGI9Cks9KHomSj9LfHo6SyYtMykmLTI3MyksQnxDWzFdKT4+Q1syXXx8KGI9bmV3IElwKGZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTil7aWYoTj0ocD0oUT1mdW5jdGlvbih4KXt2KHgpfSxKKS5sZW5ndGgsW10pLHApZm9yKFo9ZnVuY3Rpb24oeCxmKXsoTlt4XT1mLHAtLSxwPT0wKSYmQShOKX0sVz0wO1c8Si5sZW5ndGg7VysrKW49SltXXSxSWzQ5XSgzLHosSyxudWxsLG5nKFosVyksbixRKTtlbHNlIEEoTil9KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCfDcyKT09KCgoKEItNzw8KHA9WyJvYmplY3QiLDMyLCJ2Il0sMik8QiYmKEIrM14yMyk+PUImJihLPXR5cGVvZiB6LHY9Sz09cFswXSYmeiE9bnVsbHx8Sz09ImZ1bmN0aW9uIiksQl42Mik8MjImJihCPDwyJjE1KT49NiYmKHY9SFsyNV0oNDEsT1s5XSgyNyw5KSx6KSksQikrOV4xMik8QiYmKEIrNl5wWzFdKT49QiYmKEM9R1szOF0oMjUsbnVsbCxDLEspLHlbMzhdKDMsYixDLHosSiksQyYmIXlbMl0ocFsxXSwKQykmJkhbMzZdKDMsei5hVCksdj16KSxCKSYmKFlbMzddKDUsSyxKKSxLPVpmKEspLCFKJiYhZ2R8fEs+PXomJk51KEspP0M9Szooa1sxMl0oMTAseixLKSxDPWtbMzldKDE2LHosT08seE8pKSx2PUMpLEItNT4+Mz09MSYmKGI9Yj09PXZvaWQgMD9udWxsOmIsQT1bMTAwLDM2LDBdLEpbcFsyXV0mJih5WzE1XSgxLEFbMV0sQVsyXSxLLEosSltwWzJdXSksRFsyM10oNDcsSltwWzJdXSkpLEpbcFsyXV09Uls0M10oMyxiLEMpLHlbMTBdKDY0LEFbMV0sSltwWzJdXSxKKSxKW3BbMl1dLnJlbmRlcihKLnUoKSksZ1s0NF0oNSwiKSIsQVswXSxBWzJdLEoudSgpKSxEWzI1XSgzNCwiLiIsSi51KCkpLnRoZW4oZnVuY3Rpb24oUSl7Z1soUT1bNjAsInUiLDQ0XSxRKVsyXV0oNCwiKSIsMTAwLHosSltRWzFdXSgpKSxnWzNdKFFbMF0sSiwiZyIpfSkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLTd8KCgoKEJ8KChCLTUmKEE9WzAsMTMsIk0iXSwxMSkpPT0zJiYoYj1LKSwyNCkpPT0KQiYmKHRoaXMuWD1bXSx0aGlzW0FbMl1dPUFbMF0sdGhpcy52PW5ldyB4UCksQj4+MSkmNyk9PTEmJnoubGVuZ3RoIT09MCYmKEsuWC5wdXNoKHopLEtbQVsyXV0rPXoubGVuZ3RoKSxBWzFdKSk8QiYmKEItNXwyMyk+PUIpe2lmKEMuU3EmJkMuWk0mSiYmIUspdGhyb3cgRXJyb3IobjUpO0MuR0o9KCFLJiZDLlpNJkomJnlbMzNdKDI4LDEsQyx6LEopLEs/Qy5HSnxKOkMuR0omfkopfXJldHVybiBifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe3JldHVybihCXigoKE49WzI1LDMzLDFdLEImOTEpPT1CJiYoSz1nWzIzXSg0MyksZ1szXSg0OCxLLG5ldyBEdShLLHopKSksKEImMTAxKT09QikmJihKPXR5cGVvZiBLLFc9SiE9ej9KOks/QXJyYXkuaXNBcnJheShLKT9mVSgpOko6SjAoKSksKEI+Pk5bMl0mMTYpPDQmJihCfDIpPj40Pj1OWzJdJiYocD1bbnVsbCwxLDNdLGIueXk9QT09PXZvaWQgMD8hMDpBLGIub3o9Z1sxMl0oMTIsa1s0Ml0oNDIsYixwW05bMl1dKSkubmV4dCgpLnZhbHVlLApuPWIudigpLmZsYXQoSW5maW5pdHkpLFE9bi5maW5kSW5kZXgoZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBPbCYmbVsxXSgyMCx4LDEpPT1DfSksWj1IWzEyXShOWzBdLG5bUV0scFsyXSxtMyxrWzNdKDM4KSksdj1bZ1s1XSgxOCxKLGIub3opLEhbNDRdKDQ2LG1bMTRdKDEwLHBbTlsyXV0scFswXSxaW3BbTlsyXV1dKSksZ1szMV0oMTIscFtOWzJdXSxLLG4sYixiLnh3KV0sT1syM10oTlswXSx6LGIpLFc9diksNTkpKTwyMCYmQjw8Mj49NyYmKFc9T1s0NV0oMzUpP1o4LnBsYXRmb3JtPT09Im1hY09TIjpEWzIwXShOWzFdLCJNYWNpbnRvc2giKSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe3JldHVybigoKE49WyJSIiw2LDExN10sQikrTlsxXT4+MTxCJiYoQi00Xk5bMV0pPj1CJiYocD1bMSwicHgiLDE0XSx2PU9bNDNdKDY1LGJbTlswXV0pLndpZHRoLXBbMl0sbj1KPT16JiZDPT16PzE6MixBPW5ldyBibSgoQy1wWzBdKSpuKkssKEotCnBbMF0pKm4qSyksWj1uZXcgYm0odi1BLndpZHRoLHYtQS5oZWlnaHQpLFE9cFswXS9KLFc9cFswXS9DLFoud2lkdGgqPVcsWi5oZWlnaHQqPXR5cGVvZiBRPT09Im51bWJlciI/UTpXLFouZmxvb3IoKSx4PXtYNzpaLmhlaWdodCtwWzFdLGJCOloud2lkdGgrcFsxXSxyb3dTcGFuOkosY29sU3BhbjpDfSksQiZOWzJdKT09QiYmKHg9eiksQi05fDU1KTxCJiYoQis0JjQ0KT49QiYmKHg9b1goSy5BLGZ1bmN0aW9uKGYpe3JldHVybiB0eXBlb2YgZlt6XT09PSJmdW5jdGlvbiJ9KSkseH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCKygoQi05Jigodj1bMSxudWxsLDE5XSxCfDY0KT09QiYmKEE9bmV3IFdOLEdsLkltYWdlPyhiPW5ldyBJbWFnZSxiLm9ubG9hZD1uZyhtWzRdLmJpbmQodlsxXSw4OCksQSwiVGVzdExvYWRJbWFnZTogbG9hZGVkIix6LEMsYiksYi5vbmVycm9yPW5nKG1bNF0uYmluZCh2WzFdLDg5KSxBLCJUZXN0TG9hZEltYWdlOiBlcnJvciIsSyxDLApiKSxiLm9uYWJvcnQ9bmcobVs0XS5iaW5kKHZbMV0sOTApLEEsIlRlc3RMb2FkSW1hZ2U6IGFib3J0IixLLEMsYiksYi5vbnRpbWVvdXQ9bmcobVs0XS5iaW5kKHZbMV0sOTEpLEEsIlRlc3RMb2FkSW1hZ2U6IHRpbWVvdXQiLEssQyxiKSxHbC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoYi5vbnRpbWVvdXQpYi5vbnRpbWVvdXQoKX0sMUU0KSxiLnNyYz1KKTpDKEspKSwxNCkpPDQmJihCPj4yJjcpPj12WzBdJiYoQz1DPT09dm9pZCAwPyExOkMsR1sxM10oMjUsZnVuY3Rpb24oUSxuKXtpZihRLk09PShuPVsyLDEsInYiXSxuWzFdKSlyZXR1cm4gUVtuWzJdXShMVShlWzMxXSgyMSksbVszNV0oNTkpLHZvaWQgMCxEWzExXShuWzFdKS5FcnJvcigpKSxuWzBdKTtLLkE9KEE9KGI9US5YLGZ1bmN0aW9uKFope3JldHVybihaPVsiUHYiLCExLDFdLFkpWzIzXShaWzJdLDEyLHosWlsyXSxaWzFdLEssQyxKLGJbWlswXV0oKSl9KSxLKS5BLnRoZW4oQSxBKSxRLlIoKX0pKSx2WzBdKT4+MjwKQiYmQis3Pj52WzBdPj1CJiYoYj16LHA9ZnVuY3Rpb24oKXtyZXR1cm4oYj0oSipiK0spJUMsYikvQ30pLEJ8MjQpPT1CJiYocD1ZW3ZbMl1dKDUseixLKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoQis3Pj4oUT1bbnVsbCwyMywicHJvdG90eXBlIl0sMSk8QiYmKEIrNF4yMik+PUIpe2lmKHo+KChKPVJYKEFycmF5LFt6XSx0aGlzLmNvbnN0cnVjdG9yKSxKKS5zaWduPUssT2JqZWN0LnNldFByb3RvdHlwZU9mKEosaEZbUVsyXV0pLHJ2KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF4aW11bSBCaWdJbnQgc2l6ZSBleGNlZWRlZCIpO3A9Sn1yZXR1cm4oQi00Pj40fHwodj1ZWzQ2XSg4OSwyLGIsQSksQS5BPUEuQS50aGVuKHYsdikudGhlbihmdW5jdGlvbihuLFosVyl7cmV0dXJuIEdbMTNdKDgsZnVuY3Rpb24oTix4LGYsTCxyKXtpZigoKFo9ISEoZj0oeD0oVz1BLnYuTyxbMywocj1bMCwxNywxOV0sNCksbnVsbF0pLGRrLkooKS5nZXQoKSksWVtyWzJdXSgzNiwKeixmKSksYikubWR8fFopJiZXKXJldHVybiBOLnJldHVybihnWzldKDE0LDQyLHhbclswXV0seFsyXSx4WzFdLFcsbixBLFopKTtyZXR1cm4gbj0oTD1uLEEuZyYmbVsyM10oMzQsQS5nLEwsQyxsKSxMKSxOLnJldHVybihtWzIwXShyWzFdLEosMSwyLEssVyxuLEEpKX0pfSkscD1BLkEpLEItMV42KT49QiYmKEIrNF5RWzFdKTxCJiYocD15WzM4XSg0LGIsSz09UVswXT9LOkRbMzRdKDM1LCEwLEMsSyksSix6KSkscH1dfSgpLG09ZnVuY3Rpb24oKXtyZXR1cm5bZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihCXjYpPj4oKEM9WzMsInhKIiwyXSwoKEJ8NikmOCk8Q1swXSkmJihCXjM1KT4+ND49Q1syXSYmKHo9Uls4XSg2MSx0aGlzKSx0aGlzW0NbMV1dW3pdPU1hdGgudHJ1bmMoWWooKSkpLDQpfHwoYj1uZXcgT3koeixLLEosMzEpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoKEItMXwoeD1bMCw3LDRdLDY4KSk8QiYmKEIreFsyXV4xNyk+PQpCKW1bMjNdKDI0LEosSyx6KTtpZihCLTg8PDE8KChCPj4xJjE1KT09MSYmKE49dGhpc1t6XT4+PnhbMF0pLEIpJiYoQis5JjMwKT49Qil7aWYoKFE9KHY9WzEsKFc9ZnVuY3Rpb24oZixMKXtyZXR1cm4gTC5sZW5ndGg+PWYubGVuZ3RoP0w6Zn0sMCksM10scD1uZXcgVjgsL1xiKDFbMi05XVxkezh9KFxkezN9KT8pXGIvZyksWSlbMTddKDEseFsxXSkpe2ZvcihaPShDPWdbMTJdKDYsSFs4XSg0NCwzMzQwKSh6LEosZnVuY3Rpb24oZixMLHIpe3JldHVybihMPWYubWF0Y2goUSl8fFtdLHI9TC5yZWR1Y2UoVywiIiksTC5maWx0ZXIoZnVuY3Rpb24oVil7cmV0dXJuIFYubGVuZ3RoPT1yLmxlbmd0aH0pKS5tYXAoZnVuY3Rpb24oVil7cmV0dXJuIHBhcnNlSW50KFYuc3Vic3RyaW5nKDEsNiksMTApfSl9KSksQykubmV4dCgpOyFaLmRvbmU7Wj1DLm5leHQoKSlmb3IoQT1nWzEyXSgzLFoudmFsdWUpLGI9QS5uZXh0KCk7IWIuZG9uZTtiPUEubmV4dCgpKW49Yi52YWx1ZSxSWzM5XSgyNSwKdlt4WzBdXSxwLChIWzIxXSgzOSxwLHZbeFswXV0pfHx2WzFdKSt2W3hbMF1dKSxZWzQzXSg4LHZbMl0saFkoSFsyMV0oMTMscCx2WzJdKXx8dlsxXSxuKSxwKSxZWzI5XSgxLDIscCxsOShIWzIxXSh4WzFdLHAsMil8fG4sbikpLEhbOV0oNSx4WzJdLChIWzIxXSg0NyxwLHhbMl0pfHx2WzFdKStuLHApO0hbMjFdKDEzLHAsdlt4WzBdXSkmJkhbOV0oMTMseFsyXSxiTihIWzIxXSg0NSxwLHhbMl0pL0hbMjFdKDE1LHAsdlt4WzBdXSkpLHApfU49cC55ZSgpfXJldHVybihCJigoQi14WzFdJjE1KT09MiYmKE49a1sxNV0oMzgsdGhpcy52KSksMzApKT09QiYmKEo9Sj09PXZvaWQgMD8wOkosTj0oQz1nWzE2XSgxMSx2b2lkIDAseixLKSkhPW51bGw/QzpKKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe2lmKChCXjY5KT4+KChCLTcmKChQPVs0LDEsMjZdLChCfDg4KT09QikmJihiPVswLCIuIiwiKiJdLEE9S3x8ZG9jdW1lbnQsQS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPwpDPUEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh6KVtiWzBdXTooSj1kb2N1bWVudCxDPXo/KEt8fEopLnF1ZXJ5U2VsZWN0b3Ioej9iW1BbMV1dK3o6IiIpOmVbMzVdKDE5LGJbUFsxXV0sSyxKLHosYlsyXSlbYlswXV18fG51bGwpLFY9Q3x8bnVsbCksMTUpKT09UFsxXSYmKGI9WzUwMCwxLDVdLEs9Sz09PXZvaWQgMD8xOkssalk/KGVbNDNdKDI5LGpZLCEwLFBbMF0pLHomJihDPW5ldyBZTCxKPUhbNDldKDI3LGJbUFsxXV0seixDKSxIWzQ0XSg2NyxqWSxZTCxiWzJdLEopKSk6SzwzJiZzZXRUaW1lb3V0KHQkLmJTLGJbMF0seixLK2JbUFsxXV0pKSxQWzBdKT49UFsxXSYmKEI+PjImMTQpPDIpYTp7aWYoeiBpbnN0YW5jZW9mIElwKXtWPXo7YnJlYWsgYX1LPW5ldyBJcChEWzNdLmJpbmQobnVsbCwzMykpLGdbOF0oUFsyXSwzLEssMix6KSxWPUt9aWYoIShCPj5QWzFdJjE1KSlhOntpZigoUT0oeD0oZ1s0MV0oNTEsKG49WzQsMixudWxsXSxLKSksSykuYVQseFtBJF0pfHosQyk9PW5bMl0pe1Y9CihZWzI1XSg5Nyx2b2lkIDAsSixRLHZvaWQgMCx4KSxLKTticmVhayBhfWlmKCFBcnJheS5pc0FycmF5KEMpKXRocm93IGVbNl0oNTMpO3A9KCgoZj1BPUM9PT1RUD83OkNbQSRdfHosdj0ocj1tWzVdKDE4LG5bMF0sQSkpfHxQVShDKSxyKXx8KEE9eiksdil8fChDPWcwWzJdKDYsQyksZj16LEE9SFs0M10oMzIsbltQWzFdXSxBLFEpLHY9ITEpLEF8PTUsKFo9WVsxNF0oMzIsblswXSwxMDI0LEEpKSE9blsyXSk/WjoxMDI0LE49ejtmb3IoQXw9cDtOPEMubGVuZ3RoO04rKylMPUNbTl0sVz1iKEwscCksVTgoTCxXKXx8KHYmJihDPWcwWzJdKDYsQyksZj16LEE9SFs0M10oMzUsbltQWzFdXSxBLFEpLHY9ITEpLENbTl09Vyk7Vj0oQSE9PWYmJih2JiYoQz1nMFsyXSg3LEMpLEE9SFs0M10oMjgsbltQWzFdXSxBLFEpKSxrWzM4XSg3NyxDLEEpKSxZWzI1XSg0OCxDLEosUSx2b2lkIDAseCksSyl9cmV0dXJuKEI+PjImNyk9PVBbMF0mJih0aGlzLnY9R2wuc2V0VGltZW91dChSeCh0aGlzLlgsCnRoaXMpLDApLHRoaXMuTT16KSxWfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4gQjw8MSYoQi00Pj4oWj1bMjMsInYiLDEwXSwzKT49MiYmKEI+PjImOCk8NiYmdGhpc1taWzFdXS5YPT1HRiYmKHRoaXNbWlsxXV0uWD1LUSx0aGlzW1pbMV1dW1pbMV1dLlk3KCksdGhpcy5NW1pbMV1dLlUwKCExKSksMTQpfHwodj1ZWzMxXSgxOCxBKS50b1N0cmluZygpLG49di5zcGxpdCgvWz8jXS8pLFE9L1s/XS8udGVzdCh2KT9LK25bel06IiIscD0vWyNdLy50ZXN0KHYpP0orKFE/blsyXTpuW3pdKToiIixXPXlbWlswXV0oWlsyXSwwLCI9IixudWxsLDEsUSxuW0NdLGIscCkpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoKHg9Wzg4LDEsIm9uZXJyb3IiXSxCPj54WzFdKSYzMSk+PTE3JiYoQl42MSk8Mjgpe2lmKEdbbj0oQT1IW3Y9WyIiLDEsImlQb2QiXSwzM10oMTYpLHYpWzBdLDQ1XSgxMikpQz0vV2luZG93cyAoPzpOVHxQaG9uZSkgKFswLTkuXSspLywKbj0oYj1DLmV4ZWMoQSkpP2Jbdlt4WzFdXV06SGUoKTtlbHNlIGlmKHlbOF0oNDYsdlsyXSkpQz0vKD86aVBob25lfGlQb2R8aVBhZHxDUFUpXHMrT1NccysoXFMrKS8sbj0oUT1DLmV4ZWMoQSkpJiZRW3ZbeFsxXV1dLnJlcGxhY2UoL18vZyxlQygpKTtlbHNlIGlmKEhbNDZdKDQzKSlDPS9NYWMgT1MgWCAoWzAtOV8uXSspLyxuPShXPUMuZXhlYyhBKSk/V1t2W3hbMV1dXS5yZXBsYWNlKC9fL2csZUMoKSk6ZXgoKTtlbHNlIGlmKERbMjBdKDIwLHosSFszM10oMjgpLnRvTG93ZXJDYXNlKCkpKUM9Lyg/OkthaU9TKVwvKFxTKykvaSxuPShwPUMuZXhlYyhBKSkmJnBbdlt4WzFdXV07ZWxzZSBpZihPWzhdKDU3KSlDPS9BbmRyb2lkXHMrKFteXCk7XSspKFwpfDspLyxuPShKPUMuZXhlYyhBKSkmJkpbdlt4WzFdXV07ZWxzZSBpZihPWzQ1XSgxMSk/WjgucGxhdGZvcm09PT0iQ2hyb21lIE9TIjpEWzIwXSgxMSxLKSlDPS8oPzpDck9TXHMrKD86aTY4Nnx4ODZfNjQpXHMrKFswLTkuXSspKS8sCm49KFo9Qy5leGVjKEEpKSYmWlt2W3hbMV1dXTtOPW58fHZbMF19aWYoKChCfCgoQiYyNik9PUImJihOPShLP1BlKCk6JFAoKSkrbVs0OF0oNDQsSikreikseFsxXSkpPj4zPT0zJiYoSz1kay5KKCkuZ2V0KCksTj1ZWzE5XSg1LHosSykpLEJ8eFswXSk9PUIpdHJ5e2ImJihiLm9ubG9hZD1udWxsLGJbeFsyXV09bnVsbCxiLm9uYWJvcnQ9bnVsbCxiLm9udGltZW91dD1udWxsKSxDKEopfWNhdGNoKGYpe31yZXR1cm4oQis5JjcpPj01JiYoQl44KTwxNCYmKE49UlsxM10oMTUsSFsyNV0oNDIsT1s5XSgxOSw4KSxLKSxbT1syNV0oOSx6KV0pKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEJ8KChCJjEzKT09KCgoQi01Pj4zPT0oQz1bImNhbGwiLDk0LDJdLDEpJiYoYj0hIShDWzJdJkspJiYhISh6JkspfHwhISgyNTYmSykpLEItQ1syXSkmMTUpPj01JiYoKEJeNTMpJjE2KTwxNSYmKEo9T1sxMV0oNjMsbVtDWzJdXShDWzFdLHFIKSxpRCksYj1QYihmdW5jdGlvbigpe3JldHVybiBKLm1hdGNoKC9bXixdKiwoW1x3XGRcK1wvXSopLylbel19LApLKSksQikmJih6PUVycm9yW0NbMF1dKHRoaXMseTgoKSksdGhpcy5tZXNzYWdlPXoubWVzc2FnZSwic3RhY2siaW4geiYmKHRoaXMuc3RhY2s9ei5zdGFjayksT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUpLHRoaXMubmFtZT1ZUCgpKSwzMikpPT1CJiYoJE1bQ1swXV0odGhpcyxjZSx6KSx0aGlzLnNpemU9SyksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKG49WzE2LDUsMjQwXSxCJjEwNyk9PUIpZm9yKFo9ZnVuY3Rpb24oTix4LGYpe2Zvcig7QTxKLmxlbmd0aDspe2lmKHg9KGY9Si5jaGFyQXQoQSsrKSxFMltmXSkseCE9bnVsbClyZXR1cm4geDtpZighUlsyXSgyMCxmKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIitmKTt9cmV0dXJuIE59LHY9WzIsMCw2XSx5WzE5XSgzMixuWzFdLHZbMV0pLEE9dlsxXTs7KXtpZihiPShwPShDPVooLTEpLFopKHZbMV0pLFooeikpLApRPVooeiksUT09PTY0JiZDPT09LTEpYnJlYWs7KEsoQzw8dlswXXxwPj40KSxiKSE9eiYmKEsocDw8NCZuWzJdfGI+PnZbMF0pLFEhPXomJksoYjw8dlsyXSYxOTJ8USkpfWlmKCgoQjw8MSYoKEJ8ODApPT1CJiZULmNhbGwodGhpcyx6KSxuWzBdKSk8blswXSYmQjw8Mj49LTc0JiYodGhpcy52PUssdGhpcy5NPXopLEJ8MzIpPT1CKWE6e2lmKHogaW5zdGFuY2VvZiBlc3x8eiBpbnN0YW5jZW9mIFN4fHx6IGluc3RhbmNlb2YgbWIpe1c9ejticmVhayBhfWlmKHR5cGVvZiB6Lm5leHQ9PSJmdW5jdGlvbiIpe1c9bmV3IGVzKGZ1bmN0aW9uKCl7cmV0dXJuIHp9KTticmVhayBhfWlmKHR5cGVvZiB6W1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIpe1c9bmV3IGVzKGZ1bmN0aW9uKCl7cmV0dXJuIHpbU3ltYm9sLml0ZXJhdG9yXSgpfSk7YnJlYWsgYX1pZih0eXBlb2Ygei5xaj09ImZ1bmN0aW9uIil7Vz1uZXcgZXMoZnVuY3Rpb24oKXtyZXR1cm4gei5xaigpfSk7YnJlYWsgYX10aHJvdyBFcnJvcigiTm90IGFuIGl0ZXJhdG9yIG9yIGl0ZXJhYmxlLiIpOwp9cmV0dXJuKEIrN14xOCk8QiYmQi04PDwxPj1CJiYoVz1sRCsoSz96K0s6IiIpKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUpe2lmKCgoYz1bMTAsMywibWV0YUtleSJdLChCXjU2KT4+NHx8KEs9WzkxLDE3LDE4XSxrZSYmKHRoaXMuWUo9PUtbMV0mJiF6LmN0cmxLZXl8fHRoaXMuWUo9PUtbMl0mJiF6LmFsdEtleXx8ZHImJnRoaXMuWUo9PUtbMF0mJiF6W2NbMl1dKSYmKHRoaXMuWUo9dGhpcy5laz0tMSksdGhpcy5ZSj09LTEmJih6LmN0cmxLZXkmJnoua2V5Q29kZSE9S1sxXT90aGlzLllKPUtbMV06ei5hbHRLZXkmJnoua2V5Q29kZSE9S1syXT90aGlzLllKPUtbMl06eltjWzJdXSYmei5rZXlDb2RlIT1LWzBdJiYodGhpcy5ZSj1LWzBdKSksZVsxOF0oMSwyMTksMTYseltjWzJdXSx6LmtleUNvZGUsdGhpcy5ZSix6LmN0cmxLZXksei5hbHRLZXksei5zaGlmdEtleSk/KHRoaXMuZWs9eVsyMF0oMjEsS1swXSx6LmtleUNvZGUpLApFRiYmKHRoaXMuY0k9ei5hbHRLZXkpKTp0aGlzLmhhbmRsZUV2ZW50KHopKSxCPDwxKSYxNik8MTUmJihCLTQmMTUpPj1jWzBdKXtpZihDPShRPSh0aGlzLk09ITEsbnVsbCksWzUsImNhc2UgIiw0XSkseilmPVhjKHopLFE9SFsxMl0oMTMsZiwxLHVELGtbY1sxXV0oOSkpWzBdO2Vsc2UgaWYocT13aW5kb3csdGhpcy5NPSEwLFo9cT1xPT09dm9pZCAwP3dpbmRvdzpxLFo9Wj09PXZvaWQgMD93aW5kb3c6WixiPShyPVpbYVhdKSYmIlRTRHRWImluIHI/ci5UU0R0VjpudWxsLHY9dHlwZW9mIGIhPT0ic3RyaW5nIj9udWxsOmIpTD0iWyIrdi5zdWJzdHJpbmcoaFMubGVuZ3RoKSxuPWR2KEwpLFE9SFsxMl0oMTcsbiwxLHVELGtbY1sxXV0oMTUpKVswXTtpZihRKWZvcihQPWdbMTJdKGNbMV0sSFsxMl0oMTYsUSwyLGtQLGtbY1sxXV0oMzkpKSksVz1QLm5leHQoKTshVy5kb25lO1c9UC5uZXh0KCkpaWYoZ1szMF0oNzQsbnVsbCxXLnZhbHVlLDYsdFMsVUYpKXRocm93IEVycm9yKCk7aWYoUSl7Zm9yKEE9CihWPWdbMTJdKDEyLEhbMTJdKDEyLFEsMiwoSz17fSxrUCksa1tjWzFdXSg2KSkpLFYubmV4dCgpKTshQS5kb25lO0E9Vi5uZXh0KCkpc3dpdGNoKHg9QS52YWx1ZSxwPWVbMzJdKDYxLHgsMSkudG9TdHJpbmcoKSxIWzI1XSgxMSxudWxsLHgsVUYpKXtjYXNlIGNbMV06S1twXT1lW2NbMF1dKDMyLG51bGwsa1sxXShjWzBdLHZvaWQgMCx4LFVGLGNbMV0pLHgpO2JyZWFrO2Nhc2UgMjpLW3BdPURbMThdKDEzLGVbMzJdKDQ5LHgsa1sxXSgxNSx2b2lkIDAseCxVRiwyKSkpO2JyZWFrO2Nhc2UgQ1syXTpLW3BdPU9bN10oMTcsbnVsbCx2b2lkIDAsdm9pZCAwLHgsa1sxXSgxNCx2b2lkIDAseCxVRixDWzJdKSk7YnJlYWs7Y2FzZSBDWzBdOktbcF09WVszNF0oY1sxXSxrWzFdKDE1LHZvaWQgMCx4LFVGLENbMF0pLHgpO2JyZWFrO2Nhc2UgNjpLW3BdPW1bMTJdKDY2LDYsdFMseCxVRik7YnJlYWs7Y2FzZSA4Ok49eVsxNl0oNCwwLDgsVUYseCxNSCk7c3dpdGNoKEhbMjVdKDIsbnVsbCxOLAp3dikpe2Nhc2UgMTpLW3BdPVlbMzRdKDQsa1sxXSgxNCx2b2lkIDAsTix3diwxKSxOKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKENbMV0rSFsyNV0oOSxudWxsLE4sd3YpKTt9YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihDWzFdK0hbMjVdKDEsbnVsbCx4LFVGKSk7fUo9S31lbHNlIEo9e307dGhpcy5WZD0odGhpcy52PUosUSk/US56bygpOm51bGx9aWYoISgoQl43MSk+PigoQi01XjcpPj1CJiZCKzQ+PjE8QiYmVC5jYWxsKHRoaXMseiksNCkpKXtmb3IoVz0oeD1nWzEyXSg5LChaPVsiZXhwbGljaXQiLCEwLCIuIl0sQykpLHgpLm5leHQoKTshVy5kb25lO1c9eC5uZXh0KCkpZ1s0Nl0oMSxmdW5jdGlvbihTKXtPWzJdKDgsUyx6KX0sVy52YWx1ZStKKTtmb3IoYj0oQT0oKHI9d2luZG93W2kzXVtJWCgpXSx3aW5kb3dbaTNdW0lYKCldPVtdLEFycmF5KS5pc0FycmF5KHIpfHwocj1bcl0pLGcpWzEyXSg0LHIpLEEubmV4dCgpKTshYi5kb25lO2I9QS5uZXh0KCkpaWYodj1iLnZhbHVlLAp2PT1LKWdbMTFdKDgsWlsyXSxaWzFdKTtlbHNlIHYhPVpbMF0mJihmPWVbNV0oNjgse3NpdGVrZXk6dixpc29sYXRlZDohMH0pLEdsLndpbmRvd1tpM11bJDAoKV1bdl09ZixnWzExXShjWzBdLFpbMl0sWlsxXSx2KSk7Zm9yKE49KHA9KCgobj13aW5kb3dbaTNdW0ZjKCldLHdpbmRvdylbaTNdW0ZjKCldPVtdLEFycmF5LmlzQXJyYXkobikpfHwobj1bbl0pLFE9d2luZG93W2kzXVtCNigpXSx3aW5kb3dbaTNdW0I2KCldPVtdLFEmJkFycmF5LmlzQXJyYXkoUSkmJihuPW4uY29uY2F0KFEpKSxnKVsxMl0oMTIsbikscCkubmV4dCgpOyFOLmRvbmU7Tj1wLm5leHQoKSlMPU4udmFsdWUsdHlwZW9mIHdpbmRvd1tMXT09PSJmdW5jdGlvbiI/UHJvbWlzZS5yZXNvbHZlKCkudGhlbih3aW5kb3dbTF0pOnR5cGVvZiBMPT09ImZ1bmN0aW9uIj9Qcm9taXNlLnJlc29sdmUoKS50aGVuKEwpOkwmJmNvbnNvbGUud2FybigicmVDQVBUQ0hBIGNvdWxkbid0IGZpbmQgdXNlci1wcm92aWRlZCBmdW5jdGlvbjogIisKTCl9cmV0dXJuIEV9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZihCPj4oKEI8PChaPVsyMiwyLDFdLFpbMl0pJjExKT09WlsxXSYmKG49SFs4XSgzMiwyMjkpKEooeigpLDQzKSkpLFpbMV0pPj0zJiYoQj4+WlsxXSY4KTxaWzFdKWE6e2lmKFE9KHA9Z1szNF0oMjcsSyxDKSxwW0tdLlU5KSx2PXBbSl0pe2I9eVszNl0oMTAseix2KSxBPVJbMzVdKDQ0LHosTFEseVs1XS5iaW5kKG51bGwsMTMpLHYsWVs1XS5iaW5kKG51bGwsNDMpKS5yZSxuPWZ1bmN0aW9uKFcsTix4KXtyZXR1cm4gUShXLE4seCxBLGIpfTticmVhayBhfW49UX1yZXR1cm4oQitaWzJdXlpbMF0pPj1CJiYoQitaWzJdXjkpPEImJihuPWgkLmNoYXJDb2RlQXQpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoQi0oKGY9WyJLWCIsNDUsMF0sQis0KT4+Mz49MSYmKEI8PDImNyk8MyYmKFo9Z1sxMl0oNixrWzQyXShmWzFdLEMsNCkpLFc9Wi5uZXh0KCkudmFsdWUsCk49Wi5uZXh0KCkudmFsdWUseD1aLm5leHQoKS52YWx1ZSxRPVoubmV4dCgpLnZhbHVlLG49Z1s3XSgzNiksTD1bZ1s0OF0oMjQsQSxXKSxJKFcsVyxwLEspLFlbMTJdKDE5LHYsYiksc2codix2KSxSWzE5XSgxLFEsSixXKSxtWzEyXSg5Nyx4LHopLG4sUlsxOV0oNjUsTix4LFcpLEdbMjRdKDI0LHgsT1syNV0oOSx4KSwxKSxtWzMzXSgzMSx2LE4sT1syNV0oOSx4KSksbVtmWzJdXSgxMCxuLE9bMjVdKDMseCksT1syNV0oNyxRKSldKSw2KT4+NHx8ei5BLnNldChLLEopLChCJjEwMSk9PUIpaWYoQz1bbnVsbCwhMSwyXSx6LnMzKCkhPUNbZlsyXV0mJnouczMoKSE9ZlsyXSYmei5zMygpIT0xMCYmei5zMygpIT02KWlmKFlbMzRdKDUsQ1syXSx6KSlrWzQ3XSg0Nix0aGlzLFlbMzRdKDMsQ1syXSx6KSksSj16LmF1KCksdGhpcy5DKEhvLFlbMzRdKDUsQ1syXSx6KSx6LERbMThdKDUsZVszMl0oNTIsSiw0KSkqNjAsITApO2Vsc2UgRFs0M10oNjksdGhpcyxDWzFdKTtlbHNlIEs9bmV3IEpQKDYwLAp6LmRIKCksbnVsbCxudWxsLG51bGwsei5saygpfHxDW2ZbMl1dKSx0aGlzLnYudltmWzBdXShLKSxEWzQzXSg3Mix0aGlzLENbMV0pO3JldHVybiBMfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoISgoQl43KT4+KGI9WyJjYWxsIiw0LDFdLGIpWzFdKSlaS1tiWzBdXSh0aGlzLHosS3x8cXouSigpLEopO2lmKChCXjMwKTwxMiYmKEI8PGJbMl0mNSk+PWJbMV0pVFtiWzBdXSh0aGlzLHopO3JldHVybiBDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCl7aWYoKGg9WzAsInYiLDE0XSxCKS01PDwyPj1CJiYoQi03fDEzKTxCKXtmb3IoUD0ocT1bXSxbMCwyLDNdKSxFPVBbaFswXV07RTxiLmxlbmd0aDtFKyspcVtFXT1iW0VdLlQoKTtmb3Iobj0oVj1uZXcgTjcsUFtoWzBdXSk7bjxiLmxlbmd0aDtuKyspe2lmKCh4PSgoWD0oYT1iW25dLEFycmF5LmZyb20ocVtuXSkpLFgpW1BbaFswXV1dPUhbMTJdKDIzLGEsClBbMl0sbTMsa1szXSgxMCkpLmxlbmd0aCxYW0NdKSx4KT09PTE5fHx4PT09MzF8fHg9PT0zMHx8eD09PTMyKWlmKFJbMzVdKDEsUFsxXSxWLFgpLHg9PT0zMD8oVltoWzFdXT1QWzJdLFJbMTddKDU1LFYpLGdbaFsyXV0oMzEsQyxWKSk6eD09PTMyPyhWW2hbMV1dPVBbMV0sZ1toWzJdXSg5NSxDLFYpKTpWW2hbMV1dPVBbMl0sUlsxN10oMjMsViksZ1toWzJdXSg2NCxDLFYpLHI9VltoWzFdXSxOPWtbMTVdKDgsSixWKSxOIT09MCl7Zm9yKEE9KFM9Yz0oUT0oTD1QW2hbMF1dLE4pPlBbaFswXV0pP24rQzpuLFE/MTotMSk7UT9TPGMrTjpTPmMrTjtTKz1BKWQ9dm9pZCAwLEwrPUEqKChkPXFbU10pPT1udWxsP05hTjpkLmxlbmd0aCk7aWYoVz0ocD1BcnJheSx2PUwscC5mcm9tKSxWLkEpdGhyb3cgRXJyb3IoKTsoKHU9KFo9KGY9Vy5jYWxsKHAsVi5NKSx2KSxbXSksYk4pKFopLHUucHVzaChaPj4+UFtoWzBdXSZ6KSx1LnB1c2goWj4+PjgmeiksdSkucHVzaChaPj4+SyZ6KSx1LnB1c2goWj4+PgoyNCZ6KSxmLnNwbGljZS5hcHBseShmLFtyLDRdLmNvbmNhdChlWzMzXSgyNyx1KSkpLFg9Zn1xW25dPVh9dD1xLmZsYXQoKX1yZXR1cm4gQisxPj4zPT0xJiYoeHkucHJvdG90eXBlLks9UlsyMF0oMywyMDQ4KSx0aGlzLnhKLmxlbmd0aD5oWzBdJiZ0aGlzLnhKLnB1c2godGhpcy54Si5zaGlmdCgpKSksdH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoISgoUT1bMTEsNzUsMV0sQnw5KT4+NCkpYTp7aWYoQz0oWVszN10oNyxKLEspLFpmKE51bWJlcihKKSkpLE51KEMpJiYoIUsmJiFnZHx8Qz49MCkpe3A9U3RyaW5nKEMpO2JyZWFrIGF9KGI9Si5pbmRleE9mKGVDKCkpLGIhPT0tMSkmJihKPUouc3Vic3RyaW5nKDAsYikpLHA9eVs0N10oMzIsOCx6LEopfXJldHVybihCKzkmNSk9PShCLSgoKChCKzUmUVswXSk9PTMmJihwPVJbNDhdKFFbMV0sSixLLGtbUVsyXV0oMTMsdm9pZCAwLEosQyx6KSx2b2lkIDApKSxCKzIpXjMyKTxCJiYoQi1RWzJdfDQ4KT49QiYmKHA9UlsxM10oMjMsCkhbMjVdKDU4LE9bOV0oMjQsUVsyXSkseiksW2dbMTZdKDk0LEspXSkpLFEpWzJdPj0xOCYmQi0zPj41PFFbMl0mJih2PVlbNDZdKDg3LEosYixBKSxBLkE9QS5BLnRoZW4odix2KS50aGVuKGZ1bmN0aW9uKG4sWixXKXtyZXR1cm4gR1sxM10oMjQsZnVuY3Rpb24oTix4LGYpe3g9WyhmPVsyLDYxLDFdLDMpLDEsMF07c3dpdGNoKE4uTSl7Y2FzZSB4W2ZbMl1dOmlmKFc9SyxaPUEudi5PLCFaKXtOLkdfKEopO2JyZWFrfXJldHVybiBOLnYoR1s0M10oZlsxXSx4W2ZbMl1dLG4ueWUoKSxaKSx4WzBdKTtjYXNlIHhbMF06Vz1OLlg7Y2FzZSBKOnJldHVybiBOLnYoZVsxOF0oMTYseFtmWzBdXSx4W2ZbMl1dLG4sQSxDKSx6KTtjYXNlIHo6cmV0dXJuIE4ucmV0dXJuKHtPWTpOLlgsb086V30pfX0pfSkscD1BLkEpLDQpJiYoQT1PW1FbMF1dKDU3LEssSisiTGVmdCIpLEM9T1tRWzBdXSg2MixLLEoreiksdj1PW1FbMF1dKDU4LEssSisiVG9wIiksYj1PW1FbMF1dKDU3LEssSisiQm90dG9tIiksCnA9bmV3IHozKHBhcnNlRmxvYXQoQykscGFyc2VGbG9hdCh2KSxwYXJzZUZsb2F0KEEpLHBhcnNlRmxvYXQoYikpKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoKChCfCgoUT1bImh0dHBzOi8vIiw0LDU1XSxCXlFbMl0pPDM3JiYoQis5JjMxKT49MjkmJihwPXtpeTpuZXcgeTYoUVswXSt6KyItc2lnbmFsZXItcGEuY2xpZW50czYuZ29vZ2xlLmNvbS9wdW5jdHVhbCIpLGZEOm5ldyB5NihRWzBdK3orIi1zaWduYWxlci1wYS5nb29nbGVhcGlzLmNvbS9wdW5jdHVhbCIpLFFYOiExfSksMykpPj5RWzFdPDEmJihCXjkxKT49LTY2JiYoQz1DPT09dm9pZCAwP2RvY3VtZW50OkMsdj0oQT0oYj1DKS5xdWVyeVNlbGVjdG9yKT09ej92b2lkIDA6QS5jYWxsKGIsSisiW25vbmNlXSIpLHA9dj09ej8iIjp2W1NFKCldfHx2LmdldEF0dHJpYnV0ZShTRSgpKXx8SyksQi04JjExKT09MSYmKHRoaXMudj16KSxCPj4yJjExKT09Mil0cnl7KG5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKG4pe24uZ2V0RW50cmllcygpLmZpbHRlcihmdW5jdGlvbihaKXtyZXR1cm4gWi5uYW1lPT09CktZfHxaLm5hbWU9PT1KNH0pLmZvckVhY2goZnVuY3Rpb24oWixXLE4seCxmLEwscixWKXsoeD0oZj0oTj1uZXcgKEw9KFc9YltWPVszOCwiVSIsInB1c2giXSxWWzFdXSxXKVtWWzJdXSxhOSksSFswXSg2NixOLHosWi5uYW1lPT09S1k/Mjo0KSksbVtWWzBdXSgyMCxKLEMsZixaLmR1cmF0aW9uKSkscj1tW1ZbMF1dKDE2LEosSyx4LFouc3RhcnRUaW1lKSxMKS5jYWxsKFcscil9KX0pKS5vYnNlcnZlKHt0eXBlOkNZKCksYnVmZmVyZWQ6ITB9KX1jYXRjaChuKXt9cmV0dXJuKEIrMl4zMSk+PUImJihCLTZeMjIpPEImJihwPSEhQy5yZWxhdGVkVGFyZ2V0JiZrWzQ2XSg3LHosSywxNixKLEMucmVsYXRlZFRhcmdldCkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKEItKChCLTZ8KHA9WzksOTEsInYiXSw0NikpPj1CJiYoQi0yfDI0KTxCJiYoQz1FcnJvci5jYWxsKHRoaXMsSyksdGhpcy5tZXNzYWdlPUMubWVzc2FnZSwic3RhY2siaW4gQyYmKHRoaXMuc3RhY2s9CkMuc3RhY2spLHRoaXMuY29kZT16LHRoaXMubWVzc2FnZT1LLHRoaXMuc3RhdHVzPUosT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsS1UucHJvdG90eXBlKSx0aGlzLm5hbWU9YlIoKSksNSleMjApPEImJihCLTJeMTgpPj1CJiYodGhpc1twWzJdXT1kay5KKCkuZ2V0KCkueWUoKSksQi1wWzBdfDIyKT49QiYmKEIrNl4yNSk8QiYmKGI9a1sxXSgxMix2b2lkIDAsSixwNSx6KSxDPXZvaWQgMCxDPUM9PT12b2lkIDA/MDpDLHY9KEE9SFsxNF0oNDYsSFs0XShwWzFdLGIsSikpKSE9Sz9BOkMpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3KXtpZigoQl45KT4+ND09KChCJigodz1bNSwzMSwiTSJdLChCLTJ8MjcpPj1CKSYmKEItMnwzOCk8QiYmTEQuY2FsbCh0aGlzLDQxNywxKSw4NSkpPT1CJiYoZj1KLnYuVTMoKSxXPWcwWzJdKDM2LHosSlt3WzJdXS52KSxMPUoudixyPURhdGUubm93KCktCkwubCxaPUoudix4PURhdGUubm93KCktWi5GLE49bmV3IEh0KGYsVyxyLHgsdixBLEMscCxiLEssUSxuKSxKLnZbd1syXV0uc2VuZChOKS50aGVuKEouUyxKLkEsSikpLDQpKWE6e2lmKChkPVsxLDEwLDZdLEEpaW5zdGFuY2VvZiBGNSl7c3c9SFsxMl0oMTQsYixkWzBdLFE4LGtbM10oMTUpKS5sZW5ndGg+MD9udWxsOkFbd1syXV0/QTQuYXBwbHkoRjUsZVszM10oMjAsQS52KSk6eUguYXBwbHkoRjUsZVszM10oNCxBLnYpKTticmVhayBhfWZvcihaPShxPShYPUFycmF5Lm9mLmFwcGx5KEFycmF5LGVbMzNdKDE5LEEudi52KSksZ1sxMl0oNixIWzEyXSgxOSxiLGRbMF0sUTgsa1szXSgxMykpKSkscS5uZXh0KCkpOyFaLmRvbmU7Wj1xLm5leHQoKSlzd2l0Y2goaD1aLnZhbHVlLEhbMjVdKDMseixoLEdHKSl7Y2FzZSA0OlgucHVzaChSWzhdKDcwLE9bMzZdKDM2LGRbMF0sT1syOV0oMjIsNCxoKSkpKTticmVhaztjYXNlIDI6WC5wdXNoKGtbNDddKDI0LE9bMzZdKDQsZFswXSxPWzI5XSgyMywKMixoKSkpKTticmVhaztjYXNlIGRbMl06WC5wdXNoKFJbOF0oNzEsbmV3IFp1KGcwWzZdKDksZFswXSx5WzQwXSgyMyx6LGgsa1sxXSgxMCx2b2lkIDAsaCxHRyxkWzJdKSkpKSkpO2JyZWFrO2Nhc2UgODpYLnB1c2goa1s0N10oMTYsbmV3IFp1KGcwWzZdKDExLGRbMF0seVs0MF0oMTUseixoLGtbMV0oMTEsdm9pZCAwLGgsR0csOCkpKSkpKTticmVhaztjYXNlIGRbMV06Y2FzZSA5OlgucHVzaChuZXcgekoobmV3IEokKGgpKSk7YnJlYWs7Y2FzZSBKOihmPShQPShOPShNPVgsTS5wdXNoKSxrWzFdKDEwLHZvaWQgMCxoLEdHLEopKSxlWzJdKDM2LFAsdm9pZCAwLGgpKSxOKS5jYWxsKE0sUls4XSg2NixmKSk7YnJlYWs7Y2FzZSBkWzBdOlY9KFE9a1sxXSgxMCx2b2lkIDAsKEU9KEw9WCxMLnB1c2gpLGgpLEdHLGRbMF0pLGVbMl0oMzYsUSx2b2lkIDAsaCkpLEUuY2FsbChMLGtbNDddKDQ4LFYpKTticmVhaztjYXNlIEs6Uz0obj1rWzFdKDExLHZvaWQgMCxoLEdHLCh1PShVPSh2PVgsCnZvaWQgMCksdi5wdXNoKSxLKSksSFs0XSg5NCxuLGgsdm9pZCAwLHZvaWQgMCxlWzM1XS5iaW5kKG51bGwsOCkpKSx1LmNhbGwodixrWzQ3XSgzMiwoVT1TKT09ej92b2lkIDA6bmV3IFVpbnQ4QXJyYXkoZ1szMF0oNywyLFUpfHwwKSkpO2JyZWFrO2Nhc2Ugd1swXTooYz0oVz1rWzFdKDEyLHZvaWQgMCwoeD0ocj0oYT12b2lkIDAsWCkscikucHVzaCxoKSxHRyx3WzBdKSxIKVs0XSg4OSxXLGgsdm9pZCAwLHZvaWQgMCxlWzM1XS5iaW5kKG51bGwsOSkpLHgpLmNhbGwocixSWzhdKDY4LChhPWMpPT16P3ZvaWQgMDpuZXcgVWludDhBcnJheShnWzMwXSgxMSwyLGEpfHwwKSkpO2JyZWFrO2Nhc2UgMTI6aWYodD1nWzI5XSgxOCwwLDIsbVsxMl0oODIsMTIsU3QsaCxHRykpLHQ9PT1udWxsKXtzdz16O2JyZWFrIGF9WC5wdXNoKG5ldyB6Sih0KSk7YnJlYWs7Y2FzZSBDOmlmKHA9Z1syOV0oMTYsMCwyLG1bMTJdKDUwLEMsU3QsaCxHRykpLHA9PT1udWxsKXtzdz16O2JyZWFrIGF9WC5wdXNoKFJbOF0oNjksCnApKTticmVhaztjYXNlIDEzOlgucHVzaChuZXcgekoobnVsbCkpO2JyZWFrO2Nhc2UgMDpYLnB1c2gobmV3IHpKKG5ldyBKJChoKSkpO2JyZWFrO2RlZmF1bHQ6c3c9ejticmVhayBhfXN3PUEudlt3WzJdXT9BNC5hcHBseShGNSxlWzMzXSgzLFgpKTp5SC5hcHBseShGNSxlWzMzXSgxOSxYKSl9cmV0dXJuKEJeMjIpJjExfHwoQz16PT09dm9pZCAwP3t9OnosSz1DLm9OPT09dm9pZCAwP3t9OkMub04sSj1DLlJOPT09dm9pZCAwPyExOkMuUk4sdGhpcy5vTj1LLHRoaXMuQXU9Qy5BdT09PXZvaWQgMD92b2lkIDA6Qy5BdSxiPUMubWQ9PT12b2lkIDA/ITE6Qy5tZCx0aGlzLkRpPUE9Qy5EaT09PXZvaWQgMD9udWxsOkMuRGksdGhpcy5WWD1DLlZYPT09dm9pZCAwP251bGw6Qy5WWCx0aGlzLlJOPUosdGhpcy5tZD1iKSxzd30sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKEItOHwyNCk8KChKPVs0LCJjYWxsIiwyXSxCKzc+PjEpPEImJkItOTw8SlsyXT49QiYmKHRoaXMudj16KSxCKSYmKEIrCjVeSlswXSk+PUImJihMRFtKWzFdXSh0aGlzLDYxNCwyMyksdGhpcy5WPXRoaXMuTT10aGlzLlg9LTEsdGhpcy5pPWdbN10oMzcpKSxLfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChDPVsicmVwbGFjZSIsIldoIiwyXSxCPj5DWzJdJjd8fChKPW5ldyB6LEpbQ1sxXV09ZnVuY3Rpb24oKXtyZXR1cm4gS30sYj1KKSxCKS03XjMwKTxCJiYoQi02XjE2KT49QiYmKEo9eltDWzBdXSgvPFwvL2csdjYoKSlbQ1swXV0oL1xdXF0+L2csVDMoKSksYj1LP0pbQ1swXV0oL3svZyxqRigpKVtDWzBdXSgvfS9nLHBZKCkpW0NbMF1dKC9cL1wqL2csUXgoKSlbQ1swXV0oL1xcJC8sblkoKSk6SiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigoKCgoKEImMjkpPT0oUT1bImNvbmZpZyIsMzgsMzFdLChCfDMpPj40fHwodj17ZjE6ITAsWEo6WlcoKSxpQjp2b2lkIDAsYUE6T2JqZWN0LmFzc2lnbih7fSx7Z3Nlc3Npb25pZDpifSxBW1FbMF1dLnYucFgoKSksZ1Q6IUFbUVswXV0uSG8sCkhvOkFbUVswXV0uSG8sZUM6QVtRWzBdXS5NLFZvOkFbUVswXV0udi5SMCgpLGRUOkFbUVswXV0udi50SygpfSxwPUEuWmkoRFszNF0oMjQsMTAsIi0iLCEwLEFbUVswXV0pLnRvU3RyaW5nKCksdiksZVszNl0oMTEsQS52LHAsImEiLGZ1bmN0aW9uKFosVyxOKXtaPShOPVsxLDAsKFc9QS5NLCJBIildLFcuTShuZXcgVzYpLGdbMzRdKDE5LE5bMF0sbmV3IHpGLE5bMV0pKTt0cnl7V1tOWzJdXS5uZXh0KFopfWNhdGNoKHgpe319KSxlWzM2XSg5LEEudixwLCJiIixmdW5jdGlvbihaLFcpeygoKChXPVsxMywidiIsIk0iXSxaPUFbV1syXV0sWilbV1syXV0obmV3IGdLKSxaKVtXWzFdXT12b2lkIDAsSFsyOV0oNyxKLFopLEEpLnN0YXRlPUMsRFsxNV0oV1swXSwwLCEwLEEuY2hhbm5lbCksRylbMjVdKDE0LEFbV1sxXV0pfSksZVszNl0oOSxBLnYscCxLLGZ1bmN0aW9uKFosVyxOLHgsZixMKXtMPVs5LDEsKGY9WzMyLDAsbnVsbF0sNDYpXSxaLmRhdGEmJkFycmF5LmlzQXJyYXkoWi5kYXRhKSYmClouZGF0YS5sZW5ndGg9PT0xJiYoWi5pJiZaLmk9PT0ic3RhdHVzIj8oTj1nW0xbMl1dKDEzLGZbMF0sZlsyXSx6RixaLmRhdGFbZltMWzFdXV1bZltMWzFdXV0pLFc9QS5NLHlbMzNdKDExLEosTikhPT0wJiYoVy5NKG5ldyBOaShPW0xbMl1dKDIsZlswXSxmW0xbMV1dLE4pKSksR1tMWzBdXSg1NyxMWzFdLDIsVyxOKSkpOih4PWdbTFsyXV0oMTUsZlswXSxmWzJdLE9nLFouZGF0YVtmW0xbMV1dXSksQS5YKHgpKSl9KSxlWzM2XSgzLEEudixwLHosZnVuY3Rpb24oWixXKXsoQS5NW1c9WyJETSIsInYiLCJvbkVycm9yIl0sV1syXV0oWiwobmV3IHhSKEEuY2hhbm5lbFtXWzFdXSkpW1dbMV1dW1dbMF1dKSxaLnN0YXR1cykhPT0wJiYoQS5zdGF0ZT1DKX0pLG49cCksQikmJih0aGlzLlg9eix2PVshMSxudWxsLDFdLGI9dGhpcyx0aGlzLlc9Syx0aGlzLk89dlswXSx0aGlzLnN0cmVhbXM9bmV3IE1hcCx0aGlzLmw9bmV3IHgxLHRoaXMubz0wLHRoaXMuQT1uZXcgeDEsdGhpcy5zdGF0dXM9Cm5ldyBqTShuZXcgekYpLHRoaXMuSD1uZXcgRFcsdGhpcy5GPTAsdGhpcy5SPVtdLHRoaXMuaT1bXSx0aGlzLm09dlswXSx0aGlzLlU9bmV3IHdFLHRoaXMuTT1mdW5jdGlvbihaKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKFcsTil7KFc9Yi5YLmR6KT09bnVsbHx8KE49Vy52KT09bnVsbHx8Ti5jYWxsKFcsWil9KS5jYXRjaChmdW5jdGlvbigpe30pfSwoKEM9dGhpcy5YLmR6KT09dlsxXT8wOkMudikmJmVbMzZdKDgsdGhpcy5VLGdbMjNdKDQ3KSx3eCxmdW5jdGlvbihaKXtiLk0oWil9KSx0aGlzLkEuaHMoZVsxNV0oMSwhMCx2WzFdLHZbMF0sZnVuY3Rpb24oWil7cmV0dXJuIHlbMzNdKDQ0LDEsWik9PT0wP1Byb21pc2UucmVzb2x2ZSgpOm5ldyBQcm9taXNlKGZ1bmN0aW9uKFcpe09bMl0oNTYsVyw1MDApfSl9KSkuc3Vic2NyaWJlKHRoaXMuc3RhdHVzKSx0aGlzLkM9bmV3IGZZLHRoaXMuUk89KEo9KEE9ei5STyk9PXZbMV0/dm9pZCAwOkEuaHMoR1s0NV0oMTYsdlsxXSwKdlswXSxmdW5jdGlvbigpe3JldHVybiBvVH0pLExZKG9UKSkpIT12WzFdP0o6b1QsSFsyOV0oUVsxXSx2WzJdLHRoaXMpKSxCPj4xKSY3KT09MiYmKHRoaXMudj16KSxCKV44OCk+PjM9PTEpbVszNl0oNDEsZnVuY3Rpb24oWil7cmV0dXJuIEFycmF5LmlzQXJyYXkoWil9LFJUKCkpO3JldHVybihCfDcyKT09QiYmKEM9Sy51P0sudSgpOkspJiYoSj9lW1FbMl1dLmJpbmQobnVsbCw0MSk6Z1syNl0uYmluZChudWxsLDEpKShDLFt6XSksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZighKChCXih2PVsiVyIsIk0iLDEwN10sKEI+PjEmMTMpPT00JiYoQT1tWzIzXSgyNSwiQTdLcGFFQVNmaERjSzBuWHhnUUV5eVl2IixLLHosbCkpLDUzKSk+PjQpKWE6e2lmKChKPVs5MCwxMTEsMTg4XSxLPj00OCYmSzw9NTd8fEs+PTk2JiZLPD0xMDYpfHxLPj02NSYmSzw9SlswXXx8a2UmJks9PTApe0E9ITA7YnJlYWsgYX1zd2l0Y2goSyl7Y2FzZSAzMjpjYXNlIDQzOmNhc2UgNjM6Y2FzZSA2NDpjYXNlIHZbMl06Y2FzZSAxMDk6Y2FzZSAxMTA6Y2FzZSBKWzFdOmNhc2UgMTg2OmNhc2UgNTk6Y2FzZSAxODk6Y2FzZSB6OmNhc2UgNjE6Y2FzZSBKWzJdOmNhc2UgMTkwOmNhc2UgMTkxOmNhc2UgMTkyOmNhc2UgMjIyOmNhc2UgMjE5OmNhc2UgMjIwOmNhc2UgMjIxOmNhc2UgMTYzOmNhc2UgNTg6QT0KITA7YnJlYWsgYTtjYXNlIDE3MzpjYXNlIDE3MTpBPWhYO2JyZWFrIGE7ZGVmYXVsdDpBPSExO2JyZWFrIGF9fXJldHVybigoQjw8MSYoQi0yPj4zPj0wJiZCLTg8MTkmJihYZy5jYWxsKHRoaXMsTU4pLHRoaXMuSD17fSx0aGlzLnY9MCksMjMpKT09NCYmVC5jYWxsKHRoaXMseiksKEI8PDEmMTQpPT0yKSYmKEM9WzEsbnVsbCw1XSxwUS5jYWxsKHRoaXMpLHRoaXMuTz0wLEs9dGhpcyx0aGlzLks9Q1swXSx0aGlzW3ZbMF1dPS0xLHRoaXMubD1DWzFdLHRoaXMuQT10aGlzLmd6PTAsdGhpcy5Cbz16LkJvfHxmdW5jdGlvbigpe30sdGhpcy5GPUNbMV0sdGhpcy5IPS0xLHRoaXNbdlsxXV09W10sdGhpcy5VPSIiLHRoaXMuclE9ei5yUSx0aGlzLmk9bmV3IHJLKHouclEsei5ZQSksdGhpcy5jdj16LmN2fHxDWzFdLHRoaXMuQ0Q9ei5DRHx8ITEsdGhpcy5SPXoueFp8fENbMV0sdGhpcy5Ycj16LlhyfHxDWzFdLHRoaXMubkQ9ei5uRHx8Q1sxXSx0aGlzLndpdGhDcmVkZW50aWFscz0hei5pRCwKdGhpcy5ZQT16LllBfHwhMSx0aGlzLm89dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyE9PSJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKE5tKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoTm0oKSkpLnNlYXJjaFBhcmFtcy5zZXQsSj1nWzQxXSg1LENbMF0sbmV3IFJqKSxHWzQwXSgyMixDWzJdLEosdGhpcy5pKSx0aGlzLlg9bmV3IFZ4KDFFNCksYj1tWzIwXSg2Nix6LlNGLHRoaXMpLHRoaXMudj1uZXcgRzModGhpcy5YLmdldFZhbHVlKCksYiksdGhpcy5DPW5ldyBHMyg2RTUsYiksdGhpcy5DRHx8dGhpcy5DLnN0YXJ0KCksdGhpcy5ZQXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoSDYsZnVuY3Rpb24ocCxRKXtkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0oUT1bMTEsMzgsbnVsbF0sImhpZGRlbiIpJiYoZ1tRWzBdXShRWzFdLCExLEspLChwPUsuRik9PVFbMl18fHAuZmx1c2goKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGVGLGZ1bmN0aW9uKHAsUSl7KGdbUT1bNiwKbnVsbCwxMV0sUVsyXV0oUVswXSwhMSxLKSxwPUsuRik9PVFbMV18fHAuZmx1c2goKX0pKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoISgoKCgoQl4oWj1bMzYsMiwiTSJdLDU4KSkmNyk9PTMmJihXPUdbMTNdKDMzLGZ1bmN0aW9uKE4seCxmLEwscixWLFAscSxjLEUpe0U9KEw9W251bGwsMTMsMF0sWyJ2IiwiVTMiLDddKTtzd2l0Y2goTi5NKXtjYXNlIEs6cmV0dXJuIE5bRVswXV0odltFWzBdXS5NLnNlbmQobmV3IFRaKEEpKSxKKTtjYXNlIEo6aWYoKG49Ti5YLG4pLnMzKCkpcmV0dXJuIFA9Ti5yZXR1cm4sYz1uLnMzKCksUC5jYWxsKE4sbmV3IEpQKDAsIiIsUDZbY118fFA2W0xbMl1dLCEwKSk7aWYoKFE9KChWPShSWzQwXSgxNiwxLG4ueG4oKSksbi56dSgpKSkmJk9bMzZdKDEsTFsyXSxWKSx2Lk8oe2lkOm51bGwsdGltZW91dDpudWxsLGtBOjFFMyxieTpZWzE5XSg2OSxDLG4pPzE6bnVsbH0pLG5bRVsxXV0oKSksIWIpfHwhWVsxOV0oMzcsCkxbMV0sbikpe04uR18oNCk7YnJlYWt9cmV0dXJuIE5bRVswXV0oR1s0M10oNjIsSyxBLnllKCksYikseik7Y2FzZSB6OnA9Ti5YLFE9R1szNF0oMjMsNCxSWzZdKEVbMl0sSixnWzQ3XSg1LExbMF0sSyxuZXcgQ0QsbltFWzFdXSgpKSxwKSk7Y2FzZSA0OnJldHVybiBmPU4ucmV0dXJuLHE9USx4PW4uVkEoKSx4PT1MWzBdfHxUMih4KSxyPXghPUxbMF0/RFsxOF0oNSx4KTp2b2lkIDAsZi5jYWxsKE4sbmV3IEpQKHIscSxudWxsLG51bGwsbi53VigpLG4ubGsoKSxuLmJrKCk/bi5iaygpLnllKCk6bnVsbCkpfX0pKSwoQiY0Nyk9PUImJihlW1pbMF1dKDEyLEssS1taWzJdXSx6LGZ1bmN0aW9uKCl7cmV0dXJuIEsubChuZXcgWW4sbjYpfSksSj1LW1pbMl1dLnUoKSxlW1pbMF1dKDEyLEssSiwkUixmdW5jdGlvbihOKXtOPVsiY2xhc3NMaXN0IiwicmVtb3ZlIiwiYWRkIl0sSltOWzBdXS5jb250YWlucyhxaSgpKSYmKEpbTlswXV1bTlsxXV0ocWkoKSksSltOWzBdXVtOWzJdXShpUigpKSwKdGhpcy5OeC5zZW5kKE8zKSl9KSxlW1pbMF1dKDUsSyxKLHl4LGZ1bmN0aW9uKE4pe0pbTj1bImNsYXNzTGlzdCIsInJlbW92ZSIsImNvbnRhaW5zIl0sTlswXV1bTlsyXV0oaVIoKSkmJihKW05bMF1dW05bMV1dKGlSKCkpLEpbTlswXV0uYWRkKHFpKCkpLHRoaXMuTnguc2VuZChPMykpfSkpLChCK1pbMV1eMzIpPj1CJiYoQi0zfDgwKTxCKSYmKFc9WVJbS118fChZUltLXT1uZXcgZXQoSyxLPHo/LTE6MCkpKSxCKS1aWzFdJjI4KSlhOntpZighSy5vKXtXPWZ1bmN0aW9uKCl7fTticmVhayBhfUo9ZnVuY3Rpb24oKXtLLmZsdXNoKCl9LFc9ej9mdW5jdGlvbigpe3ooKS50aGVuKEopfTpKfXJldHVybihCJjU4KT09QiYmKEM9Qz09PXZvaWQgMD9uZXcgTWFwOkMsYj1iPT09dm9pZCAwP251bGw6YixHWzM5XSg2KSxBPW5ldyBNZXNzYWdlQ2hhbm5lbCxLLnBvc3RNZXNzYWdlKHJ0LHlbMTZdKDEseixKKSxbQS5wb3J0Ml0pLFc9bmV3IEdIKEEucG9ydDEsQyxiLEosQSkpLFd9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRKXtpZighKEIrNSYoKEI+PjEmKHA9WyJjb250cm9sbGVyIiwiY2FsbCIsMTVdLDcpKT09MiYmKEo9W251bGwsNiwxRTRdLGRrLkooKS5pbml0KFlbNDBdKHBbMl0sMix6KSksSz1KWzBdLFlbNDRdKDI2LGZ1bmN0aW9uKG4sWixXLE4seCxmKXtOPShXPVlbNDBdKChmPVsyLCJrIiwzXSxmKVsyXSxmWzBdLHopLGVbZlswXV0oMzUsZlswXSxsLFcpKSxaW2ZbMV1dPU4sSyYmKHg9Sy5VMygpKSYmKFoudD14KX0pLEs9bmV3ICRVLEsucmVuZGVyKEdbcFsyXV0oMzgpKSxDPW5ldyBxNShEWzhdKDkzLEhbNF0oOTAsSlsxXSx6LGwpKXx8MCxEWzhdKDczLEhbNF0oOTMsNyx6LGwpKXx8SlsyXSksdGhpc1twWzBdXT1uZXcgYzYoSyxuZXcgU0YsQykpLDExKSkpYTp7Zm9yKHY9KGI9W3o9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLEMsej09dHlwZW9mIHdpbmRvdyYmd2luZG93LHo9PXR5cGVvZiBzZWxmJiZzZWxmLHo9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sCkopO3Y8Yi5sZW5ndGg7Kyt2KWlmKChBPWJbdl0pJiZBW0tdPT1NYXRoKXtRPUE7YnJlYWsgYX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO31pZighKEI+PjEmMTEpKUFycmF5LnByb3RvdHlwZS5mb3JFYWNoW3BbMV1dKChiLnZ8fGRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKHorbTQpLGZ1bmN0aW9uKG4sWixXLE4pe1c9Wj09KE49WzM2LDMyLDM1XSxZW05bMl1dKDQ4LG4sQyxlW05bMF1dKE5bMV0sSix0aGlzKS55LUErSyksMCk/bFIoKTpFZygpLFlbTlsyXV0oTlsxXSxuLHY/e2xlZnQ6IjEwMCUiLHJpZ2h0OiIiLCJib3JkZXItbGVmdC1jb2xvciI6VywiYm9yZGVyLXJpZ2h0LWNvbG9yIjoidHJhbnNwYXJlbnQifTp7bGVmdDoiIixyaWdodDoiMTAwJSIsImJvcmRlci1yaWdodC1jb2xvciI6VywiYm9yZGVyLWxlZnQtY29sb3IiOiJ0cmFuc3BhcmVudCJ9KX0sYik7cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTiwKeCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCl7aWYoKCgoYjM9WyJ2IiwyNSwiYWRkIl0sQisxPj40Pj0yJiYoQl44NSk+PjQ8MSkmJihKPUsuTSx6OD1KLmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxKLmNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8Si53ZWJraXRDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEoubW96Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxKLm9DYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEoubXNDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHopLEIpJjQzKT09Qil7Zm9yKE49KE09WyhVPVsiRk9PVEVSIiwyNjU0NDM1NzY5LDVdLG49ZG9jdW1lbnQuYm9keSxuZXcgWEwoMCxuLm9mZnNldEhlaWdodCpuLm9mZnNldFdpZHRoLG4sMCkpXSxuZXcgU2V0KTtNLmxlbmd0aD4wJiZOLnNpemU8Szspe2lmKChYPU1bMF0sWj1NLnBvcCgpLE0ubGVuZ3RoKSE9PTApZm9yKE1bMF09Wix2PTA7djw9Ck0ubGVuZ3RoPj5KOyl7aWYoKFY9KFM9KEI4PShjPU1bYT0oeD12b2lkIDAsKHU9dm9pZCAwLHQ9dm9pZCAwLHYpPDxKKSx2XVtiM1swXV0sdD0odT1NW2I9dm9pZCAwLGFdKT09ej92b2lkIDA6dVtiM1swXV0pIT16P3Q6LTEsKHY8PEopK0opLChiPSh4PU1bU10pPT16P3ZvaWQgMDp4W2IzWzBdXSkhPXo/YjotMSksQjgpPmMmJkI4Pj1WKWY9YTtlbHNlIGlmKFY+YylmPVM7ZWxzZSBicmVhazt2PShNW2ZdPShNW3ZdPU1bQT1NW3ZdLGZdLEEpLGYpfWlmKHI9KCgodz15WzQ4XSgoVz0oSlk9KEw9WCxMKSxKWS5lbGVtZW50KSx3PUpZLk0sOSksVVsyXSx3LFcudGFnTmFtZSksVy5pZCkmJih3PXlbNDhdKDQsVVsyXSx3LFcuaWQpKSxXLmNsYXNzTmFtZSkmJih3PXlbNDhdKDgsVVsyXSx3LFcuY2xhc3NOYW1lLnRvU3RyaW5nKCkpKSxXLnR5cGUpKXc9eVs0OF0oNSxVWzJdLHcsciksVy5uYW1lJiYodz15WzQ4XSgxMixVWzJdLHcsVy5uYW1lKSk7Zm9yKGQ9KEpZLmRlcHRoPj00JiZOW2IzWzJdXSh1Uih3LApVWzFdKSksZ1sxMl0oMTEsVy5jaGlsZHJlbikpLFE9ZC5uZXh0KCk7IVEuZG9uZTtRPWQubmV4dCgpKXtpZihQPVEudmFsdWUsaD1QLm9mZnNldEhlaWdodCpQLm9mZnNldFdpZHRoLFAudGFnTmFtZT09Q3x8UC50YWdOYW1lPT1VWzBdKWg9Sjtmb3IocT0oc3c9KEU9bmV3IFhMKHcsaCwocD1NLFApLEpZLmRlcHRoK0opLHAubGVuZ3RoKSxwLnB1c2goRSksRSlbYjNbMF1dO3N3PjAmJnBbc3c+PkpdW2IzWzBdXTxxOylwW3N3XT1wW3N3Pj5KXSxwW3N3Pj5KXT1FLHN3Pj49Sn19ejg9Tn1yZXR1cm4oQl4oQi0oKEIrN15iM1sxXSk8QiYmKEItN3w1MSk+PUImJihBPVlbNDZdKDg2LEosQyxiKSxiLkE9Yi5BLnRoZW4oQSxBKS50aGVuKGZ1bmN0aW9uKGpOKXtyZXR1cm4gZVs0Nl0oOCxLLGpOLlQoKSx6KX0pLHo4PWIuQSksMik+PjM9PTMmJih6OD1SYj8hIVo4JiZaOC5icmFuZHMubGVuZ3RoPjA6ITEpLDc5KSkmMjN8fCh6OD1IWzhdKDEyLDg2ODMpKEooeigpLDUpKS5sZW5ndGglMj09CjA/NTo0KSx6OH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKChiPVs0OCxudWxsLDZdLEItM3wxNyk8QiYmQi1iWzJdPDwxPj1CJiYoQT15WzM4XSg0LEMsZVtiWzBdXSg5NixiWzFdLHopLEssSikpLChCPj4xJjIpPj0wKSYmKEJ8Nyk8MTUmJihBPVByb21pc2UucmVzb2x2ZShSWzI5XSgyMywxOCwyMyx6LEspKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgoQi00PDwxPCgocD1bMywiY2FsbCIsMTNdLChCXjcyKSYyOSl8fChDPWQ0LmluZGV4T2YoSiksQyE9PS0xJiYoZDQuc3BsaWNlKEMseiksZDQubGVuZ3RoPT09MCYmKFgyPVBJPUspKSksQikmJkItMTw8MT49QiYmKEs9fnouTXgrMXwwLHY9Z1sxMV0oNTYsfnouaCshS3wwLEspKSwoQnw2KT4+cFswXSk9PXBbMF0mJih0aGlzLnY9eiksQis0JnBbMl0pPT00KXlbMTldKDE4LEsseixHWzhdKDYsQSxDfHxEW3BbMF1dLmJpbmQobnVsbCw5KSxifHxudWxsKSxKKTtyZXR1cm4oQnw0KT4+cFswXT09MiYmCihCY3x8czR8fEZmfHxJMj9HRFtwWzFdXSh0aGlzLGFULndpZHRoLGFULmhlaWdodCxJeCxhZyk6R0RbcFsxXV0odGhpcyxoNC53aWR0aCxoNC5oZWlnaHQsSXgsYWcpLHRoaXMuZz10aGlzLnY9bnVsbCx0aGlzLkg9QmN8fHM0fHxGZnx8STIsdGhpcy5YPW5ldyBlWSgiIiksZ1sxNF0oMjUsZEssdGhpcy5YKSx5WzQzXSg0Mix0aGlzLlgsdGhpcyksdGhpcy5qPW5ldyBxbSx5WzQzXSg1Nix0aGlzLmosdGhpcyksdGhpcy5DPW51bGwpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKHY9WzEsImZpbmQiLDZdLEIpPj52WzBdJnZbMl18fChDPWtSKHopLCh0eXBlb2YgSj09PSJzdHJpbmciP1tKXTpKKS5mb3JFYWNoKGZ1bmN0aW9uKFEpe2lmKFE9PT0ibnVsbCIpdGhyb3cgRXJyb3IoIlJlY2VpdmluZyBmcm9tIG51bGwgb3JpZ2luIG5vdCBhbGxvd2VkIHdpdGhvdXQgdG9rZW4gdmVyaWZpY2F0aW9uLiBQbGVhc2UgdXNlIE51bGxPcmlnaW5Db25uZWN0b3IuIik7Q1tRXT0KS30pLHA9ZnVuY3Rpb24oUSl7cmV0dXJuIENbUV09PT0hMH0pLEJ8MTYpPT1CKWE6e2lmKCEoQz1BcnJheS5mcm9tKFBQKCRwKSlbdlsxXV0oZnVuY3Rpb24oUSl7cmV0dXJuIFEudHlwZT09PXFMfSksQykpe3A9ejticmVhayBhfXA9KEE9KGI9QXJyYXkuZnJvbShQUCgkcCkpLmZpbHRlcihmdW5jdGlvbihRKXtyZXR1cm5bdDQsZWQsQVJdLmluY2x1ZGVzKFEudHlwZSl9KS5zbGljZShKLEspLmZpbHRlcihmdW5jdGlvbihRKXtyZXR1cm4gUS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihDKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HfSkuZmlsdGVyKE9bMjNdLmJpbmQobnVsbCwxNikpLnJldmVyc2UoKVt2WzFdXShmdW5jdGlvbihRKXtyZXR1cm4gUS52YWx1ZX0pKT09ej92b2lkIDA6Yi52YWx1ZSkhPXo/QTpudWxsfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoKEJ8KG49WzMyLDQyLDBdLDcpKT4+MykpYTp7aWYoSyBpbnN0YW5jZW9mCkliKXtRPUsudjticmVhayBhfXRocm93IEVycm9yKHopO31pZigoQj4+MSYxNSk9PTQpe2ZvcihBPSh2PShiPWI9PT12b2lkIDA/TTU6YixnKVsxMl0oNyxKLkEpLHYubmV4dCgpKTshQS5kb25lO0E9di5uZXh0KCkpSFszNF0oMTQsSyxKLEEudmFsdWUpOyhuZXcgUHJvbWlzZSgoSi5BLmxlbmd0aD16LGZ1bmN0aW9uKFosVyl7SFszNF0oMyxLLEosbmV3IHdGKG51bGwsMCxDLDAsMixNNSxiK1lqKCksWixXKSl9KSkpLmNhdGNoKGcwWzRdLmJpbmQobnVsbCwyOCkpfWlmKChCPDwxJjIzKT09MiYmKEM9W251bGwsMTYsITFdLEE9T1syM10oNjYsQ1syXSxuWzJdLENbblsyXV0sQ1sxXSxLKSxBIT1DW25bMl1dKSl7c3dpdGNoKHR5cGVvZiBBKXtjYXNlICJzdHJpbmciOk9bMTldKDcsQ1sxXSxDW25bMl1dLEEpfWlmKEEhPUNbblsyXV0pc3dpdGNoKERbMjJdKDY3LG5bMl0seixKKSx0eXBlb2YgQSl7Y2FzZSAibnVtYmVyIjooYk4oKHY9ei52LEEpKSxrKVsxMl0oNixuWzJdLEEpLGVbMjhdKG5bMV0sCk9PLHhPLHYpO2JyZWFrO2Nhc2UgImJpZ2ludCI6KGI9RFsxM10oODQsblswXSxxMSxBLFJbMzFdLmJpbmQobnVsbCw2KSksZSlbMjhdKDEzLGIuTSxiLnYsei52KTticmVhaztkZWZhdWx0OnA9T1sxOV0oMTUsQ1sxXSxDW25bMl1dLEEpLGVbMjhdKDEyLHAuTSxwLnYsei52KX19aWYoKEJ8ODApPT1CKWE6e3N3aXRjaChiKXtjYXNlIHo6UT1BP1VnOk1pO2JyZWFrIGE7Y2FzZSBLOlE9QT93SzpJVDticmVhayBhO2Nhc2UgNDpRPUE/Rkw6Qmo7YnJlYWsgYTtjYXNlIDg6UT1BP3NDOnpyO2JyZWFrIGE7Y2FzZSBKOlE9QT9LYTpKOTticmVhayBhO2Nhc2UgblswXTpRPUE/Q2E6Ykc7YnJlYWsgYTtjYXNlIEM6UT1BP0E5OnZqO2JyZWFrIGF9dGhyb3cgRXJyb3IoVHIpO31yZXR1cm4oQl41Nyk8MzMmJihCPj4yJjMxKT49MTMmJihiPWtWKEssSiksKEM9Yj49eikmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChLLGIsMSksUT1DKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEItCjJ8KChCfChDPVszLDI3LDVdLDI0KSk9PUImJih6LmtleUNvZGU9PTEzP0hbMThdKDM0LCExLHRoaXMpOnRoaXMuSCYmdGhpcy52JiZnWzhdKENbMF0sIiAiLHRoaXMudikubGVuZ3RoPjAmJnRoaXMubUooITEpKSw2NCkpPEImJkItODw8Mj49QiltWzM2XSgzOCxmdW5jdGlvbihBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFNldH0sanIoKSk7cmV0dXJuKCgoQi03fENbMF0pPEImJkIrQ1syXT4+MT49QiYmKHBhLmNhbGwodGhpcyksdGhpcy5zdGF0dXM9MSx0aGlzLmVycm9yQ29kZT16KSxCLUNbMl0+PkNbMl08MSYmQisxPj0yMCYmKGI9bVsyM10oMzAsSixLLHopKSxCKSsxJjI5KTxCJiYoQi05XkNbMV0pPj1CJiZ6LmtleUNvZGU9PTEzJiZ0aGlzLnYuZ2V0VmFsdWUoKS5sZW5ndGg9PTYmJih0aGlzLlguZ2IoITEpLEhbMThdKDM1LCExLHRoaXMsInQiKSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQnwzMik9PShBPVsxMyw1OCxudWxsXSxCKSl7Zm9yKGI9KEs9KEM9KEo9ClJbOF0oQVsxXSx0aGlzKSxbXSksaylbMjFdKDIxLHRoaXMpLDEpO2I8ejtiKyspQy5wdXNoKGtbMjFdKEFbMF0sdGhpcykpO3RoaXMueEpbSl09Sy5hcHBseShBWzJdLGVbMzNdKDIwLEMpKX1pZighKEItMiYoKEI8PDImOCk8NSYmKEJeNTApPj4zPj0xJiZULmNhbGwodGhpcyx6KSwxMCkpKUhbMF0oNjgsSywxLHopO3JldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKCgocD1bMiwzLCJ0YXJnZXQiXSwoQi0xfDYpPj1CKSYmKEItcFswXXwyMik8QiYmKEM9SFsxNV0oNjQsMTIpLEE9W21bMTJdKDk1LEMsSildLGI9UWkoQSksdj1uZXcgcU8oWVszNF0oNyx6LGIudikseVsxMl0oODAsSyxwWzBdLGIudixrW3BbMV1dKDE0KSkuc2xpY2UoKSxiLk0pKSxCKSY1NSk9PUIpYTp7aWYoKEs9ei5sZW5ndGgsSyk+MCl7Zm9yKEo9QXJyYXkoSyksQz0wO0M8SztDKyspSltDXT16W0NdO3Y9SjticmVhayBhfXY9W119cmV0dXJuKEItMSYxMyk+PSgoKChCJjEwNik9PUImJgoodGhpcy50eXBlPXosdGhpc1twWzJdXT1LLHRoaXMuWD0hMSx0aGlzLk09dGhpc1twWzJdXSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEpLEIpJjEyNCk9PUImJih0aGlzLm5leHQ9ZnVuY3Rpb24oUSxuLFope3JldHVybiBPWzE1XSgyMSwoWj1bIlciLCJQIixudWxsXSwhMCksei52KSx6LnZbWlswXV0/bj1nMFszXSg0MywhMSxRLHoudltaWzFdXSx6LHoudltaWzBdXS5uZXh0KTooei52W1pbMV1dKFEpLG49RFsxMF0oMSxaWzJdLHopKSxufSx0aGlzWyJ0aHJvdyJdPWZ1bmN0aW9uKFEsbixaKXtyZXR1cm4oT1sxNV0oMTksITAsKFo9WyJXIiw2NCwzXSx6LnYpKSx6LnZbWlswXV0pP249ZzBbWlsyXV0oNDQsITEsUSx6LnYuUCx6LHoudltaWzBdXVsidGhyb3ciXSk6KGcwW1pbMl1dKDM5LHoudixRKSxuPURbMTBdKFpbMV0sbnVsbCx6KSksbn0sdGhpcy5yZXR1cm49ZnVuY3Rpb24oUSxuKXtyZXR1cm4gWVsyOV0oKG49WyExLDIsbnVsbF0sblsxXSksInJldHVybiIsblswXSxuWzJdLAohMCx6LFEpfSx0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLDEwKSYmKEItcFswXSYxNik8MSYmKHo9UXcsdGhpcy5jdG9yPW5hLHRoaXMudj1SWzQ4XS5iaW5kKG51bGwsNjkpLHRoaXMuZGVmYXVsdFZhbHVlPXZvaWQgMCx0aGlzLk09ei5SVCE9bnVsbD9sOnZvaWQgMCksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe2lmKCgoQi0oKEJeNjIpPj4oKChMPVszMCwyNSwzMl0sQiY3Nik9PUImJih2PVswLDIsITFdLFo9Z1syNl0oNTcsTFIuSigpLHZbMV0pLFc9Z1sxMl0oNyxaKSxuPVcubmV4dCgpLnZhbHVlLFE9Vy5uZXh0KCkudmFsdWUsTj1nWzddKDM2KSxmPWdbN10oMzgpLHA9W0hbNDRdKDYzLGIpLERbNDNdKDE2LDEsQyxuLEEsZiksUlsxOV0oNjQsUSxIWzE1XSg0OCwzKSxuKSxZWzBdKDI2LEosT1tMWzFdXSg5LFEpLE9bTFsxXV0oOSxiKSksdkkobixIWzE1XSg1Niw3KSxRKSxZWzBdKDI5LEosT1tMWzFdXSg1LApuKSx2WzJdKSxJKGIsSFsxNV0oTFsyXSxLKSxIWzE1XSg1Nix6KSxRKSxIWzQ0XSg1MSxuKSxIWzQ0XSg1NSxRKSxZWzBdKDI2LE4sdlswXSx2WzBdKSxmLEhbNDRdKDQzLEMpLEhbNDRdKDU1LG4pLEhbNDRdKDYzLFEpLFlbMF0oMjgsSix2WzBdLHZbMF0pLE5dLCh4PUxSLkooKSkudi5hcHBseSh4LGVbMzNdKDI3LFopKSxyPXApLChCKzReMjIpPj1CKSYmKEIrNCY0Nik8QiYmKCh6PT1udWxsPzA6ei5kaWRUaW1lb3V0KT90aGlzLmd0KG51bGwpOnRoaXMuZ3QoeikpLDMpPT0xJiYocD1bYj4+PkMmMjU1LGI+Pj5KJjI1NSxiPj4+OCYyNTUsYiYyNTVdLHY9UXYuZW5jb2RlKEEudG9TdHJpbmcoKSkscj1uZXcgUHJvbWlzZShmdW5jdGlvbihWLFApe1pxKHYscCx6LDgsMzIsZnVuY3Rpb24ocSl7cT9WKHEpOlAoRXJyb3IoSykpfSl9KSksMSk+PjM9PTImJihDPVtudWxsLCExLDFdLEo9Sj09PXZvaWQgMD8xOkosSy5SJiYobVsyNF0oOCxDWzJdLENbMV0sSy5SLnYpLEsuUj1DWzBdKSwKSy5YLnRoZW4oZnVuY3Rpb24oVil7cmV0dXJuIERbMjNdKDE1LFYpfSxmdW5jdGlvbigpe30pLEsuWD1DWzBdLERbMjNdKDM1LEsuTSksSy5NPUNbMF0sSy5vJiZLLm8uZGlzcG9zZSgpLEsuaSYmKEsuaS5kaXNwb3NlKCksSy5pPUNbMF0pLERbMjNdKDQzLEsuQSksSy5BPUNbMF0sZ1syXSgyLHosQ1sxXSxLLEopKSxCKSs1Jjc0KTxCJiYoQi01XjUpPj1CKWE6e0o9WzAsMTAyNDAsM107c3dpdGNoKHR5cGVvZiB6KXtjYXNlICJudW1iZXIiOnI9TnVtYmVyLmlzRmluaXRlKHopP3o6IiIrejticmVhayBhO2Nhc2UgImJpZ2ludCI6cj1qNyh6KT9OdW1iZXIoeik6IiIrejticmVhayBhO2Nhc2UgImJvb2xlYW4iOnI9ej8xOjA7YnJlYWsgYTtjYXNlICJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoeikpe0E9eltBJF18SlswXSxyPXoubGVuZ3RoPT09MCYmQSYxP3ZvaWQgMDpZWzI5XSg0LDY0LEEseixtW0xbMF1dLmJpbmQobnVsbCwxMykpO2JyZWFrIGF9aWYoeiE9bnVsbCYmeltqVF09PT0Kbmgpe3I9ZVsxOV0oMTMsSlswXSx6KTticmVhayBhfWlmKHogaW5zdGFuY2VvZiBabCl7aWYoKHY9ei52LHYpPT1udWxsKWI9IiI7ZWxzZXtpZih0eXBlb2Ygdj09PSJzdHJpbmciKW49djtlbHNle2lmKGlMKXtmb3IoUT0ocD0oSz0iIix2Lmxlbmd0aCktSlsxXSxKWzBdKTtRPHA7KUsrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx2LnN1YmFycmF5KFEsUSs9SlsxXSkpO0M9KEsrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxRP3Yuc3ViYXJyYXkoUSk6diksYnRvYSkoSyl9ZWxzZSBDPWVbNDZdKDI5LEpbMl0sdik7bj16LnY9Q31iPW59cj1iO2JyZWFrIGF9cj12b2lkIDA7YnJlYWsgYX1yPXp9cmV0dXJuIHJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKCgoKHY9WyJpIiwyNCw0OF0sQi04fDg3KTxCJiYoQisyJjYyKT49QiYmKEE9Ult2WzJdXSg3MixLLFdqLHosbCkpLEIpXjQ1KSYyMyk9PTImJihKPW1bdlsyXV0oMzAsSyksZGVsZXRlIElDW0pdLApSWzFdKDQseixJQykmJlFBJiZRQS5tOCgpKSwoQnx2WzFdKT09QilpZigoQz1LKEp8fEJVLHZvaWQgMCkpJiZDW3ZbMF1dJiZ6KUNbdlswXV0oeik7ZWxzZSBiPU9bN10oNixudWxsLEMpLHouaW5uZXJIVE1MPW1bMjZdKDQsIiIsYik7cmV0dXJuKCgoQl4yMyk+PjN8fChKPW5ldyBkSixBPWdbMjNdKDEzLEssazcsITAseixKKSksQileNjIpPj40fHwoSj16LEE9KG5ldyBJcChmdW5jdGlvbihwLFEpeyhKPU9bMl0oMzksZnVuY3Rpb24oKXtwKHZvaWQgMCl9LEspLEo9PS0xKSYmUShFcnJvcigiRmFpbGVkIHRvIHNjaGVkdWxlIHRpbWVyLiIpKX0pKS5QRihmdW5jdGlvbihwKXtrWzE2XSg2MSxKKTt0aHJvdyBwO30pKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKChaPVsiczwvc3Ryb25nPiIsMjUsNDBdLEIrNSkmN3x8KEs9ei5HUSxiPXouaHEsSj16LlBvLEM9SFs0NV0oOCxOWigpLGIsaW0oKSxPQygpKSxXPU9bWlsyXV0oOTgsZ1taWzFdXSg1MiwKT1taWzJdXSg5NyxhWigpLCc8aWZyYW1lIHNyYz0iJytSWzExXSg3MyxHWzEwXSg4MixjbixDKT9DLlZlKCk6QyBpbnN0YW5jZW9mIEhsP1lbMzFdKDMsQykudG9TdHJpbmcoKTptcSgpKSsnIiBmcmFtZWJvcmRlcj0iMCIgc2Nyb2xsaW5nPSJubyI+PC9pZnJhbWU+PGRpdj4nKSxnWzM2XSgxOSx7aWQ6SyxuYW1lOkp9KSksSWYoKSkpLEIpPj4yJjEwKT09Mil7aWYoZVsyMV0oNzYsKEo9WyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiPicsKGI9ei5VWSwicmMtaW1hZ2VzZWxlY3QtZXJyb3ItZHluYW1pYy1tb3JlIiksJyI+J10seEsoKSksYikpe249JzxkaXYgaWQ9InJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZSIgY2xhc3M9IicrUlsxMV0oNzEsKHY9ei5sYWJlbCxBPXouTUksInJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZXMiKSkrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1jYW5vbmljYWwtYm91bmRpbmctYm94IikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3LAoicmMtaW1hZ2VzZWxlY3QtZGVzYyIpK0pbMl07c3dpdGNoKEhbNDRdKDEsdik/di50b1N0cmluZygpOnYpe2Nhc2UgIlRpbGVTZWxlY3Rpb25TdHJlZXRTaWduIjpuKz0iU2VsZWN0IGFyb3VuZCB0aGUgPHN0cm9uZz5zdHJlZXQgc2lnbnM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgInZlaGljbGUiOmNhc2UgIi9tLzA3eXY5IjpjYXNlICIvbS8wazRqIjpuKz0iT3V0bGluZSB0aGUgPHN0cm9uZz52ZWhpY2xlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiVVNFUl9ERUZJTkVEX1NUUk9OR0xBQkVMIjpuKz0iU2VsZWN0IGFyb3VuZCB0aGUgPHN0cm9uZz4iK0RbMzldKDcsQSkrWlswXTticmVhaztkZWZhdWx0Om4rPSJTZWxlY3QgYXJvdW5kIHRoZSBvYmplY3QifVE9VEQobisiPC9kaXY+Iil9ZWxzZSBRPWVbMjFdKDcyLERxKCksYik/SFszMF0oMTAsSlsyXSwiPC9kaXY+Iix6LmxhYmVsKTpHWzQ3XSg4LHosSyk7Vz0oKCgoKChwPU9bWlsyXV0oOTgsZ1taW0M9USwxXV0oNjgsT1taWzJdXSg3OCwKYVooKSwnPGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtaW1hZ2VzZWxlY3QtaW5zdHJ1Y3Rpb25zIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1pbWFnZXNlbGVjdC1kZXNjLXdyYXBwZXIiKStKWzJdKSxDKSwnPC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1pbWFnZXNlbGVjdC1wcm9ncmVzcyIpKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWltYWdlc2VsZWN0LWNoYWxsZW5nZSIpKyciPjxkaXYgaWQ9InJjLWltYWdlc2VsZWN0LXRhcmdldCIgY2xhc3M9IicrUlsxMV0oNywicmMtaW1hZ2VzZWxlY3QtdGFyZ2V0IikrJyIgZGlyPSJsdHIiIHJvbGU9InByZXNlbnRhdGlvbiIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWltYWdlc2VsZWN0LWluY29ycmVjdC1yZXNwb25zZSIpK0pbMF0pLGdbWlsxXV0oNjcscCwiUGxlYXNlIHRyeSBhZ2Fpbi4iKSxPKVtaWzJdXSg3OCxwLAonPC9kaXY+PGRpdiBhcmlhLWxpdmU9InBvbGl0ZSI+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtaW1hZ2VzZWxlY3QtZXJyb3Itc2VsZWN0LW1vcmUiKStKWzBdKSxnKVtaWzFdXSg2OCxwLCJQbGVhc2Ugc2VsZWN0IGFsbCBtYXRjaGluZyBpbWFnZXMuIiksT1taWzJdXSg3OSxwLCc8L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDM5LEpbMV0pK0pbMF0pLGcpW1pbMV1dKDM1LHAsIlBsZWFzZSBhbHNvIGNoZWNrIHRoZSBuZXcgaW1hZ2VzLiIpLE8pW1pbMl1dKDk3LHAsJzwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWltYWdlc2VsZWN0LWVycm9yLXNlbGVjdC1zb21ldGhpbmciKStKWzBdKSxnW1pbMV1dKDUyLHAsIlBsZWFzZSBzZWxlY3QgYXJvdW5kIHRoZSBvYmplY3QsIG9yIHJlbG9hZCBpZiB0aGVyZSBhcmUgbm9uZS4iKSxPKVtaWzJdXSg5NyxwLHMxKCkpLHApfXJldHVybiBCKzEmN3x8KEVIPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMzFdKDMzLEssZnVuY3Rpb24oKXtyZXR1cm4gSi5zbGljZSh6KX0sClhKKX0sVz1KKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEJeKGI9WzIsNywidiJdLDU1KSk8MjEmJkIrYlsxXT4+ND49YlswXSYmTEQuY2FsbCh0aGlzLDE1MCxiWzFdLFsyXSksQis2Pj4xPj1CJiZCLTg8PGJbMF08QiYmKEg3W0g3Lmxlbmd0aF09SyxHZCkpZm9yKEo9ejtKPGVQLmxlbmd0aDtKKyspSyhSeChlUFtKXVtiWzJdXSxlUFtKXSkpO3JldHVybihCKzZeOSk+PUImJkIrYlswXT4+YlswXTxCJiYoQz1SWzEzXSg0MCxPWzldKDE1LDYpLFtPWzI1XSg5LHopLE9bMjVdKDMsSyksZ1sxNl0oMzAsSildKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKChCKzImNDkpPj0oKChBPVsxLCJBIiwidiJdLChCfDgwKT09QikmJihDW0FbMV1dPUssZVs1XSgxMSxLLGZ1bmN0aW9uKCl7Qy5BJiZNdi5jYWxsKHosSil9KSksQnxBWzBdKT4+NDxBWzBdJiZCKzI+PS00MCYmKGI9UlsxNF0oNzMseixKLEMsSyksdj1BcnJheS5pc0FycmF5KGIpP2I6UVApLEIpJiYKQis3Pj5BWzBdPEImJihKLk0/KEM9aFkoSi5pKCktSltBWzFdXSwwKSxDPEouWCp6P0pbQVsyXV09c2V0VGltZW91dChmdW5jdGlvbigpe21bMzRdKDMxLC44LCExLEopfSxKLlgtQyk6KEpbQVsyXV0mJihjbGVhclRpbWVvdXQoSltBWzJdXSksSltBWzJdXT12b2lkIDApLEoueEEoKSxKLk0mJihIWzE5XSg1OSxLLEopLEouc3RhcnQoKSkpKTpKW0FbMl1dPXZvaWQgMCksQi00XjI2KTxCJiYoQi0yXjcpPj1CJiZULmNhbGwodGhpcyx6KSwoQiYxMjYpPT1CKSYmKHRoaXNbQVsyXV09eiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKChCJjI1KT09KCgoTj1bMTQsMiwxOV0sQi04KSYxNSk9PTMmJih6PXo9PT12b2lkIDA/MUUzOnosSz1uZXcgV2IsSy5PZD1mdW5jdGlvbigpe3JldHVybiBuZyhmdW5jdGlvbihmLEwscil7cmV0dXJuKEw9KHI9R1szMV0oMSksci1mKSwhcnx8Yk4oTC96KSk/KEsuT2Q9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sSy5PZCgpKToKei1MfSxHWzMxXSg1KSl9KCkseD1LKSwoQi1OWzFdXjMpPj1CJiYoQi01fDUyKTxCJiYoeD15WzM4XShOWzFdLHZvaWQgMCxSWzExXSgyOCx6LEopLEssTlsxXSkpLEIrNT4+Mz09MSYmYiE9SyYmKEE9cGFyc2VJbnQoYiwxMCksYk4oQSksRFsyMl0oNzYsMCxDLEopLGtbTlswXV0oTlsyXSx6LEMudixBKSksQikpe2ZvcihaPShXPShBPXlbMzddKE5bMl0seixOW2I9KEouQj0hMSxbXSksMV0sQyxsKSxnWzEyXSg3LEEpKSxXLm5leHQoKSk7IVouZG9uZTtaPVcubmV4dCgpKW49Wi52YWx1ZSxRPVJbMjZdKDIwLEMsNSxsKSxiLnB1c2goSi5XbyhRLG4pKTt2PUhbMTJdKDQ0LEMsKHA9Si5ETSxLKSxxRixrWzNdKDcpLGwpLHAuY2FsbChKLGIsdiksZVsxMF0oNCwiaiIsSil9cmV0dXJuIHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEImKChCLTVeMzApPj0oKEIrKEE9WzkzLDEsImNhbGwiXSw3KV4yNSk8QiYmQi03PDxBWzFdPj1CJiYoYj1bXSxPWzIwXSgzLEsseixDLEosCkssYiksdj1iKSxCKSYmKEIrNyYxMCk8QiYmKHoudFk9ITAsdj16KSxBWzBdKSk9PUIpTERbQVsyXV0odGhpcywxMzEwLDI3KTtyZXR1cm4gdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZighKChOPVswLDY1LDEyXSxCXk5bMV0pJjMpKWE6e2lmKEoubm9kZVR5cGU9PXope1c9KGI9ZVtOWzJdXSg2LEopLG5ldyBaNihiLnRvcCxiLmxlZnQpKTticmVhayBhfVc9bmV3IFo2KChDPUouY2hhbmdlZFRvdWNoZXM/Si5jaGFuZ2VkVG91Y2hlc1tLXTpKLEMpLmNsaWVudFksQy5jbGllbnRYKX1pZigoKCgoQnw1KSY3KT49MyYmQisyPDE2JiYodGhpcy5XPXosdGhpcy5DPSEhQyxmYS5jYWxsKHRoaXMsSyxKKSksQiktMl4zMSk+PUImJihCLTVeMTYpPEIpe2ZvcihuPVtdLmNvbmNhdChlWzMzXSgoUT1tW3A9b3Iuc2xpY2UoKSw4XSgxMCksWj0oQT09PXZvaWQgMD8wOkEpJW9yLmxlbmd0aCwyOCksYikpLHY9ejt2PG4ubGVuZ3RoO3YrKylwW1pdPSgocFtaXTw8Sl4KTWF0aC5wb3coUS5jYWxsKG5bdl0seiktb3JbWl0sQykpKyhwW1pdPj5DKSkvb3JbWl18eixaPShaK0spJW9yLmxlbmd0aDtXPWU3KHAucmVkdWNlKGZ1bmN0aW9uKHgsZil7cmV0dXJuIHheZn0seikpfXJldHVybihCfDcyKT09QiYmKHY9WzE3LDIwLDFdLHA9SihLKCksMTEpLEMocCx2W05bMF1dKSYmKEE9QyhwLHZbTlswXV0pKERbTlsyXV0oNTYsdlsyXSx2WzFdKSkpJiZBW05bMF1dJiYoYj1KKEFbTlswXV0sMjcpfHwiIiksVz1IWzhdKDQwLDIzMCkoYikpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChXPVs4LDEzLDRdLEI8PDE8MjQpJiYoKEJ8V1swXSkmV1sxXSk+PVdbMl0mJmIpZm9yKEE9SztBPExhLmxlbmd0aDtBKyspZVsyNF0oMjEseixKLExhW0FdKyJBcnJheS5wcm90b3R5cGUuIitDLGIpO2lmKCgoKEImMjgpPT1CJiYoWj15WzM4XSg1LHZvaWQgMCxrWzJdKDE2LHosbnVsbCxDKSxKLEspKSxCLTUpPj5XWzJdPj0zJiYoQj4+MSZXWzBdKTwKV1swXSYmKFo9T1sxNF0oMTIsSyxIW1dbMl1dKDkyLHosSikpKSxCfDUpPj5XWzJdPj0yJiZCLTk+PldbMl08Mil7Zm9yKFE9KCh2PUoudix2KS5wdXNoKG5ldyBWUChiLEMpKSxwPUoudixuPXYubGVuZ3RoLUsscFtuXSk7bj56OylpZihBPW4tSz4+SyxwW0FdLnY+US52KXBbbl09cFtBXSxuPUE7ZWxzZSBicmVhaztwW25dPVF9cmV0dXJuIFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCgoeD1bImNhbGwiLCJhcHBseSIsMjFdLEIrNykmMjkpPj1CJiZCKzQ+PjE8QilUW3hbMF1dKHRoaXMseik7cmV0dXJuKChCXnhbMl0pPDEzJiYoQj4+MiYxMCk+PTImJihKPU9bNDFdKDMwKSxVeC5zZXQoSix7ZmlsdGVyOksseEE6en0pLGY9SiksQis4XjE0KTxCJiYoQi02fDUwKT49QiYmKHA9WzIsITEsN10sVz1nWzI2XSg4OCxMUi5KKCkscFswXSksTj1nWzEyXSgzLFcpLEE9Ti5uZXh0KCkudmFsdWUsUT1OLm5leHQoKS52YWx1ZSxuPWdbN10oMzcpLFo9CmdbN10oMzgpLGI9W0hbNDRdKDYyLEopLERbNDNdKDE3LDEseixBLEMsWiksUlsxOV0oMzMsUSxIWzE1XSgyNCw1KSxBKSxZWzBdKDI0LEssT1syNV0oNSxRKSxPWzI1XSg1LEopKSx2SShBLEhbMTVdKDcyLHBbMl0pLFEpLFlbMF0oMjUsSyxPWzI1XSgzLEEpLHBbMV0pLEkoSixIWzE1XSg0OCw2KSxIWzE1XSgzMiw5KSxRKSxIWzQ0XSg1OCxBKSxIWzQ0XSg2MixRKSxZWzBdKDI3LG4sMCwwKSxaLEhbNDRdKDQ2LHopLEhbNDRdKDYzLEEpLEhbNDRdKDU5LFEpLFlbMF0oMjcsSywwLDApLG5dLCh2PUxSLkooKSkudlt4WzFdXSh2LGVbMzNdKDM2LFcpKSxmPWIpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKChwPVtudWxsLCJSIiwidiJdLChCXjM3KT4+NCk+PTAmJigoQl4xMikmMTQpPDcmJih6LmtwJiZPWzMxXSgxNyxwWzBdLHopLHpbcFsyXV09Syx6LkFNPUhbNV0oMjQseltwWzJdXSxCUyx6LEopLHoubzc9SFs1XSg5MSx6W3BbMl1dLEY4LHouUFksSix6KSwKei5rcD1IWzVdKDI0LHpbcFsyXV0sc1gsei5YdCxKLHopKSwoQi05XjIyKTxCJiYoQisxXjE1KT49QikmJihwUS5jYWxsKHRoaXMpLHRoaXMuTT1LfHx3aW5kb3csdGhpc1twWzJdXT1wWzBdLHRoaXMuaT0hMSx0aGlzW3BbMV1dPXosdGhpcy5BPUosdGhpcy5YPVJ4KHRoaXMuRix0aGlzKSksKEJeMTQpPj4zPj0xJiYoQjw8MiYxMSk8MykmJihBPW1bOF0oNyksYj1PWzQxXSgyMSkuc3BsaXQoSykuc2xpY2UoeiwzKS5tYXAoZnVuY3Rpb24oUSl7cmV0dXJuIEEuY2FsbChRLHopfSksZW5jb2RlVVJJQ29tcG9uZW50KEMpLnNwbGl0KEspLmZvckVhY2goZnVuY3Rpb24oUSxuLFope2IucHVzaCgoWj1bMzUsMywiY2FsbCJdLE9bWlswXV0oNDQsQVtaWzJdXShKLG4lSi5sZW5ndGgpLEFbWlsyXV0oUSx6KSxiW24lWlsxXV0pKSl9KSx2PWIpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKEImOTApPT0oYj1bNywiY2FsbCIsMTZdLEIpJiYoQT17c2VuZDpmdW5jdGlvbih2LHAsClEsbixaLFcsTix4LGYpe3JldHVybigoKHg9bmV3IHFxKChmPVshMCwiTyIsIlciXSxLKSkseFtmWzFdXSkuYWRkKFN0cmluZyhNcSkscCwhMSx2b2lkIDAsdm9pZCAwKSxnKVs0M10oMyxmWzBdLGpaLHgsZnVuY3Rpb24oKXt4LmRpc3Bvc2UoKX0pLFcmJih4W2ZbMl1dPWhZKHosVykpLE4pJiYoeC5BPU4pLHguc2VuZCh2LFEsbixaKSx4fX0pLEI8PDEpJjMpPj0yJiYoKEJ8YlswXSkmYlsyXSk8OSlUW2JbMV1dKHRoaXMseik7cmV0dXJuKEJeMjEpPj40Pj0yJiZCPj4yPDIwJiYoQz1SWzM4XSg2LHosbnVsbCxLKSxKPVJbMzZdKDU2LEspLEE9bmV3IG5qKEMueCxDLnksSi53aWR0aCxKLmhlaWdodCkpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoKChDPVs5LDU2LDFdLChCLUNbMF1eMTUpPEIpJiYoQitDWzJdJkNbMV0pPj1CJiYoYj1TWi50b1N0cmluZyksQisyKSYzMCk8QiYmKEIrNl4xOCk+PUIpe2ZvcihKIGluIEs9e30seilLW0pdPXpbSl07Yj1LfXJldHVybiBCPj5DWzJdPj0KMjAmJihCXjM2KTwzNiYmKGI9UnJ8fChScj1uZXcgWmwobnVsbCxlSikpKSxifSxmdW5jdGlvbihCLHosSyxKKXtpZihCLTc+PS0oSz1bImNhbGwiLDEyMyw0XSw4OSkmJihCPDwxJktbMl0pPEtbMl0pVFtLWzBdXSh0aGlzLHopO3JldHVybiBKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChBPVszLCJ0YWdOYW1lIiwiSW52YWxpZCBKU09OIHN0cmluZzogIl0sQitBWzBdJjcpPT1BWzBdKWE6e2lmKEsgaW5zdGFuY2VvZiB4ayl7dj1LLnY7YnJlYWsgYX10aHJvdyBFcnJvcih6KTt9aWYoISgoKEIrNSYzMCk8QiYmKEItMV4yOSk+PUImJnouWC5wdXNoKHouQVksWVsyXSg4NixmdW5jdGlvbihwLFEpe3JldHVybiBwfHxRfSx6KSx6LmJQLHouQUwpLEItQVswXSkmMTEpKWE6e3RyeXt2PUdsW3JhKCldW1Z3KCldKEMpO2JyZWFrIGF9Y2F0Y2gocCl7fWlmKC9eXHMqJC8udGVzdCgoYj1TdHJpbmcoQyksYikpPzA6L15bXF0sOnt9XHNcdTIwMjhcdTIwMjldKiQvLnRlc3QoYi5yZXBsYWNlKC9cXFsiXFxcL2JmbnJ0dV0vZywKR3IoKSkucmVwbGFjZSgvKD86IlteIlxcXG5cclx1MjAyOFx1MjAyOVx4MDAtXHgwOFx4MGEtXHgxZl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/KVtcc1x1MjAyOFx1MjAyOV0qKD89OnwsfF18fXwkKS9nLGJxKCkpLnJlcGxhY2UoLyg/Ol58OnwsKSg/Oltcc1x1MjAyOFx1MjAyOV0qXFspKy9nLHopKSl0cnl7dj1ldmFsKEsrYitKKTticmVhayBhfWNhdGNoKHApe310aHJvdyBFcnJvcihBWzJdK2IpO31pZigoQi03fDY2KTxCJiYoQitBWzBdXjMyKT49Qil7aWYoSy5ub2RlVHlwZT09PTEmJi9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChLW0FbMV1dKSl0aHJvdyBFcnJvcih6KTtLLmlubmVySFRNTD1tWzI2XSgyLHosSil9cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoISgoQz1bMTUsMzcsOF0sQj4+MikmNnx8KGdbNDRdKDQ2LDQsdGhpcykmJnlbMzRdKENbMl0sMSx0aGlzLCExKSxnWzQ0XSg1NywzMix0aGlzKSYmdGhpcy5KSyghMSkpLApCPDwyJkNbMF0pKXtpZih0aGlzLk5qIT09eGopdGhyb3cgRXJyb3IoIlNhbml0aXplZCBjb250ZW50IHdhcyBub3Qgb2Yga2luZCBIVE1MLiIpO0o9R1s0M10oMjUsbnVsbCx0aGlzLnRvU3RyaW5nKCkpfXJldHVybiBCKzE+PjR8fChKPURbMjBdKDUsIkFuZHJvaWQiKSYmIShrWzIzXSgxNCwiQ3JpT1MiKXx8T1tDWzFdXSgxMSxLKXx8Z1tDWzJdXSgyMCwiT3BlcmEiKXx8eVs0NV0oMjEseikpKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKCgoKCgoQnw4OCk9PSh2PVsyLDgsMV0sQikmJlQuY2FsbCh0aGlzLHopLChCPj52WzJdJjI3KT09dlswXSkmJih0aGlzLkJ2PXo9ej09PXZvaWQgMD9tWzQxXSh2WzFdLDApOnosdGhpcy52PUspLEImMzUpPT1CJiYoSj1bbnVsbCwiZyIsITFdLHdFLmNhbGwodGhpcyksdGhpcy5NPXoseVs0M10oNTYsdGhpcy5NLHRoaXMpLHRoaXMudj1LLHlbNDNdKDQwLHRoaXMudix0aGlzKSx0aGlzLk89SlswXSx0aGlzLmw9SlswXSx0aGlzLlU9CkpbdlswXV0sdGhpcy5LPUpbdlswXV0sdGhpcy5vPURhdGUubm93KCksdGhpcy5qPUpbMF0sdGhpcy5YPUpbMF0sdGhpcy5SPUpbMF0sdGhpcy5GPW5ldyBteCx5WzQzXSg0Mix0aGlzLkYsdGhpcyksZVsyOV0oMjEsInIiLCJzIixKW3ZbMl1dLCJsIix0aGlzKSx0aGlzLmk9SlswXSksQit2WzJdJjU2KT49QiYmKEItN3wzNSk8QiYmKHRoaXMuTTc9QXJyYXkuZnJvbShLLmVudHJpZXMoKSksdGhpcy52Vz1BcnJheS5mcm9tKHopKSxCKT4+dlswXSYxNSk9PXZbMF0pe2ZvcihBPShKPShiPShDPVJbdlsxXV0oNTcsdGhpcyksa1syMV0oMTcsdGhpcykpLEs9W10sa1syMV0oMjUsdGhpcykpLHZbMF0pO0E8ejtBKyspSy5wdXNoKGtbMjFdKDIzLHRoaXMpKTt0aGlzLnhKW0NdPWJbSl0uYXBwbHkoYixlWzMzXSgzNixLKSl9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtyZXR1cm4gQi0oKEImKCgoQnwyKSYoKEJeODgpPj40PCgoeD1bMzQsNiwyNl0sCihCfDIpJjE1KT49NSYmKEI8PDEmMTYpPDkmJihBcnJheS5pc0FycmF5KEopfHwoSj1bU3RyaW5nKEopXSksa1sxOF0oNjYsMCxudWxsLEssei5BLEopKSwzKSYmQj4+Mj49MTkmJkMuaW5mbyhmdW5jdGlvbihmLEwpe3JldHVybihmPVtudWxsLCIgIiwiWE1MSFRUUCBURVhUICgiXSxMPVszOSwxLDJdLGYpW0xbMl1dK0orIik6ICIrT1tMWzBdXSgyNCwibm9vcCIsTFsxXSxmWzBdLHosSyxDKSsoYj9mW0xbMV1dK2I6IiIpfSksMTUpKT49NyYmKEItOSYxNik8OSYmKE49R1sxM10oMjQsZnVuY3Rpb24oZixMLHIpe3I9KEw9WzEsNyw4XSxbMjEsMjMsMl0pO3N3aXRjaChmLk0pe2Nhc2UgTFswXTpRPUMsQT1HW3JbMV1dKHJbMF0sRFs4XSg4OSxIWzRdKDkwLHosYikpLEhqKCkpLHA9R1tyWzFdXSg2LERbOF0oODgsSFs0XSg5NCxMWzBdLGIpKSxwRygpKTtjYXNlIHo6aWYoUSsrLFE+PTFFNCl0aHJvdyBFcnJvcihKKTtpZighKFE+QyYmUSU1MDA9PT0wKSl7Zi5HXyhLKTticmVha31yZXR1cm4gZi52KG5ldyBQcm9taXNlKGZ1bmN0aW9uKFYpe3NldFRpbWVvdXQoViwKQyl9KSxLKTtjYXNlIEs6cmV0dXJuIGYudihtWzMwXSg0OCxMWzFdLEosMTYsMjQscCxRKSxMWzFdKTtjYXNlIExbMV06aWYoKG49KCh2PWYuWCx2W0NdPDwyNHx2W0xbMF1dPDwxNil8dlt6XTw8TFtyWzJdXXx2WzNdKT4+PkMsbiklQT09PTApcmV0dXJuIGYucmV0dXJuKFtRXSk7Zi5HXyh6KX19KSksNDcpKT09QiYmSyE9bnVsbCYmKEE9KEM9ZXIpIT1udWxsP0M6ZXI9e30sYj1BW0tdfHwwLGI+PUp8fChBW0tdPWIreixZWzE1XSg1MCkpKSwzKTw8Mj49QiYmKEItNHw0NSk8QiYmKFE9WzAsOCw0XSxBPVlqKCktSi5HLFo9bmV3IFJFLHY9ZVt4WzBdXSgxMywiOiAiLFFbMF0sSi5VLEEpLFc9SFs0NF0oODYsWixrbixRWzJdLHYpLG49ZVt4WzBdXSgxMiwiOiAiLFFbMF0sSi5JLEEpLGI9SFs0NF0oODMsVyxrbixLLG4pLEM9a1t4WzFdXSh4WzJdLHhbMV0sYixKLkQpLHA9a1t4WzFdXSgzMCx6LEMsSi5qKSxOPWtbeFsxXV0oNTcsUVsxXSxwLEouZykpLE59LGZ1bmN0aW9uKEIseixLLApKLEMsYixBLHYscCxRKXtyZXR1cm4gQi0zPj4oKChCXigoQnwocD1bMSwyLDRdLDcyKSk9PUImJihDPUhbNDhdKHBbMl0sZTcoSyksUGpbel0sUGpbcFswXV0sUGpbcFsxXV0pLFE9ZnVuY3Rpb24oKXtyZXR1cm4gYk4oQygpKlBqWzJdKSVKfSksNzcpKSYxMyk9PXBbMF0mJihRPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh6LCRLKSYmelskS118fCh6WyRLXT0rK3FaKSkscFsyXSl8fCh2PVtudWxsLDQsMF0sQT1EWzE0XSg4MSxLKSxBIT12WzBdJiYoRFsyMl0oNjYscFswXSx6LEopLEM9ei52LGI9aUd8fChpRz1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgpKSksYi5zZXRGbG9hdDY0KHZbcFsxXV0sK0EsITApLE9PPWIuZ2V0VWludDMyKHZbcFsxXV0sITApLHhPPWIuZ2V0VWludDMyKHZbcFswXV0sITApLGdbMjddKDEyLDE2LEMsT08pLGdbMjddKDEwLDE2LEMseE8pKSksQi1wWzFdJjEwfHwoUT1rWzQ2XSg0MSxmdW5jdGlvbihuLFosVyl7bi5zdWJzY3JpYmUoKFc9CnosbmV3IGZnKFosZnVuY3Rpb24oTil7Wi5uZXh0KEsuY2FsbCh2b2lkIDAsTixXKyspKX0pKSl9KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEJ8MjQpPT0oKEImMjUpPT0oQT1bNzEsNjcsInRvU3RyaW5nIl0sQikmJih6PVsnIiB0YWJpbmRleD0iLTEiPjwvZGl2PicsIjxkaXYgaWQ9J3JjLWxpdmVuZXNzJyBjbGFzcz1cIiIsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VMaXZlbmVzc091dGVyQ29udGFpbmVyIl0sYj1PWzQwXSg3OSxnWzI1XShBWzFdLE9bNDBdKDk5LGFaKCkselsxXStSWzExXSg3LHpbMl0pKyciPjxkaXYgY2xhc3M9IicrUlsxMV0oQVswXSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZUxpdmVuZXNzQ29udGFpbmVyIikrelswXSksRFszMF0oMjcsIiAiKSksSWYoKSkpLEIpKXtpZih0eXBlb2YgeiE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7Yj16fXJldHVybigoQl40Mik+PjN8fChiPUdbMV0oNSxuZXcgWHgsSFs4XSgzMiwzMzM5KSh6LApKLGZ1bmN0aW9uKHYpe3JldHVybiB2LnNwbGl0KFhaKCkpWzBdfSkpW0FbMl1dKCkpLChCPj4xJjcpPT0zKSYmKGI9KCIiK0MoSygpLDE4KSgpKS5sZW5ndGh8fDApLGJ9XX0oKSxRNj1mdW5jdGlvbihCKXtyZXR1cm4ga1syNl0uY2FsbCh0aGlzLDksQil9LHl3LEYsWUssY2osU3IsYzI9W10sUTg9ZnVuY3Rpb24oQil7cmV0dXJuIHlbN10uY2FsbCh0aGlzLDgsQil9LFNkPSgoY2o9c2VsZik9PW51bGx8fCh5dz1jai5kb2N1bWVudCk9PW51bGx8fChTcj15dy5jcmVhdGVFdmVudCk9PW51bGx8fChZSz1Tci5iaW5kKT09bnVsbHx8WUsuY2FsbChTcixkb2N1bWVudCksZnVuY3Rpb24oQil7cmV0dXJuIE9bMjFdLmNhbGwodGhpcywxNixCKX0pLG1JPU9bMjhdKDM5LE9bMjhdKDM4LDAsT1syOF0oNDksMTgsMjApKSxPWzI4XSg1MCxPWzI4XSg0NiwzMyxPWzI4XSg1MSw4OSw4MCkpLE9bMjhdKDQwLDkxLDExNCwxMzgsMjAsMTA4LDMxOCksMjExLDI0LDEyNCwxODYpKSxPMj1mdW5jdGlvbihCLAp6LEssSixDKXtyZXR1cm4gWVsxXS5jYWxsKHRoaXMsMSxCLEosSyx6LEMpfSx5VT1mdW5jdGlvbihCLHope3JldHVybiBPWzE4XS5jYWxsKHRoaXMsOCx6LEIpfSxKaz1mdW5jdGlvbigpe3JldHVybiBIWzM5XS5jYWxsKHRoaXMsNDgpfSxsRyxFQyxYMSx1Rz1mdW5jdGlvbihCKXtyZXR1cm4gUls0N10uY2FsbCh0aGlzLDE2LEIpfSxhcix1Uj0oWDE9c2VsZik9PW51bGw/dm9pZCAwOihhcj1YMS5NYXRoKT09bnVsbD92b2lkIDA6KGxHPWFyLmltdWwpPT1udWxsP3ZvaWQgMDooRUM9bEcuYmluZCk9PW51bGw/dm9pZCAwOkVDLmNhbGwobEcsTWF0aCksaDksTHQ9WyJwbGF0Zm9ybSIsInBsYXRmb3JtVmVyc2lvbiIsImFyY2hpdGVjdHVyZSIsIm1vZGVsIiwidWFGdWxsVmVyc2lvbiJdLGRhLGtLLHRQPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gUlsxMV0uY2FsbCh0aGlzLDEzLHosSyxCKX0sdDksUFA9KHQ5PXNlbGYpPT1udWxsP3ZvaWQgMDooa0s9dDkuZG9jdW1lbnQpPT1udWxsP3ZvaWQgMDoKKGg5PWtLLmdldEVsZW1lbnRzQnlUYWdOYW1lKT09bnVsbD92b2lkIDA6KGRhPWg5LmJpbmQpPT1udWxsP3ZvaWQgMDpkYS5jYWxsKGg5LGRvY3VtZW50KSxVQyxNWix3YSxXdD1mdW5jdGlvbihCLHope3JldHVybiBnWzddLmNhbGwodGhpcywxLEIseil9LEokPWZ1bmN0aW9uKEIpe3JldHVybiBlWzM3XS5jYWxsKHRoaXMsMSxCKX0sTWs9ZnVuY3Rpb24oKXtyZXR1cm4gRFsyXS5jYWxsKHRoaXMsMSl9LElyLEZIPShNWj1zZWxmKT09bnVsbD92b2lkIDA6KHdhPU1aLmRvY3VtZW50KT09bnVsbD92b2lkIDA6KElyPXdhLmhhc1N0b3JhZ2VBY2Nlc3MpPT1udWxsP3ZvaWQgMDooVUM9SXIuYmluZCk9PW51bGw/dm9pZCAwOlVDLmNhbGwoSXIsZG9jdW1lbnQpLEYxLEIyPWZ1bmN0aW9uKEIpe3JldHVybiBPWzIwXS5jYWxsKHRoaXMsMzIsQil9LEI1LHpKPWZ1bmN0aW9uKEIseil7cmV0dXJuIEdbMzBdLmNhbGwodGhpcywyNixCLHopfSxzWix6WDsKKHpYPXNlbGYpPT1udWxsfHwoQjU9elguTWF0aCk9PW51bGx8fChzWj1CNS5zaWduKT09bnVsbHx8KEYxPXNaLmJpbmQpPT1udWxsfHxGMS5jYWxsKHNaLE1hdGgpO3ZhciBLcCxKSj1mdW5jdGlvbihCKXtyZXR1cm4gSFsxMF0uY2FsbCh0aGlzLDEsQil9LENwLGJQLE43PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBPWzQ1XS5jYWxsKHRoaXMsOCxCLHosSyxKKX0sQUosdjU9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMTRdLmNhbGwodGhpcywyNCxCKX0sVFg9KEtwPXNlbGYpPT1udWxsP3ZvaWQgMDooYlA9S3AuTWF0aCk9PW51bGw/dm9pZCAwOihBSj1iUC5zcXJ0KT09bnVsbD92b2lkIDA6KENwPUFKLmJpbmQpPT1udWxsP3ZvaWQgMDpDcC5jYWxsKEFKLE1hdGgpLFdTPWZ1bmN0aW9uKEIpe3JldHVybiBrWzldLmNhbGwodGhpcywzNSxCKX0sam8scHA9WzBdLFFGLGRrPWZ1bmN0aW9uKCl7cmV0dXJuIGVbNDFdLmNhbGwodGhpcywxKX0sbnAsWlk7CihucD1zZWxmKT09bnVsbHx8KFFGPW5wLmRvY3VtZW50KT09bnVsbHx8KFpZPVFGLmNyZWF0ZVRleHROb2RlKT09bnVsbHx8KGpvPVpZLmJpbmQpPT1udWxsfHxqby5jYWxsKFpZLGRvY3VtZW50KTsKdmFyIFc1LGdRLEozPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gR1sxOV0uY2FsbCh0aGlzLDEsQix6LEspfSxOdyxPWixsZj0oTnc9c2VsZik9PW51bGw/dm9pZCAwOihnUT1Ody5kb2N1bWVudCk9PW51bGw/dm9pZCAwOihPWj1nUS5jcmVhdGVFbGVtZW50KT09bnVsbD92b2lkIDA6KFc1PU9aLmJpbmQpPT1udWxsP3ZvaWQgMDpXNS5jYWxsKE9aLGRvY3VtZW50KSx4WixZbj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIG1bMTVdLmNhbGwodGhpcywyLEIseixLLEosQyxiKX0sRFksZnAsb00sTHA9KHhaPXNlbGYpPT1udWxsP3ZvaWQgMDoob009eFouZG9jdW1lbnQpPT1udWxsP3ZvaWQgMDooRFk9b00uZ2V0RWxlbWVudEJ5SWQpPT1udWxsP3ZvaWQgMDooZnA9RFkuYmluZCk9PW51bGw/dm9pZCAwOmZwLmNhbGwoRFksZG9jdW1lbnQpLFZhPWZ1bmN0aW9uKCl7cmV0dXJuIERbMjddLmNhbGwodGhpcyw0MSl9LFJNLHJRLFZGLEdYLGFpPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gT1szNF0uY2FsbCh0aGlzLAoxLEIseixLKX0sRk89KHJRPXNlbGYpPT1udWxsP3ZvaWQgMDooUk09clEuT2JqZWN0KT09bnVsbD92b2lkIDA6KEdYPVJNLmtleXMpPT1udWxsP3ZvaWQgMDooVkY9R1guYmluZCk9PW51bGw/dm9pZCAwOlZGLmNhbGwoR1gsT2JqZWN0KSxINSxlbz1mdW5jdGlvbihCLHosSyl7cmV0dXJuIERbMTZdLmNhbGwodGhpcywyNSxCLHosSyl9LFA1LCRaLHF3LG9DPShQNT1zZWxmKT09bnVsbD92b2lkIDA6KEg1PVA1LkpTT04pPT1udWxsP3ZvaWQgMDoocXc9SDUucGFyc2UpPT1udWxsP3ZvaWQgMDooJFo9cXcuYmluZCk9PW51bGw/dm9pZCAwOiRaLmNhbGwocXcsSlNPTiksaVAseUYsWVosa1g9ZnVuY3Rpb24oQil7cmV0dXJuIEdbNDBdLmNhbGwodGhpcywyNSxCKX0sYzUsbkc9KGlQPXNlbGYpPT1udWxsP3ZvaWQgMDooYzU9aVAuTWF0aCk9PW51bGw/dm9pZCAwOihZWj1jNS5jbHozMik9PW51bGw/dm9pZCAwOih5Rj1ZWi5iaW5kKT09bnVsbD92b2lkIDA6eUYuY2FsbChZWixNYXRoKSwKU28sbUQsbFA9IkludDggVWludDggVWludDhDbGFtcGVkIEludDE2IFVpbnQxNiBJbnQzMiBVaW50MzIgRmxvYXQzMiBGbG9hdDY0Ii5zcGxpdCgiICIpLEVaLFhWLFBVPShTbz1zZWxmKT09bnVsbD92b2lkIDA6KEVaPVNvLk9iamVjdCk9PW51bGw/dm9pZCAwOihtRD1FWi5pc0Zyb3plbik9PW51bGw/dm9pZCAwOihYVj1tRC5iaW5kKT09bnVsbD92b2lkIDA6WFYuY2FsbChtRCxPYmplY3QpLENmPWZ1bmN0aW9uKCl7cmV0dXJuIERbMzZdLmNhbGwodGhpcywyMCl9LHVQLGFNPWZ1bmN0aW9uKEIpe3JldHVybiBPWzIxXS5jYWxsKHRoaXMsMTAsQil9LGhKLGRRLGtaPWZ1bmN0aW9uKEIpe3JldHVybiBSWzQ5XS5jYWxsKHRoaXMsMixCKX0sdEoseWE9KGhKPXNlbGYpPT1udWxsP3ZvaWQgMDooZFE9aEouTWF0aCk9PW51bGw/dm9pZCAwOih1UD1kUS5yb3VuZCk9PW51bGw/dm9pZCAwOih0Sj11UC5iaW5kKT09bnVsbD92b2lkIDA6dEouY2FsbCh1UCxNYXRoKSxVWixNdyx3USxJTSxlTj0KKHdRPXNlbGYpPT1udWxsP3ZvaWQgMDooSU09d1EuSlNPTik9PW51bGw/dm9pZCAwOihNdz1JTS5zdHJpbmdpZnkpPT1udWxsP3ZvaWQgMDooVVo9TXcuYmluZCk9PW51bGw/dm9pZCAwOlVaLmNhbGwoTXcsSlNPTiksc04sejcsS1csSkQsdTQ9e213Ont2YWx1ZTowLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExfX0sbFE9KHNOPXNlbGYpPT1udWxsP3ZvaWQgMDooSkQ9c04uT2JqZWN0KT09bnVsbD92b2lkIDA6KEtXPUpELmdldFByb3RvdHlwZU9mKT09bnVsbD92b2lkIDA6KHo3PUtXLmJpbmQpPT1udWxsP3ZvaWQgMDp6Ny5jYWxsKEtXLE9iamVjdCksQ1cseG49ZnVuY3Rpb24oKXtyZXR1cm4gWVs0NF0uY2FsbCh0aGlzLDE2KX0sYkgsQUQ9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzZdLmNhbGwodGhpcywzNCxCKX0sdncsVDcsZDA9KHZ3PXNlbGYpPT1udWxsP3ZvaWQgMDooQ1c9dncuTWF0aCk9PW51bGw/dm9pZCAwOihUNz1DVy5jZWlsKT09bnVsbD92b2lkIDA6CihiSD1UNy5iaW5kKT09bnVsbD92b2lkIDA6YkguY2FsbChUNyxNYXRoKSxqUyxwVyxRNyxuVyxRSD0oalM9c2VsZik9PW51bGw/dm9pZCAwOihwVz1qUy5PYmplY3QpPT1udWxsP3ZvaWQgMDooblc9cFcuZ2V0T3duUHJvcGVydHlOYW1lcyk9PW51bGw/dm9pZCAwOihRNz1uVy5iaW5kKT09bnVsbD92b2lkIDA6UTcuY2FsbChuVyxPYmplY3QpLEdIPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gZ1sxM10uY2FsbCh0aGlzLDIsQix6LEssSixDLGIpfSxaVCxXdyxnRCxOeCxsOT0oZ0Q9c2VsZik9PW51bGw/dm9pZCAwOihaVD1nRC5NYXRoKT09bnVsbD92b2lkIDA6KE54PVpULm1pbik9PW51bGw/dm9pZCAwOihXdz1OeC5iaW5kKT09bnVsbD92b2lkIDA6V3cuY2FsbChOeCxNYXRoKSxPTix4Qz17dFU6ITAsTTk6ITEsaDU6bnVsbH0sRFQsZlcsb2QsZTc9KG9kPXNlbGYpPT1udWxsP3ZvaWQgMDooT049b2QuTWF0aCk9PW51bGw/dm9pZCAwOihEVD1PTi5hYnMpPT1udWxsP3ZvaWQgMDoKKGZXPURULmJpbmQpPT1udWxsP3ZvaWQgMDpmVy5jYWxsKERULE1hdGgpLExXLFJkLHJELFY3LFU4PShSZD1zZWxmKT09bnVsbD92b2lkIDA6KExXPVJkLk9iamVjdCk9PW51bGw/dm9pZCAwOihWNz1MVy5pcyk9PW51bGw/dm9pZCAwOihyRD1WNy5iaW5kKT09bnVsbD92b2lkIDA6ckQuY2FsbChWNyxPYmplY3QpLEc3LEh3LGdxPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gUlswXS5jYWxsKHRoaXMsMTYsSyx6LEIpfSxlUyxQdyxoWT0oUHc9c2VsZik9PW51bGw/dm9pZCAwOihlUz1Qdy5NYXRoKT09bnVsbD92b2lkIDA6KEh3PWVTLm1heCk9PW51bGw/dm9pZCAwOihHNz1Idy5iaW5kKT09bnVsbD92b2lkIDA6RzcuY2FsbChIdyxNYXRoKSxnaT1mdW5jdGlvbihCKXtyZXR1cm4gT1syOV0uY2FsbCh0aGlzLDMwLEIpfSwkQyxxeCxpSCx5NyxZQz0oaUg9c2VsZik9PW51bGw/dm9pZCAwOigkQz1pSC5NYXRoKT09bnVsbD92b2lkIDA6KHk3PSRDLmxvZyk9PW51bGw/dm9pZCAwOihxeD15Ny5iaW5kKT09Cm51bGw/dm9pZCAwOnF4LmNhbGwoeTcsTWF0aCksT1g9ZnVuY3Rpb24oQil7cmV0dXJuIGtbMTBdLmNhbGwodGhpcywxOCxCKX0sY3csU1MsbW0sbEgsZlE9KFNTPXNlbGYpPT1udWxsP3ZvaWQgMDoobW09U1MuTWF0aCk9PW51bGw/dm9pZCAwOihjdz1tbS5wb3cpPT1udWxsP3ZvaWQgMDoobEg9Y3cuYmluZCk9PW51bGw/dm9pZCAwOmxILmNhbGwoY3csTWF0aCksRU4sWDksdUgsYWQsaWM9KEVOPXNlbGYpPT1udWxsP3ZvaWQgMDooWDk9RU4uT2JqZWN0KT09bnVsbD92b2lkIDA6KGFkPVg5LmlzRXh0ZW5zaWJsZSk9PW51bGw/dm9pZCAwOih1SD1hZC5iaW5kKT09bnVsbD92b2lkIDA6dUguY2FsbChhZCxPYmplY3QpLGhELGRELGtDLHRELHZFPWZ1bmN0aW9uKEIpe3JldHVybiBEWzE2XS5jYWxsKHRoaXMsMTcsQil9LEhsPWZ1bmN0aW9uKEIpe3JldHVybiBHWzIyXS5jYWxsKHRoaXMsMixCKX0sVU49KGREPXNlbGYpPT1udWxsP3ZvaWQgMDoodEQ9ZEQuT2JqZWN0KT09bnVsbD92b2lkIDA6CihoRD10RC5zZWFsKT09bnVsbD92b2lkIDA6KGtDPWhELmJpbmQpPT1udWxsP3ZvaWQgMDprQy5jYWxsKGhELE9iamVjdCksTXgsbzY9ZnVuY3Rpb24oQil7cmV0dXJuIG1bMTNdLmNhbGwodGhpcywyOSxCKX0sd0Qsbmc9ZnVuY3Rpb24oQix6KXt2YXIgSz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEo9Sy5zbGljZSgpO3JldHVybihKLnB1c2guYXBwbHkoSixhcmd1bWVudHMpLEIpLmFwcGx5KHRoaXMsSil9fSxJZCxGOSxrUj0oSWQ9c2VsZik9PW51bGw/dm9pZCAwOih3RD1JZC5PYmplY3QpPT1udWxsP3ZvaWQgMDooRjk9d0QuY3JlYXRlKT09bnVsbD92b2lkIDA6KE14PUY5LmJpbmQpPT1udWxsP3ZvaWQgMDpNeC5jYWxsKEY5LE9iamVjdCksQnAsc3EsenM9W10sS3oseUg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEY1KGtbOF0oNCxHMi5hcHBseSgwLGFyZ3VtZW50cykpLCExKX0sSmQsYk49KEpkPXNlbGYpPT1udWxsPwp2b2lkIDA6KHNxPUpkLk1hdGgpPT1udWxsP3ZvaWQgMDooS3o9c3EuZmxvb3IpPT1udWxsP3ZvaWQgMDooQnA9S3ouYmluZCk9PW51bGw/dm9pZCAwOkJwLmNhbGwoS3osTWF0aCksQ3osYkksQWQsdnAscTE9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVs0Nl0uY2FsbCh0aGlzLDQsQix6KX0sVEo9KEN6PXNlbGYpPT1udWxsP3ZvaWQgMDooQWQ9Q3ouT2JqZWN0KT09bnVsbD92b2lkIDA6KGJJPUFkLmZyZWV6ZSk9PW51bGw/dm9pZCAwOih2cD1iSS5iaW5kKT09bnVsbD92b2lkIDA6dnAuY2FsbChiSSxPYmplY3QpLFRzLGpsLHB6LFF6LHpHPShUcz1zZWxmKT09bnVsbD92b2lkIDA6KFF6PVRzLk9iamVjdCk9PW51bGw/dm9pZCAwOihwej1Rei5kZWZpbmVQcm9wZXJ0aWVzKT09bnVsbD92b2lkIDA6KGpsPXB6LmJpbmQpPT1udWxsP3ZvaWQgMDpqbC5jYWxsKHB6LE9iamVjdCksTks9WzIsMyw0XSxjbD1mdW5jdGlvbihCKXtyZXR1cm4gWVsyNl0uY2FsbCh0aGlzLDY1LEIpfSxueixaaywKV3AsZ1YseFY9KG56PXNlbGYpPT1udWxsP3ZvaWQgMDooV3A9bnouT2JqZWN0KT09bnVsbD92b2lkIDA6KGdWPVdwLmRlZmluZVByb3BlcnR5KT09bnVsbD92b2lkIDA6KFprPWdWLmJpbmQpPT1udWxsP3ZvaWQgMDpaay5jYWxsKGdWLE9iamVjdCksTlg9ZnVuY3Rpb24oKXtyZXR1cm4gbVsxNV0uY2FsbCh0aGlzLDMpfSxPcSx4QixpUT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFlbNDldLmNhbGwodGhpcywxMixLLEIseil9LEJJPXt9LERrLGZ6LGVlPShEaz1zZWxmKT09bnVsbD92b2lkIDA6KE9xPURrLk9iamVjdCk9PW51bGw/dm9pZCAwOih4Qj1PcS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpPT1udWxsP3ZvaWQgMDooZno9eEIuYmluZCk9PW51bGw/dm9pZCAwOmZ6LmNhbGwoeEIsT2JqZWN0KSxvMCxxSz1mdW5jdGlvbihCKXtyZXR1cm4geVs0Ml0uY2FsbCh0aGlzLDEsQil9LEx6LFIwLHJWLFZ6PShvMD1zZWxmKT09bnVsbD92b2lkIDA6KEx6PW8wLlJlZmxlY3QpPT1udWxsPwp2b2lkIDA6KFIwPUx6LnNldFByb3RvdHlwZU9mKT09bnVsbD92b2lkIDA6KHJWPVIwLmJpbmQpPT1udWxsP3ZvaWQgMDpyVi5jYWxsKFIwLFJlZmxlY3QpLEdzLEhwLGVsLGlxPWZ1bmN0aW9uKEIpe3JldHVybiBHWzM4XS5jYWxsKHRoaXMsMSxCKX0sdVE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gUlsyNF0uY2FsbCh0aGlzLDE2LEIseil9LFBwLCRCPShIcD1zZWxmKT09bnVsbD92b2lkIDA6KGVsPUhwLlJlZmxlY3QpPT1udWxsP3ZvaWQgMDooR3M9ZWwuY29uc3RydWN0KT09bnVsbD92b2lkIDA6KFBwPUdzLmJpbmQpPT1udWxsP3ZvaWQgMDpQcC5jYWxsKEdzLFJlZmxlY3QpLHFYLGlJLHl6LFlCLEFlPShPWzhdKDEwLDcsbUkpLChpST1zZWxmKT09bnVsbD92b2lkIDA6KHFYPWlJLk1hdGgpPT1udWxsP3ZvaWQgMDooWUI9cVgucmFuZG9tKT09bnVsbD92b2lkIDA6KHl6PVlCLmJpbmQpPT1udWxsP3ZvaWQgMDp5ei5jYWxsKFlCLE1hdGgpKSx4eT1mdW5jdGlvbihCLHosSyxKLEMsYiwKQSx2LHAsUSxuKXtyZXR1cm4gWVszOF0uY2FsbCh0aGlzLDEwLEosSyx6LEIsQyxiLEEsdixwLFEsbil9LGc5PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gWVsxOV0uY2FsbCh0aGlzLDIsQixLLHosSixDLGIsQSx2LHApfSxjcD1nWzM2XSgzOCw2NjIyOSwyMiw3KSxTbD1nWzM2XSgzNiw2NjIwMiwxMTUsMTIpLG1lPWdbMzZdKDYsNjI0NjUsNTM2MSw5KSxsST1nWzM2XSgzNyw2MTQ3NiwyMzUsNSksRXE9Z1szNl0oNiw2NjE5OCw5Niw0KSxrUD1mdW5jdGlvbihCKXtyZXR1cm4gRFswXS5jYWxsKHRoaXMsMSxCKX0sWGk9Z1szNl0oNCw2NjE4MCw3NCwxOCksdUk9Z1szNl0oNSw0MjE5NiwzNiw0KSxhMD1nWzM2XSgzNyw2NjE3MSw5Niw5KSxoZD1nWzM2XSgzNiw2NjE2Miw4MCw5KSxkVj1nWzM2XSg1LDI0NjkwLDc5LDcpLGtCPWdbMzZdKDUsNjYxNTQsMjUsOCksVEg9Z1szNl0oNCw2MTI4MSwyMDU2LDUpLHRkPWdbMzZdKDQsNjYxNTAsMTIxLDQpLFVxPWdbMzZdKDQsCjY2MDg3LDExNiw2MyksTVg9Z1szNl0oNiw2NjA2OSwyNCwxOCksd1Y9Z1szNl0oMzYsNjI3MTUsNjQsMjQpLEkwPWdbMzZdKDM3LDI3ODEsOTIsMTA4KSxGaT1nWzM2XSgzNyw1NDgwNyw3OSwzKSxCWD17MzoxMywxMjoxNDQsNjMyMzI6MzgsNjMyMzM6NDAsNjMyMzQ6MzcsNjMyMzU6MzksNjMyMzY6MTEyLDYzMjM3OjExMyw2MzIzODoxMTQsNjMyMzk6MTE1LDYzMjQwOjExNiw2MzI0MToxMTcsNjMyNDI6MTE4LDYzMjQzOjExOSw2MzI0NDoxMjAsNjMyNDU6MTIxLDYzMjQ2OjEyMiw2MzI0NzoxMjMsNjMyNDg6NDQsNjMyNzI6NDYsNjMyNzM6MzYsNjMyNzU6MzUsNjMyNzY6MzMsNjMyNzc6MzQsNjMyODk6MTQ0LDYzMzAyOjQ1fSxzcj1nWzM2XSg1LDYxRTMsNTMzOSwyKSx1Zj1mdW5jdGlvbihCKXtyZXR1cm4gWVs5XS5jYWxsKHRoaXMsNDAsQil9LHp2PWdbMzZdKDQsMTc0MTcsOTk0OCw3KSxLQj1nWzM2XSg2LDY2MDY0LDMxLDIpLEoxPWdbMzZdKDM2LDY2MDUwLDUxLDE0KSxDQj0KZ1szNl0oNSw2NjAyMCw1OSwzMCksYnA9Z1szNl0oMzYsNjYwMTEsNDksOSksQTE9Z1szNl0oMzYsNjZFMywxMTUsMTEpLHZYPWdbMzZdKDM3LDY1OTg5LDkwLDExKSxUdj1nWzM2XSgzNiw2NTk4Niw3NiwzKSxGNT1mdW5jdGlvbihCLHope3JldHVybiBSWzQ2XS5jYWxsKHRoaXMsNTYsQix6KX0saHg9ZnVuY3Rpb24oQil7cmV0dXJuIG1bMl0uY2FsbCh0aGlzLDE2LEIpfSxRZz1nWzM2XSgzNyw2NTk2OCwxMTYsMTApLGpnPWdbMzZdKDUsNDI3ODMsMSwxMyksY2s9Z1szNl0oMzYsNjU5NjUsNjEsMykscEI9Z1szNl0oMzgsMTk2LDk1NTMsMiksUU09Z1szNl0oMzcsMjU3OSwzNCwxNCksbkI9Z1szNl0oNSw5MDY5LDU1MDYsNCksWm89Z1szNl0oNCw2NTg5Myw5OCw3MiksV1g9Z1szNl0oNiw2NTg3OSwxMDAsMTQpLGdmPWdbMzZdKDM4LDY1ODA2LDQ4LDczKSxOZD1mdW5jdGlvbihCLHope3JldHVybiBIWzQxXS5jYWxsKHRoaXMsMjMseixCKX0sT3I9Z1szNl0oNCw2NTgwMCwxOSw2KSwKeHE9WzBdLFFFPWdbMzZdKDYsMjQ5NTUsNjYsNSksRG89Z1szNl0oNSw2NDU2MSwxMTA2LDMpLGZCPWdbMzZdKDM2LDgyNDMsODEsMjIpLGR4PWZ1bmN0aW9uKEIpe3JldHVybiBtWzE5XS5jYWxsKHRoaXMsMzQsQil9LEJiPWdbMzZdKDM4LDY1Nzc4LDg4LDQpLG8xPWdbMzZdKDM2LDY1NzAyLDYxLDc2KSxMQj1nWzM2XSgzNyw0Mjc0OSwxMjIsMiksUjE9Z1szNl0oNSw2NTY0Myw1OCwxMCkscmY9Z1szNl0oMzcsMzE0MzQsNDQxMCw0KSxWTT1nWzM2XSg1LDYwNzU2LDEyMywxNSksUDg9Z1szNl0oMzcsNjU2MjcsODcsMTYpLGNUPVsyLDVdLGRKPWZ1bmN0aW9uKEIpe3JldHVybiBrWzddLmNhbGwodGhpcywxOCxCKX0sR3Y9Z1szNl0oMzgsNjU2MTksMTI3LDgpLEhYPWdbMzZdKDYsNjU2MDEsMjEsMTgpLHdfPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMTldLmNhbGwodGhpcywzKX0sZWc9Z1szNl0oMzYsNjU1OTAsMjcsMTEpLFBYPWdbMzZdKDM4LDMzMDExLDIzNDUsNSksJHE9Z1szNl0oMzgsCjY1NTczLDgyLDE3KSxCRD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZVs3XS5jYWxsKHRoaXMsNSxLLEIseixKKX0scWQ9Z1szNl0oNiw2NTU2MCwyOSwxMyksRXQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4gT1syNF0uY2FsbCh0aGlzLDI1LEIseixLLEosQyxiLEEsdil9LFdJPXt9LGlwPWdbMzZdKDYsNjU0NDcsNTIsNzEpLFkwPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBIWzFdLmNhbGwodGhpcywyLEIseixLLEopfSx5TT1nWzM2XSgzNiw2MTk5LDQyOTIsMyksWXE9Z1szNl0oMzgsNjI4MTUsMjQsMTIpLGNYPWdbMzZdKDM4LDY1NDQzLDY5LDQpLFNnPWdbMzZdKDM4LDI3OTQ3LDI5LDIyKSxtUD1nWzM2XSg1LDY1MzkwLDEyNyw1MCksbHA9Z1szNl0oNCw2NTM4MSw5NSw5KSxBej1nWzM2XSgzOCw2NTM2NiwxMTIsMTUpLEVyPWdbMzZdKDQsNjUzNDUsNzcsMjEpLFhQPWdbMzZdKDYsNjUzMDksMjksMzYpLGk5PWdbMzZdKDYsNDk3ODcsNDQxOCw4KSxCSD1mdW5jdGlvbihCLAp6LEssSixDLGIsQSl7cmV0dXJuIG1bMThdLmNhbGwodGhpcywxNix6LEIsSyxKLEMsYixBKX0sdXA9Z1szNl0oMzcsNjUyODgsMTAxLDIxKSxoUT1nWzM2XSgzNyw2NTI2MywzLDI1KSxhMT1nWzM2XSg0LDU2MjYsODcyLDEyKSxoMT1mdW5jdGlvbihCKXtyZXR1cm4gR1syNl0uY2FsbCh0aGlzLDcsQil9LGRmPWdbMzZdKDUsMzEwMzksMjI5LDYpLGtxPWdbMzZdKDM3LDM3NDUwLDg2LDY0KSx0MT1nWzM2XSgzOCw2NTI1NiwxMDQsNyksVXI9Z1szNl0oNSw2NTI0NiwxLDEwKSxNZD1nWzM2XSgzNyw2NTE5NywxMTcsNDkpLGdtPWZ1bmN0aW9uKEIpe3JldHVybiBEWzE1XS5jYWxsKHRoaXMsNixCKX0sd2Y9Z1szNl0oMzYsMTIwLDI5MDMsMSksSTE9Z1szNl0oNiw2NTE5MiwxMDUsNSksaU49Z1szNl0oNiw2NTE1MCwyMiw0MiksWVI9e30sRlA9Z1szNl0oNCw0NzEwLDEwMiwxNSksV2o9ZnVuY3Rpb24oQil7cmV0dXJuIFlbNDNdLmNhbGwodGhpcywzLEIpfSxCMz1nWzM2XSg2LDY1MTQ3LAoxNiwzKSxzUT1nWzM2XSgzNyw2NTA3Niw3Myw1OCksQ0M9Z1szNl0oNSw2NTA3MSw1NCw1KSx6Qj1nWzM2XSg2LDY1MDA2LDc5LDY1KSxLUD1nWzM2XSgzNyw2NDk5NiwwLDEwKSxzZz1mdW5jdGlvbihCLHope3ZhciBLPVsxMyw5LDU5XSxKPUcyLmFwcGx5KDIsYXJndW1lbnRzKS5tYXAoZnVuY3Rpb24oQyl7cmV0dXJuIE9bMjVdKDEsQyl9KTtyZXR1cm4gUltLWzBdXShLWzFdLEhbMjVdKEtbMl0sT1tLWzFdXSgyNSwzNCksQiksW09bMjVdKDUseildLmNvbmNhdChlWzMzXSgyOCxKKSkpfSxhTj1mdW5jdGlvbihCKXtyZXR1cm4gT1szXS5jYWxsKHRoaXMsNCxCKX0sZVc9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzFdLmNhbGwodGhpcywxNixCKX0sa2c9ZnVuY3Rpb24oKXtyZXR1cm4gUlsxMV0uY2FsbCh0aGlzLDEpfSxQdD1mdW5jdGlvbihCLHope3JldHVybiBnWzIwXS5jYWxsKHRoaXMsMjIsQix6KX0sSlY9Z1szNl0oMzYsNjQ5OTMsMzAsMyksQ1A9Z1szNl0oNSw2NDkxNSw1NCwKNzgpLGJrPWdbMzZdKDYsMzAzNywyMjY2LDIpLEFWPWdbMzZdKDUsNjQ5MDgsNjEsNyksdjM9Z1szNl0oNSw2NDg5NCw3NCwxNCksVEI9Z1szNl0oMzgsMjM0MDgsMzcsNDMpLGpqPWdbMzZdKDYsNjQ4MjUsMTMsNjkpLFZ3PWdbMzZdKDM3LDYzMjQxLDUxNzIsNSkscFA9Z1szNl0oMzYsMTM4MTEsMTAzMiwzKSxRbj1nWzM2XSgzNiw2NDc2Niw4NSw1OSksUU89ZnVuY3Rpb24oKXtyZXR1cm4gRFsxOV0uY2FsbCh0aGlzLDgpfSxsVD1nWzM2XSgzOCw2NDc1OSwxMCw3KSxuUD1nWzM2XSg2LDY0NzUwLDUsOSksWkQ9Z1szNl0oNSwyNzcyLDIyLDQpLFczPWdbMzZdKDM3LDY0NzExLDI5LDIwKSxOQT1nWzM2XSg0LDY0NzAwLDExMSwzKSxPUT1nWzM2XSgzOCw2NDY5Nyw1NCwzKSx4dj1nWzM2XSgzNyw2NDY5MSw2OCw2KSxERD1nWzM2XSg2LDY0Njc5LDEyNSwxMiksZlA9Z1szNl0oMzYsNjQ2NjksMCwxMCksb0Q9Z1szNl0oMzYsNjQ2NjEsMyw4KSxqcz1mdW5jdGlvbigpe3JldHVybiBPWzVdLmNhbGwodGhpcywKMSl9LExQPWdbMzZdKDM4LDQ5Mzk2LDU1MTksNCksUkQ9Z1szNl0oNCw2NDU2NCw2OSw3MikscmM9Z1szNl0oMzYsMTc0ODMsMTAxNSw4KSxWbj1nWzM2XSgzNiw2NDU1MCw1MSwxNCksR0I9Z1szNl0oNSw0NDcxNiw3MjQsNSksSDM9Z1szNl0oNSw2NDQ5OSw3LDUxKSxlaj1nWzM2XSg1LDY0NDg0LDMzLDE1KSxQMz1nWzM2XSg1LDY0NDczLDYyLDExKSwkdj1nWzM2XSg1LDY0NDYzLDY3LDEwKSxxQT1nWzM2XSg1LDMxMzg0LDk2LDUpLE5PPVswLDAsMzIsNTEsNjQsNzUsODMsOTAsOTYsMTAyLDEwNywxMTEsMTE1LDExOSwxMjIsMTI2LDEyOCwxMzEsMTM0LDEzNiwxMzksMTQxLDE0MywxNDUsMTQ3LDE0OSwxNTEsMTUzLDE1NCwxNTYsMTU4LDE1OSwxNjAsMTYyLDE2MywxNjUsMTY2XSxpaz1nWzM2XSg1LDY0NDYwLDYzLDMpLHluPWdbMzZdKDQsNjQzOTEsNjIsNjkpLFl2PWdbMzZdKDM2LDY0Mzg2LDExNiw1KSxjMz1nWzM2XSg1LDU1MTIxLDg2LDIpLFNqPWdbMzZdKDYsNjQzODMsCjEzLDMpLHF1PWdbMzZdKDYsNDY3NzAsNTQ1LDQpLG1BPWdbMzZdKDM4LDY0Mzc1LDYxLDgpLGxrPWdbMzZdKDUsMzM0MzksMTIsOCksRVE9Z1szNl0oNiw2NDMwOSwxMDcsNjYpLHlDPVs0LDZdLEhjPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBHWzI4XS5jYWxsKHRoaXMsMTQsQix6LEssSil9LFhVPWdbMzZdKDQsNjQzMDAsOTEsMyksZ0o9Z1szNl0oMzYsODI1OSwxMzI4LDMpLFNOPWdbMzZdKDQsMzM3NjUsOTg2LDcpLE1IPWZ1bmN0aW9uKEIpe3JldHVybiBnWzI2XS5jYWxsKHRoaXMsOCxCKX0sdWs9Z1szNl0oMzcsMTkxMDAsNjk1NCwxMCksYUQ9Z1szNl0oNSw2NDI5NCwyOCw2KSxoVj1nWzM2XSg1LDQ3MDg0LDUyOSw0KSxkYz1nWzM2XSgzNywyMDA1OCwyOTgsOCksa3Y9Z1szNl0oMzgsNjQyODgsMTAsNiksRHQ9Z1szNl0oNiw2NDI3Miw4MCwxNiksdFY9Z1szNl0oNiw2NDI2MSw1LDExKSxVUT1nWzM2XSgzNiw0NDU1MCwzNiwxNCksTUE9Z1szNl0oMzYsMzIwNzMsODksNSksCndjPWdbMzZdKDYsNjQyMjIsNDksNiksSUQ9Z1szNl0oMzYsMjMyMDAsODksNjUpLEZVPWdbMzZdKDM4LDM2MzA2LDcyNywzKSxFcD1nWzM2XSgzNyw2NDIxOSwzMSwzKSxCTz1nWzM2XSgzNiw2NDE3MSw2MiwxKSxzaj1nWzM2XSg0LDY0MTAwLDE3LDcxKSx6Uj1nWzM2XSg2LDY0MDI1LDE1LDU5KSxLQT1nWzM2XSgzOCwzNDUwNCwxLDMpLHJCPWZ1bmN0aW9uKCl7cmV0dXJuIEdbNl0uY2FsbCh0aGlzLDcpfSxKbT1nWzM2XSgzNiw2Mzk1NCwxMTgsNzEpLENBPWdbMzZdKDM4LDYzOTQ4LDc3LDYpLGJ5PWdbMzZdKDYsNjM5MDQsMSw1KSxmNT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gWVszNF0uY2FsbCh0aGlzLDE2LHosSyxCLEopfSxBbT1nWzM2XSg2LDYzODMyLDQsNzIpLHZPPWdbMzZdKDM4LDM1OTAwLDAsMzkpLEZKPWdbMzZdKDM3LDYzODI3LDgsNSksTmk9ZnVuY3Rpb24oQil7cmV0dXJuIGtbNF0uY2FsbCh0aGlzLDksQil9LHNGPWZ1bmN0aW9uKCl7cmV0dXJuIG1bNDNdLmNhbGwodGhpcywKMil9LHhLPWdbMzZdKDQsMjg0OTAsMjg4Nyw2KSxUUj1mdW5jdGlvbihCLHope3JldHVybiBtWzQ2XS5jYWxsKHRoaXMsMzksQix6KX0sano9Z1szNl0oMzcsMTEyNCwxMzc0LDE3KSxwQT1nWzM2XSgzOCw2MzgxOCw1Niw5KSxRWj1nWzM2XSgzOCwxNjUsNjcwMSwxKSxuQT1nWzM2XSgzNiw2MTE5Miw1Nyw1KSxaWD1nWzM2XSg0LDYzODA2LDQ4LDkpLFdPPWdbMzZdKDQsNjM3NzMsNTcsMzMpLGcxPWdbMzZdKDQsNjM3MDYsNDUsNjcpLEhTPWZ1bmN0aW9uKEIpe3JldHVybiBnMFs2XS5jYWxsKHRoaXMsNCxCKX0sTkk9Z1szNl0oNiw0OTcyMyw0ODEsNCksang9Z1szNl0oMzgsNDI4OTYsMTE1LDEwKSxPaj1nWzM2XSgzNywxNzIwLDUyMCw4KSx4JD1nWzM2XSg0LDYzNjUxLDExMiw0KSxMZz1mdW5jdGlvbihCLHosSyl7cmV0dXJuIHlbNDBdLmNhbGwodGhpcywyNCxCLHosSyl9LERYPWdbMzZdKDM3LDYzNjQ3LDQzLDQpLHJ5PWdbMzZdKDM2LDYzNjQ1LDExOSwyKSxmQT1nWzM2XSg0LAo2MzYzMywxMTYsMTIpLG9QPWdbMzZdKDM2LDQwNDk2LDE2MzgsMTEpLExBPWdbMzZdKDQsNjM1ODYsMTE0LDE2KSxSUD1nWzM2XSg0LDYzNTU5LDM1LDQpLCQwPWdbMzZdKDM3LDYzNTQwLDEyMiwxOSksblk9Z1szNl0oNSw2MzUzOCw4MSwyKSxyMT1nWzM2XSg0LDYzNTI4LDQsMTApLENZPWdbMzZdKDUsNjM1MjAsMjAsOCksVlo9Z1szNl0oNSw2MzUwOCwxMywxMiksR1I9Z1szNl0oNSw4NDExLDI1OTgsNSksSE89Z1szNl0oNCw2MzQzMCw2MSw3MiksZXo9Z1szNl0oNCw2MzM4MCw4Miw1MCksUE89Z1szNl0oNCw2MzM3OCw1MCwyKSwkJD1nWzM2XSg1LDYzMzc1LDY5LDMpLHFJPWdbMzZdKDM4LDYzMjcxLDczLDY4KSxpeT1nWzM2XSgzNywxOTgyNSwzLDczKSx5Wj1nWzM2XSg1LDM2NTY3LDQ3NzcsNCksUDY9ezA6IkFuIHVua25vd24gZXJyb3IgaGFzIG9jY3VycmVkLiBUcnkgcmVsb2FkaW5nIHRoZSBwYWdlLiIsMToiRXJyb3I6IEludmFsaWQgQVBJIHBhcmFtZXRlcihzKS4gVHJ5IHJlbG9hZGluZyB0aGUgcGFnZS4iLAoyOiJTZXNzaW9uIGV4cGlyZWQuIFJlbG9hZCB0aGUgcGFnZS4iLDEwOidJbnZhbGlkIGFjdGlvbiBuYW1lLCBtYXkgb25seSBpbmNsdWRlICJBLVphLXovXyIuIERvIG5vdCBpbmNsdWRlIHVzZXItc3BlY2lmaWMgaW5mb3JtYXRpb24uJ30seVA9Z1szNl0oMzcsNTYwMzEsMjM3OSw2KSxZJD1nWzM2XSgzNiw2MzI1OCwxMjUsMTMpLHhSPWZ1bmN0aW9uKEIpe3JldHVybiBnWzE3XS5jYWxsKHRoaXMsMSxCKX0sY089Z1szNl0oMzcsNjMxOTEsMTE4LDY3KSx6Qz1mdW5jdGlvbigpe3JldHVybiBEWzMyXS5jYWxsKHRoaXMsNSl9LE1jPWZ1bmN0aW9uKEIpe3JldHVybiB5WzM0XS5jYWxsKHRoaXMsMTYsQil9LFN6PWdbMzZdKDQsNjMxODUsOSw2KSxtOD1nWzM2XSgzNyw2MzExOCw1Niw2NyksblM9Z1szNl0oMzcsNjMxMDcsMTIzLDExKSxseT1nWzM2XSg1LDYzMDQzLDMsNjQpLEVqPWdbMzZdKDUsNjMwNDAsNTksMyksWHU9Z1szNl0oMzYsMjg0OSw3MTI2LDMpLHV5PWdbMzZdKDM2LDYzMDE0LAo5OCwzKSxOYz1nWzM2XSgzOCw1ODYzOSw1MzI3LDYpLEZfPXt9LGFQPWdbMzZdKDUsNjMwMTAsNjYsNCksaG09Z1szNl0oNCwxNDA4NCw0NDgwLDgpLGQxPWdbMzZdKDYsNjI5NDMsNjYsNjcpLGskPWdbMzZdKDQsNjI5MjYsNDMsMTcpLHRtPWdbMzZdKDM2LDYyOTIyLDQ5LDQpLHlBPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMjRdLmNhbGwodGhpcywxKX0sVWo9Z1szNl0oNSw2Mjg0Nyw1Nyw3NSksdkw9ZnVuY3Rpb24oQil7cmV0dXJuIFJbM10uY2FsbCh0aGlzLDQwLEIpfSxNST1nWzM2XSgzNiw2Mjg0MSwyOCw2KSx3MT1nWzM2XSg2LDYyODE3LDI1MSwxMCksSVA9Z1szNl0oMzYsMjEyNjEsMzEyOCwyKSxGdT1nWzM2XSgzNiw2MjczOSwxMTMsNzYpLFNFPWdbMzZdKDM4LDYyNzIzLDcwMiw1KSxCQj1nWzM2XSgzNiw2MjYzMiw5LDMxKSxZTT1nWzM2XSgzNyw2MjYxOCwxMjQsMTQpLEd1PWZ1bmN0aW9uKCl7cmV0dXJuIGtbMjVdLmNhbGwodGhpcywxNil9LHNfPWdbMzZdKDM2LDMxNDk0LAoyMSwxMSkselk9Z1szNl0oMzcsNjI2MTAsNTcsOCksSlU9Z1szNl0oMzYsNDMwMzEsNTg1Niw4KSx6TD1nWzM2XSgzNywzODgwLDM5MDIsMSksS0o9Z1szNl0oMzcsNjI2MDIsMTA0LDgpLEpqPWdbMzZdKDM4LDYyNjAwLDEyNCwyKSxDSj1nWzM2XSg1LDYyNTk0LDE0LDYpLGJDPWdbMzZdKDM3LDI1NjYsOTA3LDYpLEFqPWdbMzZdKDQsNjI1OTEsMzgsMyksdkI9Z1szNl0oMzYsMTM4LDQzNzAsMSksVFk9Z1szNl0oMzcsNDA4NDQsMTIzLDEwKSxqbj1nWzM2XSgzOCw2MjQ5NSw4Nyw3OSkscEo9Z1szNl0oNiw2MjQ5MSwzMCw0KSxRcj1nWzM2XSgzNyw2MjQxMywxMDYsNzgpLG5KPWdbMzZdKDQsNjI0MDQsMTEsOSksWlo9Z1szNl0oNSw1MjA5NSwyMTk4LDYpLFdCPWdbMzZdKDYsNTI3OSwyODkxLDMpLGdOPWdbMzZdKDM4LDYyMzk2LDkyLDgpLE5WPWdbMzZdKDM4LDYyMzU4LDE5LDcpLE9fPWdbMzZdKDM2LDYyMzU0LDEyMSw0KSx4SD1nWzM2XSgzOCw2MjM0OCwyMCw2KSxEWj1nWzM2XSgzOCwKNjIyODYsMjUsNjIpLGZKPWdbMzZdKDQsNDA0ODAsMiwyOCksJEY9Z1szNl0oMzgsNjIyNTQsMiwxOSksSTM9ZnVuY3Rpb24oQix6LEspe3JldHVybiBIWzddLmNhbGwodGhpcywyMCxCLHosSyl9LG90PWdbMzZdKDYsNTY5NzYsNjUsMjUpLExKPWdbMzZdKDM4LDYyMTgzLDQ1LDcxKSxLVT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gbVsxNF0uY2FsbCh0aGlzLDI2LEIseixLLEopfSxQTD1mdW5jdGlvbihCKXtyZXR1cm4gZ1s1XS5jYWxsKHRoaXMsMSxCKX0sUnQ9Z1szNl0oMzgsNjIxNzksNjMsNCksck49Z1szNl0oNSw2MjA4NiwxNiw5MyksVnI9Z1szNl0oMzgsNjIwMTQsNjQsNzIpLEdZPWdbMzZdKDM3LDYxOTM4LDEyNiw3NiksSEI9Z1szNl0oNCw2MTkwNiw3OCwxMSksbmY9Z1szNl0oNSwzMzQwOCw0NDQ3LDUpLGVuPWdbMzZdKDYsNjE4OTksNjcsNyksUEI9Z1szNl0oMzgsNjE4MjgsMTE3LDcxKSxoVD1nWzM2XSg1LDM1NjE2LDk5LDYxKSwkSD1nWzM2XSg2LDYxODI0LDExOSwKNCkscVY9Z1szNl0oMzcsNjE4MDcsMzksMTcpLGlDPWdbMzZdKDM4LDYxODAxLDYwLDYpLHlyPWdbMzZdKDUsNjE3NzksODcsMjIpLFlIPWdbMzZdKDQsNjE3NjMsODksMTYpLGNCPWdbMzZdKDUsNDMwNTAsMTEzLDIyKSxTbj1nWzM2XSgzOCwxOTMyNiwyNjU5LDYpLG1pPWdbMzZdKDUsNjE2OTYsMTI3LDY3KSxsQz1nWzM2XSgzNyw2MTY2NCwxMDMsMjQpLEVfPWdbMzZdKDM4LDE3MDUsMjczLDkpLFh2PWdbMzZdKDQsNjE2NTQsMjQsMTApLHVDPWdbMzZdKDM3LDQwNDAwLDUxLDYpLGF0PWdbMzZdKDM3LDYxNjQ4LDgyLDYpLGhqPWdbMzZdKDM3LDYxNTk1LDQsNDcpLGROPWdbMzZdKDM2LDYxNTg2LDI2LDkpLGtIPWZ1bmN0aW9uKEIpe3JldHVybiBZWzM3XS5jYWxsKHRoaXMsMTksQil9LHRqPWdbMzZdKDUsNjE1MDksMTAwLDc3KSxaQj1mdW5jdGlvbigpe3JldHVybiBtWzE1XS5jYWxsKHRoaXMsNDApfSxVXz1nWzM2XSgzNiw2MTUwMiw3Myw3KSxNVj1nWzM2XSg2LDM5Mjk5LDExNCwKMTgpLHdOPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBnWzZdLmNhbGwodGhpcywxNyxCLHosSyxKKX0sSXQ9Z1szNl0oMzYsMTIzLDMxMjQsMSksY3o9e30sRnY9Z1szNl0oNSw2MTQ2NCwxMDcsMTApLEJ1PWdbMzZdKDYsMjE4MzEsMzY0OSw4KSxzOT1nWzM2XSg1LDYxNDUyLDg3LDEyKSxMUj1mdW5jdGlvbigpe3pWLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sS0k9Z1szNl0oNiw2MTQzMyw4NiwxOSksSmk9Z1szNl0oNCw2MTQyNSwxNyw4KSxDST1nWzM2XSgzOCw2MTQyMiw4OCwzKSxiQT1nWzM2XSgzNyw2MTM2MCwxMTEsNjIpLEFpPWdbMzZdKDQsNjEyOTIsMTgsNjgpLHZ1PWdbMzZdKDM4LDYxMjg2LDIsNiksVFY9Z1szNl0oMzcsNjEyNTcsNSwyKSxqRz1nWzM2XSg2LDYxMjQ3LDEwNywxMCkscEk9Z1szNl0oMzcsMTIwNiw1OSwxOSksUXk9Z1szNl0oMzYsMzIyNzksMTY5NSw0KSxmVT1nWzM2XSg2LDQ2NTYyLDI4NTUsNSksYTk9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMjddLmNhbGwodGhpcywKMTAsQil9LG5JPWdbMzZdKDM2LDEyMjU1LDk1LDc0KSxPZz1mdW5jdGlvbihCKXtyZXR1cm4geVsxN10uY2FsbCh0aGlzLDE3LEIpfSxaUj1nWzM2XSgzOCwzNjI5OCw5OSwzKSxybT1nWzM2XSg1LDYxMjE5LDExOCw3KSxXdT1mdW5jdGlvbigpe3JldHVybiBtWzE0XS5jYWxsKHRoaXMsMil9LGdHPWdbMzZdKDM3LDQ0ODkyLDU0OTYsMiksWDQ9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMzNdLmNhbGwodGhpcywyNSxCKX0sTlc9Z1szNl0oMzcsNjExOTcsMTEyLDIyKSxUTD1nWzM2XSgzOCw2MTE5NCwxOTEsMSksTzk9Z1szNl0oMzgsOTgwOSwxMjUsMzApLHhkPWdbMzZdKDM4LDI5NzY3LDcyNCw0KSxtRj1nWzM2XSg2LDYxMTc2LDM5LDE2KSxEUj1nWzM2XSgzNiw2MTExMSwxMjAsNjUpLGZJPWdbMzZdKDQsNjExMDMsMjYsOCksb1E9Z1szNl0oNCw1Njc0LDU0NTAsOCksTEk9Z1szNl0oMzcsMzk0NjMsMTA3LDMpLFJRPWdbMzZdKDUsNDAwMjksNjcwLDYpLHU2PWZ1bmN0aW9uKEIpe3JldHVybiBSWzIzXS5jYWxsKHRoaXMsCjE4LEIpfSxyRz1nWzM2XSgzOCw2MTA5OCwxMCw1KSxxRj1mdW5jdGlvbihCKXtyZXR1cm4gR1szN10uY2FsbCh0aGlzLDQ4LEIpfSxnMz1nWzM2XSg2LDE5NTYxLDEyMywxNyksVnk9Z1szNl0oMzgsNjEwOTYsMTIzLDIpLEdWPWdbMzZdKDQsNjEwODYsNCwxMCksSHU9Z1szNl0oNiw2MTA3NCw5OCwxMiksTU09Z1szNl0oMzgsNjEwNjksMTEwLDUpLGVHPWdbMzZdKDM3LDEwMDIxLDE2Miw1KSx0Uj1mdW5jdGlvbihCKXtyZXR1cm4geVszXS5jYWxsKHRoaXMsNTUsQil9LFB1PWdbMzZdKDM4LDIwNjQ4LDUwMDksNCksJGQ9Z1szNl0oMzYsNjEwNjIsNTUsNykscVc9Z1szNl0oMzYsNjEwMzQsNjcsMjgpLGlBPWdbMzZdKDM4LDYxMDIwLDgwLDE0KSx5eT1nWzM2XSg2LDYwOTQ4LDcwLDcyKSxZZD1nWzM2XSgzNiw2MDkzOCw0OSwxMCksY3U9Z1szNl0oNCwyMDQ1MCw1ODMyLDMpLFNHPWdbMzZdKDUsNjA5MjksNDUsOSksbUo9Z1szNl0oNiw2MDg1OCwxMjUsNzEpLCRMPWZ1bmN0aW9uKEIpe3JldHVybiBPWzQ3XS5jYWxsKHRoaXMsCjI2LEIpfSxsQT1nWzM2XSg1LDYwODU1LDE5LDMpLFdlPWZ1bmN0aW9uKEIpe3JldHVybiBPWzI2XS5jYWxsKHRoaXMsMyxCKX0sQVA9ZnVuY3Rpb24oQix6LEspe3ZhciBKPVszLCJTaSIsMzNdO3JldHVybiB0JFtKWzFdXS5hcHBseShudWxsLFtCLHosRTkuYmluZChYJCxLKSxLXS5jb25jYXQoZVtKWzJdXSgyNyxHMi5hcHBseShKWzBdLGFyZ3VtZW50cykpKSl9LGFqPVsxLDJdLHVBPWdbMzZdKDM2LDYwNzU2LDEyMywyMyksYVE9Z1szNl0oMzcsNjA3NTMsOTMsMyksaGk9Z1szNl0oNCw2MDc0OCw4Nyw1KSxkRz1nWzM2XSg2LDYwNzQ2LDc0LDIpLGtkPWdbMzZdKDM2LDYwNjg1LDEwMyw2MSksdGk9Z1szNl0oNSw2MDY2OSw4OSwxNiksVTk9Z1szNl0oNiw2MDY2MiwzLDcpLE1XPWdbMzZdKDQsNjA1ODgsOCw3NCksT0Y9W10sd0c9Z1szNl0oNiw2MDU4Miw4NSw2KSxJUT1nWzM2XSgzOCw0ODQ0LDQyNjMsNCksRiQ9Z1szNl0oNCw2MDU1NiwxMTcsMjYpLEJpPWdbMzZdKDYsMjY1MTYsCjM4MzksMiksczU9Z1szNl0oNSw2MDU1NSwzMCwxKSx6bT1nWzM2XSg1LDYwNTM4LDgzLDE3KSxLMz1nWzM2XSgzNyw2MDUyNyw4MywxMSksRE09ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDldLmNhbGwodGhpcyw4LEIpfSxKST1nWzM2XSg0LDg1NjgsNDI4MSwyKSxDMz1nWzM2XSgzOCw2MDUxNiwyMiw1KSxiOD1nWzM2XSg1LDU4OTkwLDksNTIpLEFJPWdbMzZdKDQsNDA1NzUsODEsNDcpLHZpPWdbMzZdKDM2LDYwNDQ4LDUyLDY4KSxUbT1nWzM2XSgzOCw2MDM4MCwzMSw2OCksVHQ9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDNdLmNhbGwodGhpcyw0LEIpfSxqYj1nWzM2XSgzNyw2MDMxNSwyNCw2NSkscDM9Z1szNl0oMzcsNjAyNDUsMTA3LDcwKSxnUz1nWzM2XSgzNyw1OTEzOSwxMDMzLDMpLFE0PWdbMzZdKDQsNjAwNDAsMCw3MSksbjM9Z1szNl0oNiw1OTk2Nyw2Miw3MyksWnI9Z1szNl0oNCw1MDY5NCw3OSwxNCksV2k9Z1szNl0oMzYsMzQzNjYsNTczNiw1KSxnWT1nWzM2XSgzNiw1OTk0MywKMTI3LDI0KSx6dD00NDc4LE50PWdbMzZdKDQsMTQ3NzMsNTk3MywzKSxtSD1nWzM2XSgzNyw0OTM3MCwyOTAzLDMpLEU0PWdbMzZdKDQsNTk4NzksMTE3LDI0KSxPNT1nWzM2XSg1LDkwLDI2MywxKSxyWj1mdW5jdGlvbihCKXtyZXR1cm4gZVs3XS5jYWxsKHRoaXMsMjEsQil9LHh0PWdbMzZdKDM4LDIzMCwxMjYwMSwxKSxEcj1nWzM2XSg1LDU5ODYzLDkzLDE2KSxmMz1nWzM2XSgzNywzMDEwLDExMSwzMiksWFM9Z1szNl0oNiw1OTc4MCwxMjYsNDUpLG83PWdbMzZdKDM2LDU5NzA5LDgxLDcxKSxEOD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4geVsyOF0uY2FsbCh0aGlzLDIsQix6LEssSil9LEwzPWdbMzZdKDYsMzIzNDQsNTMwNiw0KSxSNz1nWzM2XSgzOCw1OTY5MCw5OSw4KSxyWT1nWzM2XSg1LDU5NTc1LDM1LDU5KSxWND1nWzM2XSg2LDU5NTEwLDYzLDY1KSxHbT1nWzM2XSgzNiw0MzkxNCw4NDIsNyksSGk9Z1szNl0oNSwyNzcyMCw4OSwyKSxlYj1nWzM2XSgzNywyNjUyOCw1MDMxLAo0KSxHRD1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gR1syMF0uY2FsbCh0aGlzLDg4LEIseixLLEosQyxiLEEpfSxQaT1nWzM2XSg0LDU5NDcwLDEyMyw0MCksSlA9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4gSFs2XS5jYWxsKHRoaXMsNjQseixCLEssSixDLGIsQSx2KX0sJHQ9Z1szNl0oNiw1OTQwMSw5MCw2OSksREk9ZnVuY3Rpb24oKXtyZXR1cm4gWVs0NV0uY2FsbCh0aGlzLDEyKX0scXQ9Z1szNl0oMzcsNTkzOTIsMTksOSksaTg9Z1szNl0oMzgsNTkzMTksNDEsNjcpLFlMPWZ1bmN0aW9uKEIpe3JldHVybiBlWzI2XS5jYWxsKHRoaXMsMzQsQil9LHZEPWdbMzZdKDYsNTY2Nyw0NzcxLDYpLHk0PWdbMzZdKDQsNTkyNTYsOSw2MyksWmQ9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDFdLmNhbGwodGhpcywxLEIpfSxWRT1mdW5jdGlvbihCLHope3JldHVybiBnWzEyXS5jYWxsKHRoaXMsNzMsQix6KX0sWXQ9Z1szNl0oMzcsNTkxNzksNiw2NCksY2k9Z1szNl0oNCwKNTkxNjksOTMsMTApLFVPPWdbMzZdKDM4LDU5MTYwLDAsOSksYlE9Z1szNl0oMzcsNTkxMjgsMCwzMiksU2I9Z1szNl0oMzgsNDYwMjgsNTUsMTApLHBnPWdbMzZdKDYsMjg3MjEsNTIwMSw2KSxtVD1nWzM2XSgzNiwyNDAsMTM0NTcsMSksbDg9Z1szNl0oMzcsMjEyNTksMjkxNCw1KSxTWT1nWzM2XSg1LDQyMzQ2LDU3LDMpLEU1PWdbMzZdKDYsNTkwNDYsMjYsODIpLFhZPWdbMzZdKDM4LDUyMDc0LDkxLDQzKSx1OD1nWzM2XSg0LDExMCwyMDA4LDEpLGE3PWdbMzZdKDUsNTg5OTAsOSwzMCksaEk9ZnVuY3Rpb24oQix6LEspe3JldHVybiBCLmNhbGwuYXBwbHkoQi5iaW5kLGFyZ3VtZW50cyl9LGRZPWdbMzZdKDM4LDU4OTE3LDU2LDczKSxrdD1nWzM2XSg1LDU4ODQ3LDc1LDcwKSxZTz1nWzM2XSgzNyw0Njk2Niw1NzAsNSksdEk9Z1szNl0oMzYsMjQ2MzcsOTAsMTYpLFU1PWdbMzZdKDM3LDU4Nzg1LDEwOSw2MiksTXQ9Z1szNl0oNCwxNzQ3Myw0NCwyNiksd1k9Z1szNl0oNSwzMDEwLAoxMTEsNCksSTc9Z1szNl0oMzcsNDg2NCw2MjkyLDIpLEZZPWdbMzZdKDM4LDMyMDczLDg5LDMpLEJZPWdbMzZdKDM4LDExMTAyLDM5MTMsNiksc1Y9Z1szNl0oNSw1ODc2NywxMTUsMTgpLHpJPWdbMzZdKDM4LDU4NzYyLDYzLDUpLEtIPWdbMzZdKDM3LDU4Njg4LDg5LDc0KSxKcz1nWzM2XSgzNiw0OTYwMSw3OCwyMSksQ0g9Z1szNl0oNCwyNjQ0OSw5NCw1KSxiaT1nWzM2XSg0LDU4NjY0LDcsMjQpLGlkPWdbMzZdKDQsMzk2MzYsMjIsMzgpLEFzPWdbMzZdKDUsMjg3ODIsMTE5OSwyKSx2WT1nWzM2XSg1LDU4NTg3LDcyLDczKSxUST1nWzM2XSgzNiw1MDA5OSw3NSw2NCksZGQ9Z1szNl0oNSw1ODU2Myw2MywyNCksZXA9Z1szNl0oMzgsMzExNTUsNzEyLDUpLGprPWdbMzZdKDYsNTg1MDEsMTI0LDExKSxwSD1nWzM2XSg1LDU4NDk0LDMyLDcpLFFzPWdbMzZdKDM2LDU4NDc2LDUyLDcpLG5IPWdbMzZdKDYsNTg0MDMsNDIsNzMpLFp6PWdbMzZdKDQsNTgzMzksODksNjQpLFdZPWdbMzZdKDUsCjU4MzIxLDE1LDE4KSxjST1mdW5jdGlvbihCKXtyZXR1cm4gR1sxNl0uY2FsbCh0aGlzLDQ4LEIpfSxnST1nWzM2XSgzOCwzNjc2Miw2MCwxNiksS249ZnVuY3Rpb24oQix6LEspe3JldHVybiBEWzFdLmNhbGwodGhpcyw0LHosSyxCKX0sTjg9Z1szNl0oNSw1ODI5OSw1OCwyMiksUGY9Z1szNl0oMzcsNTgyNzYsMzksMjMpLE9WPWdbMzZdKDQsNTgyNzIsMTE0LDQpLHhOPWdbMzZdKDM2LDU4MTc1LDExMiw2NCksRHo9Z1szNl0oNiw1ODE3MSwxNyw0KSxmSD1nWzM2XSgzNyw1ODA5MCw2NCw4MSksb0E9Z1szNl0oNSw1ODA3Miw0MSwxOCksTEg9Z1szNl0oNCw1ODA1NywxMDMsMTUpLFJBPWdbMzZdKDYsMjg1NzMsMTgsMTQpLHJJPWdbMzZdKDQsNTc5ODEsNTAsNzYpLHhGPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gSFs0MF0uY2FsbCh0aGlzLDEsQix6LEspfSxWcz1nWzM2XSgzNiw1Nzk3NywyOSw0KSxHST1nWzM2XSgzOCwyNTE0NSwzMjYyLDEpLEhZPWdbMzZdKDQsNTc5MDgsNzMsNjkpLApGZz1mdW5jdGlvbihCKXtyZXR1cm4gUls4XS5jYWxsKHRoaXMsODgsQil9LGVrPWdbMzZdKDM4LDEyMjQyLDE1LDQpLEluPWdbMzZdKDM2LDE5NjA1LDQ2LDU1KSxQWT1nWzM2XSg1LDU3ODMzLDE5LDY5KSwkTj1nWzM2XSg2LDI4NTg3LDEyNCwxNykscTg9Z1szNl0oMzYsNTc4MTQsMSwxOSkscFk9Z1szNl0oNiw1NzgxMSw4NCwzKSxpaT1nWzM2XSgzNyw1Nzc0MSwxMiw3MCkseXM9Z1szNl0oMzgsNTc3MzgsNTQsMyksWU49Z1szNl0oNiw5NzQsNDMyMSw2KSxXUD1nWzM2XSg0LDM4NDEsMTE3LDYpLGNZPWdbMzZdKDM4LDU3NjY1LDY2LDczKSxTaz1nWzM2XSg1LDMyNDQ1LDExOTUsNCksbVc9Z1szNl0oMzgsMjk5MzAsNDcsOCksTGI9Z1szNl0oNCw1NzY0MSwxMjMsMTYpLGxpPWdbMzZdKDM3LDU3NjM3LDEyNiw0KSxFVj1nWzM2XSgzOCw1NzYyMCwxMTksMTcpLFhzPWdbMzZdKDQsOTcwOSwxMjMsNCksdWk9Z1szNl0oNCw1NzU3OCw3OSwyMyksYUE9Z1szNl0oMzYsNTc1MzksNjEsCjQpLG93PWZ1bmN0aW9uKEIpe3JldHVybiBIWzI5XS5jYWxsKHRoaXMsMTgsQil9LGhzPWdbMzZdKDYsNTc1MjIsMTEyLDE3KSxkST1nWzM2XSgzNiw1NzUwMiw3MCwyMCksa049Z1szNl0oNiw1NzQzNCwyMyw2OCksUEU9Z1szNl0oMzgsNTc0MTAsMjEsMjQpLHRzPWdbMzZdKDM3LDU3Mzk2LDEwNSwxNCksVVY9Z1szNl0oMzYsNTczNzEsMjgsMjUpLE04PWdbMzZdKDM4LDU3MzY4LDk4LDMpLHdJPWdbMzZdKDM2LDU3MzY0LDc5LDQpLElBPWdbMzZdKDUsNTczNTksNzcsNSksVmo9ZnVuY3Rpb24oKXtyZXR1cm4gbVszNl0uY2FsbCh0aGlzLDEpfSxGcz1nWzM2XSg1LDU3MjgzLDc2LDc2KSxCbT1nWzM2XSg2LDU3MjcxLDE0LDEyKSxzYT1nWzM2XSgzNyw1NzE3MiwyMyw3NCksejY9Z1szNl0oMzYsNTcwOTgsMzksNzQpLEZyPWdbMzZdKDUsNTcwNjIsNjcsMzYpLEtUPWdbMzZdKDM4LDU3MDAxLDc5LDYxKSxKdj1nWzM2XSg0LDU2OTc2LDY1LDIyKSxMMT1mdW5jdGlvbihCKXtyZXR1cm4geVsyOV0uY2FsbCh0aGlzLAoxMyxCKX0sQ1Q9Z1szNl0oMzYsNTY5NDgsMTIxLDI1KSxicz1nWzM2XSgzNiw1Njg4MCw5Miw2OCksQXY9Z1szNl0oMzcsNTY3NzAsMTgsNjIpLHZtPWdbMzZdKDM2LDU2NzUzLDc1LDE3KSxUNj1nWzM2XSg1LDU2NjgxLDEwLDcyKSxqSz1nWzM2XSgzOCwyNzI0NywzMiw0KSxwVD1nWzM2XSg1LDU2NjcwLDg2LDExKSxRaz1nWzM2XSgzOCw1NjY1Nyw5MCwxMyksblQ9Z1szNl0oNiw1NjY0OSwxMDYsOCksWnk9Z1szNl0oMzcsMTczMTIsMzQ4LDYpLFdtPWZ1bmN0aW9uKEIpe3JldHVybiBXbVtvOSgpXShCKSxCfSxnVD1nWzM2XSgzOCw1NjY0MiwxMjQsNyksTiQ9Z1szNl0oNSw1NjU3Myw4Miw2NSksT2E9Z1szNl0oMzgsNTY1MjYsMTAwLDQpLHhhPWdbMzZdKDUsMjYzMTcsMjksNSksQmU9ZnVuY3Rpb24oKXtyZXR1cm4gbVszXS5jYWxsKHRoaXMsNCl9LER5PWdbMzZdKDM3LDU2NTE3LDEwNCw5KSxmVD1nWzM2XSgzNyw1NjQ0MSwxNiw3Niksb2g9Z1szNl0oNCw1NjM4Nyw5Miw1NCksCkxUPWdbMzZdKDQsNTYzMTQsMzgsNzMpLFJoPWdbMzZdKDM4LDU2MjU2LDEyMSw1OCksclQ9Z1szNl0oNCwyNDAzLDY0LDIxKSxWaz1nWzM2XSgzNiw0OTgxOSw3MywxNCksRzY9Z1szNl0oMzYsNTYxMjksMTE0LDMpLEhtPWdbMzZdKDUsNTYwNTksNDksNzApLGVLPWdbMzZdKDQsNTYwNTIsNjUsNyksUG09Z1szNl0oMzcsNDI0MDYsNjUsNSksJGE9Z1szNl0oNiw1NTk2MCwxMTYsNDQpLHEkPWdbMzZdKDQsNTU5NDksMTksMTEpLGlzPWdbMzZdKDM2LDU1OTI5LDY3LDIwKSx5az1nWzM2XSg2LDI2NTIwLDQyNTcsMyksbGw9Z1szNl0oMzgsNTU5MTMsNywxNiksWWE9Z1szNl0oNSw1NDQ2OSwzNiw0KSxjbT1nWzM2XSgzOCw1NTgzMywxNCw2NiksU0s9Z1szNl0oNSw1NTc2Myw3OSw3MCksbWg9Z1szNl0oNiw1NTc2MCwxMywzKSxUQz1mdW5jdGlvbigpe3JldHVybiBrWzFdLmNhbGwodGhpcywyMil9LGxzPWdbMzZdKDQsNzQyNSw0Miw3OSksRWE9Z1szNl0oNCw1NTc1MSwxMDcsOSksdzY9CmZ1bmN0aW9uKEIpe3JldHVybiBSWzM5XS5jYWxsKHRoaXMsMSxCKX0sb0g9Z1szNl0oMzYsNTU3MzUsNzMsMTYpLFgwPWdbMzZdKDYsNTU3MzMsNDMsMiksQTY9Z1szNl0oMzgsNTU2OTIsMTExLDQxKSx1cz1nWzM2XSg2LDU1Njg4LDM0LDQpLGFoPWdbMzZdKDM4LDU1NTg2LDYsNzkpLGh2PWdbMzZdKDM4LDU1NTcxLDcwLDE1KSxkVD1nWzM2XSg1LDU1NDk5LDEwNyw3Miksa2E9Z1szNl0oNiw1NTQ5MSwxMjAsOCksdHY9Z1szNl0oNSw1NTQ4Miw0Myw5KSxVYT1nWzM2XSgzNyw1NTQ2MiwxMDYsMjApLHBHPWdbMzZdKDM4LDU1NDM5LDg2LDIzKSxNJD1nWzM2XSgzNywyNzQ5OSwxMjMsNjYpLHdUPWdbMzZdKDM4LDU1Mzc3LDg4LDYyKSxJaD1nWzM2XSgzNywyNjQ4MCwzNzMsMiksdlU9Z1szNl0oMzcsNTUzNjUsNzAsMTIpLEYwPWdbMzZdKDM2LDU1Mjk0LDEzLDcxKSxCVj1nWzM2XSgzNiw2MjY2LDgyLDcpLHNMPWdbMzZdKDQsNTUyOTAsMTAzLDQpLHoxPWdbMzZdKDYsMTg2MDIsMTEwLAo2KSxLJD1nWzM2XSgzNiw1NTIxNyw1Nyw3Myksbzk9Z1szNl0oNiwyNjQ3NiwyOCwxKSxKVz1nWzM2XSgzNiw1NTIwMCw0LDE3KSxDJD1nWzM2XSg2LDI5NjE0LDk5MSw3KSxiZT1nWzM2XSgzNiw1NTE4OCw4MSwzKSxFTz1nWzM2XSg2LDU1MTI3LDEyMiwxOCksQVc9Z1szNl0oNCwzNjIxOCw5Nyw3NyksdlY9Z1szNl0oNSw1NTEyMywxMDMsNCksdjY9Z1szNl0oNiw1NTEyMCwyNiwzKSxUJD1mdW5jdGlvbihCKXtyZXR1cm4gSFsxXS5jYWxsKHRoaXMsMTYsQil9LFQxPWdbMzZdKDUsNTUwOTAsNTUsMzApLGpBPWdbMzZdKDM3LDU1MDg1LDkyLDUpLHAkPWdbMzZdKDUsMjMzMzcsNzEsOSksUTI9Z1szNl0oNCwzMDQwNSwxMjgyLDEwKSxuJD1nWzM2XSg2LDU1MDE2LDg2LDY5KSxaaj1nWzM2XSgzNywzMjI1OSw5MSwzMyksV1Y9Z1szNl0oMzcsNTUwMDksOTksNyksZ0g9Z1szNl0oNiwyNjUxMiwzNDE0LDYpLE5EPWdbMzZdKDM2LDU0OTkzLDU5LDE2KSxPTD1nWzM2XSg0LDU0OTIzLDkwLAo3MCkseGw9Z1szNl0oNSw1NDkyMSwxMjcsMiksRGo9Z1szNl0oMzcsNTQ5MTIsNDYsOSksT3c9Z1szNl0oNiw1NDkxMCw4MywyKSxMcj1mdW5jdGlvbigpe3JldHVybiBIWzVdLmNhbGwodGhpcyw4Myl9LGYkPWdbMzZdKDM2LDU0ODM4LDEwOSw3Miksb0o9Z1szNl0oMzYsNTQ4MjUsMTQsMTMpLEU4PWdbMzZdKDM2LDU0ODEzLDE1LDEyKSxMJD1nWzM2XSg0LDU0ODA3LDc5LDIpLENVPXtTQ1JJUFQ6MSxTVFlMRToxLEhFQUQ6MSxJRlJBTUU6MSxPQkpFQ1Q6MX0sUko9Z1szNl0oNSw0NTUwLDEzMzQsNSksckg9Z1szNl0oMzYsNTQ3NDksMTAzLDcpLGlyPWZ1bmN0aW9uKEIpe3JldHVybiBlWzFdLmNhbGwodGhpcywxLEIpfSxWMj0vWyNcL1w/QF0vZyxHMT1nWzM2XSg1LDU0NzQ1LDU5LDQpLGYxPWdbMzZdKDM4LDQ3NTcsOTYsMzkpLHl2PWdbMzZdKDM2LDE0MCw0NTQ3LDEpLGtKPS9eLT8oWzEtOV1bMC05XSp8MCkoXC5bMC05XSspPyQvLEhWPWdbMzZdKDUsNTQ3MjcsNTMsMTgpLGVBPQpnWzM2XSg0LDU0NjYxLDExNyw2NiksUFY9Z1szNl0oMzYsNTQ1NzksOTYsNjcpLG5hPWZ1bmN0aW9uKEIpe3JldHVybiBnWzQ3XS5jYWxsKHRoaXMsMjAsQil9LCRsPWdbMzZdKDM4LDU0NTYyLDEwMiwxNykscUQ9Z1szNl0oNCw1NDUxMCw5Niw2KSxpZT1nWzM2XSg0LDU0NTA4LDEyNiwyKSx5Mj1nWzM2XSgzOCw1NDUwNCwxMiw0KSxZbD1nWzM2XSgzNiwxMzMsMzk4MiwxKSxjVj1nWzM2XSgzNiwyMzM3MCwyNDU3LDUpLFNBPWdbMzZdKDM4LDU0NDcxLDE2NywyKSxtdT1nWzM2XSgzNyw1NDQ1OSwxNiwxMCksbGU9Z1szNl0oMzYsNTQ0MDcsNjcsNTIpLEVMPWdbMzZdKDYsNTQ0MDAsNDQsNyksWFQ9Z1szNl0oMzYsNTQzMzksOTAsNjEpLHVlPWdbMzZdKDQsNDI2MywxMjkxLDQpLHlTPS9bLV8uXS9nLGFKPWdbMzZdKDM4LDU0MzMxLDY3LDgpLGJNPWdbMzZdKDQsNTQyOTAsMTIyLDQxKSxoVz1nWzM2XSgzNyw1NDI2NSw5Niw2KSxkSD1nWzM2XSgzNyw1NDI0MCw3NSwyNSksVkQ9ZnVuY3Rpb24oQil7cmV0dXJuIFJbNDFdLmNhbGwodGhpcywKNCxCKX0sa2w9ZnVuY3Rpb24oQix6LEspe3ZhciBKPVsyOSwyNSwxNV0sQz1bNCwxLDddLGI9RzIuYXBwbHkoMyxhcmd1bWVudHMpLEE9Z1sxMl0oOSxnWzI2XSg1OCxMUi5KKCksQ1sxXSkpLm5leHQoKS52YWx1ZSx2PWdbN10oMzgpO3JldHVybiBiPVtIWzQ0XSg0MixCKSxrW0pbMF1dKDI0LENbMV0seixBLEspLFlbMF0oMjcsdixPW0pbMV1dKDEsQiksT1tKWzFdXSg1LEEpKSx2SShBLEhbSlsyXV0oMjQsQ1swXSksQSksdkkoQSxIW0pbMl1dKDQwLENbMl0pLEEpLFlbMF0oMjgsdixPW0pbMV1dKDMsQSksITEpLEkuYXBwbHkobnVsbCxbQix6LEtdLmNvbmNhdChlWzMzXSgzNSxiKSkpLHYsSFs0NF0oNTksQSldLExSLkooKS52KEEpLGJ9LHRXPWdbMzZdKDYsNTQyMjEsMTA5LDE5KSxIRj1nWzM2XSg0LDU0MjE4LDQ2LDMpLHliPWZ1bmN0aW9uKEIpe3JldHVybiBrWzQ2XS5jYWxsKHRoaXMsMSxCKX0sVUw9Z1szNl0oMzgsNTQxMTksNTcsNDIpLE1EPWdbMzZdKDQsNTQwNTEsNjAsCjY4KSx3SD1nWzM2XSgzOCw1Mzk4MywxMTEsMTIpLElKPWdbMzZdKDM3LDUzOTY4LDk0LDE1KSxGVD1nWzM2XSg0LDcwMDIsMTEwLDc3KSxCND1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gZVswXS5jYWxsKHRoaXMsNSxCLHosSyxKLEMsYixBLHYscCxRKX0sc0o9Z1szNl0oNiw1Mzk0MywxMDgsMjUpLHowPWdbMzZdKDQsNDY5NTMsMjEsOCksUFQ9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMzldLmNhbGwodGhpcywxNixCKX0sS2k9Z1szNl0oMzgsNTM5NDAsMTE0LDMpLEpBPWdbMzZdKDM4LDUzOTM3LDU3LDMpLENpPWdbMzZdKDM4LDMxOTc2LDkwLDI4KSxidj1nWzM2XSgzNiwxNTIzMSw2NSwyNCksQUE9Z1szNl0oNSw1Mzg3MCw5LDY3KSx2ND1nWzM2XSg1LDUzODYwLDksMTApLFQwPWdbMzZdKDUsMTc0MDksOTE4OCwyKSxqMj1nWzM2XSgzNiw1Mzg1MSw1LDkpLHBpPWdbMzZdKDUsNTM4NDMsNTksOCksUTE9Z1szNl0oNiw1Mzc3MCw0MSw3MyksUjg9ZnVuY3Rpb24oKXtyZXR1cm4gZVs4XS5jYWxsKHRoaXMsCjEpfSxWQj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIEhbMzRdLmNhbGwodGhpcywxNixCLHosSyl9LG1kPWdbMzZdKDUsMjY2MDgsMTMxMjQsMSksbmk9Z1szNl0oNiw1MzcxNCw5Niw1NiksZ289Z1szNl0oMzcsNTM2ODUsNTIsMjkpLFpQPWdbMzZdKDM3LDUzNjgxLDE2LDQpLFc0PWdbMzZdKDM2LDUzNjc2LDc4LDUpLGdiPWdbMzZdKDUsNTM2NDYsNDYsNSksRnQ9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEhbMjRdLmNhbGwodGhpcywyLEIseixLLEopfSxOcz1nWzM2XSg2LDUzNTIwLDUsNzQpLEtrPWdbMzZdKDYsNTM1MDgsMTIyLDEyKSxPSj1nWzM2XSgzOCw1MzQ5OSw3Myw5KSx4UT1nWzM2XSgzNiw1MzQ1OSwxMDYsMSksRlI9Z1szNl0oNiw1MzQ1NSw2OCw0KSxEUD1nWzM2XSg2LDUzNDI1LDI5LDMwKSxNaD1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBnWzIyXS5jYWxsKHRoaXMsMjYsQyxKLEssQix6KX0sZmk9Z1szNl0oMzgsNTM0MjMsMTIxLDIpLG95PWdbMzZdKDYsNTMzNTQsCjEyNCw2OSksTGk9Z1szNl0oNCw1MzM1MCw5OSw0KSxpdz1mdW5jdGlvbigpe3JldHVybiBZWzIzXS5jYWxsKHRoaXMsNjQpfSxMcz1nWzM2XSg1LDUzMzQ1LDIsNSksUnk9Z1szNl0oNSw1MzI4Miw1OCw2MykscmI9Z1szNl0oNiw1MzIxOSw1NSw2MyksVjE9Z1szNl0oNCw1MzIxNSw4OCw0KSxEZD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gRFs3XS5jYWxsKHRoaXMsMyxCLHosSyxKKX0sRzA9Z1szNl0oNCw1MzE0NSwxMjYsNzApLHJvPWdbMzZdKDQsMjY1MDcsMjg5OSwxMSksSDQ9Z1szNl0oMzcsNTMxMjMsMCwyMiksZTI9Z1szNl0oNiw1MzEyMSwxMDMsMiksUDQ9Z1szNl0oMzcsNTMwNDYsMTIsNzUpLCRRPWdbMzZdKDUsNDA3NDQsMjQsNCksbDY9Z1szNl0oMzcsNTMwNDEsMTI2LDUpLHFzPWdbMzZdKDM4LDUyOTI4LDEyMyw2NiksVWg9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVsyXS5jYWxsKHRoaXMsMTEsQix6KX0saXY9Z1szNl0oNSw1MjkyMywxMDQsNSkseTE9Z1szNl0oMzYsCjUyOTA1LDUsMTgpLEowPWdbMzZdKDM2LDE3ODM1LDU5MDAsNCksclA9Z1szNl0oMzgsMzAwMzIsNjksMSksWVE9Z1szNl0oMzgsNTI4ODgsMjIsOSksWFo9Z1szNl0oMzcsMzQ5LDIzMTI5LDEpLGM0PWdbMzZdKDUsNTI3NDYsMTAxLDM0KSxTMj1nWzM2XSg0LDUyNjgwLDExMCw2NiksbXk9Z1szNl0oMzgsMzM4NjUsNTIsMTYpLGx2PWdbMzZdKDQsNTI2MDcsMjgsNzMpLEVKPWdbMzZdKDQsMjY1MDcsMjg5OSw1KSxYdz1nWzM2XSgzOCw1MjU5Nyw5NywxMCksdXY9Z1szNl0oMzcsMjYxMiwxMDAzLDUpLGF5PWdbMzZdKDQsNTI1OTAsNzUsNyksaEE9Z1szNl0oNiw1MjU0NiwxMjEsNCksU1Q9ZnVuY3Rpb24oQil7cmV0dXJuIFJbMTNdLmNhbGwodGhpcywyMCxCKX0sUnc9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMTddLmNhbGwodGhpcyw3LEIpfSxHMj1mdW5jdGlvbigpe2Zvcih2YXIgQj1OdW1iZXIodGhpcyksej1bXSxLPUI7Szxhcmd1bWVudHMubGVuZ3RoO0srKyl6W0stQl09YXJndW1lbnRzW0tdOwpyZXR1cm4gen0sZGI9Z1szNl0oMzcsNTI0OTgsMjMsNDgpLG1SPWdbMzZdKDM4LDUyNDkxLDExMiw3KSxrUT1nWzM2XSg0LDUyNDc2LDkwLDE1KSx0UT1nWzM2XSg2LDUyNDU1LDExMSwyMSksdkY9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMThdLmNhbGwodGhpcywyLEIpfSx0QT1nWzM2XSgzNiwyMDksMTA3NjgsMiksVUo9Z1szNl0oNCw1MjI3NSwzMCw3MiksTXM9Z1szNl0oMzcsNTIyNzEsOTUsNCksd2I9Z1szNl0oMzgsMTE4LDI3MDAsMiksSXk9Z1szNl0oNCwzMjg3NywxMjIsMTQpLHBTPWdbMzZdKDM2LDUyMjA4LDExOSwxNSksRnc9Z1szNl0oNSw4MjQzLDgxLDM4KSxCYT1nWzM2XSgzNywyOTYsMTg0NzAsMSksc2Y9Z1szNl0oMzYsNTIwNzQsOTEsMjApLHp6PWdbMzZdKDYsNTIwMDksMjYsNjUpLEtvPWdbMzZdKDYsNTE5MDUsNDcsMzMpLEoyPWdbMzZdKDM2LDUxOTAyLDEyNCwzKSxDbz1nWzM2XSgzOCw1MTgzNSw5OSw2NyksYkU9Z1szNl0oNCw1MTgzMiwyOSwzKSx0Uz1mdW5jdGlvbihCKXtyZXR1cm4gR1szN10uY2FsbCh0aGlzLAoxLEIpfSxVMj1nWzM2XSgzNyw1MTc3NSw0MTE3LDUpLEZiPWdbMzZdKDM2LDE5MDg3LDU2MzAsMyksTXU9Z1szNl0oNSw1MTcxMSwzOSwyMSksSGU9Z1szNl0oNCw0MTQxOCwyMiwzKSxBMj1nWzM2XSg1LDUxNjM5LDEyMCw3MiksdmE9Z1szNl0oMzgsNTE2MTksMjQsMjApLFR6PWdbMzZdKDM3LDUxNjEzLDkyLDYpLGpVPWdbMzZdKDUsMjc1NjUsNTksNjUpLHBvPWdbMzZdKDM3LDUxNTI3LDgzLDg2KSxROT1nWzM2XSg1LDUxNDU4LDQsNjkpLG5vPWdbMzZdKDYsNTEzOTIsNjAsNjYpLFpMPWdbMzZdKDYsNTEzNzAsNTgsMjIpLFZHPWZ1bmN0aW9uKEIpe3JldHVybiBtWzI4XS5jYWxsKHRoaXMsMSxCKX0sVFE9L15bXiY6XC8/I10qKD86W1wvPyNdfCQpfF5odHRwcz86fF5maWxlc3lzdGVtOmh0dHBzPzp8XmZ0cDp8XmRhdGE6aW1hZ2VcL1thLXowLTkrLV0rO2Jhc2U2NCxbYS16MC05K1wvXSs9KiR8XmJsb2I6L2ksV2E9Z1szNl0oMzgsNTEzMzYsMTIxLDEwKSxnOD1nWzM2XSgzNywKNTEzMTksOTYsMTcpLEhIPWdbMzZdKDYsNTEzMDQsOSwxNSksTm09Z1szNl0oNSwzODQxLDExNyw1MiksTmc9Z1szNl0oNiw1MTI1Myw1MCw5KSx6UT1mdW5jdGlvbihCKXtyZXR1cm4gR1sxOV0uY2FsbCh0aGlzLDM0LEIpfSxPZj1nWzM2XSgzNiw1MTIzMCwxMDAsMjMpLHgyPWdbMzZdKDUsNTExNTMsODksNzcpLERMPWdbMzZdKDM2LDUxMTI5LDE2LDI0KSx0YT1mdW5jdGlvbihCKXtyZXR1cm4gT1sxM10uY2FsbCh0aGlzLDM0LEIpfSxmbz1nWzM2XSg1LDUxMDczLDYyLDU2KSxvJD1nWzM2XSgzNiw1MTA2Nyw5Nyw2KSxMbz1nWzM2XSg1LDUxMDQ1LDkzLDIyKSxSJD1nWzM2XSgzNyw0MzI5OCwzMjgsOSkscjg9Z1szNl0oNSw1MDk2NCw0MSw3MyksVjk9ZnVuY3Rpb24oQix6LEspe2lmKCFCKXRocm93IEVycm9yKCk7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXt2YXIgSj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEM9ClsidW5zaGlmdCIsImFwcGx5Iiwic2xpY2UiXSxiPUFycmF5LnByb3RvdHlwZVtDWzJdXS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIEJbQXJyYXkucHJvdG90eXBlW0NbMF1dW0NbMV1dKGIsSiksQ1sxXV0oeixiKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEIuYXBwbHkoeixhcmd1bWVudHMpfX0sR3o9Z1szNl0oNCw1MDkwOCw3MCwyMiksSGE9Z1szNl0oMzYsNTA5MDEsNTAsNyksZVU9e3NCOiEwfSxQYT1nWzM2XSgzNyw1MDg3Nyw1NCwyNCksJDI9Z1szNl0oMzcsNTA4NTAsNjQsNikscWc9Z1szNl0oNiw1MDc3OSwyNCw3MSksaUU9Z1szNl0oNiw1MDY5NCw3OSwyMikscWs9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gbVsxOV0uY2FsbCh0aGlzLDEsQix6LEssSixDKX0seTk9Z1szNl0oNSw1NjE4LDU2LDk4KSxZMj1nWzM2XSg2LDUwNjc3LDQzLDIpLGNhPWdbMzZdKDUsNTA2MjUsNzQsNTIpLFNVPWdbMzZdKDM4LDUwNjIxLDMyLDQpLG0xPWdbMzZdKDQsMjY0OTQsMTYzNSwKMiksbEU9Z1szNl0oMzcsNTA2MTcsNjEsNCksRWY9Z1szNl0oMzYsNDYzMDAsODUsNzQpLFhxPWdbMzZdKDYsMjY1NDIsNjUyNywyKSx1RT1mdW5jdGlvbihCKXtyZXR1cm4gZ1s1XS5jYWxsKHRoaXMsMjcsQil9LGEkPWdbMzZdKDM3LDUwNTczLDExMiwyMyksaDI9Z1szNl0oMzcsNTA0OTUsMTEyLDc4KSxkOD1nWzM2XSg1LDE4Miw4MTk5LDEpLGsyPXt9LENSPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMzZdLmNhbGwodGhpcyw3KX0sdDI9Z1szNl0oMzgsNTA0NTIsMTAzLDkpLGVDPWdbMzZdKDM3LDI2NTAyLDI0NjAsMSksSEQ9Z1szNl0oNCwzMDA1NCwxNDYzLDMpLGtqPWdbMzZdKDM4LDUwNDM5LDU4LDEzKSxVZj1nWzM2XSg0LDE0MTkyLDQxMzEsNiksTWc9Z1szNl0oNSw1MDQyOSw1OSwxMCksdzg9Z1szNl0oMzcsNTA0MjQsMTI0LDUpLEkkPWdbMzZdKDYsNTA0MjAsMTA2LDQpLEZxPWdbMzZdKDYsNTAzNTAsNTYsMTYpLEIwPWdbMzZdKDM3LDUwMjgzLDIsNjcpLFBjPWdbMzZdKDM2LAo1MDI3MCwxMjEsMTMpLHNlPWZ1bmN0aW9uKEIpe3JldHVybiBtWzddLmNhbGwodGhpcyw1LEIpfSx6Yz1nWzM2XSgzOCw1MDI2MywxMTYsNyksS3U9Z1szNl0oNSw1MDE4OSw0NSw3NCksSmc9Z1szNl0oMzcsNTAxMzUsMzc3NSw2KSxWUT1nWzM2XSgzNyw1MDA5MCwxMTYsOSksQ3U9Z1szNl0oNCw1MDA3NCwxMSwxNiksYjc9Z1szNl0oNSw1MDAwNiwxMyw2OCksQWc9Z1szNl0oNCw0OTk5Nyw1Niw0KSx2MD1nWzM2XSgzNyw3MDMzLDMxMjksNCksVGM9Z1szNl0oMzgsNDk5MjMsODUsNzQpLGpSPWdbMzZdKDUsNDk5MTIsNCwxMSkscHU9WyJQT1NUIiwiUFVUIl0sUUw9Z1szNl0oNiw0OTkwNyw3NCw1KSxudT1nWzM2XSgzNyw0OTkwNCwxMjAsMyksWko9Z1szNl0oNiw0OTgzMywxNiw3MSksbFI9Z1szNl0oMzcsNDk4MjksOTU3LDQpLFcwPWdbMzZdKDYsNDk3NDQsMjgsNzUpLGdYPWdbMzZdKDM2LDQ5NzQwLDEwLDQpLE5KPWdbMzZdKDYsNDk3MjcsNTMsMTMpLE9lPWdbMzZdKDM4LDEyNjk0LAoyMywyMikseHc9Z1szNl0oMzYsNDk3MTksNjgsOCksdGY9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIGVbMl0uY2FsbCh0aGlzLDU2LHosQixLLEopfSxESj1nWzM2XSgzNiw0OTcwOSw0MCwxMCksZnU9Z1szNl0oMzcsNDk3MDQsMjEsNSksb089Z1szNl0oMzgsNDg0NDQsOTYwLDUpLEx1PWdbMzZdKDM3LDMwMjUsMTI4OCw2KSxCUD1nWzM2XSg0LDQ5NjQ2LDYwLDEwKSxSTz1nWzM2XSg2LDQ5NjM2LDI2LDEwKSxyWD1nWzM2XSgzOCw0OTYyMiw4MSwxNCksVkw9Z1szNl0oNSw0OTYwMiwxNTgsMjApLEdjPWdbMzZdKDQsNDk1MjksMjIsNzIpLEgwPWdbMzZdKDUsNDk1MTcsNDYsMTIpLGVSPWdbMzZdKDM4LDQ5NTE0LDEwOCwzKSxQMD1mdW5jdGlvbihCKXtyZXR1cm4gbVsyOV0uY2FsbCh0aGlzLDEzLEIpfSwkdz1nWzM2XSg2LDQxODU2LDEyMCwxOSksSTQ9Z1szNl0oMzYsNDk1MDksMTEwLDUpLHFKPWdbMzZdKDQsNDkzNDIsMzQsOTApLGk3PWdbMzZdKDUsNDkzMzgsMTAsNCkseUw9CmdbMzZdKDQsNDkzMjksMjcsOSksWXc9Z1szNl0oNCw0OTMxOCw0NCwxMSksYzA9Z1szNl0oNSw3MDksNDA1NSw1KSxTUj1nWzM2XSg0LDQ5MTk3LDkwLDcwKSxtcj1nWzM2XSg1LDQ5MTkxLDgyLDYpLGw3PWdbMzZdKDM4LDQ5MTIxLDU3LDcwKSxZNz1nWzM2XSgzOCwxNzMyNiwxNTY2LDEpLEVlPWdbMzZdKDM2LDQ5MDgwLDY3LDQxKSxYVz1nWzM2XSg0LDQ5MDc3LDU1LDMpLHhVPVsxLDddLHU3PWdbMzZdKDUsNDkwNTksNjIsMTgpLFhFPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuIFJbOF0uY2FsbCh0aGlzLDcsQix6LEssSixDLGIsQSx2KX0sYU89Z1szNl0oNCw0OTA1MCw0OSw5KSxoZz1nWzM2XSg2LDE0Myw0Nzk2LDEpLGRYPWdbMzZdKDUsNDkwNDQsNDEsNiksYnc9Z1szNl0oNCw0ODkxOCwxMTAsMTApLGt3PWdbMzZdKDM2LDQ4OTE0LDExMSw0KSx0Zz1nWzM2XSgzNiw0ODc4Niw4Niw3NCksVWU9Z1szNl0oNSw0ODcxNiw2Nyw3MCksSEw9Z1szNl0oMzYsNDg2OTAsCjU4LDI2KSxNSj1nWzM2XSgzNyw0ODY3MywxOCwxNyksd1g9Z1szNl0oNSw0Njg5NCwxMDgsNSksSU89Z1szNl0oMzYsNDg2NjUsNjQsOCksRlc9Z1szNl0oMzcsMjA3NDQsNzM5LDYpLEJXPWdbMzZdKDM4LDQ4NjU2LDMxLDkpLHNHPWdbMzZdKDQsNDg1ODksMjcsNjcpLHpiPWdbMzZdKDQsNDg1NjAsNiwyOSksSzg9Z1szNl0oMzcsOTM4OCw1MzA0LDYpLEpLPWdbMzZdKDUsNDg1NTcsMTE1LDMpLEM4PWdbMzZdKDM2LDkxLDM0MSwxKSxieD1nWzM2XSg0LDQ4NTQ3LDExMiwxMCksQUs9Z1szNl0oMzgsNDg1MzYsMjksMTEpLHZXPWdbMzZdKDM4LDQ4NTI3LDk5LDkpLFRiPWdbMzZdKDM2LDQ4NTE3LDYzLDEwKSx1WT1mdW5jdGlvbihCKXtyZXR1cm4gUlsyM10uY2FsbCh0aGlzLDI0LEIpfSxqTz1nWzM2XSg1LDQ4NDQ5LDMxLDY4KSxwOD1nWzM2XSg0LDQ4NDM2LDkyLDEzKSxRXz1nWzM2XSg1LDQ4NDI0LDEyLDEyKSxuOD1nWzM2XSg2LDQ4Mzg0LDEzLDQwKSxacD1nWzM2XSgzNyw0ODM3NywKNTQsNyksV1c9Z1szNl0oMzYsNDg5MSw4NzM1LDYpLGdsPWdbMzZdKDQsNDkyMSwxMTY0NiwyKSxOUz1nWzM2XSgzNiw0MDksMjgyLDgpLE9HPWdbMzZdKDQsMTE2MjMsNTQzOSwzKSx4Yz1nWzM2XSg0LDExMzQ5LDU4LDQpLERwPWdbMzZdKDM3LDQ4MzY4LDgxLDkpLGY4PWdbMzZdKDUsNDgzMTEsOTEsNSksb209Z1szNl0oMzcsNDgzMDQsMzgsNyksakI9Z1szNl0oMzgsNDgyNTgsNTEsNDYpLEw4PWdbMzZdKDUsNDgxOTEsNzAsNjcpLG1nPWdbMzZdKDM3LDg4LDExNCwxKSxSbT1nWzM2XSg1LDQ4MTgyLDE2LDkpLHJsPWdbMzZdKDM4LDQ4MDgwLDE0LDYpLEpTPWZ1bmN0aW9uKCl7cmV0dXJuIFlbMjhdLmNhbGwodGhpcyw5KX0sVl89Z1szNl0oMzcsNDgwNjMsODEsMTcpLFIzPWdbMzZdKDM3LDQ4MDUyLDE5LDExKSxHYj1nWzM2XSgzNiwyNzkzNiwxMDgsNSksSFc9Z1szNl0oNCw0ODA0Niw4Miw2KSxlTz1nWzM2XSgzOCw0Nzk4MCwxMDcsNjYpLFBXPWdbMzZdKDM2LDQ3OTU3LDg0LAoyMyksJGM9ZnVuY3Rpb24oQil7cmV0dXJuIERbNV0uY2FsbCh0aGlzLDEsQil9LHFTPWdbMzZdKDM2LDQ3ODc1LDEwMCw4MiksaXg9Z1szNl0oNSw0Nzg2MCwyLDE1KSx5Xz1nWzM2XSg1LDQ3NzkwLDE5LDcwKSx1MD1mdW5jdGlvbihCLHope3JldHVybiBSWzM1XS5jYWxsKHRoaXMsMTYsQix6KX0sWWM9Z1szNl0oMzcsNDc3NjIsMjQsMjgpLGNXPWdbMzZdKDM2LDkzMDMsNTYxLDEwKSxTTz1nWzM2XSgzNyw0Nzc1MywxNyw5KSxhZj1nWzM2XSgzOCw0NzY4NCwyNCwyNSksRzU9Z1szNl0oNiwzMDA2MCw5MCwyNyksbTc9Z1szNl0oMzYsMjI5OSw1Mjk2LDUpLGx4PWdbMzZdKDM2LDQ3NjEzLDYsNzEpLEVHPWdbMzZdKDM2LDQ3NTU1LDg1LDU4KSxsMD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIGdbMjVdLmNhbGwodGhpcyw1LEIseixLLEosQyxiKX0sWEs9Z1szNl0oNCw0NDkxMywxNSw2NCksdXg9Z1szNl0oNiw0NzUyNSwxMTksMyksYW09Z1szNl0oNiw1NTAxLDY5LDgzKSwKaEs9Z1szNl0oMzYsNDc0NjMsMTA2LDYyKSxkbD1nWzM2XSgzOCw0NzM4NCwxOSw3OSksa2M9Z1szNl0oMzcsNDczNzYsMTEyLDgpLHRLPWdbMzZdKDYsMTkwNDYsMTQ3NywzKSxVRz1nWzM2XSgzNyw0NzM2Niw1LDEwKSxNUz0vWyNcP10vZyx3bD1nWzM2XSg0LDQ3MzU5LDIxLDcpLEltPWdbMzZdKDYsNDczNTAsNTcxLDMpLFdUPWdbMzZdKDUsNDcyOTcsMjgsNDcpLEZLPWdbMzZdKDUsMzg3NTksMTIsNDQpLEIkPWdbMzZdKDM2LDQ3MTgyLDEwLDY0KSxJcD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gT1s1XS5jYWxsKHRoaXMsNDYsQix6LEssSil9LHM3PWdbMzZdKDM3LDI2NDAsNTQ1LDQpLFZjPWdbMzZdKDUsNDcxNTcsMTUsNiksekE9Z1szNl0oNSw0NzA4OCwzMyw2OSksS0w9Z1szNl0oMzcsNDcwNzksNzQsOSksSnA9Z1szNl0oMzgsNDY5NzEsOCw1OCksQ0w9Z1szNl0oMzcsNDY5NjEsMTE1LDEwKSx6TT1nWzM2XSg1LDQ2OTMwLDIwLDIzKSxiSj1nWzM2XSgzNiw0Njg5NCwxMDgsCjIpLHZoPWdbMzZdKDM3LDI2NjE3LDE0MDY1LDEpLEFwPWdbMzZdKDM2LDQ2ODczLDExMCwyMSksdiQ9Z1szNl0oMzYsNDY4MTQsMzIsMTEpLFRBPWdbMzZdKDYsMjAzOTMsMzQsNzUpLGo2PWdbMzZdKDM4LDQ2Nzg2LDUwLDI4KSxwTD1nWzM2XSgzOCw1NjIxLDM3Niw0KSxUbj1nWzM2XSgzNyw0Njc2NSwxMjUsMjEpLFFtPWdbMzZdKDQsNDY2NDYsMTEsNjUpLG5MPWdbMzZdKDM3LDQ2NjMxLDkwLDE1KSxacz1nWzM2XSg2LDMwMzU0LDMwLDMwKSxXJD1nWzM2XSgzNyw0NjYxMSw1MywyMCksWGI9Z1szNl0oNSwyNjUxMSwzMzEzLDIpLGdXPWdbMzZdKDYsNDY1OTYsMTE5LDQpLE4yPWdbMzZdKDM4LDQ2NTg5LDEwNyw3KSxaaD1bXSxFWT1nWzM2XSg2LDQ2NTMyLDIxLDU3KSxPNz1nWzM2XSgzNyw0NjUyNiwxMDAsNiksR3k9Z1szNl0oNCw0MDU3NSw4MSwzMykseHU9Z1szNl0oNCwyNTQ0MSw1Miw1KSxEcz1nWzM2XSg2LDQ2NTIyLDI1LDQpLGZMPWdbMzZdKDM3LDQ2NTE1LDkzLDcpLApvdT1nWzM2XSgzOCw0NjUwOSw3Myw2KSxMTD1nWzM2XSg1LDQ2NTAxLDI0LDgpLFJ1PWdbMzZdKDM3LDQ2NDU0LDg5LDE1KSxTZj1nWzM2XSgzNyw0NjQ0NiwxNSw4KSxyVz1nWzM2XSgzNiw0NjM3NywyNiw2OSksVm09Z1szNl0oMzgsNDYzNzQsOTksMyksR0E9Z1szNl0oMzgsNDYzNTgsNTk3Nyw1KSxIJD1nWzM2XSgzNyw0NjI5Niw2Niw0KSxheD1mdW5jdGlvbigpe3JldHVybiBZWzI1XS5jYWxsKHRoaXMsMjEpfSxzej1nWzM2XSg0LDQ2MjkyLDI5LDQpLHZrPWZ1bmN0aW9uKEIpe3JldHVybiBIWzBdLmNhbGwodGhpcywxNSxCKX0sZTY9Z1szNl0oMzcsMzc2ODgsNjIsNSksTzg9ZnVuY3Rpb24oQil7cmV0dXJuIGtbNDRdLmNhbGwodGhpcywxLEIpfSwkaD1nWzM2XSg2LDQ2Mjc0LDQ0LDMpLHRNPWdbMzZdKDQsNDYyNzAsNjIsNCksUCQ9Z1szNl0oMzYsMzAzNTQsMzAsMTIpLCR1PWdbMzZdKDM2LDQ2MjEyLDg3LDU4KSxmRj1mdW5jdGlvbihCKXtyZXR1cm4gUlsxOV0uY2FsbCh0aGlzLAoxMyxCKX0sU3Q9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMzNdLmNhbGwodGhpcywzMixCKX0scTI9Z1szNl0oMzYsNDYyMDEsNzQsMTEpLGlKPWZ1bmN0aW9uKCl7cmV0dXJuIFlbNDVdLmNhbGwodGhpcywxKX0seW09Z1szNl0oMzgsNDYxOTYsMzMsNSksWXU9Z1szNl0oNSw0NjExOSw4Niw3NyksYyQ9ZnVuY3Rpb24oQix6KXt2YXIgSz1bNTcsMiwxOF0sSj1HMi5hcHBseShLWzFdLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKEMpe3JldHVybiBPWzI1XSg5LEMpfSk7cmV0dXJuIFJbMTNdKDE1LEhbMjVdKEtbMF0sT1s5XSgzMSxLWzJdKSxCKSxbT1syNV0oOSx6KV0uY29uY2F0KGVbMzNdKDEyLEopKSl9LFM2PWdbMzZdKDYsNDYwNTksODMsNjApLG10PWdbMzZdKDM4LDQ2MDU1LDEyLDQpLG16PWdbMzZdKDM3LDQ2MDQ0LDk0LDExKSx1RD1mdW5jdGlvbihCKXtyZXR1cm4gR1sxOF0uY2FsbCh0aGlzLDMsQil9LGxKPWdbMzZdKDYsNDg0Myw0MTQ4LDYpLEU3PWdbMzZdKDUsNDYwNDEsMTcsCjMpLFhGPWdbMzZdKDM3LDQ2MDI4LDU1LDEzKSx1Sj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gT1s0Ml0uY2FsbCh0aGlzLDEsQix6LEssSil9LHdaPWZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMjFdLmNhbGwodGhpcywyLEIseil9LGF1PSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLnNwbGl0KCIiKSxLRD1nWzM2XSgzNyw0NjAxOSwxMjAsOSksaHA9Z1szNl0oMzcsNDYwMTMsMTA1LDYpLGVhPWdbMzZdKDM4LDQ1OTc1LDc0LDM4KSxkVz1nWzM2XSg0LDQ1ODkzLDgwLDcxKSxrdT1nWzM2XSg2LDQ1Njk1LDkwLDgyKSx0cD1nWzM2XSg1LDQ1Njg3LDQ0LDgpLFU3PWdbMzZdKDM3LDE4NjEzLDU1OCw0KSxNMj1nWzM2XSgzNyw0NTY3MywxMjUsMTQpLCQ3PWZ1bmN0aW9uKCl7cmV0dXJuIGtbMF0uY2FsbCh0aGlzLDgwKX0sd1c9Z1szNl0oNCw0NTU5OSw2OSw3MSksSXU9Z1szNl0oNSw0NTU3NiwxMTAsNyksRXk9Z1szNl0oNCw0NTU1NywyLDE5KSxGRj1nWzM2XSg2LAo0NTQ4OSw2MSw2OCksQjk9Z1szNl0oNiw0NTQ4MCwxMTgsOSksc2M9Z1szNl0oMzcsNDU0MTUsNTgsNjUpLHpwPWdbMzZdKDUsNDUzMjQsMzQsOTEpLEtlPWdbMzZdKDM4LDQ1MzExLDYzNSwzKSxKbj1nWzM2XSg1LDQ1MjM3LDExMiw2NiksQ2U9Z1szNl0oMzgsNDUxNjgsMzEsNjkpLGJoPWdbMzZdKDUsNDUxNjEsNTUsNyksQW49Z1szNl0oNSw0NTE0MSw1MSwyMCksdjk9Z1szNl0oNSw0NTEyOCw4OCwzKSxUcD1nWzM2XSgzOCw0NTEyMCwxMTEsOCksakg9Z1szNl0oNCw0NTEwMCwxMjEsMjApLHBlPWdbMzZdKDM3LDQ1MDg4LDI1LDEyKSxPaz1nWzM2XSgzNyw0NTA4Miw4LDYpLFFsPWdbMzZdKDM2LDE5MTAzLDcyNTcsNCksbmU9Z1szNl0oNiw0NTA3OSwxMjIsMyksWjA9ZnVuY3Rpb24oQil7cmV0dXJuIGtbMjldLmNhbGwodGhpcywyLEIpfSxXOT1nWzM2XSg2LDQ1MDcxLDc4LDgpLGdzPWdbMzZdKDM3LDQxNjgxLDI4LDI1KSxORT1nWzM2XSgzOCw0NTAyOSw4Nyw0MiksT2M9Z1szNl0oNiwKNDQ5OTcsMTAxLDE5KSxveD1nWzM2XSgzOCw5Myw1NDcsMSkseF89Z1szNl0oMzcsNDQ5ODEsODgsMTYpLEQwPWdbMzZdKDQsNDQ5NzcsMTE0LDQpLEUzPWdbMzZdKDM2LDQ0OTYwLDQ3NzUsNiksZmU9Z1szNl0oNCw0NDgzOSw5MSw3NCksbzI9Z1szNl0oNiw0NDgyMyw5NSwxNikseUU9Z1szNl0oMzcsMjMwMDgsMTIyNSwzKSxvaz1nWzM2XSgzOCw0NDc5Miw0MiwzMSksTGU9Z1szNl0oNCw0NDc3MywxMTEsMTkpLFJrPWdbMzZdKDM3LDQ0NzY3LDk0LDYpLFV3PWdbMzZdKDM4LDQ0NzY1LDk4LDIpLHJzPWdbMzZdKDUsNDQ3NTIsMTA4LDEzKSxWbD1nWzM2XSgzNiw0NDczMCwxMjcsNyksR3A9Z1szNl0oNCw0NDcyMSw4Myw5KSxIOT1nWzM2XSgzOCw0NDcxMCw5NywxMSksZUg9Z1szNl0oMzgsNDI3OTIsNjU1LDQpLFA5PWdbMzZdKDUsNDQ2ODUsMywyNSksJF89Z1szNl0oMzYsNDQ2ODIsMjQsMykscUU9Z1szNl0oMzYsNDQ2MDAsMzcsODIpLExtPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIGcwWzFdLmNhbGwodGhpcywKNzQsQyxCLHosSyxKKX0saWg9Z1szNl0oMzcsNDQ1NjQsNzgsNSkscks9ZnVuY3Rpb24oQix6KXtyZXR1cm4gWVsyXS5jYWxsKHRoaXMsMSx6LEIpfSx5bD1nWzM2XSg2LDQ0NTU1LDQzNSw0KSxZXz1nWzM2XSg2LDQ0NTIxLDExOCwyOSksYzk9Z1szNl0oMzgsNDQ1MTMsNTAsOCksU0g9Z1szNl0oNCw0NDQ3NCwxMDgsNCksbVE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gSFsxN10uY2FsbCh0aGlzLDY0LEIseil9LGxoPWdbMzZdKDUsNDQ0MDMsNTAsNzEpLEVjPWdbMzZdKDM3LDQ0MjI2LDM0LDM1KSxYYT1nWzM2XSgzNiw0NDIxOSwxMTQsNyksdWg9Z1szNl0oMzcsNDQyMTYsMzEsMyksYWs9Z1szNl0oNiw0NDIwNywxMDgsOSksaG49Z1szNl0oMzgsNDQxMjIsMjcsODUpLGRzPWdbMzZdKDM4LDQ0MDUyLDg2LDcwKSxabD1mdW5jdGlvbihCLHope3JldHVybiB5WzI4XS5jYWxsKHRoaXMsNDEsQix6KX0sa189Z1szNl0oNCwxNzM5OSw4MzQwLDEpLHRuPWdbMzZdKDQsNDI2ODYsNTI3OCw0KSwKV1I9ZnVuY3Rpb24oKXtyZXR1cm4gWVs0Nl0uY2FsbCh0aGlzLDk1KX0sVWM9Z1szNl0oNCw0Mzk3Niw0Niw2NyksTUU9Z1szNl0oNiw0MzkxNiwxMDY5LDcpLHdzPWdbMzZdKDM4LDQzODQxLDExMSw5KSxJaz1nWzM2XSg1LDQzNzY3LDEwNyw3NCksRmE9Z1szNl0oNCw0Mzc2Myw5OSw0KSxtMD1nWzM2XSg0LDQzNzYwLDEwMywzKSxCcj1nWzM2XSgzNywxNzk5LDExOTAsNSksc1Q9Z1szNl0oNiwzNjc5MCwxMCw2NSksemU9Z1szNl0oMzgsNDM3NTEsNDEsOSkscHE9ZnVuY3Rpb24oQil7cmV0dXJuIEhbNF0uY2FsbCh0aGlzLDEsQil9LEtWPWdbMzZdKDM2LDQzNzI5LDExMCwyMiksSl89Z1szNl0oMzgsNDM2NzYsMjcsMTEpLENWPWdbMzZdKDUsMTI0ODgsNTgsMjEpLFp4PWdbMzZdKDM2LDExOTU3LDEyMyw1MSksYlU9Z1szNl0oNSw0MzY3MSw5Nyw1KSxBXz1nWzM2XSg1LDMzOTM2LDk3LDQ2KSxzMT1nWzM2XSgzNiwxNzg5MSwyMSwxMiksdnI9Z1szNl0oMzgsNDM2NjAsNjUsOCksClRlPWdbMzZdKDYsNDM2NTQsNTcsNiksaTE9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMThdLmNhbGwodGhpcyw5LEIpfSxqMT1nWzM2XSgzNyw0MzU4NSwxMDksNjkpLHBWPWdbMzZdKDUsNDM1MTYsMzYsNjkpLFFJPWdbMzZdKDM4LDQzNTAwLDM3LDE2KSxuVj1nWzM2XSgzNyw0MzQyOCwxMTcsNzIpLHlCPWdbMzZdKDYsNDM0MTUsNywxMyksWnY9Z1szNl0oNiw0MzQwNCwzOSwxMSkscjM9Z1szNl0oMzcsNDMyOTUsOCwxMiksV3I9Z1szNl0oMzgsMjI1OTAsOTAsNSksZ0M9Z1szNl0oMzgsNDMyNzgsODcsMTMpLE5qPWdbMzZdKDM3LDYwMjEsNTgwMSwyKSxPQz1nWzM2XSg0LDk3MDgsOTAsMTAxKSxPVD1nWzM2XSg2LDE4MTA0LDQwLDQpLHg2PWdbMzZdKDUsNDMyNzQsMTAsNCksRHY9Z1szNl0oNCw0MzI2Niw3OCw4KSxmVj1nWzM2XSgzOCwzMTY5MiwxMjIsNyksb2w9Z1szNl0oNSw0MzI2NSwyNywxKSxMVj1nWzM2XSgzNiw0MzE5OSw5Miw2NiksUmw9Z1szNl0oMzYsNDMxMzUsOTEsNjQpLApQNz1nWzM2XSgzNiwyNjQ5MiwxNDg3LDEpLHJDPWdbMzZdKDYsNjQ2MiwxNjc2LDEwKSxqdT1nWzM2XSg2LDk1LDc1MiwxKSxWST1nWzM2XSg1LDQzMDUxLDE2MiwzKSxKOD1nWzM2XSgzNiwxMDA0Miw0NiwxKSx6Tz1mdW5jdGlvbihCKXtyZXR1cm4gR1s0OF0uY2FsbCh0aGlzLDMzLEIpfSxHZT1nWzM2XSg1LDQyOTc0LDkyLDc2KSxIcj1nWzM2XSgzOCwxMzA3NSw3Miw3NiksZTE9Z1szNl0oMzgsNDI5NjAsMTE2LDE0KSxQcj1nWzM2XSg2LDQyOTE5LDU1LDcpLCQ2PWdbMzZdKDYsNDI5MTYsMTEwLDMpLHFqPWdbMzZdKDM4LDQyOTA2LDM5LDEwKSxoeT1nWzM2XSg1LDQyODk2LDExNSw1KSxpVT1nWzM2XSgzOCw0Mjg4OSwxMjcsNykseUk9Z1szNl0oMzYsNDI4MTIsNTYsNiksWTY9Z1szNl0oMzgsNDI4MDcsMzUsNSksY3I9Z1szNl0oMzYsNDI3OTYsMzEsMTEpLFMxPWdbMzZdKDM3LDQyNzgzLDEsNyksbWE9Z1szNl0oNiw0Mjc3NSwxMDIsOCksdXU9Z1szNl0oNiw0Mjc3MiwzMCwKMyksbFU9Z1szNl0oNCw0Mjc0OSwxMjIsNiksRFY9Z1szNl0oNCw0Mjc0MSwxMDIsOCksRVQ9Z1szNl0oMzYsNDI3MjcsMzMsMTQpLFhCPWdbMzZdKDYsNDA0OTEsMTEwNSwxNiksdVU9Z1szNl0oMzYsNDI3MTgsMTMsOSksYWw9Z1szNl0oMzcsNDI2MzUsMTIwLDgzKSxoXz1nWzM2XSg0LDQyNTY1LDkxLDcwKSxkQz1nWzM2XSgzNyw0MjQ4Niw0OSw3OSksZFo9Z1szNl0oMzYsNDI0NzYsNjMsMTApLGs2PWdbMzZdKDM2LDQyNDY5LDE0LDcpLFpIPWdbMzZdKDM2LDQyNDU3LDYzLDEyKSx0Xz1nWzM2XSgzOCw0MjQ0NCw1NSwxMyksVVQ9Z1szNl0oMzYsOTA2Nyw1MjkxLDYpLE1qPWdbMzZdKDQsNDI0MTQsODksOCksd0M9Z1szNl0oNiw0MjQwNiw2NSw4KSxJbD1nWzM2XSg1LDExMiwyMjIyLDIpLENoPWdbMzZdKDQsMzUxMjQsNDEsMTYpLEZCPWdbMzZdKDQsNDIzNTEsNzIsNTUpLG9mPWdbMzZdKDM3LDQyMzQ2LDU3LDUpLGM4PWdbMzZdKDUsNDQ1OCw1MjQ0LDUpLEJLPWdbMzZdKDM3LAo0MjI4NywxMTcsOCksdno9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMjZdLmNhbGwodGhpcywxLEIpfSxzQj1nWzM2XSg0LDQyMjE3LDEyLDcwKSxqZj1nWzM2XSgzOCwzNjA0OSw4NCwyOCksemk9Z1szNl0oNiw0MjIwNCw2MSwxMyksSzI9Z1szNl0oNiwyNjQ3Nyw2MCw0KSxKbD1nWzM2XSg2LDQyMTk2LDM2LDgpLFl5PWdbMzZdKDM4LDI1ODE3LDE5OSwzKSxDMj1nWzM2XSg2LDQyMTMzLDE2LDYzKSxiWD1nWzM2XSg0LDQyMTMwLDcsMyksQWw9Z1szNl0oNCwxMDMzNyw1NCwyOSksdks9Z1szNl0oMzYsNDE5ODgsNjUsODQpLFRpPWdbMzZdKDYsNDE5NDMsMTE3LDQ1KSxFeD1nWzM2XSgzOCw0MTkzMyw2MiwxMCksank9Z1szNl0oMzYsNDE4ODgsNTgsNDUpLHAyPWdbMzZdKDYsNDE4ODUsMTI2LDMpLGNVPWdbMzZdKDM4LDI2NTcwLDkzMDUsNiksQTQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEY1KGtbOF0oMTYsRzIuYXBwbHkoMCxhcmd1bWVudHMpKSwhMCl9LFEzPWdbMzZdKDM3LDI3MjQ3LAozMiwxNiksbjI9Z1szNl0oNSw0MTg3NSw4NSwxMCksS3E9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMjVdLmNhbGwodGhpcywyLEIpfSx2bj1nWzM2XSg2LDQxODYxLDU3NSwxNCksWiQ9Z1szNl0oMzcsMzIyNDAsNDkxOSw4KSxXSz1nWzM2XSg0LDE4NDA4LDQ4NDEsMiksZ3U9Z1szNl0oNSw0MTY5MCw3MzIsNSksTjY9Z1szNl0oMzgsNDE2NzksMjEsMiksT0I9Z1szNl0oNSw0MTYxMSw3Nyw2OCkseEU9Z1szNl0oNSw0MTUzNiw0OSw3NSksT1I9Z1szNl0oMzYsNDE1MjMsNzYsMTMpLEQkPWdbMzZdKDM2LDQxNTE1LDY0LDgpLGYyPWdbMzZdKDM4LDE5NjA1LDQ2LDEwKSxvYT1nWzM2XSgzNyw0MTQzMCw0NSw2MSksTDI9Z1szNl0oMzYsOTQwNCw2OTY4LDMpLFJhPWdbMzZdKDM3LDQxNDIyLDc3LDgpLHJ1PWdbMzZdKDYsNDE0MTgsMjIsNCksVjM9Z1szNl0oMzgsNDE0MDAsMTEzLDE4KSxHaT1mdW5jdGlvbihCLHope3JldHVybiBPWzRdLmNhbGwodGhpcywxMixCLHopfSx4WD1nWzM2XSgzNiwKNDEzOTUsNjgsNSksaFI9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMzldLmNhbGwodGhpcyw2OCxCKX0sSEs9Z1szNl0oMzgsNDEzODksNzQsNiksZXk9Z1szNl0oMzgsNDEzMjAsMTQsNjkpLFBLPWdbMzZdKDM4LDQxMjkyLDY5LDI4KSwkRT1nWzM2XSg1LDI5ODcyLDU2Niw4KSx1cT1mdW5jdGlvbihCKXtyZXR1cm4gbVszOV0uY2FsbCh0aGlzLDUsQil9LHE2PWdbMzZdKDQsNDEyNDIsNTMsOCksaVg9Z1szNl0oNiw0MTIzNyw5NCw1KSxLMT1nWzM2XSg1LDM4NjgsMjY4NywxKSx5Mz1nWzM2XSg1LDQxMjIxLDEwOSwxNiksWUU9Z1szNl0oMzgsNDEyMDksMTUsMTIpLGNLPWdbMzZdKDM3LDQxMTk3LDIxLDEyKSxTeT1nWzM2XSg0LDQxMTY4LDcxLDgpLG01PWdbMzZdKDM4LDQxMTQ5LDE1MywxOSksTlE9ZnVuY3Rpb24oKXtyZXR1cm4ga1syOF0uY2FsbCh0aGlzLDQwKX0sdW09Z1szNl0oNiw0MTEyNSw5NTgsNyksbFg9Z1szNl0oNiw0MTEwMiw1NSwxNCksRUI9Z1szNl0oNiw0MTA3MiwxMDcsCjE4KSxYaj1nWzM2XSgzNiw0MTA3MCw3LDIpLHVYPWdbMzZdKDQsNDEwNDYsMzcsOSksV1U9ZnVuY3Rpb24oKXtyZXR1cm4gSFs1XS5jYWxsKHRoaXMsMSl9LGFhPWdbMzZdKDM3LDQxMDQyLDEyNSw0KSxobD1nWzM2XSg0LDQxMDI1LDU4LDEwKSx4Yj1nWzM2XSgzNyw0NzkxLDM0MTIsNSksZHU9Z1szNl0oNSw0MDk2OCw2Miw1KSxrRT1mdW5jdGlvbihCKXtyZXR1cm4gbVsyN10uY2FsbCh0aGlzLDEsQil9LCRQPWdbMzZdKDM4LDQwODU0LDY4LDEyKSx0bD1nWzM2XSgzNiwxNDk0NCw3OCw2NyksakY9Z1szNl0oMzcsMzEzODEsNDIsMyksVUI9Z1szNl0oMzgsMjg5MjcsMzAwLDUpLEdyPWdbMzZdKDYsNDA4NDQsMTIzLDEpLE02PWdbMzZdKDM2LDQwNzczLDc2LDcxKSx3dT1nWzM2XSg0LDQwNzU0LDMyLDE5KSxJYT1nWzM2XSgzNywxOTI4NSw1ODk2LDQpLEZqPWdbMzZdKDM2LDQwNzUwLDczLDQpLEJKPWdbMzZdKDM2LDQwNzQ0LDI0LDYpLHNQPWdbMzZdKDM4LDQwNzM4LDgsNiksc3Q9CmdbMzZdKDM3LDQwNzIyLDg5LDE2KSx6OT1nWzM2XSg1LDQwNzAwLDMxLDIyKSxLZD1nWzM2XSg0LDQwNjIyLDc4LDYyKSxKQz1nWzM2XSgzNyw5Nzg5LDgwNjYsMiksQ2Q9Z1szNl0oMzcsNDA1NzUsODEsMTEpLGJTPWdbMzZdKDM3LDExNSwyNDIwLDEpLEFDPWdbMzZdKDM2LDQwNTE0LDY2LDYxKSx2Sj1nWzM2XSgzNyw0MDUwOCw2OSw0KSxUOT1nWzM2XSgzNyw0MDUwMSwyMTgzLDYpLGpWPWdbMzZdKDYsNDA0MDksMTQsNzEpLHBkPWdbMzZdKDM4LDQwNDAwLDUxLDkpLFFYPWdbMzZdKDM4LDQwMjE5LDEwMyw3MSksbmQ9Z1szNl0oNCwyNjA1MiwzOTIsNyksWmE9Z1szNl0oMzcsMzMyMTUsNDEsODApLFdKPWdbMzZdKDQsNDAyMDYsMjMsMTMpLGdoPWdbMzZdKDYsNDAxMzMsNDQsMTgpLE5lPWdbMzZdKDQsNDAxMjgsOTAsNSksTHk9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaSxTMD0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlwvPyNdKig/OltcLz8jXXwkKSkvaSwKT1A9Z1szNl0oNCw0MDEyMiwxMTMsNikseDM9Z1szNl0oNSw0MDExMiwzOSwxMCksaW09Z1szNl0oMzcsNDAxMDYsODgsNiksRGE9Z1szNl0oMzcsOTIsNDM5LDEpLGZkPWdbMzZdKDM3LDQwMDM1LDE1LDcxKSxvTD1nWzM2XSgzNyw0MDAyMyw0MywxMiksTGQ9Z1szNl0oNCw0MDAwOSwzNSwxNCksUkw9Z1szNl0oNCwzOTk4MCw0MSwyOSkscmg9Z1szNl0oMzcsMzk4OTAsNDAsOTApLFZYPWdbMzZdKDQsMzk4MDYsNDcsODQpLEc5PWdbMzZdKDM4LDM5NzQxLDM1LDY1KSxISj1nWzM2XSgzNiwzOTY3NCwwLDY3KSxDbj1nWzM2XSgzNiwzOTY2NCwyNjExLDkpLGVWPWdbMzZdKDM2LDM5NTcwLDk1LDY2KSxQSj1nWzM2XSgzOCwyMDAsOTkyNSwxKSwkMz1nWzM2XSg2LDM5NDk0LDYzLDc2KSxxZT1nWzM2XSg0LDM5NDc5LDYsMTUpLGlTPWdbMzZdKDM2LDM5NDYzLDEwNywxNiksZHc9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMzVdLmNhbGwodGhpcywxNixCKX0seVg9Z1szNl0oMzgsMzk0MzgsCjQ1LDI1KSxZMz1nWzM2XSgzNiwzNDQzNSw0MTIwLDgpLEw1PWdbMzZdKDUsMjkwMywxNTM4LDgpLGNKPWdbMzZdKDYsMzk0MzAsOCw4KSx0WD1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4ga1syN10uY2FsbCh0aGlzLDkseixLLEIsSixDLGIsQSl9LFNWPWdbMzZdKDM4LDM5NDAyLDEzLDUpLG1mPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7cmV0dXJuIG1bN10uY2FsbCh0aGlzLDEsQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKX0seEo9Z1szNl0oNCwzOTM4MSwxNCwyMSksbFM9Z1szNl0oMzYsMzkzMTcsNDEsNjQpLEVQPWdbMzZdKDM3LDM5Mjk5LDExNCw3KSxYRD1nWzM2XSg0LDMzNTEwLDY2LDIwKSx1Uz1nWzM2XSgzOCwzOTIyNiw2NCw3MyksYUw9Z1szNl0oNiw0NzQ2LDc0LDUpLGhDPWdbMzZdKDM4LDM5MDkzLDkwLDc2KSxkaD1nWzM2XSgzNiwzOTAxOSw2Nyw3NCksazM9Z1szNl0oMzgsMzkwMTAsCjgzLDkpLEtyPWdbMzZdKDM3LDM5MDA2LDExLDQpLHRDPWdbMzZdKDM2LDM5MDAzLDY1LDMpLFVQPWdbMzZdKDM4LDM4OTk5LDksNCksTWU9Z1szNl0oNSwzODkzOCw5Myw2MSksd2g9Z1szNl0oMzgsMzg5MjQsMjksNCksU009Z1szNl0oNSwzODkxNiw0MCw4KSxJTD1nWzM2XSgzNywxNzMxMyw0NDYsMiksRkQ9Z1szNl0oMzYsMzg4NDMsMTEzLDczKSxCXz1nWzM2XSg0LDM4ODAzLDEyNiw0MCksYjQ9Z1szNl0oMzcsMzg3ODQsMjUxOCw4KSxzUz1nWzM2XSg2LDM1NTgyLDkxLDM0KSxlYz1mdW5jdGlvbihCKXtyZXR1cm4gZ1sxNV0uY2FsbCh0aGlzLDE2LEIpfSxJYj1mdW5jdGlvbihCKXtyZXR1cm4gSFsxNl0uY2FsbCh0aGlzLDI1LEIpfSx6Sz1nWzM2XSg1LDM4NzE1LDE3LDcpLEt2PWdbMzZdKDM4LDM4NjU4LDg3LDE3KSxKYz1nWzM2XSgzOCwzODU1NSwxMjUsNzEpLEN2PWdbMzZdKDM2LDE0NDUzLDQ0NjAsMSksYm89Z1szNl0oMzYsODM1LDEwMyw0KSxSQj1mdW5jdGlvbihCLAp6LEspe3JldHVybiB5WzI5XSgxLDAsImNsYXNzIixhcmd1bWVudHMsZG9jdW1lbnQpfSxBYz1nWzM2XSg1LDI0NjA4LDQwMCwyKSx2Xz1nWzM2XSgzNiwzODU0MCw4OCwxNSksVEs9Z1szNl0oNSwyNjQ5OSwyMTYwLDIpLEI2PWdbMzZdKDM3LDM4NTM3LDYyLDMpLGlUPWdbMzZdKDM2LDIwNzI4LDEzMjQsMyksajk9Z1szNl0oMzYsMzg0OTAsNSwyOCksYjA9Z1szNl0oNiw2NTg4LDQ5MiwxNikscHY9Z1szNl0oMzgsMzg0NjAsMjcsNCksUXA9Z1szNl0oMzgsMzg0NTQsMjQsNiksbnY9Z1szNl0oMzYsMzg0NDQsMjEsMTApLFpnPWdbMzZdKDQsMzgzNzcsNjMsNjcpLFdfPWdbMzZdKDYsMzgzMTUsNCw2MiksTkw9Z1szNl0oMzYsMzgyODQsMTE4LDMxKSxnVT1nWzM2XSgzNiwzODI3Myw1NywxMSksTmw9Z1szNl0oMzYsMTcwMyw0NiwxMSksbGQ9Z1szNl0oNCwzODI0NCw5NCwyOSksT1M9Z1szNl0oNCwzODE3Myw4Nyw3MSkseG09Z1szNl0oMzYsMzgxNjUsMTA2LDgpLERnPWdbMzZdKDYsCjMxNzA5LDQ0LDgwKSxmdj1nWzM2XSg2LDM4MTA0LDU0LDYxKSxvej0vWyNcPzpdL2csTHY9Z1szNl0oMzcsMzgwNTAsODgsNTQpLFJ6PWdbMzZdKDUsMzc5ODIsODcsNjgpLHJVPWdbMzZdKDUsMjMwMDUsMTAwNyw2KSxWcD1nWzM2XSg2LDM3OTI0LDQsNiksR0s9Z1szNl0oMzYsMTg1MDYsMzA2LDUpLHBmPWdbMzZdKDM3LDM3OTE0LDQxLDEwKSxIXz1nWzM2XSg0LDM3OTAzLDIwLDExKSxlOT1nWzM2XSgzNyw1NjI4LDEwODcsNCksUF89Z1szNl0oMzYsNjU3NSwyMSw4KSxiUj1nWzM2XSgzOCwzNzg4NCw4Myw4KSwkbT1nWzM2XSgzNiwzNzg0MywwLDQxKSxxbD1nWzM2XSgzNiwxNDEzMywxMDA2LDMpLGlvPWdbMzZdKDYsMzc4MDMsNTAsNDApLHlwPWdbMzZdKDM3LDM3NzE1LDUwLDg0KSxZbT1nWzM2XSgzNywzNzY5NSwyNywyMCksY189Z1szNl0oMzgsMTUyMTksMTQ0NCw1KSxTOT1nWzM2XSgzNiwzNzY4OCw2Miw3KSxtQj1nWzM2XSg1LDM3NjE3LDEwMCw3MSksbG89Z1szNl0oMzYsCjE3MTgyLDI1ODcsNCksRVM9Z1szNl0oNiwzNDg0OCwyNDYsNiksVDM9Z1szNl0oNCwzNzYxMywyMyw0KSxYcD1nWzM2XSg2LDM3NjAwLDE3LDEzKSxuMD1mdW5jdGlvbigpe3JldHVybiBHWzQwXS5jYWxsKHRoaXMsOCl9LHVvPWdbMzZdKDYsMzc1NzQsNDIsMjYpLGF6PWdbMzZdKDYsMTI5LDM2NDksMSksWDY9ZnVuY3Rpb24oKXtyZXR1cm4ga1szMF0uY2FsbCh0aGlzLDEpfSxTcD1nWzM2XSg0LDM3NTY3LDcwLDcpLGhjPWdbMzZdKDUsMzc1NTMsODAsMTQpLGRVPWdbMzZdKDYsMzc1NDIsNjYsMTEpLGttPWdbMzZdKDM2LDM3NTM1LDExNSw3KSxGWj1nWzM2XSgzOCwzNzUxNCwxMDMsMjEpLHRjPWdbMzZdKDM2LDM3NTEyLDU0NzMsMSksWWg9Z1szNl0oNSwzNzQyOSw5LDEzKSxVUz1nWzM2XSg0LDM3NDIzLDM5LDYpLEdxPWZ1bmN0aW9uKEIseil7cmV0dXJuIFJbMjBdLmNhbGwodGhpcywxMixCLHopfSxNbD1nWzM2XSgzNiwzNzQxOSwxMTcsNCksd1U9Z1szNl0oMzYsMzc0MTUsNjAsCjQpLGNFPWdbMzZdKDM3LDM1NTQ3LDY2LDIpLEl6PWdbMzZdKDM4LDM3Mzg1LDEyMCw1KSxGcD1nWzM2XSg0LDM3MzUyLDE4LDMpLFJpPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gZzBbNl0uY2FsbCh0aGlzLDYwLEIseixLKX0sQnY9Z1szNl0oNiwzNzI4Miw1Niw3MCksbTI9Z1szNl0oMzgsMzU2MTIsMjM5OSw0KSxzJD1nWzM2XSg0LDM3MjM4LDI3LDQ0KSx6Tj1nWzM2XSg1LDM3MTkxLDM2LDgpLEtFPWdbMzZdKDM2LDI5OCwxODYxMSwxKSxKNz1nWzM2XSgzOCwzNzEyMyw3Myw2OCksQ0U9Z1szNl0oMzcsMzY5ODUsMTEwLDg1KSxWbz1mdW5jdGlvbihCKXtyZXR1cm4gZzBbMF0uY2FsbCh0aGlzLDgsQil9LGJ0PWdbMzZdKDM4LDM2ODQzLDUxNDQsNyksQTc9Z1szNl0oMzYsODA0Myw4Niw1KSx2dj1nWzM2XSg1LDM2Nzc4LDExOCwxMiksVE49Z1szNl0oNiwzNjc2Nyw1MTIsNSksanc9Z1szNl0oNSw3MDU4LDU2MDQsMykscEU9Z1szNl0oMzgsMzY3MzUsNjAsMjcpLFF1PWdbMzZdKDM4LAozNjczMiw4OCwzKSxuRT1nWzM2XSg0LDM2NjY1LDExOSw2NyksWm49Z1szNl0oMzgsMzY2NjMsMTAxLDIpLFd2PWdbMzZdKDUsMzY1OTEsOTgsNzIpLGduPWdbMzZdKDM4LDM2NTg3LDkxLDQpLGtZPWZ1bmN0aW9uKEIpe3JldHVybiBZWzE1XS5jYWxsKHRoaXMsMixCKX0sTjQ9Z1szNl0oMzgsMzY1ODIsMCw1KSxPJD1nWzM2XSgzNiwzNjUyMCwxNyw2MikseFM9Z1szNl0oMzcsMzY1MTAsOTAsMTApLGYwPWdbMzZdKDYsMTU2OCw1ODE5LDQpLERuPWdbMzZdKDQsMzYzODQsMiw3OCksZmY9WzEsMiwzLDVdLGZFPWdbMzZdKDM2LDM2MzcyLDExMiwxMiksb3E9Z1szNl0oNSwxMTUxLDU4NSw2KSxMRT1nWzM2XSg2LDM2MzUyLDEwLDIwKSxScT1nWzM2XSg1LDM2MzQ0LDE0LDMpLEt4PWdbMzZdKDQsMzYzMzgsMTE5LDYpLHJyPWdbMzZdKDM2LDM2MzI4LDEwLDEwKSxybj1nWzM2XSg0LDM2Mjk4LDk5LDMwKSxWdT1nWzM2XSg0LDM2Mjk1LDcxLDMpLEdOPWdbMzZdKDYsMzYyNjksNTI1NSwKNykscjY9Z1szNl0oMzgsMzYxODgsMzAsMzApLEh2PWdbMzZdKDM3LDkyMDQsMjg5MSw3KSxldz1nWzM2XSgzNyw5Niw4MDEsMSksVnE9Z1szNl0oMzYsODksMTYyLDEpLFB2PWdbMzZdKDUsMTg1MDIsNCw5KSwkUz1nWzM2XSg1LDM2MTA1LDQxLDc3KSxxND1nWzM2XSgzNiwzNjA1Nyw4MjUsOCksaXQ9Z1szNl0oMzYsMjU0NzIsMjc1LDMpLHl1PWdbMzZdKDM3LDM2MDM2LDIwLDUpLFlTPWdbMzZdKDQsMzU5NjksMjMsNjcpLGN2PWdbMzZdKDUsMzU5MDYsNTg4LDcpLEp6PWZ1bmN0aW9uKEIpe3JldHVybiBlWzE5XS5jYWxsKHRoaXMsMSxCKX0sU3c9Z1szNl0oNCwzNTg5MSw4Miw5KSxtUz1nWzM2XSg0LDM1ODgwLDQ1LDExKSxFMD1mdW5jdGlvbihCKXtyZXR1cm4gZVszN10uY2FsbCh0aGlzLDgsQil9LHlSPWdbMzZdKDM4LDM1ODczLDY0LDcpLHhrPWZ1bmN0aW9uKEIpe3JldHVybiBtWzM0XS5jYWxsKHRoaXMsMTgsQil9LGx0PWdbMzZdKDUsMzU4MjMsMjYsMSksRSQ9Z1szNl0oMzgsCjM1ODEyLDY4LDExKSx3ZD1nWzM2XSgzNiwzNTY3NywxMTksMzEpLGowPWdbMzZdKDQsMzU2NTYsMzk3MCw0KSxsTj1nWzM2XSgzOCwxOTY1MCw0NDc0LDkpLFhDPWdbMzZdKDM2LDM1NTg0LDI1MCw0KSx1dD1nWzM2XSg1LDE5NDk1LDUzLDQpLGFxPWdbMzZdKDM4LDM1NTUxLDQsMTApLGg3PWdbMzZdKDM4LDM1NTQ3LDY2LDQpLGRuPWdbMzZdKDQsMzU1NDMsMTI0LDQpLGRpPWZ1bmN0aW9uKEIseil7cmV0dXJuIGdbMzFdLmNhbGwodGhpcywxLEIseil9LGtTPWdbMzZdKDYsMzU1MDEsNzQsNDIpLHQ3PWdbMzZdKDQsMzUzOTgsNjYsNjcpLFUkPWdbMzZdKDM2LDM1Mjk1LDE3LDczKSxNND1nWzM2XSg2LDM1MjMwLDI4LDY1KSx3bj1nWzM2XSg2LDM1MjE5LDg1LDExKSxJcT1nWzM2XSgzNywyNjQ5MywxNTIxLDEpLEZDPWdbMzZdKDM4LDM1MTI0LDQxLDQ1KSxCTT1nWzM2XSg2LDM1MDk5LDIxLDI1KSxkQj0vW1x4MDBceDIyXHgyN1x4M2NceDNlXS9nLHM2PWdbMzZdKDQsMzUwOTAsMTAwLAo5KSxhUj1mdW5jdGlvbihCKXtyZXR1cm4gZVs0M10uY2FsbCh0aGlzLDEsQil9LHpTPWdbMzZdKDM2LDM1MDY1LDIwLDI1KSxLTj1nWzM2XSgzNiwzNTA1Miw1OSwxMyksSmg9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1syOV0uY2FsbCh0aGlzLDM1LEIseil9LENOPWdbMzZdKDYsMzM5MCwzNCwyNSksdEI9Z1szNl0oNiwyNTIyNSwxMjg2LDQpLGJfPWdbMzZdKDM2LDM1MDUxLDYzLDEpLEFoPWdbMzZdKDQsMzUwMzgsODQsMTMpLHZNPWdbMzZdKDUsMzUwMjUsNjYsMTMpLFRTPWdbMzZdKDM2LDM0OTYwLDExMiw2NSksaiQ9Z1szNl0oMzgsMzQ5NTMsMTQsNykscE49Z1szNl0oNSwzNDk0NiwxNSw3KSxRZT1mdW5jdGlvbihCKXtyZXR1cm4gbVsxOF0uY2FsbCh0aGlzLDM2LEIpfSxuTj1nWzM2XSg1LDM0ODczLDMzLDczKSxaNT1nWzM2XSg0LDM0ODYzLDExNywxMCksV009Z1szNl0oNCwzNDg0Niw4OSw4KSxnej1nWzM2XSgzNiwzNDgyOCw3LDE4KSxOQz1nWzM2XSg1LDQyNDgsOTksMzYpLApqZT1nWzM2XSgzOCwyNjQ5MywxNTIxLDkpLE82PWdbMzZdKDM2LDM0ODIyLDY0LDYpLHhvPWdbMzZdKDUsOTExMyw4NCwxNCksRDU9Z1szNl0oNiwzNDgxOCwxMSw0KSxmTj1nWzM2XSgzNiwzNDgxNSw2LDMpLG9HPWdbMzZdKDUsMzQ3MDgsOTcsNzIpLExOPWdbMzZdKDM2LDM0Njk4LDEwMCwxMCksUkc9Z1szNl0oMzcsMzQ2MzksMTEsNTkpLEZvPWdbMzZdKDM2LDEyNzE2LDEyMiwxKSxITj1mdW5jdGlvbihCKXtyZXR1cm4gRFsyNV0uY2FsbCh0aGlzLDcsQil9LHJ6PWdbMzZdKDQsMzQ2MzEsMTIwLDgpLFZlPWdbMzZdKDUsMzQ1MDksMTI0LDc5KSxHUz1nWzM2XSgzOCwzNDUwNCwxLDUpLEhNPWdbMzZdKDM3LDM0NDM1LDQxMjAsNSksZSQ9Z1szNl0oMzgsMjQ4MjMsNzMyLDQpLFBNPWZ1bmN0aW9uKEIseil7cmV0dXJuIEdbN10uY2FsbCh0aGlzLDMyLEIseil9LCRvPWdbMzZdKDM3LDM0MzExLDExMiw3MSkscUM9Z1szNl0oNCwzNDMwMSw0MywxMCksaV89Z1szNl0oMzYsMzQyOTgsCjEyMCwzKSx5ZT1nWzM2XSgzOCwzNDI4MCwzOCwxOCksWW89Z1szNl0oMzYsMjA5MjEsNTkxLDMpLGNNPWdbMzZdKDM4LDM0MjE1LDIxLDY1KSxTJD1nWzM2XSgzOCwxMjQ5OSwxMTQ2LDUpLG0kPWdbMzZdKDYsMzQyMDEsMTE0LDE0KSxsXz1nWzM2XSgzOCwzNDExOCwxMjcsODMpLEU2PWdbMzZdKDQsMzQwNTAsMjAsNyksWFE9Z1szNl0oMzYsMzM5ODIsNjcsNjgpLHVfPWdbMzZdKDQsMjA0LDEwMzUyLDEpLEMxPWdbMzZdKDM3LDMzOTYxLDIzNDcsMSksVjA9Z1szNl0oNiwzMzkyOCwzNDk0LDcpLGFHPWdbMzZdKDUsMzM4ODEsODcsMTApLHJwPWZ1bmN0aW9uKEIpe3JldHVybiBZWzVdLmNhbGwodGhpcywxLEIpfSxoaD1nWzM2XSg1LDMzODczLDg2OSw4KSxkej1nWzM2XSg0LDMzODQ5LDExMCwxNiksa289Z1szNl0oMzcsMzM3NzksODMsNzApLEV3PWdbMzZdKDM2LDMzNzUyLDE4LDI3KSxtRz1nWzM2XSg0LDMzNzQ5LDExMiwzKSxudz1nWzM2XSg1LDE3OCw3ODU2LDEpLHRoPWdbMzZdKDM3LAoxOTQ5OSwzMzYsNCksVTY9Z1szNl0oNCwzMzc0Myw4NSw2KSxNQz1nWzM2XSgzNywzMzYyNSwxMDIsMjApLHd6PWdbMzZdKDM4LDMzNTUyLDIyLDczKSxkUz1nWzM2XSgzNiwzMzUzMCwyNCwyMiksSUc9Z1szNl0oMzYsMzM1MTAsNjYsMTIpLEZRPWdbMzZdKDUsMzM0OTksOTEsMTEpLEJ5PWdbMzZdKDM2LDI0NjA0LDExOSwzMyksc289Z1szNl0oNiwzMzQzOSwxMiwxNCksVkE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gSFszMV0uY2FsbCh0aGlzLDcwLEIseil9LHpnPWdbMzZdKDQsMzMzNjUsNTcsNzQpLEs0PWdbMzZdKDQsMzE0LDIwMDM5LDIpLEpPPWdbMzZdKDM4LDMzMzUzLDE5LDEyKSxDND1nWzM2XSgzNywzMzI5OSw4MSw1NCksYiQ9Z1szNl0oMzcsMTMwNjUsMTE5LDEwKSxBTz1nWzM2XSg2LDMzMjk1LDEyNiw0KSx2eT1nWzM2XSgzOCwzMzE5NCw2NCwyMSksVGc9Z1szNl0oNiwzMzE4NCw4NSwxMCksam09Z1szNl0oMzcsMjU0MTgsNjksMTQpLHA0PWdbMzZdKDM4LDMzMTEyLDc0LAo3MiksSHQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtyZXR1cm4gWVs0MF0uY2FsbCh0aGlzLDIwLEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil9LFFZPWdbMzZdKDM4LDMzMDM2LDEwOCw3NiksbjQ9Z1szNl0oMzgsMzMwMzAsNDIsNiksWl89Z1szNl0oNiwzMzAxNiw4MywxNCksYkY9ZnVuY3Rpb24oQil7cmV0dXJuIFJbNDNdLmNhbGwodGhpcyw4MCxCKX0sRmg9Z1szNl0oNCwzMjk3OCw1Niw1KSxXeT1nWzM2XSgzNiwzMjk2Miw0MiwxNiksZ0w9Z1szNl0oNiwyNjQ5NSwxNzM2LDIpLHJhPWdbMzZdKDYsMjg3OTMsMzQ1LDQpLE5CPWdbMzZdKDM3LDMyOTQ4LDE0NjEsOSksQ3I9Z1szNl0oNiwzMjkzMiw4LDIpLEZBPWZ1bmN0aW9uKEIpe3JldHVybiB5WzE0XS5jYWxsKHRoaXMsNDQsQil9LE9vPWdbMzZdKDM4LDMyODkxLDExNyw0MSkseEc9Z1szNl0oMzgsMzI4NjEsNzcsMyksRF89Z1szNl0oNSwzMjc4OCwyOCwzMCksZjQ9Z1szNl0oMzcsMjY0ODMsCjYxNSwyKSxvdj1nWzM2XSgzNywzMjczNCwxMjEsMTApLEw0PWdbMzZdKDYsMzI3MzksNjYzLDUpLFJ2PWdbMzZdKDQsMTM3NTksMjg5NiwzKSxyTD1nWzM2XSgzNiwzMjU2MiwzMiw3MiksSGo9Z1szNl0oMzcsMzI1NDAsNSwyMiksVlk9Z1szNl0oNiwzMjQ5MywyOSw0NyksR2c9Z1szNl0oNiw3MjkwLDc1ODIsMiksSHk9Z1szNl0oMzgsMzI0ODIsMTE2LDQpLFlKPWdbMzZdKDM4LDMyNDI2LDc0LDcpLFhyPWdbMzZdKDM2LDMyNDA5LDIwLDE3KSxlbT1nWzM2XSgzOCwzMjM5OCw0NCwxMSksT209ZnVuY3Rpb24oQil7cmV0dXJuIEhbMzFdLmNhbGwodGhpcyw2LEIpfSxQeT1nWzM2XSg0LDE3ODUwLDE5LDEwKSxVMz1nWzM2XSg2LDMyMzU5LDEyMSwzOSksJEc9Z1szNl0oNSwzMjI5Miw1MSw2NykscUI9Z1szNl0oMzgsMzIyODQsMjA4Myw4KSxpJD1nWzM2XSg0LDMyMTkyLDU0LDY3KSx5WT1nWzM2XSgzNiwzMjE4NywxMTcsNSksR2g9Z1szNl0oMzYsMzIxODQsMTExLDMpLExLPWdbMzZdKDUsCjMxOTM2LDM1Nyw0KSxNSz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gWVsyMF0uY2FsbCh0aGlzLDgsQix6LEssSixDLGIsQSx2LHAsUSl9LFlHPWdbMzZdKDYsMzIwNzgsNTgsNjgpLGN5PXtVcDozOCxEb3duOjQwLExlZnQ6MzcsUmlnaHQ6MzksRW50ZXI6MTMsRjE6MTEyLEYyOjExMyxGMzoxMTQsRjQ6MTE1LEY1OjExNixGNjoxMTcsRjc6MTE4LEY4OjExOSxGOToxMjAsRjEwOjEyMSxGMTE6MTIyLEYxMjoxMjMsIlUrMDA3RiI6NDYsSG9tZTozNixFbmQ6MzUsUGFnZVVwOjMzLFBhZ2VEb3duOjM0LEluc2VydDo0NX0sU209Z1szNl0oMzgsMzIwNzMsODksNCksbVU9Z1szNl0oMzYsMzIwMDQsNTQsNjkpLGwkPWdbMzZdKDM4LDMxOTc5LDMwOCw0KSxqRT1nWzM2XSg0LDMxOTYzLDgsMTMpLHBiPWdbMzZdKDYsMzE5MzIsNjIsMzEpLEVvPWdbMzZdKDM2LDMxOTAzLDkzLDI5KSxYbD1nWzM2XSg2LDMxNzg5LDM0LDE1KSxZUD1nWzM2XSg1LDMxNzU1LDQ2ODksMjMpLAp1JD1nWzM2XSgzOCwzMTY5MiwxMjIsMTcpLGF2PWdbMzZdKDM3LDMxNjc3LDQsMTUpLGhPPWdbMzZdKDQsMTExLDIxMTksMSksZEw9Z1szNl0oNiwzMTYxMSw0OSw2Niksa0c9Z1szNl0oMzYsMzE1NDAsNDEsNzEpLHRPPWdbMzZdKDM2LDE3MTU2LDEyNSwzMCksVW89Z1szNl0oMzYsMzE1MzEsMSw5KSx0eD1mdW5jdGlvbihCKXtyZXR1cm4geVs2XS5jYWxsKHRoaXMsMSxCKX0sTlo9Z1szNl0oMzYsMzE1MTEsMTAwLDIwKSxZRj1nWzM2XSgzNyw1NjM4LDIwNzksMSksTUI9Z1szNl0oNCwzMTQ5NCwyMSwxNyksd0w9Z1szNl0oMzcsMzEzODQsOTYsMiksQTg9Z1szNl0oNiwzMTM4MywxNjYsMSksSXY9Z1szNl0oNCwzMTM2OSwxMjUsMTIpLEZsPWdbMzZdKDQsMzEzNjQsNzAsNSksQkE9Z1szNl0oMzYsMzEyOTYsMzYsNjgpLHNuPWdbMzZdKDUsMzEyODgsNDUsOCksejQ9Z1szNl0oMzgsMzEyMjUsMjQsNjMpLEtjPWdbMzZdKDM4LDMxMTk1LDEwNCwzMCksSkg9Z1szNl0oNiwzMTE5MSwKMTEsNCksQ2M9Z1szNl0oNCwzMTEzNywxMDMsOSksYno9Z1szNl0oMzYsMzExMjQsMTI0LDEzKSxBSD1nWzM2XSg1LDMxMDQ3LDUzLDc3KSxySj1nWzM2XSg0LDMxMDM3LDM5LDEwKSx5Tz1nWzM2XSg1LDMwODkzLDg3LDQxKSx2QT1nWzM2XSg1LDMwODMyLDEwLDkpLFQ0PWdbMzZdKDM2LDMwODI4LDIwLDQpLGFDPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTldLmNhbGwodGhpcywyKX0sajg9Z1szNl0oMzcsMTAwLDExNDAsMSkscGM9Z1szNl0oMzgsMzA4MjAsNzAsOCksUUs9Z1szNl0oNSwzMDgxNCw2Miw2KSxuYz1nWzM2XSgzNywzMDczOSw3Nyw3NSksWlU9Z1szNl0oNCwzMDYwNywzNyw2MCksV0E9Z1szNl0oNSwyMjg0NCw5NSw2NyksRmM9Z1szNl0oNiwzMDYwMSw4MCw2KSxnZT1nWzM2XSgzOCwzMDUwMiw5NSw2NiksTlk9Z1szNl0oMzgsMzA0MjMsMiw1MCksT249Z1szNl0oNiwzMDQxNSw1Niw4KSx4ej1nWzM2XSg2LDI3NzI2LDEwMSw3NyksRFU9Z1szNl0oMzcsMzAzOTQsMTE5LAoyMSkscFU9Z1szNl0oNSwzMDM5MSw1OTEsMyksZmM9Z1szNl0oMzgsMzAzNjAsNjE4LDUpLG9JPWdbMzZdKDUsMTc0ODMsMTAxNSw0KSxMYz1nWzM2XSg0LDMwMzM4LDYyLDE2KSxSST1nWzM2XSg1LDMwMzE1LDY1LDIzKSxyZT1nWzM2XSg1LDMwMTI5LDIyLDcpLFZLPWdbMzZdKDUsMzAwODcsMTAyLDQyKSxHND1nWzM2XSg0LDMwMDc5LDE4ODQsOCksSEE9Z1szNl0oMzgsMTA0NSwxMDYsMTEpLFNXPWdbMzZdKDUsMzAwNTcsMzEsMyksSFQ9Z1szNl0oMzYsMzAwMzksNzQsMTgpLER4PWZ1bmN0aW9uKEIpe3JldHVybiBrWzI1XS5jYWxsKHRoaXMsMyxCKX0sZTg9Z1szNl0oNCwzMDAzMiw2OSw0KSxHaj1mdW5jdGlvbigpe3JldHVybiBIWzQ1XS5jYWxsKHRoaXMsMjUpfSxQQT1nWzM2XSgzNiwyOTk1Myw5Niw3OSksJHo9Z1szNl0oNCwyOTk0MSw5NSwxMikscVk9Z1szNl0oMzgsMjk5MzgsMzIsMyksaXo9Z1szNl0oNCwxNjgsNzAwOSwxKSx5Sz1nWzM2XSgzNywyOTkzNCwzNzIsNCksClR1PS9idXl8cGF5fHBsYWNlfG9yZGVyfGRvbmF0ZXxwdXJjaGFzZS9pLFF4PWdbMzZdKDM2LDI5OTI3LDEwOCwzKSxZej1nWzM2XSgzNiwyOTkyMiwxNSw1KSxjQT1nWzM2XSgzNywyOTg2Niw3LDE0KSxTOD1nWzM2XSgzOCwyOTgzOSw2LDE2KSxtaj1nWzM2XSg2LDI5ODI4LDEwOCwxMSksbHo9Z1szNl0oNiwyOTgxOCwzMiwxMCksZXg9Z1szNl0oNCwyMDcxMiwxMTM2MCwyKSxaVj1mdW5jdGlvbihCKXtyZXR1cm4gbVs1XS5jYWxsKHRoaXMsMSxCKX0sbXE9Z1szNl0oNSwyOTc5OSw3NSwxOSksU3g9ZnVuY3Rpb24oQil7cmV0dXJuIFlbMTJdLmNhbGwodGhpcyw3LEIpfSxPcD1nWzM2XSg0LDI5NzcxLDEwOSwyOCksRW49Z1szNl0oMzcsMjk3NjEsOTcsMTApLFhlPWdbMzZdKDUsMjk3NTgsNDYsMyksdXo9ZnVuY3Rpb24oQix6LEspe3JldHVybiBHWzQxXS5jYWxsKHRoaXMsMzUsQix6LEspfSxTaD1nWzM2XSgzNiwyOTcxNSw3MSw0MyksYUk9Z1szNl0oMzgsMjk2NDUsMyw3MCksdlQ9CmdbMzZdKDUsMjk2MDMsNjQsNDIpLGhIPWdbMzZdKDQsMjQ3MzQsNzQsMzkpLGRlPWdbMzZdKDM3LDI5NTkzLDIyLDEwKSxSVj1mdW5jdGlvbihCLHope3JldHVybiBlWzM4XS5jYWxsKHRoaXMsMixCLHopfSxrej1nWzM2XSgzNywyOTU4MywxNywxMCksdEg9Z1szNl0oNSwyOTUxMyw4OSw3MCksT3k9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIERbM10uY2FsbCh0aGlzLDE5LEIseixLLEopfSxVbj1nWzM2XSg2LDI5NTAzLDgsMTApLFY4PWZ1bmN0aW9uKEIpe3JldHVybiBnWzNdLmNhbGwodGhpcyw3MixCKX0sTVk9Z1szNl0oNSwyOTQzMywxMDYsNzApLHdlPWdbMzZdKDM3LDI5NDI2LDgxLDcpLElJPWdbMzZdKDM3LDI5NDA2LDE2LDIwKSxGZT1nWzM2XSgzNywyOTQwMiw3Miw0KSxCUT1nWzM2XSg0LDIxMjc0LDQ0MjEsNyksc0k9Z1szNl0oMzcsMjkzOTYsNjIsMyksV249Z1szNl0oMzYsMjkzNTksOTMsMzcpLHpVPWdbMzZdKDM2LDI2MDEsOTgsMzUpLEs3PWdbMzZdKDM4LDI5MzU4LAo1NywxKSxKdz1nWzM2XSgzNiwyOTI5MCwxMSw2OCksQzc9Z1szNl0oMzYsMjkyODcsMTIxLDMpLGJhPWdbMzZdKDM2LDI5Mjc5LDQ3LDgpLEF3PWdbMzZdKDQsMjkyNjMsNTQwLDE2KSx2UT1nWzM2XSg2LDI5MTM5LDcyLDgzKSxUVT1nWzM2XSg1LDk3OTYsODY0MywyKSxqdj1nWzM2XSgzNywyOTEzNSw4Nyw0KSxwNz1nWzM2XSgzOCwyOTEzMCw4MCw1KSxRdD1nWzM2XSgzNyw3MzM0LDY5LDI3KSxQRj1nWzM2XSgzNywyOTEyNiwxMTksNCksbjc9Z1szNl0oMzgsMjkxMjIsMTE1LDQpLFp3PWdbMzZdKDM2LDI5MTAwLDYzLDIyKSxXUT1nWzM2XSg2LDM4OTMsNTQsMTQpLGdNPWdbMzZdKDQsMjkwOTYsMjksNCksZEE9Z1szNl0oNiwxOTA3Niw0NDcyLDQpLE5vPWdbMzZdKDM2LDI5MDgxLDkxLDE1KSxPST1nWzM2XSgzOCwyOTAxMyw4NywyNiksZXU9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDZdLmNhbGwodGhpcyw4OCxCKX0seDU9Z1szNl0oNiwyOTAwOCw0Niw1KSxqQz1nWzM2XSg2LDU2MjYsCjg3Miw2KSxEdz1nWzM2XSgzNywyODk5OCw0LDIpLHhQPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMzldLmNhbGwodGhpcywzKX0sZjc9Z1szNl0oNiwyODk4Myw0MSwxNSksb2U9Z1szNl0oNCwyODkzNiw0OCwyOSksTDc9Z1szNl0oMzYsMjg5MzIsMCw0KSxSZT1nWzM2XSgzNywyODkyNCw1Nyw4KSwkTT1mdW5jdGlvbihCLHope3JldHVybiBtWzI5XS5jYWxsKHRoaXMsMTAsQix6KX0sck09Z1szNl0oMzgsMjg3ODcsMjEsNCksVnQ9Z1szNl0oNCwyODc1OSwxNCw4KSxHVT1nWzM2XSg0LDI4NzQ0LDU3LDE1KSxIUT1nWzM2XSgzNywyODY3MCwxMSw3NCksQVQ9Z1szNl0oMzYsMjg2MjUsNTIsMTIpLGV2PWdbMzZdKDYsMjg2MDQsMTE0LDEzKSxQUT1nWzM2XSg2LDE3MjkxLDE4MTgsNiksJDU9Z1szNl0oNSwyODU5Myw3MTIsMTEpLE5yPWdbMzZdKDYsMjg1NzMsMTgsMyksRHE9Z1szNl0oNCwyODQ5NywzNTY5LDExKSxxbz1nWzM2XSgzOCwyODQ0OSwxMDksMTApLGlhPWdbMzZdKDQsMjgzNDgsCjIwLDc1KSx5dD1nWzM2XSgzOCwyMTI2MywzMzMzLDIpLFk1PWdbMzZdKDYsMjgyNTksNzIsNSksc3M9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1s3XS5jYWxsKHRoaXMsNDQsQix6KX0sY1E9Z1szNl0oNCwyODE5OSwzLDMpLFN2PWdbMzZdKDQsMjgxOTAsMzksOSksbU89Z1szNl0oNSwyODE4Niw3NSw0KSxuVT1mdW5jdGlvbihCKXtyZXR1cm4gT1s4XS5jYWxsKHRoaXMsMzIsQil9LGxhPWdbMzZdKDUsMjgxNzEsNjcsMTUpLEVJPWdbMzZdKDM4LDI4MTY4LDE1LDMpLE5HPWdbMzZdKDM3LDI4MTIwLDYwLDE4KSxYZD1nWzM2XSg1LDI4MTE3LDgxLDMpLHVhPWdbMzZdKDM3LDI3OTkyLDEwLDYxKSxadT1mdW5jdGlvbihCKXtyZXR1cm4gSFsyM10uY2FsbCh0aGlzLDQ5LEIpfSxkRT1nWzM2XSg2LDU1NjMsNjM5OSw1KSxhZT1nWzM2XSg2LDI1MTUxLDM4NTksMiksaHc9Z1szNl0oNSwyNzk1Nyw4MDIsNCksZE09ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDFdLmNhbGwodGhpcywyLEIpfSxrNT0KZ1szNl0oMzgsMjc5MzYsMTA4LDExKSx0dz1nWzM2XSg1LDI1NDk3LDExOSw0OSksVUk9Z1szNl0oNCwyNzgyMywzMyw3MSksTW89Z1szNl0oMzgsMjc4MjEsMTMsMiksY0Y9Z1szNl0oNiwxMjIyNywxMTksMTUpLFpXPWdbMzZdKDM4LDE5NTgwLDkwLDI1KSx3TT1nWzM2XSgzNiwyNzgxMCw4MSwxMSksSWU9Z1szNl0oMzgsMjc4MDMsNTksNyksYW49Z1szNl0oMzgsMjc3ODUsNjA5MCw3KSxGZD1nWzM2XSg1LDI3NzIzLDI1LDMpLEJDPWdbMzZdKDM4LDI3NzIwLDg5LDMpLHNVPWdbMzZdKDM2LDI3NjE2LDUyNDksMyksZU09Z1szNl0oNiwyNzU0MSw0MzM4LDUpLHpfPWdbMzZdKDYsMjc0OTEsOTMsOCksS089Z1szNl0oNSwxODU4NCw1NDEsNCksWk09Z1szNl0oMzYsMjU1MywwLDI2KSxKTj1nWzM2XSgzNiwyNzQ2MSwzNSwxOCksejI9Z1szNl0oNiwyNzQ1NSwxMjEsNiksQ089Z1szNl0oNCwyNzQ0OCw0MSw3KSxiZz1nWzM2XSg2LDEwOCwxODAxLDEpLEFOPWdbMzZdKDM3LDI3NDM0LAo3OCwxNCksdkM9Z1szNl0oNiwyNzQzMCwyMCw0KSxNUj1nWzM2XSg2LDI3Mzk1LDEyNSwzNSksJFc9ZnVuY3Rpb24oQix6LEspe3JldHVybiBPWzE0XS5jYWxsKHRoaXMsMjUsQixLLHopfSxoTT0vWyNcP0BdL2csVF89Z1szNl0oNCwyNzM4MCwzMSwxNSksal89e30scE89Z1szNl0oNCwyNzI4Myw1Nyw2NiksUVc9Z1szNl0oMzcsMjcyNzMsMzAsMTApLG5PPWdbMzZdKDM2LDI3MjYzLDEwNCwxMCksQjBxPWdbMzZdKDUsMjcyNDcsMzIsOCksc1ozPWdbMzZdKDM4LDI3MTc2LDgsNzEpLHp4bD1nWzM2XSgzNywyNjUxMiwzNDE0LDIpLHg0PWdbMzZdKDUsMjcxNzAsMTMsNiksS2xZPWdbMzZdKDYsMjcxNTksNiwxMSksT3g9Z1szNl0oNiwyNzExNyw2OSw1KSxKWTg9Z1szNl0oNiwyNzA0Myw3MSw3NCksT3Y9ZnVuY3Rpb24oQil7cmV0dXJuIG1bMTBdLmNhbGwodGhpcywyMixCKX0sQzMwPWdbMzZdKDYsMjcwMzQsNiw5KSxiRFo9Z1szNl0oNiwyNzAyNCw0MywxMCksWmM9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMl0uY2FsbCh0aGlzLAo0LEIpfSxBWTM9Z1szNl0oNSwyNjk0NSwxMTksNzkpLHY4OD1nWzM2XSg2LDI2OTM0LDM5LDExKSxUME49Z1szNl0oNCwyNjg3MCw3LDY0KSxqWnE9Z1szNl0oNiwyNjcxMywxMTMsNjUpLHloPS9bXlx7XSpceyhbXHNcU10qKVx9JC8scU89ZnVuY3Rpb24oQix6LEspe3JldHVybiBPWzI1XS5jYWxsKHRoaXMsNDEsQix6LEspfSxMZj1mdW5jdGlvbigpe3JldHVybiB5WzQxXS5jYWxsKHRoaXMsOSl9LHA4dz1nWzM2XSg1LDI2NjM4LDExNSw3NSksUVpoPWdbMzZdKDQsMjY2MzAsODEsOCksbjg4PWdbMzZdKDM4LDI2NjI3LDExNSwzKSxaRHg9Z1szNl0oNiwyNjYyMiw2NCw1KSxJOD1nWzM2XSgzOCwyNjQ4MSw0NzAsMSksV2xEPWdbMzZdKDM3LDI2NDY3LDU5LDkpLE1wPWZ1bmN0aW9uKEIpe3JldHVybiBHWzMzXS5jYWxsKHRoaXMsMTQsQil9LGc4Tj1nWzM2XSg0LDI2NDU2LDk4LDExKSxOMGw9Z1szNl0oNCwyNjQ1NCwxMTcsMiksT0QzPWdbMzZdKDQsMjY0NDgsMTcsNikseE1OPWdbMzZdKDM4LAoxMzcsNDI4OSwxKSxETTA9Z1szNl0oMzYsMjY0MTEsMTA5LDMpLGZHbD1nWzM2XSgzOCwyNjMyOSw5Niw3MSksV0M9Z1szNl0oMzYsNTY1MSwzMzA5LDMpLGxyPWdbMzZdKDM4LDI2MzE3LDI5LDEyKSxvODM9Z1szNl0oNiwyNjI4OCwxOCwyOSksTGw4PWdbMzZdKDM2LDYwMCwwLDYpLE9IPWZ1bmN0aW9uKEIpe3JldHVybiBHWzEwXS5jYWxsKHRoaXMsMzQsQil9LFJ4cT1nWzM2XSg1LDI2Mjc5LDExNCw5KSxyWTA9Z1szNl0oNCwyNjI3NCw0Myw1KSxWTjg9Z1szNl0oNiwxMjcyNiw5NTEsMiksRzhoPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBtWzIxXS5jYWxsKHRoaXMsNCxCLHosSyxKKX0sSERoPWdbMzZdKDM3LDI2MjY3LDEyMCw3KSxleDM9Z1szNl0oNCwyNjI2MSw3OSw2KSxQM0c9Z1szNl0oNCwyNjI1OCw2NCwzKSwkTTg9Z1szNl0oNCwxMDgzMiw1NTU0LDMpLFh5PWZ1bmN0aW9uKEIpe3JldHVybiBHWzQ2XS5jYWxsKHRoaXMsMTMsQil9LHF3RD1nWzM2XSg1LDI2MjA0LDc5LAo0KSxpRGw9Z1szNl0oNCwyNjEwNSw0MDI4LDMpLHlZRz1nWzM2XSg2LDI2MDA1LDEwOSw0MyksWXdNPWdbMzZdKDUsMTM3NTksMjg5Niw3KSxjWU09Z1szNl0oMzcsMjU5NDEsNjYsNjQpLEFFPWdbMzZdKDM4LDI1OTI4LDMwLDEwKSxTd2g9Z1szNl0oMzcsMjU4NTQsNzksNzQpLG1NWT1nWzM2XSg1LDI1ODE2LDEyMCw0KSxnMj1nWzM2XSgzNiwzMzM4LDQ0MzIsNCksbEd3PWdbMzZdKDM3LDg3LDQ5LDI2NCksRTg4PWdbMzZdKDQsMjU3NzQsNzEsOSksWDg4PWdbMzZdKDM4LDI1NzQ4LDQ5LDI2KSx1aGg9Z1szNl0oNCwyNTY3NywxMTEsNzEpLGFHRz1nWzM2XSgzNiwyNTY2OSwxOCw4KSxoeHc9Z1szNl0oMzgsMjU2MDEsNjAsNjgpLFhmPWdbMzZdKDYsMjU1NDYsMTAxLDEwKSxkTUQ9Z1szNl0oMzcsMjU1MjcsMzEzMyw4KSxrOE09Z1szNl0oMzgsMjU0OTQsMjUsMyksdE5xPWdbMzZdKDM2LDI1NDY5LDUyLDI1KSxVTXc9Z1szNl0oNCwxNzE4OCw1MywxOSksTU5NPWdbMzZdKDM3LDIzNzY2LAo2NDQsNyksdzhaPWdbMzZdKDUsMjU0NDEsNTIsMTcpLElHdz1nWzM2XSg1LDI1NDM4LDEwOCwzKSxGbDM9Z1szNl0oMzYsMjUzODcsNTUsMzEpLEI0Tj1nWzM2XSg1LDI1Mzg0LDY2LDMpLHNwTj1nWzM2XSg1LDQ5MzksNzQsOCksTm49Z1szNl0oMzYsNjQ1MCwzOTQsNyksek93PWdbMzZdKDYsMzAzOCwyMzQ1LDIpLEtIbD1nWzM2XSgzNywyNTA4Nyw4NywyNSksSjNZPWdbMzZdKDM4LDI1MDY1LDgsMjIpLENMTT1nWzM2XSg0LDI1MDUyLDk4LDEzKSxiSzg9Z1szNl0oMzcsMjUwMDQsNCw0OCksQTNxPWdbMzZdKDM2LDI0OTYwLDEwNiwyNCksV0U9Z1szNl0oNCwyNDk1NSw2Niw0KSx2ZkQ9Z1szNl0oNiwyNDg5OSwxMjIsMyksVDQ4PWdbMzZdKDM3LDI0ODgyLDgyLDE3KSxPVT1nWzM2XSg1LDI0ODcyLDE5LDEwKSxqcFk9Z1szNl0oNSwyNDg2NSw5NSw3KSxwb009Z1szNl0oNiwyODA0LDI0NTksMiksUXBOPWdbMzZdKDM4LDI0ODU0LDUsMTEpLG5mMz1nWzM2XSgzNywyNDgzMSwxMDAsCjIzKSxaSzg9Z1szNl0oNCwyNDgyNyw3MCw0KSxXSGw9Z1szNl0oMzYsMjQ4MTcsMTA1LDEwKSxnZjg9Z1szNl0oMzcsMjQ4MTQsODIsMyksZ0E9Z1szNl0oMzYsMjQ3MzQsNzQsNyksTjRoPWdbMzZdKDM3LDI0NzA4LDY1LDI2KSx4RD1nWzM2XSgzNiwyNDY5MCw3OSwxOCksT0tEPWdbMzZdKDM3LDI0NjM3LDkwLDI0KSx4bTg9Z1szNl0oNSwyNDYwNCwxMTksNSksRG1aPWdbMzZdKDUsMjQ1OTAsNjYsMTQpLGZWeD1nWzM2XSg0LDI0NTYzLDMzLDQpLG9mbD1nWzM2XSg2LDI0NDkwLDE2LDczKSxMSDA9Z1szNl0oMzgsMjQ0MTcsMTI2LDczKSxST0c9Z1szNl0oNSwyNDQwMSwzMiwxNikscjM4PWdbMzZdKDM2LDI0Mzk0LDUwLDcpLFZZMz1nWzM2XSgzNiwyNDM4OCw1OCw2KSxIZD1mdW5jdGlvbihCLHope3JldHVybiBPWzEzXS5jYWxsKHRoaXMsMSxCLHopfSxSMj1nWzM2XSg0LDI0MzU4LDcsMzApLEdEOD1nWzM2XSg0LDE3NDczLDQ0LDE4KSxYbj1nWzM2XSg0LDM4NDEsMTE3LDUpLApIS1k9Z1szNl0oNCwyNDI5MiwxMTQsNjYpLERjPWdbMzZdKDUsMjQyODQsNTksOCksUGI9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1s0XS5jYWxsKHRoaXMsMTYsQix6KX0scHQ9ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDRdLmNhbGwodGhpcywxOSxCKX0sZk89Z1szNl0oNSwyNDEyMCwxNCw4KSxlTzA9Z1szNl0oNiwyNDAzNyw3OCw4MyksUEwwPWdbMzZdKDM4LDIzODUwLDExNSw4MCksJG1HPWdbMzZdKDYsMjM3ODUsOTAsNjUpLHFSMD1nWzM2XSgzNiwyMzc3OSwxOTYsNiksaUtOPWdbMzZdKDM4LDIzNzYxLDEwOCwxMikseTMwPWdbMzZdKDYsMjM3NTgsMjgsMyksWVJ3PWdbMzZdKDQsMjM3NTUsMjMsMyksYzNoPWdbMzZdKDM2LDIzNzQ2LDExMiw5KSxTUkQ9Z1szNl0oNCwyMzczNywyMCw5KSxtbU49ZnVuY3Rpb24oQil7cmV0dXJuIERbMTJdLmNhbGwodGhpcywxMCxCKX0sYnE9Z1szNl0oNCwxMDA2MCwxODU5LDEpLG9XPWdbMzZdKDM4LDIzNjg5LDUwLDEwKSxsVnc9Z1szNl0oNCwKMjM2NDksODAsOCksV2I9ZnVuY3Rpb24oKXtyZXR1cm4gT1s0XS5jYWxsKHRoaXMsMTYpfSxFZnc9Z1szNl0oNiwyMzU5MCw4Myw1OSksWG84PS8jL2csdTI4PWdbMzZdKDM3LDIzNTQxLDQxLDQ5KSxOaD1nWzM2XSgzNiwzODQ3LDczOCwyKSxhVng9Z1szNl0oMzcsMjM0OTgsNzcsOSksaE9EPWdbMzZdKDM2LDIzNDg5LDIxLDkpLGRtaD1nWzM2XSg0LDIzNDg1LDEwNSw0KSxxaT1nWzM2XSg2LDE4MjI1LDU5LDI1KSxrRE09Z1szNl0oNSwyMzQwOCwzNywzNiksdFlZPWdbMzZdKDM3LDIzMzk5LDU5LDkpLFVtMz1nWzM2XSgzNywyMzM5MSwyOCw4KSxneT1nWzM2XSgzOCwxMDAyNiwxMjQsNikseFc9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1szN10uY2FsbCh0aGlzLDQsQix6KX0sRE49ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzJdLmNhbGwodGhpcywxOSxCKX0sTVl4PWdbMzZdKDUsMjMzODIsMzIsNCksd28wPWdbMzZdKDM4LDIzMzc4LDI2LDQpLElWdz1nWzM2XSg2LDIzMzc1LDEyMCwzKSwKRkh3PWdbMzZdKDM3LDIzMzQ2LDg4LDI5KSxCRTg9Z1szNl0oMzYsMjMzMzcsNzEsNiksc0IzPWdbMzZdKDQsMjMyNjUsMTAwLDY2KSxxVD1nWzM2XSg1LDIzMjQ0LDQ1MjcsNCksUEg9ZnVuY3Rpb24oQil7cmV0dXJuIERbNDldLmNhbGwodGhpcyw1LEIpfSx6M0Q9Z1szNl0oNCwyMzEyOSw5NSw3MSksc009MTkyMyx6bz1mdW5jdGlvbigpe3ZhciBCPVtudWxsLCJhcHBseSIsMF07c2V0VGltZW91dFtCWzFdXShCWzBdLGVbMzNdKDMsRzJbQlsxXV0oQlsyXSxhcmd1bWVudHMpKSl9LEdKPWdbMzZdKDM4LDYxNzMsMTYzNCw3KSxLM049Z1szNl0oMzYsMjMwNDIsMjk0MywxMyksTE89Z1szNl0oNSwxMzQ3NCw0ODQ5LDUpLEokTj1nWzM2XSgzOCwyMjk5NCwyOCwxNyksQ04zPWdbMzZdKDM2LDIyOTkxLDM1LDMpLGJoRz1nWzM2XSg1LDIyOTI0LDU4LDY3KSxBJE09Z1szNl0oNCwyMjkyMSw4NiwzKSxQZT1nWzM2XSg1LDIyOTExLDI1LDEwKSwkTz1nWzM2XSgzNywyMjg5MCw0NzQwLDEwKSwKdmp3PWdbMzZdKDM3LDIyNzM5LDIsNzEpLFRFOD1nWzM2XSg1LDE1MTI0LDI4NTAsNiksakJZPWdbMzZdKDM4LDIyNzA3LDcxLDMyKSxwcUQ9Z1szNl0oNSwyMDk3NywxNCwxNCksUUIwPWdbMzZdKDQsMjI2MjMsNDcsNjIpLFJXPWdbMzZdKDUsMjI2MTgsOTksNSkscjI9Z1szNl0oNSwyMjU5NSw1MywyMyksbmpHPWdbMzZdKDM4LDEzNTk5LDE4LDc5KSxaaEQ9Z1szNl0oMzcsMjI1OTAsOTAsMyksZ3I9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMjVdLmNhbGwodGhpcywxNixCKX0sVzM4PWdbMzZdKDYsMjI1ODIsMTA4LDgpLGdqRz1nWzM2XSgzOCwyMDc0NCw3MzksNSksTkUwPWdbMzZdKDM2LDIyNTc0LDgxLDgpLE9oMD1nWzM2XSg1LDIyNTY3LDI5LDcpLHhVcT1nWzM2XSg2LDIyNDIzLDI1LDc0KSxEVVk9Z1szNl0oMzgsMjI0MDUsNjQsMTgpLGZscT1nWzM2XSg2LDIyMzUxLDIsNiksc1I9Z1szNl0oNCwxMTczLDEwNywxNiksb2p3PWdbMzZdKDM4LDIyMjg1LDEyMCw2NiksTDMzPWdbMzZdKDM3LAoyMjI3Myw0NywxMiksUjM4PWdbMzZdKDUsMjIxOTgsMTIyLDY5KSxyJDM9Z1szNl0oNSwyMjA2Nyw0OCwyNyksVlRaPWdbMzZdKDYsMjIwMTMsODUsMTQpLEdKTT1nWzM2XSgzOCwyMTk0MywxMDEsNzApLEhodz1nWzM2XSg2LDIxOTM3LDMzLDYpLGUzMD1nWzM2XSg2LDIxOTI2LDY3LDExKSxQTk49Z1szNl0oNCwyMTcwOCw0LDUzKSwkVXg9Z1szNl0oMzYsMjE2MjAsOTIsNDUpLEdFPWdbMzZdKDYsMjE2MTcsNzMsMykscThaPWdbMzZdKDUsMjE2MDUsODcsMTIpLGloWj1nWzM2XSg0LDIxNjAyLDM3LDMpLHkkcT1nWzM2XSgzNywyMTU5NCwxMTIsOCksWTg4PWdbMzZdKDM3LDIxNTkxLDg0LDMpLGVZPWZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMzhdLmNhbGwodGhpcywxMSxCLHopfSxjJEQ9Z1szNl0oNCwyMTUxOSwxMTYsNzIpLFM4TT1nWzM2XSg0LDIxNTA4LDQsMTEpLE5rPWdbMzZdKDM3LDIxNDg1LDk5LDEzKSxtVXc9Z1szNl0oMzcsMjE0NTgsMTMsMjcpLHljPWdbMzZdKDM4LDIxNDQ0LAo3MCwxNCksbGwwPWdbMzZdKDQsMjE0NDEsMTAyLDMpLEVqOD1nWzM2XSg0LDIxNDMzLDYxLDgpLFhxOD1nWzM2XSgzNywyMTM3Niw0NCw1NyksdXQ4PWdbMzZdKDM2LDE1MjQzLDExOTcsNiksbE09Z1szNl0oMzgsMjEyMjYsMiwyKSxhbDM9Z1szNl0oMzcsMjExNTcsNTAsNjkpLGgzcT1nWzM2XSgzOCwyMTA3NSw1Miw4MiksZFUwPWdbMzZdKDUsMjEwNjIsNjIsMTMpLGtKTT1nWzM2XSg0LDIxMDU5LDEyNywzKSxWVz1nWzM2XSg1LDE4MCw4MDA0LDEpLHFoPWdbMzZdKDQsMjA5ODMsNTIwLDMpLEdfPWZ1bmN0aW9uKEIpe3JldHVybiBZWzddLmNhbGwodGhpcywxOSxCKX0sdFR3PWdbMzZdKDYsMjA5NTAsNywxMyksVVU4PWdbMzZdKDQsMjA5MjgsMTEyLDIyKSxNVDM9Z1szNl0oNCwyMDkyNCwxMTQsNCksd3EzPWdbMzZdKDUsMjA5MDcsMTAyLDcpLElscT1nWzM2XSgzNiwyMDgzOCw1NCw2OSksSVY9Z1szNl0oMzYsMjA4MjgsNTIsMTApLEYzOD1nWzM2XSgzNywyMDgwMiw5NCwyNiksCkJkRD1nWzM2XSg2LDIwNzUwLDUzLDYpLHNmOD1nWzM2XSg2LDIwNzM4LDgyLDEyKSx4TD1mdW5jdGlvbihCKXtyZXR1cm4gUlsyM10uY2FsbCh0aGlzLDgyLEIpfSxUNT1nWzM2XSgzOCwyMDQ5NiwxMjAsNDApLEhDPWdbMzZdKDM2LDIwNDc4LDk4Miw2KSx6VWg9Z1szNl0oMzgsMTcwLDcxOTUsMiksS05EPWdbMzZdKDM2LDIwNDY4LDUxLDI4KSxlXz1nWzM2XSg2LDIwNDQ1LDUyODksNCksSlFHPWdbMzZdKDM3LDIwMzQzLDE3LDE1KSxQQz1nWzM2XSgzNywyMDIyNiw0Mzk5LDYpLENtTT1nWzM2XSg1LDIwMTQ2LDksNyksYlFNPWdbMzZdKDM3LDIwMDcwLDY4LDcyKSxBUVk9Z1szNl0oNiwyMDA2NiwxMTEsNCksJEQ9Z1szNl0oMzcsMjAwNTYsOTcsMTApLHZPOD1nWzM2XSg2LDIwMDEwLDk0LDYpLFRkcT1nWzM2XSgzNywyMDAwNywxMiwzKSxqZnc9Z1szNl0oNSwxOTk0MSwyMyw3KSxxbj1nWzM2XSgzNiw0MDM4LDUyMjUsNSkscGZaPWdbMzZdKDM4LDE5OTExLDcsOCksUWZHPWdbMzZdKDQsCjE5OTA5LDk0LDIpLG5PeD1nWzM2XSg1LDE5ODk4LDE3LDExKSx4WT1nWzM2XSg2LDE5ODc3LDUyNTgsMyksUkU9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMTVdLmNhbGwodGhpcywyNixCKX0sWlFEPWdbMzZdKDYsMTk4MjQsNTMsMSksV05OPWdbMzZdKDM3LDE5NzcxLDg4LDcpLGdPWj1nWzM2XSgzNywxOTY4OCw2OCwxMCksaWc9Z1szNl0oNiwxOTY4NSwxNCwzKSxlZj1nWzM2XSgzOCwxOTY2OCw3OCwxNyksTmRsPWdbMzZdKDM3LDE5NjE2LDExMzQsNyksT1FaPWdbMzZdKDYsMTkwOTAsNTk3MSw0KSxvaj1mdW5jdGlvbihCKXtyZXR1cm4gRFsyOF0uY2FsbCh0aGlzLDU5LEIpfSx4dU09Z1szNl0oMzcsMTk0OTUsNTMsOCksRHVoPWdbMzZdKDYsMTkzNzUsMTE2LDExKSxmZk49Z1szNl0oMzcsMTkzNTYsMTIyLDE5KSxvTzM9Z1szNl0oMzYsMTkzMDAsMTcsNTYpLExOWj1nWzM2XSg1LDE5MjI3LDQsNzMpLHlXPWdbMzZdKDQsMTkyMTUsNDQsMTIpLFJVWT1nWzM2XSgzNiwxOTIxMCw2NSwKNSksclFOPWdbMzZdKDQsMTkxMzUsNDIsNzUpLFJUPWdbMzZdKDUsMTkxMjEsNjYsMTQpLFZYOD1nWzM2XSg2LDE5MDMzLDExNyw4OCksWkE9ZnVuY3Rpb24oKXtyZXR1cm4gRFszOF0uY2FsbCh0aGlzLDQpfSxHbEQ9Z1szNl0oNCwxMTIsMjIyMiwxKSxIUXc9Z1szNl0oNiwxOTAyNSw3MSw4KSxlVU49Z1szNl0oMzcsMTcyMCw1MjAsNyksUG1OPWdbMzZdKDM3LDE4OTYzLDc0LDYyKSwkdWg9Z1szNl0oNiwxODkyMSwxNSw4KSxxT009Z1szNl0oMzYsMTg5MTcsMjQsNCksaVE4PWdbMzZdKDYsMTg5MTEsOTMsNikseVFHPWdbMzZdKDM3LDE4ODQ1LDg4LDY2KSxZTzM9Z1szNl0oMzYsMTg3NDUsMzAsMTAwKSxjUWg9Z1szNl0oMzcsMTg2NzMsMTYsNzIpLFhvPXt9LEVnPWdbMzZdKDM2LDE4NjY5LDU0LDQpLFNPOD1nWzM2XSgzOCw0ODk3LDk0MDcsMiksVjY9Z1szNl0oMzgsMTg2MTcsODIsMTEpLG11Wj1nWzM2XSg2LDE4NjAzLDE5Myw1KSx1Tz1PWzI4XSgzMixPWzI4XSg1NCxPWzI4XSg1MiwKT1syOF0oMzYsT1syOF0oNDgsNDIsNDUsNTMpLE9bMjhdKDM2LDMwLDI4LDU0KSksT1syOF0oMzUsT1syOF0oNTUsMjksMzEsMzIsMiw4LDE4KSwzNywzNiw0LDEyLDQyKSw0MCksT1syOF0oNDUsNDEsT1syOF0oMzksNDYsNDgsNTcsMiwxMiwyNCksNjIsMiw4LDI0KSksT1syOF0oMzQsNjgsNjksNzEsMiwzMiwtOTYpKSxORj1mdW5jdGlvbigpe3JldHVybiBnWzFdLmNhbGwodGhpcywxKX0sbGY4PWdbMzZdKDQsMTczMTQsNTUxLDIpLEVPaD1nWzM2XSg2LDE4NTgwLDEyNSw4KSxYZmw9Z1szNl0oNiwxODUxMSw2MSw2OSksd3k9Z1szNl0oMzcsMzYyNyw0MDk0LDIpLHVycT1nWzM2XSg2LDE4NTA2LDMwNiwzKSxZRD1nWzM2XSg2LDk3OTUsODU2MCw2KSxjQz1nWzM2XSgzNywxODQ1OSw3NSwxMiksYWZEPWdbMzZdKDYsMTgyNjMsNDEsNjApLGhVTT1nWzM2XSgzOCwxODI1OCwxMTgsNSksaVI9Z1szNl0oNCwxODIyNSw1OSwzMyksZHUzPWdbMzZdKDM2LDE4MTQ4LDU4LDc0KSxDbT1nWzM2XSgzOCwKMTgxMDQsNDAsNSksa2w4PWdbMzZdKDM4LDE4MDM5LDU2LDY1KSx0WE49Z1szNl0oNiwxODAyNywxMTUsMTIpLFV1aD1nWzM2XSg2LDE4MDAyLDEyNywyNSksTVhsPWdbMzZdKDUsMTc5MDMsMjEsMjMpLFM0PXt9LElmPWdbMzZdKDM2LDE3ODkxLDIxLDYpLHdmOD1nWzM2XSg0LDE3ODgyLDY2LDkpLElmTj1nWzM2XSg1LDI1NTMsMCw1KSxGTjM9Z1szNl0oNSwxNzc3OCwxMDIsNzIpLEJrdz1nWzM2XSgzNywxNzczMSw3MSw0Nyksc284PWdbMzZdKDM2LDE3NjQ4LDYsODMpLExTPWdbMzZdKDQsMTc2NDQsMTIzLDQpLFNfPWdbMzZdKDM2LDE3NjI1LDYxLDYpLFI5PWdbMzZdKDM3LDIwNCwxMDM1MiwyKSx6V0c9Z1szNl0oNSwxNzYyMSwxMjcsNCksS3paPWdbMzZdKDM2LDE3NjE2LDEyNCw1KSxKMFo9Z1szNl0oMzYsMTc1NzMsNzYsMTEpLENkcT1nWzM2XSg2LDE3NTY3LDg1LDYpLGJuOD1nWzM2XSgzNywxNzQ5OSwxMjIsNjgpLEEwcT1nWzM2XSg2LDE3NDczLDQ0LDkpLHZoOD1nWzM2XSg1LAoxNzM5OCw4MzAwLDEpLFZIPWdbMzZdKDQsMTcyNzEsNDUsMjYpLFRrdz1nWzM2XSg2LDE3MjQyLDM0LDI5KSxqb1k9Z1szNl0oNiwxNzIzOCw1OSw0KSxwRlk9Z1szNl0oNiwxNzE5NCw2ODAsNyksUW94PWdbMzZdKDYsMTcxODMsMjY5OCwzKSxtWj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gWVszNl0uY2FsbCh0aGlzLDQxLHosSixLLEIpfSxuaE49Z1szNl0oMzYsMTcwODMsMyw3MyksWm5NPWdbMzZdKDUsMTcwODAsMTI1LDMpLFd6OD1nWzM2XSgzOCwxNzAxMSwzLDY5KSxnaDg9Z1szNl0oMzgsMTY4MzUsODQsNzcpLHhBPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gT1s0NF0uY2FsbCh0aGlzLDEsQix6LEspfSxOa2w9Z1szNl0oMzYsMTI4MjksMjk1NywxMCksT25EPWdbMzZdKDM3LDEyNzYsNTIxNiw2KSx4MU49Z1szNl0oNCwxNjUxNCw3NSw1MCksRDFEPWdbMzZdKDM2LDE2NDUwLDg0LDgpLGZpMz1nWzM2XSgzNiwxNjQzMiwxNCwxOCksSVI9Z1szNl0oNSwxNjQzMSwzMTQ1LDEpLApUcT1nWzM2XSg0LDE2MzcwLDE4LDI5KSxvaDg9Z1szNl0oNSwxNjM2MSwxNyw0KSxMek09Z1szNl0oMzYsMTYyOTAsMTI3LDcxKSxmUj1nWzM2XSg1LDE2MjM1LDEwMSwyMCksUlcwPWdbMzZdKDM2LDE2MjMwLDQ3LDUpLGlWPWZ1bmN0aW9uKEIseixLLEope3JldHVybiB5WzI2XS5jYWxsKHRoaXMsMyxCLHosSyxKKX0scjA4PWdbMzZdKDM2LDE2MTUxLDUxLDc5KSxWNE09Z1szNl0oNSwxNjEyNCwyNSwyNyksR2hNPWdbMzZdKDM3LDE2MDQ5LDg5LDc1KSxIbjA9Z1szNl0oMzgsMTU5ODMsOTgsNjYpLE90PWdbMzZdKDM3LDE1OTIwLDUsMTQpLGxnPWdbMzZdKDQsMTU5MTAsNzAsMTApLGVXdz1nWzM2XSgzOCwxMDMsMTM2MywyKSxQZDg9Z1szNl0oMzYsMTU3MTEsMTI2LDcyKSwkMVo9Z1szNl0oMzgsMTU2MzUsNDMsNzYpLHExTj1nWzM2XSg0LDE1NjI0LDI3LDExKSxpbnc9Z1szNl0oNiwxNTU3MCw0MSw1NCksZDY9WzIsMyw2XSxCRj1nWzM2XSgzOCwxNTUyNSwyNiw0NSkseTBoPWdbMzZdKDUsCjE1NTIwLDQ1LDUpLFkxTj1nWzM2XSg2LDE1NDUxLDEwMCw2OSksYzA4PWdbMzZdKDM2LDE1Mjk5LDEyNCw2NCksUzF4PWdbMzZdKDUsMTUyODgsNjIsMTEpLG0xTj1nWzM2XSgzNywxNTIzMSw2NSwxMSksbGk4PWdbMzZdKDM3LDE1MjI0LDUwLDcpLEVoeD1nWzM2XSg2LDE1MjAxLDQwLDIzKSxaMT1nWzM2XSgzOCwxNTE1OCw0MCw0MyksWEZEPWdbMzZdKDUsMTUxNDYsNTEsMTIpLHVTRD1nWzM2XSg2LDE1MTM4LDUwLDgpLGFpeD1nWzM2XSg0LDE1MDMxLDMxLDY1KSxoVzg9Z1szNl0oNCwxNTAxMSw4NywyMCksZDE4PWdbMzZdKDUsMTQ5MzAsNzcsMTQpLGtobD1nWzM2XSg2LDE0OTEwLDcwLDIwKSx0NHg9Z1szNl0oNSwyNDMzLDk5LDUpLFUxTT1nWzM2XSgzNiwxNDg5NSw4NCwxNSksY3M9ZnVuY3Rpb24oKXtyZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LE00bD1nWzM2XSgzOCwxNDg3OCwxNywxNyksd0Y4PWdbMzZdKDM3LDE0Nzk0LDkzLDUpLElpOD1nWzM2XSg2LDE0NzE1LDE5LAo3OSksRnowPWdbMzZdKDQsMTQ2OTEsNTIsMjQpLEJfWj1nWzM2XSgzOCwxNDYyNCw5Miw2Nyksc3gwPWdbMzZdKDM4LDE0NTkyLDExLDYpLCRWPWdbMzZdKDM2LDE0NTg1LDI4OTAsNyksekE4PWdbMzZdKDUsMTQ1NDEsOTYsMTIpLEVVPWdbMzZdKDM2LDE0NDM3LDI4NzYsNiksS0w4PWdbMzZdKDM3LDY0NjIsMTY3Niw5KSxKZUc9Z1szNl0oMzcsMTQzOTYsMTYsMTApLENGOD1nWzM2XSg1LDE3MTUsNjIsNSksYmdNPWdbMzZdKDUsMTQzOTAsMTIxLDYpLEFlRD1nWzM2XSg2LDE0MzI0LDU0LDY2KSx2QXE9Z1szNl0oMzcsMTQyMTAsNTIsMzEpLFRfWj1nWzM2XSgzNiwxNDEyMSw4NSwzMSksanhsPWdbMzZdKDQsMTQwNDEsOTAsODApLHBEcT1nWzM2XSg1LDE3Miw3NDAzLDEpLFF4eD1nWzM2XSgzNywxMzc5OCw2LDM0KSxuQTM9Z1szNl0oMzgsMTM2NzgsNjksNSksdmM9Z1szNl0oNSwxMzU5Miw0Miw3KSxaZ3g9Z1szNl0oNiwxMzU4MSw1MCwxMSksWE09Z1szNl0oNCwxMzUzMyw0MDgyLAo2KSxXTDA9Z1szNl0oNiwxMzQyNyw4OSw2MyksRjM9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4gRFs0M10uY2FsbCh0aGlzLDUsQix6LEssSixDLGIsQSx2KX0sdWc9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVsyXS5jYWxsKHRoaXMsNyxCLHopfSxnQU09Z1szNl0oNSw4MjE5LDU2OTMsNSksTl9oPWdbMzZdKDQsMTM0MTcsMTA5LDEwKSxPZzg9Z1szNl0oNCwxMzQwNyw5NywxMCkseE5EPWdbMzZdKDM3LDEzMzk2LDYyLDExKSxMOT1nWzM2XSgzNywxMjE0OCwxNjEsNSksanI9Z1szNl0oMzcsMTMzODQsMTIzLDEyKSxETkc9Z1szNl0oMzcsMTMzODAsNTAsNCksZjZoPWdbMzZdKDUsMTMyNDksMTAyLDc2KSx1Sz1mdW5jdGlvbihCKXtyZXR1cm4gbVsyOV0uY2FsbCh0aGlzLDEyLEIpfSxtbz1nWzM2XSgzNywxMzEyMSw0NzE3LDE5KSxvQUQ9Z1szNl0oNiwxMzA2OCwzMzMsNyksTEw4PWdbMzZdKDYsMTMwNTksMzksNiksZFA9Z1szNl0oNSwxMzAyOSwxMTYsMzApLFlWPWZ1bmN0aW9uKEIpe3JldHVybiB5WzFdLmNhbGwodGhpcywKMzksQil9LFJBbD1nWzM2XSg1LDEyOTY5LDEyNCw2MCkscmVsPWdbMzZdKDUsMTI5MDQsNDMsNjUpLGFXPWdbMzZdKDYsMTI3NzEsMywyKSxpMj1nWzM2XSg1LDEyNzE2LDEyMiw1NSksVkM4PWdbMzZdKDM4LDEyNjk0LDIzLDE2KSxHeUQ9Z1szNl0oMzYsMTI2NDQsNzUsMzEpLEhnOD1nWzM2XSgzNywxMjYzOCw0NCw2KSxlQTg9Z1szNl0oMzgsMTI1MzAsMjEsMjMpLFBGaD1nWzM2XSgzOCwxMjU2Miw4MSw3NiksJE5xPWdbMzZdKDQsMTI1NTMsMjEsOSksaE49Z1szNl0oNiw5Nyw5MTEsMSksdGs9Z1szNl0oNSwxMjU0MywxMzYxLDEpLHFtcT1nWzM2XSg0LDEyNTA5LDEwMCwyMSksYVY9Z1szNl0oNiwxMjQ5OSwxMTQ2LDEwKSxpZ0Q9Z1szNl0oMzgsMTI0ODUsNDgsMykseWVZPWdbMzZdKDM4LDEyNDY3LDEyNiwxOCksWW1aPWdbMzZdKDYsMTI0NjQsMTE4LDMpLGtiPWdbMzZdKDUsNDgyMCwxOTI2LDIpLGNlOD1nWzM2XSg2LDEyMzk0LDQ4LDcwKSxTbXg9Z1szNl0oNSwxMjM4OCwxMywKNiksREE9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMzJdLmNhbGwodGhpcywyMCxCKX0sbU4wPWdbMzZdKDUsMTIzMDcsNTM1NSw3KSxsNlo9Z1szNl0oMzgsMTIyNDIsMTUsMTMpLFdzPWdbMzZdKDYsMTIyMzgsMTE0MCw0KSxRRD1mdW5jdGlvbihCKXtyZXR1cm4gRFsyM10uY2FsbCh0aGlzLDE2LEIpfSxFQVo9Z1szNl0oNSwxMjE1Niw5NSw3MSksWERNPWdbMzZdKDQsMTIxNTMsMCwzKSxJdz1nWzM2XSgzNywxMjE0Nyw0NCw2KSx1Nmw9Z1szNl0oMzcsNjI2Niw4MiwzKSxhNnc9Z1szNl0oNCw5NDY5LDUxOTksNSksaEFNPWdbMzZdKDQsMTIwNjYsNzcsNzgpLGROaD1nWzM2XSg2LDEyMDUxLDMxLDE1KSxreU49Z1szNl0oNSw0ODU1LDUzODYsMiksdENoPWdbMzZdKDYsMTE5NjgsMTE0MCwyKSxVTmg9Z1szNl0oMzYsMTE4ODksOTQsNjgpLFFqPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMjhdLmNhbGwodGhpcyw0KX0sTUM4PWdbMzZdKDUsMTE4MTYsMjIsNzMpLHdETT1nWzM2XSgzNywxMTgxMywKMiwzKSxJNjg9Z1szNl0oNSwxMTc2OSwxMjIsNCksRkxOPWdbMzZdKDM4LDExNTY5LDEsODUpLEI1bD1nWzM2XSgzNywxMTM1MCwxNzMsMiksc25aPWdbMzZdKDM4LDExMTkyLDEyNSw2OSksellZPWdbMzZdKDYsMTA5OTAsMzEsNzEpLEtvTj1nWzM2XSgzNiwxMDkzMSwxMDksNTkpLEp4OD1nWzM2XSg0LDEwOTA0LDExMywyNyksQzJHPWdbMzZdKDYsMTA3NzgsMzAsNzQpLGQyPWdbMzZdKDM4LDg3LDQ5LDEpLGJSdz1nWzM2XSgzNiwxMDY4Miw4Nyw3OCksUUc9Z1szNl0oMzYsMTA2NzAsMTIxLDEyKSxBeE49Z1szNl0oNCwxMDY2Niw5Myw0KSx2Vjg9Z1szNl0oNCwxMDU5MywyLDYpLFQ1cT1nWzM2XSg1LDEwNTMwLDcyLDYzKSxqbjA9Z1szNl0oNCwxMDQxNSwzNSw4KSxwTHE9Z1szNl0oMzgsMTAzOTksOTAsMTYpLFFuaD1nWzM2XSg1LDEwMzU5LDE3MDEsNyksblYwPWdbMzZdKDM2LDEwMzE1LDYxLDE5KSxLQz1mdW5jdGlvbihCKXtyZXR1cm4gWVsyN10uY2FsbCh0aGlzLDEsQil9LApaUjM9Z1szNl0oNSwxMDIxOCw0MSw1KSxXb2g9Z1szNl0oMzcsMTAyMTMsOSw1KSxnVmg9Z1szNl0oMzcsMTAyMDIsNTYsMTEpLE41Wj1nWzM2XSgzOCwxMDE3MCwxMSwzMiksT1JOPWdbMzZdKDM3LDEwMTU5LDUwLDExKSx4MFo9Z1szNl0oMzYsMTAxNTYsMTA4LDMpLEQwMD1nWzM2XSgzNywxMDEwMywxMjYsNCksU0Y9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMTVdLmNhbGwodGhpcywzMCxCKX0sSWM9Z1szNl0oMzgsMTczNiwxOTUzLDgpLGZ0OD1nWzM2XSg2LDEwMDQyLDQ2LDUxKSxvVjg9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4ga1s0OV0uY2FsbCh0aGlzLDIsQix6LEssSixDKX0sTG9sPWdbMzZdKDM3LDEwMDI2LDEyNCwxNiksa0Q9Z1szNl0oMzcsMjEwLDEwODY4LDEpLFJZdz1nWzM2XSg0LDEwMDIwLDc5LDYpLHJ4OD1nWzM2XSgzNiwxMDAxNCwxMTYsNiksVlczPWdbMzZdKDQsOTg5Miw2MSw3MCksR2pHPWdbMzZdKDM3LDk4ODksNzMsMyksdE49Z1szNl0oNiw1NjMzLDE1NTYsCjUpLEhSMD1nWzM2XSgzOCwzNDIsMjI0OTUsMiksZVlNPWdbMzZdKDUsOTg1MSw4NiwzKSxQMkQ9Z1szNl0oMzYsOTgzOSwyLDEyKSxVVT1nWzM2XSg1LDk4MDksMTI1LDcpLCQwOD1nWzM2XSg2LDk3NTAsNDI3NiwxKSxxZFo9Z1szNl0oNSw5NjQyLDgxLDYpLE1uPWdbMzZdKDQsOTYzNSw1Niw3KSxxMD1nWzM2XSg2LDk1ODksOTksNDYpLGlSOD1nWzM2XSgzOCw5NTgwLDMzLDkpLHRxPWdbMzZdKDM2LDYzODUsNDY1Niw4KSxUeT1nWzM2XSg2LDk1NzIsOTgsOCkseXhoPWdbMzZdKDM3LDk0MTgsOSw2OSksWWR3PWdbMzZdKDQsOTMzNiw0OSw4MiksY3h4PWdbMzZdKDQsOTMxOSw3MSwxNyksak09ZnVuY3Rpb24oQil7cmV0dXJuIEhbMTNdLmNhbGwodGhpcywxLEIpfSx3Mj1nWzM2XSg2LDE3NDYsMjg5NSwyKSxTZDA9Z1szNl0oMzcsOTExMyw4NCw3KSxtMHg9Z1szNl0oNiw5MTA1LDE3NiwyKSxsdDg9Z1szNl0oNCw5MDk2LDExNyw0KSxFVjg9Z1szNl0oNiw5MDg0LDExMywxMiksWExsPQpnWzM2XSg0LDYzNzUsMzY0NSw5KSx1Tzg9Z1szNl0oMzcsOTAxNSwzNiw2OSksYXREPWdbMzZdKDM3LDg5NDcsNyw2OCksZTQ9Z1szNl0oNiw4ODE1LDUyLDQpLGhZOD1nWzM2XSg1LDg4MDksNzAsNiksZDA4PWdbMzZdKDUsODY4NSw3NiwyNyksa2p4PWdbMzZdKDM2LDg2MTUsOTQsNzApLHRXdz1nWzM2XSg0LDg1MDUsNDgsMTgpLFUwOD1nWzM2XSgzOCw4NDI1LDExMiw4MCksTVd3PWdbMzZdKDQsODQxNiwxMjcsOSksd0xOPWdbMzZdKDYsODM4NSwzNiwzMSksSXRNPWdbMzZdKDM3LDgyNTQsOTMzLDIpLEZvMz1nWzM2XSg1LDgyMzUsNDEsOCksa1U9ZnVuY3Rpb24oQil7cmV0dXJuIERbNF0uY2FsbCh0aGlzLDQsQil9LEJyaD1nWzM2XSg2LDgxNjQsNDgsNzEpLFZiPWZ1bmN0aW9uKEIpe3JldHVybiB5WzIzXS5jYWxsKHRoaXMsMyxCKX0sUHo9Z1szNl0oNSw4MDU2LDk4LDQ4KSxJVz1nWzM2XSgzNiwxNTYsNTkxNywxKSxFWD1nWzM2XSg1LDgwNDMsODYsMTMpLHNndz1nWzM2XSg0LAo4MDQxLDEwNywyKSx6Sjg9Z1szNl0oNSw3OTM0LDQ3LDY4KSxLZzM9Z1szNl0oNiw3ODk2LDE4LDMpLElYPWdbMzZdKDYsNDU2MSwyMzQxLDYpLEpYbD1nWzM2XSg2LDc2MzMsMjksNjYpLENNMz1nWzM2XSg2LDc1MzEsODIsOSksYjVEPWdbMzZdKDM3LDc1MTEsMTA5LDIwKSxlVD1nWzM2XSgzOCw3NTA0LDEwOCw3KSxBWDM9Z1szNl0oMzgsNzQ3Myw0OTA3LDMpLHZlTT1nWzM2XSg2LDczNjEsMTE1LDY0KSxUcnc9Z1szNl0oMzYsNzM1NywyMTg3LDQpLGpnaD1nWzM2XSgzNyw3MzI5LDExNSw1KSxKQj1nWzM2XSg1LDcyODMsNjk3Myw0KSxwNzg9Z1szNl0oNSw3MTk5LDExNywxMiksRk09ZnVuY3Rpb24oKXtyZXR1cm4gUlsxMl0uY2FsbCh0aGlzLDgpfSxRZ009Z1szNl0oMzgsNzE4Miw0Nyw4KSxuZWw9Z1szNl0oMzYsNzEwMCw5NCw4MiksWjVaPWdbMzZdKDM3LDcwODYsMjcsMTQpLGxaPWdbMzZdKDUsNzA3OSwyNCw3KSxXZzg9Z1szNl0oMzYsNzAzNywzNTc3LDQpLGdlaD1nWzM2XSg1LAo2OTI3LDM5LDc1KSxOcmg9Z1szNl0oNCw2ODU5LDg3LDY4KSxPNUQ9Z1szNl0oMzgsNjgwNiw2Niw1MykseGFZPWdbMzZdKDM2LDY3NDIsOTgsNjQpLERhMD1nWzM2XSg0LDY3MzksMTEyLDMpLGZJRD1nWzM2XSgzOCw2NjY3LDkzLDcyKSxvZUQ9Z1szNl0oNCw2NjU4LDEzLDkpLEFrPWZ1bmN0aW9uKCl7cmV0dXJuIGcwWzFdLmNhbGwodGhpcyw0KX0sdWw9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEhbMzRdLmNhbGwodGhpcywyMixCLHosSyxKKX0sTGd3PWdbMzZdKDQsNjU4MywzNywyMSksUkpaPWdbMzZdKDYsNjU3NiwxMDQsNyksclhaPWdbMzZdKDM2LDY1NjMsNTAsMTIpLFZQTj1nWzM2XSg2LDY1NjAsMTIzLDMpLEdkOD1nWzM2XSgzOCw2NDQ2LDMxLDcxKSxCMT1nWzM2XSg2LDU0MDUsMjgyNyw2KSxINTM9Z1szNl0oNiw2MzMyLDUsNSksZUpoPWdbMzZdKDM2LDYyNzMsMTIwLDU5KSxQTXE9Z1szNl0oMzYsNjI2OCwyOTcsNSksJGEwPWdbMzZdKDM4LDYyNTksMTE4LDcpLHNiPQpnWzM2XSg0LDYyNDksMzksMTApLHEyWj1nWzM2XSg1LDYwODYsMTEzLDcyKSxpNWg9Z1szNl0oNCw1OTE4LDI3LDMpLHk4PWdbMzZdKDQsNTgxMyw5NywxOSkseVh4PWdbMzZdKDM2LDU3MTYsMTEwLDIpLFkybD1nWzM2XSgzOCw1NjQ0LDI2MDcsMyksSDg9Z1szNl0oNiw1NjA1LDYsMTMpLGNYWj1nWzM2XSg1LDU1ODQsOCw5KSx6Vz1nWzM2XSgzNiw1NTY4LDY5NDIsNCksUzI4PWdbMzZdKDM2LDU0ODgsNDIsMTMpLG1hTj1nWzM2XSgzNyw1NDIwLDAsNjgpLFRvPWdbMzZdKDM3LDUzNzIsNjAsNSksWmI9IiIsVUU9Z1szNl0oMzgsNTMxNSw2Mjc2LDEpLGxJOD1nWzM2XSg1LDUyMjQsMzcsNyksRWVZPWdbMzZdKDM4LDUyMTYsMjksOCksWDdsPWdbMzZdKDUsNTIwMCwxMDQsMTYpLHVvOD1nWzM2XSgzOCw1MTkwLDE1LDEwKSxhSTg9Z1szNl0oNiw1MTEzLDc3LDc0KSxoSkQ9Z1szNl0oMzgsNDk5Nyw5OSwxNSksZGFEPWdbMzZdKDM2LDQ5NTQsMTE4LDQpLEJOPWZ1bmN0aW9uKEIpe3JldHVybiB5WzMxXS5jYWxsKHRoaXMsCjI0LEIpfSxrZE49Z1szNl0oNCw0OTQwLDE1Nyw3KSx5NT1mdW5jdGlvbihCKXtyZXR1cm4gR1s3XS5jYWxsKHRoaXMsNixCKX0sdFBOPWdbMzZdKDUsNDkzMyw1Niw2KSxjZj1nWzM2XSgzNyw0ODAxLDYzLDYpLFVhaD1nWzM2XSg0LDQ3OTYsODcsNSksTVB3PWdbMzZdKDM2LDQ3NDYsNzQsMTEpLHc3MD1nWzM2XSg1LDQ3MzMsNzEsMTMpLElJOD1nWzM2XSgzNyw0NzEwLDEwMiwyMyksRmc4PWdbMzZdKDM3LDQ3MDgsMTIwLDIpLEJtcT1nWzM2XSg1LDQ2MzEsOTMsNjkpLHM5Wj1nWzM2XSg2LDQ1ODUsMTE3LDQ2KSxwcz1nWzM2XSgzNiw0NTM0LDM0LDUxKSxoRj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIEhbNDldLmNhbGwodGhpcywyOCxCLHosSyl9LHNFPWdbMzZdKDQsNDUyNyw2Nyw3KSx6Rlk9Z1szNl0oNiw0NTE3LDcwLDEwKSxLQ0c9Z1szNl0oMzcsNDQ3NCw5LDQzKSxKOHE9Z1szNl0oNCw0NDA3LDU0LDY3KSxDcWg9Z1szNl0oNSw0NDAwLDgwLDcpLEtsPWdbMzZdKDYsNDM4NCwKOTksMTYpLGIxOD1nWzM2XSg0LDQzNTYsNTksNiksQThOPWdbMzZdKDUsNDI4NCwxMDEsNzIpLFNjPWdbMzZdKDM3LDQyNDksMTgyLDIpLHBtPVsyLDNdLFliPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybiBPWzMzXS5jYWxsKHRoaXMsNCxCLHosSyxKLEMsYixBKX0sdjBHPWdbMzZdKDM4LDQxOTYsNDksNiksanA9ZnVuY3Rpb24oQil7cmV0dXJuIEhbN10uY2FsbCh0aGlzLDEzLEIpfSxUbTA9Z1szNl0oMzgsNDEyNywxMDMsNjkpLGo5Wj1nWzM2XSg0LDM5ODcsMzUsODApLHBoRD1nWzM2XSg0LDM5MTQsNjAsNzMpLFE5OD1nWzM2XSg0LDM4OTMsNTQsMjEpLGJaPWdbMzZdKDM2LDM4NDYsNjgwLDMpLG4wMz1nWzM2XSgzNywyMjM2LDAsMTEpLFoxcT1nWzM2XSgzNywxMTQ2LDQ5LDExKSxxNT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFJbNDRdLmNhbGwodGhpcywxLEIseixLKX0sTGg9L1teXGRdKyQvLFdDRz1nWzM2XSgzNiwzNzkzLDk2LDYpLGcwaD1nWzM2XSg1LDM3NTMsCjQ3LDE3KSxObUQ9Z1szNl0oMzYsMzY3NCwxMDMsNiksTzFZPWdbMzZdKDUsMzU4Myw0NSw1KSxncD1nWzM2XSgzNywzNTI1LDMzLDIzKSx4cVk9Z1szNl0oMzgsMzUxOSw2Myw2KSxEcVo9Z1szNl0oNCwzNDQ5LDkzLDcwKSxmOFo9Z1szNl0oMzcsMzQ0NSw1OCw0KSxvMFk9Z1szNl0oMzgsMzQxNSw3NSwzMCksVmc9Z1szNl0oMzcsMzQwMywxMTk1LDEyKSxMQ3c9Z1szNl0oNiwzMzgwLDExMywxMCksUkZ4PWdbMzZdKDM4LDMzNzcsNTQsMykscjhEPWdbMzZdKDQsMzI5NSw4NCw4MiksSmI9Z1szNl0oMzgsMzEzMiwxMDEsMTApLFZKTT1nWzM2XSgzNiwzMDU5LDEyMiw3MyksR0xEPWdbMzZdKDM4LDMwMTAsMTExLDQzKSxIMVo9Z1szNl0oNCwyOTM0LDQ3MDEsMyksd0I9Z1szNl0oNCwyODA4LDI4NzQsNSksZUZOPWdbMzZdKDM2LDI3NzIsMjIsOSksUHFoPWdbMzZdKDYsMjcwMyw3Myw2OSksJHFOPWdbMzZdKDQsMjYzNiwxMTMsOCkscWxoPWdbMzZdKDQsMjYyMiwxODAxLDQpLENsPQp7ZG9uZTohMCx2YWx1ZTp2b2lkIDB9LGkxWT1nWzM2XSgzOCwyNTc5LDM0LDIyKSxkdD1nWzM2XSgzOCwyNTYwLDYzNCw0KSx5OHc9Z1szNl0oMzYsMjQ4NywxMDcsNjYpLGJXPWZ1bmN0aW9uKEIpe3JldHVybiBZWzFdLmNhbGwodGhpcywyLEIpfSxYNz1nWzM2XSgzNiwyNDU3LDM1LDMwKSxBYj1nWzM2XSg1LDI0MzgsNTUsMTkpLFlsdz1nWzM2XSg2LDI0MzQsMTgzLDQpLGM4bD1nWzM2XSgzNywyNDI0LDk4LDkpLFNseD1nWzM2XSg0LDI0MDYsMzM4LDgpLGVoPWdbMzZdKDQsMjM4MSwxMjIsMjIpLHA5PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7cmV0dXJuIHlbMTRdLmNhbGwodGhpcywxNixCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pfSxtcTg9Z1szNl0oMzgsMjI0NywzNiw2OCksbDhEPWdbMzZdKDUsMjIzNyw4MywxMCksRTBoPWdbMzZdKDYsMjIyMiw1OSwxNCksWGhsPWdbMzZdKDM4LDIxODIsMTIwLDkpLHU4OD1nWzM2XSgzOCwyMTcwLDEwMywKMTIpLGE4OD1nWzM2XSg0LDIxMDAsODEsNzApLGhGcT1nWzM2XSgzNiwyMDE0LDg4LDcwKSxkcUQ9Z1szNl0oNiwxOTM3LDI1LDc3KSxrTFo9Z1szNl0oMzcsMTg2NywxMyw3MCksYVk9Z1szNl0oNCwxODEzLDM2LDU0KSx2MT1nWzM2XSg1LDE3ODcsNTAsMjApLFZSPWdbMzZdKDM3LDE3ODAsNTQsNyksYmY9Z1szNl0oMzYsMTcxNCwzMCwzNSksdEpsPWdbMzZdKDUsMTcwOCw1ODUsMiksVXFZPWdbMzZdKDQsMTYzNSw3Myw2OCksTUpNPWdbMzZdKDUsMTM2NywxMDUsNzUpLHdoTj1nWzM2XSgzNywxMjk5LDYwLDY4KSxJOT1nWzM2XSg0LDEyOTgsNzUsMSksSThxPWdbMzZdKDYsMTIyNSwyNiw3MyksRkNNPWdbMzZdKDM3LDEyMDYsNTksNCksQmkwPWdbMzZdKDUsMTIwMiwxMjQsNCksc3dNPWdbMzZdKDM2LDExOTMsNTYsOSksazg9Z1szNl0oMzgsMTE4OSw4MSw0KSx6Zlk9Z1szNl0oMzgsMTE3NiwzMzAsNCksUFM9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4ga1szOF0uY2FsbCh0aGlzLAo4LEIseixLLEosQyl9LEs2aD1nWzM2XSg0LDExNjksOTcsNCksSkx3PWdbMzZdKDYsMTE0Niw0OSw1KSxDcjg9Z1szNl0oMzgsMTE0MSw0LDUpLGJmMz1nWzM2XSg2LDExMDksMjIsMzIpLEFMWj1nWzM2XSgzOCwxMDUxLDc2Myw1KSxUVz1nWzM2XSgzNyw5OTksMTMsNiksdldHPWdbMzZdKDQsOTMyLDY3LDY3KSxUaTg9Z1szNl0oNSw4MzUsMTAzLDgpLGtPPWdbMzZdKDYsNzA5LDQwNTUsMTIpLGp3cT1nWzM2XSgzNiw2MDAsMCwxMikscFNsPWdbMzZdKDQsNTkzLDExMiw3KSxRd009Z1szNl0oMzcsNTMyLDY2LDYxKSxuVzg9Z1szNl0oNiw0NjUsNjgsNjcpLFpmdz1nWzM2XSg1LDIxMiwxMTA3MywxKSxXNkQ9Z1szNl0oMzYsMTEsNTEsNzMpLGdXRD1nWzM2XSgzNiwwLDc2LDExKSxCej10eXBlb2YgT2JqZWN0LmNyZWF0ZT09ImZ1bmN0aW9uIj9PYmplY3QuY3JlYXRlOmZ1bmN0aW9uKEIseil7cmV0dXJuIHo9ZnVuY3Rpb24oKXt9LHoucHJvdG90eXBlPUIsbmV3IHp9LCRuPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09CiJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKEIseixLKXtpZihCPT1BcnJheS5wcm90b3R5cGV8fEI9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIEI7cmV0dXJuIEJbel09Sy52YWx1ZSxCfSxQUj1tWzIxXSgxMSwib2JqZWN0IiwiTWF0aCIsMCx0aGlzKSxMYT0oT1s4XSg4LDE2LE9bMjhdKDU5LE9bMjhdKDMyLE9bMjhdKDU4LDAsT1syOF0oNDQsT1syOF0oNDcsNyxPWzI4XSg1MSwxNiwzOSw1NiwxOCw4NCkpLE9bMjhdKDU3LDg2LDExMCwxMzEsMjIpKSksT1syOF0oNTcsT1syOF0oMzQsMTUxLDE2NywxODYsNDIsMTgwLDMyNCksMjQ5LDI3MiwzNCwxMjgsMjgyKSksT1syOF0oNDIsT1syOF0oNDEsMzM1LE9bMjhdKDQ4LE9bMjhdKDU2LDM0MCwzOTcsNDk4LDI0LDEyOCwzMTgpLDU2NCw1NzMsMTAsMTAwLDI2NCksNjI4LDMyLDk2LDIyMiksT1syOF0oNTMsNjgwLDcwMSw3MDksNTAsMTUyLDI4MiksNzY4LDI0LDM4OCw3MDIpKSksdHlwZW9mIFN5bWJvbD09PQoiZnVuY3Rpb24iJiZiZygpLFBSLkJpZ0ludDY0QXJyYXkmJihsUC5wdXNoKHJ6KCkpLGxQLnB1c2godVUoKSkpLGxQKSxSWD1mdW5jdGlvbihCKXtmdW5jdGlvbiB6KCl7ZnVuY3Rpb24gSygpe31yZXR1cm4oJEIoKG5ldyBLLEspLFtdLGZ1bmN0aW9uKCl7fSksbmV3IEspaW5zdGFuY2VvZiBLfWlmKHR5cGVvZiBSZWZsZWN0IT0idW5kZWZpbmVkIiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe2lmKHooKSlyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3Q7cmV0dXJuIEI9UmVmbGVjdC5jb25zdHJ1Y3QsZnVuY3Rpb24oSyxKLEMsYil7cmV0dXJuKGI9QihLLEopLEMpJiZWeihiLEMucHJvdG90eXBlKSxifX1yZXR1cm4gZnVuY3Rpb24oSyxKLEMsYil7cmV0dXJuIGI9QnooKEM9PT12b2lkIDAmJihDPUspLEMucHJvdG90eXBlfHxPYmplY3QucHJvdG90eXBlKSksRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoSyxiLEopfHxifX0oKSxqUTsKaWYodHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIilqUT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgcGw7YTp7dmFyIE5pbD17YTohMH0sUVY9e307dHJ5e1FWLl9fcHJvdG9fXz1OaWwscGw9UVYuYTticmVhayBhfWNhdGNoKEIpe31wbD0hMX1qUT1wbD9mdW5jdGlvbihCLHope2lmKEIuX19wcm90b19fPXosQi5fX3Byb3RvX18hPT16KXRocm93IG5ldyBUeXBlRXJyb3IoQisiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIEJ9Om51bGx9CnZhciBPZkQ9dHlwZW9mIE9iamVjdC5hc3NpZ249PSJmdW5jdGlvbiI/T2JqZWN0LmFzc2lnbjpmdW5jdGlvbihCLHope2lmKEI9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gbnVsbGlzaCBhcmciKTtmb3IodmFyIEs9KEI9T2JqZWN0KEIpLDEpO0s8YXJndW1lbnRzLmxlbmd0aDtLKyspe3ZhciBKPWFyZ3VtZW50c1tLXTtpZihKKWZvcih2YXIgQyBpbiBKKWdbMThdKDc4LEosQykmJihCW0NdPUpbQ10pfXJldHVybiBCfSxzWT1qUSx1aj0oKCgoKCgoKGtbMjddKDMwLCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihCKXtyZXR1cm4gQnx8T2ZEfSkseTUucHJvdG90eXBlKS5QPWZ1bmN0aW9uKEIpe3RoaXMuWD1CfSx5NS5wcm90b3R5cGVbdSQoKV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSx5NSkucHJvdG90eXBlW3ptKCldPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWH0seTUpLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oQil7KHRoaXMubD17cmV0dXJuOkJ9LHRoaXMpLk09CnRoaXMuT30seTUucHJvdG90eXBlW1dXKCldPXk1LnByb3RvdHlwZS5yZXR1cm4seTUpLnByb3RvdHlwZS5nPWZ1bmN0aW9uKEIpe3RoaXMubD17R186KHRoaXMuTT10aGlzLk8sQil9fSx5NS5wcm90b3R5cGUpW2xDKCldPXk1LnByb3RvdHlwZS5nLHk1KS5wcm90b3R5cGUudj1mdW5jdGlvbihCLHope3JldHVybnt2YWx1ZToodGhpcy5NPXosQil9fSx5NSkucHJvdG90eXBlW1BtKCldPXk1LnByb3RvdHlwZS52LGZ1bmN0aW9uKEIpe3JldHVybiBIWzJdLmNhbGwodGhpcyw3MCxCKX0pLGhCPWZ1bmN0aW9uKEIpe3JldHVybiBtWzM0XS5jYWxsKHRoaXMsMjcsQil9LFFCPSgoKCgoKCgoKCgoeTUucHJvdG90eXBlW3k1LnByb3RvdHlwZS5EPWZ1bmN0aW9uKEIseixLLEosQyl7aWYoSz0oSj1nW0M9WyJ2IiwxNCwxMl0sQ1syXV0oMTEsQiksSikubmV4dCgpLEhbQ1sxXV0oMixLKSxLLmRvbmUpdGhpcy5NPXosdGhpcy5YPUsudmFsdWU7ZWxzZSByZXR1cm4gdGhpcy5XPUosdGhpc1tDWzBdXShLLnZhbHVlLAp6KX0sd0MoKV09eTUucHJvdG90eXBlLkQseTUucHJvdG90eXBlKS5HXz1mdW5jdGlvbihCKXt0aGlzLk09Qn0seTUpLnByb3RvdHlwZVtCRTgoKV09eTUucHJvdG90eXBlLkdfLHk1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7dGhpcy5NPTB9LHk1KS5wcm90b3R5cGVbcCQoKV09eTUucHJvdG90eXBlLlIseTUucHJvdG90eXBlLkE9ZnVuY3Rpb24oQix6KXt6IT12b2lkIDAmJih0aGlzLk89eiksdGhpcy5DPUJ9LHk1KS5wcm90b3R5cGVbdXAoKV09eTUucHJvdG90eXBlLkEseTUpLnByb3RvdHlwZS5LPWZ1bmN0aW9uKEIpe3RoaXMuQz0odGhpcy5PPUJ8fDAsMCl9LHk1LnByb3RvdHlwZSlbUnUoKV09eTUucHJvdG90eXBlLksseTUucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6KXt0aGlzLkM9enx8MCx0aGlzLk09Qn0seTUucHJvdG90eXBlKVtieigpXT15NS5wcm90b3R5cGUuRix5NS5wcm90b3R5cGUpLmk9ZnVuY3Rpb24oQix6KXtyZXR1cm4gdGhpcy5DPUJ8fDAsej10aGlzLmwubjEsCnRoaXMubD1udWxsLHp9LHk1LnByb3RvdHlwZSlbVF8oKV09eTUucHJvdG90eXBlLmkseTUucHJvdG90eXBlKS5tPWZ1bmN0aW9uKEIseixLLEope3RoaXMuTz0oKEo9WyJDIiwiSCIsMF0sSyk/dGhpc1tKWzFdXVtLXT10aGlzLmw6dGhpc1tKWzFdXT1bdGhpcy5sXSx0aGlzW0pbMF1dPUJ8fEpbMl0seil8fEpbMl19LHt9KSxubD0oKCgoKHk1LnByb3RvdHlwZVtLdigpXT15NS5wcm90b3R5cGUubSx5NSkucHJvdG90eXBlLm89ZnVuY3Rpb24oQix6LEssSixDKXsoSj10aGlzLmw9KEs9dGhpcy5ILnNwbGljZSgoQz1bIk0iLCJPIiwwXSx6KXx8Q1syXSlbQ1syXV0sdGhpcy5sfHxLKSk/Si5jQT90aGlzW0NbMF1dPXRoaXMuQ3x8dGhpc1tDWzFdXTpKLkdfIT12b2lkIDAmJnRoaXNbQ1sxXV08Si5HXz8odGhpcy5sPW51bGwsdGhpc1tDWzBdXT1KLkdfKTp0aGlzW0NbMF1dPXRoaXNbQ1sxXV06dGhpc1tDWzBdXT1CfSx5NS5wcm90b3R5cGUpW3c4WigpXT15NS5wcm90b3R5cGUubyx5NS5wcm90b3R5cGUpLmo9CmZ1bmN0aW9uKEIpe3JldHVybiBuZXcgbmwoQil9LHk1LnByb3RvdHlwZSlbZjgoKV09eTUucHJvdG90eXBlLmosZnVuY3Rpb24oQix6KXtyZXR1cm4ga1s0XS5jYWxsKHRoaXMsNCxCLHopfSksaHo9KCgoKCgoKCgoKCgoKCgoKG5sLnByb3RvdHlwZS5NPWZ1bmN0aW9uKEIseil7Zm9yKHo9WyJ2IixudWxsLCJwb3AiXTt0aGlzW3pbMF1dLmxlbmd0aD4wOylpZihCPXRoaXNbelswXV1belsyXV0oKSxCIGluIHRoaXMuWClyZXR1cm4gQjtyZXR1cm4gelsxXX0sbmwucHJvdG90eXBlKVtmVigpXT1ubC5wcm90b3R5cGUuTSxrKVsyN10oMjksIlN5bWJvbCIsZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKGI9WzAsIl8iLDFFOV0sQilyZXR1cm4gQjtyZXR1cm4gSz0ianNjb21wX3N5bWJvbF8iKygoKEo9KHo9ZnVuY3Rpb24oQSl7aWYodGhpcyBpbnN0YW5jZW9mIHopdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7cmV0dXJuIG5ldyBKKEsrKEF8fAoiIikrIl8iK0MrKyxBKX0sZnVuY3Rpb24oQSx2KXskbih0aGlzLCJkZXNjcmlwdGlvbiIsKHRoaXMudj1BLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pKX0pLEopLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZ9LEFlKCkqYlsyXSk+Pj5iWzBdKStiWzFdLEM9YlswXSx6fSksaylbMjddKDI3LCJTeW1ib2wuaXRlcmF0b3IiLGZ1bmN0aW9uKEIseil7aWYoQilyZXR1cm4gQjtyZXR1cm4gJG4oQXJyYXkucHJvdG90eXBlLCh6PVN5bWJvbCgiU3ltYm9sLml0ZXJhdG9yIikseikse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBIWzIxXSgyMixlWzRdKDE5LDAsdGhpcykpfX0pLHp9KSxrKVsyN10oMjcsIlN5bWJvbC5hc3luY0l0ZXJhdG9yIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COlN5bWJvbCgiU3ltYm9sLmFzeW5jSXRlcmF0b3IiKX0pLGtbMjddKDMxLCJnbG9iYWxUaGlzIixmdW5jdGlvbihCKXtyZXR1cm4gQnx8ClBSfSksa1syN10oMjgsIlJlZmxlY3Quc2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6c1k/ZnVuY3Rpb24oeixLKXt0cnl7cmV0dXJuIHNZKHosSyksITB9Y2F0Y2goSil7cmV0dXJuITF9fTpudWxsfSksaylbMjddKDI4LCJQcm9taXNlIixmdW5jdGlvbihCLHosSyxKLEMpe0M9WyJDIiwicHJvdG90eXBlIiwicmVzb2x2ZSJdO2Z1bmN0aW9uIGIoKXt0aGlzLnY9bnVsbH1mdW5jdGlvbiBBKHYpe3JldHVybiB2IGluc3RhbmNlb2YgSz92Om5ldyBLKGZ1bmN0aW9uKHApe3Aodil9KX1pZihCKXJldHVybiBCO3JldHVybigoKCgoKCgoKGJbQ1sxXV0uWD0oYltDW0s9ZnVuY3Rpb24odixwLFEpe3A9KCgoUT0odGhpcy5YPXZvaWQgMCxbIk0iLCJ2IiwhMV0pLHRoaXNbUVsxXV09MCx0aGlzKVtRWzBdXT1bXSx0aGlzKS5GPVFbMl0sdGhpcy5pKCkpO3RyeXt2KHAucmVzb2x2ZSxwLnJlamVjdCl9Y2F0Y2gobil7cC5yZWplY3Qobil9fSwxXV0uQT1mdW5jdGlvbih2LApwLFEsbil7Zm9yKG49WyJ2IixudWxsLDBdO3RoaXNbblswXV0mJnRoaXNbblswXV0ubGVuZ3RoOylmb3Iodj1uWzJdLHA9dGhpc1tuWzBdXSx0aGlzW25bMF1dPVtdO3Y8cC5sZW5ndGg7Kyt2KXtwW3ZdPW5bUT1wW3ZdLDFdO3RyeXtRKCl9Y2F0Y2goWil7dGhpcy5pKFopfX10aGlzW25bMF1dPW5bMV19LGZ1bmN0aW9uKHYpe0oodiwwKX0pLEtbQ1sxXV0pLmw9ZnVuY3Rpb24odixwLFEpe2lmKHRoaXNbKFE9WyJDYW5ub3Qgc2V0dGxlKCIsInYiLCJYIl0sUSlbMV1dIT0wKXRocm93IEVycm9yKFFbMF0rdisiLCAiK3ArIik6IFByb21pc2UgYWxyZWFkeSBzZXR0bGVkIGluIHN0YXRlIit0aGlzW1FbMV1dKTsodGhpc1tRWzFdXT12LHRoaXMpW1FbMl1dPXAsdGhpc1tRWzFdXT09PTImJnRoaXMubygpLHRoaXMuTygpfSwoYltDWzFdXS5NPWZ1bmN0aW9uKHYscCxRKXsodGhpc1tRPVsidiIsbnVsbCwiWCJdLFFbMF1dPT1RWzFdJiYodGhpc1tRWzBdXT1bXSxwPXRoaXMsdGhpc1tRWzJdXShmdW5jdGlvbigpe3AuQSgpfSkpLAp0aGlzW1FbMF1dKS5wdXNoKHYpfSxLW0NbMV1dKS5tPWZ1bmN0aW9uKHYscCxRKXtpZigoUT1bITAsIkMiLCJVIl0sdik9PT10aGlzKXRoaXMuQShuZXcgVHlwZUVycm9yKCJBIFByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpO2Vsc2UgaWYodiBpbnN0YW5jZW9mIEspdGhpc1tRWzJdXSh2KTtlbHNle2E6c3dpdGNoKHR5cGVvZiB2KXtjYXNlICJvYmplY3QiOnA9diE9bnVsbDticmVhayBhO2Nhc2UgImZ1bmN0aW9uIjpwPVFbMF07YnJlYWsgYTtkZWZhdWx0OnA9ITF9cD90aGlzW1FbMV1dKHYpOnRoaXMuUih2KX19LEspWyhKPVBSLnNldFRpbWVvdXQsQylbMV1dLk89ZnVuY3Rpb24odixwKXtpZih0aGlzW3A9WzAsIk0iLG51bGxdLHBbMV1dIT1wWzJdKXtmb3Iodj1wWzBdO3Y8dGhpc1twWzFdXS5sZW5ndGg7Kyt2KXpbcFsxXV0odGhpc1twWzFdXVt2XSk7dGhpc1twWzFdXT1wWzJdfX0sS1tDWzFdXS5BPWZ1bmN0aW9uKHYpe3RoaXMubCgyLHYpfSxLW0NbMV1dLm89CmZ1bmN0aW9uKHYpe0ooKHY9dGhpcyxmdW5jdGlvbihwKXt2LlcoKSYmKHA9UFIuY29uc29sZSx0eXBlb2YgcCE9PSJ1bmRlZmluZWQiJiZwLmVycm9yKHYuWCkpfSksMSl9LEspW0NbMV1dW0NbMF1dPWZ1bmN0aW9uKHYscCl7cD12b2lkIDA7dHJ5e3A9di50aGVufWNhdGNoKFEpe3RoaXMuQShRKTtyZXR1cm59dHlwZW9mIHA9PSJmdW5jdGlvbiI/dGhpcy5QKHYscCk6dGhpcy5SKHYpfSxLW0NbMV1dLlI9ZnVuY3Rpb24odil7dGhpcy5sKDEsdil9LEtbQ1sxXV0uVz1mdW5jdGlvbih2LHAsUSxuLFosVyl7aWYoVz1bKFE9WyJDdXN0b21FdmVudCIsInVuaGFuZGxlZHJlamVjdGlvbiIsITFdLCJwcm9taXNlIiksMiwicmVhc29uIl0sdGhpcy5GKXJldHVybiBRW1dbMV1dO2lmKG49KHA9UFIuRXZlbnQsKHY9UFJbUVswXV0sUFIpLmRpc3BhdGNoRXZlbnQpLHR5cGVvZiBuPT09InVuZGVmaW5lZCIpcmV0dXJuITA7cmV0dXJuKCgodHlwZW9mIHY9PT0iZnVuY3Rpb24iP1o9bmV3IHYoInVuaGFuZGxlZHJlamVjdGlvbiIsCntjYW5jZWxhYmxlOiEwfSk6dHlwZW9mIHA9PT0iZnVuY3Rpb24iP1o9bmV3IHAoInVuaGFuZGxlZHJlamVjdGlvbiIse2NhbmNlbGFibGU6ITB9KTooWj1QUi5kb2N1bWVudC5jcmVhdGVFdmVudChRWzBdKSxaLmluaXRDdXN0b21FdmVudChRWzFdLFFbV1sxXV0sITAsWikpLFopW1dbMF1dPXRoaXMsWilbV1syXV09dGhpcy5YLG4pKFopfSxiW0NbMV1dKS5pPWZ1bmN0aW9uKHYpe3RoaXMuWChmdW5jdGlvbigpe3Rocm93IHY7fSl9LEspW0NbMV1dLmk9ZnVuY3Rpb24odixwKXtmdW5jdGlvbiBRKG4pe3JldHVybiBmdW5jdGlvbihaKXt2fHwodj0hMCxuLmNhbGwocCxaKSl9fXJldHVybiB2PShwPXRoaXMsITEpLHtyZXNvbHZlOlEodGhpcy5tKSxyZWplY3Q6USh0aGlzLkEpfX0sej1uZXcgYixLW0NbMV1dKS5VPWZ1bmN0aW9uKHYscCl7cD10aGlzLmkoKSx2LkVjKHAucmVzb2x2ZSxwLnJlamVjdCl9LEtbQ1sxXV0uUD1mdW5jdGlvbih2LHAsUSl7UT10aGlzLmkoKTt0cnl7cC5jYWxsKHYsClEucmVzb2x2ZSxRLnJlamVjdCl9Y2F0Y2gobil7US5yZWplY3Qobil9fSxLKVtDWzFdXS50aGVuPWZ1bmN0aW9uKHYscCxRLG4sWil7ZnVuY3Rpb24gVyhOLHgpe3JldHVybiB0eXBlb2YgTj09ImZ1bmN0aW9uIj9mdW5jdGlvbihmKXt0cnl7WihOKGYpKX1jYXRjaChMKXtuKEwpfX06eH1yZXR1cm4oUT1uZXcgSyhmdW5jdGlvbihOLHgpe249KFo9Tix4KX0pLHRoaXMpLkVjKFcodixaKSxXKHAsbikpLFF9LEtbQ1sxXV0uY2F0Y2g9ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdil9LEtbQ1sxXV0pLkVjPWZ1bmN0aW9uKHYscCxRLG4pe249WyJGIiwhMCwiTSJdO2Z1bmN0aW9uIFooVyl7Vz1bInYiLDIsIlgiXTtzd2l0Y2goUVtXWzBdXSl7Y2FzZSAxOnYoUVtXWzJdXSk7YnJlYWs7Y2FzZSBXWzFdOnAoUVtXWzJdXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5leHBlY3RlZCBzdGF0ZTogIitRW1dbMF1dKTt9fXRoaXNbKFE9dGhpcyx0aGlzW25bMl1dPT0KbnVsbD96W25bMl1dKFopOnRoaXNbblsyXV0ucHVzaChaKSxuKVswXV09blsxXX0sS1tDWzJdXT1BLEspLnJlamVjdD1mdW5jdGlvbih2KXtyZXR1cm4gbmV3IEsoZnVuY3Rpb24ocCxRKXtRKHYpfSl9LEsucmFjZT1mdW5jdGlvbih2KXtyZXR1cm4gbmV3IEsoZnVuY3Rpb24ocCxRLG4sWil7Zm9yKFo9KG49Z1sxMl0oMyx2KSxuLm5leHQoKSk7IVouZG9uZTtaPW4ubmV4dCgpKUEoWi52YWx1ZSkuRWMocCxRKX0pfSxLLmFsbD1mdW5jdGlvbih2LHAsUSl7cmV0dXJuIFE9Z1sxMl0oOSx2KSxwPVEubmV4dCgpLHAuZG9uZT9BKFtdKTpuZXcgSyhmdW5jdGlvbihuLFosVyxOKXtmdW5jdGlvbiB4KGYpe3JldHVybiBmdW5jdGlvbihMKXsoV1tmXT1MLE4tLSxOPT0wKSYmbihXKX19Tj0oVz1bXSwwKTtkbyBXLnB1c2godm9pZCAwKSxOKyssQShwLnZhbHVlKS5FYyh4KFcubGVuZ3RoLTEpLFopLHA9US5uZXh0KCk7d2hpbGUoIXAuZG9uZSl9KX0sS30pLGtbMjddKDI5LCJTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0IiwKZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LEssSixDLGIsQSx2KXtpZigoSj1bbnVsbCwodj1bNTYzMjAsMSwiY2hhckNvZGVBdCJdLDEpLDBdLEs9eVszMV0oMzksSlswXSx0aGlzLEpbMF0sImNvZGVQb2ludEF0IiksQT1LLmxlbmd0aCx6PU51bWJlcih6KXx8SlsyXSx6Pj1KWzJdKSYmejxBKXtpZigoYj0oenw9SlsyXSxLW3ZbMl1dKHopKSxiPDU1Mjk2fHxiPjU2MzE5KXx8eitKW3ZbMV1dPT09QSlyZXR1cm4gYjtyZXR1cm4oQz1LW3ZbMl1dKHorSlt2WzFdXSksQzx2WzBdfHxDPjU3MzQzKT9iOihiLTU1Mjk2KSoxMDI0K0MrOTIxNn19fSksa1syN10oMjgsIlN0cmluZy5mcm9tQ29kZVBvaW50IixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope2Zvcih2YXIgSz1bMTExNDExMSw2NTUzNSwyXSxKPVswLDEwMjMsNjU1MzZdLEM9IiIsYj1KWzBdO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBBPU51bWJlcihhcmd1bWVudHNbYl0pO2lmKEE8SlswXXx8CkE+S1swXXx8QSE9PWJOKEEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJpbnZhbGlkX2NvZGVfcG9pbnQgIitBKTtBPD1LWzFdP0MrPVN0cmluZy5mcm9tQ2hhckNvZGUoQSk6KEEtPUpbS1syXV0sQys9U3RyaW5nLmZyb21DaGFyQ29kZShBPj4+MTAmSlsxXXw1NTI5NiksQys9U3RyaW5nLmZyb21DaGFyQ29kZShBJkpbMV18NTYzMjApKX1yZXR1cm4gQ319KSxrWzI3XSgzMSwiT2JqZWN0LnNldFByb3RvdHlwZU9mIixmdW5jdGlvbihCKXtyZXR1cm4gQnx8c1l9KSxrKVsyN10oMzAsIlN5bWJvbC5kaXNwb3NlIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COlN5bWJvbCgiU3ltYm9sLmRpc3Bvc2UiKX0pLGtbMjddKDI5LCJNYXRoLmltdWwiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiLEEpe3JldHVybihKPShDPShBPShLPU51bWJlcihLKSxbMSwyLChiPVsxNiw2NTUzNSwwXSx6PU51bWJlcih6KSwwKV0pLEsmYltBWzBdXSkseikmYltBWzBdXSxKKSpDKygoej4+PgpiW0FbMl1dJmJbQVswXV0pKkMrSiooSz4+PmJbQVsyXV0mYltBWzBdXSk8PGJbQVsyXV0+Pj5iW0FbMV1dKXxiW0FbMV1dfX0pLGspWzI3XSgyNywiQXJyYXkuZnJvbSIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LEssSixDLGIsQSx2LHAsUSxuKXtpZihRPShuPVswLChLPUshPW51bGw/SzpmdW5jdGlvbihaKXtyZXR1cm4gWn0scD1bXSwidW5kZWZpbmVkIiksImNhbGwiXSx0eXBlb2YgU3ltYm9sIT1uWzFdKSYmU3ltYm9sLml0ZXJhdG9yJiZ6W1N5bWJvbC5pdGVyYXRvcl0sdHlwZW9mIFE9PSJmdW5jdGlvbiIpZm9yKHo9UVtuWzJdXSh6KSxiPW5bMF07IShBPXoubmV4dCgpKS5kb25lOylwLnB1c2goS1tuWzJdXShKLEEudmFsdWUsYisrKSk7ZWxzZSBmb3IoQz16Lmxlbmd0aCx2PW5bMF07djxDO3YrKylwLnB1c2goS1tuWzJdXShKLHpbdl0sdikpO3JldHVybiBwfX0pLGspWzI3XSgzMCwiV2Vha01hcCIsZnVuY3Rpb24oQix6LEssSixDKXtDPVsicHJvdG90eXBlIiwKImZyZWV6ZSIsIiRqc2NvbXBfaGlkZGVuXyJdO2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gQShRLG4pe3JldHVybihuPXR5cGVvZiBRLG4pPT09Im9iamVjdCImJlEhPT1udWxsfHxuPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiB2KFEsbil7Z1sxOF0oNzUsUSx6KXx8KG49bmV3IGIsJG4oUSx6LHt2YWx1ZTpufSkpfWZ1bmN0aW9uIHAoUSxuKXsobj1PYmplY3RbUV0pJiYoT2JqZWN0W1FdPWZ1bmN0aW9uKFope2lmKFogaW5zdGFuY2VvZiBiKXJldHVybiBaO3JldHVybihpYyhaKSYmdihaKSxuKShaKX0pfWlmKEo9ZnVuY3Rpb24oUSxuLFosVyxOKXtpZih0aGlzLnY9KE49WyJ0b1N0cmluZyIsNSwwXSwoSys9QWUoKSsxKVtOWzBdXSgpKSxRKWZvcihaPWdbMTJdKE5bMV0sUSk7IShuPVoubmV4dCgpKS5kb25lOylXPW4udmFsdWUsdGhpcy5zZXQoV1tOWzJdXSxXWzFdKX0sZnVuY3Rpb24oUSxuLFosVyxOKXtpZihOPShuPVs0LDIsM10sWyJzZWFsIiwyLDFdKSwhQnx8IU9iamVjdFtOWzBdXSlyZXR1cm4hMTsKdHJ5e2lmKFE9KFo9KFc9VU4oe30pLFVOKHt9KSksbmV3IEIoW1tXLDJdLFtaLDNdXSkpLFEuZ2V0KFcpIT1uW05bMl1dfHxRLmdldChaKSE9bltOWzFdXSlyZXR1cm4hMTtyZXR1cm4hKFFbImRlbGV0ZSJdKFcpLFEuc2V0KFosblswXSksUS5oYXMoVykpJiZRLmdldChaKT09blswXX1jYXRjaCh4KXtyZXR1cm4hMX19KCkpcmV0dXJuIEI7cmV0dXJuKCgoSz0oKHo9Q1syXStBZSgpLHAoQ1sxXSkscCkoInByZXZlbnRFeHRlbnNpb25zIikscCgic2VhbCIpLDApLEpbQ1swXV0uc2V0PWZ1bmN0aW9uKFEsbil7aWYoIUEoUSkpdGhyb3cgRXJyb3IoIkludmFsaWQgV2Vha01hcCBrZXkiKTtpZighKHYoUSksZ1sxOF0oNzUsUSx6KSkpdGhyb3cgRXJyb3IoIldlYWtNYXAga2V5IGZhaWw6ICIrUSk7cmV0dXJuIFFbel1bdGhpcy52XT1uLHRoaXN9LEopW0NbMF1dLmdldD1mdW5jdGlvbihRKXtyZXR1cm4gQShRKSYmZ1sxOF0oNzksUSx6KT9RW3pdW3RoaXMudl06dm9pZCAwfSxKKVtDWzBdXS5oYXM9CmZ1bmN0aW9uKFEpe3JldHVybiBBKFEpJiZnWzE4XSg3NyxRLHopJiZnWzE4XSg3NSxRW3pdLHRoaXMudil9LEpbQ1swXV0pWyJkZWxldGUiXT1mdW5jdGlvbihRLG4pe3JldHVybiBBKChuPVsxOCw3NywidiJdLFEpKSYmZ1tuWzBdXSg3NixRLHopJiZnW25bMF1dKG5bMV0sUVt6XSx0aGlzW25bMl1dKT9kZWxldGUgUVt6XVt0aGlzW25bMl1dXTohMX0sSn0pLGspWzI3XSgyOCwiTWFwIixmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKHY9WyJwcm90b3R5cGUiLDAsKEE9ZnVuY3Rpb24ocCl7cmV0dXJuIHA9e30scC5qSz1wLm5leHQ9cC5oZWFkPXB9LCJpdGVyYXRvciIpXSxmdW5jdGlvbihwLFEsbixaLFcsTil7aWYoKG49WyJzIiwhMSwoTj1bMSw0LCJmdW5jdGlvbiJdLCJ0IildLCFCfHx0eXBlb2YgQiE9TlsyXSl8fCFCLnByb3RvdHlwZS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPU5bMl0pcmV0dXJuIG5bTlswXV07dHJ5e2lmKChaPW5ldyBCKChRPVVOKHt4OjR9KSwKZylbMTJdKE5bMF0sW1tRLCJzIl1dKSksWikuZ2V0KFEpIT1uWzBdfHxaLnNpemUhPU5bMF18fFouZ2V0KHt4OjR9KXx8Wi5zZXQoe3g6NH0sblsyXSkhPVp8fFouc2l6ZSE9MilyZXR1cm4gbltOWzBdXTtpZigoVz1aLmVudHJpZXMoKSxwPVcubmV4dCgpLHApLmRvbmV8fHAudmFsdWVbMF0hPVF8fHAudmFsdWVbTlswXV0hPW5bMF0pcmV0dXJuIG5bTlswXV07cmV0dXJuKHA9Vy5uZXh0KCkscCkuZG9uZXx8cC52YWx1ZVswXS54IT1OWzFdfHxwLnZhbHVlW05bMF1dIT1uWzJdfHwhVy5uZXh0KCkuZG9uZT8hMTohMH1jYXRjaCh4KXtyZXR1cm4gbltOWzBdXX19KCkpcmV0dXJuIEI7cmV0dXJuIEM9KCgoKCgoKCgoKEo9KGI9bmV3IFdlYWtNYXAsZnVuY3Rpb24ocCxRLG4sWixXKXtpZih0aGlzLnNpemU9KHRoaXNbKFc9WzYsMCwxXSx0aGlzKVtXWzFdXT17fSxXWzJdXT1BKCksVylbMV0scClmb3Iobj1nWzEyXShXWzBdLHApOyEoUT1uLm5leHQoKSkuZG9uZTspWj1RLnZhbHVlLHRoaXMuc2V0KFpbV1sxXV0sClpbV1syXV0pfSksSilbdlswXV0uc2V0PWZ1bmN0aW9uKHAsUSxuLFosVyl7cmV0dXJuIFo9eih0aGlzLChwPShXPVsxLDAsInB1c2giXSxwPT09KG49WzEsMF0sMCkpPzA6cCxwKSksWi5saXN0fHwoWi5saXN0PXRoaXNbbltXWzBdXV1bWi5pZF09W10pLFouZW50cnk/Wi5lbnRyeS52YWx1ZT1ROihaLmVudHJ5PXtuZXh0OnRoaXNbbltXWzFdXV0saks6dGhpc1tuW1dbMV1dXS5qSyxoZWFkOnRoaXNbbltXWzFdXV0sa2V5OnAsdmFsdWU6UX0sWi5saXN0W1dbMl1dKFouZW50cnkpLHRoaXNbbltXWzFdXV0uaksubmV4dD1aLmVudHJ5LHRoaXNbbltXWzFdXV0uaks9Wi5lbnRyeSx0aGlzLnNpemUrKyksdGhpc30sSlt2W3o9ZnVuY3Rpb24ocCxRLG4sWixXLE4seCxmLEwscil7aWYoKHg9WyhyPVswLChMPVEmJnR5cGVvZiBRLDE4KSwiIl0sInBfIiksIm9iamVjdCIsImZ1bmN0aW9uIl0sTD09eFsxXXx8TD09eFsyXSk/Yi5oYXMoUSk/Zj1iLmdldChRKTooVz1yWzJdKyArK0MsYi5zZXQoUSwKVyksZj1XKTpmPXhbclswXV0rUSwoTj1wW3JbMF1dW2ZdKSYmZ1tyWzFdXSg3NixwW3JbMF1dLGYpKWZvcihaPXJbMF07WjxOLmxlbmd0aDtaKyspaWYobj1OW1pdLFEhPT1RJiZuLmtleSE9PW4ua2V5fHxRPT09bi5rZXkpcmV0dXJue2lkOmYsbGlzdDpOLGluZGV4OlosZW50cnk6bn07cmV0dXJue2lkOmYsbGlzdDpOLGluZGV4Oi0xLGVudHJ5OnZvaWQgMH19LDBdXVtLPWZ1bmN0aW9uKHAsUSxuKXtyZXR1cm4gbj1wWzFdLEhbMjFdKDYsZnVuY3Rpb24oKXtpZihuKXtmb3IoO24uaGVhZCE9cFsxXTspbj1uLmpLO2Zvcig7bi5uZXh0IT1uLmhlYWQ7KXJldHVybiBuPW4ubmV4dCx7ZG9uZTohMSx2YWx1ZTpRKG4pfTtuPW51bGx9cmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfX0pfSwiZGVsZXRlIl09ZnVuY3Rpb24ocCxRLG4pe3JldHVybihRPXoodGhpcywobj1bbnVsbCwxLCEwXSxwKSksUS5lbnRyeSkmJlEubGlzdD8oUS5saXN0LnNwbGljZShRLmluZGV4LG5bMV0pLFEubGlzdC5sZW5ndGh8fApkZWxldGUgdGhpc1swXVtRLmlkXSxRLmVudHJ5LmpLLm5leHQ9US5lbnRyeS5uZXh0LFEuZW50cnkubmV4dC5qSz1RLmVudHJ5LmpLLFEuZW50cnkuaGVhZD1uWzBdLHRoaXMuc2l6ZS0tLG5bMl0pOiExfSxKKVt2WzBdXS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2l6ZT0odGhpc1sxXT0odGhpc1swXT17fSx0aGlzWzFdLmpLPUEoKSksMCl9LEopW3ZbMF1dLmhhcz1mdW5jdGlvbihwKXtyZXR1cm4hIXoodGhpcyxwKS5lbnRyeX0sSilbdlswXV0uZ2V0PWZ1bmN0aW9uKHAsUSl7cmV0dXJuKFE9eih0aGlzLHApLmVudHJ5KSYmUS52YWx1ZX0sSlt2WzBdXSkuZW50cmllcz1mdW5jdGlvbigpe3JldHVybiBLKHRoaXMsZnVuY3Rpb24ocCl7cmV0dXJuW3Aua2V5LHAudmFsdWVdfSl9LEopW3ZbMF1dLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKHApe3JldHVybiBwLmtleX0pfSxKKVt2WzBdXS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKHApe3JldHVybiBwLnZhbHVlfSl9LApKKVt2WzBdXS5mb3JFYWNoPWZ1bmN0aW9uKHAsUSxuLFosVyl7Zm9yKFo9dGhpcy5lbnRyaWVzKCk7IShXPVoubmV4dCgpKS5kb25lOyluPVcudmFsdWUscC5jYWxsKFEsblsxXSxuWzBdLHRoaXMpfSxKW3ZbMF1dKVtTeW1ib2xbdlsyXV1dPUpbdlswXV0uZW50cmllcyx2KVsxXSxKfSksaylbMjddKDI4LCJBcnJheS5wcm90b3R5cGUuZW50cmllcyIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbigpe3JldHVybiBIWzIyXSgyNSwhMCx0aGlzLGZ1bmN0aW9uKHosSyl7cmV0dXJuW3osS119KX19KSxrWzI3XSgyNywiU2V0IixmdW5jdGlvbihCLHosSyl7aWYoSz1bImhhcyIsInByb3RvdHlwZSIsImZvckVhY2giXSxmdW5jdGlvbihKLEMsYixBLHYscCl7aWYoIShwPVsicHJvdG90eXBlIiwiYWRkIiwoQz1bImZ1bmN0aW9uIiwxLDJdLCExKV0sQil8fHR5cGVvZiBCIT1DWzBdfHwhQltwWzBdXS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPUNbMF0pcmV0dXJuIHBbMl07CnRyeXtpZigoSj1uZXcgQigoYj1VTih7eDo0fSksZ1sxMl0oNCxbYl0pKSksIUouaGFzKGIpfHxKLnNpemUhPUNbMV18fEpbcFsxXV0oYikhPUp8fEouc2l6ZSE9Q1sxXSl8fEpbcFsxXV0oe3g6NH0pIT1KfHxKLnNpemUhPUNbMl0pcmV0dXJuIHBbMl07aWYoKEE9KHY9Si5lbnRyaWVzKCksdikubmV4dCgpLEEuZG9uZSl8fEEudmFsdWVbMF0hPWJ8fEEudmFsdWVbQ1sxXV0hPWIpcmV0dXJuIHBbMl07cmV0dXJuIEE9di5uZXh0KCksQS5kb25lfHxBLnZhbHVlWzBdPT1ifHxBLnZhbHVlWzBdLnghPTR8fEEudmFsdWVbQ1sxXV0hPUEudmFsdWVbMF0/ITE6di5uZXh0KCkuZG9uZX1jYXRjaChRKXtyZXR1cm4gcFsyXX19KCkpcmV0dXJuIEI7cmV0dXJuKCgoKCgoKHo9ZnVuY3Rpb24oSixDLGIpe2lmKHRoaXMudj1uZXcgTWFwLEopZm9yKGI9Z1sxMl0oNyxKKTshKEM9Yi5uZXh0KCkpLmRvbmU7KXRoaXMuYWRkKEMudmFsdWUpO3RoaXMuc2l6ZT10aGlzLnYuc2l6ZX0seltLWzFdXSkuYWRkPQpmdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5zaXplPSh0aGlzLnYuc2V0KChKPUo9PT0wPzA6SixKKSxKKSx0aGlzLnYuc2l6ZSksdGhpc30seilbS1sxXV1bImRlbGV0ZSJdPWZ1bmN0aW9uKEosQyl7cmV0dXJuIEM9dGhpcy52WyJkZWxldGUiXShKKSx0aGlzLnNpemU9dGhpcy52LnNpemUsQ30seilbS1sxXV0uY2xlYXI9ZnVuY3Rpb24oKXsodGhpcy52LmNsZWFyKCksdGhpcykuc2l6ZT0wfSx6W0tbMV1dKVtLWzBdXT1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcy52LmhhcyhKKX0seltLWzFdXS5lbnRyaWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5lbnRyaWVzKCl9LHpbS1sxXV0udmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi52YWx1ZXMoKX0seltLWzFdXSkua2V5cz16W0tbMV1dLnZhbHVlcyx6W0tbMV1dKVtTeW1ib2wuaXRlcmF0b3JdPXpbS1sxXV0udmFsdWVzLHpbS1sxXV0pW0tbMl1dPWZ1bmN0aW9uKEosQyxiKXt0aGlzLnYuZm9yRWFjaCgoYj10aGlzLGZ1bmN0aW9uKEEpe3JldHVybiBKLmNhbGwoQywKQSxBLGIpfSkpfSx6fSksa1syN10oMjcsIk9iamVjdC5lbnRyaWVzIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyxKKXtmb3IoSyBpbiBKPVtdLHopZ1sxOF0oNzgseixLKSYmSi5wdXNoKFtLLHpbS11dKTtyZXR1cm4gSn19KSxrWzI3XSgzMSwiTnVtYmVyLmlzRmluaXRlIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope3JldHVybiB0eXBlb2YgeiE9PSJudW1iZXIiPyExOiFpc05hTih6KSYmeiE9PUluZmluaXR5JiZ6IT09LUluZmluaXR5fX0pLGspWzI3XSgyOCwiTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuIDkwMDcxOTkyNTQ3NDA5OTF9KSxrKVsyN10oMzEsIk51bWJlci5NSU5fU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybi05MDA3MTk5MjU0NzQwOTkxfSksa1syN10oMjcsIkFycmF5LnByb3RvdHlwZS5maW5kIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyl7cmV0dXJuIEhbMTBdKDksCjAsdGhpcyx6LEspLkhBfX0pLGspWzI3XSgzMSwiTWF0aC5sb2cyIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope3JldHVybiBZQyh6KS9NYXRoLkxOMn19KSxrKVsyN10oMzAsIk9iamVjdC52YWx1ZXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEope2ZvcihLIGluIEo9W10seilnWzE4XSg3OSx6LEspJiZKLnB1c2goeltLXSk7cmV0dXJuIEp9fSksaylbMjddKDI4LCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiLEEpe2I9KEo9dGhpcyxKIGluc3RhbmNlb2YgU3RyaW5nJiYoSj1TdHJpbmcoSikpLEM9S3x8MCxKKS5sZW5ndGg7Zm9yKEM8MCYmKEM9aFkoQytiLDApKTtDPGI7QysrKWlmKEE9SltDXSxBPT09enx8VTgoQSx6KSlyZXR1cm4hMDtyZXR1cm4hMX19KSxmdW5jdGlvbihCKXtyZXR1cm4ga1s0MF0uY2FsbCh0aGlzLDEsQil9KSxNej0oKCgoKCgoKChrWzI3XSgyOSwKIlN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEope3JldHVybiB5WyhKPVszMSxudWxsLCJpbmNsdWRlcyJdLEopWzBdXSgyMixKWzFdLHRoaXMseixKWzJdKS5pbmRleE9mKHosS3x8MCkhPT0tMX19KSxrKVsyN10oMjksIk51bWJlci5pc0ludGVnZXIiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeil7cmV0dXJuIE51bWJlci5pc0Zpbml0ZSh6KT96PT09Yk4oeik6ITF9fSksaylbMjddKDMxLCJOdW1iZXIuaXNTYWZlSW50ZWdlciIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6KXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih6KSYmZTcoeik8PU51bWJlci5NQVhfU0FGRV9JTlRFR0VSfX0pLGspWzI3XSgyOCwiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyxKLEMsYixBLHYscCxRKXtmb3IoYj0ocD0oQT0oQz0oUT1bMiwyMywKKEo9WzAsITEsInN0YXJ0c1dpdGgiXSwwKV0seVszMV0oUVsxXSxudWxsLHRoaXMseixKW1FbMF1dKSkseis9IiIsQykubGVuZ3RoLHoubGVuZ3RoKSxoWShKW1FbMl1dLGw5KEt8SltRWzJdXSxDLmxlbmd0aCkpKSx2PUpbUVsyXV07djxwJiZiPEE7KWlmKENbYisrXSE9elt2KytdKXJldHVybiBKWzFdO3JldHVybiB2Pj1wfX0pLGspWzI3XSgyNywiU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aCIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LEssSixDLGIsQSx2KXtmb3IoYj0oKHY9KEM9WyIiLDAsITFdLFsxLDAsMzFdKSxBPXlbdlsyXV0oNyxudWxsLHRoaXMseiwiZW5kc1dpdGgiKSx6Kz1DW3ZbMV1dLEspPT09dm9pZCAwJiYoSz1BLmxlbmd0aCksaFkoQ1t2WzBdXSxsOShLfENbdlswXV0sQS5sZW5ndGgpKSksSj16Lmxlbmd0aDtKPkNbdlswXV0mJmI+Q1t2WzBdXTspaWYoQVstLWJdIT16Wy0tSl0pcmV0dXJuIENbMl07cmV0dXJuIEo8PUNbdlswXV19fSksa1syN10oMzAsCiJNYXRoLnRydW5jIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyl7aWYoaXNOYU4oKHo9TnVtYmVyKHopLHopKXx8ej09PUluZmluaXR5fHx6PT09LUluZmluaXR5fHx6PT09MClyZXR1cm4gejtyZXR1cm4oSz1iTihlNyh6KSksejwwKT8tSzpLfX0pLGspWzI3XSgzMSwiTWF0aC5sb2cxMCIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6KXtyZXR1cm4gWUMoeikvTWF0aC5MTjEwfX0pLGspWzI3XSgzMCwiTnVtYmVyLmlzTmFOIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope3JldHVybiB0eXBlb2Ygej09PSJudW1iZXIiJiZpc05hTih6KX19KSxrWzI3XSgyNywiQXJyYXkucHJvdG90eXBlLmtleXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oKXtyZXR1cm4gSFsyMl0oMjcsITAsdGhpcyxmdW5jdGlvbih6KXtyZXR1cm4gen0pfX0pLGtbMjddKDMxLCJBcnJheS5wcm90b3R5cGUudmFsdWVzIixmdW5jdGlvbihCKXtyZXR1cm4gQj8KQjpmdW5jdGlvbigpe3JldHVybiBIWzIyXSgyNiwhMCx0aGlzLGZ1bmN0aW9uKHosSyl7cmV0dXJuIEt9KX19KSxrWzI3XSgyOCwiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiKXtpZigoSj15W2I9WyJyZXBlYXQiLDMxLChLPVtudWxsLDEzNDIxNzcyNzksIiJdLDApXSxiWzFdXSgzOCxLW2JbMl1dLHRoaXMsS1tiWzJdXSxiWzBdKSx6KTxiWzJdfHx6PktbMV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgY291bnQgdmFsdWUiKTtDPUtbMl07Zm9yKHp8PWJbMl07ejspaWYoeiYxJiYoQys9Siksej4+Pj0xKUorPUo7cmV0dXJuIEN9fSksa1syN10oMjksIkFycmF5LnByb3RvdHlwZS5maW5kSW5kZXgiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLKXtyZXR1cm4gSFsxMF0oOCwwLHRoaXMseixLKS55Tn19KSxrKVsyN10oMzAsIkFycmF5Lm9mIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COgpmdW5jdGlvbih6KXtyZXR1cm4gQXJyYXkuZnJvbShhcmd1bWVudHMpfX0pLGtbMjddKDI5LCJNYXRoLnNpZ24iLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeil7cmV0dXJuKHo9TnVtYmVyKHopLHo9PT0wKXx8aXNOYU4oeik/ejp6PjA/MTotMX19KSxrKVsyN10oMzAsIkFycmF5LnByb3RvdHlwZS5mbGF0IixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoKEs9KHo9ej09PXZvaWQgMD8xOnosW10pLHRoaXMpLGZ1bmN0aW9uKEosQyxiKXtpZigoYj1bInB1c2giLDAsImFwcGx5Il0sQXJyYXkuaXNBcnJheShKKSkmJno+YlsxXSlDPUFycmF5LnByb3RvdHlwZS5mbGF0LmNhbGwoSix6LTEpLEtbYlswXV1bYlsyXV0oSyxDKTtlbHNlIEtbYlswXV0oSil9KSxLfX0pLHt9KSxVbD0oKGtbMjddKDI3LCJTdHJpbmcucHJvdG90eXBlLnBhZEVuZCIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LApLLEosQyxiLEEsdixwLFEpe3JldHVybihDPShKPXlbMzFdKDYsKFE9WzIsKGI9WyIiLG51bGwsMF0sInN1YnN0cmluZyIpLCJyZXBlYXQiXSxiWzFdKSx0aGlzLGJbMV0sInBhZFN0YXJ0IiksQT16LUoubGVuZ3RoLEshPT12b2lkIDApP1N0cmluZyhLKToiICIsQT5iW1FbMF1dJiZDPyh2PWQwKEEvQy5sZW5ndGgpLHA9Q1tRWzJdXSh2KVtRWzFdXShiW1FbMF1dLEEpKTpwPWJbMF0sSikrcH19KSxrWzI3XSgyOSwiQXJyYXkucHJvdG90eXBlLmZpbGwiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiLEEsdil7aWYoSzwoQT0odj0oQz1bMCxudWxsXSxbMCwxXSksdGhpcykubGVuZ3RofHxDW3ZbMF1dLEMpW3ZbMF1dJiYoSz1oWShDW3ZbMF1dLEErSykpLEo9PUNbdlsxXV18fEo+QSlKPUE7Zm9yKGI9KChKPU51bWJlcihKKSxKPENbdlswXV0pJiYoSj1oWShDW3ZbMF1dLEErSikpLE51bWJlcihLfHxDW3ZbMF1dKSk7YjxKO2IrKyl0aGlzW2JdPXo7cmV0dXJuIHRoaXN9fSksCm0pWzM4XSgxLCIuIiwwLG51bGwsImZpbGwiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6QXJyYXkucHJvdG90eXBlLmZpbGx9KSxVbHx8e30pLEdsPXRoaXN8fHNlbGYsJEs9ImNsb3N1cmVfdWlkXyIrKChqNigpLGFRKCksWHMoKSxBZSkoKSoxRTk+Pj4wKSxSeD1mdW5jdGlvbihCLHosSyl7dmFyIEo9WyJwcm90b3R5cGUiLCJhcHBseSIsImluZGV4T2YiXTtyZXR1cm4gUng9RnVuY3Rpb25bSlswXV0uYmluZCYmRnVuY3Rpb25bSlswXV0uYmluZC50b1N0cmluZygpW0pbMl1dKGUzMCgpKSE9LTE/aEk6VjksUnhbSlsxXV0obnVsbCxhcmd1bWVudHMpfSxxWj0wLHhLRz0oZUMoKSx4S0d8fHtpZDpkVygpfSksREtxPURLcXx8e2lkOmZHbCgpfSxaNz0oKCgoKChwSSgpLG9lKSgpLHNTKCkseXIoKSxBM3EpKCksYmkpKCksVXVoKSgpLGRIKSgpLEtJKCksWkwoKSxLSGwoKSx7fSksY1I9KCgoKCgoKCgoTjRoKCksT0koKSxwRSkoKSxqOSgpLEp4OCkoKSxONVooKSxWTCgpLEpzKCksQWwoKSwKZkIpKCksQk0oKSxCQikoKSxUX1opKCksYjVEKCksRncoKSxVYSgpLExlKCksRFApKCksQ2kpKCksVVEoKSxpUykoKSxncygpLFJJKCksZnVuY3Rpb24oQil7cmV0dXJuIEhbNDJdLmNhbGwodGhpcywxLEIpfSkscEY9KCgoKCgoeWVZKCksTlcoKSxjNCgpLFljKSgpLFpqKSgpLHFWKSgpLHFXKSgpLG8wWSkoKSxuZjMoKSx6VSgpLGZ1bmN0aW9uKCl7cmV0dXJuIG1bMzNdLmNhbGwodGhpcywzNSl9KSxWQz1bMSwoS1YoKSwyKV0sZkFEPWZBRHx8e2lkOmR1MygpfSxvVzg9b1c4fHx7aWQ6VzZEKCl9LEw2eD1MNnh8fHtpZDpoXygpfSxSZlo9UmZafHx7aWQ6dEgoKX0sckx3PXJMd3x8e2lkOkYwKCl9LFZ1OD1WdTh8fHtpZDpSRCgpfSxHdTg9R3U4fHx7aWQ6Ym44KCl9LEhmMz1IZjN8fHtpZDpiUncoKX0sZWZZPWVmWXx8e2lkOmRoKCl9LFByWT1Qcll8fHtpZDpTd2goKX0sS1I9ZnVuY3Rpb24oKXtyZXR1cm4gT1sxXS5jYWxsKHRoaXMsNCl9LCRLOD0kSzh8fHtpZDpGRCgpfSxsSz1mdW5jdGlvbihCKXtyZXR1cm4gZVsyN10uY2FsbCh0aGlzLAozMyxCKX0scVhsPXFYbHx8e2lkOkpZOCgpfSxpZlo9aWZafHx7aWQ6UXIoKX0seUxHPXlMR3x8e2lkOnQ3KCl9LFlYeD1ZWHh8fHtpZDpxZygpfSxjTE09Y0xNfHx7aWQ6TVcoKX0sU1h3PVNYd3x8e2lkOm9PMygpfTtmdW5jdGlvbiBOUChCLHosSyl7cmV0dXJuIE9bNDldLmNhbGwodGhpcywxLEIseixLKX12YXIgZ0s9KEhbMjRdKDU3LE5QLEVycm9yKSxmdW5jdGlvbigpe3JldHVybiBEWzQ5XS5jYWxsKHRoaXMsMSl9KTtOUC5wcm90b3R5cGUubmFtZT1nOE4oKTsKdmFyIFlZLG1LeD0oWl8oKSxtS3h8fHtpZDp3aE4oKX0pLGxBRD1sQUR8fHtpZDp0ZygpfSxFVzg9RVc4fHx7aWQ6aXkoKX0sWFNoPVhTaHx8e2lkOmt0KCl9LHVFdz11RXd8fHtpZDokRygpfSxhQXc9YUF3fHx7aWQ6ZUEoKX0saGZaPWhmWnx8e2lkOmFJKCl9LGRLOD1kSzh8fHtpZDpvRygpfSxrdTM9a3UzfHx7aWQ6JDMoKX0sdHVHPXR1R3x8e2lkOk00KCl9LFVLMz1VSzN8fHtpZDp3eigpfSxNdVo9TXVafHx7aWQ6S3UoKX0sd1NOPXdTTnx8e2lkOktIKCl9LElBaD1JQWh8fHtpZDpQcWgoKX0sRjZoPUY2aHx8e2lkOkFIKCl9LEJvRD0oKChqdygpLFdDKSgpLHdCKCkseVcoKSxxNikoKSxjaSgpLEJvRHx8e2lkOkxWKCl9KSxzYjA9c2IwfHx7aWQ6TVkoKX0semhZPXpoWXx8e2lkOlRTKCl9LEt2Mz1LdjN8fHtpZDpleSgpfSxKNjA9SjYwfHx7aWQ6clcoKX0sQzkzPUM5M3x8e2lkOnZZKCl9LGJiOD1iYjh8fHtpZDpTMigpfSxBNnE9QTZxfHx7aWQ6SWsoKX0sdkxsPXZMbHx8e2lkOnNhKCl9LApUb1k9VG9ZfHx7aWQ6UTEoKX0samI4PWpiOHx8e2lkOmtsOCgpfSxwVGg9cFRofHx7aWQ6R2UoKX0sUWJ3PVFid3x8e2lkOmhGcSgpfSxuTFk9bkxZfHx7aWQ6bHYoKX0sWmJoPVpiaHx8e2lkOmtqeCgpfSxXdjA9V3YwfHx7aWQ6aTgoKX0sZ0w4PWdMOHx8e2lkOkhLWSgpfSxOb1o9Tm9afHx7aWQ6Q2UoKX0sT2JHPU9iR3x8e2lkOm95KCl9LHhQOD14UDh8fHtpZDpCbXEoKX0sRFBHPURQR3x8e2lkOmFsMygpfSxmeGg9ZnhofHx7aWQ6UFkoKX0sb0xaPW9MWnx8e2lkOklscSgpfSxMdng9THZ4fHx7aWQ6bmMoKX0sUmh4PVJoeHx8e2lkOlRBKCl9LHI2dz1yNnd8fHtpZDpGTjMoKX0sbXY9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1sxMV0uY2FsbCh0aGlzLDI0LEIseil9LFZCcT1WQnF8fHtpZDppYSgpfSxHNWg9RzVofHx7aWQ6bjMoKX0sSGJsPUhibHx8e2lkOmJRTSgpfSxlaE09ZWhNfHx7aWQ6dU84KCl9LFA5Tj1QOU58fHtpZDplTygpfSwkUDA9JFAwfHx7aWQ6VDYoKX0scUhHPXFIR3x8CntpZDokUygpfSxpYk49aWJOfHx7aWQ6VGMoKX0seTY4PXk2OHx8e2lkOnJJKCl9LFlITT1ZSE18fHtpZDpMTlooKX0sYzY4PWM2OHx8e2lkOkVmKCl9LFNITT1TSE18fHtpZDpvZmwoKX0sbVA4PW1QOHx8e2lkOk9MKCl9LGx4cT1seHF8fHtpZDpZUygpfSxFTGg9RUxofHx7aWQ6TEooKX0sWFQ4PVhUOHx8e2lkOm5oTigpfSx4MT1mdW5jdGlvbigpe3JldHVybiB5WzVdLmNhbGwodGhpcywxKX0sdUowPXVKMHx8e2lkOngyKCl9LGF4cT1heHF8fHtpZDpzRygpfSxoaDg9aGg4fHx7aWQ6bzcoKX0sZFAzPWRQM3x8e2lkOmRMKCl9LGs1OD1rNTh8fHtpZDpkcygpfSx0QjA9dEIwfHx7aWQ6biQoKX0sVVA4PVVQOHx8e2lkOllkdygpfSxNQnc9TUJ3fHx7aWQ6Y1koKX0sd1QzPXdUM3x8e2lkOlFtKCl9LEl4OD1JeDh8fHtpZDokVXgoKX0sQlBsPShPWzhdKDEwLDQxLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtmb3IocD0odj1bIiIsMCwxXSw5MSk7cCE9NTspaWYocD09MTUpQz1iLm5leHQoKSwKcD05NjtlbHNlIGlmKHA9PTIwKXA9OTY7ZWxzZSBpZihwPT05NilwPUMuZG9uZT92WzFdOjc0O2Vsc2UgaWYocD09NzkpcD12WzFdO2Vsc2UgaWYocD09NzQpQT1DLnZhbHVlLHA9MztlbHNle2lmKHA9PXZbMV0pcmV0dXJuIEEmJkEubGVuZ3RoPj0yP0FbdlsyXV06IiI7cD09Mz9wPS0tSjw9dlsxXT83OToxNTpwPT05MSYmKHo9eVsxMV0oMzYseiwiZyIrSyksQT12b2lkIDAsYj1nWzEyXSg0LCh2WzBdK0IpW1cxK0Z2M10oeikpLEM9Yi5uZXh0KCkscD0yMCl9fSksQlBsKXx8e2lkOiRhKCl9LERXPWZ1bmN0aW9uKEIpe3JldHVybiBPWzQ1XS5jYWxsKHRoaXMsNSxCKX0sc2NxPShtWzM2XSg0NSxmdW5jdGlvbihCKXtyZXR1cm4gQiE9PW51bGwmJkIhPT12b2lkIDB9LG91KCkpLHNjcXx8e2lkOkdoTSgpfSksekhZPSgoUHJvbWlzZS5yZXNvbHZlKCkscWwpKCksaFcoKSx6SFkpfHx7aWQ6cjhEKCl9LE1RLFU0PXR5cGVvZiBUZXh0RGVjb2RlciE9PSJ1bmRlZmluZWQiLHdBLElVPXZvaWQgMCwKSFUsR289Qm0oKSxWVT10eXBlb2YgU3RyaW5nLnByb3RvdHlwZVtHb109PT0iZnVuY3Rpb24iLHJ3PXR5cGVvZiBUZXh0RW5jb2RlciE9PSJ1bmRlZmluZWQiLGE0PVN0cmluZy5wcm90b3R5cGUudHJpbT9mdW5jdGlvbihCKXtyZXR1cm4gQi50cmltKCl9OmZ1bmN0aW9uKEIpe3JldHVybi9eW1xzXHhhMF0qKFtcc1xTXSo/KVtcc1x4YTBdKiQvLmV4ZWMoQilbMV19LGZtPSgoQWgoKSx5WSkoKSxxbigpLEl5KCksZnVuY3Rpb24oQil7cmV0dXJuIGVbMzZdLmNhbGwodGhpcywxOSxCKX0pLEtZMz1LWTN8fHtpZDpYVCgpfSxsRj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBEWzEyXS5jYWxsKHRoaXMsOCxKLEssQyx6LEIpfSxnZz1nMFsxXSgyNiwxLCExKSxSYj1nMFsxXSgzMCw2MTA0MDEzMDEsITEpLG9SPSgoZzBbZzBbKCgoZzBbMV0oNTksODk5NTg4NDM3LCExKSxnMClbMV0oMzEsNzcyNjU3NzY4LCEwKSxnMClbMV0oNjIsNTEzNjU5NTIzLCExKSxnMClbMV0oNjMsNTY4MzMzOTQ1LAohMCksMV0oNjEsMTMzMTc2MTQwMywhMCksMV0oMjksNjUxMTc1ODI4LCExKSxnMFsxXSg1OCw3MjI3NjQ1NDIsITEpLGcwWzFdKDI5LDc0ODQwMjE0NSwhMSksZzApWzFdKDYzLDc0ODQwMjE0NiwhMSksZzApWzFdKDI4LDc0ODQwMjE0NywhMCksYlQ9KChnMFtnMFsoZzBbKGcwW2cwWyhnMFtnMFsxXSgzMSwxNjAyNjEzMTg1LCExKSwxXSgyNiw4NjEzNzc3MjMsITEpLGcwKVsxXSg2Miw4NjEzNzc3MjQsZ2cpLDFdKDMwLDg2OTMzNjkwMywhMSksMV0oNTgsODgyNjc0NTA3LCExKSxnMClbMV0oNjEsODY5MzM2OTA0LGdnKSwxXSgyNyw4NjkzMzY5MDUsZ2cpLGcwKVsxXSg1OSwyODM5NTMxNTUsITEpLGcwWzFdKDYwLDkxOTQ0NDgyNCwhMSksMV0oNjAsOTMxNDY4MDQ3LCExKSwxXSgyOCw5Mjg4NzUzOTgsITEpLGcwKVsxXSgyNyw2ODM3NDkyMDEsITEpLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4gZVs0OF0uY2FsbCh0aGlzLDIsQix6LEspfSksTmI9KGcwW2cwW2cwWzFdKDI5LDIxNDc0ODM2NDQsCiExKSxnMFsxXSgyNywyMTQ3NDgzNjQ1LCExKSwxXSgyOCwyMTQ3NDgzNjQ2LGdnKSwxXSgyNiwyMTQ3NDgzNjQ3LCEwKSxHbCkubmF2aWdhdG9yLFo4LGl1PShaOD1OYj9OYi51c2VyQWdlbnREYXRhfHxudWxsOm51bGwsWGwoKSksUVU9am4wKCksako9SXkoKSxxRz1sSTgoKSxQTj1rJCgpLCRKPXFuKCksUVI9QmREKCksbjE9RXEoKSxKTT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4ga1syM10uY2FsbCh0aGlzLDMyLEIseixLLEopfSxKTTg9QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mP2Z1bmN0aW9uKEIseil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKEIseixCLmxlbmd0aC0xKX06ZnVuY3Rpb24oQix6LEssSixDKXtpZih0eXBlb2YgQj09PSgoSj0oQz1bMCwxLCJsYXN0SW5kZXhPZiJdLEIpLmxlbmd0aC1DWzFdLEo8Q1swXSkmJihKPWhZKENbMF0sQi5sZW5ndGgrSikpLCJzdHJpbmciKSlyZXR1cm4gdHlwZW9mIHohPT0ic3RyaW5nInx8ei5sZW5ndGghPQpDWzFdPy0xOkJbQ1syXV0oeixKKTtmb3IoSz1KO0s+PUNbMF07Sy0tKWlmKEsgaW4gQiYmQltLXT09PXopcmV0dXJuIEs7cmV0dXJuLTF9LG9YPUFycmF5LnByb3RvdHlwZS5zb21lP2Z1bmN0aW9uKEIseil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoQix6LHZvaWQgMCl9OmZ1bmN0aW9uKEIseixLLEosQyxiKXtmb3IoQz0oYj1bInNwbGl0IiwiY2FsbCIsIShLPUIubGVuZ3RoLDEpXSxKPXR5cGVvZiBCPT09InN0cmluZyI/QltiWzBdXSgiIik6QiwwKTtDPEs7QysrKWlmKEMgaW4gSiYmeltiWzFdXSh2b2lkIDAsSltDXSxDLEIpKXJldHVybiEwO3JldHVybiBiWzJdfSxrVj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihCLHope3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKEIseix2b2lkIDApfTpmdW5jdGlvbihCLHosSyl7aWYodHlwZW9mIEI9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIHohPT0ic3RyaW5nInx8ei5sZW5ndGghPTE/Ci0xOkIuaW5kZXhPZih6LDApO2ZvcihLPTA7SzxCLmxlbmd0aDtLKyspaWYoSyBpbiBCJiZCW0tdPT09eilyZXR1cm4gSztyZXR1cm4tMX0sRzM9ZnVuY3Rpb24oQix6KXtyZXR1cm4gWVs0NV0uY2FsbCh0aGlzLDE4LEIseil9LGtoPWZ1bmN0aW9uKCl7cmV0dXJuIGVbMTNdLmNhbGwodGhpcyw0KX0scjQ9QXJyYXkucHJvdG90eXBlLmZvckVhY2g/ZnVuY3Rpb24oQix6LEspe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoQix6LEspfTpmdW5jdGlvbihCLHosSyxKLEMsYil7Zm9yKGI9dHlwZW9mIEI9PT0oSj1CLmxlbmd0aCwic3RyaW5nIik/Qi5zcGxpdCgiIik6QixDPTA7QzxKO0MrKylDIGluIGImJnouY2FsbChLLGJbQ10sQyxCKX07CmZ1bmN0aW9uIGphKEIseil7Zm9yKHZhciBLPVswLDEsN10sSj1LWzFdO0o8YXJndW1lbnRzLmxlbmd0aDtKKyspe3ZhciBDPWFyZ3VtZW50c1tKXTtpZihZWzhdKEtbMl0sIm51bWJlciIsQykpe3ZhciBiPUMubGVuZ3RofHxLWzBdLEE9Qi5sZW5ndGh8fEtbMF07Zm9yKHZhciB2PUtbQi5sZW5ndGg9QStiLDBdO3Y8Yjt2KyspQltBK3ZdPUNbdl19ZWxzZSBCLnB1c2goQyl9fWZ1bmN0aW9uIFc3KEIseixLLEope0FycmF5LnByb3RvdHlwZS5zcGxpY2UuYXBwbHkoQixDUVooYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBDUVooQix6LEspe3ZhciBKPVsic2xpY2UiLCJwcm90b3R5cGUiLCJjYWxsIl07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8PTI/QXJyYXlbSlsxXV1bSlswXV1bSlsyXV0oQix6KTpBcnJheVtKWzFdXVtKWzBdXVtKWzJdXShCLHosSyl9CnZhciBBTT1mdW5jdGlvbihCKXtyZXR1cm4ga1s0Ml0uY2FsbCh0aGlzLDMsQil9LGVCPWZ1bmN0aW9uKEIpe3JldHVybiBZWzQ2XS5jYWxsKHRoaXMsMzYsQil9LGJ4bD0oV21bbzkoKV09ZnVuY3Rpb24oKXt9LGdbOF0oMTgsIk9wZXJhIikpLFc2PWZ1bmN0aW9uKCl7cmV0dXJuIEdbNV0uY2FsbCh0aGlzLDI3KX0sT2I9SFsyMl0oMTYsIk1TSUUiKSx4eD1EWzIwXSgzOSwiRWRnZSIpLGhYPURbMjBdKDExLCJHZWNrbyIpJiYhKERbMjBdKDE2LCJ3ZWJraXQiLEhbMzNdKDMwKS50b0xvd2VyQ2FzZSgpKSYmIURbMjBdKDM1LCJFZGdlIikpJiYhKERbMjBdKDEsIlRyaWRlbnQiKXx8RFsyMF0oNywiTVNJRSIpKSYmIURbMjBdKDEzLCJFZGdlIiksa2U9RFsyMF0oMzAsIndlYmtpdCIsSFszM10oMTcpLnRvTG93ZXJDYXNlKCkpJiYhRFsyMF0oMzcsIkVkZ2UiKSxCYz1rZSYmRFsyMF0oMywiTW9iaWxlIiksZHI9KHdmOCgpLEgpWzQ2XSg0MCksRDc9ZnVuY3Rpb24oKXtyZXR1cm4ga1s0MF0uY2FsbCh0aGlzLAoxMCl9LE80PUdbNDVdKDI3KSxzND1PWzhdKDU2KSxJMj1IWzIzXSgyLCJpUG9kIiwiaVBob25lIiksRmY9RFsyMF0oMTUsImlQYWQiKSxBTTM9RFsyMF0oNywiaVBvZCIpLGZsPXlbOF0oMTQsImlQb2QiKSxyaT1mdW5jdGlvbihCKXtyZXR1cm4gWVsxMF0uY2FsbCh0aGlzLDI1LEIpfSxxUT1mdW5jdGlvbigpe3JldHVybiBEWzM5XS5jYWxsKHRoaXMsMTcpfSxQZD0oKGZ1bmN0aW9uKEIseil7aWYoej1bImV4ZWMiLDMzLDI0XSxCPUhbelsxXV0oelsyXSksaFgpcmV0dXJuL3J2OihbXlwpO10rKShcKXw7KS9belswXV0oQik7aWYoeHgpcmV0dXJuL0VkZ2VcLyhbXGRcLl0rKS9belswXV0oQik7aWYoT2IpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspL1t6WzBdXShCKTtpZihrZSlyZXR1cm4vV2ViS2l0XC8oXFMrKS9belswXV0oQik7aWYoYnhsKXJldHVybi8oPzpWZXJzaW9uKVsgXC9dPyhcUyspL1t6WzBdXShCKX0oKSxPYikmJkdsW2htKCldJiZjQygpLGZ1bmN0aW9uKEIpe3JldHVybiBrWzI2XS5jYWxsKHRoaXMsCjIsQil9KSx6bj0oR2xbaG0oKV0mJk9iJiZHbFtobSgpXSYmY0MoKSxrKVsyM10oMTMsIkNyaU9TIiksdnNxPUdbMTBdKDMsIlNhZmFyaSIpJiYheVs4XSg2LCJpUG9kIikscHI9RHcoKSxvXz1oWHx8a2UscG49b198fCF2c3EmJnR5cGVvZiBHbC5hdG9iPT0iZnVuY3Rpb24iLFRHPW9ffHx0eXBlb2YgR2wuYnRvYT09ImZ1bmN0aW9uIixFMj1udWxsLHd2PVsxLDJdLGlMPSFPYiYmdHlwZW9mIGJ0b2E9PT0iZnVuY3Rpb24iLGVaPXR5cGVvZiBVaW50OEFycmF5IT09InVuZGVmaW5lZCIsVWQ9eyItIjp0YygpLF86bncoKSwiLiI6WFooKX0sUnIsZUo9e30sTEQ9ZnVuY3Rpb24oQix6LEspe3JldHVybiBZWzI2XS5jYWxsKHRoaXMsNCxCLHosSyl9LHdKPUtvKCksYzcsZXI9dm9pZCAwLEY2PWZ1bmN0aW9uKCl7cmV0dXJuIG1bMjRdLmNhbGwodGhpcywxNyl9LExHPTAsaTQ9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1s0Nl0uY2FsbCh0aGlzLDE2LHosQil9LGVFPTIsQlQ9MixEYj0hMSxnZD0KITAsTjA9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woKT09PSJzeW1ib2wiLExsLFRQTj12ZkQoKSxqY1k9KChMbD1HWzQ5XSgxNyx2b2lkIDAsVFBOLCEwKSxoSkQpKCkscVkpKCksU1A9R1s0OV0oNDgsamNZKSxwYng9KFB5KCksZVlNKCkpLE9kPUdbNDldKDIwLHBieCksWEw9KFdPKCksZ1coKSxmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4ga1sxM10uY2FsbCh0aGlzLDY0LHosSixLLEIpfSksTWE9KCgoSDQoKSxBaikoKSxtNSkoKSxHWzQ5XSgxOSxTeW1ib2woKSkpLFJfLFFjOD0oZ1koKSxGWSgpKSxOXz0oUl89R1s0OV0oMjMsUWM4KSxmdW5jdGlvbihCLHope3JldHVybiBEWzQ0XS5jYWxsKHRoaXMsNDgsQix6KX0pLG5zOD0oZ1koKSxTbSgpKSxBZj1HWzQ5XSg1MCxuczgpLEdPLHZOPWZ1bmN0aW9uKEIpe3JldHVybiBZWzI1XS5jYWxsKHRoaXMsMjQsQil9LFp4cT0oaEgoKSxNQSkoKSx6aD0oR089R1s0OV0oMjEsWnhxKSxmdW5jdGlvbihCKXtyZXR1cm4gZ1s0M10uY2FsbCh0aGlzLAo0OCxCKX0pLFdZaD0oVGt3KCksakEoKSksenE9R1s0OV0oMTYsV1loKSxnc2w9UnEoKSxqVD1HWzQ5XSg0OSwiS28iLGdzbCwhMCksVVksZF89KHRXdygpLGZ1bmN0aW9uKCl7cmV0dXJuIGdbNDVdLmNhbGwodGhpcyw0KX0pLE5QOD1lUigpLHJnPShVWT1HWzQ5XSgxOCxOUDgpLHZBcSgpLEdbNDldKDIyKSksWEc9KCgoQ3UoKSxDdSkoKSx4RCgpLHhEKCkseWEpKE1hdGgubG9nMihoWS5hcHBseShudWxsLGVbMzNdKDI4LE9iamVjdC52YWx1ZXMoe3A5OjEsTnk6MixPZTo0LFNkOjgsSVU6MTYsRFE6MzIsb1U6NjQsdUE6MTI4LEI2OjI1NixhXzo1MTIsSXI6MTAyNCxvTToyMDQ4LHlROjQwOTYsemw6ODE5Mn0pKSkpKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyksQSQ9TjA/TGw6ImdmIixRUD0oa1szOF0oNzksenMsNyksVEopKHpzKSxuaD17fSxjTD17fSxPeDg9dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJnR5cGVvZiBTeW1ib2wuaGFzSW5zdGFuY2UhPSJ1bmRlZmluZWQiLEdrPQpUSih7fSksQXU9VEooe30pLGw9e30seDdEPSh6MCgpLHg3RHx8e2lkOnlZRygpfSksJFg9bVszNl0oMzcsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09Im51bWJlciJ9LHlQKCkpLGV0PWZ1bmN0aW9uKEIseil7cmV0dXJuIFlbMjZdLmNhbGwodGhpcywxLEIseil9LFBzPShtWzM2XSgxMSxmdW5jdGlvbihCKXtyZXR1cm4gTnVtYmVyLmlzU2FmZUludGVnZXIoQil9LGV2KCkpLG1bMzZdKDQwLGZ1bmN0aW9uKEIpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEIpfSxpUjgoKSksbVszNl0oMTAsZnVuY3Rpb24oQil7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShCKX0sVzM4KCkpLG0pWzM2XSg0NyxmdW5jdGlvbihCKXtyZXR1cm4gdHlwZW9mIEI9PT0ic3RyaW5nIn0sY2YoKSkscWM9KG1bMzZdKDQzLGZ1bmN0aW9uKEIpe3JldHVybiBCLnRyaW0oKSE9PSIifSxRVygpKSxtWzM2XSgzOCxmdW5jdGlvbihCKXtyZXR1cm4gQi50cmltKCk9PT0iIn0sanBZKCkpLG0pWzM2XSgzOSxmdW5jdGlvbihCKXtyZXR1cm4gdHlwZW9mIEI9PT0KImJvb2xlYW4ifSx1bSgpKSxEN009bVszNl0oMTAsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09ImJpZ2ludCJ9LFp5KCkpLGZLTT0oKG1bMzZdKDM5LGZ1bmN0aW9uKEIpe3JldHVybiBCPT09bnVsbH0sSjAoKSksbVszNl0oMTAsZnVuY3Rpb24oQil7cmV0dXJuIEI9PT12b2lkIDB9LENuKCkpLG1bMzZdKDE1LGZ1bmN0aW9uKEIpe3JldHVybiBCPT1udWxsfSxTOCgpKSxtKVszNl0oMzcsZnVuY3Rpb24oQil7cmV0dXJuIEIhPW51bGwmJnR5cGVvZiBCPT09Im9iamVjdCImJnR5cGVvZiBCLnRoZW49PT0iZnVuY3Rpb24ifSwkRSgpKSxtKVszNl0oNDEsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09ImZ1bmN0aW9uIn0sWiQoKSksd1M9KCgoKCgoKChtWzM2XSg0MyxmdW5jdGlvbihCKXtyZXR1cm4gZktNKEIpP0IudFk9PT0hMDohMX0saiQoKSksbSlbMzZdKDQxLGZ1bmN0aW9uKEIpe3JldHVybiFpc05hTihCKX0sd24oKSksbVszNl0oMzksZnVuY3Rpb24oQil7cmV0dXJuIEIuZ2xvYmFsfSwKTGQoKSksbVszNl0oMTUsZnVuY3Rpb24oQil7cmV0dXJuIEIuc3RpY2t5fSx0cygpKSxtKVszNl0oNDUsZnVuY3Rpb24oQil7cmV0dXJuISFCJiYodHlwZW9mIEI9PT0ib2JqZWN0Inx8dHlwZW9mIEI9PT0iZnVuY3Rpb24iKX0sWU4oKSksbVszNl0oMTEsZnVuY3Rpb24oKXtyZXR1cm4hMH0sZ0EoKSksbSlbMThdKDgxKSxtKVsxOF0oODApLG1bMjddKDY3KSxtKVsyN10oNjYpLGUpWzIxXSgxKSxlKVsyMV0oOCksZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gUlsyOV0uY2FsbCh0aGlzLDY3LHosSixCLEMsSyl9KTtmdW5jdGlvbiBvc1koKXt2YXIgQj1HMi5hcHBseSgwLGFyZ3VtZW50cyk7cmV0dXJuIG1bMzZdKDQwLGZ1bmN0aW9uKHope3JldHVybiBCLnNvbWUoZnVuY3Rpb24oSyl7cmV0dXJuIEsoeil9KX0pfQp2YXIgTFk4PUxZOHx8e2lkOkZLKCl9LEEzPXR5cGVvZiBHbC5CaWdJbnQ9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgR2wuQmlnSW50KDApPT09ImJpZ2ludCIsUkhZPVJIWXx8e2lkOmJzKCl9LHJNRz0oUWUucHJvdG90eXBlW1FlLnByb3RvdHlwZS52YWx1ZU9mPShRZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMudi50b1N0cmluZyhCKX0sZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiQ29udmVydCBKU0JJIGluc3RhbmNlcyB0byBuYXRpdmUgbnVtYmVycyB1c2luZyBgdG9OdW1iZXJgLiIpO30pLFN5bWJvbC50b1ByaW1pdGl2ZV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52fSxyTUd8fHtpZDpFZSgpfSksVDI9bVszNl0oNDUsZnVuY3Rpb24oQil7cmV0dXJuIEEzP0Q3TShCKTpQcyhCKSYmL14oPzotP1sxLTldXGQqfDApJC8udGVzdChCKX0senYoKSksajc9bVszNl0oMTEsZnVuY3Rpb24oQix6KXtyZXR1cm4oej1bMCwyMSwzNV0sQTMpP0I+PVY3bCYmQjw9CkcyRzpCW3pbMF1dPT09Ii0iP0hbelsyXV0oelsxXSx6WzBdLEIsSHgwKTpIW3pbMl1dKDM3LHpbMF0sQixlSGgpfSx2JCgpKSxIeDA9TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIudG9TdHJpbmcoKSxWN2w9QTM/QmlnSW50KE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKTp2b2lkIDAsZUhoPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLnRvU3RyaW5nKCksRzJHPUEzP0JpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik6dm9pZCAwLFZWPShtWzM2XSgzOCxmdW5jdGlvbihCLHope3JldHVybiB6PVs5LDM1LDBdLEEzP0I+PVBRMCYmQjw9JDdNOkJbelsyXV09PT0iLSI/SFt6WzFdXSh6WzBdLHpbMl0sQixWVik6SFt6WzFdXSg1LHpbMl0sQixHVyl9LFhpKCkpLGlzKCkpLFBRMD1BMz9CaWdJbnQoVlYpOnZvaWQgMCxHVz1BYigpLCQ3TT1BMz9CaWdJbnQoR1cpOnZvaWQgMCxxemg9KG1bMzZdKDE1LGZ1bmN0aW9uKEIpe3JldHVybiBBMz9CPj1xemgmJkI8PWl4MDpCWzBdPT09Ii0iPyExOgpIWzM1XSgxNywwLEIsSDEpfSxBbigpKSxBMyk/QmlnSW50KDApOnZvaWQgMCxIMT1JSSgpLGl4MD1BMz9CaWdJbnQoSDEpOnZvaWQgMDttZygpOwp2YXIgaUcsSGg9dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNsaWNlPT09ImZ1bmN0aW9uIix4Tz0wLE9PPTAseU1sPXlNbHx8e2lkOnM5WigpfSxGRT1OdW1iZXIuaXNGaW5pdGUsS3c9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzVWludE46dm9pZCAwLE51PU51bWJlci5pc1NhZmVJbnRlZ2VyLEQ0PXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwLFpmPU1hdGgudHJ1bmMsZnM9L1tceDAwLSBceDIyXHgyNy1ceDI5XHgzY1x4M2VcXFx4N2JceDdkXHg3Zlx4ODVceGEwXHUyMDI4XHUyMDI5XHVmZjAxXHVmZjAzXHVmZjA0XHVmZjA2LVx1ZmYwY1x1ZmYwZlx1ZmYxYVx1ZmYxYlx1ZmYxZFx1ZmYxZlx1ZmYyMFx1ZmYzYlx1ZmYzZF0vZyxEUz1mdW5jdGlvbihCKXtyZXR1cm4geVsxM10uY2FsbCh0aGlzLDM2LEIpfSxjUz1JSSgpLFlXPWNTLmxlbmd0aCxESz1pcygpLHhzPURLLmxlbmd0aCxvYz1BYigpLGZ4PW9jLmxlbmd0aCwKWE89e30sSkU9ZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBEWzIxXS5jYWxsKHRoaXMsNixCLEssSix6LEMsYil9LENGPWZ1bmN0aW9uKCl7cmV0dXJuIERbNDldLmNhbGwodGhpcywxMil9LHlqPWZ1bmN0aW9uKEIpe3JldHVybiBSWzI2XS5jYWxsKHRoaXMsMSxCKX07CmZ1bmN0aW9uIEE1KEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSl7aWYoZj0oYz0oVT0oTT1bbnVsbCwwLDFdLFsxLDFFMywyXSksSClbMTJdLmJpbmQobnVsbCw4KSxIKVswXS5iaW5kKG51bGwsMyksSy5sZW5ndGh8fEope2ZvcihkPU1bbj1NW1VbMF1dLFE9Sy5sZW5ndGgtTVtWPU1bVVswXV0sYj1NW1VbMF1dLFVbMl1dLFVbMF1dLFo9TVtVWzBdXTtRPj1NW1VbMF1dO1EtLSlMPUtbUV0sSiYmUT09PUsubGVuZ3RoLU1bVVsyXV0mJkw9PT1KfHwoYisrLEwhPU1bMF0mJm4rKyk7aWYoSilmb3IoeCBpbiBKKUM9K3gsaXNOYU4oQyl8fChkKz1ZWzQwXSgzMSwxMCxVWzFdLEMpLForKyxDPlYmJihWPUMpKTtmb3IoTj0oYT0ocD0ocj0oaD0oRT1CLGMoYixuKStmKFosVixkKSksbiksZCksViksSy5sZW5ndGgpLU1bVVsyXV0sdT1aO04+PU1bVVswXV07Ti0tKXY9S1tOXSx2PT1NWzBdfHxKJiZOPT09Sy5sZW5ndGgtTVtVWzJdXSYmCnY9PT1KfHwocT1OLXosUz1jKHEscikrZih1LGEscCksUzxoJiYoaD1TLEU9TVtVWzJdXStxKSx1Kyssci0tLHArPVlbNDBdKDM0LDEwLFVbMV0scSksYT1oWShhLHEpKTtpZih0PWMoTVtVWzBdXSxNW1VbMF1dKStmKHUsYSxwKSx0PGgmJihFPU1bVVsyXV0saD10KSxKKWZvcihBIGluIHI9bix1PVosYT1WLHA9ZCxKKVg9K0EsaXNOYU4oWCl8fFg+PTEwMjR8fCh1LS0scisrLHAtPUEubGVuZ3RoLFA9YyhYLHIpK2YodSxhLHApLFA8aCYmKEU9TVtVWzJdXStYLGg9UCkpO1c9RX1lbHNlIFc9TVtVWzJdXTtyZXR1cm4gV312YXIgb1Y9KEE1W1VZXT1NeixnWzI5XS5iaW5kKG51bGwsMSkpLGVQPVtdLE0wPWZ1bmN0aW9uKEIpe3JldHVybiBPWzRdLmNhbGwodGhpcyw3LEIpfTsKaWYoT3g4KXt2YXIgZVE9e307ekcoZ1szOV0uYmluZChudWxsLDE3KSwoZVFbU3ltYm9sLmhhc0luc3RhbmNlXT17dmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcih2b2lkIDApO30sY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9LGVRKSl9CnZhciBmdyxmeSxvRSxKTD1HWzMxXSg4MywwKSx1cj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIERbM10uY2FsbCh0aGlzLDcsQix6LEspfSxzSz0oT1s4XSg2LDMxLHlbNDJdLmJpbmQobnVsbCwxMikpLGZ1bmN0aW9uKEIpe3JldHVybiBIWzZdLmNhbGwodGhpcywyLEIpfSksZ1A9KE9bOF0oOCwoTjcucHJvdG90eXBlLmluaXQ9KChONy5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnY9dGhpcy5pfSxONy5wcm90b3R5cGUpLmNsZWFyPWZ1bmN0aW9uKEIseil7dGhpc1soKHRoaXNbQj1bbnVsbCwwLCEoej1bIk0iLCJTUiIsMV0sMSldLHpbMV1dPUJbMl0sdGhpcykuaT1CW3pbMl1dLHRoaXMpLnY9Qlt6WzJdXSx0aGlzLkE9QlsyXSx0aGlzLlg9Qlt6WzJdXSx6WzBdXT1CWzBdfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXt0aGlzW2I9KHRoaXMudUQ9KEE9WyJTUiIsMiwoQz1KPT09dm9pZCAwP3t9OkosMzUpXSxDLnVEPT09dm9pZCAwKT8hMTpDLnVELENbQVswXV09PT12b2lkIDA/CiExOkNbQVswXV0pLEFbMF1dPWIsQiYmUltBWzJdXShBWzFdLEFbMV0sdGhpcyxCLHosSyl9KSwzNyksa1szNl0uYmluZChudWxsLDIxKSksW10pLE1VPTAsZmc9KEpFLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbihCKXsoKChCPVsiWCIsImkiLCJBIl0sdGhpcykudi5yZXNldCgpLHRoaXMuTT0tMSx0aGlzW0JbMl1dPXRoaXMudi52LHRoaXMpW0JbMV1dPS0xLHRoaXMpW0JbMF1dPS0xfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBPWzIzXS5jYWxsKHRoaXMsMSxCLHosSyxKLEMpfSksYWM9W10sWXpNPVl6TXx8e2lkOk5FKCl9LHQ2LGtMLElGLFpDLGg2LGFiLG84PWZ1bmN0aW9uKCl7cmV0dXJuIEdbNl0uY2FsbCh0aGlzLDgpfSxVSCxNUCx3byx6Rj0oeFAucHJvdG90eXBlLmVuZD0oeFAucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYubGVuZ3RofSxmdW5jdGlvbihCKXtyZXR1cm4gdGhpcy52PShCPXRoaXMudixbXSksQn0pLGZ1bmN0aW9uKEIpe3JldHVybiBrWzE2XS5jYWxsKHRoaXMsCjEyLEIpfSksY01HPWNNR3x8e2lkOlFuKCl9LEQxPShOUygpLEltKCkseSlbMzldKDgzLG5kKCkpLFAxPShVQigpLHkpWzM5XSg1MSxPaDAoKSksJHg9eVszOV0oMzYsWUQoKSkscWI9eVszOV0oNTEsbXVaKCkpLGlXPXlbMzldKDM2LEhnOCgpKSxTeng9KHoxKCkseVszOV0oMTksUkpaKCkpKSxtN1o9eVszOV0oNjgsUF8oKSkseVY9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZVsyMF0uY2FsbCh0aGlzLDE2LEIseil9LFl4PXlbMzldKDExLGVHKCkpLGMxPXlbMzldKDc2LFNteCgpKSxsSzA9eVszOV0oNzUsUll3KCkpLEVzOD0oa2ROKCkseVszOV0oMTksc3BOKCkpKSxYYmg9eVszOV0oNjgsWlIzKCkpLFNRPXlbMzldKDEyLHh2KCkpLG1WPXlbMzldKDEyLGlYKCkpLGxXPXlbMzldKDExLFQ0KCkpLHV4Wj0oKEkzLnByb3RvdHlwZVtJMy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hVC50b1N0cmluZygpfSxqVF09bmgsSTMucHJvdG90eXBlKS50b0pTT049KEkzLnByb3RvdHlwZS55ZT0KZnVuY3Rpb24oQil7cmV0dXJuIGVOKE9bNDBdKDM2LHRoaXMsQikpfSxmdW5jdGlvbigpe3JldHVybiBPWzQwXSg2OCx0aGlzKX0pLHV4Wnx8e2lkOmludygpfSksSmU9SFsxOF0oOSx5WzZdLmJpbmQobnVsbCwzNCksZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKChiPVsxNiwhMSwhMF0sQi5NKSE9PTIpcmV0dXJuIGJbMV07cmV0dXJuIERbYlswXV0oNDgsMCx5WzQzXSg4LDEyOCxLLEoseiksQixDKSxiWzJdfSksaEU9SFsxOF0oMTcseVs2XS5iaW5kKG51bGwsNDYpLGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoYj1bNiwhMCwxNl0sQi5NKSE9PTIpcmV0dXJuITE7cmV0dXJuIERbYlsyXV0oNDAsMCx5WzQzXShiWzBdLDEyOCxLLEoseiksQixDKSxiWzFdfSksWnQ9U3ltYm9sKCksTFE9U3ltYm9sKCksdVQ9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMzhdLmNhbGwodGhpcyw2LEIpfSxSZj1TeW1ib2woKSxuUj1TeW1ib2woKSxUWj1mdW5jdGlvbihCKXtyZXR1cm4gWVs0OF0uY2FsbCh0aGlzLAoxMCxCKX0saDg9U3ltYm9sKCksSW8scGE9ZnVuY3Rpb24oKXtyZXR1cm4gR1szM10uY2FsbCh0aGlzLDUpfSxGUyxhS049KCh0aSgpLEhYKSgpLGFLTil8fHtpZDpSaCgpfSxoSGw9aEhsfHx7aWQ6dWEoKX07ZnVuY3Rpb24gZG0oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7cmV0dXJuIFJbMjFdLmNhbGwodGhpcyw1NyxCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKX0KdmFyIGQ3Mz1kNzN8fHtpZDpSRygpfSxFYj1HWzMxXSg4OSwwKSxrMnc9eVszNF0oNjYsbVYsZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKGI9WzcsKEE9WzQ3LDIxLDUxXSxudWxsKSwzXSx6KSE9YlsxXSl7aWYoeiBpbnN0YW5jZW9mIEkzKXtpZihKPXouVm0pQz1KKHopLEMhPWJbMV0mJkRbNDFdKEFbMl0sYlswXSxCLEssa1s0Ml0oNTUsMiwhMCxDKS5idWZmZXIpO2Vsc2UgbVtBWzBdXSgzMywxLEdPLGJbMl0sTUEoKSk7cmV0dXJufWlmKEFycmF5LmlzQXJyYXkoeikpe21bQVswXV0oMSwxLEdPLGJbMl0sTUEoKSk7cmV0dXJufX15W0FbMV1dKDExLEIseixLKX0sSFsxMl0uYmluZChudWxsLDI5KSksaG89ZnVuY3Rpb24oQil7cmV0dXJuIGVbMjddLmNhbGwodGhpcyw2MixCKX0sbFk9ZnVuY3Rpb24oKXtyZXR1cm4gT1szMF0uY2FsbCh0aGlzLDMpfSxYTj15WzM0XSg5NixTUSxtWzQ4XS5iaW5kKG51bGwsNCksZnVuY3Rpb24oQix6LEssSil7aWYoQi5NIT09KEo9WyExLCJ2IiwKMTA3NV0sMSkpcmV0dXJuIEpbMF07cmV0dXJuIShIWzI3XSgzLHosSyxSWzE4XSgzLEpbMl0sQltKWzFdXSkpLDApfSksdVc9eVszNF0oMzUsU1EsbVs0OF0uYmluZChudWxsLDUpLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQi5NIT09KEM9WyExLDI0LCEwXSwxKSlyZXR1cm4gQ1swXTtyZXR1cm4oeVsyOV0oQ1sxXSxKLEssUlsxOF0oMiwxMDc1LEIudikseiksQylbMl19KSxhXz15WzM0XSgyLFhiaCxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpeyhKPShDPSh2PVsiZ2V0VWludDMyIiwxNCw1XSxbITAsMCwxNl0pLERbdlsxXV0oODIseikpLEohPW51bGwpJiYoRFsyMl0oNzEsdlsyXSxCLEspLEE9Qi52LGI9aUd8fChpRz1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgpKSksYi5zZXRGbG9hdDMyKENbMV0sK0osQ1swXSkseE89Q1sxXSxPTz1iW3ZbMF1dKENbMV0sQ1swXSksZ1syN10oMTEsQ1syXSxBLE9PKSl9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKHY9ClsyNTUsODM4ODYwNywhMF0sUT1bMCwxLDJdLEIuTSE9PTUpcmV0dXJuITE7cmV0dXJuIHA9KEo9KEM9KGI9KEE9SFsyOF0oUVsxXSxRWzFdLEIudiksQT4+PjIzKSZ2W1FbMF1dLEEmdltRWzFdXSksKEE+PjMxKSpRWzJdKStRWzFdLGI9PXZbUVswXV0pP0M/TmFOOkoqSW5maW5pdHk6Yj09UVswXT9KKmZRKFFbMl0sLTE0OSkqQzpKKmZRKFFbMl0sYi0xNTApKihDK2ZRKFFbMl0sMjMpKSxIWzI3XShRWzFdLHosSyxwKSx2W1FbMl1dfSksaGI9eVszNF0oOTksWXgsSFs0XS5iaW5kKG51bGwsMTYpLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4gRFszM10oMTAsITEsITAsSyx6LEIpfSksZGc9eVszNF0oNjYsWXgsSFs0XS5iaW5kKG51bGwsMjQpLGZ1bmN0aW9uKEIseixLLEope3JldHVybiBrWzldKDQsITEsITAsSix6LEssQil9KSxreD15WzM0XSgyLFl4LEhbNF0uYmluZChudWxsLDMyKSxmdW5jdGlvbihCLHosSyl7cmV0dXJuIERbMzNdKDExLCExLCEwLEsseixCKX0pLHQ3bD1EWzRdKDYyLApZeCxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZihDPUdbOF0oNDAsMSwoQT1bMCwoYj1bMzIsImJpZ2ludCIsbnVsbF0sbnVsbCksNV0sZVszOV0uYmluZChBWzFdLDIzKSkseiwhMSksQyE9YlsyXSlmb3IoSj1BWzBdO0o8Qy5sZW5ndGg7SisrKVlbQVsyXV0oMjAsYltBWzBdXSxiWzFdLEssQ1tKXSxCKX0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBCLk0hPT0oYj1bNDcsMixudWxsXSwwKSYmQi5NIT09Mj9DPSExOihKPU9bMjJdKDMsYlsxXSx6LHpbQSRdfDAsSyksQi5NPT1iWzFdP09bYlswXV0oNCxIWzE2XS5iaW5kKGJbMl0sMSksQixKKTpKLnB1c2goSFsxNl0oNyxCLnYpKSxDPSEwKSxDfSksdGI9eVszNF0oMyxZeCxIWzRdLmJpbmQobnVsbCw0MCksZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihiPVs0LDE2LCEwXSxCLk0pIT09MD9KPSExOihDPUhbYlsxXV0oNSxCLnYpLEhbMjddKGJbMF0seixLLEM9PT1FYj92b2lkIDA6QyksSj1iWzJdKSxKfSksVWI9eVszNF0oMywKWXgsSFs0XS5iaW5kKG51bGwsNDgpLGZ1bmN0aW9uKEIseixLLEope3JldHVybiBrWzldKDUsITEsITAsSix6LEssQil9KSxrbj1mdW5jdGlvbihCKXtyZXR1cm4gT1s2XS5jYWxsKHRoaXMsMixCKX0sTWI9eVszNF0oOTgsYzEsbVsyNl0uYmluZChudWxsLDE3KSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIGI9WzMyLDgsNDBdLEIuTSE9PTA/Qz0hMTooeVsyOV0oYlsxXSxKLEssT1s0NV0oNDgsYlswXSxEW2JbMl1dLmJpbmQobnVsbCwxMyksQi52KSx6KSxDPSEwKSxDfSksd2c9eVszNF0oNjQsYzEsbVsyNl0uYmluZChudWxsLDIxKSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihDPVshMSwiTSIsMjddLEJbQ1sxXV0hPT0wKT9KPUNbMF06KEhbQ1syXV0oNSx6LEssT1s0NV0oNTQsMzIsRFs0MF0uYmluZChudWxsLDE1KSxCLnYpKSxKPSEwKSxKfSksVTdsPXlbMzRdKDY2LGMxLG1bMjZdLmJpbmQobnVsbCwzMyksZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBCLk0hPT0KKGI9WzMyLCExLDI3XSwwKT9DPWJbMV06KEo9T1s0NV0oNDksYlswXSxEWzQwXS5iaW5kKG51bGwsMTYpLEIudiksSFtiWzJdXSg0LHosSyxKPT09RWI/dm9pZCAwOkopLEM9ITApLEN9KSxJXz15WzM0XSg5OSxxYixHWzJdLmJpbmQobnVsbCw0KSxmdW5jdGlvbihCLHosSyxKKXtpZigoSj1bInYiLDI3LDE1XSxCLk0pIT09MClyZXR1cm4hMTtyZXR1cm4hKEhbSlsxXV0oMSx6LEssa1tKWzJdXSgzNSxCW0pbMF1dKSksMCl9KSxGTj1EWzRdKDYwLHFiLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEE9R1s4XSg0MiwoUT1bMTI4LChKPVswLDEsbnVsbF0sMiksMjJdLEopWzFdLERbOF0uYmluZChudWxsLDc0KSx6LCEwKSxBIT1KW1FbMV1dKWZvcihwPUpbMF07cDxBLmxlbmd0aDtwKyspQz1LLGI9Qix2PUFbcF0sdiE9SltRWzFdXSYmKGJOKHYpLERbUVsyXV0oNjQsSlswXSxiLEMpLGtbMTRdKDE2LFFbMF0sYi52LHYpKX0sRFsxOF0uYmluZChudWxsLDE3KSksQlo9RFs0XSg2MywKcWIsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZihiPUdbOF0oNDEsMSwodj1bbnVsbCwxNSw3NV0sQz1bMiwhMCwxMjhdLERbOF0uYmluZCh2WzBdLHZbMl0pKSx6LENbMV0pLGIhPXZbMF0mJmIubGVuZ3RoKXtmb3IoQT0oSj1IWzE5XSg0LENbMF0sSyxCKSwwKTtBPGIubGVuZ3RoO0ErKyliTihiW0FdKSxrWzE0XSgyNSxDWzJdLEIudixiW0FdKTtHW3ZbMV1dKDE4LDEyNyxCLEopfX0sRFsxOF0uYmluZChudWxsLDE5KSksc3U9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1s1XS5jYWxsKHRoaXMsOCxCLHopfSx6YT15WzM0XSgyLHFiLEdbMl0uYmluZChudWxsLDgpLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQz1bNDMsInYiLDE1XSxCLk0hPT0wKXJldHVybiExO3JldHVybiEoSj1rW0NbMl1dKENbMF0sQltDWzFdXSksSFsyN10oNCx6LEssSj09PTA/dm9pZCAwOkopLDApfSksTTdEPXlbMzRdKDk5LHFiLEdbMl0uYmluZChudWxsLDEyKSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKEJbQz0KWzQ3LCJNIiwhMF0sQ1sxXV0hPT0wKXJldHVybiExO3JldHVybih5WzI5XSg4MCxKLEssa1sxNV0oQ1swXSxCLnYpLHopLEMpWzJdfSksd2JsPXlbMzRdKDIsU3p4LGZ1bmN0aW9uKEIseixLLEosQyl7KEo9SFtDPVsidiIsMjIsMTRdLENbMl1dKDQ3LHopLEopIT1udWxsJiYoRFtDWzFdXSg3Myw1LEIsSyksZ1syN10oOSwxNixCW0NbMF1dLEopKX0sZnVuY3Rpb24oQix6LEssSil7aWYoQltKPVsxLDI4LCJNIl0sSlsyXV0hPT01KXJldHVybiExO3JldHVybiBIWzI3XShKWzBdLHosSyxIW0pbMV1dKEpbMF0sSlswXSxCLnYpKSwhMH0pLFVGPVsyLDMsNCw1LDYsOF0sS1g9eVszNF0oOTYsUDEseVsxMF0uYmluZChudWxsLDEyKSxmdW5jdGlvbihCLHosSyxKKXtpZigoSj1bMjcsITAsMl0sQikuTSE9PTApcmV0dXJuITE7cmV0dXJuIEhbSlswXV0oSlsyXSx6LEssUlsxN10oNzEsQi52KSksSlsxXX0pLElLOD15WzM0XSg5OCxQMSx5WzEwXS5iaW5kKG51bGwsMTMpLGZ1bmN0aW9uKEIsCnosSyxKLEMpe2lmKEJbQz1bMywiTSIsITBdLENbMV1dIT09MClyZXR1cm4hMTtyZXR1cm4gSj1SWzE3XSg0NyxCLnYpLEhbMjddKENbMF0seixLLEo9PT0hMT92b2lkIDA6SiksQ1syXX0pLEpHPXlbMzRdKDY0LFAxLHlbMTBdLmJpbmQobnVsbCwxNCksZnVuY3Rpb24oQix6LEssSixDKXtpZihCW0M9WyEwLDk1LCJNIl0sQ1syXV0hPT0wKXJldHVybiExO3JldHVybih5WzI5XSg4OCxKLEssUlsxN10oQ1sxXSxCLnYpLHopLEMpWzBdfSksQ1g9eVszNF0oNjQsJHgsa1s0OF0uYmluZChudWxsLDU2KSxmdW5jdGlvbihCLHosSyxKKXtpZihCLk0hPT0oSj1bMSwxMCwhMV0sMikpcmV0dXJuIEpbMl07cmV0dXJuIShIWzI3XShKWzBdLHosSyxnWzQyXSgxMSxKWzFdLEIpKSwwKX0pLGJCPXlbMzRdKDY0LCR4LGtbNDhdLmJpbmQobnVsbCw1OCksZnVuY3Rpb24oQix6LEssSixDKXtpZihDPVs0MiwhMSwxMF0sQi5NIT09MilyZXR1cm4gQ1sxXTtyZXR1cm4hKChKPWdbQ1swXV0oQ1syXSxDWzJdLApCKSxIKVsyN10oNSx6LEssSj09PSIiP3ZvaWQgMDpKKSwwKX0pLEFHPURbNF0oNjEsJHgsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZihBPUdbOF0oMzksMSxSWzQ3XS5iaW5kKG51bGwsKHY9WzY1LDAsKEo9W251bGwsMTAyNCw3XSwyKV0sdlswXSkpLHosITApLEEhPUpbdlsxXV0pZm9yKGI9dlsxXTtiPEEubGVuZ3RoO2IrKylDPUFbYl0sQyE9Slt2WzFdXSYmRFs0MV0oMzUsSlt2WzJdXSxCLEssa1szMV0oNCx2WzFdLEpbMV0sQykpfSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKChDPVswLDksMTBdLEIuTSkhPT0yKXJldHVybiExO3JldHVybiBKPWdbNDJdKDMsQ1syXSxCKSxPWzIyXShDWzFdLDIseix6W0EkXXxDWzBdLEspLnB1c2goSiksITB9KSx2Wj15WzM0XSgzLCR4LGtbNDhdLmJpbmQobnVsbCw2MCksZnVuY3Rpb24oQix6LEssSixDKXtpZihCLk0hPT0oQz1bMiwhMSwyOV0sMikpcmV0dXJuIENbMV07cmV0dXJuISh5W0NbMl1dKDcyLEosSyxnWzQyXShDWzBdLDEwLEIpLAp6KSwwKX0pLFRhLGo1PXZvaWQgMCxRaT0oVGE9KGo1PWo1PT09dm9pZCAwP0QxOmo1LG5ldyBCRChmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKHY9WzAsMSwxNl0sQXJyYXkuaXNBcnJheSh6KSl7Zm9yKGI9dlswXTtiPHoubGVuZ3RoO2IrKylnW3ZbMl1dKDIsQix6W2JdLEssSixDKTtBPXpbQSRdfHZbMF0sQSZ2WzFdfHxrWzM4XSg3Nyx6LEF8dlsxXSl9fSxqNSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChiPVsodj1bMiwxLCJwdXNoIl0sMiksITAsMF0sQi5NKSE9PTIpcmV0dXJuITE7cmV0dXJuKChBPWdbMjJdKDIxLHZbMV0sdm9pZCAwLEopLE9bMjJdKDI1LGJbMF0seix6W0EkXXxiW3ZbMF1dLEspKVt2WzJdXShBKSxEWzE2XSg4LGJbdlswXV0sQSxCLEMpLGIpW3ZbMV1dfSkpLGZ1bmN0aW9uKCl7dmFyIEI9WzIsMSwxMV0sej1bMywxLDBdLEs9RzIuYXBwbHkoeltCWzBdXSxhcmd1bWVudHMpLmZsYXQoSW5maW5pdHkpLEo9eVsyNl0oNCx6W0JbMF1dLEspO3JldHVybihKPQooSz1KLmZpbHRlcihmdW5jdGlvbihDKXtyZXR1cm4gbVsxXSgyMixDLDEpPT09N30pLmxlbmd0aCxlWzQ2XSgxMyx6WzBdLG1bQlsyXV0oMTUsMjU1LDE2LDQseltCWzFdXSxKKSxCWzBdKSksRClbMF0oQlswXSx6W0JbMV1dLDI1NSxCWzBdLHpbQlswXV0sSixLKX0pLHBYPUhbMThdKDEsZ1sxNl0uYmluZChudWxsLDEpLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEIuTSE9PShRPShBPVsxMjgsITAsMF0sWzM1LDM3LDQzXSksMikpcmV0dXJuITE7cmV0dXJuIHY9KFlbcD16W0EkXXxBWzJdLFFbMV1dKDUwLHAsSyxIW1FbMF1dKDI3LEFbMF0scCkseixiKSx5KVtRWzJdXSg3LEFbMF0sSyxKLHopLERbMTZdKDY0LEFbMl0sdixCLEMpLEFbMV19KSxRVD15WzM0XSg2NixtVix5WzIxXS5iaW5kKG51bGwsNiksZnVuY3Rpb24oQix6LEssSil7aWYoQlsoSj1bITEsIk0iLCEwXSxKKVsxXV0hPT0yKXJldHVybiBKWzBdO3JldHVybihIWzI3XSgyLHosSyxEWzQxXSgyMCwwLEIpKSwKSilbMl19KSxuWD1EWzRdKDU3LG1WLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZihBPUdbOF0oKHA9WzQyLCh2PVshMSw3LDBdLDEpLDldLDM4KSxwWzFdLHlbMTJdLmJpbmQobnVsbCxwWzJdKSx6LHZbMF0pLEEhPW51bGwpZm9yKGI9dlsyXTtiPEEubGVuZ3RoO2IrKylDPUssSj1BW2JdLEohPW51bGwmJkRbNDFdKDMsdltwWzFdXSxCLEMsa1twWzBdXSg3LDIsITAsSikuYnVmZmVyKX0sZnVuY3Rpb24oQix6LEssSixDKXtpZihDPVsxNywwLCEwXSxCLk0hPT0yKXJldHVybiExO3JldHVybihKPURbNDFdKDE4LENbMV0sQiksT1syMl0oQ1swXSwyLHoseltBJF18Q1sxXSxLKS5wdXNoKEopLEMpWzJdfSksRllaPXlbMzRdKDY3LG1WLHlbMjFdLmJpbmQobnVsbCw4KSxIWzEyXS5iaW5kKG51bGwsMzApKSxaMz15WzM0XSgzNSxtVix5WzIxXS5iaW5kKG51bGwsMTApLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQi5NIT09KEM9WzE2LDI0LCExXSwyKSlyZXR1cm4gQ1syXTtyZXR1cm4hKHlbMjldKENbMV0sCkosSyxEWzQxXShDWzBdLDAsQikseiksMCl9KSxXWj15WzM0XSgzNSxpVyxlWzMyXS5iaW5kKG51bGwsOSksZnVuY3Rpb24oQix6LEssSil7aWYoKEo9WyJ2Iiw3MSwiTSJdLEIpW0pbMl1dIT09MClyZXR1cm4hMTtyZXR1cm4gSFsyN10oMyx6LEssWVsyNV0oSlsxXSxCW0pbMF1dKSksITB9KSxCdE09RFs0XSg1OCxpVyxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCh2PShiPVsyLDEsMTI3XSxbITAsMiwxNF0pLEE9R1s4XSgzNyxiWzFdLEhbdlsyXV0uYmluZChudWxsLDQwKSx6LHZbMF0pLEEhPW51bGwpJiZBLmxlbmd0aCl7Zm9yKEo9KEM9SFsxOV0oNixiWzBdLEssQiksMCk7SjxBLmxlbmd0aDtKKyspSFszMF0odlsxXSw3LEFbSl0sQi52KTtHWzE1XSg2NixiW3ZbMV1dLEIsQyl9fSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKEJbKEM9WyEwLDE5LCJNIl0sQylbMl1dIT09MCYmQltDWzJdXSE9PTIpcmV0dXJuITE7cmV0dXJuKEo9T1syMl0oQ1sxXSwyLHoseltBJF18MCxLKSwKQltDWzJdXSk9PTI/T1s0N10oOSxZWzI1XS5iaW5kKG51bGwsNCksQixKKTpKLnB1c2goWVsyNV0oNCxCLnYpKSxDWzBdfSksc1JOPXlbMzRdKDk4LGlXLGVbMzJdLmJpbmQobnVsbCwxMSksZnVuY3Rpb24oQix6LEssSixDKXtpZihCWyhDPVs4LCEwLCJNIl0sQylbMl1dIT09MClyZXR1cm4hMTtyZXR1cm4oeVsyOV0oQ1swXSxKLEssWVsyNV0oNyxCLnYpLHopLEMpWzFdfSksZyQ9eVszNF0oNjcsbFcsa1swXS5iaW5kKG51bGwsMjIpLGZ1bmN0aW9uKEIseixLLEope2lmKEIuTSE9PShKPVsyNywidiIsNV0sMCkpcmV0dXJuITE7cmV0dXJuIShIW0pbMF1dKEpbMl0seixLLGtbMTVdKDM5LEJbSlsxXV0pKSwwKX0pLE45PURbNF0oNTcsbFcsZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoYj1HWzhdKDM2LChKPVtudWxsLChBPVswLDEyOCxudWxsXSwxKSwhMF0sSlsxXSksRFs4XS5iaW5kKEFbMl0sNzYpLHosSlsyXSksYiE9SltBWzBdXSlmb3IoQz1BWzBdO0M8Yi5sZW5ndGg7QysrKW1bMzVdKDQsCkFbMV0sSltBWzBdXSxLLEIsYltDXSl9LGtbMjldLmJpbmQobnVsbCw1NikpLHo0dz1EWzRdKDU5LGxXLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKHY9R1s4XSgzMiwoQz1bKFE9W251bGwsMCwxOF0sMTI4KSwxLG51bGxdLENbMV0pLERbOF0uYmluZChRWzBdLDc3KSx6LCEwKSx2IT1DWzJdJiZ2Lmxlbmd0aCl7Zm9yKEE9KGI9SFsxOV0oNSwyLEssQiksUVsxXSk7QTx2Lmxlbmd0aDtBKyspcD12W0FdLEo9Qi52LGJOKHApLGtbMTRdKFFbMl0sQ1tRWzFdXSxKLHApO0dbMTVdKDgyLDEyNyxCLGIpfX0sa1syOV0uYmluZChudWxsLDU3KSksT3U9eVszNF0oNjcsbFcsa1swXS5iaW5kKG51bGwsMjMpLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoKEM9WyExLCEwLCJ2Il0sQikuTSE9PTApcmV0dXJuIENbMF07cmV0dXJuIEo9a1sxNV0oMzcsQltDWzJdXSksSFsyN10oMix6LEssSj09PTA/dm9pZCAwOkopLENbMV19KSxLMDA9eVszNF0oMzUsbTdaLGZ1bmN0aW9uKEIseixLLApKLEMsYixBKXsoSj1EW2I9KEE9WzEsMjQsInYiXSxbMTYsMjU1LDhdKSw4XSg5Mix6KSxKIT1udWxsKSYmKERbMjJdKDYzLDUsQixLKSxDPUJbQVsyXV0sYk4oSiksQ1tBWzJdXS5wdXNoKEo+Pj4wJmJbQVswXV0pLENbQVsyXV0ucHVzaChKPj4+YlsyXSZiW0FbMF1dKSxDW0FbMl1dLnB1c2goSj4+PmJbMF0mYltBWzBdXSksQ1tBWzJdXS5wdXNoKEo+Pj5BWzFdJmJbQVswXV0pKX0sZnVuY3Rpb24oQix6LEssSixDKXtpZigoQz1bMjksITEsInYiXSxCKS5NIT09NSlyZXR1cm4gQ1sxXTtyZXR1cm4geVtDWzBdXSg3MixKLEssa1sxNV0oMiw0LEJbQ1syXV0pLHopLCEwfSkseFQ9eVszNF0oMyxFczgsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChDPWVbcD1bMTQsMCwoYj1bMTYsMCwzMl0sOSldLDM5XSg1NSx6KSxDKSE9bnVsbClzd2l0Y2goUls0MF0oNyxiW3BbMV1dLEMpLERbMjJdKDY1LDEsQixLKSx0eXBlb2YgQyl7Y2FzZSAibnVtYmVyIjpiTigoSj1CLnYsQykpLGtbMTJdKDEyLApiWzFdLEMpLFJbMzRdKDEsYltwWzFdXSxKLHhPLE9PKTticmVhaztjYXNlICJiaWdpbnQiOihBPURbMTNdKDkwLGJbMl0sc3MsQyxHW3BbMF1dLmJpbmQobnVsbCxwWzJdKSksUilbMzRdKDMsYltwWzFdXSxCLnYsQS52LEEuTSk7YnJlYWs7ZGVmYXVsdDp2PU9bMjVdKDExLGJbcFsxXV0sQyksUlszNF0oMixiW3BbMV1dLEIudix2LnYsdi5NKX19LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gQltwPVsiTSIsMjEsMV0scFswXV0hPT0xP0E9ITE6KEM9Qi52LEo9SFsyOF0oMTEscFsyXSxDKSx2PUhbMjhdKDkscFsyXSxDKSxiPURbMjRdKHBbMV0sSix2KSxIWzI3XSg0LHosSyxiKSxBPSEwKSxBfSksSkJEPXlbMzRdKDk2LGxLMCxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoSj1lWzM5XSg3MSwoVz0obj1bbnVsbCwxNiwzMl0sWyJhc1VpbnROIiwidiIsMTVdKSx6KSksSiE9blswXSkmJihSWzQwXSgzLG5bMV0sSiksSiE9blswXSkpc3dpdGNoKERbMjJdKDY3LAowLEIsSyksdHlwZW9mIEope2Nhc2UgIm51bWJlciI6KGI9KFo9KFE9KFo9KGJOKChBPUJbV1sxXV0sSikpLEopLFo8MCksZTcoWikqMiksa1szOV0oMjMsMCxaKSx2PXhPLE9PKSxRJiYoYj09MD92PT0wP3Y9Yj00Mjk0OTY3Mjk1Oih2LS0sYj00Mjk0OTY3Mjk1KTpiLS0pLHhPPXYsT089YixlKVsyOF0oNDEsT08seE8sQSk7YnJlYWs7Y2FzZSAiYmlnaW50IjplWzI4XShXW3hPPU51bWJlcihCaWdJbnRbV1tPTz0oQz1KPDxCaWdJbnQoMSleSj4+KHA9QltXWzFdXSxCaWdJbnQoNjMpKSxOdW1iZXIpKEJpZ0ludFtXWzBdXShuWzJdLEMpKSwwXV0oblsyXSxDPj5CaWdJbnQoblsyXSkpKSwyXSxPTyx4TyxwKTticmVhaztkZWZhdWx0OmtbMF0oNDgsMzEsblsxXSwxLDAsQltXWzFdXSxKKX19LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEM9WzIsMjcsMzldLEIuTSE9PTApP0o9ITE6KEhbQ1sxXV0oQ1swXSx6LEssWVtDWzJdXSgxOSwzMSwzMiwxLEIudikpLEo9ITApLEp9KSxDZkc9CkNmR3x8e2lkOlBOTigpfSxiQ009YkNNfHx7aWQ6SDMoKX0sdGU9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMTJdLmNhbGwodGhpcyw3LEIpfSxoUD0oUDAucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKCl7V20odGhpcyl9LGZ1bmN0aW9uKEIpe3JldHVybiBEWzQ1XS5jYWxsKHRoaXMsOCxCKX0pLEFCOD1BQjh8fHtpZDpiSzgoKX0sdmJZPXZiWXx8e2lkOnNRKCl9LFQ9STMsVHRZPVswLChPWzhdKDcsNSxPWzM4XS5iaW5kKG51bGwsNTkpKSxnJCldLEQzPVsoKChPWzIxXSg1LFN0LFQpLFN0LnByb3RvdHlwZSkuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiBlWzMyXSg1OCx0aGlzLDEpfSxTdC5wcm90b3R5cGUpLnNldFNlY29uZHM9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMThdKDE1LCEwLEIsMSx0aGlzKX0sMCksdGIsemFdLGpSOD1bMCxUYSxUdFksRDMsQ1gsS1gsLShTdC5wcm90b3R5cGUuVD1SWzQ4XSgxLEQzKSwyKSxnJF0sZlg9WygoT1syMV0oMixNcCxUKSxPKVs4XSgxMCwKNTQsSFsyMl0uYmluZChudWxsLDY3KSksMCksalI4LENYXSxwbE09KE1wLnByb3RvdHlwZS5UPVJbNDhdKDgsZlgpLHBsTXx8e2lkOktvTigpfSksb3M9T1IoKSxRUng9SUooKSxuYjM9WzAsUVQsblgsS1gsQ1hdLFJqPWZ1bmN0aW9uKEIpe3JldHVybiBlWzM3XS5jYWxsKHRoaXMsMzAsQil9LExYPSgoT1syMV0oNSx0UyxUKSx0UykucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKEIseil7aWYoQj1IW3o9WyJpc0FycmF5Iiw5Miw4OF0sNF0oelsxXSwyLHRoaXMpLEFycmF5W3pbMF1dKEIpfHxCIGluc3RhbmNlb2YgSTMpdGhyb3cgRXJyb3IoIkNhbm5vdCBhY2Nlc3MgdGhlIEFueS52YWx1ZSBmaWVsZCBvbiBBbnkgcHJvdG9zIGVuY29kZWQgdXNpbmcgdGhlIGpzcGIgZm9ybWF0LCBjYWxsIHVucGFja0pzcGIgaW5zdGVhZCIpO3JldHVybiBrWzI5XSh6WzJdLG51bGwsMix0aGlzKX0sWzAsYkIsazJ3XSksWkN3PSh0Uy5wcm90b3R5cGUuVD1SWzQ4XSg1LExYKSxaQ3d8fHtpZDpWWDgoKX0pLApBeD0oKCgoeXUoKSxYN2wpKCksYU0ucHJvdG90eXBlKS5jdG9yPWZ1bmN0aW9uKEIpe3JldHVybiB0eXBlb2YgQj09PSJib29sZWFuIj9COnRoaXMuZGVmYXVsdFZhbHVlfSxPKVsyMV0oNixNSCxUKSxmdW5jdGlvbigpe3JldHVybiB5WzE5XS5jYWxsKHRoaXMsMyl9KSxScz1bMCx3dix2WixaM10sciQ9KChNSC5wcm90b3R5cGUuVD1SWzQ4XSgxLFJzKSxPKVsyMV0oNixrUCxUKSxbMCxVRixreCxVYixKRyx1Vyx2WixwWCxMWCxDWCxwWCxSc10pLFcwRz1bKGtQLnByb3RvdHlwZS5UPVJbNDhdKDgsciQpLDApLENYXSxWVD1bMCwoT1syMV0oMyx1RCxUKSxXMEcpLFRhLHIkLFFULC0xXSxkdj0oT1syMV0oNCxkTSwodUQucHJvdG90eXBlLlQ9KHVELnByb3RvdHlwZS56bz1mdW5jdGlvbigpe3JldHVybiBrWzI5XSg4OSxudWxsLDMsdGhpcyl9LFIpWzQ4XSg4LFZUKSxUKSksZVszNV0oNTYsbnVsbCxkTSkpLEdhPVswLFRhLFZUXSxYYz1IWzEyXSgzLDEwMCwoZE0ucHJvdG90eXBlLlQ9ClJbNDhdKDQsR2EpLGRNKSxHYSksZ2JOPWdiTnx8e2lkOkdKTSgpfSxoUz1hUCgpLE50eD1OdHh8fHtpZDpEcVooKX0sT1k9Z1sxMV0oNTUsKCgoKGV0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oQil7cmV0dXJuIEI9PW51bGw/ITE6dGhpcy5NeD09Qi5NeCYmdGhpcy5oPT1CLmh9LChldC5wcm90b3R5cGUuYWRkPShGPWV0LnByb3RvdHlwZSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuIGdbbj0oYj0oSj0oUT0oKHo9dGhpcy5oJihBPXRoaXMuaD4+PihLPSh2PShaPVsoQz1bMTYsNjU1MzVdLDEpLDU2LCJNeCJdLCh0aGlzW1pbMl1dJkNbWlswXV0pKyhCW1pbMl1dJkNbWlswXV0pKSxwPUJbWlsyXV0+Pj5DWzBdLHRoaXNbWlsyXV0+Pj5DWzBdKSxDWzBdKSxDW1pbMF1dKSx2KT4+PkNbMF0pKyhLK3ApLEIuaCkmQ1taWzBdXSxCLmg+Pj5DWzBdKSxRPj4+Q1swXSksbis9eitKLDExXShaWzFdLCgobj4+PkNbMF0pKyhBK2IpJkNbWlswXV0pPDxDWzBdfApuJkNbWlswXV0sKFEmQ1taWzBdXSk8PENbMF18diZDW1pbMF1dKX0pLGV0LnByb3RvdHlwZSkudG9TdHJpbmc9KChldC5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbihCLHope3JldHVybiB6PVsiTXgiLCJoIiwwXSx0aGlzW3pbMV1dPT1CW3pbMV1dP3RoaXNbelswXV09PUJbelswXV0/MDp0aGlzW3pbMF1dPj4+elsyXT5CW3pbMF1dPj4+elsyXT8xOi0xOnRoaXNbelsxXV0+Qlt6WzFdXT8xOi0xfSxldC5wcm90b3R5cGUpLmlzU2FmZUludGVnZXI9ZnVuY3Rpb24oQix6KXtyZXR1cm4gQj0oej1bImgiLDIxLDBdLHRoaXNbelswXV0+PnpbMV0pLEI9PXpbMl18fEI9PS0xJiYhKHRoaXMuTXg9PXpbMl0mJnRoaXNbelswXV09PS0yMDk3MTUyKX0sZXQucHJvdG90eXBlLkVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTXg9PTAmJnRoaXMuaD09MH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigobj1bImRpdiIsMSwoej1CfHwxMCxiPVsiIiwwLDM2XSwibXVsdGlwbHkiKV0sCnopPDJ8fGJbMl08eil0aHJvdyBFcnJvcigicmFkaXggb3V0IG9mIHJhbmdlOiAiK3opO2lmKHRoaXMuaXNTYWZlSW50ZWdlcigpKXJldHVybiBwPURbMzhdKDIwLGJbblsxXV0sdGhpcyksej09MTA/YlswXStwOnAudG9TdHJpbmcoeik7cmV0dXJuKCh2PSgoSj0odj0oQT0oSz0oUT1mUSgoQz0xNC0oej4+MikseiksQyksZylbMTFdKDYxLFEvNDI5NDk2NzI5NixRKSx0aGlzW25bMF1dKEspKSxlNyhEWzM4XSgxOCxiW25bMV1dLHlbMl0oOTQsQVtuWzJdXShLKSx0aGlzKSkpKSx6PT0xMD9iWzBdK3Y6di50b1N0cmluZyh6KSksSi5sZW5ndGg8QykmJihKPSIwMDAwMDAwMDAwMDAwIi5zbGljZShKLmxlbmd0aC1DKStKKSxEWzM4XSgyMCxiW25bMV1dLEEpKSx6PT0xMCk/djp2LnRvU3RyaW5nKHopKStKfSksRikubXVsdGlwbHk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKEs9KHg9WzEsMCwiaCJdLFs2NTUzNSwxNl0pLHRoaXMuRWQoKSlyZXR1cm4gdGhpczsKaWYoQi5FZCgpKXJldHVybiBCO3JldHVybiBnWzExXSg1OCwoQT0oej0oej0oQT0oej0oVz0oKFc9KFo9KGI9KEo9Qi5NeD4+PktbeFswXV0sUT1CW3hbMl1dPj4+S1tDPXRoaXMuTXgmKG49dGhpc1t4WzJdXSZLW3hbcD10aGlzLk14Pj4+S1t4WzBdXSwxXV0sS1t4WzFdXSksKHY9dGhpc1t4WzJdXT4+PktbeFswXV0seClbMF1dLE49Qlt4WzJdXSZLW3hbMV1dLEIpLk14JktbeFsxXV0sQykqYiwoWj4+PktbeFswXV0pK3AqYiksej1XPj4+S1t4WzBdXSxXKSZLW3hbMV1dKStDKkoseisoVz4+PktbeFswXV0pKStuKmIseik+Pj5LW3hbMF1dLHomS1t4WzFdXSkrcCpKLEErPXo+Pj5LW3hbMF1dLCh6JktbeFsxXV0pK0MqTiksQSkrKHo+Pj5LW3hbMF1dKSsodipiK24qSitwKk4rQypRKSZLW3hbMV1dLEE8PEtbeFswXV18eiZLW3hbMV1dKSwoVyZLW3hbMV1dKTw8S1t4WzBdXXxaJktbeFsxXV0pfSxGKS5kaXY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoQz0KWzQ4LDEsKE49WyJoIiwiZGl2Iiw2M10sMCldLEIpLkVkKCkpdGhyb3cgRXJyb3IoImRpdmlzaW9uIGJ5IHplcm8iKTtpZih0aGlzW05bMF1dPENbMl0pe2lmKHRoaXMuZXF1YWxzKE56KSl7aWYoQi5lcXVhbHMoV3opfHxCLmVxdWFscyhIWikpcmV0dXJuIE56O2lmKEIuZXF1YWxzKE56KSlyZXR1cm4gV3o7aWYoej0obj0oQT10aGlzW05bMF1dLGdbMTFdKE5bMl0sQT4+Q1sxXSx0aGlzLk14Pj4+Q1sxXXxBPDwzMSkpLG4pW05bMV1dKEIpLnNoaWZ0TGVmdChDWzFdKSx6LmVxdWFscyhPWSkpcmV0dXJuIEJbTlswXV08Q1syXT9XejpIWjtyZXR1cm4oVz15WzJdKDk1LEIubXVsdGlwbHkoeiksdGhpcykseikuYWRkKFdbTlsxXV0oQikpfXJldHVybiBCW05bMF1dPENbMl0/bVsyNF0oMyx0aGlzKVtOWzFdXShtWzI0XSg1LEIpKTptWzI0XSg2LG1bMjRdKDQsdGhpcylbTlsxXV0oQikpfWlmKHRoaXMuRWQoKSlyZXR1cm4gT1k7aWYoQltOWzBdXTxDWzJdKXJldHVybiBCLmVxdWFscyhOeik/Ck9ZOm1bMjRdKDMsdGhpc1tOWzFdXShtWzI0XSg3LEIpKSk7Zm9yKEs9T1ksUT10aGlzO1EuY29tcGFyZShCKT49Q1syXTspe2ZvcihaPShiPShKPSh2PWhZKENbMV0sYk4oRFszOF0oMjEsQ1syXSxRKS9EWzM4XSgyMixDWzJdLEIpKSkscD1kMChZQyh2KS9NYXRoLkxOMikscDw9Q1swXT8xOmZRKDIscC1DWzBdKSksT1syNl0oNjYsdikpLGIpLm11bHRpcGx5KEIpO1pbTlswXV08Q1syXXx8Wi5jb21wYXJlKFEpPkNbMl07KXYtPUosYj1PWzI2XSg1MCx2KSxaPWIubXVsdGlwbHkoQik7UT0oSz0oYi5FZCgpJiYoYj1XeiksSy5hZGQoYikpLHlbMl0oOTEsWixRKSl9cmV0dXJuIEt9LEYpLmFuZD1mdW5jdGlvbihCLHope3JldHVybih6PVsiTXgiLDU4LDExXSxnKVt6WzJdXSh6WzFdLHRoaXMuaCZCLmgsdGhpc1t6WzBdXSZCW3pbMF1dKX0sRi5vcj1mdW5jdGlvbihCLHope3JldHVybiBnW3o9WzYwLCJoIiwiTXgiXSwxMV0oelswXSx0aGlzW3pbMV1dfEJbelsxXV0sdGhpc1t6WzJdXXwKQlt6WzJdXSl9LEYueG9yPWZ1bmN0aW9uKEIseil7cmV0dXJuIGdbKHo9WzExLDYxLCJNeCJdLHopWzBdXSh6WzFdLHRoaXMuaF5CLmgsdGhpc1t6WzJdXV5CW3pbMl1dKX0sRi5zaGlmdExlZnQ9ZnVuY3Rpb24oQix6LEssSil7aWYoQiY9KHo9KEo9WzAsImgiLDU2XSxbMzIsMCw2M10pLHpbMl0pLEI9PXpbMV0pcmV0dXJuIHRoaXM7cmV0dXJuIEI8KEs9dGhpcy5NeCx6W0pbMF1dKT9nWzExXShKWzJdLHRoaXNbSlsxXV08PEJ8Sz4+PnpbSlswXV0tQixLPDxCKTpnWzExXSg1OSxLPDxCLXpbSlswXV0selsxXSl9LDApLDApLFd6PWdbMTFdKDU5LDAsMSksSFo9Z1sxMV0oNTUsLTEsLTEpLGdaPWdbMTFdKDU4LDIxNDc0ODM2NDcsNDI5NDk2NzI5NSksTno9Z1sxMV0oNjMsMjE0NzQ4MzY0OCwwKSxPQ3g9T0N4fHx7aWQ6dTI4KCl9LHhSbD0oKE9bOF0oOCw0NSxmdW5jdGlvbigpe3JldHVybiBHMi5hcHBseSgwLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKEIseil7cmV0dXJuIEhbOF0oNDQsCih6PVsxMiwxLDI2NjhdLHpbMl0pKShEW3pbMF1dKDM0LHpbMV0sQikpfSl9KSxlQykoKSx4Umx8fHtpZDpGVCgpfSksYVg9a1EoKSxEUjg9RFI4fHx7aWQ6WUcoKX0sZjQ4PWY0OHx8e2lkOm1QKCl9LFh4PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBPWzE0XS5jYWxsKHRoaXMsMSxCLHosSyxKKX0sb2IzPVswLGJCLFswLE91LEQzLE91LC0xLFswLGckXSxPdSwobWYucHJvdG90eXBlLnpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVmR9LC0xKV0sRllaXSxlNT0oKChPWzIxXSgxLFFELFQpLFFELnByb3RvdHlwZSkuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiBlWzMyXSg1Myx0aGlzLDEpfSxRRCkucHJvdG90eXBlLnNldFNlY29uZHM9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMThdKDIxLCEwLEIsMSx0aGlzKX0sWzAsdGIsemFdKSxMMFk9bmV3IGFNKCgoT1syMV0oNCx6RiwoUUQucHJvdG90eXBlLlQ9Uls0OF0oOSxlNSksVCkpLHpGKS5wcm90b3R5cGUuVD1SWzQ4XSg1LFswLAp6YSxiQixUYSxMWF0pLCIxMTcxMDAzMzQiKSksaGE9bmV3IGFNKCIxMTg5ODAwMjMiKSx3az1uZXcgYU0oIjExNTQ5MDQ0MiIpLEtGPW5ldyBhTSgiNDU3NTc5NTMiKTtmdW5jdGlvbiBmWShCKXtyZXR1cm4gR1s2XS5jYWxsKHRoaXMsMyxCKX1mWS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnY9KHRoaXMuWD0hMSx0aGlzLmkpfTsKdmFyIEp5LFI0TT1SNE18fHtpZDpaVSgpfSxyQjA9ckIwfHx7aWQ6elIoKX0sVnRNPVZ0TXx8e2lkOlBtTigpfSxHSEQ9R0hEfHx7aWQ6QkEoKX0sbW4scVI9Imdvb2cjaHRtbCIseTA9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsSEM4PUhDOHx8e2lkOmMkRCgpfSxlNHc9ZVszNF0oMTYsKEhsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYrIiJ9LFsiIl0pKSxQZjg9ZVsyOF0oMjUsWyJceDAwIl0sWyJcXDAiXSksJFJZPWVbMjhdKDU3LFsiXG4iXSxbIlxcbiJdKSxxMzg9ZVsyOF0oMjYsWyJceDAwIl0sWyJcXHUwMDAwIl0pLGlDMD1lWzM0XSg0OCxbIiJdKSx5QnE9ZVsyOF0oMjgsWyJceDAwIl0sWyJcXDAiXSksUFo9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIE9bMzFdLmNhbGwodGhpcywyNCxCLHosSyxKKX0sWTNaPWVbMjhdKDI0LFsiXG4iXSxbIlxcbiJdKSxjQk09ZVsyOF0oNTYsWyJceDAwIl0sWyJcXHUwMDAwIl0pLFMzRz1TM0d8fHtpZDpZMU4oKX0sCm1SMD0oKGdbMzFdKDE4LGZ1bmN0aW9uKEIpe3JldHVybiBCKGU0dyl9KXx8Z1szMV0oMTksZnVuY3Rpb24oQil7cmV0dXJuIEIoUGY4KX0pfHxnWzMxXSgxNyxmdW5jdGlvbihCKXtyZXR1cm4gQigkUlkpfSl8fGdbMzFdKDIwLGZ1bmN0aW9uKEIpe3JldHVybiBCKHEzOCl9KSxnWzE2XSgxNixpQzApJiZnWzE2XSgyMCx5QnEpKSYmZ1sxNl0oMTIsWTNaKSYmZ1sxNl0oOCxjQk0pLG1SMCl8fHtpZDpyYigpfSxsNHE9KCh4ay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52fSxPUk4oKSxlQTgpKCksbDRxfHx7aWQ6Z2UoKX0pLHQ4PWZ1bmN0aW9uKCl7cmV0dXJuIGdbMjRdLmNhbGwodGhpcywyNil9LEViOD1uZXcgRE4oZnVuY3Rpb24oQil7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChCKX0pLFhsdz0oaWcoKSxnWCgpLGVbNDVdKDQsIjoiLEsyKCkpKSx1X0Q9ZVs0NV0oNiwiOiIsdjAoKSksYTRxPWVbNDVdKDEyLCI6IixYbigpKSxoNHE9ZVs0NV0oMTQsCiI6Iix1eCgpKSxkUnE9ZVs0NV0oMjAsIjoiLE5tRCgpKSxPMD1bWGx3LCgoKCgoKFN6KCksZFgoKSxlaykoKSxtdSgpLGw2WikoKSxxOFopKCkscGZaKCksVHYpKCksRHVoKCksU2IpKCksWEYoKSxlOSgpLHVfRCksYTRxLGRScSxoNHEsRWI4XSxvQj1mdW5jdGlvbihCLHope3JldHVybiBtWzQ2XS5jYWxsKHRoaXMsNCxCLHopfSxrSDA9a0gwfHx7aWQ6YzA4KCl9LHR0dz10dHd8fHtpZDpXXygpfSxVUjg9VVI4fHx7aWQ6d1QoKX0sTXRHPU10R3x8e2lkOlp6KCl9LHdseD13bHh8fHtpZDpUNXEoKX0sSTRsPUk0bHx8e2lkOmJBKCl9LEYweD1GMHh8fHtpZDpSbCgpfSxCeVk9KEliLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYrIiJ9LEJ5WSl8fHtpZDpYSygpfSxzNEQ9KCgoKCgoU2coKSxDVCgpLEJ5KSgpLCROKSgpLFhwKSgpLFAzKSgpLFAkKSgpLFpzKCksdk8oKSxzNER8fHtpZDpXTDAoKX0pLHpacT16WnF8fHtpZDpCJCgpfSxLcFk9S3BZfHx7aWQ6UnkoKX0sCkpGOD1KRjh8fHtpZDpxcygpfSxDNk49KHliLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYrIiJ9LEM2Til8fHtpZDpZdCgpfSxidGw9YnRsfHx7aWQ6JHQoKX0sQUY4PUFGOHx8e2lkOnpCKCl9LHZrdz12a3d8fHtpZDpPJCgpfSxUeXc9VHl3fHx7aWQ6c2ooKX0sJFQ9KGVXLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZ9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIERbMTRdLmNhbGwodGhpcywxMCxCLHosSyxKLEMpfSksajQ4PWo0OHx8e2lkOkMyKCl9LHBJOD1wSTh8fHtpZDprZCgpfSxRNDA9UTQwfHx7aWQ6VjQoKX0sbmswPW5rMHx8e2lkOmpacSgpfSxadDg9WnQ4fHx7aWQ6Y08oKX0sV3AzPVdwM3x8e2lkOktkKCl9LGdreD1na3h8fHtpZDp5NCgpfSxOeUc9TnlHfHx7aWQ6YWl4KCl9LE90TT1PdE18fHtpZDpVNSgpfSx4ckQ9eHJEfHx7aWQ6ZkgoKX0sRHI4PURyOHx8e2lkOlM2KCl9LGZOOD1mTjh8fHtpZDpVcSgpfSwKb2s4PW9rOHx8e2lkOkM0KCl9LExwcT1McHF8fHtpZDpUSSgpfSxpTz0oKCgoKCgoKFpRRCgpLHM1KSgpLEhpKSgpLEwkKCksS0IpKCksWGooKSxhVykoKSxNbykoKSxHMSkoKSxPdygpLE42KSgpLGFEKCksUWZHKCksU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQpP2Z1bmN0aW9uKEIseil7cmV0dXJuIEIucmVwZWF0KHopfTpmdW5jdGlvbihCLHope3JldHVybiBBcnJheSh6KzEpLmpvaW4oQil9O0FlKCk7ZnVuY3Rpb24gamQoQil7cmV0dXJuIE9bMzldLmNhbGwodGhpcyw0LEIpfQp2YXIgcTk9VjMoKSxpQj1qdSgpLFpTPSgoKCgoKCgoRj1qZC5wcm90b3R5cGUsRikuaXNFbmFibGVkPWZ1bmN0aW9uKEIpe2lmKCEoQj1bITAsITEsImNvb2tpZUVuYWJsZWQiXSxHbC5uYXZpZ2F0b3IpW0JbMl1dKXJldHVybiBCWzFdO2lmKHRoaXMudi5jb29raWUpcmV0dXJuIEJbMF07aWYodGhpcy5zZXQocTksaUIse1ZOOjYwfSksdGhpcy5nZXQocTkpIT09aUIpcmV0dXJuIEJbMV07cmV0dXJuKHRoaXMucmVtb3ZlKHE5KSxCKVswXX0sRikuc2V0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKHR5cGVvZiBLPT09KE49WyhwPVsnIicsKEE9ITEsMCksJ0ludmFsaWQgY29va2llIG5hbWUgIiddLDFFMyksIjtleHBpcmVzPSIsInRlc3QiXSwib2JqZWN0IikmJihaPUsuc2FtZVNpdGUsQT1LLnNlY3VyZXx8ITEsQz1LLnBhdGh8fHZvaWQgMCxuPUsuZG9tYWlufHx2b2lkIDAsUT1LLlZOKSwvWzs9XHNdLylbTlsyXV0oQikpdGhyb3cgRXJyb3IocFsyXSsKQitwWzBdKTtpZigvWztcclxuXS9bTlsyXV0oeikpdGhyb3cgRXJyb3IoJ0ludmFsaWQgY29va2llIHZhbHVlICInK3orcFswXSk7KHY9KGI9KFE9PT12b2lkIDAmJihRPS0xKSxuPyI7ZG9tYWluPSIrbjoiIiksVz1DPyI7cGF0aD0iK0M6IiIsSj1BP3JIKCk6IiIsUTxwWzFdPyIiOlE9PXBbMV0/TlsxXSsobmV3IERhdGUoMTk3MCwxLDEpKS50b1VUQ1N0cmluZygpOk5bMV0rKG5ldyBEYXRlKERhdGUubm93KCkrUSpOWzBdKSkudG9VVENTdHJpbmcoKSksdGhpcy52KS5jb29raWU9QisiPSIreitiK1crditKKyhaIT1udWxsPyI7c2FtZXNpdGU9IitaOiIiKX0sRikuZ2V0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7Zm9yKEs9KEE9KEM9KHY9WzEsKEo9WzAsIiIsIj0iXSwibGFzdEluZGV4T2YiKSwyXSxCKStKW3ZbMl1dLCh0aGlzLnYuY29va2llfHxKW3ZbMF1dKS5zcGxpdChZRigpKSksSilbMF07SzxBLmxlbmd0aDtLKyspe2lmKChiPWE0KEFbS10pLGIpW3ZbMV1dKEMsSlswXSk9PQpKWzBdKXJldHVybiBiLnNsaWNlKEMubGVuZ3RoKTtpZihiPT1CKXJldHVybiBKW3ZbMF1dfXJldHVybiB6fSxGKS5yZW1vdmU9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKEo9dGhpcy5nZXQoQikhPT12b2lkIDAsdGhpcykuc2V0KEIsIiIse1ZOOjAscGF0aDp6LGRvbWFpbjpLfSksSn0sRikuRnA9ZnVuY3Rpb24oKXtyZXR1cm4gT1szNV0oNDgsMCx0aGlzKS52YWx1ZXN9LEYpLkRTPWZ1bmN0aW9uKCl7cmV0dXJuIE9bMzVdKDUwLDAsdGhpcykua2V5c30sRikuY2xlYXI9ZnVuY3Rpb24oQix6LEspe2Zvcih6PShCPU9bMzVdKChLPVswLCJyZW1vdmUiLDQ5XSxLKVsyXSxLWzBdLHRoaXMpLmtleXMsQikubGVuZ3RoLTE7ej49S1swXTt6LS0pdGhpc1tLWzFdXShCW3pdKX0seXMoKSx0QigpLEpnKCkpLHB3PW5ldyBqZCh0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpLG5rPSRxKCksWlE9SiROKCkscGs9UzEoKSx4cD1uMDMoKSxvWT13NzAoKSxmaz1qZygpLApRUT1yVSgpLERRPWw4RCgpLFRNPXBxRCgpLENrPU5nKCksdlA9QUsoKSxBeT1jcigpLGJjPXZyKCkseVQ9KE9bMjFdKDIsdWosVCksWzAsSV8sZyQsa3hdKSxrNz1bMSwoT1syMV0oKHVqLnByb3RvdHlwZS5UPVJbNDhdKDUseVQpLDMpLGRKLFQpLE9bOF0oNywxOCx5WzddLmJpbmQobnVsbCwzMikpLDIpLDMsMTVdLFlUPVswLGs3LEpHLC0xLFViLDExLEpHXSxjWj0oKE9bMjFdKDQsKGRKLnByb3RvdHlwZS5UPVJbNDhdKDgsWVQpLG5VKSxUKSxuVSkucHJvdG90eXBlLlQ9Uls0OF0oNCxwcCksT1syMV0oMyxROCxUKSwiY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpKSxHRz1bMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTNdLFM1PVswLEdHLHZaLGRnLHZaLGRnLFozLE1iLFozLE1iLHVXLC0xLHBYLEQzLC0xLHBYLHBwXSxtWD1bKE9bMjFdKDYsCmV1LChROC5wcm90b3R5cGUuVD1SWzQ4XSgxLFM1KSxUKSksMCksVGEsUzVdLGxCPVsoKE9bMjFdKDQsclosKGV1LnByb3RvdHlwZS5UPVJbNDhdKDgsbVgpLFQpKSxyWikucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gWVszNF0oNSxrWzFdKDEzLHZvaWQgMCx0aGlzLFZDLDEpLHRoaXMpfSwwKSxWQyx2WixKR10sRXU9WyhPWzIxXSg2LGhvLChyWi5wcm90b3R5cGUuVD1SWzQ4XSgxLGxCKSxUKSksMCksbEIsWVQsbVhdLFh6PVswLChPWzIxXSg1LGtYLChoby5wcm90b3R5cGUuVD1SWzQ4XSg4LEV1KSxUKSksbEIpLFlULG1YXSxTWj0oa1gucHJvdG90eXBlLlQ9Uls0OF0oOSxYeiksMzIpLEY0PShPWzIxXSgyLEhTLFQpLGZ1bmN0aW9uKEIpe3JldHVybiBlWzI0XS5jYWxsKHRoaXMsNjQsQil9KSx1Qj1bMCwxLFFULGhiLHhULDEsbVgsS1gsLTFdLGJkPShIUy5wcm90b3R5cGUuVD1SWzQ4XSgxLHVCKSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gSFszXS5jYWxsKHRoaXMsCjE3LEIseixLLEosQyxiLEEpfSksUlpoPVswLGckXSxteD1mdW5jdGlvbigpe3JldHVybiBlWzBdLmNhbGwodGhpcyw0KX0sckZEPVswLDIsbEIsWVQsbVgsLTFdLGFzPVswLChPWzIxXSgxLFZELFQpLGQ2KSx4VCxwWCxFdSxwWCxyRkQseVQsQ1gscFgsWHosMSxLWCxnJF0sTUc9KE9bMjFdKDEsKFZELnByb3RvdHlwZS5UPVJbNDhdKDEsYXMpLHJwKSxUKSxmdW5jdGlvbigpe3JldHVybiBSWzI0XS5jYWxsKHRoaXMsODgpfSksaEc9WzAsKCgoT1syMV0oNixITiwocnAucHJvdG90eXBlLlQ9Uls0OF0oNSxbMCxhcyxYTixreCxJXywtMV0pLFQpKSxITi5wcm90b3R5cGUpLlQ9Uls0OF0oNCxbMCxDWCxnJCxJXyxreCwtMV0pLE9bMjFdKDEsanAsVCksanApLnByb3RvdHlwZS5UPVJbNDhdKDkseHEpLE9bMjFdKDMsVHQsVCkscG0pLGhiLHBYLGFzLHBYLHhxLGckXSxkJD1bMCwoKChPW1R0LnByb3RvdHlwZS5UPVJbNDhdKDgsaEcpLDIxXSg2LHZrLFQpLE9bOF0oMTAsNTksZnVuY3Rpb24oQil7cmV0dXJuIFlbN10oNzcsCm51bGwsZnVuY3Rpb24oeil7cmV0dXJuIHouT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoQix3QigpKT8iIjpCLnZhbHVlfSl9KSx2ay5wcm90b3R5cGUpLlQ9Uls0OF0oNSxbMCxUYSxoR10pLE8pWzIxXSg1LGlyLFQpLENYKV0sa1Q9WzAsSV8sQ1gsLTEsMSxbLShPWzIxXSgyLChpci5wcm90b3R5cGUuVD1SWzQ4XSg1LGQkKSxPWCksVCksT1s4XSg5LDMzLG1bNDldLmJpbmQobnVsbCw0MCkpLE9bMjFdKDQsZ2ksVCksMSksWjcsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe0hbSj1bMTAwLDAsKHA9WzI2LDQsMV0sMSldLHBbMl1dKHBbMl0sSlswXSk7dHJ5e2ZvcihDPXt9LHY9Sy5mWDtEWzQ3XSgxNixKWzJdLHopJiZ6Lk0hPXBbMV07Qz17eVg6dm9pZCAwLGFPOnZvaWQgMH0paWYoei5pPT09MTEpQy5hTz0hMSxBPXouQSxDLnlYPXZvaWQgMCxZW3BbMV1dKDksMixKW3BbMl1dLEpbMl0scFsxXSx6LGZ1bmN0aW9uKFEpe3JldHVybiBmdW5jdGlvbihuLFosVyxOLHgsZixMLApyKXsoVz1LW3I9KFEueVg9bixbMTEsKHg9W251bGwsIm51bWJlciIsITBdLDEpLG51bGxdKSxRLnlYXSxXPT14WzBdJiYoTj12PT14WzBdP3ZvaWQgMDp2W1EueVhdKSYmKGY9eVszNl0oclswXSx4W3JbMV1dLE4pLEw9UlszNV0oMTIseFtyWzFdXSxMUSx5WzVdLmJpbmQoclsyXSwxNCksTixZWzVdLmJpbmQoclsyXSw1OSkpLnJlLFc9S1tRLnlYXT1mdW5jdGlvbihWLFAscSl7cmV0dXJuIGYoeVs0M10oOSwxMjgscSxMLFApLFYpfSksVykhPXhbMF0/VyhaLEIsUS55WCk6KFEuYU89eFsyXSxaLnYudj1aLnYuWCl9fShDKSksQy5hTyYma1twWzBdXShwWzFdLG51bGwsQy55WCxCLGdbMzRdKDM0LEpbcFsyXV0seixBKSk7ZWxzZSBrW3BbMF1dKDUsbnVsbCx6LlgsQixEWzI4XSg0MCxKWzJdLEpbcFsyXV0seikpO2lmKGI9eVsyMl0oMTcsQikpYi5sZD1LLndRW2g4XTtyZXR1cm4hMH1jYXRjaChRKXtpZihRIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7CnRocm93IFE7fWZpbmFsbHl7TVU+SltwWzJdXSYmTVUtLX19LGZ1bmN0aW9uKEIseil7cmV0dXJuIGZ1bmN0aW9uKEssSixDLGIsQSx2LHApe3Y9Z1szOF0oMSwoQT1bKHA9WzMsMCwzNF0sMiksMSwxMjddLEEpWzFdLEIsSiksdiE9bnVsbCYmKERbMjJdKDY0LHBbMF0sSyxBWzFdKSxEWzIyXSg2NixwWzFdLEssQVtwWzFdXSksa1sxNF0oMjQsMTI4LEsudixDKSxiPUhbMTldKHBbMF0sQVtwWzFdXSxwWzBdLEspLHoodixLKSxHWzE1XShwWzJdLEFbMl0sSyxiKSxEWzIyXSg2NSw0LEssQVsxXSkpfX1dLElfXSx0Rz1bMCwoT1gucHJvdG90eXBlLlQ9Uls0OF0oNSxrVCksa1QpXSxVdT0oT1syMV0oMSwoZ2kucHJvdG90eXBlLlQ9Uls0OF0oNCx0RyksUncpLFQpLFswLGhiXSksTTk9WzAsKE9bMjFdKDEsVkcsKFJ3LnByb3RvdHlwZS5UPVJbNDhdKDgsVXUpLFQpKSxUYSksdUJdLFZNMz1bMCwoT1tWRy5wcm90b3R5cGUuVD1SWzQ4XSg1LE05KSw4XSg4LDU3LGZ1bmN0aW9uKEIpe3JldHVybiBZWzddKDcyLApudWxsLGZ1bmN0aW9uKHosSyxKLEMpe2ZvcihDPShKPVsiY2FsbCIsIiIsNDldLEpbMl0pO0MhPTQ2Oyl7aWYoQz09MTgpcmV0dXJuIEs9ei5PYmplY3QuZ2V0UHJvdG90eXBlT2YoQiksWVszM10oMTksSlsxXSxLLHdCKCkpaW5zdGFuY2VvZiBWYj8iIjp6Lk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSyx3QigpKS5nZXRbSlswXV0oQik7aWYoQz09SlsyXSlDPXouT2JqZWN0Lmhhc093blByb3BlcnR5W0pbMF1dKEIsd0IoKSk/MTg6ODM7ZWxzZSBpZihDPT04MylyZXR1cm4gQi52YWx1ZX19KX0pLFJaaCldLHckPVswLChPWzIxXSg0LG93LFQpLHhUKV0sSDc9KE9bMjFdKDYsKG93LnByb3RvdHlwZS5UPVJbNDhdKDUsdyQpLERBKSxUKSxbXSksSXM9WzAsZmYscFgsdyQscFgsTTkscFgsVXUsMSxwWCxWTTNdLEZ6PWZ1bmN0aW9uKEIpe3JldHVybiBSWzI1XS5jYWxsKHRoaXMsMTYsQil9LEJHPVswLChPWzIxXSgxLChEQS5wcm90b3R5cGUuVD1SWzQ4XSg5LElzKSxXUyksClQpLE5LKSxoYixwWCxJcyxwWCx0RyxwWCxbMF1dLEdrTT1bMCxUYSxbMCxoYixRVCwoV1MucHJvdG90eXBlLlQ9Uls0OF0oNSxCRyksQUcpLGckLC0xXV0sc2Q9ZnVuY3Rpb24oKXtyZXR1cm4gWVsyMF0uY2FsbCh0aGlzLDMpfSxzVz1bMCxnJCwoT1syMV0oMSxxSyxUKSxHa00pXSwkWT1mdW5jdGlvbihCKXtyZXR1cm4geVsxOV0uY2FsbCh0aGlzLDksQil9LHpWPSgoKHFLLnByb3RvdHlwZS5UPVJbNDhdKDQsc1cpLE8pWzIxXSg2LE9nLFQpLE9nLnByb3RvdHlwZSkuVD1SWzQ4XSg5LFswLFRhLEJHLHNXLGQkXSksZnVuY3Rpb24oKXtyZXR1cm4gZVsxOV0uY2FsbCh0aGlzLDgpfSksb2k9KE9bMjFdKDUsaFIsVCksZnVuY3Rpb24oQil7cmV0dXJuIEdbMTZdLmNhbGwodGhpcywxLEIpfSksdkk9KChPWzIxXSgzLChoUi5wcm90b3R5cGUuVD1SWzQ4XSg5LFswLENYXSksdFIpLFQpLHRSLnByb3RvdHlwZSkuVD1SWzQ4XSg0LFswXSksT1s4XSgxMSw0MixmdW5jdGlvbihCLHosSyxKLApDLGIsQSx2LHAsUSxuLFope2ZvcihRPShwPVs2Miw3OCwxM10sbj04OCxwWzBdKTs7KXRyeXtpZihuPT1wWzJdKWJyZWFrO2Vsc2V7aWYobj09ODgpcmV0dXJuIFE9cFsxXSxBPW5ldyBJaSx2PUhbOF0oMzIsMjY2MikoSyhHWzE1XSgzNyksNDEpKSxiPUhbOF0oMTIsOTExNCkodigpLEMuam9pbigkMDgoKSkseXYoKSksa1sxNF0oNCwhMCxEWzhdLmJpbmQobnVsbCxwWzFdKSxiLDEsQSxnWzJdLmJpbmQobnVsbCwxNykpLEEueWUoKTtuPT0yOSYmKFE9cFswXSxuPXBbMl0pfX1jYXRjaChXKXtpZihRPT1wWzBdKXRocm93IFc7UT09cFsxXSYmKFo9VyxuPTI5KX19KSxmdW5jdGlvbihCLHope3ZhciBLPVszMywxMywzN10sSj1HMi5hcHBseSgyLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKEMpe3JldHVybiBPWzI1XSgxLEMpfSk7cmV0dXJuIFJbS1sxXV0oS1syXSxIWzI1XSg0MSxPWzldKDI3LDM4KSxCKSxbT1syNV0oNSx6KV0uY29uY2F0KGVbS1swXV0oMjAsSikpKX0pOwpPWzhdKDksNDYsWyJ1aWItIl0pO2Z1bmN0aW9uIHBRKCl7cmV0dXJuIFlbNDhdLmNhbGwodGhpcywzKX0KdmFyIEdkPSgkTS5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITB9LHBRLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5tfHwodGhpcy5tPSEwLHRoaXMuWigpKX0scFEucHJvdG90eXBlLm09ITEscFEucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT0oKCRNLnByb3RvdHlwZS52PWZ1bmN0aW9uKCl7dGhpcy5YPSEwfSxwUS5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXtpZih0aGlzLlApZm9yKDt0aGlzLlAubGVuZ3RoOyl0aGlzLlAuc2hpZnQoKSgpfSxmdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfSksITEpLG80PWZ1bmN0aW9uKEIseixLLEope2lmKEo9WyJ0ZXN0IiwhMSwiYWRkRXZlbnRMaXN0ZW5lciJdLCFHbFtKWzJdXXx8IU9iamVjdC5kZWZpbmVQcm9wZXJ0eSlyZXR1cm4gSlsxXTt6PShCPUpbMV0seFYpKHt9LGxpOCgpLHtnZXQ6ZnVuY3Rpb24oKXtCPSEwfX0pO3RyeXtLPWZ1bmN0aW9uKCl7fSxHbFtKWzJdXShKWzBdLApLLHopLEdsLnJlbW92ZUV2ZW50TGlzdGVuZXIoSlswXSxLLHopfWNhdGNoKEMpe31yZXR1cm4gQn0oKSx5Rz1MNCgpLHpmPSgoKG92KCksJHVoKSgpLE5FMCkoKSxDTTMoKSksS1o9d2woKSxrND1haygpLHRVPVVtMygpLEh0Tj12VygpLCRSPXpGWSgpLHl4PXgzKCksZVpEPU1QdygpLEJTPSgoZjcoKSxBMSgpLFc0KSgpLFFaaCgpKSxGOD1FNigpLHNYPVJXMCgpLEp0PUQwKCksQ1o9VE4oKSxmUz0oKCgoKCREKCksdDEoKSxSNykoKSxUOSkoKSxOZSkoKSxnSCkoKSxUVygpKSxQNmw9TE8oKSxLZj0oKGlBKCksdFlZKSgpLFpEKCksYU8oKSxPWzhdKDExLDI0LG1bOF0uYmluZChudWxsLDEpKSxFZVkoKSxmdW5jdGlvbihCLHope3JldHVybiBHWzQ2XS5jYWxsKHRoaXMsMTUsQix6KX0pLHZSPShlRk4oKSxMMygpLEhhKCksZnVuY3Rpb24oKXtyZXR1cm4gUlsyM10uY2FsbCh0aGlzLDU4KX0pLGd2PWRlKCksTkg9KG5QKCksRm8zKSgpLFV2PSgoazUoKSxvTCgpLGptKSgpLEpfKSgpLFlzPQooKCgoSk8oKSxwZSgpLGcwaCkoKSxvSCgpLGMwKSgpLHJmKSgpLGYwKSgpLG1LPSgoUzhNKCksTUIpKCksWEIoKSxIaHcoKSx1QygpKSxlRj0oKCgoKCgoKCgoKCgoUlEoKSxTZDApKCkseG8oKSxyWCgpLENtTSkoKSxBTFopKCksUjEpKCksRVQoKSxSVykoKSxwTCkoKSxJZSkoKSxHNCkoKSxVRykoKSx2dSkoKSxWbCgpLE1OTSgpLENPKCksJHYpKCksJHooKSxXTk4oKSxieCgpLEhBKCksc2Y4KCksQnIoKSxLOCgpLFl3KCksQ2MoKSxiRFopKCkseHcoKSksYmI9KGtCKCksZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEhbMzJdLmNhbGwodGhpcyw4OCxCLHosSyxKKX0pLCRyeD0oKCgoKChCSygpLHhkKSgpLEdCKSgpLHlNKSgpLEVuKCksQjkpKCksSDkpKCksaFk4KSgpLEV6PShZd00oKSxWMCgpKSxxMDg9KCgoKCgoKCgoKCgoKCgobU4wKCkscEZZKSgpLGRjKSgpLGVNKSgpLHRYTigpLGZBKCksb1ApKCksZ1dEKCksWUgoKSxxMikoKSxvZUQoKSxDTE0pKCksZWcoKSxqUigpLExOKCksCkgwKSgpLFlFKSgpLGc4KSgpLE1YKSgpLGh2KSgpLFZaKSgpLHRfKSgpLHYzKSgpLGZ1bmN0aW9uKEIseil7cmV0dXJuIERbMTRdLmNhbGwodGhpcywxLEIseil9KSxINj0oKCgoKCgoKCgoKCgoKCgocDc4KCksZmZOKCksWjVaKSgpLGRJKSgpLGF2KSgpLHJzKCksZTEpKCksaGMoKSxWVFopKCksemkoKSxQMkQoKSxkVTApKCksdjg4KCksZWIpKCksY1haKSgpLHkzKSgpLCRsKCksV1gpKCksUzF4KSgpLExjKCksRFUoKSxxOCgpLEpIKCksQlcoKSxVbigpLHM5KSgpLHplKSgpLEVPaCkoKSx3MSkoKSxLbFkoKSxZcSgpLFA4KCkpLElFPWN2KCksWF89WyhxMU4oKSwyKSwzLDQsNSw2XTsoKGdPWigpLFVNdygpLGlLTigpLEhDKSgpLFpaKCksVVQpKCk7ZnVuY3Rpb24gY2IoQix6LEspe3JldHVybiBnWzI1XS5jYWxsKHRoaXMsOSxCLHosSyl9CnZhciByNT0oKChIWzI0XSg4MyxjYiwkTSksYUwoKSxRb3goKSxHYikoKSxjYikucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSl7Qlt0aGlzLnN0YXRlPUIuc3RhdGUsdGhpcy5rZXk9KHRoaXMua2V5Q29kZT0oKCh0aGlzW0o9KEE9KHRoaXMuZXE9Qix0aGlzLmJ1dHRvbj1CLmJ1dHRvbix0aGlzLnRhcmdldD1CLnRhcmdldHx8Qi5zcmNFbGVtZW50LFsiZGVmYXVsdFByZXZlbnRlZCIsKEM9dGhpcy50eXBlPUIudHlwZSxLPVswLCIiXSwiTSIpLCh0aGlzLmFsdEtleT1CLmFsdEtleSwiY2hhbmdlZFRvdWNoZXMiKV0pLEJbQVt0aGlzLnBvaW50ZXJUeXBlPUIucG9pbnRlclR5cGUsMl1dKSYmQltBWzJdXS5sZW5ndGg/QltBWzJdXVtLWzBdXTpudWxsLHRoaXMudGltZVN0YW1wPUIudGltZVN0YW1wLEFbMV1dPXosYj0odGhpcy5tZXRhS2V5PUIubWV0YUtleSxCLnJlbGF0ZWRUYXJnZXQpLHRoaXMuY3RybEtleT1CLmN0cmxLZXksYil8fChDPT1rND9iPUIuZnJvbUVsZW1lbnQ6CkM9PXRVJiYoYj1CLnRvRWxlbWVudCkpLHRoaXMpLnJlbGF0ZWRUYXJnZXQ9YixKPyh0aGlzLmNsaWVudFg9Si5jbGllbnRYIT09dm9pZCAwP0ouY2xpZW50WDpKLnBhZ2VYLHRoaXMuY2xpZW50WT1KLmNsaWVudFkhPT12b2lkIDA/Si5jbGllbnRZOkoucGFnZVksdGhpcy5zY3JlZW5YPUouc2NyZWVuWHx8S1swXSx0aGlzLnNjcmVlblk9Si5zY3JlZW5ZfHxLWzBdKToodGhpcy5jbGllbnRYPUIuY2xpZW50WCE9PXZvaWQgMD9CLmNsaWVudFg6Qi5wYWdlWCx0aGlzLmNsaWVudFk9Qi5jbGllbnRZIT09dm9pZCAwP0IuY2xpZW50WTpCLnBhZ2VZLHRoaXMuc2NyZWVuWD1CLnNjcmVlblh8fEtbMF0sdGhpcy5zY3JlZW5ZPUIuc2NyZWVuWXx8S1swXSksdGhpcy5zaGlmdEtleT1CLnNoaWZ0S2V5LEIua2V5Q29kZXx8S1swXSksQi5rZXkpfHxLWzFdLHRoaXMuQT1kcj9CLm1ldGFLZXk6Qi5jdHJsS2V5LHRoaXMucG9pbnRlcklkPUIucG9pbnRlcklkfHxLWzBdLEFbMF1dJiZjYi5ZLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyl9LApjYi5wcm90b3R5cGUudj1mdW5jdGlvbihCKXsoY2IuWVtCPVsic3RvcFByb3BhZ2F0aW9uIiwiY2FsbCIsInYiXSxCWzJdXVtCWzFdXSh0aGlzKSx0aGlzKS5lcVtCWzBdXT90aGlzLmVxW0JbMF1dKCk6dGhpcy5lcS5jYW5jZWxCdWJibGU9ITB9LGNiLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbihCLHopeygoej1bImVxIiwicHJldmVudERlZmF1bHQiLCExXSxjYi5ZW3pbMV1dKS5jYWxsKHRoaXMpLEI9dGhpc1t6WzBdXSxCW3pbMV1dKT9CW3pbMV1dKCk6Qi5yZXR1cm5WYWx1ZT16WzJdfSwyNjU0NDM1NzYxKSxmOT0iY2xvc3VyZV9saXN0ZW5hYmxlXyIrKEFlKCkqMUU2fDApLFlmPTA7ZnVuY3Rpb24gaXQzKEIseixLLEosQyl7cmV0dXJuIFJbNV0uY2FsbCh0aGlzLDI0LEosQixDLHosSyl9CmZ1bmN0aW9uIEQ2KEIseil7Zm9yKHZhciBLLEosQz0xO0M8YXJndW1lbnRzLmxlbmd0aDtDKyspe2ZvcihKIGluIEs9YXJndW1lbnRzW0NdLEspQltKXT1LW0pdO2Zvcih2YXIgYj0wO2I8Y1oubGVuZ3RoO2IrKylKPWNaW2JdLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChLLEopJiYoQltKXT1LW0pdKX19ZnVuY3Rpb24gSkYoQil7dmFyIHo9WzAsMSwiYXBwbHkiXSxLPVsyLDEsIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIl0sSj1hcmd1bWVudHMubGVuZ3RoO2lmKEo9PUtbelsxXV0mJkFycmF5LmlzQXJyYXkoYXJndW1lbnRzW3pbMF1dKSlyZXR1cm4gSkZbelsyXV0obnVsbCxhcmd1bWVudHNbelswXV0pO3ZhciBDPXt9O2lmKEolS1t6WzBdXSl0aHJvdyBFcnJvcihLWzJdKTtmb3IodmFyIGI9elswXTtiPEo7Yis9S1t6WzBdXSlDW2FyZ3VtZW50c1tiXV09YXJndW1lbnRzW2IrS1t6WzFdXV07cmV0dXJuIEN9CmZ1bmN0aW9uIGZ0KEIpe3JldHVybiBnWzM2XS5jYWxsKHRoaXMsOCxCKX0KdmFyIHZmPShmdC5wcm90b3R5cGUucmVtb3ZlPShmdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihwPURbQT0odj0oUT1bInYiLCJwdXNoIiwiSXUiXSxCLnRvU3RyaW5nKCkpLHRoaXNbUVswXV1bdl0pLEF8fChBPXRoaXNbUVswXV1bdl09W10sdGhpcy5NKyspLDQyXSgzNCwwLHosSixBLEMpLHA+LTEpPyhiPUFbcF0sS3x8KGJbUVsyXV09ITEpKTooYj1uZXcgaXQzKHYsISFKLHosdGhpcy5zcmMsQyksYltRWzJdXT1LLEFbUVsxXV0oYikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKChDPVshMCwocD1bMSw0LCJ2Il0sdj1CLnRvU3RyaW5nKCksMCksITFdLHYpaW4gdGhpc1twWzJdXSkpcmV0dXJuIENbMl07cmV0dXJuIEE9RFs0Ml0oMzgsQ1twWzBdXSx6LChiPXRoaXNbcFsyXV1bdl0sSyksYixKKSxBPi0xPyhPWzEwXShwWzFdLENbMF0sYltBXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGIsQSxwWzBdKSwKYi5sZW5ndGg9PUNbcFswXV0mJihkZWxldGUgdGhpc1twWzJdXVt2XSx0aGlzLk0tLSksQ1swXSk6Q1syXX0pLCJjbG9zdXJlX2xtXyIrKEFlKCkqMUU2fDApKSxTYT1YcSgpLHVjPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybiBCW0E9WyJzcmMiLCJtQSIsMTZdLEFbMV1dP0s9ITA6KEo9bmV3IGNiKHosdGhpcyksYj1CLmxpc3RlbmVyLEM9Qi5kQnx8QltBWzBdXSxCLkl1JiZSW0FbMl1dKDQsQiksSz1iLmNhbGwoQyxKKSksS30sQVE9MCxVMD0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhBZSgpKjFFOT4+PjApLHdGPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4ga1syMF0uY2FsbCh0aGlzLDEsSyx6LEMsSixCLGIsQSx2LHApfTttWzMzXSgzLDAsZnVuY3Rpb24oQil7dWM9Qih1Yyl9KTtmdW5jdGlvbiB3RShCKXtyZXR1cm4gZVs0XS5jYWxsKHRoaXMsNCxCKX0KdmFyIHprPSgoKCgoKChIWzI0XSgyNix3RSxwUSksd0UucHJvdG90eXBlKS5aPWZ1bmN0aW9uKCl7d0UuWS5aLmNhbGwodGhpcyksR1syNV0oMTgsdGhpcyl9LHdFLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJFdmVudEhhbmRsZXIuaGFuZGxlRXZlbnQgbm90IGltcGxlbWVudGVkIik7fSxIKVsyNF0oOTEsTHIsJE0pLEhbMjRdKDU3LHBhLCRNKSxRbCkoKSxQUSgpLEZ2KSgpLEZXKSgpLHIxKCksQnIoKSxHTikoKSxtZSgpLGhzKCkpLEt0PWhsKCksUWE9R3ooKSxuYj1FVigpLEF0PXVpKCksQ3Q9Q04oKSxiNj1RdCgpLHlGOD15Rjh8fHtpZDpyZWwoKX0sWTBOPSgoKHFsaCgpLE9yKCksYmdNKSgpLHdTLnByb3RvdHlwZSkuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLnN0YXRlIT09MiYmdGhpcy5jaGFubmVsLmNsb3NlKCl9LHdTLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKEIseil7ej1CLnllKCksdGhpcy5jaGFubmVsLnNlbmQoeil9LFkwTil8fHtpZDplSmgoKX0sCnZHLGEyLGNGOD1uZXcgdWosUzB3PShhMj0odkc9a1s2XSgyNiwxLGNGOCw5KSxIKVswXSg0Nyx2RywyLDUpLFMwdyl8fHtpZDp2V0coKX0sbXJxPShKJC5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIpe3JldHVybiB0aGlzLnY9PT1CLnZ9LG1ycXx8e2lkOnhhWSgpfSksbE4zPShEVy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEIseixLKXt0aGlzW0I9dGhpc1soej0oSz1bIm1heCIsInYiLCJub3ciXSxEYXRlW0tbMl1dKCkpLEspWzFdXSsoei10aGlzLk0pLzNFNSxLWzFdXT49Qnx8KHRoaXNbS1sxXV09bDkoQix0aGlzW0tbMF1dKSx0aGlzLk09eil9LGxOMyl8fHtpZDpHZDgoKX0sRWtEPUVrRHx8e2lkOm9hKCl9LCRiPSgoT1syMV0oNSx4VyxFcnJvciksWFcoKSxPRDMpKCksQ0goKSwvXi0tLisvKSxLYj0odXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCLHope3JldHVybih6PVsiaSIsIlIiLCJBIl0sQlt6WzFdXT09dGhpc1t6WzFdXSYmQlt6WzJdXT09dGhpc1t6WzJdXSkmJgpCLk09PXRoaXMuTSYmQi5YPT10aGlzLlgmJkJbelswXV09PXRoaXNbelswXV0mJkIudj09dGhpcy52fSxWVykoKSxKNj1iUygpLGI5PWhOKCksejU9eHQoKSxzSD1ldygpLENiPWtEKCksRTk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybiBZWzE0XS5jYWxsKHRoaXMsMSxCLHosSyxKLEMsYixBLHYscCl9LGxPPWZ1bmN0aW9uKEIpe3JldHVybiBZWzRdLmNhbGwodGhpcywyNCxCKX0sWEk4PSgoKCgoKCgoRj0oKCgoKCgoKEY9KEhbMjRdKCgoKCgoKCgoKCgoKCgoRj0oKCgoKCh1ci5wcm90b3R5cGUuRWQ9ZnVuY3Rpb24oQix6KXtyZXR1cm4oQj1bKHo9WzAsIkEiLCJ2Il0sMCldLHRoaXMuUj09Qlt6WzBdXSkmJnRoaXNbelsxXV09PUJbelswXV0mJnRoaXMuTT09Qlt6WzBdXSYmdGhpcy5YPT1CW3pbMF1dJiZ0aGlzLmk9PUJbelswXV0mJnRoaXNbelsyXV09PUJbelswXV19LEY9JFQucHJvdG90eXBlLHVyKS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseil7KCgodGhpcy52Kz0KKHo9KHRoaXMuQSs9Qi5BLFsodGhpcy5SKz1CLlIsIlgiKSwiTSIsImkiXSksQi52KSx0aGlzKVt6WzFdXSs9Qlt6WzFdXSx0aGlzKVt6WzJdXSs9Qlt6WzJdXSx0aGlzKVt6WzBdXSs9Qlt6WzBdXX0sRikuZ2V0RnVsbFllYXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldEZ1bGxZZWFyKCl9LEYuZ2V0WWVhcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZ1bGxZZWFyKCl9LEYpLmdldE1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRNb250aCgpfSwkVC5wcm90b3R5cGUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYudmFsdWVPZigpfSxGKS5nZXREYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXREYXRlKCl9LEYuZ2V0VGltZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VGltZSgpfSxGKS5nZXREYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldERheSgpfSwkVC5wcm90b3R5cGUpLEYuZ2V0VVRDRnVsbFllYXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ0Z1bGxZZWFyKCl9LApGKS5nZXRVVENNb250aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDTW9udGgoKX0sRikuZ2V0VVRDRGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDRGF0ZSgpfSxGKS5nZXRVVENEYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldERheSgpfSxGLmdldFVUQ0hvdXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRVVENIb3VycygpfSxGLmdldFVUQ01pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ01pbnV0ZXMoKX0sRikuZ2V0VGltZXpvbmVPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFRpbWV6b25lT2Zmc2V0KCl9LEYpLnNldD1mdW5jdGlvbihCKXt0aGlzLnY9bmV3IERhdGUoQi5nZXRGdWxsWWVhcigpLEIuZ2V0TW9udGgoKSxCLmdldERhdGUoKSl9LEYuc2V0RnVsbFllYXI9ZnVuY3Rpb24oQil7dGhpcy52LnNldEZ1bGxZZWFyKEIpfSxGKS5zZXRZZWFyPWZ1bmN0aW9uKEIpe3RoaXMuc2V0RnVsbFllYXIoQil9LApGKS5zZXRNb250aD1mdW5jdGlvbihCKXt0aGlzLnYuc2V0TW9udGgoQil9LEYpLnNldERhdGU9ZnVuY3Rpb24oQil7dGhpcy52LnNldERhdGUoQil9LEYpLnNldFRpbWU9ZnVuY3Rpb24oQil7dGhpcy52LnNldFRpbWUoQil9LEYuc2V0VVRDRnVsbFllYXI9ZnVuY3Rpb24oQil7dGhpcy52LnNldFVUQ0Z1bGxZZWFyKEIpfSxGLnNldFVUQ01vbnRoPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRVVENNb250aChCKX0sRikuc2V0VVRDRGF0ZT1mdW5jdGlvbihCKXt0aGlzLnYuc2V0VVRDRGF0ZShCKX0sRikuYWRkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChRPSh2PVsxMiw5OSwxMF0sWyJzZXREYXRlIiwiZ2V0RGF0ZSIsMV0pLEIpLlJ8fEIuQSl7KEM9dGhpcy5nZXRZZWFyKCkrYk4oKHA9dGhpcy5nZXRNb250aCgpK0IuQStCLlIqdlswXSxwL3ZbMF0pKSxwJT12WzBdLHA8MCkmJihwKz12WzBdKTthOntzd2l0Y2gocCl7Y2FzZSBRWzJdOko9QyU0IT0wfHxDJTEwMD09MCYmCkMlNDAwIT0wPzI4OjI5O2JyZWFrIGE7Y2FzZSA1OmNhc2UgODpjYXNlIHZbMl06Y2FzZSAzOko9MzA7YnJlYWsgYX1KPTMxfXRoaXNbKCgodGhpc1soej1sOShKLHRoaXNbUVsxXV0oKSksUSlbMF1dKFFbMl0pLHRoaXMpLnNldEZ1bGxZZWFyKEMpLHRoaXMpLnNldE1vbnRoKHApLFEpWzBdXSh6KX1CLk0mJihBPXRoaXMuZ2V0WWVhcigpLGI9QT49MCYmQTw9dltRWzJdXT8tMTkwMDowLEs9bmV3IERhdGUoKG5ldyBEYXRlKEEsdGhpcy5nZXRNb250aCgpLHRoaXNbUVsxXV0oKSwxMikpLmdldFRpbWUoKStCLk0qODY0RTUpLHRoaXNbUVswXV0oUVsyXSksdGhpcy5zZXRGdWxsWWVhcihLLmdldEZ1bGxZZWFyKCkrYiksdGhpcy5zZXRNb250aChLLmdldE1vbnRoKCkpLHRoaXNbUVswXV0oS1tRWzFdXSgpKSxZWzM4XSg4LEtbUVsxXV0oKSx0aGlzKSl9LEYpLlFhPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIEs9KEM9WyJqb2luIiwwLChKPVswLDIsKHo9dGhpcy5nZXRGdWxsWWVhcigpLAoxKV0sMildLHo8SltDWzFdXT9JOCgpOno+PTFFND90YygpOiIiKSxbSytPWzNdKDE2LGU3KHopLEs/Njo0KSxPWzNdKDgsdGhpcy5nZXRNb250aCgpK0pbQ1syXV0sSlsxXSksT1szXSgzMix0aGlzLmdldERhdGUoKSxKWzFdKV1bQ1swXV0oQj9JOCgpOiIiKSsiIn0sRikuZXF1YWxzPWZ1bmN0aW9uKEIseil7cmV0dXJuISgoej1bImdldE1vbnRoIiwiZ2V0WWVhciIsImdldERhdGUiXSwhQnx8dGhpc1t6WzFdXSgpIT1CW3pbMV1dKCl8fHRoaXNbelswXV0oKSE9Qlt6WzBdXSgpKXx8dGhpc1t6WzJdXSgpIT1CW3pbMl1dKCkpfSxGLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUWEoKX0sMjUpLFhFLCRUKSxYRSkucHJvdG90eXBlLEYpLmdldEhvdXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRIb3VycygpfSxGLmdldE1pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldE1pbnV0ZXMoKX0sRikuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0U2Vjb25kcygpfSwKRi5nZXRNaWxsaXNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldE1pbGxpc2Vjb25kcygpfSxGKS5nZXRVVENEYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ0RheSgpfSxGKS5nZXRVVENIb3Vycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDSG91cnMoKX0sRi5nZXRVVENNaW51dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRVVENNaW51dGVzKCl9LEYuZ2V0VVRDU2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDU2Vjb25kcygpfSxGKS5nZXRVVENNaWxsaXNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ01pbGxpc2Vjb25kcygpfSxGLnNldEhvdXJzPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRIb3VycyhCKX0sRikuc2V0TWludXRlcz1mdW5jdGlvbihCKXt0aGlzLnYuc2V0TWludXRlcyhCKX0sRikuc2V0U2Vjb25kcz1mdW5jdGlvbihCKXt0aGlzLnYuc2V0U2Vjb25kcyhCKX0sRi5zZXRNaWxsaXNlY29uZHM9CmZ1bmN0aW9uKEIpe3RoaXMudi5zZXRNaWxsaXNlY29uZHMoQil9LFhFKS5wcm90b3R5cGUsRikuc2V0VVRDSG91cnM9ZnVuY3Rpb24oQil7dGhpcy52LnNldFVUQ0hvdXJzKEIpfSxGKS5zZXRVVENNaW51dGVzPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRVVENNaW51dGVzKEIpfSxGKS5zZXRVVENTZWNvbmRzPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRVVENTZWNvbmRzKEIpfSxGKS5zZXRVVENNaWxsaXNlY29uZHM9ZnVuY3Rpb24oQil7dGhpcy52LnNldFVUQ01pbGxpc2Vjb25kcyhCKX0sRikuYWRkPWZ1bmN0aW9uKEIseil7KEJbQlsoKHo9WyJjYWxsIiwiWCIsImkiXSwkVCkucHJvdG90eXBlLmFkZFt6WzBdXSh0aGlzLEIpLHopWzFdXSYmdGhpcy5zZXRVVENIb3Vycyh0aGlzLnYuZ2V0VVRDSG91cnMoKStCW3pbMV1dKSx6WzJdXSYmdGhpcy5zZXRVVENNaW51dGVzKHRoaXMudi5nZXRVVENNaW51dGVzKCkrQlt6WzJdXSksQi52KSYmdGhpcy5zZXRVVENTZWNvbmRzKHRoaXMudi5nZXRVVENTZWNvbmRzKCkrCkIudil9LEYpLlFhPWZ1bmN0aW9uKEIseixLLEope3JldHVybihLPSRULnByb3RvdHlwZS5RYS5jYWxsKHRoaXMsKHo9WyJUIiwiOiIsKEo9WyJnZXRIb3VycyIsMiwyNF0sMildLEIpKSxCKT9LK3pbMF0rT1szXSg4LHRoaXNbSlswXV0oKSx6W0pbMV1dKSt6WzFdK09bM10oSlsyXSx0aGlzLmdldE1pbnV0ZXMoKSx6W0pbMV1dKSt6WzFdK09bM10oOCx0aGlzLmdldFNlY29uZHMoKSx6W0pbMV1dKTpLK3pbMF0rT1szXShKWzJdLHRoaXNbSlswXV0oKSx6W0pbMV1dKStPWzNdKDMyLHRoaXMuZ2V0TWludXRlcygpLHpbSlsxXV0pK09bM10oMTYsdGhpcy5nZXRTZWNvbmRzKCkseltKWzFdXSl9LEYpLmVxdWFscz1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy5nZXRUaW1lKCk9PUIuZ2V0VGltZSgpfSxGLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUWEoKX0sWEk4KXx8e2lkOnJZKCl9LHV5TT0oR3EucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy52PT09CkIudiYmdGhpcy5NPT09Qi5NfSx1eU0pfHx7aWQ6VU5oKCl9LGFOOD0oWnUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy52YWx1ZS5lcXVhbHMoQi52YWx1ZSl9LGFOOCl8fHtpZDpseSgpfSxoWjA9KHpPLnByb3RvdHlwZS5lcXVhbHM9KCh6Si5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKFc9WyJlcXVhbHMiLChwPVshMSwwLCEwXSwwKSwxXSx0aGlzLnZhbHVlPT09bnVsbClDPUIudmFsdWU9PT1udWxsO2Vsc2V7aWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mIEokKUo9Qi52YWx1ZSBpbnN0YW5jZW9mIEokP3RoaXMudmFsdWVbV1swXV0oQi52YWx1ZSk6ITE7ZWxzZXtpZih0aGlzLnYhPT1CLnYpbj1wW1dbMV1dO2Vsc2V7aWYodHlwZW9mIHRoaXMudmFsdWU9PT0ic3RyaW5nInx8dHlwZW9mIHRoaXMudmFsdWU9PT0ibnVtYmVyIiliPXRoaXMudmFsdWU9PT1CLnZhbHVlO2Vsc2V7aWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mCmV0KUE9Qi52YWx1ZSBpbnN0YW5jZW9mIGV0P3RoaXMudmFsdWVbV1swXV0oQi52YWx1ZSk6ITE7ZWxzZXtpZih0aGlzLnZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSl7aWYoQi52YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpYTppZih2PUIudmFsdWUsWj10aGlzLnZhbHVlLFoubGVuZ3RoIT09di5sZW5ndGgpSz1wW1dbMV1dO2Vsc2V7Zm9yKHo9cFtXWzJdXTt6PFoubGVuZ3RoOysreilpZihaW3pdIT09dlt6XSl7Sz1wW1dbMV1dO2JyZWFrIGF9Sz1wWzJdfWVsc2UgSz1wW1dbMV1dO1E9S31lbHNlIFE9dGhpcy52YWx1ZSBpbnN0YW5jZW9mIEdxP0IudmFsdWUgaW5zdGFuY2VvZiBHcT90aGlzLnZhbHVlW1dbMF1dKEIudmFsdWUpOiExOnRoaXMudmFsdWUgaW5zdGFuY2VvZiBadT9CLnZhbHVlIGluc3RhbmNlb2YgWnU/dGhpcy52YWx1ZVtXWzBdXShCLnZhbHVlKTohMTohMTtBPVF9Yj1BfW49Yn1KPW59Qz1KfXJldHVybiBDfSxGNSkucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCLAp6LEssSil7aWYoSz0oSj1bIk0iLCExLCJ2Il0sdGhpc1tKWzJdXS5sZW5ndGgpPT09QltKWzJdXS5sZW5ndGgpYTppZih0aGlzW0pbMF1dIT09QltKWzBdXXx8dGhpc1tKWzJdXS5sZW5ndGg+QltKWzJdXS5sZW5ndGgpSz1KWzFdO2Vsc2V7Zm9yKHo9MDt6PHRoaXNbSlsyXV0ubGVuZ3RoOysreilpZighdGhpc1tKWzJdXVt6XS5lcXVhbHMoQltKWzJdXVt6XSkpe0s9SlsxXTticmVhayBhfUs9ITB9cmV0dXJuIEt9LGZ1bmN0aW9uKEIpe3JldHVybiB0aGlzLnYuZXF1YWxzKEIudil9KSxoWjApfHx7aWQ6dVMoKX0sZHJ4PShCYSgpLGRyeCl8fHtpZDpIcigpfSxra3c9KE9bMjFdKDIsdWcsRXJyb3IpLGtrdyl8fHtpZDplVigpfSx0TWg9dE1ofHx7aWQ6aSQoKX0sVXJ3PVVyd3x8e2lkOnhOKCl9LFRmPW5ldyAoKCgoKEY9b2kucHJvdG90eXBlLEYudW5zdWJzY3JpYmU9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihuPVszNiwiaXNBcnJheSIsIlgiXSwhdGhpcy5jbG9zZWQpe2lmKEFycmF5W3Y9Cih0aGlzLmNsb3NlZD0hMCx0aGlzKS5NLG5bMV1dKHYpKWZvcihLPWdbMTJdKDcsdiksYj1LLm5leHQoKTshYi5kb25lO2I9Sy5uZXh0KCkpYi52YWx1ZS5yZW1vdmUodGhpcyk7ZWxzZSB2PT1udWxsfHx2LnJlbW92ZSh0aGlzKTtpZihlWzI0XSg4MywoUT10aGlzLmksUSkpKXRyeXtRKCl9Y2F0Y2goWil7Qz1aIGluc3RhbmNlb2YgdWc/Wi5lcnJvcnM6W1pdfWlmKEo9dGhpc1tuWzJdXSlmb3IodGhpc1tuWzJdXT1udWxsLEE9Z1sxMl0oNSxKKSxCPUEubmV4dCgpOyFCLmRvbmU7Qj1BLm5leHQoKSl7cD1CLnZhbHVlO3RyeXtlWzI0XSg3OSxwKT9wKCk6cC51bnN1YnNjcmliZSgpfWNhdGNoKFope3o9dm9pZCAwLEM9KHo9QykhPW51bGw/ejpbXSxaIGluc3RhbmNlb2YgdWc/Qz1bXS5jb25jYXQoZVszM10oMTEsQyksZVszM10oblswXSxaLmVycm9ycykpOkMucHVzaChaKX19aWYoQyl0aHJvdyBuZXcgdWcoQyk7fX0sRikuYWRkPWZ1bmN0aW9uKEIseixLKXtpZihLPVsyNCwiWCIsImNsb3NlZCJdLApCJiZCIT09dGhpcylpZih0aGlzW0tbMl1dKWVbS1swXV0oODMsQik/QigpOkIudW5zdWJzY3JpYmUoKTtlbHNle2lmKEIgaW5zdGFuY2VvZiBvaSl7aWYoQltLWzJdXXx8Qi5ucih0aGlzKSlyZXR1cm47Qi5NVSh0aGlzKX0odGhpc1tLWzFdXT0oej10aGlzW0tbMV1dKSE9bnVsbD96OltdKS5wdXNoKEIpfX0sRikuZFg9ZnVuY3Rpb24oQix6KXtyZXR1cm4ga1szM10uY2FsbCh0aGlzLDE2LEIseil9LEYpLk1VPWZ1bmN0aW9uKEIseil7cmV0dXJuIGVbMTZdLmNhbGwodGhpcywxMixCLHopfSxGLm5yPWZ1bmN0aW9uKEIseil7cmV0dXJuIFJbMjJdLmNhbGwodGhpcywxNCxCLHopfSxGKS5yZW1vdmU9ZnVuY3Rpb24oQix6KXsoej10aGlzLlgpJiZHWzMyXSgzMywxLHosQiksQiBpbnN0YW5jZW9mIG9pJiZCLmRYKHRoaXMpfSxvaSksTU0wPShUZi5jbG9zZWQ9KG9pLnY9VGYsITApLE1NMHx8e2lkOkVHKCl9KSx3SUc9d0lHfHx7aWQ6QVcoKX0sSU5sPUlObHx8e2lkOmZ2KCl9LEZwaD0KRnBofHx7aWQ6ZHFEKCl9LEJ3Wj1Cd1p8fHtpZDpRQjAoKX0sZmo9KCgoKEY9KChPWzIxXSg0LHZ6LG9pKSx2eikudj1vaS52LHZ6LmNyZWF0ZT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIG5ldyBIYyhCLHosSyl9LHZ6LnByb3RvdHlwZSksRikubmV4dD1mdW5jdGlvbihCKXt0aGlzLnY/TzUoKTp0aGlzLm8xKEIpfSxGKS5lcnJvcj1mdW5jdGlvbihCKXt0aGlzLnY/Q3YoKToodGhpcy52PSEwLHRoaXMuVG8oQikpfSxGLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy52fHwodGhpcy52PSEwLHRoaXMuc2EoKSl9LEYudW5zdWJzY3JpYmU9ZnVuY3Rpb24oQil7KEI9WyJ1bnN1YnNjcmliZSIsImNsb3NlZCIsImNhbGwiXSx0aGlzW0JbMV1dKXx8KHRoaXMudj0hMCxvaS5wcm90b3R5cGVbQlswXV1bQlsyXV0odGhpcykpfSxGKS5vMT1mdW5jdGlvbihCKXt0aGlzLmRlc3RpbmF0aW9uLm5leHQoQil9LGZ1bmN0aW9uKEIpe3JldHVybiBtWzE2XS5jYWxsKHRoaXMsMTIsQil9KSxzSGg9KCgoT1syMV0oKCgoRi5zYT0KZnVuY3Rpb24oKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfSxGKS5Ubz0oZmoucHJvdG90eXBlLm5leHQ9KGZqLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihCLHope2lmKHo9dGhpcy52LHouZXJyb3IpdHJ5e3ouZXJyb3IoQil9Y2F0Y2goSyl7a1syMl0oNTUsSyl9ZWxzZSBrWzIyXSg1NixCKX0sZnVuY3Rpb24oQix6KXtpZigoej10aGlzLnYseikubmV4dCl0cnl7ei5uZXh0KEIpfWNhdGNoKEspe2tbMjJdKDU0LEspfX0pLGZ1bmN0aW9uKEIpeyh0aGlzLmRlc3RpbmF0aW9uLmVycm9yKEIpLHRoaXMpLnVuc3Vic2NyaWJlKCl9KSxmaikucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKEIpe2lmKEI9dGhpcy52LEIuY29tcGxldGUpdHJ5e0IuY29tcGxldGUoKX1jYXRjaCh6KXtrWzIyXSg1Myx6KX19LDYpLEhjLHZ6KSxIYykudj12ei52LEhjKS5jcmVhdGU9dnouY3JlYXRlLHNIaCl8fHtpZDpqMSgpfSxQMj10eXBlb2YgU3ltYm9sPT09CiJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIix6bkQ9em5EfHx7aWQ6TiQoKX0sS2Q4PUtkOHx8e2lkOlF3TSgpfSxKelo9SnpafHx7aWQ6aEsoKX0sQzR3PSh6aC5wcm90b3R5cGVbUDJdPSgoRj16aC5wcm90b3R5cGUsRi5wNT1mdW5jdGlvbihCLHope3JldHVybiB6PW5ldyB6aCx6LnNvdXJjZT10aGlzLHouUj1CLHp9LEYuc3Vic2NyaWJlPSh6aC5jcmVhdGU9ZnVuY3Rpb24oQil7cmV0dXJuIG5ldyB6aChCKX0semgucHJvdG90eXBlLmhzPWZ1bmN0aW9uKCl7dmFyIEI9RzIuYXBwbHkoMCxhcmd1bWVudHMpO3JldHVybiBCLmxlbmd0aD9lWzFdKDMyLDAsQikodGhpcyk6dGhpc30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEo9KEM9dGhpc1tiPShBPVsic291cmNlIiw1MCw4M10sQiYmQiBpbnN0YW5jZW9mIHZ6KXx8QiYmZVsyNF0oQVsyXSxCLm5leHQpJiZlWzI0XSg1MSxCLmVycm9yKSYmZVsyNF0oQVsxXSxCLmNvbXBsZXRlKSYmZVsyN10oMjgsCkIpP0I6bmV3IEhjKEIseixLKSxBWzBdXSx0aGlzLlIpLGIuYWRkKEo/Si5jYWxsKGIsQyk6Qz90aGlzLmk3KGIpOnRoaXMuckIoYikpLGJ9KSxGKS5yQj1mdW5jdGlvbihCKXt0cnl7cmV0dXJuIHRoaXMuaTcoQil9Y2F0Y2goeil7Qi5lcnJvcih6KX19LEYuZm9yRWFjaD1mdW5jdGlvbihCLHosSyl7cmV0dXJuIG5ldyAoej1IWzMzXSg1OSwoSz10aGlzLG51bGwpLHopLHopKGZ1bmN0aW9uKEosQyxiKXtiPUsuc3Vic2NyaWJlKGZ1bmN0aW9uKEEpe3RyeXtCKEEpfWNhdGNoKHYpe0ModiksYj09bnVsbHx8Yi51bnN1YnNjcmliZSgpfX0sQyxKKX0pfSxGLmk3PWZ1bmN0aW9uKEIseil7cmV0dXJuKHo9dGhpcy5zb3VyY2UpPT1udWxsP3ZvaWQgMDp6LnN1YnNjcmliZShCKX0sZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEM0dyl8fHtpZDpEZygpfSxiMDM9KE9bMjFdKDIsWlYsRXJyb3IpLGIwMyl8fHtpZDpFZncoKX0sQXpsPSgoKFBNLmNyZWF0ZT0oKCgoKCgoKChGPShPWzIxXSgzLAp4MSx6aCkseDEucHJvdG90eXBlKSxGLnA1PWZ1bmN0aW9uKEIseil7cmV0dXJuIHo9bmV3IFBNKHRoaXMsdGhpcyksei5SPUIsen0sRikuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gUlsxXS5jYWxsKHRoaXMsMTYpfSxGKS5uZXh0PWZ1bmN0aW9uKEIseixLLEope2lmKCEoSj1bIk0iLCJzbGljZSIsNV0sdGhpcy5nZSgpLHRoaXMpLnYpZm9yKEs9Z1sxMl0oSlsyXSx0aGlzW0pbMF1dW0pbMV1dKCkpLHo9Sy5uZXh0KCk7IXouZG9uZTt6PUsubmV4dCgpKXoudmFsdWUubmV4dChCKX0sRi5lcnJvcj1mdW5jdGlvbihCLHosSyl7aWYoIShLPVsiWCIsIkEiLCJzaGlmdCJdLHRoaXMuZ2UoKSx0aGlzKS52KWZvcih0aGlzW0tbMF1dPXRoaXMudj0hMCx6PXRoaXMuTSx0aGlzW0tbMV1dPUI7ei5sZW5ndGg7KXpbS1syXV0oKS5lcnJvcihCKX0sRikuY29tcGxldGU9ZnVuY3Rpb24oQix6KXtpZighdGhpc1t6PVsiZ2UiLCJ2Iiwic2hpZnQiXSx0aGlzW3pbMF1dKCkselsxXV0pZm9yKHRoaXNbelsxXV09CiEwLEI9dGhpcy5NO0IubGVuZ3RoOylCW3pbMl1dKCkuY29tcGxldGUoKX0sRikudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLnY9KHRoaXMuTT1udWxsLHRoaXMpLmNsb3NlZD0hMH0sRikuaTc9ZnVuY3Rpb24oQil7cmV0dXJuKHRoaXMuZ2UoKSx0aGlzLnlaKEIpLHRoaXMpLmFqKEIpfSxGKS5haj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZ1swXS5jYWxsKHRoaXMsMjAsQix6LEssSil9LEYpLnlaPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gUls0Ml0uY2FsbCh0aGlzLDE2LEIseixLKX0sRi5yQj1mdW5jdGlvbihCKXtyZXR1cm4odGhpcy5nZSgpLHpoLnByb3RvdHlwZSkuckIuY2FsbCh0aGlzLEIpfSx4MS5jcmVhdGU9ZnVuY3Rpb24oQix6KXtyZXR1cm4gbmV3IFBNKEIseil9LE8pWzIxXSgyLFBNLHgxKSx4MSkuY3JlYXRlLFBNLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKEIseixLKXsoej10aGlzLmRlc3RpbmF0aW9uKT09bnVsbHx8KEs9ei5uZXh0KT09bnVsbHx8Sy5jYWxsKHosCkIpfSxQTSkucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKEIseixLKXsoSz10aGlzLmRlc3RpbmF0aW9uKT09bnVsbHx8KHo9Sy5lcnJvcik9PW51bGx8fHouY2FsbChLLEIpfSxQTS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oQix6KXsoQj10aGlzLmRlc3RpbmF0aW9uKT09bnVsbHx8KHo9Qi5jb21wbGV0ZSk9PW51bGx8fHouY2FsbChCKX0sUE0pLnByb3RvdHlwZS5pNz1mdW5jdGlvbihCLHosSyl7cmV0dXJuKEs9KHo9dGhpcy5zb3VyY2UpPT1udWxsP3ZvaWQgMDp6LnN1YnNjcmliZShCKSkhPW51bGw/SzpvaS52fSxBemx8fHtpZDpUME4oKX0pLEJkPS9eaHR0cHM/JC9pLHZpMD12aTB8fHtpZDpnMSgpfSxUd009KCgoKChPWzIxXSgzLGpNLHgxKSxqTS5jcmVhdGU9eDEuY3JlYXRlLGpNLnByb3RvdHlwZSkuaTc9ZnVuY3Rpb24oQix6KXtyZXR1cm4gej14MS5wcm90b3R5cGUuaTcuY2FsbCh0aGlzLEIpLCF6LmNsb3NlZCYmQi5uZXh0KHRoaXMuaSksen0sak0ucHJvdG90eXBlKS5nZXRWYWx1ZT0KZnVuY3Rpb24oQix6KXtpZigoej0oQj10aGlzLmksdGhpcy5BKSx0aGlzKS5YKXRocm93IHo7cmV0dXJuIHRoaXMuZ2UoKSxCfSxqTS5wcm90b3R5cGUpLm5leHQ9ZnVuY3Rpb24oQil7eDEucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHRoaXMuaT1CKX0sUFIpLk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGpNLnByb3RvdHlwZSx7dmFsdWU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9fX0pLFR3TSl8fHtpZDp2aSgpfSxqSFk9akhZfHx7aWQ6Z2VoKCl9LHBVcT1wVXF8fHtpZDp2USgpfSxRSGg9UUhofHx7aWQ6bTgoKX0sT009dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcj9TeW1ib2wuaXRlcmF0b3I6VFkoKSxuaUQ9bmlEfHx7aWQ6UVgoKX0sWjB3PVowd3x8e2lkOkRuKCl9LFdkWT1XZFl8fHtpZDpQTDAoKX0sZ2lEPWdpRHx8e2lkOnh6KCl9LE53cT1Od3F8fHtpZDpoeHcoKX0sCk8wWT1PMFl8fHtpZDpQZDgoKX0seE9ZPXhPWXx8e2lkOkZzKCl9LERPTT1ET018fHtpZDpCX1ooKX0sZmJ3PWZid3x8e2lkOnk4dygpfSxvaTM9b2kzfHx7aWQ6bHMoKX0sTGQzPUxkM3x8e2lkOmxoKCl9LFJuWT1Sbll8fHtpZDpBQSgpfSxyenc9cnp3fHx7aWQ6cDQoKX0sVkU4PVZFOHx8e2lkOkp3KCl9LEdveD1Hb3h8fHtpZDpNZSgpfSxIMFk9SDBZfHx7aWQ6JG1HKCl9LGVuWT1lbll8fHtpZDpVJCgpfSxQNHg9UDR4fHx7aWQ6Y1lNKCl9LCRPOD0oKE81KCksQ3YoKSxCYSkoKSwkTzgpfHx7aWQ6YWwoKX0scWkzPXFpM3x8e2lkOmpiKCl9LGkwOD1pMDh8fHtpZDpBQygpfSx5ejg9eXo4fHx7aWQ6V0EoKX0sWWlxPShPWzIxXSgzLHU2LEVycm9yKSxZaXEpfHx7aWQ6SG4wKCl9LGN6Mz1jejN8fHtpZDpEUigpfSxTaWg9U2lofHx7aWQ6ajlaKCl9LG1PRD0oKChPWzIxXSg2LGZnLHZ6KSxmZykudj12ei52LGZnLmNyZWF0ZT12ei5jcmVhdGUsZmcucHJvdG90eXBlKS51bnN1YnNjcmliZT0KZnVuY3Rpb24oQix6KXt6PVtudWxsLCJjYWxsIiwidW5zdWJzY3JpYmUiXSx0aGlzLmNsb3NlZHx8KEI9dGhpcy5BKSE9elswXSYmQlt6WzFdXSh0aGlzKSx2ei5wcm90b3R5cGVbelsyXV1belsxXV0odGhpcyl9LG1PRCl8fHtpZDpLVCgpfSxsYmw9bGJsfHx7aWQ6a28oKX0sRWk4PUVpOHx8e2lkOnlwKCl9LFhVbD1YVWx8fHtpZDp2ancoKX0sdUc4PXVHOHx8e2lkOnBoRCgpfSxhYmw9YWJsfHx7aWQ6RzkoKX0saG5OPWhuTnx8e2lkOnI4KCl9LGRPcT1kT3F8fHtpZDpWWCgpfSxrbzA9a28wfHx7aWQ6eEUoKX0sdEUzPShPWzhdKDcsNixIWzE1XS5iaW5kKG51bGwsNykpLHRFMyl8fHtpZDpqbigpfSxVT1k9VU9ZfHx7aWQ6WXUoKX0sTUV3PU1Fd3x8e2lkOm8xKCl9LHdVeD13VXh8fHtpZDpQRmgoKX0sSWJEPUliRHx8e2lkOnAzKCl9LEZkOD1GZDh8fHtpZDpzQigpfSxCU0c9QlNHfHx7aWQ6WkooKX0sc2psPXNqbHx8e2lkOlRtMCgpfSx6djg9enY4fHx7aWQ6cUkoKX0sSzJOPUsyTnx8CntpZDpuSSgpfSxKUHg9SlB4fHx7aWQ6dksoKX0sQ1R3PUNUd3x8e2lkOnFKKCl9LGJTbD1iU2x8fHtpZDpxUygpfSxBUDg9KE9bOF0oMTEsMzQsT1syMF0uYmluZChudWxsLDI0KSksQVA4KXx8e2lkOnVoaCgpfSx2eXg9dnl4fHx7aWQ6ZFQoKX0sVFN3PVRTd3x8e2lkOnIwOCgpfSxqajM9amozfHx7aWQ6bmpHKCl9LHBFWj1wRVp8fHtpZDptQigpfSxRajg9UWo4fHx7aWQ6SlhsKCl9LG55dz1ueXd8fHtpZDpPQigpfSxaUzg9WlM4fHx7aWQ6aEFNKCl9LFcydz1XMnd8fHtpZDpuTigpfSxneUc9Z3lHfHx7aWQ6aEMoKX0sTlN4PU5TeHx8e2lkOlpnKCl9LE9Tdz1PU3d8fHtpZDp6NCgpfSxKdT1mdW5jdGlvbihCKXtyZXR1cm4gUlsxM10uY2FsbCh0aGlzLDU2LEIpfSx4aDg9eGg4fHx7aWQ6TUQoKX0sRGgzPURoM3x8e2lkOmlwKCl9LGZPOD1mTzh8fHtpZDpYUSgpfSxveWg9b3lofHx7aWQ6a04oKX0sb1Q9bmV3IHpoKHlbMzBdLmJpbmQobnVsbCwyKSksTDJ4PUwyeHx8e2lkOk9TKCl9LApSdjg9UnY4fHx7aWQ6VmUoKX0sclBoPXJQaHx8e2lkOlUwOCgpfSxWY0c9VmNHfHx7aWQ6bWFOKCl9LEdaMz1HWjN8fHtpZDpqTygpfSxIU1o9SFNafHx7aWQ6YWZEKCl9LGV2RD1ldkR8fHtpZDpxMlooKX0sUFQzPVBUM3x8e2lkOkhKKCl9LCRoaD0kaGh8fHtpZDptcTgoKX0scXlxPXF5cXx8e2lkOlRtKCl9LGlTWT1pU1l8fHtpZDp5UUcoKX0seVBxPXlQcXx8e2lkOlE5KCl9LFl5TT1ZeU18fHtpZDpuZWwoKX0scXE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1sxNF0uY2FsbCh0aGlzLDM0LEIseil9LGNQOD1jUDh8fHtpZDpFNSgpfSxJaT1mdW5jdGlvbihCKXtyZXR1cm4ga1szXS5jYWxsKHRoaXMsMSxCKX0sU3kwPVN5MHx8e2lkOkZMTigpfSxtaHc9bWh3fHx7aWQ6ZlQoKX0sbE94PWxPeHx8e2lkOkVRKCl9LEV5OD1FeTh8fHtpZDpkQygpfSxYRTg9WEU4fHx7aWQ6V3YoKX0sdTMzPXUzM3x8e2lkOlVqKCl9LGFPRz1hT0d8fHtpZDpvancoKX0saHYwPWh2MHx8e2lkOm5IKCl9LGRoOD0KZGg4fHx7aWQ6RnUoKX0sa1pxPWtacXx8e2lkOlBWKCl9LHRjWT10Y1l8fHtpZDpYcTgoKX0sdDA9ZnVuY3Rpb24oQix6LEspe3JldHVybiBZWzI0XS5jYWxsKHRoaXMsMTYsQix6LEspfSxrMD1mdW5jdGlvbigpe3JldHVybiBSWzRdLmNhbGwodGhpcywxKX0sVWhxPVVocXx8e2lkOlphKCl9LE1jWj1NY1p8fHtpZDpVZSgpfSx3RXg9d0V4fHx7aWQ6VlczKCl9LElPdz1JT3d8fHtpZDpqaigpfSxGMjg9RjI4fHx7aWQ6ZGIoKX0sVXk9ZnVuY3Rpb24oQix6LEspe3JldHVybiBZWzZdLmNhbGwodGhpcywzMixCLHosSyl9LEJPMD1CTzB8fHtpZDp4MU4oKX0sWk49KGRVKCksRlEoKSxyZSgpLGZ1bmN0aW9uKEIseil7cmV0dXJuIG1bNl0uY2FsbCh0aGlzLDQsQix6KX0pLG50PShwdC5wcm90b3R5cGUudEs9KChaTi5wcm90b3R5cGUuUjA9KFpOLnByb3RvdHlwZS5wWD0oWk4ucHJvdG90eXBlLnRLPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGZ1bmN0aW9uKCl7cmV0dXJue2tleTp0aGlzLnZ9fSksClpOLnByb3RvdHlwZS5oSz1mdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gSj0oKEI9Z1s0Ml0oMTUsKEE9Wyh6PVsiICIsMCwxXSxudWxsKSwoSz17fSwxKSwyXSxbXSkpKT8oQz1CLnNwbGl0KG85KCkpLGI9e3NjaGVtZTpDW3pbQVsxXV1dLGhhc2g6Q1t6W0FbMl1dXX0pOmI9QVswXSxiKSxKIT1BWzBdJiYoS1tvc109Si5zY2hlbWUrelswXStKLmhhc2gsS1tRUnhdPVN0cmluZyh0aGlzLk18fHpbQVsxXV0pKSxLfSkscHQucHJvdG90eXBlLlIwPWZ1bmN0aW9uKEIpe3JldHVybihCPXt9LEIpW29zXT0iT0F1dGggIit0aGlzLnYuZ2V0VmFsdWUoKSxCfSxwdCkucHJvdG90eXBlLmhLPWZ1bmN0aW9uKCl7cmV0dXJuIDF9LGZ1bmN0aW9uKCl7cmV0dXJuITB9KSxmdW5jdGlvbihCKXtyZXR1cm4gT1sxN10uY2FsbCh0aGlzLDIzLEIpfSksUW89KHB0LnByb3RvdHlwZS5wWD0obnQucHJvdG90eXBlLlIwPWZ1bmN0aW9uKCl7cmV0dXJue319LApudC5wcm90b3R5cGUuaEs9ZnVuY3Rpb24oKXtyZXR1cm4gMX0sZnVuY3Rpb24oKXtyZXR1cm57fX0pLGZ1bmN0aW9uKEIseil7cmV0dXJuIGtbNDRdLmNhbGwodGhpcywyLEIseil9KSxzRTg9KFFvLnByb3RvdHlwZS50Sz0oUW8ucHJvdG90eXBlLnBYPSgoUW8ucHJvdG90eXBlLlIwPShRby5wcm90b3R5cGUuaEs9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sZnVuY3Rpb24oQix6KXtyZXR1cm4gej0oQj10aGlzLk0uZ2V0VmFsdWUoKSx7fSkseltvc109IkJlYXJlciAiK0Isen0pLG50LnByb3RvdHlwZS50Sz1mdW5jdGlvbigpe3JldHVybiExfSxudC5wcm90b3R5cGUpLnBYPWZ1bmN0aW9uKCl7cmV0dXJue2tleTp0aGlzLnZ9fSxmdW5jdGlvbigpe3JldHVybntrZXk6dGhpcy52fX0pLGZ1bmN0aW9uKCl7cmV0dXJuITB9KSxzRTh8fHtpZDpLQ0coKX0pLE1xPVNseCgpLHdtPWJ0KCksaVo9YzAoKSxqST1CcigpLGpaPVJKKCkscl89WEIoKSxwWj1mdW5jdGlvbihCKXtyZXR1cm4gSFszN10uY2FsbCh0aGlzLAoyLEIpfSxRTj1HTigpLHp5Rz0oKChKUUcoKSxHNCgpLFJPRykoKSxFMGgpKCksenlHfHx7aWQ6bGUoKX0pLHQ1PXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/ZnVuY3Rpb24oQil7cmV0dXJuIEImJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKEIpfTpmdW5jdGlvbihCKXtyZXR1cm4gQn0sblo9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMjFdLmNhbGwodGhpcywxLEIpfTtmdW5jdGlvbiBvZygpe3JldHVybiBHWzQ1XS5jYWxsKHRoaXMsMSl9CigoSFsyNF0oNTgsb2cscFEpLG9nLnByb3RvdHlwZVtmOV09ITAsb2cucHJvdG90eXBlLndiPWZ1bmN0aW9uKEIpe3RoaXMuQUw9Qn0sb2cucHJvdG90eXBlKS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKEIseixLLEope2tbNV0oMjQsMCxKLEsseix0aGlzLEIpfSxvZykucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7dGhpcy5BTD0oKEI9WyJZIiwxMCwiWiJdLG9nW0JbMF1dW0JbMl1dLmNhbGwodGhpcyksRClbMTVdKEJbMV0sMCwhMCx0aGlzKSxudWxsKX07ZnVuY3Rpb24gQlIoKXtyZXR1cm4gSFsxOV0uY2FsbCh0aGlzLDE3KX0KdmFyIHFhPXsnIic6KEJSLnByb3RvdHlwZS55ZT1mdW5jdGlvbihCLHope3JldHVybigoej1bXSx5KVsyNF0oOSwibnVtYmVyIixCLHRoaXMseikseikuam9pbigiIil9LE93KSgpLCJcXCI6TjYoKSwiLyI6YzMoKSwiXGIiOkwkKCksIlxmIjpLQigpLCJcbiI6WGooKSwiXHIiOmFXKCksIlx0IjpNbygpLCJcdiI6UmsoKX0sJGU9L1x1ZmZmZi8udGVzdCh4USgpKT8vW1xcIlx4MDAtXHgxZlx4N2YtXHVmZmZmXS9nOi9bXFwiXHgwMC1ceDFmXHg3Zi1ceGZmXS9nLFpGLG9vPShaRj0oSFsyNF0oOTAsTlgsUlsxNF0uYmluZChudWxsLDE4KSksTlgucHJvdG90eXBlLnY9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fSxuZXcgTlgpLFJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIikpLApMbj1udWxsO2Z1bmN0aW9uIEt4TihCLHope3ZhciBLPVsxLDM0LDBdLEo9WzAsMiwiIl0sQz1hcmd1bWVudHMubGVuZ3RoPT1KW0tbMF1dP0hbMjFdKEtbMF0sSltLWzBdXSxKW0tbMl1dLEpbS1syXV0sYXJndW1lbnRzW0tbMF1dKTpIWzIxXSgzLEpbS1swXV0sSltLWzJdXSxLWzBdLGFyZ3VtZW50cyk7cmV0dXJuIGVbS1sxXV0oMjQsSlsyXSxCLEMpfQp2YXIgdjI9WDAoKSxKcTg9KEhbMjRdKDI2LHFxLG9nKSxlYikoKSxDWVk9KGhtKCksT1QoKSxKMFooKSksV0c9VmcoKSxieTg9KHpTKCksQUkoKSksQXFHPShtWzMzXSgyLCgocXEucHJvdG90eXBlLnZZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubH0scXEucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnZ9LHFxLnByb3RvdHlwZS5nZXRSZXNwb25zZT1mdW5jdGlvbihCKXtCPVsidiIsImwiLG51bGxdO3RyeXtpZighdGhpc1tCWzBdXSlyZXR1cm4gQlsyXTtpZigicmVzcG9uc2UiaW4gdGhpc1tCWzBdXSlyZXR1cm4gdGhpc1tCWzBdXS5yZXNwb25zZTtzd2l0Y2godGhpc1tCWzFdXSl7Y2FzZSAiIjpjYXNlIEpxODpyZXR1cm4gdGhpc1tCWzBdXS5yZXNwb25zZVRleHQ7Y2FzZSBDWVk6aWYoIm1velJlc3BvbnNlQXJyYXlCdWZmZXIiaW4gdGhpc1tCWzBdXSlyZXR1cm4gdGhpc1tCWzBdXS5tb3pSZXNwb25zZUFycmF5QnVmZmVyfXJldHVybiBCWzJdfWNhdGNoKHope3JldHVybiBCWzJdfX0sCnFxLnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7eVszN10oNSwwLG51bGwsdGhpcyl9LHFxLnByb3RvdHlwZS50dT0ocXEucHJvdG90eXBlLmFib3J0PWZ1bmN0aW9uKEIseil7ej1bMyw3LCJhYm9ydCJdLHRoaXMudiYmdGhpcy5YJiYodGhpcy5YPSExLHRoaXMuUj0hMCx0aGlzLnZbelsyXV0oKSx0aGlzLlI9ITEsdGhpcy5NPUJ8fHpbMV0sZ1t6WzBdXSg1OCx0aGlzLE1xKSxnW3pbMF1dKDUwLHRoaXMsakkpLGdbMTddKDIwLG51bGwsdGhpcykpfSxmdW5jdGlvbihCKXt0eXBlb2YgVWwhPShCPVs4LDMsNjNdLCJ1bmRlZmluZWQiKSYmdGhpcy52JiYodGhpcy5pPSJUaW1lZCBvdXQgYWZ0ZXIgIit0aGlzLlcrIm1zLCBhYm9ydGluZyIsdGhpcy5NPUJbMF0sZ1tCWzFdXShCWzJdLHRoaXMsUU4pLHRoaXMuYWJvcnQoQlswXSkpfSkscXEucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXtpZigoeD1bIiIsITEsKFA9WyJVIiwKInRvVXBwZXJDYXNlIiw4XSwhMCldLHRoaXMpLnYpdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK3RoaXMuSCsiOyBuZXdVcmk9IitCKTsodGhpcy52PSgodGhpcy5pPSgodGhpcy5NPShDPXo/eltQWzFdXSgpOkhEKCksMCksdGhpcykuWD14WzJdLHhbMF0pLHRoaXMuSD1CLHRoaXMpLm89eFsxXSx0aGlzLmo/dGhpcy5qLnYoKTpaRi52KCkpLHRoaXMudikub25yZWFkeXN0YXRlY2hhbmdlPXQ1KFJ4KHRoaXMuZyx0aGlzKSk7dHJ5e3RoaXNbUFswXV09eFsyXSx0aGlzLnYub3BlbihDLFN0cmluZyhCKSx4WzJdKSx0aGlzW1BbMF1dPXhbMV19Y2F0Y2gocSl7R1sxOV0oMjgseFsyXSx4WzFdLHRoaXMscSk7cmV0dXJufWlmKE49KHY9bmV3IE1hcCh0aGlzLmhlYWRlcnMpLEt8fHhbMF0pLEopaWYobFEoSik9PT1PYmplY3QucHJvdG90eXBlKWZvcihmIGluIEopdi5zZXQoZixKW2ZdKTtlbHNlIGlmKHR5cGVvZiBKLmtleXM9PT0KImZ1bmN0aW9uIiYmdHlwZW9mIEouZ2V0PT09ImZ1bmN0aW9uIilmb3IoUT1nWzEyXSgxMixKLmtleXMoKSksVz1RLm5leHQoKTshVy5kb25lO1c9US5uZXh0KCkpcD1XLnZhbHVlLHYuc2V0KHAsSi5nZXQocCkpO2Vsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gaW5wdXQgdHlwZSBmb3Igb3B0X2hlYWRlcnM6ICIrU3RyaW5nKEopKTtmb3IoIShyPShiPUFycmF5LmZyb20odi5rZXlzKCkpLmZpbmQoZnVuY3Rpb24ocSl7cmV0dXJuIFdHLnRvTG93ZXJDYXNlKCk9PXEudG9Mb3dlckNhc2UoKX0pLEdsW0RjKCldJiZOIGluc3RhbmNlb2YgR2xbRGMoKV0pLFlbUFsyXV0oMTgscHUsQykpfHxifHxyfHx2LnNldChXRyxieTgpLEw9Z1sxMl0oOSx2KSxuPUwubmV4dCgpOyFuLmRvbmU7bj1MLm5leHQoKSlWPWdbMTJdKDMsbi52YWx1ZSksQT1WLm5leHQoKS52YWx1ZSxaPVYubmV4dCgpLnZhbHVlLHRoaXMudi5zZXRSZXF1ZXN0SGVhZGVyKEEsWik7KHRoaXMubCYmKHRoaXMudi5yZXNwb25zZVR5cGU9CnRoaXMubCksIndpdGhDcmVkZW50aWFscyJpbiB0aGlzLnYmJnRoaXMudi53aXRoQ3JlZGVudGlhbHMhPT10aGlzLkEpJiYodGhpcy52LndpdGhDcmVkZW50aWFscz10aGlzLkEpO3RyeXt0aGlzLkYmJihjbGVhclRpbWVvdXQodGhpcy5GKSx0aGlzLkY9bnVsbCksdGhpcy5XPjAmJih0aGlzLkY9c2V0VGltZW91dCh0aGlzLnR1LmJpbmQodGhpcyksdGhpcy5XKSksdGhpcy5DPXhbMl0sdGhpcy52LnNlbmQoTiksdGhpcy5DPXhbMV19Y2F0Y2gocSl7R1sxOV0oMzIseFsyXSx4WzFdLHRoaXMscSl9fSxxcS5wcm90b3R5cGUpLnl3PShxcS5wcm90b3R5cGUuZz1mdW5jdGlvbihCKXtpZighdGhpc1tCPVtudWxsLCJVIiwibSJdLEJbMl1dKWlmKHRoaXNbQlsxXV18fHRoaXMuQ3x8dGhpcy5SKXlbMzddKDQsMCxCWzBdLHRoaXMpO2Vsc2UgdGhpcy5LKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQX0pLHFxLnByb3RvdHlwZS5aPWZ1bmN0aW9uKEIpeyhCPVsidiIsIloiLDE3XSx0aGlzKVtCWzBdXSYmCih0aGlzLlgmJih0aGlzLlI9ITAsdGhpcy5YPSExLHRoaXNbQlswXV0uYWJvcnQoKSx0aGlzLlI9ITEpLGdbQlsyXV0oMjEsbnVsbCx0aGlzLCEwKSkscXEuWVtCWzFdXS5jYWxsKHRoaXMpfSxxcS5wcm90b3R5cGUuRD1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpLG1bMjZdKDU4LDAsWmgsdGhpcyl9LDApLGZ1bmN0aW9uKEIpe3FxLnByb3RvdHlwZS5LPUIocXEucHJvdG90eXBlLkspfSksQXFHfHx7aWQ6cyQoKX0pO2Z1bmN0aW9uIHk2KEIseixLKXtyZXR1cm4gZ1syMV0uY2FsbCh0aGlzLDIsQix6LEspfQp2YXIgZzQ9KHk2LnByb3RvdHlwZS5yZXNvbHZlPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKGI9KFc9WyIiLCJYIiwoSz1bIi4uIixudWxsLCIuLyJdLCJwdXNoIildLEM9eVsxNV0oMjYsdGhpcyksKHo9ISFCLk0pP1lbMzFdKDgsITAsQyxCLk0pOno9ISFCLlIsej9DLlI9Qi5SOno9ISFCLnYsej9EWzI4XSg1LCEwLEIudixDKTp6PUIuaSE9S1sxXSxCW1dbMV1dKSx6KXlbMjldKDQzLEIuaSxDKTtlbHNlIGlmKHo9ISFCW1dbMV1dKWlmKGIuY2hhckF0KDApIT0iLyImJih0aGlzLnYmJiF0aGlzW1dbMV1dP2I9Ii8iK2I6KEE9Q1tXWzFdXS5sYXN0SW5kZXhPZihudygpKSxBIT0tMSYmKGI9Q1tXWzFdXS5zbGljZSgwLEErMSkrYikpKSxRPWIsUT09S1swXXx8UT09Ii4iKWI9V1swXTtlbHNlIGlmKERbMjBdKDE2LEtbMl0sUSl8fERbMjBdKDI2LCIvLiIsUSkpe2ZvcihuPShKPSh2PVEubGFzdEluZGV4T2YoIi8iLDApPT0oWj1bXSwwKSxRLnNwbGl0KG53KCkpKSwKMCk7bjxKLmxlbmd0aDspcD1KW24rK10scD09Ii4iP3YmJm49PUoubGVuZ3RoJiZaW1dbMl1dKFdbMF0pOnA9PUtbMF0/KChaLmxlbmd0aD4xfHxaLmxlbmd0aD09MSYmWlswXSE9V1swXSkmJloucG9wKCksdiYmbj09Si5sZW5ndGgmJlpbV1syXV0oV1swXSkpOihaW1dbMl1dKHApLHY9ITApO2I9Wi5qb2luKG53KCkpfWVsc2UgYj1RO3JldHVybih6P1JbNDNdKDksITAsQyxiKTp6PUIuQS50b1N0cmluZygpIT09IiIseik/RFsyOV0oMzcsQyxSWzJdKDEwLEIuQSkpOno9ISFCLmwseiYmZ1s0NV0oNjksQi5sLEMpLEN9LHk2LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigocD0oej0oUT0odj0oSz1bbnVsbCwhMCwiLyJdLHRoaXMuTSksWzAsInB1c2giLCJSIl0pLFtdKSx2JiZ6W1FbMV1dKERbNDFdKDg2LEtbUVswXV0sVjIsdixLWzFdKSx2aCgpKSx0aGlzLnYpKXx8dj09ImZpbGUiKXpbUVsxXV0oTmgoKSksKEM9dGhpc1tRWzJdXSkmJgp6W1FbMV1dKERbNDFdKDYsS1tRWzBdXSxWMixDLEtbMV0pLEdyKCkpLHpbUVsxXV0oR1tRWzBdXSgxMSxwKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csbTAoKSkpLEo9dGhpcy5pLEohPUtbUVswXV0mJnpbUVsxXV0odmgoKSxTdHJpbmcoSikpO2lmKEE9dGhpcy5YKXRoaXMudiYmQS5jaGFyQXQoUVswXSkhPUtbMl0mJnpbUVsxXV0obncoKSkseltRWzFdXShEWzQxXSgzOCxLW1FbMF1dLEEuY2hhckF0KFFbMF0pPT1LWzJdP01TOm96LEEsS1sxXSkpO3JldHVybigoQj0oKGI9dGhpcy5BLnRvU3RyaW5nKCkpJiZ6W1FbMV1dKEsxKCksYiksdGhpcy5sKSkmJnpbUVsxXV0odGsoKSxEWzQxXSg1NCxLW1FbMF1dLFhvOCxCKSkseikuam9pbigiIil9LGZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMjJdLmNhbGwodGhpcywzMixCLHopfSksdk1sPSgoKGc0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKHA9WyJmcm9tIiwiPSIsIiJdLHRoaXMpLlgpcmV0dXJuIHRoaXMuWDsKaWYoej1bXSwhdGhpcy52KXJldHVybiBwWzJdO2ZvcihLPUFycmF5W3BbMF1dKHRoaXMudi5rZXlzKCkpLGI9MDtiPEsubGVuZ3RoO2IrKylmb3IoSj1LW2JdLEM9R1swXSg1LEopLHY9dGhpcy5GcChKKSxBPTA7QTx2Lmxlbmd0aDtBKyspQj1DLHZbQV0hPT0iIiYmKEIrPXBbMV0rR1swXSg2LHZbQV0pKSx6LnB1c2goQik7cmV0dXJuIHRoaXMuWD16LmpvaW4oekwoKSl9LEY9ZzQucHJvdG90eXBlLGc0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKChLPShCPSh0aGlzW1lbNDJdKDksKEo9WyJYIiwidiIsInB1c2giXSwwKSx0aGlzKSxKWzBdXT1udWxsLGtbOV0oMTYsQix0aGlzKSksdGhpc1tKWzFdXS5nZXQoQikpKXx8dGhpc1tKWzFdXS5zZXQoQixLPVtdKSxLW0pbMl1dKHopLHRoaXMpLk0rPTEsdGhpc30sZzQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihCLHope3JldHVybihCPShZW3o9WzksImhhcyIsbnVsbF0sNDJdKDI3LDAsdGhpcyksaylbelswXV0oMiwKQix0aGlzKSx0aGlzKS52W3pbMV1dKEIpPyh0aGlzLlg9elsyXSx0aGlzLk0tPXRoaXMudi5nZXQoQikubGVuZ3RoLHRoaXMudlsiZGVsZXRlIl0oQikpOiExfSxnNC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oQil7dGhpc1t0aGlzW0I9KHRoaXMuTT0wLFsiWCIsbnVsbCwidiJdKSxCWzJdXT1CWzFdLEJbMF1dPUJbMV19LEYuZm9yRWFjaD1mdW5jdGlvbihCLHopeyhZWzQyXSgxMSwwLHRoaXMpLHRoaXMudikuZm9yRWFjaChmdW5jdGlvbihLLEope0suZm9yRWFjaChmdW5jdGlvbihDKXtCLmNhbGwoeixDLEosdGhpcyl9LHRoaXMpfSx0aGlzKX0sRi5EUz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtmb3Ioej0oSz0oWVtBPVsiZnJvbSIsInB1c2giLDEwXSw0Ml0oQVsyXSwwLHRoaXMpLEo9QXJyYXlbQVswXV0odGhpcy52LnZhbHVlcygpKSxBcnJheVtBWzBdXSh0aGlzLnYua2V5cygpKSksMCksQz1bXTt6PEsubGVuZ3RoO3orKylmb3IoQj1KW3pdLGI9MDtiPEIubGVuZ3RoO2IrKylDW0FbMV1dKEtbel0pOwpyZXR1cm4gQ30sRi5GcD1mdW5jdGlvbihCLHosSyxKLEMpe2lmKHR5cGVvZiBCPT09KEo9KFlbNDJdKDI2LChDPVszMiwidiIsMF0sQ1syXSksdGhpcyksW10pLCJzdHJpbmciKSllWzEyXSgxLENbMl0sdGhpcyxCKSYmKEo9Si5jb25jYXQodGhpc1tDWzFdXS5nZXQoa1s5XShDWzBdLEIsdGhpcykpKSk7ZWxzZSBmb3Ioej1BcnJheS5mcm9tKHRoaXNbQ1sxXV0udmFsdWVzKCkpLEs9Q1syXTtLPHoubGVuZ3RoO0srKylKPUouY29uY2F0KHpbS10pO3JldHVybiBKfSxGKS5zZXQ9ZnVuY3Rpb24oQix6LEspe3JldHVybiB0aGlzWygodGhpc1tZWzQyXSgxNCwoSz1bIk0iLDAsIlgiXSxLWzFdKSx0aGlzKSxLWzJdXT1udWxsLEI9a1s5XSgxNixCLHRoaXMpLGVbMTJdKDUsS1sxXSx0aGlzLEIpJiYodGhpc1tLWzBdXS09dGhpcy52LmdldChCKS5sZW5ndGgpLHRoaXMpLnYuc2V0KEIsW3pdKSxLKVswXV0rPTEsdGhpc30sRikuZ2V0PWZ1bmN0aW9uKEIseixLKXtpZighQilyZXR1cm4gejsKcmV0dXJuKEs9dGhpcy5GcChCKSxLLmxlbmd0aD4wKT9TdHJpbmcoS1swXSk6en0sdk1sfHx7aWQ6ZXooKX0pLHg3PSgoT1syMV0oNCxLVSxFcnJvciksb0IucHJvdG90eXBlKS5yZXF1ZXN0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoQT1uZXcgeTYoKGI9KHg9WyJ2IiwxMiwieWUiXSx0aGlzKSx0aGlzKVt4WzBdXSksUls0M10oOSwhMCxBLEdbMzJdKDEsMSwiLyIsQS5YLHopKSxDKS5xdClmb3Iobj1nW3hbMV1dKDYsT2JqZWN0LmVudHJpZXMoQy5xdCkpLFE9bi5uZXh0KCk7IVEuZG9uZTtRPW4ubmV4dCgpKXY9Z1t4WzFdXSg3LFEudmFsdWUpLE49di5uZXh0KCkudmFsdWUsWj12Lm5leHQoKS52YWx1ZSxtWzldKDE3LEEsTixaKTtyZXR1cm4gbmV3IChXPSgocD17IkNvbnRlbnQtdHlwZSI6WlcoKX0sT2JqZWN0KS5hc3NpZ24ocCxDLk9CKSxLW3hbMl1dKCkpLFByb21pc2UpKGZ1bmN0aW9uKGYsTCxyKXtiLkJ2LnNlbmQoQSxmdW5jdGlvbihWLApQLHEpe2lmKFlbcT1bMSwoVj1IWzM1XSgzMiwyLHRoaXMpPT09LTE/dm9pZCAwOkhbMzVdKDMsMix0aGlzKSxQPVsiRmFpbGVkIHRvIGRlc2VyaWFsaXplIHJlc3BvbnNlIGZyb20gIixudWxsLCIiXSwwKSw4MV0sNDBdKHFbMl0scVsxXSx0aGlzKSl0cnl7ZihlWzhdKDMxLFBbcVswXV0seVsyMF0oMzIsUFsyXSx0aGlzKSxKKSl9Y2F0Y2goYyl7TChuZXcgS1UoNCxQW3FbMV1dK0ErIjogIit5WzIwXSg4LFBbMl0sdGhpcyksVikpfWVsc2UgTChuZXcgS1UodGhpcy5NLHR5cGVvZiB0aGlzLmk9PT0ic3RyaW5nIj90aGlzLmk6U3RyaW5nKHRoaXMuaSksVikpfSxCLFcscCwocj1DLkF1KSE9bnVsbD9yOjJFNCxDLndpdGhDcmVkZW50aWFscyl9KX0sbnVsbCkscXA9V1koKTtmdW5jdGlvbiB6RChCKXtyZXR1cm4gWVsxNV0uY2FsbCh0aGlzLDgwLEIpfXZhciB3eD0oSFsyNF0oOTEsekQsJE0pLGszKSgpO2Z1bmN0aW9uIER1KEIpe3JldHVybiBPWzE2XS5jYWxsKHRoaXMsNCxCKX0KdmFyIGNlPShIWzI0XSgyNyxEdSwkTSksdFYoKSk7ZnVuY3Rpb24gTGooQix6KXtyZXR1cm4gbVs1XS5jYWxsKHRoaXMsMzIsQix6KX0oKEhbMjRdKDU5LExqLCRNKSxtUSkucHJvdG90eXBlLmdldD1mdW5jdGlvbihCLHope3JldHVybih6PVtudWxsLDAsInYiXSx0aGlzLk0pPnpbMV0/KHRoaXMuTS0tLEI9dGhpc1t6WzJdXSx0aGlzW3pbMl1dPUIubmV4dCxCLm5leHQ9elswXSk6Qj10aGlzLmkoKSxCfSxtUSkucHJvdG90eXBlLnB1dD1mdW5jdGlvbihCLHopeygoej1bMTAwLCJ2IiwiTSJdLHRoaXMpLlgoQiksdGhpcylbelsyXV08elswXSYmKHRoaXNbelsyXV0rKyxCLm5leHQ9dGhpc1t6WzFdXSx0aGlzW3pbMV1dPUIpfTsKdmFyIGJsLENHPWZ1bmN0aW9uKEIpe3JldHVybiBCfSxXTD0obVszM10oNCwwLGZ1bmN0aW9uKEIpe0NHPUJ9KSxENy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseixLKXt0aGlzLk09KChLPVdGLmdldCgpLEspLnNldChCLHopLHRoaXMuTT90aGlzLk0ubmV4dD1LOnRoaXMudj1LLEspfSxENy5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKEIseil7cmV0dXJuIHRoaXNbQj0oej1bInYiLG51bGwsIk0iXSx6KVsxXSx6WzBdXSYmKEI9dGhpc1t6WzBdXSx0aGlzW3pbMF1dPXRoaXNbelswXV0ubmV4dCx0aGlzW3pbMF1dfHwodGhpc1t6WzJdXT16WzFdKSxCLm5leHQ9elsxXSksQn0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBnWzMyXS5jYWxsKHRoaXMsMjMsQix6LEssSixDLGIpfSksV0Y9bmV3IG1RKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnUn0sZnVuY3Rpb24oQil7cmV0dXJuIEIucmVzZXQoKX0pLGdSPWZ1bmN0aW9uKCl7cmV0dXJuIERbMTNdLmNhbGwodGhpcyw0OCl9LApnaz0oKGdSLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLk09dGhpcy52PW51bGx9LGdSKS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKEIseil7KHRoaXMubmV4dD1udWxsLHRoaXMpLnY9eix0aGlzLk09Qn0sITEpLEdaLEVzPWZ1bmN0aW9uKEIpe3JldHVybiBrWzQxXS5jYWxsKHRoaXMsMSxCKX0sWmk9bmV3IEQ3LGFIPWNBKCksdzk9bmV3IG1RKChGei5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oQil7dGhpc1t0aGlzLnY9KHRoaXMuQT0odGhpcy5pPShCPVshMSxudWxsLCJYIl0sdGhpcy5NPUJbMV0sQilbMV0sQilbMF0sQlsxXSksQlsyXV09QlsxXX0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEZ6fSksZnVuY3Rpb24oQil7Qi5yZXNldCgpfSksTXY9T1soSXAucHJvdG90eXBlW0lwLnByb3RvdHlwZS50aGVuPShGPUlwLnByb3RvdHlwZSxmdW5jdGlvbihCLHosSyl7cmV0dXJuIGVbNF0oNTAsbnVsbCx0NSh0eXBlb2YgQj09PSJmdW5jdGlvbiI/QjpudWxsKSwKdGhpcyx0NSh0eXBlb2Ygej09PSJmdW5jdGlvbiI/ejpudWxsKSxLKX0pLGFIXT0hMCxGWyJmaW5hbGx5Il09ZnVuY3Rpb24oQix6KXtyZXR1cm4gQj0oej10aGlzLHQ1KEIpKSxuZXcgSXAoZnVuY3Rpb24oSyxKKXttWzI0XSgzNCwzLDIseixmdW5jdGlvbihDKXtLKChCKCksQykpfSxmdW5jdGlvbihDKXtKKChCKCksQykpfSl9KX0sRi5QRj1mdW5jdGlvbihCLHope3JldHVybiBlWzQ4XS5jYWxsKHRoaXMsODgsQix6KX0sRikuY2F0Y2g9KChJcC5wcm90b3R5cGUuTz1mdW5jdGlvbihCLHope3o9WzgsMTEsInYiXSx0aGlzW3pbMl1dPTAsZ1t6WzBdXSh6WzFdLDMsdGhpcywzLEIpfSxJcC5wcm90b3R5cGUpLmw9ZnVuY3Rpb24oQix6KXt6PVswLDIsMTRdLHRoaXMudj16WzBdLGdbOF0oelsyXSwzLHRoaXMselsxXSxCKX0sSXAucHJvdG90eXBlKS5QRixGLmNhbmNlbD1mdW5jdGlvbihCLHope3RoaXMudj09MCYmKHo9bmV3IGtVKEIpLGVbNV0oMTcsITAsZnVuY3Rpb24oKXtHWzQzXSgxMCwKMywxLHosdGhpcyl9LHRoaXMpKX0sRi5tYT1mdW5jdGlvbihCKXtyZXR1cm4gRFszMV0uY2FsbCh0aGlzLDIsQil9LDQ1XS5iaW5kKG51bGwsNCksQnE9KChIWzI0XSgyNyxrVSxOUCksa1UpLnByb3RvdHlwZS5uYW1lPUhDKCksZnVuY3Rpb24oQix6LEspe3JldHVybiBEWzMyXS5jYWxsKHRoaXMsMSxLLHosQil9KTsKKCgoKElRKCksT1syMV0oNCxMZyxwUSksTGcpLnByb3RvdHlwZS5GPWZ1bmN0aW9uKEIpe3ZhciB6PVtudWxsLCJYIiwiTSJdOyh0aGlzW3pbMl1dPWFyZ3VtZW50cyx0aGlzLnYpfHx0aGlzLmk/dGhpc1t6WzFdXT0hMDp5WzI4XSg4LCExLHpbMF0sdGhpcyl9LExnLnByb3RvdHlwZSkucGF1c2U9ZnVuY3Rpb24oKXt0aGlzLmkrK30sTGcucHJvdG90eXBlKS5aPWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJ2IiwiWiIsIk0iXSxwUSkucHJvdG90eXBlW0JbMV1dLmNhbGwodGhpcyksQlswXV0mJihrWzE2XSg2Mix0aGlzW0JbMF1dKSx0aGlzW0JbMl1dPW51bGwsdGhpcy5YPSExLHRoaXNbQlswXV09bnVsbCl9LGxHdykoKTtmdW5jdGlvbiBXTigpe3JldHVybiBSWzddLmNhbGwodGhpcywxKX0oV04ucHJvdG90eXBlLmluZm89ZnVuY3Rpb24oKXt9LFdOLnByb3RvdHlwZSkuSTE9ZnVuY3Rpb24oKXtyZXR1cm4gUlszN10uY2FsbCh0aGlzLDEpfTsKZnVuY3Rpb24gJHkoQix6LEssSixDKXtyZXR1cm4gUlsxNV0uY2FsbCh0aGlzLDI2LEIsSixLLHosQyl9CnZhciBJQj0oJHkucHJvdG90eXBlLnNldFRpbWVvdXQ9KCR5LnByb3RvdHlwZS5pWT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7eD0oQT1bMCwyLDE1XSxbMiw0NywyNF0pO3RyeXtpZihCPT10aGlzLnYpYTppZihOPVJbNDJdKDMzLHRoaXMudiksWj10aGlzLnYuTSxXPUhbMzVdKDM1LEFbMV0sdGhpcy52KSwhKE48M3x8Tj09MyYmIURbMjNdKDQsIiIsdGhpcykpKWlmKHRoaXMuS3x8TiE9NHx8Wj09N3x8KFo9PTh8fFc8PUFbMF0/ZzBbNV0oMywzKTpnMFs1XSh4WzBdLEFbMV0pKSxSWzIxXSg0LG51bGwsdGhpcyksdGhpcy5HPXo9SFszNV0oeFswXSxBWzFdLHRoaXMudiksYj1SWzMzXSgxNiw0LCEwLDEsIiIsdGhpcyksRFsyM10oeFswXSwiIix0aGlzKSx0aGlzLlI9ej09MjAwLEdbMzFdKDE4LCJdOiAiLCJcbiIsIiAiLHRoaXMuQSx0aGlzLkwseix0aGlzLm0sdGhpcy5YLHRoaXMuTyxOKSx0aGlzLlIpe2lmKHRoaXMubnEmJiF0aGlzLmope2I6e2lmKHRoaXMudiYmCihDPXRoaXMudiwoSz1DLnY/Qy52LmdldFJlc3BvbnNlSGVhZGVyKEF0KTpudWxsKSYmIVJbeFswXV0oMzYsSykpKXtuPUs7YnJlYWsgYn1uPW51bGx9aWYoSj1uKW1beFsxXV0oODEsQVsxXSxKLHRoaXMuQSx0aGlzLlgsIkluaXRpYWwgaGFuZHNoYWtlIHJlc3BvbnNlIHZpYSAiK0F0KSx0aGlzLmo9ITAsRFs0XSg0OCwxLjUsSix0aGlzKTtlbHNleygoSFs0Nl0oOCwodGhpcy5GPSh0aGlzLlI9ITEsMyksMTIpKSxIKVs5XSg0NCxudWxsLHRoaXMpLFkpWzQzXSgxNyxBWzBdLHRoaXMpO2JyZWFrIGF9fWlmKHRoaXMuSSl7Zm9yKHA9ITA7IXRoaXMuSyYmdGhpcy5XPGIubGVuZ3RoOylpZih2PURbNDJdKHhbMl0sMSx0aGlzLGIpLHY9PUZfKXsoTj09NCYmKHRoaXMuRj00LEhbNDZdKDgsMTQpLHA9ITEpLG0pW3hbMV1dKDgyLEFbMV0sbnVsbCx0aGlzLkEsdGhpcy5YLHJUKCkpO2JyZWFrfWVsc2UgaWYodj09Qkkpe3A9KEhbNDZdKDExLCh0aGlzLkY9NCxBKVt4WzBdXSksbVt4WzFdXSg4MCwKQVsxXSxiLHRoaXMuQSx0aGlzLlgsZWooKSksITEpO2JyZWFrfWVsc2UgbVt4WzFdXSg4OSxBWzFdLHYsdGhpcy5BLHRoaXMuWCxudWxsKSxEWzRdKHhbMl0sMS41LHYsdGhpcyk7dGhpcy5SPSgoZVsyMl0oNSwiR0VUIixBWzFdLHRoaXMpJiZ0aGlzLlchPUFbMF0mJih0aGlzLk0udj10aGlzLk0udi5zbGljZSh0aGlzLlcpLHRoaXMuVz1BWzBdKSxOIT00fHxiLmxlbmd0aCE9QVswXSl8fHRoaXMuTS5NfHwodGhpcy5GPTEsSFs0Nl0oOSwxNikscD0hMSksdGhpcy5SJiZwKSxwP2IubGVuZ3RoPkFbMF0mJiF0aGlzLlhnJiYoUT10aGlzLmksdGhpcy5YZz0hMCxRLnY9PXRoaXMmJlEuSkwmJiFRLkcmJihRLkEuaW5mbygiR3JlYXQsIG5vIGJ1ZmZlcmluZyBwcm94eSBkZXRlY3RlZC4gQnl0ZXMgcmVjZWl2ZWQ6ICIrYi5sZW5ndGgpLERbMjldKHhbMl0sbnVsbCxRKSxRLkc9ITAsSFs0Nl0oMywxMSkpKToobVt4WzFdXSg5MCxBWzFdLGIsdGhpcy5BLHRoaXMuWCxYODgoKSksSFs5XSg1NSwKbnVsbCx0aGlzKSxZWzQzXSgxNCxBWzBdLHRoaXMpKX1lbHNlIG1beFsxXV0oODMsQVsxXSxiLHRoaXMuQSx0aGlzLlgsbnVsbCksRFs0XSg0MCwxLjUsYix0aGlzKTtpZihOPT00JiZIWzldKDU0LG51bGwsdGhpcyksdGhpcy5SJiYhdGhpcy5LKWlmKE49PTQpR1syOF0oMTIsNiw0LHRoaXMuaSx0aGlzKTtlbHNlIHRoaXMuUj0hMSxlWzM0XSgzNCx0aGlzKX1lbHNlIGdbMTJdKHhbMl0sIiIsQVswXSwxLCIsICIsdGhpcy52KSx6PT00MDAmJmIuaW5kZXhPZihtUygpKT5BWzBdPyh0aGlzLkY9MyxIWzQ2XSg5LDEyKSk6KHRoaXMuRj1BWzBdLEhbNDZdKDExLDEzKSksSFs5XSg2LG51bGwsdGhpcyksWVs0M10oMTAsQVswXSx0aGlzKX1jYXRjaChmKXtWSygpLERbMjNdKDEsIiIsdGhpcyl8fEZxKCl9ZmluYWxseXt9fSxmdW5jdGlvbihCKXt0aGlzLnR1PUJ9KSxmdW5jdGlvbigpe3JldHVybiBIWzZdLmNhbGwodGhpcywxNil9KSxOeT0oT1s4XSg4LDQ4LEhbMTddLmJpbmQobnVsbCwxKSksCmZ1bmN0aW9uKEIseixLLEope3JldHVybiBnWzI4XS5jYWxsKHRoaXMsMjQsQix6LEssSil9KSxPVz0oJHkucHJvdG90eXBlLkFMPWZ1bmN0aW9uKEIseixLKXsoej0oKEs9WyJGIiwibm93IiwoQj1bbnVsbCwyLDE3XSwiQiIpXSx0aGlzKS5vPUJbMF0sRGF0ZVtLWzFdXSgpKSx6LXRoaXNbS1syXV0+PTApPyh0aGlzLlImJnNUKCksRFszNl0oNjQsdGhpcy5tLHRoaXMuWCksdGhpcy5nIT1CWzFdJiYoZzBbNV0oMTAsMyksSFs0Nl0oMyxCWzJdKSksSFs5XSg2LEJbMF0sdGhpcyksdGhpc1tLWzBdXT1CWzFdLFlbNDNdKDE1LDAsdGhpcykpOihGbDMoKSxlWzhdKDE0LEJbMF0sdGhpc1tLWzJdXS16LHRoaXMpKX0sKCR5LnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24oKXtIWzldKCh0aGlzLks9ITAsNyksbnVsbCx0aGlzKX0sJHkucHJvdG90eXBlKS5rSj1mdW5jdGlvbihCLHosSyxKKXtpZih6PShKPVsiRiIsImlZIiwiRCJdLEs9Qi50YXJnZXQsdGhpc1tKWzJdXSkseiYmUls0Ml0oNDEsCkspPT0zKWZKKCkseltKWzBdXSgpO2Vsc2UgdGhpc1tKWzFdXShLKX0sR3YoKSk7cVEucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKEIpe3JldHVybiBHbFtyYSgpXS5wYXJzZShCLHZvaWQgMCl9LChxUS5wcm90b3R5cGUuc3RyaW5naWZ5PWZ1bmN0aW9uKEIpe3JldHVybiBHbFtyYSgpXS5zdHJpbmdpZnkoQix2b2lkIDApfSx1bCkucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbihCLHosSyl7aWYodGhpc1t0aGlzLlg9WVs0Ml0oMTgsKEs9WyJNIiwiY2xlYXIiLCJjYW5jZWwiXSxudWxsKSx0aGlzKSxLWzBdXSl0aGlzW0tbMF1dW0tbMl1dKCksdGhpc1tLWzBdXT1udWxsO2Vsc2UgaWYodGhpcy52JiZ0aGlzLnYuc2l6ZSE9PTApe2ZvcihCPSh6PWdbMTJdKDksdGhpcy52LnZhbHVlcygpKSx6Lm5leHQoKSk7IUIuZG9uZTtCPXoubmV4dCgpKUIudmFsdWVbS1syXV0oKTt0aGlzLnZbS1sxXV0oKX19O2Z1bmN0aW9uIGFVKCl7cmV0dXJuIEhbMTVdLmNhbGwodGhpcywxKX0KKCgoKCgoRj0oKCgoKChIWzI0XSgxNyxpcSxSWzE0XS5iaW5kKG51bGwsMjYpKSxpcS5wcm90b3R5cGUpLnY9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGVvKHRoaXMuWCx0aGlzLk0pfSxIKVsyNF0oNDksZW8sb2cpLGVvLnByb3RvdHlwZSkub3Blbj1mdW5jdGlvbihCLHosSyl7aWYoKEs9WzEsIm8iLDE4XSx0aGlzKS5yZWFkeVN0YXRlIT0wKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigiRXJyb3IgcmVvcGVuaW5nIGEgY29ubmVjdGlvbiIpO0RbKHRoaXMucmVhZHlTdGF0ZT1LW3RoaXNbS1sxXV09KHRoaXMuQz1CLHopLDBdLEspWzJdXSgzNSx0aGlzKX0sZW8ucHJvdG90eXBlKS5zZW5kPWZ1bmN0aW9uKEIseixLKXtpZihLPVsiYWJvcnQiLCEwLCJGIl0sdGhpcy5yZWFkeVN0YXRlIT0xKXRocm93IHRoaXNbS1swXV0oKSxFcnJvcigibmVlZCB0byBjYWxsIG9wZW4oKSBmaXJzdC4gIik7aWYodGhpc1tLWzJdXS5zaWduYWwuYWJvcnRlZCl0aHJvdyB0aGlzW0tbMF1dKCksRXJyb3IoIlJlcXVlc3Qgd2FzIGFib3J0ZWQuIik7Cigoej17aGVhZGVyczp0aGlzLmwsbWV0aG9kOnRoaXMuQyxjcmVkZW50aWFsczp0aGlzLkEsY2FjaGU6dm9pZCAwLHNpZ25hbDp0aGlzW3RoaXMudj1LWzFdLEtbMl1dLnNpZ25hbH0sQiYmKHpbemZZKCldPUIpLHRoaXMuVSl8fEdsKS5mZXRjaChuZXcgUmVxdWVzdCh0aGlzLm8seikpLnRoZW4odGhpcy5GdC5iaW5kKHRoaXMpLHRoaXMuYXcuYmluZCh0aGlzKSl9LGVvLnByb3RvdHlwZSkuYWJvcnQ9ZnVuY3Rpb24oQix6KXt0aGlzLnJlYWR5U3RhdGU9KCh0aGlzLnN0YXR1cz0odGhpcy5sPSh6PVsxLDAsKHRoaXMucmVzcG9uc2U9dGhpcy5yZXNwb25zZVRleHQ9IiIsQj1bMCwhMSw0XSwiWCIpXSxuZXcgSGVhZGVycyksQlt6WzFdXSksdGhpcy5GLmFib3J0KHYxKCkpLHRoaXNbelsyXV0mJnRoaXNbelsyXV0uY2FuY2VsKHYxKCkpLmNhdGNoKGZ1bmN0aW9uKCl7fSksdGhpcykucmVhZHlTdGF0ZT49elswXSYmdGhpcy52JiZ0aGlzLnJlYWR5U3RhdGUhPUJbMl0mJih0aGlzLnY9Qlt6WzBdXSwKR1s0OF0oMTYsQlsyXSx0aGlzKSksQlt6WzFdXSl9LGVvLnByb3RvdHlwZSksRikueDk9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMjhdLmNhbGwodGhpcywxOCxCKX0sRikuRnQ9ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDJdLmNhbGwodGhpcywxMCxCKX0sRikuYXc9ZnVuY3Rpb24oKXtyZXR1cm4ga1sxM10uY2FsbCh0aGlzLDQwKX0sRikuQ3o9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMTFdLmNhbGwodGhpcywxNixCKX0sRikuclg9ZnVuY3Rpb24oQix6LEspe3JldHVybiBlWzIzXS5jYWxsKHRoaXMsNDgsQix6LEspfSxGLnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24oQix6KXt0aGlzLmwuYXBwZW5kKEIseil9LEYuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMuTT90aGlzLk0uZ2V0KEIudG9Mb3dlckNhc2UoKSl8fCIiOiIifSxGLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbihCLHosSyxKLEMpe2lmKCF0aGlzW0M9WyJqb2luIiwicHVzaCIsIk0iXSxDWzJdXSlyZXR1cm4iIjsKZm9yKHo9KEo9dGhpc1tDW0I9W10sMl1dLmVudHJpZXMoKSxKLm5leHQoKSk7IXouZG9uZTspSz16LnZhbHVlLEJbQ1sxXV0oS1swXSsiOiAiK0tbMV0pLHo9Si5uZXh0KCk7cmV0dXJuIEJbQ1swXV0oQ3IoKSl9LHhWKGVvLnByb3RvdHlwZSxsYSgpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BPT09ImluY2x1ZGUifSxzZXQ6ZnVuY3Rpb24oQil7dGhpcy5BPUI/QVYoKTokNSgpfX0pLEwzMykoKSxnVmgoKTtmdW5jdGlvbiBzMChCLHope3JldHVybiBIWzE4XS5jYWxsKHRoaXMsMjAsQix6KX0KKCgoKCgoczAucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLlImJnRoaXMuUi5pc0FjdGl2ZSh0aGlzKX0sczApLnByb3RvdHlwZS5CaD0oczAucHJvdG90eXBlLmNvbm5lY3Q9KChzMC5wcm90b3R5cGUuVzE9OCwoRj1pSi5wcm90b3R5cGUsczApLnByb3RvdHlwZS52bD1mdW5jdGlvbihCLHopeyh6PVszLCJpbmZvIiw0Nl0sQik/KHRoaXMuQVt6WzFdXShUMSgpKSxIW3pbMl1dKDEwLDIpKToodGhpcy5BW3pbMV1dKHlYKCkpLEhbelsyXV0oelswXSwxKSl9LHMwKS5wcm90b3R5cGUuTT0oczAucHJvdG90eXBlLkpPPWZ1bmN0aW9uKEIpe0I9WzgsbnVsbCwxOV0sdGhpcy5DIT1CWzFdJiYodGhpcy5DPUJbMV0sWVszNV0oMyxCWzFdLHRoaXMpLERbOV0oNSwhMSx0aGlzKSxIWzQ2XShCWzBdLEJbMl0pKX0sMSksKHMwLnByb3RvdHlwZS56Sj1mdW5jdGlvbihCLHosSyl7KFlbM10oMjUsKHo9WzQsKEs9WyJHIiw1NiwodGhpcy5XPW51bGwsIkZnIildLCJCUCBkZXRlY3Rpb24gdGltZXIgZW5hYmxlZDogIiksCjBdLHpbMl0pLCEwLHRoaXMpLCF0aGlzLkpMKXx8dGhpc1tLWzBdXXx8dGhpcy52PT1udWxsfHx0aGlzW0tbMl1dPD16WzJdfHwoQj16WzBdKnRoaXNbS1syXV0sdGhpcy5BLmluZm8oelsxXStCKSx0aGlzLm89Z1swXShLWzFdLFJ4KHRoaXMuYTAsdGhpcyksQikpfSxzMCkucHJvdG90eXBlLmEwPWZ1bmN0aW9uKEIseil7KEI9WyExLG51bGwsITBdLHo9WzEsMCwiSCJdLHRoaXMubyk/KHRoaXMubz1CW3pbMF1dLHRoaXMuQS5pbmZvKEVvKCkpLHRoaXMuQS5pbmZvKGNhKCkpLHRoaXNbelsyXV09Qlt6WzFdXSx0aGlzLkc9QlsyXSxIWzQ2XSgyLDEwKSxZWzM1XSgyLEJbelswXV0sdGhpcyksWVszXSgyNCx6WzFdLEJbMl0sdGhpcykpOnkxKCl9LHMwLnByb3RvdHlwZS5CMT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoeD1bIm5xIiwiWCIsKEs9WyJvZnM9IiwhMCwxXSw1NyldLHRoaXMuRilpZih0aGlzLkY9bnVsbCxzZigpLHRoaXMuTT09S1syXSlpZihCKXRPKCk7CmVsc2V7aWYoKG49KEM9KHRoaXMuWGc9KFU5KCksYk4oQWUoKSoxRTUpKSxwPXRoaXMuWGcrKyxuZXcgJHkocCx0aGlzLHRoaXMuQSx2b2lkIDApKSx0aGlzLk8pLHRoaXNbeFswXV0mJihuPyhuPW1bNDJdKDM0LG4pLEQ2KG4sdGhpc1t4WzBdXSkpOm49dGhpc1t4WzBdXSksdGhpcy5sIT09bnVsbCl8fHRoaXMuTHx8KEMuSD1uLG49bnVsbCksdGhpcy5CKWE6e2Zvcih2PVo9MDt2PHRoaXMuaS5sZW5ndGg7disrKXtiOntpZihPVyBpbihOPXRoaXMuaVt2XSxOLm1hcCkmJihBPU4ubWFwW09XXSx0eXBlb2YgQT09PSJzdHJpbmciKSl7Sj1BLmxlbmd0aDticmVhayBifUo9dm9pZCAwfWlmKChRPUosUSk9PT12b2lkIDApYnJlYWs7aWYoWis9USxaPjQwOTYpe3o9djticmVhayBhfWlmKFo9PT00MDk2fHx2PT09dGhpcy5pLmxlbmd0aC1LWzJdKXt6PXYrS1syXTticmVhayBhfX16PXRoaXMud2J9ZWxzZSB6PXRoaXMud2I7aWYoKCgoKChXPShiPWVbMjFdKDUsInR5cGU9IixLWzBdLHosdGhpcywKQykseSlbMTVdKDM2LHRoaXMuaiksbSlbOV0oMTMsVyxxaCgpLHApLG0pWzldKDExLFcsbHQ4KCksMjIpLHRoaXMuUCkmJm1bOV0oMTEsVyxuYix0aGlzLlApLEhbMzJdKDUsVyx0aGlzKSxuJiYodGhpcy5MP2I9ImhlYWRlcnM9IitHWzBdKDQsZ1sxMV0oMjUsIlxyXG4iLCIiLG4pKSsiJiIrYjp0aGlzLmwmJk9bNF0oMTgsS1sxXSxuLHRoaXMubCxXKSksT1szOF0oMjIsdGhpc1t4WzFdXSxDKSx0aGlzKS5YQyYmbVs5XSgxMSxXLG0yKCksUWwoKSksdGhpcykuQiltWzldKDksVyxrdygpLGIpLG1bOV0oNyxXLHlFKCksSjAoKSksQ1t4WzBdXT1LWzFdLEhbMzBdKHhbMl0sInR5cGUiLEMsVyxudWxsKTtlbHNlIEhbMzBdKDU4LCJ0eXBlIixDLFcsYik7dGhpcy5NPTJ9ZWxzZSBpZih0aGlzLk09PTMpaWYoQillWzE4XSgyMCxLWzBdLEtbMV0sdGhpcyxCKTtlbHNlIHRoaXMuaS5sZW5ndGg9PTB8fGcwWzNdKDI0LHRoaXNbeFsxXV0pfHwoZVsxOF0oMjEsS1swXSxLWzFdLHRoaXMpLFhZKCkpfSwKZnVuY3Rpb24oQix6LEssSixDLGIpeyh0aGlzLmo9KCgodGhpcy5IPSgodGhpcy5pWT0oKEM9WyhiPVs0NiwxLCJLIl0sMCksIi4iLCIiXSxSJCgpLEgpW2JbMF1dKDIsQ1swXSksdGhpc1tiWzJdXT16fHx7fSxCKSxLJiZKIT09dm9pZCAwKSYmKHRoaXNbYlsyXV1bSSQoKV09Syx0aGlzW2JbMl1dW21NWSgpXT1KKSx0aGlzLkFMKSxUNDgpKCksdGhpcykuQmgoYlsxXSxDWzBdKSxnWzIxXSgxNyxDWzJdLENbYlsxXV0sdGhpcy5pWSx0aGlzLG51bGwpKSxrKVsyNF0oNCxDWzBdLHRoaXMpfSksZnVuY3Rpb24oQil7WVs4XSgyNCxhcmd1bWVudHMsdGhpcy5NKX0pLEYpLm1NPWZ1bmN0aW9uKCl7fSxGKS5nUT1mdW5jdGlvbigpe30sRikucVo9ZnVuY3Rpb24oKXt9LEYpLk5aPWZ1bmN0aW9uKCl7fSxGLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuITB9LEYpLlJqPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMjJdLmNhbGwodGhpcyw5KX07CmZ1bmN0aW9uIElqKCl7cmV0dXJuIFlbNV0uY2FsbCh0aGlzLDkpfQp2YXIgQUY9KCgoSFsyNF0oMjUsRjMsb2cpLEYzKS5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXtnWzQ1XSg5LG51bGwsdGhpcy52KX0sRjMucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIpeyh0eXBlb2YgQj09PShiPVszLDIsKEs9dGhpcy52LDApXSwic3RyaW5nIik/KHo9e30seltPV109QixKPXopOnRoaXMuQT8oQz17fSxDW09XXT0obmV3IEJSKS55ZShCKSxKPUMpOko9QixLLmkucHVzaChuZXcgTmQoSy5udSsrLEopKSxLLk09PWJbMF0pJiZrWzI0XShiWzFdLGJbMl0sSyl9LEYzLnByb3RvdHlwZSkuWj1mdW5jdGlvbihCKXsoZGVsZXRlICgoKEI9WyJ2IiwiWiIsNDVdLHRoaXNbZGVsZXRlIHRoaXMuWCxCWzBdXSkuUj1udWxsLGcpW0JbMl1dKDgsbnVsbCx0aGlzW0JbMF1dKSx0aGlzKVtCWzBdXSxGMy5ZKVtCWzFdXS5jYWxsKHRoaXMpfSxIWzI0XSg4MyxOeSxMciksSFsyNF0oOTAsa0UscGEpLGZ1bmN0aW9uKEIpe3JldHVybiBtWzI0XS5jYWxsKHRoaXMsCjI0LEIpfSksVE93PSgoKChIWzI0XSg4MSxBRixpSiksQUYucHJvdG90eXBlKS5xWj1mdW5jdGlvbihCKXtnWzNdKDQ5LHRoaXMudixuZXcga0UoQikpfSxBRi5wcm90b3R5cGUubU09ZnVuY3Rpb24oKXtnWzNdKDUwLHRoaXMudiwiYiIpfSxBRikucHJvdG90eXBlLk5aPWZ1bmN0aW9uKCl7Z1szXSg1MCx0aGlzLnYsImEiKX0sQUYpLnByb3RvdHlwZS5nUT1mdW5jdGlvbihCKXtnWzNdKDQ5LHRoaXMudixuZXcgTnkoQikpfSxUT3d8fHtpZDpkMSgpfSksakVEPWpFRHx8e2lkOnozRCgpfSxwSDA9cEgwfHx7aWQ6UnooKX0sUUV3PVFFd3x8e2lkOk1DOCgpfSxuTXc9bk13fHx7aWQ6ckwoKX0sWnlsPVp5bHx8e2lkOmZlKCl9LFd4aD1XeGh8fHtpZDpITygpfSxnTTM9Z00zfHx7aWQ6VnIoKX0seDk9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMjRdLmNhbGwodGhpcywxOCxCKX0sTk84PU5POHx8e2lkOlA0KCl9LE95OD1PeTh8fHtpZDpKNygpfSx4cHc9eHB3fHx7aWQ6ekEoKX0sRHA4PURwOHx8CntpZDpDUCgpfSxmSDg9Zkg4fHx7aWQ6blYoKX0sb01oPW9NaHx8e2lkOmRsKCl9LEx4TT1MeE18fHtpZDpMek0oKX0sUnlZPVJ5WXx8e2lkOlZKTSgpfSxycTg9cnE4fHx7aWQ6ZklEKCl9O2Z1bmN0aW9uIExZKCl7dmFyIEI9W251bGwsImFwcGx5IiwwXTtyZXR1cm4gVmhOW0JbMV1dKEJbMF0sZVszM10oMTIsRzJbQlsxXV0oQlsyXSxhcmd1bWVudHMpKSl9CmZ1bmN0aW9uIFZoTigpe3ZhciBCPVs0Niw0NSwxXSx6PUcyLmFwcGx5KDAsYXJndW1lbnRzKSxLPUdbM10oMzIselt6Lmxlbmd0aC1CWzJdXSk/ei5wb3AoKTp2b2lkIDA7cmV0dXJuIGtbQlswXV0oQlsxXSxmdW5jdGlvbihKLEMsYixBLHYscCl7dj0oQT1EW2I9KHA9WzAsImNvbmNhdCIsKGI9MSwzMyldLGIpPT09dm9pZCAwP0luZmluaXR5OmIsMzJdKDY1LCEwLHBbMF0sYixIWzQ3XS5iaW5kKG51bGwsMTcpKSxbSl1bcFsxXV0oZVtwWzJdXSgzLHopKSksQShLP09bMTFdKDc2LHBbMF0sdixLKTpEW3BbMl1dKDE3LHBbMF0sdikpLnN1YnNjcmliZShDKX0pfQp2YXIgR084PUdPOHx8e2lkOnNuWigpfSxIeU49SHlOfHx7aWQ6SjhxKCl9LGV5cT1leXF8fHtpZDppaSgpfSxQWU49UFlOfHx7aWQ6eFVxKCl9LCRwMz0kcDN8fHtpZDpmNmgoKX0scXNOPXFzTnx8e2lkOlFZKCl9LGl5TT1peU18fHtpZDpVYygpfSx5cUc9eXFHfHx7aWQ6Y20oKX0sWXN4PVlzeHx8e2lkOlE0KCl9LGNxMz1jcTN8fHtpZDpiaEcoKX0sU3M4PVNzOHx8e2lkOnA4dygpfSxtcHE9bXBxfHx7aWQ6eV8oKX0sbEhoPWxIaHx8e2lkOnFFKCl9LEVNeD1FTXh8fHtpZDpDRSgpfSxYSHc9WEh3fHx7aWQ6YUk4KCl9LHVneD11Z3h8fHtpZDpKbSgpfSxhSE49YUhOfHx7aWQ6cFYoKX0saHlZPWh5WXx8e2lkOkIwKCl9LGRwcT1kcHF8fHtpZDpYZmwoKX0sa09NPWtPTXx8e2lkOkE4TigpfSx0aHg9dGh4fHx7aWQ6RkYoKX0sVXA4PVVwOHx8e2lkOkhtKCl9LE1oWj1NaFp8fHtpZDpubygpfSx3SFo9d0hafHx7aWQ6TTYoKX0sSUhZPUlIWXx8e2lkOm5FKCl9OwpmdW5jdGlvbiBLeShCLHope3ZhciBLPWFyZ3VtZW50cy5sZW5ndGg+PTI7cmV0dXJuIGZ1bmN0aW9uKEosQyxiKXtyZXR1cm4oQz1bIShiPVshMCwwLDMyXSwxKSwwLDFdLEopLmhzKEI/Z1sxOF0oNDAsQ1sxXSxmdW5jdGlvbihBLHYpe3JldHVybiBCKEEsdixKKX0pOkhbNDddLmJpbmQobnVsbCxiWzJdKSxSWzQwXSgxNyxDWzFdLENbMl0pLEs/RFsyOV0oNixDW2JbMV1dLGJbMF0seik6RFsyMl0oMTYsQ1tiWzFdXSxiWzBdLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1Nn0pKX19CnZhciBGeEc9RnhHfHx7aWQ6eXhoKCl9LEJwRD1CcER8fHtpZDpSMzgoKX0sc1Y4PXNWOHx8e2lkOmNlOCgpfSx6Szg9eks4fHx7aWQ6cE8oKX0sS0dEPUtHRHx8e2lkOmdmKCl9LEo1OD1KNTh8fHtpZDpqVSgpfSxDdXc9Q3V3fHx7aWQ6R2MoKX0sYndaPWJ3Wnx8e2lkOnNaMygpfSxBNTM9QTUzfHx7aWQ6VUkoKX0sdkpaPXZKWnx8e2lkOmNNKCl9LFRwOD1UcDh8fHtpZDpmZCgpfSxqVkc9alZHfHx7aWQ6YTg4KCl9LHBORD1wTkR8fHtpZDpKYygpfSxRVmg9UVZofHx7aWQ6blc4KCl9LG5KWT1uSll8fHtpZDptVSgpfSxadzg9Wnc4fHx7aWQ6dGooKX0sV0dZPVdHWXx8e2lkOmRZKCl9LGdKRz1nSkd8fHtpZDpNSk0oKX0sTnBxPU5wcXx8e2lkOkcwKCl9OwpmdW5jdGlvbiBGNygpe3ZhciBCPVs0Nyw0NiwiYXBwbHkiXSx6PUcyW0JbMl1dKDAsYXJndW1lbnRzKTtyZXR1cm4gei5sZW5ndGg/a1tCWzFdXSg0MixmdW5jdGlvbihLLEosQyl7RFtDPVtudWxsLDM1LDNdLENbMV1dKDU3LENbMF0sMCxbS10uY29uY2F0KGVbMzNdKENbMl0seikpKShKKX0pOkhbQlswXV0uYmluZChudWxsLDMzKX0KdmFyIE93MD1PdzB8fHtpZDpBaSgpfSx4R3E9eEdxfHx7aWQ6QTIoKX0sREdsPURHbHx8e2lkOm1pKCl9LGZTRz1mU0d8fHtpZDp3VygpfSxvSk49b0pOfHx7aWQ6YjcoKX0sTEdHPUxHR3x8e2lkOlVKKCl9LFJLdz1SS3d8fHtpZDpKbigpfSxyNTM9cjUzfHx7aWQ6clFOKCl9LFZldz1WZXd8fHtpZDpMOCgpfSxHJHE9RyRxfHx7aWQ6SyQoKX0sSHc4PUh3OHx8e2lkOnpKOCgpfSxlS3g9ZUt4fHx7aWQ6QWVEKCl9LFB1Wj1QdVp8fHtpZDpCdigpfSwkR0c9JEdHfHx7aWQ6bHgoKX0scXBaPXFwWnx8e2lkOlBCKCl9LGl3bD1pd2x8fHtpZDpFQVooKX0seTVEPXk1RHx8e2lkOnpZWSgpfSxZcHc9WXB3fHx7aWQ6QnJoKCl9LGM1OD1jNTh8fHtpZDpJOHEoKX0sU3BxPVNwcXx8e2lkOkFtKCl9LG1HOD1tRzh8fHtpZDpqVigpfSxsU1k9bFNZfHx7aWQ6bUooKX0sRUp4PUVKeHx8e2lkOnp6KCl9LFhOWT1YTll8fHtpZDprTFooKX0sdWJZPXViWXx8e2lkOkMyRygpfSxhU3g9YVN4fHx7aWQ6TnMoKX0sCmhLMD1oSzB8fHtpZDpMSDAoKX0sZEdEPWRHRHx8e2lkOmtHKCl9LGskOD1rJDh8fHtpZDphdEQoKX0sdGU4PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBrWzE5XS5jYWxsKHRoaXMsMTMsQixKLEsseil9LFVHWj1VR1p8fHtpZDpMVCgpfSxNZU49TWVOfHx7aWQ6Y1FoKCl9LHdOOD13Tjh8fHtpZDpIUSgpfSxJUzg9SVM4fHx7aWQ6ZiQoKX0sRkczPUZHM3x8e2lkOkdZKCl9LEJGRD1CRkR8fHtpZDpOcmgoKX0sc2kwPXNpMHx8e2lkOnluKCl9LHpUcT16VHF8fHtpZDokdSgpfSxLczg9S3M4fHx7aWQ6dmVNKCl9LGt5PVckKCksRyQ9V3koKSxrRj1wTHEoKSxKYVk9KEtuLnByb3RvdHlwZS5zdGFydD0oR3UucHJvdG90eXBlLmFkZD1mdW5jdGlvbihCKXt0aGlzLnYucHVzaChCKX0sQkgucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oQix6LEssSil7KEo9WzQwMywzNCwiTSJdLHRoaXMpW0pbMl1dKG5ldyBtbU4oQikpLEs9Z1tKWzFdXSgxOCwxLG5ldyB6RixrW0pbMV1dKDM4LEpbMF0sCjUseikpLEdbOV0oNTgsMSwyLHRoaXMsSyl9LGZ1bmN0aW9uKEIpe3JldHVybiBuZXcgbEYodGhpcy5NLEIsITAsdGhpcy5YLHRoaXMudil9KSxKYVkpfHx7aWQ6c2MoKX0sREY9ckMoKSxmWj1nVCgpLENWOD17aXk6bmV3IHk2KCJodHRwczovL3NpZ25hbGVyLXBhLmNsaWVudHM2Lmdvb2dsZS5jb20vcHVuY3R1YWwiKSxmRDpuZXcgeTYoImh0dHBzOi8vc2lnbmFsZXItcGEuZ29vZ2xlYXBpcy5jb20vcHVuY3R1YWwiKSxRWDohMX0sbzU9e2l5Om5ldyB5NigiaHR0cHM6Ly9wdW5jdHVhbC5jb3JwLmdvb2dsZS5jb20vcHVuY3R1YWwiKSxmRDpuZXcgeTYsUVg6ITF9LGI5OD17aXk6bmV3IHk2KCJodHRwczovL3B1bmN0dWFsLWRldi5jb3JwLmdvb2dsZS5jb20vcHVuY3R1YWwiKSxmRDpuZXcgeTYoImh0dHBzOi8vc2lnbmFsZXItc3RhZ2luZy5zYW5kYm94Lmdvb2dsZS5jb20vcHVuY3R1YWwiKSxRWDohMX0sQWE4PW5ldyBNYXAoW1siY29ycCIsbzVdLFsicHJvZCIsQ1Y4XSxbInByb2QtdXAiLApvNV0sWyJwcmVwcm9kLWR5bmFtaXRlLWFscGhhLXVzIixIWzldKDE2LGthKCkpXSxbInByZXByb2QtZHluYW1pdGUtYWxwaGEtZXUiLEhbOV0oMjgseG0oKSldLFsicHJlcHJvZC1keW5hbWl0ZS1iZXRhLXVzIixIWzldKDIwLGs2KCkpXSxbInByZXByb2QtZHluYW1pdGUtYmV0YS1ldSIsSFs5XSgxMixNbigpKV0sWyJwcmVwcm9kLWR5bmFtaXRlLWdhbW1hLXVzIixIWzldKDI0LEppKCkpXSxbInByZXByb2QtZHluYW1pdGUtZ2FtbWEtZXUiLEhbOV0oMTIsb0QoKSldLFsicHJlcHJvZC1xdWFsLWR5bmFtaXRlLXBlcmZ0ZXN0IixtWzEzXSgyMCxPOSgpKV0sWyJwcm9kLWR5bmFtaXRlLXByb2QtMDAtZXUiLEhbOV0oMjQsb1coKSldLFsicHJvZC1keW5hbWl0ZS1wcm9kLTAxLWV1IixIWzldKDI4LE9VKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wMC11cyIsSFs5XSg0LGZQKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wMS11cyIsSFs5XSg0LFh3KCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wMi11cyIsCkhbOV0oMTYsbGcoKSldLFsicHJvZC1keW5hbWl0ZS1wcm9kLTAzLXVzIixIWzldKDE2LHNiKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wNC11cyIsSFs5XSgyOCxhcSgpKV0sWyJwcm9kLWR5bmFtaXRlLXByb2QtMDUtdXMiLEhbOV0oMTIsSmIoKSldLFsicHJvZC1keW5hbWl0ZS1wcm9kLTA2LXVzIixIWzldKDIwLHhTKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wNy11cyIsSFs5XSg0LE1nKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wOC11cyIsSFs5XSgyMCxYdigpKV0sWyJwcm9kLWR5bmFtaXRlLXByb2QtMDktdXMiLEhbOV0oMjQsV2EoKSldLFsiZHluYW1pdGUtYWxwaGEtdXMiLHlbMjhdKDY4LFVVKCksa2EoKSldLFsiZHluYW1pdGUtYWxwaGEtZXUiLHlbMjhdKDY1LFVVKCkseG0oKSldLFsiZHluYW1pdGUtYmV0YS11cyIseVsyOF0oNjksVVUoKSxrNigpKV0sWyJkeW5hbWl0ZS1iZXRhLWV1Iix5WzI4XSg2NCxVVSgpLE1uKCkpXSxbImR5bmFtaXRlLWdhbW1hLXVzIiwKeVsyOF0oNSxVVSgpLEppKCkpXSxbImR5bmFtaXRlLWdhbW1hLWV1Iix5WzI4XSgxLFVVKCksb0QoKSldLFsiZHluYW1pdGUtcHJvZC0wMC11cyIseVsyOF0oNjgsZzIoKSxmUCgpKV0sWyJkeW5hbWl0ZS1wcm9kLTAwLWV1Iix5WzI4XSgxLGcyKCksb1coKSldLFsiZHluYW1pdGUtcHJvZC0wMS11cyIseVsyOF0oNjUsZzIoKSxYdygpKV0sWyJkeW5hbWl0ZS1wcm9kLTAxLWV1Iix5WzI4XSg2OSxnMigpLE9VKCkpXSxbImR5bmFtaXRlLXByb2QtMDItdXMiLHlbMjhdKDUsZzIoKSxsZygpKV0sWyJkeW5hbWl0ZS1wcm9kLTAzLXVzIix5WzI4XSg2NCxnMigpLHNiKCkpXSxbImR5bmFtaXRlLXByb2QtMDQtdXMiLHlbMjhdKDEsZzIoKSxhcSgpKV0sWyJkeW5hbWl0ZS1wcm9kLTA1LXVzIix5WzI4XSg2OSxnMigpLEpiKCkpXSxbImR5bmFtaXRlLXByb2QtMDYtdXMiLHlbMjhdKDUsZzIoKSx4UygpKV0sWyJkeW5hbWl0ZS1wcm9kLTA3LXVzIix5WzI4XSg2OCxnMigpLE1nKCkpXSxbImR5bmFtaXRlLXByb2QtMDgtdXMiLAp5WzI4XSg2NCxnMigpLFh2KCkpXSxbImR5bmFtaXRlLXByb2QtMDktdXMiLHlbMjhdKDY1LGcyKCksV2EoKSldLFsicHJvZC1hc2lhLWVhc3QxIixtWzEzXSgyMCxHVigpKV0sWyJwcm9kLWFzaWEtc291dGhlYXN0MSIsbVsxM10oMjIsZE5oKCkpXSxbInByb2QtZXVyb3BlLW5vcnRoMSIsbVsxM10oMjEsdk0oKSldLFsicHJvZC1ldXJvcGUtd2VzdDEiLG1bMTNdKDUyLEh1KCkpXSxbInByb2QtZXVyb3BlLXdlc3Q0IixtWzEzXSg1Mix3SCgpKV0sWyJwcm9kLXNvdXRoYW1lcmljYS13ZXN0MSIsbVsxM10oMjIsSk4oKSldLFsicHJvZC11cy1jZW50cmFsMSIsbVsxM10oNTMseE5EKCkpXSxbInByb2QtdXMtY2VudHJhbDIiLG1bMTNdKDIxLGdVKCkpXSxbInByb2QtdXMtZWFzdDEiLG1bMTNdKDU0LGtjKCkpXSxbInByb2QtdXMtd2VzdDEiLG1bMTNdKDUzLG1hKCkpXSxbInl0cHJvZCIse2l5Om5ldyB5NigiaHR0cHM6Ly9zaWduYWxlci1wYS55b3V0dWJlLmNvbS9wdW5jdHVhbCIpLGZEOm5ldyB5NigiaHR0cHM6Ly9zaWduYWxlci1wYS5nb29nbGVhcGlzLmNvbS9wdW5jdHVhbCIpLApRWDohMX1dLFsiZGV2IixiOThdXSksdlVHPXZVR3x8e2lkOkF2KCl9LExaPVswLChPWzIxXSg1LGhCLFQpLENYKV0sUjU9KChPWzIxXSgoaEIucHJvdG90eXBlLlQ9Uls0OF0oNCxMWiksNiksYVIsVCksYVIucHJvdG90eXBlKS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB5WzMzXSg0MywyLHRoaXMpfSxbMCxnJCxJXyxDWCxJX10pLHJSPVswLChPWzIxXSgzLChhUi5wcm90b3R5cGUuVD1SWzQ4XSg1LFI1KSx1ZiksVCksS1gpLENYXSxGeT0oT1syMV0oNCxzZSwodWYucHJvdG90eXBlLlQ9Uls0OF0oMSxyUiksVCkpLGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIGdbNDddLmNhbGwodGhpcywzMixCLHosSyxKLEMpfSksaGs9KE9bOF0oNiwyOSxrWzM4XS5iaW5kKG51bGwsMSkpLDI1NSksdCQ9e30salg9ZVszNV0oNjMsbnVsbCxzZSksUjY9KE9bOF0oKHNlLnByb3RvdHlwZS5UPVJbNDhdKDgsWzAsWF8sZyQscFgsWzBdLHBYLFswXSxwWCxyUixwWCxSNSxwWCxMWl0pLDkpLDIwLApmdW5jdGlvbihCLHosSyxKKXtmb3IoSz0oSj1bInRhZ05hbWUiLDU5LCIsIl0sSilbMV07SyE9NzY7KXtpZihLPT00MilyZXR1cm4gSFs4XSgxMiwyMjcpKEIpO2lmKEs9PTg4KXJldHVybiB6PWtbMzVdKDQ4LEJbSlswXV0rQi5pZCtCLmNsYXNzTmFtZSksQltKWzBdXStKWzJdK3o7Sz09SlsxXSYmKEs9QiYmQiBpbnN0YW5jZW9mIEVsZW1lbnQ/ODg6NDIpfX0pLFByb21pc2UpLHJxPShQZC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihCLHosSyxKLEMpeygoSj1uZXcgKEM9WzIwLCJwb3J0MiIsInBvcnQxIl0sSz1LPT09dm9pZCAwP1tdOkssTWVzc2FnZUNoYW5uZWwpLGcpW0NbMF1dKDEsMCxKW0NbMl1dLHopLHRoaXMudikucG9zdE1lc3NhZ2UoQixbSltDWzFdXV0uY29uY2F0KEspKX0sZXcpKCksVmk9b3goKSxmcj1mdW5jdGlvbigpe3JldHVybiBZWzE3XS5jYWxsKHRoaXMsMil9LFRGMD1URjB8fHtpZDpyTigpfSxUbD1bMTA0LDk3LDExMCwxMDAsNDUsMTAzLDEwMSwxMTUsMTE2LAoxMTcsMTE0LDEwMSwxMTUsNDUsMTA1LDEwMiwxMTQsOTcsMTA5LDEwMV0ubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKEIpfSkuam9pbigiIiksamlOPWppTnx8e2lkOno2KCl9LHBkdz1wZHd8fHtpZDpabygpfSxRaTg9UWk4fHx7aWQ6anhsKCl9LG5Vdz1uVXd8fHtpZDp6ZygpfSxaOWw9WjlsfHx7aWQ6Q28oKX0sV3NsPVdzbHx8e2lkOlVxWSgpfSxnVTA9KFY0TSgpLGdVMHx8e2lkOmFtKCl9KSxORk49TkZOfHx7aWQ6QVkzKCl9LE85cT0oKCgoKCgoKCgoKChESigpLFlSdykoKSxpNWgoKSxxJCgpLHBUKSgpLEVWOCgpLEdLKSgpLGU2KSgpLFdyKSgpLEdwKSgpLEdqRygpLHFCKCksZUgoKSxuQTMpKCksVHopKCksTl9oKCksbHooKSxadikoKSx1bzgoKSxQdikoKSxZRCgpLG5PKSgpLE85cXx8e2lkOmxfKCl9KSx4NTA9eDUwfHx7aWQ6aDNxKCl9LEQ1Tj1ENU58fHtpZDpJaTgoKX0sZkVsPShLTigpLE5vKCksTTIoKSxmRWwpfHx7aWQ6a3UoKX0sT2w9CmZ1bmN0aW9uKEIpe3JldHVybiBtWzZdLmNhbGwodGhpcyw4OSxCKX0sb1VxPW9VcXx8e2lkOnBvKCl9LFhnPWZ1bmN0aW9uKEIpe3JldHVybiBIWzQwXS5jYWxsKHRoaXMsMzIsQil9LExzaD0oeTkoKSxMc2h8fHtpZDplTzAoKX0pLFJUaD1SVGh8fHtpZDphaCgpfSxyYU49cmFOfHx7aWQ6WU8zKCl9LFZMeD0oKCgodWUoKSx3WSgpLEFwKCksdTcpKCksRWh4KSgpLGYzKSgpLEdMRCgpLFF4eCgpLFZMeCl8fHtpZDpJMCgpfSxHRTg9R0U4fHx7aWQ6c284KCl9LEg5Wj1IOVp8fHtpZDp6cCgpfSxlVGg9ZVRofHx7aWQ6cmgoKX0sUFZ3PVBWd3x8e2lkOlcwKCl9LCQ1MD0oT1s4XSg5LDksR1s3XS5iaW5kKG51bGwsMTYpKSwkNTB8fHtpZDpXejgoKX0pLHFobD1xaGx8fHtpZDpsUygpfSxpOTM9KCgoKE9KKCksa20pKCksUmEpKCksbnYpKCksbk94KCksUV8oKSxpOTMpfHx7aWQ6TlkoKX0seWFxPXlhcXx8e2lkOmhuKCl9LFloTT1ZaE18fHtpZDp0dygpfSxOdj1HayxjYUQ9Y2FEfHx7aWQ6JG8oKX0sClNoTj0oKEczLnByb3RvdHlwZS5zZXRJbnRlcnZhbD1mdW5jdGlvbihCLHopeyh6PVs0Mywic3RhcnQiLDE5XSx0aGlzLlg9Qix0aGlzLnYmJnRoaXMuTSk/KEhbelsyXV0oMjcsITEsdGhpcyksdGhpc1t6WzFdXSgpKTp0aGlzLnYmJkhbelsyXV0oelswXSwhMSx0aGlzKX0sRzMpLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihCLHopeyh0aGlzWyh6PVsoQj10aGlzLCJNIiksIkEiLCJ2Il0seilbMF1dPSEwLHRoaXNbelsyXV0pfHwodGhpc1t6WzJdXT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bVszNF0oMTcsLjgsITEsQil9LHRoaXMuWCksdGhpc1t6WzFdXT10aGlzLmkoKSl9LFNoTnx8e2lkOmdoOCgpfSksbTVxPW01cXx8e2lkOmgyKCl9LGxFOD1MSCgpLEVVbD1EcigpLFhkOD13cygpLFZOPVswLDEyLChPWzIxXSgzLHNLLFQpLElfKSwxMCxLWF0sR2Y9WzAsMSxWTixbMCwoT1tzSy5wcm90b3R5cGUuVD1SWzQ4XSg5LFZOKSwyMV0oNix6USxUKSw3KSxbMCxJXywtMV1dXSxrcz0oelEucHJvdG90eXBlLlQ9ClJbNDhdKDgsR2YpLGQyKCkpLEhHPShZYSgpLFpwKCksZnVuY3Rpb24oQil7cmV0dXJuIEdbMjBdLmNhbGwodGhpcyw0OCxCKX0pLE9zPSgoKCgoKFFuaCgpLGV4MykoKSx5SygpLGVuKCksU1YoKSxZNigpLHZCKSgpLHV0KCkseHVNKCksZ2Y4KSgpLFF1KSgpLHhHKSgpLFJPKCksWWx3KCkpLHdQPShTQSgpLFVTKCkpLFBqPVsyNzcsKCgoKChDQSgpLG9BRCgpLCQyKSgpLGg3KCksWEMoKSx1cnEpKCksblQoKSxTOSgpLEZDTSgpLHpfKCksQWMpKCksWmhEKSgpLDQzOTEpLDMyNzc5XSxMaz0oUHIoKSxrOE0oKSxpUTgpKCksc2k9KElWdygpLExJKCkpLGVMPSgoKCgoKElsKCksVFYoKSxKQykoKSx4bTgpKCksbUEoKSxiJCkoKSxPUCkoKSx0aCkoKSxybCgpLGwkKCkpLGpxPSgoKCgoZ3UoKSxEJCkoKSxKaigpLHhsKSgpLGllKSgpLGZpKCksRmc4KCksVnkpKCksZnVuY3Rpb24oQil7cmV0dXJuIFlbMjBdLmNhbGwodGhpcyw1NSxCKX0pLE5wPSRRKCksYlk9KCgoQkooKSx2VjgpKCkscEIoKSwKaHcoKSx3ZikoKSx2MEcoKSksZDU9KFJGeCgpLHpJKCkpLGlZPSgoKCgoKCgoKChYVSgpLGZMKCksdjkpKCksVnAoKSxSVVkoKSxRcCkoKSx6T3cpKCksQVFZKCksUXkpKCksSW0pKCksVjEpKCksZ00pKCksYm8pKCksVGk4KSgpLFpQKCksdzgoKSxwUCgpLGM5KCksV00oKSxuNCgpLGZ1bmN0aW9uKEIseil7cmV0dXJuIGdbMTldLmNhbGwodGhpcywxNCxCLHopfSksZ189KCgoKCgoKChiaygpLFJlKSgpLFdDRygpLHhIKCksajgoKSxJeigpLGF5KSgpLGl0KSgpLE9uKCkseE1OKSgpLFkyKSgpLEFzKCksWTg4KSgpLHdJKCksWmZ3KCksT2EpKCksRVMoKSksTTc9KENxaCgpLGhwKSgpLHJFPSh1digpLEx1KCksTXMpKCksUkg9KExMOCgpLGZscSgpKSx4TT1jXygpLFJwPSgoKChLZSgpLE5WKSgpLEVqKSgpLFhkKSgpLGxJKCkpLFV6PSgodDR4KCksWm4oKSxUcCkoKSxtVygpKTsKKCgoVWFoKCksZVd3KCkseW0oKSx5bCgpLE8xWSgpLFRVKCksZHUoKSx0Q2gpKCksYXopKCksbTB4KCksS2czKCksaWgpKCksS2koKSxQSygpO2Z1bmN0aW9uIFo2KEIseil7cmV0dXJuIFJbNDddLmNhbGwodGhpcyw5LHosQil9KFo2LnByb3RvdHlwZS5yb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnk9KHRoaXMueD15YSh0aGlzLngpLHlhKSh0aGlzLnkpLHRoaXN9LFo2LnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnk9KHRoaXMueD1iTih0aGlzLngpLGJOKHRoaXMueSkpLHRoaXN9LChaNi5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIpe3JldHVybiBCIGluc3RhbmNlb2YgWjYmJih0aGlzPT1CPyEwOnRoaXMmJkI/dGhpcy54PT1CLngmJnRoaXMueT09Qi55OiExKX0sWjYpLnByb3RvdHlwZSkuY2VpbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnk9KHRoaXMueD1kMCh0aGlzLngpLGQwKSh0aGlzLnkpLHRoaXN9OwpmdW5jdGlvbiBibShCLHope3JldHVybiBnWzEzXS5jYWxsKHRoaXMsOCxCLHopfQp2YXIgdmU9KCgoT1s4XSg4LChibS5wcm90b3R5cGUuYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH0sNjEpLGVbMTRdLmJpbmQobnVsbCwyKSksYm0pLnByb3RvdHlwZS5jZWlsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVpZ2h0PSh0aGlzLndpZHRoPWQwKHRoaXMud2lkdGgpLGQwKSh0aGlzLmhlaWdodCksdGhpc30sYm0ucHJvdG90eXBlLmZsb29yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVpZ2h0PSh0aGlzLndpZHRoPWJOKHRoaXMud2lkdGgpLGJOKSh0aGlzLmhlaWdodCksdGhpc30sYm0ucHJvdG90eXBlKS5yb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhlaWdodD0odGhpcy53aWR0aD15YSh0aGlzLndpZHRoKSx5YSh0aGlzLmhlaWdodCkpLHRoaXN9LHtjZWxscGFkZGluZzp2WCgpLGNlbGxzcGFjaW5nOkhfKCksY29sc3BhbjppVSgpLGZyYW1lYm9yZGVyOm1qKCksaGVpZ2h0OmJDKCksbWF4bGVuZ3RoOk1XdygpLG5vbmNlOlNFKCksCnJvbGU6TGkoKSxyb3dzcGFuOndlKCksdHlwZTpkQSgpLHVzZW1hcDpPNigpLHZhbGlnbjpWWTMoKSx3aWR0aDpJZk4oKX0pLGJEPXtJTUc6bzkoKSxCUjpJUigpfSxXRD1mdW5jdGlvbihCKXtyZXR1cm4gWVswXS5jYWxsKHRoaXMsMSxCKX0sZUk9WzAsZyQsKCgoV0QucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMjVdKDM5LEIsdGhpcy52KX0sV0QucHJvdG90eXBlLmdldEVsZW1lbnRzQnlUYWdOYW1lPShXRC5wcm90b3R5cGUuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMudi5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoQikpfSxXRC5wcm90b3R5cGUuTT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIHlbMjldKDIsMCwiY2xhc3MiLGFyZ3VtZW50cyx0aGlzLnYpfSxXRC5wcm90b3R5cGUudT1mdW5jdGlvbihCKXtyZXR1cm4gT1syXSgyOSxCLHRoaXMudil9LGZ1bmN0aW9uKEIseil7cmV0dXJuKHp8fHRoaXMudikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKEIpKX0pLApXRCkucHJvdG90eXBlLlg9a1szMl0uYmluZChudWxsLDIpLE9bMjFdKDQsRjQsVCksRjQpLnByb3RvdHlwZS5pUz1mdW5jdGlvbigpe3JldHVybiBtWzFdKDE4LHRoaXMsMSl9LEtYKSxJXywtMl0sUEc9WyhPWzIxXSgxLEp6LChGNC5wcm90b3R5cGUuVD1SWzQ4XSg4LGVJKSxUKSksMCksQ1gsLTFdLFI0PShPWzIxXSgxLFZvLChKei5wcm90b3R5cGUuVD1SWzQ4XSg5LFBHKSxUKSksZVszNV0oNTksbnVsbCxWbykpLCQ5PVswLFRhLFBHLEtYLENYLC01XSxWJD0oKFZvLnByb3RvdHlwZS5UPVJbNDhdKDUsJDkpLE9bMjFdKDMsa1ksVCksTylbOF0oOSw2MCxmdW5jdGlvbihCLHope3JldHVybiBQYigoej16PT09dm9pZCAwPzEwMDp6LGZ1bmN0aW9uKEspe3JldHVybihLPVswLCIiLCJzbGljZSJdLEFycmF5KS5mcm9tKEIudG9TdHJpbmcoKSlbS1syXV0oS1swXSx6KS5qb2luKEtbMV0pfSksIiIpfSksZnVuY3Rpb24oKXtyZXR1cm4gRFs0M10uY2FsbCh0aGlzLDQ4KX0pLHF5PVswLENYLAotMSxnJCxDWCwtMSxnJCxDWCwtMSwkOSxlSV0sdUh4PShrWS5wcm90b3R5cGUuVD1SWzQ4XSg1LHF5KSx1SHgpfHx7aWQ6bmkoKX0sQzA9bmV3IFZvLEswPW51bGwsaWI9WzAsQ1gsZyQsMSxDWCwtMSxnJCwxLGckLDEsa3hdLGFFdz1bMCxnJCxDWCwtMV0saFRsPVswLENYLC0zXSxkNXc9WzAsQ1gsLTYsa3gsSV8sQ1gsLTEsa3hdLHlOPVswLENYLGckXSxZOT1bMCxnJCxDWCwtMl0sJHM9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMjddLmNhbGwodGhpcyw0MCxCKX0sbnI9KChPWzhdKDExLDI1LFlbNDRdLmJpbmQobnVsbCwxKSksTylbOF0oNywxMixmdW5jdGlvbihCKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUlszMV0oMzcsMCxmdW5jdGlvbigpe3JldHVybiBCfSxYSil9fSksZnVuY3Rpb24oKXtyZXR1cm4ga1sxMV0uY2FsbCh0aGlzLDEpfSksY0c9WzAsQ1gsZyRdLFdoPWZ1bmN0aW9uKEIseil7cmV0dXJuIFJbMTddLmNhbGwodGhpcywxLEIseil9LGtFWT1bMCxDWCwtNixnJCwKQ1gsMSxDWCwoT1s4XSg4LDUxLGZ1bmN0aW9uKEIpe3JldHVybiBZWzddKDc0LG51bGwsZnVuY3Rpb24oeil7cmV0dXJuIHR5cGVvZiBCPT09InN0cmluZyI/bmV3IHouU3RyaW5nKEIpOkJ9KX0pLEtYKSxnJCwtMSxLWCxDWCwtMixnJCxDWCxnJCxDWCxJXywtMV0sdEwzPVswLENYLC00XSxTST1bMCwoT1s4XSg4LDMyLE9bMzhdLmJpbmQobnVsbCwxKSksT1s4XSg5LDUwLHlbMzFdLmJpbmQobnVsbCw4KSksS1gpLC0zXSxVNTg9WzAsQ1gsLTRdLE1MOD1bMCxDWCwtMyxreCxJXyxDWCwtMV0sd2RHPVswLGckLENYLC0xLGt4LElfLC0xLENYLC00LFNJXSxJRXg9WzAsKE9bOF0oMTAsMjIsRFs5XS5iaW5kKG51bGwsMjYpKSxnJCldLFNxPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIGdbNDNdLmNhbGwodGhpcywyMixKLHosQixDLEspfSwkVT1mdW5jdGlvbihCKXtyZXR1cm4gR1szXS5jYWxsKHRoaXMsNSxCKX0sRnNoPVswLFswLGckLENYLC0xLGt4LElfLC0xLENYLC00LFRhLFU1OCwKLTEsMSxTSV0sd2RHXSxCSkQ9WzAsS1gsLTNdLHMzRD1bMCxDWCwxLENYLC01XSx6bTA9WzAsQ1gsZyQsQ1gsLTEsa3gsZyQsQ1gsLTEsZyQsSV8sLTFdLEtfOD1bMCxDWCwtNF0sSkU4PVswLENYLGckLENYLC0yXSxtOT1bMCxnJCxDWCwtKE9bOF0oMTEsNTgsbVs0OV0uYmluZChudWxsLDYpKSwxKSxreCxJXywtMSxDWCwtNSxUYSxLXzgsLTEsS1gsQkpELGckXSxDd049WzAsWzEsMiwzLDQsNSw2XSxwWCxpYixwWCx5TixwWCxjRyxwWCxJRXgscFgsbTkscFgsWTldLGJyeD1bMCxnJF0sQUVNPVswLGckLENYLC04XSxubj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIGtbMzldLmNhbGwodGhpcyw1LEIseixLKX0sdjdOPWZ1bmN0aW9uKEIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpLUJ9fShEYXRlLm5vdygpKSxUSjg9WzAsQ1gsWzAsSV8sLTMsZyRdLGckLC0yLFswLElfLC0xXSxLWF0sRGY9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVs0M10uY2FsbCh0aGlzLDE4LEIsCnopfSxDcT1mdW5jdGlvbihCLHope3JldHVybiB5WzM2XS5jYWxsKHRoaXMsMSxCLHopfSxRdz0oT1s4XSg2LDQzLGZ1bmN0aW9uKEIseixLLEope3JldHVybih6PXlbMTFdKDM0LHosSyksSj0oIiIrQilbVzErbGJdKHopKSYmSi5sZW5ndGg+PTI/SlsxXToiIn0pLGZ1bmN0aW9uKEIpe3JldHVybiBZWzQwXS5jYWxsKHRoaXMsMTYsQil9KSxqMzA9WzAsQ1gsLTldLGlsPWZ1bmN0aW9uKEIpe3JldHVybiB5WzEzXS5jYWxsKHRoaXMsMjcsQil9LEVXPVswLGckLDEsZDV3LDEsczNELENYLC0xLChPWzIxXSg0LFJqLFQpLEFFTSksaFRsLEpFOCxxeSxreCxNTDgsYUV3LGozMCxrRVksMSxicngsMSx0TDMsMSxpYixDd04seU4sY0csbTksRnNoLFk5LFRKOCw0LHptMF0sREI9ZnVuY3Rpb24oQil7cmV0dXJuIE9bNDZdLmNhbGwodGhpcywzNixCKX0scHQ4PVswLGhiLCgoUmoucHJvdG90eXBlLlQ9Uls0OF0oOCxFVyksWjcpWzY2MzIxNjg3XT1FVyxLWCksa3hdLFEzRz0oT1s4XSg2LDIzLApmdW5jdGlvbihCLHosSyxKLEMpe2ZvcihKPShDPVsxLDE4LDM1XSxDWzBdKTtKIT0zMzspaWYoSj09NDMpej1nWzEyXSg1LEhbOF0oNDQsNjUyMSkpLEs9ei5uZXh0KCksSj05NTtlbHNle2lmKEo9PUNbMl0pcmV0dXJuITE7aWYoSj09OTUpSj02ODtlbHNle2lmKEo9PTQpcmV0dXJuITE7aWYoSj09NjgpSj1LLmRvbmU/NjE6ODQ7ZWxzZSBpZihKPT0yMSlLPXoubmV4dCgpLEo9Njg7ZWxzZSBpZihKPT03OClKPUIuaW5uZXJIVE1MPzQzOjYxO2Vsc2V7aWYoSj09NjEpcmV0dXJuIEIubm9kZVR5cGU9PUNbMF0mJkIuc3JjJiZZW0NbMV1dKDM0KS50ZXN0KEIuc3JjKT8hMTohMDtKPT1DWzBdP0o9QiYmQi5ub2RlVHlwZSE9Mz83ODpDWzJdOko9PTg0JiYoSj1CLmlubmVySFRNTC5pbmRleE9mKEsudmFsdWUpIT0tMT80OjIxKX19fX0pLFswLGckLGt4XSksbjdsPVswLGt4LC0xLENYXSxacmw9WzAsS1gsLTEsZyQsS1hdLFdfWj1bMCxhXyxJXywtMl0sZzczPVswLGFfXSx4MD0oT1s4XSg3LAozMCxtWzFdLmJpbmQobnVsbCwxKSksZnVuY3Rpb24oKXt9KSxOSlk9WzAsZyQsV19aLGc3M10sT3IzPVswLElfLENYLC0xXSx4a0Q9WzAsQ1gsLTFdLERrOD1bMCxBRywtMSxGTix0N2wsLTFdLGZkOD1bMCxnJCwtMV0sekg9KE9bMjFdKDUsS3EsVCksT1syMV0oMixCMixUKSxmdW5jdGlvbihCKXtyZXR1cm4gUlszOF0uY2FsbCh0aGlzLDQsQil9KSxYaz1bLTQse30sR2YsZyQsb2IzXSx1Yj1bLTM3LHt9LGhiLENYLFRhLHhrRCxRVCwxLFFULERrOCxDWCxPcjMsS1gsSV8sa3gsQ1gsKEtxLnByb3RvdHlwZS5UPVJbNDhdKDQsWGspLC0xKSxKQkQsbmIzLGhiLFFULGckLEZOLGt4LC0xLGZkOCxDWCxLWCxDWCxCWixDWCwtMSxYTiwxLFhOLFhrLEtYLE5KWSxRM0ddLG83aD0oKChPWzIxXSgxLChCMi5wcm90b3R5cGUuVD1SWzQ4XSg4LHViKSxvaiksVCksb2opLnByb3RvdHlwZS5OdT1mdW5jdGlvbihCKXtyZXR1cm4gSFswXSg2Nyx0aGlzLDIsQil9LE8pWzhdKDEwLDQ3LEdbMjRdLmJpbmQobnVsbCwKMSkpLG9qLnByb3RvdHlwZS5UPVJbNDhdKDgsWy0xOSx7fSxFVyxnJCxUYSx1YixoYixuWCxDWCwtMSxoYixnJCwtMSxacmwsbjdsLHB0OCxreCwxLFdaLDEsWGtdKSxvN2h8fHtpZDpQQSgpfSksTF9NPShySy5wcm90b3R5cGUuTnU9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMudi5OdShCKSx0aGlzfSxMX00pfHx7aWQ6U0soKX07KCgoKCgobFgoKSxZJCkoKSxSTCkoKSxDQikoKSxPZigpLHROcSgpLG5WMCkoKSxqSCgpLGQwOCkoKSxGejAoKSxOQykoKTtmdW5jdGlvbiBWeChCKXtyZXR1cm4gT1sxMV0uY2FsbCh0aGlzLDQ5LEIpfQp2YXIgUm1xPSgoVngucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy52PXRoaXMuTT10aGlzLlh9LFZ4KS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSxSbXF8fHtpZDpTUigpfSksdmw9KChZRCgpLGFHKSgpLC9eKD8hb258c3JjfCg/OmFjdGlvbnxhcmNoaXZlfGJhY2tncm91bmR8Y2l0ZXxjbGFzc2lkfGNvZGViYXNlfGNvbnRlbnR8ZGF0YXxkc3luY3xocmVmfGh0dHAtZXF1aXZ8bG9uZ2Rlc2N8c3R5bGV8dXNlbWFwKVxzKiQpKD86W2EtejAtOV8kOi1dKikkL2kpLHJFbD1bMCxBR10sVlpZPVswLElfLGckXSxHcXg9WzAsQUddLEhSPWZ1bmN0aW9uKCl7cmV0dXJuIGtbNDVdLmNhbGwodGhpcyw1KX0sSHJxPVswLChPWzhdKDExLDAsSFsxOV0uYmluZChudWxsLDE4KSksVGEpLFswLENYLGckLC0xXSxreF0sZW1sPVswLENYLC0xXSxQdzM9WzAsSV8sQ1hdLCRrOD0oKE9bMjFdKDIsUXcsVCksTylbOF0oMTAsMTMsT1szOV0uYmluZChudWxsLAo1NikpLGUpWzM1XSg1NyxudWxsLFF3KSxhNT1bKE9bOF0oNiwoUXcucHJvdG90eXBlLlQ9Uls0OF0oOCxbLTgsazIsaGIsckVsLEhycSxHcXgsVGEsVlpZLFRhLFB3MyxUYSxlbWxdKSwzNiksUlsxOV0uYmluZChudWxsLDcpKSxPWzIxXSg0LG5hLFQpLDApLElfXTtuYS5wcm90b3R5cGUuVD1SWzQ4XSg0LGE1KTsKdmFyIGh0LHFrMD0oaHQ9KGsyWzE3NTIzNzM3NV09YTUsbmV3IFAwKSxxazB8fHtpZDpsNygpfSkseGY9KCgoKE9bMjFdKDEscWsscFEpLHFrLnByb3RvdHlwZSkuWj1mdW5jdGlvbihCKXsoKGdbQj1bITEsMTksMzldLDExXSgzMCxCWzBdLHRoaXMpLEgpW0JbMV1dKEJbMl0sQlswXSx0aGlzLnYpLEgpW0JbMV1dKDU1LEJbMF0sdGhpcy5DKSxwUS5wcm90b3R5cGUuWi5jYWxsKHRoaXMpfSxxay5wcm90b3R5cGUpLmxvZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXsoa1sxXSgoUT1bMTUsIk0iLCh6PVsxLDFFMywhMV0sNDkpXSw3NCksdGhpcyx6WzBdLDIpLHRoaXMubykmJihBPWVbMzFdKDY0LCEwLEIpLGI9dGhpcy5LKyssQz1CPUhbUVsyXV0oNTEsMjEsYixBKSxHWzM3XSg4Nyw2NCxudWxsLEhbNF0oODkselswXSxDKSk9PW51bGwmJihKPURhdGUubm93KCkscD1OdW1iZXIuaXNGaW5pdGUoSik/Si50b1N0cmluZygpOm1nKCkseVsxM10oNywhMCx6WzBdLHAsQykpLGtbMjhdKDU1LAp6WzJdLDY0LDAsbnVsbCxIWzRdKDg5LFFbMF0sQyx2b2lkIDAsdm9pZCAwLGtbNDZdLmJpbmQobnVsbCwyMikpKSE9bnVsbHx8SFtRWzJdXShRWzJdLFFbMF0sKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpKjYwLEMpLHY9QixrWzFdKDc2LHRoaXMselswXSx6WzBdKSxLPXRoaXNbUVsxXV0ubGVuZ3RoLXpbMV0relswXSxLPjAmJih0aGlzW1FbMV1dLnNwbGljZSgwLEspLHRoaXMuQSs9SyxrWzFdKDc5LHRoaXMsSywzKSksdGhpc1tRWzFdXS5wdXNoKHYpLHRoaXMuQ0R8fHRoaXMudltRWzFdXXx8dGhpcy52LnN0YXJ0KCkpfSxxaykucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtLPShDPSh4PVsyMywibCIsImkiXSxbNSwzLDBdKSx0aGlzKSx0aGlzLk0ubGVuZ3RoPT09MD9CJiZCKCk6KHY9RGF0ZS5ub3coKSx0aGlzLkg+diYmdGhpcy5XPHY/eiYmeihYZDgpOih0aGlzLm5EJiYodHlwZW9mIHRoaXMubkQuaVM9PT0iZnVuY3Rpb24iPwpEWzI3XSgxLHRoaXNbeFsyXV0sdGhpcy5uRC5pUygpKTp0aGlzW3hbMl1dW3hbMl1dPUNbMl0pLFc9dGhpcy5NLmxlbmd0aCxaPWVbNDNdKDU3LDEzLENbMF0sQ1syXSwxMCx0aGlzLk0sdGhpcy5jdix0aGlzLkEsdGhpc1t4WzJdXSx0aGlzLk8pLChiPXRoaXMuQm8oKSkmJnRoaXMuVT09PWI/eiYmeihFVWwpOih0aGlzLk09W10sdGhpcy52Lk0mJkhbMTldKHhbMF0sITEsdGhpcy52KSx0aGlzLkE9Q1syXSxOPVoueWUoKSx0aGlzW3hbMV1dJiYoTi5sZW5ndGg8dGhpc1t4WzFdXS5JYj8wOnR5cGVvZiBDb21wcmVzc2lvblN0cmVhbSE9PSJ1bmRlZmluZWQiKSYmKG49T1szMl0oMiw0LENbMV0sMiwxLE4pKSxRPVJbM10oNyxOLHRoaXMsYiksQT1mdW5jdGlvbigpe0subkQmJksubkQuc2VuZChRLHAsSil9LEo9ZnVuY3Rpb24oZixMLHIsVixQLHEsYyxFLFMpeygoKChxPSgocj0oVj0oUD1IWzEyXSgyMCxaLChjPVs3LDYwMCwoUz1bIlUiLCJnZXRWYWx1ZSIsInNldEludGVydmFsIl0sCjEpXSwzKSxCMixrWzNdKDEyKSksRT1OdW1iZXIoZVszMl0oNTEsWiwxNCkpLEsuWCksTCksVikudj1sOSgzRTUsVi52KjIpLHlhKC4xKihBZSgpLS41KSoyKlYudikpLFYpLk09bDkoM0U1LFYuditxKSxLLnYpW1NbMl1dKEsuWFtTWzFdXSgpKSxmPT09NDAxKSYmYiYmKEtbU1swXV09YiksRSYmKEsuQSs9RSkscj09PXZvaWQgMCYmKHI9NTAwPD1mJiZmPGNbMV18fGY9PT00MDF8fGY9PT0wKSxyKSYmKEsuTT1QLmNvbmNhdChLLk0pLEsuQ0R8fEsudi5NfHxLLnYuc3RhcnQoKSksa1sxXSg3NSxLLGNbMl0sY1swXSkseiYmeihsRTgsZiksKytLLk99LHA9ZnVuY3Rpb24oZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3cpe2lmKCgoc3c9KEU9WzEsMCxudWxsXSxbInYiLDEsODZdKSxLKS5YLnJlc2V0KCksSylbc3dbMF1dLnNldEludGVydmFsKEsuWC5nZXRWYWx1ZSgpKSxmKXtMPUVbMl07dHJ5e1g9ZU4ob0MoZi5yZXBsYWNlKG5BKCksIiIpKSksTD0kazgoWCl9Y2F0Y2goQjgpe31pZihMKXsoUD0KKHc9KChoPU51bWJlcihlWzMyXSg1MCxMLEVbMF0sR1szMV0oOTUsdzIoKSkpKSxoPkVbc3dbMV1dKSYmKEsuVz1EYXRlLm5vdygpLEsuSD1LLlcraCksTCksRFsxNV0oMzIsTWEpKSxOMCkmJlAmJigoVT13LmFUW1BdKT09RVsyXT92b2lkIDA6VVsxNzUyMzczNzVdKSE9RVsyXSYmbVs0N10oOCxFWzBdLFJfLDMpO2E6e2lmKERbMTVdKChjPWM9PT12b2lkIDA/ITE6Yyw2OCkscmcpJiZEWzE1XSg0LE1hKSYmdm9pZCAwPT09cmcpe2lmKHI9dy5hVCxWPXJbTWFdLCFWKWJyZWFrIGE7aWYoUz1WLmxkKXRyeXtTKHIsMTc1MjM3Mzc1LGVVKTticmVhayBhfWNhdGNoKEI4KXtPWzQ1XShzd1syXSxCOCl9fWMmJihkPXcuYVQsKHE9RFsxNV0oMjQsTWEpKSYmcSBpbiBkJiYoTT1kW3FdKSYmZGVsZXRlIE1bMTc1MjM3Mzc1XSl9aWYodD0oYT1odC5jdG9yP2h0W3N3WzBdXSh3LGh0LmN0b3IsMTc1MjM3Mzc1LGh0Lk0pOmh0W3N3WzBdXSh3LDE3NTIzNzM3NSxFWzJdLGh0Lk0pLGE9PT1udWxsPwp2b2lkIDA6YSkpdT15WzMzXSgxMSxFWzBdLHQsLTEpLHUhPT0tMSYmKEsuWD1uZXcgVngodTxFWzBdPzE6dSksS1tzd1swXV0uc2V0SW50ZXJ2YWwoSy5YLmdldFZhbHVlKCkpKX19KEImJkIoKSxLKS5PPUVbc3dbMV1dfSxuP24udGhlbihmdW5jdGlvbihmKXsoKChrWzFdKDc4LEssVyw1KSxRLkFCKVtMQSgpXT1xd0QoKSxRLkFCKVtpck5dPUhWKCksUS5ib2R5PWYsUSkudHE9MixBKCl9LGZ1bmN0aW9uKCl7a1sxXSg3NyxLLFcsNiksQSgpfSk6QSgpKSkpfSxJSikoKSxpck49KGdDKCksVmcpKCkseUU4PXlFOHx8e2lkOk0kKCl9LFlrbD0oJDcucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtyZXR1cm4gR1t2PXRoaXMsMTNdKDE2LGZ1bmN0aW9uKHgsZixMKXtMPShmPVs4LG51bGwsNDAwXSxbNDA4LDUsImFzc2lnbiJdKTtzd2l0Y2goeC5NKXtjYXNlIDE6cmV0dXJuIEE9KEM9di5YWD9uZXcgQWJvcnRDb250cm9sbGVyOnZvaWQgMCk/CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtDLmFib3J0KCl9LEIuZ3opOnZvaWQgMCx4LkEoMiwzKSxXPU9iamVjdFtMWzJdXSh7fSx7bWV0aG9kOkIuV0QsaGVhZGVyczpPYmplY3RbTFsyXV0oe30sQi5BQil9LEIuYm9keSYme2JvZHk6Qi5ib2R5fSxCLndpdGhDcmVkZW50aWFscyYme2NyZWRlbnRpYWxzOkFWKCl9LHtzaWduYWw6Qi5neiYmQz9DLnNpZ25hbDpudWxsfSkseC52KGZldGNoKEIudXJsLFcpLExbMV0pO2Nhc2UgTFsxXTppZigocD14LlgscCkuc3RhdHVzIT09MjAwKXsoKE49Syk9PWZbMV18fE4ocC5zdGF0dXMpLHgpLkdfKDMpO2JyZWFrfWlmKChuPXopPT1mWzFdKXt4LkdfKDcpO2JyZWFrfXJldHVybiB4LnYocC50ZXh0KCksZlswXSk7Y2FzZSBmWzBdOm4oeC5YKTtjYXNlIDc6Y2FzZSAzOih4Lm0oKSxjbGVhclRpbWVvdXQpKEEpLHgubygwKTticmVhaztjYXNlIDI6UT14LmkoKTtzd2l0Y2goKFo9USk9PWZbMV0/dm9pZCAwOloubmFtZSl7Y2FzZSAiQWJvcnRFcnJvciI6KGI9CkspPT1mWzFdfHxiKExbMF0pO2JyZWFrO2RlZmF1bHQ6KEo9Syk9PWZbMV18fEooZlsyXSl9eC5HXygzKX19KX0sJDcucHJvdG90eXBlLmlTPWZ1bmN0aW9uKCl7cmV0dXJuIDR9LFlrbCl8fHtpZDokMVooKX0sbUU9KE9bMjFdKDMsUHQscFEpLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuIGVbNV0uY2FsbCh0aGlzLDEsQix6LEssSixDLGIsQSx2LHAsUSxuKX0pLGNFMD0oUHQucHJvdG90eXBlLmlEPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTT0hMCx0aGlzfSxjRTB8fHtpZDpIWSgpfSksTnE9ZnVuY3Rpb24oKXtyZXR1cm4gT1s0M10uY2FsbCh0aGlzLDIpfSxjbj0oKCgoKCgoKCgoKCgoZlEoMTAyNCwtMyksZlEpKDEwMjQsLTIpLGZRKSgxMDI0LDIpLGZRKDEwMjQsMyksZlEoMTAyNCw0KSxmUSkoMTAyNCw1KSxmUSkoMTAyNCw2KSxmUSgxMDI0LDcpLGZRKSgxMDI0LDgpLEZsKSgpLGJfKSgpLEJPKSgpLEs3KCksb2wpKCksbHQpKCksR0EpKCksSWEpKCkse30pLApBQj0oViQucHJvdG90eXBlLlZlPShWJC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSxWJC5wcm90b3R5cGUuVnk9KFYkLnByb3RvdHlwZS5nNz1mdW5jdGlvbigpe3JldHVybiBtWzQ1XS5jYWxsKHRoaXMsMTYpfSxudWxsKSxmdW5jdGlvbigpe3JldHVybiB0aGlzLk19KSx7fSksWTQ9e30sQ3c9e30seGo9e30sVEQ9ZnVuY3Rpb24oQil7ZnVuY3Rpb24geihLKXt0aGlzLk09S31yZXR1cm4gei5wcm90b3R5cGU9Qi5wcm90b3R5cGUsZnVuY3Rpb24oSyxKLEMpe3JldHVybihDPW5ldyB6KFN0cmluZyhLKSksSiE9PXZvaWQgMCkmJihDLlZ5PUopLEN9fSgoSFsyNF0oMTksRk0sViQpLEZNLnByb3RvdHlwZS5Oaj14aixGTSkpLEJoPVJlZ0V4cC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkobEooKSksc2w9bmV3IFJlZ0V4cCgoQmg/IiI6STkoKSkrIig/OiF8Lz8oW2EtekEtWl1bYS16QS1aMC05Oi1dKikpIixCaD9lMigpOmhPKCkpLGFaPSgoKE9bMjFdKDUsCmZyLEZNKSxmcikucHJvdG90eXBlLlZlPWZ1bmN0aW9uKEIseixLLEope2lmKChKPVsiIiwiTSIsM10sdGhpcylbSlsxXV0hPT12b2lkIDApcmV0dXJuIHRoaXNbSlsxXV07Zm9yKEI9KEs9Z1sxMl0oKHo9SlswXSxKWzJdKSx0aGlzLnYpLEsubmV4dCgpKTshQi5kb25lO0I9Sy5uZXh0KCkpeis9Qi52YWx1ZTtyZXR1cm4gen0sZnIucHJvdG90eXBlKS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlZlKCl9LGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQigpe3RoaXMuTT0iIn1yZXR1cm4gQi5wcm90b3R5cGU9ZnIucHJvdG90eXBlLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCfX0pKCksT2g9eyJceDAwIjpWcygpLCJcdCI6aTcoKSwiXG4iOnJHKCksIlx2IjpyWTAoKSwiXGYiOlk1KCksIlxyIjpJMSgpLCIgIjpRTCgpLCciJzp6MigpLCImIjpGSigpLCInIjp5MGgoKSwiLSI6aXYoKSwiLyI6eDUoKSwiPCI6QmIoKSwiPSI6QzMoKSwiPiI6c3ooKSwiYCI6WXYoKSwiwoUiOmF0KCksIsKgIjpxUjAoKSwKIlx1MjAyOCI6cFNsKCksIlx1MjAyOSI6eksoKX0sQ0Q9KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChVUCgpLHRtKSgpLE1vKSgpLFhqKCksZ24pKCksS0IpKCksYVcpKCksRmopKCksbU8oKSxNbCkoKSxIeSkoKSwkSCgpLGRhRCgpLHBKKSgpLERzKSgpLHFPTSgpLHB2KSgpLHdvMCgpLGMzKSgpLFJ0KCksZTgpKCksQWcoKSxqb1kpKCksZjhaKSgpLGRuKCksTjYpKCksbGkpKCksaEEoKSxETkcoKSxsRSgpLHdVKCksbXQpKCksc1ApKCksc3gwKSgpLEJDKCksYmUoKSxZbVooKSxYZSgpLEZpKCksSUd3KSgpLFNqKSgpLG9oOCkoKSxyTSgpLHg2KCksRFgoKSxGZSgpLFNVKSgpLGNYKSgpLEZhKCksTDcpKCksZlZ4KCksWks4KCksc0woKSxBeE4pKCksUlApKCkseTIoKSxIJCgpLGZ1bmN0aW9uKEIpe3JldHVybiBnMFswXS5jYWxsKHRoaXMsNixCKX0pLG8zPXsiXHgwMCI6KChPVigpLE1ZeCgpLFU2KSgpLEhLKCksRGEwKSgpLCIBIjpKSygpLCICIjpHNigpLCIDIjpabk0oKSwiBCI6SjIoKSwKIgUiOmtKTSgpLCIGIjpwMigpLCIHIjpDNygpLCJcYiI6bnUoKSwiXHQiOlZQTigpLCJcbiI6Vm0oKSwiXHYiOnV5KCksIlxmIjpETTAoKSwiXHIiOngwWigpLCIOIjpOQSgpLCIPIjokNigpLCIQIjpFNygpLCIRIjpCMygpLCISIjpsQSgpLCITIjpGcCgpLCIUIjpiRSgpLCIVIjp5MzAoKSwiFiI6dWgoKSwiFyI6SlYoKSwiGCI6RmQoKSwiGSI6JF8oKSwiGiI6WERNKCksIhsiOmNRKCksIhwiOndETSgpLCIdIjptaCgpLCIeIjpUZHEoKSwiHyI6RUkoKSwiICI6T1EoKSwnIic6aWdEKCksIiciOmlrKCksIigiOnNJKCksIikiOkpBKCksIjwiOlAzRygpLCI+IjpCNE4oKSwiXFwiOmZOKCksInsiOiQkKCksIn0iOlZ1KCksIn8iOnRDKCksIsKFIjpiMTgoKSwiwqAiOndHKCksIlx1MjAyOCI6czYoKSwiXHUyMDI5Ijp0MigpLCLvvIEiOkVhKCksIu+8gyI6JE5xKCksIu+8hCI6U1JEKCksIu+8hiI6WVEoKSwi77yHIjpTTygpLCLvvIgiOlJtKCksIu+8iSI6cXQoKSwi77yKIjp5TCgpLCLvvIsiOmROKCksIu+8jCI6ajIoKSwi77yPIjpDMzAoKSwKIu+8miI6c3dNKCksIu+8myI6V2xEKCksIu+8nSI6dVgoKSwi77yfIjpTdigpLCLvvKAiOlVvKCksIu+8uyI6aGQoKSwi77y9IjpTdygpfSxtXz1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gbVszN10uY2FsbCh0aGlzLDYsQix6LEssSil9LERsPS9bXHgwMFx4MjJceDI2XHgyN1x4M2NceDNlXS9nLFNrRD1bMCxPdSxiQl0sbWtoPVswLE91LGJCLHphXSx0VD0vPC9nLGxkOD1bMCx6YV0sRTdaPVswLHRiLC0yXSxjZD0oKChPWzIxXSg1LE1jLFQpLE1jLnByb3RvdHlwZSkuczM9ZnVuY3Rpb24oKXtyZXR1cm4gZVszMl0oNTYsdGhpcyw1KX0sTWMucHJvdG90eXBlKS5UPVJbNDhdKDgsWzAsYkIsLTEsT3UsVTdsLHRiLGJCLG1raCxTa0QsRTdaLGxkOF0pLE9bMjFdKDEsJEwsVCksZnVuY3Rpb24oQix6LEspe3JldHVybiBtWzQ2XS5jYWxsKHRoaXMsMSxCLHosSyl9KSxkUj1bMCxnJCxJX10sRWQ9KCgkTC5wcm90b3R5cGUuVD1SWzQ4XSg4LGRSKSxPKVsyMV0oMSxZTCxUKSxmdW5jdGlvbihCKXtyZXR1cm4gT1sxNl0uY2FsbCh0aGlzLAo0MCxCKX0pLGs5PVswLGt4LChZTC5wcm90b3R5cGUuQXk9ZnVuY3Rpb24oKXtyZXR1cm4gZVszMl0oNTksdGhpcywzKX0sSV8pLChZTC5wcm90b3R5cGUuczM9ZnVuY3Rpb24oKXtyZXR1cm4gZVszMl0oNTQsdGhpcywxKX0sa3gpXSxMRj0oT1syMV0oMyxRNiwoWUwucHJvdG90eXBlLlQ9Uls0OF0oOCxrOSksVCkpLGZ1bmN0aW9uKCl7cmV0dXJuIG1bMTZdLmNhbGwodGhpcywxKX0pLHR0PVswLGckLHdnLC0xLChPWzhdKDYsNTUsbVsyMl0uYmluZChudWxsLDcpKSxLWCksazksQ1gsLTFdLFVXPShPWzIxXSg0LChRNi5wcm90b3R5cGUuVD1SWzQ4XSg0LHR0KSxQVCksVCksWzAsVGEsdHQsVGEsZFJdKSxNeT1bMCwoKE9bMjFdKDYseWosKFBULnByb3RvdHlwZS5UPVJbNDhdKDksVVcpLFQpKSx5aikucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHlbMzNdKDEyLDIsdGhpcyl9LGckKSxJXyxDWCxJX10sd1I9WzAsd2csa3gsS1gsSV8sVVcsTXksZyQsSV8sLShPWzIxXSgzLAplQiwoeWoucHJvdG90eXBlLlQ9Uls0OF0oOCxNeSksVCkpLDEpXSxJNT1bMCwoT1syMV0oNSxPOCwoZUIucHJvdG90eXBlLlQ9Uls0OF0oNCwoZUIucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGVbMzJdKDQ4LHRoaXMsMil9LHdSKSksVCkpLElfKSwtMV0sRms9WyhPWzIxXSg2LGE5LChPOC5wcm90b3R5cGUuVD1SWzQ4XSgxLEk1KSxUKSksMCksZyQsYV8sLTFdLEJnPVswLElfLGFfLC0xLCgoT1syMV0oNCwoYTkucHJvdG90eXBlLlQ9Uls0OF0oOSxGayksa24pLFQpLE8pWzhdKDEwLDM5LGZ1bmN0aW9uKEIseil7cmV0dXJuIFBiKGZ1bmN0aW9uKCl7cmV0dXJuIEJbRFsxMl0oNTcsMSx6KV0uYmluZChCKX0sbnVsbCl9KSxJXyldLHNEPVswLElfLGFfLC0xLEJnLChPWzIxXSgyLChrbi5wcm90b3R5cGUuVD1SWzQ4XSg0LEJnKSxSRSksVCksT1s4XSg5LDM1LGdbMzddLmJpbmQobnVsbCwzKSksLTEpLElfLC0yXSxlcz0oT1syMV0oMyx1cSwoUkUucHJvdG90eXBlLlQ9Uls0OF0oMSwKc0QpLFQpKSxmdW5jdGlvbihCKXtyZXR1cm4geVsxMF0uY2FsbCh0aGlzLDc2LEIpfSksb3I9KE9bOF0oNiwxMSxPWzFdLmJpbmQobnVsbCwyMykpLHVxLnByb3RvdHlwZS5UPVJbNDhdKDEsWzAsVGEsRmssLTEsc0QsQUcsSTVdKSxbMyw2LDQsMTFdKSxCVT17fSxhMz0oSFsyNF0oODksV2Usb2cpLEIxKCkpLFM3PXpBOCgpLEVFPShIWzI0XSg1NyxYNCwoV2UucHJvdG90eXBlLlo9KFdlLnByb3RvdHlwZS5NPShXZS5wcm90b3R5cGUuWD1mdW5jdGlvbihCKXtlWzI5XSg5NSx0aGlzLEIpfSxmdW5jdGlvbihCLHopeyhCLmtleUNvZGU9PSh6PVs5NiwzLDI5XSwxMyl8fGtlJiZCLmtleUNvZGU9PXpbMV0pJiZlW3pbMl1dKHpbMF0sdGhpcyxCKX0pLGZ1bmN0aW9uKEIpeyhCPVs1LCExLCJaIl0sV2UuWVtCWzJdXS5jYWxsKHRoaXMpLGspW0JbMF1dKDcsMCx0aGlzLEJbMV0sdGhpcy5NLHRoaXMudixGOCksa1tCWzBdXSg5LDAsdGhpcyxCWzFdLHRoaXMuWCx0aGlzLnYseUcpLGRlbGV0ZSB0aGlzLnZ9KSwKY2IpKSxmdW5jdGlvbihCKXtyZXR1cm4gRFsyNl0uY2FsbCh0aGlzLDYsQil9KSxkND0oKChIWzI0XSg1OCxFRSxjYiksT1syMV0oMSx4RixvZykseEYucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7KGtbNV0oKEI9WyJaIiwhMSwwXSwyMyksQlsyXSx0aGlzLEJbMV0sdGhpcy5NLHRoaXMuaSxhMyksa1s1XSgyNSxCWzJdLHRoaXMsQlsxXSx0aGlzLkEsdGhpcy52LFtndixOSF0pLG9nLnByb3RvdHlwZVtCWzBdXSkuY2FsbCh0aGlzKX0seEYpLnByb3RvdHlwZS5BPWZ1bmN0aW9uKEIseixLKXtpZihCLnR5cGU9PShLPVsibm93IiwiTSIsITFdLGd2KSl0aGlzLlg9RGF0ZVtLWzBdXSgpLEIudigpO2Vsc2UgaWYoQi50eXBlPT1OSCYmKHo9RGF0ZVtLWzBdXSgpLXRoaXMuWCxCLmVxLmNhbmNlbGFibGUhPUtbMl0mJno8NTAwKSlyZXR1cm4gdGhpc1tLWzFdXShCLCEwKTtyZXR1cm4hMH0seEYpLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIpe3JldHVybiBCLmtleUNvZGU9PTMyJiZCLnR5cGU9PQpzWD90aGlzLk0oQik6ITB9LFtdKSxEQz0oeEYucHJvdG90eXBlLk09ZnVuY3Rpb24oQix6LEssSil7aWYoSz1EYXRlWyhKPVsiWCIsITEsIm5vdyJdLEopWzJdXSgpLXRoaXNbSlswXV0senx8Sz4xRTMpQi50eXBlPURDLGdbM10oNjEsdGhpcyxCKSxCLnYoKSx0aGlzLkZ8fEIucHJldmVudERlZmF1bHQoKTtyZXR1cm4gSlsxXX0sQjEoKSksWmU9KEF3KCksUUspKCksVzI9REQoKSxWNT1TSCgpLGY2PU1FKCksalc9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1szOF0uY2FsbCh0aGlzLDgsQix6KX0sR1E9KChTeSgpLGhoKCksQyQpKCksUXBOKCksT2ooKSksZ3g9bjIoKSxYdE49dHAoKSxOVD0oaUMoKSxwSCgpLEhRdygpKSxIMj12RCgpLGVxPU5uKCksVEY9Y1YoKSx6dz1jVygpLE9LPShQWCgpLG9JKSgpLHhnPXBBKCksRGU9bkwoKSxmcT1zXygpLEtNPShVNygpLGdOKCksYmgpKCksb0Y9ZE1EKCksTHE9Y0ooKSxSRj1xNCgpLEpaPShzbigpLFZ0KCkpLHJ4PSgkYTAoKSxENSkoKSxWdj0KKCgoKCgoKCgoKCgoKCgoKChwYygpLEQxRCgpLGxWdykoKSxuSikoKSxqQykoKSx6VykoKSx2QygpLHRCKSgpLHhkKCksbkIoKSx5WigpLE5kbCkoKSxmYykoKSx0QikoKSxSdigpLHlJKSgpLEU4OCkoKSxvUSkoKSxZZCgpLGM4bCkoKSxhR0coKSxlYigpLHlrKSgpLGFWeCkoKSxxbygpLHRCKSgpLEg1MykoKSxmdW5jdGlvbihCLHope3JldHVybiBrWzZdLmNhbGwodGhpcyw4LEIseil9KSx1NUQ9SkIoKSxhZEc9Q0MoKSxvTj0oKCgoKEk0KCksQ24oKSxKQikoKSxDQykoKSxDbigpLEpCKCksQ0MpKCksQ24oKSxDQygpLEpCKSgpLHIzOCgpLGJhKCksSkIoKSxDQygpLEk0KCksQ24oKSxKQikoKSxMNj1DQygpO0NuKCk7CnZhciBucSxDTT0oSkx3KCksWjFxKCksQ2QoKSxXVigpLFRlKCksUEMoKSksYm49WTMoKSxobWw9KCgoKCgoKCgoKCgoKCh2digpLEtKKSgpLFdKKSgpLFpneCgpLHVrKCksb3EoKSxYaGwpKCksaG0pKCksTFApKCksczcpKCksRWo4KCksYTZ3KSgpLGpmdykoKSxBJE0pKCkseVooKSx6VykoKSxIRGgpKCksek4pKCksaURsKCksUHUoKSwkZCkoKSx3aCgpLGpLKCksZUsoKSxCMHEoKSksZGtEPVEzKCksa3F4PXA4KCksdFp4PSgoVXIoKSx2VikoKSxxRCgpLEU4KCksSzMoKSxvTygpKSxVazA9KCgoKExDdygpLG8kKCksQVgzKSgpLHkkcSgpLFJ4cSgpLHBkKCksU18oKSxjM2gpKCkscng4KSgpLE9nOCgpLGRmKCksT25EKCksWHUpKCksTVpHPSgoKCgoKG9tKCksZkkoKSxOMikoKSxEdikoKSxXaSkoKSxJdSkoKSxjcCkoKSx1SSgpLCRxTigpLEpsKCkpLFE1PUNGOCgpLFBoPUxpKCk7T1s4XSgxMCw0LFJbNV0uYmluZChudWxsLDE2KSk7CmZ1bmN0aW9uIHozKEIseixLLEope3JldHVybiBIWzExXS5jYWxsKHRoaXMsMTMseixCLEosSyl9ejMucHJvdG90eXBlLnJvdW5kPSh6My5wcm90b3R5cGUuZmxvb3I9ZnVuY3Rpb24oKXtyZXR1cm4oKHRoaXMudG9wPWJOKHRoaXMudG9wKSx0aGlzLnJpZ2h0PWJOKHRoaXMucmlnaHQpLHRoaXMpLmJvdHRvbT1iTih0aGlzLmJvdHRvbSksdGhpcykubGVmdD1iTih0aGlzLmxlZnQpLHRoaXN9LHozLnByb3RvdHlwZS5jZWlsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVmdD0odGhpcy5ib3R0b209KHRoaXMucmlnaHQ9KHRoaXMudG9wPWQwKHRoaXMudG9wKSxkMCkodGhpcy5yaWdodCksZDApKHRoaXMuYm90dG9tKSxkMCh0aGlzLmxlZnQpKSx0aGlzfSxmdW5jdGlvbigpe3JldHVybih0aGlzLmJvdHRvbT0odGhpcy5yaWdodD0odGhpcy50b3A9eWEodGhpcy50b3ApLHlhKSh0aGlzLnJpZ2h0KSx5YSh0aGlzLmJvdHRvbSkpLHRoaXMpLmxlZnQ9eWEodGhpcy5sZWZ0KSx0aGlzfSk7CmZ1bmN0aW9uIG5qKEIseixLLEope3JldHVybiBlWzJdLmNhbGwodGhpcywzLHosSyxKLEIpfQp2YXIgQVo9KG5qLnByb3RvdHlwZS5jZWlsPShuai5wcm90b3R5cGUuZmxvb3I9KG5qLnByb3RvdHlwZS5yb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhlaWdodD0odGhpcy50b3A9KHRoaXMubGVmdD15YSh0aGlzLmxlZnQpLHlhKHRoaXMudG9wKSksdGhpcy53aWR0aD15YSh0aGlzLndpZHRoKSx5YSh0aGlzLmhlaWdodCkpLHRoaXN9LGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMudG9wPSh0aGlzLmxlZnQ9Yk4odGhpcy5sZWZ0KSxiTih0aGlzLnRvcCkpLHRoaXMud2lkdGg9Yk4odGhpcy53aWR0aCksdGhpcykuaGVpZ2h0PWJOKHRoaXMuaGVpZ2h0KSx0aGlzfSksZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWlnaHQ9KHRoaXMudG9wPSh0aGlzLmxlZnQ9ZDAodGhpcy5sZWZ0KSxkMCh0aGlzLnRvcCkpLHRoaXMud2lkdGg9ZDAodGhpcy53aWR0aCksZDApKHRoaXMuaGVpZ2h0KSx0aGlzfSksaFgpP1MyOCgpOmtlfHx4eD9Mb2woKTpudWxsOwpmdW5jdGlvbiB2Zygpe3JldHVybiBrWzEyXS5jYWxsKHRoaXMsNjApfShlWzI0XSg2MCx2ZyksdmcucHJvdG90eXBlKS52PTA7ZnVuY3Rpb24gblEoQix6KXtyZXR1cm4gRFsyNF0uY2FsbCh0aGlzLDIsQix6KX12YXIgTHg9KChIWzI0XSgxNyxuUSxvZyksblEpLnByb3RvdHlwZS5vej12Zy5KKCksbnVsbCksUmM9KFdIbCgpLGZ1bmN0aW9uKCl7cmV0dXJuIERbMjFdLmNhbGwodGhpcyw0Mil9KSxVZz0oKGUkKCksTkkpKCksZVVOKSgpLE1pPVNuKCksd0s9RV8oKSxJVD1ObCgpLEZMPWRjKCksbkY9ZnVuY3Rpb24oKXtyZXR1cm4gR1s4XS5jYWxsKHRoaXMsMSl9LEJqPSREKCksc0M9Z0goKSx6cj1JTygpLEthPUhNKCksSjk9R20oKSxDYT1UTigpLGJHPUQwKCksQTk9bG8oKSx2aj1nakcoKSxoVT1TJCgpLHd0OD14dSgpLFR3PUIxKCksakQ9VDkoKSxJZDg9aFc4KCksbjU9KHIkMygpLEYkKCkpLCRnPUtjKCksWkk9RWMoKSxpTT1iZjMoKSxUcj0oSnAoKSxhJCgpKTsKKEY9blEucHJvdG90eXBlLG5RLnByb3RvdHlwZS5yZW5kZXI9KChuUS5wcm90b3R5cGUudT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LChuUS5wcm90b3R5cGUud2I9ZnVuY3Rpb24oQil7aWYodGhpcy5pJiZ0aGlzLmkhPUIpdGhyb3cgRXJyb3IoSWQ4KTtuUS5ZLndiLmNhbGwodGhpcyxCKX0sblEpLnByb3RvdHlwZSkuYlk9ZnVuY3Rpb24oKXt0aGlzLk09dGhpcy5sLmNyZWF0ZUVsZW1lbnQoc2kpfSxmdW5jdGlvbihCLHope2lmKHRoaXNbKHo9WyJpIiwiYXBwZW5kQ2hpbGQiLCJTcSJdLHopWzJdXSl0aHJvdyBFcnJvcihuNSk7dGhpc1sodGhpcy5NfHx0aGlzLmJZKCksQik/Qi5pbnNlcnRCZWZvcmUodGhpcy5NLG51bGwpOnRoaXMubC52LmJvZHlbelsxXV0odGhpcy5NKSx6WzBdXSYmIXRoaXNbelswXV1belsyXV18fHRoaXMuQ3EoKX0pLEYuTzM9ZnVuY3Rpb24oQil7dGhpcy5NPUJ9LEYuQ3E9ZnVuY3Rpb24oKXtlWzJdKDIwLCh0aGlzLlNxPSEwLHRoaXMpLGZ1bmN0aW9uKEIpeyFCLlNxJiYKQi51KCkmJkIuQ3EoKX0pfSxGLlo9ZnVuY3Rpb24oQil7KHRoaXMuQT0odGhpcy5pPSh0aGlzLk09KCgoKEI9WzQ2LDIsbnVsbF0sdGhpcy5TcSkmJnRoaXMuREcoKSx0aGlzLlUpJiYodGhpcy5VLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy5VKSxlKVtCWzFdXSgyMSx0aGlzLGZ1bmN0aW9uKHope3ouZGlzcG9zZSgpfSksdGhpcy5NJiZlW0JbMF1dKDExLHRoaXMuTSksQlsyXSksQlsyXSksQilbMl0sdGhpcy5GPUJbMl0sblEpLlkuWi5jYWxsKHRoaXMpfSxGLkRHPWZ1bmN0aW9uKEIpe3RoaXMuU3E9KEI9WzE2LDIyLCExXSxlWzJdKEJbMV0sdGhpcyxmdW5jdGlvbih6KXt6LlNxJiZ6LkRHKCl9KSx0aGlzLlUmJkdbMjVdKEJbMF0sdGhpcy5VKSxCKVsyXX0sRikuZWk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfTtmdW5jdGlvbiBwTShCLHosSyxKKXtyZXR1cm4ga1sxOV0uY2FsbCh0aGlzLDYyLEIseixLLEopfXZhciBNcj0oSFsyNF0oMTcscE0sY2IpLEwyKSgpOwpmdW5jdGlvbiBxbShCLHope3JldHVybiBIWzE4XS5jYWxsKHRoaXMsNCxCLHopfXZhciBFRj0oSFsyNF0oNDkscW0sb2cpLGRyKSYmaFgsdTI9KCgoKCgoRj0ocW0ucHJvdG90eXBlLnY9bnVsbCxxbS5wcm90b3R5cGUpLEYubzc9bnVsbCxGLmNJPSExLEYpLlBZPWZ1bmN0aW9uKEIseil7cmV0dXJuIG1bN10uY2FsbCh0aGlzLDUyLEIseil9LEYuWUo9LTEsRikuZWs9LTEsRj1xbS5wcm90b3R5cGUsRikuQU09bnVsbCxGKS5rcD1udWxsLEYpLlh0PWZ1bmN0aW9uKEIpe3JldHVybiBnWzI0XS5jYWxsKHRoaXMsMTYsQil9LHt9KTsKRi51PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudn0sRi5oYW5kbGVFdmVudD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQz0odj1bMjI0LDAsOTFdLFE9Wyh6PUIuZXEsMCksMzIsImtleUlkZW50aWZpZXIiXSx6LmFsdEtleSksa2UmJkIudHlwZT09QlM/KHA9dGhpcy5layxKPXouY2hhckNvZGU+PXZbMV0mJnouY2hhckNvZGU8NjMyMzImJm1bMTldKDUxLDE4NyxwKT96LmNoYXJDb2RlOjApOihCLnR5cGU9PUJTPyhFRiYmKEM9dGhpcy5jSSksei5rZXlDb2RlPT16LmNoYXJDb2RlP3oua2V5Q29kZTxRWzFdPyhKPXZbMV0scD16LmtleUNvZGUpOihKPXouY2hhckNvZGUscD10aGlzLmVrKToocD16LmtleUNvZGV8fHRoaXMuZWssSj16LmNoYXJDb2RlfHx2WzFdKSk6KHA9ei5rZXlDb2RlfHx0aGlzLmVrLEo9ei5jaGFyQ29kZXx8dlsxXSksZHImJko9PTYzJiZwPT12W1FbMF1dJiYocD0xOTEpKSwoQT1wPXlbMjBdKDEyLHZbMl0scCkpP3A+PTYzMjMyJiZwIGluIEJYPwpBPUJYW3BdOnA9PTI1JiZCLnNoaWZ0S2V5JiYoQT05KTp6W1FbMl1dJiZ6W1FbMl1daW4gY3kmJihBPWN5W3pbUVsyXV1dKSwhaFgpfHxCLnR5cGUhPUJTfHxlWzE4XSg5LDIxOSwxNixCLm1ldGFLZXksQSx0aGlzLllKLEIuY3RybEtleSxDLEIuc2hpZnRLZXkpKWI9QT09dGhpcy5ZSix0aGlzLllKPUEsSz1uZXcgcE0oQSxKLGIseiksSy5hbHRLZXk9QyxnWzNdKDYwLHRoaXMsSyl9Owp2YXIgUWYsZDk9e0NiOnpmLHpROihxbS5wcm90b3R5cGUuWj1mdW5jdGlvbihCKXsocW0uWVtCPVsiY2FsbCIsMzEsIloiXSxCWzJdXVtCWzBdXSh0aGlzKSxPKVtCWzFdXSgxLG51bGwsdGhpcyl9LEtaKSxMYjplWkQscE46SHROLGpxOms0LGM2OnRVLHQ1OiRSLER5Onl4fSxGX049KGVbMjRdKDU4LE5RKSxKRihDTSxLTSxibixmNixobWwsSlosZGtELGY2LGtxeCxmNix0WngsZjYsVWswLEpaLE1aRyxKWikpLG1ZPSgoKChOUS5wcm90b3R5cGUuTXU9KEY9KE5RLnByb3RvdHlwZS5oeT1mdW5jdGlvbihCLHope21bMThdKDcyLHRoaXMuV2goKSsiLXJ0bCIsQix6KX0sTlEucHJvdG90eXBlKSxOUS5wcm90b3R5cGUueGM9ZnVuY3Rpb24oQix6KXsoKHo9WzIsITAsInUiXSxCLnVZPT1udWxsKSYmKEIudVk9InJ0bCI9PWdbMTBdKHpbMF0sImRpcmVjdGlvbiIsQi5TcT9CLk06Qi5sLnYuYm9keSkpLEIudVkpJiZ0aGlzLmh5KEJbelsyXV0oKSx6WzFdKSxCLmlzRW5hYmxlZCgpJiZ0aGlzLm93KEIsCkIuaXNWaXNpYmxlKCkpfSwoTlEucHJvdG90eXBlLnRNPWZ1bmN0aW9uKEIseixLKXtBWiYmKEs9ej8iIjp0QigpLEIuc3R5bGUmJihCLnN0eWxlW0FaXT1LKSl9LEYpLldoPWZ1bmN0aW9uKCl7cmV0dXJuImdvb2ctY29udHJvbCJ9LGZ1bmN0aW9uKEIseil7cmV0dXJuIEIubC5NKHNpLCh6PVsiVmUiLDQsImpvaW4iXSxnMFt6WzFdXSgyMywiLW9wZW4iLEIsdGhpcylbelsyXV0obzkoKSkpLEJbelswXV0oKSl9KSxGKS5YcD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe3JldHVybigoQT0oKEIuWk09KChRPShKPShLPShiPXRoaXNbQz0oKChuPSh2PVtudWxsLCExLDBdLFsiV2giLDIsImZpcnN0Q2hpbGQiXSksei5pZCkmJmdbMTRdKDQxLHouaWQsQikseikmJnpbblsyXV0/Z1syMV0oNjYsQix6W25bMl1dLm5leHRTaWJsaW5nP21bMjldKDMsei5jaGlsZE5vZGVzKTp6W25bMl1dKTpCLmpzPXZbMF0sdltuWzFdXSkscD10aGlzW25bMF1dKCksblswXV0oKSx2WzFdKSx2WzFdKSwKbVsyOV0oMTgsZVsxXSg3Mix6KSkpLFEpLmZvckVhY2goZnVuY3Rpb24oWixXLE4peygoTj1bMiw0LDBdLFc9WyEwLCItb3BlbiIsIi1ob3ZlciJdLEopfHxaIT1wP0t8fFohPWI/Q3w9a1syOF0oTlsxXSxXWzFdLFdbTlswXV0sdGhpcyxaKTpLPVdbTlsyXV06KEo9V1tOWzJdXSxiPT1wJiYoSz1XW05bMl1dKSksa1syOF0oNSxXWzFdLFdbTlswXV0sdGhpcyxaKSk9PTEmJmVbTlsxXV0oMzEsTlsyXSx6KSYma1sxMl0oNzcsTlsyXSwhMSx6KX0sdGhpcyksQyksSnx8KFEucHVzaChwKSxiPT1wJiYoSz0hMCkpLEspfHxRLnB1c2goYiksQikuVykmJlEucHVzaC5hcHBseShRLEEpLEopJiZLJiYhQXx8R1szOF0oNCwic3RyaW5nIixRLmpvaW4oIiAiKSx6KSx6fSxOUS5wcm90b3R5cGUucnQ9ZnVuY3Rpb24oQix6LEspe3JldHVybiBCW0s9WyJHSiIsMzAsInUiXSxLWzBdXSYzMiYmKHo9QltLWzJdXSgpKT9lWzRdKEtbMV0sMCx6KTohMX0sTlEpLnByb3RvdHlwZS51Qz1mdW5jdGlvbihCLAp6LEssSixDLGIsQSx2KXsoKGI9KEM9KFFmfHwoUWY9ezE6R1EsODpKWiwxNjpmNiw2NDpYdE59KSxRZilbel0sQi5nZXRBdHRyaWJ1dGUoUGgpfHxudWxsKSk/KHY9Rl9OW2JdfHxDLEE9Qz09ZjZ8fEM9PUpaP3Y6Qyk6QT1DLEo9QSkmJk9bMV0oNzMsSixCLEspfSxGLmNsPWZ1bmN0aW9uKCl7fSxGKS5vdz1mdW5jdGlvbihCLHosSyxKKXtpZigoSj1bNzYsInUiLG51bGxdLEIpLkdKJjMyJiYoSz1CW0pbMV1dKCkpKXtpZigheiYmQi5sNygpKXt0cnl7Sy5ibHVyKCl9Y2F0Y2goQyl7fUIubDcoKSYmQi5uRShKWzJdKX1lWzRdKDI2LDAsSykhPXomJmtbMTJdKEpbMF0sMCx6LEspfX0sRi5RbD1mdW5jdGlvbihCLHosSyxKLEMsYil7aWYoSj0oYj1bInVDIiwidSIsMThdLEspW2JbMV1dKCkpKEM9RFsyNl0oMjAsIi1vcGVuIix0aGlzLHopKSYmbVtiWzJdXSg3NCxDLEssQiksdGhpc1tiWzBdXShKLHosQil9LHt9KTsKZnVuY3Rpb24gWksoQix6LEssSixDLGIsQSx2KXtyZXR1cm4gRFsyN10uY2FsbCh0aGlzLDM2LEIseixLLEosQyxiLEEsdil9CnZhciBTcz0oKCgoKCgoKCgoKCgoKChGPSgoSFsyNF0oMjUsWkssblEpLFpLKS5wcm90b3R5cGUuREc9ZnVuY3Rpb24oQil7KCgoQj1bIlgiLCExLCJjYWxsIl0sWksuWSkuREdbQlsyXV0odGhpcyksdGhpcykuSCYmT1szMV0oMzIsbnVsbCx0aGlzLkgpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuaXNFbmFibGVkKCkpJiZ0aGlzW0JbMF1dLm93KHRoaXMsQlsxXSl9LFpLLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCLHopeygoKHRoaXMuTT1CPXRoaXNbej1bIlgiLCExLDMzXSx6WzBdXS5NdSh0aGlzKSx5KVt6WzJdXSgxNixudWxsLHRoaXNbelswXV0sQiksdGhpc1t6WzBdXSkudE0oQix6WzFdKSx0aGlzLmlzVmlzaWJsZSgpKXx8KFlbMzhdKDM2LEIselsxXSksQiYmT1sxXSg2NSxIMixCLCEwKSl9LFpLLnByb3RvdHlwZSksRikuWj1mdW5jdGlvbihCKXt0aGlzW3RoaXMuVz0oKFpLLlkuWlsoQj1bbnVsbCwianMiLCJjYWxsIl0sQilbMl1dKHRoaXMpLHRoaXMuSCkmJih0aGlzLkguZGlzcG9zZSgpLApkZWxldGUgdGhpcy5IKSxkZWxldGUgdGhpcy5YLEJbMF0pLEJbMV1dPUJbMF19LEYpLlF3PSEwLFpLKS5wcm90b3R5cGUuZz0hMCxaSykucHJvdG90eXBlLlc9bnVsbCxGKS5aTT0wLEYpLlJ1PTI1NSxGLkdKPTM5LFpLLnByb3RvdHlwZSkuZWk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51KCl9LFpLLnByb3RvdHlwZSkuVmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qc30sWksucHJvdG90eXBlKS5DcT1mdW5jdGlvbihCLHosSyxKLEMsYil7dGhpc1soKHRoaXNbKCgoej0oQz0oYj1bIkdKIiwyMywoQj1bNjQsOCwxNl0sNSldLFpLLlkuQ3EuY2FsbCh0aGlzKSx0aGlzLlgpLHRoaXMpLk0sdGhpcykuaXNWaXNpYmxlKCl8fE9bMV0oMSxIMix6LCF0aGlzLmlzVmlzaWJsZSgpKSx0aGlzKS5pc0VuYWJsZWQoKXx8Qy51Qyh6LDEsIXRoaXMuaXNFbmFibGVkKCkpLGIpWzBdXSZCWzFdJiZDLnVDKHosQlsxXSwhISh0aGlzLlpNJkJbMV0pKSx0aGlzW2JbMF1dJkJbMl0mJkMudUMoeixCWzJdLAp0aGlzLklUKCkpLHRoaXNbYlswXV0pJkJbMF0mJkMudUMoeixCWzBdLCEhKHRoaXMuWk0mQlswXSkpLHRoaXMuWCkueGModGhpcyksYlswXV0mLTImJih0aGlzLmcmJmVbMTZdKDIwLHRoaXMsITApLHRoaXNbYlswXV0mMzImJihKPXRoaXMudSgpKSkmJihLPXRoaXMuSHx8KHRoaXMuSD1uZXcgcW0pLG1bNDBdKDExLEssSiksZVszNl0oYlsyXSxlWzM2XShiWzJdLGVbMzZdKDgsWVtiWzFdXSg1MSx0aGlzKSxLLE1yLHRoaXMuWGcpLEosQ1osdGhpcy5ucSksSixKdCx0aGlzLm5FKSl9LEYpLmpzPW51bGwsWkspLnByb3RvdHlwZS5PMz1mdW5jdGlvbihCLHope3RoaXMuUXc9KCh0aGlzLk09KHo9WzE4LCExLCJYcCJdLEI9dGhpcy5YW3pbMl1dKHRoaXMsQikpLHkpWzMzXSh6WzBdLG51bGwsdGhpcy5YLEIpLHRoaXMuWC50TShCLHpbMV0pLEIuc3R5bGUuZGlzcGxheSE9Im5vbmUiKX0sWksucHJvdG90eXBlLmlzVmlzaWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlF3fSxaSykucHJvdG90eXBlLmlzRW5hYmxlZD0KZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuWk0mMSl9LFpLKS5wcm90b3R5cGUuZ2I9ZnVuY3Rpb24oQix6LEssSil7KEs9KHo9dGhpcy5pLFshKEo9WyEwLCJmdW5jdGlvbiIsMzNdLDEpLDEsMl0pLHomJnR5cGVvZiB6LmlzRW5hYmxlZD09SlsxXSYmIXouaXNFbmFibGVkKCl8fCFlWzQ1XSg5LEtbMV0sdGhpcywhQixLWzFdKSl8fChCfHwoeVszNF0oNyxLWzFdLHRoaXMsS1swXSksWVsxNl0oNTksS1syXSx0aGlzLEtbMF0pKSx0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzLlgub3codGhpcyxCKSx5W0pbMl1dKDMwLEtbMV0sdGhpcywhQixLWzFdLEpbMF0pKX0sWkspLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhKHRoaXMuWk0mNCl9LGZ1bmN0aW9uKEIpe3JldHVybiBHWzI5XS5jYWxsKHRoaXMsMyxCKX0pLG5NPShGPShaSy5wcm90b3R5cGUuSGg9ZnVuY3Rpb24oQix6KXsoej1bMzMsMywxNl0sZSlbNDVdKHpbMV0sMSx0aGlzLEIselsyXSkmJnlbelswXV0oMzAsCjEsdGhpcyxCLHpbMl0pfSwoWksucHJvdG90eXBlLlhnPWZ1bmN0aW9uKEIseil7cmV0dXJuIHo9WyExLCJpc0VuYWJsZWQiLCEwXSx0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzW3pbMV1dKCkmJnRoaXMuSGwoQik/KEIucHJldmVudERlZmF1bHQoKSxCLnYoKSx6WzJdKTp6WzBdfSxaSykucHJvdG90eXBlKSxaSy5wcm90b3R5cGUuSks9KChaSy5wcm90b3R5cGUuaj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoej0oKEs9WyEwLChDPVsxLDgsNDRdLDE2KSw2NF0sZylbQ1syXV0oNDMsS1tDWzBdXSx0aGlzKSYmdGhpcy5IaCghdGhpcy5JVCgpKSxnW0NbMl1dKDQyLENbMV0sdGhpcykmJmVbNDVdKDE3LENbMF0sdGhpcyxLWzBdLENbMV0pJiZ5WzMzXSg2MCxDWzBdLHRoaXMsS1swXSxDWzFdKSxnW0NbMl1dKDQwLEtbMl0sdGhpcykmJihKPSEodGhpcy5aTSZLWzJdKSxlWzQ1XSgyNSxDWzBdLHRoaXMsSixLWzJdKSYmeVszM10oMzEsQ1swXSx0aGlzLEosS1syXSkpLG5ldyAkTShUdywKdGhpcykpLEIpJiYoei5hbHRLZXk9Qi5hbHRLZXksei5jdHJsS2V5PUIuY3RybEtleSx6Lm1ldGFLZXk9Qi5tZXRhS2V5LHouc2hpZnRLZXk9Qi5zaGlmdEtleSx6LkE9Qi5BLHoudGltZVN0YW1wPUIudGltZVN0YW1wKSxnKVszXSg1Myx0aGlzLHopfSxaSy5wcm90b3R5cGUpLm5xPWZ1bmN0aW9uKCl7Z1s0NF0oNDEsMzIsdGhpcykmJnRoaXMuSksoITApfSxmdW5jdGlvbihCLHope2VbNDVdKCh6PVszMywxLDI4XSx6KVsxXSx6WzFdLHRoaXMsQiwzMikmJnlbelswXV0oelsyXSx6WzFdLHRoaXMsQiwzMil9KSxGLkhsPShaSy5wcm90b3R5cGUuSVQ9ZnVuY3Rpb24oKXtyZXR1cm4hISh0aGlzLlpNJjE2KX0sZnVuY3Rpb24oQil7cmV0dXJuIEIua2V5Q29kZT09MTMmJnRoaXMuaihCKX0pLFpLKTsKaWYoKEYueWw9RFszXS5iaW5kKCgoRi5uRT1mdW5jdGlvbigpe3JldHVybiBtWzQ1XS5jYWxsKHRoaXMsMzMpfSxaSy5wcm90b3R5cGUuUz0oRi5sUz0oWksucHJvdG90eXBlLmw3PWZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5aTSYzMil9LGZ1bmN0aW9uKEIpe3JldHVybiBlWzE1XS5jYWxsKHRoaXMsNyxCKX0pLGZ1bmN0aW9uKEIseixLKXshbVsxM10oMzAsKHo9WzIsMSwhKEs9WzIsMCwidSJdLDEpXSx6WzFdKSx6W0tbMF1dLHRoaXNbS1syXV0oKSxCKSYmZ1szXSg2Myx0aGlzLHd0OCkmJihnWzQ0XSg0MCw0LHRoaXMpJiZ5WzM0XSgxMCx6WzFdLHRoaXMseltLWzBdXSksZ1s0NF0oNDUseltLWzFdXSx0aGlzKSYmWVsxNl0oNTgseltLWzFdXSx0aGlzLHpbS1swXV0pKX0pLFpLLnByb3RvdHlwZSkuST1mdW5jdGlvbihCLHosSyl7Sz1bMzQsKHo9WzIsITEsNF0sMTYpLCEwXSx0aGlzLmlzRW5hYmxlZCgpJiYoZ1s0NF0oNTkselswXSx0aGlzKSYmWVtLWzFdXSg4LHpbMF0sdGhpcywKS1syXSksdGhpcy5pc0FjdGl2ZSgpJiZ0aGlzLmooQikmJmdbNDRdKDU2LHpbMl0sdGhpcykmJnlbS1swXV0oNiwxLHRoaXMselsxXSkpfSxudWxsKSw3MyksRi51az1mdW5jdGlvbihCLHosSyl7KCh6PShLPVsiWCIsInByZXZlbnREZWZhdWx0Iiw1N10sWzIsMCw0XSksdGhpcy5pc0VuYWJsZWQoKSkmJihnWzQ0XSg0NCx6WzBdLHRoaXMpJiZZWzE2XShLWzJdLHpbMF0sdGhpcywhMCksQi5lcS5idXR0b24hPXpbMV18fGRyJiZCLmN0cmxLZXl8fChnWzQ0XSg1OCx6WzJdLHRoaXMpJiZ5WzM0XSg1LDEsdGhpcywhMCksdGhpc1tLWzBdXSYmdGhpc1tLWzBdXS5ydCh0aGlzKSYmdGhpcy51KCkuZm9jdXMoKSkpLEIuZXEpLmJ1dHRvbiE9elsxXXx8ZHImJkIuY3RybEtleXx8QltLWzFdXSgpfSx0eXBlb2Ygbk0pIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSW52YWxpZCBjb21wb25lbnQgY2xhc3MgIituTSk7CmlmKHR5cGVvZiBOUSE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoIkludmFsaWQgcmVuZGVyZXIgY2xhc3MgIitOUSk7CnZhciBCMzM9bVs0OF0oMjgsbk0pLHlpPSgoKCgoKCgoKCgoUlttWVtCMzNdPU5RLDQ1XSgxMywiZ29vZy1jb250cm9sIixmdW5jdGlvbigpe3JldHVybiBuZXcgWksobnVsbCl9KSxPKVsyMV0oMSxZMCxaSyksRj1ZMC5wcm90b3R5cGUsRikuQ3E9ZnVuY3Rpb24oQix6LEssSixDLGIpe3RoaXNbKGI9WyJSIiwzNiw5XSxaSy5wcm90b3R5cGUpLkNxLmNhbGwodGhpcyksdGhpcy5nJiYoQj1ZWzIzXSg1MSx0aGlzKSx0aGlzW2JbMF1dJiZlW2JbMV1dKGJbMl0sZVtiWzFdXSgzLGVbYlsxXV0oMTIsZVtiWzFdXSgxMixlW2JbMV1dKDExLEIsbmV3IHhGKHRoaXNbYlswXV0pLERDLHRoaXMuTWQpLHRoaXNbYlswXV0sazQsdGhpcy5sUyksdGhpc1tiWzBdXSx0VSx0aGlzLlMpLHRoaXNbYlswXV0semYsdGhpcy51ayksdGhpc1tiWzBdXSxLWix0aGlzLkkpLGVbYlsxXV0oMTAsZVtiWzFdXSg3LEIsbmV3IHhGKHRoaXMudSgpKSxEQyx0aGlzLk1kKSxuZXcgV2UoZG9jdW1lbnQpLGEzLHRoaXMuTWQpKSwKYlswXV0mJih0aGlzW2JbMF1dLmlkfHwoQz10aGlzW2JbMF1dLHo9Q04zKCksSj1PWzE5XSgyNCxiWzFdLHRoaXMpKyIuIit6LEMuaWQ9SiksSz10aGlzLnUoKSxPWzFdKDMzLHp3LEssdGhpc1tiWzBdXS5pZCkpfSxGLklUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudj09MH0sRi5mNT1mdW5jdGlvbihCKXtyZXR1cm4oQj1bInYiLCJiQyIsMjddLHRoaXNbQlswXV0pPT0zP2dbQlsyXV0oNCk6dGhpc1tCWzFdXSgzKX0sWTAucHJvdG90eXBlKS5IbD1mdW5jdGlvbihCLHope3JldHVybiB6PVsia2V5Q29kZSIsMzIsITBdLCFCfHxCW3pbMF1dIT16WzFdJiZCW3pbMF1dIT0xMz8hMToodGhpcy5NZChCKSx6WzJdKX0sRikuSks9ZnVuY3Rpb24oQix6KXsoej1bMjAsITEsImNhbGwiXSxaSykucHJvdG90eXBlLkpLW3pbMl1dKHRoaXMsQiksUlsxMl0oelswXSx0aGlzLHpbMV0pfSxGLlFkPWZ1bmN0aW9uKCl7dGhpcy52PT0yfHx0aGlzLmJDKDIpfSxGPVkwLnByb3RvdHlwZSxGKS5iQz1mdW5jdGlvbihCLAp6LEssSil7aWYoQj09KEs9WzIsMywicmVjYXB0Y2hhLWNoZWNrYm94LWNoZWNrZWQiXSxKPVswLCJ2IiwxXSxKKVswXSYmdGhpcy5JVCgpfHxCPT1KWzJdJiZ0aGlzW0pbMV1dPT1KWzJdfHxCPT1LW0pbMF1dJiZ0aGlzW0pbMV1dPT1LW0pbMF1dfHxCPT1LW0pbMl1dJiZ0aGlzW0pbMV1dPT1LW0pbMl1dKXJldHVybiBtWzJdKDQpO3JldHVybigoKChCPT1LW0pbMF1dJiZ0aGlzLkpLKCExKSx0aGlzW0pbMV1dPUIsZylbMl0oMjksQj09SlswXSxLWzJdLHRoaXMpLGcpWzJdKDI4LEI9PUtbSlswXV0sInJlY2FwdGNoYS1jaGVja2JveC1leHBpcmVkIix0aGlzKSxnKVsyXSgyNyxCPT1LW0pbMl1dLCJyZWNhcHRjaGEtY2hlY2tib3gtbG9hZGluZyIsdGhpcyksej10aGlzLnUoKSkmJk9bSlsyXV0oNDgsZjYseixCPT1KWzBdP3U1RDphZEcpLGdbM10oNTEsdGhpcyxqRCksbVsyXSg1KX0sRi51az1mdW5jdGlvbihCLHope1pLW3o9WyJwcm90b3R5cGUiLCEwLDE5XSx6WzBdXS51ay5jYWxsKHRoaXMsCkIpLFJbMTJdKHpbMl0sdGhpcyx6WzFdKX0sRikuZ2I9ZnVuY3Rpb24oQix6KXsoej1bImdiIiwiY2FsbCIsInRhYkluZGV4Il0sWksucHJvdG90eXBlW3pbMF1dW3pbMV1dKHRoaXMsQiksQikmJih0aGlzLnUoKVt6WzJdXT10aGlzW3pbMl1dKX0sRikuTWQ9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1sxN10uY2FsbCh0aGlzLDIsQix6KX0sRikuSGg9ZnVuY3Rpb24oQil7QiYmdGhpcy5JVCgpfHwhQiYmdGhpcy52PT0xfHx0aGlzLmJDKEI/MDoxKX0sRikuYlk9ZnVuY3Rpb24oQil7Qj1bMjIsIk0iLCJJVCJdLHRoaXNbQlsxXV09a1tCWzBdXSgzNyxEWzMyXS5iaW5kKG51bGwsMzApLHtpZDpPWzE5XSg4LDM2LHRoaXMpLHVCOnRoaXMuVyxjaGVja2VkOnRoaXNbQlsyXV0oKSxkaXNhYmxlZDohdGhpcy5pc0VuYWJsZWQoKSxEMzp0aGlzLnRhYkluZGV4fSx2b2lkIDAsdGhpcy5sKX0sRikubDc9ZnVuY3Rpb24oQil7cmV0dXJuKEI9WyJyZWNhcHRjaGEtY2hlY2tib3gtY2xlYXJPdXRsaW5lIiwKImw3IiwiY2FsbCJdLFpLKS5wcm90b3R5cGVbQlsxXV1bQlsyXV0odGhpcykmJiEodGhpcy5pc0VuYWJsZWQoKSYmdGhpcy51KCkmJmVbMTBdKDE1LHRoaXMudSgpLEJbMF0pKX0sbSQoKSksWTE9KE9bOF0oNyw4LGZ1bmN0aW9uKEIpe2Zvcih2YXIgej1bMCwzNiw4OF0sSz03NSxKPXpbMl07Oyl0cnl7aWYoSz09NDcpYnJlYWs7ZWxzZSBpZihLPT0zMSlLPTE4O2Vsc2V7aWYoSz09NTEpcmV0dXJuIEo9elsyXSx2WzFdO2lmKEs9PTE4KUs9US5kb25lPzc6Nzk7ZWxzZSBpZihLPT0xOSlRPXAubmV4dCgpLEs9MTg7ZWxzZSBpZihLPT16WzJdKUs9YiBpbnN0YW5jZW9mIFZiP3pbMV06Njc7ZWxzZSBpZihLPT0yOSl7dmFyIEM9KEo9MSx0eXBlb2YgQT09Im51bWJlciIpP0RbMTJdKDU0LHZbelswXV0sQSk6QSxiPVlbMzNdKDIxLHZbMl0sQixDKTtLPXpbMl19ZWxzZSBpZihLPT03OSl2YXIgQT0oSz0yOSxRLnZhbHVlKTtlbHNlIGlmKEs9PTc1KXt2YXIgdj1bMSxudWxsLCIiXSxwPWdbMTJdKDcsCkcyLmFwcGx5KHZbelswXV0sYXJndW1lbnRzKSksUT1wLm5leHQoKTtLPTMxfWVsc2V7aWYoSz09elsxXSlyZXR1cm4gYjtpZihLPT02NylCPUJbQ10sSz0xOTtlbHNlIGlmKEs9PTcpcmV0dXJuIEhbOF0oMTIsNjYxNykoQil9fX1jYXRjaChaKXtpZihKPT16WzJdKXRocm93IFo7aWYoSj09MSl2YXIgbj0oSz01MSxaKX19KSxORCkoKTtmdW5jdGlvbiBaRShCLHosSyl7cmV0dXJuIG1bNDBdLmNhbGwodGhpcywyLEIseixLKX12YXIgc1lOPShIWzI0XSg1OCxaRSxwUSksUkEpKCk7ClpFLnByb3RvdHlwZS5zdGFydD0oKChaRS5wcm90b3R5cGUuRj1mdW5jdGlvbihCKXsoKEI9W251bGwsInYiLCJjYWxsIl0sdGhpcykuaSYmdGhpc1tCWzFdXSYmUlsxNl0oMSx0aGlzW0JbMV1dKSx0aGlzW0JbMV1dPUJbMF0sdGhpcykuUltCWzJdXSh0aGlzLkEsZVsyOV0oNTgpKX0sWkUpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYhPW51bGx9LFpFKS5wcm90b3R5cGUubTg9ZnVuY3Rpb24oQix6LEspeyhLPVsibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwzNCwyMl0sdGhpcy5pc0FjdGl2ZSgpJiYoQj1EW0tbMV1dKDEsbnVsbCx0aGlzKSx6PW1bS1syXV0oOTAsbnVsbCx0aGlzKSxCJiYheiYmdGhpcy5NW0tbMF1dP1JbMTZdKDUsdGhpcy52KTpCJiZ6P3ouY2FsbCh0aGlzLk0sdGhpcy52KTp0aGlzLk0uY2xlYXJUaW1lb3V0KHRoaXMudikpLHRoaXMpLnY9bnVsbH0sZnVuY3Rpb24oQix6LEssSil7Sz0oKHo9W251bGwsKEo9WzQsIm1velJlcXVlc3RBbmltYXRpb25GcmFtZSIsCjhdLCExKSwyMF0sdGhpcykubTgoKSx0aGlzLmk9elsxXSxEKVszNF0oSlswXSx6WzBdLHRoaXMpLEI9bVsyMl0oODkselswXSx0aGlzKSxLJiYhQiYmdGhpcy5NW0pbMV1dPyh0aGlzLnY9SFs1XSg5MSx0aGlzLk0sc1lOLHRoaXMuWCksdGhpcy5NW0pbMV1dKHpbMF0pLHRoaXMuaT0hMCk6dGhpcy52PUsmJkI/Sy5jYWxsKHRoaXMuTSx0aGlzLlgpOnRoaXMuTS5zZXRUaW1lb3V0KGVbNDBdKEpbMl0sMCx0aGlzLlgpLHpbMl0pfSksWkUucHJvdG90eXBlLlo9ZnVuY3Rpb24oKXt0aGlzLm04KCksWkUuWS5aLmNhbGwodGhpcyl9O2Z1bmN0aW9uIFdkKEIseixLKXtyZXR1cm4ga1szMF0uY2FsbCh0aGlzLDE2LEIseixLKX0KdmFyIFFBPSgoKChGPShIWzI0XSg1OCxXZCxwUSksV2QucHJvdG90eXBlKSxGKS5aPWZ1bmN0aW9uKEIpe2RlbGV0ZSB0aGlzWyhCPVsiWiIsInYiLCJjYWxsIl0sV2QuWSlbQlswXV1bQlsyXV0odGhpcyksdGhpcy5tOCgpLEJbMV1dLGRlbGV0ZSB0aGlzLk19LEYpLnlhPTAsRi5zdGFydD1mdW5jdGlvbihCLHope3RoaXNbKHo9WyJpIiwyLCJ5YSJdLHRoaXMpLm04KCkselsyXV09T1t6WzFdXSg3LHRoaXMuWCxCIT09dm9pZCAwP0I6dGhpc1t6WzBdXSl9LEYpLm04PWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJ5YSIsMCwiaXNBY3RpdmUiXSxCKVsyXV0oKSYma1sxNl0oNjIsdGhpc1tCWzBdXSksdGhpc1tCWzBdXT1CWzFdfSxGLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueWEhPTB9LG51bGwpLG45PW51bGwsSUM9e30sJDQ9KEYuVnc9ZnVuY3Rpb24oKXtyZXR1cm4gZ1szOV0uY2FsbCh0aGlzLDQ4KX0scEwpKCksWjk9R1IoKSxXZz10UE4oKSxFdj10SygpLGc3PUtPKCksCnF2PVpaKCksTjM9UlcoKTtmdW5jdGlvbiBvYigpe3JldHVybiBPWzMwXS5jYWxsKHRoaXMsNCl9CnZhciB6aVo9KCgoSFsyNF0oODEsb2Isb2cpLG9iLnByb3RvdHlwZSkuaT1mdW5jdGlvbigpe3RoaXMudEwocXYpfSxvYikucHJvdG90eXBlLnRMPWZ1bmN0aW9uKEIpe2dbM10oNjIsdGhpcyxCKX0sSFsyNF0oMTksRGQsb2IpLHpjKSgpLEtFaD1kVigpLFZoPW5ldyAoKCgoKCgoKCgoKEhbMjRdKDE3LHN1LCgoKEY9RGQucHJvdG90eXBlLEYucGxheT1mdW5jdGlvbihCLHosSyxKLEMpe2lmKChDPVsidiIsNTksKEo9WzAsMSwhMV0sImVuZFRpbWUiKV0sQil8fHRoaXNbQ1swXV09PUpbMF0pdGhpcy5wcm9ncmVzcz1KWzBdLHRoaXMuY29vcmRzPXRoaXMuTTtlbHNlIGlmKHRoaXNbQ1swXV09PUpbMV0pcmV0dXJuIEpbMl07cmV0dXJuKCh6PSh0aGlzWygoKHRoaXNbbVszMV0oNDcsITAsdGhpcyksdGhpcy5zdGFydFRpbWU9Sz1lWzI5XSgyNiksdGhpc1tDWzBdXT09LTEmJih0aGlzLnN0YXJ0VGltZS09dGhpcy5kdXJhdGlvbip0aGlzLnByb2dyZXNzKSxDWzJdXT10aGlzLnN0YXJ0VGltZSsKdGhpcy5kdXJhdGlvbix0aGlzLnByb2dyZXNzKXx8dGhpcy50TChaOSksdGhpcykudEwoJDQpLHRoaXNbQ1swXV09PS0xKSYmdGhpcy50TChXZyksQ1swXV09SlsxXSxtWzQ4XSg2MCx0aGlzKSkseiBpbiBJQyl8fChJQ1t6XT10aGlzKSxZKVs0NV0oQ1sxXSksZVs0OV0oMixKWzBdLEpbMV0sdGhpcyxLKSwhMH0sRikuWFI9ZnVuY3Rpb24oQix6KXsodGhpcy52PShtWzMxXSgxNSwhMCwoej1bInRMIiwicHJvZ3Jlc3MiLDE4XSx0aGlzKSksMCksQiYmKHRoaXNbelsxXV09MSksRylbMzRdKHpbMl0sMCx0aGlzW3pbMV1dLHRoaXMpLHRoaXNbelswXV0oZzcpLHRoaXNbelswXV0oRXYpfSxGLnBhdXNlPWZ1bmN0aW9uKEIpe3RoaXNbQj1bMzEsInYiLDFdLEJbMV1dPT1CWzJdJiYobVtCWzBdXSgzOSwhMCx0aGlzKSx0aGlzW0JbMV1dPS0xLHRoaXMudEwoTjMpKX0sRi50TD1mdW5jdGlvbihCKXtnWzNdKDYyLHRoaXMsbmV3IHN1KEIsdGhpcykpfSxGKS5aPWZ1bmN0aW9uKEIpe0I9WzAsCiJaIiwhMV0sdGhpcy52PT1CWzBdfHx0aGlzLlhSKEJbMl0pLHRoaXMudEwoS0VoKSxEZC5ZW0JbMV1dLmNhbGwodGhpcyl9LEYuT1g9ZnVuY3Rpb24oKXt0aGlzLnRMKHppWil9LCRNKSksSFsyNF0oODEsbnIsb2IpLG5yKS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseil7WVs4XSgyOCwoej1bNSwiQSIsMjRdLHRoaXMuTSksQil8fCh0aGlzLk0ucHVzaChCKSxIW3pbMF1dKHpbMl0sQixxdix0aGlzW3pbMV1dLCExLHRoaXMpKX0sbnIucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihCLHope21bKHo9WzU3LDI2LCJNIl0seilbMV1dKHpbMF0sMCx0aGlzW3pbMl1dLEIpJiZrWzVdKDE4LDAsdGhpcywhMSx0aGlzLkEsQixxdil9LG5yLnByb3RvdHlwZSkuWj1mdW5jdGlvbihCKXsoKHRoaXNbKEI9WzAsIlkiLCJNIl0sQilbMl1dLmZvckVhY2goZnVuY3Rpb24oeil7ei5kaXNwb3NlKCl9KSx0aGlzKVtCWzJdXS5sZW5ndGg9QlswXSxucilbQlsxXV0uWi5jYWxsKHRoaXMpfSxIWzI0XSg0OSwKYUMsbnIpLGFDLnByb3RvdHlwZSkucGxheT1mdW5jdGlvbihCLHosSyl7aWYodGhpcy5NLmxlbmd0aD09KEs9Wyh6PVswLCExLCEwXSwiWCIpLCJzdGFydFRpbWUiLCJYUiJdLHpbMF0pKXJldHVybiB6WzFdO2lmKEJ8fHRoaXMudj09elswXSl0aGlzW0tbMF1dPHRoaXMuTS5sZW5ndGgmJnRoaXMuTVt0aGlzW0tbMF1dXS52IT16WzBdJiZ0aGlzLk1bdGhpc1tLWzBdXV1bS1syXV0oelsxXSksdGhpc1tLWzBdXT16WzBdLHRoaXMudEwoWjkpO2Vsc2UgaWYodGhpcy52PT0xKXJldHVybiB6WzFdO3JldHVybih0aGlzLnY9KHRoaXMuZW5kVGltZT0oKCh0aGlzLnRMKCQ0KSx0aGlzKS52PT0tMSYmdGhpcy50TChXZyksdGhpcylbS1sxXV09ZVsyOV0oOTApLG51bGwpLDEpLHRoaXMuTVt0aGlzW0tbMF1dXS5wbGF5KEIpLHopWzJdfSxhQykucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKEIpe3RoaXNbQj1bMSwidiIsInBhdXNlIl0sQlsxXV09PUJbMF0mJih0aGlzLk1bdGhpcy5YXVtCWzJdXSgpLAp0aGlzW0JbMV1dPS0xLHRoaXMudEwoTjMpKX0sYUMucHJvdG90eXBlKS5YUj1mdW5jdGlvbihCLHosSyxKKXtpZih0aGlzLmVuZFRpbWU9ZVt0aGlzLnY9KEo9WyExLCJYIiwhMF0sMCksMjldKDQyKSxCKWZvcihLPXRoaXNbSlsxXV07Szx0aGlzLk0ubGVuZ3RoOysrSyl6PXRoaXMuTVtLXSx6LnY9PTAmJnoucGxheSgpLHoudj09MHx8ei5YUihKWzJdKTtlbHNlIHRoaXNbSlsxXV08dGhpcy5NLmxlbmd0aCYmdGhpcy5NW3RoaXNbSlsxXV1dLlhSKEpbMF0pO3RoaXMudEwoZzcpLHRoaXMudEwoRXYpfSxhQy5wcm90b3R5cGUuQT1mdW5jdGlvbihCKXtpZigoQj1bInBsYXkiLCJYIiwidEwiXSx0aGlzLnYpPT0xKWlmKHRoaXNbQlsxXV0rKyx0aGlzW0JbMV1dPHRoaXMuTS5sZW5ndGgpdGhpcy5NW3RoaXNbQlsxXV1dW0JbMF1dKCk7ZWxzZSB0aGlzLmVuZFRpbWU9ZVsyOV0oNTgpLHRoaXMudj0wLHRoaXMuaSgpLHRoaXNbQlsyXV0oRXYpfSxPKVsyMV0oNixsMCxEZCksbDAucHJvdG90eXBlKS5PWD0KZnVuY3Rpb24oQix6LEspeyhCPShLPVswLCJYIiwiT1giXSwtYk4odGhpcy5jb29yZHNbS1swXV0vdGhpc1tLWzFdXS53aWR0aCkqdGhpc1tLWzFdXS53aWR0aCksej0tYk4odGhpcy5jb29yZHNbMV0vdGhpc1tLWzFdXS5oZWlnaHQpKnRoaXNbS1sxXV0uaGVpZ2h0LHRoaXMuQS5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb249QisicHggIit6KyJweCIsRGQucHJvdG90eXBlKVtLWzJdXS5jYWxsKHRoaXMpfSxsMC5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXtEZC5wcm90b3R5cGUuWi5jYWxsKHRoaXMpLHRoaXMuQT1udWxsfSxsMC5wcm90b3R5cGUuaT1mdW5jdGlvbihCKXsoKEI9WyJjYWxsIiwicHJvdG90eXBlIiwhMF0sdGhpcykuRnx8dGhpcy5wbGF5KEJbMl0pLERkKVtCWzFdXS5pW0JbMF1dKHRoaXMpfSxPWzIxXSgyLENxLFkwKSxDcS5wcm90b3R5cGUuZjU9ZnVuY3Rpb24oQix6KXtpZigoej1bNDQsITAsInYiXSx0aGlzW3pbMl1dKT09M3x8dGhpcy5EKXJldHVybiBnWzI3XSgyKTsKcmV0dXJuKEI9Uls3XSh6WzBdKSxlWzQyXSgyNSwzLHRoaXMselsxXSxCKSxCKS5wcm9taXNlfSxDcS5wcm90b3R5cGUuSGg9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7KEs9KFE9WzIsMSwoYj0ocD1bITAsITEsM10sdGhpcyksMCldLGZ1bmN0aW9uKCl7cmV0dXJuIGIuYkMoeil9KSxCKSYmdGhpcy5JVCgpfHwhQiYmdGhpcy52PT1RWzFdfHx0aGlzLkR8fChDPXRoaXMudix6PUI/MDoxLEo9dGhpcy5sNygpLEE9ZVsxNF0oMTQscFtRWzJdXSx0aGlzLHBbUVsyXV0pLHRoaXMudj09cFtRWzBdXT92PWVbNDJdKDI4LHBbUVswXV0sdGhpcyxwW1FbMV1dLHZvaWQgMCwhQik6KHY9bVtRWzBdXSgzKSxBLmFkZCh0aGlzLklUKCk/R1sxN10oNTgscFtRWzJdXSx0aGlzLHBbUVsxXV0pOmVbOV0oMzMscFtRWzFdXSxwW1FbMV1dLEosdGhpcyxDKSkpLEI/QS5hZGQoR1sxN10oNTkscFtRWzJdXSx0aGlzLHBbUVsyXV0sSykpOih2LnRoZW4oSyksQS5hZGQoZVs5XSgxOCxwW1FbMV1dLApwW1FbMl1dLEosdGhpcyx6KSkpLHYudGhlbihmdW5jdGlvbigpe0EucGxheSgpfSxmdW5jdGlvbigpe30pKX0sQ3EucHJvdG90eXBlLkI9ZnVuY3Rpb24oQil7aWYodGhpcy5EPT1CKXRocm93IEVycm9yKEoxKCkpO3RoaXMuRD1CfSxDcSkucHJvdG90eXBlLlFkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3RoaXMudj09KEE9WyJhZGQiLCh6PShLPXRoaXMsWyEwLCExLDJdKSwwKSwyXSx6W0FbMl1dKXx8dGhpcy5EfHwoYj10aGlzLnYsSj10aGlzLmw3KCksQj1lWzE0XSgxNSx6W0FbMV1dLHRoaXMseltBWzFdXSksdGhpcy52PT0zP0M9ZVs0Ml0oMjQsMyx0aGlzLHpbMV0sdm9pZCAwLHpbQVsxXV0pOihDPW1bQVsyXV0oQVsyXSksQltBWzBdXSh0aGlzLklUKCk/R1sxN10oNTcseltBWzFdXSx0aGlzLHpbMV0pOmVbOV0oQVsyXSx6WzFdLHpbMV0sSix0aGlzLGIpKSksQy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIEsuYkMoMil9KSxCW0FbMF1dKGVbOV0oMSx6WzFdLHpbQVsxXV0selsxXSwKdGhpcyx6W0FbMl1dKSksQy50aGVuKGZ1bmN0aW9uKCl7Qi5wbGF5KCl9LGZ1bmN0aW9uKCl7fSkpfSxDcS5wcm90b3R5cGUpLkNxPWZ1bmN0aW9uKEIpeygoQj1bInJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyIiwzMSwxNV0sWTApLnByb3RvdHlwZS5DcS5jYWxsKHRoaXMpLHRoaXMuQyl8fCh0aGlzLkM9ZVtCWzFdXSgxNCxCWzBdLHRoaXMpLHRoaXMuRmc9ZVtCWzFdXShCWzJdLCJyZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lci1vdmVybGF5Iix0aGlzKSl9LENxLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCKXt0aGlzLk09a1syMl0oKEI9WzE5LCJJVCIsInRhYkluZGV4Il0sNjkpLERbMzJdLmJpbmQobnVsbCwzMSkse2lkOk9bQlswXV0oMzIsMzYsdGhpcyksdUI6dGhpcy5XLGNoZWNrZWQ6dGhpc1tCWzFdXSgpLGRpc2FibGVkOiF0aGlzLmlzRW5hYmxlZCgpLEQzOnRoaXNbQlsyXV0sSU86ITB9LHZvaWQgMCx0aGlzLmwpfSxtWikobmV3IGJtKDI4LDI4KSwicmVjYXB0Y2hhLWNoZWNrYm94LWJvcmRlckFuaW1hdGlvbiIsCjIwLG5ldyB6MygyOCwwLDAsNTYwKSksZTA9bmV3IG1aKG5ldyBibSgyOCwyOCksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXJBbmltYXRpb24iLDEwLG5ldyB6MygyOCw1NjAsMCw4NDApKSxHVD1uZXcgbVoobmV3IGJtKDI4LDI4KSwicmVjYXB0Y2hhLWNoZWNrYm94LWJvcmRlckFuaW1hdGlvbiIsMjAsbmV3IHozKDU2LDAsMjgsNTYwKSksUG49bmV3IG1aKG5ldyBibSgyOCwyOCksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXJBbmltYXRpb24iLDEwLG5ldyB6Myg1Niw1NjAsMjgsODQwKSkscjk9bmV3IG1aKG5ldyBibSgyOCwyOCksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXJBbmltYXRpb24iLDIwLG5ldyB6Myg4NCwwLDU2LDU2MCkpLEhuPW5ldyBtWihuZXcgYm0oMjgsMjgpLCJyZWNhcHRjaGEtY2hlY2tib3gtYm9yZGVyQW5pbWF0aW9uIiwxMCxuZXcgejMoODQsNTYwLDU2LDg0MCkpLFhJPW5ldyBtWihuZXcgYm0oMzgsMzApLCJyZWNhcHRjaGEtY2hlY2tib3gtY2hlY2ttYXJrIiwKMjAsbmV3IHozKDMwLDAsMCw2MDApKSx1Wj1uZXcgbVoobmV3IGJtKDM4LDMwKSwicmVjYXB0Y2hhLWNoZWNrYm94LWNoZWNrbWFyayIsMjAsbmV3IHozKDMwLDYwMCwwLDEyMDApKSxPRD1bImJnZGF0YSIsKE9bMjFdKDYsU2QsVCksU2QuUlQ9bFUoKSxDWCksLTNdLHJkPShTZC5wcm90b3R5cGUuVD1SWzQ4XSgxLE9EKSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gUlsyMV0uY2FsbCh0aGlzLDIsQix6LEssSixDLGIsQSx2LHAsUSl9KTtmdW5jdGlvbiBOTihCLHosSyl7cmV0dXJuIGVbMl0uY2FsbCh0aGlzLDgsQix6LEspfQp2YXIgeHI9KChIW05OLnByb3RvdHlwZVthSF09KE5OLnByb3RvdHlwZS54QT0oTk4ucHJvdG90eXBlLlc9KE5OLnByb3RvdHlwZS5jYW5jZWw9KE5OLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKEo9bmV3IElwKGZ1bmN0aW9uKEEsdil7Qz0oYj12LEEpfSksWSlbMzddKDc0LDIsZnVuY3Rpb24oQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiB4cj9KLmNhbmNlbCgpOmIoQSksdTJ9LEMsdGhpcyx0aGlzKSxKKS50aGVuKEIseixLKX0sZnVuY3Rpb24oQix6LEssSil7dGhpc1soSj1bIk0iLDM4LCJYIl0sSilbMl1dP3RoaXNbSlswXV1pbnN0YW5jZW9mIE5OJiZ0aGlzW0pbMF1dLmNhbmNlbCgpOih0aGlzLnYmJih6PXRoaXMudixkZWxldGUgdGhpcy52LEI/ei5jYW5jZWwoQik6KHoubC0tLHoubDw9MCYmei5jYW5jZWwoKSkpLHRoaXMubT90aGlzLm0uY2FsbCh0aGlzLkMsdGhpcyk6dGhpcy5PPSEwLHRoaXNbSlsyXV18fChLPW5ldyB4cih0aGlzKSx5WzEzXSg3OCwKITEsdGhpcyksZ1s0NV0oSlsxXSwhMCx0aGlzLCExLEspKSl9KSxmdW5jdGlvbihCLHope2dbNDVdKDM3LCEwLCh0aGlzLkY9ITEsdGhpcyksQix6KX0pLE5OLnByb3RvdHlwZVsiZmluYWxseSJdPWZ1bmN0aW9uKEIseil7cmV0dXJuIE9bNV0oMTAsITAsITEsbmV3IFByb21pc2UoKHo9dGhpcyxmdW5jdGlvbihLLEope1lbMzddKDcyLDIsZnVuY3Rpb24oQyl7QigpLEooQyl9LGZ1bmN0aW9uKEMpeyhCKCksSykoQyl9LHopfSkpKX0sZnVuY3Rpb24oQix6KXsoKHo9WyExLCEwLDEzXSx5KVt6WzJdXSg3Mix6WzBdLHRoaXMpLGcpWzQ1XSg0Mix6WzFdLHRoaXMselsxXSxCKX0pLCEwKSwyNF0oMTksREksTlApLERJKS5wcm90b3R5cGUubWVzc2FnZT11bygpLERJLnByb3RvdHlwZS5uYW1lPXllKCksZnVuY3Rpb24oKXtyZXR1cm4gZ1szN10uY2FsbCh0aGlzLDU2KX0pLGhMPSgoKChIWzI0XSg1MSx4cixOUCkseHIpLnByb3RvdHlwZS5tZXNzYWdlPXFtcSgpLHhyKS5wcm90b3R5cGUubmFtZT0KUWsoKSxoeC5wcm90b3R5cGUpLlg9ZnVuY3Rpb24oKXtkZWxldGUgWE9bdGhpcy52XTt0aHJvdyB0aGlzLk07fSxMRSgpLGZ1bmN0aW9uKEIpe3JldHVybiBrWzE0XS5jYWxsKHRoaXMsMzYsQil9KSxKeU09KEhbMjRdKDU5LHhBLE5QKSxKeU0pfHx7aWQ6RFooKX0sRDk9WyhPWzIxXSgzLCgoKHlBLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKEIpe3JldHVybiB0aGlzLk0udGhlbihmdW5jdGlvbih6KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oSyl7KEImJkIoKSx6KS5pbnZva2UoSywhMSl9KX0pfSx5QSkucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oQix6LEssSixDKXtSWzI2XSgxNCwoKEM9WyhCPVsyLG51bGwsNV0sMCksNDYsInYiXSx3aW5kb3cuYm90Z3VhcmQpJiYod2luZG93LmJvdGd1YXJkPUJbMV0pLHRoaXNbQ1syXV0pLDMsbCkmJihSWzI2XSgxNSx0aGlzW0NbMl1dLDEsbCl8fFJbMjZdKDIzLHRoaXNbQ1syXV0sQltDWzBdXSxsKSk/KEo9Z1tDWzFdXShDWzFdLApCWzFdLGtbNDVdKDksUlsyNl0oMjIsdGhpc1tDWzJdXSwzLGwpKSksUlsyNl0oMTMsdGhpc1tDWzJdXSwxLGwpPyhLPWdbQ1sxXV0oNDQsQlsxXSxrWzQ1XSgxMSxSWzI2XSgxNCx0aGlzW0NbMl1dLDEsbCkpKSx0aGlzLk09SFszMl0oMSwzLEJbMl0sQ1swXSw3LGVbQ1sxXV0oMTcsSykpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHdpbmRvdy5ib3RndWFyZC5iZyhKLGZ1bmN0aW9uKCl7fSl9KSk6UlsyNl0oMTIsdGhpc1tDWzJdXSxCW0NbMF1dLGwpPyh6PWdbN10oNDgsQlsxXSxnW0NbMV1dKDYwLEJbMV0sa1s0NV0oMTQsUlsyNl0oMjEsdGhpc1tDWzJdXSxCW0NbMF1dLGwpKSkpLHRoaXMuTT1uZXcgUHJvbWlzZShmdW5jdGlvbihiKXtiKChEWzI0XSgxMCwiIix6KSxuZXcgd2luZG93LmJvdGd1YXJkLmJnKEosZnVuY3Rpb24oKXt9KSkpfSkpOnRoaXMuTT1Qcm9taXNlLnJlamVjdCgpKTp0aGlzLk09UHJvbWlzZS5yZXNvbHZlKCl9LHlBKS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKEIpeyh0aGlzLk09Cm51bGwsdGhpcykudj1CfSxFcyksVCksMCksSV8sLTFdLGF3PShPWzIxXSg2LChFcy5wcm90b3R5cGUuVD1SWzQ4XSgxLEQ5KSx1RyksVCksQ3I4KCksT1syMV0oNSxQTCxUKSxmdW5jdGlvbihCLHope3JldHVybiBEWzNdLmNhbGwodGhpcywyLHosQil9KSxHQz1mdW5jdGlvbigpe3JldHVybiBlWzldLmNhbGwodGhpcyw5KX0sbWs9KE9bOF0oNyw0NCx5WzM4XS5iaW5kKG51bGwsOCkpLGUpWzM1XSg1NixudWxsLFBMKSxmTT1bMCxJXywtMiwoUEwuUlQ9V2c4KCksQ1gpXSxvSz1bImNvbmYiLDEsQ1gsS1gsMixYTixLWCxOOSxEOSxLWCxbIm1jb25mIixnJCwxLENYLFFULHo0dywtMSxmTSxDWF0sS1gsLTEsMSxLWCwtMyxJXyxLWCwtMixRVCxLWCwodUcucHJvdG90eXBlLlQ9Uls0OF0oNSxmTSksLTIpLDEsS1gsSV8sS1gsLTUsQ1hdLFNlPShQTC5wcm90b3R5cGUuVD1SWzQ4XSg5LG9LKSxWXykoKSxCdD0oZVsyNF0oNTksKGRrLnByb3RvdHlwZS5nZXQ9KGRrLnByb3RvdHlwZS5pbml0PQpmdW5jdGlvbihCLHosSyl7cmV0dXJuIHRoaXMudj1CPShLPVtudWxsLCJNIiw0XSxCPT09dm9pZCAwP25ldyBQTDpCKSwoej1IW0tbMl1dKDkxLDIzLHRoaXMudixsLHZvaWQgMCxlWzM1XS5iaW5kKEtbMF0sMTIpKSkmJih0aGlzW0tbMV1dPW5ldyBtZih6KSksdGhpc30sZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52fSksZGspKSxtMU4oKSksbEQ9dmEoKSxzaz1qd3EoKSxkMz1EeSgpLGtwPUNMKCksdHk9RHAoKSxVdD1OSigpLEtzPXFkKCksQ3M9TGd3KCksQVU9JHcoKSxNTD0oamsoKSxoT0QpKCksdzM9U2woKSxJWT1UZygpLEZuPUxsOCgpLEJuPUtMKCksc3Y9WW0oKSx6VD1lbSgpLFRUPXZBKCksQ2NoPXNWKCksQ1M9S05EKCkseUQ9KHVZLnByb3RvdHlwZS5hZGQ9KHVZLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihCLHope2lmKHRoaXNbej1bImpvaW4iLCJ2IiwiTSJdLHpbMl1dKXJldHVybiB0aGlzW3pbMl1dO3JldHVybigoQj1bXSx0aGlzKVt6WzFdXS5mb3JFYWNoKGZ1bmN0aW9uKEssCkosQyl7KEM9R1swXSg0LEopLEspLmZvckVhY2goZnVuY3Rpb24oYixBKXsoQT1DLGIhPT0iIiYmKEErPSI9IitHWzBdKDcsYikpLEIpLnB1c2goQSl9KX0pLHRoaXMpW3pbMl1dPUJbelswXV0oekwoKSl9LHVZLnByb3RvdHlwZS5zZXQ9KHVZLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oQil7dGhpcy52WyJkZWxldGUiXShCKX0sZnVuY3Rpb24oQix6KXt0aGlzLnYuc2V0KEIsW3pdKX0pLGZ1bmN0aW9uKEIseixLKXsoKEs9dGhpcy52LmdldChCKSl8fHRoaXMudi5zZXQoQixLPVtdKSxLKS5wdXNoKHopfSksa3lOKSgpLGFFPW1UKCksYmtZPWRBKCksaHE9dEpsKCksQXk4PVlPKCksdnBxPXF1KCksVGg9aXooKSxCbD0ocWRaKCksV29oKCksQnUoKSksSzk9TEIoKSxkTz1kOCgpLGtNPW94KCksekU9QmkoKSxVcz1nRygpLFQzaD1nbCgpLGpZRz1OaigpLHU5PShJUCgpLGRHKCkpLGo0PXRBKCksSmE9d2IoKSxwUHE9KFBPKCksaHkoKSksUVl4PShCNWwoKSxrRCgpKSxDOT0oKHlYeCgpLAp6VWgpKCksSkkpKCksbnA4PWhWKCksWms4PW44OCgpLFdFTT0oUEooKSxwb00oKSksZ3B3PVFaKCksTjNaPUtFKCksRng9dXMoKSxPa049eGMoKSxjTj1ZSigpLHhMRD1HRSgpLGx1PW1HKCksYlY9KCRNOCgpLGxsMCkoKSxETDg9dHYoKSxmUWg9akcoKSxyQT1nTCgpLFJVPWloWigpLEFhPVRLKCksdmQ9eXQoKSxURT13TCgpLGpMPWJYKCksWWs9KChuZSgpLE8pWzhdKDgsMTQsWVs0Ml0uYmluZChudWxsLDQpKSxFVSkoKSxQRD12TzgoKSxvcE49QlEoKSxaTz10cSgpLGxjPWZFKCksREU9KE9bOF0oMTAsMjYsR1s0NF0uYmluZChudWxsLDQwKSksQlkoKSksc2g9a3ooKSxBMD1yWFooKSxsMj11NmwoKSxDZz1ZMmwoKSxHdD1LQSgpLEhzPUNJKCksY3Q9aV8oKSxoJD1JaCgpLGc2PVZOOCgpLExNLHJPPShMTT1HbC5yZXF1ZXN0SWRsZUNhbGxiYWNrKT09bnVsbD92b2lkIDA6TE0uYmluZChHbCksVko9c2V0VGltZW91dC5iaW5kKEdsKSxOYT1SZWdFeHAsVzE9T0coKSxsYj1USygpLEZ2Mz0KZ0FNKCksREg9e3N0cmluZ2lmeTpKU09OLnN0cmluZ2lmeSxwYXJzZTpKU09OLnBhcnNlfSxKcT1udWxsLEN5PW51bGwscUg9Y0soKSxpRD12XygpLFJDPTAsUks9cGVyZm9ybWFuY2UseW89UksudGltZU9yaWdpbix3NT1EYXRlLm5vdyxZaj1SSy5ub3cuYmluZChSSyksZTM9RGF0ZSxwSz0oWVszM10oMTcsIiIsZTMsR1syMV0oMTIsODcsIiIpKWluc3RhbmNlb2YgVmImJihlMz17fSxlM1tHWzIxXSgxMSw4NywiIildPWZ1bmN0aW9uKCl7cmV0dXJuIDB9KSxbXSksalk9bnVsbCxuSz0oKHQkLlNpPWZ1bmN0aW9uKEIseixLKXt2YXIgSj1bNTgsMzUsImFwcGx5Il0sQz1HMltKWzJdXSgzLGFyZ3VtZW50cyksYj1ZaigpLEE9bVtKWzFdXShKWzBdLDAseVs5XSgxMywxLHopLGIpO3JldHVybihDPUJbSlsyXV0obnVsbCxlWzMzXSgxMixDKSksUHJvbWlzZSkucmVzb2x2ZShDKS50aGVuKGZ1bmN0aW9uKHYpe0soQSwoZ1szMl0oOTYsMCxBLFlqKCktYiksdikpfSxmdW5jdGlvbih2LHAsClEpe0soQSwoKGdbcD1bIiIsNiwoUT1bMzIsMCwxXSwiOiAiKV0sUVswXV0oODQsUVsxXSxBLFlqKCktYiksZSlbNDNdKDc3LEEsITAsNCksdiBpbnN0YW5jZW9mIEVycm9yP21bMjNdKDI0LHYubmFtZStwWzJdK3YubWVzc2FnZSxBLHBbUVsyXV0pOm1bMjNdKDI1LHBbUVsxXV0rdixBLHBbUVsyXV0pLHYpKX0pLEN9LHQkLmxjPWZ1bmN0aW9uKEIpe3JldHVybiBHWzE5XS5jYWxsKHRoaXMsOCxCKX0sdCQpLmdYPWZ1bmN0aW9uKEIpe3JldHVybiBIWzMzXS5jYWxsKHRoaXMsMSxCKX0sbmV3IE1hcCkscjc9KHQkLkFzPSh0JC5iNT1mdW5jdGlvbihCLHope3JldHVybiBrWzZdLmNhbGwodGhpcywyMix6LEIpfSxmdW5jdGlvbihCKXtyZXR1cm4gR1swXS5jYWxsKHRoaXMsMjUsQil9KSx0JC5hNz0odCQua2Y9KGJkLnByb3RvdHlwZS5MWD1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LHQkLmJTPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIG1bMl0uY2FsbCh0aGlzLDgsQix6LEssSiwKQyl9LHQkLlJEPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gRFsxNV0uY2FsbCh0aGlzLDM3LEIseixLKX0sKGJkLnByb3RvdHlwZS5WZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk8wP3RoaXMuTzA6dGhpcy52LnRvU3RyaW5nKCl9LHQkKS52Rj1mdW5jdGlvbigpe3JldHVybiBSWzFdLmNhbGwodGhpcywyMSl9LGZ1bmN0aW9uKEIpe3JldHVybiBZWzExXS5jYWxsKHRoaXMsMSxCKX0pLHQkLnk1PWZ1bmN0aW9uKEIseil7dmFyIEs9WzMzLCJhcHBseSIsImNvbmNhdCJdO3JldHVybiB0JC5TaVtLWzFdXSh0JCxbQix6LHQkLkFzXVtLWzJdXShlW0tbMF1dKDMsRzJbS1sxXV0oMixhcmd1bWVudHMpKSkpfSxmdW5jdGlvbigpe3JldHVybiBIWzIyXS5jYWxsKHRoaXMsMjIpfSksdCQuWDg9ZnVuY3Rpb24oKXtyZXR1cm4gSFs1XS5jYWxsKHRoaXMsNCl9LG5BKCkpLFZmPW90KCksSGs9SnYoKSxYJD10aGlzO2Z1bmN0aW9uIEpUKCl7cmV0dXJuIGVbMjJdLmNhbGwodGhpcywxNSl9CigoT1s4XSg2LDQ5LHlbMF0uYmluZChudWxsLDUpKSxKVC5wcm90b3R5cGUpLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy52PVtdLHRoaXMuTT1bXX0sSlQucHJvdG90eXBlKS5yZW1vdmU9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKHo9Sk04KChDPVsicHJvdG90eXBlIiwoSz10aGlzLk0sITEpLCJ2Il0sSyksQiksej49MCk/KEFycmF5W0NbMF1dLnNwbGljZS5jYWxsKEsseiwxKSxKPSEwKTpKPUNbMV0sSil8fG1bMjZdKDU2LDAsdGhpc1tDWzJdXSxCKX0sSlQucHJvdG90eXBlLkZwPWZ1bmN0aW9uKEIseixLLEosQyl7Zm9yKEs9KEI9W10sQz1bInB1c2giLDEsMF0sdGhpcy5NLmxlbmd0aCktQ1sxXTtLPj1DWzJdOy0tSylCW0NbMF1dKHRoaXMuTVtLXSk7Zm9yKHo9KEo9Q1syXSx0aGlzLnYubGVuZ3RoKTtKPHo7KytKKUJbQ1swXV0odGhpcy52W0pdKTtyZXR1cm4gQn07ZnVuY3Rpb24gUzMoQix6KXtyZXR1cm4gR1s0NV0uY2FsbCh0aGlzLDc3LEIseil9CnZhciBLRz0oSFsyNF0oODksUzMscFEpLGZ0OCgpKSxMRTA9bjgoKTsKKFMzLnByb3RvdHlwZS5ZUz1mdW5jdGlvbihCLHosSyxKKXtpZighKHRoaXNbKHo9RGF0ZVtKPVsiUiIsIlgiLCJub3ciXSxKWzJdXSgpLEopWzBdXSE9bnVsbCYmei10aGlzW0pbMF1dPHRoaXMuZGVsYXkpKXtmb3IoO0RbMTFdKDM3LHRoaXMpPjAmJihLPWtbMF0oMzIsdGhpcy5NKSwhdGhpcy5GKEspKTspdGhpcy5WYSgpO2lmKCFLJiZEWzExXSgyMyx0aGlzKSt0aGlzLnYuc2l6ZTx0aGlzW0pbMV1dJiYoSz10aGlzLkEoKSksQj1LKXRoaXNbSlswXV09eix0aGlzLnYuYWRkKEIpO3JldHVybiBCfX0sKFMzLnByb3RvdHlwZS5BPWZ1bmN0aW9uKCl7cmV0dXJue319LFMzLnByb3RvdHlwZS5aPWZ1bmN0aW9uKEIseil7aWYoUzNbKHo9WyJZIiwidiIsIk0iXSx6KVswXV0uWi5jYWxsKHRoaXMpLHRoaXNbelsxXV0uc2l6ZT4wKXRocm93IEVycm9yKExFMCk7Zm9yKEI9dGhpc1tkZWxldGUgdGhpc1t6WzFdXSx6WzJdXTtCW3pbMl1dLmxlbmd0aCE9PTB8fEJbelsxXV0ubGVuZ3RoIT09CjA7KWcwWzNdKDE4LG51bGwsa1swXSgzMCxCKSk7ZGVsZXRlIHRoaXNbelsyXV19LFMzLnByb3RvdHlwZSkuRj1mdW5jdGlvbihCKXtyZXR1cm4gdHlwZW9mIEIuV0U9PSJmdW5jdGlvbiI/Qi5XRSgpOiEwfSxTMy5wcm90b3R5cGUpLlZhPWZ1bmN0aW9uKEIseixLLEope2Zvcih6PShKPVsxMSwiTSIsIk8iXSx0aGlzW0pbMV1dKTtEW0pbMF1dKDM2LHRoaXMpK3RoaXMudi5zaXplPHRoaXNbSlsyXV07KUI9eixLPXRoaXMuQSgpLEIudi5wdXNoKEspO2Zvcig7RFtKWzBdXSgyMix0aGlzKSt0aGlzLnYuc2l6ZT50aGlzLlgmJkRbSlswXV0oMjAsdGhpcyk+MDspZzBbM10oMTYsbnVsbCxrWzBdKDMxLHopKX0sUzMucHJvdG90eXBlLkFLPWZ1bmN0aW9uKEIseil7KHRoaXMudlt6PVsxMSwiZGVsZXRlIixudWxsXSx6WzFdXShCKSx0aGlzKS5GKEIpJiZEW3pbMF1dKDIxLHRoaXMpK3RoaXMudi5zaXplPHRoaXMuWD90aGlzLk0udi5wdXNoKEIpOmcwWzNdKDE3LHpbMl0sQil9OwpmdW5jdGlvbiBWUChCLHope3JldHVybiBrWzI5XS5jYWxsKHRoaXMsNDUsQix6KX0KT1syMV0oNSwoKFZQLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LChyZC5wcm90b3R5cGUuRFM9ZnVuY3Rpb24oQix6LEssSil7Zm9yKEs9KEI9KEo9KHo9W10sMCksdGhpcykudixCLmxlbmd0aCk7SjxLO0orKyl6LnB1c2goQltKXS52KTtyZXR1cm4gen0scmQpLnByb3RvdHlwZS5GcD1mdW5jdGlvbihCLHosSyxKKXtmb3IoSz0oej0wLEo9KEI9dGhpcy52LFtdKSxCLmxlbmd0aCk7ejxLO3orKylKLnB1c2goQlt6XS5nZXRWYWx1ZSgpKTtyZXR1cm4gSn0scmQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy52Lmxlbmd0aD0wfSxyZC5wcm90b3R5cGUpLnJlbW92ZT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoej0oQT0oQz0oWj1bInBvcCIsKGI9dGhpcy52LDEpLCJnZXRWYWx1ZSJdLFswLDEsMl0pLGIubGVuZ3RoKSxiW0NbMF1dKSwhKEE8PUNbMF0pKXtpZihBPT1DW1pbMV1dKWIubGVuZ3RoPUNbMF07ZWxzZXtmb3IocD0KKHY9KEI9KEs9KGJbQ1swXV09YltaWzBdXSgpLHRoaXMudiksSykubGVuZ3RoLEMpWzBdLEtbdl0pO3Y8Qj4+Q1taWzFdXTspe2lmKChuPShRPShKPXYqQ1syXStDW1pbMV1dLHYqQ1syXStDWzJdKSxRKTxCJiZLW1FdLnY8S1tKXS52P1E6SixLW25dLnYpPnAudilicmVhazt2PShLW3ZdPUtbbl0sbil9S1t2XT1wfXJldHVybiB6W1pbMl1dKCl9fSxjcykscmQpO2Z1bmN0aW9uIGZhKEIseil7cmV0dXJuIEdbMzRdLmNhbGwodGhpcyw5LEIseil9CigoKCgoRj0oSFsyNF0oMjUsZmEsUzMpLGZhLnByb3RvdHlwZSksRikubl89ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1s0OF0uY2FsbCh0aGlzLDcyLEIseil9LEYuWVM9ZnVuY3Rpb24oQix6LEssSil7aWYoSj1bIllTIiwwLCJpIl0sIUIpcmV0dXJuKEs9ZmEuWVtKWzBdXS5jYWxsKHRoaXMpKSYmdGhpcy5kZWxheSYmKHRoaXMubD1HbC5zZXRUaW1lb3V0KFJ4KHRoaXMubl8sdGhpcyksdGhpcy5kZWxheSkpLEs7KG1bMzhdKDMyLEpbMV0sMSx0aGlzW0pbMl1dLEIseiE9PXZvaWQgMD96OjEwMCksdGhpcykubl8oKX0sRi5BSz1mdW5jdGlvbihCKXtmYS5ZLkFLLmNhbGwodGhpcyxCKSx0aGlzLm5fKCl9LEYuWj1mdW5jdGlvbihCKXt0aGlzLmk9KChmYVtCPVsiWSIsImwiLCJjbGVhclRpbWVvdXQiXSxCWzBdXS5aLmNhbGwodGhpcyksR2xbQlsyXV0odGhpc1tCWzFdXSksdGhpcy5pKS5jbGVhcigpLG51bGwpfSxGKS5WYT1mdW5jdGlvbigpeyhmYS5ZLlZhLmNhbGwodGhpcyksdGhpcykubl8oKX0sCkhbMjRdKDUxLG1fLGZhKSxtXy5wcm90b3R5cGUpLkE9ZnVuY3Rpb24oQix6KXtyZXR1cm4oej1uZXcgcXEsKEI9dGhpcy5XKSYmQi5mb3JFYWNoKGZ1bmN0aW9uKEssSil7ei5oZWFkZXJzLnNldChKLEspfSksdGhpcy5DKSYmKHouQT0hMCksen0sbV8ucHJvdG90eXBlLkY9ZnVuY3Rpb24oQil7cmV0dXJuIUIubSYmIUIuaXNBY3RpdmUoKX0sS2YpLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEtmKS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihCKXtyZXR1cm57dmFsdWU6KEI9dGhpcy52Lm5leHQoKSxCKS5kb25lP3ZvaWQgMDp0aGlzLk0uY2FsbCh2b2lkIDAsQi52YWx1ZSksZG9uZTpCLmRvbmV9fTtmdW5jdGlvbiBHdygpe3JldHVybiBHWzQyXS5jYWxsKHRoaXMsNCl9CnZhciBtMz0oZXMucHJvdG90eXBlLnFqPShHdy5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiBDbH0sZXMucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG1iKHRoaXMudigpKX0sR3cucHJvdG90eXBlLnFqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGVzLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtYih0aGlzLnYoKSl9LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTeCh0aGlzLnYoKSl9KSxmdW5jdGlvbihCKXtyZXR1cm4gZ1syOF0uY2FsbCh0aGlzLDQsQil9KSxtYj0oKChPWzIxXSgyLFN4LEd3KSxTeC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYubmV4dCgpfSxTeC5wcm90b3R5cGUpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG1iKHRoaXMudil9LFN4KS5wcm90b3R5cGUuTT1mdW5jdGlvbigpe3JldHVybiBuZXcgbWIodGhpcy52KX0sZnVuY3Rpb24oQil7cmV0dXJuIGVbMjNdLmNhbGwodGhpcywKMSxCKX0pO09bMjFdKDIsbWIsZXMpLG1iLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWC5uZXh0KCl9O2Z1bmN0aW9uIGx3KEIseil7dmFyIEs9KHRoaXMuTT17fSxbMCwxLCh0aGlzLnY9W10sMildKSxKPVswLDIsIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIl0sQz0odGhpcy5YPUpbS1swXV0sdGhpcy5zaXplPUpbS1swXV0sYXJndW1lbnRzKS5sZW5ndGg7aWYoQz5LWzFdKXtpZihDJUpbS1sxXV0pdGhyb3cgRXJyb3IoSltLWzJdXSk7Zm9yKHZhciBiPUpbS1swXV07YjxDO2IrPUpbS1sxXV0pdGhpcy5zZXQoYXJndW1lbnRzW2JdLGFyZ3VtZW50c1tiK0tbMV1dKX1lbHNlIGlmKEIpaWYoQiBpbnN0YW5jZW9mIGx3KWZvcihDPUIuRFMoKSxiPUpbS1swXV07YjxDLmxlbmd0aDtiKyspdGhpcy5zZXQoQ1tiXSxCLmdldChDW2JdKSk7ZWxzZSBmb3IoYiBpbiBCKXRoaXMuc2V0KGIsQltiXSl9CnZhciBSaU49KEhbKCgoKEY9KCgoKChGPWx3LnByb3RvdHlwZSxGKS5GcD1mdW5jdGlvbihCLHosSyl7Zm9yKEI9KEs9WyJ2Iiw3LCJNIl0seVtLWzFdXSgyNCwwLHRoaXMpLFtdKSx6PTA7ejx0aGlzW0tbMF1dLmxlbmd0aDt6KyspQi5wdXNoKHRoaXNbS1syXV1bdGhpc1tLWzBdXVt6XV0pO3JldHVybiBCfSxGLkRTPWZ1bmN0aW9uKCl7cmV0dXJuIHlbN10oMjMsMCx0aGlzKSx0aGlzLnYuY29uY2F0KCl9LEYpLmhhcz1mdW5jdGlvbihCKXtyZXR1cm4gRFszNl0oNDksQix0aGlzLk0pfSxGLmVxdWFscz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoQz1bKEE9WzAsInYiLDddLDApLCEwLCExXSx0aGlzKT09PUIpcmV0dXJuIENbMV07aWYodGhpcy5zaXplIT1CLnNpemUpcmV0dXJuIENbMl07Zm9yKEs9enx8RFszM10uYmluZChudWxsLDQpLHlbQVsyXV0oMjEsQ1tBWzBdXSx0aGlzKSxKPUNbQVswXV07Yj10aGlzW0FbMV1dW0pdO0orKylpZighSyh0aGlzLmdldChiKSxCLmdldChiKSkpcmV0dXJuIENbMl07CnJldHVybiBDWzFdfSxGLmNsZWFyPWZ1bmN0aW9uKEIpeyh0aGlzWyhCPVsiWCIsIk0iLDBdLEIpWzFdXT17fSx0aGlzLnYubGVuZ3RoPUJbMl0sdGhpcy5zaXplPUJbMl0sdGhpcylbQlswXV09QlsyXX0sRikucmVtb3ZlPWZ1bmN0aW9uKEIpe3JldHVybiB0aGlzWyJkZWxldGUiXShCKX0sRilbImRlbGV0ZSJdPWZ1bmN0aW9uKEIseil7cmV0dXJuIERbMzZdKCh6PVszNywyMiwidiJdLHpbMF0pLEIsdGhpcy5NKT8oZGVsZXRlIHRoaXMuTVtCXSwtLXRoaXMuc2l6ZSx0aGlzLlgrKyx0aGlzW3pbMl1dLmxlbmd0aD4yKnRoaXMuc2l6ZSYmeVs3XSh6WzFdLDAsdGhpcyksITApOiExfSxsdykucHJvdG90eXBlLEYuZ2V0PWZ1bmN0aW9uKEIseil7cmV0dXJuIERbMzZdKDYsQix0aGlzLk0pP3RoaXMuTVtCXTp6fSxGKS5zZXQ9ZnVuY3Rpb24oQix6LEspeyhEWzM2XSg1LEIsdGhpc1tLPVsiWCIsMSwiTSJdLEtbMl1dKXx8KHRoaXMuc2l6ZSs9S1sxXSx0aGlzLnYucHVzaChCKSx0aGlzW0tbMF1dKyspLAp0aGlzKVtLWzJdXVtCXT16fSxGLmZvckVhY2g9ZnVuY3Rpb24oQix6LEssSixDLGIpe2ZvcihiPShDPXRoaXMuRFMoKSwwKTtiPEMubGVuZ3RoO2IrKylKPUNbYl0sSz10aGlzLmdldChKKSxCLmNhbGwoeixLLEosdGhpcyl9LEYpLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gbVs2XSg1Nyx0aGlzLnFqKCEwKSkuTSgpfSxGLnZhbHVlcz1mdW5jdGlvbigpe3JldHVybiBtWzZdKDU4LHRoaXMucWooITEpKS5NKCl9LEYpLmVudHJpZXM9ZnVuY3Rpb24oQil7cmV0dXJuIHlbQj10aGlzLDM5XSgyNyx0aGlzLmtleXMoKSxmdW5jdGlvbih6KXtyZXR1cm5beixCLmdldCh6KV19KX0sRikucWo9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gSj0oeVs3XSgyMCwwLHRoaXMpLHRoaXMpLlgsej0wLEs9dGhpcyxDPW5ldyBHdyxDLm5leHQ9ZnVuY3Rpb24oYil7aWYoSiE9Sy5YKXRocm93IEVycm9yKCJUaGUgbWFwIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBpdGVyYXRvciB3YXMgY3JlYXRlZCIpO2lmKHo+PQpLLnYubGVuZ3RoKXJldHVybiBDbDtyZXR1cm57dmFsdWU6KGI9Sy52W3orK10sQik/YjpLLk1bYl0sZG9uZTohMX19LEN9LDI0XSg1MSxXTCxvZyksb2spKCksbm09W2paLE1xLHdtLGlaLGpJLFFOXSxIZz0oSFsyNF0oKFdMLnByb3RvdHlwZS5GPShXTC5wcm90b3R5cGUuWj1mdW5jdGlvbihCKXt0aGlzW3RoaXNbKChXTC5ZW0I9WyJaIiwiY2FsbCIsInYiXSxCWzBdXVtCWzFdXSh0aGlzKSx0aGlzKS5NLmRpc3Bvc2UoKSx0aGlzLk09bnVsbCx0aGlzLlguZGlzcG9zZSgpLHRoaXMuWD1udWxsLEIpWzJdXS5jbGVhcigpLEJbMl1dPW51bGx9LChXTC5wcm90b3R5cGUubD1mdW5jdGlvbihCLHosSyxKLEMpeyhLPShDPVsiWCIsImFib3J0IiwiQnYiXSx0aGlzLnYuZ2V0KEIpKSkmJiFLW0NbMl1dPyhIWzQxXSgxOCx2b2lkIDAsdGhpc1tDWzBdXSx6LEsuR3Esbm0pLHouVz1oWSgwLHRoaXMuQSksei5sPUsudlkoKSx6LkE9Sy55dygpLEtbQ1syXV09eixnWzNdKDU4LHRoaXMsbmV3IFBaKGpaLAp0aGlzLEIseikpLEdbMl0oNDAsQix0aGlzLHopLEsucGkmJnpbQ1sxXV0oKSk6KEo9dGhpcy5NLEoudlsiZGVsZXRlIl0oeikmJkouQUsoeikpfSxXTC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZih0aGlzLnYuZ2V0KChXPVsiWVMiLCJSIiwiaSJdLEIpKSl0aHJvdyBFcnJvcihSaU4pO3JldHVybihaPShuPW5ldyBIZyhLLEMsSixBLHosUngodGhpcy5GLHRoaXMsQiksdiE9PXZvaWQgMD92OnRoaXNbV1syXV0scCxRIT09dm9pZCAwP1E6dGhpc1tXWzFdXSksdGhpcy52LnNldChCLG4pLFJ4KHRoaXMubCx0aGlzLEIpKSx0aGlzLk0pW1dbMF1dKFosYiksbn0sV0wpLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbihCLHosSyxKLEMpe2lmKEM9WyExLCJYIiwiYWJvcnQiXSxLPXRoaXMudi5nZXQoQikpSj1LLkJ2LEsucGk9ITAseiYmKEomJihZWzBdKDIzLHRoaXNbQ1sxXV0sSixubSxLLkdxKSxPWzIyXSgyNiwhMCxKLGpaLGZ1bmN0aW9uKGIpeyhiPQp0aGlzLk0sYi52KVsiZGVsZXRlIl0oSikmJmIuQUsoSil9LENbMF0sdGhpcykpLHRoaXMudi5yZW1vdmUoQikpLEomJkpbQ1syXV0oKX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7Qz0oQT1bImNhbGwiLCJEWiIsIlB6Il0sei50YXJnZXQpO3N3aXRjaCh6LnR5cGUpe2Nhc2Ugalo6R1syXSg0MSxCLHRoaXMsQyk7YnJlYWs7Y2FzZSBNcTphOntpZihiPXRoaXMudi5nZXQoQiksQy5NPT03fHxZWzQwXSg4MiwwLEMpfHxiLlptPmIuS18paWYoZ1szXSg1Myx0aGlzLG5ldyBQWihNcSx0aGlzLEIsQykpLGImJihiW0FbMl1dPSEwLGJbQVsxXV0pKXtLPWJbQVsxXV1bQVswXV0oQyx6KTticmVhayBhfUs9bnVsbH1yZXR1cm4gSztjYXNlIHdtOmdbM10oNTIsdGhpcyxuZXcgUFood20sdGhpcyxCLEMpKTticmVhaztjYXNlIFFOOmNhc2UgaVo6KEo9dGhpcy52LmdldChCKSxKLlptKT5KLktfJiZnWzNdKDYyLHRoaXMsbmV3IFBaKGlaLHRoaXMsQixDKSk7YnJlYWs7Y2FzZSBqSTpnWzNdKDU4LAp0aGlzLG5ldyBQWihqSSx0aGlzLEIsQykpfXJldHVybiBudWxsfSksMjYpLFBaLCRNKSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4ga1s0OV0uY2FsbCh0aGlzLDI4LEssQyxCLGIseixKLEEsdixwLFEpfSksemw9ZnVuY3Rpb24oQil7cmV0dXJuIGdbNDFdLmNhbGwodGhpcywxNixCKX0sZzU9KCgoT1syMV0oNCxxNSwoKCgoKEY9SGcucHJvdG90eXBlLEYpLnl3PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn0sRi5SMD1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LEYpLkxYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWH0sRikuQ3U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSxGLlZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudn0sRikudlk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfSxwUSkpLHE1KS5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihCLHope3JldHVybih6PUIuWCk/QVAodGhpcy52LmJpbmQodGhpcykseixCKTp0aGlzLnYoQil9LHE1KS5wcm90b3R5cGUudj0KZnVuY3Rpb24oQil7cmV0dXJuIG5ldyBJcChmdW5jdGlvbih6LEssSixDLGIsQSl7KChiPUJbSj1IWzExXSgoQz10aGlzLEE9WyJ0cyIsMiwiTzAiXSw1NikpLEFbMF1dP0JbQVswXV06QltBWzJdXT9WZjoiIikmJkouc2V0KFZnKCksYiksZVsyMV0oQVsxXSx0aGlzKSkudGhlbihmdW5jdGlvbih2KXtDLk0uc2VuZCh2LEIuSTcudG9TdHJpbmcoKSxCLkxYKCksQi5WZSgpLEosdm9pZCAwLGZ1bmN0aW9uKHAsUSxuLFosVyxOLHgpe2lmKFlbNDBdKChOPVsiKSIsMCwoeD1bMiw0NCwiaW5kZXhPZiJdLG49cC50YXJnZXQsIiIpXSw4MyksTlsxXSxuKXx8Qi5oTSYmSFszNV0oeFswXSx4WzBdLG4pPT00MDApe3RyeXtpZihuLnYpYjp7aWYoKFo9bi52LnJlc3BvbnNlVGV4dCxyNyYmWlt4WzJdXShyNyk9PU5bMV0mJihaPVouc3Vic3RyaW5nKHI3Lmxlbmd0aCkpLFc9WixHbCkuSlNPTil0cnl7UT1HbC5KU09OLnBhcnNlKFcpO2JyZWFrIGJ9Y2F0Y2goZil7fVE9bVt4WzFdXSg3LE5beFswXV0sCiIoIixOWzBdLFcpfWVsc2UgUT12b2lkIDB9Y2F0Y2goZil7UT1bXX16KCgwLEIueWYpKFEpKX1lbHNlIEsobmV3IFVYKEIsbikpfSl9KX0sdGhpcyl9LG5ldyBsdyksVVg9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIERbMTddLmNhbGwodGhpcyw0LEIseixLLEopfSxlRD0oKCgoT1syMV0oNixVWCxOUCksVVgucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3JDb2RlfSxVWC5wcm90b3R5cGUpLkF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWH0sVVgucHJvdG90eXBlKS5uYW1lPWJSKCksTylbMjFdKDEsV2gscFEpLE9bMjFdKDIsWmQsVCksWzAsZyQsLTJdKSxyeVo9KFpkLnByb3RvdHlwZS5UPVJbNDhdKDUsZUQpLFswLENYLC0xXSksUGc9WzAsQ1gsLTIsKE9bMjFdKDUsT3YsVCksT1s4XSg3LDU2LG1bMzddLmJpbmQobnVsbCw3MikpLElfKV0seVE9WzEsKE9bMjFdKDQsKE92LnByb3RvdHlwZS5UPVJbNDhdKDUsUGcpLHZOKSxUKSxPWzhdKDksNDAsZVsyOF0uYmluZChudWxsLAozKSksMyldLGM2PSgodk4uUlQ9KHZOLnByb3RvdHlwZS5zMz1mdW5jdGlvbigpe3JldHVybiBnWzE2XSgyNSxsLHRoaXMsOCxRQil9LE1JKSgpLHZOLnByb3RvdHlwZSkuVD1SWzQ4XSg0LFsiYWlucHV0IixPRCxDWCxvSyxDWCwxLGVELENYLGckLDEsS1gsa3gscnlaLENYLEtYLC0xLDEsS1gsa3gsS1gsLTEsQlosQ1gsQlosQ1gsMixJXywtMSxUYSxQZyxDWCxreCxRVF0pLE9bOF0oMTEsMjgsZnVuY3Rpb24oQix6LEspe3JldHVybihCPUJbSz1bInJlcGxhY2UiLCIsIiw2MF0sS1swXV0oLyhbIidgXSkoPzpcXFwxfC4pKj9cMS9nLCIiKVtLWzBdXSgvW15hLXpBLVpdL2csIiIpLEgpWzBdKEtbMl0sMCx6LDE2KT9rWzM1XSg1MixCKStLWzFdK0I6a1szNV0oNDQsQil9KSxPWzIxXSgxLG1FLFdoKSxmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZVs0XS5jYWxsKHRoaXMsNixCLHosSyxKKX0pOwpmdW5jdGlvbiBqYyhCLHosSyxKLEMpe3JldHVybiBrWzM3XS5jYWxsKHRoaXMsMixCLHosSyxKLEMpfQp2YXIgbDQ9KEhbMjRdKDg5LGpjLG5RKSxxZSkoKSxwMD0oKCgoKEY9KChqYy5wcm90b3R5cGUuRVk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vfSxqYy5wcm90b3R5cGUpLkx1PWZ1bmN0aW9uKCl7fSxqYy5wcm90b3R5cGUuYUQ9ZnVuY3Rpb24oKXt9LGpjLnByb3RvdHlwZSksRikuY0Y9ZnVuY3Rpb24oKXt9LEYuS0Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5DfSxGKS5NdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9LEYpLnpxPWZ1bmN0aW9uKCl7fSxGKS5EMj0oamMucHJvdG90eXBlLlMwPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMl0oMil9LGZ1bmN0aW9uKCl7fSksRi5kNz1mdW5jdGlvbigpe30sRi5DcT1mdW5jdGlvbihCKXt0aGlzLlI9KGpjLllbKEI9WyJDcSIsMjksMl0sQilbMF1dLmNhbGwodGhpcyksTylbQlsyXV0oQlsxXSwicmVjYXB0Y2hhLWFjY2Vzc2libGUtc3RhdHVzIixkb2N1bWVudCl9LEYuWm49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfSxGLlZsPWZ1bmN0aW9uKCl7Z1swXSg2NywKIllvdSBhcmUgdmVyaWZpZWQiLHRoaXMpfSxGLlRxPWZ1bmN0aW9uKEIpe3RoaXNbQj1bITAsIlZlcmlmaWNhdGlvbiBleHBpcmVkLiBDaGVjayB0aGUgY2hlY2tib3ggYWdhaW4uIiwiTHUiXSxCWzJdXShCWzBdLEJbMV0pLGdbMF0oODMsIlZlcmlmaWNhdGlvbiBleHBpcmVkLCBjaGVjayB0aGUgY2hlY2tib3ggYWdhaW4gZm9yIGEgbmV3IGNoYWxsZW5nZSIsdGhpcyl9LHsyOiJyYy1hbmNob3ItZGFyayIsMToicmMtYW5jaG9yLWxpZ2h0In0pLG00PSgoT1s4XSg2LDMsSFs0Ml0uYmluZChudWxsLDI1KSksamMucHJvdG90eXBlKS5DNT1mdW5jdGlvbihCKXsoKEI9WyEwLCJMdSIsIkQyIl0sdGhpcylbQlsxXV0oQlswXSwiVmVyaWZpY2F0aW9uIGNoYWxsZW5nZSBleHBpcmVkLiBDaGVjayB0aGUgY2hlY2tib3ggYWdhaW4uIiksZ1swXSgzNSwiVmVyaWZpY2F0aW9uIGNoYWxsZW5nZSBleHBpcmVkLCBjaGVjayB0aGUgY2hlY2tib3ggYWdhaW4gZm9yIGEgbmV3IGNoYWxsZW5nZSIsCnRoaXMpLHRoaXMpW0JbMl1dKCl9LGJ2KCkpLCRyPXRxKCksSmY9dXQ4KCksQVM9UTIoKSxONT1qQygpLElnPXtub3JtYWw6bmV3IGJtKDMwNCw3OCksY29tcGFjdDpuZXcgYm0oMTY0LDE0NCksaW52aXNpYmxlOm5ldyBibSgyNTYsNjApfSxWZEQ9eyJiYWNrZ3JvdW5kLWNvbG9yIjpFZygpLGJvcmRlcjpWaygpLCJib3gtc2hhZG93IjpybigpLHBvc2l0aW9uOlR5KCksdHJhbnNpdGlvbjpBXygpLG9wYWNpdHk6bWcoKSx2aXNpYmlsaXR5OnZEKCksInotaW5kZXgiOnFDKCksbGVmdDpWSSgpLHRvcDp6WSgpfSxHTUQ9e3dpZHRoOmR0KCksaGVpZ2h0OmR0KCkscG9zaXRpb246YlUoKSx0b3A6VkkoKSxsZWZ0OlZJKCksInotaW5kZXgiOnFDKCksImJhY2tncm91bmQtY29sb3IiOkVnKCksb3BhY2l0eTpydSgpLGZpbHRlcjpRSSgpfSxIa1o9e2JvcmRlcjpVVTgoKSx3aWR0aDptZygpLGhlaWdodDptZygpLHBvc2l0aW9uOlR5KCksInBvaW50ZXItZXZlbnRzIjp0QigpLCJtYXJnaW4tdG9wIjpaRHgoKSwKInotaW5kZXgiOnFDKCl9LGVpRD17Ym9yZGVyOmNCKCksd2lkdGg6bWcoKSxoZWlnaHQ6bWcoKSxwb3NpdGlvbjpUeSgpLCJwb2ludGVyLWV2ZW50cyI6dEIoKSwibWFyZ2luLXRvcCI6YnkoKSwiei1pbmRleCI6cUMoKX0sUGMwPXsiei1pbmRleCI6cUMoKSxwb3NpdGlvbjpNaigpfSwkTFo9e3Zpc2liaWxpdHk6dkQoKSxwb3NpdGlvbjpUeSgpLHdpZHRoOmR0KCksdG9wOnpZKCksbGVmdDpWSSgpLHJpZ2h0OlZJKCksdHJhbnNpdGlvbjpBXygpLG9wYWNpdHk6bWcoKX0scXQ4PXt3aWR0aDpkdCgpLGhlaWdodDpkdCgpLHBvc2l0aW9uOmJVKCksdG9wOlZJKCksbGVmdDpWSSgpLCJ6LWluZGV4IjpxQygpLCJiYWNrZ3JvdW5kLWNvbG9yIjpFZygpLG9wYWNpdHk6TTgoKSxmaWx0ZXI6Y3h4KCl9LGlrOD17bWFyZ2luOmt2KCksdG9wOlZJKCksbGVmdDpWSSgpLHJpZ2h0OlZJKCkscG9zaXRpb246YlUoKSxib3JkZXI6VmsoKSwiei1pbmRleCI6cUMoKSwiYmFja2dyb3VuZC1jb2xvciI6RWcoKX0sCnEzPXt3aWR0aDpONCgpLGhlaWdodDpEeigpLGJvcmRlcjpKVygpLG1hcmdpbjpicCgpLHBhZGRpbmc6VkkoKSxyZXNpemU6dEIoKSxkaXNwbGF5OnRCKCl9LHl5Mz17bWFyZ2luOlZJKCksIm1hcmdpbi10b3AiOkk2OCgpLHBhZGRpbmc6VkkoKSxiYWNrZ3JvdW5kOlVfKCksYm9yZGVyOkpXKCksImJvcmRlci1yYWRpdXMiOkZVKCksaGVpZ2h0Omp2KCksd2lkdGg6Z2IoKX0sTHc9KCgoT1syMV0oNSxKMyx3RSksSjMpLnByb3RvdHlwZS5HPWZ1bmN0aW9uKEIpe0I9WzE2LDQ0LDM5XSxEYXRlLm5vdygpLXRoaXMuVT4xMD8oZVtCWzFdXSg5LC45LG51bGwsdGhpcyksdGhpcy5VPURhdGUubm93KCkpOihrW0JbMF1dKDYwLHRoaXMuQyksdGhpcy5DPU9bMl0oQlsyXSx0aGlzLkcsMTAsdGhpcykpfSxKMykucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7KFlbMzJdKChCPVsiY2FsbCIsbnVsbCwxXSw1KSxCWzFdLHRoaXMpLERbN10oQlsyXSxCWzFdLHRoaXMpLHdFLnByb3RvdHlwZSkuWltCWzBdXSh0aGlzKX0sCkozLnByb3RvdHlwZS5PPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpeygodGhpcy5YPSgoKEM9Z1s0M10oMjcsKHo9ej09PShRPVszNSwiYXBwZW5kQ2hpbGQiLChCPUI9PT12b2lkIDA/QVM6Qiw0MCldLHZvaWQgMCk/ITE6eiwwKSxudWxsLCEwLHRoaXMuaSkpJiZ6JiYodGhpcy5sPUMpLHRoaXMpLmwmJihCPU41KSxCKSx0aGlzKS52PVJCKHNpKSxCPT1BUz8oWVtRWzBdXSgxNix0aGlzLnYsJExaKSxBPVJCKHNpKSxZW1FbMF1dKFFbMl0sQSxxdDgpLHRoaXMudltRWzFdXShBKSxwPVJCKHNpKSxZW1FbMF1dKDQ4LHAsaWs4KSx0aGlzLnZbUVsxXV0ocCkpOkI9PUpmJiYoWVtRWzBdXSg0OCx0aGlzLnYsVmREKSxKPVJCKHNpKSxZW1FbMF1dKDE2LEosR01EKSx0aGlzLnZbUVsxXV0oSiksYj1SQihzaSksWVtRWzBdXSgxNixiLEhrWiksUls4XSg1MSxtNCxiKSx0aGlzLnZbUVsxXV0oYiksSz1SQihzaSksWVtRWzBdXShRWzJdLEssZWlEKSxSWzhdKFFbMF0sbTQsSyksdGhpcy52W1FbMV1dKEspLAp2PVJCKHNpKSxZW1FbMF1dKFFbMl0sdixQYzApLHRoaXMudltRWzFdXSh2KSksdGhpcy5sfHxHWzE1XSg0MikpW1FbMV1dKHRoaXMudil9LFhMbCgpKSxTQj1uZXcgYmIoInNpdGVrZXkiLChiYi5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LG51bGwpLGFFLCEwKSx5ZjtpZihHbC53aW5kb3cpe3ZhciBZcj1uZXcgeTYod2luZG93LmxvY2F0aW9uLmhyZWYpLGNnPShZci5pIT0oWXIuUj0iIixudWxsKXx8KFlyLk09PSJodHRwcyI/eVsyOV0oMzYsNDQzLFlyKTpZci5NPT0iaHR0cCImJnlbMjldKDI3LDgwLFlyKSksUlsyOF0oMiwxLFlyLnRvU3RyaW5nKCkpKSxTRD1jZ1s0XSxtTT1jZ1szXSxsbj1jZ1sxXSxFRD1jZ1syXSxYWD0iIjt5Zj0oKGxuJiYoWFgrPWxuKyI6IiksbU0pJiYoWFgrPSIvLyIsRUQmJihYWCs9RUQrIkAiKSxYWCs9bU0sU0QmJihYWCs9IjoiK1NEKSksT1syM10oMjYsWFgsMykpfWVsc2UgeWY9bnVsbDsKdmFyIElOPW5ldyBiYigib3JpZ2luIix5ZixUM2gpLHdyPW5ldyBiYigic2l6ZSIsZnVuY3Rpb24oQil7cmV0dXJuIEIuaGFzKGNIKT9MdzpYTSgpfSx2cHEpLHJGPW5ldyBiYigiYmFkZ2UiLG51bGwscFBxKSxKWD1uZXcgYmIoInMiLG51bGwsUVl4KSxCNz1uZXcgYmIoImFjdGlvbiIsbnVsbCxXRU0pLHMyPW5ldyBiYigidXNlcm5hbWUiLG51bGwsZ3B3KSxtQz1uZXcgYmIoImFjY291bnQtdG9rZW4iLG51bGwsRngpLHY3PW5ldyBiYigidmVyaWZpY2F0aW9uLWhpc3RvcnktdG9rZW4iLG51bGwsT2tOKSxscT1uZXcgYmIoIndhZiIsbnVsbCx4TEQpLEVsPW5ldyBiYigiYW5jaG9yLW1zIixudWxsLERMOCksWDg9bmV3IGJiKCJleGVjdXRlLW1zIixudWxsLGZRaCksRUs9bmV3IGJiKCJjYWxsYmFjayIpLGpQPW5ldyBiYigicHJvbWlzZS1jYWxsYmFjayIpLHVuPW5ldyBiYigiZXhwaXJlZC1jYWxsYmFjayIpLGFLPW5ldyBiYigiZXJyb3ItY2FsbGJhY2siKSxFaz1uZXcgYmIoInRhYmluZGV4IiwKIjAiKSxjSD1uZXcgYmIoImJpbmQiKSx5Sj1uZXcgYmIoImlzb2xhdGVkIixudWxsKSxLNT1uZXcgYmIoImNvbnRhaW5lciIpLEM1PW5ldyBiYigiZmFzdCIsITEpLHpkPW5ldyBiYigidHdvZmFjdG9yIiwhMSksZkM9e01COlNCLGwkOklOLG05Om5ldyBiYigiaGwiLCJlbiIsaHEpLFRZUEU6bmV3IGJiKCJ0eXBlIixudWxsLGJrWSksVkVSU0lPTjpuZXcgYmIoInZlcnNpb24iLCJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiLGRPKSxzMDpuZXcgYmIoInRoZW1lIixudWxsLEF5OCksWjY6d3Isc246ckYsbjk6SlgsTCQ6bmV3IGJiKCJwb29sIixudWxsLG5wOCkscVA6bmV3IGJiKCJjb250ZW50LWJpbmRpbmciLG51bGwsWms4KSx2TDpCNyxIMzpzMixrZDptQyx5Rjp2NyxZSTpscSxZTjpuZXcgYmIoImhwbSIsbnVsbCxsdSksdGs6RWwsVyQ6WDgscjA6RUssems6alAsSzM6dW4sayQ6YUssQmI6RWssZFU6Y0gsVzY6bmV3IGJiKCJwcmVsb2FkIixmdW5jdGlvbihCKXtyZXR1cm4gWVszMF0oOSwKQil9KSxPSjp5SixjMzpLNSxHSTpDNSxBUTp6ZH0sWXQwPSgoaVkucHJvdG90eXBlLmdldD1mdW5jdGlvbihCLHosSyl7cmV0dXJuKHo9dGhpc1soSz1bImdldE5hbWUiLCJ2Il0sSylbMV1dW0JbS1swXV0oKV0pfHwoej1CW0tbMV1dP3R5cGVvZiBCW0tbMV1dPT09ImZ1bmN0aW9uIj9CW0tbMV1dKHRoaXMpOkJbS1sxXV06bnVsbCksen0saVkucHJvdG90eXBlLmhhcz1mdW5jdGlvbihCKXtyZXR1cm4hIXRoaXMuZ2V0KEIpfSxpWS5wcm90b3R5cGUpLnNldD1mdW5jdGlvbihCLHope3RoaXMudltCLmdldE5hbWUoKV09en0sa3EpKCk7CigoKChPWyhYeC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKHRoaXMuWDw9KEE9WzU2LChiPVsiIiw2LCExXSwwKSwxXSxBKVsxXSlyZXR1cm4gYlsyXTtmb3IoSz1BW0o9YlsyXSwxXTtLPHRoaXMuQTtLKyspej1ZWzRdKEFbMF0sQiksQz0oeiV0aGlzLnYrdGhpcy52KSV0aGlzLnYsdGhpcy5NW2JOKEMvYltBWzJdXSldW0MlYltBWzJdXV09PUFbMV0mJih0aGlzLk1bYk4oQy9iW0FbMl1dKV1bQyViW0FbMl1dXT1BWzJdLEo9ITApLEI9YltBWzFdXSt6O3JldHVybiBKJiZ0aGlzLlgtLSwhMH0sWHgucHJvdG90eXBlKS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKKXtmb3IoSj1bMjksImkiLDBdLEI9SlsyXSxLPVtdO0I8dGhpc1tKWzFdXTtCKyspej1tW0pbMF1dKDcsdGhpcy5NW0JdKS5yZXZlcnNlKCksSy5wdXNoKFl0MC5jaGFyQXQocGFyc2VJbnQoei5qb2luKCIiKSwyKSkpO3JldHVybiBLLmpvaW4oIiIpfSwyMV0oMyxZVixUKSxZVi5wcm90b3R5cGUpLkN1PQpmdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMix0aGlzLDMsbCl9LE8pWzhdKDYsMTUsSFsxOV0uYmluZChudWxsLDE2KSksWVYpLlJUPXBOKCksWVYucHJvdG90eXBlKS5UPVJbNDhdKDEsWyJmZXRva2VuIixreCxDWCwtMixnJCxDWCxreCwtMSxRVCxDWCwtMl0pO2Z1bmN0aW9uIGhaKCl7cmV0dXJuIGVbMzBdLmNhbGwodGhpcywxKX1mdW5jdGlvbiBicihCLHope3JldHVybiBnWzE0XS5jYWxsKHRoaXMsMSxCLHopfXZhciBkNz0oSFsyNF0oMjYsYnIsaFopLFtdKS5jb25jYXQoMTI4LFJbMzBdKDE4LDAsNjMpKTsKYnIucHJvdG90eXBlLnVwZGF0ZT0oYnIucHJvdG90eXBlLnJlc2V0PShici5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7Zm9yKChiPSh6PXRoaXNbdj0oSz1bXSxbImJsb2NrU2l6ZSIsMjEsImkiXSksdlsyXV0qOCxbNTYsMjYsNjNdKSx0aGlzLk0pPGJbMF0/dGhpcy51cGRhdGUoZDcsYlswXS10aGlzLk0pOnRoaXMudXBkYXRlKGQ3LHRoaXNbdlswXV0tKHRoaXMuTS1iWzBdKSksQz1iWzJdO0M+PWJbMF07Qy0tKXRoaXMuWFtDXT16JjI1NSx6Lz0yNTY7Zm9yKGtbNF0odlsxXSxiWzFdLHRoaXMpLEI9QT0wO0E8dGhpcy5SO0ErKylmb3IoSj0yNDtKPj0wO0otPTgpS1tCKytdPXRoaXMudltBXT4+SiYyNTU7cmV0dXJuIEt9LGZ1bmN0aW9uKEIpeyh0aGlzWyhCPVsiaSIsMjksIk0iXSx0aGlzKVtCWzBdXT0wLEJbMl1dPTAsdGhpcykudj1HbFtBRSgpXT9uZXcgSW50MzJBcnJheSh0aGlzLkEpOm1bQlsxXV0oMTcsdGhpcy5BKX0pLGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBKXtpZigoKEs9KEo9dGhpcy5NLEE9WzIsKEM9MCw0KSwiYmxvY2tTaXplIl0sWzI1NSwibnVtYmVyIiwibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSJdKSx6PT09dm9pZCAwKSYmKHo9Qi5sZW5ndGgpLHR5cGVvZiBCKT09PSJzdHJpbmciKWZvcig7Qzx6Oyl0aGlzLlhbSisrXT1CLmNoYXJDb2RlQXQoQysrKSxKPT10aGlzW0FbMl1dJiYoa1tBWzFdXSgyMiwyNix0aGlzKSxKPTApO2Vsc2UgaWYoWVs4XSg5LEtbMV0sQikpZm9yKDtDPHo7KXtpZighKGI9QltDKytdLEtbMV09PXR5cGVvZiBiJiYwPD1iJiZLWzBdPj1iJiZiPT0oYnwwKSkpdGhyb3cgRXJyb3IoS1tBWzBdXSk7dGhpcy5YW0orK109YixKPT10aGlzW0FbMl1dJiYoa1tBWzFdXSgyMywyNix0aGlzKSxKPTApfWVsc2UgdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBzdHJpbmcgb3IgYXJyYXkiKTsodGhpcy5NPUosdGhpcykuaSs9en0pOwp2YXIgSEksdnQ9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCwKNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIFlpKCl7cmV0dXJuIHlbNDFdLmNhbGwodGhpcyw1KX0KdmFyIEFMPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCwoSFsyNF0oODMsWWksYnIpLDUyODczNDYzNSksMTU0MTQ1OTIyNV0sRU09ZDIoKSxtYz1CYSgpLHZTPXZCKCkscms9QzgoKSxmYj1tZygpLE96PXNndygpLEttPUhSMCgpLFJvPWp6KCksQms9enQtc00sY3k4PSgoKChPWzIxXSgzLCRjLFQpLCRjKS5wcm90b3R5cGUuVD1SWzQ4XSg4LFswLElfLENYLC0xXSksVmEucHJvdG90eXBlKS5zdGFydD1mdW5jdGlvbihCKXtCPVs0NSwiaSIsMTVdLHdpbmRvd1tTZV1bbUcoKV18fCh0aGlzW0JbMV1dPT1udWxsJiYodGhpc1tCWzFdXT1uZXcgTXV0YXRpb25PYnNlcnZlcihPWzM1XSgzMiwuNSx0aGlzKSkpLHRoaXNbQlsxXV0ub2JzZXJ2ZShHW0JbMl1dKEJbMF0pLHthdHRyaWJ1dGVzOiEwLGNoaWxkTGlzdDohMSxzdWJ0cmVlOiEwfSkpfSxWYS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gdGhpcy5NPQoodGhpcy5YPW5ldyAodGhpcy52PShLPSh6PShKPShDPVswLDMsMjldLG5ldyAkYyksa1s2XShDWzJdLDEsSix0aGlzLnYpKSxtWzIzXSgyNix0aGlzLlgudG9TdHJpbmcoKSx6LDIpKSxCPW1bMjNdKDMxLHRoaXMuTS50b1N0cmluZygpLEssQ1sxXSkueWUoKSxDWzBdKSxYeCksbmV3IFh4KSxCfSxlKVsyNF0oNTksVmEpLE9bMjFdKDIsSWksVCksT1s4XSg4LDI3LGVbMTFdLmJpbmQobnVsbCwzMikpLGUpWzM1XSg1OCxudWxsLElpKSxrcj1bMCxGTl0sU3R4PVsoT1s4XSg5LDM4LChJaS5wcm90b3R5cGUuVD1SWzQ4XSg1LGtyKSxEKVsxNl0uYmluZChudWxsLDIpKSwwKSxJXyxUYSxbMCxbMCxRVCwtMV0sa3gsUVQsLTFdXSx0Wj1bMCwoT1syMV0oMSxKSixUKSxPWzhdKDcsMixmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4oSj0oIiIrQilbKHo9eVsxMV0oMzIseixLKSxXMSkrbGJdKHopKSYmSi5sZW5ndGg+PTI/Si5pbmRleDpudWxsfSksSV8pLC0xLDEsSV8sLTEsQUcsQ1gsSV8sU3R4LAprcixJX10sa2s9KE9bOF0oNywxLHlbNDddLmJpbmQobnVsbCwoSkoucHJvdG90eXBlLlQ9Uls0OF0oOSx0WiksNykpKSxIKVsxMl0oMiwxMDAsSkosdFopLFVEPVsoKChPWzIxXSgyLCRzLFQpLCRzLnByb3RvdHlwZSkub3U9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMTMsdGhpcywyKX0sTylbOF0oNywxNyxmdW5jdGlvbihCLHosSyl7cmV0dXJuKHo9eVsxMV0oMzUseiwiZyIrSyksKCIiK0IpW1cxK2xiXSh6KXx8W10pLmxlbmd0aH0pLDApLGckLENYLEZOXSxabT0oT1syMV0oNiwoJHMucHJvdG90eXBlLlQ9Uls0OF0oOSxVRCksJFkpLFQpLGZ1bmN0aW9uKEIseil7cmV0dXJuIHlbMzldLmNhbGwodGhpcyw0NSx6LEIpfSksT0U9ZnVuY3Rpb24oKXtyZXR1cm4gZzBbMV0uY2FsbCh0aGlzLDEpfSxJPSgoKCgoKE9bMjFdKDMsVjgsKCRZLnByb3RvdHlwZS5UPVJbNDhdKDQsWzAsVGEsVUQsQ1hdKSxUKSksVjgucHJvdG90eXBlKS5UPVJbNDhdKDUsWzAsSV8sLTNdKSxPKVsyMV0oNCwKaWwsVCksaWwucHJvdG90eXBlLlQ9Uls0OF0oNSxbMCxJXyxGTixDWCwtNF0pLE8pWzIxXSg1LGpxLFQpLGpxKS5wcm90b3R5cGUuVD1SWzQ4XSgxLFswLGt4LC0yXSksTylbMjFdKDEsQk4sVCksZnVuY3Rpb24oQix6LEspe3ZhciBKPVsxMSwyNSw0MV0sQz1HMi5hcHBseSgzLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBPWzI1XSgxLGIpfSk7cmV0dXJuIFJbMTNdKEpbMl0sSFtKWzFdXSg0MixPWzldKDIyLDQpLEIpLFtPW0pbMV1dKDcseiksT1tKWzFdXSg5LEspXS5jb25jYXQoZVszM10oSlswXSxDKSkpfSksTTM9WzAsQ1gsSV8sLTFdLHE3PSgoKChCTi5wcm90b3R5cGUuVD1SWzQ4XSg1LE0zKSxPKVs4XSg2LDIxLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4gZnVuY3Rpb24gcChDLGIsQSx2KXtyZXR1cm4gT1s0MF0oMTYscCxmdW5jdGlvbihRLG4sWil7bj1bMiw3LDRdLFo9WzYsMSwic3BsaXQiXTtzd2l0Y2goUS5NKXtjYXNlIFpbMV06US5LKG5bMF0pLEE9Z1sxMl0oMTEsCnooQigpLFpbMF0pW1pbMl1dKFlGKCkpKSx2PUEubmV4dCgpO2Nhc2UgblsyXTppZih2LmRvbmUpe1EuR18oblswXSk7YnJlYWt9cmV0dXJuIEM9KGI9T1s0OV0uYmluZChudWxsLDMyKSx2LnZhbHVlKSxRLnYoSyhIWzhdKDQwLDY2MTQpKEhbOF0oMzYsMjY3KShDKS50cmltKCkpKSxuW1pbMV1dKTtjYXNlIG5bWlsxXV06dj0oYihRLlgpLEEubmV4dCgpKSxRLkdfKG5bMl0pO2JyZWFrO2Nhc2UgblswXTpRLm0oKSxRLm8oMCl9fSl9KCl9KSxPKVsyMV0oNSxGQSxUKSxGQS5wcm90b3R5cGUuVD1SWzQ4XSg0LFswLElfLC01XSksTylbOF0oMTEsNTIsZ1s0XS5iaW5kKG51bGwsMjcpKSxPWzIxXSgxLE0wLFQpLE9bOF0oMTEsMTAsRFs0NF0uYmluZChudWxsLDE0KSksT1s4XSg5LDE5LE9bMV0uYmluZChudWxsLDQyKSksTTAucHJvdG90eXBlLlQ9Uls0OF0oMSxbMCxJXywtMSxreF0pLFtdKSxIYj12b2lkIDAsWEo9bmV3IFdiLHokPURbMjRdKDMyLEhbOF0oMzIsODcxNikpLG1MOD1EWzI0XSg0OCwKSFs4XSg0MCwyOTIzKSw1MCksTFU9RFsyNF0oMjgsT1s0Nl0oNzMsMCwzNDAzKSx2b2lkIDAsITEpLGwxPWdoKCksbFFoPURbMjRdKDQ0LEhbOF0oNDAsNDAxMSksdm9pZCAwLCEwLGtbMTBdLmJpbmQobnVsbCwyNCkpLEVweD1EWzI0XSgzMixIWzhdKDEyLDE2MDEpLHZvaWQgMCwhMCxrWzEwXS5iaW5kKG51bGwsMjUpKSxYUFk9RFsyNF0oNTIsSFs4XSgzMiwxMzQ1KSx2b2lkIDAsITAsa1sxMF0uYmluZChudWxsLDI4KSksd089RFsyNF0oNjAsSFs4XSg0MCw3OTEyKSksYUY9RFsyNF0oNDAsSFs4XSg0MCwxOTUpLDU2KSxFSD1mdW5jdGlvbigpe3JldHVybiIifSx3Nz10eXBlb2Ygd2luZG93IT09InVuZGVmaW5lZCI/d2luZG93Om51bGwsRGg9dzcmJnc3LmRvY3VtZW50P3c3LmRvY3VtZW50LmN1cnJlbnRTY3JpcHQ6bnVsbCxYQT1PWzI4XSgzNCxPWzI4XSg0NSxPWzI4XSg1NixPWzI4XSgzMixPWzI4XSgzMyxIWzhdKDM2LDExMzEpLE9bMjhdKDU5LE9bMjhdKDM1LEhbOF0oNDQsCjIwMzEpLEhbOF0oMTIsMzYwMykpLE9bMjhdKDU4LEhbOF0oNDQsNjgyMSksT1syOF0oMzMsSFs4XSg0MCw1MDExKSxIWzhdKDMyLDM3NjYpKSkpKSxPWzI4XSgzMyxPWzI4XSgzOCxPWzI4XSgzOSxPWzI4XSg1NCxPWzI4XSg0NixPWzI4XSg0NSxIWzhdKDQ0LDYzOTIpLEhbOF0oMzIsMTk4NSkpLE9bMjhdKDU1LEhbOF0oMzYsMTA2NiksT1syOF0oNDEsSFs4XSgzMiwyNzc4KSxIWzhdKDQ0LDQwODgpKSkpLE9bMjhdKDM1LEhbOF0oMTIsMjQ1MCksSFs4XSgxMiw1Nzg3KSkpLE9bMjhdKDQwLE9bMjhdKDUwLEhbOF0oNDAsNjI4NCksT1syOF0oNDksT1syOF0oMzgsSFs4XSgzNiw5MTc2KSxIWzhdKDQ0LDk1MTkpKSxIWzhdKDEyLDEzNCkpKSxPWzI4XSg1MixIWzhdKDQwLDQ4MSksT1syOF0oMzcsT1syOF0oNDIsSFs4XSgzNiw0NTc3KSxPWzI4XSgzNyxIWzhdKDQwLDc0NzQpLEhbOF0oNDQsOTc5NCkpKSxPWzI4XSg0MixPWzI4XSg0MSxIWzhdKDEyLDkwOTgpLEhbOF0oNDAsNzE0NCkpLApIWzhdKDQwLDM2NzYpKSkpKSksZnVuY3Rpb24oKXtyZXR1cm4gb1UoKX0pLE9bMjhdKDQ0LEhbOF0oMzIsMjcxMyksSFs4XSgzNiw0Nzg4KSkpKSxPWzI4XSg0MyxPWzI4XSg0NCxIWzhdKDEyLDk4NyksSFs4XSgxMiwzMDYpKSxIWzhdKDEyLDkwNTEpKSksT1syOF0oNDMsT1syOF0oNDAsT1syOF0oMzYsSFs4XSgzMiwyNTg4KSxIWzhdKDM2LDM1MjcpKSxIWzhdKDM2LDQzNTEpKSxIWzhdKDMyLDIxNTYpKSksSFs4XSgxMiwxOTc2KSksZkcsaTAsRVIsb1UscVAsSUs9a1s0N10oNCxZayksRlg9WzAsQ1gsSV8sQ1gsTTMsKCgoKHFQPW5ldyBNYXAoW1sicmVjYXB0Y2hhLyIrKElLLmluY2x1ZGVzKGFWKCkpP05rKCk6T2soKSksMjBdLFsicmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsMThdLFtJSywxOV0sW2tbNDddKDcsUEQpLDIxXV0pLE8pWzIxXSgxLHg5LFQpLHg5LnByb3RvdHlwZS5UPVJbNDhdKDEsWzAsSV8sLTIsVGEsTTMsSV9dKSxPKVsyMV0oNiwKRmcsVCksRmcucHJvdG90eXBlKS5DdT1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg2OSx0aGlzLEJOLDQpfSxDWCldLHVuTj1IWzEyXSg3LDEwMCwoRmcucHJvdG90eXBlLlQ9Uls0OF0oMSxGWCksRmcpLEZYKTtmdW5jdGlvbiB2SChCLHosSyxKLEMsYil7cmV0dXJuIFJbMTRdLmNhbGwodGhpcyw1LEIseixLLEosQyxiKX0KdmFyIEFxPSgoKEhbMjRdKDgzLHZILGhaKSx2SC5wcm90b3R5cGUpLnJlc2V0PWZ1bmN0aW9uKCl7KHRoaXMudi5yZXNldCgpLHRoaXMudikudXBkYXRlKHRoaXMuTSl9LHZIKS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEIseil7dGhpcy52LnVwZGF0ZShCLHopfSx2SC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKEIseil7cmV0dXJuIHRoaXNbdGhpc1t0aGlzW0I9dGhpc1soej1bInYiLCJYIl0seilbMF1dLmRpZ2VzdCgpLHpbMF1dLnJlc2V0KCkselswXV0udXBkYXRlKHRoaXNbelsxXV0pLHRoaXNbelswXV0udXBkYXRlKEIpLHpbMF1dLmRpZ2VzdCgpfSxJVygpKSxjaD1DOCgpLGR5PWl6KCksc3A9aE4oKSxhUWw9VnEoKSxTSj1JdCgpLEJ4PXh0KCksQVg9Vm4oKSxUTz1LNCgpLHAxPWhPKCksb24saGkwPURbMjRdKDQ4LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKGcwWyhLPShKPW5ldyAoQz0odj0oYj1bKHA9WzgsMTQsIiJdLCItIiksMSwwXSxnKVtwWzFdXSg0LApzcCkrYlswXStEYXRlLm5vdygpLGtbMzVdKDQ4LEhbMzldKDc0LGJbMV0sZ1twWzFdXSg0LGR5KSl8fHBbMl0pKSxTZXQpLEE9bmV3IHg5LGspWzM1XSg1NixwWzJdK3p8fHBbMl0scFswXSksZSlbNDJdKDcpLDRdKHBbMV0sdixlWzMxXSgxOSksYlsyXSksQikudGhlbj1CLnRoZW58fGZ1bmN0aW9uKCl7fSxCKS50aGVuKGZ1bmN0aW9uKFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSl7Zm9yKGM9KEU9WzEsInllIiw0M10sMzIpO2MhPTkxOylpZihjPT0zNilOPXEudmFsdWUsYz0yMztlbHNle2lmKGM9PTE3KXJldHVybiBHWzMwXSgxMCwwLHYpLGtbNl0oMzEsV1tFWzBdXSxBLEouc2l6ZSlbRVsxXV0oKTtpZihjPT02OSljPTk7ZWxzZSBpZihjPT0yMSluPUEsUT0oSFsyMV0oMTMsQSw1KXx8MCkrV1tFWzBdXSxrWzZdKDI4LDUsbixRKSxjPUVbMl07ZWxzZSBpZihjPT03OCljPVJbMjZdKDIwLFAsNSk9PVdbMF0/MjE6RVsyXTtlbHNlIGlmKGM9PTUpSi5hZGQoTiksWj1oWShIWzIxXSg0NSwKQSwyKXx8MCxIWzIxXSg3LFAsMikpLGtbNl0oMzEsMixBLFopLGM9Nzg7ZWxzZSBpZihjPT0zMSl7Vj1IWzM5XSg3NCwwLE4pfHwiIjt0cnl7cj11bk4oa1s0NV0oMTAsVikpfWNhdGNoKFMpe3I9bmV3IEZnfWM9KFA9ciw1NSl9ZWxzZSBjPT0yMz9jPU4uc3RhcnRzV2l0aCh2KyItIik/MzE6RVswXTpjPT05P2M9cS5kb25lPzE3OjM2OmM9PTUxPyhHWzMwXSg5LDAsTiksYz1FWzBdKTpjPT04Nz8oeD0oeVszM10oMywzLEEpfHwwKStXW0VbMF1dLGtbNl0oMjYsMyxBLHgpLEw9W1AuQ3UoKV0sa1szNF0oMyxXWzJdLEJOLDQsTCxBKSxjPTUxKTpjPT0zMj8oVz1bIi9MIiwxLDE2XSxmPWdbMTJdKDQsZVszNV0oMzAsMCkpLHE9Zi5uZXh0KCksYz02OSk6Yz09NTU/Yz0hUlsyNl0oMjEsUCxXW0VbMF1dKXx8Si5oYXMoTil8fE4uaW5jbHVkZXMoQyk/NTE6NTpjPT1FWzBdPyhxPWYubmV4dCgpLGM9OSk6Yz09RVsyXSYmKGM9ZVsyXSgzMiwzLHZvaWQgMCxQKT09Sz84Nzo1MSl9fSl9LDUyLAohMSksZExZPURbMjRdKDUyLGZ1bmN0aW9uKCl7cmV0dXJuIGtbMTddKDE1LDEsNykudGhlbihmdW5jdGlvbihCKXtyZXR1cm4oQnx8bmV3IEpKKS55ZSgpfSl9LDUxKSxrTXg9RFsyNF0oMzYsZnVuY3Rpb24oQix6KXtyZXR1cm4gQj0oej1bMzUsMjEwNiwzMl0sZVt6WzBdXSgyLDApKSxCLmxlbmd0aD9IWzhdKHpbMl0selsxXSkoQltSW3pbMF1dKDM4LEIubGVuZ3RoKV0pOncyKCl9LDU5KSx0ZHE9RFsyNF0oMjgsZnVuY3Rpb24oKXtyZXR1cm4gSFszOV0oNzMsMSxnWzE0XSg3LGFRbCkpfSw2NyksbXA9ZnVuY3Rpb24oQil7cmV0dXJuIGtbMTJdLmNhbGwodGhpcywyNyxCKX0sVUw4PURbMjRdKDQwLGZ1bmN0aW9uKEIseil7cmV0dXJuKEI9SFsoej1bMzksOCwxNF0seilbMF1dKDc4LDAsZ1t6WzJdXSh6WzFdLEJ4KSksRylbMzBdKHpbMV0sMCxnW3pbMl1dKDIsQngpKSxCfSw3NiksaGY9RFsyNF0oMzYsZnVuY3Rpb24oQil7cmV0dXJuIEhbQj1bOCwwLDM5XSxCWzJdXSg3NCxCWzFdLAp5WzI1XShCWzBdLEJbMV0pKX0sNzApLHNBPVswLDYsKChPWzIxXSgzLGtILFQpLE8pWzIxXSgyLHVFLFQpLENYKV0selA9WzAsYkIsemEsYkIsdGIsc0EsKGtILnByb3RvdHlwZS5UPVJbNDhdKDEsc0EpLDEpLE91XSxNZHE9KChGPSgoKCgoKE9bMjFdKDIsKHVFLnByb3RvdHlwZS5UPVJbNDhdKDgselApLEFNKSxUKSxBTSkucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMV0oMjIsdGhpcywxKX0sQU0pLnByb3RvdHlwZS5hdT1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg3MSx0aGlzLHVFLDMpfSxBTSkucHJvdG90eXBlLmRIPWZ1bmN0aW9uKCl7cmV0dXJuIFlbMzRdKDYsNSx0aGlzKX0sQU0ucHJvdG90eXBlKS5UPVJbNDhdKDEsWzAsT3UsYkIselAsMSxiQl0pLE8pWzIxXSgzLHZFLGJkKSxPWzIxXSg1LHpILFQpLHpILnByb3RvdHlwZSksRi5kSD1mdW5jdGlvbigpe3JldHVybiBZWzM0XSg1LDQsdGhpcyl9LEYuczM9ZnVuY3Rpb24oKXtyZXR1cm4gbVsxXSgyNix0aGlzLAoxKX0sRi5hdT1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg3Myx0aGlzLHVFLDUpfSxGLmxrPWZ1bmN0aW9uKCl7cmV0dXJuIFlbMzRdKDYsMyx0aGlzKX0sRi5UPVJbNDhdKDUsWzAsT3UsYkIsLTIselBdKSxPKVsyMV0oNixlYyxiZCksWzAsZyQsYV8sLTFdKSxLXz1bInJyZXEiLCgoKE9bMjFdKDEsemwsVCksemwucHJvdG90eXBlKS56dT1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgxMix0aGlzLDIxLGwpfSx6bC5wcm90b3R5cGUpLnhuPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDE1LHRoaXMsNyxsKX0semwuUlQ9dGQoKSxDWCksLTEsMSxDWCwtMTQsVGEsTWRxLENYLC0yLDEsQ1gsLTMsa3gsLTFdLEpyPVsoKCgoKCgoKE9bMjFdKDQsKHpsLnByb3RvdHlwZS5UPVJbNDhdKDUsS18pLGNSKSxUKSxjUi5SVD1kbWgoKSxjUi5wcm90b3R5cGUpLlQ9Uls0OF0oNCxbImJyZXEiLEtfXSksTylbMjFdKDUsU3MsYmQpLE9bMjFdKDUsU1QsVCksU1QpLnByb3RvdHlwZS5zYz1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMCwKdGhpcywzLGwpfSxTVC5SVD1DSigpLFNULnByb3RvdHlwZS5UPVJbNDhdKDEsWyJwYXRyZXEiLENYLC0yXSksTylbMjFdKDYsYkYsVCksYkYpLnByb3RvdHlwZS5zYz1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgxNSx0aGlzLDEsbCl9LGJGLlJUPXdxMygpLGJGLnByb3RvdHlwZSkuVD1SWzQ4XSgxLFsicGF0cmVzcCIsQ1hdKSxPWzIxXSgzLHUwLGJkKSxPKVsyMV0oMyx1VCxUKSwwKSxJXywtMV0sQ189WzAsSV8sLShPWzIxXSgyLGhQLCh1VC5wcm90b3R5cGUuVD1SWzQ4XSg4LEpyKSxUKSksMildLHBqPShPWzIxXSg1LGZtLChoUC5wcm90b3R5cGUuVD1SWzQ4XSg0LENfKSxUKSksZnVuY3Rpb24oQil7cmV0dXJuIGVbM10uY2FsbCh0aGlzLDIsQil9KSxiNT1bMCxhaixwWCxKcixwWCxDX10sQXI9WzAsKE9bMjFdKDUsKGZtLnByb3RvdHlwZS5UPVJbNDhdKDQsYjUpLG5aKSxUKSxnJCksSV9dLHZ4PVswLChPWzIxXSg2LChuWi5wcm90b3R5cGUuVD1SWzQ4XSg5LEFyKSxaMCksVCksCktYKSxJX10sVFA9WzAsMywoT1syMV0oNixiVywoWjAucHJvdG90eXBlLlQ9Uls0OF0oOSx2eCksVCkpLE9bMjFdKDUsaTEsVCksQ1gpXSxqaT1bMCxmWCwoYlcucHJvdG90eXBlLlQ9Uls0OF0oNCwoaTEucHJvdG90eXBlLkN1PWZ1bmN0aW9uKCl7cmV0dXJuIFJbNDhdKDcyLHRoaXMsYlcsMil9LFRQKSksVFApXSx3UEc9WzAsQ1gsKGkxLnByb3RvdHlwZS5UPVJbNDhdKDksamkpLC0xKV0scF89WzAsQ1gsKE9bMjFdKDMsV2osVCksUVQpLElfLC0yLGckLENYLFRhLHdQR10sYjE9ZnVuY3Rpb24oKXtyZXR1cm4gSFsyMF0uY2FsbCh0aGlzLDIzKX0sUWQ9WzAsKE9bMjFdKDQsKFdqLnByb3RvdHlwZS5UPVJbNDhdKDgscF8pLHc2KSxUKSxDWCksMSxDWCwtMSxLWF0sbl89WzAsKE9bMjFdKDUscFosKHc2LnByb3RvdHlwZS5UPVJbNDhdKDQsUWQpLFQpKSxUYSkscF8sQUddLElRRz1bKHBaLnByb3RvdHlwZS5UPVJbNDhdKDEsbl8pLDApLEFHXSxaMj1bMCwoT1syMV0oMSxoMSxUKSxBRyksCi0xXSxGRTg9WzAsQ1gsKGgxLnByb3RvdHlwZS5UPVJbNDhdKDQsWjIpLElfKSwtMl0sQjk4PWZ1bmN0aW9uKEIpe3JldHVybiBtWzM2XSg0NyxmdW5jdGlvbih6KXtyZXR1cm4geiBpbnN0YW5jZW9mIEImJiF5WzJdKDMyLHopfSl9KChPWzIxXSgzLHFGLFQpLHFGKSksV3g9WyJwbWV0YSIscF8sRkU4LHZ4LDEsbl8sMSxaMixBcixJUUcselAsamksKHFGLlJUPXFBKCksUWQpXSxnaj1bImV4ZW1jbyIsKCgoKCgoKEY9KCgoKE9bMjFdKChxRi5wcm90b3R5cGUuVD1SWzQ4XSgxLFd4KSw2KSxUJCxUKSxUJC5wcm90b3R5cGUpLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gWVszNF0oNywxLHRoaXMsdm9pZCAwLGwpfSxUJCkuUlQ9bXIoKSxPKVsyMV0oMyxnbSxUKSxnbSkucHJvdG90eXBlLEYpLlUzPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDEyLHRoaXMsMSxsKX0sRikuc2V0VGltZW91dD1mdW5jdGlvbihCKXtyZXR1cm4gSFs0OV0oMjUsMyxCLHRoaXMsdm9pZCAwLGwpfSxGKS5iaz0KZnVuY3Rpb24oKXtyZXR1cm4gUls0OF0oNjksdGhpcyxUJCwxMSxsKX0sRi54bj1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMSx0aGlzLDgsbCl9LEYpLmxrPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDEyLHRoaXMsMTAsbCl9LEYpLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTZdKDg4LGwsdGhpcyw2LFFCKX0sRikuenU9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMTMsdGhpcywxNCxsKX0sRi53Vj1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMCx0aGlzLDEyLGwpfSxGLlZBPWZ1bmN0aW9uKEIpe3JldHVybihCPVs0LDk0LDNdLEgpW0JbMF1dKEJbMV0sQlsyXSx0aGlzLGwsdm9pZCAwLGtbNDZdLmJpbmQobnVsbCwyMSkpfSxnbS5SVD1oaSgpLGJCKSwtMiwxLGU1LElLOF0sTmY9WyJycmVzcCIsQ1gsMSxreCwoVCQucHJvdG90eXBlLlQ9Uls0OF0oNSxnaiksV3gpLENYLGckLE9ELENYLC0yLGdqLENYLEtYLENYLC0xLEtYLDEsYjVdLHNPPShPW2dtLnByb3RvdHlwZS5UPVJbNDhdKDEsCk5mKSwyMV0oMixUWixiZCksYWUpKCksdWQ9SXEoKSxoMD1JVygpLGFvPXl2KCksdTE9YkooKSxhOD1iUygpLENRPW94KCksZ0Y9KEl0KCksQzgoKSxHSSgpKSxnQj0oKHp4bCgpLE9bMjFdKDYsbXAsVCksbXAuUlQ9SFcoKSxtcC5wcm90b3R5cGUuVD1SWzQ4XSg0LFsidWJkcmVxIixLX10pLE8pWzIxXSgzLEVkLFQpLEVkLnByb3RvdHlwZS5zMz1mdW5jdGlvbigpe3JldHVybiBnWzE2XSg4OCxsLHRoaXMsMyxRQil9LGZ1bmN0aW9uKCl7cmV0dXJuIGVbMzldLmNhbGwodGhpcyw0KX0pLHNDaD0oRWQuUlQ9KChFZC5wcm90b3R5cGUueG49ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMTUsdGhpcywxLGwpfSxFZCkucHJvdG90eXBlLndWPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDIwLHRoaXMsMixsKX0sQlYpKCksRWQucHJvdG90eXBlLlQ9Uls0OF0oMSxbInViZHJlc3AiLENYLC0xLGckLEtYXSksT1syMV0oNSxVaCxiZCksc0NoKXx8e2lkOkJrdygpfSx4aT0oKChGPShPWzIxXSg2LApoRixBcnJheSksaEYucHJvdG90eXBlKSxGKS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe2lmKEI9Qj09PShXPVszMCwzNiwwXSx2b2lkIDApPzEwOkIsUD1bMjY4NDM1NDU2LDEsIkgxIl0sQjwyfHxCPldbUFsxXV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRvU3RyaW5nKCkgcmFkaXggYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iik7aWYodGhpcy5sZW5ndGg9PT0wKUw9bWcoKTtlbHNle2lmKChCJkItUFsxXSk9PT0wKXtpZihDPShBPShiPSh6PShmPSgocD10aGlzLmxlbmd0aCxRPShmPUItUFsxXSxCKS1QWzFdLGY9KGY+Pj5QWzFdJjg1KSsoZiY4NSksZj4+PjIpJjUxKSsoZiY1MSksZj4+PjQmMTUpKyhmJjE1KSx0aGlzKVtQWzJdXShwLVBbMV0pLGd3KGIpKSwocCpXWzBdLUErei1QWzFdKS96KXxXWzJdLHRoaXMuc2lnbiYmQysrLEM+UFswXSl0aHJvdyBFcnJvcigic3RyaW5nIHRvbyBsb25nIik7Zm9yKEo9CihOPShuPVdbMl0scj1DLVBbMV0sQXJyYXkpKCh2PVdbMl0sQykpLFdbMl0pO248cC1QWzFdO24rKylmb3IoSz10aGlzW1BbMl1dKG4pLFo9KEp8Szw8dikmUSxOW3ItLV09YXVbWl0sVj16LXYsdj1XWzBdLVYsSj1LPj4+Vjt2Pj16OylOW3ItLV09YXVbSiZRXSxKPj4+PXosdi09ejtmb3IoSj1iPj4+KE5bci0tXT1hdVsoSnxiPDx2KSZRXSx6LXYpO0ohPT0wOylOW3ItLV09YXVbSiZRXSxKPj4+PXo7aWYodGhpcy5zaWduJiYoTltyLS1dPUk4KCkpLHIhPT0tMSl0aHJvdyBFcnJvcigiaW1wbGVtZW50YXRpb24gYnVnIik7eD1OLmpvaW4oIiIpfWVsc2UgeD1rWzI2XSg3NywxNixCLHRoaXMsITEpO0w9eH1yZXR1cm4gTH0sRikudmFsdWVPZj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJDb252ZXJ0IEpTQkkgaW5zdGFuY2VzIHRvIG5hdGl2ZSBudW1iZXJzIHVzaW5nIGB0b051bWJlcmAuIik7fSxNYXRoLmltdWx8fGZ1bmN0aW9uKEIseil7cmV0dXJuIEIqenwwfSkscnY9KEYuQ2c9KEYuaWs9CmZ1bmN0aW9uKEIpe3JldHVybiBlWzIzXS5jYWxsKHRoaXMsMjIsQil9LEYuQlk9ZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBnWzIxXS5jYWxsKHRoaXMsOSxCLHosSyxKLEMsYil9LChGLlljPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gUlsyMV0uY2FsbCh0aGlzLDMzLEIseixLLEosQyxiKX0sRikuTEU9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1szM10uY2FsbCh0aGlzLDEsQix6KX0sZnVuY3Rpb24oQil7cmV0dXJuIGtbNDldLmNhbGwodGhpcywyNCxCKX0pLDMzNTU0NDMyKSxHbj1ydjw8KEYudkU9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7cmV0dXJuIGtbMTldLmNhbGwodGhpcyw3LEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpfSw1KSxndz0oRi5HUz1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiB5WzQ4XS5jYWxsKHRoaXMsMixCLHosSyxKLEMpfSxGLlBsPWZ1bmN0aW9uKEIpe3JldHVybiBtWzFdLmNhbGwodGhpcywKMzQsQil9LEYub0w9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1szMl0uY2FsbCh0aGlzLDcsQix6KX0saEYucHJvdG90eXBlLnF4PWZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMzVdLmNhbGwodGhpcywzMyxCLHopfSxNYXRoLmNsejMyP2Z1bmN0aW9uKEIpe3JldHVybiBuRyhCKS0yfTpmdW5jdGlvbihCKXtyZXR1cm4gQj09PTA/MzA6MjktKFlDKEI+Pj4wKS9NYXRoLkxOMnwwKXwwfSksT2k9MzIsemN4PSgoKChGPWhGLnByb3RvdHlwZSxGKS5UeD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtyZXR1cm4gZ1s0Nl0uY2FsbCh0aGlzLDcsQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil9LEYuSDE9ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDZdLmNhbGwodGhpcywyMSxCKX0sRi5Xej1mdW5jdGlvbigpe3JldHVybiBZWzIzXS5jYWxsKHRoaXMsMTQpfSxGKS5lMD1mdW5jdGlvbihCLHope3JldHVybiBlWzQzXS5jYWxsKHRoaXMsMTQsQix6KX0sRikubDU9CmZ1bmN0aW9uKEIpe3JldHVybiBZWzIxXS5jYWxsKHRoaXMsMzQsQil9LHpjeHx8e2lkOmZvKCl9KSxLcTA9bVszNl0oNDAsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09ImJpZ2ludCJ9LFp5KCkpLEpVeD1lWzNdKDEsaEYpLEMwMz1lWzNdKDUsUWUpLGJzRD1ic0R8fHtpZDpvaCgpfTttWzM2XSgzNyxmdW5jdGlvbihCKXtyZXR1cm4gb3NZKEpVeCxLcTAsQzAzKShCKX0sdkooKSksZlEoMiwzMiksZlEoMiw0OCksZlEoMiw0OCk7CnZhciBPQSx4SSxBVTg9bmV3IHVHLCRpPXttMDoxLElNOjIsc2Y6KCgoKCgoKChPQT0oeEk9a1s2XSg1OCwxLEFVOCwxOCksa1s2XSgyNSwyLHhJLDQpKSxrKVs2XSgyOSwzLE9BLDApLGtoLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMudj1nWzI0XSg3NywwLFtdKX0sZSlbMjRdKDYzLGtoKSx6Vi5wcm90b3R5cGUpLmk9ZnVuY3Rpb24oKXtmb3IodmFyIEI9WyJhZGQiLCJhcHBseSIsIk0iXSx6PWdbMTJdKDExLEcyW0JbMV1dKDAsYXJndW1lbnRzKSksSz16Lm5leHQoKTshSy5kb25lO0s9ei5uZXh0KCkpdGhpc1tCWzJdXVtCWzBdXShLLnZhbHVlKX0selYucHJvdG90eXBlKS52PWZ1bmN0aW9uKCl7Zm9yKHZhciBCPVsiYXBwbHkiLCJoYXMiLDExXSx6PWdbMTJdKEJbMl0sRzJbQlswXV0oMCxhcmd1bWVudHMpKSxLPXoubmV4dCgpOyFLLmRvbmU7Sz16Lm5leHQoKSlLPUsudmFsdWUsdGhpcy5NW0JbMV1dKEspJiZ0aGlzLk1bImRlbGV0ZSJdKEspfSx6VikucHJvdG90eXBlLnJlc2V0PQpmdW5jdGlvbigpeyh0aGlzLk0uY2xlYXIoKSx0aGlzLlgpLmNsZWFyKCl9LE8pWzIxXSgzLExSLHpWKSxlKVsyNF0oNjAsTFIpLDMpLHYzOjQsSVg6NSxhMzo2LHJNOjcsejg6OCxhWDo5LEdIOjEwLE4kOjExLHBTOjEyfSxwNT0oT1syMV0oMixtMyxUKSxbMSwyLDMsNCw1LDZdKSxEMj1bMCxwNSxzUk4sSkcsTTdELHZaLEswMCx1V10sUGs9e0FDOjAsRHI6MTIyLEw5OjQ0MSxnMTo4NTUsUWM6MzYyLGQwOjQ0NSxIJDoxMDQsSTM6MzE3LGttOjc3NCxYbDo0NTIsZ2Y6MjgsREI6Mjk2LHdNOjMxMyx5eDo4NjMseEI6MTgxLHE3OjQxNix1ZToxMTIsZjM6MjM5LHEkOjI0MCx1cjoxMjEsVDg6NDIyLFJVOjU1NSxrWDozMzgsTkI6OTAsbiQ6MTQ5LFdiOjE5NSxIRTozNTEsamw6NDk5LEpROjE1NyxPMTo1MixvWDoyMTIsdzE6NDE1LFNZOjE0ODksZGc6OTQyLFltOjE5MSxBVTo2OTAseUM6NjEzLGlXOjM2NCxTeTo1ODMsYVU6MTgyNSxBazo1MjUsT246OTMxLHFnOjEwMyxubzozNDUsUCQ6NDM2LApFbToxMzMyLGFQOjIxOCxhZzoxNTMsbEE6MzcyLFczOjMwNixjJDoyOTgsVW46MTQxLHpIOjczLEMkOjk4LGQxOjkzOSxWQzo3NCxmJDoyMDYsd2E6NTEsaUE6NDk2LEZsOjM1MCxPbToyNDYsdjY6NDQ2LGRNOjc4LG9nOjk3MixRRjoxMjg0LFpsOjIxNSxoZToxMjMxLFkkOjE3NyxxQjoxMTExLGV5OjE1MTUsZVM6NTQ2LEo1OjE5NjAseG06NDg5LFNCOjEzMzUsRGw6MTg4NyxaQjoxMzA4LFRsOjMzMSxhcjoxMzUyLEhLOjQwOCxiRTo2NjYsSms6Mjg0LEdrOjg4NCxzMToxMzI0LFQ5OjM0NixHcDoxMDUsSWc6ODAzLFYkOjU5MCxLTjoxNzA0LG9fOjE1MjQsZUI6NjE3LFNsOjU0MSx0cDozNDIsRzk6MTM0LGtlOjY5NixYMjo1MTcsVDA6MzkxLHJVOjExMjQsUjM6MTYxMyxXSzo1Nyx5JDoxNzg4LGJBOjU1NyxYUToxODYxLEIkOjE0MDAsZm86ODM2LFJNOjc2NixiVzoyMDA2LG5HOjI2OCxxOToyMDA0LExTOjE0MDksUSQ6MTMwLElQOjEzNTEsVlE6NzkzLEE1OjE1NzgsTWc6MTYzOSwKdEM6MzI4LEIzOjQ5MixINjo2MzksWE46MTAyMyxtWToxMDQ0LEskOjI2NCxTYzo0NzgsaWU6MzU2LGpCOjY5NyxaeToyNDcsSV86OTg3LG9QOjM4NyxuMzo4MjUsRkc6NDI4LFJYOjI5MyxDUzozMDcsZVk6MTgxNSx1Vzo1MTMsRzA6MTI4NixsRTo3MzgsVW06MTYzNixjTDoxOTU0LFUxOjEzMjgsank6MTU1MCxLUzo4ODksWWQ6MTg2MixnZzoxMzYzLGdhOjM5OCxVZjoxNzg3LGtJOjE4NzYsZk46MTcwMSxkTDo5Myx4TjoxOTQwLHRlOjU0MyxzSjoxMTMxLEZROjkxNixxeToyMDE3LHUkOjg5MSxHODoxMjE2LFVlOjEzOTgsaSQ6MTkwNixsZToyNzEsV0w6MTc4OSxFMDoxMzM2LEpEOjI2NSxocDoxNTE4LGdVOjEzNzIsYmU6NTc4LG5TOjk5OSxZZToxMDA2LFVKOjM3LHFPOjE3MjUsRWU6MTA1NCxKVToxOTY1LHAkOjIwMjAsejA6NTUseGU6MjAxNSxDbzozMzIsSEw6NTg2LFZ4OjE2ODQscmE6OTQ0LHNlOjE2MzUsQ1g6MTAxMSxCSzoxODUwLHdnOjEwOSxqYzoxMjE5LFZjOjE3MCxNUDoxMTEzLApuTjoyMjIsRHg6MTExMCxFZjo2ODksZzA6Mzk5LGVkOjEwMDQsZWM6OTMzLEVKOjMyMixjYjo2NjAsWVg6MTkyMSxqWToxNTg1LHVnOjE1MDEsT2Y6MTQ0OSxIYjoxNjI2LEZZOjI1NSxicjoxMzE2LG8zOjE1MjIsbUw6MjAyNix2JDoxNzE5LFlCOjE1MDIsRTE6NTQ4LGY5Ojk0Nyx4WDoxNzkwLFpROjIwMzIsSzk6NDcyLFhQOjE5NzMsTU86MTU0LGNLOjE5ODAsbVE6MjAxLFJQOjg5Nix3MDoxNDUyLHRROjYzLE5POjEwMTMsSkM6ODgwLHVIOjg3MSxVWjo4NzIseEk6ODczLGFNOjg3NCxOOTo4NzUsVEg6ODc2LFBiOjEyOSxNJDo4MzIsRW46KCgoT1syMV0oNCxPbCwobTMucHJvdG90eXBlLlQ9Uls0OF0oOSxEMiksVCkpLE9sKS5wcm90b3R5cGUuVD1SWzQ4XSg1LFswLGckLFdaLFRhLEQyLElfXSksZlEpKDIsMzEpLDE1NTYpLGZfOjc3Nyxpcjo1NjcsTE46MTU1LEFEOjQ1NSxacjoyMDIxLGhDOjIyLGRhOjIyMyxReDo0MjQsVGs6Mjg1LEM5OjY4NixBcDo3NjcsU1M6NDU3LExvOjIwMjUsCnNtOjExOCx1RToyMjgseGQ6MjksalM6MjAzLGZTOjM0NyxXbDo4MzUsUDM6NjMzLHo5OjgzNyxyZzo3MzMsUVE6OTg5LGdNOjQwMCxHbDo0NDQsRDY6ODQyLERlOjIxNCxYWTo4MCxDTjo0MCxQNjo0ODAsTmc6MTYxLFRwOjE5LFhHOjIwMzQsYiQ6MjAzNSxDMzoxNDU0LGxyOjE4NDYsaFU6MTIxMyxONzo0MTcseCQ6MjAzMSxKcDo3Mjcsd1U6MzYwLFBMOjE1MCx5Yzo2MDQsUnI6NTQ1LGlnOjEwMTksTlA6Mzc1LGhROjc3OSxaZTo2NTksVkY6OTU5LHpJOjg5NSxSXzo0MSxpRTo0Myx6cDoxMDkyLGhrOjU0OSx0RDozNTIsVEk6MTQyMixCTDoxMjc4LG1COjYxNCxGTjoyMDMzLEwzOjEzMTMsaEQ6MTk5NCxrTjoxMzEwLGtCOjI5MSxLbzo2MTl9LHRGPSgoKCgoT1syMV0oMixsSyxUKSxsSy5wcm90b3R5cGUpLlQ9Uls0OF0oOSxbMCxDWCxGTl0pLE9bMjFdKDEsT3kseDApLE95LnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBLPShKPUIuZ2V0KChDPVtudWxsLAo5LDE2XSx0aGlzLk0pKS0oeisxKSx5KVtDWzFdXSgyNCxDWzBdLEopLFJbMTNdKDEyLE9bQ1sxXV0oMjQsdGhpcy5YKSxbSyxnW0NbMl1dKDg2LHRoaXMuaSksZ1tDWzJdXSg3MCx0aGlzLkEpXSl9LE9bMjFdKDUsbm4seDApLG5uLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBKPShLPUIuZ2V0KChDPVsxNiw1OSwxXSx0aGlzKS5NKS0oeitDWzJdKSx5KVs5XSgyMyxudWxsLEspLFJbMTNdKDEzLEhbMjVdKENbMV0sT1s5XSgxNywzMCksdGhpcy5YKSxbSixnW0NbMF1dKDcwLHRoaXMuVildKX0sTylbMjFdKDQsSmgseDApLEpoLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEs9KEM9WzEzLDksMTZdLEo9Qi5nZXQodGhpcy5NKS0oeisxKSx5W0NbMV1dKDI2LG51bGwsSikpLFIpW0NbMF1dKDgsT1tDWzFdXSgxNCwzMiksW0ssZ1tDWzJdXSgxNCx0aGlzLlYpXSl9LGdbN10oNSkpLCQxPXtsVzowLHZLOjI3OCxSZzo0MzgsUUM6MzQxfSwKUm49TmMoKSx0TD0oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChPWzIxXSg0LHpDLChMRC5wcm90b3R5cGUuUj0oTEQucHJvdG90eXBlLmw9KExELnByb3RvdHlwZS5zdHJpbmdpZnk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQz0oQT0oYj1nWzEyXSgodj1bNyw2LDBdLHZbMV0pLGdbMjZdKDI2LExSLkooKSwxKSkubmV4dCgpLnZhbHVlLEgpWzE1XSg0MCwxMSksSz1nW3ZbMF1dKDM5KSxnKVt2WzBdXSgzOCksSj1bSFs0NF0oNTEsYiksWVt2WzJdXSgyNCxLLE9bMjVdKDEsYiksT1syNV0oMSxBKSksdkkoQixBLGIseiksWVt2WzJdXSgyNCxDLHZbMl0sdlsyXSksSyxtWzEyXSg0MSxCLCIiKSxDXSxMUi5KKCkpLnYoYiksSn0sZnVuY3Rpb24oKXtyZXR1cm5bXX0pLExELnByb3RvdHlwZS5GPWZ1bmN0aW9uKCl7cmV0dXJuW119LGZ1bmN0aW9uKCl7fSksTEQpKSx6QykucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe3JldHVyblsoTj0KKHo9KHA9KGI9KEo9KFE9KEM9KFc9KHY9Z1sxMl0oNixrWzQyXSg0NSx0aGlzLCh4PShuPVs0ODksMTA1LDE5MV0sWzM0NiwicHEiLCJpIl0pLDExKSkpLEI9di5uZXh0KCkudmFsdWUsdikubmV4dCgpLnZhbHVlLEs9di5uZXh0KCkudmFsdWUsdikubmV4dCgpLnZhbHVlLFo9di5uZXh0KCkudmFsdWUsdikubmV4dCgpLnZhbHVlLHYubmV4dCgpKS52YWx1ZSx2Lm5leHQoKSkudmFsdWUsdi5uZXh0KCkudmFsdWUpLHYubmV4dCgpLnZhbHVlKSx2Lm5leHQoKS52YWx1ZSksQT10aGlzLmRlP1tSWzI3XSgyNSx0aGlzLmosdGhpcy52dix0aGlzLlYpLGdbNDhdKDI2LDgyNSxRKSxJKEIsSyxDLFEsdGhpcy5qKSxuZXcgSmgodGhpcy5udSx0aGlzLmopXTpbXSxnWzQ4XSgxOCw3OCx0aGlzW3hbMl1dKSksZ1s0OF0oMjYseFswXSx0aGlzLkkpLGdbNDhdKDEwLG5bMV0sdGhpcy5tKSxnWzQ4XSgyNiw4MDMsdGhpcy5IKSxnWzQ4XSgyNiw0NTIsdGhpcy5VKSxnWzQ4XSgxOCwxOTYwLHRoaXMuS3EpLApnWzQ4XSgxNiwxODYxLHRoaXMuVzEpLGdbNDhdKDI0LDgzNix0aGlzLlFlKSxnWzQ4XSgyNixuWzJdLHRoaXMuRyksZ1s0OF0oMTgsNjkwLHRoaXMuUyksZ1s0OF0oMTgsNTgzLHRoaXMud2IpLGdbNDhdKDE2LDE1Myx0aGlzLmlZKSxnWzQ4XSgyNCwyMTgsdGhpcy5kViksZ1s0OF0oMjYsblswXSx0aGlzLkQpLGdbNDhdKDE2LDEzMzUsdGhpcy5sWSksZ1s0OF0oMTgsNTEsdGhpcy5CKSxnWzQ4XSgyNCwxODg3LHRoaXMuSk8pLGdbNDhdKDE4LDE0MSx0aGlzLkwpLGdbNDhdKDE2LDMzMSx0aGlzLmZxKSxnWzQ4XSgyNiwxMzA4LHRoaXMuekopLGdbNDhdKDI2LDQwOCx0aGlzLkIxKSxnWzQ4XSgyNiwzMTMsdGhpcy5XKSxnWzQ4XSgyNiwzMDYsdGhpcy5QKSxnWzQ4XSgxNiw1Nyx0aGlzLlhnKSxnWzQ4XSgxNiwxNzg4LHRoaXMua0opLGdbNDhdKDI0LDU1Nyx0aGlzLm5xKSxnWzQ4XSgxMCwzNjIsdGhpc1t4WzFdXSksZ1s0OF0oMTYsMTgxNSx0aGlzLkUzKSxnWzQ4XSgyNiwzMDcsdGhpcy5NeSksCllbMTJdKDE4LHRoaXMuTSx0aGlzLkkpLHNnKHRoaXMuTSx0aGlzLk0pLGMkKHRoaXMuWCx0aGlzW3hbMl1dKSxjJCh0aGlzLkEsdGhpc1t4WzJdXSksSFs0NF0oNTUsdGhpcy5BTCksbVsxMl0oMzYsdGhpcy5vLDApLG1bMTJdKDQ4LHRoaXMuQywwKSxtWzEyXSg0MSxiLEMxKCkpLG1bMTJdKDM2LHAsWXooKSksZ1s0OF0oMjYsMTQwOSx6KSxnWzQ4XSgyNiwzMTMsTiksbVs5XSgyNCwwLGIsTix0aGlzLHosNTkwLHRoaXMuZyxwKSxtWzldKDIyLDAsYixOLHRoaXMseiwxNzA0LHRoaXMuWEMscCksbVs5XSgyNiwwLGIsTix0aGlzLHosMTUyNCx0aGlzLkRNLHApLFJbMjddKDI5LHRoaXMuSyx0aGlzLkJoLHRoaXMuViksZ1s0OF0oMjQsMTgxLEspLGdbNDhdKDEwLDYxNyxDKSxnWzQ4XSgxOCwyMDA0LFopLFlbMTJdKDMsQix0aGlzLlUpLFJbMTldKDQxLEssSyxCKSxJKEIsSyxDLFosdGhpcy5LKSxuZXcgSmgodGhpcy55QSx0aGlzLkspLEEsUlsyN10oMjYsSix0aGlzLk1qLHRoaXMuViksCmdbNDhdKDI0LDEzNCxXKSxtWzEyXSg0OCxCLDApLGMkKEosVyxKLEIpLEhbNDRdKDYzLEIpLEhbNDRdKDU0LFcpLEhbNDRdKDQzLEspLEhbNDRdKDQyLEMpLEhbNDRdKDU5LFopLEhbNDRdKDUxLFEpLEhbNDRdKDYzLEopLEhbNDRdKDU4LGIpLEhbNDRdKDQ3LHApLEhbNDRdKDQzLHopLEhbNDRdKDQ2LE4pXX0sekMucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCl7cmV0dXJuWyhWPShBPSh6PShuPShMPVsoZj0oYj0oSz0ocj0ocD0ocT0odj0oUD0oRT0oQj0oWj0oQz0oVz0oSj0oUT0oUz1nWzEyXSgzLChjPShkPVsyNSw3MiwzOF0sWzEwLDEsMF0pLGtbNDJdKDYyLHRoaXMsMTYpKSksUy5uZXh0KCkpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKSkudmFsdWUsUykubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSx4PVMubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKSkudmFsdWUsClMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksdT1TLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksTj1TLm5leHQoKS52YWx1ZSxYPVMubmV4dCgpLnZhbHVlLGE9Uy5uZXh0KCkudmFsdWUsZ1s3XSgzNikpLGdbN10oNikpLGcpWzddKDM2KSxnKVs3XSgzNyksZylbN10oZFsyXSksbSlbMTJdKGRbMl0sSixZRigpKSxtWzEyXSg0OCxXLFl6KCkpLEkoUSx0aGlzLkUzLFcsSiksSShDLHRoaXMuTSx0aGlzLlhnKSxwLEkoWixDLHRoaXMua0opLFJbMTldKDgseCx0aGlzLm5xLFopLFlbMF0oMjQscixPW2RbMF1dKDMseCksITApLFJbMTldKDY1LHgsdGhpcy5wcSxaKSxtWzEyXSg0NyxCLGNbMl0pLFJbMTldKDY1LEIsQix4KSxtWzEyXSg0MixFLGNbMl0pLFJbMTldKGRbMV0sUCx0aGlzLlcsUSksRFsxNF0oNjYsRSxbUlsxOV0oMSx2LEUsUSksa2wodSxCLHRoaXMuTXksdiksWVswXSgyNixLLE9bZFswXV0oOSx1KSwhMCksWVswXSgyOSxiLGNbMV0sY1sxXSksSyxtWzEyXSgzNiwKcSxjWzFdKSxSWzE5XSgxLHEscSx4KSxSWzE5XSg0MCxOLHEsdGhpcy5YKSxHWzI0XSgyNCxhLE9bZFswXV0oOSxFKSxjWzFdKSxtWzEyXSg5NixYLDQpLG1bMzNdKDE1LE4sWCxPW2RbMF1dKDMsYSkpLFlbMF0oMjgsZixjWzFdLGNbMV0pLGJdLFApLGYsWVswXSgyNyxwLGNbMV0sY1sxXSkscixIWzQ0XSg2MyxRKSxIWzQ0XSg1OSxXKSxIWzQ0XSg2MyxaKSxIWzQ0XSg2MixCKSxIWzQ0XSg1OCx2KSxIWzQ0XSg1MSxOKSxIWzQ0XSg2MyxhKV0sZ1sxMl0oMyxrWzQyXSg0Myx0aGlzLDMpKSksbi5uZXh0KCkudmFsdWUpLG4pLm5leHQoKS52YWx1ZSxuLm5leHQoKS52YWx1ZSksTCksWVsxMl0oMTgsQSx0aGlzLkcpLEdbMjRdKDEwLEosT1tkWzBdXSg5LHRoaXMuQyksY1sxXSksSShKLEEsdGhpcy53YixKKSxZWzQxXSg2OCx6LE9bZFswXV0oOSxKKSw0KSxZWzE1XSg2OCxKLE9bZFswXV0oMyx0aGlzLkMpLGNbMF0pLEdbMjRdKDI2LHosT1tkWzBdXSgxLHopLE9bZFswXV0oNSxKKSksCkkoeixBLHRoaXMuUyx6KSxjJChWLHRoaXMuaSx0aGlzLkEsdGhpcy5YLHRoaXMubyx6KSx0aGlzLnN0cmluZ2lmeShWLFYpLFJbNDZdKDE4LHRoaXMsVildfSx6Qy5wcm90b3R5cGUpLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1ope3RoaXMucHE9KCh0aGlzWyh0aGlzW3RoaXMuSD0oKHRoaXMuZnE9KHRoaXMuS3E9KCh0aGlzLkRNPSh0aGlzLlcxPSh0aGlzLnVZPSgodGhpc1soKCh0aGlzLmtKPSh0aGlzLlFlPSh0aGlzLlA9KCgoKCh0aGlzLkw9KHRoaXMud2I9KHRoaXMuVj0odGhpcy5VPSh0aGlzLmxZPSh0aGlzLkE9KHRoaXMuZFY9KHRoaXMuaVk9KEU9KE49KFE9KGY9KGZEPSh1PShWPShDPShKWT0oUD0oSz0oej0oTT0oak49KFo9KHg9KHY9KGIzPShhPShKPShoPShaRz0oc3c9KFU9KEE9KFM9KGQ9KGI9KHI9KG5EPSh3PSh0PQooWD0oQj1nWzEyXSgxMSx5W29aPVsiQyIsIlgiLCJJIl0sNDldKDMsdGhpcyw0MikpLEIpLm5leHQoKS52YWx1ZSxwPUIubmV4dCgpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxXPUIubmV4dCgpLnZhbHVlLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksTD1CLm5leHQoKS52YWx1ZSxCKS5uZXh0KCkudmFsdWUsbj1CLm5leHQoKS52YWx1ZSxCKS5uZXh0KCkudmFsdWUscT1CLm5leHQoKS52YWx1ZSx2OD1CLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksCno4PUIubmV4dCgpLnZhbHVlLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQikubmV4dCgpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsYz1CLm5leHQoKS52YWx1ZSxCOD1CLm5leHQoKS52YWx1ZSxaKSxqTiksdGhpcy5TPXEsWCkseiksYjMpLHRoaXMuaT1aRyxTKSx2OCksdGhpcy5CMT1WLFApLHRoaXMuTXk9QjgsdGhpcykuTT1wLHRoaXMpLm09Six0aGlzLkUzPWMsdGhpcykuaj1kLHRoaXMpLkI9ejgsdGhpcy5KTz1LLGZEKSxuKSx0aGlzLlc9dSxRKSx0aGlzKS5EPU0sdGhpcykuRz14LG9aKVsxXV09dCx0aGlzKS5vPXcsciksdGhpcy5YZz1mLHRoaXMuZz1BLHYpLHN3KSx0aGlzKS5BTD1XLEwpLEpZKSx0aGlzKS5YQz1VLGEpLG9aWzJdXT1oLHRoaXMubnE9Tix0aGlzLks9CmIsb1opWzBdXT1uRCx0aGlzKS56Sj1DLEUpfSx6Qy5wcm90b3R5cGUpLmw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgpe3JldHVyblsoRzg9KFE9KHQ9KE49KHc9KEo9KEE9KFhoPShNPShWPShCPShmRD0odjg9KHBEPShoPShmSz0oQz0obkQ9KFFxPShFPShaRz0oUz0ocD0oYkw9KElaPShhPShiMz0oVz0obj0odFk9KHY9WyhLPShLSz0oVT0oYz0oc3c9KFo9KFA9KGQ9KGpOPSh6PShSWj0oeD1nWzEyXSg5LChXOD0ocjA9WzE1LDUsMV0sWzQ0LDI2LDEwXSksa1s0Ml0oNjIsdGhpcyw5KSkpLHgpLm5leHQoKS52YWx1ZSxCOD14Lm5leHQoKS52YWx1ZSx4Lm5leHQoKS52YWx1ZSkseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSksCngubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSksbDM9eC5uZXh0KCkudmFsdWUsZ1s3XSg3KSksZ1s3XSgzNikpLGdbN10oMzkpKSxnWzddKDQpKSxYPWdbN10oNCksUlsxOV0oNzIsQjgsdGhpcy5pWSxSWikpLERbNDVdKDM1LE9bMjVdKDUsQjgpLHopLFlbMF0oMjcsYyxPWzI1XSgzLHopLDApLFlbMF0oMjksSyxyMFsyXSxyMFsyXSksYyxSWzE5XSg3MyxCOCx0aGlzLkQsUlopLERbNDVdKDIsT1syNV0oNyxCOCkseixPWzI1XSg1LHopKSxSWzE5XSg3MyxCOCx0aGlzLmRWLFJaKSxEWzQ1XSgxLE9bMjVdKDMsQjgpLHosT1syNV0oNSx6KSksUlsxOV0oMzMsQjgsdGhpcy5sWSxSWiksRFs0NV0oMixPWzI1XSgzLEI4KSx6LE9bMjVdKDUseikpLFJbMTldKDcyLEI4LHRoaXMuQixSWiksRFs0NV0oMzQsT1syNV0oNSxCOCkseixPWzI1XSg5LHopKSxSWzE5XSgzMyxqTix0aGlzLkwsUlopLG1bNF0oNCxSWixkKSxtWzEyXSg0MCxQLDApLEhbVzhbMF1dKDU4LFopLFUsWVswXSgyNCwKSyxPWzI1XSg5LGpOKSxPWzI1XSgzLFopKSxtWzBdKFc4WzJdLFgsMixPWzI1XSgxLFApKSxSWzE5XSg0MSxsMyx0aGlzLmZxLGpOKSxZWzEyXSgxOSxzdyx0aGlzLmkpLEkoc3csc3csdGhpcy56SixsMyksSShzdyxzdyx0aGlzLkIxLGQpLERbNDVdKDEsT1syNV0oMyxzdykseixPWzI1XSg1LHopKSxYLG1bNF0oMTQseixzdyksUlsxOV0oNzMsQjgsdGhpcy5pWSxqTiksRFs0NV0oMzIsT1syNV0oNSxCOCkseixPWzI1XSg3LHopKSxZWzBdKDI0LEtLLE9bMjVdKDcseiksT1syNV0oMSxzdykpLFlbMF0oMjgsSyxyMFsyXSxyMFsyXSksS0ssUlsxOV0oNDAsQjgsdGhpcy5ELGpOKSxEWzQ1XSgzMyxPWzI1XSgxLEI4KSx6LE9bMjVdKDUseikpLG1bNF0oNCxqTixkKSxSWzE5XSg2NCxqTix0aGlzLkwsak4pLEdbMjRdKDI0LFAsT1syNV0oNSxQKSxyMFsyXSksWVswXSgyNCxVLHIwWzJdLHIwWzJdKSxLLEhbVzhbMF1dKDU5LEI4KSxIW1c4WzBdXSg1MCxqTiksSFtXOFswXV0oNTAsZCksCkhbVzhbMF1dKDU1LGwzKV0sZylbMTJdKDcsa1s0Ml0oNjEsdGhpcyxyMFswXSkpLHRZLm5leHQoKS52YWx1ZSksbWw9dFkubmV4dCgpLnZhbHVlLHRZLm5leHQoKS52YWx1ZSksdFkubmV4dCgpLnZhbHVlKSxiPXRZLm5leHQoKS52YWx1ZSx0WS5uZXh0KCkpLnZhbHVlLHRZLm5leHQoKS52YWx1ZSksdFkubmV4dCgpLnZhbHVlKSx0WSkubmV4dCgpLnZhbHVlLHRZLm5leHQoKS52YWx1ZSksejg9dFkubmV4dCgpLnZhbHVlLHRZLm5leHQoKSkudmFsdWUsdFkpLm5leHQoKS52YWx1ZSx0WS5uZXh0KCkudmFsdWUpLEw9dFkubmV4dCgpLnZhbHVlLGcpWzddKDM5KSxnWzddKDYpKSxnWzddKDM2KSkscj1nWzddKDM3KSxbUlsxOV0oNjUsbWwsdGhpcy5XLHRoaXMuQSksUlsxNl0oMjgsYkwsT1syNV0oNyx0aGlzLm8pLE9bMjVdKDcsbWwpKSxHWzI0XShXOFsxXSxiTCxPWzI1XSg3LGJMKSxyMFsyXSksUlsxNl0oNTYsbWwsT1syNV0oNSxtbCksVzhbMl0pLGMkKFcsdGhpcy5pKSxjJChiMywKdGhpcy5pKSxZWzEyXSgyLGEsdGhpcy5JKSxzZyhiLGEpLHNnKGEsYSksSShJWix0aGlzLk0sdGhpcy5YZyksbkQsSShwLElaLHRoaXMua0opLFJbMTldKDgsUyx0aGlzLm5xLHApLFlbMF0oMjQsQyxPWzI1XSg1LFMpLCEwKSxSWzE5XSg0MCxTLHRoaXMucHEscCksbVsxMl0oOTYsejgscjBbMl0pLFJbMTldKDQxLHo4LHo4LFMpLG1bMTJdKDQwLFJaLDApLFJbMTldKDcyLFJaLFJaLFMpLEkoWixhLHRoaXMuSCx6OCxSWiksWVswXSgyOSxuRCxyMFsyXSxyMFsyXSksQyxtWzEyXSg5NyxaRywwKSxtWzEyXSgzNixQLDApLG1bMTJdKDM4LEUscjBbMl0pLERbMTRdKDM0LFpHLFtSWzE5XSg0MCxwLFpHLHRoaXMuQSksUlsxOV0oOSx6LFAscCksUlsxOV0oOCx6LHosdGhpcy5YKSxSWzE5XSg3Myx6LFAseiksUlsxOV0oMzMsUXEsRSxwKSxHWzI0XSgxNixRcSxPWzI1XSgzLFFxKSxPWzI1XSgzLFpHKSksR1syNF0oMjQsUXEsT1syNV0oMyxRcSksT1syNV0oMyxiTCkpLFlbMTVdKDY5LFFxLApPWzI1XSgxLHopLE9bMjVdKDMsUXEpKSxSWzE2XSgyOCx0aGlzLkMsT1syNV0oMyx0aGlzLkMpLE9bMjVdKDcsUXEpKV0sbWwpLG1bMTJdKDM5LFpHLDApLG1bMTJdKDQ3LEUsVzhbMl0pLEhbVzhbMF1dKDQyLFopLERbMTRdKFc4WzFdLFpHLFtHWzI0XShXOFsxXSxRcSxPWzI1XSgxLFpHKSxPWzI1XSg1LG1sKSksUlsxOV0oMzIscCxRcSx0aGlzLkEpLFJbMTldKDY0LHo4LFAscCksSShSWixhLHRoaXMubSx6OCksSShzdyxiLHRoaXMubSxSWiksWVswXSgyOSxmSyxPWzI1XSgzLHN3KSxPWzI1XSg1LFopKSxZWzBdKDI5LHIscjBbMl0scjBbMl0pLGZLLFJbMTldKDQxLHN3LHRoaXMuVyxiMyksUlsxOV0oOCxMLHo4LHRoaXMuWCksbVszM10oVzhbMF0sYjMsc3csT1syNV0oMSxMKSksSShuLGIsdGhpcy5ILFJaLHN3KSxyLG1bMzNdKDExLHAsUCxPWzI1XSg3LHN3KSksSShuLFcsdGhpcy5QLHApXSxFKSxtWzRdKDQsVyx0aGlzLkEpLG1bNF0oMTMsYjMsdGhpcy5YKSxtWzRdKDE0LGIsCnRoaXMuTSksSFtXOFswXV0oNTksVyksSFtXOFswXV0oNTUsYjMpLEhbVzhbMF1dKDYyLGIpLEhbVzhbMF1dKDU5LGEpLEhbVzhbMF1dKDU1LFJaKSxIW1c4WzBdXSg2MixMKV0pLHE9Z1sxMl0oOSxrWzQyXSg0Myx0aGlzLDEyKSksSlk9cS5uZXh0KCkudmFsdWUsdT1xLm5leHQoKS52YWx1ZSxvWj1xLm5leHQoKS52YWx1ZSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkudmFsdWUpLHEubmV4dCgpKS52YWx1ZSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkpLnZhbHVlLHEubmV4dCgpKS52YWx1ZSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkudmFsdWUpLFQ4PXEubmV4dCgpLnZhbHVlLGcpWzddKDcpLGcpWzddKDM4KSxnKVs3XSg2KSxnKVs3XSgzOCksZj1nWzddKDQpLGdbN10oNSkpLGdbN10oNCkpLHRoaXMpLk1qLFlbMTJdKDIsbix0aGlzLlUpLFJbMTldKDgsUlosdGhpcy5LcSxuKSxlWzddKDY0LHY4KSxZWzBdKDI4LEoscjBbMl0scjBbMl0pLHRoaXMuQmgsbVsxMl0oNDEsdjgsMCksClJbMTldKDgsdGhpcy5WLHY4LHRoaXMuViksa1syOV0oMjgscjBbMl0sdGhpcy5WLFJaLHRoaXMuVzEpLEhbVzhbMF1dKDU5LFopLFlbMF0oVzhbMV0sdEYsT1syNV0oNSxSWiksT1syNV0oNyxaKSksa1syOV0oMzEscjBbMl0sdGhpcy5WLHY4LHRoaXMuUWUpLFlbMF0oMjcsdEYsT1syNV0oOSx2OCksT1syNV0oMyxaKSksWVsxMl0oMTYsVDgsdGhpcy5HKSxJKHY4LFQ4LHRoaXMuUyx2OCksSixZWzBdKDI0LEc4LE9bMjVdKDcsUlopLE9bMjVdKDEsdGhpcy5BTCkpLG1bNF0oNSxSWix0aGlzLkFMKSxJKEpZLHRoaXMuTSx0aGlzLm0sUlopLEhbVzhbMF1dKDYyLG4pLFlbMF0oMjUsdyxPWzI1XSg3LEpZKSxPWzI1XSgxLG4pKSxZWzBdKDI1LE4scjBbMl0scjBbMl0pLHcsdixZWzE1XSg3Nyx6LE9bMjVdKDUseiksMUU2KSxHWzI0XSgxOCx6LE9bMjVdKDUseiksMUU2KSxZWzE1XSg3Myx6LE9bMjVdKDEseiksMUU2KSxSWzE5XSgzMix1LHRoaXMuRCxSWiksUlsxOV0oNzIsdSx1LHRoaXMuZyksCkdbMTRdKDE1LHUsT1syNV0oOSx1KSwwKSxSWzE5XSgxLG9aLHRoaXMubFksUlopLEdbMTRdKDMxLG9aLE9bMjVdKDksb1opLCIiKSxSWzE5XSg0MSxvWixvWix0aGlzLlhDKSxHWzE0XSg3LG9aLE9bMjVdKDksb1opLDApLFJbMTldKDcyLHBELHRoaXMuQixSWiksR1sxNF0oNyxwRCxPWzI1XSg5LHBEKSwiIiksUlsxOV0oOCxwRCxwRCx0aGlzLkRNKSxHWzE0XSgzMSxwRCxPWzI1XSg3LHBEKSwwKSxjJChMLHRoaXMuaSx6LHUsb1oscEQpLFJbMTldKDQxLEpZLHRoaXMuVyx0aGlzLlgpLEkobix0aGlzLlgsdGhpcy5QLEwpLEkobix0aGlzLk0sdGhpcy5ILFJaLEpZKSxZWzBdKDI5LHQscjBbMl0scjBbMl0pLE4sUlsxOV0oNjQsTCxKWSx0aGlzLlgpLG1bMTJdKDk3LFFxLDApLFJbMTldKDY1LHosUXEsTCksdCxjJChwLHRoaXMuaSxKWSx2OCksSShuLHRoaXMuQSx0aGlzLlAscCksR1syNF0oMTYsdGhpcy5vLE9bMjVdKDUsdGhpcy5vKSxyMFsyXSksR1syNF0oMTYsUXEsT1syNV0oNywKdGhpcy5vKSxPWzI1XSgzLHY4KSksWVsxNV0oNjksUXEsT1syNV0oMyx6KSxPWzI1XSgzLFFxKSksR1syNF0oVzhbMV0sdGhpcy5DLE9bMjVdKDUsdGhpcy5DKSxPWzI1XSg3LFFxKSksUlsxOV0oNjUsRSx0aGlzLlcsdGhpcy5BKSxtWzBdKDEzLEc4LE9bMjVdKDEsRSksMTcpLGgsRzgsSFtXOFswXV0oNjMsUXEpLEhbVzhbMF1dKDQ3LG4pLEhbVzhbMF1dKDU5LFJaKSxIW1c4WzBdXSg1NSxKWSksSFtXOFswXV0oNDcsdSksSFtXOFswXV0oNjMsb1opLEhbVzhbMF1dKDU0LHBEKSxIW1c4WzBdXSg1OSxMKSxIW1c4WzBdXSg1OCxwKSxIW1c4WzBdXSg1MSx6KSxIW1c4WzBdXSg2Myx2OCksa1sxN10oMzIpLHRoaXMudnYsbVsxMl0oOTYsdjgsMCksUlsxOV0oNzIsdGhpcy5WLHY4LHRoaXMuViksa1syOV0oMjcscjBbMl0sdGhpcy5WLGZELHRoaXMuVzEpLEkoSlksdGhpcy5NLHRoaXMubSxmRCksSFtXOFswXV0oNjIsbiksWVswXSgyNCxRLE9bMjVdKDksSlkpLE9bMjVdKDksbikpLFJbMTldKDksClYsSlksdGhpcy5YKSxSWzE5XSgzMixvWix0aGlzLlcsViksbVsxMl0oNDEscEQscjBbMV0pLG1bMF0oMTMsZixPWzI1XSgxLG9aKSxPWzI1XSg5LHBEKSksUlsxOV0oNjUsQixwRCxWKSxZWzBdKDI5LGYsT1syNV0oNSxCKSxPWzI1XSg1LG4pKSxHWzI0XSgxOCxCLE9bMjVdKDcsQikscjBbMl0pLG1bMzNdKDI4LFYscEQsT1syNV0oNyxCKSksWVswXSgyOSxRLHIwWzJdLHIwWzJdKSxmLG1bMzNdKDI5LFYscEQscjBbMl0pLFEsSFtXOFswXV0oNTAsZkQpLEhbVzhbMF1dKDYzLEpZKSxIW1c4WzBdXSg0MyxvWiksSFtXOFswXV0oNTUscEQpLEhbVzhbMF1dKDQ2LEIpLEhbVzhbMF1dKDQzLFYpLGtbMTddKDMyKSx0aGlzLmEwLGdbNDhdKDE4LDEyMzEsTSksYyQobixNLHRoaXMudVkpLEhbVzhbMF1dKDQ2LE0pLEhbVzhbMF1dKDYyLHRoaXMudVkpLGtbMTddKDMyKSx0aGlzLnlBLGdbNDhdKDE2LDE4MSxYaCksZ1s0OF0oVzhbMV0sNTQxLEEpLGdbNDhdKFc4WzJdLDIwMDQsb1opLFlbMTJdKDE2LApuLHRoaXMuVSksUlsxOV0oNzIsWGgsWGgsbiksSShuLFhoLEEsb1osdGhpcy5LKSxIW1c4WzBdXSg0NyxYaCksSFtXOFswXV0oNTAsQSksSFtXOFswXV0oNDMsb1opLEhbVzhbMF1dKDUwLG4pLGtbMTddKDM0KSx0aGlzLm51LGdbNDhdKDI0LDE4MSxYaCksZ1s0OF0oMjQsNTQxLEEpLGdbNDhdKDE4LDgyNSxvWiksWVsxMl0oMTcsbix0aGlzLlUpLFJbMTldKDQwLFhoLFhoLG4pLEkobixYaCxBLG9aLHRoaXMuaiksSFtXOFswXV0oNTgsWGgpLEhbVzhbMF1dKDUwLEEpLEhbVzhbMF1dKDU1LG9aKSxIW1c4WzBdXSg0MixuKSxrWzE3XSgzNSldfSxPKVsyMV0oNixMRixMRCksTEYpLnByb3RvdHlwZS5GPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm5bKEI9KEs9KHY9KHo9KEo9KEM9KEE9KGI9Z1sxMl0oMSwocD1bOCwiTSIsNDNdLGtbNDJdKDQxLHRoaXMsNikpKSxiLm5leHQoKS52YWx1ZSksYi5uZXh0KCkudmFsdWUpLGIubmV4dCgpKS52YWx1ZSxiLm5leHQoKS52YWx1ZSksCmIubmV4dCgpLnZhbHVlKSxiLm5leHQoKSkudmFsdWUsZ1s3XSg1KSksZylbNDhdKDI0LDEyMixBKSxZWzEyXSgxOSxDLEEpLEhbNDRdKDU0LEEpLGdbNDhdKDI2LDE5ODAsSiksUlsxOV0ocFswXSx6LEosQyksWVswXSgyNyxCLE9bMjVdKDUseiksT1syNV0oNSwyMDQ4KSksSSh6LEMsSiksSFs0NF0oNTAsSiksUlsyN10oMjksdGhpc1twWzFdXSx0aGlzLmksdGhpcy5WKSxnWzQ4XSgxNiwyMDEsdiksSSh6LHosdix0aGlzW3BbMV1dKSxIWzQ0XSg2Myx2KSxCLEhbNDRdKHBbMl0sQyksSFs0NF0oNTQseiksSFs0NF0oNTEsSyldfSxMRi5wcm90b3R5cGUudj1mdW5jdGlvbihCLHope3JldHVyblsoQj1nWzEyXSgoej1bNCw4MiwxXSx6KVswXSxrWzQyXSg0MCx0aGlzLHpbMl0pKS5uZXh0KCkudmFsdWUsbSlbelswXV0oMTIsdGhpcy5YLEIpLGtbMThdKDUzLEIsT1syNV0oNSxCKSksUls0Nl0oelsxXSx0aGlzLEIpLEhbNDRdKDQyLEIpXX0sTEYpLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIsCnosSyxKLEMpe3RoaXNbdGhpcy5WPSgoQj0oSj0oej0oSz1nWzEyXSg2LChDPVs0OSwiTSIsMl0seSlbQ1swXV0oQ1syXSx0aGlzLDMpKSxLKS5uZXh0KCkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEsubmV4dCgpLnZhbHVlKSx0aGlzKS5YPUosQiksQ1sxXV09en0sTEYpLnByb3RvdHlwZS5sPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtyZXR1cm4gcD0oTj0oQj0oWj0oQz0oYj0oej0odj0oUT0obj0oSz0oeD1bNDQsMywoQT1bMTAxMywxNDUyLDc4XSw0OCldLGdbMTJdKHhbMV0sa1s0Ml0oNDMsdGhpcywxMSkpKSxLLm5leHQoKSkudmFsdWUsSykubmV4dCgpLnZhbHVlLEsubmV4dCgpKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKSkudmFsdWUsSy5uZXh0KCkudmFsdWUpLFc9Sy5uZXh0KCkudmFsdWUsSj1LLm5leHQoKS52YWx1ZSxLKS5uZXh0KCkudmFsdWUsZ1s3XSgzNikpLFt0aGlzLmksCm1bMTJdKDM4LE4sMCksUlsxOV0oNDAsbixOLHRoaXMuViksWVswXSgyNCxwLE9bMjVdKDksbiksT1syNV0oNSwyMDQ4KSksZ1t4WzJdXSgxNiw4OTYsQyksUlsxOV0oNzMsUSxDLG4pLEhbeFswXV0oNTQsQyksZ1t4WzJdXSgyNixBWzFdLFopLFJbMTldKDcyLHYsWixuKSxIW3hbMF1dKDQyLFopLGdbeFsyXV0oMTgsNjMsQiksUlsxOV0oOSx6LEIsbiksSFt4WzBdXSg1MCxCKSxnW3hbMl1dKDI0LEFbMF0sVyksUlsxOV0oNzMsYixXLG4pLEhbeFswXV0oNTQsVyksZ1t4WzJdXSgyNixBWzJdLEopLGMkKHRoaXMuWCxKLFEsdix6LGIpLEhbeFswXV0oNjIsSikscCxIW3hbMF1dKDYzLE4pLEhbeFswXV0oNTksbiksSFt4WzBdXSg1MSxRKSxIW3hbMF1dKDYzLHYpLEhbeFswXV0oNTkseiksSFt4WzBdXSg0MixiKSxrWzE3XSgzNyldfSxPWzIxXSgxLFI4LExEKSxSOC5wcm90b3R5cGUpLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7cmV0dXJuIHg9KFc9KG49CihiPShDPShLPSh6PShRPShwPShKPSh2PShCPWdbKGY9WyhBPVs0MSw3OCw4NzFdLDEyKSw0Miw0NF0sZilbMF1dKDEsa1tmWzFdXSg0MCx0aGlzLDEzKSksTj1CLm5leHQoKS52YWx1ZSxaPUIubmV4dCgpLnZhbHVlLEIubmV4dCgpKS52YWx1ZSxCLm5leHQoKSkudmFsdWUsQikubmV4dCgpLnZhbHVlLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQikubmV4dCgpLnZhbHVlLEIubmV4dCgpKS52YWx1ZSxCLm5leHQoKSkudmFsdWUsW2dbNDhdKDEwLEFbMl0sTiksWVtmWzBdXSgxOCxaLE4pLEhbZlsyXV0oNTUsTiksUlsxM10oZlsxXSxIWzI1XSg1OSxPWzldKDMwLEFbMF0pLHYpLFtPWzI1XSg5LFopXSksZ1s0OF0oMjQsODMyLEopLFlbZlswXV0oMTgscCxKKSxIW2ZbMl1dKDYzLEopLEdbMTRdKDE1LHAsT1syNV0oMyxwKSwiIiksZ1s0OF0oMTAsMTQwOSxRKSxZW2ZbMF1dKDEseixRKSwKSFtmWzJdXSg2MyxRKSxnWzQ4XSgxOCwxMjksSyksSShDLHosSyxwKSxIW2ZbMl1dKDQzLEspLGdbNDhdKDI0LDMxMyxiKSxSWzE5XSg2NCxuLGIsQyksSFtmWzJdXSg1NCxiKSxnWzQ4XSgyNCxBWzFdLFcpLGMkKHgsVyx2LG4pLEhbZlsyXV0oNTAsVyksa1sxOF0oNTQseCxPWzI1XSgzLHgpKSxSWzQ2XSgxOCx0aGlzLHgpXX0sTylbMjFdKDMsSFIsTEQpLEhSLnByb3RvdHlwZSkuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe3JldHVybiBKPShCPSh6PShLPShwPSh2PShRPShBPShiPShDPWdbbj1bMjUsNTksM10sMTJdKDUsa1s0Ml0oNDcsdGhpcywxKSkubmV4dCgpLnZhbHVlLG1bMTJdKDQ0LHRoaXMuVywwKSksbVsxMl0oOTUsdGhpcy5BLHcyKCkpKSxtWzEyXSgzNix0aGlzLlgsdzIoKSkpLG1bMTJdKDQ4LHRoaXMuaSx3MigpKSksbVsxMl0oOTUsdGhpcy5NLHcyKCkpKSxSWzI3XSgyOSx0aGlzLkMsdGhpcy5tLHRoaXMuVikpLGcpWzQ4XSgyNCwyMDM0LEMpLE9bblswXV0oblsyXSwKdGhpcy5DKSksUlsxM10oMzksT1s5XSgxOSwxNiksW09bblswXV0oNSxDKSxnWzE2XSg3MCxCKV0pKSxbYixBLFEsdixwLEsseixKLEhbNDRdKG5bMV0sQyldfSxIUi5wcm90b3R5cGUuUj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7KHRoaXNbdGhpc1t6PShDPSh2PShCPShKPShBPShiPShLPWdbMTJdKDEseVs0OV0oNiwocD1bIkMiLCJXIiwiQSJdLHRoaXMpLDcpKSxLLm5leHQoKS52YWx1ZSksSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsSy5uZXh0KCkpLnZhbHVlLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsdGhpc1twWzBdXT1iLHRoaXMuaT1DLHRoaXMuVj1BLHBbMl1dPUIsdGhpcy5YPXYscFsxXV09Six0aGlzKS5NPXp9LEhSLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEope3JldHVyblsoSz0oQj1nWzEyXSgxMSxrWzQyXSgoSj1bNywiTSIsMjNdLDQzKSx0aGlzLDIpKSx6PUIubmV4dCgpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSwKR1sxNF0oSlsyXSx0aGlzLkEsT1syNV0oMSx0aGlzLkEpLHcyKCkpKSxHWzE0XSgzOSx0aGlzLlgsT1syNV0oNSx0aGlzLlgpLHcyKCkpLEdbMTRdKDE1LHRoaXMuaSxPWzI1XShKWzBdLHRoaXMuaSksdzIoKSksR1sxNF0oSlswXSx0aGlzW0pbMV1dLE9bMjVdKDUsdGhpc1tKWzFdXSksdzIoKSksZ1s0OF0oMjYsNzgseiksYyQoSyx6LHRoaXMuVyx0aGlzLkEsdGhpcy5YLHRoaXMuaSx0aGlzW0pbMV1dKSx0aGlzLnN0cmluZ2lmeShLLEspLFJbNDZdKDY2LHRoaXMsSyksSFs0NF0oNTEsSyksSFs0NF0oNjIseildfSxIUi5wcm90b3R5cGUubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscil7cmV0dXJuIEo9KHg9KFE9KEI9KEw9KE49KFc9KHo9KGY9KHA9KEE9KG49Z1taPSh2PShyPShDPVsxLDQwLDEyXSxbMiw1NSwwXSksW10pLHYuY29uY2F0KSwxMl0oMSxrWzQyXSg1OSx0aGlzLENbclswXV0pKSxiPW4ubmV4dCgpLnZhbHVlLG4ubmV4dCgpLnZhbHVlKSwKbi5uZXh0KCkpLnZhbHVlLG4ubmV4dCgpLnZhbHVlKSxuKS5uZXh0KCkudmFsdWUsbikubmV4dCgpLnZhbHVlLG4ubmV4dCgpLnZhbHVlKSxuKS5uZXh0KCkudmFsdWUsbi5uZXh0KCkudmFsdWUpLG4ubmV4dCgpLnZhbHVlKSxuLm5leHQoKS52YWx1ZSksbikubmV4dCgpLnZhbHVlLEs9W3RoaXMubSxHWzI0XSgyNCx0aGlzLlcsT1syNV0oMSx0aGlzLlcpLENbclsyXV0pLG1bMTJdKDk1LGYsclsyXSksUlsxOV0oNDEsYixmLHRoaXMuViksSFs0NF0oNTgsdGhpcy5WKSxnWzQ4XSgyNCwyMTQsQSksa1syOV0oMjYsQ1tyWzJdXSxiLHAsQSksSFs0NF0oNDcsQSksSFs0NF0oclsxXSxiKSxSWzE5XSg4LHRoaXMuQSxmLHApLG1bMTJdKDQ3LGYsQ1tyWzJdXSksUlsxOV0oNzIsSixmLHApLGdbNDhdKDI0LDgwLHopLGtsKFcsSix6KSxIWzQ0XSg2Mix6KSxIWzQ0XSg1OCxKKSxtWzEyXSg0NyxmLHJbMl0pLFJbMTldKDksVyxmLFcpLGdbNDhdKDEwLENbMV0sUSksa1syOV0oMjksQ1tyWzJdXSwKVyx0aGlzLmksUSksSFs0NF0oNTAsUSksZ1s0OF0oMTYsNDgwLE4pLGtsKEwsVyxOKSxIWzQ0XSg2MyxOKSxIWzQ0XSg0MixXKSxnWzQ4XSgxOCwxNjEsQiksa1syOV0oMjUsQ1tyWzJdXSxMLHRoaXMuWCxCKSxIWzQ0XShyWzFdLEIpLGdbNDhdKDEwLDE5LHgpLGtbMjldKDMwLENbclsyXV0sTCx0aGlzLk0seCksSFs0NF0oclsxXSx4KSxIWzQ0XSg0MixMKSxIWzQ0XSg2MixmKV0sWi5jYWxsKHYsZVszM10oMTksSykpfSxPWzIxXSg1LHZSLExEKSx2Ui5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtyZXR1cm5bKGI9KHg9KG49KFo9KHo9KFE9KHA9KEE9KEI9KHY9KEM9WzI5NiwoZj1bOTYsNTcsNDZdLDEwNCksIiJdLFc9a1s0Ml0oZlsxXSx0aGlzLDEyKSxLPWdbMTJdKDcsVyksSy5uZXh0KCkpLnZhbHVlLEo9Sy5uZXh0KCkudmFsdWUsSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxOPUsubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSwKSykubmV4dCgpLnZhbHVlLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLKS5uZXh0KCkudmFsdWUsZ1s0OF0oMTYsNDUyLHYpKSxZWzEyXSgzLHYsdiksZ1s0OF0oMjYsQ1sxXSxKKSxnWzQ4XSgxMCw0NDUsQiksSShBLHYsSixCKSxnWzQ4XSgyNCwzNjIsTiksUlsxOV0oNDAscCxOLEEpLEhbNDRdKDQzLE4pLEhbNDRdKDYyLEIpLGdbNDhdKDE4LDM1MSxuLG85KCkpLFJbMTNdKDc2LHgsT1syNV0oMSxuKSxoTygpKSxIWzQ0XSg0MyxuKSxtWzEyXSg0MSxiLENbMl0pLGdbNDhdKDEwLENbMF0sWiksSShwLHAsWix4LGIpLEhbNDRdKDUxLFopLEhbNDRdKDU4LHgpLG1bMTJdKGZbMF0seiwtNCksZ1s0OF0oMTgsMjgsUSksSShwLHAsUSx6KSxIWzQ0XSg0MyxRKSxSW2ZbMl1dKDgyLHRoaXMscCldfSxPWzIxXSg0LHJCLExEKSxyQikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6KXtyZXR1cm5bKEI9KHo9WzEyLDE4LDRdLApnW3pbMF1dKDEsa1s0Ml0oNjAsdGhpcywxKSkubmV4dCgpKS52YWx1ZSxtW3pbMl1dKHpbMF0sdGhpcy5NLEIpKSxrW3pbMV1dKDM2LEIsT1syNV0oNyxCKSksUls0Nl0oMTYsdGhpcyxCKSxIWzQ0XSg1NCxCKV19LHJCKS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVyblsocD0odj0oYj0oTj0oZj0oTD0obj0oeD0oQz0oQT0oVz0oUT0oSj0oej0oUD0oQj1bNTY3LDE1NSw3NzddLFswLDQyLDQxXSksZ1sxMl0oNSxrW1BbMV1dKFBbMl0sdGhpcywxNSkpKSxWPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKS52YWx1ZSksei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSx6KS5uZXh0KCkudmFsdWUscj16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLFo9ei5uZXh0KCkudmFsdWUsSz16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLAp6KS5uZXh0KCkudmFsdWUseikubmV4dCgpLnZhbHVlLGdbN10oNykpLGdbN10oMzkpKSxnWzQ4XSgxMCwzMDYsdGhpcy5YKSksZ1s0OF0oMTgsMTIyLFYpLFlbMTJdKDE3LEosViksSFs0NF0oNTgsViksZ1s0OF0oMTgsMTU1NixRKSxSWzE5XSg4LFcsUSxKKSxHWzE0XSgzMSxXLE9bMjVdKDEsVyksUFswXSksSFs0NF0oNTksUSksZ1s0OF0oMTYsQlsyXSxBKSxSWzE5XSg2NCxDLEEsSiksR1sxNF0oMTUsQyxPWzI1XSg5LEMpLFBbMF0pLEhbNDRdKDUwLEEpLGdbNDhdKDI2LDc4LGYpLGMkKHRoaXMuTSxmLFcsQyksSFs0NF0oNTUsZiksZ1s0OF0oMjQsQltQWzBdXSxyKSxSWzE5XShQWzJdLHgscixKKSxIWzQ0XSg1NSxyKSxIWzQ0XShQWzFdLE4pLFlbUFswXV0oMjQsdixPWzI1XSgzLHgpLE9bMjVdKDEsTikpLGdbNDhdKDI2LEJbMV0sbiksSShaLHgsbiksSFs0NF0oNTgsbiksWVtQWzBdXSgyOCx2LE9bMjVdKDUsWiksT1syNV0oNSxOKSksUlsyN10oMjUsdGhpcy5pLHRoaXMuVywKdGhpcy5WKSxSWzI3XSgzMCx0aGlzLkEsdGhpcy5DLHRoaXMuViksZ1s0OF0oMTYsMjAxLEspLEkoTCxaLEssdGhpcy5pLHRoaXMuQSksWVtQWzBdXSgyOCxwLDEsMSksdixtWzEyXSg0OCxiLFBbMF0pLEkoYix0aGlzLk0sdGhpcy5YLGIpLEhbNDRdKDU0LGIpLHAsSFs0NF0oNjIsSiksSFs0NF0oNTUseCksSFs0NF0oNDcsWiksSFs0NF0oUFsxXSxLKSxIWzQ0XSg2MyxMKSxIWzQ0XSg1NCxOKV19LHJCLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuWyhKPVsoSz0oQT1bKHY9KEI9KHo9Z1sxMl0oMTEsa1twPVsxLDQyLDU4XSxwWzFdXSg2MCx0aGlzLDQpKSxiPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKS52YWx1ZSksQz16Lm5leHQoKS52YWx1ZSx0aGlzKS5XLG1bMTJdKDQwLGIsMCksUlsxOV0oMzIsQixiLHRoaXMuViksZ1s0OF0oMjQsNDU1LHYpLFJbMTldKHBbMF0sQyx2LEIpLEhbNDRdKDU0LHYpLEdbMTRdKDIzLApDLE9bMjVdKDcsQyksLTIpLEkoYix0aGlzLk0sdGhpcy5YLEMpLEhbNDRdKDU0LGIpLEhbNDRdKHBbMl0sQiksSFs0NF0oNDYsQyksa1sxN10oMzcpXSxnWzEyXSgxMSxrW3BbMV1dKHBbMl0sdGhpcyxwWzBdKSkubmV4dCgpLnZhbHVlKSx0aGlzKS5DLG1bMTJdKDQ4LEssLTEpLEkoSyx0aGlzLk0sdGhpcy5YLEspLEhbNDRdKDUwLEspLGtbMTddKDMzKV0sQSksSl19LHJCKS5wcm90b3R5cGUuUj1mdW5jdGlvbihCLHosSyxKLEMsYixBKXsoKHRoaXMuTT0oKHRoaXNbKHo9KEI9KGI9KEM9KEo9Z1sxMl0oKEE9WzYsIlgiLCJWIl0sNCkseVs0OV0oQVswXSx0aGlzLDUpKSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEs9Si5uZXh0KCkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEopLm5leHQoKS52YWx1ZSxBKVsyXV09Syx0aGlzKS5BPXosYiksdGhpcylbQVsxXV09Qix0aGlzKS5pPUN9LE8pWzIxXSgzLFZqLExEKSxWaikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSiwKQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSl7cmV0dXJuIEM9KFg9KFc9KHg9KE09KGE9KG49KEo9KHY9KGI9KEI9KHE9KEw9KHA9KFA9KGY9KGQ9KGM9KHo9KEU9KHI9KGg9KHU9KFo9KE49KFY9KEs9KFM9Z1sxMl0oMyxrWzQyXSg0MSx0aGlzLChBPShVPVs0NiwyNSwzM10sWzIwMjEsNDUyLDI2XSksQVsyXSkpKSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKSkudmFsdWUsUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMubmV4dCgpKS52YWx1ZSx0PVMubmV4dCgpLnZhbHVlLFE9Uy5uZXh0KCkudmFsdWUsUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSwKUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLGdbN10oMzcpKSxnKVs3XSgzNyksZ1s3XSgzNykpLFtIWzQ0XSg1NCx4KSxtWzEyXSg0OCxuLEowKCkpLGdbNDhdKDE4LEFbMV0sSyksWVsxMl0oMTksVixLKSxIWzQ0XSg1MCxLKSxnWzQ4XSgxOCwxNDQ5LE4pLGdbNDhdKDI0LEFbMF0sWiksSSh1LFYsTixaKSxIWzQ0XSg0MyxWKSxIWzQ0XSg0MyxOKSxIWzQ0XSg0NyxaKSxZWzBdKDI5LFcsT1tVWzFdXSg1LHUpLE9bVVsxXV0oOSx4KSksZ1s0OF0oMTYsMjIsaCksZ1s0OF0oMTYsMjIzLHIpLEkoRSx1LGgsciksSFs0NF0oNDIsdSksSFs0NF0oNDIsaCksSFs0NF0oNjIsciksWVswXSgyNixXLE9bVVsxXV0oNyxFKSxPW1VbMV1dKDcseCkpLGdbNDhdKDE4LDc2NyxmKSxJKFAsRSxmKSxIWzQ0XShVWzBdLGYpLGdbNDhdKDI0LDMxMyxwKSwKUlsxOV0oNjUsTCxwLFApLEhbNDRdKDUwLFApLEhbNDRdKDU5LHApLGdbNDhdKDI2LDQyNCx6KSxnWzQ4XSgxOCwyODUsYyksSShkLEUseixjKSxIWzQ0XSg1NSx6KSxIWzQ0XSg1MSxjKSxZWzBdKDI0LFgsT1tVWzFdXSgxLGQpLE9bVVsxXV0oMSx4KSksZ1s0OF0oMjYsNjg2LHQpLGdbNDhdKDE4LDQ1NyxRKSxSWzE5XSg3MixxLFEsZCksSShCLEUsdCxxKSxIWzQ0XSg1NCxRKSxIWzQ0XSg1MCxxKSxnWzQ4XSgyNCwyMDI1LGIpLFJbMTldKFVbMl0sdixiLGQpLEkoSixFLHQsdiksSFs0NF0oNTUsYiksSFs0NF0oNTUsdiksSFs0NF0oNDcsdCksSFs0NF0oNDcsZCksWVswXSgyNCxDLDEsMSksWCxtWzRdKDUsbixCKSxtWzRdKDEyLG4sSiksWVswXSgyNixDLDEsMSksVyxtWzRdKDEzLG4sQiksbVs0XSgxMixuLEopLG1bMTJdKDk2LEwsMCksQyxnWzQ4XSgxMCw3OCxhKSxjJChNLGEsQixKLEwpLEhbNDRdKDUxLGEpLGtbMThdKDM0LE0sT1tVWzFdXSgxLE0pKSxSW1VbMF1dKDgwLHRoaXMsCk0pXX0sT1syMV0oNSxPRSxMRCksT0UucHJvdG90eXBlKS5GPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuWyhCPSh6PWdbMTJdKDExLChLPVsxMTEwLDI4LChDPVsiVSIsMzA2LCJHIl0sMTAwNCldLGtbNDJdKDYzLHRoaXMsMikpKSx6Lm5leHQoKSkudmFsdWUsSj16Lm5leHQoKS52YWx1ZSxnWzQ4XSgyNCw3OCx0aGlzLmkpKSxnWzQ4XSgyNiw0NTIsdGhpcy5nKSxnWzQ4XSgxMCwzMTcsdGhpcy5pWSksZ1s0OF0oMjYsNDM2LHRoaXMuQUwpLGdbNDhdKDI0LDgzNix0aGlzLnVZKSxnWzQ4XSgxOCwxOTEsdGhpcy5TKSxnWzQ4XSgxNixLWzBdLHRoaXMuWGcpLGdbNDhdKDE2LDMxMyx0aGlzLlApLGdbNDhdKDE4LENbMV0sdGhpc1tDWzJdXSksZ1s0OF0oMTYsNjg5LHRoaXMuQiksbVsxMl0oOTYsSiwhMCksT1s0OF0oNzIsdGhpcy5rSixPWzI1XSg3LEopLCIiKSxnWzQ4XSgxNiwzOTksdGhpcy5qKSxnWzQ4XSgxOCxLWzJdLHRoaXMuSCksZ1s0OF0oMjQsOTMzLHRoaXMuSyksZ1s0OF0oMTAsCjIzOSx0aGlzLkQpLGdbNDhdKDEwLDMyMix0aGlzLm5xKSxnWzQ4XSgxNiw2NjAsdGhpcy5tKSxnWzQ4XSgyNiwxNDEsdGhpcy5JKSxnWzQ4XSgyNiwxOTUsdGhpcy5MKSxnWzQ4XSgxMCxLWzFdLHRoaXMubFkpLGdbNDhdKDEwLDEzNCx0aGlzLkMpLG1bMTJdKDQ3LHRoaXMuQSwwKSxtWzEyXSg0NCx0aGlzLm8sLTEpLG1bMTJdKDM4LHRoaXNbQ1swXV0sLTEpLGMkKHRoaXMuWCx0aGlzLmkpLFJbMjddKDMxLHRoaXMuVyx0aGlzLnBxLHRoaXMuViksbVsxMl0oNDIsQiw1MDApLGMkKHRoaXMuTSx0aGlzLkMsdGhpcy5XLEIpLG5ldyBKaCh0aGlzLlcxLEIpLEhbNDRdKDUwLEIpXX0sT0UucHJvdG90eXBlKS52PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuW2MkKCh6PShCPShKPShLPWdbQz1bMTIsNTAwLDQ1XSxDWzBdXSg2LGtbNDJdKENbMl0sdGhpcywzKSksSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKS52YWx1ZSksSiksdGhpcy5pLHRoaXMuWCksdGhpcy5zdHJpbmdpZnkoSiwKSiksYyQodGhpcy5YLHRoaXMuaSksbVtDWzBdXSg5Nyx0aGlzLkEsMCksbVtDWzBdXSg0MCx0aGlzLm8sLTEpLG1bQ1swXV0oNDQsdGhpcy5VLC0xKSxnWzQ4XSgxMCw2OTYsQiksYyQoeixCLHRoaXMuTSksbVtDWzBdXSg0NCx6LENbMV0pLGMkKHRoaXMuTSx0aGlzLkMsdGhpcy5XLHopLEhbNDRdKDU4LEIpLEhbNDRdKDYzLHopLFJbNDZdKDgwLHRoaXMsSildfSxPRSkucHJvdG90eXBlLmw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEpe3JldHVybiBVPShXPShCPSh2PShCOD0oUD0ocD0oSj0oUz0obkQ9KGI9KEpZPShWPShNPShMPShaPShaRz0ocj1nWzEyXSgzLChFPShLPWdbYjM9Z1s3XSgoak49ZnVuY3Rpb24oVDgsbWwsRzgpe3JldHVybltSWzEzXSg3NyxXLE9bMjVdKDMsKEc4PShtbD1bMiwwLDFdLFs1LDEyLDEwXSksejgubnEpKSwKaE8oKSksSShTLFMsejguRCxXKSxtW0c4WzFdXSgzOSxmLG1sWzFdKSxSWzE5XSgzMix4LGYsUyksYyQoeCx6OC5tLHgpLG1bRzhbMV1dKDk3LGYsbWxbMl0pLFJbMTldKDQwLFgsZixTKSxjJChYLHo4Lm0sWCksbVtHOFsxXV0oNDcsZixtbFswXSksUlsxOV0oMSxoLGYsUyksYyQoaCx6OC5tLGgpLFlbNDFdKDIyLEIsT1syNV0oMSxYKSxtbFswXSksbVswXSgxNSxUOCxPWzI1XSg3LHgpLE9bMjVdKEc4WzBdLEIpKSxZWzQxXSg2OCxCLE9bMjVdKEc4WzBdLGgpLG1sWzBdKSxtWzBdKDgsVDgsT1syNV0oMSx4KSxPWzI1XSg3LEIpKSxHWzI0XSgyNix2LE9bMjVdKEc4WzBdLHgpLE9bMjVdKEc4WzBdLFgpKSxHWzI0XShHOFsyXSx2LE9bMjVdKDksdiksT1syNV0oMSxoKSksbVswXSgxNSxUOCxPWzI1XSg5LHYpLE9bMjVdKDcsQjgpKSxtWzBdKDE0LFQ4LE9bMjVdKEc4WzBdLFApLE9bMjVdKDksdikpLG1bRzhbMV1dKDM2LEMsITApXX0sMzgpKSw3XSgzOCksUT1nWzddKDUpLGQ9KHU9CmdbN10oMzYpLGcpWzddKDUpLHo4PXRoaXMsUXE9WyJvIiwyLDQ0XSx2OD0oYT0oej1nWzddKDcpLGcpWzddKDYpLFsxLCh3PWdbN10oMzkpLHN3PWdbN10oNyksMCksITBdKSxnWzddKChuPWdbN10oNSksTj1nWzddKDYpLDUpKSksa1s0Ml0oNDAsdGhpcywyOCkpKSxjPXIubmV4dCgpLnZhbHVlLHQ9ci5uZXh0KCkudmFsdWUscT1yLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLG9aPXIubmV4dCgpLnZhbHVlLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIubmV4dCgpLnZhbHVlKSxmRD1yLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsZj1yLm5leHQoKS52YWx1ZSx4PXIubmV4dCgpLnZhbHVlLFg9ci5uZXh0KCkudmFsdWUsaD1yLm5leHQoKS52YWx1ZSxDPXIubmV4dCgpLnZhbHVlLHIubmV4dCgpKS52YWx1ZSxyLm5leHQoKS52YWx1ZSksCnIubmV4dCgpLnZhbHVlKSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsQT1yLm5leHQoKS52YWx1ZSxbdGhpcy5wcSxHWzI0XSgxOCx0aGlzLkEsT1syNV0oNSx0aGlzLkEpLHY4WzBdKSxZWzEyXSgxOCx0LHRoaXMuZyksSShxLHQsdGhpcy5pWSx0aGlzLkFMKSxSWzE5XSg5LFosdGhpcy5QLHEpLFlbMTJdKDE3LE0sdGhpcy5TKSxtWzEyXSgzNixWLDEwKSxtWzEyXSgzNixKWSx2OFsxXSksbVsxMl0oNDcsYix2OFsxXSksbVsxMl0oNDIsSix2OFsxXSksSShWLE0sdGhpcy5YZyxaLFYpLERbMTRdKDY2LEpZLFtSWzE5XSg3MyxaRyxKWSxxKSxSWzE5XSgxLGZELHRoaXMuQixaRyksWVswXSgyNixFLE9bMjVdKDUsZkQpLE9bMjVdKDksdGhpcy5rSikpLFlbMF0oMjYsZCx2OFswXSx2OFswXSksRSxHWzI0XSgxMCxiLE9bMjVdKDEsYiksdjhbMF0pLGQsYyQobkQsdGhpcy5qLFpHKSxtWzEyXSg5NSxwLFFxWzFdKSxtWzEyXSg0OCwKUCw2MDApLG1bMTJdKDk2LEI4LDMwKSxtWzEyXSg0OCxDLCExKSxSWzE5XSg2NSxTLHRoaXMuSyxuRCksak4oSyksSyxZWzBdKDI1LFEsT1syNV0oNSxDKSx2OFtRcVsxXV0pLFJbMTldKDEsUyx0aGlzLkgsbkQpLGpOKGIzKSxiMyxZWzBdKDI1LFEsT1syNV0oMyxDKSx2OFtRcVsxXV0pLFJbMTldKDMzLFpHLHRoaXMuSSxaRyksYyQobkQsdGhpcy5qLFpHKSxSWzE5XSg2NCxTLHRoaXMuSyxuRCksak4odyksdyxZWzBdKDI5LFEsT1syNV0oMSxDKSx2OFtRcVsxXV0pLFJbMTldKDY1LFMsdGhpcy5ILG5EKSxqTih6KSx6LFlbMF0oMjYsUSxPWzI1XSg5LEMpLHY4W1FxWzFdXSksWVswXSgyNCxOLHY4WzBdLHY4WzBdKSxRLEdbMjRdKDI2LEosT1syNV0oMyxKKSx2OFswXSksTl0sViksWVswXSgyNSxuLE9bMjVdKDEsYiksT1syNV0oNyx0aGlzW1FxWzBdXSkpLFlbMF0oMjcsdSx2OFswXSx2OFswXSksbixZWzBdKDI4LGEsT1syNV0oMyxKKSxPWzI1XSg1LHRoaXMuVSkpLHUsbVs0XSgxMiwKYix0aGlzW1FxWzBdXSksbVs0XSg0LEosdGhpcy5VKSxlWzddKDY2LGMpLGMkKG9aLHRoaXMuaSxjLGIsSiksSSh0LHRoaXMuWCx0aGlzLkcsb1opLFJbMTldKDY0LEIsdGhpcy5QLHRoaXMuWCksbVswXSgxMixhLE9bMjVdKDcsQiksMTEpLG1bMTJdKDk2LFUsNSksbVsxMl0oMzksQSwzKSxJKEIsdGhpcy5YLHRoaXMuTCxVLEEpLGEsWVs0MV0oMjEsQiw1MDAsT1syNV0oNSx0aGlzLkEpKSxjJCh0aGlzLk0sdGhpcy5DLHRoaXMuVyxCKSxIW1FxWzJdXSg0Nix0KSxIW1FxWzJdXSg1MSxxKSxIW1FxWzJdXSg1NSxjKSxIW1FxWzJdXSg0NixvWiksSFtRcVsyXV0oNDMsWkcpLEhbUXFbMl1dKDQyLFopLEhbUXFbMl1dKDU4LE0pLEhbUXFbMl1dKDU1LFYpLEhbUXFbMl1dKDQyLEpZKSxIW1FxWzJdXSg0NixmRCksSFtRcVsyXV0oNTEsYiksSFtRcVsyXV0oNTEsbkQpLEhbUXFbMl1dKDU5LFMpLEhbUXFbMl1dKDUwLEopLEhbUXFbMl1dKDYyLGYpLEhbUXFbMl1dKDQzLHgpLEhbUXFbMl1dKDUxLApYKSxIW1FxWzJdXSg2MixoKSxIW1FxWzJdXSg0MixDKSxIW1FxWzJdXSg0MyxwKSxIW1FxWzJdXSg1MCxQKSxIW1FxWzJdXSg1OCxCOCksSFtRcVsyXV0oNTksdiksSFtRcVsyXV0oNDMsQiksSFtRcVsyXV0oNjMsVyksc3csa1sxN10oMzQpLHRoaXMuVzEsZ1s0OF0oMTAsNjk2LEwpLGMkKHQsTCx0aGlzLk0pLEhbUXFbMl1dKDUxLEwpLEhbUXFbMl1dKDU4LHRoaXMuTSksa1sxN10oMzUpXX0sT0UucHJvdG90eXBlLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgpe3RoaXMuST0odGhpcy5BTD0odGhpcy5pWT0oKHRoaXMuWD0odGhpcy5EPSh0aGlzLlY9KHRoaXNbKHRoaXNbKCh0aGlzLlc9KHRoaXMuRz0odGhpcy51WT0oKHRoaXMuaT0oKHRoaXMuTD0oKHRoaXMubz0oKHRoaXMubT0oVj0odD0oWj0oQT0oZD0oVz0oSz0odT0oZj0ocD0oQj0oQz0oUz0ocT0oTj0oej0ocj0oYz0oTD0oUD0oeD0oUT0oRT0KKEo9Z1sxMl0oMTEseVs0OV0oNSx0aGlzLChoPVsiUCIsImtKIiwiZyJdLDI4KSkpLEoubmV4dCgpKS52YWx1ZSxKKS5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKS52YWx1ZSksdj1KLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpKS52YWx1ZSxKLm5leHQoKS52YWx1ZSksSi5uZXh0KCkudmFsdWUpLEopLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsbj1KLm5leHQoKS52YWx1ZSxhPUoubmV4dCgpLnZhbHVlLGI9Si5uZXh0KCkudmFsdWUsWD1KLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpKS52YWx1ZSxKLm5leHQoKS52YWx1ZSksSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpKS52YWx1ZSxKKS5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLAp1KSx0aGlzKS5TPU4sZCksdGhpcykuSz1CLFopLHRoaXMpLmo9Yix0aGlzLkM9VixMKSx0aGlzKS5YZz1xLHopLEMpLHRoaXMubFk9dCx0aGlzLkI9bix0aGlzLm5xPWYseCksdGhpcylbaFsyXV09dix0aGlzKS5NPVEsaFswXV09Uyx0aGlzKS5BPVcsaFsxXV09YSxQKSx0aGlzLlU9QSxwKSxFKSx0aGlzKS5IPVgsYyksciksSyl9LE9bMjFdKDUsVEMsTEQpLFRDLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4LGpOLFpHLG5ELHY4LGZELG9aLFFxLFQ4LG1sLEc4LHBELEtLLGZLLHRZLGwzLHIwLFhoLGJMLFJaLElaLFc4LHZvLHUzKXtyZXR1cm4gWkc9KEo9Wyh2PShzdz0obkQ9KGZLPSh0PShkPSh0WT1bKGI9WyhQPVsocD0oTD0oeD0oTT0oQT0odjg9KHE9KHc9KFE9KEI9KHo4PShRcT0oaD0oWj0obj0oVj0oS0s9KGE9KGIzPShVPShiTD0oRT0oTj0KKEpZPSh2bz0oQz0oZkQ9KFc9KHo9KFhoPShmPShqTj0oVDg9KFJaPShwRD0oQjg9KFM9KG1sPWtbNDJdKDYzLCh1Mz1bMTksITAsKGM9WzAsITEsMV0sMTApXSx0aGlzKSw0MiksZ1sxMl0oNixtbCkpLFMubmV4dCgpLnZhbHVlKSxTKS5uZXh0KCkudmFsdWUsUy5uZXh0KCkpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxLPVMubmV4dCgpLnZhbHVlLElaPVMubmV4dCgpLnZhbHVlLFMubmV4dCgpKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksdT1TLm5leHQoKS52YWx1ZSxsMz1TLm5leHQoKS52YWx1ZSxHOD1TLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxyMD1TLm5leHQoKS52YWx1ZSxTLm5leHQoKSkudmFsdWUsUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSwKUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksWD1TLm5leHQoKS52YWx1ZSxvWj1TLm5leHQoKS52YWx1ZSxTKS5uZXh0KCkudmFsdWUsUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLFMpLm5leHQoKS52YWx1ZSxTKS5uZXh0KCkudmFsdWUsUy5uZXh0KCkpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTKS5uZXh0KCkudmFsdWUsUykubmV4dCgpLnZhbHVlLFc4PVMubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxbZ1s0OF0oMjQsNDUyLEI4KSxZWzEyXSgxLEI4LEI4KSxnWzQ4XSh1M1syXSwxODEscEQpLFJbdTNbMF1dKDczLHBELHBELEI4KSxnWzQ4XSgxOCwxMTIsUlopLFJbdTNbMF1dKDEsUlosUloscEQpLGdbNDhdKDI2LDI4LHZvKSxtWzEyXSg0OCxxLGNbMF0pLG1bMTJdKDk3LHY4LDVFMyksSShSWixSWix2byxxLHY4KSxnWzQ4XSgyNCw0MTYsVDgpLG1bMTJdKDQ0LEssCklSKCkpLEkoSVosUlosVDgsSyksSFs0NF0oNDcsSyldKSxnKVs3XSgzNiksZylbN10oNiksbVsxMl0oNDcsVzgsY1sxXSkpLFJbdTNbMF1dKDY1LHY4LFcsSVopLG1bMTJdKDQ0LE0sMTAwKSxtWzEyXSg0NyxBLGNbMF0pLEkoTSx2OCx2byxBLE0pLG1bMzNdKDQyLElaLFcsT1syNV0oOSxNKSksUlt1M1swXV0oNDAsdjgsRzgsdjgpLFlbMF0oMjksTCxPWzI1XSgxLHY4KSxPWzI1XSg5LEEpKSxtWzEyXSg5NyxBLGNbMl0pLFlbMF0oMjYsTCxPWzI1XSgxLHY4KSxPWzI1XSg3LEEpKSxtWzEyXSgzNixBLDIpLFlbMF0oMjcsTCxPWzI1XSgxLHY4KSxPWzI1XSgzLEEpKSxtWzEyXSg0MSxXOCx1M1sxXSksTCxZWzBdKDI1LHAsT1syNV0oMyxXOCksT1syNV0oNyxmRCkpLEkoTSxJWixRLFcscSksUlsxNl0oNjAsVyxPWzI1XSgxLFcpLGNbMl0pLFJbMTZdKDU4LGwzLE9bMjVdKDUsbDMpLGNbMl0pLHBdLG1bMTJdKDk2LFcsY1swXSkpLG1bMTJdKDQ3LHEsY1syXSksbVsxMl0oNDAsZkQsdTNbMV0pLAptWzEyXSgzOCxDLGNbMV0pLGdbNDhdKDE2LDE5NSxRKSxnWzQ4XSgyNiwzMTMsRzgpLFJbdTNbMF1dKDgsbDMsRzgsSVopLERbMTRdKDM0LFcsUCxsMyksSFs0NF0oNTksUSldLFJbdTNbMF1dKDczLGpOLFcsSVopKSxJKFhoLHosZixqTiksbVszM10oMTYsdSxXLE9bMjVdKDksWGgpKV0sW0kodSxJWix2byksbVsxMl0oNDQsVyxjWzBdKSxnWzQ4XSgxNiwzMzgsZiksUlt1M1swXV0oNDEsbDMsRzgsSVopLGdbNDhdKDE4LDQyMix6KSxSWzEzXSg3NSx6LE9bMjVdKDcseikseXYoKSksRFsxNF0oNjYsVyx0WSxsMyldKSxnKVs3XSg2KSxbUlt1M1swXV0oMzMsak4sYkwsSlkpLEkocSxVLGYsak4pLFlbMF0oMjUsdCxPWzI1XSg1LHEpLE9bMjVdKDksQykpLG1bMTJdKDQyLEUsdTNbMV0pLHRdKSxnWzddKDM5KSksW1JbdTNbMF1dKDMzLGpOLGJMLEpZKSxJKHEsYjMsZixqTiksWVswXSgyOSxuRCxPWzI1XSg1LHEpLE9bMjVdKDksQykpLG1bMTJdKDM4LHIwLHUzWzFdKSxuRF0pLHI9Z1s3XSg0KSwKZ1s3XSg1KSksUilbdTNbMF1dKDcyLGpOLFcsdSksWVswXSgyNixyLE9bMjVdKDksak4pLE9bMjVdKDEsQykpLFJbMTZdKDYwLHEsT1syNV0oMyxXKSwzKSxtWzEyXSgzOSx2OCxjWzBdKSxJKG4sVixYLHY4LHEpLEdbMjRdKDE4LHEsT1syNV0oMSxXKSw0KSxJKFosVixvWixsMyxxKSxJKEpZLElaLHZvLG4sWiksUlt1M1swXV0oMSxOLEc4LEpZKSxtWzEyXSg0MixFLGNbMV0pLG1bMTJdKDk1LGJMLGNbMF0pLGdbNDhdKDI2LDkwLFUpLFJbMTNdKDc4LFUsT1syNV0oNyxVKSx5digpKSxEWzE0XSg2NixiTCxmSyxOKSxIWzQ0XSg1MSxVKSxSWzE2XSg2MCxxLE9bMjVdKDcsVyksNCksbVsxMl0oMzYsdjgsY1swXSksSShuLFYsWCx2OCxxKSxJKEpZLElaLHZvLG4sVyksUlt1M1swXV0oNDAsTixHOCxKWSksbVsxMl0oOTYscjAsY1sxXSksbVsxMl0oNDQsYkwsY1swXSksbVsxMl0oNDEsQSwxMDApLGdbNDhdKHUzWzJdLDE0OSxiMyksUlsxM10oNzMsYjMsT1syNV0oNSxiMykseXYoKSksCkRbMTRdKDI2LGJMLHN3LE4pLEhbNDRdKDU4LGIzKSxnMFs1XSgzNiwyNSxyMCxPWzI1XSg3LHIwKSksT1s0OF0oMywyMyxxLE9bMjVdKDMsRSksT1syNV0oMSxyMCkpLFlbMF0oMjgsdixPWzI1XSg1LHEpLE9bMjVdKDcsQykpLFJbdTNbMF1dKDgsUXEsVyxJWiksSShRcSxRcSx6OCx6KSxtWzEyXSg0MCxxLGNbMF0pLFJbdTNbMF1dKDQwLFFxLHEsUXEpLEkocSxKWSx3LFFxKSxJKHEsaCxCLEpZKSxHWzI0XSgxOCxhLE9bMjVdKDcsYSksY1syXSksWVswXSgyOSx2LE9bMjVdKDMsYSksT1syNV0oNSxLSykpLHJdLFttWzEyXSg0MixXLGNbMF0pLG1bMTJdKDM2LFYsYUEoKSksWVsxMl0odTNbMF0sVixWKSxtWzEyXSgzOCxYLHNVKCkpLG1bMTJdKDM5LG9aLGN1KCkpLG1bMTJdKDQwLEIsZV8oKSksZ1s0OF0oMTgsNDk5LHcpLGdbNDhdKDE2LDIzOSx6OCksbVsxMl0oMzgscSwiIiksUlt1M1swXV0oNjQsbDMsRzgsSVopLEkoaCxxLFQ4LHEpLG1bMTJdKDQ4LGEsY1swXSksbVsxMl0oNDcsCktLLDMpLERbMTRdKDk4LFcsSixsMyksdixrWzE4XSgzNSxoLE9bMjVdKDcsaCkpLEhbNDRdKDQzLHopLEhbNDRdKDUwLFgpLEhbNDRdKDU0LG9aKSxIWzQ0XSg1MCxWKSxIWzQ0XSg1NCxUOCksSFs0NF0oNTAsZiksSFs0NF0oNDYsRzgpLEhbNDRdKDYzLHZvKSxIWzQ0XSg0MyxCKSxIWzQ0XSg1MCx3KSxIWzQ0XSg1OSx6OCksUls0Nl0oODAsdGhpcyxoKV0pLFtdLmNvbmNhdCh4LGIsZCxaRyl9LE9bMjFdKDUsUWosTEQpLFFqLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVyblsoSz0oQj0oQT0oSj0oYj0oQz0oej1rWzQyXSg1Nyx0aGlzLCh2PVs0NCw1LCIiXSx2KVsxXSksZ1sxMl0oOSx6KSksQy5uZXh0KCkpLnZhbHVlLEMpLm5leHQoKS52YWx1ZSxDLm5leHQoKS52YWx1ZSksQy5uZXh0KCkudmFsdWUpLEMubmV4dCgpLnZhbHVlKSxnWzQ4XSgyNCwxMjIsYikpLFlbMTJdKDE3LEIsYiksSFt2WzBdXSg0NixiKSxnWzQ4XSgyNCwzNDUsSiksUlsxOV0oMzIsCkssSixCKSxIW3ZbMF1dKDU4LEopLEhbdlswXV0oNDMsQiksbVsxMl0oNDIsQSx2WzJdKSxPWzQ4XSg3OCxLLE9bMjVdKDEsQSksT1syNV0odlsxXSxLKSksSFt2WzBdXSg0MixBKSxSWzQ2XSg2NCx0aGlzLEspXX0sT1syMV0oNCxwRixMRCkscEYpLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQpe3JldHVyblsoUT0oYj1bKHg9KEs9KEo9KEw9KHA9KHE9KHY9KFo9KGY9KFA9KEI9KFg9KFc9KGE9KFY9KFM9KEE9KHI9KG49a1s0Ml0oNTksdGhpcywoRT0oZD1bNTgsNSw1MV0sWzI5NiwwLDIxMl0pLDIyKSksZ1sxMl0oMyxuKSkscikubmV4dCgpLnZhbHVlLHIpLm5leHQoKS52YWx1ZSxyLm5leHQoKSkudmFsdWUsci5uZXh0KCkpLnZhbHVlLHIubmV4dCgpLnZhbHVlKSxyLm5leHQoKS52YWx1ZSksci5uZXh0KCkpLnZhbHVlLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkpLnZhbHVlLApyLm5leHQoKSkudmFsdWUsdT1yLm5leHQoKS52YWx1ZSxyLm5leHQoKSkudmFsdWUsci5uZXh0KCkpLnZhbHVlLHIubmV4dCgpLnZhbHVlKSxOPXIubmV4dCgpLnZhbHVlLEM9ci5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIubmV4dCgpLnZhbHVlKSxjPXIubmV4dCgpLnZhbHVlLHo9ci5uZXh0KCkudmFsdWUsW2dbNDhdKDE4LDQ1MixBKSxZWzEyXSgzLEEsQSksZ1s0OF0oMjQsMzE3LFMpLGdbNDhdKDE2LDUyLFYpLEkoYSxBLFMsViksSFs0NF0oNTUsUyksSFs0NF0oNjMsViksZ1s0OF0oMTYsRVsyXSxXKSxnWzQ4XSgxMCw0MTUsWCksZ1s0OF0oMTYsMTU3LEIpLGdbNDhdKDI2LEVbMF0sUCksUlsxM10oNzIsdixPWzI1XSg5LFgpLGhPKCkpXSksUilbMTldKDEsZixxLGEpLFJbMTldKDQxLFosVyxmKSxJKFosWixQLHYsQiksSSh1LEosTixaKV0sW21bMTJdKDk2LHEsRVsxXSksbVsxMl0oMzYscCxhQSgpKSxZWzEyXSgzLHAscCksbVsxMl0oNDcsTCxjdSgpKSxtWzEyXSg5NSwKTixlXygpKSxtWzEyXSgzOSx1LCIiKSxnWzQ4XSgxMCwzMTMseiksUlsxOV0oOCxDLHosYSksSFs0NF0oNTUseiksZ1s0OF0oMTgsNDE2LGMpLEkoSix1LGMsdSksSFs0NF0oZFsyXSxjKSxtWzEyXSg0MixLLGRbMV0pLEkoSyxwLEwsSyxDKSxEWzE0XShkWzBdLHEsYixLKSx0aGlzLnN0cmluZ2lmeShKLEopLEhbNDRdKDU1LHUpLEhbNDRdKGRbMF0sZiksSFs0NF0oNjMsYSksSFs0NF0oNDIsWiksSFs0NF0oZFswXSxXKSxIWzQ0XSg2MixLKSxIWzQ0XSg1NCxDKSxIWzQ0XSg0MyxYKSxIWzQ0XSg0NyxCKSxIWzQ0XSg1OSxQKSxIWzQ0XSg0Myx2KSxIWzQ0XSg0NyxMKSxIWzQ0XSg0MixOKSxIWzQ0XSg1NSxwKSxIWzQ0XSg1NSxxKSxSWzQ2XSg4Mix0aGlzLEopXSkseCksUV19LE9bMjFdKDMsV1IsTEQpLFdSLnByb3RvdHlwZS5GPWZ1bmN0aW9uKCl7cmV0dXJuW2VbN10oNjUsdGhpcy5NKV19LFdSLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsCk4seCl7cmV0dXJuWyhRPShOPShXPShuPShLPShiPShaPSh6PShKPSh2PShBPWdbMTJdKDQsa1s0Ml0oNTgsdGhpcywoQz1bMzcsKHg9WzEwMDYsNDgsMF0sNzgpLDE5NjVdLDEwKSkpLEEubmV4dCgpKS52YWx1ZSxBLm5leHQoKS52YWx1ZSksQj1BLm5leHQoKS52YWx1ZSxBLm5leHQoKS52YWx1ZSksQSkubmV4dCgpLnZhbHVlLEEubmV4dCgpLnZhbHVlKSxBLm5leHQoKS52YWx1ZSksQSkubmV4dCgpLnZhbHVlLEEubmV4dCgpLnZhbHVlKSxBKS5uZXh0KCkudmFsdWUsZylbN10oNSkscD1nWzddKDM3KSxIWzQ0XSg1OCxaKSksSFs0NF0oNTQsYiksSFs0NF0oNTgsSyksSFs0NF0oNTQsbiksZ1t4WzFdXSgyNCx4WzBdLHYpLFlbMTJdKDE2LHYsdiksWVt4WzJdXSgyOSxwLE9bMjVdKDUsdiksT1syNV0oNSxaKSksZ1t4WzFdXSgyNCxDW3hbMl1dLEopLFJbMTldKDgsQixKLHYpLFlbeFsyXV0oMjkscCxPWzI1XSgxLEIpLE9bMjVdKDksWikpLGdbeFsxXV0oMTYsMTcyNSx6KSxJKEIsdiwKSix6KSxtWzEyXSg5Nix6LHhbMl0pLFJbMTldKDY1LEIseixCKSxZW3hbMl1dKDI3LFEsT1syNV0oMyxCKSxPWzI1XSgzLFopKSxnW3hbMV1dKDI2LDEwNTQseiksUlsxOV0oNjQsYix6LEIpLGdbeFsxXV0oMTYsQ1syXSx6KSxSWzE5XSg0MSxLLHosQiksUSxnW3hbMV1dKDI2LDIwMjAseiksSShCLHYsSix6KSxtWzEyXSgzOSx6LHhbMl0pLFJbMTldKDczLEIseixCKSxZW3hbMl1dKDI3LHAsT1syNV0oOSxCKSxPWzI1XSg5LFopKSxnW3hbMV1dKDE4LDU1LHopLFJbMTldKDgsbix6LEIpLHAsZVs3XSg2NSxXKSxnW3hbMV1dKDE4LENbMV0seiksYyQoTix6LHRoaXMuTSxXLGIsSyxuKSx0aGlzLnN0cmluZ2lmeShOLE4pLFJbNDZdKDY2LHRoaXMsTildfSxXUi5wcm90b3R5cGUpLlI9ZnVuY3Rpb24oQil7dGhpc1soQj1bNCwzLCJNIl0sQilbMl1dPWdbMTJdKEJbMF0seVs0OV0oQlsxXSx0aGlzLDEpKS5uZXh0KCkudmFsdWV9LE9bMjFdKDEsTkYsTEQpLE5GKS5wcm90b3R5cGUudj1mdW5jdGlvbihCLAp6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1KXtyZXR1cm5bKFo9KHI9KEw9KFE9KEI9KEU9KGM9KHY9KFM9KHE9KEE9KHg9KG49KEs9Z1sxMl0oOSxrWzQyXSg0NCx0aGlzLChwPShKPWdbKGI9Z1thPSh1PVs0MywyNSw3XSxbMjg0LDIyMiwzMTNdKSx1WzJdXSgzNyksdSlbMl1dKDM4KSxnKVt1WzJdXSg2KSwyMCkpKSxLLm5leHQoKS52YWx1ZSksUD1LLm5leHQoKS52YWx1ZSxmPUsubmV4dCgpLnZhbHVlLFY9Sy5uZXh0KCkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKS52YWx1ZSksSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKS52YWx1ZSksej1LLm5leHQoKS52YWx1ZSxLLm5leHQoKS52YWx1ZSksVz1LLm5leHQoKS52YWx1ZSxOPUsubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKS52YWx1ZSksSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsCkM9Sy5uZXh0KCkudmFsdWUsZ1s0OF0oMTgsNzgsbikpLEhbNDRdKDU1LFopLGdbNDhdKDE4LDEwMDYsUyksWVsxMl0oMyxTLFMpLEhbNDRdKHVbMF0scSksWVswXSh1WzFdLGIsT1t1WzFdXSh1WzJdLFMpLE9bdVsxXV0oOSxxKSksZ1s0OF0oMjQsMzcsQSksUlsxOV0oMzIseCxBLFMpLFlbMF0oMjQsYixPW3VbMV1dKDMseCksT1t1WzFdXSgzLHEpKSxnWzQ4XSgxNixhWzFdLHYpLEkoeCxTLEEsdiksZ1s0OF0oMTYsYVsyXSxmKSxSWzE5XSg2NCx6LGYseCksbVswXSg5LEosT1t1WzFdXSg1LHopLDM2KSxSWzE2XSgyNix6LE9bdVsxXV0odVsyXSx6KSwzNSksZ1s0OF0oMjQsMjgsViksSSh4LHgsVix6KSxKLGMkKFosbiksbVsxMl0oOTUsYywwKSxSWzE5XSgzMix6LGYseCksZ1s0OF0oMjYsYVswXSxQKSxnWzQ4XSgxMCwyMTgsTiksZ1s0OF0oMTgsNTUsUSksRFsxNF0oOTgsYyxbUlsxOV0oNjQsVyxjLHgpLG1bMTJdKDQyLEUsMSksUlsxOV0oMzMsQixOLFcpLFlbMF0odVsxXSxwLApPW3VbMV1dKDMsQiksT1t1WzFdXSg5LFApKSxtWzEyXSg0NCxFLDApLHAsUlsxOV0oNDEsTCxRLFcpLGMkKHIsbixFLEwpLG1bMzNdKHVbMF0sWixjLE9bdVsxXV0odVsyXSxyKSldLHopLGIsYyQoQyxuLFopLGtbMThdKDU3LEMsT1t1WzFdXSgzLEMpKSxSWzQ2XSg2NCx0aGlzLEMpXX0sTylbMjFdKDEsZkYsTEQpLGZGLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCxqTixaRyxuRCx2OCxmRCxvWixRcSxUOCxtbCxHOCxwRCxLSyxmSyx0WSxsMyxyMCxYaCxiTCxSWixJWixXOCx2byx1MyxsTCxhcCxRUyxGMixQcSxVUixjbyxNbSxwaCx5cSxoMyxXbyxRJCxvcCxLaCxCbyxmaCwkOCxXcSxnRSxzbSxOVSxzOCxOMSxYdCxKUSwkZix3MCx6eSxrZixTWCxtTixPMSxsbSx4aCx2cSxEaSxXZix1TixhQix4OCxLZyxmbixZOCl7cmV0dXJuIEE9WyhLSz0KKHY9KGZuPShwPShKUT0oU1g9KGM9KHRZPShQcT0oc209KFA9KEI9KE8xPShGMj0oYXA9KGJMPShhQj0oZD0odz0oRT0oWGg9KE1tPShXcT0oSj0odU49KHZvPSh6OD0oYjM9KGE9KGpOPShJWj0oZkQ9KFU9KE49KGgzPShwRD0oeGg9KGZLPShUOD0oV2Y9KHBoPShyPShXOD0oUT0oTjE9KGI9KEM9KFo9KFc9KG9aPShsbT0oRGk9KEpZPShLZz0oczg9KGtmPShXbz0oWD0oWkc9KHU9KEtoPShmPShRJD0oY289KEw9KHY4PShRUz0oaD0oVj0oVVI9KCQ4PShyMD0oZ0U9KEc4PShsTD0oQjg9KGZoPVsoeD0oUXE9KFh0PSh2cT0oTlU9KFJaPShTPWdbMTJdKCh3MD1bKFk4PVs5LCJNIiw4NF0sMCksMSwxODYyXSwxMiksa1s0Ml0oNjIsdGhpcyx3MFsxXSkpLm5leHQoKS52YWx1ZSxnWzEyXSg3LGtbNDJdKDQ1LHRoaXMsNSkpKSxxPVJaLm5leHQoKS52YWx1ZSxSWi5uZXh0KCkudmFsdWUpLG5EPVJaLm5leHQoKS52YWx1ZSxSWikubmV4dCgpLnZhbHVlLFJaLm5leHQoKS52YWx1ZSksZylbN10oNyksCmcpWzddKDUpLHRoaXMpLkFlLG1bMTJdKDQxLHEsdzBbMF0pLFJbMTldKDcyLHRoaXMuWCxxLHRoaXMub1QpLEhbNDRdKDYyLHRoaXMub1QpLEdbMjVdKDgzLDIsdGhpcy5YLHRoaXMuaSx4KSx2SShOVSx0aGlzLmtKLHRoaXMuWCksdkkobkQsdGhpcy5XMSx0aGlzLlgpLEhbNDRdKDUwLHEpLFlbMF0oMjYsUXEsT1syNV0oMSx0aGlzLlcpLE9bMjVdKDEscSkpLFJbMTZdKDI4LHZxLE9bMjVdKDMsTlUpLE9bMjVdKDMsdGhpcy5IKSksUlsxNl0oNTYsWHQsT1syNV0oWThbMF0sbkQpLE9bMjVdKDMsdGhpcy5XKSksWVs0MV0oNzEsdnEsT1syNV0oMyx2cSksT1syNV0oMyx2cSkpLFlbNDFdKDcwLFh0LE9bMjVdKDMsWHQpLE9bMjVdKDMsWHQpKSxHWzI0XSgxOCxxLE9bMjVdKDMsdnEpLE9bMjVdKDMsWHQpKSx2SShxLHRoaXMuaixxKSxHWzI0XSgyNix0aGlzLm8sT1syNV0oNyx0aGlzLm8pLE9bMjVdKDUscSkpLFFxLG1bNF0oMTMsTlUsdGhpcy5IKSxtWzRdKDEyLG5ELHRoaXMuVyksSFs0NF0oNjMsCnEpLEhbNDRdKDU5LE5VKSxIWzQ0XSg0NyxuRCksSFs0NF0oNTksdnEpLEhbNDRdKDYyLFh0KSxrWzE3XSgzNykseCxIWzQ0XSg0Nix0aGlzLlgpLEdbMjRdKDE2LHRoaXMuQyxPWzI1XSgxLHRoaXMuQyksdzBbMV0pLGtbMTddKDM0KV0seDg9Z1sxMl0oMTIsa1s0Ml0oNDcsdGhpcywyMykpLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpKS52YWx1ZSx4OCkubmV4dCgpLnZhbHVlLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpLnZhbHVlKSx4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpKS52YWx1ZSx4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKSkudmFsdWUseDgubmV4dCgpLnZhbHVlKSx4OC5uZXh0KCkpLnZhbHVlLHg4KS5uZXh0KCkudmFsdWUseDgubmV4dCgpLnZhbHVlKSx4OC5uZXh0KCkudmFsdWUpLG9wPXg4Lm5leHQoKS52YWx1ZSx4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpKS52YWx1ZSx4OCkubmV4dCgpLnZhbHVlLAp4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKS52YWx1ZSkseDgpLm5leHQoKS52YWx1ZSxnKVs3XSg1KSxtTj1nWzddKDM4KSxnKVs3XSgzOSksZ1s3XSgzOSkpLHRoaXMuUjEpLG1bMTJdKDQ4LEI4LHcwWzBdKSksUlsxOV0oNDAsdGhpcy5vVCxCOCx0aGlzLm9UKSksRylbMjVdKDgwLDIsdGhpcy5vVCx0aGlzLmksRGkpLEhbNDRdKDQ2LEI4KSksWSlbMF0oMjQsS2csT1syNV0oWThbMF0sdGhpcy5YKSxPWzI1XSgxLEI4KSksdkkpKGxMLHRoaXMuS3EsdGhpcy5YKSx2SShsTCx0aGlzW1k4WzFdXSxsTCkpLHZJKEc4LHRoaXMuRE0sdGhpcy5YKSksdkkoRzgsdGhpc1tZOFsxXV0sRzgpKSx2SSkoZ0UsdGhpcy5sWSx0aGlzLlgpLHZJKGdFLHRoaXNbWThbMV1dLGdFKSksdkkocjAsdGhpcy5sWSx0aGlzLm9UKSksUlsxNl0oMjQscjAsT1syNV0oWThbMF0scjApLE9bMjVdKDcsZ0UpKSksdkkocjAsdGhpc1tZOFsxXV0scjApKSxZWzQxXSgyMywkOCxPWzI1XSg3LHIwKSw0KSksRylbMjRdKDE4LAokOCxPWzI1XSg3LCQ4KSxPWzI1XSg3LGdFKSkseXE9dkkoVVIsdGhpcy5nQix0aGlzLlgpLEgpWzQ0XSg0Nix2OCksenk9SFs0NF0oNTAsb3ApLEgpWzQ0XSg1NCxoKSx6PVlbMF0oMjYsbU4sT1syNV0oMSxVUiksT1syNV0oWThbMF0sdjgpKSxJKFYsVVIsdGhpcy5CMSx0aGlzLmRWKSksR1sxNF0oMzksVixPWzI1XShZOFswXSxWKSxPWzI1XSgzLFVSKSkpLGwzPVJbMTldKDczLG9wLHRoaXMucWQsViksc3c9dGhpcy5pNSxnWzEyXSg2LGdbMjZdKDU2LExSLkooKSx3MFsxXSkpLm5leHQoKS52YWx1ZSksZ1s3XSg0KSksbj1bSFs0NF0oNTQsak4pLFlbMF0oMjQsYSxPWzI1XSg1LGpOKSxPWzI1XSgxLHN3LmcpKSxSWzE5XShZOFswXSxqTixvcCxzdy5nKSxHWzE0XSgyMyxqTixPWzI1XSg3LGpOKSx3MFswXSksYSxtWzRdKDQsak4sb3ApXSxMUi5KKCkudihqTiksTT1bbG0sb1osVyxaLEMsYixOMSxRLFc4LHIscGgsV2YsVDgsZksseGgscEQsaDMseXEsTix6eSxVLHosZkQsSVosbDMsCm4sSShRUyxWLHRoaXMuWEMpLFlbMF0oMjUsbU4sT1syNV0oMyx2OCksT1syNV0oMSxRUykpLFJbMTldKDMyLEwsdGhpcy5NaixRUyksWVsxMl0oMSxCOCx0aGlzLnZsKSxHWzI0XSgxMCxMLE9bMjVdKDMsTCksT1syNV0oMSxCOCkpLHZJKEwsdGhpc1tZOFsxXV0sTCksUlsxOV0oMSxjbyx0aGlzLkpNLFFTKSxZWzEyXSgxLEI4LHRoaXMubVgpLEdbMjRdKDE4LGNvLE9bMjVdKDEsY28pLE9bMjVdKDEsQjgpKSx2SShjbyx0aGlzW1k4WzFdXSxjbyksUlsxOV0oNDEsUSQsdGhpcy5JdyxRUyksdkkoUSQsdGhpc1tZOFsxXV0sUSQpLFJbMTldKDMyLGYsdGhpcy52dixRUyksdkkoZix0aGlzW1k4WzFdXSxmKSxjJCh2OCx0aGlzLm0sTCxjbyxRJCxmKSxHWzI0XSgyNCxCOCxPWzI1XSg3LGxMKSxPWzI1XSgzLGNvKSksR1syNF0oMjYsQjgsT1syNV0oNSxCOCksT1syNV0oNSxRJCkpLFlbNDFdKDIxLCQ4LE9bMjVdKDcsJDgpLE9bMjVdKDcsQjgpKSxHWzI0XSgyNixCOCxPWzI1XSg1LEc4KSwKT1syNV0oMSxMKSksR1syNF0oMjQsQjgsT1syNV0oNyxCOCksT1syNV0oNSxmKSksR1syNF0oMTAsQjgsT1syNV0oNyxCOCksdzBbMV0pLFJbMF0oMTIsJDgsT1syNV0oWThbMF0sJDgpLE9bMjVdKFk4WzBdLEI4KSksUlsxOV0oWThbMF0saCx0aGlzLk15LFYpLEdbMTRdKDM5LGgsT1syNV0oWThbMF0saCksT1syNV0oNyxWKSksbU4sdkkoJDgsdGhpc1tZOFsxXV0sJDgpLEdbMjRdKDEwLHRoaXMuSSxPWzI1XSgxLHRoaXMuSSksT1syNV0oNSwkOCkpLEhbNDRdKDYyLCQ4KSx2SShaRyx0aGlzLmRlLHRoaXMuWCksWVs0MV0oNCxaRyxPWzI1XShZOFswXSxaRyksMTAwKSx2SShaRyx0aGlzW1k4WzFdXSxaRyksdkkoWCx0aGlzLktxLHRoaXMub1QpLFJbMTZdKDI4LFgsT1syNV0oNSxYKSxPWzI1XSgxLGxMKSksWVs0MV0oNSxYLE9bMjVdKDUsWCksT1syNV0oNyxYKSksdkkoV28sdGhpcy5ETSx0aGlzLm9UKSxSWzE2XSgyNCxXbyxPWzI1XSgxLFdvKSxPWzI1XSg3LEc4KSksWVs0MV0oNywKV28sT1syNV0oNSxXbyksT1syNV0oWThbMF0sV28pKSxHWzI0XSgxOCxrZixPWzI1XShZOFswXSxYKSxPWzI1XSg3LFdvKSksdkkoa2YsdGhpcy5qLGtmKSxHWzI0XSgxNixrZixPWzI1XSgzLGtmKSwuNDkpLHZJKGtmLHRoaXNbWThbMV1dLGtmKSx2SShzOCx0aGlzLk5kLHRoaXMuWCksdkkoQjgsdGhpcy5CaCx0aGlzLlgpLFlbNDFdKDY5LHM4LE9bMjVdKDUsczgpLE9bMjVdKDcsQjgpKSx2SShzOCx0aGlzW1k4WzFdXSxzOCksYyQoS2gsdGhpcy5tLGdFLHIwLGxMLEc4LHY4LG9wLGgsWkcsa2YsczgpLFlbMTVdKDczLHUsT1syNV0oNyx0aGlzLkspLDE2KSxtWzMzXSgxMSx0aGlzLkcsdSxPWzI1XSgzLEtoKSksR1syNF0oMTgsdGhpcy5LLE9bMjVdKDMsdGhpcy5LKSx3MFsxXSksSFs0NF0oNjIsdGhpcy5YKSxLZyx2SShsTCx0aGlzLmtKLHRoaXMub1QpLHZJKEc4LHRoaXMuVzEsdGhpcy5vVCksSFs0NF0oNjIsQjgpLFlbMF0oMjQsSlksT1syNV0oNyx0aGlzLlcpLE9bMjVdKDMsCkI4KSksUlsxNl0oNTgsWCxPWzI1XSgzLGxMKSxPWzI1XSgxLHRoaXMuSCkpLFJbMTZdKDI2LFdvLE9bMjVdKDUsRzgpLE9bMjVdKDMsdGhpcy5XKSksWVs0MV0oNCxYLE9bMjVdKDMsWCksT1syNV0oWThbMF0sWCkpLFlbNDFdKDY5LFdvLE9bMjVdKFk4WzBdLFdvKSxPWzI1XSgzLFdvKSksR1syNF0oMjQsQjgsT1syNV0oWThbMF0sWCksT1syNV0oNyxXbykpLHZJKEI4LHRoaXMuaixCOCksR1syNF0oMTAsdGhpcy5vLE9bMjVdKDEsdGhpcy5vKSxPWzI1XSg1LEI4KSksSlksbVs0XSgxNCxsTCx0aGlzLkgpLG1bNF0oMTMsRzgsdGhpcy5XKSxIWzQ0XSg2MyxCOCksSFs0NF0oNDIsbEwpLEhbNDRdKDQ3LEc4KSxIWzQ0XSg1MCxnRSksSFs0NF0oNTQscjApLEhbNDRdKDYzLEtoKSxIWzQ0XSg0Myx1KSxIWzQ0XSg1MSx0aGlzLm9UKSxrWzE3XSgzNiksRGksSFs0NF0oNTUsdGhpcy5vVCksR1syNF0oMjQsdGhpcy5DLE9bMjVdKDEsdGhpcy5DKSx3MFsxXSksa1sxN10oMzMpXSxnWzEyXSgxMiwKa1s0Ml0oNTcsdGhpcywxNCkpKSxiMy5uZXh0KCkpLnZhbHVlLGIzLm5leHQoKS52YWx1ZSksYjMubmV4dCgpLnZhbHVlKSxiMy5uZXh0KCkpLnZhbHVlLGIzKS5uZXh0KCkudmFsdWUsSz1iMy5uZXh0KCkudmFsdWUsYjMubmV4dCgpLnZhbHVlKSxiMy5uZXh0KCkudmFsdWUpLG1sPWIzLm5leHQoKS52YWx1ZSxiMy5uZXh0KCkpLnZhbHVlLHQ9YjMubmV4dCgpLnZhbHVlLGIzLm5leHQoKS52YWx1ZSksYjMubmV4dCgpLnZhbHVlKSxiMykubmV4dCgpLnZhbHVlLGdbN10oMzkpKSxnWzddKDM5KSksQm89Z1s3XSg0KSxnWzddKDM3KSksZ1s3XSg2KSksZ1s3XSg0KSksdTM9W1JbMTldKDgsdm8sbWwsdU4pLHZJKEUsdGhpcy5sWSx2byksUlsxNl0oNTYsdCxPWzI1XSgxLEUpLE9bMjVdKDEsdGhpcy5FMykpLG1bMF0oMTQsQm8sNTIsT1syNV0oWThbMF0sdCkpLG1bMF0oOCxCbyxPWzI1XSg3LHQpLHcwWzBdKSxZWzBdKDI3LEJvLE9bMjVdKDUsdCksdzBbMF0pLG1bMF0oMTQsRjIsT1syNV0oMywKdGhpcy5BKSw2KSxtWzBdKDE0LEYyLE9bMjVdKDEsdCksT1syNV0oNyx0aGlzLkEpKSxSWzBdKDMsejgsT1syNV0oMSx0KSxPWzI1XSg3LHRoaXMuQSkpLHZJKHo4LHRoaXNbWThbMV1dLHo4KSxSWzBdKDcsdyxPWzI1XSgxLHQpLE9bMjVdKFk4WzBdLHo4KSksWVswXSgyOCxPMSx3MFsxXSx3MFsxXSksRjIsbVs0XSgxNCx0LHcpLE8xLEdbMjRdKDE2LHRoaXMuUCxPWzI1XSgxLHRoaXMuUCksdzBbMV0pLFJbMF0oMixkLHcwWzFdLE9bMjVdKDcsdGhpcy5QKSksbVswXSgxMSxCLC4xLE9bMjVdKDEsZCkpLG1bMTJdKDk2LGQsLjEpLEIsUlsxNl0oMjgsYUIsdzBbMV0sT1syNV0oNSxkKSksWVs0MV0oMjMsdGhpcy5BLE9bMjVdKFk4WzBdLGFCKSxPWzI1XSg3LHRoaXMuQSkpLFlbNDFdKDUsejgsT1syNV0oNSxkKSxPWzI1XSg1LHcpKSxHWzI0XSgxNix0aGlzLkEsT1syNV0oWThbMF0sdGhpcy5BKSxPWzI1XSg3LHo4KSksWVs0MV0oNix0aGlzLlUsT1syNV0oMSxhQiksT1syNV0oWThbMF0sCnRoaXMuVSkpLFlbNDFdKDYsejgsT1syNV0oMyxkKSxPWzI1XShZOFswXSx0KSksR1syNF0oMTYsdGhpcy5VLE9bMjVdKDEsdGhpcy5VKSxPWzI1XSg1LHo4KSksUlsxNl0oMjYsejgsT1syNV0oNyx3KSxPWzI1XShZOFswXSx0aGlzLkEpKSx2SSh6OCx0aGlzLm51LHo4KSxHWzI0XSgxNix0aGlzLkIsT1syNV0oNyx0aGlzLkIpLE9bMjVdKDUsejgpKSxZWzQxXSg1LHo4LDEuNSxPWzI1XShZOFswXSx0aGlzLkEpKSxtWzBdKDgsQm8sT1syNV0oMSx0aGlzLlUpLE9bMjVdKDUsejgpKSxtWzRdKDQsdGhpcy5VLHRoaXMuQSksQm8sbVs0XSg1LEUsdGhpcy5FMyldLGdbN10oNikpLCRmPWdbN10oMzkpLGdbN10oMzgpKSxnWzddKDM5KSksZ1s3XSgzOSkpLGdbN10oNSkpLFt0aGlzLmt3LG1bMTJdKDQwLHo4LHcwWzBdKSxSWzE5XSg3Myx2byx6OCx0aGlzLm9UKSxHWzI1XShZOFsyXSwyLHZvLHRoaXMuaSxjKSxHWzI0XSgxMCx0aGlzLkQsT1syNV0oMSx0aGlzLkQpLHcwWzFdKSx2SSh6OCwKdGhpcy5hMCx2byksWVswXSgyOCxiTCxPWzI1XSg1LHo4KSxPWzI1XSgzLHRoaXMuSk8pKSxZWzBdKDI5LGFwLHcwWzBdLHcwWzBdKSxiTCxHWzI0XSgxOCx0aGlzLmcsT1syNV0oNSx0aGlzLmcpLHcwWzFdKSxhcCx2SShKLHRoaXMua0osdm8pLHZJKFdxLHRoaXMuVzEsdm8pLEhbNDRdKDYzLHo4KSxZWzBdKDI1LHNtLE9bMjVdKDEsdGhpcy5XKSxPWzI1XShZOFswXSx6OCkpLFlbMF0oMjYsUHEsdzBbMV0sdzBbMV0pLHNtLG1bNF0oMTIsSix0aGlzLkgpLG1bNF0oMTIsV3EsdGhpcy5XKSxQcSxZWzBdKDI4LHRZLE9bMjVdKDEsdGhpcy5BTCksT1syNV0oNSx6OCkpLFJbMTZdKDU2LEssT1syNV0oWThbMF0sSiksT1syNV0oMSx0aGlzLmZxKSksUlsxNl0oNTgsTW0sT1syNV0oWThbMF0sV3EpLE9bMjVdKDcsdGhpcy5BTCkpLFlbNDFdKDIyLEssT1syNV0oMyxLKSxPWzI1XSgxLEspKSxZWzQxXSg3LE1tLE9bMjVdKDEsTW0pLE9bMjVdKDMsTW0pKSxHWzI0XSgxOCx6OCxPWzI1XSgzLApLKSxPWzI1XSgzLE1tKSksdkkoejgsdGhpcy5qLHo4KSxHWzI0XSgxMCx0aGlzLlMsT1syNV0oNyx0aGlzLlMpLE9bMjVdKDMsejgpKSx0WSxtWzRdKDE0LEosdGhpcy5mcSksbVs0XSg1LFdxLHRoaXMuQUwpLEhbNDRdKDYyLHo4KSxZWzBdKDI2LFAsT1syNV0oMyx6OCksT1syNV0oWThbMF0sdGhpcy51WSkpLHZJKHVOLHRoaXMudVksdm8pLFlbMF0oMjUsUCxPWzI1XShZOFswXSx6OCksT1syNV0oNyx1TikpLFJbMTldKDY1LFhoLHRoaXMud2IsdU4pLFlbMF0oMjgsUCxPWzI1XSg3LFhoKSx3MFswXSksbVswXSgxMSwkZixPWzI1XSg3LFhoKSxPWzI1XSg3LHRoaXMuTCkpLG1bNF0oNSxYaCx0aGlzLkwpLFlbMF0oMjksJGYsdzBbMV0sdzBbMV0pLFAsbVs0XSg1LHRoaXMub1QsdU4pLG1bMTJdKDQxLFhoLHcwWzFdKSwkZixtWzEyXSgzOSxtbCx3MFswXSksRFsxNF0oMjYsbWwsdTMsWGgpLEhbNDRdKDQ3LHo4KSxIWzQ0XSg0Nyx2byksSFs0NF0oNTEsdU4pLEhbNDRdKDUxLFhoKSwKSFs0NF0oNTQsbWwpLEhbNDRdKDUwLEUpLEhbNDRdKDYzLHQpLEhbNDRdKDYyLHcpLEhbNDRdKDQ2LGQpLEhbNDRdKDQ3LGFCKSxIWzQ0XSg1OCx0aGlzLm9UKSxrWzE3XSgzNSksYyxIWzQ0XSg2Myx0aGlzLm9UKSxIWzQ0XSg2Myx2byksR1syNF0oMjQsdGhpcy5DLE9bMjVdKDcsdGhpcy5DKSx3MFsxXSksa1sxN10oMzIpXSksZylbMTJdKDcsa1s0Ml0oNTYsdGhpcyw0KSksSlEubmV4dCgpLnZhbHVlKSxKUSkubmV4dCgpLnZhbHVlLEpRLm5leHQoKS52YWx1ZSksSlEubmV4dCgpKS52YWx1ZSx0aGlzLm5pKSxnWzQ4XSgyNCw0NTIscCksWVsxMl0oMTYscCxwKSxnWzQ4XSgyNiwxODEsS0spLFJbMTldKDMyLHAsS0sscCksZ1s0OF0oMjYsNTQxLGZuKSxnWzQ4XSgxMCwxNTUwLHYpLEkoS0sscCxmbix2LHRoaXMubnEpLGdbNDhdKDE4LDg4OSx2KSxJKEtLLHAsZm4sdix0aGlzLmlZKSxnWzQ4XSgxOCx3MFsyXSx2KSxJKEtLLHAsZm4sdix0aGlzLlhnKSxIWzQ0XSg1NCxwKSxIWzQ0XSg0NiwKZm4pLEhbNDRdKDU4LHYpLEhbNDRdKDU4LEtLKSxrWzE3XSgzMyldLFtmaCxNLFNYLEEsdGhpcy5wcSxtWzEyXSgzOSxTLHcwWzBdKSxSWzE5XSg3Mix0aGlzLlgsUyx0aGlzLm9UKSxIWzQ0XSg0Myx0aGlzLm9UKSxrWzE3XSg0NSldfSxmRikucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVyblsoSz0oej0obj0oQz0oUT0oSj0oQj0oWj1bMTYsKHA9WzAsMTM2MywzNjRdLCJpIiksMTJdLHY9Z1taWzJdXSg2LGtbNDJdKDU4LHRoaXMsNikpLHYubmV4dCgpLnZhbHVlKSx2KS5uZXh0KCkudmFsdWUsQT12Lm5leHQoKS52YWx1ZSx2Lm5leHQoKS52YWx1ZSksdi5uZXh0KCkpLnZhbHVlLHYubmV4dCgpLnZhbHVlKSxnWzddKDM5KSksYj1nWzddKDcpLGdbN10oNCkpLGcpWzQ4XShaWzBdLDc4LHRoaXMubSksZ1s0OF0oMTAsMzEzLHRoaXMud2IpLGdbNDhdKFpbMF0sMTkxLHRoaXMuUWUpLGdbNDhdKFpbMF0sNTgzLHRoaXMueUEpLFlbWlsyXV0oMiwKSix0aGlzLlFlKSxnWzQ4XSgxOCw2MTMsQSksUlsxOV0oNjQsdGhpcy5NLEEsSiksZ1s0OF0oMTAscFsyXSxBKSxSWzE5XSg3Myx0aGlzLmosQSxKKSxnWzQ4XSgxOCwxNjEzLEEpLFJbMTldKDQxLHRoaXMubnUsQSxKKSxtW1pbMl1dKDQ3LHRoaXMuekoscFswXSksbVtaWzJdXSgzNix0aGlzLkMscFswXSksSFs0NF0oNDYsdGhpcy5YKSxjJCh0aGlzLkcsdGhpcy5tKSxtW1pbMl1dKDQ0LHRoaXMuSyxwWzBdKSxtW1pbMl1dKDk3LHRoaXMuTCxwWzBdKSxtW1pbMl1dKDk1LHRoaXMuRTMscFswXSksbVtaWzJdXSg0NCx0aGlzLlAscFswXSksbVtaWzJdXSg0NCx0aGlzLkEscFswXSksbVtaWzJdXSg0OCx0aGlzLlUscFswXSksbVtaWzJdXSg5Nix0aGlzLkIscFswXSksbVtaWzJdXSg0MSx0aGlzLkQscFswXSksbVtaWzJdXSg5NSx0aGlzLmcscFswXSksSFs0NF0oNDYsdGhpcy5mcSksSFs0NF0oNDIsdGhpcy5BTCksSFs0NF0oNTksdGhpcy5IKSxIWzQ0XSg0Nix0aGlzLlcpLG1bWlsyXV0oMzgsCnRoaXMubyxwWzBdKSxtW1pbMl1dKDQ4LHRoaXMuUyxwWzBdKSxtW1pbMl1dKDQxLHRoaXMuSSxwWzBdKSxnWzQ4XSgxOCwxOTU0LEEpLE9bMzhdKDkxLDIsOCxBLHRoaXNbWlsxXV0seiksZ1s0OF0oMjQsODM2LEEpLG1bMzldKDM5LEEseix0aGlzLmxZLHRoaXNbWlsxXV0pLGdbNDhdKFpbMF0sMTcwMSxBKSxtWzM5XSgzOSxBLHosdGhpcy5rSix0aGlzW1pbMV1dKSxnWzQ4XSgyNiw5MyxBKSxtWzM5XSgzNixBLHosdGhpcy5XMSx0aGlzW1pbMV1dKSxnWzQ4XShaWzBdLDE3ODcsQSksbVszOV0oMzgsQSx6LHRoaXMuS3EsdGhpc1taWzFdXSksZ1s0OF0oMjYsMTg3NixBKSxtWzM5XSg1MyxBLHosdGhpcy5ETSx0aGlzW1pbMV1dKSxnWzQ4XSgyNCwxODYxLEEpLG1bMzldKDM4LEEseix0aGlzLmdCLHRoaXNbWlsxXV0pLGdbNDhdKDI0LDEyMTYsQSksbVszOV0oMzcsQSx6LHRoaXMuZGUsdGhpc1taWzFdXSksZ1s0OF0oMjYsMjAxNyxBKSxtWzM5XSg1MixBLHosdGhpcy5OZCx0aGlzW1pbMV1dKSwKZ1s0OF0oMTAsODkxLEEpLG1bMzldKDUzLEEseix0aGlzLkJoLHRoaXNbWlsxXV0pLGdbNDhdKDEwLHBbMV0sQSksbVszOV0oNTIsQSx6LHRoaXMuYTAsdGhpc1taWzFdXSksZ1s0OF0oWlswXSwxOTQwLEEpLG1bMzBdKDgsOSw2LGIsQSx0aGlzLnVZLHRoaXNbWlsxXV0pLGIsZ1s0OF0oWlswXSw3NzQsdGhpcy5CMSksZ1s0OF0oMTAsMTM5OCx0aGlzLmRWKSxnWzQ4XSgxMCwxMzUyLHRoaXMuTXkpLGdbNDhdKDI2LDQ4OSx0aGlzLnFkKSxnWzQ4XSgxOCw1NDMsdGhpcy5YQyksZ1s0OF0oMjYsMTEzMSx0aGlzLk1qKSxnWzQ4XSgxMCw5MTYsdGhpcy5KTSksZ1s0OF0oWlswXSwyMDE3LHRoaXMuSXcpLGdbNDhdKDEwLDg5MSx0aGlzLnZ2KSxnWzQ4XSgyNCwxMTExLHRoaXMubVgpLGdbNDhdKDE4LDE3Nyx0aGlzLnZsKSxnWzQ4XSgxOCwzOTgsdGhpcy5KTyksUlsyN10oMjYsdGhpcy5ucSx0aGlzLkFlLHRoaXMub1QpLFJbMjddKDMwLHRoaXMuaVksdGhpcy5SMSx0aGlzLm9UKSxSWzI3XSgzMCwKdGhpcy5YZyx0aGlzLmt3LHRoaXMub1QpLFlbMF0oMjksSyxwWzBdLHBbMF0pLHosbVtaWzJdXSgzNix0aGlzLnpKLDEpLFJbMjddKDI3LHRoaXMubnEsdGhpcy5wcSx0aGlzLm9UKSxSWzI3XSgyNyx0aGlzLmlZLHRoaXMucHEsdGhpcy5vVCksUlsyN10oMjYsdGhpcy5YZyx0aGlzLnBxLHRoaXMub1QpLEssZ1s0OF0oMjYsNDUyLFEpLFlbWlsyXV0oMTgsUSxRKSxnWzQ4XSgyNiwxODEsQSksUlsxOV0oNjQsUSxBLFEpLGdbNDhdKDI0LDYxNyxDKSxnWzQ4XSgxMCwxNTUwLG4pLEkoQSxRLEMsbix0aGlzLm5xKSxnWzQ4XSgyNCw4ODksbiksSShBLFEsQyxuLHRoaXMuaVkpLGdbNDhdKDI0LDE4NjIsbiksSShBLFEsQyxuLHRoaXMuWGcpLG5ldyBKaCh0aGlzLm5pLHRoaXMub1QpLEhbNDRdKDQ3LEIpLEhbNDRdKDUxLEopLEhbNDRdKDQyLEEpLEhbNDRdKDU0LFEpLEhbNDRdKDYzLEMpLEhbNDRdKDU0LG4pXX0sZnVuY3Rpb24oQil7cmV0dXJuIGdbMjZdLmNhbGwodGhpcywxMSxCKX0pLApmXz0oKCgoKCgoKCgoKGZGLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4LGpOLFpHLG5ELHY4LGZELG9aLFFxLFQ4LG1sLEc4LHBELEtLLGZLLHRZLGwzLHIwLFhoLGJMLFJaKXt0aGlzLlA9KHRoaXMubFk9KHRoaXMubVg9KHRoaXNbKHRoaXMubz0odGhpcy5pPSh0aGlzLk5kPSh0aGlzLkI9KHRoaXMueUE9KCh0aGlzLkQ9KCh0aGlzLm5xPSh0aGlzLlhnPSgodGhpcy5nPSh0aGlzLlhDPSh0aGlzLkIxPSh0aGlzLkpPPSh0aGlzLmRlPSgodGhpcy51WT0odGhpcy5Jdz0odGhpcy5IPSgodGhpcy5LPSh0aGlzLlg9KCh0aGlzLmRWPSh0aGlzLndiPSh0aGlzLkJoPSh0aGlzLkUzPSh0aGlzLlc9KHRoaXMuaj0odGhpcy5hMD0oSz0oVz0oQjg9KG5EPShmRD0oSj0oUT0oYz0oWkc9KHU9KGwzPShuPShBPShhPShmPShRcT0ocj0oZD0oeD0odD0oRzg9KHA9CihvWj0odz0oVj0oVT0oTT0oVDg9KHN3PSh6PShwRD0oRT0obWw9KGIzPShQPShoPShTPShYaD0odFk9KEM9KEw9KE49KFo9KFJaPVs0OSwibnUiLCJNIl0sZ1sxMl0oMSx5W1JaWzBdXSg0LHRoaXMsNTUpKSksWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxaKS5uZXh0KCkudmFsdWUsWi5uZXh0KCkudmFsdWUpLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKSkudmFsdWUsWi5uZXh0KCkpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksYj1aLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWi5uZXh0KCkpLnZhbHVlLGJMPVoubmV4dCgpLnZhbHVlLHo4PVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKSkudmFsdWUsWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxLSz1aLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksZks9Wi5uZXh0KCkudmFsdWUscT1aLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLApaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLEI9Wi5uZXh0KCkudmFsdWUsWi5uZXh0KCkpLnZhbHVlLFg9Wi5uZXh0KCkudmFsdWUsWi5uZXh0KCkudmFsdWUpLHY4PVoubmV4dCgpLnZhbHVlLHIwPVoubmV4dCgpLnZhbHVlLHY9Wi5uZXh0KCkudmFsdWUsWikubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLFopLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksSlk9Wi5uZXh0KCkudmFsdWUsak49Wi5uZXh0KCkudmFsdWUsWi5uZXh0KCkudmFsdWUpLFoubmV4dCgpLnZhbHVlKSxaKS5uZXh0KCkudmFsdWUsWi5uZXh0KCkpLnZhbHVlLFopLm5leHQoKS52YWx1ZSwKeCksVyksdGhpcy5xZD1hLHRoaXMuVzE9cCxzdyksaCksdGhpcy5TPUtLLHQpLHRoaXMuST1NLHRoaXMuSk09dSxqTiksZiksdGhpcy5LcT1YLHRoaXMpLmdCPXY4LEMpLFhoKSx0aGlzKS5rSj1CLHopLFpHKSxkKSx0aGlzKS52dj1jLHIwKSx0aGlzLkM9TCxKWSksdGhpcy5mcT16OCx0aGlzLkRNPUc4LHRoaXMuTWo9bDMsdGhpcy5RZT1mRCxRcSksbiksYkwpLHRoaXMpLm09cixVKSxmSyksdGhpcykub1Q9VixFKSx0aGlzKS52bD1KLG5EKSxtbCksdGhpcy56Sj1OLHYpLHRoaXMuRz10WSx3KSxUOCksdGhpcy5BPWIzLHRoaXNbUlpbMl1dPUI4LHRoaXMpLlU9YixSWlsxXV09Syx0aGlzLmlZPXEsUSksdGhpcy5MPVMsdGhpcy5NeT1BLHRoaXMuQUw9cEQsb1opLFApfSxmRikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3cpe3JldHVybih0PShhPShVPShKPSh3PShYPShRPQoodT0oZj0oSz0oYz0oVj0odj0oeD0oQT0obj0ocD0oVz0oaD0oTj0oRT0oWj0ocj0oUz0oYj0oej1nWzEyXSg1LGtbNDJdKDQyLChzdz0oUD1bMTMsMjgsMF0sTD1nWzddKDQpLFsxNiwwLDI1XSksdGhpcyksUFtzd1sxXV0pKSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksQj16Lm5leHQoKS52YWx1ZSx6KS5uZXh0KCkudmFsdWUsZD16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSxNPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksZ1s0OF0oMTgsUFsxXSxTKSksZ1s0OF0oMTAsMjk4LHIpKSxZKVsxNV0oNjgsWixPW3N3WzJdXSg3LHRoaXMuSyksc3dbMF0pLEkoQix0aGlzLkcsUyxaKSksbVsxMl0oMzgsRSxQWzJdKSkscT1JKEUsdGhpcy5HLFMsRSxaKSxJKEIsQixyLEUpKSxtWzEyXSg5NixOLFBbMl0pKSxtKVsxMl0oNDcsCkUsNiksUlsxOV0oNzMsWix0aGlzLndiLEIpKSxSWzE5XSgzMyxkLE4sQikpLEkoZCxkLFMpKSxSKVsxOV0oMzIsaCxFLGQpLHRoaXMuaTUpLGdbMTJdKDExLGdbMjZdKDU2LExSLkooKSwxKSkubmV4dCgpLnZhbHVlKSxDPWdbN10oNyksW0hbNDRdKDUwLGEpLFlbc3dbMV1dKDI4LEMsT1tzd1syXV0oOSxhKSxPW3N3WzJdXSg5LFUuTSkpLEkoYSxVLk0sVS5tLGgpLEMsbVs0XSg1LGEsaCldKSxMUi5KKCkpLnYoYSksW0EseCx2LFYsYyxxLEssZix1LFEsRFsxNF0oNTgsTixbWCx3LEosdCxtWzMzXSgzMCxkLEUsT1tzd1syXV0oOSxoKSksbVszM10oNDUsQixOLE9bc3dbMl1dKDEsZCkpXSxaKSx2SShwLHRoaXMuTSx0aGlzLlMpLEdbMjRdKDE4LHAsT1tzd1syXV0oMSxwKSxPW3N3WzJdXSgzLHRoaXMuSSkpLEdbMjRdKDI0LEUsT1tzd1syXV0oNSx0aGlzLkQpLDEpLFJbc3dbMV1dKDUscCxPW3N3WzJdXSg3LHApLE9bc3dbMl1dKDcsRSkpLEdbMjRdKDEwLG4sT1tzd1syXV0oMSxwKSwKMSksWVsxMl0oc3dbMF0sRSx0aGlzLlFlKSxJKG4sRSx0aGlzLnlBLG4pLFlbNDFdKDIwLG4sT1tzd1syXV0oMyxuKSw0KSxHWzI0XSgyNixwLE9bc3dbMl1dKDMscCksT1tzd1syXV0oNyx0aGlzLmcpKSx2SShFLHRoaXMuTSx0aGlzLm8pLEdbMjRdKHN3WzBdLHAsT1tzd1syXV0oOSxwKSxPW3N3WzJdXSg5LEUpKSxZWzE1XSg2NCxwLE9bc3dbMl1dKDkscCksMTEpLEdbMjRdKDI2LG4sT1tzd1syXV0oNyxuKSxPW3N3WzJdXSg1LHApKSx2SShuLHRoaXMuTSxuKSxIWzQ0XSg2MixwKSxIWzQ0XSg0NixFKSxZW3N3WzFdXSgyOCxMLE9bc3dbMl1dKDcsdGhpcy5QKSxQWzJdKSxSW3N3WzFdXSgxMSxFLE9bc3dbMl1dKDUsdGhpcy5CKSxPW3N3WzJdXSg3LHRoaXMuUCkpLFlbNDFdKDQsRSxPW3N3WzJdXSgxLEUpLDEwMCksdkkoRSx0aGlzLk0sRSksTCx2SShaLHRoaXMuTSx0aGlzLkEpLGMkKFcsdGhpcy5tLHRoaXMuTCxaLEUpLHZJKEUsdGhpcy5NLHRoaXMubyksdkkoWix0aGlzLk0sCnRoaXMuUyksYyQoTSx0aGlzLm0sdGhpcy5ELEUsWix0aGlzLmcpLGMkKGIsdGhpcy5tLHRoaXMuSyxCLFcsTSx0aGlzLnpKLHRoaXMuQyxuKSx0aGlzLnN0cmluZ2lmeShiLGIpLFJbNDZdKDE4LHRoaXMsYiksSFs0NF0oNDYsUyksSFs0NF0oNjIsciksSFs0NF0oNTUsWiksSFs0NF0oNjIsQiksSFs0NF0oNTksRSksSFs0NF0oNTksTiksSFs0NF0oNTgsZCksSFs0NF0oNTUsaCksSFs0NF0oNjMsVyksSFs0NF0oNDcsTSldfSxPKVsyMV0oMixnQixMRCksZ0IucHJvdG90eXBlKS52PWZ1bmN0aW9uKEIseil7cmV0dXJuIEI9Z1sxMl0oNCwoej1bNDYsIlgiLCJtIl0sa1s0Ml0oNTYsdGhpcywxKSkpLm5leHQoKS52YWx1ZSxbYyQoQix0aGlzW3pbMV1dLHRoaXMuTSx0aGlzLkMsdGhpc1t6WzJdXSksa1sxOF0oMjgsQixPWzI1XSgzLEIpKSxSW3pbMF1dKDY2LHRoaXMsQildfSxnQikucHJvdG90eXBlLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXt0aGlzLlU9KCh0aGlzWyh0aGlzLlg9Cih0aGlzLm09KCgodGhpcy5IPSgoKGI9KEE9KFE9KEs9KHY9KG49KHo9KFo9Z1sxMl0oMyx5WzQ5XSgxLChOPVsiaSIsImoiLDEzXSx0aGlzKSxOWzJdKSksWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxaLm5leHQoKSkudmFsdWUsWi5uZXh0KCkudmFsdWUpLEI9Wi5uZXh0KCkudmFsdWUsSj1aLm5leHQoKS52YWx1ZSxwPVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxDPVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxXPVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSx0aGlzKS5BPVoubmV4dCgpLnZhbHVlLHRoaXMpLm89QixiKSx0aGlzW05bMF1dPUosdGhpcykuSz1RLHRoaXMuTT16LHRoaXMpLkM9dixLKSxwKSxOKVsxXV09Qyx0aGlzKS5XPUEsbiksdGhpcy5QPVd9LGdCKS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVyblsoSz0oej0oQT0oYj0oQz0odj1bKEI9WzEwMCwzMDYsMTc3XSwzOSksMjQsMTJdLEo9a1s0Ml0oNDIsCnRoaXMsNCksZ1t2WzJdXSg5LEopKSxDLm5leHQoKS52YWx1ZSksQy5uZXh0KCkpLnZhbHVlLEMubmV4dCgpLnZhbHVlKSxDLm5leHQoKS52YWx1ZSksSFs0NF0oNDMsdGhpcy5VKSksSFs0NF0oNTgsdGhpcy5pKSxnWzQ4XSh2WzFdLDc4LHRoaXMuWCksZ1s0OF0oMTAsQlsyXSx0aGlzLkspLGdbNDhdKDE2LDExMTEsdGhpcy5qKSxnWzQ4XSh2WzFdLEJbMV0sdGhpcy5XKSxnWzQ4XSgyNiwzMTMsdGhpcy5QKSxnWzQ4XSgyNiwyOCx0aGlzLkgpLGMkKHRoaXMuTSx0aGlzLlgpLG1bdlsyXV0oNDIsdGhpcy5DLDApLG1bdlsyXV0odlswXSx0aGlzLm0sMCksbVt2WzJdXSh2WzBdLHRoaXMubywhMCksbVt2WzJdXSg5NSx0aGlzLmksLTEpLFJbMjddKDI3LHosdGhpcy5ELGIpLGdbNDhdKHZbMV0sMjE1LEEpLG1bdlsyXV0oNDQsSyxCWzBdKSxjJCh0aGlzLkEsQSx6LEspLG5ldyBKaCh0aGlzLmcsdGhpcy5BKSxIWzQ0XSg0MixiKSxIWzQ0XSg1OCxBKSxIWzQ0XSg0Nix6KSxIWzQ0XSg1OSwKSyldfSxnQikucHJvdG90eXBlLmw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtyZXR1cm5bKHY9KEI9KHg9KFo9KHA9KE49KEM9KG49KEE9KEo9KEs9KGY9KEw9WyhXPVsxLCExLDE3XSwyKSwiVyIsIlgiXSxnWzEyXSg3LGtbNDJdKDQwLHRoaXMsV1swXSkpLm5leHQoKS52YWx1ZSksW1JbMTZdKDU4LGYsT1syNV0oNSxmKSxXW0xbMF1dKSxJKHRoaXMuTSx0aGlzLk0sdGhpcy5ILGYpXSksZ1sxMl0oMTIsa1s0Ml0oNTcsdGhpcyw4KSkpLFE9Si5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKSkudmFsdWUsej1KLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsYj1KLm5leHQoKS52YWx1ZSxKLm5leHQoKS52YWx1ZSksZ1s3XSg2KSksZ1s3XSg1KSksZ1s3XSg2KSksZ1s3XSgzOSkpLHRoaXMpLkQsYyQobix0aGlzW0xbMl1dKSxZWzEyXSgxNixRLHRoaXMuSyksWVsxMl0oMTcsQSx0aGlzLmopLEkoeiwKbix0aGlzW0xbMV1dLFEsQSksa1sxOF0oMjksbixPWzI1XSg5LG4pKSxZWzBdKDI4LFosT1syNV0oOSxuKSxPWzI1XSgzLHRoaXMuVSkpLFlbMF0oMjQsQixPWzI1XSgxLEEpLE9bMjVdKDMsdGhpcy5pKSksbVswXSg4LHgsT1syNV0oOSx0aGlzLmkpLE9bMjVdKDEsQSkpLG1bMTJdKDQ0LHAsV1sxXSksWVswXSgyNyx2LFdbMF0sV1swXSkseCxtWzEyXSg5NyxwLCEwKSx2LFlbMF0oMjcsQixPWzI1XSg5LHApLE9bMjVdKDksdGhpcy5vKSksR1syNF0oMTAsdGhpcy5tLE9bMjVdKDEsdGhpcy5tKSxXWzBdKSxtWzRdKDEzLHAsdGhpcy5vKSxCLG1bNF0oMTMsQSx0aGlzLmkpLEdbMjRdKDE2LHRoaXMuQyxPWzI1XSg1LHRoaXMuQyksV1swXSksbVs0XSgxNCxuLHRoaXMuVSksYyQoQyx0aGlzW0xbMl1dKSxlWzddKDY0LE4pLEkoeixDLHRoaXNbTFsxXV0sUSxBLE4pLEkoeix0aGlzLk0sdGhpc1tMWzFdXSxDKSxSWzE5XSg3MyxmLHRoaXMuUCx0aGlzLk0pLG1bMF0oMTUsWixPWzI1XSgxLApmKSwyNiksSyxaLEhbNDRdKDQ3LG4pLEhbNDRdKDQ3LEMpLEhbNDRdKDU5LHopLEhbNDRdKDQzLFEpLEhbNDRdKDQ3LEEpLEhbNDRdKDU5LE4pLEhbNDRdKDU0LGYpLGtbMTddKDM0KSx0aGlzLmcsZ1s0OF0oMTAsMTIzMSxiKSxjJCh6LGIsdGhpcy5BKSxIWzQ0XSg1NSxiKSxIWzQ0XSg1MCx6KSxIWzQ0XSg0Myx0aGlzLkEpLGtbMTddKDM1KV19LE9bMjFdKDEsYjEsTEQpLGIxLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyl7cmV0dXJuWyhCPSh6PWtbSz1bNDYsMCw1OV0sNDJdKEtbMl0sdGhpcywxKSxnWzEyXSg1LHopLm5leHQoKS52YWx1ZSksZVs3XSg2NixCKSksUltLWzFdXSgyLEIsT1syNV0oMSxCKSwxMCksUltLWzBdXSgxNix0aGlzLEIpXX0sTylbMjFdKDUsbkYsTEQpLG5GKS5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCxqTixaRywKbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgsdm8sdTMsbEwsYXAsUVMsRjIsUHEsVVIsY28sTW0scGgseXEsaDMsV28sUSQsb3AsS2gsQm8sZmgsJDgpe3E9WzQsKCQ4PVsyNSwwLDUxXSwzMTMpLDBdO2Z1bmN0aW9uIFdxKGdFLHNtLE5VLHM4LE4xLFh0LEpRLCRmLHcwLHp5LGtmLFNYLG1OLE8xLGxtLHhoLHZxLERpLFdmLHVOLGFCLHg4KXtyZXR1cm4gRGk9WyhYdD0oYUI9WyhTWD0oV2Y9KHhoPShrZj0odzA9KE8xPSh6eT0odU49KHg4PVsxOSwoJGY9WzEsISh2cT1nWzddKDM4KSwxKSwwXSwwKSwyNV0sUilbeDhbMF1dKDczLGIzLE0sak4pLG0pWzEyXSg0Nyx4LCRmWzJdKSxtWzEyXSgzOSxLSywyMCkpLG1OPXgsbG09S0ssSlE9Z1s3XSg1KSxnWzddKDM4KSksZ1s3XSgzOCkpLGcpWzddKDcpLGdbN10oMzYpKSxnKVs3XSg3KSxSKVt4OFswXV0oMSxaLFJaLGIzKSxSW3g4WzBdXSgzMixmLFYsYjMpLFJbeDhbMF1dKDY0LHAsCnYsYjMpLFJbeDhbMF1dKDczLEwsSVosYjMpLEkob3AsUVMsaDMsWixmLHAsTCksWVt4OFsxXV0oMjksa2YsT1t4OFsyXV0oOSxzOCksT1t4OFsyXV0oNyxVKSksWVt4OFsxXV0oeDhbMl0seGgsJGZbeDhbMV1dLCRmW3g4WzFdXSksa2YsSShCOCxXbyxBLG9wKSxZW3g4WzFdXSgyNCxXZixPW3g4WzJdXSgxLEI4KSwkZlsxXSksUlt4OFswXV0oMzIsczgsTSxqTiksWVt4OFsxXV0oeDhbMl0sdnEsJGZbeDhbMV1dLCRmW3g4WzFdXSkseGgsV2YsWVt4OFsxXV0oMjYsSlEsT1t4OFsyXV0oOSxOMSksT1t4OFsyXV0oMSxVKSksWVt4OFsxXV0oMjcsdzAsJGZbeDhbMV1dLCRmW3g4WzFdXSksSlEsSShCOCxCbyxBLG9wKSxZW3g4WzFdXSgyNCxTWCxPW3g4WzJdXSgxLEI4KSwkZlsxXSksUlt4OFswXV0oOCxOMSxNLGpOKSxZW3g4WzFdXSgyOSx2cSwkZlt4OFsxXV0sJGZbeDhbMV1dKSx3MCxTWCxSW3g4WzBdXSg2NSxiMyxiTCxiMyksWVt4OFsxXV0oeDhbMl0sdnEsT1t4OFsyXV0oNSxVKSwKT1t4OFsyXV0oMyxiMykpXSxEWzE0XSg5OCxtTixhQixsbSkpLHVOKSx6eSxPMSxYdCx2cSxPWzQ4XSgyLDIzLEI4LE9beDhbMl1dKDEsTjEpLE9beDhbMl1dKDUsczgpKSxZW3g4WzFdXSgyNCxnRSxPW3g4WzJdXSgxLEI4KSwhMCldLERbMTRdKDU4LE5VLERpLHNtKX1yZXR1cm4oSj0odT0oVz1bKGxMPVsoWD1bKG1sPShwaD1bKFEkPVsoUD0ocjA9KFBxPShFPSh5cT0odm89KEtoPSh6OD0oaD0oYT0oZmg9KFc4PShsMz0ob1o9KGM9KGQ9KEpZPShOPShVUj0oRjI9KE1tPSh0PShRPShLPShyPShCbz0oV289KGJMPShLSz0obkQ9KEM9KEI4PSh1Mz0oaDM9KG9wPShJWj0oVj0oUlo9KEw9KGY9KGIzPSh4PShhcD0ocEQ9KFpHPShuPShBPSh2OD0odFk9KGZLPShTPShRcT0oQj1rWzQyXSg0Nix0aGlzLDU1KSxUOD1nWzEyXSg0LEIpLFQ4Lm5leHQoKSkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLGNvPVQ4Lm5leHQoKS52YWx1ZSxUOCkubmV4dCgpLnZhbHVlLApUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgpLm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLGpOPVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsUVM9VDgubmV4dCgpLnZhbHVlLE09VDgubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxaPVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSkscD1UOC5uZXh0KCkudmFsdWUsVDgubmV4dCgpKS52YWx1ZSxUOCkubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksdj1UOC5uZXh0KCkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgpLm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksRzg9VDgubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLApUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsVDgpLm5leHQoKS52YWx1ZSx6PVQ4Lm5leHQoKS52YWx1ZSxiPVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFU9VDgubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgpLm5leHQoKS52YWx1ZSxUOC5uZXh0KCkudmFsdWUpLFQ4Lm5leHQoKS52YWx1ZSksVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgubmV4dCgpLnZhbHVlKSxUOC5uZXh0KCkudmFsdWUpLFQ4Lm5leHQoKSkudmFsdWUsWGg9VDgubmV4dCgpLnZhbHVlLHN3PVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkudmFsdWUpLFQ4Lm5leHQoKS52YWx1ZSksZ1s3XSg0KSksZ1s3XSg2KSksZylbN10oNCksZylbN10oMzgpLGcpWzddKDcpLGcpWzddKDQpLGdbN10oNikpLGcpWzddKDM4KSxnWzddKDM3KSksdz1nWzddKDYpLGcpWzddKDM4KSxSKVsxOV0oMSxiMyxNLFpHKSxSWzE5XSgxLG5ELEMsYjMpLApSWzE5XSg0MCxHOCx2OCxuRCksbVskOFsxXV0oMTEsYSwxNSxPWyQ4WzBdXSgxLEc4KSksUlsxOV0oNzIsWixSWixiMyksUlsxOV0oOCxmLFYsYjMpLFJbMTldKDY0LHAsdixiMyksUlsxOV0oNDEsTCxJWixiMyksSShvcCxRUyxoMyxaLGYscCxMKSxJKEI4LHIsQSxvcCksWVskOFsxXV0oMjcsYSxPWyQ4WzBdXSg5LEI4KSwhMSksbVskOFsxXV0oMTMsYSxPWyQ4WzBdXSg3LEc4KSwxKSxJKEI4LGpOLG4sYjMpLGFdLFIpWzE5XSg2NSxiMyxNLHQpLFJbMTldKDEsWixSWixiMyksUlsxOV0oMSxmLFYsYjMpLFJbMTldKDQwLHAsdixiMyksUlsxOV0oMzMsTCxJWixiMyksSShvcCxRUyxoMyxaLGYscCxMKSxJKEI4LEssQSxvcCksWVskOFsxXV0oJDhbMF0saCxPWyQ4WzBdXSg5LEI4KSxxWzJdKSxJKEI4LGpOLG4sYjMpLGhdLFtSWzE5XSg5LGIzLE0sTW0pLFJbMTldKDY0LFosUlosYjMpLFJbMTldKDQwLGYsVixiMyksUlsxOV0oMzMsTCxJWixiMyksSShvcCxRUyxoMyxaLGYsTCksSShCOCwKeixBLG9wKSxZWyQ4WzFdXSgyNixQLE9bJDhbMF1dKDksQjgpLCExKSxSWzE5XSg5LFc4LGZoLGIzKSxZWyQ4WzFdXSgyNyx3LDEsMSksUF0pLGcpWzQ4XSgxNiw0NTIsUXEpLGdbNDhdKDI2LDMxNyxTKSxZWzEyXSgzLFFxLFFxKSxnWzQ4XSgyNixxWzFdLHY4KSxtWzEyXSgzOCxRUywiIiksbVsxMl0oMzksUSxvOSgpKSxnWzQ4XSgxMCw0MTYsdTMpLEkoak4sUVMsdTMsUVMpLEkoYXAsUVMsdTMsUVMpLGdbNDhdKDE4LDIxOCxSWiksZ1s0OF0oMTYsMTUzLFYpLGdbNDhdKDI2LCQ4WzJdLHYpLGdbNDhdKDEwLDQ5NixJWiksZ1s0OF0oMjQsMzcyLHIpLGdbNDhdKDI0LDMzOCxBKSxnWzQ4XSgxMCwzMDYsbiksZ1s0OF0oMjYsMjk4LGgzKSxnWzQ4XSgxOCwzNjIsQyksZ1s0OF0oMTAsMTQxLGJMKSxnWzQ4XSgxNiw3MyxXbyksZ1s0OF0oMjQsOTgsQm8pLGdbNDhdKDE2LDIwNixLKSxnWzQ4XSgxOCw5MzkseiksZ1s0OF0oMjQsMjM5LGIpLGdbNDhdKDI0LDE5MjEsZmgpLG1bMTJdKDk2LApkLGFBKCkpLFlbMTJdKDMsZCxkKSxtWzEyXSg0OCxjLGN1KCkpLEkoVSxRUyxiLFEpLEhbNDRdKDQ2LEYyKSxIWzQ0XSg1OCxVUiksSFs0NF0oNDMsTiksSFs0NF0oNDIsSlkpLFJbMTNdKDc4LFdvLE9bJDhbMF1dKDEsV28pLHl2KCkpLFJbMTNdKDc0LEJvLE9bJDhbMF1dKDUsQm8pLHl2KCkpLFJbMTNdKDcyLHIsT1skOFswXV0oMyxyKSx5digpKSxSWzEzXSg3NCxLLE9bJDhbMF1dKDcsSykseXYoKSksUlsxM10oNzYseixPWyQ4WzBdXSgzLHopLHl2KCkpXSxnKVs0OF0oMTAsNDM2LGZLKSxJKFpHLFFxLFMsZkspLFJbMTldKDMzLHBELHY4LFpHKSxtWzEyXSgzOSxCOCwzMCksSShwRCxkLGMscEQsQjgpLG1bMTJdKDQxLE0scVsyXSksRFsxNF0oMzQsTSxRJCxwRCksbVsxMl0oMzksTSxxWzJdKSxSWzE5XSg3MixwRCx2OCxqTiksbVskOFsxXV0oOSx6OCxxWyQ4WzFdXSxPWyQ4WzBdXSgzLHBEKSksV3EoS2gscEQsTSxGMixVUiksS2hdLGZEPVtnWzQ4XSgxMCw3NCxjbyksSSh0LFFxLApTLGNvKSxSWzE5XSg0MCxwRCx2OCx0KSxtWzEyXSg0OCxNLHFbMl0pLG1bMTJdKDQ0LEI4LDMwKSxJKHBELGQsYyxwRCxCOCksSShqTixRUyx1MyxRUyksRFsxNF0oMjYsTSxwaCxwRCksbVsxMl0oNDIsTSxxWzJdKSxSWzE5XSg2NSxwRCx2OCxqTiksbVskOFsxXV0oOSx6OCxxWyQ4WzFdXSxPWyQ4WzBdXSgxLHBEKSksV3Eodm8scEQsTSxOLEpZKSx2b10sZ1s0OF0oMTgsMTMzMix0WSkpLEkoTW0sUXEsUyx0WSksUlsxOV0oMzIscEQsdjgsTW0pLG1bMTJdKDM4LE0scVsyXSksbVsxMl0oNDAsQjgsMzApLEkocEQsZCxjLHBELEI4KSxJKGpOLFFTLHUzLFFTKSxtWzEyXSg0MCxXOCwhMSksRFsxNF0oMzQsTSxtbCxwRCksd10sW2dbNDhdKDI2LDM1MCxvWiksZ1s0OF0oMTYsMjQ2LGwzKSxnWzQ4XSgxOCw0NDYsWGgpLHo4LFlbJDhbMV1dKDI3LHlxLE9bJDhbMF1dKDMsRjIpLE9bJDhbMF1dKDksVSkpLFJbMTldKDczLEYyLEMsRjIpLHlxLEkoQjgsYXAsbixGMiksWVskOFsxXV0oMjcsCkUsT1skOFswXV0oNSxVUiksT1skOFswXV0oNyxVKSksUlsxOV0oNjQsVVIsQyxVUiksRSxJKEI4LGFwLG4sVVIpLFlbJDhbMV1dKDI2LHIwLE9bJDhbMF1dKDEsTiksT1skOFswXV0oOSxVKSksUlsxOV0oNjQsc3csb1osTiksUlsxOV0oMzMsQjgsbDMsTiksUlsxOV0oOSxOLEI4LHN3KSxSWzE5XSg4LE4sWGgsTikscjAsSShCOCxhcCxuLE4pLFlbJDhbMV1dKDI4LFBxLE9bJDhbMF1dKDEsSlkpLE9bJDhbMF1dKDksVSkpLFJbMTldKDQxLHN3LG9aLEpZKSxSWzE5XSg3MixCOCxsMyxKWSksUlsxOV0oOSxKWSxCOCxzdyksUlsxOV0oNjUsSlksWGgsSlkpLFBxLEkoQjgsYXAsbixKWSksdGhpcy5zdHJpbmdpZnkoVzgsVzgpLEkoQjgsYXAsbixXOCldKSxbSFs0NF0oNDIsUXEpLEhbNDRdKDYzLFMpLEhbNDRdKDU1LGZLKSxIWzQ0XSg0Nyx2OCksSFs0NF0oNTgsUlopLEhbNDRdKDQzLFYpLEhbNDRdKDU5LHYpLEhbNDRdKDQ3LElaKSxIWzQ0XSg0MyxyKSxIWzQ0XSg0MixXbyksSFs0NF0oNjMsCkJvKSxIWzQ0XSg1OSxLKSxIWzQ0XSg0Nyx6KSxIWzQ0XSg1NSxiTCksSFs0NF0oNTgsaDMpLEhbNDRdKDQyLG4pLEhbNDRdKDU0LHUzKSxIWzQ0XSg0NixvWiksSFs0NF0oNDYsbDMpLEhbNDRdKDUwLFhoKSxIWzQ0XSg0MixBKSxIWzQ0XSg1MCxDKSxIWzQ0XSg0MixiKSxIWzQ0XSg0NyxjbyksSFs0NF0oNDIsZmgpLEhbNDRdKDUwLHRZKSx0aGlzLnN0cmluZ2lmeShhcCxhcCksUls0Nl0oMTYsdGhpcyxhcCldKSxYKS5jb25jYXQobEwsZkQsVyx1LEopfSxPWzIxXSg1LG84LExEKSxvOC5wcm90b3R5cGUpLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgsdm8sdTMsbEwsYXAsUVMsRjIsUHEsVVIsY28sTW0scGgseXEsaDMsV28sUSQsb3AsS2gsQm8sZmgsJDgsCldxLGdFLHNtLE5VLHM4LE4xLFh0LEpRLCRmLHcwLHp5LGtmLFNYLG1OLE8xLGxtLHhoLHZxLERpLFdmLHVOLGFCLHg4LEtnLGZuLFk4LEZWLEJ3LGtXLHFNKXtyZXR1cm5bKHI9KE8xPShUOD0ocjA9KHZxPShKPShKUT0oYkw9KEpZPSh0PShzbT0obEw9KGZLPShOMT0oeD0oUD0oZmg9KEYyPShVPShQcT0oWTg9KFo9KHVOPShGVj0oUSQ9KGZEPShoPShFPShEaT0oVz0oeDg9KHhoPShJWj0odTM9KEE9KHp5PShCdz0oUVM9KGIzPShRcT0oQm89KFM9KFc4PShLSz0ocT0oZ0U9KFY9KFE9KEs9KEw9KFg9KEtoPShsMz0oQj0oY289KFdmPSh2PShhPShsbT0oRzg9KHlxPShjPShqTj0odjg9KG9aPSh1PShoMz0oTT0ocD0odm89KEtnPShXcT0oYUI9KE1tPSgkZj0oZD0oQz0obj0oa1c9KG1sPSh0WT0oZj1bMjE4LDE5NzMsKHFNPVs0NiwzLDQ0XSwxKV0sYXA9a1s0Ml0ocU1bMl0sdGhpcyw0MSksbkQ9Z1sxMl0ocU1bMV0sYXApLG5EKS5uZXh0KCkudmFsdWUsej1uRC5uZXh0KCkudmFsdWUsCm5ELm5leHQoKS52YWx1ZSksU1g9bkQubmV4dCgpLnZhbHVlLG5ELm5leHQoKSkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxuRCkubmV4dCgpLnZhbHVlLG5ELm5leHQoKSkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxzOD1uRC5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLFpHPW5ELm5leHQoKS52YWx1ZSxYaD1uRC5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkpLnZhbHVlLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLFdvPW5ELm5leHQoKS52YWx1ZSxuRCkubmV4dCgpLnZhbHVlLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkpLnZhbHVlLE5VPW5ELm5leHQoKS52YWx1ZSxuRC5uZXh0KCkpLnZhbHVlLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSwKbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLG5ELm5leHQoKSkudmFsdWUsbkQubmV4dCgpKS52YWx1ZSxuRC5uZXh0KCkpLnZhbHVlLG5EKS5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxrZj1uRC5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxnKVs3XSg0KSxnWzddKDM3KSksZylbN10oNiksZ1s3XSg0KSksZylbNDhdKDI2LDQ1Mix2OCksWVsxMl0oMTcsdjgsdjgpKSxiPWdbNDhdKDI0LDMxNyxqTiksZ1s0OF0oMjQsNDM2LGMpKSxJKSh5cSx2OCxqTixjKSxIKVtxTVsyXV0oNTAsak4pLEhbcU1bMl1dKDU0LGMpKSxnWzQ4XSgxOCw3OCxOVSkpLGcpWzQ4XSgxNiwxMzA4LEc4KSxZKVsxMl0oMSxOVSxOVSkscEQ9SSh5cSxOVSxHOCx5cSksSFtxTVsyXV0oNTEsRzgpKSxnWzQ4XSgyNCxmWzBdLGgzKSksZylbNDhdKDI2LDE1MyxXbyksZylbNDhdKDI2LDU0OCxNKSxnWzQ4XSgyNiw5NDcscCkpLGcpWzQ4XSgxOCxmWzFdLEtoKSxnKVs0OF0oMTAsMjM5LApYKSxzdz1nWzQ4XSgxMCwzMDYsbWwpLG1bMTJdKDQyLGxtLCIiKSksbVsxMl0oNDcsdSwwKSksejg9c2coTCxOVSkscGg9T1s2XSgxNiwwLGZbMl0seXEsW21bMTJdKDQwLGwzLCIiKSxSWzE5XSg5LHYsaDMsYSksUlsxOV0oNDEsV2YsV28sYSksUlsxOV0oNjUsY28sTSxhKSxSWzE5XSg5LEIscCxhKSxPWzQ4XSg3NCxsMyxPWzI1XSg3LHYpLCIiKSxPWzQ4XSg3MyxsMyxPWzI1XSg1LGwzKSxPWzI1XShxTVsxXSxXZikpLE9bNDhdKDczLGwzLE9bMjVdKHFNWzFdLGwzKSxPWzI1XSg5LGNvKSksT1s0OF0oNzgsbDMsT1syNV0ocU1bMV0sbDMpLE9bMjVdKDEsQikpLEkobDMsbDMsS2gpLGdbNDhdKDE2LDIwMzIseiksUlsxM10oNzMseixPWzI1XSg5LHopLHl2KCkpLEkodm8sbDMsWCx6KSxIW3FNWzJdXShxTVswXSx6KSxnMFs1XSgzMiwyNSxrZixPWzI1XShxTVsxXSx2bykpLGcwWzVdKDQxLDI1LGtmLE9bMjVdKDUsa2YpKSxZWzBdKDI3LEssT1syNV0oNyxrZiksITEpLEkob1osTCwKbWwsYSksS10sYSx1KSx3MD1IW3FNWzJdXSg2MixoMyksSFtxTVsyXV0ocU1bMF0sV28pKSxvcD1IW3FNWzJdXSg2MixNKSxIW3FNWzJdXSg1OCxwKSksVVI9SFtxTVsyXV0ocU1bMF0sS2gpLEhbcU1bMl1dKDYzLG1sKSksSClbcU1bMl1dKDYyLHZvKSxIW3FNWzJdXSg1NSxvWikpLEhbcU1bMl1dKDYyLHlxKSksSFtxTVsyXV0oNjMsTlUpKSxmbj1IW3FNWzJdXSg1OSx2KSxIW3FNWzJdXSg2MixXZikpLEhbcU1bMl1dKDU4LGNvKSksSClbcU1bMl1dKDU5LEIpLEhbcU1bMl1dKDUwLGwzKSksWHQ9SFtxTVsyXV0oNTEsa2YpLGdbNDhdKDE2LDMxMyxLZykpLFJaPVJbMTldKDksWkcsS2csTCksSFtxTVsyXV0oNTUsS2cpKSxtWzEyXSg5NSxzOCwhMSkpLG1OPW1bMTJdKDM2LEMsITEpLFlbMF0oMjksZ0UsT1syNV0oOSxaRyksMCkpLG1bMTJdKDQyLFdxLCExKSksQjg9bVsxMl0ocU1bMl0sWGgsITApLFlbMF0oMjcsUSxPWzI1XSgxLFpHKSxmWzJdKSksJDg9bVsxMl0oOTUsWGgsITEpLAptWzEyXSg5NSx1LDApKSxSWzE5XSgzMixhLHUsTCkpLGdbNDhdKDI0LDg2MyxrVykpLHc9UlsxOV0oNDAsTW0sa1csYSksbVsxMl0oMzYsV3EsITApKSxPWzZdKDUsMCxmWzJdLEwsW1JbMTldKDQwLGFCLGtXLGEpLFlbMF0oMjgsVixPWzI1XSg5LGFCKSxPWzI1XSgxLE1tKSksbVsxMl0oOTcsV3EsITEpLFlbMF0oMjYsUSxmWzJdLGZbMl0pLFZdLGEsdSkpLEgpW3FNWzJdXSg1OCxrVyksTj1IW3FNWzJdXSg0NyxNbSksSFtxTVsyXV0oNTEsYUIpKSxPKVsyNV0oOSxYaCksT1syNV0oMSxXcSkpLFJbMTNdKDExLEhbMjVdKDQzLE9bOV0oMjksMjQpLHM4KSxbZ1sxNl0oOTQsVDgpLGdbMTZdKDU0LE8xKV0pKSxxKSxLSyxiLFc4LFMsQm8sUXEsYjMsUVMsQncscEQsenksQSx1MyxJWix4aCx4OCxXLHN3LERpLEUsejgscGgsdzAsaCxvcCxmRCxVUixRJCxGVix1TixaLFk4LGZuLFBxLFUsRjIsZmgsWHQsUCxSWix4LE4xLG1OLGZLLGxMLEI4LHNtLCQ4LHQsSlksYkwsdyxKUSxKLFEsdnEsCk4scjAscixIW3FNWzJdXSg1NCxYaCksSFtxTVsyXV0oNTAsV3EpLFlbMF0oMjUsZ0UsT1syNV0oOSxzOCksITEpLGdbNDhdKDE4LDE4MSxkKSxSWzE5XSg0MCxkLGQsdjgpLGdbNDhdKDEwLDExMiwkZiksUlsxOV0oOSwkZiwkZixkKSxIW3FNWzJdXSg0MyxkKSxnWzQ4XSgxNiw0NzIsdFkpLEkoQywkZixYLHRZKSxIW3FNWzJdXSg1NSx0WSksSFtxTVsyXV0oNTQsJGYpLEhbcU1bMl1dKDQ3LFgpLGcwWzVdKDM3LDI1LEMsT1syNV0oNSxDKSksZzBbNV0oMzMsMjUsQyxPWzI1XSgxLEMpKSxnRSxIW3FNWzJdXSg1NCx1KSxIW3FNWzJdXSg0Nyx2OCksSFtxTVsyXV0oNDMsYSksSFtxTVsyXV0oNDcsWkcpLEhbcU1bMl1dKDYyLEwpLE9bNDhdKDEsMjMsbixPWzI1XSgxLEMpLE9bMjVdKDEsczgpKSxIW3FNWzJdXSg0MixzOCksT1s0OF0oNzQsU1gsT1syNV0ocU1bMV0sbiksT1syNV0oMSxsbSkpLEhbcU1bMl1dKDUxLGxtKSxIW3FNWzJdXSg1NSxuKSxIW3FNWzJdXSg2MixDKSxSW3FNWzBdXSg2NCwKdGhpcyxTWCldfSxPWzIxXSgxLGpzLExEKSxqcy5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSl7cmV0dXJuIHY9KFY9KHI9KHg9KEM9KEs9KFE9KEI9KFo9KHo9KEw9KHA9KGI9KFA9KG49KGY9KFc9a1s0Ml0oNjAsKHE9WzQxLDQ0LChKPVsxLDI0MCwxMzA4XSw3NSldLHRoaXMpLDE2KSxnWzEyXSg2LFcpKSxmLm5leHQoKS52YWx1ZSksZi5uZXh0KCkpLnZhbHVlLGYubmV4dCgpLnZhbHVlKSxmLm5leHQoKSkudmFsdWUsZi5uZXh0KCkudmFsdWUpLGYubmV4dCgpLnZhbHVlKSxmLm5leHQoKS52YWx1ZSksZi5uZXh0KCkpLnZhbHVlLEE9Zi5uZXh0KCkudmFsdWUsZi5uZXh0KCkudmFsdWUpLGYubmV4dCgpLnZhbHVlKSxmLm5leHQoKS52YWx1ZSksTj1mLm5leHQoKS52YWx1ZSxmLm5leHQoKS52YWx1ZSksZi5uZXh0KCkudmFsdWUpLGYubmV4dCgpLnZhbHVlKSxnKVs3XSg1KSxbZ1s0OF0oMTgsNDUyLG4pLFlbMTJdKDE3LApuLG4pLGdbNDhdKDI2LDE4MSxQKSxSWzE5XSgzMyxQLFAsbiksSFtxWzFdXSg1OCxuKSxnWzQ4XSgyNiwxMTIsYiksUlsxOV0oOSxiLGIsUCksSFtxWzFdXSg0NyxQKSxnWzQ4XSgxOCwyOCxwKSxtWzEyXShxWzBdLEwsMCksbVsxMl0oNDAseiw1RTMpLEkoYixiLHAsTCx6KSxIW3FbMV1dKDU0LEwpLEhbcVsxXV0oNDcseiksZ1s0OF0oMTgsMTIxLFopLGdbNDhdKDEwLDQyMixCKSxPWzQ4XSg3MixCLHZoOCgpLE9bMjVdKDMsQikpLE9bNDhdKHFbMl0sQixPWzI1XSgzLEIpLGtfKCkpLE9bNDhdKHFbMl0sQixPWzI1XSg3LFopLE9bMjVdKDcsQikpLEhbcVsxXV0oNDMsWiksUlsxM10oNzksQixPWzI1XSg5LEIpLGxmOCgpKSxnWzQ4XSgyNCxKWzFdLEEpLEkoUSxiLEEsQiksSFtxWzFdXSg2MixiKSxIW3FbMV1dKDU5LEEpLEhbcVsxXV0oNjIsQiksZ1s0OF0oMjYsNzgsSyksZ1s0OF0oMjQsSlsyXSxDKSxZWzEyXSgxOSxOLEspLEkoTixOLEMsUSksSFtxWzFdXSg0NixLKSxIW3FbMV1dKDQ3LApDKSxIW3FbMV1dKDYyLFEpLG1bMTJdKDQwLFYsLTEpLEkoTixOLHAsViksSFtxWzFdXSg1MSxwKSxnWzQ4XSgxMCwzMTMsciksUlsxOV0oNjUseCxyLE4pLG1bMF0oMTAsdixPWzI1XSg1LHgpLEpbMF0pLG1bMTJdKDk3LFYsMCksUlsxOV0oNjQsTixWLE4pLG1bMTJdKDQyLFYsSlswXSksUlsxOV0oOCx4LHIsTiksbVswXSg5LHYsT1syNV0oNSx4KSwyKSxSWzE5XSgzMyxOLFYsTiksdixIW3FbMV1dKDU1LHgpLEhbcVsxXV0oNjMsciksSFtxWzFdXSg1MCxWKSxSWzQ2XSg2Nix0aGlzLE4pXX0sMSkvWUMoMS40KSxIcT0oKCgoKCgoKE9bMjFdKDEsREIsTEQpLERCLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtyZXR1cm5bKHo9KFE9KG49KEs9KEo9KEI9KHA9KGI9KEE9KEM9Z1taPVsxMiw3LCJvIl0sWlswXV0oMyxrWzQyXSg1OSx0aGlzLDgpKSxDKS5uZXh0KCkudmFsdWUsQy5uZXh0KCkudmFsdWUpLEMubmV4dCgpLnZhbHVlKSxDLm5leHQoKS52YWx1ZSksCkMubmV4dCgpKS52YWx1ZSxDLm5leHQoKS52YWx1ZSksQykubmV4dCgpLnZhbHVlLEMpLm5leHQoKS52YWx1ZSxnW1pbMV1dKFpbMV0pKSx2PWdbWlsxXV0oMzYpLG1bNF0oNSx0aGlzW1pbMl1dLHApKSxtWzRdKDEzLHRoaXMubSxCKSxtWzRdKDQsdGhpcy5BLEopLG1bNF0oWlswXSx0aGlzLlcsSyksbVs0XSgxNCx0aGlzLkMsbiksbVswXSgxMCx6LDAsT1syNV0oMSx0aGlzLlgpKSxIWzQ0XSg1NCxwKSxIWzQ0XSg1MSxCKSxIWzQ0XSg1MSxKKSxIWzQ0XSg1NCxLKSxIWzQ0XSg1NSxuKSx6LEhbNDRdKDUxLGIpLG1bMF0oMTUsdixPWzI1XSgxLHRoaXMuWCksMiksUlswXSg0LGIsT1syNV0oWlsxXSx0aGlzLlMpLE9bMjVdKDMsdGhpcy5YKSksWVtaWzBdXSgyLFEsdGhpcy5nKSxJKGIsUSx0aGlzLmtKLGIpLHYsYyQoQSx0aGlzLmksdGhpcy5ELHAsYixCLEosSyxuKSx0aGlzLnN0cmluZ2lmeShBLEEpLFJbNDZdKDgwLHRoaXMsQSldfSxEQi5wcm90b3R5cGUpLmw9ZnVuY3Rpb24oQiwKeixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4LGpOLFpHLG5ELHY4KXtyZXR1cm5bKHI9KG49KFA9KHU9KFpHPVsodD0oUT0oQjg9KFU9KFg9KEU9KEo9KGQ9KHo4PShiMz0oaD0oTj1bKFo9KHA9KFc9KEs9KEM9KHc9KEw9KEE9KGM9KE09KGE9KHY4PShiPVsyLDNFMywxNTc4XSxbNSwyOCw2Ml0pLGdbMTJdKHY4WzBdLGtbNDJdKDQ2LHRoaXMsMTMpKSksbkQ9YS5uZXh0KCkudmFsdWUsYS5uZXh0KCkudmFsdWUpLGEpLm5leHQoKS52YWx1ZSxhLm5leHQoKS52YWx1ZSksQj1hLm5leHQoKS52YWx1ZSxhLm5leHQoKSkudmFsdWUsSlk9YS5uZXh0KCkudmFsdWUsUz1hLm5leHQoKS52YWx1ZSxhKS5uZXh0KCkudmFsdWUsdj1hLm5leHQoKS52YWx1ZSxxPWEubmV4dCgpLnZhbHVlLGEpLm5leHQoKS52YWx1ZSxhKS5uZXh0KCkudmFsdWUsZ1s3XSgzNykpLGdbN10oNCkpLGcpWzddKDM2KSx0aGlzLnVZKSwKbVsxMl0oOTUsQywwKSxSWzE5XSg3Myx0aGlzLlYsQyx0aGlzLlYpLEdbMjVdKDgyLGJbMF0sdGhpcy5WLHRoaXMuSyksdkkobkQsdGhpcy5HLHRoaXMuViksdkkoTSx0aGlzLkwsdGhpcy5WKSxHWzI0XSgxMCx0aGlzLkQsT1syNV0oNyx0aGlzLkQpLDEpLEdbMjRdKDI2LHRoaXMuTSxPWzI1XSgzLHRoaXMuTSksMSksSFs0NF0oNTEsSyksWVswXSgyNSxXLE9bMjVdKHY4WzBdLHRoaXMuVSksT1syNV0oMSxLKSksUlsxNl0oNTYsYyxPWzI1XSh2OFswXSxuRCksT1syNV0oMyx0aGlzLlUpKSxtWzBdKDExLFcsYlsxXSxPWzI1XSh2OFswXSxjKSksR1syNF0oMjQsdGhpcy5YLE9bMjVdKDEsdGhpcy5YKSwxKSxSWzE2XSg1OCxCLE9bMjVdKDcsYyksT1syNV0oMyx0aGlzLm8pKSxSWzBdKDYsQixPWzI1XSg5LEIpLE9bMjVdKDEsdGhpcy5YKSksR1syNF0oMTAsTCxPWzI1XSg5LHRoaXMubyksT1syNV0oNyxCKSksUlsxNl0oNjAsSlksT1syNV0oMSxjKSxPWzI1XSgzLEwpKSxSWzE2XSg2MCwKQyxPWzI1XSg5LGMpLE9bMjVdKDEsdGhpcy5vKSksWVs0MV0oMjEsSlksT1syNV0oMSxKWSksT1syNV0oNyxDKSksR1syNF0oMTgsdGhpcy5TLE9bMjVdKDcsdGhpcy5TKSxPWzI1XSgzLEpZKSksbVs0XSgxMyxMLHRoaXMubyksWVsxMl0oMixxLHRoaXMuZyksSShDLHEsdGhpcy5ILGMpLFlbNDFdKDIyLFMsT1syNV0oMyxDKSxmXyksSShTLHEsdGhpcy5QLFMpLFJbMTldKDMyLEMsUyx0aGlzLm0pLEdbMjRdKDI2LEMsT1syNV0oOSxDKSwxKSxtWzMzXSgxNCx0aGlzLm0sUyxPWzI1XSg5LEMpKSxIWzQ0XSg1MCxLKSxZWzBdKDI5LHAsT1syNV0oOSx0aGlzLkkpLE9bMjVdKDMsSykpLG1bMF0oMTIscCwxLE9bMjVdKDcsdGhpcy5NKSksUlsxNl0oMjQsQSxPWzI1XSg3LG5EKSxPWzI1XSh2OFswXSx0aGlzLkkpKSxtWzBdKDEzLFcsT1syNV0odjhbMF0sQSksMSksbVswXSgxMixXLGJbMV0sT1syNV0oOSxBKSksSShDLHEsdGhpcy5ILEEpLFlbNDFdKDcsdyxPWzI1XSh2OFswXSxDKSxmXyksCkkodyxxLHRoaXMuUCx3KSxSWzE5XSg3MixDLHcsdGhpcy5BKSxHWzI0XSgyNCxDLE9bMjVdKDMsQyksMSksbVszM10oMzMsdGhpcy5BLHcsT1syNV0oMSxDKSksWVswXSgyNixXLDEsMSkscCxXLG1bNF0oNCxuRCx0aGlzLlUpLEkoSyx0aGlzLmosdGhpcy5BTCxNLHRoaXMuViksWixIWzQ0XSg0MyxuRCksSFs0NF0oNDMsTSksSFs0NF0oNTksQiksSFs0NF0oNDIsYyksSFs0NF0odjhbMl0sQSksSFs0NF0oNjMsQyksSFs0NF0oNTUsTCksSFs0NF0oNTEsUyksSFs0NF0oNTEsdyksSFs0NF0oNDMsdiksSFs0NF0oNDYsSlkpLGtbMTddKDQ1KV0sZylbMTJdKDksa1s0Ml0odjhbMl0sdGhpcywxMCkpLGgubmV4dCgpLnZhbHVlKSxoLm5leHQoKS52YWx1ZSksaC5uZXh0KCkpLnZhbHVlLGgubmV4dCgpLnZhbHVlKSxWPWgubmV4dCgpLnZhbHVlLGgubmV4dCgpLnZhbHVlKSxoKS5uZXh0KCkudmFsdWUsej1oLm5leHQoKS52YWx1ZSxoLm5leHQoKS52YWx1ZSksaCkubmV4dCgpLnZhbHVlLApzdz1nWzddKDM2KSxnKVs3XSgzNiksZ1s3XSg3KSksdGhpcy53YiksbVsxMl0oNDQsWCwwKSxSWzE5XSgzMix0aGlzLlYsWCx0aGlzLlYpLEdbMjVdKDgxLGJbMF0sdGhpcy5WLHRoaXMuSyksdkkoYjMsdGhpcy5HLHRoaXMuViksdkkoejgsdGhpcy5MLHRoaXMuViksSFs0NF0oNDYseiksWVswXSgyNyx0LE9bMjVdKDksejgpLE9bMjVdKDkseikpLEkoejgsdGhpcy5qLHRoaXMuWGcsejgpLEhbNDRdKDU4LHopLFlbMF0oMjUsdCxPWzI1XSg3LHo4KSxPWzI1XSgxLHopKSx2SShkLHRoaXMuRyx6OCksUlsxNl0odjhbMV0sSixPWzI1XSgzLGIzKSxPWzI1XSg3LGQpKSxtWzBdKDksUSxiWzFdLE9bMjVdKDEsSikpLFlbMTJdKDEsRSx0aGlzLmcpLEkoWCxFLHRoaXMuSCxKKSxZWzQxXSg3MSxVLE9bMjVdKDcsWCksZl8pLEkoVSxFLHRoaXMuUCxVKSxSWzE5XSg0MSxYLFUsdGhpcy5XKSxHWzI0XSgxOCxYLE9bMjVdKDksWCksMSksbVszM10oMTMsdGhpcy5XLFUsT1syNV0odjhbMF0sWCkpLAp0LEhbNDRdKDUxLHopLFlbMF0oMjksUSxPWzI1XSgxLHRoaXMuVSksT1syNV0oMSx6KSksbVsxMl0oMzgseiwhMCksbVswXSgxMixRLE9bMjVdKHY4WzBdLHRoaXMuTSksYlswXSksUlsxNl0oMjQsVixPWzI1XSgxLGIzKSxPWzI1XSg5LHRoaXMuVSkpLG1bMF0oMTEsUSxiWzFdLE9bMjVdKDMsVikpLEkoWCxFLHRoaXMuSCxWKSxZWzQxXSg2LEI4LE9bMjVdKHY4WzBdLFgpLGZfKSxJKEI4LEUsdGhpcy5QLEI4KSxSWzE5XSgxLFgsQjgsdGhpcy5DKSxHWzI0XSgxMCxYLE9bMjVdKDMsWCksMSksbVszM10oNDYsdGhpcy5DLEI4LE9bMjVdKDksWCkpLFEsbVs0XSh2OFswXSxiMyx0aGlzLkkpLG1bMF0oOCxzdyxPWzI1XSgzLHRoaXMuTSksMSksUlsxNl0oMjYsdGhpcy5NLE9bMjVdKDMsdGhpcy5NKSwxKSxzdyxIWzQ0XSh2OFsyXSx6OCksSFs0NF0oNTksYjMpLEhbNDRdKDUwLGQpLEhbNDRdKDU1LEopLEhbNDRdKHY4WzJdLFYpLEhbNDRdKHY4WzJdLEUpLEhbNDRdKDYzLFgpLEhbNDRdKDQ3LAp6KSxIWzQ0XSg1NCxVKSxIWzQ0XSg1OCxCOCksa1sxN10oMzcpXSxnWzEyXSg5LGtbNDJdKDYzLHRoaXMsdjhbMF0pKSkseD11Lm5leHQoKS52YWx1ZSxmPXUubmV4dCgpLnZhbHVlLHUubmV4dCgpLnZhbHVlKSx1Lm5leHQoKS52YWx1ZSksak49dS5uZXh0KCkudmFsdWUsW3RoaXMucHEsZ1s0OF0oMTgsNDUyLFApLFlbMTJdKDE5LFAsUCksZ1s0OF0oMTgsMTgxLG4pLFJbMTldKDEsbixuLFApLGdbNDhdKDI0LDU0MSxqTiksZ1s0OF0oMjYsNzkzLHgpLGdbNDhdKDEwLGJbMl0sZiksSShQLG4sak4seCx0aGlzLkIpLEkoUCxuLGpOLGYsdGhpcy5ucSksSFs0NF0oNTUsbiksSFs0NF0oNDIsUCksSFs0NF0oNTksak4pLEhbNDRdKDQzLHgpLEhbNDRdKDU0LGYpLGtbMTddKDM2KV0pLE4pLFpHLHJdfSxEQi5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4gQT0oej0ocD0oYj0oQz0oQj0odj0obj1nWzEyXSgxMixrWzQyXSgoVz1bKEs9WzYxNywKNzkzLDEzMF0sIkIiKSw0NiwyNV0sNDcpLHRoaXMsOSkpLG4ubmV4dCgpLnZhbHVlKSxuKS5uZXh0KCkudmFsdWUsWj1uLm5leHQoKS52YWx1ZSxuLm5leHQoKS52YWx1ZSksbi5uZXh0KCkudmFsdWUpLG4ubmV4dCgpLnZhbHVlKSxKPW4ubmV4dCgpLnZhbHVlLG4ubmV4dCgpKS52YWx1ZSxuLm5leHQoKSkudmFsdWUsUT1nWzddKDM3KSxbZ1s0OF0oMTgsNzgsdGhpcy5pKSxnWzQ4XSgxNiwxOTEsdGhpcy5nKSxnWzQ4XSgyNiwzNjQsdGhpcy5rSiksZ1s0OF0oMTAsMzQ2LHRoaXMuaVkpLGdbNDhdKDE2LDEyODQsSiksSFs0NF0oV1sxXSx0aGlzLlUpLFlbMTJdKDEsdGhpcy5qLHRoaXMuaVkpLHNnKHRoaXMuaix0aGlzLmopLEhbNDRdKDUxLHRoaXMuSSksbVsxMl0oNDEsdGhpcy5ELDApLG1bMTJdKDk2LHRoaXMuWCwwKSxtWzEyXSg5Nyx0aGlzLm8sMCksbVsxMl0oNDIsdGhpcy5TLDApLG1bMTJdKDQ4LHosV1syXSksYyQodGhpcy5tLHRoaXMuaSx6KSxtWzEyXSg0MCxBLDApLEkodGhpcy5tLAp0aGlzLm0sSixBKSxjJCh0aGlzLkEsdGhpcy5pLHopLEkodGhpcy5BLHRoaXMuQSxKLEEpLGMkKHRoaXMuVyx0aGlzLmkseiksSSh0aGlzLlcsdGhpcy5XLEosQSksYyQodGhpcy5DLHRoaXMuaSx6KSxJKHRoaXMuQyx0aGlzLkMsSixBKSxtWzEyXSg0MSx0aGlzLk0sMCksSFs0NF0oNTksSiksZ1s0OF0oMjYsS1syXSxBKSxPWzM4XSg3MiwyLDgsQSx0aGlzLkssUSksZ1s0OF0oMTYsODM2LEEpLG1bMzldKDM2LEEsUSx0aGlzLkcsdGhpcy5LKSxnWzQ4XSgxOCwzMjgsQSksbVszOV0oMzcsQSxRLHRoaXMuTCx0aGlzLkspLGdbNDhdKDI0LDMxMyx0aGlzLlcxKSxnWzQ4XSgxOCw2OTAsdGhpcy5QKSxnWzQ4XSgxNiwzMDYsdGhpcy5sWSksZ1s0OF0oMTYsNTgzLHRoaXMuSCksZ1s0OF0oMTAsODAzLHRoaXMuQUwpLGdbNDhdKDE4LDEwNSx0aGlzLlhnKSxSWzI3XSgzMSx0aGlzW1dbMF1dLHRoaXMudVksdGhpcy5WKSxnWzQ4XSgxOCwxODEsWiksZ1s0OF0oMjQsS1swXSxDKSxnWzQ4XSgxMCwKS1sxXSxiKSxnWzQ4XSgyNCw0NTIsdiksWVsxMl0oMTksdix2KSxSWzE5XSg2NCxaLFosdiksSSh2LFosQyxiLHRoaXNbV1swXV0pLFJbMjddKDI2LHRoaXMubnEsdGhpcy53Yix0aGlzLlYpLGdbNDhdKDEwLDE1NzgscCksSSh2LFosQyxwLHRoaXMubnEpLG5ldyBKaCh0aGlzLnBxLHRoaXMuViksUSxIWzQ0XSg0MixBKSxIWzQ0XShXWzFdLHYpLEhbNDRdKDQyLEIpLEhbNDRdKDU5LFopLEhbNDRdKFdbMV0sQyksSFs0NF0oV1sxXSxiKSxIWzQ0XSg1OCxwKV19LERCKS5wcm90b3R5cGUuUj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCl7KHRoaXMuUD0odGhpcy5rSj0odGhpc1t0aGlzLkQ9KCh0aGlzLmxZPSh0aGlzLlcxPSh0aGlzLkg9KCh0aGlzLkc9KHRoaXMuaT0odGhpcy5TPSh0aGlzLlc9KHRoaXMuSz0oKHRoaXMuVj0odGhpcy5NPSh0aGlzLlhnPSh0aGlzLmlZPSh0aGlzLlU9KHRoaXNbdGhpc1soVz0KKGQ9KEM9KFo9KHE9KGI9KEU9KHY9KE49KGE9KFA9KFg9KGY9KEw9KEo9KFM9KHI9KEE9KHU9KG49KHg9KHo9KGM9KFY9KHQ9KGg9WyJDIiwiQSIsIm5xIl0sQj1nWzEyXSg5LHlbNDldKDEsdGhpcywyOCkpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEs9Qi5uZXh0KCkudmFsdWUsUT1CLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkpLnZhbHVlLHA9Qi5uZXh0KCkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCKS5uZXh0KCkudmFsdWUsQi5uZXh0KCkpLnZhbHVlLApCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsaClbMl1dPVEsaFswXV09Six0KSxwKSx2KSxMKSxmKSx0aGlzLmo9Yyx0aGlzLkw9YSx0aGlzKS5YPXgsWCksUyksdGhpcy5BTD1FLHUpLE4pLFApLHRoaXMpLm89bixXKSxiKSxkKSx0aGlzKS5CPUssdGhpcy5nPXEsdGhpcy5tPUEseiksaFsxXV09cixaKSxDKSx0aGlzKS5JPVZ9LE9bMjFdKDQseG4sTEQpLHhuLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuW2MkKChLPShKPShCPSh6PWdbMTJdKDQsa1s0Ml0oNTYsdGhpcywoQz1bIlgiLDQxLCJNIl0sMykpKSx6Lm5leHQoKS52YWx1ZSksei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSxCKSx0aGlzLmksdGhpc1tDWzBdXSksdGhpcy5zdHJpbmdpZnkoQixCKSxjJCh0aGlzW0NbMF1dLHRoaXMuaSksbVsxMl0oMzgsdGhpcy5tLC0xKSxtWzEyXShDWzFdLHRoaXMuQSwwKSxnWzQ4XSgxOCwKNjk2LEopLGMkKEssSix0aGlzW0NbMl1dKSxtWzEyXSg5NSxLLDUwMCksYyQodGhpc1tDWzJdXSx0aGlzLkMsdGhpcy5XLEspLEhbNDRdKDU0LEopLEhbNDRdKDUwLEspLFJbNDZdKDE4LHRoaXMsQildfSx4bikucHJvdG90eXBlLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXsodGhpc1sodGhpcy5NPSgodGhpcy5TPSgoKHRoaXMuZz0oKCh0aGlzLks9KHRoaXMubz0oSj0ocD0oQj0oUT0oSz0oYj0obj0oZj0oTj0ocj0oTD0oWj0oeD0oVj0oQz0oej1nWzEyXSgxMSx5W1A9WyJWIiwiaSIsNDldLFBbMl1dKDcsdGhpcywxOCkpLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksCnoubmV4dCgpKS52YWx1ZSx6Lm5leHQoKSkudmFsdWUsei5uZXh0KCkudmFsdWUpLHY9ei5uZXh0KCkudmFsdWUsVz16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksQT16Lm5leHQoKS52YWx1ZSxRKSx0aGlzLmo9TCxyKSx0aGlzKS5XPWYsdGhpcylbUFsxXV09YixwKSx0aGlzKS5BPUosdGhpcykuRD1BLHYpLHRoaXMpLlg9QyxWKSx0aGlzLkw9eCx0aGlzLkM9TixQKVswXV09bix0aGlzLlU9Syx0aGlzLlA9Qix0aGlzLm09Vyx0aGlzKS5IPVp9LHhuLnByb3RvdHlwZS5sPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxKXtyZXR1cm5bKEw9KHI9KEM9KHY9KEE9KEo9KFo9KE49KFE9KEI9KHo9KFA9KGY9KHg9Z1soVz0ocT1bIlgiLCJVIiwocD0obj1nWzddKDUpLGdbN10oMzcpKSwxMildLFsxMSwwLDE2XSkscSlbMl1dKHFbMl0sa1s0Ml0oNjEsdGhpcyxXWzJdKSkseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSksCngubmV4dCgpLnZhbHVlKSxWPXgubmV4dCgpLnZhbHVlLHgpLm5leHQoKS52YWx1ZSx4KS5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKSkudmFsdWUseC5uZXh0KCkudmFsdWUpLGI9eC5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKSkudmFsdWUsSz14Lm5leHQoKS52YWx1ZSx0aGlzKS5HLEdbMjRdKDE2LHRoaXMuQSxPWzI1XSgzLHRoaXMuQSksMSksWVtxWzJdXSgxNyxQLHRoaXNbcVsxXV0pLFJbMTldKDQwLHosdGhpcy5nLFApLEhbNDRdKDU5LFApLFJbMTldKDksQix0aGlzLlMseiksSFs0NF0oNTQseiksbVtxWzJdXSg0MCxRLFdbMV0pLG1bcVsyXV0oMzYsTiw1RTMpLEkoQixCLHRoaXMuSyxRLE4pLEhbNDRdKDQ2LFEpLEhbNDRdKDQyLE4pLFJbMTNdKDc1LFosT1syNV0oNyx0aGlzLkQpLElMKCkpLEkoVixCLHRoaXMuUCxaKSxIWzQ0XSg1MSxaKSxIWzQ0XSg2MixCKSxtW3FbMl1dKDQwLAp2LFdbMV0pLFlbMF0oMjgsbixPWzI1XSg5LFYpLE9bMjVdKDMsQikpLFJbMTldKDczLHYsdGhpcy5vLFYpLG4sWVswXSgyOSxwLE9bMjVdKDksdiksT1syNV0oOSx0aGlzLm0pKSxtWzRdKDEzLHYsdGhpcy5tKSxlWzddKDEsZiksYyQoSix0aGlzLmksZix2KSxJKEssdGhpc1txWzBdXSx0aGlzLkgsSiksUlsxOV0oNzIsYix0aGlzLm8sdGhpc1txWzBdXSksbVswXSgxMCxwLE9bMjVdKDMsYiksV1swXSksbVtxWzJdXSg5NyxDLDUpLG1bcVsyXV0oNDAsciwzKSxJKEssdGhpc1txWzBdXSx0aGlzLmosQyxyKSxwLFlbNDFdKDIwLEwsNTAwLE9bMjVdKDcsdGhpcy5BKSksYyQodGhpcy5NLHRoaXMuQyx0aGlzLlcsTCksSFs0NF0oNDMsZiksSFs0NF0oNTEsUCksSFs0NF0oNDMseiksSFs0NF0oNDMsQiksSFs0NF0oNjIsViksSFs0NF0oNDMsUSksSFs0NF0oNTgsTiksSFs0NF0oNDYsWiksSFs0NF0oNDYsSiksSFs0NF0oNTksQSksSFs0NF0oNDcsdiksSFs0NF0oNDIsYiksSFs0NF0oNjMsCkwpLEhbNDRdKDQ2LEspLGtbMTddKDMzKSx0aGlzLkksZ1s0OF0oMjYsNjk2LEEpLGMkKFAsQSx0aGlzLk0pLEhbNDRdKDUxLEEpLEhbNDRdKDU5LHRoaXMuTSksa1sxN10oMzUpXX0seG4ucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6LEspe3JldHVyblsoQj0oej1bMTgxLChLPVs4MzYsMzgsIlYiXSwwKSwxMTJdLGdbMTJdKDcsa1s0Ml0oNjAsdGhpcywxKSkubmV4dCgpLnZhbHVlKSxnKVs0OF0oMjQsNzgsdGhpcy5pKSxnWzQ4XSgxNiw0NTIsdGhpcy5VKSxnWzQ4XSgxMCwzMTMsdGhpcy5vKSxnWzQ4XSgyNCwyMzksdGhpcy5QKSxnWzQ4XSgxMCx6WzBdLHRoaXMuZyksZ1s0OF0oMTYselsyXSx0aGlzLlMpLGdbNDhdKDE4LEtbMF0sdGhpcy5MKSxnWzQ4XSgyNCwzMDYsdGhpcy5IKSxnWzQ4XSgyNiwxOTUsdGhpcy5qKSxnWzQ4XSgxMCwxMzQsdGhpcy5DKSxnWzQ4XSgyNiwyOCx0aGlzLkspLGdbNDhdKDEwLDU1NSx0aGlzLkQpLG1bMTJdKDQ0LHRoaXMuQSx6WzFdKSxtWzEyXShLWzFdLAp0aGlzLm0sLTEpLGMkKHRoaXMuWCx0aGlzLmkpLFJbMjddKDI1LHRoaXMuVyx0aGlzLkcsdGhpc1tLWzJdXSksbVsxMl0oMzYsQiw1MDApLGMkKHRoaXMuTSx0aGlzLkMsdGhpcy5XLEIpLG5ldyBKaCh0aGlzLkksQiksSFs0NF0oNDIsQildfSxPWzIxXSgyLFpCLExEKSxaQikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEM9KEo9KEI9KHo9KEs9KGI9KEE9WzQ0LDE5LDRdLGtbNDJdKDU2LHRoaXMsQVsyXSkpLGdbMTJdKEFbMl0sYikpLEsubmV4dCgpKS52YWx1ZSxLKS5uZXh0KCkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxbZ1s0OF0oMTAsMTIyLEopLGdbNDhdKDEwLDQ0MSxDKSxZWzEyXSgxOCx6LEopLFJbQVsxXV0oMSxCLEMseiksSFtBWzBdXSg0MixKKSxIW0FbMF1dKDUwLEMpLFJbNDZdKDE2LHRoaXMsQildfSxPWzIxXSgzLEFrLExEKSxBay5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm5bKHY9CihBPShKPShDPSh6PShCPWtbNDJdKDQ0LHRoaXMsKFE9WzI0LDUsNDhdLFEpWzFdKSxnKVsxMl0oMSxCKSx6Lm5leHQoKSkudmFsdWUsYj16Lm5leHQoKS52YWx1ZSxwPXoubmV4dCgpLnZhbHVlLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksT1syNV0oMSxBKSksSz1PWzI1XShRWzFdLHApLGdbUVsyXV0oUVswXSwxMjIsQykpLFlbMTJdKDEsSixDKSxIWzQ0XSg1NCxDKSxnW1FbMl1dKDI2LDg1NSxiKSxSWzE5XSgxLEEsYixKKSxIWzQ0XSg1OCxiKSxIWzQ0XSg1MCxKKSxtWzEyXSgzOCxwLCIiKSxPW1FbMl1dKDcyLEEsSyx2KSxIWzQ0XSg1OCxwKSxSWzQ2XSgxOCx0aGlzLEEpXX0sTylbMjFdKDIsR0MsTEQpLEdDLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe3JldHVybihbWzExOCwxXSxbMjI4LDhdLFsyOSwxMjVdLFsyMDMsMF0sWzM0NywwXSxbODM1LDNdLFs4MzcsNDZdLFsoTj0oSz0oQT0oej0oSj0odj0oUT0KKEM9KEI9KHg9KG49Wzc4LDE1MTgsKEw9KHA9W10sWzEyLDQ4LDE0MDldKSwxMyldLGI9Z1tMWzBdXSg1LGtbNDJdKDQ0LHRoaXMsblsyXSkpLFc9Yi5uZXh0KCkudmFsdWUsYi5uZXh0KCkudmFsdWUpLGIpLm5leHQoKS52YWx1ZSxaPWIubmV4dCgpLnZhbHVlLGIubmV4dCgpKS52YWx1ZSxiLm5leHQoKS52YWx1ZSksYikubmV4dCgpLnZhbHVlLGIubmV4dCgpLnZhbHVlKSxiLm5leHQoKSkudmFsdWUsYi5uZXh0KCkudmFsdWUpLGIubmV4dCgpKS52YWx1ZSxiKS5uZXh0KCkudmFsdWUsZj1iLm5leHQoKS52YWx1ZSwyMDMpLDEwXSxbNzMzLDFdLFs5ODksNV0sWzgzNyw0NV0sWzQwMCwwXSxbNDQ0LDJdLFszNDcsMV0sWzEyMiwzOF0sWzgzNyw0OF0sWzg0MiwwXV0uZm9yRWFjaChmdW5jdGlvbihyLFYsUCxxLGMsRSxTKXsocT0oUD0oVj0oYz0oUz1bMSwyNiwyNV0sRT1nWzEyXSg3LHIpLEUpLm5leHQoKS52YWx1ZSxFLm5leHQoKSkudmFsdWUsZ1s3XSg1KSksZ1s3XSg0KSkscCkucHVzaChbSFs0NF0oNDIsClcpLGdbNDhdKDE2LGMsSiksWVsxMl0oMTYseixKKSxZWzBdKFNbMV0sUCxPW1NbMl1dKDcseiksT1tTWzJdXSgzLFcpKSxSWzE5XSg2NSxBLFEseiksWVswXSgyNyxQLE9bU1syXV0oMyxBKSxPW1NbMl1dKDcsVykpLEkoSyxaLEMsQSksbVsxMl0oOTcsTixWKSxSWzE5XSg0MSxmLE4sSyksWVswXSgyOSxQLE9bU1syXV0oNyxmKSxPW1NbMl1dKDUsVykpLERbNDVdKDMsT1tTWzJdXSg3LGYpLGYpLEkoVyxCLHYsZiksWVswXSgyNyxxLFNbMF0sU1swXSksUCxtWzEyXSg0MixmLDApLEkoVyxCLHYsZikscV0pfSksW2dbTFsxXV0oMTYsblswXSx4KSxjJChCLHgpLEhbNDRdKDU4LHgpLGdbTFsxXV0oMTAsTFsyXSxaKSxZW0xbMF1dKDEsWixaKSxnW0xbMV1dKDE2LDYzMyxDKSxnW0xbMV1dKDEwLG5bMV0sUSksZ1tMWzFdXSgxNiwzMDYsdildKS5jb25jYXQoZVszM10oTFswXSxwKSxbSFs0NF0oNTEsSiksSFs0NF0oNDcsQyksSFs0NF0oNTEsUSksSFs0NF0oNTgsdiksa1sxOF0oMzAsQiwKT1syNV0oNSxCKSksUls0Nl0oODIsdGhpcyxCKV0pfSx4JCkoKSxuNykoKSxxVT1NVDMoKSx5JD1hYSgpLGNxPUJpMCgpLFdIPXpXRygpLGdPPUQwMCgpLHY0Mz1PXygpLFQ5dz1tZygpLFg1PSgoKCgoKChPWzIxXSg2LENGLExEKSxDRi5wcm90b3R5cGUpLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXt0aGlzLlc9KHRoaXNbKCgoKCgodGhpc1t0aGlzLlg9KHY9KHA9KEI9KFo9KG49KFE9KEs9KGI9KHo9Z1sxMl0oNCx5WzQ5XSg0LChOPVsiaSIsIm8iLCJtIl0sdGhpcyksMTIpKSxBPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSxKPXoubmV4dCgpLnZhbHVlLFc9ei5uZXh0KCkudmFsdWUsei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLEM9ei5uZXh0KCkudmFsdWUsdGhpcy5BPW4sQyksTlsxXV09CnYsdGhpcylbTlsyXV09cCx0aGlzKS5NPUosdGhpcykuVj1XLHRoaXMpLlU9USx0aGlzKS5QPWIsdGhpcy5DPVosTilbMF1dPUIsSyksdGhpcy5IPUF9LENGLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4gQT0oej0oQj0obj0ocD0oYj0oQz0oSz0oSj1nWzEyXSgxMiwoWj1bKFc9WzEsMCw5XSwyMDQ4KSw3LDIwMV0sa1s0Ml0oNDIsdGhpcyxaW1dbMF1dKSkpLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKS52YWx1ZSksSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKS52YWx1ZSksSikubmV4dCgpLnZhbHVlLEoubmV4dCgpKS52YWx1ZSx2PWdbN10oNCksZylbN10oMzkpLFE9Z1s3XSgzOCksW3RoaXMuRCxlWzddKDcxLEIpLFJbMTZdKDI0LHRoaXMuQSxPWzI1XShXWzBdLEIpLE9bMjVdKFdbMF0sdGhpcy5XKSksbVsxMl0oOTUsQixXWzFdKSxSWzE5XShXWzJdLEssQix0aGlzLlYpLFlbV1sxXV0oMjUsQSxPWzI1XSg1LApLKSxPWzI1XShXWzBdLFpbV1sxXV0pKSxnWzQ4XSgxMCw4ODAscCksUlsyN10oMzAsdGhpcy5QLHRoaXMuZyx0aGlzLlYpLFJbMjddKDMxLHRoaXMubyx0aGlzLmosdGhpcy5WKSxnWzQ4XSgyNCw4NzQsQyksUlsxOV0oV1swXSxCLEMsSyksWVtXWzFdXSgyOCxRLE9bMjVdKDMsQiksT1syNV0oNSxaW1dbMV1dKSksZVs3XSgyLHRoaXMuVSksR1syNF0oMTYsdGhpcy5YLE9bMjVdKDUsdGhpcy5YKSxXWzBdKSxJKGIsSyxDLHApLEhbNDRdKDUwLEMpLEhbNDRdKDU1LHApLGdbNDhdKDI0LFpbMl0sbiksSShiLGIsbix0aGlzLlAsdGhpcy5vKSxIWzQ0XSg0MixuKSxrWzE3XSgzNiksQSxtWzEyXSg0Nyx0aGlzLk0sY3EpLGtbMTddKDMyKSxRLG1bMTJdKDM4LHRoaXMuTSxXSCksSFs0NF0oNTUsQyksSFs0NF0oNTQscCksa1sxN10oNDUpLHRoaXMuZyxlWzddKDcxLEIpLFJbMTZdKDU2LHRoaXMuQyxPWzI1XSgzLEIpLE9bMjVdKDUsdGhpcy5VKSksbVsxMl0oOTcsQixXWzFdKSxSWzE5XSgzMiwKeixCLHRoaXMuViksWVtXWzFdXSgyNix2LE9bMjVdKFdbMl0seiksT1syNV0oV1swXSxaW1dbMV1dKSksbVs0XSgxNCx6LHRoaXMuTSksdixIWzQ0XSg0NyxCKSxIWzQ0XSg0Nix6KSxrWzE3XSgzNiksdGhpcy5LLG1bMTJdKDk2LHRoaXMuTSxjcSksa1sxN10oMzMpLHRoaXMuaixtWzEyXSgzNix0aGlzLk0sZ08pLGtbMTddKDM0KV19LENGKS5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIEs9KEo9KEI9KHo9Z1sxMl0oNSxrWzQyXSgoYj1bNjMsNDQsNF0sNDYpLHRoaXMsYlsyXSkpLHoubmV4dCgpLnZhbHVlKSx6KS5uZXh0KCkudmFsdWUsei5uZXh0KCkpLnZhbHVlLEM9ei5uZXh0KCkudmFsdWUsW2VbN10oMixLKSxSWzE2XSg2MCx0aGlzLmksT1syNV0oNyxLKSxPWzI1XSg3LHRoaXMuVykpLG1bMTJdKDQ4LEMsMSksZ1s0OF0oMTAsNzgsSiksYyQoQixKLHRoaXMuTSx0aGlzLkEsdGhpcy5DLHRoaXMuaSx0aGlzLlgsQyksa1sxOF0oMzMsQixPWzI1XSgxLApCKSksUls0Nl0oNjQsdGhpcyxCKSxIW2JbMV1dKGJbMF0sSyksSFtiWzFdXSg0NyxCKSxIW2JbMV1dKDUxLEopLEhbYlsxXV0oNDYsQyldfSxDRi5wcm90b3R5cGUpLkY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe3JldHVyblsoYj0oVz0ocD0oSz0oTj0obj0oSj0oTD0oWj0oQz0odj0oej0oZj0oUT0oeD1nWzEyXSg1LChyPVsoQj1bODc2LDIwMSw4NzJdLDM5KSw0OCwyMDQ4XSxrWzQyXSg2MSx0aGlzLDEzKSkpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKSkudmFsdWUseC5uZXh0KCkudmFsdWUpLEE9eC5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpKS52YWx1ZSx4KS5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSkseC5uZXh0KCkpLnZhbHVlLHgubmV4dCgpLnZhbHVlKSx4KS5uZXh0KCkudmFsdWUsZylbN10oNiksZ1s3XSg1KSksbSlbMTJdKHJbMF0sdGhpcy5NLApUOXcpLG1bMTJdKDk3LHRoaXMuQSwtMSksbVsxMl0oOTcsdGhpcy5DLC0xKSxtWzEyXSgzNix0aGlzLmksLTEpLG1bMTJdKHJbMF0sdGhpcy5YLDApLGVbN10oMSx0aGlzLlcpLGdbclsxXV0oMjQsODcxLFEpLFlbMTJdKDIsZixRKSxIWzQ0XSg0NyxRKSxtWzEyXSg0MCxwLEhxKSxZWzBdKDI3LFcsT1syNV0oNSxmKSxPWzI1XSgzLHJbMl0pKSxnW3JbMV1dKDEwLEJbMl0seiksUlsxOV0oOSxBLHosZiksSFs0NF0oNTkseiksbVsxMl0oOTUscCxxVSksWVswXSgyNixXLE9bMjVdKDMsQSksT1syNV0oMyxyWzJdKSksZ1tyWzFdXSgyNiw4NzMsdiksUlsxOV0oNzMsQyx2LEEpLG1bMTJdKDQxLHAseSQpLFlbMF0oMjYsVyxPWzI1XSgzLEMpLE9bMjVdKDksclsyXSkpLGdbclsxXV0oMjYsMTQwOSxLKSxZWzEyXSgyLEosSyksc2coSixKKSxIWzQ0XSg0MixLKSxnW3JbMV1dKDE4LDg3NSxuKSxnW3JbMV1dKDI2LEJbMF0sTiksbVszM10oMTAsSixuLE9bMjVdKDMsTikpLEhbNDRdKDU5LG4pLApIWzQ0XSg0MixOKSxJKFosQSx2LEopLEhbNDRdKDUwLHYpLEhbNDRdKDQ3LEMpLEhbNDRdKDU0LEopLFJbMjddKDI3LHRoaXMuSCx0aGlzLkQsdGhpcy5WKSxSWzI3XSgyOSx0aGlzLm0sdGhpcy5LLHRoaXMuViksZ1tyWzFdXSgxNixCWzFdLEwpLEkoWixaLEwsdGhpcy5ILHRoaXMubSksSFs0NF0oNjMsTCksWVswXSgyNSxiLDEsMSksVyxtWzRdKDQscCx0aGlzLk0pLGIsSFs0NF0oNDcsZiksSFs0NF0oNDcsQSksSFs0NF0oNDYsWiksSFs0NF0oNTEscCldfSxPWzIxXSgyLEprLExEKSxKay5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVyblsoQj0oSz1nWzEyXSgxMiwoQz1bMywyNSw0M10sa1s0Ml0oNjEsdGhpcyxDWzBdKSkpLEsubmV4dCgpLnZhbHVlKSxKPUsubmV4dCgpLnZhbHVlLHo9Sy5uZXh0KCkudmFsdWUsZVs3XSg2NSxKKSksUlsxNl0oMjYsSixPW0NbMV1dKDcsSiksT1tDWzFdXSg3LHRoaXMuWCkpLG1bMTJdKDk1LHosQ1swXSksbVszM10oNDcsdGhpcy5NLAp6LE9bQ1sxXV0oOSxKKSksdGhpcy5zdHJpbmdpZnkoQix0aGlzLk0pLFJbNDZdKDE2LHRoaXMsQiksSFs0NF0oQ1syXSxCKSxIWzQ0XSg0NixKKSxIWzQ0XSg1NSx6KV19LEprKS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuWyh6PShwPShDPShRPShCPShiPSh2PWdbMTJdKDEsa1s0Ml0oNTgsKFo9WzcsKEo9WzEsMCwyMDM1XSw2KSwzN10sdGhpcyksWlswXSkpLHYubmV4dCgpLnZhbHVlKSx2Lm5leHQoKS52YWx1ZSksdi5uZXh0KCkpLnZhbHVlLHYubmV4dCgpLnZhbHVlKSx2Lm5leHQoKS52YWx1ZSksbj12Lm5leHQoKS52YWx1ZSx2Lm5leHQoKS52YWx1ZSksSz1nW1pbMF1dKFpbMl0pLEE9Z1taWzBdXShaWzFdKSxnKVs0OF0oMTgsNzgscCksbVsxMl0oMzgsbixtZygpKSxtWzEyXSg0Mix6LC0xKSxtWzEyXSg0OCxDLDIpLGMkKHRoaXMuTSxwLG4seix6LHoseixDKSxlW1pbMF1dKDY2LHRoaXMuWCksUlsyN10oMjUsdGhpcy5pLHRoaXMuQSwKdGhpcy5WKSxnWzQ4XSgyNixKWzJdLGIpLFlbMTJdKDIsUSxiKSxZWzBdKDI1LEssT1syNV0oNSxRKSxPWzI1XSg1LDIwNDgpKSxnWzQ4XSgxNiwyMDEsQiksSShDLFEsQix0aGlzLmkpLE9bOV0oMTcsMzMpLFlbMF0oMjUsQSxKWzBdLEpbMF0pLEssbVsxMl0oNDIsbix2NDMpLG1bMTJdKDM4LEMsSlsxXSksbVszM10oMTIsdGhpcy5NLEMsT1syNV0oNSxuKSksQSxIWzQ0XSg1OSxiKSxIWzQ0XSg0MyxCKSxIWzQ0XSg1NCxRKSxIWzQ0XSg2MyxDKSxIWzQ0XSg0MixwKSxIWzQ0XSg0NyxuKSxIWzQ0XSg1MSx6KV19LEprLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEo9WyhLPSh6PShiPVsxMiwiViIsKEM9W10sNCldLEI9Qy5jb25jYXQsZ1tiWzBdXSg3LGtbNDJdKDQ3LHRoaXMsMSkpLm5leHQoKS52YWx1ZSksZylbN10oNyksdGhpcykuQSxtW2JbMF1dKDk2LHosMCksUlsxOV0oNzIseix6LHRoaXNbYlsxXV0pLFlbMF0oMjYsSyxPWzI1XSg5LHopLE9bMjVdKDUsCjIwNDgpKSxtW2JbMl1dKGJbMl0seix0aGlzLk0pLEssSFs0NF0oNjIseiksa1sxN10oNDUpXSxCKS5jYWxsKEMsZVszM10oYlswXSxKKSl9LEprLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIseixLLEosQyxiKXt0aGlzLmk9KHRoaXNbdGhpcy5YPXo9KEs9KEI9KEM9KEo9Z1tiPVsxMiw1LCJWIl0sYlswXV0oNCx5WzQ5XShiWzFdLHRoaXMsNCkpLEoubmV4dCgpLnZhbHVlKSxKKS5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSx0aGlzLk09SyxiWzJdXT1CLEMpfSxiZykoKSx1dz1WVygpLFo0PUlXKCksaUY9aE4oKSxqdD1WcSgpLFdsPUl0KCkscU49aE8oKSxtcz14dCgpLFlBPXl2KCkseWc9aGcoKSxwQz0obVQoKSxiUykoKSxUZD1ldygpLG5DPXU4KCksd3Q9S0UoKSwkQT1HSSgpLGxWPUlxKCksczM9a0QoKSx3aT1veCgpLEVoPVFaKCksZ3Q9ZDgoKSxjRD1wRHEoKSxOUj1QSigpLFhIPUM4KCksU0M9aXooKSxPMz1EYSgpLEdMPWQyKCksdVY9dkIoKSwKUTA9QmEoKSxVMT1HbEQoKSxtTD1DdigpLFZPPVlsKCksVXg9KE4wbCgpLG5ldyBNYXApLHdwPW5ldyBTZXQsdG8sWWU9VUUoKSxydD1peCgpLG9TPVswLElfLCgoT1syMV0oMixHSCx3RSksR0gucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBHWzEzXSgxNywoej0oSj10aGlzLHopPT09KEs9Sz09PXZvaWQgMD8xNUUzOkssdm9pZCAwKT9udWxsOnosZnVuY3Rpb24oQSx2KXtyZXR1cm4gdj1bInYiLDI5LCJNIl0sQVt2WzJdXT09MT8oQz1PWzQxXSh2WzFdKSxiPW5ldyBHaSxKW3ZbMl1dLnNldChDLGIpLE9bMl0oOCxmdW5jdGlvbigpeyhiLnJlamVjdChFcnJvcigicmVDQVBUQ0hBIFRpbWVvdXQgKCIrQisiKSIpKSxKLk0pWyJkZWxldGUiXShDKX0sSyksQVt2WzBdXShZWzMyXSgyNCwyLEosQixDLHopLDIpKTpBLnJldHVybihiLnByb21pc2UpfSkpfSxHSC5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXsod0UucHJvdG90eXBlLlouY2FsbCh0aGlzKSx0aGlzLnYpLmNsb3NlKCl9LApPWzIxXSgxLFh5LFQpLC0xKV0sWVU9KChPWzIxXSg2LChYeS5wcm90b3R5cGUuVD1SWzQ4XSg0LG9TKSxFMCksVCksRTAucHJvdG90eXBlKS5UPVJbNDhdKDksWzAsVGEsb1NdKSxmdW5jdGlvbigpe3JldHVybiBSWzQ2XS5jYWxsKHRoaXMsMTkpfSksTF89WygoKCgoT1syMV0oMyxDRCxUKSxDRC5wcm90b3R5cGUpLnNjPWZ1bmN0aW9uKCl7cmV0dXJuIERbMzhdKDEseVEsdGhpcywxKX0sQ0QpLlJUPVhhKCksQ0QpLnByb3RvdHlwZS5UPVJbNDhdKDUsWyJzZXRva2VuIix5USx2WixDWCx2Wl0pLE8pWzIxXSg2LGdyLFQpLDApLENYLC0xXSxSUz1bMCwoT1syMV0oMywoZ3IucHJvdG90eXBlLlQ9Uls0OF0oNCxMXyksUEgpLFQpLFRhKSxMXyxLWCxDWF0scmo9WzAsQnRNLChPWzIxXSgzLE9ILChQSC5wcm90b3R5cGUuVD1SWzQ4XSg5LFJTKSxUKSksV1opLC0xLFFUXSxWZD1bMCxyaiwoKE9bMjFdKDUsKE9ILnByb3RvdHlwZS5UPVJbNDhdKDgscmopLER4KSxUKSxPKVs4XSgxMSw1MywKdjdOKSwtMSksMSxyaiwyLHJqLC0yMl0scHk9KCgoT1syMV0oKER4LnByb3RvdHlwZS5UPVJbNDhdKDksVmQpLDIpLGR4LFQpLGR4KS5wcm90b3R5cGUuQ3U9ZnVuY3Rpb24oKXtyZXR1cm4gUls0OF0oNzUsdGhpcyxCTiwyOCl9LGR4LnByb3RvdHlwZSkud1Y9ZnVuY3Rpb24oKXtyZXR1cm4gUls0OF0oNjksdGhpcyxCTiw3MCl9LGR4LnByb3RvdHlwZS5UPVJbNDhdKDgsWzAsNCxDWCxJXywxMCxBRyxnJCxDWCw4LE0zLC0xNSwxLE0zLC0zLDEsTTMsLTE0LElfLE0zLC02LFJTLFZkLE0zLC0xLHdibCxNMywtMSxRVF0pLElXKCkpLHpaPUM4KCksbnk9aXooKSxqaD1oTigpLEtTPVZxKCksUUo9SXQoKSxzeT1oTygpLFNMPXh0KCksZEY9VDAoKSxuNj1mNCgpLHp1PW0xKCksSjU9U084KCksUUM9R2coKSxqQ2g9RGooKSxHUD1ObigpLHBuMz1aWCgpLFFDTT1waSgpLEtZPVNrKCksSjQ9JDUoKSxwNj1EYXRlLm5vdygpLE0xPURhdGUubm93KCksbGo9SXRNKCk7CigoKCgoKCgoKCgoKCgoRj0oKCgoKCgoT1syMV0oMSxFdCx3RSksRXQucHJvdG90eXBlKS5sPWZ1bmN0aW9uKEIseixLLEope2lmKEo9dGhpcy5kVlt0aGlzLlhdW3pdKXJldHVybiBKLmNhbGwodGhpcyxCPT1udWxsP3ZvaWQgMDpCLEspfSxFdC5wcm90b3R5cGUpLmluaXQ9ZnVuY3Rpb24oQil7cmV0dXJuKEI9dGhpcyxHKVsxM10oMzMsZnVuY3Rpb24oeil7cmV0dXJuIEIuQT0oMCx0JC55NSkoQi5TOS5iaW5kKEIpLDEpLHoucmV0dXJuKEIuQSl9KX0sRXQpLnByb3RvdHlwZS5CMT1mdW5jdGlvbihCKXt0cnl7dGhpcy5YZyhCLnYpfWNhdGNoKHope319LEV0KS5wcm90b3R5cGUuRD1mdW5jdGlvbihCLHopeyh6PVs0NSwiWCIsbnVsbF0sQikucmVzaXplP3RoaXMuUi50aGVuKGZ1bmN0aW9uKEspe3JldHVybiBLLnNlbmQocU4sbmV3IEZ5KHt2aXNpYmxlOkIudmlzaWJsZX0pKX0sT1t6WzBdXS5iaW5kKHpbMl0sODYpKTp0aGlzW3pbMV1dPT1ueT90aGlzW3pbMV1dPUtTOkIudXkmJgpCLnV5LndpZHRoPD0wJiZCLnV5LmhlaWdodDw9MD8odGhpc1t6WzFdXT16Wix0aGlzLlIudGhlbihmdW5jdGlvbihLKXtyZXR1cm4gSy5zZW5kKHFOLG5ldyBGeSh7dmlzaWJsZTpCLnZpc2libGV9KSl9LE9belswXV0uYmluZCh6WzJdLDkwKSkpOih0aGlzW3pbMV1dPUtTLHRoaXMuTnguc2VuZChqdCxCKSl9LEV0KS5wcm90b3R5cGUuUWU9ZnVuY3Rpb24oQix6LEspe3JldHVybiBHW0s9dGhpcywxM10oMjQsZnVuY3Rpb24oSixDKXtpZigoQz1bMiwidiIsIk0iXSxKW0NbMl1dKT09MSl7aWYoIUtbQ1sxXV0uUil0aHJvdyBFcnJvcihHUCsiIGNsaWVudCBmb3IgY2hhbGxlbmdlQWNjb3VudC4iKTtyZXR1cm4gSltDWzFdXShLW0NbMV1dW0NbMl1dLnNlbmQobmV3IHZFKEIpKSxDWzBdKX1yZXR1cm4gSi5yZXR1cm4oT1t6PUouWCw0MF0oMjAseikpfSl9LEV0LnByb3RvdHlwZSkub3o9ZnVuY3Rpb24oQix6KXt0aGlzWygoej1bIlgiLCJSIixudWxsXSx0aGlzKVt6WzBdXT1RSix0aGlzKS5OeC5zZW5kKFlBKSwKelsxXV0udGhlbihmdW5jdGlvbihLKXtyZXR1cm4gSy5zZW5kKFlBLG5ldyB2NShCKSl9LE9bNDVdLmJpbmQoelsyXSw5NCkpfSxFdC5wcm90b3R5cGUpLEV0KS5wcm90b3R5cGUua0o9ZnVuY3Rpb24oQil7KHRoaXNbdGhpc1tCPVsiTSIsImkiLCJYIl0sQlswXV0uQzUoKSxCWzJdXT1RSix0aGlzKS5OeC5zZW5kKGp0LG5ldyBGeSh7dmlzaWJsZTohMX0pKSx0aGlzW0JbMV1dJiZ0aGlzW0JbMV1dLnJlc29sdmUobmV3IEpQKDAsIiIsQ2NoLCExKSl9LEV0LnByb3RvdHlwZS5FMz1mdW5jdGlvbihCLHope0Rbej1bMiw3LDExXSxCPXRoaXMselsyXV0oOSkubmF2aWdhdG9yLm9uTGluZT90aGlzLk54LnNlbmQocEMpOmtbelswXV0oelsxXSx0aGlzLERbelsyXV0oMyksJHJ4LGZ1bmN0aW9uKCl7cmV0dXJuIEIuTnguc2VuZChwQyl9KX0sRikuUVo9ZnVuY3Rpb24oQil7cmV0dXJuIFlbMTVdLmNhbGwodGhpcyw0MixCKX0sRXQpLnByb3RvdHlwZS56Sj1mdW5jdGlvbigpe3RoaXMucHE9CiEwfSxFdCkucHJvdG90eXBlLnBnPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBHWzEzXSgyNCwoej10aGlzLGZ1bmN0aW9uKEMsYixBKXtBPVsiaSIsMCwoYj1bMiwzRTQsNF0sMSldO3N3aXRjaChDLk0pe2Nhc2UgQVsyXTpyZXR1cm4gSz1iW0FbMl1dLEMuQShiW0FbMV1dKSxDLnYoei5GZyxiWzJdKTtjYXNlIGJbMl06KEo9Qy5YLEMpLkYoMyk7YnJlYWs7Y2FzZSBiW0FbMV1dOnJldHVybiBDW0FbMF1dKCksQy5yZXR1cm4obmV3IExtKHZvaWQgMCw3LDAsMCxbXSkpO2Nhc2UgMzpyZXR1cm4gQy5yZXR1cm4oSi5zZW5kKG1MLEIsSykpfX0pKX0sRXQucHJvdG90eXBlLlhDPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gR1sxM10oMjUsKHo9dGhpcyxmdW5jdGlvbihKLEMpe2lmKEpbQz1bInYiLCJNIiw2OF0sQ1sxXV09PTEpe2lmKCF6W0NbMF1dLlIpdGhyb3cgRXJyb3IoR1ArIiBjbGllbnQgZm9yIHZlcmlmeUFjY291bnQuIik7cmV0dXJuIEpbQ1swXV0oeltDWzBdXVtDWzFdXS5zZW5kKG5ldyBlYyhCKSksCjIpfXJldHVybiBKLnJldHVybihPWzQwXShDWzJdLChLPUouWCxLKSkpfSkpfSxFdC5wcm90b3R5cGUubFk9ZnVuY3Rpb24oQix6KXtyZXR1cm4oMCx0JC55NSkoZnVuY3Rpb24oSyxKLEMsYil7aWYoKEM9KEs9ISgoSj0oYj1bIkoiLDFFMyxudWxsXSxbITAsMSwiIl0pLHouTSkuVmwoKSx6Llg9c3ksMSksZGspW2JbMF1dKCkuZ2V0KCkseikuRyE9PW51bGwpcmV0dXJuIHouRy50aGVuKGZ1bmN0aW9uKEEpe3JldHVybiBHWzEzXSgyNCxmdW5jdGlvbih2LHAsUSxuLFope3JldHVybihaPShRPVtudWxsLCEwLDNdLFsiczMiLDQsInJlc3BvbnNlIl0pLEEuT1kmJiFBLk9ZW1pbMF1dKCkmJihBLk9ZLndWKCkmJihCLnY9QS5PWS53VigpKSxLPVlbMTldKDM3LFpbMV0sQS5PWSksUls0MF0oMzgsMSxBLk9ZLnhuKCkpKSxBLm9PKSYmKG49bmV3IENELHA9UlsyNV0oNTksUVswXSxRWzJdLEJbWlsyXV0seVEsbixsKSxCW1pbMl1dPUdbMzRdKDM5LFpbMV0sUls2XSgyLDIscCxBLm9PKSkpLAp2LnJldHVybih5WzM5XSg0MCxRWzFdLDFFMyxLLEIseikpfSl9KTtyZXR1cm4oWVsxOV0oMzcsMTYsQykmJnoudi52JiYoZzBbNF0oNixnWzE0XSgzLGR5KSxKWzJdLEpbMV0pLEIuTSYmKEs9Qi5NLEIuTT1iWzJdKSkseSlbMzldKDgsSlswXSxiWzFdLEssQix6KX0sKHo9dGhpcywxMykpfSxGLng3PWZ1bmN0aW9uKEIpe3JldHVybiBrWzQxXS5jYWxsKHRoaXMsMTYsQil9LEV0LnByb3RvdHlwZS5yYj1mdW5jdGlvbigpeyh0aGlzLlg9cHksdGhpcy5pKSYmdGhpcy5pLnJlc29sdmUobmV3IEpQKDAsIiIsQ1MsITEpKX0sRXQucHJvdG90eXBlLkpMPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEE9KHo9KHY9bUw4KChRPVsoSj1bbnVsbCwhMSwoSz10aGlzLDQpXSwiaSIpLDE2LDMxXSxDPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4sWixXLE4peyhOPShLLlhnPWZ1bmN0aW9uKHgsZixMLHIsVixQLHEsYyxFKXtpZihjPXhbRT1bMSwocj1bMSwzLDEwNV0sMCksITFdLEVbMV1dLApjPkVbMV0pe2lmKHhbcltFWzFdXV0pe2lmKFY9KHE9bmV3IE9ILGY9eVszMl0oMixudWxsLHEsMix4WzJdKSx5KVszMl0oNCxudWxsLGYscltFWzBdXSx4W3JbRVswXV1dKSxIW0VbMV1dKDU2LEVbMV0sZGsuSigpLHJbMl0pKUw9bmV3IFVpbnQ4QXJyYXkoT2JqZWN0LnZhbHVlcyh4W3JbRVsxXV1dKSkseVszOF0oMix2b2lkIDAsR1s0Ml0oMzgsbnVsbCxFWzJdLEwpLFYsNCk7ZWxzZSBtWzJdKDY0LEVbMV0sVixyW0VbMV1dLHhbcltFWzFdXV0sRFsyXS5iaW5kKG51bGwsMTgpKTtQPVZ9ZWxzZSBQPW51bGw7VysrLFpbYy1yW0VbMV1dXT1QLFc+PUsudVkmJm4oWil9ZWxzZSBuKFopfSxaPVtdLFs0MCwiSiIsKFc9MCwyKV0pLE8pW05bMl1dKE5bMF0sZnVuY3Rpb24oKXtuKFopfSxZWzIyXSg2NSwxOSxka1tOWzFdXSgpLmdldCgpKSl9KSxlW1FbMl1dKFFbMV0pKSxtWzM1XSgyNykpLnRoZW4oZnVuY3Rpb24obixaKXtyZXR1cm4gR1sxM10oMzIsZnVuY3Rpb24oVyxOKXtpZihXWyhOPQpbMiwiVWQiLCJNIl0sTilbMl1dPT0xKXJldHVybiBXLnYoSy5OeC5zZW5kKFo0LG5ldyBXdSksTlswXSk7cmV0dXJuKChaPVcuWCxuKS5wdShaW05bMV1dKSxXKS5yZXR1cm4oWil9KX0pLEhbNDNdKDEzLEpbMV0sITAsW3YsZ1sxMF0oMywxLEpbMV0sSlsyXSwxOCksaGkwKGVbUVsyXV0oUVsxXSksdm9pZCAwLHZvaWQgMCx2LHRoaXMudi5GKSxkTFkoKSxrTXgoKSx0ZHEoKSxVTDgoKSxDXSkpLnRoZW4oZnVuY3Rpb24obixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSl7cmV0dXJuKFo9KHg9KE49KGY9KEU9KEw9KGM9KHE9KFA9Z1sxMl0oNCxuKSxQLm5leHQoKS52YWx1ZSksUCkubmV4dCgpLnZhbHVlLFAubmV4dCgpLnZhbHVlKSxQKS5uZXh0KCkudmFsdWUsUC5uZXh0KCkudmFsdWUpLFAubmV4dCgpLnZhbHVlKSxQLm5leHQoKS52YWx1ZSksUCkubmV4dCgpLnZhbHVlLEcpWzEzXSg4LGZ1bmN0aW9uKFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgpe3JldHVybihyPSh1PQooVT0oSlk9KHc9KHN3PShNPShkPShiMz0oWD1uZXcgKCgoKFc9KFY9KHo4PVs2LChhPVsxLChLLm5xPXEuVlgsMCksNV0sIksiKSw0NF0sSy5CPW5ldyBSRShxLk9JKSxLLkw9bmV3IEUwKHEudWMpLFlbN10oODAsIiIsMjU1LERbOF0oMTMsZGsuSigpLmdldCgpKSkpLGcpWzFdKDgsYVsxXSkqMixLLmZxKSYmKFctPWFbMF0pLEwpLnB1KHEuVWQpLEUpLnB1KHEuVWQpLGYucHUocS5VZCksTi5wdShxLlVkKSx4LnB1KHEuVWQpLGR4KShxLlVkKSxtKVsyM10oMzMsVixYLGFbMl0pLGtbejhbMF1dKDU5LHo4WzBdLGIzLFcpKSxIKVswXSg1MCxkLDE4LGMpLGUpWzMxXSgxNyksbSlbMjNdKDI3LHN3LE0sMTkpLFBiKShIWzhdKDQwLDY1MjkpLGFbMV0pLGspW3o4WzBdXSgyOSw2NSx3LEpZKSxoPVBiKEsuUVosbnVsbCksdD1IW3o4WzJdXSg2OCxVLFBILDczLGgpLEhbejhbMl1dKDY3LHQsQk4sNDcsQikpLEI4PW5ldyBEeChaKSxIW3o4WzJdXSgyMSx1LER4LDc0LEI4KSksSylbejhbMV1dJiYKeVszMl0oMSxudWxsLHIsNzcsS1t6OFsxXV0pLFMucmV0dXJuKHIueWUoKSl9KX0pLFByb21pc2UucmVzb2x2ZSgiIikpLChiPXRoaXMudltRWzBdXS52KT09SlswXT8wOlJbMjZdKDIzLGIsMyxsKSlBPXoudGhlbihmdW5jdGlvbigpe3JldHVybiBLLnYuaS5leGVjdXRlKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbn0sZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pfSk7cmV0dXJuIHA9W3oudGhlbihmdW5jdGlvbihuKXtyZXR1cm4iIitZWzRdKDYxLG4pfSksQSx6LnRoZW4oZnVuY3Rpb24obixaKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGVbMTZdKDY5LDQsZmIsKFo9WzI1NSwxOCwxN10sR1sxMF0oWlsyXSxaWzBdLDI1NixrWzM5XSg3NCxaWzFdLG4pLHA2KSkpKX0pXSxQcm9taXNlLmFsbChwKS50aGVuKGZ1bmN0aW9uKG4sWil7cmV0dXJuIEdbMTNdKDI1LGZ1bmN0aW9uKFcsTil7aWYoKE49WzUsInYiLCJwdXNoIl0sVykuTT09MSlyZXR1cm4gV1tOWzFdXSh5WzMxXSg0NSwKMTcsbnVsbCxOWzBdLEspLDIpO3JldHVybiBuWyhaPVcuWCxOKVsyXV0oWiksVy5yZXR1cm4obil9KX0pfSxFdC5wcm90b3R5cGUuTXk9ZnVuY3Rpb24oKXtIWzQ4XSg5LCEwLCh0aGlzLlg9bnksdGhpcykpfSxGLlM5PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBnWzZdLmNhbGwodGhpcyw4LEIseixLLEopfSxGKS5jRT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFJbMTBdLmNhbGwodGhpcywyMCxCLHosSyl9LEV0LnByb3RvdHlwZSkua1c9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEdbMTNdKDksKHo9dGhpcyxmdW5jdGlvbihDLGIpe3JldHVybihiPVsiYTciLCJSIiwiWCJdLEMuTSk9PTE/KEI9KDAsdCQuWDgpKCkuc2xpY2UoKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIE9bNDBdKDUyLEEpfSksSz0oMCx0JFtiWzBdXSkoKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIE9bNDBdKDg0LEEpfSksKDAsdCQudkYpKCksSj16Lk1bYlsyXV0udmFsdWUsei52W2JbMl1dP0MuR18oMik6Qy52KHpbYlsxXV0udGhlbihmdW5jdGlvbihBKXtyZXR1cm4gQS5zZW5kKHVWKS50aGVuKGZ1bmN0aW9uKHYsCnAsUSxuKXtLPShCPShwPShRPXZbKG49WyJjb25jYXQiLCJTSSIsImI1Il0sbilbMV1dLCgwLHQkW25bMl1dKSh2LkpyLHYudVIpKSxCW25bMF1dKHApKSxLW25bMF1dKFEpKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KSwyKSk6Qy5yZXR1cm4obmV3IGY1KEssSixCKSl9KSl9LEV0LnByb3RvdHlwZSkuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZih0aGlzW3o9KEM9WzIyLDEyLG51bGxdLEE9WyJ2IiwyLDRdLHRoaXMpLEFbMF1dW0FbMF1dJiZ0aGlzLlg9PXN5JiZ0aGlzW0FbMF1dLkEpcmV0dXJuIFByb21pc2UucmVzb2x2ZShDW0FbMV1dKTtpZih0aGlzW0FbMF1dLlgpcmV0dXJuIGI9SFs0OV0oQVsyXSxDWzFdLDE2LDUsQ1swXSxCLHRoaXMpLEIubWR8fChKPURhdGUubm93KCksYi50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIEdbMzldKDI2LDEsNSxKLHZvaWQgMCwxLHopfSxmdW5jdGlvbih2LHApe3JldHVybiBwPVsidiIsMzksIk0iXSxHW3BbMV1dKDI0LDEsNSxKLHYgaW5zdGFuY2VvZgpVWD92W3BbMF1dW3BbMl1dOnZvaWQgMCx2IGluc3RhbmNlb2YgVVg/NDoyLHopfSkpLEIuQXU/UHJvbWlzZS5yYWNlKFtiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHYscCl7c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBwKHdNKCkpfSxCLkF1KX0pXSk6YjtpZih0aGlzLmk9Uls3XSgzNyksQiYmdGhpc1tBWzBdXVtBWzBdXSYmKHlbMjddKDcsQ1sxXSwxNix0aGlzLEIpLCF0aGlzW0FbMF1dLkEpKXJldHVybiBZWzddKDEwLEFbMV0sdGhpcyxCLm9OfHx2b2lkIDAsQi5STiksdGhpcy5pLnByb21pc2U7cmV0dXJuIFlbN10oOCxBWzFdLHRoaXMsdm9pZCAwLChLPUI9PUNbQVsxXV0/dm9pZCAwOkIuUk4pIT1DW0FbMV1dP0s6ITEpLHRoaXMuaS5wcm9taXNlfSxGKS5ZZj1mdW5jdGlvbigpe3JldHVybiBrWzExXS5jYWxsKHRoaXMsMTYpfSxFdCkucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7dGhpc1soQj1bInByb3RvdHlwZSIsIkZnIiwiaVkiXSx0aGlzW0JbMV1dKS50aGVuKGZ1bmN0aW9uKHope3JldHVybiB6LmRpc3Bvc2UoKX0sCmZ1bmN0aW9uKCl7fSksQlsyXV0udGVybWluYXRlKCksd0VbQlswXV0uWi5jYWxsKHRoaXMpfSxGKS56Wj1mdW5jdGlvbigpe3JldHVybiBSWzQ3XS5jYWxsKHRoaXMsMil9LEV0LnByb3RvdHlwZSkudHU9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEdbSz10aGlzLDEzXSgxNixmdW5jdGlvbihDLGIsQSl7aWYoKEE9WyhiPVsxLDQsMF0sIk0iKSwiZG9jdW1lbnQiLDEwXSxDKVtBWzBdXT09YlswXSlyZXR1cm4gQy5BKDIpLEo9RFsxMV0oQVsyXSkubmFtZS5yZXBsYWNlKGgkLGc2KSx6PURbMTFdKDkpLnBhcmVudC5mcmFtZXNbSl0seltBWzFdXSYmSFs0OF0oQVsyXSwhMCxLLEIpLEMuRihiWzJdKTtpZihDW0FbMF1dIT1iWzFdKXJldHVybiBDLmkoKSxLW0FbMF1dLkQyKCksSy5SPVJbNDNdKDIwLG51bGwsSyksSy5YPXB5LEMudihlWzQxXSgzNyxiWzBdLEspLGJbMV0pO0suTnguc2VuZCh5ZyksQy5SKCl9KX0sRXQucHJvdG90eXBlLlcxPWZ1bmN0aW9uKEIpe3RoaXMuTnguc2VuZChqdCwKQil9LEV0LnByb3RvdHlwZSkud2I9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1sxM10oKHo9dGhpcywzMiksZnVuY3Rpb24oSyxKLEMpe2lmKChDPShKPVszLG51bGwsMl0sWyJ2Iiw2LDldKSxLKS5NPT0xKXtpZigheltDWzBdXS5SKXRocm93IEVycm9yKEdQKyIgY2xpZW50IGZvciBjaGFsbGVuZ2VBY2NvdW50LiIpO3JldHVybiBLW3ouUj1SWzQzXSgxNixKWzFdLHopLENbMF1dKGVbNDFdKENbMV0sMSx6KSxKWzJdKX1pZihLLk0hPUpbMF0pcmV0dXJuIEtbQ1swXV0oWVs3XShDWzJdLEpbMl0seixCLm9OfHx2b2lkIDApLEpbMF0pO3JldHVybih6Lmk9Uls3XSg0MSksSykucmV0dXJuKHouaS5wcm9taXNlKX0pfSxFdC5wcm90b3R5cGUuTz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscil7cmV0dXJuIEdbMTNdKDE2LChKPShCPUI9PT12b2lkIDA/e2lkOm51bGwsdGltZW91dDpudWxsLGtBOm51bGwsYnk6bnVsbH06Qix0aGlzKSxmdW5jdGlvbihWLFAsCnEpe1A9WyhxPVsidiIsImciLDZdLDIpLDAsMV07c3dpdGNoKFYuTSl7Y2FzZSBQWzJdOnJldHVybiBWW3FbMF1dKGtbMTddKDE0LFBbMl0sNyksUFswXSk7Y2FzZSBQWzBdOnJldHVybiBMPVYuWCxwPUs9ITEseD1kay5KKCksdj0hSFswXSg1NyxQWzFdLHgsMzYpLFo9W10sdiYmKFo9W2pDaCxwbjMsR1AsUUNNXSksVltxWzBdXShKLk54LnNlbmQobkMsbmV3IG9WOChEWzE2XSgxNCxQWzJdLFlbMTldKDMzLDkseC5nZXQoKSkpLG1bMzJdKDcsMTAsUFsxXSxtWzVdKDIzLFBbMl0sIiIpKSxaLEpbcVswXV1bcVsxXV0sSi5ETSkpLDMpO2Nhc2UgMzppZigobj1WLlgsQikuaWQmJighTHx8ZVsyXSgzOSw3LHZvaWQgMCxMKSE9Qi5pZCkpcmV0dXJuIFYucmV0dXJuKCk7cmV0dXJuIFZbTj1uZXcgKCgoTHx8KEw9bmV3IEpKLHA9ITApLEIuaWQ9PW51bGwpJiYoQi5pZD1lWzMxXSgxNyksbVsyM10oMzMsQi5pZCxMLDcpLEIuYnkhPT12b2lkIDAmJkIuYnkhPT1udWxsJiZrW3FbMl1dKDU2LAoxMSxMLEIuYnkpLEhbMjFdKDU1LEwsNCkhPVBbMl0mJihrWzI3XSgyLDUsTCwoSFsyMV0oNyxMLDUpfHxQWzFdKStQWzJdKSxLPSEwKSxSWzMwXSg4LDQsTCxQWzFdKSksRylbMjBdKDgsUFsyXSxMLChIWzIxXSg3LEwsUFsyXSl8fFBbMV0pK1BbMl0pLHlbcVsyXV0oMjYsUFswXSxMLGJOKChIWzIxXSgxNSxMLFBbMF0pfHxQWzFdKSsoQi50aW1lb3V0fHxQWzFdKSkpLFJbMzBdKHFbMl0sNCxMLChIWzIxXSgxNSxMLDQpfHxQWzFdKStQWzJdKSxWLkEoNCksQk4pKG4uaVgpLHFbMF1dKFJbNDddKDkwLDcsUlsyNl0oMTIsTixQWzJdKSxIWzIxXSg0NyxOLFBbMF0pKSxxWzJdKTtjYXNlIHFbMl06cmV0dXJuIHo9Vi5YLHo9ei5yZXBsYWNlKC8iL2csIiIpLHlbMzddKDEwLFBbMV0scVsyXSxMKS5pbmNsdWRlcyh6KXx8a1sxNF0oNywhMCxSWzQ3XS5iaW5kKG51bGwsOTYpLHoscVsyXSxMLG1bNDldLmJpbmQobnVsbCwyOCkpLGY9bmV3IEJOKG4uYmMpLFZbcVswXV0oUls0N10oNDIsNywKUlsyNl0oMTMsZixQWzJdKSxIWzIxXSg1NSxmLFBbMF0pKSw3KTtjYXNlIDc6aWYoISh5WzI5XSg3LDgsTCwoQT1WLlgsK0ErKEhbMjFdKDM5LEwsOCl8fFBbMV0pKSksdil8fCFuLnU1KXtWLkdfKDgpO2JyZWFrfXJldHVybiBXPW5ldyBCTihuLnU1KSxWW3FbMF1dKFJbNDddKDI2LDcsUlsyNl0oMTQsVyxQWzJdKSxIWzIxXSg1NSxXLFBbMF0pKSw5KTtjYXNlIDk6Yj1WLlgsYj1iLnJlcGxhY2UoLyIvZywiIiksZ1s5XSg4LDEwLEwsZ1sxNV0oMiwhMCxQWzFdLFBbMl0sUls0OF0oNzAsTCxJaSwxMCksY3k4KGIpLHAsSykpO2Nhc2UgODpWLkYoNSk7YnJlYWs7Y2FzZSA0OlYuaSgpO2Nhc2UgNTppZihEWzhdKDc2LEhbNF0oOTIsMTEsTCkpIT1udWxsKWlmKHI9SFsyMV0oNyxMLDExKSxyPT09MCllWzI1XSgxMyxQWzJdLFBbMF0sSiksa1txWzJdXSgyNywxMSxMLG51bGwpLEIuYnk9bnVsbDtlbHNlIGtbcVsyXV0oNTksMTEsTCxyLVBbMl0pO3JldHVybiBWW3FbMF1dKEhbMzFdKDQsCiIiLDMsUFsyXSxMKSwxMCk7Y2FzZSAxMDpDPUIua0E/Qi5rQTo1RTMsQi50aW1lb3V0PShQWzJdK0FlKCkpKkMqSFsyMV0oNTUsTCw0KSxCLmtBPW51bGwsUT1tWzM1XSgxMSxCLnRpbWVvdXQrNTAwKSxPWzJdKDQwLGZ1bmN0aW9uKCl7cmV0dXJuIEoubChCLFJbMzFdKDM0LDAsZnVuY3Rpb24oKXtyZXR1cm4gUUN9LFEpKX0sQi50aW1lb3V0KSxWLlIoKX19KSl9LEYpLlI3PWZ1bmN0aW9uKEIpe3JldHVybiBPWzQxXS5jYWxsKHRoaXMsNCxCKX0sT1syMV0oMSxKTSxuUSksSk0pLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCKXt0aGlzLk09a1syMl0oNCwoQj1bbnVsbCwiUiIsInUiXSxSWzI0XS5iaW5kKEJbMF0sMykpLHtzaXplOnRoaXMuWCxzWTp0aGlzLlcsaHU6dGhpcy52LE10OiExLEVZOiExLEtEOiExLFpuOiExLGVycm9yTWVzc2FnZTp0aGlzLnYsZXJyb3JDb2RlOnRoaXNbQlsxXV19KSx0aGlzLk8zKHRoaXNbQlsyXV0oKSl9LGdbNDZdKDgwLGZ1bmN0aW9uKEIseixLKXtuZXcgKCh6PQpuZXcgdk4oKEs9WzExLCJodHRwIiwxNl0sb0MoQikpKSxtWzIwXSgyNCxLWzFdLERbS1swXV0oS1swXSkucGFyZW50LFllKSkuc2VuZCh5ZyxuZXcgeVYoZ1tLWzJdXShLWzBdLGwseiw4LFFCKSwhMCkpLHEwOCkoeil9LCJyZWNhcHRjaGEuYW5jaG9yLkVycm9yTWFpbi5pbml0Iik7ZnVuY3Rpb24gY1AoQix6LEssSixDLGIpe3JldHVybiBlWzQ3XS5jYWxsKHRoaXMsMixCLHosSyxKLEMsYil9dmFyIGJPPShIWzI0XSgxOSxjUCxqYyksVkM4KSgpLG40RD1PZSgpOwooKCgoKEY9Y1AucHJvdG90eXBlLEYuZDc9ZnVuY3Rpb24oKXt0aGlzLnYuSGgoITEpfSxGLkQyPWZ1bmN0aW9uKCl7dGhpcy52LkhoKCExKX0sRikuYUQ9ZnVuY3Rpb24oKXt0aGlzLnYudSgpLmZvY3VzKCl9LEYpLlMwPWZ1bmN0aW9uKCl7cmV0dXJuKGNQLlkuUzAuY2FsbCh0aGlzKSx0aGlzLnYpLmY1KCl9LEYuVmw9ZnVuY3Rpb24oQil7KChCPVsiY2FsbCIsInUiLCJWbCJdLHRoaXMudi5IaCghMCksdGhpcykudltCWzFdXSgpLmZvY3VzKCksY1AuWVtCWzJdXSlbQlswXV0odGhpcyksdGhpcy5MdSghMSl9LEYpLkNxPWZ1bmN0aW9uKEIseil7Y1Bbej1bIlkiLDM2LChCPXRoaXMsMSldLHpbMF1dLkNxLmNhbGwodGhpcyksZVt6WzFdXSh6WzJdLGVbelsxXV0oelsyXSxZWzIzXSg1NCx0aGlzKSx0aGlzLnYsW3lpLFkxXSxmdW5jdGlvbihLKXtLLnR5cGU9PXlpJiZnWzNdKDYwLEIsImUiKSxLLnByZXZlbnREZWZhdWx0KCl9KSxkb2N1bWVudCxDWixmdW5jdGlvbihLLEope0o9WyJ0YWJJbmRleCIsCiJ0YXJnZXQiLDBdLEtbSlsxXV0mJktbSlsxXV1bSlswXV09PUpbMl18fHRoaXMudi51KCkuZm9jdXMoKX0sdGhpcyl9LEYpLk1BPWZ1bmN0aW9uKEIpe3JldHVybihCPVsicmVjYXB0Y2hhLWNoZWNrYm94IiwzNCw5XSxtKVs0MV0oQlsxXSxCWzJdLG1bMl0oOTMsQlswXSkpfSxGLkx1PWZ1bmN0aW9uKEIseixLLEopeygoR1tKPVszNSwxNSwzOF0sSlswXV0oOSx0aGlzLnUoKSxCLCJyYy1hbmNob3ItZXJyb3IiKSxZKVtKWzJdXSgzNyxlWzMxXSgxMiwicmMtYW5jaG9yLWVycm9yLW1zZy1jb250YWluZXIiLHRoaXMpLEIpLEIpJiYoSz1lWzMxXShKWzFdLCJyYy1hbmNob3ItZXJyb3ItbXNnIix0aGlzKSxEWzEzXSg0MCxLKSxSWzM2XSgyMCxLLHopKX0sRi5iWT1mdW5jdGlvbihCKXt0aGlzW0I9WzM3LCJ1IiwiTSJdLEJbMl1dPWtbMjJdKEJbMF0sUlsyNF0uYmluZChudWxsLDYpLHtzaXplOnRoaXMuVyxzWTp0aGlzLnNZLGh1OiJSZWNhcHRjaGEgcmVxdWlyZXMgdmVyaWZpY2F0aW9uIiwKTXQ6dGhpcy5NdCgpLEVZOnRoaXMuRVkoKSxLRDp0aGlzLktEKCksWm46dGhpcy5abigpfSksdGhpcy5PMyh0aGlzW0JbMV1dKCkpfSxGKS5DNT1mdW5jdGlvbihCKXt0aGlzW0I9WyJjYWxsIiwiWSIsInYiXSxjUFtCWzFdXS5DNVtCWzBdXSh0aGlzKSxCWzJdXS5RZCgpLHRoaXNbQlsyXV0udSgpLmZvY3VzKCl9LEYuTzM9ZnVuY3Rpb24oQix6LEssSil7KChLPXRoaXNbKHo9KGNQW0o9WyJSIiwidiIsIlkiXSxKWzJdXS5PMy5jYWxsKHRoaXMsQiksZVszMV0oOSwicmMtYW5jaG9yLWNoZWNrYm94LWxhYmVsIix0aGlzKSksei5zZXRBdHRyaWJ1dGUoTmooKSxuNEQpLEopWzFdXSxLKS5TcT8oSy5ERygpLEtbSlswXV09eixLLkNxKCkpOktbSlswXV09eix0aGlzKVtKWzFdXS5yZW5kZXIoZVszMV0oOSwicmMtYW5jaG9yLWNoZWNrYm94LWhvbGRlciIsdGhpcykpfSxGLnpxPWZ1bmN0aW9uKCl7dGhpcy52LnUoKS5mb2N1cygpfSxGLlRxPWZ1bmN0aW9uKEIpe3RoaXNbdGhpc1tCPVsidiIsCiJ1IiwiWSJdLGNQW0JbMl1dLlRxLmNhbGwodGhpcyksQlswXV0uUWQoKSxCWzBdXVtCWzFdXSgpLmZvY3VzKCl9LEYuY0Y9ZnVuY3Rpb24oQix6LEspeyh0aGlzW3o9UDZbSz1bMCwidiIsITFdLEJdfHxQNltLWzBdXSxLWzFdXS5IaChLWzJdKSxCKSE9MiYmKHRoaXNbS1sxXV0uZ2IoS1syXSksdGhpcy5MdSghMCx6KSxnW0tbMF1dKDE5LHosdGhpcykpfTtmdW5jdGlvbiBZcChCLHosSyxKLEMsYil7cmV0dXJuIGtbNDVdLmNhbGwodGhpcyw3LEIseixLLEosQyxiKX0KKEhbMjRdKDgxLFlwLGpjKSxZcC5wcm90b3R5cGUuTUE9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDFdKDM2LChCPVs5LCJyYy1hbmNob3ItaW52aXNpYmxlIiw5NF0sQlswXSksbVsyXShCWzJdLEJbMV0pKX0sWXApLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCLHopeyhCPSh6PVs0LCJNIiw2XSxrKVsyMl0oNSxIWzM4XS5iaW5kKG51bGwselsyXSkse2h1OiJSZWNhcHRjaGEgcmVxdWlyZXMgdmVyaWZpY2F0aW9uIixzWTp0aGlzLnNZLEJEOnRoaXMudixBcTohMSxNdDp0aGlzLk10KCksRVk6dGhpcy5FWSgpLEtEOnRoaXMuS0QoKSxabjp0aGlzLlpuKCl9KSx0aGlzKVt6WzFdXT1CLEdbNDZdKHpbMF0sZnVuY3Rpb24oSyl7UlszNl0oKEs9WzE2MCwicXVlcnlTZWxlY3RvciIsIi5yYy1hbmNob3ItaW52aXNpYmxlLXRleHQgc3BhbiJdLDMyKSxCW0tbMV1dKEtbMl0pKS53aWR0aD5LWzBdJiZSWzhdKDMsInNtYWxsdGV4dCIsbVsyXSg5NSwicmMtYW5jaG9yLWludmlzaWJsZS10ZXh0IikpfSwKdGhpcyksdGhpcy5PMyh0aGlzLnUoKSl9O2Z1bmN0aW9uIFJnKEIpe3JldHVybiBlWzQxXS5jYWxsKHRoaXMsMTMsQil9CnZhciByUz0oKEhbMjRdKDU3LFJnLHBRKSxSZy5wcm90b3R5cGUudj1mdW5jdGlvbihCKXtyZXR1cm4ga1s0N10oMTksITEsITAsQix0aGlzKX0sUmcucHJvdG90eXBlLlo9ZnVuY3Rpb24oQix6LEssSixDLGIpeyhKPShLPSh6PShDPUdsW2I9WyJjYWxsIiwiWSIsIloiXSxwZygpXXx8R2xbUWcoKV0sQy5zZXRUaW1lb3V0KSxCPXpbbVs0XSgxOCwiX18iLCExLHRoaXMpXXx8eixDLnNldFRpbWVvdXQ9QixDLnNldEludGVydmFsKSxLW21bNF0oMiwiX18iLCExLHRoaXMpXXx8SyksQy5zZXRJbnRlcnZhbD1KLFJnKVtiWzFdXVtiWzJdXVtiWzBdXSh0aGlzKX0sSClbMjRdKDU5LFZFLE5QKSx6YikoKSxaczA9KEhbMjRdKDI3LHA5LG9nKSxIWzI0XSg5MCxaYywkTSkscDkucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7KERbMjNdKChCPVsiWiIsMTEsIlkiXSxCWzFdKSx0aGlzLnYpLHA5KVtCWzJdXVtCWzBdXS5jYWxsKHRoaXMpfSxwOS5wcm90b3R5cGUuaT1mdW5jdGlvbihCLHosSyxKLApDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoKEs9KEo9KEI9KGY9WyhwPVsiPSIsInNjcmlwdCIsImxpbmUiXSwwKSwzNCwzNV0sQi5lcnJvcnx8Qiksej9tWzQyXShmWzJdLHopOnt9KSxCIGluc3RhbmNlb2YgRXJyb3ImJkQ2KEosQlt3Sl18fHt9KSxSKVszMl0oMSxudWxsLGZbMF0sIjogIiwiXG4uLi4gIixCKSx0aGlzKS5YKXRyeXt0aGlzLlgoSyxKKX1jYXRjaChMKXt9aWYoISgoTj1LLm1lc3NhZ2Uuc3Vic3RyaW5nKGZbMF0sMTkwMCksQilpbnN0YW5jZW9mIE5QKXx8Qi5NKXtBPSh4PUsubGluZU51bWJlcixRPUsuZmlsZU5hbWUsSy5zdGFjayk7dHJ5e2lmKCh2PUt4Tih0aGlzLlIscFsxXSxRLCJlcnJvciIsTixwWzJdLHgpLFo9e30sUilbMV0oNiwhMCx0aGlzLk0pfHwoVz12LEM9eVszMl0oOSxwW2ZbMF1dLHRoaXMuTSksdj1lW2ZbMV1dKDIzLCIiLFcsQykpLFpbcDcoKV09QSxKKWZvcihiIGluIEopWlt0aGlzLkErYl09SltiXTtuPXlbMzJdKDEwLHBbZlswXV0sWiksCnRoaXMuRih2LExLKCksbix0aGlzLmwpfWNhdGNoKEwpe319dHJ5e2dbM10oNjEsdGhpcyxuZXcgWmMoSyxKKSl9Y2F0Y2goTCl7fX0sWnMwKXx8e2lkOklEKCl9LEh4PVswLChnWzQ2XSgxLGZ1bmN0aW9uKEIseil7KG5ldyAoej1uZXcgdk4ob0MoQikpLEI0KSh6KSkudi5pbml0KCl9LCJyZWNhcHRjaGEuYW5jaG9yLk1haW4uaW5pdCIpLE9bMjFdKDIsY2wsVCksQ1gpLE45XTsoT1tjbC5wcm90b3R5cGUuVD1SW2NsLnByb3RvdHlwZS51PWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDE0LHRoaXMsMSl9LDQ4XSgxLEh4KSwyMV0oMSxwaixUKSxwaikucHJvdG90eXBlLlQ9Uls0OF0oOSxbMCxUYSxIeF0pO2Z1bmN0aW9uIGVpKCl7cmV0dXJuIE9bOV0uY2FsbCh0aGlzLDEpfQp2YXIgbnM9KChGPShIWzI0XSgyNyxlaSxOUSksZVsyNF0oNjEsZWkpLGVpKS5wcm90b3R5cGUsRi5NdT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4oKHo9QlsoSz1laS5ZLk11WyhKPVsiZ2V0VmFsdWUiLCJ1QyIsImNhbGwiXSxKKVsyXV0odGhpcyxCKSx0aGlzLnBfKEssQi5CbCgpKSxKKVswXV0oKSkmJnRoaXMuTDUoSyx6KSxCKS5HSiYxNiYmdGhpc1tKWzFdXShLLDE2LEIuSVQoKSksS30sRi51Qz1mdW5jdGlvbihCLHosSyxKKXtKPVs2NCwxLCJjYWxsIl07c3dpdGNoKHope2Nhc2UgODpjYXNlIDE2Ok9bSlsxXV0oSlsxXSxLTSxCLEspO2JyZWFrO2RlZmF1bHQ6Y2FzZSBKWzBdOmNhc2UgSlsxXTplaS5ZLnVDW0pbMl1dKHRoaXMsQix6LEspfX0sRi5jbD1mdW5jdGlvbigpe3JldHVybiBDTX0sRi5YcD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4oej1laVtKPVsiWSIsIlhwIiwiRyJdLEpbMF1dW0pbMV1dLmNhbGwodGhpcyxCLHopLEs9dGhpcy5nZXRWYWx1ZSh6KSxCKS5MPUssCkJbSlsyXV09dGhpcy5CbCh6KSxCLkdKJjE2JiZ0aGlzLnVDKHosMTYsQi5JVCgpKSx6fSxGLmdldFZhbHVlPWZ1bmN0aW9uKCl7fSxGLkw1PWZ1bmN0aW9uKCl7fSxGLnBfPWZ1bmN0aW9uKEIseil7QiYmKHo/Qi50aXRsZT16OkIucmVtb3ZlQXR0cmlidXRlKElBKCkpKX0sRikuQmw9ZnVuY3Rpb24oQil7cmV0dXJuIEIudGl0bGV9LEYuV2g9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1idXR0b24ifSxQQykoKSxRaD0oKCgoKCgoKCgoKCgoKFkzKCksaFVNKSgpLHRuKSgpLGxrKSgpLHNvKCksQTcpKCksVHJ3KSgpLHZEKCksRUopKCksakspKCksZnUpKCkseVApKCksZk8oKSxvTykoKSxtNykoKSxOZSgpLFNfKSgpLFUxTSgpLEtQKSgpLFRXKCkpLFdxMz0oaWcoKSxlYikoKTsoKFFnTSgpLE9RWigpLE50KSgpLEs2aCkoKTtmdW5jdGlvbiBxeigpe3JldHVybiBnWzBdLmNhbGwodGhpcyw3Mil9CigoKCgoRj0oSFsyNF0oNTkscXosZWkpLGVbMjRdKDYyLHF6KSxxei5wcm90b3R5cGUpLEYpLlhwPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKCgoZ1soSz0oQz1bIlhwIiwyMywxXSxbMzIsITEsIi1vcGVuIl0pLEMpWzFdXSgzLEtbQ1syXV0sQiksQi5SdSY9LTI1NixIKVs0NV0oNSxLW0NbMl1dLEtbQ1syXV0sS1swXSxCKSx6LmRpc2FibGVkKSYmKEo9RFsyNl0oMjIsS1syXSx0aGlzLENbMl0pLFJbOF0oMTcsSix6KSkscXouWSlbQ1swXV0uY2FsbCh0aGlzLEIseil9LEYuUWw9ZnVuY3Rpb24oQix6LEssSil7KHF6LlkuUWwuY2FsbCh0aGlzLEIseixLKSxKPUsudSgpKSYmej09MSYmKEouZGlzYWJsZWQ9Qil9LEYpLnhjPWZ1bmN0aW9uKEIseil7ej1bImoiLDM2LCJ1Il0sZVt6WzFdXSgxLFlbMjNdKDQ4LEIpLEJbelsyXV0oKSx5RyxCW3pbMF1dKX0sRi5jbD1mdW5jdGlvbigpe30sRi5vdz1mdW5jdGlvbigpe30sRi50TT1mdW5jdGlvbigpe30sRi5oeT1mdW5jdGlvbigpe30sCkYucnQ9ZnVuY3Rpb24oQil7cmV0dXJuIEIuaXNFbmFibGVkKCl9LEYpLk11PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKEE9KEs9QltKPShiPSh6PSgoZ1syM10oMiwoQz1bIi1vcGVuIiwhMSwodj1bIlZlIiwxLDBdLCIiKV0sQ1t2WzFdXSksQiksQikuUnUmPS0yNTYsSFs0NV0oMTUsQ1t2WzFdXSxDW3ZbMV1dLDMyLEIpLEIubCksei5NKSx7ImNsYXNzIjpnMFs0XSgzNSxDW3ZbMl1dLEIsdGhpcykuam9pbihvOSgpKSxkaXNhYmxlZDohQi5pc0VuYWJsZWQoKSx0aXRsZTpCLkJsKCl8fENbMl0sdmFsdWU6Qi5nZXRWYWx1ZSgpfHxDWzJdfSksdlswXV0oKSk/KHR5cGVvZiBLPT09InN0cmluZyI/SzpBcnJheS5pc0FycmF5KEspP0subWFwKHlbMTJdLmJpbmQobnVsbCw1OSkpLmpvaW4oQ1syXSk6Z1s4XSgyLCIgIixLKSkucmVwbGFjZSgvW1x0XHJcbiBdKy9nLG85KCkpLnJlcGxhY2UoL15bXHRcclxuIF0rfFtcdFxyXG4gXSskL2csQ1syXSk6IiIsYikuY2FsbCh6LAp3UCxKLEF8fENbMl0pfSxGLmdldFZhbHVlPWZ1bmN0aW9uKEIpe3JldHVybiBCLnZhbHVlfSxGKS5MNT1mdW5jdGlvbihCLHope0ImJihCLnZhbHVlPXopfSxGKS51Qz1mdW5jdGlvbigpe307ZnVuY3Rpb24gaUsoQix6LEspe3JldHVybiBtWzEwXS5jYWxsKHRoaXMsMSxCLHosSyl9CnZhciBnNHE9KCgoKCgoKChGPShIWzI0XSg5MSxpSyxaSyksaUspLnByb3RvdHlwZSxGKS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkx9LEYpLkNxPWZ1bmN0aW9uKEIseil7dGhpc1tpSy5ZLkNxLmNhbGwoKHo9WyJHSiIsInUiLDM2XSx0aGlzKSkselswXV0mMzImJihCPXRoaXNbelsxXV0oKSkmJmVbelsyXV0oNSxZWzIzXSg0OSx0aGlzKSxCLHNYLHRoaXMuSGwpfSxGKS5IbD1mdW5jdGlvbihCLHope3JldHVybiBCW3o9WyJrZXlDb2RlIiwzMiwiaiJdLHpbMF1dPT0xMyYmQi50eXBlPT1Ncnx8Qlt6WzBdXT09elsxXSYmQi50eXBlPT1zWD90aGlzW3pbMl1dKEIpOkJbelswXV09PXpbMV19LEYuQmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5HfSxGKS5aPWZ1bmN0aW9uKCl7aUsuWS5aLmNhbGwodGhpcyksZGVsZXRlIHRoaXMuTCxkZWxldGUgdGhpcy5HfSxGLnBfPWZ1bmN0aW9uKEIpe3RoaXMuRz1CLHRoaXMuWC5wXyh0aGlzLnUoKSxCKX0sUls0NV0oOSwiZ29vZy1idXR0b24iLApmdW5jdGlvbigpe3JldHVybiBuZXcgaUsobnVsbCl9KSxPKVsyMV0oNCxZYixpSyksWWIpLnByb3RvdHlwZS5nYj1mdW5jdGlvbihCLHosSyxKLEMpe2lmKGlLLnByb3RvdHlwZVtDPVs3MiwxMiwiZ2IiXSxDWzJdXS5jYWxsKHRoaXMsQiksQil7aWYodGhpcy52PXo9dGhpcy52LEo9dGhpcy51KCkpej49MD9KLnRhYkluZGV4PXRoaXMudjprW0NbMV1dKENbMF0sMCwhMSxKKX1lbHNlKEs9dGhpcy51KCkpJiZrW0NbMV1dKDczLDAsITEsSyl9LFliKS5wcm90b3R5cGUuQ3E9ZnVuY3Rpb24oQix6LEssSixDKXsoQj0oej0oKEo9KGlLLnByb3RvdHlwZS5DcS5jYWxsKChLPShDPVsyNCwxOSwyM10sdGhpcyksdGhpcykpLHRoaXMpLnUoKSxKLnNldEF0dHJpYnV0ZShOaigpLE9bQ1sxXV0oQ1swXSwzNix0aGlzKSksSikudGFiSW5kZXg9dGhpcy52LEopLmNsaWNrLCExKSx4VikoSixMNCgpLHtnZXQ6ZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7KEI9ITAseikuY2FsbCh0aGlzKX1yZXR1cm4gYi50b1N0cmluZz0KZnVuY3Rpb24oKXtyZXR1cm4gei50b1N0cmluZygpfSxifX0pLGVbMzZdKDEyLFlbQ1syXV0oNDgsdGhpcyksdGhpcyxUdyxmdW5jdGlvbihiLEEsdixwKXtLW3A9WzIsMTMsImlzRW5hYmxlZCJdLHBbMl1dKCkmJih2PW5ldyBjbCxiPWtbMzVdKDU2LEsuUiksQT1tWzIzXSgyMyxiLHYsMSksQiYma1sxNF0oMTQsITAsa1szNF0uYmluZChudWxsLDE2KSwxLHBbMF0sQSxPW3BbMF1dLmJpbmQobnVsbCxwWzFdKSksSy5DKEEpKX0pLGVbMzZdKDEwLFlbQ1syXV0oNTAsdGhpcyksbmV3IHhGKHRoaXMudSgpLCEwKSxEQyxmdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCkmJnRoaXMuai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0sZzRxKXx8e2lkOlRpKCl9LERtPWd6KCksTjlaPSgoKE9bMjFdKDYsbXgscFEpLG14KS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oQix6KXtmb3IoQiBpbiB0aGlzLk0pZGVsZXRlIHRoaXMuTVtCXTtmb3IoeiBpbiB0aGlzLnYpZGVsZXRlIHRoaXMudlt6XX0sCm14KS5wcm90b3R5cGUuWj1mdW5jdGlvbigpeyh0aGlzLnJlc2V0KCkscFEpLnByb3RvdHlwZS5aLmNhbGwodGhpcyl9LEgpWzEyXSgxLDEwMCxxRixXeCksUHg9WzAsRk4sSV8sZyQsYV8sSV8sKE9bMjFdKDYsSEcsVCksLTEpXSwkST1bMCxDWCxreCwxLCgoKEY9KCgoKE9bMjFdKDEsKEhHLnByb3RvdHlwZS5UPVJbNDhdKDksUHgpLHRMKSxUKSx0TC5wcm90b3R5cGUuVTM9ZnVuY3Rpb24oKXtyZXR1cm4gWVszNF0oNCwxLHRoaXMpfSx0TCkucHJvdG90eXBlLnNldFRpbWVvdXQ9ZnVuY3Rpb24oQil7cmV0dXJuIEhbNDldKDI2LDIsQix0aGlzKX0sdEwucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMV0oMTgsdGhpcyw0KX0sdEwpLnByb3RvdHlwZS5WQT1mdW5jdGlvbihCKXtyZXR1cm4gSFtCPVtudWxsLDkwLDIyXSw0XShCWzFdLDIsdGhpcyx2b2lkIDAsdm9pZCAwLGtbNDZdLmJpbmQoQlswXSxCWzJdKSl9LE8pWzIxXSg0LEwxLFQpLEwxLnByb3RvdHlwZSksRikuc2V0VGltZW91dD0KZnVuY3Rpb24oQil7cmV0dXJuIEhbNDldKDI3LDMsQix0aGlzLHZvaWQgMCxsKX0sRi5WQT1mdW5jdGlvbihCKXtyZXR1cm4gSFtCPVs5NSxudWxsLDI4XSw0XShCWzBdLDMsdGhpcyxsLHZvaWQgMCxrWzQ2XS5iaW5kKEJbMV0sQlsyXSkpfSxGLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTZdKDkwLGwsdGhpcyw0LFFCKX0sRi5iaz1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg3MCx0aGlzLFQkLDgsbCl9LEYud1Y9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMjMsdGhpcyw5LGwpfSxMMSkuUlQ9TzcoKSxnJCksVGEsWzAsQ1gsLTFdLFFULENYLC0xLFFULENYLC0yXSxrMT0oTDEucHJvdG90eXBlLlQ9Uls0OF0oOSxbInV2cmVzcCIsQ1gsS1gsa3gsKHRMLnByb3RvdHlwZS5UPVJbNDhdKDEsJEkpLGckKSxPRCwxLE5mLGdqLENYLEtYLC0xLFB4LCRJXSksQTBxKCkpLGh1PXRJKCksYTY9T0tEKCksVU09Vk0oKSx0dT11QSgpLEk2PUZQKCksd3E9SUk4KCksQnM9R0Q4KCkseng9KE10KCksCklHKSgpLENqPShYRCgpLFFNKSgpLEpvPWkxWSgpLHZzPVpyKCksQW89aUUoKSxPc1k9TUMoKSx4dk49T2MoKSxEdlk9d3UoKSxmMWw9SjNZKCksbzRsPWR6KCksTHFaPWZpMygpLFJjWT1FQigpLFFjPXRUdygpLHJVMz0obXkoKSxraGwoKSksRTE9TUooKSxkcT1NWGwoKSxNXz1OOCgpLEZJPXo5KCksc3g9UDkoKSxLaj10VygpLGJqPUVyKCksVHg9dnkoKSxqMz1yMigpLGJ1PU5CKCksU3U9Q2RxKCksYWc9bDgoKSxVaz1yYygpLFFiPXNyKCksVjBOPSgoKCgoKCgoKEY9KCgoKE9bMjFdKDQsR0QsblEpLEdELnByb3RvdHlwZSkuTzM9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKCh0aGlzW3Y9KCgoVz0oKG49KCh6PShRPShLPSgoQz0oKEo9KGI9KChBPSgoeD1bIk8zIiwocD1bMzIsMzMsbnVsbF0sNjkpLCJvIl0sblEucHJvdG90eXBlKVt4WzBdXS5jYWxsKHRoaXMsQiksZVszMV0oMTIsT3NZLHRoaXMpKSx0aGlzKS5wcS5yZW5kZXIoQSksZGsuSigpLmdldCgpKSwKZVszMV0oMTEseHZOLHRoaXMpKSxZKVsxOV0oNSxwWzBdLGIpP0ouc3R5bGUuZGlzcGxheT10QigpOnRoaXMuSS5yZW5kZXIoSiksZVszMV0oMTIsRHZZLHRoaXMpKSxZWzE5XSh4WzFdLHBbMV0sYik/Qy5zdHlsZS5kaXNwbGF5PXRCKCk6dGhpcy5ucS5yZW5kZXIoQyksWj1lWzMxXSgxMSxmMWwsdGhpcyksTj1HWzFdKDI1LDI0LGRrLkooKS5nZXQoKSkpIT1wWzJdJiZOP3RoaXMuRy5yZW5kZXIoWik6Wi5zdHlsZS5kaXNwbGF5PXRCKCksZVszMV0oMTIsbzRsLHRoaXMpKSxkaykuSigpLmdldCgpLFkpWzE5XSg2OCwzMCxRKSx6IT1wWzJdKSYmej90aGlzLmlZLnJlbmRlcihLKTpLLnN0eWxlLmRpc3BsYXk9dEIoKSxlKVszMV0oMTQsTHFaLHRoaXMpLHRoaXMpLkpMLnJlbmRlcihuKSxlWzMxXSgxMyxSY1ksdGhpcykpLHRoaXMpLkZnLnJlbmRlcihXKSxrKVszOF0oMTksdGhpcy5GZyksZVszMV0oMTIsclUzLHRoaXMpKSx4WzJdXS5yZW5kZXIodiksR1sxXSgxNywyNCxiKSkmJllbMTldKDM2LApwWzBdLGIpJiZZWzE5XSgzNixwWzFdLGIpKWtbMzhdKDMsdGhpcy5HKSxrWzM4XSg2Nyx0aGlzW3hbMl1dKTtlbHNlIGlmKHRoaXMuWEMpa1szOF0oMTksdGhpcy5ucSk7ZWxzZSBpZih0aGlzLk15KWtbMzhdKDM1LHRoaXMuSSk7ZWxzZSB0aGlzLnBnPyhrWzM4XSgzLHRoaXMuRyksa1szOF0oODMsdGhpc1t4WzJdXSkpOnRoaXMuZFYmJihrWzM4XSg5OSx0aGlzLmlZKSxrWzM4XSg1MSx0aGlzW3hbMl1dKSl9LEdELnByb3RvdHlwZS5DcT1mdW5jdGlvbihCLHopeygoKCgoblEucHJvdG90eXBlLkNxLmNhbGwoKHo9KEI9dGhpcyxbNTIsIktxIiw4XSksdGhpcykpLGVbMzZdKHpbMl0sWVsyM10oNTQsdGhpcyksdGhpcy5wcSxUdyx0aGlzW3pbMV1dKSxlKVszNl0oMTEsWVsyM10oNDksdGhpcyksdGhpcy5JLFR3LGZ1bmN0aW9uKCl7KHRoaXMubmcoITEpLGcpWzNdKDU5LHRoaXMsIm0iKX0pLGUpWzM2XSgxLFlbMjNdKDUwLHRoaXMpLHRoaXMuRyxUdyxmdW5jdGlvbigpe3RoaXMubmcoITEpLApnWzNdKDUxLHRoaXMsIm8iKX0pLGVbMzZdKDMsWVsyM10oNDksdGhpcyksdGhpcy5ucSxUdyxmdW5jdGlvbigpe3RoaXMubmcoITEpLGdbM10oNTIsdGhpcywibiIpfSksZVszNl0oelsyXSxZWzIzXSg1MSx0aGlzKSx0aGlzLmlZLFR3LGZ1bmN0aW9uKCl7dGhpcy5uZyghMSksZ1szXSg1OSx0aGlzLCJwIil9KSxlKVszNl0oNyxZWzIzXSg1NSx0aGlzKSx0aGlzLkpMLFR3LGZ1bmN0aW9uKEspeyhSW0s9WyJxIiwzMiwxOV0sS1sxXV0oS1syXSwxLDEwLHRoaXMpLGcpWzNdKDUzLHRoaXMsS1swXSl9KSxlWzM2XSgxMixZWzIzXSh6WzBdLHRoaXMpLHRoaXMuRmcsVHcsdGhpcy5uNSksZSlbMzZdKDksWVsyM10oNTMsdGhpcyksdGhpcy51KCksc1gsZnVuY3Rpb24oSyl7Sy5rZXlDb2RlPT0yNyYmZ1szXSg2Myx0aGlzLCJpIil9KSxlKVszNl0oelsyXSxZWzIzXSg1MSx0aGlzKSx0aGlzLm8sVHcsZnVuY3Rpb24oKXtyZXR1cm4gSFsxOF0oMywhMSxCKX0pfSxHRCkucHJvdG90eXBlLmdldE5hbWU9CmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnF9LEdELnByb3RvdHlwZSkubUo9ZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKGI9WzIsKEM9WyExLCJSaWdodCIsIm1hcmdpbiJdLCJoIiksNDNdLHo9ej09PXZvaWQgMD9udWxsOnosQnx8IXp8fGtbMTBdKDcsIm5vbmUiLHopKUImJihLPXRoaXMubTIoITAseikpLCF6fHxCJiYhS3x8KEo9T1tiWzJdXSgzMix0aGlzLlIpLEouaGVpZ2h0Kz0oQj8xOi0xKSooUlszNl0oMjQseikuaGVpZ2h0K21bMTJdKDYxLENbMV0seixDW2JbMF1dKS50b3ArbVsxMl0oNTEsQ1sxXSx6LENbYlswXV0pLmJvdHRvbSksa1s0Nl0oNTcsYlsxXSx0aGlzLEosIUIpKSxCfHx0aGlzLm0yKENbMF0seil9LEdEKS5wcm90b3R5cGUsRi5VMD1mdW5jdGlvbihCLHosSyl7aWYoSz1bMCwia0oiLCJzbGljZSJdLEIpaWYodGhpc1tLWzFdXS5sZW5ndGg9PUtbMF0pUlszMF0oMTQsMTAwLHRoaXMpO2Vsc2Ugej10aGlzW0tbMV1dW0tbMl1dKEtbMF0pLHRoaXNbS1sxXV09W10sCnouZm9yRWFjaChmdW5jdGlvbihKKXtKKCl9KX0sRikubmc9ZnVuY3Rpb24oQix6KXsoKCgoKHRoaXMucHFbej1bIkkiLCJnYiIsIkpMIl0selsxXV0oQiksdGhpc1t6WzBdXSlbelsxXV0oQiksdGhpcy5ucVt6WzFdXShCKSx0aGlzLkcpW3pbMV1dKEIpLHRoaXMpLmlZW3pbMV1dKEIpLHRoaXMpLm9belsxXV0oQiksdGhpc1t6WzJdXVt6WzFdXShCKSxSKVszMl0oMTgsMSwxMCx0aGlzLCExKX0sR0QucHJvdG90eXBlKS5Sej1mdW5jdGlvbigpe3JldHVybiExfSxHRCkucHJvdG90eXBlLktxPWZ1bmN0aW9uKEIpeyhCPVs0OSwhMSwibmciXSx0aGlzW0JbMl1dKEJbMV0pLHRoaXMubUooQlsxXSksZylbM10oQlswXSx0aGlzLCJrIil9LEYuY3o9ZnVuY3Rpb24oKXtyZXR1cm4iIn0sR0QucHJvdG90eXBlKS5Xbz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oYj0oKEo9bmV3IChBPShLPUs9PT12b2lkIDA/IiI6SyxbMyw0NywyXSkseTYpKGtbQVsxXV0oQVswXSxvcE4pK0spLAptKVs5XSg3LEosTjNaLEIpLGRrLkooKS5nZXQoKSksQz1SWzI2XSgyMixiLEFbMl0sbCksbVs5XSgyMSxKLGFFLEMpLHomJm1bOV0oMTMsSixqWUcseiksSikudG9TdHJpbmcoKX0sR0QucHJvdG90eXBlLm41PWZ1bmN0aW9uKCl7fSxGLmF6PWZ1bmN0aW9uKCl7fSxHRC5wcm90b3R5cGUpLmlDPWZ1bmN0aW9uKCl7cmV0dXJuIE9bNDNdKDE2LHRoaXMucmIpfSxGKS56cj1mdW5jdGlvbigpe3JldHVybiExfSxGKS5tMj1mdW5jdGlvbihCLHosSyl7aWYoSz1bMTIsITAsNV0sIXp8fGtbMTBdKDYsIm5vbmUiLHopPT1CKXJldHVybiExO3JldHVybihZWzM4XShLWzJdLHosQiksa1tLWzBdXSg3NCwwLEIseiksSylbMV19LEYuZmc9ZnVuY3Rpb24oKXt9LEYpLmhPPWZ1bmN0aW9uKCl7dGhpcy5JLnUoKS5mb2N1cygpfSxWME58fHtpZDpWWSgpfSk7ZnVuY3Rpb24gRWkoQix6KXtyZXR1cm4gUlsxN10uY2FsbCh0aGlzLDEyLEIseil9CnZhciBHeCxxZj0oKCgoKCgoKChGPSgoKCgoKEY9KEhbMjRdKDkwLEVpLG5RKSxFaS5wcm90b3R5cGUpLEYpLlBFPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMzRdLmNhbGwodGhpcyw0Myl9LEYpLkRHPWZ1bmN0aW9uKEIpeygoQj1bInUiLG51bGwsInYiXSxFaSkuWS5ERy5jYWxsKHRoaXMpLHRoaXNbQlsyXV0mJih0aGlzW0JbMl1dLmRpc3Bvc2UoKSx0aGlzW0JbMl1dPUJbMV0pLHRoaXMpW0JbMF1dKClbQlsyXV09QlsxXX0sRi5WWj1mdW5jdGlvbigpe3JldHVybiB5WzQ3XS5jYWxsKHRoaXMsMSl9LEYpLkNxPWZ1bmN0aW9uKEIseixLKXsoKEVpLlkuQ3EuY2FsbCgoSz1bMywhMCw3Ml0sdGhpcykpLHo9bmV3IHdFKHRoaXMpLGVbMzZdKEtbMF0seix0aGlzLnUoKSxDWix0aGlzLldGKSxlWzM2XSgxMCx6LHRoaXMudSgpLEp0LHRoaXMuVlopLEdbMjldKDIwLG51bGwpP3RoaXMudj16OihoWCYmZVszNl0oOSx6LHRoaXMudSgpLFtCUyxGOCxzWF0sdGhpcy5MciksQj1nWzMxXShLWzJdLAo5LHRoaXMudSgpKSxIWzQxXSg1MSx2b2lkIDAseixEWzExXSgyLEIpLHRoaXMuT1osWXMpLHRoaXMudj16LFlbMV0oMzksS1sxXSx0aGlzKSksSClbMzhdKDE4LG51bGwsdGhpcyksdGhpcy51KCkpLnY9dGhpc30sRikuQkU9ZnVuY3Rpb24oKXtyZXR1cm4gT1szM10uY2FsbCh0aGlzLDEpfSxGKS5QaD1udWxsLEVpKS5wcm90b3R5cGUsRi5XRj1mdW5jdGlvbihCKXtyZXR1cm4ga1syMF0uY2FsbCh0aGlzLDQ5LEIpfSxGKS5PWj1mdW5jdGlvbigpe3JldHVybiBEWzM1XS5jYWxsKHRoaXMsMSl9LEYpLmJZPWZ1bmN0aW9uKCl7dGhpcy5NPXRoaXMubC5NKGQ1LHt0eXBlOldxM30pfSxGKS5PMz1mdW5jdGlvbihCLHosSyxKLEMpe0o9dGhpc1sodGhpc1soQz1bIlgiLCJ1IiwoSz1bITAsOSxudWxsXSwyKV0sRWkuWS5PMykuY2FsbCh0aGlzLEIpLENbMF1dfHwodGhpc1tDWzBdXT1CLmdldEF0dHJpYnV0ZShjVigpKXx8IiIpLERbMTNdKDEwLEtbQ1syXV0sZ1szMV0oMjQsS1sxXSxCKSkpPT0KQiYmKHRoaXMuT2M9S1swXSx6PXRoaXNbQ1sxXV0oKSxSWzI3XSg4LHosImxhYmVsLWlucHV0LWxhYmVsIikpLEdbMjldKDMwLEtbQ1syXV0pJiYodGhpc1tDWzFdXSgpLnBsYWNlaG9sZGVyPXRoaXNbQ1swXV0pLENbMV1dKCksT1sxXSg0OSxURixKLHRoaXNbQ1swXV0pfSxGKS5aPWZ1bmN0aW9uKEIpe3RoaXNbQj1bInYiLCJZIixudWxsXSxFaVtCWzFdXS5aLmNhbGwodGhpcyksQlswXV0mJih0aGlzW0JbMF1dLmRpc3Bvc2UoKSx0aGlzW0JbMF1dPUJbMl0pfSxGLk9jPSExLEYuTHI9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzldLmNhbGwodGhpcywxLEIpfSxFaSkucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKEIpeyh0aGlzWyhCPVsiUGgiLCIiLCJ1Il0sQilbMl1dKCkudmFsdWU9QlsxXSx0aGlzW0JbMF1dIT1udWxsKSYmKHRoaXNbQlswXV09QlsxXSl9LEVpLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbihCKXtPW0I9WyJjbGVhciIsbnVsbCwiIl0sMjZdKDI4LEJbMl0sdGhpcykmJgoodGhpc1tCWzBdXSgpLEhbMzhdKDIsQlsxXSx0aGlzKSl9LEVpKS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXNbQj1bIlBoIixudWxsLCIiXSxCWzBdXSE9QlsxXT90aGlzW0JbMF1dOk9bMjZdKDI1LEJbMl0sdGhpcyk/dGhpcy51KCkudmFsdWU6IiJ9LEVpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy51KCkuZGlzYWJsZWR9LEVpLnByb3RvdHlwZS5XPWZ1bmN0aW9uKCl7dGhpcy5SPSExfSxFaSkucHJvdG90eXBlLm89ZnVuY3Rpb24oQil7KEI9WzI2LCJYIiwiT2MiXSwhdGhpcy51KCkpfHxPW0JbMF1dKDI3LCIiLHRoaXMpfHx0aGlzW0JbMl1dfHwodGhpcy51KCkudmFsdWU9dGhpc1tCWzFdXSl9LE8pWzIxXSg0LGVZLEVpKSxlWS5wcm90b3R5cGUuYlk9ZnVuY3Rpb24oQil7dGhpc1t0aGlzW3RoaXNbKEVpLnByb3RvdHlwZS5iWS5jYWxsKChCPVsidSIsInNldEF0dHJpYnV0ZSIsInJjLXJlc3BvbnNlLWlucHV0LWZpZWxkIl0sCnRoaXMpKSx0aGlzKVtCWzBdXSgpW0JbMV1dKE5qKCksT1sxOV0oOCwzNix0aGlzKSksQlswXV0oKVtCWzFdXShERCgpLFJ2KCkpLEJbMF1dKClbQlsxXV0oSEIoKSxSdigpKSx0aGlzW0JbMF1dKClbQlsxXV0oQU4oKSxSdigpKSxCWzBdXSgpW0JbMV1dKFo1KCksQ0MoKSksdGhpc1tCWzBdXSgpW0JbMV1dKFdCKCksWW8oKSksUls4XSgzNSxCWzJdLHRoaXNbQlswXV0oKSl9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gYj1bMzMsInJlcGxhY2UiLDFdLE80PyhDPS9XaW5kb3dzIE5UIChbMC05Ll0rKS8sKHo9Qy5leGVjKEhbYlswXV0oMjApKSk/eltiWzJdXTptZygpKTpkcj8oQz0vMVswfDFdW18uXVswLTlfLl0rLywoSj1DLmV4ZWMoSFtiWzBdXSgxOCkpKT9KWzBdW2JbMV1dKC9fL2csZUMoKSk6ZXgoKSk6czQ/KEM9L0FuZHJvaWRccysoW15cKTtdKykoXCl8OykvLChCPUMuZXhlYyhIW2JbMF1dKDIxKSkpP0JbYlsyXV06IiIpOkkyfHxGZnx8QU0zPyhDPS8oPzppUGhvbmV8Q1BVKVxzK09TXHMrKFxTKykvLAooSz1DLmV4ZWMoSFtiWzBdXSgyMikpKT9LW2JbMl1dW2JbMV1dKC9fL2csZUMoKSk6IiIpOiIifSkoKSxJeD1sOCgpLGg0PW5ldyBibSgyODAsMjc1KSxhVD1uZXcgYm0oMjgwLDIzNSksR1RsPXNKKCksaTU9bVV3KCkseWQ9R3lEKCksSHNoPURfKCksWUk9bzgzKCksZWNxPUZIdygpLFAwRD1qQlkoKSwkdkc9d0xOKCkscXZaPVlfKCksaXM4PShnSSgpLHU4OCkoKSxkSz1kMTgoKSxjeD1vQSgpLFNpPU00bCgpLHlVOD1QVygpLGtBPSgoKCgoKEY9KE9bMjFdKDQsRjYsR0QpLEY2KS5wcm90b3R5cGUsRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCgoKGI9WyJFbnRlciB3aGF0IHlvdSBoZWFyIiwobj1bMiwiUHJlc3MgQ1RSTCB0byBwbGF5IGFnYWluLiIsMzFdLDgpLCEwXSx0aGlzKS5tSighIUspLHRoaXMpLlguY2xlYXIoKSxIWzE2XSgxMCxiW25bMF1dLHRoaXMuWCksdGhpcy5IfHwobVtuWzJdXSg4OCxlW25bMl1dKDE0LGk1LHRoaXMpLEdbMzNdLmJpbmQobnVsbCwKMTIpLHtrRjp0aGlzLldvKEIsdm9pZCAwLCIvYXVkaW8ubXAzIiksQzE6SFszXShuWzBdLCExKT8icmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkLWxpbmstb24tZGFyayI6InJjLWF1ZGlvY2hhbGxlbmdlLXRkb3dubG9hZC1saW5rIn0pLFlbNDFdKDcyLG51bGwsdGhpcyxnWzI2XSgxOSwxLGVbblsyXV0oOSxpNSx0aGlzKSksdE0oKSkpLGxmKShsOCgpKS5wbGF5KXomJlJbNDhdKDc1LHosblosYlsxXSxsKSYmKHA9Uls0OF0oNzEseixuWixiWzFdLGwpLGdbMTZdKDI1LHZvaWQgMCxwLDEsUUIpKSxRPWVbblsyXV0oMTQsSHNoLHRoaXMpLFJbMzZdKDE4LFEsIlByZXNzIFBMQVkgdG8gbGlzdGVuIiksQz1lW25bMl1dKDksZWNxLHRoaXMpLFJbMzZdKDIzLEMsYlswXSksdGhpcy5IfHxSWzM2XSgyMixPW25bMF1dKDM0LFNpLGRvY3VtZW50KSxuWzFdKSx2PXRoaXMuV28oQiwiIiksbVtuWzJdXSgyOSx0aGlzLmcsa1szN10uYmluZChudWxsLDgpLHtrRjp2fSksdGhpcy5DPU9bblswXV0oMzIsCmlzOCxkb2N1bWVudCksWVs0MV0oNzMsbnVsbCx0aGlzLHRoaXMuQyxtSCgpKSxBPWVbblsyXV0oOSxZSSx0aGlzKSxKPVJbMTJdKG5bMF0sMTYsIlBMQVkiLHRoaXMpLHlbNDNdKDQxLEosdGhpcyksSi5yZW5kZXIoQSksT1sxXSgxNix6dyxKLnUoKSxbY3gsU2ldKSxlWzM2XSgxMSxZWzIzXSg0OSx0aGlzKSxKLFR3LHRoaXMucW0pO2Vsc2UgbVtuWzJdXSgyNCx0aGlzLmcseVs0Nl0uYmluZChudWxsLDUpKTtyZXR1cm4gbVtuWzBdXSg2KX0sRi5abz1mdW5jdGlvbihCKXtyZXR1cm4gbVsyN10uY2FsbCh0aGlzLDU2LEIpfSxGLmF6PWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJYIiw4LCJyZXNwb25zZSJdLEIpWzJdXVtCdSgpXT10aGlzW0JbMF1dLmdldFZhbHVlKCksSFsxNl0oQlsxXSwhMSx0aGlzW0JbMF1dKX0sRi5VMD1mdW5jdGlvbihCLHopeyh6PVsiQyIsIlUwIiwiY2FsbCJdLEdELnByb3RvdHlwZVt6WzFdXVt6WzJdXSh0aGlzLEIpLCFCJiZ0aGlzW3pbMF1dKSYmdGhpc1t6WzBdXS5wYXVzZSgpfSwKRikuQ3E9ZnVuY3Rpb24oQix6KXsoKChCPSgodGhpcy5nPSgoej1bMSw4OSwiWm8iXSxHRCkucHJvdG90eXBlLkNxLmNhbGwodGhpcyksZVszMV0oMTEsR1RsLHRoaXMpKSx0aGlzLlgpLnJlbmRlcihlWzMxXSgxNCxQMEQsdGhpcykpLHRoaXMuWC51KCkpLE9belswXV0oMTYsencsQixbeVU4XSksZSlbMzZdKHpbMF0sZVszNl0oMTAsZVszNl0oNyxlWzM2XSh6WzBdLFlbMjNdKDQ4LHRoaXMpLG1bMl0oelsxXSwkdkcpLENaLGZ1bmN0aW9uKCl7RFszMV0oMjksIm5vbmUiKX0pLG1bMl0oelsxXSxxdlopLENaLGZ1bmN0aW9uKCl7RFszMV0oMzAsIm5vbmUiLFt5ZCxZSV0pfSksQixGOCxmdW5jdGlvbihLKXtLLmN0cmxLZXkmJksua2V5Q29kZT09MTcmJnRoaXMucW0oKX0pLGRvY3VtZW50LEY4LGZ1bmN0aW9uKEspe0sua2V5Q29kZT09ODImJksudGFyZ2V0IT1CJiZ0aGlzLnFtKCl9KSx0aGlzKS52PWVbMzFdKDExLHlkLHRoaXMpLG0pWzQwXSgxMix0aGlzLmosZG9jdW1lbnQpLGVbMzZdKDUsCllbMjNdKDUyLHRoaXMpLHRoaXMuaixNcix0aGlzW3pbMl1dKX0sRi5tMj1mdW5jdGlvbihCLHosSyxKKXtpZihKPVsidiIsMSwiICJdLHopcmV0dXJuIEs9ISF0aGlzW0pbMF1dJiZnWzhdKEpbMV0sSlsyXSx0aGlzW0pbMF1dKS5sZW5ndGg+MCxZWzM4XSgzOSx0aGlzW0pbMF1dLEIpLGVbNDRdKDI2LHRoaXMuWCxCKSxEWzEzXSgzOCx0aGlzW0pbMF1dKSxCJiZSWzM2XSgyMix0aGlzW0pbMF1dLCJNdWx0aXBsZSBjb3JyZWN0IHNvbHV0aW9ucyByZXF1aXJlZCAtIHBsZWFzZSBzb2x2ZSBtb3JlLiIpLEIhPUs7cmV0dXJuISh0aGlzLm1KKEIsdGhpc1tKWzBdXSksMSl9LEYpLmZnPWZ1bmN0aW9uKEIseil7bVszMV0oMjcsQixZWyh6PVsxNCxudWxsLDE2XSx6KVswXV0uYmluZCh6WzFdLHpbMl0pLHtRbzp0aGlzLkh9KX0sRi5iWT1mdW5jdGlvbihCKXt0aGlzW3RoaXNbKEdELnByb3RvdHlwZS5iWS5jYWxsKChCPVsidSIsIk0iLCJPMyJdLHRoaXMpKSxCKVsxXV09a1syMl0oMzYsRFs0XS5iaW5kKG51bGwsCjMzKSx7clQ6Y3h9KSxCWzJdXSh0aGlzW0JbMF1dKCkpfSxGKS5oTz1mdW5jdGlvbihCLHopeyEoKHo9KEI9WzAsIiAiLDEwXSxbImZvY3VzIiw0LDBdKSx0aGlzLnYpJiZnWzhdKHpbMV0sQlsxXSx0aGlzLnYpLmxlbmd0aD5CW3pbMl1dKXx8ZmwmJmtbMTZdKDQzLEJbMl0sQlsyXSxxZik+PUJbelsyXV0/bVsyXSg5NSxZSSkuY2hpbGRyZW5bQlt6WzJdXV1belswXV0oKTp0aGlzLnZbelswXV0oKX0sRikuUno9ZnVuY3Rpb24oQil7cmV0dXJuKEI9WyExLDI4LCJnZXRWYWx1ZSJdLHRoaXMuQyYmdGhpcy5DLnBhdXNlKCksUlsyXShCWzFdLHRoaXMuWFtCWzJdXSgpKSk/KE9bMl0oMjcsY3gsZG9jdW1lbnQpLmZvY3VzKCksITApOkJbMF19LEYpLnFtPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gR1szMV0uY2FsbCh0aGlzLDcsQix6LEspfSxybykoKSxVbT1UYigpLFl2RD1ROTgoKSxjVTg9V1EoKSxWUz1yMigpLHhlPW5ldyBibSg0MDAsNTgwKSxtdz0oKCgoKCgoKChGPSgoT1syMV0oMywKdGUsR0QpLHRlKS5wcm90b3R5cGUuaUM9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIG5ldyAoSz0oej1sOSgoQj10aGlzW0o9WzMwMCwiVyIsNl0sSlsxXV18fEdbNDRdKEpbMl0sMjApLEIuaGVpZ2h0KS0xOTQsNDAwLEIud2lkdGgpLGhZKHosSlswXSkpLGJtKShLLDE4MCtLKX0sdGUucHJvdG90eXBlKSxGKS56cj1mdW5jdGlvbihCLHope3JldHVybiB6PShCPXRoaXMuZ2V0TmFtZSgpPT09VW0sdGhpcy5YLmRRKS5Ebi5JTj09PTAsQiYmen0sdGUpLnByb3RvdHlwZS5DcT1mdW5jdGlvbihCKXsoR0RbQj1bInJjLWltYWdlc2VsZWN0LXRhYmxvb3AtYmVnaW4iLCJwcm90b3R5cGUiLDkxXSxCWzFdXS5DcS5jYWxsKHRoaXMpLGUpWzM2XSg5LFlbMjNdKDUwLHRoaXMpLG1bMl0oOTAsInJjLWltYWdlc2VsZWN0LXRhYmxvb3AtZW5kIiksQ1osZnVuY3Rpb24oKXtEWzMxXSgzNiwibm9uZSIsWyJyYy1pbWFnZXNlbGVjdC10aWxlIl0pfSksZVszNl0oOSxZWzIzXSg1NSx0aGlzKSxtWzJdKEJbMl0sCkJbMF0pLENaLGZ1bmN0aW9uKCl7RFszMV0oMjksIm5vbmUiLFsidmVyaWZ5LWJ1dHRvbi1ob2xkZXIiXSl9KX0sRi5PMz1mdW5jdGlvbihCLHope3RoaXMuQz0oKHo9WyJwcm90b3R5cGUiLCJjYWxsIiwiTzMiXSxHRFt6WzBdXSlbelsyXV1belsxXV0odGhpcyxCKSxlWzMxXSgxNSwicmMtaW1hZ2VzZWxlY3QtcGF5bG9hZCIsdGhpcykpfSxGKS5Sej1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy5YLmRRLkRuLklOPChCPVs5MCwiRTMiLCEwXSx0aGlzKVtCWzFdXT8odGhpcy5tSihCWzJdLG1bMl0oQlswXSwicmMtaW1hZ2VzZWxlY3QtZXJyb3Itc2VsZWN0LW1vcmUiKSksQlsyXSk6ITF9LEYpLmJZPWZ1bmN0aW9uKEIpeygoQj1bImJZIixudWxsLCJNIl0sR0QucHJvdG90eXBlKVtCWzBdXS5jYWxsKHRoaXMpLHRoaXNbQlsyXV09a1syMl0oNjksSFs2XS5iaW5kKEJbMV0sMjUpKSx0aGlzKS5PMyh0aGlzLnUoKSl9LHRlKS5wcm90b3R5cGUuUz1mdW5jdGlvbihCLHosSyxKKXt6PShCLnNlbGVjdGVkPQooKEs9KChKPVsxOCwzOSwibUoiXSx0aGlzKVtKWzJdXSghMSksIUIuc2VsZWN0ZWQpKT9SWzhdKDk5LCJyYy1pbWFnZXNlbGVjdC10aWxlc2VsZWN0ZWQiLEIuZWxlbWVudCk6UlsyN10oNCxCLmVsZW1lbnQsInJjLWltYWdlc2VsZWN0LXRpbGVzZWxlY3RlZCIpLEspLHRoaXMuWC5kUS5Ebi5JTis9Sz8xOi0xLG1bMl0oOTMsInJjLWltYWdlc2VsZWN0LWNoZWNrYm94IixCLmVsZW1lbnQpKSxZWzM4XShKWzFdLHosSyksdGhpcy56cigpP2dbSlswXV0oNDksdGhpcywiU2tpcCIpOmdbSlswXV0oMzMsdGhpcyl9LHRlLnByb3RvdHlwZSkuZmc9ZnVuY3Rpb24oQix6KXttW3o9WzgsMzEsMzBdLHpbMV1dKHpbMl0sQixEW3pbMF1dLmJpbmQobnVsbCw1Mikse0lBOnRoaXMuZ2V0TmFtZSgpfSl9LHRlLnByb3RvdHlwZS5uWD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe3JldHVybigoKChRPSgoSj0oQT0ocD0oSz10aGlzLG49WzM1LCh6PVswLCJ0ZCIsMV0sMzcpLDddLFIpWzFdKDcyLAo0LG1bMzFdKDQselsyXSx0aGlzLm1ldGFkYXRhKSksTylbMjJdKDY0LDUsbVszMV0oNSx6WzJdLHRoaXMubWV0YWRhdGEpKSxIKVs0N10oMTIsNCwyLHAsQSx0aGlzKSxKKS50Qj1CLHY9W10sa1syMl0oblsxXSxnMFs0XS5iaW5kKG51bGwsMjYpLEopKSxrKVszMl0oMTAsZVszMV0oMTMsInJjLWltYWdlc2VsZWN0LXRhcmdldCIsdGhpcyksUSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlW25bMF1dKDUxLCIuIixRLGRvY3VtZW50LG51bGwselsxXSksZnVuY3Rpb24oWixXLE4pe3YucHVzaCgoVz17c2VsZWN0ZWQ6IShOPXRoaXMsMSksZWxlbWVudDpafSxXKSksZVszNl0oOCxZWzIzXSg1MSx0aGlzKSxuZXcgeEYoWiwhMSwhMCksREMsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBOLlMoVyl9KX0sdGhpcyksQz1lW25bMF1dKDU1LCIuIixRLGRvY3VtZW50LCJyYy1pbWFnZXNlbGVjdC10aWxlIix6WzFdKSxyNCkoQyxmdW5jdGlvbihaLFcsTil7KGVbMzZdKDEsKE49WzIzLChXPQp0aGlzLDUwKSxudWxsXSxZW05bMF1dKE5bMV0sdGhpcykpLFosW0NaLEp0XSxmdW5jdGlvbigpe30pLGVbMzZdKDEwLFlbTlswXV0oNTIsdGhpcyksWixGOCxmdW5jdGlvbih4KXtyZXR1cm4gdm9pZCBSWzNdKDIzLDQwLG51bGwsVyx4LEEpfSksQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLmNhbGwoZVszNV0oTlswXSwiLiIsWixkb2N1bWVudCxOWzJdLCJpbWciKSxmdW5jdGlvbih4KXtZWzQxXSg3NCxudWxsLHRoaXMseCwic3JjIil9LHRoaXMpfSx0aGlzKSxiPU9bMl0oMjgsY1U4LGRvY3VtZW50KSxEWzEwXShuWzJdLHpbMF0sITAsYikpfHxIWzVdKDI2LGIsRjgsZnVuY3Rpb24oWil7cmV0dXJuIHZvaWQgUlszXSgyNCw0MCxudWxsLEssWixBKX0pLHRoaXMuWC5kUS5Ebj17cm93U3BhbjpwLGNvbFNwYW46QSxOdDp2LElOOjB9LHRoaXMpLnpyKCk/Z1sxOF0oMzMsdGhpcywiU2tpcCIpOmdbMThdKDEsdGhpcyksUX0sRi5hej1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2VbQnUoKV09CkdbMjldKDI0LHRoaXMpfSx0ZS5wcm90b3R5cGUpLmhPPWZ1bmN0aW9uKCl7fSxGKS5tMj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIEs9WyJyYy1pbWFnZXNlbGVjdC1lcnJvci1zZWxlY3QtbW9yZSIsInJjLWltYWdlc2VsZWN0LWluY29ycmVjdC1yZXNwb25zZSIsInJjLWltYWdlc2VsZWN0LWVycm9yLWR5bmFtaWMtbW9yZSJdLCFCJiZ6fHxLLmZvckVhY2goZnVuY3Rpb24oSixDKXsoQz1tWzJdKDkzLEopLEMhPXopJiZ0aGlzLm1KKCExLEMpfSx0aGlzKSx6P0dELnByb3RvdHlwZS5tMi5jYWxsKHRoaXMsQix6KTohMX0sRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKCgoQz0oKEo9KHRoaXMuRTM9KCh2PW1bMzFdKDEsKHRoaXMubWV0YWRhdGE9KHA9WyhBPVsiIiwxLCIuIl0sYj10aGlzLG51bGwpLCJuWCIsMjRdLHopLEFbMV0pLHRoaXMubWV0YWRhdGEpLHRoaXMpLlFlPVJbMjZdKDIzLHYsQVsxXSksSFsyMV0oMzksdiwzKXx8QVsxXSksYTAoKSksZylbMTZdKDc1LAp2b2lkIDAsdiw2KT09QVsxXSYmKEo9djQoKSksUlsyNl0oMTIsdiw3KSksQyE9cFswXSYmKEM9Qy50b0xvd2VyQ2FzZSgpKSxtWzMxXSg5MSx0aGlzLkMsbVszMl0uYmluZChwWzBdLDgpLHtsYWJlbDp0aGlzLlFlLGpkOkhbcFsyXV0oMjgsQVswXSxwWzBdLEhbNF0oOTMsMix2LHZvaWQgMCxRQixlWzM1XS5iaW5kKHBbMF0sMTMpKSksbGc6SixVWTp0aGlzLmdldE5hbWUoKSxNSTpDfSksbSlbNDRdKDEsQVswXSx7YXNzZXJ0Ok9bNDhdLmJpbmQocFswXSwyMCl9LmFzc2VydCh0aGlzLkMpLHlbMV0oMixwWzBdLHRoaXMuQy5pbm5lckhUTUwucmVwbGFjZShlQygpLEFbMF0pKSksdGhpcy5YLmRRKS5lbGVtZW50PUxwKFl2RCksa1s0Nl0oNTksImgiLHRoaXMsdGhpcy5pQygpLCEwKSxrKVszMV0oNiwicHgiLHRoaXMpLERbMjVdKDMzLEFbMl0sdGhpc1twWzFdXSh0aGlzLldvKEIpKSkudGhlbihmdW5jdGlvbigpe0smJmIubUooITAsbVsyXSg5MSwicmMtaW1hZ2VzZWxlY3QtaW5jb3JyZWN0LXJlc3BvbnNlIikpfSl9LApMbygpKSxTdjg9KFBhKCksVzMoKSksbDU9WncoKSxtdnE9REwoKTsKKCgoT1syMV0oNSxwcSx0ZSkscHEucHJvdG90eXBlKS5hej1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtmb3IoQj0oQT0oQz0wLFsicHVzaCIsInYiLDEzXSksW10pO0M8dGhpc1tBWzFdXS5sZW5ndGg7QysrKXtmb3IoSz0oYj0wLFtdKTtiPHRoaXNbQVsxXV1bQ10ubGVuZ3RoO2IrKyl6PXRoaXNbQVsxXV1bQ11bYl0sSj1PWzIwXShBWzJdLDEvdGhpcy5ILG5ldyBaNih6Lnksei54KSkucm91bmQoKSxLW0FbMF1dKHt4OkoueCx5OkoueX0pO0JbQVswXV0oSyl9dGhpcy5yZXNwb25zZVtCdSgpXT1CfSxwcS5wcm90b3R5cGUuenI9ZnVuY3Rpb24oKXtyZXR1cm4hMX0scHEpLnByb3RvdHlwZS5uWD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoQz0oQT0odGhpcy5IPSgoKCh6PShiPWtbdGhpcy52PVsodj0oSz0oSj10aGlzLFszODYsInJjLWltYWdlc2VsZWN0LXRhcmdldCIsInJjLWNhbnZhcy1pbWFnZSJdKSxbNjksMzYsMjJdKSxbXSldLHZbMl1dKHZbMF0sWVsyM10uYmluZChudWxsLAo4KSx7dEI6Qn0pLGtbMzJdKDMsbVsyXSg5MCxLWzFdKSxiKSxtKVsyXSg4OSwicmMtY2FudmFzLWNhbnZhcyIpLHopLndpZHRoPU9bNDNdKDMzLHRoaXMuUikud2lkdGgtMTQseikuaGVpZ2h0PXoud2lkdGgsYi5zdHlsZSkuaGVpZ2h0PWtbMzJdKDEzLCJudW1iZXIiLHouaGVpZ2h0KSx6LndpZHRoL0tbMF0pLHouZ2V0Q29udGV4dChSOSgpKSksbSlbMl0oOTIsS1syXSksSClbNV0oMjUsQyxZcyxmdW5jdGlvbigpe0EuZHJhd0ltYWdlKEMsMCwwLHoud2lkdGgsei5oZWlnaHQpfSksZSlbdlsxXV0oNyxZWzIzXSg1MSx0aGlzKSxuZXcgeEYoeiksREMsZnVuY3Rpb24ocCl7cmV0dXJuIHZvaWQgSi5qUihwKX0pLGJ9LHBxKS5wcm90b3R5cGUualI9ZnVuY3Rpb24oQil7dGhpcy5tSigoQj1bITEsMzgsN10sQlswXSkpLFlbQlsxXV0oQlsyXSx0aGlzLkZnLnUoKSwhMCl9O2Z1bmN0aW9uIEVBKEIseixLLEope3JldHVybiBrWzI4XS5jYWxsKHRoaXMsMixLLEoseixCKX0KdmFyIHpqPShFQS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIseil7cmV0dXJuKHo9WyJYIiwidiIsIk0iXSx0aGlzW3pbMF1dKT09Qlt6WzBdXSYmdGhpcy5pPT1CLmkmJnRoaXNbelsxXV09PUJbelsxXV0mJnRoaXNbelsyXV09PUJbelsyXV19LHhLKCkpLEp4PSgoKChGPShPWzIxXSgyLEtSLHBxKSxLUi5wcm90b3R5cGUpLEYpLktnPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtmb3IoYj0oKEM9KHo9bVtBPVsyLChwPVsic3Ryb2tlU3R5bGUiLCJzZXRMaW5lRGFzaCIsMl0sMCksMV0scFsyXV0oOTUsInJjLWNhbnZhcy1jYW52YXMiKSxKPXouZ2V0Q29udGV4dChSOSgpKSxtW3BbMl1dKDkwLCJyYy1jYW52YXMtaW1hZ2UiKSksSi5kcmF3SW1hZ2UoQyxBWzFdLEFbMV0sei53aWR0aCx6LmhlaWdodCksSltwWzBdXT1tdyxKKS5saW5lV2lkdGg9QVswXSxBKVsxXTtiPHRoaXMudi5sZW5ndGg7YisrKWlmKHY9dGhpcy52W2JdLmxlbmd0aCx2IT1BWzFdKXtmb3IoKGI9PXRoaXMudi5sZW5ndGgtCkFbcFsyXV0mJihCJiYoSi5iZWdpblBhdGgoKSxKW3BbMF1dPVN2OCxKLm1vdmVUbyh0aGlzLnZbYl1bdi1BW3BbMl1dXS54LHRoaXMudltiXVt2LUFbcFsyXV1dLnkpLEoubGluZVRvKEIueCxCLnkpLEpbcFsxXV0oWzBdKSxKLnN0cm9rZSgpLEouY2xvc2VQYXRoKCkpLEpbcFswXV09bDUsSi5iZWdpblBhdGgoKSxKLmZpbGxTdHlsZT1sNSxKLmFyYyh0aGlzLnZbYl1bdi1BW3BbMl1dXS54LHRoaXMudltiXVt2LUFbcFsyXV1dLnksMyxBWzFdLEFbMF0qTWF0aC5QSSksSi5maWxsKCksSi5jbG9zZVBhdGgoKSksSikuYmVnaW5QYXRoKCksSi5tb3ZlVG8odGhpcy52W2JdW0FbMV1dLngsdGhpcy52W2JdW0FbMV1dLnkpLEs9QVtwWzJdXTtLPHY7SysrKUoubGluZVRvKHRoaXMudltiXVtLXS54LHRoaXMudltiXVtLXS55KTsoSi5maWxsU3R5bGU9bXZxLEouZmlsbCgpLEpbcFsxXV0oWzBdKSxKLnN0cm9rZSgpLEoubGluZVRvKHRoaXMudltiXVtBWzFdXS54LHRoaXMudltiXVtBWzFdXS55KSwKSilbcFsxXV0oWzEwXSksSi5zdHJva2UoKSxKLmNsb3NlUGF0aCgpfX0sRikuUno9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZighKEM9dGhpc1tCPSh2PVsidiIsNTAwLDFdLFswLDIsInJjLWltYWdlc2VsZWN0LWVycm9yLXNlbGVjdC1zb21ldGhpbmciXSksdlswXV1bQlswXV0ubGVuZ3RoPD1CW3ZbMl1dKSl7Zm9yKEE9QltiPUJbMF0sMF07Yjx0aGlzW3ZbMF1dLmxlbmd0aDtiKyspZm9yKEs9QlswXSxKPXRoaXNbdlswXV1bYl0sej1KLmxlbmd0aC12WzJdO0s8Si5sZW5ndGg7SysrKUErPShKW3pdLngrSltLXS54KSooSlt6XS55LUpbS10ueSksej1LO0M9ZTcoQSouNSk8dlsxXX1yZXR1cm4gQz8odGhpcy5tSighMCxtWzJdKDkzLEJbMl0pKSwhMCk6ITF9LEYualI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgpe2lmKEw9KFM9KGY9KGI9KCh4PShYPVsyLCExLDIwXSxbMSwxRS01LDJdKSxwcS5wcm90b3R5cGUualIpLmNhbGwodGhpcywKQiksTj1tW1hbMF1dKDkwLCJyYy1jYW52YXMtY2FudmFzIiksbVszN10oMjEseFswXSwwLE4pKSxuZXcgWjYoQi5jbGllbnRZLWIueSxCLmNsaWVudFgtYi54KSksdGhpcy52KVt0aGlzLnYubGVuZ3RoLXhbMF1dLFMubGVuZ3RoKT49Myl2PVNbMF0scD1mLnktdi55LFE9Zi54LXYueCxMPVRYKFEqUStwKnApPDE1O249TDthOntpZihTLmxlbmd0aD49eFtYWzBdXSlmb3IoUD1TLmxlbmd0aC14WzBdO1A+MDtQLS0paWYoej1TW1MubGVuZ3RoLXhbMF1dLGM9U1tQLXhbMF1dLFo9U1tQXSxBPWYsYT1lWzE2XSg4LGMsWikscj1lWzE2XSgxLHosQSksYT09cj9DPSEwOihLPWFbMF0qclt4WzBdXS1yWzBdKmFbeFswXV0sZTcoSy0wKTw9eFsxXT9DPVhbMV06KHU9T1tYWzJdXSgxNCx4WzBdL0ssbmV3IFo2KGFbMF0qclt4W1hbMF1dXS1yWzBdKmFbeFtYWzBdXV0sclt4WzBdXSphW3hbWFswXV1dLWFbeFswXV0qclt4W1hbMF1dXSkpLE9bWFsyXV0oMzAseFsxXSx1LGMpfHxPW1hbMl1dKDg2LAp4WzFdLHUsWil8fE9bWFsyXV0oNjIseFsxXSx1LHopfHxPW1hbMl1dKDIyLHhbMV0sdSxBKT9DPVhbMV06KFc9bmV3IEVBKGMueCxjLnksWi54LFoueSkscT1nWzIyXSgzLFcsZVsyNF0oNSwwLERbN10oMjQsdS55LHUueCxXKSx4WzBdKSksVj1uZXcgRUEoei54LHoueSxBLngsQS55KSxKPWdbMjJdKFhbMF0sVixlWzI0XSgzLDAsRFs3XSg4LHUueSx1LngsVikseFswXSkpLEM9T1tYWzJdXSg1NCx4WzFdLHUscSkmJk9bWFsyXV0oOTQseFsxXSx1LEopKSkpLEMpe0U9biYmUD09eFswXTticmVhayBhfUU9ITB9RT8obj8oUy5wdXNoKFNbMF0pLHRoaXMudi5wdXNoKFtdKSk6Uy5wdXNoKGYpLHRoaXMuS2coKSk6KHRoaXMuS2coZiksT1tYWzBdXSg3LHRoaXMuS2csMjUwLHRoaXMpKX0sRi5mZz1mdW5jdGlvbihCKXttWzMxXSg5MyxCLEdbMjBdLmJpbmQobnVsbCw1KSl9LEYpLm41PWZ1bmN0aW9uKEIseil7dGhpc1soQj0oKEI9KHo9WyJ2IiwiS2ciLDBdLHRoaXNbelswXV0ubGVuZ3RoLQoxKSx0aGlzW3pbMF1dW0JdLmxlbmd0aCk9PXpbMl0mJkIhPXpbMl0mJnRoaXNbelswXV0ucG9wKCksdGhpc1t6WzBdXS5sZW5ndGgpLTEsdGhpc1t6WzBdXVtCXS5sZW5ndGgpIT16WzJdJiZ0aGlzW3pbMF1dW0JdLnBvcCgpLHpbMV1dKCl9LERxKSgpLEVtPSgoKChGPShPWzIxXSgyLENSLHBxKSxDUikucHJvdG90eXBlLEYublg9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKCgoSz1wcS5wcm90b3R5cGUublguY2FsbCh0aGlzLCh6PVsicHgiLDAsKEo9WzEsNDUsNDBdLCJOb25lIEZvdW5kIildLEIpKSxSKVs0Nl0oSlsyXSx6WzBdLEpbMF0sdGhpcyksTylbMjZdKEpbMV0sIndpZHRoIixKWzBdLHpbSlswXV0pLGcpWzE4XSgxNyx0aGlzLHpbMl0sITApLEt9LEYuZmc9ZnVuY3Rpb24oQil7bVszMV0oMzEsQixrWzI4XS5iaW5kKG51bGwsMTEpKX0sRikualI9ZnVuY3Rpb24oQix6LEssSil7KHo9KEs9KEo9WyJqUiIsIk5leHQiLCJjbGllbnRZIl0scHEucHJvdG90eXBlW0pbMF1dLmNhbGwodGhpcywKQiksbSlbMl0oOTAsInJjLWNhbnZhcy1jYW52YXMiKSxtWzM3XSgxNywxLDAsSykpLHRoaXMudilbdGhpcy52Lmxlbmd0aC0xXS5wdXNoKG5ldyBaNihCW0pbMl1dLXoueSxCLmNsaWVudFgtei54KSksZ1sxOF0oOSx0aGlzLEpbMV0pLHRoaXMuS2coKX0sQ1IpLnByb3RvdHlwZS5uNT1mdW5jdGlvbihCLHopeygoQj0oej1bMSwidiIsMF0sdGhpc1t6WzFdXS5sZW5ndGgtelswXSksdGhpcylbelsxXV1bQl0ubGVuZ3RoIT16WzJdJiZ0aGlzW3pbMV1dW0JdLnBvcCgpLHRoaXNbelsxXV1bQl0ubGVuZ3RoPT16WzJdJiZnWzE4XSh6WzBdLHRoaXMsIk5vbmUgRm91bmQiLCEwKSx0aGlzKS5LZygpfSxGKS5LZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7Zm9yKEE9KEo9KHo9KEI9KChwPVsiUEkiLDEsKGI9WyJ3aWR0aCIsMCwzXSwicmMtY2FudmFzLWltYWdlIildLHRoaXMudi5sZW5ndGg9PWJbcFsxXV0pP09bMjZdKDQ3LGJbMF0scFsxXSxiW3BbMV1dKTpPWzI2XSg0NixiWzBdLApiWzJdLHRoaXMudi5sZW5ndGgtcFsxXSksbSlbMl0oOTMsInJjLWNhbnZhcy1jYW52YXMiKSxCLmdldENvbnRleHQoUjkoKSkpLEs9bVsyXSg5NCxwWzJdKSx6LmRyYXdJbWFnZShLLGJbcFsxXV0sYltwWzFdXSxCLndpZHRoLEIuaGVpZ2h0KSxsZikoeEsoKSksSi53aWR0aD1CLndpZHRoLEouaGVpZ2h0PUIuaGVpZ2h0LHY9Si5nZXRDb250ZXh0KFI5KCkpLHYuZmlsbFN0eWxlPW13LGIpW3BbMV1dO0E8dGhpcy52Lmxlbmd0aDtBKyspZm9yKEE9PXRoaXMudi5sZW5ndGgtcFsxXSYmKHYuZmlsbFN0eWxlPWw1KSxDPWJbcFsxXV07Qzx0aGlzLnZbQV0ubGVuZ3RoO0MrKyl2LmJlZ2luUGF0aCgpLHYuYXJjKHRoaXMudltBXVtDXS54LHRoaXMudltBXVtDXS55LDIwLGJbcFsxXV0sMipNYXRoW3BbMF1dKSx2LmZpbGwoKSx2LmNsb3NlUGF0aCgpOyh6LmRyYXdJbWFnZShKLGJbcFsxXV0sYltwW3ouZ2xvYmFsQWxwaGE9LjUsMV1dKSx6KS5nbG9iYWxBbHBoYT1wWzFdfSxGLlJ6PWZ1bmN0aW9uKEIsCnope2lmKCgoQj1bNTAwLDMsISh6PVswLDE4LDJdLDApXSx0aGlzLnYpLnB1c2goW10pLHRoaXMuS2coKSx0aGlzKS52Lmxlbmd0aD5CWzFdKXJldHVybiExO3JldHVybigodGhpcy5uZyghMSksTylbelsyXV0oNTUsZnVuY3Rpb24oKXt0aGlzLm5nKCEwKX0sQlt6WzBdXSx0aGlzKSxSKVs0Nl0oNDEsInB4IiwxLHRoaXMpLFlbMzhdKDM3LHRoaXMuRmcudSgpLCExKSxnW3pbMV1dKDksdGhpcywiTm9uZSBGb3VuZCIsQlt6WzJdXSksQlt6WzJdXX0sSHYpKCksTDA9bmV3IGJtKDMwMCwxODUpLGwxOD14XygpLGhlPSgoKCgoKCgoKChGPShPWzIxXSgyLFg2LEdEKSxYNi5wcm90b3R5cGUpLEYpLmhMPWZ1bmN0aW9uKEIseixLLEope3JldHVybigoKEo9WzIsIkMiLCJtSiJdLHRoaXMpW0pbMl1dKCEhSyksdGhpcykudi5jbGVhcigpLG1bMzFdKDI0LHRoaXNbSlsxXV0sT1szN10uYmluZChudWxsLDMpLHtXbzp0aGlzLldvKEIpfSksbSlbSlswXV0oMyl9LEYuZmc9ZnVuY3Rpb24oQil7bVszMV0oOTQsCkIsRFs0N10uYmluZChudWxsLDEpKX0sRikuSFc9ZnVuY3Rpb24oKXtyZXR1cm4gRFsyMl0uY2FsbCh0aGlzLDMpfSxGKS5hej1mdW5jdGlvbigpeyh0aGlzLnJlc3BvbnNlW0J1KCldPXRoaXMudi5nZXRWYWx1ZSgpLHRoaXMpLnYuY2xlYXIoKX0sRikuQ3E9ZnVuY3Rpb24oQil7KHRoaXMuQz0oKEI9WzExLDQwLCJwcm90b3R5cGUiXSxHRClbQlsyXV0uQ3EuY2FsbCh0aGlzKSxlWzMxXSgxNSwicmMtZGVmYXVsdGNoYWxsZW5nZS1wYXlsb2FkIix0aGlzKSksdGhpcy52LnJlbmRlcihlWzMxXSgxMywicmMtZGVmYXVsdGNoYWxsZW5nZS1yZXNwb25zZS1maWVsZCIsdGhpcykpLHRoaXMudikudSgpLnNldEF0dHJpYnV0ZShOaigpLGwxOCksbVtCWzFdXSgxMCx0aGlzLlgsdGhpcy52LnUoKSksZVszNl0oMyxZWzIzXSg0OCx0aGlzKSx0aGlzLlgsTXIsdGhpcy5JRCksZVszNl0oQlswXSxZWzIzXSg1Myx0aGlzKSx0aGlzLnYudSgpLHNYLHRoaXMuSFcpfSxGKS5iWT1mdW5jdGlvbihCKXt0aGlzW3RoaXMuTT0KKEdEWyhCPVs4LCJPMyIsInByb3RvdHlwZSJdLEIpWzJdXS5iWS5jYWxsKHRoaXMpLGtbMjJdKDQsT1tCWzBdXS5iaW5kKG51bGwsMTYpKSksQlsxXV0odGhpcy51KCkpfSxGKS5oTz1mdW5jdGlvbihCLHosSyl7KEs9WyJzZWxlY3QiLCJSIiwyOV0sSTJ8fEZmKXx8czR8fCh0aGlzLnYuZ2V0VmFsdWUoKT90aGlzLnYudSgpLmZvY3VzKCk6KEI9dGhpcy52LHo9T1syNl0oMjQsIiIsQiksQltLWzFdXT0hMCxCLnUoKS5mb2N1cygpLHp8fEdbS1syXV0oMjEsbnVsbCl8fChCLnUoKS52YWx1ZT1CLlgpLEIudSgpW0tbMF1dKCksR1tLWzJdXSgyMSxudWxsKXx8KEIudiYma1syXSgzLEIudixCLnUoKSx5RyxCLldGKSxPWzJdKDU1LEIuVywxMCxCKSkpKX0sRikuUno9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyXSgxNix0aGlzLnYuZ2V0VmFsdWUoKSl9LEYpLm0yPWZ1bmN0aW9uKEIseixLKXtpZihLPVsibTIiLDI1LDJdLHopcmV0dXJuIGVbNDRdKEtbMV0sdGhpcy52LEIpLEdELnByb3RvdHlwZVtLWzBdXS5jYWxsKHRoaXMsCkIseik7cmV0dXJuISh0aGlzLm1KKEIsbVtLWzJdXSg5NCwicmMtZGVmYXVsdGNoYWxsZW5nZS1pbmNvcnJlY3QtcmVzcG9uc2UiKSksMSl9LEYpLklEPWZ1bmN0aW9uKEIpe3JldHVybiBZWzM2XS5jYWxsKHRoaXMsOSxCKX0sTmtsKCkpLEdNPW5ldyBibSgzMDAsMjUwKSxFNDg9KCgoKCgoKCgoT1syMV0oNCxkXyxHRCksZF8pLnByb3RvdHlwZS5oTD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoQj0odGhpcy5uZygoYj1bMzEsNjEsKHo9WyJyYy1kb3NjYXB0Y2hhLWJvZHktdGV4dCIsMTAsITFdLDExKV0selsyXSkpLGVbYlswXV0oMTMsInJjLWRvc2NhcHRjaGEtaGVhZGVyLXRleHQiLHRoaXMpKSxDPWVbYlswXV0oOSwicmMtZG9zY2FwdGNoYS1ib2R5Iix0aGlzKSxLPWVbYlswXV0oMTMselswXSx0aGlzKSxCKSYmUltiWzJdXSg2Myx6WzFdLC0xLEIpLEMpJiZLJiYoSj1SWzM2XSgzMixDKS5oZWlnaHQsUltiWzJdXShiWzFdLHpbMV0sSixLKSksbSlbMl0oMil9LGRfLnByb3RvdHlwZSkuVTA9CmZ1bmN0aW9uKEIpe0ImJmVbMzFdKDE1LCJyYy1kb3NjYXB0Y2hhLWJvZHktdGV4dCIsdGhpcykuZm9jdXMoKX0sZF8pLnByb3RvdHlwZS5hej1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2VbQnUoKV09IiJ9LGRfKS5wcm90b3R5cGUuYlk9ZnVuY3Rpb24oQil7KEI9WzUsImJZIiwxNF0sR0QucHJvdG90eXBlKVtCWzFdXS5jYWxsKHRoaXMpLHRoaXMuTT1rWzIyXShCWzBdLEhbQlsyXV0uYmluZChudWxsLDE2KSksdGhpcy5PMyh0aGlzLnUoKSl9LE8pWzIxXSg2LHR4LFQpLHR4LnByb3RvdHlwZSkuc2M9ZnVuY3Rpb24oKXtyZXR1cm4gRFszOF0oMTYsY1QsdGhpcywyKX0sdHguUlQ9R1MoKSx0eC5wcm90b3R5cGUpLlQ9Uls0OF0oNCxbImNscmVwIixjVCxDWCx2WixDWCx3Uix2Wl0pLE9bMjFdKDIsbXYsYmQpLE1rLnByb3RvdHlwZSkuc2VuZD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybiBLPUs9PT0oej16PT09dm9pZCAwPyExOnosdm9pZCAwKT8hMDpLLEdbMTNdKDMzLApmdW5jdGlvbihwLFEsbil7bj1bIlZlIiwyLChRPVs0LDEsN10sImkiKV07c3dpdGNoKHAuTSl7Y2FzZSBRWzFdOnY9e21ldGhvZDpCLkxYKCksaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6Qi50cz9CLnRzOkIuTzA/VmY6IiJ9LGJvZHk6QltuWzBdXSgpLFBLOnp9LEt8fCh2Lm1vZGU9RUwoKSksYj0wO2Nhc2UgblsxXTpyZXR1cm4gcC5BKDUpLHAudihmZXRjaChCLkk3LnRvU3RyaW5nKCksdiksUVtuWzFdXSk7Y2FzZSBRW25bMV1dOnAuRigoQT1wLlgsUSlbMF0pO2JyZWFrO2Nhc2UgNTpDPUo9cFtuWzJdXSgpO2Nhc2UgUVswXTppZihiKys8MyYmKCFBfHwhQS5vayYmKEEuc3RhdHVzPjUwMHx8QS5zdGF0dXM9PT00MDgpKSlwLkdfKG5bMV0pO2Vsc2UgcmV0dXJuIEF8fChBPW5ldyBSZXNwb25zZShDLHtzdGF0dXM6NDAwfSkpLHAucmV0dXJuKEEpfX0pfSxFNDh8fHtpZDp0bCgpfSksVGo9WzEwNCw5NywxMTAsMTAwLDEwMywxMDEsMTE1LDExNiwxMTcsMTE0LDEwMV0ubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKEIpfSkuam9pbigiIiksCnRFPW5ldyBibSg0MDAsNTgwKSxYblo9ankoKSxNRj13WCgpLEJMPSgoKCgoRj0oKE9bMjFdKDYsalcsR0QpLGpXKS5wcm90b3R5cGUuVTA9ZnVuY3Rpb24oQix6LEssSil7KCgoSj1bInByb3RvdHlwZSIsImoiLCJ2Il0sR0RbSlswXV0pLlUwLmNhbGwodGhpcyxCKSwhQiYmKEs9dGhpc1tKWzJdXSx6PUsucXVlcnlTZWxlY3RvcihFMygpKSkpJiYoSy5yZW1vdmVDaGlsZCh6KSx0aGlzLmc9ITApLEIpJiZ0aGlzLmcmJmVbMjVdKDE3LDMsNCx0aGlzW0pbMV1dLHRoaXMpfSxqVy5wcm90b3R5cGUpLEYpLmlDPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBuZXcgKEs9bDkoKEo9WzQwMCwxODAsMjBdLHo9dGhpcy5XfHxHWzQ0XSg1LEpbMl0pLHouaGVpZ2h0LTE5NCksSlswXSx6LndpZHRoKSxCPWhZKEssMzAwKSxibSkoQixKWzFdK0IpfSxGLmF6PWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJyZXNwb25zZSIsNyxudWxsXSx0aGlzW0JbMF1dW3VTRCgpXT1lWzEwXSgxLEJbMl0sMSx0aGlzLlgpLApCKVswXV1bRFVZKCldPVlbMzRdKEJbMV0sMix0aGlzLlgpfSxGLmhMPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4odGhpcy5qPSh0aGlzLkg9KGtbKEs9WzYxLDI1LDQ2XSxLKVsyXV0oS1swXSwiaCIsdGhpcyx0aGlzLmlDKCksITApLEIpLHopLG0pWzJdKDQsZVtLWzFdXSgxNiwzLDQseix0aGlzKSl9LEYpLmJZPWZ1bmN0aW9uKEIpe3RoaXNbdGhpcy5NPShHRC5wcm90b3R5cGVbKEI9WyJiWSIsInUiLCJPMyJdLEIpWzBdXS5jYWxsKHRoaXMpLGtbMjJdKDY4LG1bNDldLmJpbmQobnVsbCwxKSkpLEJbMl1dKHRoaXNbQlsxXV0oKSksdGhpcy52PWVbMzFdKDExLFhuWix0aGlzKX0sRi5oTz1mdW5jdGlvbigpe3RoaXMudi5mb2N1cygpfSxPWzIxXSgxLFhnLHRlKSxYZykucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5nPSh0aGlzLkI9KHRoaXMuRD1bXSwhMSksW10pfSxYZy5wcm90b3R5cGUuaEw9ZnVuY3Rpb24oQix6LEspe3JldHVybiB0aGlzLnJlc2V0KCksdGUucHJvdG90eXBlLmhMLmNhbGwodGhpcywKQix6LEspfSxYZykucHJvdG90eXBlLnpyPWZ1bmN0aW9uKCl7cmV0dXJuITF9LEFUKCkpLHVaOD11XygpLE1OPSgoKCgoT1syMV0oMixzZCxYZyksc2QucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKEIpe3RoaXNbdGhpcy5IPSh0aGlzLkw9KChCPVsicHJvdG90eXBlIiwhMSwiaiJdLFhnW0JbMF1dKS5yZXNldC5jYWxsKHRoaXMpLEIpWzFdLHRoaXMudj1bXSx0aGlzLlhnPVtdLFtdKSxCWzJdXT0wfSxzZC5wcm90b3R5cGUpLlJ6PWZ1bmN0aW9uKEIseil7aWYoKHRoaXNbKHRoaXMubUooKEI9WyEwLCExLCJweCJdLHo9WzEsInB1c2giLCJIIl0sQlt6WzBdXSkpLHopWzJdXVt6WzFdXShbXSksdGhpcykuWC5kUS5Ebi5OdC5mb3JFYWNoKGZ1bmN0aW9uKEssSil7Sy5zZWxlY3RlZCYmdGhpcy5IW3RoaXMuSC5sZW5ndGgtMV0ucHVzaChKKX0sdGhpcyksdGhpcy5MKXJldHVybiBCW3pbMF1dO3JldHVybih0aGlzLkQ9bVsyOV0oMjEsdGhpc1t6WzJdXSksZVsxMF0oNiwiaiIsdGhpcyksCmdbNl0oNTksQlsyXSxCWzBdLHRoaXMpLEIpWzBdfSxzZC5wcm90b3R5cGUpLmF6PWZ1bmN0aW9uKCl7dGhpcy5yZXNwb25zZVtCdSgpXT10aGlzLkh9LHNkKS5wcm90b3R5cGUuaEw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVybigoSj0oYj0oQz0oUT1SWzQ4XSg3Mix6LHBaLChuPShaPVsxNywxOCwicHVzaCJdLFsxLDIsNV0pLG5bMl0pLGwpLHY9SFsxMl0oMjIsUSxuWzBdLFdqLGtbM10oOCkpLEhbNDRdKDg1LHosV2osblswXSx2WzBdLGwpLFhnLnByb3RvdHlwZS5oTCkuY2FsbCh0aGlzLEIseixLKSxBPVJbNDhdKDcxLHoscFosblsyXSxsKSx0aGlzLlhnPUhbMTJdKFpbMV0sQSxuWzBdLFdqLGtbM10oMTAsTnYpKSx0aGlzLnZbWlsyXV0odGhpcy5XbyhCLHVaOCkpLHRoaXMpLnYscD1SWzQ4XSg3Mix6LHBaLG5bMl0sbCkseVszN10oMTEsMCxuWzFdLHApKSxqYSkoYixKKSxnKVtaWzFdXShaWzBdLHRoaXMsIlNraXAiKSxDfSxzZC5wcm90b3R5cGUpLlM9CmZ1bmN0aW9uKEIseixLKXsoKHo9WyJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1pbnN0cnVjdGlvbnMtaGlkZGVuIiwicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtaW5zdHJ1Y3Rpb25zIiwoSz1bMSw0LDY1XSwiU2tpcCIpXSxYZy5wcm90b3R5cGUuUykuY2FsbCh0aGlzLEIpLHRoaXMuWC5kUS5EbikuSU4+MD8oUls4XSgzMyx6WzBdLG1bMl0oODkseltLWzBdXSkpLHRoaXMuTD9nWzE4XShLWzJdLHRoaXMpOmdbMThdKDQ5LHRoaXMsIk5leHQiKSk6KFJbMjddKEtbMV0sbVsyXSg5Mix6W0tbMF1dKSx6WzBdKSxnWzE4XSgyNSx0aGlzLHpbMl0pKX0sc2QucHJvdG90eXBlLkRNPWZ1bmN0aW9uKEIseixLLEopeygoamEodGhpcy52LChCLmxlbmd0aD09KEs9WyJweCIsITAsInIiXSxKPVsxLDIsIkgiXSwwKSYmKHRoaXMuTD1LW0pbMF1dKSxCKSksamEpKHRoaXMuWGcseiksdGhpcylbSlsyXV0ubGVuZ3RoPT10aGlzLnYubGVuZ3RoK0pbMF0tQi5sZW5ndGgmJih0aGlzLkw/Z1szXSg1MCwKdGhpcyxLW0pbMV1dKTpnWzZdKDU3LEtbMF0sS1tKWzBdXSx0aGlzKSl9LHZjKSgpLFhtPVswLEQzLCgoKCgoKChPWzIxXSgyLHdfLFhnKSx3Xy5wcm90b3R5cGUpLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5IPSh0aGlzLnY9KFhnLnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpLDApLHt9KX0sd18pLnByb3RvdHlwZS5hej1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2VbQnUoKV09dGhpcy5nfSx3Xy5wcm90b3R5cGUpLkRNPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtmb3IoQz0oSj1nWzEyXSg3LHlbNF0oMywodj1bNCwoSz10aGlzLHA9WyJYIiw0MiwxXSw5KSxudWxsXSx0aGlzKSkpLEoubmV4dCgpKSxiPXt9OyFDLmRvbmU7Yj17aEI6dm9pZCAwLFRROnZvaWQgMCx2bzp2b2lkIDAsUEE6dm9pZCAwfSxDPUoubmV4dCgpKXtpZigoQT1DLnZhbHVlLEIubGVuZ3RoKT09MClicmVhazsoKCh6PSh0aGlzLmcucHVzaChBKSxIWzQ3XSgxMyx2WzBdLDIsdGhpc1twWzBdXS5kUS5Ebi5yb3dTcGFuLAp0aGlzW3BbMF1dLmRRLkRuLmNvbFNwYW4sdGhpcykpLEQ2KHose0ZKOjAseEY6MCxyb3dTcGFuOjEsY29sU3BhbjoxLHRCOkIuc2hpZnQoKX0pLGIpLlBBPUdbcFsxXV0oMzMscFsyXSx2W3BbMl1dLCIiLHZbMl0seiksYikuaEI9dGhpc1twWzBdXS5kUS5Ebi5OdC5sZW5ndGgsYi5UUT10aGlzLkhbQV18fEEsYi52bz17c2VsZWN0ZWQ6ITAsZWxlbWVudDp0aGlzW3BbMF1dLmRRLkRuLk50W2IuVFFdLmVsZW1lbnR9LHRoaXNbcFswXV0pLmRRLkRuLk50LnB1c2goYi52byksT1syXSg0MCxmdW5jdGlvbihRKXtyZXR1cm4gZnVuY3Rpb24obil7KCgobj1bMywoSy5IW1EuaEJdPVEuVFEsMzkpLCIwIl0sRFsxM10oMjIsUS52by5lbGVtZW50KSxRLnZvLmVsZW1lbnQuYXBwZW5kQ2hpbGQoUS5QQSksUltuWzFdXSg0MCxuWzJdLDEwMCxRLnZvKSxRKS52by5zZWxlY3RlZD0hMSxSKVsyN10oNCxRLnZvLmVsZW1lbnQsInJjLWltYWdlc2VsZWN0LWR5bmFtaWMtc2VsZWN0ZWQiKSxlKVszNl0oblswXSwKWVsyM10oNTQsSyksbmV3IHhGKFEudm8uZWxlbWVudCksREMsbmcoSy5TLFEudm8pKX19KGIpLHRoaXMudisxRTMpfX0sd18ucHJvdG90eXBlKS5TPWZ1bmN0aW9uKEIseixLKXsoej0oSz1bIm9wYWNpdHkgIiwiaW5kZXhPZiIsIlgiXSxbInRyYW5zaXRpb24iLCExLCJqIl0pLHRoaXMuZylbS1sxXV0odGhpc1tLWzJdXS5kUS5Ebi5OdFtLWzFdXShCKSk9PS0xJiYodGhpcy5tSih6WzFdKSxCLnNlbGVjdGVkfHwoKyt0aGlzW0tbMl1dLmRRLkRuLklOLEIuc2VsZWN0ZWQ9ITAsdGhpcy52JiZZWzM1XSg0OCxCLmVsZW1lbnQselswXSxLWzBdKyh0aGlzLnYrMUUzKS8xRTMrInMgZWFzZSIpLFJbOF0oOTcsInJjLWltYWdlc2VsZWN0LWR5bmFtaWMtc2VsZWN0ZWQiLEIuZWxlbWVudCksamEodGhpcy5ELHRoaXNbS1syXV0uZFEuRG4uTnRbS1sxXV0oQikpLGVbMTBdKDUselsyXSx0aGlzKSkpfSx3Xy5wcm90b3R5cGUuUno9ZnVuY3Rpb24oQix6LEssSixDKXtpZihDPVsxMiwicmMtaW1hZ2VzZWxlY3QtZXJyb3ItZHluYW1pYy1tb3JlIiwKIkgiXSwhWGcucHJvdG90eXBlLlJ6LmNhbGwodGhpcykpe2lmKCF0aGlzLkIpZm9yKEs9Z1tDWzBdXSgxMSx0aGlzLmcpLEo9Sy5uZXh0KCk7IUouZG9uZTtKPUsubmV4dCgpKWlmKHo9dGhpc1tDWzJdXSxCPUoudmFsdWUseiE9PW51bGwmJkIgaW4geilyZXR1cm4hMTt0aGlzLm1KKCEwLG1bMl0oOTQsQ1sxXSkpfXJldHVybiEwfSx3XykucHJvdG90eXBlLmhMPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gdGhpcy52PShDPShKPVhnW2I9WzMsMTMsInByb3RvdHlwZSJdLGJbMl1dLmhMLmNhbGwodGhpcyxCLHosSyksUls0OF0oNzIseixaMCxiWzBdLGwpKSxIWzIxXShiWzFdLEMsMil8fDApLEp9LE8pWzIxXSg1LEdfLFQpLENYKV0sWVg9SFsxMl0oNCwxMDAsR18sKEdfLnByb3RvdHlwZS5UPVJbNDhdKDksWG0pLFhtKSksYTFOPWExTnx8e2lkOnl5KCl9LHU1LGhjOD0oZnVuY3Rpb24oQil7KGZ1bmN0aW9uKHosSyxKKXt6Lk09KCgoSj1bIkJZVEUiLCJwcm90b3R5cGUiLChLPQpmdW5jdGlvbihDLGIpe3RoaXMudj0odGhpcy5FWj1DLGIpfSwic3kiKV0sSylbSlsxXV1bSlsyXV09ZnVuY3Rpb24oQyl7cmV0dXJuIFJbMjhdLmNhbGwodGhpcywxMSxDKX0sSykuZkU9bmV3IEsoMSxbMTAsMTIsMTRdKSxLLktFPW5ldyBLKDIsWzksMTEsMTNdKSxLW0pbMF1dPW5ldyBLKDQsWzgsMTYsMTZdKSxuZXcgSyg4LFs4LDEwLDEyXSksbmV3IEsoNyxbMCwwLDBdKSxLKX0pKEIuRTl8fChCLkU5PXt9KSl9KChmdW5jdGlvbihCLHosSyxKLEMpe0s9KEM9WyJIIiwiVyIsIkRtIl0sWzMsNDAsMTBdKTtmdW5jdGlvbiBiKEEsdixwLFEsbixaKXtpZigoUT1bKFo9WzEsInB1c2giLDJdLDMxKSwwLDFdLHY8UVtaWzBdXSl8fHY+UVswXXx8QT4+PnYhPVFbWlswXV0pdGhyb3cgRXJyb3IoIlZhbHVlIG91dCBvZiByYW5nZSIpO2ZvcihuPXYtUVtaWzJdXTtuPj1RW1pbMF1dO24tLSlwW1pbMV1dKEE+Pj5uJlFbWlsyXV0pfSgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoej1mdW5jdGlvbihBLAp2LHAsUSl7aWYodjwodGhpc1tRPSh0aGlzLlRWPXYsWyJJbnZhbGlkIGFyZ3VtZW50IiwodGhpcy5tb2RlPUEsInNsaWNlIiksIkxfIl0pLFFbMl1dPXAsMCkpdGhyb3cgRXJyb3IoUVswXSk7dGhpc1tRWzJdXT1wW1FbMV1dKCl9LEo9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVil7aWYoKHRoaXMuTz12LFY9KEw9WyExLDcsMF0sdGhpcy52PVtdLHRoaXMudmVyc2lvbj1BLFsiTWFzayB2YWx1ZSBvdXQgb2YgcmFuZ2UiLChaPVtdLCJYIiksIm8iXSksdGhpcylbVlsxXV09W10sQTxKLkF8fEE+Si5pKXRocm93IEVycm9yKCJWZXJzaW9uIHZhbHVlIG91dCBvZiByYW5nZSIpO2lmKFE8LTF8fFE+TFsxXSl0aHJvdyBFcnJvcihWWzBdKTtmb3IodGhpcy5zaXplPUEqNCsxNyxyPUxbMl07cjx0aGlzLnNpemU7cisrKVoucHVzaChMWzBdKTtmb3IoZj1MWzJdO2Y8dGhpcy5zaXplO2YrKyl0aGlzLnYucHVzaChaLnNsaWNlKCkpLHRoaXNbVlsxXV0ucHVzaChaLnNsaWNlKCkpOwppZih0aGlzW1c9KHRoaXMuVSgpLHRoaXMuQyhwKSksVlsyXV0oVyksUT09LTEpZm9yKE49TFsyXSxuPTFFOTtOPDg7TisrKXRoaXMuQShOKSx0aGlzLkYoTikseD10aGlzLmooKSx4PG4mJihRPU4sbj14KSx0aGlzLkEoTik7aWYoUTxMWzJdfHxRPkxbMV0pdGhyb3cgRXJyb3IoIkFzc2VydGlvbiBlcnJvciIpO3RoaXMuQShRKSx0aGlzLkYoUSksdGhpc1tWWzFdXT1bXX0sSilbQ1swXV09ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyl7Zm9yKG49KFE9KFo9KFc9WzAsInNoaWZ0IiwxMl0sdi5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gMH0pKSxwPWdbV1syXV0oNixBKSxwLm5leHQoKSkse30pOyFRLmRvbmU7bj17QkE6dm9pZCAwfSxRPXAubmV4dCgpKW4uQkE9US52YWx1ZV5aW1dbMV1dKCksWi5wdXNoKFdbMF0pLHYuZm9yRWFjaChmdW5jdGlvbihOKXtyZXR1cm4gZnVuY3Rpb24oeCxmKXtyZXR1cm4gWltmXV49Si5GKE4uQkEseCl9fShuKSk7cmV0dXJuIFp9LEouVT1mdW5jdGlvbihBLHYsCnAsUSl7cmV0dXJuIHA9Qlt2PShRPVsiTyIsIkU5IiwidiJdLHU1LkRtW1FbMl1dW1FbMl1dKSxRWzFdXVtRWzBdXShBKSxKLm8ocCx2KX0sSikuTT1LWzFdLEopLm09S1syXSxKLnByb3RvdHlwZSkubT1mdW5jdGlvbihBLHYscCxRKXtmb3IoUT0tMjtRPD0yO1ErKylmb3IocD0tMjtwPD0yO3ArKyl0aGlzLk0oQStRLHYrcCxoWShlNyhwKSxlNyhRKSkhPTEpfSxKW0NbMV1dPUtbMF0sSikucHJvdG90eXBlLks9ZnVuY3Rpb24oQSx2KXtyZXR1cm4gMDw9QSYmQTx0aGlzLnNpemUmJjA8PXYmJnY8dGhpcy5zaXplJiZ0aGlzLnZbdl1bQV19LEoucHJvdG90eXBlLlU9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyl7Zm9yKHA9KG49WzAsKFc9WzAsIlIiLDNdLDYpLDRdLG5bV1swXV0pO3A8dGhpcy5zaXplO3ArKyl0aGlzLk0ocCxuWzFdLHAlMj09bltXWzBdXSksdGhpcy5NKG5bMV0scCxwJTI9PW5bV1swXV0pO2ZvcihBPSh2PShaPSh0aGlzW1dbMV1dKFdbMl0sV1syXSksdGhpc1tXWzFdXShXWzJdLAp0aGlzLnNpemUtblsyXSksdGhpc1tXWzFdXSh0aGlzLnNpemUtblsyXSxXWzJdKSx0aGlzLkgoKSksWi5sZW5ndGgpLG4pW1dbMF1dO0E8djtBKyspZm9yKFE9bltXWzBdXTtRPHY7USsrKUE9PW5bV1swXV0mJlE9PW5bV1swXV18fEE9PW5bV1swXV0mJlE9PXYtMXx8QT09di0xJiZRPT1uW1dbMF1dfHx0aGlzLm0oWltRXSxaW0FdKTsodGhpcy5GKG5bV1swXV0pLHRoaXMpLlAoKX0sSi5wcm90b3R5cGUpLkY9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMKXtmb3IoUT12PShwPShMPShaPVs4LDcsMV0sWzksMCwyXSksTFsxXSksdGhpcykuTy5KQTw8M3xBO3A8MTA7cCsrKVE9UTw8WltMWzJdXV4oUT4+PkxbMF0pKjEzMzU7aWYoKHg9KHY8PDEwfFEpXjIxNTIyLHg+Pj4xNSkhPUxbMV0pdGhyb3cgRXJyb3IoIkFzc2VydGlvbiBlcnJvciIpO2ZvcihOPUxbMV07Tjw9NTtOKyspdGhpcy5NKE4sWltMWzFdXSwoeD4+Pk4mWltMWzJdXSkhPUxbMV0pO2ZvcigodGhpcy5NKFpbMV0sClpbTFsxXV0sKHg+Pj42JlpbTFsyXV0pIT1MWzFdKSx0aGlzKS5NKFpbTFsxXV0sWltMWzFdXSwoeD4+PlpbMV0mWltMWzJdXSkhPUxbMV0pLHRoaXMuTShaW0xbMV1dLFpbMV0sKHg+Pj5aW0xbMV1dJlpbTFsyXV0pIT1MWzFdKSxXPUxbMF07VzwxNTtXKyspdGhpcy5NKFpbTFsxXV0sMTQtVywoeD4+PlcmWltMWzJdXSkhPUxbMV0pO2ZvcihuPUxbMV07bjxaW0xbMV1dO24rKyl0aGlzLk0oWltMWzFdXSx0aGlzLnNpemUtWltMWzJdXS1uLCh4Pj4+biZaW0xbMl1dKSE9TFsxXSk7Zm9yKGY9WltMWzFdXTtmPDE1O2YrKyl0aGlzLk0odGhpcy5zaXplLTE1K2YsWltMWzFdXSwoeD4+PmYmWltMWzJdXSkhPUxbMV0pO3RoaXMuTSh0aGlzLnNpemUtWltMWzFdXSxaW0xbMV1dLCEwKX0sSi5wcm90b3R5cGVbQ1sxXV09ZnVuY3Rpb24oQSx2LHApe3JldHVybigodiYmKHRoaXMuaShBLHApLHA9MCkscCs9dGhpcy5zaXplLHRoaXMpLmkoQSxwKSx0aGlzKS5sKEEpfSxKKS5wcm90b3R5cGUuUj0KZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgpe2ZvcihOPVs0LChXPS0oeD1bIk0iLDAsMl0sNCksMiksMF07Vzw9Tlt4WzFdXTtXKyspZm9yKG49LTQ7bjw9Tlt4WzFdXTtuKyspUT1oWShlNyhuKSxlNyhXKSksWj1BK1cscD12K24sTlt4WzJdXTw9cCYmcDx0aGlzLnNpemUmJk5beFsyXV08PVomJlo8dGhpcy5zaXplJiZ0aGlzW3hbMF1dKFoscCxRIT1OWzFdJiZRIT1OW3hbMV1dKX0sSi5wcm90b3R5cGUpLlVMPWZ1bmN0aW9uKEEsdixwLFEsbixaKXtyZXR1cm4geVszMF0uY2FsbCh0aGlzLDUsQSx2LHAsUSxuLFopfSxKKS5PPVtbLTEsMSwxLDEsMSwxLDIsMiwyLDIsNCw0LDQsNCw0LDYsNiw2LDYsNyw4LDgsOSw5LDEwLDEyLDEyLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDE5LDIwLDIxLDIyLDI0LDI1XSxbLTEsMSwxLDEsMiwyLDQsNCw0LDUsNSw1LDgsOSw5LDEwLDEwLDExLDEzLDE0LDE2LDE3LDE3LDE4LDIwLDIxLDIzLDI1LDI2LDI4LDI5LDMxLDMzLDM1LDM3LDM4LDQwLAo0Myw0NSw0Nyw0OV0sWy0xLDEsMSwyLDIsNCw0LDYsNiw4LDgsOCwxMCwxMiwxNiwxMiwxNywxNiwxOCwyMSwyMCwyMywyMywyNSwyNywyOSwzNCwzNCwzNSwzOCw0MCw0Myw0NSw0OCw1MSw1Myw1Niw1OSw2Miw2NSw2OF0sWy0xLDEsMSwyLDQsNCw0LDUsNiw4LDgsMTEsMTEsMTYsMTYsMTgsMTYsMTksMjEsMjUsMjUsMjUsMzQsMzAsMzIsMzUsMzcsNDAsNDIsNDUsNDgsNTEsNTQsNTcsNjAsNjMsNjYsNzAsNzQsNzcsODFdXSxKKS5wcm90b3R5cGUubD1mdW5jdGlvbihBLHYscCxRLG4pe2lmKChRPShwPVs0LDMsMF0sbj1bMSw2LDVdLEFbblswXV0pLFEpPnRoaXMuc2l6ZSpwW25bMF1dKXRocm93IEVycm9yKCJBc3NlcnRpb24gZXJyb3IiKTtyZXR1cm4gdj1RPnBbMl0mJkFbMl09PVEmJkFbcFtuWzBdXV09PVEqcFtuWzBdXSYmQVtwWzBdXT09USYmQVtuWzJdXT09USwodiYmQVtwWzJdXT49USpwWzBdJiZBW25bMV1dPj1RPzE6MCkrKHYmJkFbblsxXV0+PVEqcFswXSYmQVtwWzJdXT49ClE/MTowKX0sSikucHJvdG90eXBlLkM9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMpe2lmKEEubGVuZ3RoIT1KLlgoKFM9WzIsKFY9WyJJbnZhbGlkIGFyZ3VtZW50Iiw4LDBdLHY9dGhpcy5PLGY9dGhpcy52ZXJzaW9uLCJIIiksIkNfIl0sdiksZikpdGhyb3cgRXJyb3IoVlswXSk7Zm9yKHA9KFA9KG49KEw9KFE9KFo9Yk4oKFc9KE49Si5PW3ZbU1syXV1dW2ZdLEoubClbdltTWzJdXV1bYz1bXSxmXSxKLlIoZikvVlsxXSkpLHE9W10sTiktWiVOLGJOKFovTikpLEouUChXKSksVltTWzBdXSksVilbU1swXV07UDxOO1ArKylFPUEuc2xpY2UocCxwK0wtVysoUDxRPzA6MSkpLHArPUUubGVuZ3RoLHI9SltTWzFdXShFLG4pLFA8USYmRS5wdXNoKFZbU1swXV0pLHEucHVzaChFLmNvbmNhdChyKSk7Zm9yKHg9e3pfOjB9O3guel88cVtWW1NbMF1dXS5sZW5ndGg7eD17el86eC56X30seC56XysrKXEuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24odSwKWCl7KGEuel8hPUwtV3x8WD49USkmJmMucHVzaCh1W2Euel9dKX19KHgpKTtpZihjLmxlbmd0aCE9Wil0aHJvdyBFcnJvcigiQXNzZXJ0aW9uIGVycm9yIik7cmV0dXJuIGN9LEoucHJvdG90eXBlKS5NPWZ1bmN0aW9uKEEsdixwKXt0aGlzLnZbQV1bdl09cCx0aGlzLlhbQV1bdl09ITB9LEoucHJvdG90eXBlKS5qPWZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYKXtmb3IoVj0oWD1bInYiLDUsMF0sWzAsMSwyMF0pLGY9VltYWzJdXSxQPVZbWFsyXV07Zjx0aGlzLnNpemU7ZisrKXtmb3IoUT1bMCwwLDAsKEw9KHY9VltYWzJdXSwhMSkscD1WW1hbMl1dLDApLDAsMCwwXTt2PHRoaXMuc2l6ZTt2KyspdGhpc1tYWzBdXVtmXVt2XT09TD8ocCsrLHA9PVhbMV0/UCs9Si5XOnA+WFsxXSYmUCsrKToodGhpcy5pKFEscCksTHx8KFArPXRoaXMubChRKSpKLk0pLHA9VlsxXSxMPXRoaXNbWFswXV1bZl1bdl0pO1ArPXRoaXMuVyhRLEwscCkqSi5NfWZvcih4PQpWW1hbMl1dO3g8dGhpcy5zaXplO3grKyl7Zm9yKFc9VlsoWj1WW1hbTj0hMSxyPVswLDAsMCwwLDAsMCwwXSwyXV0sWClbMl1dO1o8dGhpcy5zaXplO1orKyl0aGlzW1hbMF1dW1pdW3hdPT1OPyhXKyssVz09WFsxXT9QKz1KLlc6Vz5YWzFdJiZQKyspOih0aGlzLmkocixXKSxOfHwoUCs9dGhpcy5sKHIpKkouTSksTj10aGlzW1hbMF1dW1pdW3hdLFc9VlsxXSk7UCs9dGhpcy5XKHIsTixXKSpKLk19Zm9yKHU9VltYWzJdXTt1PHRoaXMuc2l6ZS1WWzFdO3UrKylmb3IoUz1WW1hbMl1dO1M8dGhpcy5zaXplLVZbMV07UysrKUE9dGhpc1tYWzBdXVt1XVtTXSxBPT10aGlzW1hbMF1dW3VdW1MrVlsxXV0mJkE9PXRoaXNbWFswXV1bdStWWzFdXVtTXSYmQT09dGhpc1tYWzBdXVt1K1ZbMV1dW1MrVlsxXV0mJihQKz1KLkMpO2ZvcihFPWdbMTJdKDEsdGhpc1tYW2M9VltYWzJdXSwwXV0pLG49RS5uZXh0KCk7IW4uZG9uZTtuPUUubmV4dCgpKWM9bi52YWx1ZS5yZWR1Y2UoZnVuY3Rpb24oZCwKdCl7cmV0dXJuIGQrKHQ/MTowKX0sYyk7cmV0dXJuIHE9ZDAoZTcoYypWWzJdLShhPXRoaXMuc2l6ZSp0aGlzLnNpemUsYSoxMCkpL2EpLVZbMV0sUCs9cSpKLm19LEopLkM9S1swXSxKLm89ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgpe2lmKCEoSi5BPD0oWD0oaD1bIkludmFsaWQgdmFsdWUiLChjPShxPShuPW49PT12b2lkIDA/MTpuLHE9PT12b2lkIDA/ITA6cSksYz09PXZvaWQgMCk/LTE6YywiZ2V0RGF0YSIpLChOPVs4LCJBc3NlcnRpb24gZXJyb3IiLDRdLDApXSxYPT09dm9pZCAwPzQwOlgpLG4pJiZuPD1YJiZYPD1KLmkpfHxjPC0xfHxjPjcpdGhyb3cgRXJyb3IoaFswXSk7Zm9yKFY9KFA9bixbXSk7O1ArKyl7aWYoKHU9KHQ9Si5YKHYsUCkqTltoWzJdXSx6LkEoQSxQKSksdSk8PXQpe1o9dTticmVha31pZihQPj1YKXRocm93IEVycm9yKCJEYXRhIHRvbyBsb25nIik7fWZvcih4PShXPWdbMTJdKDUsW0oudi5ocixKLnYuY1ksCkoudi5Eb10pLFcubmV4dCgpKTsheC5kb25lO3g9Vy5uZXh0KCkpRT14LnZhbHVlLHEmJlo8PUouWChFLFApKk5baFsyXV0mJih2PUUpO2ZvcihhPShwPWdbMTJdKDUsQSkscC5uZXh0KCkpOyFhLmRvbmU7YT1wLm5leHQoKSlmb3IoUT1hLnZhbHVlLGIoUS5tb2RlLkVaLE5bMl0sViksYihRLlRWLFEubW9kZS5zeShQKSxWKSxkPWdbMTJdKDksUVtoWzFdXSgpKSxmPWQubmV4dCgpOyFmLmRvbmU7Zj1kLm5leHQoKSlWLnB1c2goZi52YWx1ZSk7aWYoVi5sZW5ndGghPVopdGhyb3cgRXJyb3IoTlsxXSk7aWYoKHI9KEw9W10sSikuWCh2LFApKk5baFsyXV0sVi5sZW5ndGgpPnIpdGhyb3cgRXJyb3IoTlsxXSk7aWYoYigoYihoWzJdLGw5KE5bMl0sci1WLmxlbmd0aCksViksaClbMl0sKE5baFsyXV0tVi5sZW5ndGglTltoWzJdXSklTltoWzJdXSxWKSxWLmxlbmd0aCVOW2hbMl1dIT1oWzJdKXRocm93IEVycm9yKE5bMV0pO2ZvcihTPTIzNjtWLmxlbmd0aDxyO1NePTI1MyliKFMsTltoWzJdXSwKVik7Zm9yKDtMLmxlbmd0aCpOW2hbMl1dPFYubGVuZ3RoOylMLnB1c2goaFsyXSk7cmV0dXJuIG5ldyAoVi5mb3JFYWNoKGZ1bmN0aW9uKE0sVSl7cmV0dXJuIExbVT4+PjNdfD1NPDw3LShVJjcpfSksSikoUCx2LEwsYyl9LEouRj1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYodj4+PjghPShuPVsyODUsMCwoWj1bMiwxLCJBc3NlcnRpb24gZXJyb3IiXSw3KV0sbltaWzFdXSl8fEE+Pj44IT1uW1pbMV1dKXRocm93IEVycm9yKCJCeXRlIG91dCBvZiByYW5nZSIpO2ZvcihwPShRPW5bWlsxXV0sbilbWlswXV07cD49bltaWzFdXTtwLS0pUT1RPDxaWzFdXihRPj4+bltaWzBdXSkqblswXSxRXj0oQT4+PnAmWlsxXSkqdjtpZihRPj4+OCE9bltaWzFdXSl0aHJvdyBFcnJvcihaWzJdKTtyZXR1cm4gUX0sSikucHJvdG90eXBlLlA9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgpe2lmKCEoKFc9KHg9WzEsIkFzc2VydGlvbiBlcnJvciIsMl0sWzMsMCwxMl0pLHRoaXMudmVyc2lvbik8Nykpe2Zvcih2PQooUT1XW3hbMF1dLHRoaXMpLnZlcnNpb247UTxXW3hbMl1dO1ErKyl2PXY8PHhbMF1eKHY+Pj4xMSkqNzk3MztpZigoWj10aGlzLnZlcnNpb248PFdbeFsyXV18dixaPj4+MTgpIT1XW3hbMF1dKXRocm93IEVycm9yKHhbMV0pO2ZvcihwPVdbeFswXV07cDwxODtwKyspbj10aGlzLnNpemUtMTErcCVXWzBdLEE9KFo+Pj5wJnhbMF0pIT1XW3hbMF1dLE49Yk4ocC9XWzBdKSx0aGlzLk0oTixuLEEpLHRoaXMuTShuLE4sQSl9fSxKLmk9S1sxXSxKKS5SPWZ1bmN0aW9uKEEsdixwLFEsbil7aWYoQTxKW249WyJBIiwyLChwPVs3LDEyOCwzNl0sMTApXSxuWzBdXXx8QT5KLmkpdGhyb3cgRXJyb3IoIlZlcnNpb24gbnVtYmVyIG91dCBvZiByYW5nZSIpO2lmKCh2PSgxNipBK3BbMV0pKkErNjQsQT49blsxXSkmJihRPWJOKEEvcFswXSkrblsxXSx2LT0oMjUqUS1uWzJdKSpRLTU1LEE+PXBbMF0mJih2LT1wW25bMV1dKSksISgyMDg8PXYmJnY8PTI5NjQ4KSl0aHJvdyBFcnJvcigiQXNzZXJ0aW9uIGVycm9yIik7CnJldHVybiB2fSxKLlA9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOKXtpZihRPShOPVsicHVzaCIsMSwwXSxbMSwwLCJEZWdyZWUgb3V0IG9mIHJhbmdlIl0pLEE8UVtOWzJdXXx8QT4yNTUpdGhyb3cgRXJyb3IoUVsyXSk7Zm9yKFo9KHA9UVtOWzFdXSxbXSk7cDxBLVFbTlsyXV07cCsrKVpbTlswXV0oUVtOWzFdXSk7Zm9yKFc9KHY9KFpbTlswXV0oUVtOWzJdXSksUVtOWzJdXSksUVtOWzFdXSk7VzxBO1crKyl7Zm9yKG49UVtOWzFdXTtuPFoubGVuZ3RoO24rKylaW25dPUouRih2LFpbbl0pLG4rUVtOWzJdXTxaLmxlbmd0aCYmKFpbbl1ePVpbbitRW05bMl1dXSk7dj1KLkYoMix2KX1yZXR1cm4gWn0sSi5BPTEsSikucHJvdG90eXBlLkE9ZnVuY3Rpb24oQSx2LHAsUSxuLFope2lmKChwPShaPVsxLDcsMF0sWzIsMCw0XSksQTxwW1pbMF1dKXx8QT5aWzFdKXRocm93IEVycm9yKCJNYXNrIHZhbHVlIG91dCBvZiByYW5nZSIpO2ZvcihuPXBbWlswXV07bjx0aGlzLnNpemU7bisrKWZvcihRPQpwW1pbMF1dO1E8dGhpcy5zaXplO1ErKyl7c3dpdGNoKEEpe2Nhc2UgcFtaWzBdXTp2PShRK24pJXBbWlsyXV09PXBbWlswXV07YnJlYWs7Y2FzZSBaWzBdOnY9biVwW1pbMl1dPT1wW1pbMF1dO2JyZWFrO2Nhc2UgcFtaWzJdXTp2PVElMz09cFtaWzBdXTticmVhaztjYXNlIDM6dj0oUStuKSUzPT1wW1pbMF1dO2JyZWFrO2Nhc2UgcFsyXTp2PShiTihRLzMpK2JOKG4vcFtaWzJdXSkpJXBbWlsyXV09PXBbWlswXV07YnJlYWs7Y2FzZSA1OnY9USpuJXBbWlsyXV0rUSpuJTM9PXBbWlswXV07YnJlYWs7Y2FzZSA2OnY9KFEqbiVwW1pbMl1dK1EqbiUzKSVwW1pbMl1dPT1wW1pbMF1dO2JyZWFrO2Nhc2UgWlsxXTp2PSgoUStuKSVwW1pbMl1dK1EqbiUzKSVwW1pbMl1dPT1wW1pbMF1dO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkFzc2VydGlvbiBlcnJvciIpO30hdGhpcy5YW25dW1FdJiZ2JiYodGhpcy52W25dW1FdPSF0aGlzLnZbbl1bUV0pfX0sSikucHJvdG90eXBlLmk9ZnVuY3Rpb24oQSwKdil7KChBWzBdPT0wJiYodis9dGhpcy5zaXplKSxBKS5wb3AoKSxBKS51bnNoaWZ0KHYpfSxKLmw9W1stMSw3LDEwLDE1LDIwLDI2LDE4LDIwLDI0LDMwLDE4LDIwLDI0LDI2LDMwLDIyLDI0LDI4LDMwLDI4LDI4LDI4LDI4LDMwLDMwLDI2LDI4LDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwXSxbLTEsMTAsMTYsMjYsMTgsMjQsMTYsMTgsMjIsMjIsMjYsMzAsMjIsMjIsMjQsMjQsMjgsMjgsMjYsMjYsMjYsMjYsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjhdLFstMSwxMywyMiwxOCwyNiwxOCwyNCwxOCwyMiwyMCwyNCwyOCwyNiwyNCwyMCwzMCwyNCwyOCwyOCwyNiwzMCwyOCwzMCwzMCwzMCwzMCwyOCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMF0sWy0xLDE3LDI4LDIyLDE2LDIyLDI4LDI2LDI2LDI0LDI4LDI0LDI4LDIyLDI0LDI0LDMwLDI4LDI4LDI2LDI4LDMwLDI0LAozMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMF1dLEoucHJvdG90eXBlKVtDWzBdXT1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYodGhpc1tBPVsyLChaPVswLDEsInZlcnNpb24iXSwzMiksMTNdLFpbMl1dPT1aWzFdKXJldHVybltdO2ZvcihuPShwPShRPWJOKHRoaXNbWlsyXV0vNykrQVtaWzBdXSxbNl0pLHRoaXMpW1pbMl1dPT1BW1pbMV1dPzI2OmQwKCh0aGlzLnNpemUtQVsyXSkvKFEqQVtaWzBdXS1BW1pbMF1dKSkqQVtaWzBdXSx2PXRoaXMuc2l6ZS03O3AubGVuZ3RoPFE7di09bilwLnNwbGljZShaWzFdLFpbMF0sdik7cmV0dXJuIHB9LEoucHJvdG90eXBlKS5vPWZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTix4KXtpZihBLmxlbmd0aCE9Yk4oSi5SKChaPVsxLDMsKHg9WyJBc3NlcnRpb24gZXJyb3IiLDIsNl0sOCldLHRoaXMudmVyc2lvbikpL1pbeFsxXV0pKXRocm93IEVycm9yKCJJbnZhbGlkIGFyZ3VtZW50Iik7Zm9yKHA9KHY9CjAsdGhpcy5zaXplKS1aWzBdO3A+PVpbMF07cC09eFsxXSlmb3IocD09eFsyXSYmKHA9NSksTj0wO048dGhpcy5zaXplO04rKylmb3IoUT0wO1E8eFsxXTtRKyspbj1wLVEsVz0ocCtaWzBdJnhbMV0pPT0wP3RoaXMuc2l6ZS1aWzBdLU46TiwhdGhpcy5YW1ddW25dJiZ2PEEubGVuZ3RoKlpbeFsxXV0mJih0aGlzLnZbV11bbl09KEFbdj4+PlpbMV1dPj4+Ny0odiY3KSZaWzBdKSE9MCx2KyspO2lmKHYhPUEubGVuZ3RoKlpbeFsxXV0pdGhyb3cgRXJyb3IoeFswXSk7fSxKLlg9ZnVuY3Rpb24oQSx2LHApe3JldHVybiBiTihKLlIoKHA9WyJDXyIsIk8iLCJsIl0sdikpLzgpLUpbcFsyXV1bQVtwWzBdXV1bdl0qSltwWzFdXVtBW3BbMF1dXVt2XX0seikuUj1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYoIXRoaXMuWC50ZXN0KChaPShuPVs0NSwyLDZdLFsidiIsImluZGV4T2YiLDFdKSxBKSkpdGhyb3cgRXJyb3IoIlN0cmluZyBjb250YWlucyB1bmVuY29kYWJsZSBjaGFyYWN0ZXJzIGluIGFscGhhbnVtZXJpYyBtb2RlIik7CmZvcih2PShwPVtdLDApO3YrbltaWzJdXTw9QS5sZW5ndGg7dis9bltaWzJdXSlRPXpbWlswXV1bWlsxXV0oQS5jaGFyQXQodikpKm5bMF0sUSs9eltaWzBdXVtaWzFdXShBLmNoYXJBdCh2K1pbMl0pKSxiKFEsMTEscCk7cmV0dXJuIHY8QS5sZW5ndGgmJmIoeltaWzBdXVtaWzFdXShBLmNoYXJBdCh2KSksblsyXSxwKSxuZXcgeih6Lk0uS0UsQS5sZW5ndGgscCl9LHouTz1mdW5jdGlvbihBLHYpe3JldHVybiBBPT0odj1bIlgiLCJXIiwiRiJdLCIiKT9bXTp0aGlzLmkudGVzdChBKT9bei5sKEEpXTp0aGlzW3ZbMF1dLnRlc3QoQSk/W3ouUihBKV06W3pbdlsyXV0oelt2WzFdXShBKSldfSx6LkY9ZnVuY3Rpb24oQSx2LHAsUSl7Zm9yKHA9KHY9Z1sxMl0oKFE9W10sMTIpLEEpLHYpLm5leHQoKTshcC5kb25lO3A9di5uZXh0KCkpYihwLnZhbHVlLDgsUSk7cmV0dXJuIG5ldyB6KHouTS5CWVRFLEEubGVuZ3RoLFEpfSxCW0NbMl1dPUoseikubD1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYoIXRoaXMuaVtuPQpbMywoWj1bInRlc3QiLDEsMF0sIlN0cmluZyBjb250YWlucyBub24tbnVtZXJpYyBjaGFyYWN0ZXJzIiksMTBdLFpbMF1dKEEpKXRocm93IEVycm9yKG5bWlsxXV0pO2ZvcihwPSh2PVpbMl0sW10pO3Y8QS5sZW5ndGg7KVE9bDkoQS5sZW5ndGgtdixuW1pbMl1dKSxiKHBhcnNlSW50KEEuc3Vic3RyKHYsUSksblsyXSksUSpuW1pbMl1dK1pbMV0scCksdis9UTtyZXR1cm4gbmV3IHooei5NLmZFLEEubGVuZ3RoLHApfSx6KS5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkxfLnNsaWNlKCl9LHouaT0vXlswLTldKiQvLHouWD0vXltBLVowLTkgJCUqKy5cLzotXSokLyx6W0NbMV1dPWZ1bmN0aW9uKEEsdixwLFEsbil7Zm9yKG49WzAsInN1YnN0ciIsImNoYXJBdCJdLHA9WzIsMTYsIiUiXSxBPWVuY29kZVVSSShBKSx2PVtdLFE9blswXTtRPEEubGVuZ3RoO1ErKylBW25bMl1dKFEpIT1wWzJdP3YucHVzaChBLmNoYXJDb2RlQXQoUSkpOih2LnB1c2gocGFyc2VJbnQoQVtuWzFdXShRKwoxLHBbblswXV0pLHBbMV0pKSxRKz1wW25bMF1dKTtyZXR1cm4gdn0sei5BPWZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTil7Zm9yKHA9KFo9Z1tOPVsxLDEyLDBdLFE9TlsyXSxOWzFdXSg2LEEpLFoubmV4dCgpKTshcC5kb25lO3A9Wi5uZXh0KCkpe2lmKG49KFc9cC52YWx1ZSxXLm1vZGUuc3kodikpLFcuVFY+PU5bMF08PG4pcmV0dXJuIEluZmluaXR5O1ErPTQrbitXLkxfLmxlbmd0aH1yZXR1cm4gUX0sei52PUZDKCksQi5FOT16fSh1NXx8KHU1PXt9KSksZnVuY3Rpb24oQil7KGZ1bmN0aW9uKHosSyl7ei52PShLPWZ1bmN0aW9uKEosQyl7dGhpcy5DXz0odGhpcy5KQT1DLEopfSxLLnY9bmV3IEsoMCwxKSxLLmhyPW5ldyBLKDEsMCksSy5jWT1uZXcgSygyLDMpLEsuRG89bmV3IEsoMywyKSxLKX0pKEIuRG18fChCLkRtPXt9KSl9KHU1fHwodTU9e30pKSx1NSl8fCh1NT17fSkpLGhjOCl8fHtpZDpPNUQoKX0scFI9c3IoKSxweD1uZXcgYm0oNDAwLDU4MCksZHZNPShhNygpLFhQKSgpLAprVDg9a1MoKSx0MGw9a0RNKCksZVg9KGhqKCksYjgoKSxpbykoKSxIZj0kbSgpLE1UPVVMKCksVUs9VEIoKSxVdjg9UGkoKSxNMEc9Ql8oKSxpaj0oeUIoKSx3VigpLEYzOCkoKSxiMj0oKCgoRj0oT1syMV0oNCxRTyxHRCksUU8ucHJvdG90eXBlKSxGLmhPPWZ1bmN0aW9uKEIseixLKXtLPVsiWCIsInYiLCJmb2N1cyJdLHRoaXMuSnUoKT8oQj10aGlzW0tbMV1dKT09bnVsbHx8QltLWzJdXSgpOih6PXRoaXNbS1swXV0pPT1udWxsfHx6W0tbMl1dKCl9LEYpLmF6PWZ1bmN0aW9uKCl7dGhpcy5yZXNwb25zZS5tb2JpbGVUb2tlbj10aGlzLm1vYmlsZVRva2VufSxGLndIPWZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoej1bMSwoYj1bMSw0MSwyXSwxMiksNF0sIUJ8fCFCOTgoQikpfHwhR1tiWzFdXShiWzJdLHpbYlswXV0sQikpcmV0dXJuITE7aWYoIShDPWVbNl0oOCx6WzBdLEdbYlsxXV0oMTYseltiWzBdXSxCKSksQyl8fEMubGVuZ3RoPT09MClyZXR1cm4hMTtyZXR1cm4oSz1EWzddKDc0LAozLEdbYlsxXV0oMTgseltiWzBdXSxCKSksSyYmSy5sZW5ndGghPT0wKT8oSj1nWzRdKGJbMF0seltiWzJdXSxHW2JbMV1dKDEwLHpbYlswXV0sQikpKSYmSi5sZW5ndGghPT0wPyEwOiExOiExfSxGLmlDPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBuZXcgKHo9KEs9bDkoKEI9KEo9WzQwMCwiVyIsMTgwXSx0aGlzW0pbMV1dfHxHWzQ0XSgzLDIwKSksQi5oZWlnaHQtMTk0KSxKWzBdLEIud2lkdGgpLGhZKEssMzAwKSksYm0pKHosSlsyXSt6KX0sRikuYlk9ZnVuY3Rpb24oQix6KXsodGhpcy52PSh0aGlzLlM9KHRoaXNbKChCPWtbMjJdKDQsR1szNV0uYmluZChudWxsLCh6PVswLCJYIiwiY2FsbCJdLDIpKSx7SnU6dGhpcy5KdSgpfSksR0QucHJvdG90eXBlKS5PM1t6WzJdXSh0aGlzLEIpLHopWzFdXT1CLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZHZNKVt6WzBdXSxCKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGtUOClbelswXV0sQi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHQwbClbelswXV0pLAp0aGlzLkM9Qi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFV2OClbelswXV0sdGhpcykuSD1CLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoTTBHKVt6WzBdXX0sRi5mZz1mdW5jdGlvbihCLHopeyh6PVs5MiwxMSwzMF0sdGhpcy5KdSgpKT9tWzMxXSh6WzBdLEIseVt6WzJdXS5iaW5kKG51bGwselsxXSkpOm1bMzFdKDI2LEIsT1s0N10uYmluZChudWxsLDEpKX0sRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoIXRoaXMud0goKHA9WzAsNDEsKEE9WyhKPXRoaXMsImh0dHBzOi8vcmVjYXB0Y2hhLm5ldC9xci8iKSwiQ3JPUyIsIlRvIGNvbnRpbnVlIG9uIHlvdXIgbW9iaWxlIGRldmljZSwgZW50ZXIgdGhlIGxpbmsgIl0sNjQpXSx6KSkpcmV0dXJuIGdbM10oNTgsdGhpcywibiIpLG1bMl0oMik7cmV0dXJuKCgoKGI9KCh0aGlzLkQ9KHRoaXMuZz0oMCwodGhpcy51cmw9KHY9KEM9KEs9KHRoaXMuaj1lWzZdKDEyLDEsR1twWzFdXSgxMCwxMix6KSksRClbN10oNzYsMyxHW3BbMV1dKDgsCjEyLHopKSxnWzRdKDIsNCxHW3BbMV1dKDgsMTIseikpKSxtKVszOF0ocFsyXSw1LG51bGwsR1twWzFdXSgyLDEyLHopKSxBW3BbMF1dK3RoaXMuaiksWVsxMV0oMjIsIiIsdGhpcy52LERbNDhdKDQscFswXSx0aGlzLnVybCkpLHQkKS55NSkoZnVuY3Rpb24oUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7aWYoISh4PShuPURbNDZdKDEsKFc9bmV3IEFEKChjPShQPVsiLyIsITAsIiciXSxbMixudWxsLCJzdWJzdHJpbmciXSksSykpLFcudi52PUMsVy52KSksVy5NKSx4KS5zdGFydHNXaXRoKERGKSl0aHJvdyBFcnJvcigiSW52YWxpZCBQdW5jdHVhbCBwcm9qZWN0IHBhdGggZG9lcyBub3Qgc3RhcnQgd2l0aCAiK0RGKyI6ICIreCk7aWYoKHE9eFtjWzJdXShERi5sZW5ndGgpLnNwbGl0KG53KCkpLHEpLmxlbmd0aCE9PTIpdGhyb3cgRXJyb3IoIkludmFsaWQgUHVuY3R1YWwgcGF0aCBoYXMgYW4gaW5jb3JyZWN0IG51bWJlciBvZiBwYXJ0czogIit4KTtpZigoTj0ocj1nWzEyXSg3LApxKSxmPXIubmV4dCgpLnZhbHVlLHIubmV4dCgpLnZhbHVlKSxmKS5zdGFydHNXaXRoKGZaKSlRPWZbY1syXV0oZloubGVuZ3RoKSxaPW5ldyB5NihkZWNvZGVVUklDb21wb25lbnQoUSkpLFJbNDNdKDgsUFsxXSxaLEtMOCgpKSxWPXtpeTpaLGZEOlosUVg6ITF9O2Vsc2V7aWYoIShMPUFhOC5nZXQoZiksTCkpdGhyb3cgRXJyb3IoIkludmFsaWQgUHVuY3R1YWwgZW52aXJvbm1lbnQ6ICciK2YrUFtjWzBdXSk7Vj1MfXJldHVybiBZWzRdKGNbMF0sY1swXSxjWzFdLFBbMF0sUFsxXSxuLHtSTzpXLlJPLFVsOk4sdkE6dm9pZCAwLGJEOlcuYkQsZHo6Vy5keixmYjpXLmZifSxWKX0sMjMpLFlqKSgpLHU1KS5EbS5VKHRoaXMudXJsKS5VTCh0aGlzLlgpLEEpWzJdK3RoaXMudXJsKyIgaW4geW91ciBtb2JpbGUgYnJvd3Nlci4iLHRoaXMpLlgudGl0bGU9Yix0aGlzKS5TJiYodGhpcy5TLnRleHRDb250ZW50PWIpLHRoaXMuSnUoKSk/KE9bOF0oNTUpPyh0aGlzLnVybD0iaW50ZW50Oi8vcmVjYXB0Y2hhLm5ldC9xci8iKwp0aGlzLmorIiNJbnRlbnQ7c2NoZW1lPWh0dHBzO2FjdGlvbj1hbmRyb2lkLmludGVudC5hY3Rpb24uVklFVztlbmQ7IixZWzExXSgyMywiIix0aGlzLnYsdGhpcy51cmwpKTooeVs4XSg1NCwiaVBvZCIpfHxIWzQ2XShwWzFdKSYmR2wubmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPnBbMF0pJiZrWzE2XSg5LDEwLCIxNi40IixtWzRdKDM3LCJrYWlvcyIsQVsxXSkpPj1wWzBdJiYhdiYmKHRoaXMudXJsPSJodHRwczovL2FwcGNsaXAuYXBwbGUuY29tL2lkP3A9Y29tLmdvb2dsZS5SZWNhcHRjaGEuVmVyaWZ5Q2xpcCZpZD0iK3RoaXMuaixZWzExXSgxOSwiIix0aGlzLnYsdGhpcy51cmwpKSxPWzE1XSgxNix0aGlzKSxSWzIyXSg0LHRoaXMsITEpLHRoaXMuQyYmdGhpcy5IJiYodGhpcy5DLnN0eWxlLmRpc3BsYXk9dEIoKSx0aGlzLkguc3R5bGUuZGlzcGxheT1hMSgpKSk6KE9bMTVdKDEsdGhpcywhMSksUlsyMl0oNSx0aGlzKSx0aGlzLkMmJnRoaXMuSCYmKHRoaXMuQy5zdHlsZS5kaXNwbGF5PQphMSgpLHRoaXMuSC5zdHlsZS5kaXNwbGF5PXRCKCkpKSwoMCx0JC55NSkoZnVuY3Rpb24oUSl7cmV0dXJuIEdbKFE9WzFFMywhMCwzM10sUSlbMl1dKDU4LFFbMV0sUVswXSwyLCExLEopfSwyNCkudGhlbihmdW5jdGlvbihRKXtnW0oubW9iaWxlVG9rZW49USwzXSg0OSxKLCJyIil9KSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZ1szXSg2MCxKLCJuIiksbVsyXSg1KX0pfSxGKS5KdT1mdW5jdGlvbihCLHope3JldHVybigoej1bMTksKEI9WyJDcmlPUyIsIk1vYmlsZSIsImlQaG9uZSJdLDYpLCJpUGFkIl0sUmImJlo4KT9aOC5tb2JpbGU6IURbOF0oMzYsIlNpbGsiLEJbMV0pJiYoRFsyMF0oMzcsImlQb2QiKXx8RFsyMF0oMyxCWzJdKXx8RFsyMF0oNSwiQW5kcm9pZCIpfHxEWzIwXSgzNSwiSUVNb2JpbGUiKSkpfHxIWzQ2XSg0MikmJkdsLm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4wfHwoRFsyMF0oMTMselsyXSl8fERbMjBdKDExLEJbMl0pKSYmIUdbMTBdKDIsIlNhZmFyaSIpJiYKIWtbMjNdKHpbMV0sQlswXSkmJiEobVsyMl0oMjkpPzA6RFsyMF0oOSwiQ29hc3QiKSkmJiFPWzM3XSgxMCwiRnhpT1MiKSYmRFsyMF0oMywiQXBwbGVXZWJLaXQiKXx8RFs4XSgzNywiU2lsayIsQlsxXSkmJiF5WzQ1XSh6WzBdLCJTaWxrIil9LEszTigpKSx1TT1uZXcgYm0oMzUwLDQxMCksdUY9KCgoKCgoKCgoKChGPSgoT1syMV0oNSxBeCxHRCksQXgpLnByb3RvdHlwZS5oTz1mdW5jdGlvbigpe2VbMzFdKDE1LCJyYy1wcmVwb3NpdGlvbmFsLWluc3RydWN0aW9ucyIsdGhpcykuZm9jdXMoKX0sQXgucHJvdG90eXBlLk8zPWZ1bmN0aW9uKEIseil7dGhpcy5DPSgoej1bInByb3RvdHlwZSIsIk8zIiw5XSxHRFt6WzBdXVt6WzFdXSkuY2FsbCh0aGlzLEIpLGVbMzFdKHpbMl0sInJjLXByZXBvc2l0aW9uYWwtcGF5bG9hZCIsdGhpcykpfSxBeC5wcm90b3R5cGUpLEYpLmZnPWZ1bmN0aW9uKEIseixLKXt6PXlbMzddKChLPVsiWCIsMTgsMF0sSylbMV0sS1syXSwyLHRoaXNbS1swXV0pLAptWzMxXSg5MCxCLFlbMzZdLmJpbmQobnVsbCwyOSkse3NvdXJjZXM6en0pfSxBeCkucHJvdG90eXBlLkNxPWZ1bmN0aW9uKEIpeygoQj1bImNhbGwiLDIzLCJyYy1wcmVwb3NpdGlvbmFsLXRhYmxvb3AtYmVnaW4iXSxHRC5wcm90b3R5cGUuQ3EpW0JbMF1dKHRoaXMpLGUpWzM2XSgzLGVbMzZdKDEyLFlbQlsxXV0oNDgsdGhpcyksZVszMV0oMTIsQlsyXSx0aGlzKSxDWixmdW5jdGlvbigpe0RbMzFdKDMxLCJub25lIil9KSxlWzMxXSgxNSwicmMtcHJlcG9zaXRpb25hbC10YWJsb29wLWVuZCIsdGhpcyksQ1osZnVuY3Rpb24oKXtEWzMxXSgzNSwibm9uZSIsWyJyYy1wcmVwb3NpdGlvbmFsLXNlbGVjdC1tb3JlIiwicmMtcHJlcG9zaXRpb25hbC12ZXJpZnktZmFpbGVkIiwicmMtcHJlcG9zaXRpb25hbC1pbnN0cnVjdGlvbnMiXSl9KX0sRikuYXo9ZnVuY3Rpb24oKXsodGhpcy5yZXNwb25zZVtCdSgpXT10aGlzLnYsdGhpcykucmVzcG9uc2VbVWYoKV09dGhpcy5IP1dLKCk6STcoKX0sCkYpLmlDPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIHo9KEs9KEo9UlszNl0oMjQsKEI9KEM9WyJDIiwiVyIsNF0sdGhpc1tDWzFdXSl8fEdbNDRdKENbMl0sMjApLHRoaXNbQ1swXV0pKSxsOShCLndpZHRoLTEwLHVNLndpZHRoKSksaFkpKEssMjgwKSxuZXcgYm0oeixKLmhlaWdodCs2MCl9LEYpLlJ6PWZ1bmN0aW9uKEIseil7cmV0dXJuKHo9WyJ2IiwoQj1bMSwicmMtcHJlcG9zaXRpb25hbC1zZWxlY3QtbW9yZSIsITBdLDMpLDBdLHlbMzddKHpbMV0selsyXSxCW3pbMl1dLHRoaXMuWCkubGVuZ3RoLXRoaXNbelswXV0ubGVuZ3RoKTx0aGlzLmo/KHRoaXMubUooQlsyXSxlWzMxXSgxMSxCWzFdLHRoaXMpKSxCWzJdKTohMX0sRikubTI9ZnVuY3Rpb24oQix6LEspe3JldHVybihLPVsicmMtcHJlcG9zaXRpb25hbC1zZWxlY3QtbW9yZSIsInJjLXByZXBvc2l0aW9uYWwtdmVyaWZ5LWZhaWxlZCJdLCFCJiZ6fHxLLmZvckVhY2goZnVuY3Rpb24oSixDKXsoQz1lWzMxXSgxNCxKLAp0aGlzKSxDKSE9eiYmdGhpcy5tSighMSxDKX0sdGhpcykseik/R0QucHJvdG90eXBlLm0yLmNhbGwodGhpcyxCLHopOiExfSxGKS5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoKGI9KCgoQz0odGhpcy5YPVJbNDhdKDY5LCh2PSh0aGlzLnY9W10sWzIxLDk1LChBPVsuNSwwLDddLEo9dGhpcywyKV0pLHopLGgxLEFbdlsyXV0sbCksbVszMV0odlsyXSwxLHopKSkmJkhbdlswXV0oMzksQywzKSYmKHRoaXMuaj1IW3ZbMF1dKDE1LEMsMykpLG0pWzMxXSh2WzFdLHRoaXMuQyxEWzQ5XS5iaW5kKG51bGwsMTApLHt0ZXh0OnlbMzddKHZbMl0sQVsxXSwxLHRoaXMuWCl9KSxtW3ZbMl1dKDkyLCJyYy1wcmVwb3NpdGlvbmFsLWluc3RydWN0aW9ucyIpKSx0aGlzKS5IPUFlKCk8QVswXSxSWzM2XSh2WzBdLGIsdGhpcy5IPyJTZWxlY3QgdGhlIHBocmFzZXMgdGhhdCBhcmUgaW1wcm9wZXJseSBmb3JtZWQ6IjoiU2VsZWN0IHRoZSBwaHJhc2VzIHRoYXQgc291bmQgaW5jb3JyZWN0OiIpLAp0aGlzLm1KKCExKSxrKVs4XSg4LHRoaXMsZnVuY3Rpb24ocCxRKXsoa1s0Nl0oNTYsKFE9WzMxLDI3LCEocD1bMCwidGQiLCJyYy1wcmVwb3NpdGlvbmFsLXZlcmlmeS1mYWlsZWQiXSwwKV0sImgiKSxKLEouaUMoKSksTylbUVsxXV0oMjAscFswXSxwWzFdLG51bGwsIi4iLEopLEsmJkoubUooUVsyXSxlW1FbMF1dKDE1LHBbMl0sSikpfSksbSlbdlsyXV0oMyl9LEYuYlk9ZnVuY3Rpb24oQil7KHRoaXNbKEI9WyJjYWxsIiwicHJvdG90eXBlIiwiTSJdLEdEW0JbMV1dLmJZW0JbMF1dKHRoaXMpLEIpWzJdXT1rWzIyXSg1LERbMzNdLmJpbmQobnVsbCwxKSksdGhpcykuTzModGhpcy51KCkpfSxPWzIxXSg0LGF4LEdEKSxheC5wcm90b3R5cGUuaEw9ZnVuY3Rpb24oKXtyZXR1cm4gbVsyXSg1KX0sYXgpLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCKXsodGhpcy5NPSgoQj1bMjIsMTksImNhbGwiXSxHRCkucHJvdG90eXBlLmJZW0JbMl1dKHRoaXMpLGtbQlswXV0oNjgsZ1tCWzFdXS5iaW5kKG51bGwsCjU4KSkpLHRoaXMpLk8zKHRoaXMudSgpKX0sYXgucHJvdG90eXBlKS5hej1mdW5jdGlvbihCLHopeyhCPXRoaXNbej1bIiIsInJlc3BvbnNlIiwiVyJdLHRoaXNbelsxXV1bQnUoKV09elswXSx6WzJdXSkmJih0aGlzW3pbMV1dW2tEKCldPVlbN10oODEselswXSwyNTUselswXStCLndpZHRoK0IuaGVpZ2h0KSl9LGF4KS5wcm90b3R5cGUuVTA9ZnVuY3Rpb24oQil7QiYmSFsxOF0oNjYsITEsdGhpcyl9LE5CKCkpO2Z1bmN0aW9uIFBvKEIseixLLEope3JldHVybiBEWzIxXS5jYWxsKHRoaXMsMjIsQix6LEssSil9CnZhciBueD0oKCgoKEhbMjRdKDg5LFBvLFpLKSxQbykucHJvdG90eXBlLkhoPWZ1bmN0aW9uKEIseil7QiE9dGhpc1t6PVsibyIsInUiLCJiQyJdLHpbMF1dJiYodGhpc1t6WzBdXT1CLHRoaXMuWFt6WzJdXSh0aGlzW3pbMV1dKCksdGhpc1t6WzBdXSkpfSxQbykucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEspeyhLPVsicHJldmVudERlZmF1bHQiLDQ4LCJIaCJdLEIudigpLHo9dGhpcy5vP0o5OkthLHRoaXMuaXNFbmFibGVkKCkmJiFCLnRhcmdldC5ocmVmKSYmZ1szXSg1MCx0aGlzLHopJiYoQltLWzBdXSgpLHRoaXNbS1syXV0odGhpcy5vPyExOiEwKSxnWzNdKEtbMV0sdGhpcyxqRCkpfSxQby5wcm90b3R5cGUpLklUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubz09MX0sUG8ucHJvdG90eXBlKS5IbD1mdW5jdGlvbihCKXtyZXR1cm4gQi5rZXlDb2RlPT0zMiYmKHRoaXMuaihCKSx0aGlzLnYoQikpLCExfSxmdW5jdGlvbigpe3JldHVybiBIWzQzXS5jYWxsKHRoaXMsMjApfSksd244PQooKCgoUG8ucHJvdG90eXBlLkNxPWZ1bmN0aW9uKEIseil7KCh6PVs1MywiQ3EiLCJ2Il0sUG8uWSlbelsxXV0uY2FsbCh0aGlzKSx0aGlzKS5nJiYoQj1ZWzIzXSh6WzBdLHRoaXMpLGVbMzZdKDgsQix0aGlzLnUoKSx5Ryx0aGlzW3pbMl1dKSl9LEhbMjRdKDQ5LG54LE5RKSxlWzI0XSg1OCxueCksbngucHJvdG90eXBlKS5YcD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEIubz0oKEM9KHo9bnhbSj1bITAsITEsbnVsbF0sYj1bIlkiLDE2LDJdLGJbMF1dLlhwLmNhbGwodGhpcyxCLHopLGUpWzFdKDc2LHopLEs9SlsxXSxZKVs4XShiWzFdLEMsT1s0M10oODIsSltiWzJdXSx0aGlzLEpbYlsyXV0pKT9LPUpbYlsyXV06WVs4XSgyMCxDLE9bNDNdKDg2LEpbYlsyXV0sdGhpcyxKWzBdKSk/Sz1KWzBdOllbOF0oMjAsQyxPWzQzXSg4NyxKW2JbMl1dLHRoaXMsSlsxXSkpJiYoSz1KWzFdKSxLKSxPKVsxXSgzMixmNix6LGtbMjBdKGJbMV0sSlswXSxKW2JbMl1dLEspKSx6fSxueC5wcm90b3R5cGUuTXU9CmZ1bmN0aW9uKEIseixLKXtyZXR1cm4oej1CLmxbKEs9WyJNIiw0LCJqb2luIl0sSylbMF1dKHJFLGcwW0tbMV1dKDE5LCItb3BlbiIsQix0aGlzKVtLWzJdXShvOSgpKSksdGhpcykuYkMoeixCLm8pLHp9LG54KS5wcm90b3R5cGUuV2g9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1jaGVja2JveCJ9LG54LnByb3RvdHlwZS5iQz1mdW5jdGlvbihCLHosSyxKKXtKPVs0MywxOSxudWxsXSxCJiYoSz1PW0pbMF1dKDg0LEpbMl0sdGhpcyx6KSxlWzEwXShKWzFdLEIsSyl8fChnMFs2XSgzOCxmdW5jdGlvbihDLGIpeyhiPU9bNDNdKDg1LG51bGwsdGhpcyxDKSxHKVszNV0oMjQsQixiPT1LLGIpfSx4Qyx0aGlzKSxPWzFdKDE3LGY2LEIsa1syMF0oSlsxXSwhMCxKWzJdLHopKSkpfSxueC5wcm90b3R5cGUuY2w9ZnVuY3Rpb24oKXtyZXR1cm4gYm59LFIpWzQ1XSgxMSwiZ29vZy1jaGVja2JveCIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFBvfSksZVszNF0oMTcsWyIiXSkpLEhvPURvKCksYVM9KCgoKCgoRj0KKE9bMjFdKDYsdkwsR0QpLHZMKS5wcm90b3R5cGUsRi5Sej1mdW5jdGlvbihCKXtyZXR1cm4gUlsyXSgoQj1bInYiLCExLDMyXSxCKVsyXSx0aGlzW0JbMF1dLmdldFZhbHVlKCkpPyhlWzMxXSgxMiwicmMtMmZhLWluc3RydWN0aW9ucyIsdGhpcykuZm9jdXMoKSwhMCk6QlsxXX0sRikubUo9ZnVuY3Rpb24oKXt9LEYuTzM9ZnVuY3Rpb24oKXt0aGlzLkg9ZVszMV0oMTMsInJjLTJmYS1wYXlsb2FkIix0aGlzKX0sRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCh2PShwPVsicmMtMmZhLXJlc3BvbnNlLWZpZWxkIiw1LCEwXSxuPShKPXRoaXMsWyJ2IiwyLDE0XSksei5hdSgpKSx6LnMzKCkpPT0xMClyZXR1cm4gdGhpcy5nPXouZEgoKSxrWzhdKDQzLHRoaXMsZnVuY3Rpb24oKXtnWzNdKDQ4LEosInMiKX0pLG1bblsxXV0oNCk7cmV0dXJuKEM9KFE9KHRoaXNbdGhpc1t0aGlzWyhiPVJbNDhdKDczLHYsa0gscFsxXSksYiE9bnVsbCYmKEE9Uls0OF0oMzIsNyxudWxsLApiKXx8bmV3IGVXKHduOFswXSksWVs5XShuWzFdLCIuIixudWxsLCIiLDksdGhpcy5ILEEpKSxtKVszMV0oODksdGhpcy5ILGdbMzldLmJpbmQobnVsbCwxMCkse2lkZW50aWZpZXI6WVszNF0oNiwxLHYpLEsxOkssTDE6RFsxOF0oNDUsZVszMl0oNjAsdiw0KSksY0Q6bVsxXSgyMCx2LDcpPT1uWzFdPyJwaG9uZSI6ImVtYWlsIn0pLGtbNDZdKDYwLCJoIix0aGlzLHRoaXMuaUMoKSxwW25bMV1dKSxuWzBdXS5yZW5kZXIoZVszMV0oblsyXSxwWzBdLHRoaXMpKSxuWzBdXS51KCkuc2V0QXR0cmlidXRlKGxwKCkseVszM10oblsyXSxuWzFdLHYpKSxuWzBdXS5jbGVhcigpLEhbMTZdKG5bMl0scFtuWzFdXSx0aGlzW25bMF1dKSxlWzMxXSgxMywicmMtMmZhLXN1Ym1pdC1idXR0b24taG9sZGVyIix0aGlzKSksZVszMV0oMTIsInJjLTJmYS1jYW5jZWwtYnV0dG9uLWhvbGRlciIsdGhpcykpLHRoaXMuWCkucmVuZGVyKFEpLHRoaXMuRC5yZW5kZXIoQyksZVszNl0oMTIsWVsyM10oNTUsdGhpcyksCnRoaXNbblswXV0udSgpLFA2bCxmdW5jdGlvbihaKXtKW1o9WyJ2IiwiWCIsITFdLFpbMF1dLmdldFZhbHVlKCkubGVuZ3RoPT15WzMzXSgxMiwyLHYpP0pbWlsxXV0uZ2IoITApOkpbWlsxXV0uZ2IoWlsyXSl9KSxtW25bMV1dKDcpfSxGLkNxPWZ1bmN0aW9uKEIseil7KCgoKChHRC5wcm90b3R5cGUuQ3EuY2FsbCgoQj0oej1bMTEsInJjLTJmYS10YWJsb29wLWVuZCIsInJjLTJmYS10YWJsb29wLWJlZ2luIl0sdGhpcyksdGhpcykpLGUpWzM2XSg3LGVbMzZdKDMsWVsyM10oNTQsdGhpcyksbVsyXSg5NSx6WzJdKSxDWixmdW5jdGlvbigpe0RbMzFdKDM0LCJub25lIil9KSxtWzJdKDkxLHpbMV0pLENaLGZ1bmN0aW9uKCl7RFszMV0oMzAsIm5vbmUiLFsicmMtMmZhLWVycm9yLW1lc3NhZ2UiLCJyYy0yZmEtaW5zdHJ1Y3Rpb25zIl0pfSksbSlbNDBdKDgsdGhpcy5DLGRvY3VtZW50KSxlWzM2XSg3LFlbMjNdKDUwLHRoaXMpLHRoaXMuQyxNcix0aGlzLkV5KSx0aGlzLlgpLmdiKCExKSwKZSlbMzZdKHpbMF0sWVsyM10oNDgsdGhpcyksdGhpcy5YLFR3LGZ1bmN0aW9uKEspe0IuWC5nYigoSz1bITEsInQiLDE4XSxLWzBdKSksSFtLWzJdXSgyLEtbMF0sQixLWzFdKX0pLGUpWzM2XSgxLFlbMjNdKDU1LHRoaXMpLHRoaXMuRCxUdyxmdW5jdGlvbigpe3JldHVybiBnWzNdKDUxLEIsImwiKX0pfSxGKS5jej1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd8fCIifSxGKS5oTz1mdW5jdGlvbihCLHope0I9ZVsoej1bInJjLTJmYS1lcnJvci1tZXNzYWdlIiwxMSwzMV0seilbMl1dKDE0LHpbMF0sdGhpcyl8fGVbelsyXV0oelsxXSwicmMtMmZhLWluc3RydWN0aW9ucyIsdGhpcyksIUJ8fGZsJiZrWzE2XSg0MSwxMCwxMCxxZik+PTB8fEIuZm9jdXMoKX0sRikubmc9ZnVuY3Rpb24oKXt9LEYuYXo9ZnVuY3Rpb24oQil7dGhpc1tCPVsidiIsImoiLCJyZXNwb25zZSJdLHRoaXNbQlsyXV1bSDFaKCldPXRoaXNbQlswXV0uZ2V0VmFsdWUoKSxCWzJdXVtMTCgpXT10aGlzW0JbMV1dLklUKCksCkhbMTZdKDEyLCExLHRoaXNbQlswXV0pfSxGLkV5PWZ1bmN0aW9uKEIpe3JldHVybiBtWzI3XS5jYWxsKHRoaXMsOSxCKX0sRi5pQz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlc/bmV3IGJtKHRoaXMuVy53aWR0aCx0aGlzLlcuaGVpZ2h0KTpuZXcgYm0oMCwwKX0sRikuYlk9ZnVuY3Rpb24oQil7dGhpc1tHRFtCPVtudWxsLCJNIiwicHJvdG90eXBlIl0sQlsyXV0uYlkuY2FsbCh0aGlzKSxCWzFdXT1rWzIyXSg1LGcwWzZdLmJpbmQoQlswXSw4KSksdGhpcy5PMyh0aGlzLnUoKSl9LG5ldyBibSgzMDIsNDIyKSksaHI9KCgoKE9bMjFdKDUsVkEsSjMpLFZBLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSl7KChDPShiPShBPVswLDE2LDY4XSxrKVsyMl0oQVsyXSxrWzldLmJpbmQobnVsbCw3Mikse0dROnosUG86bER9KSxZWzM1XSg0MCx5WzI2XSg1NixVeixiKVtBWzBdXSxxMyksSWdbSl0pLGUpWzE0XSgyNCwibnVtYmVyIixiLEMpLHRoaXMuaSkuYXBwZW5kQ2hpbGQoYiksClJbMTRdKDMwLCIiLDUsSyx0aGlzLGdbMjZdKEFbMV0sMSxiKSxCLEMpfSxWQSkucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSxWQS5wcm90b3R5cGUpLks9ZnVuY3Rpb24oQix6LEssSixDKXsoKCgoQz1bMzUsKEo9WyJkaXNwbGF5IiwwLCJibG9jayJdLDEpLDVdLEQpWzddKENbMl0sbnVsbCx0aGlzKSx0aGlzKS5YPSRyLEs9a1syMl0oMzYsbVszMl0uYmluZChudWxsLDMpLHtocTplWzQ2XShDWzFdLEIpLEdROnosUG86bER9KSxZW0NbMF1dKDMyLHlbMjZdKDUwLGJZLEspW0pbQ1sxXV1dLHt3aWR0aDphUy53aWR0aCsicHgiLGhlaWdodDphUy5oZWlnaHQrInB4In0pLFlbQ1swXV0oMzIseVsyNl0oNTAsc2ksSylbSltDWzFdXV0seXkzKSxZKVtDWzBdXSgxNix5WzI2XSg0OCxVeixLKVtKW0NbMV1dXSxxMyksWVtDWzBdXSg0OCx5WzI2XSg1NCxVeixLKVtKW0NbMV1dXSxKWzBdLEpbMl0pLHRoaXMpLmkuYXBwZW5kQ2hpbGQoSyl9LFZBLnByb3RvdHlwZSkuTz0KZnVuY3Rpb24oQix6LEssSil7KEs9aFkoZVs0MF0oMTQsMCwoSj1bInByb3RvdHlwZSIsIk8iLCh6PXo9PT12b2lkIDA/ITE6eiwzMyldLHRoaXMpKS53aWR0aC1lWzM2XShKWzJdLC41LHRoaXMpLngsZVszNl0oMzQsLjUsdGhpcykueCksQik/SjNbSlswXV1bSlsxXV0uY2FsbCh0aGlzLEIseik6Sz5JZ1tYTSgpXS53aWR0aCoxLjU/SjNbSlswXV1bSlsxXV0uY2FsbCh0aGlzLEpmLHopOkozW0pbMF1dW0pbMV1dLmNhbGwodGhpcyx2b2lkIDAseil9LHFqKCkpLGRqPUUkKCksSTFZPWpDKCksQ0s9dEIoKSxrST14cVkoKSxGcXg9bWcoKSx0cj0oal9bZGpdPXtkaXNwbGF5OnROKCksdHJhbnNpdGlvbjpHVSgpLHBvc2l0aW9uOmJVKCksYm90dG9tOkFPKCkscmlnaHQ6a0ksImJveC1zaGFkb3ciOktsKCksImJvcmRlci1yYWRpdXMiOlpSKCksb3ZlcmZsb3c6dkQoKX0sal9baHJdPXtkaXNwbGF5OnROKCksdHJhbnNpdGlvbjpEbVooKSxwb3NpdGlvbjpiVSgpLGJvdHRvbTpBTygpLGxlZnQ6a0ksCiJib3gtc2hhZG93IjpLbCgpLCJib3JkZXItcmFkaXVzIjpaUigpLG92ZXJmbG93OnZEKCl9LGpfW0kxWV09eyJib3gtc2hhZG93IjpLbCgpfSxqX1tDS109e3Bvc2l0aW9uOmJVKCksdmlzaWJpbGl0eTp2RCgpfSxqXyksdmI9W2hyLGRqXSxCQkQ9KCgoKE9bMjFdKDIsUmksSjMpLFJpKS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpeygoKEM9KCgodGhpcy5zdHlsZT10ci5oYXNPd25Qcm9wZXJ0eSgoYj1bMSwibnVtYmVyIiw1XSxBPVs1MiwiZyIsNjBdLHRoaXNbQVsxXV0pKT90aGlzW0FbMV1dOmRqLFkpWzhdKDIyLHZiLHRoaXMuc3R5bGUpJiZEWzE3XSgzMiwwKSYmKHRoaXMuc3R5bGU9Q0spLHRoaXMpLk09a1syMl0oMzYseVs0NF0uYmluZChudWxsLDEpLHtHUTp6LFBvOmxELHN0eWxlOnRoaXMuc3R5bGV9KSxZWzM1XSg0OCx5WzI2XShBWzBdLFV6LHRoaXMuTSlbMF0scTMpLElnW0pdKSxlKVsxNF0oMjUsYlsxXSx0aGlzLk0sQyksdGhpcykuaS5hcHBlbmRDaGlsZCh0aGlzLk0pLApSWzE0XSgzMSwiIixiWzJdLEssdGhpcyxnWzI2XSgxNyxiWzBdLHRoaXMuTSksQixDKSxPWzExXShBWzJdLHRoaXMuTSwiZGlzcGxheSIpPT0ibm9uZSImJihZWzM1XSgxNix0aGlzLk0sdHJbQ0tdKSx0aGlzLnN0eWxlPWRqKSxZKVszNV0oMTYsdGhpcy5NLHRyW3RoaXMuc3R5bGVdKX0sUmkpLnByb3RvdHlwZS5LPWZ1bmN0aW9uKEIseixLLEosQyl7dGhpc1soSj0odGhpc1tEWzddKDQsbnVsbCwoQz1bMzIsIlgiLCJpIl0sdGhpcykpLENbMV1dPSRyLGspWzIyXSg0LGdbMzBdLmJpbmQobnVsbCxDWzBdKSx7RUI6S30pLEMpWzJdXS5hcHBlbmRDaGlsZChKKX0sUmkucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfSxPKVsyMV0oMixIZCx3RSksQkJEfHx7aWQ6THYoKX0pLGNjPUVycm9yKCJUaW1lb3V0IiksUlk9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4geVsyN10uY2FsbCh0aGlzLDIsSixDLEsseixCKX0sdDM9dm0oKSxDeCxQST0hMSx3NCxYMj0hMSwkaywKdUw9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcXIoQix6LEssSixDKXtyZXR1cm4gSFsyN10uY2FsbCh0aGlzLDgsQix6LEssSixDKX1mdW5jdGlvbiBpNihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gUls2XS5jYWxsKHRoaXMsNCxCLHosSyxKLEMsYixBLHYscCxRKX0KdmFyICRwPUxPKCksdDQ9ZWIoKSxKUj1LelooKSxxTD1mTygpLEhQPWFKKCksZWQ9QTcoKSxBUj1pZygpLEM2PXhhKCksSzY9SXYoKSxiSz1XOSgpLFRrPXZCKCksVUE9a3EoKSxZZz0oKE5fLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYodGhpcy5NPD0oUT1bMSwxMDEzOTA0MjIzLCh6PVswLDMsNDI5NDk2NzI5Nl0sMTMpXSx6WzBdKSlyZXR1cm4hMTtmb3Iodj0oSz0ocD1lNyhZWzRdKDU2LChDPSExLEIpKSksSFs0OF0oMyxwLFFbMV0sMTY2NDUyNSx6WzJdKSkselswXSk7djxRWzJdO3YrKylKPWJOKEsoKSp6WzJdKSUyMjQ4MCxBPUo+PnpbUVswXV0sYj10aGlzLnZbQV0sdGhpcy52W0FdfD1RWzBdPDwoSiY3KSxiIT09dGhpcy52W0FdJiYoQz0hMCk7cmV0dXJuIShDJiZ0aGlzLk0tLSwwKX0sTl8ucHJvdG90eXBlKS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7Zm9yKEs9KEM9KG49KFE9WzIsMSwzXSxBPXRoaXMudi5ieXRlTGVuZ3RoLApCPSIiLFo9WzEwMDgsMCwyNTgwNDhdLEElUVsyXSksWlsxXSksQS1uKTtDPEs7Qys9UVsyXSlwPXRoaXMudltDXTw8MTZ8dGhpcy52W0MrUVsxXV08PDh8dGhpcy52W0MrUVtaWzFdXV0sej0ocCYxNjUxNTA3Mik+PjE4LEo9KHAmWlsyXSk+PjEyLGI9cCY2Myx2PShwJjQwMzIpPj42LEIrPVVBW3pdK1VBW0pdK1VBW3ZdK1VBW2JdO3JldHVybiBuPT1RWzFdPyhwPXRoaXMudltLXSxCKz1VQVsocCYyNTIpPj5RW1pbMV1dXStVQVsocCZRWzJdKTw8NF0pOm49PVFbWlsxXV0mJihwPXRoaXMudltLXTw8OHx0aGlzLnZbSytRWzFdXSxCKz1VQVsocCY2NDUxMik+PjEwXStVQVsocCZaWzBdKT4+NF0rVUFbKHAmMTUpPDxRW1pbMV1dXSksdGhpcy5YK0J9LFFzKSgpLEh6PW1nKCksV2M9bmV3IE1hcChbWzAsIm5vLWVycm9yIl0sWzIsImNoYWxsZW5nZS1leHBpcmVkIl0sWzMsImludmFsaWQtcmVxdWVzdC10b2tlbiJdLFs0LCJpbnZhbGlkLXBpbiJdLFs1LCJwaW4tbWlzbWF0Y2giXSxbNiwKImF0dGVtcHRzLWV4aGF1c3RlZCJdLFsxMCwiYWJvcnRlZCJdXSksczgwPShEZi5wcm90b3R5cGUud0g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSxzODB8fHtpZDpPbygpfSksQVk9eVAoKSxOTT1jZigpLERHPXVtKCksTU89ancoKSxVaT1XQygpLHd3PXdCKCksQkU9eVcoKSxJSD1xNigpLEZHPWNpKCksa2k9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsdHo9T2JqZWN0LmRlZmluZVByb3BlcnR5LE01PU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFVwPVByb21pc2UucmVzb2x2ZSgpLEhFPWVwKCksRE89bmV3ICh4eS5wcm90b3R5cGUuSz1SWzIwXSgyLCgoKCh4eS5wcm90b3R5cGUubFk9ZnVuY3Rpb24oQix6LEspe3RoaXNbej0oSz1bIkYiLDQ4LDk2XSxPW0tbMV1dKEtbMl0sdGhpcykpLEI9T1tLWzFdXSgzMSx0aGlzKSxLWzBdXT90aGlzW0tbMF1dW3pdPUI6RFsxMV0oMilbel09Qn0sKChGPSgoKCgoKCgoeHkucHJvdG90eXBlLlcxPWZ1bmN0aW9uKCl7dGhpcy5TPU9bNDhdKDMxLAp0aGlzKX0sKCgoKEY9eHkucHJvdG90eXBlLEYpLmRpc3Bvc2U9ZnVuY3Rpb24oQix6LEssSil7Zm9yKEs9KEo9WzMwLDgwLDEyXSwyNCk7SyE9MjspSz09SlsxXT8oSFszNF0oSlsyXSwxLHRoaXMsei52YWx1ZSksSz01NSk6Sz09SlswXT9LPTc2Oks9PTU1Pyh6PUIubmV4dCgpLEs9NzYpOks9PTQ/KHRoaXMuQS5sZW5ndGg9MCxLPTIpOks9PTI3PyhCPWdbSlsyXV0oNSx0aGlzLkEpLHo9Qi5uZXh0KCksSz1KWzBdKTpLPT03Nj9LPXouZG9uZT80OkpbMV06Sz09MjQmJihLPXRoaXMuQS5sZW5ndGg+MD8yNzoyKX0sRi5HWj1mdW5jdGlvbihCLHope3JldHVybiBHWzIzXS5jYWxsKHRoaXMsMyxCLHopfSx4eS5wcm90b3R5cGUud2I9ZnVuY3Rpb24oQix6KXtIWzM0XSgxNSwxLHRoaXMsbmV3IHdGKEcyLmFwcGx5KDIsYXJndW1lbnRzKSxCLG51bGwseiwxKSl9LEYuZVg9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gWVs0OV0uY2FsbCh0aGlzLDEsQix6LEssSixDKX0sRikubno9ZnVuY3Rpb24oQiwKeixLLEosQyl7cmV0dXJuIG1bMjhdLmNhbGwodGhpcyw0MixCLHosSyxKLEMpfSxGKS5TWD1mdW5jdGlvbihCLHosSyl7cmV0dXJuIE9bMjddLmNhbGwodGhpcywxLEIseixLKX0sRi5SYj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gSFsyXS5jYWxsKHRoaXMsNSxCLHosSyxKKX0sRikuWjI9ZnVuY3Rpb24oKXtyZXR1cm4gT1swXS5jYWxsKHRoaXMsNDIpfSxGKS5GWD1mdW5jdGlvbihCLHope3JldHVybiBlWzM5XS5jYWxsKHRoaXMsMTQsQix6KX0sRikuTGk9ZnVuY3Rpb24oKXtyZXR1cm4gZ1s0NF0uY2FsbCh0aGlzLDQ4KX0sRi5iUD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIE9bMjJdLmNhbGwodGhpcyw0LEIseixLLEosQyxiKX0sRikuZ3Q9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtyZXR1cm4gRFsxMF0uY2FsbCh0aGlzLDcwLEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl9LEYuc1o9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVsyMV0uY2FsbCh0aGlzLAo0NCxCLHopfSx4eS5wcm90b3R5cGUuSkw9ZnVuY3Rpb24oQix6LEssSil7KEI9KEs9KEo9Wzk2LDQ4LDY0XSxPKVtKWzFdXShKWzJdLHRoaXMpLHo9T1tKWzFdXShKWzBdLHRoaXMpLE9bSlsxXV0oSlswXSx0aGlzKSksSylbel09Qn0seHkucHJvdG90eXBlLm5xPWZ1bmN0aW9uKEIseil7cmV0dXJuKEI9a1t6PVszNCwxMCwyNl0sMTVdKHpbMF0sdGhpcy52KSxIKVt6WzJdXSgyMCx6WzFdLDMxLHRoaXMudixCLCExKX0sRi5FTD1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFlbMjhdLmNhbGwodGhpcywyNSxCLHosSyl9LEYuTlU9KHh5LnByb3RvdHlwZS5BTD1mdW5jdGlvbihCLHosSyxKLEMsYixBKXsoSj0oQz0oej0oQj0oYj0oQT1bNjYsNjcsNDhdLFJbOF0oNjIsdGhpcykpLE9bQVsyXV0oNjMsdGhpcykpLEs9T1tBWzJdXSg2NCx0aGlzKSxPW0FbMl1dKDMyLHRoaXMpKSxPW0FbMl1dKDMyLHRoaXMpKSxSWzIzXShBWzBdLEssUlsyM10oQVsxXSxLLEIpK0spKSx0aGlzLnhKKVtiXT0KZnVuY3Rpb24odil7cmV0dXJuIHYrKEo9UlsyM10oNjgsSyx6KkorQyksSil9fSxmdW5jdGlvbigpe3JldHVybiBnWzQ2XS5jYWxsKHRoaXMsOSl9KSxGKS51UD1mdW5jdGlvbihCLHope3JldHVybiBHWzldLmNhbGwodGhpcywxNCxCLHopfSxGKS55dD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZzBbNV0uY2FsbCh0aGlzLDMwLEIseixLLEopfSxGKS5uQj1mdW5jdGlvbihCKXtyZXR1cm4gbVszMF0uY2FsbCh0aGlzLDYwLEIpfSxGLmhBPWZ1bmN0aW9uKEIseil7cmV0dXJuIEhbMzhdLmNhbGwodGhpcywxLEIseil9LEYucHo9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIGVbNl0uY2FsbCh0aGlzLDQxLEIseixLLEopfSxGKS5IZD1mdW5jdGlvbihCKXtyZXR1cm4gbVswXS5jYWxsKHRoaXMsMTYsQil9LHh5LnByb3RvdHlwZSksRi5vYj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIGtbMjVdLmNhbGwodGhpcyw5LEIseixLLEosQyxiKX0sRikudEE9ZnVuY3Rpb24oKXtyZXR1cm4gR1s0MV0uY2FsbCh0aGlzLAoyOCl9LHh5LnByb3RvdHlwZS5wcT1mdW5jdGlvbihCKXsodGhpc1tCPVsiWCIsInYiLCJPIl0sQlsyXV09dGhpc1tCWzFdXVtCWzFdXSx0aGlzW0JbMV1dKVtCWzFdXT10aGlzW0JbMV1dW0JbMF1dfSxGLnZkPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4ga1sxNl0uY2FsbCh0aGlzLDIsQix6LEspfSxGLlpPPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gSFsxMV0uY2FsbCh0aGlzLDMyLEIseixLKX0sRi5kZj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBEWzQ2XS5jYWxsKHRoaXMsNixCLHosSyxKLEMpfSxGKS5sUD1mdW5jdGlvbihCLHope3JldHVybiBrWzMzXS5jYWxsKHRoaXMsNSxCLHopfSxGLk13PWZ1bmN0aW9uKEIseil7cmV0dXJuIFlbMTBdLmNhbGwodGhpcywyNCxCLHopfSxGKS5reD1mdW5jdGlvbigpe3JldHVybiBtWzExXS5jYWxsKHRoaXMsNyl9LEY9eHkucHJvdG90eXBlLEYpLmFiPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gbVs0Nl0uY2FsbCh0aGlzLDgsQiwKeixLLEosQyxiKX0sRi5wcj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBIWzIwXS5jYWxsKHRoaXMsMixCLHosSyxKLEMpfSxGLmlQPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuIGVbMTVdLmNhbGwodGhpcywxMixCLHosSyxKLEMsYixBLHYscCxRLG4pfSxGLkJ6PWZ1bmN0aW9uKCl7cmV0dXJuIG1bMV0uY2FsbCh0aGlzLDI1KX0sRikuWXc9KHh5LnByb3RvdHlwZS5rSj1mdW5jdGlvbihCKXsoQj1SWzhdKDYzLHRoaXMpLHRoaXMueEopW0JdPXRoaXMuUCsoWWooKS10aGlzLmkpfSxmdW5jdGlvbihCLHosSyl7cmV0dXJuIGtbMTldLmNhbGwodGhpcyw0LEIseixLKX0pLEYuV2Q9ZnVuY3Rpb24oQix6LEspe3JldHVybiBHWzQxXS5jYWxsKHRoaXMsNCxCLHosSyl9LEYuazk9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1sxMl0uY2FsbCh0aGlzLDgsQix6KX0sRi5BWT1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBrWzddLmNhbGwodGhpcyw0MCxCLHosSyxKLApDKX0sRi5Jaj1mdW5jdGlvbihCKXtyZXR1cm4ga1syNF0uY2FsbCh0aGlzLDM2LEIpfSwyMDQ4KSksV2Vha01hcCksaTM9KCgoT1syMV0oNixrWiwoKE8yLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIpe3JldHVybiBnWzldKDQsMCwxLChCPUI9PT12b2lkIDA/TTU6QixETy5nZXQodGhpcykpLEIpfSxPMikucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtETy5nZXQodGhpcykuZGlzcG9zZSgpfSxUKSksa1opLnByb3RvdHlwZS5UPVJbNDhdKDksWzAsQ1gsSV9dKSxYRkQpKCksVl8pKCksZHA9ZjIoKSxoNT1DVigpLFgzPUVQKCk7CigoKCgoKCgoKCgoQjEoKSxNVikoKSxnOS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybiBHWzEzXSgzMiwoYj0oQz1DPT09KEo9Sj09PXZvaWQgMD8hMTpKLHZvaWQgMCk/ITA6Qyx0aGlzKSxmdW5jdGlvbihwKXtyZXR1cm4gQT1iLlgudGhlbihmdW5jdGlvbihRLG4sWil7cmV0dXJuIExVKE9bWj10aGlzLDQxXSgyNSksbVszNV0oNzUpLHZvaWQgMCxRKS50aGVuKGZ1bmN0aW9uKFcsTix4LGYsTCxyLFYsUCl7cmV0dXJuKChWPShmPShOPW4uc2VuZCxQPVs0MCwzNSwyXSxEW1BbMV1dKFBbMV0sMCxaLnYseikpLHI9ZVtQWzBdXShQWzJdLDAsWi5NKSxPKVtQWzBdXSg1MixXLlB2KCkpLHomJkM1LmdldE5hbWUoKWluIHopP3g9ISF6W0M1LmdldE5hbWUoKV06eD0oTD1aLnYuZ2V0KEM1KSk/IShMPT09IjAifHxMPT09MHx8TD09PSExfHxMPT09ImZhbHNlIik6ITEsTikuY2FsbChuLEIsbmV3IFluKHtvTjpmLFZYOnIsRGk6VixtZDp4LEF1Okt8fFouQywKUk46Sn0pLDM2RTUpfSl9LmJpbmQoYixEWzExXSgodj1mdW5jdGlvbihRLG4pe2JbKG49WzMyLCEwLCJ2Il0sbilbMl1dLmhhcyhhSyk/ZVtuWzBdXSg2NCxiW25bMl1dLGFLLG5bMV0pKFEpOlEmJkMmJmNvbnNvbGUuZXJyb3IoUSl9LDgpKS5FcnJvcigpKSkscC5yZXR1cm4oQS50aGVuKGZ1bmN0aW9uKFEsbil7aWYobj1bbnVsbCwicmVzcG9uc2UiLCExXSxRKXtpZihRLmVycm9yKXRocm93IFEuUXQmJnYoUS5lcnJvciksUS5lcnJvcjtyZXR1cm4oUS50eT1uWzJdLGIpLksoUSksUVtuWzFdXX1yZXR1cm4gblswXX0sZnVuY3Rpb24oUSxuLFope2lmKChuPShaPVsxMSw0MSw0MF0sUSYmUSBpbnN0YW5jZW9mIEVycm9yKSYmIVEubWVzc2FnZS5pbmNsdWRlcyhsTigpKSkmJkFlKCk8LjAwMSlyZXR1cm4gT1s0M10oWlsyXSxaWzBdLDksYixRLHopO2lmKG4pdGhyb3cgdihRKSxRO3JldHVybiBPWzQzXShaWzFdLFpbMF0sOSxiLFEseil9KSl9KSl9LGc5LnByb3RvdHlwZS5EPWZ1bmN0aW9uKEIsCnosSyxKLEMsYixBKXtDPSgodGhpcy5pPSh0aGlzWyh6PVsoSj10aGlzLEE9WzM5LDAsIkEiXSwxKSwyXSxBKVsyXV09dGhpc1tBWzJdXXx8bmV3IG14LG5ldyBPMihmdW5jdGlvbih2KXtKLlgudGhlbihmdW5jdGlvbihwKXtyZXR1cm4gcC5zZW5kKEVoLG5ldyBsTyh2KSl9KS5jYXRjaChrWzEwXS5iaW5kKG51bGwsNTcpKX0sdGhpc1tBWzJdXS5NLEIuY28sQi5wRCkpLGI9SFsyXSgyLHpbMV0sT1tBWzBdXSgxOSx6W0FbMV1dLEIuTkkpLEIud3opLGUpWzldKDM4LHpbQVsxXV0sdGhpcy5pLGIpLEIuYU4mJkIubHkmJihLPUhbMl0oMzUselsxXSxPW0FbMF1dKDIseltBWzFdXSxCLmFOKSxCLmx5KSxlWzldKDUseltBWzFdXSx0aGlzLmksSykpLEhbMl0oMix6WzFdLE9bQVswXV0oMTYseltBWzFdXSxCLlFOKSxCLm5iKSksZVs5XSgyMSx6W0FbMV1dLHRoaXMuaSxDKX0sZzkucHJvdG90eXBlLlM9ZnVuY3Rpb24oQix6LEspeygwLHQkLkFzKSgoSz1bMzIsMCw0XSxCKSksR1syM10oS1swXSwKS1sxXSwiIixlWzEwXSgzLG51bGwsS1syXSxCKSx6LHRoaXMpfSxnOSkucHJvdG90eXBlLks9ZnVuY3Rpb24oQix6LEssSil7KEJbKCgoKEJbSj1bInJlc3BvbnNlIiwidHkiLDE1XSx6PVswLCIiLG51bGxdLEpbMV1dJiZHWzIzXSgzMyx6WzBdLHpbMV0selsyXSxCLHRoaXMpLGtbOF0oMTMsIi0iLHRoaXMuaWQpKS52YWx1ZT1CW0pbMF1dLEIuWCkmJmcwWzRdKDExLEFYLEIuWCx6WzBdKSxCLnYpJiYoSz1CLnYsZzBbNF0oSlsyXSx5WzI1XSg0LHpbMF0pLEsselswXSkpLEopWzBdXSYmdGhpcy52LmhhcyhFSykmJmVbMzJdKDM3LHRoaXMudixFSywhMCkoQltKWzBdXSksQi5pKSYmWVsyN10oMzIsNSwiaHR0cHM6IiwzLHpbMl0sQi5pKX0sZzkucHJvdG90eXBlLkw9ZnVuY3Rpb24oKXttWzMwXSgxNywiLSIsdGhpcywyKX0sZzkucHJvdG90eXBlKS5pWT1mdW5jdGlvbihCLHope1lbej1bIk0iLCJsWSIsbnVsbF0sMzJdKDQselsyXSx0aGlzW3pbMF1dKSwoMCx0JC55NSkodGhpc1t6WzFdXS5iaW5kKHRoaXMsCkIpLDcpfSxnOS5wcm90b3R5cGUuST1mdW5jdGlvbihCLHosSyxKLEMpe0s9KHo9KEM9KEo9WzEsMCwiU2lsayJdLFs1LG51bGwsIkZ4aU9TIl0pLEopWzFdLEImJih6PURbMTJdKDcsMixKWzFdLEpbMF0sOTYpKSxHW0NbMF1dKDEsIkVkZ2UiLENbMl0sSlsyXSxDWzFdKSksdGhpcy5YLnRoZW4oZnVuY3Rpb24oYil7Yi5zZW5kKFhILG5ldyB0ZTgoSy5YLEsudix6LEsuTSkpfSkuY2F0Y2goa1sxMF0uYmluZChDWzFdLDU4KSl9LGc5LnByb3RvdHlwZSkuRz1mdW5jdGlvbihCLHosSyl7ZzBbNF0oMTEsKHo9QlsoSz1bInYiLDEyLDBdLEspWzBdXSx5WzI1XShLWzFdLEtbMl0pKSx6LEtbMl0pfSxnOS5wcm90b3R5cGUpLlcxPWZ1bmN0aW9uKEIseil7KCh6PVsibnVtYmVyIiwwLDU5XSxHKVszNF0oMyx6WzBdLHpbMV0sQi52aXNpYmxlLHRoaXMuTSxCLnV5KSx0aGlzLlgpLnRoZW4oZnVuY3Rpb24oSyl7cmV0dXJuIEsuc2VuZChtcyxCKX0pLmNhdGNoKGtbMTBdLmJpbmQobnVsbCx6WzJdKSl9LApnOS5wcm90b3R5cGUubD1mdW5jdGlvbihCKXt2YXIgej1bMzUsMzMsImFwcGx5Il07cmV0dXJuIHQkLlNpW3pbMl1dKG51bGwsW0IsMyx0aGlzLlMuYmluZCh0aGlzKV0uY29uY2F0KGVbelsxXV0oelswXSxHMlt6WzJdXSgxLGFyZ3VtZW50cykpKSl9LGc5LnByb3RvdHlwZSkuSkw9ZnVuY3Rpb24oQil7KCgoQj1bMTAsMzIsIi0iXSxrKVs4XSgxNCxCWzJdLHRoaXMuaWQpLnZhbHVlPSIiLHRoaXMudi5oYXModW4pJiZlW0JbMV1dKDM4LHRoaXMudix1biwhMCkoKSxtKVszMF0oMTgsQlsyXSx0aGlzKSx0aGlzLlgudGhlbihmdW5jdGlvbih6KXtyZXR1cm4gei5zZW5kKFlBKX0pKS5jYXRjaChrW0JbMF1dLmJpbmQobnVsbCw2MCkpfSxnOSkucHJvdG90eXBlLmtKPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIEdbMTNdKCh6PXRoaXMsMjQpLGZ1bmN0aW9uKGIsQSx2KXt2PVs4NCwiUHYiLChBPVszLDEwLDRdLDQxKV07c3dpdGNoKGIuTSl7Y2FzZSAxOnJldHVybiBSQz1CLlgsbVszMl0oMjMsCkFbMV0sMCxCLmkpLEdsLndpbmRvd1tpM11bdXUoKV09R2wud2luZG93W2kzXVt1dSgpXXx8Qi5BLGIudihsUWgoT1t2WzJdXSgyMyksbVszNV0oMjcpKSwyKTtjYXNlIDI6cmV0dXJuIEM9Yi5YLGIudihFcHgoKSxBWzBdKTtjYXNlIEFbMF06aWYoIUFycmF5LmlzQXJyYXkoKEs9KEo9Yi5YLHZvaWQgMCksQikudil8fCFCLnYubGVuZ3RoKXtiLkdfKEFbMl0pO2JyZWFrfXJldHVybiBiLnYoWFBZKE9bdlsyXV0oMjApLHZvaWQgMCx2b2lkIDAsQi52KSw1KTtjYXNlIDU6Sz1iLlgsSz1PWzQwXSgyMCxLW3ZbMV1dKCkpO2Nhc2UgQVsyXTpyZXR1cm4gei5qJiYoWVsxM10oMjIsITAsITEsMCx6LEIuTSksei5qPSExKSxiLnJldHVybihuZXcgdXooT1s0MF0oNjgsQ1t2WzFdXSgpKSxPWzQwXSh2WzBdLEpbdlsxXV0oKSksSykpfX0pfSxnOS5wcm90b3R5cGUuWGc9ZnVuY3Rpb24oQix6LEssSil7KHo9WyJudW1iZXIiLChKPVsidmlzaWJpbGl0eVN0YXRlIiwxLCJ2aXNpYmxlIl0sMiksITBdLApCJiZCLnYmJigwLHQkLmJTKShCLmVycm9yQ29kZSksSz1CJiZCLmVycm9yQ29kZT09eltKWzFdXSx0aGlzLnYuaGFzKGFLKSk/ZVszMl0oMzYsdGhpcy52LGFLLHpbMl0pKCk6IUt8fGRvY3VtZW50W0pbMF1dJiZkb2N1bWVudFtKWzBdXSE9SlsyXXx8YWxlcnQoIkNhbm5vdCBjb250YWN0IHJlQ0FQVENIQS4gQ2hlY2sgeW91ciBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uIiksSyYmR1szNF0oNCx6WzBdLDAsITEsdGhpcy5NKX0sZzkpLnByb3RvdHlwZS5ucT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuIEM9KGI9KEs9bmV3IChCPSh6PWdbNDVdKChwPShKPVs0LG51bGwsMjBdLFs3LCh2PW5ldyBEYXRlLDYpLDJdKSxwKVswXSxKWzFdKSk/ejptWzI1XSgyMCxKWzFdLEpbcFsyXV0sMCksRGF0ZSktdixuZXcga1opLEE9bVsyM10oMTksQixiLDEpLGspW3BbMV1dKDEscFsyXSxBLEspLE9bMjNdKDQyLEMueWUoKSxKWzBdKX0sZzkpLnByb3RvdHlwZS5BTD1mdW5jdGlvbihCLAp6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEpe0E9QltxPVsodj0oSz1uZXcgU2V0LFswLDIsIjogIl0pLFY9bmV3IE1hcCwxMiksInYiLDFdLHFbMV1dO3RyeXtmb3IoTj1nW3FbMF1dKDUscGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShpOSgpKSkscD1OLm5leHQoKTshcC5kb25lO3A9Ti5uZXh0KCkpe2ZvcihMPWdbcVswXV0oKHg9cC52YWx1ZSxxWzBdKSxBKSxXPUwubmV4dCgpOyFXLmRvbmU7Vz1MLm5leHQoKSl6PVcudmFsdWUsSj16W3ZbMF1dLHgubmFtZS5pbmNsdWRlcyhKKSYmKFo9VixRPVouc2V0LGI9bmV3IGE5LEM9SFswXSg0OSxiLHFbMl0sTnVtYmVyKHpbcVsyXV0pKSxQPXlhKHguZHVyYXRpb24pLG49bVszOF0ocVswXSx2WzJdLHZbcVsyXV0sQyxQKSxmPXlhKHguc3RhcnRUaW1lKSxyPW1bMzhdKDIwLHZbMl0sMyxuLGYpLFEuY2FsbChaLEosT1s0MF0oMzYscikpKTt0cnl7Sy5hZGQoKG5ldyB5Nih4Lm5hbWUpKVtxWzFdXSl9Y2F0Y2goYyl7fX19Y2F0Y2goYyl7fXJldHVybiBuZXcgVFIoSywKVil9LGc5LnByb3RvdHlwZS5sWT1mdW5jdGlvbihCLHosSyxKLEMpeygoSz0oQi52W0M9WzIyLDMyLDQ2XSx6PVsxLCExLDBdLEljKCldPVN0cmluZyhnW0NbMV1dKDU3LHpbMl0sMTAsdGhpcykpLGVbQ1syXV0oQ1sxXSxEWzEyXSgzMywhMCxQRCxuZXcgdVkoQi52W3dGOCgpXSkpKSksRylbQ1swXV0oNyx6WzJdLHpbMV0sQi5NLEssQi52LHRoaXMuSCx0aGlzLk0pLEo9SFszNF0oMzMselswXSx0aGlzLk0pKSYmSFs1XSgyNixKLHlHLGZ1bmN0aW9uKCl7dGhpcy5YLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuc2VuZChWTyl9KS5jYXRjaChrWzEwXS5iaW5kKG51bGwsNjEpKX0selsxXSx0aGlzKX0sZzkpLnByb3RvdHlwZS5GZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoUT1bIiIsKG49KFc9WzI2LDM2LDIxXSxCLlNLJiYodGhpcy5XPUIuU0spLHRoaXMpLDApLG51bGxdLEFycmF5KS5pc0FycmF5KEIuTSkmJkIuTS5sZW5ndGg+UVsxXSl0cnl7ej1CLk0ubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBuZXcgT3YoTil9KSwKWj17U0s6KHY9dGhpcy5XKSE9UVsyXT92OiIiLG9yaWdpbjooSj1IWzJdKDkxLHRoaXMudixJTikpIT1RWzJdP0o6IiJ9LHRoaXMuUj1PWzExXSgxLGZ1bmN0aW9uKE4seCl7cmV0dXJuKHg9WyJSIiwoTj1uLk0sMjUpLCJ8WyJdLCEhTlt4WzBdXSkmJiEhTi52JiZEW3hbMV1dKHhbMV0seFsyXSxOLnYpPT09InZpc2libGUifSxaLEhbMl0oNTksdGhpcy52LFNCKXx8UVswXSxmdW5jdGlvbihOLHgpe3JldHVybigoeD17fSxOKSYmKHhbQjcuZ2V0TmFtZSgpXT1OKSxuKS5sKG4uRi5iaW5kKG4sVGQseCx2b2lkIDAsITApKX0seiksa1s1XSgxLCEwLHRoaXMuUi52KX1jYXRjaChOKXt0aGlzLlI9UVsyXX10cnl7Yj1tayhCLnYpLEE9bmV3IGRrLEEuaW5pdChiKSxlWzEwXSgyLFFbMl0sV1swXSxiLHZvaWQgMCxsKSYmWVszXSgxMCxRWzFdLHRoaXMsUVsxXSwhMCksUltXWzBdXShXWzJdLGIsV1sxXSxsKSYmdGhpcy5VJiYoWVs3XSg0OCwhMCxRWzBdLFFbMl0sdGhpcy5VLFJbV1swXV0oMTQsCmIsV1sxXSxsKSksQz1PWzI5XSgzLHRoaXMuVSksKEs9KHA9dGhpcy5BKT09UVsyXT92b2lkIDA6cC5NKSYmKEtbamdoKCldPUMpKSx0aGlzLkg9R1s0OV0oNywhMSxMMFksQSl9Y2F0Y2goTil7fX0sZzkucHJvdG90eXBlLkI9ZnVuY3Rpb24oQix6LEspe2lmKFlbKEs9WzI1LCJNIiwzMF0sSylbMl1dKEtbMF0sdGhpcy52KSlhOntpZihCPXRoaXNbS1sxXV0sQi5vPSFCLm8sQi5zdHlsZT09ZGopej1HQSgpO2Vsc2UgaWYoQi5zdHlsZT09aHIpej1JYSgpO2Vsc2UgYnJlYWsgYTtZWzM1XSgxNixCW0tbMV1dLHosQi5vP0ZxeDprSSl9fSxHbC53aW5kb3cmJkdsLndpbmRvd1tVVigpXSkmJllbMzVdKDIxLCJwaWQiLG51bGwsMCwiLnJlc2V0Iik7ZnVuY3Rpb24gTEMoQix6LEspe3JldHVybiBHWzM4XS5jYWxsKHRoaXMsOCxCLHosSyl9CnZhciBNZj0oSFsyNF0oNTEsTEMsaFopLFtdLmNvbmNhdChbMTI4XSxSWzMwXSgyLDAsMTI3KSkpLFBsPVlbMzNdKDQsMSwyLFsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLAo3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLAoxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsKCgoTEMucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZih2PVswLCJtZXNzYWdlIG11c3QgYmUgc3RyaW5nIG9yIGFycmF5IiwyNTVdLHA9eiE9PShRPVsiY2hhckNvZGVBdCIsMywibnVtYmVyIl0sdm9pZCAwKT96OkIubGVuZ3RoLHRoaXMuQSl0aHJvdyBFcnJvcigidGhpcyBoYXNoZXIgbmVlZHMgdG8gYmUgcmVzZXQiKTsKaWYoSj10aGlzLk0sdHlwZW9mIEI9PT0ic3RyaW5nIilmb3IoQz12WzBdO0M8cDtDKyspe2lmKChBPUJbUVswXV0oQyksQSk+dlsyXSl0aHJvdyBFcnJvcigiQ2hhcmFjdGVycyBtdXN0IGJlIGluIHJhbmdlIFswLDI1NV0iKTsodGhpcy5YW0orK109QSxKPT10aGlzLmJsb2NrU2l6ZSkmJihEWzQwXSg0LFFbMV0sdGhpcyksSj12WzBdKX1lbHNlIGlmKFlbOF0oUVsxXSxRWzJdLEIpKWZvcihiPXZbMF07YjxwO2IrKyl7aWYoSz1CW2JdLHR5cGVvZiBLIT09Im51bWJlciJ8fEs8dlswXXx8Sz52WzJdfHxLIT0oS3x2WzBdKSl0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSIpO3RoaXMuWFtKKytdPUssSj09dGhpcy5ibG9ja1NpemUmJihEWzQwXSg2LFFbMV0sdGhpcyksSj12WzBdKX1lbHNlIHRocm93IEVycm9yKHZbMV0pOyh0aGlzLk09Six0aGlzKS5pKz1wfSxMQykucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKEIpe3RoaXMuQT0odGhpcy52PW1bdGhpcy5pPQoodGhpc1tCPVsibCIsMCwiTSJdLEJbMl1dPUJbMV0sQilbMV0sMjldKDIzLHRoaXNbQlswXV0pLCExKX0sKExDLnByb3RvdHlwZS5GPWZ1bmN0aW9uKEIseixLKXtmb3IodmFyIEo9WzIsIk14IiwxXSxDPUIuaCt6LmgsYj1bMjE0NzQ4MzY0OCwxLDQyOTQ5NjcyOTZdLEE9KEJbSlsxXV1eYlswXSkrKHpbSlsxXV1eYlswXSksdj1hcmd1bWVudHMubGVuZ3RoLWJbSlsyXV07dj49SlswXTstLXYpQys9YXJndW1lbnRzW3ZdLmgsQSs9YXJndW1lbnRzW3ZdW0pbMV1dXmJbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGgmYltDKz1hcmd1bWVudHMubGVuZ3RoPj5iW0pbMl1dLEpbMl1dJiYoQSs9YlswXSksQys9Yk4oQS9iW0pbMF1dKSxuZXcgZXQoQSxDKX0sTEMpLnByb3RvdHlwZSkuZGlnZXN0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQj1bMCwoWj1bMiwiTSIsOF0sMTEyKSwhMF0sdGhpcykuQSl0aHJvdyBFcnJvcigidGhpcyBoYXNoZXIgbmVlZHMgdG8gYmUgcmVzZXQiKTsKZm9yKHRoaXNbWlsxXV08QltRPXRoaXMuaSpaWzJdLDFdP3RoaXMudXBkYXRlKE1mLEJbMV0tdGhpc1taWzFdXSk6dGhpcy51cGRhdGUoTWYsdGhpcy5ibG9ja1NpemUtdGhpc1taWzFdXStCWzFdKSxLPTEyNztLPj1CWzFdO0stLSl0aGlzLlhbS109USYyNTUsUS89MjU2O2ZvcihKPShEWzQwXSgzMiwzLHRoaXMpLEJbMF0pLEM9QXJyYXkoWlsyXSp0aGlzLlIpLG49QlswXTtuPHRoaXMuUjtuKyspe2ZvcihwPSh2PSh6PTI0LGI9dGhpcy52W25dLGIuTXgpLGIpLmg7ej49QlswXTt6LT1aWzJdKUNbSisrXT1wPj56JjI1NTtmb3IoQT0yNDtBPj1CWzBdO0EtPVpbMl0pQ1tKKytdPXY+PkEmMjU1fXJldHVybiB0aGlzLkE9QltaWzBdXSxDfSwyNzE2OTA0MzA2KSwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsCjM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV0pLFJSPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsKE9bMjFdKDQsQ2YsTEMpLAozMjcwMzMyMDkpXSxacT0oZnVuY3Rpb24oKXtnbG9iYWxUaGlzLnNjcnlwdD1mdW5jdGlvbihULGNhLEssaCxpYSxMLFUsZGEpe2Z1bmN0aW9uIFYoYil7ZnVuY3Rpb24gYyhIKXtmb3IodmFyIFc9MCxYPUgubGVuZ3RoOzY0PD1YOyl7dmFyIHUsbCxtPWUseD1hLHk9ZyxDPWYsbj1rLHY9cCx6PXEsRD1BO2ZvcihsPTA7bDwxNjtsKyspe3ZhciByPVcrNCpsO0JbbF09KDI1NSZIW3JdKTw8MjR8KDI1NSZIW3IrMV0pPDwxNnwoMjU1JkhbcisyXSk8PDh8MjU1JkhbciszXX1mb3IobD0xNjtsPDY0O2wrKyl7cj0oKHU9QltsLTJdKT4+PjE3fHU8PDE1KV4odT4+PjE5fHU8PDEzKV51Pj4+MTA7dmFyIEU9KCh1PUJbbC0xNV0pPj4+N3x1PDwyNSleKHU+Pj4xOHx1PDwxNCledT4+PjM7QltsXT0ocitCW2wtN118MCkrKEUrQltsLTE2XXwwKXwwfWZvcihsPTA7bDw2NDtsKyspcj0oKChuPj4+NnxuPDwyNileKG4+Pj4xMXxuPDwyMSleKG4+Pj4yNXxuPDw3KSkrKG4mdl5+biZ6KXwwKSsoRCsKKGRbbF0rQltsXXwwKXwwKXwwLEU9KChtPj4+MnxtPDwzMCleKG0+Pj4xM3xtPDwxOSleKG0+Pj4yMnxtPDwxMCkpKyhtJnhebSZ5XngmeSl8MCxEPXosej12LHY9bixuPUMrcnwwLEM9eSx5PXgseD1tLG09citFfDA7ZT1lK218MDthPWEreHwwO2c9Zyt5fDA7Zj1mK0N8MDtrPWsrbnwwO3A9cCt2fDA7cT1xK3p8MDtBPUErRHwwO1crPTY0O1gtPTY0fX12YXIgZD1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwKMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sZT0xNzc5MDMzNzAzLGE9MzE0NDEzNDI3NyxnPTEwMTM5MDQyNDIsZj0yNzczNDgwNzYyLGs9MTM1OTg5MzExOSxwPTI2MDA4MjI5MjQscT01Mjg3MzQ2MzUsQT0xNTQxNDU5MjI1LEI9QXJyYXkoNjQpOwpjKGIpO3ZhciBJPWIubGVuZ3RoJTY0O3ZhciBNPWIubGVuZ3RoLzUzNjg3MDkxMnwwLE49Yi5sZW5ndGg8PDMsZWE9STw1Nj81NjoxMjA7Yj1iLnNsaWNlKGIubGVuZ3RoLUksYi5sZW5ndGgpO2IucHVzaCgxMjgpO2ZvcihJKz0xO0k8ZWE7SSsrKWIucHVzaCgwKTtyZXR1cm4gYi5wdXNoKE0+Pj4yNCYyNTUpLGIucHVzaChNPj4+MTYmMjU1KSxiLnB1c2goTT4+PjgmMjU1KSxiLnB1c2goTT4+PjAmMjU1KSxiLnB1c2goTj4+PjI0JjI1NSksYi5wdXNoKE4+Pj4xNiYyNTUpLGIucHVzaChOPj4+OCYyNTUpLGIucHVzaChOPj4+MCYyNTUpLGMoYiksW2U+Pj4yNCYyNTUsZT4+PjE2JjI1NSxlPj4+OCYyNTUsZT4+PjAmMjU1LGE+Pj4yNCYyNTUsYT4+PjE2JjI1NSxhPj4+OCYyNTUsYT4+PjAmMjU1LGc+Pj4yNCYyNTUsZz4+PjE2JjI1NSxnPj4+OCYyNTUsZz4+PjAmMjU1LGY+Pj4yNCYyNTUsZj4+PjE2JjI1NSxmPj4+OCYyNTUsZj4+PjAmMjU1LGs+Pj4yNCYyNTUsaz4+PjE2JjI1NSwKaz4+PjgmMjU1LGs+Pj4wJjI1NSxwPj4+MjQmMjU1LHA+Pj4xNiYyNTUscD4+PjgmMjU1LHA+Pj4wJjI1NSxxPj4+MjQmMjU1LHE+Pj4xNiYyNTUscT4+PjgmMjU1LHE+Pj4wJjI1NSxBPj4+MjQmMjU1LEE+Pj4xNiYyNTUsQT4+PjgmMjU1LEE+Pj4wJjI1NV19ZnVuY3Rpb24gamEoYixjLGQpe2Z1bmN0aW9uIGUoKXtmb3IodmFyIHE9Zy0xO2ctNDw9cSYmIShmW3FdKyssZltxXTw9MjU1KTtxLS0pZltxXT0wfTY0PGIubGVuZ3RoJiYoYj1WKGIucHVzaD9iOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGIsMCkpKTt2YXIgYSxnPTY0K2MubGVuZ3RoKzQsZj1BcnJheShnKSxrPUFycmF5KDY0KSxwPVtdO2ZvcihhPTA7YTw2NDthKyspZlthXT01NDtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWZbYV1ePWJbYV07Zm9yKGE9MDthPGMubGVuZ3RoO2ErKylmWzY0K2FdPWNbYV07Zm9yKGE9Zy00O2E8ZzthKyspZlthXT0wO2ZvcihhPTA7YTw2NDthKyspa1thXT05Mjtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWtbYV1ePQpiW2FdO2Zvcig7MzI8PWQ7KWUoKSxwPXAuY29uY2F0KFYoay5jb25jYXQoVihmKSkpKSxkLT0zMjtyZXR1cm4gMDxkJiYoZSgpLHA9cC5jb25jYXQoVihrLmNvbmNhdChWKGYpKSkuc2xpY2UoMCxkKSkpLHB9ZnVuY3Rpb24ga2EoYixjLGQsZSl7dmFyIGEsZz1iWzBdXmNbZCsrXSxmPWJbMV1eY1tkKytdLGs9YlsyXV5jW2QrK10scD1iWzNdXmNbZCsrXSxxPWJbNF1eY1tkKytdLEE9Yls1XV5jW2QrK10sQj1iWzZdXmNbZCsrXSxJPWJbN11eY1tkKytdLE09Yls4XV5jW2QrK10sTj1iWzldXmNbZCsrXSxlYT1iWzEwXV5jW2QrK10sSD1iWzExXV5jW2QrK10sVz1iWzEyXV5jW2QrK10sWD1iWzEzXV5jW2QrK10sdT1iWzE0XV5jW2QrK10sbD1iWzE1XV5jW2QrK10sbT1nLHg9Zix5PWssQz1wLG49cSx2PUEsej1CLEQ9SSxyPU0sRT1OLE89ZWEsWT1ILFo9VyxhYT1YLGJhPXUsUD1sO2ZvcihkPTA7ZDw4O2QrPTIpbV49KGE9KFpePShhPShyXj0oYT0obl49KGE9bStaKTw8N3xhPj4+MjUpKwptKTw8OXxhPj4+MjMpK24pPDwxM3xhPj4+MTkpK3IpPDwxOHxhPj4+MTQsdl49KGE9KHhePShhPShhYV49KGE9KEVePShhPXYreCk8PDd8YT4+PjI1KSt2KTw8OXxhPj4+MjMpK0UpPDwxM3xhPj4+MTkpK2FhKTw8MTh8YT4+PjE0LE9ePShhPSh6Xj0oYT0oeV49KGE9KGJhXj0oYT1PK3opPDw3fGE+Pj4yNSkrTyk8PDl8YT4+PjIzKStiYSk8PDEzfGE+Pj4xOSkreSk8PDE4fGE+Pj4xNCxQXj0oYT0oWV49KGE9KERePShhPShDXj0oYT1QK1kpPDw3fGE+Pj4yNSkrUCk8PDl8YT4+PjIzKStDKTw8MTN8YT4+PjE5KStEKTw8MTh8YT4+PjE0LG1ePShhPShDXj0oYT0oeV49KGE9KHhePShhPW0rQyk8PDd8YT4+PjI1KSttKTw8OXxhPj4+MjMpK3gpPDwxM3xhPj4+MTkpK3kpPDwxOHxhPj4+MTQsdl49KGE9KG5ePShhPShEXj0oYT0oel49KGE9dituKTw8N3xhPj4+MjUpK3YpPDw5fGE+Pj4yMykreik8PDEzfGE+Pj4xOSkrRCk8PDE4fGE+Pj4xNCxPXj0oYT0oRV49KGE9KHJePShhPShZXj0KKGE9TytFKTw8N3xhPj4+MjUpK08pPDw5fGE+Pj4yMykrWSk8PDEzfGE+Pj4xOSkrcik8PDE4fGE+Pj4xNCxQXj0oYT0oYmFePShhPShhYV49KGE9KFpePShhPVArYmEpPDw3fGE+Pj4yNSkrUCk8PDl8YT4+PjIzKStaKTw8MTN8YT4+PjE5KSthYSk8PDE4fGE+Pj4xNDtjW2UrK109YlswXT1tK2d8MDtjW2UrK109YlsxXT14K2Z8MDtjW2UrK109YlsyXT15K2t8MDtjW2UrK109YlszXT1DK3B8MDtjW2UrK109Yls0XT1uK3F8MDtjW2UrK109Yls1XT12K0F8MDtjW2UrK109Yls2XT16K0J8MDtjW2UrK109Yls3XT1EK0l8MDtjW2UrK109Yls4XT1yK018MDtjW2UrK109Yls5XT1FK058MDtjW2UrK109YlsxMF09TytlYXwwO2NbZSsrXT1iWzExXT1ZK0h8MDtjW2UrK109YlsxMl09WitXfDA7Y1tlKytdPWJbMTNdPWFhK1h8MDtjW2UrK109YlsxNF09YmErdXwwO2NbZSsrXT1iWzE1XT1QK2x8MH1mdW5jdGlvbiBmYShiLGMsZCxlLGEpe2Zvcih2YXIgZz0wLGY9ZCsxNiooMiphLTEpLGs9CjE2O2stLTspYltnKytdPWNbZisrXTtmb3IoZz0wO2c8MiphO2crPTIpa2EoYixjLGQrMTYqZyxlKzgqZyksa2EoYixjLGQrMTYqZysxNixlKzgqZysxNiphKX1mdW5jdGlvbiBsYShiKXtmb3IodmFyIGM9W10sZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iLmNoYXJDb2RlQXQoZCk7aWYoZTwxMjgpYy5wdXNoKGUpO2Vsc2V7aWYoZTwyMDQ4KWMucHVzaCgxOTJ8ZT4+Nik7ZWxzZXtpZihlPDU1Mjk2KWMucHVzaCgyMjR8ZT4+MTIpO2Vsc2V7aWYoZD49Yi5sZW5ndGgtMSl0aHJvdyBFcnJvcigiaW52YWxpZCBzdHJpbmciKTtkKys7ZT0oMTAyMyZlKTw8MTA7ZXw9MTAyMyZiLmNoYXJDb2RlQXQoZCk7ZSs9NjU1MzY7Yy5wdXNoKDI0MHxlPj4xOCk7Yy5wdXNoKDEyOHxlPj4xMiY2Myl9Yy5wdXNoKDEyOHxlPj42JjYzKX1jLnB1c2goMTI4fDYzJmUpfX1yZXR1cm4gY31mdW5jdGlvbiBtYShiKXtmb3IodmFyIGM9MDtjPDMyKmg7YysrKXt2YXIgZD1iKzQqYzt0W0YrY109KDI1NSZHW2QrCjNdKTw8MjR8KDI1NSZHW2QrMl0pPDwxNnwoMjU1JkdbZCsxXSk8PDh8KDI1NSZHW2QrMF0pPDwwfX1mdW5jdGlvbiBuYShiLGMpe2Zvcig7YjxjO2IrPTIpe2Zvcih2YXIgZD1TLGU9MzIqaCpiLGE9dCxnPUYsZj0zMipoO2YtLTspZFtlKytdPWFbZysrXTtmYShoYSx0LEYsUSxoKTtkPVM7ZT0zMipoKihiKzEpO2E9dDtnPVE7Zm9yKGY9MzIqaDtmLS07KWRbZSsrXT1hW2crK107ZmEoaGEsdCxRLEYsaCl9fWZ1bmN0aW9uIG9hKGIsYyl7Zm9yKDtiPGM7Yis9Mil7dmFyIGQ9dFtGKzE2KigyKmgtMSldJkotMSxlPXQsYT1GLGc9UztkKj0zMipoO2Zvcih2YXIgZj0zMipoO2YtLTspZVthKytdXj1nW2QrK107ZmEoaGEsdCxGLFEsaCk7ZD10W1ErMTYqKDIqaC0xKV0mSi0xO2U9dDthPVE7Zz1TO2QqPTMyKmg7Zm9yKGY9MzIqaDtmLS07KWVbYSsrXV49Z1tkKytdO2ZhKGhhLHQsUSxGLGgpfX1mdW5jdGlvbiBwYShiKXtmb3IodmFyIGM9MDtjPDMyKmg7YysrKXt2YXIgZD10W0YrY107R1tiKwo0KmMrMF09ZD4+PjAmMjU1O0dbYis0KmMrMV09ZD4+PjgmMjU1O0dbYis0KmMrMl09ZD4+PjE2JjI1NTtHW2IrNCpjKzNdPWQ+Pj4yNCYyNTV9fWZ1bmN0aW9uIHFhKGIsYyxkLGUsYSl7KGZ1bmN0aW9uIGYoKXtyYShmdW5jdGlvbigpe2UoYixiK2Q8Yz9iK2Q6Yyk7KGIrPWQpPGM/ZigpOmEoKX0pfSkoKX1mdW5jdGlvbiBzYShiKXt2YXIgYz1qYShULEcsaWEpO3JldHVybiJiYXNlNjQiPT09Yj9mdW5jdGlvbihkKXtmb3IodmFyIGUsYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuc3BsaXQoIiIpLGc9ZC5sZW5ndGgsZj1bXSxrPTA7azxnOyllPSgoazxnP2RbaysrXTowKTw8MTYpKygoazxnP2RbaysrXTowKTw8OCkrKGs8Zz9kW2srK106MCksZi5wdXNoKGFbZT4+PjE4JjYzXSksZi5wdXNoKGFbZT4+PjEyJjYzXSksZi5wdXNoKGFbZT4+PjYmNjNdKSxmLnB1c2goYVtlPj4+MCY2M10pO3JldHVybiAwPGclCjMmJihmW2YubGVuZ3RoLTFdPSI9IixnJTM9PTEmJihmW2YubGVuZ3RoLTJdPSI9IikpLGYuam9pbigiIil9KGMpOiJoZXgiPT09Yj9mdW5jdGlvbihkKXtmb3IodmFyIGU9IjAxMjM0NTY3ODlhYmNkZWYiLnNwbGl0KCIiKSxhPWQubGVuZ3RoLGc9W10sZj0wO2Y8YTtmKyspZy5wdXNoKGVbZFtmXT4+PjQmMTVdKSxnLnB1c2goZVtkW2ZdPj4+MCYxNV0pO3JldHVybiBnLmpvaW4oIiIpfShjKToiYmluYXJ5Ij09PWI/bmV3IFVpbnQ4QXJyYXkoYyk6Y312YXIgUj0xO2lmKCJvYmplY3QiPT10eXBlb2YgSyl7aWYoNDxhcmd1bWVudHMubGVuZ3RoKXRocm93IEVycm9yKCJzY3J5cHQ6IGluY29ycmVjdCBudW1iZXIgb2YgYXJndW1lbnRzIik7dmFyIHc9SztpZihVPWgsdm9pZCAwPT09KEs9dy5sb2dOKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3Lk4pdGhyb3cgRXJyb3IoInNjcnlwdDogbWlzc2luZyBOIHBhcmFtZXRlciIpO2lmKHcuTjwyfHx3Lk4+NDI5NDk2NzI5NSl0aHJvdyBFcnJvcigic2NyeXB0OiBOIGlzIG91dCBvZiByYW5nZSIpOwppZigwIT0ody5OJncuTi0xKSl0aHJvdyBFcnJvcigic2NyeXB0OiBOIGlzIG5vdCBhIHBvd2VyIG9mIDIiKTtLPU1hdGgubG9nKHcuTikvTWF0aC5MTjJ9Uj13LnB8fDE7aD13LnI7aWE9dy5ka0xlbnx8MzI7TD13LmludGVycnVwdFN0ZXB8fDA7ZGE9dy5lbmNvZGluZ31pZihSPDEpdGhyb3cgRXJyb3IoInNjcnlwdDogaW52YWxpZCBwIik7aWYoaDw9MCl0aHJvdyBFcnJvcigic2NyeXB0OiBpbnZhbGlkIHIiKTtpZihLPDF8fDMxPEspdGhyb3cgRXJyb3IoInNjcnlwdDogbG9nTiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMzEiKTt2YXIgdCxTLEo9MTw8Sz4+PjA7aWYoMTA3Mzc0MTgyNDw9aCpSfHwzLjM1NTQ0MzE5OTIxODc1RTcvUjxofHwxLjY3NzcyMTU5OTYwOTM3NUU3PGh8fDMuMzU1NDQzMTk5MjE4NzVFNy9oPEopdGhyb3cgRXJyb3IoInNjcnlwdDogcGFyYW1ldGVycyBhcmUgdG9vIGxhcmdlIik7InN0cmluZyI9PXR5cGVvZiBUJiYoVD1sYShUKSk7InN0cmluZyI9PXR5cGVvZiBjYSYmCihjYT1sYShjYSkpO3ZhciBoYT0idW5kZWZpbmVkIiE9dHlwZW9mIEludDMyQXJyYXk/KHQ9bmV3IEludDMyQXJyYXkoNjQqaCksUz1uZXcgSW50MzJBcnJheSgzMipKKmgpLG5ldyBJbnQzMkFycmF5KDE2KSk6KHQ9W10sUz1bXSxBcnJheSgxNikpO3ZhciBHPWphKFQsY2EsMTI4KlIqaCk7dmFyIEY9MCxRPTMyKmgscmE9InVuZGVmaW5lZCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOnNldFRpbWVvdXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEwmJihkYT1VLFU9TCxMPTFFMyk7TDw9MD9mdW5jdGlvbigpe2Zvcih2YXIgYj0wO2I8UjtiKyspbWEoMTI4KmIqaCksbmEoMCxKKSxvYSgwLEopLHBhKDEyOCpiKmgpO1Uoc2EoZGEpKX0oKTpmdW5jdGlvbiBkKGMpe21hKDEyOCpjKmgpO3FhKDAsSiwyKkwsbmEsZnVuY3Rpb24oKXtxYSgwLEosMipMLG9hLGZ1bmN0aW9uKCl7cGEoMTI4KmMqaCk7YysxPFI/cmEoZnVuY3Rpb24oKXtkKGMrMSl9KTpVKHNhKGRhKSl9KX0pfSgwKX19LmNhbGwoZ2xvYmFsVGhpcyksCmdsb2JhbFRoaXMpLnNjcnlwdCx6QkQ9ekJEfHx7aWQ6UkFsKCl9LFF2PW5ldyBUZXh0RW5jb2RlcixLY2g9bmV3IE1hcChbW1UxLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4oKGtoWyhLPVsoej1CLnBELCJKIiksMzUsMV0sSylbMF1dKCkudj1nWzI0XSgxMywwLHopLGRrW0tbMF1dKCkpLmluaXQobWsoQi52KSksaylbS1sxXV0oOSxLWzJdLDU4NixCLk0pfV0sW21MLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7cmV0dXJuIEdbMTNdKDgsZnVuY3Rpb24ocixWLFApe2lmKChWPVsyLChQPVsicGVyZm9ybWFuY2UiLDEsIm5vdyJdLG51bGwpLDBdLHIpLk09PVBbMV0pcmV0dXJuIEM9KHo9KEw9c2VsZik9PVZbUFsxXV0/dm9pZCAwOihmPUxbUFswXV0pPT1WW1BbMV1dP3ZvaWQgMDpmLm1lbW9yeSk/ei51c2VkSlNIZWFwU2l6ZTp2b2lkIDAsTj1wZXJmb3JtYW5jZVtQWzJdXSgpLHIuQShWWzBdKSxBPUIudixRPW9DKEEpLGI9bmV3IGZtKFEpLHIudihZWzNdKDQwLApWWzJdLFZbUFsxXV0sNSwiOiIsYiksNCk7aWYoci5NIT1WWzBdKXJldHVybiBLPXIuWCxuPXBlcmZvcm1hbmNlW1BbMl1dKCksSj16P3oudXNlZEpTSGVhcFNpemU6dm9pZCAwLFc9eWEobi1OKSx2PW5hdmlnYXRvci5kZXZpY2VNZW1vcnl8fFZbMl0seD1DIT09dm9pZCAwJiZKIT09dm9pZCAwP0otQzp2b2lkIDAsci5yZXR1cm4obmV3IExtKHgsMSx2LFcsSykpO3JldHVybihwPShaPShyLmkoKSx5YShwZXJmb3JtYW5jZVtQWzJdXSgpLU4pKSxuYXZpZ2F0b3IuZGV2aWNlTWVtb3J5KXx8VlsyXSxyKS5yZXR1cm4obmV3IExtKHZvaWQgMCw2LHAsWixbXSkpfSl9XV0pLEprWj1zZWxmLHdqPW5ldyBNZXNzYWdlQ2hhbm5lbCxDMTg9KG5ldyAocG9zdE1lc3NhZ2UocnQsW3dqLnBvcnQyXSksR0gpKHdqLnBvcnQxLEtjaCxKa1osR2wubG9jYXRpb24ub3JpZ2luLHdqKSxFVSkoKSxtNj1KZUcoKSxCZj0oKCgoKEY9WVUucHJvdG90eXBlLEYuS1g9ZnVuY3Rpb24oQil7dGhpcy52LnNlbmQoaUYsCkIpfSxGLlk3PWZ1bmN0aW9uKCl7dGhpcy52LnNlbmQoWUEpfSxGKS5vRD1mdW5jdGlvbigpe3RoaXMudi5zZW5kKCRBKX0sRi5NWj1mdW5jdGlvbihCLHope3JldHVybiB0aGlzLnYuc2VuZChxTixuZXcgRnkoe3Zpc2libGU6Qix1eTp6fSkpfSxGKS5CRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7dj1EW3A9WzIwLChDPUN8fGZ1bmN0aW9uKCl7fSwicmVwbGFjZSIpLDNdLEE9QXx8ZnVuY3Rpb24oKXt9LGI9Ynx8ZnVuY3Rpb24oKXt9LDExXSgxMCkubmFtZVtwWzFdXShnNixoJCksdGhpcy52PW1bcFswXV0oMTgsImh0dHAiLERbMTFdKHBbMl0pLnBhcmVudC5mcmFtZXNbdl0sa1s0N10oNSxZayksbmV3IE1hcChbW1EwLENdLFt3aSxiXSxbVk8sQV0sW1tqdCxUZF0sel0sW3FOLEJdLFtZQSxLXSxbdVYsSl1dKSx0aGlzKX0sRi52ej1mdW5jdGlvbihCKXt0aGlzLnYuc2VuZChxTixuZXcgRnkoe3Zpc2libGU6ITAsdXk6QixyZXNpemU6ITB9KSl9LEYub25FcnJvcj1mdW5jdGlvbihCKXt0aGlzLnYuc2VuZCh5ZywKbmV3IHlWKEIpKX0sRi5qOT1mdW5jdGlvbihCLHope3JldHVybiB0aGlzLnYuc2VuZChtTCxCLHopfSxGKS5iUj1mdW5jdGlvbigpe3RoaXMudi5zZW5kKGNEKX0sRi53dD1mdW5jdGlvbigpe30sRi5wRT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuc2VuZChTQyl9LEYpLmR0PWZ1bmN0aW9uKCl7cmV0dXJuIEMxOH0sb0opKCksS1E9U0coKSxHRj1URTgoKSxXaz0oKCgoKChGPSgoKChGPSgoKCgoKCgoKCgoKChPWzIxXSgyLGlWLFdoKSxpVi5wcm90b3R5cGUpLlUzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQX0sTylbMjFdKDQsdkYsVCksdkYucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTZdKDExLGwsdGhpcywzLFFCKX0sdkYpLnByb3RvdHlwZS5VMz1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMyx0aGlzLDEsbCl9LHZGLlJUPVBNcSgpLHZGKS5wcm90b3R5cGUuVD1SWzQ4XSg1LFsiZHJlc3AiLENYLEFHLGckLFRhLFd4LENYXSksTylbMjFdKDQsdVEsYmQpLE9bMjFdKDQsCkh0LGJkKSxPWzIxXSgxLHhMLFQpLHhMLnByb3RvdHlwZS5UPVJbNDhdKDgsWzAsVmQsUVRdKSxPWzIxXSgzLGNkLHdFKSxjZC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihCLHopeyhHWzQ5XSg5LCExLCh6PVsiR1YiLDMsIlRkIl0saGEpLGRrLkooKSkmJlJbNDVdKDUwLHpbMV0sNSksQiYma1s0N10oNDUsdGhpcyxCKSx0aGlzKS52LnYuQkYodGhpcy5lbC5iaW5kKHRoaXMpLHRoaXNbelsyXV0uYmluZCh0aGlzKSx0aGlzLnJmLmJpbmQodGhpcyksdGhpcy5Mei5iaW5kKHRoaXMpLHRoaXMuRC5iaW5kKHRoaXMpLHRoaXNbelswXV0uYmluZCh0aGlzKSx0aGlzLmVJLmJpbmQodGhpcykpfSxjZCkucHJvdG90eXBlLkk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7cmV0dXJuKHg9dGhpcyxHKVsxM10oMzMsZnVuY3Rpb24oTCxyLFYpe3I9KFY9WzEsIlUiLDJdLFs1LG51bGwsM10pO3N3aXRjaChMLk0pe2Nhc2UgVlswXTppZighKGY9KHA9KEM9KG49UHJvbWlzZS5yZXNvbHZlKHJbVlswXV0pLApQcm9taXNlLnJlc29sdmUoW251bGwsbnVsbF0pKSxyW1ZbMF1dKSxXPXJbVlswXV0sbmV3IEhHKSx4KS5pKXtMLkdfKFZbMl0pO2JyZWFrfXJldHVybiBMLkEocltWWzJdXSksTC52KFByb21pc2UucmFjZShbeC5pLFByb21pc2UucmVzb2x2ZShyW1ZbMF1dKV0pLHJbMF0pO2Nhc2UgclswXTppZih2PUwuWCltW1ZbMl1dKDMzLDAsZixWWzBdLHYuRm4sZ1tWWzJdXS5iaW5kKG51bGwsMjEpKSxrWzZdKDU3LFZbMl0sZix2LldXKSxtWzM4XSgxMiwiOiAiLDQsZix2LnVYKSx2LmlSIT1yW1ZbMF1dJiZrWzZdKDI1LDYsZix2LmlSKSxIWzBdKDQ2LGYscltWWzJdXSx2LmxYfHxWWzBdKTtlbHNlIEhbMF0oNjQsZixyW1ZbMl1dLFZbMl0pO0wuRihWWzJdKTticmVhaztjYXNlIHJbVlsyXV06TC5pKCksSFswXSg1MyxmLHJbVlsyXV0scltWWzJdXSk7Y2FzZSBWWzJdOnJldHVybiB4W1ZbMV1dJiYoQT14LnYudi5wRSgpKSYmKG49QS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBudWxsfSkpLHguWCE9CnJbVlswXV0mJihDPURbN10oOSwwLDYsVlsyXSwxOCx4KS5jYXRjaChmdW5jdGlvbigpe3JldHVybltudWxsLG51bGxdfSkpLFo9Z1sxMl0uYmluZChudWxsLFZbMF0pLEwudihQcm9taXNlLmFsbChbbixDXSksNik7Y2FzZSA2OlE9WihMLlgpLEo9US5uZXh0KCkudmFsdWUsYj1RLm5leHQoKS52YWx1ZSxBcnJheS5pc0FycmF5KGIpJiZiLmxlbmd0aD09PTImJihOPWdbMTJdKDQsYiksVz1OLm5leHQoKS52YWx1ZSxwPU4ubmV4dCgpLnZhbHVlKSxtWzE1XShWWzBdLDE4LHAseCxLLFcseixCLEo/Si5yZXF1ZXN0Om51bGwseC5YPT1yW1ZbMF1dP251bGw6WVsyNV0oOCxWWzJdLDQsWVsxM10oVlsyXSxyW1ZbMl1dLG5ldyB1cSxtWzQ3XSg0OCw3LHJbMF0sRE8uZ2V0KHguWCkpKSksZ1sxNl0oMjYsdm9pZCAwLGYscltWWzJdXSxRQik/Zjp2b2lkIDApLEwuUigpfX0pfSxjZC5wcm90b3R5cGUuQz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXsoYj0oKChBPVsxRTMsIlgiLCJGIl0sdGhpcy52KVtBWzFdXT0KR0YsSClbNDRdKDEzLCIiLG51bGwsdGhpcy5NLEIsdGhpc1tBWzJdXSksdGhpcykuTS52LGIuVz10aGlzLmwsZSlbMTRdKDM1LCJoIiwhMCxiLHosSyxDKSx0aGlzLk89T1syXSg1Nix0aGlzLmU5LEoqQVswXSx0aGlzKX0sY2QucHJvdG90eXBlLlM9ZnVuY3Rpb24oQix6LEssSixDKXtpZihnWzE2XSg5MCxsLChKPVsxMyw5LChDPVshMSwxOSwieWUiXSwxMCldLEIpLDQpIT1udWxsKXRoaXMudi5YPUtRLHRoaXMudi52Lm9uRXJyb3IoQi5zMygpKTtlbHNlIGlmKEs9UlsyNl0oMjIsQiwxLGwpLGtbNDddKDQyLHRoaXMsSyksWVtDWzFdXSg2OCwyLEIpfHxZW0NbMV1dKDM3LDExLEIpKWVbMjZdKDUsbnVsbCxCLlZBKCkpLHo9bmV3IEpQKDYwLEssbnVsbCxudWxsLFJbMjZdKDE0LEIsSlsxXSxsKSxudWxsLEIuYmsoKT9CLmJrKClbQ1syXV0oKTpudWxsLCEhWVtDWzFdXSg2OCxKWzJdLEIpKSx0aGlzLnYudi5LWCh6KSxEWzQzXSg4NCx0aGlzLENbMF0pLHRoaXMudi5YPUJmO2Vsc2UgR1sxMF0oMTEsCkpbMF0sUls0OF0oNzQsQixnbSw3LGwpLHRoaXMsdGhpcy5NLnYuZ2V0TmFtZSgpIT11Ril9LGNkLnByb3RvdHlwZS5EPWZ1bmN0aW9uKEIseixLLEosQyxiKXtpZighKEs9WzIzLChiPVs0LDAsNV0sbnVsbCksITBdLEIudikpcmV0dXJuITE7dHJ5e3JldHVybiB6PW1rKEIudiksSFtiWzBdXSg5MSxLW2JbMV1dLHosbCx2b2lkIDAsZVszNV0uYmluZChudWxsLGJbMF0pKSE9S1sxXSYmKEM9ZGsuSigpLmdldCgpLEo9SFtiWzBdXSg5MSxLW2JbMV1dLHosbCxRQixlWzM1XS5iaW5kKG51bGwsYlsyXSkpLHlbMzhdKGJbMF0sbCxHWzQyXSg1NCxLWzFdLCExLEopLEMsS1tiWzFdXSksZGsuSigpLmluaXQoQykpLEtbMl19Y2F0Y2goQSl7cmV0dXJuITF9fSxGPWNkLnByb3RvdHlwZSxjZC5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXt3RS5wcm90b3R5cGUuWi5jYWxsKHRoaXMpfSxGKS5lST1mdW5jdGlvbigpe3JldHVybiBnMFsyXS5jYWxsKHRoaXMsMTApfSxGKS5lOT1mdW5jdGlvbigpe3JldHVybiBtWzNdLmNhbGwodGhpcywKMjMpfSxGKS5Mej1mdW5jdGlvbihCLHope3JldHVybiB5WzEzXS5jYWxsKHRoaXMsNjQsQix6KX0sRi5lbD1mdW5jdGlvbihCKXtyZXR1cm4ga1sxM10uY2FsbCh0aGlzLDEsQil9LGNkKS5wcm90b3R5cGUuQT1mdW5jdGlvbihCKXsodGhpc1tCPVsyLCJ2Iiwib25FcnJvciJdLEJbMV1dLlg9QmYsdGhpc1tCWzFdXSlbQlsxXV1bQlsyXV0oQlswXSl9LGNkKS5wcm90b3R5cGUuZz1mdW5jdGlvbihCKXsoQj1bNDMsInYiLDY4XSx0aGlzW0JbMV1dW0JbMV1dLktYKG5ldyBKUCg2MCx0aGlzLk1bQlsxXV0uY3ooKSkpLEQpW0JbMF1dKEJbMl0sdGhpcywhMSl9LEYucmY9ZnVuY3Rpb24oQil7cmV0dXJuIGVbMjldLmNhbGwodGhpcywxNixCKX0sY2QucHJvdG90eXBlKSxGLkRPPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBtWzldLmNhbGwodGhpcywxLEIseixLLEopfSxGKS5HVj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIHlbMTJdLmNhbGwodGhpcyw0OSxCLHosSyxKLEMsYil9LApGLlRkPWZ1bmN0aW9uKEIpe3JldHVybiBSWzE1XS5jYWxsKHRoaXMsOCxCKX0sRi5WdD1mdW5jdGlvbihCLHope3JldHVybiBZWzNdLmNhbGwodGhpcywxLEIseil9LEYpLnI3PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIHlbNDhdLmNhbGwodGhpcyw1MixCLHosSyxKLEMpfSxnKVs0Nl0oNjQsZnVuY3Rpb24oQix6KXtpZih3aW5kb3cuUmVjYXB0Y2hhRW1iZWRkZXIpUmVjYXB0Y2hhRW1iZWRkZXIub25FcnJvcihCLHopfSwicmVjYXB0Y2hhLmZyYW1lLmVtYmVkZGFibGUuRXJyb3JSZW5kZXIuZXJyb3JSZW5kZXIiKSx3WikucHJvdG90eXBlLEYpLktYPWZ1bmN0aW9uKEIpe3dpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIudmVyaWZ5Q2FsbGJhY2smJlJlY2FwdGNoYUVtYmVkZGVyLnZlcmlmeUNhbGxiYWNrKEIucmVzcG9uc2UpfSxGLnZ6PWZ1bmN0aW9uKEIpe2lmKHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIub25SZXNpemUpUmVjYXB0Y2hhRW1iZWRkZXIub25SZXNpemUoQi53aWR0aCwKQi5oZWlnaHQpO1Byb21pc2UucmVzb2x2ZShuZXcgRnkoe3Zpc2libGU6ITAsdXk6QixyZXNpemU6ITB9KSl9LEYpLlk3PWZ1bmN0aW9uKCl7aWYod2luZG93LlJlY2FwdGNoYUVtYmVkZGVyJiZSZWNhcHRjaGFFbWJlZGRlci5vbkNoYWxsZW5nZUV4cGlyZWQpUmVjYXB0Y2hhRW1iZWRkZXIub25DaGFsbGVuZ2VFeHBpcmVkKCl9LEYuTVo9ZnVuY3Rpb24oQix6KXtpZih3aW5kb3cuUmVjYXB0Y2hhRW1iZWRkZXImJlJlY2FwdGNoYUVtYmVkZGVyLm9uU2hvdylSZWNhcHRjaGFFbWJlZGRlci5vblNob3coQix6LndpZHRoLHouaGVpZ2h0KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBGeSh7dmlzaWJsZTpCLHV5Onp9KSl9LEYpLkJGPWZ1bmN0aW9uKEIseil7KHRoaXMuTT16LHRoaXMuWD1CLHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIuY2hhbGxlbmdlUmVhZHkpJiZSZWNhcHRjaGFFbWJlZGRlci5jaGFsbGVuZ2VSZWFkeSgpfSxGLm9EPWZ1bmN0aW9uKCl7fSwKRi5vbkVycm9yPWZ1bmN0aW9uKEIpe2lmKHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIub25FcnJvcilSZWNhcHRjaGFFbWJlZGRlci5vbkVycm9yKEIsITApfSxGLmo5PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LEYucEU9ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpfSxGKS53dD1mdW5jdGlvbihCLHosSyl7KHRoaXMudj1CLHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlcikmJlJlY2FwdGNoYUVtYmVkZGVyLnJlcXVlc3RUb2tlbiYmUmVjYXB0Y2hhRW1iZWRkZXIucmVxdWVzdFRva2VuKHosSyl9LEYuZHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbTZ9LEYuYlI9ZnVuY3Rpb24oKXt9LE9bMjFdKDIsJFUsblEpLCRVLnByb3RvdHlwZSkuVTM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YLnZhbHVlfSxxZSkoKSxJUz1bImZpbnB1dCIsQ1gsb0ssQ1gsMSwoKE9bMjFdKDMsaHosVCksaHopLlJUPXdjKCksTmYpLElfLC0xXSxiRnE9SFsxMl0oNSwKMTAwLGh6LChoei5wcm90b3R5cGUuVD1SWzQ4XSg0LElTKSxJUykpLEZtPVsoKGdbNDZdKDY1LGZ1bmN0aW9uKEIseil7bmV3IHVKKCh6PW5ldyBoeihvQyhCKSkseikpfSwicmVjYXB0Y2hhLmZyYW1lLmVtYmVkZGFibGUuTWFpbi5pbml0IiksZylbNDZdKDgxLGZ1bmN0aW9uKEIseil7KHo9bmV3IGh6KG9DKEIpKSwobmV3IHdOKHopKS52KS5pbml0KFJbMjZdKDE1LHosMSxsKSl9LCJyZWNhcHRjaGEuZnJhbWUuTWFpbi5pbml0IiksMCksVGEsWzAsQ1gsLTEsQlosZyQsSV8sUVQsLTJdLENYXSxBa3g9WzAsQ1gsLTQsWzAsQ1gsRm1dLFswLENYLEZtLFFUXSxbMCxDWCwtMV0sWzAsQ1gsRm1dLFswLENYLEZtXSxbMCxGbV1dLHFfPSgoT1syMV0oNixoTCxUKSxoTCkucHJvdG90eXBlLlQ9Uls0OF0oNCxbMCxDWCwtNixBa3gsQ1gsLTFdKSxIWzEyXSg2LDEwMCx0TCwkSSkpLHZueD0oT1syMV0oMSxkaSxiZCksdm54KXx8e2lkOkZCKCl9LFRCMz0oKCgoKE9bMjFdKDUsYzYsd0UpLGM2KS5wcm90b3R5cGUuaW5pdD0KZnVuY3Rpb24oQix6LEssSil7KEs9KCh6PShCPShKPVsiUiIsInp6bWIiLCJNIl0sdGhpc1tKWzBdXSkuYmluZCh0aGlzKSx0aGlzW0pbMl1dKSx6KVtKWzJdXT10aGlzLkMuYmluZCh0aGlzKSx6LnY9QixHbFtKWzFdXSkpPT1udWxsfHxLLnp6cmQoKX0sYzYucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihCLHosSyl7KHo9R2xbKEI9Z1szNV0oNTMsKEs9WyJ6enJzIiwienptYiIsInYiXSx0aGlzKVtLWzJdXSksSylbMV1dKT09bnVsbHx8eltLWzBdXShCLndpZHRoLEIuaGVpZ2h0KX0sYzYpLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYodj1nWzE2XSg4OSwobj1bMTQsImkiLChKPVsoSz10aGlzLDEpLCEwLCIiXSwiWCIpXSx2b2lkIDApLEIsNCksdiE9bnVsbCl0aGlzLk0ub25FcnJvcih2KTtlbHNle1E9KEM9KEE9KHo9KHRoaXMubD0oKHRoaXMuQT1iPWVbMl0oMzgsSlswXSx2b2lkIDAsQiksdGhpcy52KVtuWzJdXS52YWx1ZT1iLHRoaXNbblsyXV09CkdGLHRoaXMuTz1wZXJmb3JtYW5jZS5ub3coKSxwZXJmb3JtYW5jZS5ub3coKSksZSlbMl0oMzMsMTAsdm9pZCAwLEIpLHA9Qi5WQSgpLHA9PW51bGw/MDpOdW1iZXIocCkpLEhbNDRdKG5bMF0sSlsyXSxudWxsLHRoaXMudix6KSx2b2lkIDApLHRoaXMudi52KTt0cnl7Qz1OOVooa1s0NV0oMTMsWVszNF0oMywxMixCKXx8SlsyXSkpfWNhdGNoKFope3RoaXMuTS5vbkVycm9yKEpbMF0pO3JldHVybn10aGlzW2VbblswXV0oMzQsImgiLEpbMV0sUSxlWzJdKDM1LDExLHZvaWQgMCxCKSxDP0M6dm9pZCAwKSxuWzFdXSYmKGtbMTZdKDYzLHRoaXNbblsxXV0pLHRoaXNbblsxXV09bnVsbCksQT4wJiYodGhpc1tuWzFdXT1PWzJdKDcsZnVuY3Rpb24oWil7Sy5YPT09R0YmJihLLlg9S1EsKFo9R2wuenptYik9PW51bGx8fFouenpjZSgpKX0sQSoxRTMpKSx5WzI0XSg3LG51bGwsSlsxXSxnWzM1XSg1NCx0aGlzLnYpKX19LGM2KS5wcm90b3R5cGUuVTM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSwKYzYpLnByb3RvdHlwZS5DPWZ1bmN0aW9uKEIpe0ImJnRoaXMudi52JiZ0aGlzLnYudi5VMChCLnZpc2libGUpfSxUQjN8fHtpZDpzQjMoKX0pLGo4OD0oU0YucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oQix6KXsoej1HbC56em1iKT09bnVsbHx8ei56emVyKEIpfSxqODh8fHtpZDpNZCgpfSk7Z1s0Nl0oNjQsZnVuY3Rpb24oQix6KXt6PWJGcShrWzQ1XSgxNSxCKSksKG5ldyBHOGgoeikpLmNvbnRyb2xsZXIuaW5pdCgpfSwicmVjYXB0Y2hhLmZyYW1lLm1vYmlsZS5NYWluLmluaXQiKTt9KS5jYWxsKHRoaXMpOwo="}},"time_used":128,"timings":{"blocked":-1,"dns":3,"connect":15,"send":0,"wait":16,"receive":62,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DW9_RXAq.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.528Z","timestamp":1785139669528,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DW9_RXAq.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"2177-654aa2b830cfa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2299\r\nKeep-Alive: timeout=5, max=96\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":8567,"size_decoded":2650,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"81013dd21e4bb2999171243f246152e3","sha1":"457eca2c6722dc13598ebca2d6db268eae58ea39","sha256":"e628dedd18faa8d1e5c6c9847572ce2c151c30d9bbe79fe3774afad70ee78785","sha512":"778cec7eb150c7807d6ec01801e1a8fc51b10b2d20d9cf1f2732b2d9a53050822f2c807ab8d190a57201859d9cb7e9a7ef1db3d03d69529a4974b0fc8ac1e2b8","ssdeep":"192:3ePrT8G4AHNkUB3QuOot+gEW+qtYnZ4cytXyC:36PnnXOrW+JZ4cAT","tlshash":"8e02e046f2f618262763f4755f5b80192a260b0b0fa4bed43a4c16544f0d83ca7f67ed","first_seen":"2025-10-23T03:46:52.446547Z","last_seen":"2026-07-27T11:49:48.961342Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsgayBhcyBSLCBmIGFzIEwsIGQgYXMgVCwgaCBhcyBxIH0gZnJvbSAiLi9DaEVySm4wNy5qcyI7CmltcG9ydCB7IFYgYXMgSyB9IGZyb20gIi4vQzEwZGJYM2suanMiOwppbXBvcnQgeyBwIGFzICQgfSBmcm9tICIuL1pmTlppeUNtLmpzIjsKaW1wb3J0IHsKICAkIGFzIHosCiAgYkQgYXMgTSwKICBhMCBhcyBYLAogIGExIGFzIEUsCiAgYWMgYXMgRywKICBzIGFzIHIsCiAgciBhcyB5LAogIGFqIGFzIEgsCiAgaiBhcyBoLAogIGFnIGFzIEosCiAgYTUgYXMgUSwKICBiMyBhcyBVLAogIGYgYXMgcywKICBGIGFzIFcsCiAgYTIgYXMgViwKICBiWCBhcyBrLAp9IGZyb20gIi4vU20ybUNmREUuanMiOwppbXBvcnQgeyBtIGFzIFksIHUgYXMgWiB9IGZyb20gIi4vQjhUeFR5YWsuanMiOwpjb25zdCBlZSA9IHooCiAgICB7CiAgICAgIGF1dG9mb2N1czogQm9vbGVhbiwKICAgICAgZGl2aWRlcjogU3RyaW5nLAogICAgICBmb2N1c0FsbDogQm9vbGVhbiwKICAgICAgbGFiZWw6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiJHZ1ZXRpZnkuaW5wdXQub3RwIiB9LAogICAgICBsZW5ndGg6IHsgdHlwZTogW051bWJlciwgU3RyaW5nXSwgZGVmYXVsdDogNiB9LAogICAgICBtb2RlbFZhbHVlOiB7IHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sIGRlZmF1bHQ6IHZvaWQgMCB9LAogICAgICBwbGFjZWhvbGRlcjogU3RyaW5nLAogICAgICB0eXBlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogIm51bWJlciIgfSwKICAgICAgLi4uWSgpLAogICAgICAuLi5SKCksCiAgICAgIC4uLk0oTCh7IHZhcmlhbnQ6ICJvdXRsaW5lZCIgfSksIFsKICAgICAgICAiYmFzZUNvbG9yIiwKICAgICAgICAiYmdDb2xvciIsCiAgICAgICAgImNsYXNzIiwKICAgICAgICAiY29sb3IiLAogICAgICAgICJkaXNhYmxlZCIsCiAgICAgICAgImVycm9yIiwKICAgICAgICAibG9hZGluZyIsCiAgICAgICAgInJvdW5kZWQiLAogICAgICAgICJzdHlsZSIsCiAgICAgICAgInRoZW1lIiwKICAgICAgICAidmFyaWFudCIsCiAgICAgIF0pLAogICAgfSwKICAgICJWT3RwSW5wdXQiCiAgKSwKICBvZSA9IFgoKSh7CiAgICBuYW1lOiAiVk90cElucHV0IiwKICAgIHByb3BzOiBlZSgpLAogICAgZW1pdHM6IHsKICAgICAgZmluaXNoOiAodCkgPT4gITAsCiAgICAgICJ1cGRhdGU6Zm9jdXNlZCI6ICh0KSA9PiAhMCwKICAgICAgInVwZGF0ZTptb2RlbFZhbHVlIjogKHQpID0+ICEwLAogICAgfSwKICAgIHNldHVwKHQsIEYpIHsKICAgICAgbGV0IHsgYXR0cnM6IHgsIGVtaXQ6IEEsIHNsb3RzOiBkIH0gPSBGOwogICAgICBjb25zdCB7IGRpbWVuc2lvblN0eWxlczogRCB9ID0gWih0KSwKICAgICAgICB7IGlzRm9jdXNlZDogYiwgZm9jdXM6IFAsIGJsdXI6IF8gfSA9IFQodCksCiAgICAgICAgbyA9IEUoCiAgICAgICAgICB0LAogICAgICAgICAgIm1vZGVsVmFsdWUiLAogICAgICAgICAgIiIsCiAgICAgICAgICAoZSkgPT4gKGUgPT0gbnVsbCA/IFtdIDogU3RyaW5nKGUpLnNwbGl0KCIiKSksCiAgICAgICAgICAoZSkgPT4gZS5qb2luKCIiKQogICAgICAgICksCiAgICAgICAgeyB0OiB3IH0gPSBHKCksCiAgICAgICAgZiA9IHIoKCkgPT4gTnVtYmVyKHQubGVuZ3RoKSksCiAgICAgICAgQyA9IHIoKCkgPT4gQXJyYXkoZi52YWx1ZSkuZmlsbCgwKSksCiAgICAgICAgaSA9IHkoLTEpLAogICAgICAgIG0gPSB5KCksCiAgICAgICAgYyA9IHkoW10pLAogICAgICAgIHAgPSByKCgpID0+IGMudmFsdWVbaS52YWx1ZV0pOwogICAgICBmdW5jdGlvbiBJKCkgewogICAgICAgIGlmIChnKHAudmFsdWUudmFsdWUpKSB7CiAgICAgICAgICBwLnZhbHVlLnZhbHVlID0gIiI7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGUgPSBvLnZhbHVlLnNsaWNlKCksCiAgICAgICAgICBhID0gcC52YWx1ZS52YWx1ZTsKICAgICAgICBlW2kudmFsdWVdID0gYTsKICAgICAgICBsZXQgdSA9IG51bGw7CiAgICAgICAgaS52YWx1ZSA+IG8udmFsdWUubGVuZ3RoCiAgICAgICAgICA/ICh1ID0gby52YWx1ZS5sZW5ndGggKyAxKQogICAgICAgICAgOiBpLnZhbHVlICsgMSAhPT0gZi52YWx1ZSAmJiAodSA9ICJuZXh0IiksCiAgICAgICAgICAoby52YWx1ZSA9IGUpLAogICAgICAgICAgdSAmJiBrKG0udmFsdWUsIHUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIFMoZSkgewogICAgICAgIGNvbnN0IGEgPSBvLnZhbHVlLnNsaWNlKCksCiAgICAgICAgICB1ID0gaS52YWx1ZTsKICAgICAgICBsZXQgbiA9IG51bGw7CiAgICAgICAgWyJBcnJvd0xlZnQiLCAiQXJyb3dSaWdodCIsICJCYWNrc3BhY2UiLCAiRGVsZXRlIl0uaW5jbHVkZXMoZS5rZXkpICYmCiAgICAgICAgICAoZS5wcmV2ZW50RGVmYXVsdCgpLAogICAgICAgICAgZS5rZXkgPT09ICJBcnJvd0xlZnQiCiAgICAgICAgICAgID8gKG4gPSAicHJldiIpCiAgICAgICAgICAgIDogZS5rZXkgPT09ICJBcnJvd1JpZ2h0IgogICAgICAgICAgICA/IChuID0gIm5leHQiKQogICAgICAgICAgICA6IFsiQmFja3NwYWNlIiwgIkRlbGV0ZSJdLmluY2x1ZGVzKGUua2V5KSAmJgogICAgICAgICAgICAgICgoYVtpLnZhbHVlXSA9ICIiKSwKICAgICAgICAgICAgICAoby52YWx1ZSA9IGEpLAogICAgICAgICAgICAgIGkudmFsdWUgPiAwICYmIGUua2V5ID09PSAiQmFja3NwYWNlIgogICAgICAgICAgICAgICAgPyAobiA9ICJwcmV2IikKICAgICAgICAgICAgICAgIDogcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICB2YXIgbDsKICAgICAgICAgICAgICAgICAgICAobCA9IGMudmFsdWVbdV0pID09IG51bGwgfHwgbC5zZWxlY3QoKTsKICAgICAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgICAgbiAhPSBudWxsICYmIGsobS52YWx1ZSwgbik7CiAgICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gQihlLCBhKSB7CiAgICAgICAgdmFyIG4sIGw7CiAgICAgICAgYS5wcmV2ZW50RGVmYXVsdCgpLCBhLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIGNvbnN0IHUgPQogICAgICAgICAgKChuID0gYSA9PSBudWxsID8gdm9pZCAwIDogYS5jbGlwYm9hcmREYXRhKSA9PSBudWxsCiAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgIDogbi5nZXREYXRhKCJUZXh0Iikuc2xpY2UoMCwgZi52YWx1ZSkpID8/ICIiOwogICAgICAgIGcodSkgfHwgKChvLnZhbHVlID0gdS5zcGxpdCgiIikpLCAobCA9IGMudmFsdWUpID09IG51bGwgfHwgbFtlXS5ibHVyKCkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGooKSB7CiAgICAgICAgby52YWx1ZSA9IFtdOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIE4oZSwgYSkgewogICAgICAgIFAoKSwgKGkudmFsdWUgPSBhKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBPKCkgewogICAgICAgIF8oKSwgKGkudmFsdWUgPSAtMSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZyhlKSB7CiAgICAgICAgcmV0dXJuIHQudHlwZSA9PT0gIm51bWJlciIgJiYgL1teMC05XS9nLnRlc3QoZSk7CiAgICAgIH0KICAgICAgcmV0dXJuICgKICAgICAgICBIKAogICAgICAgICAgewogICAgICAgICAgICBWRmllbGQ6IHsKICAgICAgICAgICAgICBjb2xvcjogcigoKSA9PiB0LmNvbG9yKSwKICAgICAgICAgICAgICBiZ0NvbG9yOiByKCgpID0+IHQuY29sb3IpLAogICAgICAgICAgICAgIGJhc2VDb2xvcjogcigoKSA9PiB0LmJhc2VDb2xvciksCiAgICAgICAgICAgICAgZGlzYWJsZWQ6IHIoKCkgPT4gdC5kaXNhYmxlZCksCiAgICAgICAgICAgICAgZXJyb3I6IHIoKCkgPT4gdC5lcnJvciksCiAgICAgICAgICAgICAgdmFyaWFudDogcigoKSA9PiB0LnZhcmlhbnQpLAogICAgICAgICAgICB9LAogICAgICAgICAgfSwKICAgICAgICAgIHsgc2NvcGVkOiAhMCB9CiAgICAgICAgKSwKICAgICAgICBoKAogICAgICAgICAgbywKICAgICAgICAgIChlKSA9PiB7CiAgICAgICAgICAgIGUubGVuZ3RoID09PSBmLnZhbHVlICYmIEEoImZpbmlzaCIsIGUuam9pbigiIikpOwogICAgICAgICAgfSwKICAgICAgICAgIHsgZGVlcDogITAgfQogICAgICAgICksCiAgICAgICAgaChpLCAoZSkgPT4gewogICAgICAgICAgZSA8IDAgfHwKICAgICAgICAgICAgSigoKSA9PiB7CiAgICAgICAgICAgICAgdmFyIGE7CiAgICAgICAgICAgICAgKGEgPSBjLnZhbHVlW2VdKSA9PSBudWxsIHx8IGEuc2VsZWN0KCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pLAogICAgICAgIFEoKCkgPT4gewogICAgICAgICAgdmFyIHU7CiAgICAgICAgICBjb25zdCBbZSwgYV0gPSBVKHgpOwogICAgICAgICAgcmV0dXJuIHMoCiAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICBWKAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgICAgICJ2LW90cC1pbnB1dCIsCiAgICAgICAgICAgICAgICAgIHsgInYtb3RwLWlucHV0LS1kaXZpZGVkIjogISF0LmRpdmlkZXIgfSwKICAgICAgICAgICAgICAgICAgdC5jbGFzcywKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzdHlsZTogW3Quc3R5bGVdLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZQogICAgICAgICAgICApLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgeyByZWY6IG0sIGNsYXNzOiAidi1vdHAtaW5wdXRfX2NvbnRlbnQiLCBzdHlsZTogW0QudmFsdWVdIH0sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIEMudmFsdWUubWFwKChuLCBsKSA9PgogICAgICAgICAgICAgICAgICAgIHMoVywgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgdC5kaXZpZGVyICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGwgIT09IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICAgcygic3BhbiIsIHsgY2xhc3M6ICJ2LW90cC1pbnB1dF9fZGl2aWRlciIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgIHQuZGl2aWRlciwKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICBxLAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNlZDogKGIudmFsdWUgJiYgdC5mb2N1c0FsbCkgfHwgaS52YWx1ZSA9PT0gbCwKICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGwsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5kLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogdm9pZCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiAodikgPT4gKGMudmFsdWVbbF0gPSB2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1sYWJlbCI6IHcodC5sYWJlbCwgbCArIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1czogbCA9PT0gMCAmJiB0LmF1dG9mb2N1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU6ICJvbmUtdGltZS1jb2RlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogWyJ2LW90cC1pbnB1dF9fZmllbGQiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdC5kaXNhYmxlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dG1vZGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LnR5cGUgPT09ICJudW1iZXIiID8gIm51bWVyaWMiIDogInRleHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogdC50eXBlID09PSAibnVtYmVyIiA/IDAgOiB2b2lkIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHQucGxhY2Vob2xkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdC50eXBlID09PSAibnVtYmVyIiA/ICJ0ZXh0IiA6IHQudHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogby52YWx1ZVtsXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbklucHV0OiBJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM6ICh2KSA9PiBOKHYsIGwpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleWRvd246IFMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25QYXN0ZTogKHYpID0+IEIobCwgdiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAiaW5wdXQiLAogICAgICAgICAgICAgICAgICAgIFYoeyBjbGFzczogInYtb3RwLWlucHV0LWlucHV0IiwgdHlwZTogImhpZGRlbiIgfSwgYSwgewogICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUuam9pbigiIiksCiAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgIEssCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVkOiAhMCwKICAgICAgICAgICAgICAgICAgICAgICJjb250ZW50LWNsYXNzIjogInYtb3RwLWlucHV0X19sb2FkZXIiLAogICAgICAgICAgICAgICAgICAgICAgIm1vZGVsLXZhbHVlIjogISF0LmxvYWRpbmcsCiAgICAgICAgICAgICAgICAgICAgICBwZXJzaXN0ZW50OiAhMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG47CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChuID0gZC5sb2FkZXIpID09IG51bGwgPyB2b2lkIDAgOiBuLmNhbGwoZCkpID8/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdC5sb2FkaW5nID09ICJib29sZWFuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHQubG9hZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRldGVybWluYXRlOiAhMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAiMjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgKHUgPSBkLmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiB1LmNhbGwoZCksCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgXQogICAgICAgICAgKTsKICAgICAgICB9KSwKICAgICAgICB7CiAgICAgICAgICBibHVyOiAoKSA9PiB7CiAgICAgICAgICAgIHZhciBlOwogICAgICAgICAgICAoZSA9IGMudmFsdWUpID09IG51bGwgfHwgZS5zb21lKChhKSA9PiBhLmJsdXIoKSk7CiAgICAgICAgICB9LAogICAgICAgICAgZm9jdXM6ICgpID0+IHsKICAgICAgICAgICAgdmFyIGU7CiAgICAgICAgICAgIChlID0gYy52YWx1ZSkgPT0gbnVsbCB8fCBlWzBdLmZvY3VzKCk7CiAgICAgICAgICB9LAogICAgICAgICAgcmVzZXQ6IGosCiAgICAgICAgICBpc0ZvY3VzZWQ6IGIsCiAgICAgICAgfQogICAgICApOwogICAgfSwKICB9KTsKZXhwb3J0IHsgb2UgYXMgViB9Owo="}},"time_used":103,"timings":{"blocked":77,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DlAUqK2U.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.532Z","timestamp":1785139669532,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DlAUqK2U.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"5b-654aa2b8310e2-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 102\r\nKeep-Alive: timeout=5, max=95\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":91,"size_decoded":450,"mime_type":"application/javascript","magic":"ASCII text","md5":"25e3a5dcaf00fb2b1ba0c8ecea6d2560","sha1":"7850b3fd4aeb69387bdb5a60025d15c41351d5eb","sha256":"cb85b0f263dbe24e857338301c0627076592e9f1f1a5662929f86d2c126444aa","sha512":"2e5cc9b53d5641147f68c73e5db0442d93fb6a64da45cfc051da5550a2fad07e912e651bd730e54325ef74eb706be0c5df612355c1dca144ab6e9cc8c4ecc73b","ssdeep":"","tlshash":"1fb012c81cc3e078939818d47738c15844380448310742b0808c0943e2c20809797c1d","first_seen":"2023-03-08T16:39:49Z","last_seen":"2026-08-04T07:41:59.460423Z","times_seen":25031,"resource_available":true,"data":"Y29uc3Qgcz0odCxyKT0+e2NvbnN0IG89dC5fX3ZjY09wdHN8fHQ7Zm9yKGNvbnN0W2MsZV1vZiByKW9bY109ZTtyZXR1cm4gb307ZXhwb3J0e3MgYXMgX307Cg=="}},"time_used":120,"timings":{"blocked":94,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CDxB5nOy.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.539Z","timestamp":1785139669539,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CDxB5nOy.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"16b3-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 2321\r\nKeep-Alive: timeout=5, max=94\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":5811,"size_decoded":2672,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5810)","md5":"c5439fc859d39ea82f5838ae418b18a3","sha1":"f0b3afe3f58dcbe6871f8a911f8b17ba0c4ff003","sha256":"957932a93bf95d63f9a840d0afca5bdb38317291eb223d2ced10f9e02385ed2b","sha512":"027dccc8bb46461fbab25812acfa65775ee42bf0947b719b790fc10680b915f3d3ed2879560998d08dfdc79ae579435a084f895a00ef3b5352759278a9706dfc","ssdeep":"96:ixyOJB4Oknc3nC+jJVqplXGSjx09+070Kk7tx8kBzw3kql2dsk7VyQqz:ix/JB4O9xMx0A0IrLzw3Rl2dsk7Lqz","tlshash":"55c195ad34963570e7fe48c8c8aa8181f31c1709b405cde0b58e5e892abdd72936797e","first_seen":"2025-10-23T03:46:52.254432Z","last_seen":"2026-07-27T11:49:48.895772Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2MgYXMgRH1mcm9tIi4vQl8yRmtQOFMuanMiO2ltcG9ydHskIGFzIHRlLGF4IGFzIEwsYTcgYXMgbGUsYUogYXMgb2UsYTggYXMgbmUsYTAgYXMgc2UsYWIgYXMgYWUsYXAgYXMgaWUsUiBhcyBtLHMgYXMgZyxiXyBhcyByZSxhdSBhcyBxLGogYXMgdWUsYTUgYXMgY2UsZiBhcyBoLEggYXMgQixiViBhcyBmZX1mcm9tIi4vU20ybUNmREUuanMiO2ltcG9ydHtkIGFzIHZlLHUgYXMgZGV9ZnJvbSIuL0NNdVVUbFMyLmpzIjtpbXBvcnR7YiBhcyBOfWZyb20iLi9aZk5aaXlDbS5qcyI7ZnVuY3Rpb24gcGUobCl7bGV0e3NlbGVjdGVkRWxlbWVudDpzLGNvbnRhaW5lckVsZW1lbnQ6bixpc1J0bDppLGlzSG9yaXpvbnRhbDp2fT1sO2NvbnN0IGQ9Yih2LG4pLGE9Syh2LGksbikscD1iKHYscyksYz1VKHYscyksUz1wKi40O3JldHVybiBhPmM/Yy1TOmErZDxjK3A/Yy1kK3ArUzphfWZ1bmN0aW9uIGhlKGwpe2xldHtzZWxlY3RlZEVsZW1lbnQ6cyxjb250YWluZXJFbGVtZW50Om4saXNIb3Jpem9udGFsOml9PWw7Y29uc3Qgdj1iKGksbiksZD1VKGkscyksYT1iKGkscyk7cmV0dXJuIGQtdi8yK2EvMn1mdW5jdGlvbiAkKGwscyl7Y29uc3Qgbj1sPyJzY3JvbGxXaWR0aCI6InNjcm9sbEhlaWdodCI7cmV0dXJuKHM9PW51bGw/dm9pZCAwOnNbbl0pfHwwfWZ1bmN0aW9uIGdlKGwscyl7Y29uc3Qgbj1sPyJjbGllbnRXaWR0aCI6ImNsaWVudEhlaWdodCI7cmV0dXJuKHM9PW51bGw/dm9pZCAwOnNbbl0pfHwwfWZ1bmN0aW9uIEsobCxzLG4pe2lmKCFuKXJldHVybiAwO2NvbnN0e3Njcm9sbExlZnQ6aSxvZmZzZXRXaWR0aDp2LHNjcm9sbFdpZHRoOmR9PW47cmV0dXJuIGw/cz9kLXYraTppOm4uc2Nyb2xsVG9wfWZ1bmN0aW9uIGIobCxzKXtjb25zdCBuPWw/Im9mZnNldFdpZHRoIjoib2Zmc2V0SGVpZ2h0IjtyZXR1cm4ocz09bnVsbD92b2lkIDA6c1tuXSl8fDB9ZnVuY3Rpb24gVShsLHMpe2NvbnN0IG49bD8ib2Zmc2V0TGVmdCI6Im9mZnNldFRvcCI7cmV0dXJuKHM9PW51bGw/dm9pZCAwOnNbbl0pfHwwfWNvbnN0IFNlPVN5bWJvbC5mb3IoInZ1ZXRpZnk6di1zbGlkZS1ncm91cCIpLHllPXRlKHtjZW50ZXJBY3RpdmU6Qm9vbGVhbixkaXJlY3Rpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Imhvcml6b250YWwifSxzeW1ib2w6e3R5cGU6bnVsbCxkZWZhdWx0OlNlfSxuZXh0SWNvbjp7dHlwZTpMLGRlZmF1bHQ6IiRuZXh0In0scHJldkljb246e3R5cGU6TCxkZWZhdWx0OiIkcHJldiJ9LHNob3dBcnJvd3M6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSx2YWxpZGF0b3I6bD0+dHlwZW9mIGw9PSJib29sZWFuInx8WyJhbHdheXMiLCJkZXNrdG9wIiwibW9iaWxlIl0uaW5jbHVkZXMobCl9LC4uLmxlKCksLi4ub2Uoe21vYmlsZTpudWxsfSksLi4ubmUoKSwuLi52ZSh7c2VsZWN0ZWRDbGFzczoidi1zbGlkZS1ncm91cC1pdGVtLS1hY3RpdmUifSl9LCJWU2xpZGVHcm91cCIpLGtlPXNlKCkoe25hbWU6IlZTbGlkZUdyb3VwIixwcm9wczp5ZSgpLGVtaXRzOnsidXBkYXRlOm1vZGVsVmFsdWUiOmw9PiEwfSxzZXR1cChsLHMpe2xldHtzbG90czpufT1zO2NvbnN0e2lzUnRsOml9PWFlKCkse2Rpc3BsYXlDbGFzc2VzOnYsbW9iaWxlOmR9PWllKGwpLGE9ZGUobCxsLnN5bWJvbCkscD1tKCExKSxjPW0oMCksUz1tKDApLE89bSgwKSxyPWcoKCk9PmwuZGlyZWN0aW9uPT09Imhvcml6b250YWwiKSx7cmVzaXplUmVmOnUsY29udGVudFJlY3Q6a309TigpLHtyZXNpemVSZWY6Zixjb250ZW50UmVjdDp3fT1OKCksVj1yZSgpLFc9ZygoKT0+KHtjb250YWluZXI6dS5lbCxkdXJhdGlvbjoyMDAsZWFzaW5nOiJlYXNlT3V0UXVhcnQifSkpLGo9ZygoKT0+YS5zZWxlY3RlZC52YWx1ZS5sZW5ndGg/YS5pdGVtcy52YWx1ZS5maW5kSW5kZXgodD0+dC5pZD09PWEuc2VsZWN0ZWQudmFsdWVbMF0pOi0xKSxKPWcoKCk9PmEuc2VsZWN0ZWQudmFsdWUubGVuZ3RoP2EuaXRlbXMudmFsdWUuZmluZEluZGV4KHQ9PnQuaWQ9PT1hLnNlbGVjdGVkLnZhbHVlW2Euc2VsZWN0ZWQudmFsdWUubGVuZ3RoLTFdKTotMSk7aWYocSl7bGV0IHQ9LTE7dWUoKCk9PlthLnNlbGVjdGVkLnZhbHVlLGsudmFsdWUsdy52YWx1ZSxyLnZhbHVlXSwoKT0+e2NhbmNlbEFuaW1hdGlvbkZyYW1lKHQpLHQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57aWYoay52YWx1ZSYmdy52YWx1ZSl7Y29uc3QgZT1yLnZhbHVlPyJ3aWR0aCI6ImhlaWdodCI7Uy52YWx1ZT1rLnZhbHVlW2VdLE8udmFsdWU9dy52YWx1ZVtlXSxwLnZhbHVlPVMudmFsdWUrMTxPLnZhbHVlfWlmKGoudmFsdWU+PTAmJmYuZWwpe2NvbnN0IGU9Zi5lbC5jaGlsZHJlbltKLnZhbHVlXTtIKGUsbC5jZW50ZXJBY3RpdmUpfX0pfSl9Y29uc3QgeD1tKCExKTtmdW5jdGlvbiBIKHQsZSl7bGV0IG89MDtlP289aGUoe2NvbnRhaW5lckVsZW1lbnQ6dS5lbCxpc0hvcml6b250YWw6ci52YWx1ZSxzZWxlY3RlZEVsZW1lbnQ6dH0pOm89cGUoe2NvbnRhaW5lckVsZW1lbnQ6dS5lbCxpc0hvcml6b250YWw6ci52YWx1ZSxpc1J0bDppLnZhbHVlLHNlbGVjdGVkRWxlbWVudDp0fSksTShvKX1mdW5jdGlvbiBNKHQpe2lmKCFxfHwhdS5lbClyZXR1cm47Y29uc3QgZT1iKHIudmFsdWUsdS5lbCksbz1LKHIudmFsdWUsaS52YWx1ZSx1LmVsKTtpZighKCQoci52YWx1ZSx1LmVsKTw9ZXx8TWF0aC5hYnModC1vKTwxNikpe2lmKHIudmFsdWUmJmkudmFsdWUmJnUuZWwpe2NvbnN0e3Njcm9sbFdpZHRoOlAsb2Zmc2V0V2lkdGg6Q309dS5lbDt0PVAtQy10fXIudmFsdWU/Vi5ob3Jpem9udGFsKHQsVy52YWx1ZSk6Vih0LFcudmFsdWUpfX1mdW5jdGlvbiBRKHQpe2NvbnN0e3Njcm9sbFRvcDplLHNjcm9sbExlZnQ6b309dC50YXJnZXQ7Yy52YWx1ZT1yLnZhbHVlP286ZX1mdW5jdGlvbiBYKHQpe2lmKHgudmFsdWU9ITAsISghcC52YWx1ZXx8IWYuZWwpKXtmb3IoY29uc3QgZSBvZiB0LmNvbXBvc2VkUGF0aCgpKWZvcihjb25zdCBvIG9mIGYuZWwuY2hpbGRyZW4paWYobz09PWUpe0gobyk7cmV0dXJufX19ZnVuY3Rpb24gWSh0KXt4LnZhbHVlPSExfWxldCBSPSExO2Z1bmN0aW9uIFoodCl7dmFyIGU7IVImJiF4LnZhbHVlJiYhKHQucmVsYXRlZFRhcmdldCYmKChlPWYuZWwpIT1udWxsJiZlLmNvbnRhaW5zKHQucmVsYXRlZFRhcmdldCkpKSYmeSgpLFI9ITF9ZnVuY3Rpb24gRygpe1I9ITB9ZnVuY3Rpb24gZWUodCl7aWYoIWYuZWwpcmV0dXJuO2Z1bmN0aW9uIGUobyl7dC5wcmV2ZW50RGVmYXVsdCgpLHkobyl9ci52YWx1ZT90LmtleT09PSJBcnJvd1JpZ2h0Ij9lKGkudmFsdWU/InByZXYiOiJuZXh0Iik6dC5rZXk9PT0iQXJyb3dMZWZ0IiYmZShpLnZhbHVlPyJuZXh0IjoicHJldiIpOnQua2V5PT09IkFycm93RG93biI/ZSgibmV4dCIpOnQua2V5PT09IkFycm93VXAiJiZlKCJwcmV2IiksdC5rZXk9PT0iSG9tZSI/ZSgiZmlyc3QiKTp0LmtleT09PSJFbmQiJiZlKCJsYXN0Iil9ZnVuY3Rpb24geih0LGUpe2lmKCF0KXJldHVybjtsZXQgbz10O2RvIG89bz09bnVsbD92b2lkIDA6b1tlPT09Im5leHQiPyJuZXh0RWxlbWVudFNpYmxpbmciOiJwcmV2aW91c0VsZW1lbnRTaWJsaW5nIl07d2hpbGUobyE9bnVsbCYmby5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpO3JldHVybiBvfWZ1bmN0aW9uIHkodCl7aWYoIWYuZWwpcmV0dXJuO2xldCBlO2lmKCF0KWU9ZmUoZi5lbClbMF07ZWxzZSBpZih0PT09Im5leHQiKXtpZihlPXooZi5lbC5xdWVyeVNlbGVjdG9yKCI6Zm9jdXMiKSx0KSwhZSlyZXR1cm4geSgiZmlyc3QiKX1lbHNlIGlmKHQ9PT0icHJldiIpe2lmKGU9eihmLmVsLnF1ZXJ5U2VsZWN0b3IoIjpmb2N1cyIpLHQpLCFlKXJldHVybiB5KCJsYXN0Iil9ZWxzZSB0PT09ImZpcnN0Ij8oZT1mLmVsLmZpcnN0RWxlbWVudENoaWxkLGUhPW51bGwmJmUuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpJiYoZT16KGUsIm5leHQiKSkpOnQ9PT0ibGFzdCImJihlPWYuZWwubGFzdEVsZW1lbnRDaGlsZCxlIT1udWxsJiZlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSYmKGU9eihlLCJwcmV2IikpKTtlJiZlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9ZnVuY3Rpb24gRSh0KXtjb25zdCBlPXIudmFsdWUmJmkudmFsdWU/LTE6MSxvPSh0PT09InByZXYiPy1lOmUpKlMudmFsdWU7bGV0IEk9Yy52YWx1ZStvO2lmKHIudmFsdWUmJmkudmFsdWUmJnUuZWwpe2NvbnN0e3Njcm9sbFdpZHRoOlAsb2Zmc2V0V2lkdGg6Q309dS5lbDtJKz1QLUN9TShJKX1jb25zdCBBPWcoKCk9Pih7bmV4dDphLm5leHQscHJldjphLnByZXYsc2VsZWN0OmEuc2VsZWN0LGlzU2VsZWN0ZWQ6YS5pc1NlbGVjdGVkfSkpLFQ9ZygoKT0+e3N3aXRjaChsLnNob3dBcnJvd3Mpe2Nhc2UiYWx3YXlzIjpyZXR1cm4hMDtjYXNlImRlc2t0b3AiOnJldHVybiFkLnZhbHVlO2Nhc2UhMDpyZXR1cm4gcC52YWx1ZXx8TWF0aC5hYnMoYy52YWx1ZSk+MDtjYXNlIm1vYmlsZSI6cmV0dXJuIGQudmFsdWV8fHAudmFsdWV8fE1hdGguYWJzKGMudmFsdWUpPjA7ZGVmYXVsdDpyZXR1cm4hZC52YWx1ZSYmKHAudmFsdWV8fE1hdGguYWJzKGMudmFsdWUpPjApfX0pLEY9ZygoKT0+TWF0aC5hYnMoYy52YWx1ZSk+MSksXz1nKCgpPT57aWYoIXUudmFsdWUpcmV0dXJuITE7Y29uc3QgdD0kKHIudmFsdWUsdS5lbCksZT1nZShyLnZhbHVlLHUuZWwpO3JldHVybiB0LWUtTWF0aC5hYnMoYy52YWx1ZSk+MX0pO3JldHVybiBjZSgoKT0+aChsLnRhZyx7Y2xhc3M6WyJ2LXNsaWRlLWdyb3VwIix7InYtc2xpZGUtZ3JvdXAtLXZlcnRpY2FsIjohci52YWx1ZSwidi1zbGlkZS1ncm91cC0taGFzLWFmZml4ZXMiOlQudmFsdWUsInYtc2xpZGUtZ3JvdXAtLWlzLW92ZXJmbG93aW5nIjpwLnZhbHVlfSx2LnZhbHVlLGwuY2xhc3NdLHN0eWxlOmwuc3R5bGUsdGFiaW5kZXg6eC52YWx1ZXx8YS5zZWxlY3RlZC52YWx1ZS5sZW5ndGg/LTE6MCxvbkZvY3VzOlp9LHtkZWZhdWx0OigpPT57dmFyIHQsZSxvO3JldHVybltULnZhbHVlJiZoKCJkaXYiLHtrZXk6InByZXYiLGNsYXNzOlsidi1zbGlkZS1ncm91cF9fcHJldiIseyJ2LXNsaWRlLWdyb3VwX19wcmV2LS1kaXNhYmxlZCI6IUYudmFsdWV9XSxvbk1vdXNlZG93bjpHLG9uQ2xpY2s6KCk9PkYudmFsdWUmJkUoInByZXYiKX0sWygodD1uLnByZXYpPT1udWxsP3ZvaWQgMDp0LmNhbGwobixBLnZhbHVlKSk/P2goRCxudWxsLHtkZWZhdWx0OigpPT5baChCLHtpY29uOmkudmFsdWU/bC5uZXh0SWNvbjpsLnByZXZJY29ufSxudWxsKV19KV0pLGgoImRpdiIse2tleToiY29udGFpbmVyIixyZWY6dSxjbGFzczoidi1zbGlkZS1ncm91cF9fY29udGFpbmVyIixvblNjcm9sbDpRfSxbaCgiZGl2Iix7cmVmOmYsY2xhc3M6InYtc2xpZGUtZ3JvdXBfX2NvbnRlbnQiLG9uRm9jdXNpbjpYLG9uRm9jdXNvdXQ6WSxvbktleWRvd246ZWV9LFsoZT1uLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDplLmNhbGwobixBLnZhbHVlKV0pXSksVC52YWx1ZSYmaCgiZGl2Iix7a2V5OiJuZXh0IixjbGFzczpbInYtc2xpZGUtZ3JvdXBfX25leHQiLHsidi1zbGlkZS1ncm91cF9fbmV4dC0tZGlzYWJsZWQiOiFfLnZhbHVlfV0sb25Nb3VzZWRvd246RyxvbkNsaWNrOigpPT5fLnZhbHVlJiZFKCJuZXh0Iil9LFsoKG89bi5uZXh0KT09bnVsbD92b2lkIDA6by5jYWxsKG4sQS52YWx1ZSkpPz9oKEQsbnVsbCx7ZGVmYXVsdDooKT0+W2goQix7aWNvbjppLnZhbHVlP2wucHJldkljb246bC5uZXh0SWNvbn0sbnVsbCldfSldKV19fSkpLHtzZWxlY3RlZDphLnNlbGVjdGVkLHNjcm9sbFRvOkUsc2Nyb2xsT2Zmc2V0OmMsZm9jdXM6eSxoYXNQcmV2OkYsaGFzTmV4dDpffX19KTtleHBvcnR7a2UgYXMgVix5ZSBhcyBtfTsK"}},"time_used":146,"timings":{"blocked":119,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D3OnLe3d.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.996Z","timestamp":1785139669996,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/D3OnLe3d.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/_nuxt/Sm2mCfDE.js\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"24fa5-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 34309\r\nKeep-Alive: timeout=5, max=87\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":151461,"size_decoded":34662,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"6e53f70ccabba97cc5ff1a2658b3cdbf","sha1":"edf17ac87eb13d10b8ac90f8a06f6bf4f8083e21","sha256":"ddf79c9bd025c30935f354c65054285ae5ecf1cb12252e2dea90b61cb3f4b37a","sha512":"cebf71d830b52889c93cc81ccec8b243ba7c91a942af176304900a5e53fba01330d3ffcfbccd693b0c6d95adbe0b7158534c9d591d63a209cc28a657b0924ef0","ssdeep":"1536:NhvC4yDVTG6VBppdYTZUjU35elH+HuFFaIGJ818L/6LBEE0YzTXVc2och9iV2OJy:jHtUlHwJ8OT4BrVcoriY1","tlshash":"01e3734a13a1243511a7a53e4f4fc9252636800b6e4aeda438dc4998df6dd3c07faff9","first_seen":"2025-10-23T03:46:52.090869Z","last_seen":"2026-07-27T11:49:48.914727Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICBkIGFzIGosCiAgcyBhcyBPZSwKICBlIGFzIEssCiAgZiBhcyBHLAogIGggYXMgWiwKICBpIGFzIGllLAogIGogYXMgZmUsCiAgayBhcyB1ZSwKICBsIGFzIFUsCiAgbSBhcyBxLAogIG8gYXMgSGUsCiAgcSBhcyB5ZSwKICByIGFzIEosCiAgdCBhcyAkZSwKICB2IGFzIGxlLAogIHcgYXMgWGUsCiAgeCBhcyBlZSwKICB5IGFzIG1lLAogIFMgYXMgQWUsCiAgcCBhcyBFZSwKICBuIGFzIFllLAogIGEgYXMgUmUsCiAgYiBhcyBCZSwKICBnIGFzIExlLAogIHUgYXMgcWUsCiAgYyBhcyBXZSwKfSBmcm9tICIuL0N4WnJYeTg3LmpzIjsKZnVuY3Rpb24gTmUoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZXh0ZW5kUGFyYW1zOiBoLCBvbjogdSwgZW1pdDogZyB9ID0gTTsKICBoKHsKICAgIHZpcnR1YWw6IHsKICAgICAgZW5hYmxlZDogITEsCiAgICAgIHNsaWRlczogW10sCiAgICAgIGNhY2hlOiAhMCwKICAgICAgcmVuZGVyU2xpZGU6IG51bGwsCiAgICAgIHJlbmRlckV4dGVybmFsOiBudWxsLAogICAgICByZW5kZXJFeHRlcm5hbFVwZGF0ZTogITAsCiAgICAgIGFkZFNsaWRlc0JlZm9yZTogMCwKICAgICAgYWRkU2xpZGVzQWZ0ZXI6IDAsCiAgICB9LAogIH0pOwogIGxldCB3OwogIGNvbnN0IGIgPSBqKCk7CiAgZS52aXJ0dWFsID0gewogICAgY2FjaGU6IHt9LAogICAgZnJvbTogdm9pZCAwLAogICAgdG86IHZvaWQgMCwKICAgIHNsaWRlczogW10sCiAgICBvZmZzZXQ6IDAsCiAgICBzbGlkZXNHcmlkOiBbXSwKICB9OwogIGNvbnN0IEUgPSBiLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZ1bmN0aW9uIGYobywgbikgewogICAgY29uc3QgbCA9IGUucGFyYW1zLnZpcnR1YWw7CiAgICBpZiAobC5jYWNoZSAmJiBlLnZpcnR1YWwuY2FjaGVbbl0pIHJldHVybiBlLnZpcnR1YWwuY2FjaGVbbl07CiAgICBsZXQgYzsKICAgIHJldHVybiAoCiAgICAgIGwucmVuZGVyU2xpZGUKICAgICAgICA/ICgoYyA9IGwucmVuZGVyU2xpZGUuY2FsbChlLCBvLCBuKSksCiAgICAgICAgICB0eXBlb2YgYyA9PSAic3RyaW5nIiAmJiAoKEUuaW5uZXJIVE1MID0gYyksIChjID0gRS5jaGlsZHJlblswXSkpKQogICAgICAgIDogZS5pc0VsZW1lbnQKICAgICAgICA/IChjID0gRygic3dpcGVyLXNsaWRlIikpCiAgICAgICAgOiAoYyA9IEcoImRpdiIsIGUucGFyYW1zLnNsaWRlQ2xhc3MpKSwKICAgICAgYy5zZXRBdHRyaWJ1dGUoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiwgbiksCiAgICAgIGwucmVuZGVyU2xpZGUgfHwgKGMuaW5uZXJIVE1MID0gbyksCiAgICAgIGwuY2FjaGUgJiYgKGUudmlydHVhbC5jYWNoZVtuXSA9IGMpLAogICAgICBjCiAgICApOwogIH0KICBmdW5jdGlvbiBwKG8sIG4pIHsKICAgIGNvbnN0IHsKICAgICAgc2xpZGVzUGVyVmlldzogbCwKICAgICAgc2xpZGVzUGVyR3JvdXA6IGMsCiAgICAgIGNlbnRlcmVkU2xpZGVzOiByLAogICAgICBsb29wOiBhLAogICAgICBpbml0aWFsU2xpZGU6IG0sCiAgICB9ID0gZS5wYXJhbXM7CiAgICBpZiAobiAmJiAhYSAmJiBtID4gMCkgcmV0dXJuOwogICAgY29uc3QgeyBhZGRTbGlkZXNCZWZvcmU6IEMsIGFkZFNsaWRlc0FmdGVyOiBEIH0gPSBlLnBhcmFtcy52aXJ0dWFsLAogICAgICB7IGZyb206IFAsIHRvOiBBLCBzbGlkZXM6IHgsIHNsaWRlc0dyaWQ6IE8sIG9mZnNldDogSSB9ID0gZS52aXJ0dWFsOwogICAgZS5wYXJhbXMuY3NzTW9kZSB8fCBlLnVwZGF0ZUFjdGl2ZUluZGV4KCk7CiAgICBjb25zdCB6ID0gZS5hY3RpdmVJbmRleCB8fCAwOwogICAgbGV0IFQ7CiAgICBlLnJ0bFRyYW5zbGF0ZSA/IChUID0gInJpZ2h0IikgOiAoVCA9IGUuaXNIb3Jpem9udGFsKCkgPyAibGVmdCIgOiAidG9wIik7CiAgICBsZXQgUywgTDsKICAgIHIKICAgICAgPyAoKFMgPSBNYXRoLmZsb29yKGwgLyAyKSArIGMgKyBEKSwgKEwgPSBNYXRoLmZsb29yKGwgLyAyKSArIGMgKyBDKSkKICAgICAgOiAoKFMgPSBsICsgKGMgLSAxKSArIEQpLCAoTCA9IChhID8gbCA6IGMpICsgQykpOwogICAgbGV0IFkgPSB6IC0gTCwKICAgICAgdiA9IHogKyBTOwogICAgYSB8fCAoKFkgPSBNYXRoLm1heChZLCAwKSksICh2ID0gTWF0aC5taW4odiwgeC5sZW5ndGggLSAxKSkpOwogICAgbGV0IHkgPSAoZS5zbGlkZXNHcmlkW1ldIHx8IDApIC0gKGUuc2xpZGVzR3JpZFswXSB8fCAwKTsKICAgIGEgJiYgeiA+PSBMCiAgICAgID8gKChZIC09IEwpLCByIHx8ICh5ICs9IGUuc2xpZGVzR3JpZFswXSkpCiAgICAgIDogYSAmJiB6IDwgTCAmJiAoKFkgPSAtTCksIHIgJiYgKHkgKz0gZS5zbGlkZXNHcmlkWzBdKSksCiAgICAgIE9iamVjdC5hc3NpZ24oZS52aXJ0dWFsLCB7CiAgICAgICAgZnJvbTogWSwKICAgICAgICB0bzogdiwKICAgICAgICBvZmZzZXQ6IHksCiAgICAgICAgc2xpZGVzR3JpZDogZS5zbGlkZXNHcmlkLAogICAgICAgIHNsaWRlc0JlZm9yZTogTCwKICAgICAgICBzbGlkZXNBZnRlcjogUywKICAgICAgfSk7CiAgICBmdW5jdGlvbiBIKCkgewogICAgICBlLnVwZGF0ZVNsaWRlcygpLAogICAgICAgIGUudXBkYXRlUHJvZ3Jlc3MoKSwKICAgICAgICBlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSwKICAgICAgICBnKCJ2aXJ0dWFsVXBkYXRlIik7CiAgICB9CiAgICBpZiAoUCA9PT0gWSAmJiBBID09PSB2ICYmICFvKSB7CiAgICAgIGUuc2xpZGVzR3JpZCAhPT0gTyAmJgogICAgICAgIHkgIT09IEkgJiYKICAgICAgICBlLnNsaWRlcy5mb3JFYWNoKChSKSA9PiB7CiAgICAgICAgICBSLnN0eWxlW1RdID0gYCR7eSAtIE1hdGguYWJzKGUuY3NzT3ZlcmZsb3dBZGp1c3RtZW50KCkpfXB4YDsKICAgICAgICB9KSwKICAgICAgICBlLnVwZGF0ZVByb2dyZXNzKCksCiAgICAgICAgZygidmlydHVhbFVwZGF0ZSIpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZS5wYXJhbXMudmlydHVhbC5yZW5kZXJFeHRlcm5hbCkgewogICAgICBlLnBhcmFtcy52aXJ0dWFsLnJlbmRlckV4dGVybmFsLmNhbGwoZSwgewogICAgICAgIG9mZnNldDogeSwKICAgICAgICBmcm9tOiBZLAogICAgICAgIHRvOiB2LAogICAgICAgIHNsaWRlczogKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGNvbnN0IFcgPSBbXTsKICAgICAgICAgIGZvciAobGV0IEYgPSBZOyBGIDw9IHY7IEYgKz0gMSkgVy5wdXNoKHhbRl0pOwogICAgICAgICAgcmV0dXJuIFc7CiAgICAgICAgfSkoKSwKICAgICAgfSksCiAgICAgICAgZS5wYXJhbXMudmlydHVhbC5yZW5kZXJFeHRlcm5hbFVwZGF0ZSA/IEgoKSA6IGcoInZpcnR1YWxVcGRhdGUiKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgQiA9IFtdLAogICAgICAkID0gW10sCiAgICAgIGsgPSAoUikgPT4gewogICAgICAgIGxldCBXID0gUjsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgUiA8IDAgPyAoVyA9IHgubGVuZ3RoICsgUikgOiBXID49IHgubGVuZ3RoICYmIChXID0gVyAtIHgubGVuZ3RoKSwgVwogICAgICAgICk7CiAgICAgIH07CiAgICBpZiAobykKICAgICAgZS5zbGlkZXMKICAgICAgICAuZmlsdGVyKChSKSA9PiBSLm1hdGNoZXMoYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9LCBzd2lwZXItc2xpZGVgKSkKICAgICAgICAuZm9yRWFjaCgoUikgPT4gewogICAgICAgICAgUi5yZW1vdmUoKTsKICAgICAgICB9KTsKICAgIGVsc2UKICAgICAgZm9yIChsZXQgUiA9IFA7IFIgPD0gQTsgUiArPSAxKQogICAgICAgIGlmIChSIDwgWSB8fCBSID4gdikgewogICAgICAgICAgY29uc3QgVyA9IGsoUik7CiAgICAgICAgICBlLnNsaWRlcwogICAgICAgICAgICAuZmlsdGVyKChGKSA9PgogICAgICAgICAgICAgIEYubWF0Y2hlcygKICAgICAgICAgICAgICAgIGAuJHtlLnBhcmFtcy5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtXfSJdLCBzd2lwZXItc2xpZGVbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7V30iXWAKICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgLmZvckVhY2goKEYpID0+IHsKICAgICAgICAgICAgICBGLnJlbW92ZSgpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICBjb25zdCBYID0gYSA/IC14Lmxlbmd0aCA6IDAsCiAgICAgIE4gPSBhID8geC5sZW5ndGggKiAyIDogeC5sZW5ndGg7CiAgICBmb3IgKGxldCBSID0gWDsgUiA8IE47IFIgKz0gMSkKICAgICAgaWYgKFIgPj0gWSAmJiBSIDw9IHYpIHsKICAgICAgICBjb25zdCBXID0gayhSKTsKICAgICAgICB0eXBlb2YgQSA+ICJ1IiB8fCBvCiAgICAgICAgICA/ICQucHVzaChXKQogICAgICAgICAgOiAoUiA+IEEgJiYgJC5wdXNoKFcpLCBSIDwgUCAmJiBCLnB1c2goVykpOwogICAgICB9CiAgICBpZiAoCiAgICAgICgkLmZvckVhY2goKFIpID0+IHsKICAgICAgICBlLnNsaWRlc0VsLmFwcGVuZChmKHhbUl0sIFIpKTsKICAgICAgfSksCiAgICAgIGEpCiAgICApCiAgICAgIGZvciAobGV0IFIgPSBCLmxlbmd0aCAtIDE7IFIgPj0gMDsgUiAtPSAxKSB7CiAgICAgICAgY29uc3QgVyA9IEJbUl07CiAgICAgICAgZS5zbGlkZXNFbC5wcmVwZW5kKGYoeFtXXSwgVykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIEIuc29ydCgoUiwgVykgPT4gVyAtIFIpLAogICAgICAgIEIuZm9yRWFjaCgoUikgPT4gewogICAgICAgICAgZS5zbGlkZXNFbC5wcmVwZW5kKGYoeFtSXSwgUikpOwogICAgICAgIH0pOwogICAgSyhlLnNsaWRlc0VsLCAiLnN3aXBlci1zbGlkZSwgc3dpcGVyLXNsaWRlIikuZm9yRWFjaCgoUikgPT4gewogICAgICBSLnN0eWxlW1RdID0gYCR7eSAtIE1hdGguYWJzKGUuY3NzT3ZlcmZsb3dBZGp1c3RtZW50KCkpfXB4YDsKICAgIH0pLAogICAgICBIKCk7CiAgfQogIGZ1bmN0aW9uIHMobykgewogICAgaWYgKHR5cGVvZiBvID09ICJvYmplY3QiICYmICJsZW5ndGgiIGluIG8pCiAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgby5sZW5ndGg7IG4gKz0gMSkgb1tuXSAmJiBlLnZpcnR1YWwuc2xpZGVzLnB1c2gob1tuXSk7CiAgICBlbHNlIGUudmlydHVhbC5zbGlkZXMucHVzaChvKTsKICAgIHAoITApOwogIH0KICBmdW5jdGlvbiB0KG8pIHsKICAgIGNvbnN0IG4gPSBlLmFjdGl2ZUluZGV4OwogICAgbGV0IGwgPSBuICsgMSwKICAgICAgYyA9IDE7CiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSkgewogICAgICBmb3IgKGxldCByID0gMDsgciA8IG8ubGVuZ3RoOyByICs9IDEpCiAgICAgICAgb1tyXSAmJiBlLnZpcnR1YWwuc2xpZGVzLnVuc2hpZnQob1tyXSk7CiAgICAgIChsID0gbiArIG8ubGVuZ3RoKSwgKGMgPSBvLmxlbmd0aCk7CiAgICB9IGVsc2UgZS52aXJ0dWFsLnNsaWRlcy51bnNoaWZ0KG8pOwogICAgaWYgKGUucGFyYW1zLnZpcnR1YWwuY2FjaGUpIHsKICAgICAgY29uc3QgciA9IGUudmlydHVhbC5jYWNoZSwKICAgICAgICBhID0ge307CiAgICAgIE9iamVjdC5rZXlzKHIpLmZvckVhY2goKG0pID0+IHsKICAgICAgICBjb25zdCBDID0gclttXSwKICAgICAgICAgIEQgPSBDLmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTsKICAgICAgICBEICYmIEMuc2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIsIHBhcnNlSW50KEQsIDEwKSArIGMpLAogICAgICAgICAgKGFbcGFyc2VJbnQobSwgMTApICsgY10gPSBDKTsKICAgICAgfSksCiAgICAgICAgKGUudmlydHVhbC5jYWNoZSA9IGEpOwogICAgfQogICAgcCghMCksIGUuc2xpZGVUbyhsLCAwKTsKICB9CiAgZnVuY3Rpb24gaShvKSB7CiAgICBpZiAodHlwZW9mIG8gPiAidSIgfHwgbyA9PT0gbnVsbCkgcmV0dXJuOwogICAgbGV0IG4gPSBlLmFjdGl2ZUluZGV4OwogICAgaWYgKEFycmF5LmlzQXJyYXkobykpCiAgICAgIGZvciAobGV0IGwgPSBvLmxlbmd0aCAtIDE7IGwgPj0gMDsgbCAtPSAxKQogICAgICAgIGUucGFyYW1zLnZpcnR1YWwuY2FjaGUgJiYKICAgICAgICAgIChkZWxldGUgZS52aXJ0dWFsLmNhY2hlW29bbF1dLAogICAgICAgICAgT2JqZWN0LmtleXMoZS52aXJ0dWFsLmNhY2hlKS5mb3JFYWNoKChjKSA9PiB7CiAgICAgICAgICAgIGMgPiBvICYmCiAgICAgICAgICAgICAgKChlLnZpcnR1YWwuY2FjaGVbYyAtIDFdID0gZS52aXJ0dWFsLmNhY2hlW2NdKSwKICAgICAgICAgICAgICBlLnZpcnR1YWwuY2FjaGVbYyAtIDFdLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIsCiAgICAgICAgICAgICAgICBjIC0gMQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZGVsZXRlIGUudmlydHVhbC5jYWNoZVtjXSk7CiAgICAgICAgICB9KSksCiAgICAgICAgICBlLnZpcnR1YWwuc2xpZGVzLnNwbGljZShvW2xdLCAxKSwKICAgICAgICAgIG9bbF0gPCBuICYmIChuIC09IDEpLAogICAgICAgICAgKG4gPSBNYXRoLm1heChuLCAwKSk7CiAgICBlbHNlCiAgICAgIGUucGFyYW1zLnZpcnR1YWwuY2FjaGUgJiYKICAgICAgICAoZGVsZXRlIGUudmlydHVhbC5jYWNoZVtvXSwKICAgICAgICBPYmplY3Qua2V5cyhlLnZpcnR1YWwuY2FjaGUpLmZvckVhY2goKGwpID0+IHsKICAgICAgICAgIGwgPiBvICYmCiAgICAgICAgICAgICgoZS52aXJ0dWFsLmNhY2hlW2wgLSAxXSA9IGUudmlydHVhbC5jYWNoZVtsXSksCiAgICAgICAgICAgIGUudmlydHVhbC5jYWNoZVtsIC0gMV0uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIsCiAgICAgICAgICAgICAgbCAtIDEKICAgICAgICAgICAgKSwKICAgICAgICAgICAgZGVsZXRlIGUudmlydHVhbC5jYWNoZVtsXSk7CiAgICAgICAgfSkpLAogICAgICAgIGUudmlydHVhbC5zbGlkZXMuc3BsaWNlKG8sIDEpLAogICAgICAgIG8gPCBuICYmIChuIC09IDEpLAogICAgICAgIChuID0gTWF0aC5tYXgobiwgMCkpOwogICAgcCghMCksIGUuc2xpZGVUbyhuLCAwKTsKICB9CiAgZnVuY3Rpb24gZCgpIHsKICAgIChlLnZpcnR1YWwuc2xpZGVzID0gW10pLAogICAgICBlLnBhcmFtcy52aXJ0dWFsLmNhY2hlICYmIChlLnZpcnR1YWwuY2FjaGUgPSB7fSksCiAgICAgIHAoITApLAogICAgICBlLnNsaWRlVG8oMCwgMCk7CiAgfQogIHUoImJlZm9yZUluaXQiLCAoKSA9PiB7CiAgICBpZiAoIWUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCkgcmV0dXJuOwogICAgbGV0IG87CiAgICBpZiAodHlwZW9mIGUucGFzc2VkUGFyYW1zLnZpcnR1YWwuc2xpZGVzID4gInUiKSB7CiAgICAgIGNvbnN0IG4gPSBbLi4uZS5zbGlkZXNFbC5jaGlsZHJlbl0uZmlsdGVyKChsKSA9PgogICAgICAgIGwubWF0Y2hlcyhgLiR7ZS5wYXJhbXMuc2xpZGVDbGFzc30sIHN3aXBlci1zbGlkZWApCiAgICAgICk7CiAgICAgIG4ubGVuZ3RoICYmCiAgICAgICAgKChlLnZpcnR1YWwuc2xpZGVzID0gWy4uLm5dKSwKICAgICAgICAobyA9ICEwKSwKICAgICAgICBuLmZvckVhY2goKGwsIGMpID0+IHsKICAgICAgICAgIGwuc2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIsIGMpLAogICAgICAgICAgICAoZS52aXJ0dWFsLmNhY2hlW2NdID0gbCksCiAgICAgICAgICAgIGwucmVtb3ZlKCk7CiAgICAgICAgfSkpOwogICAgfQogICAgbyB8fCAoZS52aXJ0dWFsLnNsaWRlcyA9IGUucGFyYW1zLnZpcnR1YWwuc2xpZGVzKSwKICAgICAgZS5jbGFzc05hbWVzLnB1c2goYCR7ZS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc312aXJ0dWFsYCksCiAgICAgIChlLnBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzID0gITApLAogICAgICAoZS5vcmlnaW5hbFBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzID0gITApLAogICAgICBwKCExLCAhMCk7CiAgfSksCiAgICB1KCJzZXRUcmFuc2xhdGUiLCAoKSA9PiB7CiAgICAgIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCAmJgogICAgICAgIChlLnBhcmFtcy5jc3NNb2RlICYmICFlLl9pbW1lZGlhdGVWaXJ0dWFsCiAgICAgICAgICA/IChjbGVhclRpbWVvdXQodyksCiAgICAgICAgICAgICh3ID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgcCgpOwogICAgICAgICAgICB9LCAxMDApKSkKICAgICAgICAgIDogcCgpKTsKICAgIH0pLAogICAgdSgiaW5pdCB1cGRhdGUgcmVzaXplIiwgKCkgPT4gewogICAgICBlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQgJiYKICAgICAgICBlLnBhcmFtcy5jc3NNb2RlICYmCiAgICAgICAgT2UoZS53cmFwcGVyRWwsICItLXN3aXBlci12aXJ0dWFsLXNpemUiLCBgJHtlLnZpcnR1YWxTaXplfXB4YCk7CiAgICB9KSwKICAgIE9iamVjdC5hc3NpZ24oZS52aXJ0dWFsLCB7CiAgICAgIGFwcGVuZFNsaWRlOiBzLAogICAgICBwcmVwZW5kU2xpZGU6IHQsCiAgICAgIHJlbW92ZVNsaWRlOiBpLAogICAgICByZW1vdmVBbGxTbGlkZXM6IGQsCiAgICAgIHVwZGF0ZTogcCwKICAgIH0pOwp9CmZ1bmN0aW9uIEZlKE0pIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaCwgb246IHUsIGVtaXQ6IGcgfSA9IE07CiAgY29uc3QgdyA9IGooKSwKICAgIGIgPSBaKCk7CiAgKGUua2V5Ym9hcmQgPSB7IGVuYWJsZWQ6ICExIH0pLAogICAgaCh7IGtleWJvYXJkOiB7IGVuYWJsZWQ6ICExLCBvbmx5SW5WaWV3cG9ydDogITAsIHBhZ2VVcERvd246ICEwIH0gfSk7CiAgZnVuY3Rpb24gRShzKSB7CiAgICBpZiAoIWUuZW5hYmxlZCkgcmV0dXJuOwogICAgY29uc3QgeyBydGxUcmFuc2xhdGU6IHQgfSA9IGU7CiAgICBsZXQgaSA9IHM7CiAgICBpLm9yaWdpbmFsRXZlbnQgJiYgKGkgPSBpLm9yaWdpbmFsRXZlbnQpOwogICAgY29uc3QgZCA9IGkua2V5Q29kZSB8fCBpLmNoYXJDb2RlLAogICAgICBvID0gZS5wYXJhbXMua2V5Ym9hcmQucGFnZVVwRG93biwKICAgICAgbiA9IG8gJiYgZCA9PT0gMzMsCiAgICAgIGwgPSBvICYmIGQgPT09IDM0LAogICAgICBjID0gZCA9PT0gMzcsCiAgICAgIHIgPSBkID09PSAzOSwKICAgICAgYSA9IGQgPT09IDM4LAogICAgICBtID0gZCA9PT0gNDA7CiAgICBpZiAoCiAgICAgICghZS5hbGxvd1NsaWRlTmV4dCAmJgogICAgICAgICgoZS5pc0hvcml6b250YWwoKSAmJiByKSB8fCAoZS5pc1ZlcnRpY2FsKCkgJiYgbSkgfHwgbCkpIHx8CiAgICAgICghZS5hbGxvd1NsaWRlUHJldiAmJgogICAgICAgICgoZS5pc0hvcml6b250YWwoKSAmJiBjKSB8fCAoZS5pc1ZlcnRpY2FsKCkgJiYgYSkgfHwgbikpCiAgICApCiAgICAgIHJldHVybiAhMTsKICAgIGlmICgKICAgICAgIShpLnNoaWZ0S2V5IHx8IGkuYWx0S2V5IHx8IGkuY3RybEtleSB8fCBpLm1ldGFLZXkpICYmCiAgICAgICEoCiAgICAgICAgdy5hY3RpdmVFbGVtZW50ICYmCiAgICAgICAgdy5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lICYmCiAgICAgICAgKHcuYWN0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAiaW5wdXQiIHx8CiAgICAgICAgICB3LmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gInRleHRhcmVhIikKICAgICAgKQogICAgKSB7CiAgICAgIGlmIChlLnBhcmFtcy5rZXlib2FyZC5vbmx5SW5WaWV3cG9ydCAmJiAobiB8fCBsIHx8IGMgfHwgciB8fCBhIHx8IG0pKSB7CiAgICAgICAgbGV0IEMgPSAhMTsKICAgICAgICBpZiAoCiAgICAgICAgICBpZShlLmVsLCBgLiR7ZS5wYXJhbXMuc2xpZGVDbGFzc30sIHN3aXBlci1zbGlkZWApLmxlbmd0aCA+IDAgJiYKICAgICAgICAgIGllKGUuZWwsIGAuJHtlLnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzfWApLmxlbmd0aCA9PT0gMAogICAgICAgICkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBEID0gZS5lbCwKICAgICAgICAgIFAgPSBELmNsaWVudFdpZHRoLAogICAgICAgICAgQSA9IEQuY2xpZW50SGVpZ2h0LAogICAgICAgICAgeCA9IGIuaW5uZXJXaWR0aCwKICAgICAgICAgIE8gPSBiLmlubmVySGVpZ2h0LAogICAgICAgICAgSSA9IGZlKEQpOwogICAgICAgIHQgJiYgKEkubGVmdCAtPSBELnNjcm9sbExlZnQpOwogICAgICAgIGNvbnN0IHogPSBbCiAgICAgICAgICBbSS5sZWZ0LCBJLnRvcF0sCiAgICAgICAgICBbSS5sZWZ0ICsgUCwgSS50b3BdLAogICAgICAgICAgW0kubGVmdCwgSS50b3AgKyBBXSwKICAgICAgICAgIFtJLmxlZnQgKyBQLCBJLnRvcCArIEFdLAogICAgICAgIF07CiAgICAgICAgZm9yIChsZXQgVCA9IDA7IFQgPCB6Lmxlbmd0aDsgVCArPSAxKSB7CiAgICAgICAgICBjb25zdCBTID0geltUXTsKICAgICAgICAgIGlmIChTWzBdID49IDAgJiYgU1swXSA8PSB4ICYmIFNbMV0gPj0gMCAmJiBTWzFdIDw9IE8pIHsKICAgICAgICAgICAgaWYgKFNbMF0gPT09IDAgJiYgU1sxXSA9PT0gMCkgY29udGludWU7CiAgICAgICAgICAgIEMgPSAhMDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFDKSByZXR1cm47CiAgICAgIH0KICAgICAgZS5pc0hvcml6b250YWwoKQogICAgICAgID8gKChuIHx8IGwgfHwgYyB8fCByKSAmJgogICAgICAgICAgICAoaS5wcmV2ZW50RGVmYXVsdCA/IGkucHJldmVudERlZmF1bHQoKSA6IChpLnJldHVyblZhbHVlID0gITEpKSwKICAgICAgICAgICgoKGwgfHwgcikgJiYgIXQpIHx8ICgobiB8fCBjKSAmJiB0KSkgJiYgZS5zbGlkZU5leHQoKSwKICAgICAgICAgICgoKG4gfHwgYykgJiYgIXQpIHx8ICgobCB8fCByKSAmJiB0KSkgJiYgZS5zbGlkZVByZXYoKSkKICAgICAgICA6ICgobiB8fCBsIHx8IGEgfHwgbSkgJiYKICAgICAgICAgICAgKGkucHJldmVudERlZmF1bHQgPyBpLnByZXZlbnREZWZhdWx0KCkgOiAoaS5yZXR1cm5WYWx1ZSA9ICExKSksCiAgICAgICAgICAobCB8fCBtKSAmJiBlLnNsaWRlTmV4dCgpLAogICAgICAgICAgKG4gfHwgYSkgJiYgZS5zbGlkZVByZXYoKSksCiAgICAgICAgZygia2V5UHJlc3MiLCBkKTsKICAgIH0KICB9CiAgZnVuY3Rpb24gZigpIHsKICAgIGUua2V5Ym9hcmQuZW5hYmxlZCB8fAogICAgICAody5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgRSksIChlLmtleWJvYXJkLmVuYWJsZWQgPSAhMCkpOwogIH0KICBmdW5jdGlvbiBwKCkgewogICAgZS5rZXlib2FyZC5lbmFibGVkICYmCiAgICAgICh3LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBFKSwgKGUua2V5Ym9hcmQuZW5hYmxlZCA9ICExKSk7CiAgfQogIHUoImluaXQiLCAoKSA9PiB7CiAgICBlLnBhcmFtcy5rZXlib2FyZC5lbmFibGVkICYmIGYoKTsKICB9KSwKICAgIHUoImRlc3Ryb3kiLCAoKSA9PiB7CiAgICAgIGUua2V5Ym9hcmQuZW5hYmxlZCAmJiBwKCk7CiAgICB9KSwKICAgIE9iamVjdC5hc3NpZ24oZS5rZXlib2FyZCwgeyBlbmFibGU6IGYsIGRpc2FibGU6IHAgfSk7Cn0KZnVuY3Rpb24gR2UoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZXh0ZW5kUGFyYW1zOiBoLCBvbjogdSwgZW1pdDogZyB9ID0gTTsKICBjb25zdCB3ID0gWigpOwogIGgoewogICAgbW91c2V3aGVlbDogewogICAgICBlbmFibGVkOiAhMSwKICAgICAgcmVsZWFzZU9uRWRnZXM6ICExLAogICAgICBpbnZlcnQ6ICExLAogICAgICBmb3JjZVRvQXhpczogITEsCiAgICAgIHNlbnNpdGl2aXR5OiAxLAogICAgICBldmVudHNUYXJnZXQ6ICJjb250YWluZXIiLAogICAgICB0aHJlc2hvbGREZWx0YTogbnVsbCwKICAgICAgdGhyZXNob2xkVGltZTogbnVsbCwKICAgICAgbm9Nb3VzZXdoZWVsQ2xhc3M6ICJzd2lwZXItbm8tbW91c2V3aGVlbCIsCiAgICB9LAogIH0pLAogICAgKGUubW91c2V3aGVlbCA9IHsgZW5hYmxlZDogITEgfSk7CiAgbGV0IGIsCiAgICBFID0gVSgpLAogICAgZjsKICBjb25zdCBwID0gW107CiAgZnVuY3Rpb24gcyhhKSB7CiAgICBsZXQgUCA9IDAsCiAgICAgIEEgPSAwLAogICAgICB4ID0gMCwKICAgICAgTyA9IDA7CiAgICByZXR1cm4gKAogICAgICAiZGV0YWlsIiBpbiBhICYmIChBID0gYS5kZXRhaWwpLAogICAgICAid2hlZWxEZWx0YSIgaW4gYSAmJiAoQSA9IC1hLndoZWVsRGVsdGEgLyAxMjApLAogICAgICAid2hlZWxEZWx0YVkiIGluIGEgJiYgKEEgPSAtYS53aGVlbERlbHRhWSAvIDEyMCksCiAgICAgICJ3aGVlbERlbHRhWCIgaW4gYSAmJiAoUCA9IC1hLndoZWVsRGVsdGFYIC8gMTIwKSwKICAgICAgImF4aXMiIGluIGEgJiYgYS5heGlzID09PSBhLkhPUklaT05UQUxfQVhJUyAmJiAoKFAgPSBBKSwgKEEgPSAwKSksCiAgICAgICh4ID0gUCAqIDEwKSwKICAgICAgKE8gPSBBICogMTApLAogICAgICAiZGVsdGFZIiBpbiBhICYmIChPID0gYS5kZWx0YVkpLAogICAgICAiZGVsdGFYIiBpbiBhICYmICh4ID0gYS5kZWx0YVgpLAogICAgICBhLnNoaWZ0S2V5ICYmICF4ICYmICgoeCA9IE8pLCAoTyA9IDApKSwKICAgICAgKHggfHwgTykgJiYKICAgICAgICBhLmRlbHRhTW9kZSAmJgogICAgICAgIChhLmRlbHRhTW9kZSA9PT0gMSA/ICgoeCAqPSA0MCksIChPICo9IDQwKSkgOiAoKHggKj0gODAwKSwgKE8gKj0gODAwKSkpLAogICAgICB4ICYmICFQICYmIChQID0geCA8IDEgPyAtMSA6IDEpLAogICAgICBPICYmICFBICYmIChBID0gTyA8IDEgPyAtMSA6IDEpLAogICAgICB7IHNwaW5YOiBQLCBzcGluWTogQSwgcGl4ZWxYOiB4LCBwaXhlbFk6IE8gfQogICAgKTsKICB9CiAgZnVuY3Rpb24gdCgpIHsKICAgIGUuZW5hYmxlZCAmJiAoZS5tb3VzZUVudGVyZWQgPSAhMCk7CiAgfQogIGZ1bmN0aW9uIGkoKSB7CiAgICBlLmVuYWJsZWQgJiYgKGUubW91c2VFbnRlcmVkID0gITEpOwogIH0KICBmdW5jdGlvbiBkKGEpIHsKICAgIHJldHVybiAoZS5wYXJhbXMubW91c2V3aGVlbC50aHJlc2hvbGREZWx0YSAmJgogICAgICBhLmRlbHRhIDwgZS5wYXJhbXMubW91c2V3aGVlbC50aHJlc2hvbGREZWx0YSkgfHwKICAgICAgKGUucGFyYW1zLm1vdXNld2hlZWwudGhyZXNob2xkVGltZSAmJgogICAgICAgIFUoKSAtIEUgPCBlLnBhcmFtcy5tb3VzZXdoZWVsLnRocmVzaG9sZFRpbWUpCiAgICAgID8gITEKICAgICAgOiBhLmRlbHRhID49IDYgJiYgVSgpIC0gRSA8IDYwCiAgICAgID8gITAKICAgICAgOiAoYS5kaXJlY3Rpb24gPCAwCiAgICAgICAgICA/ICghZS5pc0VuZCB8fCBlLnBhcmFtcy5sb29wKSAmJgogICAgICAgICAgICAhZS5hbmltYXRpbmcgJiYKICAgICAgICAgICAgKGUuc2xpZGVOZXh0KCksIGcoInNjcm9sbCIsIGEucmF3KSkKICAgICAgICAgIDogKCFlLmlzQmVnaW5uaW5nIHx8IGUucGFyYW1zLmxvb3ApICYmCiAgICAgICAgICAgICFlLmFuaW1hdGluZyAmJgogICAgICAgICAgICAoZS5zbGlkZVByZXYoKSwgZygic2Nyb2xsIiwgYS5yYXcpKSwKICAgICAgICAoRSA9IG5ldyB3LkRhdGUoKS5nZXRUaW1lKCkpLAogICAgICAgICExKTsKICB9CiAgZnVuY3Rpb24gbyhhKSB7CiAgICBjb25zdCBtID0gZS5wYXJhbXMubW91c2V3aGVlbDsKICAgIGlmIChhLmRpcmVjdGlvbiA8IDApIHsKICAgICAgaWYgKGUuaXNFbmQgJiYgIWUucGFyYW1zLmxvb3AgJiYgbS5yZWxlYXNlT25FZGdlcykgcmV0dXJuICEwOwogICAgfSBlbHNlIGlmIChlLmlzQmVnaW5uaW5nICYmICFlLnBhcmFtcy5sb29wICYmIG0ucmVsZWFzZU9uRWRnZXMpIHJldHVybiAhMDsKICAgIHJldHVybiAhMTsKICB9CiAgZnVuY3Rpb24gbihhKSB7CiAgICBsZXQgbSA9IGEsCiAgICAgIEMgPSAhMDsKICAgIGlmICgKICAgICAgIWUuZW5hYmxlZCB8fAogICAgICBhLnRhcmdldC5jbG9zZXN0KGAuJHtlLnBhcmFtcy5tb3VzZXdoZWVsLm5vTW91c2V3aGVlbENsYXNzfWApCiAgICApCiAgICAgIHJldHVybjsKICAgIGNvbnN0IEQgPSBlLnBhcmFtcy5tb3VzZXdoZWVsOwogICAgZS5wYXJhbXMuY3NzTW9kZSAmJiBtLnByZXZlbnREZWZhdWx0KCk7CiAgICBsZXQgUCA9IGUuZWw7CiAgICBlLnBhcmFtcy5tb3VzZXdoZWVsLmV2ZW50c1RhcmdldCAhPT0gImNvbnRhaW5lciIgJiYKICAgICAgKFAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUucGFyYW1zLm1vdXNld2hlZWwuZXZlbnRzVGFyZ2V0KSk7CiAgICBjb25zdCBBID0gUCAmJiBQLmNvbnRhaW5zKG0udGFyZ2V0KTsKICAgIGlmICghZS5tb3VzZUVudGVyZWQgJiYgIUEgJiYgIUQucmVsZWFzZU9uRWRnZXMpIHJldHVybiAhMDsKICAgIG0ub3JpZ2luYWxFdmVudCAmJiAobSA9IG0ub3JpZ2luYWxFdmVudCk7CiAgICBsZXQgeCA9IDA7CiAgICBjb25zdCBPID0gZS5ydGxUcmFuc2xhdGUgPyAtMSA6IDEsCiAgICAgIEkgPSBzKG0pOwogICAgaWYgKEQuZm9yY2VUb0F4aXMpCiAgICAgIGlmIChlLmlzSG9yaXpvbnRhbCgpKQogICAgICAgIGlmIChNYXRoLmFicyhJLnBpeGVsWCkgPiBNYXRoLmFicyhJLnBpeGVsWSkpIHggPSAtSS5waXhlbFggKiBPOwogICAgICAgIGVsc2UgcmV0dXJuICEwOwogICAgICBlbHNlIGlmIChNYXRoLmFicyhJLnBpeGVsWSkgPiBNYXRoLmFicyhJLnBpeGVsWCkpIHggPSAtSS5waXhlbFk7CiAgICAgIGVsc2UgcmV0dXJuICEwOwogICAgZWxzZQogICAgICB4ID0gTWF0aC5hYnMoSS5waXhlbFgpID4gTWF0aC5hYnMoSS5waXhlbFkpID8gLUkucGl4ZWxYICogTyA6IC1JLnBpeGVsWTsKICAgIGlmICh4ID09PSAwKSByZXR1cm4gITA7CiAgICBELmludmVydCAmJiAoeCA9IC14KTsKICAgIGxldCB6ID0gZS5nZXRUcmFuc2xhdGUoKSArIHggKiBELnNlbnNpdGl2aXR5OwogICAgaWYgKAogICAgICAoeiA+PSBlLm1pblRyYW5zbGF0ZSgpICYmICh6ID0gZS5taW5UcmFuc2xhdGUoKSksCiAgICAgIHogPD0gZS5tYXhUcmFuc2xhdGUoKSAmJiAoeiA9IGUubWF4VHJhbnNsYXRlKCkpLAogICAgICAoQyA9IGUucGFyYW1zLmxvb3AKICAgICAgICA/ICEwCiAgICAgICAgOiAhKHogPT09IGUubWluVHJhbnNsYXRlKCkgfHwgeiA9PT0gZS5tYXhUcmFuc2xhdGUoKSkpLAogICAgICBDICYmIGUucGFyYW1zLm5lc3RlZCAmJiBtLnN0b3BQcm9wYWdhdGlvbigpLAogICAgICAhZS5wYXJhbXMuZnJlZU1vZGUgfHwgIWUucGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQpCiAgICApIHsKICAgICAgY29uc3QgVCA9IHsKICAgICAgICB0aW1lOiBVKCksCiAgICAgICAgZGVsdGE6IE1hdGguYWJzKHgpLAogICAgICAgIGRpcmVjdGlvbjogTWF0aC5zaWduKHgpLAogICAgICAgIHJhdzogYSwKICAgICAgfTsKICAgICAgcC5sZW5ndGggPj0gMiAmJiBwLnNoaWZ0KCk7CiAgICAgIGNvbnN0IFMgPSBwLmxlbmd0aCA/IHBbcC5sZW5ndGggLSAxXSA6IHZvaWQgMDsKICAgICAgaWYgKAogICAgICAgIChwLnB1c2goVCksCiAgICAgICAgUwogICAgICAgICAgPyAoVC5kaXJlY3Rpb24gIT09IFMuZGlyZWN0aW9uIHx8CiAgICAgICAgICAgICAgVC5kZWx0YSA+IFMuZGVsdGEgfHwKICAgICAgICAgICAgICBULnRpbWUgPiBTLnRpbWUgKyAxNTApICYmCiAgICAgICAgICAgIGQoVCkKICAgICAgICAgIDogZChUKSwKICAgICAgICBvKFQpKQogICAgICApCiAgICAgICAgcmV0dXJuICEwOwogICAgfSBlbHNlIHsKICAgICAgY29uc3QgVCA9IHsgdGltZTogVSgpLCBkZWx0YTogTWF0aC5hYnMoeCksIGRpcmVjdGlvbjogTWF0aC5zaWduKHgpIH0sCiAgICAgICAgUyA9CiAgICAgICAgICBmICYmCiAgICAgICAgICBULnRpbWUgPCBmLnRpbWUgKyA1MDAgJiYKICAgICAgICAgIFQuZGVsdGEgPD0gZi5kZWx0YSAmJgogICAgICAgICAgVC5kaXJlY3Rpb24gPT09IGYuZGlyZWN0aW9uOwogICAgICBpZiAoIVMpIHsKICAgICAgICBmID0gdm9pZCAwOwogICAgICAgIGxldCBMID0gZS5nZXRUcmFuc2xhdGUoKSArIHggKiBELnNlbnNpdGl2aXR5OwogICAgICAgIGNvbnN0IFkgPSBlLmlzQmVnaW5uaW5nLAogICAgICAgICAgdiA9IGUuaXNFbmQ7CiAgICAgICAgaWYgKAogICAgICAgICAgKEwgPj0gZS5taW5UcmFuc2xhdGUoKSAmJiAoTCA9IGUubWluVHJhbnNsYXRlKCkpLAogICAgICAgICAgTCA8PSBlLm1heFRyYW5zbGF0ZSgpICYmIChMID0gZS5tYXhUcmFuc2xhdGUoKSksCiAgICAgICAgICBlLnNldFRyYW5zaXRpb24oMCksCiAgICAgICAgICBlLnNldFRyYW5zbGF0ZShMKSwKICAgICAgICAgIGUudXBkYXRlUHJvZ3Jlc3MoKSwKICAgICAgICAgIGUudXBkYXRlQWN0aXZlSW5kZXgoKSwKICAgICAgICAgIGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpLAogICAgICAgICAgKCghWSAmJiBlLmlzQmVnaW5uaW5nKSB8fCAoIXYgJiYgZS5pc0VuZCkpICYmIGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpLAogICAgICAgICAgZS5wYXJhbXMubG9vcCAmJgogICAgICAgICAgICBlLmxvb3BGaXgoewogICAgICAgICAgICAgIGRpcmVjdGlvbjogVC5kaXJlY3Rpb24gPCAwID8gIm5leHQiIDogInByZXYiLAogICAgICAgICAgICAgIGJ5TW91c2V3aGVlbDogITAsCiAgICAgICAgICAgIH0pLAogICAgICAgICAgZS5wYXJhbXMuZnJlZU1vZGUuc3RpY2t5KQogICAgICAgICkgewogICAgICAgICAgY2xlYXJUaW1lb3V0KGIpLCAoYiA9IHZvaWQgMCksIHAubGVuZ3RoID49IDE1ICYmIHAuc2hpZnQoKTsKICAgICAgICAgIGNvbnN0IHkgPSBwLmxlbmd0aCA/IHBbcC5sZW5ndGggLSAxXSA6IHZvaWQgMCwKICAgICAgICAgICAgSCA9IHBbMF07CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgIChwLnB1c2goVCksIHkgJiYgKFQuZGVsdGEgPiB5LmRlbHRhIHx8IFQuZGlyZWN0aW9uICE9PSB5LmRpcmVjdGlvbikpCiAgICAgICAgICApCiAgICAgICAgICAgIHAuc3BsaWNlKDApOwogICAgICAgICAgZWxzZSBpZiAoCiAgICAgICAgICAgIHAubGVuZ3RoID49IDE1ICYmCiAgICAgICAgICAgIFQudGltZSAtIEgudGltZSA8IDUwMCAmJgogICAgICAgICAgICBILmRlbHRhIC0gVC5kZWx0YSA+PSAxICYmCiAgICAgICAgICAgIFQuZGVsdGEgPD0gNgogICAgICAgICAgKSB7CiAgICAgICAgICAgIGNvbnN0IEIgPSB4ID4gMCA/IDAuOCA6IDAuMjsKICAgICAgICAgICAgKGYgPSBUKSwKICAgICAgICAgICAgICBwLnNwbGljZSgwKSwKICAgICAgICAgICAgICAoYiA9IHVlKCgpID0+IHsKICAgICAgICAgICAgICAgIGUuZGVzdHJveWVkIHx8CiAgICAgICAgICAgICAgICAgICFlLnBhcmFtcyB8fAogICAgICAgICAgICAgICAgICBlLnNsaWRlVG9DbG9zZXN0KGUucGFyYW1zLnNwZWVkLCAhMCwgdm9pZCAwLCBCKTsKICAgICAgICAgICAgICB9LCAwKSk7CiAgICAgICAgICB9CiAgICAgICAgICBiIHx8CiAgICAgICAgICAgIChiID0gdWUoKCkgPT4gewogICAgICAgICAgICAgIGlmIChlLmRlc3Ryb3llZCB8fCAhZS5wYXJhbXMpIHJldHVybjsKICAgICAgICAgICAgICBjb25zdCBCID0gMC41OwogICAgICAgICAgICAgIChmID0gVCksCiAgICAgICAgICAgICAgICBwLnNwbGljZSgwKSwKICAgICAgICAgICAgICAgIGUuc2xpZGVUb0Nsb3Nlc3QoZS5wYXJhbXMuc3BlZWQsICEwLCB2b2lkIDAsIEIpOwogICAgICAgICAgICB9LCA1MDApKTsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgKFMgfHwgZygic2Nyb2xsIiwgbSksCiAgICAgICAgICBlLnBhcmFtcy5hdXRvcGxheSAmJgogICAgICAgICAgICBlLnBhcmFtcy5hdXRvcGxheURpc2FibGVPbkludGVyYWN0aW9uICYmCiAgICAgICAgICAgIGUuYXV0b3BsYXkuc3RvcCgpLAogICAgICAgICAgRC5yZWxlYXNlT25FZGdlcyAmJgogICAgICAgICAgICAoTCA9PT0gZS5taW5UcmFuc2xhdGUoKSB8fCBMID09PSBlLm1heFRyYW5zbGF0ZSgpKSkKICAgICAgICApCiAgICAgICAgICByZXR1cm4gITA7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBtLnByZXZlbnREZWZhdWx0ID8gbS5wcmV2ZW50RGVmYXVsdCgpIDogKG0ucmV0dXJuVmFsdWUgPSAhMSksICExOwogIH0KICBmdW5jdGlvbiBsKGEpIHsKICAgIGxldCBtID0gZS5lbDsKICAgIGUucGFyYW1zLm1vdXNld2hlZWwuZXZlbnRzVGFyZ2V0ICE9PSAiY29udGFpbmVyIiAmJgogICAgICAobSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZS5wYXJhbXMubW91c2V3aGVlbC5ldmVudHNUYXJnZXQpKSwKICAgICAgbVthXSgibW91c2VlbnRlciIsIHQpLAogICAgICBtW2FdKCJtb3VzZWxlYXZlIiwgaSksCiAgICAgIG1bYV0oIndoZWVsIiwgbik7CiAgfQogIGZ1bmN0aW9uIGMoKSB7CiAgICByZXR1cm4gZS5wYXJhbXMuY3NzTW9kZQogICAgICA/IChlLndyYXBwZXJFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsIG4pLCAhMCkKICAgICAgOiBlLm1vdXNld2hlZWwuZW5hYmxlZAogICAgICA/ICExCiAgICAgIDogKGwoImFkZEV2ZW50TGlzdGVuZXIiKSwgKGUubW91c2V3aGVlbC5lbmFibGVkID0gITApLCAhMCk7CiAgfQogIGZ1bmN0aW9uIHIoKSB7CiAgICByZXR1cm4gZS5wYXJhbXMuY3NzTW9kZQogICAgICA/IChlLndyYXBwZXJFbC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBuKSwgITApCiAgICAgIDogZS5tb3VzZXdoZWVsLmVuYWJsZWQKICAgICAgPyAobCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIpLCAoZS5tb3VzZXdoZWVsLmVuYWJsZWQgPSAhMSksICEwKQogICAgICA6ICExOwogIH0KICB1KCJpbml0IiwgKCkgPT4gewogICAgIWUucGFyYW1zLm1vdXNld2hlZWwuZW5hYmxlZCAmJiBlLnBhcmFtcy5jc3NNb2RlICYmIHIoKSwKICAgICAgZS5wYXJhbXMubW91c2V3aGVlbC5lbmFibGVkICYmIGMoKTsKICB9KSwKICAgIHUoImRlc3Ryb3kiLCAoKSA9PiB7CiAgICAgIGUucGFyYW1zLmNzc01vZGUgJiYgYygpLCBlLm1vdXNld2hlZWwuZW5hYmxlZCAmJiByKCk7CiAgICB9KSwKICAgIE9iamVjdC5hc3NpZ24oZS5tb3VzZXdoZWVsLCB7IGVuYWJsZTogYywgZGlzYWJsZTogciB9KTsKfQpmdW5jdGlvbiB4ZShNLCBlLCBoLCB1KSB7CiAgcmV0dXJuICgKICAgIE0ucGFyYW1zLmNyZWF0ZUVsZW1lbnRzICYmCiAgICAgIE9iamVjdC5rZXlzKHUpLmZvckVhY2goKGcpID0+IHsKICAgICAgICBpZiAoIWhbZ10gJiYgaC5hdXRvID09PSAhMCkgewogICAgICAgICAgbGV0IHcgPSBLKE0uZWwsIGAuJHt1W2ddfWApWzBdOwogICAgICAgICAgdyB8fCAoKHcgPSBHKCJkaXYiLCB1W2ddKSksICh3LmNsYXNzTmFtZSA9IHVbZ10pLCBNLmVsLmFwcGVuZCh3KSksCiAgICAgICAgICAgIChoW2ddID0gdyksCiAgICAgICAgICAgIChlW2ddID0gdyk7CiAgICAgICAgfQogICAgICB9KSwKICAgIGgKICApOwp9CmZ1bmN0aW9uIGplKE0pIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaCwgb246IHUsIGVtaXQ6IGcgfSA9IE07CiAgaCh7CiAgICBuYXZpZ2F0aW9uOiB7CiAgICAgIG5leHRFbDogbnVsbCwKICAgICAgcHJldkVsOiBudWxsLAogICAgICBoaWRlT25DbGljazogITEsCiAgICAgIGRpc2FibGVkQ2xhc3M6ICJzd2lwZXItYnV0dG9uLWRpc2FibGVkIiwKICAgICAgaGlkZGVuQ2xhc3M6ICJzd2lwZXItYnV0dG9uLWhpZGRlbiIsCiAgICAgIGxvY2tDbGFzczogInN3aXBlci1idXR0b24tbG9jayIsCiAgICAgIG5hdmlnYXRpb25EaXNhYmxlZENsYXNzOiAic3dpcGVyLW5hdmlnYXRpb24tZGlzYWJsZWQiLAogICAgfSwKICB9KSwKICAgIChlLm5hdmlnYXRpb24gPSB7IG5leHRFbDogbnVsbCwgcHJldkVsOiBudWxsIH0pOwogIGZ1bmN0aW9uIHcobykgewogICAgbGV0IG47CiAgICByZXR1cm4gbyAmJgogICAgICB0eXBlb2YgbyA9PSAic3RyaW5nIiAmJgogICAgICBlLmlzRWxlbWVudCAmJgogICAgICAoKG4gPSBlLmVsLnF1ZXJ5U2VsZWN0b3IobykgfHwgZS5ob3N0RWwucXVlcnlTZWxlY3RvcihvKSksIG4pCiAgICAgID8gbgogICAgICA6IChvICYmCiAgICAgICAgICAodHlwZW9mIG8gPT0gInN0cmluZyIgJiYgKG4gPSBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChvKV0pLAogICAgICAgICAgZS5wYXJhbXMudW5pcXVlTmF2RWxlbWVudHMgJiYKICAgICAgICAgIHR5cGVvZiBvID09ICJzdHJpbmciICYmCiAgICAgICAgICBuICYmCiAgICAgICAgICBuLmxlbmd0aCA+IDEgJiYKICAgICAgICAgIGUuZWwucXVlcnlTZWxlY3RvckFsbChvKS5sZW5ndGggPT09IDEKICAgICAgICAgICAgPyAobiA9IGUuZWwucXVlcnlTZWxlY3RvcihvKSkKICAgICAgICAgICAgOiBuICYmIG4ubGVuZ3RoID09PSAxICYmIChuID0gblswXSkpLAogICAgICAgIG8gJiYgIW4gPyBvIDogbik7CiAgfQogIGZ1bmN0aW9uIGIobywgbikgewogICAgY29uc3QgbCA9IGUucGFyYW1zLm5hdmlnYXRpb247CiAgICAobyA9IHEobykpLAogICAgICBvLmZvckVhY2goKGMpID0+IHsKICAgICAgICBjICYmCiAgICAgICAgICAoYy5jbGFzc0xpc3RbbiA/ICJhZGQiIDogInJlbW92ZSJdKC4uLmwuZGlzYWJsZWRDbGFzcy5zcGxpdCgiICIpKSwKICAgICAgICAgIGMudGFnTmFtZSA9PT0gIkJVVFRPTiIgJiYgKGMuZGlzYWJsZWQgPSBuKSwKICAgICAgICAgIGUucGFyYW1zLndhdGNoT3ZlcmZsb3cgJiYKICAgICAgICAgICAgZS5lbmFibGVkICYmCiAgICAgICAgICAgIGMuY2xhc3NMaXN0W2UuaXNMb2NrZWQgPyAiYWRkIiA6ICJyZW1vdmUiXShsLmxvY2tDbGFzcykpOwogICAgICB9KTsKICB9CiAgZnVuY3Rpb24gRSgpIHsKICAgIGNvbnN0IHsgbmV4dEVsOiBvLCBwcmV2RWw6IG4gfSA9IGUubmF2aWdhdGlvbjsKICAgIGlmIChlLnBhcmFtcy5sb29wKSB7CiAgICAgIGIobiwgITEpLCBiKG8sICExKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgYihuLCBlLmlzQmVnaW5uaW5nICYmICFlLnBhcmFtcy5yZXdpbmQpLCBiKG8sIGUuaXNFbmQgJiYgIWUucGFyYW1zLnJld2luZCk7CiAgfQogIGZ1bmN0aW9uIGYobykgewogICAgby5wcmV2ZW50RGVmYXVsdCgpLAogICAgICAhKGUuaXNCZWdpbm5pbmcgJiYgIWUucGFyYW1zLmxvb3AgJiYgIWUucGFyYW1zLnJld2luZCkgJiYKICAgICAgICAoZS5zbGlkZVByZXYoKSwgZygibmF2aWdhdGlvblByZXYiKSk7CiAgfQogIGZ1bmN0aW9uIHAobykgewogICAgby5wcmV2ZW50RGVmYXVsdCgpLAogICAgICAhKGUuaXNFbmQgJiYgIWUucGFyYW1zLmxvb3AgJiYgIWUucGFyYW1zLnJld2luZCkgJiYKICAgICAgICAoZS5zbGlkZU5leHQoKSwgZygibmF2aWdhdGlvbk5leHQiKSk7CiAgfQogIGZ1bmN0aW9uIHMoKSB7CiAgICBjb25zdCBvID0gZS5wYXJhbXMubmF2aWdhdGlvbjsKICAgIGlmICgKICAgICAgKChlLnBhcmFtcy5uYXZpZ2F0aW9uID0geGUoCiAgICAgICAgZSwKICAgICAgICBlLm9yaWdpbmFsUGFyYW1zLm5hdmlnYXRpb24sCiAgICAgICAgZS5wYXJhbXMubmF2aWdhdGlvbiwKICAgICAgICB7IG5leHRFbDogInN3aXBlci1idXR0b24tbmV4dCIsIHByZXZFbDogInN3aXBlci1idXR0b24tcHJldiIgfQogICAgICApKSwKICAgICAgIShvLm5leHRFbCB8fCBvLnByZXZFbCkpCiAgICApCiAgICAgIHJldHVybjsKICAgIGxldCBuID0gdyhvLm5leHRFbCksCiAgICAgIGwgPSB3KG8ucHJldkVsKTsKICAgIE9iamVjdC5hc3NpZ24oZS5uYXZpZ2F0aW9uLCB7IG5leHRFbDogbiwgcHJldkVsOiBsIH0pLAogICAgICAobiA9IHEobikpLAogICAgICAobCA9IHEobCkpOwogICAgY29uc3QgYyA9IChyLCBhKSA9PiB7CiAgICAgIHIgJiYgci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGEgPT09ICJuZXh0IiA/IHAgOiBmKSwKICAgICAgICAhZS5lbmFibGVkICYmIHIgJiYgci5jbGFzc0xpc3QuYWRkKC4uLm8ubG9ja0NsYXNzLnNwbGl0KCIgIikpOwogICAgfTsKICAgIG4uZm9yRWFjaCgocikgPT4gYyhyLCAibmV4dCIpKSwgbC5mb3JFYWNoKChyKSA9PiBjKHIsICJwcmV2IikpOwogIH0KICBmdW5jdGlvbiB0KCkgewogICAgbGV0IHsgbmV4dEVsOiBvLCBwcmV2RWw6IG4gfSA9IGUubmF2aWdhdGlvbjsKICAgIChvID0gcShvKSksIChuID0gcShuKSk7CiAgICBjb25zdCBsID0gKGMsIHIpID0+IHsKICAgICAgYy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIHIgPT09ICJuZXh0IiA/IHAgOiBmKSwKICAgICAgICBjLmNsYXNzTGlzdC5yZW1vdmUoLi4uZS5wYXJhbXMubmF2aWdhdGlvbi5kaXNhYmxlZENsYXNzLnNwbGl0KCIgIikpOwogICAgfTsKICAgIG8uZm9yRWFjaCgoYykgPT4gbChjLCAibmV4dCIpKSwgbi5mb3JFYWNoKChjKSA9PiBsKGMsICJwcmV2IikpOwogIH0KICB1KCJpbml0IiwgKCkgPT4gewogICAgZS5wYXJhbXMubmF2aWdhdGlvbi5lbmFibGVkID09PSAhMSA/IGQoKSA6IChzKCksIEUoKSk7CiAgfSksCiAgICB1KCJ0b0VkZ2UgZnJvbUVkZ2UgbG9jayB1bmxvY2siLCAoKSA9PiB7CiAgICAgIEUoKTsKICAgIH0pLAogICAgdSgiZGVzdHJveSIsICgpID0+IHsKICAgICAgdCgpOwogICAgfSksCiAgICB1KCJlbmFibGUgZGlzYWJsZSIsICgpID0+IHsKICAgICAgbGV0IHsgbmV4dEVsOiBvLCBwcmV2RWw6IG4gfSA9IGUubmF2aWdhdGlvbjsKICAgICAgaWYgKCgobyA9IHEobykpLCAobiA9IHEobikpLCBlLmVuYWJsZWQpKSB7CiAgICAgICAgRSgpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBbLi4ubywgLi4ubl0KICAgICAgICAuZmlsdGVyKChsKSA9PiAhIWwpCiAgICAgICAgLmZvckVhY2goKGwpID0+IGwuY2xhc3NMaXN0LmFkZChlLnBhcmFtcy5uYXZpZ2F0aW9uLmxvY2tDbGFzcykpOwogICAgfSksCiAgICB1KCJjbGljayIsIChvLCBuKSA9PiB7CiAgICAgIGxldCB7IG5leHRFbDogbCwgcHJldkVsOiBjIH0gPSBlLm5hdmlnYXRpb247CiAgICAgIChsID0gcShsKSksIChjID0gcShjKSk7CiAgICAgIGNvbnN0IHIgPSBuLnRhcmdldDsKICAgICAgbGV0IGEgPSBjLmluY2x1ZGVzKHIpIHx8IGwuaW5jbHVkZXMocik7CiAgICAgIGlmIChlLmlzRWxlbWVudCAmJiAhYSkgewogICAgICAgIGNvbnN0IG0gPSBuLnBhdGggfHwgKG4uY29tcG9zZWRQYXRoICYmIG4uY29tcG9zZWRQYXRoKCkpOwogICAgICAgIG0gJiYgKGEgPSBtLmZpbmQoKEMpID0+IGwuaW5jbHVkZXMoQykgfHwgYy5pbmNsdWRlcyhDKSkpOwogICAgICB9CiAgICAgIGlmIChlLnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGVPbkNsaWNrICYmICFhKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgZS5wYWdpbmF0aW9uICYmCiAgICAgICAgICBlLnBhcmFtcy5wYWdpbmF0aW9uICYmCiAgICAgICAgICBlLnBhcmFtcy5wYWdpbmF0aW9uLmNsaWNrYWJsZSAmJgogICAgICAgICAgKGUucGFnaW5hdGlvbi5lbCA9PT0gciB8fCBlLnBhZ2luYXRpb24uZWwuY29udGFpbnMocikpCiAgICAgICAgKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGxldCBtOwogICAgICAgIGwubGVuZ3RoCiAgICAgICAgICA/IChtID0gbFswXS5jbGFzc0xpc3QuY29udGFpbnMoZS5wYXJhbXMubmF2aWdhdGlvbi5oaWRkZW5DbGFzcykpCiAgICAgICAgICA6IGMubGVuZ3RoICYmCiAgICAgICAgICAgIChtID0gY1swXS5jbGFzc0xpc3QuY29udGFpbnMoZS5wYXJhbXMubmF2aWdhdGlvbi5oaWRkZW5DbGFzcykpLAogICAgICAgICAgZyhtID09PSAhMCA/ICJuYXZpZ2F0aW9uU2hvdyIgOiAibmF2aWdhdGlvbkhpZGUiKSwKICAgICAgICAgIFsuLi5sLCAuLi5jXQogICAgICAgICAgICAuZmlsdGVyKChDKSA9PiAhIUMpCiAgICAgICAgICAgIC5mb3JFYWNoKChDKSA9PgogICAgICAgICAgICAgIEMuY2xhc3NMaXN0LnRvZ2dsZShlLnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGRlbkNsYXNzKQogICAgICAgICAgICApOwogICAgICB9CiAgICB9KTsKICBjb25zdCBpID0gKCkgPT4gewogICAgICBlLmVsLmNsYXNzTGlzdC5yZW1vdmUoCiAgICAgICAgLi4uZS5wYXJhbXMubmF2aWdhdGlvbi5uYXZpZ2F0aW9uRGlzYWJsZWRDbGFzcy5zcGxpdCgiICIpCiAgICAgICksCiAgICAgICAgcygpLAogICAgICAgIEUoKTsKICAgIH0sCiAgICBkID0gKCkgPT4gewogICAgICBlLmVsLmNsYXNzTGlzdC5hZGQoCiAgICAgICAgLi4uZS5wYXJhbXMubmF2aWdhdGlvbi5uYXZpZ2F0aW9uRGlzYWJsZWRDbGFzcy5zcGxpdCgiICIpCiAgICAgICksCiAgICAgICAgdCgpOwogICAgfTsKICBPYmplY3QuYXNzaWduKGUubmF2aWdhdGlvbiwgewogICAgZW5hYmxlOiBpLAogICAgZGlzYWJsZTogZCwKICAgIHVwZGF0ZTogRSwKICAgIGluaXQ6IHMsCiAgICBkZXN0cm95OiB0LAogIH0pOwp9CmZ1bmN0aW9uIF8oTSkgewogIHJldHVybiAoCiAgICBNID09PSB2b2lkIDAgJiYgKE0gPSAiIiksCiAgICBgLiR7TS50cmltKCkKICAgICAgLnJlcGxhY2UoLyhbXC46IStcL10pL2csICJcXCQxIikKICAgICAgLnJlcGxhY2UoLyAvZywgIi4iKX1gCiAgKTsKfQpmdW5jdGlvbiBWZShNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIG9uOiB1LCBlbWl0OiBnIH0gPSBNOwogIGNvbnN0IHcgPSAic3dpcGVyLXBhZ2luYXRpb24iOwogIGgoewogICAgcGFnaW5hdGlvbjogewogICAgICBlbDogbnVsbCwKICAgICAgYnVsbGV0RWxlbWVudDogInNwYW4iLAogICAgICBjbGlja2FibGU6ICExLAogICAgICBoaWRlT25DbGljazogITEsCiAgICAgIHJlbmRlckJ1bGxldDogbnVsbCwKICAgICAgcmVuZGVyUHJvZ3Jlc3NiYXI6IG51bGwsCiAgICAgIHJlbmRlckZyYWN0aW9uOiBudWxsLAogICAgICByZW5kZXJDdXN0b206IG51bGwsCiAgICAgIHByb2dyZXNzYmFyT3Bwb3NpdGU6ICExLAogICAgICB0eXBlOiAiYnVsbGV0cyIsCiAgICAgIGR5bmFtaWNCdWxsZXRzOiAhMSwKICAgICAgZHluYW1pY01haW5CdWxsZXRzOiAxLAogICAgICBmb3JtYXRGcmFjdGlvbkN1cnJlbnQ6IChyKSA9PiByLAogICAgICBmb3JtYXRGcmFjdGlvblRvdGFsOiAocikgPT4gciwKICAgICAgYnVsbGV0Q2xhc3M6IGAke3d9LWJ1bGxldGAsCiAgICAgIGJ1bGxldEFjdGl2ZUNsYXNzOiBgJHt3fS1idWxsZXQtYWN0aXZlYCwKICAgICAgbW9kaWZpZXJDbGFzczogYCR7d30tYCwKICAgICAgY3VycmVudENsYXNzOiBgJHt3fS1jdXJyZW50YCwKICAgICAgdG90YWxDbGFzczogYCR7d30tdG90YWxgLAogICAgICBoaWRkZW5DbGFzczogYCR7d30taGlkZGVuYCwKICAgICAgcHJvZ3Jlc3NiYXJGaWxsQ2xhc3M6IGAke3d9LXByb2dyZXNzYmFyLWZpbGxgLAogICAgICBwcm9ncmVzc2Jhck9wcG9zaXRlQ2xhc3M6IGAke3d9LXByb2dyZXNzYmFyLW9wcG9zaXRlYCwKICAgICAgY2xpY2thYmxlQ2xhc3M6IGAke3d9LWNsaWNrYWJsZWAsCiAgICAgIGxvY2tDbGFzczogYCR7d30tbG9ja2AsCiAgICAgIGhvcml6b250YWxDbGFzczogYCR7d30taG9yaXpvbnRhbGAsCiAgICAgIHZlcnRpY2FsQ2xhc3M6IGAke3d9LXZlcnRpY2FsYCwKICAgICAgcGFnaW5hdGlvbkRpc2FibGVkQ2xhc3M6IGAke3d9LWRpc2FibGVkYCwKICAgIH0sCiAgfSksCiAgICAoZS5wYWdpbmF0aW9uID0geyBlbDogbnVsbCwgYnVsbGV0czogW10gfSk7CiAgbGV0IGIsCiAgICBFID0gMDsKICBmdW5jdGlvbiBmKCkgewogICAgcmV0dXJuICgKICAgICAgIWUucGFyYW1zLnBhZ2luYXRpb24uZWwgfHwKICAgICAgIWUucGFnaW5hdGlvbi5lbCB8fAogICAgICAoQXJyYXkuaXNBcnJheShlLnBhZ2luYXRpb24uZWwpICYmIGUucGFnaW5hdGlvbi5lbC5sZW5ndGggPT09IDApCiAgICApOwogIH0KICBmdW5jdGlvbiBwKHIsIGEpIHsKICAgIGNvbnN0IHsgYnVsbGV0QWN0aXZlQ2xhc3M6IG0gfSA9IGUucGFyYW1zLnBhZ2luYXRpb247CiAgICByICYmCiAgICAgICgociA9IHJbYCR7YSA9PT0gInByZXYiID8gInByZXZpb3VzIiA6ICJuZXh0In1FbGVtZW50U2libGluZ2BdKSwKICAgICAgciAmJgogICAgICAgIChyLmNsYXNzTGlzdC5hZGQoYCR7bX0tJHthfWApLAogICAgICAgIChyID0gcltgJHthID09PSAicHJldiIgPyAicHJldmlvdXMiIDogIm5leHQifUVsZW1lbnRTaWJsaW5nYF0pLAogICAgICAgIHIgJiYgci5jbGFzc0xpc3QuYWRkKGAke219LSR7YX0tJHthfWApKSk7CiAgfQogIGZ1bmN0aW9uIHMociwgYSwgbSkgewogICAgaWYgKCgociA9IHIgJSBtKSwgKGEgPSBhICUgbSksIGEgPT09IHIgKyAxKSkgcmV0dXJuICJuZXh0IjsKICAgIGlmIChhID09PSByIC0gMSkgcmV0dXJuICJwcmV2aW91cyI7CiAgfQogIGZ1bmN0aW9uIHQocikgewogICAgY29uc3QgYSA9IHIudGFyZ2V0LmNsb3Nlc3QoXyhlLnBhcmFtcy5wYWdpbmF0aW9uLmJ1bGxldENsYXNzKSk7CiAgICBpZiAoIWEpIHJldHVybjsKICAgIHIucHJldmVudERlZmF1bHQoKTsKICAgIGNvbnN0IG0gPSB5ZShhKSAqIGUucGFyYW1zLnNsaWRlc1Blckdyb3VwOwogICAgaWYgKGUucGFyYW1zLmxvb3ApIHsKICAgICAgaWYgKGUucmVhbEluZGV4ID09PSBtKSByZXR1cm47CiAgICAgIGNvbnN0IEMgPSBzKGUucmVhbEluZGV4LCBtLCBlLnNsaWRlcy5sZW5ndGgpOwogICAgICBDID09PSAibmV4dCIKICAgICAgICA/IGUuc2xpZGVOZXh0KCkKICAgICAgICA6IEMgPT09ICJwcmV2aW91cyIKICAgICAgICA/IGUuc2xpZGVQcmV2KCkKICAgICAgICA6IGUuc2xpZGVUb0xvb3AobSk7CiAgICB9IGVsc2UgZS5zbGlkZVRvKG0pOwogIH0KICBmdW5jdGlvbiBpKCkgewogICAgY29uc3QgciA9IGUucnRsLAogICAgICBhID0gZS5wYXJhbXMucGFnaW5hdGlvbjsKICAgIGlmIChmKCkpIHJldHVybjsKICAgIGxldCBtID0gZS5wYWdpbmF0aW9uLmVsOwogICAgbSA9IHEobSk7CiAgICBsZXQgQywgRDsKICAgIGNvbnN0IFAgPQogICAgICAgIGUudmlydHVhbCAmJiBlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQKICAgICAgICAgID8gZS52aXJ0dWFsLnNsaWRlcy5sZW5ndGgKICAgICAgICAgIDogZS5zbGlkZXMubGVuZ3RoLAogICAgICBBID0gZS5wYXJhbXMubG9vcAogICAgICAgID8gTWF0aC5jZWlsKFAgLyBlLnBhcmFtcy5zbGlkZXNQZXJHcm91cCkKICAgICAgICA6IGUuc25hcEdyaWQubGVuZ3RoOwogICAgaWYgKAogICAgICAoZS5wYXJhbXMubG9vcAogICAgICAgID8gKChEID0gZS5wcmV2aW91c1JlYWxJbmRleCB8fCAwKSwKICAgICAgICAgIChDID0KICAgICAgICAgICAgZS5wYXJhbXMuc2xpZGVzUGVyR3JvdXAgPiAxCiAgICAgICAgICAgICAgPyBNYXRoLmZsb29yKGUucmVhbEluZGV4IC8gZS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApCiAgICAgICAgICAgICAgOiBlLnJlYWxJbmRleCkpCiAgICAgICAgOiB0eXBlb2YgZS5zbmFwSW5kZXggPCAidSIKICAgICAgICA/ICgoQyA9IGUuc25hcEluZGV4KSwgKEQgPSBlLnByZXZpb3VzU25hcEluZGV4KSkKICAgICAgICA6ICgoRCA9IGUucHJldmlvdXNJbmRleCB8fCAwKSwgKEMgPSBlLmFjdGl2ZUluZGV4IHx8IDApKSwKICAgICAgYS50eXBlID09PSAiYnVsbGV0cyIgJiYKICAgICAgICBlLnBhZ2luYXRpb24uYnVsbGV0cyAmJgogICAgICAgIGUucGFnaW5hdGlvbi5idWxsZXRzLmxlbmd0aCA+IDApCiAgICApIHsKICAgICAgY29uc3QgeCA9IGUucGFnaW5hdGlvbi5idWxsZXRzOwogICAgICBsZXQgTywgSSwgejsKICAgICAgaWYgKAogICAgICAgIChhLmR5bmFtaWNCdWxsZXRzICYmCiAgICAgICAgICAoKGIgPSBIZSh4WzBdLCBlLmlzSG9yaXpvbnRhbCgpID8gIndpZHRoIiA6ICJoZWlnaHQiKSksCiAgICAgICAgICBtLmZvckVhY2goKFQpID0+IHsKICAgICAgICAgICAgVC5zdHlsZVtlLmlzSG9yaXpvbnRhbCgpID8gIndpZHRoIiA6ICJoZWlnaHQiXSA9IGAkewogICAgICAgICAgICAgIGIgKiAoYS5keW5hbWljTWFpbkJ1bGxldHMgKyA0KQogICAgICAgICAgICB9cHhgOwogICAgICAgICAgfSksCiAgICAgICAgICBhLmR5bmFtaWNNYWluQnVsbGV0cyA+IDEgJiYKICAgICAgICAgICAgRCAhPT0gdm9pZCAwICYmCiAgICAgICAgICAgICgoRSArPSBDIC0gKEQgfHwgMCkpLAogICAgICAgICAgICBFID4gYS5keW5hbWljTWFpbkJ1bGxldHMgLSAxCiAgICAgICAgICAgICAgPyAoRSA9IGEuZHluYW1pY01haW5CdWxsZXRzIC0gMSkKICAgICAgICAgICAgICA6IEUgPCAwICYmIChFID0gMCkpLAogICAgICAgICAgKE8gPSBNYXRoLm1heChDIC0gRSwgMCkpLAogICAgICAgICAgKEkgPSBPICsgKE1hdGgubWluKHgubGVuZ3RoLCBhLmR5bmFtaWNNYWluQnVsbGV0cykgLSAxKSksCiAgICAgICAgICAoeiA9IChJICsgTykgLyAyKSksCiAgICAgICAgeC5mb3JFYWNoKChUKSA9PiB7CiAgICAgICAgICBjb25zdCBTID0gWwogICAgICAgICAgICAuLi5bIiIsICItbmV4dCIsICItbmV4dC1uZXh0IiwgIi1wcmV2IiwgIi1wcmV2LXByZXYiLCAiLW1haW4iXS5tYXAoCiAgICAgICAgICAgICAgKEwpID0+IGAke2EuYnVsbGV0QWN0aXZlQ2xhc3N9JHtMfWAKICAgICAgICAgICAgKSwKICAgICAgICAgIF0KICAgICAgICAgICAgLm1hcCgoTCkgPT4KICAgICAgICAgICAgICB0eXBlb2YgTCA9PSAic3RyaW5nIiAmJiBMLmluY2x1ZGVzKCIgIikgPyBMLnNwbGl0KCIgIikgOiBMCiAgICAgICAgICAgICkKICAgICAgICAgICAgLmZsYXQoKTsKICAgICAgICAgIFQuY2xhc3NMaXN0LnJlbW92ZSguLi5TKTsKICAgICAgICB9KSwKICAgICAgICBtLmxlbmd0aCA+IDEpCiAgICAgICkKICAgICAgICB4LmZvckVhY2goKFQpID0+IHsKICAgICAgICAgIGNvbnN0IFMgPSB5ZShUKTsKICAgICAgICAgIFMgPT09IEMKICAgICAgICAgICAgPyBULmNsYXNzTGlzdC5hZGQoLi4uYS5idWxsZXRBY3RpdmVDbGFzcy5zcGxpdCgiICIpKQogICAgICAgICAgICA6IGUuaXNFbGVtZW50ICYmIFQuc2V0QXR0cmlidXRlKCJwYXJ0IiwgImJ1bGxldCIpLAogICAgICAgICAgICBhLmR5bmFtaWNCdWxsZXRzICYmCiAgICAgICAgICAgICAgKFMgPj0gTyAmJgogICAgICAgICAgICAgICAgUyA8PSBJICYmCiAgICAgICAgICAgICAgICBULmNsYXNzTGlzdC5hZGQoLi4uYCR7YS5idWxsZXRBY3RpdmVDbGFzc30tbWFpbmAuc3BsaXQoIiAiKSksCiAgICAgICAgICAgICAgUyA9PT0gTyAmJiBwKFQsICJwcmV2IiksCiAgICAgICAgICAgICAgUyA9PT0gSSAmJiBwKFQsICJuZXh0IikpOwogICAgICAgIH0pOwogICAgICBlbHNlIHsKICAgICAgICBjb25zdCBUID0geFtDXTsKICAgICAgICBpZiAoCiAgICAgICAgICAoVCAmJiBULmNsYXNzTGlzdC5hZGQoLi4uYS5idWxsZXRBY3RpdmVDbGFzcy5zcGxpdCgiICIpKSwKICAgICAgICAgIGUuaXNFbGVtZW50ICYmCiAgICAgICAgICAgIHguZm9yRWFjaCgoUywgTCkgPT4gewogICAgICAgICAgICAgIFMuc2V0QXR0cmlidXRlKCJwYXJ0IiwgTCA9PT0gQyA/ICJidWxsZXQtYWN0aXZlIiA6ICJidWxsZXQiKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICBhLmR5bmFtaWNCdWxsZXRzKQogICAgICAgICkgewogICAgICAgICAgY29uc3QgUyA9IHhbT10sCiAgICAgICAgICAgIEwgPSB4W0ldOwogICAgICAgICAgZm9yIChsZXQgWSA9IE87IFkgPD0gSTsgWSArPSAxKQogICAgICAgICAgICB4W1ldICYmCiAgICAgICAgICAgICAgeFtZXS5jbGFzc0xpc3QuYWRkKC4uLmAke2EuYnVsbGV0QWN0aXZlQ2xhc3N9LW1haW5gLnNwbGl0KCIgIikpOwogICAgICAgICAgcChTLCAicHJldiIpLCBwKEwsICJuZXh0Iik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChhLmR5bmFtaWNCdWxsZXRzKSB7CiAgICAgICAgY29uc3QgVCA9IE1hdGgubWluKHgubGVuZ3RoLCBhLmR5bmFtaWNNYWluQnVsbGV0cyArIDQpLAogICAgICAgICAgUyA9IChiICogVCAtIGIpIC8gMiAtIHogKiBiLAogICAgICAgICAgTCA9IHIgPyAicmlnaHQiIDogImxlZnQiOwogICAgICAgIHguZm9yRWFjaCgoWSkgPT4gewogICAgICAgICAgWS5zdHlsZVtlLmlzSG9yaXpvbnRhbCgpID8gTCA6ICJ0b3AiXSA9IGAke1N9cHhgOwogICAgICAgIH0pOwogICAgICB9CiAgICB9CiAgICBtLmZvckVhY2goKHgsIE8pID0+IHsKICAgICAgaWYgKAogICAgICAgIChhLnR5cGUgPT09ICJmcmFjdGlvbiIgJiYKICAgICAgICAgICh4LnF1ZXJ5U2VsZWN0b3JBbGwoXyhhLmN1cnJlbnRDbGFzcykpLmZvckVhY2goKEkpID0+IHsKICAgICAgICAgICAgSS50ZXh0Q29udGVudCA9IGEuZm9ybWF0RnJhY3Rpb25DdXJyZW50KEMgKyAxKTsKICAgICAgICAgIH0pLAogICAgICAgICAgeC5xdWVyeVNlbGVjdG9yQWxsKF8oYS50b3RhbENsYXNzKSkuZm9yRWFjaCgoSSkgPT4gewogICAgICAgICAgICBJLnRleHRDb250ZW50ID0gYS5mb3JtYXRGcmFjdGlvblRvdGFsKEEpOwogICAgICAgICAgfSkpLAogICAgICAgIGEudHlwZSA9PT0gInByb2dyZXNzYmFyIikKICAgICAgKSB7CiAgICAgICAgbGV0IEk7CiAgICAgICAgYS5wcm9ncmVzc2Jhck9wcG9zaXRlCiAgICAgICAgICA/IChJID0gZS5pc0hvcml6b250YWwoKSA/ICJ2ZXJ0aWNhbCIgOiAiaG9yaXpvbnRhbCIpCiAgICAgICAgICA6IChJID0gZS5pc0hvcml6b250YWwoKSA/ICJob3Jpem9udGFsIiA6ICJ2ZXJ0aWNhbCIpOwogICAgICAgIGNvbnN0IHogPSAoQyArIDEpIC8gQTsKICAgICAgICBsZXQgVCA9IDEsCiAgICAgICAgICBTID0gMTsKICAgICAgICBJID09PSAiaG9yaXpvbnRhbCIgPyAoVCA9IHopIDogKFMgPSB6KSwKICAgICAgICAgIHgucXVlcnlTZWxlY3RvckFsbChfKGEucHJvZ3Jlc3NiYXJGaWxsQ2xhc3MpKS5mb3JFYWNoKChMKSA9PiB7CiAgICAgICAgICAgIChMLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGVYKCR7VH0pIHNjYWxlWSgke1N9KWApLAogICAgICAgICAgICAgIChMLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGAke2UucGFyYW1zLnNwZWVkfW1zYCk7CiAgICAgICAgICB9KTsKICAgICAgfQogICAgICBhLnR5cGUgPT09ICJjdXN0b20iICYmIGEucmVuZGVyQ3VzdG9tCiAgICAgICAgPyAoKHguaW5uZXJIVE1MID0gYS5yZW5kZXJDdXN0b20oZSwgQyArIDEsIEEpKSwKICAgICAgICAgIE8gPT09IDAgJiYgZygicGFnaW5hdGlvblJlbmRlciIsIHgpKQogICAgICAgIDogKE8gPT09IDAgJiYgZygicGFnaW5hdGlvblJlbmRlciIsIHgpLCBnKCJwYWdpbmF0aW9uVXBkYXRlIiwgeCkpLAogICAgICAgIGUucGFyYW1zLndhdGNoT3ZlcmZsb3cgJiYKICAgICAgICAgIGUuZW5hYmxlZCAmJgogICAgICAgICAgeC5jbGFzc0xpc3RbZS5pc0xvY2tlZCA/ICJhZGQiIDogInJlbW92ZSJdKGEubG9ja0NsYXNzKTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBkKCkgewogICAgY29uc3QgciA9IGUucGFyYW1zLnBhZ2luYXRpb247CiAgICBpZiAoZigpKSByZXR1cm47CiAgICBjb25zdCBhID0KICAgICAgZS52aXJ0dWFsICYmIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZAogICAgICAgID8gZS52aXJ0dWFsLnNsaWRlcy5sZW5ndGgKICAgICAgICA6IGUuZ3JpZCAmJiBlLnBhcmFtcy5ncmlkLnJvd3MgPiAxCiAgICAgICAgPyBlLnNsaWRlcy5sZW5ndGggLyBNYXRoLmNlaWwoZS5wYXJhbXMuZ3JpZC5yb3dzKQogICAgICAgIDogZS5zbGlkZXMubGVuZ3RoOwogICAgbGV0IG0gPSBlLnBhZ2luYXRpb24uZWw7CiAgICBtID0gcShtKTsKICAgIGxldCBDID0gIiI7CiAgICBpZiAoci50eXBlID09PSAiYnVsbGV0cyIpIHsKICAgICAgbGV0IEQgPSBlLnBhcmFtcy5sb29wCiAgICAgICAgPyBNYXRoLmNlaWwoYSAvIGUucGFyYW1zLnNsaWRlc1Blckdyb3VwKQogICAgICAgIDogZS5zbmFwR3JpZC5sZW5ndGg7CiAgICAgIGUucGFyYW1zLmZyZWVNb2RlICYmIGUucGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQgJiYgRCA+IGEgJiYgKEQgPSBhKTsKICAgICAgZm9yIChsZXQgUCA9IDA7IFAgPCBEOyBQICs9IDEpCiAgICAgICAgci5yZW5kZXJCdWxsZXQKICAgICAgICAgID8gKEMgKz0gci5yZW5kZXJCdWxsZXQuY2FsbChlLCBQLCByLmJ1bGxldENsYXNzKSkKICAgICAgICAgIDogKEMgKz0gYDwke3IuYnVsbGV0RWxlbWVudH0gJHsKICAgICAgICAgICAgICBlLmlzRWxlbWVudCA/ICdwYXJ0PSJidWxsZXQiJyA6ICIiCiAgICAgICAgICAgIH0gY2xhc3M9IiR7ci5idWxsZXRDbGFzc30iPjwvJHtyLmJ1bGxldEVsZW1lbnR9PmApOwogICAgfQogICAgci50eXBlID09PSAiZnJhY3Rpb24iICYmCiAgICAgIChyLnJlbmRlckZyYWN0aW9uCiAgICAgICAgPyAoQyA9IHIucmVuZGVyRnJhY3Rpb24uY2FsbChlLCByLmN1cnJlbnRDbGFzcywgci50b3RhbENsYXNzKSkKICAgICAgICA6IChDID0gYDxzcGFuIGNsYXNzPSIke3IuY3VycmVudENsYXNzfSI+PC9zcGFuPiAvIDxzcGFuIGNsYXNzPSIke3IudG90YWxDbGFzc30iPjwvc3Bhbj5gKSksCiAgICAgIHIudHlwZSA9PT0gInByb2dyZXNzYmFyIiAmJgogICAgICAgIChyLnJlbmRlclByb2dyZXNzYmFyCiAgICAgICAgICA/IChDID0gci5yZW5kZXJQcm9ncmVzc2Jhci5jYWxsKGUsIHIucHJvZ3Jlc3NiYXJGaWxsQ2xhc3MpKQogICAgICAgICAgOiAoQyA9IGA8c3BhbiBjbGFzcz0iJHtyLnByb2dyZXNzYmFyRmlsbENsYXNzfSI+PC9zcGFuPmApKSwKICAgICAgKGUucGFnaW5hdGlvbi5idWxsZXRzID0gW10pLAogICAgICBtLmZvckVhY2goKEQpID0+IHsKICAgICAgICByLnR5cGUgIT09ICJjdXN0b20iICYmIChELmlubmVySFRNTCA9IEMgfHwgIiIpLAogICAgICAgICAgci50eXBlID09PSAiYnVsbGV0cyIgJiYKICAgICAgICAgICAgZS5wYWdpbmF0aW9uLmJ1bGxldHMucHVzaCguLi5ELnF1ZXJ5U2VsZWN0b3JBbGwoXyhyLmJ1bGxldENsYXNzKSkpOwogICAgICB9KSwKICAgICAgci50eXBlICE9PSAiY3VzdG9tIiAmJiBnKCJwYWdpbmF0aW9uUmVuZGVyIiwgbVswXSk7CiAgfQogIGZ1bmN0aW9uIG8oKSB7CiAgICBlLnBhcmFtcy5wYWdpbmF0aW9uID0geGUoCiAgICAgIGUsCiAgICAgIGUub3JpZ2luYWxQYXJhbXMucGFnaW5hdGlvbiwKICAgICAgZS5wYXJhbXMucGFnaW5hdGlvbiwKICAgICAgeyBlbDogInN3aXBlci1wYWdpbmF0aW9uIiB9CiAgICApOwogICAgY29uc3QgciA9IGUucGFyYW1zLnBhZ2luYXRpb247CiAgICBpZiAoIXIuZWwpIHJldHVybjsKICAgIGxldCBhOwogICAgdHlwZW9mIHIuZWwgPT0gInN0cmluZyIgJiYgZS5pc0VsZW1lbnQgJiYgKGEgPSBlLmVsLnF1ZXJ5U2VsZWN0b3Ioci5lbCkpLAogICAgICAhYSAmJgogICAgICAgIHR5cGVvZiByLmVsID09ICJzdHJpbmciICYmCiAgICAgICAgKGEgPSBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChyLmVsKV0pLAogICAgICBhIHx8IChhID0gci5lbCksCiAgICAgICEoIWEgfHwgYS5sZW5ndGggPT09IDApICYmCiAgICAgICAgKGUucGFyYW1zLnVuaXF1ZU5hdkVsZW1lbnRzICYmCiAgICAgICAgICB0eXBlb2Ygci5lbCA9PSAic3RyaW5nIiAmJgogICAgICAgICAgQXJyYXkuaXNBcnJheShhKSAmJgogICAgICAgICAgYS5sZW5ndGggPiAxICYmCiAgICAgICAgICAoKGEgPSBbLi4uZS5lbC5xdWVyeVNlbGVjdG9yQWxsKHIuZWwpXSksCiAgICAgICAgICBhLmxlbmd0aCA+IDEgJiYKICAgICAgICAgICAgKGEgPSBhLmZpbHRlcigobSkgPT4gaWUobSwgIi5zd2lwZXIiKVswXSA9PT0gZS5lbClbMF0pKSwKICAgICAgICBBcnJheS5pc0FycmF5KGEpICYmIGEubGVuZ3RoID09PSAxICYmIChhID0gYVswXSksCiAgICAgICAgT2JqZWN0LmFzc2lnbihlLnBhZ2luYXRpb24sIHsgZWw6IGEgfSksCiAgICAgICAgKGEgPSBxKGEpKSwKICAgICAgICBhLmZvckVhY2goKG0pID0+IHsKICAgICAgICAgIHIudHlwZSA9PT0gImJ1bGxldHMiICYmCiAgICAgICAgICAgIHIuY2xpY2thYmxlICYmCiAgICAgICAgICAgIG0uY2xhc3NMaXN0LmFkZCguLi4oci5jbGlja2FibGVDbGFzcyB8fCAiIikuc3BsaXQoIiAiKSksCiAgICAgICAgICAgIG0uY2xhc3NMaXN0LmFkZChyLm1vZGlmaWVyQ2xhc3MgKyByLnR5cGUpLAogICAgICAgICAgICBtLmNsYXNzTGlzdC5hZGQoCiAgICAgICAgICAgICAgZS5pc0hvcml6b250YWwoKSA/IHIuaG9yaXpvbnRhbENsYXNzIDogci52ZXJ0aWNhbENsYXNzCiAgICAgICAgICAgICksCiAgICAgICAgICAgIHIudHlwZSA9PT0gImJ1bGxldHMiICYmCiAgICAgICAgICAgICAgci5keW5hbWljQnVsbGV0cyAmJgogICAgICAgICAgICAgIChtLmNsYXNzTGlzdC5hZGQoYCR7ci5tb2RpZmllckNsYXNzfSR7ci50eXBlfS1keW5hbWljYCksCiAgICAgICAgICAgICAgKEUgPSAwKSwKICAgICAgICAgICAgICByLmR5bmFtaWNNYWluQnVsbGV0cyA8IDEgJiYgKHIuZHluYW1pY01haW5CdWxsZXRzID0gMSkpLAogICAgICAgICAgICByLnR5cGUgPT09ICJwcm9ncmVzc2JhciIgJiYKICAgICAgICAgICAgICByLnByb2dyZXNzYmFyT3Bwb3NpdGUgJiYKICAgICAgICAgICAgICBtLmNsYXNzTGlzdC5hZGQoci5wcm9ncmVzc2Jhck9wcG9zaXRlQ2xhc3MpLAogICAgICAgICAgICByLmNsaWNrYWJsZSAmJiBtLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdCksCiAgICAgICAgICAgIGUuZW5hYmxlZCB8fCBtLmNsYXNzTGlzdC5hZGQoci5sb2NrQ2xhc3MpOwogICAgICAgIH0pKTsKICB9CiAgZnVuY3Rpb24gbigpIHsKICAgIGNvbnN0IHIgPSBlLnBhcmFtcy5wYWdpbmF0aW9uOwogICAgaWYgKGYoKSkgcmV0dXJuOwogICAgbGV0IGEgPSBlLnBhZ2luYXRpb24uZWw7CiAgICBhICYmCiAgICAgICgoYSA9IHEoYSkpLAogICAgICBhLmZvckVhY2goKG0pID0+IHsKICAgICAgICBtLmNsYXNzTGlzdC5yZW1vdmUoci5oaWRkZW5DbGFzcyksCiAgICAgICAgICBtLmNsYXNzTGlzdC5yZW1vdmUoci5tb2RpZmllckNsYXNzICsgci50eXBlKSwKICAgICAgICAgIG0uY2xhc3NMaXN0LnJlbW92ZSgKICAgICAgICAgICAgZS5pc0hvcml6b250YWwoKSA/IHIuaG9yaXpvbnRhbENsYXNzIDogci52ZXJ0aWNhbENsYXNzCiAgICAgICAgICApLAogICAgICAgICAgci5jbGlja2FibGUgJiYKICAgICAgICAgICAgKG0uY2xhc3NMaXN0LnJlbW92ZSguLi4oci5jbGlja2FibGVDbGFzcyB8fCAiIikuc3BsaXQoIiAiKSksCiAgICAgICAgICAgIG0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0KSk7CiAgICAgIH0pKSwKICAgICAgZS5wYWdpbmF0aW9uLmJ1bGxldHMgJiYKICAgICAgICBlLnBhZ2luYXRpb24uYnVsbGV0cy5mb3JFYWNoKChtKSA9PgogICAgICAgICAgbS5jbGFzc0xpc3QucmVtb3ZlKC4uLnIuYnVsbGV0QWN0aXZlQ2xhc3Muc3BsaXQoIiAiKSkKICAgICAgICApOwogIH0KICB1KCJjaGFuZ2VEaXJlY3Rpb24iLCAoKSA9PiB7CiAgICBpZiAoIWUucGFnaW5hdGlvbiB8fCAhZS5wYWdpbmF0aW9uLmVsKSByZXR1cm47CiAgICBjb25zdCByID0gZS5wYXJhbXMucGFnaW5hdGlvbjsKICAgIGxldCB7IGVsOiBhIH0gPSBlLnBhZ2luYXRpb247CiAgICAoYSA9IHEoYSkpLAogICAgICBhLmZvckVhY2goKG0pID0+IHsKICAgICAgICBtLmNsYXNzTGlzdC5yZW1vdmUoci5ob3Jpem9udGFsQ2xhc3MsIHIudmVydGljYWxDbGFzcyksCiAgICAgICAgICBtLmNsYXNzTGlzdC5hZGQoCiAgICAgICAgICAgIGUuaXNIb3Jpem9udGFsKCkgPyByLmhvcml6b250YWxDbGFzcyA6IHIudmVydGljYWxDbGFzcwogICAgICAgICAgKTsKICAgICAgfSk7CiAgfSksCiAgICB1KCJpbml0IiwgKCkgPT4gewogICAgICBlLnBhcmFtcy5wYWdpbmF0aW9uLmVuYWJsZWQgPT09ICExID8gYygpIDogKG8oKSwgZCgpLCBpKCkpOwogICAgfSksCiAgICB1KCJhY3RpdmVJbmRleENoYW5nZSIsICgpID0+IHsKICAgICAgdHlwZW9mIGUuc25hcEluZGV4ID4gInUiICYmIGkoKTsKICAgIH0pLAogICAgdSgic25hcEluZGV4Q2hhbmdlIiwgKCkgPT4gewogICAgICBpKCk7CiAgICB9KSwKICAgIHUoInNuYXBHcmlkTGVuZ3RoQ2hhbmdlIiwgKCkgPT4gewogICAgICBkKCksIGkoKTsKICAgIH0pLAogICAgdSgiZGVzdHJveSIsICgpID0+IHsKICAgICAgbigpOwogICAgfSksCiAgICB1KCJlbmFibGUgZGlzYWJsZSIsICgpID0+IHsKICAgICAgbGV0IHsgZWw6IHIgfSA9IGUucGFnaW5hdGlvbjsKICAgICAgciAmJgogICAgICAgICgociA9IHEocikpLAogICAgICAgIHIuZm9yRWFjaCgoYSkgPT4KICAgICAgICAgIGEuY2xhc3NMaXN0W2UuZW5hYmxlZCA/ICJyZW1vdmUiIDogImFkZCJdKAogICAgICAgICAgICBlLnBhcmFtcy5wYWdpbmF0aW9uLmxvY2tDbGFzcwogICAgICAgICAgKQogICAgICAgICkpOwogICAgfSksCiAgICB1KCJsb2NrIHVubG9jayIsICgpID0+IHsKICAgICAgaSgpOwogICAgfSksCiAgICB1KCJjbGljayIsIChyLCBhKSA9PiB7CiAgICAgIGNvbnN0IG0gPSBhLnRhcmdldCwKICAgICAgICBDID0gcShlLnBhZ2luYXRpb24uZWwpOwogICAgICBpZiAoCiAgICAgICAgZS5wYXJhbXMucGFnaW5hdGlvbi5lbCAmJgogICAgICAgIGUucGFyYW1zLnBhZ2luYXRpb24uaGlkZU9uQ2xpY2sgJiYKICAgICAgICBDICYmCiAgICAgICAgQy5sZW5ndGggPiAwICYmCiAgICAgICAgIW0uY2xhc3NMaXN0LmNvbnRhaW5zKGUucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0Q2xhc3MpCiAgICAgICkgewogICAgICAgIGlmICgKICAgICAgICAgIGUubmF2aWdhdGlvbiAmJgogICAgICAgICAgKChlLm5hdmlnYXRpb24ubmV4dEVsICYmIG0gPT09IGUubmF2aWdhdGlvbi5uZXh0RWwpIHx8CiAgICAgICAgICAgIChlLm5hdmlnYXRpb24ucHJldkVsICYmIG0gPT09IGUubmF2aWdhdGlvbi5wcmV2RWwpKQogICAgICAgICkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBEID0gQ1swXS5jbGFzc0xpc3QuY29udGFpbnMoZS5wYXJhbXMucGFnaW5hdGlvbi5oaWRkZW5DbGFzcyk7CiAgICAgICAgZyhEID09PSAhMCA/ICJwYWdpbmF0aW9uU2hvdyIgOiAicGFnaW5hdGlvbkhpZGUiKSwKICAgICAgICAgIEMuZm9yRWFjaCgoUCkgPT4gUC5jbGFzc0xpc3QudG9nZ2xlKGUucGFyYW1zLnBhZ2luYXRpb24uaGlkZGVuQ2xhc3MpKTsKICAgICAgfQogICAgfSk7CiAgY29uc3QgbCA9ICgpID0+IHsKICAgICAgZS5lbC5jbGFzc0xpc3QucmVtb3ZlKGUucGFyYW1zLnBhZ2luYXRpb24ucGFnaW5hdGlvbkRpc2FibGVkQ2xhc3MpOwogICAgICBsZXQgeyBlbDogciB9ID0gZS5wYWdpbmF0aW9uOwogICAgICByICYmCiAgICAgICAgKChyID0gcShyKSksCiAgICAgICAgci5mb3JFYWNoKChhKSA9PgogICAgICAgICAgYS5jbGFzc0xpc3QucmVtb3ZlKGUucGFyYW1zLnBhZ2luYXRpb24ucGFnaW5hdGlvbkRpc2FibGVkQ2xhc3MpCiAgICAgICAgKSksCiAgICAgICAgbygpLAogICAgICAgIGQoKSwKICAgICAgICBpKCk7CiAgICB9LAogICAgYyA9ICgpID0+IHsKICAgICAgZS5lbC5jbGFzc0xpc3QuYWRkKGUucGFyYW1zLnBhZ2luYXRpb24ucGFnaW5hdGlvbkRpc2FibGVkQ2xhc3MpOwogICAgICBsZXQgeyBlbDogciB9ID0gZS5wYWdpbmF0aW9uOwogICAgICByICYmCiAgICAgICAgKChyID0gcShyKSksCiAgICAgICAgci5mb3JFYWNoKChhKSA9PgogICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKGUucGFyYW1zLnBhZ2luYXRpb24ucGFnaW5hdGlvbkRpc2FibGVkQ2xhc3MpCiAgICAgICAgKSksCiAgICAgICAgbigpOwogICAgfTsKICBPYmplY3QuYXNzaWduKGUucGFnaW5hdGlvbiwgewogICAgZW5hYmxlOiBsLAogICAgZGlzYWJsZTogYywKICAgIHJlbmRlcjogZCwKICAgIHVwZGF0ZTogaSwKICAgIGluaXQ6IG8sCiAgICBkZXN0cm95OiBuLAogIH0pOwp9CmZ1bmN0aW9uIF9lKE0pIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaCwgb246IHUsIGVtaXQ6IGcgfSA9IE07CiAgY29uc3QgdyA9IGooKTsKICBsZXQgYiA9ICExLAogICAgRSA9IG51bGwsCiAgICBmID0gbnVsbCwKICAgIHAsCiAgICBzLAogICAgdCwKICAgIGk7CiAgaCh7CiAgICBzY3JvbGxiYXI6IHsKICAgICAgZWw6IG51bGwsCiAgICAgIGRyYWdTaXplOiAiYXV0byIsCiAgICAgIGhpZGU6ICExLAogICAgICBkcmFnZ2FibGU6ICExLAogICAgICBzbmFwT25SZWxlYXNlOiAhMCwKICAgICAgbG9ja0NsYXNzOiAic3dpcGVyLXNjcm9sbGJhci1sb2NrIiwKICAgICAgZHJhZ0NsYXNzOiAic3dpcGVyLXNjcm9sbGJhci1kcmFnIiwKICAgICAgc2Nyb2xsYmFyRGlzYWJsZWRDbGFzczogInN3aXBlci1zY3JvbGxiYXItZGlzYWJsZWQiLAogICAgICBob3Jpem9udGFsQ2xhc3M6ICJzd2lwZXItc2Nyb2xsYmFyLWhvcml6b250YWwiLAogICAgICB2ZXJ0aWNhbENsYXNzOiAic3dpcGVyLXNjcm9sbGJhci12ZXJ0aWNhbCIsCiAgICB9LAogIH0pLAogICAgKGUuc2Nyb2xsYmFyID0geyBlbDogbnVsbCwgZHJhZ0VsOiBudWxsIH0pOwogIGZ1bmN0aW9uIGQoKSB7CiAgICBpZiAoIWUucGFyYW1zLnNjcm9sbGJhci5lbCB8fCAhZS5zY3JvbGxiYXIuZWwpIHJldHVybjsKICAgIGNvbnN0IHsgc2Nyb2xsYmFyOiB6LCBydGxUcmFuc2xhdGU6IFQgfSA9IGUsCiAgICAgIHsgZHJhZ0VsOiBTLCBlbDogTCB9ID0geiwKICAgICAgWSA9IGUucGFyYW1zLnNjcm9sbGJhciwKICAgICAgdiA9IGUucGFyYW1zLmxvb3AgPyBlLnByb2dyZXNzTG9vcCA6IGUucHJvZ3Jlc3M7CiAgICBsZXQgeSA9IHMsCiAgICAgIEggPSAodCAtIHMpICogdjsKICAgIFQKICAgICAgPyAoKEggPSAtSCksIEggPiAwID8gKCh5ID0gcyAtIEgpLCAoSCA9IDApKSA6IC1IICsgcyA+IHQgJiYgKHkgPSB0ICsgSCkpCiAgICAgIDogSCA8IDAKICAgICAgPyAoKHkgPSBzICsgSCksIChIID0gMCkpCiAgICAgIDogSCArIHMgPiB0ICYmICh5ID0gdCAtIEgpLAogICAgICBlLmlzSG9yaXpvbnRhbCgpCiAgICAgICAgPyAoKFMuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7SH1weCwgMCwgMClgKSwKICAgICAgICAgIChTLnN0eWxlLndpZHRoID0gYCR7eX1weGApKQogICAgICAgIDogKChTLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwcHgsICR7SH1weCwgMClgKSwKICAgICAgICAgIChTLnN0eWxlLmhlaWdodCA9IGAke3l9cHhgKSksCiAgICAgIFkuaGlkZSAmJgogICAgICAgIChjbGVhclRpbWVvdXQoRSksCiAgICAgICAgKEwuc3R5bGUub3BhY2l0eSA9IDEpLAogICAgICAgIChFID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAoTC5zdHlsZS5vcGFjaXR5ID0gMCksIChMLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICI0MDBtcyIpOwogICAgICAgIH0sIDFlMykpKTsKICB9CiAgZnVuY3Rpb24gbyh6KSB7CiAgICAhZS5wYXJhbXMuc2Nyb2xsYmFyLmVsIHx8CiAgICAgICFlLnNjcm9sbGJhci5lbCB8fAogICAgICAoZS5zY3JvbGxiYXIuZHJhZ0VsLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGAke3p9bXNgKTsKICB9CiAgZnVuY3Rpb24gbigpIHsKICAgIGlmICghZS5wYXJhbXMuc2Nyb2xsYmFyLmVsIHx8ICFlLnNjcm9sbGJhci5lbCkgcmV0dXJuOwogICAgY29uc3QgeyBzY3JvbGxiYXI6IHogfSA9IGUsCiAgICAgIHsgZHJhZ0VsOiBULCBlbDogUyB9ID0gejsKICAgIChULnN0eWxlLndpZHRoID0gIiIpLAogICAgICAoVC5zdHlsZS5oZWlnaHQgPSAiIiksCiAgICAgICh0ID0gZS5pc0hvcml6b250YWwoKSA/IFMub2Zmc2V0V2lkdGggOiBTLm9mZnNldEhlaWdodCksCiAgICAgIChpID0KICAgICAgICBlLnNpemUgLwogICAgICAgIChlLnZpcnR1YWxTaXplICsKICAgICAgICAgIGUucGFyYW1zLnNsaWRlc09mZnNldEJlZm9yZSAtCiAgICAgICAgICAoZS5wYXJhbXMuY2VudGVyZWRTbGlkZXMgPyBlLnNuYXBHcmlkWzBdIDogMCkpKSwKICAgICAgZS5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdTaXplID09PSAiYXV0byIKICAgICAgICA/IChzID0gdCAqIGkpCiAgICAgICAgOiAocyA9IHBhcnNlSW50KGUucGFyYW1zLnNjcm9sbGJhci5kcmFnU2l6ZSwgMTApKSwKICAgICAgZS5pc0hvcml6b250YWwoKQogICAgICAgID8gKFQuc3R5bGUud2lkdGggPSBgJHtzfXB4YCkKICAgICAgICA6IChULnN0eWxlLmhlaWdodCA9IGAke3N9cHhgKSwKICAgICAgaSA+PSAxID8gKFMuc3R5bGUuZGlzcGxheSA9ICJub25lIikgOiAoUy5zdHlsZS5kaXNwbGF5ID0gIiIpLAogICAgICBlLnBhcmFtcy5zY3JvbGxiYXIuaGlkZSAmJiAoUy5zdHlsZS5vcGFjaXR5ID0gMCksCiAgICAgIGUucGFyYW1zLndhdGNoT3ZlcmZsb3cgJiYKICAgICAgICBlLmVuYWJsZWQgJiYKICAgICAgICB6LmVsLmNsYXNzTGlzdFtlLmlzTG9ja2VkID8gImFkZCIgOiAicmVtb3ZlIl0oCiAgICAgICAgICBlLnBhcmFtcy5zY3JvbGxiYXIubG9ja0NsYXNzCiAgICAgICAgKTsKICB9CiAgZnVuY3Rpb24gbCh6KSB7CiAgICByZXR1cm4gZS5pc0hvcml6b250YWwoKSA/IHouY2xpZW50WCA6IHouY2xpZW50WTsKICB9CiAgZnVuY3Rpb24gYyh6KSB7CiAgICBjb25zdCB7IHNjcm9sbGJhcjogVCwgcnRsVHJhbnNsYXRlOiBTIH0gPSBlLAogICAgICB7IGVsOiBMIH0gPSBUOwogICAgbGV0IFk7CiAgICAoWSA9CiAgICAgIChsKHopIC0KICAgICAgICBmZShMKVtlLmlzSG9yaXpvbnRhbCgpID8gImxlZnQiIDogInRvcCJdIC0KICAgICAgICAocCAhPT0gbnVsbCA/IHAgOiBzIC8gMikpIC8KICAgICAgKHQgLSBzKSksCiAgICAgIChZID0gTWF0aC5tYXgoTWF0aC5taW4oWSwgMSksIDApKSwKICAgICAgUyAmJiAoWSA9IDEgLSBZKTsKICAgIGNvbnN0IHYgPSBlLm1pblRyYW5zbGF0ZSgpICsgKGUubWF4VHJhbnNsYXRlKCkgLSBlLm1pblRyYW5zbGF0ZSgpKSAqIFk7CiAgICBlLnVwZGF0ZVByb2dyZXNzKHYpLAogICAgICBlLnNldFRyYW5zbGF0ZSh2KSwKICAgICAgZS51cGRhdGVBY3RpdmVJbmRleCgpLAogICAgICBlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKTsKICB9CiAgZnVuY3Rpb24gcih6KSB7CiAgICBjb25zdCBUID0gZS5wYXJhbXMuc2Nyb2xsYmFyLAogICAgICB7IHNjcm9sbGJhcjogUywgd3JhcHBlckVsOiBMIH0gPSBlLAogICAgICB7IGVsOiBZLCBkcmFnRWw6IHYgfSA9IFM7CiAgICAoYiA9ICEwKSwKICAgICAgKHAgPQogICAgICAgIHoudGFyZ2V0ID09PSB2CiAgICAgICAgICA/IGwoeikgLQogICAgICAgICAgICB6LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtlLmlzSG9yaXpvbnRhbCgpID8gImxlZnQiIDogInRvcCJdCiAgICAgICAgICA6IG51bGwpLAogICAgICB6LnByZXZlbnREZWZhdWx0KCksCiAgICAgIHouc3RvcFByb3BhZ2F0aW9uKCksCiAgICAgIChMLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICIxMDBtcyIpLAogICAgICAodi5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMTAwbXMiKSwKICAgICAgYyh6KSwKICAgICAgY2xlYXJUaW1lb3V0KGYpLAogICAgICAoWS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMG1zIiksCiAgICAgIFQuaGlkZSAmJiAoWS5zdHlsZS5vcGFjaXR5ID0gMSksCiAgICAgIGUucGFyYW1zLmNzc01vZGUgJiYgKGUud3JhcHBlckVsLnN0eWxlWyJzY3JvbGwtc25hcC10eXBlIl0gPSAibm9uZSIpLAogICAgICBnKCJzY3JvbGxiYXJEcmFnU3RhcnQiLCB6KTsKICB9CiAgZnVuY3Rpb24gYSh6KSB7CiAgICBjb25zdCB7IHNjcm9sbGJhcjogVCwgd3JhcHBlckVsOiBTIH0gPSBlLAogICAgICB7IGVsOiBMLCBkcmFnRWw6IFkgfSA9IFQ7CiAgICBiICYmCiAgICAgICh6LnByZXZlbnREZWZhdWx0ICYmIHouY2FuY2VsYWJsZQogICAgICAgID8gei5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgOiAoei5yZXR1cm5WYWx1ZSA9ICExKSwKICAgICAgYyh6KSwKICAgICAgKFMuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gIjBtcyIpLAogICAgICAoTC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMG1zIiksCiAgICAgIChZLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICIwbXMiKSwKICAgICAgZygic2Nyb2xsYmFyRHJhZ01vdmUiLCB6KSk7CiAgfQogIGZ1bmN0aW9uIG0oeikgewogICAgY29uc3QgVCA9IGUucGFyYW1zLnNjcm9sbGJhciwKICAgICAgeyBzY3JvbGxiYXI6IFMsIHdyYXBwZXJFbDogTCB9ID0gZSwKICAgICAgeyBlbDogWSB9ID0gUzsKICAgIGIgJiYKICAgICAgKChiID0gITEpLAogICAgICBlLnBhcmFtcy5jc3NNb2RlICYmCiAgICAgICAgKChlLndyYXBwZXJFbC5zdHlsZVsic2Nyb2xsLXNuYXAtdHlwZSJdID0gIiIpLAogICAgICAgIChMLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICIiKSksCiAgICAgIFQuaGlkZSAmJgogICAgICAgIChjbGVhclRpbWVvdXQoZiksCiAgICAgICAgKGYgPSB1ZSgoKSA9PiB7CiAgICAgICAgICAoWS5zdHlsZS5vcGFjaXR5ID0gMCksIChZLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICI0MDBtcyIpOwogICAgICAgIH0sIDFlMykpKSwKICAgICAgZygic2Nyb2xsYmFyRHJhZ0VuZCIsIHopLAogICAgICBULnNuYXBPblJlbGVhc2UgJiYgZS5zbGlkZVRvQ2xvc2VzdCgpKTsKICB9CiAgZnVuY3Rpb24gQyh6KSB7CiAgICBjb25zdCB7IHNjcm9sbGJhcjogVCwgcGFyYW1zOiBTIH0gPSBlLAogICAgICBMID0gVC5lbDsKICAgIGlmICghTCkgcmV0dXJuOwogICAgY29uc3QgWSA9IEwsCiAgICAgIHYgPSBTLnBhc3NpdmVMaXN0ZW5lcnMgPyB7IHBhc3NpdmU6ICExLCBjYXB0dXJlOiAhMSB9IDogITEsCiAgICAgIHkgPSBTLnBhc3NpdmVMaXN0ZW5lcnMgPyB7IHBhc3NpdmU6ICEwLCBjYXB0dXJlOiAhMSB9IDogITE7CiAgICBpZiAoIVkpIHJldHVybjsKICAgIGNvbnN0IEggPSB6ID09PSAib24iID8gImFkZEV2ZW50TGlzdGVuZXIiIDogInJlbW92ZUV2ZW50TGlzdGVuZXIiOwogICAgWVtIXSgicG9pbnRlcmRvd24iLCByLCB2KSwKICAgICAgd1tIXSgicG9pbnRlcm1vdmUiLCBhLCB2KSwKICAgICAgd1tIXSgicG9pbnRlcnVwIiwgbSwgeSk7CiAgfQogIGZ1bmN0aW9uIEQoKSB7CiAgICAhZS5wYXJhbXMuc2Nyb2xsYmFyLmVsIHx8ICFlLnNjcm9sbGJhci5lbCB8fCBDKCJvbiIpOwogIH0KICBmdW5jdGlvbiBQKCkgewogICAgIWUucGFyYW1zLnNjcm9sbGJhci5lbCB8fCAhZS5zY3JvbGxiYXIuZWwgfHwgQygib2ZmIik7CiAgfQogIGZ1bmN0aW9uIEEoKSB7CiAgICBjb25zdCB7IHNjcm9sbGJhcjogeiwgZWw6IFQgfSA9IGU7CiAgICBlLnBhcmFtcy5zY3JvbGxiYXIgPSB4ZShlLCBlLm9yaWdpbmFsUGFyYW1zLnNjcm9sbGJhciwgZS5wYXJhbXMuc2Nyb2xsYmFyLCB7CiAgICAgIGVsOiAic3dpcGVyLXNjcm9sbGJhciIsCiAgICB9KTsKICAgIGNvbnN0IFMgPSBlLnBhcmFtcy5zY3JvbGxiYXI7CiAgICBpZiAoIVMuZWwpIHJldHVybjsKICAgIGxldCBMOwogICAgaWYgKAogICAgICAodHlwZW9mIFMuZWwgPT0gInN0cmluZyIgJiYgZS5pc0VsZW1lbnQgJiYgKEwgPSBlLmVsLnF1ZXJ5U2VsZWN0b3IoUy5lbCkpLAogICAgICAhTCAmJiB0eXBlb2YgUy5lbCA9PSAic3RyaW5nIikKICAgICkgewogICAgICBpZiAoKChMID0gdy5xdWVyeVNlbGVjdG9yQWxsKFMuZWwpKSwgIUwubGVuZ3RoKSkgcmV0dXJuOwogICAgfSBlbHNlIEwgfHwgKEwgPSBTLmVsKTsKICAgIGUucGFyYW1zLnVuaXF1ZU5hdkVsZW1lbnRzICYmCiAgICAgIHR5cGVvZiBTLmVsID09ICJzdHJpbmciICYmCiAgICAgIEwubGVuZ3RoID4gMSAmJgogICAgICBULnF1ZXJ5U2VsZWN0b3JBbGwoUy5lbCkubGVuZ3RoID09PSAxICYmCiAgICAgIChMID0gVC5xdWVyeVNlbGVjdG9yKFMuZWwpKSwKICAgICAgTC5sZW5ndGggPiAwICYmIChMID0gTFswXSksCiAgICAgIEwuY2xhc3NMaXN0LmFkZChlLmlzSG9yaXpvbnRhbCgpID8gUy5ob3Jpem9udGFsQ2xhc3MgOiBTLnZlcnRpY2FsQ2xhc3MpOwogICAgbGV0IFk7CiAgICBMICYmCiAgICAgICgoWSA9IEwucXVlcnlTZWxlY3RvcihfKGUucGFyYW1zLnNjcm9sbGJhci5kcmFnQ2xhc3MpKSksCiAgICAgIFkgfHwgKChZID0gRygiZGl2IiwgZS5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdDbGFzcykpLCBMLmFwcGVuZChZKSkpLAogICAgICBPYmplY3QuYXNzaWduKHosIHsgZWw6IEwsIGRyYWdFbDogWSB9KSwKICAgICAgUy5kcmFnZ2FibGUgJiYgRCgpLAogICAgICBMICYmCiAgICAgICAgTC5jbGFzc0xpc3RbZS5lbmFibGVkID8gInJlbW92ZSIgOiAiYWRkIl0oCiAgICAgICAgICAuLi5KKGUucGFyYW1zLnNjcm9sbGJhci5sb2NrQ2xhc3MpCiAgICAgICAgKTsKICB9CiAgZnVuY3Rpb24geCgpIHsKICAgIGNvbnN0IHogPSBlLnBhcmFtcy5zY3JvbGxiYXIsCiAgICAgIFQgPSBlLnNjcm9sbGJhci5lbDsKICAgIFQgJiYKICAgICAgVC5jbGFzc0xpc3QucmVtb3ZlKAogICAgICAgIC4uLkooZS5pc0hvcml6b250YWwoKSA/IHouaG9yaXpvbnRhbENsYXNzIDogei52ZXJ0aWNhbENsYXNzKQogICAgICApLAogICAgICBQKCk7CiAgfQogIHUoImNoYW5nZURpcmVjdGlvbiIsICgpID0+IHsKICAgIGlmICghZS5zY3JvbGxiYXIgfHwgIWUuc2Nyb2xsYmFyLmVsKSByZXR1cm47CiAgICBjb25zdCB6ID0gZS5wYXJhbXMuc2Nyb2xsYmFyOwogICAgbGV0IHsgZWw6IFQgfSA9IGUuc2Nyb2xsYmFyOwogICAgKFQgPSBxKFQpKSwKICAgICAgVC5mb3JFYWNoKChTKSA9PiB7CiAgICAgICAgUy5jbGFzc0xpc3QucmVtb3ZlKHouaG9yaXpvbnRhbENsYXNzLCB6LnZlcnRpY2FsQ2xhc3MpLAogICAgICAgICAgUy5jbGFzc0xpc3QuYWRkKAogICAgICAgICAgICBlLmlzSG9yaXpvbnRhbCgpID8gei5ob3Jpem9udGFsQ2xhc3MgOiB6LnZlcnRpY2FsQ2xhc3MKICAgICAgICAgICk7CiAgICAgIH0pOwogIH0pLAogICAgdSgiaW5pdCIsICgpID0+IHsKICAgICAgZS5wYXJhbXMuc2Nyb2xsYmFyLmVuYWJsZWQgPT09ICExID8gSSgpIDogKEEoKSwgbigpLCBkKCkpOwogICAgfSksCiAgICB1KCJ1cGRhdGUgcmVzaXplIG9ic2VydmVyVXBkYXRlIGxvY2sgdW5sb2NrIGNoYW5nZURpcmVjdGlvbiIsICgpID0+IHsKICAgICAgbigpOwogICAgfSksCiAgICB1KCJzZXRUcmFuc2xhdGUiLCAoKSA9PiB7CiAgICAgIGQoKTsKICAgIH0pLAogICAgdSgic2V0VHJhbnNpdGlvbiIsICh6LCBUKSA9PiB7CiAgICAgIG8oVCk7CiAgICB9KSwKICAgIHUoImVuYWJsZSBkaXNhYmxlIiwgKCkgPT4gewogICAgICBjb25zdCB7IGVsOiB6IH0gPSBlLnNjcm9sbGJhcjsKICAgICAgeiAmJgogICAgICAgIHouY2xhc3NMaXN0W2UuZW5hYmxlZCA/ICJyZW1vdmUiIDogImFkZCJdKAogICAgICAgICAgLi4uSihlLnBhcmFtcy5zY3JvbGxiYXIubG9ja0NsYXNzKQogICAgICAgICk7CiAgICB9KSwKICAgIHUoImRlc3Ryb3kiLCAoKSA9PiB7CiAgICAgIHgoKTsKICAgIH0pOwogIGNvbnN0IE8gPSAoKSA9PiB7CiAgICAgIGUuZWwuY2xhc3NMaXN0LnJlbW92ZSguLi5KKGUucGFyYW1zLnNjcm9sbGJhci5zY3JvbGxiYXJEaXNhYmxlZENsYXNzKSksCiAgICAgICAgZS5zY3JvbGxiYXIuZWwgJiYKICAgICAgICAgIGUuc2Nyb2xsYmFyLmVsLmNsYXNzTGlzdC5yZW1vdmUoCiAgICAgICAgICAgIC4uLkooZS5wYXJhbXMuc2Nyb2xsYmFyLnNjcm9sbGJhckRpc2FibGVkQ2xhc3MpCiAgICAgICAgICApLAogICAgICAgIEEoKSwKICAgICAgICBuKCksCiAgICAgICAgZCgpOwogICAgfSwKICAgIEkgPSAoKSA9PiB7CiAgICAgIGUuZWwuY2xhc3NMaXN0LmFkZCguLi5KKGUucGFyYW1zLnNjcm9sbGJhci5zY3JvbGxiYXJEaXNhYmxlZENsYXNzKSksCiAgICAgICAgZS5zY3JvbGxiYXIuZWwgJiYKICAgICAgICAgIGUuc2Nyb2xsYmFyLmVsLmNsYXNzTGlzdC5hZGQoCiAgICAgICAgICAgIC4uLkooZS5wYXJhbXMuc2Nyb2xsYmFyLnNjcm9sbGJhckRpc2FibGVkQ2xhc3MpCiAgICAgICAgICApLAogICAgICAgIHgoKTsKICAgIH07CiAgT2JqZWN0LmFzc2lnbihlLnNjcm9sbGJhciwgewogICAgZW5hYmxlOiBPLAogICAgZGlzYWJsZTogSSwKICAgIHVwZGF0ZVNpemU6IG4sCiAgICBzZXRUcmFuc2xhdGU6IGQsCiAgICBpbml0OiBBLAogICAgZGVzdHJveTogeCwKICB9KTsKfQpmdW5jdGlvbiBVZShNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIG9uOiB1IH0gPSBNOwogIGgoeyBwYXJhbGxheDogeyBlbmFibGVkOiAhMSB9IH0pOwogIGNvbnN0IGcgPQogICAgICAiW2RhdGEtc3dpcGVyLXBhcmFsbGF4XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1vcGFjaXR5XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlXSIsCiAgICB3ID0gKGYsIHApID0+IHsKICAgICAgY29uc3QgeyBydGw6IHMgfSA9IGUsCiAgICAgICAgdCA9IHMgPyAtMSA6IDEsCiAgICAgICAgaSA9IGYuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1wYXJhbGxheCIpIHx8ICIwIjsKICAgICAgbGV0IGQgPSBmLmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItcGFyYWxsYXgteCIpLAogICAgICAgIG8gPSBmLmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItcGFyYWxsYXgteSIpOwogICAgICBjb25zdCBuID0gZi5nZXRBdHRyaWJ1dGUoImRhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlIiksCiAgICAgICAgbCA9IGYuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1wYXJhbGxheC1vcGFjaXR5IiksCiAgICAgICAgYyA9IGYuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1wYXJhbGxheC1yb3RhdGUiKTsKICAgICAgaWYgKAogICAgICAgIChkIHx8IG8KICAgICAgICAgID8gKChkID0gZCB8fCAiMCIpLCAobyA9IG8gfHwgIjAiKSkKICAgICAgICAgIDogZS5pc0hvcml6b250YWwoKQogICAgICAgICAgPyAoKGQgPSBpKSwgKG8gPSAiMCIpKQogICAgICAgICAgOiAoKG8gPSBpKSwgKGQgPSAiMCIpKSwKICAgICAgICBkLmluZGV4T2YoIiUiKSA+PSAwCiAgICAgICAgICA/IChkID0gYCR7cGFyc2VJbnQoZCwgMTApICogcCAqIHR9JWApCiAgICAgICAgICA6IChkID0gYCR7ZCAqIHAgKiB0fXB4YCksCiAgICAgICAgby5pbmRleE9mKCIlIikgPj0gMAogICAgICAgICAgPyAobyA9IGAke3BhcnNlSW50KG8sIDEwKSAqIHB9JWApCiAgICAgICAgICA6IChvID0gYCR7byAqIHB9cHhgKSwKICAgICAgICB0eXBlb2YgbCA8ICJ1IiAmJiBsICE9PSBudWxsKQogICAgICApIHsKICAgICAgICBjb25zdCBhID0gbCAtIChsIC0gMSkgKiAoMSAtIE1hdGguYWJzKHApKTsKICAgICAgICBmLnN0eWxlLm9wYWNpdHkgPSBhOwogICAgICB9CiAgICAgIGxldCByID0gYHRyYW5zbGF0ZTNkKCR7ZH0sICR7b30sIDBweClgOwogICAgICBpZiAodHlwZW9mIG4gPCAidSIgJiYgbiAhPT0gbnVsbCkgewogICAgICAgIGNvbnN0IGEgPSBuIC0gKG4gLSAxKSAqICgxIC0gTWF0aC5hYnMocCkpOwogICAgICAgIHIgKz0gYCBzY2FsZSgke2F9KWA7CiAgICAgIH0KICAgICAgaWYgKGMgJiYgdHlwZW9mIGMgPCAidSIgJiYgYyAhPT0gbnVsbCkgewogICAgICAgIGNvbnN0IGEgPSBjICogcCAqIC0xOwogICAgICAgIHIgKz0gYCByb3RhdGUoJHthfWRlZylgOwogICAgICB9CiAgICAgIGYuc3R5bGUudHJhbnNmb3JtID0gcjsKICAgIH0sCiAgICBiID0gKCkgPT4gewogICAgICBjb25zdCB7IGVsOiBmLCBzbGlkZXM6IHAsIHByb2dyZXNzOiBzLCBzbmFwR3JpZDogdCwgaXNFbGVtZW50OiBpIH0gPSBlLAogICAgICAgIGQgPSBLKGYsIGcpOwogICAgICBlLmlzRWxlbWVudCAmJiBkLnB1c2goLi4uSyhlLmhvc3RFbCwgZykpLAogICAgICAgIGQuZm9yRWFjaCgobykgPT4gewogICAgICAgICAgdyhvLCBzKTsKICAgICAgICB9KSwKICAgICAgICBwLmZvckVhY2goKG8sIG4pID0+IHsKICAgICAgICAgIGxldCBsID0gby5wcm9ncmVzczsKICAgICAgICAgIGUucGFyYW1zLnNsaWRlc1Blckdyb3VwID4gMSAmJgogICAgICAgICAgICBlLnBhcmFtcy5zbGlkZXNQZXJWaWV3ICE9PSAiYXV0byIgJiYKICAgICAgICAgICAgKGwgKz0gTWF0aC5jZWlsKG4gLyAyKSAtIHMgKiAodC5sZW5ndGggLSAxKSksCiAgICAgICAgICAgIChsID0gTWF0aC5taW4oTWF0aC5tYXgobCwgLTEpLCAxKSksCiAgICAgICAgICAgIG8KICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbChgJHtnfSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXJvdGF0ZV1gKQogICAgICAgICAgICAgIC5mb3JFYWNoKChjKSA9PiB7CiAgICAgICAgICAgICAgICB3KGMsIGwpOwogICAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfSwKICAgIEUgPSBmdW5jdGlvbiAoZikgewogICAgICBmID09PSB2b2lkIDAgJiYgKGYgPSBlLnBhcmFtcy5zcGVlZCk7CiAgICAgIGNvbnN0IHsgZWw6IHAsIGhvc3RFbDogcyB9ID0gZSwKICAgICAgICB0ID0gWy4uLnAucXVlcnlTZWxlY3RvckFsbChnKV07CiAgICAgIGUuaXNFbGVtZW50ICYmIHQucHVzaCguLi5zLnF1ZXJ5U2VsZWN0b3JBbGwoZykpLAogICAgICAgIHQuZm9yRWFjaCgoaSkgPT4gewogICAgICAgICAgbGV0IGQgPQogICAgICAgICAgICBwYXJzZUludChpLmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItcGFyYWxsYXgtZHVyYXRpb24iKSwgMTApIHx8IGY7CiAgICAgICAgICBmID09PSAwICYmIChkID0gMCksIChpLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGAke2R9bXNgKTsKICAgICAgICB9KTsKICAgIH07CiAgdSgiYmVmb3JlSW5pdCIsICgpID0+IHsKICAgIGUucGFyYW1zLnBhcmFsbGF4LmVuYWJsZWQgJiYKICAgICAgKChlLnBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzID0gITApLAogICAgICAoZS5vcmlnaW5hbFBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzID0gITApKTsKICB9KSwKICAgIHUoImluaXQiLCAoKSA9PiB7CiAgICAgIGUucGFyYW1zLnBhcmFsbGF4LmVuYWJsZWQgJiYgYigpOwogICAgfSksCiAgICB1KCJzZXRUcmFuc2xhdGUiLCAoKSA9PiB7CiAgICAgIGUucGFyYW1zLnBhcmFsbGF4LmVuYWJsZWQgJiYgYigpOwogICAgfSksCiAgICB1KCJzZXRUcmFuc2l0aW9uIiwgKGYsIHApID0+IHsKICAgICAgZS5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCAmJiBFKHApOwogICAgfSk7Cn0KZnVuY3Rpb24gWmUoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZXh0ZW5kUGFyYW1zOiBoLCBvbjogdSwgZW1pdDogZyB9ID0gTTsKICBjb25zdCB3ID0gWigpOwogIGgoewogICAgem9vbTogewogICAgICBlbmFibGVkOiAhMSwKICAgICAgbGltaXRUb09yaWdpbmFsU2l6ZTogITEsCiAgICAgIG1heFJhdGlvOiAzLAogICAgICBtaW5SYXRpbzogMSwKICAgICAgdG9nZ2xlOiAhMCwKICAgICAgY29udGFpbmVyQ2xhc3M6ICJzd2lwZXItem9vbS1jb250YWluZXIiLAogICAgICB6b29tZWRTbGlkZUNsYXNzOiAic3dpcGVyLXNsaWRlLXpvb21lZCIsCiAgICB9LAogIH0pLAogICAgKGUuem9vbSA9IHsgZW5hYmxlZDogITEgfSk7CiAgbGV0IGIgPSAxLAogICAgRSA9ICExLAogICAgZiwKICAgIHA7CiAgY29uc3QgcyA9IFtdLAogICAgdCA9IHsKICAgICAgb3JpZ2luWDogMCwKICAgICAgb3JpZ2luWTogMCwKICAgICAgc2xpZGVFbDogdm9pZCAwLAogICAgICBzbGlkZVdpZHRoOiB2b2lkIDAsCiAgICAgIHNsaWRlSGVpZ2h0OiB2b2lkIDAsCiAgICAgIGltYWdlRWw6IHZvaWQgMCwKICAgICAgaW1hZ2VXcmFwRWw6IHZvaWQgMCwKICAgICAgbWF4UmF0aW86IDMsCiAgICB9LAogICAgaSA9IHsKICAgICAgaXNUb3VjaGVkOiB2b2lkIDAsCiAgICAgIGlzTW92ZWQ6IHZvaWQgMCwKICAgICAgY3VycmVudFg6IHZvaWQgMCwKICAgICAgY3VycmVudFk6IHZvaWQgMCwKICAgICAgbWluWDogdm9pZCAwLAogICAgICBtaW5ZOiB2b2lkIDAsCiAgICAgIG1heFg6IHZvaWQgMCwKICAgICAgbWF4WTogdm9pZCAwLAogICAgICB3aWR0aDogdm9pZCAwLAogICAgICBoZWlnaHQ6IHZvaWQgMCwKICAgICAgc3RhcnRYOiB2b2lkIDAsCiAgICAgIHN0YXJ0WTogdm9pZCAwLAogICAgICB0b3VjaGVzU3RhcnQ6IHt9LAogICAgICB0b3VjaGVzQ3VycmVudDoge30sCiAgICB9LAogICAgZCA9IHsKICAgICAgeDogdm9pZCAwLAogICAgICB5OiB2b2lkIDAsCiAgICAgIHByZXZQb3NpdGlvblg6IHZvaWQgMCwKICAgICAgcHJldlBvc2l0aW9uWTogdm9pZCAwLAogICAgICBwcmV2VGltZTogdm9pZCAwLAogICAgfTsKICBsZXQgbyA9IDE7CiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuem9vbSwgInNjYWxlIiwgewogICAgZ2V0KCkgewogICAgICByZXR1cm4gbzsKICAgIH0sCiAgICBzZXQoJCkgewogICAgICBpZiAobyAhPT0gJCkgewogICAgICAgIGNvbnN0IGsgPSB0LmltYWdlRWwsCiAgICAgICAgICBYID0gdC5zbGlkZUVsOwogICAgICAgIGcoInpvb21DaGFuZ2UiLCAkLCBrLCBYKTsKICAgICAgfQogICAgICBvID0gJDsKICAgIH0sCiAgfSk7CiAgZnVuY3Rpb24gbigpIHsKICAgIGlmIChzLmxlbmd0aCA8IDIpIHJldHVybiAxOwogICAgY29uc3QgJCA9IHNbMF0ucGFnZVgsCiAgICAgIGsgPSBzWzBdLnBhZ2VZLAogICAgICBYID0gc1sxXS5wYWdlWCwKICAgICAgTiA9IHNbMV0ucGFnZVk7CiAgICByZXR1cm4gTWF0aC5zcXJ0KChYIC0gJCkgKiogMiArIChOIC0gaykgKiogMik7CiAgfQogIGZ1bmN0aW9uIGwoKSB7CiAgICBjb25zdCAkID0gZS5wYXJhbXMuem9vbSwKICAgICAgayA9IHQuaW1hZ2VXcmFwRWwuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci16b29tIikgfHwgJC5tYXhSYXRpbzsKICAgIGlmICgkLmxpbWl0VG9PcmlnaW5hbFNpemUgJiYgdC5pbWFnZUVsICYmIHQuaW1hZ2VFbC5uYXR1cmFsV2lkdGgpIHsKICAgICAgY29uc3QgWCA9IHQuaW1hZ2VFbC5uYXR1cmFsV2lkdGggLyB0LmltYWdlRWwub2Zmc2V0V2lkdGg7CiAgICAgIHJldHVybiBNYXRoLm1pbihYLCBrKTsKICAgIH0KICAgIHJldHVybiBrOwogIH0KICBmdW5jdGlvbiBjKCkgewogICAgaWYgKHMubGVuZ3RoIDwgMikgcmV0dXJuIHsgeDogbnVsbCwgeTogbnVsbCB9OwogICAgY29uc3QgJCA9IHQuaW1hZ2VFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIHJldHVybiBbCiAgICAgIChzWzBdLnBhZ2VYICsgKHNbMV0ucGFnZVggLSBzWzBdLnBhZ2VYKSAvIDIgLSAkLnggLSB3LnNjcm9sbFgpIC8gYiwKICAgICAgKHNbMF0ucGFnZVkgKyAoc1sxXS5wYWdlWSAtIHNbMF0ucGFnZVkpIC8gMiAtICQueSAtIHcuc2Nyb2xsWSkgLyBiLAogICAgXTsKICB9CiAgZnVuY3Rpb24gcigpIHsKICAgIHJldHVybiBlLmlzRWxlbWVudCA/ICJzd2lwZXItc2xpZGUiIDogYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9YDsKICB9CiAgZnVuY3Rpb24gYSgkKSB7CiAgICBjb25zdCBrID0gcigpOwogICAgcmV0dXJuICEhKAogICAgICAkLnRhcmdldC5tYXRjaGVzKGspIHx8CiAgICAgIGUuc2xpZGVzLmZpbHRlcigoWCkgPT4gWC5jb250YWlucygkLnRhcmdldCkpLmxlbmd0aCA+IDAKICAgICk7CiAgfQogIGZ1bmN0aW9uIG0oJCkgewogICAgY29uc3QgayA9IGAuJHtlLnBhcmFtcy56b29tLmNvbnRhaW5lckNsYXNzfWA7CiAgICByZXR1cm4gISEoCiAgICAgICQudGFyZ2V0Lm1hdGNoZXMoaykgfHwKICAgICAgWy4uLmUuaG9zdEVsLnF1ZXJ5U2VsZWN0b3JBbGwoayldLmZpbHRlcigoWCkgPT4gWC5jb250YWlucygkLnRhcmdldCkpCiAgICAgICAgLmxlbmd0aCA+IDAKICAgICk7CiAgfQogIGZ1bmN0aW9uIEMoJCkgewogICAgaWYgKCgkLnBvaW50ZXJUeXBlID09PSAibW91c2UiICYmIHMuc3BsaWNlKDAsIHMubGVuZ3RoKSwgIWEoJCkpKSByZXR1cm47CiAgICBjb25zdCBrID0gZS5wYXJhbXMuem9vbTsKICAgIGlmICgoKGYgPSAhMSksIChwID0gITEpLCBzLnB1c2goJCksICEocy5sZW5ndGggPCAyKSkpIHsKICAgICAgaWYgKCgoZiA9ICEwKSwgKHQuc2NhbGVTdGFydCA9IG4oKSksICF0LnNsaWRlRWwpKSB7CiAgICAgICAgKHQuc2xpZGVFbCA9ICQudGFyZ2V0LmNsb3Nlc3QoYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9LCBzd2lwZXItc2xpZGVgKSksCiAgICAgICAgICB0LnNsaWRlRWwgfHwgKHQuc2xpZGVFbCA9IGUuc2xpZGVzW2UuYWN0aXZlSW5kZXhdKTsKICAgICAgICBsZXQgWCA9IHQuc2xpZGVFbC5xdWVyeVNlbGVjdG9yKGAuJHtrLmNvbnRhaW5lckNsYXNzfWApOwogICAgICAgIGlmICgKICAgICAgICAgIChYICYmCiAgICAgICAgICAgIChYID0gWC5xdWVyeVNlbGVjdG9yQWxsKAogICAgICAgICAgICAgICJwaWN0dXJlLCBpbWcsIHN2ZywgY2FudmFzLCAuc3dpcGVyLXpvb20tdGFyZ2V0IgogICAgICAgICAgICApWzBdKSwKICAgICAgICAgICh0LmltYWdlRWwgPSBYKSwKICAgICAgICAgIFgKICAgICAgICAgICAgPyAodC5pbWFnZVdyYXBFbCA9IGllKHQuaW1hZ2VFbCwgYC4ke2suY29udGFpbmVyQ2xhc3N9YClbMF0pCiAgICAgICAgICAgIDogKHQuaW1hZ2VXcmFwRWwgPSB2b2lkIDApLAogICAgICAgICAgIXQuaW1hZ2VXcmFwRWwpCiAgICAgICAgKSB7CiAgICAgICAgICB0LmltYWdlRWwgPSB2b2lkIDA7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHQubWF4UmF0aW8gPSBsKCk7CiAgICAgIH0KICAgICAgaWYgKHQuaW1hZ2VFbCkgewogICAgICAgIGNvbnN0IFtYLCBOXSA9IGMoKTsKICAgICAgICAodC5vcmlnaW5YID0gWCksCiAgICAgICAgICAodC5vcmlnaW5ZID0gTiksCiAgICAgICAgICAodC5pbWFnZUVsLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICIwbXMiKTsKICAgICAgfQogICAgICBFID0gITA7CiAgICB9CiAgfQogIGZ1bmN0aW9uIEQoJCkgewogICAgaWYgKCFhKCQpKSByZXR1cm47CiAgICBjb25zdCBrID0gZS5wYXJhbXMuem9vbSwKICAgICAgWCA9IGUuem9vbSwKICAgICAgTiA9IHMuZmluZEluZGV4KChSKSA9PiBSLnBvaW50ZXJJZCA9PT0gJC5wb2ludGVySWQpOwogICAgTiA+PSAwICYmIChzW05dID0gJCksCiAgICAgICEocy5sZW5ndGggPCAyKSAmJgogICAgICAgICgocCA9ICEwKSwKICAgICAgICAodC5zY2FsZU1vdmUgPSBuKCkpLAogICAgICAgIHQuaW1hZ2VFbCAmJgogICAgICAgICAgKChYLnNjYWxlID0gKHQuc2NhbGVNb3ZlIC8gdC5zY2FsZVN0YXJ0KSAqIGIpLAogICAgICAgICAgWC5zY2FsZSA+IHQubWF4UmF0aW8gJiYKICAgICAgICAgICAgKFguc2NhbGUgPSB0Lm1heFJhdGlvIC0gMSArIChYLnNjYWxlIC0gdC5tYXhSYXRpbyArIDEpICoqIDAuNSksCiAgICAgICAgICBYLnNjYWxlIDwgay5taW5SYXRpbyAmJgogICAgICAgICAgICAoWC5zY2FsZSA9IGsubWluUmF0aW8gKyAxIC0gKGsubWluUmF0aW8gLSBYLnNjYWxlICsgMSkgKiogMC41KSwKICAgICAgICAgICh0LmltYWdlRWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgke1guc2NhbGV9KWApKSk7CiAgfQogIGZ1bmN0aW9uIFAoJCkgewogICAgaWYgKCFhKCQpIHx8ICgkLnBvaW50ZXJUeXBlID09PSAibW91c2UiICYmICQudHlwZSA9PT0gInBvaW50ZXJvdXQiKSkgcmV0dXJuOwogICAgY29uc3QgayA9IGUucGFyYW1zLnpvb20sCiAgICAgIFggPSBlLnpvb20sCiAgICAgIE4gPSBzLmZpbmRJbmRleCgoUikgPT4gUi5wb2ludGVySWQgPT09ICQucG9pbnRlcklkKTsKICAgIE4gPj0gMCAmJiBzLnNwbGljZShOLCAxKSwKICAgICAgISghZiB8fCAhcCkgJiYKICAgICAgICAoKGYgPSAhMSksCiAgICAgICAgKHAgPSAhMSksCiAgICAgICAgdC5pbWFnZUVsICYmCiAgICAgICAgICAoKFguc2NhbGUgPSBNYXRoLm1heChNYXRoLm1pbihYLnNjYWxlLCB0Lm1heFJhdGlvKSwgay5taW5SYXRpbykpLAogICAgICAgICAgKHQuaW1hZ2VFbC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtlLnBhcmFtcy5zcGVlZH1tc2ApLAogICAgICAgICAgKHQuaW1hZ2VFbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKCR7WC5zY2FsZX0pYCksCiAgICAgICAgICAoYiA9IFguc2NhbGUpLAogICAgICAgICAgKEUgPSAhMSksCiAgICAgICAgICBYLnNjYWxlID4gMSAmJiB0LnNsaWRlRWwKICAgICAgICAgICAgPyB0LnNsaWRlRWwuY2xhc3NMaXN0LmFkZChgJHtrLnpvb21lZFNsaWRlQ2xhc3N9YCkKICAgICAgICAgICAgOiBYLnNjYWxlIDw9IDEgJiYKICAgICAgICAgICAgICB0LnNsaWRlRWwgJiYKICAgICAgICAgICAgICB0LnNsaWRlRWwuY2xhc3NMaXN0LnJlbW92ZShgJHtrLnpvb21lZFNsaWRlQ2xhc3N9YCksCiAgICAgICAgICBYLnNjYWxlID09PSAxICYmCiAgICAgICAgICAgICgodC5vcmlnaW5YID0gMCksICh0Lm9yaWdpblkgPSAwKSwgKHQuc2xpZGVFbCA9IHZvaWQgMCkpKSk7CiAgfQogIGxldCBBOwogIGZ1bmN0aW9uIHgoKSB7CiAgICBlLnRvdWNoRXZlbnRzRGF0YS5wcmV2ZW50VG91Y2hNb3ZlRnJvbVBvaW50ZXJNb3ZlID0gITE7CiAgfQogIGZ1bmN0aW9uIE8oKSB7CiAgICBjbGVhclRpbWVvdXQoQSksCiAgICAgIChlLnRvdWNoRXZlbnRzRGF0YS5wcmV2ZW50VG91Y2hNb3ZlRnJvbVBvaW50ZXJNb3ZlID0gITApLAogICAgICAoQSA9IHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIGUuZGVzdHJveWVkIHx8IHgoKTsKICAgICAgfSkpOwogIH0KICBmdW5jdGlvbiBJKCQpIHsKICAgIGNvbnN0IGsgPSBlLmRldmljZTsKICAgIGlmICghdC5pbWFnZUVsIHx8IGkuaXNUb3VjaGVkKSByZXR1cm47CiAgICBrLmFuZHJvaWQgJiYgJC5jYW5jZWxhYmxlICYmICQucHJldmVudERlZmF1bHQoKSwgKGkuaXNUb3VjaGVkID0gITApOwogICAgY29uc3QgWCA9IHMubGVuZ3RoID4gMCA/IHNbMF0gOiAkOwogICAgKGkudG91Y2hlc1N0YXJ0LnggPSBYLnBhZ2VYKSwgKGkudG91Y2hlc1N0YXJ0LnkgPSBYLnBhZ2VZKTsKICB9CiAgZnVuY3Rpb24geigkKSB7CiAgICBpZiAoIWEoJCkgfHwgIW0oJCkpIHJldHVybjsKICAgIGNvbnN0IGsgPSBlLnpvb207CiAgICBpZiAoIXQuaW1hZ2VFbCB8fCAhaS5pc1RvdWNoZWQgfHwgIXQuc2xpZGVFbCkgcmV0dXJuOwogICAgaS5pc01vdmVkIHx8CiAgICAgICgoaS53aWR0aCA9IHQuaW1hZ2VFbC5vZmZzZXRXaWR0aCB8fCB0LmltYWdlRWwuY2xpZW50V2lkdGgpLAogICAgICAoaS5oZWlnaHQgPSB0LmltYWdlRWwub2Zmc2V0SGVpZ2h0IHx8IHQuaW1hZ2VFbC5jbGllbnRIZWlnaHQpLAogICAgICAoaS5zdGFydFggPSAkZSh0LmltYWdlV3JhcEVsLCAieCIpIHx8IDApLAogICAgICAoaS5zdGFydFkgPSAkZSh0LmltYWdlV3JhcEVsLCAieSIpIHx8IDApLAogICAgICAodC5zbGlkZVdpZHRoID0gdC5zbGlkZUVsLm9mZnNldFdpZHRoKSwKICAgICAgKHQuc2xpZGVIZWlnaHQgPSB0LnNsaWRlRWwub2Zmc2V0SGVpZ2h0KSwKICAgICAgKHQuaW1hZ2VXcmFwRWwuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gIjBtcyIpKTsKICAgIGNvbnN0IFggPSBpLndpZHRoICogay5zY2FsZSwKICAgICAgTiA9IGkuaGVpZ2h0ICogay5zY2FsZTsKICAgIGlmICgKICAgICAgKChpLm1pblggPSBNYXRoLm1pbih0LnNsaWRlV2lkdGggLyAyIC0gWCAvIDIsIDApKSwKICAgICAgKGkubWF4WCA9IC1pLm1pblgpLAogICAgICAoaS5taW5ZID0gTWF0aC5taW4odC5zbGlkZUhlaWdodCAvIDIgLSBOIC8gMiwgMCkpLAogICAgICAoaS5tYXhZID0gLWkubWluWSksCiAgICAgIChpLnRvdWNoZXNDdXJyZW50LnggPSBzLmxlbmd0aCA+IDAgPyBzWzBdLnBhZ2VYIDogJC5wYWdlWCksCiAgICAgIChpLnRvdWNoZXNDdXJyZW50LnkgPSBzLmxlbmd0aCA+IDAgPyBzWzBdLnBhZ2VZIDogJC5wYWdlWSksCiAgICAgIE1hdGgubWF4KAogICAgICAgIE1hdGguYWJzKGkudG91Y2hlc0N1cnJlbnQueCAtIGkudG91Y2hlc1N0YXJ0LngpLAogICAgICAgIE1hdGguYWJzKGkudG91Y2hlc0N1cnJlbnQueSAtIGkudG91Y2hlc1N0YXJ0LnkpCiAgICAgICkgPiA1ICYmIChlLmFsbG93Q2xpY2sgPSAhMSksCiAgICAgICFpLmlzTW92ZWQgJiYgIUUpCiAgICApIHsKICAgICAgaWYgKAogICAgICAgIGUuaXNIb3Jpem9udGFsKCkgJiYKICAgICAgICAoKE1hdGguZmxvb3IoaS5taW5YKSA9PT0gTWF0aC5mbG9vcihpLnN0YXJ0WCkgJiYKICAgICAgICAgIGkudG91Y2hlc0N1cnJlbnQueCA8IGkudG91Y2hlc1N0YXJ0LngpIHx8CiAgICAgICAgICAoTWF0aC5mbG9vcihpLm1heFgpID09PSBNYXRoLmZsb29yKGkuc3RhcnRYKSAmJgogICAgICAgICAgICBpLnRvdWNoZXNDdXJyZW50LnggPiBpLnRvdWNoZXNTdGFydC54KSkKICAgICAgKSB7CiAgICAgICAgKGkuaXNUb3VjaGVkID0gITEpLCB4KCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICgKICAgICAgICAhZS5pc0hvcml6b250YWwoKSAmJgogICAgICAgICgoTWF0aC5mbG9vcihpLm1pblkpID09PSBNYXRoLmZsb29yKGkuc3RhcnRZKSAmJgogICAgICAgICAgaS50b3VjaGVzQ3VycmVudC55IDwgaS50b3VjaGVzU3RhcnQueSkgfHwKICAgICAgICAgIChNYXRoLmZsb29yKGkubWF4WSkgPT09IE1hdGguZmxvb3IoaS5zdGFydFkpICYmCiAgICAgICAgICAgIGkudG91Y2hlc0N1cnJlbnQueSA+IGkudG91Y2hlc1N0YXJ0LnkpKQogICAgICApIHsKICAgICAgICAoaS5pc1RvdWNoZWQgPSAhMSksIHgoKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICAgICQuY2FuY2VsYWJsZSAmJiAkLnByZXZlbnREZWZhdWx0KCksCiAgICAgICQuc3RvcFByb3BhZ2F0aW9uKCksCiAgICAgIE8oKSwKICAgICAgKGkuaXNNb3ZlZCA9ICEwKTsKICAgIGNvbnN0IFcgPSAoay5zY2FsZSAtIGIpIC8gKHQubWF4UmF0aW8gLSBlLnBhcmFtcy56b29tLm1pblJhdGlvKSwKICAgICAgeyBvcmlnaW5YOiBGLCBvcmlnaW5ZOiB0ZSB9ID0gdDsKICAgIChpLmN1cnJlbnRYID0KICAgICAgaS50b3VjaGVzQ3VycmVudC54IC0gaS50b3VjaGVzU3RhcnQueCArIGkuc3RhcnRYICsgVyAqIChpLndpZHRoIC0gRiAqIDIpKSwKICAgICAgKGkuY3VycmVudFkgPQogICAgICAgIGkudG91Y2hlc0N1cnJlbnQueSAtCiAgICAgICAgaS50b3VjaGVzU3RhcnQueSArCiAgICAgICAgaS5zdGFydFkgKwogICAgICAgIFcgKiAoaS5oZWlnaHQgLSB0ZSAqIDIpKSwKICAgICAgaS5jdXJyZW50WCA8IGkubWluWCAmJgogICAgICAgIChpLmN1cnJlbnRYID0gaS5taW5YICsgMSAtIChpLm1pblggLSBpLmN1cnJlbnRYICsgMSkgKiogMC44KSwKICAgICAgaS5jdXJyZW50WCA+IGkubWF4WCAmJgogICAgICAgIChpLmN1cnJlbnRYID0gaS5tYXhYIC0gMSArIChpLmN1cnJlbnRYIC0gaS5tYXhYICsgMSkgKiogMC44KSwKICAgICAgaS5jdXJyZW50WSA8IGkubWluWSAmJgogICAgICAgIChpLmN1cnJlbnRZID0gaS5taW5ZICsgMSAtIChpLm1pblkgLSBpLmN1cnJlbnRZICsgMSkgKiogMC44KSwKICAgICAgaS5jdXJyZW50WSA+IGkubWF4WSAmJgogICAgICAgIChpLmN1cnJlbnRZID0gaS5tYXhZIC0gMSArIChpLmN1cnJlbnRZIC0gaS5tYXhZICsgMSkgKiogMC44KSwKICAgICAgZC5wcmV2UG9zaXRpb25YIHx8IChkLnByZXZQb3NpdGlvblggPSBpLnRvdWNoZXNDdXJyZW50LngpLAogICAgICBkLnByZXZQb3NpdGlvblkgfHwgKGQucHJldlBvc2l0aW9uWSA9IGkudG91Y2hlc0N1cnJlbnQueSksCiAgICAgIGQucHJldlRpbWUgfHwgKGQucHJldlRpbWUgPSBEYXRlLm5vdygpKSwKICAgICAgKGQueCA9CiAgICAgICAgKGkudG91Y2hlc0N1cnJlbnQueCAtIGQucHJldlBvc2l0aW9uWCkgLyAoRGF0ZS5ub3coKSAtIGQucHJldlRpbWUpIC8gMiksCiAgICAgIChkLnkgPQogICAgICAgIChpLnRvdWNoZXNDdXJyZW50LnkgLSBkLnByZXZQb3NpdGlvblkpIC8gKERhdGUubm93KCkgLSBkLnByZXZUaW1lKSAvIDIpLAogICAgICBNYXRoLmFicyhpLnRvdWNoZXNDdXJyZW50LnggLSBkLnByZXZQb3NpdGlvblgpIDwgMiAmJiAoZC54ID0gMCksCiAgICAgIE1hdGguYWJzKGkudG91Y2hlc0N1cnJlbnQueSAtIGQucHJldlBvc2l0aW9uWSkgPCAyICYmIChkLnkgPSAwKSwKICAgICAgKGQucHJldlBvc2l0aW9uWCA9IGkudG91Y2hlc0N1cnJlbnQueCksCiAgICAgIChkLnByZXZQb3NpdGlvblkgPSBpLnRvdWNoZXNDdXJyZW50LnkpLAogICAgICAoZC5wcmV2VGltZSA9IERhdGUubm93KCkpLAogICAgICAodC5pbWFnZVdyYXBFbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHtpLmN1cnJlbnRYfXB4LCAke2kuY3VycmVudFl9cHgsMClgKTsKICB9CiAgZnVuY3Rpb24gVCgpIHsKICAgIGNvbnN0ICQgPSBlLnpvb207CiAgICBpZiAoIXQuaW1hZ2VFbCkgcmV0dXJuOwogICAgaWYgKCFpLmlzVG91Y2hlZCB8fCAhaS5pc01vdmVkKSB7CiAgICAgIChpLmlzVG91Y2hlZCA9ICExKSwgKGkuaXNNb3ZlZCA9ICExKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgKGkuaXNUb3VjaGVkID0gITEpLCAoaS5pc01vdmVkID0gITEpOwogICAgbGV0IGsgPSAzMDAsCiAgICAgIFggPSAzMDA7CiAgICBjb25zdCBOID0gZC54ICogaywKICAgICAgUiA9IGkuY3VycmVudFggKyBOLAogICAgICBXID0gZC55ICogWCwKICAgICAgRiA9IGkuY3VycmVudFkgKyBXOwogICAgZC54ICE9PSAwICYmIChrID0gTWF0aC5hYnMoKFIgLSBpLmN1cnJlbnRYKSAvIGQueCkpLAogICAgICBkLnkgIT09IDAgJiYgKFggPSBNYXRoLmFicygoRiAtIGkuY3VycmVudFkpIC8gZC55KSk7CiAgICBjb25zdCB0ZSA9IE1hdGgubWF4KGssIFgpOwogICAgKGkuY3VycmVudFggPSBSKSwgKGkuY3VycmVudFkgPSBGKTsKICAgIGNvbnN0IHBlID0gaS53aWR0aCAqICQuc2NhbGUsCiAgICAgIFYgPSBpLmhlaWdodCAqICQuc2NhbGU7CiAgICAoaS5taW5YID0gTWF0aC5taW4odC5zbGlkZVdpZHRoIC8gMiAtIHBlIC8gMiwgMCkpLAogICAgICAoaS5tYXhYID0gLWkubWluWCksCiAgICAgIChpLm1pblkgPSBNYXRoLm1pbih0LnNsaWRlSGVpZ2h0IC8gMiAtIFYgLyAyLCAwKSksCiAgICAgIChpLm1heFkgPSAtaS5taW5ZKSwKICAgICAgKGkuY3VycmVudFggPSBNYXRoLm1heChNYXRoLm1pbihpLmN1cnJlbnRYLCBpLm1heFgpLCBpLm1pblgpKSwKICAgICAgKGkuY3VycmVudFkgPSBNYXRoLm1heChNYXRoLm1pbihpLmN1cnJlbnRZLCBpLm1heFkpLCBpLm1pblkpKSwKICAgICAgKHQuaW1hZ2VXcmFwRWwuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7dGV9bXNgKSwKICAgICAgKHQuaW1hZ2VXcmFwRWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7aS5jdXJyZW50WH1weCwgJHtpLmN1cnJlbnRZfXB4LDApYCk7CiAgfQogIGZ1bmN0aW9uIFMoKSB7CiAgICBjb25zdCAkID0gZS56b29tOwogICAgdC5zbGlkZUVsICYmCiAgICAgIGUuYWN0aXZlSW5kZXggIT09IGUuc2xpZGVzLmluZGV4T2YodC5zbGlkZUVsKSAmJgogICAgICAodC5pbWFnZUVsICYmICh0LmltYWdlRWwuc3R5bGUudHJhbnNmb3JtID0gInRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgxKSIpLAogICAgICB0LmltYWdlV3JhcEVsICYmICh0LmltYWdlV3JhcEVsLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGUzZCgwLDAsMCkiKSwKICAgICAgdC5zbGlkZUVsLmNsYXNzTGlzdC5yZW1vdmUoYCR7ZS5wYXJhbXMuem9vbS56b29tZWRTbGlkZUNsYXNzfWApLAogICAgICAoJC5zY2FsZSA9IDEpLAogICAgICAoYiA9IDEpLAogICAgICAodC5zbGlkZUVsID0gdm9pZCAwKSwKICAgICAgKHQuaW1hZ2VFbCA9IHZvaWQgMCksCiAgICAgICh0LmltYWdlV3JhcEVsID0gdm9pZCAwKSwKICAgICAgKHQub3JpZ2luWCA9IDApLAogICAgICAodC5vcmlnaW5ZID0gMCkpOwogIH0KICBmdW5jdGlvbiBMKCQpIHsKICAgIGNvbnN0IGsgPSBlLnpvb20sCiAgICAgIFggPSBlLnBhcmFtcy56b29tOwogICAgaWYgKCF0LnNsaWRlRWwpIHsKICAgICAgJCAmJgogICAgICAgICQudGFyZ2V0ICYmCiAgICAgICAgKHQuc2xpZGVFbCA9ICQudGFyZ2V0LmNsb3Nlc3QoYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9LCBzd2lwZXItc2xpZGVgKSksCiAgICAgICAgdC5zbGlkZUVsIHx8CiAgICAgICAgICAoZS5wYXJhbXMudmlydHVhbCAmJiBlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQgJiYgZS52aXJ0dWFsCiAgICAgICAgICAgID8gKHQuc2xpZGVFbCA9IEsoZS5zbGlkZXNFbCwgYC4ke2UucGFyYW1zLnNsaWRlQWN0aXZlQ2xhc3N9YClbMF0pCiAgICAgICAgICAgIDogKHQuc2xpZGVFbCA9IGUuc2xpZGVzW2UuYWN0aXZlSW5kZXhdKSk7CiAgICAgIGxldCBuZSA9IHQuc2xpZGVFbC5xdWVyeVNlbGVjdG9yKGAuJHtYLmNvbnRhaW5lckNsYXNzfWApOwogICAgICBuZSAmJgogICAgICAgIChuZSA9IG5lLnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAicGljdHVyZSwgaW1nLCBzdmcsIGNhbnZhcywgLnN3aXBlci16b29tLXRhcmdldCIKICAgICAgICApWzBdKSwKICAgICAgICAodC5pbWFnZUVsID0gbmUpLAogICAgICAgIG5lCiAgICAgICAgICA/ICh0LmltYWdlV3JhcEVsID0gaWUodC5pbWFnZUVsLCBgLiR7WC5jb250YWluZXJDbGFzc31gKVswXSkKICAgICAgICAgIDogKHQuaW1hZ2VXcmFwRWwgPSB2b2lkIDApOwogICAgfQogICAgaWYgKCF0LmltYWdlRWwgfHwgIXQuaW1hZ2VXcmFwRWwpIHJldHVybjsKICAgIGUucGFyYW1zLmNzc01vZGUgJiYKICAgICAgKChlLndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iKSwKICAgICAgKGUud3JhcHBlckVsLnN0eWxlLnRvdWNoQWN0aW9uID0gIm5vbmUiKSksCiAgICAgIHQuc2xpZGVFbC5jbGFzc0xpc3QuYWRkKGAke1guem9vbWVkU2xpZGVDbGFzc31gKTsKICAgIGxldCBOLCBSLCBXLCBGLCB0ZSwgcGUsIFYsIFEsIFNlLCBNZSwgVGUsIENlLCBkZSwgY2UsIGdlLCB3ZSwgdmUsIGJlOwogICAgdHlwZW9mIGkudG91Y2hlc1N0YXJ0LnggPiAidSIgJiYgJAogICAgICA/ICgoTiA9ICQucGFnZVgpLCAoUiA9ICQucGFnZVkpKQogICAgICA6ICgoTiA9IGkudG91Y2hlc1N0YXJ0LngpLCAoUiA9IGkudG91Y2hlc1N0YXJ0LnkpKTsKICAgIGNvbnN0IHJlID0gdHlwZW9mICQgPT0gIm51bWJlciIgPyAkIDogbnVsbDsKICAgIGIgPT09IDEgJiYKICAgICAgcmUgJiYKICAgICAgKChOID0gdm9pZCAwKSwKICAgICAgKFIgPSB2b2lkIDApLAogICAgICAoaS50b3VjaGVzU3RhcnQueCA9IHZvaWQgMCksCiAgICAgIChpLnRvdWNoZXNTdGFydC55ID0gdm9pZCAwKSk7CiAgICBjb25zdCB6ZSA9IGwoKTsKICAgIChrLnNjYWxlID0gcmUgfHwgemUpLAogICAgICAoYiA9IHJlIHx8IHplKSwKICAgICAgJCAmJiAhKGIgPT09IDEgJiYgcmUpCiAgICAgICAgPyAoKHZlID0gdC5zbGlkZUVsLm9mZnNldFdpZHRoKSwKICAgICAgICAgIChiZSA9IHQuc2xpZGVFbC5vZmZzZXRIZWlnaHQpLAogICAgICAgICAgKFcgPSBmZSh0LnNsaWRlRWwpLmxlZnQgKyB3LnNjcm9sbFgpLAogICAgICAgICAgKEYgPSBmZSh0LnNsaWRlRWwpLnRvcCArIHcuc2Nyb2xsWSksCiAgICAgICAgICAodGUgPSBXICsgdmUgLyAyIC0gTiksCiAgICAgICAgICAocGUgPSBGICsgYmUgLyAyIC0gUiksCiAgICAgICAgICAoU2UgPSB0LmltYWdlRWwub2Zmc2V0V2lkdGggfHwgdC5pbWFnZUVsLmNsaWVudFdpZHRoKSwKICAgICAgICAgIChNZSA9IHQuaW1hZ2VFbC5vZmZzZXRIZWlnaHQgfHwgdC5pbWFnZUVsLmNsaWVudEhlaWdodCksCiAgICAgICAgICAoVGUgPSBTZSAqIGsuc2NhbGUpLAogICAgICAgICAgKENlID0gTWUgKiBrLnNjYWxlKSwKICAgICAgICAgIChkZSA9IE1hdGgubWluKHZlIC8gMiAtIFRlIC8gMiwgMCkpLAogICAgICAgICAgKGNlID0gTWF0aC5taW4oYmUgLyAyIC0gQ2UgLyAyLCAwKSksCiAgICAgICAgICAoZ2UgPSAtZGUpLAogICAgICAgICAgKHdlID0gLWNlKSwKICAgICAgICAgIChWID0gdGUgKiBrLnNjYWxlKSwKICAgICAgICAgIChRID0gcGUgKiBrLnNjYWxlKSwKICAgICAgICAgIFYgPCBkZSAmJiAoViA9IGRlKSwKICAgICAgICAgIFYgPiBnZSAmJiAoViA9IGdlKSwKICAgICAgICAgIFEgPCBjZSAmJiAoUSA9IGNlKSwKICAgICAgICAgIFEgPiB3ZSAmJiAoUSA9IHdlKSkKICAgICAgICA6ICgoViA9IDApLCAoUSA9IDApKSwKICAgICAgcmUgJiYgay5zY2FsZSA9PT0gMSAmJiAoKHQub3JpZ2luWCA9IDApLCAodC5vcmlnaW5ZID0gMCkpLAogICAgICAodC5pbWFnZVdyYXBFbC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMzAwbXMiKSwKICAgICAgKHQuaW1hZ2VXcmFwRWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7Vn1weCwgJHtRfXB4LDApYCksCiAgICAgICh0LmltYWdlRWwuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gIjMwMG1zIiksCiAgICAgICh0LmltYWdlRWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgke2suc2NhbGV9KWApOwogIH0KICBmdW5jdGlvbiBZKCkgewogICAgY29uc3QgJCA9IGUuem9vbSwKICAgICAgayA9IGUucGFyYW1zLnpvb207CiAgICBpZiAoIXQuc2xpZGVFbCkgewogICAgICBlLnBhcmFtcy52aXJ0dWFsICYmIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCAmJiBlLnZpcnR1YWwKICAgICAgICA/ICh0LnNsaWRlRWwgPSBLKGUuc2xpZGVzRWwsIGAuJHtlLnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzfWApWzBdKQogICAgICAgIDogKHQuc2xpZGVFbCA9IGUuc2xpZGVzW2UuYWN0aXZlSW5kZXhdKTsKICAgICAgbGV0IFggPSB0LnNsaWRlRWwucXVlcnlTZWxlY3RvcihgLiR7ay5jb250YWluZXJDbGFzc31gKTsKICAgICAgWCAmJgogICAgICAgIChYID0gWC5xdWVyeVNlbGVjdG9yQWxsKAogICAgICAgICAgInBpY3R1cmUsIGltZywgc3ZnLCBjYW52YXMsIC5zd2lwZXItem9vbS10YXJnZXQiCiAgICAgICAgKVswXSksCiAgICAgICAgKHQuaW1hZ2VFbCA9IFgpLAogICAgICAgIFgKICAgICAgICAgID8gKHQuaW1hZ2VXcmFwRWwgPSBpZSh0LmltYWdlRWwsIGAuJHtrLmNvbnRhaW5lckNsYXNzfWApWzBdKQogICAgICAgICAgOiAodC5pbWFnZVdyYXBFbCA9IHZvaWQgMCk7CiAgICB9CiAgICAhdC5pbWFnZUVsIHx8CiAgICAgICF0LmltYWdlV3JhcEVsIHx8CiAgICAgIChlLnBhcmFtcy5jc3NNb2RlICYmCiAgICAgICAgKChlLndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdyA9ICIiKSwKICAgICAgICAoZS53cmFwcGVyRWwuc3R5bGUudG91Y2hBY3Rpb24gPSAiIikpLAogICAgICAoJC5zY2FsZSA9IDEpLAogICAgICAoYiA9IDEpLAogICAgICAoaS50b3VjaGVzU3RhcnQueCA9IHZvaWQgMCksCiAgICAgIChpLnRvdWNoZXNTdGFydC55ID0gdm9pZCAwKSwKICAgICAgKHQuaW1hZ2VXcmFwRWwuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gIjMwMG1zIiksCiAgICAgICh0LmltYWdlV3JhcEVsLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGUzZCgwLDAsMCkiKSwKICAgICAgKHQuaW1hZ2VFbC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMzAwbXMiKSwKICAgICAgKHQuaW1hZ2VFbC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKDEpIiksCiAgICAgIHQuc2xpZGVFbC5jbGFzc0xpc3QucmVtb3ZlKGAke2suem9vbWVkU2xpZGVDbGFzc31gKSwKICAgICAgKHQuc2xpZGVFbCA9IHZvaWQgMCksCiAgICAgICh0Lm9yaWdpblggPSAwKSwKICAgICAgKHQub3JpZ2luWSA9IDApKTsKICB9CiAgZnVuY3Rpb24gdigkKSB7CiAgICBjb25zdCBrID0gZS56b29tOwogICAgay5zY2FsZSAmJiBrLnNjYWxlICE9PSAxID8gWSgpIDogTCgkKTsKICB9CiAgZnVuY3Rpb24geSgpIHsKICAgIGNvbnN0ICQgPSBlLnBhcmFtcy5wYXNzaXZlTGlzdGVuZXJzID8geyBwYXNzaXZlOiAhMCwgY2FwdHVyZTogITEgfSA6ICExLAogICAgICBrID0gZS5wYXJhbXMucGFzc2l2ZUxpc3RlbmVycyA/IHsgcGFzc2l2ZTogITEsIGNhcHR1cmU6ICEwIH0gOiAhMDsKICAgIHJldHVybiB7IHBhc3NpdmVMaXN0ZW5lcjogJCwgYWN0aXZlTGlzdGVuZXJXaXRoQ2FwdHVyZTogayB9OwogIH0KICBmdW5jdGlvbiBIKCkgewogICAgY29uc3QgJCA9IGUuem9vbTsKICAgIGlmICgkLmVuYWJsZWQpIHJldHVybjsKICAgICQuZW5hYmxlZCA9ICEwOwogICAgY29uc3QgeyBwYXNzaXZlTGlzdGVuZXI6IGssIGFjdGl2ZUxpc3RlbmVyV2l0aENhcHR1cmU6IFggfSA9IHkoKTsKICAgIGUud3JhcHBlckVsLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgQywgayksCiAgICAgIGUud3JhcHBlckVsLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIiwgRCwgWCksCiAgICAgIFsicG9pbnRlcnVwIiwgInBvaW50ZXJjYW5jZWwiLCAicG9pbnRlcm91dCJdLmZvckVhY2goKE4pID0+IHsKICAgICAgICBlLndyYXBwZXJFbC5hZGRFdmVudExpc3RlbmVyKE4sIFAsIGspOwogICAgICB9KSwKICAgICAgZS53cmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCB6LCBYKTsKICB9CiAgZnVuY3Rpb24gQigpIHsKICAgIGNvbnN0ICQgPSBlLnpvb207CiAgICBpZiAoISQuZW5hYmxlZCkgcmV0dXJuOwogICAgJC5lbmFibGVkID0gITE7CiAgICBjb25zdCB7IHBhc3NpdmVMaXN0ZW5lcjogaywgYWN0aXZlTGlzdGVuZXJXaXRoQ2FwdHVyZTogWCB9ID0geSgpOwogICAgZS53cmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCBDLCBrKSwKICAgICAgZS53cmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCBELCBYKSwKICAgICAgWyJwb2ludGVydXAiLCAicG9pbnRlcmNhbmNlbCIsICJwb2ludGVyb3V0Il0uZm9yRWFjaCgoTikgPT4gewogICAgICAgIGUud3JhcHBlckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoTiwgUCwgayk7CiAgICAgIH0pLAogICAgICBlLndyYXBwZXJFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsIHosIFgpOwogIH0KICB1KCJpbml0IiwgKCkgPT4gewogICAgZS5wYXJhbXMuem9vbS5lbmFibGVkICYmIEgoKTsKICB9KSwKICAgIHUoImRlc3Ryb3kiLCAoKSA9PiB7CiAgICAgIEIoKTsKICAgIH0pLAogICAgdSgidG91Y2hTdGFydCIsICgkLCBrKSA9PiB7CiAgICAgIGUuem9vbS5lbmFibGVkICYmIEkoayk7CiAgICB9KSwKICAgIHUoInRvdWNoRW5kIiwgKCQsIGspID0+IHsKICAgICAgZS56b29tLmVuYWJsZWQgJiYgVCgpOwogICAgfSksCiAgICB1KCJkb3VibGVUYXAiLCAoJCwgaykgPT4gewogICAgICAhZS5hbmltYXRpbmcgJiYKICAgICAgICBlLnBhcmFtcy56b29tLmVuYWJsZWQgJiYKICAgICAgICBlLnpvb20uZW5hYmxlZCAmJgogICAgICAgIGUucGFyYW1zLnpvb20udG9nZ2xlICYmCiAgICAgICAgdihrKTsKICAgIH0pLAogICAgdSgidHJhbnNpdGlvbkVuZCIsICgpID0+IHsKICAgICAgZS56b29tLmVuYWJsZWQgJiYgZS5wYXJhbXMuem9vbS5lbmFibGVkICYmIFMoKTsKICAgIH0pLAogICAgdSgic2xpZGVDaGFuZ2UiLCAoKSA9PiB7CiAgICAgIGUuem9vbS5lbmFibGVkICYmIGUucGFyYW1zLnpvb20uZW5hYmxlZCAmJiBlLnBhcmFtcy5jc3NNb2RlICYmIFMoKTsKICAgIH0pLAogICAgT2JqZWN0LmFzc2lnbihlLnpvb20sIHsgZW5hYmxlOiBILCBkaXNhYmxlOiBCLCBpbjogTCwgb3V0OiBZLCB0b2dnbGU6IHYgfSk7Cn0KZnVuY3Rpb24gS2UoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZXh0ZW5kUGFyYW1zOiBoLCBvbjogdSB9ID0gTTsKICBoKHsgY29udHJvbGxlcjogeyBjb250cm9sOiB2b2lkIDAsIGludmVyc2U6ICExLCBieTogInNsaWRlIiB9IH0pLAogICAgKGUuY29udHJvbGxlciA9IHsgY29udHJvbDogdm9pZCAwIH0pOwogIGZ1bmN0aW9uIGcocCwgcykgewogICAgY29uc3QgdCA9IChmdW5jdGlvbiAoKSB7CiAgICAgIGxldCBuLCBsLCBjOwogICAgICByZXR1cm4gKHIsIGEpID0+IHsKICAgICAgICBmb3IgKGwgPSAtMSwgbiA9IHIubGVuZ3RoOyBuIC0gbCA+IDE7ICkKICAgICAgICAgIChjID0gKG4gKyBsKSA+PiAxKSwgcltjXSA8PSBhID8gKGwgPSBjKSA6IChuID0gYyk7CiAgICAgICAgcmV0dXJuIG47CiAgICAgIH07CiAgICB9KSgpOwogICAgKHRoaXMueCA9IHApLCAodGhpcy55ID0gcyksICh0aGlzLmxhc3RJbmRleCA9IHAubGVuZ3RoIC0gMSk7CiAgICBsZXQgaSwgZDsKICAgIHJldHVybiAoCiAgICAgICh0aGlzLmludGVycG9sYXRlID0gZnVuY3Rpb24gKG4pIHsKICAgICAgICByZXR1cm4gbgogICAgICAgICAgPyAoKGQgPSB0KHRoaXMueCwgbikpLAogICAgICAgICAgICAoaSA9IGQgLSAxKSwKICAgICAgICAgICAgKChuIC0gdGhpcy54W2ldKSAqICh0aGlzLnlbZF0gLSB0aGlzLnlbaV0pKSAvCiAgICAgICAgICAgICAgKHRoaXMueFtkXSAtIHRoaXMueFtpXSkgKwogICAgICAgICAgICAgIHRoaXMueVtpXSkKICAgICAgICAgIDogMDsKICAgICAgfSksCiAgICAgIHRoaXMKICAgICk7CiAgfQogIGZ1bmN0aW9uIHcocCkgewogICAgZS5jb250cm9sbGVyLnNwbGluZSA9IGUucGFyYW1zLmxvb3AKICAgICAgPyBuZXcgZyhlLnNsaWRlc0dyaWQsIHAuc2xpZGVzR3JpZCkKICAgICAgOiBuZXcgZyhlLnNuYXBHcmlkLCBwLnNuYXBHcmlkKTsKICB9CiAgZnVuY3Rpb24gYihwLCBzKSB7CiAgICBjb25zdCB0ID0gZS5jb250cm9sbGVyLmNvbnRyb2w7CiAgICBsZXQgaSwgZDsKICAgIGNvbnN0IG8gPSBlLmNvbnN0cnVjdG9yOwogICAgZnVuY3Rpb24gbihsKSB7CiAgICAgIGlmIChsLmRlc3Ryb3llZCkgcmV0dXJuOwogICAgICBjb25zdCBjID0gZS5ydGxUcmFuc2xhdGUgPyAtZS50cmFuc2xhdGUgOiBlLnRyYW5zbGF0ZTsKICAgICAgZS5wYXJhbXMuY29udHJvbGxlci5ieSA9PT0gInNsaWRlIiAmJgogICAgICAgICh3KGwpLCAoZCA9IC1lLmNvbnRyb2xsZXIuc3BsaW5lLmludGVycG9sYXRlKC1jKSkpLAogICAgICAgICghZCB8fCBlLnBhcmFtcy5jb250cm9sbGVyLmJ5ID09PSAiY29udGFpbmVyIikgJiYKICAgICAgICAgICgoaSA9CiAgICAgICAgICAgIChsLm1heFRyYW5zbGF0ZSgpIC0gbC5taW5UcmFuc2xhdGUoKSkgLwogICAgICAgICAgICAoZS5tYXhUcmFuc2xhdGUoKSAtIGUubWluVHJhbnNsYXRlKCkpKSwKICAgICAgICAgIChOdW1iZXIuaXNOYU4oaSkgfHwgIU51bWJlci5pc0Zpbml0ZShpKSkgJiYgKGkgPSAxKSwKICAgICAgICAgIChkID0gKGMgLSBlLm1pblRyYW5zbGF0ZSgpKSAqIGkgKyBsLm1pblRyYW5zbGF0ZSgpKSksCiAgICAgICAgZS5wYXJhbXMuY29udHJvbGxlci5pbnZlcnNlICYmIChkID0gbC5tYXhUcmFuc2xhdGUoKSAtIGQpLAogICAgICAgIGwudXBkYXRlUHJvZ3Jlc3MoZCksCiAgICAgICAgbC5zZXRUcmFuc2xhdGUoZCwgZSksCiAgICAgICAgbC51cGRhdGVBY3RpdmVJbmRleCgpLAogICAgICAgIGwudXBkYXRlU2xpZGVzQ2xhc3NlcygpOwogICAgfQogICAgaWYgKEFycmF5LmlzQXJyYXkodCkpCiAgICAgIGZvciAobGV0IGwgPSAwOyBsIDwgdC5sZW5ndGg7IGwgKz0gMSkKICAgICAgICB0W2xdICE9PSBzICYmIHRbbF0gaW5zdGFuY2VvZiBvICYmIG4odFtsXSk7CiAgICBlbHNlIHQgaW5zdGFuY2VvZiBvICYmIHMgIT09IHQgJiYgbih0KTsKICB9CiAgZnVuY3Rpb24gRShwLCBzKSB7CiAgICBjb25zdCB0ID0gZS5jb25zdHJ1Y3RvciwKICAgICAgaSA9IGUuY29udHJvbGxlci5jb250cm9sOwogICAgbGV0IGQ7CiAgICBmdW5jdGlvbiBvKG4pIHsKICAgICAgbi5kZXN0cm95ZWQgfHwKICAgICAgICAobi5zZXRUcmFuc2l0aW9uKHAsIGUpLAogICAgICAgIHAgIT09IDAgJiYKICAgICAgICAgIChuLnRyYW5zaXRpb25TdGFydCgpLAogICAgICAgICAgbi5wYXJhbXMuYXV0b0hlaWdodCAmJgogICAgICAgICAgICB1ZSgoKSA9PiB7CiAgICAgICAgICAgICAgbi51cGRhdGVBdXRvSGVpZ2h0KCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgbGUobi53cmFwcGVyRWwsICgpID0+IHsKICAgICAgICAgICAgaSAmJiBuLnRyYW5zaXRpb25FbmQoKTsKICAgICAgICAgIH0pKSk7CiAgICB9CiAgICBpZiAoQXJyYXkuaXNBcnJheShpKSkKICAgICAgZm9yIChkID0gMDsgZCA8IGkubGVuZ3RoOyBkICs9IDEpCiAgICAgICAgaVtkXSAhPT0gcyAmJiBpW2RdIGluc3RhbmNlb2YgdCAmJiBvKGlbZF0pOwogICAgZWxzZSBpIGluc3RhbmNlb2YgdCAmJiBzICE9PSBpICYmIG8oaSk7CiAgfQogIGZ1bmN0aW9uIGYoKSB7CiAgICBlLmNvbnRyb2xsZXIuY29udHJvbCAmJgogICAgICBlLmNvbnRyb2xsZXIuc3BsaW5lICYmCiAgICAgICgoZS5jb250cm9sbGVyLnNwbGluZSA9IHZvaWQgMCksIGRlbGV0ZSBlLmNvbnRyb2xsZXIuc3BsaW5lKTsKICB9CiAgdSgiYmVmb3JlSW5pdCIsICgpID0+IHsKICAgIGlmICgKICAgICAgdHlwZW9mIHdpbmRvdyA8ICJ1IiAmJgogICAgICAodHlwZW9mIGUucGFyYW1zLmNvbnRyb2xsZXIuY29udHJvbCA9PSAic3RyaW5nIiB8fAogICAgICAgIGUucGFyYW1zLmNvbnRyb2xsZXIuY29udHJvbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KQogICAgKSB7CiAgICAgICh0eXBlb2YgZS5wYXJhbXMuY29udHJvbGxlci5jb250cm9sID09ICJzdHJpbmciCiAgICAgICAgPyBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlLnBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2wpXQogICAgICAgIDogW2UucGFyYW1zLmNvbnRyb2xsZXIuY29udHJvbF0KICAgICAgKS5mb3JFYWNoKChzKSA9PiB7CiAgICAgICAgaWYgKAogICAgICAgICAgKGUuY29udHJvbGxlci5jb250cm9sIHx8IChlLmNvbnRyb2xsZXIuY29udHJvbCA9IFtdKSwgcyAmJiBzLnN3aXBlcikKICAgICAgICApCiAgICAgICAgICBlLmNvbnRyb2xsZXIuY29udHJvbC5wdXNoKHMuc3dpcGVyKTsKICAgICAgICBlbHNlIGlmIChzKSB7CiAgICAgICAgICBjb25zdCB0ID0gYCR7ZS5wYXJhbXMuZXZlbnRzUHJlZml4fWluaXRgLAogICAgICAgICAgICBpID0gKGQpID0+IHsKICAgICAgICAgICAgICBlLmNvbnRyb2xsZXIuY29udHJvbC5wdXNoKGQuZGV0YWlsWzBdKSwKICAgICAgICAgICAgICAgIGUudXBkYXRlKCksCiAgICAgICAgICAgICAgICBzLnJlbW92ZUV2ZW50TGlzdGVuZXIodCwgaSk7CiAgICAgICAgICAgIH07CiAgICAgICAgICBzLmFkZEV2ZW50TGlzdGVuZXIodCwgaSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgZS5jb250cm9sbGVyLmNvbnRyb2wgPSBlLnBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2w7CiAgfSksCiAgICB1KCJ1cGRhdGUiLCAoKSA9PiB7CiAgICAgIGYoKTsKICAgIH0pLAogICAgdSgicmVzaXplIiwgKCkgPT4gewogICAgICBmKCk7CiAgICB9KSwKICAgIHUoIm9ic2VydmVyVXBkYXRlIiwgKCkgPT4gewogICAgICBmKCk7CiAgICB9KSwKICAgIHUoInNldFRyYW5zbGF0ZSIsIChwLCBzLCB0KSA9PiB7CiAgICAgICFlLmNvbnRyb2xsZXIuY29udHJvbCB8fAogICAgICAgIGUuY29udHJvbGxlci5jb250cm9sLmRlc3Ryb3llZCB8fAogICAgICAgIGUuY29udHJvbGxlci5zZXRUcmFuc2xhdGUocywgdCk7CiAgICB9KSwKICAgIHUoInNldFRyYW5zaXRpb24iLCAocCwgcywgdCkgPT4gewogICAgICAhZS5jb250cm9sbGVyLmNvbnRyb2wgfHwKICAgICAgICBlLmNvbnRyb2xsZXIuY29udHJvbC5kZXN0cm95ZWQgfHwKICAgICAgICBlLmNvbnRyb2xsZXIuc2V0VHJhbnNpdGlvbihzLCB0KTsKICAgIH0pLAogICAgT2JqZWN0LmFzc2lnbihlLmNvbnRyb2xsZXIsIHsgc2V0VHJhbnNsYXRlOiBiLCBzZXRUcmFuc2l0aW9uOiBFIH0pOwp9CmZ1bmN0aW9uIFFlKE0pIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaCwgb246IHUgfSA9IE07CiAgaCh7CiAgICBhMTF5OiB7CiAgICAgIGVuYWJsZWQ6ICEwLAogICAgICBub3RpZmljYXRpb25DbGFzczogInN3aXBlci1ub3RpZmljYXRpb24iLAogICAgICBwcmV2U2xpZGVNZXNzYWdlOiAiUHJldmlvdXMgc2xpZGUiLAogICAgICBuZXh0U2xpZGVNZXNzYWdlOiAiTmV4dCBzbGlkZSIsCiAgICAgIGZpcnN0U2xpZGVNZXNzYWdlOiAiVGhpcyBpcyB0aGUgZmlyc3Qgc2xpZGUiLAogICAgICBsYXN0U2xpZGVNZXNzYWdlOiAiVGhpcyBpcyB0aGUgbGFzdCBzbGlkZSIsCiAgICAgIHBhZ2luYXRpb25CdWxsZXRNZXNzYWdlOiAiR28gdG8gc2xpZGUge3tpbmRleH19IiwKICAgICAgc2xpZGVMYWJlbE1lc3NhZ2U6ICJ7e2luZGV4fX0gLyB7e3NsaWRlc0xlbmd0aH19IiwKICAgICAgY29udGFpbmVyTWVzc2FnZTogbnVsbCwKICAgICAgY29udGFpbmVyUm9sZURlc2NyaXB0aW9uTWVzc2FnZTogbnVsbCwKICAgICAgY29udGFpbmVyUm9sZTogbnVsbCwKICAgICAgaXRlbVJvbGVEZXNjcmlwdGlvbk1lc3NhZ2U6IG51bGwsCiAgICAgIHNsaWRlUm9sZTogImdyb3VwIiwKICAgICAgaWQ6IG51bGwsCiAgICAgIHNjcm9sbE9uRm9jdXM6ICEwLAogICAgfSwKICB9KSwKICAgIChlLmExMXkgPSB7IGNsaWNrZWQ6ICExIH0pOwogIGxldCBnID0gbnVsbCwKICAgIHcsCiAgICBiLAogICAgRSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogIGZ1bmN0aW9uIGYodikgewogICAgY29uc3QgeSA9IGc7CiAgICB5Lmxlbmd0aCAhPT0gMCAmJiAoKHkuaW5uZXJIVE1MID0gIiIpLCAoeS5pbm5lckhUTUwgPSB2KSk7CiAgfQogIGZ1bmN0aW9uIHAodikgewogICAgY29uc3QgeSA9ICgpID0+IE1hdGgucm91bmQoMTYgKiBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNik7CiAgICByZXR1cm4gIngiLnJlcGVhdCh2KS5yZXBsYWNlKC94L2csIHkpOwogIH0KICBmdW5jdGlvbiBzKHYpIHsKICAgICh2ID0gcSh2KSksCiAgICAgIHYuZm9yRWFjaCgoeSkgPT4gewogICAgICAgIHkuc2V0QXR0cmlidXRlKCJ0YWJJbmRleCIsICIwIik7CiAgICAgIH0pOwogIH0KICBmdW5jdGlvbiB0KHYpIHsKICAgICh2ID0gcSh2KSksCiAgICAgIHYuZm9yRWFjaCgoeSkgPT4gewogICAgICAgIHkuc2V0QXR0cmlidXRlKCJ0YWJJbmRleCIsICItMSIpOwogICAgICB9KTsKICB9CiAgZnVuY3Rpb24gaSh2LCB5KSB7CiAgICAodiA9IHEodikpLAogICAgICB2LmZvckVhY2goKEgpID0+IHsKICAgICAgICBILnNldEF0dHJpYnV0ZSgicm9sZSIsIHkpOwogICAgICB9KTsKICB9CiAgZnVuY3Rpb24gZCh2LCB5KSB7CiAgICAodiA9IHEodikpLAogICAgICB2LmZvckVhY2goKEgpID0+IHsKICAgICAgICBILnNldEF0dHJpYnV0ZSgiYXJpYS1yb2xlZGVzY3JpcHRpb24iLCB5KTsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIG8odiwgeSkgewogICAgKHYgPSBxKHYpKSwKICAgICAgdi5mb3JFYWNoKChIKSA9PiB7CiAgICAgICAgSC5zZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiLCB5KTsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIG4odiwgeSkgewogICAgKHYgPSBxKHYpKSwKICAgICAgdi5mb3JFYWNoKChIKSA9PiB7CiAgICAgICAgSC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCB5KTsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIGwodiwgeSkgewogICAgKHYgPSBxKHYpKSwKICAgICAgdi5mb3JFYWNoKChIKSA9PiB7CiAgICAgICAgSC5zZXRBdHRyaWJ1dGUoImlkIiwgeSk7CiAgICAgIH0pOwogIH0KICBmdW5jdGlvbiBjKHYsIHkpIHsKICAgICh2ID0gcSh2KSksCiAgICAgIHYuZm9yRWFjaCgoSCkgPT4gewogICAgICAgIEguc2V0QXR0cmlidXRlKCJhcmlhLWxpdmUiLCB5KTsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIHIodikgewogICAgKHYgPSBxKHYpKSwKICAgICAgdi5mb3JFYWNoKCh5KSA9PiB7CiAgICAgICAgeS5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLCAhMCk7CiAgICAgIH0pOwogIH0KICBmdW5jdGlvbiBhKHYpIHsKICAgICh2ID0gcSh2KSksCiAgICAgIHYuZm9yRWFjaCgoeSkgPT4gewogICAgICAgIHkuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIiwgITEpOwogICAgICB9KTsKICB9CiAgZnVuY3Rpb24gbSh2KSB7CiAgICBpZiAodi5rZXlDb2RlICE9PSAxMyAmJiB2LmtleUNvZGUgIT09IDMyKSByZXR1cm47CiAgICBjb25zdCB5ID0gZS5wYXJhbXMuYTExeSwKICAgICAgSCA9IHYudGFyZ2V0OwogICAgaWYgKAogICAgICAhKAogICAgICAgIGUucGFnaW5hdGlvbiAmJgogICAgICAgIGUucGFnaW5hdGlvbi5lbCAmJgogICAgICAgIChIID09PSBlLnBhZ2luYXRpb24uZWwgfHwgZS5wYWdpbmF0aW9uLmVsLmNvbnRhaW5zKHYudGFyZ2V0KSkgJiYKICAgICAgICAhdi50YXJnZXQubWF0Y2hlcyhfKGUucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0Q2xhc3MpKQogICAgICApCiAgICApIHsKICAgICAgaWYgKGUubmF2aWdhdGlvbiAmJiBlLm5hdmlnYXRpb24ucHJldkVsICYmIGUubmF2aWdhdGlvbi5uZXh0RWwpIHsKICAgICAgICBjb25zdCBCID0gcShlLm5hdmlnYXRpb24ucHJldkVsKTsKICAgICAgICBxKGUubmF2aWdhdGlvbi5uZXh0RWwpLmluY2x1ZGVzKEgpICYmCiAgICAgICAgICAoKGUuaXNFbmQgJiYgIWUucGFyYW1zLmxvb3ApIHx8IGUuc2xpZGVOZXh0KCksCiAgICAgICAgICBlLmlzRW5kID8gZih5Lmxhc3RTbGlkZU1lc3NhZ2UpIDogZih5Lm5leHRTbGlkZU1lc3NhZ2UpKSwKICAgICAgICAgIEIuaW5jbHVkZXMoSCkgJiYKICAgICAgICAgICAgKChlLmlzQmVnaW5uaW5nICYmICFlLnBhcmFtcy5sb29wKSB8fCBlLnNsaWRlUHJldigpLAogICAgICAgICAgICBlLmlzQmVnaW5uaW5nID8gZih5LmZpcnN0U2xpZGVNZXNzYWdlKSA6IGYoeS5wcmV2U2xpZGVNZXNzYWdlKSk7CiAgICAgIH0KICAgICAgZS5wYWdpbmF0aW9uICYmCiAgICAgICAgSC5tYXRjaGVzKF8oZS5wYXJhbXMucGFnaW5hdGlvbi5idWxsZXRDbGFzcykpICYmCiAgICAgICAgSC5jbGljaygpOwogICAgfQogIH0KICBmdW5jdGlvbiBDKCkgewogICAgaWYgKGUucGFyYW1zLmxvb3AgfHwgZS5wYXJhbXMucmV3aW5kIHx8ICFlLm5hdmlnYXRpb24pIHJldHVybjsKICAgIGNvbnN0IHsgbmV4dEVsOiB2LCBwcmV2RWw6IHkgfSA9IGUubmF2aWdhdGlvbjsKICAgIHkgJiYgKGUuaXNCZWdpbm5pbmcgPyAocih5KSwgdCh5KSkgOiAoYSh5KSwgcyh5KSkpLAogICAgICB2ICYmIChlLmlzRW5kID8gKHIodiksIHQodikpIDogKGEodiksIHModikpKTsKICB9CiAgZnVuY3Rpb24gRCgpIHsKICAgIHJldHVybiBlLnBhZ2luYXRpb24gJiYgZS5wYWdpbmF0aW9uLmJ1bGxldHMgJiYgZS5wYWdpbmF0aW9uLmJ1bGxldHMubGVuZ3RoOwogIH0KICBmdW5jdGlvbiBQKCkgewogICAgcmV0dXJuIEQoKSAmJiBlLnBhcmFtcy5wYWdpbmF0aW9uLmNsaWNrYWJsZTsKICB9CiAgZnVuY3Rpb24gQSgpIHsKICAgIGNvbnN0IHYgPSBlLnBhcmFtcy5hMTF5OwogICAgRCgpICYmCiAgICAgIGUucGFnaW5hdGlvbi5idWxsZXRzLmZvckVhY2goKHkpID0+IHsKICAgICAgICBlLnBhcmFtcy5wYWdpbmF0aW9uLmNsaWNrYWJsZSAmJgogICAgICAgICAgKHMoeSksCiAgICAgICAgICBlLnBhcmFtcy5wYWdpbmF0aW9uLnJlbmRlckJ1bGxldCB8fAogICAgICAgICAgICAoaSh5LCAiYnV0dG9uIiksCiAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgeSwKICAgICAgICAgICAgICB2LnBhZ2luYXRpb25CdWxsZXRNZXNzYWdlLnJlcGxhY2UoL1x7XHtpbmRleFx9XH0vLCB5ZSh5KSArIDEpCiAgICAgICAgICAgICkpKSwKICAgICAgICAgIHkubWF0Y2hlcyhfKGUucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0QWN0aXZlQ2xhc3MpKQogICAgICAgICAgICA/IHkuc2V0QXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiLCAidHJ1ZSIpCiAgICAgICAgICAgIDogeS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIpOwogICAgICB9KTsKICB9CiAgY29uc3QgeCA9ICh2LCB5LCBIKSA9PiB7CiAgICAgIHModiksCiAgICAgICAgdi50YWdOYW1lICE9PSAiQlVUVE9OIiAmJgogICAgICAgICAgKGkodiwgImJ1dHRvbiIpLCB2LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBtKSksCiAgICAgICAgbih2LCBIKSwKICAgICAgICBvKHYsIHkpOwogICAgfSwKICAgIE8gPSAodikgPT4gewogICAgICBiICYmIGIgIT09IHYudGFyZ2V0ICYmICFiLmNvbnRhaW5zKHYudGFyZ2V0KSAmJiAodyA9ICEwKSwKICAgICAgICAoZS5hMTF5LmNsaWNrZWQgPSAhMCk7CiAgICB9LAogICAgSSA9ICgpID0+IHsKICAgICAgKHcgPSAhMSksCiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgICAgIGUuZGVzdHJveWVkIHx8IChlLmExMXkuY2xpY2tlZCA9ICExKTsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfSwKICAgIHogPSAodikgPT4gewogICAgICBFID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICB9LAogICAgVCA9ICh2KSA9PiB7CiAgICAgIGlmICgKICAgICAgICBlLmExMXkuY2xpY2tlZCB8fAogICAgICAgICFlLnBhcmFtcy5hMTF5LnNjcm9sbE9uRm9jdXMgfHwKICAgICAgICBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIEUgPCAxMDAKICAgICAgKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgeSA9IHYudGFyZ2V0LmNsb3Nlc3QoYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9LCBzd2lwZXItc2xpZGVgKTsKICAgICAgaWYgKCF5IHx8ICFlLnNsaWRlcy5pbmNsdWRlcyh5KSkgcmV0dXJuOwogICAgICBiID0geTsKICAgICAgY29uc3QgSCA9IGUuc2xpZGVzLmluZGV4T2YoeSkgPT09IGUuYWN0aXZlSW5kZXgsCiAgICAgICAgQiA9CiAgICAgICAgICBlLnBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzICYmCiAgICAgICAgICBlLnZpc2libGVTbGlkZXMgJiYKICAgICAgICAgIGUudmlzaWJsZVNsaWRlcy5pbmNsdWRlcyh5KTsKICAgICAgSCB8fAogICAgICAgIEIgfHwKICAgICAgICAodi5zb3VyY2VDYXBhYmlsaXRpZXMgJiYgdi5zb3VyY2VDYXBhYmlsaXRpZXMuZmlyZXNUb3VjaEV2ZW50cykgfHwKICAgICAgICAoZS5pc0hvcml6b250YWwoKSA/IChlLmVsLnNjcm9sbExlZnQgPSAwKSA6IChlLmVsLnNjcm9sbFRvcCA9IDApLAogICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgICB3IHx8CiAgICAgICAgICAgIChlLnBhcmFtcy5sb29wCiAgICAgICAgICAgICAgPyBlLnNsaWRlVG9Mb29wKAogICAgICAgICAgICAgICAgICBwYXJzZUludCh5LmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSksCiAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICA6IGUuc2xpZGVUbyhlLnNsaWRlcy5pbmRleE9mKHkpLCAwKSwKICAgICAgICAgICAgKHcgPSAhMSkpOwogICAgICAgIH0pKTsKICAgIH0sCiAgICBTID0gKCkgPT4gewogICAgICBjb25zdCB2ID0gZS5wYXJhbXMuYTExeTsKICAgICAgdi5pdGVtUm9sZURlc2NyaXB0aW9uTWVzc2FnZSAmJiBkKGUuc2xpZGVzLCB2Lml0ZW1Sb2xlRGVzY3JpcHRpb25NZXNzYWdlKSwKICAgICAgICB2LnNsaWRlUm9sZSAmJiBpKGUuc2xpZGVzLCB2LnNsaWRlUm9sZSk7CiAgICAgIGNvbnN0IHkgPSBlLnNsaWRlcy5sZW5ndGg7CiAgICAgIHYuc2xpZGVMYWJlbE1lc3NhZ2UgJiYKICAgICAgICBlLnNsaWRlcy5mb3JFYWNoKChILCBCKSA9PiB7CiAgICAgICAgICBjb25zdCAkID0gZS5wYXJhbXMubG9vcAogICAgICAgICAgICAgID8gcGFyc2VJbnQoSC5nZXRBdHRyaWJ1dGUoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksIDEwKQogICAgICAgICAgICAgIDogQiwKICAgICAgICAgICAgayA9IHYuc2xpZGVMYWJlbE1lc3NhZ2UKICAgICAgICAgICAgICAucmVwbGFjZSgvXHtce2luZGV4XH1cfS8sICQgKyAxKQogICAgICAgICAgICAgIC5yZXBsYWNlKC9ce1x7c2xpZGVzTGVuZ3RoXH1cfS8sIHkpOwogICAgICAgICAgbihILCBrKTsKICAgICAgICB9KTsKICAgIH0sCiAgICBMID0gKCkgPT4gewogICAgICBjb25zdCB2ID0gZS5wYXJhbXMuYTExeTsKICAgICAgZS5lbC5hcHBlbmQoZyk7CiAgICAgIGNvbnN0IHkgPSBlLmVsOwogICAgICB2LmNvbnRhaW5lclJvbGVEZXNjcmlwdGlvbk1lc3NhZ2UgJiYKICAgICAgICBkKHksIHYuY29udGFpbmVyUm9sZURlc2NyaXB0aW9uTWVzc2FnZSksCiAgICAgICAgdi5jb250YWluZXJNZXNzYWdlICYmIG4oeSwgdi5jb250YWluZXJNZXNzYWdlKSwKICAgICAgICB2LmNvbnRhaW5lclJvbGUgJiYgaSh5LCB2LmNvbnRhaW5lclJvbGUpOwogICAgICBjb25zdCBIID0gZS53cmFwcGVyRWwsCiAgICAgICAgQiA9IHYuaWQgfHwgSC5nZXRBdHRyaWJ1dGUoImlkIikgfHwgYHN3aXBlci13cmFwcGVyLSR7cCgxNil9YCwKICAgICAgICAkID0gZS5wYXJhbXMuYXV0b3BsYXkgJiYgZS5wYXJhbXMuYXV0b3BsYXkuZW5hYmxlZCA/ICJvZmYiIDogInBvbGl0ZSI7CiAgICAgIGwoSCwgQiksIGMoSCwgJCksIFMoKTsKICAgICAgbGV0IHsgbmV4dEVsOiBrLCBwcmV2RWw6IFggfSA9IGUubmF2aWdhdGlvbiA/IGUubmF2aWdhdGlvbiA6IHt9OwogICAgICAoayA9IHEoaykpLAogICAgICAgIChYID0gcShYKSksCiAgICAgICAgayAmJiBrLmZvckVhY2goKFIpID0+IHgoUiwgQiwgdi5uZXh0U2xpZGVNZXNzYWdlKSksCiAgICAgICAgWCAmJiBYLmZvckVhY2goKFIpID0+IHgoUiwgQiwgdi5wcmV2U2xpZGVNZXNzYWdlKSksCiAgICAgICAgUCgpICYmCiAgICAgICAgICBxKGUucGFnaW5hdGlvbi5lbCkuZm9yRWFjaCgoVykgPT4gewogICAgICAgICAgICBXLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBtKTsKICAgICAgICAgIH0pLAogICAgICAgIGooKS5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgeiksCiAgICAgICAgZS5lbC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIFQsICEwKSwKICAgICAgICBlLmVsLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgVCwgITApLAogICAgICAgIGUuZWwuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCBPLCAhMCksCiAgICAgICAgZS5lbC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLCBJLCAhMCk7CiAgICB9OwogIGZ1bmN0aW9uIFkoKSB7CiAgICBnICYmIGcucmVtb3ZlKCk7CiAgICBsZXQgeyBuZXh0RWw6IHYsIHByZXZFbDogeSB9ID0gZS5uYXZpZ2F0aW9uID8gZS5uYXZpZ2F0aW9uIDoge307CiAgICAodiA9IHEodikpLAogICAgICAoeSA9IHEoeSkpLAogICAgICB2ICYmIHYuZm9yRWFjaCgoQikgPT4gQi5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgbSkpLAogICAgICB5ICYmIHkuZm9yRWFjaCgoQikgPT4gQi5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgbSkpLAogICAgICBQKCkgJiYKICAgICAgICBxKGUucGFnaW5hdGlvbi5lbCkuZm9yRWFjaCgoJCkgPT4gewogICAgICAgICAgJC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgbSk7CiAgICAgICAgfSksCiAgICAgIGooKS5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgeiksCiAgICAgIGUuZWwgJiYKICAgICAgICB0eXBlb2YgZS5lbCAhPSAic3RyaW5nIiAmJgogICAgICAgIChlLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIiwgVCwgITApLAogICAgICAgIGUuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCBPLCAhMCksCiAgICAgICAgZS5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLCBJLCAhMCkpOwogIH0KICB1KCJiZWZvcmVJbml0IiwgKCkgPT4gewogICAgKGcgPSBHKCJzcGFuIiwgZS5wYXJhbXMuYTExeS5ub3RpZmljYXRpb25DbGFzcykpLAogICAgICBnLnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwgImFzc2VydGl2ZSIpLAogICAgICBnLnNldEF0dHJpYnV0ZSgiYXJpYS1hdG9taWMiLCAidHJ1ZSIpOwogIH0pLAogICAgdSgiYWZ0ZXJJbml0IiwgKCkgPT4gewogICAgICBlLnBhcmFtcy5hMTF5LmVuYWJsZWQgJiYgTCgpOwogICAgfSksCiAgICB1KCJzbGlkZXNMZW5ndGhDaGFuZ2Ugc25hcEdyaWRMZW5ndGhDaGFuZ2Ugc2xpZGVzR3JpZExlbmd0aENoYW5nZSIsICgpID0+IHsKICAgICAgZS5wYXJhbXMuYTExeS5lbmFibGVkICYmIFMoKTsKICAgIH0pLAogICAgdSgiZnJvbUVkZ2UgdG9FZGdlIGFmdGVySW5pdCBsb2NrIHVubG9jayIsICgpID0+IHsKICAgICAgZS5wYXJhbXMuYTExeS5lbmFibGVkICYmIEMoKTsKICAgIH0pLAogICAgdSgicGFnaW5hdGlvblVwZGF0ZSIsICgpID0+IHsKICAgICAgZS5wYXJhbXMuYTExeS5lbmFibGVkICYmIEEoKTsKICAgIH0pLAogICAgdSgiZGVzdHJveSIsICgpID0+IHsKICAgICAgZS5wYXJhbXMuYTExeS5lbmFibGVkICYmIFkoKTsKICAgIH0pOwp9CmZ1bmN0aW9uIEplKE0pIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaCwgb246IHUgfSA9IE07CiAgaCh7CiAgICBoaXN0b3J5OiB7CiAgICAgIGVuYWJsZWQ6ICExLAogICAgICByb290OiAiIiwKICAgICAgcmVwbGFjZVN0YXRlOiAhMSwKICAgICAga2V5OiAic2xpZGVzIiwKICAgICAga2VlcFF1ZXJ5OiAhMSwKICAgIH0sCiAgfSk7CiAgbGV0IGcgPSAhMSwKICAgIHcgPSB7fTsKICBjb25zdCBiID0gKGQpID0+CiAgICAgIGQKICAgICAgICAudG9TdHJpbmcoKQogICAgICAgIC5yZXBsYWNlKC9ccysvZywgIi0iKQogICAgICAgIC5yZXBsYWNlKC9bXlx3LV0rL2csICIiKQogICAgICAgIC5yZXBsYWNlKC8tLSsvZywgIi0iKQogICAgICAgIC5yZXBsYWNlKC9eLSsvLCAiIikKICAgICAgICAucmVwbGFjZSgvLSskLywgIiIpLAogICAgRSA9IChkKSA9PiB7CiAgICAgIGNvbnN0IG8gPSBaKCk7CiAgICAgIGxldCBuOwogICAgICBkID8gKG4gPSBuZXcgVVJMKGQpKSA6IChuID0gby5sb2NhdGlvbik7CiAgICAgIGNvbnN0IGwgPSBuLnBhdGhuYW1lCiAgICAgICAgICAuc2xpY2UoMSkKICAgICAgICAgIC5zcGxpdCgiLyIpCiAgICAgICAgICAuZmlsdGVyKChtKSA9PiBtICE9PSAiIiksCiAgICAgICAgYyA9IGwubGVuZ3RoLAogICAgICAgIHIgPSBsW2MgLSAyXSwKICAgICAgICBhID0gbFtjIC0gMV07CiAgICAgIHJldHVybiB7IGtleTogciwgdmFsdWU6IGEgfTsKICAgIH0sCiAgICBmID0gKGQsIG8pID0+IHsKICAgICAgY29uc3QgbiA9IFooKTsKICAgICAgaWYgKCFnIHx8ICFlLnBhcmFtcy5oaXN0b3J5LmVuYWJsZWQpIHJldHVybjsKICAgICAgbGV0IGw7CiAgICAgIGUucGFyYW1zLnVybCA/IChsID0gbmV3IFVSTChlLnBhcmFtcy51cmwpKSA6IChsID0gbi5sb2NhdGlvbik7CiAgICAgIGNvbnN0IGMgPQogICAgICAgIGUudmlydHVhbCAmJiBlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQKICAgICAgICAgID8gZS5zbGlkZXNFbC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7b30iXWApCiAgICAgICAgICA6IGUuc2xpZGVzW29dOwogICAgICBsZXQgciA9IGIoYy5nZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeSIpKTsKICAgICAgaWYgKGUucGFyYW1zLmhpc3Rvcnkucm9vdC5sZW5ndGggPiAwKSB7CiAgICAgICAgbGV0IG0gPSBlLnBhcmFtcy5oaXN0b3J5LnJvb3Q7CiAgICAgICAgbVttLmxlbmd0aCAtIDFdID09PSAiLyIgJiYgKG0gPSBtLnNsaWNlKDAsIG0ubGVuZ3RoIC0gMSkpLAogICAgICAgICAgKHIgPSBgJHttfS8ke2QgPyBgJHtkfS9gIDogIiJ9JHtyfWApOwogICAgICB9IGVsc2UgbC5wYXRobmFtZS5pbmNsdWRlcyhkKSB8fCAociA9IGAke2QgPyBgJHtkfS9gIDogIiJ9JHtyfWApOwogICAgICBlLnBhcmFtcy5oaXN0b3J5LmtlZXBRdWVyeSAmJiAociArPSBsLnNlYXJjaCk7CiAgICAgIGNvbnN0IGEgPSBuLmhpc3Rvcnkuc3RhdGU7CiAgICAgIGNvbnNvbGUubG9nKCJyIiwgcikgCiAgICAgIChhICYmIGEudmFsdWUgPT09IHIpIHx8CiAgICAgICAgKGUucGFyYW1zLmhpc3RvcnkucmVwbGFjZVN0YXRlCiAgICAgICAgICA/IG4uaGlzdG9yeS5yZXBsYWNlU3RhdGUoeyB2YWx1ZTogciB9LCBudWxsLCByKQogICAgICAgICAgOiBuLmhpc3RvcnkucHVzaFN0YXRlKHsgdmFsdWU6IHIgfSwgbnVsbCwgcikpOwogICAgfSwKICAgIHAgPSAoZCwgbywgbikgPT4gewogICAgICBpZiAobykKICAgICAgICBmb3IgKGxldCBsID0gMCwgYyA9IGUuc2xpZGVzLmxlbmd0aDsgbCA8IGM7IGwgKz0gMSkgewogICAgICAgICAgY29uc3QgciA9IGUuc2xpZGVzW2xdOwogICAgICAgICAgaWYgKGIoci5nZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeSIpKSA9PT0gbykgewogICAgICAgICAgICBjb25zdCBtID0gZS5nZXRTbGlkZUluZGV4KHIpOwogICAgICAgICAgICBlLnNsaWRlVG8obSwgZCwgbik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBlbHNlIGUuc2xpZGVUbygwLCBkLCBuKTsKICAgIH0sCiAgICBzID0gKCkgPT4gewogICAgICAodyA9IEUoZS5wYXJhbXMudXJsKSksIHAoZS5wYXJhbXMuc3BlZWQsIHcudmFsdWUsICExKTsKICAgIH0sCiAgICB0ID0gKCkgPT4gewogICAgICBjb25zdCBkID0gWigpOwogICAgICBpZiAoZS5wYXJhbXMuaGlzdG9yeSkgewogICAgICAgIGlmICghZC5oaXN0b3J5IHx8ICFkLmhpc3RvcnkucHVzaFN0YXRlKSB7CiAgICAgICAgICAoZS5wYXJhbXMuaGlzdG9yeS5lbmFibGVkID0gITEpLAogICAgICAgICAgICAoZS5wYXJhbXMuaGFzaE5hdmlnYXRpb24uZW5hYmxlZCA9ICEwKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKCgoZyA9ICEwKSwgKHcgPSBFKGUucGFyYW1zLnVybCkpLCAhdy5rZXkgJiYgIXcudmFsdWUpKSB7CiAgICAgICAgICBlLnBhcmFtcy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSB8fCBkLmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwgcyk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHAoMCwgdy52YWx1ZSwgZS5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0KSwKICAgICAgICAgIGUucGFyYW1zLmhpc3RvcnkucmVwbGFjZVN0YXRlIHx8IGQuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLCBzKTsKICAgICAgfQogICAgfSwKICAgIGkgPSAoKSA9PiB7CiAgICAgIGNvbnN0IGQgPSBaKCk7CiAgICAgIGUucGFyYW1zLmhpc3RvcnkucmVwbGFjZVN0YXRlIHx8IGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLCBzKTsKICAgIH07CiAgdSgiaW5pdCIsICgpID0+IHsKICAgIGUucGFyYW1zLmhpc3RvcnkuZW5hYmxlZCAmJiB0KCk7CiAgfSksCiAgICB1KCJkZXN0cm95IiwgKCkgPT4gewogICAgICBlLnBhcmFtcy5oaXN0b3J5LmVuYWJsZWQgJiYgaSgpOwogICAgfSksCiAgICB1KCJ0cmFuc2l0aW9uRW5kIF9mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlIiwgKCkgPT4gewogICAgICBnICYmIGYoZS5wYXJhbXMuaGlzdG9yeS5rZXksIGUuYWN0aXZlSW5kZXgpOwogICAgfSksCiAgICB1KCJzbGlkZUNoYW5nZSIsICgpID0+IHsKICAgICAgZyAmJiBlLnBhcmFtcy5jc3NNb2RlICYmIGYoZS5wYXJhbXMuaGlzdG9yeS5rZXksIGUuYWN0aXZlSW5kZXgpOwogICAgfSk7Cn0KZnVuY3Rpb24gZXQoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZXh0ZW5kUGFyYW1zOiBoLCBlbWl0OiB1LCBvbjogZyB9ID0gTSwKICAgIHcgPSAhMTsKICBjb25zdCBiID0gaigpLAogICAgRSA9IFooKTsKICBoKHsKICAgIGhhc2hOYXZpZ2F0aW9uOiB7CiAgICAgIGVuYWJsZWQ6ICExLAogICAgICByZXBsYWNlU3RhdGU6ICExLAogICAgICB3YXRjaFN0YXRlOiAhMSwKICAgICAgZ2V0U2xpZGVJbmRleChpLCBkKSB7CiAgICAgICAgaWYgKGUudmlydHVhbCAmJiBlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpIHsKICAgICAgICAgIGNvbnN0IG8gPSBlLnNsaWRlcy5maWx0ZXIoCiAgICAgICAgICAgIChsKSA9PiBsLmdldEF0dHJpYnV0ZSgiZGF0YS1oYXNoIikgPT09IGQKICAgICAgICAgIClbMF07CiAgICAgICAgICByZXR1cm4gbwogICAgICAgICAgICA/IHBhcnNlSW50KG8uZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLCAxMCkKICAgICAgICAgICAgOiAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZS5nZXRTbGlkZUluZGV4KAogICAgICAgICAgSygKICAgICAgICAgICAgZS5zbGlkZXNFbCwKICAgICAgICAgICAgYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9W2RhdGEtaGFzaD0iJHtkfSJdLCBzd2lwZXItc2xpZGVbZGF0YS1oYXNoPSIke2R9Il1gCiAgICAgICAgICApWzBdCiAgICAgICAgKTsKICAgICAgfSwKICAgIH0sCiAgfSk7CiAgY29uc3QgZiA9ICgpID0+IHsKICAgICAgdSgiaGFzaENoYW5nZSIpOwogICAgICBjb25zdCBpID0gYi5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoIiMiLCAiIiksCiAgICAgICAgZCA9CiAgICAgICAgICBlLnZpcnR1YWwgJiYgZS5wYXJhbXMudmlydHVhbC5lbmFibGVkCiAgICAgICAgICAgID8gZS5zbGlkZXNFbC5xdWVyeVNlbGVjdG9yKAogICAgICAgICAgICAgICAgYFtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtlLmFjdGl2ZUluZGV4fSJdYAogICAgICAgICAgICAgICkKICAgICAgICAgICAgOiBlLnNsaWRlc1tlLmFjdGl2ZUluZGV4XSwKICAgICAgICBvID0gZCA/IGQuZ2V0QXR0cmlidXRlKCJkYXRhLWhhc2giKSA6ICIiOwogICAgICBpZiAoaSAhPT0gbykgewogICAgICAgIGNvbnN0IG4gPSBlLnBhcmFtcy5oYXNoTmF2aWdhdGlvbi5nZXRTbGlkZUluZGV4KGUsIGkpOwogICAgICAgIGlmICh0eXBlb2YgbiA+ICJ1IiB8fCBOdW1iZXIuaXNOYU4obikpIHJldHVybjsKICAgICAgICBlLnNsaWRlVG8obik7CiAgICAgIH0KICAgIH0sCiAgICBwID0gKCkgPT4gewogICAgICBpZiAoIXcgfHwgIWUucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQpIHJldHVybjsKICAgICAgY29uc3QgaSA9CiAgICAgICAgICBlLnZpcnR1YWwgJiYgZS5wYXJhbXMudmlydHVhbC5lbmFibGVkCiAgICAgICAgICAgID8gZS5zbGlkZXNFbC5xdWVyeVNlbGVjdG9yKAogICAgICAgICAgICAgICAgYFtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtlLmFjdGl2ZUluZGV4fSJdYAogICAgICAgICAgICAgICkKICAgICAgICAgICAgOiBlLnNsaWRlc1tlLmFjdGl2ZUluZGV4XSwKICAgICAgICBkID0gaQogICAgICAgICAgPyBpLmdldEF0dHJpYnV0ZSgiZGF0YS1oYXNoIikgfHwgaS5nZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeSIpCiAgICAgICAgICA6ICIiOwogICAgICBlLnBhcmFtcy5oYXNoTmF2aWdhdGlvbi5yZXBsYWNlU3RhdGUgJiYKICAgICAgRS5oaXN0b3J5ICYmCiAgICAgIEUuaGlzdG9yeS5yZXBsYWNlU3RhdGUKICAgICAgICA/IChFLmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIG51bGwsIGAjJHtkfWAgfHwgIiIpLCB1KCJoYXNoU2V0IikpCiAgICAgICAgOiAoKGIubG9jYXRpb24uaGFzaCA9IGQgfHwgIiIpLCB1KCJoYXNoU2V0IikpOwogICAgfSwKICAgIHMgPSAoKSA9PiB7CiAgICAgIGlmICgKICAgICAgICAhZS5wYXJhbXMuaGFzaE5hdmlnYXRpb24uZW5hYmxlZCB8fAogICAgICAgIChlLnBhcmFtcy5oaXN0b3J5ICYmIGUucGFyYW1zLmhpc3RvcnkuZW5hYmxlZCkKICAgICAgKQogICAgICAgIHJldHVybjsKICAgICAgdyA9ICEwOwogICAgICBjb25zdCBpID0gYi5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoIiMiLCAiIik7CiAgICAgIGlmIChpKSB7CiAgICAgICAgY29uc3QgbyA9IGUucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmdldFNsaWRlSW5kZXgoZSwgaSk7CiAgICAgICAgZS5zbGlkZVRvKG8gfHwgMCwgMCwgZS5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0LCAhMCk7CiAgICAgIH0KICAgICAgZS5wYXJhbXMuaGFzaE5hdmlnYXRpb24ud2F0Y2hTdGF0ZSAmJiBFLmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLCBmKTsKICAgIH0sCiAgICB0ID0gKCkgPT4gewogICAgICBlLnBhcmFtcy5oYXNoTmF2aWdhdGlvbi53YXRjaFN0YXRlICYmCiAgICAgICAgRS5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIiwgZik7CiAgICB9OwogIGcoImluaXQiLCAoKSA9PiB7CiAgICBlLnBhcmFtcy5oYXNoTmF2aWdhdGlvbi5lbmFibGVkICYmIHMoKTsKICB9KSwKICAgIGcoImRlc3Ryb3kiLCAoKSA9PiB7CiAgICAgIGUucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQgJiYgdCgpOwogICAgfSksCiAgICBnKCJ0cmFuc2l0aW9uRW5kIF9mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlIiwgKCkgPT4gewogICAgICB3ICYmIHAoKTsKICAgIH0pLAogICAgZygic2xpZGVDaGFuZ2UiLCAoKSA9PiB7CiAgICAgIHcgJiYgZS5wYXJhbXMuY3NzTW9kZSAmJiBwKCk7CiAgICB9KTsKfQpmdW5jdGlvbiB0dChNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIG9uOiB1LCBlbWl0OiBnLCBwYXJhbXM6IHcgfSA9IE07CiAgKGUuYXV0b3BsYXkgPSB7IHJ1bm5pbmc6ICExLCBwYXVzZWQ6ICExLCB0aW1lTGVmdDogMCB9KSwKICAgIGgoewogICAgICBhdXRvcGxheTogewogICAgICAgIGVuYWJsZWQ6ICExLAogICAgICAgIGRlbGF5OiAzZTMsCiAgICAgICAgd2FpdEZvclRyYW5zaXRpb246ICEwLAogICAgICAgIGRpc2FibGVPbkludGVyYWN0aW9uOiAhMSwKICAgICAgICBzdG9wT25MYXN0U2xpZGU6ICExLAogICAgICAgIHJldmVyc2VEaXJlY3Rpb246ICExLAogICAgICAgIHBhdXNlT25Nb3VzZUVudGVyOiAhMSwKICAgICAgfSwKICAgIH0pOwogIGxldCBiLAogICAgRSwKICAgIGYgPSB3ICYmIHcuYXV0b3BsYXkgPyB3LmF1dG9wbGF5LmRlbGF5IDogM2UzLAogICAgcCA9IHcgJiYgdy5hdXRvcGxheSA/IHcuYXV0b3BsYXkuZGVsYXkgOiAzZTMsCiAgICBzLAogICAgdCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLAogICAgaSwKICAgIGQsCiAgICBvLAogICAgbiwKICAgIGwsCiAgICBjLAogICAgcjsKICBmdW5jdGlvbiBhKHkpIHsKICAgICFlIHx8CiAgICAgIGUuZGVzdHJveWVkIHx8CiAgICAgICFlLndyYXBwZXJFbCB8fAogICAgICAoeS50YXJnZXQgPT09IGUud3JhcHBlckVsICYmCiAgICAgICAgKGUud3JhcHBlckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCBhKSwKICAgICAgICAhKHIgfHwgKHkuZGV0YWlsICYmIHkuZGV0YWlsLmJ5U3dpcGVyVG91Y2hNb3ZlKSkgJiYgTygpKSk7CiAgfQogIGNvbnN0IG0gPSAoKSA9PiB7CiAgICAgIGlmIChlLmRlc3Ryb3llZCB8fCAhZS5hdXRvcGxheS5ydW5uaW5nKSByZXR1cm47CiAgICAgIGUuYXV0b3BsYXkucGF1c2VkID8gKGkgPSAhMCkgOiBpICYmICgocCA9IHMpLCAoaSA9ICExKSk7CiAgICAgIGNvbnN0IHkgPSBlLmF1dG9wbGF5LnBhdXNlZCA/IHMgOiB0ICsgcCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAoZS5hdXRvcGxheS50aW1lTGVmdCA9IHkpLAogICAgICAgIGcoImF1dG9wbGF5VGltZUxlZnQiLCB5LCB5IC8gZiksCiAgICAgICAgKEUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAgICAgbSgpOwogICAgICAgIH0pKTsKICAgIH0sCiAgICBDID0gKCkgPT4gewogICAgICBsZXQgeTsKICAgICAgcmV0dXJuICgKICAgICAgICBlLnZpcnR1YWwgJiYgZS5wYXJhbXMudmlydHVhbC5lbmFibGVkCiAgICAgICAgICA/ICh5ID0gZS5zbGlkZXMuZmlsdGVyKChCKSA9PgogICAgICAgICAgICAgIEIuY2xhc3NMaXN0LmNvbnRhaW5zKCJzd2lwZXItc2xpZGUtYWN0aXZlIikKICAgICAgICAgICAgKVswXSkKICAgICAgICAgIDogKHkgPSBlLnNsaWRlc1tlLmFjdGl2ZUluZGV4XSksCiAgICAgICAgeSA/IHBhcnNlSW50KHkuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1hdXRvcGxheSIpLCAxMCkgOiB2b2lkIDAKICAgICAgKTsKICAgIH0sCiAgICBEID0gKHkpID0+IHsKICAgICAgaWYgKGUuZGVzdHJveWVkIHx8ICFlLmF1dG9wbGF5LnJ1bm5pbmcpIHJldHVybjsKICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoRSksIG0oKTsKICAgICAgbGV0IEggPSB0eXBlb2YgeSA+ICJ1IiA/IGUucGFyYW1zLmF1dG9wbGF5LmRlbGF5IDogeTsKICAgICAgKGYgPSBlLnBhcmFtcy5hdXRvcGxheS5kZWxheSksIChwID0gZS5wYXJhbXMuYXV0b3BsYXkuZGVsYXkpOwogICAgICBjb25zdCBCID0gQygpOwogICAgICAhTnVtYmVyLmlzTmFOKEIpICYmCiAgICAgICAgQiA+IDAgJiYKICAgICAgICB0eXBlb2YgeSA+ICJ1IiAmJgogICAgICAgICgoSCA9IEIpLCAoZiA9IEIpLCAocCA9IEIpKSwKICAgICAgICAocyA9IEgpOwogICAgICBjb25zdCAkID0gZS5wYXJhbXMuc3BlZWQsCiAgICAgICAgayA9ICgpID0+IHsKICAgICAgICAgICFlIHx8CiAgICAgICAgICAgIGUuZGVzdHJveWVkIHx8CiAgICAgICAgICAgIChlLnBhcmFtcy5hdXRvcGxheS5yZXZlcnNlRGlyZWN0aW9uCiAgICAgICAgICAgICAgPyAhZS5pc0JlZ2lubmluZyB8fCBlLnBhcmFtcy5sb29wIHx8IGUucGFyYW1zLnJld2luZAogICAgICAgICAgICAgICAgPyAoZS5zbGlkZVByZXYoJCwgITAsICEwKSwgZygiYXV0b3BsYXkiKSkKICAgICAgICAgICAgICAgIDogZS5wYXJhbXMuYXV0b3BsYXkuc3RvcE9uTGFzdFNsaWRlIHx8CiAgICAgICAgICAgICAgICAgIChlLnNsaWRlVG8oZS5zbGlkZXMubGVuZ3RoIC0gMSwgJCwgITAsICEwKSwgZygiYXV0b3BsYXkiKSkKICAgICAgICAgICAgICA6ICFlLmlzRW5kIHx8IGUucGFyYW1zLmxvb3AgfHwgZS5wYXJhbXMucmV3aW5kCiAgICAgICAgICAgICAgPyAoZS5zbGlkZU5leHQoJCwgITAsICEwKSwgZygiYXV0b3BsYXkiKSkKICAgICAgICAgICAgICA6IGUucGFyYW1zLmF1dG9wbGF5LnN0b3BPbkxhc3RTbGlkZSB8fAogICAgICAgICAgICAgICAgKGUuc2xpZGVUbygwLCAkLCAhMCwgITApLCBnKCJhdXRvcGxheSIpKSwKICAgICAgICAgICAgZS5wYXJhbXMuY3NzTW9kZSAmJgogICAgICAgICAgICAgICgodCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpKSwKICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAgICAgICAgICAgRCgpOwogICAgICAgICAgICAgIH0pKSk7CiAgICAgICAgfTsKICAgICAgcmV0dXJuICgKICAgICAgICBIID4gMAogICAgICAgICAgPyAoY2xlYXJUaW1lb3V0KGIpLAogICAgICAgICAgICAoYiA9IHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgIGsoKTsKICAgICAgICAgICAgfSwgSCkpKQogICAgICAgICAgOiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAgICAgICAgIGsoKTsKICAgICAgICAgICAgfSksCiAgICAgICAgSAogICAgICApOwogICAgfSwKICAgIFAgPSAoKSA9PiB7CiAgICAgICh0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkpLAogICAgICAgIChlLmF1dG9wbGF5LnJ1bm5pbmcgPSAhMCksCiAgICAgICAgRCgpLAogICAgICAgIGcoImF1dG9wbGF5U3RhcnQiKTsKICAgIH0sCiAgICBBID0gKCkgPT4gewogICAgICAoZS5hdXRvcGxheS5ydW5uaW5nID0gITEpLAogICAgICAgIGNsZWFyVGltZW91dChiKSwKICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShFKSwKICAgICAgICBnKCJhdXRvcGxheVN0b3AiKTsKICAgIH0sCiAgICB4ID0gKHksIEgpID0+IHsKICAgICAgaWYgKGUuZGVzdHJveWVkIHx8ICFlLmF1dG9wbGF5LnJ1bm5pbmcpIHJldHVybjsKICAgICAgY2xlYXJUaW1lb3V0KGIpLCB5IHx8IChjID0gITApOwogICAgICBjb25zdCBCID0gKCkgPT4gewogICAgICAgIGcoImF1dG9wbGF5UGF1c2UiKSwKICAgICAgICAgIGUucGFyYW1zLmF1dG9wbGF5LndhaXRGb3JUcmFuc2l0aW9uCiAgICAgICAgICAgID8gZS53cmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIGEpCiAgICAgICAgICAgIDogTygpOwogICAgICB9OwogICAgICBpZiAoKChlLmF1dG9wbGF5LnBhdXNlZCA9ICEwKSwgSCkpIHsKICAgICAgICBsICYmIChzID0gZS5wYXJhbXMuYXV0b3BsYXkuZGVsYXkpLCAobCA9ICExKSwgQigpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAocyA9IChzIHx8IGUucGFyYW1zLmF1dG9wbGF5LmRlbGF5KSAtIChuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHQpKSwKICAgICAgICAhKGUuaXNFbmQgJiYgcyA8IDAgJiYgIWUucGFyYW1zLmxvb3ApICYmIChzIDwgMCAmJiAocyA9IDApLCBCKCkpOwogICAgfSwKICAgIE8gPSAoKSA9PiB7CiAgICAgIChlLmlzRW5kICYmIHMgPCAwICYmICFlLnBhcmFtcy5sb29wKSB8fAogICAgICAgIGUuZGVzdHJveWVkIHx8CiAgICAgICAgIWUuYXV0b3BsYXkucnVubmluZyB8fAogICAgICAgICgodCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpKSwKICAgICAgICBjID8gKChjID0gITEpLCBEKHMpKSA6IEQoKSwKICAgICAgICAoZS5hdXRvcGxheS5wYXVzZWQgPSAhMSksCiAgICAgICAgZygiYXV0b3BsYXlSZXN1bWUiKSk7CiAgICB9LAogICAgSSA9ICgpID0+IHsKICAgICAgaWYgKGUuZGVzdHJveWVkIHx8ICFlLmF1dG9wbGF5LnJ1bm5pbmcpIHJldHVybjsKICAgICAgY29uc3QgeSA9IGooKTsKICAgICAgeS52aXNpYmlsaXR5U3RhdGUgPT09ICJoaWRkZW4iICYmICgoYyA9ICEwKSwgeCghMCkpLAogICAgICAgIHkudmlzaWJpbGl0eVN0YXRlID09PSAidmlzaWJsZSIgJiYgTygpOwogICAgfSwKICAgIHogPSAoeSkgPT4gewogICAgICB5LnBvaW50ZXJUeXBlID09PSAibW91c2UiICYmCiAgICAgICAgKChjID0gITApLCAociA9ICEwKSwgIShlLmFuaW1hdGluZyB8fCBlLmF1dG9wbGF5LnBhdXNlZCkgJiYgeCghMCkpOwogICAgfSwKICAgIFQgPSAoeSkgPT4gewogICAgICB5LnBvaW50ZXJUeXBlID09PSAibW91c2UiICYmICgociA9ICExKSwgZS5hdXRvcGxheS5wYXVzZWQgJiYgTygpKTsKICAgIH0sCiAgICBTID0gKCkgPT4gewogICAgICBlLnBhcmFtcy5hdXRvcGxheS5wYXVzZU9uTW91c2VFbnRlciAmJgogICAgICAgIChlLmVsLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsIHopLAogICAgICAgIGUuZWwuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIiwgVCkpOwogICAgfSwKICAgIEwgPSAoKSA9PiB7CiAgICAgIGUuZWwgJiYKICAgICAgICB0eXBlb2YgZS5lbCAhPSAic3RyaW5nIiAmJgogICAgICAgIChlLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsIHopLAogICAgICAgIGUuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIiwgVCkpOwogICAgfSwKICAgIFkgPSAoKSA9PiB7CiAgICAgIGooKS5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgSSk7CiAgICB9LAogICAgdiA9ICgpID0+IHsKICAgICAgaigpLnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLCBJKTsKICAgIH07CiAgdSgiaW5pdCIsICgpID0+IHsKICAgIGUucGFyYW1zLmF1dG9wbGF5LmVuYWJsZWQgJiYgKFMoKSwgWSgpLCBQKCkpOwogIH0pLAogICAgdSgiZGVzdHJveSIsICgpID0+IHsKICAgICAgTCgpLCB2KCksIGUuYXV0b3BsYXkucnVubmluZyAmJiBBKCk7CiAgICB9KSwKICAgIHUoIl9mcmVlTW9kZVN0YXRpY1JlbGVhc2UiLCAoKSA9PiB7CiAgICAgIChvIHx8IGMpICYmIE8oKTsKICAgIH0pLAogICAgdSgiX2ZyZWVNb2RlTm9Nb21lbnR1bVJlbGVhc2UiLCAoKSA9PiB7CiAgICAgIGUucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9uID8gQSgpIDogeCghMCwgITApOwogICAgfSksCiAgICB1KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLCAoeSwgSCwgQikgPT4gewogICAgICBlLmRlc3Ryb3llZCB8fAogICAgICAgICFlLmF1dG9wbGF5LnJ1bm5pbmcgfHwKICAgICAgICAoQiB8fCAhZS5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24gPyB4KCEwLCAhMCkgOiBBKCkpOwogICAgfSksCiAgICB1KCJzbGlkZXJGaXJzdE1vdmUiLCAoKSA9PiB7CiAgICAgIGlmICghKGUuZGVzdHJveWVkIHx8ICFlLmF1dG9wbGF5LnJ1bm5pbmcpKSB7CiAgICAgICAgaWYgKGUucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9uKSB7CiAgICAgICAgICBBKCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIChkID0gITApLAogICAgICAgICAgKG8gPSAhMSksCiAgICAgICAgICAoYyA9ICExKSwKICAgICAgICAgIChuID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIChjID0gITApLCAobyA9ICEwKSwgeCghMCk7CiAgICAgICAgICB9LCAyMDApKTsKICAgICAgfQogICAgfSksCiAgICB1KCJ0b3VjaEVuZCIsICgpID0+IHsKICAgICAgaWYgKCEoZS5kZXN0cm95ZWQgfHwgIWUuYXV0b3BsYXkucnVubmluZyB8fCAhZCkpIHsKICAgICAgICBpZiAoCiAgICAgICAgICAoY2xlYXJUaW1lb3V0KG4pLAogICAgICAgICAgY2xlYXJUaW1lb3V0KGIpLAogICAgICAgICAgZS5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24pCiAgICAgICAgKSB7CiAgICAgICAgICAobyA9ICExKSwgKGQgPSAhMSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIG8gJiYgZS5wYXJhbXMuY3NzTW9kZSAmJiBPKCksIChvID0gITEpLCAoZCA9ICExKTsKICAgICAgfQogICAgfSksCiAgICB1KCJzbGlkZUNoYW5nZSIsICgpID0+IHsKICAgICAgZS5kZXN0cm95ZWQgfHwgIWUuYXV0b3BsYXkucnVubmluZyB8fCAobCA9ICEwKTsKICAgIH0pLAogICAgT2JqZWN0LmFzc2lnbihlLmF1dG9wbGF5LCB7IHN0YXJ0OiBQLCBzdG9wOiBBLCBwYXVzZTogeCwgcmVzdW1lOiBPIH0pOwp9CmZ1bmN0aW9uIGl0KE0pIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaCwgb246IHUgfSA9IE07CiAgaCh7CiAgICB0aHVtYnM6IHsKICAgICAgc3dpcGVyOiBudWxsLAogICAgICBtdWx0aXBsZUFjdGl2ZVRodW1iczogITAsCiAgICAgIGF1dG9TY3JvbGxPZmZzZXQ6IDAsCiAgICAgIHNsaWRlVGh1bWJBY3RpdmVDbGFzczogInN3aXBlci1zbGlkZS10aHVtYi1hY3RpdmUiLAogICAgICB0aHVtYnNDb250YWluZXJDbGFzczogInN3aXBlci10aHVtYnMiLAogICAgfSwKICB9KTsKICBsZXQgZyA9ICExLAogICAgdyA9ICExOwogIGUudGh1bWJzID0geyBzd2lwZXI6IG51bGwgfTsKICBmdW5jdGlvbiBiKCkgewogICAgY29uc3QgcCA9IGUudGh1bWJzLnN3aXBlcjsKICAgIGlmICghcCB8fCBwLmRlc3Ryb3llZCkgcmV0dXJuOwogICAgY29uc3QgcyA9IHAuY2xpY2tlZEluZGV4LAogICAgICB0ID0gcC5jbGlja2VkU2xpZGU7CiAgICBpZiAoCiAgICAgICh0ICYmIHQuY2xhc3NMaXN0LmNvbnRhaW5zKGUucGFyYW1zLnRodW1icy5zbGlkZVRodW1iQWN0aXZlQ2xhc3MpKSB8fAogICAgICB0eXBlb2YgcyA+ICJ1IiB8fAogICAgICBzID09PSBudWxsCiAgICApCiAgICAgIHJldHVybjsKICAgIGxldCBpOwogICAgcC5wYXJhbXMubG9vcAogICAgICA/IChpID0gcGFyc2VJbnQoCiAgICAgICAgICBwLmNsaWNrZWRTbGlkZS5nZXRBdHRyaWJ1dGUoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksCiAgICAgICAgICAxMAogICAgICAgICkpCiAgICAgIDogKGkgPSBzKSwKICAgICAgZS5wYXJhbXMubG9vcCA/IGUuc2xpZGVUb0xvb3AoaSkgOiBlLnNsaWRlVG8oaSk7CiAgfQogIGZ1bmN0aW9uIEUoKSB7CiAgICBjb25zdCB7IHRodW1iczogcCB9ID0gZS5wYXJhbXM7CiAgICBpZiAoZykgcmV0dXJuICExOwogICAgZyA9ICEwOwogICAgY29uc3QgcyA9IGUuY29uc3RydWN0b3I7CiAgICBpZiAocC5zd2lwZXIgaW5zdGFuY2VvZiBzKQogICAgICAoZS50aHVtYnMuc3dpcGVyID0gcC5zd2lwZXIpLAogICAgICAgIE9iamVjdC5hc3NpZ24oZS50aHVtYnMuc3dpcGVyLm9yaWdpbmFsUGFyYW1zLCB7CiAgICAgICAgICB3YXRjaFNsaWRlc1Byb2dyZXNzOiAhMCwKICAgICAgICAgIHNsaWRlVG9DbGlja2VkU2xpZGU6ICExLAogICAgICAgIH0pLAogICAgICAgIE9iamVjdC5hc3NpZ24oZS50aHVtYnMuc3dpcGVyLnBhcmFtcywgewogICAgICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogITAsCiAgICAgICAgICBzbGlkZVRvQ2xpY2tlZFNsaWRlOiAhMSwKICAgICAgICB9KSwKICAgICAgICBlLnRodW1icy5zd2lwZXIudXBkYXRlKCk7CiAgICBlbHNlIGlmIChYZShwLnN3aXBlcikpIHsKICAgICAgY29uc3QgdCA9IE9iamVjdC5hc3NpZ24oe30sIHAuc3dpcGVyKTsKICAgICAgT2JqZWN0LmFzc2lnbih0LCB7IHdhdGNoU2xpZGVzUHJvZ3Jlc3M6ICEwLCBzbGlkZVRvQ2xpY2tlZFNsaWRlOiAhMSB9KSwKICAgICAgICAoZS50aHVtYnMuc3dpcGVyID0gbmV3IHModCkpLAogICAgICAgICh3ID0gITApOwogICAgfQogICAgcmV0dXJuICgKICAgICAgZS50aHVtYnMuc3dpcGVyLmVsLmNsYXNzTGlzdC5hZGQoZS5wYXJhbXMudGh1bWJzLnRodW1ic0NvbnRhaW5lckNsYXNzKSwKICAgICAgZS50aHVtYnMuc3dpcGVyLm9uKCJ0YXAiLCBiKSwKICAgICAgITAKICAgICk7CiAgfQogIGZ1bmN0aW9uIGYocCkgewogICAgY29uc3QgcyA9IGUudGh1bWJzLnN3aXBlcjsKICAgIGlmICghcyB8fCBzLmRlc3Ryb3llZCkgcmV0dXJuOwogICAgY29uc3QgdCA9CiAgICAgIHMucGFyYW1zLnNsaWRlc1BlclZpZXcgPT09ICJhdXRvIgogICAgICAgID8gcy5zbGlkZXNQZXJWaWV3RHluYW1pYygpCiAgICAgICAgOiBzLnBhcmFtcy5zbGlkZXNQZXJWaWV3OwogICAgbGV0IGkgPSAxOwogICAgY29uc3QgZCA9IGUucGFyYW1zLnRodW1icy5zbGlkZVRodW1iQWN0aXZlQ2xhc3M7CiAgICBpZiAoCiAgICAgIChlLnBhcmFtcy5zbGlkZXNQZXJWaWV3ID4gMSAmJgogICAgICAgICFlLnBhcmFtcy5jZW50ZXJlZFNsaWRlcyAmJgogICAgICAgIChpID0gZS5wYXJhbXMuc2xpZGVzUGVyVmlldyksCiAgICAgIGUucGFyYW1zLnRodW1icy5tdWx0aXBsZUFjdGl2ZVRodW1icyB8fCAoaSA9IDEpLAogICAgICAoaSA9IE1hdGguZmxvb3IoaSkpLAogICAgICBzLnNsaWRlcy5mb3JFYWNoKChsKSA9PiBsLmNsYXNzTGlzdC5yZW1vdmUoZCkpLAogICAgICBzLnBhcmFtcy5sb29wIHx8IChzLnBhcmFtcy52aXJ0dWFsICYmIHMucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCkpCiAgICApCiAgICAgIGZvciAobGV0IGwgPSAwOyBsIDwgaTsgbCArPSAxKQogICAgICAgIEsocy5zbGlkZXNFbCwgYFtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtlLnJlYWxJbmRleCArIGx9Il1gKS5mb3JFYWNoKAogICAgICAgICAgKGMpID0+IHsKICAgICAgICAgICAgYy5jbGFzc0xpc3QuYWRkKGQpOwogICAgICAgICAgfQogICAgICAgICk7CiAgICBlbHNlCiAgICAgIGZvciAobGV0IGwgPSAwOyBsIDwgaTsgbCArPSAxKQogICAgICAgIHMuc2xpZGVzW2UucmVhbEluZGV4ICsgbF0gJiYgcy5zbGlkZXNbZS5yZWFsSW5kZXggKyBsXS5jbGFzc0xpc3QuYWRkKGQpOwogICAgY29uc3QgbyA9IGUucGFyYW1zLnRodW1icy5hdXRvU2Nyb2xsT2Zmc2V0LAogICAgICBuID0gbyAmJiAhcy5wYXJhbXMubG9vcDsKICAgIGlmIChlLnJlYWxJbmRleCAhPT0gcy5yZWFsSW5kZXggfHwgbikgewogICAgICBjb25zdCBsID0gcy5hY3RpdmVJbmRleDsKICAgICAgbGV0IGMsIHI7CiAgICAgIGlmIChzLnBhcmFtcy5sb29wKSB7CiAgICAgICAgY29uc3QgYSA9IHMuc2xpZGVzLmZpbHRlcigKICAgICAgICAgIChtKSA9PiBtLmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSA9PT0gYCR7ZS5yZWFsSW5kZXh9YAogICAgICAgIClbMF07CiAgICAgICAgKGMgPSBzLnNsaWRlcy5pbmRleE9mKGEpKSwKICAgICAgICAgIChyID0gZS5hY3RpdmVJbmRleCA+IGUucHJldmlvdXNJbmRleCA/ICJuZXh0IiA6ICJwcmV2Iik7CiAgICAgIH0gZWxzZSAoYyA9IGUucmVhbEluZGV4KSwgKHIgPSBjID4gZS5wcmV2aW91c0luZGV4ID8gIm5leHQiIDogInByZXYiKTsKICAgICAgbiAmJiAoYyArPSByID09PSAibmV4dCIgPyBvIDogLTEgKiBvKSwKICAgICAgICBzLnZpc2libGVTbGlkZXNJbmRleGVzICYmCiAgICAgICAgICBzLnZpc2libGVTbGlkZXNJbmRleGVzLmluZGV4T2YoYykgPCAwICYmCiAgICAgICAgICAocy5wYXJhbXMuY2VudGVyZWRTbGlkZXMKICAgICAgICAgICAgPyBjID4gbAogICAgICAgICAgICAgID8gKGMgPSBjIC0gTWF0aC5mbG9vcih0IC8gMikgKyAxKQogICAgICAgICAgICAgIDogKGMgPSBjICsgTWF0aC5mbG9vcih0IC8gMikgLSAxKQogICAgICAgICAgICA6IGMgPiBsICYmIHMucGFyYW1zLnNsaWRlc1Blckdyb3VwLAogICAgICAgICAgcy5zbGlkZVRvKGMsIHAgPyAwIDogdm9pZCAwKSk7CiAgICB9CiAgfQogIHUoImJlZm9yZUluaXQiLCAoKSA9PiB7CiAgICBjb25zdCB7IHRodW1iczogcCB9ID0gZS5wYXJhbXM7CiAgICBpZiAoISghcCB8fCAhcC5zd2lwZXIpKQogICAgICBpZiAodHlwZW9mIHAuc3dpcGVyID09ICJzdHJpbmciIHx8IHAuc3dpcGVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHsKICAgICAgICBjb25zdCBzID0gaigpLAogICAgICAgICAgdCA9ICgpID0+IHsKICAgICAgICAgICAgY29uc3QgZCA9CiAgICAgICAgICAgICAgdHlwZW9mIHAuc3dpcGVyID09ICJzdHJpbmciCiAgICAgICAgICAgICAgICA/IHMucXVlcnlTZWxlY3RvcihwLnN3aXBlcikKICAgICAgICAgICAgICAgIDogcC5zd2lwZXI7CiAgICAgICAgICAgIGlmIChkICYmIGQuc3dpcGVyKSAocC5zd2lwZXIgPSBkLnN3aXBlciksIEUoKSwgZighMCk7CiAgICAgICAgICAgIGVsc2UgaWYgKGQpIHsKICAgICAgICAgICAgICBjb25zdCBvID0gYCR7ZS5wYXJhbXMuZXZlbnRzUHJlZml4fWluaXRgLAogICAgICAgICAgICAgICAgbiA9IChsKSA9PiB7CiAgICAgICAgICAgICAgICAgIChwLnN3aXBlciA9IGwuZGV0YWlsWzBdKSwKICAgICAgICAgICAgICAgICAgICBkLnJlbW92ZUV2ZW50TGlzdGVuZXIobywgbiksCiAgICAgICAgICAgICAgICAgICAgRSgpLAogICAgICAgICAgICAgICAgICAgIGYoITApLAogICAgICAgICAgICAgICAgICAgIHAuc3dpcGVyLnVwZGF0ZSgpLAogICAgICAgICAgICAgICAgICAgIGUudXBkYXRlKCk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcihvLCBuKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZDsKICAgICAgICAgIH0sCiAgICAgICAgICBpID0gKCkgPT4gewogICAgICAgICAgICBpZiAoZS5kZXN0cm95ZWQpIHJldHVybjsKICAgICAgICAgICAgdCgpIHx8IHJlcXVlc3RBbmltYXRpb25GcmFtZShpKTsKICAgICAgICAgIH07CiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkpOwogICAgICB9IGVsc2UgRSgpLCBmKCEwKTsKICB9KSwKICAgIHUoInNsaWRlQ2hhbmdlIHVwZGF0ZSByZXNpemUgb2JzZXJ2ZXJVcGRhdGUiLCAoKSA9PiB7CiAgICAgIGYoKTsKICAgIH0pLAogICAgdSgic2V0VHJhbnNpdGlvbiIsIChwLCBzKSA9PiB7CiAgICAgIGNvbnN0IHQgPSBlLnRodW1icy5zd2lwZXI7CiAgICAgICF0IHx8IHQuZGVzdHJveWVkIHx8IHQuc2V0VHJhbnNpdGlvbihzKTsKICAgIH0pLAogICAgdSgiYmVmb3JlRGVzdHJveSIsICgpID0+IHsKICAgICAgY29uc3QgcCA9IGUudGh1bWJzLnN3aXBlcjsKICAgICAgIXAgfHwgcC5kZXN0cm95ZWQgfHwgKHcgJiYgcC5kZXN0cm95KCkpOwogICAgfSksCiAgICBPYmplY3QuYXNzaWduKGUudGh1bWJzLCB7IGluaXQ6IEUsIHVwZGF0ZTogZiB9KTsKfQpmdW5jdGlvbiBzdChNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIGVtaXQ6IHUsIG9uY2U6IGcgfSA9IE07CiAgaCh7CiAgICBmcmVlTW9kZTogewogICAgICBlbmFibGVkOiAhMSwKICAgICAgbW9tZW50dW06ICEwLAogICAgICBtb21lbnR1bVJhdGlvOiAxLAogICAgICBtb21lbnR1bUJvdW5jZTogITAsCiAgICAgIG1vbWVudHVtQm91bmNlUmF0aW86IDEsCiAgICAgIG1vbWVudHVtVmVsb2NpdHlSYXRpbzogMSwKICAgICAgc3RpY2t5OiAhMSwKICAgICAgbWluaW11bVZlbG9jaXR5OiAwLjAyLAogICAgfSwKICB9KTsKICBmdW5jdGlvbiB3KCkgewogICAgaWYgKGUucGFyYW1zLmNzc01vZGUpIHJldHVybjsKICAgIGNvbnN0IGYgPSBlLmdldFRyYW5zbGF0ZSgpOwogICAgZS5zZXRUcmFuc2xhdGUoZiksCiAgICAgIGUuc2V0VHJhbnNpdGlvbigwKSwKICAgICAgKGUudG91Y2hFdmVudHNEYXRhLnZlbG9jaXRpZXMubGVuZ3RoID0gMCksCiAgICAgIGUuZnJlZU1vZGUub25Ub3VjaEVuZCh7IGN1cnJlbnRQb3M6IGUucnRsID8gZS50cmFuc2xhdGUgOiAtZS50cmFuc2xhdGUgfSk7CiAgfQogIGZ1bmN0aW9uIGIoKSB7CiAgICBpZiAoZS5wYXJhbXMuY3NzTW9kZSkgcmV0dXJuOwogICAgY29uc3QgeyB0b3VjaEV2ZW50c0RhdGE6IGYsIHRvdWNoZXM6IHAgfSA9IGU7CiAgICBmLnZlbG9jaXRpZXMubGVuZ3RoID09PSAwICYmCiAgICAgIGYudmVsb2NpdGllcy5wdXNoKHsKICAgICAgICBwb3NpdGlvbjogcFtlLmlzSG9yaXpvbnRhbCgpID8gInN0YXJ0WCIgOiAic3RhcnRZIl0sCiAgICAgICAgdGltZTogZi50b3VjaFN0YXJ0VGltZSwKICAgICAgfSksCiAgICAgIGYudmVsb2NpdGllcy5wdXNoKHsKICAgICAgICBwb3NpdGlvbjogcFtlLmlzSG9yaXpvbnRhbCgpID8gImN1cnJlbnRYIiA6ICJjdXJyZW50WSJdLAogICAgICAgIHRpbWU6IFUoKSwKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIEUoZikgewogICAgbGV0IHsgY3VycmVudFBvczogcCB9ID0gZjsKICAgIGlmIChlLnBhcmFtcy5jc3NNb2RlKSByZXR1cm47CiAgICBjb25zdCB7CiAgICAgICAgcGFyYW1zOiBzLAogICAgICAgIHdyYXBwZXJFbDogdCwKICAgICAgICBydGxUcmFuc2xhdGU6IGksCiAgICAgICAgc25hcEdyaWQ6IGQsCiAgICAgICAgdG91Y2hFdmVudHNEYXRhOiBvLAogICAgICB9ID0gZSwKICAgICAgbCA9IFUoKSAtIG8udG91Y2hTdGFydFRpbWU7CiAgICBpZiAocCA8IC1lLm1pblRyYW5zbGF0ZSgpKSB7CiAgICAgIGUuc2xpZGVUbyhlLmFjdGl2ZUluZGV4KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHAgPiAtZS5tYXhUcmFuc2xhdGUoKSkgewogICAgICBlLnNsaWRlcy5sZW5ndGggPCBkLmxlbmd0aAogICAgICAgID8gZS5zbGlkZVRvKGQubGVuZ3RoIC0gMSkKICAgICAgICA6IGUuc2xpZGVUbyhlLnNsaWRlcy5sZW5ndGggLSAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHMuZnJlZU1vZGUubW9tZW50dW0pIHsKICAgICAgaWYgKG8udmVsb2NpdGllcy5sZW5ndGggPiAxKSB7CiAgICAgICAgY29uc3QgQSA9IG8udmVsb2NpdGllcy5wb3AoKSwKICAgICAgICAgIHggPSBvLnZlbG9jaXRpZXMucG9wKCksCiAgICAgICAgICBPID0gQS5wb3NpdGlvbiAtIHgucG9zaXRpb24sCiAgICAgICAgICBJID0gQS50aW1lIC0geC50aW1lOwogICAgICAgIChlLnZlbG9jaXR5ID0gTyAvIEkpLAogICAgICAgICAgKGUudmVsb2NpdHkgLz0gMiksCiAgICAgICAgICBNYXRoLmFicyhlLnZlbG9jaXR5KSA8IHMuZnJlZU1vZGUubWluaW11bVZlbG9jaXR5ICYmIChlLnZlbG9jaXR5ID0gMCksCiAgICAgICAgICAoSSA+IDE1MCB8fCBVKCkgLSBBLnRpbWUgPiAzMDApICYmIChlLnZlbG9jaXR5ID0gMCk7CiAgICAgIH0gZWxzZSBlLnZlbG9jaXR5ID0gMDsKICAgICAgKGUudmVsb2NpdHkgKj0gcy5mcmVlTW9kZS5tb21lbnR1bVZlbG9jaXR5UmF0aW8pLAogICAgICAgIChvLnZlbG9jaXRpZXMubGVuZ3RoID0gMCk7CiAgICAgIGxldCBjID0gMWUzICogcy5mcmVlTW9kZS5tb21lbnR1bVJhdGlvOwogICAgICBjb25zdCByID0gZS52ZWxvY2l0eSAqIGM7CiAgICAgIGxldCBhID0gZS50cmFuc2xhdGUgKyByOwogICAgICBpICYmIChhID0gLWEpOwogICAgICBsZXQgbSA9ICExLAogICAgICAgIEM7CiAgICAgIGNvbnN0IEQgPSBNYXRoLmFicyhlLnZlbG9jaXR5KSAqIDIwICogcy5mcmVlTW9kZS5tb21lbnR1bUJvdW5jZVJhdGlvOwogICAgICBsZXQgUDsKICAgICAgaWYgKGEgPCBlLm1heFRyYW5zbGF0ZSgpKQogICAgICAgIHMuZnJlZU1vZGUubW9tZW50dW1Cb3VuY2UKICAgICAgICAgID8gKGEgKyBlLm1heFRyYW5zbGF0ZSgpIDwgLUQgJiYgKGEgPSBlLm1heFRyYW5zbGF0ZSgpIC0gRCksCiAgICAgICAgICAgIChDID0gZS5tYXhUcmFuc2xhdGUoKSksCiAgICAgICAgICAgIChtID0gITApLAogICAgICAgICAgICAoby5hbGxvd01vbWVudHVtQm91bmNlID0gITApKQogICAgICAgICAgOiAoYSA9IGUubWF4VHJhbnNsYXRlKCkpLAogICAgICAgICAgcy5sb29wICYmIHMuY2VudGVyZWRTbGlkZXMgJiYgKFAgPSAhMCk7CiAgICAgIGVsc2UgaWYgKGEgPiBlLm1pblRyYW5zbGF0ZSgpKQogICAgICAgIHMuZnJlZU1vZGUubW9tZW50dW1Cb3VuY2UKICAgICAgICAgID8gKGEgLSBlLm1pblRyYW5zbGF0ZSgpID4gRCAmJiAoYSA9IGUubWluVHJhbnNsYXRlKCkgKyBEKSwKICAgICAgICAgICAgKEMgPSBlLm1pblRyYW5zbGF0ZSgpKSwKICAgICAgICAgICAgKG0gPSAhMCksCiAgICAgICAgICAgIChvLmFsbG93TW9tZW50dW1Cb3VuY2UgPSAhMCkpCiAgICAgICAgICA6IChhID0gZS5taW5UcmFuc2xhdGUoKSksCiAgICAgICAgICBzLmxvb3AgJiYgcy5jZW50ZXJlZFNsaWRlcyAmJiAoUCA9ICEwKTsKICAgICAgZWxzZSBpZiAocy5mcmVlTW9kZS5zdGlja3kpIHsKICAgICAgICBsZXQgQTsKICAgICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IGQubGVuZ3RoOyB4ICs9IDEpCiAgICAgICAgICBpZiAoZFt4XSA+IC1hKSB7CiAgICAgICAgICAgIEEgPSB4OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICBNYXRoLmFicyhkW0FdIC0gYSkgPCBNYXRoLmFicyhkW0EgLSAxXSAtIGEpIHx8CiAgICAgICAgZS5zd2lwZURpcmVjdGlvbiA9PT0gIm5leHQiCiAgICAgICAgICA/IChhID0gZFtBXSkKICAgICAgICAgIDogKGEgPSBkW0EgLSAxXSksCiAgICAgICAgICAoYSA9IC1hKTsKICAgICAgfQogICAgICBpZiAoCiAgICAgICAgKFAgJiYKICAgICAgICAgIGcoInRyYW5zaXRpb25FbmQiLCAoKSA9PiB7CiAgICAgICAgICAgIGUubG9vcEZpeCgpOwogICAgICAgICAgfSksCiAgICAgICAgZS52ZWxvY2l0eSAhPT0gMCkKICAgICAgKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgKGkKICAgICAgICAgICAgPyAoYyA9IE1hdGguYWJzKCgtYSAtIGUudHJhbnNsYXRlKSAvIGUudmVsb2NpdHkpKQogICAgICAgICAgICA6IChjID0gTWF0aC5hYnMoKGEgLSBlLnRyYW5zbGF0ZSkgLyBlLnZlbG9jaXR5KSksCiAgICAgICAgICBzLmZyZWVNb2RlLnN0aWNreSkKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IEEgPSBNYXRoLmFicygoaSA/IC1hIDogYSkgLSBlLnRyYW5zbGF0ZSksCiAgICAgICAgICAgIHggPSBlLnNsaWRlc1NpemVzR3JpZFtlLmFjdGl2ZUluZGV4XTsKICAgICAgICAgIEEgPCB4CiAgICAgICAgICAgID8gKGMgPSBzLnNwZWVkKQogICAgICAgICAgICA6IEEgPCAyICogeAogICAgICAgICAgICA/IChjID0gcy5zcGVlZCAqIDEuNSkKICAgICAgICAgICAgOiAoYyA9IHMuc3BlZWQgKiAyLjUpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChzLmZyZWVNb2RlLnN0aWNreSkgewogICAgICAgIGUuc2xpZGVUb0Nsb3Nlc3QoKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgcy5mcmVlTW9kZS5tb21lbnR1bUJvdW5jZSAmJiBtCiAgICAgICAgPyAoZS51cGRhdGVQcm9ncmVzcyhDKSwKICAgICAgICAgIGUuc2V0VHJhbnNpdGlvbihjKSwKICAgICAgICAgIGUuc2V0VHJhbnNsYXRlKGEpLAogICAgICAgICAgZS50cmFuc2l0aW9uU3RhcnQoITAsIGUuc3dpcGVEaXJlY3Rpb24pLAogICAgICAgICAgKGUuYW5pbWF0aW5nID0gITApLAogICAgICAgICAgbGUodCwgKCkgPT4gewogICAgICAgICAgICAhZSB8fAogICAgICAgICAgICAgIGUuZGVzdHJveWVkIHx8CiAgICAgICAgICAgICAgIW8uYWxsb3dNb21lbnR1bUJvdW5jZSB8fAogICAgICAgICAgICAgICh1KCJtb21lbnR1bUJvdW5jZSIpLAogICAgICAgICAgICAgIGUuc2V0VHJhbnNpdGlvbihzLnNwZWVkKSwKICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgIGUuc2V0VHJhbnNsYXRlKEMpLAogICAgICAgICAgICAgICAgICBsZSh0LCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIWUgfHwgZS5kZXN0cm95ZWQgfHwgZS50cmFuc2l0aW9uRW5kKCk7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0sIDApKTsKICAgICAgICAgIH0pKQogICAgICAgIDogZS52ZWxvY2l0eQogICAgICAgID8gKHUoIl9mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlIiksCiAgICAgICAgICBlLnVwZGF0ZVByb2dyZXNzKGEpLAogICAgICAgICAgZS5zZXRUcmFuc2l0aW9uKGMpLAogICAgICAgICAgZS5zZXRUcmFuc2xhdGUoYSksCiAgICAgICAgICBlLnRyYW5zaXRpb25TdGFydCghMCwgZS5zd2lwZURpcmVjdGlvbiksCiAgICAgICAgICBlLmFuaW1hdGluZyB8fAogICAgICAgICAgICAoKGUuYW5pbWF0aW5nID0gITApLAogICAgICAgICAgICBsZSh0LCAoKSA9PiB7CiAgICAgICAgICAgICAgIWUgfHwgZS5kZXN0cm95ZWQgfHwgZS50cmFuc2l0aW9uRW5kKCk7CiAgICAgICAgICAgIH0pKSkKICAgICAgICA6IGUudXBkYXRlUHJvZ3Jlc3MoYSksCiAgICAgICAgZS51cGRhdGVBY3RpdmVJbmRleCgpLAogICAgICAgIGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpOwogICAgfSBlbHNlIGlmIChzLmZyZWVNb2RlLnN0aWNreSkgewogICAgICBlLnNsaWRlVG9DbG9zZXN0KCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBzLmZyZWVNb2RlICYmIHUoIl9mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlIik7CiAgICAoIXMuZnJlZU1vZGUubW9tZW50dW0gfHwgbCA+PSBzLmxvbmdTd2lwZXNNcykgJiYKICAgICAgKHUoIl9mcmVlTW9kZVN0YXRpY1JlbGVhc2UiKSwKICAgICAgZS51cGRhdGVQcm9ncmVzcygpLAogICAgICBlLnVwZGF0ZUFjdGl2ZUluZGV4KCksCiAgICAgIGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpKTsKICB9CiAgT2JqZWN0LmFzc2lnbihlLCB7CiAgICBmcmVlTW9kZTogeyBvblRvdWNoU3RhcnQ6IHcsIG9uVG91Y2hNb3ZlOiBiLCBvblRvdWNoRW5kOiBFIH0sCiAgfSk7Cn0KZnVuY3Rpb24gYXQoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZXh0ZW5kUGFyYW1zOiBoLCBvbjogdSB9ID0gTTsKICBoKHsgZ3JpZDogeyByb3dzOiAxLCBmaWxsOiAiY29sdW1uIiB9IH0pOwogIGxldCBnLCB3LCBiLCBFOwogIGNvbnN0IGYgPSAoKSA9PiB7CiAgICAgIGxldCBuID0gZS5wYXJhbXMuc3BhY2VCZXR3ZWVuOwogICAgICByZXR1cm4gKAogICAgICAgIHR5cGVvZiBuID09ICJzdHJpbmciICYmIG4uaW5kZXhPZigiJSIpID49IDAKICAgICAgICAgID8gKG4gPSAocGFyc2VGbG9hdChuLnJlcGxhY2UoIiUiLCAiIikpIC8gMTAwKSAqIGUuc2l6ZSkKICAgICAgICAgIDogdHlwZW9mIG4gPT0gInN0cmluZyIgJiYgKG4gPSBwYXJzZUZsb2F0KG4pKSwKICAgICAgICBuCiAgICAgICk7CiAgICB9LAogICAgcCA9IChuKSA9PiB7CiAgICAgIGNvbnN0IHsgc2xpZGVzUGVyVmlldzogbCB9ID0gZS5wYXJhbXMsCiAgICAgICAgeyByb3dzOiBjLCBmaWxsOiByIH0gPSBlLnBhcmFtcy5ncmlkLAogICAgICAgIGEgPQogICAgICAgICAgZS52aXJ0dWFsICYmIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZAogICAgICAgICAgICA/IGUudmlydHVhbC5zbGlkZXMubGVuZ3RoCiAgICAgICAgICAgIDogbi5sZW5ndGg7CiAgICAgIChiID0gTWF0aC5mbG9vcihhIC8gYykpLAogICAgICAgIE1hdGguZmxvb3IoYSAvIGMpID09PSBhIC8gYyA/IChnID0gYSkgOiAoZyA9IE1hdGguY2VpbChhIC8gYykgKiBjKSwKICAgICAgICBsICE9PSAiYXV0byIgJiYgciA9PT0gInJvdyIgJiYgKGcgPSBNYXRoLm1heChnLCBsICogYykpLAogICAgICAgICh3ID0gZyAvIGMpOwogICAgfSwKICAgIHMgPSAoKSA9PiB7CiAgICAgIGUuc2xpZGVzICYmCiAgICAgICAgZS5zbGlkZXMuZm9yRWFjaCgobikgPT4gewogICAgICAgICAgbi5zd2lwZXJTbGlkZUdyaWRTZXQgJiYKICAgICAgICAgICAgKChuLnN0eWxlLmhlaWdodCA9ICIiKSwKICAgICAgICAgICAgKG4uc3R5bGVbZS5nZXREaXJlY3Rpb25MYWJlbCgibWFyZ2luLXRvcCIpXSA9ICIiKSk7CiAgICAgICAgfSk7CiAgICB9LAogICAgdCA9IChuLCBsLCBjKSA9PiB7CiAgICAgIGNvbnN0IHsgc2xpZGVzUGVyR3JvdXA6IHIgfSA9IGUucGFyYW1zLAogICAgICAgIGEgPSBmKCksCiAgICAgICAgeyByb3dzOiBtLCBmaWxsOiBDIH0gPSBlLnBhcmFtcy5ncmlkLAogICAgICAgIEQgPQogICAgICAgICAgZS52aXJ0dWFsICYmIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZAogICAgICAgICAgICA/IGUudmlydHVhbC5zbGlkZXMubGVuZ3RoCiAgICAgICAgICAgIDogYy5sZW5ndGg7CiAgICAgIGxldCBQLCBBLCB4OwogICAgICBpZiAoQyA9PT0gInJvdyIgJiYgciA+IDEpIHsKICAgICAgICBjb25zdCBPID0gTWF0aC5mbG9vcihuIC8gKHIgKiBtKSksCiAgICAgICAgICBJID0gbiAtIG0gKiByICogTywKICAgICAgICAgIHogPSBPID09PSAwID8gciA6IE1hdGgubWluKE1hdGguY2VpbCgoRCAtIE8gKiBtICogcikgLyBtKSwgcik7CiAgICAgICAgKHggPSBNYXRoLmZsb29yKEkgLyB6KSksCiAgICAgICAgICAoQSA9IEkgLSB4ICogeiArIE8gKiByKSwKICAgICAgICAgIChQID0gQSArICh4ICogZykgLyBtKSwKICAgICAgICAgIChsLnN0eWxlLm9yZGVyID0gUCk7CiAgICAgIH0gZWxzZQogICAgICAgIEMgPT09ICJjb2x1bW4iCiAgICAgICAgICA/ICgoQSA9IE1hdGguZmxvb3IobiAvIG0pKSwKICAgICAgICAgICAgKHggPSBuIC0gQSAqIG0pLAogICAgICAgICAgICAoQSA+IGIgfHwgKEEgPT09IGIgJiYgeCA9PT0gbSAtIDEpKSAmJgogICAgICAgICAgICAgICgoeCArPSAxKSwgeCA+PSBtICYmICgoeCA9IDApLCAoQSArPSAxKSkpKQogICAgICAgICAgOiAoKHggPSBNYXRoLmZsb29yKG4gLyB3KSksIChBID0gbiAtIHggKiB3KSk7CiAgICAgIChsLnJvdyA9IHgpLAogICAgICAgIChsLmNvbHVtbiA9IEEpLAogICAgICAgIChsLnN0eWxlLmhlaWdodCA9IGBjYWxjKCgxMDAlIC0gJHsobSAtIDEpICogYX1weCkgLyAke219KWApLAogICAgICAgIChsLnN0eWxlW2UuZ2V0RGlyZWN0aW9uTGFiZWwoIm1hcmdpbi10b3AiKV0gPQogICAgICAgICAgeCAhPT0gMCA/IGEgJiYgYCR7YX1weGAgOiAiIiksCiAgICAgICAgKGwuc3dpcGVyU2xpZGVHcmlkU2V0ID0gITApOwogICAgfSwKICAgIGkgPSAobiwgbCkgPT4gewogICAgICBjb25zdCB7IGNlbnRlcmVkU2xpZGVzOiBjLCByb3VuZExlbmd0aHM6IHIgfSA9IGUucGFyYW1zLAogICAgICAgIGEgPSBmKCksCiAgICAgICAgeyByb3dzOiBtIH0gPSBlLnBhcmFtcy5ncmlkOwogICAgICBpZiAoCiAgICAgICAgKChlLnZpcnR1YWxTaXplID0gKG4gKyBhKSAqIGcpLAogICAgICAgIChlLnZpcnR1YWxTaXplID0gTWF0aC5jZWlsKGUudmlydHVhbFNpemUgLyBtKSAtIGEpLAogICAgICAgIGUucGFyYW1zLmNzc01vZGUgfHwKICAgICAgICAgIChlLndyYXBwZXJFbC5zdHlsZVtlLmdldERpcmVjdGlvbkxhYmVsKCJ3aWR0aCIpXSA9IGAkewogICAgICAgICAgICBlLnZpcnR1YWxTaXplICsgYQogICAgICAgICAgfXB4YCksCiAgICAgICAgYykKICAgICAgKSB7CiAgICAgICAgY29uc3QgQyA9IFtdOwogICAgICAgIGZvciAobGV0IEQgPSAwOyBEIDwgbC5sZW5ndGg7IEQgKz0gMSkgewogICAgICAgICAgbGV0IFAgPSBsW0RdOwogICAgICAgICAgciAmJiAoUCA9IE1hdGguZmxvb3IoUCkpLCBsW0RdIDwgZS52aXJ0dWFsU2l6ZSArIGxbMF0gJiYgQy5wdXNoKFApOwogICAgICAgIH0KICAgICAgICBsLnNwbGljZSgwLCBsLmxlbmd0aCksIGwucHVzaCguLi5DKTsKICAgICAgfQogICAgfSwKICAgIGQgPSAoKSA9PiB7CiAgICAgIEUgPSBlLnBhcmFtcy5ncmlkICYmIGUucGFyYW1zLmdyaWQucm93cyA+IDE7CiAgICB9LAogICAgbyA9ICgpID0+IHsKICAgICAgY29uc3QgeyBwYXJhbXM6IG4sIGVsOiBsIH0gPSBlLAogICAgICAgIGMgPSBuLmdyaWQgJiYgbi5ncmlkLnJvd3MgPiAxOwogICAgICBFICYmICFjCiAgICAgICAgPyAobC5jbGFzc0xpc3QucmVtb3ZlKAogICAgICAgICAgICBgJHtuLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9Z3JpZGAsCiAgICAgICAgICAgIGAke24uY29udGFpbmVyTW9kaWZpZXJDbGFzc31ncmlkLWNvbHVtbmAKICAgICAgICAgICksCiAgICAgICAgICAoYiA9IDEpLAogICAgICAgICAgZS5lbWl0Q29udGFpbmVyQ2xhc3NlcygpKQogICAgICAgIDogIUUgJiYKICAgICAgICAgIGMgJiYKICAgICAgICAgIChsLmNsYXNzTGlzdC5hZGQoYCR7bi5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWRgKSwKICAgICAgICAgIG4uZ3JpZC5maWxsID09PSAiY29sdW1uIiAmJgogICAgICAgICAgICBsLmNsYXNzTGlzdC5hZGQoYCR7bi5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWQtY29sdW1uYCksCiAgICAgICAgICBlLmVtaXRDb250YWluZXJDbGFzc2VzKCkpLAogICAgICAgIChFID0gYyk7CiAgICB9OwogIHUoImluaXQiLCBkKSwKICAgIHUoInVwZGF0ZSIsIG8pLAogICAgKGUuZ3JpZCA9IHsKICAgICAgaW5pdFNsaWRlczogcCwKICAgICAgdW5zZXRTbGlkZXM6IHMsCiAgICAgIHVwZGF0ZVNsaWRlOiB0LAogICAgICB1cGRhdGVXcmFwcGVyU2l6ZTogaSwKICAgIH0pOwp9CmZ1bmN0aW9uIHJ0KE0pIHsKICBjb25zdCBlID0gdGhpcywKICAgIHsgcGFyYW1zOiBoLCBzbGlkZXNFbDogdSB9ID0gZTsKICBoLmxvb3AgJiYgZS5sb29wRGVzdHJveSgpOwogIGNvbnN0IGcgPSAodykgPT4gewogICAgaWYgKHR5cGVvZiB3ID09ICJzdHJpbmciKSB7CiAgICAgIGNvbnN0IGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgKGIuaW5uZXJIVE1MID0gdyksIHUuYXBwZW5kKGIuY2hpbGRyZW5bMF0pLCAoYi5pbm5lckhUTUwgPSAiIik7CiAgICB9IGVsc2UgdS5hcHBlbmQodyk7CiAgfTsKICBpZiAodHlwZW9mIE0gPT0gIm9iamVjdCIgJiYgImxlbmd0aCIgaW4gTSkKICAgIGZvciAobGV0IHcgPSAwOyB3IDwgTS5sZW5ndGg7IHcgKz0gMSkgTVt3XSAmJiBnKE1bd10pOwogIGVsc2UgZyhNKTsKICBlLnJlY2FsY1NsaWRlcygpLAogICAgaC5sb29wICYmIGUubG9vcENyZWF0ZSgpLAogICAgKCFoLm9ic2VydmVyIHx8IGUuaXNFbGVtZW50KSAmJiBlLnVwZGF0ZSgpOwp9CmZ1bmN0aW9uIG50KE0pIHsKICBjb25zdCBlID0gdGhpcywKICAgIHsgcGFyYW1zOiBoLCBhY3RpdmVJbmRleDogdSwgc2xpZGVzRWw6IGcgfSA9IGU7CiAgaC5sb29wICYmIGUubG9vcERlc3Ryb3koKTsKICBsZXQgdyA9IHUgKyAxOwogIGNvbnN0IGIgPSAoRSkgPT4gewogICAgaWYgKHR5cGVvZiBFID09ICJzdHJpbmciKSB7CiAgICAgIGNvbnN0IGYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgKGYuaW5uZXJIVE1MID0gRSksIGcucHJlcGVuZChmLmNoaWxkcmVuWzBdKSwgKGYuaW5uZXJIVE1MID0gIiIpOwogICAgfSBlbHNlIGcucHJlcGVuZChFKTsKICB9OwogIGlmICh0eXBlb2YgTSA9PSAib2JqZWN0IiAmJiAibGVuZ3RoIiBpbiBNKSB7CiAgICBmb3IgKGxldCBFID0gMDsgRSA8IE0ubGVuZ3RoOyBFICs9IDEpIE1bRV0gJiYgYihNW0VdKTsKICAgIHcgPSB1ICsgTS5sZW5ndGg7CiAgfSBlbHNlIGIoTSk7CiAgZS5yZWNhbGNTbGlkZXMoKSwKICAgIGgubG9vcCAmJiBlLmxvb3BDcmVhdGUoKSwKICAgICghaC5vYnNlcnZlciB8fCBlLmlzRWxlbWVudCkgJiYgZS51cGRhdGUoKSwKICAgIGUuc2xpZGVUbyh3LCAwLCAhMSk7Cn0KZnVuY3Rpb24gbHQoTSwgZSkgewogIGNvbnN0IGggPSB0aGlzLAogICAgeyBwYXJhbXM6IHUsIGFjdGl2ZUluZGV4OiBnLCBzbGlkZXNFbDogdyB9ID0gaDsKICBsZXQgYiA9IGc7CiAgdS5sb29wICYmICgoYiAtPSBoLmxvb3BlZFNsaWRlcyksIGgubG9vcERlc3Ryb3koKSwgaC5yZWNhbGNTbGlkZXMoKSk7CiAgY29uc3QgRSA9IGguc2xpZGVzLmxlbmd0aDsKICBpZiAoTSA8PSAwKSB7CiAgICBoLnByZXBlbmRTbGlkZShlKTsKICAgIHJldHVybjsKICB9CiAgaWYgKE0gPj0gRSkgewogICAgaC5hcHBlbmRTbGlkZShlKTsKICAgIHJldHVybjsKICB9CiAgbGV0IGYgPSBiID4gTSA/IGIgKyAxIDogYjsKICBjb25zdCBwID0gW107CiAgZm9yIChsZXQgcyA9IEUgLSAxOyBzID49IE07IHMgLT0gMSkgewogICAgY29uc3QgdCA9IGguc2xpZGVzW3NdOwogICAgdC5yZW1vdmUoKSwgcC51bnNoaWZ0KHQpOwogIH0KICBpZiAodHlwZW9mIGUgPT0gIm9iamVjdCIgJiYgImxlbmd0aCIgaW4gZSkgewogICAgZm9yIChsZXQgcyA9IDA7IHMgPCBlLmxlbmd0aDsgcyArPSAxKSBlW3NdICYmIHcuYXBwZW5kKGVbc10pOwogICAgZiA9IGIgPiBNID8gYiArIGUubGVuZ3RoIDogYjsKICB9IGVsc2Ugdy5hcHBlbmQoZSk7CiAgZm9yIChsZXQgcyA9IDA7IHMgPCBwLmxlbmd0aDsgcyArPSAxKSB3LmFwcGVuZChwW3NdKTsKICBoLnJlY2FsY1NsaWRlcygpLAogICAgdS5sb29wICYmIGgubG9vcENyZWF0ZSgpLAogICAgKCF1Lm9ic2VydmVyIHx8IGguaXNFbGVtZW50KSAmJiBoLnVwZGF0ZSgpLAogICAgdS5sb29wID8gaC5zbGlkZVRvKGYgKyBoLmxvb3BlZFNsaWRlcywgMCwgITEpIDogaC5zbGlkZVRvKGYsIDAsICExKTsKfQpmdW5jdGlvbiBvdChNKSB7CiAgY29uc3QgZSA9IHRoaXMsCiAgICB7IHBhcmFtczogaCwgYWN0aXZlSW5kZXg6IHUgfSA9IGU7CiAgbGV0IGcgPSB1OwogIGgubG9vcCAmJiAoKGcgLT0gZS5sb29wZWRTbGlkZXMpLCBlLmxvb3BEZXN0cm95KCkpOwogIGxldCB3ID0gZywKICAgIGI7CiAgaWYgKHR5cGVvZiBNID09ICJvYmplY3QiICYmICJsZW5ndGgiIGluIE0pIHsKICAgIGZvciAobGV0IEUgPSAwOyBFIDwgTS5sZW5ndGg7IEUgKz0gMSkKICAgICAgKGIgPSBNW0VdKSwgZS5zbGlkZXNbYl0gJiYgZS5zbGlkZXNbYl0ucmVtb3ZlKCksIGIgPCB3ICYmICh3IC09IDEpOwogICAgdyA9IE1hdGgubWF4KHcsIDApOwogIH0gZWxzZQogICAgKGIgPSBNKSwKICAgICAgZS5zbGlkZXNbYl0gJiYgZS5zbGlkZXNbYl0ucmVtb3ZlKCksCiAgICAgIGIgPCB3ICYmICh3IC09IDEpLAogICAgICAodyA9IE1hdGgubWF4KHcsIDApKTsKICBlLnJlY2FsY1NsaWRlcygpLAogICAgaC5sb29wICYmIGUubG9vcENyZWF0ZSgpLAogICAgKCFoLm9ic2VydmVyIHx8IGUuaXNFbGVtZW50KSAmJiBlLnVwZGF0ZSgpLAogICAgaC5sb29wID8gZS5zbGlkZVRvKHcgKyBlLmxvb3BlZFNsaWRlcywgMCwgITEpIDogZS5zbGlkZVRvKHcsIDAsICExKTsKfQpmdW5jdGlvbiBwdCgpIHsKICBjb25zdCBNID0gdGhpcywKICAgIGUgPSBbXTsKICBmb3IgKGxldCBoID0gMDsgaCA8IE0uc2xpZGVzLmxlbmd0aDsgaCArPSAxKSBlLnB1c2goaCk7CiAgTS5yZW1vdmVTbGlkZShlKTsKfQpmdW5jdGlvbiBkdChNKSB7CiAgbGV0IHsgc3dpcGVyOiBlIH0gPSBNOwogIE9iamVjdC5hc3NpZ24oZSwgewogICAgYXBwZW5kU2xpZGU6IHJ0LmJpbmQoZSksCiAgICBwcmVwZW5kU2xpZGU6IG50LmJpbmQoZSksCiAgICBhZGRTbGlkZTogbHQuYmluZChlKSwKICAgIHJlbW92ZVNsaWRlOiBvdC5iaW5kKGUpLAogICAgcmVtb3ZlQWxsU2xpZGVzOiBwdC5iaW5kKGUpLAogIH0pOwp9CmZ1bmN0aW9uIGFlKE0pIHsKICBjb25zdCB7CiAgICBlZmZlY3Q6IGUsCiAgICBzd2lwZXI6IGgsCiAgICBvbjogdSwKICAgIHNldFRyYW5zbGF0ZTogZywKICAgIHNldFRyYW5zaXRpb246IHcsCiAgICBvdmVyd3JpdGVQYXJhbXM6IGIsCiAgICBwZXJzcGVjdGl2ZTogRSwKICAgIHJlY3JlYXRlU2hhZG93czogZiwKICAgIGdldEVmZmVjdFBhcmFtczogcCwKICB9ID0gTTsKICB1KCJiZWZvcmVJbml0IiwgKCkgPT4gewogICAgaWYgKGgucGFyYW1zLmVmZmVjdCAhPT0gZSkgcmV0dXJuOwogICAgaC5jbGFzc05hbWVzLnB1c2goYCR7aC5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc30ke2V9YCksCiAgICAgIEUgJiYgRSgpICYmIGguY2xhc3NOYW1lcy5wdXNoKGAke2gucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9M2RgKTsKICAgIGNvbnN0IHQgPSBiID8gYigpIDoge307CiAgICBPYmplY3QuYXNzaWduKGgucGFyYW1zLCB0KSwgT2JqZWN0LmFzc2lnbihoLm9yaWdpbmFsUGFyYW1zLCB0KTsKICB9KSwKICAgIHUoInNldFRyYW5zbGF0ZSIsICgpID0+IHsKICAgICAgaC5wYXJhbXMuZWZmZWN0ID09PSBlICYmIGcoKTsKICAgIH0pLAogICAgdSgic2V0VHJhbnNpdGlvbiIsICh0LCBpKSA9PiB7CiAgICAgIGgucGFyYW1zLmVmZmVjdCA9PT0gZSAmJiB3KGkpOwogICAgfSksCiAgICB1KCJ0cmFuc2l0aW9uRW5kIiwgKCkgPT4gewogICAgICBpZiAoaC5wYXJhbXMuZWZmZWN0ID09PSBlICYmIGYpIHsKICAgICAgICBpZiAoIXAgfHwgIXAoKS5zbGlkZVNoYWRvd3MpIHJldHVybjsKICAgICAgICBoLnNsaWRlcy5mb3JFYWNoKCh0KSA9PiB7CiAgICAgICAgICB0LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICIuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiCiAgICAgICAgICApLmZvckVhY2goKGkpID0+IGkucmVtb3ZlKCkpOwogICAgICAgIH0pLAogICAgICAgICAgZigpOwogICAgICB9CiAgICB9KTsKICBsZXQgczsKICB1KCJ2aXJ0dWFsVXBkYXRlIiwgKCkgPT4gewogICAgaC5wYXJhbXMuZWZmZWN0ID09PSBlICYmCiAgICAgIChoLnNsaWRlcy5sZW5ndGggfHwgKHMgPSAhMCksCiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgcyAmJiBoLnNsaWRlcyAmJiBoLnNsaWRlcy5sZW5ndGggJiYgKGcoKSwgKHMgPSAhMSkpOwogICAgICB9KSk7CiAgfSk7Cn0KZnVuY3Rpb24gb2UoTSwgZSkgewogIGNvbnN0IGggPSBlZShlKTsKICByZXR1cm4gKAogICAgaCAhPT0gZSAmJgogICAgICAoKGguc3R5bGUuYmFja2ZhY2VWaXNpYmlsaXR5ID0gImhpZGRlbiIpLAogICAgICAoaC5zdHlsZVsiLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5Il0gPSAiaGlkZGVuIikpLAogICAgaAogICk7Cn0KZnVuY3Rpb24gaGUoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZHVyYXRpb246IGgsIHRyYW5zZm9ybUVsZW1lbnRzOiB1LCBhbGxTbGlkZXM6IGcgfSA9IE07CiAgY29uc3QgeyBhY3RpdmVJbmRleDogdyB9ID0gZSwKICAgIGIgPSAoRSkgPT4KICAgICAgRS5wYXJlbnRFbGVtZW50CiAgICAgICAgPyBFLnBhcmVudEVsZW1lbnQKICAgICAgICA6IGUuc2xpZGVzLmZpbHRlcigKICAgICAgICAgICAgKHApID0+IHAuc2hhZG93Um9vdCAmJiBwLnNoYWRvd1Jvb3QgPT09IEUucGFyZW50Tm9kZQogICAgICAgICAgKVswXTsKICBpZiAoZS5wYXJhbXMudmlydHVhbFRyYW5zbGF0ZSAmJiBoICE9PSAwKSB7CiAgICBsZXQgRSA9ICExLAogICAgICBmOwogICAgZwogICAgICA/IChmID0gdSkKICAgICAgOiAoZiA9IHUuZmlsdGVyKChwKSA9PiB7CiAgICAgICAgICBjb25zdCBzID0gcC5jbGFzc0xpc3QuY29udGFpbnMoInN3aXBlci1zbGlkZS10cmFuc2Zvcm0iKSA/IGIocCkgOiBwOwogICAgICAgICAgcmV0dXJuIGUuZ2V0U2xpZGVJbmRleChzKSA9PT0gdzsKICAgICAgICB9KSksCiAgICAgIGYuZm9yRWFjaCgocCkgPT4gewogICAgICAgIGxlKHAsICgpID0+IHsKICAgICAgICAgIGlmIChFIHx8ICFlIHx8IGUuZGVzdHJveWVkKSByZXR1cm47CiAgICAgICAgICAoRSA9ICEwKSwgKGUuYW5pbWF0aW5nID0gITEpOwogICAgICAgICAgY29uc3QgcyA9IG5ldyB3aW5kb3cuQ3VzdG9tRXZlbnQoInRyYW5zaXRpb25lbmQiLCB7CiAgICAgICAgICAgIGJ1YmJsZXM6ICEwLAogICAgICAgICAgICBjYW5jZWxhYmxlOiAhMCwKICAgICAgICAgIH0pOwogICAgICAgICAgZS53cmFwcGVyRWwuZGlzcGF0Y2hFdmVudChzKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgfQp9CmZ1bmN0aW9uIGN0KE0pIHsKICBsZXQgeyBzd2lwZXI6IGUsIGV4dGVuZFBhcmFtczogaCwgb246IHUgfSA9IE07CiAgaCh7IGZhZGVFZmZlY3Q6IHsgY3Jvc3NGYWRlOiAhMSB9IH0pLAogICAgYWUoewogICAgICBlZmZlY3Q6ICJmYWRlIiwKICAgICAgc3dpcGVyOiBlLAogICAgICBvbjogdSwKICAgICAgc2V0VHJhbnNsYXRlOiAoKSA9PiB7CiAgICAgICAgY29uc3QgeyBzbGlkZXM6IGIgfSA9IGUsCiAgICAgICAgICBFID0gZS5wYXJhbXMuZmFkZUVmZmVjdDsKICAgICAgICBmb3IgKGxldCBmID0gMDsgZiA8IGIubGVuZ3RoOyBmICs9IDEpIHsKICAgICAgICAgIGNvbnN0IHAgPSBlLnNsaWRlc1tmXTsKICAgICAgICAgIGxldCB0ID0gLXAuc3dpcGVyU2xpZGVPZmZzZXQ7CiAgICAgICAgICBlLnBhcmFtcy52aXJ0dWFsVHJhbnNsYXRlIHx8ICh0IC09IGUudHJhbnNsYXRlKTsKICAgICAgICAgIGxldCBpID0gMDsKICAgICAgICAgIGUuaXNIb3Jpem9udGFsKCkgfHwgKChpID0gdCksICh0ID0gMCkpOwogICAgICAgICAgY29uc3QgZCA9IGUucGFyYW1zLmZhZGVFZmZlY3QuY3Jvc3NGYWRlCiAgICAgICAgICAgICAgPyBNYXRoLm1heCgxIC0gTWF0aC5hYnMocC5wcm9ncmVzcyksIDApCiAgICAgICAgICAgICAgOiAxICsgTWF0aC5taW4oTWF0aC5tYXgocC5wcm9ncmVzcywgLTEpLCAwKSwKICAgICAgICAgICAgbyA9IG9lKEUsIHApOwogICAgICAgICAgKG8uc3R5bGUub3BhY2l0eSA9IGQpLAogICAgICAgICAgICAoby5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHt0fXB4LCAke2l9cHgsIDBweClgKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHNldFRyYW5zaXRpb246IChiKSA9PiB7CiAgICAgICAgY29uc3QgRSA9IGUuc2xpZGVzLm1hcCgoZikgPT4gZWUoZikpOwogICAgICAgIEUuZm9yRWFjaCgoZikgPT4gewogICAgICAgICAgZi5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtifW1zYDsKICAgICAgICB9KSwKICAgICAgICAgIGhlKHsgc3dpcGVyOiBlLCBkdXJhdGlvbjogYiwgdHJhbnNmb3JtRWxlbWVudHM6IEUsIGFsbFNsaWRlczogITAgfSk7CiAgICAgIH0sCiAgICAgIG92ZXJ3cml0ZVBhcmFtczogKCkgPT4gKHsKICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLAogICAgICAgIHNsaWRlc1Blckdyb3VwOiAxLAogICAgICAgIHdhdGNoU2xpZGVzUHJvZ3Jlc3M6ICEwLAogICAgICAgIHNwYWNlQmV0d2VlbjogMCwKICAgICAgICB2aXJ0dWFsVHJhbnNsYXRlOiAhZS5wYXJhbXMuY3NzTW9kZSwKICAgICAgfSksCiAgICB9KTsKfQpmdW5jdGlvbiBmdChNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIG9uOiB1IH0gPSBNOwogIGgoewogICAgY3ViZUVmZmVjdDogewogICAgICBzbGlkZVNoYWRvd3M6ICEwLAogICAgICBzaGFkb3c6ICEwLAogICAgICBzaGFkb3dPZmZzZXQ6IDIwLAogICAgICBzaGFkb3dTY2FsZTogMC45NCwKICAgIH0sCiAgfSk7CiAgY29uc3QgZyA9IChmLCBwLCBzKSA9PiB7CiAgICBsZXQgdCA9IHMKICAgICAgICA/IGYucXVlcnlTZWxlY3RvcigiLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCIpCiAgICAgICAgOiBmLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLAogICAgICBpID0gcwogICAgICAgID8gZi5xdWVyeVNlbGVjdG9yKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCIpCiAgICAgICAgOiBmLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSIpOwogICAgdCB8fAogICAgICAoKHQgPSBHKAogICAgICAgICJkaXYiLAogICAgICAgIGBzd2lwZXItc2xpZGUtc2hhZG93LWN1YmUgc3dpcGVyLXNsaWRlLXNoYWRvdy0kewogICAgICAgICAgcyA/ICJsZWZ0IiA6ICJ0b3AiCiAgICAgICAgfWAuc3BsaXQoIiAiKQogICAgICApKSwKICAgICAgZi5hcHBlbmQodCkpLAogICAgICBpIHx8CiAgICAgICAgKChpID0gRygKICAgICAgICAgICJkaXYiLAogICAgICAgICAgYHN3aXBlci1zbGlkZS1zaGFkb3ctY3ViZSBzd2lwZXItc2xpZGUtc2hhZG93LSR7CiAgICAgICAgICAgIHMgPyAicmlnaHQiIDogImJvdHRvbSIKICAgICAgICAgIH1gLnNwbGl0KCIgIikKICAgICAgICApKSwKICAgICAgICBmLmFwcGVuZChpKSksCiAgICAgIHQgJiYgKHQuc3R5bGUub3BhY2l0eSA9IE1hdGgubWF4KC1wLCAwKSksCiAgICAgIGkgJiYgKGkuc3R5bGUub3BhY2l0eSA9IE1hdGgubWF4KHAsIDApKTsKICB9OwogIGFlKHsKICAgIGVmZmVjdDogImN1YmUiLAogICAgc3dpcGVyOiBlLAogICAgb246IHUsCiAgICBzZXRUcmFuc2xhdGU6ICgpID0+IHsKICAgICAgY29uc3QgewogICAgICAgICAgZWw6IGYsCiAgICAgICAgICB3cmFwcGVyRWw6IHAsCiAgICAgICAgICBzbGlkZXM6IHMsCiAgICAgICAgICB3aWR0aDogdCwKICAgICAgICAgIGhlaWdodDogaSwKICAgICAgICAgIHJ0bFRyYW5zbGF0ZTogZCwKICAgICAgICAgIHNpemU6IG8sCiAgICAgICAgICBicm93c2VyOiBuLAogICAgICAgIH0gPSBlLAogICAgICAgIGwgPSBtZShlKSwKICAgICAgICBjID0gZS5wYXJhbXMuY3ViZUVmZmVjdCwKICAgICAgICByID0gZS5pc0hvcml6b250YWwoKSwKICAgICAgICBhID0gZS52aXJ0dWFsICYmIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZDsKICAgICAgbGV0IG0gPSAwLAogICAgICAgIEM7CiAgICAgIGMuc2hhZG93ICYmCiAgICAgICAgKHIKICAgICAgICAgID8gKChDID0gZS53cmFwcGVyRWwucXVlcnlTZWxlY3RvcigiLnN3aXBlci1jdWJlLXNoYWRvdyIpKSwKICAgICAgICAgICAgQyB8fCAoKEMgPSBHKCJkaXYiLCAic3dpcGVyLWN1YmUtc2hhZG93IikpLCBlLndyYXBwZXJFbC5hcHBlbmQoQykpLAogICAgICAgICAgICAoQy5zdHlsZS5oZWlnaHQgPSBgJHt0fXB4YCkpCiAgICAgICAgICA6ICgoQyA9IGYucXVlcnlTZWxlY3RvcigiLnN3aXBlci1jdWJlLXNoYWRvdyIpKSwKICAgICAgICAgICAgQyB8fCAoKEMgPSBHKCJkaXYiLCAic3dpcGVyLWN1YmUtc2hhZG93IikpLCBmLmFwcGVuZChDKSkpKTsKICAgICAgZm9yIChsZXQgUCA9IDA7IFAgPCBzLmxlbmd0aDsgUCArPSAxKSB7CiAgICAgICAgY29uc3QgQSA9IHNbUF07CiAgICAgICAgbGV0IHggPSBQOwogICAgICAgIGEgJiYgKHggPSBwYXJzZUludChBLmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSwgMTApKTsKICAgICAgICBsZXQgTyA9IHggKiA5MCwKICAgICAgICAgIEkgPSBNYXRoLmZsb29yKE8gLyAzNjApOwogICAgICAgIGQgJiYgKChPID0gLU8pLCAoSSA9IE1hdGguZmxvb3IoLU8gLyAzNjApKSk7CiAgICAgICAgY29uc3QgeiA9IE1hdGgubWF4KE1hdGgubWluKEEucHJvZ3Jlc3MsIDEpLCAtMSk7CiAgICAgICAgbGV0IFQgPSAwLAogICAgICAgICAgUyA9IDAsCiAgICAgICAgICBMID0gMDsKICAgICAgICB4ICUgNCA9PT0gMAogICAgICAgICAgPyAoKFQgPSAtSSAqIDQgKiBvKSwgKEwgPSAwKSkKICAgICAgICAgIDogKHggLSAxKSAlIDQgPT09IDAKICAgICAgICAgID8gKChUID0gMCksIChMID0gLUkgKiA0ICogbykpCiAgICAgICAgICA6ICh4IC0gMikgJSA0ID09PSAwCiAgICAgICAgICA/ICgoVCA9IG8gKyBJICogNCAqIG8pLCAoTCA9IG8pKQogICAgICAgICAgOiAoeCAtIDMpICUgNCA9PT0gMCAmJiAoKFQgPSAtbyksIChMID0gMyAqIG8gKyBvICogNCAqIEkpKSwKICAgICAgICAgIGQgJiYgKFQgPSAtVCksCiAgICAgICAgICByIHx8ICgoUyA9IFQpLCAoVCA9IDApKTsKICAgICAgICBjb25zdCBZID0gYHJvdGF0ZVgoJHtsKHIgPyAwIDogLU8pfWRlZykgcm90YXRlWSgke2woCiAgICAgICAgICByID8gTyA6IDAKICAgICAgICApfWRlZykgdHJhbnNsYXRlM2QoJHtUfXB4LCAke1N9cHgsICR7TH1weClgOwogICAgICAgIHogPD0gMSAmJgogICAgICAgICAgeiA+IC0xICYmCiAgICAgICAgICAoKG0gPSB4ICogOTAgKyB6ICogOTApLCBkICYmIChtID0gLXggKiA5MCAtIHogKiA5MCkpLAogICAgICAgICAgKEEuc3R5bGUudHJhbnNmb3JtID0gWSksCiAgICAgICAgICBjLnNsaWRlU2hhZG93cyAmJiBnKEEsIHosIHIpOwogICAgICB9CiAgICAgIGlmICgKICAgICAgICAoKHAuc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gYDUwJSA1MCUgLSR7byAvIDJ9cHhgKSwKICAgICAgICAocC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luIl0gPSBgNTAlIDUwJSAtJHtvIC8gMn1weGApLAogICAgICAgIGMuc2hhZG93KQogICAgICApCiAgICAgICAgaWYgKHIpCiAgICAgICAgICBDLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwcHgsICR7dCAvIDIgKyBjLnNoYWRvd09mZnNldH1weCwgJHsKICAgICAgICAgICAgLXQgLyAyCiAgICAgICAgICB9cHgpIHJvdGF0ZVgoODkuOTlkZWcpIHJvdGF0ZVooMGRlZykgc2NhbGUoJHtjLnNoYWRvd1NjYWxlfSlgOwogICAgICAgIGVsc2UgewogICAgICAgICAgY29uc3QgUCA9IE1hdGguYWJzKG0pIC0gTWF0aC5mbG9vcihNYXRoLmFicyhtKSAvIDkwKSAqIDkwLAogICAgICAgICAgICBBID0KICAgICAgICAgICAgICAxLjUgLQogICAgICAgICAgICAgIChNYXRoLnNpbigoUCAqIDIgKiBNYXRoLlBJKSAvIDM2MCkgLyAyICsKICAgICAgICAgICAgICAgIE1hdGguY29zKChQICogMiAqIE1hdGguUEkpIC8gMzYwKSAvIDIpLAogICAgICAgICAgICB4ID0gYy5zaGFkb3dTY2FsZSwKICAgICAgICAgICAgTyA9IGMuc2hhZG93U2NhbGUgLyBBLAogICAgICAgICAgICBJID0gYy5zaGFkb3dPZmZzZXQ7CiAgICAgICAgICBDLnN0eWxlLnRyYW5zZm9ybSA9IGBzY2FsZTNkKCR7eH0sIDEsICR7T30pIHRyYW5zbGF0ZTNkKDBweCwgJHsKICAgICAgICAgICAgaSAvIDIgKyBJCiAgICAgICAgICB9cHgsICR7LWkgLyAyIC8gT31weCkgcm90YXRlWCgtODkuOTlkZWcpYDsKICAgICAgICB9CiAgICAgIGNvbnN0IEQgPQogICAgICAgIChuLmlzU2FmYXJpIHx8IG4uaXNXZWJWaWV3KSAmJiBuLm5lZWRQZXJzcGVjdGl2ZUZpeCA/IC1vIC8gMiA6IDA7CiAgICAgIChwLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwcHgsMCwke0R9cHgpIHJvdGF0ZVgoJHtsKAogICAgICAgIGUuaXNIb3Jpem9udGFsKCkgPyAwIDogbQogICAgICApfWRlZykgcm90YXRlWSgke2woZS5pc0hvcml6b250YWwoKSA/IC1tIDogMCl9ZGVnKWApLAogICAgICAgIHAuc3R5bGUuc2V0UHJvcGVydHkoIi0tc3dpcGVyLWN1YmUtdHJhbnNsYXRlLXoiLCBgJHtEfXB4YCk7CiAgICB9LAogICAgc2V0VHJhbnNpdGlvbjogKGYpID0+IHsKICAgICAgY29uc3QgeyBlbDogcCwgc2xpZGVzOiBzIH0gPSBlOwogICAgICBpZiAoCiAgICAgICAgKHMuZm9yRWFjaCgodCkgPT4gewogICAgICAgICAgKHQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7Zn1tc2ApLAogICAgICAgICAgICB0CiAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAiLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IgogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAuZm9yRWFjaCgoaSkgPT4gewogICAgICAgICAgICAgICAgaS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtmfW1zYDsKICAgICAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICBlLnBhcmFtcy5jdWJlRWZmZWN0LnNoYWRvdyAmJiAhZS5pc0hvcml6b250YWwoKSkKICAgICAgKSB7CiAgICAgICAgY29uc3QgdCA9IHAucXVlcnlTZWxlY3RvcigiLnN3aXBlci1jdWJlLXNoYWRvdyIpOwogICAgICAgIHQgJiYgKHQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7Zn1tc2ApOwogICAgICB9CiAgICB9LAogICAgcmVjcmVhdGVTaGFkb3dzOiAoKSA9PiB7CiAgICAgIGNvbnN0IGYgPSBlLmlzSG9yaXpvbnRhbCgpOwogICAgICBlLnNsaWRlcy5mb3JFYWNoKChwKSA9PiB7CiAgICAgICAgY29uc3QgcyA9IE1hdGgubWF4KE1hdGgubWluKHAucHJvZ3Jlc3MsIDEpLCAtMSk7CiAgICAgICAgZyhwLCBzLCBmKTsKICAgICAgfSk7CiAgICB9LAogICAgZ2V0RWZmZWN0UGFyYW1zOiAoKSA9PiBlLnBhcmFtcy5jdWJlRWZmZWN0LAogICAgcGVyc3BlY3RpdmU6ICgpID0+ICEwLAogICAgb3ZlcndyaXRlUGFyYW1zOiAoKSA9PiAoewogICAgICBzbGlkZXNQZXJWaWV3OiAxLAogICAgICBzbGlkZXNQZXJHcm91cDogMSwKICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogITAsCiAgICAgIHJlc2lzdGFuY2VSYXRpbzogMCwKICAgICAgc3BhY2VCZXR3ZWVuOiAwLAogICAgICBjZW50ZXJlZFNsaWRlczogITEsCiAgICAgIHZpcnR1YWxUcmFuc2xhdGU6ICEwLAogICAgfSksCiAgfSk7Cn0KZnVuY3Rpb24gc2UoTSwgZSwgaCkgewogIGNvbnN0IHUgPSBgc3dpcGVyLXNsaWRlLXNoYWRvdyR7aCA/IGAtJHtofWAgOiAiIn0kewogICAgICBNID8gYCBzd2lwZXItc2xpZGUtc2hhZG93LSR7TX1gIDogIiIKICAgIH1gLAogICAgZyA9IGVlKGUpOwogIGxldCB3ID0gZy5xdWVyeVNlbGVjdG9yKGAuJHt1LnNwbGl0KCIgIikuam9pbigiLiIpfWApOwogIHJldHVybiB3IHx8ICgodyA9IEcoImRpdiIsIHUuc3BsaXQoIiAiKSkpLCBnLmFwcGVuZCh3KSksIHc7Cn0KZnVuY3Rpb24gdXQoTSkgewogIGxldCB7IHN3aXBlcjogZSwgZXh0ZW5kUGFyYW1zOiBoLCBvbjogdSB9ID0gTTsKICBoKHsgZmxpcEVmZmVjdDogeyBzbGlkZVNoYWRvd3M6ICEwLCBsaW1pdFJvdGF0aW9uOiAhMCB9IH0pOwogIGNvbnN0IGcgPSAoZiwgcCkgPT4gewogICAgbGV0IHMgPSBlLmlzSG9yaXpvbnRhbCgpCiAgICAgICAgPyBmLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKQogICAgICAgIDogZi5xdWVyeVNlbGVjdG9yKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AiKSwKICAgICAgdCA9IGUuaXNIb3Jpem9udGFsKCkKICAgICAgICA/IGYucXVlcnlTZWxlY3RvcigiLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQiKQogICAgICAgIDogZi5xdWVyeVNlbGVjdG9yKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20iKTsKICAgIHMgfHwgKHMgPSBzZSgiZmxpcCIsIGYsIGUuaXNIb3Jpem9udGFsKCkgPyAibGVmdCIgOiAidG9wIikpLAogICAgICB0IHx8ICh0ID0gc2UoImZsaXAiLCBmLCBlLmlzSG9yaXpvbnRhbCgpID8gInJpZ2h0IiA6ICJib3R0b20iKSksCiAgICAgIHMgJiYgKHMuc3R5bGUub3BhY2l0eSA9IE1hdGgubWF4KC1wLCAwKSksCiAgICAgIHQgJiYgKHQuc3R5bGUub3BhY2l0eSA9IE1hdGgubWF4KHAsIDApKTsKICB9OwogIGFlKHsKICAgIGVmZmVjdDogImZsaXAiLAogICAgc3dpcGVyOiBlLAogICAgb246IHUsCiAgICBzZXRUcmFuc2xhdGU6ICgpID0+IHsKICAgICAgY29uc3QgeyBzbGlkZXM6IGYsIHJ0bFRyYW5zbGF0ZTogcCB9ID0gZSwKICAgICAgICBzID0gZS5wYXJhbXMuZmxpcEVmZmVjdCwKICAgICAgICB0ID0gbWUoZSk7CiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZi5sZW5ndGg7IGkgKz0gMSkgewogICAgICAgIGNvbnN0IGQgPSBmW2ldOwogICAgICAgIGxldCBvID0gZC5wcm9ncmVzczsKICAgICAgICBlLnBhcmFtcy5mbGlwRWZmZWN0LmxpbWl0Um90YXRpb24gJiYKICAgICAgICAgIChvID0gTWF0aC5tYXgoTWF0aC5taW4oZC5wcm9ncmVzcywgMSksIC0xKSk7CiAgICAgICAgY29uc3QgbiA9IGQuc3dpcGVyU2xpZGVPZmZzZXQ7CiAgICAgICAgbGV0IGMgPSAtMTgwICogbywKICAgICAgICAgIHIgPSAwLAogICAgICAgICAgYSA9IGUucGFyYW1zLmNzc01vZGUgPyAtbiAtIGUudHJhbnNsYXRlIDogLW4sCiAgICAgICAgICBtID0gMDsKICAgICAgICBlLmlzSG9yaXpvbnRhbCgpCiAgICAgICAgICA/IHAgJiYgKGMgPSAtYykKICAgICAgICAgIDogKChtID0gYSksIChhID0gMCksIChyID0gLWMpLCAoYyA9IDApKSwKICAgICAgICAgIChkLnN0eWxlLnpJbmRleCA9IC1NYXRoLmFicyhNYXRoLnJvdW5kKG8pKSArIGYubGVuZ3RoKSwKICAgICAgICAgIHMuc2xpZGVTaGFkb3dzICYmIGcoZCwgbyk7CiAgICAgICAgY29uc3QgQyA9IGB0cmFuc2xhdGUzZCgke2F9cHgsICR7bX1weCwgMHB4KSByb3RhdGVYKCR7dCgKICAgICAgICAgICAgcgogICAgICAgICAgKX1kZWcpIHJvdGF0ZVkoJHt0KGMpfWRlZylgLAogICAgICAgICAgRCA9IG9lKHMsIGQpOwogICAgICAgIEQuc3R5bGUudHJhbnNmb3JtID0gQzsKICAgICAgfQogICAgfSwKICAgIHNldFRyYW5zaXRpb246IChmKSA9PiB7CiAgICAgIGNvbnN0IHAgPSBlLnNsaWRlcy5tYXAoKHMpID0+IGVlKHMpKTsKICAgICAgcC5mb3JFYWNoKChzKSA9PiB7CiAgICAgICAgKHMuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7Zn1tc2ApLAogICAgICAgICAgcwogICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgKICAgICAgICAgICAgICAiLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IgogICAgICAgICAgICApCiAgICAgICAgICAgIC5mb3JFYWNoKCh0KSA9PiB7CiAgICAgICAgICAgICAgdC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtmfW1zYDsKICAgICAgICAgICAgfSk7CiAgICAgIH0pLAogICAgICAgIGhlKHsgc3dpcGVyOiBlLCBkdXJhdGlvbjogZiwgdHJhbnNmb3JtRWxlbWVudHM6IHAgfSk7CiAgICB9LAogICAgcmVjcmVhdGVTaGFkb3dzOiAoKSA9PiB7CiAgICAgIGUucGFyYW1zLmZsaXBFZmZlY3QsCiAgICAgICAgZS5zbGlkZXMuZm9yRWFjaCgoZikgPT4gewogICAgICAgICAgbGV0IHAgPSBmLnByb2dyZXNzOwogICAgICAgICAgZS5wYXJhbXMuZmxpcEVmZmVjdC5saW1pdFJvdGF0aW9uICYmCiAgICAgICAgICAgIChwID0gTWF0aC5tYXgoTWF0aC5taW4oZi5wcm9ncmVzcywgMSksIC0xKSksCiAgICAgICAgICAgIGcoZiwgcCk7CiAgICAgICAgfSk7CiAgICB9LAogICAgZ2V0RWZmZWN0UGFyYW1zOiAoKSA9PiBlLnBhcmFtcy5mbGlwRWZmZWN0LAogICAgcGVyc3BlY3RpdmU6ICgpID0+ICEwLAogICAgb3ZlcndyaXRlUGFyYW1zOiAoKSA9PiAoewogICAgICBzbGlkZXNQZXJWaWV3OiAxLAogICAgICBzbGlkZXNQZXJHcm91cDogMSwKICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogITAsCiAgICAgIHNwYWNlQmV0d2VlbjogMCwKICAgICAgdmlydHVhbFRyYW5zbGF0ZTogIWUucGFyYW1zLmNzc01vZGUsCiAgICB9KSwKICB9KTsKfQpmdW5jdGlvbiBtdChNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIG9uOiB1IH0gPSBNOwogIGgoewogICAgY292ZXJmbG93RWZmZWN0OiB7CiAgICAgIHJvdGF0ZTogNTAsCiAgICAgIHN0cmV0Y2g6IDAsCiAgICAgIGRlcHRoOiAxMDAsCiAgICAgIHNjYWxlOiAxLAogICAgICBtb2RpZmllcjogMSwKICAgICAgc2xpZGVTaGFkb3dzOiAhMCwKICAgIH0sCiAgfSksCiAgICBhZSh7CiAgICAgIGVmZmVjdDogImNvdmVyZmxvdyIsCiAgICAgIHN3aXBlcjogZSwKICAgICAgb246IHUsCiAgICAgIHNldFRyYW5zbGF0ZTogKCkgPT4gewogICAgICAgIGNvbnN0IHsgd2lkdGg6IGIsIGhlaWdodDogRSwgc2xpZGVzOiBmLCBzbGlkZXNTaXplc0dyaWQ6IHAgfSA9IGUsCiAgICAgICAgICBzID0gZS5wYXJhbXMuY292ZXJmbG93RWZmZWN0LAogICAgICAgICAgdCA9IGUuaXNIb3Jpem9udGFsKCksCiAgICAgICAgICBpID0gZS50cmFuc2xhdGUsCiAgICAgICAgICBkID0gdCA/IC1pICsgYiAvIDIgOiAtaSArIEUgLyAyLAogICAgICAgICAgbyA9IHQgPyBzLnJvdGF0ZSA6IC1zLnJvdGF0ZSwKICAgICAgICAgIG4gPSBzLmRlcHRoLAogICAgICAgICAgbCA9IG1lKGUpOwogICAgICAgIGZvciAobGV0IGMgPSAwLCByID0gZi5sZW5ndGg7IGMgPCByOyBjICs9IDEpIHsKICAgICAgICAgIGNvbnN0IGEgPSBmW2NdLAogICAgICAgICAgICBtID0gcFtjXSwKICAgICAgICAgICAgQyA9IGEuc3dpcGVyU2xpZGVPZmZzZXQsCiAgICAgICAgICAgIEQgPSAoZCAtIEMgLSBtIC8gMikgLyBtLAogICAgICAgICAgICBQID0KICAgICAgICAgICAgICB0eXBlb2Ygcy5tb2RpZmllciA9PSAiZnVuY3Rpb24iID8gcy5tb2RpZmllcihEKSA6IEQgKiBzLm1vZGlmaWVyOwogICAgICAgICAgbGV0IEEgPSB0ID8gbyAqIFAgOiAwLAogICAgICAgICAgICB4ID0gdCA/IDAgOiBvICogUCwKICAgICAgICAgICAgTyA9IC1uICogTWF0aC5hYnMoUCksCiAgICAgICAgICAgIEkgPSBzLnN0cmV0Y2g7CiAgICAgICAgICB0eXBlb2YgSSA9PSAic3RyaW5nIiAmJgogICAgICAgICAgICBJLmluZGV4T2YoIiUiKSAhPT0gLTEgJiYKICAgICAgICAgICAgKEkgPSAocGFyc2VGbG9hdChzLnN0cmV0Y2gpIC8gMTAwKSAqIG0pOwogICAgICAgICAgbGV0IHogPSB0ID8gMCA6IEkgKiBQLAogICAgICAgICAgICBUID0gdCA/IEkgKiBQIDogMCwKICAgICAgICAgICAgUyA9IDEgLSAoMSAtIHMuc2NhbGUpICogTWF0aC5hYnMoUCk7CiAgICAgICAgICBNYXRoLmFicyhUKSA8IDAuMDAxICYmIChUID0gMCksCiAgICAgICAgICAgIE1hdGguYWJzKHopIDwgMC4wMDEgJiYgKHogPSAwKSwKICAgICAgICAgICAgTWF0aC5hYnMoTykgPCAwLjAwMSAmJiAoTyA9IDApLAogICAgICAgICAgICBNYXRoLmFicyhBKSA8IDAuMDAxICYmIChBID0gMCksCiAgICAgICAgICAgIE1hdGguYWJzKHgpIDwgMC4wMDEgJiYgKHggPSAwKSwKICAgICAgICAgICAgTWF0aC5hYnMoUykgPCAwLjAwMSAmJiAoUyA9IDApOwogICAgICAgICAgY29uc3QgTCA9IGB0cmFuc2xhdGUzZCgke1R9cHgsJHt6fXB4LCR7T31weCkgIHJvdGF0ZVgoJHtsKAogICAgICAgICAgICAgIHgKICAgICAgICAgICAgKX1kZWcpIHJvdGF0ZVkoJHtsKEEpfWRlZykgc2NhbGUoJHtTfSlgLAogICAgICAgICAgICBZID0gb2UocywgYSk7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICgoWS5zdHlsZS50cmFuc2Zvcm0gPSBMKSwKICAgICAgICAgICAgKGEuc3R5bGUuekluZGV4ID0gLU1hdGguYWJzKE1hdGgucm91bmQoUCkpICsgMSksCiAgICAgICAgICAgIHMuc2xpZGVTaGFkb3dzKQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGxldCB2ID0gdAogICAgICAgICAgICAgICAgPyBhLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKQogICAgICAgICAgICAgICAgOiBhLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLAogICAgICAgICAgICAgIHkgPSB0CiAgICAgICAgICAgICAgICA/IGEucXVlcnlTZWxlY3RvcigiLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQiKQogICAgICAgICAgICAgICAgOiBhLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSIpOwogICAgICAgICAgICB2IHx8ICh2ID0gc2UoImNvdmVyZmxvdyIsIGEsIHQgPyAibGVmdCIgOiAidG9wIikpLAogICAgICAgICAgICAgIHkgfHwgKHkgPSBzZSgiY292ZXJmbG93IiwgYSwgdCA/ICJyaWdodCIgOiAiYm90dG9tIikpLAogICAgICAgICAgICAgIHYgJiYgKHYuc3R5bGUub3BhY2l0eSA9IFAgPiAwID8gUCA6IDApLAogICAgICAgICAgICAgIHkgJiYgKHkuc3R5bGUub3BhY2l0eSA9IC1QID4gMCA/IC1QIDogMCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICBzZXRUcmFuc2l0aW9uOiAoYikgPT4gewogICAgICAgIGUuc2xpZGVzCiAgICAgICAgICAubWFwKChmKSA9PiBlZShmKSkKICAgICAgICAgIC5mb3JFYWNoKChmKSA9PiB7CiAgICAgICAgICAgIChmLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGAke2J9bXNgKSwKICAgICAgICAgICAgICBmCiAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgKICAgICAgICAgICAgICAgICAgIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCIKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiB7CiAgICAgICAgICAgICAgICAgIHAuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7Yn1tc2A7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICB9LAogICAgICBwZXJzcGVjdGl2ZTogKCkgPT4gITAsCiAgICAgIG92ZXJ3cml0ZVBhcmFtczogKCkgPT4gKHsgd2F0Y2hTbGlkZXNQcm9ncmVzczogITAgfSksCiAgICB9KTsKfQpmdW5jdGlvbiBodChNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIG9uOiB1IH0gPSBNOwogIGgoewogICAgY3JlYXRpdmVFZmZlY3Q6IHsKICAgICAgbGltaXRQcm9ncmVzczogMSwKICAgICAgc2hhZG93UGVyUHJvZ3Jlc3M6ICExLAogICAgICBwcm9ncmVzc011bHRpcGxpZXI6IDEsCiAgICAgIHBlcnNwZWN0aXZlOiAhMCwKICAgICAgcHJldjogeyB0cmFuc2xhdGU6IFswLCAwLCAwXSwgcm90YXRlOiBbMCwgMCwgMF0sIG9wYWNpdHk6IDEsIHNjYWxlOiAxIH0sCiAgICAgIG5leHQ6IHsgdHJhbnNsYXRlOiBbMCwgMCwgMF0sIHJvdGF0ZTogWzAsIDAsIDBdLCBvcGFjaXR5OiAxLCBzY2FsZTogMSB9LAogICAgfSwKICB9KTsKICBjb25zdCBnID0gKEUpID0+ICh0eXBlb2YgRSA9PSAic3RyaW5nIiA/IEUgOiBgJHtFfXB4YCk7CiAgYWUoewogICAgZWZmZWN0OiAiY3JlYXRpdmUiLAogICAgc3dpcGVyOiBlLAogICAgb246IHUsCiAgICBzZXRUcmFuc2xhdGU6ICgpID0+IHsKICAgICAgY29uc3QgeyBzbGlkZXM6IEUsIHdyYXBwZXJFbDogZiwgc2xpZGVzU2l6ZXNHcmlkOiBwIH0gPSBlLAogICAgICAgIHMgPSBlLnBhcmFtcy5jcmVhdGl2ZUVmZmVjdCwKICAgICAgICB7IHByb2dyZXNzTXVsdGlwbGllcjogdCB9ID0gcywKICAgICAgICBpID0gZS5wYXJhbXMuY2VudGVyZWRTbGlkZXMsCiAgICAgICAgZCA9IG1lKGUpOwogICAgICBpZiAoaSkgewogICAgICAgIGNvbnN0IG8gPSBwWzBdIC8gMiAtIGUucGFyYW1zLnNsaWRlc09mZnNldEJlZm9yZSB8fCAwOwogICAgICAgIGYuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoY2FsYyg1MCUgLSAke299cHgpKWA7CiAgICAgIH0KICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBFLmxlbmd0aDsgbyArPSAxKSB7CiAgICAgICAgY29uc3QgbiA9IEVbb10sCiAgICAgICAgICBsID0gbi5wcm9ncmVzcywKICAgICAgICAgIGMgPSBNYXRoLm1pbihNYXRoLm1heChuLnByb2dyZXNzLCAtcy5saW1pdFByb2dyZXNzKSwgcy5saW1pdFByb2dyZXNzKTsKICAgICAgICBsZXQgciA9IGM7CiAgICAgICAgaSB8fAogICAgICAgICAgKHIgPSBNYXRoLm1pbigKICAgICAgICAgICAgTWF0aC5tYXgobi5vcmlnaW5hbFByb2dyZXNzLCAtcy5saW1pdFByb2dyZXNzKSwKICAgICAgICAgICAgcy5saW1pdFByb2dyZXNzCiAgICAgICAgICApKTsKICAgICAgICBjb25zdCBhID0gbi5zd2lwZXJTbGlkZU9mZnNldCwKICAgICAgICAgIG0gPSBbZS5wYXJhbXMuY3NzTW9kZSA/IC1hIC0gZS50cmFuc2xhdGUgOiAtYSwgMCwgMF0sCiAgICAgICAgICBDID0gWzAsIDAsIDBdOwogICAgICAgIGxldCBEID0gITE7CiAgICAgICAgZS5pc0hvcml6b250YWwoKSB8fCAoKG1bMV0gPSBtWzBdKSwgKG1bMF0gPSAwKSk7CiAgICAgICAgbGV0IFAgPSB7CiAgICAgICAgICB0cmFuc2xhdGU6IFswLCAwLCAwXSwKICAgICAgICAgIHJvdGF0ZTogWzAsIDAsIDBdLAogICAgICAgICAgc2NhbGU6IDEsCiAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgIH07CiAgICAgICAgYyA8IDAgPyAoKFAgPSBzLm5leHQpLCAoRCA9ICEwKSkgOiBjID4gMCAmJiAoKFAgPSBzLnByZXYpLCAoRCA9ICEwKSksCiAgICAgICAgICBtLmZvckVhY2goKFMsIEwpID0+IHsKICAgICAgICAgICAgbVtMXSA9IGBjYWxjKCR7U31weCArICgke2coUC50cmFuc2xhdGVbTF0pfSAqICR7TWF0aC5hYnMoYyAqIHQpfSkpYDsKICAgICAgICAgIH0pLAogICAgICAgICAgQy5mb3JFYWNoKChTLCBMKSA9PiB7CiAgICAgICAgICAgIGxldCBZID0gUC5yb3RhdGVbTF0gKiBNYXRoLmFicyhjICogdCk7CiAgICAgICAgICAgIENbTF0gPSBZOwogICAgICAgICAgfSksCiAgICAgICAgICAobi5zdHlsZS56SW5kZXggPSAtTWF0aC5hYnMoTWF0aC5yb3VuZChsKSkgKyBFLmxlbmd0aCk7CiAgICAgICAgY29uc3QgQSA9IG0uam9pbigiLCAiKSwKICAgICAgICAgIHggPSBgcm90YXRlWCgke2QoQ1swXSl9ZGVnKSByb3RhdGVZKCR7ZChDWzFdKX1kZWcpIHJvdGF0ZVooJHtkKAogICAgICAgICAgICBDWzJdCiAgICAgICAgICApfWRlZylgLAogICAgICAgICAgTyA9CiAgICAgICAgICAgIHIgPCAwCiAgICAgICAgICAgICAgPyBgc2NhbGUoJHsxICsgKDEgLSBQLnNjYWxlKSAqIHIgKiB0fSlgCiAgICAgICAgICAgICAgOiBgc2NhbGUoJHsxIC0gKDEgLSBQLnNjYWxlKSAqIHIgKiB0fSlgLAogICAgICAgICAgSSA9IHIgPCAwID8gMSArICgxIC0gUC5vcGFjaXR5KSAqIHIgKiB0IDogMSAtICgxIC0gUC5vcGFjaXR5KSAqIHIgKiB0LAogICAgICAgICAgeiA9IGB0cmFuc2xhdGUzZCgke0F9KSAke3h9ICR7T31gOwogICAgICAgIGlmICgoRCAmJiBQLnNoYWRvdykgfHwgIUQpIHsKICAgICAgICAgIGxldCBTID0gbi5xdWVyeVNlbGVjdG9yKCIuc3dpcGVyLXNsaWRlLXNoYWRvdyIpOwogICAgICAgICAgaWYgKCghUyAmJiBQLnNoYWRvdyAmJiAoUyA9IHNlKCJjcmVhdGl2ZSIsIG4pKSwgUykpIHsKICAgICAgICAgICAgY29uc3QgTCA9IHMuc2hhZG93UGVyUHJvZ3Jlc3MgPyBjICogKDEgLyBzLmxpbWl0UHJvZ3Jlc3MpIDogYzsKICAgICAgICAgICAgUy5zdHlsZS5vcGFjaXR5ID0gTWF0aC5taW4oTWF0aC5tYXgoTWF0aC5hYnMoTCksIDApLCAxKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgVCA9IG9lKHMsIG4pOwogICAgICAgIChULnN0eWxlLnRyYW5zZm9ybSA9IHopLAogICAgICAgICAgKFQuc3R5bGUub3BhY2l0eSA9IEkpLAogICAgICAgICAgUC5vcmlnaW4gJiYgKFQuc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gUC5vcmlnaW4pOwogICAgICB9CiAgICB9LAogICAgc2V0VHJhbnNpdGlvbjogKEUpID0+IHsKICAgICAgY29uc3QgZiA9IGUuc2xpZGVzLm1hcCgocCkgPT4gZWUocCkpOwogICAgICBmLmZvckVhY2goKHApID0+IHsKICAgICAgICAocC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtFfW1zYCksCiAgICAgICAgICBwLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zd2lwZXItc2xpZGUtc2hhZG93IikuZm9yRWFjaCgocykgPT4gewogICAgICAgICAgICBzLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGAke0V9bXNgOwogICAgICAgICAgfSk7CiAgICAgIH0pLAogICAgICAgIGhlKHsgc3dpcGVyOiBlLCBkdXJhdGlvbjogRSwgdHJhbnNmb3JtRWxlbWVudHM6IGYsIGFsbFNsaWRlczogITAgfSk7CiAgICB9LAogICAgcGVyc3BlY3RpdmU6ICgpID0+IGUucGFyYW1zLmNyZWF0aXZlRWZmZWN0LnBlcnNwZWN0aXZlLAogICAgb3ZlcndyaXRlUGFyYW1zOiAoKSA9PiAoewogICAgICB3YXRjaFNsaWRlc1Byb2dyZXNzOiAhMCwKICAgICAgdmlydHVhbFRyYW5zbGF0ZTogIWUucGFyYW1zLmNzc01vZGUsCiAgICB9KSwKICB9KTsKfQpmdW5jdGlvbiBndChNKSB7CiAgbGV0IHsgc3dpcGVyOiBlLCBleHRlbmRQYXJhbXM6IGgsIG9uOiB1IH0gPSBNOwogIGgoewogICAgY2FyZHNFZmZlY3Q6IHsKICAgICAgc2xpZGVTaGFkb3dzOiAhMCwKICAgICAgcm90YXRlOiAhMCwKICAgICAgcGVyU2xpZGVSb3RhdGU6IDIsCiAgICAgIHBlclNsaWRlT2Zmc2V0OiA4LAogICAgfSwKICB9KSwKICAgIGFlKHsKICAgICAgZWZmZWN0OiAiY2FyZHMiLAogICAgICBzd2lwZXI6IGUsCiAgICAgIG9uOiB1LAogICAgICBzZXRUcmFuc2xhdGU6ICgpID0+IHsKICAgICAgICBjb25zdCB7IHNsaWRlczogYiwgYWN0aXZlSW5kZXg6IEUsIHJ0bFRyYW5zbGF0ZTogZiB9ID0gZSwKICAgICAgICAgIHAgPSBlLnBhcmFtcy5jYXJkc0VmZmVjdCwKICAgICAgICAgIHsgc3RhcnRUcmFuc2xhdGU6IHMsIGlzVG91Y2hlZDogdCB9ID0gZS50b3VjaEV2ZW50c0RhdGEsCiAgICAgICAgICBpID0gZiA/IC1lLnRyYW5zbGF0ZSA6IGUudHJhbnNsYXRlOwogICAgICAgIGZvciAobGV0IGQgPSAwOyBkIDwgYi5sZW5ndGg7IGQgKz0gMSkgewogICAgICAgICAgY29uc3QgbyA9IGJbZF0sCiAgICAgICAgICAgIG4gPSBvLnByb2dyZXNzLAogICAgICAgICAgICBsID0gTWF0aC5taW4oTWF0aC5tYXgobiwgLTQpLCA0KTsKICAgICAgICAgIGxldCBjID0gby5zd2lwZXJTbGlkZU9mZnNldDsKICAgICAgICAgIGUucGFyYW1zLmNlbnRlcmVkU2xpZGVzICYmCiAgICAgICAgICAgICFlLnBhcmFtcy5jc3NNb2RlICYmCiAgICAgICAgICAgIChlLndyYXBwZXJFbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgke2UubWluVHJhbnNsYXRlKCl9cHgpYCksCiAgICAgICAgICAgIGUucGFyYW1zLmNlbnRlcmVkU2xpZGVzICYmCiAgICAgICAgICAgICAgZS5wYXJhbXMuY3NzTW9kZSAmJgogICAgICAgICAgICAgIChjIC09IGJbMF0uc3dpcGVyU2xpZGVPZmZzZXQpOwogICAgICAgICAgbGV0IHIgPSBlLnBhcmFtcy5jc3NNb2RlID8gLWMgLSBlLnRyYW5zbGF0ZSA6IC1jLAogICAgICAgICAgICBhID0gMDsKICAgICAgICAgIGNvbnN0IG0gPSAtMTAwICogTWF0aC5hYnMobCk7CiAgICAgICAgICBsZXQgQyA9IDEsCiAgICAgICAgICAgIEQgPSAtcC5wZXJTbGlkZVJvdGF0ZSAqIGwsCiAgICAgICAgICAgIFAgPSBwLnBlclNsaWRlT2Zmc2V0IC0gTWF0aC5hYnMobCkgKiAwLjc1OwogICAgICAgICAgY29uc3QgQSA9CiAgICAgICAgICAgICAgZS52aXJ0dWFsICYmIGUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCA/IGUudmlydHVhbC5mcm9tICsgZCA6IGQsCiAgICAgICAgICAgIHggPQogICAgICAgICAgICAgIChBID09PSBFIHx8IEEgPT09IEUgLSAxKSAmJgogICAgICAgICAgICAgIGwgPiAwICYmCiAgICAgICAgICAgICAgbCA8IDEgJiYKICAgICAgICAgICAgICAodCB8fCBlLnBhcmFtcy5jc3NNb2RlKSAmJgogICAgICAgICAgICAgIGkgPCBzLAogICAgICAgICAgICBPID0KICAgICAgICAgICAgICAoQSA9PT0gRSB8fCBBID09PSBFICsgMSkgJiYKICAgICAgICAgICAgICBsIDwgMCAmJgogICAgICAgICAgICAgIGwgPiAtMSAmJgogICAgICAgICAgICAgICh0IHx8IGUucGFyYW1zLmNzc01vZGUpICYmCiAgICAgICAgICAgICAgaSA+IHM7CiAgICAgICAgICBpZiAoeCB8fCBPKSB7CiAgICAgICAgICAgIGNvbnN0IFMgPSAoMSAtIE1hdGguYWJzKChNYXRoLmFicyhsKSAtIDAuNSkgLyAwLjUpKSAqKiAwLjU7CiAgICAgICAgICAgIChEICs9IC0yOCAqIGwgKiBTKSwKICAgICAgICAgICAgICAoQyArPSAtMC41ICogUyksCiAgICAgICAgICAgICAgKFAgKz0gOTYgKiBTKSwKICAgICAgICAgICAgICAoYSA9IGAkey0yNSAqIFMgKiBNYXRoLmFicyhsKX0lYCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgIChsIDwgMAogICAgICAgICAgICAgID8gKHIgPSBgY2FsYygke3J9cHggJHtmID8gIi0iIDogIisifSAoJHtQICogTWF0aC5hYnMobCl9JSkpYCkKICAgICAgICAgICAgICA6IGwgPiAwCiAgICAgICAgICAgICAgPyAociA9IGBjYWxjKCR7cn1weCAke2YgPyAiLSIgOiAiKyJ9ICgtJHtQICogTWF0aC5hYnMobCl9JSkpYCkKICAgICAgICAgICAgICA6IChyID0gYCR7cn1weGApLAogICAgICAgICAgICAhZS5pc0hvcml6b250YWwoKSkKICAgICAgICAgICkgewogICAgICAgICAgICBjb25zdCBTID0gYTsKICAgICAgICAgICAgKGEgPSByKSwgKHIgPSBTKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IEkgPSBsIDwgMCA/IGAkezEgKyAoMSAtIEMpICogbH1gIDogYCR7MSAtICgxIC0gQykgKiBsfWAsCiAgICAgICAgICAgIHogPSBgCiAgICAgICAgdHJhbnNsYXRlM2QoJHtyfSwgJHthfSwgJHttfXB4KQogICAgICAgIHJvdGF0ZVooJHtwLnJvdGF0ZSA/IChmID8gLUQgOiBEKSA6IDB9ZGVnKQogICAgICAgIHNjYWxlKCR7SX0pCiAgICAgIGA7CiAgICAgICAgICBpZiAocC5zbGlkZVNoYWRvd3MpIHsKICAgICAgICAgICAgbGV0IFMgPSBvLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItc2xpZGUtc2hhZG93Iik7CiAgICAgICAgICAgIFMgfHwgKFMgPSBzZSgiY2FyZHMiLCBvKSksCiAgICAgICAgICAgICAgUyAmJgogICAgICAgICAgICAgICAgKFMuc3R5bGUub3BhY2l0eSA9IE1hdGgubWluKAogICAgICAgICAgICAgICAgICBNYXRoLm1heCgoTWF0aC5hYnMobCkgLSAwLjUpIC8gMC41LCAwKSwKICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICB9CiAgICAgICAgICBvLnN0eWxlLnpJbmRleCA9IC1NYXRoLmFicyhNYXRoLnJvdW5kKG4pKSArIGIubGVuZ3RoOwogICAgICAgICAgY29uc3QgVCA9IG9lKHAsIG8pOwogICAgICAgICAgVC5zdHlsZS50cmFuc2Zvcm0gPSB6OwogICAgICAgIH0KICAgICAgfSwKICAgICAgc2V0VHJhbnNpdGlvbjogKGIpID0+IHsKICAgICAgICBjb25zdCBFID0gZS5zbGlkZXMubWFwKChmKSA9PiBlZShmKSk7CiAgICAgICAgRS5mb3JFYWNoKChmKSA9PiB7CiAgICAgICAgICAoZi5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtifW1zYCksCiAgICAgICAgICAgIGYucXVlcnlTZWxlY3RvckFsbCgiLnN3aXBlci1zbGlkZS1zaGFkb3ciKS5mb3JFYWNoKChwKSA9PiB7CiAgICAgICAgICAgICAgcC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtifW1zYDsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSksCiAgICAgICAgICBoZSh7IHN3aXBlcjogZSwgZHVyYXRpb246IGIsIHRyYW5zZm9ybUVsZW1lbnRzOiBFIH0pOwogICAgICB9LAogICAgICBwZXJzcGVjdGl2ZTogKCkgPT4gITAsCiAgICAgIG92ZXJ3cml0ZVBhcmFtczogKCkgPT4gKHsKICAgICAgICB3YXRjaFNsaWRlc1Byb2dyZXNzOiAhMCwKICAgICAgICB2aXJ0dWFsVHJhbnNsYXRlOiAhZS5wYXJhbXMuY3NzTW9kZSwKICAgICAgfSksCiAgICB9KTsKfQpjb25zdCB3dCA9IFsKICBOZSwKICBGZSwKICBHZSwKICBqZSwKICBWZSwKICBfZSwKICBVZSwKICBaZSwKICBLZSwKICBRZSwKICBKZSwKICBldCwKICB0dCwKICBpdCwKICBzdCwKICBhdCwKICBkdCwKICBjdCwKICBmdCwKICB1dCwKICBtdCwKICBodCwKICBndCwKXTsKQWUudXNlKHd0KTsKY29uc3QgdnQgPQogICAgIjpob3N0ey0tc3dpcGVyLXRoZW1lLWNvbG9yOiMwMDdhZmZ9Omhvc3R7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO3otaW5kZXg6MX0uc3dpcGVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDt6LWluZGV4OjE7ZGlzcGxheTpibG9ja30uc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN3aXBlci13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDoxO2Rpc3BsYXk6ZmxleDt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1zd2lwZXItd3JhcHBlci10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbixpbml0aWFsKTtib3gtc2l6aW5nOmNvbnRlbnQtYm94fS5zd2lwZXItYW5kcm9pZCA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKSwuc3dpcGVyLWlvcyA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKSwuc3dpcGVyLXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDBweCwwLDApfS5zd2lwZXItaG9yaXpvbnRhbHt0b3VjaC1hY3Rpb246cGFuLXl9LnN3aXBlci12ZXJ0aWNhbHt0b3VjaC1hY3Rpb246cGFuLXh9OjpzbG90dGVkKHN3aXBlci1zbGlkZSl7ZmxleC1zaHJpbms6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO2Rpc3BsYXk6YmxvY2t9OjpzbG90dGVkKC5zd2lwZXItc2xpZGUtaW52aXNpYmxlLWJsYW5rKXt2aXNpYmlsaXR5OmhpZGRlbn0uc3dpcGVyLWF1dG9oZWlnaHQsLnN3aXBlci1hdXRvaGVpZ2h0IDo6c2xvdHRlZChzd2lwZXItc2xpZGUpe2hlaWdodDphdXRvfS5zd2lwZXItYXV0b2hlaWdodCAuc3dpcGVyLXdyYXBwZXJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxoZWlnaHR9LnN3aXBlci1iYWNrZmFjZS1oaWRkZW4gOjpzbG90dGVkKHN3aXBlci1zbGlkZSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn0uc3dpcGVyLTNkLnN3aXBlci1jc3MtbW9kZSAuc3dpcGVyLXdyYXBwZXJ7cGVyc3BlY3RpdmU6MTIwMHB4fS5zd2lwZXItM2QgLnN3aXBlci13cmFwcGVye3RyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZH0uc3dpcGVyLTNke3BlcnNwZWN0aXZlOjEyMDBweH0uc3dpcGVyLTNkIC5zd2lwZXItY3ViZS1zaGFkb3csLnN3aXBlci0zZCA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKXt0cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2R9LnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXJ7b3ZlcmZsb3c6YXV0bztzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZX0uc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS5zd2lwZXItY3NzLW1vZGUgOjpzbG90dGVkKHN3aXBlci1zbGlkZSl7c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQgc3RhcnR9LnN3aXBlci1jc3MtbW9kZS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXdyYXBwZXJ7c2Nyb2xsLXNuYXAtdHlwZTp4IG1hbmRhdG9yeX0uc3dpcGVyLWNzcy1tb2RlLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXdyYXBwZXJ7c2Nyb2xsLXNuYXAtdHlwZTp5IG1hbmRhdG9yeX0uc3dpcGVyLWNzcy1tb2RlLnN3aXBlci1mcmVlLW1vZGU+LnN3aXBlci13cmFwcGVye3Njcm9sbC1zbmFwLXR5cGU6bm9uZX0uc3dpcGVyLWNzcy1tb2RlLnN3aXBlci1mcmVlLW1vZGUgOjpzbG90dGVkKHN3aXBlci1zbGlkZSl7c2Nyb2xsLXNuYXAtYWxpZ246bm9uZX0uc3dpcGVyLWNzcy1tb2RlLnN3aXBlci1jZW50ZXJlZD4uc3dpcGVyLXdyYXBwZXI6OmJlZm9yZXtjb250ZW50OicnO2ZsZXgtc2hyaW5rOjA7b3JkZXI6OTk5OX0uc3dpcGVyLWNzcy1tb2RlLnN3aXBlci1jZW50ZXJlZCA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKXtzY3JvbGwtc25hcC1hbGlnbjpjZW50ZXIgY2VudGVyO3Njcm9sbC1zbmFwLXN0b3A6YWx3YXlzfS5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsIDo6c2xvdHRlZChzd2lwZXItc2xpZGUpOmZpcnN0LWNoaWxke21hcmdpbi1pbmxpbmUtc3RhcnQ6dmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUpfS5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItd3JhcHBlcjo6YmVmb3Jle2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MXB4O3dpZHRoOnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpfS5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLWNlbnRlcmVkLnN3aXBlci12ZXJ0aWNhbCA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKTpmaXJzdC1jaGlsZHttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUpfS5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLWNlbnRlcmVkLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXdyYXBwZXI6OmJlZm9yZXt3aWR0aDoxMDAlO21pbi13aWR0aDoxcHg7aGVpZ2h0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpfS5zd2lwZXItdmlydHVhbCA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKXstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5zd2lwZXItdmlydHVhbC5zd2lwZXItY3NzLW1vZGUgLnN3aXBlci13cmFwcGVyOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItdmlydHVhbC5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLWhvcml6b250YWwgLnN3aXBlci13cmFwcGVyOjphZnRlcntoZWlnaHQ6MXB4O3dpZHRoOnZhcigtLXN3aXBlci12aXJ0dWFsLXNpemUpfS5zd2lwZXItdmlydHVhbC5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLXZlcnRpY2FsIC5zd2lwZXItd3JhcHBlcjo6YWZ0ZXJ7d2lkdGg6MXB4O2hlaWdodDp2YXIoLS1zd2lwZXItdmlydHVhbC1zaXplKX06aG9zdHstLXN3aXBlci1uYXZpZ2F0aW9uLXNpemU6NDRweH0uc3dpcGVyLWJ1dHRvbi1uZXh0LC5zd2lwZXItYnV0dG9uLXByZXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOnZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXRvcC1vZmZzZXQsNTAlKTt3aWR0aDpjYWxjKHZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpLyA0NCAqIDI3KTtoZWlnaHQ6dmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZSk7bWFyZ2luLXRvcDpjYWxjKDBweCAtICh2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKS8gMikpO3otaW5kZXg6MTA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLWNvbG9yLHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpfS5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCwuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tZGlzYWJsZWR7b3BhY2l0eTouMzU7Y3Vyc29yOmF1dG87cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24taGlkZGVuLC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1oaWRkZW57b3BhY2l0eTowO2N1cnNvcjphdXRvO3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXBlci1uYXZpZ2F0aW9uLWRpc2FibGVkIC5zd2lwZXItYnV0dG9uLW5leHQsLnN3aXBlci1uYXZpZ2F0aW9uLWRpc2FibGVkIC5zd2lwZXItYnV0dG9uLXByZXZ7ZGlzcGxheTpub25lIWltcG9ydGFudH0uc3dpcGVyLWJ1dHRvbi1uZXh0IHN2Zywuc3dpcGVyLWJ1dHRvbi1wcmV2IHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0uc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0IHN2Zywuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2IHN2Z3t0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnN3aXBlci1idXR0b24tcHJldiwuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0e2xlZnQ6dmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2lkZXMtb2Zmc2V0LDEwcHgpO3JpZ2h0OmF1dG99LnN3aXBlci1idXR0b24tbmV4dCwuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2e3JpZ2h0OnZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpZGVzLW9mZnNldCwxMHB4KTtsZWZ0OmF1dG99LnN3aXBlci1idXR0b24tbG9ja3tkaXNwbGF5Om5vbmV9LnN3aXBlci1wYWdpbmF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246LjNzIG9wYWNpdHk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt6LWluZGV4OjEwfS5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW57b3BhY2l0eTowfS5zd2lwZXItcGFnaW5hdGlvbi1kaXNhYmxlZD4uc3dpcGVyLXBhZ2luYXRpb24sLnN3aXBlci1wYWdpbmF0aW9uLnN3aXBlci1wYWdpbmF0aW9uLWRpc2FibGVke2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwsLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSwuc3dpcGVyLXBhZ2luYXRpb24tZnJhY3Rpb257Ym90dG9tOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJvdHRvbSw4cHgpO3RvcDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi10b3AsYXV0byk7bGVmdDowO3dpZHRoOjEwMCV9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pY3tvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjB9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3RyYW5zZm9ybTpzY2FsZSguMzMpO3Bvc2l0aW9uOnJlbGF0aXZlfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmV7dHJhbnNmb3JtOnNjYWxlKDEpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbWFpbnt0cmFuc2Zvcm06c2NhbGUoMSl9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2e3RyYW5zZm9ybTpzY2FsZSguNjYpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtcHJldi1wcmV2e3RyYW5zZm9ybTpzY2FsZSguMzMpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbmV4dHt0cmFuc2Zvcm06c2NhbGUoLjY2KX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQtbmV4dHt0cmFuc2Zvcm06c2NhbGUoLjMzKX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3dpZHRoOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC13aWR0aCx2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtc2l6ZSw4cHgpKTtoZWlnaHQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWhlaWdodCx2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtc2l6ZSw4cHgpKTtkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXItcmFkaXVzOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1ib3JkZXItcmFkaXVzLDUwJSk7YmFja2dyb3VuZDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtaW5hY3RpdmUtY29sb3IsIzAwMCk7b3BhY2l0eTp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtaW5hY3RpdmUtb3BhY2l0eSwgLjIpfWJ1dHRvbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JveC1zaGFkb3c6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LnN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e2N1cnNvcjpwb2ludGVyfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQ6b25seS1jaGlsZHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZle29wYWNpdHk6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LW9wYWNpdHksIDEpO2JhY2tncm91bmQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tY29sb3IsdmFyKC0tc3dpcGVyLXRoZW1lLWNvbG9yKSl9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0c3tyaWdodDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1yaWdodCw4cHgpO2xlZnQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tbGVmdCxhdXRvKTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwcHgsLTUwJSwwKX0uc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHttYXJnaW46dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LXZlcnRpY2FsLWdhcCw2cHgpIDA7ZGlzcGxheTpibG9ja30uc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWN7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo4cHh9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOi4ycyB0cmFuc2Zvcm0sLjJzIHRvcH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCwuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7bWFyZ2luOjAgdmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWhvcml6b250YWwtZ2FwLDRweCl9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYywuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pY3tsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt3aGl0ZS1zcGFjZTpub3dyYXB9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LC5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7dHJhbnNpdGlvbjouMnMgdHJhbnNmb3JtLC4ycyBsZWZ0fS5zd2lwZXItaG9yaXpvbnRhbC5zd2lwZXItcnRsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHt0cmFuc2l0aW9uOi4ycyB0cmFuc2Zvcm0sLjJzIHJpZ2h0fS5zd2lwZXItcGFnaW5hdGlvbi1mcmFjdGlvbntjb2xvcjp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1mcmFjdGlvbi1jb2xvcixpbmhlcml0KX0uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXJ7YmFja2dyb3VuZDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1iZy1jb2xvcixyZ2JhKDAsMCwwLC4yNSkpO3Bvc2l0aW9uOmFic29sdXRlfS5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbHtiYWNrZ3JvdW5kOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWNvbG9yLHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgdG9wfS5zd2lwZXItcnRsIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IHRvcH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSwuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZXt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1zaXplLDRweCk7bGVmdDowO3RvcDowfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItb3Bwb3NpdGUsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItb3Bwb3NpdGUsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFye3dpZHRoOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLXNpemUsNHB4KTtoZWlnaHQ6MTAwJTtsZWZ0OjA7dG9wOjB9LnN3aXBlci1wYWdpbmF0aW9uLWxvY2t7ZGlzcGxheTpub25lfS5zd2lwZXItc2Nyb2xsYmFye2JvcmRlci1yYWRpdXM6dmFyKC0tc3dpcGVyLXNjcm9sbGJhci1ib3JkZXItcmFkaXVzLDEwcHgpO3Bvc2l0aW9uOnJlbGF0aXZlO3RvdWNoLWFjdGlvbjpub25lO2JhY2tncm91bmQ6dmFyKC0tc3dpcGVyLXNjcm9sbGJhci1iZy1jb2xvcixyZ2JhKDAsMCwwLC4xKSl9LnN3aXBlci1zY3JvbGxiYXItZGlzYWJsZWQ+LnN3aXBlci1zY3JvbGxiYXIsLnN3aXBlci1zY3JvbGxiYXIuc3dpcGVyLXNjcm9sbGJhci1kaXNhYmxlZHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXNjcm9sbGJhciwuc3dpcGVyLXNjcm9sbGJhci5zd2lwZXItc2Nyb2xsYmFyLWhvcml6b250YWx7cG9zaXRpb246YWJzb2x1dGU7bGVmdDp2YXIoLS1zd2lwZXItc2Nyb2xsYmFyLXNpZGVzLW9mZnNldCwxJSk7Ym90dG9tOnZhcigtLXN3aXBlci1zY3JvbGxiYXItYm90dG9tLDRweCk7dG9wOnZhcigtLXN3aXBlci1zY3JvbGxiYXItdG9wLGF1dG8pO3otaW5kZXg6NTA7aGVpZ2h0OnZhcigtLXN3aXBlci1zY3JvbGxiYXItc2l6ZSw0cHgpO3dpZHRoOmNhbGMoMTAwJSAtIDIgKiB2YXIoLS1zd2lwZXItc2Nyb2xsYmFyLXNpZGVzLW9mZnNldCwxJSkpfS5zd2lwZXItc2Nyb2xsYmFyLnN3aXBlci1zY3JvbGxiYXItdmVydGljYWwsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OnZhcigtLXN3aXBlci1zY3JvbGxiYXItbGVmdCxhdXRvKTtyaWdodDp2YXIoLS1zd2lwZXItc2Nyb2xsYmFyLXJpZ2h0LDRweCk7dG9wOnZhcigtLXN3aXBlci1zY3JvbGxiYXItc2lkZXMtb2Zmc2V0LDElKTt6LWluZGV4OjUwO3dpZHRoOnZhcigtLXN3aXBlci1zY3JvbGxiYXItc2l6ZSw0cHgpO2hlaWdodDpjYWxjKDEwMCUgLSAyICogdmFyKC0tc3dpcGVyLXNjcm9sbGJhci1zaWRlcy1vZmZzZXQsMSUpKX0uc3dpcGVyLXNjcm9sbGJhci1kcmFne2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDp2YXIoLS1zd2lwZXItc2Nyb2xsYmFyLWRyYWctYmctY29sb3IscmdiYSgwLDAsMCwuNSkpO2JvcmRlci1yYWRpdXM6dmFyKC0tc3dpcGVyLXNjcm9sbGJhci1ib3JkZXItcmFkaXVzLDEwcHgpO2xlZnQ6MDt0b3A6MH0uc3dpcGVyLXNjcm9sbGJhci1jdXJzb3ItZHJhZ3tjdXJzb3I6bW92ZX0uc3dpcGVyLXNjcm9sbGJhci1sb2Nre2Rpc3BsYXk6bm9uZX06OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS16b29tZWQpe2N1cnNvcjptb3ZlO3RvdWNoLWFjdGlvbjpub25lfS5zd2lwZXIgLnN3aXBlci1ub3RpZmljYXRpb257cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3otaW5kZXg6LTEwMDB9LnN3aXBlci1mcmVlLW1vZGU+LnN3aXBlci13cmFwcGVye3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0O21hcmdpbjowIGF1dG99LnN3aXBlci1ncmlkPi5zd2lwZXItd3JhcHBlcntmbGV4LXdyYXA6d3JhcH0uc3dpcGVyLWdyaWQtY29sdW1uPi5zd2lwZXItd3JhcHBlcntmbGV4LXdyYXA6d3JhcDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN3aXBlci1mYWRlLnN3aXBlci1mcmVlLW1vZGUgOjpzbG90dGVkKHN3aXBlci1zbGlkZSl7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXR9LnN3aXBlci1mYWRlIDo6c2xvdHRlZChzd2lwZXItc2xpZGUpe3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS5zd2lwZXItZmFkZSA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKSA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKXtwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItZmFkZSA6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1hY3RpdmUpe3BvaW50ZXItZXZlbnRzOmF1dG99LnN3aXBlci1mYWRlIDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLWFjdGl2ZSkgOjpzbG90dGVkKC5zd2lwZXItc2xpZGUtYWN0aXZlKXtwb2ludGVyLWV2ZW50czphdXRvfS5zd2lwZXIuc3dpcGVyLWN1YmV7b3ZlcmZsb3c6dmlzaWJsZX0uc3dpcGVyLWN1YmUgOjpzbG90dGVkKHN3aXBlci1zbGlkZSl7cG9pbnRlci1ldmVudHM6bm9uZTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MTt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5zd2lwZXItY3ViZSA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKSA6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKXtwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItY3ViZS5zd2lwZXItcnRsIDo6c2xvdHRlZChzd2lwZXItc2xpZGUpe3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS5zd2lwZXItY3ViZSA6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1hY3RpdmUpLC5zd2lwZXItY3ViZSA6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1hY3RpdmUpIDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLWFjdGl2ZSl7cG9pbnRlci1ldmVudHM6YXV0b30uc3dpcGVyLWN1YmUgOjpzbG90dGVkKC5zd2lwZXItc2xpZGUtYWN0aXZlKSwuc3dpcGVyLWN1YmUgOjpzbG90dGVkKC5zd2lwZXItc2xpZGUtbmV4dCksLnN3aXBlci1jdWJlIDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXByZXYpe3BvaW50ZXItZXZlbnRzOmF1dG87dmlzaWJpbGl0eTp2aXNpYmxlfS5zd2lwZXItY3ViZSAuc3dpcGVyLWN1YmUtc2hhZG93e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MHB4O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3BhY2l0eTouNjt6LWluZGV4OjB9LnN3aXBlci1jdWJlIC5zd2lwZXItY3ViZS1zaGFkb3c6YmVmb3Jle2NvbnRlbnQ6Jyc7YmFja2dyb3VuZDojMDAwO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDtyaWdodDowO2ZpbHRlcjpibHVyKDUwcHgpfS5zd2lwZXItY3ViZSA6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1uZXh0KSs6OnNsb3R0ZWQoc3dpcGVyLXNsaWRlKXtwb2ludGVyLWV2ZW50czphdXRvO3Zpc2liaWxpdHk6dmlzaWJsZX0uc3dpcGVyLnN3aXBlci1mbGlwe292ZXJmbG93OnZpc2libGV9LnN3aXBlci1mbGlwIDo6c2xvdHRlZChzd2lwZXItc2xpZGUpe3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjF9LnN3aXBlci1mbGlwIDo6c2xvdHRlZChzd2lwZXItc2xpZGUpIDo6c2xvdHRlZChzd2lwZXItc2xpZGUpe3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXBlci1mbGlwIDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLWFjdGl2ZSksLnN3aXBlci1mbGlwIDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLWFjdGl2ZSkgOjpzbG90dGVkKC5zd2lwZXItc2xpZGUtYWN0aXZlKXtwb2ludGVyLWV2ZW50czphdXRvfS5zd2lwZXItY3JlYXRpdmUgOjpzbG90dGVkKHN3aXBlci1zbGlkZSl7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0sb3BhY2l0eSxoZWlnaHR9LnN3aXBlci5zd2lwZXItY2FyZHN7b3ZlcmZsb3c6dmlzaWJsZX0uc3dpcGVyLWNhcmRzIDo6c2xvdHRlZChzd2lwZXItc2xpZGUpe3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO292ZXJmbG93OmhpZGRlbn0iLAogIGJ0ID0KICAgICI6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1zaGFkb3cpLDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20pLDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0KSw6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQpLDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy10b3Ape3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxMH06OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1zaGFkb3cpe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTUpfTo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0KXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpfTo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCl7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9OjpzbG90dGVkKC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCl7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpfTo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20pe2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLWxhenktcHJlbG9hZGVye2FuaW1hdGlvbjpzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgaW5maW5pdGUgbGluZWFyO3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTttYXJnaW4tbGVmdDotMjFweDttYXJnaW4tdG9wOi0yMXB4O3otaW5kZXg6MTA7dHJhbnNmb3JtLW9yaWdpbjo1MCU7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjo0cHggc29saWQgdmFyKC0tc3dpcGVyLXByZWxvYWRlci1jb2xvcix2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKTtib3JkZXItcmFkaXVzOjUwJTtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50fUBrZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fTo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1jdWJlLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tKSw6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1zaGFkb3ctY3ViZS5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQpLDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1jdWJlLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQpLDo6c2xvdHRlZCguc3dpcGVyLXNsaWRlLXNoYWRvdy1jdWJlLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wKXt6LWluZGV4OjA7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn06OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1zaGFkb3ctZmxpcC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSksOjpzbG90dGVkKC5zd2lwZXItc2xpZGUtc2hhZG93LWZsaXAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0KSw6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1zaGFkb3ctZmxpcC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0KSw6OnNsb3R0ZWQoLnN3aXBlci1zbGlkZS1zaGFkb3ctZmxpcC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCl7ei1pbmRleDowOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59OjpzbG90dGVkKC5zd2lwZXItem9vbS1jb250YWluZXIpe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfTo6c2xvdHRlZCguc3dpcGVyLXpvb20tY29udGFpbmVyKT5jYW52YXMsOjpzbG90dGVkKC5zd2lwZXItem9vbS1jb250YWluZXIpPmltZyw6OnNsb3R0ZWQoLnN3aXBlci16b29tLWNvbnRhaW5lcik+c3Zne21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvbnRhaW59IjsKY2xhc3MgeXQge30KY29uc3QgRGUgPSB0eXBlb2Ygd2luZG93ID4gInUiIHx8IHR5cGVvZiBIVE1MRWxlbWVudCA+ICJ1IiA/IHl0IDogSFRNTEVsZW1lbnQsCiAgUGUgPSBgPHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAxMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMC4zODI5NiAyMC4wNzYyQzAuMTExNzg4IDE5LjgwNSAwLjExMTc4OCAxOS4zNjU0IDAuMzgyOTYgMTkuMDk0Mkw5LjE5NzU4IDEwLjI3OTZMMC4zODI5NiAxLjQ2NDk3QzAuMTExNzg4IDEuMTkzNzkgMC4xMTE3ODggMC43NTQxMzggMC4zODI5NiAwLjQ4Mjk2NkMwLjY1NDEzMSAwLjIxMTc5NCAxLjA5Mzc5IDAuMjExNzk0IDEuMzY0OTYgMC40ODI5NjZMMTAuNDM0MSA5LjU1MjE0QzEwLjgzNTkgOS45NTM5IDEwLjgzNTkgMTAuNjA1MyAxMC40MzQxIDExLjAwN0wxLjM2NDk2IDIwLjA3NjJDMS4wOTM3OSAyMC4zNDc0IDAuNjU0MTMxIDIwLjM0NzQgMC4zODI5NiAyMC4wNzYyWiIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+CiAgICBgLAogIGtlID0gKE0sIGUpID0+IHsKICAgIGlmICh0eXBlb2YgQ1NTU3R5bGVTaGVldCA8ICJ1IiAmJiBNLmFkb3B0ZWRTdHlsZVNoZWV0cykgewogICAgICBjb25zdCBoID0gbmV3IENTU1N0eWxlU2hlZXQoKTsKICAgICAgaC5yZXBsYWNlU3luYyhlKSwgKE0uYWRvcHRlZFN0eWxlU2hlZXRzID0gW2hdKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOwogICAgICAoaC5yZWwgPSAic3R5bGVzaGVldCIpLCAoaC50ZXh0Q29udGVudCA9IGUpLCBNLmFwcGVuZENoaWxkKGgpOwogICAgfQogIH07CmNsYXNzIEllIGV4dGVuZHMgRGUgewogIGNvbnN0cnVjdG9yKCkgewogICAgc3VwZXIoKSwgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7CiAgfQogIHN0YXRpYyBnZXQgbmV4dEJ1dHRvblN2ZygpIHsKICAgIHJldHVybiBQZTsKICB9CiAgc3RhdGljIGdldCBwcmV2QnV0dG9uU3ZnKCkgewogICAgcmV0dXJuIFBlLnJlcGxhY2UoCiAgICAgICIvPjwvc3ZnPiIsCiAgICAgICcgdHJhbnNmb3JtLW9yaWdpbj0iY2VudGVyIiB0cmFuc2Zvcm09InJvdGF0ZSgxODApIi8+PC9zdmc+JwogICAgKTsKICB9CiAgY3NzU3R5bGVzKCkgewogICAgcmV0dXJuIFsKICAgICAgdnQsCiAgICAgIC4uLih0aGlzLmluamVjdFN0eWxlcyAmJiBBcnJheS5pc0FycmF5KHRoaXMuaW5qZWN0U3R5bGVzKQogICAgICAgID8gdGhpcy5pbmplY3RTdHlsZXMKICAgICAgICA6IFtdKSwKICAgIF0uam9pbihgCmApOwogIH0KICBjc3NMaW5rcygpIHsKICAgIHJldHVybiB0aGlzLmluamVjdFN0eWxlc1VybHMgfHwgW107CiAgfQogIGNhbGNTbGlkZVNsb3RzKCkgewogICAgY29uc3QgZSA9IHRoaXMuc2xpZGVTbG90cyB8fCAwLAogICAgICBoID0gWy4uLnRoaXMucXVlcnlTZWxlY3RvckFsbCgiW3Nsb3RePXNsaWRlLV0iKV0ubWFwKCh1KSA9PgogICAgICAgIHBhcnNlSW50KHUuZ2V0QXR0cmlidXRlKCJzbG90Iikuc3BsaXQoInNsaWRlLSIpWzFdLCAxMCkKICAgICAgKTsKICAgIGlmICgKICAgICAgKCh0aGlzLnNsaWRlU2xvdHMgPSBoLmxlbmd0aCA/IE1hdGgubWF4KC4uLmgpICsgMSA6IDApLCAhIXRoaXMucmVuZGVyZWQpCiAgICApIHsKICAgICAgaWYgKHRoaXMuc2xpZGVTbG90cyA+IGUpCiAgICAgICAgZm9yIChsZXQgdSA9IGU7IHUgPCB0aGlzLnNsaWRlU2xvdHM7IHUgKz0gMSkgewogICAgICAgICAgY29uc3QgZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN3aXBlci1zbGlkZSIpOwogICAgICAgICAgZy5zZXRBdHRyaWJ1dGUoInBhcnQiLCBgc2xpZGUgc2xpZGUtJHt1ICsgMX1gKTsKICAgICAgICAgIGNvbnN0IHcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzbG90Iik7CiAgICAgICAgICB3LnNldEF0dHJpYnV0ZSgibmFtZSIsIGBzbGlkZS0ke3UgKyAxfWApLAogICAgICAgICAgICBnLmFwcGVuZENoaWxkKHcpLAogICAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN3aXBlci13cmFwcGVyIikuYXBwZW5kQ2hpbGQoZyk7CiAgICAgICAgfQogICAgICBlbHNlIGlmICh0aGlzLnNsaWRlU2xvdHMgPCBlKSB7CiAgICAgICAgY29uc3QgdSA9IHRoaXMuc3dpcGVyLnNsaWRlczsKICAgICAgICBmb3IgKGxldCBnID0gdS5sZW5ndGggLSAxOyBnID49IDA7IGcgLT0gMSkKICAgICAgICAgIGcgPiB0aGlzLnNsaWRlU2xvdHMgJiYgdVtnXS5yZW1vdmUoKTsKICAgICAgfQogICAgfQogIH0KICByZW5kZXIoKSB7CiAgICBpZiAodGhpcy5yZW5kZXJlZCkgcmV0dXJuOwogICAgdGhpcy5jYWxjU2xpZGVTbG90cygpOwogICAgbGV0IGUgPSB0aGlzLmNzc1N0eWxlcygpOwogICAgdGhpcy5zbGlkZVNsb3RzID4gMCAmJiAoZSA9IGUucmVwbGFjZSgvOjpzbG90dGVkXCgoW2Etei0wLTkuXSopXCkvZywgIiQxIikpLAogICAgICBlLmxlbmd0aCAmJiBrZSh0aGlzLnNoYWRvd1Jvb3QsIGUpLAogICAgICB0aGlzLmNzc0xpbmtzKCkuZm9yRWFjaCgodSkgPT4gewogICAgICAgIGlmICh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgbGlua1tocmVmPSIke3V9Il1gKSkgcmV0dXJuOwogICAgICAgIGNvbnN0IHcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7CiAgICAgICAgKHcucmVsID0gInN0eWxlc2hlZXQiKSwgKHcuaHJlZiA9IHUpLCB0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodyk7CiAgICAgIH0pOwogICAgY29uc3QgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgaC5jbGFzc0xpc3QuYWRkKCJzd2lwZXIiKSwKICAgICAgKGgucGFydCA9ICJjb250YWluZXIiKSwKICAgICAgKGguaW5uZXJIVE1MID0gYAogICAgICA8c2xvdCBuYW1lPSJjb250YWluZXItc3RhcnQiPjwvc2xvdD4KICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXdyYXBwZXIiIHBhcnQ9IndyYXBwZXIiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICAke0FycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuc2xpZGVTbG90cyB9KQogICAgICAgICAgLm1hcCgKICAgICAgICAgICAgKHUsIGcpID0+IGAKICAgICAgICA8c3dpcGVyLXNsaWRlIHBhcnQ9InNsaWRlIHNsaWRlLSR7Z30iPgogICAgICAgICAgPHNsb3QgbmFtZT0ic2xpZGUtJHtnfSI+PC9zbG90PgogICAgICAgIDwvc3dpcGVyLXNsaWRlPgogICAgICAgIGAKICAgICAgICAgICkKICAgICAgICAgIC5qb2luKCIiKX0KICAgICAgPC9kaXY+CiAgICAgIDxzbG90IG5hbWU9ImNvbnRhaW5lci1lbmQiPjwvc2xvdD4KICAgICAgJHsKICAgICAgICBZZSh0aGlzLnBhc3NlZFBhcmFtcykKICAgICAgICAgID8gYAogICAgICAgIDxkaXYgcGFydD0iYnV0dG9uLXByZXYiIGNsYXNzPSJzd2lwZXItYnV0dG9uLXByZXYiPiR7dGhpcy5jb25zdHJ1Y3Rvci5wcmV2QnV0dG9uU3ZnfTwvZGl2PgogICAgICAgIDxkaXYgcGFydD0iYnV0dG9uLW5leHQiIGNsYXNzPSJzd2lwZXItYnV0dG9uLW5leHQiPiR7dGhpcy5jb25zdHJ1Y3Rvci5uZXh0QnV0dG9uU3ZnfTwvZGl2PgogICAgICBgCiAgICAgICAgICA6ICIiCiAgICAgIH0KICAgICAgJHsKICAgICAgICBSZSh0aGlzLnBhc3NlZFBhcmFtcykKICAgICAgICAgID8gYAogICAgICAgIDxkaXYgcGFydD0icGFnaW5hdGlvbiIgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uIj48L2Rpdj4KICAgICAgYAogICAgICAgICAgOiAiIgogICAgICB9CiAgICAgICR7CiAgICAgICAgQmUodGhpcy5wYXNzZWRQYXJhbXMpCiAgICAgICAgICA/IGAKICAgICAgICA8ZGl2IHBhcnQ9InNjcm9sbGJhciIgY2xhc3M9InN3aXBlci1zY3JvbGxiYXIiPjwvZGl2PgogICAgICBgCiAgICAgICAgICA6ICIiCiAgICAgIH0KICAgIGApLAogICAgICB0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaCksCiAgICAgICh0aGlzLnJlbmRlcmVkID0gITApOwogIH0KICBpbml0aWFsaXplKCkgewogICAgdmFyIGUgPSB0aGlzOwogICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHJldHVybjsKICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSAhMDsKICAgIGNvbnN0IHsgcGFyYW1zOiBoLCBwYXNzZWRQYXJhbXM6IHUgfSA9IExlKHRoaXMpOwogICAgKHRoaXMuc3dpcGVyUGFyYW1zID0gaCksCiAgICAgICh0aGlzLnBhc3NlZFBhcmFtcyA9IHUpLAogICAgICBkZWxldGUgdGhpcy5zd2lwZXJQYXJhbXMuaW5pdCwKICAgICAgdGhpcy5yZW5kZXIoKSwKICAgICAgKHRoaXMuc3dpcGVyID0gbmV3IEFlKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3dpcGVyIiksIHsKICAgICAgICAuLi4oaC52aXJ0dWFsID8ge30gOiB7IG9ic2VydmVyOiAhMCB9KSwKICAgICAgICAuLi5oLAogICAgICAgIHRvdWNoRXZlbnRzVGFyZ2V0OiAiY29udGFpbmVyIiwKICAgICAgICBvbkFueTogZnVuY3Rpb24gKGcpIHsKICAgICAgICAgIGcgPT09ICJvYnNlcnZlclVwZGF0ZSIgJiYgZS5jYWxjU2xpZGVTbG90cygpOwogICAgICAgICAgY29uc3QgdyA9IGguZXZlbnRzUHJlZml4CiAgICAgICAgICAgID8gYCR7aC5ldmVudHNQcmVmaXh9JHtnLnRvTG93ZXJDYXNlKCl9YAogICAgICAgICAgICA6IGcudG9Mb3dlckNhc2UoKTsKICAgICAgICAgIGZvciAoCiAgICAgICAgICAgIHZhciBiID0gYXJndW1lbnRzLmxlbmd0aCwgRSA9IG5ldyBBcnJheShiID4gMSA/IGIgLSAxIDogMCksIGYgPSAxOwogICAgICAgICAgICBmIDwgYjsKICAgICAgICAgICAgZisrCiAgICAgICAgICApCiAgICAgICAgICAgIEVbZiAtIDFdID0gYXJndW1lbnRzW2ZdOwogICAgICAgICAgY29uc3QgcCA9IG5ldyBDdXN0b21FdmVudCh3LCB7CiAgICAgICAgICAgIGRldGFpbDogRSwKICAgICAgICAgICAgYnViYmxlczogZyAhPT0gImhhc2hDaGFuZ2UiLAogICAgICAgICAgICBjYW5jZWxhYmxlOiAhMCwKICAgICAgICAgIH0pOwogICAgICAgICAgZS5kaXNwYXRjaEV2ZW50KHApOwogICAgICAgIH0sCiAgICAgIH0pKTsKICB9CiAgY29ubmVjdGVkQ2FsbGJhY2soKSB7CiAgICAodGhpcy5pbml0aWFsaXplZCAmJgogICAgICB0aGlzLm5lc3RlZCAmJgogICAgICB0aGlzLmNsb3Nlc3QoInN3aXBlci1zbGlkZSIpICYmCiAgICAgIHRoaXMuY2xvc2VzdCgic3dpcGVyLXNsaWRlIikuc3dpcGVyTG9vcE1vdmVET00pIHx8CiAgICAgIHRoaXMuaW5pdCA9PT0gITEgfHwKICAgICAgdGhpcy5nZXRBdHRyaWJ1dGUoImluaXQiKSA9PT0gImZhbHNlIiB8fAogICAgICB0aGlzLmluaXRpYWxpemUoKTsKICB9CiAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7CiAgICAodGhpcy5uZXN0ZWQgJiYKICAgICAgdGhpcy5jbG9zZXN0KCJzd2lwZXItc2xpZGUiKSAmJgogICAgICB0aGlzLmNsb3Nlc3QoInN3aXBlci1zbGlkZSIpLnN3aXBlckxvb3BNb3ZlRE9NKSB8fAogICAgICAodGhpcy5zd2lwZXIgJiYgdGhpcy5zd2lwZXIuZGVzdHJveSAmJiB0aGlzLnN3aXBlci5kZXN0cm95KCksCiAgICAgICh0aGlzLmluaXRpYWxpemVkID0gITEpKTsKICB9CiAgdXBkYXRlU3dpcGVyT25Qcm9wQ2hhbmdlKGUsIGgpIHsKICAgIGNvbnN0IHsgcGFyYW1zOiB1LCBwYXNzZWRQYXJhbXM6IGcgfSA9IExlKHRoaXMsIGUsIGgpOwogICAgKHRoaXMucGFzc2VkUGFyYW1zID0gZyksCiAgICAgICh0aGlzLnN3aXBlclBhcmFtcyA9IHUpLAogICAgICAhKHRoaXMuc3dpcGVyICYmIHRoaXMuc3dpcGVyLnBhcmFtc1tlXSA9PT0gaCkgJiYKICAgICAgICBxZSh7CiAgICAgICAgICBzd2lwZXI6IHRoaXMuc3dpcGVyLAogICAgICAgICAgcGFzc2VkUGFyYW1zOiB0aGlzLnBhc3NlZFBhcmFtcywKICAgICAgICAgIGNoYW5nZWRQYXJhbXM6IFtXZShlKV0sCiAgICAgICAgICAuLi4oZSA9PT0gIm5hdmlnYXRpb24iICYmIGdbZV0KICAgICAgICAgICAgPyB7IHByZXZFbDogIi5zd2lwZXItYnV0dG9uLXByZXYiLCBuZXh0RWw6ICIuc3dpcGVyLWJ1dHRvbi1uZXh0IiB9CiAgICAgICAgICAgIDoge30pLAogICAgICAgICAgLi4uKGUgPT09ICJwYWdpbmF0aW9uIiAmJiBnW2VdCiAgICAgICAgICAgID8geyBwYWdpbmF0aW9uRWw6ICIuc3dpcGVyLXBhZ2luYXRpb24iIH0KICAgICAgICAgICAgOiB7fSksCiAgICAgICAgICAuLi4oZSA9PT0gInNjcm9sbGJhciIgJiYgZ1tlXQogICAgICAgICAgICA/IHsgc2Nyb2xsYmFyRWw6ICIuc3dpcGVyLXNjcm9sbGJhciIgfQogICAgICAgICAgICA6IHt9KSwKICAgICAgICB9KTsKICB9CiAgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUsIGgsIHUpIHsKICAgIHRoaXMuaW5pdGlhbGl6ZWQgJiYKICAgICAgKGggPT09ICJ0cnVlIiAmJiB1ID09PSBudWxsICYmICh1ID0gITEpLAogICAgICB0aGlzLnVwZGF0ZVN3aXBlck9uUHJvcENoYW5nZShlLCB1KSk7CiAgfQogIHN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCkgewogICAgcmV0dXJuIEVlLmZpbHRlcigoaCkgPT4gaC5pbmNsdWRlcygiXyIpKS5tYXAoKGgpID0+CiAgICAgIGgKICAgICAgICAucmVwbGFjZSgvW0EtWl0vZywgKHUpID0+IGAtJHt1fWApCiAgICAgICAgLnJlcGxhY2UoIl8iLCAiIikKICAgICAgICAudG9Mb3dlckNhc2UoKQogICAgKTsKICB9Cn0KRWUuZm9yRWFjaCgoTSkgPT4gewogIE0gIT09ICJpbml0IiAmJgogICAgKChNID0gTS5yZXBsYWNlKCJfIiwgIiIpKSwKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShJZS5wcm90b3R5cGUsIE0sIHsKICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgZ2V0KCkgewogICAgICAgIHJldHVybiAodGhpcy5wYXNzZWRQYXJhbXMgfHwge30pW01dOwogICAgICB9LAogICAgICBzZXQoZSkgewogICAgICAgIHRoaXMucGFzc2VkUGFyYW1zIHx8ICh0aGlzLnBhc3NlZFBhcmFtcyA9IHt9KSwKICAgICAgICAgICh0aGlzLnBhc3NlZFBhcmFtc1tNXSA9IGUpLAogICAgICAgICAgdGhpcy5pbml0aWFsaXplZCAmJiB0aGlzLnVwZGF0ZVN3aXBlck9uUHJvcENoYW5nZShNLCBlKTsKICAgICAgfSwKICAgIH0pKTsKfSk7CmNsYXNzIEV0IGV4dGVuZHMgRGUgewogIGNvbnN0cnVjdG9yKCkgewogICAgc3VwZXIoKSwgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7CiAgfQogIHJlbmRlcigpIHsKICAgIGNvbnN0IGUgPQogICAgICB0aGlzLmxhenkgfHwKICAgICAgdGhpcy5nZXRBdHRyaWJ1dGUoImxhenkiKSA9PT0gIiIgfHwKICAgICAgdGhpcy5nZXRBdHRyaWJ1dGUoImxhenkiKSA9PT0gInRydWUiOwogICAgaWYgKAogICAgICAoa2UodGhpcy5zaGFkb3dSb290LCBidCksCiAgICAgIHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzbG90IikpLAogICAgICBlKQogICAgKSB7CiAgICAgIGNvbnN0IGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgaC5jbGFzc0xpc3QuYWRkKCJzd2lwZXItbGF6eS1wcmVsb2FkZXIiKSwKICAgICAgICBoLnBhcnQuYWRkKCJwcmVsb2FkZXIiKSwKICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaCk7CiAgICB9CiAgfQogIGluaXRpYWxpemUoKSB7CiAgICB0aGlzLnJlbmRlcigpOwogIH0KICBjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgIHRoaXMuaW5pdGlhbGl6ZSgpOwogIH0KfQpjb25zdCBTdCA9ICgpID0+IHsKICB0eXBlb2Ygd2luZG93ID4gInUiIHx8CiAgICAod2luZG93LmN1c3RvbUVsZW1lbnRzLmdldCgic3dpcGVyLWNvbnRhaW5lciIpIHx8CiAgICAgIHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoInN3aXBlci1jb250YWluZXIiLCBJZSksCiAgICB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZ2V0KCJzd2lwZXItc2xpZGUiKSB8fAogICAgICB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJzd2lwZXItc2xpZGUiLCBFdCkpOwp9Owp0eXBlb2Ygd2luZG93IDwgInUiICYmCiAgKHdpbmRvdy5Td2lwZXJFbGVtZW50UmVnaXN0ZXJQYXJhbXMgPSAoTSkgPT4gewogICAgRWUucHVzaCguLi5NKTsKICB9KTsKZXhwb3J0IHsgSWUgYXMgU3dpcGVyQ29udGFpbmVyLCBFdCBhcyBTd2lwZXJTbGlkZSwgU3QgYXMgcmVnaXN0ZXIgfTsK"}},"time_used":31,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":30,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/qArxSU5_.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.489Z","timestamp":1785139669489,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/qArxSU5_.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"18dfb-654aa2b838de2-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 10559\r\nKeep-Alive: timeout=5, max=99\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":101883,"size_decoded":10912,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text","md5":"81b5db59e85ee2d3fa6fbb0ac35e4e8a","sha1":"a5bafba225a6df92412abe8081c052cab5a5149f","sha256":"77bf1d6eea59a8a6db12586647495c1bc72f945c914b90f9fc3c22f5ec37efc2","sha512":"94c284e2403a0fb2645784f0043c9ab7d08bf2729e113f2e4349088c25cc1527ce092e5d61ce9ef33ad7f796353ff072a38e72d31eb9113ab4f69e2619270018","ssdeep":"384:homej6Y1sMfGC2G5FhT9BnNfCppdc3lefZ3varUYl5Z1671lgOd2GVzE7Du2Fa3I:hoVjxsKLBnNff3lSYl5Z165ZC87GTGs","tlshash":"aea3ef0a92f50536a187b2784e0bd8993a2552cf8dfa7d683fec49051f0e13e66f42dd","first_seen":"2026-07-27T05:24:57.749584Z","last_seen":"2026-07-27T11:49:48.927559Z","times_seen":5,"resource_available":true,"data":"aW1wb3J0IHsgXyBhcyBEIH0gZnJvbSAiLi9iTmVwdWRwMS5qcyI7CmltcG9ydCB7CiAgYzQgYXMgc2UsCiAgYzUgYXMgYWUsCiAgYnIgYXMgRSwKICBjNiBhcyBHLAogIGM3IGFzIHEsCiAgYzggYXMgbGUsCiAgaSBhcyBLLAogIGJGIGFzIE8sCiAgcSBhcyBRLAogIHUgYXMgYiwKICBhIGFzIG8sCiAgYyBhcyBuLAogIEYgYXMgdywKICBlIGFzIEEsCiAgZiBhcyBpLAogIHcgYXMgbCwKICBiIGFzIGUsCiAgYTIgYXMgWCwKICBoIGFzIHUsCiAgdCBhcyBzLAogIG4gYXMgJCwKICBnIGFzIG0sCiAgXyBhcyBaLAogICQgYXMgaWUsCiAgYTcgYXMgcmUsCiAgYTAgYXMgbmUsCiAgYWogYXMgZGUsCiAgYWkgYXMgUiwKICBhNSBhcyBjZSwKICB4IGFzIGhlLAogIHIgYXMgTSwKICBzIGFzIHVlLAogIEggYXMgVywKICBwLAogIGM5IGFzIHBlLAogIGNhIGFzIG1lLAogIGFkIGFzIGdlLAogIFEgYXMgZmUsCn0gZnJvbSAiLi9TbTJtQ2ZERS5qcyI7CmltcG9ydCB7IFYgYXMgdmUgfSBmcm9tICIuL0NBbGtXYnVfLmpzIjsKaW1wb3J0IHsgViBhcyBZLCBhIGFzIEosIGMgYXMgeiB9IGZyb20gIi4vQlhOSFF5Sk4uanMiOwppbXBvcnQgeyBWIGFzIGVlIH0gZnJvbSAiLi9lN3I1REt4OS5qcyI7CmltcG9ydCB7IF8gYXMgeGUgfSBmcm9tICIuLzNrM0ZqR0dVLmpzIjsKaW1wb3J0IHsgQSBhcyBJIH0gZnJvbSAiLi9EX2l1NjI3Si5qcyI7CmltcG9ydCB7IGYgYXMgeWUsIFYgYXMgTiB9IGZyb20gIi4vWmZOWml5Q20uanMiOwovKiBlbXB0eSBjc3MgICAgICAgICovIGltcG9ydCB7IGMgYXMgQ2UgfSBmcm9tICIuL0JJcDUtM0VLLmpzIjsKaW1wb3J0IHsgViBhcyBfZSwgRyBhcyBiZSB9IGZyb20gIi4vRFhINjhxZnUuanMiOwppbXBvcnQgeyBfIGFzIHdlIH0gZnJvbSAiLi9EbEFVcUsyVS5qcyI7CmltcG9ydCAiLi9COFR4VHlhay5qcyI7CmltcG9ydCAiLi9DSThWRnNnSC5qcyI7CmltcG9ydCAiLi9CXzJGa1A4Uy5qcyI7CmltcG9ydCAiLi9CQWpKZUJrSy5qcyI7CmltcG9ydCAiLi9DTXVVVGxTMi5qcyI7CmltcG9ydCAiLi94VW81c0tHaS5qcyI7CmltcG9ydCAiLi9DMTBkYlgzay5qcyI7CmltcG9ydCAiLi9DMlFmYnE5Mi5qcyI7CmltcG9ydCAiLi9EOGF5dTdyUC5qcyI7CmltcG9ydCAiLi9DYVJoTGR1Ri5qcyI7CmltcG9ydCAiLi9DaEVySm4wNy5qcyI7CmltcG9ydCAiLi9EVzlfUlhBcS5qcyI7CmltcG9ydCAiLi9DcFdtZVBkRi5qcyI7CmltcG9ydCAiLi8xV1FGOW5sWi5qcyI7CmltcG9ydCAiLi9EQWN2VkdKZS5qcyI7CmltcG9ydCAiLi9ESUdKY2lZSi5qcyI7CmNvbnN0ICRlID0gQ2UoInYtc3BhY2VyIiwgImRpdiIsICJWU3BhY2VyIiksCiAga2UgPSBsZSh7IGNvbXBvbmVudE5hbWU6ICJOdXh0TGluayIgfSksCiAgQWUgPSBzZSh7CiAgICBuYW1lOiAiU3dpdGNoTG9jYWxlUGF0aExpbmsiLAogICAgcHJvcHM6IHsgbG9jYWxlOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6ICEwIH0gfSwKICAgIGluaGVyaXRBdHRyczogITEsCiAgICBzZXR1cCh0LCB7IHNsb3RzOiB2LCBhdHRyczogZCB9KSB7CiAgICAgIGNvbnN0IGEgPSBhZSgpOwogICAgICByZXR1cm4gKCkgPT4gWwogICAgICAgIEUocSwgYCR7R30tWyR7dC5sb2NhbGV9XWApLAogICAgICAgIEUoa2UsIHsgLi4uZCwgdG86IGVuY29kZVVSSShhKHQubG9jYWxlKSkgfSwgdi5kZWZhdWx0KSwKICAgICAgICBFKHEsIGAvJHtHfWApLAogICAgICBdOwogICAgfSwKICB9KSwKICBMZSA9IHsga2V5OiAwIH0sCiAgRmUgPSB7IGtleTogMSwgY2xhc3M6ICJwLTIgbXgtMyBib3JkZXIgYm9yZGVyLWdyYXktODAwIHJvdW5kZWQtcGlsbCIgfSwKICBQZSA9IHsgY2xhc3M6ICJmbGV4IGdhcC0yIiB9LAogIFRlID0geyBjbGFzczogInRydW5jYXRlIG1heC13LVsxNTBweF0gaGlkZGVuIG1kOmJsb2NrIiB9LAogIFNlID0gewogICAga2V5OiAwLAogICAgY2xhc3M6ICJtYi0zIHB4LTUgcHQtNSB0ZXh0LWxlZnQgdGV4dC1wcmltYXJ5LTYwMCB0ZXh0LXNtLXNlbWlib2xkIiwKICB9LAogIEhlID0geyBjbGFzczogImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG15LTEiIH0sCiAgVmUgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTcwMCB0ZXh0LW1kLXNlbWlib2xkIiB9LAogIEllID0gewogICAgX19uYW1lOiAiRHJvcGRvd24iLAogICAgc2V0dXAodCkgewogICAgICBjb25zdCB7IHQ6IHYgfSA9IEsoKSwKICAgICAgICBkID0gTygpLAogICAgICAgIGEgPSBRKCksCiAgICAgICAgZyA9IFsKICAgICAgICAgIHsKICAgICAgICAgICAgbmFtZTogdigiaGVhZGVyQW5kRm9vdGVyLnNlcnZpY2VzLnRpdGxlIiksCiAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5hbWU6ICJIb21lIiwKICAgICAgICAgICAgICAgICAgICByb3V0ZTogIi8iLAogICAgICAgICAgICAgICAgICAgIGlzTmV3OiAhMCwKICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZTogITEsCiAgICAgICAgICAgICAgICAgICAgaW1nU2l6ZTogeyB3aWR0aDogIjQwcHgiLCBoZWlnaHQ6ICI0MHB4IiB9LAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbmFtZTogIkRhc2hib2FyZCIsCiAgICAgICAgICAgICAgICAgICAgcm91dGU6ICIvZGFzaGJvYXJkIiwKICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6ICJfc2VsZiIsCiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU6ICExLAogICAgICAgICAgICAgICAgICAgIGltZ1NpemU6IHsgd2lkdGg6ICI0MHB4IiwgaGVpZ2h0OiAiNDBweCIgfSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5hbWU6ICJMb2dvdXQiLAogICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlOiAhMSwKICAgICAgICAgICAgICAgICAgICBpbWdTaXplOiB7IHdpZHRoOiAiNDBweCIsIGhlaWdodDogIjQwcHgiIH0sCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIGlzQWN0aXZlOiAhMSwKICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICBMID0gYXN5bmMgKEMpID0+IHsKICAgICAgICAgIEMgPT09ICJMb2dvdXQiICYmIChhd2FpdCBkLmxvZ291dCgpLCAod2luZG93LmxvY2F0aW9uLmhyZWYgPSAiLyIpKTsKICAgICAgICB9OwogICAgICByZXR1cm4gKEMsIHgpID0+IHsKICAgICAgICBjb25zdCBQID0gRCwKICAgICAgICAgIFYgPSBaOwogICAgICAgIHJldHVybiBiKGEpLnVzZXJJbmZvCiAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgIG4oImRpdiIsIExlLCBbCiAgICAgICAgICAgICAgKG8oKSwKICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgdywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBBKGcsIChIKSA9PgogICAgICAgICAgICAgICAgICBpKAogICAgICAgICAgICAgICAgICAgIGVlLAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGtleTogSC5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogInNsaWRlLXktdHJhbnNpdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICAiY2xvc2UtZGVsYXkiOiAiMTAwIiwKICAgICAgICAgICAgICAgICAgICAgICJvcGVuLWRlbGF5IjogIjAiLAogICAgICAgICAgICAgICAgICAgICAgIm9wZW4tb24taG92ZXIiOiAiIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRvcjogbCgoeyBwcm9wczogayB9KSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgWCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJmbGV4IGN1cnNvci1wb2ludGVyIGFsaWduLWNlbnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9mb3I6ICEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsKICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIoYSkudXNlckluZm8uYXZhdGFyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm14LTIgYm9yZGVyIHJvdW5kZWQtZnVsbCBib3JkZXItZ3JheS01MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICI0MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiNDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6IGIoYSkudXNlckluZm8uYXZhdGFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJzcmMiXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhbMF0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhbMF0gPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3M6ICJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWQiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHBlcnNvbiAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgUGUsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgVGUsIHMoYihhKS51c2VySW5mby5lbWFpbCksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKFAsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInctWzI0cHhdIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9jaGV2cm9uX2Rvd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgMTYKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICBILmNoaWxkcmVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogJChbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIhcm91bmRlZC0yeGwgbXQtMyBib3JkZXItc29saWQgYm9yZGVyIGJvcmRlci1ncmF5LTYwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEguY2hpbGRyZW4ubGVuZ3RoID4gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gImdyaWQgZ3JpZC1jb2xzLTIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiZ3JpZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobyghMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBILmNoaWxkcmVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGssIGgpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKCJkaXYiLCB7IGtleTogaCB9LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgay50aXRsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKCJoNiIsIFNlLCBzKGsudGl0bGUpLCAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbSgiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvKCEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLmNoaWxkcmVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYywgXykgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiBfIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogQy5sb2NhbGVQYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMucm91dGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWw6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5leHRlcm5hbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGMubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKFMpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTChjLm5hbWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgSGUsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5pbWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1nU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1nU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYCR7Yy5pbWd9YCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZHRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3JjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLm5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0byIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHRlcm5hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbkNsaWNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiY2xhc3MiXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgMTAyNAogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgXSkpCiAgICAgICAgICA6IG0oIiIsICEwKTsKICAgICAgfTsKICAgIH0sCiAgfSwKICBNZSA9IGllKHsgLi4ucmUoKSwgLi4ueWUoeyB2YXJpYW50OiAidGV4dCIgfSkgfSwgIlZUb29sYmFySXRlbXMiKSwKICB6ZSA9IG5lKCkoewogICAgbmFtZTogIlZUb29sYmFySXRlbXMiLAogICAgcHJvcHM6IE1lKCksCiAgICBzZXR1cCh0LCB2KSB7CiAgICAgIGxldCB7IHNsb3RzOiBkIH0gPSB2OwogICAgICByZXR1cm4gKAogICAgICAgIGRlKHsKICAgICAgICAgIFZCdG46IHsKICAgICAgICAgICAgY29sb3I6IFIodCwgImNvbG9yIiksCiAgICAgICAgICAgIGhlaWdodDogImluaGVyaXQiLAogICAgICAgICAgICB2YXJpYW50OiBSKHQsICJ2YXJpYW50IiksCiAgICAgICAgICB9LAogICAgICAgIH0pLAogICAgICAgIGNlKCgpID0+IHsKICAgICAgICAgIHZhciBhOwogICAgICAgICAgcmV0dXJuIGkoCiAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICB7IGNsYXNzOiBbInYtdG9vbGJhci1pdGVtcyIsIHQuY2xhc3NdLCBzdHlsZTogdC5zdHlsZSB9LAogICAgICAgICAgICBbKGEgPSBkLmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiBhLmNhbGwoZCldCiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIHt9CiAgICAgICk7CiAgICB9LAogIH0pLAogIFplID0geyBpZDogImhlYWRlciIsIGNsYXNzOiAic3RpY2t5IHRvcC0wIHotWzk5OV0gdy1mdWxsIGJvcmRlci1zb2xpZCIgfSwKICBFZSA9IHsgY2xhc3M6ICJmbGV4IGl0ZW1zLWNlbnRlciBoLWZ1bGwgdy1mdWxsIGp1c3RpZnktY2VudGVyICIgfSwKICBOZSA9IHsgY2xhc3M6ICJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciIgfSwKICBEZSA9IHsgY2xhc3M6ICIhaGlkZGVuIGxnOiFibG9jayBoLWZ1bGwiIH0sCiAgVWUgPSB7CiAgICBjbGFzczoKICAgICAgInRleHQtY2FwaXRhbGl6ZSB0ZXh0LWdyYXktNzAwIGhvdmVyOiF0ZXh0LWdyYXktODAwIHRleHQtbWQtc2VtaWJvbGQiLAogIH0sCiAgQmUgPSB7CiAgICBrZXk6IDAsCiAgICBjbGFzczogIm1iLTMgcHgtNSBwdC01IHRleHQtbGVmdCB0ZXh0LXByaW1hcnktNjAwIHRleHQtc20tc2VtaWJvbGQiLAogIH0sCiAgamUgPSB7IGNsYXNzOiAiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbXktMSIgfSwKICBHZSA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNzAwIHRleHQtbWQtc2VtaWJvbGQiIH0sCiAgcWUgPSB7IGNsYXNzOiAiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbXktMSIgfSwKICBSZSA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNzAwIHRleHQtbWQtc2VtaWJvbGQiIH0sCiAgV2UgPSB7IGtleTogMCwgY2xhc3M6ICJoaWRkZW4gbWQ6YmxvY2siIH0sCiAgS2UgPSB7IGtleTogMSwgY2xhc3M6ICJnYXAtMyBoaWRkZW4gIiB9LAogIE9lID0geyBjbGFzczogInRleHQtbWQtc2VtaWJvbGQgdGV4dC1ncmF5LTcwMCIgfSwKICBRZSA9IHsgY2xhc3M6ICJ0ZXh0LW1kLXNlbWlib2xkIiB9LAogIFhlID0geyBjbGFzczogIm14LTIgYmxvY2sgbGc6aGlkZGVuIiB9LAogIFllID0gewogICAga2V5OiAwLAogICAgY2xhc3M6CiAgICAgICJyZWxhdGl2ZSBwYi04IG92ZXJmbG93LXktc2Nyb2xsIGgtWzEwMHZoXSB3LVsxMDB2d10geGw6aGlkZGVuIHB4LTQgYmctd2hpdGUgei1bOTldIHJpZ2h0LTAgbGVmdC0wIGJvdHRvbS0wIiwKICB9LAogIEplID0geyBjbGFzczogImN1cnNvci1wb2ludGVyIiB9LAogIGUxID0gWyJvbkNsaWNrIl0sCiAgdDEgPSBbIm9uQ2xpY2siXSwKICBvMSA9IHsgY2xhc3M6ICJmbGV4IGZsZXgtY29sIGdhcC0yIiB9LAogIHMxID0geyBrZXk6IDAsIGNsYXNzOiAibWItMyB0ZXh0LXByaW1hcnktNjAwIHRleHQtc20tc2VtaWJvbGQiIH0sCiAgYTEgPSB7IGNsYXNzOiAibWwtMiIgfSwKICBsMSA9IHsKICAgIGtleTogMCwKICAgIGNsYXNzOgogICAgICAidGV4dC1zbS1tZWRpdW0gcm91bmRlZC14bCBweC0yLjUgcHktMSBiZy1zdWNjZXNzLTUwIHRleHQtc3VjY2Vzcy03MDAiLAogIH0sCiAgaTEgPSB7IGNsYXNzOiAiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbXktMSIgfSwKICByMSA9IHsgY2xhc3M6ICJ0ZXh0LWdyYXktNzAwIHRleHQtbWQtc2VtaWJvbGQiIH0sCiAgbjEgPSB7IGtleTogMCB9LAogIGQxID0gewogICAgY2xhc3M6CiAgICAgICJyZWxhdGl2ZSBibG9jayB3LWZ1bGwgcHgtMyBtdC0yIGN1cnNvci1wb2ludGVyIHhsOmhpZGRlbiB0ZXh0LW1kLXNlbWlib2xkIiwKICB9LAogIGMxID0geyBjbGFzczogImZsb2F0LWxlZnQgdGV4dC1ncmF5LTcwMCIgfSwKICBoMSA9IHsgY2xhc3M6ICJmbGV4IGZsZXgtY29sIGdhcC00IG10LTQiIH0sCiAgdTEgPSB7IGNsYXNzOiAiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiIH0sCiAgcDEgPSB7CiAgICBrZXk6IDEsCiAgICBjbGFzczoKICAgICAgInJlbGF0aXZlIG10LTggYmctd2hpdGUgcmlnaHQtMCBwdC02IGJvdHRvbS0wIHBiLTYgbGVmdC0wIHB4LTQgYm9yZGVyLXNvbGlkIGJvcmRlci10LVsxcHhdIGJvcmRlci1ncmF5LTIwMCBoaWRkZW4gZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC0zIiwKICB9LAogIG0xID0gewogICAgX19uYW1lOiAiaW5kZXgiLAogICAgc2V0dXAodCkgewogICAgICBjb25zdCB2ID0gaGUoImRpYWxvZyIpLAogICAgICAgIHsgbG9jYWxlOiBkLCB0OiBhIH0gPSBLKCksCiAgICAgICAgZyA9IFEoKSwKICAgICAgICBMID0gTygpLAogICAgICAgIEMgPSBNKCExKSwKICAgICAgICB4ID0gTShudWxsKSwKICAgICAgICBQID0gTShbCiAgICAgICAgICB7IHRleHQ6ICJkYXNoYm9hcmQiLCBsaW5rOiAiL2Rhc2hib2FyZCIgfSwKICAgICAgICAgIHsgdGV4dDogImxvZ291dCIsIGljb246ICJtZGktbG9nb3V0IiB9LAogICAgICAgIF0pLAogICAgICAgIFYgPSB1ZSgoKSA9PiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIG5hbWU6ICLQniDQvdCw0YEiLAogICAgICAgICAgICByb3V0ZTogIi9jb250YWN0LXVzIiwKICAgICAgICAgICAgaXNBY3RpdmU6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICBuYW1lOiAiRkFRIiwKICAgICAgICAgICAgcm91dGU6ICIvZmFxIiwKICAgICAgICAgICAgaXNBY3RpdmU6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICBuYW1lOiAi0J/RgNCw0LLQuNC70LAiLAogICAgICAgICAgICByb3V0ZTogIi90ZXJtcy1vZi1zZXJ2aWNlcyIsCiAgICAgICAgICAgIGlzQWN0aXZlOiBmYWxzZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgbmFtZTogItCf0L7Qu9C40YLQuNC60LAg0LrQvtC90YTQuNC00LXQvdGG0LjQsNC70YzQvdC+0YHRgtC4IiwKICAgICAgICAgICAgcm91dGU6ICIvcHJpdmFjeS1Qb2xpY3kiLAogICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIG5hbWU6ICLQn9C+0LTQtNC10YDQttC60LAiLAogICAgICAgICAgICByb3V0ZTogImh0dHBzOi8vdC5tZS9uY29ubmVjdF9vcmcgIiwKICAgICAgICAgICAgZXh0ZXJuYWw6IHRydWUsCiAgICAgICAgICAgIGlzQWN0aXZlOiBmYWxzZSwKICAgICAgICAgICAgY2xhc3M6ICJiZy1wcmltYXJ5LTYwMCB3LWZ1bGwgdGV4dC1tZC1zZW1pYm9sZCB0ZXh0LXdoaXRlIHB5LTIuNSBweC01IHJvdW5kZWQtbGciLAogICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgIGhlaWdodDogIjQ4cHgiLAogICAgICAgICAgICAgIGNvbG9yOiAid2hpdGUiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCgogICAgICAgIF0pCgogICAgICByZXR1cm4gKGgsIGMpID0+IHsKICAgICAgICB2YXIgQiwgajsKICAgICAgICBjb25zdCBfID0gRCwKICAgICAgICAgIFMgPSBaLAogICAgICAgICAgVSA9IEFlLAogICAgICAgICAgdGUgPSBJZTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbygpLAogICAgICAgICAgbigiZGl2IiwgWmUsIFsKICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgIF9lLAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAiYmctZ3JheS01MCBweC01IHB5LTEgbWQ6cHgtOCBib3JkZXItYiBib3JkZXItZ3JheS02MDAiLAogICAgICAgICAgICAgICAgICAgIGFwcDogIiIsCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBsKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICAgIHplLAogICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzOiAianVzdGlmeS1iZXR3ZWVuIHctZnVsbCBpdGVtcy1jZW50ZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBsKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIEVlLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIE5lLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgaHJlZjogIi8iIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoXywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiAibG9nb3Mvam9saXhvLWxvZ28uc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAidy1bMTIwcHhdIGgtWzI1cHhdIDEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBEZSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvKCEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocikgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogci5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAic2xpZGUteS10cmFuc2l0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNsb3NlLWRlbGF5IjogIjEwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVuLWRlbGF5IjogIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbi1vbi1ob3ZlciI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdG9yOiBsKCh7IHByb3BzOiBGIH0pID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFgoeyByZWZfZm9yOiAhMCB9LCBGLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAidHJhbnNwYXJlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OiAidGV4dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvOiByLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmbGV4IGdhcC0xIGl0ZW1zLWNlbnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvOiBoLmxvY2FsZVBhdGgoci5yb3V0ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBsKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhcms6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcChzKHIuaWNvbiksIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmltZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICIyNHB4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjI0cHgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiBgJHtyLmltZ31gLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInNyYyJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLm5hbWUgPT09ICJsb2NhbGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBiKGQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBoLiR0KHIubmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmNoaWxkcmVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoXywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInctWzI0cHhdIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9jaGV2cm9uX2Rvd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbSgiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBsKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBudWxsLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmNoaWxkcmVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogJChbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiFyb3VuZGVkLTJ4bCBib3JkZXItc29saWQgYm9yZGVyIGJvcmRlci1ncmF5LTYwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci5jaGlsZHJlbi5sZW5ndGggPiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJncmlkIGdyaWQtY29scy0zIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiZ3JpZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG8oITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIuY2hpbGRyZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChGLCBUKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiBUIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYudGl0bGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGLnRpdGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvKCEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYuY2hpbGRyZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIubmFtZSAhPT0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogaC5sb2NhbGVQYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkucm91dGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWw6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeS5leHRlcm5hbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkuaW1nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbWdTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLndpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmltZ1NpemUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiBgJHt5LmltZ31gLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3JjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkubmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4dGVybmFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkuaW1nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbWdTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLndpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmltZ1NpemUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiBgJHt5LmltZ31gLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3JjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkubmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJjbGFzcyJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtKCIiLCAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoJGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiKGcpLnVzZXJJbmZvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobygpLCBuKCJkaXYiLCBXZSwgW2kodGUpXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAobygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbigiZGl2IiwgS2UsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0OiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAiNDQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkOiAibGciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9yZGVyLXNvbGlkIGJvcmRlci1bMXB4XSBteS1jdXN0b20tYnV0dG9uIHRleHQtbm9uZSBib3JkZXItZ3JheS0yMDAgdy1mdWxsIHB5LTIuNSBweC01IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNbMF0gPSAocikgPT4gayhiKEkpLlNJR05fSU4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoaC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNpZ25JbiIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInByaW1hcnktNjAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogIjQ0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRlZDogImxnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJnLXByaW1hcnktNjAwIHctZnVsbCBteS1jdXN0b20tYnV0dG9uIHRleHQtbm9uZSB0ZXh0LW1kLXNlbWlib2xkIHRleHQtd2hpdGUgcHktMi41IHB4LTUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbMV0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY1sxXSA9IChyKSA9PiBrKGIoSSkuU0lHTl9VUCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyhoLiR0KCJoZWFkZXJBbmRGb290ZXIuc2lnblVwIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKCJzcGFuIiwgWGUsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoXywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9jbG9zZS5zdmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAidy1bMjRweF0gY3Vyc29yLXBvaW50ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjWzNdIHx8IChjWzNdID0gKHIpID0+IChDLnZhbHVlID0gITEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoXywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9iYXIuc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInctWzI0cHhdIGN1cnNvci1wb2ludGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1syXSB8fCAoY1syXSA9IChyKSA9PiAoQy52YWx1ZSA9ICEwKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBDLnZhbHVlCiAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICBuKCJkaXYiLCBZZSwgWwogICAgICAgICAgICAgICAgICAgICAgKG8oITApLAogICAgICAgICAgICAgICAgICAgICAgbigKICAgICAgICAgICAgICAgICAgICAgICAgdywKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgQSgKICAgICAgICAgICAgICAgICAgICAgICAgICBWLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgIChyLCBGKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKCJkaXYiLCB7IGtleTogRiwgY2xhc3M6ICJtZW51LWl0ZW0iIH0sIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgSmUsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAiZmxleCBqdXN0aWZ5LWJldHdlZW4gcHgtMyBweS0zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKFQpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeC52YWx1ZSA9PT0gci5uYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh4LnZhbHVlID0gbnVsbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHgudmFsdWUgPSByLm5hbWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvOiBoLmxvY2FsZVBhdGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIucm91dGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHIucm91dGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChoLl8ucHJvdmlkZXNbcGVdIHx8IGguJHJvdXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogci50YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFjdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBsKCgpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0LWdyYXktNzAwIHRleHQtbWQtc2VtaWJvbGQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKFQpID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIuY2hpbGRyZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChDLnZhbHVlID0gITApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoQy52YWx1ZSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLm5hbWUgPT09ICJsb2NhbGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYihkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGguJHQoci5uYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInRvIiwgInRhcmdldCJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmNoaWxkcmVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoXywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9jaGV2cm9uX2Rvd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInctWzI0cHhdIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbSgiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci5jaGlsZHJlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAkKFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYXYtZHJvcGRvd24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeC52YWx1ZSA9PT0gci5uYW1lID8gIiIgOiAiaGlkZGVuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoImRpdiIsIG8xLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobyghMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIuY2hpbGRyZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFQsIHkpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAicHgtNSB0ZXh0LWxlZnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogIm1heC1jb250ZW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVC50aXRsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyhULnRpdGxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCBhMSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG8oITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBULmNoaWxkcmVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmLCBvZSkgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IG9lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAicHktMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLm5hbWUgIT09CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvOiBoLmxvY2FsZVBhdGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYucm91dGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5leHRlcm5hbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmxleCBnYXAtMiB0ZXh0LWdyeS05MDAgdGV4dC1zbS1zZW1pYm9sZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjWzRdIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjWzRdID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDLnZhbHVlID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLmltZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1nU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC53aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbWdTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYCR7Zi5pbWd9YCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZHRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWlnaHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNyYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLiR0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLm5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYuaXNOZXcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGguJHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZXciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4dGVybmFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5pbWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1nU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1nU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYCR7Zi5pbWd9YCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZHRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3JjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5uYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImxvY2FsZSJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbSgiIiwgITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICBiKGcpLnVzZXJJbmZvCiAgICAgICAgICAgICAgICAgICAgICAgID8gKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBuKCJkaXYiLCBuMSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgZDEsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogImZsZXggIXctZnVsbCBqdXN0aWZ5LWJldHdlZW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1s1XSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY1s1XSA9IChyKSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgudmFsdWUgPT09ICJwcm9maWxlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoeC52YWx1ZSA9IG51bGwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICh4LnZhbHVlID0gInByb2ZpbGUiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGogPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEIgPSBiKGcpKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQi51c2VySW5mbykgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogai5lbWFpbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKF8sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInctWzI0cHhdIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM6ICJpY29ucy9jaGV2cm9uX2Rvd24uc3ZnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogJChbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgudmFsdWUgPT09ICJwcm9maWxlIiA/ICIhYmxvY2siIDogImhpZGRlbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZWZ0LTAgei01MCBtbC00IHN1Ym1lbnUtY29udGFpbmVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgiZGl2IiwgaDEsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG8oITApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUC52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyLCBGKSA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC1ncnktOTAwIHRleHQtc20tc2VtaWJvbGQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG86IGgubG9jYWxlUGF0aChyLmxpbmspLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKFQpID0+IEgoci50ZXh0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKCJkaXYiLCB1MSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKGguJHQoYGF1dGguJHtyLnRleHR9YCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci5pY29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChvKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKHMoci5pY29uKSwgMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG0oIiIsICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidG8iLCAib25DbGljayJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBuKCJkaXYiLCBwMSwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZy1wcmltYXJ5LTYwMCB3LWZ1bGwgdGV4dC1tZC1zZW1pYm9sZCB0ZXh0LXdoaXRlIHB5LTIuNSBweC01IHJvdW5kZWQtbGciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjWzZdIHx8IChjWzZdID0gKHIpID0+IGsoYihJKS5TSUdOX1VQKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMoaC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNpZ25VcCIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidXR0b24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmctd2hpdGUgYm9yZGVyLXNvbGlkIGJvcmRlci1bMXB4XSBib3JkZXItZ3JheS0yMDAgdy1mdWxsIHRleHQtbWQtc2VtaWJvbGQgcHktMi41IHB4LTUgcm91bmRlZC1sZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbN10gfHwgKGNbN10gPSAocikgPT4gayhiKEkpLlNJR05fSU4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyhoLiR0KCJoZWFkZXJBbmRGb290ZXIuc2lnbkluIikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIF0pKSwKICAgICAgICAgICAgICAgICAgICBdKSkKICAgICAgICAgICAgICAgICAgOiBtKCIiLCAhMCksCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgXSkKICAgICAgICApOwogICAgICB9OwogICAgfSwKICB9LAogIGcxID0geyBjbGFzczogImZsZXggZ2FwLTYiIH0sCiAgZjEgPSB7CiAgICB0YXJnZXQ6ICJfYmxhbmsiLAogICAgaHJlZjogImh0dHBzOi8veC5jb20vam9saXhvX2hpP3Q9WmtFYm1uNEdJaXNqcDBwRHI4TmhGdyZzPTA5IiwKICB9LAogIHYxID0gewogICAgdGFyZ2V0OiAiX2JsYW5rIiwKICAgIGhyZWY6ICJodHRwczovL3d3dy55b3V0dWJlLmNvbS9AbmNvbm5lY3Rfb3JnNzQyMCIsCiAgfSwKICB4MSA9IHsKICAgIHRhcmdldDogIl9ibGFuayIsCiAgICBocmVmOiAiaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9qb2xpeG8ub2ZmaWNpYWwvIiwKICB9LAogIHkxID0geyB0YXJnZXQ6ICJfYmxhbmsiLCBocmVmOiAiaHR0cHM6Ly90Lm1lL25jb25uZWN0X29yZyAiIH0sCiAgQzEgPSB7CiAgICB0YXJnZXQ6ICJfYmxhbmsiLAogICAgaHJlZjogImh0dHBzOi8vd3d3LnRydXN0cGlsb3QuY29tL3Jldmlldy9oaS5leGNoYW5nZSIsCiAgfSwKICBfMSA9IHsKICAgIHRhcmdldDogIl9ibGFuayIsCiAgICBocmVmOiAiaHR0cHM6Ly93d3cub2tjaGFuZ2VyLmNvbS9leGNoYW5nZXJzL05Db25uZWN0IiwKICB9LAogIGIxID0gewogICAgdGFyZ2V0OiAiX2JsYW5rIiwKICAgIGhyZWY6ICJodHRwczovL3d3dy5iZXN0Y2hhbmdlLmNvbS9qb2xpeG8tZXhjaGFuZ2VyLmh0bWwiLAogIH0sCiAgdzEgPSB7CiAgICBfX25hbWU6ICJpbmRleCIsCiAgICBwcm9wczogewogICAgICBjb2xvcjogewogICAgICAgIHR5cGU6IFN0cmluZywKICAgICAgICBkZWZhdWx0OiAiZmlsbC1ncmF5LTQwMCB0cmFuc2l0aW9uLWFsbCBob3ZlcjpmaWxsLWdyYXktNjAwIiwKICAgICAgfSwKICAgIH0sCiAgICBzZXR1cCh0KSB7CiAgICAgIHJldHVybiAodiwgZCkgPT4gKAogICAgICAgIG8oKSwKICAgICAgICBuKCJkaXYiLCBnMSwgWwoKICAgICAgICAgIGUoImEiLCB5MSwgWwogICAgICAgICAgICAobygpLAogICAgICAgICAgICBuKAogICAgICAgICAgICAgICJzdmciLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHdpZHRoOiAiMjQiLAogICAgICAgICAgICAgICAgaGVpZ2h0OiAiMjQiLAogICAgICAgICAgICAgICAgdmlld0JveDogIjAgMCAyNCAyNCIsCiAgICAgICAgICAgICAgICBmaWxsOiAibm9uZSIsCiAgICAgICAgICAgICAgICB4bWxuczogImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwKICAgICAgICAgICAgICAgIGNsYXNzOiAkKHQuY29sb3IpLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZFszXSB8fAogICAgICAgICAgICAgICAgKGRbM10gPSBbCiAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgImciLAogICAgICAgICAgICAgICAgICAgIHsgImNsaXAtcGF0aCI6ICJ1cmwoI2NsaXAwXzEzNzJfMTQzMSkiIH0sCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgZSgicGF0aCIsIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZpbGwtcnVsZSI6ICJldmVub2RkIiwKICAgICAgICAgICAgICAgICAgICAgICAgImNsaXAtcnVsZSI6ICJldmVub2RkIiwKICAgICAgICAgICAgICAgICAgICAgICAgZDogIk0yNCAxMkMyNCAxOC42Mjc0IDE4LjYyNzQgMjQgMTIgMjRDNS4zNzI1OCAyNCAwIDE4LjYyNzQgMCAxMkMwIDUuMzcyNTggNS4zNzI1OCAwIDEyIDBDMTguNjI3NCAwIDI0IDUuMzcyNTggMjQgMTJaTTEyLjQzIDguODU4OTNDMTEuMjYyOCA5LjM0NDQgOC45MzAxNCAxMC4zNDkyIDUuNDMxODkgMTEuODczM0M0Ljg2MzgzIDEyLjA5OTIgNC41NjYyNiAxMi4zMjAyIDQuNTM5MTcgMTIuNTM2M0M0LjQ5MzM5IDEyLjkwMTUgNC45NTA3MSAxMy4wNDUzIDUuNTczNDggMTMuMjQxMUM1LjY1ODE5IDEzLjI2NzggNS43NDU5NiAxMy4yOTU0IDUuODM1OTQgMTMuMzI0NkM2LjQ0ODY0IDEzLjUyMzggNy4yNzI4MyAxMy43NTY4IDcuNzAxMjkgMTMuNzY2QzguMDg5OTQgMTMuNzc0NCA4LjUyMzczIDEzLjYxNDIgOS4wMDI2NCAxMy4yODUzQzEyLjI3MTIgMTEuMDc5IDEzLjk1ODQgOS45NjM4MSAxNC4wNjQzIDkuOTM5NzdDMTQuMTM5IDkuOTIyODEgMTQuMjQyNiA5LjkwMTQ4IDE0LjMxMjggOS45NjM4NUMxNC4zODI5IDEwLjAyNjIgMTQuMzc2IDEwLjE0NDMgMTQuMzY4NiAxMC4xNzZDMTQuMzIzMyAxMC4zNjkxIDEyLjUyODEgMTIuMDM4MSAxMS41OTkxIDEyLjkwMThDMTEuMzA5NSAxMy4xNzEgMTEuMTA0MSAxMy4zNjIgMTEuMDYyMSAxMy40MDU2QzEwLjk2OCAxMy41MDMzIDEwLjg3MjEgMTMuNTk1OCAxMC43OCAxMy42ODQ2QzEwLjIxMDggMTQuMjMzMyA5Ljc4MzkxIDE0LjY0NDggMTAuODAzNiAxNS4zMTY4QzExLjI5MzYgMTUuNjM5NyAxMS42ODU3IDE1LjkwNjcgMTIuMDc2OSAxNi4xNzMxQzEyLjUwNDIgMTYuNDY0MSAxMi45MzAzIDE2Ljc1NDMgMTMuNDgxNiAxNy4xMTU3QzEzLjYyMjEgMTcuMjA3NyAxMy43NTYyIDE3LjMwMzQgMTMuODg2OSAxNy4zOTY1QzE0LjM4NDEgMTcuNzUxIDE0LjgzMDcgMTguMDY5NCAxNS4zODI2IDE4LjAxODZDMTUuNzAzMiAxNy45ODkxIDE2LjAzNDUgMTcuNjg3NiAxNi4yMDI3IDE2Ljc4ODRDMTYuNjAwMiAxNC42NjMxIDE3LjM4MTYgMTAuMDU4NSAxNy41NjIyIDguMTYwOTdDMTcuNTc4IDcuOTk0NzMgMTcuNTU4MSA3Ljc4MTk3IDE3LjU0MjIgNy42ODg1N0MxNy41MjYyIDcuNTk1MTggMTcuNDkyOCA3LjQ2MjExIDE3LjM3MTQgNy4zNjM2QzE3LjIyNzYgNy4yNDY5NCAxNy4wMDU2IDcuMjIyMzQgMTYuOTA2NCA3LjIyNDA4QzE2LjQ1NSA3LjIzMjAzIDE1Ljc2MjYgNy40NzI4MiAxMi40MyA4Ljg1ODkzWiIsCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgImRlZnMiLAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgZSgiY2xpcFBhdGgiLCB7IGlkOiAiY2xpcDBfMTM3Ml8xNDMxIiB9LCBbCiAgICAgICAgICAgICAgICAgICAgICAgIGUoInJlY3QiLCB7IHdpZHRoOiAiMjQiLCBoZWlnaHQ6ICIyNCIsIGZpbGw6ICJ3aGl0ZSIgfSksCiAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIC0xCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAyCiAgICAgICAgICAgICkpLAogICAgICAgICAgXSksCgogICAgICAgIF0pCiAgICAgICk7CiAgICB9LAogIH0sCiAgJDEgPSB7fSwKICBrMSA9IHsgY2xhc3M6ICIhYmctZ3JheS01MCBteC1hdXRvIHctZnVsbCBweC04IG1kOiFweC0xNiBweS0xNiIgfSwKICBBMSA9IHsKICAgIGNsYXNzOgogICAgICAibXgtYXV0byB0ZXh0LWxlZnQgbWQ6IXRleHQtbGVmdCBncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zIHhsOmdyaWQtY29scy02IGxnOmZsZXggZ2FwLTggcGItMTAgYm9yZGVyLXNvbGlkIGJvcmRlci1iLVsxcHhdIGJvcmRlci1ncmF5LTIwMCIsCiAgfSwKICBMMSA9IHsgY2xhc3M6ICJ3LWZ1bGwgbXgtYXV0byIgfSwKICBGMSA9IHsgY2xhc3M6ICJtdC02IHRleHQtZ3JheS02MDAgdGV4dC1tZC1yZWd1bGFyIG1kOnRleHQtbWQtbWVkaXVtIiB9LAogIFAxID0geyBjbGFzczogInctZnVsbCB0ZXh0LWxlZnQgbWQ6IXRleHQtbGVmdCBoaWRkZW4iIH0sCiAgVDEgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTUwMCB0ZXh0LXNtLXNlbWlib2xkIiB9LAogIFMxID0geyBjbGFzczogImZsZXggZmxleC1jb2wgZ2FwLTMgbXQtNCIgfSwKICBIMSA9IHsgY2xhc3M6ICJ3LWZ1bGwgdGV4dC1sZWZ0IG1kOiF0ZXh0LWxlZnQgaGlkZGVuIiB9LAogIFYxID0geyBjbGFzczogInRleHQtZ3JheS01MDAgdGV4dC1zbS1zZW1pYm9sZCIgfSwKICBJMSA9IHsgY2xhc3M6ICJmbGV4IGZsZXgtY29sIGdhcC0zIG10LTQiIH0sCiAgTTEgPSB7CiAgICBjbGFzczoKICAgICAgImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBnYXAtNiBtZDpmbGV4LXJvdyBsZzpqdXN0aWZ5LWFyb3VuZCBtZDpnYXAtMTYiLAogIH0sCiAgejEgPSB7IGNsYXNzOiAidGV4dC1sZWZ0IG1kOiF0ZXh0LWxlZnQgaGlkZGVuIiB9LAogIFoxID0geyBjbGFzczogInRleHQtZ3JheS01MDAgdGV4dC1zbS1zZW1pYm9sZCIgfSwKICBFMSA9IHsgY2xhc3M6ICJmbGV4IGZsZXgtY29sIGdhcC0zIG10LTQiIH0sCiAgTjEgPSB7CiAgICB0YXJnZXQ6ICJfYmxhbmsiLAogICAgaHJlZjogIi9ibG9nIiwKICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIGhpZGRlbiIsCiAgfSwKICBEMSA9IHsgY2xhc3M6ICJ0ZXh0LWxlZnQgbWQ6IXRleHQtbGVmdCBoaWRkZW4iIH0sCiAgVTEgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTUwMCB0ZXh0LXNtLXNlbWlib2xkIiB9LAogIEIxID0geyBjbGFzczogImZsZXggZmxleC1jb2wgZ2FwLTMgbXQtNCIgfSwKICBqMSA9IHsgY2xhc3M6ICJ0ZXh0LWxlZnQgbWQ6IXRleHQtbGVmdCBoaWRkZW4gIiB9LAogIEcxID0geyBjbGFzczogIm10LTggdGV4dC1ncmF5LTUwMCB0ZXh0LW1kLXNlbWlib2xkIiB9LAogIHExID0gewogICAgY2xhc3M6CiAgICAgICJncmlkIGdyaWQtY29scy0xIGdhcC00IG10LTQgc206Z3JpZC1jb2xzLTIgbWQ6Z3JpZC1jb2xzLTMgeGw6Z3JpZC1jb2xzLTQiLAogIH0sCiAgUjEgPSB7CiAgICB0YXJnZXQ6ICJfYmxhbmsiLAogICAgaHJlZjogIi9ibG9nL2V4Y2hhbmdlLWV0aGVyZXVtLXRvLXBheXBhbCIsCiAgICBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1zZW1pYm9sZCIsCiAgfSwKICBXMSA9IHsKICAgIHRhcmdldDogIl9ibGFuayIsCiAgICBocmVmOiAiL2Jsb2cvYnV5LWJpdGNvaW4td2l0aC1wZXJmZWN0LW1vbmV5LyIsCiAgICBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1zZW1pYm9sZCIsCiAgfSwKICBLMSA9IHsKICAgIHRhcmdldDogIl9ibGFuayIsCiAgICBocmVmOiAiL2Jsb2cvaG93LWV4Y2hhbmdlLXRldGhlci10by1wYXlwYWwvIiwKICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICB9LAogIE8xID0gewogICAgdGFyZ2V0OiAiX2JsYW5rIiwKICAgIGhyZWY6ICIvYmxvZy9ob3ctZXhjaGFuZ2UtZGFzaC10by1wYXlwYWwvIiwKICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICB9LAogIFExID0gewogICAgY2xhc3M6CiAgICAgICJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTYgbWQ6ZmxleC1yb3cgbWQ6Z2FwLTAiLAogIH0sCiAgWDEgPSB7IGNsYXNzOiAidGV4dC1ncmF5LTUwMCB0ZXh0LW1kLXJlZ3VsYXIiIH07CmZ1bmN0aW9uIFkxKHQsIHYpIHsKICBjb25zdCBkID0gRCwKICAgIGEgPSBaLAogICAgZyA9IFosCiAgICBMID0gdzE7CiAgcmV0dXJuICgKICAgIG8oKSwKICAgIG4oImRpdiIsIGsxLCBbCiAgICAgIGUoImRpdiIsIEExLCBbCiAgICAgICAgZSgiZGl2IiwgTDEsIFsKICAgICAgICAgIGkoZCwgewogICAgICAgICAgICBzcmM6ICJsb2dvcy9qb2xpeG8tbG9nby5zdmciLAogICAgICAgICAgICBjbGFzczogInctWzEyMHB4XSIsCiAgICAgICAgICAgIGFsdDogIiIsCiAgICAgICAgICB9KSwKICAgICAgICAgIGUoInAiLCBGMSwgcyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuZGVzY3JpcHRpb24iKSksIDEpLAogICAgICAgIF0pLAogICAgICAgIGUoImRpdiIsIFAxLCBbCiAgICAgICAgICBlKCJoNSIsIFQxLCBzKHQuJHQoImhlYWRlckFuZEZvb3Rlci5zZXJ2aWNlcy50aXRsZSIpKSwgMSksCiAgICAgICAgICBlKCJkaXYiLCBTMSwgWwogICAgICAgICAgICBpKAogICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtc2VtaWJvbGQiLAogICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3NlcnZpY2VzL3BlcmZlY3Rtb25leS10by1wYXlwYWwtZXhjaGFuZ2UiKSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNlcnZpY2VzLmVjVG9FYy5wZXJmZWN0VG9QYXlwYWwiKSksCiAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICBbInRvIl0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgaSgKICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgIHRvOiB0LmxvY2FsZVBhdGgoIi9zZXJ2aWNlcy93ZWJtb25leS10by1wYXlwYWwtZXhjaGFuZ2UiKSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNlcnZpY2VzLmVjVG9FYy53ZWJtb25leVRvUGF5cGFsIikpLAogICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1zZW1pYm9sZCIsCiAgICAgICAgICAgICAgICB0bzogdC5sb2NhbGVQYXRoKCIvc2VydmljZXMvcGF5ZWVyLXRvLXBheXBhbC1leGNoYW5nZSIpLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgcyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuc2VydmljZXMuZWNUb0VjLnBheWVlclRvUGF5cGFsIikpLAogICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjbGFzczogInRleHQtZ3JheS02MDAgdGV4dC1tZC1zZW1pYm9sZCIsCiAgICAgICAgICAgICAgICB0bzogdC5sb2NhbGVQYXRoKCIvc2VydmljZXMvYWR2Y2FzaC10by1wYXlwYWwtZXhjaGFuZ2UiKSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNlcnZpY2VzLmVjVG9FYy5hZHZjYXNoVG9QYXlwYWwiKSksCiAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICBbInRvIl0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgaSgKICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgIHRvOiB0LmxvY2FsZVBhdGgoIi9zZXJ2aWNlcy9iaXRjb2luLXRvLXBheXBhbC1leGNoYW5nZSIpLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgcygKICAgICAgICAgICAgICAgICAgICAgIHQuJHQoCiAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJBbmRGb290ZXIuc2VydmljZXMuY3J5cHRvVG9FYy5iaXRjb2luVG9QYXlwYWwiCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICApLAogICAgICAgICAgICBpKAogICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtc2VtaWJvbGQiLAogICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3NlcnZpY2VzL3RldGhlci10by1wYXlwYWwtZXhjaGFuZ2UiKSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAgIHMoCiAgICAgICAgICAgICAgICAgICAgICB0LiR0KCJoZWFkZXJBbmRGb290ZXIuc2VydmljZXMuY3J5cHRvVG9FYy50ZXRoZXJUb1BheXBhbCIpCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICApLAogICAgICAgICAgICBpKAogICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtc2VtaWJvbGQiLAogICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3NlcnZpY2VzL2V4Y2hhbmdlLXVzZHQtdHJ4IiksCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiBsKCgpID0+IFsKICAgICAgICAgICAgICAgICAgcCgKICAgICAgICAgICAgICAgICAgICBzKAogICAgICAgICAgICAgICAgICAgICAgdC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNlcnZpY2VzLmNyeXB0b1RvQ3J5cHRvLnVzZHRUb1RyeCIpCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICApLAogICAgICAgICAgXSksCiAgICAgICAgXSksCiAgICAgICAgZSgiZGl2IiwgSDEsIFsKICAgICAgICAgIGUoImg1IiwgVjEsIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNvbHV0aW9ucy50aXRsZSIpKSwgMSksCiAgICAgICAgICBlKCJkaXYiLCBJMSwgWwogICAgICAgICAgICBpKAogICAgICAgICAgICAgIGcsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3NvbHV0aW9ucy9IaVdhbGxldCIpLAogICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtc2VtaWJvbGQiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgIHAocyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuc29sdXRpb25zLmhpV2FsbGV0IikpLCAxKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0bzogdC5sb2NhbGVQYXRoKCIvc29sdXRpb25zL29ubGluZS1wYXltZW50LWZvci1idXNpbmVzcyIpLAogICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtc2VtaWJvbGQiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgIHAocyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuc29sdXRpb25zLnBheXBhbFBheW1lbnQiKSksIDEpLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICBbInRvIl0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgaSgKICAgICAgICAgICAgICBnLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRvOiB0LmxvY2FsZVBhdGgoIi9zb2x1dGlvbnMvb25saW5lLXBheW1lbnQiKSwKICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICBwKHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNvbHV0aW9ucy5wYXltZW50R2F0ZSIpKSwgMSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICApLAogICAgICAgICAgICBpKAogICAgICAgICAgICAgIGcsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3NvbHV0aW9ucy9leGNoYW5nZS1wYXlwYWwiKSwKICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICBwKHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLnNvbHV0aW9ucy5leGNoYW5nZVBheXBhbCIpKSwgMSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICApLAogICAgICAgICAgICBpKAogICAgICAgICAgICAgIGcsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3NvbHV0aW9ucy9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciIpLAogICAgICAgICAgICAgICAgY2xhc3M6ICJ0ZXh0LWdyYXktNjAwIHRleHQtbWQtc2VtaWJvbGQiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGVmYXVsdDogbCgoKSA9PiBbCiAgICAgICAgICAgICAgICAgIHAoCiAgICAgICAgICAgICAgICAgICAgcyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuc29sdXRpb25zLlBlcmZlY3RNb25leUVWb3VjaGVyIikpLAogICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICksCiAgICAgICAgICBdKSwKICAgICAgICBdKSwKICAgICAgICBlKCJkaXYiLCBNMSwgWwogICAgICAgICAgZSgiZGl2IiwgejEsIFsKICAgICAgICAgICAgZSgiaDUiLCBaMSwgcyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuY29tcGFueS50aXRsZSIpKSwgMSksCiAgICAgICAgICAgIGUoImRpdiIsIEUxLCBbCiAgICAgICAgICAgICAgaSgKICAgICAgICAgICAgICAgIGcsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIHRvOiB0LmxvY2FsZVBhdGgoIi9jb250YWN0LXVzIiksCiAgICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgIHAocyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuYWJvdXRVcy5jb250YWN0IikpLCAxKSwKICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgIF86IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgOCwKICAgICAgICAgICAgICAgIFsidG8iXQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZSgiYSIsIE4xLCBzKHQuJHQoImhlYWRlckFuZEZvb3Rlci5jb21wYW55LmJsb2ciKSksIDEpLAogICAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgICBnLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICB0bzogdC5sb2NhbGVQYXRoKCIvZmFxIiksCiAgICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgIHAocyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuY29tcGFueS5mYXEiKSksIDEpLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICBdKSwKICAgICAgICAgIGUoImRpdiIsIEQxLCBbCiAgICAgICAgICAgIGUoImg1IiwgVTEsIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLmxlZ2FsLnRpdGxlIikpLCAxKSwKICAgICAgICAgICAgZSgiZGl2IiwgQjEsIFsKICAgICAgICAgICAgICBpKAogICAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3Rlcm1zLW9mLXNlcnZpY2VzIiksCiAgICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgIHAocyh0LiR0KCJoZWFkZXJBbmRGb290ZXIubGVnYWwudGVybXMiKSksIDEpLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgXzogMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgICAgWyJ0byJdCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBpKAogICAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgdG86IHQubG9jYWxlUGF0aCgiL3ByaXZhY3ktcG9saWN5IiksCiAgICAgICAgICAgICAgICAgIGNsYXNzOiAidGV4dC1ncmF5LTYwMCB0ZXh0LW1kLXNlbWlib2xkIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGwoKCkgPT4gWwogICAgICAgICAgICAgICAgICAgIHAocyh0LiR0KCJoZWFkZXJBbmRGb290ZXIubGVnYWwucHJpdmFjeSIpKSwgMSksCiAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBfOiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICAgICBbInRvIl0KICAgICAgICAgICAgICApLAogICAgICAgICAgICBdKSwKICAgICAgICAgIF0pLAogICAgICAgIF0pLAogICAgICBdKSwKICAgICAgZSgiZGl2IiwgajEsIFsKICAgICAgICBlKCJoNSIsIEcxLCBzKHQuJHQoImhlYWRlckFuZEZvb3Rlci5ndWlkZXMudGl0bGUiKSksIDEpLAogICAgICAgIGUoImRpdiIsIHExLCBbCiAgICAgICAgICBlKCJhIiwgUjEsIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLmd1aWRlcy5ldGhlcmV1bVRvUGF5cGFsIikpLCAxKSwKICAgICAgICAgIGUoImEiLCBXMSwgcyh0LiR0KCJoZWFkZXJBbmRGb290ZXIuZ3VpZGVzLmJpdGNvaW5Ub1BheXBhbCIpKSwgMSksCiAgICAgICAgICBlKCJhIiwgSzEsIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLmd1aWRlcy50ZXRoZXJUb1BheXBhbCIpKSwgMSksCiAgICAgICAgICBlKCJhIiwgTzEsIHModC4kdCgiaGVhZGVyQW5kRm9vdGVyLmd1aWRlcy5kYXNoVG9QYXlwYWwiKSksIDEpLAogICAgICAgIF0pLAogICAgICBdKSwKICAgICAgdlswXSB8fCAodlswXSA9IGUoImhyIiwgeyBjbGFzczogIm10LTEwIG1iLTgiIH0sIG51bGwsIC0xKSksCiAgICAgIGUoImRpdiIsIFExLCBbCiAgICAgICAgZSgKICAgICAgICAgICJkaXYiLAogICAgICAgICAgWDEsCiAgICAgICAgICAiIMKpICIgKwogICAgICAgICAgICBzKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkgKwogICAgICAgICAgICAiICIgKwogICAgICAgICAgICBzKHQuJHQoImhlYWRlckFuZEZvb3Rlci5jb3B5cmlnaHQiKSksCiAgICAgICAgICAxCiAgICAgICAgKSwKICAgICAgICBpKEwpLAogICAgICBdKSwKICAgIF0pCiAgKTsKfQpjb25zdCBKMSA9IHdlKCQxLCBbWyJyZW5kZXIiLCBZMV1dKSwKICBldCA9IHsgY2xhc3M6ICJsYXlvdXQtY29udGFpbmVyIiB9LAogIHR0ID0geyBjbGFzczogIm1haW4tY29udGVudCIgfSwKICBTdCA9IHsKICAgIF9fbmFtZTogImRlZmF1bHQiLAogICAgc2V0dXAodCkgewogICAgICBjb25zdCB2ID0gTShudWxsKTsKICAgICAgcmV0dXJuICgKICAgICAgICBnZSgiZGlhbG9nIiwgewogICAgICAgICAgb3BlbjogKEwsIEMsIHgsIFApID0+IHsKICAgICAgICAgICAgdi52YWx1ZS5vcGVuRGlhbG9nKEwsIEMsIHgsIFApOwogICAgICAgICAgfSwKICAgICAgICAgIGNsb3NlOiAoKSA9PiB7CiAgICAgICAgICAgIHYudmFsdWUuY2xvc2VEaWFsb2coKTsKICAgICAgICAgIH0sCiAgICAgICAgfSksCiAgICAgICAgKEwsIEMpID0+IHsKICAgICAgICAgIGNvbnN0IHggPSBtMSwKICAgICAgICAgICAgUCA9IEoxOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgbygpLAogICAgICAgICAgICBuKAogICAgICAgICAgICAgIHcsCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICBlKCJkaXYiLCBldCwgWwogICAgICAgICAgICAgICAgICBpKHgpLAogICAgICAgICAgICAgICAgICBlKCJtYWluIiwgdHQsIFtmZShMLiRzbG90cywgImRlZmF1bHQiKV0pLAogICAgICAgICAgICAgICAgICBpKFAsIHsgY2xhc3M6ICJtdC0xNiIgfSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIGkoYmUsIHsgcmVmX2tleTogImdsb2JhbERpYWxvZyIsIHJlZjogdiB9LCBudWxsLCA1MTIpLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgNjQKICAgICAgICAgICAgKQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICk7CiAgICB9LAogIH07CmV4cG9ydCB7IFN0IGFzIGRlZmF1bHQgfTsK"}},"time_used":33,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":31,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/CMuUTlS2.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.499Z","timestamp":1785139669499,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/CMuUTlS2.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"229c-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 3290\r\nKeep-Alive: timeout=5, max=98\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":8860,"size_decoded":3641,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (8859)","md5":"95d5c231451227f9008abf9a286ee10a","sha1":"4266324041ce8571d943105be85ab61675c760f3","sha256":"3c68442643cadc58f62d3dc06c506b17165b1857d7d18fe85e3b13e7c0be3f44","sha512":"d846b64402e72523fe2a9a0713468b9197886b99b251e6a59c7521064daa77951be5c8e6a0b3252867d8b58cd7767580cdf55f104017d11d7c32653220694728","ssdeep":"192:ZnIpGbIA8eNRxeZ1Kv07YEAfUWZgDJsx33Q1RZNsLeZnT7/Noqo4PY:ZIo8SRKm0kEAo6p3Q1RZwepTTNoqoWY","tlshash":"ee02d89a37e5753216e729e220ff1141f7790e44f04881e47036ae1a2a37ec592d7eea","first_seen":"2025-10-23T03:46:52.752511Z","last_seen":"2026-07-27T11:49:48.986184Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2EwIGFzIFUsYU4gYXMgVyxhaiBhcyBYLCQgYXMgQyxzIGFzIF8sbSBhcyBqLGF2IGFzIGssYW4gYXMgTyxhZCBhcyAkLHggYXMgRixhaSBhcyBQLGsgYXMgTixqIGFzIHosYnMgYXMgSixhMSBhcyBRLG8gYXMgWixidCBhcyBLLGFHIGFzIGVlLGF5IGFzIHRlLGJ1IGFzIG5lLHUgYXMgaWUsYWsgYXMgc2UsYnYgYXMgVH1mcm9tIi4vU20ybUNmREUuanMiO2NvbnN0IHJlPUMoe2RlZmF1bHRzOk9iamVjdCxkaXNhYmxlZDpCb29sZWFuLHJlc2V0OltOdW1iZXIsU3RyaW5nXSxyb290OltCb29sZWFuLFN0cmluZ10sc2NvcGVkOkJvb2xlYW59LCJWRGVmYXVsdHNQcm92aWRlciIpLGZlPVUoITEpKHtuYW1lOiJWRGVmYXVsdHNQcm92aWRlciIscHJvcHM6cmUoKSxzZXR1cChlLHQpe2xldHtzbG90czpufT10O2NvbnN0e2RlZmF1bHRzOmksZGlzYWJsZWQ6cyxyZXNldDpyLHJvb3Q6dSxzY29wZWQ6cH09VyhlKTtyZXR1cm4gWChpLHtyZXNldDpyLHJvb3Q6dSxzY29wZWQ6cCxkaXNhYmxlZDpzfSksKCk9Pnt2YXIgYztyZXR1cm4oYz1uLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpjLmNhbGwobil9fX0pLHZlPUMoe2VsZXZhdGlvbjp7dHlwZTpbTnVtYmVyLFN0cmluZ10sdmFsaWRhdG9yKGUpe2NvbnN0IHQ9cGFyc2VJbnQoZSk7cmV0dXJuIWlzTmFOKHQpJiZ0Pj0wJiZ0PD0yNH19fSwiZWxldmF0aW9uIik7ZnVuY3Rpb24gaGUoZSl7cmV0dXJue2VsZXZhdGlvbkNsYXNzZXM6XygoKT0+e2NvbnN0IG49aihlKT9lLnZhbHVlOmUuZWxldmF0aW9uLGk9W107cmV0dXJuIG49PW51bGx8fGkucHVzaChgZWxldmF0aW9uLSR7bn1gKSxpfSl9fWNvbnN0IGdlPUMoe21vZGVsVmFsdWU6e3R5cGU6bnVsbCxkZWZhdWx0OnZvaWQgMH0sbXVsdGlwbGU6Qm9vbGVhbixtYW5kYXRvcnk6W0Jvb2xlYW4sU3RyaW5nXSxtYXg6TnVtYmVyLHNlbGVjdGVkQ2xhc3M6U3RyaW5nLGRpc2FibGVkOkJvb2xlYW59LCJncm91cCIpLF9lPUMoe3ZhbHVlOm51bGwsZGlzYWJsZWQ6Qm9vbGVhbixzZWxlY3RlZENsYXNzOlN0cmluZ30sImdyb3VwLWl0ZW0iKTtmdW5jdGlvbiB3ZShlLHQpe2xldCBuPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTohMDtjb25zdCBpPWsoInVzZUdyb3VwSXRlbSIpO2lmKCFpKXRocm93IG5ldyBFcnJvcigiW1Z1ZXRpZnldIHVzZUdyb3VwSXRlbSBjb21wb3NhYmxlIG11c3QgYmUgdXNlZCBpbnNpZGUgYSBjb21wb25lbnQgc2V0dXAgZnVuY3Rpb24iKTtjb25zdCBzPU8oKTskKFN5bWJvbC5mb3IoYCR7dC5kZXNjcmlwdGlvbn06aWRgKSxzKTtjb25zdCByPUYodCxudWxsKTtpZighcil7aWYoIW4pcmV0dXJuIHI7dGhyb3cgbmV3IEVycm9yKGBbVnVldGlmeV0gQ291bGQgbm90IGZpbmQgdXNlR3JvdXAgaW5qZWN0aW9uIHdpdGggc3ltYm9sICR7dC5kZXNjcmlwdGlvbn1gKX1jb25zdCB1PVAoZSwidmFsdWUiKSxwPV8oKCk9PiEhKHIuZGlzYWJsZWQudmFsdWV8fGUuZGlzYWJsZWQpKTtyLnJlZ2lzdGVyKHtpZDpzLHZhbHVlOnUsZGlzYWJsZWQ6cH0saSksTigoKT0+e3IudW5yZWdpc3RlcihzKX0pO2NvbnN0IGM9XygoKT0+ci5pc1NlbGVjdGVkKHMpKSx3PV8oKCk9PnIuaXRlbXMudmFsdWVbMF0uaWQ9PT1zKSxnPV8oKCk9PnIuaXRlbXMudmFsdWVbci5pdGVtcy52YWx1ZS5sZW5ndGgtMV0uaWQ9PT1zKSxmPV8oKCk9PmMudmFsdWUmJltyLnNlbGVjdGVkQ2xhc3MudmFsdWUsZS5zZWxlY3RlZENsYXNzXSk7cmV0dXJuIHooYyxvPT57aS5lbWl0KCJncm91cDpzZWxlY3RlZCIse3ZhbHVlOm99KX0se2ZsdXNoOiJzeW5jIn0pLHtpZDpzLGlzU2VsZWN0ZWQ6Yyxpc0ZpcnN0OncsaXNMYXN0OmcsdG9nZ2xlOigpPT5yLnNlbGVjdChzLCFjLnZhbHVlKSxzZWxlY3Q6bz0+ci5zZWxlY3QocyxvKSxzZWxlY3RlZENsYXNzOmYsdmFsdWU6dSxkaXNhYmxlZDpwLGdyb3VwOnJ9fWZ1bmN0aW9uIGJlKGUsdCl7bGV0IG49ITE7Y29uc3QgaT1KKFtdKSxzPVEoZSwibW9kZWxWYWx1ZSIsW10sbz0+bz09bnVsbD9bXTpWKGksdGUobykpLG89Pntjb25zdCBhPWFlKGksbyk7cmV0dXJuIGUubXVsdGlwbGU/YTphWzBdfSkscj1rKCJ1c2VHcm91cCIpO2Z1bmN0aW9uIHUobyxhKXtjb25zdCBkPW8sbD1TeW1ib2wuZm9yKGAke3QuZGVzY3JpcHRpb259OmlkYCksaD1uZShsLHI9PW51bGw/dm9pZCAwOnIudm5vZGUpLmluZGV4T2YoYSk7aWUoZC52YWx1ZSk9PW51bGwmJihkLnZhbHVlPWgsZC51c2VJbmRleEFzVmFsdWU9ITApLGg+LTE/aS5zcGxpY2UoaCwwLGQpOmkucHVzaChkKX1mdW5jdGlvbiBwKG8pe2lmKG4pcmV0dXJuO2MoKTtjb25zdCBhPWkuZmluZEluZGV4KGQ9PmQuaWQ9PT1vKTtpLnNwbGljZShhLDEpfWZ1bmN0aW9uIGMoKXtjb25zdCBvPWkuZmluZChhPT4hYS5kaXNhYmxlZCk7byYmZS5tYW5kYXRvcnk9PT0iZm9yY2UiJiYhcy52YWx1ZS5sZW5ndGgmJihzLnZhbHVlPVtvLmlkXSl9WigoKT0+e2MoKX0pLE4oKCk9PntuPSEwfSksSygoKT0+e2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKWlbb10udXNlSW5kZXhBc1ZhbHVlJiYoaVtvXS52YWx1ZT1vKX0pO2Z1bmN0aW9uIHcobyxhKXtjb25zdCBkPWkuZmluZChsPT5sLmlkPT09byk7aWYoIShhJiYoZCE9bnVsbCYmZC5kaXNhYmxlZCkpKWlmKGUubXVsdGlwbGUpe2NvbnN0IGw9cy52YWx1ZS5zbGljZSgpLHY9bC5maW5kSW5kZXgoQT0+QT09PW8pLGg9fnY7aWYoYT1hPz8haCxoJiZlLm1hbmRhdG9yeSYmbC5sZW5ndGg8PTF8fCFoJiZlLm1heCE9bnVsbCYmbC5sZW5ndGgrMT5lLm1heClyZXR1cm47djwwJiZhP2wucHVzaChvKTp2Pj0wJiYhYSYmbC5zcGxpY2UodiwxKSxzLnZhbHVlPWx9ZWxzZXtjb25zdCBsPXMudmFsdWUuaW5jbHVkZXMobyk7aWYoZS5tYW5kYXRvcnkmJmwpcmV0dXJuO3MudmFsdWU9YT8/IWw/W29dOltdfX1mdW5jdGlvbiBnKG8pe2lmKGUubXVsdGlwbGUscy52YWx1ZS5sZW5ndGgpe2NvbnN0IGE9cy52YWx1ZVswXSxkPWkuZmluZEluZGV4KGg9PmguaWQ9PT1hKTtsZXQgbD0oZCtvKSVpLmxlbmd0aCx2PWlbbF07Zm9yKDt2LmRpc2FibGVkJiZsIT09ZDspbD0obCtvKSVpLmxlbmd0aCx2PWlbbF07aWYodi5kaXNhYmxlZClyZXR1cm47cy52YWx1ZT1baVtsXS5pZF19ZWxzZXtjb25zdCBhPWkuZmluZChkPT4hZC5kaXNhYmxlZCk7YSYmKHMudmFsdWU9W2EuaWRdKX19Y29uc3QgZj17cmVnaXN0ZXI6dSx1bnJlZ2lzdGVyOnAsc2VsZWN0ZWQ6cyxzZWxlY3Q6dyxkaXNhYmxlZDpQKGUsImRpc2FibGVkIikscHJldjooKT0+ZyhpLmxlbmd0aC0xKSxuZXh0OigpPT5nKDEpLGlzU2VsZWN0ZWQ6bz0+cy52YWx1ZS5pbmNsdWRlcyhvKSxzZWxlY3RlZENsYXNzOl8oKCk9PmUuc2VsZWN0ZWRDbGFzcyksaXRlbXM6XygoKT0+aSksZ2V0SXRlbUluZGV4Om89Pm9lKGksbyl9O3JldHVybiAkKHQsZiksZn1mdW5jdGlvbiBvZShlLHQpe2NvbnN0IG49VihlLFt0XSk7cmV0dXJuIG4ubGVuZ3RoP2UuZmluZEluZGV4KGk9PmkuaWQ9PT1uWzBdKTotMX1mdW5jdGlvbiBWKGUsdCl7Y29uc3Qgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKGk9Pntjb25zdCBzPWUuZmluZCh1PT5lZShpLHUudmFsdWUpKSxyPWVbaV07KHM9PW51bGw/dm9pZCAwOnMudmFsdWUpIT1udWxsP24ucHVzaChzLmlkKTpyIT1udWxsJiZuLnB1c2goci5pZCl9KSxufWZ1bmN0aW9uIGFlKGUsdCl7Y29uc3Qgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKGk9Pntjb25zdCBzPWUuZmluZEluZGV4KHI9PnIuaWQ9PT1pKTtpZih+cyl7Y29uc3Qgcj1lW3NdO24ucHVzaChyLnZhbHVlIT1udWxsP3IudmFsdWU6cyl9fSksbn1jb25zdCBMPVN5bWJvbCgicmlwcGxlU3RvcCIpLGxlPTgwO2Z1bmN0aW9uIEkoZSx0KXtlLnN0eWxlLnRyYW5zZm9ybT10LGUuc3R5bGUud2Via2l0VHJhbnNmb3JtPXR9ZnVuY3Rpb24geChlKXtyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lPT09IlRvdWNoRXZlbnQifWZ1bmN0aW9uIFIoZSl7cmV0dXJuIGUuY29uc3RydWN0b3IubmFtZT09PSJLZXlib2FyZEV2ZW50In1jb25zdCB1ZT1mdW5jdGlvbihlLHQpe3ZhciBmO2xldCBuPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxpPTAscz0wO2lmKCFSKGUpKXtjb25zdCBvPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT14KGUpP2UudG91Y2hlc1tlLnRvdWNoZXMubGVuZ3RoLTFdOmU7aT1hLmNsaWVudFgtby5sZWZ0LHM9YS5jbGllbnRZLW8udG9wfWxldCByPTAsdT0uMzsoZj10Ll9yaXBwbGUpIT1udWxsJiZmLmNpcmNsZT8odT0uMTUscj10LmNsaWVudFdpZHRoLzIscj1uLmNlbnRlcj9yOnIrTWF0aC5zcXJ0KChpLXIpKioyKyhzLXIpKioyKS80KTpyPU1hdGguc3FydCh0LmNsaWVudFdpZHRoKioyK3QuY2xpZW50SGVpZ2h0KioyKS8yO2NvbnN0IHA9YCR7KHQuY2xpZW50V2lkdGgtcioyKS8yfXB4YCxjPWAkeyh0LmNsaWVudEhlaWdodC1yKjIpLzJ9cHhgLHc9bi5jZW50ZXI/cDpgJHtpLXJ9cHhgLGc9bi5jZW50ZXI/YzpgJHtzLXJ9cHhgO3JldHVybntyYWRpdXM6cixzY2FsZTp1LHg6dyx5OmcsY2VudGVyWDpwLGNlbnRlclk6Y319LEU9e3Nob3coZSx0KXt2YXIgYTtsZXQgbj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e307aWYoISgoYT10PT1udWxsP3ZvaWQgMDp0Ll9yaXBwbGUpIT1udWxsJiZhLmVuYWJsZWQpKXJldHVybjtjb25zdCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtpLmFwcGVuZENoaWxkKHMpLGkuY2xhc3NOYW1lPSJ2LXJpcHBsZV9fY29udGFpbmVyIixuLmNsYXNzJiYoaS5jbGFzc05hbWUrPWAgJHtuLmNsYXNzfWApO2NvbnN0e3JhZGl1czpyLHNjYWxlOnUseDpwLHk6YyxjZW50ZXJYOncsY2VudGVyWTpnfT11ZShlLHQsbiksZj1gJHtyKjJ9cHhgO3MuY2xhc3NOYW1lPSJ2LXJpcHBsZV9fYW5pbWF0aW9uIixzLnN0eWxlLndpZHRoPWYscy5zdHlsZS5oZWlnaHQ9Zix0LmFwcGVuZENoaWxkKGkpO2NvbnN0IG89d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7byYmby5wb3NpdGlvbj09PSJzdGF0aWMiJiYodC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLHQuZGF0YXNldC5wcmV2aW91c1Bvc2l0aW9uPSJzdGF0aWMiKSxzLmNsYXNzTGlzdC5hZGQoInYtcmlwcGxlX19hbmltYXRpb24tLWVudGVyIikscy5jbGFzc0xpc3QuYWRkKCJ2LXJpcHBsZV9fYW5pbWF0aW9uLS12aXNpYmxlIiksSShzLGB0cmFuc2xhdGUoJHtwfSwgJHtjfSkgc2NhbGUzZCgke3V9LCR7dX0sJHt1fSlgKSxzLmRhdGFzZXQuYWN0aXZhdGVkPVN0cmluZyhwZXJmb3JtYW5jZS5ub3coKSksc2V0VGltZW91dCgoKT0+e3MuY2xhc3NMaXN0LnJlbW92ZSgidi1yaXBwbGVfX2FuaW1hdGlvbi0tZW50ZXIiKSxzLmNsYXNzTGlzdC5hZGQoInYtcmlwcGxlX19hbmltYXRpb24tLWluIiksSShzLGB0cmFuc2xhdGUoJHt3fSwgJHtnfSkgc2NhbGUzZCgxLDEsMSlgKX0sMCl9LGhpZGUoZSl7dmFyIHI7aWYoISgocj1lPT1udWxsP3ZvaWQgMDplLl9yaXBwbGUpIT1udWxsJiZyLmVuYWJsZWQpKXJldHVybjtjb25zdCB0PWUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgidi1yaXBwbGVfX2FuaW1hdGlvbiIpO2lmKHQubGVuZ3RoPT09MClyZXR1cm47Y29uc3Qgbj10W3QubGVuZ3RoLTFdO2lmKG4uZGF0YXNldC5pc0hpZGluZylyZXR1cm47bi5kYXRhc2V0LmlzSGlkaW5nPSJ0cnVlIjtjb25zdCBpPXBlcmZvcm1hbmNlLm5vdygpLU51bWJlcihuLmRhdGFzZXQuYWN0aXZhdGVkKSxzPU1hdGgubWF4KDI1MC1pLDApO3NldFRpbWVvdXQoKCk9PntuLmNsYXNzTGlzdC5yZW1vdmUoInYtcmlwcGxlX19hbmltYXRpb24tLWluIiksbi5jbGFzc0xpc3QuYWRkKCJ2LXJpcHBsZV9fYW5pbWF0aW9uLS1vdXQiKSxzZXRUaW1lb3V0KCgpPT57dmFyIHA7ZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ2LXJpcHBsZV9fYW5pbWF0aW9uIikubGVuZ3RoPT09MSYmZS5kYXRhc2V0LnByZXZpb3VzUG9zaXRpb24mJihlLnN0eWxlLnBvc2l0aW9uPWUuZGF0YXNldC5wcmV2aW91c1Bvc2l0aW9uLGRlbGV0ZSBlLmRhdGFzZXQucHJldmlvdXNQb3NpdGlvbiksKChwPW4ucGFyZW50Tm9kZSk9PW51bGw/dm9pZCAwOnAucGFyZW50Tm9kZSk9PT1lJiZlLnJlbW92ZUNoaWxkKG4ucGFyZW50Tm9kZSl9LDMwMCl9LHMpfX07ZnVuY3Rpb24gQihlKXtyZXR1cm4gdHlwZW9mIGU+InUifHwhIWV9ZnVuY3Rpb24gYihlKXtjb25zdCB0PXt9LG49ZS5jdXJyZW50VGFyZ2V0O2lmKCEoIShuIT1udWxsJiZuLl9yaXBwbGUpfHxuLl9yaXBwbGUudG91Y2hlZHx8ZVtMXSkpe2lmKGVbTF09ITAseChlKSluLl9yaXBwbGUudG91Y2hlZD0hMCxuLl9yaXBwbGUuaXNUb3VjaD0hMDtlbHNlIGlmKG4uX3JpcHBsZS5pc1RvdWNoKXJldHVybjtpZih0LmNlbnRlcj1uLl9yaXBwbGUuY2VudGVyZWR8fFIoZSksbi5fcmlwcGxlLmNsYXNzJiYodC5jbGFzcz1uLl9yaXBwbGUuY2xhc3MpLHgoZSkpe2lmKG4uX3JpcHBsZS5zaG93VGltZXJDb21taXQpcmV0dXJuO24uX3JpcHBsZS5zaG93VGltZXJDb21taXQ9KCk9PntFLnNob3coZSxuLHQpfSxuLl9yaXBwbGUuc2hvd1RpbWVyPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dmFyIGk7KGk9bj09bnVsbD92b2lkIDA6bi5fcmlwcGxlKSE9bnVsbCYmaS5zaG93VGltZXJDb21taXQmJihuLl9yaXBwbGUuc2hvd1RpbWVyQ29tbWl0KCksbi5fcmlwcGxlLnNob3dUaW1lckNvbW1pdD1udWxsKX0sbGUpfWVsc2UgRS5zaG93KGUsbix0KX19ZnVuY3Rpb24gUyhlKXtlW0xdPSEwfWZ1bmN0aW9uIG0oZSl7Y29uc3QgdD1lLmN1cnJlbnRUYXJnZXQ7aWYodCE9bnVsbCYmdC5fcmlwcGxlKXtpZih3aW5kb3cuY2xlYXJUaW1lb3V0KHQuX3JpcHBsZS5zaG93VGltZXIpLGUudHlwZT09PSJ0b3VjaGVuZCImJnQuX3JpcHBsZS5zaG93VGltZXJDb21taXQpe3QuX3JpcHBsZS5zaG93VGltZXJDb21taXQoKSx0Ll9yaXBwbGUuc2hvd1RpbWVyQ29tbWl0PW51bGwsdC5fcmlwcGxlLnNob3dUaW1lcj13aW5kb3cuc2V0VGltZW91dCgoKT0+e20oZSl9KTtyZXR1cm59d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0Ll9yaXBwbGUmJih0Ll9yaXBwbGUudG91Y2hlZD0hMSl9KSxFLmhpZGUodCl9fWZ1bmN0aW9uIEcoZSl7Y29uc3QgdD1lLmN1cnJlbnRUYXJnZXQ7dCE9bnVsbCYmdC5fcmlwcGxlJiYodC5fcmlwcGxlLnNob3dUaW1lckNvbW1pdCYmKHQuX3JpcHBsZS5zaG93VGltZXJDb21taXQ9bnVsbCksd2luZG93LmNsZWFyVGltZW91dCh0Ll9yaXBwbGUuc2hvd1RpbWVyKSl9bGV0IHk9ITE7ZnVuY3Rpb24gSChlKXsheSYmKGUua2V5Q29kZT09PVQuZW50ZXJ8fGUua2V5Q29kZT09PVQuc3BhY2UpJiYoeT0hMCxiKGUpKX1mdW5jdGlvbiBEKGUpe3k9ITEsbShlKX1mdW5jdGlvbiBNKGUpe3kmJih5PSExLG0oZSkpfWZ1bmN0aW9uIFkoZSx0LG4pe2NvbnN0e3ZhbHVlOmksbW9kaWZpZXJzOnN9PXQscj1CKGkpO2lmKHJ8fEUuaGlkZShlKSxlLl9yaXBwbGU9ZS5fcmlwcGxlPz97fSxlLl9yaXBwbGUuZW5hYmxlZD1yLGUuX3JpcHBsZS5jZW50ZXJlZD1zLmNlbnRlcixlLl9yaXBwbGUuY2lyY2xlPXMuY2lyY2xlLHNlKGkpJiZpLmNsYXNzJiYoZS5fcmlwcGxlLmNsYXNzPWkuY2xhc3MpLHImJiFuKXtpZihzLnN0b3Ape2UuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsUyx7cGFzc2l2ZTohMH0pLGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixTKTtyZXR1cm59ZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixiLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsbSx7cGFzc2l2ZTohMH0pLGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixHLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsbSksZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGIpLGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbSksZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixtKSxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEgpLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLEQpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsTSksZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLG0se3Bhc3NpdmU6ITB9KX1lbHNlIXImJm4mJnEoZSl9ZnVuY3Rpb24gcShlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsYiksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixiKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixtKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsRyksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsbSksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixtKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLG0pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsSCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsRCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLG0pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsTSl9ZnVuY3Rpb24gZGUoZSx0KXtZKGUsdCwhMSl9ZnVuY3Rpb24gY2UoZSl7ZGVsZXRlIGUuX3JpcHBsZSxxKGUpfWZ1bmN0aW9uIHBlKGUsdCl7aWYodC52YWx1ZT09PXQub2xkVmFsdWUpcmV0dXJuO2NvbnN0IG49Qih0Lm9sZFZhbHVlKTtZKGUsdCxuKX1jb25zdCB5ZT17bW91bnRlZDpkZSx1bm1vdW50ZWQ6Y2UsdXBkYXRlZDpwZX07ZXhwb3J0e3llIGFzIFIsZmUgYXMgVix3ZSBhcyBhLHZlIGFzIGIsaGUgYXMgYyxnZSBhcyBkLF9lIGFzIG0sYmUgYXMgdX07Cg=="}},"time_used":48,"timings":{"blocked":21,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/GlobalDialog.DcjiQ1ex.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.481Z","timestamp":1785139669481,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/GlobalDialog.DcjiQ1ex.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"cde-654aa2b8318b2-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 980\r\nKeep-Alive: timeout=5, max=92\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":3294,"size_decoded":1315,"mime_type":"text/css","magic":"ASCII text","md5":"07969277740ae5c19362e3cf3dc98809","sha1":"a30cfda3c3d84236668c6de746389103207258dc","sha256":"85521acfaa1c458c351046e6e8021b0dfe461d4cbe1ca812cb90eccac2818bc7","sha512":"80ff639d4369faca11a0e382398c911989c54c8750a5264772de7a21f41b97c33f539022f388f6c3477d569877e28e1277c980aa92f23abd374990708387f172","ssdeep":"","tlshash":"5261dd5cb5b35868584bf14c1be99648535e00639a9fc8e77fc131885fce3d89292b98","first_seen":"2025-10-23T03:46:52.639278Z","last_seen":"2026-07-27T11:49:48.957072Z","times_seen":8,"resource_available":false,"data":"LnYtdG9vbGJhciB7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS12LWJvcmRlci1jb2xvciksIHZhcigtLXYtYm9yZGVyLW9wYWNpdHkpKTsKICAgIGJvcmRlci1zdHlsZTogc29saWQ7CiAgICBib3JkZXItd2lkdGg6IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleDogbm9uZTsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiAuMnMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHdpZHRoLCB0cmFuc2Zvcm0sIG1heC13aWR0aCwgbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tLCBib3gtc2hhZG93OwogICAgd2lkdGg6IDEwMCUKfQoKLnYtdG9vbGJhci0tYm9yZGVyIHsKICAgIGJvcmRlci13aWR0aDogdGhpbjsKICAgIGJveC1zaGFkb3c6IG5vbmUKfQoKLnYtdG9vbGJhciB7CiAgICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tdi10aGVtZS1zdXJmYWNlLWxpZ2h0KSk7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS12LXNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAuMikpLCAwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIC4xNCkpLCAwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS1hbWJpZW50LW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgLjEyKSk7CiAgICBjb2xvcjogcmdiYSh2YXIoLS12LXRoZW1lLW9uLXN1cmZhY2UtbGlnaHQpLCB2YXIoLS12LWhpZ2gtZW1waGFzaXMtb3BhY2l0eSkpCn0KCi52LXRvb2xiYXItLWFic29sdXRlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZQp9Cgoudi10b29sYmFyLS1jb2xsYXBzZSB7CiAgICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IDI0cHg7CiAgICBtYXgtd2lkdGg6IDExMnB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbgp9Cgoudi10b29sYmFyLS1jb2xsYXBzZSAudi10b29sYmFyLXRpdGxlIHsKICAgIGRpc3BsYXk6IG5vbmUKfQoKLnYtdG9vbGJhci0tZmxhdCB7CiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHZhcigtLXYtc2hhZG93LWtleS11bWJyYS1vcGFjaXR5LCByZ2JhKDAsIDAsIDAsIC4yKSksIDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHksIHJnYmEoMCwgMCwgMCwgLjE0KSksIDAgMCAwIDAgdmFyKC0tdi1zaGFkb3cta2V5LWFtYmllbnQtb3BhY2l0eSwgcmdiYSgwLCAwLCAwLCAuMTIpKQp9Cgoudi10b29sYmFyLS1mbG9hdGluZyB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleAp9Cgoudi10b29sYmFyLS1yb3VuZGVkIHsKICAgIGJvcmRlci1yYWRpdXM6IDRweAp9Cgoudi10b29sYmFyX19jb250ZW50LAoudi10b29sYmFyX19leHRlbnNpb24gewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGluaGVyaXQ7CiAgICB3aWR0aDogMTAwJQp9Cgoudi10b29sYmFyX19jb250ZW50IHsKICAgIG92ZXJmbG93OiBoaWRkZW4KfQoKLnYtdG9vbGJhcl9fY29udGVudD4udi1idG46Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWlubGluZS1zdGFydDogNHB4Cn0KCi52LXRvb2xiYXJfX2NvbnRlbnQ+LnYtYnRuOmxhc3QtY2hpbGQgewogICAgbWFyZ2luLWlubGluZS1lbmQ6IDRweAp9Cgoudi10b29sYmFyX19jb250ZW50Pi52LXRvb2xiYXItdGl0bGUgewogICAgbWFyZ2luLWlubGluZS1zdGFydDogMjBweAp9Cgoudi10b29sYmFyLS1kZW5zaXR5LXByb21pbmVudCAudi10b29sYmFyX19jb250ZW50IHsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Cn0KCi52LXRvb2xiYXJfX2ltYWdlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBsZWZ0OiAwOwogICAgb3BhY2l0eTogdmFyKC0tdi10b29sYmFyLWltYWdlLW9wYWNpdHksIDEpOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsKICAgIHdpZHRoOiAxMDAlCn0KCi52LXRvb2xiYXJfX2FwcGVuZCwKLnYtdG9vbGJhcl9fcHJlcGVuZCB7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIGRpc3BsYXk6IGZsZXgKfQoKLnYtdG9vbGJhcl9fcHJlcGVuZCB7CiAgICBtYXJnaW4taW5saW5lOiA0cHggYXV0bwp9Cgoudi10b29sYmFyX19hcHBlbmQgewogICAgbWFyZ2luLWlubGluZTogYXV0byA0cHgKfQoKLnYtdG9vbGJhci10aXRsZSB7CiAgICBmbGV4OiAxIDE7CiAgICBmb250LXNpemU6IDEuMjVyZW07CiAgICBmb250LXdlaWdodDogNDAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDA7CiAgICBsaW5lLWhlaWdodDogMS43NXJlbTsKICAgIG1pbi13aWR0aDogMDsKICAgIHRleHQtdHJhbnNmb3JtOiBub25lCn0KCi52LXRvb2xiYXItLWRlbnNpdHktcHJvbWluZW50IC52LXRvb2xiYXItdGl0bGUgewogICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICBmb250LXNpemU6IDEuNXJlbTsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMDsKICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtOwogICAgcGFkZGluZy1ib3R0b206IDZweDsKICAgIHRleHQtdHJhbnNmb3JtOiBub25lCn0KCi52LXRvb2xiYXItdGl0bGVfX3BsYWNlaG9sZGVyIHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXAKfQoKLnYtdG9vbGJhci1pdGVtcyB7CiAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogaW5oZXJpdAp9Cgoudi10b29sYmFyLWl0ZW1zPi52LWJ0biB7CiAgICBib3JkZXItcmFkaXVzOiAwCn0KQG1lZGlhIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjEwMjNweCl7CiAgICAudi10b29sYmFyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDY1cHggIWltcG9ydGFudDsKICAgIH0KLnYtb3ZlcmxheVtkYXRhLXYtN2E2ZTAyNzVdIHsKICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA4MAp9"}},"time_used":220,"timings":{"blocked":194,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/bNepudp1.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.491Z","timestamp":1785139669491,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/bNepudp1.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"23c-654aa2b834792-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 345\r\nKeep-Alive: timeout=5, max=99\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":572,"size_decoded":694,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (571)","md5":"cf35873dcaa6d32622bd71206b45834e","sha1":"cac729379ed208bde651a4f58a75d69e0f78f4bb","sha256":"e3c6bad8aaf19fa969a8ef284925c346acaae75ca82a4d59765380b9f393d577","sha512":"088c2985856a06c6da5cf74d2fea7a2b4f6efdf0cd82bc7aafc69b53e12085879451aea0c3416e1955936581ee9d482272912a86c48887313415c6f18149059c","ssdeep":"","tlshash":"e7f0ac29752ceb7b8cd01887251c18051a48ed9da733e5b097a82c419102530fe3c728","first_seen":"2025-10-23T03:46:52.551196Z","last_seen":"2026-07-27T11:49:48.969114Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2EgYXMgYyxjIGFzIHMsZiBhcyBpLHcgYXMgbixiIGFzIGcsTyBhcyBkfWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0e1YgYXMgYX1mcm9tIi4vQ0Fsa1didV8uanMiO2NvbnN0IG09e2NsYXNzOiJtaW4tdy1maXQgbWluLWgtZml0In0sZj17X19uYW1lOiJJbWFnZSIscHJvcHM6e3NyYzp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sd2lkdGg6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGhlaWdodDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LHNldHVwKHQpe2NvbnN0IGg9ZCgpLHI9ZT0+YCR7aC5wdWJsaWMuYmFzZUltYWdlVXJsfSR7ZX1gO3JldHVybihlLGwpPT4oYygpLHMoImRpdiIsbnVsbCxbaShhLHt3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodCxzcmM6cih0LnNyYyl9LHtlcnJvcjpuKCgpPT5bZygiZGl2IixtLFtpKGEse3NyYzpgL2ltYWdlcy8ke3Quc3JjfWAsd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9LG51bGwsOCxbInNyYyIsIndpZHRoIiwiaGVpZ2h0Il0pXSldKSxfOjF9LDgsWyJ3aWR0aCIsImhlaWdodCIsInNyYyJdKV0pKX19O2V4cG9ydHtmIGFzIF99Owo="}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BAjJeBkK.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.498Z","timestamp":1785139669498,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/BAjJeBkK.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"f5-654aa2b82d64a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 206\r\nKeep-Alive: timeout=5, max=98\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":245,"size_decoded":554,"mime_type":"application/javascript","magic":"Java source, ASCII text","md5":"8cb3c26a5e02f1f735fb7aa7d35848bb","sha1":"331e798d01fa28aa24de8ff770ca54b968c5bf9e","sha256":"b0c6d51b14476c76c79ca0fddb606ab2c19f35bfdf69503785e677f84e630ac0","sha512":"2fd33daac8b9807c0f7bc6b1ebb7a640b5d0544ccc596ec370c1d1742fc4912f84da190a46413d95f27d97dc1929f82c3767f2287b96f06a04f48edf83cd4c50","ssdeep":"","tlshash":"1fd097ceb09041f553d34ee8036a4635a03a2338232b9ad070230da12b04450c373ff6","first_seen":"2025-10-23T03:46:52.737066Z","last_seen":"2026-07-27T11:49:48.908147Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e1IgYXMgcyxvIGFzIHQscyBhcyBlLGJoIGFzIG59ZnJvbSIuL1NtMm1DZkRFLmpzIjtmdW5jdGlvbiBpKCl7Y29uc3Qgbz1zKCExKTtyZXR1cm4gdCgoKT0+e3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntvLnZhbHVlPSEwfSl9KSx7c3NyQm9vdFN0eWxlczplKCgpPT5vLnZhbHVlP3ZvaWQgMDp7dHJhbnNpdGlvbjoibm9uZSAhaW1wb3J0YW50In0pLGlzQm9vdGVkOm4obyl9fWV4cG9ydHtpIGFzIHV9Owo="}},"time_used":46,"timings":{"blocked":20,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/C10dbX3k.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.505Z","timestamp":1785139669505,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/C10dbX3k.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"5c0e-654aa2b82fd5a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 8429\r\nKeep-Alive: timeout=5, max=97\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":23566,"size_decoded":8780,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (23565)","md5":"a92a0860f4417b5941466230293170d1","sha1":"12916ecc0f5de20e2f69962c596e5684145873a6","sha256":"47d1c18c4cbb05dfad9666df1b0cc2c1895938a3e511a4ea2a58fe89ac23d1e1","sha512":"9d97492503aee20a0b3500f23d6f183c6785f16669c605994c5ebd4e4312dafa081761f036423a0a8ae413f359228ffec9ad6a685d11a9405073a4412312d93d","ssdeep":"384:88lhqvwCEfrdZXJ4grxMlMgb4wTivLP8tCD2i44cDrK5gtAlpEazq6K2z3vKD1CJ:xlhqvwCEfregrxMl94wTivD8tCDP44cA","tlshash":"9bb22a9832987071a3ff8a9e80778346a3155694b01ed4d0b03eadbd3966e5493f3b1e","first_seen":"2025-10-23T03:46:52.025539Z","last_seen":"2026-07-27T11:49:48.971968Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2FvIGFzIE1lLGJNIGFzIEZlLCQgYXMgUSxyIGFzIFYsYXUgYXMgeixhdyBhcyB2ZSxqIGFzIEIsYXIgYXMgSCxiTiBhcyB6ZSxzIGFzIEEsYWcgYXMgbWUsYWYgYXMgVyxhcyBhcyB4ZSxhcSBhcyBoZSxiTyBhcyBMZSxiUCBhcyBxZSxhdiBhcyBvZSx4IGFzIEJlLGJnIGFzIEVlLGEyIGFzICQsYUIgYXMgWWUsUiBhcyBLLGFwIGFzIFVlLG8gYXMgWGUsYnMgYXMgTmUsYWQgYXMgR2UsYlEgYXMgS2UsYmggYXMgUWUsYTcgYXMgWmUsYTkgYXMgSmUsYTAgYXMgZXQsYTEgYXMgdHQsYWEgYXMgbnQsYWIgYXMgb3QsYWggYXMgcnQsYWkgYXMgYXQsayBhcyBpdCxhNSBhcyBzdCxmIGFzIEksYlIgYXMgbHQsSSBhcyBjdCxYIGFzIHV0LGFlIGFzIGZ0LEYgYXMgZHQsYmogYXMgdnR9ZnJvbSIuL1NtMm1DZkRFLmpzIjtpbXBvcnR7cCBhcyBTZSxmIGFzIGFlLGEgYXMgaWUsYiBhcyBPZSxnIGFzIHBlLGMgYXMgbXQsZCBhcyBodH1mcm9tIi4veFVvNXNLR2kuanMiO2ltcG9ydHttIGFzIGd0LHUgYXMgeXR9ZnJvbSIuL0I4VHhUeWFrLmpzIjtpbXBvcnR7bSBhcyBidCx1IGFzIHd0fWZyb20iLi9DMlFmYnE5Mi5qcyI7aW1wb3J0e20gYXMgeHQsTSBhcyBFdH1mcm9tIi4vQ0k4VkZzZ0guanMiO2NsYXNzIGp7Y29uc3RydWN0b3IodCl7bGV0e3g6bix5Om8sd2lkdGg6YSxoZWlnaHQ6cn09dDt0aGlzLng9bix0aGlzLnk9byx0aGlzLndpZHRoPWEsdGhpcy5oZWlnaHQ9cn1nZXQgdG9wKCl7cmV0dXJuIHRoaXMueX1nZXQgYm90dG9tKCl7cmV0dXJuIHRoaXMueSt0aGlzLmhlaWdodH1nZXQgbGVmdCgpe3JldHVybiB0aGlzLnh9Z2V0IHJpZ2h0KCl7cmV0dXJuIHRoaXMueCt0aGlzLndpZHRofX1mdW5jdGlvbiBQZShlLHQpe3JldHVybnt4OntiZWZvcmU6TWF0aC5tYXgoMCx0LmxlZnQtZS5sZWZ0KSxhZnRlcjpNYXRoLm1heCgwLGUucmlnaHQtdC5yaWdodCl9LHk6e2JlZm9yZTpNYXRoLm1heCgwLHQudG9wLWUudG9wKSxhZnRlcjpNYXRoLm1heCgwLGUuYm90dG9tLXQuYm90dG9tKX19fWZ1bmN0aW9uIFN0KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP25ldyBqKHt4OmVbMF0seTplWzFdLHdpZHRoOjAsaGVpZ2h0OjB9KTplLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWZ1bmN0aW9uIE90KGUpe2NvbnN0IHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWdldENvbXB1dGVkU3R5bGUoZSksbz1uLnRyYW5zZm9ybTtpZihvKXtsZXQgYSxyLHMsaSxjO2lmKG8uc3RhcnRzV2l0aCgibWF0cml4M2QoIikpYT1vLnNsaWNlKDksLTEpLnNwbGl0KC8sIC8pLHI9K2FbMF0scz0rYVs1XSxpPSthWzEyXSxjPSthWzEzXTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgibWF0cml4KCIpKWE9by5zbGljZSg3LC0xKS5zcGxpdCgvLCAvKSxyPSthWzBdLHM9K2FbM10saT0rYVs0XSxjPSthWzVdO2Vsc2UgcmV0dXJuIG5ldyBqKHQpO2NvbnN0IGY9bi50cmFuc2Zvcm1PcmlnaW4sbD10LngtaS0oMS1yKSpwYXJzZUZsb2F0KGYpLGc9dC55LWMtKDEtcykqcGFyc2VGbG9hdChmLnNsaWNlKGYuaW5kZXhPZigiICIpKzEpKSx4PXI/dC53aWR0aC9yOmUub2Zmc2V0V2lkdGgrMSxiPXM/dC5oZWlnaHQvczplLm9mZnNldEhlaWdodCsxO3JldHVybiBuZXcgaih7eDpsLHk6Zyx3aWR0aDp4LGhlaWdodDpifSl9ZWxzZSByZXR1cm4gbmV3IGoodCl9ZnVuY3Rpb24gcHQoZSx0LG4pe2lmKHR5cGVvZiBlLmFuaW1hdGU+InUiKXJldHVybntmaW5pc2hlZDpQcm9taXNlLnJlc29sdmUoKX07bGV0IG87dHJ5e289ZS5hbmltYXRlKHQsbil9Y2F0Y2h7cmV0dXJue2ZpbmlzaGVkOlByb21pc2UucmVzb2x2ZSgpfX1yZXR1cm4gdHlwZW9mIG8uZmluaXNoZWQ+InUiJiYoby5maW5pc2hlZD1uZXcgUHJvbWlzZShhPT57by5vbmZpbmlzaD0oKT0+e2Eobyl9fSkpLG99Y29uc3QgSj1uZXcgV2Vha01hcDtmdW5jdGlvbiBQdChlLHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2gobj0+e2lmKE1lKG4pKXtjb25zdCBvPUZlKG4pLGE9Si5nZXQoZSk7aWYodFtuXT09bnVsbClhPT1udWxsfHxhLmZvckVhY2gocj0+e2NvbnN0W3MsaV09cjtzPT09byYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLGkpLGEuZGVsZXRlKHIpKX0pO2Vsc2UgaWYoIWF8fCFbLi4uYV0uc29tZShyPT5yWzBdPT09byYmclsxXT09PXRbbl0pKXtlLmFkZEV2ZW50TGlzdGVuZXIobyx0W25dKTtjb25zdCByPWF8fG5ldyBTZXQ7ci5hZGQoW28sdFtuXV0pLEouaGFzKGUpfHxKLnNldChlLHIpfX1lbHNlIHRbbl09PW51bGw/ZS5yZW1vdmVBdHRyaWJ1dGUobik6ZS5zZXRBdHRyaWJ1dGUobix0W25dKX0pfWZ1bmN0aW9uIEN0KGUsdCl7T2JqZWN0LmtleXModCkuZm9yRWFjaChuPT57aWYoTWUobikpe2NvbnN0IG89RmUobiksYT1KLmdldChlKTthPT1udWxsfHxhLmZvckVhY2gocj0+e2NvbnN0W3MsaV09cjtzPT09byYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLGkpLGEuZGVsZXRlKHIpKX0pfWVsc2UgZS5yZW1vdmVBdHRyaWJ1dGUobil9KX1mdW5jdGlvbiBfZShlKXtpZih0eXBlb2YgZS5nZXRSb290Tm9kZSE9ImZ1bmN0aW9uIil7Zm9yKDtlLnBhcmVudE5vZGU7KWU9ZS5wYXJlbnROb2RlO3JldHVybiBlIT09ZG9jdW1lbnQ/bnVsbDpkb2N1bWVudH1jb25zdCB0PWUuZ2V0Um9vdE5vZGUoKTtyZXR1cm4gdCE9PWRvY3VtZW50JiZ0LmdldFJvb3ROb2RlKHtjb21wb3NlZDohMH0pIT09ZG9jdW1lbnQ/bnVsbDp0fWNvbnN0IFJ0PSJjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIix1bj0iY3ViaWMtYmV6aWVyKDAuMCwgMCwgMC4yLCAxKSIsZm49ImN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpIjtmdW5jdGlvbiBBdChlKXtsZXQgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7Zm9yKDtlOyl7aWYodD9UdChlKTpnZShlKSlyZXR1cm4gZTtlPWUucGFyZW50RWxlbWVudH1yZXR1cm4gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudH1mdW5jdGlvbiB0ZShlLHQpe2NvbnN0IG49W107aWYodCYmZSYmIXQuY29udGFpbnMoZSkpcmV0dXJuIG47Zm9yKDtlJiYoZ2UoZSkmJm4ucHVzaChlKSxlIT09dCk7KWU9ZS5wYXJlbnRFbGVtZW50O3JldHVybiBufWZ1bmN0aW9uIGdlKGUpe2lmKCFlfHxlLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuITE7Y29uc3QgdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKTtyZXR1cm4gdC5vdmVyZmxvd1k9PT0ic2Nyb2xsInx8dC5vdmVyZmxvd1k9PT0iYXV0byImJmUuc2Nyb2xsSGVpZ2h0PmUuY2xpZW50SGVpZ2h0fWZ1bmN0aW9uIFR0KGUpe2lmKCFlfHxlLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuITE7Y29uc3QgdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKTtyZXR1cm5bInNjcm9sbCIsImF1dG8iXS5pbmNsdWRlcyh0Lm92ZXJmbG93WSl9ZnVuY3Rpb24ga3QoZSl7Zm9yKDtlOyl7aWYod2luZG93LmdldENvbXB1dGVkU3R5bGUoZSkucG9zaXRpb249PT0iZml4ZWQiKXJldHVybiEwO2U9ZS5vZmZzZXRQYXJlbnR9cmV0dXJuITF9ZnVuY3Rpb24gc2UoZSx0KXtyZXR1cm57eDplLngrdC54LHk6ZS55K3QueX19ZnVuY3Rpb24gTXQoZSx0KXtyZXR1cm57eDplLngtdC54LHk6ZS55LXQueX19ZnVuY3Rpb24gQ2UoZSx0KXtpZihlLnNpZGU9PT0idG9wInx8ZS5zaWRlPT09ImJvdHRvbSIpe2NvbnN0e3NpZGU6bixhbGlnbjpvfT1lLGE9bz09PSJsZWZ0Ij8wOm89PT0iY2VudGVyIj90LndpZHRoLzI6bz09PSJyaWdodCI/dC53aWR0aDpvLHI9bj09PSJ0b3AiPzA6bj09PSJib3R0b20iP3QuaGVpZ2h0Om47cmV0dXJuIHNlKHt4OmEseTpyfSx0KX1lbHNlIGlmKGUuc2lkZT09PSJsZWZ0Inx8ZS5zaWRlPT09InJpZ2h0Iil7Y29uc3R7c2lkZTpuLGFsaWduOm99PWUsYT1uPT09ImxlZnQiPzA6bj09PSJyaWdodCI/dC53aWR0aDpuLHI9bz09PSJ0b3AiPzA6bz09PSJjZW50ZXIiP3QuaGVpZ2h0LzI6bz09PSJib3R0b20iP3QuaGVpZ2h0Om87cmV0dXJuIHNlKHt4OmEseTpyfSx0KX1yZXR1cm4gc2Uoe3g6dC53aWR0aC8yLHk6dC5oZWlnaHQvMn0sdCl9Y29uc3QgV2U9e3N0YXRpYzpCdCxjb25uZWN0ZWQ6X3R9LEZ0PVEoe2xvY2F0aW9uU3RyYXRlZ3k6e3R5cGU6W1N0cmluZyxGdW5jdGlvbl0sZGVmYXVsdDoic3RhdGljIix2YWxpZGF0b3I6ZT0+dHlwZW9mIGU9PSJmdW5jdGlvbiJ8fGUgaW4gV2V9LGxvY2F0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJib3R0b20ifSxvcmlnaW46e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImF1dG8ifSxvZmZzZXQ6W051bWJlcixTdHJpbmcsQXJyYXldfSwiVk92ZXJsYXktbG9jYXRpb24tc3RyYXRlZ2llcyIpO2Z1bmN0aW9uIEx0KGUsdCl7Y29uc3Qgbj1WKHt9KSxvPVYoKTt6JiZ2ZSgoKT0+ISEodC5pc0FjdGl2ZS52YWx1ZSYmZS5sb2NhdGlvblN0cmF0ZWd5KSxyPT57dmFyIHMsaTtCKCgpPT5lLmxvY2F0aW9uU3RyYXRlZ3ksciksSCgoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGEpLG8udmFsdWU9dm9pZCAwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsYSx7cGFzc2l2ZTohMH0pLHR5cGVvZiBlLmxvY2F0aW9uU3RyYXRlZ3k9PSJmdW5jdGlvbiI/by52YWx1ZT0ocz1lLmxvY2F0aW9uU3RyYXRlZ3kodCxlLG4pKT09bnVsbD92b2lkIDA6cy51cGRhdGVMb2NhdGlvbjpvLnZhbHVlPShpPVdlW2UubG9jYXRpb25TdHJhdGVneV0odCxlLG4pKT09bnVsbD92b2lkIDA6aS51cGRhdGVMb2NhdGlvbn0pO2Z1bmN0aW9uIGEocil7dmFyIHM7KHM9by52YWx1ZSk9PW51bGx8fHMuY2FsbChvLHIpfXJldHVybntjb250ZW50U3R5bGVzOm4sdXBkYXRlTG9jYXRpb246b319ZnVuY3Rpb24gQnQoKXt9ZnVuY3Rpb24gTnQoZSx0KXtjb25zdCBuPU90KGUpO3JldHVybiB0P24ueCs9cGFyc2VGbG9hdChlLnN0eWxlLnJpZ2h0fHwwKTpuLngtPXBhcnNlRmxvYXQoZS5zdHlsZS5sZWZ0fHwwKSxuLnktPXBhcnNlRmxvYXQoZS5zdHlsZS50b3B8fDApLG59ZnVuY3Rpb24gX3QoZSx0LG4peyhBcnJheS5pc0FycmF5KGUudGFyZ2V0LnZhbHVlKXx8a3QoZS50YXJnZXQudmFsdWUpKSYmT2JqZWN0LmFzc2lnbihuLnZhbHVlLHtwb3NpdGlvbjoiZml4ZWQiLHRvcDowLFtlLmlzUnRsLnZhbHVlPyJyaWdodCI6ImxlZnQiXTowfSk7Y29uc3R7cHJlZmVycmVkQW5jaG9yOmEscHJlZmVycmVkT3JpZ2luOnJ9PXplKCgpPT57Y29uc3Qgdj1TZSh0LmxvY2F0aW9uLGUuaXNSdGwudmFsdWUpLGQ9dC5vcmlnaW49PT0ib3ZlcmxhcCI/djp0Lm9yaWdpbj09PSJhdXRvIj9hZSh2KTpTZSh0Lm9yaWdpbixlLmlzUnRsLnZhbHVlKTtyZXR1cm4gdi5zaWRlPT09ZC5zaWRlJiZ2LmFsaWduPT09aWUoZCkuYWxpZ24/e3ByZWZlcnJlZEFuY2hvcjpPZSh2KSxwcmVmZXJyZWRPcmlnaW46T2UoZCl9OntwcmVmZXJyZWRBbmNob3I6dixwcmVmZXJyZWRPcmlnaW46ZH19KSxbcyxpLGMsZl09WyJtaW5XaWR0aCIsIm1pbkhlaWdodCIsIm1heFdpZHRoIiwibWF4SGVpZ2h0Il0ubWFwKHY9PkEoKCk9Pntjb25zdCBkPXBhcnNlRmxvYXQodFt2XSk7cmV0dXJuIGlzTmFOKGQpPzEvMDpkfSkpLGw9QSgoKT0+e2lmKEFycmF5LmlzQXJyYXkodC5vZmZzZXQpKXJldHVybiB0Lm9mZnNldDtpZih0eXBlb2YgdC5vZmZzZXQ9PSJzdHJpbmciKXtjb25zdCB2PXQub2Zmc2V0LnNwbGl0KCIgIikubWFwKHBhcnNlRmxvYXQpO3JldHVybiB2Lmxlbmd0aDwyJiZ2LnB1c2goMCksdn1yZXR1cm4gdHlwZW9mIHQub2Zmc2V0PT0ibnVtYmVyIj9bdC5vZmZzZXQsMF06WzAsMF19KTtsZXQgZz0hMTtjb25zdCB4PW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e2cmJmIoKX0pO0IoW2UudGFyZ2V0LGUuY29udGVudEVsXSwodixkKT0+e2xldFtQLENdPXYsW1MsRV09ZDtTJiYhQXJyYXkuaXNBcnJheShTKSYmeC51bm9ic2VydmUoUyksUCYmIUFycmF5LmlzQXJyYXkoUCkmJngub2JzZXJ2ZShQKSxFJiZ4LnVub2JzZXJ2ZShFKSxDJiZ4Lm9ic2VydmUoQyl9LHtpbW1lZGlhdGU6ITB9KSxIKCgpPT57eC5kaXNjb25uZWN0KCl9KTtmdW5jdGlvbiBiKCl7aWYoZz0hMSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pmc9ITApLCFlLnRhcmdldC52YWx1ZXx8IWUuY29udGVudEVsLnZhbHVlKXJldHVybjtjb25zdCB2PVN0KGUudGFyZ2V0LnZhbHVlKSxkPU50KGUuY29udGVudEVsLnZhbHVlLGUuaXNSdGwudmFsdWUpLFA9dGUoZS5jb250ZW50RWwudmFsdWUpLEM9MTI7UC5sZW5ndGh8fChQLnB1c2goZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSxlLmNvbnRlbnRFbC52YWx1ZS5zdHlsZS50b3AmJmUuY29udGVudEVsLnZhbHVlLnN0eWxlLmxlZnR8fChkLngtPXBhcnNlRmxvYXQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoIi0tdi1ib2R5LXNjcm9sbC14Iil8fDApLGQueS09cGFyc2VGbG9hdChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiLS12LWJvZHktc2Nyb2xsLXkiKXx8MCkpKTtjb25zdCBTPVAucmVkdWNlKChPLHcpPT57Y29uc3QgbT13LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHk9bmV3IGooe3g6dz09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudD8wOm0ueCx5Onc9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ/MDptLnksd2lkdGg6dy5jbGllbnRXaWR0aCxoZWlnaHQ6dy5jbGllbnRIZWlnaHR9KTtyZXR1cm4gTz9uZXcgaih7eDpNYXRoLm1heChPLmxlZnQseS5sZWZ0KSx5Ok1hdGgubWF4KE8udG9wLHkudG9wKSx3aWR0aDpNYXRoLm1pbihPLnJpZ2h0LHkucmlnaHQpLU1hdGgubWF4KE8ubGVmdCx5LmxlZnQpLGhlaWdodDpNYXRoLm1pbihPLmJvdHRvbSx5LmJvdHRvbSktTWF0aC5tYXgoTy50b3AseS50b3ApfSk6eX0sdm9pZCAwKTtTLngrPUMsUy55Kz1DLFMud2lkdGgtPUMqMixTLmhlaWdodC09QyoyO2xldCBFPXthbmNob3I6YS52YWx1ZSxvcmlnaW46ci52YWx1ZX07ZnVuY3Rpb24gVChPKXtjb25zdCB3PW5ldyBqKGQpLG09Q2UoTy5hbmNob3IsdikseT1DZShPLm9yaWdpbix3KTtsZXR7eDpOLHk6X309TXQobSx5KTtzd2l0Y2goTy5hbmNob3Iuc2lkZSl7Y2FzZSJ0b3AiOl8tPWwudmFsdWVbMF07YnJlYWs7Y2FzZSJib3R0b20iOl8rPWwudmFsdWVbMF07YnJlYWs7Y2FzZSJsZWZ0IjpOLT1sLnZhbHVlWzBdO2JyZWFrO2Nhc2UicmlnaHQiOk4rPWwudmFsdWVbMF07YnJlYWt9c3dpdGNoKE8uYW5jaG9yLmFsaWduKXtjYXNlInRvcCI6Xy09bC52YWx1ZVsxXTticmVhaztjYXNlImJvdHRvbSI6Xys9bC52YWx1ZVsxXTticmVhaztjYXNlImxlZnQiOk4tPWwudmFsdWVbMV07YnJlYWs7Y2FzZSJyaWdodCI6Tis9bC52YWx1ZVsxXTticmVha31yZXR1cm4gdy54Kz1OLHcueSs9Xyx3LndpZHRoPU1hdGgubWluKHcud2lkdGgsYy52YWx1ZSksdy5oZWlnaHQ9TWF0aC5taW4ody5oZWlnaHQsZi52YWx1ZSkse292ZXJmbG93czpQZSh3LFMpLHg6Tix5Ol99fWxldCBNPTAsTD0wO2NvbnN0IHA9e3g6MCx5OjB9LHU9e3g6ITEseTohMX07bGV0IGs9LTE7Zm9yKDshKGsrKz4xMCk7KXtjb25zdHt4Ok8seTp3LG92ZXJmbG93czptfT1UKEUpO00rPU8sTCs9dyxkLngrPU8sZC55Kz13O3tjb25zdCB5PXBlKEUuYW5jaG9yKSxOPW0ueC5iZWZvcmV8fG0ueC5hZnRlcixfPW0ueS5iZWZvcmV8fG0ueS5hZnRlcjtsZXQgcT0hMTtpZihbIngiLCJ5Il0uZm9yRWFjaChSPT57aWYoUj09PSJ4IiYmTiYmIXUueHx8Uj09PSJ5IiYmXyYmIXUueSl7Y29uc3QgRD17YW5jaG9yOnsuLi5FLmFuY2hvcn0sb3JpZ2luOnsuLi5FLm9yaWdpbn19LFk9Uj09PSJ4Ij95PT09InkiP2llOmFlOnk9PT0ieSI/YWU6aWU7RC5hbmNob3I9WShELmFuY2hvciksRC5vcmlnaW49WShELm9yaWdpbik7Y29uc3R7b3ZlcmZsb3dzOlV9PVQoRCk7KFVbUl0uYmVmb3JlPD1tW1JdLmJlZm9yZSYmVVtSXS5hZnRlcjw9bVtSXS5hZnRlcnx8VVtSXS5iZWZvcmUrVVtSXS5hZnRlcjwobVtSXS5iZWZvcmUrbVtSXS5hZnRlcikvMikmJihFPUQscT11W1JdPSEwKX19KSxxKWNvbnRpbnVlfW0ueC5iZWZvcmUmJihNKz1tLnguYmVmb3JlLGQueCs9bS54LmJlZm9yZSksbS54LmFmdGVyJiYoTS09bS54LmFmdGVyLGQueC09bS54LmFmdGVyKSxtLnkuYmVmb3JlJiYoTCs9bS55LmJlZm9yZSxkLnkrPW0ueS5iZWZvcmUpLG0ueS5hZnRlciYmKEwtPW0ueS5hZnRlcixkLnktPW0ueS5hZnRlcik7e2NvbnN0IHk9UGUoZCxTKTtwLng9Uy53aWR0aC15LnguYmVmb3JlLXkueC5hZnRlcixwLnk9Uy5oZWlnaHQteS55LmJlZm9yZS15LnkuYWZ0ZXIsTSs9eS54LmJlZm9yZSxkLngrPXkueC5iZWZvcmUsTCs9eS55LmJlZm9yZSxkLnkrPXkueS5iZWZvcmV9YnJlYWt9Y29uc3QgcmU9cGUoRS5hbmNob3IpO3JldHVybiBPYmplY3QuYXNzaWduKG4udmFsdWUseyItLXYtb3ZlcmxheS1hbmNob3Itb3JpZ2luIjpgJHtFLmFuY2hvci5zaWRlfSAke0UuYW5jaG9yLmFsaWdufWAsdHJhbnNmb3JtT3JpZ2luOmAke0Uub3JpZ2luLnNpZGV9ICR7RS5vcmlnaW4uYWxpZ259YCx0b3A6VyhsZShMKSksbGVmdDplLmlzUnRsLnZhbHVlP3ZvaWQgMDpXKGxlKE0pKSxyaWdodDplLmlzUnRsLnZhbHVlP1cobGUoLU0pKTp2b2lkIDAsbWluV2lkdGg6VyhyZT09PSJ5Ij9NYXRoLm1pbihzLnZhbHVlLHYud2lkdGgpOnMudmFsdWUpLG1heFdpZHRoOlcoUmUoeGUocC54LHMudmFsdWU9PT0xLzA/MDpzLnZhbHVlLGMudmFsdWUpKSksbWF4SGVpZ2h0OlcoUmUoeGUocC55LGkudmFsdWU9PT0xLzA/MDppLnZhbHVlLGYudmFsdWUpKSl9KSx7YXZhaWxhYmxlOnAsY29udGVudEJveDpkfX1yZXR1cm4gQigoKT0+W2EudmFsdWUsci52YWx1ZSx0Lm9mZnNldCx0Lm1pbldpZHRoLHQubWluSGVpZ2h0LHQubWF4V2lkdGgsdC5tYXhIZWlnaHRdLCgpPT5iKCkpLG1lKCgpPT57Y29uc3Qgdj1iKCk7aWYoIXYpcmV0dXJuO2NvbnN0e2F2YWlsYWJsZTpkLGNvbnRlbnRCb3g6UH09djtQLmhlaWdodD5kLnkmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2IoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntiKCl9KX0pfSkse3VwZGF0ZUxvY2F0aW9uOmJ9fWZ1bmN0aW9uIGxlKGUpe3JldHVybiBNYXRoLnJvdW5kKGUqZGV2aWNlUGl4ZWxSYXRpbykvZGV2aWNlUGl4ZWxSYXRpb31mdW5jdGlvbiBSZShlKXtyZXR1cm4gTWF0aC5jZWlsKGUqZGV2aWNlUGl4ZWxSYXRpbykvZGV2aWNlUGl4ZWxSYXRpb31sZXQgZmU9ITA7Y29uc3QgbmU9W107ZnVuY3Rpb24gV3QoZSl7IWZlfHxuZS5sZW5ndGg/KG5lLnB1c2goZSksZGUoKSk6KGZlPSExLGUoKSxkZSgpKX1sZXQgQWU9LTE7ZnVuY3Rpb24gZGUoKXtjYW5jZWxBbmltYXRpb25GcmFtZShBZSksQWU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Y29uc3QgZT1uZS5zaGlmdCgpO2UmJmUoKSxuZS5sZW5ndGg/ZGUoKTpmZT0hMH0pfWNvbnN0IGVlPXtub25lOm51bGwsY2xvc2U6SXQsYmxvY2s6VnQscmVwb3NpdGlvbjokdH0sSHQ9USh7c2Nyb2xsU3RyYXRlZ3k6e3R5cGU6W1N0cmluZyxGdW5jdGlvbl0sZGVmYXVsdDoiYmxvY2siLHZhbGlkYXRvcjplPT50eXBlb2YgZT09ImZ1bmN0aW9uInx8ZSBpbiBlZX19LCJWT3ZlcmxheS1zY3JvbGwtc3RyYXRlZ2llcyIpO2Z1bmN0aW9uIER0KGUsdCl7aWYoIXopcmV0dXJuO2xldCBuO2hlKGFzeW5jKCk9PntuPT1udWxsfHxuLnN0b3AoKSx0LmlzQWN0aXZlLnZhbHVlJiZlLnNjcm9sbFN0cmF0ZWd5JiYobj1MZSgpLGF3YWl0IG5ldyBQcm9taXNlKG89PnNldFRpbWVvdXQobykpLG4uYWN0aXZlJiZuLnJ1bigoKT0+e3ZhciBvO3R5cGVvZiBlLnNjcm9sbFN0cmF0ZWd5PT0iZnVuY3Rpb24iP2Uuc2Nyb2xsU3RyYXRlZ3kodCxlLG4pOihvPWVlW2Uuc2Nyb2xsU3RyYXRlZ3ldKT09bnVsbHx8by5jYWxsKGVlLHQsZSxuKX0pKX0pLEgoKCk9PntuPT1udWxsfHxuLnN0b3AoKX0pfWZ1bmN0aW9uIEl0KGUpe2Z1bmN0aW9uIHQobil7ZS5pc0FjdGl2ZS52YWx1ZT0hMX1IZShlLnRhcmdldEVsLnZhbHVlPz9lLmNvbnRlbnRFbC52YWx1ZSx0KX1mdW5jdGlvbiBWdChlLHQpe3ZhciBzO2NvbnN0IG49KHM9ZS5yb290LnZhbHVlKT09bnVsbD92b2lkIDA6cy5vZmZzZXRQYXJlbnQsbz1bLi4ubmV3IFNldChbLi4udGUoZS50YXJnZXRFbC52YWx1ZSx0LmNvbnRhaW5lZD9uOnZvaWQgMCksLi4udGUoZS5jb250ZW50RWwudmFsdWUsdC5jb250YWluZWQ/bjp2b2lkIDApXSldLmZpbHRlcihpPT4haS5jbGFzc0xpc3QuY29udGFpbnMoInYtb3ZlcmxheS1zY3JvbGwtYmxvY2tlZCIpKSxhPXdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCxyPShpPT5nZShpKSYmaSkobnx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtyJiZlLnJvb3QudmFsdWUuY2xhc3NMaXN0LmFkZCgidi1vdmVybGF5LS1zY3JvbGwtYmxvY2tlZCIpLG8uZm9yRWFjaCgoaSxjKT0+e2kuc3R5bGUuc2V0UHJvcGVydHkoIi0tdi1ib2R5LXNjcm9sbC14IixXKC1pLnNjcm9sbExlZnQpKSxpLnN0eWxlLnNldFByb3BlcnR5KCItLXYtYm9keS1zY3JvbGwteSIsVygtaS5zY3JvbGxUb3ApKSxpIT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZpLnN0eWxlLnNldFByb3BlcnR5KCItLXYtc2Nyb2xsYmFyLW9mZnNldCIsVyhhKSksaS5jbGFzc0xpc3QuYWRkKCJ2LW92ZXJsYXktc2Nyb2xsLWJsb2NrZWQiKX0pLEgoKCk9PntvLmZvckVhY2goKGksYyk9Pntjb25zdCBmPXBhcnNlRmxvYXQoaS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXYtYm9keS1zY3JvbGwteCIpKSxsPXBhcnNlRmxvYXQoaS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXYtYm9keS1zY3JvbGwteSIpKSxnPWkuc3R5bGUuc2Nyb2xsQmVoYXZpb3I7aS5zdHlsZS5zY3JvbGxCZWhhdmlvcj0iYXV0byIsaS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS12LWJvZHktc2Nyb2xsLXgiKSxpLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLXYtYm9keS1zY3JvbGwteSIpLGkuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tdi1zY3JvbGxiYXItb2Zmc2V0IiksaS5jbGFzc0xpc3QucmVtb3ZlKCJ2LW92ZXJsYXktc2Nyb2xsLWJsb2NrZWQiKSxpLnNjcm9sbExlZnQ9LWYsaS5zY3JvbGxUb3A9LWwsaS5zdHlsZS5zY3JvbGxCZWhhdmlvcj1nfSksciYmZS5yb290LnZhbHVlLmNsYXNzTGlzdC5yZW1vdmUoInYtb3ZlcmxheS0tc2Nyb2xsLWJsb2NrZWQiKX0pfWZ1bmN0aW9uICR0KGUsdCxuKXtsZXQgbz0hMSxhPS0xLHI9LTE7ZnVuY3Rpb24gcyhpKXtXdCgoKT0+e3ZhciBsLGc7Y29uc3QgYz1wZXJmb3JtYW5jZS5ub3coKTsoZz0obD1lLnVwZGF0ZUxvY2F0aW9uKS52YWx1ZSk9PW51bGx8fGcuY2FsbChsLGkpLG89KHBlcmZvcm1hbmNlLm5vdygpLWMpLygxZTMvNjApPjJ9KX1yPSh0eXBlb2YgcmVxdWVzdElkbGVDYWxsYmFjaz4idSI/aT0+aSgpOnJlcXVlc3RJZGxlQ2FsbGJhY2spKCgpPT57bi5ydW4oKCk9PntIZShlLnRhcmdldEVsLnZhbHVlPz9lLmNvbnRlbnRFbC52YWx1ZSxpPT57bz8oY2FuY2VsQW5pbWF0aW9uRnJhbWUoYSksYT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnthPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3MoaSl9KX0pKTpzKGkpfSl9KX0pLEgoKCk9Pnt0eXBlb2YgY2FuY2VsSWRsZUNhbGxiYWNrPCJ1IiYmY2FuY2VsSWRsZUNhbGxiYWNrKHIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lKGEpfSl9ZnVuY3Rpb24gSGUoZSx0KXtjb25zdCBuPVtkb2N1bWVudCwuLi50ZShlKV07bi5mb3JFYWNoKG89PntvLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdCx7cGFzc2l2ZTohMH0pfSksSCgoKT0+e24uZm9yRWFjaChvPT57by5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHQpfSl9KX1jb25zdCBqdD1TeW1ib2wuZm9yKCJ2dWV0aWZ5OnYtbWVudSIpLHp0PVEoe2Nsb3NlRGVsYXk6W051bWJlcixTdHJpbmddLG9wZW5EZWxheTpbTnVtYmVyLFN0cmluZ119LCJkZWxheSIpO2Z1bmN0aW9uIHF0KGUsdCl7bGV0IG49KCk9Pnt9O2Z1bmN0aW9uIG8ocyl7bj09bnVsbHx8bigpO2NvbnN0IGk9TnVtYmVyKHM/ZS5vcGVuRGVsYXk6ZS5jbG9zZURlbGF5KTtyZXR1cm4gbmV3IFByb21pc2UoYz0+e249cWUoaSwoKT0+e3Q9PW51bGx8fHQocyksYyhzKX0pfSl9ZnVuY3Rpb24gYSgpe3JldHVybiBvKCEwKX1mdW5jdGlvbiByKCl7cmV0dXJuIG8oITEpfXJldHVybntjbGVhckRlbGF5Om4scnVuT3BlbkRlbGF5OmEscnVuQ2xvc2VEZWxheTpyfX1jb25zdCBZdD1RKHt0YXJnZXQ6W1N0cmluZyxPYmplY3RdLGFjdGl2YXRvcjpbU3RyaW5nLE9iamVjdF0sYWN0aXZhdG9yUHJvcHM6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6KCk9Pih7fSl9LG9wZW5PbkNsaWNrOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDp2b2lkIDB9LG9wZW5PbkhvdmVyOkJvb2xlYW4sb3Blbk9uRm9jdXM6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OnZvaWQgMH0sY2xvc2VPbkNvbnRlbnRDbGljazpCb29sZWFuLC4uLnp0KCl9LCJWT3ZlcmxheS1hY3RpdmF0b3IiKTtmdW5jdGlvbiBVdChlLHQpe2xldHtpc0FjdGl2ZTpuLGlzVG9wOm8sY29udGVudEVsOmF9PXQ7Y29uc3Qgcj1vZSgidXNlQWN0aXZhdG9yIikscz1WKCk7bGV0IGk9ITEsYz0hMSxmPSEwO2NvbnN0IGw9QSgoKT0+ZS5vcGVuT25Gb2N1c3x8ZS5vcGVuT25Gb2N1cz09bnVsbCYmZS5vcGVuT25Ib3ZlciksZz1BKCgpPT5lLm9wZW5PbkNsaWNrfHxlLm9wZW5PbkNsaWNrPT1udWxsJiYhZS5vcGVuT25Ib3ZlciYmIWwudmFsdWUpLHtydW5PcGVuRGVsYXk6eCxydW5DbG9zZURlbGF5OmJ9PXF0KGUsdT0+e3U9PT0oZS5vcGVuT25Ib3ZlciYmaXx8bC52YWx1ZSYmYykmJiEoZS5vcGVuT25Ib3ZlciYmbi52YWx1ZSYmIW8udmFsdWUpJiYobi52YWx1ZSE9PXUmJihmPSEwKSxuLnZhbHVlPXUpfSksdj1WKCksZD17b25DbGljazp1PT57dS5zdG9wUHJvcGFnYXRpb24oKSxzLnZhbHVlPXUuY3VycmVudFRhcmdldHx8dS50YXJnZXQsbi52YWx1ZXx8KHYudmFsdWU9W3UuY2xpZW50WCx1LmNsaWVudFldKSxuLnZhbHVlPSFuLnZhbHVlfSxvbk1vdXNlZW50ZXI6dT0+e3ZhciBrOyhrPXUuc291cmNlQ2FwYWJpbGl0aWVzKSE9bnVsbCYmay5maXJlc1RvdWNoRXZlbnRzfHwoaT0hMCxzLnZhbHVlPXUuY3VycmVudFRhcmdldHx8dS50YXJnZXQseCgpKX0sb25Nb3VzZWxlYXZlOnU9PntpPSExLGIoKX0sb25Gb2N1czp1PT57WWUodS50YXJnZXQsIjpmb2N1cy12aXNpYmxlIikhPT0hMSYmKGM9ITAsdS5zdG9wUHJvcGFnYXRpb24oKSxzLnZhbHVlPXUuY3VycmVudFRhcmdldHx8dS50YXJnZXQseCgpKX0sb25CbHVyOnU9PntjPSExLHUuc3RvcFByb3BhZ2F0aW9uKCksYigpfX0sUD1BKCgpPT57Y29uc3QgdT17fTtyZXR1cm4gZy52YWx1ZSYmKHUub25DbGljaz1kLm9uQ2xpY2spLGUub3Blbk9uSG92ZXImJih1Lm9uTW91c2VlbnRlcj1kLm9uTW91c2VlbnRlcix1Lm9uTW91c2VsZWF2ZT1kLm9uTW91c2VsZWF2ZSksbC52YWx1ZSYmKHUub25Gb2N1cz1kLm9uRm9jdXMsdS5vbkJsdXI9ZC5vbkJsdXIpLHV9KSxDPUEoKCk9Pntjb25zdCB1PXt9O2lmKGUub3Blbk9uSG92ZXImJih1Lm9uTW91c2VlbnRlcj0oKT0+e2k9ITAseCgpfSx1Lm9uTW91c2VsZWF2ZT0oKT0+e2k9ITEsYigpfSksbC52YWx1ZSYmKHUub25Gb2N1c2luPSgpPT57Yz0hMCx4KCl9LHUub25Gb2N1c291dD0oKT0+e2M9ITEsYigpfSksZS5jbG9zZU9uQ29udGVudENsaWNrKXtjb25zdCBrPUJlKGp0LG51bGwpO3Uub25DbGljaz0oKT0+e24udmFsdWU9ITEsaz09bnVsbHx8ay5jbG9zZVBhcmVudHMoKX19cmV0dXJuIHV9KSxTPUEoKCk9Pntjb25zdCB1PXt9O3JldHVybiBlLm9wZW5PbkhvdmVyJiYodS5vbk1vdXNlZW50ZXI9KCk9PntmJiYoaT0hMCxmPSExLHgoKSl9LHUub25Nb3VzZWxlYXZlPSgpPT57aT0hMSxiKCl9KSx1fSk7QihvLHU9Pnt2YXIgazt1JiYoZS5vcGVuT25Ib3ZlciYmIWkmJighbC52YWx1ZXx8IWMpfHxsLnZhbHVlJiYhYyYmKCFlLm9wZW5PbkhvdmVyfHwhaSkpJiYhKChrPWEudmFsdWUpIT1udWxsJiZrLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSYmKG4udmFsdWU9ITEpfSksQihuLHU9Pnt1fHxzZXRUaW1lb3V0KCgpPT57di52YWx1ZT12b2lkIDB9KX0se2ZsdXNoOiJwb3N0In0pO2NvbnN0IEU9RWUoKTtoZSgoKT0+e0UudmFsdWUmJm1lKCgpPT57cy52YWx1ZT1FLmVsfSl9KTtjb25zdCBUPUVlKCksTT1BKCgpPT5lLnRhcmdldD09PSJjdXJzb3IiJiZ2LnZhbHVlP3YudmFsdWU6VC52YWx1ZT9ULmVsOkRlKGUudGFyZ2V0LHIpfHxzLnZhbHVlKSxMPUEoKCk9PkFycmF5LmlzQXJyYXkoTS52YWx1ZSk/dm9pZCAwOk0udmFsdWUpO2xldCBwO3JldHVybiBCKCgpPT4hIWUuYWN0aXZhdG9yLHU9Pnt1JiZ6PyhwPUxlKCkscC5ydW4oKCk9PntYdChlLHIse2FjdGl2YXRvckVsOnMsYWN0aXZhdG9yRXZlbnRzOlB9KX0pKTpwJiZwLnN0b3AoKX0se2ZsdXNoOiJwb3N0IixpbW1lZGlhdGU6ITB9KSxIKCgpPT57cD09bnVsbHx8cC5zdG9wKCl9KSx7YWN0aXZhdG9yRWw6cyxhY3RpdmF0b3JSZWY6RSx0YXJnZXQ6TSx0YXJnZXRFbDpMLHRhcmdldFJlZjpULGFjdGl2YXRvckV2ZW50czpQLGNvbnRlbnRFdmVudHM6QyxzY3JpbUV2ZW50czpTfX1mdW5jdGlvbiBYdChlLHQsbil7bGV0e2FjdGl2YXRvckVsOm8sYWN0aXZhdG9yRXZlbnRzOmF9PW47QigoKT0+ZS5hY3RpdmF0b3IsKGMsZik9PntpZihmJiZjIT09Zil7Y29uc3QgbD1pKGYpO2wmJnMobCl9YyYmbWUoKCk9PnIoKSl9LHtpbW1lZGlhdGU6ITB9KSxCKCgpPT5lLmFjdGl2YXRvclByb3BzLCgpPT57cigpfSksSCgoKT0+e3MoKX0pO2Z1bmN0aW9uIHIoKXtsZXQgYz1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06aSgpLGY9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOmUuYWN0aXZhdG9yUHJvcHM7YyYmUHQoYywkKGEudmFsdWUsZikpfWZ1bmN0aW9uIHMoKXtsZXQgYz1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06aSgpLGY9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOmUuYWN0aXZhdG9yUHJvcHM7YyYmQ3QoYywkKGEudmFsdWUsZikpfWZ1bmN0aW9uIGkoKXtsZXQgYz1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06ZS5hY3RpdmF0b3I7Y29uc3QgZj1EZShjLHQpO3JldHVybiBvLnZhbHVlPShmPT1udWxsP3ZvaWQgMDpmLm5vZGVUeXBlKT09PU5vZGUuRUxFTUVOVF9OT0RFP2Y6dm9pZCAwLG8udmFsdWV9fWZ1bmN0aW9uIERlKGUsdCl7dmFyIG8sYTtpZighZSlyZXR1cm47bGV0IG47aWYoZT09PSJwYXJlbnQiKXtsZXQgcj0oYT0obz10PT1udWxsP3ZvaWQgMDp0LnByb3h5KT09bnVsbD92b2lkIDA6by4kZWwpPT1udWxsP3ZvaWQgMDphLnBhcmVudE5vZGU7Zm9yKDtyIT1udWxsJiZyLmhhc0F0dHJpYnV0ZSgiZGF0YS1uby1hY3RpdmF0b3IiKTspcj1yLnBhcmVudE5vZGU7bj1yfWVsc2UgdHlwZW9mIGU9PSJzdHJpbmciP249ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKToiJGVsImluIGU/bj1lLiRlbDpuPWU7cmV0dXJuIG59ZnVuY3Rpb24gR3QoKXtpZigheilyZXR1cm4gSyghMSk7Y29uc3R7c3NyOmV9PVVlKCk7aWYoZSl7Y29uc3QgdD1LKCExKTtyZXR1cm4gWGUoKCk9Pnt0LnZhbHVlPSEwfSksdH1lbHNlIHJldHVybiBLKCEwKX1mdW5jdGlvbiBLdCgpe2NvbnN0IHQ9b2UoInVzZVNjb3BlSWQiKS52bm9kZS5zY29wZUlkO3JldHVybntzY29wZUlkOnQ/e1t0XToiIn06dm9pZCAwfX1jb25zdCBUZT1TeW1ib2wuZm9yKCJ2dWV0aWZ5OnN0YWNrIiksRz1OZShbXSk7ZnVuY3Rpb24gUXQoZSx0LG4pe2NvbnN0IG89b2UoInVzZVN0YWNrIiksYT0hbixyPUJlKFRlLHZvaWQgMCkscz1OZSh7YWN0aXZlQ2hpbGRyZW46bmV3IFNldH0pO0dlKFRlLHMpO2NvbnN0IGk9SygrdC52YWx1ZSk7dmUoZSwoKT0+e3ZhciBnO2NvbnN0IGw9KGc9Ry5hdCgtMSkpPT1udWxsP3ZvaWQgMDpnWzFdO2kudmFsdWU9bD9sKzEwOit0LnZhbHVlLGEmJkcucHVzaChbby51aWQsaS52YWx1ZV0pLHI9PW51bGx8fHIuYWN0aXZlQ2hpbGRyZW4uYWRkKG8udWlkKSxIKCgpPT57aWYoYSl7Y29uc3QgeD1LZShHKS5maW5kSW5kZXgoYj0+YlswXT09PW8udWlkKTtHLnNwbGljZSh4LDEpfXI9PW51bGx8fHIuYWN0aXZlQ2hpbGRyZW4uZGVsZXRlKG8udWlkKX0pfSk7Y29uc3QgYz1LKCEwKTthJiZoZSgoKT0+e3ZhciBnO2NvbnN0IGw9KChnPUcuYXQoLTEpKT09bnVsbD92b2lkIDA6Z1swXSk9PT1vLnVpZDtzZXRUaW1lb3V0KCgpPT5jLnZhbHVlPWwpfSk7Y29uc3QgZj1BKCgpPT4hcy5hY3RpdmVDaGlsZHJlbi5zaXplKTtyZXR1cm57Z2xvYmFsVG9wOlFlKGMpLGxvY2FsVG9wOmYsc3RhY2tTdHlsZXM6QSgoKT0+KHt6SW5kZXg6aS52YWx1ZX0pKX19ZnVuY3Rpb24gWnQoZSl7cmV0dXJue3RlbGVwb3J0VGFyZ2V0OkEoKCk9Pntjb25zdCBuPWUoKTtpZihuPT09ITB8fCF6KXJldHVybjtjb25zdCBvPW49PT0hMT9kb2N1bWVudC5ib2R5OnR5cGVvZiBuPT0ic3RyaW5nIj9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG4pOm47aWYobz09bnVsbClyZXR1cm47bGV0IGE9Wy4uLm8uY2hpbGRyZW5dLmZpbmQocj0+ci5tYXRjaGVzKCIudi1vdmVybGF5LWNvbnRhaW5lciIpKTtyZXR1cm4gYXx8KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksYS5jbGFzc05hbWU9InYtb3ZlcmxheS1jb250YWluZXIiLG8uYXBwZW5kQ2hpbGQoYSkpLGF9KX19ZnVuY3Rpb24gSnQoKXtyZXR1cm4hMH1mdW5jdGlvbiBJZShlLHQsbil7aWYoIWV8fFZlKGUsbik9PT0hMSlyZXR1cm4hMTtjb25zdCBvPV9lKHQpO2lmKHR5cGVvZiBTaGFkb3dSb290PCJ1IiYmbyBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QmJm8uaG9zdD09PWUudGFyZ2V0KXJldHVybiExO2NvbnN0IGE9KHR5cGVvZiBuLnZhbHVlPT0ib2JqZWN0IiYmbi52YWx1ZS5pbmNsdWRlfHwoKCk9PltdKSkoKTtyZXR1cm4gYS5wdXNoKHQpLCFhLnNvbWUocj0+cj09bnVsbD92b2lkIDA6ci5jb250YWlucyhlLnRhcmdldCkpfWZ1bmN0aW9uIFZlKGUsdCl7cmV0dXJuKHR5cGVvZiB0LnZhbHVlPT0ib2JqZWN0IiYmdC52YWx1ZS5jbG9zZUNvbmRpdGlvbmFsfHxKdCkoZSl9ZnVuY3Rpb24gZW4oZSx0LG4pe2NvbnN0IG89dHlwZW9mIG4udmFsdWU9PSJmdW5jdGlvbiI/bi52YWx1ZTpuLnZhbHVlLmhhbmRsZXI7ZS5zaGFkb3dUYXJnZXQ9ZS50YXJnZXQsdC5fY2xpY2tPdXRzaWRlLmxhc3RNb3VzZWRvd25XYXNPdXRzaWRlJiZJZShlLHQsbikmJnNldFRpbWVvdXQoKCk9PntWZShlLG4pJiZvJiZvKGUpfSwwKX1mdW5jdGlvbiBrZShlLHQpe2NvbnN0IG49X2UoZSk7dChkb2N1bWVudCksdHlwZW9mIFNoYWRvd1Jvb3Q8InUiJiZuIGluc3RhbmNlb2YgU2hhZG93Um9vdCYmdChuKX1jb25zdCB0bj17bW91bnRlZChlLHQpe2NvbnN0IG49YT0+ZW4oYSxlLHQpLG89YT0+e2UuX2NsaWNrT3V0c2lkZS5sYXN0TW91c2Vkb3duV2FzT3V0c2lkZT1JZShhLGUsdCl9O2tlKGUsYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG4sITApLGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixvLCEwKX0pLGUuX2NsaWNrT3V0c2lkZXx8KGUuX2NsaWNrT3V0c2lkZT17bGFzdE1vdXNlZG93bldhc091dHNpZGU6ITF9KSxlLl9jbGlja091dHNpZGVbdC5pbnN0YW5jZS4kLnVpZF09e29uQ2xpY2s6bixvbk1vdXNlZG93bjpvfX0sYmVmb3JlVW5tb3VudChlLHQpe2UuX2NsaWNrT3V0c2lkZSYmKGtlKGUsbj0+e3ZhciByO2lmKCFufHwhKChyPWUuX2NsaWNrT3V0c2lkZSkhPW51bGwmJnJbdC5pbnN0YW5jZS4kLnVpZF0pKXJldHVybjtjb25zdHtvbkNsaWNrOm8sb25Nb3VzZWRvd246YX09ZS5fY2xpY2tPdXRzaWRlW3QuaW5zdGFuY2UuJC51aWRdO24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLG8sITApLG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixhLCEwKX0pLGRlbGV0ZSBlLl9jbGlja091dHNpZGVbdC5pbnN0YW5jZS4kLnVpZF0pfX07ZnVuY3Rpb24gbm4oZSl7Y29uc3R7bW9kZWxWYWx1ZTp0LGNvbG9yOm4sLi4ub309ZTtyZXR1cm4gSSh2dCx7bmFtZToiZmFkZS10cmFuc2l0aW9uIixhcHBlYXI6ITB9LHtkZWZhdWx0OigpPT5bZS5tb2RlbFZhbHVlJiZJKCJkaXYiLCQoe2NsYXNzOlsidi1vdmVybGF5X19zY3JpbSIsZS5jb2xvci5iYWNrZ3JvdW5kQ29sb3JDbGFzc2VzLnZhbHVlXSxzdHlsZTplLmNvbG9yLmJhY2tncm91bmRDb2xvclN0eWxlcy52YWx1ZX0sbyksbnVsbCldfSl9Y29uc3Qgb249USh7YWJzb2x1dGU6Qm9vbGVhbixhdHRhY2g6W0Jvb2xlYW4sU3RyaW5nLE9iamVjdF0sY2xvc2VPbkJhY2s6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxjb250YWluZWQ6Qm9vbGVhbixjb250ZW50Q2xhc3M6bnVsbCxjb250ZW50UHJvcHM6bnVsbCxkaXNhYmxlZDpCb29sZWFuLG9wYWNpdHk6W051bWJlcixTdHJpbmddLG5vQ2xpY2tBbmltYXRpb246Qm9vbGVhbixtb2RlbFZhbHVlOkJvb2xlYW4scGVyc2lzdGVudDpCb29sZWFuLHNjcmltOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMH0sekluZGV4Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjJlM30sLi4uWXQoKSwuLi5aZSgpLC4uLmd0KCksLi4uYnQoKSwuLi5GdCgpLC4uLkh0KCksLi4uSmUoKSwuLi54dCgpfSwiVk92ZXJsYXkiKSxkbj1ldCgpKHtuYW1lOiJWT3ZlcmxheSIsZGlyZWN0aXZlczp7Q2xpY2tPdXRzaWRlOnRufSxpbmhlcml0QXR0cnM6ITEscHJvcHM6e19kaXNhYmxlR2xvYmFsU3RhY2s6Qm9vbGVhbiwuLi5vbigpfSxlbWl0czp7ImNsaWNrOm91dHNpZGUiOmU9PiEwLCJ1cGRhdGU6bW9kZWxWYWx1ZSI6ZT0+ITAsYWZ0ZXJFbnRlcjooKT0+ITAsYWZ0ZXJMZWF2ZTooKT0+ITB9LHNldHVwKGUsdCl7bGV0e3Nsb3RzOm4sYXR0cnM6byxlbWl0OmF9PXQ7Y29uc3Qgcj1vZSgiVk92ZXJsYXkiKSxzPVYoKSxpPVYoKSxjPVYoKSxmPXR0KGUsIm1vZGVsVmFsdWUiKSxsPUEoe2dldDooKT0+Zi52YWx1ZSxzZXQ6aD0+e2gmJmUuZGlzYWJsZWR8fChmLnZhbHVlPWgpfX0pLHt0aGVtZUNsYXNzZXM6Z309bnQoZSkse3J0bENsYXNzZXM6eCxpc1J0bDpifT1vdCgpLHtoYXNDb250ZW50OnYsb25BZnRlckxlYXZlOmR9PXd0KGUsbCksUD1ydChBKCgpPT50eXBlb2YgZS5zY3JpbT09InN0cmluZyI/ZS5zY3JpbTpudWxsKSkse2dsb2JhbFRvcDpDLGxvY2FsVG9wOlMsc3RhY2tTdHlsZXM6RX09UXQobCxhdChlLCJ6SW5kZXgiKSxlLl9kaXNhYmxlR2xvYmFsU3RhY2spLHthY3RpdmF0b3JFbDpULGFjdGl2YXRvclJlZjpNLHRhcmdldDpMLHRhcmdldEVsOnAsdGFyZ2V0UmVmOnUsYWN0aXZhdG9yRXZlbnRzOmssY29udGVudEV2ZW50czpyZSxzY3JpbUV2ZW50czpPfT1VdChlLHtpc0FjdGl2ZTpsLGlzVG9wOlMsY29udGVudEVsOmN9KSx7dGVsZXBvcnRUYXJnZXQ6d309WnQoKCk9Pnt2YXIgWCxiZSx3ZTtjb25zdCBoPWUuYXR0YWNofHxlLmNvbnRhaW5lZDtpZihoKXJldHVybiBoO2NvbnN0IEY9KChYPVQ9PW51bGw/dm9pZCAwOlQudmFsdWUpPT1udWxsP3ZvaWQgMDpYLmdldFJvb3ROb2RlKCkpfHwoKHdlPShiZT1yLnByb3h5KT09bnVsbD92b2lkIDA6YmUuJGVsKT09bnVsbD92b2lkIDA6d2UuZ2V0Um9vdE5vZGUoKSk7cmV0dXJuIEYgaW5zdGFuY2VvZiBTaGFkb3dSb290P0Y6ITF9KSx7ZGltZW5zaW9uU3R5bGVzOm19PXl0KGUpLHk9R3QoKSx7c2NvcGVJZDpOfT1LdCgpO0IoKCk9PmUuZGlzYWJsZWQsaD0+e2gmJihsLnZhbHVlPSExKX0pO2NvbnN0e2NvbnRlbnRTdHlsZXM6Xyx1cGRhdGVMb2NhdGlvbjpxfT1MdChlLHtpc1J0bDpiLGNvbnRlbnRFbDpjLHRhcmdldDpMLGlzQWN0aXZlOmx9KTtEdChlLHtyb290OnMsY29udGVudEVsOmMsdGFyZ2V0RWw6cCxpc0FjdGl2ZTpsLHVwZGF0ZUxvY2F0aW9uOnF9KTtmdW5jdGlvbiBSKGgpe2EoImNsaWNrOm91dHNpZGUiLGgpLGUucGVyc2lzdGVudD9aKCk6bC52YWx1ZT0hMX1mdW5jdGlvbiBEKGgpe3JldHVybiBsLnZhbHVlJiZDLnZhbHVlJiYoIWUuc2NyaW18fGgudGFyZ2V0PT09aS52YWx1ZXx8aCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQmJmguc2hhZG93VGFyZ2V0PT09aS52YWx1ZSl9eiYmQihsLGg9PntoP3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixZKTp3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsWSl9LHtpbW1lZGlhdGU6ITB9KSxpdCgoKT0+e3omJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixZKX0pO2Z1bmN0aW9uIFkoaCl7dmFyIEYsWDtoLmtleT09PSJFc2NhcGUiJiZDLnZhbHVlJiYoZS5wZXJzaXN0ZW50P1ooKToobC52YWx1ZT0hMSwoRj1jLnZhbHVlKSE9bnVsbCYmRi5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmKChYPVQudmFsdWUpPT1udWxsfHxYLmZvY3VzKCkpKSl9Y29uc3QgVT1tdCgpO3ZlKCgpPT5lLmNsb3NlT25CYWNrLCgpPT57aHQoVSxoPT57Qy52YWx1ZSYmbC52YWx1ZT8oaCghMSksZS5wZXJzaXN0ZW50P1ooKTpsLnZhbHVlPSExKTpoKCl9KX0pO2NvbnN0IHllPVYoKTtCKCgpPT5sLnZhbHVlJiYoZS5hYnNvbHV0ZXx8ZS5jb250YWluZWQpJiZ3LnZhbHVlPT1udWxsLGg9PntpZihoKXtjb25zdCBGPUF0KHMudmFsdWUpO0YmJkYhPT1kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50JiYoeWUudmFsdWU9Ri5zY3JvbGxUb3ApfX0pO2Z1bmN0aW9uIFooKXtlLm5vQ2xpY2tBbmltYXRpb258fGMudmFsdWUmJnB0KGMudmFsdWUsW3t0cmFuc2Zvcm1PcmlnaW46ImNlbnRlciJ9LHt0cmFuc2Zvcm06InNjYWxlKDEuMDMpIn0se3RyYW5zZm9ybU9yaWdpbjoiY2VudGVyIn1dLHtkdXJhdGlvbjoxNTAsZWFzaW5nOlJ0fSl9ZnVuY3Rpb24gJGUoKXthKCJhZnRlckVudGVyIil9ZnVuY3Rpb24gamUoKXtkKCksYSgiYWZ0ZXJMZWF2ZSIpfXJldHVybiBzdCgoKT0+e3ZhciBoO3JldHVybiBJKGR0LG51bGwsWyhoPW4uYWN0aXZhdG9yKT09bnVsbD92b2lkIDA6aC5jYWxsKG4se2lzQWN0aXZlOmwudmFsdWUsdGFyZ2V0UmVmOnUscHJvcHM6JCh7cmVmOk19LGsudmFsdWUsZS5hY3RpdmF0b3JQcm9wcyl9KSx5LnZhbHVlJiZ2LnZhbHVlJiZJKGx0LHtkaXNhYmxlZDohdy52YWx1ZSx0bzp3LnZhbHVlfSx7ZGVmYXVsdDooKT0+W0koImRpdiIsJCh7Y2xhc3M6WyJ2LW92ZXJsYXkiLHsidi1vdmVybGF5LS1hYnNvbHV0ZSI6ZS5hYnNvbHV0ZXx8ZS5jb250YWluZWQsInYtb3ZlcmxheS0tYWN0aXZlIjpsLnZhbHVlLCJ2LW92ZXJsYXktLWNvbnRhaW5lZCI6ZS5jb250YWluZWR9LGcudmFsdWUseC52YWx1ZSxlLmNsYXNzXSxzdHlsZTpbRS52YWx1ZSx7Ii0tdi1vdmVybGF5LW9wYWNpdHkiOmUub3BhY2l0eSx0b3A6Vyh5ZS52YWx1ZSl9LGUuc3R5bGVdLHJlZjpzfSxOLG8pLFtJKG5uLCQoe2NvbG9yOlAsbW9kZWxWYWx1ZTpsLnZhbHVlJiYhIWUuc2NyaW0scmVmOml9LE8udmFsdWUpLG51bGwpLEkoRXQse2FwcGVhcjohMCxwZXJzaXN0ZWQ6ITAsdHJhbnNpdGlvbjplLnRyYW5zaXRpb24sdGFyZ2V0OkwudmFsdWUsb25BZnRlckVudGVyOiRlLG9uQWZ0ZXJMZWF2ZTpqZX0se2RlZmF1bHQ6KCk9Pnt2YXIgRjtyZXR1cm5bY3QoSSgiZGl2IiwkKHtyZWY6YyxjbGFzczpbInYtb3ZlcmxheV9fY29udGVudCIsZS5jb250ZW50Q2xhc3NdLHN0eWxlOlttLnZhbHVlLF8udmFsdWVdfSxyZS52YWx1ZSxlLmNvbnRlbnRQcm9wcyksWyhGPW4uZGVmYXVsdCk9PW51bGw/dm9pZCAwOkYuY2FsbChuLHtpc0FjdGl2ZTpsfSldKSxbW3V0LGwudmFsdWVdLFtmdCgiY2xpY2stb3V0c2lkZSIpLHtoYW5kbGVyOlIsY2xvc2VDb25kaXRpb25hbDpELGluY2x1ZGU6KCk9PltULnZhbHVlXX1dXSldfX0pXSldfSldKX0pLHthY3RpdmF0b3JFbDpULHNjcmltRWw6aSx0YXJnZXQ6TCxhbmltYXRlQ2xpY2s6Wixjb250ZW50RWw6YyxnbG9iYWxUb3A6Qyxsb2NhbFRvcDpTLHVwZGF0ZUxvY2F0aW9uOnF9fX0pLGNlPVN5bWJvbCgiRm9yd2FyZGVkIHJlZnMiKTtmdW5jdGlvbiB1ZShlLHQpe2xldCBuPWU7Zm9yKDtuOyl7Y29uc3Qgbz1SZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpO2lmKG8pcmV0dXJuIG87bj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobil9fWZ1bmN0aW9uIHZuKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHQ+MT90LTE6MCksbz0xO288dDtvKyspbltvLTFdPWFyZ3VtZW50c1tvXTtyZXR1cm4gZVtjZV09bixuZXcgUHJveHkoZSx7Z2V0KGEscil7aWYoUmVmbGVjdC5oYXMoYSxyKSlyZXR1cm4gUmVmbGVjdC5nZXQoYSxyKTtpZighKHR5cGVvZiByPT0ic3ltYm9sInx8ci5zdGFydHNXaXRoKCIkIil8fHIuc3RhcnRzV2l0aCgiX18iKSkpe2Zvcihjb25zdCBzIG9mIG4paWYocy52YWx1ZSYmUmVmbGVjdC5oYXMocy52YWx1ZSxyKSl7Y29uc3QgaT1SZWZsZWN0LmdldChzLnZhbHVlLHIpO3JldHVybiB0eXBlb2YgaT09ImZ1bmN0aW9uIj9pLmJpbmQocy52YWx1ZSk6aX19fSxoYXMoYSxyKXtpZihSZWZsZWN0LmhhcyhhLHIpKXJldHVybiEwO2lmKHR5cGVvZiByPT0ic3ltYm9sInx8ci5zdGFydHNXaXRoKCIkIil8fHIuc3RhcnRzV2l0aCgiX18iKSlyZXR1cm4hMTtmb3IoY29uc3QgcyBvZiBuKWlmKHMudmFsdWUmJlJlZmxlY3QuaGFzKHMudmFsdWUscikpcmV0dXJuITA7cmV0dXJuITF9LHNldChhLHIscyl7aWYoUmVmbGVjdC5oYXMoYSxyKSlyZXR1cm4gUmVmbGVjdC5zZXQoYSxyLHMpO2lmKHR5cGVvZiByPT0ic3ltYm9sInx8ci5zdGFydHNXaXRoKCIkIil8fHIuc3RhcnRzV2l0aCgiX18iKSlyZXR1cm4hMTtmb3IoY29uc3QgaSBvZiBuKWlmKGkudmFsdWUmJlJlZmxlY3QuaGFzKGkudmFsdWUscikpcmV0dXJuIFJlZmxlY3Quc2V0KGkudmFsdWUscixzKTtyZXR1cm4hMX0sZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEscil7dmFyIGk7Y29uc3Qgcz1SZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLHIpO2lmKHMpcmV0dXJuIHM7aWYoISh0eXBlb2Ygcj09InN5bWJvbCJ8fHIuc3RhcnRzV2l0aCgiJCIpfHxyLnN0YXJ0c1dpdGgoIl9fIikpKXtmb3IoY29uc3QgYyBvZiBuKXtpZighYy52YWx1ZSljb250aW51ZTtjb25zdCBmPXVlKGMudmFsdWUscik/PygiXyJpbiBjLnZhbHVlP3VlKChpPWMudmFsdWUuXyk9PW51bGw/dm9pZCAwOmkuc2V0dXBTdGF0ZSxyKTp2b2lkIDApO2lmKGYpcmV0dXJuIGZ9Zm9yKGNvbnN0IGMgb2Ygbil7Y29uc3QgZj1jLnZhbHVlJiZjLnZhbHVlW2NlXTtpZighZiljb250aW51ZTtjb25zdCBsPWYuc2xpY2UoKTtmb3IoO2wubGVuZ3RoOyl7Y29uc3QgZz1sLnNoaWZ0KCkseD11ZShnLnZhbHVlLHIpO2lmKHgpcmV0dXJuIHg7Y29uc3QgYj1nLnZhbHVlJiZnLnZhbHVlW2NlXTtiJiZsLnB1c2goLi4uYil9fX19fSl9ZXhwb3J0e2RuIGFzIFYscHQgYXMgYSxLdCBhcyBiLG9uIGFzIGMsanQgYXMgZCx1biBhcyBlLHZuIGFzIGYsQXQgYXMgZyxmbiBhcyBoLFN0IGFzIGksenQgYXMgbSxPdCBhcyBuLFJ0IGFzIHMscXQgYXMgdX07Cg=="}},"time_used":78,"timings":{"blocked":47,"dns":0,"connect":0,"send":0,"wait":31,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/D8ayu7rP.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.507Z","timestamp":1785139669507,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/D8ayu7rP.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"883-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1018\r\nKeep-Alive: timeout=5, max=97\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":2179,"size_decoded":1368,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (2178)","md5":"7cedac030d27c2233cd24327ee7a649c","sha1":"59901a9c14cd1116012acfa1a2881e9c988edeb9","sha256":"ba6820e08629ce702def60efd6e530b256cff87b96e8920c359dd31aca1e18f5","sha512":"038fecf563202d0b1178f0b28f3f6d0fdb6d37b9bdebbe5b14e7b0212f223592ffd32b6c935c86a2663ee874b7dbd3d5677a46d78dbfe899ae7542b736cafb23","ssdeep":"","tlshash":"cb41a64c43911df3416713d7edc643050678e89c3e2e58e8fa78694ba3221166b6ef6b","first_seen":"2025-10-23T03:46:52.061834Z","last_seen":"2026-07-27T11:49:48.96429Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2EwIGFzIGIsZiBhcyB5LGEyIGFzIEEsYmogYXMgdSwkIGFzIFR9ZnJvbSIuL1NtMm1DZkRFLmpzIjtpbXBvcnR7YSBhcyBtLGUgYXMgVixzIGFzIHYsaCBhcyBCLGkgYXMgRixuIGFzIHF9ZnJvbSIuL0MxMGRiWDNrLmpzIjtjb25zdCBDPVQoe3RhcmdldDpbT2JqZWN0LEFycmF5XX0sInYtZGlhbG9nLXRyYW5zaXRpb24iKSxMPWIoKSh7bmFtZToiVkRpYWxvZ1RyYW5zaXRpb24iLHByb3BzOkMoKSxzZXR1cChnLG8pe2xldHtzbG90czplfT1vO2NvbnN0IGk9e29uQmVmb3JlRW50ZXIodCl7dC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIix0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiJ9LGFzeW5jIG9uRW50ZXIodCxoKXt2YXIgYzthd2FpdCBuZXcgUHJvbWlzZShuPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobikpLGF3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSksdC5zdHlsZS52aXNpYmlsaXR5PSIiO2NvbnN0e3g6cyx5OmEsc3g6cCxzeTpmLHNwZWVkOnJ9PXcoZy50YXJnZXQsdCksbD1tKHQsW3t0cmFuc2Zvcm06YHRyYW5zbGF0ZSgke3N9cHgsICR7YX1weCkgc2NhbGUoJHtwfSwgJHtmfSlgLG9wYWNpdHk6MH0se31dLHtkdXJhdGlvbjoyMjUqcixlYXNpbmc6Vn0pOyhjPXgodCkpPT1udWxsfHxjLmZvckVhY2gobj0+e20obixbe29wYWNpdHk6MH0se29wYWNpdHk6MCxvZmZzZXQ6LjMzfSx7fV0se2R1cmF0aW9uOjIyNSoyKnIsZWFzaW5nOnZ9KX0pLGwuZmluaXNoZWQudGhlbigoKT0+aCgpKX0sb25BZnRlckVudGVyKHQpe3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoInBvaW50ZXItZXZlbnRzIil9LG9uQmVmb3JlTGVhdmUodCl7dC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIn0sYXN5bmMgb25MZWF2ZSh0LGgpe3ZhciBjO2F3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSk7Y29uc3R7eDpzLHk6YSxzeDpwLHN5OmYsc3BlZWQ6cn09dyhnLnRhcmdldCx0KTttKHQsW3t9LHt0cmFuc2Zvcm06YHRyYW5zbGF0ZSgke3N9cHgsICR7YX1weCkgc2NhbGUoJHtwfSwgJHtmfSlgLG9wYWNpdHk6MH1dLHtkdXJhdGlvbjoxMjUqcixlYXNpbmc6Qn0pLmZpbmlzaGVkLnRoZW4oKCk9PmgoKSksKGM9eCh0KSk9PW51bGx8fGMuZm9yRWFjaChuPT57bShuLFt7fSx7b3BhY2l0eTowLG9mZnNldDouMn0se29wYWNpdHk6MH1dLHtkdXJhdGlvbjoxMjUqMipyLGVhc2luZzp2fSl9KX0sb25BZnRlckxlYXZlKHQpe3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoInBvaW50ZXItZXZlbnRzIil9fTtyZXR1cm4oKT0+Zy50YXJnZXQ/eSh1LEEoe25hbWU6ImRpYWxvZy10cmFuc2l0aW9uIn0saSx7Y3NzOiExfSksZSk6eSh1LHtuYW1lOiJkaWFsb2ctdHJhbnNpdGlvbiJ9LGUpfX0pO2Z1bmN0aW9uIHgoZyl7dmFyIGU7Y29uc3Qgbz0oZT1nLnF1ZXJ5U2VsZWN0b3IoIjpzY29wZSA+IC52LWNhcmQsIDpzY29wZSA+IC52LXNoZWV0LCA6c2NvcGUgPiAudi1saXN0IikpPT1udWxsP3ZvaWQgMDplLmNoaWxkcmVuO3JldHVybiBvJiZbLi4ub119ZnVuY3Rpb24gdyhnLG8pe2NvbnN0IGU9RihnKSxpPXEobyksW3QsaF09Z2V0Q29tcHV0ZWRTdHlsZShvKS50cmFuc2Zvcm1PcmlnaW4uc3BsaXQoIiAiKS5tYXAoUD0+cGFyc2VGbG9hdChQKSksW3MsYV09Z2V0Q29tcHV0ZWRTdHlsZShvKS5nZXRQcm9wZXJ0eVZhbHVlKCItLXYtb3ZlcmxheS1hbmNob3Itb3JpZ2luIikuc3BsaXQoIiAiKTtsZXQgcD1lLmxlZnQrZS53aWR0aC8yO3M9PT0ibGVmdCJ8fGE9PT0ibGVmdCI/cC09ZS53aWR0aC8yOihzPT09InJpZ2h0Inx8YT09PSJyaWdodCIpJiYocCs9ZS53aWR0aC8yKTtsZXQgZj1lLnRvcCtlLmhlaWdodC8yO3M9PT0idG9wInx8YT09PSJ0b3AiP2YtPWUuaGVpZ2h0LzI6KHM9PT0iYm90dG9tInx8YT09PSJib3R0b20iKSYmKGYrPWUuaGVpZ2h0LzIpO2NvbnN0IHI9ZS53aWR0aC9pLndpZHRoLGw9ZS5oZWlnaHQvaS5oZWlnaHQsYz1NYXRoLm1heCgxLHIsbCksbj1yL2N8fDAsRT1sL2N8fDAsZD1pLndpZHRoKmkuaGVpZ2h0Lyh3aW5kb3cuaW5uZXJXaWR0aCp3aW5kb3cuaW5uZXJIZWlnaHQpLCQ9ZD4uMTI/TWF0aC5taW4oMS41LChkLS4xMikqMTArMSk6MTtyZXR1cm57eDpwLSh0K2kubGVmdCkseTpmLShoK2kudG9wKSxzeDpuLHN5OkUsc3BlZWQ6JH19ZXhwb3J0e0wgYXMgVn07Cg=="}},"time_used":79,"timings":{"blocked":53,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/index.C82jrRZP.css","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.854Z","timestamp":1785139669854,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/index.C82jrRZP.css HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"2a8-654aa2b834b7a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 380\r\nKeep-Alive: timeout=5, max=91\r\nConnection: Keep-Alive\r\nContent-Type: text/css\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":680,"size_decoded":715,"mime_type":"text/css","magic":"ASCII text","md5":"2fc54859dc92ec5811728d7ef92f54ca","sha1":"fca6e29f07499b120341ca718a0038d6aac6f564","sha256":"a33f6572e7f7804ab227eaa7159f271e538e1a9f52cc477d1bd8e0d415530fce","sha512":"98a7eb9b4eb23eba4e943f478f7064ee3161a1324ed825bee62e88aa26921f3cd76149e8faf6984fdf7fcde520ce2689d86a348c815df6c4cad98a47cfe9220f","ssdeep":"","tlshash":"f201f44ab0f50b0271abe31c54fd53909fe7f847d00e5ee6b5d8418cee8c6001d6090c","first_seen":"2025-10-23T03:46:52.546401Z","last_seen":"2026-07-27T11:49:48.960108Z","times_seen":8,"resource_available":false,"data":"QGtleWZyYW1lcyBibGluay02YjVlMjU5NSB7CiAgMCUsCiAgdG8gewogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICB9CiAgNTAlIHsKICAgIGJvcmRlci1jb2xvcjogI2ZmZjsKICB9Cn0KLnBsYWNlaG9sZGVyLmJsaW5raW5nW2RhdGEtdi02YjVlMjU5NV0gewogIGFuaW1hdGlvbjogYmxpbmstNmI1ZTI1OTUgMXMgc3RlcC1lbmQgaW5maW5pdGU7Cn0KI2V4Y2hhbmdlQm94IHsKICBzY3JvbGwtbWFyZ2luLXRvcDogMzAwcHg7Cn0KLmhlcm8gewogIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg2OC4xOSUgNjguMTUlIGF0IDUwJSAwLCAjMDM0N2E4IDAsICMwMDApOwp9CgoKQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgLm1heC1tZFw6ZmxleC13cmFwIHsKICAgIGZsZXgtd3JhcDogd3JhcDsKICB9CiAgLm1heC1tZFw6ZmxleC1jb2wgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICB9CiAgLm1heC1tZFw6anVzdGlmeS1jZW50ZXIgewogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgfQogIC5tYXgtbWRcOmdhcC0yIHsKICAgIGdhcDogMTBweDsKICB9CiAgLm1heC1tZFw6Z3JpZCB7CiAgICBkaXNwbGF5OiBncmlkOwogIH0KICAubWF4LW1kXDpncmlkLWNvbHMtMiB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogIH0KfQo="}},"time_used":28,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/client","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.970Z","timestamp":1785139669970,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"accounts.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:40:14 GMT","end":"Mon, 21 Sep 2026 08:40:13 GMT"},"fingerprint":{"sha1":"93:91:8D:27:B0:C4:5A:8E:4D:AE:13:60:22:57:A6:AD:23:05:64:C6","sha256":"4D:58:57:46:FA:21:8C:CF:FC:2E:FB:76:42:37:3D:E8:82:32:15:46:F2:01:11:6B:C4:DC:8B:9C:F1:B9:FB:29"}}},"request":{"raw":"GET /gsi/client HTTP/1.1\r\nHost: accounts.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: application/javascript; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\nexpires: Mon, 27 Jul 2026 08:07:50 GMT\r\ndate: Mon, 27 Jul 2026 08:07:50 GMT\r\ncache-control: private, max-age=1800\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_dd7de8473bddc59c6b748810a67a39b1\"\r\ncross-origin-resource-policy: cross-origin\r\ncontent-security-policy: require-trusted-types-for 'script';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http, script-src 'nonce-j81NnpV980jS1Beq-9BqaA' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http\r\nreport-to: {\"group\":\"coop_dd7de8473bddc59c6b748810a67a39b1\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/dd7de8473bddc59c6b748810a67a39b1\"}]}\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":264923,"size_decoded":99223,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2663)","md5":"3cf9ec42dd0859935ed0972af2567758","sha1":"e4b840d0219e6fdbb7d7b3ae8aa0e39181b1e6fd","sha256":"599a5650bb9c3548a829d440c5277a13735186af88474bb6e1d8e85481122fac","sha512":"b2d3525736197d7cd9fdb5acea8fc263c561793c3f8ba55da951e18ead5f4f4466e40142028b6bd158b698cb3dacc1380c11916deec6e255f09367264f2e94f5","ssdeep":"6144:3dF97hxy5bhIJFMS/4y/PIwnpjSsM1aCRT9ySU:34hsh/4y/gsdjM1aCRT9XU","tlshash":"e9444adcb2e270359212f8b5c43f410ab076a679f0498cacfa95c5f5acb1d890167f7a","first_seen":"2026-07-23T02:50:46.049799Z","last_seen":"2026-07-30T04:41:11.641321Z","times_seen":760,"resource_available":true,"data":"InVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF9nc2k9dGhpcy5kZWZhdWx0X2dzaXx8e307KGZ1bmN0aW9uKF8pe3ZhciB3aW5kb3c9dGhpczsKdHJ5ewpfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZT1mdW5jdGlvbihhKXsodHlwZW9mIGdsb2JhbFRoaXMhPT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmIT09InVuZGVmaW5lZCI/c2VsZjp0aGlzKS5fRl90b2dnbGVzX2RlZmF1bHRfZ3NpPWF8fFtdfTsoMCxfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZSkoWzB4MCwgMHgxMzYwMDQxMCwgMHg0MiwgXSk7CnZhciBiYSxjYSxkYSx0LGVhLGxhLG1hLG9hO18uYWE9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9O2JhPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwpjYT1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoImEiKTt9O2RhPWNhKHRoaXMpO3Q9ZnVuY3Rpb24oYSxiKXtpZihiKWE6e3ZhciBjPWRhO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKWJyZWFrIGE7Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJmIhPW51bGwmJmJhKGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX19OwppZih0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKWVhPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBmYTthOnt2YXIgaGE9e2E6ITB9LGlhPXt9O3RyeXtpYS5fX3Byb3RvX189aGE7ZmE9aWEuYTticmVhayBhfWNhdGNoKGEpe31mYT0hMX1lYT1mYT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoImJgIithKTtyZXR1cm4gYX06bnVsbH1fLmphPWVhO2xhPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTsKXy51PWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDpsYShhKX07dGhyb3cgRXJyb3IoImNgIitTdHJpbmcoYSkpO307bWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYil9O29hPXR5cGVvZiBPYmplY3QuYXNzaWduPT0iZnVuY3Rpb24iP09iamVjdC5hc3NpZ246ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoImQiKTthPU9iamVjdChhKTtmb3IodmFyIGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXt2YXIgZD1hcmd1bWVudHNbY107aWYoZClmb3IodmFyIGUgaW4gZCltYShkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07CnQoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxvYX0pO18ucGE9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJlYCIrYSk7fTtfLnY9ZnVuY3Rpb24oKXt0aGlzLkM9ITE7dGhpcy52PW51bGw7dGhpcy5pPXZvaWQgMDt0aGlzLmc9MTt0aGlzLm89dGhpcy5CPTA7dGhpcy5HPXRoaXMuaj1udWxsfTtfLnYucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7dGhpcy5pPWF9O18udi5wcm90b3R5cGUuZ2V0TmV4dEFkZHJlc3NKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTtfLnYucHJvdG90eXBlLmdldFlpZWxkUmVzdWx0SnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaX07Xy52LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5qPXtyZXR1cm46YX07dGhpcy5nPXRoaXMub307Xy52LnByb3RvdHlwZVsicmV0dXJuIl09Xy52LnByb3RvdHlwZS5yZXR1cm47Cl8udi5wcm90b3R5cGUuVj1mdW5jdGlvbihhKXt0aGlzLmo9e1c6YX07dGhpcy5nPXRoaXMub307Xy52LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9Xy52LnByb3RvdHlwZS5WO18udi5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIpe3RoaXMuZz1iO3JldHVybnt2YWx1ZTphfX07Xy52LnByb3RvdHlwZS55aWVsZD1fLnYucHJvdG90eXBlLmg7Xy52LnByb3RvdHlwZS5iYT1mdW5jdGlvbihhLGIpe2E9Xy51KGEpO3ZhciBjPWEubmV4dCgpO18ucGEoYyk7aWYoYy5kb25lKXRoaXMuaT1jLnZhbHVlLHRoaXMuZz1iO2Vsc2UgcmV0dXJuIHRoaXMudj1hLHRoaXMuaChjLnZhbHVlLGIpfTtfLnYucHJvdG90eXBlLnlpZWxkQWxsPV8udi5wcm90b3R5cGUuYmE7Xy52LnByb3RvdHlwZS5XPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLnYucHJvdG90eXBlLmp1bXBUbz1fLnYucHJvdG90eXBlLlc7Xy52LnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7dGhpcy5nPTB9OwpfLnYucHJvdG90eXBlLmp1bXBUb0VuZD1fLnYucHJvdG90eXBlLko7Xy52LnByb3RvdHlwZS51PWZ1bmN0aW9uKGEsYil7dGhpcy5CPWE7YiE9dm9pZCAwJiYodGhpcy5vPWIpfTtfLnYucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1fLnYucHJvdG90eXBlLnU7Xy52LnByb3RvdHlwZS5nYT1mdW5jdGlvbihhKXt0aGlzLkI9MDt0aGlzLm89YXx8MH07Xy52LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9Xy52LnByb3RvdHlwZS5nYTtfLnYucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXt0aGlzLmc9YTt0aGlzLkI9Ynx8MH07Xy52LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPV8udi5wcm90b3R5cGUuSDtfLnYucHJvdG90eXBlLmw9ZnVuY3Rpb24oYSl7dGhpcy5CPWF8fDA7YT10aGlzLmouTmI7dGhpcy5qPW51bGw7cmV0dXJuIGF9O18udi5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPV8udi5wcm90b3R5cGUubDsKXy52LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuR1tjXT10aGlzLmo6dGhpcy5HPVt0aGlzLmpdO3RoaXMuQj1hfHwwO3RoaXMubz1ifHwwfTtfLnYucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPV8udi5wcm90b3R5cGUuSztfLnYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuRy5zcGxpY2UoYnx8MClbMF07KGI9dGhpcy5qPXRoaXMuanx8Yik/Yi5ZYz90aGlzLmc9dGhpcy5CfHx0aGlzLm86Yi5XIT12b2lkIDAmJnRoaXMubzxiLlc/KHRoaXMuZz1iLlcsdGhpcy5qPW51bGwpOnRoaXMuZz10aGlzLm86dGhpcy5nPWF9O18udi5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9Xy52LnByb3RvdHlwZS5SO18udi5wcm90b3R5cGUuUD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHFhKGEpfTtfLnYucHJvdG90eXBlLmZvckluPV8udi5wcm90b3R5cGUuUDsKdmFyIHFhPWZ1bmN0aW9uKGEpe3RoaXMuaT1hO3RoaXMuZz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLmcucHVzaChiKTt0aGlzLmcucmV2ZXJzZSgpfTtxYS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe2Zvcig7dGhpcy5nLmxlbmd0aD4wOyl7dmFyIGE9dGhpcy5nLnBvcCgpO2lmKGEgaW4gdGhpcy5pKXJldHVybiBhfXJldHVybiBudWxsfTtxYS5wcm90b3R5cGUuZ2V0TmV4dD1xYS5wcm90b3R5cGUuaDt0KCJnbG9iYWxUaGlzIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8ZGF9KTt0KCJSZWZsZWN0LnNldFByb3RvdHlwZU9mIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOl8uamE/ZnVuY3Rpb24oYixjKXt0cnl7cmV0dXJuKDAsXy5qYSkoYixjKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19Om51bGx9KTsKdCgiU3ltYm9sIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO3ZhciBiPWZ1bmN0aW9uKGYsZyl7dGhpcy5nPWY7YmEodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pfTtiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBjPSJqc2NvbXBfc3ltYm9sXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCkrIl8iLGQ9MCxlPWZ1bmN0aW9uKGYpe2lmKHRoaXMgaW5zdGFuY2VvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImciKTtyZXR1cm4gbmV3IGIoYysoZnx8IiIpKyJfIitkKyssZil9O3JldHVybiBlfSk7dCgiU3ltYm9sLml0ZXJhdG9yIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO2E9U3ltYm9sKCJoIik7YmEoQXJyYXkucHJvdG90eXBlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiByYShsYSh0aGlzKSl9fSk7cmV0dXJuIGF9KTsKdmFyIHJhPWZ1bmN0aW9uKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfTsKdCgiUHJvbWlzZSIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe3RoaXMuZz1udWxsfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBlP2c6bmV3IGUoZnVuY3Rpb24oaCl7aChnKX0pfWlmKGEpcmV0dXJuIGE7Yi5wcm90b3R5cGUuaD1mdW5jdGlvbihnKXtpZih0aGlzLmc9PW51bGwpe3RoaXMuZz1bXTt2YXIgaD10aGlzO3RoaXMuaShmdW5jdGlvbigpe2gubCgpfSl9dGhpcy5nLnB1c2goZyl9O3ZhciBkPWRhLnNldFRpbWVvdXQ7Yi5wcm90b3R5cGUuaT1mdW5jdGlvbihnKXtkKGcsMCl9O2IucHJvdG90eXBlLmw9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuZyYmdGhpcy5nLmxlbmd0aDspe3ZhciBnPXRoaXMuZzt0aGlzLmc9W107Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDsrK2gpe3ZhciBrPWdbaF07Z1toXT1udWxsO3RyeXtrKCl9Y2F0Y2gobSl7dGhpcy5qKG0pfX19dGhpcy5nPW51bGx9O2IucHJvdG90eXBlLmo9ZnVuY3Rpb24oZyl7dGhpcy5pKGZ1bmN0aW9uKCl7dGhyb3cgZzsKfSl9O3ZhciBlPWZ1bmN0aW9uKGcpe3RoaXMuZz0wO3RoaXMuaT12b2lkIDA7dGhpcy5oPVtdO3RoaXMudT0hMTt2YXIgaD10aGlzLmooKTt0cnl7ZyhoLnJlc29sdmUsaC5yZWplY3QpfWNhdGNoKGspe2gucmVqZWN0KGspfX07ZS5wcm90b3R5cGUuaj1mdW5jdGlvbigpe2Z1bmN0aW9uIGcobSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2t8fChrPSEwLG0uY2FsbChoLG4pKX19dmFyIGg9dGhpcyxrPSExO3JldHVybntyZXNvbHZlOmcodGhpcy5EKSxyZWplY3Q6Zyh0aGlzLmwpfX07ZS5wcm90b3R5cGUuRD1mdW5jdGlvbihnKXtpZihnPT09dGhpcyl0aGlzLmwobmV3IFR5cGVFcnJvcigiaSIpKTtlbHNlIGlmKGcgaW5zdGFuY2VvZiBlKXRoaXMuSihnKTtlbHNle2E6c3dpdGNoKHR5cGVvZiBnKXtjYXNlICJvYmplY3QiOnZhciBoPWchPW51bGw7YnJlYWsgYTtjYXNlICJmdW5jdGlvbiI6aD0hMDticmVhayBhO2RlZmF1bHQ6aD0hMX1oP3RoaXMuSChnKTp0aGlzLm8oZyl9fTtlLnByb3RvdHlwZS5IPQpmdW5jdGlvbihnKXt2YXIgaD12b2lkIDA7dHJ5e2g9Zy50aGVufWNhdGNoKGspe3RoaXMubChrKTtyZXR1cm59dHlwZW9mIGg9PSJmdW5jdGlvbiI/dGhpcy5LKGgsZyk6dGhpcy5vKGcpfTtlLnByb3RvdHlwZS5sPWZ1bmN0aW9uKGcpe3RoaXMudigyLGcpfTtlLnByb3RvdHlwZS5vPWZ1bmN0aW9uKGcpe3RoaXMudigxLGcpfTtlLnByb3RvdHlwZS52PWZ1bmN0aW9uKGcsaCl7aWYodGhpcy5nIT0wKXRocm93IEVycm9yKCJqYCIrZysiYCIraCsiYCIrdGhpcy5nKTt0aGlzLmc9Zzt0aGlzLmk9aDt0aGlzLmc9PT0yJiZ0aGlzLkcoKTt0aGlzLkIoKX07ZS5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3ZhciBnPXRoaXM7ZChmdW5jdGlvbigpe2lmKGcuQygpKXt2YXIgaD1kYS5jb25zb2xlO3R5cGVvZiBoIT09InVuZGVmaW5lZCImJmguZXJyb3IoZy5pKX19LDEpfTtlLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7aWYodGhpcy51KXJldHVybiExO3ZhciBnPWRhLkN1c3RvbUV2ZW50LGg9ZGEuRXZlbnQsCms9ZGEuZGlzcGF0Y2hFdmVudDtpZih0eXBlb2Ygaz09PSJ1bmRlZmluZWQiKXJldHVybiEwO3R5cGVvZiBnPT09ImZ1bmN0aW9uIj9nPW5ldyBnKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6dHlwZW9mIGg9PT0iZnVuY3Rpb24iP2c9bmV3IGgoInVuaGFuZGxlZHJlamVjdGlvbiIse2NhbmNlbGFibGU6ITB9KTooZz1kYS5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxnLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxnKSk7Zy5wcm9taXNlPXRoaXM7Zy5yZWFzb249dGhpcy5pO3JldHVybiBrKGcpfTtlLnByb3RvdHlwZS5CPWZ1bmN0aW9uKCl7aWYodGhpcy5oIT1udWxsKXtmb3IodmFyIGc9MDtnPHRoaXMuaC5sZW5ndGg7KytnKWYuaCh0aGlzLmhbZ10pO3RoaXMuaD1udWxsfX07dmFyIGY9bmV3IGI7ZS5wcm90b3R5cGUuSj1mdW5jdGlvbihnKXt2YXIgaD10aGlzLmooKTtnLnFiKGgucmVzb2x2ZSxoLnJlamVjdCl9OwplLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGcsaCl7dmFyIGs9dGhpcy5qKCk7dHJ5e2cuY2FsbChoLGsucmVzb2x2ZSxrLnJlamVjdCl9Y2F0Y2gobSl7ay5yZWplY3QobSl9fTtlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gayhwLHIpe3JldHVybiB0eXBlb2YgcD09ImZ1bmN0aW9uIj9mdW5jdGlvbih4KXt0cnl7bShwKHgpKX1jYXRjaCh5KXtuKHkpfX06cn12YXIgbSxuLHE9bmV3IGUoZnVuY3Rpb24ocCxyKXttPXA7bj1yfSk7dGhpcy5xYihrKGcsbSksayhoLG4pKTtyZXR1cm4gcX07ZS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZyl9O2UucHJvdG90eXBlLnFiPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gaygpe3N3aXRjaChtLmcpe2Nhc2UgMTpnKG0uaSk7YnJlYWs7Y2FzZSAyOmgobS5pKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJrYCIrbS5nKTt9fXZhciBtPXRoaXM7dGhpcy5oPT1udWxsP2YuaChrKToKdGhpcy5oLnB1c2goayk7dGhpcy51PSEwfTtlLnJlc29sdmU9YztlLnJlamVjdD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtrKGcpfSl9O2UucmFjZT1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtmb3IodmFyIG09Xy51KGcpLG49bS5uZXh0KCk7IW4uZG9uZTtuPW0ubmV4dCgpKWMobi52YWx1ZSkucWIoaCxrKX0pfTtlLmFsbD1mdW5jdGlvbihnKXt2YXIgaD1fLnUoZyksaz1oLm5leHQoKTtyZXR1cm4gay5kb25lP2MoW10pOm5ldyBlKGZ1bmN0aW9uKG0sbil7ZnVuY3Rpb24gcSh4KXtyZXR1cm4gZnVuY3Rpb24oeSl7cFt4XT15O3ItLTtyPT0wJiZtKHApfX12YXIgcD1bXSxyPTA7ZG8gcC5wdXNoKHZvaWQgMCkscisrLGMoay52YWx1ZSkucWIocShwLmxlbmd0aC0xKSxuKSxrPWgubmV4dCgpO3doaWxlKCFrLmRvbmUpfSl9O3JldHVybiBlfSk7CnZhciBzYT1mdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJsYCIrYyk7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtYCIrYyk7cmV0dXJuIGErIiJ9O3QoIlN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXNhKHRoaXMsYiwic3RhcnRzV2l0aCIpLGU9ZC5sZW5ndGgsZj1iLmxlbmd0aDtjPU1hdGgubWF4KDAsTWF0aC5taW4oY3wwLGQubGVuZ3RoKSk7Zm9yKHZhciBnPTA7ZzxmJiZjPGU7KWlmKGRbYysrXSE9YltnKytdKXJldHVybiExO3JldHVybiBnPj1mfX0pO3QoIk9iamVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fF8uamF9KTt0KCJTeW1ib2wuZGlzcG9zZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpTeW1ib2woIm4iKX0pOwp0KCJBcnJheS5wcm90b3R5cGUuZmluZCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe2E6e3ZhciBkPXRoaXM7ZCBpbnN0YW5jZW9mIFN0cmluZyYmKGQ9U3RyaW5nKGQpKTtmb3IodmFyIGU9ZC5sZW5ndGgsZj0wO2Y8ZTtmKyspe3ZhciBnPWRbZl07aWYoYi5jYWxsKGMsZyxmLGQpKXtiPWc7YnJlYWsgYX19Yj12b2lkIDB9cmV0dXJuIGJ9fSk7CnQoIldlYWtNYXAiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gYyhrKXt2YXIgbT10eXBlb2YgaztyZXR1cm4gbT09PSJvYmplY3QiJiZrIT09bnVsbHx8bT09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gZChrKXtpZighbWEoayxmKSl7dmFyIG09bmV3IGI7YmEoayxmLHt2YWx1ZTptfSl9fWZ1bmN0aW9uIGUoayl7dmFyIG09T2JqZWN0W2tdO20mJihPYmplY3Rba109ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIGIpcmV0dXJuIG47T2JqZWN0LmlzRXh0ZW5zaWJsZShuKSYmZChuKTtyZXR1cm4gbShuKX0pfWlmKGZ1bmN0aW9uKCl7aWYoIWF8fCFPYmplY3Quc2VhbClyZXR1cm4hMTt0cnl7dmFyIGs9T2JqZWN0LnNlYWwoe30pLG09T2JqZWN0LnNlYWwoe30pLG49bmV3IGEoW1trLDJdLFttLDNdXSk7aWYobi5nZXQoaykhPTJ8fG4uZ2V0KG0pIT0zKXJldHVybiExO24uZGVsZXRlKGspO24uc2V0KG0sNCk7cmV0dXJuIW4uaGFzKGspJiZuLmdldChtKT09NH1jYXRjaChxKXtyZXR1cm4hMX19KCkpcmV0dXJuIGE7CnZhciBmPSIkanNjb21wX2hpZGRlbl8iK01hdGgucmFuZG9tKCk7ZSgiZnJlZXplIik7ZSgicHJldmVudEV4dGVuc2lvbnMiKTtlKCJzZWFsIik7dmFyIGc9MCxoPWZ1bmN0aW9uKGspe3RoaXMuZz0oZys9TWF0aC5yYW5kb20oKSsxKS50b1N0cmluZygpO2lmKGspe2s9Xy51KGspO2Zvcih2YXIgbTshKG09ay5uZXh0KCkpLmRvbmU7KW09bS52YWx1ZSx0aGlzLnNldChtWzBdLG1bMV0pfX07aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGssbSl7aWYoIWMoaykpdGhyb3cgRXJyb3IoIm8iKTtkKGspO2lmKCFtYShrLGYpKXRocm93IEVycm9yKCJwYCIrayk7a1tmXVt0aGlzLmddPW07cmV0dXJuIHRoaXN9O2gucHJvdG90eXBlLmdldD1mdW5jdGlvbihrKXtyZXR1cm4gYyhrKSYmbWEoayxmKT9rW2ZdW3RoaXMuZ106dm9pZCAwfTtoLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oayl7cmV0dXJuIGMoaykmJm1hKGssZikmJm1hKGtbZl0sdGhpcy5nKX07aC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGspe3JldHVybiBjKGspJiYKbWEoayxmKSYmbWEoa1tmXSx0aGlzLmcpP2RlbGV0ZSBrW2ZdW3RoaXMuZ106ITF9O3JldHVybiBofSk7CnQoIk1hcCIsZnVuY3Rpb24oYSl7aWYoZnVuY3Rpb24oKXtpZighYXx8dHlwZW9mIGEhPSJmdW5jdGlvbiJ8fCFhLnByb3RvdHlwZS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPSJmdW5jdGlvbiIpcmV0dXJuITE7dHJ5e3ZhciBoPU9iamVjdC5zZWFsKHt4OjR9KSxrPW5ldyBhKF8udShbW2gsInMiXV0pKTtpZihrLmdldChoKSE9InMifHxrLnNpemUhPTF8fGsuZ2V0KHt4OjR9KXx8ay5zZXQoe3g6NH0sInQiKSE9a3x8ay5zaXplIT0yKXJldHVybiExO3ZhciBtPWsuZW50cmllcygpLG49bS5uZXh0KCk7aWYobi5kb25lfHxuLnZhbHVlWzBdIT1ofHxuLnZhbHVlWzFdIT0icyIpcmV0dXJuITE7bj1tLm5leHQoKTtyZXR1cm4gbi5kb25lfHxuLnZhbHVlWzBdLnghPTR8fG4udmFsdWVbMV0hPSJ0Inx8IW0ubmV4dCgpLmRvbmU/ITE6ITB9Y2F0Y2gocSl7cmV0dXJuITF9fSgpKXJldHVybiBhO3ZhciBiPW5ldyBXZWFrTWFwLGM9ZnVuY3Rpb24oaCl7dGhpc1swXT17fTt0aGlzWzFdPQpmKCk7dGhpcy5zaXplPTA7aWYoaCl7aD1fLnUoaCk7Zm9yKHZhciBrOyEoaz1oLm5leHQoKSkuZG9uZTspaz1rLnZhbHVlLHRoaXMuc2V0KGtbMF0sa1sxXSl9fTtjLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oaCxrKXtoPWg9PT0wPzA6aDt2YXIgbT1kKHRoaXMsaCk7bS5saXN0fHwobS5saXN0PXRoaXNbMF1bbS5pZF09W10pO20uZW50cnk/bS5lbnRyeS52YWx1ZT1rOihtLmVudHJ5PXtuZXh0OnRoaXNbMV0scGE6dGhpc1sxXS5wYSxoZWFkOnRoaXNbMV0sa2V5OmgsdmFsdWU6a30sbS5saXN0LnB1c2gobS5lbnRyeSksdGhpc1sxXS5wYS5uZXh0PW0uZW50cnksdGhpc1sxXS5wYT1tLmVudHJ5LHRoaXMuc2l6ZSsrKTtyZXR1cm4gdGhpc307Yy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGgpe2g9ZCh0aGlzLGgpO3JldHVybiBoLmVudHJ5JiZoLmxpc3Q/KGgubGlzdC5zcGxpY2UoaC5pbmRleCwxKSxoLmxpc3QubGVuZ3RofHxkZWxldGUgdGhpc1swXVtoLmlkXSxoLmVudHJ5LnBhLm5leHQ9CmguZW50cnkubmV4dCxoLmVudHJ5Lm5leHQucGE9aC5lbnRyeS5wYSxoLmVudHJ5LmhlYWQ9bnVsbCx0aGlzLnNpemUtLSwhMCk6ITF9O2MucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpc1swXT17fTt0aGlzWzFdPXRoaXNbMV0ucGE9ZigpO3RoaXMuc2l6ZT0wfTtjLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oaCl7cmV0dXJuISFkKHRoaXMsaCkuZW50cnl9O2MucHJvdG90eXBlLmdldD1mdW5jdGlvbihoKXtyZXR1cm4oaD1kKHRoaXMsaCkuZW50cnkpJiZoLnZhbHVlfTtjLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm5baC5rZXksaC52YWx1ZV19KX07Yy5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3JldHVybiBlKHRoaXMsZnVuY3Rpb24oaCl7cmV0dXJuIGgua2V5fSl9O2MucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3JldHVybiBlKHRoaXMsZnVuY3Rpb24oaCl7cmV0dXJuIGgudmFsdWV9KX07Yy5wcm90b3R5cGUuZm9yRWFjaD0KZnVuY3Rpb24oaCxrKXtmb3IodmFyIG09dGhpcy5lbnRyaWVzKCksbjshKG49bS5uZXh0KCkpLmRvbmU7KW49bi52YWx1ZSxoLmNhbGwoayxuWzFdLG5bMF0sdGhpcyl9O2MucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09Yy5wcm90b3R5cGUuZW50cmllczt2YXIgZD1mdW5jdGlvbihoLGspe3ZhciBtPWsmJnR5cGVvZiBrO209PSJvYmplY3QifHxtPT0iZnVuY3Rpb24iP2IuaGFzKGspP209Yi5nZXQoayk6KG09IiIrICsrZyxiLnNldChrLG0pKTptPSJwXyIrazt2YXIgbj1oWzBdW21dO2lmKG4mJm1hKGhbMF0sbSkpZm9yKGg9MDtoPG4ubGVuZ3RoO2grKyl7dmFyIHE9bltoXTtpZihrIT09ayYmcS5rZXkhPT1xLmtleXx8az09PXEua2V5KXJldHVybntpZDptLGxpc3Q6bixpbmRleDpoLGVudHJ5OnF9fXJldHVybntpZDptLGxpc3Q6bixpbmRleDotMSxlbnRyeTp2b2lkIDB9fSxlPWZ1bmN0aW9uKGgsayl7dmFyIG09aFsxXTtyZXR1cm4gcmEoZnVuY3Rpb24oKXtpZihtKXtmb3IoO20uaGVhZCE9CmhbMV07KW09bS5wYTtmb3IoO20ubmV4dCE9bS5oZWFkOylyZXR1cm4gbT1tLm5leHQse2RvbmU6ITEsdmFsdWU6ayhtKX07bT1udWxsfXJldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19KX0sZj1mdW5jdGlvbigpe3ZhciBoPXt9O3JldHVybiBoLnBhPWgubmV4dD1oLmhlYWQ9aH0sZz0wO3JldHVybiBjfSk7CnQoIlNldCIsZnVuY3Rpb24oYSl7aWYoZnVuY3Rpb24oKXtpZighYXx8dHlwZW9mIGEhPSJmdW5jdGlvbiJ8fCFhLnByb3RvdHlwZS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPSJmdW5jdGlvbiIpcmV0dXJuITE7dHJ5e3ZhciBjPU9iamVjdC5zZWFsKHt4OjR9KSxkPW5ldyBhKF8udShbY10pKTtpZighZC5oYXMoYyl8fGQuc2l6ZSE9MXx8ZC5hZGQoYykhPWR8fGQuc2l6ZSE9MXx8ZC5hZGQoe3g6NH0pIT1kfHxkLnNpemUhPTIpcmV0dXJuITE7dmFyIGU9ZC5lbnRyaWVzKCksZj1lLm5leHQoKTtpZihmLmRvbmV8fGYudmFsdWVbMF0hPWN8fGYudmFsdWVbMV0hPWMpcmV0dXJuITE7Zj1lLm5leHQoKTtyZXR1cm4gZi5kb25lfHxmLnZhbHVlWzBdPT1jfHxmLnZhbHVlWzBdLnghPTR8fGYudmFsdWVbMV0hPWYudmFsdWVbMF0/ITE6ZS5uZXh0KCkuZG9uZX1jYXRjaChnKXtyZXR1cm4hMX19KCkpcmV0dXJuIGE7dmFyIGI9ZnVuY3Rpb24oYyl7dGhpcy5nPW5ldyBNYXA7aWYoYyl7Yz0KXy51KGMpO2Zvcih2YXIgZDshKGQ9Yy5uZXh0KCkpLmRvbmU7KXRoaXMuYWRkKGQudmFsdWUpfXRoaXMuc2l6ZT10aGlzLmcuc2l6ZX07Yi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGMpe2M9Yz09PTA/MDpjO3RoaXMuZy5zZXQoYyxjKTt0aGlzLnNpemU9dGhpcy5nLnNpemU7cmV0dXJuIHRoaXN9O2IucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihjKXtjPXRoaXMuZy5kZWxldGUoYyk7dGhpcy5zaXplPXRoaXMuZy5zaXplO3JldHVybiBjfTtiLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuZy5jbGVhcigpO3RoaXMuc2l6ZT0wfTtiLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuZy5oYXMoYyl9O2IucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmVudHJpZXMoKX07Yi5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy52YWx1ZXMoKX07Yi5wcm90b3R5cGUua2V5cz1iLnByb3RvdHlwZS52YWx1ZXM7CmIucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09Yi5wcm90b3R5cGUudmFsdWVzO2IucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oYyxkKXt2YXIgZT10aGlzO3RoaXMuZy5mb3JFYWNoKGZ1bmN0aW9uKGYpe3JldHVybiBjLmNhbGwoZCxmLGYsZSl9KX07cmV0dXJuIGJ9KTt0KCJPYmplY3QudmFsdWVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYiltYShiLGQpJiZjLnB1c2goYltkXSk7cmV0dXJuIGN9fSk7dCgiT2JqZWN0LmlzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9PT1jP2IhPT0wfHwxL2I9PT0xL2M6YiE9PWImJmMhPT1jfX0pOwp0KCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7dmFyIGU9ZC5sZW5ndGg7Yz1jfHwwO2ZvcihjPDAmJihjPU1hdGgubWF4KGMrZSwwKSk7YzxlO2MrKyl7dmFyIGY9ZFtjXTtpZihmPT09Ynx8T2JqZWN0LmlzKGYsYikpcmV0dXJuITB9cmV0dXJuITF9fSk7dCgiU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBzYSh0aGlzLGIsImluY2x1ZGVzIikuaW5kZXhPZihiLGN8fDApIT09LTF9fSk7CnQoIkFycmF5LmZyb20iLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjLGQpe2M9YyE9bnVsbD9jOmZ1bmN0aW9uKGgpe3JldHVybiBofTt2YXIgZT1bXSxmPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmJbU3ltYm9sLml0ZXJhdG9yXTtpZih0eXBlb2YgZj09ImZ1bmN0aW9uIil7Yj1mLmNhbGwoYik7Zm9yKHZhciBnPTA7IShmPWIubmV4dCgpKS5kb25lOyllLnB1c2goYy5jYWxsKGQsZi52YWx1ZSxnKyspKX1lbHNlIGZvcihmPWIubGVuZ3RoLGc9MDtnPGY7ZysrKWUucHVzaChjLmNhbGwoZCxiW2ddLGcpKTtyZXR1cm4gZX19KTt0KCJPYmplY3QuZW50cmllcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGIpbWEoYixkKSYmYy5wdXNoKFtkLGJbZF1dKTtyZXR1cm4gY319KTsKdCgiTnVtYmVyLmlzRmluaXRlIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYiE9PSJudW1iZXIiPyExOiFpc05hTihiKSYmYiE9PUluZmluaXR5JiZiIT09LUluZmluaXR5fX0pO3QoIk51bWJlci5NQVhfU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybiA5MDA3MTk5MjU0NzQwOTkxfSk7dCgiTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuLTkwMDcxOTkyNTQ3NDA5OTF9KTt0KCJOdW1iZXIuaXNJbnRlZ2VyIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYik/Yj09PU1hdGguZmxvb3IoYik6ITF9fSk7dCgiTnVtYmVyLmlzU2FmZUludGVnZXIiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYikmJk1hdGguYWJzKGIpPD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUn19KTsKdCgiU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXNhKHRoaXMsYiwiZW5kc1dpdGgiKTtjPT09dm9pZCAwJiYoYz1kLmxlbmd0aCk7Yz1NYXRoLm1heCgwLE1hdGgubWluKGN8MCxkLmxlbmd0aCkpO2Zvcih2YXIgZT1iLmxlbmd0aDtlPjAmJmM+MDspaWYoZFstLWNdIT1iWy0tZV0pcmV0dXJuITE7cmV0dXJuIGU8PTB9fSk7dmFyIHRhPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIFN0cmluZyYmKGErPSIiKTt2YXIgYz0wLGQ9ITEsZT17bmV4dDpmdW5jdGlvbigpe2lmKCFkJiZjPGEubGVuZ3RoKXt2YXIgZj1jKys7cmV0dXJue3ZhbHVlOmIoZixhW2ZdKSxkb25lOiExfX1kPSEwO3JldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fTtlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIGV9Owp0KCJBcnJheS5wcm90b3R5cGUuZW50cmllcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiB0YSh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuW2IsY119KX19KTt0KCJNYXRoLnRydW5jIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe2I9TnVtYmVyKGIpO2lmKGlzTmFOKGIpfHxiPT09SW5maW5pdHl8fGI9PT0tSW5maW5pdHl8fGI9PT0wKXJldHVybiBiO3ZhciBjPU1hdGguZmxvb3IoTWF0aC5hYnMoYikpO3JldHVybiBiPDA/LWM6Y319KTt0KCJOdW1iZXIuaXNOYU4iLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIHR5cGVvZiBiPT09Im51bWJlciImJmlzTmFOKGIpfX0pO3QoIkFycmF5LnByb3RvdHlwZS5rZXlzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKCl7cmV0dXJuIHRhKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIGJ9KX19KTsKdCgiQXJyYXkucHJvdG90eXBlLnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiB0YSh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGN9KX19KTt0KCJTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPXNhKHRoaXMsbnVsbCwiY29kZVBvaW50QXQiKSxkPWMubGVuZ3RoO2I9TnVtYmVyKGIpfHwwO2lmKGI+PTAmJmI8ZCl7Ynw9MDt2YXIgZT1jLmNoYXJDb2RlQXQoYik7aWYoZTw1NTI5Nnx8ZT41NjMxOXx8YisxPT09ZClyZXR1cm4gZTtiPWMuY2hhckNvZGVBdChiKzEpO3JldHVybiBiPDU2MzIwfHxiPjU3MzQzP2U6KGUtNTUyOTYpKjEwMjQrYis5MjE2fX19KTsKdCgiU3RyaW5nLmZyb21Db2RlUG9pbnQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7Zm9yKHZhciBjPSIiLGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKXt2YXIgZT1OdW1iZXIoYXJndW1lbnRzW2RdKTtpZihlPDB8fGU+MTExNDExMXx8ZSE9PU1hdGguZmxvb3IoZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInFgIitlKTtlPD02NTUzNT9jKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpOihlLT02NTUzNixjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGU+Pj4xMCYxMDIzfDU1Mjk2KSxjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUmMTAyM3w1NjMyMCkpfXJldHVybiBjfX0pOwp0KCJQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShiKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gY30pfSxmdW5jdGlvbihjKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGIoKSkudGhlbihmdW5jdGlvbigpe3Rocm93IGM7fSl9KX19KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KXy51YT1fLnVhfHx7fTtfLnc9dGhpc3x8c2VsZjtfLnZhPV8udy5fRl90b2dnbGVzX2RlZmF1bHRfZ3NpfHxbXTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIEZhLE1hLFFhLFRhLFhhLGhiLGRiLGxiLEJiLEhiLFJiLFdiLFpiLGFjLGZjLGhjLGtjLHBjLHdjLEFjLHhjLFBjLFFjLFVjLGJkLGRkLGdkLHFkLHNkLHRkLEtkLExkLE5kLFFkLE9kLFBkLFJkLFNkLFZkLFdkLFhkOwpfLnphPWZ1bmN0aW9uKGEpe3ZhciBiPSExO2I9Yj09PXZvaWQgMD8hMTpiO2lmKHdhKXtpZihiJiYoeGE/IWEuaXNXZWxsRm9ybWVkKCk6Lyg/OlteXHVEODAwLVx1REJGRl18XilbXHVEQzAwLVx1REZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKS8udGVzdChhKSkpdGhyb3cgRXJyb3IoInMiKTthPSh5YXx8KHlhPW5ldyBUZXh0RW5jb2RlcikpLmVuY29kZShhKX1lbHNle2Zvcih2YXIgYz0wLGQ9bmV3IFVpbnQ4QXJyYXkoMyphLmxlbmd0aCksZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgZj1hLmNoYXJDb2RlQXQoZSk7aWYoZjwxMjgpZFtjKytdPWY7ZWxzZXtpZihmPDIwNDgpZFtjKytdPWY+PjZ8MTkyO2Vsc2V7aWYoZj49NTUyOTYmJmY8PTU3MzQzKXtpZihmPD01NjMxOSYmZTxhLmxlbmd0aCl7dmFyIGc9YS5jaGFyQ29kZUF0KCsrZSk7aWYoZz49NTYzMjAmJmc8PTU3MzQzKXtmPShmLTU1Mjk2KSoxMDI0K2ctNTYzMjArNjU1MzY7ZFtjKytdPWY+PjE4fDI0MDsKZFtjKytdPWY+PjEyJjYzfDEyODtkW2MrK109Zj4+NiY2M3wxMjg7ZFtjKytdPWYmNjN8MTI4O2NvbnRpbnVlfWVsc2UgZS0tfWlmKGIpdGhyb3cgRXJyb3IoInMiKTtmPTY1NTMzfWRbYysrXT1mPj4xMnwyMjQ7ZFtjKytdPWY+PjYmNjN8MTI4fWRbYysrXT1mJjYzfDEyOH19YT1jPT09ZC5sZW5ndGg/ZDpkLnN1YmFycmF5KDAsYyl9cmV0dXJuIGF9O18uQmE9ZnVuY3Rpb24oYSl7Xy53LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhO30sMCl9O18uQ2E9ZnVuY3Rpb24oKXt2YXIgYT1fLncubmF2aWdhdG9yO3JldHVybiBhJiYoYT1hLnVzZXJBZ2VudCk/YToiIn07RmE9ZnVuY3Rpb24oYSl7aWYoIURhfHwhXy5FYSlyZXR1cm4hMTtmb3IodmFyIGI9MDtiPF8uRWEuYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPV8uRWEuYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9OwpfLno9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2EoKS5pbmRleE9mKGEpIT0tMX07Xy5HYT1mdW5jdGlvbihhKXtmb3IodmFyIGI9UmVnRXhwKCIoW0EtWl1bXFx3IF0rKS8oW15cXHNdKylcXHMqKD86XFwoKC4qPylcXCkpPyIsImciKSxjPVtdLGQ7ZD1iLmV4ZWMoYSk7KWMucHVzaChbZFsxXSxkWzJdLGRbM118fHZvaWQgMF0pO3JldHVybiBjfTtfLkhhPWZ1bmN0aW9uKCl7cmV0dXJuIERhPyEhXy5FYSYmXy5FYS5icmFuZHMubGVuZ3RoPjA6ITF9O18uSWE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5IYSgpPyExOl8ueigiT3BlcmEiKX07Xy5KYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/ITE6Xy56KCJUcmlkZW50Iil8fF8ueigiTVNJRSIpfTtfLkthPWZ1bmN0aW9uKCl7cmV0dXJuIF8uSGEoKT8hMTpfLnooIkVkZ2UiKX07Xy5MYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/RmEoIk1pY3Jvc29mdCBFZGdlIik6Xy56KCJFZGcvIil9OwpNYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/RmEoIk9wZXJhIik6Xy56KCJPUFIiKX07Xy5OYT1mdW5jdGlvbigpe3JldHVybiBfLnooIkZpcmVmb3giKXx8Xy56KCJGeGlPUyIpfTtfLlBhPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueigiU2FmYXJpIikmJiEoXy5PYSgpfHwoXy5IYSgpPzA6Xy56KCJDb2FzdCIpKXx8Xy5JYSgpfHxfLkthKCl8fF8uTGEoKXx8TWEoKXx8Xy5OYSgpfHxfLnooIlNpbGsiKXx8Xy56KCJBbmRyb2lkIikpfTtfLk9hPWZ1bmN0aW9uKCl7cmV0dXJuIF8uSGEoKT9GYSgiQ2hyb21pdW0iKTooXy56KCJDaHJvbWUiKXx8Xy56KCJDcmlPUyIpKSYmIV8uS2EoKXx8Xy56KCJTaWxrIil9O1FhPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueigiQW5kcm9pZCIpJiYhKF8uT2EoKXx8Xy5OYSgpfHxfLklhKCl8fF8ueigiU2lsayIpKX07Cl8uUmE9ZnVuY3Rpb24oYSl7dmFyIGI9e307YS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2JbY1swXV09Y1sxXX0pO3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYltjLmZpbmQoZnVuY3Rpb24oZCl7cmV0dXJuIGQgaW4gYn0pXXx8IiJ9fTtfLlNhPWZ1bmN0aW9uKGEpe3ZhciBiPS9ydjogKihbXGRcLl0qKS8uZXhlYyhhKTtpZihiJiZiWzFdKXJldHVybiBiWzFdO2I9IiI7dmFyIGM9L01TSUUgKyhbXGRcLl0rKS8uZXhlYyhhKTtpZihjJiZjWzFdKWlmKGE9L1RyaWRlbnRcLyhcZC5cZCkvLmV4ZWMoYSksY1sxXT09IjcuMCIpaWYoYSYmYVsxXSlzd2l0Y2goYVsxXSl7Y2FzZSAiNC4wIjpiPSI4LjAiO2JyZWFrO2Nhc2UgIjUuMCI6Yj0iOS4wIjticmVhaztjYXNlICI2LjAiOmI9IjEwLjAiO2JyZWFrO2Nhc2UgIjcuMCI6Yj0iMTEuMCJ9ZWxzZSBiPSI3LjAiO2Vsc2UgYj1jWzFdO3JldHVybiBifTsKVGE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5DYSgpO2lmKGE9PT0iSW50ZXJuZXQgRXhwbG9yZXIiKXJldHVybiBfLkphKCk/Xy5TYShiKToiIjtiPV8uR2EoYik7dmFyIGM9Xy5SYShiKTtzd2l0Y2goYSl7Y2FzZSAiT3BlcmEiOmlmKF8uSWEoKSlyZXR1cm4gYyhbIlZlcnNpb24iLCJPcGVyYSJdKTtpZihNYSgpKXJldHVybiBjKFsiT1BSIl0pO2JyZWFrO2Nhc2UgIk1pY3Jvc29mdCBFZGdlIjppZihfLkthKCkpcmV0dXJuIGMoWyJFZGdlIl0pO2lmKF8uTGEoKSlyZXR1cm4gYyhbIkVkZyJdKTticmVhaztjYXNlICJDaHJvbWl1bSI6aWYoXy5PYSgpKXJldHVybiBjKFsiQ2hyb21lIiwiQ3JpT1MiLCJIZWFkbGVzc0Nocm9tZSJdKX1yZXR1cm4gYT09PSJGaXJlZm94IiYmXy5OYSgpfHxhPT09IlNhZmFyaSImJl8uUGEoKXx8YT09PSJBbmRyb2lkIEJyb3dzZXIiJiZRYSgpfHxhPT09IlNpbGsiJiZfLnooIlNpbGsiKT8oYT1iWzJdKSYmYVsxXXx8IiI6IiJ9OwpfLlVhPWZ1bmN0aW9uKGEpe2lmKF8uSGEoKSYmYSE9PSJTaWxrIil7dmFyIGI9Xy5FYS5icmFuZHMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5icmFuZD09PWF9KTtpZighYnx8IWIudmVyc2lvbilyZXR1cm4gTmFOO2I9Yi52ZXJzaW9uLnNwbGl0KCIuIil9ZWxzZXtiPVRhKGEpO2lmKGI9PT0iIilyZXR1cm4gTmFOO2I9Yi5zcGxpdCgiLiIpfXJldHVybiBiLmxlbmd0aD09PTA/TmFOOk51bWJlcihiWzBdKX07Xy5WYT1mdW5jdGlvbigpe3JldHVybiBEYT8hIV8uRWEmJiEhXy5FYS5wbGF0Zm9ybTohMX07Xy5XYT1mdW5jdGlvbigpe3JldHVybiBfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJBbmRyb2lkIjpfLnooIkFuZHJvaWQiKX07WGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy56KCJpUGhvbmUiKSYmIV8ueigiaVBvZCIpJiYhXy56KCJpUGFkIil9O18uWWE9ZnVuY3Rpb24oKXtyZXR1cm4gWGEoKXx8Xy56KCJpUGFkIil8fF8ueigiaVBvZCIpfTsKXy5aYT1mdW5jdGlvbigpe3JldHVybiBfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJtYWNPUyI6Xy56KCJNYWNpbnRvc2giKX07Xy4kYT1mdW5jdGlvbigpe3JldHVybiBfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJDaHJvbWUgT1MiOl8ueigiQ3JPUyIpfTtfLmJiPWZ1bmN0aW9uKGEsYil7Yj0oMCxfLmFiKShhLGIpO3ZhciBjOyhjPWI+PTApJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoYSxiLDEpO3JldHVybiBjfTtfLmNiPWZ1bmN0aW9uKGEpe3ZhciBiPWEubGVuZ3RoO2lmKGI+MCl7Zm9yKHZhciBjPUFycmF5KGIpLGQ9MDtkPGI7ZCsrKWNbZF09YVtkXTtyZXR1cm4gY31yZXR1cm5bXX07Cl8uZmI9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj0wKTtkYigpO2I9ZWJbYl07Zm9yKHZhciBjPUFycmF5KE1hdGguZmxvb3IoYS5sZW5ndGgvMykpLGQ9Yls2NF18fCIiLGU9MCxmPTA7ZTxhLmxlbmd0aC0yO2UrPTMpe3ZhciBnPWFbZV0saD1hW2UrMV0saz1hW2UrMl0sbT1iW2c+PjJdO2c9YlsoZyYzKTw8NHxoPj40XTtoPWJbKGgmMTUpPDwyfGs+PjZdO2s9YltrJjYzXTtjW2YrK109bStnK2gra31tPTA7az1kO3N3aXRjaChhLmxlbmd0aC1lKXtjYXNlIDI6bT1hW2UrMV0saz1iWyhtJjE1KTw8Ml18fGQ7Y2FzZSAxOmE9YVtlXSxjW2ZdPWJbYT4+Ml0rYlsoYSYzKTw8NHxtPj40XStrK2R9cmV0dXJuIGMuam9pbigiIil9OwpoYj1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aCxjPWIqMy80O2MlMz9jPU1hdGguZmxvb3IoYyk6Ij0uIi5pbmRleE9mKGFbYi0xXSkhPS0xJiYoYz0iPS4iLmluZGV4T2YoYVtiLTJdKSE9LTE/Yy0yOmMtMSk7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoYyksZT0wO18uZ2IoYSxmdW5jdGlvbihmKXtkW2UrK109Zn0pO3JldHVybiBlIT09Yz9kLnN1YmFycmF5KDAsZSk6ZH07Cl8uZ2I9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGspe2Zvcig7ZDxhLmxlbmd0aDspe3ZhciBtPWEuY2hhckF0KGQrKyksbj1pYlttXTtpZihuIT1udWxsKXJldHVybiBuO2lmKCEvXltcc1x4YTBdKiQvLnRlc3QobSkpdGhyb3cgRXJyb3IoInVgIittKTt9cmV0dXJuIGt9ZGIoKTtmb3IodmFyIGQ9MDs7KXt2YXIgZT1jKC0xKSxmPWMoMCksZz1jKDY0KSxoPWMoNjQpO2lmKGg9PT02NCYmZT09PS0xKWJyZWFrO2IoZTw8MnxmPj40KTtnIT02NCYmKGIoZjw8NCYyNDB8Zz4+MiksaCE9NjQmJmIoZzw8NiYxOTJ8aCkpfX07CmRiPWZ1bmN0aW9uKCl7aWYoIWliKXtpYj17fTtmb3IodmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksYj1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxjPTA7Yzw1O2MrKyl7dmFyIGQ9YS5jb25jYXQoYltjXS5zcGxpdCgiIikpO2ViW2NdPWQ7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPWRbZV07aWJbZl09PT12b2lkIDAmJihpYltmXT1lKX19fX07bGI9ZnVuY3Rpb24oYSl7cmV0dXJuIGpiW2FdfHwiIn07Xy5vYj1mdW5jdGlvbihhKXtpZighbWIpcmV0dXJuIGhiKGEpO2E9bmIudGVzdChhKT9hLnJlcGxhY2UobmIsbGIpOmE7YT1hdG9iKGEpO2Zvcih2YXIgYj1uZXcgVWludDhBcnJheShhLmxlbmd0aCksYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YS5jaGFyQ29kZUF0KGMpO3JldHVybiBifTsKXy5wYj1mdW5jdGlvbihhLGIpe2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyfHwoYS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODI9e30pO2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyLnNldmVyaXR5PWJ9O18ucmI9ZnVuY3Rpb24oYSxiKXtpZihhIT1udWxsKXt2YXIgYzt2YXIgZD0oYz1xYikhPW51bGw/YzpxYj17fTtjPWRbYV18fDA7Yz49Ynx8KGRbYV09YysxLGE9RXJyb3IoKSxfLnBiKGEsImluY2lkZW50IiksXy5CYShhKSl9fTtfLnNiPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woKT09PSJzeW1ib2wiPyhjPT09dm9pZCAwPzA6YykmJlN5bWJvbC5mb3ImJmE/U3ltYm9sLmZvcihhKTphIT1udWxsP1N5bWJvbChhKTpTeW1ib2woKTpifTtfLndiPWZ1bmN0aW9uKGEsYil7Xy50Ynx8Xy5BIGluIGF8fHViKGEsdmIpO2FbXy5BXXw9Yn07Cl8ueGI9ZnVuY3Rpb24oYSxiKXtfLnRifHxfLkEgaW4gYXx8dWIoYSx2Yik7YVtfLkFdPWJ9O18uemI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PXZvaWQgMD9hLmchPT15YiYmISEoMiYoYS5BW18uQV18MCkpOiEhKDImYikmJmEuZyE9PXlifTtfLkFiPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iJjEyOD8wOi0xLGU9YS5sZW5ndGgsZjtpZihmPSEhZSlmPWFbZS0xXSxmPWYhPW51bGwmJnR5cGVvZiBmPT09Im9iamVjdCImJmYuY29uc3RydWN0b3I9PT1PYmplY3Q7dmFyIGc9ZSsoZj8tMTowKTtmb3IoYj1iJjEyOD8xOjA7YjxnO2IrKyljKGItZCxhW2JdKTtpZihmKXthPWFbZS0xXTtmb3IodmFyIGggaW4gYSkhaXNOYU4oaCkmJmMoK2gsYVtoXSl9fTtCYj1mdW5jdGlvbihhKXthLlplPSEwO3JldHVybiBhfTsKXy5HYj1mdW5jdGlvbihhKXt2YXIgYj1hO2lmKENiKGIpKXtpZighL15ccyooPzotP1sxLTldXGQqfDApP1xzKiQvLnRlc3QoYikpdGhyb3cgRXJyb3IoU3RyaW5nKGIpKTt9ZWxzZSBpZihEYihiKSYmIU51bWJlci5pc1NhZmVJbnRlZ2VyKGIpKXRocm93IEVycm9yKFN0cmluZyhiKSk7cmV0dXJuIEViP0JpZ0ludChhKTphPUZiKGEpP2E/IjEiOiIwIjpDYihhKT9hLnRyaW0oKXx8IjAiOlN0cmluZyhhKX07SGI9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aD5iLmxlbmd0aClyZXR1cm4hMTtpZihhLmxlbmd0aDxiLmxlbmd0aHx8YT09PWIpcmV0dXJuITA7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iW2NdO2lmKGQ+ZSlyZXR1cm4hMTtpZihkPGUpcmV0dXJuITB9fTtfLkliPWZ1bmN0aW9uKGEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKX07Cl8uSmI9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PT0iYm9vbGVhbiIpcmV0dXJuIGE7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4hIWF9O18uTGI9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/YTooMCxfLktiKShhKT9hfDA6dm9pZCAwfTtfLk1iPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIGE7aWYodHlwZW9mIGE9PT0ic3RyaW5nIiYmYSlhPSthO2Vsc2UgaWYodHlwZW9mIGEhPT0ibnVtYmVyIilyZXR1cm47cmV0dXJuKDAsXy5LYikoYSk/YXwwOnZvaWQgMH07Xy5OYj1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbHx8dHlwZW9mIGE9PT0ic3RyaW5nIj9hOnZvaWQgMH07Xy5RYj1mdW5jdGlvbihhLGIsYyl7aWYoYSE9bnVsbCYmYVtPYl09PT1QYilyZXR1cm4gYTtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgZD1hW18uQV18MDtjPWR8YyYzMnxjJjI7YyE9PWQmJl8ueGIoYSxjKTtyZXR1cm4gbmV3IGIoYSl9fTtSYj1mdW5jdGlvbihhKXtyZXR1cm4gYX07Cl8uVWI9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5TYihfLlRiKTtyZXR1cm4gYj9hW2JdOnZvaWQgMH07V2I9ZnVuY3Rpb24oYSxiKXtiPDEwMHx8Xy5yYihWYiwxKX07ClpiPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWQhPT12b2lkIDA7ZD0hIWQ7dmFyIGY9Xy5TYihfLlRiKSxnOyFlJiZfLnRiJiZmJiYoZz1hW2ZdKSYmZy5zYihXYik7Zj1bXTt2YXIgaD1hLmxlbmd0aDtnPTQyOTQ5NjcyOTU7dmFyIGs9ITEsbT0hIShiJjY0KSxuPW0/YiYxMjg/MDotMTp2b2lkIDA7aWYoIShiJjEpKXt2YXIgcT1oJiZhW2gtMV07cSE9bnVsbCYmdHlwZW9mIHE9PT0ib2JqZWN0IiYmcS5jb25zdHJ1Y3Rvcj09PU9iamVjdD8oaC0tLGc9aCk6cT12b2lkIDA7aWYobSYmIShiJjEyOCkmJiFlKXtrPSEwO3ZhciBwO2c9KChwPVhiKSE9bnVsbD9wOlJiKShnLW4sbixhLHEsdm9pZCAwKStufX1iPXZvaWQgMDtmb3IocD0wO3A8aDtwKyspe3ZhciByPWFbcF07aWYociE9bnVsbCYmKHI9YyhyLGQpKSE9bnVsbClpZihtJiZwPj1nKXt2YXIgeD1wLW4seT12b2lkIDA7KCh5PWIpIT1udWxsP3k6Yj17fSlbeF09cn1lbHNlIGZbcF09cn1pZihxKWZvcih2YXIgQyBpbiBxKWg9cVtDXSwKaCE9bnVsbCYmKGg9YyhoLGQpKSE9bnVsbCYmKHA9K0Mscj12b2lkIDAsbSYmIU51bWJlci5pc05hTihwKSYmKHI9cCtuKTxnP2Zbcl09aDoocD12b2lkIDAsKChwPWIpIT1udWxsP3A6Yj17fSlbQ109aCkpO2ImJihrP2YucHVzaChiKTpmW2ddPWIpO2UmJl8uU2IoXy5UYikmJihhPV8uVWIoYSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgXy5ZYiYmYSBpbnN0YW5jZW9mIF8uWWImJihmW18uVGJdPWEuZygpKTtyZXR1cm4gZn07CmFjPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGEpP2E6IiIrYTtjYXNlICJiaWdpbnQiOnJldHVybigwLF8uJGIpKGEpP051bWJlcihhKToiIithO2Nhc2UgImJvb2xlYW4iOnJldHVybiBhPzE6MDtjYXNlICJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBiPWFbXy5BXXwwO3JldHVybiBhLmxlbmd0aD09PTAmJmImMT92b2lkIDA6WmIoYSxiLGFjKX1pZihhIT1udWxsJiZhW09iXT09PVBiKXJldHVybiBfLmJjKGEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBfLmNjJiZhIGluc3RhbmNlb2YgXy5jYyl7Yj1hLmc7aWYoYj09bnVsbClhPSIiO2Vsc2UgaWYodHlwZW9mIGI9PT0ic3RyaW5nIilhPWI7ZWxzZXtpZihtYil7Zm9yKHZhciBjPSIiLGQ9MCxlPWIubGVuZ3RoLTEwMjQwO2Q8ZTspYys9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGIuc3ViYXJyYXkoZCxkKz0xMDI0MCkpO2MrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwKZD9iLnN1YmFycmF5KGQpOmIpO2I9YnRvYShjKX1lbHNlIGI9Xy5mYihiKTthPWEuZz1ifXJldHVybiBhfXJldHVybn1yZXR1cm4gYX07Xy5iYz1mdW5jdGlvbihhKXthPWEuQTtyZXR1cm4gWmIoYSxhW18uQV18MCxhYyl9O2ZjPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6cmV0dXJuIGRjfHwoZGM9WzAsdm9pZCAwLCEwXSk7Y2FzZSAibnVtYmVyIjpyZXR1cm4gYT4wP3ZvaWQgMDphPT09MD9lY3x8KGVjPVswLHZvaWQgMF0pOlstYSx2b2lkIDBdO2Nhc2UgInN0cmluZyI6cmV0dXJuWzAsYV07Y2FzZSAib2JqZWN0IjpyZXR1cm4gYX19O18uaWM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gaGMoYSxiWzBdLGJbMV0pfTtfLkI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBoYyhhLGIsYywyMDQ4KX07CmhjPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8wOmQ7aWYoYT09bnVsbCl7dmFyIGU9MzI7Yz8oYT1bY10sZXw9MTI4KTphPVtdO2ImJihlPWUmLTE2NzYwODMzfChiJjEwMjMpPDwxNCl9ZWxzZXtpZighQXJyYXkuaXNBcnJheShhKSl0aHJvdyBFcnJvcigieSIpO2U9YVtfLkFdfDA7aWYoamMmJjEmZSl0aHJvdyBFcnJvcigieiIpOzIwNDgmZSYmISgyJmUpJiZrYygpO2lmKGUmMjU2KXRocm93IEVycm9yKCJBIik7aWYoZSY2NClyZXR1cm4oZXxkKSE9PWUmJl8ueGIoYSxlfGQpLGE7aWYoYyYmKGV8PTEyOCxjIT09YVswXSkpdGhyb3cgRXJyb3IoIkIiKTthOntjPWE7ZXw9NjQ7dmFyIGY9Yy5sZW5ndGg7aWYoZil7dmFyIGc9Zi0xLGg9Y1tnXTtpZihoIT1udWxsJiZ0eXBlb2YgaD09PSJvYmplY3QiJiZoLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtiPWUmMTI4PzA6LTE7Zy09YjtpZihnPj0xMDI0KXRocm93IEVycm9yKCJEIik7Zm9yKHZhciBrIGluIGgpZj0rayxmPGcmJgooY1tmK2JdPWhba10sZGVsZXRlIGhba10pO2U9ZSYtMTY3NjA4MzN8KGcmMTAyMyk8PDE0O2JyZWFrIGF9fWlmKGIpe2s9TWF0aC5tYXgoYixmLShlJjEyOD8wOi0xKSk7aWYoaz4xMDI0KXRocm93IEVycm9yKCJFIik7ZT1lJi0xNjc2MDgzM3woayYxMDIzKTw8MTR9fX1fLnhiKGEsZXw2NHxkKTtyZXR1cm4gYX07a2M9ZnVuY3Rpb24oKXtpZihqYyl0aHJvdyBFcnJvcigiQyIpO18ucmIobGMsNSl9OwpwYz1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGM9YVtfLkFdfDA7YS5sZW5ndGg9PT0wJiZjJjE/YT12b2lkIDA6YyYyfHwoIWJ8fDQwOTYmY3x8MTYmYz9hPV8ubWMoYSxjLCExLGImJiEoYyYxNikpOihfLndiKGEsMzQpLGMmNCYmT2JqZWN0LmZyZWV6ZShhKSkpO3JldHVybiBhfWlmKGEhPW51bGwmJmFbT2JdPT09UGIpcmV0dXJuIGI9YS5BLGM9YltfLkFdfDAsXy56YihhLGMpP2E6Xy5uYyhhLGIsYyk/Xy5vYyhhLGIpOl8ubWMoYixjKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy5jYyYmYSBpbnN0YW5jZW9mIF8uY2MpcmV0dXJuIGF9O18ub2M9ZnVuY3Rpb24oYSxiLGMpe2E9bmV3IGEuY29uc3RydWN0b3IoYik7YyYmKGEuZz15Yik7YS5pPXliO3JldHVybiBhfTsKXy5tYz1mdW5jdGlvbihhLGIsYyxkKXtkIT1udWxsfHwoZD0hISgzNCZiKSk7YT1aYihhLGIscGMsZCk7ZD0zMjtjJiYoZHw9Mik7Yj1iJjE2NzY5MjE3fGQ7Xy54YihhLGIpO3JldHVybiBhfTtfLnFjPWZ1bmN0aW9uKGEpe3ZhciBiPWEuQSxjPWJbXy5BXXwwO3JldHVybiBfLnpiKGEsYyk/Xy5uYyhhLGIsYyk/Xy5vYyhhLGIsITApOm5ldyBhLmNvbnN0cnVjdG9yKF8ubWMoYixjLCExKSk6YX07Xy5yYz1mdW5jdGlvbihhKXtpZihhLmchPT15YilyZXR1cm4hMTt2YXIgYj1hLkE7Yj1fLm1jKGIsYltfLkFdfDApO18ud2IoYiwyMDQ4KTthLkE9YjthLmc9dm9pZCAwO2EuaT12b2lkIDA7cmV0dXJuITB9O18uc2M9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hW18uQV18MCk7YiYzMiYmIShiJjQwOTYpJiZfLnhiKGEsYnw0MDk2KX07Xy5uYz1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGMmMj8hMDpjJjMyJiYhKGMmNDA5Nik/KF8ueGIoYixjfDIpLGEuZz15YiwhMCk6ITF9OwpfLnRjPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YysoZT8wOi0xKSxnPWEubGVuZ3RoLTE7aWYoZz49MSsoZT8wOi0xKSYmZj49Zyl7dmFyIGg9YVtnXTtpZihoIT1udWxsJiZ0eXBlb2YgaD09PSJvYmplY3QiJiZoLmNvbnN0cnVjdG9yPT09T2JqZWN0KXJldHVybiBoW2NdPWQsYn1pZihmPD1nKXJldHVybiBhW2ZdPWQsYjtpZihkIT09dm9pZCAwKXt2YXIgaztnPSgoaz1iKSE9bnVsbD9rOmI9YVtfLkFdfDApPj4xNCYxMDIzfHw1MzY4NzA5MTI7Yz49Zz9kIT1udWxsJiYoZj17fSxhW2crKGU/MDotMSldPShmW2NdPWQsZikpOmFbZl09ZH1yZXR1cm4gYn07Xy52Yz1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSExO2Q9Xy51YyhhLGQsZSxmdW5jdGlvbihnKXt2YXIgaD1fLlFiKGcsYyxiKTtmPWghPT1nJiZoIT1udWxsO3JldHVybiBofSk7aWYoZCE9bnVsbClyZXR1cm4gZiYmIV8uemIoZCkmJl8uc2MoYSxiKSxkfTsKd2M9ZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fTtPYmplY3Quc2V0UHJvdG90eXBlT2YoYSxhLnByb3RvdHlwZSk7cmV0dXJuIGF9O0FjPWZ1bmN0aW9uKGEpe3ZhciBiPXhjO3ZhciBjPWM9PT12b2lkIDA/Xy55YzpjO3JldHVybiBuZXcgXy56YyhhLGIsYyl9O3hjPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1fLkJjKGIsZCk7YiE9bnVsbCYmKGM9Xy5DYyhhLGMpLGUoYixhKSxfLkRjKGEsYykpfTsKXy5IYz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1kW2FdO2lmKGUpcmV0dXJuIGU7ZT17fTtlLkhkPWQ7ZS5ZYT1mYyhkWzBdKTt2YXIgZj1kWzFdLGc9MTtmJiZmLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYoZS5PYj1mLGY9ZFsrK2ddLHR5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGUuWmM9ITAsXy5FYyE9bnVsbHx8KF8uRWM9ZiksXy5GYyE9bnVsbHx8KF8uRmM9ZFtnKzFdKSxmPWRbZys9Ml0pKTtmb3IodmFyIGg9e307ZiYmQXJyYXkuaXNBcnJheShmKSYmZi5sZW5ndGgmJnR5cGVvZiBmWzBdPT09Im51bWJlciImJmZbMF0+MDspe2Zvcih2YXIgaz0wO2s8Zi5sZW5ndGg7aysrKWhbZltrXV09ZjtmPWRbKytnXX1mb3Ioaz0xO2YhPT12b2lkIDA7KXt0eXBlb2YgZj09PSJudW1iZXIiJiYoays9ZixmPWRbKytnXSk7dmFyIG09dm9pZCAwO2lmKGYgaW5zdGFuY2VvZiBfLnpjKXZhciBuPWY7ZWxzZSBuPUdjLGctLTtmPXZvaWQgMDtpZigoZj1uKT09bnVsbD8wOmYuaSl7Zj1kWysrZ107Cm09ZDt2YXIgcT1nO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGY9ZigpLG1bcV09Zik7bT1mfWY9ZFsrK2ddO3E9aysxO3R5cGVvZiBmPT09Im51bWJlciImJmY8MCYmKHEtPWYsZj1kWysrZ10pO2Zvcig7azxxO2srKyl7dmFyIHA9aFtrXTttP2MoZSxrLG4sbSxwKTpiKGUsayxuLHApfX1yZXR1cm4gZFthXT1lfTtfLkpjPWZ1bmN0aW9uKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP2FbMF1pbnN0YW5jZW9mIF8uemM/YTpbSWMsYV06W2Esdm9pZCAwXX07Xy5CYz1mdW5jdGlvbihhLGIpe2lmKGEgaW5zdGFuY2VvZiBfLkQpcmV0dXJuIGEuQTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBfLmljKGEsYil9O18uS2M9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgXy56YyhhLGIsYyl9O18uTWM9ZnVuY3Rpb24oYSxiLGMpe18udGMoYSxhW18uQV18MCxiLGMsKGFbXy5BXXwwKSYxMjg/Xy5MYzp2b2lkIDApfTsKUGM9ZnVuY3Rpb24oYSl7YT1OYy5nZXQoYSk7dmFyIGI9TmMuZ2V0KF8uT2MpO3JldHVybiBhPT09dm9pZCAwfHxiPT09dm9pZCAwPyExOmE+PWJ9O1FjPWZ1bmN0aW9uKGEpe3JldHVybiBhPyJbR1NJX0xPR0dFUi0iK2ErIl06ICI6IltHU0lfTE9HR0VSXTogIn07Xy5FPWZ1bmN0aW9uKGEsYil7dHJ5e1BjKCJkZWJ1ZyIpJiZ3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coUWMoYikrYSl9Y2F0Y2goYyl7fX07Xy5GPWZ1bmN0aW9uKGEsYil7dHJ5e1BjKCJpbmZvIikmJndpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5pbmZvJiZ3aW5kb3cuY29uc29sZS5pbmZvKFFjKGIpK2EpfWNhdGNoKGMpe319O18uRz1mdW5jdGlvbihhLGIpe3RyeXtQYygid2FybiIpJiZ3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUud2FybiYmd2luZG93LmNvbnNvbGUud2FybihRYyhiKSthKX1jYXRjaChjKXt9fTsKXy5IPWZ1bmN0aW9uKGEsYil7dHJ5e1BjKCJlcnJvciIpJiZ3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUuZXJyb3ImJndpbmRvdy5jb25zb2xlLmVycm9yKFFjKGIpK2EpfWNhdGNoKGMpe319O18uU2M9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIF8uUmMpcmV0dXJuIGEuZzt0aHJvdyBFcnJvcigiRyIpO307VWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLlRjKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfTtfLldjPWZ1bmN0aW9uKGEpe2EgaW5zdGFuY2VvZiBfLlJjP2E9Xy5TYyhhKTphPVZjLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGF9O18uWGM9ZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93LmxvY2F0aW9uO2E9Xy5XYyhhKTthIT09dm9pZCAwJiZiLmFzc2lnbihhKX07Xy5ZYz1mdW5jdGlvbihhKXt0aGlzLmc9YXx8e2Nvb2tpZToiIn19OwpfLkk9ZnVuY3Rpb24oYSl7cmV0dXJuISFfLlpjLmdbYV18fF8uJGMuaW5jbHVkZXMoYSkmJl8uYWQuZ2V0KCJnZV8iK2EpPT09IjEifTtiZD1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkIGluIGEpYi5jYWxsKGMsYVtkXSxkLGEpfTtkZD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkLGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXtkPWFyZ3VtZW50c1tlXTtmb3IoYyBpbiBkKWFbY109ZFtjXTtmb3IodmFyIGY9MDtmPGNkLmxlbmd0aDtmKyspYz1jZFtmXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxjKSYmKGFbY109ZFtjXSl9fTtfLmZkPWZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2goXy5lZCk7YT1iWzFdO3ZhciBjPWJbM107Yj1iWzRdO3ZhciBkPSIiO2EmJihkKz1hKyI6Iik7YyYmKGQ9ZCsiLy8iK2MsYiYmKGQrPSI6IitiKSk7cmV0dXJuIGR9OwpnZD1mdW5jdGlvbihhLGIpe2lmKGEpe2E9YS5zcGxpdCgiJiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLmluZGV4T2YoIj0iKSxlPW51bGw7aWYoZD49MCl7dmFyIGY9YVtjXS5zdWJzdHJpbmcoMCxkKTtlPWFbY10uc3Vic3RyaW5nKGQrMSl9ZWxzZSBmPWFbY107YihmLGU/ZGVjb2RlVVJJQ29tcG9uZW50KGUucmVwbGFjZSgvXCsvZywiICIpKToiIil9fX07Cl8uaGQ9ZnVuY3Rpb24oYSl7dGhpcy5nPXRoaXMudj10aGlzLmg9IiI7dGhpcy51PW51bGw7dGhpcy5vPXRoaXMuaT0iIjt0aGlzLmw9ITE7dmFyIGI7YSBpbnN0YW5jZW9mIF8uaGQ/KHRoaXMubD1hLmwsXy5pZCh0aGlzLGEuaCksdGhpcy52PWEuZ2V0VXNlckluZm8oKSx0aGlzLmc9YS5nLF8uamQodGhpcyxhLnUpLHRoaXMuaT1hLmksXy5rZCh0aGlzLGxkKGEuaikpLHRoaXMubz1hLm8pOmEmJihiPVN0cmluZyhhKS5tYXRjaChfLmVkKSk/KHRoaXMubD0hMSxfLmlkKHRoaXMsYlsxXXx8IiIsITApLHRoaXMudj1tZChiWzJdfHwiIiksdGhpcy5nPW1kKGJbM118fCIiLCEwKSxfLmpkKHRoaXMsYls0XSksdGhpcy5pPW1kKGJbNV18fCIiLCEwKSxfLmtkKHRoaXMsYls2XXx8IiIsITApLHRoaXMubz1tZChiWzddfHwiIikpOih0aGlzLmw9ITEsdGhpcy5qPW5ldyBfLm5kKG51bGwsdGhpcy5sKSl9O18ub2Q9ZnVuY3Rpb24oKXt0aGlzLnU9dGhpcy51O3RoaXMubz10aGlzLm99OwpxZD1mdW5jdGlvbihhLGIpe3BkLmNhbGwodGhpcyxhP2EudHlwZToiIik7dGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMuaD10aGlzLnRhcmdldD1udWxsO3RoaXMuYnV0dG9uPXRoaXMuc2NyZWVuWT10aGlzLnNjcmVlblg9dGhpcy5jbGllbnRZPXRoaXMuY2xpZW50WD10aGlzLmw9dGhpcy5qPTA7dGhpcy5rZXk9IiI7dGhpcy5jaGFyQ29kZT10aGlzLmtleUNvZGU9MDt0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmFsdEtleT10aGlzLmN0cmxLZXk9ITE7dGhpcy5zdGF0ZT1udWxsO3RoaXMucG9pbnRlcklkPTA7dGhpcy5wb2ludGVyVHlwZT0iIjt0aGlzLmc9bnVsbDthJiZ0aGlzLmluaXQoYSxiKX07c2Q9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmxpc3RlbmVyPWE7dGhpcy5wcm94eT1udWxsO3RoaXMuc3JjPWI7dGhpcy50eXBlPWM7dGhpcy5jYXB0dXJlPSEhZDt0aGlzLnlhPWU7dGhpcy5rZXk9KytyZDt0aGlzLmFiPXRoaXMucGI9ITF9Owp0ZD1mdW5jdGlvbihhKXt0aGlzLnNyYz1hO3RoaXMuZz17fTt0aGlzLmg9MH07Xy51ZD1mdW5jdGlvbigpe18ub2QuY2FsbCh0aGlzKTt0aGlzLmlhPW5ldyB0ZCh0aGlzKTt0aGlzLkM9dGhpczt0aGlzLmw9bnVsbH07Xy53ZD1mdW5jdGlvbigpe3ZhciBhPW5ldyBVaW50MzJBcnJheSgyKTsod2luZG93LmNyeXB0b3x8Xy52ZC5tc0NyeXB0bykuZ2V0UmFuZG9tVmFsdWVzKGEpO3JldHVybiBhWzBdLnRvU3RyaW5nKDE2KSthWzFdLnRvU3RyaW5nKDE2KX07Xy55ZD1mdW5jdGlvbigpe3JldHVybiBEYSYmXy5FYT9fLkVhLm1vYmlsZTohXy54ZCgpJiYoXy56KCJpUG9kIil8fF8ueigiaVBob25lIil8fF8ueigiQW5kcm9pZCIpfHxfLnooIklFTW9iaWxlIikpfTsKXy54ZD1mdW5jdGlvbigpe3JldHVybiBEYSYmXy5FYT8hXy5FYS5tb2JpbGUmJihfLnooImlQYWQiKXx8Xy56KCJBbmRyb2lkIil8fF8ueigiU2lsayIpKTpfLnooImlQYWQiKXx8Xy56KCJBbmRyb2lkIikmJiFfLnooIk1vYmlsZSIpfHxfLnooIlNpbGsiKX07Xy56ZD1mdW5jdGlvbigpe3JldHVybiBfLkkoImRpc2FibGVfZmVkY21fb25fc2Ftc3VuZ19icm93c2VycyIpJiZuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCJTYW1zdW5nQnJvd3NlciIpPyExOl8uT2EoKSYmIShfLkxhKCl8fG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoIkVkZ0EiKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRWRnaU9TIikpJiYhTWEoKX07Xy5BZD1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdztyZXR1cm4iSWRlbnRpdHlDcmVkZW50aWFsImluIHdpbmRvd3x8IkZlZGVyYXRlZENyZWRlbnRpYWwiaW4gd2luZG93JiZhLkZlZGVyYXRlZENyZWRlbnRpYWwucHJvdG90eXBlLmxvZ2lufTsKXy5CZD1mdW5jdGlvbihhKXtzd2l0Y2goYS51eF9tb2RlKXtjYXNlICJyZWRpcmVjdCI6cmV0dXJuInJlZGlyZWN0IjtkZWZhdWx0OnJldHVybiJwb3B1cCJ9fTsKXy5EZD1mdW5jdGlvbihhLGIpe2lmKCFiLmNsaWVudF9pZCl0aHJvdyBuZXcgXy5DZCgiTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgY2xpZW50X2lkLiIsIm1pc3NpbmdfcmVxdWlyZWRfcGFyYW1ldGVyIik7aWYoIWIuc2NvcGUpdGhyb3cgbmV3IF8uQ2QoIk1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIHNjb3BlLiIsIm1pc3NpbmdfcmVxdWlyZWRfcGFyYW1ldGVyIik7dmFyIGM9e2NsaWVudF9pZDpiLmNsaWVudF9pZCxzY29wZTpiLnNjb3BlLGxvZ2luX2hpbnQ6Yi5sb2dpbl9oaW50fHxiLmhpbnQsc3RhdGU6Yi5zdGF0ZSxoZDpiLmhkfHxiLmhvc3RlZF9kb21haW4saW5jbHVkZV9ncmFudGVkX3Njb3BlczpiLmluY2x1ZGVfZ3JhbnRlZF9zY29wZXMsZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ6Yi5lbmFibGVfZ3JhbnVsYXJfY29uc2VudD09PXZvaWQgMD9iLmVuYWJsZV9zZXJpYWxfY29uc2VudDpiLmVuYWJsZV9ncmFudWxhcl9jb25zZW50LHRyaWdnZXJfb25lcGljazpiLnRyaWdnZXJfb25lcGljaywKYWxsb3dfbXVsdGlwbGU6Yi5hbGxvd19tdWx0aXBsZSxhbGxvd19mb2xkZXJfc2VsZWN0aW9uOmIuYWxsb3dfZm9sZGVyX3NlbGVjdGlvbixmaWxlX2lkczpiLmZpbGVfaWRzLG1pbWV0eXBlczpiLm1pbWV0eXBlcyxpbmNsdWRlX2lkX3Rva2VuOmIuaW5jbHVkZV9pZF90b2tlbixub25jZTpiLm5vbmNlfTtpZihjLmluY2x1ZGVfaWRfdG9rZW4pe2lmKCFjLm5vbmNlKXRocm93IG5ldyBfLkNkKCJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlciBub25jZS4iLCJtaXNzaW5nX3JlcXVpcmVkX3BhcmFtZXRlciIpO2Zvcih2YXIgZD1jLnNjb3BlLnNwbGl0KCIgIiksZT1fLnUoWyJvcGVuaWQiLCJlbWFpbCIsInByb2ZpbGUiXSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZj1mLnZhbHVlLGQuaW5jbHVkZXMoZil8fGQucHVzaChmKTtjLnNjb3BlPWQuam9pbigiICIpfWE9PT0iY29kZSI/KGMuc2VsZWN0X2FjY291bnQ9Yi5zZWxlY3RfYWNjb3VudCxjLnV4X21vZGU9Yi51eF9tb2RlLApiLmNsYWltcyE9PXZvaWQgMCYmKGMuY2xhaW1zPWIuY2xhaW1zKSxjLnV4X21vZGU9PT0icmVkaXJlY3QiJiYoYy5yZWRpcmVjdF91cmk9Yi5yZWRpcmVjdF91cml8fFtsb2NhdGlvbi5wcm90b2NvbCwiLy8iLGxvY2F0aW9uLmhvc3QsbG9jYXRpb24ucGF0aG5hbWVdLmpvaW4oIiIpKSk6YT09PSJ0b2tlbiImJihjLnByb21wdD1iLnByb21wdCk7cmV0dXJuIGN9O18uRWQ9ZnVuY3Rpb24oYSl7Xy5vZC5jYWxsKHRoaXMpO3RoaXMuaD1hO3RoaXMuZz17fX07Xy5HZD1mdW5jdGlvbihhLGIpe18udWQuY2FsbCh0aGlzKTt0aGlzLmo9YXx8MTt0aGlzLmk9Ynx8Xy53O3RoaXMudj0oMCxfLkZkKSh0aGlzLkgsdGhpcyk7dGhpcy5CPURhdGUubm93KCl9OwpfLkhkPWZ1bmN0aW9uKGEsYixjKXthPWE9PT12b2lkIDA/Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0Iik/NTkwOjUwMDphO2I9Yj09PXZvaWQgMD9fLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHQiKT84MzA6NTUwOmI7YT1NYXRoLm1pbihhLHNjcmVlbi53aWR0aC00MCk7Yj1NYXRoLm1pbihiLHNjcmVlbi5oZWlnaHQtNDApO3ZhciBkPXNjcmVlbi53aWR0aC8yLWEvMixlPXNjcmVlbi5oZWlnaHQvMi1iLzI7YyE9PXZvaWQgMCYmYz49ZCYmYzw9ZCthJiYoZD1jLWQ8ZCthLWM/Yys4OmMtYS04KTtyZXR1cm5bInRvb2xiYXI9bm8sbG9jYXRpb249bm8sZGlyZWN0b3JpZXM9bm8sc3RhdHVzPW5vLG1lbnViYXI9bm8sc2Nyb2xsYmFycz1ubyxyZXNpemFibGU9bm8sY29weWhpc3Rvcnk9bm8iLCJ3aWR0aD0iK2EsImhlaWdodD0iK2IsInRvcD0iK2UsImxlZnQ9IitkXS5qb2luKCl9OwpfLkpkPWZ1bmN0aW9uKGEsYixjKXtiPWIudG9TdHJpbmcoKSsiXyIrSWQ7dmFyIGQ9d2luZG93LGU9Xy5XYyhhKTtjPWUhPT12b2lkIDA/ZC5vcGVuKGUsYixjKTpudWxsO2lmKCFjfHxjLmNsb3NlZHx8dHlwZW9mIGMuY2xvc2VkPT09InVuZGVmaW5lZCIpcmV0dXJuIF8uSCgiRmFpbGVkIHRvIG9wZW4gcG9wdXAgd2luZG93IG9uIHVybDogIithKyIuIE1heWJlIGJsb2NrZWQgYnkgdGhlIGJyb3dzZXI/IiksbnVsbDtjLmZvY3VzKCk7cmV0dXJuIGN9O0tkPWZ1bmN0aW9uKGEpe2lmKGEuQyl0aHJvdyBuZXcgVHlwZUVycm9yKCJmIik7YS5DPSEwfTtMZD1mdW5jdGlvbihhLGIpe2Euaj17TmI6YixZYzohMH07YS5nPWEuQnx8YS5vfTsKXy5KPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9KDAsXy5hYSkoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYoXy5qYSkoMCxfLmphKShhLGIpO2Vsc2UgZm9yKHZhciBjIGluIGIpaWYoYyE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EudWE9Yi5wcm90b3R5cGV9O18uTWQ9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPV8udShhKTtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTthPWN9cmV0dXJuIGF9O05kPWZ1bmN0aW9uKGEpe3RoaXMuZz1uZXcgXy52O3RoaXMuaD1hfTsKUWQ9ZnVuY3Rpb24oYSxiKXtLZChhLmcpO3ZhciBjPWEuZy52O2lmKGMpcmV0dXJuIE9kKGEsInJldHVybiJpbiBjP2NbInJldHVybiJdOmZ1bmN0aW9uKGQpe3JldHVybnt2YWx1ZTpkLGRvbmU6ITB9fSxiLGEuZy5yZXR1cm4pO2EuZy5yZXR1cm4oYik7cmV0dXJuIFBkKGEpfTtPZD1mdW5jdGlvbihhLGIsYyxkKXt0cnl7dmFyIGU9Yi5jYWxsKGEuZy52LGMpO18ucGEoZSk7aWYoIWUuZG9uZSlyZXR1cm4gYS5nLkM9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLmcudj1udWxsLExkKGEuZyxnKSxQZChhKX1hLmcudj1udWxsO2QuY2FsbChhLmcsZik7cmV0dXJuIFBkKGEpfTsKUGQ9ZnVuY3Rpb24oYSl7Zm9yKDthLmcuZzspdHJ5e3ZhciBiPWEuaChhLmcpO2lmKGIpcmV0dXJuIGEuZy5DPSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGMpe2EuZy5pPXZvaWQgMCxMZChhLmcsYyl9YS5nLkM9ITE7aWYoYS5nLmope2I9YS5nLmo7YS5nLmo9bnVsbDtpZihiLlljKXRocm93IGIuTmI7cmV0dXJue3ZhbHVlOmIucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwpSZD1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7S2QoYS5nKTthLmcudj9iPU9kKGEsYS5nLnYubmV4dCxiLGEuZy5EKTooYS5nLkQoYiksYj1QZChhKSk7cmV0dXJuIGJ9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7S2QoYS5nKTthLmcudj9iPU9kKGEsYS5nLnZbInRocm93Il0sYixhLmcuRCk6KExkKGEuZyxiKSxiPVBkKGEpKTtyZXR1cm4gYn07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIFFkKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07U2Q9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gZihnKXtnLmRvbmU/ZChnLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZy52YWx1ZSkudGhlbihiLGMpLnRoZW4oZixlKX1mKGEubmV4dCgpKX0pfTtfLlRkPWZ1bmN0aW9uKGEpe3JldHVybiBTZChuZXcgUmQobmV3IE5kKGEpKSl9OwpfLlVkPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO3JldHVybiBiPT0ib2JqZWN0IiYmYSE9bnVsbHx8Yj09ImZ1bmN0aW9uIn07VmQ9ZnVuY3Rpb24oYSxiKXthOnt2YXIgYz1bIldJWl9nbG9iYWxfZGF0YSIsIm94TjNuYiJdO2Zvcih2YXIgZD1fLncsZT0wO2U8Yy5sZW5ndGg7ZSsrKWlmKGQ9ZFtjW2VdXSxkPT1udWxsKXtjPW51bGw7YnJlYWsgYX1jPWR9YT1jJiZjW2FdO3JldHVybiBhIT1udWxsP2E6Yn07V2Q9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLmNhbGwuYXBwbHkoYS5iaW5kLGFyZ3VtZW50cyl9OwpYZD1mdW5jdGlvbihhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZihhcmd1bWVudHMubGVuZ3RoPjIpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsZCk7cmV0dXJuIGEuYXBwbHkoYixlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX07Xy5GZD1mdW5jdGlvbihhLGIsYyl7Xy5GZD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQudG9TdHJpbmcoKS5pbmRleE9mKCJuYXRpdmUgY29kZSIpIT0tMT9XZDpYZDtyZXR1cm4gXy5GZC5hcHBseShudWxsLGFyZ3VtZW50cyl9OwpfLks9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGM9Xy53LGQ7YS5sZW5ndGgmJihkPWEuc2hpZnQoKSk7KWEubGVuZ3RofHxiPT09dm9pZCAwP2NbZF0mJmNbZF0hPT1PYmplY3QucHJvdG90eXBlW2RdP2M9Y1tkXTpjPWNbZF09e306Y1tkXT1ifTtfLlNiPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtfLllkPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLnVhPWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5XZT1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19OwpfLkNkPWZ1bmN0aW9uKGEsYil7YT1FcnJvci5jYWxsKHRoaXMsYSk7dGhpcy5tZXNzYWdlPWEubWVzc2FnZTsic3RhY2siaW4gYSYmKHRoaXMuc3RhY2s9YS5zdGFjayk7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsXy5DZC5wcm90b3R5cGUpO3RoaXMudHlwZT1ifHwidW5rbm93biJ9O18uSihfLkNkLEVycm9yKTt2YXIgeWEseGEsd2E7Xy5aZD10eXBlb2YgVGV4dERlY29kZXIhPT0idW5kZWZpbmVkIjt4YT10eXBlb2YgU3RyaW5nLnByb3RvdHlwZS5pc1dlbGxGb3JtZWQ9PT0iZnVuY3Rpb24iO3dhPXR5cGVvZiBUZXh0RW5jb2RlciE9PSJ1bmRlZmluZWQiO18uJGQ9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuL15bXHNceGEwXSooW1xzXFNdKj8pW1xzXHhhMF0qJC8uZXhlYyhhKVsxXX07dmFyIGFlPSEhKF8udmFbMF0+PjI1JjEpLGJlPSEhKF8udmFbMF0+PjIwJjEpLGNlPSEhKF8udmFbMF0+PjI3JjEpLGRlPSEhKF8udmFbMF0mODE5Mik7dmFyIERhPWFlP2NlOlZkKDYxMDQwMTMwMSwhMSksamM9YWU/YmV8fCFkZTpWZCg3NDg0MDIxNDcsITApO3ZhciBlZTtlZT1fLncubmF2aWdhdG9yO18uRWE9ZWU/ZWUudXNlckFnZW50RGF0YXx8bnVsbDpudWxsO18uYWI9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTtfLmZlPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoP2Z1bmN0aW9uKGEsYil7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD10eXBlb2YgYT09PSJzdHJpbmciP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKX07Cl8uZ2U9QXJyYXkucHJvdG90eXBlLnNvbWU/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD10eXBlb2YgYT09PSJzdHJpbmciP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspaWYoZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKSlyZXR1cm4hMDtyZXR1cm4hMX07Xy5oZT1BcnJheS5wcm90b3R5cGUuZXZlcnk/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9dHlwZW9mIGE9PT0ic3RyaW5nIj9hLnNwbGl0KCIiKTphLGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmIWIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpKXJldHVybiExO3JldHVybiEwfTtfLmllPWZ1bmN0aW9uKGEpe18uaWVbIiAiXShhKTtyZXR1cm4gYX07Xy5pZVsiICJdPWZ1bmN0aW9uKCl7fTt2YXIgamUsbGUsb2U7amU9Xy5JYSgpO18ua2U9Xy5KYSgpO2xlPV8ueigiRWRnZSIpO18ubWU9Xy56KCJHZWNrbyIpJiYhKF8uQ2EoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIV8ueigiRWRnZSIpKSYmIShfLnooIlRyaWRlbnQiKXx8Xy56KCJNU0lFIikpJiYhXy56KCJFZGdlIik7Xy5uZT1fLkNhKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiFfLnooIkVkZ2UiKTsKYTp7dmFyIHBlPSIiLHFlPWZ1bmN0aW9uKCl7dmFyIGE9Xy5DYSgpO2lmKF8ubWUpcmV0dXJuL3J2OihbXlwpO10rKShcKXw7KS8uZXhlYyhhKTtpZihsZSlyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKF8ua2UpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKF8ubmUpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoYSk7aWYoamUpcmV0dXJuLyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoYSl9KCk7cWUmJihwZT1xZT9xZVsxXToiIik7aWYoXy5rZSl7dmFyIHJlLHNlPV8udy5kb2N1bWVudDtyZT1zZT9zZS5kb2N1bWVudE1vZGU6dm9pZCAwO2lmKHJlIT1udWxsJiZyZT5wYXJzZUZsb2F0KHBlKSl7b2U9U3RyaW5nKHJlKTticmVhayBhfX1vZT1wZX12YXIgdGU9b2U7dmFyIHVlPV8uTmEoKSx2ZT1YYSgpfHxfLnooImlQb2QiKSx3ZT1fLnooImlQYWQiKSx4ZT1RYSgpLHllPV8uT2EoKSx6ZT1fLlBhKCkmJiFfLllhKCk7dmFyIGViPXt9LGliPW51bGw7dmFyIG1iLG5iLGpiO18uQWU9dHlwZW9mIFVpbnQ4QXJyYXkhPT0idW5kZWZpbmVkIjttYj0hXy5rZSYmdHlwZW9mIGJ0b2E9PT0iZnVuY3Rpb24iO25iPS9bLV8uXS9nO2piPXsiLSI6IisiLF86Ii8iLCIuIjoiPSJ9O18uQmU9e307Xy5DZT1mdW5jdGlvbihhKXtpZihfLkJlIT09Xy5CZSl0aHJvdyBFcnJvcigidyIpO3ZhciBiPWEuZztiPWI9PW51bGx8fF8uQWUmJmIhPW51bGwmJmIgaW5zdGFuY2VvZiBVaW50OEFycmF5P2I6dHlwZW9mIGI9PT0ic3RyaW5nIj9fLm9iKGIpOm51bGw7cmV0dXJuIGI9PW51bGw/YjphLmc9Yn07dmFyIHFiPXZvaWQgMDt2YXIgRGUsVmIsbGMsT2I7Xy50Yj10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgpPT09InN5bWJvbCI7RGU9Xy5zYigiamFzIix2b2lkIDAsITApO18uRWU9Xy5zYih2b2lkIDAsIjBkaSIpO18uVGI9Xy5zYih2b2lkIDAsU3ltYm9sKCkpO18uRmU9Xy5zYih2b2lkIDAsIjB1YiIpO1ZiPV8uc2Iodm9pZCAwLCIwdWJzIik7Xy5HZT1fLnNiKHZvaWQgMCwiMHVic2IiKTtsYz1fLnNiKHZvaWQgMCwiMGFjdGsiKTtPYj1fLnNiKCJtX20iLCJiZiIsITApO18uSGU9Xy5zYigpO3ZhciB2Yix1YixKZTt2Yj17WGQ6e3ZhbHVlOjAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITF9fTt1Yj1PYmplY3QuZGVmaW5lUHJvcGVydGllcztfLkE9Xy50Yj9EZToiWGQiO0plPVtdO18ueGIoSmUsNyk7Xy5JZT1PYmplY3QuZnJlZXplKEplKTt2YXIgUGIseWI7UGI9e307eWI9e307Xy5LZT1PYmplY3QuZnJlZXplKHt9KTtfLkxjPXt9O3ZhciBEYj1CYihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn0pLENiPUJiKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSksRmI9QmIoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifSk7dmFyIEViPXR5cGVvZiBfLncuQmlnSW50PT09ImZ1bmN0aW9uIiYmdHlwZW9mIF8udy5CaWdJbnQoMCk9PT0iYmlnaW50Ijt2YXIgTmUsTGUsT2UsTWU7Xy4kYj1CYihmdW5jdGlvbihhKXtyZXR1cm4gRWI/YT49TGUmJmE8PU1lOmFbMF09PT0iLSI/SGIoYSxOZSk6SGIoYSxPZSl9KTtOZT1OdW1iZXIuTUlOX1NBRkVfSU5URUdFUi50b1N0cmluZygpO0xlPUViP0JpZ0ludChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUik6dm9pZCAwO09lPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLnRvU3RyaW5nKCk7TWU9RWI/QmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTp2b2lkIDA7Xy5QZT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuc2xpY2U9PT0iZnVuY3Rpb24iO18uUWU9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzSW50Tjp2b2lkIDA7Xy5SZT1OdW1iZXIuaXNTYWZlSW50ZWdlcjtfLktiPU51bWJlci5pc0Zpbml0ZTtfLlNlPU1hdGgudHJ1bmM7dmFyIFhiO3ZhciBkYyxlYzt2YXIgV2U7Xy5UZT1fLkdiKDApO18uVWU9e307Xy5MPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1fLnVjKGEuQSxiLGMsZSk7aWYoYiE9PW51bGx8fGQmJmEuaSE9PXliKXJldHVybiBifTtfLnVjPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGI9PT0tMSlyZXR1cm4gbnVsbDt2YXIgZT1iKyhjPzA6LTEpLGY9YS5sZW5ndGgtMTtpZighKGY8MSsoYz8wOi0xKSkpe2lmKGU+PWYpe3ZhciBnPWFbZl07aWYoZyE9bnVsbCYmdHlwZW9mIGc9PT0ib2JqZWN0IiYmZy5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7Yz1nW2JdO3ZhciBoPSEwfWVsc2UgaWYoZT09PWYpYz1nO2Vsc2UgcmV0dXJufWVsc2UgYz1hW2VdO2lmKGQmJmMhPW51bGwpe2Q9ZChjKTtpZihkPT1udWxsKXJldHVybiBkO2lmKCFPYmplY3QuaXMoZCxjKSlyZXR1cm4gaD9nW2JdPWQ6YVtlXT1kLGR9cmV0dXJuIGN9fTtfLlZlPWZ1bmN0aW9uKGEsYixjKXthPWEuQTtyZXR1cm4gXy52YyhhLGFbXy5BXXwwLGIsYykhPT12b2lkIDB9OwpXZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YVtfLkFdfDAsZT1kJjEyOD9fLkxjOnZvaWQgMCxmPV8udWMoYSxjLGUpO2lmKGYhPW51bGwmJmZbT2JdPT09UGIpe2lmKCFfLnpiKGYpKXJldHVybiBfLnJjKGYpLGYuQTt2YXIgZz1mLkF9ZWxzZSBBcnJheS5pc0FycmF5KGYpJiYoZz1mKTtpZihnKXt2YXIgaD1nW18uQV18MDtoJjImJihnPV8ubWMoZyxoKSl9Zz1fLmljKGcsYik7ZyE9PWYmJl8udGMoYSxkLGMsZyxlKTtyZXR1cm4gZ307Xy5NPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuQSxmPWVbXy5BXXwwO2I9Xy52YyhlLGYsYixjLGQpO2lmKGI9PW51bGwpcmV0dXJuIGI7Zj1lW18uQV18MDtpZighXy56YihhLGYpKXt2YXIgZz1fLnFjKGIpO2chPT1iJiYoXy5yYyhhKSYmKGU9YS5BLGY9ZVtfLkFdfDApLGI9ZyxmPV8udGMoZSxmLGMsYixkKSxfLnNjKGUsZikpfXJldHVybiBifTsKXy5YZT1mdW5jdGlvbihhLGIpe3ZhciBjPWM9PT12b2lkIDA/IiI6Yzt2YXIgZDtyZXR1cm4oZD1fLk5iKF8uTChhLGIpKSkhPW51bGw/ZDpjfTtfLk49ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5OYihfLkwoYSxiLHZvaWQgMCxfLlVlKSl9O18uTz1mdW5jdGlvbihhLGIpe3JldHVybiBfLkxiKF8uTChhLGIsdm9pZCAwLF8uVWUpKX07Xy5ZZT1mdW5jdGlvbihhLGIpe2Zvcig7Yj4xMjc7KWEuZy5wdXNoKGImMTI3fDEyOCksYj4+Pj03O2EuZy5wdXNoKGIpfTtfLlplPWZ1bmN0aW9uKGEsYil7aWYoYj49MClfLlllKGEsYik7ZWxzZXtmb3IodmFyIGM9MDtjPDk7YysrKWEuZy5wdXNoKGImMTI3fDEyOCksYj4+PTc7YS5nLnB1c2goMSl9fTtfLiRlPWZ1bmN0aW9uKGEsYil7Yi5sZW5ndGghPT0wJiYoYS5pLnB1c2goYiksYS5oKz1iLmxlbmd0aCl9O18uQ2M9ZnVuY3Rpb24oYSxiKXtfLlllKGEuZyxiKjgrMik7Yj1hLmcuZW5kKCk7Xy4kZShhLGIpO2IucHVzaChhLmgpO3JldHVybiBifTtfLkRjPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5wb3AoKTtmb3IoYz1hLmgrYS5nLmxlbmd0aCgpLWM7Yz4xMjc7KWIucHVzaChjJjEyN3wxMjgpLGM+Pj49NyxhLmgrKztiLnB1c2goYyk7YS5oKyt9O18uYWY9ZnVuY3Rpb24oYSxiLGMpe18uWWUoYS5nLGIqOCsyKTtfLlllKGEuZyxjLmxlbmd0aCk7Xy4kZShhLGEuZy5lbmQoKSk7Xy4kZShhLGMpfTt2YXIgYmYsZWY7Xy55Yz13YygpO2JmPXdjKCk7Xy5jZj13YygpO18uZGY9d2MoKTtlZj13YygpO18uRD1mdW5jdGlvbihhLGIsYyl7dGhpcy5BPV8uQihhLGIsYyl9O18uRC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIF8uYmModGhpcyl9O18uRC5wcm90b3R5cGVbT2JdPVBiO18uRC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BLnRvU3RyaW5nKCl9O3ZhciBHYyxJYztfLnpjPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmc9YTt0aGlzLmg9YjthPV8uU2IoXy55Yyk7dGhpcy5pPSEhYSYmYz09PWF8fCExfTtHYz1BYyhmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGEuaCE9PTIpcmV0dXJuITE7YS5sKFdlKGIsZCxjKSxlKTtyZXR1cm4hMH0pO0ljPUFjKGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYS5oIT09MilyZXR1cm4hMTthLmwoV2UoYixkLGMpLGUpO3JldHVybiEwfSk7Xy5mZj1TeW1ib2woKTtfLmdmPV8uS2MoZnVuY3Rpb24oYSxiLGMpe2lmKGEuaCE9PTApcmV0dXJuITE7Xy5NYyhiLGMsYS51KCkpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyl7Yj1fLkpiKGIpO2IhPW51bGwmJihfLlllKGEuZyxjKjgpLGEuZy5nLnB1c2goYj8xOjApKX0sYmYpO18uaGY9Xy5LYyhmdW5jdGlvbihhLGIsYyl7aWYoYS5oIT09MilyZXR1cm4hMTtfLk1jKGIsYyxhLm8oKSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtiPV8uTmIoYik7YiE9bnVsbCYmXy5hZihhLGMsXy56YShiKSl9LF8uY2YpO18uamY9Xy5LYyhmdW5jdGlvbihhLGIsYyl7aWYoYS5oIT09MClyZXR1cm4hMTtfLk1jKGIsYyxhLnYoKSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtiPV8uTWIoYik7YiE9bnVsbCYmKGI9cGFyc2VJbnQoYiwxMCksXy5ZZShhLmcsYyo4KSxfLlplKGEuZyxiKSl9LGVmKTt2YXIgTmM9bmV3IE1hcDtOYy5zZXQoImRlYnVnIiwwKTtOYy5zZXQoImluZm8iLDEpO05jLnNldCgid2FybiIsMik7TmMuc2V0KCJlcnJvciIsMyk7Xy5PYz0id2FybiI7Xy5rZj1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcztfLlJjPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLlJjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O18ubGY9bmV3IF8uUmMoImFib3V0OmludmFsaWQjekNsb3N1cmV6Iik7dmFyIFZjO18uVGM9ZnVuY3Rpb24oYSl7dGhpcy5hZT1hfTtfLm1mPVtVYygiZGF0YSIpLFVjKCJodHRwIiksVWMoImh0dHBzIiksVWMoIm1haWx0byIpLFVjKCJmdHAiKSxuZXcgXy5UYyhmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldO1ZjPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7Xy5uZj1TdHJpbmcucHJvdG90eXBlLnJlcGVhdD9mdW5jdGlvbihhLGIpe3JldHVybiBhLnJlcGVhdChiKX06ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkoYisxKS5qb2luKGEpfTt2YXIgb2Y7Xy5sPV8uWWMucHJvdG90eXBlO18ubC5zZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSExO2lmKHR5cGVvZiBjPT09Im9iamVjdCIpe3ZhciBlPWMuc2FtZVNpdGU7ZD1jLnNlY3VyZXx8ITE7dmFyIGY9Yy5kb21haW58fHZvaWQgMDt2YXIgZz1jLnBhdGh8fHZvaWQgMDt2YXIgaD1jLldifWlmKC9bOz1cc10vLnRlc3QoYSkpdGhyb3cgRXJyb3IoIkpgIithKTtpZigvWztcclxuXS8udGVzdChiKSl0aHJvdyBFcnJvcigiS2AiK2IpO2g9PT12b2lkIDAmJihoPS0xKTt0aGlzLmcuY29va2llPWErIj0iK2IrKGY/Ijtkb21haW49IitmOiIiKSsoZz8iO3BhdGg9IitnOiIiKSsoaDwwPyIiOmg9PTA/IjtleHBpcmVzPSIrKG5ldyBEYXRlKDE5NzAsMSwxKSkudG9VVENTdHJpbmcoKToiO2V4cGlyZXM9IisobmV3IERhdGUoRGF0ZS5ub3coKStoKjFFMykpLnRvVVRDU3RyaW5nKCkpKyhkPyI7c2VjdXJlIjoiIikrKGUhPW51bGw/IjtzYW1lc2l0ZT0iK2U6IiIpfTsKXy5sLmdldD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hKyI9IixkPSh0aGlzLmcuY29va2llfHwiIikuc3BsaXQoIjsiKSxlPTAsZjtlPGQubGVuZ3RoO2UrKyl7Zj1fLiRkKGRbZV0pO2lmKGYubGFzdEluZGV4T2YoYywwKT09MClyZXR1cm4gZi5zbGljZShjLmxlbmd0aCk7aWYoZj09YSlyZXR1cm4iIn1yZXR1cm4gYn07Xy5sLlVhPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKHRoaXMpLmtleXN9O18ubC5uYT1mdW5jdGlvbigpe3JldHVybiBvZih0aGlzKS52YWx1ZXN9O18ubC5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgYT1vZih0aGlzKS5rZXlzLGI9YS5sZW5ndGgtMTtiPj0wO2ItLSl7dmFyIGM9YVtiXTt0aGlzLmdldChjKTt0aGlzLnNldChjLCIiLHtXYjowLHBhdGg6dm9pZCAwLGRvbWFpbjp2b2lkIDB9KX19OwpvZj1mdW5jdGlvbihhKXthPShhLmcuY29va2llfHwiIikuc3BsaXQoIjsiKTtmb3IodmFyIGI9W10sYz1bXSxkLGUsZj0wO2Y8YS5sZW5ndGg7ZisrKWU9Xy4kZChhW2ZdKSxkPWUuaW5kZXhPZigiPSIpLGQ9PS0xPyhiLnB1c2goIiIpLGMucHVzaChlKSk6KGIucHVzaChlLnN1YnN0cmluZygwLGQpKSxjLnB1c2goZS5zdWJzdHJpbmcoZCsxKSkpO3JldHVybntrZXlzOmIsdmFsdWVzOmN9fTtfLmFkPW5ldyBfLlljKHR5cGVvZiBkb2N1bWVudD09InVuZGVmaW5lZCI/bnVsbDpkb2N1bWVudCk7Xy4kYz1bInRlc3Rfb25seSIsImVuYWJsZV93YXJtX3dlbGNvbWVfcGFnZV90eXBlIiwiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iLCJlbmFibGVfaXRwX3N1cHBvcnRfaW5fb2F1dGgiLCJkaXNhYmxlX2ZlZGNtX29wdF9vdXQiXTtfLlA9ZnVuY3Rpb24oYSl7Xy5aYy5nW2FdPSEwO18uRSgiRXhwZXJpbWVudCAiK2ErIiB0dXJuZWQgb24uIil9O18ucGY9ZnVuY3Rpb24oYSxiKXtfLlpjLmdbYV09YjtfLkUoIkV4cGVyaW1lbnQgIithKyIgc2V0IHRvICIrYisiLiIpfTtfLlpjPW5ldyBmdW5jdGlvbigpe3RoaXMuZz17fX07dmFyIGNkPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIik7Xy5yZj1mdW5jdGlvbihhKXt0aGlzLmc9cWY9PT1xZiYmYXx8IiJ9O18ucmYucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307dmFyIHFmPXt9O18uUT1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudDtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj9iLmdldEVsZW1lbnRCeUlkKGEpOmF9O18uc2Y9ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihiPWIudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChiKX07Xy5lZD1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO3ZhciBtZCx0ZixCZix1Zix3Zix2Zix6Zix4ZixDZjtfLmhkLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5oO2ImJmEucHVzaCh0ZihiLHVmLCEwKSwiOiIpO3ZhciBjPXRoaXMuZztpZihjfHxiPT0iZmlsZSIpYS5wdXNoKCIvLyIpLChiPXRoaXMuZ2V0VXNlckluZm8oKSkmJmEucHVzaCh0ZihiLHVmLCEwKSwiQCIpLGEucHVzaChlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxjPXRoaXMudSxjIT1udWxsJiZhLnB1c2goIjoiLFN0cmluZyhjKSk7aWYoYz10aGlzLmkpdGhpcy5nJiZjLmNoYXJBdCgwKSE9Ii8iJiZhLnB1c2goIi8iKSxhLnB1c2godGYoYyxjLmNoYXJBdCgwKT09Ii8iP3ZmOndmLCEwKSk7KGM9dGhpcy5qLnRvU3RyaW5nKCkpJiZhLnB1c2goIj8iLGMpOyhjPXRoaXMubykmJmEucHVzaCgiIyIsdGYoYyx4ZikpO3JldHVybiBhLmpvaW4oIiIpfTsKXy5oZC5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgXy5oZCh0aGlzKSxjPSEhYS5oO2M/Xy5pZChiLGEuaCk6Yz0hIWEudjtpZihjKXt2YXIgZD1hLmdldFVzZXJJbmZvKCk7Yi52PWR9ZWxzZSBjPSEhYS5nO2M/Yi5nPWEuZzpjPWEudSE9bnVsbDtkPWEuaTtpZihjKV8uamQoYixhLnUpO2Vsc2UgaWYoYz0hIWEuaSl7aWYoZC5jaGFyQXQoMCkhPSIvIilpZih0aGlzLmcmJiF0aGlzLmkpZD0iLyIrZDtlbHNle3ZhciBlPWIuaS5sYXN0SW5kZXhPZigiLyIpO2UhPS0xJiYoZD1iLmkuc2xpY2UoMCxlKzEpK2QpfWU9ZDtpZihlPT0iLi4ifHxlPT0iLiIpZD0iIjtlbHNlIGlmKGUuaW5kZXhPZigiLi8iKSE9LTF8fGUuaW5kZXhPZigiLy4iKSE9LTEpe2Q9ZS5sYXN0SW5kZXhPZigiLyIsMCk9PTA7ZT1lLnNwbGl0KCIvIik7Zm9yKHZhciBmPVtdLGc9MDtnPGUubGVuZ3RoOyl7dmFyIGg9ZVtnKytdO2g9PSIuIj9kJiZnPT1lLmxlbmd0aCYmZi5wdXNoKCIiKTpoPT0KIi4uIj8oKGYubGVuZ3RoPjF8fGYubGVuZ3RoPT0xJiZmWzBdIT0iIikmJmYucG9wKCksZCYmZz09ZS5sZW5ndGgmJmYucHVzaCgiIikpOihmLnB1c2goaCksZD0hMCl9ZD1mLmpvaW4oIi8iKX1lbHNlIGQ9ZX1jP2IuaT1kOmM9YS5qLnRvU3RyaW5nKCkhPT0iIjtjP18ua2QoYixsZChhLmopKTpjPSEhYS5vO2MmJihiLm89YS5vKTtyZXR1cm4gYn07Xy5pZD1mdW5jdGlvbihhLGIsYyl7YS5oPWM/bWQoYiwhMCk6YjthLmgmJihhLmg9YS5oLnJlcGxhY2UoLzokLywiIikpfTtfLmhkLnByb3RvdHlwZS5nZXRVc2VySW5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZ9O18uamQ9ZnVuY3Rpb24oYSxiKXtpZihiKXtiPU51bWJlcihiKTtpZihpc05hTihiKXx8YjwwKXRocm93IEVycm9yKCJMYCIrYik7YS51PWJ9ZWxzZSBhLnU9bnVsbH07Cl8ua2Q9ZnVuY3Rpb24oYSxiLGMpe2IgaW5zdGFuY2VvZiBfLm5kPyhhLmo9Yix5ZihhLmosYS5sKSk6KGN8fChiPXRmKGIsemYpKSxhLmo9bmV3IF8ubmQoYixhLmwpKX07Xy5BZj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uaGQ/bmV3IF8uaGQoYSk6bmV3IF8uaGQoYSl9O21kPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE/Yj9kZWNvZGVVUkkoYS5yZXBsYWNlKC8lMjUvZywiJTI1MjUiKSk6ZGVjb2RlVVJJQ29tcG9uZW50KGEpOiIifTt0Zj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/KGE9ZW5jb2RlVVJJKGEpLnJlcGxhY2UoYixCZiksYyYmKGE9YS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxhKTpudWxsfTtCZj1mdW5jdGlvbihhKXthPWEuY2hhckNvZGVBdCgwKTtyZXR1cm4iJSIrKGE+PjQmMTUpLnRvU3RyaW5nKDE2KSsoYSYxNSkudG9TdHJpbmcoMTYpfTt1Zj0vWyNcL1w/QF0vZzt3Zj0vWyNcPzpdL2c7CnZmPS9bI1w/XS9nO3pmPS9bI1w/QF0vZzt4Zj0vIy9nO18ubmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmg9dGhpcy5nPW51bGw7dGhpcy5pPWF8fG51bGw7dGhpcy5qPSEhYn07Q2Y9ZnVuY3Rpb24oYSl7YS5nfHwoYS5nPW5ldyBNYXAsYS5oPTAsYS5pJiZnZChhLmksZnVuY3Rpb24oYixjKXthLmFkZChkZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9cKy9nLCIgIikpLGMpfSkpfTtfLm5kLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXtDZih0aGlzKTt0aGlzLmk9bnVsbDthPURmKHRoaXMsYSk7dmFyIGM9dGhpcy5nLmdldChhKTtjfHx0aGlzLmcuc2V0KGEsYz1bXSk7Yy5wdXNoKGIpO3RoaXMuaCs9MTtyZXR1cm4gdGhpc307Xy5FZj1mdW5jdGlvbihhLGIpe0NmKGEpO2I9RGYoYSxiKTthLmcuaGFzKGIpJiYoYS5pPW51bGwsYS5oLT1hLmcuZ2V0KGIpLmxlbmd0aCxhLmcuZGVsZXRlKGIpKX07Cl8ubmQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuaT1udWxsO3RoaXMuaD0wfTt2YXIgRmY9ZnVuY3Rpb24oYSxiKXtDZihhKTtiPURmKGEsYik7cmV0dXJuIGEuZy5oYXMoYil9O18ubD1fLm5kLnByb3RvdHlwZTtfLmwuZm9yRWFjaD1mdW5jdGlvbihhLGIpe0NmKHRoaXMpO3RoaXMuZy5mb3JFYWNoKGZ1bmN0aW9uKGMsZCl7Yy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2EuY2FsbChiLGUsZCx0aGlzKX0sdGhpcyl9LHRoaXMpfTtfLmwuVWE9ZnVuY3Rpb24oKXtDZih0aGlzKTtmb3IodmFyIGE9QXJyYXkuZnJvbSh0aGlzLmcudmFsdWVzKCkpLGI9QXJyYXkuZnJvbSh0aGlzLmcua2V5cygpKSxjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKylmb3IodmFyIGU9YVtkXSxmPTA7ZjxlLmxlbmd0aDtmKyspYy5wdXNoKGJbZF0pO3JldHVybiBjfTsKXy5sLm5hPWZ1bmN0aW9uKGEpe0NmKHRoaXMpO3ZhciBiPVtdO2lmKHR5cGVvZiBhPT09InN0cmluZyIpRmYodGhpcyxhKSYmKGI9Yi5jb25jYXQodGhpcy5nLmdldChEZih0aGlzLGEpKSkpO2Vsc2V7YT1BcnJheS5mcm9tKHRoaXMuZy52YWx1ZXMoKSk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYj1iLmNvbmNhdChhW2NdKX1yZXR1cm4gYn07Xy5sLnNldD1mdW5jdGlvbihhLGIpe0NmKHRoaXMpO3RoaXMuaT1udWxsO2E9RGYodGhpcyxhKTtGZih0aGlzLGEpJiYodGhpcy5oLT10aGlzLmcuZ2V0KGEpLmxlbmd0aCk7dGhpcy5nLnNldChhLFtiXSk7dGhpcy5oKz0xO3JldHVybiB0aGlzfTtfLmwuZ2V0PWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIGI7YT10aGlzLm5hKGEpO3JldHVybiBhLmxlbmd0aD4wP1N0cmluZyhhWzBdKTpifTsKXy5HZj1mdW5jdGlvbihhLGIsYyl7Xy5FZihhLGIpO2MubGVuZ3RoPjAmJihhLmk9bnVsbCxhLmcuc2V0KERmKGEsYiksXy5jYihjKSksYS5oKz1jLmxlbmd0aCl9O18ubmQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5pKXJldHVybiB0aGlzLmk7aWYoIXRoaXMuZylyZXR1cm4iIjtmb3IodmFyIGE9W10sYj1BcnJheS5mcm9tKHRoaXMuZy5rZXlzKCkpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpO2Q9dGhpcy5uYShkKTtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKyl7dmFyIGc9ZTtkW2ZdIT09IiImJihnKz0iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkW2ZdKSkpO2EucHVzaChnKX19cmV0dXJuIHRoaXMuaT1hLmpvaW4oIiYiKX07CnZhciBsZD1mdW5jdGlvbihhKXt2YXIgYj1uZXcgXy5uZDtiLmk9YS5pO2EuZyYmKGIuZz1uZXcgTWFwKGEuZyksYi5oPWEuaCk7cmV0dXJuIGJ9LERmPWZ1bmN0aW9uKGEsYil7Yj1TdHJpbmcoYik7YS5qJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBifSx5Zj1mdW5jdGlvbihhLGIpe2ImJiFhLmomJihDZihhKSxhLmk9bnVsbCxhLmcuZm9yRWFjaChmdW5jdGlvbihjLGQpe3ZhciBlPWQudG9Mb3dlckNhc2UoKTtkIT1lJiYoXy5FZih0aGlzLGQpLF8uR2YodGhpcyxlLGMpKX0sYSkpO2Euaj1ifTtfLkhmPXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gYX07Xy5vZC5wcm90b3R5cGUudT0hMTtfLm9kLnByb3RvdHlwZS5YYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnV9O18ub2QucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnV8fCh0aGlzLnU9ITAsdGhpcy5oYSgpKX07Xy5vZC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O18ub2QucHJvdG90eXBlLmhhPWZ1bmN0aW9uKCl7aWYodGhpcy5vKWZvcig7dGhpcy5vLmxlbmd0aDspdGhpcy5vLnNoaWZ0KCkoKX07dmFyIHBkPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5oPXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMuaT0hMX07cGQucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuaT0hMH07cGQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfTt2YXIgSWY9ZnVuY3Rpb24oKXtpZighXy53LmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIGE9ITEsYj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXthPSEwfX0pO3RyeXt2YXIgYz1mdW5jdGlvbigpe307Xy53LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYik7Xy53LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYil9Y2F0Y2goZCl7fXJldHVybiBhfSgpO18uWWQocWQscGQpOwpxZC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMudHlwZT1hLnR5cGUsZD1hLmNoYW5nZWRUb3VjaGVzJiZhLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9hLmNoYW5nZWRUb3VjaGVzWzBdOm51bGw7dGhpcy50YXJnZXQ9YS50YXJnZXR8fGEuc3JjRWxlbWVudDt0aGlzLmg9YjtiPWEucmVsYXRlZFRhcmdldDtifHwoYz09Im1vdXNlb3ZlciI/Yj1hLmZyb21FbGVtZW50OmM9PSJtb3VzZW91dCImJihiPWEudG9FbGVtZW50KSk7dGhpcy5yZWxhdGVkVGFyZ2V0PWI7ZD8odGhpcy5jbGllbnRYPWQuY2xpZW50WCE9PXZvaWQgMD9kLmNsaWVudFg6ZC5wYWdlWCx0aGlzLmNsaWVudFk9ZC5jbGllbnRZIT09dm9pZCAwP2QuY2xpZW50WTpkLnBhZ2VZLHRoaXMuc2NyZWVuWD1kLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWQuc2NyZWVuWXx8MCk6KHRoaXMuaj1fLm5lfHxhLm9mZnNldFghPT12b2lkIDA/YS5vZmZzZXRYOmEubGF5ZXJYLHRoaXMubD1fLm5lfHxhLm9mZnNldFkhPT0Kdm9pZCAwP2Eub2Zmc2V0WTphLmxheWVyWSx0aGlzLmNsaWVudFg9YS5jbGllbnRYIT09dm9pZCAwP2EuY2xpZW50WDphLnBhZ2VYLHRoaXMuY2xpZW50WT1hLmNsaWVudFkhPT12b2lkIDA/YS5jbGllbnRZOmEucGFnZVksdGhpcy5zY3JlZW5YPWEuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9YS5zY3JlZW5ZfHwwKTt0aGlzLmJ1dHRvbj1hLmJ1dHRvbjt0aGlzLmtleUNvZGU9YS5rZXlDb2RlfHwwO3RoaXMua2V5PWEua2V5fHwiIjt0aGlzLmNoYXJDb2RlPWEuY2hhckNvZGV8fChjPT0ia2V5cHJlc3MiP2Eua2V5Q29kZTowKTt0aGlzLmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuYWx0S2V5PWEuYWx0S2V5O3RoaXMuc2hpZnRLZXk9YS5zaGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMucG9pbnRlcklkPWEucG9pbnRlcklkfHwwO3RoaXMucG9pbnRlclR5cGU9YS5wb2ludGVyVHlwZTt0aGlzLnN0YXRlPWEuc3RhdGU7dGhpcy5nPWE7YS5kZWZhdWx0UHJldmVudGVkJiZxZC51YS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpfTsKcWQucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3FkLnVhLnN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO3RoaXMuZy5zdG9wUHJvcGFnYXRpb24/dGhpcy5nLnN0b3BQcm9wYWdhdGlvbigpOnRoaXMuZy5jYW5jZWxCdWJibGU9ITB9O3FkLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3FkLnVhLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7dmFyIGE9dGhpcy5nO2EucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITF9O3FkLnByb3RvdHlwZS5vPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307dmFyIEpmO0pmPSJjbG9zdXJlX2xpc3RlbmFibGVfIisoTWF0aC5yYW5kb20oKSoxRTZ8MCk7Xy5LZj1mdW5jdGlvbihhKXtyZXR1cm4hKCFhfHwhYVtKZl0pfTt2YXIgcmQ9MDt2YXIgTGY9ZnVuY3Rpb24oYSl7YS5hYj0hMDthLmxpc3RlbmVyPW51bGw7YS5wcm94eT1udWxsO2Euc3JjPW51bGw7YS55YT1udWxsfTt2YXIgTmY7dGQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEudG9TdHJpbmcoKTthPXRoaXMuZ1tmXTthfHwoYT10aGlzLmdbZl09W10sdGhpcy5oKyspO3ZhciBnPU1mKGEsYixkLGUpO2c+LTE/KGI9YVtnXSxjfHwoYi5wYj0hMSkpOihiPW5ldyBzZChiLHRoaXMuc3JjLGYsISFkLGUpLGIucGI9YyxhLnB1c2goYikpO3JldHVybiBifTtOZj1mdW5jdGlvbihhLGIpe3ZhciBjPWIudHlwZTtpZighKGMgaW4gYS5nKSlyZXR1cm4hMTt2YXIgZD1fLmJiKGEuZ1tjXSxiKTtkJiYoTGYoYiksYS5nW2NdLmxlbmd0aD09MCYmKGRlbGV0ZSBhLmdbY10sYS5oLS0pKTtyZXR1cm4gZH07Xy5PZj1mdW5jdGlvbihhLGIpe2I9YiYmYi50b1N0cmluZygpO3ZhciBjPTAsZDtmb3IoZCBpbiBhLmcpaWYoIWJ8fGQ9PWIpe2Zvcih2YXIgZT1hLmdbZF0sZj0wO2Y8ZS5sZW5ndGg7ZisrKSsrYyxMZihlW2ZdKTtkZWxldGUgYS5nW2RdO2EuaC0tfX07CnRkLnByb3RvdHlwZS5WYT1mdW5jdGlvbihhLGIsYyxkKXthPXRoaXMuZ1thLnRvU3RyaW5nKCldO3ZhciBlPS0xO2EmJihlPU1mKGEsYixjLGQpKTtyZXR1cm4gZT4tMT9hW2VdOm51bGx9O3ZhciBNZj1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9MDtlPGEubGVuZ3RoOysrZSl7dmFyIGY9YVtlXTtpZighZi5hYiYmZi5saXN0ZW5lcj09YiYmZi5jYXB0dXJlPT0hIWMmJmYueWE9PWQpcmV0dXJuIGV9cmV0dXJuLTF9O3ZhciBQZixRZixWZixaZixhZyxkZyxiZyxjZyxmZyxZZjtQZj0iY2xvc3VyZV9sbV8iKyhNYXRoLnJhbmRvbSgpKjFFNnwwKTtRZj17fTtWZj0wO18uWGY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkJiZkLm9uY2UpcmV0dXJuIF8uV2YoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKylfLlhmKGEsYltmXSxjLGQsZSk7cmV0dXJuIG51bGx9Yz1ZZihjKTtyZXR1cm4gXy5LZihhKT9hLk0oYixjLF8uVWQoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlpmKGEsYixjLCExLGQsZSl9OwpaZj1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoIk8iKTt2YXIgZz1fLlVkKGUpPyEhZS5jYXB0dXJlOiEhZSxoPV8uJGYoYSk7aHx8KGFbUGZdPWg9bmV3IHRkKGEpKTtjPWguYWRkKGIsYyxkLGcsZik7aWYoYy5wcm94eSlyZXR1cm4gYztkPWFnKCk7Yy5wcm94eT1kO2Quc3JjPWE7ZC5saXN0ZW5lcj1jO2lmKGEuYWRkRXZlbnRMaXN0ZW5lcilJZnx8KGU9ZyksZT09PXZvaWQgMCYmKGU9ITEpLGEuYWRkRXZlbnRMaXN0ZW5lcihiLnRvU3RyaW5nKCksZCxlKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudChiZyhiLnRvU3RyaW5nKCkpLGQpO2Vsc2UgaWYoYS5hZGRMaXN0ZW5lciYmYS5yZW1vdmVMaXN0ZW5lcilhLmFkZExpc3RlbmVyKGQpO2Vsc2UgdGhyb3cgRXJyb3IoIlAiKTtWZisrO3JldHVybiBjfTthZz1mdW5jdGlvbigpe3ZhciBhPWNnLGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGEuY2FsbChiLnNyYyxiLmxpc3RlbmVyLGMpfTtyZXR1cm4gYn07Cl8uV2Y9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKylfLldmKGEsYltmXSxjLGQsZSk7cmV0dXJuIG51bGx9Yz1ZZihjKTtyZXR1cm4gXy5LZihhKT9hLlZiKGIsYyxfLlVkKGQpPyEhZC5jYXB0dXJlOiEhZCxlKTpaZihhLGIsYywhMCxkLGUpfTtkZz1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspZGcoYSxiW2ZdLGMsZCxlKTtlbHNlIGQ9Xy5VZChkKT8hIWQuY2FwdHVyZTohIWQsYz1ZZihjKSxfLktmKGEpP2EuRWEoYixjLGQsZSk6YSYmKGE9Xy4kZihhKSkmJihiPWEuVmEoYixjLGQsZSkpJiZfLmVnKGIpfTsKXy5lZz1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJudW1iZXIifHwhYXx8YS5hYilyZXR1cm4hMTt2YXIgYj1hLnNyYztpZihfLktmKGIpKXJldHVybiBOZihiLmlhLGEpO3ZhciBjPWEudHlwZSxkPWEucHJveHk7Yi5yZW1vdmVFdmVudExpc3RlbmVyP2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLGQsYS5jYXB0dXJlKTpiLmRldGFjaEV2ZW50P2IuZGV0YWNoRXZlbnQoYmcoYyksZCk6Yi5hZGRMaXN0ZW5lciYmYi5yZW1vdmVMaXN0ZW5lciYmYi5yZW1vdmVMaXN0ZW5lcihkKTtWZi0tOyhjPV8uJGYoYikpPyhOZihjLGEpLGMuaD09MCYmKGMuc3JjPW51bGwsYltQZl09bnVsbCkpOkxmKGEpO3JldHVybiEwfTtiZz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbiBRZj9RZlthXTpRZlthXT0ib24iK2F9OwpjZz1mdW5jdGlvbihhLGIpe2lmKGEuYWIpYT0hMDtlbHNle2I9bmV3IHFkKGIsdGhpcyk7dmFyIGM9YS5saXN0ZW5lcixkPWEueWF8fGEuc3JjO2EucGImJl8uZWcoYSk7YT1jLmNhbGwoZCxiKX1yZXR1cm4gYX07Xy4kZj1mdW5jdGlvbihhKXthPWFbUGZdO3JldHVybiBhIGluc3RhbmNlb2YgdGQ/YTpudWxsfTtmZz0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhNYXRoLnJhbmRvbSgpKjFFOT4+PjApO1lmPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIilyZXR1cm4gYTthW2ZnXXx8KGFbZmddPWZ1bmN0aW9uKGIpe3JldHVybiBhLmhhbmRsZUV2ZW50KGIpfSk7cmV0dXJuIGFbZmddfTtfLllkKF8udWQsXy5vZCk7Xy51ZC5wcm90b3R5cGVbSmZdPSEwO18ubD1fLnVkLnByb3RvdHlwZTtfLmwuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtfLlhmKHRoaXMsYSxiLGMsZCl9O18ubC5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe2RnKHRoaXMsYSxiLGMsZCl9OwpfLmwuZGlzcGF0Y2hFdmVudD1mdW5jdGlvbihhKXt2YXIgYixjPXRoaXMubDtpZihjKWZvcihiPVtdO2M7Yz1jLmwpYi5wdXNoKGMpO2M9dGhpcy5DO3ZhciBkPWEudHlwZXx8YTtpZih0eXBlb2YgYT09PSJzdHJpbmciKWE9bmV3IHBkKGEsYyk7ZWxzZSBpZihhIGluc3RhbmNlb2YgcGQpYS50YXJnZXQ9YS50YXJnZXR8fGM7ZWxzZXt2YXIgZT1hO2E9bmV3IHBkKGQsYyk7ZGQoYSxlKX1lPSEwO3ZhciBmO2lmKGIpZm9yKGY9Yi5sZW5ndGgtMTshYS5pJiZmPj0wO2YtLSl7dmFyIGc9YS5oPWJbZl07ZT1nZyhnLGQsITAsYSkmJmV9YS5pfHwoZz1hLmg9YyxlPWdnKGcsZCwhMCxhKSYmZSxhLml8fChlPWdnKGcsZCwhMSxhKSYmZSkpO2lmKGIpZm9yKGY9MDshYS5pJiZmPGIubGVuZ3RoO2YrKylnPWEuaD1iW2ZdLGU9Z2coZyxkLCExLGEpJiZlO3JldHVybiBlfTsKXy5sLmhhPWZ1bmN0aW9uKCl7Xy51ZC51YS5oYS5jYWxsKHRoaXMpO3RoaXMuaWEmJl8uT2YodGhpcy5pYSk7dGhpcy5sPW51bGx9O18ubC5NPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmlhLmFkZChTdHJpbmcoYSksYiwhMSxjLGQpfTtfLmwuVmI9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuaWEuYWRkKFN0cmluZyhhKSxiLCEwLGMsZCl9O18ubC5FYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLmlhO2E9U3RyaW5nKGEpLnRvU3RyaW5nKCk7aWYoYSBpbiBlLmcpe3ZhciBmPWUuZ1thXTtiPU1mKGYsYixjLGQpO2I+LTEmJihMZihmW2JdKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoZixiLDEpLGYubGVuZ3RoPT0wJiYoZGVsZXRlIGUuZ1thXSxlLmgtLSkpfX07CnZhciBnZz1mdW5jdGlvbihhLGIsYyxkKXtiPWEuaWEuZ1tTdHJpbmcoYildO2lmKCFiKXJldHVybiEwO2I9Yi5jb25jYXQoKTtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7KytmKXt2YXIgZz1iW2ZdO2lmKGcmJiFnLmFiJiZnLmNhcHR1cmU9PWMpe3ZhciBoPWcubGlzdGVuZXIsaz1nLnlhfHxnLnNyYztnLnBiJiZOZihhLmlhLGcpO2U9aC5jYWxsKGssZCkhPT0hMSYmZX19cmV0dXJuIGUmJiFkLmRlZmF1bHRQcmV2ZW50ZWR9O18udWQucHJvdG90eXBlLlZhPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmlhLlZhKFN0cmluZyhhKSxiLGMsZCl9O18uaGc9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCk7Zm9yKHZhciBpZz1bXSxqZz0wO2pnPDYzO2pnKyspaWdbamddPTA7Xy5rZz1bXS5jb25jYXQoMTI4LGlnKTt2YXIgbGc7bGc9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5leGVjKF8uQ2EoKSkpP2FbMV06IiJ9O18ubWc9ZnVuY3Rpb24oKXtpZih1ZSlyZXR1cm4gbGcoL0ZpcmVmb3hcLyhbMC05Ll0rKS8pO2lmKF8ua2V8fGxlfHxqZSlyZXR1cm4gdGU7aWYoeWUpe2lmKF8uWWEoKXx8Xy5aYSgpKXt2YXIgYT1sZygvQ3JpT1NcLyhbMC05Ll0rKS8pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIGxnKC9DaHJvbWVcLyhbMC05Ll0rKS8pfWlmKHplJiYhXy5ZYSgpKXJldHVybiBsZygvVmVyc2lvblwvKFswLTkuXSspLyk7aWYodmV8fHdlKXtpZihhPS9WZXJzaW9uXC8oXFMrKS4qTW9iaWxlXC8oXFMrKS8uZXhlYyhfLkNhKCkpKXJldHVybiBhWzFdKyIuIithWzJdfWVsc2UgaWYoeGUpcmV0dXJuKGE9bGcoL0FuZHJvaWRccysoWzAtOS5dKykvKSk/YTpsZygvVmVyc2lvblwvKFswLTkuXSspLyk7cmV0dXJuIiJ9KCk7Xy52ZD13aW5kb3c7Xy5ZZChfLkVkLF8ub2QpO3ZhciBuZz1bXTtfLkVkLnByb3RvdHlwZS5NPWZ1bmN0aW9uKGEsYixjLGQpe0FycmF5LmlzQXJyYXkoYil8fChiJiYobmdbMF09Yi50b1N0cmluZygpKSxiPW5nKTtmb3IodmFyIGU9MDtlPGIubGVuZ3RoO2UrKyl7dmFyIGY9Xy5YZihhLGJbZV0sY3x8dGhpcy5oYW5kbGVFdmVudCxkfHwhMSx0aGlzLmh8fHRoaXMpO2lmKCFmKWJyZWFrO3RoaXMuZ1tmLmtleV09Zn1yZXR1cm4gdGhpc307Xy5FZC5wcm90b3R5cGUuVmI9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIG9nKHRoaXMsYSxiLGMsZCl9O3ZhciBvZz1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoQXJyYXkuaXNBcnJheShjKSlmb3IodmFyIGc9MDtnPGMubGVuZ3RoO2crKylvZyhhLGIsY1tnXSxkLGUsZik7ZWxzZXtiPV8uV2YoYixjLGR8fGEuaGFuZGxlRXZlbnQsZSxmfHxhLmh8fGEpO2lmKCFiKXJldHVybiBhO2EuZ1tiLmtleV09Yn1yZXR1cm4gYX07Cl8uRWQucHJvdG90eXBlLkVhPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSlmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKyl0aGlzLkVhKGEsYltmXSxjLGQsZSk7ZWxzZSBjPWN8fHRoaXMuaGFuZGxlRXZlbnQsZD1fLlVkKGQpPyEhZC5jYXB0dXJlOiEhZCxlPWV8fHRoaXMuaHx8dGhpcyxjPVlmKGMpLGQ9ISFkLGI9Xy5LZihhKT9hLlZhKGIsYyxkLGUpOmE/KGE9Xy4kZihhKSk/YS5WYShiLGMsZCxlKTpudWxsOm51bGwsYiYmKF8uZWcoYiksZGVsZXRlIHRoaXMuZ1tiLmtleV0pfTt2YXIgcGc9ZnVuY3Rpb24oYSl7YmQoYS5nLGZ1bmN0aW9uKGIsYyl7dGhpcy5nLmhhc093blByb3BlcnR5KGMpJiZfLmVnKGIpfSxhKTthLmc9e319O18uRWQucHJvdG90eXBlLmhhPWZ1bmN0aW9uKCl7Xy5FZC51YS5oYS5jYWxsKHRoaXMpO3BnKHRoaXMpfTtfLkVkLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJVIik7fTtfLllkKF8uR2QsXy51ZCk7Xy5HZC5wcm90b3R5cGUuaD0hMTtfLkdkLnByb3RvdHlwZS5nPW51bGw7Xy5HZC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe2lmKHRoaXMuaCl7dmFyIGE9RGF0ZS5ub3coKS10aGlzLkI7YT4wJiZhPHRoaXMuaiouOD90aGlzLmc9dGhpcy5pLnNldFRpbWVvdXQodGhpcy52LHRoaXMuai1hKToodGhpcy5nJiYodGhpcy5pLmNsZWFyVGltZW91dCh0aGlzLmcpLHRoaXMuZz1udWxsKSx0aGlzLmRpc3BhdGNoRXZlbnQoInRpY2siKSx0aGlzLmgmJihfLnFnKHRoaXMpLHRoaXMuc3RhcnQoKSkpfX07Xy5HZC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLmg9ITA7dGhpcy5nfHwodGhpcy5nPXRoaXMuaS5zZXRUaW1lb3V0KHRoaXMudix0aGlzLmopLHRoaXMuQj1EYXRlLm5vdygpKX07Xy5xZz1mdW5jdGlvbihhKXthLmg9ITE7YS5nJiYoYS5pLmNsZWFyVGltZW91dChhLmcpLGEuZz1udWxsKX07Cl8uR2QucHJvdG90eXBlLmhhPWZ1bmN0aW9uKCl7Xy5HZC51YS5oYS5jYWxsKHRoaXMpO18ucWcodGhpcyk7ZGVsZXRlIHRoaXMuaX07Xy5yZz1mdW5jdGlvbihhLGIpe3RoaXMubD1iLmF1dGhfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL3YyL2F1dGgiO3RoaXMudT1fLkRkKGEsYik7dGhpcy5lcnJvcl9jYWxsYmFjaz1iLmVycm9yX2NhbGxiYWNrO3RoaXMubz12b2lkIDA7dGhpcy5qPWE7dGhpcy52PSExfTtfLnJnLnByb3RvdHlwZS5pPWZ1bmN0aW9uKCl7dGhpcy5oJiYoXy5xZyh0aGlzLmgpLF8uRSgiUG9wdXAgdGltZXIgc3RvcHBlZC4iLCJPQVVUSDJfQ0xJRU5UIiksdGhpcy5oPXZvaWQgMCx0aGlzLkI9ITApfTsKXy5zZz1mdW5jdGlvbihhKXthLnZ8fChhLnY9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGIpe3RyeXtpZihiLmRhdGEpaWYoYi5vcmlnaW4hPT1fLmZkKGEubCkpXy5GKCJNZXNzYWdlIGlnbm9yZWQuIERpZmZlcmVudCBvcmlnaW4uIiwiT0FVVEgyX0NMSUVOVCIpO2Vsc2V7dmFyIGM9SlNPTi5wYXJzZShiLmRhdGEpLnBhcmFtcztjP2EubyYmYy5pZD09PWEubz9jLmNsaWVudElkIT09YS51LmNsaWVudF9pZD9fLkYoIk1lc3NhZ2UgaWdub3JlZC4gQ2xpZW50IGlkIGRvZXMgbm90IG1hdGNoLiIsIk9BVVRIMl9DTElFTlQiKTpjLnR5cGUhPT0iYXV0aFJlc3VsdCI/Xy5GKCJNZXNzYWdlIGlnbm9yZWQuIEludmFsaWQgZXZlbnQgdHlwZS4iLCJPQVVUSDJfQ0xJRU5UIik6KGEubz12b2lkIDAsYS5pKGMuYXV0aFJlc3VsdCkpOl8uRigiTWVzc2FnZSBpZ25vcmVkLiBSZXF1ZXN0IGlkIGRvZXMgbm90IG1hdGNoLiIsIk9BVVRIMl9DTElFTlQiKTpfLkYoIk1lc3NhZ2UgaWdub3JlZC4gTm8gcGFyYW1zIGluIG1lc3NhZ2UuIiwKIk9BVVRIMl9DTElFTlQiKX1lbHNlIF8uRigiTWVzc2FnZSBpZ25vcmVkLiBObyBldmVudCBkYXRhLiIsIk9BVVRIMl9DTElFTlQiKX1jYXRjaChkKXtfLkYoIk1lc3NhZ2UgaWdub3JlZC4gRXJyb3IgaW4gcGFyc2luZyBldmVudCBkYXRhLiIsIk9BVVRIMl9DTElFTlQiKX19LCExKSl9O18udGc9ZnVuY3Rpb24oYSxiKXthLm89ImF1dGgiK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxRTYrMSk7dmFyIGM9bG9jYXRpb24ucHJvdG9jb2wsZD1sb2NhdGlvbi5ob3N0LGU9Yy5pbmRleE9mKCI6Iik7ZT4wJiYoYz1jLnN1YnN0cmluZygwLGUpKTtjPVsic3RvcmFnZXJlbGF5Oi8vIixjLCIvIixkLCI/Il07Yy5wdXNoKCJpZD0iK2Eubyk7Yi5yZWRpcmVjdF91cmk9Yy5qb2luKCIiKX07Cl8udWc9ZnVuY3Rpb24oYSl7YS5lcnJvcl9jYWxsYmFjayYmYS5nJiYhYS5oJiYoXy5GKCJTdGFydGluZyBwb3B1cCB0aW1lci4iLCJPQVVUSDJfQ0xJRU5UIiksYS5CPSExLGEuaD1uZXcgXy5HZCg1MDApLChuZXcgXy5FZChhKSkuTShhLmgsInRpY2siLGEuQyksYS5oLnN0YXJ0KCkpfTtfLnJnLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7Xy5FKCJDaGVja2luZyBwb3B1cCBjbG9zZWQuIiwiT0FVVEgyX0NMSUVOVCIpOyF0aGlzLmh8fHRoaXMuQnx8dGhpcy5nJiYhdGhpcy5nLmNsb3NlZHx8KF8uRigiUG9wdXAgd2luZG93IGNsb3NlZC4iLCJPQVVUSDJfQ0xJRU5UIiksdGhpcy5lcnJvcl9jYWxsYmFjayYmdGhpcy5lcnJvcl9jYWxsYmFjayhuZXcgXy5DZCgiUG9wdXAgd2luZG93IGNsb3NlZCIsInBvcHVwX2Nsb3NlZCIpKSxfLnFnKHRoaXMuaCksdGhpcy5nPXRoaXMuaD12b2lkIDApfTt2YXIgSWQ9Xy53ZCgpOwpfLlAoImRpc2FibGVfZmVkY21fb3B0X291dCIpOwpfLlAoImVuYWJsZV9icm93c2luZ19zZXNzaW9uX2lkIik7Cl8uUCgiZW5hYmxlX2dpc19vYXV0aF9idXR0b25fZmxvd19wb3B1cCIpOwpfLlAoImVuYWJsZV9naXNfb2F1dGhfYnV0dG9uX2Zsb3dfcmVkaXJlY3QiKTsKXy5QKCJlbmFibGVfaGVscF9jZW50ZXJfdXJsIik7Cl8uUCgiZW5hYmxlX2ludGVybWVkaWF0ZV9pZnJhbWUiKTsKXy5QKCJlbmFibGVfaXRwX3N1cHBvcnRfaW5fb2F1dGgiKTsKXy5wZigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iLDI0KTsKXy5QKCJlbmFibGVfdHJhbnNmb3JtX2Zsb3dfZm9yX2F1dGh6Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBGaCxJaCxKaCxLaCxMaCxNaCxOaCxQaCxSaCxTaCxVaCxWaCxXaCxraSxuaSxwaSxzaSxHaCxIaCx6aSxBaSxRaCxUaCxYaCxsaSxtaTtfLkVoPWZ1bmN0aW9uKGEpe2E9RXJyb3IoYSk7Xy5wYihhLCJ3YXJuaW5nIik7cmV0dXJuIGF9O0ZoPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24ifTtJaD1mdW5jdGlvbihhKXt2YXIgYj1hPj4+MDtHaD1iO0hoPShhLWIpLzQyOTQ5NjcyOTY+Pj4wfTtKaD1mdW5jdGlvbihhLGIpe2I9fmI7YT9hPX5hKzE6Yis9MTtyZXR1cm5bYSxiXX07S2g9ZnVuY3Rpb24oYSl7aWYoYTwwKXtJaCgtYSk7dmFyIGI9Xy51KEpoKEdoLEhoKSk7YT1iLm5leHQoKS52YWx1ZTtiPWIubmV4dCgpLnZhbHVlO0doPWE+Pj4wO0hoPWI+Pj4wfWVsc2UgSWgoYSl9O0xoPWZ1bmN0aW9uKGEpe2E9U3RyaW5nKGEpO3JldHVybiIwMDAwMDAwIi5zbGljZShhLmxlbmd0aCkrYX07Ck1oPWZ1bmN0aW9uKGEsYil7Yj4+Pj0wO2E+Pj49MDtpZihiPD0yMDk3MTUxKXZhciBjPSIiKyg0Mjk0OTY3Mjk2KmIrYSk7ZWxzZSBGaCgpP2M9IiIrKEJpZ0ludChiKTw8QmlnSW50KDMyKXxCaWdJbnQoYSkpOihjPShhPj4+MjR8Yjw8OCkmMTY3NzcyMTUsYj1iPj4xNiY2NTUzNSxhPShhJjE2Nzc3MjE1KStjKjY3NzcyMTYrYio2NzEwNjU2LGMrPWIqODE0NzQ5NyxiKj0yLGE+PTFFNyYmKGMrPWEvMUU3Pj4+MCxhJT0xRTcpLGM+PTFFNyYmKGIrPWMvMUU3Pj4+MCxjJT0xRTcpLGM9YitMaChjKStMaChhKSk7cmV0dXJuIGN9O05oPWZ1bmN0aW9uKCl7dmFyIGE9R2gsYj1IaDtiJjIxNDc0ODM2NDg/RmgoKT9hPSIiKyhCaWdJbnQoYnwwKTw8QmlnSW50KDMyKXxCaWdJbnQoYT4+PjApKTooYj1fLnUoSmgoYSxiKSksYT1iLm5leHQoKS52YWx1ZSxiPWIubmV4dCgpLnZhbHVlLGE9Ii0iK01oKGEsYikpOmE9TWgoYSxiKTtyZXR1cm4gYX07Cl8uT2g9ZnVuY3Rpb24oYSl7aWYoIV8ucmMoYSkmJl8uemIoYSxhLkFbXy5BXXwwKSl0aHJvdyBFcnJvcigpO307UGg9ZnVuY3Rpb24oYSxiLGMpe2FbYl09Yy5ofTtSaD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9Yy5oO2FbYl09ZnVuY3Rpb24oaCxrLG0pe3JldHVybiBnKGgsayxtLGZ8fChmPV8uSGMoUWgsUGgsUmgsZCkuWWEpLGV8fChlPVNoKGQpKSl9fTtTaD1mdW5jdGlvbihhKXt2YXIgYj1hW1RoXTtpZighYil7dmFyIGM9Xy5IYyhRaCxQaCxSaCxhKTtiPWZ1bmN0aW9uKGQsZSl7cmV0dXJuIFVoKGQsZSxjKX07YVtUaF09Yn1yZXR1cm4gYn07ClVoPWZ1bmN0aW9uKGEsYixjKXtfLkFiKGEsYVtfLkFdfDAsZnVuY3Rpb24oZCxlKXtpZihlIT1udWxsKXt2YXIgZj1WaChjLGQpO2Y/ZihiLGUsZCk6ZDw1MDB8fF8ucmIoXy5HZSwzKX19KTsoYT1fLlViKGEpKSYmYS5zYihmdW5jdGlvbihkLGUsZil7Xy4kZShiLGIuZy5lbmQoKSk7Zm9yKGQ9MDtkPGYubGVuZ3RoO2QrKylfLiRlKGIsXy5DZShmW2RdKXx8bmV3IFVpbnQ4QXJyYXkoMCkpfSl9O1ZoPWZ1bmN0aW9uKGEsYil7dmFyIGM9YVtiXTtpZihjKXJldHVybiBjO2lmKGM9YS5PYilpZihjPWNbYl0pe2M9Xy5KYyhjKTt2YXIgZD1jWzBdLmg7aWYoYz1jWzFdKXt2YXIgZT1TaChjKSxmPV8uSGMoUWgsUGgsUmgsYykuWWE7Yz1hLlpjPygwLF8uRmMpKGYsZSk6ZnVuY3Rpb24oZyxoLGspe3JldHVybiBkKGcsaCxrLGYsZSl9fWVsc2UgYz1kO3JldHVybiBhW2JdPWN9fTsKV2g9ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhLGZ1bmN0aW9uKGIpe2I9Yi50b1N0cmluZygxNik7cmV0dXJuIGIubGVuZ3RoPjE/YjoiMCIrYn0pLmpvaW4oIiIpfTtfLlloPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYmlnaW50IjpyZXR1cm4hMDtjYXNlICJudW1iZXIiOnJldHVybigwLF8uS2IpKGEpO2Nhc2UgInN0cmluZyI6cmV0dXJuIFhoLnRlc3QoYSk7ZGVmYXVsdDpyZXR1cm4hMX19OwpfLlpoPWZ1bmN0aW9uKGEpe3ZhciBiPWEubGVuZ3RoO2lmKGFbMF09PT0iLSI/YjwyMHx8Yj09PTIwJiZhPD0iLTkyMjMzNzIwMzY4NTQ3NzU4MDgiOmI8MTl8fGI9PT0xOSYmYTw9IjkyMjMzNzIwMzY4NTQ3NzU4MDciKXJldHVybiBhO2lmKGEubGVuZ3RoPDE2KUtoKE51bWJlcihhKSk7ZWxzZSBpZihGaCgpKWE9QmlnSW50KGEpLEdoPU51bWJlcihhJkJpZ0ludCg0Mjk0OTY3Mjk1KSk+Pj4wLEhoPU51bWJlcihhPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7ZWxzZXtiPSsoYVswXT09PSItIik7SGg9R2g9MDtmb3IodmFyIGM9YS5sZW5ndGgsZD1iLGU9KGMtYiklNitiO2U8PWM7ZD1lLGUrPTYpZD1OdW1iZXIoYS5zbGljZShkLGUpKSxIaCo9MUU2LEdoPUdoKjFFNitkLEdoPj00Mjk0OTY3Mjk2JiYoSGgrPU1hdGgudHJ1bmMoR2gvNDI5NDk2NzI5NiksSGg+Pj49MCxHaD4+Pj0wKTtiJiYoYj1fLnUoSmgoR2gsSGgpKSxhPWIubmV4dCgpLnZhbHVlLGI9Yi5uZXh0KCkudmFsdWUsCkdoPWEsSGg9Yil9cmV0dXJuIE5oKCl9O18uJGg9ZnVuY3Rpb24oYSl7dmFyIGI9KDAsXy5TZSkoTnVtYmVyKGEpKTtpZigoMCxfLlJlKShiKSlyZXR1cm4gXy5HYihiKTtiPWEuaW5kZXhPZigiLiIpO2IhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxiKSk7cmV0dXJuIEZoKCk/Xy5HYigoMCxfLlFlKSg2NCxCaWdJbnQoYSkpKTpfLkdiKF8uWmgoYSkpfTtfLmFpPWZ1bmN0aW9uKGEpe2E9KDAsXy5TZSkoYSk7aWYoISgwLF8uUmUpKGEpKXtLaChhKTt2YXIgYj1HaCxjPUhoO2lmKGE9YyYyMTQ3NDgzNjQ4KWI9fmIrMT4+PjAsYz1+Yz4+PjAsYj09MCYmKGM9YysxPj4+MCk7dmFyIGQ9Yyo0Mjk0OTY3Mjk2KyhiPj4+MCk7Yj1OdW1iZXIuaXNTYWZlSW50ZWdlcihkKT9kOk1oKGIsYyk7YT10eXBlb2YgYj09PSJudW1iZXIiP2E/LWI6YjphPyItIitiOmJ9cmV0dXJuIGF9OwpfLmJpPWZ1bmN0aW9uKGEpe2E9KDAsXy5TZSkoYSk7KDAsXy5SZSkoYSk/YT1TdHJpbmcoYSk6KEtoKGEpLGE9TmgoKSk7cmV0dXJuIGF9O18uY2k9ZnVuY3Rpb24oYSl7cmV0dXJuKDAsXy5SZSkoYSk/Xy5HYihfLmFpKGEpKTpfLkdiKF8uYmkoYSkpfTtfLmRpPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO2lmKGE9PW51bGwpcmV0dXJuIGE7aWYoYj09PSJiaWdpbnQiKXJldHVybiBfLkdiKCgwLF8uUWUpKDY0LGEpKTtpZihfLlloKGEpKXJldHVybiBiPT09InN0cmluZyI/Xy4kaChhKTpfLmNpKGEpfTtfLmVpPWZ1bmN0aW9uKGEpe3JldHVybiEhKDImYSkmJiEhKDQmYSl8fCEhKDI1NiZhKX07Xy5maT1mdW5jdGlvbihhLGIpe3JldHVybiBhPSgyJmI/YXwyOmEmLTMpJi0yNzN9O18uZ2k9ZnVuY3Rpb24oYSxiLGMpe2E9Xy51YyhhLGIsYyk7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YTpfLkllfTtfLmhpPWZ1bmN0aW9uKGEsYil7MiZiJiYoYXw9Mik7cmV0dXJuIGF8MX07Cl8uaWk9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe2lmKGI9PW51bGx8fGI9PSIiKWI9bmV3IGE7ZWxzZXtiPUpTT04ucGFyc2UoYik7aWYoIUFycmF5LmlzQXJyYXkoYikpdGhyb3cgRXJyb3IoIkYiKTtfLndiKGIsMzIpO2I9bmV3IGEoYil9cmV0dXJuIGJ9fTtfLmppPWZ1bmN0aW9uKGEpe3ZhciBiPXRvcC5sb2NhdGlvbjthPV8uV2MoYSk7YSE9PXZvaWQgMCYmYi5yZXBsYWNlKGEpfTtraT1mdW5jdGlvbigpe3RoaXMuYmxvY2tTaXplPS0xfTsKbmk9ZnVuY3Rpb24oYSxiKXt0aGlzLmJsb2NrU2l6ZT0tMTt0aGlzLmJsb2NrU2l6ZT02NDt0aGlzLmk9Xy53LlVpbnQ4QXJyYXk/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKTt0aGlzLmo9dGhpcy5oPTA7dGhpcy5nPVtdO3RoaXMubz1hO3RoaXMubD1iO3RoaXMudT1fLncuSW50MzJBcnJheT9uZXcgSW50MzJBcnJheSg2NCk6QXJyYXkoNjQpO2xpPT09dm9pZCAwJiYoXy53LkludDMyQXJyYXk/bGk9bmV3IEludDMyQXJyYXkobWkpOmxpPW1pKTt0aGlzLnJlc2V0KCl9O3BpPWZ1bmN0aW9uKCl7bmkuY2FsbCh0aGlzLDgsb2kpfTtfLnFpPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBwaTtiLnVwZGF0ZShhLGEubGVuZ3RoKTtyZXR1cm4gV2goYi5kaWdlc3QoKSl9OwpfLnJpPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZm9ybSIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyk7Yy5tZXRob2Q9InBvc3QiO2E9Xy5XYyhhKTthIT09dm9pZCAwJiYoYy5hY3Rpb249YSk7aWYoYil7YT1PYmplY3Qua2V5cyhiKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YVtkXSxmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Zi50eXBlPSJoaWRkZW4iO2YubmFtZT1lO2YudmFsdWU9YltlXS50b1N0cmluZygpO2MuYXBwZW5kQ2hpbGQoZil9fWMuc3VibWl0KCl9O3NpPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO3JldHVybiBiIT0ib2JqZWN0Ij9iOmE/QXJyYXkuaXNBcnJheShhKT8iYXJyYXkiOmI6Im51bGwifTtfLnRpPWZ1bmN0aW9uKGEpe3ZhciBiPXNpKGEpO3JldHVybiBiPT0iYXJyYXkifHxiPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIn07R2g9MDtIaD0wOwpfLnVpPWZ1bmN0aW9uKGEsYixjKXtfLk9oKGEpO3ZhciBkPWEuQTtfLnRjKGQsZFtfLkFdfDAsYixjKTtyZXR1cm4gYX07Xy52aT1mdW5jdGlvbihhLGIpe3ZhciBjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZDtyZXR1cm4oZD1fLkpiKF8uTChhLGIpKSkhPW51bGw/ZDpjfTtfLndpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yz09PXZvaWQgMD8wOmM7dmFyIGQ7cmV0dXJuKGQ9Xy5MYihfLkwoYSxiKSkpIT1udWxsP2Q6Y307Xy54aT1mdW5jdGlvbihhLGIpe3JldHVybiBfLk5iKF8uTChhLGIpKX07Xy55aT1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCYmdHlwZW9mIGMhPT0iYm9vbGVhbiIpdGhyb3cgRXJyb3IoInhgIitzaShjKSsiYCIrYyk7cmV0dXJuIF8udWkoYSxiLGMpfTtfLlI9ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwmJnR5cGVvZiBjIT09InN0cmluZyIpdGhyb3cgRXJyb3IoKTtyZXR1cm4gXy51aShhLGIsYyl9OwpfLlM9ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwpe2lmKCEoMCxfLktiKShjKSl0aHJvdyBfLkVoKCJlbnVtIik7Y3w9MH1yZXR1cm4gXy51aShhLGIsYyl9O3ppPWZ1bmN0aW9uKCl7dGhpcy5nPVtdfTt6aS5wcm90b3R5cGUubGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5sZW5ndGh9O3ppLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmc7dGhpcy5nPVtdO3JldHVybiBhfTtBaT1mdW5jdGlvbigpe3RoaXMuaT1bXTt0aGlzLmg9MDt0aGlzLmc9bmV3IHppfTtRaD1TeW1ib2woKTtUaD1TeW1ib2woKTtfLkJpPWZ1bmN0aW9uKGEpe3JldHVybiBfLlhlKGEsNCl9O18uQ2k9WzAsMixfLmpmLF8uaGYsLTEsMSxfLmpmLF8uaGYsMSxfLmhmLC0yLF8uZ2ZdO18uRGk9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKF8uRGksXy5EKTsKXy5EaS5wcm90b3R5cGUuaD1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj1uZXcgQWk7VWgodGhpcy5BLGIsXy5IYyhRaCxQaCxSaCxhKSk7Xy4kZShiLGIuZy5lbmQoKSk7Zm9yKHZhciBjPW5ldyBVaW50OEFycmF5KGIuaCksZD1iLmksZT1kLmxlbmd0aCxmPTAsZz0wO2c8ZTtnKyspe3ZhciBoPWRbZ107Yy5zZXQoaCxmKTtmKz1oLmxlbmd0aH1iLmk9W2NdO3JldHVybiBjfX0oXy5DaSk7Xy5FaT1fLnNiKHZvaWQgMCwiMW9hIik7WGg9L14tPyhbMS05XVswLTldKnwwKShcLlswLTldKyk/JC87Cl8uRmk9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5BLGY9ZSxnPWVbXy5BXXwwLGg9Xy56YihhLGcpO2U9aD8xOmQ7ZD1lPT09Mzt2YXIgaz0haDsoZT09PTJ8fGspJiZfLnJjKGEpJiYoZj1hLkEsZz1mW18uQV18MCk7aD1fLmdpKGYsYyk7dmFyIG09aD09PV8uSWU/NzpoW18uQV18MCxuPV8uaGkobSxnKTtpZihhPSEoNCZuKSl7dmFyIHE9aCxwPWcscj0hISgyJm4pO3ImJihwfD0yKTtmb3IodmFyIHg9IXIseT0hMCxDPTAsa2E9MDtDPHEubGVuZ3RoO0MrKyl7dmFyIG5hPV8uUWIocVtDXSxiLHApO2lmKG5hIGluc3RhbmNlb2YgYil7aWYoIXIpe3ZhciBBYT1fLnpiKG5hKTt4JiYoeD0hQWEpO3kmJih5PUFhKX1xW2thKytdPW5hfX1rYTxDJiYocS5sZW5ndGg9a2EpO258PTQ7bj15P24mLTQwOTc6bnw0MDk2O249eD9ufDg6biYtOX1uIT09bSYmKF8ueGIoaCxuKSwyJm4mJk9iamVjdC5mcmVlemUoaCkpO2lmKGsmJiEoOCZufHwhaC5sZW5ndGgmJihlPT09MXx8KGUhPT00PzA6MiYKbnx8ISgxNiZuKSYmMzImZykpKSl7Xy5laShuKSYmKGg9Xy5JYihoKSxuPV8uZmkobixnKSxnPV8udGMoZixnLGMsaCkpO2I9aDtrPW47Zm9yKG09MDttPGIubGVuZ3RoO20rKylxPWJbbV0sbj1fLnFjKHEpLHEhPT1uJiYoYlttXT1uKTtrfD04O249az1iLmxlbmd0aD9rfDQwOTY6ayYtNDA5NztfLnhiKGgsbil9az1iPW47ZT09PTF8fChlIT09ND8wOjImYnx8ISgxNiZiKSYmMzImZyk/Xy5laShiKXx8KGJ8PSFoLmxlbmd0aHx8YSYmISg0MDk2JmIpfHwzMiZnJiYhKDQwOTYmYnx8MTYmYik/MjoyNTYsYiE9PWsmJl8ueGIoaCxiKSxPYmplY3QuZnJlZXplKGgpKTooZT09PTImJl8uZWkoYikmJihoPV8uSWIoaCksaz0wLGI9Xy5maShiLGcpLGc9Xy50YyhmLGcsYyxoKSksXy5laShiKXx8KGR8fChifD0xNiksYiE9PWsmJl8ueGIoaCxiKSkpOzImYnx8ISg0MDk2JmJ8fDE2JmIpfHxfLnNjKGYsZyk7cmV0dXJuIGh9OwpfLkdpPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/Xy5UZTpjO2E9Xy5MKGEsYix2b2lkIDAsdm9pZCAwLF8uZGkpO3JldHVybiBhIT1udWxsP2E6Y307Xy5IaT1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCl7aWYodHlwZW9mIGMhPT0ibnVtYmVyIil0aHJvdyBfLkVoKCJpbnQzMiIpO2lmKCEoMCxfLktiKShjKSl0aHJvdyBfLkVoKCJpbnQzMiIpO2N8PTB9cmV0dXJuIF8udWkoYSxiLGMpfTtfLklpPWZ1bmN0aW9uKGEsYil7aWYoYSlpZihfLktmKGEpKWEuaWEmJl8uT2YoYS5pYSxiKTtlbHNlIGlmKGE9Xy4kZihhKSl7dmFyIGM9MDtiPWImJmIudG9TdHJpbmcoKTtmb3IodmFyIGQgaW4gYS5nKWlmKCFifHxkPT1iKWZvcih2YXIgZT1hLmdbZF0uY29uY2F0KCksZj0wO2Y8ZS5sZW5ndGg7KytmKV8uZWcoZVtmXSkmJisrY319OwptaT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksCjI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07Xy5ZZChuaSxraSk7bmkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5qPXRoaXMuaD0wO3RoaXMuZz1fLncuSW50MzJBcnJheT9uZXcgSW50MzJBcnJheSh0aGlzLmwpOl8uY2IodGhpcy5sKX07CnZhciBKaT1mdW5jdGlvbihhKXtmb3IodmFyIGI9YS5pLGM9YS51LGQ9MCxlPTA7ZTxiLmxlbmd0aDspY1tkKytdPWJbZV08PDI0fGJbZSsxXTw8MTZ8YltlKzJdPDw4fGJbZSszXSxlPWQqNDtmb3IoYj0xNjtiPDY0O2IrKylkPWNbYi0xNV18MCxlPWNbYi0yXXwwLGNbYl09KChjW2ItMTZdfDApKygoZD4+Pjd8ZDw8MjUpXihkPj4+MTh8ZDw8MTQpXmQ+Pj4zKXwwKSsoKGNbYi03XXwwKSsoKGU+Pj4xN3xlPDwxNSleKGU+Pj4xOXxlPDwxMyleZT4+PjEwKXwwKXwwO2I9YS5nWzBdfDA7ZD1hLmdbMV18MDtlPWEuZ1syXXwwO2Zvcih2YXIgZj1hLmdbM118MCxnPWEuZ1s0XXwwLGg9YS5nWzVdfDAsaz1hLmdbNl18MCxtPWEuZ1s3XXwwLG49MDtuPDY0O24rKyl7dmFyIHE9KChiPj4+MnxiPDwzMCleKGI+Pj4xM3xiPDwxOSleKGI+Pj4yMnxiPDwxMCkpKyhiJmReYiZlXmQmZSl8MCxwPShtKygoZz4+PjZ8Zzw8MjYpXihnPj4+MTF8Zzw8MjEpXihnPj4+MjV8Zzw8NykpfDApKygoKGcmaF4KfmcmaykrKGxpW25dfDApfDApKyhjW25dfDApfDApfDA7bT1rO2s9aDtoPWc7Zz1mK3B8MDtmPWU7ZT1kO2Q9YjtiPXArcXwwfWEuZ1swXT1hLmdbMF0rYnwwO2EuZ1sxXT1hLmdbMV0rZHwwO2EuZ1syXT1hLmdbMl0rZXwwO2EuZ1szXT1hLmdbM10rZnwwO2EuZ1s0XT1hLmdbNF0rZ3wwO2EuZ1s1XT1hLmdbNV0raHwwO2EuZ1s2XT1hLmdbNl0ra3wwO2EuZ1s3XT1hLmdbN10rbXwwfTsKbmkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDAmJihiPWEubGVuZ3RoKTt2YXIgYz0wLGQ9dGhpcy5oO2lmKHR5cGVvZiBhPT09InN0cmluZyIpZm9yKDtjPGI7KXRoaXMuaVtkKytdPWEuY2hhckNvZGVBdChjKyspLGQ9PXRoaXMuYmxvY2tTaXplJiYoSmkodGhpcyksZD0wKTtlbHNlIGlmKF8udGkoYSkpZm9yKDtjPGI7KXt2YXIgZT1hW2MrK107aWYoISgibnVtYmVyIj09dHlwZW9mIGUmJjA8PWUmJjI1NT49ZSYmZT09KGV8MCkpKXRocm93IEVycm9yKCJTIik7dGhpcy5pW2QrK109ZTtkPT10aGlzLmJsb2NrU2l6ZSYmKEppKHRoaXMpLGQ9MCl9ZWxzZSB0aHJvdyBFcnJvcigiVCIpO3RoaXMuaD1kO3RoaXMuais9Yn07Cm5pLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMuaio4O3RoaXMuaDw1Nj90aGlzLnVwZGF0ZShfLmtnLDU2LXRoaXMuaCk6dGhpcy51cGRhdGUoXy5rZyx0aGlzLmJsb2NrU2l6ZS0odGhpcy5oLTU2KSk7Zm9yKHZhciBjPTYzO2M+PTU2O2MtLSl0aGlzLmlbY109YiYyNTUsYi89MjU2O0ppKHRoaXMpO2ZvcihjPWI9MDtjPHRoaXMubztjKyspZm9yKHZhciBkPTI0O2Q+PTA7ZC09OClhW2IrK109dGhpcy5nW2NdPj5kJjI1NTtyZXR1cm4gYX07dmFyIG9pPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07Xy5ZZChwaSxuaSk7Xy5LaT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5nPXRoaXMuaD1udWxsO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihiLGMpe2EuaD1iO2EuZz1jfSl9O18uS2kucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oYSl7aWYoIXRoaXMuaCl0aHJvdyBFcnJvcigibmEiKTt0aGlzLmgoYSk7dGhpcy5kaXNwb3NlKCl9O18uS2kucHJvdG90eXBlLnJlamVjdD1mdW5jdGlvbihhKXtpZighdGhpcy5nKXRocm93IEVycm9yKCJuYSIpO3RoaXMuZyhhKTt0aGlzLmRpc3Bvc2UoKX07Xy5LaS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZz10aGlzLmg9bnVsbH07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBwayxzayxBayxCayxDayxEayxFayxGayxHayxIayxJayxKayxLayxMayxUayxWayxXaztfLm1rPWZ1bmN0aW9uKGEpe2lmKF8udGIpe3ZhciBiO3JldHVybihiPWFbXy5FaV0pIT1udWxsP2I6YVtfLkVpXT1uZXcgTWFwfWlmKF8uRWkgaW4gYSlyZXR1cm4gYVtfLkVpXTtiPW5ldyBNYXA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsXy5FaSx7dmFsdWU6Yn0pO3JldHVybiBifTtfLm5rPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS5nZXQoZCk7aWYoZiE9bnVsbClyZXR1cm4gZjtmb3IodmFyIGc9Zj0wO2c8ZC5sZW5ndGg7ZysrKXt2YXIgaD1kW2ddO18udWMoYixoLGUpIT1udWxsJiYoZiE9PTAmJihjPV8udGMoYixjLGYsdm9pZCAwLGUpKSxmPWgpfWEuc2V0KGQsZik7cmV0dXJuIGZ9OwpfLm9rPWZ1bmN0aW9uKGEpe2lmKCFhLnN0YXJ0c1dpdGgoIildfSdcbiIpKXRocm93IGNvbnNvbGUuZXJyb3IoIm1hbGZvcm1lZCBKU09OIHJlc3BvbnNlOiIsYSksRXJyb3IoIm9hIik7YT1hLnN1YnN0cmluZyg1KTtyZXR1cm4gSlNPTi5wYXJzZShhKX07cGs9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYTxiPy0xOmE+Yj8xOjB9OwpfLnFrPWZ1bmN0aW9uKGEsYil7dmFyIGM9MDthPSgwLF8uJGQpKFN0cmluZyhhKSkuc3BsaXQoIi4iKTtiPSgwLF8uJGQpKFN0cmluZyhiKSkuc3BsaXQoIi4iKTtmb3IodmFyIGQ9TWF0aC5tYXgoYS5sZW5ndGgsYi5sZW5ndGgpLGU9MDtjPT0wJiZlPGQ7ZSsrKXt2YXIgZj1hW2VdfHwiIixnPWJbZV18fCIiO2Rve2Y9LyhcZCopKFxEKikoLiopLy5leGVjKGYpfHxbIiIsIiIsIiIsIiJdO2c9LyhcZCopKFxEKikoLiopLy5leGVjKGcpfHxbIiIsIiIsIiIsIiJdO2lmKGZbMF0ubGVuZ3RoPT0wJiZnWzBdLmxlbmd0aD09MClicmVhaztjPXBrKGZbMV0ubGVuZ3RoPT0wPzA6cGFyc2VJbnQoZlsxXSwxMCksZ1sxXS5sZW5ndGg9PTA/MDpwYXJzZUludChnWzFdLDEwKSl8fHBrKGZbMl0ubGVuZ3RoPT0wLGdbMl0ubGVuZ3RoPT0wKXx8cGsoZlsyXSxnWzJdKTtmPWZbM107Zz1nWzNdfXdoaWxlKGM9PTApfXJldHVybiBjfTsKXy5yaz1mdW5jdGlvbigpe3ZhciBhPV8uQ2EoKTtpZihfLkphKCkpcmV0dXJuIF8uU2EoYSk7YT1fLkdhKGEpO3ZhciBiPV8uUmEoYSk7cmV0dXJuIF8uSWEoKT9iKFsiVmVyc2lvbiIsIk9wZXJhIl0pOl8uS2EoKT9iKFsiRWRnZSJdKTpfLkxhKCk/YihbIkVkZyJdKTpfLnooIlNpbGsiKT9iKFsiU2lsayJdKTpfLk9hKCk/YihbIkNocm9tZSIsIkNyaU9TIiwiSGVhZGxlc3NDaHJvbWUiXSk6KGE9YVsyXSkmJmFbMV18fCIifTtzaz1mdW5jdGlvbihhLGIsYyl7aWYoYiYyKXRocm93IEVycm9yKCk7dmFyIGQ9YiYxMjg/Xy5MYzp2b2lkIDAsZT1fLmdpKGEsYyxkKSxmPWU9PT1fLkllPzc6ZVtfLkFdfDAsZz1fLmhpKGYsYik7aWYoMiZnfHxfLmVpKGcpfHwxNiZnKWc9PT1mfHxfLmVpKGcpfHxfLnhiKGUsZyksZT1fLkliKGUpLGY9MCxnPV8uZmkoZyxiKSxfLnRjKGEsYixjLGUsZCk7ZyY9LTEzO2chPT1mJiZfLnhiKGUsZyk7cmV0dXJuIGV9OwpfLnRrPWZ1bmN0aW9uKGEpe18uT2M9YT09PXZvaWQgMD8id2FybiI6YX07Xy51az1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiYXV0byI6cmV0dXJuIDE7Y2FzZSAidXNlcl8ydGFwIjpyZXR1cm4gNjtjYXNlICJ1c2VyXzF0YXAiOnJldHVybiA1O2Nhc2UgImJ0biI6cmV0dXJuIDc7Y2FzZSAiYnRuX2NvbmZpcm0iOnJldHVybiA4O2Nhc2UgImJ0bl9hZGRfc2Vzc2lvbiI6cmV0dXJuIDk7Y2FzZSAiYnRuX2NvbmZpcm1fYWRkX3Nlc3Npb24iOnJldHVybiAxMDtjYXNlICJpdHAiOnJldHVybiAxMTtkZWZhdWx0OnJldHVybiAyfX07Xy52az1mdW5jdGlvbihhKXt2YXIgYj17fTtpZihhKWZvcih2YXIgYz1fLnUoT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWQ9ZC52YWx1ZSxhW2RdIT09dm9pZCAwJiZhW2RdIT09IiImJihiW2RdPWFbZF0pO3JldHVybiBifTsKXy54az1mdW5jdGlvbihhLGIpe2E9bmV3IF8uaGQoYSk7YiYmXy5rZChhLF8ud2soXy52ayhiKSkpO3JldHVybiBhLnRvU3RyaW5nKCl9OwpfLnlrPWZ1bmN0aW9uKCl7dmFyIGE7aWYoIShhPV8uUGEoKXx8KF8ueigiaVBhZCIpfHxfLnooImlQaG9uZSIpKSYmIV8uUGEoKSYmIV8uT2EoKSYmIShfLkhhKCk/MDpfLnooIkNvYXN0IikpJiYhXy5OYSgpJiZfLnooIkFwcGxlV2ViS2l0IikpJiYoYT1fLllhKCkpKXthPV8uQ2EoKTt2YXIgYj0iIjsoXy5WYSgpP18uRWEucGxhdGZvcm09PT0iV2luZG93cyI6Xy56KCJXaW5kb3dzIikpPyhiPS9XaW5kb3dzICg/Ok5UfFBob25lKSAoWzAtOS5dKykvLGI9KGE9Yi5leGVjKGEpKT9hWzFdOiIwLjAiKTpfLllhKCk/KGI9Lyg/OmlQaG9uZXxpUG9kfGlQYWR8Q1BVKVxzK09TXHMrKFxTKykvLGI9KGE9Yi5leGVjKGEpKSYmYVsxXS5yZXBsYWNlKC9fL2csIi4iKSk6Xy5aYSgpPyhiPS9NYWMgT1MgWCAoWzAtOV8uXSspLyxiPShhPWIuZXhlYyhhKSk/YVsxXS5yZXBsYWNlKC9fL2csIi4iKToiMTAiKTpfLkNhKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJrYWlvcyIpIT0tMT8oYj0vKD86S2FpT1MpXC8oXFMrKS9pLApiPShhPWIuZXhlYyhhKSkmJmFbMV0pOl8uV2EoKT8oYj0vQW5kcm9pZFxzKyhbXlwpO10rKShcKXw7KS8sYj0oYT1iLmV4ZWMoYSkpJiZhWzFdKTpfLiRhKCkmJihiPS8oPzpDck9TXHMrKD86aTY4Nnx4ODZfNjQpXHMrKFswLTkuXSspKS8sYj0oYT1iLmV4ZWMoYSkpJiZhWzFdKTthPV8ucWsoYnx8IiIsIjE0LjQiKT49MH1yZXR1cm4gYXx8Xy5OYSgpJiZfLnFrKF8ucmsoKSwiMTAwIik+PTB9O18uems9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5TKGEsMyxiKX07CkFrPWZ1bmN0aW9uKGEpe2lmKGEubmEmJnR5cGVvZiBhLm5hPT0iZnVuY3Rpb24iKXJldHVybiBhLm5hKCk7aWYodHlwZW9mIE1hcCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgTWFwfHx0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIEFycmF5LmZyb20oYS52YWx1ZXMoKSk7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gYS5zcGxpdCgiIik7aWYoXy50aShhKSl7Zm9yKHZhciBiPVtdLGM9YS5sZW5ndGgsZD0wO2Q8YztkKyspYi5wdXNoKGFbZF0pO3JldHVybiBifWI9W107Yz0wO2ZvcihkIGluIGEpYltjKytdPWFbZF07cmV0dXJuIGJ9OwpCaz1mdW5jdGlvbihhKXtpZihhLlVhJiZ0eXBlb2YgYS5VYT09ImZ1bmN0aW9uIilyZXR1cm4gYS5VYSgpO2lmKCFhLm5hfHx0eXBlb2YgYS5uYSE9ImZ1bmN0aW9uIil7aWYodHlwZW9mIE1hcCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgTWFwKXJldHVybiBBcnJheS5mcm9tKGEua2V5cygpKTtpZighKHR5cGVvZiBTZXQhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIFNldCkpe2lmKF8udGkoYSl8fHR5cGVvZiBhPT09InN0cmluZyIpe3ZhciBiPVtdO2E9YS5sZW5ndGg7Zm9yKHZhciBjPTA7YzxhO2MrKyliLnB1c2goYyk7cmV0dXJuIGJ9Yj1bXTtjPTA7Zm9yKHZhciBkIGluIGEpYltjKytdPWQ7cmV0dXJuIGJ9fX07Q2s9L15odHRwcz8kL2k7RGs9WyJQT1NUIiwiUFVUIl07RWs9W107Rms9ZnVuY3Rpb24oYSl7YS5NYnx8KGEuTWI9ITAsYS5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLGEuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9OwpHaz1mdW5jdGlvbihhLGIpe2lmKGEuSSl7YS5EYSYmKGNsZWFyVGltZW91dChhLkRhKSxhLkRhPW51bGwpO3ZhciBjPWEuSTthLkk9bnVsbDtifHxhLmRpc3BhdGNoRXZlbnQoInJlYWR5Iik7dHJ5e2Mub25yZWFkeXN0YXRlY2hhbmdlPW51bGx9Y2F0Y2goZCl7fX19O0hrPWZ1bmN0aW9uKGEpe2EucWE9ITE7YS5JJiYoYS5BYT0hMCxhLkkuYWJvcnQoKSxhLkFhPSExKTtGayhhKTtHayhhKX07SWs9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuST9hLkkucmVhZHlTdGF0ZTowfTsKSms9ZnVuY3Rpb24oYSl7aWYoYS5xYSYmdHlwZW9mIF8udWEhPSJ1bmRlZmluZWQiKWlmKGEudWImJklrKGEpPT00KXNldFRpbWVvdXQoYS5qZC5iaW5kKGEpLDApO2Vsc2UgaWYoYS5kaXNwYXRjaEV2ZW50KCJyZWFkeXN0YXRlY2hhbmdlIiksSWsoYSk9PTQpe2EucWE9ITE7dHJ5e3ZhciBiPWEuU2MoKTthOnN3aXRjaChiKXtjYXNlIDIwMDpjYXNlIDIwMTpjYXNlIDIwMjpjYXNlIDIwNDpjYXNlIDIwNjpjYXNlIDMwNDpjYXNlIDEyMjM6dmFyIGM9ITA7YnJlYWsgYTtkZWZhdWx0OmM9ITF9dmFyIGQ7aWYoIShkPWMpKXt2YXIgZTtpZihlPWI9PT0wKXt2YXIgZj1TdHJpbmcoYS5VYikubWF0Y2goXy5lZClbMV18fG51bGw7IWYmJl8udy5zZWxmJiZfLncuc2VsZi5sb2NhdGlvbiYmKGY9Xy53LnNlbGYubG9jYXRpb24ucHJvdG9jb2wuc2xpY2UoMCwtMSkpO2U9IUNrLnRlc3QoZj9mLnRvTG93ZXJDYXNlKCk6IiIpfWQ9ZX1kPyhhLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksYS5kaXNwYXRjaEV2ZW50KCJzdWNjZXNzIikpOgpGayhhKX1maW5hbGx5e0drKGEpfX19O0trPWZ1bmN0aW9uKGEsYil7cmV0dXJue3R5cGU6YixsZW5ndGhDb21wdXRhYmxlOmEubGVuZ3RoQ29tcHV0YWJsZSxsb2FkZWQ6YS5sb2FkZWQsdG90YWw6YS50b3RhbH19O0xrPWZ1bmN0aW9uKCl7Xy51ZC5jYWxsKHRoaXMpO3RoaXMuaGVhZGVycz1uZXcgTWFwO3RoaXMucWE9ITE7dGhpcy5JPW51bGw7dGhpcy5VYj0iIjt0aGlzLkFhPXRoaXMuUmI9dGhpcy51Yj10aGlzLk1iPSExO3RoaXMubWQ9MDt0aGlzLkRhPW51bGw7dGhpcy5sZD0iIjt0aGlzLnJlPXRoaXMuZmM9ITE7dGhpcy5GYj10aGlzLmVjPW51bGx9O18uWWQoTGssXy51ZCk7Xy5sPUxrLnByb3RvdHlwZTtfLmwuS2Q9ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKTtfLmJiKEVrLHRoaXMpfTtfLmwuc2V0VHJ1c3RUb2tlbj1mdW5jdGlvbihhKXt0aGlzLmVjPWF9O18ubC5zZXRBdHRyaWJ1dGlvblJlcG9ydGluZz1mdW5jdGlvbihhKXt0aGlzLkZiPWF9OwpfLmwuc2VuZD1mdW5jdGlvbihhLGIsYyxkKXtpZih0aGlzLkkpdGhyb3cgRXJyb3IoIlFgIit0aGlzLlViKyJgIithKTtiPWI/Yi50b1VwcGVyQ2FzZSgpOiJHRVQiO3RoaXMuVWI9YTt0aGlzLk1iPSExO3RoaXMucWE9ITA7dGhpcy5JPW5ldyBYTUxIdHRwUmVxdWVzdDt0aGlzLkkub25yZWFkeXN0YXRlY2hhbmdlPSgwLF8uSGYpKCgwLF8uRmQpKHRoaXMuamQsdGhpcykpO3RoaXMucmUmJiJvbnByb2dyZXNzImluIHRoaXMuSSYmKHRoaXMuSS5vbnByb2dyZXNzPSgwLF8uSGYpKCgwLF8uRmQpKGZ1bmN0aW9uKGcpe3RoaXMuZ2QoZywhMCl9LHRoaXMpKSx0aGlzLkkudXBsb2FkJiYodGhpcy5JLnVwbG9hZC5vbnByb2dyZXNzPSgwLF8uSGYpKCgwLF8uRmQpKHRoaXMuZ2QsdGhpcykpKSk7dHJ5e3RoaXMuUmI9ITAsdGhpcy5JLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMuUmI9ITF9Y2F0Y2goZyl7SGsodGhpcyk7cmV0dXJufWE9Y3x8IiI7Yz1uZXcgTWFwKHRoaXMuaGVhZGVycyk7CmlmKGQpaWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGQpPT09T2JqZWN0LnByb3RvdHlwZSlmb3IodmFyIGUgaW4gZCljLnNldChlLGRbZV0pO2Vsc2UgaWYodHlwZW9mIGQua2V5cz09PSJmdW5jdGlvbiImJnR5cGVvZiBkLmdldD09PSJmdW5jdGlvbiIpe2U9Xy51KGQua2V5cygpKTtmb3IodmFyIGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWY9Zi52YWx1ZSxjLnNldChmLGQuZ2V0KGYpKX1lbHNlIHRocm93IEVycm9yKCJSYCIrU3RyaW5nKGQpKTtkPUFycmF5LmZyb20oYy5rZXlzKCkpLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuImNvbnRlbnQtdHlwZSI9PWcudG9Mb3dlckNhc2UoKX0pO2U9Xy53LkZvcm1EYXRhJiZhIGluc3RhbmNlb2YgXy53LkZvcm1EYXRhOyEoKDAsXy5hYikoRGssYik+PTApfHxkfHxlfHxjLnNldCgiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKTtiPV8udShjKTtmb3IoZD1iLm5leHQoKTshZC5kb25lO2Q9CmIubmV4dCgpKWM9Xy51KGQudmFsdWUpLGQ9Yy5uZXh0KCkudmFsdWUsYz1jLm5leHQoKS52YWx1ZSx0aGlzLkkuc2V0UmVxdWVzdEhlYWRlcihkLGMpO3RoaXMubGQmJih0aGlzLkkucmVzcG9uc2VUeXBlPXRoaXMubGQpOyJ3aXRoQ3JlZGVudGlhbHMiaW4gdGhpcy5JJiZ0aGlzLkkud2l0aENyZWRlbnRpYWxzIT09dGhpcy5mYyYmKHRoaXMuSS53aXRoQ3JlZGVudGlhbHM9dGhpcy5mYyk7aWYoInNldFRydXN0VG9rZW4iaW4gdGhpcy5JJiZ0aGlzLmVjKXRyeXt0aGlzLkkuc2V0VHJ1c3RUb2tlbih0aGlzLmVjKX1jYXRjaChnKXt9aWYoInNldEF0dHJpYnV0aW9uUmVwb3J0aW5nImluIHRoaXMuSSYmdGhpcy5GYil0cnl7dGhpcy5JLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nKHRoaXMuRmIpfWNhdGNoKGcpe310cnl7dGhpcy5EYSYmKGNsZWFyVGltZW91dCh0aGlzLkRhKSx0aGlzLkRhPW51bGwpLHRoaXMubWQ+MCYmKHRoaXMuRGE9c2V0VGltZW91dCh0aGlzLkZlLmJpbmQodGhpcyksCnRoaXMubWQpKSx0aGlzLnViPSEwLHRoaXMuSS5zZW5kKGEpLHRoaXMudWI9ITF9Y2F0Y2goZyl7SGsodGhpcyl9fTtfLmwuRmU9ZnVuY3Rpb24oKXt0eXBlb2YgXy51YSE9InVuZGVmaW5lZCImJnRoaXMuSSYmKHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTtfLmwuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLkkmJnRoaXMucWEmJih0aGlzLnFhPSExLHRoaXMuQWE9ITAsdGhpcy5JLmFib3J0KCksdGhpcy5BYT0hMSx0aGlzLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksdGhpcy5kaXNwYXRjaEV2ZW50KCJhYm9ydCIpLEdrKHRoaXMpKX07Xy5sLmhhPWZ1bmN0aW9uKCl7dGhpcy5JJiYodGhpcy5xYSYmKHRoaXMucWE9ITEsdGhpcy5BYT0hMCx0aGlzLkkuYWJvcnQoKSx0aGlzLkFhPSExKSxHayh0aGlzLCEwKSk7TGsudWEuaGEuY2FsbCh0aGlzKX07Cl8ubC5qZD1mdW5jdGlvbigpe3RoaXMuWGMoKXx8KHRoaXMuUmJ8fHRoaXMudWJ8fHRoaXMuQWE/SmsodGhpcyk6dGhpcy5wZSgpKX07Xy5sLnBlPWZ1bmN0aW9uKCl7SmsodGhpcyl9O18ubC5nZD1mdW5jdGlvbihhLGIpe3RoaXMuZGlzcGF0Y2hFdmVudChLayhhLCJwcm9ncmVzcyIpKTt0aGlzLmRpc3BhdGNoRXZlbnQoS2soYSxiPyJkb3dubG9hZHByb2dyZXNzIjoidXBsb2FkcHJvZ3Jlc3MiKSl9O18ubC5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5JfTtfLmwuU2M9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIElrKHRoaXMpPjI/dGhpcy5JLnN0YXR1czotMX1jYXRjaChhKXtyZXR1cm4tMX19O18ubC5nZXRSZXNwb25zZUhlYWRlcj1mdW5jdGlvbihhKXtpZih0aGlzLkkmJklrKHRoaXMpPT00KXJldHVybiBhPXRoaXMuSS5nZXRSZXNwb25zZUhlYWRlcihhKSxhPT09bnVsbD92b2lkIDA6YX07Cl8ubC5nZXRBbGxSZXNwb25zZUhlYWRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5JJiZJayh0aGlzKT49Mj90aGlzLkkuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fCIiOiIifTtfLk1rPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5JP2EuSS5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2goYil7cmV0dXJuIiJ9fTtfLk5rPWZ1bmN0aW9uKGEsYil7YT1hLkE7cmV0dXJuIF8ubmsoXy5tayhhKSxhLHZvaWQgMCxiKX07Xy5Paz1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uTmsoYSxiKT09PWM/YzotMX07Xy5Qaz1mdW5jdGlvbihhLGIpe3JldHVybiBfLkpiKF8uTChhLGIsdm9pZCAwLF8uVWUpKX07Cl8ud2s9ZnVuY3Rpb24oYSl7dmFyIGI9QmsoYSk7aWYodHlwZW9mIGI9PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKCJOIik7dmFyIGM9bmV3IF8ubmQobnVsbCk7YT1BayhhKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWFbZF07QXJyYXkuaXNBcnJheShmKT9fLkdmKGMsZSxmKTpjLmFkZChlLGYpfXJldHVybiBjfTtfLlFrPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1uZXcgTGs7RWsucHVzaChnKTtiJiZnLk0oImNvbXBsZXRlIixiKTtnLlZiKCJyZWFkeSIsZy5LZCk7ZiYmKGcuZmM9Zik7Zy5zZW5kKGEsYyxkLGUpfTtfLlJrPWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihfLlJrLF8uRCk7Xy5Taz1mdW5jdGlvbihhLGIpe3JldHVybiBfLk1iKF8uTChhLGIsdm9pZCAwLF8uVWUpKX07ClRrPW5ldyBfLnpjKGZ1bmN0aW9uKGEsYixjKXtpZihhLmghPT0yKXJldHVybiExO2E9YS5vKCk7c2soYixiW18uQV18MCxjKS5wdXNoKGEpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyl7aWYoQXJyYXkuaXNBcnJheShiKSl7dmFyIGQ9YltfLkFdfDA7aWYoIShkJjQpKXtmb3IodmFyIGU9MCxmPTA7ZTxiLmxlbmd0aDtlKyspe3ZhciBnPV8uTmIoYltlXSk7ZyE9bnVsbCYmKGJbZisrXT1nKX1mPGUmJihiLmxlbmd0aD1mKTtlPShkfDUpJi0xNTM3O2UhPT1kJiZfLnhiKGIsZSk7ZSYyJiZPYmplY3QuZnJlZXplKGIpfX1lbHNlIGI9dm9pZCAwO2lmKGIhPW51bGwpZm9yKGQ9MDtkPGIubGVuZ3RoO2QrKyllPWEsZj1jLGc9YltkXSxnIT1udWxsJiZfLmFmKGUsZixfLnphKGcpKX0sXy5jZik7Vms9dm9pZCAwO1ZrPVZrPT09dm9pZCAwP18ueWM6Vms7Cl8uVWs9bmV3IF8uemMoZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihhLmghPT0yKXJldHVybiExO3ZhciBmPWEubDtkPV8uaWModm9pZCAwLGQpO3NrKGIsYltfLkFdfDAsYykucHVzaChkKTtmLmNhbGwoYSxkLGUpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpe2Zvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1hLGg9YyxrPWUsbT1fLkJjKGJbZl0sZCk7bSE9bnVsbCYmKGg9Xy5DYyhnLGgpLGsobSxnKSxfLkRjKGcsaCkpfWE9YltfLkFdfDA7YSYxfHxfLnhiKGIsYXwxKX19LFZrKTtXaz1bMCxfLmhmXTtfLlhrPVswLF8uaGYsLTJdO18uWWs9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKF8uWWssXy5EKTtfLmw9Xy5Zay5wcm90b3R5cGU7Xy5sLnRiPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDEpfTtfLmwuUGI9ZnVuY3Rpb24oKXtyZXR1cm4gXy54aSh0aGlzLDEpfTsKXy5sLk5jPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDMpfTtfLmwuUmQ9ZnVuY3Rpb24oKXtyZXR1cm4gXy54aSh0aGlzLDMpfTtfLmwuUGM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5OKHRoaXMsNCl9O18ubC5TZD1mdW5jdGlvbigpe3JldHVybiBfLnhpKHRoaXMsNCl9O18ubC5UZD1mdW5jdGlvbigpe3JldHVybiBfLnhpKHRoaXMsNil9O18ubC5kYT1mdW5jdGlvbigpe3JldHVybiBfLlBrKHRoaXMsNyl9O18uWms9WzAsXy5oZiwtNSxfLmdmLFdrLFRrLF8uaGYsXy5nZixUayxfLmdmLC0xLFRrLC0xXTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgJGssZ2wsaWwsbGwsYWwsZmw7JGs9ZnVuY3Rpb24oKXt2YXIgYT1udWxsO2lmKCFfLmtmKXJldHVybiBhO3RyeXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4gY307YT1fLmtmLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDpiLGNyZWF0ZVNjcmlwdDpiLGNyZWF0ZVNjcmlwdFVSTDpifSl9Y2F0Y2goYyl7fXJldHVybiBhfTtfLmJsPWZ1bmN0aW9uKCl7YWw9PT12b2lkIDAmJihhbD0kaygpKTtyZXR1cm4gYWx9O18uZGw9ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIF8uY2wmJmEgaW5zdGFuY2VvZiBfLmNsfTtfLmVsPWZ1bmN0aW9uKGEpe2lmKF8uZGwoYSkpcmV0dXJuIGEuZzt0aHJvdyBFcnJvcigiRyIpO307Z2w9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5ibCgpO2E9Yj9iLmNyZWF0ZUhUTUwoYSk6YTtyZXR1cm4gbmV3IGZsKGEpfTsKXy5obD1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgZmwpcmV0dXJuIGEuZzt0aHJvdyBFcnJvcigiRyIpO307aWw9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBmbD9hOmdsKFN0cmluZyhhKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiZhcG9zOyIpKX07CmxsPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9YS5sZW5ndGgsZT0wLGY9W10sZyxoLGs9MDtrPGQ7KXtzd2l0Y2goZSl7Y2FzZSAwOnZhciBtPWEuaW5kZXhPZigiPCIsayk7aWYobTwwKXtpZihjLmxlbmd0aD09PTApcmV0dXJuIGE7Yy5wdXNoKGEuc3Vic3RyaW5nKGspKTtrPWR9ZWxzZSBjLnB1c2goYS5zdWJzdHJpbmcoayxtKSksaD1tLGs9bSsxLGpsPyhrbC5sYXN0SW5kZXg9ayxtPWtsLmV4ZWMoYSkpOihrbC5sYXN0SW5kZXg9MCxtPWtsLmV4ZWMoYS5zdWJzdHJpbmcoaykpKSxtPyhmPVsiPCIsbVswXV0sZz1tWzFdLGU9MSxrKz1tWzBdLmxlbmd0aCk6Yy5wdXNoKCI8Iik7YnJlYWs7Y2FzZSAxOm09YS5jaGFyQXQoaysrKTtzd2l0Y2gobSl7Y2FzZSAiJyI6Y2FzZSAnIic6dmFyIG49YS5pbmRleE9mKG0sayk7bjwwP2s9ZDooZi5wdXNoKG0sYS5zdWJzdHJpbmcoayxuKzEpKSxrPW4rMSk7YnJlYWs7Y2FzZSAiPiI6Zi5wdXNoKG0pO2MucHVzaChiKGYuam9pbigiIiksCmcpKTtlPTA7Zj1bXTtoPWc9bnVsbDticmVhaztkZWZhdWx0OmYucHVzaChtKX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fWU9PT0xJiZrPj1kJiYoaz1oKzEsYy5wdXNoKCI8IiksZT0wLGY9W10saD1nPW51bGwpfXJldHVybiBjLmpvaW4oIiIpfTtfLm9sPWZ1bmN0aW9uKGEsYixjLGQpeyhiPWIoY3x8bWwsZCkpJiZiLmkmJmE/Yi5pKGEpOihiPV8ubmwoYiksYS5pbm5lckhUTUw9Xy5obChiKSl9O18ubmw9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uVWQoYSk/YS5uZCYmKGE9YS5uZCgpLGEgaW5zdGFuY2VvZiBmbCk/YTppbCgielNveXoiKTppbChTdHJpbmcoYSkpfTtfLnBsPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO3JldHVybntpZDooYj1hLlBiKCkpIT1udWxsP2I6bnVsbCxnaXZlbk5hbWU6KGM9YS5TZCgpKSE9bnVsbD9jOm51bGwsZGlzcGxheU5hbWU6KGQ9YS5SZCgpKSE9bnVsbD9kOm51bGwscHJvZmlsZVBpY3R1cmU6KGU9YS5UZCgpKSE9bnVsbD9lOm51bGx9fTsKZmw9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9O2ZsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcrIiJ9O18ucmw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oYnx8ZG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK2EpfTtfLnNsPWZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8ZG9jdW1lbnQ7Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lP2E9Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpWzBdOihjPWRvY3VtZW50LGE/YT0oYnx8YykucXVlcnlTZWxlY3RvcihhPyIuIithOiIiKTooYj1ifHxjLGE9KGE/Yi5xdWVyeVNlbGVjdG9yQWxsKGE/Ii4iK2E6IiIpOmIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSlbMF18fG51bGwpKTtyZXR1cm4gYXx8bnVsbH07Xy50bD1mdW5jdGlvbihhKXtmb3IodmFyIGI7Yj1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYil9OwpfLnVsPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnBhcmVudE5vZGU/YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpOm51bGx9O18udmw9ZnVuY3Rpb24oYSxiKXtpZighYXx8IWIpcmV0dXJuITE7aWYoYS5jb250YWlucyYmYi5ub2RlVHlwZT09MSlyZXR1cm4gYT09Ynx8YS5jb250YWlucyhiKTtpZih0eXBlb2YgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiE9InVuZGVmaW5lZCIpcmV0dXJuIGE9PWJ8fCEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpO2Zvcig7YiYmYSE9YjspYj1iLnBhcmVudE5vZGU7cmV0dXJuIGI9PWF9O18ud2w9ZnVuY3Rpb24oKXt0aGlzLmc9Xy53LmRvY3VtZW50fHxkb2N1bWVudH07Xy53bC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYSxiKXthLmFwcGVuZENoaWxkKGIpfTtfLndsLnByb3RvdHlwZS5oPV8udWw7Xy53bC5wcm90b3R5cGUuY29udGFpbnM9Xy52bDt2YXIgQWw7Xy54bD17fTtfLnlsPXt9O18uemw9e307QWw9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigic2EiKTt9O0FsLnByb3RvdHlwZS5FYz1udWxsO0FsLnByb3RvdHlwZS5UYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnR9O0FsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnR9O0FsLnByb3RvdHlwZS5uZD1mdW5jdGlvbigpe2lmKHRoaXMuRmMhPT1fLnhsKXRocm93IEVycm9yKCJ0YSIpO3JldHVybiBnbCh0aGlzLnRvU3RyaW5nKCkpfTt2YXIgQmw9ZnVuY3Rpb24oKXtBbC5jYWxsKHRoaXMpfTtfLllkKEJsLEFsKTtCbC5wcm90b3R5cGUuRmM9Xy54bDt2YXIgSGwsamwsa2wsT2wsUGwsRmwsUWwsRWwsUmwsTWwsR2w7Xy5DbD1mdW5jdGlvbihhKXtpZihhIT1udWxsKXN3aXRjaChhLkVjKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAtMTpyZXR1cm4tMTtjYXNlIDA6cmV0dXJuIDB9cmV0dXJuIG51bGx9O18uVj1mdW5jdGlvbihhKXtyZXR1cm4gXy5EbChhLF8ueGwpP2E6YSBpbnN0YW5jZW9mIGZsPygwLF8uVSkoXy5obChhKS50b1N0cmluZygpKTooMCxfLlUpKFN0cmluZyhTdHJpbmcoYSkpLnJlcGxhY2UoRWwsRmwpLF8uQ2woYSkpfTtfLlU9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihjKXt0aGlzLmNvbnRlbnQ9Y31iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYyxkKXtjPW5ldyBiKFN0cmluZyhjKSk7ZCE9PXZvaWQgMCYmKGMuRWM9ZCk7cmV0dXJuIGN9fShCbCk7SGw9ZnVuY3Rpb24oYSl7cmV0dXJuIGxsKFN0cmluZyhhKSxmdW5jdGlvbigpe3JldHVybiIifSkucmVwbGFjZShHbCwiJmx0OyIpfTtqbD1SZWdFeHAucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJzdGlja3kiKTsKa2w9bmV3IFJlZ0V4cCgoamw/IiI6Il4iKSsiKD86IXwvPyhbYS16QS1aXVthLXpBLVowLTk6LV0qKSkiLGpsPyJneSI6ImciKTtfLlc9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uRGwoYSxfLnhsKT9fLklsKEhsKGEuVGEoKSkpOlN0cmluZyhhKS5yZXBsYWNlKEVsLEZsKX07Xy5MbD1mdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoXy5KbCxfLktsKX07Xy5ObD1mdW5jdGlvbihhKXtfLkRsKGEsXy55bCl8fF8uRGwoYSxfLnpsKT9hPVN0cmluZyhhKS5yZXBsYWNlKF8uSmwsXy5LbCk6YSBpbnN0YW5jZW9mIF8uUmM/YT1fLkxsKF8uU2MoYSkpOiJmdW5jdGlvbiI9PXR5cGVvZiBfLmNsJiZhIGluc3RhbmNlb2YgXy5jbD9hPV8uTGwoXy5lbChhKS50b1N0cmluZygpKTooYT1TdHJpbmcoYSksYT1NbC50ZXN0KGEpP2EucmVwbGFjZShfLkpsLF8uS2wpOiJhYm91dDppbnZhbGlkI3pTb3l6Iik7cmV0dXJuIGF9OwpfLkRsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEhPW51bGwmJmEuRmM9PT1ifTtPbD1mdW5jdGlvbigpe0FsLmNhbGwodGhpcyl9O18uSihPbCxCbCk7Xy5YPWZ1bmN0aW9uKGEsYil7YS5nIT09dm9pZCAwP2EuZy5wdXNoKGIpOmEuY29udGVudCs9YjtyZXR1cm4gYX07Xy5ZPWZ1bmN0aW9uKGEsYil7YS5nIT09dm9pZCAwP2EuZy5wdXNoKGIpOmIgaW5zdGFuY2VvZiBPbD9iLmNvbnRlbnQhPT12b2lkIDA/YS5jb250ZW50Kz1iLlRhKCk6KGEuZz1bYS5jb250ZW50LGJdLGEuY29udGVudD12b2lkIDApOmEuY29udGVudCs9YjtyZXR1cm4gYX07T2wucHJvdG90eXBlLlRhPWZ1bmN0aW9uKCl7aWYodGhpcy5jb250ZW50IT09dm9pZCAwKXJldHVybiB0aGlzLmNvbnRlbnQ7Zm9yKHZhciBhPSIiLGI9Xy51KHRoaXMuZyksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYSs9Yy52YWx1ZTtyZXR1cm4gYX07T2wucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGEoKX07Cl8uWj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt0aGlzLmNvbnRlbnQ9IiJ9YS5wcm90b3R5cGU9T2wucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgYX19KCk7UGw9eyJceDAwIjoiJiMwOyIsIlx0IjoiJiM5OyIsIlxuIjoiJiMxMDsiLCJcdiI6IiYjMTE7IiwiXGYiOiImIzEyOyIsIlxyIjoiJiMxMzsiLCIgIjoiJiMzMjsiLCciJzoiJnF1b3Q7IiwiJiI6IiZhbXA7IiwiJyI6IiYjMzk7IiwiLSI6IiYjNDU7IiwiLyI6IiYjNDc7IiwiPCI6IiZsdDsiLCI9IjoiJiM2MTsiLCI+IjoiJmd0OyIsImAiOiImIzk2OyIsIlx1MDA4NSI6IiYjMTMzOyIsIlx1MDBhMCI6IiYjMTYwOyIsIlx1MjAyOCI6IiYjODIzMjsiLCJcdTIwMjkiOiImIzgyMzM7In07Rmw9ZnVuY3Rpb24oYSl7cmV0dXJuIFBsW2FdfTsKUWw9eyJceDAwIjoiJTAwIiwiXHUwMDAxIjoiJTAxIiwiXHUwMDAyIjoiJTAyIiwiXHUwMDAzIjoiJTAzIiwiXHUwMDA0IjoiJTA0IiwiXHUwMDA1IjoiJTA1IiwiXHUwMDA2IjoiJTA2IiwiXHUwMDA3IjoiJTA3IiwiXGIiOiIlMDgiLCJcdCI6IiUwOSIsIlxuIjoiJTBBIiwiXHYiOiIlMEIiLCJcZiI6IiUwQyIsIlxyIjoiJTBEIiwiXHUwMDBlIjoiJTBFIiwiXHUwMDBmIjoiJTBGIiwiXHUwMDEwIjoiJTEwIiwiXHUwMDExIjoiJTExIiwiXHUwMDEyIjoiJTEyIiwiXHUwMDEzIjoiJTEzIiwiXHUwMDE0IjoiJTE0IiwiXHUwMDE1IjoiJTE1IiwiXHUwMDE2IjoiJTE2IiwiXHUwMDE3IjoiJTE3IiwiXHUwMDE4IjoiJTE4IiwiXHUwMDE5IjoiJTE5IiwiXHUwMDFhIjoiJTFBIiwiXHUwMDFiIjoiJTFCIiwiXHUwMDFjIjoiJTFDIiwiXHUwMDFkIjoiJTFEIiwiXHUwMDFlIjoiJTFFIiwiXHUwMDFmIjoiJTFGIiwiICI6IiUyMCIsJyInOiIlMjIiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLAoiPCI6IiUzQyIsIj4iOiIlM0UiLCJcXCI6IiU1QyIsInsiOiIlN0IiLCJ9IjoiJTdEIiwiXHUwMDdmIjoiJTdGIiwiXHUwMDg1IjoiJUMyJTg1IiwiXHUwMGEwIjoiJUMyJUEwIiwiXHUyMDI4IjoiJUUyJTgwJUE4IiwiXHUyMDI5IjoiJUUyJTgwJUE5IiwiXHVmZjAxIjoiJUVGJUJDJTgxIiwiXHVmZjAzIjoiJUVGJUJDJTgzIiwiXHVmZjA0IjoiJUVGJUJDJTg0IiwiXHVmZjA2IjoiJUVGJUJDJTg2IiwiXHVmZjA3IjoiJUVGJUJDJTg3IiwiXHVmZjA4IjoiJUVGJUJDJTg4IiwiXHVmZjA5IjoiJUVGJUJDJTg5IiwiXHVmZjBhIjoiJUVGJUJDJThBIiwiXHVmZjBiIjoiJUVGJUJDJThCIiwiXHVmZjBjIjoiJUVGJUJDJThDIiwiXHVmZjBmIjoiJUVGJUJDJThGIiwiXHVmZjFhIjoiJUVGJUJDJTlBIiwiXHVmZjFiIjoiJUVGJUJDJTlCIiwiXHVmZjFkIjoiJUVGJUJDJTlEIiwiXHVmZjFmIjoiJUVGJUJDJTlGIiwiXHVmZjIwIjoiJUVGJUJDJUEwIiwiXHVmZjNiIjoiJUVGJUJDJUJCIiwKIlx1ZmYzZCI6IiVFRiVCQyVCRCJ9O18uS2w9ZnVuY3Rpb24oYSl7cmV0dXJuIFFsW2FdfTtFbD0vW1x4MDBceDIyXHgyNlx4MjdceDNjXHgzZV0vZztSbD0vW1x4MDBceDIyXHgyN1x4M2NceDNlXS9nO18uSmw9L1tceDAwLSBceDIyXHgyNy1ceDI5XHgzY1x4M2VcXFx4N2JceDdkXHg3Zlx4ODVceGEwXHUyMDI4XHUyMDI5XHVmZjAxXHVmZjAzXHVmZjA0XHVmZjA2LVx1ZmYwY1x1ZmYwZlx1ZmYxYVx1ZmYxYlx1ZmYxZFx1ZmYxZlx1ZmYyMFx1ZmYzYlx1ZmYzZF0vZztNbD0vXlteJjpcLz8jXSooPzpbXC8/I118JCl8Xmh0dHBzPzp8XmZpbGVzeXN0ZW06aHR0cHM/OnxeZnRwOnxeZGF0YTppbWFnZVwvW2EtejAtOSstXSs7YmFzZTY0LFthLXowLTkrXC9dKz0qJHxeYmxvYjovaTtfLklsPWZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSkucmVwbGFjZShSbCxGbCl9O0dsPS88L2c7Xy5TbD0iMCIuY29kZVBvaW50QXQoMCk7dmFyIFRsO1RsPWZ1bmN0aW9uKGEpe3JldHVybiBhJTEwPT0xJiZhJTEwMCE9MTE/Im9uZSI6YSUxMD09MiYmYSUxMDAhPTEyPyJ0d28iOmElMTA9PTMmJmElMTAwIT0xMz8iZmV3Ijoib3RoZXIifTtfLlVsPVRsPWZ1bmN0aW9uKCl7cmV0dXJuIm90aGVyIn07dmFyIFZsO1ZsPWZ1bmN0aW9uKGEsYil7aWYodm9pZCAwPT09Yil7Yj1hKyIiO3ZhciBjPWIuaW5kZXhPZigiLiIpO2I9TWF0aC5taW4oYz09PS0xPzA6Yi5sZW5ndGgtYy0xLDMpfWM9TWF0aC5wb3coMTAsYik7Yj17S2U6YixmOihhKmN8MCklY307cmV0dXJuKGF8MCk9PTEmJmIuS2U9PTA/Im9uZSI6Im90aGVyIn07Xy5XbD1WbD1mdW5jdGlvbihhKXtyZXR1cm4gYT09MT8ib25lIjoib3RoZXIifTtfLlhsPVJlZ0V4cCgiJyhbe30jXS4qPyknIiwiZyIpO18uWWw9UmVnRXhwKCInJyIsImciKTt2YXIgbWw9e307Xy5abD1mdW5jdGlvbihhKXthPWF8fHt9O3JldHVybihhPWEuaWRlbnRpZmllcik/IkxvZ2dldCBwXHUwMGU1IHNvbSAiK2E6IlBcdTAwZTVsb2dnZXQifTtfLiRsPWZ1bmN0aW9uKGEpe3JldHVybigwLF8uVSkoKGE/JzxzdmcgY2xhc3M9IicrXy5XKCJCejExMmMiKSsiICIrXy5XKCJCejExMmMtRTNEeVlkIikrIiAiK18uVygiQnoxMTJjLXVheEw0ZSIpKyciIGFyaWEtaGlkZGVuPXRydWUgdmlld0JveD0iMCAwIDE5MiAxOTIiPic6JzxzdmcgY2xhc3M9IicrXy5XKCJmRlc3d2MtaWJuQzZiLUhpYVl2ZiIpKyIgIitfLlcoInpURVRhZS1tek5wc2YtQnoxMTJjIikrIiAiK18uVygibjFVdVgtRGtmalkiKSsnIiBhcmlhLWhpZGRlbj10cnVlIHZpZXdCb3g9IjAgMCAxOTIgMTkyIj4nKSsnPHBhdGggZmlsbD0iIzMxODVGRiIgZD0iTTk2IDhDNDcuNDIgOCA4IDQ3LjQyIDggOTZzMzkuNDIgODggODggODggODgtMzkuNDIgODgtODhTMTQ0LjU4IDggOTYgOHoiLz48cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNOTYgODZjMTIuMTcgMCAyMi05LjgzIDIyLTIycy05LjgzLTIyLTIyLTIyLTIyIDkuODMtMjIgMjIgOS44MyAyMiAyMiAyMnpNOTYgOTljLTI2Ljg5IDAtNDggMTMtNDggMjUgMTAuMTcgMTUuNjQgMjcuOTcgMjYgNDggMjZzMzcuODMtMTAuMzYgNDgtMjZjMC0xMi0yMS4xMS0yNS00OC0yNXoiLz48L3N2Zz4nKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBkbSxobSxpbSxqbSxrbTtfLmFtPWZ1bmN0aW9uKCl7cmV0dXJuIVtfLk9hKCkmJiFfLnlkKCkmJiFfLnhkKCksXy5PYSgpJiZfLldhKCksXy5LYSgpXS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhfSl9OwpfLmVtPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITA6YztpZihiJiZfLk8oYiw3KT09PTIpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPXt9O2ImJihkPXtlZDpfLk8oYiw2KSxzaGFwZTpfLk8oYiwzKSxzaXplOl8uTyhiLDEpLHRleHQ6Xy5PKGIsNSksdGhlbWU6Xy5PKGIsMiksd2lkdGg6Xy5TayhiLDQpLFNhOmN9KTtfLm9sKGEsYm0sZCl9ZWxzZSBiJiZfLk8oYiwxMCk9PT0yJiYhXy5JKCJkaXNhYmxlX3BlcnNvbmFsaXplZF9idXR0b24iKT8oYz1jPT09dm9pZCAwPyEwOmMsYiYmXy5WZShiLF8uWWssOCk/KGQ9e30sYiYmKGQ9e3NoYXBlOl8uTyhiLDMpLHRleHQ6Xy5PKGIsNSksdGhlbWU6Xy5PKGIsMiksd2lkdGg6Xy5TayhiLDQpLHhlOl8ucGwoXy5NKGIsXy5Zayw4KSkseWU6Xy5TayhiLDkpLFNhOmN9KSxfLm9sKGEsY20sZCkpOmRtKGEsYixjKSk6ZG0oYSxiLGMpfTsKZG09ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPXt9O2ImJihkPXtlZDpfLk8oYiw2KSxzaGFwZTpfLk8oYiwzKSxzaXplOl8uTyhiLDEpLHRleHQ6Xy5PKGIsNSksdGhlbWU6Xy5PKGIsMiksd2lkdGg6Xy5TayhiLDQpLFNhOmN9KTtfLm9sKGEsZm0sZCl9O18uZ209ZnVuY3Rpb24oYSl7cmV0dXJuIF8ueGkoYSwxKX07aG09e307aW09ZnVuY3Rpb24oYSxiKXthPWEucmVwbGFjZSgvPFwvL2csIjxcXC8iKS5yZXBsYWNlKC9cXVxdPi9nLCJdXVxcPiIpO3JldHVybiBiP2EucmVwbGFjZSgvey9nLCIgXFx7IikucmVwbGFjZSgvfS9nLCIgXFx9IikucmVwbGFjZSgvXC9cKi9nLCIvICoiKS5yZXBsYWNlKC9cXCQvLCJcXCAiKTphfTtqbT1mdW5jdGlvbihhKXtyZXR1cm4gXy5EbChhLGhtKT9pbShhLlRhKCksITEpOmE9PW51bGw/IiI6aW0oU3RyaW5nKGEpLCEwKX07CmttPWZ1bmN0aW9uKCl7cmV0dXJuKDAsXy5VKSgnPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4IDQ4IiBjbGFzcz0iJytfLlcoIkxnYnNTZS1CejExMmMiKSsnIj48Zz48cGF0aCBmaWxsPSIjRUE0MzM1IiBkPSJNMjQgOS41YzMuNTQgMCA2LjcxIDEuMjIgOS4yMSAzLjZsNi44NS02Ljg1QzM1LjkgMi4zOCAzMC40NyAwIDI0IDAgMTQuNjIgMCA2LjUxIDUuMzggMi41NiAxMy4yMmw3Ljk4IDYuMTlDMTIuNDMgMTMuNzIgMTcuNzQgOS41IDI0IDkuNXoiLz48cGF0aCBmaWxsPSIjNDI4NUY0IiBkPSJNNDYuOTggMjQuNTVjMC0xLjU3LS4xNS0zLjA5LS4zOC00LjU1SDI0djkuMDJoMTIuOTRjLS41OCAyLjk2LTIuMjYgNS40OC00Ljc4IDcuMThsNy43MyA2YzQuNTEtNC4xOCA3LjA5LTEwLjM2IDcuMDktMTcuNjV6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNSIgZD0iTTEwLjUzIDI4LjU5Yy0uNDgtMS40NS0uNzYtMi45OS0uNzYtNC41OXMuMjctMy4xNC43Ni00LjU5bC03Ljk4LTYuMTlDLjkyIDE2LjQ2IDAgMjAuMTIgMCAyNGMwIDMuODguOTIgNy41NCAyLjU2IDEwLjc4bDcuOTctNi4xOXoiLz48cGF0aCBmaWxsPSIjMzRBODUzIiBkPSJNMjQgNDhjNi40OCAwIDExLjkzLTIuMTMgMTUuODktNS44MWwtNy43My02Yy0yLjE1IDEuNDUtNC45MiAyLjMtOC4xNiAyLjMtNi4yNiAwLTExLjU3LTQuMjItMTMuNDctOS45MWwtNy45OCA2LjE5QzYuNTEgNDIuNjIgMTQuNjIgNDggMjQgNDh6Ii8+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGg0OHY0OEgweiIvPjwvZz48L3N2Zz4nKX07Xy5sbT1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooXy5sbSxfLkQpO18ubD1fLmxtLnByb3RvdHlwZTtfLmwudGQ9ZnVuY3Rpb24oKXtyZXR1cm4gXy5MYihfLkwodGhpcywxKSl9O18ubC52ZD1mdW5jdGlvbigpe3JldHVybiBfLkxiKF8uTCh0aGlzLDIpKX07Xy5sLnNkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTGIoXy5MKHRoaXMsMykpfTtfLmwueGQ9ZnVuY3Rpb24oKXtyZXR1cm4gXy5NYihfLkwodGhpcyw0KSl9O18ubC51ZD1mdW5jdGlvbigpe3JldHVybiBfLkxiKF8uTCh0aGlzLDUpKX07Xy5sLnFkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTGIoXy5MKHRoaXMsNikpfTtfLmwud2Q9ZnVuY3Rpb24oKXtyZXR1cm4gXy5MYihfLkwodGhpcyw3KSl9O18ubC5yZD1mdW5jdGlvbigpe3JldHVybiBfLk1iKF8uTCh0aGlzLDkpKX07dmFyIHFtPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGs9Zz09PXZvaWQgMD8hMDpnO2g9aD09PXZvaWQgMD8hMTpoO2c9ZSYmZSE9PTE/Xy5WKG1tKGUpKTpfLlYobW0oMikpO3ZhciBtPV8uWigpO2s9IjxkaXYiKyhrPycgdGFiaW5kZXg9IjAiJzoiIikrJyByb2xlPSJidXR0b24iIGFyaWEtbGFiZWxsZWRieT0iYnV0dG9uLWxhYmVsIiBjbGFzcz0iJytfLlcoIm5zbTdCYi1IelY3bS1MZ2JzU2UiKSsiICIrKGg/Xy5XKCJCejExMmMtTGdic1NlIik6IiIpKyIgIjt2YXIgbj0iIjtzd2l0Y2goYil7Y2FzZSAyOm4rPSJwU3pPUC1TeFF1U2UiO2JyZWFrO2Nhc2UgMzpuKz0icHVyWlQtU3hRdVNlIjticmVhaztkZWZhdWx0Om4rPSJoSkR3TmQtU3hRdVNlIn1hPV8uWChfLlkoXy5YKG0saytfLlcobikrIiAiK18uVyhubShjKSkrIiAiK18uVyhvbShkKSkrJyInKyhmJiYhaD8nIHN0eWxlPSJ3aWR0aDonK18uVyhqbShmKSkrJ3B4OyBtYXgtd2lkdGg6NDAwcHg7IG1pbi13aWR0aDptaW4tY29udGVudDsiJzoKIiIpKyc+PGRpdiBjbGFzcz0iJytfLlcoIm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytfLlcoIm5zbTdCYi1IelY3bS1MZ2JzU2UtYk45N1BjLXNNNU1OYiIpKyIgIisoYT09PTI/Xy5XKCJvWHRmQmUtbDRlSFgiKToiIikrJyI+JykscG0oYz09PTJ8fGM9PT0zKSksKGg/IiI6JzxzcGFuIGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQiKSsnIj4nK18uVihtbShlKSkrIjwvc3Bhbj4iKSsnPHNwYW4gY2xhc3M9IicrXy5XKCJMNmNUY2UiKSsnIiBpZD0iYnV0dG9uLWxhYmVsIj4nK2cpO18uWShhLCIuIFx1MDBjNXBuZXMgaSBlbiBueSBmYW5lIik7Xy5YKGEsIjwvc3Bhbj48L2Rpdj48L2Rpdj4iKTtyZXR1cm4gYX0sbm09ZnVuY3Rpb24oYSl7dmFyIGI9IiI7c3dpdGNoKGEpe2Nhc2UgMjpiKz0iTUZTNGJlLXYzcFpiZi1JYTdRZmMgTUZTNGJlLUlhN1FmYyI7YnJlYWs7Y2FzZSAzOmIrPSJNRlM0YmUtSmFQVjJiLUlhN1FmYyBNRlM0YmUtSWE3UWZjIjsKYnJlYWs7Y2FzZSA1OmIrPSJpNXZ0NmUtdG85MTUtSWE3UWZjIGk1dnQ2ZS1JYTdRZmMiO2JyZWFrO2RlZmF1bHQ6Yis9Imk1dnQ2ZS1JYTdRZmMifXJldHVybiBifSxvbT1mdW5jdGlvbihhKXt2YXIgYj0iIjtzd2l0Y2goYSl7Y2FzZSAyOmIrPSJKR2NwTC1SYlJ6SyI7YnJlYWs7Y2FzZSA0OmIrPSJKR2NwTC1SYlJ6SyI7YnJlYWs7ZGVmYXVsdDpiKz0idWF4TDRlLVJiUnpLIn1yZXR1cm4gYn0sbW09ZnVuY3Rpb24oYSl7dmFyIGI9IiI7c3dpdGNoKGEpe2Nhc2UgMTpiKz0iTG9nZyBwXHUwMGU1IjticmVhaztjYXNlIDM6Yis9IlJlZ2lzdHJlciBkZWcgbWVkIEdvb2dsZSI7YnJlYWs7Y2FzZSA0OmIrPSJGb3J0c2V0dCBtZWQgR29vZ2xlIjticmVhaztkZWZhdWx0OmIrPSJMb2dnIHBcdTAwZTUgbWVkIEdvb2dsZSJ9cmV0dXJuIGJ9LHJtPWZ1bmN0aW9uKGEsYil7dmFyIGM9IiI7aWYoYilzd2l0Y2goYSl7Y2FzZSA0OmMrPSJGb3J0c2V0dCBzb20gIitiO2JyZWFrO2RlZmF1bHQ6Yys9CiJMb2dnIHBcdTAwZTUgc29tICIrYn1lbHNlIGMrPW1tKGEpO3JldHVybiBjfSxwbT1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/ITE6YTtyZXR1cm4gXy5ZKF8uWigpLGE/Xy5YKF8uWShfLlgoXy5aKCksJzxkaXYgY2xhc3M9IicrXy5XKCJuc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGYiKSsnIj48ZGl2IGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMiKSsnIj4nKSxrbSgpKSwiPC9kaXY+PC9kaXY+Iik6Xy5YKF8uWShfLlgoXy5aKCksJzxkaXYgY2xhc3M9IicrXy5XKCJuc203QmItSHpWN20tTGdic1NlLUJ6MTEyYyIpKyciPicpLGttKCkpLCI8L2Rpdj4iKSl9O3ZhciBmbT1mdW5jdGlvbihhKXthPWF8fHt9O3ZhciBiPWEuU2EsYz1hLmVkLGQ9YS5zaGFwZSxlPWEuc2l6ZSxmPWEudGV4dCxnPWEudGhlbWU7YT1hLndpZHRoO2I9Yj09PXZvaWQgMD8hMDpiO3JldHVybiBfLlkoXy5aKCkscW0oYyxlLGcsZCxmLGEsYikpfSxibT1mdW5jdGlvbihhKXthPWF8fHt9O3ZhciBiPWEuU2EsYz1hLnNoYXBlLGQ9YS5zaXplLGU9YS50ZXh0O2E9YS50aGVtZTtiPWI9PT12b2lkIDA/ITA6YjtyZXR1cm4gXy5ZKF8uWigpLHFtKHZvaWQgMCxkLGEsYyxlLHZvaWQgMCxiLCEwKSl9LGNtPWZ1bmN0aW9uKGEpe3ZhciBiPWEuU2EsYz1hLnhlLGQ9YS55ZSxlPWEuc2hhcGUsZj1hLnRleHQsZz1hLnRoZW1lO2E9YS53aWR0aDt2YXIgaD1iPT09dm9pZCAwPyEwOmI7Yj1fLlooKTtoPWg9PT12b2lkIDA/ITA6aDtlPV8uWChfLlooKSwiPGRpdiIrKGg/JyB0YWJpbmRleD0iMCInOiIiKSsnIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbGxlZGJ5PSJidXR0b24tbGFiZWwiIGNsYXNzPSInKwpfLlcoIm5zbTdCYi1IelY3bS1MZ2JzU2UiKSsiICIrXy5XKCJqVmVTRWUiKSsiICIrXy5XKG5tKGcpKSsiICIrXy5XKG9tKGUpKSsnIiBzdHlsZT0ibWF4LXdpZHRoOjQwMHB4OyBtaW4td2lkdGg6MjAwcHg7JysoYT8id2lkdGg6IitfLlcoam0oYSkpKyJweDsiOiIiKSsnIj48ZGl2IGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmUiKSsnIj48L2Rpdj48ZGl2IGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZS1iTjk3UGMtc001TU5iIikrJyI+Jyk7YT1jLmdpdmVuTmFtZT9jLmdpdmVuTmFtZTpjLmRpc3BsYXlOYW1lO2MucHJvZmlsZVBpY3R1cmU/KF8uWChlLCc8aW1nIGNsYXNzPSInK18uVygibjFVdVgtRGtmalkiKSsnIiBzcmM9IicrXy5XKF8uTmwoYy5wcm9maWxlUGljdHVyZSkpKyciIGFsdD0iJyksaD0iUHJvZmlsYmlsZGV0IHRpbCAiK18uVyhhP2E6Yy5pZCksXy5ZKGUsXy5JbChoKSksXy5YKGUsJyI+JykpOl8uWShlLF8uJGwoKSk7Xy5YKF8uWShfLlgoXy5ZKF8uWChlLAonPGRpdiBjbGFzcz0iJytfLlcoIm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIikrJyI+PGRpdiBjbGFzcz0iJytfLlcoInNzSlJJZiIpKyciPicrXy5WKHJtKGYsYSkpKyc8L2Rpdj48ZGl2IGNsYXNzPSInK18uVygiSzRlZmZmIikrJyI+PGRpdiBjbGFzcz0iJytfLlcoImZtY21TIikrJyI+JytfLlYoYy5pZCkrIjwvZGl2PiIpLGQ+MT8oMCxfLlUpKCc8c3ZnIGNsYXNzPSInK18uVygiQnoxMTJjIikrIiAiK18uVygiQnoxMTJjLUUzRHlZZCIpKyciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNy40MSA4LjU5TDEyIDEzLjE3bDQuNTktNC41OEwxOCAxMGwtNiA2LTYtNiAxLjQxLTEuNDF6Ij48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgwVjB6Ij48L3BhdGg+PC9zdmc+Jyk6IiIpLCI8L2Rpdj48L2Rpdj4iKSxwbShnPT09Mnx8Zz09PTMpKSwnPC9kaXY+PGRpdiBpZD0iYnV0dG9uLWxhYmVsIiBjbGFzcz0iJysKXy5XKCJMNmNUY2UiKSsnIj4nK18uVihybShmLGEpKSsiLCAiK18uVihjLmlkKSk7Xy5ZKGUsIi4gXHUwMGM1cG5lcyBpIGVuIG55IGZhbmUiKTtfLlgoZSwiPC9kaXY+PC9kaXY+Iik7cmV0dXJuIF8uWShiLGUpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFZnLFdnLFhnLFlnLGNoLGRoLGVoLGhoLG9oLFVnLHBoLHFoLHNoLGtoLGxoLHdoLHloLHhoLGJoLGFoLFpnLCRnOwpWZz1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIG5ldyBVZyhfLm9iKGEpLGIpO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIG5ldyBVZyhuZXcgVWludDhBcnJheShhKSxiKTtpZihhLmNvbnN0cnVjdG9yPT09VWludDhBcnJheSlyZXR1cm4gbmV3IFVnKGEsITEpO2lmKGEuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcilyZXR1cm4gYT1uZXcgVWludDhBcnJheShhKSxuZXcgVWcoYSwhMSk7aWYoYS5jb25zdHJ1Y3Rvcj09PV8uY2MpcmV0dXJuIGI9Xy5DZShhKXx8bmV3IFVpbnQ4QXJyYXkoMCksbmV3IFVnKGIsITAsYSk7aWYoYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIGE9YS5jb25zdHJ1Y3Rvcj09PVVpbnQ4QXJyYXk/YTpuZXcgVWludDhBcnJheShhLmJ1ZmZlcixhLmJ5dGVPZmZzZXQsYS5ieXRlTGVuZ3RoKSxuZXcgVWcoYSwhMSk7dGhyb3cgRXJyb3IoKTt9O1dnPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoInIiKTt9OwpYZz1mdW5jdGlvbihhLGIpe2I9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGIpO3JldHVybiBhPT1udWxsP2I6YStifTtZZz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jLmc7YVtiXT1kP2Z1bmN0aW9uKGYsZyxoKXtyZXR1cm4gZShmLGcsaCxkKX06ZX07CmNoPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXNbWmddLGY9dGhpc1skZ10sZz1fLmljKHZvaWQgMCxlLllhKSxoPV8uVWIoYSk7aWYoaCl7dmFyIGs9ITEsbT1lLk9iO2lmKG0pe2U9ZnVuY3Rpb24oeCx5LEMpe2lmKEMubGVuZ3RoIT09MClpZihtW3ldKWZvcih4PV8udShDKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7eT1haCh5LnZhbHVlKTt0cnl7az0hMCxmKGcseSl9ZmluYWxseXtiaCh5KX19ZWxzZSBkPT1udWxsfHxkKGEseSxDKX07aWYoYj09bnVsbCloLnNiKGUpO2Vsc2UgaWYoaCE9bnVsbCl7dmFyIG49aFtiXTtuJiZlKGgsYixuKX1pZihrKXt2YXIgcT1hW18uQV18MDtpZihxJjImJnEmMjA0OCYmKGM9PW51bGx8fCFjLnZlKSl0aHJvdyBFcnJvcigpO3ZhciBwPXEmMTI4P18uTGM6dm9pZCAwLHI9ZnVuY3Rpb24oeCx5KXtpZihfLnVjKGEseCxwKSE9bnVsbClzd2l0Y2goYz09bnVsbD92b2lkIDA6Yy5lZil7Y2FzZSAxOnJldHVybjtkZWZhdWx0OnRocm93IEVycm9yKCk7Cn15IT1udWxsJiYocT1fLnRjKGEscSx4LHkscCkpO2RlbGV0ZSBoW3hdfTtiPT1udWxsP18uQWIoZyxnW18uQV18MCxmdW5jdGlvbih4LHkpe3IoeCx5KX0pOnIoYixfLnVjKGcsYixwKSl9fX19O2RoPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9Yy5nLGcsaDthW2JdPWZ1bmN0aW9uKGssbSxuKXtyZXR1cm4gZihrLG0sbixofHwoaD1fLkhjKFpnLFlnLGRoLGQpLllhKSxnfHwoZz1laChkKSksZSl9fTsKZWg9ZnVuY3Rpb24oYSl7dmFyIGI9YVskZ107aWYoYiE9bnVsbClyZXR1cm4gYjt2YXIgYz1fLkhjKFpnLFlnLGRoLGEpO2I9Yy5aYz9mdW5jdGlvbihkLGUpe3JldHVybigwLF8uRWMpKGQsZSxjKX06ZnVuY3Rpb24oZCxlKXthOntmaCgpO3RyeXtmb3IoO2doKGUpJiZlLmghPTQ7KXt2YXIgZj1lLmksZz1jW2ZdO2lmKGc9PW51bGwpe3ZhciBoPWMuT2I7aWYoaCl7dmFyIGs9aFtmXTtpZihrKXt2YXIgbT1oaChrKTttIT1udWxsJiYoZz1jW2ZdPW0pfX19aWYoZz09bnVsbHx8IWcoZSxkLGYpKXt2YXIgbj1lLHE9bi5qO2loKG4pO3ZhciBwPW47aWYocC5KYil2YXIgcj12b2lkIDA7ZWxzZXt2YXIgeD1wLmcuZy1xO3AuZy5nPXE7bj12b2lkIDA7dmFyIHk9cC5nO3A9eDtpZihwPT0wKXI9Xy5qaCgpO2Vsc2V7dmFyIEM9a2goeSxwKTtpZih5LmxiJiZ5Lmwpbj15Lmguc3ViYXJyYXkoQyxDK3ApO2Vsc2V7dmFyIGthPXkuaDtwPUMrcDtuPUM9PT1wP25ldyBVaW50OEFycmF5KDApOl8uUGU/CmthLnNsaWNlKEMscCk6bmV3IFVpbnQ4QXJyYXkoa2Euc3ViYXJyYXkoQyxwKSl9cj1uLmxlbmd0aD09MD9fLmpoKCk6bmV3IF8uY2MobixfLkJlKX19dmFyIG5hPXA9bj12b2lkIDAsQWE9ZCxrYj1mLFJmPXI7UmYmJigobj0ocD0obmE9QWFbXy5UYl0pIT1udWxsP25hOkFhW18uVGJdPW5ldyBfLlliKVtrYl0pIT1udWxsP246cFtrYl09W10pLnB1c2goUmYpfX12YXIgU2Y9Xy5VYihkKTtTZiYmKFNmLmNjPWMuSGRbXy5mZl0pO3ZhciBUZj0hMDticmVhayBhfWNhdGNoKFVmKXtpZihVZiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IFVmO31maW5hbGx5e2xoPjAmJmxoLS19VGY9dm9pZCAwfXJldHVybiBUZn07YVskZ109YjthW18uZmZdPWNoLmJpbmQoYSk7cmV0dXJuIGJ9OwpoaD1mdW5jdGlvbihhKXthPV8uSmMoYSk7dmFyIGI9YVswXS5nO2lmKGE9YVsxXSl7dmFyIGM9ZWgoYSksZD1fLkhjKFpnLFlnLGRoLGEpLllhO3JldHVybiBmdW5jdGlvbihlLGYsZyl7cmV0dXJuIGIoZSxmLGcsZCxjKX19cmV0dXJuIGJ9O18ubWg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oYyxkKXthOnt2YXIgZT17eGI6ITB9O2QmJk9iamVjdC5hc3NpZ24oZSxkKTtjPWFoKGMsdm9pZCAwLHZvaWQgMCxlKTt0cnl7dmFyIGY9bmV3IGEsZz1mLkE7ZWgoYikoZyxjKTt2YXIgaD1mO2JyZWFrIGF9Y2F0Y2goayl7aWYoayBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGs7fWZpbmFsbHl7YmgoYyl9aD12b2lkIDB9cmV0dXJuIGh9fTsKXy5uaD1mdW5jdGlvbihhKXtzd2l0Y2goXy5PKGEsMSkpe2Nhc2UgMTpfLkgoIlRoZSBzcGVjaWZpZWQgdXNlciBpcyBub3Qgc2lnbmVkIGluLiIpO2JyZWFrO2Nhc2UgMjpfLkgoIlVzZXIgaGFzIG9wdGVkIG91dCBvZiB1c2luZyBHb29nbGUgU2lnbiBJbi4iKTticmVhaztjYXNlIDM6Xy5IKCJUaGUgZ2l2ZW4gY2xpZW50IElEIGlzIG5vdCBmb3VuZC4iKTticmVhaztjYXNlIDQ6Xy5IKCJUaGUgZ2l2ZW4gY2xpZW50IElEIGlzIG5vdCBhbGxvd2VkIHRvIHVzZSBHb29nbGUgU2lnbiBJbi4iKTticmVhaztjYXNlIDU6Xy5IKCJUaGUgZ2l2ZW4gb3JpZ2luIGlzIG5vdCBhbGxvd2VkIGZvciB0aGUgZ2l2ZW4gY2xpZW50IElELiIpO2JyZWFrO2Nhc2UgMjA6Xy5IKCJUaGUgZ2l2ZW4gbG9naW5fdXJpIGlzIG5vdCBhbGxvd2VkIGZvciB0aGUgZ2l2ZW4gY2xpZW50IElELiIpO2JyZWFrO2Nhc2UgNjpfLkgoIlJlcXVlc3QgZnJvbSB0aGUgc2FtZSBvcmlnaW4gaXMgZXhwZWN0ZWQuIik7CmJyZWFrO2Nhc2UgNzpfLkgoIkdvb2dsZSBTaWduIEluIGlzIG9ubHkgYWxsb3dlZCB3aXRoIEhUVFBTLiIpO2JyZWFrO2Nhc2UgODpfLkgoIlBhcmFtZXRlciAiK18uTihhLDIpKyIgaXMgbm90IHNldCBjb3JyZWN0bHkuIik7YnJlYWs7Y2FzZSA5Ol8uSCgiVGhlIGJyb3dzZXIgaXMgbm90IHN1cHBvcnRlZC4iKTticmVhaztjYXNlIDEyOl8uSCgiR29vZ2xlIFNpZ24gSW4gZG9lcyBub3Qgc3VwcG9ydCB3ZWIgdmlldy4iKTticmVhaztjYXNlIDE0Ol8uSCgiVGhlIGNsaWVudCBpcyByZXN0cmljdGVkIHRvIGFjY291bnRzIHdpdGhpbiBpdHMgb3JnYW5pemF0aW9uLiIpO2JyZWFrO2RlZmF1bHQ6Xy5IKCJBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLiIpfX07Xy5jYz1mdW5jdGlvbihhLGIpe2lmKGIhPT1fLkJlKXRocm93IEVycm9yKCJ3Iik7dGhpcy5nPWE7aWYoYSE9bnVsbCYmYS5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJ2Iik7fTsKXy5qaD1mdW5jdGlvbigpe3JldHVybiBvaHx8KG9oPW5ldyBfLmNjKG51bGwsXy5CZSkpfTtVZz1mdW5jdGlvbihhLGIsYyl7dGhpcy5idWZmZXI9YTtpZihjJiYhYil0aHJvdyBFcnJvcigpO3RoaXMuZz1ifTtwaD12b2lkIDA7Xy5ZYj1mdW5jdGlvbigpe307Xy5ZYi5wcm90b3R5cGUuc2I9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIHRoaXMpIWlzTmFOKGIpJiZhKHRoaXMsK2IsdGhpc1tiXSl9O18uWWIucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgXy5ZYjt0aGlzLnNiKGZ1bmN0aW9uKGIsYyxkKXthW2NdPV8uSWIoZCl9KTthLmNjPXRoaXMuY2M7cmV0dXJuIGF9Owp2YXIgcmg9W10sdGg9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz1hLmcsZD1jKzEwLGU9YS5oO2M8ZDspe3ZhciBmPWVbYysrXTtifD1mO2lmKChmJjEyOCk9PT0wKXJldHVybiBzaChhLGMpLCEhKGImMTI3KX10aHJvdyBFcnJvcigpO30sdWg9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5oPW51bGw7dGhpcy5sPSExO3RoaXMuZz10aGlzLmk9dGhpcy5qPTA7dGhpcy5pbml0KGEsYixjLGQpfTt1aC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1kPT09dm9pZCAwP3t9OmQ7ZD1lLmxiPT09dm9pZCAwPyExOmUubGI7ZT1lLnhiPT09dm9pZCAwPyExOmUueGI7dGhpcy5sYj1kO3RoaXMueGI9ZTthJiYoYT1WZyhhLHRoaXMueGIpLHRoaXMuaD1hLmJ1ZmZlcix0aGlzLmw9YS5nLHRoaXMuaj1ifHwwLHRoaXMuaT1jIT09dm9pZCAwP3RoaXMuaitjOnRoaXMuaC5sZW5ndGgsdGhpcy5nPXRoaXMuail9Owp1aC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmg9bnVsbDt0aGlzLmw9ITE7dGhpcy5nPXRoaXMuaT10aGlzLmo9MDt0aGlzLmxiPSExfTt1aC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmc9dGhpcy5qfTtzaD1mdW5jdGlvbihhLGIpe2EuZz1iO2lmKGI+YS5pKXRocm93IEVycm9yKCk7fTtraD1mdW5jdGlvbihhLGIpe2lmKGI8MCl0aHJvdyBFcnJvcigpO3ZhciBjPWEuZztiPWMrYjtpZihiPmEuaSl0aHJvdyBFcnJvcigpO2EuZz1iO3JldHVybiBjfTsKXy52aD1mdW5jdGlvbihhKXt2YXIgYj1hLmgsYz1hLmcsZD1iW2MrK10sZT1kJjEyNztpZihkJjEyOCYmKGQ9YltjKytdLGV8PShkJjEyNyk8PDcsZCYxMjgmJihkPWJbYysrXSxlfD0oZCYxMjcpPDwxNCxkJjEyOCYmKGQ9YltjKytdLGV8PShkJjEyNyk8PDIxLGQmMTI4JiYoZD1iW2MrK10sZXw9ZDw8MjgsZCYxMjgmJmJbYysrXSYxMjgmJmJbYysrXSYxMjgmJmJbYysrXSYxMjgmJmJbYysrXSYxMjgmJmJbYysrXSYxMjgpKSkpKXRocm93IEVycm9yKCk7c2goYSxjKTtyZXR1cm4gZX07bGg9MDt3aD1bXTt5aD1mdW5jdGlvbihhLGIsYyxkKXtpZihyaC5sZW5ndGgpe3ZhciBlPXJoLnBvcCgpO2UuaW5pdChhLGIsYyxkKTthPWV9ZWxzZSBhPW5ldyB1aChhLGIsYyxkKTt0aGlzLmc9YTt0aGlzLmo9dGhpcy5nLmc7dGhpcy5oPXRoaXMuaT0tMTt4aCh0aGlzLGQpfTt4aD1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2EuSmI9Yi5KYj09PXZvaWQgMD8hMTpiLkpifTsKYmg9ZnVuY3Rpb24oYSl7YS5nLmNsZWFyKCk7YS5pPS0xO2EuaD0tMTt3aC5sZW5ndGg8MTAwJiZ3aC5wdXNoKGEpfTt5aC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmcucmVzZXQoKTt0aGlzLmo9dGhpcy5nLmc7dGhpcy5oPXRoaXMuaT0tMX07CnZhciBnaD1mdW5jdGlvbihhKXt2YXIgYj1hLmc7aWYoYi5nPT1iLmkpcmV0dXJuITE7YS5qPWEuZy5nO3ZhciBjPV8udmgoYS5nKT4+PjA7Yj1jPj4+MztjJj03O2lmKCEoYz49MCYmYzw9NSkpdGhyb3cgRXJyb3IoKTtpZihiPDEpdGhyb3cgRXJyb3IoKTthLmk9YjthLmg9YztyZXR1cm4hMH0sZmg9ZnVuY3Rpb24oKXtpZihsaD49MTAwKXRocm93IG5ldyBTeW50YXhFcnJvcjtsaCsrfSxpaD1mdW5jdGlvbihhKXt0cnl7c3dpdGNoKGEuaCl7Y2FzZSAwOmEuaCE9MD9paChhKTp0aChhLmcpO2JyZWFrO2Nhc2UgMTp2YXIgYj1hLmc7c2goYixiLmcrOCk7YnJlYWs7Y2FzZSAyOmlmKGEuaCE9MilpaChhKTtlbHNle3ZhciBjPV8udmgoYS5nKT4+PjAsZD1hLmc7c2goZCxkLmcrYyl9YnJlYWs7Y2FzZSA1OnZhciBlPWEuZztzaChlLGUuZys0KTticmVhaztjYXNlIDM6ZmgoKTt2YXIgZj1hLmk7dHJ5e2Rve2lmKCFnaChhKSl0aHJvdyBFcnJvcigpO2lmKGEuaD09NCl7aWYoYS5pIT1mKXRocm93IEVycm9yKCk7CmJyZWFrfWloKGEpfXdoaWxlKDEpfWNhdGNoKGcpe2lmKGcgaW5zdGFuY2VvZiBSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBnO31maW5hbGx5e2xoPjAmJmxoLS19YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigpO319Y2F0Y2goZyl7aWYoZyBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGc7fX07eWgucHJvdG90eXBlLmw9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmcuaSxkPV8udmgodGhpcy5nKT4+PjA7ZD10aGlzLmcuZytkO3ZhciBlPWQtYztlPD0wJiYodGhpcy5nLmk9ZCxiKGEsdGhpcyx2b2lkIDAsdm9pZCAwLHZvaWQgMCksZT1kLXRoaXMuZy5nKTtpZihlKXRocm93IEVycm9yKCk7dGhpcy5nLmc9ZDt0aGlzLmcuaT1jfTt5aC5wcm90b3R5cGUudT1mdW5jdGlvbigpe3JldHVybiB0aCh0aGlzLmcpfTt5aC5wcm90b3R5cGUudj1mdW5jdGlvbigpe3JldHVybiBfLnZoKHRoaXMuZyl9Owp5aC5wcm90b3R5cGUubz1mdW5jdGlvbigpe3ZhciBhPV8udmgodGhpcy5nKT4+PjAsYj10aGlzLmcsYz1raChiLGEpO2I9Yi5oO2lmKF8uWmQpe3ZhciBkPWIsZTsoZT1xaCl8fChlPXFoPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiLHtmYXRhbDohMH0pKTtiPWMrYTtkPWM9PT0wJiZiPT09ZC5sZW5ndGg/ZDpkLnN1YmFycmF5KGMsYik7dHJ5e3ZhciBmPWUuZGVjb2RlKGQpfWNhdGNoKG0pe2lmKHBoPT09dm9pZCAwKXt0cnl7ZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzEyOF0pKX1jYXRjaChuKXt9dHJ5e2UuZGVjb2RlKG5ldyBVaW50OEFycmF5KFs5N10pKSxwaD0hMH1jYXRjaChuKXtwaD0hMX19IXBoJiYocWg9dm9pZCAwKTt0aHJvdyBtO319ZWxzZXthPWMrYTtmPVtdO2Zvcih2YXIgZz1udWxsLGgsaztjPGE7KWg9YltjKytdLGg8MTI4P2YucHVzaChoKTpoPDIyND9jPj1hP1dnKCk6KGs9YltjKytdLGg8MTk0fHwoayYxOTIpIT09MTI4PyhjLS0sV2coKSk6Zi5wdXNoKChoJjMxKTw8CjZ8ayY2MykpOmg8MjQwP2M+PWEtMT9XZygpOihrPWJbYysrXSwoayYxOTIpIT09MTI4fHxoPT09MjI0JiZrPDE2MHx8aD09PTIzNyYmaz49MTYwfHwoKGU9YltjKytdKSYxOTIpIT09MTI4PyhjLS0sV2coKSk6Zi5wdXNoKChoJjE1KTw8MTJ8KGsmNjMpPDw2fGUmNjMpKTpoPD0yNDQ/Yz49YS0yP1dnKCk6KGs9YltjKytdLChrJjE5MikhPT0xMjh8fChoPDwyOCkrKGstMTQ0KT4+MzAhPT0wfHwoKGU9YltjKytdKSYxOTIpIT09MTI4fHwoKGQ9YltjKytdKSYxOTIpIT09MTI4PyhjLS0sV2coKSk6KGg9KGgmNyk8PDE4fChrJjYzKTw8MTJ8KGUmNjMpPDw2fGQmNjMsaC09NjU1MzYsZi5wdXNoKChoPj4xMCYxMDIzKSs1NTI5NiwoaCYxMDIzKSs1NjMyMCkpKTpXZygpLGYubGVuZ3RoPj04MTkyJiYoZz1YZyhnLGYpLGYubGVuZ3RoPTApO2Y9WGcoZyxmKX1yZXR1cm4gZn07CmFoPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHdoLmxlbmd0aCl7dmFyIGU9d2gucG9wKCk7eGgoZSxkKTtlLmcuaW5pdChhLGIsYyxkKTtyZXR1cm4gZX1yZXR1cm4gbmV3IHloKGEsYixjLGQpfTtaZz1TeW1ib2woKTskZz1TeW1ib2woKTtfLnpoPWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihfLnpoLF8uRCk7Xy5BaD1mdW5jdGlvbigpe307Xy5BaC5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuZ2EmJndpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5nYSYmYi5nYShhKX0sMTAwKX07Xy5CaD1mdW5jdGlvbihhLGIsYyl7YyE9PXZvaWQgMCYmKGIuZGV0YWlsPWMpO2EuUihiKX07Xy5DaD1mdW5jdGlvbihhLGIsYyl7Xy5CaChhLHt0aW1lc3RhbXA6KG5ldyBEYXRlKS5nZXRUaW1lKCksdHlwZToidWlfY2hhbmdlIix1aUFjdGl2aXR5VHlwZTpifSxjKX07Xy5EaD1mdW5jdGlvbihhLGIsYyl7Xy5CaChhLHt0aW1lc3RhbXA6KG5ldyBEYXRlKS5nZXRUaW1lKCksdHlwZToiZXJyb3IiLGVycm9yVHlwZTpifSxjKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBhcjtfLmNyPWZ1bmN0aW9uKGEpe2lmKGFyJiZhLmRhdGFzZXQpcmV0dXJuIGEuZGF0YXNldDt2YXIgYj17fTthPWEuYXR0cmlidXRlcztmb3IodmFyIGM9MDtjPGEubGVuZ3RoOysrYyl7dmFyIGQ9YVtjXTtpZihkLm5hbWUubGFzdEluZGV4T2YoImRhdGEtIiwwKT09MCl7dmFyIGU9Xy5icihkLm5hbWUuc2xpY2UoNSkpO2JbZV09ZC52YWx1ZX19cmV0dXJuIGJ9OwpfLmRyPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWFbZF07aWYoZSl7dmFyIGY9ZC50b0xvd2VyQ2FzZSgpLGc9YltmXTtpZihnKXt2YXIgaD13aW5kb3c7c3dpdGNoKGcpe2Nhc2UgImJvb2wiOmUudG9Mb3dlckNhc2UoKT09PSJ0cnVlIj9jW2ZdPSEwOmUudG9Mb3dlckNhc2UoKT09PSJmYWxzZSI/Y1tmXT0hMTpfLkgoIlRoZSB2YWx1ZSBvZiAnIitkKyInIGNhbiBvbmx5IGJlIHRydWUgb3IgZmFsc2UuIENvbmZpZ3VyYXRpb24gaWdub3JlZC4iKTticmVhaztjYXNlICJudW0iOmU9TnVtYmVyKGUpO2lzTmFOKGUpP18uSCgiRXhwZWN0ZWQgYSBudW1iZXIgZm9yICciK2QrIicuIENvbmZpZ3VyYXRpb24gaWdub3JlZC4iKTpjW2ZdPWU7YnJlYWs7Y2FzZSAiZnVuYyI6dHlwZW9mIGhbZV09PT0iZnVuY3Rpb24iP2NbZl09aFtlXTpfLkgoIlRoZSB2YWx1ZSBvZiAnIitkKyInIGlzIG5vdCBhIGZ1bmN0aW9uLiBDb25maWd1cmF0aW9uIGlnbm9yZWQuIik7CmJyZWFrO2Nhc2UgInN0ciI6Y1tmXT1lO2JyZWFrO2Nhc2UgIm9yaWdpbiI6Y1tmXT1lLmluZGV4T2YoIiwiKT49MD9lLnNwbGl0KCIsIik6ZTticmVhaztjYXNlICJjbGFpbXMiOmNbZl09ZS5pbmRleE9mKCIsIik+PTA/ZS5zcGxpdCgiLCIpOmU7YnJlYWs7ZGVmYXVsdDpfLkgoIlVucmVjb2duaXplZCB0eXBlLiBDb25maWd1cmF0aW9uIGlnbm9yZWQuIil9fX19cmV0dXJuIGN9O18uYnI9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC9cLShbYS16XSkvZyxmdW5jdGlvbihiLGMpe3JldHVybiBjLnRvVXBwZXJDYXNlKCl9KX07YXI9IV8ua2UmJiFfLlBhKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uZXI9ZnVuY3Rpb24oYSxiLGMpe2Iuc2VudGluZWw9Im9uZXRhcF9nb29nbGUiO18uRSgiTWVzc2FnZSBzZW50IHRvICIrYysiLiAiK0pTT04uc3RyaW5naWZ5KGIpLCJNZXNzYWdlIFV0aWwiKTthLnBvc3RNZXNzYWdlKGIsYyl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgaHIsanIscHIsbHIsdHIsdnI7Xy5ncj1mdW5jdGlvbihhKXtfLmVyKHdpbmRvdy5wYXJlbnQsYSxfLmZyKX07aHI9ZnVuY3Rpb24oKXt0aGlzLmg9dm9pZCAwO3RoaXMuZz17fX07Xy5vcj1mdW5jdGlvbihhLGIsYyl7aXI/Xy5HKCJBIHByZXZpb3VzIGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byB2ZXJpZnkgdGhlIHBhcmVudCBvcmlnaW4gYW5kIGlzIHN0aWxsIGJlaW5nIHByb2Nlc3NlZC4iKTpfLmZyPyhfLkUoIlBhcmVudCBvcmlnaW4gaGFzIGFscmVhZHkgYmVlbiB2ZXJpZmllZC4iKSxiJiZiKCkpOmpyKGEpPyhrcj1hLGxyKCksYT1fLndkKCksXy5lcih3aW5kb3cucGFyZW50LHtjb21tYW5kOiJpbnRlcm1lZGlhdGVfaWZyYW1lX3JlYWR5Iixub25jZTphfSwiKiIpLGlyPWEsbXI9Yixucj1jKTpfLkgoIkludmFsaWQgb3JpZ2luIHByb3ZpZGVkLiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGFuZCBzZWN1cmUgKGh0dHBzKSBvcmlnaW4uIElmIHByb3ZpZGluZyBhIGxpc3Qgb2Ygb3JpZ2lucywgbWFrZSBzdXJlIGFsbCBvcmlnaW5zIGFyZSB2YWxpZCBhbmQgc2VjdXJlLiIpfTsKanI9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiEwO2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIHByKGEpO2lmKEFycmF5LmlzQXJyYXkoYSkpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWlmKHR5cGVvZiBhW2JdIT09InN0cmluZyJ8fCFwcihhW2JdKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX07CnByPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1fLkFmKGEpO2lmKCFiLmd8fGIuaCE9PSJodHRwcyImJmIuZyE9PSJsb2NhbGhvc3QiKXJldHVybiExO3ZhciBjPWIuZztpZighYy5zdGFydHNXaXRoKCIqIikpcmV0dXJuITA7aWYoIWMuc3RhcnRzV2l0aCgiKi4iKSlyZXR1cm4gXy5IKCJJbnZhbGlkIG9yaWdpbiBwYXR0ZXJuLiBWYWxpZCBwYXR0ZXJucyBzaG91bGQgc3RhcnQgd2l0aCAnKi4nIiksITE7YT1jO2I9IlRiIjtpZihxci5UYiYmcXIuaGFzT3duUHJvcGVydHkoYikpdmFyIGQ9cXIuVGI7ZWxzZXt2YXIgZT1uZXcgcXI7ZD1xci5UYj1lfWE9YS5zcGxpdCgiIikucmV2ZXJzZSgpLmpvaW4oIiIpO3ZhciBmPXJyKGQuZyxhKSxnPXJyKGQuaCxhKTtnLmxlbmd0aD4wJiYoZz1nLnN1YnN0cigwLGcubGFzdEluZGV4T2YoIi4iKSksZy5sZW5ndGg+Zi5sZW5ndGgmJihmPWcpKTt2YXIgaD1ycihkLmksYSk7aC5sZW5ndGg+MCYmYS5sZW5ndGg+aC5sZW5ndGgmJmgubGVuZ3RoIT1nLmxlbmd0aCYmCihhPWEuc3Vic3RyKGgubGVuZ3RoKzEpLGgrPSIuIithLnNwbGl0KCIuIilbMF0saC5sZW5ndGg+Zi5sZW5ndGgmJihmPWgpKTt2YXIgaz1mLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIik7aWYoYy5pbmRleE9mKCIuIitrKTwyKXJldHVybiBfLkgoIkludmFsaWQgb3JpZ2luIHBhdHRlcm4uIFBhdHRlcm5zIGNhbm5vdCBiZSBjb21wb3NlZCBvZiBhIHdpbGRjYXJkIGFuZCBhIHRvcCBsZXZlbCBkb21haW4uIiksITF9Y2F0Y2gobSl7cmV0dXJuITF9cmV0dXJuITB9Owpscj1mdW5jdGlvbigpe3NyfHwoc3I9Xy5YZih3aW5kb3csIm1lc3NhZ2UiLGZ1bmN0aW9uKGEpe2E9YS5nO2lmKGEuZGF0YSl7dmFyIGI9YS5kYXRhO2Iuc2VudGluZWw9PT0ib25ldGFwX2dvb2dsZSImJmIuY29tbWFuZD09PSJwYXJlbnRfZnJhbWVfcmVhZHkiJiYoXy5FKCJNZXNzYWdlIHJlY2VpdmVkOiAiK0pTT04uc3RyaW5naWZ5KGIpKSx3aW5kb3cucGFyZW50JiZ3aW5kb3cucGFyZW50PT09YS5zb3VyY2U/aXI/Yi5ub25jZSE9PWlyP18uRygiTWVzc2FnZSBpZ25vcmVkIGR1ZSB0byBpbnZhbGlkIG5vbmNlLiIpOih0cihhLm9yaWdpbik/KF8uZnI9YS5vcmlnaW4sXy51cj1iLnBhcmVudE1vZGV8fCJhbXBfY2xpZW50IixtciYmbXIoKSk6KF8uRygiT3JpZ2luIHZlcmlmaWNhdGlvbiBmYWlsZWQuIEludmFsaWQgb3JpZ2luIC0gIithLm9yaWdpbisiLiIpLG5yJiZucigpKSxucj1tcj1pcj12b2lkIDAsc3ImJihfLmVnKHNyKSxzcj12b2lkIDApKTpfLkcoIk1lc3NhZ2UgaWdub3JlZC4gT3JpZ2luIHZlcmlmaWVyIGlzIG5vdCByZWFkeSwgb3IgYWxyZWFkeSBkb25lLiIpOgpfLkcoIk1lc3NhZ2UgaWdub3JlZCBkdWUgdG8gaW52YWxpZCBzb3VyY2UuIikpfX0pKX07dHI9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBrcj09PSJzdHJpbmciP3ZyKGtyLGEpOkFycmF5LmlzQXJyYXkoa3IpP2tyLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIHZyKGIsYSl9KTohMX07dnI9ZnVuY3Rpb24oYSxiKXthPV8uQWYoYSk7Yj1fLkFmKGIpO2lmKGEuaCE9PWIuaClyZXR1cm4hMTthPWEuZztiPWIuZztyZXR1cm4gYS5zdGFydHNXaXRoKCIqLiIpP2IuZW5kc1dpdGgoYS5zdWJzdHIoMSkpfHxiPT09YS5zdWJzdHIoMik6YT09PWJ9O18ud3I9ZnVuY3Rpb24oYSl7Xy5mcj9fLmdyKHtjb21tYW5kOiJpbnRlcm1lZGlhdGVfaWZyYW1lX3Jlc2l6ZSIsaGVpZ2h0OmF9KTpfLkcoIlJlc2l6ZSBjb21tYW5kIHdhcyBub3Qgc2VudCBkdWUgdG8gbWlzc2luZyB2ZXJpZmllZCBwYXJlbnQgb3JpZ2luLiIpfTsKXy54cj1mdW5jdGlvbigpe18uZnI/Xy5ncih7Y29tbWFuZDoiaW50ZXJtZWRpYXRlX2lmcmFtZV9jbG9zZSJ9KTpfLkcoIkNsb3NlIGNvbW1hbmQgd2FzIG5vdCBzZW50IGR1ZSB0byBtaXNzaW5nIHZlcmlmaWVkIHBhcmVudCBvcmlnaW4uIil9O18ueXI9ZnVuY3Rpb24oYSl7Xy5mcj9fLmdyKHtjb21tYW5kOiJzZXRfdGFwX291dHNpZGVfbW9kZSIsY2FuY2VsOmF9KTpfLkcoIlNldCB0YXAgb3V0c2lkZSBtb2RlIGNvbW1hbmQgd2FzIG5vdCBzZW50IGR1ZSB0byBtaXNzaW5nIHZlcmlmaWVkIHBhcmVudCBvcmlnaW4uIil9O2hyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt6cih0aGlzLGEsYiwhMSl9O2hyLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXt6cih0aGlzLGEsYiwhMCl9O3ZhciB6cj1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9MDtlPGIubGVuZ3RoO2UrKyl7dmFyIGY9Yi5jaGFyQXQoZSk7YS5nW2ZdfHwoYS5nW2ZdPW5ldyBocik7YT1hLmdbZl19aWYoZCYmYS5oIT09dm9pZCAwKXRocm93IEVycm9yKCJPYWAiK2IpO2EuaD1jfTtoci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe2E6e2Zvcih2YXIgYj10aGlzLGM9MDtjPGEubGVuZ3RoO2MrKylpZihiPWIuZ1thLmNoYXJBdChjKV0sIWIpe2E9dm9pZCAwO2JyZWFrIGF9YT1ifXJldHVybiBhP2EuaDp2b2lkIDB9O2hyLnByb3RvdHlwZS5uYT1mdW5jdGlvbigpe3ZhciBhPVtdO0FyKHRoaXMsYSk7cmV0dXJuIGF9Owp2YXIgQXI9ZnVuY3Rpb24oYSxiKXthLmghPT12b2lkIDAmJmIucHVzaChhLmgpO2Zvcih2YXIgYyBpbiBhLmcpQXIoYS5nW2NdLGIpfTtoci5wcm90b3R5cGUuVWE9ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoYSl7Zm9yKHZhciBjPXRoaXMsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJBdChkKTtpZighYy5nW2VdKXJldHVybltdO2M9Yy5nW2VdfUJyKGMsYSxiKX1lbHNlIEJyKHRoaXMsIiIsYik7cmV0dXJuIGJ9O3ZhciBCcj1mdW5jdGlvbihhLGIsYyl7YS5oIT09dm9pZCAwJiZjLnB1c2goYik7Zm9yKHZhciBkIGluIGEuZylCcihhLmdbZF0sYitkLGMpfTtoci5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmc9e307dGhpcy5oPXZvaWQgMH07dmFyIHFyPWZ1bmN0aW9uKCl7dGhpcy5nPUNyKCImYSYwJjB0cms5LS1ueD8yN3FqZi0tbng/ZTllYmduLS1ueD9uYmIwYzdhYmdtLS1ueD8/MSYyb2EwOC0tbng/YXBnNnFwY2JnbS0tbng/aGJiZ20tLW54P3JkY2VxYTA4LS1ueD8/MiY4dWdiZ20tLW54P2V5aDNsYTJja3gtLW54P3FiZDktLW54Pz8zJjJ3cXExLS1ueD82MGEweTgtLW54Pz80eDFkNzd4cmNrLS1ueD82JjFmNGEzYWJnbS0tbng/MnlxeW4tLW54PzViMDZ0LS1ueD9heHEtLW54P2VjN3EtLW54P2xiZ3ctLW54Pz84ODN4bm4tLW54PzlkMmMyNC0tbng/YSZhP2l0Pz9iIS4mZ3JvP2xpbT9tb2M/c3IsdGVuP3VkZT92b2c/eWxkbmVyYi5wb2hzLD9hYmlsYT9jP2loc290P20/bj8/YyEuJmImYT9tP24/P2MmYj9nP3E/P2Rpbm8sZXA/Zm4/ayZzP3k/P2xuP25vP29jLHAmaS1vbixvaHNkYWVycHN5bSw/c24/dG4/dW4/eG9iLHlzcmFiLD9pJm1hP3ImZW1hcnA/ZmE/P3Nyb2M/Pz9kJmF0cz9uJmVpdD9vaD8/b20/c2E/dGw/P2VnP2YmYz9vYj8/ZyFlbW8/bmFyaXBpP295Pz9oc2tpaHM/aSZkZW0hLnJlbWFyZiw/aHM/ayFvbj8/c2EhLiZub21lYWQsc25kdW9sYyx4aWQsPz8/am5pbj9rJmFzbz9kb3Y/ZWRlP3VzdG8/P2whLiZncm8/bW9jP29mbmk/ciZlcD9uYiw/dCZlbj9uaT8/dWRlP3ZvZz8/aXJnbmFocz9sZSZuaXNpdWM/cmJtdWRlcj8/P20hLiZjYT9ncm8/b2M/c3NlcnA/dGVuP3ZvZz8/YWhva295P2UwMHNmN3Zxbi0tbng/bT8/biEuJmdybz9tb2M/b2M/dCZlbj9sYT8/dm9nPz9hdj9pcz9vbGVjcmFiP3RlYT8/cCEuJmJvZz9jYT9kJmVtP2xzPz9nJm5pP3JvPz9tbyZjP24/P29iYT90ZW4/dWRlPz9jP2c3aHlhYmdtLS1ueD9yYSEuJjQ2MWU/NnBpP2Vtb2g/aXJ1P25ydT9yZGRhLW5pP3Npcmk/Pz9zPz9xIS4mZW1hbj9ncm8/aGNzP2xpbT9tb2M/dGVuP3VkZT92b2c/Pz9yJmF6P2VtYWM/ZjRhM2FiZ20tLW54P24hZDV1aGY4bGU1OHI0dy0tbng/P3VrYXM/P3MhLiZidXA/ZGVtP2dybz9oY3M/bW9jP3Rlbj91ZGU/dm9nPz9hYyEudWJhbi5pdSw/aXY/P3QmYWQ/ZWxodGE/bGVkP295b3Q/P3UhLiZhJmNpbm5pdj9lbWlyYz9pJmh6aHppcm9wYXo/c3R5bm5pdj90dGFwcmFrYXo/P3MmZWRvP3NlZG8/P3RsYXk/dmF0bG9wPz9icz9jYyxkJmFyZ292b3Jpaz9vIXJvJmdoenU/aGh6dT8/P3RsLD9lJmh6aHppcm9wYXo/bnZpcj90Pz9mJmk/bmksP2cmbD9ybz8/aGs/aSZzdHZpbnJlaGM/eWtzdHluJmxlbWhrP3Z5cG9yaz8/P2smYz9tP3MmbmEmZ3VsP2h1bD8/dCZlbm9kP3VsPz92JmlrbmFyZi1vbmF2aT9vcnRlcG9ycCZlbmQ/aW5kPz8/Pz9sJmlwb25yZXQ/b3BvdHNhJmJlcz92ZXM/P3A/P20maz9vYz9zP3lyaz8/biZjP2Q/aT9vc3JlaGs/dj95bG92Pz9vJmMsbnZvcj8/cCZkP3Asej8/ciZjP2ltb3RpaHo/az95bW90eWh6Pz9zaz90JmVuP2w/ej8/dWRlP3Y6Yz9lJmFsb2tpbj9paz8/aSZhbG9reW0/aGlucmVoYz9rcmFoaz92bD95az8/az9sP28mZyFpbnJlaGM/P2tyYWhrPz9yPyx4Yyx5Jmlrc3RpbmxlbWhrP211cz9zJmFrcmVoYz9zYWtyZWhjP3R2b25yZWhjPz8/eiZpYix1Pz8/P3YhYWo/YmI/ZXQ/aXY/P3dhbmlrbz94JmE/aWFjYWw/P3lvZ2FuP3omLiZiZXc/YyZhP2kmbj9yZ2E/Pz9ncm8/bCZpbT9vb2hjcz8/bSZvbj90Pz9vJmM/Z24/P3JhZG5vcmc/c2luP3QmZW4/bGE/P3VkZT92b2c/d2FsPz96aXAhLmtvcmduLD8/P2ImMDBhdmU1YTlpYWJnbS0tbng/MSYyNXFoeC0tbng/NjhxdXYtLW54P2Uya2MxLS1ueD8/Mnh0YmdtLS1ueD8zJmIya2NjLS1ueD9qY2ExZC0tbng/PzQmNiYxcmZ6LS1ueD9xaWYtLW54Pz85NnJ6Yy0tbng/Pzg4dXZvci0tbng/YSYwZGM0eGJnbS0tbng/Yz9oZXI/bj9yYT90Pz9iIS4mZXJvdHM/Z3JvP21vYz9vJmM/Zm5pPz90ZW4/dWRlP3Ymb2c/dD8/emliPz9hPz9jJmo/cz8/ZCZoZXNhMDgtLW54P21pPz9nP2whLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz9tPz9zIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/P3RjLXJldGFyZWJzbmVnbXJldi0tbng/dSZsYyEuJmVsZWosc25kdW9sYyx5c3JhYiw/c21hcz8/cCEueXNyYWIsPz93cC1nbnV0YXJlYnNuZWdtcmV2LS1ueD8/YyYxJjFxNTQtLW54P2hiZ3ctLW54Pz8yZTljMmN6Zi0tbng/NCY0dWIxa20tLW54P2ExZS0tbng/YnlqOXEtLW54P2VyZDVhOWIxa2NiLS1ueD8/OCY0eHgyZy0tbng/YzlqcmIyaC0tbng/PzlqciZiJjJoLS1ueD81NC0tbng/OXMtLW54Pz9jJmVnLS1ueD9oMy0tbng/czItLW54Pz8/YSEuJmdybz9rY2FiZGVlZixsaW0/bW9jP3JyZCxzbXJvZix0ZW4/dWRlP3ZvZz8/M2EwOS0tbnghLiZjYTFvLS1ueD9ndmExYy0tbng/aCZjYTFvLS1ueD96YTA5LS1ueD8/dGExZC0tbng/dWEwOC0tbng/Pz8/YiZhP2I/Y2k/Zjc2YTBjN3lscWJnbS0tbng/c2g/P2MhLiZjZSxlJnVnYWVseXNhdG5hZix6eXJzLD9nbmlwcGFyY3Msa3UsbGlhbXd0LG53YXBzLnNlY25hdHNuaSxwaS1kdW9sYyxyZXZyZXMtZW1hZyxzJm5kdW9sYyxvdG9ocHltLHBwYXJldmVsYyxzZWNjYXB0Zix1LD91JmUsZyx3Y2MsP3hzYyw/MGF0ZjdiNDUtLW54P2ExbC0tbng/P2UhLiYyMWs/YXBjP2Imb2c/dXA/P2MmaXNwP29kPz9kZW0/ZSZzYWIsdWM/eWc/P2YmZWhjP29ycD8/ZyZiYT9uZT9ybz90a20/P2hjZXQ/am9sP2wmYSZnP2ljaWZmbyxzPz9pbT91dD8/bSZkYT9vYz9zZT8/biZnZD9pZj9vJm0/cmdhPz8/byZjc2lkP2ZuaT9pJnI/dT8/cnA/P3BwcnI/cWlzcD9yJmFiP2JpP3RuP3V0Pz90JmFsP2Umbj92Pz9uJmVkP28mYz9kbz8/P29mP3FyYT9yYT8/dWRlP3ZvZz94eHg/P2JldXE/bj9zbW9jPz9mZGg/aSZsb2h0YWM/biZhZ3JvP2lsYz9vc2FuYXA/P3N1bT90aWM/P2whLiZncm8/bW9jP29jP3Rlbj91ZGU/dm9nP3lvLD9sPz9tIS4mbXQ/b3NzYT8/cDFha2NxLS1ueD8/biEuJm1vbj9vc3NhPz9pP3A/P3JlbGNlbD9zIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/P3Qhcz93Pz92IS4mZ3JvP2xpbT9tb2M/c25keW0sdGVuP3VkZT92Jmc6LmQsLG9nPz8/P3dwP3luPz9kJjJ1cnpjLS1ueD8zJjF3cnBrLS1ueD9jJjRiMTEtLW54PzlqcmNwZi0tbng/Pz81eHE1NS0tbng/Njk3dXRvLS1ueD83NXlycGstLW54PzljdGR2a2NlLS1ueD9hIWQ/ZXI/b2xud29kPz9iIS4mY2E/ZGk/Z3JvP2hjcz9pYT9saW0/bW9jP28mYz9mbmk/P3QmZW4/aT8/dWRlP3Ymb2c/dD8/PzJiYWJnbS0tbng/P2MhLiZjYyx2b2c/P2c5YTJnMmIwYWUwY2hjbGMtLW54Pz9lJm0hYnVsYz8/ciFrPz9zb3B4ZT90aW1pbD93Pz9mYz9nIS4mdWRlP3ZvZz8/P2gmZDN0YmdtLS1ueD9wP3Q/P2khLiZhc2VkP2Jldz9jYT9lOm5veiwsaGNzP2lhP2xpbT9vJmM/Zz8/cG9rP3JvP3NlcG5vcD90ZW4/eSZrZnQ5LS1ueD9tPz96aWI/XHUxYjM2XHUxYjJlXHUxYjI5Pz9iP29yZG5hP3A/cmRhbT8/bCZpdWIhLiYwdixmcnVzZG5pdyx5YWRvdHBpaHMsPz9vZz9yb3c/P20hLnJpLD9uJmEmYj9sIXJhYXM/Pz9vYj91Zj8/byZvZj9ycD8/ciZhJmMmdGlkZXJjP3lhbGNyYWI/P3VnbmF2Pz9lZjUwNnc0Yi0tbng/ayEuJm9jLHVkZSw/amgzYTFoYWJnbS0tbng/P29mPz9zIS4mZGVtP2dybz9tb2M/b2ZuaT90ZW4/dWRlP3Ymb2c/dD8/P20ha2NyZW0/Pz90IWV4Y3drY2MtLW54P2w/P3VvbGMhLiYyay4mM3MsYnBzLXVyLiYzcyxibCxldGlzYmV3LD9jaXRzYWxlLGV0aXNiZXcsa3NtLXVyLiYzcyxibCxldGlzYmV3LD8/YSZidXJhLXZuZWouJjF0aSxhYnVyYS5ydWUuMXRpLD90Y2Vwc3JlcCx4bzouJmt1LG50LD8sP2ImYWx0YW0sZG5ldmFyLGV3aWxlazouc2MsLD9jaXRzYWxlai5waXYsZHJheWtuaWwsZSZsZWosbW9oc25kLHRvaiw/Z25pdHNvaGRuZXJ0LiZlZCxoYyw/bGUmdGVtaXJwOi5rdSwsdmFyYWwsP20mZWRhaWQsaWFsY2VyLiZhYyxrdSxzdSw/P24mZXZ1ZWx1ayx3b3J1LD9wYXoscWhlbGJhdnJlc2JvLHImZXBvbHJvb3YsZ3RzaCxvJnBhdix0bmVtZWxlLD8/c2VjaXZyZXMtbm9zaW51LHQmZW5yYXhhLjEtc2UsaWtjYXRzbm8uc251cixsb2JldnJlcyxuZWdyZW1lLHNpbm9nYXRuYSw/dWx1bGV0b2osd2NzLiZnbmlsZWJhbHRyYW1zLGtvb2JlbGFjcyxsYXRlbWVyYWIuJjEtJnJhcC1yZixzbWEtbG4sPzItcmFwLXJmLD9yYXAtcmYuJjNzLGJkJmdtLHIsP2NuZjouc25vaXRjbnVmLCxldGlzYmV3LTNzLGh3dGQsa2ZhayxsJmJjcyxkZCw/bWh3LHJmaSxzOGs6LnNlZG9uLCx0aXBrY29jLD9zJjhrLGVjbmF0c25pLiZidXAsdmlycCw/bWEtbG4uJjNzLGJkJmdtLHIsP2V0aXNiZXctM3MsaHd0ZCxrZmFrLGwmYmNzLGRkLD9taHcscmZpLHM4azouc2Vkb24sLHRpcGtjb2MsPz93YXctbHAuJjNzLGJkJmdtLHIsP2V0aXNiZXctM3MsaHd0ZCxrZmFrLGwmYmNzLGRkLD9yZmksczhrOi5zZWRvbiwsdGlwa2NvYyw/P3hlJmxwY2lmZmFydCx2bm9jOi4xLXRzJmFlLXN1LGV3LXVlLD8sP3lhd29jbmUudWUsPz96YTVjYmduLS1ueD8/ZSYxJjUzd2xmLS1ueD83YTFoYmJnbS0tbng/dGEza2ctLW54Pz8yYTZhMWI2YjFpLS1ueD8zbWEwZTFjdnItLW54PzQxOHR4aC0tbng/NzA3YjBlMy0tbng/YSEuJmNhP2dybz9oY3M/bGltP29jP3Rlbj92b2c/PzA5LS1ueD8/YiEuJmNhP2V0aXNiZXczMjEsZ25pdHNvaGJldyxuZXZ1ZWx1ay55eG9ycHplLHBvaHNkYWVycHN5bSxzbiZkdW9sYyxvaXR1bG9zdHNvaHJldG5pLmR1b2xjLD95bSw/b3J0YWw/dXQhdW95Pz8/YyYwa3JiZDQtLW54IS4mYTJxYmQ4LS1ueD9iOGFkYmVoLS1ueD9jNnl0ZGdiZDQtLW54P2Q4bGhiZDUtLW54Pz8/YSZscCEub2MsP3BzIS4mZmg6LmNpdGF0cywsbGxhNHN4LHJlYnUsc29ub2ktcHBhLHQmY2Vqb3JwLG5lZ2F5b2xwZWQscyZhZnltLG9oZWJpdiw/P3V5aWVoLD9hcnR4ZT8/c2xhPz9pIWZmbz8/biZhJmQ/aWxlcj9uaWY/cnVzbmkhZWZpbD9zcmVsZXZhcnQ/Pz9laWNzPz9yb2ZyaWE/P2QhLiYxc25kbnlkLDQycGktbnlkLDdlcmF1cXMsYW1pbDQsYiZvdy1ucmVmZWlsZ2l0c25nLS1ueCxyYi1uaSx1cix2ei1uZWxsZXRzZWJnaXRzbmctLW54LD9jZXNzbmQmZCxueWQsP2RlY2FscGIsZSZkYXJlZ3RtdWVhcnQsbHVoY3N2cmVzaSxtb2hzbmQsbmloY2FteWVrLHRpZXNiZXczMjEsP2dpZm5vY2VjYXBzYmV3LGhjaWVyZWJzbm9pc3N1a3NpZCxrJmNvZGx1aGNzLGVlZ25pZXRzaSw/bHNkLW5pLG0mb2Mscm9mdHRhbHBsdWhjcyx1aGNvYi1pbnUtcmh1cjouY29uLm9pLCw/biYtaS1nLW8tbCxlJmxsZXRzZWJnaXRzblx1MDBmY2csc2dudXRpZWwsP2kmZW10c2ksbHJlYi1uJmkseWQsPz9ub3JibGllaC1zaC50aS4maGNyYWVzZXItc2VnYXAsc2VnYXAsP3B2LW5pLHJlZmVpbGdpdHNuXHUwMGZjZyw/byZjLHJwLXl0aW51bW1vYyw/cCZoMjEsaW9nOm9sLCxvaHNkYWVycHN5bSw/cmUmbnRyYXBkZWVwcy5yZW1vdHN1YyxzdSYtbGF1dHJpdixsYXV0cml2LD90JmFkcHVzbmQsdHViLW5pLHVvci15bSw/dnJlcyYtZSZidWNsLG1vaHltLD9iZXctZW1vaDoubnlkLCxsdWhjcyw/P3MmbmQmLSZudWZpYXQsc2VoY3NpbWFueWQsdGVucmV0bmksP2lzb2MubnlkLG1pZWgscHMsdnJzLD9vcGVyLSZudnMsdGlnLD9zbmRkOi4mbnlkLHNuZG55ZCw/LD92cmVzaS0mbmllbSx0c2V0LD94aTIseSZhd2V0YWctJmxsYXdlcmlmLHltLD9tLHNyYWIsdGljLWFtaWwsP3p0ZW4mbWl0YmVsLHNhZHRyZXR0ZXVmLD8/YXJ0P2kmc2Rvb3c/dWc/P29uLS1ueD8/ZSEuJmJpbD9kZW0/ZWlmP2dybz9pcnA/a2lpcj9tb2M/cGlhP3VkZT92b2c/P2VpP2Zmb2M/Z2c/ciZmP2dlZD8/P2YmYSZjP3M/P2lsPz9nIS4mZ3JvP2xvb2hjcz9tb2M/dCZlbj92cD8/dWRlP3ZvZz8/YSZmP2d0cm9tP3AhLiZncmViZWRvYyxrc2VscCxtZWEscyZuZHAscnVlbGZ4dWVkLD90c29oY2l0YXRzLHdvbGZ5ZWgseCZsaCxvYnltLD95JmN2cnAsa2Nvciw/Pz9yb3RzP3lvdj8/ZWxsb2M/bmEmaGN4ZT9ybyEuaGNldCw/P3JvZWc/dWc/P2khLiZwb2hzZGFlcnBzeW0sdm9nPz90aWxvcD92JmJiYT9vbT8/P2ohLiZmbyxncm8/b2M/dGVuPz8/ayEuJmMmYT9zPz9lJm0/bj8/aWJvbT9vJmM/Zm5pP2c/P3JvPz9pJmI/bD9uPz8/bCZhJmRtcmlmP3Mhcm9mPz8/YiZhP2kmYj9kdWE/Pz9jJmFybz9yaWM/P2RuaWs/ZyFvb2c/P2kmYm9tP21zPz9sJmFzYWw/ZXJhdXFhPz9wcGEhLnRuaSw/dWhjcz95dHMhZWZpbD8/P20hLiY0JjMyaSxwJmN0LHYsPz82NmMsYWlsaXNhcmIsYyZhP29vaC54b3JwZXMsP2R1b2xjc2QsZyZybz9zLXJhZWdlbGlmLD9rY2F0c2VnZGUsbm9pdGF0c2tzaWQsbyZjP3Qmbmlnb2wscG9oLD8/cCZpJm9uLHNuYXJ0LmV0aXMsP29oYmV3LD9yJmFlZ2VsaWYsaWRjbSxvZnNuZCw/cyZkeW0sbmRkLHRpP3VtaG9sLD90JmVuP2ZhcmMscyZhY2RudW9zLG9ob24sPz91ZGU/diZpcnA/b2c/P3hvYnltLHkmZ29sb255cyxzcmFiLD8/YSZnP24hLiZjaXRlbmVlayxyZSZnYW5hbXBzaSxoLnRvZ3JvZiw/c2loLnRvZ3JvZiw/Pz9lbT9pcnA/b3JoYz93Pz9uIWdvbG9jP2kmbG5vIS4mZWdhdHMtb3JlZSxrb29iLGxsZWNwYWVsLG9yZWUscmVkbGl1YmV0aXNiZXcsc25kbWllaCx5c3JhYiw/P3c/P28hLmUmY2l2cmVzLHRpc2Jldyw/aHA/bGF0aXBhYz90c2UmZ2RpcmI/cmlmPz96IS4mYW1pbCxzcG9yZXotMWdycCx0aWtjYXRzLD8/P3J1b2JsZW0/P29tP3AhLiZib2c/Z3JvP2xpbT9tbyZjP24/P3Rlbj91ZGU/P2lyZz95a3M/P3IhLiZiaWx0ZW4sbW9jP25hYyxvc3NhPz9hJmMhaHRsYWVoPz9wbW9jP3d0Zm9zPz9iYz9laD9pZj9vdHMhLiZlJnJhd3BvaHMsc2FiZXJvdHMsP3kmZmxsZXMsc3JhYiw/Pz90YWVodD91JmNlcz9zbmk/dCZpbnJ1Zj9uZWNjYT8/emE/Pz9zIS4mYSFkaXNuaW0zMjEsP2IhaWJuYWw/cm9mbW9rPz9jIWE/P2QhYj9uJmFyYj91YnJvZmxhbnVtbW9rPz8/ZT9mP2chcm8/P2ghZj8/aSF0cmFwPz9rIXNoZj8/bD9tIW9jLHQ/P24hbXlnc2t1cmJydXRhbj8/bz9wIW9oc2RhZXJwc3ltLHA/P3Ihb3dlYmRsdW9jdGksP3Mhc2VycD95c3BvaSw/dD91P3ZoZj93P3ghdXZtb2s/P3k/ej8/YSZjIS52YXMsP2VsP2hjPz9pJmVyP3VyYz8/bmVzZW1vaD9yb2g/dW9oPz90JmEmZD90cyZlIWxhZXI/P2xsYT8/P2lzIS4mYSZtZ2lmLHZuYWMueW0sP2Jld3d1b2osZGVyYXVxc3B3LGUmbGVqLG5pJmVmZmFjLGxuaWdvbCw/ciZhdXFzLG9jZXZvbiw/d2lubW8sP2wmYWljb3NuZXBvLGVuYXBjLG9zLD9uJmV5YixvJml0b24seWMsPz9vYyxyZXR1cCxzJmlodGVkYW0scHZ0c2FmLD90JmZhcmNlY3J1b3MsaHJzLHBndGFoYyxyb3BwdXMsP3ZvZy1hbWdpZix3JmVpdmVycCxvbGZ5ZWgsP3gmZXZub2M6LjEtdHMmYWUtc3UsZXctdWUsPyxvYmVpcCw/eXNyYWIsP2JldyEucmVtYXJmLD8/b3Y/cmE/dCZpb2xlZD9vbD8/dXRpdHNuaT8/dSZsYj9xaSZuaWxjP3R1b2I/Pz92IS4mMjFlP2FpP2ImZXc/aWI/b2c/P2NlJnI/dD8/ZSZkbmVycG1lP3JvdHM/P2dybz9saW0/bSZvJmM/bj8/cmlmPz9vJmM/Zm5pPz9yYXI/c3RyYT90JmVuP25pPz91ZGU/dm9nPz9hcz9lM2dlcmIyaC0tbng/aSZsIS4mbWVhLHhsaCw/P3JkP3NzZXJnb3JwPz9vbD8/dyZrY3QtLW54P3I/P3h1bD95IS4mZ3JvP2xpbT9tb2M/dGVuP3VkZT92b2c/Pz8/ZiYwZjNya2NnLS1ueD8xOTh4aW0tLW54PzI4MHhpbS0tbng/N3Zxbi0tbng/YSEuJmdybz9tb2M/dGVuP3VkZT92b2c/Pz9iIS52b2c/d2E5YmdtLS1ueD8/YyFhMXAtLW54IS4mYTE0LS1ueCxiOGxlYTFqLS1ueCxjJmF2YzBhYWEwOC0tbngsbWEwOS0tbngsP2YmYTFhMDktLW54LGVhMWotLW54LD9ndmExYy0tbngsbmhhMWgtLW54LHBkYTFqLS1ueCx6aWxhMWgtLW54LD8/bnM/P2VhMWotLW54P2c/aWFtP2wmYTFkLS1ueD9vZz8/biEuJmJldz9jZXI/ZXJvdHM/bSZvYz9yaWY/P29mbmk/cmUmaHRvP3A/P3N0cmE/dGVuPz8/b3JwP3AhLiZncm8/bW9jP3VkZT8/P3J1cz90IS5oY3MsdyEuc25kZCw/P3chLiZoY3MsemliLD8/P2cmMiY0d3E1NS0tbng/OHpyZjYtLW54Pz8zJjQ0c2QzLS1ueD85MXc2ai0tbnghLiZhNXdxbWctLW54P2QmMjJzdmN3LS1ueD81eHE1NS0tbng/P2dsYTBkby0tbng/bTFxdHhtLS1ueD92dGEwY3UtLW54Pz8/PzQ1NXNlcy0tbng/NW16dDUtLW54PzY5dnFoci0tbng/NyY4YTRkNWE0cHJlYmdtLS1ueD9yYjJjLS1ueD8/YSEuJmdybz9qYm8sbW8mYz9uPz9vYz90ZW4/P3ZkPz9iIS4mMD8xPzI/Mz80PzU/Nj83Pzg/OT9hP2I/Yz9kP2U/Zj9nP2g/aT9qP2s/bD9tP24/bz9wP3E/cj9zP3Q/dT92P3c/eD95IXNyYWIsP3o/Pz9jIWI/emE5YTBjYmdtLS1ueD8/ZSEuJmNhP2VtIWFuPz9ncm8/aWNzP2xpbT9tb2M/bnVlP29mbmk/dCZlbj9yb3BzPz91ZGU/diZvZz90Pz8/YT8/ZyEuJmdybz9oc2FkdG9iLGxlbmFwOi5ub21lYWQsLG9jP3NhYWssdCZlbj9pa2NhdHMsP3lscC42ZCw/P2kmYT92Pz9rIS4mZWEsZ3JvP2xpbT9tb2M/c3UsdGVuP3VkZT92b2c/eHgsPz9tIS4mZHJwP2dybz9saW0/bW8mYz9uPz9vYz91ZGU/dm9nPz9waz8/biEuJmNscCxkdGwsZW1hbj9ncm8/aGNzP2khYm9tPz9sJmltP29jLD9tJm9jP3JpZiw/bmVnLG9nbix0ZW4/dWRlP3ZvZz96aWI6LiZnbCxsZCxubyxvJmMsZyw/Pyw/YXc/aSFiIW11bHA/P2Nhcj9kJmFydD9kZXc/P2gmc2lmP3RvbGM/P2smaXY/b28mYj9jPz8/bHM/biZhZWxjP2lhcnQ/P3AhcG9ocz8/cmUmZW5pZ25lP3RhYz8/dCZhZD9la3JhbT9oZ2lsP2x1c25vYz9uZWc/b3Y/c29oIS50ZmFyY25lcG8sPz92aSZnP2w/Pz9vIXM/P3UmcmVoY2lzcmV2P3NtYXM/dGFyZWJzbmVnXHUwMGY2bXJldj8/P28mZD9sYj9vZyEuJmR1b2xjLGV0YWxzbmFydCw/Pz9yJjJuMDg0cWxqLS1ueD9lYm1vb2xiP28hLiY3N25kYy5jOnNyLCxhJnJlbWFjeXRpcnVjZXN5bSx0Jm5laW1pcCxzaXZyZXRsYSw/eG9yLHosP2Jldy1sbGFtcyxjaW1hbnlkLXBpLGQmYWIteXJldi1zaSxlJnN1Zm5vY3NpbSx2YXMtc2ksP251b2Ytc2ksb29nLXlyZXYtc2ksdW9sYyZhcmZuaWFyb2RlZixlaHRnbml0dW9yLG13Oi5hdGViLCw/P2UmYSxjaW4teXJldi1zaSxncm9mJmxvb3QscGVoLD9sJmFzLTQtZmZ1dHMscG9lcGFyb2RlZiw/bSYtbW9yZixhZ2V2cmVzLG9ocnVveXNsbGVzLD9ub3pkb3AsciZlaHdvbmduaW9neWxkbG9iLGl3eW0sdWNlcy03N25kYy5uaWdpcm8ubHNzLD90JmFkaWRuYWMtYS1zaSxpcyYteWJib2gsZ29sYiw/Pz9mZWhjLWEtc2ksZ29sYnltZGFlcixrJmVlZy1hJi1zaSxzaSw/aCxudXQsP2wmYWNvbC1zaSxpJmFtd3QsdmUteXJldi1zaSw/bGF3ZXJpZiYteW0seW0sP3NkLW5pLD9tJmFjc3NlY2NhLGVkb20tZWxiYWMsP24mYWYmYmxtLGNmdSxlZ2VsbG9jLGxmbixzJmNpdGxlYy1hLXNpLG5pdXJiLWEtc2ksdGFwLWEtc2ksP3hvcy1hLXNpLD9pYnB0dGgsb3J2aW9wLHAmaix2LW5pLD8/byZqb2RzbmQsdHAmYXosb2gsPz9wJmkmLW9uLGZsZXMsP28maGJldyx0a3NlZGVlcmYsP3RmJmUmbW9oLHZyZXMsP3ltLD8/ciZlJmdhdG9wLHBwZXB0ZWV3cyxzdS14dW5pbC1hLXNpLD92ZG1hYyw/cyZhJmlsYSZueWQsc25kLD9ueW1zZCw/YiZhbGZtdyxiZXZyZXMsP2QmaWtjZXQuM3MseWxpbWFmLD9lJmdhcHNmLGlyZm90YXRvcGhjdW9jLD9qLGtvb2ItZGFlcixsdGJ1cCxuZCYtd29uLGRlZXJmLGVtb2gsZ29sYixrY3VkLG1vb2QsbnlkOi4mZW1vaCxvZyw/LHAmZCxzLD9ydmQsdG9nLHVvbGMsP3MmYS1za2NpayxuZGQsP3RuZW1oY2F0dGFvbWIsdSw/dCZjZSZqb3JwYXJvZGVmLiZkdW9sYyxndHMuc28ucHBhLHNvLnBwYSw/cmlkZXJiZXcsP2UmZXdzLXlyZXYtc2ksbnJldG5pJmVodGZvZG5lLGZvZG5lLD8/aGdpbmstYS1zaSxzJml4ZXRuJm9kLHNlb2QsP28maC1lbWFnLGwtc2ksP3JpZnlhbSw/P3VlOi4mYWMsZGMsZSZiLGQsZSxpLG0scyw/ZyZiLG4sP2hjLGkmZixzLD9rJmQsbSxzLHUsP2wmYSxpLG4scCw/biZjLGksP28mbixyLHNzYSw/cGosciZmLGcsaCxrLHQsP3MmZSxpLHUsP3QmYSxlbixpLGwsbSxuaSxwLD91JmEsZGUsaCxsLHIsP3ZsLHkmYyxtLD96JmMsbiw/Pyx2cmVzbnlkLHgmaW51ZW1vaCx1bmlsZW1vaCw/eSZsaW1hZnh1dCxyYWlkYW5ldGFoLHNyYWIsPz8/dWImbWFoP29qPz8/cyEuJmRlbGFjc25lLGdybz9tb2M/dGVuP3VkZT92b2c/P2diNjM5ajQzdXM1LS1ueD8/dD91IS4mYyZhP3M/P2VuP2dybz9saW0/bW9jP28mYz9nPz9ybz9zdT91ZGU/dm9nPz8/diEudWRlP2ExYy0tbng/P3dzYTA4LS1ueD8/aCYwZWU1YTNsZDJja3gtLW54PzR3YzNvLS1ueCEuJmEmMnh5YzNvLS1ueD8zajBoYzNtLS1ueD92ZTRiM2Mwb2MyMS0tbng/P2lkMWt6dWMzaC0tbng/bDhieGk4aWZjMjEtLW54P3JiMGVmMWMyMS0tbng/Pz84Jjh5dmZlLS1ueD9hN21hYWJnbS0tbng/P2IhLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz9tZz8/YyEuJjdlcmF1cXMsYW1pbDQsZHVvbGMtZHJheWtuaWwsZSZnYXJvdHN0Y2VqYm8uJmFtcixncGwsP2xhY3NkdW9sYy4mYW1yLnN0Y2VqYm8sZ3BsLnN0Y2VqYm8sdHN1Yyw/dGlzYmV3MzIxLD9nbmlrc25kLHAmaDIxLG9oc2RhZXJwc3ltLD9zbmQmdG9nLHVvbGMsP3dvbGYuZSZhLjFwbGEsbmlnbmVwcGEsP3hpMix5dGljLWFtaWwsP2FvYz9ldCEuc3BwYXJldmVsYyw/aXIhZXV6Pz9yJmFlcz91aGM/P3NvYj90YXchcz8/P2Qwc2JncC0tbng/ZiYybHBiZ20tLW54P2s/P2chLiZncm8/bGltP21vYz90ZW4/dWRlP3ZvZz96aWI/Pz9rIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/P20hYTFqLS1ueD8/b2Npcj9wIS4mZ3JvP2k/bGltP21vYz9vZ24/c25kdW9sYyx0ZW4/dWRlP3ZvZz8/P3MhLiZhZHRvYixlbGJhdm9sLGcmbmFiaHNhaCxybz8/bGltP20mb2M/cm9mdGFscC4mc3UsdG5lLHVlLD8/dCZlbj9yb3BlbGV0LD92b2c/d29uLD9hJmM/bm9tPz9pJmQ/Zj9yaT8/P3QhLiZjYT9lbmlsbm8saW0/bmk/byZjP2c/P3BvaHMscm8/dGVuPz9pYWY/bGFlaCEuYXJoLD9vcnhlcj9yYWU/P3ZvIS5sb3BkcmVuLD96Yj8/aSYzdHVway0tbng/N2Ewb2ktLW54P2EhLiZmZm8/Z3JvP21vYz9yZW1hcmYsc3BwYW9saWssdGVuP3V3dSw/MXAtLW54P2J1ZD9kbnV5aD90bmloYz8/YiEuJmdybz9tb2M/b2M/cm8/dWRlPz9haGR1YmE/byFtIS4mZHVvbGNzZCx5c3JhYiw/Pz9zPz9jIS4mYXliLXRyb3BvcmEtLW54P2NhP2RlP2dybz9tb2M/byZjP2c/c3NhPz9ybz9zdSx0JmVuP25pP3JvcG9yXHUwMGU5YT8/dWRlP3Z1b2c/P2N1Zz90Pz9kJmRrP3VhPz9lJmJoZi0tbng/cGlhdD8/ZiEuJmF3NS1uZW5pa2toLS1ueCxkbmFsYT9pJmtpLHNwYWssP21yb2Z0YWxwZHVvbGMuaWYsbmVuaWtrXHUwMGU0aCxwb2hzZGFlcnBzeW0scmV0bmVjYXRhZC4mb21lZCxzYWFwLD91dmlzaXRvazMyMSx5ZCw/b25hcz8/ZyEuJmQmb20/dGw/P2dybz9tb2M/dWRlP3ZvZz8/P2gmYyZhdGloP3JhPz9zJmFib2RveT9pYnVzdGltPz8/anVvaHM/ayEuJmdybz9tb2M/b2ZuaT90ZW4/dWRlP3ZvZz96aWI/P2I0Z2MtLW54P2l3IS5yZW1hcmYsP25pc2xlaD9zP3V6dXM/P2whZHJhaGNpcj9pYW1zaT8/bWFpbT9uIS4mYiZldz9vZz8/Y2E/Z3JvP2xpbT9tbyZjP24/P25pP28mYz9mbmk/P3BwP3QmZW4/bmk/P3VkZT96aWI/P2FpcnBpYz9pJmhncm9ibWFsP20/P3JlPz9vbT9yYXJyZWY/cyEuJjVmLGVnYXB0aWcscHBhdGlnLD9lZD8/dCZpJmM/bmlmbmk/P3JhaGI/P3V0P3YhLiYyMWs/Z3JvP21vYz9vYz90ZW4/Pz93aWs/eGEmcnA/dD8/eWY/P2omNnBxZ3phOWlhYmdtLS1ueD84ZGExdGFiYmdsLS1ueD9iIS4mYWNpcmZhP2V0bz9ncm8/bSZvYz9zaXJ1b3Q/P28mYyFlPz9mbmk/bm9jZT9yZ2E/dHNlcj8/cnVzc2E/cyZldGNldGloY3JhP3Jpc2lvbD90YWNvdmE/P3QmZW4/bmFydWF0c2VyPz91ZGU/dmludT95ZW5vbT8/P2Q/ZiEuJmNhP2RpP2VtYW4/Z3JvP2xpbT9tb2M/byZmbmk/cnA/P3Rlbj91ZGU/dm9nP3ppYj8/P25qP3M/dCEuJmJldz9jJmE/aW4/P2VtYW4/Z3JvP2xpbT9tb2M/byZjP2c/P3QmZW4/bmk/c2V0Pz91ZGU/dm9nP3ppYj8/P3lxeDk0cWl0LS1ueD8/ayY4dXhwMy0tbng/OTI0dGNmLS1ueD9hcmZlbD9jJmEmYmRlZWY/bGI/P2ViZG51bD9pbGM/cmVtIWU/Pz9kIS4mZSZkaXNlbW1lamgzMjEscm90cyw/Z2VyLG1yaWYsb2MscG9oc2RhZXJwc3ltLHppYiw/dD8/ZSZlcz9zYW1ldD8/aCEuJmEmNHlhMGN1LS1ueD81d3FtZy0tbng/P2IzcWEwZG8tLW54P2NuaSxkJjImMnN2Y3ctLW54PzNydmNsLS1ueD8/NXhxNTUtLW54P3RsLD9nJmEwbnQtLW54P2xhMGRvLS1ueD9ybz8/aSYwNTBxbWctLW54PzdhMG9pLS1ueD94YTBrbS0tbng/P20mMXF0eG0tLW54P29jPz9ucHFpYy0tbng/dGVuP3VkZT92JmRpP29nP3RhMGN1LS1ueD8/eHZhMGZ6LS1ueD9cdTRlYmEmXHU0ZTJhP1x1NTAwYj9cdTdiODc/P1x1NTNmOFx1NTE2Yz9cdTVlOWNcdTY1M2Y/XHU3ZDYxJlx1N2RiMj9cdTdmNTE/P1x1N2U1NCZcdTdkNDQ/XHU3ZWM0Pz9cdTdlYzcmXHU3ZDQ0P1x1N2VjND8/XHU3ZWRjJlx1N2RiMj9cdTdmNTE/P1x1ODBiMiZcdTY1NGU/XHU2NTU5Pz8/bj8/aSZ0c29iP3ZkbmFzPz9sIS4mYmV3P2MmYT9vcz8/ZHRsP2dybz9oY3M/bGV0b2g/bW9jP25zc2E/b2duP3ByZz90JmVuP25pPz91ZGU/dm9nPz9hdD9jZD9pcz8/bSEuJmVtYW4/Zm5pP2dybz9tb2M/dGVuP3VkZT92b2c/Pz9uJmFiIWNmZGg/ZXRhdHM/bW1vYz90JmVuP2Zvcz8/dT8/aSFsIS4mYSZoY2Fyb3RzLnNmcGksdm5hYyw/YyZpdGVuZWVrLG1uaW9qLD9lZ2Fyb3RzdGZuLnNmcGksbm95YyxwZXB5bSxzM3cuc2ZwaSx6dGlyZnltLD8/cD8/P29vYj9wIS4mYiZldz9vZz8/Y2E/ZyZvZz9ybz8/a29nP20mYWY/b2M/P3Ama2c/b2c/P3NvZz90ZW4/dWRlP3ZvZz96aWI/Pz9yb3chLiZyZXR1cCx5eG9ycC1lbmlnYW1pLD90ZW4hLiZldGlyd3BwYSxodHVtaXphLG1lYSxub2x0LG8mYyx2cmEsPz8/P3MhLmdybz8/dD91IS4mYyZhP2xwPz9kdGw/ZSZjaWxvcD9tP3Rpc21pbiw/Z3JvIS4mZ3VsOmcsLHNndWwseXImZXR0b2x5JmxrZWV3LHRpbmlmZmEsP3RuZWVsZmZhciw/Pz9sZW5hcC10bmVkbmVwZWRuaSxuJm5vYyxvaXNzaW1tb2MtJmxheW9yLHRuZWRuZXBlZG5pLD8/byZjIS4mYnVuc29ydGVyLnRzdWMsZW5pbG5veXNyYWIsa3JhbWV0eWIuJmhkLG12LD9vbWlkYSxwJmktb24sb2hzZGFlcnBzeW0sP3RmaWhzcmV5YWwuaix2cmVzLWhuLHlzcmFiLD8/cnBvYyw/cHNvaCxzaG4/dCZlbj9ubXlwLHNldXFuaS10bmVkbmVwZWRuaSw/dm9nIS4mZWNpdnJlcyxpcGEsbmdpYXBtYWMsPz93ZWl2ZXItdG5lZG5lcGVkbmkseSZyaXVxbmktJmNpbGJ1cCx0bmVkbmVwZWRuaSw/c3JhYiw/Pz8/bCYwNHNyNHctLW54P2EhLiZncm8/bGltP21vYz90ZW4/dWRlP3ZvZz8/Ym9sZyEuZXRpcndwcGEsP2M/ZWQ/ZyFlbD8/aSZjJm5hbmlmIS5vYyxscGw/P29zPz9yb21lbT90bmVkdXJwPz9uJmlmP29pdGFucmV0bmk/P3QmaSZnaWQ/cCZhYz9zb2g/Pz9uZWQ/b3Q/Pz9jIS4mYm9nP2xpbT9vYz9zbmR1b2xjLHZvZz8/P2RpbD9lJmRhdGljP24mYWhjP25haGMhcmVodGFldz8/P3Qhb2g/cmlhP3RhbT8/dmFydD8/ZiY4ZiZwYmdvLS1ueD90YmdtLS1ueD8/YT9uPz9nIS4mZ3JvP21vYz9vYz90ZW4/dWRlPz8/aCZkP29wPz9pIS4mMjFrP2NhP2ZkaT9ncm8/aW51bT9vYyEuJmVnYXB2YXIscmVkcm90aWJhdCx0aWJhdHltLD8/dGVuP3ZvZz8/YSZmP20mZSEuJmhjdW90bmksa3dhdC5wLG90a3dhdC5wLD8/Zz90b2g/Pz9tP3I/P2wmYSZiJmVzYWI/dCZla3NhYiEuJnN1YSx6biw/P29vZj8/P2M/bXQ/P2UmZD9ocz8/aWhtYWlsbGl3P2o/P20hLiZjYT9lc3NlcnA/Z3JvP21vYz9vJmZuaT9zc2E/P3JwP3QmZW4/cmE/c25pPz91ZGU/diZvZz91b2c/Pz8/biEuJmV0aXNiZXczMjEsbm8mbWVkLHJ0c2ljLD9vYyxwb2hzZGFlcnBzeW0scmV0c3VsYy1nbml0c29oLHZvZyx5YWxwaGssP28/P28mYT9idHVmP2whLmdtbyw/byZjIS4mZWQscm90bmVtZWxlLD8/aGNzPz9yaXQ/dT8/cCEuJjJ1b3ksYSZjaW4mZGl3cz9nZWw/P2QmZyxvcnRzbz91cmF3b24/P2kmZGVtP21yYXc/bnlkZyw/ayZlbG8mZ3VsZD9ydHNvPz9zbG9wb2xhbT90c3U/eXRzeXJ1dD8/bCZpcD9vJmt6cz93Ji1hd29sYXRzP29rc25vaz8/Pz9tcmlmZCxuJmVyYXBvaHMsaW1nP3pjZWwsP3JvZyYtYWkmYmFiP25lbGVqPz9qP3o/P3N5bj90c2FpbT93JmEmbCZlaWI/aT9vPz96c3Jhdz8/byZuYW1pbD90YWlub3AsPz96JmVpd29sYWliP21vbD8/P2MmZSZpdyZhbHNlbG9iP28mbnNvcz9ydHNvPz8/bGUmaW0/enJvZ3o/Pz9vcncscD8/ZCZlbSxpYT9yYWdyYXRzP3VvbGMmaW51LHNkcyw/P2UmYyZpJmxyb2c/bmFpYmFwLHcmZWlucmVpa3MsaWxnLG8maGMmYXJhdHM/b3JwPz9rbG9wP3Rhaz8/Pz95enJlaWJvaz8/aSZjc2p1b25pd3M/a3Nyb21vcD9zYWxkb3A/P2wmYWhkb3A/b3BvPz9uYXBva2F6LHQmYXRzZWxhZXI/aXNlbHBtaXMsP3omcm9tb3A/c3dvemFtPz8/ZyZhbGJsZT9lenJibyZsb2s/bnJhdD8/cm8/P2hjeXpyYmxhdz9pJmNzb21vaGN1cmVpbj9ncmF0P2tsYXd1cz8/ayZjb2xwLGUmcnV0P3dhbGNvbHc/P2luJmJ5cj9kaXdzLHNhcmssP2xlP28mbmFzP3RzeWxhaWI/P3JvYiZlbD9sYW0/P3MmYWxzP2phemVsP25hZGcscHVscz9yb3dlenJwPz8/bCZjb2x3P2Umcj92YXJ0Pz9pJmFtP20/Pz9tJm8mYz9kYXI/bj90eWI/P3MmZz9pcnVvdD8/dCFhPz8/biZhJmdhej9uem9wLD9pJmJ1bD9jZXpjenM/bGJ1bCxtb2xvdz9ub2s/emQmZWI/b2JlaXdzPz8/dSZsZWl3P3JvdCw/eSZ0enNsbz96JnJ0ZWs/c2VpYz8/Pz9vJmMsZm5pP2smY2Vsbz9zbGVpYix6ZG9saz8/bGthbj9uJmxlaW0/cGVrP3QmdWs/eXpjenM/P3omY29wbz9laW5nP3Jvd2FqPz8/cmdhP3Qmbm9rZCx1YT8/dyZlamFyZz9vZ2FybT8/P3AmZSZlYixsa3MhZW1vaCw/P2tsd3dvcnRzbz9vaHMhLWVjcmVtbW9jZSxkYWVycHN5bSw/P3JvbW9waGNhej9zJmtsb2ZjLG9zPz90JmFpd29wP2VuP29wb3MscmEsc2V6Yz8/dWRlP3YmaXJwP29nIS4mYSZpbz9wP3Mhdz8/P2JuaSZwP3c/P2NpP2R0aXc/ZSZrbz9zcyZwP3c/Pz9maXc/ZyZpbXU/dT8/aGlpdz9tJmlndT9yaW8/dSFvPz8/bmRzIWlwej8/byZrcz9wIXB1Pz9zP3d0c29yYXRzPz9wJmE/c3AhbWs/cGs/d2s/P3UmbT9wPz93az96Pz9yJmhjc28/a3N3P3A/cz8/cyZpP29pdz91P3p1Pz90YWx1c25vaz93Jmd6cj9pJnA/cmc/dz8/bT9vJm8/cHU/P3UhaW16dz8/P3oma3c/b3V3Pz8/Pz93JmEmbCZjb3J3P3NpemRvdz8/dz8/byZnb2xnP2smYXJrLHVsP3pzdXJwPz9yJmF6P2dldz8/dCZyYWJ1bCxzdWd1YT8/eiZjb2tzP3NlenI/Pz8/eGVzP3kmYnV6c2FrP2QmYXpjenNlaWI/aWtzZWI/P2hjeXQ/biZqZXM/bG9kLXpyZWltaXphaz8/cGFsP3Imb2d0P3V6YW0/P3dhbHVwP3p1dHJhaz8/eiZhbS1hd2FyP2MmYXByYWs/aXdvbD96c29nZHliPz9kJmEmbGV6Yz9yZWlzLD9vbCw/aWI/cmVpZ3oscyZpJmxhaz9wPz91a2xvPz8/P2w/P3ImYXM/Zj9zPz9zIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/P3QhLnZvZz8/dWJuYXRzaT94M2I2ODlxcTYtLW54P3ljNXJiNTQtLW54Pz9tJjAwdHNiMy0tbng/MXF0eG0tLW54Pzk4MXJ2ai0tbng/YSEuJmVudW1tb2M/Z3JvP21vYz9vJmM/aWRhciw/dGVuPz9jIWJldz8/ZHJldHNtYT9lJnJ0cz90IS4mY2l0c2FsZWosZXNydW9jc2lkLD8/P2ZtYT94cS0tbng/P2IhLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz9pPz9jIS4mbW9jP29jP3Rlbj92b2c/Pz9kIS4mZ3JvP21vYz9vYz90ZW4/dWRlP3ZvZz8/P2YhLiZncm8/bW9jP29pZGFyLHRlbj91ZGU/P2k/P2chdnU5NmQ4c3l6Zi0tbng/P2g/aSEuJmNhP2dybz9tb2M/b2MhLiZjbHA/ZHRsPz8/dCZlbj90Pz92dD8/az9yYmc0LS1ueD8/ayEuJmRycD9lJnJpYW5pcmV0ZXY/c3NlcnA/P2dybz9saW0/bSZvJmM/bj8/dD8/bmljZWRlbT9vc3NhP3Bvb2M/cyZlcmlhdG9uP25laWNhbXJhaHA/c2E/P3VkZT92Jm9nP3VvZz8/Pz9sJmlmP29oa2NvdHM/P28hLiZkZW0/Z3JvP20mb2M/dWVzdW0/P28mYz9ycD8/dGVuP3VkZT92b2c/P2I/YyEuJjB4LDEmMjFzZXNhaWxhLGRuYTEtc3BwYSw/MmFxLDNwbWV2cmVzLGEmYyYtbW9yZixpciZiYWZubyxmYSw/P2cmLW1vcmYsb3ktc2VoY2FldCw/aS1tb3JmLG0mLW1vcmYsYWxsJi1hLXNpLGFtYWksPz9wJi1tb3JmLGMtYS1zaSw/cmVtYWN5dGlydWNlc3ltLHMsdCZhZHRzdWRnbmlodCxlbXRhLD92LW1vcmYsdy1tb3JmLHosP2ImZXcmLXNuZG55ZCxhcnVrYXMsZHJhaXcuc2VnYXAsb3R0YWQsP2lsZHRzLmlwYSw/YyZhbXl0aXJ1Y2VzZW1vaCxkLW1vcmYsZXN5cmNzLGl0c2FsZWoub21lZCxuJi1tb3JmLHZ5bSw/cCZrcm93ZWh0LHl0aXJ1Y2VzZW1vaCw/cmlldnJlcyxzLW1vcmYsP2QmYWVyb3RmZnV0cyxlJmJtZS1kZXRzb2gtYXZuYWMsY2FscGIsaWZpdHJlYy0mc2ksdG9uLXNpLD9yZXdvcGVuaWduZXB3Oi5zaiwsdHNvaCYtc2NvZGVodGRhZXIsMmEsZWNhcHNwcGEsPz9pJi1tb3JmLHBhcnBjLHJnZXZpc3NhbS5zYWFwLD9tLW1vcmYsbiYtbW9yZixhYmVodC1odGl3LXNpLD9vcnBub25kdW9sY3dtLHMtbW9yZix1b2xjJi1ub2l0YXRzeWFscCxlaHRnbml0dW9yLGhyLGlhZmF3LmQmZWoseXIsP21lYWVib2RhLG5ldmlhLHBhbnF5bTotJmFocGxhLHZlZCw/LHMmYW55bSxtZXRzeXN0dW8sP3ZlZCZqLHB3LD8/dnJlc2VyLHdldG9tZXIsP2UmYnV0dW95aHRpdyxjJmFwc3lsb3AsaSZmZm8tc25kbnlkLHZlZGxvb3R4LD8/ZDotbW9yZixvJmMmYXZuYWMsZWxnb29nLD9uJmlsLnNyZWJtZW0sbmV2ZS4mMS0mc3UsdWUsPzItJnN1LHVlLD8zLSZzdSx1ZSw/NC0mc3UsdWUsPz8/PyxlcmYmLXNuZG55ZCxzbmRkLD9maWxmbGFoZXZyZXMsZyZhcm90cy03N25kYyxkZS15bHRzYWYsbmFoY3hlZXZyZXMscm9mLW5vLD9pJmhjZXQtYS1zaSxwLXNla2lsLD9rJmF1cWV2cmVzLGlydHNyZXRudW9jZXZyZXMsP2wmYml0cGEtbm8sZ29vZ2h0aXcsP20mYWdldnJlcyxpbmEtb3RuaS1zaSxvaC0mc25kbnlkLHRhLXNuZG55ZCw/P24mLW1vcmYsaWxub3lzcmFiLG9nLXNpLD9wYWNzbGVkb20sciZhbGZkdW9sY3lydCxlaHd5bmFub2h0eXA6LnVlLCxpaGNlYyw/c3J1bi1hLXNpLHQmaSZudWFyZXBvLHMmLXliYm9oLGFsb3ksYmV3LWV2aWwsZWxwbWlzLHJvZGFiZXcsdGlwb2hzLHhpdyw/P29tZXItc25kbnlkLHlzZ29sYiw/diZhbHMtZWxjaWJ1Yy1hLXNpLGl0YXZyZXNub2MtYS1zaSw/eiZhbWtjYXIsZWVsZyxpaWcsPz9mZWhjLWEtc2ksZyZuaSZnYXRzLSZyYWVnaHR1YSxzd2VubndvdCw/a3NuZGQscm9ic2lrcm93LHRzb2gmLWJ0LmV0aXMsZWRhbGJkZXJpdyxvdmlwLHVueWQsPz9vJmZncCxsYiYtc25kbnlkLGFuZXRhaCxzaWh0c2V0aXJ3LD8/P2gmbi1tb3JmLG8tbW9yZiw/aSZmaXdlaHRubyxoLW1vcmYsa2l3LXNuZG55ZCxtLW1vcmYscCZhZXJvY25lLGRldHNvaCw/ci1tb3JmLHctbW9yZix6JmloY3BwYSxuaWxwcGEsPz9qbi1tb3JmLGsmYSYtbW9yZixlcmZvY3NpYyw/Y2lscy1zaSxlZWcmLWEmLXNpLHNpLD9zbmRkLD9oLGxhdHNuYWViY2l0c2FsZTouJjEtJmh0JnJvbi11ZSx1b3MtJmVtLGZhLHBhLHVlLD8/bGFydG5lYy0mYWMsZW0sbGksdWUsP3RzJmFlJi0mYXMscGEsc3Usdm9nLXN1LD9odCZyb24tcGEsdW9zLXBhLD8/ZXctJnN1LHVlLHZvZy1zdSw/Pz8yLSZodHVvcy11ZSx0cyZhZSYtc3UsaHQmcm9uLXBhLHVvcy1wYSw/P2V3LSZzdSx1ZSw/Pz8zLXRzJmFlaHQmcm9uLXBhLHVvcy1wYSw/ZXctdWUsPzUtdHNhZWh0dW9zLXBhLDctdHNhZWh0dW9zLXBhLD8sbmlsLWthZXJ0cyxvLW1vcmYsciZhZGh0aXd0bGl1YixvdyYtJnNuZG55ZCx0YS1zbmRueWQsP3Rlbi1vcmVoa2NhdHMsPz9zZWRhbCx1LD9sJmEmLW1vcmYsY29sb3R0YWQscmViaWwtYS1zaSw/Zi1tb3JmLGkmLW1vcmYsYW0mLXNuZG55ZCxkZXRzb2hwdyw/P2xlY2VsZmZhdyxydS0mZWxwbWlzLHRhZW4sPz9tJm4tbW9yZixyb2YmZSZweXQub3JwLHJlcmFjLWh0bGFlaCw/dGFscC1ldmlyZCw/c2FjcmFzZXZyZXMsdWlyYXJyZXQteWx0c2FmLD9uJmEmY2lsYnVwZXItYS1zaSxmJi1zbGx1Yi1hLXNpLHJhY3Nhbi1hLXNpLD9pJmNpc3VtLWEtc2kscmF0cmViaWwtYS1zaSw/dGFydWthcyw/YyxkYyZoc3Vtcyx1bXB3LD9lZXJnLWEtc2ksaSYtbW9yZixqb2QsP20tbW9yZixvJmVodG5hcHRvZyxpc2FtLWFsLWEtdHNlLHJ0YXAtZWwtdHNlLHMmaWFtLWFsLWEtdHNlLHJlcGxhdXN1bnUsPz9waix0LW1vcmYsP28mYyxoY2UtbmFtdHNvcCxpZHV0c3hpdyxqb2RzbmQsbSYtbW9yZixlZC1iYWx0bG93LD9uaWxveGlwLHQmaW5nb2Nub3phbWEuJjEtJmh0JnJvbi11ZS5odHVhLHVvcy0mZW0uaHR1YSxmYS5odHVhLHBhLmh0dWEsdWUuaHR1YSw/P2xhcnRuZWMtJmFjLmh0dWEsZW0uaHR1YSxsaS5odHVhLHVlLmh0dWEseG0uaHR1YSw/dHMmYWUmLSZhcy5odHVhLHBhLmh0dWEsc3UuJmh0dWEsc3BpZi1odHVhLD92b2ctc3Uuc3BpZi1odHVhLD9odCZyb24tcGEuaHR1YSx1b3MtcGEuaHR1YSw/P2V3LSZhYy5odHVhLHN1LiZodHVhLHNwaWYtaHR1YSw/dWUuaHR1YSx2b2ctc3Uuc3BpZi1odHVhLD8/PzItJmh0dW9zLSZwYS5odHVhLHVlLmh0dWEsP2xhcnRuZWMtdWUuaHR1YSx0cyZhZSYtc3UuJmh0dWEsc3BpZi1odHVhLD9odCZyb24tcGEuaHR1YSx1b3MtcGEuaHR1YSw/P2V3LSZzdS4maHR1YSxzcGlmLWh0dWEsP3VlLmh0dWEsPz8/My10cyZhZWh0JnJvbi1wYS5odHVhLHVvcy1wYS5odHVhLD9ldy11ZS5odHVhLD80LXRzYWVodHVvcy1wYS5odHVhLDUtdHNhZWh0dW9zLXBhLmh0dWEsNy10c2FlaHR1b3MtcGEuaHR1YSw/dGFkeW0sPz9wJjJwZXZyZXMsYWVsdXR5bSxpJi1zbmRueWQsZmxlcyxvZ29sLHJ1b3kmZXNvbCxoY3RpZCw/eW0mZWVyZix0ZWcsPz9taXJoc2VsYm11YixvaHMmZGFlcnBzeW0sdW5ldml2LD9wYSYtJmVtYXMsc2VsdWNyZWgsP2FuaXM6cGl2LCxlc2FiZXJpZixpcGFydHM6LmFpZGVtLCxrMSxudXNwdSxvaWZpbGF1cSxyb2V0ZW06LnVlLCxzbnJldHRhcGNpZ2FtLHRpbG1hZXJ0cyx1a29yZWgseWZpbHBtYSw/dCZmZXZyZXMsdGhldnJlcyw/P3ImMDgxLGEmLW1vcmYsdHNrY29yLWEtc2ksP2I6YXNuZCwsZSZkJml2JmVycC15Yi1kZXRzb2guc2FhcCxvcnBud28sP25lciYucHBhLG5vLD8/ZSZiZXZyZXMsbmlnbmUtbmEtc2ksP2dnb2xiLWEtc2ksaCZjYWV0LWEtc2kscGFyZ290b2hwLWEtc2ksP2tyb3ctZHJhaC1hLXNpLG4mZ2lzZWQtYS1zaSxpYSZydGxhbm9zcmVwLWEtc2ksdHJldG5lLW5hLXNpLD8/cCZhY3NkbmFsLWEtc2ksZWVra29vYi1hLXNpLD9yZXRhYy1hLXNpLHN1YnEsdG4mZWN5c3JhYixpYXAtYS1zaSx1aC1hLXNpLD92cmVzJi0ma2kuJmNwai1yZXYtZHVvbGNqLGR1b2xjaiw/cyZuZG55ZCxwdnRzYWYsPz9iZHltLGluaW0sbm1hZCxwYyxzYWssP3kmYWxwLWEtc2ksd2FsLWEtc2ksP3ppbGlib21kZWVwc2VnYXAsP2csaXR1b2IsbWdycC5uZXgsbyYtbW9yZixwYXYtbm8sc2l2ZGFsYWljbmFuaWYtYS1zaSx0JmFyZWxlY2NhbGFib2xnc3dhLGMmYS1uYS1zaSxvZC1hLXNpLD9zdXNheW0sPz9wLW1vcmYsdSZhcy1vLW55ZCxlJnRzb2guJmR1b2xjLWdhcixoYy1kdW9sYy1nYXIsP3Vnb2xiLW5vbS10c2UsP29tdWhldnJlcyw/P3MmYSZhcG9kLGlsYSZueWQsc25kLD9uJmR1b2xjeW0seW1zZCw/dm5hYyYtc3VlZCxyZW1hcmYsPz9iJmFsLWVjaXIsYmV2cmVzLD9jJmR1b2xjYWJhYmlsYSxpJnAmLXNuZG55ZCxldnJlcyw/dGNhdHl0aXJ1Y2VzLD8/ZHlsaW1hZixlJmNpdmVkLWFuZWxhYixpdGlsaXR1MyxsYWh3LWVodC1zZXZhcyxtYWctb3RuaS1zaSx0JmkmaWlzLHNybyw/eXNrY2l1cSw/dWdhZWx5YWp5YXJnLD9mcGktJmVyYWxmZHVvbGMsZmMsP2kmaHQydG5pb3AsbXVydWQscGEmZWxnb29nLHRuZWx0bmVnLD8/amZhYyxrJi1tb3JmLGFlcmYtdGVuLGNvbGImZWdyb2YscG9oc3ltLD9uaWxrYWVydHMsP20tbW9yZixuJmQmLXBtZXQsZCYtcGksdW55ZCx5YXJkLD9nb2xiLGh0aXdzc2VtLGxvb2MxLG1vb2QscmJhLHRvZyw/a3NlbHAsbnlkLG9vdHJhYy1vdG5pLXNpLD9vJi14b2JlZXJmLHhvYmVlcmYsP3BwYSYtYXZuYWMscmFlZ2h0dWEsc3dhLHRuZWcsP3ImYWMtb3RuaS1zaSxlJm50cmFwLXBhZWx1dCx0c29obWFlcmQsPz9zJmUmbC1yb2Ytc2xsZXMscnRjYS1uYS1zaSw/aWJvZHltLD90c2FlYi1jaWh0eW0uJmEmbGxpY25vLHpubyw/aWxheSxsYWNhcmFjLHJlJmdpdG5lZixtb3RzdWMsP3N2LHRvbGVjbyx4Om4maWhwcyx5bCw/LD91LHdhbm96YW1hLiYxLSYzcyxodCZyb24tdWUmLTNzLC4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/P3Vvcy0mZW0mLTNzLC4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/P2ZhLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3BhJi0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/P3VlLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz8/bGEmbnJldHhlLTNzLHJ0bmVjLSZhYyYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyxzcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3NwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/P2VtLiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/bGkuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zZnYsP2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD91ZSYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MseWF3ZXRhZy1zY2l0eWxhbmEsPz8/P3RzJmFlJi0mYXMmLSYzcyxldGlzYmV3LTNzLD8uJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/P3BhJi0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz9zdTotZXRpc2Jldy0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGQmZXRhY2VycGVkLTNzLG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/P2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLHlhd2V0YWctc2NpdHlsYW5hLD8sdm9nLXN1Ji0mM3Msc3BpZi0zcyw/LiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/P2h0JnJvbi1wYSYtJjNzLGV0aXNiZXctM3MsPy4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLHlhd2V0YWctc2NpdHlsYW5hLD8/dW9zLXBhJi0mM3MsZXRpc2Jldy0zcyw/LiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MseWF3ZXRhZy1zY2l0eWxhbmEsPz8/P2V3LSZhYy4mM3MsYWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyxzcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3NwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3UmLSYzcyxldGlzYmV3LTNzLD8uJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/dWUmLSYzcyxldGlzYmV3LTNzLD8uJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGQmZXRhY2VycGVkLTNzLG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/P2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/P3ZvZy1zdSYtJjNzLGV0aXNiZXctM3Msc3BpZi0zcyw/LiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/Pz8/Mi0maHR1b3MtJnBhLiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/dWUuJjNzLGFkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/bGFydG5lYy11ZS4mM3MsYWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3RzJmFlJi1zdSYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkJmV0YWNlcnBlZC0zcyxvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsPz9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyxzcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3NwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/P2h0JnJvbi1wYSYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MseWF3ZXRhZy1zY2l0eWxhbmEsPz91b3MtcGEmLSYzcyxldGlzYmV3LTNzLD8uJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/Pz8/ZXctJnN1Ji0mM3MsZXRpc2Jldy0zcyw/LiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkJmV0YWNlcnBlZC0zcyxvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsPz9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyxzcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3NwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/P3VlJi0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz8/Pz8zJi10cyZhZWh0JnJvbi1wYSYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz91b3MtcGEuJjNzLGFkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/ZXctdWUmLTNzLC4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/P3MsPzQtdHNhZWh0dW9zLXBhLiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/NS10c2FlaHR1b3MtcGEuJjNzLGFkYm1hbC10Y2VqYm8tM3MsZGV0YWNlcnBlZC0zcyxldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP2xhYm9sZy0zcy50bmlvcHNzZWNjYS5wYXJtLD95YXNkcm9jc2lkLD90JmFyY29tZWQtYS1zaSxjJi1tb3JmLGUmam9ycGVsYmF2b2wsdGVkYXRhZC4mZWNuYXRzbmksb21lZCw/Pz9lJmVsJi1zaSxyZWJ1LXNpLD9ub3RsYWNvbCw/aGdpbGZodGl3bGV0b2gsaTpiYXR5bSxuZWxwLTEmYWwsc3UsdWUsPyxtLW1vcmYsbiZhdG51b2NjYS1uYS1zaSxlJmR1dHMtYS1zaSxnYSZ0bmVncmVtZS53ZWl2ZXJwLHlvbHBlZCw/ci1vdC1lY2Fwcyx0bm9jcmVzdSZhaGNvbSxidWh0aWcsZSZjYXBzcHBhLGRvbmlsLnBpLGxiYXZyZXNiby5jaXRhdHMsdmF0LD9rYWVydHMscGwsPz8/b3BzJmVkb2MsZ29sYixwcGEsP3MmaSZoY3JhbmEtJmEtc2ksbmEtc2ksP2xhaWNvcy1hLXNpLHBhcmVodC1hLXNpLHRyYS1uYS1zaSx4ZXRuJm9kLHNlb2QsPz9vaCYtZWNhcHNiZXcscGl5bSxzZm4sPz91Ji1tb3JmLG55ZWtjb2gtYXNpLD92LW1vcmYsP3UmLXJvZi1zbGxlcyw0LGUsb3luYWh0cmV0cmFtc3NpLHI6dWcmLWEtc2ksc25kZCw/LD92JmVkLXNlbHVjcmVoLG4tbW9yZixyZGxmLHctbW9yZiw/dyZlaXZlcnAtZW1hcyxvJmxwd29ucy15cnQsem9rLD8/eCZic2JmLnNwcGEsZW0saW51ZW1vaCxvYmRuYXMtNDRlc2FiLHQtbW9yZix1bmlsZW1vaCw/eSZhJmJueDouJjJ1LGxhY29sLTJ1LD8sbGVyb3R0YWQscC1jc2J1cyx3ZXRhZy1sbGF3ZXJpZiw/ZCZuYWNzZWtpbCx1dHMtdGNlam9ycC52ZWQsP2ZpcG9oc3ltLGsmLW1vcmYsbmlrc2lzbmQsP3ImYWlkYW5ldGFoLG90Y2VyaWRldml0Y2F5bSw/dWdvbyx3LW1vcmYseCZhbGFna2VlZyxvcnBtYXBzb24uZHVvbGM6LjU2M28sLD8/eiZlc2Ryb2NzaWQsdGlsYmNpdGF0cy0mcHJvYy13LHNzZWxsYWl0bmVkZXJjLXcsdyw/Pz9pbnU/P20/b3I/dHNsYT8/cCEuJmVtYW4sbndvLD8/cmFmIS5qcm90cyxldGF0cz8/cz90IS4mZ3JvP2xpbT9tbyZjP24/P29jP3Rlbj91ZGU/dm9nPz8/dSZlc3VtP3JvZj8/eiEuJmNhP2dybz9oY3M/bGltP21vYz9vJmM/Zm5pPz90ZW4/dWRlP3ZvZz96aWI/Pz8/biYzMTVybWktLW54P2EmYnJ1ZD9jaWxidXBlcj9mIS5ta20sP2dyb21waj9oa2FnYT9tP29sP3NzaW4/dSZoaXg/cW5hPz92YXJhYz95YWxvPz9iIS4mZ3JvP21vYz9vYyx0ZW4/dWRlP3ZvZz8/Yz8/YyEuJmFoP2JoP2MmYT9zPz9kJjV4cTU1LS1ueD9nP3M/dW9sY3BhbnF5bSw/ZSZoP3Rpc2F2bmFjLnltLD9nJmxhMGRvLS1ueD9ybz8/aCZhP3E/cyEuc2EsPz9pJjdhMG9pLS1ueD9oPz9qJmI/Zj9zaGssdD94P3o/P2toP2wmaD9pbT9qPz9tJm4/b2MhLiZyZWthbWVnYXMuMS0maHRyb24tbmMuJmtvb2JldG9uLG9pZHV0cyw/dHNld2h0cm9uLW5jLiZrb29iZXRvbixvaWR1dHMsPz9zJmVjaXZyZXNiZXdub3phbWEubm8uMS0maHRyb24tbmMucHBhYmV3LXJlZnNuYXJ0LHRzZXdodHJvbi1uYy5wcGFiZXctcmVmc25hcnQsP3dhbm96YW1hLiYxLSZodHJvbi1uYy4mM3MsYWRibWFsLXRjZWpiby0zcyxkJmV0YWNlcnBlZC0zcyxvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsPz9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3RzZXdodHJvbi1uYy4mM3MsYWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/YmUuMS0maHRyb24tbmMsdHNld2h0cm9uLW5jLD8/Pz8/P24maD9sP3M/eT8/b20/cWM/cyZnP2o/cHBhLWF2bmFjLD90JmNlbm5vY2tjaXVxLnRjZXJpZCxlbj8/dWRlP3ZvZz93dD94Jmc/aj9uP3M/P3omZz94Pz9cdTUzZjhcdTUxNmM/XHU3ZDYxXHU3ZGIyP1x1N2VkY1x1N2Y1MT8/Yj8/ZCZnIS55cG5jLD9rYT8/ZSZkcmFnP2VyZz9mdWFrP2hjdGlrP2kmbGlib21taT93Pz9tP3BvP3IhZWRuYWFsdj8/c2llcj92ZXM/P2chLiZjYT9ncm8/bW9jP3Rlbj91ZGU/dm9nPz9pcyZlZCEuJmNpaHBhcmcsc3NiLD8/aXJldj8/P2ghLiZib2c/Z3JvP2xpbT9tb2M/dGVuP3VkZT8/P2khLiZhYz9iZXcsYyZhP2luPz9kbmk/ZSZtP3NhYmFwdXMsP2cmNT82P3A/cm8/P2kmYT9obGVkPz9rJm5hYj91Pz9sJmV2YXJ0P2ltPz9tJmE/b2M/cmlmPz9uJmM/ZWc/aWY/P28mYz9mbmk/aT9ycD8/cCZvb2M/dT8/ciZhaGliP2Q/ZT8/cyZjP2VyP25kdW9sYyxzZW5pc3ViP3U/dmVkbmksP3QmYXJhanVnP2VuIXJldG5pPz9uaT9zb3A/P3VkZT92Jm9nP3Q/P3lzcmFiLHppYj8/ZWxrbml2bGFjP2dyaXY/a3M/bHJlYiEuc25kZCw/cD92P3c/eD8/ayEuJmdybz90ZW4/dWRlP3ZvZz8/P2wmZW9rP29jbmlsPz9tIS4mY3luLGdybz91ZGU/dm9nPz8/byZkbm9sP2kmaHNhZj9uJm8/dXRpZGVyYz8/c2l2IW9ydWU/P3QmYSZjdWRlIS5vYyw/ZG51b2Y/dHN5YWxwPz9jJmV0b3JwP3UmYT9ydHNub2M/Pz8/P2tpbj9sYXM/bXJvbT9uYWM/cCZxP3VvYz8/cyZpYW0/cGU/c2NpcmU/P3Qmcm9uP3NvYj8/emFtYT8/cCEuJmdybz9vYz90ZW4/dWRlP3ZvZz8/az8/ciZlJmM/eWFiPz9vcD8/cyEuJmdybz9tb2M/dHJhP3VkZT92JmludT91b2c/Pz8/dCEuJmQmbmk/dW9sY2VnbmFybyw/Z3JvP2x0bmk/bSZvYyFuaW0/P3NpcnVvdD8/bmlmP28mZm5pP3NyZXA/P3NuZT90JmFuP2VuPz92b2c/P20/P3UmZiEuJnBjaSZ2LHkseiw/c20sPz9yIS4mYSZyYWlsOi5uYXJpLCx2bmFjLD9iZG5ldmFyLGVsJmJhdm9sLGRlZW4sP2wmYXY6LmJldywsZWNyZXYscGVyLD9yZXRyb3Bubyx0JmlrY2F0cyxuZW1wb2xldmVkLD94aXcsPz9zdGFkP3hhbWF5P3k/P3YhLiZhJmxub3M/b2hobmFoJms/dD8/P2MmYT9vdWhwaG5pYj91aHBobml2Pz9kaT9lJm1hbj9ydG5lYj91aCFuZWlodGF1aHQ/Pz9nJm4mYSZib2FjP2lnJmFoP2NhYj9uJmE/ZWkmaz90Pz8/dWFoPz9uYWQ/cnRjb3M/dXFuZXl1dD8/byZkbWFsP2hwaWFoP2xobml2P25rYWQ/dWQmaG5pYj9pYWg/Pz8/cm8/P2gmbmkmYiZhb2g/Z25hdXE/aG5pbj9pYWh0Pz9kJmhuaWI/bWFuPz9taWhjb2hvaHBobmFodD9uJmNhYj9nbmF1cT95YXQ/P3RhaD92YXJ0Pz90bGFlaD8/aSZhIWJuZXk/Y29hbD9nbmduYXVxP2xhaWc/bmdub2Q/P29uYWg/cnRnbmF1cT8/a2Fsa2FkP20mYW4mYWg/Z25hdXE/P29jP3V0bm9rPz9uJmEmZWhnbj9nbm9sP2tjYWI/dWh0aG5pJmI/bj8/P2UmaWJuZWlkP3kmZ251aD91JmduaWFodD9ocD8/Pz9vc2duYWw/P28mZm5pP2h0Jm5hYz91aHA/P2k/cnA/P3BhaHRnbm9kP3QmZW4/bmk/P3UmYSZoY2lhbD9tYWM/dGdudXYtYWlyYWI/P2RlP2VpbGNhYj8/dm9nP3ppYj8/P3dvJnJjP3QhZXBhYz8/Pz9vJjc2aTRvcmZ5LS1ueD9hIS4mYnA/ZGU/ZyZvP3JvPz9vYz90aT91ZGU/diZnP29nPz8/Ym9hdD8/YiEuJmEmY2kmc3VtP3RpbG9wPz9pJmMmYXJjb21lZD9uZWljPz9nb2xvJmNlP25jZXQ/P20mZWRhY2E/b25vY2U/P3J0JmFwP3N1ZG5pPz92aWxvYj8/biZlZ2lkbmk/aWNpZGVtPz9zZXJwbWU/dHNpdmVyP3ZpdGFyZXBvb2M/P2ImZXc/b2c/P2R1bGFzP2UmcmJtb24/dHImYT9vcCZlZD9zbmFydD8/Pz9nJm9sYj9ybz8/aWtpdz9sJmEmbm9pJmNhbmlydWxwP3NlZm9ycD8/cnV0YW4/P2ltPz9tb2M/byZmbmk/bGJldXA/cmdhP3RuZWltaXZvbT8/c2FpY2l0b24/dCZhc2t0P2VuP25pPz91ZGU/dnQ/P2g/aWV3P29sZz8/YyEuJmRyJmMscmFjLD9lc2FiYXB1czouZSZnYXJvdHMsbWl0bGFlciw/LGdybz9pcHltLGwmaW0/cGVyOi5kaSwsP21vJmM/bj8/b3NtdSxzJmVnYXAmZGFlbCxsLD9uZGloLD90JmVuP2lscGVyZGVsbGF3ZXJpZjouZGksLD91ZGU/dm9nPz9hP2U/aW4/bWFyYT9zJmVkYXJiP2ljPz8/ZCEuJmImZXc/b2c/P2Rscz9ncm8/bGltP21vYz90JmVuP3JhPz91ZGU/dm9nPz9hZ29iYT9pZj96ZDdhY2JnbS0tbng/P2UmYz9kJml2P29yPz8/ZiFuaSEuJmRsYXd0dGltLGUmZyZkZWx3b25rLWZvLWwmZXJyYWIsbGVycmFiLD9lbGxvY2V2b2xpLD9odC1za29yZyxyb20tcm9mLWVyZWgsdGFkcHVzbjpkLCw/bGxhdGlzd29uayxtYWNydmQsb2ZuaS12LHAmaSYtb24sZmxlcyw/b2hiZXcsP3ImZXZyZXMmM29weXQsZGxhd3R0aW0sP3VvLXJvZiw/cyZpaHQtc2tvcmcsbmQmLWNpbWFueWQsbnlkLHVvbGMsPz90c3JpZnlhbSx5c3JhYix6bXVyb2YsPz8/ZyZlbD9uIWFtP2liPz8/aHdzb2h3P2khLiYwcGNpLDFwY2ksODMwMixhJm1pbmlmZWQsdGFkLWIsP2ImYWx0aWcsdWh0aWcsP2MmaXRlbmVlayx6aCw/ZCZldHB5cmNzLnRuZWlsYyxyYW9iZWxnYWViLHVvbGNyb3Bhdiw/ZSZjaXZlZG5pc2VyLGRvbiZwcGFkLnNuZG55ZCxyZXB5aCw/ZWdpcGEsbCZiYnViLm5kYyxlaiw/bmlsbmlnb2wsc3VmeG9iLHQmaSZiZXVsYixzbm9laHRuYXAsP25ld3R1LHliZWViLnNhYXAsP3ZhcmIsP2cmbiZhbGtyYWQsaSZnYXRzbmlzZXIuc2VjaXZlZCx0c29oJi1ici5ldGlzLHl0c29oLD8/P3JvPz9rJmNvcmVncm9mLmRpLG8mb2J0aWcscmduOi4mYXMsbmkscCZhLGosP3N1LHUmYSxlLD8/LD9yYW15dGVmYXNyZXN3b3JiLD9saW0/bSZvJmM/bj8/cm9mdGFscC1ldmlyZCw/biZhaWNpc3VtLG10c3A6Lmtjb20sLHlkZWQsP28mYz9pZHV0c3hpdyx0b3EsP3Amb3BpbG9sLHBhJi1hcnVzYWgsZXR5YmVlYi4xZGtlcyw/P3ImZGRheW0sZSZ0c25ldW0taGYsdnJlcyZjaXNhYixsYXV0cml2LD8/aWFsLnNwcGEsP3MmY29kZWh0ZGFlcixnbmlodGJldyxuZW1laXMtb20scHBhJmVsYmJ1YixvbGlrLHJldmVsYyw/dCZhY2RuYXMsZWtjaXQsPz90JmUma2N1YnRpYixuIW90b3JwLD8/aSZiZWxldCxndWRlLD9uZXRub2NyZXN1c2VlYmR1b2xjLHJhZWRvbi5lZ2F0cyxzJmV0d29sZmJldyx1ZGduaWh0LiZjZXJzaWQuJmR2cmVzZXIsdHN1Yyw/ZG9ycC50c3VjLGduaXRzZXQuJmR2cmVzZXIsdHN1Yyw/dmVkLiZkdnJlc2VyLHRzdWMsPz8/P3VkZT92JmdpYi4wa3Usb2c/P3dvbGZiZXcseCZiZHJ5bSxjcSxyb3RpZGUsP3lzcmFiLHp6cSw/Yj9kJmFyP3UmYT90cz8/P2o/cj9zeWhwPz9qIS4mZGhwP2cmbmU/cm8/P2hjcz9pJmE/cmdhPz9saW0/bSZmP29jPz9yZXA/dGVuP3VkZT92Jm9nP3Q/Pz8/bGwmYWc/bz8/bSEuJmdybz9tb2M/dGVuP3VkZT92b2c/P2c/aWw/bWk/b3JwPz9uIS4mYSYwJmItZWtoZ25hcmstLW54P2MtaWVoc3JnZXYtLW54P2ctbGtzZWRsaWctLW54P2stbmVnbmFudmstLW54Pz8xJnAtbmVkcmFneS0tbng/cS0mYXNpZXJycy0tbng/Z3JlYnNudC0tbng/bGFkby1ycy0tbng/biZlZ25pZGwtLW54P29yZi1ycy0tbng/P3JlZ25heWgtLW54P3Nzb2ZlbmgtLW54Pz9yLWRhdHNncnQtLW54P3MtbGFkcmp0cy0tbng/di15JnNlbm5lci0tbng/dnJlamtzLS1ueD8/PzNnLWRhdHNvYmVnaC0tbng/NCY1LSZkbmFsZXByai0tbng/Z29rc25lcmwtLW54P3RlZG5hbHloLS1ueD8/Ni1uZWxhZG5qbS0tbng/cy0mYW50b3V2YWNoYi0tbng/aW1wb3V2dGFsbS0tbng/P3ktJmFncmpuZXZ2YWQtLW54P2lraHZsYXJhZWItLW54Pz8/N2stYW50b3V2YWNjaGItLW54Pzgmay1yZWtpZS1lcnYtLW54P2wtbGFkcnVhLXJzLS1ueD9tLWRhcmVoc2Ryay0tbng/P2EhLnNnPz9iY3QtZWltZXV2ZWpzZW1uLS1ueD9kJmRvP2lpc2V2dmFkP2xvdj9uYXJ0cz91YXM/P2YmMS0mbC0tbng/cy0tbng/PzItaC0tbng/P2cmMTBhcTAtaW5ldmUtLW54P2F2P2V2P2xvdD9yJmFqbiZldnZhZD91Pz9cdTAwZTFqbiZldnZhZD91Pz8/P2g/aXotbGYtLW54P2omZGRhZGFiP3NlbD8/ayZlbD9ob2omc2FyYWs/XHUwMTYxXHUwMGUxclx1MDBlMWs/P2lpdiZhZyZuYSZlbD9nPz9cdTAxNGImYWVsP1x1MDBlMWc/Pz9yYW4/Pz9sJmY/bGFocmV2bz9vJm1zP3M/P3Nlbm5ldj90LSZpbG0tLW54P3RvbS0tbng/P3UmLWVkci0tbng/cz8/XHUwMGY4bXM/P211YXI/biYwLXRzci0tbng/Mi1kb2ItLW54PzUtJmFzaXItLW54P3RhbHMtLW54Pz9hJnIhLWktb20/Zj90Pz90Pz9kb3V2c2F0dmlkP2tpdj9tJm9zP1x1MDBmOHM/P24mb2Q/XHUwMGY4ZD8/cmE/c2VuP3QmYW91dmF0aGVpZz9vdXYmYSZjJmNoJmFiP1x1MDBlMWI/P2gmYWI/XHUwMGUxYj8/P24/P2kmYWc/XHUwMGUxZz8/c2EmbW8/dHR2aWQ/P1x1MDBlMW4/Pz96LXJleS0tbng/XHUwMGU2ciZmP3Q/Pz9vJnAtJmxhZHItLW54P3NlbnMtLW54Pz9xLW5hZ3YtLW54P3ItYXNucy0tbng/cy1ramtzLS1ueD92LW11cmItLW54P3ctJmFuciZmLS1ueD90LS1ueD8/dWJsay0tbng/Pz9wcG9sP3EmMC10JmJhb2wtLW54P3NvdW0tLW54P3ZlaWItLW54Pz94LSZpcHBobC0tbng/ciZlbWJoLS1ueD9pbXBoLS1ueD8/P3ktdGlua3MtLW54Pz9yJmYtYXRzci0tbng/Zy0mYW4mbXMtLW54P25kLS1ueD8/ZSZkcmYtLW54P25ncy0tbng/P211cnMtLW54P25ldGwtLW54P29sbWItLW54P3NvcnItLW54Pz9oLSZhJmxtcy0tbng/eXJmLS1ueD8/ZW1qdC0tbng/P2kmLSZsYm9oLS1ueD9yc2lyLS1ueD95JmQmYXItLW54P25hLS1ueD8/a3NhLS1ueD9sZW0tLW54P3ImdWwtLW54P3lkLS1ueD8/Pz9zdHU/P2otJmRyYXYtLW54P3JvbGYtLW54P3NkYXYtLW54Pz9rdWE/bC0mZHJvamYtLW54P2xhcmVzLS1ueD8/bS10bG9oci0tbng/bi1lc2Fucy0tbng/b2xmP3Atc2RuaWwtLW54P3MtbGFkcmwtLW54P3RpaD92LXJ2c3l0LS1ueD8/cyZhJm5zP29ucz8/aSZhcj9lciZkcm9uP3Imb3M/XHUwMGY4cz8/P1x1MDBlMXI/P2xhJmc/aD8/bW9yIXQ/P3Npcj91Zj9cdTAwZTVucz8/dCZrb3VsbyZua2E/XHUwMTRia1x1MDBlMT8/bGE/cC1yYWRkamItLW54P3ItYWdyam51LS1ueD9zJmFlZnImYW1tYWg/XHUwMGUxbW1cdTAwZTFoPz9vcmY/ciZvP1x1MDBmOD8/P3UtdnJlaWtzLS1ueD8/dSZoLWRudXNlbC0tbng/aS0mZHJvamZrLS1ueD92bGVzbG0tLW54Pz9qLWVrZXJvbS0tbng/ay1yZWtyZW0tLW54P3UtJmRuYWxyLS1ueD9nb2tzci0tbng/c2Vuc2stLW54Pz92LW5la3lyLS1ueD93LSZrJmFicmQtLW54P2l2amctLW54Pz9vcnlzby0tbng/P3kteSZkbmFzLS1ueD9tcmFrLS1ueD9uJmFydC0tbng/bmlmLS1ueD8/cmV2YS0tbng/P3otc21vcnQtLW54Pz92IS5zZz9sZWRhdHNrb3JrP3JlaWtzPz93aC1hbnRvdXZuLS1ueD94JjktZGxvZnRzLS1ueC5hb3EtcmVsdi0tbng/ZC1ubWFoZXJrLS1ueD9mLWRuYWxua3MtLW54P2gtbmVsdGxvaC0tbng/aS1kcmdlcHBvLS1ueD9qLWd2ZSZnbmFsLS1ueD9scmViLS1ueD8/bS1uZWduaWxyLS1ueD9uLWRyb2pmdmstLW54Pz95JjctdWpkYWVoYWwtLW54PzgtYW50b3V2aWctLW54P2ItJmRsb2Zycy0tbng/Z29rc21yLS1ueD9raXZyeXItLW54P3JldHNsai0tbng/P2UtbmVqc29tLS1ueD9mLXkmcmUmZG5pLS1ueD90c28tLW54Pz9zdGl2ay0tbng/P2ctcmVnYXJrLS1ueD9vcmY/XHUwMGY4cmY/P3o5LWRyb2pmc3RiLS1ueD8/YiYyNS1ha2lpdmFnYWVsLS1ueD81M2F5Ny1vbG91c2VjaC0tbng/YSZpeS1ndi0tbng/bGUtdGwmYi0tbng/cy0tbng/P24wLXlkci0tbng/P2MmMC1kbmFsLWVyZG5zLS1ueD96LW5ldG90LWVydHMtLW54Pz9nJmctcmVnbmFyYXYtcnMtLW54P28tbmVqc3NlbmRuYXMtLW54Pz9qdS1lcmRpbHMtZXJ0c3ktLW54P25qLWRuYWxoLWdva3NydWEtLW54P3EmcS1sYWRzbW9yLWdvLWVybS0tbnguJmFyaS15cmVoLS1ueD9lZG5hcz8/cy1uZXNsYWhzbGFkcmp0cy0tbng/Pz9jYSY0cy1hdHNhZWZybW1oLS1ueD84bS1kbnVzeW5ucmItLW54P2lsLXRsLS1ueD9sZS1zbGctLW54P241LXJkaWItLW54P29wLWRyZ2wtLW54P3V3LXlubnJiLS1ueD8/ZCZhJnF4LXRnZ3J2LS1ueD9yZWghbm5pdms/c2Qmb3JrP1x1MDBmOHJrPz91YXM/P3RzJmUmYmk/a2thcj9sbHloP25uYW4/P2cmb3J0P1x1MDBmOHJ0Pz9rJmFsZj9pcmRlcmY/P2xldmV2P21pcmc/b2JlZyZhaD9cdTAwZTZoPz9yJmFoP2VqZz8/Pz9iYXJtLWpkZGRiLS1ueD9pZSFyYWg/cyZldGl2az9sYWRtYW4/Pz9sb2YmciZvcz9cdTAwZjhzPz90cyZldi5lZG5hcz9vLnJlbGF2P1x1MDBmOC5yZWxcdTAwZTV2Pz8/biZhJmwmLWVyZCZuJm9zP1x1MDBmOHM/P3Jvbj8/YWRyb2guc28/ZHJvbi4mYSZnNS1iLS1ueD9yaS15cmVoLS1ueD8/b2I/eSZvcmVoP1x1MDBmOHJlaD8/XHUwMGY4Yj8/ZSZtIWxlamg/P3ByJm9qP1x1MDBmOGo/P3ZpPz9neWI/biZha3M/XHUwMGU1a3M/P28maC1nb2tzcnVhP3JmPz9yJm8/dWE/XHUwMGY4Pz90cm9zP1x1MDBmOGgtZ29rc3J1YT8/cnRzIWUmZGV2dD9sYWI/bWxvaD8/P3MmZWxsaWw/bmFpdHNpcms/cm9mPz8/dSZsIW9zPz9zIWQmaW0/bGVqdD8/ZSZndWFoP2wmYT9cdTAwZTU/Pz9ra29oP2xhdms/bmFpdHNpcms/ciZhZj9lZyZlP2llPz8/dGVmP3kmb25ub3JiP1x1MDBmOG5uXHUwMGY4cmI/Pz8/P3ImYSZibGF2cyEuc2c/P2cmZXBwbz9sYT8/P28maiZmJmEhZG5pdj9rP3ZrPz9kaWU/ZSZkbmFzP2trZWxmPz9sbGlucz9yJmllbD9vdHM/P3MmbGFiP3QmYWI/XHUwMGU1Yj8/eXQ/P1x1MDBlNSFrPz9cdTAwZTZ2az8/bGVzPz90cz8/XHUwMGU1ZyZlcHBvP2xcdTAwZTU/Pz91cmVrc3ViLnNlbj8/ZSZheWIteXJldHRuLS1ueD9kJmFyP2lzZW1tZWpoMzIxLGxvbT9yJm9mP1x1MDBmOGY/P1x1MDBlNXI/P2cmZ3lyP25hdHM/P2kmbWV1diZlanNlbSZhYW4/XHUwMGU1XHUwMGU1bj8/c2VrYWFsPz9yamVhPz9qJmQmZWY/b2tzPz9sZXM/P2smZXImYW9tP1x1MDBlNW9tPz9oZ25hJmFyaz9cdTAwZTVyaz8/aXJlZ25pcj9rb3Qhcz8/cyZpZz91YWY/Pz9sJmJtYWI/a3liP2wmYXY/ZWh0YXRzPz9vaD8/bSZpdD9vanQ/XHUwMGY4anQ/P24mYXJnP2cmb3M/XHUwMGY4cz8/bWVoP3JlaWw/dGU/dW1tb2s/eXJiPz9yJmRpbHMtZXJ0cyZldj95Jm8/XHUwMGY4Pz8/dWE/dm9kPz9zYSZhbnM/XHUwMGU1bnM/P3Qmcm9icmFhP3NwYWF2Pz91cmc/P2YmNjJhdHMtdWdzcm9wLS1ueD9hJjEwLXVqdnJla2toci0tbng/N2stdGFqanJ2LWF0dG0tLW54Pz9vIS5zZz9oPz9zIS5zZz8/diEuc2c/Pz9nJjVhbHkteXImbi0tbng/di0tbng/P2EmbGxvcj92ZSZnbmFsP2xyZWI/Pz9uJmF2IXNuZWxsdT8/b3JnPz9va3MmZGllP20mb3I/XHUwMGY4cj8/bmVyJm9sP1x1MDBmOGw/P3Imbz9cdTAwZjg/Pz9yJmViIWFkbmFyP2VkeXBzP3MmZGllP2VsZj9nbm9rP24mb3Q/XHUwMGY4dD8/Pz9vYnNwcmFzPz91YWhhdHNsYT9cdTAwZTV2ZSZnbmFsP2xyZWI/Pz9oJjBhbHUteXNtLS1ueD83JjRheTgtYWtpaXZhZ2ctLW54PzVheTctYXRrb3Vsb2stLW54Pz9hIS5zZz8/P2kmZSZoc3ImYWdldj9cdTAwZTVnZXY/P3JmPz9rJmgmYXZsYXJhZWI/XHUwMGUxdmxhcmFlYj8/cz8/bG0mYT9cdTAwZTU/P21wb3V2dGFsJmFtP1x1MDBlMW0/P3BwaCZhbD9cdTAwZTFsPz9ycm91bmFkZGxlaWQ/c3NhbmV2ZT9cdTAxNjFcdTAxNjFcdTAwZTFuZXZlPz9qJjBhb3EteXNndi0tbng/OTRiYXdoLWFraG9qcmstLW54Pz9rJmEmYiZvcmQ/XHUwMGY4cmQ/P2prcz9sbGVpcz8/aXYhYWtsZWpwcz9sJmFtP2V2cz91Pz9tYWc/bmVsP29qZz9yJmEmbD9uPz9lcG9rP2llbD95Jm9yP1x1MDBmOHI/Pz9zJmFoP2tlbD8/XHUwMGY4amc/P2thYmVuZT9vanNhcmFrP3JhbSZkZWguJmFvcS1yZWx2LS1ueD9yZWwmYXY/XHUwMGU1dj8/c28/P2UmbGV0LiZhZzUtYi0tbng/b2I/XHUwMGY4Yj8/cmE/Pz9cdTAwZTVqa3M/P2wmYSFkJmFucnVzP2QmbnVtdXJiP3Jvbj8/ZSZnbmFyZD9udGU/cyZtZWg/c2luPz90dGluPz9nJmlzP255bD8/a3JvP2wmZW0/bCZlamZ0dGFoP29mPz91JmFnLWVydGRpbT9zPz8/biZhbT9lcmE/Z29zP2kmYj9ucm9oP3I/P2tvcz9udXM/b2o/P28tJmRyb24/ciZvcz9cdTAwZjhzPz8/cHBvP3ImYSFsP25yYW0/P2UmZ25lP2w/dj8/aXM/byZqdHM/dHM/P3UmYS0mZHJvbj9yJm9zP1x1MDBmOHM/Pz9oPz9cdTAwZTU/XHUwMGU2bD9cdTAwZjhqdHM/P3MmZSZqZz9uaXZrP3J5Zj8/a2F2P21vci1nby1lciZvbS4mZWRuYXM/eW9yZWg/P1x1MDBmOG0uJmVkbmFzP3lcdTAwZjhyZWg/Pz91YWc/P3QmbGFzP3Jhamg/c3Vhbj8/diZsJmE/ZS1yb3RzPz91LWdvLWVyb24/P3l0Pz9rc2VkbGlnP3JlcyZhP1x1MDBlNT8/P2JpYiZla2xvZj9zZWtseWY/P2VzIWRhaD8/aCEuc2c/P2kmbT9zeXJ0Pz9sJmVqZj9vdiZldHN1YT9nbml0P2tzYT9zZGllPz8/biEuc2c/P28hLnNnP2JvaD9nP2g/P3IhLnNnPz9cdTAwZTUha3NlZGxpZz8/XHUwMGY4Ym9oPz9tJmEmcmFoP3ZrPz9mIS5zZz8/aCEuc2c/P2kmZSZoJmRub3J0P3J0c3VhP3NzZWo/P3JrcmVqYj8/a3NhPz9vbD90IS5zZz8/dSZkb20/ZXN1bT9yJmFiP2RyZWpnP2V2bGU/b3M/dWg/XHUwMGU2Yj9cdTAwZjhzPz90dGFscz8/P24mYSZnJmF2P29rc3NtYW4/XHUwMGU1dj8/amxpcz9vcj9yJmc/cmV2Pz8/ZSZkJmRvJnNlbj90b24/P2xhaD9yJmFneSZvP1x1MDBmOD8/b2pmc2FtPz8/ZyZpZXRzP24mYSZsJmFzP2xhYj8/biZhdms/XHUwMGU2dms/P3QmYXJnP2Rkb3Nlbj8/diZhbD9lc3Nvdj8/P2kmZCZvbD9cdTAwZjhsPz9sJmFyP1x1MDBlNnI/Pz95bD8/cmViPz9pa3M/ayZzcm90P3kmb3I/XHUwMGY4cj8/P2wmYSZkJmdub3M/biZlcj9vam0/XHUwMGY4am0/P29tPz90bG9oPz91Zz9cdTAwZTV0bG9oPz9tbWFyZD9vanMmb20/c2VuZG5hcz8/cHBvbGc/cyZsYWhzbGFkciZvanRzP1x1MDBmOGp0cz8/bz8/dCZvJmw/dC1lcnRzJmV2P28/XHUwMGY4Pz8/cm9oP1x1MDBmOGw/P3ZseSZra3lzP25hdj8/eWFtLW5haiEuc2c/P1x1MDBmOGpzJm9tP3NlbmRuYXM/Pz9nJm9yZj91amI/P2kmZG5hb3J0P3ZuYXJnPz9rb2I/bGFkZW5kdWE/bWFoZXJrJmE/XHUwMGU1Pz9uJml0P3VyZ3Nyb3A/P29yZi0mZHJvbj9yJm9zP1x1MDBmOHM/Pz9yJmFpZWI/ZXZhdHM/P3NmZXY/dWFrcz95cnRzPz9vJjZheGkteWd2dHNldi0tbng/YyxkJm9iP3Jhdj8/aWV2cz9rc3NvdWY/bCZtJm9iP1x1MDBmOGI/P291cyZhZG5hP2VjaCZhYz9cdTAwZTFcdTAxMGQ/Pz9zbyEuc2c/Pz9tc2Rla3M/bmlla290dWFrP3ImZWdhcms/b2xmP3kmb3NvP1x1MDBmOHNvPz8/cyZkYXY/bW9ydD8/P3AmZWQ/b2hzZGFlcnBzeW0scCZha2Ryb24/ZWxrPz8/ciZhJmQmZGomYWI/XHUwMGUxYj8/aWFiPz9qdGlmP2x1YWc/bWFoP3ZzeXQ/P2UmZ24mYSZrJmllbD9ybz8/bWVyYj9uJmF0P21hcz8/cmF2LXImb3M/XHUwMGY4cz8/c3JvcD90YWxmP3YmYXRzP2VsPz95Jm9oP1x1MDBmOGg/Pz9pdnNnbm9rPz9pbD9qa25pZXRzP2smYSZudmVqP3JlbT9zJmduaXI/bmVsbHU/Pz9pZS1lciZkZW4/diZvP1x1MDBmOD8/P3JhbT9zYT9cdTAwZTVyZW0/P2xhJmpmP3ZoPz9tJmImYWg/XHUwMGUxaD8/bWFoZWxsaWw/P25udWw/dHMmbCZvaj9cdTAwZjhqPz91bD8/eSZvP1x1MDBmOD8/P2ltcCZhaD9cdTAwZTFoPz9tIS5zZz8/b3Npcj90IS5zZz8/XHUwMGUxZGlcdTAwZTFiP1x1MDBlNnZzeXQ/XHUwMGY4c2lyPz9zJmFkbmlsP2VuJmRuYXM/ZSZkZ2E/ayZyaSZiP2s/P3NvbT8/dmU/P21lJmg/amc/P25yb2gtZ28tZWp2ZT9zJmE/ZWRuaWw/ayZvP1x1MDBmOD8/b2Y/eXQ/XHUwMGU1Pz90c2V2Pz9ndj9oZj9pZ2F2YWw/byZyJm9yP1x1MDBmOHI/P3NtYW4/P3NvJmZlbiZvaD9cdTAwZjhoPz9tP3Y/P3VoJmxlbT9zcmVrYS5zZW4/P1x1MDBlNSFkbmlsPz8/dCZhJmJhb2w/ZyZhb3Y/Z3Jhdj8/ampyJmF2LWF0dGFtP1x1MDBlMXYtYXR0XHUwMGUxbT8/bCZhJmI/cz8/XHUwMGUxcz8/c291bT90cz92JmVpYj9vdXI/Pz9lJmRuYWx5Jm9oP1x1MDBmOGg/P2Y/cyZueXQ/cm9rb21zZGVrcz9zZW4/P3Z0cGlrcz8/aW4mYWtzP1x1MDBlMWtzPz9sb2gmYXI/XHUwMGU1cj8/biEuc2c/P29tJmE/XHUwMGU1Pz9zIS5zZz9lZnJlbW1haD9vcj9cdTAwZjhyPz90ZXJkaT9cdTAwZTEmYmFvbD9nZ3JcdTAwZTF2P2xcdTAwZTEmYj9zPz9zb3VtP3ZlaWI/Pz91JmIhLnNnP2Fsaz9lJmRuYT9nbmlyP25uZXI/P2xlcz9cdTAwZTZsaz8/ZHJhJmI/ZWI/P2cmbmFzcm9wP3ZpP1x1MDE0Ylx1MDBlMXNyb3A/P2omZGFlaGFsJmE/XHUwMGUxPz9qZWR1Yj92JmFyZWtraGFyP1x1MDBlMXJla2toXHUwMGUxcj8/P2tzaW91Zj9uJmRpYWVnYWR2b3VnP3RhZWQ/Pz92JmlycD9sZXNsJmFtP1x1MDBlNW0/Pz95JmImZXNzZW4/bmFydD9zZWJlbD90c2V2Pz9vJmQmYXI/bmEhcz8/b3I/P2dhdnRzZXY/a3NhP2xlbT9tcmFrP24mYXJ0P24maWY/b3JiPz8/ciZhJm1haD9uP3Y/P2UmZG5pP3Qmc28/dG9uPz92YT8/dWw/eWQ/P3MmYW0/ZW5uZXI/Z2F2P2xyYWs/dGl2az8/dnJlamtzPz9cdTAwZjgmZCZhcj9uYSFzPz9cdTAwZjhyPz9nXHUwMGU1dnRzZXY/a3NhP2xlbT9tcmFrP24mYXJ0P24maWY/XHUwMGY4cmI/Pz9yJmUmZG5pP3Qmc28/dFx1MDBmOG4/P3ZhPz91bD95ZD9cdTAwZTYmbj92Pz8/cyZlbm5lcj9nXHUwMGU1dj90aXZrP1x1MDBlNW0/P3ZyZWprcz8/P1x1MDBlMSZzbFx1MDBlMWc/dGxcdTAwZTE/dnJlaWtzPz9cdTAwZTUmZ1x1MDBlNXY/aD9qZGRcdTAwZTVkXHUwMGU1Yj9sZj8/XHUwMGY4JmQmb2I/cmF2Pz9yJmVnYXJrP29sZj8/cyZkYXY/bW9ydD8/Pz9ha2k/aSZzYWM/dGFsPz91Pz9vJmI/Zj9oYXk/bz90dGF0Pz9yIS4mY2VyP2Vyb3RzP2dybz9tJm8mYz9uPz9yaWY/dD8/byZjLGZuaT8/cG9ocyxzdHJhP3RuP3d3dz95c3JhYiw/ZSZhIS4mYSZhYz9jZ2Q/aWRlbT8/YnVsYyFvcmVhPz9jaSZmZmFydHJpYT90YWJvcmVhPz9lJmMmYWxwdGVrcmFtP24mYSZsJmxpZXZydXMtcmlhP3VibWE/P25ldG5pYW0/cnVzbmk/P2VyZWZub2M/Pz9nbmFoY3hlP21vcmRvcmVhP25pJmduZT9scmlhP3phZ2FtPz9yYXd0Zm9zPz9nbmkmZCZhcnQ/aWxnIWFyYXA/Z25haD8/P2wmZG5haGRudW9yZz9sZWRvbT8/bm9vbGxhYj9yZXRhYz9zYWVsP3QmbHVzbm9jP3VoY2FyYXA/P3ZpZHlrcz8/aGNyYWVzZXI/aXhhdD9sJmFucnVvaj9ldWY/aWNudW9jP29ydG5vYyEtY2lmZmFydC1yaWE/Pz9uJmdpc2VkP29pJm51P3QmYSZjaWZpdHJlYz9lcmNlcj9naSZ0c2V2bmktdG5lZGljY2E/dmFuPz9pJmNvc3NhIS1yZWduZXNzYXA/P3ZhbGl2aWM/P3JlZGVmPz9jdWRvcnA/bmV2ZXJwLXRuZWRpY2NhPz8/P29ncmFjP3AmaWhzbm9pcG1haGM/dW9yZyFnbmlrcm93Pz8/ciZlJmRhcnQ/ZW5pZ25lP2tvcmI/bmlhcnQ/dHJhaGM/P28maHR1YT90YWN1ZGU/Pz9zJmNpdHNpZ29sP2UmY2l2cmVzP3I/P2tyb3c/c2VycCF4ZT8/dG5lZ2E/P3QmZmFyY3ImaWE/b3Rvcj8/aGdpJmVyZj9sJmY/b3JjaW0/Pz9saXViZW1vaD9uJmF0bHVzbm9jP2UmZHV0cz9tJm4maWF0cmV0bmU/cmV2b2c/P3BpdXFlPz8/P29saXA/cm9wcmlhP3NpJmxhbnJ1b2o/dG5laWNzPz8/dyZlcmM/b2hzPz95JmNuZWdyZW1lP2RvYnBlcj90ZWZhcz8/Pz9ycmVmP3o/P3AhLiZhJmFhP2NhP3BjPz9jaXRlbmVlayxkZW0/Z25lP2tvcmduLHImYWI/dWo/P3NuZHVvbGMsdCZhY292YT9jY2E/aGNlcj8/d2FsP3lzcmFiLD8/P3MhLiZlbT9ncm8/bW9jP3N5ZXZydXMsdGVuP3VkZT92b2c/Pz90IS4mMHgsMTE2LGF5byxncm8/bGltP21vYz9zdWxwbnB2LHQmY2Vubm9ja2NpdXEudGNlcmlkLGVuP3Rlbiw/dWRlP3ZvZz8/byZocD9tP3Y/eWs/P3RvbD91YT8/diZpdj9sb3Y/P3hhcz95a290Pz9wJmEmZWhjP2c/bT9zPz9lZWo/ZyEuJmdybz9pYm9tP21vYz9vc3NhP3Rlbj91ZGU/Pz9pJnIhLm5hbGMsP3YhLnNuZGloLD96Pz9qIS4mMCZnMCxqMCxvMG8sdDAsP2EmMyY1eHE2Zi0tbng/eHFpMG9zdG4tLW54Pz81d3RiNi0tbng/ODV1d3V1LS1ueD85eHRsay0tbng/YWQsYiZhdHMsaWhjIS4mYSZiaWhjaWFrb3k/ZG9uP21hJmhpbT95ZSZyYWdhbj90YXQ/Pz9yJmEmYm9tP2dhbj9oaWhjaT8/dSZhZ2Vkb3M/a2FzP3VzdGFrPz8/cyZvcz91Zm9taWhzPz90JmFtaWhjYXk/aXJhbj8/dyZhJmcmaW0mYW5haD9vPz9vbWFrPz9raWhjaT96dXN0dW0/P2loc2FrPz95JmFnYW1haz9pbW9uaWhjaT8/P2UmYWthcz9uYWdvdD8/aSZhem5pP2Vzb2hjP2gmYXNhP3MmYWJhbnVmP29oYz8/P2thJnRvP3pvaz8/bXVzaT9vcmlocz9yJmFraWhhYmloc29rb3k/byZkaW0/dGFrPz91a3VqdWs/P3VzaWhzPz9uYW5vJmhjP3lrPz9vJmQmaWFrdXN0b3k/dXN0YW0/P2hzb25ob3Q/ayZhJnJpaHM/dD8/aWJhPz9uaWhzYXJhbj9zb2JpbWFuaW0/dGFzJmFyaWhzaW1hbz9pbW90Pz91aGM/eWloY2F5Pz91Jmt1am5vP3MmYXlhcnU/dCZpbWlrP3R1Zj8/P3phcmFzaWs/Pz8/P2MmY2FoLGVkLD9nJmFzIS4mYSZnYXM/bSZhJnRhbWFoP3lpaz8/aWhzYWs/P3JhdD90JmEmZ2F0aWs/aGF0aWs/P2lyYSFpaHNpbj8/Pz9lJmthaXJhP25pbWltYWs/P2kmYWtuZWc/ZyZhcnV5az9vPz9oJmMmYW1vP3VvPz9zaW9yaWhzPz9rYXpuYWs/bW9kdWt1Zj9yYSZnb25paHNveT9taT8/P25lemloP3UmayZhdD9vaHVvaz8/cyZvdD90YXJhaz8/Pz8/aWhzIS4mYSZrb2s/bSZhJmhhZ2FuP3lpcm9tPz9paHNha2F0Pz9yYWJpYW0/d2Fnb3Rvbj8/ZSZtaWhhcm90P25va2loPz9ob3V5cj9pJmF6YWloc2luP2Vzb2s/a3VzdGFrYXQ/bW9paHNhZ2loPz9uYSZtaWhjYWhpbW8/bm9rPz9vJmhzaWE/bWFnP3QmYXNveW90P29rP3Rpcj8/P3VzJmF5P3QmYXN1az9vPz8/Pz8/ayZhc28hLiZhJmQmYXdpaHNpaz9la2k/P2smYSZub3lvdD9zJmFrYWF5YWhpaGM/b2loc2FnaWg/Pz9vYWRhdD91emlhaz8/bSZheWFzIWFrYXNvPz9vZGFrPz9yJmEmYnVzdGFtP3dpaHNhaz8/ZWRpaWp1Zj8/dCZha2FyaWg/aSZrP3VzPz8/d2FnJmF5ZW4/b2RveWloc2FnaWg/Pz9lJnNvbj90YXdhbm9qaWhzPz9ob25pbT9pJmFrYXM/aCZjdWdpcm9tP3MmYXlhYmFkbm90P2kmYSZrYXQ/dD8/bj8/b3lpbXVzaWhzYWdpaD8/P2smYSZyYWJpP3NpbT8/dXN0YWthdD8/bXV6aT9yJmlqYXQ/b3RhbXVrPz8/bmFuJmFrP24mYWg/ZXM/Pz9vJmF5P24mYSZnYW5paGNhd2FrP3NpbXV6aT90YWs/P2ViYT9pa2liYWg/b3lvdD8/dCZhbmltP2lhZD9vbWFtaWhzPz91aGM/P3VzdCZvaW11emk/dGVzPz8/P291Jmt1ZiEuJmEmZCZhbWF5P2Vvcz8/ZyZubz9vaz91c2FrPz9oaWt1P2smYXdheWltP3V6aWk/P21hJmthbj95JmFzaWg/aW0/Pz9yYXdhaz90JmEmZ29uP2thJmg/bnVtP3Q/Pz91bW8/P3dhJmcmYSZrYW4/bmF5P3Q/P2lhcz8/a28hcmloPz8/eSZpaHNhP3VzYWs/Pz9lJm0mYXk/dXJ1az8/dGFydWs/dXM/P2kmYSZub2hzP3JhaWhjYXQ/P2dvcnVrP2gmY3VrdWY/cyZhJmdpaD9odWt1eT8/aW4/Pz9rJmEmZ2Frbz9tdXppbT8/aXVzdD9vP3VzdGFuaT8/bSZhbmltP290aWhzb3luaWhzP3U/P3Imb2dvP3VnYXNhcz8/dXN1Pz9uZSZzaWVrP3p1JmI/a2loYz8/P28mZ3VraWhjP2gmYWs/b3Q/dWtpaGM/P2omb25vP3VraWhjPz9rYXlpbT9uaWhzdWtpaGM/dG8/dWhjPz91JmZpYXphZD9nbmlocz9zdG95b3Q/Pz8/emlocyEuJmEmYm1ldG9nP2QmYW1paHM/ZWlqdWY/aWhzb3k/b21paHM/P2tvdXppaHM/bWloc2ltP3JhJmJpYWg/aG9uaWthbT8/dGF3aT93YSZnJmVrYWs/dWtpaz8/a2lqdWY/P3lpbW9uaWp1Zj8/aSZhJnJhP3Nvaz8/aGNhbWlyb20/anVmP2theiZlYW1vP3VzdGFtPz9tYSZubmFrP3RhPz9udWtvbnV6aT9vcnVrdWY/P25vaGVuYXdhaz9vJm5vc3VzP3RpPz91JnN0YW1hbWFoP3omYSZtdW4/d2FrPz9pIWF5P2kmaHMmYWdpaD9pbj8/bWFuaW0/P21paHM/Pz8/Pz8/P20mYSZ0aWFzIS4mYSZkJmloc295P290P3VzYWg/P2smYSZkaWg/c2E/P28mYXJpaHM/cz8/P20mYSZ0aWFzP3kmYXM/byZyb20/dGFoPz91c3RhbWloc2FnaWg/Pz9pJmhzYWd1cnVzdD9qYXdhaz8/dXJpPz9uaT93YSZnJmUma28/bWFuPz9pa290P28/P2smYXJhP2kmaHNveT9tYWs/Pz9ydT96b3Jva290Pz95JmEmZyZhbXVrP2loc29rP290YWg/P2t1Zj8/aW1vPz96aWluPz9lJmJha3VzYWs/b2dhd2FrP3NvZ28/dHRhcz96b2tveT8/aSZiYXJhdz9oJmN1Z2F3YWs/cyZveWltP3VidXN0YW0/Pz9pcm95P2smYXRvP2locz91Jms/c3Rhd2k/Pz9tJmFrb3lyP2kmaHNveT9qdWY/P3V6aWltYWs/Pz9uYXpuYXI/byZkYWthcz9paHNheT9qbm9oP24mYSZnbz9uaW0/P2ltaWp1Zj9uYWg/b3k/P3ImaWhzYXlpbT9vdGFnYW4/P3QmYXNpbSFhaz8/aWd1cz9vbWF0aWs/P3phaz8/dSZiaWhjaWhjIWloc2FnaWg/P3NvbnVvaz95bmFoPz8/P3kmYWsmYXchLiZhJmQmaXJhP25vdGltYWs/P2thZGloP21hJmgmYXJpaHM/aW0/P3kmYSZrYXc/dGlrPz9vZHVrPz8/cnUmdXN0YWtpaGNhbj95Pz9zYXV5P3dhJmcmYSZkaXJhP3pvaz8/b3JpaD8/a29uaWs/P3lvaz96b2s/P2UmYmFuYXQ/ZGF3aT8/aSZnYXJ1c3Rhaz9qaWF0P21hbmk/P25hbmlhaz9vJmJvZz9uaW1paz90JmFzaW0/b21paHMmYWg/dWs/Pz8/dWduaWhzPz8/byEuJmEmam9zP2tvYXNhaz9tJmF5JmFrbz91c3Q/P2loc2F5YWg/P3ImYWJpP3VrYXdhaWhzaW4/P3dpJmFrYT9uYW0/Pz9lJmdha2F5P2thdz8/aSZnYW4/aCZjdSZrYXNhP290ZXM/P3NhaGFrYXQ/P2smYXNpbT9paHNhcnVrPz9taWluPz9uJmFuZW11az9lemliPz9vJmhzb3Rhcz9qbmlocz9uJmFtYXQ/aW1hZ2FrPz9vaHM/dWhjaWJpaz8/Pz8/b3QhLiZhJmRhbWF5P2dvdD9rb2FrYXQ/bWF5JmV0YXQ/b3Q/P25haG9qP3JpYXQ/d2FraSZpbmFrYW4/cmVtYW4/Pz9lYiZheW8/b3J1az8/aSZoJmFzYT9jaWltYWs/c2FoYW51Zj8/a3V6YW51P20mYW4maT9vdD8/aWg/Pz9uZXp1eW4/b3RuYW4/dSZoY3VmP3N0aW11a3VmP3omaW1pP291Pz8/Pz8/P2locyZvJmdhayEuJmEmbSZheXVvaz9paHNvZ2FrPz9zaT95b25haz8/ZSZiYW5hd2FrP24mYXQmYWthbj9pbWFuaW0/P3VrYT8/dG9tb29uaWhzaW4/P2kmYWRuZXNhbXVzdGFzP2smYXphcnVrYW0/b2loPz9tJmFtYT91emk/P3VzdXk/P25lc2k/byZrbmlrP29zP3RvbXVzdGFtPz91emltdXJhdD8/P3JpaCEuJmEma2Embj9zPz9tJmF5dWt1Zj9pJmhzb3JpaGloc2FnaWg/aiZhdGU/aW1ha2lrYXNvPz8/P3ImYSZib2hzP2gmZWthdD9pbT8/P2VzPz90aWFrP3dpYWQ/P2Uma2F0bz9ydWs/P2kmaCZjaSZha3VzdGFoP21vbm8/bmlocz8/cyZpbmFyZXM/b3lpbT8/P21hbmltYXNhP3VrPz9uZWdva2lrZXNuaWo/byZnbm9oP25hbXVrPz91aGN1Zj8/Pz91ayZvdCEuJmEmYmloY2k/bWkmaHN1JmtvdD9zdGFtb2s/P20/P3dhZ2FrYW4/P2VnaWhzdXN0YW0/aSZndW0/aCZjb2dhbmFzP3NveWltPz9raWphdz9tJmFuaW0/dXppYT8/dWtpaHNpaHM/P25hbiZhP2lhaz8/byZuYXRpP3R1cmFuPz8/P3VmIS4mYSZiYXR1Zj9tJmEmdG8/eSZlbmFrP2lyb2s/Pz9paHMmaW0/dWt1Zj8/b3M/dWtvPz9yJmFib2loc2F0aWs/dWdhbmF0Pz90YSZrYXRpaz9tYXdhaz9yaWg/P3cmYSZnJmFrdXM/ZW1hcz91eT8/ayZhJm1hdD9yaWhzP3NhPz9paHNpPz9uYWg/P29ocz8/P2UmZ25hYnV6aWE/aW1hbj90YSZkP3RpaT8/P2kmYWRuYWI/ZW5ldD9ocyZhZ2loP2lpbWFnYWs/P2smYSZ3aT96aW11emk/P3ViYXk/P21pbnVrP3Imb29rP3VzdGFtYXk/Pz9uaWhzaWF0P28mZyZldG9tbz9paHNpbj9uYW4/b21paHM/P25vIWR1cnVmP3JpaD8/cmloc2F3YW5pP3RhJm1heT9zaW11emlhPz8/dSZyYWhpbT9zdGFtYWthd3V6aWE/emlhJmloc2luP25heT8/Pz8/Pz9udWchLiZhJmJhd2FrP2RveWloYz9rJmFubmE/b2kmaHNveT9qdWY/bW90Pz8/bSZheWFrYXQ/dXN0YWdhaWhzYWdpaD8/biZpaHNhdGFrP25haz8/ciZhaG9uYWdhbj9uYWs/bz91JmthdGk/bWFtYXQ/Pz90JmFtdW4/aW5vbWlocz9vPz93JmFrdWJpaHM/aWVtP29ocz8/P2kmaHNhJmJlYW0/eWFiZXRhdD8/a2FzJmFrYXQ/ZXNpPz9tJmFrYW5pbT91emlvPz9vZ2FtdXN0P3JvZGltPz9vJmpvbmFrYW4/biZldT9veWlrdXN0Pz90bmlocz8/dSZrb21uYW4/c3Rhc3VrP3lyaWs/Pz8/cmVwLD9uJmlibWFiLG5vZyxvYiw/cHBhY2loYyxyYSZuIS4mYSZiaWhzYWs/ZCZha2F0b3RhbWF5P3Uhbz8/P2d1cmFraT9tJmF5JmF0aWsmaW1haz9vbWlocz8/aXJva290YW1heT8/b2tpPz9yYSZoaWhzYWs/bj8/d2EmZ2Vzb24/a25ldD8/P2Uma2F5aW0/b3phbWF5P3NvZz91c3RpbT8/aSZhJnJ1a2FzP3dhaz8/Z2FydXN0YWs/aCZjaW9taWhzP3NpbmF3YWs/P2pvP2thJm1uYWs/dG9ydWs/P21ha2F3YWs/bm9zP3ImbmV0P290YWthdD91Z2VoPz8/byZkJm5hP295bz8/Z25hcz9qbmlocz9uaWhzb3khaWhzYWdpaD8/dG9tYXJhd2F0P3lyb2s/Pz8/cmlraWssP3QmYWcmYW1heSEuJmEmZGloc2lvP2smYXRhcmlocz9vdXJ1c3Q/P21heSZhJmthbj9ydW0/P2VuYWs/b25pbWFrPz9ydWtobz90YSZnYSZtYXk/bnVmPz9oYWthdD9rYXM/P3dhJmcmZWthcz9vcnVtYW0/P2tpJmhzaW4/bT8/eiZhbmFibz9lbm95P290Pz8/enV5Pz9lJmFnYXM/Ym9uYW1heT9kaWk/bmloc2FnaWg/bz8/aSZhJmdhbj9ub2hzPz9oJmFzYT9zaW5hd2FrPz9udWdvPz9vJmRuZXQ/am5paHM/eW5hbj8/dWtvaGFrPz8/aWluIS4mYSZnYT9rJml1bT9vYWdhbj8/bXVub3UhaW1hbmltPz90JmEmYmlocz9naWluPz9pb3k/P3cmYSZnaW90aT9raWtlcz96dXk/P2lyYWs/P3lpam8/P2Uma3VzdGltP21hYnVzdD8/aSZhbmlhdD9oY2FtYWtvdD9rYXomYXdpaHNhaz9vbXV6aT8/bSZhJmdhdD9rYXJ1bT8/bz8/P24mYW51c3Q/ZXNvZz8/byZkYXM/aWhjb3Q/am5hcz9rJmloYXk/b3ltPz9tYWs/bmFnYT9yaWVzPz91Jm9yaWVzP3N0ZW9qPz8/Pz9pJmsmYSEuJmEmZ28/ayZhc29rP29pbWFrPz90JmFnbyFyaWhjYWg/P2lrYSFhdGlrPz8/dyZha2k/b3lrPz8/ZSZtb2pvZz9uYXRpbT9zdXJhbmloc2FnaWg/dCZhZG8/b2tveT8/P2kmaHNveWlyb20/bWFnYXRhaz9uYW9raW1haz8/bmVzaWFkP28maGFraW4/am5vaCFpcnV5Pz9udXphaz9yaWhzb24/dGFzaSZqdWY/bT8/eWpub2g/P3Uma29ibWVzP29wcGFoPz8/P2luLD9vIS4mYSZkYWthdG9nbnViP20mYXNhaD9paHNlbWloPz9zdT90JmVrYXQ/aSZoP28/Pz8/ZSZvbm9rb2s/dXN0aW1haz8/aSZqaWg/ayZhc2ludWs/aWFzP3VzdT8/bXVrdXN0Pz9vbm9vZ251Yj91JmZ1eT9qdWs/cHBlYj9zdWs/Pz8/P25heW4sP3dhJmdhJmshLiZhJm1paHNvYW4/cmlob3Rvaz93YWdhJmtpaHNhZ2loP3lhPz8/ZW1hZ3VyYW0/aSZqJm5vbmFrP3VzdG5lej8/a3VuYXM/bW9uaWhjdT8/byZoc29ub3Q/bm5hbT95b3RpbT8/dSZzdCZhbWFrYXQ/b2RhdD8/emF0dT8/Pz9uYWshLiZhJmR1c3RhbT9rdXMmb2tveT90YXJpaD8/bWF6P25pYmU/ciZhJmdpaHNhaW1hbmltP2gmZXNpP2ltYWdhcz8/d2EmZG8/Z3V5Pz8/dSZpbT9rYW1haz8/P3Rpa2FtYXk/d2EmayZpYT9veWlrP3VtYXM/P3NpanVmPz95aW1vbmluPz9lJm5va2FoP3NheWE/P2kmYWthbj9lc2lhaz9ndXN0YT9oc3V6P2thc2FnaWhjP28/dWt1c3Q/P28mbmFkYWg/c2lvP3RhbWF5Pz8/Pz9raWhzaSEuJmEmZGFuaWhjdT9nYWs/a2locz9taWphdz90JmFidXN0P2lrYXdhaz8/d2F6YW5haz8/aSZndXJ1c3Q/aGNpb25vbj9tb24/dWthaD8/bmFzdWthaD9vJmFuYW4/dG9uIWFrYW4/Pz91JmtvaGFrP3N0YW1vaz96JmltYW5hP3VzPz8/Pz9uaWtvIS4mYSZoYW4/bSZhcmF0P2lqZW11az91cnU/P24mZSZkYWs/emk/P25vPz9yYSZoaWhzaW4/cmloPz93YSZraWhzaT9uaWtvPz95ZWhpP3pvbmlnPz9lJm9zYXJ1P3NlYXk/P2kmaHNhZ2loP2pvbWlocz9rJmEmZ2loc2k/bm90Pz9paHNha290Pz9tJmEmZ2ludWs/a2loc3VnP21hej8/aWdvP290ZWthdD8/bnVnYSFub3k/Pz9uJmEmbW90aT90aW1veT93b25pZz8/aSZqaWthbj9rPz8/byZnYW4/am5hbj90aWFkJmF0aWs/aW1hbmltPz8/dSZib3RvbT9rdXN1ZyZha2FuIWF0aWs/P2ltb3Q/P3JhYiZhbm95P2VhaD8/Pz8/P3lwLHpvbWltLD9idXMsYyYyMDR1Z3YtLW54PzQ2MmEwdDctLW54PzY3OHo3dnE1ZC0tbng/OTRwdHI1LS1ueD9hP21wb3BpbG9sLD9kJi0yLDE3c3FsMS0tbng/M3Roci0tbng/NSYyMHhiei0tbng/NDBzajUtLW54Pz83Jjg3dGxrLS1ueD9wdGxrLS1ueD8/ODYxdGk0LS1ueD9hP2UhdGZhcmNkbmFoLD9uJmVpcmYmbHJpZyx5b2IsP29tLD9vb2Z0YWMsP2UmMTZ0aHItLW54PzUmMWE0bTItLW54PzlueTdrLS1ueD8/ZGFteWRhZXIsZXdlZXAsZ2Fyb3RzYXJ1a2FzLiYxMGtzaS4zcywyMGtzaS4zcyw/aSZibW96LG0hLiZhJmJvdD9rJmFzdXN0YW0/dXp1cz8/bSZhJmhpbT95JmVtYWs/aW0/Pz9paHM/P25hd3VrP3dpJmVtP2s/Pz9lJmJhbmk/b2dhd2FrP3NpIWltYW5pbT8/P2kmYXJhdGF3P2d1c2ltP2gmYXNhP2NpYWtrb3k/P2smYSZtYXQ/c29zaWs/dD8/aWF0Pz9yYWJhbj8/byZkYXQ/aGlrP24mYW11az9paHNlcnU/byZkdT9tb2s/Pz8/dXN0Pz8/P2tpbGJldyxsYXNyZXB1cyxtaWhlIS4mYSZtJmEmaCZhdGF3YXk/aWluPz95dXN0YW0/P2lqJmF3dT9pbWFrPz8/dGFraSFtYW4/Pz9lYm90P2kmYW5vaD9rYXNhbT9yYWJhbWk/P24mYW5pYT9lZ29rYW11az9vb3Q/P28mamlhcz9raWhjdT9udXN0YW0/dWhjdWtva2locz95aSFlcz8/P3Uma29oaWs/em8/Pz8/biEuJmFydWthcyxsYXBvLG4mZXJ1a29tLHJpaGVnLD9vbW9tdXMsc3RuaW0sdGVuaWVzYS5yZXN1LHhvYi1saWFtLHlyb3ZpLHphcG90LD9hbWlocyEuJmEmZCZhbWFoP2hvP3VzYW0/P2t1c3RheT9tJmE/aWhzb25pJmhzaW4/a28/Pz93YWtpaD8/ZSZuYW1paHM/dXN0YW0/P2kmZyZha2E/dXNheT8/a29uaWthaz9taWtpaD8/bmFubnU/byZtdSZrYXk/emkhaWhzYWdpaD91a28/Pz9uYXd1c3Q/dGFzaW0/P3Umc3RvZz95YW1hdD8/Pz9uZXAsP3JvdHNub2loc2FmLHNyZXYsdCZhd2khLiZhJmJhaGF5P2QmYW1heT9vbj8/a29pcm9tP3QmYSZob25hdD9rYXRuZXp1a2lyPz9pbXVzPz93JmFzJmlqdWY/dXppbT8/aWhzPz8/ZSZob24maSZoY2k/bj8/dWs/P3Rhd2k/P2kmYSZkdWY/bXVyYWs/d2FrPz9oJmN1c3RvP3NpJmFtYWs/dWt1emlocz8/P2omb2Jvaj91az8/ayZhJm0mYW5haD91enVrPz9zYWdlbmFrPz9lc29uaWhjaT8/bSZha2F0aWs/dXppYSZyaWg/d2k/Pz8/byZrYXlpbT9ubyZyaWg/dD8/dGFudWZvPz91aHNvPz8/aXNhcmFwLHNhbWFuLHRvY29jLD91bGJ5YmFiLD9nJjN6c2l1LS1ueD83MXFzdG4tLW54P2p3LGw/b2xiJmFuZXRhaCxsb29jLD8/aCYwM3B2MjMtLW54PzEzeW5yLS1ueD8yMnRzaXUtLW54PzYxcXFsZS0tbng/by1odSxzdWxiLD9pJjU0dXJrbS0tbng/YXpvc2JldyxjZWQsZyZheWltIS4mYSZkdWthaz9tJmEmZ29paHM/a2locz8/aWhzdXN0YW0haWhzYWdpaD8/dW5hd2k/P3ImYXdhZ28/aWhvPz90YSZiaWhzP3J1bT8/dyZhJmdhbm8/a3VydWY/P2lhdD8/eSZpbW90P3VrYXc/Pz9lJm1vdD9uaW1lcz8/aSZoc2lvcmlocz9rYSZtb25paHNpP3MmYXdhaz9vPz8/bWFrP3ImYXRhdz9vJm11cmFtP3Rhbj8/Pz9vJmF6P2phZ2F0P3QmYXNpbT9vbWFtYXk/Pz91JmZpcj9rJmlybmFzaW1hbmltP3Voc2FraWhjaWhzPz8/Pz9paGNvdCEuJmEmZyZhJmg/a2loc2E/P3VzdD8/a29tP20mYXkmbz91c2FyYWs/P3VuYWs/P3ImYSZib2loc3VzYW4/d2F0aG8/P2lobz91a2FzPz90JmFraWhzaW4/aWF5Pz93YSZrb25pbWFrP3plbmFrYXQ/P3kmaW1vbnVzdHU/b2locz8/P2UmaWlqdT9rdXN0b21paHM/bnVmYXdpPz9pJmFraWhjaT9nJmV0b20/aWhjb3Q/b24/Pz9vJmsmaWhzYW0/a2luPz9uYXM/c2lvcnVrP3RhYj8/dSZiaW0/c2FuPz8/Pz9oJmMmaWEhLiZhJmRuYWg/bSZhIWgmYWthdD9pbT8/eXVuaT8/aWhzJmlib3Q/dXN0Pz8/ciZhJmhhdD90aWhzPz9paz91Jmloc2FnaWg/a2F3aT8/P3QmaWhjP28maz95b3Q/Pz93YSZrb3lvdD96YW5pPz95aSZtb25paGNpP3Jhaz8/P2UmaW5haz9rJmFveW90P3VzYT8/bWFub2tvdD9ub3lvdD8/aSZhJmd1c2FrP2tvdD9zaWE/P2VvdD9oJmFzYWlyYXdvP2N1Z28/cyZhaG95b3Q/b3lpbT8/P2smYSZtb2s/emFrbz8/aWhzc2k/P21vdGF5P3JvZ2FtYWc/P24mYW4maWtlaD9vaz8/aWhzc2luPz9vJmdvdD9paHNpbj9qbmE/cmloc25paHM/c3VmP3Rlcz8/dSZibz9yYWhvP3Mmb3lpaz90YWtpaHM/P3lyaWhjP3phaD8/Pz9vayEuJmEmZHVzYXk/a2FkaWg/bWF5b3RvbT9yJmFoJmltP3VzdXk/P3VtYWthbj8/c290IWloc2luPz93YSZnJmF0aWs/b2RveWluPz9rJmFzP28/Pz8/aSZlc2llZz9oY28haz8/amFtdT9rJmEhc3VzPz91c3RvPz9tYSZnYWs/az8/cmFoYW4/P28mbXVrdXM/biZpP3VzdCFpaHNhZ2loPz8/dG9ydW0/eW90IW8/Pz91Jmtva25hbj96aW1paHNhc290Pz8/P3VnYW1heSEuJmEmbSZheXVrb3Q/aWhzbz8/dG95b3Q/P2UmYnU/c3ViYXQ/P2kmZ2FoP2tlc29ub21paHM/bnVrYXdpP3Jha2loPz9uYW51aHM/b3RhZ2FuP3UmYmE/Zm9oP290aW0/c3RhbWFkdWs/dXk/Pz8/P3MmYW5hbWF5IS4mYSZkaWhzb3lpanVmP21heWFiYXQ/ciZhaG9uZXU/dXN0YWtpaHNpbj8/dyZhJmsmYXlhaD9panVmPz9zdXJhbj8/b2hzPz8/ZWd1c29rP2kmYWs/aCZjaW1ha2FuP3MmYW5hbWF5P29kPz8/ayZhc2FyaW4/dSZmZXVmP3N0bz8/Pz9vJmsmYWthbmFtYXk/aWhjdWdhd2FraWp1Zj8/bmloc28/dCZhc2ltYXdha2loY2k/dWtvaD8/dWhjPz9zcGxhLWltYW5pbT91JmImbmFuP29uaW0/P2Zvaz9oc29rP3J1c3Q/Pz8/dWJvbiw/P2l4LGthJnJhYmkhLiZhJmJ1a3VzdD9nb2s/a2FuIWloY2F0aWg/P20mYSZzYWs/dGltbz93aT8/aWhzYWs/dXN0b21paHM/P25pP3ImYSZoaWhjdT93YXk/P3UmYWdpbXVzYWs/aWhjdXN0Pz8/dCZhZyZhbWF5P2VtYW4/P29paGNhdGloPz93JmFnJmFydWthcz9vPz9vcz8/eWkmbW9paGNhdGloP3JvbT8/P2UmYm9tb3Q/ZGlyb3Q/bm90P3RhZG9taWhzPz9pJmEmayZhcz9vdD8/cmFvPz9lc3VraWhjP2dhaGFrYXQ/aCZhc2E/Y2F0aWg/P2smYSZyYWJpP3NhZ3V5cj8/aWhzYW5pP3V5Pz9tYT9ydWt1c3RhbWF0Pz9vJmRuYWI/Z2lhZD9oaW0/a2F0aT9yaWhzaWp1Zj9zb2o/dCZhc29yaWhzP2ltPz95aWhjYXk/P3UmZml1cz9raWhzdT9zaW1haz8/Pz9zYWdhbiEuJmEmbSZhYm8/aWhzdXN0Pz9uYXRhd2FrP3ImYWJhbWlocz91Jm1vP3VzdGFtPz8/d2lqaWhjP3lhaGFzaT8/aSZha2lhcz9oaWVzP2smYXNhZ2FuP2k/P21hc2FoPz9uZXpudT9vJmJlc2FzP2RhcmloP3QmZXNvP29nIWltYWtuaWhzPz8/P3VzdCZpZ290P29uaWhjdWs/dWY/Pz8/emF5aW0hLiZhJmJpaWhzP2d1eWg/ayZvZWJvbj91c3Rvcm9tPz9taWhzdWs/ciZlbWloc2luP3VhdGlrPz90YSZrYXRpaz9taW0/P3dhZyZhdGlrP29kYWs/P3lhPz9lJmJhbmFrYXQ/c2Frb2c/P2kmaHNheWFib2s/a2F6YSZrYXQ/eWltPz9tJmFuaW1hd2FrP290JmludWs/bmlocz8/Pz9uYW5paGNpbj9vJmomaWs/b25va2F5aW0/P24maWJlP3VzdD8/dGlhcz8/dXJhaGFrYXQ/Pz8/cm8mY2VwLG1vYSEuJmEmZGF3b3Q/dHVydXN0P3dhc2ltPz9lJmhvbiZpaGMmYWg/aWhzPz9uYXM/b2c/dWtvcj8/c2FyaW8/P2kmYW5hcmloP2dhbmF5YXRpP2hzaW9ydWs/amVob24/a2Fzb3JpaD9tYWtpaHNhaD9uYXdvP3ImYW1vZGFrYW4/b21vYT8/P28mZ25paHM/a2thdD8/dSZyYWd1c3Q/c3R1bT8/Pz90dG90IS4mYSZyJmFoYXdhaz91b3Rvaz8/c2Ema2F3P3NpbT8/P2Vnb2s/aXJvdHRvdD9uYW5paGNpbj9vJmdhbm95P25paD90YW5pbWlha2FzPz91JmJuYW4/eiZheT9paGM/Pz8/Pz91a3VmIS4mYSZkZWtpP2d1cnVzdD9tYSZibz9oJmFrYXQ/aW0/P3l1c3Rhaz8/c2FrYXc/P2VhYmFzP2kmYWthcz9obz9qaWVoaWU/dWt1Zj8/bmV6aWhjZSFpbWFuaW0/P29ubz8/Pz9rJjI2cnRsOC0tbng/NCYzcXRyNS0tbng/eXRqZC0tbng/PzUyMnRpbi0tbng/Nzk3dGk0LS1ueD9jaSZnaWQsaHQsc2V2b2wsP2VlLGxpbXliYWIsbiZhdCx1cGF0aWxvbCw/P2wmMzN1c3NwLS1ueD9lJmNjYWJldy4mcmVzdSxzciw/bGxhcmFwLD9saWssb29mLHJpZ2V0dWMsP20mMTF0cXFxLS1ueD80MXMzYy0tbng/YTAsZWYsc2lvZ2UsP24mMzBzcWwxLS1ueD82NXpxaGUtLW54P2EmZWJ5bGxlaixpJmxvZ25vbSx2aXYsPz9pYW0sbjdwN3FydDAtLW54P28mbyZsYXMsbWZsYWgsP3J1ayxzdGF3LD8/byYxMzFyb3QtLW54PzdxcmJrLS1ueD9haWMsYz9kJmlha2tvaCEuJmEmZGVraT9nYWtpaHNldD9oY2ViaWhzP2smYWRpaD91JmZpYj9uYXJpaHM/Pz9tJmF5aXJ1az9ob3Q/aWhzJm9yaWhhdGlrP3VrdWY/P29yYXM/dXN0YT8/ciZpYiZhIWthPz9vP3VydWY/P296bz91Jmdha2loc2FnaWg/b3lvdD8/P3Nha2ltP3RhJmdpa3VzdD9tdW4/P3cmYSZnYSZrJmFuP3VmPz9udXMhaW1haz8/P2smYXJ1P2kmaCZhc2E/c2FnaWg/P2thdD9tYWs/P29taWhzP3VtPz96aW1hd2k/P2luZT9veWs/P3lvdD8/ZSZhJm11c3RhbT9uYW4/P2ImYSZraWhzP3lhaz8/byZub3JvaD90bz8/P2lhbj9rJmloc2FtP3Vmb3RvPz9uYWthbWk/cHBva28haWhzaW4/P3NvdGloYz90YWQhb2thaD8/dW9uaWthdD8/aSZhJmJpYj9tb2thbW90P24mYSZrJmthdz9vcm9oPz93aT8/ZW9tYWs/aWhzYXR1P29raWs/dXN0YSZtb3J1az9zYWthbj8/Pz9laWI/aCZjJmlveT91JmJtZWs/aXJpaHM/Pz9zJmFzZT9la2thP29rbmFyP3Vlc29tPz8/anVmaXJpaHNpcj9rJmFtYW1paHM/aSZhdD9uPz8/bSZhdGlrP290b3lvdD8/b2Ema2locz9yaWhzPz9yJmEmaHM/a2loc2k/bW90Pz9paHMmYWJhP2lyPz9vdGFyaWI/Pz9uJmEmaGN0dWs/cm9ydW0/c2U/dG9rYWhzPz91YmVyPz9vJmtheW90P20maXJlP3VrYXk/P25hcnVmIWltYSZrP25pbT8/P29yaWg/ciZpaCZpYm8/c3VrPz9vJmJhaD9oJmkmYj9oc2ltYWs/P3NhPz9wbmFuP3lhbj8/dW1lbj8/dCZhc295aWs/ZWtvP3Vrb2g/Pz91JmJhc3NhP2tvdG5paHM/bSZhc3Nhdz91bz8/cHAmYWtpaW4/ZW4maW90bz9udWs/P2lwPz9yYXRvP3MmYWthdD90JmViJmU/aSZhP2hzIWE/P3JvYm9uPz9tJmU/byZtP3Rha2FuPz8/bm8maD90YW1haD8/byZtaWs/cz90Pz91Jmtpcj9wcGloYz9zdD8/P29uaWhzbmlocz91ZnVyYXM/P3VhcnU/P3lydSFrb2g/P3ppbWlocyFvaz8/Pz8/bnUsP2chaXRpLG95aCEuJmEmYm1hdD9kbmFzP2d1c2FrP2smYXQ/byZveW90P3k/P3V6YXJha2F0Pz9tJmF5YXNhcz9pcmFoPz93YSZnJmFuaT9va2FrPz9rJmkmaGNpP21haz8/b3k/Pz95aSZoc2E/bW9uaWhzaW4/Pz9pJmFzYWs/aHMmYWthP2kmYXQ/bmF3YWs/Pz9qJmF3YSFpbWFuaW0/P2VtaWg/P2smYSZnb2E/cyZhZ2FtYT91a3VmPz93aWhzaW4/P2kmaHNvZz9tPz8/bWF0aT9vaWE/cm9naW1haz8/biZhbm5hcz9lc25vbmlocz8/byZnYXNhIWthdD8/a2E/biZpa2F0P28/dXN0YXQ/P3JpaHNheT9zaWhzP3RvbXVzP3lhcz8/dSZiYXk/Z25paHM/Pz8/P2hpaCxrb25pcCxsJmImZXRhaCxzLD9payw/bW9sLG5hZ2FuIS4mYSZidWthaD9kJmEmdz95aW0/P2Uma2k/dT8/aWk/P2smYSZzJmF5P3VraT8/enVzPz9paHNvbz9vdXNheT8/bSZheSZha2F0P2lpPz9pJmhzdWt1Zm9zaWs/amlpPz91a2loYz8/biZpIWhzZXRhdD8/dXppaT8/ciZhaD91Z290Pz9zYWltP3QmYWdhbWF5P295aW0/P3cmYSZnJmEma2FuP24/P28/P2t1c3RhbT96aXVyYWs/P29uaW0haW1hbmltPz91Jmtvbz9zIW9taWhzPz8/P3lhJmtvP3JpaD8/P2UmYWthcz9uYWdhbW9rP3N1Ym8/P2kmZ2FrYXQ/aCZhc2E/YyZhIW1vIW5hbmlocz8/P3VvbmFtYXk/P3N1a2Fnb3Q/P2smYSZrYXM/bWltYW5pbT90bz8/aWEmYXRpaz9pbWFuaW0/P29hP3V6aWhjb20/P20mYWthd2FrP2lqdWY/byF0Pz8/ciZhdG8/aWpvaWhzP29tYWthdD8/P24mYW5hP2Vzbm9hd2F6b24/P28maHVrYXM/biZhJmdhbj9rYW4/P2kmaGM/bXV6YT8/dXN0YXQ/P3JvbW9rP3NpJmdhbj9rPz90b211c3RhbT8/dSZrJmFzP29odWtpaGM/P3N0YW1lZ2E/Pz8/byZiLG0scGFjLD90byZtYW11ayEuJmEmZ2FtYXk/cmFoaWhzaW4/c3VrYW1hIWltYWs/P3RhbWFuaW0/P2VudWZpbT9pJmhjdWtpaz9rJmloc2FtP3U/P251Z28haW1hbmltPz9yb21ha2F0Pz9vJmFyYT9yaWhzdXN0YXk/c2E/dCZhbWF5P29tJmFtdWs/dXM/P3Uha295Zz8/P3lvaGM/P3Umc2FnYW4/em8/Pz8/eWshLiZhJmJtYXRveWs/ayZpZXM/b2VtYWs/dXphdz8/bWF5aSZoJmN1a3VmP3NhZ2loPz9tdWs/P25paHNhbWF5P3Jhd2F0aWp1P3QmYXdheT9paz8/P2UmYmEmbmF0IW95az8/eWE/P2RpP25pPz9pJmp1P2themFtYXlvP21hbmltPz9uYXRuYW4/byZnbmF0b3lrP2t1bT9tYWs/cmloc2FtYXlpbWFuaW0/eSZnYWthbj9rYSZrb2FnYW4/cz8/b2o/Pz91JnJ1emlhbT96JmF5aW0/aWs/Pz8/Pz93dGMxLS1ueD95a290IS4mYSZkJmkmaGNhbT9tdXM/P295aWhjPz9rJmF0aW0/aWhzdXN0YWs/P20mYSZ0IXVrbz8/eWFydW1paHNhJmdpaD9zdW0/Pz9pJmhzJmFnb2E/aWthP28hdD8/dXp1b2s/P3Jlbj8/P3ImYSZob25paD93YXNhZ28/P2lhZG9rP3VtYWg/P3NzdWY/dCZpaz9vPz93YSZnJmFuaWhzP29kZT8/ayZhcmE/aWhjYXQ/Pz95JmFnYXRlcz91Ymlocz8/P2UmYW1vaz9kb25paD9tJm8/dXJ1a2loc2FnaWg/P3NveWlrPz9pJmVuYWdvaz9nYW5pP2gmY2EmZGE/dGludWs/P3NhYmF0aT8/aiZudWJ1a29rP29paGNhaD8/bWFuaWd1cz8/byZodXppbT9qaWhjYWg/biZha2FuP2loIXNhc3VtPz91cmlrYT8/cnVnZW0/dCZhJm1heWloc2FnaWg/bmltPz9pYXQ/b2s/P3VoYz95a251Yj8/dSZmb2hjP2hjdWY/a3Vqbmlocz8/Pz8/cCZhJmVoYyxyYyw/byZocyZlaHQsaWlhd2FrLHl1Yiw/bGYscCZldm9sLHlkbmFjLD9yZCZrY2FiLG5pYXIsPz8/ciYyeHJvNi0tbng/YXRzZWx0dGlsLGUmZCZudSx3b2hjLD9oLGlsZixwcCZlcCxpcnRzLHUsP3QmYWVyZyx0aWIsPz9nIXIsP2tzLG8hb24sP3VmZWthZiw/cyY5bnZmZS0tbng/ZG9tLG5keW0scCZpaGMsb28sP3JlbWFndGVuLHNpa2hjbmVyZix1JmJsb29oY3MscnVjaSxzcmV2LD94dnA0LS1ueD8/dCZhJmN5c3N1cCxvYmdpcCw/ZSZyY2VzLHZsZXYsP2hnaW55YWQsbmV0bm9jcmVzdSxzaWRhcyx1JmIsb2xsaWhjLD8/dSY0cnZwOC0tbng/ZmlnIS4mYSZkJmVraT9paD8/a2ltb3Q/bSZheWFrYXQ/aWhzYWg/P25lP3JhaGEmZ2kma2VzP21ha2FrPz9zYWs/P3RhZ2EmbWF5P3Rpaz8/d2EmZyZpYmk/dXN0YWthbj8/a2FyaWhzIWloc2FnaWg/Pz8/ZSZrYXRpbT91YXdhaz8/aSZnb2hha2FzP2hjJmFwbmE/dW9uYXc/P2smYWdvP2VzP290Pz9tJmFudXppbT9pamF0Pz9uYWs/dXJhdD8/bmFuaWc/byZkb2c/anVnP21ha29uaW0/bmltP3JveT9zaWhjaWg/P3UmZmlnP3Mmb3RvbT90JmFtYXNhaz9vYXk/Pz8/Pz9oYyxwdXAsc3Rva25vdCx5bnVwLD93JmdwLG9uc2V0aWh3LD94JjV5dGxrLS1ueD9pcnRhbSw/eSZhZHlubnVzLGRyLGtuYXJjLGwmb2gscmlnLD9tb29sZyxvYixwcCZpaCxvbGYsP3ImYWlkYW5ldGFoLGduJmEsdWgsPz91NmQyN3NyamQtLW54P3ZhZWgsP3omNzJ0aHItLW54P2UmZWosbHVyLD8/XHU0ZTk1XHU3OThmP1x1NGVhY1x1Njc3MT9cdTUyMDZcdTU5Mjc/XHU1M2Q2XHU5Y2U1P1x1NTNlM1x1NWM3MT9cdTU3Y2UmXHU1YmFlP1x1ODMyOD8/XHU1YTliXHU2MTFiP1x1NWM3MSZcdTViY2M/XHU1Y2ExP1x1NmI0Y1x1NTQ4Yz8/XHU1Y2ExJlx1Nzk4Zj9cdTk3NTk/P1x1NWNmNiZcdTUxNTBcdTllN2Y/XHU1ZTgzP1x1NWZiMz9cdTc5OGY/P1x1NWQwZSZcdTViYWU/XHU5NTc3Pz9cdTVkZGQmXHU1OTQ4XHU3OTVlP1x1NzdmMz9cdTk5OTk/P1x1NWVhYlx1NTE3NT9cdTVmNjJcdTVjNzE/XHU2MjRiXHU1Y2E5P1x1NjcyOFx1NjgwMz9cdTY3MmNcdTcxOGE/XHU2ODM5XHU1Y2Y2P1x1NjhhOFx1NWM3MT9cdTY4ZWVcdTk3NTI/XHU2ZjVmXHU2NWIwP1x1NzM4OVx1NTdmYz9cdTc1MzBcdTc5Y2I/XHU3N2U1Jlx1NjExYj9cdTlhZDg/P1x1N2UwNFx1NmM5Nj9cdTgyNmZcdTU5NDg/XHU4NDQ5XHU1MzQzP1x1OGNjMCZcdTRmNTA/XHU2ZWNiPz9cdTkwNTNcdTZkNzdcdTUzMTc/XHU5MGZkXHU0ZWFjP1x1OTFjZFx1NGUwOT9cdTkxY2VcdTk1Nzc/XHU5NjFjXHU1YzkwP1x1OTYyYVx1NTkyNz9cdTk5YWNcdTdmYTQ/Pz9rIS4mYXJ0P2dybz9tb2M/cGVyP3VkZT92b2c/Pz9sJmVoP2w/P20hLnVqLGFjIS5mbWUudGEsP2o/P25kP28mZz9oJnBpaD9zIS4mZSZuaWxub3lzcmFiLHJhd3BvaHMsc2FiLD94aWxwb2gseXNyYWIsPz8/b2M/dCEubGxkdG4sPz9wYSEuJjQ0ZXNhYixhJmhjb20scnVzYWgsdGVkLD9iJjJlLGV3LHNjOi53ZWl2ZXJwLCx1Jmh0aWcsbGNrY2FoLD8/ZGVlcHNlcm9jLGUmZHVhbGMsZXJmLWtvcmduLGdhdHNrcmVsYyxsYmEmdHBhZGEsdm9sLD9uaWxuaWdvbCxyYWxmZHVvbGMsc2FibndhcHMsdHVwbW9jZWdkZSx2YXJiLD9mcnVzZG5pdyxoc2FkdG9iLGkmbHJlc3NlbSxuYXl1bCw/ayZlZWxmLW5vLG9yZ24scmVsYyw/bCZhdyxlJmNyZXYsbmFweXNhZSw/bGVjcGFlbCw/bWFlcmRlcHl0LG4mYWVjb2xhdGlnaWRubyxlJnJpbSx2aWEsPz9vcHhlOi4mZ25pZ2F0czoubm8sLG5vLD8scG9vbixyJmNuZTouZG5ldG5vcmYsLGUmbSZhcmYsc2F3LD90dXAsP3ViYWV6LD9zJmUmbHVjcmVobm8sdGlycHMsP2phc3VkZW0sbnJldHRhcGNpZ2FtLD90JmF5bixlZ2RhZyxpJmJlbGV0LGwmbWFlcnRzLHBlcjouZGksLD8/bHVhdnJldmUueWFsZXIseGVudyw/d29sZnJldHR1bGYseCZldm5vYyxscHAsP3kmYSZkb3RwaWhzLHdsaWFyLnB1LD9maWx0ZW4sPz8/cmEmYT9ocz8/dSZla2FtP2xsYWc/b3JnIS5lc3J1b2NzaWQsY3RzP2tvdWs/bmF5YWxvPz8/dnNyP3hlY2U0aWJnbS0tbng/P3EmYSEzYTl5LS1ueD8/Zz9pIS4mZ3JvP2xpbT9tb2M/dGVuP3VkZT92b2c/Pz9tP3NlPz9yJmEhLiZhJmNpc3VtP3NhbmVzPz9ib2c/ZyZlcz9ybz8/bCZhdXR1bT9pbT8/bW9jP3Bvb2M/cnV0P3QmZSZiP24/P25pPz91ZGU/dm9nPz80ZDVhNHByZWJnbS0tbng/YiEuZXZsb3Nlciw/Yz9leWRvb2c/bG9zP3QmYXQ/cyF1ZW4/Pz91Z2FqPz9iIS4mMjFnP2EmYiZhJmNvcm9zP2l1Yz8/aXRpcnVjPz9jbm9nb2FzP2RpY2VyYXBhP2duaXJhbT9pIW5haW9nP3JhbWF0bmFzPz9uJmVyb20/aXJkbm9sPz9vcD9wJmFjYW0/aXJvbGY/bWEmaj9zPz8/cmllZj90c2l2YW9iPz9iIWFqP2liP21pP3NiPz9jJmJhP2Umcj90Pz9qcz9zcD90IWU/Pz9kJmVtP21iP24mZj9pPz9ydD8/ZSZkbmFyZ2FuaXBtYWM/ZmljZXI/aCZjdCx0Pz9sbGl2bmlvaj9yZG5hb3RuYXM/P2YmZGo/ZWQ/Z2c/biZlP2k/Pz9nJmUmbCEuJmEmYixtLHAsP2JwLGMmYSxzLD9lJmMscCxzLD9mZCxnbSxpcCxqcixsYSxtYSxucixvJmcscix0LD9wJmEscyw/ciZwLHIsP3MmZSxtLHIsP3RtLD8/cz8/bCZzP3o/P24mYz9lP28/P29sIWI/Zj92Pz9wcD9ybz8/aHZwP2kmZHU/a2l3P25hbmE/b3JldGluP3BhP3ImYz9ldXJhYj8/c3A/dGU/eGF0Pz9sJmEmaWNvcz90JmFuP3JvZj8/P2VsP2ltP3NxPz9tJmE/ZGE/ZSZnYXRub2M/bGViPz9mP2ljP29jIS5ldGlzZWxwbWlzLD8/bmNlP28mYSZsaWVsP3JpZWJpcj8/YyZlP25hcmJvaXI/c2Fzbz8/ZCZvP3JhbnJlYm9hcz8/ZSZnP3Q/P2kmYj9kYXI/ZWNhbT9yPz9ycD90JmE/ZXJwb2lyPz8/cCZlcj9tIWU/dD8/b29jP3BhP3NlPz9xcmE/ciZhZj9nYT9vJmRhdmxhcz9qPz90bj91dD8/cyZhJml4YWM/bWxhcD9uaXBtYWM/P2VkP3UmYW5hbT9qP20/Pz90JmFtP2UmYj9kP24/dj8/bmM/byZmP24/P3JhP3NmPz91JmNhdWc5P2RlP2phP3JnPz92JmRhP2VkP29nIS4mYSZiP20/cD8/YnA/YyZhP3M/P2UmYz9wP3M/P2ZkP2dtP2lwP2pyP2xhP21hP25yP28mZz9yP3Q/P3AmYT9zPz9yJnA/cj8/cyZlP20/cj8/dG0/Pz9ycz90Pz94aXY/eiZoYj9scz9vJmM/Zj8/eXg/Pz8/YyEuJmFzP2NhP2RlP2lmP28mYz9nPz9ybz8/P2UmYmV3P2Njb3M/ZSZiP24maWduZT9vaXA/P3JhYz8/Z25pJmFyZz9yaGVvYj8/aCZzb2s/dCZhZXc/b3JiPz8/aXRub3JmP2smY29sP28mcD9yYj8/P2wmYWVkP2ZmZWFoY3M/P21hbD9uZXM/cGludWo/dCZhJmVodD9yZWJzbmVnXHUwMGY2bXJldj8/bGF3P25lYz9zJm5vbT91Ymtjb2xiPz91cG1vYz8/diZvJmNzaWQ/cmRuYWw/P3Jlc2JvPz93dWxrc3JldGxvdz95d2FsP3ppZnA/P2YhLiZhdGVyZz9iZXcmLW5vLGV0aXMzMjEsP2RycD9lJmMmaXRzdWotcmVpc3NpdWg/bmFyZi1uZS1zZXRzaXRuZWQtc25laWdydXJpaGMsP2xpcHVvZyxyaWFuaXJldGV2LD9obnksaSZjYz9yZ2FibWFoYyw/bSZvJmM/bj8/dD8/biZlaWNhbXJhaHAsaWNlZGVtLD9vc3NhP3BvaHNkYWVycHN5bSxzJmUmbGJhdHBtb2Mtc3RyZXB4ZSxyaWF0b24sdHNpdG5lZC1zbmVpZ3J1cmloYyx1b3ZhPz9uZGssbyYteCZiZixvYmVlcmYsP3gmYmYsb2JlZXJmLD8/P3QmYWNvdmEscm9wOm9yZWEsLD92dW9nP3hvYmlkZWQsP2F2Yzd5bHFiZ20tLW54P3M/P2chLiZldGlzZWxwbWlzLGdybz9tb2M/dGVuP3VkZT92b2c/eXNyYWIsPz9oIS4mZW1hbj9tbyZjP3JmPz95bGRuZXJiLnBvaHMsemk/P3VyPz9pIS4mYSY2MWY0YTNhYmdtLS1ueD9yZjRhM2FiZ20tLW54Pz9jYT9kaT9lZ2RlbmF2cmEsZyZvbGJhdHNpdixybz8/aGNzP29jP3Rlbj92b2c/XHUwNjQ2XHUwNjI3XHUwNjMxJlx1MDY0YVx1MDYyNz9cdTA2Y2NcdTA2Mjc/Pz9hJmg/cGVyPz9ldz9sZj8/ayEuJjEwYyxjJmE/cz8/ZSZtP24/cD9yPz9naz9pJmE/Z2dub2V5Zz9rdixwYS12aWxlLD9rdWImZ24mb2V5Zz91aGM/P25vZWo/P2wmaW0/dW9lcz8/bWFuJmduJm9leWc/dWhjPz9ub2VqPz9uJmFzJmx1P3ViPz9kYy12aWxlLG8mZSZoY25pP2plYWQ/P3dnbmFnPz8/byZjP2c/aT8/cm8/cyZlP2g/bT9uZC12aWxlLD90aT91JmdlYWQ/aiZlaj9nbmF3Zz8/P3ZtbSw/Y2lsZj8/bCEuJmdybz9tb2M/dGVuP3VkZT92b2c/Pz9tIS52b2c/P24hLiZncm8/bW9jP29mbmk/dGVuP3VkZT92b2c/emliPz8/byZodHVhP3QmYyZhP29kPz9sYWVyPz8/cCEuJmFsc2k/Y2E/ZW1hbj9mb3JwP2dybz9tb2M/byZmbmk/cnA/P3QmZW4/c2U/P3VkZT92b2c/emliPz8/cz90IS4mMjFrP2Jldz9jbiEudm9nPz9lbWFuP2dybz9rc3Q/bCZlJmI/dD8/aW0/b3A/P21vYz9uZWc/b2ZuaT9wZWs/cmQ/c2JiP3Rlbj91ZGU/diZhP29nP3Q/P3ppYj8/Zj9tPz92ZD8/cyY4c3FpZi0tbng/OXpxaWYtLW54P2EhLnZvZz9iaXJhcHBuYj9nZXY/bGxpdj9tdHNpcmhjP3M/P2IhLiZldyxncm8/bW9jP3Rlbj91ZGU/dm9nPz9vaj9zP3U/P2MmaSZocGFyZz9wP3R5bGFuYT8/b2Q/P2QmYT9kP2lrP2w/biZpd3JpYWY/b21haWQ/P29vZ2Vtb2g/cmFjPz9lIS4mYiZld2ltMzIxLG9nPz9ncm8/bW8mYz9uPz9wb2hzZGFlcnBzeW0sdWRlPz9jaXZyZXMhLmVuaWxuaWdvbCw/ZCZkMmJnbS0tbng/b2M/P2gmY3Rhdz9ndWg/P2kmbHBwdXM/cnRzdWRuaT90cmVwb3JwIXlycmVrPz8/amFpdj9sJmF3P2N5Y3JvdG9tP2duaXM/cGF0cz8/bSZhZyEueSZlbHAsemVlaHMsPz9vaD9yZWg/P251dD9vaHM/cGljZXI/ciZpdD91dCZjaXAhLjczMzEsP25ldj8/P3MmaSZycHJldG5lP3VyYz8/cnVvYz8/dGFpY29zc2E/dmlnPz9nIW5pZGxvaD8/aDVjODIycWlmLS1ueD9pIWEwOS0tbng/bm5ldD9yYXA/dGFyZz8/ayZjJm9yIS4mZWNhcHNiZXcsc25kZHltLHRpa2NhdHMseXRpYy1hbWlsLD8/dXM/P2h4ZGEwOC0tbng/cm93Pz9sIS4mYyZhP3M/P2dybz9vJmM/Zm5pPz90ZW4/dWRlP3ZvZz96aWI/P2EmZWQ/dG5lcj8/ZSZzc3VyYj90b2gheXJyZWs/Pz9sYWhzcmFtP20/b290IS5yZGRhJi5ueWQseW0sPz8/bSEuJmV0aXNpbmltLGdybz9tb2M/dGVuP3VkZT92b2c/P2I/ZXRzeXMhLiZuZXJpbSx0bmlvcHRoZ2luayw/P2lhbGM/P24mYSZmP2dvcmY/b2w/P2kmYSZncmFiP21vZD8/Z2lybz8/byZpdCZhY2F2P2N1ZG9ycD91bG9zPz9wdW9jPz8/byZkbm9jP2dldWo/cHBhej90Jm9ocCEucmVtYXJmLD91YT8/P3AhLiZjZXM/Z3JvP21vYz9vbHA/dGVuP3VkZT92b2c/P2kmaHNyYWxvaGNzP2xpaHA/dD8/dT8/ciEuJmNhP2dybz9uaT9vYz91ZGU/dm9nP3hvLHkmbGRuZXJiLnBvaHMsc3JhYiw/P2EmYz9wP3RpdWc/P2M/ZSZkbGl1YiEuZXRpc2R1b2xjLD9lcmFjP2dvcj9sZXZhcnQ/bXJhZj9uJm5pdz90cmFwPz93b2xmPz9vdCZjYXJ0bm9jP29tYXRhdD8/cGo/dW90Pz9zIS4mZW0/Z3JvP2hjcz9tb2M/b2M/dGVuP3VkZT92b2c/emliPz9hbGc/ZSZuJmlzdWIhLm9jLD90aWY/P3JwIXhlIW5hY2lyZW1hPz8/eG5hbD8/aXdzPz90JmEmZWI/b2I/P2VrJmNpdD9yYW0/P2ZpZz9oJmNheT9naWxmPz9uJmF0bnVvY2NhP2UmbXQmcmFwYT9zZXZuaT8/dmUhLiZuaWJvb2ssb2MsPz8/P3JhcD8/dSEuJmEmYyEuJjIxaz9iaWw/Y2M/Pz9nIS4mMjFrP2JpbD9jYz8/P2khLiYyMWs/YmlsP2NjPz8/bCEuJjIxaz9iaWw/Y2M/Pz9tIS4mMjFrIS4maGNvcmFwP3J0aGM/dHZwPz8/YmlsP2NjPz8/cCEuJjIxaz9iaWw/Y2M/Pz9zaT92IS4mMjFrP2JpbD9jYz8/P3chLiYyMWs/YSZlcyxpJmxhcnRuZWMscG15bG8sPz9iaWw/Y2M/ZCZuJmVzbndvdC10cm9wLG9tZGVyLD9yYWhjcm8tdHJvcCw/ZSZsJmFkcmV2bGlzLHR0YWVzLD91dmVsbGViLD9sc2ktZWdkaXJibmlhYixtJmFpdXFvaCxpdXFlcyw/biZlZWRyZWJhLG90JmxlaHMsbmVyLHJlbWVyYixzZ25payw/P29ic2x1b3Ascm9icmFoLWdpZyxzJmVsZWduYS10cm9wLGlsYWhlaGMsa3JvZiw/dCZuaW9wLXdvcnJheSxyb3B5ZWssP3dvbGR1bC10cm9wLD8/P2MmZCEuJjIxaz9iaWw/Y2M/Pz9uIS4mMjFrP2JpbD9jYz8/P3MhLiYyMWs/YmlsP2NjPz8/P2QmZWxhY3NuZS54aHAsaSEuJjIxaz9iaWw/Y2M/Pz9tIS4mMjFrP2JpbD9jYz8/P24/cyEuJmJpbD9jYz8/P3VvbGNyaW0sP2UmZCEuY2M/P2xhcy00LSZkbmFsLGZmdXRzLD9tIS4mMjFrP2JpbD9jYz8/YW5yZXZyZXMsP24hLiYyMWs/YmlsP2NjPz8/P2gmbiEuJjIxaz9iaWw/Y2M/Pz9vIS4mMjFrP2JpbD9jYz8/Pz9pJmghLiZiaWw/Y2M/Pz9tIS4mMjFrP2JpbD9jJmM/ZXQ/P2dvYz9uJmVnP290YWU/P3JvYnJhLW5uYT9zdW0/dHNkP3dhbmV0aHNhdz8/P25kP3BhLWVydXphLHIhLiZiaWw/Y2M/Pz92IS4mMjFrP2JpbD9jYz8/P3chLiYyMWs/YmlsP2NjPz8/P2puIS4mMjFrP2JpbD9jYz8/P2smYSEuJjIxaz9iaWw/Y2M/Pz9vIS4mMjFrP2JpbD9jYz8/Pz9sJmEhLiYyMWs/YmlsP2NjPz8/ZiEuJjIxaz9iaWw/Y2M/Pz9pIS4mMjFrP2JpbD9jYz8/Pz9tbiEuJjIxaz9iaWw/Y2M/Pz9uJmFmZmxvZyxpIS4mMjFrP2JpbD9jYz8/P20hLiYyMWs/YmlsP2NjPz8/c24/dCEuJjIxaz9iaWw/Y2M/Pz8/byZjIS4mMjFrP2JpbD9jYz8/P2duLG0hLiYyMWs/YmlsP2NjPz8/dHRuaW9wLD9waW9uLHImYSEuJjIxaz9iaWw/Y2M/Pz9vIS4mMjFrP2JpbD9jYz8/P3AhLiYyMWs/YmlsP2NjPz8/P3MmYSEuJjIxaz9iaWw/Y2M/Pz9ldGlzYmV3ZXJ1emEsayEuJjIxaz9iaWw/Y2M/Pz9tIS4mMjFrP2NjPz8/bmQmZGVlcmYsdW9sYyw/P3QmYyEuJjIxaz9iaWw/Y2M/Pz9tIS4mMjFrP2JpbD9jYz8/P3NvaG9pbGVoLHUhLiYyMWs/YmlsP2NjPz8/diEuJjIxaz9iaWw/Y2M/Pz8/dWchLiYyMWs/YmlsP2NjPz8/diZuIS4mMjFrP2JpbD9jYz8/P3JzOi4maGcsbGcsPyx3IS5jYz8/P3h0IS4mMjFrP2JpbD9jYz8/P3kmYi1zaSxrIS4mMjFrP2JpbD9jYz8/P24hLiYyMWs/YmlsP2NjPz8/dyEuJjIxaz9iaWw/Y2M/Pz8/emEhLiYyMWs/YmlsP2NjPz8/P2FoIXVhYj8/YnJpYT9jb2w/ZSEueXRyYXAucmVzdSw/aW5lc2VyZj9scCEudGl5YWxwOi5odGl3LCw/eGUmbD9uPz8/dnQ/dyEuJjY2ZHVvbGMsZ3JvP21vYz9zJm5kbnlkLHRlcHltLD90ZW4/dWRlP3ZvZz8/YSEuJm5vLiYxLSZodCZyb24tdWUuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD91b3MtJmVtLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/ZmEuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD9wYS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3VlLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/Pz9sYXJ0bmVjLSZhYy4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP2VtLnBwYWJldy1yZWZzbmFydCxsaS5wcGFiZXctcmVmc25hcnQsdWUuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD94bS5wcGFiZXctcmVmc25hcnQsP3RzJmFlJi0mYXMuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD9wYS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3N1LiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/dm9nLXN1LiZwcGFiZXctcmVmc25hcnQsc3BpZi1wcGFiZXctcmVmc25hcnQsPz9odCZyb24tcGEuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD91b3MtcGEuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD8/P2V3LSZhYy5wcGFiZXctcmVmc25hcnQsc3UuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD91ZS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3ZvZy1zdS4mcHBhYmV3LXJlZnNuYXJ0LHNwaWYtcHBhYmV3LXJlZnNuYXJ0LD8/Pz8yLSZodHVvcy0mcGEucHBhYmV3LXJlZnNuYXJ0LHVlLnBwYWJldy1yZWZzbmFydCw/bGFydG5lYy11ZS5wcGFiZXctcmVmc25hcnQsdHMmYWUmLXN1LiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/aHQmcm9uLXBhLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/dW9zLXBhLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/Pz9ldy0mc3UuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD91ZS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsPz8/PzMtdHMmYWVodCZyb24tcGEuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD91b3MtcGEuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD8/ZXctdWUuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD8/NC10c2FlaHR1b3MtcGEucHBhYmV3LXJlZnNuYXJ0LDUtdHNhZWh0dW9zLXBhLnBwYWJldy1yZWZzbmFydCw3LXRzYWVodHVvcy1wYS5wcGFiZXctcmVmc25hcnQsP3Jla2FtZWdhcy4mMS0maHQmcm9uLXVlLiZrb29iZXRvbixvaWR1dHMsP3Vvcy0mZW0uJmtvb2JldG9uLG9pZHV0cyw/ZmEuJmtvb2JldG9uLG9pZHV0cyw/cGEuJmduaWxlYmFsLGtvb2JldG9uLG9pZHV0cyw/dWUuJmtvb2JldG9uLG9pZHV0cyw/Pz9sYXJ0bmVjLSZhYy4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLHNwaWYta29vYmV0b24sP2VtLiZrb29iZXRvbixvaWR1dHMsP2xpLiZrb29iZXRvbixvaWR1dHMsP3VlLiZnbmlsZWJhbCxrb29iZXRvbixvaWR1dHMsPz90cyZhZSYtJmFzLiZrb29iZXRvbixvaWR1dHMsP3BhLiZrb29iZXRvbixvaWR1dHMsP3N1LiZnbmlsZWJhbCxrb29iZXRvbixvaWR1dHMsc3BpZi1rb29iZXRvbiw/dm9nLXN1LiZrb29iZXRvbixvaWR1dHMsc3BpZi0ma29vYmV0b24sb2lkdXRzLD8/P2h0JnJvbi1wYS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLD91b3MtcGEuJmduaWxlYmFsLGtvb2JldG9uLG9pZHV0cyw/Pz9ldy0mYWMuJmtvb2JldG9uLHNwaWYta29vYmV0b24sP3N1LiZrb29iZXRvbixvaWR1dHMsc3BpZi1rb29iZXRvbiw/dWUuJmduaWxlYmFsLGtvb2JldG9uLG9pZHV0cyw/dm9nLXN1LiZrb29iZXRvbixvaWR1dHMsc3BpZi0ma29vYmV0b24sb2lkdXRzLD8/Pz8/Mi0maHR1b3MtJnBhLmtvb2JldG9uLHVlLiZrb29iZXRvbixvaWR1dHMsPz9sYXJ0bmVjLXVlLiZrb29iZXRvbixvaWR1dHMsP3RzJmFlJi1zdS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLHNwaWYta29vYmV0b24sP2h0JnJvbi1wYS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLD91b3MtcGEuJmduaWxlYmFsLGtvb2JldG9uLG9pZHV0cyw/Pz9ldy0mc3UuJmduaWxlYmFsLGtvb2JldG9uLG9pZHV0cyxzcGlmLWtvb2JldG9uLD91ZS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLD8/Pz8zLXRzJmFlaHQmcm9uLXBhLiZrb29iZXRvbixvaWR1dHMsP3Vvcy1wYS4ma29vYmV0b24sb2lkdXRzLD8/ZXctdWUuJmtvb2JldG9uLG9pZHV0cyw/PzQtdHNhZWh0dW9zLXBhLmtvb2JldG9uLD8/P2UmaXZlciEubWVhLD9uIS5lbGJhZWNpdG9uLD8/b2RuaXc/P3kmYWxjcmFiP290Pz8/dCYwc3J6Yy0tbng/YSEuJjQsYW1pbDQsY2EhLmh0cz8/ZSZtb2hzbmQsdGllc2JldzMyMSw/Z25pJmxpYW1lcnV0dWYsdHNvaGVydXR1Ziw/byZjP2ZuaSw/cCZoMjEsb2hzZGFlcnBzeW0sP3ImZXVlZmtudWYubmVpdyxvPz92Jmc/aXJwLD94aTIseSZtLHRpYy1hbWlsLD96aWIsP2M/ZSFzPz9oYz9sP21hbWk/cmNvbWVkPz9iIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/Yj9nbD8/YyZhdG5vYz9lJmxlcz9yaWQhLnAycGJpbCx0eGVuPz8/P2RpbWhjcz9lIS4mZW1hbj9ncm8/bW9jP29mbmk/dGVuP3VkZT92b2c/emliPz9iP2VtP2dyYXQ/aWQ/ayZjaXJjP3JhbT8/biEuJjFkbmExLXNwcGEsNSZlZCxpbnUsPzZ2bnlkLDcmN25kYy5yLGVyYXVxcyw/YSZsJi1tb3JmLG1vb2IsP21pbmlmZWQscmVtYWN5dGlydWNlc3ltLHRhZHN5YXdsYSx6LD9iJmJvaSxld2RhcnltLGcsbHlsdHNhZjoucGFtLCw/YyZiYXosaSZtYW55ZC1zbmQsbmFncm8tZ25pdGFlLHRhdHMtb2llYm9kYSw/cGFpZGVteW0sP2QmZSZjYWxwYix6aWFtYWthLD9mZXJ1emEsaGlhbWFrYSxpcmdldmlzc2FtLnNhYXAuJjEtJmdzLG5vbCxyZix5biw/Mi0mbm9sLHluLD8/bmFiLWVodC1uaSx1b2xjJi1zbmQsZWh0Z25pdHVvcixmdGMsbWVhZWJvZGEsbmlldmFzLmMmZGktZXRzZWRyb24saXRzYWxlaiw/eGVkbmF5Oi5lJmdhcm90cyx0aXNiZXcsPyw/P2UmYyZuYXJ1c25paHRsYWVoZXppdGF2aXJwLHJvZmVsYWNzLmosP2dkZSZlcnV6YSxpYW1ha2EsP2h0LW5vLWVjaWZmbyxsJmFjc25vb20saWJvbS1lcnV6YSxvbWxlbm51dCw/bSZhbnRlbnltLm5zLGVjbnVvYixpdG51cm9pZWJvZGEsb2h0YW55ZCx0Y2VyaWRlciw/biZpbG5vLWV2cmVzZXIsb3pkb3AsP3ImYWxmZHVvbGM6Lm5kYywsZWh1cmh0LD9zOmFiYXB1cywsdGkmcy1yZXBwYXJjcyx1c2VnZGUsP3phbSZheW0sa2Nhciw/P2YmYWVsZXRpcyxjcnMuJmNvcyxyZXN1LD9laGMtYS1zaSxmZ2csP2cmbmkmZ2F0cy0mZCZlemlhbWFrYSxoaWFtYWthLD9lJmdkZWlhbWFrYSx0aXVzZWdkZSw/aWFtYWthLG5pZ2lyb2lhbWFrYSx5ZWtlZ2RlLD9yZWVzbmVzLHNpcmtjaWxjLD9vbGJldnJlcyw/aHNhZHRvYixpJmFtYWthLG5heXVsLHBhJi1lcnV6YSxkdW9sY3ZvZ3N1LiZlcm9jLiZiJmV3LG9sYiw/ZWxpZiw/c3ViZWNpdnJlcyw/Pz9rJmVlZy1hJi1zaSxzaSw/aXBvLHUsP2wmYSZib2xnZXJhbGZkdW9sYy5uZGMsY29sb3R0YWQsP2lhbXd0LG1ldGVoLHMmZC1uaSxzLTc3bmRjLD8/bSZhYyZhc2FjLGloLD91cm9mbmllbSw/biZhJmYmYWdwLGxobiw/aSZiZWQsbGxlcmssPz9jZXJhbGZkdW9sYy5uZGMsZGNkdWFia2NhbGIsaTpnaXJvaWFtYWthLCxvLSZkcm93eWVrLGV2aWwscmV2cmVzLD9wdi1uaSw/byZjLW1vcmYsZHVwcGEsam9kc25kLGxlZmFtLG4mZWQ6LnhvYmRuYXMsLHJlZm5pbm8sP3JwLXl0aW51bW1vYyx0dGFkeW0sP3AmaSYtJmV0c2VmLG9uLHNuZGQsP2Vtb2gsZmxlcyxud28sP2osbWFjLWRuYWItdGEsbyYtb2lkYXItbWFoLGgmYmV3LHNkYWVycHN5bSw/P3BhZHVvbGM6dm9nc3UsLHRmZSZtb2gsdnJlcyw/dXNuZCw/ciZlJmdhbmFtY2lmZmFydDp2b2dzdSwsdHN1bGN5ZHVvbGMsdnJlcy14bmssP3Zkc2xlbm5haGM6LnUsLD9zJmEmaWxhJm55ZCxzbmQsP255bXNkLD9iYmV2cmVzLGR5bGltYWYsZSZnZGUtbmRjLHJhdXFzLHN1b2hzeXViLHQmaXNiZXdlcnV6YSx5cyw/P2tla29rb2hjcyxuJmQmLXdvbixha2EsZDp1bnlkLCxnb2xiLG5wdiw/b2l0Y251ZmR1b2xjLD9wcGFjaXRhdHNlcnV6YTouJjEsMjpzdXRzJmFlLGV3LD8sMyw0LDUsNiw3LGFpc2F0c2FlLGVwb3J1ZXRzZXcsc3VsYXJ0bmVjLD8scyZhLXNrY2lrLGVjY2EmLWNpdGF0cyxkdW9sYyw/P3Qsd29kbml3LiZlcm9jLiZiJmV3LG9sYiw/ZWxpZiw/c3ViZWNpdnJlcyw/P3QmYWRpZXMsY2UmZmZleW0sam9ycHJvdDouc2VnYXAsLGxlc3BvaHMsP2UmbnJldG5pZm9kbmUsc21lbSw/ZmFyY2VuaW1ldnJlcyxpLSZla29yYixzJmVvZCxsbGVzLHRlZyw/P24mZSZzc2lkeW0sdG5vY3Jlc3V2LD9vcmZkdW9sYyw/cmVjbGFjb2wscyZhY3luYWVyYWxmZHVvbGMubmRjLGl4ZXRub2Qsb2gmLXNwdjouY2l0c2FsZWouJmNpcixsdGEsc2puLD8sZ25payw/P3lycHMsP3UmaCxueWQsciw/dmVkLSZhbmFmYXJnLG5haXNzYWx0YS5kb3JwLm5kYyw/eCZpbnVlbW9oLHNweW0sdHNhbGUuJjFvdHMtc2xqLDJvdHMtc2xqLDNvdHMtc2xqLD91bmlsZW1vaCw/eSZhJnAtY3NidXMsd2V0YWctbGxhd2VyaWYsP2VrZWdkZSxmZmlqZHVvbGM6LiZlZC0xYXJmLHN1LTF0c2V3LD8sZ29sb255c3ltLGx0c2FmLiZkb3JwLiZhLGxhYm9sZyw/bHNzLiZhLGIsbGFib2xnLD9wYW0sc2x0ZWVyZiw/biYtbW9yZixvZmlwaSw/c3JhYiw/eiZhLW1vcmYsdGlyZnltLD8/P3A/dGNpcD92Pz9mJmlnP29zb3JjaW0/P2chLiZib2c/ZG5pP2dybz9saW0/bW9jP3Rlbj91ZGU/Pz9oIS4mZGVtP2dybz9sJmVyP29wPz9tJm9jP3JpZj8/byZmbmk/cnA/cyZyZXA/c2E/Pz9wbyZocz9vYz8/dCZlbj9sdWRhP3I6YT8sP3VkZT92dW9nPz8/aSEuJmEmMm4tbG9yaXRkcy0tbng/N2UtZXRzb2FlbGxhdi0tbng/OCZjLWFuZXNlY2xyb2YtLW54P2ktbHJvZmFuZXNlYy0tbng/P2F0P2I/YyFjdWw/P2R2P2kmYmxvJi1vaXBtZXQ/b2lwbWV0Pz9jc2VyYj9kcmFibW9sP2cmZ29mP3VyZXA/P2wmZ3VwP2kmY2lzP21lJi1vaWdnZXI/b2lnZ2VyPz8/dWlnJi0mYWl6ZW5ldiYtaWx1aXJmP2lsdWlyZj8/ZXYmLWlsdWlyZj9pbHVpcmY/P3YmLWlsdWlyZj9pbHVpcmY/Pz9haXplbmV2Ji1pbHVpcmY/aWx1aXJmPz9ldiYtaWx1aXJmP2lsdWlyZj8/diYtaWx1aXJmP2lsdWlyZj8/Pz9uJmEmYnJldj9jdWw/cG1hYz90YWM/P2lkcmFzP29icmFjJi1zYWlzZWxnaT9zYWlzZWxnaT8/cmVzaT8/b3RzaXA/ciZiJmFsYWMhLW9pZ2dlcj9vaWdnZXI/P211Pz9kbmEmLSZhdHRlbHJhYi1pbmFydD9pbmFydC1hdHRlbHJhYj8/YXR0ZWxyYWJpbmFydD9pbmFydGF0dGVscmFiP3NzZWxhPz9lcG1pP3VnaWw/P3RuZWxhdiYtb2Jpdj9vYml2Pz92YXA/eiZlJm5ldj9wcyYtYWw/YWw/Pz9pcm9nPz8/bCZpdXFhIWw/P2xlaWI/P20mb3I/cmFwPz9uIWFjc290P2UmZG9tP2lzP3NlYyYtJmlscm9mP1x1MDBlY2xyb2Y/P2lscm9mP1x1MDBlY2xyb2Y/Pz9nJmFtb3ImLWFpbGltZT9haWxpbWU/P2VkcmFzP29sb2I/P2kmc3NlbT90YWw/P25lIXZhcj8/byZjbmE/bWVyYz9yZXY/dmFzPz8/b25lZz9wP3IhYSZjc2VwP3JyJmFjJi1hc3NhbT9hc3NhbT8/ZWY/P3Zvbj8/ZXRhbT90c2FpbGdvIS1sbGVkP2xsZWQ/Pz9zIWlwP3NhbSYtYXJhcnJhYz9hcmFycmFjPz91JmNhcmlzP2dhcj8/P3QhYSZjaWxpc2FiP3JlY2FtPz9yZXNhYz9zb2EhLSZkJi0mZWxsYXY/bGF2Pz9lbGxhdj9sYXY/P2VsbGF2Pz9kJi0mZWxsYXY/bGF2Pz9lbGxhdj9sYXY/P2VsbGF2Pz90ZSZscmFiJi0mYWlyZG5hLWluYXJ0P2luYXJ0LWFpcmRuYT8/YWlyZG5haW5hcnQ/aW5hcnRhaXJkbmE/P3NzaW5hdGxhYz8/P3VkYXA/diFvJmRhcD9uZWc/dG5hbT8/P3puJmFpcmImLWEmbGxlZC1lLWF6bm9tP3pub20/P2EmbGxlZGVhem5vbT96bm9tPz9lYXpub20/P2UmYyZhaXA/aXY/P3NvYz90b3A/P29tPz8/YiYtJjIzLDQ2LDYxLD8zYy1sb3JpdC1kcy1vbml0bmVydC0tbng/YmUtZXRzb2EmLWVsbGF2LS1ueD9kZWxsYXYtLW54Pz9jIWYtYW5lc2VjLWxyb2YtLW54P20tbHJvZi1hbmVzZWMtLW54Pz9oZS1ldHNvYS1kLWVsbGF2LS1ueD9tIXU/P28yLWxvcml0ZHMtbmV6b2ItLW54P3NuLWxvcml0ZHMmLW5hc2wmYWItLW54P3ViLS1ueD8/bml0bmVydC0tbng/P3YhNi1sb3JpdC1kc25pdG5lcnQtLW54PzctbG9yaXRkcyYtbml0bmVydC0tbng/b25pdG5lcnQtLW54Pz8/eiZyLWxvcml0LWRzJi1uaXRuZXJ0LS1ueD9vbml0bmVydC0tbng/P3MtbG9yaXRkcy1vbml0bmVydC0tbng/Pz9jJmY/aXM/bD9tP3A/cj92Pz9kJnA/dSFvbGNueXMsPz9lJmMhY2VsP2luZXY/bmVyb2xmPz9mP2chYXBlbW9oMzIxLGlkYSYtJmEmLW9uaXRuZXJ0P29uaXRuZXJ0Pz9vdGxhIS1vbml0bmVydD9vbml0bmVydD8/P2EmLW9uaXRuZXJ0P29uaXRuZXJ0Pz9vdGxhIS1vbiZhemxvYj9pdG5lcnQ/P29uaXRuZXJ0Pz8/P2hjcmFtP2w/bSFvJmhzbmQscj8/P24maWR1P28mbiZlZHJvcD9pc29yZj8/dG9yYz8/P3A/cj9zJmVyYXY/aWxvbT8/dCFub21laXA/cyZlaXJ0P29hIS0mZC1lJmVsbGF2P1x1MDBlOWxsYXY/P2UmZWxsYXY/XHUwMGU5bGxhdj8/P2RlJmVsbGF2P1x1MDBlOWxsYXY/P2UmZWxsYXY/XHUwMGU5bGxhdj8/Pz8/dj96bmVyaWY/P2cmYT9iP2Y/aWw/bz9wP3I/dXA/dmY/P2hjP2kmYj9jP2RvbD9mP2whbGVjcmV2P29wYW4/cm9mJi1hbmVzZWM/YW5lc2VjPz8/bT9uJmEmcGFydD9ydCYtYXR0ZWxyYWItYWlyZG5hP2F0dGVscmFiYWlyZG5hPz8/aW1pcj9yZXQ/P3A/ciFhJmI/aWxnYWM/c3Nhcz8/P3MhaWRuaXJiPz90JmVpJmhjP3I/P3NhPz92Pz9sJmEhYz8/Yj9jP28mbT9yaXQmLSZkJmV1cyYtJm5pdG5lcnQ/b25pdG5lcnQ/P25pdG5lcnQ/b25pdG5lcnQ/P3VzJi0mbml0bmVydD9vbml0bmVydD8/bml0bmVydD9vbml0bmVydD8/XHUwMGZjcyYtJm5pdG5lcnQ/b25pdG5lcnQ/P25pdG5lcnQ/b25pdG5lcnQ/Pz9zJi1vbml0bmVydD9vbml0bmVydD8/P2QmZXVzIS0mbiZhc2wmYWI/dWI/P2V6b2I/aXRuZXJ0Pz9vbml0bmVydD8/bml0bmVydD9vbml0bmVydD8/dXMmLSZuJmFzbCZhYj91Yj8/ZXpvYj9pdG5lcnQ/P29uaXRuZXJ0Pz9uaXRuZXJ0P29uaXRuZXJ0Pz9cdTAwZmNzIS0mbiZhc2wmYWI/dWI/P2V6b2I/aXRuZXJ0Pz9vbml0bmVydD8/bml0bmVydD9vbml0bmVydD8/P3MmLW9uaXRuZXJ0P29uaXRuZXJ0Pz8/Pz9tJmFjP2Y/aT9vbD9yPz9uJmEhbGltP3NsJmFiP3ViPz8/Yj9jP2UhZW4uY2osdj96b2I/P2lydXQ/bSFwPz9wP3I/dD8/byZhIXY/P2IhcmV0aXY/P2MhY2VsPz9lbnVjP2chaXZvcj8/aSZkZW0mLW9uYWRpcG1hYz9vbmFkaXBtYWM/P3BtZXQmLWFpYmxvP2FpYmxvPz9yZG5vcz96YWw/P2w/bSFhJmdyZWI/cmV0Pz9vYz9yZSZmP2xhcD8/P24hYSZkaXBtYWMmLW9pZGVtP29pZGVtPz9saW0/dHNpcm8/emxvYj8/ZWNpcCYtaWxvY3NhP2lsb2NzYT8/aSZicnUmLW9yYXNlcD9vcmFzZXA/P2xsZXZhP3JvdD90bmVydD8/ciZlbGFzP292aWw/P3VsbGViPz9wP3IhYSZzZXAmLW9uaWJydT9vbmlicnU/P3puYXRhYz8/b3VuPz9zIWl2ZXJ0P3NhYm9wbWFjPz90IWFycD9lJm5ldj9zc29yZz8/biZhcmF0P2UmZ2lyZ2E/cnQ/dmVuZWI/Pz8/enomZXJhP3VyYmE/Pz9wJmE/b2hzZGFlcnBzeW0scz90Pz9xYT9yJmEhbT9zPz9iIWE/P2M/Zj9nP2s/bWU/bz9wP3M/dD92Pz9zJmEmYj9pc2VsZ2kmLWFpbm9icmFjP2Fpbm9icmFjPz8/Yj9jP2VscGFuP2k/bT9vJnQ/eCZiaSxvYmRhaWxpLD8/cz90P3Y/P3QmYT9iP2M/bD9tP25vbWRlaXA/bz9wP3Y/P3UmZGU/bD9uP3A/P3YmYT9vZz9wP3M/dD92Pz95JmRyYWJtb2w/ZWxsYXYmLWF0c29hP2F0c29hPz9saWNpcz9uYWNzdXQ/P3omYWw/Yj9jP3A/P1x1MDBlY2xyb2YmLWFuZXNlYz9hbmVzZWM/Pz9kZXJjP2VyP2Y/bT91dG5pPz9qZTNhM2FiZ20tLW54P2toP2whLnZvZz91ZGE/P20hLiZncm8/bW9jP3Rlbj91ZGU/Pz9uJmEmbW9yb2NraXZkbmFzP3J1YXRzZXI/dG51b2NjYT8/ZSZnP20mZWdhbmFtP3BpdXFlPz9yPz9pIS51ZT9tP29wZGxvZz8/b3B1ZD91b2NzaWQ/P28mYj9jcyEuJmVtLGdybyxvYyx2b2c6LmVjaXZyZXMsLD8/ZD9nP2g/aj9vZmVyYWI/cCZlZGVtb2g/cz8/P3AhLiZiZXdhbmlnYXAzMjEsZW1vbj9ncm8/bGJ1cD9tb2M/dCZlbj9uaT8/dWRlP3ZvZz8/P3ImYSFtJmxhdz9zPz8/ZXB4ZT9vcCZlcj9wdXMhLnlzcmFiLD9zPz8/cyEuJmEmZGF4aWFibWU/cmFyaWssP2UmbW90b2FzP3BpY25pcnA/cm90cz8/Z3JvP2xpbT9tb2M/byZjP2RhbHVzbm9jP2hvJmlsZWgsbiw/P3Rlbj91ZGU/P2FmP2UmYj9yP3VxPz9pIXJvbGY/dG5lZD8/byZoIS4mMnB3LGR1b2xjcmltLGUmbGVqLHRpc2VlcmYsP2ZsYWgsbCZlbmFweXNhZSxydXBtZXQsP3MmcHZ0c2FmLHNlY2NhZHVvbGMsP3QmZWdkYWcsbG9iLG5lZ3JlbWUsc2FmeW0sP3YmZWR1bXB3LHJlc2ksPz8/cCFzdWE/Pz91cnQ/P3QhLiZlbWFuP2dybz9saW0/bW9jP28mYz9mbmk/cnA/P3Rlbj91ZGU/dm9nP3ppYj8/YXloP24/byFiYmE/aXJyYW0/Pz91b2duYWg/eGVuP3khLmdybyw/enRlaj8/dSYyJjV0ZTktLW54P3lzc3AtLW54Pz9hIS4mYSZzP3c/P2Npdj9kJmk/bHE/P2Zub2M/Z3JvP21vYyEuJnBvaHNkYWVycHN5bSxzdGVsZHVvbGMubGVtLD8/bnMmYT9yaC5zcHYsP3NhdD90JmNhP2VuP24/P3VkZSEuJmEmcz93Pz9jaSZsb2h0YWM/dj8/ZGxxP3NhdD90JmNhP24/P3dzbj8/P3ZvZyEuJmEmcz93Pz9jaXY/ZGxxP3NhdD8/P3dzbj96bz8/dGk/P2MhLiZib2c/Zm5pP2dybz9tb2M/dCZhbj9lbj8/dWRlPz9pPz9kJmUhLnRpci5zZWdhcC10aWcsP2lhYj8/ZSEuJmVtb2hzbmQsb2RhZ29kLmNpdHNhbGVqLHB3dGNlcmlkLHMmZWNpdnJlc2Jld25vemFtYS5uby4xLXRzYWUtZWQtY3N1ZS5wZGktb3RpbmdvYy5odHVhLG5kJnBzLHVvbGMsP3J1ZWxmeHVlZCw/d3ZycCx5c3JhYiw/P2chLiZiZXc/Z3JvP20mYXVnP29jPz9vZm5pP3Rlbj91ZGU/dm9nPz8/aCEuJjAwMDI/YSZjaXRvcmU/aWRlbT9raXRvcmU/P2Vkc3pvdD9ncm8/aWx1cz9sZXRvaD9tJmFsa2VyP2xpZj90P3Vyb2Y/P25hbHRhZ25pP28mYz9lZGl2P2ZuaT9sZXZ5bm9rP25pc2FjPz9wb2hzP3JhcmdhP3MmYSZrYWw/emF0dT8/ZW1hZz93ZW4/P3QmbG9iP3JvcHM/P3ZpcnA/eGUmcz96cz8/eXRpYz96c2Fnb2o/P29zP3N1dD8/bCEuZXRpc2JldzMyMSw/bSEuJmNhP2dybz9tb2M/b2M/cm8/dGVuP3ZvZz8/P24hLiZkdW9sY2VzaXJwcmV0bmUsZW5pJmVzcmVtLG0sP3RlbmtjYWhzLD9lbSEuJmVuaWxub3lzcmFiLHlzcmFiLD8/P28mZ2duYXc/eSFjPz8/ciEuJmEmaSZreW1sYWsscmlraHNhYix2b2Ryb20sP3llZ3lkYSw/YnBzLGNhLGR1b2xjcmltLGUmbmlyYW0scnBjbSw/ZyZiYyxybyw/aWFuYXRzdWssayZpaGNsYW4scyZtLHJvZ2l0YXlwLD8/bGkmYW1kbGMuYmgsbSw/bW9jLG5hdHNlZ2FkLG9uaWp5bSxwcCxyaSZiLGQmY206LnNwdiwsb3J1ZSw/bWlkYWx2LD9zJmFyLGl0eW0sP3QmZW4sbmksP3UmNGFuLGRlLD92byZnLG4sP3luem9yZyx6YWt2YWtpZGFsdiw/bXljP3A/dWc/P3MhLiZhJmQmZ29sb3YsbmFnYXJhayw/Z3VsYWssaSZncm9lZyxreW1sYWssbGVyYWssbmVtcmEscmlraHNhYixzc2FrYWhrLHZvZHJvbSx6YWhrYmEsP2x1dCxyYWhrdWIsdnV0LHllZ3lkYSx6bmVwLD9icHMsZGEmYmFnaHNhLHJnb25pbGVzdCw/Z3VuZWwsaSZhbmF0c3VrLGhjb3Msb3Zhbix0dGFpbGdvdCw/ayZhbGhzeWduYW0saWhjbGFuLHMmbGVnbmFoa3JhLG0sbiZhJm1ydW0seXJiLD9pJmJ1eXRrYSxuYm8sPz90aW9ydCx2b3Jrb3AsPz9sJm9jYXJhayx5Ym1haiw/bmEmZ3J1ayxqaWFicmV6YSx0cyZlZ2FkLGhrYXphay0maHRyb24sdHNhZSw/Pz9vdm9uYXZpLHImYWRvbnNhcmssaW1pZGFsdiw/dCZlbnhlLG5layZoc2F0LG1paGMsPz92byZoc2FsYWIsbiw/eW56b3JnLHomYWt2YWtpZGFsdixlbXJldCw/P3QmYW1vaz9pJmp1Zj9tYXNpaD8/Pz92IS4mZ3JvP21vYz90ZW4/dWRlPz8/eWt1eXI/P3YmYj9jIS4mZGk/ZW1vbj9ncm8/bGJ1cD9tb2M/dCZlbj9uaT8/dWRlPz8/ZWQhLiYycixhJi0mc2ksdG9uLXNpLD90ZWQsP2NvZGViZXJnLGQmYW9seWFwLG9vZy1hLXNpLD9lJmVyZi1rb3JnbixnYXJvdHMuM3Qsbmlsbmlnb2wsdmFyYiw/ZyZuaWdhdHMtb25lZCxvbGJyYWViLD9oJmNldGFpZGVtLHNhZHRvYiw/aXBhZWdhcm90cy4zdCxrJmNhdHNsbHVmLWEtc2ksb3Jnbiw/bCZlJmNyZXYsbmFwLD9sZWNwYWVsLG9vYy1zaSw/bnNyaCxvbmVkLHAmbDouJmlwYSxzdGNlamJvLD8sb2hzdW5ldml2LHBhLXJldHRhbHAscmU6LmJldywsP3ImZGRheW0sZXlhbHBsYWNvbCw/cyZlZ2FwLHJlJmtyb3csbmlhdG5vY251ciw/P3QmaSZscGVyOi4mYXJpayxkJmVlcixpLHJhY2lwLD9lJmtpcCxzYWVsZXJlcnAsP2Zyb3csZ25pZ2F0cyxrJmNvcHMscmlrLD9sYWJvbGcsbWlrLG8mZG8sa3Npcyw/cmUmaGNyYSxrJmMmYWgsdXQsP2lyLD8/cyZlbm9iLGlyYXAsbWFldCw/dGlwcmF0LHVsdXMseSZhd2VuYWosZWxzZXcscmFuYWMsPz8sbXgsP2x1YXZyZXZlLnlhbGVyLD92cmVzaSx3ZWl2ZXJwYnVodGlnLHgmZG9tLG9iZG5hcy1haGNvbSw/eSZsZixzcmFiLD8/P2loP2whLiZkaT9mbm9jP2dybz9saW0/bW9jP25zYT90ZW4/dWRlP3ZvZz8/P20hLiZlbWFuP2dybz9saW0/bSZvYz91ZXN1bT8/byZmbmk/ciZlYT9wPz8/cG9vYz90JmVuP25pPz91ZGU/dm9nP3ppYj8/P28mZz9tPz9ydD9zIS4mYm9nP2Rlcj9ncm8/bW9jP3VkZT8/P3QhLiZhcnVrYXMsYmV3LWVodC1ubyxtb3JmLG5haHQtJmVzcm93LHJldHRlYiw/c25kbnlkLD9kP2k/d29uPz91cWh2LS1ueD8/dyZhIS5tb2M/bD8/YiEuJmNhP2dybz9vYz90ZW4/dm9nPz8/YyEuJmdybz9tb2M/dGVuP3VkZT8/Y3A/P2UmaXZlcj9uP3M/P2chLnhuLD9rIS4mYm1lP2RuaT9ncm8/bW9jP3Rlbj91ZGU/dm9nPz8/bSEuJmNhP2dybz9tb2M/b2M/cG9vYz90JmVuP25pPz91ZGU/dm9nP3ppYj8/Yj8/byZjc29tP2ghcyEuc20sPz9uIS5ueWQsP3c/P3AhLiYzNDR4LHNuZHVvbGMsdm9nPz8/ciEuJmNhP2dybz9saW0/b2M/cG9vYz90ZW4/dm9nPz9uPz90IS4mYnVsYz9lbWFnP2dybz9sJmltP3J1LD9tb2MhLnJlbGlhbXltLD9zbmR5bSx0ZW4/dWRlP3YmZGk/b2c/P3ppYmU/Pz96IS4mY2E/Z3JvP2xpbT9vYz92b2c/Pz8/eCZhIXQ/P2MhLiZkZWhjcmFlc2VyLGh0YSxvZm5pLHMmZXp6aXVxLGxlbm51ZixuZHVvbGMscm90YWx1Y2xhYyx0Jm5lbXNzZXNzYSxzZXQsPz92b2c/d29ueWFwLD8/ZSZkJmVmP25heT8/bWEhbmFiPz9yb2Y/cz8/aWxmdGVuP2p0P20hLiZib2c/Z3JvP21vYz90ZW4/dWRlPz9nP21hMmliZ3ktLW54Pz9vJmIheD8/Zj9yZXg/P3JiZ24tLW54P3MhLnZvZz8/eCZhbSZqdD9rdD8/eD8/P3kmNHB1bnUtLW54PzdycjAzLS1ueD9hJmQhaSZsb2g/cmZrY2FsYj8/b3QhLmVteWZpbGF1cWVycCw/P2chLnNlZ2FwLD9scD9wIWlsYT8/cm90P3NzaW4/d2Rhb3JiPz9iIS4mZm8/aGNldGFpZGVtLGxpbT9tb2M/dm9nPz9hYj9ndXI/P2MhLiZjYT9kdGw/Z3JvP2xpbT9tJm9jIS5lY3JvZmVsYWNzLmosP3Q/P29ycD9zJmVnb2xrZT9zZXJwPz90ZW4/dm9nP3ppYj8/YW1yYWhwP25lZ2E/P2QmZGFkb2c/dXRzPz9lJmtjb2g/biZkeXM/b20/cm90dGE/P3NuaWtjbT8/ZyEuJmdybz9tb2M/b2M/dGVuP3VkZT92b2c/P29sb25oY2V0IS5vYyw/cmVuZT8/aHBhcmdvdG9ocD9pZCEuZSZuaWdhbWksc3J1b2NzaWQsPz9rIS4mZ3JvP21vYz90ZW4/dWRlPz9zPz9sIS4mY2xwP2QmZW0/aT8/Z3JvP2hjcz9tb2M/dGVuP3VkZT92b2c/P2Y/aW1hZiFuYWNpcmVtYT8/bCZhP2lsPz9wcHVzPz9tIS4mZW1hbj9ncm8/bGltP21vYz90ZW4/dWRlP3ZvZz96aWI/P2VkYWNhIS5sYWljaWZmbyw/cmE/P24mYXBtb2MhLnhvYnltLD9vcz8/byZqP3M/P3AhLiZncm8/bGltP21vYz9wb29jP3Rlbj91ZGU/dm9nPz8/ciZlJmNvcmc/Z3J1cz9sbGFnP3ZpbGVkPz9sZXdlaj9vdGNlcmlkP3RudW9jP3V4dWw/P3MhLiZncm8/bGltP21vYz90ZW4/dWRlP3ZvZz8/P3QmZWZhcz9pJmM/bGVkaWY/bnVtbW9jIS4mYmRuZXZhcixnb24sbXVyb2Z5bSw/P3ImYWhjP3VjZXM/P3NyZXZpbnU/P2xhZXI/ciZhcD9lcG9ycD8/dWFlYj8/dSEuJmJ1Zz9ncm8/bGltP21vYz90ZW4/dWRlP3ZnLD9iIXRzZWI/Pz92YW4/eGVzPz96JmEhLiZlbWFuP2dybz9saW0/bW9jP28mYz9mbmk/cnA/P3BwP3QmZW4/bmk/P3VkZT92b2c/emliPz8/YiEuJmF6LGdybz9qc2csbW9jP29jP3NuZHltLHRlbj91ZGU/dm9nPz8/YyEuJjRlLDl5eG9ycHRuZXRub2MuY3NyLGludW0uZHVvbGMuJnJzdSx0bGYsP20mbGFlcix1cnRuZWNhdGVtLm1vdHN1Yyw/b2Msdm9nPz8/ZCEuJmNvcz9ncm8/bG9wP20mb2M/dD8/b3NzYT90JmVuP3JhPz91ZGU/dm9nPz8/aWIhLiZkdW9sY3NkLGUmaHQtcm9mLG1vcy1yb2Yscm9tLXJvZiw/aXpvaixsaWFydGV2aXRjYSxuYWZhbW0scCZpJi0mZHVvbGMsb24sP2ZsZXMsP29oYmV3LHRmeW0sP3JldHRlYi1yb2Ysc25kJm55ZCx1b2xjLD94cm8sP2c/P2shLiZkdW9sY2osZ3JvP2xpbT9tb2M/dGVuP3VkZT92b2c/Pz9tIS4mY2E/Z3JvP2xpbT9vYz90ZW4/dWRlP3YmZGE/b2c/Pz8/biEuJmFzcS1pcm9tLS1ueD9jYT9ncm8/aHRsYWVoP2kmciZjP28mYW0/XHUwMTAxbT8/P3dpIWs/Pz9rZWVnP2wmaW0/b29oY3M/P25lZz9vYz9zbmR1b2xjLHQmZW4/bmVtYWlscmFwP3ZvZz8/P2EhbmlmbGxhPz8/cmF3aGNzP3MhLiZjYT9ncm8/b2M/Pz90IS4mYyZhP3M/P2UmbT9uPz9pYm9tP2wmZXRvaD9pbT8/byZjP2ZuaT9nPz9ybz92dD8/P3UhLiZncm8/bW9jP29jP3Rlbj8/cndvbj8/eXghLiZlJm5pZWZmYWMseGUsP2hzYWR0b2IsbGVubnV0bmVwbyw/P3p1Yj8/XHUwM2JiXHUwM2I1P1x1MDNjNVx1MDNiNT9cdTA0MzBcdTA0MzJcdTA0M2FcdTA0NDFcdTA0M2VcdTA0M2M/XHUwNDMxXHUwNDQwXHUwNDQxIS4mXHUwNDMzXHUwNDQwXHUwNDNlP1x1MDQzNFx1MDQzZT9cdTA0M2FcdTA0MzA/XHUwNDQwJlx1MDQzMVx1MDQzZT9cdTA0M2YhXHUwNDQzPz8/Pz9cdTA0MzMmXHUwNDMxP1x1MDQ0MFx1MDQzZT8/XHUwNDM0XHUwNDNhXHUwNDNjP1x1MDQzN1x1MDQzMFx1MDQ5Yj9cdTA0MzhcdTA0NDJcdTA0MzVcdTA0MzQ/XHUwNDNhXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDNhP1x1MDQzYlx1MDQzNVx1MDQzMT9cdTA0M2NcdTA0M2VcdTA0M2E/XHUwNDNkJlx1MDQzOVx1MDQzMFx1MDQzYlx1MDQzZFx1MDQzZT9cdTA0M2VcdTA0M2M/P1x1MDQ0MFx1MDQzYVx1MDQ0Mz9cdTA0NDFcdTA0NDNcdTA0NDAhLiZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M2NcdTA0MzBcdTA0NDEsXHUwNDMxXHUwNDNmXHUwNDQxLFx1MDQzM1x1MDQ0MFx1MDQzZSxcdTA0MzdcdTA0MzhcdTA0MzEsXHUwNDM4XHUwNDQ3XHUwNDNlXHUwNDQxLFx1MDQzYVx1MDQ0MVx1MDQzYyxcdTA0M2MmXHUwNDNlXHUwNDNhLFx1MDQ0Ylx1MDQ0MFx1MDQzYSw/XHUwNDQwXHUwNDM4XHUwNDNjLFx1MDQ0Ziw/P1x1MDQ0Mlx1MDQzOVx1MDQzMFx1MDQ0MT9cdTA0NDRcdTA0NDA/XHUwNDRlXHUwNDM1P1x1MDU3NVx1MDU2MVx1MDU3MD9cdTA1ZGNcdTA1ZDBcdTA1ZThcdTA1ZTlcdTA1ZDkhLiZcdTA1ZDFcdTA1ZDVcdTA1ZTlcdTA1ZDk/XHUwNWQ0XHUwNWQ5XHUwNWRlXHUwNWQzXHUwNWU3XHUwNWQwP1x1MDVkYyZcdTA1ZDRcdTA1ZTY/XHUwNWU5XHUwNWRlXHUwNWRlPz8/P1x1MDVkZFx1MDVkNVx1MDVlNz9cdTA2MjdcdTA2NGEmXHUwNjMxXHUwNjQ4XHUwNjMzP1x1MDYzM1x1MDY0YVx1MDY0NFx1MDY0NT9cdTA2NDZcdTA2MjdcdTA2MmFcdTA2NGFcdTA2MzFcdTA2NDhcdTA2NDU/P1x1MDYyOFx1MDYzMSZcdTA2Mzk/XHUwNjNhXHUwNjQ1XHUwNjQ0XHUwNjI3Pz9cdTA2MjkmXHUwNjQzXHUwNjI4XHUwNjM0P1x1MDY0YSZcdTA2MmZcdTA2NDhcdTA2MzlcdTA2MzNcdTA2NDRcdTA2Mjc/XHUwNjMxXHUwNjQ4XHUwNjMzPz9cdTA2Y2NcdTA2MmZcdTA2NDhcdTA2MzlcdTA2MzNcdTA2NDRcdTA2Mjc/P1x1MDYyYSZcdTA2MjdcdTA2MzFcdTA2MjdcdTA2NDVcdTA2Mjc/XHUwNjMxXHUwNjI3Jlx1MDYyOD9cdTA2ODA/XHUwNmJlXHUwNjI4Pz8/XHUwNjMxJlx1MDYyNlx1MDYyN1x1MDYzMlx1MDYyY1x1MDY0NFx1MDYyNz9cdTA2MjdcdTA2MzJcdTA2MjdcdTA2Mjg/XHUwNjM1XHUwNjQ1P1x1MDYzN1x1MDY0Mj8/XHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjJhP1x1MDYzOVx1MDY0Mlx1MDY0OFx1MDY0NT9cdTA2NDJcdTA2MjdcdTA2MzFcdTA2Mzk/XHUwNjQzJlx1MDYyYVx1MDY0YVx1MDYyOD9cdTA2NGFcdTA2NDRcdTA2NDhcdTA2MmJcdTA2MjdcdTA2NDM/P1x1MDY0NVx1MDY0OFx1MDY0Mz9cdTA2NDYmXHUwNjI3Jlx1MDYyYVx1MDYzMyZcdTA2NDNcdTA2MjdcdTA2N2U/XHUwNmE5XHUwNjI3XHUwNjdlPz9cdTA2MmZcdTA2NDhcdTA2MzM/XHUwNjMxJlx1MDY0YVx1MDYyNz9cdTA2Y2NcdTA2Mjc/P1x1MDY0NVx1MDYzOT9cdTA2NGFcdTA2NDRcdTA2MzlcdTA2NDRcdTA2Mjc/P1x1MDYyZlx1MDYzMVx1MDYyN1x1MDY0NFx1MDYyNz9cdTA2NDVcdTA2NGFcdTA2NDRcdTA2Mjc/XHUwNjRhJlx1MDYzMVx1MDYyZFx1MDYyOFx1MDY0NFx1MDYyNz9cdTA2MzdcdTA2MzNcdTA2NDRcdTA2NDE/Pz9cdTA2NDcmXHUwNjI3XHUwNjMxXHUwNjQ1XHUwNjQ3P1x1MDY0YVx1MDYyZlx1MDY0OFx1MDYzOVx1MDYzM1x1MDY0NFx1MDYyNz8/XHUwNjQ4XHUwNjQzXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjI3P1x1MDY0YVx1MDYyOFx1MDYzOFx1MDY0OFx1MDYyOFx1MDYyNz9cdTA2YzNcdTA2Y2NcdTA2MmZcdTA2NDhcdTA2MzlcdTA2MzNcdTA2NDRcdTA2Mjc/XHUwOTFmXHUwOTQ3XHUwOTI4P1x1MDkyNCZcdTA5MzBcdTA5M2VcdTA5MmQ/XHUwOTRiXHUwOTMwXHUwOTNlXHUwOTJkPz9cdTA5MjhcdTA5MjBcdTA5MTdcdTA5MDJcdTA5Mzg/XHUwOTJlXHUwOTQ5XHUwOTE1P1x1MDk0ZFx1MDkyZVx1MDkyNFx1MDkzMFx1MDkzZVx1MDkyZD9cdTA5YTQmXHUwOWIwXHUwOWJlXHUwOWFkP1x1MDlmMFx1MDliZVx1MDlhZD8/XHUwOWJlXHUwOWIyXHUwOTgyXHUwOWJlXHUwOWFjP1x1MGEyNFx1MGEzMFx1MGEzZVx1MGEyZD9cdTBhYTRcdTBhYjBcdTBhYmVcdTBhYWQ/XHUwYjI0XHUwYjMwXHUwYjNlXHUwYjJkP1x1MGJiZVx1MGJhZlx1MGJiZlx1MGJhNFx1MGJjZFx1MGJhOFx1MGI4Nz9cdTBiYzhcdTBiOTVcdTBiY2RcdTBiOTlcdTBiYjJcdTBiODc/XHUwYmNkXHUwYmIwXHUwYmMyXHUwYmFhXHUwYmNkXHUwYmFhXHUwYjk1XHUwYmNkXHUwYjk5XHUwYmJmXHUwYjlhP1x1MGM0ZFx1MGMyNFx1MGMzMFx1MGMzZVx1MGMyZD9cdTBjYTRcdTBjYjBcdTBjYmVcdTBjYWQ/XHUwZDAyXHUwZDI0XHUwZDMwXHUwZDNlXHUwZDJkP1x1MGRjZlx1MGQ5YVx1MGQ4Mlx1MGRiZD9cdTBlMjFcdTBlMmRcdTBlMDQ/XHUwZTIyXHUwZTE3XHUwZTQ0IS4mXHUwZTA4XHUwZTM0XHUwZTAxXHUwZTIzXHUwZTM4XHUwZTE4P1x1MGUxNVx1MGU0N1x1MGUxOVx1MGU0MD9cdTBlMjMmXHUwZTAxXHUwZTRjXHUwZTA0XHUwZTA3XHUwZTJkP1x1MGUzMlx1MGUyYlx1MGUxNz8/XHUwZTI1XHUwZTMyXHUwZTFhXHUwZTEwXHUwZTMxXHUwZTIzP1x1MGUzMlx1MGUyOVx1MGUwMVx1MGUzNlx1MGUyOD8/P1x1MGVhN1x1MGViMlx1MGVhNT9cdTEwZDRcdTEwZDI/XHUzMDZhXHUzMDkzXHUzMDdmP1x1MzBhMlx1MzBjOFx1MzBiOT9cdTMwYzhcdTMwZjNcdTMwYTRcdTMwZGQ/XHUzMGM5XHUzMGE2XHUzMGU5XHUzMGFmP1x1MzBlMFx1MzBiMz9cdTMwZWImXHUzMGIwXHUzMGZjXHUzMGIwP1x1MzBmY1x1MzBiYj8/XHUzMGYzJlx1MzBiZVx1MzBkZVx1MzBhMj9cdTMwZTdcdTMwYjdcdTMwYzNcdTMwYTFcdTMwZDU/P1x1NGUxYVx1NGYwMT9cdTRlMWNcdTVlN2Y/XHU0ZTUwXHU1YTMxP1x1NGY2MFx1NzIzMVx1NjIxMT9cdTRmZTFcdTRlMmQ/XHU1MmExXHU2NTNmP1x1NTJhOFx1NzlmYj9cdTUzNWFcdTVmYWU/XHU1MzY2XHU1MTZiP1x1NTM4NVx1OTkxMD9cdTUzZjhcdTUxNmM/XHU1NGMxXHU5OGRmP1x1NTU4NFx1NjE0OD9cdTU2ZTJcdTk2YzY/XHU1NmZkXHU0ZTJkP1x1NTcwYlx1NGUyZD9cdTU3NDBcdTdmNTE/XHU1NzYxXHU1MmEwXHU2NWIwP1x1NTdjZVx1NTU0Nj9cdTVjMWFcdTY1ZjY/XHU1YzcxXHU0ZjViP1x1NWU5NyZcdTU1NDY/XHU3ZjUxP1x1OTE1Mlx1NTkyN1x1OTFjY1x1NTYwOT8/XHU1ZTljXHU2NTNmP1x1NWViN1x1NTA2NT9cdTYwNmZcdTRmZTE/XHU2MjBmXHU2ZTM4P1x1NjJjOVx1OTFjY1x1NjgzY1x1OTk5OT9cdTYyZmZcdTU5Mjc/XHU2NTU5XHU0ZTNiXHU1OTI5P1x1NjczYVx1NjI0Yj9cdTY3ODRcdTY3M2EhXHU3ZWM3XHU3ZWM0Pz9cdTY4MDdcdTU1NDY/XHU2YjRjXHU4YzM3P1x1NmQ2Nlx1NTIyOVx1OThkZT9cdTZlMmZcdTk5OTkhLiZcdTRlYmFcdTUwMGI/XHU1M2Y4XHU1MTZjP1x1NWU5Y1x1NjUzZj9cdTdkNjFcdTdkYjI/XHU3ZTU0XHU3ZDQ0P1x1ODBiMlx1NjU1OT8/P1x1NmU3ZVx1NTNmMD9cdTcwNjMmXHU1M2YwP1x1ODFmYT8/XHU3MjY5XHU4ZDJkP1x1NzU0Y1x1NGUxNj9cdTc2Y2FcdTUxNmM/XHU3NzBiXHU3MGI5P1x1NzlkMVx1NzZjOFx1OGEwYVx1OTZmYj9cdTdhZDlcdTdmNTE/XHU3YzRkXHU2NmY4P1x1N2ViZlx1NTcyOD9cdTdlZGNcdTdmNTE/XHU3ZjUxXHU2NTg3XHU0ZTJkP1x1ODA1OFx1NjJkYj9cdThjYTlcdTkwMWE/XHU5MDBhXHU5YTZjXHU0ZTlhP1x1OTAxYVx1ODA1ND9cdTkxY2NcdTU2MDk/XHU5NTIxXHU5YTZjXHU2ZGUxP1x1OTU4MFx1NmZiMz9cdTk1ZThcdTZmYjM/XHU5NWZiXHU2NWIwP1x1OTZmYlx1NWJiNj9cdWFkNmRcdWQ1NWM/XHViMTM3XHViMmY3P1x1YzEzMVx1YzBiYz9cdWNlZjRcdWIyZjc/PyIpOwp0aGlzLmg9Q3IoIiZrYy53d3c/cGouJmEmbWFob2tveS55dGljP3lvZ2FuLnl0aWM/P2Vib2sueXRpYz9pJmFkbmVzLnl0aWM/a2FzYXdhay55dGljPz9vcm9wcGFzLnl0aWM/dWhzdXlrYXRpay55dGljPz8/Iik7dGhpcy5pPUNyKCImYWMudmVkd2EsYnVwLiZkaSxuaWssP2N2LmUwLGR1b2xjLiZldGlzb3RuZWdhbSxuZGN0ZWdlYixyZWhjbmFyLW5vLHNjaXRhdHMsP2UmYi5scnVzbmFydCxkLiZlY25hdHNuaS1zby1kdW9sY3diLHRjZW5ub2Nub25leCx5a3N1cmYsP2xwcGEudG5pLmR1b2xjOi5yOi4mMS0maHQmcm9uLSZwYSx1ZSw/dW9zLXBhLD9sYXJ0bmVjLSZzdSx1ZSw/dHMmYWUtc3UsZXctc3UsPz8yLSZodHVvcy1wYSxsYXJ0bmVjLXN1LHRzJmFlLXN1LGV3LXN1LD8/My10c2V3LXN1LD8sLG5vJi5uaWssei4mbm90aXJ0LHNwb3Jleiw/P3QmYXRzZS5ldHVwbW9jLGlzLiZhcmVkdW9sYyxoc21yb2Z0YWxwLHRzdCw/P3ZpbC5wd2UsP2cmZy55bHAudGEsb29nLnRuZXRub2NyZXN1LHA/P2hjLnRlbmVyaWY6LmN2cywsayZjP2Y/bmlsLiZiZXdkLHJlc3dvcmJuaSw/cm93dGVuLnNlY2xhLHUuJmhjcz9zcHBhZHVvbGN2b2dlbGNhcm8sPz9sbi5scnVzbmFydCxtJmYucmVzdSxqP20/b2MuJmQmb20tdm9nLXN1LXAzLW5haXNzYWx0YSx1b2xjJi1yZXZlbGMuc2VjaXZyZXMsbWVhZWJvZGEudmVkLD8/ZSZjcm9mc2VsYXMubXJvZnRhbHAuZ3RzLXJlZGxpdWItZWRvYy50c2V0LjEwMCxkbyZjLnJlZGxpdWI6LSZndHMsdmVkLD8sbmlsLnJlY25hbGFiZWRvbiw/P2ljby1yZW1vdHN1YzouJmljbyxwY28sc2NvLD8sbCZhdHJvcHFoeWxhdXEscmlod3lhcCw/bW1lMCxwMy0mZGV0YWxvc2ktbmFpc3NhbHRhLG5haXNzYWx0YSw/cmVuJm51cnBwYXN3YSx0cmFwcWh5bGF1cSw/cyZlY2Fwc25hZWNvbGF0aWdpZCxwcGEmZHVvbGMmZWxjYXJvLHZvZ2VsY2Fybyw/bml2ZWQsP3QmY2VqYm8mZWRvbmlsLHJ0bHV2LD9uZW1lbGVwaXVxLD93YW5vemFtYS4mMS1ldHVwbW9jLGJsZSxldHVwbW9jLHNkci4mMS0maHR1b3MtJmVtLGZhLHBhLD9sYXJ0bmVjLSZhYyxlbSxsaSx1ZSx4bSw/dHMmYWUmLSZhcyxwYSxzdSx2b2ctc3UsP2h0JnJvbi0mcGEsc3UsP3Vvcy1wYSw/P2V3LSZhYyxzdSx1ZSx2b2ctc3UsPz8/Mi0maHR1b3MtcGEsbGFydG5lYy11ZSx0cyZhZSYtJnBhLHN1LD9odCZyb24tcGEsdW9zLXBhLD8/ZXctJnN1LHVlLD8/PzMtdHMmYWVodCZyb24tcGEsdW9zLXBhLD9ldy11ZSw/NC10c2FlaHR1b3MtcGEsNS10c2FlaHR1b3MtcGEsNi10c2FlaHR1b3MtcGEsNy10c2FlaHR1b3MtcGEsP3dvbGZyaWEuJjEtJmh0JnJvbi11ZSx1b3MtJmVtLGZhLHBhLHVlLD8/bGFydG5lYy0mYWMsZW0sbGksdWUsP3RzJmFlJi0mYXMscGEsc3UsP2h0JnJvbi1wYSx1b3MtcGEsPz9ldy0mYWMsc3UsdWUsPz8/Mi0maHR1b3MtJnBhLHVlLD9sYXJ0bmVjLXVlLHRzJmFlJi1zdSxodCZyb24tcGEsdW9zLXBhLD8/ZXctJnN1LHVlLD8/PzMtdHMmYWVodCZyb24tcGEsdW9zLXBhLD9ldy11ZSw/NC10c2FlaHR1b3MtcGEsNS10c2FlaHR1b3MtcGEsNy10c2FlaHR1b3MtcGEsPz8/dCZuZXRub2NyZXN1JmFydHVsLGkmYSZhdGVtLG8sP3VhLD8/b3BzcHBhLnIsPz8/biZjLm1vYy5zJmVjaXZyZXNiZXdub3phbWEubm8uMS0maHRyb24tbmMud29sZnJpYSx0c2V3aHRyb24tbmMud29sZnJpYSw/d2Fub3phbWEuJjEtJmh0cm9uLW5jLnNkcix0c2V3aHRyb24tbmMuc2RyLD9ibGUsZXR1cG1vYyx3b2xmcmlhLjEtJmh0cm9uLW5jLHRzZXdodHJvbi1uYyw/Pz91ci4mZGxpdWIsZSZkb2Msc2FiYXRhZCx0aXJ3cHBhLD9ub2l0YXJnaW0sPz9vJmMuJmFwZHIucyZyZXRzdWxjLHNlbHJ2cnMsP3BhdG8sdGlteCw/aS4mMHBjaS53YXIsMXBjaS53YXIsZSZsYWNzbm9vbSx2YXJiLnMsP25yb2NhLW5vLG9pci1ubyxyZW5pYXRub2NlcnV6YSxzJjNrLW5vLG9sb3RzLD94Y3Euc3lzLD8/cCZqLiZhJm1haG9rb3k/eW9nYW4/P2Vib2s/aSZhZG5lcz9rYXNhd2FrPz9vcm9wcGFzP3Voc3V5a2F0aWs/P24/b3QubGRhdyxwYS4mZGV0c29oLGUma2FsZndvbnM6LmtuaWxldGF2aXJwLCx2YXJiLnMsP2tuYWxmaHRyb24sbnUmcjouc2x0bSwsc3B1LD9yZXBvbGV2ZWQsc3BvcmV6LHRlZ2ViLD8/ciZiLm1vbj9lPz9zJmVkb2Mub3dvLHVscC50aXlhbHAudGEsdyYucm9zaXZkYSxhLiZuby4mMS0maHQmcm9uLXVlLndvbGZyaWEsdW9zLSZlbS53b2xmcmlhLGZhLndvbGZyaWEscGEud29sZnJpYSx1ZS53b2xmcmlhLD8/bGFydG5lYy0mYWMud29sZnJpYSxlbS53b2xmcmlhLGxpLndvbGZyaWEsdWUud29sZnJpYSw/dHMmYWUmLSZhcy53b2xmcmlhLHBhLndvbGZyaWEsc3Uud29sZnJpYSw/aHQmcm9uLXBhLndvbGZyaWEsdW9zLXBhLndvbGZyaWEsPz9ldy0mYWMud29sZnJpYSxzdS53b2xmcmlhLHVlLndvbGZyaWEsPz8/Mi0maHR1b3MtJnBhLndvbGZyaWEsdWUud29sZnJpYSw/bGFydG5lYy11ZS53b2xmcmlhLHRzJmFlJi1zdS53b2xmcmlhLGh0JnJvbi1wYS53b2xmcmlhLHVvcy1wYS53b2xmcmlhLD8/ZXctJnN1LndvbGZyaWEsdWUud29sZnJpYSw/Pz8zLXRzJmFlaHQmcm9uLXBhLndvbGZyaWEsdW9zLXBhLndvbGZyaWEsP2V3LXVlLndvbGZyaWEsPzQtdHNhZWh0dW9zLXBhLndvbGZyaWEsNS10c2FlaHR1b3MtcGEud29sZnJpYSw/cmVrYW1lZ2FzLnN0bmVtaXJlcHhlLHRzb3Blci5ldGF2aXJwLD8/P3QmYS4mb2ZuaXN0cm8uJm5lZG51ayx4ZSw/c21jZXJ1dHVmOi4mbmkseGUsPyw/ZW4uJmNpbW9ub3RweXJjLGh2by4mZ25pdHNvaCxzYWFwYmV3LD9vdGxhY29sLHBjaSxzdC5jLD9zLm5jLD91JmUuJmF4bixscnVzbmFydCw/ci5vbmlqeW0uJmduaSZkbmFsLHRzb2gsP211cnRjZXBzLHNwdiw/P3ZlZC4mZSZnYXRzJmd0cyxsY2wsP3JhaGJldyx2YXJiLnMsP2d0cyxsY2wsbXJjLiZhJmEscCx3LD9iJmEscCx3LD9jJmEscCx3LD9kOmEscCx3LCxlJmEscCx3LD9mJmEscCx3LD9pYyx3LD9yZXN3b3JibmksdHJlY2xhY29sLnJlc3UseWF3ZXRhZyw/eiZjLm11cnRuZWNhdGVtLmR1b2xjLHl4LnRpYmVsZXQsPz8iKX0sCnJyPWZ1bmN0aW9uKGEsYil7dmFyIGM9LTEsZD1hO2E9e307dmFyIGU9MDtkLmghPT12b2lkIDAmJihhW2VdPWQuaCk7Zm9yKDtlPGIubGVuZ3RoO2UrKyl7dmFyIGY9Yi5jaGFyQXQoZSk7aWYoIShmIGluIGQuZykpYnJlYWs7ZD1kLmdbZl07ZC5oIT09dm9pZCAwJiYoYVtlXT1kLmgpfWZvcih2YXIgZyBpbiBhKWQ9cGFyc2VJbnQoZywxMCksKGQrMT09Yi5sZW5ndGh8fGIuY2hhckF0KGQrMSk9PSIuIikmJmFbZ109PTEmJmQ+YyYmKGM9ZCk7cmV0dXJuIGIuc3Vic3RyKDAsYysxKX0sQ3I9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGhyO0RyKDAsYSxiKTtyZXR1cm4gYn0sRHI9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZDthPGIubGVuZ3RoO2ErKyl7ZD1iLmNoYXJBdChhKTtpZihkPT0iISJ8fGQ9PSI/Iil7Yy5oPSEwO2JyZWFrfWVsc2UgaWYoZD09IjoifHxkPT0iLCIpe2MuaD0hMTticmVha31lbHNlIGlmKGQ9PSImIilicmVhazt2YXIgZT1kO2MuZ1tlXXx8KGMuZ1tlXT1uZXcgaHIpOwpjPWMuZ1tlXX1hKys7aWYoZD09Ij8ifHxkPT0iLCIpcmV0dXJuIGE7ZG8gYT1EcihhLGIsYyksZD1iLmNoYXJBdChhKTt3aGlsZShkIT0iPyImJmQhPSIsIik7cmV0dXJuIGErMX07dmFyIGtyLHNyLGlyLG1yLG5yO18uSygiZ29vZ2xlLmFjY291bnRzLmlkLmludGVybWVkaWF0ZS52ZXJpZnlQYXJlbnRPcmlnaW4iLF8ub3IpO18uSygiZ29vZ2xlLmFjY291bnRzLmlkLmludGVybWVkaWF0ZS5ub3RpZnlQYXJlbnRSZXNpemUiLF8ud3IpO18uSygiZ29vZ2xlLmFjY291bnRzLmlkLmludGVybWVkaWF0ZS5ub3RpZnlQYXJlbnRDbG9zZSIsXy54cik7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQuaW50ZXJtZWRpYXRlLm5vdGlmeVBhcmVudERvbmUiLGZ1bmN0aW9uKCl7Xy5mcj9fLmdyKHtjb21tYW5kOiJpbnRlcm1lZGlhdGVfaWZyYW1lX2RvbmUifSk6Xy5HKCJEb25lIGNvbW1hbmQgd2FzIG5vdCBzZW50IGR1ZSB0byBtaXNzaW5nIHZlcmlmaWVkIHBhcmVudCBvcmlnaW4uIil9KTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5pbnRlcm1lZGlhdGUubm90aWZ5UGFyZW50VGFwT3V0c2lkZU1vZGUiLF8ueXIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgRXI9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgVWludDhBcnJheSgzMik7KHdpbmRvdy5jcnlwdG98fF8udmQubXNDcnlwdG8pLmdldFJhbmRvbVZhbHVlcyhhKTtyZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxfLk1kKGEpKSkucmVwbGFjZSgvPSskLywiIil9LEZyPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO18uZ2IoYSxmdW5jdGlvbihjKXtiLnB1c2goYyl9KTtyZXR1cm4gYn0sR3I9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4gYTtpZihhPT09Ik5hTiJ8fGE9PT0iSW5maW5pdHkifHxhPT09Ii1JbmZpbml0eSIpcmV0dXJuIE51bWJlcihhKX0sSHI9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbClpZih0eXBlb2YgYT09PSJzdHJpbmciKWE9YT9uZXcgXy5jYyhhLF8uQmUpOl8uamgoKTtlbHNlIGlmKGEuY29uc3RydWN0b3IhPT1fLmNjKXt2YXIgYjtfLkFlJiZhIT1udWxsJiZhIGluc3RhbmNlb2YgVWludDhBcnJheT8KYj1hLmxlbmd0aD9uZXcgXy5jYyhuZXcgVWludDhBcnJheShhKSxfLkJlKTpfLmpoKCk6Yj12b2lkIDA7YT1ifXJldHVybiBhfSxJcj1mdW5jdGlvbihhKXt2YXIgYj1iPT09dm9pZCAwP18ubWY6YjthOmlmKGI9Yj09PXZvaWQgMD9fLm1mOmIsIShhIGluc3RhbmNlb2YgXy5SYykpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQgaW5zdGFuY2VvZiBfLlRjJiZkLmFlKGEpKXthPW5ldyBfLlJjKGEpO2JyZWFrIGF9fWE9dm9pZCAwfXJldHVybiBhfHxfLmxmfSxLcj1mdW5jdGlvbihhLGIpe2lmKF8uZGwoYikpYS5ocmVmPV8uZWwoYikudG9TdHJpbmcoKSxhLnJlbD0ic3R5bGVzaGVldCI7ZWxzZXtpZihKci5pbmRleE9mKCJzdHlsZXNoZWV0Iik9PT0tMSl0aHJvdyBFcnJvcigiSWBzdHlsZXNoZWV0Iik7Yj1fLldjKGIpO2IhPT12b2lkIDAmJihhLmhyZWY9YixhLnJlbD0ic3R5bGVzaGVldCIpfX0sTHI9ZnVuY3Rpb24oYSl7aWYoXy4kYy5pbmNsdWRlcyhhKSl7dmFyIGI9CnBhcnNlSW50KF8uYWQuZ2V0KCJnZV8iK2EpLDEwKTtpZihiKXJldHVybiBifWI9Xy5aYztiLmdbYV0/KGE9Yi5nW2FdLGE9dHlwZW9mIGE9PT0ibnVtYmVyIj9hOjEpOmE9MDtyZXR1cm4gYX0sTXI9ZnVuY3Rpb24oKXt2YXIgYT1McigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iKTtzd2l0Y2goYT09PXZvaWQgMD8wOmEpe2Nhc2UgMTk6Y2FzZSAyMTpjYXNlIDIzOnJldHVybiA2fX0sUnI9ZnVuY3Rpb24oYSxiLGMsZCl7TnI9YT9hKyIvZ3NpL2xvZyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvbG9nIjtPcj1iO1ByPWM7UXI9ZHx8W119LFRyPWZ1bmN0aW9uKGEsYil7aWYoIShfLmhnPj0oYj09PXZvaWQgMD8xMDA6YikpKXtiPW5ldyBfLmhkKE5yKTthPV8ud2soe2NsaWVudF9pZDpPcixhczpQcixiczpTcixldmVudDphLnRvU3RyaW5nKCl9KTtmb3IodmFyIGM9Xy51KFFyKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlkPWQudmFsdWUsYS5hZGQoZC5PZCwKZC5QZC50b1N0cmluZygpKTtfLmtkKGIsYSk7Xy5RayhiLnRvU3RyaW5nKCksdm9pZCAwLCJQT1NUIix2b2lkIDAsdm9pZCAwLE5yIT09Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvbG9nIil9fSxXcj1mdW5jdGlvbihhKXt2YXIgYj1uZXcgKEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmFwcGx5KFVyLFtudWxsLCJvbmV0YXAiLGEsInByb21wdCJdLmNvbmNhdChfLk1kKFZyLmFwcGx5KDEsYXJndW1lbnRzKSkpKSk7VHIoYil9LFhyPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IChGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShVcixbbnVsbCwib25ldGFwIix2b2lkIDAsImNsb3NlZCJdLmNvbmNhdChfLk1kKFZyLmFwcGx5KDAsYXJndW1lbnRzKSkpKSk7VHIoYSl9LFlyPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IChGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShVcixbbnVsbCwiaWQiLHZvaWQgMCwiaW5pdCJdLmNvbmNhdChfLk1kKFZyLmFwcGx5KDAsYXJndW1lbnRzKSkpKSk7ClRyKGEpfSxacj1mdW5jdGlvbigpe3ZhciBhPW5ldyAoRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuYXBwbHkoVXIsW251bGwsIm9uZXRhcCIsdm9pZCAwLCJwb2xpY3kiXS5jb25jYXQoXy5NZChWci5hcHBseSgwLGFyZ3VtZW50cykpKSkpO1RyKGEpfSwkcj1mdW5jdGlvbigpe3ZhciBhPV8ud2QoKS50b1N0cmluZygpLGI9e1diOjMwMCxwYXRoOiIvIixzZWN1cmU6ITB9LGM7aWYoYz1fLk9hKCkpYz1fLnFrKF8ubWcsODApPj0wO2MmJihiLnNhbWVTaXRlPSJub25lIik7Yz1fLkFmKGxvY2F0aW9uLm9yaWdpbik7Yy5oPT09Imh0dHAiJiZjLmc9PT0ibG9jYWxob3N0IiYmKGIuc2VjdXJlPXZvaWQgMCxiLnNhbWVTaXRlPXZvaWQgMCk7Xy5hZC5zZXQoImdfY3NyZl90b2tlbiIsYSxiKTtyZXR1cm4gYX0sYXM9ZnVuY3Rpb24oYSxiKXtfLlFrKGEsZnVuY3Rpb24oYyl7YihfLk1rKGMudGFyZ2V0KSl9LCJHRVQiLHZvaWQgMCx2b2lkIDAsITApfSxicz1mdW5jdGlvbihhLGIsYyxkKXtfLlFrKGEsCmZ1bmN0aW9uKGUpe2QoXy5NayhlLnRhcmdldCkpfSwiUE9TVCIsYj9fLndrKF8udmsoYikpLnRvU3RyaW5nKCk6bnVsbCx2b2lkIDAsYyl9LGNzPWZ1bmN0aW9uKGEsYixjKXticyhhLGIsITAsYyl9LGRzPWZ1bmN0aW9uKGEsYixjKXtiLmNyZWRlbnRpYWw9Y3x8IiI7Yi5nX2NzcmZfdG9rZW49JHIoKTtfLnJpKGEsYil9LGVzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMpe2MmJmMuY3JlZGVudGlhbD9kcyhhLGJ8fHt9LGMuY3JlZGVudGlhbCk6Xy5GKCJObyBjcmVkZW50aWFsIGZvdW5kIGluIHRoZSByZXNwb25zZS4iKX19LGdzPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQWYoYSk7Yi5nfHwoXy5pZChiLGxvY2F0aW9uLnByb3RvY29sKSxiLmc9bG9jYXRpb24uaG9zdG5hbWUsXy5qZChiLGxvY2F0aW9uLnBvcnQpLFlyKCJyZWxhdGl2ZUxvZ2luVXJpIixhKSxfLkcoIlJlbGF0aXZlIGxvZ2luX3VyaSB3YXMgcHJvdmlkZWQuIFVzZSBhYnNvbHV0ZSB1cmwgaW5zdGVhZC4gUmVsYXRpdmUgbG9naW5fdXJpIG1heSBiZSBjb25zaWRlcmVkIGludmFsaWQgaW4gdGhlIGZ1dHVyZS4iKSk7CmlmKGIuaCE9PSJodHRwcyImJmIuZyE9PSJsb2NhbGhvc3QiKXRocm93IFlyKCJ1bnNlY3VyZWRMb2dpblVyaSIsYSksbmV3IGZzKCJVbnNlY3VyZWQgbG9naW5fdXJpIHByb3ZpZGVkLiIpO3JldHVybiBiLnRvU3RyaW5nKCl9LGhzPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1fLkFmKGEpLGM9Yi5oO3JldHVybiEhYi5nJiYoYz09PSJodHRwcyJ8fGM9PT0iaHR0cCImJmIuZz09PSJsb2NhbGhvc3QiKX1jYXRjaChkKXt9cmV0dXJuITF9LGlzPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPV8udShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTUVUQSIpKSxiPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSlpZihiPWIudmFsdWUsYi5nZXRBdHRyaWJ1dGUoIm5hbWUiKT09PSJnb29nbGUtc2lnbmluLWNsaWVudF9pZCIpcmV0dXJuIGIuZ2V0QXR0cmlidXRlKCJjb250ZW50Iik7YT1fLnUoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklGUkFNRSIpKTtmb3IoYj1hLm5leHQoKTshYi5kb25lO2I9CmEubmV4dCgpKWlmKChiPWIudmFsdWUuZ2V0QXR0cmlidXRlKCJzcmMiKSkmJmIuc3RhcnRzV2l0aCgiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2lmcmFtZSIpKXJldHVybiBfLkFmKGIpLmouZ2V0KCJjbGllbnRfaWQiKXx8bnVsbDtyZXR1cm4gbnVsbH0sanM9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIG51bGw7dmFyIGI9YS5pbmRleE9mKCItIik7aWYoYj49MClyZXR1cm4gYS5zdWJzdHJpbmcoMCxiKTtiPWEuaW5kZXhPZigiLiIpO3JldHVybiBiPj0wP2Euc3Vic3RyaW5nKDAsYik6bnVsbH0sa3M9ZnVuY3Rpb24oYSl7dmFyIGI9aXMoKTtpZihhJiZiKXt2YXIgYz1qcyhhKSxkPWpzKGIpOyEoYyYmZHx8YSE9PWIpfHxjJiZkJiZjPT09ZHx8Xy5HKCJUaGUgY2xpZW50IGlkcyB1c2VkIGJ5IEdvb2dsZSBTaWduIEluIGFuZCBPbmUgVGFwIHNob3VsZCBiZSBzYW1lIG9yIGZyb20gdGhlIHNhbWUgcHJvamVjdC5cbk9uZSBUYXAgbWF5IGJlIGJsb2NrZWQgaW4gdGhlIG5lYXIgZnV0dXJlIGlmIG1pc21hdGNoZWQuIil9fSwKbHM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtjLnB1c2goXy5YZihhLCJjbGljayIsYikpO2MucHVzaChfLlhmKGEsImtleWRvd24iLGZ1bmN0aW9uKGQpe3ZhciBlPWQua2V5O2UhPT0iRW50ZXIiJiZlIT09IiAifHxiKGQpfSkpfSxtcz1mdW5jdGlvbigpe3JldHVybiFfLiRhKCl8fF8ucWsoXy5yaygpLCIxMTgiKT49MD9fLkkoImVuYWJsZV9mZWRjbV9vbl9lZGdlIikmJiFfLnlkKCkmJiFfLnhkKCkmJl8uVWEoIk1pY3Jvc29mdCBFZGdlIik+PTEzMj8hMDpfLnpkKCkmJihfLldhKCl8fCFfLnlkKCkmJiFfLnhkKCkpJiZfLnFrKF8ucmsoKSwiMTA4Iik+PTA6ITF9LG5zPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiB3aW5kb3cuc2VsZiE9PXdpbmRvdy50b3B9Y2F0Y2goYSl7cmV0dXJuITB9fSxvcz1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50O3JldHVybiBhLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucyYmYS5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMubGVuZ3RoIT09MD9hLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2luc1thLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucy5sZW5ndGgtCjFdOmEubG9jYXRpb24ub3JpZ2lufSxwcz1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50O3JldHVybiBhLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucz9hLmxvY2F0aW9uLnByb3RvY29sKyIvLyIrYS5sb2NhdGlvbi5ob3N0IT09b3MoKTohMX0scXM9ZnVuY3Rpb24oYSxiLGMpe2MmJmEucHVzaChiKyI9IitlbmNvZGVVUklDb21wb25lbnQoYy50cmltKCkpKX0scnM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWMuY2xpZW50X2lkLGU9Yy5zY29wZSxmPWE9PT0iY29kZSI/ImNvZGUiOiJ0b2tlbiI7YT09PSJ0b2tlbiImJmMuaW5jbHVkZV9pZF90b2tlbiYmXy5JKCJlbmFibGVfb2F1dGgyX2lkX3Rva2VuIikmJihmPSJ0b2tlbiBpZF90b2tlbiIpO2lmKGMubm9uY2UpdmFyIGc9Yy5ub25jZTtpZihhPT09ImNvZGUiKXt2YXIgaD0ib2ZmbGluZSI7dmFyIGs9Yy5zZWxlY3RfYWNjb3VudD8ic2VsZWN0X2FjY291bnQgY29uc2VudCI6ImNvbnNlbnQiO2lmKGMuY2xhaW1zIT09dm9pZCAwKXZhciBtPQpjLmNsYWltc31lbHNlIGMucHJvbXB0PT09dm9pZCAwP2s9InNlbGVjdF9hY2NvdW50IjpjLnByb21wdCYmKGs9Yy5wcm9tcHQpO2E9Yy5yZWRpcmVjdF91cmk7aWYoYy5sb2dpbl9oaW50KXZhciBuPWMubG9naW5faGludDtpZihjLnN0YXRlKXZhciBxPWMuc3RhdGU7aWYoYy5oZCl2YXIgcD1jLmhkO2lmKGMuaW5jbHVkZV9ncmFudGVkX3Njb3BlcyE9PXZvaWQgMCl2YXIgcj1jLmluY2x1ZGVfZ3JhbnRlZF9zY29wZXM7aWYoYy5lbmFibGVfZ3JhbnVsYXJfY29uc2VudCE9PXZvaWQgMCl2YXIgeD1jLmVuYWJsZV9ncmFudWxhcl9jb25zZW50O2lmKGMudHJpZ2dlcl9vbmVwaWNrIT09dm9pZCAwKXZhciB5PWMudHJpZ2dlcl9vbmVwaWNrO2lmKGMuYWxsb3dfbXVsdGlwbGUhPT12b2lkIDApdmFyIEM9Yy5hbGxvd19tdWx0aXBsZTtpZihjLmFsbG93X2ZvbGRlcl9zZWxlY3Rpb24hPT12b2lkIDApdmFyIGthPWMuYWxsb3dfZm9sZGVyX3NlbGVjdGlvbjtpZihjLmZpbGVfaWRzIT09dm9pZCAwKXZhciBuYT0KYy5maWxlX2lkcztpZihjLm1pbWV0eXBlcyE9PXZvaWQgMCl2YXIgQWE9Yy5taW1ldHlwZXM7dmFyIGtiPSIzIjtjLmdzaXdlYnNkayE9PXZvaWQgMCYmKGtiPWMuZ3Npd2Vic2RrKTtpZihjLmdpc19wYXJhbXMhPT12b2lkIDApdmFyIFJmPWMuZ2lzX3BhcmFtcztpZihjLm9yaWdpbiE9PXZvaWQgMCl2YXIgU2Y9Yy5vcmlnaW47aWYoYy5kaXNwbGF5IT09dm9pZCAwKXZhciBUZj1jLmRpc3BsYXk7aWYoYy5yZXNwb25zZV9tb2RlIT09dm9pZCAwKXZhciBVZj1jLnJlc3BvbnNlX21vZGU7aWYoYy5naXNscCE9PXZvaWQgMCl2YXIgbnU9Yy5naXNscDtpZihjLnVwc3RyZWFtX2V4cGVyaW1lbnRfaWQhPT12b2lkIDApdmFyIG91PWMudXBzdHJlYW1fZXhwZXJpbWVudF9pZDtjPVtdO3FzKGMsImdzaXdlYnNkayIsa2IpO3FzKGMsImNsaWVudF9pZCIsZCk7cXMoYywic2NvcGUiLGUpO3FzKGMsInJlZGlyZWN0X3VyaSIsYSk7cXMoYywicHJvbXB0IixrKTtxcyhjLCJsb2dpbl9oaW50IixuKTsKcXMoYywic3RhdGUiLHEpO3FzKGMsImFjY2Vzc190eXBlIixoKTtxcyhjLCJoZCIscCk7cXMoYywicmVzcG9uc2VfdHlwZSIsZik7cXMoYywibm9uY2UiLGcpO3FzKGMsImluY2x1ZGVfZ3JhbnRlZF9zY29wZXMiLHI9PT0hMT8iZmFsc2UiOiJ0cnVlIik7cXMoYywiZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQiLHg9PT0hMT8iZmFsc2UiOiJ0cnVlIik7eSE9PXZvaWQgMCYmcXMoYywidHJpZ2dlcl9vbmVwaWNrIix5PT09ITE/ImZhbHNlIjoidHJ1ZSIpO0MhPT12b2lkIDAmJnFzKGMsImFsbG93X211bHRpcGxlIixDPT09ITE/ImZhbHNlIjoidHJ1ZSIpO2thIT09dm9pZCAwJiZxcyhjLCJhbGxvd19mb2xkZXJfc2VsZWN0aW9uIixrYT09PSExPyJmYWxzZSI6InRydWUiKTtxcyhjLCJmaWxlX2lkcyIsbmEpO3FzKGMsIm1pbWV0eXBlcyIsQWEpO20hPT12b2lkIDAmJnFzKGMsImNsYWltcyIsbSk7cXMoYywiZ2lzX3BhcmFtcyIsUmYpO3FzKGMsIm9yaWdpbiIsU2YpO3FzKGMsImRpc3BsYXkiLApUZik7cXMoYywicmVzcG9uc2VfbW9kZSIsVWYpO3FzKGMsImdpc2xwIixudSk7cXMoYywidXBzdHJlYW1fZXhwZXJpbWVudF9pZCIsb3UpO3JldHVybiBiKyI/IitjLmpvaW4oIiYiKX0sc3M9ZnVuY3Rpb24oYSl7YT1hPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphO3ZhciBiPV8uYmwoKTthPWI/Yi5jcmVhdGVTY3JpcHRVUkwoYSk6YTtyZXR1cm4gbmV3IF8uY2woYSl9LHVzPWZ1bmN0aW9uKGEpe3ZhciBiPWI9PT12b2lkIDA/Imdvb2dsZWlkZW50aXR5c2VydmljZSI6YjtpZighKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIpJiZ0cy5nZXQoYikmJnRzLmdldChiKSkpe3ZhciBjPW5ldyBfLktpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtlLmlkPWI7ZS50eXBlPSJ0ZXh0L2NzcyI7ZS5tZWRpYT0iYWxsIjtlLm9ubG9hZD1mdW5jdGlvbigpe2MucmVzb2x2ZSgpfTsKS3IoZSxzcyhhKSk7ZC5hcHBlbmRDaGlsZChlKTt0cy5zZXQoYixjKX19LHZzPWZ1bmN0aW9uKGEpe2EmJihhLnN0eWxlLm9wYWNpdHk9IjAiLGEuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsKGE9YS5wYXJlbnRFbGVtZW50KSYmYS5pZD09PSJjcmVkZW50aWFsX3BpY2tlcl9jb250YWluZXIiJiYoYS5zdHlsZS5vcGFjaXR5PSIwIixhLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiKSl9LHdzPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjcmVkZW50aWFsX3BpY2tlcl9pZnJhbWUiKTtyZXR1cm4gYj8oZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChiKSwhMCk6YSYmKGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lciIpKT8oYS5yZW1vdmVDaGlsZChiKSwhMCk6ITF9LHlzPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3dzKGEpO2lmKGMpcmV0dXJuIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksCmEuc3JjPWIsYS5pZD0iY3JlZGVudGlhbF9waWNrZXJfaWZyYW1lIixhLnRpdGxlPXhzKCksYS5zdHlsZS5kaXNwbGF5PSJub25lIixhLnN0eWxlLmhlaWdodD0iMzYwcHgiLGEuc3R5bGUud2lkdGg9IjEwMCUiLGEuc3R5bGUuekluZGV4PSI5OTk5IixhLnN0eWxlLmJvcmRlcj0ibm9uZSIsYS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGEuc3R5bGUubGVmdD0iMCIsYS5zdHlsZS5ib3R0b209IjAiLGEuY2xhc3NMaXN0LmFkZCgiTDVGbzZjLVBRYkxHZSIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYTtjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EhPT1kb2N1bWVudC5ib2R5PyhjLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsYy5zdHlsZS56SW5kZXg9Ijk5OTkiLGMuc3R5bGUudG9wPSIwIixjLnN0eWxlLmxlZnQ9IjAiLGMuc3R5bGUuaGVpZ2h0PSJhdXRvIixjLnN0eWxlLndpZHRoPSJhdXRvIik6KGMuc3R5bGUucG9zaXRpb249ImZpeGVkIixjLnN0eWxlLnpJbmRleD0KIjk5OTkiKTtkJiYoYy5zdHlsZS50b3A9IjAiLGMuc3R5bGUucmlnaHQ9IjAiKTtjLnNldEF0dHJpYnV0ZSgiaWQiLCJjcmVkZW50aWFsX3BpY2tlcl9jb250YWluZXIiKTtkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Quc3JjPWI7ZC5jbGFzc0xpc3QuYWRkKCJMNUZvNmMtUFFiTEdlIik7ZC50aXRsZT14cygpO2Quc3R5bGUuZGlzcGxheT0ibm9uZSI7ZC5zdHlsZS5oZWlnaHQ9IjM2MHB4IjtkLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2MuYXBwZW5kQ2hpbGQoZCk7YS5hcHBlbmRDaGlsZChjKTtyZXR1cm4gZH0senM9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lciIpO2lmKGIpe3ZhciBjPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpO2lmKGMubGVuZ3RoPjAmJihjPWMuaXRlbSgwKSxjIT09bnVsbCkpe3ZhciBkPWMuY2xpZW50SGVpZ2h0O2Iuc3R5bGUuaGVpZ2h0PWErCjgrInB4IjtjLnN0eWxlLmhlaWdodD1hKyJweCI7Yy5zdHlsZS5kaXNwbGF5PSIiO3JldHVybiBkfX1lbHNlIGlmKGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNyZWRlbnRpYWxfcGlja2VyX2lmcmFtZSIpKXJldHVybiBjPWIuY2xpZW50SGVpZ2h0LGIuc3R5bGUuaGVpZ2h0PWErInB4IixiLnN0eWxlLmRpc3BsYXk9IiIsY30sQXM9ZnVuY3Rpb24oYSxiKXtpZihiKXt2YXIgYz1iLmNsaWVudEhlaWdodDtiLnBhcmVudEVsZW1lbnQmJmIucGFyZW50RWxlbWVudCE9PWRvY3VtZW50LmJvZHkmJihiLnBhcmVudEVsZW1lbnQuc3R5bGUuaGVpZ2h0PWErInB4Iik7Yi5zdHlsZS5ib3JkZXI9Im5vbmUiO2Iuc3R5bGUuaGVpZ2h0PWErInB4IjtiLnN0eWxlLmRpc3BsYXk9IiI7cmV0dXJuIGN9fSxCcz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBmPV8uc2YoZG9jdW1lbnQsImlmcmFtZSIpO2Yuc2V0QXR0cmlidXRlKCJzcmMiLGIpO2YuY2xhc3NMaXN0LmFkZCgiTDVGbzZjLVBRYkxHZSIpOwpmLmFsbG93PSJpZGVudGl0eS1jcmVkZW50aWFscy1nZXQiO2YuaWQ9YztfLkkoImVuYWJsZV9hcmlhX2hpZGRlbl9pbl9idXR0b25faWZyYW1lIikmJmQmJmYuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKTtmLnRpdGxlPSJcdTAwYWJMb2dnIHBcdTAwZTUgbWVkIEdvb2dsZVx1MDBiYi1rbmFwcCI7Zi5zdHlsZS5kaXNwbGF5PSJibG9jayI7Zi5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO2Yuc3R5bGUudG9wPSIwIjtmLnN0eWxlLmxlZnQ9IjAiO2Yuc3R5bGUuaGVpZ2h0PSIwIjtmLnN0eWxlLndpZHRoPSIwIjtmLnN0eWxlLmJvcmRlcj0iMCI7aWYoZCl7Yj1fLnNmKGRvY3VtZW50LCJkaXYiKTtiLmlkPWMrIi13cmFwcGVyIjtiLmNsYXNzTGlzdC5hZGQoIkw1Rm82Yy1zTTVNTmIiKTtiLnN0eWxlLndpZHRoPSJmaXQtY29udGVudCI7Yys9Ii1vdmVybGF5IjtjPSc8ZGl2IGNsYXNzPSInK18uVygiTDVGbzZjLWJGMXVVYiIpKyciIGlkPSInK18uVyhjKSsnIiBhcmlhLWxhYmVsPSInOwpkPV8uSWwoIkxvZ2cgcFx1MDBlNSBtZWQgR29vZ2xlLiBcdTAwYzVwbmVzIGkgZW4gbnkgZmFuZSIpO2Q9KDAsXy5VKShjK2QrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PC9kaXY+Jyk7YTppZihjPV8ucWx8fChfLnFsPW5ldyBfLndsKSxkJiZkLmg/Yz1kLmgoKTooYz1fLnNmKGMuZywiRElWIiksZD1fLm5sKGQpLGMuaW5uZXJIVE1MPV8uaGwoZCkpLGMuY2hpbGROb2Rlcy5sZW5ndGg9PTEmJihkPWMuZmlyc3RDaGlsZCxkLm5vZGVUeXBlPT0xKSl7Yz1kO2JyZWFrIGF9Zi50YWJJbmRleD0tMTtiLmFwcGVuZENoaWxkKGYpO2IuYXBwZW5kQ2hpbGQoYyk7YS5hcHBlbmRDaGlsZChiKTtyZXR1cm57WGE6ZixrZDpjfX1lJiZhLmFwcGVuZENoaWxkKGUpO2EuYXBwZW5kQ2hpbGQoZik7cmV0dXJue1hhOmZ9fSxDcz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtiLnNyYz1hO2Iuc3R5bGUuZGlzcGxheT0ibm9uZSI7Yi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwKInRydWUiKTtiLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpO3JldHVybiBifSxEcz1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmIWlzTmFOKGEpJiZhPjB9LEVzPWZ1bmN0aW9uKCl7cmV0dXJuImdzaV8iK0RhdGUubm93KCklMUU2KyJfIitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMUU2KX0sR3M9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5RKCJnX2ExMXlfYW5ub3VuY2VtZW50Iik7Ynx8KGI9Xy5zZihkb2N1bWVudCwiZGl2IiksYi5pZD0iZ19hMTF5X2Fubm91bmNlbWVudCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiKSk7dmFyIGM9Xy5zZihkb2N1bWVudCwic3BhbiIpO0ZzKGMsYSk7Yy5yb2xlPSJhbGVydCI7Xy50bChiKTtiLmFwcGVuZENoaWxkKGMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtfLnRsKGIpfSwzRTMpfSxIcz1mdW5jdGlvbihhKXtmb3IoO2EucGFyZW50Tm9kZTspe2lmKGE9PT1kb2N1bWVudC5ib2R5KXJldHVybiBudWxsO2E9CmEucGFyZW50Tm9kZX1yZXR1cm4gYSYmYS5ob3N0JiZhLm1vZGU/YTpudWxsfSxJcz1mdW5jdGlvbihhKXthPU9iamVjdC5lbnRyaWVzKGEpLmZpbHRlcihmdW5jdGlvbihjKXtjPV8udShjKTtjLm5leHQoKTtjPWMubmV4dCgpLnZhbHVlO3JldHVybiBjIT09dm9pZCAwJiZjIT09bnVsbCYmYyE9PSIifSkubWFwKGZ1bmN0aW9uKGMpe3ZhciBkPV8udShjKTtjPWQubmV4dCgpLnZhbHVlO2Q9ZC5uZXh0KCkudmFsdWU7Yz1TdHJpbmcoYyk7aWYodHlwZW9mIGQ9PT0ic3RyaW5nIilkPSciJytkLnJlcGxhY2UoLyIvZywnXFwiJykrJyInO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShkKSlkPWQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiciJytlKyciJ30pLmpvaW4oIiAiKSxkPSIoIitkKyIpIjtlbHNle2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXJldHVybjtkPVN0cmluZyhkKX1yZXR1cm4gYysiPSIrZH0pO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbaHR0cC1lcXVpdj0iV2ViLUlkZW50aXR5LUF1dGhlbnRpY2F0ZSJdJyk7CmJ8fChiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKSxiLmh0dHBFcXVpdj0iV2ViLUlkZW50aXR5LUF1dGhlbnRpY2F0ZSIsZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChiKSk7Yi5jb250ZW50PWEuam9pbigiLCAiKX0sSnM9ZnVuY3Rpb24oKXtzd2l0Y2goTHIoImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uIikpe2Nhc2UgMTg6Y2FzZSAxOTpyZXR1cm4gMUU0O2Nhc2UgMjA6Y2FzZSAyMTpjYXNlIDI0OnJldHVybiAyRTQ7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiAzRTR9fSxLcz1mdW5jdGlvbigpe3N3aXRjaChMcigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iKSl7Y2FzZSAxOTpjYXNlIDIxOmNhc2UgMjM6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LExzPWZ1bmN0aW9uKCl7dmFyIGE9THIoImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uIik7cmV0dXJuIGEmJmEhPT0yNH0sTXM9ZnVuY3Rpb24oKXt9LE5zPWZ1bmN0aW9uKCl7fSwKT3M9ZnVuY3Rpb24oYSl7dGhpcy5nPWE7dGhpcy5oPW51bGx9LFBzPWZ1bmN0aW9uKCl7dmFyIGE9bnVsbDt0cnl7YT1fLncuc2Vzc2lvblN0b3JhZ2V8fG51bGx9Y2F0Y2goYil7fU9zLmNhbGwodGhpcyxhKX0sUXM9ZnVuY3Rpb24oYSxiKXt0aGlzLmg9YTt0aGlzLmc9YisiOjoifSxTcz1mdW5jdGlvbigpe3ZhciBhPW5ldyBQcztyZXR1cm4gUnMoYSk/bmV3IFFzKGEsImdfc3RhdGVfaWRfIik6bnVsbH0sV3M9ZnVuY3Rpb24oKXt2YXIgYT1fLlEoImdfaWRfb25sb2FkIik7aWYoYSl7dmFyIGI9Xy5jcihhKTthPV8uZHIoYixUcyk7YS5hdXRvX3Byb21wdD09PXZvaWQgMCYmKGEuYXV0b19wcm9tcHQ9ITApO2EuYXV0b19wcm9tcHQmJmEuc2tpcF9wcm9tcHRfY29va2llJiZfLmFkLmdldChhLnNraXBfcHJvbXB0X2Nvb2tpZSkmJihhLmF1dG9fcHJvbXB0PSExKTtkZWxldGUgYS5za2lwX3Byb21wdF9jb29raWU7dmFyIGM9e307Zm9yKGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYKVXMuaW5kZXhPZihkLnRvTG93ZXJDYXNlKCkpPDAmJihjW2RdPWJbZF0pO2Euc3RhdGUmJihjLnN0YXRlPWEuc3RhdGUpO2lmKGEubG9naW5fdXJpKXthLmxvZ2luX3VyaT1ncyhhLmxvZ2luX3VyaSk7dmFyIGQ9ZXMoYS5sb2dpbl91cmksYyk7YS5yZWRpcmVjdF9jYWxsYmFjaz1kO2EuY2FsbGJhY2t8fChhLmNhbGxiYWNrPWQpfWVsc2UgYS51eF9tb2RlPT09InJlZGlyZWN0IiYmXy5IKCJNaXNzaW5nIHJlcXVpcmVkIGxvZ2luX3VyaSBwYXJhbWV0ZXIgZm9yIHRoZSByZWRpcmVjdCBmbG93LiIpO2Q9YS5uYXRpdmVfbG9naW5fdXJpO2RlbGV0ZSBhLm5hdGl2ZV9sb2dpbl91cmk7ZCYmYS5uYXRpdmVfY2FsbGJhY2s/Xy5IKCJDYW5ub3Qgc2V0IGJvdGggZGF0YS1uYXRpdmVfbG9naW5fdXJpIGFuZCBkYXRhLW5hdGl2ZV9jYWxsYmFjay4iKTpkJiYoYS5uYXRpdmVfY2FsbGJhY2s9VnMoZCxjLGEubmF0aXZlX2lkX3BhcmFtfHwiZW1haWwiLGEubmF0aXZlX3Bhc3N3b3JkX3BhcmFtfHwKInBhc3N3b3JkIikpO3JldHVybiBhfX0sVnM9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2UmJmUudHlwZT09PSJwYXNzd29yZCI/KGJbY109ZS5pZCxiW2RdPWUucGFzc3dvcmQsXy5yaShhLGIpKTpfLkYoIk5vIHBhc3N3b3JkIGNyZWRlbnRpYWwgcmV0dXJuZWQuIil9fSxZcz1mdW5jdGlvbihhKXthPV8uY3IoYSk7cmV0dXJuIF8uZHIoYSxYcyl9LGR0PWZ1bmN0aW9uKGEpe1pzLl9fR19JRF9DTElFTlRfXyYmXy5HKCJnb29nbGUuYWNjb3VudHMuaWQuaW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4gVGhpcyBjb3VsZCBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yIGFuZCBvbmx5IHRoZSBsYXN0IGluaXRpYWxpemVkIGluc3RhbmNlIHdpbGwgYmUgdXNlZC4iKTtpZihfLkkoImVuYWJsZV9kZWZhdWx0X2NhbGxiYWNrIikmJmEmJmEubG9naW5fdXJpKXthLmxvZ2luX3VyaT1ncyhhLmxvZ2luX3VyaSk7dmFyIGI9ZXMoYS5sb2dpbl91cmkpOwphLnJlZGlyZWN0X2NhbGxiYWNrPWEucmVkaXJlY3RfY2FsbGJhY2t8fGI7YS5jYWxsYmFjaz1hLmNhbGxiYWNrfHxifWE9bmV3ICRzKGEpO1pzLl9fR19JRF9DTElFTlRfXz1hO3VzKGEuaGUpO2F0KGEpO18uYWQuZ2V0KCJnX3N0YXRlIik7YnQoYS5CKTtfLkkoImVuYWJsZV9mZWRjbV9ibHVlZG9nX3BvYyIpJiYoYj1hLm0sYj17Y2xpZW50X2lkOmIuY2xpZW50X2lkLGNvbmZpZ191cmw6YS5ILGNvbnRleHQ6Yi5jb250ZXh0fHwic2lnbmluIixkb21haW5faGludDpiLmhvc3RlZF9kb21haW49PT0iKiI/ImFueSI6Yi5ob3N0ZWRfZG9tYWluLGxvZ2luX2hpbnQ6Yi5oaW50LG5vbmNlOmIubm9uY2UsZmllbGRzOlsiZW1haWwiLCJuYW1lIiwicGljdHVyZSJdLHBhcmFtczpKU09OLnN0cmluZ2lmeShjdChiKSl9LElzKGIpKTtyZXR1cm4gYX0sZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVpzLl9fR19JRF9DTElFTlRfXztkfHwoZHQoKSxkPVpzLl9fR19JRF9DTElFTlRfXyk7ZC52YShhLApiLGMpfSxndD1mdW5jdGlvbihhLGIsYyl7aWYoYSYmYil7dmFyIGQ9WnMuX19HX0lEX0NMSUVOVF9fO2Q/ZnQoZCxhLGIsYyk6Xy5HKCJGYWlsZWQgdG8gcmVuZGVyIGJ1dHRvbiBiZWZvcmUgY2FsbGluZyBpbml0aWFsaXplKCkuIil9ZWxzZSBfLkcoIkZhaWxlZCB0byByZW5kZXIgYnV0dG9uIGJlY2F1c2UgdGhlcmUgaXMgbm8gcGFyZW50IG9yIG9wdGlvbnMgc2V0LiIpfSxpdD1mdW5jdGlvbigpe3ZhciBhPVpzLl9fR19JRF9DTElFTlRfXzthfHwoZHQoKSxhPVpzLl9fR19JRF9DTElFTlRfXyk7aHQoYS5nKX0sanQ9ZnVuY3Rpb24oKXt2YXIgYT1hPT09dm9pZCAwP2RvY3VtZW50LnJlYWR5U3RhdGU6YTtmb3IodmFyIGI9Xy5ybCgiZ19pZF9zaWdub3V0IiksYz0wO2M8Yi5sZW5ndGg7YysrKV8uWGYoYltjXSwiY2xpY2siLGl0KTt0cnl7dmFyIGQ9V3MoKTtpZihkKXt2YXIgZT1kLmF1dG9fcHJvbXB0O2RlbGV0ZSBkLmF1dG9fcHJvbXB0O3ZhciBmPWQubW9tZW50X2NhbGxiYWNrOwpkZWxldGUgZC5tb21lbnRfY2FsbGJhY2s7ZHQoZCk7ZSYmKGE9PT0iY29tcGxldGUiP2V0KGYpOl8uWGYod2luZG93LCJsb2FkIixmdW5jdGlvbigpe2V0KGYpfSwhMSkpfXZhciBnPV8ucmwoImdfaWRfc2lnbmluIik7Zm9yKGE9MDthPGcubGVuZ3RoO2ErKyl7dmFyIGg9WXMoZ1thXSk7Z3QoZ1thXSxoKX19Y2F0Y2goayl7Xy5IKCJFcnJvciBwYXJzaW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBIVE1MOiAiK2subWVzc2FnZSl9fSxrdD1mdW5jdGlvbigpe3ZhciBhPVpzLm9uR29vZ2xlTGlicmFyeUxvYWQ7YSYmdHlwZW9mIGE9PT0iZnVuY3Rpb24iJiZhKCl9LGx0PWZ1bmN0aW9uKCl7dmFyIGE9YT09PXZvaWQgMD9kb2N1bWVudC5yZWFkeVN0YXRlOmE7YT09PSJjb21wbGV0ZSI/c2V0VGltZW91dChmdW5jdGlvbigpe2t0KCl9LDApOl8uWGYod2luZG93LCJsb2FkIixmdW5jdGlvbigpe2t0KCl9LCExKX0sbXQ9ZnVuY3Rpb24oKXt2YXIgYT1Wci5hcHBseSgwLGFyZ3VtZW50cyksYj0KW107aWYoYSl7YT1fLnUoYSk7Zm9yKHZhciBjPWEubmV4dCgpOyFjLmRvbmU7Yz1hLm5leHQoKSl7dmFyIGQ9KGM9Yy52YWx1ZSkmJmMudHJpbSgpOyFkJiZkLmluZGV4T2YoIiAiKT49MD8oXy5HKCJJbiBoYXNHcmFudGVkQWxsU2NvcGVzKCkgbWV0aG9kOiBpbnZhbGlkIHNjb3BlIFsiK2MrIl0uIFNjb3BlIHNob3VsZCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcgd2l0aG91dCBzcGFjZS4iKSxjPW51bGwpOmM9ZDtpZihjPT09bnVsbClyZXR1cm4gXy5HKCJJbnZhbGlkIHNjb3BlIGZvdW5kLiIpLG51bGw7YyYmYi5wdXNoKGMpfX1yZXR1cm4gYn0sbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YSYmYS5zY29wZSYmYS5zY29wZS50cmltKCkpP210LmFwcGx5KG51bGwsXy5NZChhLnNwbGl0KCIgIikpKTpudWxsfSxvdD1mdW5jdGlvbihhLGIpe2IuZ3Npd2Vic2RrPSJnaXNfYXR0cmlidXRlcyI7Yi5yZWRpcmVjdF91cmk9Imdpc190cmFuc2Zvcm0iO2IucmVzcG9uc2VfbW9kZT0iZm9ybV9wb3N0IjsKYi5vcmlnaW49Yi5vcmlnaW58fHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47Yi5kaXNwbGF5PSJwb3B1cCI7dmFyIGM9bmV3IF8uRGk7YT1fLlIoYyw4LGEubyk7YT1fLnprKF8uUyhhLDcsMSksMTkpO2E9Xy55aShhLDEzLCEwKTtjPUVyKCk7YT1fLlIoYSw1LGMpO2Iuc3RhdGUmJl8uUihhLDEwLGIuc3RhdGUpO2IuZ2lzX3BhcmFtcz1fLmZiKGEuaCgpLDQpfSxwdD1mdW5jdGlvbihhKXtfLkNoKGEsInByb21wdF9jbG9zZWQiLHtYZTohMX0pfSxxdD1mdW5jdGlvbihhLGIsYyl7Yj17Y2Y6Yn07YyE9PXZvaWQgMCYmKGIuZGY9Yyk7Xy5DaChhLCJwcm9tcHRfcmVzaXplZCIsYil9LFZyPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9LHJ0PV8ubWgoXy5EaSxfLkNpKSxzdD17U2U6InNpZ25pbiIsVGU6InNpZ251cCIsVmU6InVzZSIsT2U6ImNvbnRpbnVlIn0sdHQ9CntOZToiY2FyZCIsTWU6ImJvdHRvbV9zaGVldCJ9LGZzPWZ1bmN0aW9uKCl7cmV0dXJuIEVycm9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc307Xy5KKGZzLEVycm9yKTtfLmNsPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLmNsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcrIiJ9O3ZhciB1dD1mdW5jdGlvbihhKXt0aGlzLmc9YX07dXQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZysiIn07CnZhciBKcj0iYWx0ZXJuYXRlIGF1dGhvciBib29rbWFyayBjYW5vbmljYWwgY2l0ZSBoZWxwIGljb24gbGljZW5zZSBtb2R1bGVwcmVsb2FkIG5leHQgcHJlZmV0Y2ggZG5zLXByZWZldGNoIHByZXJlbmRlciBwcmVjb25uZWN0IHByZWxvYWQgcHJldiBzZWFyY2ggc3VicmVzb3VyY2UiLnNwbGl0KCIgIiksRnM9ZnVuY3Rpb24oYSxiKXtpZigidGV4dENvbnRlbnQiaW4gYSlhLnRleHRDb250ZW50PWI7ZWxzZSBpZihhLm5vZGVUeXBlPT0zKWEuZGF0YT1TdHJpbmcoYik7ZWxzZSBpZihhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlVHlwZT09Myl7Zm9yKDthLmxhc3RDaGlsZCE9YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEubGFzdENoaWxkKTthLmZpcnN0Q2hpbGQuZGF0YT1TdHJpbmcoYil9ZWxzZSBfLnRsKGEpLGEuYXBwZW5kQ2hpbGQoKGEubm9kZVR5cGU9PTk/YTphLm93bmVyRG9jdW1lbnR8fGEuZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKFN0cmluZyhiKSkpfSwKVXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVZyLmFwcGx5KDMsYXJndW1lbnRzKTt0aGlzLmo9YTt0aGlzLmk9Yjt0aGlzLmc9Yzt0aGlzLmg9ZH07VXIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9W3RoaXMual07dGhpcy5pJiZhLnB1c2godGhpcy5pKTt0aGlzLmcmJmEucHVzaCh0aGlzLmcpO3RoaXMuaCYmYS5wdXNoLmFwcGx5KGEsXy5NZCh0aGlzLmgpKTtyZXR1cm4gYS5qb2luKCIuIil9O3ZhciBOcj0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9sb2ciLE9yLFByLFNyLFFyPVtdLHZ0PVsiZGVidWciLCJpbmZvIiwid2FybiJdLHd0PXt9LHh0PWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSih4dCxfLkQpO3ZhciB5dD1mdW5jdGlvbigpe3RoaXMua2V5PSI0NTc5ODk5MiI7dGhpcy5kZWZhdWx0VmFsdWU9ITA7dGhpcy5mbGFnTmFtZUZvckRlYnVnZ2luZz12b2lkIDA7dGhpcy5waGFzZT0yfTt5dC5wcm90b3R5cGUuY3Rvcj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiI/YTp0aGlzLmRlZmF1bHRWYWx1ZX07dmFyIHp0PWZ1bmN0aW9uKCl7dGhpcy5rZXk9IjQ1Nzc0ODg1Ijt0aGlzLmRlZmF1bHRWYWx1ZT0xODA3NjQyODAwO3RoaXMuZmxhZ05hbWVGb3JEZWJ1Z2dpbmc9dm9pZCAwO3RoaXMucGhhc2U9Mn07enQucHJvdG90eXBlLmN0b3I9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciI/YTp0aGlzLmRlZmF1bHRWYWx1ZX07dmFyIEF0PWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihBdCxfLkQpO3ZhciBCdD1bMSwyXTt2YXIgQ3Q9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKEN0LF8uRCk7dmFyIER0PVsyLDMsNCw1LDYsOF07dmFyIEV0PWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihFdCxfLkQpO0V0LnByb3RvdHlwZS5PYz1mdW5jdGlvbigpe3ZhciBhPV8uTCh0aGlzLDMsdm9pZCAwLHZvaWQgMCxIcik7cmV0dXJuIGE9PW51bGw/Xy5qaCgpOmF9O3ZhciBGdD1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooRnQsXy5EKTt2YXIgR3Q9Xy5paShGdCk7dmFyIEh0LEl0PWZ1bmN0aW9uKCl7dGhpcy5oPSExO3ZhciBhPW51bGw7dGhpcy5oPSEwO3ZhciBiPXdpbmRvdztiPWI9PT12b2lkIDA/d2luZG93OmI7Yj1iPT09dm9pZCAwP3dpbmRvdzpiO2I9KGI9Yi5XSVpfZ2xvYmFsX2RhdGEpJiYiVFNEdFYiaW4gYj9iLlRTRHRWOm51bGw7aWYoYj10eXBlb2YgYiE9PSJzdHJpbmciP251bGw6YilhPUd0KCJbIitiLnN1YnN0cmluZyg0KSksYT1fLkZpKGEsRXQsMSx2b2lkIDA9PT1fLktlPzI6NClbMF07aWYoYSl7Yj1fLnUoXy5GaShhLEN0LDIsdm9pZCAwPT09Xy5LZT8yOjQpKTtmb3IodmFyIGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXtjPWMudmFsdWU7dmFyIGQ9Yy5BO2lmKF8udmMoZCxkW18uQV18MCx4dCxfLk9rKGMsRHQsNikpIT09dm9pZCAwKXRocm93IEVycm9yKCk7fX1pZihhKWZvcihiPXt9LGM9Xy51KF8uRmkoYSxDdCwyLHZvaWQgMD09PV8uS2U/Mjo0KSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPQpkLnZhbHVlO2Q9Xy5HaShlLDEpLnRvU3RyaW5nKCk7c3dpdGNoKF8uTmsoZSxEdCkpe2Nhc2UgMzpiW2RdPV8udmkoZSxfLk9rKGUsRHQsMykpO2JyZWFrO2Nhc2UgMjp2YXIgZj1fLkdpKGUsXy5PayhlLER0LDIpKTtmPSgwLF8uJGIpKGYpP051bWJlcihmKTpTdHJpbmcoZik7YltkXT1mO2JyZWFrO2Nhc2UgNDpmPXZvaWQgMDt2YXIgZz1lO3ZhciBoPV8uT2soZSxEdCw0KTtlPXZvaWQgMDtlPWU9PT12b2lkIDA/MDplO2c9KGY9Xy5MKGcsaCx2b2lkIDAsdm9pZCAwLEdyKSkhPW51bGw/ZjplO2JbZF09ZzticmVhaztjYXNlIDU6YltkXT1fLlhlKGUsXy5PayhlLER0LDUpKTticmVhaztjYXNlIDY6YltkXT1fLk0oZSx4dCxfLk9rKGUsRHQsNiksdm9pZCAwKTticmVhaztjYXNlIDg6Zz1lO2Y9QXQ7ZT1fLk9rKGUsRHQsOCk7Zz1nLkE7KGU9Xy52YyhnLGdbXy5BXXwwLGYsZSkpfHwoZT1mW18uRWVdKXx8KGU9bmV3IGYsXy53YihlLkEsMzQpLGU9ZltfLkVlXT1lKTtmPWU7c3dpdGNoKF8uTmsoZiwKQnQpKXtjYXNlIDE6YltkXT1fLlhlKGYsXy5PayhmLEJ0LDEpKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJQYWAiK18uTmsoZixCdCkpO31icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJQYWAiK18uTmsoZSxEdCkpO319ZWxzZSBiPXt9O3RoaXMuZz1iO3RoaXMudG9rZW49YT9hLk9jKCk6bnVsbH0sSnQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5waGFzZT09PTF8fGEuaCYmIShiLmtleSBpbiBhLmcpP2IuZGVmYXVsdFZhbHVlOmIuY3RvcihhLmdbYi5rZXldKX07SXQucHJvdG90eXBlLk9jPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9rZW59O3ZhciBLdD1uZXcgeXQsTHQ9bmV3IHp0O3ZhciBNdD1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooTXQsXy5EKTt2YXIgTnQ9Xy5paShNdCk7dmFyIE90PWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihPdCxfLkQpO3ZhciBQdD1fLmlpKE90KTt2YXIgeHM9ZnVuY3Rpb24oKXtyZXR1cm4iXHUwMGFiTG9nZyBwXHUwMGU1IG1lZCBHb29nbGVcdTAwYmItZGlhbG9nYm9rcyJ9O3ZhciB0cz1uZXcgTWFwO3ZhciBRdD1mdW5jdGlvbigpe3RoaXMuZz1FcygpfSxTdD1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwPyJ3aWRnZXQiOmM7Xy5FKCJTdGFydGluZyBGZWRDTSBjYWxsLiBNb2RlOiAiK2MrIiB8IGNhbGxJZDogIithLmcrIi4iKTtuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KFJ0KGEsYixjKSkudGhlbihmdW5jdGlvbihkKXtfLkUoIlJlc3BvbnNlIHJlY2VpdmVkLiBjYWxsSWQ6ICIrYS5nKyIuIik7YS5mYShiLGMsZCl9LGZ1bmN0aW9uKGQpe18uRSgiRXJyb3IgcmVjZWl2ZWQuIGNhbGxJZDogIithLmcrIi4iKTtiLmthKGMsZCl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7YS5oPXZvaWQgMH0pfSxSdD1mdW5jdGlvbihhLGIsYyl7Xy5FKCJHZW5lcmF0aW5nIEZlZENNIG9wdGlvbnMuIGNhbGxJZDogIithLmcrIi4iKTthLmg9bmV3IEFib3J0Q29udHJvbGxlcjt2YXIgZD17dXJsOmIuTGMsY29uZmlnVVJMOmIucmIsY2xpZW50SWQ6Yi5tLmNsaWVudF9pZCxwYXJhbXM6Yi5SYSxmaWVsZHM6WyJuYW1lIiwKImVtYWlsIiwicGljdHVyZSJdfTtiLm0ubm9uY2UmJihkLm5vbmNlPWIubS5ub25jZSk7Yi5tLmhpbnQmJihkLmxvZ2luSGludD1iLm0uaGludCk7Yi5tLmhvc3RlZF9kb21haW4mJihkLmRvbWFpbkhpbnQ9Yi5tLmhvc3RlZF9kb21haW49PT0iKiI/ImFueSI6Yi5tLmhvc3RlZF9kb21haW4pO2Q9e2NvbnRleHQ6Yi5tLmNvbnRleHR8fCJzaWduaW4iLHByb3ZpZGVyczpbZF0sbW9kZTpfLlVhKCJDaHJvbWl1bSIpPj0xMzE/Yz09PSJidXR0b24iPyJhY3RpdmUiOiJwYXNzaXZlIjpjfTt2YXIgZT17c2lnbmFsOmEuaC5zaWduYWwsZmVkZXJhdGVkOmQsaWRlbnRpdHk6ZH07ZS5tZWRpYXRpb249Yi5JYT8ib3B0aW9uYWwiOiJyZXF1aXJlZCI7Yz09PSJ3aWRnZXQiJiYoZC5hdXRvUmVhdXRobj0hIWIuSWEpO18uRSgiRmVkQ00gb3B0aW9ucyBnZW5lcmF0ZWQuIGNhbGxJZDogIithLmcrIi4gIitlKTtyZXR1cm4gZX07ClF0LnByb3RvdHlwZS5mYT1mdW5jdGlvbihhLGIsYyl7Yz8oXy5FKCJQcm9jZXNzaW5nIEZlZENNIHJlc3BvbnNlLiBjYWxsSWQgIit0aGlzLmcpLGMubG9naW4/Yy5sb2dpbih7c2lnbmFsOnRoaXMuaC5zaWduYWwsbm9uY2U6YS5tLm5vbmNlfSkudGhlbihmdW5jdGlvbihkKXthLmZhKGIsZCxhLlJhKX0sZnVuY3Rpb24oZCl7YS5rYShiLGQpfSk6YS5mYShiLGMsYS5SYSkpOihfLkUoIkZlZENNIGNyZWRlbnRpYWwgaXMgbnVsbC4gY2FsbElkICIrdGhpcy5nKSxhLmthKGIsRXJyb3IoIlciKSkpfTsKdmFyIFR0PWZ1bmN0aW9uKCl7dGhpcy5oPSExfSxVdD1mdW5jdGlvbihhLGIsYyl7YS5nPW5ldyBRdDtTdChhLmcsYixjPT09dm9pZCAwPyJ3aWRnZXQiOmMpfSxWdD1mdW5jdGlvbihhLGIpe1V0KGEsYiwid2lkZ2V0Iil9LFd0PWZ1bmN0aW9uKGEsYil7VXQoYSxiLCJidXR0b24iKX0sYnQ9ZnVuY3Rpb24oYSl7Xy5FKCJFdmFsdWF0aW5nIEZlZENNIG1vZGUgc3VwcG9ydC4iKTt2YXIgYj17aWRlbnRpdHk6T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJtb2RlIix7Z2V0OmZ1bmN0aW9uKCl7Xy5FKCJGZWRDTSBtb2RlIHN1cHBvcnRlZC4iKTthLmg9ITB9fSl9O3RyeXtuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KGIpLnRoZW4oZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7fSl9Y2F0Y2goYyl7fX0sWHQ9ZnVuY3Rpb24oYSxiKXtiPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkxvZ2luQWN0aW9uIixmZWRlcmF0aW9uOntwcm92aWRlcnM6W3siQHR5cGUiOiJGZWRlcmF0ZWRMb2dpblByb3ZpZGVyIiwKY29uZmlnVVJMOmEsY2xpZW50SWQ6Yi5jbGllbnRfaWQsbG9naW5IaW50OmIuaGludCxkb21haW5IaW50OmIuaG9zdGVkX2RvbWFpbj09PSIqIj8iYW55IjpiLmhvc3RlZF9kb21haW4scGFyYW1zOmN0KGIpLGZpZWxkczpbImVtYWlsIiwibmFtZSIsInBpY3R1cmUiXX1dfX07YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTthLnR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iO3ZhciBjO2I9SlNPTi5zdHJpbmdpZnkoYikucmVwbGFjZSgvPC9nLCJcXHUwMDNDIik7Yj0oYz1fLmJsKCkpP2MuY3JlYXRlU2NyaXB0KGIpOmI7Yz1uZXcgdXQoYik7Yj17aWU6ITB9O2lmKGMgaW5zdGFuY2VvZiB1dCljPWMuZztlbHNlIHRocm93IEVycm9yKCJHIik7YS50ZXh0Q29udGVudD1jO2lmKGI9PW51bGx8fCFiLmllKXt2YXIgZDtiPWEub3duZXJEb2N1bWVudDtiPWI9PT12b2lkIDA/ZG9jdW1lbnQ6Yjt2YXIgZTtiPShlPShkPWIpLnF1ZXJ5U2VsZWN0b3IpPT1udWxsP3ZvaWQgMDplLmNhbGwoZCwKInNjcmlwdFtub25jZV0iKTsoZD1iPT1udWxsPyIiOmIubm9uY2V8fGIuZ2V0QXR0cmlidXRlKCJub25jZSIpfHwiIikmJmEuc2V0QXR0cmlidXRlKCJub25jZSIsZCl9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChhKX0sWXQ9ZnVuY3Rpb24oYSxiKXthPVt7Y29uZmlnVVJMOmEsY2xpZW50SWQ6Yi5jbGllbnRfaWQsbG9naW5IaW50OmIuaGludCxkb21haW5IaW50OmIuaG9zdGVkX2RvbWFpbj09PSIqIj8iYW55IjpiLmhvc3RlZF9kb21haW4scGFyYW1zOmN0KGIpLGZpZWxkczpbImVtYWlsIiwibmFtZSIsInBpY3R1cmUiXX1dO2I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibG9naW4iKTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjcmVkZW50aWFsIik7Yi5hcHBlbmRDaGlsZChjKTtjLnNldEF0dHJpYnV0ZSgidHlwZSIsImZlZGVyYXRlZCIpO2Muc2V0QXR0cmlidXRlKCJjb25maWdVUkwiLGFbMF0uY29uZmlnVVJMKTtjLnNldEF0dHJpYnV0ZSgiY2xpZW50SWQiLAphWzBdLmNsaWVudElkKTthWzBdLmxvZ2luSGludCYmYy5zZXRBdHRyaWJ1dGUoImxvZ2luSGludCIsYVswXS5sb2dpbkhpbnQpO2FbMF0uZG9tYWluSGludCYmYy5zZXRBdHRyaWJ1dGUoImRvbWFpbkhpbnQiLGFbMF0uZG9tYWluSGludCk7YVswXS5wYXJhbXMmJmMuc2V0QXR0cmlidXRlKCJwYXJhbXMiLEpTT04uc3RyaW5naWZ5KGFbMF0ucGFyYW1zKSk7YVswXS5maWVsZHMmJmMuc2V0QXR0cmlidXRlKCJmaWVsZHMiLGFbMF0uZmllbGRzLmpvaW4oIiwiKSk7cmV0dXJuIGJ9LGN0PWZ1bmN0aW9uKGEpe3JldHVybnthczphLmFzLHRvcF9vcmlnaW46cHMoKT9vcygpOnZvaWQgMCxsaWJyYXJ5X25hbWU6YS5saWJyYXJ5X25hbWU/YS5saWJyYXJ5X25hbWU6dm9pZCAwLHJlc3BvbnNlX3R5cGU6ImlkX3Rva2VuIixzc19kb21haW46YS5vcmlnaW58fGxvY2F0aW9uLm9yaWdpbixzY29wZToiZW1haWwgcHJvZmlsZSBvcGVuaWQiLG5vbmNlOmEubm9uY2U/YS5ub25jZToibm90X3Byb3ZpZGVkIiwKc3RhdGU6YS5zdGF0ZSxjbGFpbXM6YS5jbGFpbXN9fTt2YXIgWnQ9e2xlZnQ6MSxjZW50ZXI6Mn0sJHQ9e3JlY3Rhbmd1bGFyOjEsc3F1YXJlOjMscGlsbDoyLGNpcmNsZTo0fSxhdT17bGFyZ2U6MSxtZWRpdW06MixzbWFsbDozfSxidT17c2lnbmluOjEsc2lnbmluX3dpdGg6MixzaWdudXBfd2l0aDozLGNvbnRpbnVlX3dpdGg6NH0sY3U9e291dGxpbmU6MSxvdXRsaW5lX2Rhcms6NSxmaWxsZWRfYmx1ZToyLGZpbGxlZF9ibGFjazozfSxkdT17c3RhbmRhcmQ6MSxpY29uOjJ9LGV1PWZ1bmN0aW9uKGEsYixjKXt0aGlzLmNvbnRhaW5lcj1hO3RoaXMuaD1jO3RoaXMuZz0hMTthPW5ldyBfLmxtO2lmKGImJihiLmxvZ29fYWxpZ25tZW50JiZfLlMoYSw2LFp0W2IubG9nb19hbGlnbm1lbnRdKSxiLnNoYXBlJiZfLlMoYSwzLCR0W2Iuc2hhcGVdKSxiLnNpemUmJl8uUyhhLDEsYXVbYi5zaXplXSksYi50ZXh0JiZfLlMoYSw1LGJ1W2IudGV4dF0pLGIudGhlbWUmJl8uUyhhLDIsY3VbYi50aGVtZV0pLGIudHlwZSYmXy5TKGEsNyxkdVtiLnR5cGVdKSwKYi53aWR0aCkpaWYodHlwZW9mIGIud2lkdGg9PT0ibnVtYmVyIiYmIWlzTmFOKGIud2lkdGgpKV8uSGkoYSw0LE51bWJlcihiLndpZHRoKSk7ZWxzZSBpZih0eXBlb2YgYi53aWR0aD09PSJzdHJpbmciKXRyeXt2YXIgZD1iLndpZHRoO18uSGkoYSw0LE51bWJlcihkLmVuZHNXaXRoKCJweCIpP2Quc2xpY2UoMCwtMik6ZCkpfWNhdGNoKGUpe18uRygiUHJvdmlkZWQgYnV0dG9uIHdpZHRoIGlzIGludmFsaWQ6ICIrYi53aWR0aCl9dGhpcy5IYT1hO3RoaXMuc3RhcnRUaW1lPXBlcmZvcm1hbmNlLm5vdygpfSxmdT1mdW5jdGlvbihhKXtpZighYS5nKXtfLmVtKGEuY29udGFpbmVyLGEuSGEpO3ZhciBiPV8uc2woIm5zbTdCYi1IelY3bS1MZ2JzU2UiLGEuY29udGFpbmVyKTtiJiZhLmgmJmxzKGIsZnVuY3Rpb24oKXthLmgmJmEuaC5jYWxsKGEpfSk7YS5pPXBlcmZvcm1hbmNlLm5vdygpfX07CmV1LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuZyl7dmFyIGE9Xy5zbCgibnNtN0JiLUh6VjdtLUxnYnNTZSIsdGhpcy5jb250YWluZXIpO2EmJl8udWwoYSk7dGhpcy5nPSEwO3RoaXMuaj1wZXJmb3JtYW5jZS5ub3coKX19O3ZhciBndT1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5sPWd1LnByb3RvdHlwZTtfLmwuZ2V0TW9tZW50VHlwZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O18ubC5pc0Rpc3BsYXlNb21lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nPT09ImRpc3BsYXkifTtfLmwuaXNEaXNwbGF5ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0Rpc3BsYXlNb21lbnQoKSYmISF0aGlzLmh9O18ubC5pc05vdERpc3BsYXllZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRGlzcGxheU1vbWVudCgpJiYhdGhpcy5ofTtfLmwuZ2V0Tm90RGlzcGxheWVkUmVhc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNOb3REaXNwbGF5ZWQoKT90aGlzLmo6dm9pZCAwfTtfLmwuaXNTa2lwcGVkTW9tZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZz09PSJza2lwcGVkIn07Xy5sLmdldFNraXBwZWRSZWFzb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1NraXBwZWRNb21lbnQoKT90aGlzLmw6dm9pZCAwfTsKXy5sLmlzRGlzbWlzc2VkTW9tZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZz09PSJkaXNtaXNzZWQifTtfLmwuZ2V0RGlzbWlzc2VkUmVhc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNEaXNtaXNzZWRNb21lbnQoKT90aGlzLmk6dm9pZCAwfTt2YXIgaHU9ZnVuY3Rpb24oYSxiKXt0aGlzLnY9YTt0aGlzLmw9dGhpcy5pPXRoaXMuc2Vzc2lvbklkPW51bGw7dGhpcy5EPTA7dGhpcy5nPXRoaXMuSD1udWxsO3RoaXMuc3RhdGU9MDt0aGlzLkI9ITE7dGhpcy5qPXRoaXMudT10aGlzLmg9dGhpcy5vPW51bGw7dGhpcy5DPWI7dGhpcy5HPV8uZmQodGhpcy5DKX0sbXU9ZnVuY3Rpb24oYSl7Xy5FKCJScm1NYW5hZ2VyIGluaXRpYWxpemVkIik7YS5zdGF0ZSE9PTA/Xy5HKCJScm1NYW5hZ2VyIGFscmVhZHkgaW5pdGlhbGl6ZWQgb3IgaW4gcHJvZ3Jlc3MuIik6KGEuc2Vzc2lvbklkPWNyeXB0by5yYW5kb21VVUlEKCksYS5pPW9zKCksYS5pPyhhLkg9ZnVuY3Rpb24oYil7aWYoYS5zZXNzaW9uSWQpaWYoYS5zdGF0ZT09PTEpYi5vcmlnaW49PT1hLmkmJmIuZGF0YSYmYi5kYXRhLnR5cGU9PT0iUlJNX0dJU19BQ0siJiZiLmRhdGEuc2Vzc2lvbklkPT09YS5zZXNzaW9uSWQmJihfLkUoIlJlY2VpdmVkIFJSTV9HSVNfQUNLOiAiK0pTT04uc3RyaW5naWZ5KGIuZGF0YSkpLAphLmwmJihjbGVhclRpbWVvdXQoYS5sKSxhLmw9bnVsbCksaXUoYSkpO2Vsc2UgaWYoYS5nJiZiLnNvdXJjZT09PWEuZy5jb250ZW50V2luZG93JiZiLm9yaWdpbj09PWEuRyYmYi5kYXRhJiZiLmRhdGEuc2Vzc2lvbklkPT09YS5zZXNzaW9uSWQpc3dpdGNoKF8uRSgiUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIFJSTSBpZnJhbWU6ICIrSlNPTi5zdHJpbmdpZnkoYi5kYXRhKSksYi5kYXRhLnR5cGUpe2Nhc2UgIlJSTV9HSVNfSUZSQU1FX0xPQURFRF9HSVMiOmp1KGEpO2JyZWFrO2Nhc2UgIlJSTV9HSVNfWUlFTEQiOl8uRSgiUmVjZWl2ZWQgUlJNX0dJU19ZSUVMRC4iKTthLkI9ITA7YS5qJiYoY2xlYXJUaW1lb3V0KGEuaiksYS5qPW51bGwpO2t1KGEpO2JyZWFrO2Nhc2UgIlJSTV9HSVNfUkVESVJFQ1RfT0siOl8uRSgiUmVjZWl2ZWQgUlJNX0dJU19SRURJUkVDVF9PSy4iKTthLnUmJihjbGVhclRpbWVvdXQoYS51KSxhLnU9bnVsbCk7YS5oJiYoYS52KGEuaCksYS5oPW51bGwpO2JyZWFrOwpjYXNlICJSUk1fR0lTX0VSUk9SIjpfLkgoIlJlY2VpdmVkIFJSTV9HSVNfRVJST1I6ICIrSlNPTi5zdHJpbmdpZnkoYi5kYXRhLm1lc3NhZ2UpKTthLnN0YXRlPTQ7a3UoYSk7YnJlYWs7ZGVmYXVsdDpfLkcoIlJlY2VpdmVkIHVua25vd24gbWVzc2FnZSB0eXBlIGZyb20gUlJNIGlmcmFtZSIpfX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEuSCksbHUoYSkpOihfLkgoIkNvdWxkIG5vdCBkZXRlcm1pbmUgdG9wIGxldmVsIG9yaWdpbi4gQ2Fubm90IHN0YXJ0IFJSTSBoYW5kc2hha2UuIiksYS5zdGF0ZT00KSl9LGx1PWZ1bmN0aW9uKGEpe18uRSgiU3RhcnRpbmcgUlJNIGhhbmRzaGFrZSIpO2Euc3RhdGU9MTthLmw9c2V0VGltZW91dChmdW5jdGlvbigpe3B1KGEpfSwxMkU0KTtxdShhKX0scXU9ZnVuY3Rpb24oYSl7aWYoYS5zdGF0ZT09PTEmJmEuaSYmYS5zZXNzaW9uSWQpe3ZhciBiPXt0eXBlOiJSUk1fR0lTX1BJTkciLHNlc3Npb25JZDphLnNlc3Npb25JZH07Cl8uRSgiU2VuZGluZyBSUk1fR0lTX1BJTkc6ICIrSlNPTi5zdHJpbmdpZnkoYikpO3RyeXt3aW5kb3cudG9wLnBvc3RNZXNzYWdlKGIsYS5pKX1jYXRjaChjKXtfLkgoIkZhaWxlZCB0byBwb3N0TWVzc2FnZSB0byB3aW5kb3cudG9wIixTdHJpbmcoYykpO3B1KGEpO3JldHVybn1hLkQrKztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5zdGF0ZT09PTEmJnF1KGEpfSxNYXRoLm1pbihNYXRoLnBvdygyLGEuRC0xKSoxMDAsM0U0KSl9fSxwdT1mdW5jdGlvbihhKXthLnN0YXRlPT09MSYmKF8uSCgiUlJNIGhhbmRzaGFrZSB0aW1lZCBvdXQuIiksYS5zdGF0ZT00LGt1KGEpKX0saXU9ZnVuY3Rpb24oYSl7aWYoYS5zZXNzaW9uSWQpe18uRSgiQ3JlYXRpbmcgUlJNIGNvbW11bmljYXRpb24gaWZyYW1lIik7YS5zdGF0ZT0yO3ZhciBiPW5ldyBfLmhkKGEuQyk7Yi5qLnNldCgic2Vzc2lvbklkIixhLnNlc3Npb25JZCk7Yi5qLnNldCgicm9sZSIsIkdJUyIpO2EuZz1DcyhiLnRvU3RyaW5nKCkpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEuZyk7c2V0VGltZW91dChmdW5jdGlvbigpe2Euc3RhdGU9PT0yJiYoXy5IKCJSUk0gY29tbXVuaWNhdGlvbiBpZnJhbWUgZmFpbGVkIHRvIGxvYWQgd2l0aGluIHRpbWVvdXQuIiksYS5zdGF0ZT00LGt1KGEpKX0sNkU0KX1lbHNlIF8uSCgiU2Vzc2lvbiBJRCBub3QgYXZhaWxhYmxlLCBjYW5ub3QgY3JlYXRlIFJSTSBpZnJhbWUuIil9LGp1PWZ1bmN0aW9uKGEpe2Euc3RhdGU9PT0yJiYoXy5FKCJSUk0gY29tbXVuaWNhdGlvbiBpZnJhbWUgbG9hZGVkIGFuZCByZWFkeS4iKSxhLnN0YXRlPTMsd2luZG93LnRvcC5wb3N0TWVzc2FnZSh7dHlwZToiUlJNX0dJU19SRUFEWV9HSVMiLHNlc3Npb25JZDphLnNlc3Npb25JZH0sYS5pKSxhLmo9c2V0VGltZW91dChmdW5jdGlvbigpe2EuQnx8Xy5HKCJTdGlsbCB3YWl0aW5nIGZvciBSUk1fR0lTX1lJRUxEIGFmdGVyIDEwIG1pbnV0ZXMuIik7YS5qPW51bGx9LDZFNSkpfSxrdT1mdW5jdGlvbihhKXthLm8mJgooXy5FKCJFeGVjdXRpbmcgcXVldWVkIHByb21wdCBmdW5jdGlvbi4iKSxhLm8oKSxhLm89bnVsbCl9LHJ1PWZ1bmN0aW9uKGEpe3JldHVybiBhLnN0YXRlIT09NCYmIWEuQn0sc3U9ZnVuY3Rpb24oYSxiKXtydShhKT8oYS5vPWIsXy5FKCJQcm9tcHQgZnVuY3Rpb24gcXVldWVkLCB3YWl0aW5nIGZvciBSUk0geWllbGQuIikpOihfLkcoInNldFF1ZXVlZFByb21wdCBjYWxsZWQgaW4gdW5leHBlY3RlZCBzdGF0ZTogIithLnN0YXRlKSxiKCkpfSx0dT1mdW5jdGlvbihhLGIpe2Euc3RhdGU9PT0zJiZhLmcmJmEuZy5jb250ZW50V2luZG93JiZhLnNlc3Npb25JZD8oXy5FKCJTZW5kaW5nIFJSTV9HSVNfSURfVE9LRU4gdG8gUlJNIGlmcmFtZS4iKSxhLmg9YixhLmcuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSh7dHlwZToiUlJNX0dJU19JRF9UT0tFTiIsc2Vzc2lvbklkOmEuc2Vzc2lvbklkLGlkVG9rZW46Yi5jcmVkZW50aWFsLGNsaWVudElkOmIuY2xpZW50X2lkfSxhLkcpLGEudT0Kc2V0VGltZW91dChmdW5jdGlvbigpe18uRygiTm8gUlJNX0dJU19SRURJUkVDVF9PSyByZWNlaXZlZCBhZnRlciAxIG1pbnV0ZS4iKTthLmgmJihhLnYoYS5oKSxhLmg9bnVsbCl9LDZFNCkpOihfLkcoIm5vdGlmeUlkVG9rZW4gY2FsbGVkIGluIHVuZXhwZWN0ZWQgc3RhdGUgb3Igd2l0aG91dCBpZnJhbWU6ICIrYS5zdGF0ZSksYS52KGIpKX07dmFyIHV1PVswLDcyMDAsODY0MDAsNjA0ODAwLDI0MTkyMDBdLHZ1PVsiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iXSx3dT1mdW5jdGlvbihhLGIsYyl7dGhpcy5pPWE7dGhpcy5nPWI9PT12b2lkIDA/ImlfIjpiO3RoaXMuaD1jPT09dm9pZCAwPyJnX3N0YXRlIjpjO3RoaXMuaj1uZXcgSXR9LHh1PWZ1bmN0aW9uKGEpe2lmKGE9Xy5hZC5nZXQoYS5oKSl0cnl7cmV0dXJuIEpTT04ucGFyc2UoYSl9Y2F0Y2goYil7fXJldHVybnt9fSx6dT1mdW5jdGlvbihhKXt2YXIgYj14dShhKSxjPWJbYS5nKyJsIl0sZD10eXBlb2YgYz09PSJudW1iZXIiJiYhaXNOYU4oYyk7Yz17cHJvbXB0X3N1cHByZXNzX2xldmVsOmQmJmQmJmM+PTAmJmM8PTQ/Yzp5dSgpPzE6MH07ZD1iW2EuZysicCJdO2QhPT12b2lkIDAmJihjLmRpc2FibGVfYXV0b19wcm9tcHQ9ZCk7ZD1iW2EuZysidCJdO2QhPT12b2lkIDAmJihjLmRpc2FibGVfYXV0b19zZWxlY3RfdG89ZCk7ZD1iW2EuZysidSJdO2QhPT12b2lkIDAmJgooYy5wcm9tcHRfdWk9ZCk7ZD1iW2EuZysieCJdO2QhPT12b2lkIDAmJihjLm1pbmlfcHJvbXB0X3JpZ2h0PWQpO2Q9YlthLmcrInkiXTtkIT09dm9pZCAwJiYoYy5taW5pX3Byb21wdF9ib3R0b209ZCk7ZD1iW2EuZysibGwiXTtkIT09dm9pZCAwJiYoYy5sYXN0X2xpYnJhcnlfbG9hZF90aW1lPWQpO2Q9YlthLmcrImIiXTtkIT09dm9pZCAwJiYoYy5icm93c2luZ19zZXNzaW9uX2lkPWQpO2Q9YlthLmcrImUiXTtkIT09dm9pZCAwJiYoYy5leHBlcmltZW50X3ZhbHVlcz1kKTthPWJbYS5nKyJldCJdO2EhPT12b2lkIDAmJihjLmV4cGVyaW1lbnRfY2FjaGVfdGltZT1hKTtyZXR1cm4gY30sQXU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmcrInAiLGQ9YS5nKyJ0IixlPWEuZysibCIsZj1hLmcrInUiLGc9YS5nKyJ4IixoPWEuZysieSIsaz1hLmcrImxsIixtPWEuZysiYiIsbj1hLmcrImUiLHE9YS5nKyJldCIscD14dShhKTtiLmRpc2FibGVfYXV0b19wcm9tcHQ9PT12b2lkIDA/ZGVsZXRlIHBbY106CnBbY109Yi5kaXNhYmxlX2F1dG9fcHJvbXB0O2IuZGlzYWJsZV9hdXRvX3NlbGVjdF90bz09PXZvaWQgMD9kZWxldGUgcFtkXTpwW2RdPWIuZGlzYWJsZV9hdXRvX3NlbGVjdF90bztwW2VdPWIucHJvbXB0X3N1cHByZXNzX2xldmVsO2IucHJvbXB0X3VpPT09dm9pZCAwP2RlbGV0ZSBwW2ZdOnBbZl09Yi5wcm9tcHRfdWk7Yi5taW5pX3Byb21wdF9yaWdodD09PXZvaWQgMD9kZWxldGUgcFtnXTpwW2ddPWIubWluaV9wcm9tcHRfcmlnaHQ7Yi5taW5pX3Byb21wdF9ib3R0b209PT12b2lkIDA/ZGVsZXRlIHBbaF06cFtoXT1iLm1pbmlfcHJvbXB0X2JvdHRvbTtiLmxhc3RfbGlicmFyeV9sb2FkX3RpbWU9PT12b2lkIDA/ZGVsZXRlIHBba106cFtrXT1iLmxhc3RfbGlicmFyeV9sb2FkX3RpbWU7Yi5icm93c2luZ19zZXNzaW9uX2lkPT09dm9pZCAwP2RlbGV0ZSBwW21dOnBbbV09Yi5icm93c2luZ19zZXNzaW9uX2lkO2IuZXhwZXJpbWVudF92YWx1ZXM9PT12b2lkIDA/ZGVsZXRlIHBbbl06CnBbbl09Yi5leHBlcmltZW50X3ZhbHVlcztiLmV4cGVyaW1lbnRfY2FjaGVfdGltZT09PXZvaWQgMD9kZWxldGUgcFtxXTpwW3FdPWIuZXhwZXJpbWVudF9jYWNoZV90aW1lO2I9SlNPTi5zdHJpbmdpZnkocCk7Yz1fLldhKCkmJl8uT2EoKSYmXy5xayhfLnJrKCksIjY3Iik+PTA7Xy5hZC5zZXQoYS5oLGIse1diOjE1NTUyRTMscGF0aDoiLyIsZG9tYWluOmEuaXx8dm9pZCAwLHNlY3VyZTpjPyEwOnZvaWQgMCxzYW1lU2l0ZTpjPyJub25lIjp2b2lkIDB9KX0sQ3U9ZnVuY3Rpb24oYSl7dmFyIGI9enUoYSk7ZGVsZXRlIGIuZGlzYWJsZV9hdXRvX3Byb21wdDtiLnByb21wdF9zdXBwcmVzc19sZXZlbCYmVHIobmV3IFVyKCJvbmV0YXAiLHZvaWQgMCwicmVzZXRDb29sZG93biIsYi5wcm9tcHRfc3VwcHJlc3NfbGV2ZWwudG9TdHJpbmcoKSkpO3l1KCk/Yi5wcm9tcHRfc3VwcHJlc3NfbGV2ZWw9MTpiLnByb21wdF9zdXBwcmVzc19sZXZlbD0wO0F1KGEsYik7YS5JYSgpO0J1KGEpfSxEdT0KZnVuY3Rpb24oYSl7dmFyIGI9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPXp1KGEpO2lmKGIpe18uRSgiUHJvbXB0IGlnbm9yZWQuIFN1cHByZXNzaW5nIHByb21wdCBmb3IgMzAgbWludXRlcy4iKTtiPShuZXcgRGF0ZSkuZ2V0VGltZSgpKzE4RTU7dmFyIGQ7Yy5kaXNhYmxlX2F1dG9fcHJvbXB0PU1hdGgubWF4KChkPWMuZGlzYWJsZV9hdXRvX3Byb21wdCkhPW51bGw/ZDowLGIpfWVsc2UgYy5wcm9tcHRfc3VwcHJlc3NfbGV2ZWw9TWF0aC5taW4oYy5wcm9tcHRfc3VwcHJlc3NfbGV2ZWwrMSw0KSxjLmRpc2FibGVfYXV0b19wcm9tcHQ9KG5ldyBEYXRlKS5nZXRUaW1lKCkrdXVbYy5wcm9tcHRfc3VwcHJlc3NfbGV2ZWxdKjFFMyxUcihuZXcgVXIoIm9uZXRhcCIsdm9pZCAwLCJzdGFydENvb2xkb3duIixjLnByb21wdF9zdXBwcmVzc19sZXZlbC50b1N0cmluZygpKSk7QXUoYSxjKX0sRXU9ZnVuY3Rpb24oYSl7YT16dShhKS5kaXNhYmxlX2F1dG9fcHJvbXB0O3JldHVybiBhIT09dm9pZCAwJiYKYT4obmV3IERhdGUpLmdldFRpbWUoKX0saHQ9ZnVuY3Rpb24oYSl7dmFyIGI9enUoYSk7Yi5kaXNhYmxlX2F1dG9fc2VsZWN0X3RvPURhdGUubm93KCkrODY0RTU7QXUoYSxiKX07d3UucHJvdG90eXBlLklhPWZ1bmN0aW9uKCl7dmFyIGE9enUodGhpcyk7ZGVsZXRlIGEuZGlzYWJsZV9hdXRvX3NlbGVjdF90bztBdSh0aGlzLGEpfTsKdmFyIEZ1PWZ1bmN0aW9uKGEpe3ZhciBiPXp1KGEpO2lmKCFiLmV4cGVyaW1lbnRfY2FjaGVfdGltZSlyZXR1cm4hMDthPUp0KGEuaixMdCk7cmV0dXJuIGE/Yi5leHBlcmltZW50X2NhY2hlX3RpbWU8YSoxRTM/KF8uRSgiRXhwZXJpbWVudCBjYWNoZSBleHBpcmVkLiIpLCEwKTohMTohMX0sQnU9ZnVuY3Rpb24oYSl7dmFyIGI9enUoYSk7ZGVsZXRlIGIuYnJvd3Npbmdfc2Vzc2lvbl9pZDtfLkUoIlJlc2V0IGJyb3dzaW5nIHNlc3Npb24gaWQuIik7QXUoYSxiKX0seXU9ZnVuY3Rpb24oKXtzd2l0Y2goTHIoImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uIikpe2Nhc2UgMTQ6Y2FzZSAxNTpjYXNlIDE2OmNhc2UgMTc6Y2FzZSAyNDpyZXR1cm4gXy55aygpO2RlZmF1bHQ6cmV0dXJuITF9fSxHdT1mdW5jdGlvbigpe3N3aXRjaChMcigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iKSl7Y2FzZSAxMzpjYXNlIDE1OmNhc2UgMjQ6cmV0dXJuIDg2NDAwO2Nhc2UgMTY6cmV0dXJuIDQzMjAwO2Nhc2UgMTc6cmV0dXJuIDIxNjAwOwpkZWZhdWx0OnJldHVybiAwfX07dmFyIEh1PVJlZ0V4cCgiXigoPyFcXHMpW2EtekEtWjAtOVx1MDA4MC1cdTMwMDFcdTMwMDMtXHVmZjBkXHVmZjBmLVx1ZmY2MFx1ZmY2Mi1cdWZmZmZGRi1dK1tcXC5cXHVGRjBFXFx1MzAwMlxcdUZGNjFdKSsoPyFcXHMpW2EtekEtWjAtOVx1MDA4MC1cdTMwMDFcdTMwMDMtXHVmZjBkXHVmZjBmLVx1ZmY2MFx1ZmY2Mi1cdWZmZmZGRi1dezIsNjN9JCIpO01zLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIEl1fTt2YXIgSXU9e2RvbmU6ITAsdmFsdWU6dm9pZCAwfTtNcy5wcm90b3R5cGUuR2E9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIE11PWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBKdXx8YSBpbnN0YW5jZW9mIEt1fHxhIGluc3RhbmNlb2YgTHUpcmV0dXJuIGE7aWYodHlwZW9mIGEubmV4dD09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IEp1KGZ1bmN0aW9uKCl7cmV0dXJuIGF9KTtpZih0eXBlb2YgYVtTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iKXJldHVybiBuZXcgSnUoZnVuY3Rpb24oKXtyZXR1cm4gYVtTeW1ib2wuaXRlcmF0b3JdKCl9KTtpZih0eXBlb2YgYS5HYT09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IEp1KGZ1bmN0aW9uKCl7cmV0dXJuIGEuR2EoKX0pO3Rocm93IEVycm9yKCJRYSIpO30sSnU9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9O0p1LnByb3RvdHlwZS5HYT1mdW5jdGlvbigpe3JldHVybiBuZXcgS3UodGhpcy5nKCkpfTtKdS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBuZXcgTHUodGhpcy5nKCkpfTtKdS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe3JldHVybiBuZXcgTHUodGhpcy5nKCkpfTsKdmFyIEt1PWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLkooS3UsTXMpO0t1LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5uZXh0KCl9O0t1LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBMdSh0aGlzLmcpfTtLdS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe3JldHVybiBuZXcgTHUodGhpcy5nKX07dmFyIEx1PWZ1bmN0aW9uKGEpe0p1LmNhbGwodGhpcyxmdW5jdGlvbigpe3JldHVybiBhfSk7dGhpcy5pPWF9O18uSihMdSxKdSk7THUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pLm5leHQoKX07dmFyIE51PWZ1bmN0aW9uKCl7fTtfLllkKE51LE5zKTtOdS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBNdSh0aGlzLkdhKCEwKSkuaCgpfTtOdS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt2YXIgYT1BcnJheS5mcm9tKHRoaXMpO2E9Xy51KGEpO2Zvcih2YXIgYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpdGhpcy5nYihiLnZhbHVlKX07Xy5ZZChPcyxOdSk7dmFyIFJzPWZ1bmN0aW9uKGEpe2lmKGEuaD09PW51bGwpe3ZhciBiPWEuZztpZihiKXRyeXtiLnNldEl0ZW0oIl9fc2FrIiwiMSIpO2IucmVtb3ZlSXRlbSgiX19zYWsiKTt2YXIgYz0hMH1jYXRjaChkKXtjPWQgaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJihkLm5hbWU9PT0iUXVvdGFFeGNlZWRlZEVycm9yInx8ZC5jb2RlPT09MjJ8fGQuY29kZT09PTEwMTR8fGQubmFtZT09PSJOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRCIpJiZiJiZiLmxlbmd0aCE9PTB9ZWxzZSBjPSExO2EuaD1jfXJldHVybiBhLmh9O18ubD1Pcy5wcm90b3R5cGU7Xy5sLnNldD1mdW5jdGlvbihhLGIpe091KHRoaXMpO3RyeXt0aGlzLmcuc2V0SXRlbShhLGIpfWNhdGNoKGMpe2lmKHRoaXMuZy5sZW5ndGg9PTApdGhyb3ciU3RvcmFnZSBtZWNoYW5pc206IFN0b3JhZ2UgZGlzYWJsZWQiO3Rocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBRdW90YSBleGNlZWRlZCI7fX07Cl8ubC5nZXQ9ZnVuY3Rpb24oYSl7T3UodGhpcyk7YT10aGlzLmcuZ2V0SXRlbShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciJiZhIT09bnVsbCl0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO3JldHVybiBhfTtfLmwuZ2I9ZnVuY3Rpb24oYSl7T3UodGhpcyk7dGhpcy5nLnJlbW92ZUl0ZW0oYSl9O18ubC5HYT1mdW5jdGlvbihhKXtPdSh0aGlzKTt2YXIgYj0wLGM9dGhpcy5nLGQ9bmV3IE1zO2QubmV4dD1mdW5jdGlvbigpe2lmKGI+PWMubGVuZ3RoKXJldHVybiBJdTt2YXIgZT1jLmtleShiKyspO2lmKGEpcmV0dXJue3ZhbHVlOmUsZG9uZTohMX07ZT1jLmdldEl0ZW0oZSk7aWYodHlwZW9mIGUhPT0ic3RyaW5nIil0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO3JldHVybnt2YWx1ZTplLGRvbmU6ITF9fTtyZXR1cm4gZH07Xy5sLmNsZWFyPWZ1bmN0aW9uKCl7T3UodGhpcyk7dGhpcy5nLmNsZWFyKCl9OwpfLmwua2V5PWZ1bmN0aW9uKGEpe091KHRoaXMpO3JldHVybiB0aGlzLmcua2V5KGEpfTt2YXIgT3U9ZnVuY3Rpb24oYSl7aWYoYS5nPT1udWxsKXRocm93IEVycm9yKCJSYSIpO1JzKGEpfHxfLkJhKEVycm9yKCJSYSIpKX07Xy5ZZChQcyxPcyk7Xy5ZZChRcyxOdSk7UXMucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuaC5zZXQodGhpcy5nK2EsYil9O1FzLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaC5nZXQodGhpcy5nK2EpfTtRcy5wcm90b3R5cGUuZ2I9ZnVuY3Rpb24oYSl7dGhpcy5oLmdiKHRoaXMuZythKX07UXMucHJvdG90eXBlLkdhPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuaFtTeW1ib2wuaXRlcmF0b3JdKCksYz10aGlzLGQ9bmV3IE1zO2QubmV4dD1mdW5jdGlvbigpe3ZhciBlPWIubmV4dCgpO2lmKGUuZG9uZSlyZXR1cm4gZTtmb3IoZT1lLnZhbHVlO2Uuc2xpY2UoMCxjLmcubGVuZ3RoKSE9Yy5nOyl7ZT1iLm5leHQoKTtpZihlLmRvbmUpcmV0dXJuIGU7ZT1lLnZhbHVlfXJldHVybnt2YWx1ZTphP2Uuc2xpY2UoYy5nLmxlbmd0aCk6Yy5oLmdldChlKSxkb25lOiExfX07cmV0dXJuIGR9O3ZhciBQdSxjdixmdCxodixqdixpdixsdixtdixVdTtQdT1uZXcgXy5yZigiZ19jcmVkZW50aWFsX3BpY2tlciIpO18uUnU9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ImlfIjpiO3ZhciBjPXRoaXM7dGhpcy5WPVNzKCk7dGhpcy5zZT1iO3RoaXMuaT1hPU9iamVjdC5hc3NpZ24oe30sYSk7dGhpcy5KYz0hMTt0aGlzLkc9ITA7dGhpcy5sPUVyKCk7dGhpcy5DPW5ldyBNYXA7dGhpcy5CYz0hMTt0aGlzLkI9bmV3IFR0O3RoaXMuemM9dGhpcy5KPSExO1F1KHRoaXMsYSk7Xy5JKCJlbmFibGVfcnJtX2ludGVyb3AiKSYmYS5ycm1faW50ZXJvcCYmKF8uRSgiUlJNIGludGVyb3AgZW5hYmxlZCIpLHRoaXMudj1uZXcgaHUoZnVuY3Rpb24oZCl7Xy5FKCJSUk0gUmVkaXJlY3QgT0suIFJlc3BvbnNlIHJlY2VpdmVkOiAiK0pTT04uc3RyaW5naWZ5KGQpKTtjLmNhbGxiYWNrJiZjLmNhbGxiYWNrLmNhbGwoYyxkKX0sdGhpcy5kZSksbXUodGhpcy52KSl9O18uSihfLlJ1LF8uQWgpOwp2YXIgUXU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLlY/YS5WLmdldCgibGwiKXx8dm9pZCAwOnZvaWQgMDtpZihjKVN1KGEsYyk7ZWxzZXtpZihjPWIubG9nX2xldmVsIT09dm9pZCAwKWM9Yi5sb2dfbGV2ZWwsYz1jPT09dm9pZCAwfHwoMCxfLmFiKSh2dCxjKT49MDtjJiZTdShhLGIubG9nX2xldmVsKX1hLmdlPWIuYnV0dG9uX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvYnV0dG9uIjthLlZjPWIucGlja2VyX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvc2VsZWN0IjthLndlPWIucHJvbXB0X3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvaWZyYW1lL3NlbGVjdCI7YS5kZD1iLnN0YXR1c191cmx8fCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL3N0YXR1cyI7YS5LPV8uZmQoYS5kZCk7YS5oZT1iLmNvbnRhaW5lcl9jc3NfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9zdHlsZSI7YS5EZT0KYi5yZXZva2VfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9yZXZva2UiO2EudWM9Yi5mZWRjbV91cmx8fCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpLyI7YS5IPWIuZmVkY21fY29uZmlnX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvZmVkY20uanNvbiI7Xy5JKCJlbmFibGVfZmVkY21fY29uZmlnX3NwbGl0IikmJihhLmpiPWIuZmVkY21fcGFzc2l2ZV9jb25maWdfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9mZWRjbS9jb25maWcvcGFzc2l2ZS5qc29uIixhLnFlPWIuZmVkY21fYWN0aXZlX2NvbmZpZ191cmx8fCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2ZlZGNtL2NvbmZpZy9hY3RpdmUuanNvbiIpO2EuUGE9Yi5vYXV0aDJfYXV0aF91cmx8fCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvdjIvYXV0aCI7YS5kZT1iLnJybV9pZnJhbWVfcGF0aHx8Imh0dHBzOi8vbmV3cy5nb29nbGUuY29tL3N3Zy91aS92MS9ycm1naXNpbnRlcm9wIjsKYS5jYWxsYmFjaz1iLmNhbGxiYWNrO2EuUD1iLnJlZGlyZWN0X2NhbGxiYWNrO2EuVD1iLnV4X21vZGU9PT0icmVkaXJlY3QiPyJyZWRpcmVjdCI6InBvcHVwIjtjPWIudWlfbW9kZTtjIT09dm9pZCAwJiZPYmplY3QudmFsdWVzKHR0KS5pbmNsdWRlcyhjKXx8KGM9YS5jb250YWluZXI9PT1kb2N1bWVudC5ib2R5LGM9Xy55ZCgpJiYhXy54ZCgpfHwoYz09PXZvaWQgMHx8YykmJm5zKCkmJndpbmRvdy5pbm5lcldpZHRoPDQyMD8iYm90dG9tX3NoZWV0IjoiY2FyZCIpO2EuTD1jO2EuaWI9Yi5jb2xvcl9zY2hlbWU7YS5jb250YWluZXI9KGIucHJvbXB0X3BhcmVudD9iLnByb21wdF9wYXJlbnQ6Yi5wcm9tcHRfcGFyZW50X2lkP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIucHJvbXB0X3BhcmVudF9pZCk6bnVsbCl8fGRvY3VtZW50LmJvZHk7YS50ZT05RTQ7YS5oYj1iLmNhbmNlbF9vbl90YXBfb3V0c2lkZSE9PSExO2EuQmM9Yi5pdHBfc3VwcG9ydCE9PSExO2Eud2E9Yi51c2VfZmVkY21fZm9yX3Byb21wdD09PQp2b2lkIDA/dm9pZCAwOiEhYi51c2VfZmVkY21fZm9yX3Byb21wdDthLkhlPWIudXNlX2ZlZGNtX2Zvcl9idXR0b249PT12b2lkIDA/dm9pZCAwOiEhYi51c2VfZmVkY21fZm9yX2J1dHRvbjtpZihiLmxpYnJhcnlfbmFtZSYmYi5saWJyYXJ5X25hbWUubGVuZ3RoPjEwMCl0aHJvdyBFcnJvcigiU2EiKTthLkljPWIubGlicmFyeV9uYW1lP2IubGlicmFyeV9uYW1lOnZvaWQgMDtjPWIuc3RhdGVfY29va2llX2RvbWFpbjshY3x8YyE9bnVsbCYmSHUudGVzdChjKXx8KGM9dm9pZCAwKTthLmc9bmV3IHd1KGMsYS5zZSxiLnN0YXRlX2Nvb2tpZV9uYW1lKTtjPWEuZzt2YXIgZD16dShjKSxlPURhdGUubm93KCk7ZC5sYXN0X2xpYnJhcnlfbG9hZF90aW1lJiZkLmJyb3dzaW5nX3Nlc3Npb25faWQ/ZS1kLmxhc3RfbGlicmFyeV9sb2FkX3RpbWU+MThFNSYmKGQuYnJvd3Npbmdfc2Vzc2lvbl9pZD1FcigpLF8uRSgiU2Vzc2lvbiBleHBpcmVkLiBTZXR0aW5nIG5ldyBicm93c2luZyBzZXNzaW9uIGlkLiIpKToKKGQuYnJvd3Npbmdfc2Vzc2lvbl9pZD1FcigpLF8uRSgiU2V0dGluZyBuZXcgYnJvd3Npbmcgc2Vzc2lvbiBpZC4iKSk7aWYoIWQuZXhwZXJpbWVudF92YWx1ZXN8fEZ1KGMpKXtmb3IodmFyIGY9e30sZz1fLnUodnUpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWg9aC52YWx1ZSxmW2hdPUxyKGgpO2QuZXhwZXJpbWVudF92YWx1ZXM9ZjtkLmV4cGVyaW1lbnRfY2FjaGVfdGltZT1lO18uRSgiU2V0dGluZyBuZXcgZXhwZXJpbWVudCB2YWx1ZXMuIil9ZC5sYXN0X2xpYnJhcnlfbG9hZF90aW1lPWU7QXUoYyxkKTtpZihfLkkoImVuYWJsZV9icm93c2luZ19zZXNzaW9uX2lkIikmJihTcj16dShhLmcpLmJyb3dzaW5nX3Nlc3Npb25faWQsYz16dShhLmcpLmV4cGVyaW1lbnRfdmFsdWVzKSlmb3IoYz1fLnUoT2JqZWN0LmVudHJpZXMoYykpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWU9Xy51KGQudmFsdWUpLGQ9ZS5uZXh0KCkudmFsdWUsZT1lLm5leHQoKS52YWx1ZSwKXy5wZihkLGUpO1JyKGEuSyxiLmNsaWVudF9pZCxhLmwsW3tPZDoiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iLFBkOkxyKCJlbmFibGVfaXRwX29wdGltaXphdGlvbiIpfV0pO2EuVWMoYik7Yz17fTtiLmNsaWVudF9pZCE9PXZvaWQgMCYmKGMuY2xpZW50X2lkPWIuY2xpZW50X2lkKTtiLm9yaWdpbiE9PXZvaWQgMCYmKGMub3JpZ2luPWIub3JpZ2luKTtiLmF1dG9fc2VsZWN0IT09dm9pZCAwJiYoYy5hdXRvX3NlbGVjdD1iLmF1dG9fc2VsZWN0KTtiLmJ1dHRvbl9hdXRvX3NlbGVjdCE9PXZvaWQgMCYmKGMuYnV0dG9uX2F1dG9fc2VsZWN0PWIuYnV0dG9uX2F1dG9fc2VsZWN0KTtjLnV4X21vZGU9YS5UO2MudXhfbW9kZT09PSJyZWRpcmVjdCImJmIubG9naW5fdXJpJiYoYy5sb2dpbl91cmk9Yi5sb2dpbl91cmkpO2MudWlfbW9kZT1hLkw7YS5pYiE9PXZvaWQgMCYmKGMuY29sb3Jfc2NoZW1lPWEuaWIpO2IuY29udGV4dCE9PXZvaWQgMCYmT2JqZWN0LnZhbHVlcyhzdCkuaW5jbHVkZXMoYi5jb250ZXh0KSYmCihjLmNvbnRleHQ9Yi5jb250ZXh0KTtpZihiLmxvZ2luX2hpbnQhPT12b2lkIDB8fGIuaGludCE9PXZvaWQgMCljLmhpbnQ9Yi5sb2dpbl9oaW50fHxiLmhpbnQ7aWYoYi5oZCE9PXZvaWQgMHx8Yi5ob3N0ZWRfZG9tYWluIT09dm9pZCAwKWMuaG9zdGVkX2RvbWFpbj1iLmhkfHxiLmhvc3RlZF9kb21haW47Yi5leGlzdGluZyE9PXZvaWQgMCYmKGMuZXhpc3Rpbmc9Yi5leGlzdGluZyk7Yi5zcGVjaWFsX2FjY291bnRzIT09dm9pZCAwJiYoYy5zcGVjaWFsX2FjY291bnRzPWIuc3BlY2lhbF9hY2NvdW50cyk7Yi5ub25jZSE9PXZvaWQgMCYmKGMubm9uY2U9Yi5ub25jZSk7Yi5jaGFubmVsX2lkIT09dm9pZCAwJiYoYy5jaGFubmVsX2lkPWIuY2hhbm5lbF9pZCk7Yi5zdGF0ZSE9PXZvaWQgMCYmKGMuc3RhdGU9Yi5zdGF0ZSk7Xy5PYyE9PSJ3YXJuIiYmKGMubG9nX2xldmVsPV8uT2MpO2IuaGwhPT12b2lkIDAmJihjLmhsPWIuaGwpO2IuZGlzYWJsZV9hdXRvX2ZvY3VzIT09dm9pZCAwJiYKKGMuZGlzYWJsZV9hdXRvX2ZvY3VzPWIuZGlzYWJsZV9hdXRvX2ZvY3VzKTtjLmFzPWEubDtfLkkoImVuYWJsZV9icm93c2luZ19zZXNzaW9uX2lkIikmJihjLmJzPXp1KGEuZykuYnJvd3Npbmdfc2Vzc2lvbl9pZCk7aWYoYi5saWJyYXJ5X25hbWUmJmIubGlicmFyeV9uYW1lLmxlbmd0aD4xMDApdGhyb3cgRXJyb3IoIlNhIik7Yi5saWJyYXJ5X25hbWUhPT12b2lkIDAmJihjLmxpYnJhcnlfbmFtZT1iLmxpYnJhcnlfbmFtZSk7Xy5JKCJycF9jYW5jZWxhYmxlX2F1dG9fc2VsZWN0IikmJihjLmZlYXR1cmU9ImNhbmNlbGFibGVBdXRvU2VsZWN0Iik7aWYoYi5lc3NlbnRpYWxfY2xhaW1zIT09dm9pZCAwKXtlPWIuZXNzZW50aWFsX2NsYWltcztiPXt9O2Q9e307aWYoZSlmb3IoZT1lLnNwbGl0KCIsIiksZj0wO2Y8ZS5sZW5ndGg7ZisrKWRbZVtmXS50cmltKCldPXtlc3NlbnRpYWw6ITB9O2IuaWRfdG9rZW49ZDtjLmNsYWltcz1KU09OLnN0cmluZ2lmeShiKX1hLk1jKGMpO2EubT1jfTsKXy5SdS5wcm90b3R5cGUuVWM9ZnVuY3Rpb24oKXt9O18uUnUucHJvdG90eXBlLk1jPWZ1bmN0aW9uKCl7fTt2YXIgYXQ9ZnVuY3Rpb24oYSl7YS5KY3x8KGEuSmM9ITAsXy5YZih3aW5kb3csIm1lc3NhZ2UiLGZ1bmN0aW9uKGIpe1R1KGEsYi5nKX0sITEpKX0sWHU9ZnVuY3Rpb24oYSl7c2V0VGltZW91dChmdW5jdGlvbigpe2EuRmE9Xy5YZihkb2N1bWVudCwiY2xpY2siLGZ1bmN0aW9uKCl7YS5oYiYmVXUoYSwhMSkmJihWdShhLCJ0YXBfb3V0c2lkZSIpLFd1KGEpLExzKCkmJlhyKCJ0YXBwZWRPdXRzaWRlIikpfSl9KX0sV3U9ZnVuY3Rpb24oYSl7YS5GYSYmKF8uZWcoYS5GYSksYS5GYT12b2lkIDApfTtfLlJ1LnByb3RvdHlwZS54Yz1mdW5jdGlvbigpe3JldHVybiExfTsKdmFyIFl1PWZ1bmN0aW9uKGEpe2lmKF8uSSgiZGlzYWJsZV9mZWRjbSIpfHwhbXMoKXx8IV8uQWQoKSlyZXR1cm4hMTtpZihfLkkoImVuYWJsZV9hY2NvdW50X2xhYmVscyIpJiYhd3QuYWNjb3VudExhYmVsc1Rva2VuKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7Yi5odHRwRXF1aXY9Im9yaWdpbi10cmlhbCI7Yi5jb250ZW50PSJBMGJ3d1lYM0V6RDJBUTE5N1JNQStrZmZ5RTJ2ZXBDVEgwMGJZdXpnK0dCY05yQ0xicjVvWHpPdnBrNWVlaHZ2YUdyOU11Ky9ySDlwS1BKWFI3Nk1uZ29BQUFCMmV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyRmpZMjkxYm5SekxtZHZiMmRzWlM1amIyMDZORFF6SWl3aVptVmhkSFZ5WlNJNklrWmxaRU50UTI5dWRHbHVkV1ZQYmtKMWJtUnNaU0lzSW1WNGNHbHllU0k2TVRjME5EWTNOVEl3TUN3aWFYTlVhR2x5WkZCaGNuUjVJanAwY25WbGZRPT0iO2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoYik7Cnd0LmFjY291bnRMYWJlbHNUb2tlbj0hMH1pZihhLnhjKCl8fG9zKCk9PT0iaHR0cHM6Ly9tZWV0Lmdvb2dsZS5jb20iKXJldHVybiExO2lmKF8uSSgiZW5hYmxlX2ZlZGNtX2dsb2JhbF9leHBlcmltZW50IikpcmV0dXJuIF8uRSgiSW4gRmVkQ00gZ2xvYmFsIGV4cGVyaW1lbnQgZ3JvdXAiKSwhMDtpZihfLkkoImVuYWJsZV9mZWRjbV9nbG9iYWxfY29udHJvbCIpKXJldHVybiBfLkUoIkluIEZlZENNIGdsb2JhbCBjb250cm9sIGdyb3VwIiksITE7aWYoYS5tLmF1dG9fc2VsZWN0JiYhKF8uVWEoIkNocm9taXVtIik+PTEyMSkpcmV0dXJuITE7aWYoXy5JKCJkaXNhYmxlX2ZlZGNtX29wdF9vdXQiKSYmXy5VYSgiQ2hyb21pdW0iKT49MTQyKXJldHVybiEwOyhhPWEud2E9PT0hMSkmJl8uRygiQ3VycmVudGx5LCB5b3UgZGlzYWJsZSBGZWRDTSBvbiBHb29nbGUgT25lIFRhcC4gRmVkQ00gZm9yIE9uZSBUYXAgd2lsbCBiZWNvbWUgbWFuZGF0b3J5IHNvb24sIGFuZCB5b3Ugd29uXHUyMDE5dCBiZSBhYmxlIHRvIGRpc2FibGUgaXQuIFJlZmVyIHRvIHRoZSBtaWdyYXRpb24gZ3VpZGUgdG8gdXBkYXRlIHlvdXIgY29kZSBhY2NvcmRpbmdseSB0byBlbnN1cmUgdXNlcnMgd2lsbCBub3QgYmUgYmxvY2tlZCBmcm9tIGxvZ2dpbmcgaW4uIExlYXJuIG1vcmU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2lkZW50aXR5L2dzaS93ZWIvZ3VpZGVzL2ZlZGNtLW1pZ3JhdGlvbiIpOwpyZXR1cm4hYX0sWnU9ZnVuY3Rpb24oYSl7cmV0dXJuIG1zKCkmJmEuQi5oP18uSSgiZW5hYmxlX2ZlZGNtX2J1dHRvbl9nbG9iYWxfY29udHJvbCIpPyhfLkUoIkluIEZlZENNIGJ1dHRvbiBnbG9iYWwgY29udHJvbCBncm91cCIpLCExKTpfLkkoImVuYWJsZV9mZWRjbV9idXR0b25fZ2xvYmFsX2V4cGVyaW1lbnQiKT8oXy5FKCJJbiBGZWRDTSBidXR0b24gZ2xvYmFsIGV4cGVyaW1lbnQgZ3JvdXAiKSwhMCk6ISFhLkhlOiExfTsKXy5SdS5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpe18uRSgiUHJvY2Vzc2luZyBGZWRDTSBjcmVkZW50aWFsIik7dmFyIGQ9bnVsbDt0cnl7ZD1KU09OLnBhcnNlKGIudG9rZW4pLmlkX3Rva2VufWNhdGNoKGUpe2Q9Yi50b2tlbn1kPXtjcmVkZW50aWFsOmQsc3RhdGU6YyYmYy5zdGF0ZX07ZC5zZWxlY3RfYnk9YT09PSJ3aWRnZXQiP2IuaXNBdXRvU2VsZWN0ZWQ/ImZlZGNtX2F1dG8iOiJmZWRjbSI6Yi5pc0F1dG9TZWxlY3RlZD8iZmVkY21fYnV0dG9uX2F1dG8iOiJmZWRjbV9idXR0b24iOyR1KHtkYXRhOnthbm5vdW5jZW1lbnQ6Xy5abCh7fSl9fSk7Xy5FKCJGZWRDTSByZXNwb25zZSA6IitKU09OLnN0cmluZ2lmeShkKSk7YT09PSJ3aWRnZXQiPyh0aGlzLmNhbGxiYWNrP3RoaXMuY2FsbGJhY2suY2FsbCh0aGlzLGQpOl8uRSgiTm8gY2FsbGJhY2sgZm91bmQgZm9yIEZlZENNIHdpZGdldCBmbG93IiksYXYodGhpcywiY3JlZGVudGlhbF9yZXR1cm5lZCIpKTp0aGlzLlQ9PT0KInBvcHVwIj90aGlzLmNhbGxiYWNrP3RoaXMuY2FsbGJhY2suY2FsbCh0aGlzLGQpOl8uRSgiTm8gY2FsbGJhY2sgZm91bmQgZm9yIEZlZENNIGJ1dHRvbiBwb3B1cCBmbG93Iik6YyYmYy5sb2dpbl91cmk/KGE9e30sYyYmYy5zdGF0ZSYmKGEuc3RhdGU9Yy5zdGF0ZSksZHMoYy5sb2dpbl91cmksYSxkLmNyZWRlbnRpYWwpKTp0aGlzLlA/dGhpcy5QLmNhbGwodGhpcyxkKTpfLkUoIk5vIGNhbGxiYWNrIGZvdW5kIGZvciBGZWRDTSBidXR0b24gcmVkaXJlY3QgZmxvdy4iKTtCdSh0aGlzLmcpfWVsc2UgXy5FKCJGZWRDTSBjcmVkZW50aWFsIGlzIG51bGwiKX07Xy5SdS5wcm90b3R5cGUua2E9ZnVuY3Rpb24oYSxiKXtfLkgoIkZlZENNIGdldCgpIHJlamVjdHMgd2l0aCAiK2IpO2E9PT0id2lkZ2V0IiYmVnUodGhpcywidW5rbm93bl9yZWFzb24iKX07CnZhciBidj1mdW5jdGlvbihhKXthLko9ITA7dmFyIGI9e2FzOmEubCx0b3Bfb3JpZ2luOnBzKCk/b3MoKTp2b2lkIDAsbGlicmFyeV9uYW1lOmEubS5saWJyYXJ5X25hbWU/YS5tLmxpYnJhcnlfbmFtZTp2b2lkIDAscmVzcG9uc2VfdHlwZToiaWRfdG9rZW4iLHNzX2RvbWFpbjphLm0ub3JpZ2lufHxsb2NhdGlvbi5vcmlnaW4sc2NvcGU6ImVtYWlsIHByb2ZpbGUgb3BlbmlkIixub25jZTphLm0ubm9uY2U/YS5tLm5vbmNlOiJub3RfcHJvdmlkZWQiLHN0YXRlOmEubS5zdGF0ZX07YS5tLmNsYWltcyYmKGIuY2xhaW1zPWEubS5jbGFpbXMpO1Z0KGEuQix7TGM6YS51YyxyYjpfLkkoImVuYWJsZV9mZWRjbV9jb25maWdfc3BsaXQiKT9hLmpiOmEuSCxtOmEubSxJYTohIWEubS5hdXRvX3NlbGVjdCxmYTphLmZhLmJpbmQoYSksa2E6ZnVuY3Rpb24oYyxkKXtScihhLkssYS5pLmNsaWVudF9pZCxhLmwpO3ZhciBlPWRvY3VtZW50LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucz9kb2N1bWVudC5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMubGVuZ3RoOgowO2U9ZT4wP2RvY3VtZW50LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2luc1tlLTFdOiIiO3ZhciBmPVtkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCwiLy8iLGRvY3VtZW50LmxvY2F0aW9uLmhvc3RdLmpvaW4oIiIpO2QubWVzc2FnZS5pbmRleE9mKCJpZGVudGl0eS1jcmVkZW50aWFscy1nZXQiKT49MCYmWnIoImZhaWxlZFdpdGhJZnJhbWVHZXRQZXJtaXNzaW9uIiwiaWZyYW1lT3JpZ2luPSIrZiwicGF0aD0iK2RvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLCJ0b3BPcmlnaW49IitlKTtkLm1lc3NhZ2UuaW5kZXhPZigiQ29udGVudCBTZWN1cml0eSBQb2xpY3kiKT49MCYmWnIoImZhaWxlZFdpdGhDc3AiLCJpZnJhbWVPcmlnaW49IitmLCJwYXRoPSIrZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsInRvcE9yaWdpbj0iK2UpO2Eua2EoYyxkKX0sb2U6ZnVuY3Rpb24oKXthLko9ITF9LFJhOmJ9KTtYdShhKX07Cl8uUnUucHJvdG90eXBlLnZhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMudiYmcnUodGhpcy52KT8oXy5FKCJSUk0gaW50ZXJvcCBhY3RpdmUsIGRlZmVycmluZyBwcm9tcHQiKSxzdSh0aGlzLnYsZnVuY3Rpb24oKXtjdihkLGEsYixjKX0pKTpjdih0aGlzLGEsYixjKX07CmN2PWZ1bmN0aW9uKGEsYixjLGQpe2M9T2JqZWN0LmFzc2lnbih7fSxhLmksYyk7UXUoYSxjKTtjPWEubS51aV9tb2RlPT09ImJvdHRvbV9zaGVldCI/ImJvdHRvbVNoZWV0IjoiY2FyZCI7THMoKSYmV3IoYywiYXBpQ2FsbCIpO25zKCkmJl8uRygiWW91ciBjbGllbnQgYXBwbGljYXRpb24gbWF5IG5vdCBkaXNwbGF5IEdvb2dsZSBPbmUgVGFwIHdoZW4gRmVkQ00gYmVjb21lcyBtYW5kYXRvcnkuIE9wdC1pbiB0byBGZWRDTSB0byB0ZXN0IHRoYXQgeW91IGhhdmUgdGhlIHByb3BlciBjcm9zcy1vcmlnaW4gcGVybWlzc2lvbiBwb2xpY3kgc2V0IHVwLiBJZ25vcmUgdGhpcyBtZXNzYWdlIGlmIE9uZSBUYXAgaXMgZGlzcGxheWVkIGFmdGVyIG9wdC1pbiB0byBGZWRDTS4gTGVhcm4gbW9yZTogKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2lkZW50aXR5L2dzaS93ZWIvZ3VpZGVzL2ZlZGNtLW1pZ3JhdGlvbj9zPWRjI2Nyb3NzX29yaWdpbikiKTtpZih3aW5kb3cubG9jYXRpb24uaHJlZi5zdGFydHNXaXRoKCJjaHJvbWUtZXh0ZW5zaW9uOi8vIikpXy5HKCJBdHRlbXB0ZWQgdG8gc3RhcnQgc2lnbiBpbiBmbG93IGluc2lkZSBjaHJvbWUgZXh0ZW5zaW9uLiIpLApXcihjLCJjaHJvbWVFeHRlbnNpb24iKTtlbHNlIGlmKFV1KGEsITApJiYoYXYoYSwiZmxvd19yZXN0YXJ0ZWQiKSxMcygpJiZYcigiZmxvd1Jlc3RhcnRlZCIpKSxiJiYhYS56YyYmKF8uRygiWW91ciBjbGllbnQgYXBwbGljYXRpb24gdXNlcyBvbmUgb2YgdGhlIEdvb2dsZSBPbmUgVGFwIHByb21wdCBVSSBzdGF0dXMgbWV0aG9kcyB0aGF0IG1heSBzdG9wIGZ1bmN0aW9uaW5nIHdoZW4gRmVkQ00gYmVjb21lcyBtYW5kYXRvcnkuIFJlZmVyIHRvIHRoZSBtaWdyYXRpb24gZ3VpZGUgdG8gdXBkYXRlIHlvdXIgY29kZSBhY2NvcmRpbmdseSBhbmQgb3B0LWluIHRvIEZlZENNIHRvIHRlc3QgeW91ciBjaGFuZ2VzLiBMZWFybiBtb3JlOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9pZGVudGl0eS9nc2kvd2ViL2d1aWRlcy9mZWRjbS1taWdyYXRpb24/cz1kYyNkaXNwbGF5X21vbWVudCBhbmQgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vaWRlbnRpdHkvZ3NpL3dlYi9ndWlkZXMvZmVkY20tbWlncmF0aW9uP3M9ZGMjc2tpcHBlZF9tb21lbnQiKSwKYS56Yz0hMCksYS5vPWIsYS52Yz1kLGEubS5jbGllbnRfaWQpaWYoXy5JKCJ1bnN1cHBvcnRlZF9icm93c2VyIikpXy5GKCJPbmUgVGFwIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBVc2VyIEFnZW50LiIpLGEuaigiYnJvd3Nlcl9ub3Rfc3VwcG9ydGVkIiksXy5EaChhLCJwcm9tcHRfZGlzcGxheV9mYWlsZWQiLHtjYXVzZToiVW5zdXBwb3J0ZWQgdXNlciBhZ2VudCBmb3Igb25lIHRhcC4ifSksV3IoYywidW5zdXBwb3J0ZWRCcm93c2VyIik7ZWxzZSBpZihFdShhLmcpKV8uRigiVXNlciBoYXMgY2xvc2VkIE9uZSBUYXAgYmVmb3JlLiBTdGlsbCBpbiB0aGUgY29vbCBkb3duIHBlcmlvZC4iKSxhLmooInN1cHByZXNzZWRfYnlfdXNlciIpLF8uRGgoYSwicHJvbXB0X2Rpc3BsYXlfZmFpbGVkIix7Y2F1c2U6IlByb21wdCBkaXNhYmxlZCBieSB0aGUgdXNlci4ifSksV3IoYywiY29vbGRvd24iLCh6dShhLmcpLnByb21wdF9zdXBwcmVzc19sZXZlbHx8MCkudG9TdHJpbmcoKSk7ZWxzZSBpZihZdShhKSlfLkkoImVuYWJsZV9mZWRjbV9jb25maWdfc3BsaXQiKT8KZHYoYSxmdW5jdGlvbihmKXtmJiZfLkpiKF8uTChmLDkpKT8oXy5FKCJBbGwgYWNjb3VudHMgYXJlIG9wdGVkIG91dC4iKSxhLmooIm9wdF9vdXRfb3Jfbm9fc2Vzc2lvbiIpLF8uRGgoYSwicHJvbXB0X2Rpc3BsYXlfZmFpbGVkIix7Y2F1c2U6IkFsbCBhY2NvdW50cyBhcmUgb3B0ZWQgb3V0LiJ9KSk6YnYoYSl9KTpidihhKTtlbHNle3ZhciBlPV8ueWsoKSYmYS5CYzthLm0uaXNfaXRwPWU7Xy55aygpJiZhLkw9PT0iYm90dG9tX3NoZWV0IiYmKGEubS5wcm9tcHRfdWk9TXIoKSxhLm0uYXV0b19kaXNtaXNzX2R1cmF0aW9uX21zPUpzKCkpO2R2KGEsZnVuY3Rpb24oZil7ZGVsZXRlIGEubS5pc19pdHA7aWYoZilpZihfLlZlKGYsXy56aCwyKSlfLm5oKF8uTShmLF8uemgsMikpLGY9Xy5NKGYsXy56aCwyKSxmPV8uTyhmLDEpLGEuaihmPT09Mj8ib3B0X291dF9vcl9ub19zZXNzaW9uIjpmPT09Nz8ic2VjdXJlX2h0dHBfcmVxdWlyZWQiOmY9PT01PyJ1bnJlZ2lzdGVyZWRfb3JpZ2luIjoKZj09PTN8fGY9PT00PyJpbnZhbGlkX2NsaWVudCI6Zj09PTk/ImJyb3dzZXJfbm90X3N1cHBvcnRlZCI6Zj09PTEyPyJ3ZWJfdmlld19ub3Rfc3VwcG9ydGVkIjoidW5rbm93bl9yZWFzb24iKSxfLkRoKGEsInByb21wdF9kaXNwbGF5X2ZhaWxlZCIse2NhdXNlOiJFcnJvciB3aGlsZSBjaGVja2luZyBmb3IgdGhlIGNyZWRlbnRpYWwgc3RhdHVzLiJ9KTtlbHNlIGlmKF8uSmIoXy5MKGYsMykpKV8uTShmLF8uUmssMSkmJihhLm0uYXM9Xy5nbShfLk0oZixfLlJrLDEpKXx8YS5tLmFzKSxldihhKSxLcygpfHxmdihhKSxndihhKSxYdShhKTtlbHNle3ZhciBnPV8uSSgiZW5hYmxlX2l0cF9mbGFnX29uX2NoZWNrX2NyZWRlbnRpYWxfc3RhdHVzIik7Zz0hZ3x8ZyYmXy5KYihfLkwoZiw0KSk7ZSYmZz8oXy5NKGYsXy5SaywxKSYmKGEubS5hcz1fLmdtKF8uTShmLF8uUmssMSkpfHxhLm0uYXMpLGEubS5pc19pdHA9ITAsZXYoYSksS3MoKXx8ZnYoYSksZ3YoYSksWHUoYSksZGVsZXRlIGEubS5pc19pdHApOgooXy5FKCJObyBzZXNzaW9ucyBmb3VuZCBpbiB0aGUgYnJvd3Nlci4iKSxhLmooIm9wdF9vdXRfb3Jfbm9fc2Vzc2lvbiIpLF8uRGgoYSwicHJvbXB0X2Rpc3BsYXlfZmFpbGVkIix7Y2F1c2U6Ik5vIHNpZ25lZCBpbiBHb29nbGUgYWNjb3VudHMgYXZhaWxhYmxlLiJ9KSl9ZWxzZSBfLkUoIkludmFsaWQgcmVzcG9uc2UgZnJvbSBjaGVjayBjcmVkZW50aWFsIHN0YXR1cy4iKSxhLmooInVua25vd25fcmVhc29uIiksXy5EaChhLCJwcm9tcHRfZGlzcGxheV9mYWlsZWQiLHtjYXVzZToiQSBuZXR3b3JrIGVycm9yIHdhcyBlbmNvdW50ZXJlZCB3aGlsZSBjaGVja2luZyBmb3IgdGhlIGNyZWRlbnRpYWwgc3RhdHVzLiJ9KX0pfWVsc2UgXy5IKCJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcjogY2xpZW50X2lkLiIpLGEuaigibWlzc2luZ19jbGllbnRfaWQiKSxfLkRoKGEsInByb21wdF9kaXNwbGF5X2ZhaWxlZCIse2NhdXNlOiJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcjogY2xpZW50X2lkLiJ9KSwKV3IoYywibm9DbGllbnRJZCIpfTsKZnQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9T2JqZWN0LmFzc2lnbih7fSxjKTtIdD1IdHx8bmV3IEl0O0p0KEh0LEt0KXx8ZS50aGVtZSE9PSJvdXRsaW5lX2RhcmsifHwoZGVsZXRlIGUudGhlbWUsXy5FKCJPdXRsaW5lIGRhcmsgdGhlbWUgaXMgbm90IGVuYWJsZWQuIikpO18udGwoYik7Xy5JaShiKTt2YXIgZj1FcygpO2M9bmV3IF8uaGQoYS5nZSk7dmFyIGc9T2JqZWN0LmFzc2lnbih7fSxlKSxoPV8uc2YoZG9jdW1lbnQsImRpdiIpO2guY2xhc3NMaXN0LmFkZCgiUzlnVXJmLVlvWjRqZiIpO2guc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjtiLmFwcGVuZENoaWxkKGgpO2I9aHYoYSxoLGUsZik7ZD17aWZyYW1lSWQ6Zix5YTpkLENjOmUuY2xpY2tfbGlzdGVuZXIsU2I6YixkYXRhOntub25jZTpnLm5vbmNlfHxhLmkubm9uY2Usc3RhdGU6Zy5zdGF0ZXx8YS5pLnN0YXRlfX07YS5DLnNldChmLGQpO2RlbGV0ZSBnLm5vbmNlO2RlbGV0ZSBnLnN0YXRlO2cuaGludD1nLmxvZ2luX2hpbnR8fApnLmhpbnR8fGEuaS5sb2dpbl9oaW50fHxhLmkuaGludDtnLmhpbnR8fGRlbGV0ZSBnLmhpbnQ7ZGVsZXRlIGcubG9naW5faGludDtnLmhvc3RlZF9kb21haW49Zy5oZHx8Zy5ob3N0ZWRfZG9tYWlufHxhLmkuaGR8fGEuaS5ob3N0ZWRfZG9tYWluO2cuaG9zdGVkX2RvbWFpbnx8ZGVsZXRlIGcuaG9zdGVkX2RvbWFpbjtkZWxldGUgZy5oZDtnLmlzX2ZlZGNtX3N1cHBvcnRlZD1tcygpJiZhLkIuaDtpZihfLkkoImVuYWJsZV9mZWRjbV9idXR0b25fZ2xvYmFsX2NvbnRyb2wiKXx8Xy5JKCJlbmFibGVfZmVkY21fYnV0dG9uX2dsb2JhbF9leHBlcmltZW50IikpZy5mZWRjbV9idXR0b25fZXhwZXJpbWVudF9hcm09Xy5JKCJlbmFibGVfZmVkY21fYnV0dG9uX2dsb2JhbF9leHBlcmltZW50Iik/MTowO2I9Xy53ayhnKTtiLnNldCgiY2xpZW50X2lkIixhLmkuY2xpZW50X2lkKTtiLnNldCgiaWZyYW1lX2lkIixmKTtiLnNldCgiY2FzIixhLmwpO2cubG9jYWxlJiYoYi5zZXQoImhsIixnLmxvY2FsZSksCl8uRWYoYiwibG9jYWxlIikpO18uT2MhPT0id2FybiImJmIuc2V0KCJsb2dfbGV2ZWwiLF8uT2MpO18ua2QoYyxiKTt2YXIgaz12b2lkIDA7Xy5JKCJlbmFibGVfZmVkY21fYmx1ZWRvZ19wb2MiKSYmKGs9WXQoYS5ILGEubSksXy5YZihrLCJvbnRva2VuIixmdW5jdGlvbigpe3ZhciBtPWsuY3JlZGVudGlhbCgpO20/YS5jYWxsYmFja3x8YS5QPyhtPXtjcmVkZW50aWFsOm0sc2VsZWN0X2J5OiJmZWRjbSJ9LGEuY2FsbGJhY2s/KGEuY2FsbGJhY2suY2FsbChhLG0pLF8uRSgiUmV0dXJuaW5nIHRva2VuIHRvIGNhbGxiYWNrLiIsIkxvZ2luIGVsZW1lbnQiKSk6YS5QJiYoYS5QLmNhbGwoYSxtKSxfLkUoIlJlZGlyZWN0aW5nIHdpdGggdG9rZW4uIiwiTG9naW4gZWxlbWVudCIpKSk6Xy5HKCJObyBjYWxsYmFjayBwcm92aWRlZCB0byBoYW5kbGUgdG9rZW4uIiwiTG9naW4gZWxlbWVudCIpOl8uRygiVG9rZW4gaXMgZW1wdHkuIiwiTG9naW4gZWxlbWVudCIpfSkpO2c9Xy5hbSgpO2M9QnMoaCwKYy50b1N0cmluZygpLGYsZyxrKTtkLlhhPWMuWGE7ZyYmYy5rZCYmbHMoYy5rZCxmdW5jdGlvbihtKXttLnByZXZlbnREZWZhdWx0KCk7bS5zdG9wUHJvcGFnYXRpb24oKTtpdihhLGYpfSk7Xy5JKCJlbmFibGVfZmVkY21fYmx1ZWRvZ19wb2MiKSYmYS5DLnNpemU9PT0xJiZYdChhLkgsYS5tKX07aHY9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Xy5zZihkb2N1bWVudCwiZGl2Iik7Yi5hcHBlbmRDaGlsZChlKTtpZihIcyhiKSl7dmFyIGY9Xy5RKCJnb29nbGVpZGVudGl0eXNlcnZpY2VfYnV0dG9uX3N0eWxlcyIpO2I9SHMoYik7ZiYmYiYmIWIuZ2V0RWxlbWVudEJ5SWQoImdvb2dsZWlkZW50aXR5c2VydmljZV9idXR0b25fc3R5bGVzIikmJmIuYXBwZW5kQ2hpbGQoZi5jbG9uZU5vZGUoITApKX1jPW5ldyBldShlLGMsZnVuY3Rpb24oKXtpdihhLGQpfSk7ZnUoYyk7cmV0dXJuIGN9Owpqdj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuQy5nZXQoYik7aWYoYyYmYy5TYil7dmFyIGQ9Yy5TYjtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtkLmRpc3Bvc2UoKTtjLlNiPXZvaWQgMDthOntpZihwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSl7dmFyIGU9cGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpO2lmKGUubGVuZ3RoPjApe2U9ZVswXS5kb21Db21wbGV0ZTticmVhayBhfX1lPXBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS50aW1pbmcmJnBlcmZvcm1hbmNlLnRpbWluZy5kb21Db21wbGV0ZSYmcGVyZm9ybWFuY2UudGltZU9yaWdpbj9wZXJmb3JtYW5jZS50aW1pbmcuZG9tQ29tcGxldGUtcGVyZm9ybWFuY2UudGltZU9yaWdpbjp2b2lkIDB9ZSYmVHIobmV3IFVyKCJidXR0b24iLHZvaWQgMCwicmVuZGVyZWQiLCJsYXRlbmN5IixNYXRoLmZsb29yKGQuaS0KZSkudG9TdHJpbmcoKSxNYXRoLmZsb29yKGQuai1lKS50b1N0cmluZygpLE1hdGguZmxvb3IoZC5zdGFydFRpbWUtZSkudG9TdHJpbmcoKSksMSl9KX0pfX07aXY9ZnVuY3Rpb24oYSxiKXtfLkUoIlByb2Nlc3NpbmcgY2xpY2sgZm9yIGJ1dHRvbjogIitiKyIuIik7aWYoYil7dmFyIGM9Xy5RKGIpLGQ9YS5DLmdldChiKTtjfHxfLkYoIlRoZSBpZnJhbWUgY29udGFpbmluZyB0aGUgYnV0dG9uIHdhcyBub3QgZm91bmQgd2l0aGluIHRoZSBwYWdlLiIpO2Q/ZC55YT8oZC55YShkLmRhdGEpLF8uRSgiQ3VzdG9tIGhhbmRsZXIgY2FsbGVkIGZvciBidXR0b246ICIrYisiLiIpKTooYj17fSxkLmRhdGEubm9uY2UmJihiLm5vbmNlPWQuZGF0YS5ub25jZSksZC5kYXRhLnN0YXRlJiYoYi5zdGF0ZT1kLmRhdGEuc3RhdGUpLF8ua3YoYSxiLGQuZGF0YT9kLmRhdGEuc2Vzc2lvbklkOnZvaWQgMCksZC5DYyYmZC5DYyhPYmplY3QuYXNzaWduKHt9LGQuZGF0YSkpKTpfLkgoIkEgYnV0dG9uIGVudHJ5IHdhcyBub3QgZm91bmQgZm9yIHRoZSBnaXZlbiBpZC4iKX19OwpfLmt2PWZ1bmN0aW9uKGEsYixjKXtVdShhLCEwKSYmKGF2KGEsImZsb3dfcmVzdGFydGVkIiksWHIoImJ1dHRvbkZsb3dTdGFydGVkIikpO2I9T2JqZWN0LmFzc2lnbih7fSxhLmksYik7UXUoYSxiKTtadShhKT8oYS5KPSEwLGM9e2FzOmN8fGEubCxzdGF0ZTpiLnN0YXRlLGxvZ2luX3VyaTphLm0ubG9naW5fdXJpLHJlc3BvbnNlX3R5cGU6ImlkX3Rva2VuIixzc19kb21haW46YS5tLm9yaWdpbnx8bG9jYXRpb24ub3JpZ2luLHNjb3BlOiJlbWFpbCBwcm9maWxlIG9wZW5pZCIsbm9uY2U6YS5tLm5vbmNlP2EubS5ub25jZToibm90X3Byb3ZpZGVkIn0sV3QoYS5CLHtMYzphLnVjLHJiOl8uSSgiZW5hYmxlX2ZlZGNtX2NvbmZpZ19zcGxpdCIpP2EucWU6YS5ILG06YS5tLElhOiEhYS5tLmJ1dHRvbl9hdXRvX3NlbGVjdCxmYTphLmZhLmJpbmQoYSksa2E6YS5rYS5iaW5kKGEpLG9lOmZ1bmN0aW9uKCl7YS5KPSExfSxSYTpjfSkpOmEuVD09PSJyZWRpcmVjdCI/bHYoYSxjKTptdihhLGMpfTsKbHY9ZnVuY3Rpb24oYSxiKXthLm0uYXM9Ynx8YS5sO2EubS5sb2dpbl91cml8fChhLm0ubG9naW5fdXJpPWxvY2F0aW9uLnByb3RvY29sKyIvLyIrbG9jYXRpb24uaG9zdCtsb2NhdGlvbi5wYXRobmFtZSk7YS5tLmdfY3NyZl90b2tlbj0kcigpO2EubS5vcmlnaW49YS5tLm9yaWdpbnx8bG9jYXRpb24ub3JpZ2luO2lmKF8uSSgiZW5hYmxlX2dpc19vYXV0aF9idXR0b25fZmxvd19yZWRpcmVjdCIpKXtiPXthczphLm0uYXMsY2xpZW50X2lkOmEubS5jbGllbnRfaWQsc2NvcGU6Im9wZW5pZCBlbWFpbCBwcm9maWxlIixyZXNwb25zZV90eXBlOiJpZF90b2tlbiIsbm9uY2U6YS5tLm5vbmNlLGdzaXdlYnNkazoiZ2lzX2F0dHJpYnV0ZXMiLHJlZGlyZWN0X3VyaTphLm0ubG9naW5fdXJpLHJlc3BvbnNlX21vZGU6ImZvcm1fcG9zdCIsZGlzcGxheToicGFnZSJ9O2EubS5zdGF0ZSYmKGIuc3RhdGU9YS5tLnN0YXRlKTthLm0uaGludCYmKGIubG9naW5faGludD1hLm0uaGludCk7YS5tLmhvc3RlZF9kb21haW4mJgooYi5oZD1hLm0uaG9zdGVkX2RvbWFpbik7Xy5JKCJkaXNhYmxlX3Byb21wdF9zZWxlY3RfYWNjb3VudCIpfHwoYi5wcm9tcHQ9InNlbGVjdF9hY2NvdW50Iik7YS5tLmNsYWltcyYmKGIuY2xhaW1zPWEubS5jbGFpbXMpO3ZhciBjPV8uemsobmV3IF8uRGksXy51aygiYnRuIikpO2M9Xy5SKGMsNCxhLm0uZ19jc3JmX3Rva2VuKTtjPV8uUihjLDUsYS5tLmFzKTtjPV8uUyhjLDcsMik7Yz1fLlIoYywxMSx3aW5kb3cubG9jYXRpb24uaHJlZik7YS5tLnN0YXRlJiZfLlIoYywxMCxhLm0uc3RhdGUpO2EubS5saWJyYXJ5X25hbWUmJihfLlIoYywxMixhLm0ubGlicmFyeV9uYW1lKSxiLmxpYnJhcnlfbmFtZT1hLm0ubGlicmFyeV9uYW1lKTtiLmdpc19wYXJhbXM9Xy5mYihjLmgoKSw0KTtfLmppKElyKF8ueGsoYS5QYSxiKSkpfWVsc2UgXy5qaShJcihfLnhrKGEuVmMsYS5tKSkpfTsKbXY9ZnVuY3Rpb24oYSxiKXthLnU9Xy53ZCgpO2EubS5hcz1ifHxhLmw7YS5tLmNoYW5uZWxfaWQ9Xy5xaShhLnUpO2EubS5vcmlnaW49YS5tLm9yaWdpbnx8bG9jYXRpb24ub3JpZ2luO2lmKF8uSSgiZW5hYmxlX2dpc19vYXV0aF9idXR0b25fZmxvd19wb3B1cCIpKXtiPXthczphLm0uYXMsY2xpZW50X2lkOmEubS5jbGllbnRfaWQsc2NvcGU6Im9wZW5pZCBlbWFpbCBwcm9maWxlIixyZXNwb25zZV90eXBlOiJpZF90b2tlbiIsbm9uY2U6YS5tLm5vbmNlLGdzaXdlYnNkazoiZ2lzX2F0dHJpYnV0ZXMiLHJlZGlyZWN0X3VyaToiZ2lzX3RyYW5zZm9ybSIscmVzcG9uc2VfbW9kZToiZm9ybV9wb3N0IixvcmlnaW46YS5tLm9yaWdpbixkaXNwbGF5OiJwb3B1cCJ9O2EubS5zdGF0ZSYmKGIuc3RhdGU9YS5tLnN0YXRlKTthLm0uaGludCYmKGIubG9naW5faGludD1hLm0uaGludCk7YS5tLmhvc3RlZF9kb21haW4mJihiLmhkPWEubS5ob3N0ZWRfZG9tYWluKTtfLkkoImRpc2FibGVfcHJvbXB0X3NlbGVjdF9hY2NvdW50Iil8fAooYi5wcm9tcHQ9InNlbGVjdF9hY2NvdW50Iik7YS5tLmNsYWltcyYmKGIuY2xhaW1zPWEubS5jbGFpbXMpO3ZhciBjPV8uemsobmV3IF8uRGksXy51aygiYnRuIikpO2M9Xy5SKGMsNCxhLm0uZ19jc3JmX3Rva2VuKTtjPV8uUihjLDUsYS5tLmFzKTtjPV8uUyhjLDcsMSk7Yz1fLlIoYyw4LGEubS5jaGFubmVsX2lkKTthLm0uc3RhdGUmJl8uUihjLDEwLGEubS5zdGF0ZSk7YS5tLmxpYnJhcnlfbmFtZSYmKF8uUihjLDEyLGEubS5saWJyYXJ5X25hbWUpLGIubGlicmFyeV9uYW1lPWEubS5saWJyYXJ5X25hbWUpO2IuZ2lzX3BhcmFtcz1fLmZiKGMuaCgpLDQpO2M9YS5tLmNoYW5uZWxfaWQ7dmFyIGQ9YS5tLmdfY3NyZl90b2tlbixlPWEubS5hczt2YXIgZj1GcihiLmdpc19wYXJhbXMpO3RyeXt2YXIgZz1ydChmKTt2YXIgaD1nP18uQmkoZyk9PT0oZD9kOiIiKSYmXy5YZShnLDUpPT09KGU/ZToiIikmJl8ud2koZyw3KT09PTEmJl8uWGUoZyw4KT09PShjP2M6IiIpOiExfWNhdGNoKGspe18uRygidmFsaWRhdGVUcmFuc2Zvcm1MYXllclBheWxvYWQgZmFpbGVkIiksCmg9ITF9aHx8VHIobmV3IFVyKCJidXR0b24iLCJwb3B1cCIsImNsaWNrZWQiLCJiYXNlNjRfZ2lzX3BhcmFtc192YWxpZGF0aW9uX2ZhaWxlZCIsIm9yaWdpbj0iK2EubS5vcmlnaW4sImNsaWVudElkPSIrYS5tLmNsaWVudF9pZCwiZ2lzUGFyYW1zPSIrYi5naXNfcGFyYW1zKSk7Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0Iik/KGIuZ2lzbHA9IjEiLGIudXBzdHJlYW1fZXhwZXJpbWVudF9pZD0iMTE3Nzg4NjM2Iik6Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0X2NvbnRyb2wiKSYmKGIuZ2lzbHA9IjAiLGIudXBzdHJlYW1fZXhwZXJpbWVudF9pZD0iMTE3Nzg4NjM1Iik7aWYoXy5KZChfLnhrKGEuUGEsYiksUHUsXy5IZCgpKSlyZXR1cm47VHIobmV3IFVyKCJidXR0b24iLCJwb3B1cCIsImNsaWNrZWQiLCJvYXV0aFBvcHVwTm90T3BlbmVkIikpfV8uSmQoXy54ayhhLlZjLGEubSksUHUsXy5IZCgpKXx8VHIobmV3IFVyKCJidXR0b24iLCJwb3B1cCIsImNsaWNrZWQiLAoicG9wdXBOb3RPcGVuZWQiKSl9OwpVdT1mdW5jdGlvbihhLGIpe2lmKGEuSilyZXR1cm4gYj1hLkIsXy5FKCJBYm9ydGluZyBjdXJyZW50IEZlZENNIGZsb3cuIiksYi5nPyhiPWIuZyxfLkUoIkFib3J0aW5nIEZlZENNIGZsb3cuIGNhbGxJZCAiK2IuZyksYi5oPyhiLmguYWJvcnQoKSxfLkUoIkZlZENNIGZsb3cgYWJvcnRlZC4gY2FsbElkICIrYi5nKSxiLmg9dm9pZCAwLGI9ITApOihfLkUoIk5vIEZlZENNIGZsb3cgdG8gYWJvcnQuIGNhbGxJZCAiK2IuZyksYj0hMSkpOihfLkUoIk5vIEZlZENNIGZsb3cgdG8gYWJvcnQuIiksYj0hMSksYj8oV3UoYSksITApOiExO2lmKEhzKGEuY29udGFpbmVyKSl2YXIgYz0hYS5EO2Vsc2UgYz1hLmNvbnRhaW5lcixjPSEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNyZWRlbnRpYWxfcGlja2VyX2lmcmFtZSIpfHxjJiZkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3JlZGVudGlhbF9waWNrZXJfY29udGFpbmVyIikpO2lmKGMpcmV0dXJuITE7aWYoIWImJmEuRylyZXR1cm4gXy5GKCJDYW5jZWwgcHJvbXB0IHJlcXVlc3QgaWdub3JlZC4gVGhlIHByb21wdCBpcyBpbiBhIHByb3RlY3RlZCBzdGF0ZS4iKSwKITE7SHMoYS5jb250YWluZXIpPygoYj1hLkQpJiZiLnBhcmVudEVsZW1lbnQ/KGIucGFyZW50RWxlbWVudC5pZD09PSJjcmVkZW50aWFsX3BpY2tlcl9jb250YWluZXIiJiZiLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudD9iLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChiLnBhcmVudEVsZW1lbnQpOmIucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChiKSxiPSEwKTpiPSExLGI9IWIpOmI9IXdzKGEuY29udGFpbmVyKTtpZihiKXJldHVybiBfLkYoIkZhaWxlZCB0byByZW1vdmUgcHJvbXB0IGlmcmFtZS4iKSwhMTtwdChhKTthLkc9ITA7YS5EPXZvaWQgMDtXdShhKTtyZXR1cm4hMH07Xy5SdS5wcm90b3R5cGUuaj1mdW5jdGlvbihhKXtudih0aGlzLCExLGEpfTsKdmFyIGd2PWZ1bmN0aW9uKGEpe2lmKGEuTD09PSJib3R0b21fc2hlZXQiKXt2YXIgYj1hLmc7YTpzd2l0Y2goTHIoImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uIikpe2Nhc2UgMTM6Y2FzZSAxNTpjYXNlIDE2OmNhc2UgMTc6Y2FzZSAyNDp2YXIgYz1fLnlrKCk7YnJlYWsgYTtkZWZhdWx0OmM9ITF9aWYoYyl7Xy5FKCJTdGFydGluZyBtaW5pbXVtIGdhcC4iKTtjPXp1KGIpO3ZhciBkPUd1KCk7ZD0obmV3IERhdGUpLmdldFRpbWUoKStkKjFFMzt2YXIgZTtjLmRpc2FibGVfYXV0b19wcm9tcHQ9TWF0aC5tYXgoKGU9Yy5kaXNhYmxlX2F1dG9fcHJvbXB0KSE9bnVsbD9lOjAsZCk7QXUoYixjKX19bnYoYSwhMCl9LG52PWZ1bmN0aW9uKGEsYixjKXtpZihhLm8pe3ZhciBkPWEubztifHwoYS5vPXZvaWQgMCk7dmFyIGU9bmV3IGd1KCJkaXNwbGF5Iik7ZS5oPWI7Ynx8KGUuaj1jfHwidW5rbm93bl9yZWFzb24iKTtkLmNhbGwoYSxlKX19LFZ1PWZ1bmN0aW9uKGEsYil7aWYoYS5vKXt2YXIgYz0KYS5vO2Eubz12b2lkIDA7dmFyIGQ9bmV3IGd1KCJza2lwcGVkIik7ZC5sPWI7Yy5jYWxsKGEsZCl9fSxhdj1mdW5jdGlvbihhLGIpe2lmKGEubyl7dmFyIGM9YS5vO2Eubz12b2lkIDA7dmFyIGQ9bmV3IGd1KCJkaXNtaXNzZWQiKTtkLmk9YjtjLmNhbGwoYSxkKX19LG92PWZ1bmN0aW9uKGEsYil7YS52YyYmYS52Yy5jYWxsKGEse3R5cGU6YixtZXNzYWdlOnZvaWQgMH0pfSxkdj1mdW5jdGlvbihhLGIpe3ZhciBjPXtjbGllbnRfaWQ6YS5tLmNsaWVudF9pZH07YS5tLmhpbnQmJihjLmhpbnQ9YS5tLmhpbnQpO2EubS5ob3N0ZWRfZG9tYWluJiYoYy5ob3N0ZWRfZG9tYWluPWEubS5ob3N0ZWRfZG9tYWluKTthLm0uYXMmJihjLmNhcz1hLm0uYXMpO2EubS5icyYmKGMuYnM9YS5tLmJzKTthLndhIT09dm9pZCAwJiYoYy5oYXNfb3B0ZWRfb3V0X2ZlZGNtPSFhLndhKTthLm0uaXNfaXRwIT09dm9pZCAwJiYoYy5pc19pdHA9YS5tLmlzX2l0cCk7YS5tLnByb21wdF91aSE9PXZvaWQgMCYmCihjLnByb21wdF91aT1hLm0ucHJvbXB0X3VpKTtjPV8ueGsoYS5kZCxjKTthcyhjLGZ1bmN0aW9uKGQpe2QmJmQhPT0ibnVsbCI/KGQ9TnQoSlNPTi5zdHJpbmdpZnkoXy5vayhkKSkpLGIoZCkpOihfLkgoIkNoZWNrIGNyZWRlbnRpYWwgc3RhdHVzIHJldHVybnMgaW52YWxpZCByZXNwb25zZS4iKSxhLmooInVua25vd25fcmVhc29uIiksXy5EaChhLCJuZXR3b3JrIix7Y2F1c2U6ImludmFsaWRfcmVzcG9uc2UifSkpfSl9LGV2PWZ1bmN0aW9uKGEpe3ZhciBiPWEubSxjO2lmKGM9YS5tLmF1dG9fc2VsZWN0KXtjPWEuZzt2YXIgZD16dShjKTtkLmRpc2FibGVfYXV0b19zZWxlY3RfdG8mJkRhdGUubm93KCk+PWQuZGlzYWJsZV9hdXRvX3NlbGVjdF90byYmKGMuSWEoKSxkPXp1KGMpKTtjPSEoZC5kaXNhYmxlX2F1dG9fc2VsZWN0X3RvJiZEYXRlLm5vdygpPGQuZGlzYWJsZV9hdXRvX3NlbGVjdF90byl9Yi5hdXRvX3NlbGVjdD1jO18ueWsoKSYmYS5MPT09ImJvdHRvbV9zaGVldCImJgooYS5tLnByb21wdF91aT1NcigpLGEubS5hdXRvX2Rpc21pc3NfZHVyYXRpb25fbXM9SnMoKSk7YS51PV8ud2QoKTthLm0uY2hhbm5lbF9pZD1fLnFpKGEudSk7YS5tLm9yaWdpbj1hLm0ub3JpZ2lufHxsb2NhdGlvbi5vcmlnaW47YS5tLm9hdXRoMl9hdXRoX3VybD1hLlBhO2EuSWMmJihhLm0ubGlicmFyeV9uYW1lPWEuSWMpO2I9Xy54ayhhLndlLGEubSk7YS5HPSEwO2EuYmQoYik7Xy5DaChhLCJwcm9tcHRfZGlzcGxheWVkIil9O18uUnUucHJvdG90eXBlLmJkPWZ1bmN0aW9uKGEpe3RoaXMuRD15cyh0aGlzLmNvbnRhaW5lcixhLHRoaXMuTD09PSJib3R0b21fc2hlZXQiKX07CnZhciBmdj1mdW5jdGlvbihhKXthLkw9PT0iYm90dG9tX3NoZWV0IiYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtVdShhLCExKSYmKFZ1KGEsImF1dG9fY2FuY2VsIiksTHMoKSYmWHIoImF1dG9EaXNtaXNzZWQiKSl9LGEudGUpfSxUdT1mdW5jdGlvbihhLGIpe2lmKGIub3JpZ2luPT09YS5LJiZiLmRhdGEmJmIuZGF0YS50eXBlPT09InJlYWR5Rm9yQ29ubmVjdCIpaWYoXy5FKCJTZXR1cCBtZXNzYWdlIHJlY2VpdmVkOiAiK0pTT04uc3RyaW5naWZ5KGIuZGF0YSkpLGIuc291cmNlKXt2YXIgYz1iLmRhdGEuaWZyYW1lSWQ7aWYoYyl7aWYoYz1hLkMuZ2V0KGMpKXtjLmRhdGEuc2Vzc2lvbklkPWIuZGF0YS5zZXNzaW9uSWQ7Yz1uZXcgTWVzc2FnZUNoYW5uZWw7Yy5wb3J0MS5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7aWYoZS5kYXRhJiZlLmRhdGEudHlwZSl7Xy5FKCJNZXNzYWdlIHJlY2VpdmVkIGluIGJ1dHRvbiBjaGFubmVsOiAiK0pTT04uc3RyaW5naWZ5KGUuZGF0YSkpOwp2YXIgZj1lLmRhdGEudHlwZTtpZihmIT09ImNvbW1hbmQiKV8uRygiVW5rbm93biBldmVudCB0eXBlICgiK2YrIikgcmVjZWl2ZWQgaW4gdGhlIGJ1dHRvbiBjaGFubmVsLiIpO2Vsc2Ugc3dpdGNoKGY9ZS5kYXRhLmNvbW1hbmQsZil7Y2FzZSAiY2xpY2tlZCI6Zj1lLmRhdGEuaWZyYW1lSWQ7Xy5FKCJDbGlja2VkIGNvbW1hbmQgcmVjZWl2ZWQgZm9yIGJ1dHRvbjogIitmKyIuIik7aXYoYSxmKTticmVhaztjYXNlICJyZXNpemUiOmY9ZS5kYXRhLmlmcmFtZUlkO18uRSgiUmVzaXplIGNvbW1hbmQgcmVjZWl2ZWQgZm9yIGJ1dHRvbjogIitmKyIuIik7aWYoZil7dmFyIGc9YS5DLmdldChmKSxoPWUuZGF0YS5oZWlnaHQsaz1lLmRhdGEud2lkdGg7aWYoZyYmZy5YYSYmRHMoaCkmJkRzKGspKXt2YXIgbT1nLlhhO20uc3R5bGUuaGVpZ2h0PWgrInB4IjttLnN0eWxlLndpZHRoPWsrInB4IjtnPWUuZGF0YS52ZXJ0aWNhbE1hcmdpbjtlPWUuZGF0YS5ob3Jpem9udGFsTWFyZ2luO3R5cGVvZiBnIT09CiJudW1iZXIifHxpc05hTihnKXx8dHlwZW9mIGUhPT0ibnVtYmVyInx8aXNOYU4oZSl8fChtLnN0eWxlLm1hcmdpblRvcD1nKyJweCIsbS5zdHlsZS5tYXJnaW5Cb3R0b209ZysicHgiLG0uc3R5bGUubWFyZ2luTGVmdD1lKyJweCIsbS5zdHlsZS5tYXJnaW5SaWdodD1lKyJweCIsanYoYSxmKSk7cXQoYSxrLGgpfWVsc2UgbT9fLkcoIlVuYWJsZSB0byByZXNpemUgaWZyYW1lLiBJbnZhbGlkIGRpbWVuc2lvbnMuIik6Xy5HKCJVbmFibGUgdG8gcmVzaXplIGlmcmFtZS4gTm8gaWZyYW1lIGZvdW5kIHdpdGggaWQ6ICIrKGYrIi4iKSl9YnJlYWs7ZGVmYXVsdDpfLkcoIlVua25vd24gY29tbWFuZCB0eXBlICgiK2YrIikgcmVjZWl2ZWQgaW4gdGhlIGJ1dHRvbiBjaGFubmVsLiIpfX19O3ZhciBkPXt0eXBlOiJjaGFubmVsQ29ubmVjdCJ9O3RyeXtiLnNvdXJjZS5wb3N0TWVzc2FnZShkLGEuSyxbYy5wb3J0Ml0pfWNhdGNoKGUpe18uSCgiRmFpbGVkIHRvIHNlbmQgcG9zdG1lc3NhZ2UgdG8gYnV0dG9uIGlmcmFtZTogIisKZS5tZXNzYWdlKX19fWVsc2UgaWYoYi5kYXRhLmNoYW5uZWxJZCYmYS51JiYoYS51JiZfLnFpKGEudSkpPT09Yi5kYXRhLmNoYW5uZWxJZCl7Yz1uZXcgTWVzc2FnZUNoYW5uZWw7Yy5wb3J0MS5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7YS5PYShlKX07ZD17dHlwZToiY2hhbm5lbENvbm5lY3QiLG5vbmNlOmEudX07dHJ5e2Iuc291cmNlLnBvc3RNZXNzYWdlKGQsYS5LLFtjLnBvcnQyXSl9Y2F0Y2goZSl7Xy5IKCJGYWlsZWQgdG8gc2VuZCBwb3N0bWVzc2FnZSB0byBpZnJhbWU6ICIrZS5tZXNzYWdlKX19fWVsc2UgXy5FKCJTb3VyY2UgaW52YWxpZC4gSWZyYW1lIHdhcyBjbG9zZWQgZHVyaW5nIHNldHVwLiIpfTsKXy5SdS5wcm90b3R5cGUuT2E9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZihhLmRhdGEmJmEuZGF0YS50eXBlKXN3aXRjaChfLkUoIk1lc3NhZ2UgcmVjZWl2ZWQ6ICIrSlNPTi5zdHJpbmdpZnkoYS5kYXRhKSksYS5kYXRhLnR5cGUpe2Nhc2UgInJlc3BvbnNlIjp2cyh0aGlzLkQpO3ZhciBjPWEuZGF0YS5yZXNwb25zZTtjJiZjLmNyZWRlbnRpYWw/KEN1KHRoaXMuZyksdGhpcy5tLnN0YXRlJiYoYy5zdGF0ZT10aGlzLm0uc3RhdGUpLHRoaXMudiYmdGhpcy52LnN0YXRlPT09Mz8oXy5FKCJSUk0gaW50ZXJvcCBhY3RpdmUsIG5vdGlmeWluZyB0b2tlbiIpLHR1KHRoaXMudixjKSk6dGhpcy5jYWxsYmFjayYmKHRoaXMuY2FsbGJhY2suY2FsbCh0aGlzLGMpLF8uRSgiUmVzcG9uc2UgcmVjZWl2ZWQ6ICIrSlNPTi5zdHJpbmdpZnkoYykpKSxrcyh0aGlzLm0uY2xpZW50X2lkKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VXUoYiwhMCkmJihhdihiLCJjcmVkZW50aWFsX3JldHVybmVkIiksCnB0KGIpKX0sMkUzKSk6VXUodGhpcywhMCkmJihWdSh0aGlzLCJpc3N1aW5nX2ZhaWxlZCIpLFhyKCJpc3N1aW5nRmFpbGVkIikscHQodGhpcykpOyR1KGEpO2JyZWFrO2Nhc2UgImFjdGl2aXR5IjphLmRhdGEuYWN0aXZpdHkmJnRoaXMuUihhLmRhdGEuYWN0aXZpdHkpO2JyZWFrO2Nhc2UgImNvbW1hbmQiOmlmKGM9YS5kYXRhLmNvbW1hbmQpc3dpdGNoKGMpe2Nhc2UgImNsb3NlIjphLmRhdGEuc3VwcHJlc3MmJkR1KHRoaXMuZyk7VXUodGhpcywhMCkmJihWdSh0aGlzLCJ1c2VyX2NhbmNlbCIpLHB0KHRoaXMpLExzKCkmJlhyKCJ1c2VyQ2FuY2VsbGVkIikpO2JyZWFrO2Nhc2UgImF1dG9fZGlzbWlzcyI6VXUodGhpcywhMCkmJihWdSh0aGlzLCJhdXRvX2NhbmNlbCIpLHB0KHRoaXMpLExzKCkmJlhyKCJhdXRvRGlzbWlzc2VkIikpO2JyZWFrO2Nhc2UgInJlc2l6ZSI6YT1hLmRhdGEuaGVpZ2h0O0RzKGEpJiYoYz10aGlzLmNvbnRhaW5lciE9PWRvY3VtZW50LmJvZHkmJkhzKHRoaXMuY29udGFpbmVyKT8KQXMoYSx0aGlzLkQpOnpzKGEpLHF0KHRoaXMsYSxjKSk7YnJlYWs7Y2FzZSAiY2FuY2VsX3Byb3RlY3Rfc3RhcnQiOnRoaXMuRz0hMDticmVhaztjYXNlICJjYW5jZWxfcHJvdGVjdF9lbmQiOnRoaXMuRz0hMTticmVhaztjYXNlICJzdGFydF9hdXRvX3NlbGVjdCI6b3YodGhpcywiYXV0b19zZWxlY3Rfc3RhcnRlZCIpO2JyZWFrO2Nhc2UgImNhbmNlbF9hdXRvX3NlbGVjdCI6aHQodGhpcy5nKSxvdih0aGlzLCJhdXRvX3NlbGVjdF9jYW5jZWxlZCIpfX19O3ZhciAkdT1mdW5jdGlvbihhKXthLmRhdGEuYW5ub3VuY2VtZW50JiZHcyhhLmRhdGEuYW5ub3VuY2VtZW50KX07Cl8uUnUucHJvdG90eXBlLnJldm9rZT1mdW5jdGlvbihhLGIpe3ZhciBjPXtzdWNjZXNzZnVsOiExfSxkPXRoaXMubS5jbGllbnRfaWQ7ZD8iSWRlbnRpdHlDcmVkZW50aWFsImluIHdpbmRvdyYmXy5VYSgiQ2hyb21pdW0iKT49MTIzPyhhPXtjb25maWdVUkw6Xy5JKCJlbmFibGVfZmVkY21fY29uZmlnX3NwbGl0Iik/dGhpcy5qYjp0aGlzLkgsY2xpZW50SWQ6ZCxhY2NvdW50SGludDphfSx3aW5kb3cuSWRlbnRpdHlDcmVkZW50aWFsLmRpc2Nvbm5lY3QoYSkudGhlbihmdW5jdGlvbigpe2Muc3VjY2Vzc2Z1bD0hMDtfLkYoInNldCByZXN1bHQgc3VjY2Vzc2Z1bCB0bzogJyArICIrISFjLnN1Y2Nlc3NmdWwpO2ImJmIoYyl9LGZ1bmN0aW9uKGUpe18uSCgiRmVkQ00gZGlzY29ubmVjdCBmYWlsZWQgd2l0aCBlcnJvcjogIitKU09OLnN0cmluZ2lmeShlKSk7Yy5lcnJvcj0iZmVkY21fZGlzY29ubmVjdF9mYWlsZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZSk7YiYmYihjKX0pKTooYT17Y2xpZW50X2lkOmQsCmhpbnQ6YX0sdGhpcy5sJiYoYS5hcz10aGlzLmwpLGNzKHRoaXMuRGUsYSxmdW5jdGlvbihlKXtpZihlJiZlIT09Im51bGwiKXtpZihlPVB0KEpTT04uc3RyaW5naWZ5KF8ub2soZSkpKSxjLnN1Y2Nlc3NmdWw9ISFfLlBrKGUsMyksXy5GKCJSZXZva2UgWEhSIHN0YXR1czogIishIWMuc3VjY2Vzc2Z1bCksIWMuc3VjY2Vzc2Z1bClpZihfLlZlKGUsXy56aCwyKSl7ZT1fLk0oZSxfLnpoLDIpO18ubmgoZSk7c3dpdGNoKF8uTyhlLDEpKXtjYXNlIDE6Y2FzZSAyOmU9Im9wdF9vdXRfb3Jfbm9fc2Vzc2lvbiI7YnJlYWs7Y2FzZSAzOmU9ImNsaWVudF9ub3RfZm91bmQiO2JyZWFrO2Nhc2UgNDplPSJjbGllbnRfbm90X2FsbG93ZWQiO2JyZWFrO2Nhc2UgNTplPSJpbnZhbGlkX29yaWdpbiI7YnJlYWs7Y2FzZSA2OmU9ImNyb3NzX29yaWdpbl9yZXF1ZXN0X25vdF9hbGxvd2VkIjticmVhaztjYXNlIDc6ZT0ic2VjdXJlX2h0dHBfcmVxdWlyZWQiO2JyZWFrO2Nhc2UgODplPSJpbnZhbGlkX3BhcmFtZXRlciI7CmJyZWFrO2Nhc2UgOTplPSJicm93c2VyX25vdF9zdXBwb3J0ZWQiO2JyZWFrO2Nhc2UgMTI6ZT0id2ViX3ZpZXdfbm90X3N1cHBvcnRlZCI7YnJlYWs7ZGVmYXVsdDplPSJ1bmtub3duX2Vycm9yIn1jLmVycm9yPWV9ZWxzZSBjLmVycm9yPSJ1bmtub3duX2Vycm9yIn1lbHNlIF8uSCgiSW52YWxpZCByZXNwb25zZSBpcyByZXR1cm5lZCBmb3IgcmV2b2tlIHJlcXVlc3QuIiksYy5lcnJvcj0iaW52YWxpZF9yZXNwb25zZSI7YiYmYihjKX0pKTooXy5IKCJGYWlsZWQgdG8gcmV2b2tlLiBNaXNzaW5nIGNvbmZpZyBwYXJhbWV0ZXIgY2xpZW50X2lkLiIpLGImJihjLmVycm9yPSJtaXNzaW5nX2NsaWVudF9pZCIsYihjKSkpfTt2YXIgU3U9ZnVuY3Rpb24oYSxiLGMpeyhjPT09dm9pZCAwPzA6YykmJmEuViYmKGI/YS5WLnNldCgibGwiLGIpOmEuVi5nYigibGwiKSk7Xy50ayhiKX07dmFyIFRzPXtjbGllbnRfaWQ6InN0ciIsYXV0b19zZWxlY3Q6ImJvb2wiLGJ1dHRvbl9hdXRvX3NlbGVjdDoiYm9vbCIsdXhfbW9kZToic3RyIix1aV9tb2RlOiJzdHIiLGNvbG9yX3NjaGVtZToic3RyIixjb250ZXh0OiJzdHIiLG5vbmNlOiJzdHIiLGhkOiJzdHIiLGhvc3RlZF9kb21haW46InN0ciIsbG9naW5faGludDoic3RyIixoaW50OiJzdHIiLGxvZ2luX3VyaToic3RyIixleGlzdGluZzoiYm9vbCIsc3BlY2lhbF9hY2NvdW50czoiYm9vbCIsc3RhdGU6InN0ciIsZGlzYWJsZV9hdXRvX2ZvY3VzOiJib29sIixsb2dfbGV2ZWw6InN0ciIsY2FsbGJhY2s6ImZ1bmMiLHByb21wdF9wYXJlbnRfaWQ6InN0ciIscHJvbXB0X2xpZmV0aW1lX3NlYzoibnVtIixjYW5jZWxfb25fdGFwX291dHNpZGU6ImJvb2wiLHN0YXRlX2Nvb2tpZV9kb21haW46InN0ciIsaXRwX3N1cHBvcnQ6ImJvb2wiLGl0cF9tb2RlOiJzdHIiLHVzZV9mZWRjbV9mb3JfcHJvbXB0OiJib29sIix1c2VfZmVkY21fZm9yX2J1dHRvbjoiYm9vbCIsCnJybV9pbnRlcm9wOiJib29sIixycm1faWZyYW1lX3BhdGg6InN0ciIsZXNzZW50aWFsX2NsYWltczoiY2xhaW1zIixuYXRpdmVfY2FsbGJhY2s6ImZ1bmMiLG1vbWVudF9jYWxsYmFjazoiZnVuYyIsaW50ZXJtZWRpYXRlX2lmcmFtZV9jbG9zZV9jYWxsYmFjazoiZnVuYyIsYXV0b19wcm9tcHQ6ImJvb2wiLGFsbG93ZWRfcGFyZW50X29yaWdpbjoic3RyIixsaWJyYXJ5X25hbWU6InN0ciIsbmF0aXZlX2xvZ2luX3VyaToic3RyIixuYXRpdmVfaWRfcGFyYW06InN0ciIsbmF0aXZlX3Bhc3N3b3JkX3BhcmFtOiJzdHIiLHNraXBfcHJvbXB0X2Nvb2tpZToic3RyIn0sVXM9T2JqZWN0LmtleXMoVHMpLFhzPXtwYXJlbnRfaWQ6InN0ciIsc2l6ZToic3RyIix0aGVtZToic3RyIix0ZXh0OiJzdHIiLHNoYXBlOiJzdHIiLHdpZHRoOiJudW0iLG1pbl93aWR0aDoibnVtIixsb2dvX2FsaWdubWVudDoic3RyIix0eXBlOiJzdHIiLGxvY2FsZToic3RyIixub25jZToic3RyIixzdGF0ZToic3RyIiwKY2xpY2tfbGlzdGVuZXI6ImZ1bmMifTt2YXIgJHM9ZnVuY3Rpb24oYSl7YT1PYmplY3QuYXNzaWduKHt9LHdpbmRvdy5fX0dfSURfT1BUSU9OU19fLGEpO18uUnUuY2FsbCh0aGlzLGEpO3RoaXMubGE9YSYmYS5uYXRpdmVfY2FsbGJhY2s7Xy5JKCJlbmFibGVfaW50ZXJtZWRpYXRlX2lmcmFtZSIpJiYodGhpcy5oPWEmJmEuYWxsb3dlZF9wYXJlbnRfb3JpZ2luKTt0aGlzLktjPSExO3RoaXMuYmE9ISF0aGlzLmg7dGhpcy53Yz1hJiZhLmludGVybWVkaWF0ZV9pZnJhbWVfY2xvc2VfY2FsbGJhY2s7aWYodGhpcy5oJiZ0aGlzLmgpaWYodHlwZW9mIHRoaXMuaD09PSJzdHJpbmciKXtpZighaHModGhpcy5oKSl0aHJvdyBFcnJvcigiVGEiKTt9ZWxzZSBpZihBcnJheS5pc0FycmF5KHRoaXMuaCkpZm9yKGE9MDthPHRoaXMuaC5sZW5ndGg7YSsrKWlmKHR5cGVvZiB0aGlzLmhbYV0hPT0ic3RyaW5nInx8IWhzKHRoaXMuaFthXSkpdGhyb3cgRXJyb3IoIlVhIik7fTtfLkooJHMsXy5SdSk7CiRzLnByb3RvdHlwZS5VYz1mdW5jdGlvbihhKXt0aGlzLmxhPWEubmF0aXZlX2NhbGxiYWNrfTskcy5wcm90b3R5cGUuaj1mdW5jdGlvbihhKXtfLkUoIlByb21wdCB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKTt0aGlzLmxhJiZwdih0aGlzKTtfLlJ1LnByb3RvdHlwZS5qLmNhbGwodGhpcyxhKX07dmFyIHB2PWZ1bmN0aW9uKGEpe2EuS2N8fChhLktjPSEwLCJjcmVkZW50aWFscyJpbiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQoe3Bhc3N3b3JkOiEwLG1lZGlhdGlvbjoicmVxdWlyZWQifSkudGhlbihmdW5jdGlvbihiKXthLmxhJiZhLmxhKGIpfSkpfTsKJHMucHJvdG90eXBlLnZhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuYmEmJnRoaXMuaD8oXy5FKCJWZXJpZnlpbmcgcGFyZW50IG9yaWdpbi4iKSxfLm9yKHRoaXMuaCxmdW5jdGlvbigpe18uZnI/Xy5ncih7Y29tbWFuZDoic2V0X3VpX21vZGUiLG1vZGU6ZC5MfSk6Xy5HKCJTZXQgdWkgbW9kZSBjb21tYW5kIHdhcyBub3Qgc2VudCBkdWUgdG8gbWlzc2luZyB2ZXJpZmllZCBwYXJlbnQgb3JpZ2luLiIpO18ueXIoITEpO2QuYWQ9ITE7Xy5SdS5wcm90b3R5cGUudmEuY2FsbChkLGEsYixjKX0pKTpfLlJ1LnByb3RvdHlwZS52YS5jYWxsKHRoaXMsYSxiLGMpfTsKJHMucHJvdG90eXBlLk9hPWZ1bmN0aW9uKGEpe18uUnUucHJvdG90eXBlLk9hLmNhbGwodGhpcyxhKTtpZih0aGlzLmJhJiZhLmRhdGEmJmEuZGF0YS50eXBlKXN3aXRjaChhLmRhdGEudHlwZSl7Y2FzZSAicmVzcG9uc2UiOmEuZGF0YS5yZXNwb25zZSYmYS5kYXRhLnJlc3BvbnNlLmNyZWRlbnRpYWwmJih0aGlzLmFkPSEwLF8ud3IoMCkpO2JyZWFrO2Nhc2UgImNvbW1hbmQiOnN3aXRjaChhLmRhdGEuY29tbWFuZCl7Y2FzZSAiY2xvc2UiOnRoaXMuYWQ/Xy53cigwKTp0aGlzLndjPyhfLndyKDApLHRoaXMud2MoKSk6Xy54cigpO2JyZWFrO2Nhc2UgInJlc2l6ZSI6YT1hLmRhdGEuaGVpZ2h0O3R5cGVvZiBhPT09Im51bWJlciImJiFpc05hTihhKSYmYT4wJiZfLndyKGEpO2JyZWFrO2Nhc2UgImNhbmNlbF9wcm90ZWN0X3N0YXJ0IjpfLnlyKCExKTticmVhaztjYXNlICJjYW5jZWxfcHJvdGVjdF9lbmQiOl8ueXIodGhpcy5oYil9fX07CiRzLnByb3RvdHlwZS5iZD1mdW5jdGlvbihhKXt0aGlzLkQ9eXModGhpcy5jb250YWluZXIsYSx0aGlzLkw9PT0iYm90dG9tX3NoZWV0Iix0aGlzLmJhKX07JHMucHJvdG90eXBlLk1jPWZ1bmN0aW9uKGEpe2lmKHRoaXMuYmEpc3dpdGNoKF8udXIpe2Nhc2UgImludGVybWVkaWF0ZV9jbGllbnQiOmEuZmxvd190eXBlPTE7YnJlYWs7Y2FzZSAiYW1wX2NsaWVudCI6YS5mbG93X3R5cGU9Mn19O3ZhciBacz13aW5kb3c7KGZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9kb2N1bWVudC5yZWFkeVN0YXRlOmE7YSE9PSJsb2FkaW5nIj8oanQoKSxsdCgpKTpfLlhmKGRvY3VtZW50LCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2p0KCk7bHQoKX0sITEpfSkoKTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5jYW5jZWwiLGZ1bmN0aW9uKCl7dmFyIGE9WnMuX19HX0lEX0NMSUVOVF9fO2EmJlV1KGEsITApJiYoYXYoYSwiY2FuY2VsX2NhbGxlZCIpLExzKCkmJlhyKCJmbG93Q2FuY2VsbGVkIikpfSk7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQuZGlzYWJsZUF1dG9TZWxlY3QiLGl0KTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5pbml0aWFsaXplIixkdCk7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQucHJvbXB0IixldCk7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQuUHJvbXB0TW9tZW50Tm90aWZpY2F0aW9uIixndSk7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQucmVuZGVyQnV0dG9uIixndCk7Cl8uSygiZ29vZ2xlLmFjY291bnRzLmlkLnJldm9rZSIsZnVuY3Rpb24oYSxiKXt2YXIgYz1acy5fX0dfSURfQ0xJRU5UX187Yz9jLnJldm9rZShhLGIpOl8uSCgiQXR0ZW1wdCB0byBjYWxsIHJldm9rZSgpIGJlZm9yZSBpbml0aWFsaXplKCkuIil9KTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5zdG9yZUNyZWRlbnRpYWwiLGZ1bmN0aW9uKGEsYil7ImNyZWRlbnRpYWxzImluIG5hdmlnYXRvcj9uYXZpZ2F0b3IuY3JlZGVudGlhbHMuc3RvcmUoYSkudGhlbihmdW5jdGlvbigpe2ImJmIoKX0pLmNhdGNoKGZ1bmN0aW9uKGMpe18uSCgiU3RvcmUgY3JlZGVudGlhbCBmYWlsZWQ6ICIrSlNPTi5zdHJpbmdpZnkoYykpfSk6YiYmYigpfSk7Cl8uSygiZ29vZ2xlLmFjY291bnRzLmlkLnNldExvZ0xldmVsIixmdW5jdGlvbihhKXt2YXIgYj1acy5fX0dfSURfQ0xJRU5UX187Ynx8KGR0KCksYj1acy5fX0dfSURfQ0xJRU5UX18pO2E9YT9hLnRvTG93ZXJDYXNlKCk6dm9pZCAwO2E9PT12b2lkIDB8fCgwLF8uYWIpKHZ0LGEpPj0wP1N1KGIsYSwhMCk6KF8uSCgiTG9nIGxldmVsIGlzIGludmFsaWQuIFN1cHBvcnRlZCBsb2cgbGV2ZWxzIGFyZTogaW5mbywgd2FybiwgZXJyb3IuIExvZyBsZXZlbCBzZXQgdG8gd2FybiBieSBkZWZhdWx0IiksU3UoYix2b2lkIDAsITApKX0pO3ZhciBxdj1uZXcgXy5yZigiZ19hdXRoX2NvZGVfd2luZG93IikscnY9ZnVuY3Rpb24oYSl7Xy5yZy5jYWxsKHRoaXMsImNvZGUiLGEpO3RoaXMuY2FsbGJhY2s9YS5jYWxsYmFjazt0aGlzLlQ9Xy5CZChhKTtfLkYoIkluc3RhbnRpYXRlZC4iLCJDT0RFX0NMSUVOVCIpfTtfLkoocnYsXy5yZyk7cnYucHJvdG90eXBlLmk9ZnVuY3Rpb24oYSl7Xy5GKCJIYW5kbGluZyByZXNwb25zZS4gIitKU09OLnN0cmluZ2lmeShhKSwiQ09ERV9DTElFTlQiKTtfLnJnLnByb3RvdHlwZS5pLmNhbGwodGhpcyxhKTt0aGlzLmNhbGxiYWNrJiZ0aGlzLmNhbGxiYWNrLmNhbGwodGhpcyxhKX07CnJ2LnByb3RvdHlwZS5yZXF1ZXN0Q29kZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMudTt0aGlzLlQ9PT0icmVkaXJlY3QiPyhfLkYoIlN0YXJ0aW5nIHJlZGlyZWN0IGZsb3cuIiwiQ09ERV9DTElFTlQiKSxhPXJzKHRoaXMuaix0aGlzLmwsYSksXy5YYyhhKSk6KF8uRigiU3RhcnRpbmcgcG9wdXAgZmxvdy4iLCJDT0RFX0NMSUVOVCIpLF8uc2codGhpcyksXy50Zyh0aGlzLGEpLF8uSSgiZW5hYmxlX3RyYW5zZm9ybV9mbG93X2Zvcl9hdXRoeiIpJiZvdCh0aGlzLGEpLF8uSSgiZW5hYmxlX2xhcmdlX3BvcHVwX2hlaWdodCIpPyhhLmdpc2xwPSIxIixhLnVwc3RyZWFtX2V4cGVyaW1lbnRfaWQ9IjExNzc4ODYzNiIpOl8uSSgiZW5hYmxlX2xhcmdlX3BvcHVwX2hlaWdodF9jb250cm9sIikmJihhLmdpc2xwPSIwIixhLnVwc3RyZWFtX2V4cGVyaW1lbnRfaWQ9IjExNzc4ODYzNSIpLHRoaXMuZz1fLkpkKHJzKHRoaXMuaix0aGlzLmwsYSkscXYsXy5IZCgpKSwhdGhpcy5nJiZ0aGlzLmVycm9yX2NhbGxiYWNrPwp0aGlzLmVycm9yX2NhbGxiYWNrKG5ldyBfLkNkKCJGYWlsZWQgdG8gb3BlbiBwb3B1cCB3aW5kb3ciLCJwb3B1cF9mYWlsZWRfdG9fb3BlbiIpKTpfLnVnKHRoaXMpKX07dmFyIHN2PW5ldyBfLnJmKCJnX2F1dGhfdG9rZW5fd2luZG93IiksdHY9d2luZG93LHV2PWZ1bmN0aW9uKGEpe18ucmcuY2FsbCh0aGlzLCJ0b2tlbiIsYSk7dGhpcy5jYWxsYmFjaz1hLmNhbGxiYWNrO18uRigiSW5zdGFudGlhdGVkLiIsIlRPS0VOX0NMSUVOVCIpfTtfLkoodXYsXy5yZyk7CnV2LnByb3RvdHlwZS5pPWZ1bmN0aW9uKGEpe18uRigiSGFuZGxpbmcgcmVzcG9uc2UuICIrSlNPTi5zdHJpbmdpZnkoYSksIlRPS0VOX0NMSUVOVCIpO18ucmcucHJvdG90eXBlLmkuY2FsbCh0aGlzLGEpO18uRigiVHJ5aW5nIHRvIHNldCBnYXBpIGNsaWVudCB0b2tlbi4iLCJUT0tFTl9DTElFTlQiKTtpZihhLmFjY2Vzc190b2tlbilpZih0di5nYXBpJiZ0di5nYXBpLmNsaWVudCYmdHYuZ2FwaS5jbGllbnQuc2V0VG9rZW4pdHJ5e3R2LmdhcGkuY2xpZW50LnNldFRva2VuLmNhbGwodGhpcyxhKX1jYXRjaChiKXtfLkgoIlNldCB0b2tlbiBmYWlsZWQuIEV4Y2VwdGlvbiBlbmNvdW50ZXJlZC4iLCJUT0tFTl9DTElFTlQiKSxjb25zb2xlLk5iKGIpfWVsc2UgXy5GKCJUaGUgT0F1dGggdG9rZW4gd2FzIG5vdCBwYXNzZWQgdG8gZ2FwaS5jbGllbnQsIHNpbmNlIHRoZSBnYXBpLmNsaWVudCBsaWJyYXJ5IGlzIG5vdCBsb2FkZWQgaW4geW91ciBwYWdlLiIsIlRPS0VOX0NMSUVOVCIpOwplbHNlIF8uRygiU2V0IHRva2VuIGZhaWxlZC4gTm8gYWNjZXNzIHRva2VuIGluIHJlc3BvbnNlLiIsIlRPS0VOX0NMSUVOVCIpO3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2suY2FsbCh0aGlzLGEpfTsKdXYucHJvdG90eXBlLnJlcXVlc3RBY2Nlc3NUb2tlbj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnU7YT1hfHx7fTthLmxvZ2luX2hpbnQ9YS5sb2dpbl9oaW50fHxhLmhpbnQ7YS5lbmFibGVfZ3JhbnVsYXJfY29uc2VudD1hLmVuYWJsZV9ncmFudWxhcl9jb25zZW50PT09dm9pZCAwP2EuZW5hYmxlX3NlcmlhbF9jb25zZW50OmEuZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ7Yj1fLkRkKHRoaXMuaix7Y2xpZW50X2lkOmIuY2xpZW50X2lkLHNjb3BlOmEuc2NvcGU9PT12b2lkIDA/Yi5zY29wZTphLnNjb3BlLHByb21wdDphLnByb21wdD09PXZvaWQgMD9iLnByb21wdDphLnByb21wdCxsb2dpbl9oaW50OmEubG9naW5faGludD09PXZvaWQgMD9iLmxvZ2luX2hpbnQ6YS5sb2dpbl9oaW50LHN0YXRlOmEuc3RhdGU9PT12b2lkIDA/Yi5zdGF0ZTphLnN0YXRlLGhkOmIuaGQsaW5jbHVkZV9ncmFudGVkX3Njb3BlczphLmluY2x1ZGVfZ3JhbnRlZF9zY29wZXM9PT12b2lkIDA/Yi5pbmNsdWRlX2dyYW50ZWRfc2NvcGVzOgphLmluY2x1ZGVfZ3JhbnRlZF9zY29wZXMsZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ6YS5lbmFibGVfZ3JhbnVsYXJfY29uc2VudD09PXZvaWQgMD9iLmVuYWJsZV9ncmFudWxhcl9jb25zZW50OmEuZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQsdHJpZ2dlcl9vbmVwaWNrOmIudHJpZ2dlcl9vbmVwaWNrLGFsbG93X211bHRpcGxlOmIuYWxsb3dfbXVsdGlwbGUsYWxsb3dfZm9sZGVyX3NlbGVjdGlvbjpiLmFsbG93X2ZvbGRlcl9zZWxlY3Rpb24sZmlsZV9pZHM6Yi5maWxlX2lkcyxtaW1ldHlwZXM6Yi5taW1ldHlwZXMsaW5jbHVkZV9pZF90b2tlbjphLmluY2x1ZGVfaWRfdG9rZW49PT12b2lkIDA/Yi5pbmNsdWRlX2lkX3Rva2VuOmEuaW5jbHVkZV9pZF90b2tlbixub25jZTphLm5vbmNlPT09dm9pZCAwP2Iubm9uY2U6YS5ub25jZX0pO18uRigiU3RhcnRpbmcgcG9wdXAgZmxvdy4iLCJUT0tFTl9DTElFTlQiKTtfLnNnKHRoaXMpO18udGcodGhpcyxiKTtfLkkoImVuYWJsZV90cmFuc2Zvcm1fZmxvd19mb3JfYXV0aHoiKSYmCm90KHRoaXMsYik7Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0Iik/KGIuZ2lzbHA9IjEiLGIudXBzdHJlYW1fZXhwZXJpbWVudF9pZD0iMTE3Nzg4NjM2Iik6Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0X2NvbnRyb2wiKSYmKGIuZ2lzbHA9IjAiLGIudXBzdHJlYW1fZXhwZXJpbWVudF9pZD0iMTE3Nzg4NjM1Iik7dGhpcy5nPV8uSmQocnModGhpcy5qLHRoaXMubCxiKSxzdixfLkhkKCkpOyF0aGlzLmcmJnRoaXMuZXJyb3JfY2FsbGJhY2s/dGhpcy5lcnJvcl9jYWxsYmFjayhuZXcgXy5DZCgiRmFpbGVkIHRvIG9wZW4gcG9wdXAgd2luZG93IiwicG9wdXBfZmFpbGVkX3RvX29wZW4iKSk6Xy51Zyh0aGlzKX07Xy5LKCJnb29nbGUuYWNjb3VudHMub2F1dGgyLkdvb2dsZUlkZW50aXR5U2VydmljZXNFcnJvciIsXy5DZCk7Xy5LKCJnb29nbGUuYWNjb3VudHMub2F1dGgyLkdvb2dsZUlkZW50aXR5U2VydmljZXNFcnJvclR5cGUiLHtVZToidW5rbm93biIsUGU6Im1pc3NpbmdfcmVxdWlyZWRfcGFyYW1ldGVyIixSZToicG9wdXBfZmFpbGVkX3RvX29wZW4iLFFlOiJwb3B1cF9jbG9zZWQifSk7Xy5LKCJnb29nbGUuYWNjb3VudHMub2F1dGgyLmluaXRDb2RlQ2xpZW50IixmdW5jdGlvbihhKXtyZXR1cm4gbmV3IHJ2KGEpfSk7Xy5LKCJnb29nbGUuYWNjb3VudHMub2F1dGgyLkNvZGVDbGllbnQiLHJ2KTtfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIuaW5pdFRva2VuQ2xpZW50IixmdW5jdGlvbihhKXtyZXR1cm4gbmV3IHV2KGEpfSk7Xy5LKCJnb29nbGUuYWNjb3VudHMub2F1dGgyLlRva2VuQ2xpZW50Iix1dik7Cl8uSygiZ29vZ2xlLmFjY291bnRzLm9hdXRoMi5oYXNHcmFudGVkQWxsU2NvcGVzIixmdW5jdGlvbihhKXt2YXIgYj1Wci5hcHBseSgxLGFyZ3VtZW50cyksYz1udChhKTtyZXR1cm4gYyYmYy5sZW5ndGg/KGI9bXQuYXBwbHkobnVsbCxfLk1kKGIpKSkmJmIubGVuZ3RoPygwLF8uaGUpKGIsZnVuY3Rpb24oZCl7cmV0dXJuKDAsXy5hYikoYyxkKT49MH0pOiExOiExfSk7Xy5LKCJnb29nbGUuYWNjb3VudHMub2F1dGgyLmhhc0dyYW50ZWRBbnlTY29wZSIsZnVuY3Rpb24oYSl7dmFyIGI9VnIuYXBwbHkoMSxhcmd1bWVudHMpLGM9bnQoYSk7cmV0dXJuIGMmJmMubGVuZ3RoPyhiPW10LmFwcGx5KG51bGwsXy5NZChiKSkpJiZiLmxlbmd0aD8oMCxfLmdlKShiLGZ1bmN0aW9uKGQpe3JldHVybigwLF8uYWIpKGMsZCk+PTB9KTohMTohMX0pOwpfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIucmV2b2tlIixmdW5jdGlvbihhLGIpe18uRSgiUmV2b2tlIHJlcXVlc3QgaW5pdGlhdGVkIik7YT17dG9rZW46YX07Xy5FKCJNYWtpbmcgcmV2b2tlIHJlcXVlc3Qgd2l0aG91dCBjcmVkZW50aWFscy4iKTticygiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vcmV2b2tlIixhLCExLGZ1bmN0aW9uKGMpe2ImJihfLkYoImNhbGxiYWNrIHdpdGggcmVzcG9uc2U6ICIrYyksYz1jP0pTT04ucGFyc2UoYyk6e30sYy5zdWNjZXNzZnVsPSFjLmVycm9yLGIoYykpfSl9KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9Cn0pLmNhbGwodGhpcyx0aGlzLmRlZmF1bHRfZ3NpKTsKLy8gR29vZ2xlIEluYy4KCigoKSA9PiB7Y29uc3QgaGVhZCA9IGRvY3VtZW50LmhlYWQ7IGNvbnN0IGNzcyA9ICIucUpUSE1ceDdiLW1vei11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTtjb2xvcjojMjAyMTI0O2RpcmVjdGlvbjpsdHI7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7Zm9udC1mYW1pbHk6Um9ib3RvLVJlZ3VsYXIsYXJpYWwsc2Fucy1zZXJpZjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCVceDdkLnluUkxuY1x4N2JsZWZ0Oi05OTk5cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTk5cHhceDdkLkw2Y1RjZVx4N2JkaXNwbGF5Om5vbmVceDdkLmJsdFdCYlx4N2JvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkXHg3ZC5oU1JHUGRceDdiY29sb3I6IzFhNzNlODtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo1MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmVceDdkLkJ6MTEyYy1XM2xHcFx4N2JoZWlnaHQ6MTZweDt3aWR0aDoxNnB4XHg3ZC5CejExMmMtRTNEeVlkXHg3YmhlaWdodDoyMHB4O3dpZHRoOjIwcHhceDdkLkJ6MTEyYy1yOW9QaWZceDdiaGVpZ2h0OjI0cHg7d2lkdGg6MjRweFx4N2QuQnoxMTJjLXUyejVLXHg3YmhlaWdodDozNnB4O3dpZHRoOjM2cHhceDdkLkJ6MTEyYy11YXhMNGVceDdiYm9yZGVyLXJhZGl1czoxMHB4XHg3ZC5MZ2JzU2UtQnoxMTJjXHg3YmRpc3BsYXk6YmxvY2tceDdkLlM5Z1VyZi1Zb1o0amZceDdiYm9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowXHg3ZC5TOWdVcmYtWW9aNGpmICpceDdiYm9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowXHg3ZC5mRlc3d2MtaWJuQzZiXHgzZS5hWjJ3RWVceDNlZGl2XHg3YmJvcmRlci1jb2xvcjojNDI4NWY0XHg3ZC5QMWVrU2UtWk12M3VceDdidHJhbnNpdGlvbjpoZWlnaHQgLjJzIGxpbmVhclx4N2QuUDFla1NlLVpNdjN1XHgzZWRpdjpmaXJzdC1jaGlsZFx4N2JiYWNrZ3JvdW5kLWNvbG9yOiMxYTczZTghaW1wb3J0YW50O3RyYW5zaXRpb246d2lkdGggLjNzIGxpbmVhclx4N2QuUDFla1NlLVpNdjN1XHgzZWRpdjpudGgtY2hpbGQoMilceDdiYmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgyNTUsMjU1LDI1NSwuNykscmdiYSgyNTUsMjU1LDI1NSwuNykpLGxpbmVhci1ncmFkaWVudCg5MGRlZywjMWE3M2U4LCMxYTczZTgpIWltcG9ydGFudFx4N2QuUDFla1NlLVpNdjN1XHgzZWRpdjpudGgtY2hpbGQoMylceDdiYmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgyNTUsMjU1LDI1NSwuNykscmdiYSgyNTUsMjU1LDI1NSwuNykpLGxpbmVhci1ncmFkaWVudCg5MGRlZywjMWE3M2U4LCMxYTczZTgpIWltcG9ydGFudFx4N2QuaGFBY2xmXHg3YmRpc3BsYXk6aW5saW5lLWJsb2NrXHg3ZC5uc203QmItSHpWN20tTGdic1NlXHg3YmJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjIxOHMsYm9yZGVyLWNvbG9yIC4yMThzOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXI6MXB4IHNvbGlkICNkYWRjZTA7Y29sb3I6IzNjNDA0MztjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTpHb29nbGUgU2FucyxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouODc1cmVtO2hlaWdodDo0MHB4O2xldHRlci1zcGFjaW5nOi4yNXB4O291dGxpbmU6bm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIDEycHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDphdXRvXHg3ZEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpXHg3Yi5uc203QmItSHpWN20tTGdic1NlXHg3YmJvcmRlcjoycHggc29saWQgd2luZG93VGV4dDtjb2xvcjp3aW5kb3dUZXh0XHg3ZFx4N2RAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVyZXMtY29udHJhc3Q6bW9yZSlceDdiLm5zbTdCYi1IelY3bS1MZ2JzU2VceDdiY29sb3I6IzAwMFx4N2RceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UucFN6T1AtU3hRdVNlXHg3YmZvbnQtc2l6ZTouODc1cmVtO2hlaWdodDozMnB4O2xldHRlci1zcGFjaW5nOi4yNXB4O3BhZGRpbmc6MCAxMHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLnB1clpULVN4UXVTZVx4N2Jmb250LXNpemU6LjY4NzVyZW07aGVpZ2h0OjIwcHg7bGV0dGVyLXNwYWNpbmc6LjNweDtwYWRkaW5nOjAgOHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2VceDdicGFkZGluZzowO3dpZHRoOjQwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZS5wU3pPUC1TeFF1U2VceDdid2lkdGg6MzJweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlLnB1clpULVN4UXVTZVx4N2J3aWR0aDoyMHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkpHY3BMLVJiUnpLXHg3YmJvcmRlci1yYWRpdXM6MjBweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5KR2NwTC1SYlJ6Sy5wU3pPUC1TeFF1U2VceDdiYm9yZGVyLXJhZGl1czoxNnB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkpHY3BMLVJiUnpLLnB1clpULVN4UXVTZVx4N2Jib3JkZXItcmFkaXVzOjEwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuaTV2dDZlLXRvOTE1LUlhN1FmY1x4N2Jib3JkZXI6MXB4IHNvbGlkICM4ZTkxOGY7YmFja2dyb3VuZC1jb2xvcjojMTMxMzE0O2NvbG9yOiNlM2UzZTNceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuTUZTNGJlLUlhN1FmY1x4N2Jib3JkZXI6bm9uZTtjb2xvcjojZmZmXHg3ZC5uc203QmItSHpWN20tTGdic1NlLk1GUzRiZS12M3BaYmYtSWE3UWZjXHg3YmJhY2tncm91bmQtY29sb3I6IzFhNzNlOFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSmFQVjJiLUlhN1FmY1x4N2JiYWNrZ3JvdW5kLWNvbG9yOiMyMDIxMjQ7Y29sb3I6I2U4ZWFlZFx4N2RAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKVx4N2IubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSmFQVjJiLUlhN1FmY1x4N2Jjb2xvcjojZmZmXHg3ZFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmNceDdiaGVpZ2h0OjE4cHg7bWFyZ2luLXJpZ2h0OjhweDttaW4td2lkdGg6MThweDt3aWR0aDoxOHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLnBTek9QLVN4UXVTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmNceDdiaGVpZ2h0OjE0cHg7bWluLXdpZHRoOjE0cHg7d2lkdGg6MTRweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5wdXJaVC1TeFF1U2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjXHg3YmhlaWdodDoxMHB4O21pbi13aWR0aDoxMHB4O3dpZHRoOjEwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY1x4N2JtYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi00cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmNceDdibWFyZ2luOjA7cGFkZGluZzoxMHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2UucFN6T1AtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY1x4N2JwYWRkaW5nOjhweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlLnB1clpULVN4UXVTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmNceDdicGFkZGluZzo0cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZlx4N2Jib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2hlaWdodDozNnB4O21hcmdpbi1sZWZ0Oi0xMHB4O21hcmdpbi1yaWdodDoxMnB4O21pbi13aWR0aDozNnB4O3dpZHRoOjM2cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZiAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMsLm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY1x4N2JtYXJnaW46MDtwYWRkaW5nOjBceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UucFN6T1AtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZceDdiaGVpZ2h0OjI4cHg7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6MTBweDttaW4td2lkdGg6MjhweDt3aWR0aDoyOHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLnB1clpULVN4UXVTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmXHg3YmhlaWdodDoxNnB4O21hcmdpbi1sZWZ0Oi02cHg7bWFyZ2luLXJpZ2h0OjhweDttaW4td2lkdGg6MTZweDt3aWR0aDoxNnB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZlx4N2Jib3JkZXItcmFkaXVzOjNweDttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZzowXHg3ZC5uc203QmItSHpWN20tTGdic1NlLkpHY3BMLVJiUnpLIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZceDdiYm9yZGVyLXJhZGl1czoxOHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLnBTek9QLVN4UXVTZS5KR2NwTC1SYlJ6SyAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmXHg3YmJvcmRlci1yYWRpdXM6MTRweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5wdXJaVC1TeFF1U2UuSkdjcEwtUmJSeksgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZlx4N2Jib3JkZXItcmFkaXVzOjhweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1iTjk3UGMtc001TU5iXHg3YmRpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXgtd3JhcDpub3dyYXA7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJVx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAub1h0ZkJlLWw0ZUhYXHg3Yi1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkXHg3Yi1tb3otYm94LWZsZXg6MTtmbGV4LWdyb3c6MTtmb250LWZhbWlseTpHb29nbGUgU2FucyxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt2ZXJ0aWNhbC1hbGlnbjp0b3BceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UucHVyWlQtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZFx4N2Jmb250LXdlaWdodDozMDBceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UgLm9YdGZCZS1sNGVIWCAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWRceDdiLW1vei1ib3gtZmxleDowO2ZsZXgtZ3JvdzowXHg3ZC5uc203QmItSHpWN20tTGdic1NlIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZVx4N2J0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjIxOHM7Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjBceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2U6Zm9jdXMsLm5zbTdCYi1IelY3bS1MZ2JzU2U6aG92ZXJceDdiYm94LXNoYWRvdzpub25lO2JvcmRlci1jb2xvcjpyZ2IoMjEwLDIyNywyNTIpO291dGxpbmU6bm9uZVx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZTpmb2N1cy13aXRoaW5ceDdib3V0bGluZToycHggc29saWQgIzAwNjM5Yjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnRceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2U6aG92ZXIgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlXHg3YmJhY2tncm91bmQ6cmdiYSg2NiwxMzMsMjQ0LC4wOClceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2U6YWN0aXZlIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZSwubnNtN0JiLUh6VjdtLUxnYnNTZTpmb2N1cyAubnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmVceDdiYmFja2dyb3VuZDpyZ2JhKDY2LDEzMywyNDQsLjEpXHg3ZC5uc203QmItSHpWN20tTGdic1NlLmk1dnQ2ZS10bzkxNS1JYTdRZmM6aG92ZXIgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlXHg3YmJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDgpXHg3ZC5uc203QmItSHpWN20tTGdic1NlLmk1dnQ2ZS10bzkxNS1JYTdRZmM6YWN0aXZlIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZSwubnNtN0JiLUh6VjdtLUxnYnNTZS5pNXZ0NmUtdG85MTUtSWE3UWZjOmZvY3VzIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZVx4N2JiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEyKVx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSWE3UWZjOmhvdmVyIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZVx4N2JiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI0KVx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSWE3UWZjOmFjdGl2ZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmUsLm5zbTdCYi1IelY3bS1MZ2JzU2UuTUZTNGJlLUlhN1FmYzpmb2N1cyAubnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmVceDdiYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4zMilceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UgLm4xVXVYLURrZmpZXHg3YmJvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoyMHB4O21hcmdpbi1sZWZ0Oi00cHg7bWFyZ2luLXJpZ2h0OjhweDttaW4td2lkdGg6MjBweDt3aWR0aDoyMHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWRceDdiZm9udC1mYW1pbHk6Um9ib3RvO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246bGVmdFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmYgLmZtY21TLC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQgLnNzSlJJZlx4N2JvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc1x4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmZceDdiZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojNWY2MzY4O2ZpbGw6IzVmNjM2ODtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDBceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlLmk1dnQ2ZS10bzkxNS1JYTdRZmMgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmZceDdiY29sb3I6I2M0YzdjNTtmaWxsOiNjNGM3YzVceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlLk1GUzRiZS1JYTdRZmMgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmZceDdiY29sb3I6I2U4ZWFlZDtmaWxsOiNlOGVhZWRceDdkQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29udHJhc3Q6bW9yZSlceDdiLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZCAuSzRlZmZmLC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZS5NRlM0YmUtSWE3UWZjIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZCAuSzRlZmZmXHg3YmNvbG9yOiMwMDA7ZmlsbDojMDAwXHg3ZFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmYgLkJ6MTEyY1x4N2JoZWlnaHQ6MThweDttYXJnaW46LTNweCAtM3B4IC0zcHggMnB4O21pbi13aWR0aDoxOHB4O3dpZHRoOjE4cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZceDdiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O21hcmdpbi1sZWZ0OjEycHg7bWFyZ2luLXJpZ2h0Oi0xMHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZS5KR2NwTC1SYlJ6SyAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmXHg3YmJvcmRlci1yYWRpdXM6MThweFx4N2QuTDVGbzZjLXNNNU1OYlx4N2Jib3JkZXI6MDtkaXNwbGF5OmJsb2NrO2xlZnQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MFx4N2QuTDVGbzZjLWJGMXVVYlx4N2Jib3JkZXItcmFkaXVzOjRweDtib3R0b206MDtjdXJzb3I6cG9pbnRlcjtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MFx4N2QuTDVGbzZjLWJGMXVVYjpmb2N1c1x4N2Jib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmVceDdkc2VudGluZWxceDdiXHg3ZCI7IGNvbnN0IHN0eWxlSWQgPSAnZ29vZ2xlaWRlbnRpdHlzZXJ2aWNlX2J1dHRvbl9zdHlsZXMnOyBpZiAoaGVhZCAmJiBjc3MgJiYgIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHN0eWxlSWQpKSB7Y29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOyBzdHlsZS5pZCA9IHN0eWxlSWQ7IHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpOyBpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdC5ub25jZSkgc3R5bGUuc2V0QXR0cmlidXRlKCdub25jZScsIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQubm9uY2UpOyBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTt9fSkoKTs="}},"time_used":106,"timings":{"blocked":-1,"dns":2,"connect":17,"send":0,"wait":56,"receive":0,"ssl":31},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/style","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.612Z","timestamp":1785139670612,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /gsi/style HTTP/1.1\r\nHost: accounts.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css; charset=utf-8\r\nexpires: Mon, 27 Jul 2026 08:07:50 GMT\r\ndate: Mon, 27 Jul 2026 08:07:50 GMT\r\ncache-control: private, max-age=86400\r\ncontent-security-policy: script-src 'nonce-BctYrSEaDueVQWsPvJ58RA' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http, require-trusted-types-for 'script';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http\r\nreport-to: {\"group\":\"coop_dd7de8473bddc59c6b748810a67a39b1\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/dd7de8473bddc59c6b748810a67a39b1\"}]}\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_dd7de8473bddc59c6b748810a67a39b1\"\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":696,"size_decoded":1373,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (696), with no line terminators","md5":"ee570cebd6ae40b9567844b080aee1e9","sha1":"2b7b0ffcfe8aca40ced147fb7ce107010392d6b9","sha256":"d49e8f04be7ccbb69e87ae474ee50f6903b780451989e66d35ffc247a80510fe","sha512":"836c832111c285f7cb692c4eb62e2bca615017b6ab4af6920674f17df0ae1da040f7171208d5d312c3c43ed8ed7e49b653e7fce0948f24076d0548f7c8e8f25a","ssdeep":"","tlshash":"430197321aa2602eecb3ab3bf04a9d8c023aa117eeb705ccb59cca15c38d95874a5041","first_seen":"2025-10-22T21:08:41.081019Z","last_seen":"2026-08-04T07:49:17.325778Z","times_seen":81187,"resource_available":false,"data":"I2NyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lcntib3JkZXI6bm9uZTtoZWlnaHQ6MzMwcHg7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MjBweDt0b3A6MjBweDt3aWR0aDozOTFweDt6LWluZGV4Ojk5OTl9I2NyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lciAuTDVGbzZjLVBRYkxHZXtib3JkZXI6bm9uZTt3aWR0aDozOTFweDtoZWlnaHQ6MzMwcHh9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQxMHB4KXsjY3JlZGVudGlhbF9waWNrZXJfY29udGFpbmVye292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztyaWdodDowO3dpZHRoOjEwMHZ3fSNjcmVkZW50aWFsX3BpY2tlcl9jb250YWluZXIgLkw1Rm82Yy1QUWJMR2V7d2lkdGg6MTAwdnd9fSNnX2ExMXlfYW5ub3VuY2VtZW50e2hlaWdodDoxcHg7bGVmdDotMTAwMDBweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG87d2lkdGg6MXB4fS5MNUZvNmMtc001TU5ie2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7bGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowfS5MNUZvNmMtYkYxdVVie2JvcmRlci1yYWRpdXM6NHB4O2JvdHRvbTowO2N1cnNvcjpwb2ludGVyO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowfS5MNUZvNmMtYkYxdVViOmZvY3Vze2JvcmRlcjpub25lO291dGxpbmU6bm9uZX1zZW50aW5lbHt9"}},"time_used":56,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":56,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/DIGJciYJ.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.533Z","timestamp":1785139669533,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/DIGJciYJ.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"8b2-654aa2b83052a-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1079\r\nKeep-Alive: timeout=5, max=95\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":2226,"size_decoded":1429,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (2225)","md5":"870bbacad3f5cf786c38d885bb504ef1","sha1":"15366bf39d7fda76b03fc3d245d831e910c19e9d","sha256":"9255b88392d991ccb5500611886ddf5e7e69dea5f713d4cc06e8b6df6d423b91","sha512":"85f74f6dc66323e0661dc6f5710d29f8e8b2002da802ef410570841237644e0e71295c0198903c8bb0b53eda3f5238a469528478e40dbdee253ab6d384602cb8","ssdeep":"","tlshash":"934197b8a6be547106eb8cecf4336d83c1289f0ee53690e1546f6d2817e4fe152c9725","first_seen":"2025-10-23T03:46:52.529506Z","last_seen":"2026-07-27T11:49:48.928722Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0e2MgYXMgeSxiIGFzIEQsViBhcyB2LGYgYXMgTH1mcm9tIi4vQzEwZGJYM2suanMiO2ltcG9ydHskIGFzIHcsYTAgYXMgQSxhMSBhcyBCLHIgYXMgUyxrIGFzIEYsYXUgYXMgSSxqIGFzIGcsYWcgYXMgUixhNSBhcyBULGEyIGFzIGQsZiBhcyBFLGJWIGFzIE99ZnJvbSIuL1NtMm1DZkRFLmpzIjtpbXBvcnR7ViBhcyBXfWZyb20iLi9EOGF5dTdyUC5qcyI7aW1wb3J0e1YgYXMga31mcm9tIi4vQ011VVRsUzIuanMiO2NvbnN0IHA9dyh7ZnVsbHNjcmVlbjpCb29sZWFuLHJldGFpbkZvY3VzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0sc2Nyb2xsYWJsZTpCb29sZWFuLC4uLnkoe29yaWdpbjoiY2VudGVyIGNlbnRlciIsc2Nyb2xsU3RyYXRlZ3k6ImJsb2NrIix0cmFuc2l0aW9uOntjb21wb25lbnQ6V30sekluZGV4OjI0MDB9KX0sIlZEaWFsb2ciKSxqPUEoKSh7bmFtZToiVkRpYWxvZyIscHJvcHM6cCgpLGVtaXRzOnsidXBkYXRlOm1vZGVsVmFsdWUiOmU9PiEwLGFmdGVyRW50ZXI6KCk9PiEwLGFmdGVyTGVhdmU6KCk9PiEwfSxzZXR1cChlLFYpe2xldHtlbWl0Om0sc2xvdHM6aX09Vjtjb25zdCB1PUIoZSwibW9kZWxWYWx1ZSIpLHtzY29wZUlkOmh9PUQoKSx0PVMoKTtmdW5jdGlvbiBmKGEpe3ZhciBsLGM7Y29uc3Qgbz1hLnJlbGF0ZWRUYXJnZXQscj1hLnRhcmdldDtpZihvIT09ciYmKChsPXQudmFsdWUpIT1udWxsJiZsLmNvbnRlbnRFbCkmJigoYz10LnZhbHVlKSE9bnVsbCYmYy5nbG9iYWxUb3ApJiYhW2RvY3VtZW50LHQudmFsdWUuY29udGVudEVsXS5pbmNsdWRlcyhyKSYmIXQudmFsdWUuY29udGVudEVsLmNvbnRhaW5zKHIpKXtjb25zdCBuPU8odC52YWx1ZS5jb250ZW50RWwpO2lmKCFuLmxlbmd0aClyZXR1cm47Y29uc3Qgcz1uWzBdLHg9bltuLmxlbmd0aC0xXTtvPT09cz94LmZvY3VzKCk6cy5mb2N1cygpfX1GKCgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsZil9KSxJJiZnKCgpPT51LnZhbHVlJiZlLnJldGFpbkZvY3VzLGE9PnthP2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGYpOmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGYpfSx7aW1tZWRpYXRlOiEwfSk7ZnVuY3Rpb24gUCgpe3ZhciBhO20oImFmdGVyRW50ZXIiKSwoYT10LnZhbHVlKSE9bnVsbCYmYS5jb250ZW50RWwmJiF0LnZhbHVlLmNvbnRlbnRFbC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmdC52YWx1ZS5jb250ZW50RWwuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX1mdW5jdGlvbiBiKCl7bSgiYWZ0ZXJMZWF2ZSIpfXJldHVybiBnKHUsYXN5bmMgYT0+e3ZhciBvO2F8fChhd2FpdCBSKCksKG89dC52YWx1ZS5hY3RpdmF0b3JFbCk9PW51bGx8fG8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSl9KSxUKCgpPT57Y29uc3QgYT12LmZpbHRlclByb3BzKGUpLG89ZCh7ImFyaWEtaGFzcG9wdXAiOiJkaWFsb2cifSxlLmFjdGl2YXRvclByb3BzKSxyPWQoe3RhYmluZGV4Oi0xfSxlLmNvbnRlbnRQcm9wcyk7cmV0dXJuIEUodixkKHtyZWY6dCxjbGFzczpbInYtZGlhbG9nIix7InYtZGlhbG9nLS1mdWxsc2NyZWVuIjplLmZ1bGxzY3JlZW4sInYtZGlhbG9nLS1zY3JvbGxhYmxlIjplLnNjcm9sbGFibGV9LGUuY2xhc3NdLHN0eWxlOmUuc3R5bGV9LGEse21vZGVsVmFsdWU6dS52YWx1ZSwib25VcGRhdGU6bW9kZWxWYWx1ZSI6bD0+dS52YWx1ZT1sLCJhcmlhLW1vZGFsIjoidHJ1ZSIsYWN0aXZhdG9yUHJvcHM6byxjb250ZW50UHJvcHM6cixoZWlnaHQ6ZS5mdWxsc2NyZWVuP3ZvaWQgMDplLmhlaWdodCx3aWR0aDplLmZ1bGxzY3JlZW4/dm9pZCAwOmUud2lkdGgsbWF4SGVpZ2h0OmUuZnVsbHNjcmVlbj92b2lkIDA6ZS5tYXhIZWlnaHQsbWF4V2lkdGg6ZS5mdWxsc2NyZWVuP3ZvaWQgMDplLm1heFdpZHRoLHJvbGU6ImRpYWxvZyIsb25BZnRlckVudGVyOlAsb25BZnRlckxlYXZlOmJ9LGgpLHthY3RpdmF0b3I6aS5hY3RpdmF0b3IsZGVmYXVsdDpmdW5jdGlvbigpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGM9bmV3IEFycmF5KGwpLG49MDtuPGw7bisrKWNbbl09YXJndW1lbnRzW25dO3JldHVybiBFKGsse3Jvb3Q6IlZEaWFsb2cifSx7ZGVmYXVsdDooKT0+e3ZhciBzO3JldHVyblsocz1pLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpzLmNhbGwoaSwuLi5jKV19fSl9fSl9KSxMKHt9LHQpfX0pO2V4cG9ydHtqIGFzIFYscCBhcyBtfTsK"}},"time_used":120,"timings":{"blocked":94,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/tqgqUFAa.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.540Z","timestamp":1785139669540,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/tqgqUFAa.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"985-654aa2b8391ca-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 1127\r\nKeep-Alive: timeout=5, max=94\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":2437,"size_decoded":1477,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (2436)","md5":"c37dc04a0517c693f92ae0c85a840613","sha1":"1403d3d7dd65351fa7977cf58bf1518083efd529","sha256":"c70aec969c8ee3f977759688be0fa43368cfa2215f9e7711ce310ed7d6e1a3e2","sha512":"6e5099185a40be104c61148409682b91ff6aa3c081387fe0c5aea683119a7561905c1bed262677c2ba7aa07a8ee0bab89d70852528cb84bace1b5fe7dca8dffd","ssdeep":"","tlshash":"61413440fa8bbe5c17c29456a454a363ba290a8b1719c0f6dc566fe1734c3eda077d0d","first_seen":"2025-10-23T03:46:52.537703Z","last_seen":"2026-07-27T11:49:48.983409Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0eyQgYXMgaCxhOSBhcyBmLGEwIGFzIGssYWggYXMgeCxhaSBhcyB5LGFhIGFzIFMsYWMgYXMgTCxzIGFzIHcsYTUgYXMgQyxheSBhcyBCLGYgYXMgbCxhMiBhcyBQfWZyb20iLi9TbTJtQ2ZERS5qcyI7aW1wb3J0e20gYXMgVix1IGFzIFR9ZnJvbSIuL0I4VHhUeWFrLmpzIjtpbXBvcnR7YiBhcyBfLGMgYXMgQX1mcm9tIi4vQ011VVRsUzIuanMiO2NvbnN0ICQ9e2FjdGlvbnM6ImJ1dHRvbkAyIixhcnRpY2xlOiJoZWFkaW5nLCBwYXJhZ3JhcGgiLGF2YXRhcjoiYXZhdGFyIixidXR0b246ImJ1dHRvbiIsY2FyZDoiaW1hZ2UsIGhlYWRpbmciLCJjYXJkLWF2YXRhciI6ImltYWdlLCBsaXN0LWl0ZW0tYXZhdGFyIixjaGlwOiJjaGlwIiwiZGF0ZS1waWNrZXIiOiJsaXN0LWl0ZW0sIGhlYWRpbmcsIGRpdmlkZXIsIGRhdGUtcGlja2VyLW9wdGlvbnMsIGRhdGUtcGlja2VyLWRheXMsIGFjdGlvbnMiLCJkYXRlLXBpY2tlci1vcHRpb25zIjoidGV4dCwgYXZhdGFyQDIiLCJkYXRlLXBpY2tlci1kYXlzIjoiYXZhdGFyQDI4IixkaXZpZGVyOiJkaXZpZGVyIixoZWFkaW5nOiJoZWFkaW5nIixpbWFnZToiaW1hZ2UiLCJsaXN0LWl0ZW0iOiJ0ZXh0IiwibGlzdC1pdGVtLWF2YXRhciI6ImF2YXRhciwgdGV4dCIsImxpc3QtaXRlbS10d28tbGluZSI6InNlbnRlbmNlcyIsImxpc3QtaXRlbS1hdmF0YXItdHdvLWxpbmUiOiJhdmF0YXIsIHNlbnRlbmNlcyIsImxpc3QtaXRlbS10aHJlZS1saW5lIjoicGFyYWdyYXBoIiwibGlzdC1pdGVtLWF2YXRhci10aHJlZS1saW5lIjoiYXZhdGFyLCBwYXJhZ3JhcGgiLG9zc2Vpbjoib3NzZWluIixwYXJhZ3JhcGg6InRleHRAMyIsc2VudGVuY2VzOiJ0ZXh0QDIiLHN1YnRpdGxlOiJ0ZXh0Iix0YWJsZToidGFibGUtaGVhZGluZywgdGFibGUtdGhlYWQsIHRhYmxlLXRib2R5LCB0YWJsZS10Zm9vdCIsInRhYmxlLWhlYWRpbmciOiJjaGlwLCB0ZXh0IiwidGFibGUtdGhlYWQiOiJoZWFkaW5nQDYiLCJ0YWJsZS10Ym9keSI6InRhYmxlLXJvdy1kaXZpZGVyQDYiLCJ0YWJsZS1yb3ctZGl2aWRlciI6InRhYmxlLXJvdywgZGl2aWRlciIsInRhYmxlLXJvdyI6InRleHRANiIsInRhYmxlLXRmb290IjoidGV4dEAyLCBhdmF0YXJAMiIsdGV4dDoidGV4dCJ9O2Z1bmN0aW9uIEQoZSl7bGV0IHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOltdO3JldHVybiBsKCJkaXYiLHtjbGFzczpbInYtc2tlbGV0b24tbG9hZGVyX19ib25lIixgdi1za2VsZXRvbi1sb2FkZXJfXyR7ZX1gXX0sW3RdKX1mdW5jdGlvbiByKGUpe2NvbnN0W3QsYV09ZS5zcGxpdCgiQCIpO3JldHVybiBBcnJheS5mcm9tKHtsZW5ndGg6YX0pLm1hcCgoKT0+aSh0KSl9ZnVuY3Rpb24gaShlKXtsZXQgdD1bXTtpZighZSlyZXR1cm4gdDtjb25zdCBhPSRbZV07aWYoZSE9PWEpe2lmKGUuaW5jbHVkZXMoIiwiKSlyZXR1cm4gcyhlKTtpZihlLmluY2x1ZGVzKCJAIikpcmV0dXJuIHIoZSk7YS5pbmNsdWRlcygiLCIpP3Q9cyhhKTphLmluY2x1ZGVzKCJAIik/dD1yKGEpOmEmJnQucHVzaChpKGEpKX1yZXR1cm5bRChlLHQpXX1mdW5jdGlvbiBzKGUpe3JldHVybiBlLnJlcGxhY2UoL1xzL2csIiIpLnNwbGl0KCIsIikubWFwKGkpfWNvbnN0IEU9aCh7Ym9pbGVycGxhdGU6Qm9vbGVhbixjb2xvcjpTdHJpbmcsbG9hZGluZzpCb29sZWFuLGxvYWRpbmdUZXh0Ont0eXBlOlN0cmluZyxkZWZhdWx0OiIkdnVldGlmeS5sb2FkaW5nIn0sdHlwZTp7dHlwZTpbU3RyaW5nLEFycmF5XSxkZWZhdWx0OiJvc3NlaW4ifSwuLi5WKCksLi4uXygpLC4uLmYoKX0sIlZTa2VsZXRvbkxvYWRlciIpLEk9aygpKHtuYW1lOiJWU2tlbGV0b25Mb2FkZXIiLHByb3BzOkUoKSxzZXR1cChlLHQpe2xldHtzbG90czphfT10O2NvbnN0e2JhY2tncm91bmRDb2xvckNsYXNzZXM6ZCxiYWNrZ3JvdW5kQ29sb3JTdHlsZXM6Y309eCh5KGUsImNvbG9yIikpLHtkaW1lbnNpb25TdHlsZXM6dX09VChlKSx7ZWxldmF0aW9uQ2xhc3NlczptfT1BKGUpLHt0aGVtZUNsYXNzZXM6Z309UyhlKSx7dDp2fT1MKCkscD13KCgpPT5pKEIoZS50eXBlKS5qb2luKCIsIikpKTtyZXR1cm4gQygoKT0+e3ZhciBvO2NvbnN0IG49IWEuZGVmYXVsdHx8ZS5sb2FkaW5nLGI9ZS5ib2lsZXJwbGF0ZXx8IW4/e306e2FyaWFMaXZlOiJwb2xpdGUiLGFyaWFMYWJlbDp2KGUubG9hZGluZ1RleHQpLHJvbGU6ImFsZXJ0In07cmV0dXJuIGwoImRpdiIsUCh7Y2xhc3M6WyJ2LXNrZWxldG9uLWxvYWRlciIseyJ2LXNrZWxldG9uLWxvYWRlci0tYm9pbGVycGxhdGUiOmUuYm9pbGVycGxhdGV9LGcudmFsdWUsZC52YWx1ZSxtLnZhbHVlXSxzdHlsZTpbYy52YWx1ZSxuP3UudmFsdWU6e31dfSxiKSxbbj9wLnZhbHVlOihvPWEuZGVmYXVsdCk9PW51bGw/dm9pZCAwOm8uY2FsbChhKV0pfSkse319fSk7ZXhwb3J0e0kgYXMgVn07Cg=="}},"time_used":146,"timings":{"blocked":120,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/Sm2mCfDE.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.820Z","timestamp":1785139669820,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/Sm2mCfDE.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"159e6c-654aa2b8343aa-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nKeep-Alive: timeout=5, max=89\r\nConnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":1416812,"size_decoded":289650,"mime_type":"application/javascript","magic":"ASCII text","md5":"e4d7db625a7040ad5585e0e11ce72786","sha1":"bb8de90c94332343f79dc3a89b142343e9d49954","sha256":"2e6d9bcd072952b32f44bf482be76fdd6690993ece99041e278a32008a6cacc1","sha512":"d6d9b7f0273e2283294f0281e405f30553fc2d95e629e1bab478449ad6480de896d62e92612baebe804a2f41d3fccd742cc2a6ae9ba403668170bdef532e5f23","ssdeep":"6144:zG5mxsLSfIR7+fCx500+JJeLXfkJoXiNRb/rQgBvLNzftF4VFvBTDUkwe+lduM0S:S5++Sq7+u5j06rBHsBWmnkaJ","tlshash":"5825814a62e620349213f07d4e1fd8167a39840f2d89fd483a5c92e45f4d93ca7f6fa9","first_seen":"2026-04-04T14:11:26.048372Z","last_seen":"2026-07-27T11:49:48.896604Z","times_seen":6,"resource_available":false,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzID0gKAogIGksCiAgbSA9IF9fdml0ZV9fbWFwRGVwcywKICBkID0gbS5mIHx8CiAgICAobS5mID0gWwogICAgICAiLi9ENTl6X0FFSC5qcyIsCiAgICAgICIuL0RsQVVxSzJVLmpzIiwKICAgICAgIi4vRFZ0NU1JWG4uanMiLAogICAgICAiLi9EX2l1NjI3Si5qcyIsCiAgICAgICIuL0MxMGRiWDNrLmpzIiwKICAgICAgIi4veFVvNXNLR2kuanMiLAogICAgICAiLi9COFR4VHlhay5qcyIsCiAgICAgICIuL0MyUWZicTkyLmpzIiwKICAgICAgIi4vQ0k4VkZzZ0guanMiLAogICAgICAiLi9mb3J3YXJkUmVmcy4zYmJ5UkdfSC5jc3MiLAogICAgICAiLi8xV1FGOW5sWi5qcyIsCiAgICAgICIuL1pmTlppeUNtLmpzIiwKICAgICAgIi4vQ011VVRsUzIuanMiLAogICAgICAiLi9pbmRleC5CSkdXbXFvVi5jc3MiLAogICAgICAiLi9WQnRuLmtPYTdtQjVBLmNzcyIsCiAgICAgICIuL2VudW1zLjBDSDdYZzJlLmNzcyIsCiAgICAgICIuL0NhUmhMZHVGLmpzIiwKICAgICAgIi4vQ2hFckpuMDcuanMiLAogICAgICAiLi9CXzJGa1A4Uy5qcyIsCiAgICAgICIuL0NBbGtXYnVfLmpzIiwKICAgICAgIi4vVkltZy4zRFFmck5vaC5jc3MiLAogICAgICAiLi9WVGV4dEZpZWxkLkVRdV9WN2lWLmNzcyIsCiAgICAgICIuL2JOZXB1ZHAxLmpzIiwKICAgICAgIi4vRDVqS2F4b0IuanMiLAogICAgICAiLi9XQkRoZm9KNy5qcyIsCiAgICAgICIuL0NEeEI1bk95LmpzIiwKICAgICAgIi4vVlNsaWRlR3JvdXAuQnNZSWcxckouY3NzIiwKICAgICAgIi4vQklwNS0zRUsuanMiLAogICAgICAiLi9EQWN2VkdKZS5qcyIsCiAgICAgICIuL1ZDYXJkLjZ1b09lbGxXLmNzcyIsCiAgICAgICIuL1ZDaGVja2JveEJ0bi5SNTJyTVVxdi5jc3MiLAogICAgICAiLi9lN3I1REt4OS5qcyIsCiAgICAgICIuL0Q4YXl1N3JQLmpzIiwKICAgICAgIi4vVk1lbnUuQURzejJBMjAuY3NzIiwKICAgICAgIi4vdHFncVVGQWEuanMiLAogICAgICAiLi9WU2tlbGV0b25Mb2FkZXIuQi1MbTVGWnMuY3NzIiwKICAgICAgIi4vQmhGbkFfQVAuanMiLAogICAgICAiLi9Dazh6Zzl5NC5qcyIsCiAgICAgICIuL1ZHcmlkLkQwUzBhMGNILmNzcyIsCiAgICAgICIuLzNrM0ZqR0dVLmpzIiwKICAgICAgIi4vRFc5X1JYQXEuanMiLAogICAgICAiLi9WT3RwSW5wdXQuQmJZRklzeWwuY3NzIiwKICAgICAgIi4vQ3BXbWVQZEYuanMiLAogICAgICAiLi9pbmRleC5EZEVCZmdNWS5jc3MiLAogICAgICAiLi9CTlN2S015cS5qcyIsCiAgICAgICIuLzNrNFZuRlh0LmpzIiwKICAgICAgIi4vQmhNdFJfSGIuanMiLAogICAgICAiLi9pbmRleC5DODJqclJaUC5jc3MiLAogICAgICAiLi9DeVEwZWF5Ny5qcyIsCiAgICAgICIuL0tjdjZIQXpILmpzIiwKICAgICAgIi4vRG5hR2NtVHIuanMiLAogICAgICAiLi9EQ1pmd1dmeC5qcyIsCiAgICAgICIuL0RLRmsyNVRDLmpzIiwKICAgICAgIi4vRElHSmNpWUouanMiLAogICAgICAiLi9WRGlhbG9nLkRrX3Y5QXY0LmNzcyIsCiAgICAgICIuL1ZCb3R0b21TaGVldC5ERUtHeVVxZS5jc3MiLAogICAgICAiLi9DMUR0Wm5JeS5qcyIsCiAgICAgICIuL1ZFeHBhbnNpb25QYW5lbHMuQmx6WkdBOGkuY3NzIiwKICAgICAgIi4vRGFsbmpjSDcuanMiLAogICAgICAiLi9jb250YWN0LXVzLmZlRFhmNEhjLmNzcyIsCiAgICAgICIuL0I0TjVqM0NwLmpzIiwKICAgICAgIi4vbG1NM2g0VncuanMiLAogICAgICAiLi9ENDlKY3RLcy5qcyIsCiAgICAgICIuL0JBakplQmtLLmpzIiwKICAgICAgIi4vVlRhYnMuQlRqREpaZ0guY3NzIiwKICAgICAgIi4vYWNjb3VudC5DUTN1elQ5TS5jc3MiLAogICAgICAiLi9IbEJLejg2dC5qcyIsCiAgICAgICIuL0ItU3JrR1paLmpzIiwKICAgICAgIi4vVlRhYmxlLkM5dXZPZkRjLmNzcyIsCiAgICAgICIuL0RFM1V5NWJ2LmpzIiwKICAgICAgIi4vVlBhZ2luYXRpb24uRHJkWkotaEQuY3NzIiwKICAgICAgIi4vQm9pc1A4Uk8uanMiLAogICAgICAiLi9EUHlvemlpRC5qcyIsCiAgICAgICIuL2Rpc2NvdW50LkJLcndoOUo3LmNzcyIsCiAgICAgICIuL0MzMURBQjAtLmpzIiwKICAgICAgIi4vQlZXbXRQZ3YuanMiLAogICAgICAiLi9DVzBHVVBPVi5qcyIsCiAgICAgICIuL1VxODlJc3R0LmpzIiwKICAgICAgIi4vQ1ppUE51R1cuanMiLAogICAgICAiLi9ENXNBempJaC5qcyIsCiAgICAgICIuL0NMOFhVdkVjLmpzIiwKICAgICAgIi4vaTVwZHkyTkcuanMiLAogICAgICAiLi9fXzJnZFVmTi5qcyIsCiAgICAgICIuL0JYTkhReUpOLmpzIiwKICAgICAgIi4vVkxpc3QuRHpxcGt5QV8uY3NzIiwKICAgICAgIi4vVkRhdGFUYWJsZS5CVmFTMkprVi5jc3MiLAogICAgICAiLi9zZWxlY3QuRFVJanBsNkouY3NzIiwKICAgICAgIi4vTld4aVBfSnguanMiLAogICAgICAiLi9UYWJsZS5CblNCaUdzQS5jc3MiLAogICAgICAiLi9kZXBvc2l0LkJXNXY1M2xLLmNzcyIsCiAgICAgICIuL0M4X0VER1drLmpzIiwKICAgICAgIi4vaW5kZXguQlc3am4zOE8uY3NzIiwKICAgICAgIi4vRC1nOGN6MmUuanMiLAogICAgICAiLi9DbE00UGVhZi5qcyIsCiAgICAgICIuL0RMSTF5ejNlLmpzIiwKICAgICAgIi4vQ2hlN0toeDcuanMiLAogICAgICAiLi9GYXEuRGhmcjQxVW4uY3NzIiwKICAgICAgIi4vRHhMVkxPQlQuanMiLAogICAgICAiLi9EUlotZ2dsWC5qcyIsCiAgICAgICIuL0JFa0ZNQ21qLmpzIiwKICAgICAgIi4vc3VjY2Vzcy5DZ2F4WDNVdy5jc3MiLAogICAgICAiLi9DVjk0UGFBdS5qcyIsCiAgICAgICIuL0JOa3o4dS1WLmpzIiwKICAgICAgIi4vNUdkbmQ5aTguanMiLAogICAgICAiLi9EUEJrekttdy5qcyIsCiAgICAgICIuL0s3eEQ1N1N1LmpzIiwKICAgICAgIi4vbWh4UEJEMGYuanMiLAogICAgICAiLi9CeE96dmhrMC5qcyIsCiAgICAgICIuL0NrZHdjN0tnLmpzIiwKICAgICAgIi4vVDR0Uk5mRXUuanMiLAogICAgICAiLi9EZ09aRG1Ccy5qcyIsCiAgICAgICIuL2J1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyLkJRV0lGREFlLmNzcyIsCiAgICAgICIuL0IxWmhKS0Z1LmpzIiwKICAgICAgIi4vZXhjaGFuZ2UtcGF5cGFsLkNzZEdZZko4LmNzcyIsCiAgICAgICIuL0JNWmdnMkdlLmpzIiwKICAgICAgIi4vQlF5MG84bjAuanMiLAogICAgICAiLi9SQWQya1FfVC5qcyIsCiAgICAgICIuL29ubGluZS1wYXltZW50LWZvci1idXNpbmVzcy5DVUZxRFlwNy5jc3MiLAogICAgICAiLi9EeGZ6clRlQi5qcyIsCiAgICAgICIuL29ubGluZS1wYXltZW50LkI1Skx0V3d6LmNzcyIsCiAgICAgICIuL0JzbnVKSko0LmpzIiwKICAgICAgIi4vcGF5bWVudC1nYXRlLkI0dVJSb3M5LmNzcyIsCiAgICAgICIuL0RiT2VxbTg1LmpzIiwKICAgICAgIi4vcUFyeFNVNV8uanMiLAogICAgICAiLi9EWEg2OHFmdS5qcyIsCiAgICAgICIuL0dsb2JhbERpYWxvZy5EY2ppUTFleC5jc3MiLAogICAgICAiLi9CMll3ZFBMRC5qcyIsCiAgICAgICIuL3Byb2ZpbGUuQ3RFZlkxV2guY3NzIiwKICAgICAgIi4vQ3BZV0JVYVcuanMiLAogICAgICAiLi9DeFpyWHk4Ny5qcyIsCiAgICAgICIuL0QzT25MZTNkLmpzIiwKICAgIF0pCikgPT4gaS5tYXAoKGkpID0+IGRbaV0pOwovKioKICogQHZ1ZS9zaGFyZWQgdjMuNS4xMwogKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwogKiBAbGljZW5zZSBNSVQKICoqLyAvKiEgI19fTk9fU0lERV9FRkZFQ1RTX18gKi8gZnVuY3Rpb24gbWFrZU1hcChlKSB7CiAgY29uc3QgdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgZm9yIChjb25zdCByIG9mIGUuc3BsaXQoIiwiKSkgdFtyXSA9IDE7CiAgcmV0dXJuIChyKSA9PiByIGluIHQ7Cn0KY29uc3QgRU1QVFlfT0JKID0ge30sCiAgRU1QVFlfQVJSID0gW10sCiAgTk9PUCA9ICgpID0+IHsgfSwKICBOTyA9ICgpID0+ICExLAogIGlzT24kMSA9IChlKSA9PgogICAgZS5jaGFyQ29kZUF0KDApID09PSAxMTEgJiYKICAgIGUuY2hhckNvZGVBdCgxKSA9PT0gMTEwICYmCiAgICAoZS5jaGFyQ29kZUF0KDIpID4gMTIyIHx8IGUuY2hhckNvZGVBdCgyKSA8IDk3KSwKICBpc01vZGVsTGlzdGVuZXIgPSAoZSkgPT4gZS5zdGFydHNXaXRoKCJvblVwZGF0ZToiKSwKICBleHRlbmQgPSBPYmplY3QuYXNzaWduLAogIHJlbW92ZSA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZS5pbmRleE9mKHQpOwogICAgciA+IC0xICYmIGUuc3BsaWNlKHIsIDEpOwogIH0sCiAgaGFzT3duUHJvcGVydHkkMiA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCiAgaGFzT3duJDEgPSAoZSwgdCkgPT4gaGFzT3duUHJvcGVydHkkMi5jYWxsKGUsIHQpLAogIGlzQXJyYXkkMiA9IEFycmF5LmlzQXJyYXksCiAgaXNNYXAgPSAoZSkgPT4gdG9UeXBlU3RyaW5nJDEoZSkgPT09ICJbb2JqZWN0IE1hcF0iLAogIGlzU2V0ID0gKGUpID0+IHRvVHlwZVN0cmluZyQxKGUpID09PSAiW29iamVjdCBTZXRdIiwKICBpc0RhdGUkMiA9IChlKSA9PiB0b1R5cGVTdHJpbmckMShlKSA9PT0gIltvYmplY3QgRGF0ZV0iLAogIGlzUmVnRXhwJDEgPSAoZSkgPT4gdG9UeXBlU3RyaW5nJDEoZSkgPT09ICJbb2JqZWN0IFJlZ0V4cF0iLAogIGlzRnVuY3Rpb24kMSA9IChlKSA9PiB0eXBlb2YgZSA9PSAiZnVuY3Rpb24iLAogIGlzU3RyaW5nJDEgPSAoZSkgPT4gdHlwZW9mIGUgPT0gInN0cmluZyIsCiAgaXNTeW1ib2wkMSA9IChlKSA9PiB0eXBlb2YgZSA9PSAic3ltYm9sIiwKICBpc09iamVjdCQyID0gKGUpID0+IGUgIT09IG51bGwgJiYgdHlwZW9mIGUgPT0gIm9iamVjdCIsCiAgaXNQcm9taXNlJDEgPSAoZSkgPT4KICAgIChpc09iamVjdCQyKGUpIHx8IGlzRnVuY3Rpb24kMShlKSkgJiYKICAgIGlzRnVuY3Rpb24kMShlLnRoZW4pICYmCiAgICBpc0Z1bmN0aW9uJDEoZS5jYXRjaCksCiAgb2JqZWN0VG9TdHJpbmckMSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsCiAgdG9UeXBlU3RyaW5nJDEgPSAoZSkgPT4gb2JqZWN0VG9TdHJpbmckMS5jYWxsKGUpLAogIHRvUmF3VHlwZSA9IChlKSA9PiB0b1R5cGVTdHJpbmckMShlKS5zbGljZSg4LCAtMSksCiAgaXNQbGFpbk9iamVjdCQ0ID0gKGUpID0+IHRvVHlwZVN0cmluZyQxKGUpID09PSAiW29iamVjdCBPYmplY3RdIiwKICBpc0ludGVnZXJLZXkgPSAoZSkgPT4KICAgIGlzU3RyaW5nJDEoZSkgJiYgZSAhPT0gIk5hTiIgJiYgZVswXSAhPT0gIi0iICYmICIiICsgcGFyc2VJbnQoZSwgMTApID09PSBlLAogIGlzUmVzZXJ2ZWRQcm9wID0gbWFrZU1hcCgKICAgICIsa2V5LHJlZixyZWZfZm9yLHJlZl9rZXksb25Wbm9kZUJlZm9yZU1vdW50LG9uVm5vZGVNb3VudGVkLG9uVm5vZGVCZWZvcmVVcGRhdGUsb25Wbm9kZVVwZGF0ZWQsb25Wbm9kZUJlZm9yZVVubW91bnQsb25Wbm9kZVVubW91bnRlZCIKICApLAogIGNhY2hlU3RyaW5nRnVuY3Rpb24gPSAoZSkgPT4gewogICAgY29uc3QgdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICByZXR1cm4gKHIpID0+IHRbcl0gfHwgKHRbcl0gPSBlKHIpKTsKICB9LAogIGNhbWVsaXplUkUgPSAvLShcdykvZywKICBjYW1lbGl6ZSA9IGNhY2hlU3RyaW5nRnVuY3Rpb24oKGUpID0+CiAgICBlLnJlcGxhY2UoY2FtZWxpemVSRSwgKHQsIHIpID0+IChyID8gci50b1VwcGVyQ2FzZSgpIDogIiIpKQogICksCiAgaHlwaGVuYXRlUkUgPSAvXEIoW0EtWl0pL2csCiAgaHlwaGVuYXRlID0gY2FjaGVTdHJpbmdGdW5jdGlvbigoZSkgPT4KICAgIGUucmVwbGFjZShoeXBoZW5hdGVSRSwgIi0kMSIpLnRvTG93ZXJDYXNlKCkKICApLAogIGNhcGl0YWxpemUkMSA9IGNhY2hlU3RyaW5nRnVuY3Rpb24oCiAgICAoZSkgPT4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGUuc2xpY2UoMSkKICApLAogIHRvSGFuZGxlcktleSA9IGNhY2hlU3RyaW5nRnVuY3Rpb24oKGUpID0+IChlID8gYG9uJHtjYXBpdGFsaXplJDEoZSl9YCA6ICIiKSksCiAgaGFzQ2hhbmdlZCA9IChlLCB0KSA9PiAhT2JqZWN0LmlzKGUsIHQpLAogIGludm9rZUFycmF5Rm5zID0gKGUsIC4uLnQpID0+IHsKICAgIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7IHIrKykgZVtyXSguLi50KTsKICB9LAogIGRlZiA9IChlLCB0LCByLCBuID0gITEpID0+IHsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0LCB7CiAgICAgIGNvbmZpZ3VyYWJsZTogITAsCiAgICAgIGVudW1lcmFibGU6ICExLAogICAgICB3cml0YWJsZTogbiwKICAgICAgdmFsdWU6IHIsCiAgICB9KTsKICB9LAogIGxvb3NlVG9OdW1iZXIgPSAoZSkgPT4gewogICAgY29uc3QgdCA9IHBhcnNlRmxvYXQoZSk7CiAgICByZXR1cm4gaXNOYU4odCkgPyBlIDogdDsKICB9LAogIHRvTnVtYmVyID0gKGUpID0+IHsKICAgIGNvbnN0IHQgPSBpc1N0cmluZyQxKGUpID8gTnVtYmVyKGUpIDogTmFOOwogICAgcmV0dXJuIGlzTmFOKHQpID8gZSA6IHQ7CiAgfTsKbGV0IF9nbG9iYWxUaGlzJDM7CmNvbnN0IGdldEdsb2JhbFRoaXMkMSA9ICgpID0+CiAgX2dsb2JhbFRoaXMkMyB8fAogIChfZ2xvYmFsVGhpcyQzID0KICAgIHR5cGVvZiBnbG9iYWxUaGlzIDwgInUiCiAgICAgID8gZ2xvYmFsVGhpcwogICAgICA6IHR5cGVvZiBzZWxmIDwgInUiCiAgICAgICAgPyBzZWxmCiAgICAgICAgOiB0eXBlb2Ygd2luZG93IDwgInUiCiAgICAgICAgICA/IHdpbmRvdwogICAgICAgICAgOiB0eXBlb2YgZ2xvYmFsIDwgInUiCiAgICAgICAgICAgID8gZ2xvYmFsCiAgICAgICAgICAgIDoge30pLAogIEdMT0JBTFNfQUxMT1dFRCA9CiAgICAiSW5maW5pdHksdW5kZWZpbmVkLE5hTixpc0Zpbml0ZSxpc05hTixwYXJzZUZsb2F0LHBhcnNlSW50LGRlY29kZVVSSSxkZWNvZGVVUklDb21wb25lbnQsZW5jb2RlVVJJLGVuY29kZVVSSUNvbXBvbmVudCxNYXRoLE51bWJlcixEYXRlLEFycmF5LE9iamVjdCxCb29sZWFuLFN0cmluZyxSZWdFeHAsTWFwLFNldCxKU09OLEludGwsQmlnSW50LGNvbnNvbGUsRXJyb3IsU3ltYm9sIiwKICBpc0dsb2JhbGx5QWxsb3dlZCA9IG1ha2VNYXAoR0xPQkFMU19BTExPV0VEKTsKZnVuY3Rpb24gbm9ybWFsaXplU3R5bGUoZSkgewogIGlmIChpc0FycmF5JDIoZSkpIHsKICAgIGNvbnN0IHQgPSB7fTsKICAgIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7IHIrKykgewogICAgICBjb25zdCBuID0gZVtyXSwKICAgICAgICBpID0gaXNTdHJpbmckMShuKSA/IHBhcnNlU3RyaW5nU3R5bGUobikgOiBub3JtYWxpemVTdHlsZShuKTsKICAgICAgaWYgKGkpIGZvciAoY29uc3QgYSBpbiBpKSB0W2FdID0gaVthXTsKICAgIH0KICAgIHJldHVybiB0OwogIH0gZWxzZSBpZiAoaXNTdHJpbmckMShlKSB8fCBpc09iamVjdCQyKGUpKSByZXR1cm4gZTsKfQpjb25zdCBsaXN0RGVsaW1pdGVyUkUgPSAvOyg/IVteKF0qXCkpL2csCiAgcHJvcGVydHlEZWxpbWl0ZXJSRSA9IC86KFteXSspLywKICBzdHlsZUNvbW1lbnRSRSA9IC9cL1wqW15dKj9cKlwvL2c7CmZ1bmN0aW9uIHBhcnNlU3RyaW5nU3R5bGUoZSkgewogIGNvbnN0IHQgPSB7fTsKICByZXR1cm4gKAogICAgZQogICAgICAucmVwbGFjZShzdHlsZUNvbW1lbnRSRSwgIiIpCiAgICAgIC5zcGxpdChsaXN0RGVsaW1pdGVyUkUpCiAgICAgIC5mb3JFYWNoKChyKSA9PiB7CiAgICAgICAgaWYgKHIpIHsKICAgICAgICAgIGNvbnN0IG4gPSByLnNwbGl0KHByb3BlcnR5RGVsaW1pdGVyUkUpOwogICAgICAgICAgbi5sZW5ndGggPiAxICYmICh0W25bMF0udHJpbSgpXSA9IG5bMV0udHJpbSgpKTsKICAgICAgICB9CiAgICAgIH0pLAogICAgdAogICk7Cn0KZnVuY3Rpb24gbm9ybWFsaXplQ2xhc3MoZSkgewogIGxldCB0ID0gIiI7CiAgaWYgKGlzU3RyaW5nJDEoZSkpIHQgPSBlOwogIGVsc2UgaWYgKGlzQXJyYXkkMihlKSkKICAgIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7IHIrKykgewogICAgICBjb25zdCBuID0gbm9ybWFsaXplQ2xhc3MoZVtyXSk7CiAgICAgIG4gJiYgKHQgKz0gbiArICIgIik7CiAgICB9CiAgZWxzZSBpZiAoaXNPYmplY3QkMihlKSkgZm9yIChjb25zdCByIGluIGUpIGVbcl0gJiYgKHQgKz0gciArICIgIik7CiAgcmV0dXJuIHQudHJpbSgpOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZVByb3BzKGUpIHsKICBpZiAoIWUpIHJldHVybiBudWxsOwogIGxldCB7IGNsYXNzOiB0LCBzdHlsZTogciB9ID0gZTsKICByZXR1cm4gKAogICAgdCAmJiAhaXNTdHJpbmckMSh0KSAmJiAoZS5jbGFzcyA9IG5vcm1hbGl6ZUNsYXNzKHQpKSwKICAgIHIgJiYgKGUuc3R5bGUgPSBub3JtYWxpemVTdHlsZShyKSksCiAgICBlCiAgKTsKfQpjb25zdCBzcGVjaWFsQm9vbGVhbkF0dHJzID0KICAiaXRlbXNjb3BlLGFsbG93ZnVsbHNjcmVlbixmb3Jtbm92YWxpZGF0ZSxpc21hcCxub21vZHVsZSxub3ZhbGlkYXRlLHJlYWRvbmx5IiwKICBpc1NwZWNpYWxCb29sZWFuQXR0ciA9IG1ha2VNYXAoc3BlY2lhbEJvb2xlYW5BdHRycyk7CmZ1bmN0aW9uIGluY2x1ZGVCb29sZWFuQXR0cihlKSB7CiAgcmV0dXJuICEhZSB8fCBlID09PSAiIjsKfQpmdW5jdGlvbiBsb29zZUNvbXBhcmVBcnJheXMoZSwgdCkgewogIGlmIChlLmxlbmd0aCAhPT0gdC5sZW5ndGgpIHJldHVybiAhMTsKICBsZXQgciA9ICEwOwogIGZvciAobGV0IG4gPSAwOyByICYmIG4gPCBlLmxlbmd0aDsgbisrKSByID0gbG9vc2VFcXVhbChlW25dLCB0W25dKTsKICByZXR1cm4gcjsKfQpmdW5jdGlvbiBsb29zZUVxdWFsKGUsIHQpIHsKICBpZiAoZSA9PT0gdCkgcmV0dXJuICEwOwogIGxldCByID0gaXNEYXRlJDIoZSksCiAgICBuID0gaXNEYXRlJDIodCk7CiAgaWYgKHIgfHwgbikgcmV0dXJuIHIgJiYgbiA/IGUuZ2V0VGltZSgpID09PSB0LmdldFRpbWUoKSA6ICExOwogIGlmICgoKHIgPSBpc1N5bWJvbCQxKGUpKSwgKG4gPSBpc1N5bWJvbCQxKHQpKSwgciB8fCBuKSkgcmV0dXJuIGUgPT09IHQ7CiAgaWYgKCgociA9IGlzQXJyYXkkMihlKSksIChuID0gaXNBcnJheSQyKHQpKSwgciB8fCBuKSkKICAgIHJldHVybiByICYmIG4gPyBsb29zZUNvbXBhcmVBcnJheXMoZSwgdCkgOiAhMTsKICBpZiAoKChyID0gaXNPYmplY3QkMihlKSksIChuID0gaXNPYmplY3QkMih0KSksIHIgfHwgbikpIHsKICAgIGlmICghciB8fCAhbikgcmV0dXJuICExOwogICAgY29uc3QgaSA9IE9iamVjdC5rZXlzKGUpLmxlbmd0aCwKICAgICAgYSA9IE9iamVjdC5rZXlzKHQpLmxlbmd0aDsKICAgIGlmIChpICE9PSBhKSByZXR1cm4gITE7CiAgICBmb3IgKGNvbnN0IG8gaW4gZSkgewogICAgICBjb25zdCBsID0gZS5oYXNPd25Qcm9wZXJ0eShvKSwKICAgICAgICBjID0gdC5oYXNPd25Qcm9wZXJ0eShvKTsKICAgICAgaWYgKChsICYmICFjKSB8fCAoIWwgJiYgYykgfHwgIWxvb3NlRXF1YWwoZVtvXSwgdFtvXSkpIHJldHVybiAhMTsKICAgIH0KICB9CiAgcmV0dXJuIFN0cmluZyhlKSA9PT0gU3RyaW5nKHQpOwp9CmZ1bmN0aW9uIGxvb3NlSW5kZXhPZihlLCB0KSB7CiAgcmV0dXJuIGUuZmluZEluZGV4KChyKSA9PiBsb29zZUVxdWFsKHIsIHQpKTsKfQpjb25zdCBpc1JlZiQxID0gKGUpID0+ICEhKGUgJiYgZS5fX3ZfaXNSZWYgPT09ICEwKSwKICB0b0Rpc3BsYXlTdHJpbmckMSA9IChlKSA9PgogICAgaXNTdHJpbmckMShlKQogICAgICA/IGUKICAgICAgOiBlID09IG51bGwKICAgICAgICA/ICIiCiAgICAgICAgOiBpc0FycmF5JDIoZSkgfHwKICAgICAgICAgIChpc09iamVjdCQyKGUpICYmCiAgICAgICAgICAgIChlLnRvU3RyaW5nID09PSBvYmplY3RUb1N0cmluZyQxIHx8ICFpc0Z1bmN0aW9uJDEoZS50b1N0cmluZykpKQogICAgICAgICAgPyBpc1JlZiQxKGUpCiAgICAgICAgICAgID8gdG9EaXNwbGF5U3RyaW5nJDEoZS52YWx1ZSkKICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShlLCByZXBsYWNlciwgMikKICAgICAgICAgIDogU3RyaW5nKGUpLAogIHJlcGxhY2VyID0gKGUsIHQpID0+CiAgICBpc1JlZiQxKHQpCiAgICAgID8gcmVwbGFjZXIoZSwgdC52YWx1ZSkKICAgICAgOiBpc01hcCh0KQogICAgICAgID8gewogICAgICAgICAgW2BNYXAoJHt0LnNpemV9KWBdOiBbLi4udC5lbnRyaWVzKCldLnJlZHVjZSgKICAgICAgICAgICAgKHIsIFtuLCBpXSwgYSkgPT4gKChyW3N0cmluZ2lmeVN5bWJvbChuLCBhKSArICIgPT4iXSA9IGkpLCByKSwKICAgICAgICAgICAge30KICAgICAgICAgICksCiAgICAgICAgfQogICAgICAgIDogaXNTZXQodCkKICAgICAgICAgID8geyBbYFNldCgke3Quc2l6ZX0pYF06IFsuLi50LnZhbHVlcygpXS5tYXAoKHIpID0+IHN0cmluZ2lmeVN5bWJvbChyKSkgfQogICAgICAgICAgOiBpc1N5bWJvbCQxKHQpCiAgICAgICAgICAgID8gc3RyaW5naWZ5U3ltYm9sKHQpCiAgICAgICAgICAgIDogaXNPYmplY3QkMih0KSAmJiAhaXNBcnJheSQyKHQpICYmICFpc1BsYWluT2JqZWN0JDQodCkKICAgICAgICAgICAgICA/IFN0cmluZyh0KQogICAgICAgICAgICAgIDogdCwKICBzdHJpbmdpZnlTeW1ib2wgPSAoZSwgdCA9ICIiKSA9PiB7CiAgICB2YXIgcjsKICAgIHJldHVybiBpc1N5bWJvbCQxKGUpID8gYFN5bWJvbCgkeyhyID0gZS5kZXNjcmlwdGlvbikgIT0gbnVsbCA/IHIgOiB0fSlgIDogZTsKICB9OwovKioKICogQHZ1ZS9yZWFjdGl2aXR5IHYzLjUuMTMKICogKGMpIDIwMTgtcHJlc2VudCBZdXhpIChFdmFuKSBZb3UgYW5kIFZ1ZSBjb250cmlidXRvcnMKICogQGxpY2Vuc2UgTUlUCiAqKi8gbGV0IGFjdGl2ZUVmZmVjdFNjb3BlOwpjbGFzcyBFZmZlY3RTY29wZSB7CiAgY29uc3RydWN0b3IodCA9ICExKSB7CiAgICAodGhpcy5kZXRhY2hlZCA9IHQpLAogICAgICAodGhpcy5fYWN0aXZlID0gITApLAogICAgICAodGhpcy5lZmZlY3RzID0gW10pLAogICAgICAodGhpcy5jbGVhbnVwcyA9IFtdKSwKICAgICAgKHRoaXMuX2lzUGF1c2VkID0gITEpLAogICAgICAodGhpcy5wYXJlbnQgPSBhY3RpdmVFZmZlY3RTY29wZSksCiAgICAgICF0ICYmCiAgICAgIGFjdGl2ZUVmZmVjdFNjb3BlICYmCiAgICAgICh0aGlzLmluZGV4ID0KICAgICAgICAoYWN0aXZlRWZmZWN0U2NvcGUuc2NvcGVzIHx8IChhY3RpdmVFZmZlY3RTY29wZS5zY29wZXMgPSBbXSkpLnB1c2goCiAgICAgICAgICB0aGlzCiAgICAgICAgKSAtIDEpOwogIH0KICBnZXQgYWN0aXZlKCkgewogICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTsKICB9CiAgcGF1c2UoKSB7CiAgICBpZiAodGhpcy5fYWN0aXZlKSB7CiAgICAgIHRoaXMuX2lzUGF1c2VkID0gITA7CiAgICAgIGxldCB0LCByOwogICAgICBpZiAodGhpcy5zY29wZXMpCiAgICAgICAgZm9yICh0ID0gMCwgciA9IHRoaXMuc2NvcGVzLmxlbmd0aDsgdCA8IHI7IHQrKykgdGhpcy5zY29wZXNbdF0ucGF1c2UoKTsKICAgICAgZm9yICh0ID0gMCwgciA9IHRoaXMuZWZmZWN0cy5sZW5ndGg7IHQgPCByOyB0KyspIHRoaXMuZWZmZWN0c1t0XS5wYXVzZSgpOwogICAgfQogIH0KICByZXN1bWUoKSB7CiAgICBpZiAodGhpcy5fYWN0aXZlICYmIHRoaXMuX2lzUGF1c2VkKSB7CiAgICAgIHRoaXMuX2lzUGF1c2VkID0gITE7CiAgICAgIGxldCB0LCByOwogICAgICBpZiAodGhpcy5zY29wZXMpCiAgICAgICAgZm9yICh0ID0gMCwgciA9IHRoaXMuc2NvcGVzLmxlbmd0aDsgdCA8IHI7IHQrKykgdGhpcy5zY29wZXNbdF0ucmVzdW1lKCk7CiAgICAgIGZvciAodCA9IDAsIHIgPSB0aGlzLmVmZmVjdHMubGVuZ3RoOyB0IDwgcjsgdCsrKSB0aGlzLmVmZmVjdHNbdF0ucmVzdW1lKCk7CiAgICB9CiAgfQogIHJ1bih0KSB7CiAgICBpZiAodGhpcy5fYWN0aXZlKSB7CiAgICAgIGNvbnN0IHIgPSBhY3RpdmVFZmZlY3RTY29wZTsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm4gKGFjdGl2ZUVmZmVjdFNjb3BlID0gdGhpcyksIHQoKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBhY3RpdmVFZmZlY3RTY29wZSA9IHI7CiAgICAgIH0KICAgIH0KICB9CiAgb24oKSB7CiAgICBhY3RpdmVFZmZlY3RTY29wZSA9IHRoaXM7CiAgfQogIG9mZigpIHsKICAgIGFjdGl2ZUVmZmVjdFNjb3BlID0gdGhpcy5wYXJlbnQ7CiAgfQogIHN0b3AodCkgewogICAgaWYgKHRoaXMuX2FjdGl2ZSkgewogICAgICB0aGlzLl9hY3RpdmUgPSAhMTsKICAgICAgbGV0IHIsIG47CiAgICAgIGZvciAociA9IDAsIG4gPSB0aGlzLmVmZmVjdHMubGVuZ3RoOyByIDwgbjsgcisrKSB0aGlzLmVmZmVjdHNbcl0uc3RvcCgpOwogICAgICBmb3IgKHRoaXMuZWZmZWN0cy5sZW5ndGggPSAwLCByID0gMCwgbiA9IHRoaXMuY2xlYW51cHMubGVuZ3RoOyByIDwgbjsgcisrKQogICAgICAgIHRoaXMuY2xlYW51cHNbcl0oKTsKICAgICAgaWYgKCgodGhpcy5jbGVhbnVwcy5sZW5ndGggPSAwKSwgdGhpcy5zY29wZXMpKSB7CiAgICAgICAgZm9yIChyID0gMCwgbiA9IHRoaXMuc2NvcGVzLmxlbmd0aDsgciA8IG47IHIrKykgdGhpcy5zY29wZXNbcl0uc3RvcCghMCk7CiAgICAgICAgdGhpcy5zY29wZXMubGVuZ3RoID0gMDsKICAgICAgfQogICAgICBpZiAoIXRoaXMuZGV0YWNoZWQgJiYgdGhpcy5wYXJlbnQgJiYgIXQpIHsKICAgICAgICBjb25zdCBpID0gdGhpcy5wYXJlbnQuc2NvcGVzLnBvcCgpOwogICAgICAgIGkgJiYKICAgICAgICAgIGkgIT09IHRoaXMgJiYKICAgICAgICAgICgodGhpcy5wYXJlbnQuc2NvcGVzW3RoaXMuaW5kZXhdID0gaSksIChpLmluZGV4ID0gdGhpcy5pbmRleCkpOwogICAgICB9CiAgICAgIHRoaXMucGFyZW50ID0gdm9pZCAwOwogICAgfQogIH0KfQpmdW5jdGlvbiBlZmZlY3RTY29wZShlKSB7CiAgcmV0dXJuIG5ldyBFZmZlY3RTY29wZShlKTsKfQpmdW5jdGlvbiBnZXRDdXJyZW50U2NvcGUoKSB7CiAgcmV0dXJuIGFjdGl2ZUVmZmVjdFNjb3BlOwp9CmZ1bmN0aW9uIG9uU2NvcGVEaXNwb3NlKGUsIHQgPSAhMSkgewogIGFjdGl2ZUVmZmVjdFNjb3BlICYmIGFjdGl2ZUVmZmVjdFNjb3BlLmNsZWFudXBzLnB1c2goZSk7Cn0KbGV0IGFjdGl2ZVN1YjsKY29uc3QgcGF1c2VkUXVldWVFZmZlY3RzID0gbmV3IFdlYWtTZXQoKTsKY2xhc3MgUmVhY3RpdmVFZmZlY3QgewogIGNvbnN0cnVjdG9yKHQpIHsKICAgICh0aGlzLmZuID0gdCksCiAgICAgICh0aGlzLmRlcHMgPSB2b2lkIDApLAogICAgICAodGhpcy5kZXBzVGFpbCA9IHZvaWQgMCksCiAgICAgICh0aGlzLmZsYWdzID0gNSksCiAgICAgICh0aGlzLm5leHQgPSB2b2lkIDApLAogICAgICAodGhpcy5jbGVhbnVwID0gdm9pZCAwKSwKICAgICAgKHRoaXMuc2NoZWR1bGVyID0gdm9pZCAwKSwKICAgICAgYWN0aXZlRWZmZWN0U2NvcGUgJiYKICAgICAgYWN0aXZlRWZmZWN0U2NvcGUuYWN0aXZlICYmCiAgICAgIGFjdGl2ZUVmZmVjdFNjb3BlLmVmZmVjdHMucHVzaCh0aGlzKTsKICB9CiAgcGF1c2UoKSB7CiAgICB0aGlzLmZsYWdzIHw9IDY0OwogIH0KICByZXN1bWUoKSB7CiAgICB0aGlzLmZsYWdzICYgNjQgJiYKICAgICAgKCh0aGlzLmZsYWdzICY9IC02NSksCiAgICAgICAgcGF1c2VkUXVldWVFZmZlY3RzLmhhcyh0aGlzKSAmJgogICAgICAgIChwYXVzZWRRdWV1ZUVmZmVjdHMuZGVsZXRlKHRoaXMpLCB0aGlzLnRyaWdnZXIoKSkpOwogIH0KICBub3RpZnkoKSB7CiAgICAodGhpcy5mbGFncyAmIDIgJiYgISh0aGlzLmZsYWdzICYgMzIpKSB8fCB0aGlzLmZsYWdzICYgOCB8fCBiYXRjaCh0aGlzKTsKICB9CiAgcnVuKCkgewogICAgaWYgKCEodGhpcy5mbGFncyAmIDEpKSByZXR1cm4gdGhpcy5mbigpOwogICAgKHRoaXMuZmxhZ3MgfD0gMiksIGNsZWFudXBFZmZlY3QodGhpcyksIHByZXBhcmVEZXBzKHRoaXMpOwogICAgY29uc3QgdCA9IGFjdGl2ZVN1YiwKICAgICAgciA9IHNob3VsZFRyYWNrOwogICAgKGFjdGl2ZVN1YiA9IHRoaXMpLCAoc2hvdWxkVHJhY2sgPSAhMCk7CiAgICB0cnkgewogICAgICByZXR1cm4gdGhpcy5mbigpOwogICAgfSBmaW5hbGx5IHsKICAgICAgY2xlYW51cERlcHModGhpcyksIChhY3RpdmVTdWIgPSB0KSwgKHNob3VsZFRyYWNrID0gciksICh0aGlzLmZsYWdzICY9IC0zKTsKICAgIH0KICB9CiAgc3RvcCgpIHsKICAgIGlmICh0aGlzLmZsYWdzICYgMSkgewogICAgICBmb3IgKGxldCB0ID0gdGhpcy5kZXBzOyB0OyB0ID0gdC5uZXh0RGVwKSByZW1vdmVTdWIodCk7CiAgICAgICh0aGlzLmRlcHMgPSB0aGlzLmRlcHNUYWlsID0gdm9pZCAwKSwKICAgICAgICBjbGVhbnVwRWZmZWN0KHRoaXMpLAogICAgICAgIHRoaXMub25TdG9wICYmIHRoaXMub25TdG9wKCksCiAgICAgICAgKHRoaXMuZmxhZ3MgJj0gLTIpOwogICAgfQogIH0KICB0cmlnZ2VyKCkgewogICAgdGhpcy5mbGFncyAmIDY0CiAgICAgID8gcGF1c2VkUXVldWVFZmZlY3RzLmFkZCh0aGlzKQogICAgICA6IHRoaXMuc2NoZWR1bGVyCiAgICAgICAgPyB0aGlzLnNjaGVkdWxlcigpCiAgICAgICAgOiB0aGlzLnJ1bklmRGlydHkoKTsKICB9CiAgcnVuSWZEaXJ0eSgpIHsKICAgIGlzRGlydHkodGhpcykgJiYgdGhpcy5ydW4oKTsKICB9CiAgZ2V0IGRpcnR5KCkgewogICAgcmV0dXJuIGlzRGlydHkodGhpcyk7CiAgfQp9CmxldCBiYXRjaERlcHRoID0gMCwKICBiYXRjaGVkU3ViLAogIGJhdGNoZWRDb21wdXRlZDsKZnVuY3Rpb24gYmF0Y2goZSwgdCA9ICExKSB7CiAgaWYgKCgoZS5mbGFncyB8PSA4KSwgdCkpIHsKICAgIChlLm5leHQgPSBiYXRjaGVkQ29tcHV0ZWQpLCAoYmF0Y2hlZENvbXB1dGVkID0gZSk7CiAgICByZXR1cm47CiAgfQogIChlLm5leHQgPSBiYXRjaGVkU3ViKSwgKGJhdGNoZWRTdWIgPSBlKTsKfQpmdW5jdGlvbiBzdGFydEJhdGNoKCkgewogIGJhdGNoRGVwdGgrKzsKfQpmdW5jdGlvbiBlbmRCYXRjaCgpIHsKICBpZiAoLS1iYXRjaERlcHRoID4gMCkgcmV0dXJuOwogIGlmIChiYXRjaGVkQ29tcHV0ZWQpIHsKICAgIGxldCB0ID0gYmF0Y2hlZENvbXB1dGVkOwogICAgZm9yIChiYXRjaGVkQ29tcHV0ZWQgPSB2b2lkIDA7IHQ7KSB7CiAgICAgIGNvbnN0IHIgPSB0Lm5leHQ7CiAgICAgICh0Lm5leHQgPSB2b2lkIDApLCAodC5mbGFncyAmPSAtOSksICh0ID0gcik7CiAgICB9CiAgfQogIGxldCBlOwogIGZvciAoOyBiYXRjaGVkU3ViOykgewogICAgbGV0IHQgPSBiYXRjaGVkU3ViOwogICAgZm9yIChiYXRjaGVkU3ViID0gdm9pZCAwOyB0OykgewogICAgICBjb25zdCByID0gdC5uZXh0OwogICAgICBpZiAoKCh0Lm5leHQgPSB2b2lkIDApLCAodC5mbGFncyAmPSAtOSksIHQuZmxhZ3MgJiAxKSkKICAgICAgICB0cnkgewogICAgICAgICAgdC50cmlnZ2VyKCk7CiAgICAgICAgfSBjYXRjaCAobikgewogICAgICAgICAgZSB8fCAoZSA9IG4pOwogICAgICAgIH0KICAgICAgdCA9IHI7CiAgICB9CiAgfQogIGlmIChlKSB0aHJvdyBlOwp9CmZ1bmN0aW9uIHByZXBhcmVEZXBzKGUpIHsKICBmb3IgKGxldCB0ID0gZS5kZXBzOyB0OyB0ID0gdC5uZXh0RGVwKQogICAgKHQudmVyc2lvbiA9IC0xKSwKICAgICAgKHQucHJldkFjdGl2ZUxpbmsgPSB0LmRlcC5hY3RpdmVMaW5rKSwKICAgICAgKHQuZGVwLmFjdGl2ZUxpbmsgPSB0KTsKfQpmdW5jdGlvbiBjbGVhbnVwRGVwcyhlKSB7CiAgbGV0IHQsCiAgICByID0gZS5kZXBzVGFpbCwKICAgIG4gPSByOwogIGZvciAoOyBuOykgewogICAgY29uc3QgaSA9IG4ucHJldkRlcDsKICAgIG4udmVyc2lvbiA9PT0gLTEKICAgICAgPyAobiA9PT0gciAmJiAociA9IGkpLCByZW1vdmVTdWIobiksIHJlbW92ZURlcChuKSkKICAgICAgOiAodCA9IG4pLAogICAgICAobi5kZXAuYWN0aXZlTGluayA9IG4ucHJldkFjdGl2ZUxpbmspLAogICAgICAobi5wcmV2QWN0aXZlTGluayA9IHZvaWQgMCksCiAgICAgIChuID0gaSk7CiAgfQogIChlLmRlcHMgPSB0KSwgKGUuZGVwc1RhaWwgPSByKTsKfQpmdW5jdGlvbiBpc0RpcnR5KGUpIHsKICBmb3IgKGxldCB0ID0gZS5kZXBzOyB0OyB0ID0gdC5uZXh0RGVwKQogICAgaWYgKAogICAgICB0LmRlcC52ZXJzaW9uICE9PSB0LnZlcnNpb24gfHwKICAgICAgKHQuZGVwLmNvbXB1dGVkICYmCiAgICAgICAgKHJlZnJlc2hDb21wdXRlZCh0LmRlcC5jb21wdXRlZCkgfHwgdC5kZXAudmVyc2lvbiAhPT0gdC52ZXJzaW9uKSkKICAgICkKICAgICAgcmV0dXJuICEwOwogIHJldHVybiAhIWUuX2RpcnR5Owp9CmZ1bmN0aW9uIHJlZnJlc2hDb21wdXRlZChlKSB7CiAgaWYgKAogICAgKGUuZmxhZ3MgJiA0ICYmICEoZS5mbGFncyAmIDE2KSkgfHwKICAgICgoZS5mbGFncyAmPSAtMTcpLCBlLmdsb2JhbFZlcnNpb24gPT09IGdsb2JhbFZlcnNpb24pCiAgKQogICAgcmV0dXJuOwogIGUuZ2xvYmFsVmVyc2lvbiA9IGdsb2JhbFZlcnNpb247CiAgY29uc3QgdCA9IGUuZGVwOwogIGlmICgoKGUuZmxhZ3MgfD0gMiksIHQudmVyc2lvbiA+IDAgJiYgIWUuaXNTU1IgJiYgZS5kZXBzICYmICFpc0RpcnR5KGUpKSkgewogICAgZS5mbGFncyAmPSAtMzsKICAgIHJldHVybjsKICB9CiAgY29uc3QgciA9IGFjdGl2ZVN1YiwKICAgIG4gPSBzaG91bGRUcmFjazsKICAoYWN0aXZlU3ViID0gZSksIChzaG91bGRUcmFjayA9ICEwKTsKICB0cnkgewogICAgcHJlcGFyZURlcHMoZSk7CiAgICBjb25zdCBpID0gZS5mbihlLl92YWx1ZSk7CiAgICAodC52ZXJzaW9uID09PSAwIHx8IGhhc0NoYW5nZWQoaSwgZS5fdmFsdWUpKSAmJgogICAgICAoKGUuX3ZhbHVlID0gaSksIHQudmVyc2lvbisrKTsKICB9IGNhdGNoIChpKSB7CiAgICB0aHJvdyAodC52ZXJzaW9uKyssIGkpOwogIH0gZmluYWxseSB7CiAgICAoYWN0aXZlU3ViID0gciksIChzaG91bGRUcmFjayA9IG4pLCBjbGVhbnVwRGVwcyhlKSwgKGUuZmxhZ3MgJj0gLTMpOwogIH0KfQpmdW5jdGlvbiByZW1vdmVTdWIoZSwgdCA9ICExKSB7CiAgY29uc3QgeyBkZXA6IHIsIHByZXZTdWI6IG4sIG5leHRTdWI6IGkgfSA9IGU7CiAgaWYgKAogICAgKG4gJiYgKChuLm5leHRTdWIgPSBpKSwgKGUucHJldlN1YiA9IHZvaWQgMCkpLAogICAgICBpICYmICgoaS5wcmV2U3ViID0gbiksIChlLm5leHRTdWIgPSB2b2lkIDApKSwKICAgICAgci5zdWJzID09PSBlICYmICgoci5zdWJzID0gbiksICFuICYmIHIuY29tcHV0ZWQpKQogICkgewogICAgci5jb21wdXRlZC5mbGFncyAmPSAtNTsKICAgIGZvciAobGV0IGEgPSByLmNvbXB1dGVkLmRlcHM7IGE7IGEgPSBhLm5leHREZXApIHJlbW92ZVN1YihhLCAhMCk7CiAgfQogICF0ICYmICEtLXIuc2MgJiYgci5tYXAgJiYgci5tYXAuZGVsZXRlKHIua2V5KTsKfQpmdW5jdGlvbiByZW1vdmVEZXAoZSkgewogIGNvbnN0IHsgcHJldkRlcDogdCwgbmV4dERlcDogciB9ID0gZTsKICB0ICYmICgodC5uZXh0RGVwID0gciksIChlLnByZXZEZXAgPSB2b2lkIDApKSwKICAgIHIgJiYgKChyLnByZXZEZXAgPSB0KSwgKGUubmV4dERlcCA9IHZvaWQgMCkpOwp9CmZ1bmN0aW9uIGVmZmVjdChlLCB0KSB7CiAgZS5lZmZlY3QgaW5zdGFuY2VvZiBSZWFjdGl2ZUVmZmVjdCAmJiAoZSA9IGUuZWZmZWN0LmZuKTsKICBjb25zdCByID0gbmV3IFJlYWN0aXZlRWZmZWN0KGUpOwogIHQgJiYgZXh0ZW5kKHIsIHQpOwogIHRyeSB7CiAgICByLnJ1bigpOwogIH0gY2F0Y2ggKGkpIHsKICAgIHRocm93IChyLnN0b3AoKSwgaSk7CiAgfQogIGNvbnN0IG4gPSByLnJ1bi5iaW5kKHIpOwogIHJldHVybiAobi5lZmZlY3QgPSByKSwgbjsKfQpmdW5jdGlvbiBzdG9wKGUpIHsKICBlLmVmZmVjdC5zdG9wKCk7Cn0KbGV0IHNob3VsZFRyYWNrID0gITA7CmNvbnN0IHRyYWNrU3RhY2sgPSBbXTsKZnVuY3Rpb24gcGF1c2VUcmFja2luZygpIHsKICB0cmFja1N0YWNrLnB1c2goc2hvdWxkVHJhY2spLCAoc2hvdWxkVHJhY2sgPSAhMSk7Cn0KZnVuY3Rpb24gcmVzZXRUcmFja2luZygpIHsKICBjb25zdCBlID0gdHJhY2tTdGFjay5wb3AoKTsKICBzaG91bGRUcmFjayA9IGUgPT09IHZvaWQgMCA/ICEwIDogZTsKfQpmdW5jdGlvbiBjbGVhbnVwRWZmZWN0KGUpIHsKICBjb25zdCB7IGNsZWFudXA6IHQgfSA9IGU7CiAgaWYgKCgoZS5jbGVhbnVwID0gdm9pZCAwKSwgdCkpIHsKICAgIGNvbnN0IHIgPSBhY3RpdmVTdWI7CiAgICBhY3RpdmVTdWIgPSB2b2lkIDA7CiAgICB0cnkgewogICAgICB0KCk7CiAgICB9IGZpbmFsbHkgewogICAgICBhY3RpdmVTdWIgPSByOwogICAgfQogIH0KfQpsZXQgZ2xvYmFsVmVyc2lvbiA9IDA7CmNsYXNzIExpbmsgewogIGNvbnN0cnVjdG9yKHQsIHIpIHsKICAgICh0aGlzLnN1YiA9IHQpLAogICAgICAodGhpcy5kZXAgPSByKSwKICAgICAgKHRoaXMudmVyc2lvbiA9IHIudmVyc2lvbiksCiAgICAgICh0aGlzLm5leHREZXAgPQogICAgICAgIHRoaXMucHJldkRlcCA9CiAgICAgICAgdGhpcy5uZXh0U3ViID0KICAgICAgICB0aGlzLnByZXZTdWIgPQogICAgICAgIHRoaXMucHJldkFjdGl2ZUxpbmsgPQogICAgICAgIHZvaWQgMCk7CiAgfQp9CmNsYXNzIERlcCB7CiAgY29uc3RydWN0b3IodCkgewogICAgKHRoaXMuY29tcHV0ZWQgPSB0KSwKICAgICAgKHRoaXMudmVyc2lvbiA9IDApLAogICAgICAodGhpcy5hY3RpdmVMaW5rID0gdm9pZCAwKSwKICAgICAgKHRoaXMuc3VicyA9IHZvaWQgMCksCiAgICAgICh0aGlzLm1hcCA9IHZvaWQgMCksCiAgICAgICh0aGlzLmtleSA9IHZvaWQgMCksCiAgICAgICh0aGlzLnNjID0gMCk7CiAgfQogIHRyYWNrKHQpIHsKICAgIGlmICghYWN0aXZlU3ViIHx8ICFzaG91bGRUcmFjayB8fCBhY3RpdmVTdWIgPT09IHRoaXMuY29tcHV0ZWQpIHJldHVybjsKICAgIGxldCByID0gdGhpcy5hY3RpdmVMaW5rOwogICAgaWYgKHIgPT09IHZvaWQgMCB8fCByLnN1YiAhPT0gYWN0aXZlU3ViKQogICAgICAociA9IHRoaXMuYWN0aXZlTGluayA9IG5ldyBMaW5rKGFjdGl2ZVN1YiwgdGhpcykpLAogICAgICAgIGFjdGl2ZVN1Yi5kZXBzCiAgICAgICAgICA/ICgoci5wcmV2RGVwID0gYWN0aXZlU3ViLmRlcHNUYWlsKSwKICAgICAgICAgICAgKGFjdGl2ZVN1Yi5kZXBzVGFpbC5uZXh0RGVwID0gciksCiAgICAgICAgICAgIChhY3RpdmVTdWIuZGVwc1RhaWwgPSByKSkKICAgICAgICAgIDogKGFjdGl2ZVN1Yi5kZXBzID0gYWN0aXZlU3ViLmRlcHNUYWlsID0gciksCiAgICAgICAgYWRkU3ViKHIpOwogICAgZWxzZSBpZiAoci52ZXJzaW9uID09PSAtMSAmJiAoKHIudmVyc2lvbiA9IHRoaXMudmVyc2lvbiksIHIubmV4dERlcCkpIHsKICAgICAgY29uc3QgbiA9IHIubmV4dERlcDsKICAgICAgKG4ucHJldkRlcCA9IHIucHJldkRlcCksCiAgICAgICAgci5wcmV2RGVwICYmIChyLnByZXZEZXAubmV4dERlcCA9IG4pLAogICAgICAgIChyLnByZXZEZXAgPSBhY3RpdmVTdWIuZGVwc1RhaWwpLAogICAgICAgIChyLm5leHREZXAgPSB2b2lkIDApLAogICAgICAgIChhY3RpdmVTdWIuZGVwc1RhaWwubmV4dERlcCA9IHIpLAogICAgICAgIChhY3RpdmVTdWIuZGVwc1RhaWwgPSByKSwKICAgICAgICBhY3RpdmVTdWIuZGVwcyA9PT0gciAmJiAoYWN0aXZlU3ViLmRlcHMgPSBuKTsKICAgIH0KICAgIHJldHVybiByOwogIH0KICB0cmlnZ2VyKHQpIHsKICAgIHRoaXMudmVyc2lvbisrLCBnbG9iYWxWZXJzaW9uKyssIHRoaXMubm90aWZ5KHQpOwogIH0KICBub3RpZnkodCkgewogICAgc3RhcnRCYXRjaCgpOwogICAgdHJ5IHsKICAgICAgZm9yIChsZXQgciA9IHRoaXMuc3ViczsgcjsgciA9IHIucHJldlN1YikKICAgICAgICByLnN1Yi5ub3RpZnkoKSAmJiByLnN1Yi5kZXAubm90aWZ5KCk7CiAgICB9IGZpbmFsbHkgewogICAgICBlbmRCYXRjaCgpOwogICAgfQogIH0KfQpmdW5jdGlvbiBhZGRTdWIoZSkgewogIGlmICgoZS5kZXAuc2MrKywgZS5zdWIuZmxhZ3MgJiA0KSkgewogICAgY29uc3QgdCA9IGUuZGVwLmNvbXB1dGVkOwogICAgaWYgKHQgJiYgIWUuZGVwLnN1YnMpIHsKICAgICAgdC5mbGFncyB8PSAyMDsKICAgICAgZm9yIChsZXQgbiA9IHQuZGVwczsgbjsgbiA9IG4ubmV4dERlcCkgYWRkU3ViKG4pOwogICAgfQogICAgY29uc3QgciA9IGUuZGVwLnN1YnM7CiAgICByICE9PSBlICYmICgoZS5wcmV2U3ViID0gciksIHIgJiYgKHIubmV4dFN1YiA9IGUpKSwgKGUuZGVwLnN1YnMgPSBlKTsKICB9Cn0KY29uc3QgdGFyZ2V0TWFwID0gbmV3IFdlYWtNYXAoKSwKICBJVEVSQVRFX0tFWSA9IFN5bWJvbCgiIiksCiAgTUFQX0tFWV9JVEVSQVRFX0tFWSA9IFN5bWJvbCgiIiksCiAgQVJSQVlfSVRFUkFURV9LRVkgPSBTeW1ib2woIiIpOwpmdW5jdGlvbiB0cmFjayhlLCB0LCByKSB7CiAgaWYgKHNob3VsZFRyYWNrICYmIGFjdGl2ZVN1YikgewogICAgbGV0IG4gPSB0YXJnZXRNYXAuZ2V0KGUpOwogICAgbiB8fCB0YXJnZXRNYXAuc2V0KGUsIChuID0gbmV3IE1hcCgpKSk7CiAgICBsZXQgaSA9IG4uZ2V0KHIpOwogICAgaSB8fCAobi5zZXQociwgKGkgPSBuZXcgRGVwKCkpKSwgKGkubWFwID0gbiksIChpLmtleSA9IHIpKSwgaS50cmFjaygpOwogIH0KfQpmdW5jdGlvbiB0cmlnZ2VyKGUsIHQsIHIsIG4sIGksIGEpIHsKICBjb25zdCBvID0gdGFyZ2V0TWFwLmdldChlKTsKICBpZiAoIW8pIHsKICAgIGdsb2JhbFZlcnNpb24rKzsKICAgIHJldHVybjsKICB9CiAgY29uc3QgbCA9IChjKSA9PiB7CiAgICBjICYmIGMudHJpZ2dlcigpOwogIH07CiAgaWYgKChzdGFydEJhdGNoKCksIHQgPT09ICJjbGVhciIpKSBvLmZvckVhY2gobCk7CiAgZWxzZSB7CiAgICBjb25zdCBjID0gaXNBcnJheSQyKGUpLAogICAgICB1ID0gYyAmJiBpc0ludGVnZXJLZXkocik7CiAgICBpZiAoYyAmJiByID09PSAibGVuZ3RoIikgewogICAgICBjb25zdCBkID0gTnVtYmVyKG4pOwogICAgICBvLmZvckVhY2goKEUsIGIpID0+IHsKICAgICAgICAoYiA9PT0gImxlbmd0aCIgfHwKICAgICAgICAgIGIgPT09IEFSUkFZX0lURVJBVEVfS0VZIHx8CiAgICAgICAgICAoIWlzU3ltYm9sJDEoYikgJiYgYiA+PSBkKSkgJiYKICAgICAgICAgIGwoRSk7CiAgICAgIH0pOwogICAgfSBlbHNlCiAgICAgIHN3aXRjaCAoCiAgICAgICgociAhPT0gdm9pZCAwIHx8IG8uaGFzKHZvaWQgMCkpICYmIGwoby5nZXQocikpLAogICAgICAgIHUgJiYgbChvLmdldChBUlJBWV9JVEVSQVRFX0tFWSkpLAogICAgICAgIHQpCiAgICAgICkgewogICAgICAgIGNhc2UgImFkZCI6CiAgICAgICAgICBjCiAgICAgICAgICAgID8gdSAmJiBsKG8uZ2V0KCJsZW5ndGgiKSkKICAgICAgICAgICAgOiAobChvLmdldChJVEVSQVRFX0tFWSkpLAogICAgICAgICAgICAgIGlzTWFwKGUpICYmIGwoby5nZXQoTUFQX0tFWV9JVEVSQVRFX0tFWSkpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImRlbGV0ZSI6CiAgICAgICAgICBjIHx8CiAgICAgICAgICAgIChsKG8uZ2V0KElURVJBVEVfS0VZKSksIGlzTWFwKGUpICYmIGwoby5nZXQoTUFQX0tFWV9JVEVSQVRFX0tFWSkpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInNldCI6CiAgICAgICAgICBpc01hcChlKSAmJiBsKG8uZ2V0KElURVJBVEVfS0VZKSk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogIH0KICBlbmRCYXRjaCgpOwp9CmZ1bmN0aW9uIGdldERlcEZyb21SZWFjdGl2ZShlLCB0KSB7CiAgY29uc3QgciA9IHRhcmdldE1hcC5nZXQoZSk7CiAgcmV0dXJuIHIgJiYgci5nZXQodCk7Cn0KZnVuY3Rpb24gcmVhY3RpdmVSZWFkQXJyYXkoZSkgewogIGNvbnN0IHQgPSB0b1JhdyhlKTsKICByZXR1cm4gdCA9PT0gZQogICAgPyB0CiAgICA6ICh0cmFjayh0LCAiaXRlcmF0ZSIsIEFSUkFZX0lURVJBVEVfS0VZKSwKICAgICAgaXNTaGFsbG93KGUpID8gdCA6IHQubWFwKHRvUmVhY3RpdmUpKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVhZEFycmF5KGUpIHsKICByZXR1cm4gdHJhY2soKGUgPSB0b1JhdyhlKSksICJpdGVyYXRlIiwgQVJSQVlfSVRFUkFURV9LRVkpLCBlOwp9CmNvbnN0IGFycmF5SW5zdHJ1bWVudGF0aW9ucyA9IHsKICBfX3Byb3RvX186IG51bGwsCiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CiAgICByZXR1cm4gaXRlcmF0b3IodGhpcywgU3ltYm9sLml0ZXJhdG9yLCB0b1JlYWN0aXZlKTsKICB9LAogIGNvbmNhdCguLi5lKSB7CiAgICByZXR1cm4gcmVhY3RpdmVSZWFkQXJyYXkodGhpcykuY29uY2F0KAogICAgICAuLi5lLm1hcCgodCkgPT4gKGlzQXJyYXkkMih0KSA/IHJlYWN0aXZlUmVhZEFycmF5KHQpIDogdCkpCiAgICApOwogIH0sCiAgZW50cmllcygpIHsKICAgIHJldHVybiBpdGVyYXRvcih0aGlzLCAiZW50cmllcyIsIChlKSA9PiAoKGVbMV0gPSB0b1JlYWN0aXZlKGVbMV0pKSwgZSkpOwogIH0sCiAgZXZlcnkoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgImV2ZXJ5IiwgZSwgdCwgdm9pZCAwLCBhcmd1bWVudHMpOwogIH0sCiAgZmlsdGVyKGUsIHQpIHsKICAgIHJldHVybiBhcHBseSQxKHRoaXMsICJmaWx0ZXIiLCBlLCB0LCAocikgPT4gci5tYXAodG9SZWFjdGl2ZSksIGFyZ3VtZW50cyk7CiAgfSwKICBmaW5kKGUsIHQpIHsKICAgIHJldHVybiBhcHBseSQxKHRoaXMsICJmaW5kIiwgZSwgdCwgdG9SZWFjdGl2ZSwgYXJndW1lbnRzKTsKICB9LAogIGZpbmRJbmRleChlLCB0KSB7CiAgICByZXR1cm4gYXBwbHkkMSh0aGlzLCAiZmluZEluZGV4IiwgZSwgdCwgdm9pZCAwLCBhcmd1bWVudHMpOwogIH0sCiAgZmluZExhc3QoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgImZpbmRMYXN0IiwgZSwgdCwgdG9SZWFjdGl2ZSwgYXJndW1lbnRzKTsKICB9LAogIGZpbmRMYXN0SW5kZXgoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgImZpbmRMYXN0SW5kZXgiLCBlLCB0LCB2b2lkIDAsIGFyZ3VtZW50cyk7CiAgfSwKICBmb3JFYWNoKGUsIHQpIHsKICAgIHJldHVybiBhcHBseSQxKHRoaXMsICJmb3JFYWNoIiwgZSwgdCwgdm9pZCAwLCBhcmd1bWVudHMpOwogIH0sCiAgaW5jbHVkZXMoLi4uZSkgewogICAgcmV0dXJuIHNlYXJjaFByb3h5KHRoaXMsICJpbmNsdWRlcyIsIGUpOwogIH0sCiAgaW5kZXhPZiguLi5lKSB7CiAgICByZXR1cm4gc2VhcmNoUHJveHkodGhpcywgImluZGV4T2YiLCBlKTsKICB9LAogIGpvaW4oZSkgewogICAgcmV0dXJuIHJlYWN0aXZlUmVhZEFycmF5KHRoaXMpLmpvaW4oZSk7CiAgfSwKICBsYXN0SW5kZXhPZiguLi5lKSB7CiAgICByZXR1cm4gc2VhcmNoUHJveHkodGhpcywgImxhc3RJbmRleE9mIiwgZSk7CiAgfSwKICBtYXAoZSwgdCkgewogICAgcmV0dXJuIGFwcGx5JDEodGhpcywgIm1hcCIsIGUsIHQsIHZvaWQgMCwgYXJndW1lbnRzKTsKICB9LAogIHBvcCgpIHsKICAgIHJldHVybiBub1RyYWNraW5nKHRoaXMsICJwb3AiKTsKICB9LAogIHB1c2goLi4uZSkgewogICAgcmV0dXJuIG5vVHJhY2tpbmcodGhpcywgInB1c2giLCBlKTsKICB9LAogIHJlZHVjZShlLCAuLi50KSB7CiAgICByZXR1cm4gcmVkdWNlKHRoaXMsICJyZWR1Y2UiLCBlLCB0KTsKICB9LAogIHJlZHVjZVJpZ2h0KGUsIC4uLnQpIHsKICAgIHJldHVybiByZWR1Y2UodGhpcywgInJlZHVjZVJpZ2h0IiwgZSwgdCk7CiAgfSwKICBzaGlmdCgpIHsKICAgIHJldHVybiBub1RyYWNraW5nKHRoaXMsICJzaGlmdCIpOwogIH0sCiAgc29tZShlLCB0KSB7CiAgICByZXR1cm4gYXBwbHkkMSh0aGlzLCAic29tZSIsIGUsIHQsIHZvaWQgMCwgYXJndW1lbnRzKTsKICB9LAogIHNwbGljZSguLi5lKSB7CiAgICByZXR1cm4gbm9UcmFja2luZyh0aGlzLCAic3BsaWNlIiwgZSk7CiAgfSwKICB0b1JldmVyc2VkKCkgewogICAgcmV0dXJuIHJlYWN0aXZlUmVhZEFycmF5KHRoaXMpLnRvUmV2ZXJzZWQoKTsKICB9LAogIHRvU29ydGVkKGUpIHsKICAgIHJldHVybiByZWFjdGl2ZVJlYWRBcnJheSh0aGlzKS50b1NvcnRlZChlKTsKICB9LAogIHRvU3BsaWNlZCguLi5lKSB7CiAgICByZXR1cm4gcmVhY3RpdmVSZWFkQXJyYXkodGhpcykudG9TcGxpY2VkKC4uLmUpOwogIH0sCiAgdW5zaGlmdCguLi5lKSB7CiAgICByZXR1cm4gbm9UcmFja2luZyh0aGlzLCAidW5zaGlmdCIsIGUpOwogIH0sCiAgdmFsdWVzKCkgewogICAgcmV0dXJuIGl0ZXJhdG9yKHRoaXMsICJ2YWx1ZXMiLCB0b1JlYWN0aXZlKTsKICB9LAp9OwpmdW5jdGlvbiBpdGVyYXRvcihlLCB0LCByKSB7CiAgY29uc3QgbiA9IHNoYWxsb3dSZWFkQXJyYXkoZSksCiAgICBpID0gblt0XSgpOwogIHJldHVybiAoCiAgICBuICE9PSBlICYmCiAgICAhaXNTaGFsbG93KGUpICYmCiAgICAoKGkuX25leHQgPSBpLm5leHQpLAogICAgICAoaS5uZXh0ID0gKCkgPT4gewogICAgICAgIGNvbnN0IGEgPSBpLl9uZXh0KCk7CiAgICAgICAgcmV0dXJuIGEudmFsdWUgJiYgKGEudmFsdWUgPSByKGEudmFsdWUpKSwgYTsKICAgICAgfSkpLAogICAgaQogICk7Cn0KY29uc3QgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTsKZnVuY3Rpb24gYXBwbHkkMShlLCB0LCByLCBuLCBpLCBhKSB7CiAgY29uc3QgbyA9IHNoYWxsb3dSZWFkQXJyYXkoZSksCiAgICBsID0gbyAhPT0gZSAmJiAhaXNTaGFsbG93KGUpLAogICAgYyA9IG9bdF07CiAgaWYgKGMgIT09IGFycmF5UHJvdG9bdF0pIHsKICAgIGNvbnN0IEUgPSBjLmFwcGx5KGUsIGEpOwogICAgcmV0dXJuIGwgPyB0b1JlYWN0aXZlKEUpIDogRTsKICB9CiAgbGV0IHUgPSByOwogIG8gIT09IGUgJiYKICAgIChsCiAgICAgID8gKHUgPSBmdW5jdGlvbiAoRSwgYikgewogICAgICAgIHJldHVybiByLmNhbGwodGhpcywgdG9SZWFjdGl2ZShFKSwgYiwgZSk7CiAgICAgIH0pCiAgICAgIDogci5sZW5ndGggPiAyICYmCiAgICAgICh1ID0gZnVuY3Rpb24gKEUsIGIpIHsKICAgICAgICByZXR1cm4gci5jYWxsKHRoaXMsIEUsIGIsIGUpOwogICAgICB9KSk7CiAgY29uc3QgZCA9IGMuY2FsbChvLCB1LCBuKTsKICByZXR1cm4gbCAmJiBpID8gaShkKSA6IGQ7Cn0KZnVuY3Rpb24gcmVkdWNlKGUsIHQsIHIsIG4pIHsKICBjb25zdCBpID0gc2hhbGxvd1JlYWRBcnJheShlKTsKICBsZXQgYSA9IHI7CiAgcmV0dXJuICgKICAgIGkgIT09IGUgJiYKICAgIChpc1NoYWxsb3coZSkKICAgICAgPyByLmxlbmd0aCA+IDMgJiYKICAgICAgKGEgPSBmdW5jdGlvbiAobywgbCwgYykgewogICAgICAgIHJldHVybiByLmNhbGwodGhpcywgbywgbCwgYywgZSk7CiAgICAgIH0pCiAgICAgIDogKGEgPSBmdW5jdGlvbiAobywgbCwgYykgewogICAgICAgIHJldHVybiByLmNhbGwodGhpcywgbywgdG9SZWFjdGl2ZShsKSwgYywgZSk7CiAgICAgIH0pKSwKICAgIGlbdF0oYSwgLi4ubikKICApOwp9CmZ1bmN0aW9uIHNlYXJjaFByb3h5KGUsIHQsIHIpIHsKICBjb25zdCBuID0gdG9SYXcoZSk7CiAgdHJhY2sobiwgIml0ZXJhdGUiLCBBUlJBWV9JVEVSQVRFX0tFWSk7CiAgY29uc3QgaSA9IG5bdF0oLi4ucik7CiAgcmV0dXJuIChpID09PSAtMSB8fCBpID09PSAhMSkgJiYgaXNQcm94eShyWzBdKQogICAgPyAoKHJbMF0gPSB0b1JhdyhyWzBdKSksIG5bdF0oLi4ucikpCiAgICA6IGk7Cn0KZnVuY3Rpb24gbm9UcmFja2luZyhlLCB0LCByID0gW10pIHsKICBwYXVzZVRyYWNraW5nKCksIHN0YXJ0QmF0Y2goKTsKICBjb25zdCBuID0gdG9SYXcoZSlbdF0uYXBwbHkoZSwgcik7CiAgcmV0dXJuIGVuZEJhdGNoKCksIHJlc2V0VHJhY2tpbmcoKSwgbjsKfQpjb25zdCBpc05vblRyYWNrYWJsZUtleXMgPSBtYWtlTWFwKCJfX3Byb3RvX18sX192X2lzUmVmLF9faXNWdWUiKSwKICBidWlsdEluU3ltYm9scyA9IG5ldyBTZXQoCiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTeW1ib2wpCiAgICAgIC5maWx0ZXIoKGUpID0+IGUgIT09ICJhcmd1bWVudHMiICYmIGUgIT09ICJjYWxsZXIiKQogICAgICAubWFwKChlKSA9PiBTeW1ib2xbZV0pCiAgICAgIC5maWx0ZXIoaXNTeW1ib2wkMSkKICApOwpmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eSQxKGUpIHsKICBpc1N5bWJvbCQxKGUpIHx8IChlID0gU3RyaW5nKGUpKTsKICBjb25zdCB0ID0gdG9SYXcodGhpcyk7CiAgcmV0dXJuIHRyYWNrKHQsICJoYXMiLCBlKSwgdC5oYXNPd25Qcm9wZXJ0eShlKTsKfQpjbGFzcyBCYXNlUmVhY3RpdmVIYW5kbGVyIHsKICBjb25zdHJ1Y3Rvcih0ID0gITEsIHIgPSAhMSkgewogICAgKHRoaXMuX2lzUmVhZG9ubHkgPSB0KSwgKHRoaXMuX2lzU2hhbGxvdyA9IHIpOwogIH0KICBnZXQodCwgciwgbikgewogICAgaWYgKHIgPT09ICJfX3Zfc2tpcCIpIHJldHVybiB0Ll9fdl9za2lwOwogICAgY29uc3QgaSA9IHRoaXMuX2lzUmVhZG9ubHksCiAgICAgIGEgPSB0aGlzLl9pc1NoYWxsb3c7CiAgICBpZiAociA9PT0gIl9fdl9pc1JlYWN0aXZlIikgcmV0dXJuICFpOwogICAgaWYgKHIgPT09ICJfX3ZfaXNSZWFkb25seSIpIHJldHVybiBpOwogICAgaWYgKHIgPT09ICJfX3ZfaXNTaGFsbG93IikgcmV0dXJuIGE7CiAgICBpZiAociA9PT0gIl9fdl9yYXciKQogICAgICByZXR1cm4gbiA9PT0KICAgICAgICAoaQogICAgICAgICAgPyBhCiAgICAgICAgICAgID8gc2hhbGxvd1JlYWRvbmx5TWFwCiAgICAgICAgICAgIDogcmVhZG9ubHlNYXAKICAgICAgICAgIDogYQogICAgICAgICAgICA/IHNoYWxsb3dSZWFjdGl2ZU1hcAogICAgICAgICAgICA6IHJlYWN0aXZlTWFwCiAgICAgICAgKS5nZXQodCkgfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YobikKICAgICAgICA/IHQKICAgICAgICA6IHZvaWQgMDsKICAgIGNvbnN0IG8gPSBpc0FycmF5JDIodCk7CiAgICBpZiAoIWkpIHsKICAgICAgbGV0IGM7CiAgICAgIGlmIChvICYmIChjID0gYXJyYXlJbnN0cnVtZW50YXRpb25zW3JdKSkgcmV0dXJuIGM7CiAgICAgIGlmIChyID09PSAiaGFzT3duUHJvcGVydHkiKSByZXR1cm4gaGFzT3duUHJvcGVydHkkMTsKICAgIH0KICAgIGNvbnN0IGwgPSBSZWZsZWN0LmdldCh0LCByLCBpc1JlZih0KSA/IHQgOiBuKTsKICAgIHJldHVybiAoaXNTeW1ib2wkMShyKSA/IGJ1aWx0SW5TeW1ib2xzLmhhcyhyKSA6IGlzTm9uVHJhY2thYmxlS2V5cyhyKSkgfHwKICAgICAgKGkgfHwgdHJhY2sodCwgImdldCIsIHIpLCBhKQogICAgICA/IGwKICAgICAgOiBpc1JlZihsKQogICAgICAgID8gbyAmJiBpc0ludGVnZXJLZXkocikKICAgICAgICAgID8gbAogICAgICAgICAgOiBsLnZhbHVlCiAgICAgICAgOiBpc09iamVjdCQyKGwpCiAgICAgICAgICA/IGkKICAgICAgICAgICAgPyByZWFkb25seShsKQogICAgICAgICAgICA6IHJlYWN0aXZlKGwpCiAgICAgICAgICA6IGw7CiAgfQp9CmNsYXNzIE11dGFibGVSZWFjdGl2ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlUmVhY3RpdmVIYW5kbGVyIHsKICBjb25zdHJ1Y3Rvcih0ID0gITEpIHsKICAgIHN1cGVyKCExLCB0KTsKICB9CiAgc2V0KHQsIHIsIG4sIGkpIHsKICAgIGxldCBhID0gdFtyXTsKICAgIGlmICghdGhpcy5faXNTaGFsbG93KSB7CiAgICAgIGNvbnN0IGMgPSBpc1JlYWRvbmx5KGEpOwogICAgICBpZiAoCiAgICAgICAgKCFpc1NoYWxsb3cobikgJiYgIWlzUmVhZG9ubHkobikgJiYgKChhID0gdG9SYXcoYSkpLCAobiA9IHRvUmF3KG4pKSksCiAgICAgICAgICAhaXNBcnJheSQyKHQpICYmIGlzUmVmKGEpICYmICFpc1JlZihuKSkKICAgICAgKQogICAgICAgIHJldHVybiBjID8gITEgOiAoKGEudmFsdWUgPSBuKSwgITApOwogICAgfQogICAgY29uc3QgbyA9CiAgICAgIGlzQXJyYXkkMih0KSAmJiBpc0ludGVnZXJLZXkocikgPyBOdW1iZXIocikgPCB0Lmxlbmd0aCA6IGhhc093biQxKHQsIHIpLAogICAgICBsID0gUmVmbGVjdC5zZXQodCwgciwgbiwgaXNSZWYodCkgPyB0IDogaSk7CiAgICByZXR1cm4gKAogICAgICB0ID09PSB0b1JhdyhpKSAmJgogICAgICAobwogICAgICAgID8gaGFzQ2hhbmdlZChuLCBhKSAmJiB0cmlnZ2VyKHQsICJzZXQiLCByLCBuKQogICAgICAgIDogdHJpZ2dlcih0LCAiYWRkIiwgciwgbikpLAogICAgICBsCiAgICApOwogIH0KICBkZWxldGVQcm9wZXJ0eSh0LCByKSB7CiAgICBjb25zdCBuID0gaGFzT3duJDEodCwgcik7CiAgICB0W3JdOwogICAgY29uc3QgaSA9IFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodCwgcik7CiAgICByZXR1cm4gaSAmJiBuICYmIHRyaWdnZXIodCwgImRlbGV0ZSIsIHIsIHZvaWQgMCksIGk7CiAgfQogIGhhcyh0LCByKSB7CiAgICBjb25zdCBuID0gUmVmbGVjdC5oYXModCwgcik7CiAgICByZXR1cm4gKCFpc1N5bWJvbCQxKHIpIHx8ICFidWlsdEluU3ltYm9scy5oYXMocikpICYmIHRyYWNrKHQsICJoYXMiLCByKSwgbjsKICB9CiAgb3duS2V5cyh0KSB7CiAgICByZXR1cm4gKAogICAgICB0cmFjayh0LCAiaXRlcmF0ZSIsIGlzQXJyYXkkMih0KSA/ICJsZW5ndGgiIDogSVRFUkFURV9LRVkpLAogICAgICBSZWZsZWN0Lm93bktleXModCkKICAgICk7CiAgfQp9CmNsYXNzIFJlYWRvbmx5UmVhY3RpdmVIYW5kbGVyIGV4dGVuZHMgQmFzZVJlYWN0aXZlSGFuZGxlciB7CiAgY29uc3RydWN0b3IodCA9ICExKSB7CiAgICBzdXBlcighMCwgdCk7CiAgfQogIHNldCh0LCByKSB7CiAgICByZXR1cm4gITA7CiAgfQogIGRlbGV0ZVByb3BlcnR5KHQsIHIpIHsKICAgIHJldHVybiAhMDsKICB9Cn0KY29uc3QgbXV0YWJsZUhhbmRsZXJzID0gbmV3IE11dGFibGVSZWFjdGl2ZUhhbmRsZXIoKSwKICByZWFkb25seUhhbmRsZXJzID0gbmV3IFJlYWRvbmx5UmVhY3RpdmVIYW5kbGVyKCksCiAgc2hhbGxvd1JlYWN0aXZlSGFuZGxlcnMgPSBuZXcgTXV0YWJsZVJlYWN0aXZlSGFuZGxlcighMCksCiAgc2hhbGxvd1JlYWRvbmx5SGFuZGxlcnMgPSBuZXcgUmVhZG9ubHlSZWFjdGl2ZUhhbmRsZXIoITApLAogIHRvU2hhbGxvdyA9IChlKSA9PiBlLAogIGdldFByb3RvID0gKGUpID0+IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoZSk7CmZ1bmN0aW9uIGNyZWF0ZUl0ZXJhYmxlTWV0aG9kKGUsIHQsIHIpIHsKICByZXR1cm4gZnVuY3Rpb24gKC4uLm4pIHsKICAgIGNvbnN0IGkgPSB0aGlzLl9fdl9yYXcsCiAgICAgIGEgPSB0b1JhdyhpKSwKICAgICAgbyA9IGlzTWFwKGEpLAogICAgICBsID0gZSA9PT0gImVudHJpZXMiIHx8IChlID09PSBTeW1ib2wuaXRlcmF0b3IgJiYgbyksCiAgICAgIGMgPSBlID09PSAia2V5cyIgJiYgbywKICAgICAgdSA9IGlbZV0oLi4ubiksCiAgICAgIGQgPSByID8gdG9TaGFsbG93IDogdCA/IHRvUmVhZG9ubHkgOiB0b1JlYWN0aXZlOwogICAgcmV0dXJuICgKICAgICAgIXQgJiYgdHJhY2soYSwgIml0ZXJhdGUiLCBjID8gTUFQX0tFWV9JVEVSQVRFX0tFWSA6IElURVJBVEVfS0VZKSwKICAgICAgewogICAgICAgIG5leHQoKSB7CiAgICAgICAgICBjb25zdCB7IHZhbHVlOiBFLCBkb25lOiBiIH0gPSB1Lm5leHQoKTsKICAgICAgICAgIHJldHVybiBiCiAgICAgICAgICAgID8geyB2YWx1ZTogRSwgZG9uZTogYiB9CiAgICAgICAgICAgIDogeyB2YWx1ZTogbCA/IFtkKEVbMF0pLCBkKEVbMV0pXSA6IGQoRSksIGRvbmU6IGIgfTsKICAgICAgICB9LAogICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkgewogICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9Owp9CmZ1bmN0aW9uIGNyZWF0ZVJlYWRvbmx5TWV0aG9kKGUpIHsKICByZXR1cm4gZnVuY3Rpb24gKC4uLnQpIHsKICAgIHJldHVybiBlID09PSAiZGVsZXRlIiA/ICExIDogZSA9PT0gImNsZWFyIiA/IHZvaWQgMCA6IHRoaXM7CiAgfTsKfQpmdW5jdGlvbiBjcmVhdGVJbnN0cnVtZW50YXRpb25zKGUsIHQpIHsKICBjb25zdCByID0gewogICAgZ2V0KGkpIHsKICAgICAgY29uc3QgYSA9IHRoaXMuX192X3JhdywKICAgICAgICBvID0gdG9SYXcoYSksCiAgICAgICAgbCA9IHRvUmF3KGkpOwogICAgICBlIHx8IChoYXNDaGFuZ2VkKGksIGwpICYmIHRyYWNrKG8sICJnZXQiLCBpKSwgdHJhY2sobywgImdldCIsIGwpKTsKICAgICAgY29uc3QgeyBoYXM6IGMgfSA9IGdldFByb3RvKG8pLAogICAgICAgIHUgPSB0ID8gdG9TaGFsbG93IDogZSA/IHRvUmVhZG9ubHkgOiB0b1JlYWN0aXZlOwogICAgICBpZiAoYy5jYWxsKG8sIGkpKSByZXR1cm4gdShhLmdldChpKSk7CiAgICAgIGlmIChjLmNhbGwobywgbCkpIHJldHVybiB1KGEuZ2V0KGwpKTsKICAgICAgYSAhPT0gbyAmJiBhLmdldChpKTsKICAgIH0sCiAgICBnZXQgc2l6ZSgpIHsKICAgICAgY29uc3QgaSA9IHRoaXMuX192X3JhdzsKICAgICAgcmV0dXJuICgKICAgICAgICAhZSAmJiB0cmFjayh0b1JhdyhpKSwgIml0ZXJhdGUiLCBJVEVSQVRFX0tFWSksIFJlZmxlY3QuZ2V0KGksICJzaXplIiwgaSkKICAgICAgKTsKICAgIH0sCiAgICBoYXMoaSkgewogICAgICBjb25zdCBhID0gdGhpcy5fX3ZfcmF3LAogICAgICAgIG8gPSB0b1JhdyhhKSwKICAgICAgICBsID0gdG9SYXcoaSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgZSB8fCAoaGFzQ2hhbmdlZChpLCBsKSAmJiB0cmFjayhvLCAiaGFzIiwgaSksIHRyYWNrKG8sICJoYXMiLCBsKSksCiAgICAgICAgaSA9PT0gbCA/IGEuaGFzKGkpIDogYS5oYXMoaSkgfHwgYS5oYXMobCkKICAgICAgKTsKICAgIH0sCiAgICBmb3JFYWNoKGksIGEpIHsKICAgICAgY29uc3QgbyA9IHRoaXMsCiAgICAgICAgbCA9IG8uX192X3JhdywKICAgICAgICBjID0gdG9SYXcobCksCiAgICAgICAgdSA9IHQgPyB0b1NoYWxsb3cgOiBlID8gdG9SZWFkb25seSA6IHRvUmVhY3RpdmU7CiAgICAgIHJldHVybiAoCiAgICAgICAgIWUgJiYgdHJhY2soYywgIml0ZXJhdGUiLCBJVEVSQVRFX0tFWSksCiAgICAgICAgbC5mb3JFYWNoKChkLCBFKSA9PiBpLmNhbGwoYSwgdShkKSwgdShFKSwgbykpCiAgICAgICk7CiAgICB9LAogIH07CiAgcmV0dXJuICgKICAgIGV4dGVuZCgKICAgICAgciwKICAgICAgZQogICAgICAgID8gewogICAgICAgICAgYWRkOiBjcmVhdGVSZWFkb25seU1ldGhvZCgiYWRkIiksCiAgICAgICAgICBzZXQ6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKCJzZXQiKSwKICAgICAgICAgIGRlbGV0ZTogY3JlYXRlUmVhZG9ubHlNZXRob2QoImRlbGV0ZSIpLAogICAgICAgICAgY2xlYXI6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKCJjbGVhciIpLAogICAgICAgIH0KICAgICAgICA6IHsKICAgICAgICAgIGFkZChpKSB7CiAgICAgICAgICAgICF0ICYmICFpc1NoYWxsb3coaSkgJiYgIWlzUmVhZG9ubHkoaSkgJiYgKGkgPSB0b1JhdyhpKSk7CiAgICAgICAgICAgIGNvbnN0IGEgPSB0b1Jhdyh0aGlzKTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBnZXRQcm90byhhKS5oYXMuY2FsbChhLCBpKSB8fAogICAgICAgICAgICAgIChhLmFkZChpKSwgdHJpZ2dlcihhLCAiYWRkIiwgaSwgaSkpLAogICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgKTsKICAgICAgICAgIH0sCiAgICAgICAgICBzZXQoaSwgYSkgewogICAgICAgICAgICAhdCAmJiAhaXNTaGFsbG93KGEpICYmICFpc1JlYWRvbmx5KGEpICYmIChhID0gdG9SYXcoYSkpOwogICAgICAgICAgICBjb25zdCBvID0gdG9SYXcodGhpcyksCiAgICAgICAgICAgICAgeyBoYXM6IGwsIGdldDogYyB9ID0gZ2V0UHJvdG8obyk7CiAgICAgICAgICAgIGxldCB1ID0gbC5jYWxsKG8sIGkpOwogICAgICAgICAgICB1IHx8ICgoaSA9IHRvUmF3KGkpKSwgKHUgPSBsLmNhbGwobywgaSkpKTsKICAgICAgICAgICAgY29uc3QgZCA9IGMuY2FsbChvLCBpKTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBvLnNldChpLCBhKSwKICAgICAgICAgICAgICB1CiAgICAgICAgICAgICAgICA/IGhhc0NoYW5nZWQoYSwgZCkgJiYgdHJpZ2dlcihvLCAic2V0IiwgaSwgYSkKICAgICAgICAgICAgICAgIDogdHJpZ2dlcihvLCAiYWRkIiwgaSwgYSksCiAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICApOwogICAgICAgICAgfSwKICAgICAgICAgIGRlbGV0ZShpKSB7CiAgICAgICAgICAgIGNvbnN0IGEgPSB0b1Jhdyh0aGlzKSwKICAgICAgICAgICAgICB7IGhhczogbywgZ2V0OiBsIH0gPSBnZXRQcm90byhhKTsKICAgICAgICAgICAgbGV0IGMgPSBvLmNhbGwoYSwgaSk7CiAgICAgICAgICAgIGMgfHwgKChpID0gdG9SYXcoaSkpLCAoYyA9IG8uY2FsbChhLCBpKSkpLCBsICYmIGwuY2FsbChhLCBpKTsKICAgICAgICAgICAgY29uc3QgdSA9IGEuZGVsZXRlKGkpOwogICAgICAgICAgICByZXR1cm4gYyAmJiB0cmlnZ2VyKGEsICJkZWxldGUiLCBpLCB2b2lkIDApLCB1OwogICAgICAgICAgfSwKICAgICAgICAgIGNsZWFyKCkgewogICAgICAgICAgICBjb25zdCBpID0gdG9SYXcodGhpcyksCiAgICAgICAgICAgICAgYSA9IGkuc2l6ZSAhPT0gMCwKICAgICAgICAgICAgICBvID0gaS5jbGVhcigpOwogICAgICAgICAgICByZXR1cm4gYSAmJiB0cmlnZ2VyKGksICJjbGVhciIsIHZvaWQgMCwgdm9pZCAwKSwgbzsKICAgICAgICAgIH0sCiAgICAgICAgfQogICAgKSwKICAgIFsia2V5cyIsICJ2YWx1ZXMiLCAiZW50cmllcyIsIFN5bWJvbC5pdGVyYXRvcl0uZm9yRWFjaCgoaSkgPT4gewogICAgICByW2ldID0gY3JlYXRlSXRlcmFibGVNZXRob2QoaSwgZSwgdCk7CiAgICB9KSwKICAgIHIKICApOwp9CmZ1bmN0aW9uIGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcihlLCB0KSB7CiAgY29uc3QgciA9IGNyZWF0ZUluc3RydW1lbnRhdGlvbnMoZSwgdCk7CiAgcmV0dXJuIChuLCBpLCBhKSA9PgogICAgaSA9PT0gIl9fdl9pc1JlYWN0aXZlIgogICAgICA/ICFlCiAgICAgIDogaSA9PT0gIl9fdl9pc1JlYWRvbmx5IgogICAgICAgID8gZQogICAgICAgIDogaSA9PT0gIl9fdl9yYXciCiAgICAgICAgICA/IG4KICAgICAgICAgIDogUmVmbGVjdC5nZXQoaGFzT3duJDEociwgaSkgJiYgaSBpbiBuID8gciA6IG4sIGksIGEpOwp9CmNvbnN0IG11dGFibGVDb2xsZWN0aW9uSGFuZGxlcnMgPSB7IGdldDogY3JlYXRlSW5zdHJ1bWVudGF0aW9uR2V0dGVyKCExLCAhMSkgfSwKICBzaGFsbG93Q29sbGVjdGlvbkhhbmRsZXJzID0geyBnZXQ6IGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcighMSwgITApIH0sCiAgcmVhZG9ubHlDb2xsZWN0aW9uSGFuZGxlcnMgPSB7IGdldDogY3JlYXRlSW5zdHJ1bWVudGF0aW9uR2V0dGVyKCEwLCAhMSkgfSwKICBzaGFsbG93UmVhZG9ubHlDb2xsZWN0aW9uSGFuZGxlcnMgPSB7CiAgICBnZXQ6IGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcighMCwgITApLAogIH0sCiAgcmVhY3RpdmVNYXAgPSBuZXcgV2Vha01hcCgpLAogIHNoYWxsb3dSZWFjdGl2ZU1hcCA9IG5ldyBXZWFrTWFwKCksCiAgcmVhZG9ubHlNYXAgPSBuZXcgV2Vha01hcCgpLAogIHNoYWxsb3dSZWFkb25seU1hcCA9IG5ldyBXZWFrTWFwKCk7CmZ1bmN0aW9uIHRhcmdldFR5cGVNYXAoZSkgewogIHN3aXRjaCAoZSkgewogICAgY2FzZSAiT2JqZWN0IjoKICAgIGNhc2UgIkFycmF5IjoKICAgICAgcmV0dXJuIDE7CiAgICBjYXNlICJNYXAiOgogICAgY2FzZSAiU2V0IjoKICAgIGNhc2UgIldlYWtNYXAiOgogICAgY2FzZSAiV2Vha1NldCI6CiAgICAgIHJldHVybiAyOwogICAgZGVmYXVsdDoKICAgICAgcmV0dXJuIDA7CiAgfQp9CmZ1bmN0aW9uIGdldFRhcmdldFR5cGUoZSkgewogIHJldHVybiBlLl9fdl9za2lwIHx8ICFPYmplY3QuaXNFeHRlbnNpYmxlKGUpCiAgICA/IDAKICAgIDogdGFyZ2V0VHlwZU1hcCh0b1Jhd1R5cGUoZSkpOwp9CmZ1bmN0aW9uIHJlYWN0aXZlKGUpIHsKICByZXR1cm4gaXNSZWFkb25seShlKQogICAgPyBlCiAgICA6IGNyZWF0ZVJlYWN0aXZlT2JqZWN0KAogICAgICBlLAogICAgICAhMSwKICAgICAgbXV0YWJsZUhhbmRsZXJzLAogICAgICBtdXRhYmxlQ29sbGVjdGlvbkhhbmRsZXJzLAogICAgICByZWFjdGl2ZU1hcAogICAgKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVhY3RpdmUoZSkgewogIHJldHVybiBjcmVhdGVSZWFjdGl2ZU9iamVjdCgKICAgIGUsCiAgICAhMSwKICAgIHNoYWxsb3dSZWFjdGl2ZUhhbmRsZXJzLAogICAgc2hhbGxvd0NvbGxlY3Rpb25IYW5kbGVycywKICAgIHNoYWxsb3dSZWFjdGl2ZU1hcAogICk7Cn0KZnVuY3Rpb24gcmVhZG9ubHkoZSkgewogIHJldHVybiBjcmVhdGVSZWFjdGl2ZU9iamVjdCgKICAgIGUsCiAgICAhMCwKICAgIHJlYWRvbmx5SGFuZGxlcnMsCiAgICByZWFkb25seUNvbGxlY3Rpb25IYW5kbGVycywKICAgIHJlYWRvbmx5TWFwCiAgKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVhZG9ubHkoZSkgewogIHJldHVybiBjcmVhdGVSZWFjdGl2ZU9iamVjdCgKICAgIGUsCiAgICAhMCwKICAgIHNoYWxsb3dSZWFkb25seUhhbmRsZXJzLAogICAgc2hhbGxvd1JlYWRvbmx5Q29sbGVjdGlvbkhhbmRsZXJzLAogICAgc2hhbGxvd1JlYWRvbmx5TWFwCiAgKTsKfQpmdW5jdGlvbiBjcmVhdGVSZWFjdGl2ZU9iamVjdChlLCB0LCByLCBuLCBpKSB7CiAgaWYgKCFpc09iamVjdCQyKGUpIHx8IChlLl9fdl9yYXcgJiYgISh0ICYmIGUuX192X2lzUmVhY3RpdmUpKSkgcmV0dXJuIGU7CiAgY29uc3QgYSA9IGkuZ2V0KGUpOwogIGlmIChhKSByZXR1cm4gYTsKICBjb25zdCBvID0gZ2V0VGFyZ2V0VHlwZShlKTsKICBpZiAobyA9PT0gMCkgcmV0dXJuIGU7CiAgY29uc3QgbCA9IG5ldyBQcm94eShlLCBvID09PSAyID8gbiA6IHIpOwogIHJldHVybiBpLnNldChlLCBsKSwgbDsKfQpmdW5jdGlvbiBpc1JlYWN0aXZlKGUpIHsKICByZXR1cm4gaXNSZWFkb25seShlKSA/IGlzUmVhY3RpdmUoZS5fX3ZfcmF3KSA6ICEhKGUgJiYgZS5fX3ZfaXNSZWFjdGl2ZSk7Cn0KZnVuY3Rpb24gaXNSZWFkb25seShlKSB7CiAgcmV0dXJuICEhKGUgJiYgZS5fX3ZfaXNSZWFkb25seSk7Cn0KZnVuY3Rpb24gaXNTaGFsbG93KGUpIHsKICByZXR1cm4gISEoZSAmJiBlLl9fdl9pc1NoYWxsb3cpOwp9CmZ1bmN0aW9uIGlzUHJveHkoZSkgewogIHJldHVybiBlID8gISFlLl9fdl9yYXcgOiAhMTsKfQpmdW5jdGlvbiB0b1JhdyhlKSB7CiAgY29uc3QgdCA9IGUgJiYgZS5fX3ZfcmF3OwogIHJldHVybiB0ID8gdG9SYXcodCkgOiBlOwp9CmZ1bmN0aW9uIG1hcmtSYXcoZSkgewogIHJldHVybiAoCiAgICAhaGFzT3duJDEoZSwgIl9fdl9za2lwIikgJiYKICAgIE9iamVjdC5pc0V4dGVuc2libGUoZSkgJiYKICAgIGRlZihlLCAiX192X3NraXAiLCAhMCksCiAgICBlCiAgKTsKfQpjb25zdCB0b1JlYWN0aXZlID0gKGUpID0+IChpc09iamVjdCQyKGUpID8gcmVhY3RpdmUoZSkgOiBlKSwKICB0b1JlYWRvbmx5ID0gKGUpID0+IChpc09iamVjdCQyKGUpID8gcmVhZG9ubHkoZSkgOiBlKTsKZnVuY3Rpb24gaXNSZWYoZSkgewogIHJldHVybiBlID8gZS5fX3ZfaXNSZWYgPT09ICEwIDogITE7Cn0KZnVuY3Rpb24gcmVmKGUpIHsKICByZXR1cm4gY3JlYXRlUmVmKGUsICExKTsKfQpmdW5jdGlvbiBzaGFsbG93UmVmKGUpIHsKICByZXR1cm4gY3JlYXRlUmVmKGUsICEwKTsKfQpmdW5jdGlvbiBjcmVhdGVSZWYoZSwgdCkgewogIHJldHVybiBpc1JlZihlKSA/IGUgOiBuZXcgUmVmSW1wbChlLCB0KTsKfQpjbGFzcyBSZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0LCByKSB7CiAgICAodGhpcy5kZXAgPSBuZXcgRGVwKCkpLAogICAgICAodGhpcy5fX3ZfaXNSZWYgPSAhMCksCiAgICAgICh0aGlzLl9fdl9pc1NoYWxsb3cgPSAhMSksCiAgICAgICh0aGlzLl9yYXdWYWx1ZSA9IHIgPyB0IDogdG9SYXcodCkpLAogICAgICAodGhpcy5fdmFsdWUgPSByID8gdCA6IHRvUmVhY3RpdmUodCkpLAogICAgICAodGhpcy5fX3ZfaXNTaGFsbG93ID0gcik7CiAgfQogIGdldCB2YWx1ZSgpIHsKICAgIHJldHVybiB0aGlzLmRlcC50cmFjaygpLCB0aGlzLl92YWx1ZTsKICB9CiAgc2V0IHZhbHVlKHQpIHsKICAgIGNvbnN0IHIgPSB0aGlzLl9yYXdWYWx1ZSwKICAgICAgbiA9IHRoaXMuX192X2lzU2hhbGxvdyB8fCBpc1NoYWxsb3codCkgfHwgaXNSZWFkb25seSh0KTsKICAgICh0ID0gbiA/IHQgOiB0b1Jhdyh0KSksCiAgICAgIGhhc0NoYW5nZWQodCwgcikgJiYKICAgICAgKCh0aGlzLl9yYXdWYWx1ZSA9IHQpLAogICAgICAgICh0aGlzLl92YWx1ZSA9IG4gPyB0IDogdG9SZWFjdGl2ZSh0KSksCiAgICAgICAgdGhpcy5kZXAudHJpZ2dlcigpKTsKICB9Cn0KZnVuY3Rpb24gdHJpZ2dlclJlZihlKSB7CiAgZS5kZXAgJiYgZS5kZXAudHJpZ2dlcigpOwp9CmZ1bmN0aW9uIHVucmVmKGUpIHsKICByZXR1cm4gaXNSZWYoZSkgPyBlLnZhbHVlIDogZTsKfQpmdW5jdGlvbiB0b1ZhbHVlKGUpIHsKICByZXR1cm4gaXNGdW5jdGlvbiQxKGUpID8gZSgpIDogdW5yZWYoZSk7Cn0KY29uc3Qgc2hhbGxvd1Vud3JhcEhhbmRsZXJzID0gewogIGdldDogKGUsIHQsIHIpID0+ICh0ID09PSAiX192X3JhdyIgPyBlIDogdW5yZWYoUmVmbGVjdC5nZXQoZSwgdCwgcikpKSwKICBzZXQ6IChlLCB0LCByLCBuKSA9PiB7CiAgICBjb25zdCBpID0gZVt0XTsKICAgIHJldHVybiBpc1JlZihpKSAmJiAhaXNSZWYocikKICAgICAgPyAoKGkudmFsdWUgPSByKSwgITApCiAgICAgIDogUmVmbGVjdC5zZXQoZSwgdCwgciwgbik7CiAgfSwKfTsKZnVuY3Rpb24gcHJveHlSZWZzKGUpIHsKICByZXR1cm4gaXNSZWFjdGl2ZShlKSA/IGUgOiBuZXcgUHJveHkoZSwgc2hhbGxvd1Vud3JhcEhhbmRsZXJzKTsKfQpjbGFzcyBDdXN0b21SZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0KSB7CiAgICAodGhpcy5fX3ZfaXNSZWYgPSAhMCksICh0aGlzLl92YWx1ZSA9IHZvaWQgMCk7CiAgICBjb25zdCByID0gKHRoaXMuZGVwID0gbmV3IERlcCgpKSwKICAgICAgeyBnZXQ6IG4sIHNldDogaSB9ID0gdChyLnRyYWNrLmJpbmQociksIHIudHJpZ2dlci5iaW5kKHIpKTsKICAgICh0aGlzLl9nZXQgPSBuKSwgKHRoaXMuX3NldCA9IGkpOwogIH0KICBnZXQgdmFsdWUoKSB7CiAgICByZXR1cm4gKHRoaXMuX3ZhbHVlID0gdGhpcy5fZ2V0KCkpOwogIH0KICBzZXQgdmFsdWUodCkgewogICAgdGhpcy5fc2V0KHQpOwogIH0KfQpmdW5jdGlvbiBjdXN0b21SZWYoZSkgewogIHJldHVybiBuZXcgQ3VzdG9tUmVmSW1wbChlKTsKfQpmdW5jdGlvbiB0b1JlZnMoZSkgewogIGNvbnN0IHQgPSBpc0FycmF5JDIoZSkgPyBuZXcgQXJyYXkoZS5sZW5ndGgpIDoge307CiAgZm9yIChjb25zdCByIGluIGUpIHRbcl0gPSBwcm9wZXJ0eVRvUmVmKGUsIHIpOwogIHJldHVybiB0Owp9CmNsYXNzIE9iamVjdFJlZkltcGwgewogIGNvbnN0cnVjdG9yKHQsIHIsIG4pIHsKICAgICh0aGlzLl9vYmplY3QgPSB0KSwKICAgICAgKHRoaXMuX2tleSA9IHIpLAogICAgICAodGhpcy5fZGVmYXVsdFZhbHVlID0gbiksCiAgICAgICh0aGlzLl9fdl9pc1JlZiA9ICEwKSwKICAgICAgKHRoaXMuX3ZhbHVlID0gdm9pZCAwKTsKICB9CiAgZ2V0IHZhbHVlKCkgewogICAgY29uc3QgdCA9IHRoaXMuX29iamVjdFt0aGlzLl9rZXldOwogICAgcmV0dXJuICh0aGlzLl92YWx1ZSA9IHQgPT09IHZvaWQgMCA/IHRoaXMuX2RlZmF1bHRWYWx1ZSA6IHQpOwogIH0KICBzZXQgdmFsdWUodCkgewogICAgdGhpcy5fb2JqZWN0W3RoaXMuX2tleV0gPSB0OwogIH0KICBnZXQgZGVwKCkgewogICAgcmV0dXJuIGdldERlcEZyb21SZWFjdGl2ZSh0b1Jhdyh0aGlzLl9vYmplY3QpLCB0aGlzLl9rZXkpOwogIH0KfQpjbGFzcyBHZXR0ZXJSZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0KSB7CiAgICAodGhpcy5fZ2V0dGVyID0gdCksCiAgICAgICh0aGlzLl9fdl9pc1JlZiA9ICEwKSwKICAgICAgKHRoaXMuX192X2lzUmVhZG9ubHkgPSAhMCksCiAgICAgICh0aGlzLl92YWx1ZSA9IHZvaWQgMCk7CiAgfQogIGdldCB2YWx1ZSgpIHsKICAgIHJldHVybiAodGhpcy5fdmFsdWUgPSB0aGlzLl9nZXR0ZXIoKSk7CiAgfQp9CmZ1bmN0aW9uIHRvUmVmKGUsIHQsIHIpIHsKICByZXR1cm4gaXNSZWYoZSkKICAgID8gZQogICAgOiBpc0Z1bmN0aW9uJDEoZSkKICAgICAgPyBuZXcgR2V0dGVyUmVmSW1wbChlKQogICAgICA6IGlzT2JqZWN0JDIoZSkgJiYgYXJndW1lbnRzLmxlbmd0aCA+IDEKICAgICAgICA/IHByb3BlcnR5VG9SZWYoZSwgdCwgcikKICAgICAgICA6IHJlZihlKTsKfQpmdW5jdGlvbiBwcm9wZXJ0eVRvUmVmKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZVt0XTsKICByZXR1cm4gaXNSZWYobikgPyBuIDogbmV3IE9iamVjdFJlZkltcGwoZSwgdCwgcik7Cn0KY2xhc3MgQ29tcHV0ZWRSZWZJbXBsIHsKICBjb25zdHJ1Y3Rvcih0LCByLCBuKSB7CiAgICAodGhpcy5mbiA9IHQpLAogICAgICAodGhpcy5zZXR0ZXIgPSByKSwKICAgICAgKHRoaXMuX3ZhbHVlID0gdm9pZCAwKSwKICAgICAgKHRoaXMuZGVwID0gbmV3IERlcCh0aGlzKSksCiAgICAgICh0aGlzLl9fdl9pc1JlZiA9ICEwKSwKICAgICAgKHRoaXMuZGVwcyA9IHZvaWQgMCksCiAgICAgICh0aGlzLmRlcHNUYWlsID0gdm9pZCAwKSwKICAgICAgKHRoaXMuZmxhZ3MgPSAxNiksCiAgICAgICh0aGlzLmdsb2JhbFZlcnNpb24gPSBnbG9iYWxWZXJzaW9uIC0gMSksCiAgICAgICh0aGlzLm5leHQgPSB2b2lkIDApLAogICAgICAodGhpcy5lZmZlY3QgPSB0aGlzKSwKICAgICAgKHRoaXMuX192X2lzUmVhZG9ubHkgPSAhciksCiAgICAgICh0aGlzLmlzU1NSID0gbik7CiAgfQogIG5vdGlmeSgpIHsKICAgIGlmICgoKHRoaXMuZmxhZ3MgfD0gMTYpLCAhKHRoaXMuZmxhZ3MgJiA4KSAmJiBhY3RpdmVTdWIgIT09IHRoaXMpKQogICAgICByZXR1cm4gYmF0Y2godGhpcywgITApLCAhMDsKICB9CiAgZ2V0IHZhbHVlKCkgewogICAgY29uc3QgdCA9IHRoaXMuZGVwLnRyYWNrKCk7CiAgICByZXR1cm4gKAogICAgICByZWZyZXNoQ29tcHV0ZWQodGhpcyksIHQgJiYgKHQudmVyc2lvbiA9IHRoaXMuZGVwLnZlcnNpb24pLCB0aGlzLl92YWx1ZQogICAgKTsKICB9CiAgc2V0IHZhbHVlKHQpIHsKICAgIHRoaXMuc2V0dGVyICYmIHRoaXMuc2V0dGVyKHQpOwogIH0KfQpmdW5jdGlvbiBjb21wdXRlZCQxKGUsIHQsIHIgPSAhMSkgewogIGxldCBuLCBpOwogIHJldHVybiAoCiAgICBpc0Z1bmN0aW9uJDEoZSkgPyAobiA9IGUpIDogKChuID0gZS5nZXQpLCAoaSA9IGUuc2V0KSksCiAgICBuZXcgQ29tcHV0ZWRSZWZJbXBsKG4sIGksIHIpCiAgKTsKfQpjb25zdCBUcmFja09wVHlwZXMgPSB7IEdFVDogImdldCIsIEhBUzogImhhcyIsIElURVJBVEU6ICJpdGVyYXRlIiB9LAogIFRyaWdnZXJPcFR5cGVzID0geyBTRVQ6ICJzZXQiLCBBREQ6ICJhZGQiLCBERUxFVEU6ICJkZWxldGUiLCBDTEVBUjogImNsZWFyIiB9LAogIElOSVRJQUxfV0FUQ0hFUl9WQUxVRSA9IHt9LAogIGNsZWFudXBNYXAgPSBuZXcgV2Vha01hcCgpOwpsZXQgYWN0aXZlV2F0Y2hlcjsKZnVuY3Rpb24gZ2V0Q3VycmVudFdhdGNoZXIoKSB7CiAgcmV0dXJuIGFjdGl2ZVdhdGNoZXI7Cn0KZnVuY3Rpb24gb25XYXRjaGVyQ2xlYW51cChlLCB0ID0gITEsIHIgPSBhY3RpdmVXYXRjaGVyKSB7CiAgaWYgKHIpIHsKICAgIGxldCBuID0gY2xlYW51cE1hcC5nZXQocik7CiAgICBuIHx8IGNsZWFudXBNYXAuc2V0KHIsIChuID0gW10pKSwgbi5wdXNoKGUpOwogIH0KfQpmdW5jdGlvbiB3YXRjaCQxKGUsIHQsIHIgPSBFTVBUWV9PQkopIHsKICBjb25zdCB7CiAgICBpbW1lZGlhdGU6IG4sCiAgICBkZWVwOiBpLAogICAgb25jZTogYSwKICAgIHNjaGVkdWxlcjogbywKICAgIGF1Z21lbnRKb2I6IGwsCiAgICBjYWxsOiBjLAogIH0gPSByLAogICAgdSA9IChBKSA9PgogICAgICBpCiAgICAgICAgPyBBCiAgICAgICAgOiBpc1NoYWxsb3coQSkgfHwgaSA9PT0gITEgfHwgaSA9PT0gMAogICAgICAgICAgPyB0cmF2ZXJzZShBLCAxKQogICAgICAgICAgOiB0cmF2ZXJzZShBKTsKICBsZXQgZCwKICAgIEUsCiAgICBiLAogICAgUCwKICAgIFIgPSAhMSwKICAgIFQgPSAhMTsKICBpZiAoCiAgICAoaXNSZWYoZSkKICAgICAgPyAoKEUgPSAoKSA9PiBlLnZhbHVlKSwgKFIgPSBpc1NoYWxsb3coZSkpKQogICAgICA6IGlzUmVhY3RpdmUoZSkKICAgICAgICA/ICgoRSA9ICgpID0+IHUoZSkpLCAoUiA9ICEwKSkKICAgICAgICA6IGlzQXJyYXkkMihlKQogICAgICAgICAgPyAoKFQgPSAhMCksCiAgICAgICAgICAgIChSID0gZS5zb21lKChBKSA9PiBpc1JlYWN0aXZlKEEpIHx8IGlzU2hhbGxvdyhBKSkpLAogICAgICAgICAgICAoRSA9ICgpID0+CiAgICAgICAgICAgICAgZS5tYXAoKEEpID0+IHsKICAgICAgICAgICAgICAgIGlmIChpc1JlZihBKSkgcmV0dXJuIEEudmFsdWU7CiAgICAgICAgICAgICAgICBpZiAoaXNSZWFjdGl2ZShBKSkgcmV0dXJuIHUoQSk7CiAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbiQxKEEpKSByZXR1cm4gYyA/IGMoQSwgMikgOiBBKCk7CiAgICAgICAgICAgICAgfSkpKQogICAgICAgICAgOiBpc0Z1bmN0aW9uJDEoZSkKICAgICAgICAgICAgPyB0CiAgICAgICAgICAgICAgPyAoRSA9IGMgPyAoKSA9PiBjKGUsIDIpIDogZSkKICAgICAgICAgICAgICA6IChFID0gKCkgPT4gewogICAgICAgICAgICAgICAgaWYgKGIpIHsKICAgICAgICAgICAgICAgICAgcGF1c2VUcmFja2luZygpOwogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGIoKTsKICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICAgICByZXNldFRyYWNraW5nKCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnN0IEEgPSBhY3RpdmVXYXRjaGVyOwogICAgICAgICAgICAgICAgYWN0aXZlV2F0Y2hlciA9IGQ7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICByZXR1cm4gYyA/IGMoZSwgMywgW1BdKSA6IGUoUCk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICBhY3RpdmVXYXRjaGVyID0gQTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KQogICAgICAgICAgICA6IChFID0gTk9PUCksCiAgICAgIHQgJiYgaSkKICApIHsKICAgIGNvbnN0IEEgPSBFLAogICAgICBPID0gaSA9PT0gITAgPyAxIC8gMCA6IGk7CiAgICBFID0gKCkgPT4gdHJhdmVyc2UoQSgpLCBPKTsKICB9CiAgY29uc3QgTSA9IGdldEN1cnJlbnRTY29wZSgpLAogICAgeCA9ICgpID0+IHsKICAgICAgZC5zdG9wKCksIE0gJiYgTS5hY3RpdmUgJiYgcmVtb3ZlKE0uZWZmZWN0cywgZCk7CiAgICB9OwogIGlmIChhICYmIHQpIHsKICAgIGNvbnN0IEEgPSB0OwogICAgdCA9ICguLi5PKSA9PiB7CiAgICAgIEEoLi4uTyksIHgoKTsKICAgIH07CiAgfQogIGxldCBrID0gVAogICAgPyBuZXcgQXJyYXkoZS5sZW5ndGgpLmZpbGwoSU5JVElBTF9XQVRDSEVSX1ZBTFVFKQogICAgOiBJTklUSUFMX1dBVENIRVJfVkFMVUU7CiAgY29uc3QgUyA9IChBKSA9PiB7CiAgICBpZiAoISghKGQuZmxhZ3MgJiAxKSB8fCAoIWQuZGlydHkgJiYgIUEpKSkKICAgICAgaWYgKHQpIHsKICAgICAgICBjb25zdCBPID0gZC5ydW4oKTsKICAgICAgICBpZiAoCiAgICAgICAgICBpIHx8CiAgICAgICAgICBSIHx8CiAgICAgICAgICAoVCA/IE8uc29tZSgoRiwgRCkgPT4gaGFzQ2hhbmdlZChGLCBrW0RdKSkgOiBoYXNDaGFuZ2VkKE8sIGspKQogICAgICAgICkgewogICAgICAgICAgYiAmJiBiKCk7CiAgICAgICAgICBjb25zdCBGID0gYWN0aXZlV2F0Y2hlcjsKICAgICAgICAgIGFjdGl2ZVdhdGNoZXIgPSBkOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgRCA9IFsKICAgICAgICAgICAgICBPLAogICAgICAgICAgICAgIGsgPT09IElOSVRJQUxfV0FUQ0hFUl9WQUxVRQogICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgIDogVCAmJiBrWzBdID09PSBJTklUSUFMX1dBVENIRVJfVkFMVUUKICAgICAgICAgICAgICAgICAgPyBbXQogICAgICAgICAgICAgICAgICA6IGssCiAgICAgICAgICAgICAgUCwKICAgICAgICAgICAgXTsKICAgICAgICAgICAgYyA/IGModCwgMywgRCkgOiB0KC4uLkQpLCAoayA9IE8pOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgYWN0aXZlV2F0Y2hlciA9IEY7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgZC5ydW4oKTsKICB9OwogIHJldHVybiAoCiAgICBsICYmIGwoUyksCiAgICAoZCA9IG5ldyBSZWFjdGl2ZUVmZmVjdChFKSksCiAgICAoZC5zY2hlZHVsZXIgPSBvID8gKCkgPT4gbyhTLCAhMSkgOiBTKSwKICAgIChQID0gKEEpID0+IG9uV2F0Y2hlckNsZWFudXAoQSwgITEsIGQpKSwKICAgIChiID0gZC5vblN0b3AgPQogICAgICAoKSA9PiB7CiAgICAgICAgY29uc3QgQSA9IGNsZWFudXBNYXAuZ2V0KGQpOwogICAgICAgIGlmIChBKSB7CiAgICAgICAgICBpZiAoYykgYyhBLCA0KTsKICAgICAgICAgIGVsc2UgZm9yIChjb25zdCBPIG9mIEEpIE8oKTsKICAgICAgICAgIGNsZWFudXBNYXAuZGVsZXRlKGQpOwogICAgICAgIH0KICAgICAgfSksCiAgICB0ID8gKG4gPyBTKCEwKSA6IChrID0gZC5ydW4oKSkpIDogbyA/IG8oUy5iaW5kKG51bGwsICEwKSwgITApIDogZC5ydW4oKSwKICAgICh4LnBhdXNlID0gZC5wYXVzZS5iaW5kKGQpKSwKICAgICh4LnJlc3VtZSA9IGQucmVzdW1lLmJpbmQoZCkpLAogICAgKHguc3RvcCA9IHgpLAogICAgeAogICk7Cn0KZnVuY3Rpb24gdHJhdmVyc2UoZSwgdCA9IDEgLyAwLCByKSB7CiAgaWYgKAogICAgdCA8PSAwIHx8CiAgICAhaXNPYmplY3QkMihlKSB8fAogICAgZS5fX3Zfc2tpcCB8fAogICAgKChyID0gciB8fCBuZXcgU2V0KCkpLCByLmhhcyhlKSkKICApCiAgICByZXR1cm4gZTsKICBpZiAoKHIuYWRkKGUpLCB0LS0sIGlzUmVmKGUpKSkgdHJhdmVyc2UoZS52YWx1ZSwgdCwgcik7CiAgZWxzZSBpZiAoaXNBcnJheSQyKGUpKQogICAgZm9yIChsZXQgbiA9IDA7IG4gPCBlLmxlbmd0aDsgbisrKSB0cmF2ZXJzZShlW25dLCB0LCByKTsKICBlbHNlIGlmIChpc1NldChlKSB8fCBpc01hcChlKSkKICAgIGUuZm9yRWFjaCgobikgPT4gewogICAgICB0cmF2ZXJzZShuLCB0LCByKTsKICAgIH0pOwogIGVsc2UgaWYgKGlzUGxhaW5PYmplY3QkNChlKSkgewogICAgZm9yIChjb25zdCBuIGluIGUpIHRyYXZlcnNlKGVbbl0sIHQsIHIpOwogICAgZm9yIChjb25zdCBuIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSkpCiAgICAgIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLCBuKSAmJiB0cmF2ZXJzZShlW25dLCB0LCByKTsKICB9CiAgcmV0dXJuIGU7Cn0KLyoqCiAqIEB2dWUvcnVudGltZS1jb3JlIHYzLjUuMTMKICogKGMpIDIwMTgtcHJlc2VudCBZdXhpIChFdmFuKSBZb3UgYW5kIFZ1ZSBjb250cmlidXRvcnMKICogQGxpY2Vuc2UgTUlUCiAqKi8gY29uc3Qgc3RhY2sgPSBbXTsKZnVuY3Rpb24gcHVzaFdhcm5pbmdDb250ZXh0KGUpIHsKICBzdGFjay5wdXNoKGUpOwp9CmZ1bmN0aW9uIHBvcFdhcm5pbmdDb250ZXh0KCkgewogIHN0YWNrLnBvcCgpOwp9CmxldCBpc1dhcm5pbmcgPSAhMTsKZnVuY3Rpb24gd2FybiQxKGUsIC4uLnQpIHsKICBpZiAoaXNXYXJuaW5nKSByZXR1cm47CiAgKGlzV2FybmluZyA9ICEwKSwgcGF1c2VUcmFja2luZygpOwogIGNvbnN0IHIgPSBzdGFjay5sZW5ndGggPyBzdGFja1tzdGFjay5sZW5ndGggLSAxXS5jb21wb25lbnQgOiBudWxsLAogICAgbiA9IHIgJiYgci5hcHBDb250ZXh0LmNvbmZpZy53YXJuSGFuZGxlciwKICAgIGkgPSBnZXRDb21wb25lbnRUcmFjZSgpOwogIGlmIChuKQogICAgY2FsbFdpdGhFcnJvckhhbmRsaW5nKG4sIHIsIDExLCBbCiAgICAgIGUgKwogICAgICB0CiAgICAgICAgLm1hcCgoYSkgPT4gewogICAgICAgICAgdmFyIG8sIGw7CiAgICAgICAgICByZXR1cm4gKGwgPSAobyA9IGEudG9TdHJpbmcpID09IG51bGwgPyB2b2lkIDAgOiBvLmNhbGwoYSkpICE9IG51bGwKICAgICAgICAgICAgPyBsCiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkoYSk7CiAgICAgICAgfSkKICAgICAgICAuam9pbigiIiksCiAgICAgIHIgJiYgci5wcm94eSwKICAgICAgaS5tYXAoKHsgdm5vZGU6IGEgfSkgPT4gYGF0IDwke2Zvcm1hdENvbXBvbmVudE5hbWUociwgYS50eXBlKX0+YCkuam9pbihgCmApLAogICAgICBpLAogICAgXSk7CiAgZWxzZSB7CiAgICBjb25zdCBhID0gW2BbVnVlIHdhcm5dOiAke2V9YCwgLi4udF07CiAgICBpLmxlbmd0aCAmJgogICAgICBhLnB1c2goCiAgICAgICAgYApgLAogICAgICAgIC4uLmZvcm1hdFRyYWNlKGkpCiAgICAgICksCiAgICAgIGNvbnNvbGUud2FybiguLi5hKTsKICB9CiAgcmVzZXRUcmFja2luZygpLCAoaXNXYXJuaW5nID0gITEpOwp9CmZ1bmN0aW9uIGdldENvbXBvbmVudFRyYWNlKCkgewogIGxldCBlID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07CiAgaWYgKCFlKSByZXR1cm4gW107CiAgY29uc3QgdCA9IFtdOwogIGZvciAoOyBlOykgewogICAgY29uc3QgciA9IHRbMF07CiAgICByICYmIHIudm5vZGUgPT09IGUKICAgICAgPyByLnJlY3Vyc2VDb3VudCsrCiAgICAgIDogdC5wdXNoKHsgdm5vZGU6IGUsIHJlY3Vyc2VDb3VudDogMCB9KTsKICAgIGNvbnN0IG4gPSBlLmNvbXBvbmVudCAmJiBlLmNvbXBvbmVudC5wYXJlbnQ7CiAgICBlID0gbiAmJiBuLnZub2RlOwogIH0KICByZXR1cm4gdDsKfQpmdW5jdGlvbiBmb3JtYXRUcmFjZShlKSB7CiAgY29uc3QgdCA9IFtdOwogIHJldHVybiAoCiAgICBlLmZvckVhY2goKHIsIG4pID0+IHsKICAgICAgdC5wdXNoKAogICAgICAgIC4uLihuID09PSAwCiAgICAgICAgICA/IFtdCiAgICAgICAgICA6IFsKICAgICAgICAgICAgYApgLAogICAgICAgICAgXSksCiAgICAgICAgLi4uZm9ybWF0VHJhY2VFbnRyeShyKQogICAgICApOwogICAgfSksCiAgICB0CiAgKTsKfQpmdW5jdGlvbiBmb3JtYXRUcmFjZUVudHJ5KHsgdm5vZGU6IGUsIHJlY3Vyc2VDb3VudDogdCB9KSB7CiAgY29uc3QgciA9IHQgPiAwID8gYC4uLiAoJHt0fSByZWN1cnNpdmUgY2FsbHMpYCA6ICIiLAogICAgbiA9IGUuY29tcG9uZW50ID8gZS5jb21wb25lbnQucGFyZW50ID09IG51bGwgOiAhMSwKICAgIGkgPSBgIGF0IDwke2Zvcm1hdENvbXBvbmVudE5hbWUoZS5jb21wb25lbnQsIGUudHlwZSwgbil9YCwKICAgIGEgPSAiPiIgKyByOwogIHJldHVybiBlLnByb3BzID8gW2ksIC4uLmZvcm1hdFByb3BzKGUucHJvcHMpLCBhXSA6IFtpICsgYV07Cn0KZnVuY3Rpb24gZm9ybWF0UHJvcHMoZSkgewogIGNvbnN0IHQgPSBbXSwKICAgIHIgPSBPYmplY3Qua2V5cyhlKTsKICByZXR1cm4gKAogICAgci5zbGljZSgwLCAzKS5mb3JFYWNoKChuKSA9PiB7CiAgICAgIHQucHVzaCguLi5mb3JtYXRQcm9wKG4sIGVbbl0pKTsKICAgIH0pLAogICAgci5sZW5ndGggPiAzICYmIHQucHVzaCgiIC4uLiIpLAogICAgdAogICk7Cn0KZnVuY3Rpb24gZm9ybWF0UHJvcChlLCB0LCByKSB7CiAgcmV0dXJuIGlzU3RyaW5nJDEodCkKICAgID8gKCh0ID0gSlNPTi5zdHJpbmdpZnkodCkpLCByID8gdCA6IFtgJHtlfT0ke3R9YF0pCiAgICA6IHR5cGVvZiB0ID09ICJudW1iZXIiIHx8IHR5cGVvZiB0ID09ICJib29sZWFuIiB8fCB0ID09IG51bGwKICAgICAgPyByCiAgICAgICAgPyB0CiAgICAgICAgOiBbYCR7ZX09JHt0fWBdCiAgICAgIDogaXNSZWYodCkKICAgICAgICA/ICgodCA9IGZvcm1hdFByb3AoZSwgdG9SYXcodC52YWx1ZSksICEwKSksIHIgPyB0IDogW2Ake2V9PVJlZjxgLCB0LCAiPiJdKQogICAgICAgIDogaXNGdW5jdGlvbiQxKHQpCiAgICAgICAgICA/IFtgJHtlfT1mbiR7dC5uYW1lID8gYDwke3QubmFtZX0+YCA6ICIifWBdCiAgICAgICAgICA6ICgodCA9IHRvUmF3KHQpKSwgciA/IHQgOiBbYCR7ZX09YCwgdF0pOwp9CmZ1bmN0aW9uIGFzc2VydE51bWJlcihlLCB0KSB7IH0KY29uc3QgRXJyb3JDb2RlcyA9IHsKICBTRVRVUF9GVU5DVElPTjogMCwKICAwOiAiU0VUVVBfRlVOQ1RJT04iLAogIFJFTkRFUl9GVU5DVElPTjogMSwKICAxOiAiUkVOREVSX0ZVTkNUSU9OIiwKICBOQVRJVkVfRVZFTlRfSEFORExFUjogNSwKICA1OiAiTkFUSVZFX0VWRU5UX0hBTkRMRVIiLAogIENPTVBPTkVOVF9FVkVOVF9IQU5ETEVSOiA2LAogIDY6ICJDT01QT05FTlRfRVZFTlRfSEFORExFUiIsCiAgVk5PREVfSE9PSzogNywKICA3OiAiVk5PREVfSE9PSyIsCiAgRElSRUNUSVZFX0hPT0s6IDgsCiAgODogIkRJUkVDVElWRV9IT09LIiwKICBUUkFOU0lUSU9OX0hPT0s6IDksCiAgOTogIlRSQU5TSVRJT05fSE9PSyIsCiAgQVBQX0VSUk9SX0hBTkRMRVI6IDEwLAogIDEwOiAiQVBQX0VSUk9SX0hBTkRMRVIiLAogIEFQUF9XQVJOX0hBTkRMRVI6IDExLAogIDExOiAiQVBQX1dBUk5fSEFORExFUiIsCiAgRlVOQ1RJT05fUkVGOiAxMiwKICAxMjogIkZVTkNUSU9OX1JFRiIsCiAgQVNZTkNfQ09NUE9ORU5UX0xPQURFUjogMTMsCiAgMTM6ICJBU1lOQ19DT01QT05FTlRfTE9BREVSIiwKICBTQ0hFRFVMRVI6IDE0LAogIDE0OiAiU0NIRURVTEVSIiwKICBDT01QT05FTlRfVVBEQVRFOiAxNSwKICAxNTogIkNPTVBPTkVOVF9VUERBVEUiLAogIEFQUF9VTk1PVU5UX0NMRUFOVVA6IDE2LAogIDE2OiAiQVBQX1VOTU9VTlRfQ0xFQU5VUCIsCn0sCiAgRXJyb3JUeXBlU3RyaW5ncyQxID0gewogICAgc3A6ICJzZXJ2ZXJQcmVmZXRjaCBob29rIiwKICAgIGJjOiAiYmVmb3JlQ3JlYXRlIGhvb2siLAogICAgYzogImNyZWF0ZWQgaG9vayIsCiAgICBibTogImJlZm9yZU1vdW50IGhvb2siLAogICAgbTogIm1vdW50ZWQgaG9vayIsCiAgICBidTogImJlZm9yZVVwZGF0ZSBob29rIiwKICAgIHU6ICJ1cGRhdGVkIiwKICAgIGJ1bTogImJlZm9yZVVubW91bnQgaG9vayIsCiAgICB1bTogInVubW91bnRlZCBob29rIiwKICAgIGE6ICJhY3RpdmF0ZWQgaG9vayIsCiAgICBkYTogImRlYWN0aXZhdGVkIGhvb2siLAogICAgZWM6ICJlcnJvckNhcHR1cmVkIGhvb2siLAogICAgcnRjOiAicmVuZGVyVHJhY2tlZCBob29rIiwKICAgIHJ0ZzogInJlbmRlclRyaWdnZXJlZCBob29rIiwKICAgIDA6ICJzZXR1cCBmdW5jdGlvbiIsCiAgICAxOiAicmVuZGVyIGZ1bmN0aW9uIiwKICAgIDI6ICJ3YXRjaGVyIGdldHRlciIsCiAgICAzOiAid2F0Y2hlciBjYWxsYmFjayIsCiAgICA0OiAid2F0Y2hlciBjbGVhbnVwIGZ1bmN0aW9uIiwKICAgIDU6ICJuYXRpdmUgZXZlbnQgaGFuZGxlciIsCiAgICA2OiAiY29tcG9uZW50IGV2ZW50IGhhbmRsZXIiLAogICAgNzogInZub2RlIGhvb2siLAogICAgODogImRpcmVjdGl2ZSBob29rIiwKICAgIDk6ICJ0cmFuc2l0aW9uIGhvb2siLAogICAgMTA6ICJhcHAgZXJyb3JIYW5kbGVyIiwKICAgIDExOiAiYXBwIHdhcm5IYW5kbGVyIiwKICAgIDEyOiAicmVmIGZ1bmN0aW9uIiwKICAgIDEzOiAiYXN5bmMgY29tcG9uZW50IGxvYWRlciIsCiAgICAxNDogInNjaGVkdWxlciBmbHVzaCIsCiAgICAxNTogImNvbXBvbmVudCB1cGRhdGUiLAogICAgMTY6ICJhcHAgdW5tb3VudCBjbGVhbnVwIGZ1bmN0aW9uIiwKICB9OwpmdW5jdGlvbiBjYWxsV2l0aEVycm9ySGFuZGxpbmcoZSwgdCwgciwgbikgewogIHRyeSB7CiAgICByZXR1cm4gbiA/IGUoLi4ubikgOiBlKCk7CiAgfSBjYXRjaCAoaSkgewogICAgaGFuZGxlRXJyb3IoaSwgdCwgcik7CiAgfQp9CmZ1bmN0aW9uIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGUsIHQsIHIsIG4pIHsKICBpZiAoaXNGdW5jdGlvbiQxKGUpKSB7CiAgICBjb25zdCBpID0gY2FsbFdpdGhFcnJvckhhbmRsaW5nKGUsIHQsIHIsIG4pOwogICAgcmV0dXJuICgKICAgICAgaSAmJgogICAgICBpc1Byb21pc2UkMShpKSAmJgogICAgICBpLmNhdGNoKChhKSA9PiB7CiAgICAgICAgaGFuZGxlRXJyb3IoYSwgdCwgcik7CiAgICAgIH0pLAogICAgICBpCiAgICApOwogIH0KICBpZiAoaXNBcnJheSQyKGUpKSB7CiAgICBjb25zdCBpID0gW107CiAgICBmb3IgKGxldCBhID0gMDsgYSA8IGUubGVuZ3RoOyBhKyspCiAgICAgIGkucHVzaChjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhlW2FdLCB0LCByLCBuKSk7CiAgICByZXR1cm4gaTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlRXJyb3IoZSwgdCwgciwgbiA9ICEwKSB7CiAgY29uc3QgaSA9IHQgPyB0LnZub2RlIDogbnVsbCwKICAgIHsgZXJyb3JIYW5kbGVyOiBhLCB0aHJvd1VuaGFuZGxlZEVycm9ySW5Qcm9kdWN0aW9uOiBvIH0gPQogICAgICAodCAmJiB0LmFwcENvbnRleHQuY29uZmlnKSB8fCBFTVBUWV9PQko7CiAgaWYgKHQpIHsKICAgIGxldCBsID0gdC5wYXJlbnQ7CiAgICBjb25zdCBjID0gdC5wcm94eSwKICAgICAgdSA9IGBodHRwczovL3Z1ZWpzLm9yZy9lcnJvci1yZWZlcmVuY2UvI3J1bnRpbWUtJHtyfWA7CiAgICBmb3IgKDsgbDspIHsKICAgICAgY29uc3QgZCA9IGwuZWM7CiAgICAgIGlmIChkKSB7CiAgICAgICAgZm9yIChsZXQgRSA9IDA7IEUgPCBkLmxlbmd0aDsgRSsrKSBpZiAoZFtFXShlLCBjLCB1KSA9PT0gITEpIHJldHVybjsKICAgICAgfQogICAgICBsID0gbC5wYXJlbnQ7CiAgICB9CiAgICBpZiAoYSkgewogICAgICBwYXVzZVRyYWNraW5nKCksCiAgICAgICAgY2FsbFdpdGhFcnJvckhhbmRsaW5nKGEsIG51bGwsIDEwLCBbZSwgYywgdV0pLAogICAgICAgIHJlc2V0VHJhY2tpbmcoKTsKICAgICAgcmV0dXJuOwogICAgfQogIH0KICBsb2dFcnJvcihlLCByLCBpLCBuLCBvKTsKfQpmdW5jdGlvbiBsb2dFcnJvcihlLCB0LCByLCBuID0gITAsIGkgPSAhMSkgewogIGlmIChpKSB0aHJvdyBlOwogIGNvbnNvbGUuZXJyb3IoZSk7Cn0KY29uc3QgcXVldWUgPSBbXTsKbGV0IGZsdXNoSW5kZXggPSAtMTsKY29uc3QgcGVuZGluZ1Bvc3RGbHVzaENicyA9IFtdOwpsZXQgYWN0aXZlUG9zdEZsdXNoQ2JzID0gbnVsbCwKICBwb3N0Rmx1c2hJbmRleCA9IDA7CmNvbnN0IHJlc29sdmVkUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOwpsZXQgY3VycmVudEZsdXNoUHJvbWlzZSA9IG51bGw7CmZ1bmN0aW9uIG5leHRUaWNrKGUpIHsKICBjb25zdCB0ID0gY3VycmVudEZsdXNoUHJvbWlzZSB8fCByZXNvbHZlZFByb21pc2U7CiAgcmV0dXJuIGUgPyB0LnRoZW4odGhpcyA/IGUuYmluZCh0aGlzKSA6IGUpIDogdDsKfQpmdW5jdGlvbiBmaW5kSW5zZXJ0aW9uSW5kZXgkMShlKSB7CiAgbGV0IHQgPSBmbHVzaEluZGV4ICsgMSwKICAgIHIgPSBxdWV1ZS5sZW5ndGg7CiAgZm9yICg7IHQgPCByOykgewogICAgY29uc3QgbiA9ICh0ICsgcikgPj4+IDEsCiAgICAgIGkgPSBxdWV1ZVtuXSwKICAgICAgYSA9IGdldElkKGkpOwogICAgYSA8IGUgfHwgKGEgPT09IGUgJiYgaS5mbGFncyAmIDIpID8gKHQgPSBuICsgMSkgOiAociA9IG4pOwogIH0KICByZXR1cm4gdDsKfQpmdW5jdGlvbiBxdWV1ZUpvYihlKSB7CiAgaWYgKCEoZS5mbGFncyAmIDEpKSB7CiAgICBjb25zdCB0ID0gZ2V0SWQoZSksCiAgICAgIHIgPSBxdWV1ZVtxdWV1ZS5sZW5ndGggLSAxXTsKICAgICFyIHx8ICghKGUuZmxhZ3MgJiAyKSAmJiB0ID49IGdldElkKHIpKQogICAgICA/IHF1ZXVlLnB1c2goZSkKICAgICAgOiBxdWV1ZS5zcGxpY2UoZmluZEluc2VydGlvbkluZGV4JDEodCksIDAsIGUpLAogICAgICAoZS5mbGFncyB8PSAxKSwKICAgICAgcXVldWVGbHVzaCgpOwogIH0KfQpmdW5jdGlvbiBxdWV1ZUZsdXNoKCkgewogIGN1cnJlbnRGbHVzaFByb21pc2UgfHwKICAgIChjdXJyZW50Rmx1c2hQcm9taXNlID0gcmVzb2x2ZWRQcm9taXNlLnRoZW4oZmx1c2hKb2JzKSk7Cn0KZnVuY3Rpb24gcXVldWVQb3N0Rmx1c2hDYihlKSB7CiAgaXNBcnJheSQyKGUpCiAgICA/IHBlbmRpbmdQb3N0Rmx1c2hDYnMucHVzaCguLi5lKQogICAgOiBhY3RpdmVQb3N0Rmx1c2hDYnMgJiYgZS5pZCA9PT0gLTEKICAgICAgPyBhY3RpdmVQb3N0Rmx1c2hDYnMuc3BsaWNlKHBvc3RGbHVzaEluZGV4ICsgMSwgMCwgZSkKICAgICAgOiBlLmZsYWdzICYgMSB8fCAocGVuZGluZ1Bvc3RGbHVzaENicy5wdXNoKGUpLCAoZS5mbGFncyB8PSAxKSksCiAgICBxdWV1ZUZsdXNoKCk7Cn0KZnVuY3Rpb24gZmx1c2hQcmVGbHVzaENicyhlLCB0LCByID0gZmx1c2hJbmRleCArIDEpIHsKICBmb3IgKDsgciA8IHF1ZXVlLmxlbmd0aDsgcisrKSB7CiAgICBjb25zdCBuID0gcXVldWVbcl07CiAgICBpZiAobiAmJiBuLmZsYWdzICYgMikgewogICAgICBpZiAoZSAmJiBuLmlkICE9PSBlLnVpZCkgY29udGludWU7CiAgICAgIHF1ZXVlLnNwbGljZShyLCAxKSwKICAgICAgICByLS0sCiAgICAgICAgbi5mbGFncyAmIDQgJiYgKG4uZmxhZ3MgJj0gLTIpLAogICAgICAgIG4oKSwKICAgICAgICBuLmZsYWdzICYgNCB8fCAobi5mbGFncyAmPSAtMik7CiAgICB9CiAgfQp9CmZ1bmN0aW9uIGZsdXNoUG9zdEZsdXNoQ2JzKGUpIHsKICBpZiAocGVuZGluZ1Bvc3RGbHVzaENicy5sZW5ndGgpIHsKICAgIGNvbnN0IHQgPSBbLi4ubmV3IFNldChwZW5kaW5nUG9zdEZsdXNoQ2JzKV0uc29ydCgKICAgICAgKHIsIG4pID0+IGdldElkKHIpIC0gZ2V0SWQobikKICAgICk7CiAgICBpZiAoKChwZW5kaW5nUG9zdEZsdXNoQ2JzLmxlbmd0aCA9IDApLCBhY3RpdmVQb3N0Rmx1c2hDYnMpKSB7CiAgICAgIGFjdGl2ZVBvc3RGbHVzaENicy5wdXNoKC4uLnQpOwogICAgICByZXR1cm47CiAgICB9CiAgICBmb3IgKAogICAgICBhY3RpdmVQb3N0Rmx1c2hDYnMgPSB0LCBwb3N0Rmx1c2hJbmRleCA9IDA7CiAgICAgIHBvc3RGbHVzaEluZGV4IDwgYWN0aXZlUG9zdEZsdXNoQ2JzLmxlbmd0aDsKICAgICAgcG9zdEZsdXNoSW5kZXgrKwogICAgKSB7CiAgICAgIGNvbnN0IHIgPSBhY3RpdmVQb3N0Rmx1c2hDYnNbcG9zdEZsdXNoSW5kZXhdOwogICAgICByLmZsYWdzICYgNCAmJiAoci5mbGFncyAmPSAtMiksIHIuZmxhZ3MgJiA4IHx8IHIoKSwgKHIuZmxhZ3MgJj0gLTIpOwogICAgfQogICAgKGFjdGl2ZVBvc3RGbHVzaENicyA9IG51bGwpLCAocG9zdEZsdXNoSW5kZXggPSAwKTsKICB9Cn0KY29uc3QgZ2V0SWQgPSAoZSkgPT4gKGUuaWQgPT0gbnVsbCA/IChlLmZsYWdzICYgMiA/IC0xIDogMSAvIDApIDogZS5pZCk7CmZ1bmN0aW9uIGZsdXNoSm9icyhlKSB7CiAgdHJ5IHsKICAgIGZvciAoZmx1c2hJbmRleCA9IDA7IGZsdXNoSW5kZXggPCBxdWV1ZS5sZW5ndGg7IGZsdXNoSW5kZXgrKykgewogICAgICBjb25zdCB0ID0gcXVldWVbZmx1c2hJbmRleF07CiAgICAgIHQgJiYKICAgICAgICAhKHQuZmxhZ3MgJiA4KSAmJgogICAgICAgICh0LmZsYWdzICYgNCAmJiAodC5mbGFncyAmPSAtMiksCiAgICAgICAgICBjYWxsV2l0aEVycm9ySGFuZGxpbmcodCwgdC5pLCB0LmkgPyAxNSA6IDE0KSwKICAgICAgICAgIHQuZmxhZ3MgJiA0IHx8ICh0LmZsYWdzICY9IC0yKSk7CiAgICB9CiAgfSBmaW5hbGx5IHsKICAgIGZvciAoOyBmbHVzaEluZGV4IDwgcXVldWUubGVuZ3RoOyBmbHVzaEluZGV4KyspIHsKICAgICAgY29uc3QgdCA9IHF1ZXVlW2ZsdXNoSW5kZXhdOwogICAgICB0ICYmICh0LmZsYWdzICY9IC0yKTsKICAgIH0KICAgIChmbHVzaEluZGV4ID0gLTEpLAogICAgICAocXVldWUubGVuZ3RoID0gMCksCiAgICAgIGZsdXNoUG9zdEZsdXNoQ2JzKCksCiAgICAgIChjdXJyZW50Rmx1c2hQcm9taXNlID0gbnVsbCksCiAgICAgIChxdWV1ZS5sZW5ndGggfHwgcGVuZGluZ1Bvc3RGbHVzaENicy5sZW5ndGgpICYmIGZsdXNoSm9icygpOwogIH0KfQpsZXQgZGV2dG9vbHMkMSwKICBidWZmZXIgPSBbXTsKZnVuY3Rpb24gc2V0RGV2dG9vbHNIb29rJDEoZSwgdCkgewogIHZhciByLCBuOwogIChkZXZ0b29scyQxID0gZSksCiAgICBkZXZ0b29scyQxCiAgICAgID8gKChkZXZ0b29scyQxLmVuYWJsZWQgPSAhMCksCiAgICAgICAgYnVmZmVyLmZvckVhY2goKHsgZXZlbnQ6IGksIGFyZ3M6IGEgfSkgPT4gZGV2dG9vbHMkMS5lbWl0KGksIC4uLmEpKSwKICAgICAgICAoYnVmZmVyID0gW10pKQogICAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIgJiYKICAgICAgICB3aW5kb3cuSFRNTEVsZW1lbnQgJiYKICAgICAgICAhKAogICAgICAgICAgKG4gPSAociA9IHdpbmRvdy5uYXZpZ2F0b3IpID09IG51bGwgPyB2b2lkIDAgOiByLnVzZXJBZ2VudCkgIT0gbnVsbCAmJgogICAgICAgICAgbi5pbmNsdWRlcygianNkb20iKQogICAgICAgICkKICAgICAgICA/ICgodC5fX1ZVRV9ERVZUT09MU19IT09LX1JFUExBWV9fID0KICAgICAgICAgIHQuX19WVUVfREVWVE9PTFNfSE9PS19SRVBMQVlfXyB8fCBbXSkucHVzaCgoYSkgPT4gewogICAgICAgICAgICBzZXREZXZ0b29sc0hvb2skMShhLCB0KTsKICAgICAgICAgIH0pLAogICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGRldnRvb2xzJDEgfHwKICAgICAgICAgICAgICAoKHQuX19WVUVfREVWVE9PTFNfSE9PS19SRVBMQVlfXyA9IG51bGwpLCAoYnVmZmVyID0gW10pKTsKICAgICAgICAgIH0sIDNlMykpCiAgICAgICAgOiAoYnVmZmVyID0gW10pOwp9CmxldCBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSBudWxsLAogIGN1cnJlbnRTY29wZUlkID0gbnVsbDsKZnVuY3Rpb24gc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKGUpIHsKICBjb25zdCB0ID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlOwogIHJldHVybiAoCiAgICAoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID0gZSksCiAgICAoY3VycmVudFNjb3BlSWQgPSAoZSAmJiBlLnR5cGUuX19zY29wZUlkKSB8fCBudWxsKSwKICAgIHQKICApOwp9CmZ1bmN0aW9uIHB1c2hTY29wZUlkKGUpIHsKICBjdXJyZW50U2NvcGVJZCA9IGU7Cn0KZnVuY3Rpb24gcG9wU2NvcGVJZCgpIHsKICBjdXJyZW50U2NvcGVJZCA9IG51bGw7Cn0KY29uc3Qgd2l0aFNjb3BlSWQgPSAoZSkgPT4gd2l0aEN0eDsKZnVuY3Rpb24gd2l0aEN0eChlLCB0ID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLCByKSB7CiAgaWYgKCF0IHx8IGUuX24pIHJldHVybiBlOwogIGNvbnN0IG4gPSAoLi4uaSkgPT4gewogICAgbi5fZCAmJiBzZXRCbG9ja1RyYWNraW5nKC0xKTsKICAgIGNvbnN0IGEgPSBzZXRDdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UodCk7CiAgICBsZXQgbzsKICAgIHRyeSB7CiAgICAgIG8gPSBlKC4uLmkpOwogICAgfSBmaW5hbGx5IHsKICAgICAgc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKGEpLCBuLl9kICYmIHNldEJsb2NrVHJhY2tpbmcoMSk7CiAgICB9CiAgICByZXR1cm4gbzsKICB9OwogIHJldHVybiAobi5fbiA9ICEwKSwgKG4uX2MgPSAhMCksIChuLl9kID0gITApLCBuOwp9CmZ1bmN0aW9uIHdpdGhEaXJlY3RpdmVzKGUsIHQpIHsKICBpZiAoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID09PSBudWxsKSByZXR1cm4gZTsKICBjb25zdCByID0gZ2V0Q29tcG9uZW50UHVibGljSW5zdGFuY2UoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlKSwKICAgIG4gPSBlLmRpcnMgfHwgKGUuZGlycyA9IFtdKTsKICBmb3IgKGxldCBpID0gMDsgaSA8IHQubGVuZ3RoOyBpKyspIHsKICAgIGxldCBbYSwgbywgbCwgYyA9IEVNUFRZX09CSl0gPSB0W2ldOwogICAgYSAmJgogICAgICAoaXNGdW5jdGlvbiQxKGEpICYmIChhID0geyBtb3VudGVkOiBhLCB1cGRhdGVkOiBhIH0pLAogICAgICAgIGEuZGVlcCAmJiB0cmF2ZXJzZShvKSwKICAgICAgICBuLnB1c2goewogICAgICAgICAgZGlyOiBhLAogICAgICAgICAgaW5zdGFuY2U6IHIsCiAgICAgICAgICB2YWx1ZTogbywKICAgICAgICAgIG9sZFZhbHVlOiB2b2lkIDAsCiAgICAgICAgICBhcmc6IGwsCiAgICAgICAgICBtb2RpZmllcnM6IGMsCiAgICAgICAgfSkpOwogIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiBpbnZva2VEaXJlY3RpdmVIb29rKGUsIHQsIHIsIG4pIHsKICBjb25zdCBpID0gZS5kaXJzLAogICAgYSA9IHQgJiYgdC5kaXJzOwogIGZvciAobGV0IG8gPSAwOyBvIDwgaS5sZW5ndGg7IG8rKykgewogICAgY29uc3QgbCA9IGlbb107CiAgICBhICYmIChsLm9sZFZhbHVlID0gYVtvXS52YWx1ZSk7CiAgICBsZXQgYyA9IGwuZGlyW25dOwogICAgYyAmJgogICAgICAocGF1c2VUcmFja2luZygpLAogICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGMsIHIsIDgsIFtlLmVsLCBsLCBlLCB0XSksCiAgICAgICAgcmVzZXRUcmFja2luZygpKTsKICB9Cn0KY29uc3QgVGVsZXBvcnRFbmRLZXkgPSBTeW1ib2woIl92dGUiKSwKICBpc1RlbGVwb3J0ID0gKGUpID0+IGUuX19pc1RlbGVwb3J0LAogIGlzVGVsZXBvcnREaXNhYmxlZCA9IChlKSA9PiBlICYmIChlLmRpc2FibGVkIHx8IGUuZGlzYWJsZWQgPT09ICIiKSwKICBpc1RlbGVwb3J0RGVmZXJyZWQgPSAoZSkgPT4gZSAmJiAoZS5kZWZlciB8fCBlLmRlZmVyID09PSAiIiksCiAgaXNUYXJnZXRTVkcgPSAoZSkgPT4gdHlwZW9mIFNWR0VsZW1lbnQgPCAidSIgJiYgZSBpbnN0YW5jZW9mIFNWR0VsZW1lbnQsCiAgaXNUYXJnZXRNYXRoTUwgPSAoZSkgPT4KICAgIHR5cGVvZiBNYXRoTUxFbGVtZW50ID09ICJmdW5jdGlvbiIgJiYgZSBpbnN0YW5jZW9mIE1hdGhNTEVsZW1lbnQsCiAgcmVzb2x2ZVRhcmdldCA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZSAmJiBlLnRvOwogICAgcmV0dXJuIGlzU3RyaW5nJDEocikgPyAodCA/IHQocikgOiBudWxsKSA6IHI7CiAgfSwKICBUZWxlcG9ydEltcGwgPSB7CiAgICBuYW1lOiAiVGVsZXBvcnQiLAogICAgX19pc1RlbGVwb3J0OiAhMCwKICAgIHByb2Nlc3MoZSwgdCwgciwgbiwgaSwgYSwgbywgbCwgYywgdSkgewogICAgICBjb25zdCB7CiAgICAgICAgbWM6IGQsCiAgICAgICAgcGM6IEUsCiAgICAgICAgcGJjOiBiLAogICAgICAgIG86IHsgaW5zZXJ0OiBQLCBxdWVyeVNlbGVjdG9yOiBSLCBjcmVhdGVUZXh0OiBULCBjcmVhdGVDb21tZW50OiBNIH0sCiAgICAgIH0gPSB1LAogICAgICAgIHggPSBpc1RlbGVwb3J0RGlzYWJsZWQodC5wcm9wcyk7CiAgICAgIGxldCB7IHNoYXBlRmxhZzogaywgY2hpbGRyZW46IFMsIGR5bmFtaWNDaGlsZHJlbjogQSB9ID0gdDsKICAgICAgaWYgKGUgPT0gbnVsbCkgewogICAgICAgIGNvbnN0IE8gPSAodC5lbCA9IFQoIiIpKSwKICAgICAgICAgIEYgPSAodC5hbmNob3IgPSBUKCIiKSk7CiAgICAgICAgUChPLCByLCBuKSwgUChGLCByLCBuKTsKICAgICAgICBjb25zdCBEID0gKCQsIHEpID0+IHsKICAgICAgICAgIGsgJiAxNiAmJgogICAgICAgICAgICAoaSAmJiBpLmlzQ0UgJiYgKGkuY2UuX3RlbGVwb3J0VGFyZ2V0ID0gJCksCiAgICAgICAgICAgICAgZChTLCAkLCBxLCBpLCBhLCBvLCBsLCBjKSk7CiAgICAgICAgfSwKICAgICAgICAgIEggPSAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0ICQgPSAodC50YXJnZXQgPSByZXNvbHZlVGFyZ2V0KHQucHJvcHMsIFIpKSwKICAgICAgICAgICAgICBxID0gcHJlcGFyZUFuY2hvcigkLCB0LCBULCBQKTsKICAgICAgICAgICAgJCAmJgogICAgICAgICAgICAgIChvICE9PSAic3ZnIiAmJiBpc1RhcmdldFNWRygkKQogICAgICAgICAgICAgICAgPyAobyA9ICJzdmciKQogICAgICAgICAgICAgICAgOiBvICE9PSAibWF0aG1sIiAmJiBpc1RhcmdldE1hdGhNTCgkKSAmJiAobyA9ICJtYXRobWwiKSwKICAgICAgICAgICAgICAgIHggfHwgKEQoJCwgcSksIHVwZGF0ZUNzc1ZhcnModCwgITEpKSk7CiAgICAgICAgICB9OwogICAgICAgIHggJiYgKEQociwgRiksIHVwZGF0ZUNzc1ZhcnModCwgITApKSwKICAgICAgICAgIGlzVGVsZXBvcnREZWZlcnJlZCh0LnByb3BzKQogICAgICAgICAgICA/IHF1ZXVlUG9zdFJlbmRlckVmZmVjdCgoKSA9PiB7CiAgICAgICAgICAgICAgSCgpLCAodC5lbC5fX2lzTW91bnRlZCA9ICEwKTsKICAgICAgICAgICAgfSwgYSkKICAgICAgICAgICAgOiBIKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGlzVGVsZXBvcnREZWZlcnJlZCh0LnByb3BzKSAmJiAhZS5lbC5fX2lzTW91bnRlZCkgewogICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IHsKICAgICAgICAgICAgVGVsZXBvcnRJbXBsLnByb2Nlc3MoZSwgdCwgciwgbiwgaSwgYSwgbywgbCwgYywgdSksCiAgICAgICAgICAgICAgZGVsZXRlIGUuZWwuX19pc01vdW50ZWQ7CiAgICAgICAgICB9LCBhKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgKHQuZWwgPSBlLmVsKSwgKHQudGFyZ2V0U3RhcnQgPSBlLnRhcmdldFN0YXJ0KTsKICAgICAgICBjb25zdCBPID0gKHQuYW5jaG9yID0gZS5hbmNob3IpLAogICAgICAgICAgRiA9ICh0LnRhcmdldCA9IGUudGFyZ2V0KSwKICAgICAgICAgIEQgPSAodC50YXJnZXRBbmNob3IgPSBlLnRhcmdldEFuY2hvciksCiAgICAgICAgICBIID0gaXNUZWxlcG9ydERpc2FibGVkKGUucHJvcHMpLAogICAgICAgICAgJCA9IEggPyByIDogRiwKICAgICAgICAgIHEgPSBIID8gTyA6IEQ7CiAgICAgICAgaWYgKAogICAgICAgICAgKG8gPT09ICJzdmciIHx8IGlzVGFyZ2V0U1ZHKEYpCiAgICAgICAgICAgID8gKG8gPSAic3ZnIikKICAgICAgICAgICAgOiAobyA9PT0gIm1hdGhtbCIgfHwgaXNUYXJnZXRNYXRoTUwoRikpICYmIChvID0gIm1hdGhtbCIpLAogICAgICAgICAgICBBCiAgICAgICAgICAgICAgPyAoYihlLmR5bmFtaWNDaGlsZHJlbiwgQSwgJCwgaSwgYSwgbywgbCksCiAgICAgICAgICAgICAgICB0cmF2ZXJzZVN0YXRpY0NoaWxkcmVuKGUsIHQsICEwKSkKICAgICAgICAgICAgICA6IGMgfHwgRShlLCB0LCAkLCBxLCBpLCBhLCBvLCBsLCAhMSksCiAgICAgICAgICAgIHgpCiAgICAgICAgKQogICAgICAgICAgSAogICAgICAgICAgICA/IHQucHJvcHMgJiYKICAgICAgICAgICAgZS5wcm9wcyAmJgogICAgICAgICAgICB0LnByb3BzLnRvICE9PSBlLnByb3BzLnRvICYmCiAgICAgICAgICAgICh0LnByb3BzLnRvID0gZS5wcm9wcy50bykKICAgICAgICAgICAgOiBtb3ZlVGVsZXBvcnQodCwgciwgTywgdSwgMSk7CiAgICAgICAgZWxzZSBpZiAoKHQucHJvcHMgJiYgdC5wcm9wcy50bykgIT09IChlLnByb3BzICYmIGUucHJvcHMudG8pKSB7CiAgICAgICAgICBjb25zdCBKID0gKHQudGFyZ2V0ID0gcmVzb2x2ZVRhcmdldCh0LnByb3BzLCBSKSk7CiAgICAgICAgICBKICYmIG1vdmVUZWxlcG9ydCh0LCBKLCBudWxsLCB1LCAwKTsKICAgICAgICB9IGVsc2UgSCAmJiBtb3ZlVGVsZXBvcnQodCwgRiwgRCwgdSwgMSk7CiAgICAgICAgdXBkYXRlQ3NzVmFycyh0LCB4KTsKICAgICAgfQogICAgfSwKICAgIHJlbW92ZShlLCB0LCByLCB7IHVtOiBuLCBvOiB7IHJlbW92ZTogaSB9IH0sIGEpIHsKICAgICAgY29uc3QgewogICAgICAgIHNoYXBlRmxhZzogbywKICAgICAgICBjaGlsZHJlbjogbCwKICAgICAgICBhbmNob3I6IGMsCiAgICAgICAgdGFyZ2V0U3RhcnQ6IHUsCiAgICAgICAgdGFyZ2V0QW5jaG9yOiBkLAogICAgICAgIHRhcmdldDogRSwKICAgICAgICBwcm9wczogYiwKICAgICAgfSA9IGU7CiAgICAgIGlmICgoRSAmJiAoaSh1KSwgaShkKSksIGEgJiYgaShjKSwgbyAmIDE2KSkgewogICAgICAgIGNvbnN0IFAgPSBhIHx8ICFpc1RlbGVwb3J0RGlzYWJsZWQoYik7CiAgICAgICAgZm9yIChsZXQgUiA9IDA7IFIgPCBsLmxlbmd0aDsgUisrKSB7CiAgICAgICAgICBjb25zdCBUID0gbFtSXTsKICAgICAgICAgIG4oVCwgdCwgciwgUCwgISFULmR5bmFtaWNDaGlsZHJlbik7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgbW92ZTogbW92ZVRlbGVwb3J0LAogICAgaHlkcmF0ZTogaHlkcmF0ZVRlbGVwb3J0LAogIH07CmZ1bmN0aW9uIG1vdmVUZWxlcG9ydChlLCB0LCByLCB7IG86IHsgaW5zZXJ0OiBuIH0sIG06IGkgfSwgYSA9IDIpIHsKICBhID09PSAwICYmIG4oZS50YXJnZXRBbmNob3IsIHQsIHIpOwogIGNvbnN0IHsgZWw6IG8sIGFuY2hvcjogbCwgc2hhcGVGbGFnOiBjLCBjaGlsZHJlbjogdSwgcHJvcHM6IGQgfSA9IGUsCiAgICBFID0gYSA9PT0gMjsKICBpZiAoKEUgJiYgbihvLCB0LCByKSwgKCFFIHx8IGlzVGVsZXBvcnREaXNhYmxlZChkKSkgJiYgYyAmIDE2KSkKICAgIGZvciAobGV0IGIgPSAwOyBiIDwgdS5sZW5ndGg7IGIrKykgaSh1W2JdLCB0LCByLCAyKTsKICBFICYmIG4obCwgdCwgcik7Cn0KZnVuY3Rpb24gaHlkcmF0ZVRlbGVwb3J0KAogIGUsCiAgdCwKICByLAogIG4sCiAgaSwKICBhLAogIHsKICAgIG86IHsKICAgICAgbmV4dFNpYmxpbmc6IG8sCiAgICAgIHBhcmVudE5vZGU6IGwsCiAgICAgIHF1ZXJ5U2VsZWN0b3I6IGMsCiAgICAgIGluc2VydDogdSwKICAgICAgY3JlYXRlVGV4dDogZCwKICAgIH0sCiAgfSwKICBFCikgewogIGNvbnN0IGIgPSAodC50YXJnZXQgPSByZXNvbHZlVGFyZ2V0KHQucHJvcHMsIGMpKTsKICBpZiAoYikgewogICAgY29uc3QgUCA9IGlzVGVsZXBvcnREaXNhYmxlZCh0LnByb3BzKSwKICAgICAgUiA9IGIuX2xwYSB8fCBiLmZpcnN0Q2hpbGQ7CiAgICBpZiAodC5zaGFwZUZsYWcgJiAxNikKICAgICAgaWYgKFApCiAgICAgICAgKHQuYW5jaG9yID0gRShvKGUpLCB0LCBsKGUpLCByLCBuLCBpLCBhKSksCiAgICAgICAgICAodC50YXJnZXRTdGFydCA9IFIpLAogICAgICAgICAgKHQudGFyZ2V0QW5jaG9yID0gUiAmJiBvKFIpKTsKICAgICAgZWxzZSB7CiAgICAgICAgdC5hbmNob3IgPSBvKGUpOwogICAgICAgIGxldCBUID0gUjsKICAgICAgICBmb3IgKDsgVDspIHsKICAgICAgICAgIGlmIChUICYmIFQubm9kZVR5cGUgPT09IDgpIHsKICAgICAgICAgICAgaWYgKFQuZGF0YSA9PT0gInRlbGVwb3J0IHN0YXJ0IGFuY2hvciIpIHQudGFyZ2V0U3RhcnQgPSBUOwogICAgICAgICAgICBlbHNlIGlmIChULmRhdGEgPT09ICJ0ZWxlcG9ydCBhbmNob3IiKSB7CiAgICAgICAgICAgICAgKHQudGFyZ2V0QW5jaG9yID0gVCksCiAgICAgICAgICAgICAgICAoYi5fbHBhID0gdC50YXJnZXRBbmNob3IgJiYgbyh0LnRhcmdldEFuY2hvcikpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBUID0gbyhUKTsKICAgICAgICB9CiAgICAgICAgdC50YXJnZXRBbmNob3IgfHwgcHJlcGFyZUFuY2hvcihiLCB0LCBkLCB1KSwKICAgICAgICAgIEUoUiAmJiBvKFIpLCB0LCBiLCByLCBuLCBpLCBhKTsKICAgICAgfQogICAgdXBkYXRlQ3NzVmFycyh0LCBQKTsKICB9CiAgcmV0dXJuIHQuYW5jaG9yICYmIG8odC5hbmNob3IpOwp9CmNvbnN0IFRlbGVwb3J0ID0gVGVsZXBvcnRJbXBsOwpmdW5jdGlvbiB1cGRhdGVDc3NWYXJzKGUsIHQpIHsKICBjb25zdCByID0gZS5jdHg7CiAgaWYgKHIgJiYgci51dCkgewogICAgbGV0IG4sIGk7CiAgICBmb3IgKAogICAgICB0CiAgICAgICAgPyAoKG4gPSBlLmVsKSwgKGkgPSBlLmFuY2hvcikpCiAgICAgICAgOiAoKG4gPSBlLnRhcmdldFN0YXJ0KSwgKGkgPSBlLnRhcmdldEFuY2hvcikpOwogICAgICBuICYmIG4gIT09IGk7CgogICAgKQogICAgICBuLm5vZGVUeXBlID09PSAxICYmIG4uc2V0QXR0cmlidXRlKCJkYXRhLXYtb3duZXIiLCByLnVpZCksCiAgICAgICAgKG4gPSBuLm5leHRTaWJsaW5nKTsKICAgIHIudXQoKTsKICB9Cn0KZnVuY3Rpb24gcHJlcGFyZUFuY2hvcihlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9ICh0LnRhcmdldFN0YXJ0ID0gcigiIikpLAogICAgYSA9ICh0LnRhcmdldEFuY2hvciA9IHIoIiIpKTsKICByZXR1cm4gKGlbVGVsZXBvcnRFbmRLZXldID0gYSksIGUgJiYgKG4oaSwgZSksIG4oYSwgZSkpLCBhOwp9CmNvbnN0IGxlYXZlQ2JLZXkgPSBTeW1ib2woIl9sZWF2ZUNiIiksCiAgZW50ZXJDYktleSQxID0gU3ltYm9sKCJfZW50ZXJDYiIpOwpmdW5jdGlvbiB1c2VUcmFuc2l0aW9uU3RhdGUoKSB7CiAgY29uc3QgZSA9IHsKICAgIGlzTW91bnRlZDogITEsCiAgICBpc0xlYXZpbmc6ICExLAogICAgaXNVbm1vdW50aW5nOiAhMSwKICAgIGxlYXZpbmdWTm9kZXM6IG5ldyBNYXAoKSwKICB9OwogIHJldHVybiAoCiAgICBvbk1vdW50ZWQoKCkgPT4gewogICAgICBlLmlzTW91bnRlZCA9ICEwOwogICAgfSksCiAgICBvbkJlZm9yZVVubW91bnQoKCkgPT4gewogICAgICBlLmlzVW5tb3VudGluZyA9ICEwOwogICAgfSksCiAgICBlCiAgKTsKfQpjb25zdCBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciA9IFtGdW5jdGlvbiwgQXJyYXldLAogIEJhc2VUcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzID0gewogICAgbW9kZTogU3RyaW5nLAogICAgYXBwZWFyOiBCb29sZWFuLAogICAgcGVyc2lzdGVkOiBCb29sZWFuLAogICAgb25CZWZvcmVFbnRlcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkVudGVyOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICAgIG9uQWZ0ZXJFbnRlcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkVudGVyQ2FuY2VsbGVkOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICAgIG9uQmVmb3JlTGVhdmU6IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yLAogICAgb25MZWF2ZTogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkFmdGVyTGVhdmU6IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yLAogICAgb25MZWF2ZUNhbmNlbGxlZDogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkJlZm9yZUFwcGVhcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkFwcGVhcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsCiAgICBvbkFmdGVyQXBwZWFyOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICAgIG9uQXBwZWFyQ2FuY2VsbGVkOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvciwKICB9LAogIHJlY3Vyc2l2ZUdldFN1YnRyZWUgPSAoZSkgPT4gewogICAgY29uc3QgdCA9IGUuc3ViVHJlZTsKICAgIHJldHVybiB0LmNvbXBvbmVudCA/IHJlY3Vyc2l2ZUdldFN1YnRyZWUodC5jb21wb25lbnQpIDogdDsKICB9LAogIEJhc2VUcmFuc2l0aW9uSW1wbCA9IHsKICAgIG5hbWU6ICJCYXNlVHJhbnNpdGlvbiIsCiAgICBwcm9wczogQmFzZVRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsCiAgICBzZXR1cChlLCB7IHNsb3RzOiB0IH0pIHsKICAgICAgY29uc3QgciA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICAgICAgbiA9IHVzZVRyYW5zaXRpb25TdGF0ZSgpOwogICAgICByZXR1cm4gKCkgPT4gewogICAgICAgIGNvbnN0IGkgPSB0LmRlZmF1bHQgJiYgZ2V0VHJhbnNpdGlvblJhd0NoaWxkcmVuKHQuZGVmYXVsdCgpLCAhMCk7CiAgICAgICAgaWYgKCFpIHx8ICFpLmxlbmd0aCkgcmV0dXJuOwogICAgICAgIGNvbnN0IGEgPSBmaW5kTm9uQ29tbWVudENoaWxkKGkpLAogICAgICAgICAgbyA9IHRvUmF3KGUpLAogICAgICAgICAgeyBtb2RlOiBsIH0gPSBvOwogICAgICAgIGlmIChuLmlzTGVhdmluZykgcmV0dXJuIGVtcHR5UGxhY2Vob2xkZXIoYSk7CiAgICAgICAgY29uc3QgYyA9IGdldElubmVyQ2hpbGQkMShhKTsKICAgICAgICBpZiAoIWMpIHJldHVybiBlbXB0eVBsYWNlaG9sZGVyKGEpOwogICAgICAgIGxldCB1ID0gcmVzb2x2ZVRyYW5zaXRpb25Ib29rcyhjLCBvLCBuLCByLCAoRSkgPT4gKHUgPSBFKSk7CiAgICAgICAgYy50eXBlICE9PSBDb21tZW50ICYmIHNldFRyYW5zaXRpb25Ib29rcyhjLCB1KTsKICAgICAgICBsZXQgZCA9IHIuc3ViVHJlZSAmJiBnZXRJbm5lckNoaWxkJDEoci5zdWJUcmVlKTsKICAgICAgICBpZiAoCiAgICAgICAgICBkICYmCiAgICAgICAgICBkLnR5cGUgIT09IENvbW1lbnQgJiYKICAgICAgICAgICFpc1NhbWVWTm9kZVR5cGUoYywgZCkgJiYKICAgICAgICAgIHJlY3Vyc2l2ZUdldFN1YnRyZWUocikudHlwZSAhPT0gQ29tbWVudAogICAgICAgICkgewogICAgICAgICAgbGV0IEUgPSByZXNvbHZlVHJhbnNpdGlvbkhvb2tzKGQsIG8sIG4sIHIpOwogICAgICAgICAgaWYgKChzZXRUcmFuc2l0aW9uSG9va3MoZCwgRSksIGwgPT09ICJvdXQtaW4iICYmIGMudHlwZSAhPT0gQ29tbWVudCkpCiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKG4uaXNMZWF2aW5nID0gITApLAogICAgICAgICAgICAgIChFLmFmdGVyTGVhdmUgPSAoKSA9PiB7CiAgICAgICAgICAgICAgICAobi5pc0xlYXZpbmcgPSAhMSksCiAgICAgICAgICAgICAgICAgIHIuam9iLmZsYWdzICYgOCB8fCByLnVwZGF0ZSgpLAogICAgICAgICAgICAgICAgICBkZWxldGUgRS5hZnRlckxlYXZlLAogICAgICAgICAgICAgICAgICAoZCA9IHZvaWQgMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZW1wdHlQbGFjZWhvbGRlcihhKQogICAgICAgICAgICApOwogICAgICAgICAgbCA9PT0gImluLW91dCIgJiYgYy50eXBlICE9PSBDb21tZW50CiAgICAgICAgICAgID8gKEUuZGVsYXlMZWF2ZSA9IChiLCBQLCBSKSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgVCA9IGdldExlYXZpbmdOb2Rlc0ZvclR5cGUobiwgZCk7CiAgICAgICAgICAgICAgKFRbU3RyaW5nKGQua2V5KV0gPSBkKSwKICAgICAgICAgICAgICAgIChiW2xlYXZlQ2JLZXldID0gKCkgPT4gewogICAgICAgICAgICAgICAgICBQKCksCiAgICAgICAgICAgICAgICAgICAgKGJbbGVhdmVDYktleV0gPSB2b2lkIDApLAogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1LmRlbGF5ZWRMZWF2ZSwKICAgICAgICAgICAgICAgICAgICAoZCA9IHZvaWQgMCk7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICh1LmRlbGF5ZWRMZWF2ZSA9ICgpID0+IHsKICAgICAgICAgICAgICAgICAgUigpLCBkZWxldGUgdS5kZWxheWVkTGVhdmUsIChkID0gdm9pZCAwKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KQogICAgICAgICAgICA6IChkID0gdm9pZCAwKTsKICAgICAgICB9IGVsc2UgZCAmJiAoZCA9IHZvaWQgMCk7CiAgICAgICAgcmV0dXJuIGE7CiAgICAgIH07CiAgICB9LAogIH07CmZ1bmN0aW9uIGZpbmROb25Db21tZW50Q2hpbGQoZSkgewogIGxldCB0ID0gZVswXTsKICBpZiAoZS5sZW5ndGggPiAxKSB7CiAgICBmb3IgKGNvbnN0IHIgb2YgZSkKICAgICAgaWYgKHIudHlwZSAhPT0gQ29tbWVudCkgewogICAgICAgIHQgPSByOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgfQogIHJldHVybiB0Owp9CmNvbnN0IEJhc2VUcmFuc2l0aW9uID0gQmFzZVRyYW5zaXRpb25JbXBsOwpmdW5jdGlvbiBnZXRMZWF2aW5nTm9kZXNGb3JUeXBlKGUsIHQpIHsKICBjb25zdCB7IGxlYXZpbmdWTm9kZXM6IHIgfSA9IGU7CiAgbGV0IG4gPSByLmdldCh0LnR5cGUpOwogIHJldHVybiBuIHx8ICgobiA9IE9iamVjdC5jcmVhdGUobnVsbCkpLCByLnNldCh0LnR5cGUsIG4pKSwgbjsKfQpmdW5jdGlvbiByZXNvbHZlVHJhbnNpdGlvbkhvb2tzKGUsIHQsIHIsIG4sIGkpIHsKICBjb25zdCB7CiAgICBhcHBlYXI6IGEsCiAgICBtb2RlOiBvLAogICAgcGVyc2lzdGVkOiBsID0gITEsCiAgICBvbkJlZm9yZUVudGVyOiBjLAogICAgb25FbnRlcjogdSwKICAgIG9uQWZ0ZXJFbnRlcjogZCwKICAgIG9uRW50ZXJDYW5jZWxsZWQ6IEUsCiAgICBvbkJlZm9yZUxlYXZlOiBiLAogICAgb25MZWF2ZTogUCwKICAgIG9uQWZ0ZXJMZWF2ZTogUiwKICAgIG9uTGVhdmVDYW5jZWxsZWQ6IFQsCiAgICBvbkJlZm9yZUFwcGVhcjogTSwKICAgIG9uQXBwZWFyOiB4LAogICAgb25BZnRlckFwcGVhcjogaywKICAgIG9uQXBwZWFyQ2FuY2VsbGVkOiBTLAogIH0gPSB0LAogICAgQSA9IFN0cmluZyhlLmtleSksCiAgICBPID0gZ2V0TGVhdmluZ05vZGVzRm9yVHlwZShyLCBlKSwKICAgIEYgPSAoJCwgcSkgPT4gewogICAgICAkICYmIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKCQsIG4sIDksIHEpOwogICAgfSwKICAgIEQgPSAoJCwgcSkgPT4gewogICAgICBjb25zdCBKID0gcVsxXTsKICAgICAgRigkLCBxKSwKICAgICAgICBpc0FycmF5JDIoJCkKICAgICAgICAgID8gJC5ldmVyeSgoSykgPT4gSy5sZW5ndGggPD0gMSkgJiYgSigpCiAgICAgICAgICA6ICQubGVuZ3RoIDw9IDEgJiYgSigpOwogICAgfSwKICAgIEggPSB7CiAgICAgIG1vZGU6IG8sCiAgICAgIHBlcnNpc3RlZDogbCwKICAgICAgYmVmb3JlRW50ZXIoJCkgewogICAgICAgIGxldCBxID0gYzsKICAgICAgICBpZiAoIXIuaXNNb3VudGVkKQogICAgICAgICAgaWYgKGEpIHEgPSBNIHx8IGM7CiAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICAkW2xlYXZlQ2JLZXldICYmICRbbGVhdmVDYktleV0oITApOwogICAgICAgIGNvbnN0IEogPSBPW0FdOwogICAgICAgIEogJiYgaXNTYW1lVk5vZGVUeXBlKGUsIEopICYmIEouZWxbbGVhdmVDYktleV0gJiYgSi5lbFtsZWF2ZUNiS2V5XSgpLAogICAgICAgICAgRihxLCBbJF0pOwogICAgICB9LAogICAgICBlbnRlcigkKSB7CiAgICAgICAgbGV0IHEgPSB1LAogICAgICAgICAgSiA9IGQsCiAgICAgICAgICBLID0gRTsKICAgICAgICBpZiAoIXIuaXNNb3VudGVkKQogICAgICAgICAgaWYgKGEpIChxID0geCB8fCB1KSwgKEogPSBrIHx8IGQpLCAoSyA9IFMgfHwgRSk7CiAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICBsZXQgZWUgPSAhMTsKICAgICAgICBjb25zdCBsZSA9ICgkW2VudGVyQ2JLZXkkMV0gPSAocmUpID0+IHsKICAgICAgICAgIGVlIHx8CiAgICAgICAgICAgICgoZWUgPSAhMCksCiAgICAgICAgICAgICAgcmUgPyBGKEssIFskXSkgOiBGKEosIFskXSksCiAgICAgICAgICAgICAgSC5kZWxheWVkTGVhdmUgJiYgSC5kZWxheWVkTGVhdmUoKSwKICAgICAgICAgICAgICAoJFtlbnRlckNiS2V5JDFdID0gdm9pZCAwKSk7CiAgICAgICAgfSk7CiAgICAgICAgcSA/IEQocSwgWyQsIGxlXSkgOiBsZSgpOwogICAgICB9LAogICAgICBsZWF2ZSgkLCBxKSB7CiAgICAgICAgY29uc3QgSiA9IFN0cmluZyhlLmtleSk7CiAgICAgICAgaWYgKCgkW2VudGVyQ2JLZXkkMV0gJiYgJFtlbnRlckNiS2V5JDFdKCEwKSwgci5pc1VubW91bnRpbmcpKQogICAgICAgICAgcmV0dXJuIHEoKTsKICAgICAgICBGKGIsIFskXSk7CiAgICAgICAgbGV0IEsgPSAhMTsKICAgICAgICBjb25zdCBlZSA9ICgkW2xlYXZlQ2JLZXldID0gKGxlKSA9PiB7CiAgICAgICAgICBLIHx8CiAgICAgICAgICAgICgoSyA9ICEwKSwKICAgICAgICAgICAgICBxKCksCiAgICAgICAgICAgICAgbGUgPyBGKFQsIFskXSkgOiBGKFIsIFskXSksCiAgICAgICAgICAgICAgKCRbbGVhdmVDYktleV0gPSB2b2lkIDApLAogICAgICAgICAgICAgIE9bSl0gPT09IGUgJiYgZGVsZXRlIE9bSl0pOwogICAgICAgIH0pOwogICAgICAgIChPW0pdID0gZSksIFAgPyBEKFAsIFskLCBlZV0pIDogZWUoKTsKICAgICAgfSwKICAgICAgY2xvbmUoJCkgewogICAgICAgIGNvbnN0IHEgPSByZXNvbHZlVHJhbnNpdGlvbkhvb2tzKCQsIHQsIHIsIG4sIGkpOwogICAgICAgIHJldHVybiBpICYmIGkocSksIHE7CiAgICAgIH0sCiAgICB9OwogIHJldHVybiBIOwp9CmZ1bmN0aW9uIGVtcHR5UGxhY2Vob2xkZXIoZSkgewogIGlmIChpc0tlZXBBbGl2ZShlKSkgcmV0dXJuIChlID0gY2xvbmVWTm9kZShlKSksIChlLmNoaWxkcmVuID0gbnVsbCksIGU7Cn0KZnVuY3Rpb24gZ2V0SW5uZXJDaGlsZCQxKGUpIHsKICBpZiAoIWlzS2VlcEFsaXZlKGUpKQogICAgcmV0dXJuIGlzVGVsZXBvcnQoZS50eXBlKSAmJiBlLmNoaWxkcmVuCiAgICAgID8gZmluZE5vbkNvbW1lbnRDaGlsZChlLmNoaWxkcmVuKQogICAgICA6IGU7CiAgY29uc3QgeyBzaGFwZUZsYWc6IHQsIGNoaWxkcmVuOiByIH0gPSBlOwogIGlmIChyKSB7CiAgICBpZiAodCAmIDE2KSByZXR1cm4gclswXTsKICAgIGlmICh0ICYgMzIgJiYgaXNGdW5jdGlvbiQxKHIuZGVmYXVsdCkpIHJldHVybiByLmRlZmF1bHQoKTsKICB9Cn0KZnVuY3Rpb24gc2V0VHJhbnNpdGlvbkhvb2tzKGUsIHQpIHsKICBlLnNoYXBlRmxhZyAmIDYgJiYgZS5jb21wb25lbnQKICAgID8gKChlLnRyYW5zaXRpb24gPSB0KSwgc2V0VHJhbnNpdGlvbkhvb2tzKGUuY29tcG9uZW50LnN1YlRyZWUsIHQpKQogICAgOiBlLnNoYXBlRmxhZyAmIDEyOAogICAgICA/ICgoZS5zc0NvbnRlbnQudHJhbnNpdGlvbiA9IHQuY2xvbmUoZS5zc0NvbnRlbnQpKSwKICAgICAgICAoZS5zc0ZhbGxiYWNrLnRyYW5zaXRpb24gPSB0LmNsb25lKGUuc3NGYWxsYmFjaykpKQogICAgICA6IChlLnRyYW5zaXRpb24gPSB0KTsKfQpmdW5jdGlvbiBnZXRUcmFuc2l0aW9uUmF3Q2hpbGRyZW4oZSwgdCA9ICExLCByKSB7CiAgbGV0IG4gPSBbXSwKICAgIGkgPSAwOwogIGZvciAobGV0IGEgPSAwOyBhIDwgZS5sZW5ndGg7IGErKykgewogICAgbGV0IG8gPSBlW2FdOwogICAgY29uc3QgbCA9IHIgPT0gbnVsbCA/IG8ua2V5IDogU3RyaW5nKHIpICsgU3RyaW5nKG8ua2V5ICE9IG51bGwgPyBvLmtleSA6IGEpOwogICAgby50eXBlID09PSBGcmFnbWVudAogICAgICA/IChvLnBhdGNoRmxhZyAmIDEyOCAmJiBpKyssCiAgICAgICAgKG4gPSBuLmNvbmNhdChnZXRUcmFuc2l0aW9uUmF3Q2hpbGRyZW4oby5jaGlsZHJlbiwgdCwgbCkpKSkKICAgICAgOiAodCB8fCBvLnR5cGUgIT09IENvbW1lbnQpICYmCiAgICAgIG4ucHVzaChsICE9IG51bGwgPyBjbG9uZVZOb2RlKG8sIHsga2V5OiBsIH0pIDogbyk7CiAgfQogIGlmIChpID4gMSkgZm9yIChsZXQgYSA9IDA7IGEgPCBuLmxlbmd0aDsgYSsrKSBuW2FdLnBhdGNoRmxhZyA9IC0yOwogIHJldHVybiBuOwp9Ci8qISAjX19OT19TSURFX0VGRkVDVFNfXyAqLyBmdW5jdGlvbiBkZWZpbmVDb21wb25lbnQkMShlLCB0KSB7CiAgcmV0dXJuIGlzRnVuY3Rpb24kMShlKSA/IGV4dGVuZCh7IG5hbWU6IGUubmFtZSB9LCB0LCB7IHNldHVwOiBlIH0pIDogZTsKfQpmdW5jdGlvbiB1c2VJZCgpIHsKICBjb25zdCBlID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKTsKICByZXR1cm4gZQogICAgPyAoZS5hcHBDb250ZXh0LmNvbmZpZy5pZFByZWZpeCB8fCAidiIpICsgIi0iICsgZS5pZHNbMF0gKyBlLmlkc1sxXSsrCiAgICA6ICIiOwp9CmZ1bmN0aW9uIG1hcmtBc3luY0JvdW5kYXJ5KGUpIHsKICBlLmlkcyA9IFtlLmlkc1swXSArIGUuaWRzWzJdKysgKyAiLSIsIDAsIDBdOwp9CmZ1bmN0aW9uIHVzZVRlbXBsYXRlUmVmKGUpIHsKICBjb25zdCB0ID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKSwKICAgIHIgPSBzaGFsbG93UmVmKG51bGwpOwogIGlmICh0KSB7CiAgICBjb25zdCBpID0gdC5yZWZzID09PSBFTVBUWV9PQkogPyAodC5yZWZzID0ge30pIDogdC5yZWZzOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIGUsIHsKICAgICAgZW51bWVyYWJsZTogITAsCiAgICAgIGdldDogKCkgPT4gci52YWx1ZSwKICAgICAgc2V0OiAoYSkgPT4gKHIudmFsdWUgPSBhKSwKICAgIH0pOwogIH0KICByZXR1cm4gcjsKfQpmdW5jdGlvbiBzZXRSZWYoZSwgdCwgciwgbiwgaSA9ICExKSB7CiAgaWYgKGlzQXJyYXkkMihlKSkgewogICAgZS5mb3JFYWNoKChSLCBUKSA9PiBzZXRSZWYoUiwgdCAmJiAoaXNBcnJheSQyKHQpID8gdFtUXSA6IHQpLCByLCBuLCBpKSk7CiAgICByZXR1cm47CiAgfQogIGlmIChpc0FzeW5jV3JhcHBlcihuKSAmJiAhaSkgewogICAgbi5zaGFwZUZsYWcgJiA1MTIgJiYKICAgICAgbi50eXBlLl9fYXN5bmNSZXNvbHZlZCAmJgogICAgICBuLmNvbXBvbmVudC5zdWJUcmVlLmNvbXBvbmVudCAmJgogICAgICBzZXRSZWYoZSwgdCwgciwgbi5jb21wb25lbnQuc3ViVHJlZSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGEgPSBuLnNoYXBlRmxhZyAmIDQgPyBnZXRDb21wb25lbnRQdWJsaWNJbnN0YW5jZShuLmNvbXBvbmVudCkgOiBuLmVsLAogICAgbyA9IGkgPyBudWxsIDogYSwKICAgIHsgaTogbCwgcjogYyB9ID0gZSwKICAgIHUgPSB0ICYmIHQuciwKICAgIGQgPSBsLnJlZnMgPT09IEVNUFRZX09CSiA/IChsLnJlZnMgPSB7fSkgOiBsLnJlZnMsCiAgICBFID0gbC5zZXR1cFN0YXRlLAogICAgYiA9IHRvUmF3KEUpLAogICAgUCA9IEUgPT09IEVNUFRZX09CSiA/ICgpID0+ICExIDogKFIpID0+IGhhc093biQxKGIsIFIpOwogIGlmICgKICAgICh1ICE9IG51bGwgJiYKICAgICAgdSAhPT0gYyAmJgogICAgICAoaXNTdHJpbmckMSh1KQogICAgICAgID8gKChkW3VdID0gbnVsbCksIFAodSkgJiYgKEVbdV0gPSBudWxsKSkKICAgICAgICA6IGlzUmVmKHUpICYmICh1LnZhbHVlID0gbnVsbCkpLAogICAgICBpc0Z1bmN0aW9uJDEoYykpCiAgKQogICAgY2FsbFdpdGhFcnJvckhhbmRsaW5nKGMsIGwsIDEyLCBbbywgZF0pOwogIGVsc2UgewogICAgY29uc3QgUiA9IGlzU3RyaW5nJDEoYyksCiAgICAgIFQgPSBpc1JlZihjKTsKICAgIGlmIChSIHx8IFQpIHsKICAgICAgY29uc3QgTSA9ICgpID0+IHsKICAgICAgICBpZiAoZS5mKSB7CiAgICAgICAgICBjb25zdCB4ID0gUiA/IChQKGMpID8gRVtjXSA6IGRbY10pIDogYy52YWx1ZTsKICAgICAgICAgIGkKICAgICAgICAgICAgPyBpc0FycmF5JDIoeCkgJiYgcmVtb3ZlKHgsIGEpCiAgICAgICAgICAgIDogaXNBcnJheSQyKHgpCiAgICAgICAgICAgICAgPyB4LmluY2x1ZGVzKGEpIHx8IHgucHVzaChhKQogICAgICAgICAgICAgIDogUgogICAgICAgICAgICAgICAgPyAoKGRbY10gPSBbYV0pLCBQKGMpICYmIChFW2NdID0gZFtjXSkpCiAgICAgICAgICAgICAgICA6ICgoYy52YWx1ZSA9IFthXSksIGUuayAmJiAoZFtlLmtdID0gYy52YWx1ZSkpOwogICAgICAgIH0gZWxzZQogICAgICAgICAgUgogICAgICAgICAgICA/ICgoZFtjXSA9IG8pLCBQKGMpICYmIChFW2NdID0gbykpCiAgICAgICAgICAgIDogVCAmJiAoKGMudmFsdWUgPSBvKSwgZS5rICYmIChkW2Uua10gPSBvKSk7CiAgICAgIH07CiAgICAgIG8gPyAoKE0uaWQgPSAtMSksIHF1ZXVlUG9zdFJlbmRlckVmZmVjdChNLCByKSkgOiBNKCk7CiAgICB9CiAgfQp9CmxldCBoYXNMb2dnZWRNaXNtYXRjaEVycm9yID0gITE7CmNvbnN0IGxvZ01pc21hdGNoRXJyb3IgPSAoKSA9PiB7CiAgaGFzTG9nZ2VkTWlzbWF0Y2hFcnJvciB8fAogICAgKGNvbnNvbGUuZXJyb3IoIkh5ZHJhdGlvbiBjb21wbGV0ZWQgYnV0IGNvbnRhaW5zIG1pc21hdGNoZXMuIiksCiAgICAgIChoYXNMb2dnZWRNaXNtYXRjaEVycm9yID0gITApKTsKfSwKICBpc1NWR0NvbnRhaW5lciA9IChlKSA9PgogICAgZS5uYW1lc3BhY2VVUkkuaW5jbHVkZXMoInN2ZyIpICYmIGUudGFnTmFtZSAhPT0gImZvcmVpZ25PYmplY3QiLAogIGlzTWF0aE1MQ29udGFpbmVyID0gKGUpID0+IGUubmFtZXNwYWNlVVJJLmluY2x1ZGVzKCJNYXRoTUwiKSwKICBnZXRDb250YWluZXJUeXBlID0gKGUpID0+IHsKICAgIGlmIChlLm5vZGVUeXBlID09PSAxKSB7CiAgICAgIGlmIChpc1NWR0NvbnRhaW5lcihlKSkgcmV0dXJuICJzdmciOwogICAgICBpZiAoaXNNYXRoTUxDb250YWluZXIoZSkpIHJldHVybiAibWF0aG1sIjsKICAgIH0KICB9LAogIGlzQ29tbWVudCA9IChlKSA9PiBlLm5vZGVUeXBlID09PSA4OwpmdW5jdGlvbiBjcmVhdGVIeWRyYXRpb25GdW5jdGlvbnMoZSkgewogIGNvbnN0IHsKICAgIG10OiB0LAogICAgcDogciwKICAgIG86IHsKICAgICAgcGF0Y2hQcm9wOiBuLAogICAgICBjcmVhdGVUZXh0OiBpLAogICAgICBuZXh0U2libGluZzogYSwKICAgICAgcGFyZW50Tm9kZTogbywKICAgICAgcmVtb3ZlOiBsLAogICAgICBpbnNlcnQ6IGMsCiAgICAgIGNyZWF0ZUNvbW1lbnQ6IHUsCiAgICB9LAogIH0gPSBlLAogICAgZCA9IChTLCBBKSA9PiB7CiAgICAgIGlmICghQS5oYXNDaGlsZE5vZGVzKCkpIHsKICAgICAgICByKG51bGwsIFMsIEEpLCBmbHVzaFBvc3RGbHVzaENicygpLCAoQS5fdm5vZGUgPSBTKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgRShBLmZpcnN0Q2hpbGQsIFMsIG51bGwsIG51bGwsIG51bGwpLCBmbHVzaFBvc3RGbHVzaENicygpLCAoQS5fdm5vZGUgPSBTKTsKICAgIH0sCiAgICBFID0gKFMsIEEsIE8sIEYsIEQsIEggPSAhMSkgPT4gewogICAgICBIID0gSCB8fCAhIUEuZHluYW1pY0NoaWxkcmVuOwogICAgICBjb25zdCAkID0gaXNDb21tZW50KFMpICYmIFMuZGF0YSA9PT0gIlsiLAogICAgICAgIHEgPSAoKSA9PiBUKFMsIEEsIE8sIEYsIEQsICQpLAogICAgICAgIHsgdHlwZTogSiwgcmVmOiBLLCBzaGFwZUZsYWc6IGVlLCBwYXRjaEZsYWc6IGxlIH0gPSBBOwogICAgICBsZXQgcmUgPSBTLm5vZGVUeXBlOwogICAgICAoQS5lbCA9IFMpLCBsZSA9PT0gLTIgJiYgKChIID0gITEpLCAoQS5keW5hbWljQ2hpbGRyZW4gPSBudWxsKSk7CiAgICAgIGxldCBCID0gbnVsbDsKICAgICAgc3dpdGNoIChKKSB7CiAgICAgICAgY2FzZSBUZXh0OgogICAgICAgICAgcmUgIT09IDMKICAgICAgICAgICAgPyBBLmNoaWxkcmVuID09PSAiIgogICAgICAgICAgICAgID8gKGMoKEEuZWwgPSBpKCIiKSksIG8oUyksIFMpLCAoQiA9IFMpKQogICAgICAgICAgICAgIDogKEIgPSBxKCkpCiAgICAgICAgICAgIDogKFMuZGF0YSAhPT0gQS5jaGlsZHJlbiAmJgogICAgICAgICAgICAgIChsb2dNaXNtYXRjaEVycm9yKCksIChTLmRhdGEgPSBBLmNoaWxkcmVuKSksCiAgICAgICAgICAgICAgKEIgPSBhKFMpKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIENvbW1lbnQ6CiAgICAgICAgICBrKFMpCiAgICAgICAgICAgID8gKChCID0gYShTKSksIHgoKEEuZWwgPSBTLmNvbnRlbnQuZmlyc3RDaGlsZCksIFMsIE8pKQogICAgICAgICAgICA6IHJlICE9PSA4IHx8ICQKICAgICAgICAgICAgICA/IChCID0gcSgpKQogICAgICAgICAgICAgIDogKEIgPSBhKFMpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgU3RhdGljOgogICAgICAgICAgaWYgKCgkICYmICgoUyA9IGEoUykpLCAocmUgPSBTLm5vZGVUeXBlKSksIHJlID09PSAxIHx8IHJlID09PSAzKSkgewogICAgICAgICAgICBCID0gUzsKICAgICAgICAgICAgY29uc3QgeiA9ICFBLmNoaWxkcmVuLmxlbmd0aDsKICAgICAgICAgICAgZm9yIChsZXQgTiA9IDA7IE4gPCBBLnN0YXRpY0NvdW50OyBOKyspCiAgICAgICAgICAgICAgeiAmJiAoQS5jaGlsZHJlbiArPSBCLm5vZGVUeXBlID09PSAxID8gQi5vdXRlckhUTUwgOiBCLmRhdGEpLAogICAgICAgICAgICAgICAgTiA9PT0gQS5zdGF0aWNDb3VudCAtIDEgJiYgKEEuYW5jaG9yID0gQiksCiAgICAgICAgICAgICAgICAoQiA9IGEoQikpOwogICAgICAgICAgICByZXR1cm4gJCA/IGEoQikgOiBCOwogICAgICAgICAgfSBlbHNlIHEoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgRnJhZ21lbnQ6CiAgICAgICAgICAkID8gKEIgPSBSKFMsIEEsIE8sIEYsIEQsIEgpKSA6IChCID0gcSgpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBpZiAoZWUgJiAxKQogICAgICAgICAgICAocmUgIT09IDEgfHwgQS50eXBlLnRvTG93ZXJDYXNlKCkgIT09IFMudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSAmJgogICAgICAgICAgICAgICFrKFMpCiAgICAgICAgICAgICAgPyAoQiA9IHEoKSkKICAgICAgICAgICAgICA6IChCID0gYihTLCBBLCBPLCBGLCBELCBIKSk7CiAgICAgICAgICBlbHNlIGlmIChlZSAmIDYpIHsKICAgICAgICAgICAgQS5zbG90U2NvcGVJZHMgPSBEOwogICAgICAgICAgICBjb25zdCB6ID0gbyhTKTsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICgkCiAgICAgICAgICAgICAgICA/IChCID0gTShTKSkKICAgICAgICAgICAgICAgIDogaXNDb21tZW50KFMpICYmIFMuZGF0YSA9PT0gInRlbGVwb3J0IHN0YXJ0IgogICAgICAgICAgICAgICAgICA/IChCID0gTShTLCBTLmRhdGEsICJ0ZWxlcG9ydCBlbmQiKSkKICAgICAgICAgICAgICAgICAgOiAoQiA9IGEoUykpLAogICAgICAgICAgICAgICAgdChBLCB6LCBudWxsLCBPLCBGLCBnZXRDb250YWluZXJUeXBlKHopLCBIKSwKICAgICAgICAgICAgICAgIGlzQXN5bmNXcmFwcGVyKEEpICYmICFBLnR5cGUuX19hc3luY1Jlc29sdmVkKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBsZXQgTjsKICAgICAgICAgICAgICAkCiAgICAgICAgICAgICAgICA/ICgoTiA9IGNyZWF0ZVZOb2RlKEZyYWdtZW50KSksCiAgICAgICAgICAgICAgICAgIChOLmFuY2hvciA9IEIgPyBCLnByZXZpb3VzU2libGluZyA6IHoubGFzdENoaWxkKSkKICAgICAgICAgICAgICAgIDogKE4gPQogICAgICAgICAgICAgICAgICBTLm5vZGVUeXBlID09PSAzCiAgICAgICAgICAgICAgICAgICAgPyBjcmVhdGVUZXh0Vk5vZGUoIiIpCiAgICAgICAgICAgICAgICAgICAgOiBjcmVhdGVWTm9kZSgiZGl2IikpLAogICAgICAgICAgICAgICAgKE4uZWwgPSBTKSwKICAgICAgICAgICAgICAgIChBLmNvbXBvbmVudC5zdWJUcmVlID0gTik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICBlZSAmIDY0CiAgICAgICAgICAgICAgPyByZSAhPT0gOAogICAgICAgICAgICAgICAgPyAoQiA9IHEoKSkKICAgICAgICAgICAgICAgIDogKEIgPSBBLnR5cGUuaHlkcmF0ZShTLCBBLCBPLCBGLCBELCBILCBlLCBQKSkKICAgICAgICAgICAgICA6IGVlICYgMTI4ICYmCiAgICAgICAgICAgICAgKEIgPSBBLnR5cGUuaHlkcmF0ZSgKICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgTywKICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICBnZXRDb250YWluZXJUeXBlKG8oUykpLAogICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgIEgsCiAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgRQogICAgICAgICAgICAgICkpOwogICAgICB9CiAgICAgIHJldHVybiBLICE9IG51bGwgJiYgc2V0UmVmKEssIG51bGwsIEYsIEEpLCBCOwogICAgfSwKICAgIGIgPSAoUywgQSwgTywgRiwgRCwgSCkgPT4gewogICAgICBIID0gSCB8fCAhIUEuZHluYW1pY0NoaWxkcmVuOwogICAgICBjb25zdCB7CiAgICAgICAgdHlwZTogJCwKICAgICAgICBwcm9wczogcSwKICAgICAgICBwYXRjaEZsYWc6IEosCiAgICAgICAgc2hhcGVGbGFnOiBLLAogICAgICAgIGRpcnM6IGVlLAogICAgICAgIHRyYW5zaXRpb246IGxlLAogICAgICB9ID0gQSwKICAgICAgICByZSA9ICQgPT09ICJpbnB1dCIgfHwgJCA9PT0gIm9wdGlvbiI7CiAgICAgIGlmIChyZSB8fCBKICE9PSAtMSkgewogICAgICAgIGVlICYmIGludm9rZURpcmVjdGl2ZUhvb2soQSwgbnVsbCwgTywgImNyZWF0ZWQiKTsKICAgICAgICBsZXQgQiA9ICExOwogICAgICAgIGlmIChrKFMpKSB7CiAgICAgICAgICBCID0KICAgICAgICAgICAgbmVlZFRyYW5zaXRpb24obnVsbCwgbGUpICYmCiAgICAgICAgICAgIE8gJiYKICAgICAgICAgICAgTy52bm9kZS5wcm9wcyAmJgogICAgICAgICAgICBPLnZub2RlLnByb3BzLmFwcGVhcjsKICAgICAgICAgIGNvbnN0IE4gPSBTLmNvbnRlbnQuZmlyc3RDaGlsZDsKICAgICAgICAgIEIgJiYgbGUuYmVmb3JlRW50ZXIoTiksIHgoTiwgUywgTyksIChBLmVsID0gUyA9IE4pOwogICAgICAgIH0KICAgICAgICBpZiAoSyAmIDE2ICYmICEocSAmJiAocS5pbm5lckhUTUwgfHwgcS50ZXh0Q29udGVudCkpKSB7CiAgICAgICAgICBsZXQgTiA9IFAoUy5maXJzdENoaWxkLCBBLCBTLCBPLCBGLCBELCBIKTsKICAgICAgICAgIGZvciAoOyBOOykgewogICAgICAgICAgICBpc01pc21hdGNoQWxsb3dlZChTLCAxKSB8fCBsb2dNaXNtYXRjaEVycm9yKCk7CiAgICAgICAgICAgIGNvbnN0IFYgPSBOOwogICAgICAgICAgICAoTiA9IE4ubmV4dFNpYmxpbmcpLCBsKFYpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoSyAmIDgpIHsKICAgICAgICAgIGxldCBOID0gQS5jaGlsZHJlbjsKICAgICAgICAgIE5bMF0gPT09CiAgICAgICAgICAgIGAKYCAmJgogICAgICAgICAgICAoUy50YWdOYW1lID09PSAiUFJFIiB8fCBTLnRhZ05hbWUgPT09ICJURVhUQVJFQSIpICYmCiAgICAgICAgICAgIChOID0gTi5zbGljZSgxKSksCiAgICAgICAgICAgIFMudGV4dENvbnRlbnQgIT09IE4gJiYKICAgICAgICAgICAgKGlzTWlzbWF0Y2hBbGxvd2VkKFMsIDApIHx8IGxvZ01pc21hdGNoRXJyb3IoKSwKICAgICAgICAgICAgICAoUy50ZXh0Q29udGVudCA9IEEuY2hpbGRyZW4pKTsKICAgICAgICB9CiAgICAgICAgaWYgKHEpIHsKICAgICAgICAgIGlmIChyZSB8fCAhSCB8fCBKICYgNDgpIHsKICAgICAgICAgICAgY29uc3QgTiA9IFMudGFnTmFtZS5pbmNsdWRlcygiLSIpOwogICAgICAgICAgICBmb3IgKGNvbnN0IFYgaW4gcSkKICAgICAgICAgICAgICAoKHJlICYmIChWLmVuZHNXaXRoKCJ2YWx1ZSIpIHx8IFYgPT09ICJpbmRldGVybWluYXRlIikpIHx8CiAgICAgICAgICAgICAgICAoaXNPbiQxKFYpICYmICFpc1Jlc2VydmVkUHJvcChWKSkgfHwKICAgICAgICAgICAgICAgIFZbMF0gPT09ICIuIiB8fAogICAgICAgICAgICAgICAgTikgJiYKICAgICAgICAgICAgICAgIG4oUywgViwgbnVsbCwgcVtWXSwgdm9pZCAwLCBPKTsKICAgICAgICAgIH0gZWxzZSBpZiAocS5vbkNsaWNrKSBuKFMsICJvbkNsaWNrIiwgbnVsbCwgcS5vbkNsaWNrLCB2b2lkIDAsIE8pOwogICAgICAgICAgZWxzZSBpZiAoSiAmIDQgJiYgaXNSZWFjdGl2ZShxLnN0eWxlKSkKICAgICAgICAgICAgZm9yIChjb25zdCBOIGluIHEuc3R5bGUpIHEuc3R5bGVbTl07CiAgICAgICAgfQogICAgICAgIGxldCB6OwogICAgICAgICh6ID0gcSAmJiBxLm9uVm5vZGVCZWZvcmVNb3VudCkgJiYgaW52b2tlVk5vZGVIb29rKHosIE8sIEEpLAogICAgICAgICAgZWUgJiYgaW52b2tlRGlyZWN0aXZlSG9vayhBLCBudWxsLCBPLCAiYmVmb3JlTW91bnQiKSwKICAgICAgICAgICgoeiA9IHEgJiYgcS5vblZub2RlTW91bnRlZCkgfHwgZWUgfHwgQikgJiYKICAgICAgICAgIHF1ZXVlRWZmZWN0V2l0aFN1c3BlbnNlKCgpID0+IHsKICAgICAgICAgICAgeiAmJiBpbnZva2VWTm9kZUhvb2soeiwgTywgQSksCiAgICAgICAgICAgICAgQiAmJiBsZS5lbnRlcihTKSwKICAgICAgICAgICAgICBlZSAmJiBpbnZva2VEaXJlY3RpdmVIb29rKEEsIG51bGwsIE8sICJtb3VudGVkIik7CiAgICAgICAgICB9LCBGKTsKICAgICAgfQogICAgICByZXR1cm4gUy5uZXh0U2libGluZzsKICAgIH0sCiAgICBQID0gKFMsIEEsIE8sIEYsIEQsIEgsICQpID0+IHsKICAgICAgJCA9ICQgfHwgISFBLmR5bmFtaWNDaGlsZHJlbjsKICAgICAgY29uc3QgcSA9IEEuY2hpbGRyZW4sCiAgICAgICAgSiA9IHEubGVuZ3RoOwogICAgICBmb3IgKGxldCBLID0gMDsgSyA8IEo7IEsrKykgewogICAgICAgIGNvbnN0IGVlID0gJCA/IHFbS10gOiAocVtLXSA9IG5vcm1hbGl6ZVZOb2RlKHFbS10pKSwKICAgICAgICAgIGxlID0gZWUudHlwZSA9PT0gVGV4dDsKICAgICAgICBTCiAgICAgICAgICA/IChsZSAmJgogICAgICAgICAgICAhJCAmJgogICAgICAgICAgICBLICsgMSA8IEogJiYKICAgICAgICAgICAgbm9ybWFsaXplVk5vZGUocVtLICsgMV0pLnR5cGUgPT09IFRleHQgJiYKICAgICAgICAgICAgKGMoaShTLmRhdGEuc2xpY2UoZWUuY2hpbGRyZW4ubGVuZ3RoKSksIE8sIGEoUykpLAogICAgICAgICAgICAgIChTLmRhdGEgPSBlZS5jaGlsZHJlbikpLAogICAgICAgICAgICAoUyA9IEUoUywgZWUsIEYsIEQsIEgsICQpKSkKICAgICAgICAgIDogbGUgJiYgIWVlLmNoaWxkcmVuCiAgICAgICAgICAgID8gYygoZWUuZWwgPSBpKCIiKSksIE8pCiAgICAgICAgICAgIDogKGlzTWlzbWF0Y2hBbGxvd2VkKE8sIDEpIHx8IGxvZ01pc21hdGNoRXJyb3IoKSwKICAgICAgICAgICAgICByKG51bGwsIGVlLCBPLCBudWxsLCBGLCBELCBnZXRDb250YWluZXJUeXBlKE8pLCBIKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIFM7CiAgICB9LAogICAgUiA9IChTLCBBLCBPLCBGLCBELCBIKSA9PiB7CiAgICAgIGNvbnN0IHsgc2xvdFNjb3BlSWRzOiAkIH0gPSBBOwogICAgICAkICYmIChEID0gRCA/IEQuY29uY2F0KCQpIDogJCk7CiAgICAgIGNvbnN0IHEgPSBvKFMpLAogICAgICAgIEogPSBQKGEoUyksIEEsIHEsIE8sIEYsIEQsIEgpOwogICAgICByZXR1cm4gSiAmJiBpc0NvbW1lbnQoSikgJiYgSi5kYXRhID09PSAiXSIKICAgICAgICA/IGEoKEEuYW5jaG9yID0gSikpCiAgICAgICAgOiAobG9nTWlzbWF0Y2hFcnJvcigpLCBjKChBLmFuY2hvciA9IHUoIl0iKSksIHEsIEopLCBKKTsKICAgIH0sCiAgICBUID0gKFMsIEEsIE8sIEYsIEQsIEgpID0+IHsKICAgICAgaWYgKAogICAgICAgIChpc01pc21hdGNoQWxsb3dlZChTLnBhcmVudEVsZW1lbnQsIDEpIHx8IGxvZ01pc21hdGNoRXJyb3IoKSwKICAgICAgICAgIChBLmVsID0gbnVsbCksCiAgICAgICAgICBIKQogICAgICApIHsKICAgICAgICBjb25zdCBKID0gTShTKTsKICAgICAgICBmb3IgKDsgOykgewogICAgICAgICAgY29uc3QgSyA9IGEoUyk7CiAgICAgICAgICBpZiAoSyAmJiBLICE9PSBKKSBsKEspOwogICAgICAgICAgZWxzZSBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgJCA9IGEoUyksCiAgICAgICAgcSA9IG8oUyk7CiAgICAgIHJldHVybiAoCiAgICAgICAgbChTKSwKICAgICAgICByKG51bGwsIEEsIHEsICQsIE8sIEYsIGdldENvbnRhaW5lclR5cGUocSksIEQpLAogICAgICAgIE8gJiYgKChPLnZub2RlLmVsID0gQS5lbCksIHVwZGF0ZUhPQ0hvc3RFbChPLCBBLmVsKSksCiAgICAgICAgJAogICAgICApOwogICAgfSwKICAgIE0gPSAoUywgQSA9ICJbIiwgTyA9ICJdIikgPT4gewogICAgICBsZXQgRiA9IDA7CiAgICAgIGZvciAoOyBTOykKICAgICAgICBpZiAoCiAgICAgICAgICAoKFMgPSBhKFMpKSwgUyAmJiBpc0NvbW1lbnQoUykgJiYgKFMuZGF0YSA9PT0gQSAmJiBGKyssIFMuZGF0YSA9PT0gTykpCiAgICAgICAgKSB7CiAgICAgICAgICBpZiAoRiA9PT0gMCkgcmV0dXJuIGEoUyk7CiAgICAgICAgICBGLS07CiAgICAgICAgfQogICAgICByZXR1cm4gUzsKICAgIH0sCiAgICB4ID0gKFMsIEEsIE8pID0+IHsKICAgICAgY29uc3QgRiA9IEEucGFyZW50Tm9kZTsKICAgICAgRiAmJiBGLnJlcGxhY2VDaGlsZChTLCBBKTsKICAgICAgbGV0IEQgPSBPOwogICAgICBmb3IgKDsgRDspCiAgICAgICAgRC52bm9kZS5lbCA9PT0gQSAmJiAoRC52bm9kZS5lbCA9IEQuc3ViVHJlZS5lbCA9IFMpLCAoRCA9IEQucGFyZW50KTsKICAgIH0sCiAgICBrID0gKFMpID0+IFMubm9kZVR5cGUgPT09IDEgJiYgUy50YWdOYW1lID09PSAiVEVNUExBVEUiOwogIHJldHVybiBbZCwgRV07Cn0KY29uc3QgYWxsb3dNaXNtYXRjaEF0dHIgPSAiZGF0YS1hbGxvdy1taXNtYXRjaCIsCiAgTWlzbWF0Y2hUeXBlU3RyaW5nID0gewogICAgMDogInRleHQiLAogICAgMTogImNoaWxkcmVuIiwKICAgIDI6ICJjbGFzcyIsCiAgICAzOiAic3R5bGUiLAogICAgNDogImF0dHJpYnV0ZSIsCiAgfTsKZnVuY3Rpb24gaXNNaXNtYXRjaEFsbG93ZWQoZSwgdCkgewogIGlmICh0ID09PSAwIHx8IHQgPT09IDEpCiAgICBmb3IgKDsgZSAmJiAhZS5oYXNBdHRyaWJ1dGUoYWxsb3dNaXNtYXRjaEF0dHIpOykgZSA9IGUucGFyZW50RWxlbWVudDsKICBjb25zdCByID0gZSAmJiBlLmdldEF0dHJpYnV0ZShhbGxvd01pc21hdGNoQXR0cik7CiAgaWYgKHIgPT0gbnVsbCkgcmV0dXJuICExOwogIGlmIChyID09PSAiIikgcmV0dXJuICEwOwogIHsKICAgIGNvbnN0IG4gPSByLnNwbGl0KCIsIik7CiAgICByZXR1cm4gdCA9PT0gMCAmJiBuLmluY2x1ZGVzKCJjaGlsZHJlbiIpCiAgICAgID8gITAKICAgICAgOiByLnNwbGl0KCIsIikuaW5jbHVkZXMoTWlzbWF0Y2hUeXBlU3RyaW5nW3RdKTsKICB9Cn0KY29uc3QgcmVxdWVzdElkbGVDYWxsYmFjayQxID0KICBnZXRHbG9iYWxUaGlzJDEoKS5yZXF1ZXN0SWRsZUNhbGxiYWNrIHx8ICgoZSkgPT4gc2V0VGltZW91dChlLCAxKSksCiAgY2FuY2VsSWRsZUNhbGxiYWNrJDEgPQogICAgZ2V0R2xvYmFsVGhpcyQxKCkuY2FuY2VsSWRsZUNhbGxiYWNrIHx8ICgoZSkgPT4gY2xlYXJUaW1lb3V0KGUpKSwKICBoeWRyYXRlT25JZGxlID0KICAgIChlID0gMWU0KSA9PgogICAgICAodCkgPT4gewogICAgICAgIGNvbnN0IHIgPSByZXF1ZXN0SWRsZUNhbGxiYWNrJDEodCwgeyB0aW1lb3V0OiBlIH0pOwogICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxJZGxlQ2FsbGJhY2skMShyKTsKICAgICAgfTsKZnVuY3Rpb24gZWxlbWVudElzVmlzaWJsZUluVmlld3BvcnQoZSkgewogIGNvbnN0IHsgdG9wOiB0LCBsZWZ0OiByLCBib3R0b206IG4sIHJpZ2h0OiBpIH0gPSBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLAogICAgeyBpbm5lckhlaWdodDogYSwgaW5uZXJXaWR0aDogbyB9ID0gd2luZG93OwogIHJldHVybiAoCiAgICAoKHQgPiAwICYmIHQgPCBhKSB8fCAobiA+IDAgJiYgbiA8IGEpKSAmJgogICAgKChyID4gMCAmJiByIDwgbykgfHwgKGkgPiAwICYmIGkgPCBvKSkKICApOwp9CmNvbnN0IGh5ZHJhdGVPblZpc2libGUgPSAoZSkgPT4gKHQsIHIpID0+IHsKICBjb25zdCBuID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChpKSA9PiB7CiAgICBmb3IgKGNvbnN0IGEgb2YgaSkKICAgICAgaWYgKGEuaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICBuLmRpc2Nvbm5lY3QoKSwgdCgpOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgfSwgZSk7CiAgcmV0dXJuICgKICAgIHIoKGkpID0+IHsKICAgICAgaWYgKGkgaW5zdGFuY2VvZiBFbGVtZW50KSB7CiAgICAgICAgaWYgKGVsZW1lbnRJc1Zpc2libGVJblZpZXdwb3J0KGkpKSByZXR1cm4gdCgpLCBuLmRpc2Nvbm5lY3QoKSwgITE7CiAgICAgICAgbi5vYnNlcnZlKGkpOwogICAgICB9CiAgICB9KSwKICAgICgpID0+IG4uZGlzY29ubmVjdCgpCiAgKTsKfSwKICBoeWRyYXRlT25NZWRpYVF1ZXJ5ID0gKGUpID0+ICh0KSA9PiB7CiAgICBpZiAoZSkgewogICAgICBjb25zdCByID0gbWF0Y2hNZWRpYShlKTsKICAgICAgaWYgKHIubWF0Y2hlcykgdCgpOwogICAgICBlbHNlCiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdCwgeyBvbmNlOiAhMCB9KSwKICAgICAgICAgICgpID0+IHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdCkKICAgICAgICApOwogICAgfQogIH0sCiAgaHlkcmF0ZU9uSW50ZXJhY3Rpb24gPQogICAgKGUgPSBbXSkgPT4KICAgICAgKHQsIHIpID0+IHsKICAgICAgICBpc1N0cmluZyQxKGUpICYmIChlID0gW2VdKTsKICAgICAgICBsZXQgbiA9ICExOwogICAgICAgIGNvbnN0IGkgPSAobykgPT4gewogICAgICAgICAgbiB8fAogICAgICAgICAgICAoKG4gPSAhMCksCiAgICAgICAgICAgICAgYSgpLAogICAgICAgICAgICAgIHQoKSwKICAgICAgICAgICAgICBvLnRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBvLmNvbnN0cnVjdG9yKG8udHlwZSwgbykpKTsKICAgICAgICB9LAogICAgICAgICAgYSA9ICgpID0+IHsKICAgICAgICAgICAgcigobykgPT4gewogICAgICAgICAgICAgIGZvciAoY29uc3QgbCBvZiBlKSBvLnJlbW92ZUV2ZW50TGlzdGVuZXIobCwgaSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgcigobykgPT4gewogICAgICAgICAgICBmb3IgKGNvbnN0IGwgb2YgZSkgby5hZGRFdmVudExpc3RlbmVyKGwsIGksIHsgb25jZTogITAgfSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGEKICAgICAgICApOwogICAgICB9OwpmdW5jdGlvbiBmb3JFYWNoRWxlbWVudChlLCB0KSB7CiAgaWYgKGlzQ29tbWVudChlKSAmJiBlLmRhdGEgPT09ICJbIikgewogICAgbGV0IHIgPSAxLAogICAgICBuID0gZS5uZXh0U2libGluZzsKICAgIGZvciAoOyBuOykgewogICAgICBpZiAobi5ub2RlVHlwZSA9PT0gMSkgewogICAgICAgIGlmICh0KG4pID09PSAhMSkgYnJlYWs7CiAgICAgIH0gZWxzZSBpZiAoaXNDb21tZW50KG4pKQogICAgICAgIGlmIChuLmRhdGEgPT09ICJdIikgewogICAgICAgICAgaWYgKC0tciA9PT0gMCkgYnJlYWs7CiAgICAgICAgfSBlbHNlIG4uZGF0YSA9PT0gIlsiICYmIHIrKzsKICAgICAgbiA9IG4ubmV4dFNpYmxpbmc7CiAgICB9CiAgfSBlbHNlIHQoZSk7Cn0KY29uc3QgaXNBc3luY1dyYXBwZXIgPSAoZSkgPT4gISFlLnR5cGUuX19hc3luY0xvYWRlcjsKLyohICNfX05PX1NJREVfRUZGRUNUU19fICovIGZ1bmN0aW9uIGRlZmluZUFzeW5jQ29tcG9uZW50KGUpIHsKICBpc0Z1bmN0aW9uJDEoZSkgJiYgKGUgPSB7IGxvYWRlcjogZSB9KTsKICBjb25zdCB7CiAgICBsb2FkZXI6IHQsCiAgICBsb2FkaW5nQ29tcG9uZW50OiByLAogICAgZXJyb3JDb21wb25lbnQ6IG4sCiAgICBkZWxheTogaSA9IDIwMCwKICAgIGh5ZHJhdGU6IGEsCiAgICB0aW1lb3V0OiBvLAogICAgc3VzcGVuc2libGU6IGwgPSAhMCwKICAgIG9uRXJyb3I6IGMsCiAgfSA9IGU7CiAgbGV0IHUgPSBudWxsLAogICAgZCwKICAgIEUgPSAwOwogIGNvbnN0IGIgPSAoKSA9PiAoRSsrLCAodSA9IG51bGwpLCBQKCkpLAogICAgUCA9ICgpID0+IHsKICAgICAgbGV0IFI7CiAgICAgIHJldHVybiAoCiAgICAgICAgdSB8fAogICAgICAgIChSID0gdSA9CiAgICAgICAgICB0KCkKICAgICAgICAgICAgLmNhdGNoKChUKSA9PiB7CiAgICAgICAgICAgICAgaWYgKCgoVCA9IFQgaW5zdGFuY2VvZiBFcnJvciA/IFQgOiBuZXcgRXJyb3IoU3RyaW5nKFQpKSksIGMpKQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChNLCB4KSA9PiB7CiAgICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgICAgVCwKICAgICAgICAgICAgICAgICAgICAoKSA9PiBNKGIoKSksCiAgICAgICAgICAgICAgICAgICAgKCkgPT4geChUKSwKICAgICAgICAgICAgICAgICAgICBFICsgMQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgdGhyb3cgVDsKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLnRoZW4oKFQpID0+CiAgICAgICAgICAgICAgUiAhPT0gdSAmJiB1CiAgICAgICAgICAgICAgICA/IHUKICAgICAgICAgICAgICAgIDogKFQgJiYKICAgICAgICAgICAgICAgICAgKFQuX19lc01vZHVsZSB8fCBUW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICJNb2R1bGUiKSAmJgogICAgICAgICAgICAgICAgICAoVCA9IFQuZGVmYXVsdCksCiAgICAgICAgICAgICAgICAgIChkID0gVCksCiAgICAgICAgICAgICAgICAgIFQpCiAgICAgICAgICAgICkpCiAgICAgICk7CiAgICB9OwogIHJldHVybiBkZWZpbmVDb21wb25lbnQkMSh7CiAgICBuYW1lOiAiQXN5bmNDb21wb25lbnRXcmFwcGVyIiwKICAgIF9fYXN5bmNMb2FkZXI6IFAsCiAgICBfX2FzeW5jSHlkcmF0ZShSLCBULCBNKSB7CiAgICAgIGNvbnN0IHggPSBhCiAgICAgICAgPyAoKSA9PiB7CiAgICAgICAgICBjb25zdCBrID0gYShNLCAoUykgPT4gZm9yRWFjaEVsZW1lbnQoUiwgUykpOwogICAgICAgICAgayAmJiAoVC5idW0gfHwgKFQuYnVtID0gW10pKS5wdXNoKGspOwogICAgICAgIH0KICAgICAgICA6IE07CiAgICAgIGQgPyB4KCkgOiBQKCkudGhlbigoKSA9PiAhVC5pc1VubW91bnRlZCAmJiB4KCkpOwogICAgfSwKICAgIGdldCBfX2FzeW5jUmVzb2x2ZWQoKSB7CiAgICAgIHJldHVybiBkOwogICAgfSwKICAgIHNldHVwKCkgewogICAgICBjb25zdCBSID0gY3VycmVudEluc3RhbmNlOwogICAgICBpZiAoKG1hcmtBc3luY0JvdW5kYXJ5KFIpLCBkKSkgcmV0dXJuICgpID0+IGNyZWF0ZUlubmVyQ29tcChkLCBSKTsKICAgICAgY29uc3QgVCA9IChTKSA9PiB7CiAgICAgICAgKHUgPSBudWxsKSwgaGFuZGxlRXJyb3IoUywgUiwgMTMsICFuKTsKICAgICAgfTsKICAgICAgaWYgKChsICYmIFIuc3VzcGVuc2UpIHx8IGlzSW5TU1JDb21wb25lbnRTZXR1cCkKICAgICAgICByZXR1cm4gUCgpCiAgICAgICAgICAudGhlbigoUykgPT4gKCkgPT4gY3JlYXRlSW5uZXJDb21wKFMsIFIpKQogICAgICAgICAgLmNhdGNoKAogICAgICAgICAgICAoUykgPT4gKFQoUyksICgpID0+IChuID8gY3JlYXRlVk5vZGUobiwgeyBlcnJvcjogUyB9KSA6IG51bGwpKQogICAgICAgICAgKTsKICAgICAgY29uc3QgTSA9IHJlZighMSksCiAgICAgICAgeCA9IHJlZigpLAogICAgICAgIGsgPSByZWYoISFpKTsKICAgICAgcmV0dXJuICgKICAgICAgICBpICYmCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICBrLnZhbHVlID0gITE7CiAgICAgICAgfSwgaSksCiAgICAgICAgbyAhPSBudWxsICYmCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICBpZiAoIU0udmFsdWUgJiYgIXgudmFsdWUpIHsKICAgICAgICAgICAgY29uc3QgUyA9IG5ldyBFcnJvcihgQXN5bmMgY29tcG9uZW50IHRpbWVkIG91dCBhZnRlciAke299bXMuYCk7CiAgICAgICAgICAgIFQoUyksICh4LnZhbHVlID0gUyk7CiAgICAgICAgICB9CiAgICAgICAgfSwgbyksCiAgICAgICAgUCgpCiAgICAgICAgICAudGhlbigoKSA9PiB7CiAgICAgICAgICAgIChNLnZhbHVlID0gITApLAogICAgICAgICAgICAgIFIucGFyZW50ICYmIGlzS2VlcEFsaXZlKFIucGFyZW50LnZub2RlKSAmJiBSLnBhcmVudC51cGRhdGUoKTsKICAgICAgICAgIH0pCiAgICAgICAgICAuY2F0Y2goKFMpID0+IHsKICAgICAgICAgICAgVChTKSwgKHgudmFsdWUgPSBTKTsKICAgICAgICAgIH0pLAogICAgICAgICgpID0+IHsKICAgICAgICAgIGlmIChNLnZhbHVlICYmIGQpIHJldHVybiBjcmVhdGVJbm5lckNvbXAoZCwgUik7CiAgICAgICAgICBpZiAoeC52YWx1ZSAmJiBuKSByZXR1cm4gY3JlYXRlVk5vZGUobiwgeyBlcnJvcjogeC52YWx1ZSB9KTsKICAgICAgICAgIGlmIChyICYmICFrLnZhbHVlKSByZXR1cm4gY3JlYXRlVk5vZGUocik7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICB9KTsKfQpmdW5jdGlvbiBjcmVhdGVJbm5lckNvbXAoZSwgdCkgewogIGNvbnN0IHsgcmVmOiByLCBwcm9wczogbiwgY2hpbGRyZW46IGksIGNlOiBhIH0gPSB0LnZub2RlLAogICAgbyA9IGNyZWF0ZVZOb2RlKGUsIG4sIGkpOwogIHJldHVybiAoby5yZWYgPSByKSwgKG8uY2UgPSBhKSwgZGVsZXRlIHQudm5vZGUuY2UsIG87Cn0KY29uc3QgaXNLZWVwQWxpdmUgPSAoZSkgPT4gZS50eXBlLl9faXNLZWVwQWxpdmUsCiAgS2VlcEFsaXZlSW1wbCA9IHsKICAgIG5hbWU6ICJLZWVwQWxpdmUiLAogICAgX19pc0tlZXBBbGl2ZTogITAsCiAgICBwcm9wczogewogICAgICBpbmNsdWRlOiBbU3RyaW5nLCBSZWdFeHAsIEFycmF5XSwKICAgICAgZXhjbHVkZTogW1N0cmluZywgUmVnRXhwLCBBcnJheV0sCiAgICAgIG1heDogW1N0cmluZywgTnVtYmVyXSwKICAgIH0sCiAgICBzZXR1cChlLCB7IHNsb3RzOiB0IH0pIHsKICAgICAgY29uc3QgciA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICAgICAgbiA9IHIuY3R4OwogICAgICBpZiAoIW4ucmVuZGVyZXIpCiAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgIGNvbnN0IGsgPSB0LmRlZmF1bHQgJiYgdC5kZWZhdWx0KCk7CiAgICAgICAgICByZXR1cm4gayAmJiBrLmxlbmd0aCA9PT0gMSA/IGtbMF0gOiBrOwogICAgICAgIH07CiAgICAgIGNvbnN0IGkgPSBuZXcgTWFwKCksCiAgICAgICAgYSA9IG5ldyBTZXQoKTsKICAgICAgbGV0IG8gPSBudWxsOwogICAgICBjb25zdCBsID0gci5zdXNwZW5zZSwKICAgICAgICB7CiAgICAgICAgICByZW5kZXJlcjogewogICAgICAgICAgICBwOiBjLAogICAgICAgICAgICBtOiB1LAogICAgICAgICAgICB1bTogZCwKICAgICAgICAgICAgbzogeyBjcmVhdGVFbGVtZW50OiBFIH0sCiAgICAgICAgICB9LAogICAgICAgIH0gPSBuLAogICAgICAgIGIgPSBFKCJkaXYiKTsKICAgICAgKG4uYWN0aXZhdGUgPSAoaywgUywgQSwgTywgRikgPT4gewogICAgICAgIGNvbnN0IEQgPSBrLmNvbXBvbmVudDsKICAgICAgICB1KGssIFMsIEEsIDAsIGwpLAogICAgICAgICAgYyhELnZub2RlLCBrLCBTLCBBLCBELCBsLCBPLCBrLnNsb3RTY29wZUlkcywgRiksCiAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgICAoRC5pc0RlYWN0aXZhdGVkID0gITEpLCBELmEgJiYgaW52b2tlQXJyYXlGbnMoRC5hKTsKICAgICAgICAgICAgY29uc3QgSCA9IGsucHJvcHMgJiYgay5wcm9wcy5vblZub2RlTW91bnRlZDsKICAgICAgICAgICAgSCAmJiBpbnZva2VWTm9kZUhvb2soSCwgRC5wYXJlbnQsIGspOwogICAgICAgICAgfSwgbCk7CiAgICAgIH0pLAogICAgICAgIChuLmRlYWN0aXZhdGUgPSAoaykgPT4gewogICAgICAgICAgY29uc3QgUyA9IGsuY29tcG9uZW50OwogICAgICAgICAgaW52YWxpZGF0ZU1vdW50KFMubSksCiAgICAgICAgICAgIGludmFsaWRhdGVNb3VudChTLmEpLAogICAgICAgICAgICB1KGssIGIsIG51bGwsIDEsIGwpLAogICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgICAgIFMuZGEgJiYgaW52b2tlQXJyYXlGbnMoUy5kYSk7CiAgICAgICAgICAgICAgY29uc3QgQSA9IGsucHJvcHMgJiYgay5wcm9wcy5vblZub2RlVW5tb3VudGVkOwogICAgICAgICAgICAgIEEgJiYgaW52b2tlVk5vZGVIb29rKEEsIFMucGFyZW50LCBrKSwgKFMuaXNEZWFjdGl2YXRlZCA9ICEwKTsKICAgICAgICAgICAgfSwgbCk7CiAgICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIFAoaykgewogICAgICAgIHJlc2V0U2hhcGVGbGFnKGspLCBkKGssIHIsIGwsICEwKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBSKGspIHsKICAgICAgICBpLmZvckVhY2goKFMsIEEpID0+IHsKICAgICAgICAgIGNvbnN0IE8gPSBnZXRDb21wb25lbnROYW1lKFMudHlwZSk7CiAgICAgICAgICBPICYmICFrKE8pICYmIFQoQSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gVChrKSB7CiAgICAgICAgY29uc3QgUyA9IGkuZ2V0KGspOwogICAgICAgIFMgJiYgKCFvIHx8ICFpc1NhbWVWTm9kZVR5cGUoUywgbykpID8gUChTKSA6IG8gJiYgcmVzZXRTaGFwZUZsYWcobyksCiAgICAgICAgICBpLmRlbGV0ZShrKSwKICAgICAgICAgIGEuZGVsZXRlKGspOwogICAgICB9CiAgICAgIHdhdGNoKAogICAgICAgICgpID0+IFtlLmluY2x1ZGUsIGUuZXhjbHVkZV0sCiAgICAgICAgKFtrLCBTXSkgPT4gewogICAgICAgICAgayAmJiBSKChBKSA9PiBtYXRjaGVzKGssIEEpKSwgUyAmJiBSKChBKSA9PiAhbWF0Y2hlcyhTLCBBKSk7CiAgICAgICAgfSwKICAgICAgICB7IGZsdXNoOiAicG9zdCIsIGRlZXA6ICEwIH0KICAgICAgKTsKICAgICAgbGV0IE0gPSBudWxsOwogICAgICBjb25zdCB4ID0gKCkgPT4gewogICAgICAgIE0gIT0gbnVsbCAmJgogICAgICAgICAgKGlzU3VzcGVuc2Uoci5zdWJUcmVlLnR5cGUpCiAgICAgICAgICAgID8gcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IHsKICAgICAgICAgICAgICBpLnNldChNLCBnZXRJbm5lckNoaWxkKHIuc3ViVHJlZSkpOwogICAgICAgICAgICB9LCByLnN1YlRyZWUuc3VzcGVuc2UpCiAgICAgICAgICAgIDogaS5zZXQoTSwgZ2V0SW5uZXJDaGlsZChyLnN1YlRyZWUpKSk7CiAgICAgIH07CiAgICAgIHJldHVybiAoCiAgICAgICAgb25Nb3VudGVkKHgpLAogICAgICAgIG9uVXBkYXRlZCh4KSwKICAgICAgICBvbkJlZm9yZVVubW91bnQoKCkgPT4gewogICAgICAgICAgaS5mb3JFYWNoKChrKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHsgc3ViVHJlZTogUywgc3VzcGVuc2U6IEEgfSA9IHIsCiAgICAgICAgICAgICAgTyA9IGdldElubmVyQ2hpbGQoUyk7CiAgICAgICAgICAgIGlmIChrLnR5cGUgPT09IE8udHlwZSAmJiBrLmtleSA9PT0gTy5rZXkpIHsKICAgICAgICAgICAgICByZXNldFNoYXBlRmxhZyhPKTsKICAgICAgICAgICAgICBjb25zdCBGID0gTy5jb21wb25lbnQuZGE7CiAgICAgICAgICAgICAgRiAmJiBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoRiwgQSk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFAoayk7CiAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBpZiAoKChNID0gbnVsbCksICF0LmRlZmF1bHQpKSByZXR1cm4gKG8gPSBudWxsKTsKICAgICAgICAgIGNvbnN0IGsgPSB0LmRlZmF1bHQoKSwKICAgICAgICAgICAgUyA9IGtbMF07CiAgICAgICAgICBpZiAoay5sZW5ndGggPiAxKSByZXR1cm4gKG8gPSBudWxsKSwgazsKICAgICAgICAgIGlmICghaXNWTm9kZSQxKFMpIHx8ICghKFMuc2hhcGVGbGFnICYgNCkgJiYgIShTLnNoYXBlRmxhZyAmIDEyOCkpKQogICAgICAgICAgICByZXR1cm4gKG8gPSBudWxsKSwgUzsKICAgICAgICAgIGxldCBBID0gZ2V0SW5uZXJDaGlsZChTKTsKICAgICAgICAgIGlmIChBLnR5cGUgPT09IENvbW1lbnQpIHJldHVybiAobyA9IG51bGwpLCBBOwogICAgICAgICAgY29uc3QgTyA9IEEudHlwZSwKICAgICAgICAgICAgRiA9IGdldENvbXBvbmVudE5hbWUoCiAgICAgICAgICAgICAgaXNBc3luY1dyYXBwZXIoQSkgPyBBLnR5cGUuX19hc3luY1Jlc29sdmVkIHx8IHt9IDogTwogICAgICAgICAgICApLAogICAgICAgICAgICB7IGluY2x1ZGU6IEQsIGV4Y2x1ZGU6IEgsIG1heDogJCB9ID0gZTsKICAgICAgICAgIGlmICgoRCAmJiAoIUYgfHwgIW1hdGNoZXMoRCwgRikpKSB8fCAoSCAmJiBGICYmIG1hdGNoZXMoSCwgRikpKQogICAgICAgICAgICByZXR1cm4gKEEuc2hhcGVGbGFnICY9IC0yNTcpLCAobyA9IEEpLCBTOwogICAgICAgICAgY29uc3QgcSA9IEEua2V5ID09IG51bGwgPyBPIDogQS5rZXksCiAgICAgICAgICAgIEogPSBpLmdldChxKTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIEEuZWwgJiYKICAgICAgICAgICAgKChBID0gY2xvbmVWTm9kZShBKSksIFMuc2hhcGVGbGFnICYgMTI4ICYmIChTLnNzQ29udGVudCA9IEEpKSwKICAgICAgICAgICAgKE0gPSBxKSwKICAgICAgICAgICAgSgogICAgICAgICAgICAgID8gKChBLmVsID0gSi5lbCksCiAgICAgICAgICAgICAgICAoQS5jb21wb25lbnQgPSBKLmNvbXBvbmVudCksCiAgICAgICAgICAgICAgICBBLnRyYW5zaXRpb24gJiYgc2V0VHJhbnNpdGlvbkhvb2tzKEEsIEEudHJhbnNpdGlvbiksCiAgICAgICAgICAgICAgICAoQS5zaGFwZUZsYWcgfD0gNTEyKSwKICAgICAgICAgICAgICAgIGEuZGVsZXRlKHEpLAogICAgICAgICAgICAgICAgYS5hZGQocSkpCiAgICAgICAgICAgICAgOiAoYS5hZGQocSksCiAgICAgICAgICAgICAgICAkICYmIGEuc2l6ZSA+IHBhcnNlSW50KCQsIDEwKSAmJiBUKGEudmFsdWVzKCkubmV4dCgpLnZhbHVlKSksCiAgICAgICAgICAgIChBLnNoYXBlRmxhZyB8PSAyNTYpLAogICAgICAgICAgICAobyA9IEEpLAogICAgICAgICAgICBpc1N1c3BlbnNlKFMudHlwZSkgPyBTIDogQQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICk7CiAgICB9LAogIH0sCiAgS2VlcEFsaXZlID0gS2VlcEFsaXZlSW1wbDsKZnVuY3Rpb24gbWF0Y2hlcyhlLCB0KSB7CiAgcmV0dXJuIGlzQXJyYXkkMihlKQogICAgPyBlLnNvbWUoKHIpID0+IG1hdGNoZXMociwgdCkpCiAgICA6IGlzU3RyaW5nJDEoZSkKICAgICAgPyBlLnNwbGl0KCIsIikuaW5jbHVkZXModCkKICAgICAgOiBpc1JlZ0V4cCQxKGUpCiAgICAgICAgPyAoKGUubGFzdEluZGV4ID0gMCksIGUudGVzdCh0KSkKICAgICAgICA6ICExOwp9CmZ1bmN0aW9uIG9uQWN0aXZhdGVkKGUsIHQpIHsKICByZWdpc3RlcktlZXBBbGl2ZUhvb2soZSwgImEiLCB0KTsKfQpmdW5jdGlvbiBvbkRlYWN0aXZhdGVkKGUsIHQpIHsKICByZWdpc3RlcktlZXBBbGl2ZUhvb2soZSwgImRhIiwgdCk7Cn0KZnVuY3Rpb24gcmVnaXN0ZXJLZWVwQWxpdmVIb29rKGUsIHQsIHIgPSBjdXJyZW50SW5zdGFuY2UpIHsKICBjb25zdCBuID0KICAgIGUuX193ZGMgfHwKICAgIChlLl9fd2RjID0gKCkgPT4gewogICAgICBsZXQgaSA9IHI7CiAgICAgIGZvciAoOyBpOykgewogICAgICAgIGlmIChpLmlzRGVhY3RpdmF0ZWQpIHJldHVybjsKICAgICAgICBpID0gaS5wYXJlbnQ7CiAgICAgIH0KICAgICAgcmV0dXJuIGUoKTsKICAgIH0pOwogIGlmICgoaW5qZWN0SG9vayh0LCBuLCByKSwgcikpIHsKICAgIGxldCBpID0gci5wYXJlbnQ7CiAgICBmb3IgKDsgaSAmJiBpLnBhcmVudDspCiAgICAgIGlzS2VlcEFsaXZlKGkucGFyZW50LnZub2RlKSAmJiBpbmplY3RUb0tlZXBBbGl2ZVJvb3QobiwgdCwgciwgaSksCiAgICAgICAgKGkgPSBpLnBhcmVudCk7CiAgfQp9CmZ1bmN0aW9uIGluamVjdFRvS2VlcEFsaXZlUm9vdChlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9IGluamVjdEhvb2sodCwgZSwgbiwgITApOwogIG9uVW5tb3VudGVkKCgpID0+IHsKICAgIHJlbW92ZShuW3RdLCBpKTsKICB9LCByKTsKfQpmdW5jdGlvbiByZXNldFNoYXBlRmxhZyhlKSB7CiAgKGUuc2hhcGVGbGFnICY9IC0yNTcpLCAoZS5zaGFwZUZsYWcgJj0gLTUxMyk7Cn0KZnVuY3Rpb24gZ2V0SW5uZXJDaGlsZChlKSB7CiAgcmV0dXJuIGUuc2hhcGVGbGFnICYgMTI4ID8gZS5zc0NvbnRlbnQgOiBlOwp9CmZ1bmN0aW9uIGluamVjdEhvb2soZSwgdCwgciA9IGN1cnJlbnRJbnN0YW5jZSwgbiA9ICExKSB7CiAgaWYgKHIpIHsKICAgIGNvbnN0IGkgPSByW2VdIHx8IChyW2VdID0gW10pLAogICAgICBhID0KICAgICAgICB0Ll9fd2VoIHx8CiAgICAgICAgKHQuX193ZWggPSAoLi4ubykgPT4gewogICAgICAgICAgcGF1c2VUcmFja2luZygpOwogICAgICAgICAgY29uc3QgbCA9IHNldEN1cnJlbnRJbnN0YW5jZShyKSwKICAgICAgICAgICAgYyA9IGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKHQsIHIsIGUsIG8pOwogICAgICAgICAgcmV0dXJuIGwoKSwgcmVzZXRUcmFja2luZygpLCBjOwogICAgICAgIH0pOwogICAgcmV0dXJuIG4gPyBpLnVuc2hpZnQoYSkgOiBpLnB1c2goYSksIGE7CiAgfQp9CmNvbnN0IGNyZWF0ZUhvb2sgPQogIChlKSA9PgogICAgKHQsIHIgPSBjdXJyZW50SW5zdGFuY2UpID0+IHsKICAgICAgKCFpc0luU1NSQ29tcG9uZW50U2V0dXAgfHwgZSA9PT0gInNwIikgJiYKICAgICAgICBpbmplY3RIb29rKGUsICguLi5uKSA9PiB0KC4uLm4pLCByKTsKICAgIH0sCiAgb25CZWZvcmVNb3VudCA9IGNyZWF0ZUhvb2soImJtIiksCiAgb25Nb3VudGVkID0gY3JlYXRlSG9vaygibSIpLAogIG9uQmVmb3JlVXBkYXRlID0gY3JlYXRlSG9vaygiYnUiKSwKICBvblVwZGF0ZWQgPSBjcmVhdGVIb29rKCJ1IiksCiAgb25CZWZvcmVVbm1vdW50ID0gY3JlYXRlSG9vaygiYnVtIiksCiAgb25Vbm1vdW50ZWQgPSBjcmVhdGVIb29rKCJ1bSIpLAogIG9uU2VydmVyUHJlZmV0Y2ggPSBjcmVhdGVIb29rKCJzcCIpLAogIG9uUmVuZGVyVHJpZ2dlcmVkID0gY3JlYXRlSG9vaygicnRnIiksCiAgb25SZW5kZXJUcmFja2VkID0gY3JlYXRlSG9vaygicnRjIik7CmZ1bmN0aW9uIG9uRXJyb3JDYXB0dXJlZChlLCB0ID0gY3VycmVudEluc3RhbmNlKSB7CiAgaW5qZWN0SG9vaygiZWMiLCBlLCB0KTsKfQpjb25zdCBDT01QT05FTlRTID0gImNvbXBvbmVudHMiLAogIERJUkVDVElWRVMgPSAiZGlyZWN0aXZlcyI7CmZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQoZSwgdCkgewogIHJldHVybiByZXNvbHZlQXNzZXQoQ09NUE9ORU5UUywgZSwgITAsIHQpIHx8IGU7Cn0KY29uc3QgTlVMTF9EWU5BTUlDX0NPTVBPTkVOVCA9IFN5bWJvbC5mb3IoInYtbmRjIik7CmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljQ29tcG9uZW50KGUpIHsKICByZXR1cm4gaXNTdHJpbmckMShlKQogICAgPyByZXNvbHZlQXNzZXQoQ09NUE9ORU5UUywgZSwgITEpIHx8IGUKICAgIDogZSB8fCBOVUxMX0RZTkFNSUNfQ09NUE9ORU5UOwp9CmZ1bmN0aW9uIHJlc29sdmVEaXJlY3RpdmUoZSkgewogIHJldHVybiByZXNvbHZlQXNzZXQoRElSRUNUSVZFUywgZSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZUFzc2V0KGUsIHQsIHIgPSAhMCwgbiA9ICExKSB7CiAgY29uc3QgaSA9IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSB8fCBjdXJyZW50SW5zdGFuY2U7CiAgaWYgKGkpIHsKICAgIGNvbnN0IGEgPSBpLnR5cGU7CiAgICBpZiAoZSA9PT0gQ09NUE9ORU5UUykgewogICAgICBjb25zdCBsID0gZ2V0Q29tcG9uZW50TmFtZShhLCAhMSk7CiAgICAgIGlmICgKICAgICAgICBsICYmCiAgICAgICAgKGwgPT09IHQgfHwgbCA9PT0gY2FtZWxpemUodCkgfHwgbCA9PT0gY2FwaXRhbGl6ZSQxKGNhbWVsaXplKHQpKSkKICAgICAgKQogICAgICAgIHJldHVybiBhOwogICAgfQogICAgY29uc3QgbyA9IHJlc29sdmUkMShpW2VdIHx8IGFbZV0sIHQpIHx8IHJlc29sdmUkMShpLmFwcENvbnRleHRbZV0sIHQpOwogICAgcmV0dXJuICFvICYmIG4gPyBhIDogbzsKICB9Cn0KZnVuY3Rpb24gcmVzb2x2ZSQxKGUsIHQpIHsKICByZXR1cm4gZSAmJiAoZVt0XSB8fCBlW2NhbWVsaXplKHQpXSB8fCBlW2NhcGl0YWxpemUkMShjYW1lbGl6ZSh0KSldKTsKfQpmdW5jdGlvbiByZW5kZXJMaXN0KGUsIHQsIHIsIG4pIHsKICBsZXQgaTsKICBjb25zdCBhID0gciAmJiByW25dLAogICAgbyA9IGlzQXJyYXkkMihlKTsKICBpZiAobyB8fCBpc1N0cmluZyQxKGUpKSB7CiAgICBjb25zdCBsID0gbyAmJiBpc1JlYWN0aXZlKGUpOwogICAgbGV0IGMgPSAhMTsKICAgIGwgJiYgKChjID0gIWlzU2hhbGxvdyhlKSksIChlID0gc2hhbGxvd1JlYWRBcnJheShlKSkpLAogICAgICAoaSA9IG5ldyBBcnJheShlLmxlbmd0aCkpOwogICAgZm9yIChsZXQgdSA9IDAsIGQgPSBlLmxlbmd0aDsgdSA8IGQ7IHUrKykKICAgICAgaVt1XSA9IHQoYyA/IHRvUmVhY3RpdmUoZVt1XSkgOiBlW3VdLCB1LCB2b2lkIDAsIGEgJiYgYVt1XSk7CiAgfSBlbHNlIGlmICh0eXBlb2YgZSA9PSAibnVtYmVyIikgewogICAgaSA9IG5ldyBBcnJheShlKTsKICAgIGZvciAobGV0IGwgPSAwOyBsIDwgZTsgbCsrKSBpW2xdID0gdChsICsgMSwgbCwgdm9pZCAwLCBhICYmIGFbbF0pOwogIH0gZWxzZSBpZiAoaXNPYmplY3QkMihlKSkKICAgIGlmIChlW1N5bWJvbC5pdGVyYXRvcl0pCiAgICAgIGkgPSBBcnJheS5mcm9tKGUsIChsLCBjKSA9PiB0KGwsIGMsIHZvaWQgMCwgYSAmJiBhW2NdKSk7CiAgICBlbHNlIHsKICAgICAgY29uc3QgbCA9IE9iamVjdC5rZXlzKGUpOwogICAgICBpID0gbmV3IEFycmF5KGwubGVuZ3RoKTsKICAgICAgZm9yIChsZXQgYyA9IDAsIHUgPSBsLmxlbmd0aDsgYyA8IHU7IGMrKykgewogICAgICAgIGNvbnN0IGQgPSBsW2NdOwogICAgICAgIGlbY10gPSB0KGVbZF0sIGQsIGMsIGEgJiYgYVtjXSk7CiAgICAgIH0KICAgIH0KICBlbHNlIGkgPSBbXTsKICByZXR1cm4gciAmJiAocltuXSA9IGkpLCBpOwp9CmZ1bmN0aW9uIGNyZWF0ZVNsb3RzKGUsIHQpIHsKICBmb3IgKGxldCByID0gMDsgciA8IHQubGVuZ3RoOyByKyspIHsKICAgIGNvbnN0IG4gPSB0W3JdOwogICAgaWYgKGlzQXJyYXkkMihuKSkgZm9yIChsZXQgaSA9IDA7IGkgPCBuLmxlbmd0aDsgaSsrKSBlW25baV0ubmFtZV0gPSBuW2ldLmZuOwogICAgZWxzZQogICAgICBuICYmCiAgICAgICAgKGVbbi5uYW1lXSA9IG4ua2V5CiAgICAgICAgICA/ICguLi5pKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IGEgPSBuLmZuKC4uLmkpOwogICAgICAgICAgICByZXR1cm4gYSAmJiAoYS5rZXkgPSBuLmtleSksIGE7CiAgICAgICAgICB9CiAgICAgICAgICA6IG4uZm4pOwogIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiByZW5kZXJTbG90KGUsIHQsIHIgPSB7fSwgbiwgaSkgewogIGlmICgKICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5jZSB8fAogICAgKGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5wYXJlbnQgJiYKICAgICAgaXNBc3luY1dyYXBwZXIoY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLnBhcmVudCkgJiYKICAgICAgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLnBhcmVudC5jZSkKICApCiAgICByZXR1cm4gKAogICAgICB0ICE9PSAiZGVmYXVsdCIgJiYgKHIubmFtZSA9IHQpLAogICAgICBvcGVuQmxvY2soKSwKICAgICAgY3JlYXRlQmxvY2soRnJhZ21lbnQsIG51bGwsIFtjcmVhdGVWTm9kZSgic2xvdCIsIHIsIG4gJiYgbigpKV0sIDY0KQogICAgKTsKICBsZXQgYSA9IGVbdF07CiAgYSAmJiBhLl9jICYmIChhLl9kID0gITEpLCBvcGVuQmxvY2soKTsKICBjb25zdCBvID0gYSAmJiBlbnN1cmVWYWxpZFZOb2RlJDEoYShyKSksCiAgICBsID0gci5rZXkgfHwgKG8gJiYgby5rZXkpLAogICAgYyA9IGNyZWF0ZUJsb2NrKAogICAgICBGcmFnbWVudCwKICAgICAgeyBrZXk6IChsICYmICFpc1N5bWJvbCQxKGwpID8gbCA6IGBfJHt0fWApICsgKCFvICYmIG4gPyAiX2ZiIiA6ICIiKSB9LAogICAgICBvIHx8IChuID8gbigpIDogW10pLAogICAgICBvICYmIGUuXyA9PT0gMSA/IDY0IDogLTIKICAgICk7CiAgcmV0dXJuICgKICAgICFpICYmIGMuc2NvcGVJZCAmJiAoYy5zbG90U2NvcGVJZHMgPSBbYy5zY29wZUlkICsgIi1zIl0pLAogICAgYSAmJiBhLl9jICYmIChhLl9kID0gITApLAogICAgYwogICk7Cn0KZnVuY3Rpb24gZW5zdXJlVmFsaWRWTm9kZSQxKGUpIHsKICByZXR1cm4gZS5zb21lKCh0KSA9PgogICAgaXNWTm9kZSQxKHQpCiAgICAgID8gISgKICAgICAgICB0LnR5cGUgPT09IENvbW1lbnQgfHwKICAgICAgICAodC50eXBlID09PSBGcmFnbWVudCAmJiAhZW5zdXJlVmFsaWRWTm9kZSQxKHQuY2hpbGRyZW4pKQogICAgICApCiAgICAgIDogITAKICApCiAgICA/IGUKICAgIDogbnVsbDsKfQpmdW5jdGlvbiB0b0hhbmRsZXJzKGUsIHQpIHsKICBjb25zdCByID0ge307CiAgZm9yIChjb25zdCBuIGluIGUpCiAgICByW3QgJiYgL1tBLVpdLy50ZXN0KG4pID8gYG9uOiR7bn1gIDogdG9IYW5kbGVyS2V5KG4pXSA9IGVbbl07CiAgcmV0dXJuIHI7Cn0KY29uc3QgZ2V0UHVibGljSW5zdGFuY2UgPSAoZSkgPT4KICBlCiAgICA/IGlzU3RhdGVmdWxDb21wb25lbnQoZSkKICAgICAgPyBnZXRDb21wb25lbnRQdWJsaWNJbnN0YW5jZShlKQogICAgICA6IGdldFB1YmxpY0luc3RhbmNlKGUucGFyZW50KQogICAgOiBudWxsLAogIHB1YmxpY1Byb3BlcnRpZXNNYXAgPSBleHRlbmQoT2JqZWN0LmNyZWF0ZShudWxsKSwgewogICAgJDogKGUpID0+IGUsCiAgICAkZWw6IChlKSA9PiBlLnZub2RlLmVsLAogICAgJGRhdGE6IChlKSA9PiBlLmRhdGEsCiAgICAkcHJvcHM6IChlKSA9PiBlLnByb3BzLAogICAgJGF0dHJzOiAoZSkgPT4gZS5hdHRycywKICAgICRzbG90czogKGUpID0+IGUuc2xvdHMsCiAgICAkcmVmczogKGUpID0+IGUucmVmcywKICAgICRwYXJlbnQ6IChlKSA9PiBnZXRQdWJsaWNJbnN0YW5jZShlLnBhcmVudCksCiAgICAkcm9vdDogKGUpID0+IGdldFB1YmxpY0luc3RhbmNlKGUucm9vdCksCiAgICAkaG9zdDogKGUpID0+IGUuY2UsCiAgICAkZW1pdDogKGUpID0+IGUuZW1pdCwKICAgICRvcHRpb25zOiAoZSkgPT4gcmVzb2x2ZU1lcmdlZE9wdGlvbnMoZSksCiAgICAkZm9yY2VVcGRhdGU6IChlKSA9PgogICAgICBlLmYgfHwKICAgICAgKGUuZiA9ICgpID0+IHsKICAgICAgICBxdWV1ZUpvYihlLnVwZGF0ZSk7CiAgICAgIH0pLAogICAgJG5leHRUaWNrOiAoZSkgPT4gZS5uIHx8IChlLm4gPSBuZXh0VGljay5iaW5kKGUucHJveHkpKSwKICAgICR3YXRjaDogKGUpID0+IGluc3RhbmNlV2F0Y2guYmluZChlKSwKICB9KSwKICBoYXNTZXR1cEJpbmRpbmcgPSAoZSwgdCkgPT4KICAgIGUgIT09IEVNUFRZX09CSiAmJiAhZS5fX2lzU2NyaXB0U2V0dXAgJiYgaGFzT3duJDEoZSwgdCksCiAgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzID0gewogICAgZ2V0KHsgXzogZSB9LCB0KSB7CiAgICAgIGlmICh0ID09PSAiX192X3NraXAiKSByZXR1cm4gITA7CiAgICAgIGNvbnN0IHsKICAgICAgICBjdHg6IHIsCiAgICAgICAgc2V0dXBTdGF0ZTogbiwKICAgICAgICBkYXRhOiBpLAogICAgICAgIHByb3BzOiBhLAogICAgICAgIGFjY2Vzc0NhY2hlOiBvLAogICAgICAgIHR5cGU6IGwsCiAgICAgICAgYXBwQ29udGV4dDogYywKICAgICAgfSA9IGU7CiAgICAgIGxldCB1OwogICAgICBpZiAodFswXSAhPT0gIiQiKSB7CiAgICAgICAgY29uc3QgUCA9IG9bdF07CiAgICAgICAgaWYgKFAgIT09IHZvaWQgMCkKICAgICAgICAgIHN3aXRjaCAoUCkgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgcmV0dXJuIG5bdF07CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICByZXR1cm4gaVt0XTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIHJldHVybiByW3RdOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgcmV0dXJuIGFbdF07CiAgICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBpZiAoaGFzU2V0dXBCaW5kaW5nKG4sIHQpKSByZXR1cm4gKG9bdF0gPSAxKSwgblt0XTsKICAgICAgICAgIGlmIChpICE9PSBFTVBUWV9PQkogJiYgaGFzT3duJDEoaSwgdCkpIHJldHVybiAob1t0XSA9IDIpLCBpW3RdOwogICAgICAgICAgaWYgKCh1ID0gZS5wcm9wc09wdGlvbnNbMF0pICYmIGhhc093biQxKHUsIHQpKQogICAgICAgICAgICByZXR1cm4gKG9bdF0gPSAzKSwgYVt0XTsKICAgICAgICAgIGlmIChyICE9PSBFTVBUWV9PQkogJiYgaGFzT3duJDEociwgdCkpIHJldHVybiAob1t0XSA9IDQpLCByW3RdOwogICAgICAgICAgc2hvdWxkQ2FjaGVBY2Nlc3MgJiYgKG9bdF0gPSAwKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgZCA9IHB1YmxpY1Byb3BlcnRpZXNNYXBbdF07CiAgICAgIGxldCBFLCBiOwogICAgICBpZiAoZCkgcmV0dXJuIHQgPT09ICIkYXR0cnMiICYmIHRyYWNrKGUuYXR0cnMsICJnZXQiLCAiIiksIGQoZSk7CiAgICAgIGlmICgoRSA9IGwuX19jc3NNb2R1bGVzKSAmJiAoRSA9IEVbdF0pKSByZXR1cm4gRTsKICAgICAgaWYgKHIgIT09IEVNUFRZX09CSiAmJiBoYXNPd24kMShyLCB0KSkgcmV0dXJuIChvW3RdID0gNCksIHJbdF07CiAgICAgIGlmICgoKGIgPSBjLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzKSwgaGFzT3duJDEoYiwgdCkpKSByZXR1cm4gYlt0XTsKICAgIH0sCiAgICBzZXQoeyBfOiBlIH0sIHQsIHIpIHsKICAgICAgY29uc3QgeyBkYXRhOiBuLCBzZXR1cFN0YXRlOiBpLCBjdHg6IGEgfSA9IGU7CiAgICAgIHJldHVybiBoYXNTZXR1cEJpbmRpbmcoaSwgdCkKICAgICAgICA/ICgoaVt0XSA9IHIpLCAhMCkKICAgICAgICA6IG4gIT09IEVNUFRZX09CSiAmJiBoYXNPd24kMShuLCB0KQogICAgICAgICAgPyAoKG5bdF0gPSByKSwgITApCiAgICAgICAgICA6IGhhc093biQxKGUucHJvcHMsIHQpIHx8ICh0WzBdID09PSAiJCIgJiYgdC5zbGljZSgxKSBpbiBlKQogICAgICAgICAgICA/ICExCiAgICAgICAgICAgIDogKChhW3RdID0gciksICEwKTsKICAgIH0sCiAgICBoYXMoCiAgICAgIHsKICAgICAgICBfOiB7CiAgICAgICAgICBkYXRhOiBlLAogICAgICAgICAgc2V0dXBTdGF0ZTogdCwKICAgICAgICAgIGFjY2Vzc0NhY2hlOiByLAogICAgICAgICAgY3R4OiBuLAogICAgICAgICAgYXBwQ29udGV4dDogaSwKICAgICAgICAgIHByb3BzT3B0aW9uczogYSwKICAgICAgICB9LAogICAgICB9LAogICAgICBvCiAgICApIHsKICAgICAgbGV0IGw7CiAgICAgIHJldHVybiAoCiAgICAgICAgISFyW29dIHx8CiAgICAgICAgKGUgIT09IEVNUFRZX09CSiAmJiBoYXNPd24kMShlLCBvKSkgfHwKICAgICAgICBoYXNTZXR1cEJpbmRpbmcodCwgbykgfHwKICAgICAgICAoKGwgPSBhWzBdKSAmJiBoYXNPd24kMShsLCBvKSkgfHwKICAgICAgICBoYXNPd24kMShuLCBvKSB8fAogICAgICAgIGhhc093biQxKHB1YmxpY1Byb3BlcnRpZXNNYXAsIG8pIHx8CiAgICAgICAgaGFzT3duJDEoaS5jb25maWcuZ2xvYmFsUHJvcGVydGllcywgbykKICAgICAgKTsKICAgIH0sCiAgICBkZWZpbmVQcm9wZXJ0eShlLCB0LCByKSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgci5nZXQgIT0gbnVsbAogICAgICAgICAgPyAoZS5fLmFjY2Vzc0NhY2hlW3RdID0gMCkKICAgICAgICAgIDogaGFzT3duJDEociwgInZhbHVlIikgJiYgdGhpcy5zZXQoZSwgdCwgci52YWx1ZSwgbnVsbCksCiAgICAgICAgUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0LCByKQogICAgICApOwogICAgfSwKICB9LAogIFJ1bnRpbWVDb21waWxlZFB1YmxpY0luc3RhbmNlUHJveHlIYW5kbGVycyA9IGV4dGVuZCgKICAgIHt9LAogICAgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzLAogICAgewogICAgICBnZXQoZSwgdCkgewogICAgICAgIGlmICh0ICE9PSBTeW1ib2wudW5zY29wYWJsZXMpCiAgICAgICAgICByZXR1cm4gUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzLmdldChlLCB0LCBlKTsKICAgICAgfSwKICAgICAgaGFzKGUsIHQpIHsKICAgICAgICByZXR1cm4gdFswXSAhPT0gIl8iICYmICFpc0dsb2JhbGx5QWxsb3dlZCh0KTsKICAgICAgfSwKICAgIH0KICApOwpmdW5jdGlvbiBkZWZpbmVQcm9wcygpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBkZWZpbmVFbWl0cygpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBkZWZpbmVFeHBvc2UoZSkgeyB9CmZ1bmN0aW9uIGRlZmluZU9wdGlvbnMoZSkgeyB9CmZ1bmN0aW9uIGRlZmluZVNsb3RzKCkgewogIHJldHVybiBudWxsOwp9CmZ1bmN0aW9uIGRlZmluZU1vZGVsKCkgeyB9CmZ1bmN0aW9uIHdpdGhEZWZhdWx0cyhlLCB0KSB7CiAgcmV0dXJuIG51bGw7Cn0KZnVuY3Rpb24gdXNlU2xvdHMoKSB7CiAgcmV0dXJuIGdldENvbnRleHQkMSgpLnNsb3RzOwp9CmZ1bmN0aW9uIHVzZUF0dHJzKCkgewogIHJldHVybiBnZXRDb250ZXh0JDEoKS5hdHRyczsKfQpmdW5jdGlvbiBnZXRDb250ZXh0JDEoKSB7CiAgY29uc3QgZSA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCk7CiAgcmV0dXJuIGUuc2V0dXBDb250ZXh0IHx8IChlLnNldHVwQ29udGV4dCA9IGNyZWF0ZVNldHVwQ29udGV4dChlKSk7Cn0KZnVuY3Rpb24gbm9ybWFsaXplUHJvcHNPckVtaXRzKGUpIHsKICByZXR1cm4gaXNBcnJheSQyKGUpID8gZS5yZWR1Y2UoKHQsIHIpID0+ICgodFtyXSA9IG51bGwpLCB0KSwge30pIDogZTsKfQpmdW5jdGlvbiBtZXJnZURlZmF1bHRzKGUsIHQpIHsKICBjb25zdCByID0gbm9ybWFsaXplUHJvcHNPckVtaXRzKGUpOwogIGZvciAoY29uc3QgbiBpbiB0KSB7CiAgICBpZiAobi5zdGFydHNXaXRoKCJfX3NraXAiKSkgY29udGludWU7CiAgICBsZXQgaSA9IHJbbl07CiAgICBpCiAgICAgID8gaXNBcnJheSQyKGkpIHx8IGlzRnVuY3Rpb24kMShpKQogICAgICAgID8gKGkgPSByW25dID0geyB0eXBlOiBpLCBkZWZhdWx0OiB0W25dIH0pCiAgICAgICAgOiAoaS5kZWZhdWx0ID0gdFtuXSkKICAgICAgOiBpID09PSBudWxsICYmIChpID0gcltuXSA9IHsgZGVmYXVsdDogdFtuXSB9KSwKICAgICAgaSAmJiB0W2BfX3NraXBfJHtufWBdICYmIChpLnNraXBGYWN0b3J5ID0gITApOwogIH0KICByZXR1cm4gcjsKfQpmdW5jdGlvbiBtZXJnZU1vZGVscyhlLCB0KSB7CiAgcmV0dXJuICFlIHx8ICF0CiAgICA/IGUgfHwgdAogICAgOiBpc0FycmF5JDIoZSkgJiYgaXNBcnJheSQyKHQpCiAgICAgID8gZS5jb25jYXQodCkKICAgICAgOiBleHRlbmQoe30sIG5vcm1hbGl6ZVByb3BzT3JFbWl0cyhlKSwgbm9ybWFsaXplUHJvcHNPckVtaXRzKHQpKTsKfQpmdW5jdGlvbiBjcmVhdGVQcm9wc1Jlc3RQcm94eShlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIGZvciAoY29uc3QgbiBpbiBlKQogICAgdC5pbmNsdWRlcyhuKSB8fAogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkociwgbiwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiAoKSA9PiBlW25dIH0pOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIHdpdGhBc3luY0NvbnRleHQoZSkgewogIGNvbnN0IHQgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGxldCByID0gZSgpOwogIHJldHVybiAoCiAgICB1bnNldEN1cnJlbnRJbnN0YW5jZSgpLAogICAgaXNQcm9taXNlJDEocikgJiYKICAgIChyID0gci5jYXRjaCgobikgPT4gewogICAgICB0aHJvdyAoc2V0Q3VycmVudEluc3RhbmNlKHQpLCBuKTsKICAgIH0pKSwKICAgIFtyLCAoKSA9PiBzZXRDdXJyZW50SW5zdGFuY2UodCldCiAgKTsKfQpsZXQgc2hvdWxkQ2FjaGVBY2Nlc3MgPSAhMDsKZnVuY3Rpb24gYXBwbHlPcHRpb25zKGUpIHsKICBjb25zdCB0ID0gcmVzb2x2ZU1lcmdlZE9wdGlvbnMoZSksCiAgICByID0gZS5wcm94eSwKICAgIG4gPSBlLmN0eDsKICAoc2hvdWxkQ2FjaGVBY2Nlc3MgPSAhMSksCiAgICB0LmJlZm9yZUNyZWF0ZSAmJiBjYWxsSG9vayQxKHQuYmVmb3JlQ3JlYXRlLCBlLCAiYmMiKTsKICBjb25zdCB7CiAgICBkYXRhOiBpLAogICAgY29tcHV0ZWQ6IGEsCiAgICBtZXRob2RzOiBvLAogICAgd2F0Y2g6IGwsCiAgICBwcm92aWRlOiBjLAogICAgaW5qZWN0OiB1LAogICAgY3JlYXRlZDogZCwKICAgIGJlZm9yZU1vdW50OiBFLAogICAgbW91bnRlZDogYiwKICAgIGJlZm9yZVVwZGF0ZTogUCwKICAgIHVwZGF0ZWQ6IFIsCiAgICBhY3RpdmF0ZWQ6IFQsCiAgICBkZWFjdGl2YXRlZDogTSwKICAgIGJlZm9yZURlc3Ryb3k6IHgsCiAgICBiZWZvcmVVbm1vdW50OiBrLAogICAgZGVzdHJveWVkOiBTLAogICAgdW5tb3VudGVkOiBBLAogICAgcmVuZGVyOiBPLAogICAgcmVuZGVyVHJhY2tlZDogRiwKICAgIHJlbmRlclRyaWdnZXJlZDogRCwKICAgIGVycm9yQ2FwdHVyZWQ6IEgsCiAgICBzZXJ2ZXJQcmVmZXRjaDogJCwKICAgIGV4cG9zZTogcSwKICAgIGluaGVyaXRBdHRyczogSiwKICAgIGNvbXBvbmVudHM6IEssCiAgICBkaXJlY3RpdmVzOiBlZSwKICAgIGZpbHRlcnM6IGxlLAogIH0gPSB0OwogIGlmICgodSAmJiByZXNvbHZlSW5qZWN0aW9ucyh1LCBuLCBudWxsKSwgbykpCiAgICBmb3IgKGNvbnN0IHogaW4gbykgewogICAgICBjb25zdCBOID0gb1t6XTsKICAgICAgaXNGdW5jdGlvbiQxKE4pICYmIChuW3pdID0gTi5iaW5kKHIpKTsKICAgIH0KICBpZiAoaSkgewogICAgY29uc3QgeiA9IGkuY2FsbChyLCByKTsKICAgIGlzT2JqZWN0JDIoeikgJiYgKGUuZGF0YSA9IHJlYWN0aXZlKHopKTsKICB9CiAgaWYgKCgoc2hvdWxkQ2FjaGVBY2Nlc3MgPSAhMCksIGEpKQogICAgZm9yIChjb25zdCB6IGluIGEpIHsKICAgICAgY29uc3QgTiA9IGFbel0sCiAgICAgICAgViA9IGlzRnVuY3Rpb24kMShOKQogICAgICAgICAgPyBOLmJpbmQociwgcikKICAgICAgICAgIDogaXNGdW5jdGlvbiQxKE4uZ2V0KQogICAgICAgICAgICA/IE4uZ2V0LmJpbmQociwgcikKICAgICAgICAgICAgOiBOT09QLAogICAgICAgIFEgPSAhaXNGdW5jdGlvbiQxKE4pICYmIGlzRnVuY3Rpb24kMShOLnNldCkgPyBOLnNldC5iaW5kKHIpIDogTk9PUCwKICAgICAgICBZID0gY29tcHV0ZWQoeyBnZXQ6IFYsIHNldDogUSB9KTsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIHosIHsKICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgIGdldDogKCkgPT4gWS52YWx1ZSwKICAgICAgICBzZXQ6IChoZSkgPT4gKFkudmFsdWUgPSBoZSksCiAgICAgIH0pOwogICAgfQogIGlmIChsKSBmb3IgKGNvbnN0IHogaW4gbCkgY3JlYXRlV2F0Y2hlcihsW3pdLCBuLCByLCB6KTsKICBpZiAoYykgewogICAgY29uc3QgeiA9IGlzRnVuY3Rpb24kMShjKSA/IGMuY2FsbChyKSA6IGM7CiAgICBSZWZsZWN0Lm93bktleXMoeikuZm9yRWFjaCgoTikgPT4gewogICAgICBwcm92aWRlKE4sIHpbTl0pOwogICAgfSk7CiAgfQogIGQgJiYgY2FsbEhvb2skMShkLCBlLCAiYyIpOwogIGZ1bmN0aW9uIEIoeiwgTikgewogICAgaXNBcnJheSQyKE4pID8gTi5mb3JFYWNoKChWKSA9PiB6KFYuYmluZChyKSkpIDogTiAmJiB6KE4uYmluZChyKSk7CiAgfQogIGlmICgKICAgIChCKG9uQmVmb3JlTW91bnQsIEUpLAogICAgICBCKG9uTW91bnRlZCwgYiksCiAgICAgIEIob25CZWZvcmVVcGRhdGUsIFApLAogICAgICBCKG9uVXBkYXRlZCwgUiksCiAgICAgIEIob25BY3RpdmF0ZWQsIFQpLAogICAgICBCKG9uRGVhY3RpdmF0ZWQsIE0pLAogICAgICBCKG9uRXJyb3JDYXB0dXJlZCwgSCksCiAgICAgIEIob25SZW5kZXJUcmFja2VkLCBGKSwKICAgICAgQihvblJlbmRlclRyaWdnZXJlZCwgRCksCiAgICAgIEIob25CZWZvcmVVbm1vdW50LCBrKSwKICAgICAgQihvblVubW91bnRlZCwgQSksCiAgICAgIEIob25TZXJ2ZXJQcmVmZXRjaCwgJCksCiAgICAgIGlzQXJyYXkkMihxKSkKICApCiAgICBpZiAocS5sZW5ndGgpIHsKICAgICAgY29uc3QgeiA9IGUuZXhwb3NlZCB8fCAoZS5leHBvc2VkID0ge30pOwogICAgICBxLmZvckVhY2goKE4pID0+IHsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeiwgTiwgewogICAgICAgICAgZ2V0OiAoKSA9PiByW05dLAogICAgICAgICAgc2V0OiAoVikgPT4gKHJbTl0gPSBWKSwKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9IGVsc2UgZS5leHBvc2VkIHx8IChlLmV4cG9zZWQgPSB7fSk7CiAgTyAmJiBlLnJlbmRlciA9PT0gTk9PUCAmJiAoZS5yZW5kZXIgPSBPKSwKICAgIEogIT0gbnVsbCAmJiAoZS5pbmhlcml0QXR0cnMgPSBKKSwKICAgIEsgJiYgKGUuY29tcG9uZW50cyA9IEspLAogICAgZWUgJiYgKGUuZGlyZWN0aXZlcyA9IGVlKSwKICAgICQgJiYgbWFya0FzeW5jQm91bmRhcnkoZSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZUluamVjdGlvbnMoZSwgdCwgciA9IE5PT1ApIHsKICBpc0FycmF5JDIoZSkgJiYgKGUgPSBub3JtYWxpemVJbmplY3QoZSkpOwogIGZvciAoY29uc3QgbiBpbiBlKSB7CiAgICBjb25zdCBpID0gZVtuXTsKICAgIGxldCBhOwogICAgaXNPYmplY3QkMihpKQogICAgICA/ICJkZWZhdWx0IiBpbiBpCiAgICAgICAgPyAoYSA9IGluamVjdCQxKGkuZnJvbSB8fCBuLCBpLmRlZmF1bHQsICEwKSkKICAgICAgICA6IChhID0gaW5qZWN0JDEoaS5mcm9tIHx8IG4pKQogICAgICA6IChhID0gaW5qZWN0JDEoaSkpLAogICAgICBpc1JlZihhKQogICAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIG4sIHsKICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgICAgIGdldDogKCkgPT4gYS52YWx1ZSwKICAgICAgICAgIHNldDogKG8pID0+IChhLnZhbHVlID0gbyksCiAgICAgICAgfSkKICAgICAgICA6ICh0W25dID0gYSk7CiAgfQp9CmZ1bmN0aW9uIGNhbGxIb29rJDEoZSwgdCwgcikgewogIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKAogICAgaXNBcnJheSQyKGUpID8gZS5tYXAoKG4pID0+IG4uYmluZCh0LnByb3h5KSkgOiBlLmJpbmQodC5wcm94eSksCiAgICB0LAogICAgcgogICk7Cn0KZnVuY3Rpb24gY3JlYXRlV2F0Y2hlcihlLCB0LCByLCBuKSB7CiAgbGV0IGkgPSBuLmluY2x1ZGVzKCIuIikgPyBjcmVhdGVQYXRoR2V0dGVyKHIsIG4pIDogKCkgPT4gcltuXTsKICBpZiAoaXNTdHJpbmckMShlKSkgewogICAgY29uc3QgYSA9IHRbZV07CiAgICBpc0Z1bmN0aW9uJDEoYSkgJiYgd2F0Y2goaSwgYSk7CiAgfSBlbHNlIGlmIChpc0Z1bmN0aW9uJDEoZSkpIHdhdGNoKGksIGUuYmluZChyKSk7CiAgZWxzZSBpZiAoaXNPYmplY3QkMihlKSkKICAgIGlmIChpc0FycmF5JDIoZSkpIGUuZm9yRWFjaCgoYSkgPT4gY3JlYXRlV2F0Y2hlcihhLCB0LCByLCBuKSk7CiAgICBlbHNlIHsKICAgICAgY29uc3QgYSA9IGlzRnVuY3Rpb24kMShlLmhhbmRsZXIpID8gZS5oYW5kbGVyLmJpbmQocikgOiB0W2UuaGFuZGxlcl07CiAgICAgIGlzRnVuY3Rpb24kMShhKSAmJiB3YXRjaChpLCBhLCBlKTsKICAgIH0KfQpmdW5jdGlvbiByZXNvbHZlTWVyZ2VkT3B0aW9ucyhlKSB7CiAgY29uc3QgdCA9IGUudHlwZSwKICAgIHsgbWl4aW5zOiByLCBleHRlbmRzOiBuIH0gPSB0LAogICAgewogICAgICBtaXhpbnM6IGksCiAgICAgIG9wdGlvbnNDYWNoZTogYSwKICAgICAgY29uZmlnOiB7IG9wdGlvbk1lcmdlU3RyYXRlZ2llczogbyB9LAogICAgfSA9IGUuYXBwQ29udGV4dCwKICAgIGwgPSBhLmdldCh0KTsKICBsZXQgYzsKICByZXR1cm4gKAogICAgbAogICAgICA/IChjID0gbCkKICAgICAgOiAhaS5sZW5ndGggJiYgIXIgJiYgIW4KICAgICAgICA/IChjID0gdCkKICAgICAgICA6ICgoYyA9IHt9KSwKICAgICAgICAgIGkubGVuZ3RoICYmIGkuZm9yRWFjaCgodSkgPT4gbWVyZ2VPcHRpb25zJDEoYywgdSwgbywgITApKSwKICAgICAgICAgIG1lcmdlT3B0aW9ucyQxKGMsIHQsIG8pKSwKICAgIGlzT2JqZWN0JDIodCkgJiYgYS5zZXQodCwgYyksCiAgICBjCiAgKTsKfQpmdW5jdGlvbiBtZXJnZU9wdGlvbnMkMShlLCB0LCByLCBuID0gITEpIHsKICBjb25zdCB7IG1peGluczogaSwgZXh0ZW5kczogYSB9ID0gdDsKICBhICYmIG1lcmdlT3B0aW9ucyQxKGUsIGEsIHIsICEwKSwKICAgIGkgJiYgaS5mb3JFYWNoKChvKSA9PiBtZXJnZU9wdGlvbnMkMShlLCBvLCByLCAhMCkpOwogIGZvciAoY29uc3QgbyBpbiB0KQogICAgaWYgKCEobiAmJiBvID09PSAiZXhwb3NlIikpIHsKICAgICAgY29uc3QgbCA9IGludGVybmFsT3B0aW9uTWVyZ2VTdHJhdHNbb10gfHwgKHIgJiYgcltvXSk7CiAgICAgIGVbb10gPSBsID8gbChlW29dLCB0W29dKSA6IHRbb107CiAgICB9CiAgcmV0dXJuIGU7Cn0KY29uc3QgaW50ZXJuYWxPcHRpb25NZXJnZVN0cmF0cyA9IHsKICBkYXRhOiBtZXJnZURhdGFGbiwKICBwcm9wczogbWVyZ2VFbWl0c09yUHJvcHNPcHRpb25zLAogIGVtaXRzOiBtZXJnZUVtaXRzT3JQcm9wc09wdGlvbnMsCiAgbWV0aG9kczogbWVyZ2VPYmplY3RPcHRpb25zLAogIGNvbXB1dGVkOiBtZXJnZU9iamVjdE9wdGlvbnMsCiAgYmVmb3JlQ3JlYXRlOiBtZXJnZUFzQXJyYXksCiAgY3JlYXRlZDogbWVyZ2VBc0FycmF5LAogIGJlZm9yZU1vdW50OiBtZXJnZUFzQXJyYXksCiAgbW91bnRlZDogbWVyZ2VBc0FycmF5LAogIGJlZm9yZVVwZGF0ZTogbWVyZ2VBc0FycmF5LAogIHVwZGF0ZWQ6IG1lcmdlQXNBcnJheSwKICBiZWZvcmVEZXN0cm95OiBtZXJnZUFzQXJyYXksCiAgYmVmb3JlVW5tb3VudDogbWVyZ2VBc0FycmF5LAogIGRlc3Ryb3llZDogbWVyZ2VBc0FycmF5LAogIHVubW91bnRlZDogbWVyZ2VBc0FycmF5LAogIGFjdGl2YXRlZDogbWVyZ2VBc0FycmF5LAogIGRlYWN0aXZhdGVkOiBtZXJnZUFzQXJyYXksCiAgZXJyb3JDYXB0dXJlZDogbWVyZ2VBc0FycmF5LAogIHNlcnZlclByZWZldGNoOiBtZXJnZUFzQXJyYXksCiAgY29tcG9uZW50czogbWVyZ2VPYmplY3RPcHRpb25zLAogIGRpcmVjdGl2ZXM6IG1lcmdlT2JqZWN0T3B0aW9ucywKICB3YXRjaDogbWVyZ2VXYXRjaE9wdGlvbnMsCiAgcHJvdmlkZTogbWVyZ2VEYXRhRm4sCiAgaW5qZWN0OiBtZXJnZUluamVjdCwKfTsKZnVuY3Rpb24gbWVyZ2VEYXRhRm4oZSwgdCkgewogIHJldHVybiB0CiAgICA/IGUKICAgICAgPyBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIGV4dGVuZCgKICAgICAgICAgIGlzRnVuY3Rpb24kMShlKSA/IGUuY2FsbCh0aGlzLCB0aGlzKSA6IGUsCiAgICAgICAgICBpc0Z1bmN0aW9uJDEodCkgPyB0LmNhbGwodGhpcywgdGhpcykgOiB0CiAgICAgICAgKTsKICAgICAgfQogICAgICA6IHQKICAgIDogZTsKfQpmdW5jdGlvbiBtZXJnZUluamVjdChlLCB0KSB7CiAgcmV0dXJuIG1lcmdlT2JqZWN0T3B0aW9ucyhub3JtYWxpemVJbmplY3QoZSksIG5vcm1hbGl6ZUluamVjdCh0KSk7Cn0KZnVuY3Rpb24gbm9ybWFsaXplSW5qZWN0KGUpIHsKICBpZiAoaXNBcnJheSQyKGUpKSB7CiAgICBjb25zdCB0ID0ge307CiAgICBmb3IgKGxldCByID0gMDsgciA8IGUubGVuZ3RoOyByKyspIHRbZVtyXV0gPSBlW3JdOwogICAgcmV0dXJuIHQ7CiAgfQogIHJldHVybiBlOwp9CmZ1bmN0aW9uIG1lcmdlQXNBcnJheShlLCB0KSB7CiAgcmV0dXJuIGUgPyBbLi4ubmV3IFNldChbXS5jb25jYXQoZSwgdCkpXSA6IHQ7Cn0KZnVuY3Rpb24gbWVyZ2VPYmplY3RPcHRpb25zKGUsIHQpIHsKICByZXR1cm4gZSA/IGV4dGVuZChPYmplY3QuY3JlYXRlKG51bGwpLCBlLCB0KSA6IHQ7Cn0KZnVuY3Rpb24gbWVyZ2VFbWl0c09yUHJvcHNPcHRpb25zKGUsIHQpIHsKICByZXR1cm4gZQogICAgPyBpc0FycmF5JDIoZSkgJiYgaXNBcnJheSQyKHQpCiAgICAgID8gWy4uLm5ldyBTZXQoWy4uLmUsIC4uLnRdKV0KICAgICAgOiBleHRlbmQoCiAgICAgICAgT2JqZWN0LmNyZWF0ZShudWxsKSwKICAgICAgICBub3JtYWxpemVQcm9wc09yRW1pdHMoZSksCiAgICAgICAgbm9ybWFsaXplUHJvcHNPckVtaXRzKHQgPz8ge30pCiAgICAgICkKICAgIDogdDsKfQpmdW5jdGlvbiBtZXJnZVdhdGNoT3B0aW9ucyhlLCB0KSB7CiAgaWYgKCFlKSByZXR1cm4gdDsKICBpZiAoIXQpIHJldHVybiBlOwogIGNvbnN0IHIgPSBleHRlbmQoT2JqZWN0LmNyZWF0ZShudWxsKSwgZSk7CiAgZm9yIChjb25zdCBuIGluIHQpIHJbbl0gPSBtZXJnZUFzQXJyYXkoZVtuXSwgdFtuXSk7CiAgcmV0dXJuIHI7Cn0KZnVuY3Rpb24gY3JlYXRlQXBwQ29udGV4dCgpIHsKICByZXR1cm4gewogICAgYXBwOiBudWxsLAogICAgY29uZmlnOiB7CiAgICAgIGlzTmF0aXZlVGFnOiBOTywKICAgICAgcGVyZm9ybWFuY2U6ICExLAogICAgICBnbG9iYWxQcm9wZXJ0aWVzOiB7fSwKICAgICAgb3B0aW9uTWVyZ2VTdHJhdGVnaWVzOiB7fSwKICAgICAgZXJyb3JIYW5kbGVyOiB2b2lkIDAsCiAgICAgIHdhcm5IYW5kbGVyOiB2b2lkIDAsCiAgICAgIGNvbXBpbGVyT3B0aW9uczoge30sCiAgICB9LAogICAgbWl4aW5zOiBbXSwKICAgIGNvbXBvbmVudHM6IHt9LAogICAgZGlyZWN0aXZlczoge30sCiAgICBwcm92aWRlczogT2JqZWN0LmNyZWF0ZShudWxsKSwKICAgIG9wdGlvbnNDYWNoZTogbmV3IFdlYWtNYXAoKSwKICAgIHByb3BzQ2FjaGU6IG5ldyBXZWFrTWFwKCksCiAgICBlbWl0c0NhY2hlOiBuZXcgV2Vha01hcCgpLAogIH07Cn0KbGV0IHVpZCQxID0gMDsKZnVuY3Rpb24gY3JlYXRlQXBwQVBJKGUsIHQpIHsKICByZXR1cm4gZnVuY3Rpb24gKG4sIGkgPSBudWxsKSB7CiAgICBpc0Z1bmN0aW9uJDEobikgfHwgKG4gPSBleHRlbmQoe30sIG4pKSwKICAgICAgaSAhPSBudWxsICYmICFpc09iamVjdCQyKGkpICYmIChpID0gbnVsbCk7CiAgICBjb25zdCBhID0gY3JlYXRlQXBwQ29udGV4dCgpLAogICAgICBvID0gbmV3IFdlYWtTZXQoKSwKICAgICAgbCA9IFtdOwogICAgbGV0IGMgPSAhMTsKICAgIGNvbnN0IHUgPSAoYS5hcHAgPSB7CiAgICAgIF91aWQ6IHVpZCQxKyssCiAgICAgIF9jb21wb25lbnQ6IG4sCiAgICAgIF9wcm9wczogaSwKICAgICAgX2NvbnRhaW5lcjogbnVsbCwKICAgICAgX2NvbnRleHQ6IGEsCiAgICAgIF9pbnN0YW5jZTogbnVsbCwKICAgICAgdmVyc2lvbjogdmVyc2lvbiQxLAogICAgICBnZXQgY29uZmlnKCkgewogICAgICAgIHJldHVybiBhLmNvbmZpZzsKICAgICAgfSwKICAgICAgc2V0IGNvbmZpZyhkKSB7IH0sCiAgICAgIHVzZShkLCAuLi5FKSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIG8uaGFzKGQpIHx8CiAgICAgICAgICAoZCAmJiBpc0Z1bmN0aW9uJDEoZC5pbnN0YWxsKQogICAgICAgICAgICA/IChvLmFkZChkKSwgZC5pbnN0YWxsKHUsIC4uLkUpKQogICAgICAgICAgICA6IGlzRnVuY3Rpb24kMShkKSAmJiAoby5hZGQoZCksIGQodSwgLi4uRSkpKSwKICAgICAgICAgIHUKICAgICAgICApOwogICAgICB9LAogICAgICBtaXhpbihkKSB7CiAgICAgICAgcmV0dXJuIGEubWl4aW5zLmluY2x1ZGVzKGQpIHx8IGEubWl4aW5zLnB1c2goZCksIHU7CiAgICAgIH0sCiAgICAgIGNvbXBvbmVudChkLCBFKSB7CiAgICAgICAgcmV0dXJuIEUgPyAoKGEuY29tcG9uZW50c1tkXSA9IEUpLCB1KSA6IGEuY29tcG9uZW50c1tkXTsKICAgICAgfSwKICAgICAgZGlyZWN0aXZlKGQsIEUpIHsKICAgICAgICByZXR1cm4gRSA/ICgoYS5kaXJlY3RpdmVzW2RdID0gRSksIHUpIDogYS5kaXJlY3RpdmVzW2RdOwogICAgICB9LAogICAgICBtb3VudChkLCBFLCBiKSB7CiAgICAgICAgaWYgKCFjKSB7CiAgICAgICAgICBjb25zdCBQID0gdS5fY2VWTm9kZSB8fCBjcmVhdGVWTm9kZShuLCBpKTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIChQLmFwcENvbnRleHQgPSBhKSwKICAgICAgICAgICAgYiA9PT0gITAgPyAoYiA9ICJzdmciKSA6IGIgPT09ICExICYmIChiID0gdm9pZCAwKSwKICAgICAgICAgICAgRSAmJiB0ID8gdChQLCBkKSA6IGUoUCwgZCwgYiksCiAgICAgICAgICAgIChjID0gITApLAogICAgICAgICAgICAodS5fY29udGFpbmVyID0gZCksCiAgICAgICAgICAgIChkLl9fdnVlX2FwcF9fID0gdSksCiAgICAgICAgICAgIGdldENvbXBvbmVudFB1YmxpY0luc3RhbmNlKFAuY29tcG9uZW50KQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIG9uVW5tb3VudChkKSB7CiAgICAgICAgbC5wdXNoKGQpOwogICAgICB9LAogICAgICB1bm1vdW50KCkgewogICAgICAgIGMgJiYKICAgICAgICAgIChjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhsLCB1Ll9pbnN0YW5jZSwgMTYpLAogICAgICAgICAgICBlKG51bGwsIHUuX2NvbnRhaW5lciksCiAgICAgICAgICAgIGRlbGV0ZSB1Ll9jb250YWluZXIuX192dWVfYXBwX18pOwogICAgICB9LAogICAgICBwcm92aWRlKGQsIEUpIHsKICAgICAgICByZXR1cm4gKGEucHJvdmlkZXNbZF0gPSBFKSwgdTsKICAgICAgfSwKICAgICAgcnVuV2l0aENvbnRleHQoZCkgewogICAgICAgIGNvbnN0IEUgPSBjdXJyZW50QXBwOwogICAgICAgIGN1cnJlbnRBcHAgPSB1OwogICAgICAgIHRyeSB7CiAgICAgICAgICByZXR1cm4gZCgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjdXJyZW50QXBwID0gRTsKICAgICAgICB9CiAgICAgIH0sCiAgICB9KTsKICAgIHJldHVybiB1OwogIH07Cn0KbGV0IGN1cnJlbnRBcHAgPSBudWxsOwpmdW5jdGlvbiBwcm92aWRlKGUsIHQpIHsKICBpZiAoY3VycmVudEluc3RhbmNlKSB7CiAgICBsZXQgciA9IGN1cnJlbnRJbnN0YW5jZS5wcm92aWRlczsKICAgIGNvbnN0IG4gPSBjdXJyZW50SW5zdGFuY2UucGFyZW50ICYmIGN1cnJlbnRJbnN0YW5jZS5wYXJlbnQucHJvdmlkZXM7CiAgICBuID09PSByICYmIChyID0gY3VycmVudEluc3RhbmNlLnByb3ZpZGVzID0gT2JqZWN0LmNyZWF0ZShuKSksIChyW2VdID0gdCk7CiAgfQp9CmZ1bmN0aW9uIGluamVjdCQxKGUsIHQsIHIgPSAhMSkgewogIGNvbnN0IG4gPSBjdXJyZW50SW5zdGFuY2UgfHwgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlOwogIGlmIChuIHx8IGN1cnJlbnRBcHApIHsKICAgIGNvbnN0IGkgPSBjdXJyZW50QXBwCiAgICAgID8gY3VycmVudEFwcC5fY29udGV4dC5wcm92aWRlcwogICAgICA6IG4KICAgICAgICA/IG4ucGFyZW50ID09IG51bGwKICAgICAgICAgID8gbi52bm9kZS5hcHBDb250ZXh0ICYmIG4udm5vZGUuYXBwQ29udGV4dC5wcm92aWRlcwogICAgICAgICAgOiBuLnBhcmVudC5wcm92aWRlcwogICAgICAgIDogdm9pZCAwOwogICAgaWYgKGkgJiYgZSBpbiBpKSByZXR1cm4gaVtlXTsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkKICAgICAgcmV0dXJuIHIgJiYgaXNGdW5jdGlvbiQxKHQpID8gdC5jYWxsKG4gJiYgbi5wcm94eSkgOiB0OwogIH0KfQpmdW5jdGlvbiBoYXNJbmplY3Rpb25Db250ZXh0KCkgewogIHJldHVybiAhIShjdXJyZW50SW5zdGFuY2UgfHwgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlIHx8IGN1cnJlbnRBcHApOwp9CmNvbnN0IGludGVybmFsT2JqZWN0UHJvdG8gPSB7fSwKICBjcmVhdGVJbnRlcm5hbE9iamVjdCA9ICgpID0+IE9iamVjdC5jcmVhdGUoaW50ZXJuYWxPYmplY3RQcm90byksCiAgaXNJbnRlcm5hbE9iamVjdCA9IChlKSA9PiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkgPT09IGludGVybmFsT2JqZWN0UHJvdG87CmZ1bmN0aW9uIGluaXRQcm9wcyhlLCB0LCByLCBuID0gITEpIHsKICBjb25zdCBpID0ge30sCiAgICBhID0gY3JlYXRlSW50ZXJuYWxPYmplY3QoKTsKICAoZS5wcm9wc0RlZmF1bHRzID0gT2JqZWN0LmNyZWF0ZShudWxsKSksIHNldEZ1bGxQcm9wcyhlLCB0LCBpLCBhKTsKICBmb3IgKGNvbnN0IG8gaW4gZS5wcm9wc09wdGlvbnNbMF0pIG8gaW4gaSB8fCAoaVtvXSA9IHZvaWQgMCk7CiAgcgogICAgPyAoZS5wcm9wcyA9IG4gPyBpIDogc2hhbGxvd1JlYWN0aXZlKGkpKQogICAgOiBlLnR5cGUucHJvcHMKICAgICAgPyAoZS5wcm9wcyA9IGkpCiAgICAgIDogKGUucHJvcHMgPSBhKSwKICAgIChlLmF0dHJzID0gYSk7Cn0KZnVuY3Rpb24gdXBkYXRlUHJvcHMoZSwgdCwgciwgbikgewogIGNvbnN0IHsKICAgIHByb3BzOiBpLAogICAgYXR0cnM6IGEsCiAgICB2bm9kZTogeyBwYXRjaEZsYWc6IG8gfSwKICB9ID0gZSwKICAgIGwgPSB0b1JhdyhpKSwKICAgIFtjXSA9IGUucHJvcHNPcHRpb25zOwogIGxldCB1ID0gITE7CiAgaWYgKChuIHx8IG8gPiAwKSAmJiAhKG8gJiAxNikpIHsKICAgIGlmIChvICYgOCkgewogICAgICBjb25zdCBkID0gZS52bm9kZS5keW5hbWljUHJvcHM7CiAgICAgIGZvciAobGV0IEUgPSAwOyBFIDwgZC5sZW5ndGg7IEUrKykgewogICAgICAgIGxldCBiID0gZFtFXTsKICAgICAgICBpZiAoaXNFbWl0TGlzdGVuZXIoZS5lbWl0c09wdGlvbnMsIGIpKSBjb250aW51ZTsKICAgICAgICBjb25zdCBQID0gdFtiXTsKICAgICAgICBpZiAoYykKICAgICAgICAgIGlmIChoYXNPd24kMShhLCBiKSkgUCAhPT0gYVtiXSAmJiAoKGFbYl0gPSBQKSwgKHUgPSAhMCkpOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IFIgPSBjYW1lbGl6ZShiKTsKICAgICAgICAgICAgaVtSXSA9IHJlc29sdmVQcm9wVmFsdWUoYywgbCwgUiwgUCwgZSwgITEpOwogICAgICAgICAgfQogICAgICAgIGVsc2UgUCAhPT0gYVtiXSAmJiAoKGFbYl0gPSBQKSwgKHUgPSAhMCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIHsKICAgIHNldEZ1bGxQcm9wcyhlLCB0LCBpLCBhKSAmJiAodSA9ICEwKTsKICAgIGxldCBkOwogICAgZm9yIChjb25zdCBFIGluIGwpCiAgICAgICghdCB8fAogICAgICAgICghaGFzT3duJDEodCwgRSkgJiYgKChkID0gaHlwaGVuYXRlKEUpKSA9PT0gRSB8fCAhaGFzT3duJDEodCwgZCkpKSkgJiYKICAgICAgICAoYwogICAgICAgICAgPyByICYmCiAgICAgICAgICAocltFXSAhPT0gdm9pZCAwIHx8IHJbZF0gIT09IHZvaWQgMCkgJiYKICAgICAgICAgIChpW0VdID0gcmVzb2x2ZVByb3BWYWx1ZShjLCBsLCBFLCB2b2lkIDAsIGUsICEwKSkKICAgICAgICAgIDogZGVsZXRlIGlbRV0pOwogICAgaWYgKGEgIT09IGwpCiAgICAgIGZvciAoY29uc3QgRSBpbiBhKSAoIXQgfHwgIWhhc093biQxKHQsIEUpKSAmJiAoZGVsZXRlIGFbRV0sICh1ID0gITApKTsKICB9CiAgdSAmJiB0cmlnZ2VyKGUuYXR0cnMsICJzZXQiLCAiIik7Cn0KZnVuY3Rpb24gc2V0RnVsbFByb3BzKGUsIHQsIHIsIG4pIHsKICBjb25zdCBbaSwgYV0gPSBlLnByb3BzT3B0aW9uczsKICBsZXQgbyA9ICExLAogICAgbDsKICBpZiAodCkKICAgIGZvciAobGV0IGMgaW4gdCkgewogICAgICBpZiAoaXNSZXNlcnZlZFByb3AoYykpIGNvbnRpbnVlOwogICAgICBjb25zdCB1ID0gdFtjXTsKICAgICAgbGV0IGQ7CiAgICAgIGkgJiYgaGFzT3duJDEoaSwgKGQgPSBjYW1lbGl6ZShjKSkpCiAgICAgICAgPyAhYSB8fCAhYS5pbmNsdWRlcyhkKQogICAgICAgICAgPyAocltkXSA9IHUpCiAgICAgICAgICA6ICgobCB8fCAobCA9IHt9KSlbZF0gPSB1KQogICAgICAgIDogaXNFbWl0TGlzdGVuZXIoZS5lbWl0c09wdGlvbnMsIGMpIHx8CiAgICAgICAgKCghKGMgaW4gbikgfHwgdSAhPT0gbltjXSkgJiYgKChuW2NdID0gdSksIChvID0gITApKSk7CiAgICB9CiAgaWYgKGEpIHsKICAgIGNvbnN0IGMgPSB0b1JhdyhyKSwKICAgICAgdSA9IGwgfHwgRU1QVFlfT0JKOwogICAgZm9yIChsZXQgZCA9IDA7IGQgPCBhLmxlbmd0aDsgZCsrKSB7CiAgICAgIGNvbnN0IEUgPSBhW2RdOwogICAgICByW0VdID0gcmVzb2x2ZVByb3BWYWx1ZShpLCBjLCBFLCB1W0VdLCBlLCAhaGFzT3duJDEodSwgRSkpOwogICAgfQogIH0KICByZXR1cm4gbzsKfQpmdW5jdGlvbiByZXNvbHZlUHJvcFZhbHVlKGUsIHQsIHIsIG4sIGksIGEpIHsKICBjb25zdCBvID0gZVtyXTsKICBpZiAobyAhPSBudWxsKSB7CiAgICBjb25zdCBsID0gaGFzT3duJDEobywgImRlZmF1bHQiKTsKICAgIGlmIChsICYmIG4gPT09IHZvaWQgMCkgewogICAgICBjb25zdCBjID0gby5kZWZhdWx0OwogICAgICBpZiAoby50eXBlICE9PSBGdW5jdGlvbiAmJiAhby5za2lwRmFjdG9yeSAmJiBpc0Z1bmN0aW9uJDEoYykpIHsKICAgICAgICBjb25zdCB7IHByb3BzRGVmYXVsdHM6IHUgfSA9IGk7CiAgICAgICAgaWYgKHIgaW4gdSkgbiA9IHVbcl07CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBjb25zdCBkID0gc2V0Q3VycmVudEluc3RhbmNlKGkpOwogICAgICAgICAgKG4gPSB1W3JdID0gYy5jYWxsKG51bGwsIHQpKSwgZCgpOwogICAgICAgIH0KICAgICAgfSBlbHNlIG4gPSBjOwogICAgICBpLmNlICYmIGkuY2UuX3NldFByb3Aociwgbik7CiAgICB9CiAgICBvWzBdICYmCiAgICAgIChhICYmICFsCiAgICAgICAgPyAobiA9ICExKQogICAgICAgIDogb1sxXSAmJiAobiA9PT0gIiIgfHwgbiA9PT0gaHlwaGVuYXRlKHIpKSAmJiAobiA9ICEwKSk7CiAgfQogIHJldHVybiBuOwp9CmNvbnN0IG1peGluUHJvcHNDYWNoZSA9IG5ldyBXZWFrTWFwKCk7CmZ1bmN0aW9uIG5vcm1hbGl6ZVByb3BzT3B0aW9ucyhlLCB0LCByID0gITEpIHsKICBjb25zdCBuID0gciA/IG1peGluUHJvcHNDYWNoZSA6IHQucHJvcHNDYWNoZSwKICAgIGkgPSBuLmdldChlKTsKICBpZiAoaSkgcmV0dXJuIGk7CiAgY29uc3QgYSA9IGUucHJvcHMsCiAgICBvID0ge30sCiAgICBsID0gW107CiAgbGV0IGMgPSAhMTsKICBpZiAoIWlzRnVuY3Rpb24kMShlKSkgewogICAgY29uc3QgZCA9IChFKSA9PiB7CiAgICAgIGMgPSAhMDsKICAgICAgY29uc3QgW2IsIFBdID0gbm9ybWFsaXplUHJvcHNPcHRpb25zKEUsIHQsICEwKTsKICAgICAgZXh0ZW5kKG8sIGIpLCBQICYmIGwucHVzaCguLi5QKTsKICAgIH07CiAgICAhciAmJiB0Lm1peGlucy5sZW5ndGggJiYgdC5taXhpbnMuZm9yRWFjaChkKSwKICAgICAgZS5leHRlbmRzICYmIGQoZS5leHRlbmRzKSwKICAgICAgZS5taXhpbnMgJiYgZS5taXhpbnMuZm9yRWFjaChkKTsKICB9CiAgaWYgKCFhICYmICFjKSByZXR1cm4gaXNPYmplY3QkMihlKSAmJiBuLnNldChlLCBFTVBUWV9BUlIpLCBFTVBUWV9BUlI7CiAgaWYgKGlzQXJyYXkkMihhKSkKICAgIGZvciAobGV0IGQgPSAwOyBkIDwgYS5sZW5ndGg7IGQrKykgewogICAgICBjb25zdCBFID0gY2FtZWxpemUoYVtkXSk7CiAgICAgIHZhbGlkYXRlUHJvcE5hbWUoRSkgJiYgKG9bRV0gPSBFTVBUWV9PQkopOwogICAgfQogIGVsc2UgaWYgKGEpCiAgICBmb3IgKGNvbnN0IGQgaW4gYSkgewogICAgICBjb25zdCBFID0gY2FtZWxpemUoZCk7CiAgICAgIGlmICh2YWxpZGF0ZVByb3BOYW1lKEUpKSB7CiAgICAgICAgY29uc3QgYiA9IGFbZF0sCiAgICAgICAgICBQID0gKG9bRV0gPQogICAgICAgICAgICBpc0FycmF5JDIoYikgfHwgaXNGdW5jdGlvbiQxKGIpID8geyB0eXBlOiBiIH0gOiBleHRlbmQoe30sIGIpKSwKICAgICAgICAgIFIgPSBQLnR5cGU7CiAgICAgICAgbGV0IFQgPSAhMSwKICAgICAgICAgIE0gPSAhMDsKICAgICAgICBpZiAoaXNBcnJheSQyKFIpKQogICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBSLmxlbmd0aDsgKyt4KSB7CiAgICAgICAgICAgIGNvbnN0IGsgPSBSW3hdLAogICAgICAgICAgICAgIFMgPSBpc0Z1bmN0aW9uJDEoaykgJiYgay5uYW1lOwogICAgICAgICAgICBpZiAoUyA9PT0gIkJvb2xlYW4iKSB7CiAgICAgICAgICAgICAgVCA9ICEwOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9IGVsc2UgUyA9PT0gIlN0cmluZyIgJiYgKE0gPSAhMSk7CiAgICAgICAgICB9CiAgICAgICAgZWxzZSBUID0gaXNGdW5jdGlvbiQxKFIpICYmIFIubmFtZSA9PT0gIkJvb2xlYW4iOwogICAgICAgIChQWzBdID0gVCksIChQWzFdID0gTSksIChUIHx8IGhhc093biQxKFAsICJkZWZhdWx0IikpICYmIGwucHVzaChFKTsKICAgICAgfQogICAgfQogIGNvbnN0IHUgPSBbbywgbF07CiAgcmV0dXJuIGlzT2JqZWN0JDIoZSkgJiYgbi5zZXQoZSwgdSksIHU7Cn0KZnVuY3Rpb24gdmFsaWRhdGVQcm9wTmFtZShlKSB7CiAgcmV0dXJuIGVbMF0gIT09ICIkIiAmJiAhaXNSZXNlcnZlZFByb3AoZSk7Cn0KY29uc3QgaXNJbnRlcm5hbEtleSA9IChlKSA9PiBlWzBdID09PSAiXyIgfHwgZSA9PT0gIiRzdGFibGUiLAogIG5vcm1hbGl6ZVNsb3RWYWx1ZSA9IChlKSA9PgogICAgaXNBcnJheSQyKGUpID8gZS5tYXAobm9ybWFsaXplVk5vZGUpIDogW25vcm1hbGl6ZVZOb2RlKGUpXSwKICBub3JtYWxpemVTbG90JDEgPSAoZSwgdCwgcikgPT4gewogICAgaWYgKHQuX24pIHJldHVybiB0OwogICAgY29uc3QgbiA9IHdpdGhDdHgoKC4uLmkpID0+IG5vcm1hbGl6ZVNsb3RWYWx1ZSh0KC4uLmkpKSwgcik7CiAgICByZXR1cm4gKG4uX2MgPSAhMSksIG47CiAgfSwKICBub3JtYWxpemVPYmplY3RTbG90cyA9IChlLCB0LCByKSA9PiB7CiAgICBjb25zdCBuID0gZS5fY3R4OwogICAgZm9yIChjb25zdCBpIGluIGUpIHsKICAgICAgaWYgKGlzSW50ZXJuYWxLZXkoaSkpIGNvbnRpbnVlOwogICAgICBjb25zdCBhID0gZVtpXTsKICAgICAgaWYgKGlzRnVuY3Rpb24kMShhKSkgdFtpXSA9IG5vcm1hbGl6ZVNsb3QkMShpLCBhLCBuKTsKICAgICAgZWxzZSBpZiAoYSAhPSBudWxsKSB7CiAgICAgICAgY29uc3QgbyA9IG5vcm1hbGl6ZVNsb3RWYWx1ZShhKTsKICAgICAgICB0W2ldID0gKCkgPT4gbzsKICAgICAgfQogICAgfQogIH0sCiAgbm9ybWFsaXplVk5vZGVTbG90cyA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gbm9ybWFsaXplU2xvdFZhbHVlKHQpOwogICAgZS5zbG90cy5kZWZhdWx0ID0gKCkgPT4gcjsKICB9LAogIGFzc2lnblNsb3RzID0gKGUsIHQsIHIpID0+IHsKICAgIGZvciAoY29uc3QgbiBpbiB0KSAociB8fCBuICE9PSAiXyIpICYmIChlW25dID0gdFtuXSk7CiAgfSwKICBpbml0U2xvdHMgPSAoZSwgdCwgcikgPT4gewogICAgY29uc3QgbiA9IChlLnNsb3RzID0gY3JlYXRlSW50ZXJuYWxPYmplY3QoKSk7CiAgICBpZiAoZS52bm9kZS5zaGFwZUZsYWcgJiAzMikgewogICAgICBjb25zdCBpID0gdC5fOwogICAgICBpCiAgICAgICAgPyAoYXNzaWduU2xvdHMobiwgdCwgciksIHIgJiYgZGVmKG4sICJfIiwgaSwgITApKQogICAgICAgIDogbm9ybWFsaXplT2JqZWN0U2xvdHModCwgbik7CiAgICB9IGVsc2UgdCAmJiBub3JtYWxpemVWTm9kZVNsb3RzKGUsIHQpOwogIH0sCiAgdXBkYXRlU2xvdHMgPSAoZSwgdCwgcikgPT4gewogICAgY29uc3QgeyB2bm9kZTogbiwgc2xvdHM6IGkgfSA9IGU7CiAgICBsZXQgYSA9ICEwLAogICAgICBvID0gRU1QVFlfT0JKOwogICAgaWYgKG4uc2hhcGVGbGFnICYgMzIpIHsKICAgICAgY29uc3QgbCA9IHQuXzsKICAgICAgbAogICAgICAgID8gciAmJiBsID09PSAxCiAgICAgICAgICA/IChhID0gITEpCiAgICAgICAgICA6IGFzc2lnblNsb3RzKGksIHQsIHIpCiAgICAgICAgOiAoKGEgPSAhdC4kc3RhYmxlKSwgbm9ybWFsaXplT2JqZWN0U2xvdHModCwgaSkpLAogICAgICAgIChvID0gdCk7CiAgICB9IGVsc2UgdCAmJiAobm9ybWFsaXplVk5vZGVTbG90cyhlLCB0KSwgKG8gPSB7IGRlZmF1bHQ6IDEgfSkpOwogICAgaWYgKGEpIGZvciAoY29uc3QgbCBpbiBpKSAhaXNJbnRlcm5hbEtleShsKSAmJiBvW2xdID09IG51bGwgJiYgZGVsZXRlIGlbbF07CiAgfSwKICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QgPSBxdWV1ZUVmZmVjdFdpdGhTdXNwZW5zZTsKZnVuY3Rpb24gY3JlYXRlUmVuZGVyZXIoZSkgewogIHJldHVybiBiYXNlQ3JlYXRlUmVuZGVyZXIoZSk7Cn0KZnVuY3Rpb24gY3JlYXRlSHlkcmF0aW9uUmVuZGVyZXIoZSkgewogIHJldHVybiBiYXNlQ3JlYXRlUmVuZGVyZXIoZSwgY3JlYXRlSHlkcmF0aW9uRnVuY3Rpb25zKTsKfQpmdW5jdGlvbiBiYXNlQ3JlYXRlUmVuZGVyZXIoZSwgdCkgewogIGNvbnN0IHIgPSBnZXRHbG9iYWxUaGlzJDEoKTsKICByLl9fVlVFX18gPSAhMDsKICBjb25zdCB7CiAgICBpbnNlcnQ6IG4sCiAgICByZW1vdmU6IGksCiAgICBwYXRjaFByb3A6IGEsCiAgICBjcmVhdGVFbGVtZW50OiBvLAogICAgY3JlYXRlVGV4dDogbCwKICAgIGNyZWF0ZUNvbW1lbnQ6IGMsCiAgICBzZXRUZXh0OiB1LAogICAgc2V0RWxlbWVudFRleHQ6IGQsCiAgICBwYXJlbnROb2RlOiBFLAogICAgbmV4dFNpYmxpbmc6IGIsCiAgICBzZXRTY29wZUlkOiBQID0gTk9PUCwKICAgIGluc2VydFN0YXRpY0NvbnRlbnQ6IFIsCiAgfSA9IGUsCiAgICBUID0gKAogICAgICBXLAogICAgICBHLAogICAgICB0ZSwKICAgICAgYWUgPSBudWxsLAogICAgICBzZSA9IG51bGwsCiAgICAgIGNlID0gbnVsbCwKICAgICAgZGUgPSB2b2lkIDAsCiAgICAgIGogPSBudWxsLAogICAgICBVID0gISFHLmR5bmFtaWNDaGlsZHJlbgogICAgKSA9PiB7CiAgICAgIGlmIChXID09PSBHKSByZXR1cm47CiAgICAgIFcgJiYKICAgICAgICAhaXNTYW1lVk5vZGVUeXBlKFcsIEcpICYmCiAgICAgICAgKChhZSA9IGllKFcpKSwgaGUoVywgc2UsIGNlLCAhMCksIChXID0gbnVsbCkpLAogICAgICAgIEcucGF0Y2hGbGFnID09PSAtMiAmJiAoKFUgPSAhMSksIChHLmR5bmFtaWNDaGlsZHJlbiA9IG51bGwpKTsKICAgICAgY29uc3QgeyB0eXBlOiBYLCByZWY6IG9lLCBzaGFwZUZsYWc6IGZlIH0gPSBHOwogICAgICBzd2l0Y2ggKFgpIHsKICAgICAgICBjYXNlIFRleHQ6CiAgICAgICAgICBNKFcsIEcsIHRlLCBhZSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIENvbW1lbnQ6CiAgICAgICAgICB4KFcsIEcsIHRlLCBhZSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIFN0YXRpYzoKICAgICAgICAgIFcgPT0gbnVsbCAmJiBrKEcsIHRlLCBhZSwgZGUpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBGcmFnbWVudDoKICAgICAgICAgIEsoVywgRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBmZSAmIDEKICAgICAgICAgICAgPyBPKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkKICAgICAgICAgICAgOiBmZSAmIDYKICAgICAgICAgICAgICA/IGVlKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkKICAgICAgICAgICAgICA6IChmZSAmIDY0IHx8IGZlICYgMTI4KSAmJgogICAgICAgICAgICAgIFgucHJvY2VzcyhXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUsIGdlKTsKICAgICAgfQogICAgICBvZSAhPSBudWxsICYmIHNlICYmIHNldFJlZihvZSwgVyAmJiBXLnJlZiwgY2UsIEcgfHwgVywgIUcpOwogICAgfSwKICAgIE0gPSAoVywgRywgdGUsIGFlKSA9PiB7CiAgICAgIGlmIChXID09IG51bGwpIG4oKEcuZWwgPSBsKEcuY2hpbGRyZW4pKSwgdGUsIGFlKTsKICAgICAgZWxzZSB7CiAgICAgICAgY29uc3Qgc2UgPSAoRy5lbCA9IFcuZWwpOwogICAgICAgIEcuY2hpbGRyZW4gIT09IFcuY2hpbGRyZW4gJiYgdShzZSwgRy5jaGlsZHJlbik7CiAgICAgIH0KICAgIH0sCiAgICB4ID0gKFcsIEcsIHRlLCBhZSkgPT4gewogICAgICBXID09IG51bGwgPyBuKChHLmVsID0gYyhHLmNoaWxkcmVuIHx8ICIiKSksIHRlLCBhZSkgOiAoRy5lbCA9IFcuZWwpOwogICAgfSwKICAgIGsgPSAoVywgRywgdGUsIGFlKSA9PiB7CiAgICAgIFtXLmVsLCBXLmFuY2hvcl0gPSBSKFcuY2hpbGRyZW4sIEcsIHRlLCBhZSwgVy5lbCwgVy5hbmNob3IpOwogICAgfSwKICAgIFMgPSAoeyBlbDogVywgYW5jaG9yOiBHIH0sIHRlLCBhZSkgPT4gewogICAgICBsZXQgc2U7CiAgICAgIGZvciAoOyBXICYmIFcgIT09IEc7KSAoc2UgPSBiKFcpKSwgbihXLCB0ZSwgYWUpLCAoVyA9IHNlKTsKICAgICAgbihHLCB0ZSwgYWUpOwogICAgfSwKICAgIEEgPSAoeyBlbDogVywgYW5jaG9yOiBHIH0pID0+IHsKICAgICAgbGV0IHRlOwogICAgICBmb3IgKDsgVyAmJiBXICE9PSBHOykgKHRlID0gYihXKSksIGkoVyksIChXID0gdGUpOwogICAgICBpKEcpOwogICAgfSwKICAgIE8gPSAoVywgRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKSA9PiB7CiAgICAgIEcudHlwZSA9PT0gInN2ZyIgPyAoZGUgPSAic3ZnIikgOiBHLnR5cGUgPT09ICJtYXRoIiAmJiAoZGUgPSAibWF0aG1sIiksCiAgICAgICAgVyA9PSBudWxsID8gRihHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUpIDogJChXLCBHLCBzZSwgY2UsIGRlLCBqLCBVKTsKICAgIH0sCiAgICBGID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaikgPT4gewogICAgICBsZXQgVSwgWDsKICAgICAgY29uc3QgeyBwcm9wczogb2UsIHNoYXBlRmxhZzogZmUsIHRyYW5zaXRpb246IHVlLCBkaXJzOiBaIH0gPSBXOwogICAgICBpZiAoCiAgICAgICAgKChVID0gVy5lbCA9IG8oVy50eXBlLCBjZSwgb2UgJiYgb2UuaXMsIG9lKSksCiAgICAgICAgICBmZSAmIDgKICAgICAgICAgICAgPyBkKFUsIFcuY2hpbGRyZW4pCiAgICAgICAgICAgIDogZmUgJiAxNiAmJgogICAgICAgICAgICBIKAogICAgICAgICAgICAgIFcuY2hpbGRyZW4sCiAgICAgICAgICAgICAgVSwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIGFlLAogICAgICAgICAgICAgIHNlLAogICAgICAgICAgICAgIHJlc29sdmVDaGlsZHJlbk5hbWVzcGFjZShXLCBjZSksCiAgICAgICAgICAgICAgZGUsCiAgICAgICAgICAgICAgagogICAgICAgICAgICApLAogICAgICAgICAgWiAmJiBpbnZva2VEaXJlY3RpdmVIb29rKFcsIG51bGwsIGFlLCAiY3JlYXRlZCIpLAogICAgICAgICAgRChVLCBXLCBXLnNjb3BlSWQsIGRlLCBhZSksCiAgICAgICAgICBvZSkKICAgICAgKSB7CiAgICAgICAgZm9yIChjb25zdCBfZSBpbiBvZSkKICAgICAgICAgIF9lICE9PSAidmFsdWUiICYmCiAgICAgICAgICAgICFpc1Jlc2VydmVkUHJvcChfZSkgJiYKICAgICAgICAgICAgYShVLCBfZSwgbnVsbCwgb2VbX2VdLCBjZSwgYWUpOwogICAgICAgICJ2YWx1ZSIgaW4gb2UgJiYgYShVLCAidmFsdWUiLCBudWxsLCBvZS52YWx1ZSwgY2UpLAogICAgICAgICAgKFggPSBvZS5vblZub2RlQmVmb3JlTW91bnQpICYmIGludm9rZVZOb2RlSG9vayhYLCBhZSwgVyk7CiAgICAgIH0KICAgICAgWiAmJiBpbnZva2VEaXJlY3RpdmVIb29rKFcsIG51bGwsIGFlLCAiYmVmb3JlTW91bnQiKTsKICAgICAgY29uc3QgbmUgPSBuZWVkVHJhbnNpdGlvbihzZSwgdWUpOwogICAgICBuZSAmJiB1ZS5iZWZvcmVFbnRlcihVKSwKICAgICAgICBuKFUsIEcsIHRlKSwKICAgICAgICAoKFggPSBvZSAmJiBvZS5vblZub2RlTW91bnRlZCkgfHwgbmUgfHwgWikgJiYKICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgWCAmJiBpbnZva2VWTm9kZUhvb2soWCwgYWUsIFcpLAogICAgICAgICAgICBuZSAmJiB1ZS5lbnRlcihVKSwKICAgICAgICAgICAgWiAmJiBpbnZva2VEaXJlY3RpdmVIb29rKFcsIG51bGwsIGFlLCAibW91bnRlZCIpOwogICAgICAgIH0sIHNlKTsKICAgIH0sCiAgICBEID0gKFcsIEcsIHRlLCBhZSwgc2UpID0+IHsKICAgICAgaWYgKCh0ZSAmJiBQKFcsIHRlKSwgYWUpKQogICAgICAgIGZvciAobGV0IGNlID0gMDsgY2UgPCBhZS5sZW5ndGg7IGNlKyspIFAoVywgYWVbY2VdKTsKICAgICAgaWYgKHNlKSB7CiAgICAgICAgbGV0IGNlID0gc2Uuc3ViVHJlZTsKICAgICAgICBpZiAoCiAgICAgICAgICBHID09PSBjZSB8fAogICAgICAgICAgKGlzU3VzcGVuc2UoY2UudHlwZSkgJiYgKGNlLnNzQ29udGVudCA9PT0gRyB8fCBjZS5zc0ZhbGxiYWNrID09PSBHKSkKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IGRlID0gc2Uudm5vZGU7CiAgICAgICAgICBEKFcsIGRlLCBkZS5zY29wZUlkLCBkZS5zbG90U2NvcGVJZHMsIHNlLnBhcmVudCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgSCA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUgPSAwKSA9PiB7CiAgICAgIGZvciAobGV0IFggPSBVOyBYIDwgVy5sZW5ndGg7IFgrKykgewogICAgICAgIGNvbnN0IG9lID0gKFdbWF0gPSBqID8gY2xvbmVJZk1vdW50ZWQoV1tYXSkgOiBub3JtYWxpemVWTm9kZShXW1hdKSk7CiAgICAgICAgVChudWxsLCBvZSwgRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqKTsKICAgICAgfQogICAgfSwKICAgICQgPSAoVywgRywgdGUsIGFlLCBzZSwgY2UsIGRlKSA9PiB7CiAgICAgIGNvbnN0IGogPSAoRy5lbCA9IFcuZWwpOwogICAgICBsZXQgeyBwYXRjaEZsYWc6IFUsIGR5bmFtaWNDaGlsZHJlbjogWCwgZGlyczogb2UgfSA9IEc7CiAgICAgIFUgfD0gVy5wYXRjaEZsYWcgJiAxNjsKICAgICAgY29uc3QgZmUgPSBXLnByb3BzIHx8IEVNUFRZX09CSiwKICAgICAgICB1ZSA9IEcucHJvcHMgfHwgRU1QVFlfT0JKOwogICAgICBsZXQgWjsKICAgICAgaWYgKAogICAgICAgICh0ZSAmJiB0b2dnbGVSZWN1cnNlKHRlLCAhMSksCiAgICAgICAgICAoWiA9IHVlLm9uVm5vZGVCZWZvcmVVcGRhdGUpICYmIGludm9rZVZOb2RlSG9vayhaLCB0ZSwgRywgVyksCiAgICAgICAgICBvZSAmJiBpbnZva2VEaXJlY3RpdmVIb29rKEcsIFcsIHRlLCAiYmVmb3JlVXBkYXRlIiksCiAgICAgICAgICB0ZSAmJiB0b2dnbGVSZWN1cnNlKHRlLCAhMCksCiAgICAgICAgICAoKGZlLmlubmVySFRNTCAmJiB1ZS5pbm5lckhUTUwgPT0gbnVsbCkgfHwKICAgICAgICAgICAgKGZlLnRleHRDb250ZW50ICYmIHVlLnRleHRDb250ZW50ID09IG51bGwpKSAmJgogICAgICAgICAgZChqLCAiIiksCiAgICAgICAgICBYCiAgICAgICAgICAgID8gcSgKICAgICAgICAgICAgICBXLmR5bmFtaWNDaGlsZHJlbiwKICAgICAgICAgICAgICBYLAogICAgICAgICAgICAgIGosCiAgICAgICAgICAgICAgdGUsCiAgICAgICAgICAgICAgYWUsCiAgICAgICAgICAgICAgcmVzb2x2ZUNoaWxkcmVuTmFtZXNwYWNlKEcsIHNlKSwKICAgICAgICAgICAgICBjZQogICAgICAgICAgICApCiAgICAgICAgICAgIDogZGUgfHwKICAgICAgICAgICAgTihXLCBHLCBqLCBudWxsLCB0ZSwgYWUsIHJlc29sdmVDaGlsZHJlbk5hbWVzcGFjZShHLCBzZSksIGNlLCAhMSksCiAgICAgICAgICBVID4gMCkKICAgICAgKSB7CiAgICAgICAgaWYgKFUgJiAxNikgSihqLCBmZSwgdWUsIHRlLCBzZSk7CiAgICAgICAgZWxzZSBpZiAoCiAgICAgICAgICAoVSAmIDIgJiYgZmUuY2xhc3MgIT09IHVlLmNsYXNzICYmIGEoaiwgImNsYXNzIiwgbnVsbCwgdWUuY2xhc3MsIHNlKSwKICAgICAgICAgICAgVSAmIDQgJiYgYShqLCAic3R5bGUiLCBmZS5zdHlsZSwgdWUuc3R5bGUsIHNlKSwKICAgICAgICAgICAgVSAmIDgpCiAgICAgICAgKSB7CiAgICAgICAgICBjb25zdCBuZSA9IEcuZHluYW1pY1Byb3BzOwogICAgICAgICAgZm9yIChsZXQgX2UgPSAwOyBfZSA8IG5lLmxlbmd0aDsgX2UrKykgewogICAgICAgICAgICBjb25zdCBiZSA9IG5lW19lXSwKICAgICAgICAgICAgICBUZSA9IGZlW2JlXSwKICAgICAgICAgICAgICBBZSA9IHVlW2JlXTsKICAgICAgICAgICAgKEFlICE9PSBUZSB8fCBiZSA9PT0gInZhbHVlIikgJiYgYShqLCBiZSwgVGUsIEFlLCBzZSwgdGUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBVICYgMSAmJiBXLmNoaWxkcmVuICE9PSBHLmNoaWxkcmVuICYmIGQoaiwgRy5jaGlsZHJlbik7CiAgICAgIH0gZWxzZSAhZGUgJiYgWCA9PSBudWxsICYmIEooaiwgZmUsIHVlLCB0ZSwgc2UpOwogICAgICAoKFogPSB1ZS5vblZub2RlVXBkYXRlZCkgfHwgb2UpICYmCiAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IHsKICAgICAgICAgIFogJiYgaW52b2tlVk5vZGVIb29rKFosIHRlLCBHLCBXKSwKICAgICAgICAgICAgb2UgJiYgaW52b2tlRGlyZWN0aXZlSG9vayhHLCBXLCB0ZSwgInVwZGF0ZWQiKTsKICAgICAgICB9LCBhZSk7CiAgICB9LAogICAgcSA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUpID0+IHsKICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBHLmxlbmd0aDsgaisrKSB7CiAgICAgICAgY29uc3QgVSA9IFdbal0sCiAgICAgICAgICBYID0gR1tqXSwKICAgICAgICAgIG9lID0KICAgICAgICAgICAgVS5lbCAmJgogICAgICAgICAgICAgIChVLnR5cGUgPT09IEZyYWdtZW50IHx8ICFpc1NhbWVWTm9kZVR5cGUoVSwgWCkgfHwgVS5zaGFwZUZsYWcgJiA3MCkKICAgICAgICAgICAgICA/IEUoVS5lbCkKICAgICAgICAgICAgICA6IHRlOwogICAgICAgIFQoVSwgWCwgb2UsIG51bGwsIGFlLCBzZSwgY2UsIGRlLCAhMCk7CiAgICAgIH0KICAgIH0sCiAgICBKID0gKFcsIEcsIHRlLCBhZSwgc2UpID0+IHsKICAgICAgaWYgKEcgIT09IHRlKSB7CiAgICAgICAgaWYgKEcgIT09IEVNUFRZX09CSikKICAgICAgICAgIGZvciAoY29uc3QgY2UgaW4gRykKICAgICAgICAgICAgIWlzUmVzZXJ2ZWRQcm9wKGNlKSAmJiAhKGNlIGluIHRlKSAmJiBhKFcsIGNlLCBHW2NlXSwgbnVsbCwgc2UsIGFlKTsKICAgICAgICBmb3IgKGNvbnN0IGNlIGluIHRlKSB7CiAgICAgICAgICBpZiAoaXNSZXNlcnZlZFByb3AoY2UpKSBjb250aW51ZTsKICAgICAgICAgIGNvbnN0IGRlID0gdGVbY2VdLAogICAgICAgICAgICBqID0gR1tjZV07CiAgICAgICAgICBkZSAhPT0gaiAmJiBjZSAhPT0gInZhbHVlIiAmJiBhKFcsIGNlLCBqLCBkZSwgc2UsIGFlKTsKICAgICAgICB9CiAgICAgICAgInZhbHVlIiBpbiB0ZSAmJiBhKFcsICJ2YWx1ZSIsIEcudmFsdWUsIHRlLnZhbHVlLCBzZSk7CiAgICAgIH0KICAgIH0sCiAgICBLID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkgPT4gewogICAgICBjb25zdCBYID0gKEcuZWwgPSBXID8gVy5lbCA6IGwoIiIpKSwKICAgICAgICBvZSA9IChHLmFuY2hvciA9IFcgPyBXLmFuY2hvciA6IGwoIiIpKTsKICAgICAgbGV0IHsgcGF0Y2hGbGFnOiBmZSwgZHluYW1pY0NoaWxkcmVuOiB1ZSwgc2xvdFNjb3BlSWRzOiBaIH0gPSBHOwogICAgICBaICYmIChqID0gaiA/IGouY29uY2F0KFopIDogWiksCiAgICAgICAgVyA9PSBudWxsCiAgICAgICAgICA/IChuKFgsIHRlLCBhZSksCiAgICAgICAgICAgIG4ob2UsIHRlLCBhZSksCiAgICAgICAgICAgIEgoRy5jaGlsZHJlbiB8fCBbXSwgdGUsIG9lLCBzZSwgY2UsIGRlLCBqLCBVKSkKICAgICAgICAgIDogZmUgPiAwICYmIGZlICYgNjQgJiYgdWUgJiYgVy5keW5hbWljQ2hpbGRyZW4KICAgICAgICAgICAgPyAocShXLmR5bmFtaWNDaGlsZHJlbiwgdWUsIHRlLCBzZSwgY2UsIGRlLCBqKSwKICAgICAgICAgICAgICAoRy5rZXkgIT0gbnVsbCB8fCAoc2UgJiYgRyA9PT0gc2Uuc3ViVHJlZSkpICYmCiAgICAgICAgICAgICAgdHJhdmVyc2VTdGF0aWNDaGlsZHJlbihXLCBHLCAhMCkpCiAgICAgICAgICAgIDogTihXLCBHLCB0ZSwgb2UsIHNlLCBjZSwgZGUsIGosIFUpOwogICAgfSwKICAgIGVlID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSkgPT4gewogICAgICAoRy5zbG90U2NvcGVJZHMgPSBqKSwKICAgICAgICBXID09IG51bGwKICAgICAgICAgID8gRy5zaGFwZUZsYWcgJiA1MTIKICAgICAgICAgICAgPyBzZS5jdHguYWN0aXZhdGUoRywgdGUsIGFlLCBkZSwgVSkKICAgICAgICAgICAgOiBsZShHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIFUpCiAgICAgICAgICA6IHJlKFcsIEcsIFUpOwogICAgfSwKICAgIGxlID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSkgPT4gewogICAgICBjb25zdCBqID0gKFcuY29tcG9uZW50ID0gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2UoVywgYWUsIHNlKSk7CiAgICAgIGlmICgKICAgICAgICAoaXNLZWVwQWxpdmUoVykgJiYgKGouY3R4LnJlbmRlcmVyID0gZ2UpLAogICAgICAgICAgc2V0dXBDb21wb25lbnQoaiwgITEsIGRlKSwKICAgICAgICAgIGouYXN5bmNEZXApCiAgICAgICkgewogICAgICAgIGlmICgoc2UgJiYgc2UucmVnaXN0ZXJEZXAoaiwgQiwgZGUpLCAhVy5lbCkpIHsKICAgICAgICAgIGNvbnN0IFUgPSAoai5zdWJUcmVlID0gY3JlYXRlVk5vZGUoQ29tbWVudCkpOwogICAgICAgICAgeChudWxsLCBVLCBHLCB0ZSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgQihqLCBXLCBHLCB0ZSwgc2UsIGNlLCBkZSk7CiAgICB9LAogICAgcmUgPSAoVywgRywgdGUpID0+IHsKICAgICAgY29uc3QgYWUgPSAoRy5jb21wb25lbnQgPSBXLmNvbXBvbmVudCk7CiAgICAgIGlmIChzaG91bGRVcGRhdGVDb21wb25lbnQoVywgRywgdGUpKQogICAgICAgIGlmIChhZS5hc3luY0RlcCAmJiAhYWUuYXN5bmNSZXNvbHZlZCkgewogICAgICAgICAgeihhZSwgRywgdGUpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0gZWxzZSAoYWUubmV4dCA9IEcpLCBhZS51cGRhdGUoKTsKICAgICAgZWxzZSAoRy5lbCA9IFcuZWwpLCAoYWUudm5vZGUgPSBHKTsKICAgIH0sCiAgICBCID0gKFcsIEcsIHRlLCBhZSwgc2UsIGNlLCBkZSkgPT4gewogICAgICBjb25zdCBqID0gKCkgPT4gewogICAgICAgIGlmIChXLmlzTW91bnRlZCkgewogICAgICAgICAgbGV0IHsgbmV4dDogZmUsIGJ1OiB1ZSwgdTogWiwgcGFyZW50OiBuZSwgdm5vZGU6IF9lIH0gPSBXOwogICAgICAgICAgewogICAgICAgICAgICBjb25zdCB3ZSA9IGxvY2F0ZU5vbkh5ZHJhdGVkQXN5bmNSb290KFcpOwogICAgICAgICAgICBpZiAod2UpIHsKICAgICAgICAgICAgICBmZSAmJiAoKGZlLmVsID0gX2UuZWwpLCB6KFcsIGZlLCBkZSkpLAogICAgICAgICAgICAgICAgd2UuYXN5bmNEZXAudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgIFcuaXNVbm1vdW50ZWQgfHwgaigpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgYmUgPSBmZSwKICAgICAgICAgICAgVGU7CiAgICAgICAgICB0b2dnbGVSZWN1cnNlKFcsICExKSwKICAgICAgICAgICAgZmUgPyAoKGZlLmVsID0gX2UuZWwpLCB6KFcsIGZlLCBkZSkpIDogKGZlID0gX2UpLAogICAgICAgICAgICB1ZSAmJiBpbnZva2VBcnJheUZucyh1ZSksCiAgICAgICAgICAgIChUZSA9IGZlLnByb3BzICYmIGZlLnByb3BzLm9uVm5vZGVCZWZvcmVVcGRhdGUpICYmCiAgICAgICAgICAgIGludm9rZVZOb2RlSG9vayhUZSwgbmUsIGZlLCBfZSksCiAgICAgICAgICAgIHRvZ2dsZVJlY3Vyc2UoVywgITApOwogICAgICAgICAgY29uc3QgQWUgPSByZW5kZXJDb21wb25lbnRSb290KFcpLAogICAgICAgICAgICBSZSA9IFcuc3ViVHJlZTsKICAgICAgICAgIChXLnN1YlRyZWUgPSBBZSksCiAgICAgICAgICAgIFQoUmUsIEFlLCBFKFJlLmVsKSwgaWUoUmUpLCBXLCBzZSwgY2UpLAogICAgICAgICAgICAoZmUuZWwgPSBBZS5lbCksCiAgICAgICAgICAgIGJlID09PSBudWxsICYmIHVwZGF0ZUhPQ0hvc3RFbChXLCBBZS5lbCksCiAgICAgICAgICAgIFogJiYgcXVldWVQb3N0UmVuZGVyRWZmZWN0KFosIHNlKSwKICAgICAgICAgICAgKFRlID0gZmUucHJvcHMgJiYgZmUucHJvcHMub25Wbm9kZVVwZGF0ZWQpICYmCiAgICAgICAgICAgIHF1ZXVlUG9zdFJlbmRlckVmZmVjdCgoKSA9PiBpbnZva2VWTm9kZUhvb2soVGUsIG5lLCBmZSwgX2UpLCBzZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGxldCBmZTsKICAgICAgICAgIGNvbnN0IHsgZWw6IHVlLCBwcm9wczogWiB9ID0gRywKICAgICAgICAgICAgeyBibTogbmUsIG06IF9lLCBwYXJlbnQ6IGJlLCByb290OiBUZSwgdHlwZTogQWUgfSA9IFcsCiAgICAgICAgICAgIFJlID0gaXNBc3luY1dyYXBwZXIoRyk7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICh0b2dnbGVSZWN1cnNlKFcsICExKSwKICAgICAgICAgICAgICBuZSAmJiBpbnZva2VBcnJheUZucyhuZSksCiAgICAgICAgICAgICAgIVJlICYmCiAgICAgICAgICAgICAgKGZlID0gWiAmJiBaLm9uVm5vZGVCZWZvcmVNb3VudCkgJiYKICAgICAgICAgICAgICBpbnZva2VWTm9kZUhvb2soZmUsIGJlLCBHKSwKICAgICAgICAgICAgICB0b2dnbGVSZWN1cnNlKFcsICEwKSwKICAgICAgICAgICAgICB1ZSAmJiBTZSkKICAgICAgICAgICkgewogICAgICAgICAgICBjb25zdCB3ZSA9ICgpID0+IHsKICAgICAgICAgICAgICAoVy5zdWJUcmVlID0gcmVuZGVyQ29tcG9uZW50Um9vdChXKSksCiAgICAgICAgICAgICAgICBTZSh1ZSwgVy5zdWJUcmVlLCBXLCBzZSwgbnVsbCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIFJlICYmIEFlLl9fYXN5bmNIeWRyYXRlID8gQWUuX19hc3luY0h5ZHJhdGUodWUsIFcsIHdlKSA6IHdlKCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBUZS5jZSAmJiBUZS5jZS5faW5qZWN0Q2hpbGRTdHlsZShBZSk7CiAgICAgICAgICAgIGNvbnN0IHdlID0gKFcuc3ViVHJlZSA9IHJlbmRlckNvbXBvbmVudFJvb3QoVykpOwogICAgICAgICAgICBUKG51bGwsIHdlLCB0ZSwgYWUsIFcsIHNlLCBjZSksIChHLmVsID0gd2UuZWwpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKAogICAgICAgICAgICAoX2UgJiYgcXVldWVQb3N0UmVuZGVyRWZmZWN0KF9lLCBzZSksCiAgICAgICAgICAgICAgIVJlICYmIChmZSA9IFogJiYgWi5vblZub2RlTW91bnRlZCkpCiAgICAgICAgICApIHsKICAgICAgICAgICAgY29uc3Qgd2UgPSBHOwogICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gaW52b2tlVk5vZGVIb29rKGZlLCBiZSwgd2UpLCBzZSk7CiAgICAgICAgICB9CiAgICAgICAgICAoRy5zaGFwZUZsYWcgJiAyNTYgfHwKICAgICAgICAgICAgKGJlICYmIGlzQXN5bmNXcmFwcGVyKGJlLnZub2RlKSAmJiBiZS52bm9kZS5zaGFwZUZsYWcgJiAyNTYpKSAmJgogICAgICAgICAgICBXLmEgJiYKICAgICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KFcuYSwgc2UpLAogICAgICAgICAgICAoVy5pc01vdW50ZWQgPSAhMCksCiAgICAgICAgICAgIChHID0gdGUgPSBhZSA9IG51bGwpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVy5zY29wZS5vbigpOwogICAgICBjb25zdCBVID0gKFcuZWZmZWN0ID0gbmV3IFJlYWN0aXZlRWZmZWN0KGopKTsKICAgICAgVy5zY29wZS5vZmYoKTsKICAgICAgY29uc3QgWCA9IChXLnVwZGF0ZSA9IFUucnVuLmJpbmQoVSkpLAogICAgICAgIG9lID0gKFcuam9iID0gVS5ydW5JZkRpcnR5LmJpbmQoVSkpOwogICAgICAob2UuaSA9IFcpLAogICAgICAgIChvZS5pZCA9IFcudWlkKSwKICAgICAgICAoVS5zY2hlZHVsZXIgPSAoKSA9PiBxdWV1ZUpvYihvZSkpLAogICAgICAgIHRvZ2dsZVJlY3Vyc2UoVywgITApLAogICAgICAgIFgoKTsKICAgIH0sCiAgICB6ID0gKFcsIEcsIHRlKSA9PiB7CiAgICAgIEcuY29tcG9uZW50ID0gVzsKICAgICAgY29uc3QgYWUgPSBXLnZub2RlLnByb3BzOwogICAgICAoVy52bm9kZSA9IEcpLAogICAgICAgIChXLm5leHQgPSBudWxsKSwKICAgICAgICB1cGRhdGVQcm9wcyhXLCBHLnByb3BzLCBhZSwgdGUpLAogICAgICAgIHVwZGF0ZVNsb3RzKFcsIEcuY2hpbGRyZW4sIHRlKSwKICAgICAgICBwYXVzZVRyYWNraW5nKCksCiAgICAgICAgZmx1c2hQcmVGbHVzaENicyhXKSwKICAgICAgICByZXNldFRyYWNraW5nKCk7CiAgICB9LAogICAgTiA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUgPSAhMSkgPT4gewogICAgICBjb25zdCBYID0gVyAmJiBXLmNoaWxkcmVuLAogICAgICAgIG9lID0gVyA/IFcuc2hhcGVGbGFnIDogMCwKICAgICAgICBmZSA9IEcuY2hpbGRyZW4sCiAgICAgICAgeyBwYXRjaEZsYWc6IHVlLCBzaGFwZUZsYWc6IFogfSA9IEc7CiAgICAgIGlmICh1ZSA+IDApIHsKICAgICAgICBpZiAodWUgJiAxMjgpIHsKICAgICAgICAgIFEoWCwgZmUsIHRlLCBhZSwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfSBlbHNlIGlmICh1ZSAmIDI1NikgewogICAgICAgICAgVihYLCBmZSwgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KICAgICAgWiAmIDgKICAgICAgICA/IChvZSAmIDE2ICYmIENlKFgsIHNlLCBjZSksIGZlICE9PSBYICYmIGQodGUsIGZlKSkKICAgICAgICA6IG9lICYgMTYKICAgICAgICAgID8gWiAmIDE2CiAgICAgICAgICAgID8gUShYLCBmZSwgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKQogICAgICAgICAgICA6IENlKFgsIHNlLCBjZSwgITApCiAgICAgICAgICA6IChvZSAmIDggJiYgZCh0ZSwgIiIpLCBaICYgMTYgJiYgSChmZSwgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVKSk7CiAgICB9LAogICAgViA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUpID0+IHsKICAgICAgKFcgPSBXIHx8IEVNUFRZX0FSUiksIChHID0gRyB8fCBFTVBUWV9BUlIpOwogICAgICBjb25zdCBYID0gVy5sZW5ndGgsCiAgICAgICAgb2UgPSBHLmxlbmd0aCwKICAgICAgICBmZSA9IE1hdGgubWluKFgsIG9lKTsKICAgICAgbGV0IHVlOwogICAgICBmb3IgKHVlID0gMDsgdWUgPCBmZTsgdWUrKykgewogICAgICAgIGNvbnN0IFogPSAoR1t1ZV0gPSBVID8gY2xvbmVJZk1vdW50ZWQoR1t1ZV0pIDogbm9ybWFsaXplVk5vZGUoR1t1ZV0pKTsKICAgICAgICBUKFdbdWVdLCBaLCB0ZSwgbnVsbCwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgIH0KICAgICAgWCA+IG9lID8gQ2UoVywgc2UsIGNlLCAhMCwgITEsIGZlKSA6IEgoRywgdGUsIGFlLCBzZSwgY2UsIGRlLCBqLCBVLCBmZSk7CiAgICB9LAogICAgUSA9IChXLCBHLCB0ZSwgYWUsIHNlLCBjZSwgZGUsIGosIFUpID0+IHsKICAgICAgbGV0IFggPSAwOwogICAgICBjb25zdCBvZSA9IEcubGVuZ3RoOwogICAgICBsZXQgZmUgPSBXLmxlbmd0aCAtIDEsCiAgICAgICAgdWUgPSBvZSAtIDE7CiAgICAgIGZvciAoOyBYIDw9IGZlICYmIFggPD0gdWU7KSB7CiAgICAgICAgY29uc3QgWiA9IFdbWF0sCiAgICAgICAgICBuZSA9IChHW1hdID0gVSA/IGNsb25lSWZNb3VudGVkKEdbWF0pIDogbm9ybWFsaXplVk5vZGUoR1tYXSkpOwogICAgICAgIGlmIChpc1NhbWVWTm9kZVR5cGUoWiwgbmUpKSBUKFosIG5lLCB0ZSwgbnVsbCwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgICAgZWxzZSBicmVhazsKICAgICAgICBYKys7CiAgICAgIH0KICAgICAgZm9yICg7IFggPD0gZmUgJiYgWCA8PSB1ZTspIHsKICAgICAgICBjb25zdCBaID0gV1tmZV0sCiAgICAgICAgICBuZSA9IChHW3VlXSA9IFUgPyBjbG9uZUlmTW91bnRlZChHW3VlXSkgOiBub3JtYWxpemVWTm9kZShHW3VlXSkpOwogICAgICAgIGlmIChpc1NhbWVWTm9kZVR5cGUoWiwgbmUpKSBUKFosIG5lLCB0ZSwgbnVsbCwgc2UsIGNlLCBkZSwgaiwgVSk7CiAgICAgICAgZWxzZSBicmVhazsKICAgICAgICBmZS0tLCB1ZS0tOwogICAgICB9CiAgICAgIGlmIChYID4gZmUpIHsKICAgICAgICBpZiAoWCA8PSB1ZSkgewogICAgICAgICAgY29uc3QgWiA9IHVlICsgMSwKICAgICAgICAgICAgbmUgPSBaIDwgb2UgPyBHW1pdLmVsIDogYWU7CiAgICAgICAgICBmb3IgKDsgWCA8PSB1ZTspCiAgICAgICAgICAgIFQoCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAoR1tYXSA9IFUgPyBjbG9uZUlmTW91bnRlZChHW1hdKSA6IG5vcm1hbGl6ZVZOb2RlKEdbWF0pKSwKICAgICAgICAgICAgICB0ZSwKICAgICAgICAgICAgICBuZSwKICAgICAgICAgICAgICBzZSwKICAgICAgICAgICAgICBjZSwKICAgICAgICAgICAgICBkZSwKICAgICAgICAgICAgICBqLAogICAgICAgICAgICAgIFUKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBYKys7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKFggPiB1ZSkgZm9yICg7IFggPD0gZmU7KSBoZShXW1hdLCBzZSwgY2UsICEwKSwgWCsrOwogICAgICBlbHNlIHsKICAgICAgICBjb25zdCBaID0gWCwKICAgICAgICAgIG5lID0gWCwKICAgICAgICAgIF9lID0gbmV3IE1hcCgpOwogICAgICAgIGZvciAoWCA9IG5lOyBYIDw9IHVlOyBYKyspIHsKICAgICAgICAgIGNvbnN0IHhlID0gKEdbWF0gPSBVID8gY2xvbmVJZk1vdW50ZWQoR1tYXSkgOiBub3JtYWxpemVWTm9kZShHW1hdKSk7CiAgICAgICAgICB4ZS5rZXkgIT0gbnVsbCAmJiBfZS5zZXQoeGUua2V5LCBYKTsKICAgICAgICB9CiAgICAgICAgbGV0IGJlLAogICAgICAgICAgVGUgPSAwOwogICAgICAgIGNvbnN0IEFlID0gdWUgLSBuZSArIDE7CiAgICAgICAgbGV0IFJlID0gITEsCiAgICAgICAgICB3ZSA9IDA7CiAgICAgICAgY29uc3QgSWUgPSBuZXcgQXJyYXkoQWUpOwogICAgICAgIGZvciAoWCA9IDA7IFggPCBBZTsgWCsrKSBJZVtYXSA9IDA7CiAgICAgICAgZm9yIChYID0gWjsgWCA8PSBmZTsgWCsrKSB7CiAgICAgICAgICBjb25zdCB4ZSA9IFdbWF07CiAgICAgICAgICBpZiAoVGUgPj0gQWUpIHsKICAgICAgICAgICAgaGUoeGUsIHNlLCBjZSwgITApOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBrZTsKICAgICAgICAgIGlmICh4ZS5rZXkgIT0gbnVsbCkga2UgPSBfZS5nZXQoeGUua2V5KTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZm9yIChiZSA9IG5lOyBiZSA8PSB1ZTsgYmUrKykKICAgICAgICAgICAgICBpZiAoSWVbYmUgLSBuZV0gPT09IDAgJiYgaXNTYW1lVk5vZGVUeXBlKHhlLCBHW2JlXSkpIHsKICAgICAgICAgICAgICAgIGtlID0gYmU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICBrZSA9PT0gdm9pZCAwCiAgICAgICAgICAgID8gaGUoeGUsIHNlLCBjZSwgITApCiAgICAgICAgICAgIDogKChJZVtrZSAtIG5lXSA9IFggKyAxKSwKICAgICAgICAgICAgICBrZSA+PSB3ZSA/ICh3ZSA9IGtlKSA6IChSZSA9ICEwKSwKICAgICAgICAgICAgICBUKHhlLCBHW2tlXSwgdGUsIG51bGwsIHNlLCBjZSwgZGUsIGosIFUpLAogICAgICAgICAgICAgIFRlKyspOwogICAgICAgIH0KICAgICAgICBjb25zdCBMZSA9IFJlID8gZ2V0U2VxdWVuY2UoSWUpIDogRU1QVFlfQVJSOwogICAgICAgIGZvciAoYmUgPSBMZS5sZW5ndGggLSAxLCBYID0gQWUgLSAxOyBYID49IDA7IFgtLSkgewogICAgICAgICAgY29uc3QgeGUgPSBuZSArIFgsCiAgICAgICAgICAgIGtlID0gR1t4ZV0sCiAgICAgICAgICAgIE9lID0geGUgKyAxIDwgb2UgPyBHW3hlICsgMV0uZWwgOiBhZTsKICAgICAgICAgIEllW1hdID09PSAwCiAgICAgICAgICAgID8gVChudWxsLCBrZSwgdGUsIE9lLCBzZSwgY2UsIGRlLCBqLCBVKQogICAgICAgICAgICA6IFJlICYmIChiZSA8IDAgfHwgWCAhPT0gTGVbYmVdID8gWShrZSwgdGUsIE9lLCAyKSA6IGJlLS0pOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIFkgPSAoVywgRywgdGUsIGFlLCBzZSA9IG51bGwpID0+IHsKICAgICAgY29uc3QgeyBlbDogY2UsIHR5cGU6IGRlLCB0cmFuc2l0aW9uOiBqLCBjaGlsZHJlbjogVSwgc2hhcGVGbGFnOiBYIH0gPSBXOwogICAgICBpZiAoWCAmIDYpIHsKICAgICAgICBZKFcuY29tcG9uZW50LnN1YlRyZWUsIEcsIHRlLCBhZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChYICYgMTI4KSB7CiAgICAgICAgVy5zdXNwZW5zZS5tb3ZlKEcsIHRlLCBhZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChYICYgNjQpIHsKICAgICAgICBkZS5tb3ZlKFcsIEcsIHRlLCBnZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChkZSA9PT0gRnJhZ21lbnQpIHsKICAgICAgICBuKGNlLCBHLCB0ZSk7CiAgICAgICAgZm9yIChsZXQgZmUgPSAwOyBmZSA8IFUubGVuZ3RoOyBmZSsrKSBZKFVbZmVdLCBHLCB0ZSwgYWUpOwogICAgICAgIG4oVy5hbmNob3IsIEcsIHRlKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKGRlID09PSBTdGF0aWMpIHsKICAgICAgICBTKFcsIEcsIHRlKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKGFlICE9PSAyICYmIFggJiAxICYmIGopCiAgICAgICAgaWYgKGFlID09PSAwKQogICAgICAgICAgai5iZWZvcmVFbnRlcihjZSksCiAgICAgICAgICAgIG4oY2UsIEcsIHRlKSwKICAgICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IGouZW50ZXIoY2UpLCBzZSk7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBjb25zdCB7IGxlYXZlOiBmZSwgZGVsYXlMZWF2ZTogdWUsIGFmdGVyTGVhdmU6IFogfSA9IGosCiAgICAgICAgICAgIG5lID0gKCkgPT4gbihjZSwgRywgdGUpLAogICAgICAgICAgICBfZSA9ICgpID0+IHsKICAgICAgICAgICAgICBmZShjZSwgKCkgPT4gewogICAgICAgICAgICAgICAgbmUoKSwgWiAmJiBaKCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB1ZSA/IHVlKGNlLCBuZSwgX2UpIDogX2UoKTsKICAgICAgICB9CiAgICAgIGVsc2UgbihjZSwgRywgdGUpOwogICAgfSwKICAgIGhlID0gKFcsIEcsIHRlLCBhZSA9ICExLCBzZSA9ICExKSA9PiB7CiAgICAgIGNvbnN0IHsKICAgICAgICB0eXBlOiBjZSwKICAgICAgICBwcm9wczogZGUsCiAgICAgICAgcmVmOiBqLAogICAgICAgIGNoaWxkcmVuOiBVLAogICAgICAgIGR5bmFtaWNDaGlsZHJlbjogWCwKICAgICAgICBzaGFwZUZsYWc6IG9lLAogICAgICAgIHBhdGNoRmxhZzogZmUsCiAgICAgICAgZGlyczogdWUsCiAgICAgICAgY2FjaGVJbmRleDogWiwKICAgICAgfSA9IFc7CiAgICAgIGlmICgKICAgICAgICAoZmUgPT09IC0yICYmIChzZSA9ICExKSwKICAgICAgICAgIGogIT0gbnVsbCAmJiBzZXRSZWYoaiwgbnVsbCwgdGUsIFcsICEwKSwKICAgICAgICAgIFogIT0gbnVsbCAmJiAoRy5yZW5kZXJDYWNoZVtaXSA9IHZvaWQgMCksCiAgICAgICAgICBvZSAmIDI1NikKICAgICAgKSB7CiAgICAgICAgRy5jdHguZGVhY3RpdmF0ZShXKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgbmUgPSBvZSAmIDEgJiYgdWUsCiAgICAgICAgX2UgPSAhaXNBc3luY1dyYXBwZXIoVyk7CiAgICAgIGxldCBiZTsKICAgICAgaWYgKAogICAgICAgIChfZSAmJgogICAgICAgICAgKGJlID0gZGUgJiYgZGUub25Wbm9kZUJlZm9yZVVubW91bnQpICYmCiAgICAgICAgICBpbnZva2VWTm9kZUhvb2soYmUsIEcsIFcpLAogICAgICAgICAgb2UgJiA2KQogICAgICApCiAgICAgICAgUGUoVy5jb21wb25lbnQsIHRlLCBhZSk7CiAgICAgIGVsc2UgewogICAgICAgIGlmIChvZSAmIDEyOCkgewogICAgICAgICAgVy5zdXNwZW5zZS51bm1vdW50KHRlLCBhZSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIG5lICYmIGludm9rZURpcmVjdGl2ZUhvb2soVywgbnVsbCwgRywgImJlZm9yZVVubW91bnQiKSwKICAgICAgICAgIG9lICYgNjQKICAgICAgICAgICAgPyBXLnR5cGUucmVtb3ZlKFcsIEcsIHRlLCBnZSwgYWUpCiAgICAgICAgICAgIDogWCAmJiAhWC5oYXNPbmNlICYmIChjZSAhPT0gRnJhZ21lbnQgfHwgKGZlID4gMCAmJiBmZSAmIDY0KSkKICAgICAgICAgICAgICA/IENlKFgsIEcsIHRlLCAhMSwgITApCiAgICAgICAgICAgICAgOiAoKGNlID09PSBGcmFnbWVudCAmJiBmZSAmIDM4NCkgfHwgKCFzZSAmJiBvZSAmIDE2KSkgJiYKICAgICAgICAgICAgICBDZShVLCBHLCB0ZSksCiAgICAgICAgICBhZSAmJiB5ZShXKTsKICAgICAgfQogICAgICAoKF9lICYmIChiZSA9IGRlICYmIGRlLm9uVm5vZGVVbm1vdW50ZWQpKSB8fCBuZSkgJiYKICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgYmUgJiYgaW52b2tlVk5vZGVIb29rKGJlLCBHLCBXKSwKICAgICAgICAgICAgbmUgJiYgaW52b2tlRGlyZWN0aXZlSG9vayhXLCBudWxsLCBHLCAidW5tb3VudGVkIik7CiAgICAgICAgfSwgdGUpOwogICAgfSwKICAgIHllID0gKFcpID0+IHsKICAgICAgY29uc3QgeyB0eXBlOiBHLCBlbDogdGUsIGFuY2hvcjogYWUsIHRyYW5zaXRpb246IHNlIH0gPSBXOwogICAgICBpZiAoRyA9PT0gRnJhZ21lbnQpIHsKICAgICAgICB2ZSh0ZSwgYWUpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBpZiAoRyA9PT0gU3RhdGljKSB7CiAgICAgICAgQShXKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgY2UgPSAoKSA9PiB7CiAgICAgICAgaSh0ZSksIHNlICYmICFzZS5wZXJzaXN0ZWQgJiYgc2UuYWZ0ZXJMZWF2ZSAmJiBzZS5hZnRlckxlYXZlKCk7CiAgICAgIH07CiAgICAgIGlmIChXLnNoYXBlRmxhZyAmIDEgJiYgc2UgJiYgIXNlLnBlcnNpc3RlZCkgewogICAgICAgIGNvbnN0IHsgbGVhdmU6IGRlLCBkZWxheUxlYXZlOiBqIH0gPSBzZSwKICAgICAgICAgIFUgPSAoKSA9PiBkZSh0ZSwgY2UpOwogICAgICAgIGogPyBqKFcuZWwsIGNlLCBVKSA6IFUoKTsKICAgICAgfSBlbHNlIGNlKCk7CiAgICB9LAogICAgdmUgPSAoVywgRykgPT4gewogICAgICBsZXQgdGU7CiAgICAgIGZvciAoOyBXICE9PSBHOykgKHRlID0gYihXKSksIGkoVyksIChXID0gdGUpOwogICAgICBpKEcpOwogICAgfSwKICAgIFBlID0gKFcsIEcsIHRlKSA9PiB7CiAgICAgIGNvbnN0IHsgYnVtOiBhZSwgc2NvcGU6IHNlLCBqb2I6IGNlLCBzdWJUcmVlOiBkZSwgdW06IGosIG06IFUsIGE6IFggfSA9IFc7CiAgICAgIGludmFsaWRhdGVNb3VudChVKSwKICAgICAgICBpbnZhbGlkYXRlTW91bnQoWCksCiAgICAgICAgYWUgJiYgaW52b2tlQXJyYXlGbnMoYWUpLAogICAgICAgIHNlLnN0b3AoKSwKICAgICAgICBjZSAmJiAoKGNlLmZsYWdzIHw9IDgpLCBoZShkZSwgVywgRywgdGUpKSwKICAgICAgICBqICYmIHF1ZXVlUG9zdFJlbmRlckVmZmVjdChqLCBHKSwKICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gewogICAgICAgICAgVy5pc1VubW91bnRlZCA9ICEwOwogICAgICAgIH0sIEcpLAogICAgICAgIEcgJiYKICAgICAgICBHLnBlbmRpbmdCcmFuY2ggJiYKICAgICAgICAhRy5pc1VubW91bnRlZCAmJgogICAgICAgIFcuYXN5bmNEZXAgJiYKICAgICAgICAhVy5hc3luY1Jlc29sdmVkICYmCiAgICAgICAgVy5zdXNwZW5zZUlkID09PSBHLnBlbmRpbmdJZCAmJgogICAgICAgIChHLmRlcHMtLSwgRy5kZXBzID09PSAwICYmIEcucmVzb2x2ZSgpKTsKICAgIH0sCiAgICBDZSA9IChXLCBHLCB0ZSwgYWUgPSAhMSwgc2UgPSAhMSwgY2UgPSAwKSA9PiB7CiAgICAgIGZvciAobGV0IGRlID0gY2U7IGRlIDwgVy5sZW5ndGg7IGRlKyspIGhlKFdbZGVdLCBHLCB0ZSwgYWUsIHNlKTsKICAgIH0sCiAgICBpZSA9IChXKSA9PiB7CiAgICAgIGlmIChXLnNoYXBlRmxhZyAmIDYpIHJldHVybiBpZShXLmNvbXBvbmVudC5zdWJUcmVlKTsKICAgICAgaWYgKFcuc2hhcGVGbGFnICYgMTI4KSByZXR1cm4gVy5zdXNwZW5zZS5uZXh0KCk7CiAgICAgIGNvbnN0IEcgPSBiKFcuYW5jaG9yIHx8IFcuZWwpLAogICAgICAgIHRlID0gRyAmJiBHW1RlbGVwb3J0RW5kS2V5XTsKICAgICAgcmV0dXJuIHRlID8gYih0ZSkgOiBHOwogICAgfTsKICBsZXQgbWUgPSAhMTsKICBjb25zdCBwZSA9IChXLCBHLCB0ZSkgPT4gewogICAgVyA9PSBudWxsCiAgICAgID8gRy5fdm5vZGUgJiYgaGUoRy5fdm5vZGUsIG51bGwsIG51bGwsICEwKQogICAgICA6IFQoRy5fdm5vZGUgfHwgbnVsbCwgVywgRywgbnVsbCwgbnVsbCwgbnVsbCwgdGUpLAogICAgICAoRy5fdm5vZGUgPSBXKSwKICAgICAgbWUgfHwgKChtZSA9ICEwKSwgZmx1c2hQcmVGbHVzaENicygpLCBmbHVzaFBvc3RGbHVzaENicygpLCAobWUgPSAhMSkpOwogIH0sCiAgICBnZSA9IHsKICAgICAgcDogVCwKICAgICAgdW06IGhlLAogICAgICBtOiBZLAogICAgICByOiB5ZSwKICAgICAgbXQ6IGxlLAogICAgICBtYzogSCwKICAgICAgcGM6IE4sCiAgICAgIHBiYzogcSwKICAgICAgbjogaWUsCiAgICAgIG86IGUsCiAgICB9OwogIGxldCBFZSwgU2U7CiAgcmV0dXJuICgKICAgIHQgJiYgKFtFZSwgU2VdID0gdChnZSkpLAogICAgeyByZW5kZXI6IHBlLCBoeWRyYXRlOiBFZSwgY3JlYXRlQXBwOiBjcmVhdGVBcHBBUEkocGUsIEVlKSB9CiAgKTsKfQpmdW5jdGlvbiByZXNvbHZlQ2hpbGRyZW5OYW1lc3BhY2UoeyB0eXBlOiBlLCBwcm9wczogdCB9LCByKSB7CiAgcmV0dXJuIChyID09PSAic3ZnIiAmJiBlID09PSAiZm9yZWlnbk9iamVjdCIpIHx8CiAgICAociA9PT0gIm1hdGhtbCIgJiYKICAgICAgZSA9PT0gImFubm90YXRpb24teG1sIiAmJgogICAgICB0ICYmCiAgICAgIHQuZW5jb2RpbmcgJiYKICAgICAgdC5lbmNvZGluZy5pbmNsdWRlcygiaHRtbCIpKQogICAgPyB2b2lkIDAKICAgIDogcjsKfQpmdW5jdGlvbiB0b2dnbGVSZWN1cnNlKHsgZWZmZWN0OiBlLCBqb2I6IHQgfSwgcikgewogIHIgPyAoKGUuZmxhZ3MgfD0gMzIpLCAodC5mbGFncyB8PSA0KSkgOiAoKGUuZmxhZ3MgJj0gLTMzKSwgKHQuZmxhZ3MgJj0gLTUpKTsKfQpmdW5jdGlvbiBuZWVkVHJhbnNpdGlvbihlLCB0KSB7CiAgcmV0dXJuICghZSB8fCAoZSAmJiAhZS5wZW5kaW5nQnJhbmNoKSkgJiYgdCAmJiAhdC5wZXJzaXN0ZWQ7Cn0KZnVuY3Rpb24gdHJhdmVyc2VTdGF0aWNDaGlsZHJlbihlLCB0LCByID0gITEpIHsKICBjb25zdCBuID0gZS5jaGlsZHJlbiwKICAgIGkgPSB0LmNoaWxkcmVuOwogIGlmIChpc0FycmF5JDIobikgJiYgaXNBcnJheSQyKGkpKQogICAgZm9yIChsZXQgYSA9IDA7IGEgPCBuLmxlbmd0aDsgYSsrKSB7CiAgICAgIGNvbnN0IG8gPSBuW2FdOwogICAgICBsZXQgbCA9IGlbYV07CiAgICAgIGwuc2hhcGVGbGFnICYgMSAmJgogICAgICAgICFsLmR5bmFtaWNDaGlsZHJlbiAmJgogICAgICAgICgobC5wYXRjaEZsYWcgPD0gMCB8fCBsLnBhdGNoRmxhZyA9PT0gMzIpICYmCiAgICAgICAgICAoKGwgPSBpW2FdID0gY2xvbmVJZk1vdW50ZWQoaVthXSkpLCAobC5lbCA9IG8uZWwpKSwKICAgICAgICAgICFyICYmIGwucGF0Y2hGbGFnICE9PSAtMiAmJiB0cmF2ZXJzZVN0YXRpY0NoaWxkcmVuKG8sIGwpKSwKICAgICAgICBsLnR5cGUgPT09IFRleHQgJiYgKGwuZWwgPSBvLmVsKTsKICAgIH0KfQpmdW5jdGlvbiBnZXRTZXF1ZW5jZShlKSB7CiAgY29uc3QgdCA9IGUuc2xpY2UoKSwKICAgIHIgPSBbMF07CiAgbGV0IG4sIGksIGEsIG8sIGw7CiAgY29uc3QgYyA9IGUubGVuZ3RoOwogIGZvciAobiA9IDA7IG4gPCBjOyBuKyspIHsKICAgIGNvbnN0IHUgPSBlW25dOwogICAgaWYgKHUgIT09IDApIHsKICAgICAgaWYgKCgoaSA9IHJbci5sZW5ndGggLSAxXSksIGVbaV0gPCB1KSkgewogICAgICAgICh0W25dID0gaSksIHIucHVzaChuKTsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBmb3IgKGEgPSAwLCBvID0gci5sZW5ndGggLSAxOyBhIDwgbzspCiAgICAgICAgKGwgPSAoYSArIG8pID4+IDEpLCBlW3JbbF1dIDwgdSA/IChhID0gbCArIDEpIDogKG8gPSBsKTsKICAgICAgdSA8IGVbclthXV0gJiYgKGEgPiAwICYmICh0W25dID0gclthIC0gMV0pLCAoclthXSA9IG4pKTsKICAgIH0KICB9CiAgZm9yIChhID0gci5sZW5ndGgsIG8gPSByW2EgLSAxXTsgYS0tID4gMDspIChyW2FdID0gbyksIChvID0gdFtvXSk7CiAgcmV0dXJuIHI7Cn0KZnVuY3Rpb24gbG9jYXRlTm9uSHlkcmF0ZWRBc3luY1Jvb3QoZSkgewogIGNvbnN0IHQgPSBlLnN1YlRyZWUuY29tcG9uZW50OwogIGlmICh0KQogICAgcmV0dXJuIHQuYXN5bmNEZXAgJiYgIXQuYXN5bmNSZXNvbHZlZCA/IHQgOiBsb2NhdGVOb25IeWRyYXRlZEFzeW5jUm9vdCh0KTsKfQpmdW5jdGlvbiBpbnZhbGlkYXRlTW91bnQoZSkgewogIGlmIChlKSBmb3IgKGxldCB0ID0gMDsgdCA8IGUubGVuZ3RoOyB0KyspIGVbdF0uZmxhZ3MgfD0gODsKfQpjb25zdCBzc3JDb250ZXh0S2V5ID0gU3ltYm9sLmZvcigidi1zY3giKSwKICB1c2VTU1JDb250ZXh0ID0gKCkgPT4gaW5qZWN0JDEoc3NyQ29udGV4dEtleSk7CmZ1bmN0aW9uIHdhdGNoRWZmZWN0KGUsIHQpIHsKICByZXR1cm4gZG9XYXRjaChlLCBudWxsLCB0KTsKfQpmdW5jdGlvbiB3YXRjaFBvc3RFZmZlY3QoZSwgdCkgewogIHJldHVybiBkb1dhdGNoKGUsIG51bGwsIHsgZmx1c2g6ICJwb3N0IiB9KTsKfQpmdW5jdGlvbiB3YXRjaFN5bmNFZmZlY3QoZSwgdCkgewogIHJldHVybiBkb1dhdGNoKGUsIG51bGwsIHsgZmx1c2g6ICJzeW5jIiB9KTsKfQpmdW5jdGlvbiB3YXRjaChlLCB0LCByKSB7CiAgcmV0dXJuIGRvV2F0Y2goZSwgdCwgcik7Cn0KZnVuY3Rpb24gZG9XYXRjaChlLCB0LCByID0gRU1QVFlfT0JKKSB7CiAgY29uc3QgeyBpbW1lZGlhdGU6IG4sIGRlZXA6IGksIGZsdXNoOiBhLCBvbmNlOiBvIH0gPSByLAogICAgbCA9IGV4dGVuZCh7fSwgciksCiAgICBjID0gKHQgJiYgbikgfHwgKCF0ICYmIGEgIT09ICJwb3N0Iik7CiAgbGV0IHU7CiAgaWYgKGlzSW5TU1JDb21wb25lbnRTZXR1cCkgewogICAgaWYgKGEgPT09ICJzeW5jIikgewogICAgICBjb25zdCBQID0gdXNlU1NSQ29udGV4dCgpOwogICAgICB1ID0gUC5fX3dhdGNoZXJIYW5kbGVzIHx8IChQLl9fd2F0Y2hlckhhbmRsZXMgPSBbXSk7CiAgICB9IGVsc2UgaWYgKCFjKSB7CiAgICAgIGNvbnN0IFAgPSAoKSA9PiB7IH07CiAgICAgIHJldHVybiAoUC5zdG9wID0gTk9PUCksIChQLnJlc3VtZSA9IE5PT1ApLCAoUC5wYXVzZSA9IE5PT1ApLCBQOwogICAgfQogIH0KICBjb25zdCBkID0gY3VycmVudEluc3RhbmNlOwogIGwuY2FsbCA9IChQLCBSLCBUKSA9PiBjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhQLCBkLCBSLCBUKTsKICBsZXQgRSA9ICExOwogIGEgPT09ICJwb3N0IgogICAgPyAobC5zY2hlZHVsZXIgPSAoUCkgPT4gewogICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoUCwgZCAmJiBkLnN1c3BlbnNlKTsKICAgIH0pCiAgICA6IGEgIT09ICJzeW5jIiAmJgogICAgKChFID0gITApLAogICAgICAobC5zY2hlZHVsZXIgPSAoUCwgUikgPT4gewogICAgICAgIFIgPyBQKCkgOiBxdWV1ZUpvYihQKTsKICAgICAgfSkpLAogICAgKGwuYXVnbWVudEpvYiA9IChQKSA9PiB7CiAgICAgIHQgJiYgKFAuZmxhZ3MgfD0gNCksCiAgICAgICAgRSAmJiAoKFAuZmxhZ3MgfD0gMiksIGQgJiYgKChQLmlkID0gZC51aWQpLCAoUC5pID0gZCkpKTsKICAgIH0pOwogIGNvbnN0IGIgPSB3YXRjaCQxKGUsIHQsIGwpOwogIHJldHVybiBpc0luU1NSQ29tcG9uZW50U2V0dXAgJiYgKHUgPyB1LnB1c2goYikgOiBjICYmIGIoKSksIGI7Cn0KZnVuY3Rpb24gaW5zdGFuY2VXYXRjaChlLCB0LCByKSB7CiAgY29uc3QgbiA9IHRoaXMucHJveHksCiAgICBpID0gaXNTdHJpbmckMShlKQogICAgICA/IGUuaW5jbHVkZXMoIi4iKQogICAgICAgID8gY3JlYXRlUGF0aEdldHRlcihuLCBlKQogICAgICAgIDogKCkgPT4gbltlXQogICAgICA6IGUuYmluZChuLCBuKTsKICBsZXQgYTsKICBpc0Z1bmN0aW9uJDEodCkgPyAoYSA9IHQpIDogKChhID0gdC5oYW5kbGVyKSwgKHIgPSB0KSk7CiAgY29uc3QgbyA9IHNldEN1cnJlbnRJbnN0YW5jZSh0aGlzKSwKICAgIGwgPSBkb1dhdGNoKGksIGEuYmluZChuKSwgcik7CiAgcmV0dXJuIG8oKSwgbDsKfQpmdW5jdGlvbiBjcmVhdGVQYXRoR2V0dGVyKGUsIHQpIHsKICBjb25zdCByID0gdC5zcGxpdCgiLiIpOwogIHJldHVybiAoKSA9PiB7CiAgICBsZXQgbiA9IGU7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHIubGVuZ3RoICYmIG47IGkrKykgbiA9IG5bcltpXV07CiAgICByZXR1cm4gbjsKICB9Owp9CmZ1bmN0aW9uIHVzZU1vZGVsKGUsIHQsIHIgPSBFTVBUWV9PQkopIHsKICBjb25zdCBuID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKSwKICAgIGkgPSBjYW1lbGl6ZSh0KSwKICAgIGEgPSBoeXBoZW5hdGUodCksCiAgICBvID0gZ2V0TW9kZWxNb2RpZmllcnMoZSwgaSksCiAgICBsID0gY3VzdG9tUmVmKChjLCB1KSA9PiB7CiAgICAgIGxldCBkLAogICAgICAgIEUgPSBFTVBUWV9PQkosCiAgICAgICAgYjsKICAgICAgcmV0dXJuICgKICAgICAgICB3YXRjaFN5bmNFZmZlY3QoKCkgPT4gewogICAgICAgICAgY29uc3QgUCA9IGVbaV07CiAgICAgICAgICBoYXNDaGFuZ2VkKGQsIFApICYmICgoZCA9IFApLCB1KCkpOwogICAgICAgIH0pLAogICAgICAgIHsKICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgcmV0dXJuIGMoKSwgci5nZXQgPyByLmdldChkKSA6IGQ7CiAgICAgICAgICB9LAogICAgICAgICAgc2V0KFApIHsKICAgICAgICAgICAgY29uc3QgUiA9IHIuc2V0ID8gci5zZXQoUCkgOiBQOwogICAgICAgICAgICBpZiAoIWhhc0NoYW5nZWQoUiwgZCkgJiYgIShFICE9PSBFTVBUWV9PQkogJiYgaGFzQ2hhbmdlZChQLCBFKSkpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjb25zdCBUID0gbi52bm9kZS5wcm9wczsKICAgICAgICAgICAgKFQgJiYKICAgICAgICAgICAgICAodCBpbiBUIHx8IGkgaW4gVCB8fCBhIGluIFQpICYmCiAgICAgICAgICAgICAgKGBvblVwZGF0ZToke3R9YCBpbiBUIHx8CiAgICAgICAgICAgICAgICBgb25VcGRhdGU6JHtpfWAgaW4gVCB8fAogICAgICAgICAgICAgICAgYG9uVXBkYXRlOiR7YX1gIGluIFQpKSB8fAogICAgICAgICAgICAgICgoZCA9IFApLCB1KCkpLAogICAgICAgICAgICAgIG4uZW1pdChgdXBkYXRlOiR7dH1gLCBSKSwKICAgICAgICAgICAgICBoYXNDaGFuZ2VkKFAsIFIpICYmIGhhc0NoYW5nZWQoUCwgRSkgJiYgIWhhc0NoYW5nZWQoUiwgYikgJiYgdSgpLAogICAgICAgICAgICAgIChFID0gUCksCiAgICAgICAgICAgICAgKGIgPSBSKTsKICAgICAgICAgIH0sCiAgICAgICAgfQogICAgICApOwogICAgfSk7CiAgcmV0dXJuICgKICAgIChsW1N5bWJvbC5pdGVyYXRvcl0gPSAoKSA9PiB7CiAgICAgIGxldCBjID0gMDsKICAgICAgcmV0dXJuIHsKICAgICAgICBuZXh0KCkgewogICAgICAgICAgcmV0dXJuIGMgPCAyCiAgICAgICAgICAgID8geyB2YWx1ZTogYysrID8gbyB8fCBFTVBUWV9PQkogOiBsLCBkb25lOiAhMSB9CiAgICAgICAgICAgIDogeyBkb25lOiAhMCB9OwogICAgICAgIH0sCiAgICAgIH07CiAgICB9KSwKICAgIGwKICApOwp9CmNvbnN0IGdldE1vZGVsTW9kaWZpZXJzID0gKGUsIHQpID0+CiAgdCA9PT0gIm1vZGVsVmFsdWUiIHx8IHQgPT09ICJtb2RlbC12YWx1ZSIKICAgID8gZS5tb2RlbE1vZGlmaWVycwogICAgOiBlW2Ake3R9TW9kaWZpZXJzYF0gfHwKICAgIGVbYCR7Y2FtZWxpemUodCl9TW9kaWZpZXJzYF0gfHwKICAgIGVbYCR7aHlwaGVuYXRlKHQpfU1vZGlmaWVyc2BdOwpmdW5jdGlvbiBlbWl0KGUsIHQsIC4uLnIpIHsKICBpZiAoZS5pc1VubW91bnRlZCkgcmV0dXJuOwogIGNvbnN0IG4gPSBlLnZub2RlLnByb3BzIHx8IEVNUFRZX09CSjsKICBsZXQgaSA9IHI7CiAgY29uc3QgYSA9IHQuc3RhcnRzV2l0aCgidXBkYXRlOiIpLAogICAgbyA9IGEgJiYgZ2V0TW9kZWxNb2RpZmllcnMobiwgdC5zbGljZSg3KSk7CiAgbyAmJgogICAgKG8udHJpbSAmJiAoaSA9IHIubWFwKChkKSA9PiAoaXNTdHJpbmckMShkKSA/IGQudHJpbSgpIDogZCkpKSwKICAgICAgby5udW1iZXIgJiYgKGkgPSByLm1hcChsb29zZVRvTnVtYmVyKSkpOwogIGxldCBsLAogICAgYyA9IG5bKGwgPSB0b0hhbmRsZXJLZXkodCkpXSB8fCBuWyhsID0gdG9IYW5kbGVyS2V5KGNhbWVsaXplKHQpKSldOwogICFjICYmIGEgJiYgKGMgPSBuWyhsID0gdG9IYW5kbGVyS2V5KGh5cGhlbmF0ZSh0KSkpXSksCiAgICBjICYmIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGMsIGUsIDYsIGkpOwogIGNvbnN0IHUgPSBuW2wgKyAiT25jZSJdOwogIGlmICh1KSB7CiAgICBpZiAoIWUuZW1pdHRlZCkgZS5lbWl0dGVkID0ge307CiAgICBlbHNlIGlmIChlLmVtaXR0ZWRbbF0pIHJldHVybjsKICAgIChlLmVtaXR0ZWRbbF0gPSAhMCksIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKHUsIGUsIDYsIGkpOwogIH0KfQpmdW5jdGlvbiBub3JtYWxpemVFbWl0c09wdGlvbnMoZSwgdCwgciA9ICExKSB7CiAgY29uc3QgbiA9IHQuZW1pdHNDYWNoZSwKICAgIGkgPSBuLmdldChlKTsKICBpZiAoaSAhPT0gdm9pZCAwKSByZXR1cm4gaTsKICBjb25zdCBhID0gZS5lbWl0czsKICBsZXQgbyA9IHt9LAogICAgbCA9ICExOwogIGlmICghaXNGdW5jdGlvbiQxKGUpKSB7CiAgICBjb25zdCBjID0gKHUpID0+IHsKICAgICAgY29uc3QgZCA9IG5vcm1hbGl6ZUVtaXRzT3B0aW9ucyh1LCB0LCAhMCk7CiAgICAgIGQgJiYgKChsID0gITApLCBleHRlbmQobywgZCkpOwogICAgfTsKICAgICFyICYmIHQubWl4aW5zLmxlbmd0aCAmJiB0Lm1peGlucy5mb3JFYWNoKGMpLAogICAgICBlLmV4dGVuZHMgJiYgYyhlLmV4dGVuZHMpLAogICAgICBlLm1peGlucyAmJiBlLm1peGlucy5mb3JFYWNoKGMpOwogIH0KICByZXR1cm4gIWEgJiYgIWwKICAgID8gKGlzT2JqZWN0JDIoZSkgJiYgbi5zZXQoZSwgbnVsbCksIG51bGwpCiAgICA6IChpc0FycmF5JDIoYSkgPyBhLmZvckVhY2goKGMpID0+IChvW2NdID0gbnVsbCkpIDogZXh0ZW5kKG8sIGEpLAogICAgICBpc09iamVjdCQyKGUpICYmIG4uc2V0KGUsIG8pLAogICAgICBvKTsKfQpmdW5jdGlvbiBpc0VtaXRMaXN0ZW5lcihlLCB0KSB7CiAgcmV0dXJuICFlIHx8ICFpc09uJDEodCkKICAgID8gITEKICAgIDogKCh0ID0gdC5zbGljZSgyKS5yZXBsYWNlKC9PbmNlJC8sICIiKSksCiAgICAgIGhhc093biQxKGUsIHRbMF0udG9Mb3dlckNhc2UoKSArIHQuc2xpY2UoMSkpIHx8CiAgICAgIGhhc093biQxKGUsIGh5cGhlbmF0ZSh0KSkgfHwKICAgICAgaGFzT3duJDEoZSwgdCkpOwp9CmZ1bmN0aW9uIG1hcmtBdHRyc0FjY2Vzc2VkKCkgeyB9CmZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudFJvb3QoZSkgewogIGNvbnN0IHsKICAgIHR5cGU6IHQsCiAgICB2bm9kZTogciwKICAgIHByb3h5OiBuLAogICAgd2l0aFByb3h5OiBpLAogICAgcHJvcHNPcHRpb25zOiBbYV0sCiAgICBzbG90czogbywKICAgIGF0dHJzOiBsLAogICAgZW1pdDogYywKICAgIHJlbmRlcjogdSwKICAgIHJlbmRlckNhY2hlOiBkLAogICAgcHJvcHM6IEUsCiAgICBkYXRhOiBiLAogICAgc2V0dXBTdGF0ZTogUCwKICAgIGN0eDogUiwKICAgIGluaGVyaXRBdHRyczogVCwKICB9ID0gZSwKICAgIE0gPSBzZXRDdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UoZSk7CiAgbGV0IHgsIGs7CiAgdHJ5IHsKICAgIGlmIChyLnNoYXBlRmxhZyAmIDQpIHsKICAgICAgY29uc3QgQSA9IGkgfHwgbiwKICAgICAgICBPID0gQTsKICAgICAgKHggPSBub3JtYWxpemVWTm9kZSh1LmNhbGwoTywgQSwgZCwgRSwgUCwgYiwgUikpKSwgKGsgPSBsKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IEEgPSB0OwogICAgICAoeCA9IG5vcm1hbGl6ZVZOb2RlKAogICAgICAgIEEubGVuZ3RoID4gMSA/IEEoRSwgeyBhdHRyczogbCwgc2xvdHM6IG8sIGVtaXQ6IGMgfSkgOiBBKEUsIG51bGwpCiAgICAgICkpLAogICAgICAgIChrID0gdC5wcm9wcyA/IGwgOiBnZXRGdW5jdGlvbmFsRmFsbHRocm91Z2gobCkpOwogICAgfQogIH0gY2F0Y2ggKEEpIHsKICAgIChibG9ja1N0YWNrLmxlbmd0aCA9IDApLCBoYW5kbGVFcnJvcihBLCBlLCAxKSwgKHggPSBjcmVhdGVWTm9kZShDb21tZW50KSk7CiAgfQogIGxldCBTID0geDsKICBpZiAoayAmJiBUICE9PSAhMSkgewogICAgY29uc3QgQSA9IE9iamVjdC5rZXlzKGspLAogICAgICB7IHNoYXBlRmxhZzogTyB9ID0gUzsKICAgIEEubGVuZ3RoICYmCiAgICAgIE8gJiA3ICYmCiAgICAgIChhICYmIEEuc29tZShpc01vZGVsTGlzdGVuZXIpICYmIChrID0gZmlsdGVyTW9kZWxMaXN0ZW5lcnMoaywgYSkpLAogICAgICAgIChTID0gY2xvbmVWTm9kZShTLCBrLCAhMSwgITApKSk7CiAgfQogIHJldHVybiAoCiAgICByLmRpcnMgJiYKICAgICgoUyA9IGNsb25lVk5vZGUoUywgbnVsbCwgITEsICEwKSksCiAgICAgIChTLmRpcnMgPSBTLmRpcnMgPyBTLmRpcnMuY29uY2F0KHIuZGlycykgOiByLmRpcnMpKSwKICAgIHIudHJhbnNpdGlvbiAmJiBzZXRUcmFuc2l0aW9uSG9va3MoUywgci50cmFuc2l0aW9uKSwKICAgICh4ID0gUyksCiAgICBzZXRDdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UoTSksCiAgICB4CiAgKTsKfQpmdW5jdGlvbiBmaWx0ZXJTaW5nbGVSb290KGUsIHQgPSAhMCkgewogIGxldCByOwogIGZvciAobGV0IG4gPSAwOyBuIDwgZS5sZW5ndGg7IG4rKykgewogICAgY29uc3QgaSA9IGVbbl07CiAgICBpZiAoaXNWTm9kZSQxKGkpKSB7CiAgICAgIGlmIChpLnR5cGUgIT09IENvbW1lbnQgfHwgaS5jaGlsZHJlbiA9PT0gInYtaWYiKSB7CiAgICAgICAgaWYgKHIpIHJldHVybjsKICAgICAgICByID0gaTsKICAgICAgfQogICAgfSBlbHNlIHJldHVybjsKICB9CiAgcmV0dXJuIHI7Cn0KY29uc3QgZ2V0RnVuY3Rpb25hbEZhbGx0aHJvdWdoID0gKGUpID0+IHsKICBsZXQgdDsKICBmb3IgKGNvbnN0IHIgaW4gZSkKICAgIChyID09PSAiY2xhc3MiIHx8IHIgPT09ICJzdHlsZSIgfHwgaXNPbiQxKHIpKSAmJgogICAgICAoKHQgfHwgKHQgPSB7fSkpW3JdID0gZVtyXSk7CiAgcmV0dXJuIHQ7Cn0sCiAgZmlsdGVyTW9kZWxMaXN0ZW5lcnMgPSAoZSwgdCkgPT4gewogICAgY29uc3QgciA9IHt9OwogICAgZm9yIChjb25zdCBuIGluIGUpCiAgICAgICghaXNNb2RlbExpc3RlbmVyKG4pIHx8ICEobi5zbGljZSg5KSBpbiB0KSkgJiYgKHJbbl0gPSBlW25dKTsKICAgIHJldHVybiByOwogIH07CmZ1bmN0aW9uIHNob3VsZFVwZGF0ZUNvbXBvbmVudChlLCB0LCByKSB7CiAgY29uc3QgeyBwcm9wczogbiwgY2hpbGRyZW46IGksIGNvbXBvbmVudDogYSB9ID0gZSwKICAgIHsgcHJvcHM6IG8sIGNoaWxkcmVuOiBsLCBwYXRjaEZsYWc6IGMgfSA9IHQsCiAgICB1ID0gYS5lbWl0c09wdGlvbnM7CiAgaWYgKHQuZGlycyB8fCB0LnRyYW5zaXRpb24pIHJldHVybiAhMDsKICBpZiAociAmJiBjID49IDApIHsKICAgIGlmIChjICYgMTAyNCkgcmV0dXJuICEwOwogICAgaWYgKGMgJiAxNikgcmV0dXJuIG4gPyBoYXNQcm9wc0NoYW5nZWQobiwgbywgdSkgOiAhIW87CiAgICBpZiAoYyAmIDgpIHsKICAgICAgY29uc3QgZCA9IHQuZHluYW1pY1Byb3BzOwogICAgICBmb3IgKGxldCBFID0gMDsgRSA8IGQubGVuZ3RoOyBFKyspIHsKICAgICAgICBjb25zdCBiID0gZFtFXTsKICAgICAgICBpZiAob1tiXSAhPT0gbltiXSAmJiAhaXNFbWl0TGlzdGVuZXIodSwgYikpIHJldHVybiAhMDsKICAgICAgfQogICAgfQogIH0gZWxzZQogICAgcmV0dXJuIChpIHx8IGwpICYmICghbCB8fCAhbC4kc3RhYmxlKQogICAgICA/ICEwCiAgICAgIDogbiA9PT0gbwogICAgICAgID8gITEKICAgICAgICA6IG4KICAgICAgICAgID8gbwogICAgICAgICAgICA/IGhhc1Byb3BzQ2hhbmdlZChuLCBvLCB1KQogICAgICAgICAgICA6ICEwCiAgICAgICAgICA6ICEhbzsKICByZXR1cm4gITE7Cn0KZnVuY3Rpb24gaGFzUHJvcHNDaGFuZ2VkKGUsIHQsIHIpIHsKICBjb25zdCBuID0gT2JqZWN0LmtleXModCk7CiAgaWYgKG4ubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhlKS5sZW5ndGgpIHJldHVybiAhMDsKICBmb3IgKGxldCBpID0gMDsgaSA8IG4ubGVuZ3RoOyBpKyspIHsKICAgIGNvbnN0IGEgPSBuW2ldOwogICAgaWYgKHRbYV0gIT09IGVbYV0gJiYgIWlzRW1pdExpc3RlbmVyKHIsIGEpKSByZXR1cm4gITA7CiAgfQogIHJldHVybiAhMTsKfQpmdW5jdGlvbiB1cGRhdGVIT0NIb3N0RWwoeyB2bm9kZTogZSwgcGFyZW50OiB0IH0sIHIpIHsKICBmb3IgKDsgdDspIHsKICAgIGNvbnN0IG4gPSB0LnN1YlRyZWU7CiAgICBpZiAoKG4uc3VzcGVuc2UgJiYgbi5zdXNwZW5zZS5hY3RpdmVCcmFuY2ggPT09IGUgJiYgKG4uZWwgPSBlLmVsKSwgbiA9PT0gZSkpCiAgICAgICgoZSA9IHQudm5vZGUpLmVsID0gciksICh0ID0gdC5wYXJlbnQpOwogICAgZWxzZSBicmVhazsKICB9Cn0KY29uc3QgaXNTdXNwZW5zZSA9IChlKSA9PiBlLl9faXNTdXNwZW5zZTsKbGV0IHN1c3BlbnNlSWQgPSAwOwpjb25zdCBTdXNwZW5zZUltcGwgPSB7CiAgbmFtZTogIlN1c3BlbnNlIiwKICBfX2lzU3VzcGVuc2U6ICEwLAogIHByb2Nlc3MoZSwgdCwgciwgbiwgaSwgYSwgbywgbCwgYywgdSkgewogICAgaWYgKGUgPT0gbnVsbCkgbW91bnRTdXNwZW5zZSh0LCByLCBuLCBpLCBhLCBvLCBsLCBjLCB1KTsKICAgIGVsc2UgewogICAgICBpZiAoYSAmJiBhLmRlcHMgPiAwICYmICFlLnN1c3BlbnNlLmlzSW5GYWxsYmFjaykgewogICAgICAgICh0LnN1c3BlbnNlID0gZS5zdXNwZW5zZSksICh0LnN1c3BlbnNlLnZub2RlID0gdCksICh0LmVsID0gZS5lbCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHBhdGNoU3VzcGVuc2UoZSwgdCwgciwgbiwgaSwgbywgbCwgYywgdSk7CiAgICB9CiAgfSwKICBoeWRyYXRlOiBoeWRyYXRlU3VzcGVuc2UsCiAgbm9ybWFsaXplOiBub3JtYWxpemVTdXNwZW5zZUNoaWxkcmVuLAp9LAogIFN1c3BlbnNlID0gU3VzcGVuc2VJbXBsOwpmdW5jdGlvbiB0cmlnZ2VyRXZlbnQoZSwgdCkgewogIGNvbnN0IHIgPSBlLnByb3BzICYmIGUucHJvcHNbdF07CiAgaXNGdW5jdGlvbiQxKHIpICYmIHIoKTsKfQpmdW5jdGlvbiBtb3VudFN1c3BlbnNlKGUsIHQsIHIsIG4sIGksIGEsIG8sIGwsIGMpIHsKICBjb25zdCB7CiAgICBwOiB1LAogICAgbzogeyBjcmVhdGVFbGVtZW50OiBkIH0sCiAgfSA9IGMsCiAgICBFID0gZCgiZGl2IiksCiAgICBiID0gKGUuc3VzcGVuc2UgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KGUsIGksIG4sIHQsIEUsIHIsIGEsIG8sIGwsIGMpKTsKICB1KG51bGwsIChiLnBlbmRpbmdCcmFuY2ggPSBlLnNzQ29udGVudCksIEUsIG51bGwsIG4sIGIsIGEsIG8pLAogICAgYi5kZXBzID4gMAogICAgICA/ICh0cmlnZ2VyRXZlbnQoZSwgIm9uUGVuZGluZyIpLAogICAgICAgIHRyaWdnZXJFdmVudChlLCAib25GYWxsYmFjayIpLAogICAgICAgIHUobnVsbCwgZS5zc0ZhbGxiYWNrLCB0LCByLCBuLCBudWxsLCBhLCBvKSwKICAgICAgICBzZXRBY3RpdmVCcmFuY2goYiwgZS5zc0ZhbGxiYWNrKSkKICAgICAgOiBiLnJlc29sdmUoITEsICEwKTsKfQpmdW5jdGlvbiBwYXRjaFN1c3BlbnNlKAogIGUsCiAgdCwKICByLAogIG4sCiAgaSwKICBhLAogIG8sCiAgbCwKICB7IHA6IGMsIHVtOiB1LCBvOiB7IGNyZWF0ZUVsZW1lbnQ6IGQgfSB9CikgewogIGNvbnN0IEUgPSAodC5zdXNwZW5zZSA9IGUuc3VzcGVuc2UpOwogIChFLnZub2RlID0gdCksICh0LmVsID0gZS5lbCk7CiAgY29uc3QgYiA9IHQuc3NDb250ZW50LAogICAgUCA9IHQuc3NGYWxsYmFjaywKICAgIHsgYWN0aXZlQnJhbmNoOiBSLCBwZW5kaW5nQnJhbmNoOiBULCBpc0luRmFsbGJhY2s6IE0sIGlzSHlkcmF0aW5nOiB4IH0gPSBFOwogIGlmIChUKQogICAgKEUucGVuZGluZ0JyYW5jaCA9IGIpLAogICAgICBpc1NhbWVWTm9kZVR5cGUoYiwgVCkKICAgICAgICA/IChjKFQsIGIsIEUuaGlkZGVuQ29udGFpbmVyLCBudWxsLCBpLCBFLCBhLCBvLCBsKSwKICAgICAgICAgIEUuZGVwcyA8PSAwCiAgICAgICAgICAgID8gRS5yZXNvbHZlKCkKICAgICAgICAgICAgOiBNICYmCiAgICAgICAgICAgICh4IHx8IChjKFIsIFAsIHIsIG4sIGksIG51bGwsIGEsIG8sIGwpLCBzZXRBY3RpdmVCcmFuY2goRSwgUCkpKSkKICAgICAgICA6ICgoRS5wZW5kaW5nSWQgPSBzdXNwZW5zZUlkKyspLAogICAgICAgICAgeCA/ICgoRS5pc0h5ZHJhdGluZyA9ICExKSwgKEUuYWN0aXZlQnJhbmNoID0gVCkpIDogdShULCBpLCBFKSwKICAgICAgICAgIChFLmRlcHMgPSAwKSwKICAgICAgICAgIChFLmVmZmVjdHMubGVuZ3RoID0gMCksCiAgICAgICAgICAoRS5oaWRkZW5Db250YWluZXIgPSBkKCJkaXYiKSksCiAgICAgICAgICBNCiAgICAgICAgICAgID8gKGMobnVsbCwgYiwgRS5oaWRkZW5Db250YWluZXIsIG51bGwsIGksIEUsIGEsIG8sIGwpLAogICAgICAgICAgICAgIEUuZGVwcyA8PSAwCiAgICAgICAgICAgICAgICA/IEUucmVzb2x2ZSgpCiAgICAgICAgICAgICAgICA6IChjKFIsIFAsIHIsIG4sIGksIG51bGwsIGEsIG8sIGwpLCBzZXRBY3RpdmVCcmFuY2goRSwgUCkpKQogICAgICAgICAgICA6IFIgJiYgaXNTYW1lVk5vZGVUeXBlKGIsIFIpCiAgICAgICAgICAgICAgPyAoYyhSLCBiLCByLCBuLCBpLCBFLCBhLCBvLCBsKSwgRS5yZXNvbHZlKCEwKSkKICAgICAgICAgICAgICA6IChjKG51bGwsIGIsIEUuaGlkZGVuQ29udGFpbmVyLCBudWxsLCBpLCBFLCBhLCBvLCBsKSwKICAgICAgICAgICAgICAgIEUuZGVwcyA8PSAwICYmIEUucmVzb2x2ZSgpKSk7CiAgZWxzZSBpZiAoUiAmJiBpc1NhbWVWTm9kZVR5cGUoYiwgUikpCiAgICBjKFIsIGIsIHIsIG4sIGksIEUsIGEsIG8sIGwpLCBzZXRBY3RpdmVCcmFuY2goRSwgYik7CiAgZWxzZSBpZiAoCiAgICAodHJpZ2dlckV2ZW50KHQsICJvblBlbmRpbmciKSwKICAgICAgKEUucGVuZGluZ0JyYW5jaCA9IGIpLAogICAgICBiLnNoYXBlRmxhZyAmIDUxMgogICAgICAgID8gKEUucGVuZGluZ0lkID0gYi5jb21wb25lbnQuc3VzcGVuc2VJZCkKICAgICAgICA6IChFLnBlbmRpbmdJZCA9IHN1c3BlbnNlSWQrKyksCiAgICAgIGMobnVsbCwgYiwgRS5oaWRkZW5Db250YWluZXIsIG51bGwsIGksIEUsIGEsIG8sIGwpLAogICAgICBFLmRlcHMgPD0gMCkKICApCiAgICBFLnJlc29sdmUoKTsKICBlbHNlIHsKICAgIGNvbnN0IHsgdGltZW91dDogaywgcGVuZGluZ0lkOiBTIH0gPSBFOwogICAgayA+IDAKICAgICAgPyBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICBFLnBlbmRpbmdJZCA9PT0gUyAmJiBFLmZhbGxiYWNrKFApOwogICAgICB9LCBrKQogICAgICA6IGsgPT09IDAgJiYgRS5mYWxsYmFjayhQKTsKICB9Cn0KZnVuY3Rpb24gY3JlYXRlU3VzcGVuc2VCb3VuZGFyeShlLCB0LCByLCBuLCBpLCBhLCBvLCBsLCBjLCB1LCBkID0gITEpIHsKICBjb25zdCB7CiAgICBwOiBFLAogICAgbTogYiwKICAgIHVtOiBQLAogICAgbjogUiwKICAgIG86IHsgcGFyZW50Tm9kZTogVCwgcmVtb3ZlOiBNIH0sCiAgfSA9IHU7CiAgbGV0IHg7CiAgY29uc3QgayA9IGlzVk5vZGVTdXNwZW5zaWJsZShlKTsKICBrICYmIHQgJiYgdC5wZW5kaW5nQnJhbmNoICYmICgoeCA9IHQucGVuZGluZ0lkKSwgdC5kZXBzKyspOwogIGNvbnN0IFMgPSBlLnByb3BzID8gdG9OdW1iZXIoZS5wcm9wcy50aW1lb3V0KSA6IHZvaWQgMCwKICAgIEEgPSBhLAogICAgTyA9IHsKICAgICAgdm5vZGU6IGUsCiAgICAgIHBhcmVudDogdCwKICAgICAgcGFyZW50Q29tcG9uZW50OiByLAogICAgICBuYW1lc3BhY2U6IG8sCiAgICAgIGNvbnRhaW5lcjogbiwKICAgICAgaGlkZGVuQ29udGFpbmVyOiBpLAogICAgICBkZXBzOiAwLAogICAgICBwZW5kaW5nSWQ6IHN1c3BlbnNlSWQrKywKICAgICAgdGltZW91dDogdHlwZW9mIFMgPT0gIm51bWJlciIgPyBTIDogLTEsCiAgICAgIGFjdGl2ZUJyYW5jaDogbnVsbCwKICAgICAgcGVuZGluZ0JyYW5jaDogbnVsbCwKICAgICAgaXNJbkZhbGxiYWNrOiAhZCwKICAgICAgaXNIeWRyYXRpbmc6IGQsCiAgICAgIGlzVW5tb3VudGVkOiAhMSwKICAgICAgZWZmZWN0czogW10sCiAgICAgIHJlc29sdmUoRiA9ICExLCBEID0gITEpIHsKICAgICAgICBjb25zdCB7CiAgICAgICAgICB2bm9kZTogSCwKICAgICAgICAgIGFjdGl2ZUJyYW5jaDogJCwKICAgICAgICAgIHBlbmRpbmdCcmFuY2g6IHEsCiAgICAgICAgICBwZW5kaW5nSWQ6IEosCiAgICAgICAgICBlZmZlY3RzOiBLLAogICAgICAgICAgcGFyZW50Q29tcG9uZW50OiBlZSwKICAgICAgICAgIGNvbnRhaW5lcjogbGUsCiAgICAgICAgfSA9IE87CiAgICAgICAgbGV0IHJlID0gITE7CiAgICAgICAgTy5pc0h5ZHJhdGluZwogICAgICAgICAgPyAoTy5pc0h5ZHJhdGluZyA9ICExKQogICAgICAgICAgOiBGIHx8CiAgICAgICAgICAoKHJlID0gJCAmJiBxLnRyYW5zaXRpb24gJiYgcS50cmFuc2l0aW9uLm1vZGUgPT09ICJvdXQtaW4iKSwKICAgICAgICAgICAgcmUgJiYKICAgICAgICAgICAgKCQudHJhbnNpdGlvbi5hZnRlckxlYXZlID0gKCkgPT4gewogICAgICAgICAgICAgIEogPT09IE8ucGVuZGluZ0lkICYmCiAgICAgICAgICAgICAgICAoYihxLCBsZSwgYSA9PT0gQSA/IFIoJCkgOiBhLCAwKSwgcXVldWVQb3N0Rmx1c2hDYihLKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAkICYmIChUKCQuZWwpID09PSBsZSAmJiAoYSA9IFIoJCkpLCBQKCQsIGVlLCBPLCAhMCkpLAogICAgICAgICAgICByZSB8fCBiKHEsIGxlLCBhLCAwKSksCiAgICAgICAgICBzZXRBY3RpdmVCcmFuY2goTywgcSksCiAgICAgICAgICAoTy5wZW5kaW5nQnJhbmNoID0gbnVsbCksCiAgICAgICAgICAoTy5pc0luRmFsbGJhY2sgPSAhMSk7CiAgICAgICAgbGV0IEIgPSBPLnBhcmVudCwKICAgICAgICAgIHogPSAhMTsKICAgICAgICBmb3IgKDsgQjspIHsKICAgICAgICAgIGlmIChCLnBlbmRpbmdCcmFuY2gpIHsKICAgICAgICAgICAgQi5lZmZlY3RzLnB1c2goLi4uSyksICh6ID0gITApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIEIgPSBCLnBhcmVudDsKICAgICAgICB9CiAgICAgICAgIXogJiYgIXJlICYmIHF1ZXVlUG9zdEZsdXNoQ2IoSyksCiAgICAgICAgICAoTy5lZmZlY3RzID0gW10pLAogICAgICAgICAgayAmJgogICAgICAgICAgdCAmJgogICAgICAgICAgdC5wZW5kaW5nQnJhbmNoICYmCiAgICAgICAgICB4ID09PSB0LnBlbmRpbmdJZCAmJgogICAgICAgICAgKHQuZGVwcy0tLCB0LmRlcHMgPT09IDAgJiYgIUQgJiYgdC5yZXNvbHZlKCkpLAogICAgICAgICAgdHJpZ2dlckV2ZW50KEgsICJvblJlc29sdmUiKTsKICAgICAgfSwKICAgICAgZmFsbGJhY2soRikgewogICAgICAgIGlmICghTy5wZW5kaW5nQnJhbmNoKSByZXR1cm47CiAgICAgICAgY29uc3QgewogICAgICAgICAgdm5vZGU6IEQsCiAgICAgICAgICBhY3RpdmVCcmFuY2g6IEgsCiAgICAgICAgICBwYXJlbnRDb21wb25lbnQ6ICQsCiAgICAgICAgICBjb250YWluZXI6IHEsCiAgICAgICAgICBuYW1lc3BhY2U6IEosCiAgICAgICAgfSA9IE87CiAgICAgICAgdHJpZ2dlckV2ZW50KEQsICJvbkZhbGxiYWNrIik7CiAgICAgICAgY29uc3QgSyA9IFIoSCksCiAgICAgICAgICBlZSA9ICgpID0+IHsKICAgICAgICAgICAgTy5pc0luRmFsbGJhY2sgJiYKICAgICAgICAgICAgICAoRShudWxsLCBGLCBxLCBLLCAkLCBudWxsLCBKLCBsLCBjKSwgc2V0QWN0aXZlQnJhbmNoKE8sIEYpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBsZSA9IEYudHJhbnNpdGlvbiAmJiBGLnRyYW5zaXRpb24ubW9kZSA9PT0gIm91dC1pbiI7CiAgICAgICAgbGUgJiYgKEgudHJhbnNpdGlvbi5hZnRlckxlYXZlID0gZWUpLAogICAgICAgICAgKE8uaXNJbkZhbGxiYWNrID0gITApLAogICAgICAgICAgUChILCAkLCBudWxsLCAhMCksCiAgICAgICAgICBsZSB8fCBlZSgpOwogICAgICB9LAogICAgICBtb3ZlKEYsIEQsIEgpIHsKICAgICAgICBPLmFjdGl2ZUJyYW5jaCAmJiBiKE8uYWN0aXZlQnJhbmNoLCBGLCBELCBIKSwgKE8uY29udGFpbmVyID0gRik7CiAgICAgIH0sCiAgICAgIG5leHQoKSB7CiAgICAgICAgcmV0dXJuIE8uYWN0aXZlQnJhbmNoICYmIFIoTy5hY3RpdmVCcmFuY2gpOwogICAgICB9LAogICAgICByZWdpc3RlckRlcChGLCBELCBIKSB7CiAgICAgICAgY29uc3QgJCA9ICEhTy5wZW5kaW5nQnJhbmNoOwogICAgICAgICQgJiYgTy5kZXBzKys7CiAgICAgICAgY29uc3QgcSA9IEYudm5vZGUuZWw7CiAgICAgICAgRi5hc3luY0RlcAogICAgICAgICAgLmNhdGNoKChKKSA9PiB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKEosIEYsIDApOwogICAgICAgICAgfSkKICAgICAgICAgIC50aGVuKChKKSA9PiB7CiAgICAgICAgICAgIGlmIChGLmlzVW5tb3VudGVkIHx8IE8uaXNVbm1vdW50ZWQgfHwgTy5wZW5kaW5nSWQgIT09IEYuc3VzcGVuc2VJZCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIEYuYXN5bmNSZXNvbHZlZCA9ICEwOwogICAgICAgICAgICBjb25zdCB7IHZub2RlOiBLIH0gPSBGOwogICAgICAgICAgICBoYW5kbGVTZXR1cFJlc3VsdChGLCBKLCAhMSksIHEgJiYgKEsuZWwgPSBxKTsKICAgICAgICAgICAgY29uc3QgZWUgPSAhcSAmJiBGLnN1YlRyZWUuZWw7CiAgICAgICAgICAgIEQoRiwgSywgVChxIHx8IEYuc3ViVHJlZS5lbCksIHEgPyBudWxsIDogUihGLnN1YlRyZWUpLCBPLCBvLCBIKSwKICAgICAgICAgICAgICBlZSAmJiBNKGVlKSwKICAgICAgICAgICAgICB1cGRhdGVIT0NIb3N0RWwoRiwgSy5lbCksCiAgICAgICAgICAgICAgJCAmJiAtLU8uZGVwcyA9PT0gMCAmJiBPLnJlc29sdmUoKTsKICAgICAgICAgIH0pOwogICAgICB9LAogICAgICB1bm1vdW50KEYsIEQpIHsKICAgICAgICAoTy5pc1VubW91bnRlZCA9ICEwKSwKICAgICAgICAgIE8uYWN0aXZlQnJhbmNoICYmIFAoTy5hY3RpdmVCcmFuY2gsIHIsIEYsIEQpLAogICAgICAgICAgTy5wZW5kaW5nQnJhbmNoICYmIFAoTy5wZW5kaW5nQnJhbmNoLCByLCBGLCBEKTsKICAgICAgfSwKICAgIH07CiAgcmV0dXJuIE87Cn0KZnVuY3Rpb24gaHlkcmF0ZVN1c3BlbnNlKGUsIHQsIHIsIG4sIGksIGEsIG8sIGwsIGMpIHsKICBjb25zdCB1ID0gKHQuc3VzcGVuc2UgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KAogICAgdCwKICAgIG4sCiAgICByLAogICAgZS5wYXJlbnROb2RlLAogICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksCiAgICBudWxsLAogICAgaSwKICAgIGEsCiAgICBvLAogICAgbCwKICAgICEwCiAgKSksCiAgICBkID0gYyhlLCAodS5wZW5kaW5nQnJhbmNoID0gdC5zc0NvbnRlbnQpLCByLCB1LCBhLCBvKTsKICByZXR1cm4gdS5kZXBzID09PSAwICYmIHUucmVzb2x2ZSghMSwgITApLCBkOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZVN1c3BlbnNlQ2hpbGRyZW4oZSkgewogIGNvbnN0IHsgc2hhcGVGbGFnOiB0LCBjaGlsZHJlbjogciB9ID0gZSwKICAgIG4gPSB0ICYgMzI7CiAgKGUuc3NDb250ZW50ID0gbm9ybWFsaXplU3VzcGVuc2VTbG90KG4gPyByLmRlZmF1bHQgOiByKSksCiAgICAoZS5zc0ZhbGxiYWNrID0gbgogICAgICA/IG5vcm1hbGl6ZVN1c3BlbnNlU2xvdChyLmZhbGxiYWNrKQogICAgICA6IGNyZWF0ZVZOb2RlKENvbW1lbnQpKTsKfQpmdW5jdGlvbiBub3JtYWxpemVTdXNwZW5zZVNsb3QoZSkgewogIGxldCB0OwogIGlmIChpc0Z1bmN0aW9uJDEoZSkpIHsKICAgIGNvbnN0IHIgPSBpc0Jsb2NrVHJlZUVuYWJsZWQgJiYgZS5fYzsKICAgIHIgJiYgKChlLl9kID0gITEpLCBvcGVuQmxvY2soKSksCiAgICAgIChlID0gZSgpKSwKICAgICAgciAmJiAoKGUuX2QgPSAhMCksICh0ID0gY3VycmVudEJsb2NrKSwgY2xvc2VCbG9jaygpKTsKICB9CiAgcmV0dXJuICgKICAgIGlzQXJyYXkkMihlKSAmJiAoZSA9IGZpbHRlclNpbmdsZVJvb3QoZSkpLAogICAgKGUgPSBub3JtYWxpemVWTm9kZShlKSksCiAgICB0ICYmICFlLmR5bmFtaWNDaGlsZHJlbiAmJiAoZS5keW5hbWljQ2hpbGRyZW4gPSB0LmZpbHRlcigocikgPT4gciAhPT0gZSkpLAogICAgZQogICk7Cn0KZnVuY3Rpb24gcXVldWVFZmZlY3RXaXRoU3VzcGVuc2UoZSwgdCkgewogIHQgJiYgdC5wZW5kaW5nQnJhbmNoCiAgICA/IGlzQXJyYXkkMihlKQogICAgICA/IHQuZWZmZWN0cy5wdXNoKC4uLmUpCiAgICAgIDogdC5lZmZlY3RzLnB1c2goZSkKICAgIDogcXVldWVQb3N0Rmx1c2hDYihlKTsKfQpmdW5jdGlvbiBzZXRBY3RpdmVCcmFuY2goZSwgdCkgewogIGUuYWN0aXZlQnJhbmNoID0gdDsKICBjb25zdCB7IHZub2RlOiByLCBwYXJlbnRDb21wb25lbnQ6IG4gfSA9IGU7CiAgbGV0IGkgPSB0LmVsOwogIGZvciAoOyAhaSAmJiB0LmNvbXBvbmVudDspICh0ID0gdC5jb21wb25lbnQuc3ViVHJlZSksIChpID0gdC5lbCk7CiAgKHIuZWwgPSBpKSwgbiAmJiBuLnN1YlRyZWUgPT09IHIgJiYgKChuLnZub2RlLmVsID0gaSksIHVwZGF0ZUhPQ0hvc3RFbChuLCBpKSk7Cn0KZnVuY3Rpb24gaXNWTm9kZVN1c3BlbnNpYmxlKGUpIHsKICBjb25zdCB0ID0gZS5wcm9wcyAmJiBlLnByb3BzLnN1c3BlbnNpYmxlOwogIHJldHVybiB0ICE9IG51bGwgJiYgdCAhPT0gITE7Cn0KY29uc3QgRnJhZ21lbnQgPSBTeW1ib2wuZm9yKCJ2LWZndCIpLAogIFRleHQgPSBTeW1ib2wuZm9yKCJ2LXR4dCIpLAogIENvbW1lbnQgPSBTeW1ib2wuZm9yKCJ2LWNtdCIpLAogIFN0YXRpYyA9IFN5bWJvbC5mb3IoInYtc3RjIiksCiAgYmxvY2tTdGFjayA9IFtdOwpsZXQgY3VycmVudEJsb2NrID0gbnVsbDsKZnVuY3Rpb24gb3BlbkJsb2NrKGUgPSAhMSkgewogIGJsb2NrU3RhY2sucHVzaCgoY3VycmVudEJsb2NrID0gZSA/IG51bGwgOiBbXSkpOwp9CmZ1bmN0aW9uIGNsb3NlQmxvY2soKSB7CiAgYmxvY2tTdGFjay5wb3AoKSwgKGN1cnJlbnRCbG9jayA9IGJsb2NrU3RhY2tbYmxvY2tTdGFjay5sZW5ndGggLSAxXSB8fCBudWxsKTsKfQpsZXQgaXNCbG9ja1RyZWVFbmFibGVkID0gMTsKZnVuY3Rpb24gc2V0QmxvY2tUcmFja2luZyhlLCB0ID0gITEpIHsKICAoaXNCbG9ja1RyZWVFbmFibGVkICs9IGUpLAogICAgZSA8IDAgJiYgY3VycmVudEJsb2NrICYmIHQgJiYgKGN1cnJlbnRCbG9jay5oYXNPbmNlID0gITApOwp9CmZ1bmN0aW9uIHNldHVwQmxvY2soZSkgewogIHJldHVybiAoCiAgICAoZS5keW5hbWljQ2hpbGRyZW4gPQogICAgICBpc0Jsb2NrVHJlZUVuYWJsZWQgPiAwID8gY3VycmVudEJsb2NrIHx8IEVNUFRZX0FSUiA6IG51bGwpLAogICAgY2xvc2VCbG9jaygpLAogICAgaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJiBjdXJyZW50QmxvY2sgJiYgY3VycmVudEJsb2NrLnB1c2goZSksCiAgICBlCiAgKTsKfQpmdW5jdGlvbiBjcmVhdGVFbGVtZW50QmxvY2soZSwgdCwgciwgbiwgaSwgYSkgewogIHJldHVybiBzZXR1cEJsb2NrKGNyZWF0ZUJhc2VWTm9kZShlLCB0LCByLCBuLCBpLCBhLCAhMCkpOwp9CmZ1bmN0aW9uIGNyZWF0ZUJsb2NrKGUsIHQsIHIsIG4sIGkpIHsKICByZXR1cm4gc2V0dXBCbG9jayhjcmVhdGVWTm9kZShlLCB0LCByLCBuLCBpLCAhMCkpOwp9CmZ1bmN0aW9uIGlzVk5vZGUkMShlKSB7CiAgcmV0dXJuIGUgPyBlLl9fdl9pc1ZOb2RlID09PSAhMCA6ICExOwp9CmZ1bmN0aW9uIGlzU2FtZVZOb2RlVHlwZShlLCB0KSB7CiAgcmV0dXJuIGUudHlwZSA9PT0gdC50eXBlICYmIGUua2V5ID09PSB0LmtleTsKfQpmdW5jdGlvbiB0cmFuc2Zvcm1WTm9kZUFyZ3MoZSkgeyB9CmNvbnN0IG5vcm1hbGl6ZUtleSA9ICh7IGtleTogZSB9KSA9PiBlID8/IG51bGwsCiAgbm9ybWFsaXplUmVmID0gKHsgcmVmOiBlLCByZWZfa2V5OiB0LCByZWZfZm9yOiByIH0pID0+ICgKICAgIHR5cGVvZiBlID09ICJudW1iZXIiICYmIChlID0gIiIgKyBlKSwKICAgIGUgIT0gbnVsbAogICAgICA/IGlzU3RyaW5nJDEoZSkgfHwgaXNSZWYoZSkgfHwgaXNGdW5jdGlvbiQxKGUpCiAgICAgICAgPyB7IGk6IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSwgcjogZSwgazogdCwgZjogISFyIH0KICAgICAgICA6IGUKICAgICAgOiBudWxsCiAgKTsKZnVuY3Rpb24gY3JlYXRlQmFzZVZOb2RlKAogIGUsCiAgdCA9IG51bGwsCiAgciA9IG51bGwsCiAgbiA9IDAsCiAgaSA9IG51bGwsCiAgYSA9IGUgPT09IEZyYWdtZW50ID8gMCA6IDEsCiAgbyA9ICExLAogIGwgPSAhMQopIHsKICBjb25zdCBjID0gewogICAgX192X2lzVk5vZGU6ICEwLAogICAgX192X3NraXA6ICEwLAogICAgdHlwZTogZSwKICAgIHByb3BzOiB0LAogICAga2V5OiB0ICYmIG5vcm1hbGl6ZUtleSh0KSwKICAgIHJlZjogdCAmJiBub3JtYWxpemVSZWYodCksCiAgICBzY29wZUlkOiBjdXJyZW50U2NvcGVJZCwKICAgIHNsb3RTY29wZUlkczogbnVsbCwKICAgIGNoaWxkcmVuOiByLAogICAgY29tcG9uZW50OiBudWxsLAogICAgc3VzcGVuc2U6IG51bGwsCiAgICBzc0NvbnRlbnQ6IG51bGwsCiAgICBzc0ZhbGxiYWNrOiBudWxsLAogICAgZGlyczogbnVsbCwKICAgIHRyYW5zaXRpb246IG51bGwsCiAgICBlbDogbnVsbCwKICAgIGFuY2hvcjogbnVsbCwKICAgIHRhcmdldDogbnVsbCwKICAgIHRhcmdldFN0YXJ0OiBudWxsLAogICAgdGFyZ2V0QW5jaG9yOiBudWxsLAogICAgc3RhdGljQ291bnQ6IDAsCiAgICBzaGFwZUZsYWc6IGEsCiAgICBwYXRjaEZsYWc6IG4sCiAgICBkeW5hbWljUHJvcHM6IGksCiAgICBkeW5hbWljQ2hpbGRyZW46IG51bGwsCiAgICBhcHBDb250ZXh0OiBudWxsLAogICAgY3R4OiBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UsCiAgfTsKICByZXR1cm4gKAogICAgbAogICAgICA/IChub3JtYWxpemVDaGlsZHJlbihjLCByKSwgYSAmIDEyOCAmJiBlLm5vcm1hbGl6ZShjKSkKICAgICAgOiByICYmIChjLnNoYXBlRmxhZyB8PSBpc1N0cmluZyQxKHIpID8gOCA6IDE2KSwKICAgIGlzQmxvY2tUcmVlRW5hYmxlZCA+IDAgJiYKICAgICFvICYmCiAgICBjdXJyZW50QmxvY2sgJiYKICAgIChjLnBhdGNoRmxhZyA+IDAgfHwgYSAmIDYpICYmCiAgICBjLnBhdGNoRmxhZyAhPT0gMzIgJiYKICAgIGN1cnJlbnRCbG9jay5wdXNoKGMpLAogICAgYwogICk7Cn0KY29uc3QgY3JlYXRlVk5vZGUgPSBfY3JlYXRlVk5vZGU7CmZ1bmN0aW9uIF9jcmVhdGVWTm9kZShlLCB0ID0gbnVsbCwgciA9IG51bGwsIG4gPSAwLCBpID0gbnVsbCwgYSA9ICExKSB7CiAgaWYgKCgoIWUgfHwgZSA9PT0gTlVMTF9EWU5BTUlDX0NPTVBPTkVOVCkgJiYgKGUgPSBDb21tZW50KSwgaXNWTm9kZSQxKGUpKSkgewogICAgY29uc3QgbCA9IGNsb25lVk5vZGUoZSwgdCwgITApOwogICAgcmV0dXJuICgKICAgICAgciAmJiBub3JtYWxpemVDaGlsZHJlbihsLCByKSwKICAgICAgaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJgogICAgICAhYSAmJgogICAgICBjdXJyZW50QmxvY2sgJiYKICAgICAgKGwuc2hhcGVGbGFnICYgNgogICAgICAgID8gKGN1cnJlbnRCbG9ja1tjdXJyZW50QmxvY2suaW5kZXhPZihlKV0gPSBsKQogICAgICAgIDogY3VycmVudEJsb2NrLnB1c2gobCkpLAogICAgICAobC5wYXRjaEZsYWcgPSAtMiksCiAgICAgIGwKICAgICk7CiAgfQogIGlmICgoaXNDbGFzc0NvbXBvbmVudChlKSAmJiAoZSA9IGUuX192Y2NPcHRzKSwgdCkpIHsKICAgIHQgPSBndWFyZFJlYWN0aXZlUHJvcHModCk7CiAgICBsZXQgeyBjbGFzczogbCwgc3R5bGU6IGMgfSA9IHQ7CiAgICBsICYmICFpc1N0cmluZyQxKGwpICYmICh0LmNsYXNzID0gbm9ybWFsaXplQ2xhc3MobCkpLAogICAgICBpc09iamVjdCQyKGMpICYmCiAgICAgIChpc1Byb3h5KGMpICYmICFpc0FycmF5JDIoYykgJiYgKGMgPSBleHRlbmQoe30sIGMpKSwKICAgICAgICAodC5zdHlsZSA9IG5vcm1hbGl6ZVN0eWxlKGMpKSk7CiAgfQogIGNvbnN0IG8gPSBpc1N0cmluZyQxKGUpCiAgICA/IDEKICAgIDogaXNTdXNwZW5zZShlKQogICAgICA/IDEyOAogICAgICA6IGlzVGVsZXBvcnQoZSkKICAgICAgICA/IDY0CiAgICAgICAgOiBpc09iamVjdCQyKGUpCiAgICAgICAgICA/IDQKICAgICAgICAgIDogaXNGdW5jdGlvbiQxKGUpCiAgICAgICAgICAgID8gMgogICAgICAgICAgICA6IDA7CiAgcmV0dXJuIGNyZWF0ZUJhc2VWTm9kZShlLCB0LCByLCBuLCBpLCBvLCBhLCAhMCk7Cn0KZnVuY3Rpb24gZ3VhcmRSZWFjdGl2ZVByb3BzKGUpIHsKICByZXR1cm4gZSA/IChpc1Byb3h5KGUpIHx8IGlzSW50ZXJuYWxPYmplY3QoZSkgPyBleHRlbmQoe30sIGUpIDogZSkgOiBudWxsOwp9CmZ1bmN0aW9uIGNsb25lVk5vZGUoZSwgdCwgciA9ICExLCBuID0gITEpIHsKICBjb25zdCB7IHByb3BzOiBpLCByZWY6IGEsIHBhdGNoRmxhZzogbywgY2hpbGRyZW46IGwsIHRyYW5zaXRpb246IGMgfSA9IGUsCiAgICB1ID0gdCA/IG1lcmdlUHJvcHMoaSB8fCB7fSwgdCkgOiBpLAogICAgZCA9IHsKICAgICAgX192X2lzVk5vZGU6ICEwLAogICAgICBfX3Zfc2tpcDogITAsCiAgICAgIHR5cGU6IGUudHlwZSwKICAgICAgcHJvcHM6IHUsCiAgICAgIGtleTogdSAmJiBub3JtYWxpemVLZXkodSksCiAgICAgIHJlZjoKICAgICAgICB0ICYmIHQucmVmCiAgICAgICAgICA/IHIgJiYgYQogICAgICAgICAgICA/IGlzQXJyYXkkMihhKQogICAgICAgICAgICAgID8gYS5jb25jYXQobm9ybWFsaXplUmVmKHQpKQogICAgICAgICAgICAgIDogW2EsIG5vcm1hbGl6ZVJlZih0KV0KICAgICAgICAgICAgOiBub3JtYWxpemVSZWYodCkKICAgICAgICAgIDogYSwKICAgICAgc2NvcGVJZDogZS5zY29wZUlkLAogICAgICBzbG90U2NvcGVJZHM6IGUuc2xvdFNjb3BlSWRzLAogICAgICBjaGlsZHJlbjogbCwKICAgICAgdGFyZ2V0OiBlLnRhcmdldCwKICAgICAgdGFyZ2V0U3RhcnQ6IGUudGFyZ2V0U3RhcnQsCiAgICAgIHRhcmdldEFuY2hvcjogZS50YXJnZXRBbmNob3IsCiAgICAgIHN0YXRpY0NvdW50OiBlLnN0YXRpY0NvdW50LAogICAgICBzaGFwZUZsYWc6IGUuc2hhcGVGbGFnLAogICAgICBwYXRjaEZsYWc6IHQgJiYgZS50eXBlICE9PSBGcmFnbWVudCA/IChvID09PSAtMSA/IDE2IDogbyB8IDE2KSA6IG8sCiAgICAgIGR5bmFtaWNQcm9wczogZS5keW5hbWljUHJvcHMsCiAgICAgIGR5bmFtaWNDaGlsZHJlbjogZS5keW5hbWljQ2hpbGRyZW4sCiAgICAgIGFwcENvbnRleHQ6IGUuYXBwQ29udGV4dCwKICAgICAgZGlyczogZS5kaXJzLAogICAgICB0cmFuc2l0aW9uOiBjLAogICAgICBjb21wb25lbnQ6IGUuY29tcG9uZW50LAogICAgICBzdXNwZW5zZTogZS5zdXNwZW5zZSwKICAgICAgc3NDb250ZW50OiBlLnNzQ29udGVudCAmJiBjbG9uZVZOb2RlKGUuc3NDb250ZW50KSwKICAgICAgc3NGYWxsYmFjazogZS5zc0ZhbGxiYWNrICYmIGNsb25lVk5vZGUoZS5zc0ZhbGxiYWNrKSwKICAgICAgZWw6IGUuZWwsCiAgICAgIGFuY2hvcjogZS5hbmNob3IsCiAgICAgIGN0eDogZS5jdHgsCiAgICAgIGNlOiBlLmNlLAogICAgfTsKICByZXR1cm4gYyAmJiBuICYmIHNldFRyYW5zaXRpb25Ib29rcyhkLCBjLmNsb25lKGQpKSwgZDsKfQpmdW5jdGlvbiBjcmVhdGVUZXh0Vk5vZGUoZSA9ICIgIiwgdCA9IDApIHsKICByZXR1cm4gY3JlYXRlVk5vZGUoVGV4dCwgbnVsbCwgZSwgdCk7Cn0KZnVuY3Rpb24gY3JlYXRlU3RhdGljVk5vZGUoZSwgdCkgewogIGNvbnN0IHIgPSBjcmVhdGVWTm9kZShTdGF0aWMsIG51bGwsIGUpOwogIHJldHVybiAoci5zdGF0aWNDb3VudCA9IHQpLCByOwp9CmZ1bmN0aW9uIGNyZWF0ZUNvbW1lbnRWTm9kZShlID0gIiIsIHQgPSAhMSkgewogIHJldHVybiB0CiAgICA/IChvcGVuQmxvY2soKSwgY3JlYXRlQmxvY2soQ29tbWVudCwgbnVsbCwgZSkpCiAgICA6IGNyZWF0ZVZOb2RlKENvbW1lbnQsIG51bGwsIGUpOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZVZOb2RlKGUpIHsKICByZXR1cm4gZSA9PSBudWxsIHx8IHR5cGVvZiBlID09ICJib29sZWFuIgogICAgPyBjcmVhdGVWTm9kZShDb21tZW50KQogICAgOiBpc0FycmF5JDIoZSkKICAgICAgPyBjcmVhdGVWTm9kZShGcmFnbWVudCwgbnVsbCwgZS5zbGljZSgpKQogICAgICA6IGlzVk5vZGUkMShlKQogICAgICAgID8gY2xvbmVJZk1vdW50ZWQoZSkKICAgICAgICA6IGNyZWF0ZVZOb2RlKFRleHQsIG51bGwsIFN0cmluZyhlKSk7Cn0KZnVuY3Rpb24gY2xvbmVJZk1vdW50ZWQoZSkgewogIHJldHVybiAoZS5lbCA9PT0gbnVsbCAmJiBlLnBhdGNoRmxhZyAhPT0gLTEpIHx8IGUubWVtbyA/IGUgOiBjbG9uZVZOb2RlKGUpOwp9CmZ1bmN0aW9uIG5vcm1hbGl6ZUNoaWxkcmVuKGUsIHQpIHsKICBsZXQgciA9IDA7CiAgY29uc3QgeyBzaGFwZUZsYWc6IG4gfSA9IGU7CiAgaWYgKHQgPT0gbnVsbCkgdCA9IG51bGw7CiAgZWxzZSBpZiAoaXNBcnJheSQyKHQpKSByID0gMTY7CiAgZWxzZSBpZiAodHlwZW9mIHQgPT0gIm9iamVjdCIpCiAgICBpZiAobiAmIDY1KSB7CiAgICAgIGNvbnN0IGkgPSB0LmRlZmF1bHQ7CiAgICAgIGkgJiYKICAgICAgICAoaS5fYyAmJiAoaS5fZCA9ICExKSwgbm9ybWFsaXplQ2hpbGRyZW4oZSwgaSgpKSwgaS5fYyAmJiAoaS5fZCA9ICEwKSk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSB7CiAgICAgIHIgPSAzMjsKICAgICAgY29uc3QgaSA9IHQuXzsKICAgICAgIWkgJiYgIWlzSW50ZXJuYWxPYmplY3QodCkKICAgICAgICA/ICh0Ll9jdHggPSBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UpCiAgICAgICAgOiBpID09PSAzICYmCiAgICAgICAgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlICYmCiAgICAgICAgKGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5zbG90cy5fID09PSAxCiAgICAgICAgICA/ICh0Ll8gPSAxKQogICAgICAgICAgOiAoKHQuXyA9IDIpLCAoZS5wYXRjaEZsYWcgfD0gMTAyNCkpKTsKICAgIH0KICBlbHNlCiAgICBpc0Z1bmN0aW9uJDEodCkKICAgICAgPyAoKHQgPSB7IGRlZmF1bHQ6IHQsIF9jdHg6IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSB9KSwgKHIgPSAzMikpCiAgICAgIDogKCh0ID0gU3RyaW5nKHQpKSwKICAgICAgICBuICYgNjQgPyAoKHIgPSAxNiksICh0ID0gW2NyZWF0ZVRleHRWTm9kZSh0KV0pKSA6IChyID0gOCkpOwogIChlLmNoaWxkcmVuID0gdCksIChlLnNoYXBlRmxhZyB8PSByKTsKfQpmdW5jdGlvbiBtZXJnZVByb3BzKC4uLmUpIHsKICBjb25zdCB0ID0ge307CiAgZm9yIChsZXQgciA9IDA7IHIgPCBlLmxlbmd0aDsgcisrKSB7CiAgICBjb25zdCBuID0gZVtyXTsKICAgIGZvciAoY29uc3QgaSBpbiBuKQogICAgICBpZiAoaSA9PT0gImNsYXNzIikKICAgICAgICB0LmNsYXNzICE9PSBuLmNsYXNzICYmICh0LmNsYXNzID0gbm9ybWFsaXplQ2xhc3MoW3QuY2xhc3MsIG4uY2xhc3NdKSk7CiAgICAgIGVsc2UgaWYgKGkgPT09ICJzdHlsZSIpIHQuc3R5bGUgPSBub3JtYWxpemVTdHlsZShbdC5zdHlsZSwgbi5zdHlsZV0pOwogICAgICBlbHNlIGlmIChpc09uJDEoaSkpIHsKICAgICAgICBjb25zdCBhID0gdFtpXSwKICAgICAgICAgIG8gPSBuW2ldOwogICAgICAgIG8gJiYKICAgICAgICAgIGEgIT09IG8gJiYKICAgICAgICAgICEoaXNBcnJheSQyKGEpICYmIGEuaW5jbHVkZXMobykpICYmCiAgICAgICAgICAodFtpXSA9IGEgPyBbXS5jb25jYXQoYSwgbykgOiBvKTsKICAgICAgfSBlbHNlIGkgIT09ICIiICYmICh0W2ldID0gbltpXSk7CiAgfQogIHJldHVybiB0Owp9CmZ1bmN0aW9uIGludm9rZVZOb2RlSG9vayhlLCB0LCByLCBuID0gbnVsbCkgewogIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGUsIHQsIDcsIFtyLCBuXSk7Cn0KY29uc3QgZW1wdHlBcHBDb250ZXh0ID0gY3JlYXRlQXBwQ29udGV4dCgpOwpsZXQgdWlkID0gMDsKZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2UoZSwgdCwgcikgewogIGNvbnN0IG4gPSBlLnR5cGUsCiAgICBpID0gKHQgPyB0LmFwcENvbnRleHQgOiBlLmFwcENvbnRleHQpIHx8IGVtcHR5QXBwQ29udGV4dCwKICAgIGEgPSB7CiAgICAgIHVpZDogdWlkKyssCiAgICAgIHZub2RlOiBlLAogICAgICB0eXBlOiBuLAogICAgICBwYXJlbnQ6IHQsCiAgICAgIGFwcENvbnRleHQ6IGksCiAgICAgIHJvb3Q6IG51bGwsCiAgICAgIG5leHQ6IG51bGwsCiAgICAgIHN1YlRyZWU6IG51bGwsCiAgICAgIGVmZmVjdDogbnVsbCwKICAgICAgdXBkYXRlOiBudWxsLAogICAgICBqb2I6IG51bGwsCiAgICAgIHNjb3BlOiBuZXcgRWZmZWN0U2NvcGUoITApLAogICAgICByZW5kZXI6IG51bGwsCiAgICAgIHByb3h5OiBudWxsLAogICAgICBleHBvc2VkOiBudWxsLAogICAgICBleHBvc2VQcm94eTogbnVsbCwKICAgICAgd2l0aFByb3h5OiBudWxsLAogICAgICBwcm92aWRlczogdCA/IHQucHJvdmlkZXMgOiBPYmplY3QuY3JlYXRlKGkucHJvdmlkZXMpLAogICAgICBpZHM6IHQgPyB0LmlkcyA6IFsiIiwgMCwgMF0sCiAgICAgIGFjY2Vzc0NhY2hlOiBudWxsLAogICAgICByZW5kZXJDYWNoZTogW10sCiAgICAgIGNvbXBvbmVudHM6IG51bGwsCiAgICAgIGRpcmVjdGl2ZXM6IG51bGwsCiAgICAgIHByb3BzT3B0aW9uczogbm9ybWFsaXplUHJvcHNPcHRpb25zKG4sIGkpLAogICAgICBlbWl0c09wdGlvbnM6IG5vcm1hbGl6ZUVtaXRzT3B0aW9ucyhuLCBpKSwKICAgICAgZW1pdDogbnVsbCwKICAgICAgZW1pdHRlZDogbnVsbCwKICAgICAgcHJvcHNEZWZhdWx0czogRU1QVFlfT0JKLAogICAgICBpbmhlcml0QXR0cnM6IG4uaW5oZXJpdEF0dHJzLAogICAgICBjdHg6IEVNUFRZX09CSiwKICAgICAgZGF0YTogRU1QVFlfT0JKLAogICAgICBwcm9wczogRU1QVFlfT0JKLAogICAgICBhdHRyczogRU1QVFlfT0JKLAogICAgICBzbG90czogRU1QVFlfT0JKLAogICAgICByZWZzOiBFTVBUWV9PQkosCiAgICAgIHNldHVwU3RhdGU6IEVNUFRZX09CSiwKICAgICAgc2V0dXBDb250ZXh0OiBudWxsLAogICAgICBzdXNwZW5zZTogciwKICAgICAgc3VzcGVuc2VJZDogciA/IHIucGVuZGluZ0lkIDogMCwKICAgICAgYXN5bmNEZXA6IG51bGwsCiAgICAgIGFzeW5jUmVzb2x2ZWQ6ICExLAogICAgICBpc01vdW50ZWQ6ICExLAogICAgICBpc1VubW91bnRlZDogITEsCiAgICAgIGlzRGVhY3RpdmF0ZWQ6ICExLAogICAgICBiYzogbnVsbCwKICAgICAgYzogbnVsbCwKICAgICAgYm06IG51bGwsCiAgICAgIG06IG51bGwsCiAgICAgIGJ1OiBudWxsLAogICAgICB1OiBudWxsLAogICAgICB1bTogbnVsbCwKICAgICAgYnVtOiBudWxsLAogICAgICBkYTogbnVsbCwKICAgICAgYTogbnVsbCwKICAgICAgcnRnOiBudWxsLAogICAgICBydGM6IG51bGwsCiAgICAgIGVjOiBudWxsLAogICAgICBzcDogbnVsbCwKICAgIH07CiAgcmV0dXJuICgKICAgIChhLmN0eCA9IHsgXzogYSB9KSwKICAgIChhLnJvb3QgPSB0ID8gdC5yb290IDogYSksCiAgICAoYS5lbWl0ID0gZW1pdC5iaW5kKG51bGwsIGEpKSwKICAgIGUuY2UgJiYgZS5jZShhKSwKICAgIGEKICApOwp9CmxldCBjdXJyZW50SW5zdGFuY2UgPSBudWxsOwpjb25zdCBnZXRDdXJyZW50SW5zdGFuY2UkMSA9ICgpID0+IGN1cnJlbnRJbnN0YW5jZSB8fCBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2U7CmxldCBpbnRlcm5hbFNldEN1cnJlbnRJbnN0YW5jZSwgc2V0SW5TU1JTZXR1cFN0YXRlOwp7CiAgY29uc3QgZSA9IGdldEdsb2JhbFRoaXMkMSgpLAogICAgdCA9IChyLCBuKSA9PiB7CiAgICAgIGxldCBpOwogICAgICByZXR1cm4gKAogICAgICAgIChpID0gZVtyXSkgfHwgKGkgPSBlW3JdID0gW10pLAogICAgICAgIGkucHVzaChuKSwKICAgICAgICAoYSkgPT4gewogICAgICAgICAgaS5sZW5ndGggPiAxID8gaS5mb3JFYWNoKChvKSA9PiBvKGEpKSA6IGlbMF0oYSk7CiAgICAgICAgfQogICAgICApOwogICAgfTsKICAoaW50ZXJuYWxTZXRDdXJyZW50SW5zdGFuY2UgPSB0KAogICAgIl9fVlVFX0lOU1RBTkNFX1NFVFRFUlNfXyIsCiAgICAocikgPT4gKGN1cnJlbnRJbnN0YW5jZSA9IHIpCiAgKSksCiAgICAoc2V0SW5TU1JTZXR1cFN0YXRlID0gdCgKICAgICAgIl9fVlVFX1NTUl9TRVRURVJTX18iLAogICAgICAocikgPT4gKGlzSW5TU1JDb21wb25lbnRTZXR1cCA9IHIpCiAgICApKTsKfQpjb25zdCBzZXRDdXJyZW50SW5zdGFuY2UgPSAoZSkgPT4gewogIGNvbnN0IHQgPSBjdXJyZW50SW5zdGFuY2U7CiAgcmV0dXJuICgKICAgIGludGVybmFsU2V0Q3VycmVudEluc3RhbmNlKGUpLAogICAgZS5zY29wZS5vbigpLAogICAgKCkgPT4gewogICAgICBlLnNjb3BlLm9mZigpLCBpbnRlcm5hbFNldEN1cnJlbnRJbnN0YW5jZSh0KTsKICAgIH0KICApOwp9LAogIHVuc2V0Q3VycmVudEluc3RhbmNlID0gKCkgPT4gewogICAgY3VycmVudEluc3RhbmNlICYmIGN1cnJlbnRJbnN0YW5jZS5zY29wZS5vZmYoKSwKICAgICAgaW50ZXJuYWxTZXRDdXJyZW50SW5zdGFuY2UobnVsbCk7CiAgfTsKZnVuY3Rpb24gaXNTdGF0ZWZ1bENvbXBvbmVudChlKSB7CiAgcmV0dXJuIGUudm5vZGUuc2hhcGVGbGFnICYgNDsKfQpsZXQgaXNJblNTUkNvbXBvbmVudFNldHVwID0gITE7CmZ1bmN0aW9uIHNldHVwQ29tcG9uZW50KGUsIHQgPSAhMSwgciA9ICExKSB7CiAgdCAmJiBzZXRJblNTUlNldHVwU3RhdGUodCk7CiAgY29uc3QgeyBwcm9wczogbiwgY2hpbGRyZW46IGkgfSA9IGUudm5vZGUsCiAgICBhID0gaXNTdGF0ZWZ1bENvbXBvbmVudChlKTsKICBpbml0UHJvcHMoZSwgbiwgYSwgdCksIGluaXRTbG90cyhlLCBpLCByKTsKICBjb25zdCBvID0gYSA/IHNldHVwU3RhdGVmdWxDb21wb25lbnQoZSwgdCkgOiB2b2lkIDA7CiAgcmV0dXJuIHQgJiYgc2V0SW5TU1JTZXR1cFN0YXRlKCExKSwgbzsKfQpmdW5jdGlvbiBzZXR1cFN0YXRlZnVsQ29tcG9uZW50KGUsIHQpIHsKICBjb25zdCByID0gZS50eXBlOwogIChlLmFjY2Vzc0NhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKSksCiAgICAoZS5wcm94eSA9IG5ldyBQcm94eShlLmN0eCwgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzKSk7CiAgY29uc3QgeyBzZXR1cDogbiB9ID0gcjsKICBpZiAobikgewogICAgcGF1c2VUcmFja2luZygpOwogICAgY29uc3QgaSA9IChlLnNldHVwQ29udGV4dCA9IG4ubGVuZ3RoID4gMSA/IGNyZWF0ZVNldHVwQ29udGV4dChlKSA6IG51bGwpLAogICAgICBhID0gc2V0Q3VycmVudEluc3RhbmNlKGUpLAogICAgICBvID0gY2FsbFdpdGhFcnJvckhhbmRsaW5nKG4sIGUsIDAsIFtlLnByb3BzLCBpXSksCiAgICAgIGwgPSBpc1Byb21pc2UkMShvKTsKICAgIGlmICgKICAgICAgKHJlc2V0VHJhY2tpbmcoKSwKICAgICAgICBhKCksCiAgICAgICAgKGwgfHwgZS5zcCkgJiYgIWlzQXN5bmNXcmFwcGVyKGUpICYmIG1hcmtBc3luY0JvdW5kYXJ5KGUpLAogICAgICAgIGwpCiAgICApIHsKICAgICAgaWYgKChvLnRoZW4odW5zZXRDdXJyZW50SW5zdGFuY2UsIHVuc2V0Q3VycmVudEluc3RhbmNlKSwgdCkpCiAgICAgICAgcmV0dXJuIG8KICAgICAgICAgIC50aGVuKChjKSA9PiB7CiAgICAgICAgICAgIGhhbmRsZVNldHVwUmVzdWx0KGUsIGMsIHQpOwogICAgICAgICAgfSkKICAgICAgICAgIC5jYXRjaCgoYykgPT4gewogICAgICAgICAgICBoYW5kbGVFcnJvcihjLCBlLCAwKTsKICAgICAgICAgIH0pOwogICAgICBlLmFzeW5jRGVwID0gbzsKICAgIH0gZWxzZSBoYW5kbGVTZXR1cFJlc3VsdChlLCBvLCB0KTsKICB9IGVsc2UgZmluaXNoQ29tcG9uZW50U2V0dXAoZSwgdCk7Cn0KZnVuY3Rpb24gaGFuZGxlU2V0dXBSZXN1bHQoZSwgdCwgcikgewogIGlzRnVuY3Rpb24kMSh0KQogICAgPyBlLnR5cGUuX19zc3JJbmxpbmVSZW5kZXIKICAgICAgPyAoZS5zc3JSZW5kZXIgPSB0KQogICAgICA6IChlLnJlbmRlciA9IHQpCiAgICA6IGlzT2JqZWN0JDIodCkgJiYgKGUuc2V0dXBTdGF0ZSA9IHByb3h5UmVmcyh0KSksCiAgICBmaW5pc2hDb21wb25lbnRTZXR1cChlLCByKTsKfQpsZXQgY29tcGlsZSQyLCBpbnN0YWxsV2l0aFByb3h5OwpmdW5jdGlvbiByZWdpc3RlclJ1bnRpbWVDb21waWxlcihlKSB7CiAgKGNvbXBpbGUkMiA9IGUpLAogICAgKGluc3RhbGxXaXRoUHJveHkgPSAodCkgPT4gewogICAgICB0LnJlbmRlci5fcmMgJiYKICAgICAgICAodC53aXRoUHJveHkgPSBuZXcgUHJveHkoCiAgICAgICAgICB0LmN0eCwKICAgICAgICAgIFJ1bnRpbWVDb21waWxlZFB1YmxpY0luc3RhbmNlUHJveHlIYW5kbGVycwogICAgICAgICkpOwogICAgfSk7Cn0KY29uc3QgaXNSdW50aW1lT25seSA9ICgpID0+ICFjb21waWxlJDI7CmZ1bmN0aW9uIGZpbmlzaENvbXBvbmVudFNldHVwKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS50eXBlOwogIGlmICghZS5yZW5kZXIpIHsKICAgIGlmICghdCAmJiBjb21waWxlJDIgJiYgIW4ucmVuZGVyKSB7CiAgICAgIGNvbnN0IGkgPSBuLnRlbXBsYXRlIHx8IHJlc29sdmVNZXJnZWRPcHRpb25zKGUpLnRlbXBsYXRlOwogICAgICBpZiAoaSkgewogICAgICAgIGNvbnN0IHsgaXNDdXN0b21FbGVtZW50OiBhLCBjb21waWxlck9wdGlvbnM6IG8gfSA9IGUuYXBwQ29udGV4dC5jb25maWcsCiAgICAgICAgICB7IGRlbGltaXRlcnM6IGwsIGNvbXBpbGVyT3B0aW9uczogYyB9ID0gbiwKICAgICAgICAgIHUgPSBleHRlbmQoZXh0ZW5kKHsgaXNDdXN0b21FbGVtZW50OiBhLCBkZWxpbWl0ZXJzOiBsIH0sIG8pLCBjKTsKICAgICAgICBuLnJlbmRlciA9IGNvbXBpbGUkMihpLCB1KTsKICAgICAgfQogICAgfQogICAgKGUucmVuZGVyID0gbi5yZW5kZXIgfHwgTk9PUCksIGluc3RhbGxXaXRoUHJveHkgJiYgaW5zdGFsbFdpdGhQcm94eShlKTsKICB9CiAgewogICAgY29uc3QgaSA9IHNldEN1cnJlbnRJbnN0YW5jZShlKTsKICAgIHBhdXNlVHJhY2tpbmcoKTsKICAgIHRyeSB7CiAgICAgIGFwcGx5T3B0aW9ucyhlKTsKICAgIH0gZmluYWxseSB7CiAgICAgIHJlc2V0VHJhY2tpbmcoKSwgaSgpOwogICAgfQogIH0KfQpjb25zdCBhdHRyc1Byb3h5SGFuZGxlcnMgPSB7CiAgZ2V0KGUsIHQpIHsKICAgIHJldHVybiB0cmFjayhlLCAiZ2V0IiwgIiIpLCBlW3RdOwogIH0sCn07CmZ1bmN0aW9uIGNyZWF0ZVNldHVwQ29udGV4dChlKSB7CiAgY29uc3QgdCA9IChyKSA9PiB7CiAgICBlLmV4cG9zZWQgPSByIHx8IHt9OwogIH07CiAgcmV0dXJuIHsKICAgIGF0dHJzOiBuZXcgUHJveHkoZS5hdHRycywgYXR0cnNQcm94eUhhbmRsZXJzKSwKICAgIHNsb3RzOiBlLnNsb3RzLAogICAgZW1pdDogZS5lbWl0LAogICAgZXhwb3NlOiB0LAogIH07Cn0KZnVuY3Rpb24gZ2V0Q29tcG9uZW50UHVibGljSW5zdGFuY2UoZSkgewogIHJldHVybiBlLmV4cG9zZWQKICAgID8gZS5leHBvc2VQcm94eSB8fAogICAgKGUuZXhwb3NlUHJveHkgPSBuZXcgUHJveHkocHJveHlSZWZzKG1hcmtSYXcoZS5leHBvc2VkKSksIHsKICAgICAgZ2V0KHQsIHIpIHsKICAgICAgICBpZiAociBpbiB0KSByZXR1cm4gdFtyXTsKICAgICAgICBpZiAociBpbiBwdWJsaWNQcm9wZXJ0aWVzTWFwKSByZXR1cm4gcHVibGljUHJvcGVydGllc01hcFtyXShlKTsKICAgICAgfSwKICAgICAgaGFzKHQsIHIpIHsKICAgICAgICByZXR1cm4gciBpbiB0IHx8IHIgaW4gcHVibGljUHJvcGVydGllc01hcDsKICAgICAgfSwKICAgIH0pKQogICAgOiBlLnByb3h5Owp9CmNvbnN0IGNsYXNzaWZ5UkUgPSAvKD86XnxbLV9dKShcdykvZywKICBjbGFzc2lmeSA9IChlKSA9PgogICAgZS5yZXBsYWNlKGNsYXNzaWZ5UkUsICh0KSA9PiB0LnRvVXBwZXJDYXNlKCkpLnJlcGxhY2UoL1stX10vZywgIiIpOwpmdW5jdGlvbiBnZXRDb21wb25lbnROYW1lKGUsIHQgPSAhMCkgewogIHJldHVybiBpc0Z1bmN0aW9uJDEoZSkgPyBlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSA6IGUubmFtZSB8fCAodCAmJiBlLl9fbmFtZSk7Cn0KZnVuY3Rpb24gZm9ybWF0Q29tcG9uZW50TmFtZShlLCB0LCByID0gITEpIHsKICBsZXQgbiA9IGdldENvbXBvbmVudE5hbWUodCk7CiAgaWYgKCFuICYmIHQuX19maWxlKSB7CiAgICBjb25zdCBpID0gdC5fX2ZpbGUubWF0Y2goLyhbXi9cXF0rKVwuXHcrJC8pOwogICAgaSAmJiAobiA9IGlbMV0pOwogIH0KICBpZiAoIW4gJiYgZSAmJiBlLnBhcmVudCkgewogICAgY29uc3QgaSA9IChhKSA9PiB7CiAgICAgIGZvciAoY29uc3QgbyBpbiBhKSBpZiAoYVtvXSA9PT0gdCkgcmV0dXJuIG87CiAgICB9OwogICAgbiA9CiAgICAgIGkoZS5jb21wb25lbnRzIHx8IGUucGFyZW50LnR5cGUuY29tcG9uZW50cykgfHwgaShlLmFwcENvbnRleHQuY29tcG9uZW50cyk7CiAgfQogIHJldHVybiBuID8gY2xhc3NpZnkobikgOiByID8gIkFwcCIgOiAiQW5vbnltb3VzIjsKfQpmdW5jdGlvbiBpc0NsYXNzQ29tcG9uZW50KGUpIHsKICByZXR1cm4gaXNGdW5jdGlvbiQxKGUpICYmICJfX3ZjY09wdHMiIGluIGU7Cn0KY29uc3QgY29tcHV0ZWQgPSAoZSwgdCkgPT4gY29tcHV0ZWQkMShlLCB0LCBpc0luU1NSQ29tcG9uZW50U2V0dXApOwpmdW5jdGlvbiBoJDIoZSwgdCwgcikgewogIGNvbnN0IG4gPSBhcmd1bWVudHMubGVuZ3RoOwogIHJldHVybiBuID09PSAyCiAgICA/IGlzT2JqZWN0JDIodCkgJiYgIWlzQXJyYXkkMih0KQogICAgICA/IGlzVk5vZGUkMSh0KQogICAgICAgID8gY3JlYXRlVk5vZGUoZSwgbnVsbCwgW3RdKQogICAgICAgIDogY3JlYXRlVk5vZGUoZSwgdCkKICAgICAgOiBjcmVhdGVWTm9kZShlLCBudWxsLCB0KQogICAgOiAobiA+IDMKICAgICAgPyAociA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMikpCiAgICAgIDogbiA9PT0gMyAmJiBpc1ZOb2RlJDEocikgJiYgKHIgPSBbcl0pLAogICAgICBjcmVhdGVWTm9kZShlLCB0LCByKSk7Cn0KZnVuY3Rpb24gaW5pdEN1c3RvbUZvcm1hdHRlcigpIHsgfQpmdW5jdGlvbiB3aXRoTWVtbyhlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9IHJbbl07CiAgaWYgKGkgJiYgaXNNZW1vU2FtZShpLCBlKSkgcmV0dXJuIGk7CiAgY29uc3QgYSA9IHQoKTsKICByZXR1cm4gKGEubWVtbyA9IGUuc2xpY2UoKSksIChhLmNhY2hlSW5kZXggPSBuKSwgKHJbbl0gPSBhKTsKfQpmdW5jdGlvbiBpc01lbW9TYW1lKGUsIHQpIHsKICBjb25zdCByID0gZS5tZW1vOwogIGlmIChyLmxlbmd0aCAhPSB0Lmxlbmd0aCkgcmV0dXJuICExOwogIGZvciAobGV0IG4gPSAwOyBuIDwgci5sZW5ndGg7IG4rKykgaWYgKGhhc0NoYW5nZWQocltuXSwgdFtuXSkpIHJldHVybiAhMTsKICByZXR1cm4gaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJiBjdXJyZW50QmxvY2sgJiYgY3VycmVudEJsb2NrLnB1c2goZSksICEwOwp9CmNvbnN0IHZlcnNpb24kMSA9ICIzLjUuMTMiLAogIHdhcm4kMiA9IE5PT1AsCiAgRXJyb3JUeXBlU3RyaW5ncyA9IEVycm9yVHlwZVN0cmluZ3MkMSwKICBkZXZ0b29scyQyID0gZGV2dG9vbHMkMSwKICBzZXREZXZ0b29sc0hvb2sgPSBzZXREZXZ0b29sc0hvb2skMSwKICBfc3NyVXRpbHMgPSB7CiAgICBjcmVhdGVDb21wb25lbnRJbnN0YW5jZSwKICAgIHNldHVwQ29tcG9uZW50LAogICAgcmVuZGVyQ29tcG9uZW50Um9vdCwKICAgIHNldEN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSwKICAgIGlzVk5vZGU6IGlzVk5vZGUkMSwKICAgIG5vcm1hbGl6ZVZOb2RlLAogICAgZ2V0Q29tcG9uZW50UHVibGljSW5zdGFuY2UsCiAgICBlbnN1cmVWYWxpZFZOb2RlOiBlbnN1cmVWYWxpZFZOb2RlJDEsCiAgICBwdXNoV2FybmluZ0NvbnRleHQsCiAgICBwb3BXYXJuaW5nQ29udGV4dCwKICB9LAogIHNzclV0aWxzID0gX3NzclV0aWxzLAogIHJlc29sdmVGaWx0ZXIgPSBudWxsLAogIGNvbXBhdFV0aWxzID0gbnVsbCwKICBEZXByZWNhdGlvblR5cGVzID0gbnVsbDsKLyoqCiAqIEB2dWUvcnVudGltZS1kb20gdjMuNS4xMwogKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwogKiBAbGljZW5zZSBNSVQKICoqLyBsZXQgcG9saWN5Owpjb25zdCB0dCA9IHR5cGVvZiB3aW5kb3cgPCAidSIgJiYgd2luZG93LnRydXN0ZWRUeXBlczsKaWYgKHR0KQogIHRyeSB7CiAgICBwb2xpY3kgPSB0dC5jcmVhdGVQb2xpY3koInZ1ZSIsIHsgY3JlYXRlSFRNTDogKGUpID0+IGUgfSk7CiAgfSBjYXRjaCB7IH0KY29uc3QgdW5zYWZlVG9UcnVzdGVkSFRNTCA9IHBvbGljeSA/IChlKSA9PiBwb2xpY3kuY3JlYXRlSFRNTChlKSA6IChlKSA9PiBlLAogIHN2Z05TID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwKICBtYXRobWxOUyA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIiwKICBkb2MgPSB0eXBlb2YgZG9jdW1lbnQgPCAidSIgPyBkb2N1bWVudCA6IG51bGwsCiAgdGVtcGxhdGVDb250YWluZXIgPSBkb2MgJiYgZG9jLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIiksCiAgbm9kZU9wcyA9IHsKICAgIGluc2VydDogKGUsIHQsIHIpID0+IHsKICAgICAgdC5pbnNlcnRCZWZvcmUoZSwgciB8fCBudWxsKTsKICAgIH0sCiAgICByZW1vdmU6IChlKSA9PiB7CiAgICAgIGNvbnN0IHQgPSBlLnBhcmVudE5vZGU7CiAgICAgIHQgJiYgdC5yZW1vdmVDaGlsZChlKTsKICAgIH0sCiAgICBjcmVhdGVFbGVtZW50OiAoZSwgdCwgciwgbikgPT4gewogICAgICBjb25zdCBpID0KICAgICAgICB0ID09PSAic3ZnIgogICAgICAgICAgPyBkb2MuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCBlKQogICAgICAgICAgOiB0ID09PSAibWF0aG1sIgogICAgICAgICAgICA/IGRvYy5jcmVhdGVFbGVtZW50TlMobWF0aG1sTlMsIGUpCiAgICAgICAgICAgIDogcgogICAgICAgICAgICAgID8gZG9jLmNyZWF0ZUVsZW1lbnQoZSwgeyBpczogciB9KQogICAgICAgICAgICAgIDogZG9jLmNyZWF0ZUVsZW1lbnQoZSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgZSA9PT0gInNlbGVjdCIgJiYKICAgICAgICBuICYmCiAgICAgICAgbi5tdWx0aXBsZSAhPSBudWxsICYmCiAgICAgICAgaS5zZXRBdHRyaWJ1dGUoIm11bHRpcGxlIiwgbi5tdWx0aXBsZSksCiAgICAgICAgaQogICAgICApOwogICAgfSwKICAgIGNyZWF0ZVRleHQ6IChlKSA9PiBkb2MuY3JlYXRlVGV4dE5vZGUoZSksCiAgICBjcmVhdGVDb21tZW50OiAoZSkgPT4gZG9jLmNyZWF0ZUNvbW1lbnQoZSksCiAgICBzZXRUZXh0OiAoZSwgdCkgPT4gewogICAgICBlLm5vZGVWYWx1ZSA9IHQ7CiAgICB9LAogICAgc2V0RWxlbWVudFRleHQ6IChlLCB0KSA9PiB7CiAgICAgIGUudGV4dENvbnRlbnQgPSB0OwogICAgfSwKICAgIHBhcmVudE5vZGU6IChlKSA9PiBlLnBhcmVudE5vZGUsCiAgICBuZXh0U2libGluZzogKGUpID0+IGUubmV4dFNpYmxpbmcsCiAgICBxdWVyeVNlbGVjdG9yOiAoZSkgPT4gZG9jLnF1ZXJ5U2VsZWN0b3IoZSksCiAgICBzZXRTY29wZUlkKGUsIHQpIHsKICAgICAgZS5zZXRBdHRyaWJ1dGUodCwgIiIpOwogICAgfSwKICAgIGluc2VydFN0YXRpY0NvbnRlbnQoZSwgdCwgciwgbiwgaSwgYSkgewogICAgICBjb25zdCBvID0gciA/IHIucHJldmlvdXNTaWJsaW5nIDogdC5sYXN0Q2hpbGQ7CiAgICAgIGlmIChpICYmIChpID09PSBhIHx8IGkubmV4dFNpYmxpbmcpKQogICAgICAgIGZvciAoCiAgICAgICAgICA7CiAgICAgICAgICB0Lmluc2VydEJlZm9yZShpLmNsb25lTm9kZSghMCksIHIpLAogICAgICAgICAgIShpID09PSBhIHx8ICEoaSA9IGkubmV4dFNpYmxpbmcpKTsKCiAgICAgICAgKTsKICAgICAgZWxzZSB7CiAgICAgICAgdGVtcGxhdGVDb250YWluZXIuaW5uZXJIVE1MID0gdW5zYWZlVG9UcnVzdGVkSFRNTCgKICAgICAgICAgIG4gPT09ICJzdmciCiAgICAgICAgICAgID8gYDxzdmc+JHtlfTwvc3ZnPmAKICAgICAgICAgICAgOiBuID09PSAibWF0aG1sIgogICAgICAgICAgICAgID8gYDxtYXRoPiR7ZX08L21hdGg+YAogICAgICAgICAgICAgIDogZQogICAgICAgICk7CiAgICAgICAgY29uc3QgbCA9IHRlbXBsYXRlQ29udGFpbmVyLmNvbnRlbnQ7CiAgICAgICAgaWYgKG4gPT09ICJzdmciIHx8IG4gPT09ICJtYXRobWwiKSB7CiAgICAgICAgICBjb25zdCBjID0gbC5maXJzdENoaWxkOwogICAgICAgICAgZm9yICg7IGMuZmlyc3RDaGlsZDspIGwuYXBwZW5kQ2hpbGQoYy5maXJzdENoaWxkKTsKICAgICAgICAgIGwucmVtb3ZlQ2hpbGQoYyk7CiAgICAgICAgfQogICAgICAgIHQuaW5zZXJ0QmVmb3JlKGwsIHIpOwogICAgICB9CiAgICAgIHJldHVybiBbCiAgICAgICAgbyA/IG8ubmV4dFNpYmxpbmcgOiB0LmZpcnN0Q2hpbGQsCiAgICAgICAgciA/IHIucHJldmlvdXNTaWJsaW5nIDogdC5sYXN0Q2hpbGQsCiAgICAgIF07CiAgICB9LAogIH0sCiAgVFJBTlNJVElPTiA9ICJ0cmFuc2l0aW9uIiwKICBBTklNQVRJT04gPSAiYW5pbWF0aW9uIiwKICB2dGNLZXkgPSBTeW1ib2woIl92dGMiKSwKICBET01UcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzID0gewogICAgbmFtZTogU3RyaW5nLAogICAgdHlwZTogU3RyaW5nLAogICAgY3NzOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6ICEwIH0sCiAgICBkdXJhdGlvbjogW1N0cmluZywgTnVtYmVyLCBPYmplY3RdLAogICAgZW50ZXJGcm9tQ2xhc3M6IFN0cmluZywKICAgIGVudGVyQWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGVudGVyVG9DbGFzczogU3RyaW5nLAogICAgYXBwZWFyRnJvbUNsYXNzOiBTdHJpbmcsCiAgICBhcHBlYXJBY3RpdmVDbGFzczogU3RyaW5nLAogICAgYXBwZWFyVG9DbGFzczogU3RyaW5nLAogICAgbGVhdmVGcm9tQ2xhc3M6IFN0cmluZywKICAgIGxlYXZlQWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGxlYXZlVG9DbGFzczogU3RyaW5nLAogIH0sCiAgVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycyA9IGV4dGVuZCgKICAgIHt9LAogICAgQmFzZVRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsCiAgICBET01UcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzCiAgKSwKICBkZWNvcmF0ZSQxID0gKGUpID0+ICgKICAgIChlLmRpc3BsYXlOYW1lID0gIlRyYW5zaXRpb24iKSwgKGUucHJvcHMgPSBUcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzKSwgZQogICksCiAgVHJhbnNpdGlvbiA9IGRlY29yYXRlJDEoKGUsIHsgc2xvdHM6IHQgfSkgPT4KICAgIGgkMihCYXNlVHJhbnNpdGlvbiwgcmVzb2x2ZVRyYW5zaXRpb25Qcm9wcyhlKSwgdCkKICApLAogIGNhbGxIb29rID0gKGUsIHQgPSBbXSkgPT4gewogICAgaXNBcnJheSQyKGUpID8gZS5mb3JFYWNoKChyKSA9PiByKC4uLnQpKSA6IGUgJiYgZSguLi50KTsKICB9LAogIGhhc0V4cGxpY2l0Q2FsbGJhY2sgPSAoZSkgPT4KICAgIGUgPyAoaXNBcnJheSQyKGUpID8gZS5zb21lKCh0KSA9PiB0Lmxlbmd0aCA+IDEpIDogZS5sZW5ndGggPiAxKSA6ICExOwpmdW5jdGlvbiByZXNvbHZlVHJhbnNpdGlvblByb3BzKGUpIHsKICBjb25zdCB0ID0ge307CiAgZm9yIChjb25zdCBLIGluIGUpIEsgaW4gRE9NVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycyB8fCAodFtLXSA9IGVbS10pOwogIGlmIChlLmNzcyA9PT0gITEpIHJldHVybiB0OwogIGNvbnN0IHsKICAgIG5hbWU6IHIgPSAidiIsCiAgICB0eXBlOiBuLAogICAgZHVyYXRpb246IGksCiAgICBlbnRlckZyb21DbGFzczogYSA9IGAke3J9LWVudGVyLWZyb21gLAogICAgZW50ZXJBY3RpdmVDbGFzczogbyA9IGAke3J9LWVudGVyLWFjdGl2ZWAsCiAgICBlbnRlclRvQ2xhc3M6IGwgPSBgJHtyfS1lbnRlci10b2AsCiAgICBhcHBlYXJGcm9tQ2xhc3M6IGMgPSBhLAogICAgYXBwZWFyQWN0aXZlQ2xhc3M6IHUgPSBvLAogICAgYXBwZWFyVG9DbGFzczogZCA9IGwsCiAgICBsZWF2ZUZyb21DbGFzczogRSA9IGAke3J9LWxlYXZlLWZyb21gLAogICAgbGVhdmVBY3RpdmVDbGFzczogYiA9IGAke3J9LWxlYXZlLWFjdGl2ZWAsCiAgICBsZWF2ZVRvQ2xhc3M6IFAgPSBgJHtyfS1sZWF2ZS10b2AsCiAgfSA9IGUsCiAgICBSID0gbm9ybWFsaXplRHVyYXRpb24oaSksCiAgICBUID0gUiAmJiBSWzBdLAogICAgTSA9IFIgJiYgUlsxXSwKICAgIHsKICAgICAgb25CZWZvcmVFbnRlcjogeCwKICAgICAgb25FbnRlcjogaywKICAgICAgb25FbnRlckNhbmNlbGxlZDogUywKICAgICAgb25MZWF2ZTogQSwKICAgICAgb25MZWF2ZUNhbmNlbGxlZDogTywKICAgICAgb25CZWZvcmVBcHBlYXI6IEYgPSB4LAogICAgICBvbkFwcGVhcjogRCA9IGssCiAgICAgIG9uQXBwZWFyQ2FuY2VsbGVkOiBIID0gUywKICAgIH0gPSB0LAogICAgJCA9IChLLCBlZSwgbGUsIHJlKSA9PiB7CiAgICAgIChLLl9lbnRlckNhbmNlbGxlZCA9IHJlKSwKICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoSywgZWUgPyBkIDogbCksCiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKEssIGVlID8gdSA6IG8pLAogICAgICAgIGxlICYmIGxlKCk7CiAgICB9LAogICAgcSA9IChLLCBlZSkgPT4gewogICAgICAoSy5faXNMZWF2aW5nID0gITEpLAogICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhLLCBFKSwKICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoSywgUCksCiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKEssIGIpLAogICAgICAgIGVlICYmIGVlKCk7CiAgICB9LAogICAgSiA9IChLKSA9PiAoZWUsIGxlKSA9PiB7CiAgICAgIGNvbnN0IHJlID0gSyA/IEQgOiBrLAogICAgICAgIEIgPSAoKSA9PiAkKGVlLCBLLCBsZSk7CiAgICAgIGNhbGxIb29rKHJlLCBbZWUsIEJdKSwKICAgICAgICBuZXh0RnJhbWUoKCkgPT4gewogICAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVlLCBLID8gYyA6IGEpLAogICAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWUsIEsgPyBkIDogbCksCiAgICAgICAgICAgIGhhc0V4cGxpY2l0Q2FsbGJhY2socmUpIHx8IHdoZW5UcmFuc2l0aW9uRW5kcyhlZSwgbiwgVCwgQik7CiAgICAgICAgfSk7CiAgICB9OwogIHJldHVybiBleHRlbmQodCwgewogICAgb25CZWZvcmVFbnRlcihLKSB7CiAgICAgIGNhbGxIb29rKHgsIFtLXSksIGFkZFRyYW5zaXRpb25DbGFzcyhLLCBhKSwgYWRkVHJhbnNpdGlvbkNsYXNzKEssIG8pOwogICAgfSwKICAgIG9uQmVmb3JlQXBwZWFyKEspIHsKICAgICAgY2FsbEhvb2soRiwgW0tdKSwgYWRkVHJhbnNpdGlvbkNsYXNzKEssIGMpLCBhZGRUcmFuc2l0aW9uQ2xhc3MoSywgdSk7CiAgICB9LAogICAgb25FbnRlcjogSighMSksCiAgICBvbkFwcGVhcjogSighMCksCiAgICBvbkxlYXZlKEssIGVlKSB7CiAgICAgIEsuX2lzTGVhdmluZyA9ICEwOwogICAgICBjb25zdCBsZSA9ICgpID0+IHEoSywgZWUpOwogICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoSywgRSksCiAgICAgICAgSy5fZW50ZXJDYW5jZWxsZWQKICAgICAgICAgID8gKGFkZFRyYW5zaXRpb25DbGFzcyhLLCBiKSwgZm9yY2VSZWZsb3coKSkKICAgICAgICAgIDogKGZvcmNlUmVmbG93KCksIGFkZFRyYW5zaXRpb25DbGFzcyhLLCBiKSksCiAgICAgICAgbmV4dEZyYW1lKCgpID0+IHsKICAgICAgICAgIEsuX2lzTGVhdmluZyAmJgogICAgICAgICAgICAocmVtb3ZlVHJhbnNpdGlvbkNsYXNzKEssIEUpLAogICAgICAgICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhLLCBQKSwKICAgICAgICAgICAgICBoYXNFeHBsaWNpdENhbGxiYWNrKEEpIHx8IHdoZW5UcmFuc2l0aW9uRW5kcyhLLCBuLCBNLCBsZSkpOwogICAgICAgIH0pLAogICAgICAgIGNhbGxIb29rKEEsIFtLLCBsZV0pOwogICAgfSwKICAgIG9uRW50ZXJDYW5jZWxsZWQoSykgewogICAgICAkKEssICExLCB2b2lkIDAsICEwKSwgY2FsbEhvb2soUywgW0tdKTsKICAgIH0sCiAgICBvbkFwcGVhckNhbmNlbGxlZChLKSB7CiAgICAgICQoSywgITAsIHZvaWQgMCwgITApLCBjYWxsSG9vayhILCBbS10pOwogICAgfSwKICAgIG9uTGVhdmVDYW5jZWxsZWQoSykgewogICAgICBxKEspLCBjYWxsSG9vayhPLCBbS10pOwogICAgfSwKICB9KTsKfQpmdW5jdGlvbiBub3JtYWxpemVEdXJhdGlvbihlKSB7CiAgaWYgKGUgPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgaWYgKGlzT2JqZWN0JDIoZSkpIHJldHVybiBbTnVtYmVyT2YoZS5lbnRlciksIE51bWJlck9mKGUubGVhdmUpXTsKICB7CiAgICBjb25zdCB0ID0gTnVtYmVyT2YoZSk7CiAgICByZXR1cm4gW3QsIHRdOwogIH0KfQpmdW5jdGlvbiBOdW1iZXJPZihlKSB7CiAgcmV0dXJuIHRvTnVtYmVyKGUpOwp9CmZ1bmN0aW9uIGFkZFRyYW5zaXRpb25DbGFzcyhlLCB0KSB7CiAgdC5zcGxpdCgvXHMrLykuZm9yRWFjaCgocikgPT4gciAmJiBlLmNsYXNzTGlzdC5hZGQocikpLAogICAgKGVbdnRjS2V5XSB8fCAoZVt2dGNLZXldID0gbmV3IFNldCgpKSkuYWRkKHQpOwp9CmZ1bmN0aW9uIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlLCB0KSB7CiAgdC5zcGxpdCgvXHMrLykuZm9yRWFjaCgobikgPT4gbiAmJiBlLmNsYXNzTGlzdC5yZW1vdmUobikpOwogIGNvbnN0IHIgPSBlW3Z0Y0tleV07CiAgciAmJiAoci5kZWxldGUodCksIHIuc2l6ZSB8fCAoZVt2dGNLZXldID0gdm9pZCAwKSk7Cn0KZnVuY3Rpb24gbmV4dEZyYW1lKGUpIHsKICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOwogIH0pOwp9CmxldCBlbmRJZCA9IDA7CmZ1bmN0aW9uIHdoZW5UcmFuc2l0aW9uRW5kcyhlLCB0LCByLCBuKSB7CiAgY29uc3QgaSA9IChlLl9lbmRJZCA9ICsrZW5kSWQpLAogICAgYSA9ICgpID0+IHsKICAgICAgaSA9PT0gZS5fZW5kSWQgJiYgbigpOwogICAgfTsKICBpZiAociAhPSBudWxsKSByZXR1cm4gc2V0VGltZW91dChhLCByKTsKICBjb25zdCB7IHR5cGU6IG8sIHRpbWVvdXQ6IGwsIHByb3BDb3VudDogYyB9ID0gZ2V0VHJhbnNpdGlvbkluZm8oZSwgdCk7CiAgaWYgKCFvKSByZXR1cm4gbigpOwogIGNvbnN0IHUgPSBvICsgImVuZCI7CiAgbGV0IGQgPSAwOwogIGNvbnN0IEUgPSAoKSA9PiB7CiAgICBlLnJlbW92ZUV2ZW50TGlzdGVuZXIodSwgYiksIGEoKTsKICB9LAogICAgYiA9IChQKSA9PiB7CiAgICAgIFAudGFyZ2V0ID09PSBlICYmICsrZCA+PSBjICYmIEUoKTsKICAgIH07CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkIDwgYyAmJiBFKCk7CiAgfSwgbCArIDEpLAogICAgZS5hZGRFdmVudExpc3RlbmVyKHUsIGIpOwp9CmZ1bmN0aW9uIGdldFRyYW5zaXRpb25JbmZvKGUsIHQpIHsKICBjb25zdCByID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZSksCiAgICBuID0gKFIpID0+IChyW1JdIHx8ICIiKS5zcGxpdCgiLCAiKSwKICAgIGkgPSBuKGAke1RSQU5TSVRJT059RGVsYXlgKSwKICAgIGEgPSBuKGAke1RSQU5TSVRJT059RHVyYXRpb25gKSwKICAgIG8gPSBnZXRUaW1lb3V0KGksIGEpLAogICAgbCA9IG4oYCR7QU5JTUFUSU9OfURlbGF5YCksCiAgICBjID0gbihgJHtBTklNQVRJT059RHVyYXRpb25gKSwKICAgIHUgPSBnZXRUaW1lb3V0KGwsIGMpOwogIGxldCBkID0gbnVsbCwKICAgIEUgPSAwLAogICAgYiA9IDA7CiAgdCA9PT0gVFJBTlNJVElPTgogICAgPyBvID4gMCAmJiAoKGQgPSBUUkFOU0lUSU9OKSwgKEUgPSBvKSwgKGIgPSBhLmxlbmd0aCkpCiAgICA6IHQgPT09IEFOSU1BVElPTgogICAgICA/IHUgPiAwICYmICgoZCA9IEFOSU1BVElPTiksIChFID0gdSksIChiID0gYy5sZW5ndGgpKQogICAgICA6ICgoRSA9IE1hdGgubWF4KG8sIHUpKSwKICAgICAgICAoZCA9IEUgPiAwID8gKG8gPiB1ID8gVFJBTlNJVElPTiA6IEFOSU1BVElPTikgOiBudWxsKSwKICAgICAgICAoYiA9IGQgPyAoZCA9PT0gVFJBTlNJVElPTiA/IGEubGVuZ3RoIDogYy5sZW5ndGgpIDogMCkpOwogIGNvbnN0IFAgPQogICAgZCA9PT0gVFJBTlNJVElPTiAmJgogICAgL1xiKHRyYW5zZm9ybXxhbGwpKCx8JCkvLnRlc3QobihgJHtUUkFOU0lUSU9OfVByb3BlcnR5YCkudG9TdHJpbmcoKSk7CiAgcmV0dXJuIHsgdHlwZTogZCwgdGltZW91dDogRSwgcHJvcENvdW50OiBiLCBoYXNUcmFuc2Zvcm06IFAgfTsKfQpmdW5jdGlvbiBnZXRUaW1lb3V0KGUsIHQpIHsKICBmb3IgKDsgZS5sZW5ndGggPCB0Lmxlbmd0aDspIGUgPSBlLmNvbmNhdChlKTsKICByZXR1cm4gTWF0aC5tYXgoLi4udC5tYXAoKHIsIG4pID0+IHRvTXMocikgKyB0b01zKGVbbl0pKSk7Cn0KZnVuY3Rpb24gdG9NcyhlKSB7CiAgcmV0dXJuIGUgPT09ICJhdXRvIiA/IDAgOiBOdW1iZXIoZS5zbGljZSgwLCAtMSkucmVwbGFjZSgiLCIsICIuIikpICogMWUzOwp9CmZ1bmN0aW9uIGZvcmNlUmVmbG93KCkgewogIHJldHVybiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKfQpmdW5jdGlvbiBwYXRjaENsYXNzKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZVt2dGNLZXldOwogIG4gJiYgKHQgPSAodCA/IFt0LCAuLi5uXSA6IFsuLi5uXSkuam9pbigiICIpKSwKICAgIHQgPT0gbnVsbAogICAgICA/IGUucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpCiAgICAgIDogcgogICAgICAgID8gZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgdCkKICAgICAgICA6IChlLmNsYXNzTmFtZSA9IHQpOwp9CmNvbnN0IHZTaG93T3JpZ2luYWxEaXNwbGF5ID0gU3ltYm9sKCJfdm9kIiksCiAgdlNob3dIaWRkZW4gPSBTeW1ib2woIl92c2giKSwKICB2U2hvdyA9IHsKICAgIGJlZm9yZU1vdW50KGUsIHsgdmFsdWU6IHQgfSwgeyB0cmFuc2l0aW9uOiByIH0pIHsKICAgICAgKGVbdlNob3dPcmlnaW5hbERpc3BsYXldID0KICAgICAgICBlLnN0eWxlLmRpc3BsYXkgPT09ICJub25lIiA/ICIiIDogZS5zdHlsZS5kaXNwbGF5KSwKICAgICAgICByICYmIHQgPyByLmJlZm9yZUVudGVyKGUpIDogc2V0RGlzcGxheShlLCB0KTsKICAgIH0sCiAgICBtb3VudGVkKGUsIHsgdmFsdWU6IHQgfSwgeyB0cmFuc2l0aW9uOiByIH0pIHsKICAgICAgciAmJiB0ICYmIHIuZW50ZXIoZSk7CiAgICB9LAogICAgdXBkYXRlZChlLCB7IHZhbHVlOiB0LCBvbGRWYWx1ZTogciB9LCB7IHRyYW5zaXRpb246IG4gfSkgewogICAgICAhdCAhPSAhciAmJgogICAgICAgIChuCiAgICAgICAgICA/IHQKICAgICAgICAgICAgPyAobi5iZWZvcmVFbnRlcihlKSwgc2V0RGlzcGxheShlLCAhMCksIG4uZW50ZXIoZSkpCiAgICAgICAgICAgIDogbi5sZWF2ZShlLCAoKSA9PiB7CiAgICAgICAgICAgICAgc2V0RGlzcGxheShlLCAhMSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICA6IHNldERpc3BsYXkoZSwgdCkpOwogICAgfSwKICAgIGJlZm9yZVVubW91bnQoZSwgeyB2YWx1ZTogdCB9KSB7CiAgICAgIHNldERpc3BsYXkoZSwgdCk7CiAgICB9LAogIH07CmZ1bmN0aW9uIHNldERpc3BsYXkoZSwgdCkgewogIChlLnN0eWxlLmRpc3BsYXkgPSB0ID8gZVt2U2hvd09yaWdpbmFsRGlzcGxheV0gOiAibm9uZSIpLAogICAgKGVbdlNob3dIaWRkZW5dID0gIXQpOwp9CmZ1bmN0aW9uIGluaXRWU2hvd0ZvclNTUigpIHsKICB2U2hvdy5nZXRTU1JQcm9wcyA9ICh7IHZhbHVlOiBlIH0pID0+IHsKICAgIGlmICghZSkgcmV0dXJuIHsgc3R5bGU6IHsgZGlzcGxheTogIm5vbmUiIH0gfTsKICB9Owp9CmNvbnN0IENTU19WQVJfVEVYVCA9IFN5bWJvbCgiIik7CmZ1bmN0aW9uIHVzZUNzc1ZhcnMoZSkgewogIGNvbnN0IHQgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGlmICghdCkgcmV0dXJuOwogIGNvbnN0IHIgPSAodC51dCA9IChpID0gZSh0LnByb3h5KSkgPT4gewogICAgQXJyYXkuZnJvbSgKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgW2RhdGEtdi1vd25lcj0iJHt0LnVpZH0iXWApCiAgICApLmZvckVhY2goKGEpID0+IHNldFZhcnNPbk5vZGUoYSwgaSkpOwogIH0pLAogICAgbiA9ICgpID0+IHsKICAgICAgY29uc3QgaSA9IGUodC5wcm94eSk7CiAgICAgIHQuY2UgPyBzZXRWYXJzT25Ob2RlKHQuY2UsIGkpIDogc2V0VmFyc09uVk5vZGUodC5zdWJUcmVlLCBpKSwgcihpKTsKICAgIH07CiAgb25CZWZvcmVVcGRhdGUoKCkgPT4gewogICAgcXVldWVQb3N0Rmx1c2hDYihuKTsKICB9KSwKICAgIG9uTW91bnRlZCgoKSA9PiB7CiAgICAgIHdhdGNoKG4sIE5PT1AsIHsgZmx1c2g6ICJwb3N0IiB9KTsKICAgICAgY29uc3QgaSA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG4pOwogICAgICBpLm9ic2VydmUodC5zdWJUcmVlLmVsLnBhcmVudE5vZGUsIHsgY2hpbGRMaXN0OiAhMCB9KSwKICAgICAgICBvblVubW91bnRlZCgoKSA9PiBpLmRpc2Nvbm5lY3QoKSk7CiAgICB9KTsKfQpmdW5jdGlvbiBzZXRWYXJzT25WTm9kZShlLCB0KSB7CiAgaWYgKGUuc2hhcGVGbGFnICYgMTI4KSB7CiAgICBjb25zdCByID0gZS5zdXNwZW5zZTsKICAgIChlID0gci5hY3RpdmVCcmFuY2gpLAogICAgICByLnBlbmRpbmdCcmFuY2ggJiYKICAgICAgIXIuaXNIeWRyYXRpbmcgJiYKICAgICAgci5lZmZlY3RzLnB1c2goKCkgPT4gewogICAgICAgIHNldFZhcnNPblZOb2RlKHIuYWN0aXZlQnJhbmNoLCB0KTsKICAgICAgfSk7CiAgfQogIGZvciAoOyBlLmNvbXBvbmVudDspIGUgPSBlLmNvbXBvbmVudC5zdWJUcmVlOwogIGlmIChlLnNoYXBlRmxhZyAmIDEgJiYgZS5lbCkgc2V0VmFyc09uTm9kZShlLmVsLCB0KTsKICBlbHNlIGlmIChlLnR5cGUgPT09IEZyYWdtZW50KSBlLmNoaWxkcmVuLmZvckVhY2goKHIpID0+IHNldFZhcnNPblZOb2RlKHIsIHQpKTsKICBlbHNlIGlmIChlLnR5cGUgPT09IFN0YXRpYykgewogICAgbGV0IHsgZWw6IHIsIGFuY2hvcjogbiB9ID0gZTsKICAgIGZvciAoOyByICYmIChzZXRWYXJzT25Ob2RlKHIsIHQpLCByICE9PSBuKTspIHIgPSByLm5leHRTaWJsaW5nOwogIH0KfQpmdW5jdGlvbiBzZXRWYXJzT25Ob2RlKGUsIHQpIHsKICBpZiAoZS5ub2RlVHlwZSA9PT0gMSkgewogICAgY29uc3QgciA9IGUuc3R5bGU7CiAgICBsZXQgbiA9ICIiOwogICAgZm9yIChjb25zdCBpIGluIHQpIHIuc2V0UHJvcGVydHkoYC0tJHtpfWAsIHRbaV0pLCAobiArPSBgLS0ke2l9OiAke3RbaV19O2ApOwogICAgcltDU1NfVkFSX1RFWFRdID0gbjsKICB9Cn0KY29uc3QgZGlzcGxheVJFID0gLyhefDspXHMqZGlzcGxheVxzKjovOwpmdW5jdGlvbiBwYXRjaFN0eWxlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS5zdHlsZSwKICAgIGkgPSBpc1N0cmluZyQxKHIpOwogIGxldCBhID0gITE7CiAgaWYgKHIgJiYgIWkpIHsKICAgIGlmICh0KQogICAgICBpZiAoaXNTdHJpbmckMSh0KSkKICAgICAgICBmb3IgKGNvbnN0IG8gb2YgdC5zcGxpdCgiOyIpKSB7CiAgICAgICAgICBjb25zdCBsID0gby5zbGljZSgwLCBvLmluZGV4T2YoIjoiKSkudHJpbSgpOwogICAgICAgICAgcltsXSA9PSBudWxsICYmIHNldFN0eWxlKG4sIGwsICIiKTsKICAgICAgICB9CiAgICAgIGVsc2UgZm9yIChjb25zdCBvIGluIHQpIHJbb10gPT0gbnVsbCAmJiBzZXRTdHlsZShuLCBvLCAiIik7CiAgICBmb3IgKGNvbnN0IG8gaW4gcikgbyA9PT0gImRpc3BsYXkiICYmIChhID0gITApLCBzZXRTdHlsZShuLCBvLCByW29dKTsKICB9IGVsc2UgaWYgKGkpIHsKICAgIGlmICh0ICE9PSByKSB7CiAgICAgIGNvbnN0IG8gPSBuW0NTU19WQVJfVEVYVF07CiAgICAgIG8gJiYgKHIgKz0gIjsiICsgbyksIChuLmNzc1RleHQgPSByKSwgKGEgPSBkaXNwbGF5UkUudGVzdChyKSk7CiAgICB9CiAgfSBlbHNlIHQgJiYgZS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIik7CiAgdlNob3dPcmlnaW5hbERpc3BsYXkgaW4gZSAmJgogICAgKChlW3ZTaG93T3JpZ2luYWxEaXNwbGF5XSA9IGEgPyBuLmRpc3BsYXkgOiAiIiksCiAgICAgIGVbdlNob3dIaWRkZW5dICYmIChuLmRpc3BsYXkgPSAibm9uZSIpKTsKfQpjb25zdCBpbXBvcnRhbnRSRSA9IC9ccyohaW1wb3J0YW50JC87CmZ1bmN0aW9uIHNldFN0eWxlKGUsIHQsIHIpIHsKICBpZiAoaXNBcnJheSQyKHIpKSByLmZvckVhY2goKG4pID0+IHNldFN0eWxlKGUsIHQsIG4pKTsKICBlbHNlIGlmICgociA9PSBudWxsICYmIChyID0gIiIpLCB0LnN0YXJ0c1dpdGgoIi0tIikpKSBlLnNldFByb3BlcnR5KHQsIHIpOwogIGVsc2UgewogICAgY29uc3QgbiA9IGF1dG9QcmVmaXgoZSwgdCk7CiAgICBpbXBvcnRhbnRSRS50ZXN0KHIpCiAgICAgID8gZS5zZXRQcm9wZXJ0eShoeXBoZW5hdGUobiksIHIucmVwbGFjZShpbXBvcnRhbnRSRSwgIiIpLCAiaW1wb3J0YW50IikKICAgICAgOiAoZVtuXSA9IHIpOwogIH0KfQpjb25zdCBwcmVmaXhlcyA9IFsiV2Via2l0IiwgIk1veiIsICJtcyJdLAogIHByZWZpeENhY2hlID0ge307CmZ1bmN0aW9uIGF1dG9QcmVmaXgoZSwgdCkgewogIGNvbnN0IHIgPSBwcmVmaXhDYWNoZVt0XTsKICBpZiAocikgcmV0dXJuIHI7CiAgbGV0IG4gPSBjYW1lbGl6ZSh0KTsKICBpZiAobiAhPT0gImZpbHRlciIgJiYgbiBpbiBlKSByZXR1cm4gKHByZWZpeENhY2hlW3RdID0gbik7CiAgbiA9IGNhcGl0YWxpemUkMShuKTsKICBmb3IgKGxldCBpID0gMDsgaSA8IHByZWZpeGVzLmxlbmd0aDsgaSsrKSB7CiAgICBjb25zdCBhID0gcHJlZml4ZXNbaV0gKyBuOwogICAgaWYgKGEgaW4gZSkgcmV0dXJuIChwcmVmaXhDYWNoZVt0XSA9IGEpOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCB4bGlua05TID0gImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiOwpmdW5jdGlvbiBwYXRjaEF0dHIoZSwgdCwgciwgbiwgaSwgYSA9IGlzU3BlY2lhbEJvb2xlYW5BdHRyKHQpKSB7CiAgbiAmJiB0LnN0YXJ0c1dpdGgoInhsaW5rOiIpCiAgICA/IHIgPT0gbnVsbAogICAgICA/IGUucmVtb3ZlQXR0cmlidXRlTlMoeGxpbmtOUywgdC5zbGljZSg2LCB0Lmxlbmd0aCkpCiAgICAgIDogZS5zZXRBdHRyaWJ1dGVOUyh4bGlua05TLCB0LCByKQogICAgOiByID09IG51bGwgfHwgKGEgJiYgIWluY2x1ZGVCb29sZWFuQXR0cihyKSkKICAgICAgPyBlLnJlbW92ZUF0dHJpYnV0ZSh0KQogICAgICA6IGUuc2V0QXR0cmlidXRlKHQsIGEgPyAiIiA6IGlzU3ltYm9sJDEocikgPyBTdHJpbmcocikgOiByKTsKfQpmdW5jdGlvbiBwYXRjaERPTVByb3AoZSwgdCwgciwgbiwgaSkgewogIGlmICh0ID09PSAiaW5uZXJIVE1MIiB8fCB0ID09PSAidGV4dENvbnRlbnQiKSB7CiAgICByICE9IG51bGwgJiYgKGVbdF0gPSB0ID09PSAiaW5uZXJIVE1MIiA/IHVuc2FmZVRvVHJ1c3RlZEhUTUwocikgOiByKTsKICAgIHJldHVybjsKICB9CiAgY29uc3QgYSA9IGUudGFnTmFtZTsKICBpZiAodCA9PT0gInZhbHVlIiAmJiBhICE9PSAiUFJPR1JFU1MiICYmICFhLmluY2x1ZGVzKCItIikpIHsKICAgIGNvbnN0IGwgPSBhID09PSAiT1BUSU9OIiA/IGUuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpIHx8ICIiIDogZS52YWx1ZSwKICAgICAgYyA9IHIgPT0gbnVsbCA/IChlLnR5cGUgPT09ICJjaGVja2JveCIgPyAib24iIDogIiIpIDogU3RyaW5nKHIpOwogICAgKGwgIT09IGMgfHwgISgiX3ZhbHVlIiBpbiBlKSkgJiYgKGUudmFsdWUgPSBjKSwKICAgICAgciA9PSBudWxsICYmIGUucmVtb3ZlQXR0cmlidXRlKHQpLAogICAgICAoZS5fdmFsdWUgPSByKTsKICAgIHJldHVybjsKICB9CiAgbGV0IG8gPSAhMTsKICBpZiAociA9PT0gIiIgfHwgciA9PSBudWxsKSB7CiAgICBjb25zdCBsID0gdHlwZW9mIGVbdF07CiAgICBsID09PSAiYm9vbGVhbiIKICAgICAgPyAociA9IGluY2x1ZGVCb29sZWFuQXR0cihyKSkKICAgICAgOiByID09IG51bGwgJiYgbCA9PT0gInN0cmluZyIKICAgICAgICA/ICgociA9ICIiKSwgKG8gPSAhMCkpCiAgICAgICAgOiBsID09PSAibnVtYmVyIiAmJiAoKHIgPSAwKSwgKG8gPSAhMCkpOwogIH0KICB0cnkgewogICAgZVt0XSA9IHI7CiAgfSBjYXRjaCB7IH0KICBvICYmIGUucmVtb3ZlQXR0cmlidXRlKGkgfHwgdCk7Cn0KZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcihlLCB0LCByLCBuKSB7CiAgZS5hZGRFdmVudExpc3RlbmVyKHQsIHIsIG4pOwp9CmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIoZSwgdCwgciwgbikgewogIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCByLCBuKTsKfQpjb25zdCB2ZWlLZXkgPSBTeW1ib2woIl92ZWkiKTsKZnVuY3Rpb24gcGF0Y2hFdmVudChlLCB0LCByLCBuLCBpID0gbnVsbCkgewogIGNvbnN0IGEgPSBlW3ZlaUtleV0gfHwgKGVbdmVpS2V5XSA9IHt9KSwKICAgIG8gPSBhW3RdOwogIGlmIChuICYmIG8pIG8udmFsdWUgPSBuOwogIGVsc2UgewogICAgY29uc3QgW2wsIGNdID0gcGFyc2VOYW1lKHQpOwogICAgaWYgKG4pIHsKICAgICAgY29uc3QgdSA9IChhW3RdID0gY3JlYXRlSW52b2tlcihuLCBpKSk7CiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgbCwgdSwgYyk7CiAgICB9IGVsc2UgbyAmJiAocmVtb3ZlRXZlbnRMaXN0ZW5lcihlLCBsLCBvLCBjKSwgKGFbdF0gPSB2b2lkIDApKTsKICB9Cn0KY29uc3Qgb3B0aW9uc01vZGlmaWVyUkUgPSAvKD86T25jZXxQYXNzaXZlfENhcHR1cmUpJC87CmZ1bmN0aW9uIHBhcnNlTmFtZShlKSB7CiAgbGV0IHQ7CiAgaWYgKG9wdGlvbnNNb2RpZmllclJFLnRlc3QoZSkpIHsKICAgIHQgPSB7fTsKICAgIGxldCBuOwogICAgZm9yICg7IChuID0gZS5tYXRjaChvcHRpb25zTW9kaWZpZXJSRSkpOykKICAgICAgKGUgPSBlLnNsaWNlKDAsIGUubGVuZ3RoIC0gblswXS5sZW5ndGgpKSwgKHRbblswXS50b0xvd2VyQ2FzZSgpXSA9ICEwKTsKICB9CiAgcmV0dXJuIFtlWzJdID09PSAiOiIgPyBlLnNsaWNlKDMpIDogaHlwaGVuYXRlKGUuc2xpY2UoMikpLCB0XTsKfQpsZXQgY2FjaGVkTm93ID0gMDsKY29uc3QgcCA9IFByb21pc2UucmVzb2x2ZSgpLAogIGdldE5vdyA9ICgpID0+CiAgICBjYWNoZWROb3cgfHwgKHAudGhlbigoKSA9PiAoY2FjaGVkTm93ID0gMCkpLCAoY2FjaGVkTm93ID0gRGF0ZS5ub3coKSkpOwpmdW5jdGlvbiBjcmVhdGVJbnZva2VyKGUsIHQpIHsKICBjb25zdCByID0gKG4pID0+IHsKICAgIGlmICghbi5fdnRzKSBuLl92dHMgPSBEYXRlLm5vdygpOwogICAgZWxzZSBpZiAobi5fdnRzIDw9IHIuYXR0YWNoZWQpIHJldHVybjsKICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKAogICAgICBwYXRjaFN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbihuLCByLnZhbHVlKSwKICAgICAgdCwKICAgICAgNSwKICAgICAgW25dCiAgICApOwogIH07CiAgcmV0dXJuIChyLnZhbHVlID0gZSksIChyLmF0dGFjaGVkID0gZ2V0Tm93KCkpLCByOwp9CmZ1bmN0aW9uIHBhdGNoU3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKGUsIHQpIHsKICBpZiAoaXNBcnJheSQyKHQpKSB7CiAgICBjb25zdCByID0gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247CiAgICByZXR1cm4gKAogICAgICAoZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gPSAoKSA9PiB7CiAgICAgICAgci5jYWxsKGUpLCAoZS5fc3RvcHBlZCA9ICEwKTsKICAgICAgfSksCiAgICAgIHQubWFwKChuKSA9PiAoaSkgPT4gIWkuX3N0b3BwZWQgJiYgbiAmJiBuKGkpKQogICAgKTsKICB9IGVsc2UgcmV0dXJuIHQ7Cn0KY29uc3QgaXNOYXRpdmVPbiA9IChlKSA9PgogIGUuY2hhckNvZGVBdCgwKSA9PT0gMTExICYmCiAgZS5jaGFyQ29kZUF0KDEpID09PSAxMTAgJiYKICBlLmNoYXJDb2RlQXQoMikgPiA5NiAmJgogIGUuY2hhckNvZGVBdCgyKSA8IDEyMywKICBwYXRjaFByb3AgPSAoZSwgdCwgciwgbiwgaSwgYSkgPT4gewogICAgY29uc3QgbyA9IGkgPT09ICJzdmciOwogICAgdCA9PT0gImNsYXNzIgogICAgICA/IHBhdGNoQ2xhc3MoZSwgbiwgbykKICAgICAgOiB0ID09PSAic3R5bGUiCiAgICAgICAgPyBwYXRjaFN0eWxlKGUsIHIsIG4pCiAgICAgICAgOiBpc09uJDEodCkKICAgICAgICAgID8gaXNNb2RlbExpc3RlbmVyKHQpIHx8IHBhdGNoRXZlbnQoZSwgdCwgciwgbiwgYSkKICAgICAgICAgIDogKAogICAgICAgICAgICB0WzBdID09PSAiLiIKICAgICAgICAgICAgICA/ICgodCA9IHQuc2xpY2UoMSkpLCAhMCkKICAgICAgICAgICAgICA6IHRbMF0gPT09ICJeIgogICAgICAgICAgICAgICAgPyAoKHQgPSB0LnNsaWNlKDEpKSwgITEpCiAgICAgICAgICAgICAgICA6IHNob3VsZFNldEFzUHJvcChlLCB0LCBuLCBvKQogICAgICAgICAgKQogICAgICAgICAgICA/IChwYXRjaERPTVByb3AoZSwgdCwgbiksCiAgICAgICAgICAgICAgIWUudGFnTmFtZS5pbmNsdWRlcygiLSIpICYmCiAgICAgICAgICAgICAgKHQgPT09ICJ2YWx1ZSIgfHwgdCA9PT0gImNoZWNrZWQiIHx8IHQgPT09ICJzZWxlY3RlZCIpICYmCiAgICAgICAgICAgICAgcGF0Y2hBdHRyKGUsIHQsIG4sIG8sIGEsIHQgIT09ICJ2YWx1ZSIpKQogICAgICAgICAgICA6IGUuX2lzVnVlQ0UgJiYgKC9bQS1aXS8udGVzdCh0KSB8fCAhaXNTdHJpbmckMShuKSkKICAgICAgICAgICAgICA/IHBhdGNoRE9NUHJvcChlLCBjYW1lbGl6ZSh0KSwgbiwgYSwgdCkKICAgICAgICAgICAgICA6ICh0ID09PSAidHJ1ZS12YWx1ZSIKICAgICAgICAgICAgICAgID8gKGUuX3RydWVWYWx1ZSA9IG4pCiAgICAgICAgICAgICAgICA6IHQgPT09ICJmYWxzZS12YWx1ZSIgJiYgKGUuX2ZhbHNlVmFsdWUgPSBuKSwKICAgICAgICAgICAgICAgIHBhdGNoQXR0cihlLCB0LCBuLCBvKSk7CiAgfTsKZnVuY3Rpb24gc2hvdWxkU2V0QXNQcm9wKGUsIHQsIHIsIG4pIHsKICBpZiAobikKICAgIHJldHVybiAhISgKICAgICAgdCA9PT0gImlubmVySFRNTCIgfHwKICAgICAgdCA9PT0gInRleHRDb250ZW50IiB8fAogICAgICAodCBpbiBlICYmIGlzTmF0aXZlT24odCkgJiYgaXNGdW5jdGlvbiQxKHIpKQogICAgKTsKICBpZiAoCiAgICB0ID09PSAic3BlbGxjaGVjayIgfHwKICAgIHQgPT09ICJkcmFnZ2FibGUiIHx8CiAgICB0ID09PSAidHJhbnNsYXRlIiB8fAogICAgdCA9PT0gImZvcm0iIHx8CiAgICAodCA9PT0gImxpc3QiICYmIGUudGFnTmFtZSA9PT0gIklOUFVUIikgfHwKICAgICh0ID09PSAidHlwZSIgJiYgZS50YWdOYW1lID09PSAiVEVYVEFSRUEiKQogICkKICAgIHJldHVybiAhMTsKICBpZiAodCA9PT0gIndpZHRoIiB8fCB0ID09PSAiaGVpZ2h0IikgewogICAgY29uc3QgaSA9IGUudGFnTmFtZTsKICAgIGlmIChpID09PSAiSU1HIiB8fCBpID09PSAiVklERU8iIHx8IGkgPT09ICJDQU5WQVMiIHx8IGkgPT09ICJTT1VSQ0UiKQogICAgICByZXR1cm4gITE7CiAgfQogIHJldHVybiBpc05hdGl2ZU9uKHQpICYmIGlzU3RyaW5nJDEocikgPyAhMSA6IHQgaW4gZTsKfQpjb25zdCBSRU1PVkFMID0ge307Ci8qISAjX19OT19TSURFX0VGRkVDVFNfXyAqLyBmdW5jdGlvbiBkZWZpbmVDdXN0b21FbGVtZW50KGUsIHQsIHIpIHsKICBjb25zdCBuID0gZGVmaW5lQ29tcG9uZW50JDEoZSwgdCk7CiAgaXNQbGFpbk9iamVjdCQ0KG4pICYmIGV4dGVuZChuLCB0KTsKICBjbGFzcyBpIGV4dGVuZHMgVnVlRWxlbWVudCB7CiAgICBjb25zdHJ1Y3RvcihvKSB7CiAgICAgIHN1cGVyKG4sIG8sIHIpOwogICAgfQogIH0KICByZXR1cm4gKGkuZGVmID0gbiksIGk7Cn0KLyohICNfX05PX1NJREVfRUZGRUNUU19fICovIGNvbnN0IGRlZmluZVNTUkN1c3RvbUVsZW1lbnQgPSAoZSwgdCkgPT4KICBkZWZpbmVDdXN0b21FbGVtZW50KGUsIHQsIGNyZWF0ZVNTUkFwcCksCiAgQmFzZUNsYXNzID0gdHlwZW9mIEhUTUxFbGVtZW50IDwgInUiID8gSFRNTEVsZW1lbnQgOiBjbGFzcyB7IH07CmNsYXNzIFZ1ZUVsZW1lbnQgZXh0ZW5kcyBCYXNlQ2xhc3MgewogIGNvbnN0cnVjdG9yKHQsIHIgPSB7fSwgbiA9IGNyZWF0ZUFwcCkgewogICAgc3VwZXIoKSwKICAgICAgKHRoaXMuX2RlZiA9IHQpLAogICAgICAodGhpcy5fcHJvcHMgPSByKSwKICAgICAgKHRoaXMuX2NyZWF0ZUFwcCA9IG4pLAogICAgICAodGhpcy5faXNWdWVDRSA9ICEwKSwKICAgICAgKHRoaXMuX2luc3RhbmNlID0gbnVsbCksCiAgICAgICh0aGlzLl9hcHAgPSBudWxsKSwKICAgICAgKHRoaXMuX25vbmNlID0gdGhpcy5fZGVmLm5vbmNlKSwKICAgICAgKHRoaXMuX2Nvbm5lY3RlZCA9ICExKSwKICAgICAgKHRoaXMuX3Jlc29sdmVkID0gITEpLAogICAgICAodGhpcy5fbnVtYmVyUHJvcHMgPSBudWxsKSwKICAgICAgKHRoaXMuX3N0eWxlQ2hpbGRyZW4gPSBuZXcgV2Vha1NldCgpKSwKICAgICAgKHRoaXMuX29iID0gbnVsbCksCiAgICAgIHRoaXMuc2hhZG93Um9vdCAmJiBuICE9PSBjcmVhdGVBcHAKICAgICAgICA/ICh0aGlzLl9yb290ID0gdGhpcy5zaGFkb3dSb290KQogICAgICAgIDogdC5zaGFkb3dSb290ICE9PSAhMQogICAgICAgICAgPyAodGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSksICh0aGlzLl9yb290ID0gdGhpcy5zaGFkb3dSb290KSkKICAgICAgICAgIDogKHRoaXMuX3Jvb3QgPSB0aGlzKSwKICAgICAgdGhpcy5fZGVmLl9fYXN5bmNMb2FkZXIgfHwgdGhpcy5fcmVzb2x2ZVByb3BzKHRoaXMuX2RlZik7CiAgfQogIGNvbm5lY3RlZENhbGxiYWNrKCkgewogICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkKSByZXR1cm47CiAgICB0aGlzLnNoYWRvd1Jvb3QgfHwgdGhpcy5fcGFyc2VTbG90cygpLCAodGhpcy5fY29ubmVjdGVkID0gITApOwogICAgbGV0IHQgPSB0aGlzOwogICAgZm9yICg7ICh0ID0gdCAmJiAodC5wYXJlbnROb2RlIHx8IHQuaG9zdCkpOykKICAgICAgaWYgKHQgaW5zdGFuY2VvZiBWdWVFbGVtZW50KSB7CiAgICAgICAgdGhpcy5fcGFyZW50ID0gdDsKICAgICAgICBicmVhazsKICAgICAgfQogICAgdGhpcy5faW5zdGFuY2UgfHwKICAgICAgKHRoaXMuX3Jlc29sdmVkCiAgICAgICAgPyAodGhpcy5fc2V0UGFyZW50KCksIHRoaXMuX3VwZGF0ZSgpKQogICAgICAgIDogdCAmJiB0Ll9wZW5kaW5nUmVzb2x2ZQogICAgICAgICAgPyAodGhpcy5fcGVuZGluZ1Jlc29sdmUgPSB0Ll9wZW5kaW5nUmVzb2x2ZS50aGVuKCgpID0+IHsKICAgICAgICAgICAgKHRoaXMuX3BlbmRpbmdSZXNvbHZlID0gdm9pZCAwKSwgdGhpcy5fcmVzb2x2ZURlZigpOwogICAgICAgICAgfSkpCiAgICAgICAgICA6IHRoaXMuX3Jlc29sdmVEZWYoKSk7CiAgfQogIF9zZXRQYXJlbnQodCA9IHRoaXMuX3BhcmVudCkgewogICAgdCAmJgogICAgICAoKHRoaXMuX2luc3RhbmNlLnBhcmVudCA9IHQuX2luc3RhbmNlKSwKICAgICAgICAodGhpcy5faW5zdGFuY2UucHJvdmlkZXMgPSB0Ll9pbnN0YW5jZS5wcm92aWRlcykpOwogIH0KICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgICh0aGlzLl9jb25uZWN0ZWQgPSAhMSksCiAgICAgIG5leHRUaWNrKCgpID0+IHsKICAgICAgICB0aGlzLl9jb25uZWN0ZWQgfHwKICAgICAgICAgICh0aGlzLl9vYiAmJiAodGhpcy5fb2IuZGlzY29ubmVjdCgpLCAodGhpcy5fb2IgPSBudWxsKSksCiAgICAgICAgICAgIHRoaXMuX2FwcCAmJiB0aGlzLl9hcHAudW5tb3VudCgpLAogICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSAmJiAodGhpcy5faW5zdGFuY2UuY2UgPSB2b2lkIDApLAogICAgICAgICAgICAodGhpcy5fYXBwID0gdGhpcy5faW5zdGFuY2UgPSBudWxsKSk7CiAgICAgIH0pOwogIH0KICBfcmVzb2x2ZURlZigpIHsKICAgIGlmICh0aGlzLl9wZW5kaW5nUmVzb2x2ZSkgcmV0dXJuOwogICAgZm9yIChsZXQgbiA9IDA7IG4gPCB0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoOyBuKyspCiAgICAgIHRoaXMuX3NldEF0dHIodGhpcy5hdHRyaWJ1dGVzW25dLm5hbWUpOwogICAgKHRoaXMuX29iID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG4pID0+IHsKICAgICAgZm9yIChjb25zdCBpIG9mIG4pIHRoaXMuX3NldEF0dHIoaS5hdHRyaWJ1dGVOYW1lKTsKICAgIH0pKSwKICAgICAgdGhpcy5fb2Iub2JzZXJ2ZSh0aGlzLCB7IGF0dHJpYnV0ZXM6ICEwIH0pOwogICAgY29uc3QgdCA9IChuLCBpID0gITEpID0+IHsKICAgICAgKHRoaXMuX3Jlc29sdmVkID0gITApLCAodGhpcy5fcGVuZGluZ1Jlc29sdmUgPSB2b2lkIDApOwogICAgICBjb25zdCB7IHByb3BzOiBhLCBzdHlsZXM6IG8gfSA9IG47CiAgICAgIGxldCBsOwogICAgICBpZiAoYSAmJiAhaXNBcnJheSQyKGEpKQogICAgICAgIGZvciAoY29uc3QgYyBpbiBhKSB7CiAgICAgICAgICBjb25zdCB1ID0gYVtjXTsKICAgICAgICAgICh1ID09PSBOdW1iZXIgfHwgKHUgJiYgdS50eXBlID09PSBOdW1iZXIpKSAmJgogICAgICAgICAgICAoYyBpbiB0aGlzLl9wcm9wcyAmJiAodGhpcy5fcHJvcHNbY10gPSB0b051bWJlcih0aGlzLl9wcm9wc1tjXSkpLAogICAgICAgICAgICAgICgobCB8fCAobCA9IE9iamVjdC5jcmVhdGUobnVsbCkpKVtjYW1lbGl6ZShjKV0gPSAhMCkpOwogICAgICAgIH0KICAgICAgKHRoaXMuX251bWJlclByb3BzID0gbCksCiAgICAgICAgaSAmJiB0aGlzLl9yZXNvbHZlUHJvcHMobiksCiAgICAgICAgdGhpcy5zaGFkb3dSb290ICYmIHRoaXMuX2FwcGx5U3R5bGVzKG8pLAogICAgICAgIHRoaXMuX21vdW50KG4pOwogICAgfSwKICAgICAgciA9IHRoaXMuX2RlZi5fX2FzeW5jTG9hZGVyOwogICAgcgogICAgICA/ICh0aGlzLl9wZW5kaW5nUmVzb2x2ZSA9IHIoKS50aGVuKChuKSA9PiB0KCh0aGlzLl9kZWYgPSBuKSwgITApKSkKICAgICAgOiB0KHRoaXMuX2RlZik7CiAgfQogIF9tb3VudCh0KSB7CiAgICAodGhpcy5fYXBwID0gdGhpcy5fY3JlYXRlQXBwKHQpKSwKICAgICAgdC5jb25maWd1cmVBcHAgJiYgdC5jb25maWd1cmVBcHAodGhpcy5fYXBwKSwKICAgICAgKHRoaXMuX2FwcC5fY2VWTm9kZSA9IHRoaXMuX2NyZWF0ZVZOb2RlKCkpLAogICAgICB0aGlzLl9hcHAubW91bnQodGhpcy5fcm9vdCk7CiAgICBjb25zdCByID0gdGhpcy5faW5zdGFuY2UgJiYgdGhpcy5faW5zdGFuY2UuZXhwb3NlZDsKICAgIGlmIChyKQogICAgICBmb3IgKGNvbnN0IG4gaW4gcikKICAgICAgICBoYXNPd24kMSh0aGlzLCBuKSB8fAogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIG4sIHsgZ2V0OiAoKSA9PiB1bnJlZihyW25dKSB9KTsKICB9CiAgX3Jlc29sdmVQcm9wcyh0KSB7CiAgICBjb25zdCB7IHByb3BzOiByIH0gPSB0LAogICAgICBuID0gaXNBcnJheSQyKHIpID8gciA6IE9iamVjdC5rZXlzKHIgfHwge30pOwogICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHRoaXMpKQogICAgICBpWzBdICE9PSAiXyIgJiYgbi5pbmNsdWRlcyhpKSAmJiB0aGlzLl9zZXRQcm9wKGksIHRoaXNbaV0pOwogICAgZm9yIChjb25zdCBpIG9mIG4ubWFwKGNhbWVsaXplKSkKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGksIHsKICAgICAgICBnZXQoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UHJvcChpKTsKICAgICAgICB9LAogICAgICAgIHNldChhKSB7CiAgICAgICAgICB0aGlzLl9zZXRQcm9wKGksIGEsICEwLCAhMCk7CiAgICAgICAgfSwKICAgICAgfSk7CiAgfQogIF9zZXRBdHRyKHQpIHsKICAgIGlmICh0LnN0YXJ0c1dpdGgoImRhdGEtdi0iKSkgcmV0dXJuOwogICAgY29uc3QgciA9IHRoaXMuaGFzQXR0cmlidXRlKHQpOwogICAgbGV0IG4gPSByID8gdGhpcy5nZXRBdHRyaWJ1dGUodCkgOiBSRU1PVkFMOwogICAgY29uc3QgaSA9IGNhbWVsaXplKHQpOwogICAgciAmJiB0aGlzLl9udW1iZXJQcm9wcyAmJiB0aGlzLl9udW1iZXJQcm9wc1tpXSAmJiAobiA9IHRvTnVtYmVyKG4pKSwKICAgICAgdGhpcy5fc2V0UHJvcChpLCBuLCAhMSwgITApOwogIH0KICBfZ2V0UHJvcCh0KSB7CiAgICByZXR1cm4gdGhpcy5fcHJvcHNbdF07CiAgfQogIF9zZXRQcm9wKHQsIHIsIG4gPSAhMCwgaSA9ICExKSB7CiAgICBpZiAoCiAgICAgIHIgIT09IHRoaXMuX3Byb3BzW3RdICYmCiAgICAgIChyID09PSBSRU1PVkFMCiAgICAgICAgPyBkZWxldGUgdGhpcy5fcHJvcHNbdF0KICAgICAgICA6ICgodGhpcy5fcHJvcHNbdF0gPSByKSwKICAgICAgICAgIHQgPT09ICJrZXkiICYmIHRoaXMuX2FwcCAmJiAodGhpcy5fYXBwLl9jZVZOb2RlLmtleSA9IHIpKSwKICAgICAgICBpICYmIHRoaXMuX2luc3RhbmNlICYmIHRoaXMuX3VwZGF0ZSgpLAogICAgICAgIG4pCiAgICApIHsKICAgICAgY29uc3QgYSA9IHRoaXMuX29iOwogICAgICBhICYmIGEuZGlzY29ubmVjdCgpLAogICAgICAgIHIgPT09ICEwCiAgICAgICAgICA/IHRoaXMuc2V0QXR0cmlidXRlKGh5cGhlbmF0ZSh0KSwgIiIpCiAgICAgICAgICA6IHR5cGVvZiByID09ICJzdHJpbmciIHx8IHR5cGVvZiByID09ICJudW1iZXIiCiAgICAgICAgICAgID8gdGhpcy5zZXRBdHRyaWJ1dGUoaHlwaGVuYXRlKHQpLCByICsgIiIpCiAgICAgICAgICAgIDogciB8fCB0aGlzLnJlbW92ZUF0dHJpYnV0ZShoeXBoZW5hdGUodCkpLAogICAgICAgIGEgJiYgYS5vYnNlcnZlKHRoaXMsIHsgYXR0cmlidXRlczogITAgfSk7CiAgICB9CiAgfQogIF91cGRhdGUoKSB7CiAgICByZW5kZXIodGhpcy5fY3JlYXRlVk5vZGUoKSwgdGhpcy5fcm9vdCk7CiAgfQogIF9jcmVhdGVWTm9kZSgpIHsKICAgIGNvbnN0IHQgPSB7fTsKICAgIHRoaXMuc2hhZG93Um9vdCB8fAogICAgICAodC5vblZub2RlTW91bnRlZCA9IHQub25Wbm9kZVVwZGF0ZWQgPSB0aGlzLl9yZW5kZXJTbG90cy5iaW5kKHRoaXMpKTsKICAgIGNvbnN0IHIgPSBjcmVhdGVWTm9kZSh0aGlzLl9kZWYsIGV4dGVuZCh0LCB0aGlzLl9wcm9wcykpOwogICAgcmV0dXJuICgKICAgICAgdGhpcy5faW5zdGFuY2UgfHwKICAgICAgKHIuY2UgPSAobikgPT4gewogICAgICAgICh0aGlzLl9pbnN0YW5jZSA9IG4pLCAobi5jZSA9IHRoaXMpLCAobi5pc0NFID0gITApOwogICAgICAgIGNvbnN0IGkgPSAoYSwgbykgPT4gewogICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KAogICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBpc1BsYWluT2JqZWN0JDQob1swXSkKICAgICAgICAgICAgICAgID8gZXh0ZW5kKHsgZGV0YWlsOiBvIH0sIG9bMF0pCiAgICAgICAgICAgICAgICA6IHsgZGV0YWlsOiBvIH0KICAgICAgICAgICAgKQogICAgICAgICAgKTsKICAgICAgICB9OwogICAgICAgIChuLmVtaXQgPSAoYSwgLi4ubykgPT4gewogICAgICAgICAgaShhLCBvKSwgaHlwaGVuYXRlKGEpICE9PSBhICYmIGkoaHlwaGVuYXRlKGEpLCBvKTsKICAgICAgICB9KSwKICAgICAgICAgIHRoaXMuX3NldFBhcmVudCgpOwogICAgICB9KSwKICAgICAgcgogICAgKTsKICB9CiAgX2FwcGx5U3R5bGVzKHQsIHIpIHsKICAgIGlmICghdCkgcmV0dXJuOwogICAgaWYgKHIpIHsKICAgICAgaWYgKHIgPT09IHRoaXMuX2RlZiB8fCB0aGlzLl9zdHlsZUNoaWxkcmVuLmhhcyhyKSkgcmV0dXJuOwogICAgICB0aGlzLl9zdHlsZUNoaWxkcmVuLmFkZChyKTsKICAgIH0KICAgIGNvbnN0IG4gPSB0aGlzLl9ub25jZTsKICAgIGZvciAobGV0IGkgPSB0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOwogICAgICBuICYmIGEuc2V0QXR0cmlidXRlKCJub25jZSIsIG4pLAogICAgICAgIChhLnRleHRDb250ZW50ID0gdFtpXSksCiAgICAgICAgdGhpcy5zaGFkb3dSb290LnByZXBlbmQoYSk7CiAgICB9CiAgfQogIF9wYXJzZVNsb3RzKCkgewogICAgY29uc3QgdCA9ICh0aGlzLl9zbG90cyA9IHt9KTsKICAgIGxldCByOwogICAgZm9yICg7IChyID0gdGhpcy5maXJzdENoaWxkKTspIHsKICAgICAgY29uc3QgbiA9IChyLm5vZGVUeXBlID09PSAxICYmIHIuZ2V0QXR0cmlidXRlKCJzbG90IikpIHx8ICJkZWZhdWx0IjsKICAgICAgKHRbbl0gfHwgKHRbbl0gPSBbXSkpLnB1c2gociksIHRoaXMucmVtb3ZlQ2hpbGQocik7CiAgICB9CiAgfQogIF9yZW5kZXJTbG90cygpIHsKICAgIGNvbnN0IHQgPSAodGhpcy5fdGVsZXBvcnRUYXJnZXQgfHwgdGhpcykucXVlcnlTZWxlY3RvckFsbCgic2xvdCIpLAogICAgICByID0gdGhpcy5faW5zdGFuY2UudHlwZS5fX3Njb3BlSWQ7CiAgICBmb3IgKGxldCBuID0gMDsgbiA8IHQubGVuZ3RoOyBuKyspIHsKICAgICAgY29uc3QgaSA9IHRbbl0sCiAgICAgICAgYSA9IGkuZ2V0QXR0cmlidXRlKCJuYW1lIikgfHwgImRlZmF1bHQiLAogICAgICAgIG8gPSB0aGlzLl9zbG90c1thXSwKICAgICAgICBsID0gaS5wYXJlbnROb2RlOwogICAgICBpZiAobykKICAgICAgICBmb3IgKGNvbnN0IGMgb2YgbykgewogICAgICAgICAgaWYgKHIgJiYgYy5ub2RlVHlwZSA9PT0gMSkgewogICAgICAgICAgICBjb25zdCB1ID0gciArICItcyIsCiAgICAgICAgICAgICAgZCA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYywgMSk7CiAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKHUsICIiKTsKICAgICAgICAgICAgbGV0IEU7CiAgICAgICAgICAgIGZvciAoOyAoRSA9IGQubmV4dE5vZGUoKSk7KSBFLnNldEF0dHJpYnV0ZSh1LCAiIik7CiAgICAgICAgICB9CiAgICAgICAgICBsLmluc2VydEJlZm9yZShjLCBpKTsKICAgICAgICB9CiAgICAgIGVsc2UgZm9yICg7IGkuZmlyc3RDaGlsZDspIGwuaW5zZXJ0QmVmb3JlKGkuZmlyc3RDaGlsZCwgaSk7CiAgICAgIGwucmVtb3ZlQ2hpbGQoaSk7CiAgICB9CiAgfQogIF9pbmplY3RDaGlsZFN0eWxlKHQpIHsKICAgIHRoaXMuX2FwcGx5U3R5bGVzKHQuc3R5bGVzLCB0KTsKICB9CiAgX3JlbW92ZUNoaWxkU3R5bGUodCkgeyB9Cn0KZnVuY3Rpb24gdXNlSG9zdChlKSB7CiAgY29uc3QgdCA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICByID0gdCAmJiB0LmNlOwogIHJldHVybiByIHx8IG51bGw7Cn0KZnVuY3Rpb24gdXNlU2hhZG93Um9vdCgpIHsKICBjb25zdCBlID0gdXNlSG9zdCgpOwogIHJldHVybiBlICYmIGUuc2hhZG93Um9vdDsKfQpmdW5jdGlvbiB1c2VDc3NNb2R1bGUoZSA9ICIkc3R5bGUiKSB7CiAgewogICAgY29uc3QgdCA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCk7CiAgICBpZiAoIXQpIHJldHVybiBFTVBUWV9PQko7CiAgICBjb25zdCByID0gdC50eXBlLl9fY3NzTW9kdWxlczsKICAgIGlmICghcikgcmV0dXJuIEVNUFRZX09CSjsKICAgIGNvbnN0IG4gPSByW2VdOwogICAgcmV0dXJuIG4gfHwgRU1QVFlfT0JKOwogIH0KfQpjb25zdCBwb3NpdGlvbk1hcCA9IG5ldyBXZWFrTWFwKCksCiAgbmV3UG9zaXRpb25NYXAgPSBuZXcgV2Vha01hcCgpLAogIG1vdmVDYktleSA9IFN5bWJvbCgiX21vdmVDYiIpLAogIGVudGVyQ2JLZXkgPSBTeW1ib2woIl9lbnRlckNiIiksCiAgZGVjb3JhdGUgPSAoZSkgPT4gKGRlbGV0ZSBlLnByb3BzLm1vZGUsIGUpLAogIFRyYW5zaXRpb25Hcm91cEltcGwgPSBkZWNvcmF0ZSh7CiAgICBuYW1lOiAiVHJhbnNpdGlvbkdyb3VwIiwKICAgIHByb3BzOiBleHRlbmQoe30sIFRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsIHsKICAgICAgdGFnOiBTdHJpbmcsCiAgICAgIG1vdmVDbGFzczogU3RyaW5nLAogICAgfSksCiAgICBzZXR1cChlLCB7IHNsb3RzOiB0IH0pIHsKICAgICAgY29uc3QgciA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCksCiAgICAgICAgbiA9IHVzZVRyYW5zaXRpb25TdGF0ZSgpOwogICAgICBsZXQgaSwgYTsKICAgICAgcmV0dXJuICgKICAgICAgICBvblVwZGF0ZWQoKCkgPT4gewogICAgICAgICAgaWYgKCFpLmxlbmd0aCkgcmV0dXJuOwogICAgICAgICAgY29uc3QgbyA9IGUubW92ZUNsYXNzIHx8IGAke2UubmFtZSB8fCAidiJ9LW1vdmVgOwogICAgICAgICAgaWYgKCFoYXNDU1NUcmFuc2Zvcm0oaVswXS5lbCwgci52bm9kZS5lbCwgbykpIHJldHVybjsKICAgICAgICAgIGkuZm9yRWFjaChjYWxsUGVuZGluZ0NicyksIGkuZm9yRWFjaChyZWNvcmRQb3NpdGlvbik7CiAgICAgICAgICBjb25zdCBsID0gaS5maWx0ZXIoYXBwbHlUcmFuc2xhdGlvbik7CiAgICAgICAgICBmb3JjZVJlZmxvdygpLAogICAgICAgICAgICBsLmZvckVhY2goKGMpID0+IHsKICAgICAgICAgICAgICBjb25zdCB1ID0gYy5lbCwKICAgICAgICAgICAgICAgIGQgPSB1LnN0eWxlOwogICAgICAgICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyh1LCBvKSwKICAgICAgICAgICAgICAgIChkLnRyYW5zZm9ybSA9IGQud2Via2l0VHJhbnNmb3JtID0gZC50cmFuc2l0aW9uRHVyYXRpb24gPSAiIik7CiAgICAgICAgICAgICAgY29uc3QgRSA9ICh1W21vdmVDYktleV0gPSAoYikgPT4gewogICAgICAgICAgICAgICAgKGIgJiYgYi50YXJnZXQgIT09IHUpIHx8CiAgICAgICAgICAgICAgICAgICgoIWIgfHwgL3RyYW5zZm9ybSQvLnRlc3QoYi5wcm9wZXJ0eU5hbWUpKSAmJgogICAgICAgICAgICAgICAgICAgICh1LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCBFKSwKICAgICAgICAgICAgICAgICAgICAgICh1W21vdmVDYktleV0gPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyh1LCBvKSkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHUuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIEUpOwogICAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBjb25zdCBvID0gdG9SYXcoZSksCiAgICAgICAgICAgIGwgPSByZXNvbHZlVHJhbnNpdGlvblByb3BzKG8pOwogICAgICAgICAgbGV0IGMgPSBvLnRhZyB8fCBGcmFnbWVudDsKICAgICAgICAgIGlmICgoKGkgPSBbXSksIGEpKQogICAgICAgICAgICBmb3IgKGxldCB1ID0gMDsgdSA8IGEubGVuZ3RoOyB1KyspIHsKICAgICAgICAgICAgICBjb25zdCBkID0gYVt1XTsKICAgICAgICAgICAgICBkLmVsICYmCiAgICAgICAgICAgICAgICBkLmVsIGluc3RhbmNlb2YgRWxlbWVudCAmJgogICAgICAgICAgICAgICAgKGkucHVzaChkKSwKICAgICAgICAgICAgICAgICAgc2V0VHJhbnNpdGlvbkhvb2tzKGQsIHJlc29sdmVUcmFuc2l0aW9uSG9va3MoZCwgbCwgbiwgcikpLAogICAgICAgICAgICAgICAgICBwb3NpdGlvbk1hcC5zZXQoZCwgZC5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkpOwogICAgICAgICAgICB9CiAgICAgICAgICBhID0gdC5kZWZhdWx0ID8gZ2V0VHJhbnNpdGlvblJhd0NoaWxkcmVuKHQuZGVmYXVsdCgpKSA6IFtdOwogICAgICAgICAgZm9yIChsZXQgdSA9IDA7IHUgPCBhLmxlbmd0aDsgdSsrKSB7CiAgICAgICAgICAgIGNvbnN0IGQgPSBhW3VdOwogICAgICAgICAgICBkLmtleSAhPSBudWxsICYmCiAgICAgICAgICAgICAgc2V0VHJhbnNpdGlvbkhvb2tzKGQsIHJlc29sdmVUcmFuc2l0aW9uSG9va3MoZCwgbCwgbiwgcikpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNyZWF0ZVZOb2RlKGMsIG51bGwsIGEpOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSksCiAgVHJhbnNpdGlvbkdyb3VwID0gVHJhbnNpdGlvbkdyb3VwSW1wbDsKZnVuY3Rpb24gY2FsbFBlbmRpbmdDYnMoZSkgewogIGNvbnN0IHQgPSBlLmVsOwogIHRbbW92ZUNiS2V5XSAmJiB0W21vdmVDYktleV0oKSwgdFtlbnRlckNiS2V5XSAmJiB0W2VudGVyQ2JLZXldKCk7Cn0KZnVuY3Rpb24gcmVjb3JkUG9zaXRpb24oZSkgewogIG5ld1Bvc2l0aW9uTWFwLnNldChlLCBlLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKfQpmdW5jdGlvbiBhcHBseVRyYW5zbGF0aW9uKGUpIHsKICBjb25zdCB0ID0gcG9zaXRpb25NYXAuZ2V0KGUpLAogICAgciA9IG5ld1Bvc2l0aW9uTWFwLmdldChlKSwKICAgIG4gPSB0LmxlZnQgLSByLmxlZnQsCiAgICBpID0gdC50b3AgLSByLnRvcDsKICBpZiAobiB8fCBpKSB7CiAgICBjb25zdCBhID0gZS5lbC5zdHlsZTsKICAgIHJldHVybiAoCiAgICAgIChhLnRyYW5zZm9ybSA9IGEud2Via2l0VHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke259cHgsJHtpfXB4KWApLAogICAgICAoYS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMHMiKSwKICAgICAgZQogICAgKTsKICB9Cn0KZnVuY3Rpb24gaGFzQ1NTVHJhbnNmb3JtKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS5jbG9uZU5vZGUoKSwKICAgIGkgPSBlW3Z0Y0tleV07CiAgaSAmJgogICAgaS5mb3JFYWNoKChsKSA9PiB7CiAgICAgIGwuc3BsaXQoL1xzKy8pLmZvckVhY2goKGMpID0+IGMgJiYgbi5jbGFzc0xpc3QucmVtb3ZlKGMpKTsKICAgIH0pLAogICAgci5zcGxpdCgvXHMrLykuZm9yRWFjaCgobCkgPT4gbCAmJiBuLmNsYXNzTGlzdC5hZGQobCkpLAogICAgKG4uc3R5bGUuZGlzcGxheSA9ICJub25lIik7CiAgY29uc3QgYSA9IHQubm9kZVR5cGUgPT09IDEgPyB0IDogdC5wYXJlbnROb2RlOwogIGEuYXBwZW5kQ2hpbGQobik7CiAgY29uc3QgeyBoYXNUcmFuc2Zvcm06IG8gfSA9IGdldFRyYW5zaXRpb25JbmZvKG4pOwogIHJldHVybiBhLnJlbW92ZUNoaWxkKG4pLCBvOwp9CmNvbnN0IGdldE1vZGVsQXNzaWduZXIgPSAoZSkgPT4gewogIGNvbnN0IHQgPSBlLnByb3BzWyJvblVwZGF0ZTptb2RlbFZhbHVlIl0gfHwgITE7CiAgcmV0dXJuIGlzQXJyYXkkMih0KSA/IChyKSA9PiBpbnZva2VBcnJheUZucyh0LCByKSA6IHQ7Cn07CmZ1bmN0aW9uIG9uQ29tcG9zaXRpb25TdGFydChlKSB7CiAgZS50YXJnZXQuY29tcG9zaW5nID0gITA7Cn0KZnVuY3Rpb24gb25Db21wb3NpdGlvbkVuZChlKSB7CiAgY29uc3QgdCA9IGUudGFyZ2V0OwogIHQuY29tcG9zaW5nICYmICgodC5jb21wb3NpbmcgPSAhMSksIHQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpKTsKfQpjb25zdCBhc3NpZ25LZXkgPSBTeW1ib2woIl9hc3NpZ24iKSwKICB2TW9kZWxUZXh0ID0gewogICAgY3JlYXRlZChlLCB7IG1vZGlmaWVyczogeyBsYXp5OiB0LCB0cmltOiByLCBudW1iZXI6IG4gfSB9LCBpKSB7CiAgICAgIGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIoaSk7CiAgICAgIGNvbnN0IGEgPSBuIHx8IChpLnByb3BzICYmIGkucHJvcHMudHlwZSA9PT0gIm51bWJlciIpOwogICAgICBhZGRFdmVudExpc3RlbmVyKGUsIHQgPyAiY2hhbmdlIiA6ICJpbnB1dCIsIChvKSA9PiB7CiAgICAgICAgaWYgKG8udGFyZ2V0LmNvbXBvc2luZykgcmV0dXJuOwogICAgICAgIGxldCBsID0gZS52YWx1ZTsKICAgICAgICByICYmIChsID0gbC50cmltKCkpLCBhICYmIChsID0gbG9vc2VUb051bWJlcihsKSksIGVbYXNzaWduS2V5XShsKTsKICAgICAgfSksCiAgICAgICAgciAmJgogICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsICgpID0+IHsKICAgICAgICAgIGUudmFsdWUgPSBlLnZhbHVlLnRyaW0oKTsKICAgICAgICB9KSwKICAgICAgICB0IHx8CiAgICAgICAgKGFkZEV2ZW50TGlzdGVuZXIoZSwgImNvbXBvc2l0aW9uc3RhcnQiLCBvbkNvbXBvc2l0aW9uU3RhcnQpLAogICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcihlLCAiY29tcG9zaXRpb25lbmQiLCBvbkNvbXBvc2l0aW9uRW5kKSwKICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsIG9uQ29tcG9zaXRpb25FbmQpKTsKICAgIH0sCiAgICBtb3VudGVkKGUsIHsgdmFsdWU6IHQgfSkgewogICAgICBlLnZhbHVlID0gdCA/PyAiIjsKICAgIH0sCiAgICBiZWZvcmVVcGRhdGUoCiAgICAgIGUsCiAgICAgIHsgdmFsdWU6IHQsIG9sZFZhbHVlOiByLCBtb2RpZmllcnM6IHsgbGF6eTogbiwgdHJpbTogaSwgbnVtYmVyOiBhIH0gfSwKICAgICAgbwogICAgKSB7CiAgICAgIGlmICgoKGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIobykpLCBlLmNvbXBvc2luZykpIHJldHVybjsKICAgICAgY29uc3QgbCA9CiAgICAgICAgKGEgfHwgZS50eXBlID09PSAibnVtYmVyIikgJiYgIS9eMFxkLy50ZXN0KGUudmFsdWUpCiAgICAgICAgICA/IGxvb3NlVG9OdW1iZXIoZS52YWx1ZSkKICAgICAgICAgIDogZS52YWx1ZSwKICAgICAgICBjID0gdCA/PyAiIjsKICAgICAgbCAhPT0gYyAmJgogICAgICAgICgoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZSAmJgogICAgICAgICAgZS50eXBlICE9PSAicmFuZ2UiICYmCiAgICAgICAgICAoKG4gJiYgdCA9PT0gcikgfHwgKGkgJiYgZS52YWx1ZS50cmltKCkgPT09IGMpKSkgfHwKICAgICAgICAgIChlLnZhbHVlID0gYykpOwogICAgfSwKICB9LAogIHZNb2RlbENoZWNrYm94ID0gewogICAgZGVlcDogITAsCiAgICBjcmVhdGVkKGUsIHQsIHIpIHsKICAgICAgKGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIocikpLAogICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsICgpID0+IHsKICAgICAgICAgIGNvbnN0IG4gPSBlLl9tb2RlbFZhbHVlLAogICAgICAgICAgICBpID0gZ2V0VmFsdWUoZSksCiAgICAgICAgICAgIGEgPSBlLmNoZWNrZWQsCiAgICAgICAgICAgIG8gPSBlW2Fzc2lnbktleV07CiAgICAgICAgICBpZiAoaXNBcnJheSQyKG4pKSB7CiAgICAgICAgICAgIGNvbnN0IGwgPSBsb29zZUluZGV4T2YobiwgaSksCiAgICAgICAgICAgICAgYyA9IGwgIT09IC0xOwogICAgICAgICAgICBpZiAoYSAmJiAhYykgbyhuLmNvbmNhdChpKSk7CiAgICAgICAgICAgIGVsc2UgaWYgKCFhICYmIGMpIHsKICAgICAgICAgICAgICBjb25zdCB1ID0gWy4uLm5dOwogICAgICAgICAgICAgIHUuc3BsaWNlKGwsIDEpLCBvKHUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGlzU2V0KG4pKSB7CiAgICAgICAgICAgIGNvbnN0IGwgPSBuZXcgU2V0KG4pOwogICAgICAgICAgICBhID8gbC5hZGQoaSkgOiBsLmRlbGV0ZShpKSwgbyhsKTsKICAgICAgICAgIH0gZWxzZSBvKGdldENoZWNrYm94VmFsdWUoZSwgYSkpOwogICAgICAgIH0pOwogICAgfSwKICAgIG1vdW50ZWQ6IHNldENoZWNrZWQsCiAgICBiZWZvcmVVcGRhdGUoZSwgdCwgcikgewogICAgICAoZVthc3NpZ25LZXldID0gZ2V0TW9kZWxBc3NpZ25lcihyKSksIHNldENoZWNrZWQoZSwgdCwgcik7CiAgICB9LAogIH07CmZ1bmN0aW9uIHNldENoZWNrZWQoZSwgeyB2YWx1ZTogdCwgb2xkVmFsdWU6IHIgfSwgbikgewogIGUuX21vZGVsVmFsdWUgPSB0OwogIGxldCBpOwogIGlmIChpc0FycmF5JDIodCkpIGkgPSBsb29zZUluZGV4T2YodCwgbi5wcm9wcy52YWx1ZSkgPiAtMTsKICBlbHNlIGlmIChpc1NldCh0KSkgaSA9IHQuaGFzKG4ucHJvcHMudmFsdWUpOwogIGVsc2UgewogICAgaWYgKHQgPT09IHIpIHJldHVybjsKICAgIGkgPSBsb29zZUVxdWFsKHQsIGdldENoZWNrYm94VmFsdWUoZSwgITApKTsKICB9CiAgZS5jaGVja2VkICE9PSBpICYmIChlLmNoZWNrZWQgPSBpKTsKfQpjb25zdCB2TW9kZWxSYWRpbyA9IHsKICBjcmVhdGVkKGUsIHsgdmFsdWU6IHQgfSwgcikgewogICAgKGUuY2hlY2tlZCA9IGxvb3NlRXF1YWwodCwgci5wcm9wcy52YWx1ZSkpLAogICAgICAoZVthc3NpZ25LZXldID0gZ2V0TW9kZWxBc3NpZ25lcihyKSksCiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZSwgImNoYW5nZSIsICgpID0+IHsKICAgICAgICBlW2Fzc2lnbktleV0oZ2V0VmFsdWUoZSkpOwogICAgICB9KTsKICB9LAogIGJlZm9yZVVwZGF0ZShlLCB7IHZhbHVlOiB0LCBvbGRWYWx1ZTogciB9LCBuKSB7CiAgICAoZVthc3NpZ25LZXldID0gZ2V0TW9kZWxBc3NpZ25lcihuKSksCiAgICAgIHQgIT09IHIgJiYgKGUuY2hlY2tlZCA9IGxvb3NlRXF1YWwodCwgbi5wcm9wcy52YWx1ZSkpOwogIH0sCn0sCiAgdk1vZGVsU2VsZWN0ID0gewogICAgZGVlcDogITAsCiAgICBjcmVhdGVkKGUsIHsgdmFsdWU6IHQsIG1vZGlmaWVyczogeyBudW1iZXI6IHIgfSB9LCBuKSB7CiAgICAgIGNvbnN0IGkgPSBpc1NldCh0KTsKICAgICAgYWRkRXZlbnRMaXN0ZW5lcihlLCAiY2hhbmdlIiwgKCkgPT4gewogICAgICAgIGNvbnN0IGEgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyCiAgICAgICAgICAuY2FsbChlLm9wdGlvbnMsIChvKSA9PiBvLnNlbGVjdGVkKQogICAgICAgICAgLm1hcCgobykgPT4gKHIgPyBsb29zZVRvTnVtYmVyKGdldFZhbHVlKG8pKSA6IGdldFZhbHVlKG8pKSk7CiAgICAgICAgZVthc3NpZ25LZXldKGUubXVsdGlwbGUgPyAoaSA/IG5ldyBTZXQoYSkgOiBhKSA6IGFbMF0pLAogICAgICAgICAgKGUuX2Fzc2lnbmluZyA9ICEwKSwKICAgICAgICAgIG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgZS5fYXNzaWduaW5nID0gITE7CiAgICAgICAgICB9KTsKICAgICAgfSksCiAgICAgICAgKGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIobikpOwogICAgfSwKICAgIG1vdW50ZWQoZSwgeyB2YWx1ZTogdCB9KSB7CiAgICAgIHNldFNlbGVjdGVkKGUsIHQpOwogICAgfSwKICAgIGJlZm9yZVVwZGF0ZShlLCB0LCByKSB7CiAgICAgIGVbYXNzaWduS2V5XSA9IGdldE1vZGVsQXNzaWduZXIocik7CiAgICB9LAogICAgdXBkYXRlZChlLCB7IHZhbHVlOiB0IH0pIHsKICAgICAgZS5fYXNzaWduaW5nIHx8IHNldFNlbGVjdGVkKGUsIHQpOwogICAgfSwKICB9OwpmdW5jdGlvbiBzZXRTZWxlY3RlZChlLCB0KSB7CiAgY29uc3QgciA9IGUubXVsdGlwbGUsCiAgICBuID0gaXNBcnJheSQyKHQpOwogIGlmICghKHIgJiYgIW4gJiYgIWlzU2V0KHQpKSkgewogICAgZm9yIChsZXQgaSA9IDAsIGEgPSBlLm9wdGlvbnMubGVuZ3RoOyBpIDwgYTsgaSsrKSB7CiAgICAgIGNvbnN0IG8gPSBlLm9wdGlvbnNbaV0sCiAgICAgICAgbCA9IGdldFZhbHVlKG8pOwogICAgICBpZiAocikKICAgICAgICBpZiAobikgewogICAgICAgICAgY29uc3QgYyA9IHR5cGVvZiBsOwogICAgICAgICAgYyA9PT0gInN0cmluZyIgfHwgYyA9PT0gIm51bWJlciIKICAgICAgICAgICAgPyAoby5zZWxlY3RlZCA9IHQuc29tZSgodSkgPT4gU3RyaW5nKHUpID09PSBTdHJpbmcobCkpKQogICAgICAgICAgICA6IChvLnNlbGVjdGVkID0gbG9vc2VJbmRleE9mKHQsIGwpID4gLTEpOwogICAgICAgIH0gZWxzZSBvLnNlbGVjdGVkID0gdC5oYXMobCk7CiAgICAgIGVsc2UgaWYgKGxvb3NlRXF1YWwoZ2V0VmFsdWUobyksIHQpKSB7CiAgICAgICAgZS5zZWxlY3RlZEluZGV4ICE9PSBpICYmIChlLnNlbGVjdGVkSW5kZXggPSBpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICAgICFyICYmIGUuc2VsZWN0ZWRJbmRleCAhPT0gLTEgJiYgKGUuc2VsZWN0ZWRJbmRleCA9IC0xKTsKICB9Cn0KZnVuY3Rpb24gZ2V0VmFsdWUoZSkgewogIHJldHVybiAiX3ZhbHVlIiBpbiBlID8gZS5fdmFsdWUgOiBlLnZhbHVlOwp9CmZ1bmN0aW9uIGdldENoZWNrYm94VmFsdWUoZSwgdCkgewogIGNvbnN0IHIgPSB0ID8gIl90cnVlVmFsdWUiIDogIl9mYWxzZVZhbHVlIjsKICByZXR1cm4gciBpbiBlID8gZVtyXSA6IHQ7Cn0KY29uc3Qgdk1vZGVsRHluYW1pYyA9IHsKICBjcmVhdGVkKGUsIHQsIHIpIHsKICAgIGNhbGxNb2RlbEhvb2soZSwgdCwgciwgbnVsbCwgImNyZWF0ZWQiKTsKICB9LAogIG1vdW50ZWQoZSwgdCwgcikgewogICAgY2FsbE1vZGVsSG9vayhlLCB0LCByLCBudWxsLCAibW91bnRlZCIpOwogIH0sCiAgYmVmb3JlVXBkYXRlKGUsIHQsIHIsIG4pIHsKICAgIGNhbGxNb2RlbEhvb2soZSwgdCwgciwgbiwgImJlZm9yZVVwZGF0ZSIpOwogIH0sCiAgdXBkYXRlZChlLCB0LCByLCBuKSB7CiAgICBjYWxsTW9kZWxIb29rKGUsIHQsIHIsIG4sICJ1cGRhdGVkIik7CiAgfSwKfTsKZnVuY3Rpb24gcmVzb2x2ZUR5bmFtaWNNb2RlbChlLCB0KSB7CiAgc3dpdGNoIChlKSB7CiAgICBjYXNlICJTRUxFQ1QiOgogICAgICByZXR1cm4gdk1vZGVsU2VsZWN0OwogICAgY2FzZSAiVEVYVEFSRUEiOgogICAgICByZXR1cm4gdk1vZGVsVGV4dDsKICAgIGRlZmF1bHQ6CiAgICAgIHN3aXRjaCAodCkgewogICAgICAgIGNhc2UgImNoZWNrYm94IjoKICAgICAgICAgIHJldHVybiB2TW9kZWxDaGVja2JveDsKICAgICAgICBjYXNlICJyYWRpbyI6CiAgICAgICAgICByZXR1cm4gdk1vZGVsUmFkaW87CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHJldHVybiB2TW9kZWxUZXh0OwogICAgICB9CiAgfQp9CmZ1bmN0aW9uIGNhbGxNb2RlbEhvb2soZSwgdCwgciwgbiwgaSkgewogIGNvbnN0IG8gPSByZXNvbHZlRHluYW1pY01vZGVsKGUudGFnTmFtZSwgci5wcm9wcyAmJiByLnByb3BzLnR5cGUpW2ldOwogIG8gJiYgbyhlLCB0LCByLCBuKTsKfQpmdW5jdGlvbiBpbml0Vk1vZGVsRm9yU1NSKCkgewogICh2TW9kZWxUZXh0LmdldFNTUlByb3BzID0gKHsgdmFsdWU6IGUgfSkgPT4gKHsgdmFsdWU6IGUgfSkpLAogICAgKHZNb2RlbFJhZGlvLmdldFNTUlByb3BzID0gKHsgdmFsdWU6IGUgfSwgdCkgPT4gewogICAgICBpZiAodC5wcm9wcyAmJiBsb29zZUVxdWFsKHQucHJvcHMudmFsdWUsIGUpKSByZXR1cm4geyBjaGVja2VkOiAhMCB9OwogICAgfSksCiAgICAodk1vZGVsQ2hlY2tib3guZ2V0U1NSUHJvcHMgPSAoeyB2YWx1ZTogZSB9LCB0KSA9PiB7CiAgICAgIGlmIChpc0FycmF5JDIoZSkpIHsKICAgICAgICBpZiAodC5wcm9wcyAmJiBsb29zZUluZGV4T2YoZSwgdC5wcm9wcy52YWx1ZSkgPiAtMSkKICAgICAgICAgIHJldHVybiB7IGNoZWNrZWQ6ICEwIH07CiAgICAgIH0gZWxzZSBpZiAoaXNTZXQoZSkpIHsKICAgICAgICBpZiAodC5wcm9wcyAmJiBlLmhhcyh0LnByb3BzLnZhbHVlKSkgcmV0dXJuIHsgY2hlY2tlZDogITAgfTsKICAgICAgfSBlbHNlIGlmIChlKSByZXR1cm4geyBjaGVja2VkOiAhMCB9OwogICAgfSksCiAgICAodk1vZGVsRHluYW1pYy5nZXRTU1JQcm9wcyA9IChlLCB0KSA9PiB7CiAgICAgIGlmICh0eXBlb2YgdC50eXBlICE9ICJzdHJpbmciKSByZXR1cm47CiAgICAgIGNvbnN0IHIgPSByZXNvbHZlRHluYW1pY01vZGVsKAogICAgICAgIHQudHlwZS50b1VwcGVyQ2FzZSgpLAogICAgICAgIHQucHJvcHMgJiYgdC5wcm9wcy50eXBlCiAgICAgICk7CiAgICAgIGlmIChyLmdldFNTUlByb3BzKSByZXR1cm4gci5nZXRTU1JQcm9wcyhlLCB0KTsKICAgIH0pOwp9CmNvbnN0IHN5c3RlbU1vZGlmaWVycyA9IFsiY3RybCIsICJzaGlmdCIsICJhbHQiLCAibWV0YSJdLAogIG1vZGlmaWVyR3VhcmRzID0gewogICAgc3RvcDogKGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksCiAgICBwcmV2ZW50OiAoZSkgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLAogICAgc2VsZjogKGUpID0+IGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQsCiAgICBjdHJsOiAoZSkgPT4gIWUuY3RybEtleSwKICAgIHNoaWZ0OiAoZSkgPT4gIWUuc2hpZnRLZXksCiAgICBhbHQ6IChlKSA9PiAhZS5hbHRLZXksCiAgICBtZXRhOiAoZSkgPT4gIWUubWV0YUtleSwKICAgIGxlZnQ6IChlKSA9PiAiYnV0dG9uIiBpbiBlICYmIGUuYnV0dG9uICE9PSAwLAogICAgbWlkZGxlOiAoZSkgPT4gImJ1dHRvbiIgaW4gZSAmJiBlLmJ1dHRvbiAhPT0gMSwKICAgIHJpZ2h0OiAoZSkgPT4gImJ1dHRvbiIgaW4gZSAmJiBlLmJ1dHRvbiAhPT0gMiwKICAgIGV4YWN0OiAoZSwgdCkgPT4KICAgICAgc3lzdGVtTW9kaWZpZXJzLnNvbWUoKHIpID0+IGVbYCR7cn1LZXlgXSAmJiAhdC5pbmNsdWRlcyhyKSksCiAgfSwKICB3aXRoTW9kaWZpZXJzID0gKGUsIHQpID0+IHsKICAgIGNvbnN0IHIgPSBlLl93aXRoTW9kcyB8fCAoZS5fd2l0aE1vZHMgPSB7fSksCiAgICAgIG4gPSB0LmpvaW4oIi4iKTsKICAgIHJldHVybiAoCiAgICAgIHJbbl0gfHwKICAgICAgKHJbbl0gPSAoaSwgLi4uYSkgPT4gewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgdC5sZW5ndGg7IG8rKykgewogICAgICAgICAgY29uc3QgbCA9IG1vZGlmaWVyR3VhcmRzW3Rbb11dOwogICAgICAgICAgaWYgKGwgJiYgbChpLCB0KSkgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZShpLCAuLi5hKTsKICAgICAgfSkKICAgICk7CiAgfSwKICBrZXlOYW1lcyA9IHsKICAgIGVzYzogImVzY2FwZSIsCiAgICBzcGFjZTogIiAiLAogICAgdXA6ICJhcnJvdy11cCIsCiAgICBsZWZ0OiAiYXJyb3ctbGVmdCIsCiAgICByaWdodDogImFycm93LXJpZ2h0IiwKICAgIGRvd246ICJhcnJvdy1kb3duIiwKICAgIGRlbGV0ZTogImJhY2tzcGFjZSIsCiAgfSwKICB3aXRoS2V5cyA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZS5fd2l0aEtleXMgfHwgKGUuX3dpdGhLZXlzID0ge30pLAogICAgICBuID0gdC5qb2luKCIuIik7CiAgICByZXR1cm4gKAogICAgICByW25dIHx8CiAgICAgIChyW25dID0gKGkpID0+IHsKICAgICAgICBpZiAoISgia2V5IiBpbiBpKSkgcmV0dXJuOwogICAgICAgIGNvbnN0IGEgPSBoeXBoZW5hdGUoaS5rZXkpOwogICAgICAgIGlmICh0LnNvbWUoKG8pID0+IG8gPT09IGEgfHwga2V5TmFtZXNbb10gPT09IGEpKSByZXR1cm4gZShpKTsKICAgICAgfSkKICAgICk7CiAgfSwKICByZW5kZXJlck9wdGlvbnMgPSBleHRlbmQoeyBwYXRjaFByb3AgfSwgbm9kZU9wcyk7CmxldCByZW5kZXJlciwKICBlbmFibGVkSHlkcmF0aW9uID0gITE7CmZ1bmN0aW9uIGVuc3VyZVJlbmRlcmVyKCkgewogIHJldHVybiByZW5kZXJlciB8fCAocmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihyZW5kZXJlck9wdGlvbnMpKTsKfQpmdW5jdGlvbiBlbnN1cmVIeWRyYXRpb25SZW5kZXJlcigpIHsKICByZXR1cm4gKAogICAgKHJlbmRlcmVyID0gZW5hYmxlZEh5ZHJhdGlvbgogICAgICA/IHJlbmRlcmVyCiAgICAgIDogY3JlYXRlSHlkcmF0aW9uUmVuZGVyZXIocmVuZGVyZXJPcHRpb25zKSksCiAgICAoZW5hYmxlZEh5ZHJhdGlvbiA9ICEwKSwKICAgIHJlbmRlcmVyCiAgKTsKfQpjb25zdCByZW5kZXIgPSAoLi4uZSkgPT4gewogIGVuc3VyZVJlbmRlcmVyKCkucmVuZGVyKC4uLmUpOwp9LAogIGh5ZHJhdGUgPSAoLi4uZSkgPT4gewogICAgZW5zdXJlSHlkcmF0aW9uUmVuZGVyZXIoKS5oeWRyYXRlKC4uLmUpOwogIH0sCiAgY3JlYXRlQXBwID0gKC4uLmUpID0+IHsKICAgIGNvbnN0IHQgPSBlbnN1cmVSZW5kZXJlcigpLmNyZWF0ZUFwcCguLi5lKSwKICAgICAgeyBtb3VudDogciB9ID0gdDsKICAgIHJldHVybiAoCiAgICAgICh0Lm1vdW50ID0gKG4pID0+IHsKICAgICAgICBjb25zdCBpID0gbm9ybWFsaXplQ29udGFpbmVyKG4pOwogICAgICAgIGlmICghaSkgcmV0dXJuOwogICAgICAgIGNvbnN0IGEgPSB0Ll9jb21wb25lbnQ7CiAgICAgICAgIWlzRnVuY3Rpb24kMShhKSAmJgogICAgICAgICAgIWEucmVuZGVyICYmCiAgICAgICAgICAhYS50ZW1wbGF0ZSAmJgogICAgICAgICAgKGEudGVtcGxhdGUgPSBpLmlubmVySFRNTCksCiAgICAgICAgICBpLm5vZGVUeXBlID09PSAxICYmIChpLnRleHRDb250ZW50ID0gIiIpOwogICAgICAgIGNvbnN0IG8gPSByKGksICExLCByZXNvbHZlUm9vdE5hbWVzcGFjZShpKSk7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGkgaW5zdGFuY2VvZiBFbGVtZW50ICYmCiAgICAgICAgICAoaS5yZW1vdmVBdHRyaWJ1dGUoInYtY2xvYWsiKSwgaS5zZXRBdHRyaWJ1dGUoImRhdGEtdi1hcHAiLCAiIikpLAogICAgICAgICAgbwogICAgICAgICk7CiAgICAgIH0pLAogICAgICB0CiAgICApOwogIH0sCiAgY3JlYXRlU1NSQXBwID0gKC4uLmUpID0+IHsKICAgIGNvbnN0IHQgPSBlbnN1cmVIeWRyYXRpb25SZW5kZXJlcigpLmNyZWF0ZUFwcCguLi5lKSwKICAgICAgeyBtb3VudDogciB9ID0gdDsKICAgIHJldHVybiAoCiAgICAgICh0Lm1vdW50ID0gKG4pID0+IHsKICAgICAgICBjb25zdCBpID0gbm9ybWFsaXplQ29udGFpbmVyKG4pOwogICAgICAgIGlmIChpKSByZXR1cm4gcihpLCAhMCwgcmVzb2x2ZVJvb3ROYW1lc3BhY2UoaSkpOwogICAgICB9KSwKICAgICAgdAogICAgKTsKICB9OwpmdW5jdGlvbiByZXNvbHZlUm9vdE5hbWVzcGFjZShlKSB7CiAgaWYgKGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50KSByZXR1cm4gInN2ZyI7CiAgaWYgKHR5cGVvZiBNYXRoTUxFbGVtZW50ID09ICJmdW5jdGlvbiIgJiYgZSBpbnN0YW5jZW9mIE1hdGhNTEVsZW1lbnQpCiAgICByZXR1cm4gIm1hdGhtbCI7Cn0KZnVuY3Rpb24gbm9ybWFsaXplQ29udGFpbmVyKGUpIHsKICByZXR1cm4gaXNTdHJpbmckMShlKSA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSkgOiBlOwp9CmxldCBzc3JEaXJlY3RpdmVJbml0aWFsaXplZCA9ICExOwpjb25zdCBpbml0RGlyZWN0aXZlc0ZvclNTUiA9ICgpID0+IHsKICBzc3JEaXJlY3RpdmVJbml0aWFsaXplZCB8fAogICAgKChzc3JEaXJlY3RpdmVJbml0aWFsaXplZCA9ICEwKSwgaW5pdFZNb2RlbEZvclNTUigpLCBpbml0VlNob3dGb3JTU1IoKSk7Cn07Ci8qKgogKiB2dWUgdjMuNS4xMwogKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwogKiBAbGljZW5zZSBNSVQKICoqLyBjb25zdCBjb21waWxlJDEgPSAoKSA9PiB7IH0sCiAgdnVlX3J1bnRpbWVfZXNtQnVuZGxlciA9IE9iamVjdC5mcmVlemUoCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoCiAgICAgIHsKICAgICAgICBfX3Byb3RvX186IG51bGwsCiAgICAgICAgQmFzZVRyYW5zaXRpb24sCiAgICAgICAgQmFzZVRyYW5zaXRpb25Qcm9wc1ZhbGlkYXRvcnMsCiAgICAgICAgQ29tbWVudCwKICAgICAgICBEZXByZWNhdGlvblR5cGVzLAogICAgICAgIEVmZmVjdFNjb3BlLAogICAgICAgIEVycm9yQ29kZXMsCiAgICAgICAgRXJyb3JUeXBlU3RyaW5ncywKICAgICAgICBGcmFnbWVudCwKICAgICAgICBLZWVwQWxpdmUsCiAgICAgICAgUmVhY3RpdmVFZmZlY3QsCiAgICAgICAgU3RhdGljLAogICAgICAgIFN1c3BlbnNlLAogICAgICAgIFRlbGVwb3J0LAogICAgICAgIFRleHQsCiAgICAgICAgVHJhY2tPcFR5cGVzLAogICAgICAgIFRyYW5zaXRpb24sCiAgICAgICAgVHJhbnNpdGlvbkdyb3VwLAogICAgICAgIFRyaWdnZXJPcFR5cGVzLAogICAgICAgIFZ1ZUVsZW1lbnQsCiAgICAgICAgYXNzZXJ0TnVtYmVyLAogICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nLAogICAgICAgIGNhbGxXaXRoRXJyb3JIYW5kbGluZywKICAgICAgICBjYW1lbGl6ZSwKICAgICAgICBjYXBpdGFsaXplOiBjYXBpdGFsaXplJDEsCiAgICAgICAgY2xvbmVWTm9kZSwKICAgICAgICBjb21wYXRVdGlscywKICAgICAgICBjb21waWxlOiBjb21waWxlJDEsCiAgICAgICAgY29tcHV0ZWQsCiAgICAgICAgY3JlYXRlQXBwLAogICAgICAgIGNyZWF0ZUJsb2NrLAogICAgICAgIGNyZWF0ZUNvbW1lbnRWTm9kZSwKICAgICAgICBjcmVhdGVFbGVtZW50QmxvY2ssCiAgICAgICAgY3JlYXRlRWxlbWVudFZOb2RlOiBjcmVhdGVCYXNlVk5vZGUsCiAgICAgICAgY3JlYXRlSHlkcmF0aW9uUmVuZGVyZXIsCiAgICAgICAgY3JlYXRlUHJvcHNSZXN0UHJveHksCiAgICAgICAgY3JlYXRlUmVuZGVyZXIsCiAgICAgICAgY3JlYXRlU1NSQXBwLAogICAgICAgIGNyZWF0ZVNsb3RzLAogICAgICAgIGNyZWF0ZVN0YXRpY1ZOb2RlLAogICAgICAgIGNyZWF0ZVRleHRWTm9kZSwKICAgICAgICBjcmVhdGVWTm9kZSwKICAgICAgICBjdXN0b21SZWYsCiAgICAgICAgZGVmaW5lQXN5bmNDb21wb25lbnQsCiAgICAgICAgZGVmaW5lQ29tcG9uZW50OiBkZWZpbmVDb21wb25lbnQkMSwKICAgICAgICBkZWZpbmVDdXN0b21FbGVtZW50LAogICAgICAgIGRlZmluZUVtaXRzLAogICAgICAgIGRlZmluZUV4cG9zZSwKICAgICAgICBkZWZpbmVNb2RlbCwKICAgICAgICBkZWZpbmVPcHRpb25zLAogICAgICAgIGRlZmluZVByb3BzLAogICAgICAgIGRlZmluZVNTUkN1c3RvbUVsZW1lbnQsCiAgICAgICAgZGVmaW5lU2xvdHMsCiAgICAgICAgZGV2dG9vbHM6IGRldnRvb2xzJDIsCiAgICAgICAgZWZmZWN0LAogICAgICAgIGVmZmVjdFNjb3BlLAogICAgICAgIGdldEN1cnJlbnRJbnN0YW5jZTogZ2V0Q3VycmVudEluc3RhbmNlJDEsCiAgICAgICAgZ2V0Q3VycmVudFNjb3BlLAogICAgICAgIGdldEN1cnJlbnRXYXRjaGVyLAogICAgICAgIGdldFRyYW5zaXRpb25SYXdDaGlsZHJlbiwKICAgICAgICBndWFyZFJlYWN0aXZlUHJvcHMsCiAgICAgICAgaDogaCQyLAogICAgICAgIGhhbmRsZUVycm9yLAogICAgICAgIGhhc0luamVjdGlvbkNvbnRleHQsCiAgICAgICAgaHlkcmF0ZSwKICAgICAgICBoeWRyYXRlT25JZGxlLAogICAgICAgIGh5ZHJhdGVPbkludGVyYWN0aW9uLAogICAgICAgIGh5ZHJhdGVPbk1lZGlhUXVlcnksCiAgICAgICAgaHlkcmF0ZU9uVmlzaWJsZSwKICAgICAgICBpbml0Q3VzdG9tRm9ybWF0dGVyLAogICAgICAgIGluaXREaXJlY3RpdmVzRm9yU1NSLAogICAgICAgIGluamVjdDogaW5qZWN0JDEsCiAgICAgICAgaXNNZW1vU2FtZSwKICAgICAgICBpc1Byb3h5LAogICAgICAgIGlzUmVhY3RpdmUsCiAgICAgICAgaXNSZWFkb25seSwKICAgICAgICBpc1JlZiwKICAgICAgICBpc1J1bnRpbWVPbmx5LAogICAgICAgIGlzU2hhbGxvdywKICAgICAgICBpc1ZOb2RlOiBpc1ZOb2RlJDEsCiAgICAgICAgbWFya1JhdywKICAgICAgICBtZXJnZURlZmF1bHRzLAogICAgICAgIG1lcmdlTW9kZWxzLAogICAgICAgIG1lcmdlUHJvcHMsCiAgICAgICAgbmV4dFRpY2ssCiAgICAgICAgbm9ybWFsaXplQ2xhc3MsCiAgICAgICAgbm9ybWFsaXplUHJvcHMsCiAgICAgICAgbm9ybWFsaXplU3R5bGUsCiAgICAgICAgb25BY3RpdmF0ZWQsCiAgICAgICAgb25CZWZvcmVNb3VudCwKICAgICAgICBvbkJlZm9yZVVubW91bnQsCiAgICAgICAgb25CZWZvcmVVcGRhdGUsCiAgICAgICAgb25EZWFjdGl2YXRlZCwKICAgICAgICBvbkVycm9yQ2FwdHVyZWQsCiAgICAgICAgb25Nb3VudGVkLAogICAgICAgIG9uUmVuZGVyVHJhY2tlZCwKICAgICAgICBvblJlbmRlclRyaWdnZXJlZCwKICAgICAgICBvblNjb3BlRGlzcG9zZSwKICAgICAgICBvblNlcnZlclByZWZldGNoLAogICAgICAgIG9uVW5tb3VudGVkLAogICAgICAgIG9uVXBkYXRlZCwKICAgICAgICBvbldhdGNoZXJDbGVhbnVwLAogICAgICAgIG9wZW5CbG9jaywKICAgICAgICBwb3BTY29wZUlkLAogICAgICAgIHByb3ZpZGUsCiAgICAgICAgcHJveHlSZWZzLAogICAgICAgIHB1c2hTY29wZUlkLAogICAgICAgIHF1ZXVlUG9zdEZsdXNoQ2IsCiAgICAgICAgcmVhY3RpdmUsCiAgICAgICAgcmVhZG9ubHksCiAgICAgICAgcmVmLAogICAgICAgIHJlZ2lzdGVyUnVudGltZUNvbXBpbGVyLAogICAgICAgIHJlbmRlciwKICAgICAgICByZW5kZXJMaXN0LAogICAgICAgIHJlbmRlclNsb3QsCiAgICAgICAgcmVzb2x2ZUNvbXBvbmVudCwKICAgICAgICByZXNvbHZlRGlyZWN0aXZlLAogICAgICAgIHJlc29sdmVEeW5hbWljQ29tcG9uZW50LAogICAgICAgIHJlc29sdmVGaWx0ZXIsCiAgICAgICAgcmVzb2x2ZVRyYW5zaXRpb25Ib29rcywKICAgICAgICBzZXRCbG9ja1RyYWNraW5nLAogICAgICAgIHNldERldnRvb2xzSG9vaywKICAgICAgICBzZXRUcmFuc2l0aW9uSG9va3MsCiAgICAgICAgc2hhbGxvd1JlYWN0aXZlLAogICAgICAgIHNoYWxsb3dSZWFkb25seSwKICAgICAgICBzaGFsbG93UmVmLAogICAgICAgIHNzckNvbnRleHRLZXksCiAgICAgICAgc3NyVXRpbHMsCiAgICAgICAgc3RvcCwKICAgICAgICB0b0Rpc3BsYXlTdHJpbmc6IHRvRGlzcGxheVN0cmluZyQxLAogICAgICAgIHRvSGFuZGxlcktleSwKICAgICAgICB0b0hhbmRsZXJzLAogICAgICAgIHRvUmF3LAogICAgICAgIHRvUmVmLAogICAgICAgIHRvUmVmcywKICAgICAgICB0b1ZhbHVlLAogICAgICAgIHRyYW5zZm9ybVZOb2RlQXJncywKICAgICAgICB0cmlnZ2VyUmVmLAogICAgICAgIHVucmVmLAogICAgICAgIHVzZUF0dHJzLAogICAgICAgIHVzZUNzc01vZHVsZSwKICAgICAgICB1c2VDc3NWYXJzLAogICAgICAgIHVzZUhvc3QsCiAgICAgICAgdXNlSWQsCiAgICAgICAgdXNlTW9kZWwsCiAgICAgICAgdXNlU1NSQ29udGV4dCwKICAgICAgICB1c2VTaGFkb3dSb290LAogICAgICAgIHVzZVNsb3RzLAogICAgICAgIHVzZVRlbXBsYXRlUmVmLAogICAgICAgIHVzZVRyYW5zaXRpb25TdGF0ZSwKICAgICAgICB2TW9kZWxDaGVja2JveCwKICAgICAgICB2TW9kZWxEeW5hbWljLAogICAgICAgIHZNb2RlbFJhZGlvLAogICAgICAgIHZNb2RlbFNlbGVjdCwKICAgICAgICB2TW9kZWxUZXh0LAogICAgICAgIHZTaG93LAogICAgICAgIHZlcnNpb246IHZlcnNpb24kMSwKICAgICAgICB3YXJuOiB3YXJuJDIsCiAgICAgICAgd2F0Y2gsCiAgICAgICAgd2F0Y2hFZmZlY3QsCiAgICAgICAgd2F0Y2hQb3N0RWZmZWN0LAogICAgICAgIHdhdGNoU3luY0VmZmVjdCwKICAgICAgICB3aXRoQXN5bmNDb250ZXh0LAogICAgICAgIHdpdGhDdHgsCiAgICAgICAgd2l0aERlZmF1bHRzLAogICAgICAgIHdpdGhEaXJlY3RpdmVzLAogICAgICAgIHdpdGhLZXlzLAogICAgICAgIHdpdGhNZW1vLAogICAgICAgIHdpdGhNb2RpZmllcnMsCiAgICAgICAgd2l0aFNjb3BlSWQsCiAgICAgIH0sCiAgICAgIFN5bWJvbC50b1N0cmluZ1RhZywKICAgICAgeyB2YWx1ZTogIk1vZHVsZSIgfQogICAgKQogICksCiAgc3VzcGVjdFByb3RvUnggPQogICAgLyIoPzpffFxcdTB7Mn01W0ZmXSl7Mn0oPzpwfFxcdTB7Mn03MCkoPzpyfFxcdTB7Mn03MikoPzpvfFxcdTB7Mn02W0ZmXSkoPzp0fFxcdTB7Mn03NCkoPzpvfFxcdTB7Mn02W0ZmXSkoPzpffFxcdTB7Mn01W0ZmXSl7Mn0iXHMqOi8sCiAgc3VzcGVjdENvbnN0cnVjdG9yUnggPQogICAgLyIoPzpjfFxcdTAwNjMpKD86b3xcXHUwMDZbRmZdKSg/Om58XFx1MDA2W0VlXSkoPzpzfFxcdTAwNzMpKD86dHxcXHUwMDc0KSg/OnJ8XFx1MDA3MikoPzp1fFxcdTAwNzUpKD86Y3xcXHUwMDYzKSg/OnR8XFx1MDA3NCkoPzpvfFxcdTAwNltGZl0pKD86cnxcXHUwMDcyKSJccyo6LywKICBKc29uU2lnUnggPSAvXlxzKlsiW3tdfF5ccyotP1xkezEsMTZ9KFwuXGR7MSwxN30pPyhbRWVdWystXT9cZCspP1xzKiQvOwpmdW5jdGlvbiBqc29uUGFyc2VUcmFuc2Zvcm0oZSwgdCkgewogIGlmICgKICAgIGUgPT09ICJfX3Byb3RvX18iIHx8CiAgICAoZSA9PT0gImNvbnN0cnVjdG9yIiAmJiB0ICYmIHR5cGVvZiB0ID09ICJvYmplY3QiICYmICJwcm90b3R5cGUiIGluIHQpCiAgKSB7CiAgICB3YXJuS2V5RHJvcHBlZChlKTsKICAgIHJldHVybjsKICB9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gd2FybktleURyb3BwZWQoZSkgewogIGNvbnNvbGUud2FybihgW2Rlc3RyXSBEcm9wcGluZyAiJHtlfSIga2V5IHRvIHByZXZlbnQgcHJvdG90eXBlIHBvbGx1dGlvbi5gKTsKfQpmdW5jdGlvbiBkZXN0cihlLCB0ID0ge30pIHsKICBpZiAodHlwZW9mIGUgIT0gInN0cmluZyIpIHJldHVybiBlOwogIGNvbnN0IHIgPSBlLnRyaW0oKTsKICBpZiAoZVswXSA9PT0gJyInICYmIGUuZW5kc1dpdGgoJyInKSAmJiAhZS5pbmNsdWRlcygiXFwiKSkKICAgIHJldHVybiByLnNsaWNlKDEsIC0xKTsKICBpZiAoci5sZW5ndGggPD0gOSkgewogICAgY29uc3QgbiA9IHIudG9Mb3dlckNhc2UoKTsKICAgIGlmIChuID09PSAidHJ1ZSIpIHJldHVybiAhMDsKICAgIGlmIChuID09PSAiZmFsc2UiKSByZXR1cm4gITE7CiAgICBpZiAobiA9PT0gInVuZGVmaW5lZCIpIHJldHVybjsKICAgIGlmIChuID09PSAibnVsbCIpIHJldHVybiBudWxsOwogICAgaWYgKG4gPT09ICJuYW4iKSByZXR1cm4gTnVtYmVyLk5hTjsKICAgIGlmIChuID09PSAiaW5maW5pdHkiKSByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwogICAgaWYgKG4gPT09ICItaW5maW5pdHkiKSByZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwogIH0KICBpZiAoIUpzb25TaWdSeC50ZXN0KGUpKSB7CiAgICBpZiAodC5zdHJpY3QpIHRocm93IG5ldyBTeW50YXhFcnJvcigiW2Rlc3RyXSBJbnZhbGlkIEpTT04iKTsKICAgIHJldHVybiBlOwogIH0KICB0cnkgewogICAgaWYgKHN1c3BlY3RQcm90b1J4LnRlc3QoZSkgfHwgc3VzcGVjdENvbnN0cnVjdG9yUngudGVzdChlKSkgewogICAgICBpZiAodC5zdHJpY3QpIHRocm93IG5ldyBFcnJvcigiW2Rlc3RyXSBQb3NzaWJsZSBwcm90b3R5cGUgcG9sbHV0aW9uIik7CiAgICAgIHJldHVybiBKU09OLnBhcnNlKGUsIGpzb25QYXJzZVRyYW5zZm9ybSk7CiAgICB9CiAgICByZXR1cm4gSlNPTi5wYXJzZShlKTsKICB9IGNhdGNoIChuKSB7CiAgICBpZiAodC5zdHJpY3QpIHRocm93IG47CiAgICByZXR1cm4gZTsKICB9Cn0KY29uc3QgSEFTSF9SRSQxID0gLyMvZywKICBBTVBFUlNBTkRfUkUkMSA9IC8mL2csCiAgU0xBU0hfUkUkMSA9IC9cLy9nLAogIEVRVUFMX1JFJDEgPSAvPS9nLAogIFBMVVNfUkUkMSA9IC9cKy9nLAogIEVOQ19DQVJFVF9SRSQxID0gLyU1ZS9naSwKICBFTkNfQkFDS1RJQ0tfUkUkMSA9IC8lNjAvZ2ksCiAgRU5DX1BJUEVfUkUkMSA9IC8lN2MvZ2ksCiAgRU5DX1NQQUNFX1JFJDEgPSAvJTIwL2dpOwpmdW5jdGlvbiBlbmNvZGUoZSkgewogIHJldHVybiBlbmNvZGVVUkkoIiIgKyBlKS5yZXBsYWNlKEVOQ19QSVBFX1JFJDEsICJ8Iik7Cn0KZnVuY3Rpb24gZW5jb2RlUXVlcnlWYWx1ZSQxKGUpIHsKICByZXR1cm4gZW5jb2RlKHR5cGVvZiBlID09ICJzdHJpbmciID8gZSA6IEpTT04uc3RyaW5naWZ5KGUpKQogICAgLnJlcGxhY2UoUExVU19SRSQxLCAiJTJCIikKICAgIC5yZXBsYWNlKEVOQ19TUEFDRV9SRSQxLCAiKyIpCiAgICAucmVwbGFjZShIQVNIX1JFJDEsICIlMjMiKQogICAgLnJlcGxhY2UoQU1QRVJTQU5EX1JFJDEsICIlMjYiKQogICAgLnJlcGxhY2UoRU5DX0JBQ0tUSUNLX1JFJDEsICJgIikKICAgIC5yZXBsYWNlKEVOQ19DQVJFVF9SRSQxLCAiXiIpCiAgICAucmVwbGFjZShTTEFTSF9SRSQxLCAiJTJGIik7Cn0KZnVuY3Rpb24gZW5jb2RlUXVlcnlLZXkkMShlKSB7CiAgcmV0dXJuIGVuY29kZVF1ZXJ5VmFsdWUkMShlKS5yZXBsYWNlKEVRVUFMX1JFJDEsICIlM0QiKTsKfQpmdW5jdGlvbiBkZWNvZGUkMihlID0gIiIpIHsKICB0cnkgewogICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCgiIiArIGUpOwogIH0gY2F0Y2ggewogICAgcmV0dXJuICIiICsgZTsKICB9Cn0KZnVuY3Rpb24gZGVjb2RlUXVlcnlLZXkoZSkgewogIHJldHVybiBkZWNvZGUkMihlLnJlcGxhY2UoUExVU19SRSQxLCAiICIpKTsKfQpmdW5jdGlvbiBkZWNvZGVRdWVyeVZhbHVlKGUpIHsKICByZXR1cm4gZGVjb2RlJDIoZS5yZXBsYWNlKFBMVVNfUkUkMSwgIiAiKSk7Cn0KZnVuY3Rpb24gcGFyc2VRdWVyeSQxKGUgPSAiIikgewogIGNvbnN0IHQgPSB7fTsKICBlWzBdID09PSAiPyIgJiYgKGUgPSBlLnNsaWNlKDEpKTsKICBmb3IgKGNvbnN0IHIgb2YgZS5zcGxpdCgiJiIpKSB7CiAgICBjb25zdCBuID0gci5tYXRjaCgvKFtePV0rKT0/KC4qKS8pIHx8IFtdOwogICAgaWYgKG4ubGVuZ3RoIDwgMikgY29udGludWU7CiAgICBjb25zdCBpID0gZGVjb2RlUXVlcnlLZXkoblsxXSk7CiAgICBpZiAoaSA9PT0gIl9fcHJvdG9fXyIgfHwgaSA9PT0gImNvbnN0cnVjdG9yIikgY29udGludWU7CiAgICBjb25zdCBhID0gZGVjb2RlUXVlcnlWYWx1ZShuWzJdIHx8ICIiKTsKICAgIHRbaV0gPT09IHZvaWQgMAogICAgICA/ICh0W2ldID0gYSkKICAgICAgOiBBcnJheS5pc0FycmF5KHRbaV0pCiAgICAgICAgPyB0W2ldLnB1c2goYSkKICAgICAgICA6ICh0W2ldID0gW3RbaV0sIGFdKTsKICB9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gZW5jb2RlUXVlcnlJdGVtKGUsIHQpIHsKICByZXR1cm4gKAogICAgKHR5cGVvZiB0ID09ICJudW1iZXIiIHx8IHR5cGVvZiB0ID09ICJib29sZWFuIikgJiYgKHQgPSBTdHJpbmcodCkpLAogICAgdAogICAgICA/IEFycmF5LmlzQXJyYXkodCkKICAgICAgICA/IHQKICAgICAgICAgIC5tYXAoKHIpID0+IGAke2VuY29kZVF1ZXJ5S2V5JDEoZSl9PSR7ZW5jb2RlUXVlcnlWYWx1ZSQxKHIpfWApCiAgICAgICAgICAuam9pbigiJiIpCiAgICAgICAgOiBgJHtlbmNvZGVRdWVyeUtleSQxKGUpfT0ke2VuY29kZVF1ZXJ5VmFsdWUkMSh0KX1gCiAgICAgIDogZW5jb2RlUXVlcnlLZXkkMShlKQogICk7Cn0KZnVuY3Rpb24gc3RyaW5naWZ5UXVlcnkkMShlKSB7CiAgcmV0dXJuIE9iamVjdC5rZXlzKGUpCiAgICAuZmlsdGVyKCh0KSA9PiBlW3RdICE9PSB2b2lkIDApCiAgICAubWFwKCh0KSA9PiBlbmNvZGVRdWVyeUl0ZW0odCwgZVt0XSkpCiAgICAuZmlsdGVyKEJvb2xlYW4pCiAgICAuam9pbigiJiIpOwp9CmNvbnN0IFBST1RPQ09MX1NUUklDVF9SRUdFWCA9IC9eW1xzXHdcMCsuLV17Mix9OihbL1xcXXsxLDJ9KS8sCiAgUFJPVE9DT0xfUkVHRVggPSAvXltcc1x3XDArLi1dezIsfTooWy9cXF17Mn0pPy8sCiAgUFJPVE9DT0xfUkVMQVRJVkVfUkVHRVggPSAvXihbL1xcXVxzKil7Mix9W14vXFxdLywKICBQUk9UT0NPTF9TQ1JJUFRfUkUgPSAvXltcc1wwXSooYmxvYnxkYXRhfGphdmFzY3JpcHR8dmJzY3JpcHQpOiQvaSwKICBUUkFJTElOR19TTEFTSF9SRSQxID0gL1wvJHxcL1w/fFwvIy8sCiAgSk9JTl9MRUFESU5HX1NMQVNIX1JFID0gL15cLj9cLy87CmZ1bmN0aW9uIGhhc1Byb3RvY29sKGUsIHQgPSB7fSkgewogIHJldHVybiAoCiAgICB0eXBlb2YgdCA9PSAiYm9vbGVhbiIgJiYgKHQgPSB7IGFjY2VwdFJlbGF0aXZlOiB0IH0pLAogICAgdC5zdHJpY3QKICAgICAgPyBQUk9UT0NPTF9TVFJJQ1RfUkVHRVgudGVzdChlKQogICAgICA6IFBST1RPQ09MX1JFR0VYLnRlc3QoZSkgfHwKICAgICAgKHQuYWNjZXB0UmVsYXRpdmUgPyBQUk9UT0NPTF9SRUxBVElWRV9SRUdFWC50ZXN0KGUpIDogITEpCiAgKTsKfQpmdW5jdGlvbiBpc1NjcmlwdFByb3RvY29sKGUpIHsKICByZXR1cm4gISFlICYmIFBST1RPQ09MX1NDUklQVF9SRS50ZXN0KGUpOwp9CmZ1bmN0aW9uIGhhc1RyYWlsaW5nU2xhc2goZSA9ICIiLCB0KSB7CiAgcmV0dXJuIHQgPyBUUkFJTElOR19TTEFTSF9SRSQxLnRlc3QoZSkgOiBlLmVuZHNXaXRoKCIvIik7Cn0KZnVuY3Rpb24gd2l0aG91dFRyYWlsaW5nU2xhc2goZSA9ICIiLCB0KSB7CiAgaWYgKCF0KSByZXR1cm4gKGhhc1RyYWlsaW5nU2xhc2goZSkgPyBlLnNsaWNlKDAsIC0xKSA6IGUpIHx8ICIvIjsKICBpZiAoIWhhc1RyYWlsaW5nU2xhc2goZSwgITApKSByZXR1cm4gZSB8fCAiLyI7CiAgbGV0IHIgPSBlLAogICAgbiA9ICIiOwogIGNvbnN0IGkgPSBlLmluZGV4T2YoIiMiKTsKICBpID49IDAgJiYgKChyID0gZS5zbGljZSgwLCBpKSksIChuID0gZS5zbGljZShpKSkpOwogIGNvbnN0IFthLCAuLi5vXSA9IHIuc3BsaXQoIj8iKTsKICByZXR1cm4gKAogICAgKChhLmVuZHNXaXRoKCIvIikgPyBhLnNsaWNlKDAsIC0xKSA6IGEpIHx8ICIvIikgKwogICAgKG8ubGVuZ3RoID4gMCA/IGA/JHtvLmpvaW4oIj8iKX1gIDogIiIpICsKICAgIG4KICApOwp9CmZ1bmN0aW9uIHdpdGhUcmFpbGluZ1NsYXNoKGUgPSAiIiwgdCkgewogIGlmICghdCkgcmV0dXJuIGUuZW5kc1dpdGgoIi8iKSA/IGUgOiBlICsgIi8iOwogIGlmIChoYXNUcmFpbGluZ1NsYXNoKGUsICEwKSkgcmV0dXJuIGUgfHwgIi8iOwogIGxldCByID0gZSwKICAgIG4gPSAiIjsKICBjb25zdCBpID0gZS5pbmRleE9mKCIjIik7CiAgaWYgKGkgPj0gMCAmJiAoKHIgPSBlLnNsaWNlKDAsIGkpKSwgKG4gPSBlLnNsaWNlKGkpKSwgIXIpKSByZXR1cm4gbjsKICBjb25zdCBbYSwgLi4ub10gPSByLnNwbGl0KCI/Iik7CiAgcmV0dXJuIGEgKyAiLyIgKyAoby5sZW5ndGggPiAwID8gYD8ke28uam9pbigiPyIpfWAgOiAiIikgKyBuOwp9CmZ1bmN0aW9uIGhhc0xlYWRpbmdTbGFzaChlID0gIiIpIHsKICByZXR1cm4gZS5zdGFydHNXaXRoKCIvIik7Cn0KZnVuY3Rpb24gd2l0aExlYWRpbmdTbGFzaChlID0gIiIpIHsKICByZXR1cm4gaGFzTGVhZGluZ1NsYXNoKGUpID8gZSA6ICIvIiArIGU7Cn0KZnVuY3Rpb24gd2l0aEJhc2UoZSwgdCkgewogIGlmIChpc0VtcHR5VVJMKHQpIHx8IGhhc1Byb3RvY29sKGUpKSByZXR1cm4gZTsKICBjb25zdCByID0gd2l0aG91dFRyYWlsaW5nU2xhc2godCk7CiAgcmV0dXJuIGUuc3RhcnRzV2l0aChyKSA/IGUgOiBqb2luVVJMKHIsIGUpOwp9CmZ1bmN0aW9uIHdpdGhvdXRCYXNlKGUsIHQpIHsKICBpZiAoaXNFbXB0eVVSTCh0KSkgcmV0dXJuIGU7CiAgY29uc3QgciA9IHdpdGhvdXRUcmFpbGluZ1NsYXNoKHQpOwogIGlmICghZS5zdGFydHNXaXRoKHIpKSByZXR1cm4gZTsKICBjb25zdCBuID0gZS5zbGljZShyLmxlbmd0aCk7CiAgcmV0dXJuIG5bMF0gPT09ICIvIiA/IG4gOiAiLyIgKyBuOwp9CmZ1bmN0aW9uIHdpdGhRdWVyeShlLCB0KSB7CiAgY29uc3QgciA9IHBhcnNlVVJMJDEoZSksCiAgICBuID0geyAuLi5wYXJzZVF1ZXJ5JDEoci5zZWFyY2gpLCAuLi50IH07CiAgcmV0dXJuIChyLnNlYXJjaCA9IHN0cmluZ2lmeVF1ZXJ5JDEobikpLCBzdHJpbmdpZnlQYXJzZWRVUkwocik7Cn0KZnVuY3Rpb24gaXNFbXB0eVVSTChlKSB7CiAgcmV0dXJuICFlIHx8IGUgPT09ICIvIjsKfQpmdW5jdGlvbiBpc05vbkVtcHR5VVJMKGUpIHsKICByZXR1cm4gZSAmJiBlICE9PSAiLyI7Cn0KZnVuY3Rpb24gam9pblVSTChlLCAuLi50KSB7CiAgbGV0IHIgPSBlIHx8ICIiOwogIGZvciAoY29uc3QgbiBvZiB0LmZpbHRlcigoaSkgPT4gaXNOb25FbXB0eVVSTChpKSkpCiAgICBpZiAocikgewogICAgICBjb25zdCBpID0gbi5yZXBsYWNlKEpPSU5fTEVBRElOR19TTEFTSF9SRSwgIiIpOwogICAgICByID0gd2l0aFRyYWlsaW5nU2xhc2gocikgKyBpOwogICAgfSBlbHNlIHIgPSBuOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIGpvaW5SZWxhdGl2ZVVSTCguLi5lKSB7CiAgdmFyIG8sIGwsIGMsIHU7CiAgY29uc3QgdCA9IC9cLyg/IVwvKS8sCiAgICByID0gZS5maWx0ZXIoQm9vbGVhbiksCiAgICBuID0gW107CiAgbGV0IGkgPSAwOwogIGZvciAoY29uc3QgZCBvZiByKQogICAgaWYgKCEoIWQgfHwgZCA9PT0gIi8iKSkgewogICAgICBmb3IgKGNvbnN0IFtFLCBiXSBvZiBkLnNwbGl0KHQpLmVudHJpZXMoKSkKICAgICAgICBpZiAoISghYiB8fCBiID09PSAiLiIpKSB7CiAgICAgICAgICBpZiAoYiA9PT0gIi4uIikgewogICAgICAgICAgICBpZiAobi5sZW5ndGggPT09IDEgJiYgaGFzUHJvdG9jb2woblswXSkpIGNvbnRpbnVlOwogICAgICAgICAgICBuLnBvcCgpLCBpLS07CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKEUgPT09IDEgJiYgKG8gPSBuW24ubGVuZ3RoIC0gMV0pICE9IG51bGwgJiYgby5lbmRzV2l0aCgiOi8iKSkgewogICAgICAgICAgICBuW24ubGVuZ3RoIC0gMV0gKz0gIi8iICsgYjsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBuLnB1c2goYiksIGkrKzsKICAgICAgICB9CiAgICB9CiAgbGV0IGEgPSBuLmpvaW4oIi8iKTsKICByZXR1cm4gKAogICAgaSA+PSAwCiAgICAgID8gKGwgPSByWzBdKSAhPSBudWxsICYmIGwuc3RhcnRzV2l0aCgiLyIpICYmICFhLnN0YXJ0c1dpdGgoIi8iKQogICAgICAgID8gKGEgPSAiLyIgKyBhKQogICAgICAgIDogKGMgPSByWzBdKSAhPSBudWxsICYmCiAgICAgICAgYy5zdGFydHNXaXRoKCIuLyIpICYmCiAgICAgICAgIWEuc3RhcnRzV2l0aCgiLi8iKSAmJgogICAgICAgIChhID0gIi4vIiArIGEpCiAgICAgIDogKGEgPSAiLi4vIi5yZXBlYXQoLTEgKiBpKSArIGEpLAogICAgKHUgPSByW3IubGVuZ3RoIC0gMV0pICE9IG51bGwgJiYKICAgIHUuZW5kc1dpdGgoIi8iKSAmJgogICAgIWEuZW5kc1dpdGgoIi8iKSAmJgogICAgKGEgKz0gIi8iKSwKICAgIGEKICApOwp9CmZ1bmN0aW9uIGlzRXF1YWwkMihlLCB0LCByID0ge30pIHsKICByZXR1cm4gKAogICAgci50cmFpbGluZ1NsYXNoIHx8ICgoZSA9IHdpdGhUcmFpbGluZ1NsYXNoKGUpKSwgKHQgPSB3aXRoVHJhaWxpbmdTbGFzaCh0KSkpLAogICAgci5sZWFkaW5nU2xhc2ggfHwgKChlID0gd2l0aExlYWRpbmdTbGFzaChlKSksICh0ID0gd2l0aExlYWRpbmdTbGFzaCh0KSkpLAogICAgci5lbmNvZGluZyB8fCAoKGUgPSBkZWNvZGUkMihlKSksICh0ID0gZGVjb2RlJDIodCkpKSwKICAgIGUgPT09IHQKICApOwp9CmNvbnN0IHByb3RvY29sUmVsYXRpdmUgPSBTeW1ib2wuZm9yKCJ1Zm86cHJvdG9jb2xSZWxhdGl2ZSIpOwpmdW5jdGlvbiBwYXJzZVVSTCQxKGUgPSAiIiwgdCkgewogIGNvbnN0IHIgPSBlLm1hdGNoKC9eW1xzXDBdKihibG9iOnxkYXRhOnxqYXZhc2NyaXB0Onx2YnNjcmlwdDopKC4qKS9pKTsKICBpZiAocikgewogICAgY29uc3QgWywgRSwgYiA9ICIiXSA9IHI7CiAgICByZXR1cm4gewogICAgICBwcm90b2NvbDogRS50b0xvd2VyQ2FzZSgpLAogICAgICBwYXRobmFtZTogYiwKICAgICAgaHJlZjogRSArIGIsCiAgICAgIGF1dGg6ICIiLAogICAgICBob3N0OiAiIiwKICAgICAgc2VhcmNoOiAiIiwKICAgICAgaGFzaDogIiIsCiAgICB9OwogIH0KICBpZiAoIWhhc1Byb3RvY29sKGUsIHsgYWNjZXB0UmVsYXRpdmU6ICEwIH0pKSByZXR1cm4gcGFyc2VQYXRoKGUpOwogIGNvbnN0IFssIG4gPSAiIiwgaSwgYSA9ICIiXSA9CiAgICBlLnJlcGxhY2UoL1xcL2csICIvIikubWF0Y2goL15bXHNcMF0qKFtcdysuLV17Mix9Oik/XC9cLyhbXi9AXStAKT8oLiopLykgfHwKICAgIFtdOwogIGxldCBbLCBvID0gIiIsIGwgPSAiIl0gPSBhLm1hdGNoKC8oW14jLz9dKikoLiopPy8pIHx8IFtdOwogIG4gPT09ICJmaWxlOiIgJiYgKGwgPSBsLnJlcGxhY2UoL1wvKD89W0EtWmEtel06KS8sICIiKSk7CiAgY29uc3QgeyBwYXRobmFtZTogYywgc2VhcmNoOiB1LCBoYXNoOiBkIH0gPSBwYXJzZVBhdGgobCk7CiAgcmV0dXJuIHsKICAgIHByb3RvY29sOiBuLnRvTG93ZXJDYXNlKCksCiAgICBhdXRoOiBpID8gaS5zbGljZSgwLCBNYXRoLm1heCgwLCBpLmxlbmd0aCAtIDEpKSA6ICIiLAogICAgaG9zdDogbywKICAgIHBhdGhuYW1lOiBjLAogICAgc2VhcmNoOiB1LAogICAgaGFzaDogZCwKICAgIFtwcm90b2NvbFJlbGF0aXZlXTogIW4sCiAgfTsKfQpmdW5jdGlvbiBwYXJzZVBhdGgoZSA9ICIiKSB7CiAgY29uc3QgW3QgPSAiIiwgciA9ICIiLCBuID0gIiJdID0gKAogICAgZS5tYXRjaCgvKFteIz9dKikoXD9bXiNdKik/KCMuKik/LykgfHwgW10KICApLnNwbGljZSgxKTsKICByZXR1cm4geyBwYXRobmFtZTogdCwgc2VhcmNoOiByLCBoYXNoOiBuIH07Cn0KZnVuY3Rpb24gc3RyaW5naWZ5UGFyc2VkVVJMKGUpIHsKICBjb25zdCB0ID0gZS5wYXRobmFtZSB8fCAiIiwKICAgIHIgPSBlLnNlYXJjaCA/IChlLnNlYXJjaC5zdGFydHNXaXRoKCI/IikgPyAiIiA6ICI/IikgKyBlLnNlYXJjaCA6ICIiLAogICAgbiA9IGUuaGFzaCB8fCAiIiwKICAgIGkgPSBlLmF1dGggPyBlLmF1dGggKyAiQCIgOiAiIiwKICAgIGEgPSBlLmhvc3QgfHwgIiI7CiAgcmV0dXJuICgKICAgIChlLnByb3RvY29sIHx8IGVbcHJvdG9jb2xSZWxhdGl2ZV0gPyAoZS5wcm90b2NvbCB8fCAiIikgKyAiLy8iIDogIiIpICsKICAgIGkgKwogICAgYSArCiAgICB0ICsKICAgIHIgKwogICAgbgogICk7Cn0KY2xhc3MgRmV0Y2hFcnJvciBleHRlbmRzIEVycm9yIHsKICBjb25zdHJ1Y3Rvcih0LCByKSB7CiAgICBzdXBlcih0LCByKSwKICAgICAgKHRoaXMubmFtZSA9ICJGZXRjaEVycm9yIiksCiAgICAgIHIgIT0gbnVsbCAmJiByLmNhdXNlICYmICF0aGlzLmNhdXNlICYmICh0aGlzLmNhdXNlID0gci5jYXVzZSk7CiAgfQp9CmZ1bmN0aW9uIGNyZWF0ZUZldGNoRXJyb3IoZSkgewogIHZhciBjLCB1LCBkLCBFLCBiOwogIGNvbnN0IHQgPQogICAgKChjID0gZS5lcnJvcikgPT0gbnVsbCA/IHZvaWQgMCA6IGMubWVzc2FnZSkgfHwKICAgICgodSA9IGUuZXJyb3IpID09IG51bGwgPyB2b2lkIDAgOiB1LnRvU3RyaW5nKCkpIHx8CiAgICAiIiwKICAgIHIgPQogICAgICAoKGQgPSBlLnJlcXVlc3QpID09IG51bGwgPyB2b2lkIDAgOiBkLm1ldGhvZCkgfHwKICAgICAgKChFID0gZS5vcHRpb25zKSA9PSBudWxsID8gdm9pZCAwIDogRS5tZXRob2QpIHx8CiAgICAgICJHRVQiLAogICAgbiA9ICgoYiA9IGUucmVxdWVzdCkgPT0gbnVsbCA/IHZvaWQgMCA6IGIudXJsKSB8fCBTdHJpbmcoZS5yZXF1ZXN0KSB8fCAiLyIsCiAgICBpID0gYFske3J9XSAke0pTT04uc3RyaW5naWZ5KG4pfWAsCiAgICBhID0gZS5yZXNwb25zZQogICAgICA/IGAke2UucmVzcG9uc2Uuc3RhdHVzfSAke2UucmVzcG9uc2Uuc3RhdHVzVGV4dH1gCiAgICAgIDogIjxubyByZXNwb25zZT4iLAogICAgbyA9IGAke2l9OiAke2F9JHt0ID8gYCAke3R9YCA6ICIifWAsCiAgICBsID0gbmV3IEZldGNoRXJyb3IobywgZS5lcnJvciA/IHsgY2F1c2U6IGUuZXJyb3IgfSA6IHZvaWQgMCk7CiAgZm9yIChjb25zdCBQIG9mIFsicmVxdWVzdCIsICJvcHRpb25zIiwgInJlc3BvbnNlIl0pCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobCwgUCwgewogICAgICBnZXQoKSB7CiAgICAgICAgcmV0dXJuIGVbUF07CiAgICAgIH0sCiAgICB9KTsKICBmb3IgKGNvbnN0IFtQLCBSXSBvZiBbCiAgICBbImRhdGEiLCAiX2RhdGEiXSwKICAgIFsic3RhdHVzIiwgInN0YXR1cyJdLAogICAgWyJzdGF0dXNDb2RlIiwgInN0YXR1cyJdLAogICAgWyJzdGF0dXNUZXh0IiwgInN0YXR1c1RleHQiXSwKICAgIFsic3RhdHVzTWVzc2FnZSIsICJzdGF0dXNUZXh0Il0sCiAgXSkKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCBQLCB7CiAgICAgIGdldCgpIHsKICAgICAgICByZXR1cm4gZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlW1JdOwogICAgICB9LAogICAgfSk7CiAgcmV0dXJuIGw7Cn0KY29uc3QgcGF5bG9hZE1ldGhvZHMgPSBuZXcgU2V0KAogIE9iamVjdC5mcmVlemUoWyJQQVRDSCIsICJQT1NUIiwgIlBVVCIsICJERUxFVEUiXSkKKTsKZnVuY3Rpb24gaXNQYXlsb2FkTWV0aG9kKGUgPSAiR0VUIikgewogIHJldHVybiBwYXlsb2FkTWV0aG9kcy5oYXMoZS50b1VwcGVyQ2FzZSgpKTsKfQpmdW5jdGlvbiBpc0pTT05TZXJpYWxpemFibGUoZSkgewogIGlmIChlID09PSB2b2lkIDApIHJldHVybiAhMTsKICBjb25zdCB0ID0gdHlwZW9mIGU7CiAgcmV0dXJuIHQgPT09ICJzdHJpbmciIHx8IHQgPT09ICJudW1iZXIiIHx8IHQgPT09ICJib29sZWFuIiB8fCB0ID09PSBudWxsCiAgICA/ICEwCiAgICA6IHQgIT09ICJvYmplY3QiCiAgICAgID8gITEKICAgICAgOiBBcnJheS5pc0FycmF5KGUpCiAgICAgICAgPyAhMAogICAgICAgIDogZS5idWZmZXIKICAgICAgICAgID8gITEKICAgICAgICAgIDogKGUuY29uc3RydWN0b3IgJiYgZS5jb25zdHJ1Y3Rvci5uYW1lID09PSAiT2JqZWN0IikgfHwKICAgICAgICAgIHR5cGVvZiBlLnRvSlNPTiA9PSAiZnVuY3Rpb24iOwp9CmNvbnN0IHRleHRUeXBlcyA9IG5ldyBTZXQoWwogICJpbWFnZS9zdmciLAogICJhcHBsaWNhdGlvbi94bWwiLAogICJhcHBsaWNhdGlvbi94aHRtbCIsCiAgImFwcGxpY2F0aW9uL2h0bWwiLApdKSwKICBKU09OX1JFID0gL15hcHBsaWNhdGlvblwvKD86W1x3ISMkJSYqLl5gfi1dKlwrKT9qc29uKDsuKyk/JC9pOwpmdW5jdGlvbiBkZXRlY3RSZXNwb25zZVR5cGUoZSA9ICIiKSB7CiAgaWYgKCFlKSByZXR1cm4gImpzb24iOwogIGNvbnN0IHQgPSBlLnNwbGl0KCI7Iikuc2hpZnQoKSB8fCAiIjsKICByZXR1cm4gSlNPTl9SRS50ZXN0KHQpCiAgICA/ICJqc29uIgogICAgOiB0ZXh0VHlwZXMuaGFzKHQpIHx8IHQuc3RhcnRzV2l0aCgidGV4dC8iKQogICAgICA/ICJ0ZXh0IgogICAgICA6ICJibG9iIjsKfQpmdW5jdGlvbiByZXNvbHZlRmV0Y2hPcHRpb25zKGUsIHQsIHIsIG4pIHsKICBjb25zdCBpID0gbWVyZ2VIZWFkZXJzKAogICAgKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuaGVhZGVycykgPz8gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUuaGVhZGVycyksCiAgICByID09IG51bGwgPyB2b2lkIDAgOiByLmhlYWRlcnMsCiAgICBuCiAgKTsKICBsZXQgYTsKICByZXR1cm4gKAogICAgKChyICE9IG51bGwgJiYgci5xdWVyeSkgfHwKICAgICAgKHIgIT0gbnVsbCAmJiByLnBhcmFtcykgfHwKICAgICAgKHQgIT0gbnVsbCAmJiB0LnBhcmFtcykgfHwKICAgICAgKHQgIT0gbnVsbCAmJiB0LnF1ZXJ5KSkgJiYKICAgIChhID0gewogICAgICAuLi4ociA9PSBudWxsID8gdm9pZCAwIDogci5wYXJhbXMpLAogICAgICAuLi4ociA9PSBudWxsID8gdm9pZCAwIDogci5xdWVyeSksCiAgICAgIC4uLih0ID09IG51bGwgPyB2b2lkIDAgOiB0LnBhcmFtcyksCiAgICAgIC4uLih0ID09IG51bGwgPyB2b2lkIDAgOiB0LnF1ZXJ5KSwKICAgIH0pLAogICAgeyAuLi5yLCAuLi50LCBxdWVyeTogYSwgcGFyYW1zOiBhLCBoZWFkZXJzOiBpIH0KICApOwp9CmZ1bmN0aW9uIG1lcmdlSGVhZGVycyhlLCB0LCByKSB7CiAgaWYgKCF0KSByZXR1cm4gbmV3IHIoZSk7CiAgY29uc3QgbiA9IG5ldyByKHQpOwogIGlmIChlKQogICAgZm9yIChjb25zdCBbaSwgYV0gb2YgU3ltYm9sLml0ZXJhdG9yIGluIGUgfHwgQXJyYXkuaXNBcnJheShlKQogICAgICA/IGUKICAgICAgOiBuZXcgcihlKSkKICAgICAgbi5zZXQoaSwgYSk7CiAgcmV0dXJuIG47Cn0KYXN5bmMgZnVuY3Rpb24gY2FsbEhvb2tzKGUsIHQpIHsKICBpZiAodCkKICAgIGlmIChBcnJheS5pc0FycmF5KHQpKSBmb3IgKGNvbnN0IHIgb2YgdCkgYXdhaXQgcihlKTsKICAgIGVsc2UgYXdhaXQgdChlKTsKfQpjb25zdCByZXRyeVN0YXR1c0NvZGVzID0gbmV3IFNldChbNDA4LCA0MDksIDQyNSwgNDI5LCA1MDAsIDUwMiwgNTAzLCA1MDRdKSwKICBudWxsQm9keVJlc3BvbnNlcyA9IG5ldyBTZXQoWzEwMSwgMjA0LCAyMDUsIDMwNF0pOwpmdW5jdGlvbiBjcmVhdGVGZXRjaChlID0ge30pIHsKICBjb25zdCB7CiAgICBmZXRjaDogdCA9IGdsb2JhbFRoaXMuZmV0Y2gsCiAgICBIZWFkZXJzOiByID0gZ2xvYmFsVGhpcy5IZWFkZXJzLAogICAgQWJvcnRDb250cm9sbGVyOiBuID0gZ2xvYmFsVGhpcy5BYm9ydENvbnRyb2xsZXIsCiAgfSA9IGU7CiAgYXN5bmMgZnVuY3Rpb24gaShsKSB7CiAgICBjb25zdCBjID0KICAgICAgKGwuZXJyb3IgJiYgbC5lcnJvci5uYW1lID09PSAiQWJvcnRFcnJvciIgJiYgIWwub3B0aW9ucy50aW1lb3V0KSB8fCAhMTsKICAgIGlmIChsLm9wdGlvbnMucmV0cnkgIT09ICExICYmICFjKSB7CiAgICAgIGxldCBkOwogICAgICB0eXBlb2YgbC5vcHRpb25zLnJldHJ5ID09ICJudW1iZXIiCiAgICAgICAgPyAoZCA9IGwub3B0aW9ucy5yZXRyeSkKICAgICAgICA6IChkID0gaXNQYXlsb2FkTWV0aG9kKGwub3B0aW9ucy5tZXRob2QpID8gMCA6IDEpOwogICAgICBjb25zdCBFID0gKGwucmVzcG9uc2UgJiYgbC5yZXNwb25zZS5zdGF0dXMpIHx8IDUwMDsKICAgICAgaWYgKAogICAgICAgIGQgPiAwICYmCiAgICAgICAgKEFycmF5LmlzQXJyYXkobC5vcHRpb25zLnJldHJ5U3RhdHVzQ29kZXMpCiAgICAgICAgICA/IGwub3B0aW9ucy5yZXRyeVN0YXR1c0NvZGVzLmluY2x1ZGVzKEUpCiAgICAgICAgICA6IHJldHJ5U3RhdHVzQ29kZXMuaGFzKEUpKQogICAgICApIHsKICAgICAgICBjb25zdCBiID0KICAgICAgICAgIHR5cGVvZiBsLm9wdGlvbnMucmV0cnlEZWxheSA9PSAiZnVuY3Rpb24iCiAgICAgICAgICAgID8gbC5vcHRpb25zLnJldHJ5RGVsYXkobCkKICAgICAgICAgICAgOiBsLm9wdGlvbnMucmV0cnlEZWxheSB8fCAwOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBiID4gMCAmJiAoYXdhaXQgbmV3IFByb21pc2UoKFApID0+IHNldFRpbWVvdXQoUCwgYikpKSwKICAgICAgICAgIGEobC5yZXF1ZXN0LCB7IC4uLmwub3B0aW9ucywgcmV0cnk6IGQgLSAxIH0pCiAgICAgICAgKTsKICAgICAgfQogICAgfQogICAgY29uc3QgdSA9IGNyZWF0ZUZldGNoRXJyb3IobCk7CiAgICB0aHJvdyAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgJiYgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodSwgYSksIHUpOwogIH0KICBjb25zdCBhID0gYXN5bmMgZnVuY3Rpb24gKGMsIHUgPSB7fSkgewogICAgY29uc3QgZCA9IHsKICAgICAgcmVxdWVzdDogYywKICAgICAgb3B0aW9uczogcmVzb2x2ZUZldGNoT3B0aW9ucyhjLCB1LCBlLmRlZmF1bHRzLCByKSwKICAgICAgcmVzcG9uc2U6IHZvaWQgMCwKICAgICAgZXJyb3I6IHZvaWQgMCwKICAgIH07CiAgICBkLm9wdGlvbnMubWV0aG9kICYmIChkLm9wdGlvbnMubWV0aG9kID0gZC5vcHRpb25zLm1ldGhvZC50b1VwcGVyQ2FzZSgpKSwKICAgICAgZC5vcHRpb25zLm9uUmVxdWVzdCAmJiAoYXdhaXQgY2FsbEhvb2tzKGQsIGQub3B0aW9ucy5vblJlcXVlc3QpKSwKICAgICAgdHlwZW9mIGQucmVxdWVzdCA9PSAic3RyaW5nIiAmJgogICAgICAoZC5vcHRpb25zLmJhc2VVUkwgJiYKICAgICAgICAoZC5yZXF1ZXN0ID0gd2l0aEJhc2UoZC5yZXF1ZXN0LCBkLm9wdGlvbnMuYmFzZVVSTCkpLAogICAgICAgIGQub3B0aW9ucy5xdWVyeSAmJgogICAgICAgICgoZC5yZXF1ZXN0ID0gd2l0aFF1ZXJ5KGQucmVxdWVzdCwgZC5vcHRpb25zLnF1ZXJ5KSksCiAgICAgICAgICBkZWxldGUgZC5vcHRpb25zLnF1ZXJ5KSwKICAgICAgICAicXVlcnkiIGluIGQub3B0aW9ucyAmJiBkZWxldGUgZC5vcHRpb25zLnF1ZXJ5LAogICAgICAgICJwYXJhbXMiIGluIGQub3B0aW9ucyAmJiBkZWxldGUgZC5vcHRpb25zLnBhcmFtcyksCiAgICAgIGQub3B0aW9ucy5ib2R5ICYmCiAgICAgIGlzUGF5bG9hZE1ldGhvZChkLm9wdGlvbnMubWV0aG9kKSAmJgogICAgICAoaXNKU09OU2VyaWFsaXphYmxlKGQub3B0aW9ucy5ib2R5KQogICAgICAgID8gKChkLm9wdGlvbnMuYm9keSA9CiAgICAgICAgICB0eXBlb2YgZC5vcHRpb25zLmJvZHkgPT0gInN0cmluZyIKICAgICAgICAgICAgPyBkLm9wdGlvbnMuYm9keQogICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KGQub3B0aW9ucy5ib2R5KSksCiAgICAgICAgICAoZC5vcHRpb25zLmhlYWRlcnMgPSBuZXcgcihkLm9wdGlvbnMuaGVhZGVycyB8fCB7fSkpLAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuaGFzKCJjb250ZW50LXR5cGUiKSB8fAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpLAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuaGFzKCJhY2NlcHQiKSB8fAogICAgICAgICAgZC5vcHRpb25zLmhlYWRlcnMuc2V0KCJhY2NlcHQiLCAiYXBwbGljYXRpb24vanNvbiIpKQogICAgICAgIDogKCgicGlwZVRvIiBpbiBkLm9wdGlvbnMuYm9keSAmJgogICAgICAgICAgdHlwZW9mIGQub3B0aW9ucy5ib2R5LnBpcGVUbyA9PSAiZnVuY3Rpb24iKSB8fAogICAgICAgICAgdHlwZW9mIGQub3B0aW9ucy5ib2R5LnBpcGUgPT0gImZ1bmN0aW9uIikgJiYKICAgICAgICAoImR1cGxleCIgaW4gZC5vcHRpb25zIHx8IChkLm9wdGlvbnMuZHVwbGV4ID0gImhhbGYiKSkpOwogICAgbGV0IEU7CiAgICBpZiAoIWQub3B0aW9ucy5zaWduYWwgJiYgZC5vcHRpb25zLnRpbWVvdXQpIHsKICAgICAgY29uc3QgUCA9IG5ldyBuKCk7CiAgICAgIChFID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgY29uc3QgUiA9IG5ldyBFcnJvcigKICAgICAgICAgICJbVGltZW91dEVycm9yXTogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZCBkdWUgdG8gdGltZW91dCIKICAgICAgICApOwogICAgICAgIChSLm5hbWUgPSAiVGltZW91dEVycm9yIiksIChSLmNvZGUgPSAyMyksIFAuYWJvcnQoUik7CiAgICAgIH0sIGQub3B0aW9ucy50aW1lb3V0KSksCiAgICAgICAgKGQub3B0aW9ucy5zaWduYWwgPSBQLnNpZ25hbCk7CiAgICB9CiAgICB0cnkgewogICAgICBkLnJlc3BvbnNlID0gYXdhaXQgdChkLnJlcXVlc3QsIGQub3B0aW9ucyk7CiAgICB9IGNhdGNoIChQKSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgKGQuZXJyb3IgPSBQKSwKICAgICAgICBkLm9wdGlvbnMub25SZXF1ZXN0RXJyb3IgJiYKICAgICAgICAoYXdhaXQgY2FsbEhvb2tzKGQsIGQub3B0aW9ucy5vblJlcXVlc3RFcnJvcikpLAogICAgICAgIGF3YWl0IGkoZCkKICAgICAgKTsKICAgIH0gZmluYWxseSB7CiAgICAgIEUgJiYgY2xlYXJUaW1lb3V0KEUpOwogICAgfQogICAgaWYgKAogICAgICAoZC5yZXNwb25zZS5ib2R5IHx8IGQucmVzcG9uc2UuX2JvZHlJbml0KSAmJgogICAgICAhbnVsbEJvZHlSZXNwb25zZXMuaGFzKGQucmVzcG9uc2Uuc3RhdHVzKSAmJgogICAgICBkLm9wdGlvbnMubWV0aG9kICE9PSAiSEVBRCIKICAgICkgewogICAgICBjb25zdCBQID0KICAgICAgICAoZC5vcHRpb25zLnBhcnNlUmVzcG9uc2UgPyAianNvbiIgOiBkLm9wdGlvbnMucmVzcG9uc2VUeXBlKSB8fAogICAgICAgIGRldGVjdFJlc3BvbnNlVHlwZShkLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSB8fCAiIik7CiAgICAgIHN3aXRjaCAoUCkgewogICAgICAgIGNhc2UgImpzb24iOiB7CiAgICAgICAgICBjb25zdCBSID0gYXdhaXQgZC5yZXNwb25zZS50ZXh0KCksCiAgICAgICAgICAgIFQgPSBkLm9wdGlvbnMucGFyc2VSZXNwb25zZSB8fCBkZXN0cjsKICAgICAgICAgIGQucmVzcG9uc2UuX2RhdGEgPSBUKFIpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGNhc2UgInN0cmVhbSI6IHsKICAgICAgICAgIGQucmVzcG9uc2UuX2RhdGEgPSBkLnJlc3BvbnNlLmJvZHkgfHwgZC5yZXNwb25zZS5fYm9keUluaXQ7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGQucmVzcG9uc2UuX2RhdGEgPSBhd2FpdCBkLnJlc3BvbnNlW1BdKCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAoCiAgICAgIGQub3B0aW9ucy5vblJlc3BvbnNlICYmIChhd2FpdCBjYWxsSG9va3MoZCwgZC5vcHRpb25zLm9uUmVzcG9uc2UpKSwKICAgICAgIWQub3B0aW9ucy5pZ25vcmVSZXNwb25zZUVycm9yICYmCiAgICAgICAgZC5yZXNwb25zZS5zdGF0dXMgPj0gNDAwICYmCiAgICAgICAgZC5yZXNwb25zZS5zdGF0dXMgPCA2MDAKICAgICAgICA/IChkLm9wdGlvbnMub25SZXNwb25zZUVycm9yICYmCiAgICAgICAgICAoYXdhaXQgY2FsbEhvb2tzKGQsIGQub3B0aW9ucy5vblJlc3BvbnNlRXJyb3IpKSwKICAgICAgICAgIGF3YWl0IGkoZCkpCiAgICAgICAgOiBkLnJlc3BvbnNlCiAgICApOwogIH0sCiAgICBvID0gYXN5bmMgZnVuY3Rpb24gKGMsIHUpIHsKICAgICAgcmV0dXJuIChhd2FpdCBhKGMsIHUpKS5fZGF0YTsKICAgIH07CiAgcmV0dXJuICgKICAgIChvLnJhdyA9IGEpLAogICAgKG8ubmF0aXZlID0gKC4uLmwpID0+IHQoLi4ubCkpLAogICAgKG8uY3JlYXRlID0gKGwgPSB7fSwgYyA9IHt9KSA9PgogICAgICBjcmVhdGVGZXRjaCh7CiAgICAgICAgLi4uZSwKICAgICAgICAuLi5jLAogICAgICAgIGRlZmF1bHRzOiB7IC4uLmUuZGVmYXVsdHMsIC4uLmMuZGVmYXVsdHMsIC4uLmwgfSwKICAgICAgfSkpLAogICAgbwogICk7Cn0KY29uc3QgX2dsb2JhbFRoaXMkMiA9IChmdW5jdGlvbiAoKSB7CiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzIDwgInUiKSByZXR1cm4gZ2xvYmFsVGhpczsKICBpZiAodHlwZW9mIHNlbGYgPCAidSIpIHJldHVybiBzZWxmOwogIGlmICh0eXBlb2Ygd2luZG93IDwgInUiKSByZXR1cm4gd2luZG93OwogIGlmICh0eXBlb2YgZ2xvYmFsIDwgInUiKSByZXR1cm4gZ2xvYmFsOwogIHRocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGxvY2F0ZSBnbG9iYWwgb2JqZWN0Iik7Cn0pKCksCiAgZmV0Y2gkMSA9IF9nbG9iYWxUaGlzJDIuZmV0Y2gKICAgID8gKC4uLmUpID0+IF9nbG9iYWxUaGlzJDIuZmV0Y2goLi4uZSkKICAgIDogKCkgPT4KICAgICAgUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJbb2ZldGNoXSBnbG9iYWwuZmV0Y2ggaXMgbm90IHN1cHBvcnRlZCEiKSksCiAgSGVhZGVycyA9IF9nbG9iYWxUaGlzJDIuSGVhZGVycywKICBBYm9ydENvbnRyb2xsZXIgPSBfZ2xvYmFsVGhpcyQyLkFib3J0Q29udHJvbGxlciwKICBvZmV0Y2ggPSBjcmVhdGVGZXRjaCh7IGZldGNoOiBmZXRjaCQxLCBIZWFkZXJzLCBBYm9ydENvbnRyb2xsZXIgfSksCiAgJGZldGNoJDEgPSBvZmV0Y2gsCiAgdXNlUnVudGltZUNvbmZpZyQxID0gKCkgPT4gewogICAgdmFyIGU7CiAgICByZXR1cm4gKAogICAgICAoKGUgPSB3aW5kb3cgPT0gbnVsbCA/IHZvaWQgMCA6IHdpbmRvdy5fX05VWFRfXykgPT0gbnVsbAogICAgICAgID8gdm9pZCAwCiAgICAgICAgOiBlLmNvbmZpZykgfHwge30KICAgICk7CiAgfSwKICBhcHBDb25maWcgPSB1c2VSdW50aW1lQ29uZmlnJDEoKS5hcHAsCiAgYmFzZVVSTCA9ICgpID0+IGFwcENvbmZpZy5iYXNlVVJMLAogIGJ1aWxkQXNzZXRzRGlyID0gKCkgPT4gYXBwQ29uZmlnLmJ1aWxkQXNzZXRzRGlyLAogIGJ1aWxkQXNzZXRzVVJMID0gKC4uLmUpID0+CiAgICBqb2luUmVsYXRpdmVVUkwocHVibGljQXNzZXRzVVJMKCksIGJ1aWxkQXNzZXRzRGlyKCksIC4uLmUpLAogIHB1YmxpY0Fzc2V0c1VSTCA9ICguLi5lKSA9PiB7CiAgICBjb25zdCB0ID0gYXBwQ29uZmlnLmNkblVSTCB8fCBhcHBDb25maWcuYmFzZVVSTDsKICAgIHJldHVybiBlLmxlbmd0aCA/IGpvaW5SZWxhdGl2ZVVSTCh0LCAuLi5lKSA6IHQ7CiAgfTsKKGdsb2JhbFRoaXMuX19idWlsZEFzc2V0c1VSTCA9IGJ1aWxkQXNzZXRzVVJMKSwKICAoZ2xvYmFsVGhpcy5fX3B1YmxpY0Fzc2V0c1VSTCA9IHB1YmxpY0Fzc2V0c1VSTCk7Cmdsb2JhbFRoaXMuJGZldGNoIHx8CiAgKGdsb2JhbFRoaXMuJGZldGNoID0gJGZldGNoJDEuY3JlYXRlKHsgYmFzZVVSTDogYmFzZVVSTCgpIH0pKTsKZnVuY3Rpb24gZmxhdEhvb2tzKGUsIHQgPSB7fSwgcikgewogIGZvciAoY29uc3QgbiBpbiBlKSB7CiAgICBjb25zdCBpID0gZVtuXSwKICAgICAgYSA9IHIgPyBgJHtyfToke259YCA6IG47CiAgICB0eXBlb2YgaSA9PSAib2JqZWN0IiAmJiBpICE9PSBudWxsCiAgICAgID8gZmxhdEhvb2tzKGksIHQsIGEpCiAgICAgIDogdHlwZW9mIGkgPT0gImZ1bmN0aW9uIiAmJiAodFthXSA9IGkpOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCBkZWZhdWx0VGFzayA9IHsgcnVuOiAoZSkgPT4gZSgpIH0sCiAgX2NyZWF0ZVRhc2sgPSAoKSA9PiBkZWZhdWx0VGFzaywKICBjcmVhdGVUYXNrID0KICAgIHR5cGVvZiBjb25zb2xlLmNyZWF0ZVRhc2sgPCAidSIgPyBjb25zb2xlLmNyZWF0ZVRhc2sgOiBfY3JlYXRlVGFzazsKZnVuY3Rpb24gc2VyaWFsVGFza0NhbGxlcihlLCB0KSB7CiAgY29uc3QgciA9IHQuc2hpZnQoKSwKICAgIG4gPSBjcmVhdGVUYXNrKHIpOwogIHJldHVybiBlLnJlZHVjZSgKICAgIChpLCBhKSA9PiBpLnRoZW4oKCkgPT4gbi5ydW4oKCkgPT4gYSguLi50KSkpLAogICAgUHJvbWlzZS5yZXNvbHZlKCkKICApOwp9CmZ1bmN0aW9uIHBhcmFsbGVsVGFza0NhbGxlcihlLCB0KSB7CiAgY29uc3QgciA9IHQuc2hpZnQoKSwKICAgIG4gPSBjcmVhdGVUYXNrKHIpOwogIHJldHVybiBQcm9taXNlLmFsbChlLm1hcCgoaSkgPT4gbi5ydW4oKCkgPT4gaSguLi50KSkpKTsKfQpmdW5jdGlvbiBjYWxsRWFjaFdpdGgoZSwgdCkgewogIGZvciAoY29uc3QgciBvZiBbLi4uZV0pIHIodCk7Cn0KY2xhc3MgSG9va2FibGUgewogIGNvbnN0cnVjdG9yKCkgewogICAgKHRoaXMuX2hvb2tzID0ge30pLAogICAgICAodGhpcy5fYmVmb3JlID0gdm9pZCAwKSwKICAgICAgKHRoaXMuX2FmdGVyID0gdm9pZCAwKSwKICAgICAgKHRoaXMuX2RlcHJlY2F0ZWRNZXNzYWdlcyA9IHZvaWQgMCksCiAgICAgICh0aGlzLl9kZXByZWNhdGVkSG9va3MgPSB7fSksCiAgICAgICh0aGlzLmhvb2sgPSB0aGlzLmhvb2suYmluZCh0aGlzKSksCiAgICAgICh0aGlzLmNhbGxIb29rID0gdGhpcy5jYWxsSG9vay5iaW5kKHRoaXMpKSwKICAgICAgKHRoaXMuY2FsbEhvb2tXaXRoID0gdGhpcy5jYWxsSG9va1dpdGguYmluZCh0aGlzKSk7CiAgfQogIGhvb2sodCwgciwgbiA9IHt9KSB7CiAgICBpZiAoIXQgfHwgdHlwZW9mIHIgIT0gImZ1bmN0aW9uIikgcmV0dXJuICgpID0+IHsgfTsKICAgIGNvbnN0IGkgPSB0OwogICAgbGV0IGE7CiAgICBmb3IgKDsgdGhpcy5fZGVwcmVjYXRlZEhvb2tzW3RdOykKICAgICAgKGEgPSB0aGlzLl9kZXByZWNhdGVkSG9va3NbdF0pLCAodCA9IGEudG8pOwogICAgaWYgKGEgJiYgIW4uYWxsb3dEZXByZWNhdGVkKSB7CiAgICAgIGxldCBvID0gYS5tZXNzYWdlOwogICAgICBvIHx8CiAgICAgICAgKG8gPQogICAgICAgICAgYCR7aX0gaG9vayBoYXMgYmVlbiBkZXByZWNhdGVkYCArCiAgICAgICAgICAoYS50byA/IGAsIHBsZWFzZSB1c2UgJHthLnRvfWAgOiAiIikpLAogICAgICAgIHRoaXMuX2RlcHJlY2F0ZWRNZXNzYWdlcyB8fCAodGhpcy5fZGVwcmVjYXRlZE1lc3NhZ2VzID0gbmV3IFNldCgpKSwKICAgICAgICB0aGlzLl9kZXByZWNhdGVkTWVzc2FnZXMuaGFzKG8pIHx8CiAgICAgICAgKGNvbnNvbGUud2FybihvKSwgdGhpcy5fZGVwcmVjYXRlZE1lc3NhZ2VzLmFkZChvKSk7CiAgICB9CiAgICBpZiAoIXIubmFtZSkKICAgICAgdHJ5IHsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkociwgIm5hbWUiLCB7CiAgICAgICAgICBnZXQ6ICgpID0+ICJfIiArIHQucmVwbGFjZSgvXFcrL2csICJfIikgKyAiX2hvb2tfY2IiLAogICAgICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgICB9KTsKICAgICAgfSBjYXRjaCB7IH0KICAgIHJldHVybiAoCiAgICAgICh0aGlzLl9ob29rc1t0XSA9IHRoaXMuX2hvb2tzW3RdIHx8IFtdKSwKICAgICAgdGhpcy5faG9va3NbdF0ucHVzaChyKSwKICAgICAgKCkgPT4gewogICAgICAgIHIgJiYgKHRoaXMucmVtb3ZlSG9vayh0LCByKSwgKHIgPSB2b2lkIDApKTsKICAgICAgfQogICAgKTsKICB9CiAgaG9va09uY2UodCwgcikgewogICAgbGV0IG4sCiAgICAgIGkgPSAoLi4uYSkgPT4gKAogICAgICAgIHR5cGVvZiBuID09ICJmdW5jdGlvbiIgJiYgbigpLCAobiA9IHZvaWQgMCksIChpID0gdm9pZCAwKSwgciguLi5hKQogICAgICApOwogICAgcmV0dXJuIChuID0gdGhpcy5ob29rKHQsIGkpKSwgbjsKICB9CiAgcmVtb3ZlSG9vayh0LCByKSB7CiAgICBpZiAodGhpcy5faG9va3NbdF0pIHsKICAgICAgY29uc3QgbiA9IHRoaXMuX2hvb2tzW3RdLmluZGV4T2Yocik7CiAgICAgIG4gIT09IC0xICYmIHRoaXMuX2hvb2tzW3RdLnNwbGljZShuLCAxKSwKICAgICAgICB0aGlzLl9ob29rc1t0XS5sZW5ndGggPT09IDAgJiYgZGVsZXRlIHRoaXMuX2hvb2tzW3RdOwogICAgfQogIH0KICBkZXByZWNhdGVIb29rKHQsIHIpIHsKICAgIHRoaXMuX2RlcHJlY2F0ZWRIb29rc1t0XSA9IHR5cGVvZiByID09ICJzdHJpbmciID8geyB0bzogciB9IDogcjsKICAgIGNvbnN0IG4gPSB0aGlzLl9ob29rc1t0XSB8fCBbXTsKICAgIGRlbGV0ZSB0aGlzLl9ob29rc1t0XTsKICAgIGZvciAoY29uc3QgaSBvZiBuKSB0aGlzLmhvb2sodCwgaSk7CiAgfQogIGRlcHJlY2F0ZUhvb2tzKHQpIHsKICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZGVwcmVjYXRlZEhvb2tzLCB0KTsKICAgIGZvciAoY29uc3QgciBpbiB0KSB0aGlzLmRlcHJlY2F0ZUhvb2sociwgdFtyXSk7CiAgfQogIGFkZEhvb2tzKHQpIHsKICAgIGNvbnN0IHIgPSBmbGF0SG9va3ModCksCiAgICAgIG4gPSBPYmplY3Qua2V5cyhyKS5tYXAoKGkpID0+IHRoaXMuaG9vayhpLCByW2ldKSk7CiAgICByZXR1cm4gKCkgPT4gewogICAgICBmb3IgKGNvbnN0IGkgb2Ygbi5zcGxpY2UoMCwgbi5sZW5ndGgpKSBpKCk7CiAgICB9OwogIH0KICByZW1vdmVIb29rcyh0KSB7CiAgICBjb25zdCByID0gZmxhdEhvb2tzKHQpOwogICAgZm9yIChjb25zdCBuIGluIHIpIHRoaXMucmVtb3ZlSG9vayhuLCByW25dKTsKICB9CiAgcmVtb3ZlQWxsSG9va3MoKSB7CiAgICBmb3IgKGNvbnN0IHQgaW4gdGhpcy5faG9va3MpIGRlbGV0ZSB0aGlzLl9ob29rc1t0XTsKICB9CiAgY2FsbEhvb2sodCwgLi4ucikgewogICAgcmV0dXJuIHIudW5zaGlmdCh0KSwgdGhpcy5jYWxsSG9va1dpdGgoc2VyaWFsVGFza0NhbGxlciwgdCwgLi4ucik7CiAgfQogIGNhbGxIb29rUGFyYWxsZWwodCwgLi4ucikgewogICAgcmV0dXJuIHIudW5zaGlmdCh0KSwgdGhpcy5jYWxsSG9va1dpdGgocGFyYWxsZWxUYXNrQ2FsbGVyLCB0LCAuLi5yKTsKICB9CiAgY2FsbEhvb2tXaXRoKHQsIHIsIC4uLm4pIHsKICAgIGNvbnN0IGkgPQogICAgICB0aGlzLl9iZWZvcmUgfHwgdGhpcy5fYWZ0ZXIgPyB7IG5hbWU6IHIsIGFyZ3M6IG4sIGNvbnRleHQ6IHt9IH0gOiB2b2lkIDA7CiAgICB0aGlzLl9iZWZvcmUgJiYgY2FsbEVhY2hXaXRoKHRoaXMuX2JlZm9yZSwgaSk7CiAgICBjb25zdCBhID0gdChyIGluIHRoaXMuX2hvb2tzID8gWy4uLnRoaXMuX2hvb2tzW3JdXSA6IFtdLCBuKTsKICAgIHJldHVybiBhIGluc3RhbmNlb2YgUHJvbWlzZQogICAgICA/IGEuZmluYWxseSgoKSA9PiB7CiAgICAgICAgdGhpcy5fYWZ0ZXIgJiYgaSAmJiBjYWxsRWFjaFdpdGgodGhpcy5fYWZ0ZXIsIGkpOwogICAgICB9KQogICAgICA6ICh0aGlzLl9hZnRlciAmJiBpICYmIGNhbGxFYWNoV2l0aCh0aGlzLl9hZnRlciwgaSksIGEpOwogIH0KICBiZWZvcmVFYWNoKHQpIHsKICAgIHJldHVybiAoCiAgICAgICh0aGlzLl9iZWZvcmUgPSB0aGlzLl9iZWZvcmUgfHwgW10pLAogICAgICB0aGlzLl9iZWZvcmUucHVzaCh0KSwKICAgICAgKCkgPT4gewogICAgICAgIGlmICh0aGlzLl9iZWZvcmUgIT09IHZvaWQgMCkgewogICAgICAgICAgY29uc3QgciA9IHRoaXMuX2JlZm9yZS5pbmRleE9mKHQpOwogICAgICAgICAgciAhPT0gLTEgJiYgdGhpcy5fYmVmb3JlLnNwbGljZShyLCAxKTsKICAgICAgICB9CiAgICAgIH0KICAgICk7CiAgfQogIGFmdGVyRWFjaCh0KSB7CiAgICByZXR1cm4gKAogICAgICAodGhpcy5fYWZ0ZXIgPSB0aGlzLl9hZnRlciB8fCBbXSksCiAgICAgIHRoaXMuX2FmdGVyLnB1c2godCksCiAgICAgICgpID0+IHsKICAgICAgICBpZiAodGhpcy5fYWZ0ZXIgIT09IHZvaWQgMCkgewogICAgICAgICAgY29uc3QgciA9IHRoaXMuX2FmdGVyLmluZGV4T2YodCk7CiAgICAgICAgICByICE9PSAtMSAmJiB0aGlzLl9hZnRlci5zcGxpY2UociwgMSk7CiAgICAgICAgfQogICAgICB9CiAgICApOwogIH0KfQpmdW5jdGlvbiBjcmVhdGVIb29rcygpIHsKICByZXR1cm4gbmV3IEhvb2thYmxlKCk7Cn0KZnVuY3Rpb24gY3JlYXRlQ29udGV4dChlID0ge30pIHsKICBsZXQgdCwKICAgIHIgPSAhMTsKICBjb25zdCBuID0gKG8pID0+IHsKICAgIGlmICh0ICYmIHQgIT09IG8pIHRocm93IG5ldyBFcnJvcigiQ29udGV4dCBjb25mbGljdCIpOwogIH07CiAgbGV0IGk7CiAgaWYgKGUuYXN5bmNDb250ZXh0KSB7CiAgICBjb25zdCBvID0gZS5Bc3luY0xvY2FsU3RvcmFnZSB8fCBnbG9iYWxUaGlzLkFzeW5jTG9jYWxTdG9yYWdlOwogICAgbwogICAgICA/IChpID0gbmV3IG8oKSkKICAgICAgOiBjb25zb2xlLndhcm4oIlt1bmN0eF0gYEFzeW5jTG9jYWxTdG9yYWdlYCBpcyBub3QgcHJvdmlkZWQuIik7CiAgfQogIGNvbnN0IGEgPSAoKSA9PiB7CiAgICBpZiAoaSkgewogICAgICBjb25zdCBvID0gaS5nZXRTdG9yZSgpOwogICAgICBpZiAobyAhPT0gdm9pZCAwKSByZXR1cm4gbzsKICAgIH0KICAgIHJldHVybiB0OwogIH07CiAgcmV0dXJuIHsKICAgIHVzZTogKCkgPT4gewogICAgICBjb25zdCBvID0gYSgpOwogICAgICBpZiAobyA9PT0gdm9pZCAwKSB0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgaXMgbm90IGF2YWlsYWJsZSIpOwogICAgICByZXR1cm4gbzsKICAgIH0sCiAgICB0cnlVc2U6ICgpID0+IGEoKSwKICAgIHNldDogKG8sIGwpID0+IHsKICAgICAgbCB8fCBuKG8pLCAodCA9IG8pLCAociA9ICEwKTsKICAgIH0sCiAgICB1bnNldDogKCkgPT4gewogICAgICAodCA9IHZvaWQgMCksIChyID0gITEpOwogICAgfSwKICAgIGNhbGw6IChvLCBsKSA9PiB7CiAgICAgIG4obyksICh0ID0gbyk7CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIGkgPyBpLnJ1bihvLCBsKSA6IGwoKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICByIHx8ICh0ID0gdm9pZCAwKTsKICAgICAgfQogICAgfSwKICAgIGFzeW5jIGNhbGxBc3luYyhvLCBsKSB7CiAgICAgIHQgPSBvOwogICAgICBjb25zdCBjID0gKCkgPT4gewogICAgICAgIHQgPSBvOwogICAgICB9LAogICAgICAgIHUgPSAoKSA9PiAodCA9PT0gbyA/IGMgOiB2b2lkIDApOwogICAgICBhc3luY0hhbmRsZXJzLmFkZCh1KTsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCBkID0gaSA/IGkucnVuKG8sIGwpIDogbCgpOwogICAgICAgIHJldHVybiByIHx8ICh0ID0gdm9pZCAwKSwgYXdhaXQgZDsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBhc3luY0hhbmRsZXJzLmRlbGV0ZSh1KTsKICAgICAgfQogICAgfSwKICB9Owp9CmZ1bmN0aW9uIGNyZWF0ZU5hbWVzcGFjZShlID0ge30pIHsKICBjb25zdCB0ID0ge307CiAgcmV0dXJuIHsKICAgIGdldChyLCBuID0ge30pIHsKICAgICAgcmV0dXJuIHRbcl0gfHwgKHRbcl0gPSBjcmVhdGVDb250ZXh0KHsgLi4uZSwgLi4ubiB9KSksIHRbcl07CiAgICB9LAogIH07Cn0KY29uc3QgX2dsb2JhbFRoaXMkMSA9CiAgdHlwZW9mIGdsb2JhbFRoaXMgPCAidSIKICAgID8gZ2xvYmFsVGhpcwogICAgOiB0eXBlb2Ygc2VsZiA8ICJ1IgogICAgICA/IHNlbGYKICAgICAgOiB0eXBlb2YgZ2xvYmFsIDwgInUiCiAgICAgICAgPyBnbG9iYWwKICAgICAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIKICAgICAgICAgID8gd2luZG93CiAgICAgICAgICA6IHt9LAogIGdsb2JhbEtleSQxID0gIl9fdW5jdHhfXyIsCiAgZGVmYXVsdE5hbWVzcGFjZSA9CiAgICBfZ2xvYmFsVGhpcyQxW2dsb2JhbEtleSQxXSB8fAogICAgKF9nbG9iYWxUaGlzJDFbZ2xvYmFsS2V5JDFdID0gY3JlYXRlTmFtZXNwYWNlKCkpLAogIGdldENvbnRleHQgPSAoZSwgdCA9IHt9KSA9PiBkZWZhdWx0TmFtZXNwYWNlLmdldChlLCB0KSwKICBhc3luY0hhbmRsZXJzS2V5ID0gIl9fdW5jdHhfYXN5bmNfaGFuZGxlcnNfXyIsCiAgYXN5bmNIYW5kbGVycyA9CiAgICBfZ2xvYmFsVGhpcyQxW2FzeW5jSGFuZGxlcnNLZXldIHx8CiAgICAoX2dsb2JhbFRoaXMkMVthc3luY0hhbmRsZXJzS2V5XSA9IG5ldyBTZXQoKSk7CmZ1bmN0aW9uIGV4ZWN1dGVBc3luYyhlKSB7CiAgY29uc3QgdCA9IFtdOwogIGZvciAoY29uc3QgaSBvZiBhc3luY0hhbmRsZXJzKSB7CiAgICBjb25zdCBhID0gaSgpOwogICAgYSAmJiB0LnB1c2goYSk7CiAgfQogIGNvbnN0IHIgPSAoKSA9PiB7CiAgICBmb3IgKGNvbnN0IGkgb2YgdCkgaSgpOwogIH07CiAgbGV0IG4gPSBlKCk7CiAgcmV0dXJuICgKICAgIG4gJiYKICAgIHR5cGVvZiBuID09ICJvYmplY3QiICYmCiAgICAiY2F0Y2giIGluIG4gJiYKICAgIChuID0gbi5jYXRjaCgoaSkgPT4gewogICAgICB0aHJvdyAocigpLCBpKTsKICAgIH0pKSwKICAgIFtuLCByXQogICk7Cn0KY29uc3QgYXBwUGFnZVRyYW5zaXRpb24gPSB7IG5hbWU6ICJwYWdlIiwgbW9kZTogIm91dC1pbiIgfSwKICBhcHBMYXlvdXRUcmFuc2l0aW9uID0gITEsCiAgYXBwS2VlcGFsaXZlID0gITEsCiAgbnV4dExpbmtEZWZhdWx0cyA9IHsKICAgIGNvbXBvbmVudE5hbWU6ICJOdXh0TGluayIsCiAgICBwcmVmZXRjaDogITAsCiAgICBwcmVmZXRjaE9uOiB7IHZpc2liaWxpdHk6ICEwIH0sCiAgfSwKICBudXh0RGVmYXVsdEVycm9yVmFsdWUgPSBudWxsLAogIHZ1ZUFwcFJvb3RDb250YWluZXIgPSAiI19fbnV4dCIsCiAgYXBwSWQgPSAibnV4dC1hcHAiLAogIG91dGRhdGVkQnVpbGRJbnRlcnZhbCA9IDM2ZTUsCiAgY2h1bmtFcnJvckV2ZW50ID0gInZpdGU6cHJlbG9hZEVycm9yIjsKZnVuY3Rpb24gZ2V0TnV4dEFwcEN0eChlID0gYXBwSWQpIHsKICByZXR1cm4gZ2V0Q29udGV4dChlLCB7IGFzeW5jQ29udGV4dDogITEgfSk7Cn0KY29uc3QgTnV4dFBsdWdpbkluZGljYXRvciA9ICJfX251eHRfcGx1Z2luIjsKZnVuY3Rpb24gY3JlYXRlTnV4dEFwcChlKSB7CiAgdmFyIGk7CiAgbGV0IHQgPSAwOwogIGNvbnN0IHIgPSB7CiAgICBfaWQ6IGUuaWQgfHwgYXBwSWQgfHwgIm51eHQtYXBwIiwKICAgIF9zY29wZTogZWZmZWN0U2NvcGUoKSwKICAgIHByb3ZpZGU6IHZvaWQgMCwKICAgIGdsb2JhbE5hbWU6ICJudXh0IiwKICAgIHZlcnNpb25zOiB7CiAgICAgIGdldCBudXh0KCkgewogICAgICAgIHJldHVybiAiMy4xNS4wIjsKICAgICAgfSwKICAgICAgZ2V0IHZ1ZSgpIHsKICAgICAgICByZXR1cm4gci52dWVBcHAudmVyc2lvbjsKICAgICAgfSwKICAgIH0sCiAgICBwYXlsb2FkOiBzaGFsbG93UmVhY3RpdmUoewogICAgICAuLi4oKChpID0gZS5zc3JDb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogaS5wYXlsb2FkKSB8fCB7fSksCiAgICAgIGRhdGE6IHNoYWxsb3dSZWFjdGl2ZSh7fSksCiAgICAgIHN0YXRlOiByZWFjdGl2ZSh7fSksCiAgICAgIG9uY2U6IG5ldyBTZXQoKSwKICAgICAgX2Vycm9yczogc2hhbGxvd1JlYWN0aXZlKHt9KSwKICAgIH0pLAogICAgc3RhdGljOiB7IGRhdGE6IHt9IH0sCiAgICBydW5XaXRoQ29udGV4dChhKSB7CiAgICAgIHJldHVybiByLl9zY29wZS5hY3RpdmUgJiYgIWdldEN1cnJlbnRTY29wZSgpCiAgICAgICAgPyByLl9zY29wZS5ydW4oKCkgPT4gY2FsbFdpdGhOdXh0KHIsIGEpKQogICAgICAgIDogY2FsbFdpdGhOdXh0KHIsIGEpOwogICAgfSwKICAgIGlzSHlkcmF0aW5nOiAhMCwKICAgIGRlZmVySHlkcmF0aW9uKCkgewogICAgICBpZiAoIXIuaXNIeWRyYXRpbmcpIHJldHVybiAoKSA9PiB7IH07CiAgICAgIHQrKzsKICAgICAgbGV0IGEgPSAhMTsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBpZiAoIWEgJiYgKChhID0gITApLCB0LS0sIHQgPT09IDApKQogICAgICAgICAgcmV0dXJuIChyLmlzSHlkcmF0aW5nID0gITEpLCByLmNhbGxIb29rKCJhcHA6c3VzcGVuc2U6cmVzb2x2ZSIpOwogICAgICB9OwogICAgfSwKICAgIF9hc3luY0RhdGFQcm9taXNlczoge30sCiAgICBfYXN5bmNEYXRhOiBzaGFsbG93UmVhY3RpdmUoe30pLAogICAgX3BheWxvYWRSZXZpdmVyczoge30sCiAgICAuLi5lLAogIH07CiAgewogICAgY29uc3QgYSA9IHdpbmRvdy5fX05VWFRfXzsKICAgIGlmIChhKQogICAgICBmb3IgKGNvbnN0IG8gaW4gYSkKICAgICAgICBzd2l0Y2ggKG8pIHsKICAgICAgICAgIGNhc2UgImRhdGEiOgogICAgICAgICAgY2FzZSAic3RhdGUiOgogICAgICAgICAgY2FzZSAiX2Vycm9ycyI6CiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oci5wYXlsb2FkW29dLCBhW29dKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByLnBheWxvYWRbb10gPSBhW29dOwogICAgICAgIH0KICB9CiAgKHIuaG9va3MgPSBjcmVhdGVIb29rcygpKSwKICAgIChyLmhvb2sgPSByLmhvb2tzLmhvb2spLAogICAgKHIuY2FsbEhvb2sgPSByLmhvb2tzLmNhbGxIb29rKSwKICAgIChyLnByb3ZpZGUgPSAoYSwgbykgPT4gewogICAgICBjb25zdCBsID0gIiQiICsgYTsKICAgICAgZGVmaW5lR2V0dGVyJDEociwgbCwgbyksCiAgICAgICAgZGVmaW5lR2V0dGVyJDEoci52dWVBcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMsIGwsIG8pOwogICAgfSksCiAgICBkZWZpbmVHZXR0ZXIkMShyLnZ1ZUFwcCwgIiRudXh0IiwgciksCiAgICBkZWZpbmVHZXR0ZXIkMShyLnZ1ZUFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcywgIiRudXh0Iiwgcik7CiAgewogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoY2h1bmtFcnJvckV2ZW50LCAobykgPT4gewogICAgICByLmNhbGxIb29rKCJhcHA6Y2h1bmtFcnJvciIsIHsgZXJyb3I6IG8ucGF5bG9hZCB9KSwKICAgICAgICAoci5pc0h5ZHJhdGluZyB8fAogICAgICAgICAgby5wYXlsb2FkLm1lc3NhZ2UuaW5jbHVkZXMoIlVuYWJsZSB0byBwcmVsb2FkIENTUyIpKSAmJgogICAgICAgIG8ucHJldmVudERlZmF1bHQoKTsKICAgIH0pLAogICAgICAod2luZG93LnVzZU51eHRBcHAgPSB3aW5kb3cudXNlTnV4dEFwcCB8fCB1c2VOdXh0QXBwKTsKICAgIGNvbnN0IGEgPSByLmhvb2soImFwcDplcnJvciIsICguLi5vKSA9PiB7CiAgICAgIGNvbnNvbGUuZXJyb3IoIltudXh0XSBlcnJvciBjYXVnaHQgZHVyaW5nIGFwcCBpbml0aWFsaXphdGlvbiIsIC4uLm8pOwogICAgfSk7CiAgICByLmhvb2soImFwcDptb3VudGVkIiwgYSk7CiAgfQogIGNvbnN0IG4gPSByLnBheWxvYWQuY29uZmlnOwogIHJldHVybiByLnByb3ZpZGUoImNvbmZpZyIsIG4pLCByOwp9CmZ1bmN0aW9uIHJlZ2lzdGVyUGx1Z2luSG9va3MoZSwgdCkgewogIHQuaG9va3MgJiYgZS5ob29rcy5hZGRIb29rcyh0Lmhvb2tzKTsKfQphc3luYyBmdW5jdGlvbiBhcHBseVBsdWdpbihlLCB0KSB7CiAgaWYgKHR5cGVvZiB0ID09ICJmdW5jdGlvbiIpIHsKICAgIGNvbnN0IHsgcHJvdmlkZTogciB9ID0gKGF3YWl0IGUucnVuV2l0aENvbnRleHQoKCkgPT4gdChlKSkpIHx8IHt9OwogICAgaWYgKHIgJiYgdHlwZW9mIHIgPT0gIm9iamVjdCIpIGZvciAoY29uc3QgbiBpbiByKSBlLnByb3ZpZGUobiwgcltuXSk7CiAgfQp9CmFzeW5jIGZ1bmN0aW9uIGFwcGx5UGx1Z2lucyhlLCB0KSB7CiAgY29uc3QgciA9IFtdLAogICAgbiA9IFtdLAogICAgaSA9IFtdLAogICAgYSA9IFtdOwogIGxldCBvID0gMDsKICBhc3luYyBmdW5jdGlvbiBsKGMpIHsKICAgIHZhciBkOwogICAgY29uc3QgdSA9CiAgICAgICgoZCA9IGMuZGVwZW5kc09uKSA9PSBudWxsCiAgICAgICAgPyB2b2lkIDAKICAgICAgICA6IGQuZmlsdGVyKChFKSA9PiB0LnNvbWUoKGIpID0+IGIuX25hbWUgPT09IEUpICYmICFyLmluY2x1ZGVzKEUpKSkgPz8KICAgICAgW107CiAgICBpZiAodS5sZW5ndGggPiAwKSBuLnB1c2goW25ldyBTZXQodSksIGNdKTsKICAgIGVsc2UgewogICAgICBjb25zdCBFID0gYXBwbHlQbHVnaW4oZSwgYykudGhlbihhc3luYyAoKSA9PiB7CiAgICAgICAgYy5fbmFtZSAmJgogICAgICAgICAgKHIucHVzaChjLl9uYW1lKSwKICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoCiAgICAgICAgICAgICAgbi5tYXAoYXN5bmMgKFtiLCBQXSkgPT4gewogICAgICAgICAgICAgICAgYi5oYXMoYy5fbmFtZSkgJiYKICAgICAgICAgICAgICAgICAgKGIuZGVsZXRlKGMuX25hbWUpLCBiLnNpemUgPT09IDAgJiYgKG8rKywgYXdhaXQgbChQKSkpOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICkpOwogICAgICB9KTsKICAgICAgYy5wYXJhbGxlbCA/IGkucHVzaChFLmNhdGNoKChiKSA9PiBhLnB1c2goYikpKSA6IGF3YWl0IEU7CiAgICB9CiAgfQogIGZvciAoY29uc3QgYyBvZiB0KSByZWdpc3RlclBsdWdpbkhvb2tzKGUsIGMpOwogIGZvciAoY29uc3QgYyBvZiB0KSBhd2FpdCBsKGMpOwogIGlmICgoYXdhaXQgUHJvbWlzZS5hbGwoaSksIG8pKQogICAgZm9yIChsZXQgYyA9IDA7IGMgPCBvOyBjKyspIGF3YWl0IFByb21pc2UuYWxsKGkpOwogIGlmIChhLmxlbmd0aCkgdGhyb3cgYVswXTsKfQpmdW5jdGlvbiBkZWZpbmVOdXh0UGx1Z2luKGUpIHsKICBpZiAodHlwZW9mIGUgPT0gImZ1bmN0aW9uIikgcmV0dXJuIGU7CiAgY29uc3QgdCA9IGUuX25hbWUgfHwgZS5uYW1lOwogIHJldHVybiAoCiAgICBkZWxldGUgZS5uYW1lLAogICAgT2JqZWN0LmFzc2lnbihlLnNldHVwIHx8ICgoKSA9PiB7IH0pLCBlLCB7CiAgICAgIFtOdXh0UGx1Z2luSW5kaWNhdG9yXTogITAsCiAgICAgIF9uYW1lOiB0LAogICAgfSkKICApOwp9CmNvbnN0IGRlZmluZVBheWxvYWRQbHVnaW4gPSBkZWZpbmVOdXh0UGx1Z2luOwpmdW5jdGlvbiBjYWxsV2l0aE51eHQoZSwgdCwgcikgewogIGNvbnN0IG4gPSAoKSA9PiB0KCk7CiAgcmV0dXJuIGdldE51eHRBcHBDdHgoZS5faWQpLnNldChlKSwgZS52dWVBcHAucnVuV2l0aENvbnRleHQobik7Cn0KZnVuY3Rpb24gdHJ5VXNlTnV4dEFwcChlKSB7CiAgdmFyIHI7CiAgbGV0IHQ7CiAgcmV0dXJuICgKICAgIGhhc0luamVjdGlvbkNvbnRleHQoKSAmJgogICAgKHQgPQogICAgICAociA9IGdldEN1cnJlbnRJbnN0YW5jZSQxKCkpID09IG51bGwgPyB2b2lkIDAgOiByLmFwcENvbnRleHQuYXBwLiRudXh0KSwKICAgICh0ID0gdCB8fCBnZXROdXh0QXBwQ3R4KGUpLnRyeVVzZSgpKSwKICAgIHQgfHwgbnVsbAogICk7Cn0KZnVuY3Rpb24gdXNlTnV4dEFwcChlKSB7CiAgY29uc3QgdCA9IHRyeVVzZU51eHRBcHAoZSk7CiAgaWYgKCF0KSB0aHJvdyBuZXcgRXJyb3IoIltudXh0XSBpbnN0YW5jZSB1bmF2YWlsYWJsZSIpOwogIHJldHVybiB0Owp9CmZ1bmN0aW9uIHVzZVJ1bnRpbWVDb25maWcoZSkgewogIHJldHVybiB1c2VOdXh0QXBwKCkuJGNvbmZpZzsKfQpmdW5jdGlvbiBkZWZpbmVHZXR0ZXIkMShlLCB0LCByKSB7CiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHQsIHsgZ2V0OiAoKSA9PiByIH0pOwp9CmZ1bmN0aW9uIHBhcnNlJDIoZSwgdCkgewogIGlmICh0eXBlb2YgZSAhPSAic3RyaW5nIikKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nIik7CiAgY29uc3QgciA9IHt9LAogICAgbiA9IHQgfHwge30sCiAgICBpID0gbi5kZWNvZGUgfHwgZGVjb2RlJDE7CiAgbGV0IGEgPSAwOwogIGZvciAoOyBhIDwgZS5sZW5ndGg7KSB7CiAgICBjb25zdCBvID0gZS5pbmRleE9mKCI9IiwgYSk7CiAgICBpZiAobyA9PT0gLTEpIGJyZWFrOwogICAgbGV0IGwgPSBlLmluZGV4T2YoIjsiLCBhKTsKICAgIGlmIChsID09PSAtMSkgbCA9IGUubGVuZ3RoOwogICAgZWxzZSBpZiAobCA8IG8pIHsKICAgICAgYSA9IGUubGFzdEluZGV4T2YoIjsiLCBvIC0gMSkgKyAxOwogICAgICBjb250aW51ZTsKICAgIH0KICAgIGNvbnN0IGMgPSBlLnNsaWNlKGEsIG8pLnRyaW0oKTsKICAgIGlmIChuICE9IG51bGwgJiYgbi5maWx0ZXIgJiYgIShuICE9IG51bGwgJiYgbi5maWx0ZXIoYykpKSB7CiAgICAgIGEgPSBsICsgMTsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAocltjXSA9PT0gdm9pZCAwKSB7CiAgICAgIGxldCB1ID0gZS5zbGljZShvICsgMSwgbCkudHJpbSgpOwogICAgICB1LmNvZGVQb2ludEF0KDApID09PSAzNCAmJiAodSA9IHUuc2xpY2UoMSwgLTEpKSwgKHJbY10gPSB0cnlEZWNvZGUodSwgaSkpOwogICAgfQogICAgYSA9IGwgKyAxOwogIH0KICByZXR1cm4gcjsKfQpmdW5jdGlvbiBkZWNvZGUkMShlKSB7CiAgcmV0dXJuIGUuaW5jbHVkZXMoIiUiKSA/IGRlY29kZVVSSUNvbXBvbmVudChlKSA6IGU7Cn0KZnVuY3Rpb24gdHJ5RGVjb2RlKGUsIHQpIHsKICB0cnkgewogICAgcmV0dXJuIHQoZSk7CiAgfSBjYXRjaCB7CiAgICByZXR1cm4gZTsKICB9Cn0KY29uc3QgZmllbGRDb250ZW50UmVnRXhwID0gL15bXHUwMDA5XHUwMDIwLVx1MDA3RVx1MDA4MC1cdTAwRkZdKyQvOwpmdW5jdGlvbiBzZXJpYWxpemUoZSwgdCwgcikgewogIGNvbnN0IG4gPSByIHx8IHt9LAogICAgaSA9IG4uZW5jb2RlIHx8IGVuY29kZVVSSUNvbXBvbmVudDsKICBpZiAodHlwZW9mIGkgIT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uIGVuY29kZSBpcyBpbnZhbGlkIik7CiAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChlKSkKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZCIpOwogIGNvbnN0IGEgPSBpKHQpOwogIGlmIChhICYmICFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChhKSkKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHZhbCBpcyBpbnZhbGlkIik7CiAgbGV0IG8gPSBlICsgIj0iICsgYTsKICBpZiAobi5tYXhBZ2UgIT09IHZvaWQgMCAmJiBuLm1heEFnZSAhPT0gbnVsbCkgewogICAgY29uc3QgbCA9IG4ubWF4QWdlIC0gMDsKICAgIGlmIChOdW1iZXIuaXNOYU4obCkgfHwgIU51bWJlci5pc0Zpbml0ZShsKSkKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uIG1heEFnZSBpcyBpbnZhbGlkIik7CiAgICBvICs9ICI7IE1heC1BZ2U9IiArIE1hdGguZmxvb3IobCk7CiAgfQogIGlmIChuLmRvbWFpbikgewogICAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChuLmRvbWFpbikpCiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiBkb21haW4gaXMgaW52YWxpZCIpOwogICAgbyArPSAiOyBEb21haW49IiArIG4uZG9tYWluOwogIH0KICBpZiAobi5wYXRoKSB7CiAgICBpZiAoIWZpZWxkQ29udGVudFJlZ0V4cC50ZXN0KG4ucGF0aCkpCiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiBwYXRoIGlzIGludmFsaWQiKTsKICAgIG8gKz0gIjsgUGF0aD0iICsgbi5wYXRoOwogIH0KICBpZiAobi5leHBpcmVzKSB7CiAgICBpZiAoIWlzRGF0ZSQxKG4uZXhwaXJlcykgfHwgTnVtYmVyLmlzTmFOKG4uZXhwaXJlcy52YWx1ZU9mKCkpKQogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gZXhwaXJlcyBpcyBpbnZhbGlkIik7CiAgICBvICs9ICI7IEV4cGlyZXM9IiArIG4uZXhwaXJlcy50b1VUQ1N0cmluZygpOwogIH0KICBpZiAoCiAgICAobi5odHRwT25seSAmJiAobyArPSAiOyBIdHRwT25seSIpLAogICAgICBuLnNlY3VyZSAmJiAobyArPSAiOyBTZWN1cmUiKSwKICAgICAgbi5wcmlvcml0eSkKICApCiAgICBzd2l0Y2ggKAogICAgdHlwZW9mIG4ucHJpb3JpdHkgPT0gInN0cmluZyIgPyBuLnByaW9yaXR5LnRvTG93ZXJDYXNlKCkgOiBuLnByaW9yaXR5CiAgICApIHsKICAgICAgY2FzZSAibG93IjogewogICAgICAgIG8gKz0gIjsgUHJpb3JpdHk9TG93IjsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJtZWRpdW0iOiB7CiAgICAgICAgbyArPSAiOyBQcmlvcml0eT1NZWRpdW0iOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImhpZ2giOiB7CiAgICAgICAgbyArPSAiOyBQcmlvcml0eT1IaWdoIjsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiBwcmlvcml0eSBpcyBpbnZhbGlkIik7CiAgICB9CiAgaWYgKG4uc2FtZVNpdGUpCiAgICBzd2l0Y2ggKAogICAgdHlwZW9mIG4uc2FtZVNpdGUgPT0gInN0cmluZyIgPyBuLnNhbWVTaXRlLnRvTG93ZXJDYXNlKCkgOiBuLnNhbWVTaXRlCiAgICApIHsKICAgICAgY2FzZSAhMDogewogICAgICAgIG8gKz0gIjsgU2FtZVNpdGU9U3RyaWN0IjsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJsYXgiOiB7CiAgICAgICAgbyArPSAiOyBTYW1lU2l0ZT1MYXgiOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgInN0cmljdCI6IHsKICAgICAgICBvICs9ICI7IFNhbWVTaXRlPVN0cmljdCI7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAibm9uZSI6IHsKICAgICAgICBvICs9ICI7IFNhbWVTaXRlPU5vbmUiOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uIHNhbWVTaXRlIGlzIGludmFsaWQiKTsKICAgIH0KICByZXR1cm4gbi5wYXJ0aXRpb25lZCAmJiAobyArPSAiOyBQYXJ0aXRpb25lZCIpLCBvOwp9CmZ1bmN0aW9uIGlzRGF0ZSQxKGUpIHsKICByZXR1cm4gKAogICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpID09PSAiW29iamVjdCBEYXRlXSIgfHwgZSBpbnN0YW5jZW9mIERhdGUKICApOwp9CmNvbnN0IGRlZmF1bHRzID0gT2JqZWN0LmZyZWV6ZSh7CiAgaWdub3JlVW5rbm93bjogITEsCiAgcmVzcGVjdFR5cGU6ICExLAogIHJlc3BlY3RGdW5jdGlvbk5hbWVzOiAhMSwKICByZXNwZWN0RnVuY3Rpb25Qcm9wZXJ0aWVzOiAhMSwKICB1bm9yZGVyZWRPYmplY3RzOiAhMCwKICB1bm9yZGVyZWRBcnJheXM6ICExLAogIHVub3JkZXJlZFNldHM6ICExLAogIGV4Y2x1ZGVLZXlzOiB2b2lkIDAsCiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLAogIHJlcGxhY2VyOiB2b2lkIDAsCn0pOwpmdW5jdGlvbiBvYmplY3RIYXNoKGUsIHQpIHsKICB0ID8gKHQgPSB7IC4uLmRlZmF1bHRzLCAuLi50IH0pIDogKHQgPSBkZWZhdWx0cyk7CiAgY29uc3QgciA9IGNyZWF0ZUhhc2hlcih0KTsKICByZXR1cm4gci5kaXNwYXRjaChlKSwgci50b1N0cmluZygpOwp9CmNvbnN0IGRlZmF1bHRQcm90b3R5cGVzS2V5cyA9IE9iamVjdC5mcmVlemUoWwogICJwcm90b3R5cGUiLAogICJfX3Byb3RvX18iLAogICJjb25zdHJ1Y3RvciIsCl0pOwpmdW5jdGlvbiBjcmVhdGVIYXNoZXIoZSkgewogIGxldCB0ID0gIiIsCiAgICByID0gbmV3IE1hcCgpOwogIGNvbnN0IG4gPSAoaSkgPT4gewogICAgdCArPSBpOwogIH07CiAgcmV0dXJuIHsKICAgIHRvU3RyaW5nKCkgewogICAgICByZXR1cm4gdDsKICAgIH0sCiAgICBnZXRDb250ZXh0KCkgewogICAgICByZXR1cm4gcjsKICAgIH0sCiAgICBkaXNwYXRjaChpKSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgZS5yZXBsYWNlciAmJiAoaSA9IGUucmVwbGFjZXIoaSkpLAogICAgICAgIHRoaXNbaSA9PT0gbnVsbCA/ICJudWxsIiA6IHR5cGVvZiBpXShpKQogICAgICApOwogICAgfSwKICAgIG9iamVjdChpKSB7CiAgICAgIGlmIChpICYmIHR5cGVvZiBpLnRvSlNPTiA9PSAiZnVuY3Rpb24iKSByZXR1cm4gdGhpcy5vYmplY3QoaS50b0pTT04oKSk7CiAgICAgIGNvbnN0IGEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaSk7CiAgICAgIGxldCBvID0gIiI7CiAgICAgIGNvbnN0IGwgPSBhLmxlbmd0aDsKICAgICAgbCA8IDEwID8gKG8gPSAidW5rbm93bjpbIiArIGEgKyAiXSIpIDogKG8gPSBhLnNsaWNlKDgsIGwgLSAxKSksCiAgICAgICAgKG8gPSBvLnRvTG93ZXJDYXNlKCkpOwogICAgICBsZXQgYyA9IG51bGw7CiAgICAgIGlmICgoYyA9IHIuZ2V0KGkpKSA9PT0gdm9pZCAwKSByLnNldChpLCByLnNpemUpOwogICAgICBlbHNlIHJldHVybiB0aGlzLmRpc3BhdGNoKCJbQ0lSQ1VMQVI6IiArIGMgKyAiXSIpOwogICAgICBpZiAodHlwZW9mIEJ1ZmZlciA8ICJ1IiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKGkpKQogICAgICAgIHJldHVybiBuKCJidWZmZXI6IiksIG4oaS50b1N0cmluZygidXRmOCIpKTsKICAgICAgaWYgKG8gIT09ICJvYmplY3QiICYmIG8gIT09ICJmdW5jdGlvbiIgJiYgbyAhPT0gImFzeW5jZnVuY3Rpb24iKQogICAgICAgIHRoaXNbb10gPyB0aGlzW29dKGkpIDogZS5pZ25vcmVVbmtub3duIHx8IHRoaXMudW5rb3duKGksIG8pOwogICAgICBlbHNlIHsKICAgICAgICBsZXQgdSA9IE9iamVjdC5rZXlzKGkpOwogICAgICAgIGUudW5vcmRlcmVkT2JqZWN0cyAmJiAodSA9IHUuc29ydCgpKTsKICAgICAgICBsZXQgZCA9IFtdOwogICAgICAgIGUucmVzcGVjdFR5cGUgIT09ICExICYmCiAgICAgICAgICAhaXNOYXRpdmVGdW5jdGlvbihpKSAmJgogICAgICAgICAgKGQgPSBkZWZhdWx0UHJvdG90eXBlc0tleXMpLAogICAgICAgICAgZS5leGNsdWRlS2V5cyAmJgogICAgICAgICAgKCh1ID0gdS5maWx0ZXIoKGIpID0+ICFlLmV4Y2x1ZGVLZXlzKGIpKSksCiAgICAgICAgICAgIChkID0gZC5maWx0ZXIoKGIpID0+ICFlLmV4Y2x1ZGVLZXlzKGIpKSkpLAogICAgICAgICAgbigib2JqZWN0OiIgKyAodS5sZW5ndGggKyBkLmxlbmd0aCkgKyAiOiIpOwogICAgICAgIGNvbnN0IEUgPSAoYikgPT4gewogICAgICAgICAgdGhpcy5kaXNwYXRjaChiKSwKICAgICAgICAgICAgbigiOiIpLAogICAgICAgICAgICBlLmV4Y2x1ZGVWYWx1ZXMgfHwgdGhpcy5kaXNwYXRjaChpW2JdKSwKICAgICAgICAgICAgbigiLCIpOwogICAgICAgIH07CiAgICAgICAgZm9yIChjb25zdCBiIG9mIHUpIEUoYik7CiAgICAgICAgZm9yIChjb25zdCBiIG9mIGQpIEUoYik7CiAgICAgIH0KICAgIH0sCiAgICBhcnJheShpLCBhKSB7CiAgICAgIGlmICgKICAgICAgICAoKGEgPSBhID09PSB2b2lkIDAgPyBlLnVub3JkZXJlZEFycmF5cyAhPT0gITEgOiBhKSwKICAgICAgICAgIG4oImFycmF5OiIgKyBpLmxlbmd0aCArICI6IiksCiAgICAgICAgICAhYSB8fCBpLmxlbmd0aCA8PSAxKQogICAgICApIHsKICAgICAgICBmb3IgKGNvbnN0IGMgb2YgaSkgdGhpcy5kaXNwYXRjaChjKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgbyA9IG5ldyBNYXAoKSwKICAgICAgICBsID0gaS5tYXAoKGMpID0+IHsKICAgICAgICAgIGNvbnN0IHUgPSBjcmVhdGVIYXNoZXIoZSk7CiAgICAgICAgICB1LmRpc3BhdGNoKGMpOwogICAgICAgICAgZm9yIChjb25zdCBbZCwgRV0gb2YgdS5nZXRDb250ZXh0KCkpIG8uc2V0KGQsIEUpOwogICAgICAgICAgcmV0dXJuIHUudG9TdHJpbmcoKTsKICAgICAgICB9KTsKICAgICAgcmV0dXJuIChyID0gbyksIGwuc29ydCgpLCB0aGlzLmFycmF5KGwsICExKTsKICAgIH0sCiAgICBkYXRlKGkpIHsKICAgICAgcmV0dXJuIG4oImRhdGU6IiArIGkudG9KU09OKCkpOwogICAgfSwKICAgIHN5bWJvbChpKSB7CiAgICAgIHJldHVybiBuKCJzeW1ib2w6IiArIGkudG9TdHJpbmcoKSk7CiAgICB9LAogICAgdW5rb3duKGksIGEpIHsKICAgICAgaWYgKChuKGEpLCAhIWkgJiYgKG4oIjoiKSwgaSAmJiB0eXBlb2YgaS5lbnRyaWVzID09ICJmdW5jdGlvbiIpKSkKICAgICAgICByZXR1cm4gdGhpcy5hcnJheShBcnJheS5mcm9tKGkuZW50cmllcygpKSwgITApOwogICAgfSwKICAgIGVycm9yKGkpIHsKICAgICAgcmV0dXJuIG4oImVycm9yOiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIGJvb2xlYW4oaSkgewogICAgICByZXR1cm4gbigiYm9vbDoiICsgaSk7CiAgICB9LAogICAgc3RyaW5nKGkpIHsKICAgICAgbigic3RyaW5nOiIgKyBpLmxlbmd0aCArICI6IiksIG4oaSk7CiAgICB9LAogICAgZnVuY3Rpb24oaSkgewogICAgICBuKCJmbjoiKSwKICAgICAgICBpc05hdGl2ZUZ1bmN0aW9uKGkpCiAgICAgICAgICA/IHRoaXMuZGlzcGF0Y2goIltuYXRpdmVdIikKICAgICAgICAgIDogdGhpcy5kaXNwYXRjaChpLnRvU3RyaW5nKCkpLAogICAgICAgIGUucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09ICExICYmCiAgICAgICAgdGhpcy5kaXNwYXRjaCgiZnVuY3Rpb24tbmFtZToiICsgU3RyaW5nKGkubmFtZSkpLAogICAgICAgIGUucmVzcGVjdEZ1bmN0aW9uUHJvcGVydGllcyAmJiB0aGlzLm9iamVjdChpKTsKICAgIH0sCiAgICBudW1iZXIoaSkgewogICAgICByZXR1cm4gbigibnVtYmVyOiIgKyBpKTsKICAgIH0sCiAgICB4bWwoaSkgewogICAgICByZXR1cm4gbigieG1sOiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIG51bGwoKSB7CiAgICAgIHJldHVybiBuKCJOdWxsIik7CiAgICB9LAogICAgdW5kZWZpbmVkKCkgewogICAgICByZXR1cm4gbigiVW5kZWZpbmVkIik7CiAgICB9LAogICAgcmVnZXhwKGkpIHsKICAgICAgcmV0dXJuIG4oInJlZ2V4OiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIHVpbnQ4YXJyYXkoaSkgewogICAgICByZXR1cm4gbigidWludDhhcnJheToiKSwgdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChpKSk7CiAgICB9LAogICAgdWludDhjbGFtcGVkYXJyYXkoaSkgewogICAgICByZXR1cm4gKAogICAgICAgIG4oInVpbnQ4Y2xhbXBlZGFycmF5OiIpLCB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpKQogICAgICApOwogICAgfSwKICAgIGludDhhcnJheShpKSB7CiAgICAgIHJldHVybiBuKCJpbnQ4YXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIHVpbnQxNmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oInVpbnQxNmFycmF5OiIpLCB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpKTsKICAgIH0sCiAgICBpbnQxNmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oImludDE2YXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIHVpbnQzMmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oInVpbnQzMmFycmF5OiIpLCB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpKTsKICAgIH0sCiAgICBpbnQzMmFycmF5KGkpIHsKICAgICAgcmV0dXJuIG4oImludDMyYXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIGZsb2F0MzJhcnJheShpKSB7CiAgICAgIHJldHVybiBuKCJmbG9hdDMyYXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIGZsb2F0NjRhcnJheShpKSB7CiAgICAgIHJldHVybiBuKCJmbG9hdDY0YXJyYXk6IiksIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaSkpOwogICAgfSwKICAgIGFycmF5YnVmZmVyKGkpIHsKICAgICAgcmV0dXJuIG4oImFycmF5YnVmZmVyOiIpLCB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGkpKTsKICAgIH0sCiAgICB1cmwoaSkgewogICAgICByZXR1cm4gbigidXJsOiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIG1hcChpKSB7CiAgICAgIG4oIm1hcDoiKTsKICAgICAgY29uc3QgYSA9IFsuLi5pXTsKICAgICAgcmV0dXJuIHRoaXMuYXJyYXkoYSwgZS51bm9yZGVyZWRTZXRzICE9PSAhMSk7CiAgICB9LAogICAgc2V0KGkpIHsKICAgICAgbigic2V0OiIpOwogICAgICBjb25zdCBhID0gWy4uLmldOwogICAgICByZXR1cm4gdGhpcy5hcnJheShhLCBlLnVub3JkZXJlZFNldHMgIT09ICExKTsKICAgIH0sCiAgICBmaWxlKGkpIHsKICAgICAgcmV0dXJuIG4oImZpbGU6IiksIHRoaXMuZGlzcGF0Y2goW2kubmFtZSwgaS5zaXplLCBpLnR5cGUsIGkubGFzdE1vZGZpZWRdKTsKICAgIH0sCiAgICBibG9iKCkgewogICAgICBpZiAoZS5pZ25vcmVVbmtub3duKSByZXR1cm4gbigiW2Jsb2JdIik7CiAgICAgIHRocm93IG5ldyBFcnJvcihgSGFzaGluZyBCbG9iIG9iamVjdHMgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQKVXNlICJvcHRpb25zLnJlcGxhY2VyIiBvciAib3B0aW9ucy5pZ25vcmVVbmtub3duIgpgKTsKICAgIH0sCiAgICBkb213aW5kb3coKSB7CiAgICAgIHJldHVybiBuKCJkb213aW5kb3ciKTsKICAgIH0sCiAgICBiaWdpbnQoaSkgewogICAgICByZXR1cm4gbigiYmlnaW50OiIgKyBpLnRvU3RyaW5nKCkpOwogICAgfSwKICAgIHByb2Nlc3MoKSB7CiAgICAgIHJldHVybiBuKCJwcm9jZXNzIik7CiAgICB9LAogICAgdGltZXIoKSB7CiAgICAgIHJldHVybiBuKCJ0aW1lciIpOwogICAgfSwKICAgIHBpcGUoKSB7CiAgICAgIHJldHVybiBuKCJwaXBlIik7CiAgICB9LAogICAgdGNwKCkgewogICAgICByZXR1cm4gbigidGNwIik7CiAgICB9LAogICAgdWRwKCkgewogICAgICByZXR1cm4gbigidWRwIik7CiAgICB9LAogICAgdHR5KCkgewogICAgICByZXR1cm4gbigidHR5Iik7CiAgICB9LAogICAgc3RhdHdhdGNoZXIoKSB7CiAgICAgIHJldHVybiBuKCJzdGF0d2F0Y2hlciIpOwogICAgfSwKICAgIHNlY3VyZWNvbnRleHQoKSB7CiAgICAgIHJldHVybiBuKCJzZWN1cmVjb250ZXh0Iik7CiAgICB9LAogICAgY29ubmVjdGlvbigpIHsKICAgICAgcmV0dXJuIG4oImNvbm5lY3Rpb24iKTsKICAgIH0sCiAgICB6bGliKCkgewogICAgICByZXR1cm4gbigiemxpYiIpOwogICAgfSwKICAgIGNvbnRleHQoKSB7CiAgICAgIHJldHVybiBuKCJjb250ZXh0Iik7CiAgICB9LAogICAgbm9kZXNjcmlwdCgpIHsKICAgICAgcmV0dXJuIG4oIm5vZGVzY3JpcHQiKTsKICAgIH0sCiAgICBodHRwcGFyc2VyKCkgewogICAgICByZXR1cm4gbigiaHR0cHBhcnNlciIpOwogICAgfSwKICAgIGRhdGF2aWV3KCkgewogICAgICByZXR1cm4gbigiZGF0YXZpZXciKTsKICAgIH0sCiAgICBzaWduYWwoKSB7CiAgICAgIHJldHVybiBuKCJzaWduYWwiKTsKICAgIH0sCiAgICBmc2V2ZW50KCkgewogICAgICByZXR1cm4gbigiZnNldmVudCIpOwogICAgfSwKICAgIHRsc3dyYXAoKSB7CiAgICAgIHJldHVybiBuKCJ0bHN3cmFwIik7CiAgICB9LAogIH07Cn0KY29uc3QgbmF0aXZlRnVuYyA9ICJbbmF0aXZlIGNvZGVdIH0iLAogIG5hdGl2ZUZ1bmNMZW5ndGggPSBuYXRpdmVGdW5jLmxlbmd0aDsKZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihlKSB7CiAgcmV0dXJuIHR5cGVvZiBlICE9ICJmdW5jdGlvbiIKICAgID8gITEKICAgIDogRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoLW5hdGl2ZUZ1bmNMZW5ndGgpID09PQogICAgbmF0aXZlRnVuYzsKfQpmdW5jdGlvbiBpc0VxdWFsJDEoZSwgdCwgciA9IHt9KSB7CiAgcmV0dXJuIGUgPT09IHQgfHwgb2JqZWN0SGFzaChlLCByKSA9PT0gb2JqZWN0SGFzaCh0LCByKTsKfQpmdW5jdGlvbiBfY3JlYXRlTWF0Y2hlcihlLCB0KSB7CiAgcmV0dXJuIHsgY3R4OiB7IHRhYmxlOiBlIH0sIG1hdGNoQWxsOiAocikgPT4gX21hdGNoUm91dGVzKHIsIGUpIH07Cn0KZnVuY3Rpb24gX2NyZWF0ZVRhYmxlRnJvbUV4cG9ydChlKSB7CiAgY29uc3QgdCA9IHt9OwogIGZvciAoY29uc3QgciBpbiBlKQogICAgdFtyXSA9CiAgICAgIHIgPT09ICJkeW5hbWljIgogICAgICAgID8gbmV3IE1hcCgKICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGVbcl0pLm1hcCgoW24sIGldKSA9PiBbbiwgX2NyZWF0ZVRhYmxlRnJvbUV4cG9ydChpKV0pCiAgICAgICAgKQogICAgICAgIDogbmV3IE1hcChPYmplY3QuZW50cmllcyhlW3JdKSk7CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gY3JlYXRlTWF0Y2hlckZyb21FeHBvcnQoZSkgewogIHJldHVybiBfY3JlYXRlTWF0Y2hlcihfY3JlYXRlVGFibGVGcm9tRXhwb3J0KGUpKTsKfQpmdW5jdGlvbiBfbWF0Y2hSb3V0ZXMoZSwgdCwgcikgewogIGUuZW5kc1dpdGgoIi8iKSAmJiAoZSA9IGUuc2xpY2UoMCwgLTEpIHx8ICIvIik7CiAgY29uc3QgbiA9IFtdOwogIGZvciAoY29uc3QgW2EsIG9dIG9mIF9zb3J0Um91dGVzTWFwKHQud2lsZGNhcmQpKQogICAgKGUgPT09IGEgfHwgZS5zdGFydHNXaXRoKGEgKyAiLyIpKSAmJiBuLnB1c2gobyk7CiAgZm9yIChjb25zdCBbYSwgb10gb2YgX3NvcnRSb3V0ZXNNYXAodC5keW5hbWljKSkKICAgIGlmIChlLnN0YXJ0c1dpdGgoYSArICIvIikpIHsKICAgICAgY29uc3QgbCA9ICIvIiArIGUuc2xpY2UoYS5sZW5ndGgpLnNwbGl0KCIvIikuc3BsaWNlKDIpLmpvaW4oIi8iKTsKICAgICAgbi5wdXNoKC4uLl9tYXRjaFJvdXRlcyhsLCBvKSk7CiAgICB9CiAgY29uc3QgaSA9IHQuc3RhdGljLmdldChlKTsKICByZXR1cm4gaSAmJiBuLnB1c2goaSksIG4uZmlsdGVyKEJvb2xlYW4pOwp9CmZ1bmN0aW9uIF9zb3J0Um91dGVzTWFwKGUpIHsKICByZXR1cm4gWy4uLmUuZW50cmllcygpXS5zb3J0KCh0LCByKSA9PiB0WzBdLmxlbmd0aCAtIHJbMF0ubGVuZ3RoKTsKfQpmdW5jdGlvbiBpc1BsYWluT2JqZWN0JDMoZSkgewogIGlmIChlID09PSBudWxsIHx8IHR5cGVvZiBlICE9ICJvYmplY3QiKSByZXR1cm4gITE7CiAgY29uc3QgdCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihlKTsKICByZXR1cm4gKHQgIT09IG51bGwgJiYKICAgIHQgIT09IE9iamVjdC5wcm90b3R5cGUgJiYKICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSAhPT0gbnVsbCkgfHwKICAgIFN5bWJvbC5pdGVyYXRvciBpbiBlCiAgICA/ICExCiAgICA6IFN5bWJvbC50b1N0cmluZ1RhZyBpbiBlCiAgICAgID8gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpID09PSAiW29iamVjdCBNb2R1bGVdIgogICAgICA6ICEwOwp9CmZ1bmN0aW9uIF9kZWZ1KGUsIHQsIHIgPSAiLiIsIG4pIHsKICBpZiAoIWlzUGxhaW5PYmplY3QkMyh0KSkgcmV0dXJuIF9kZWZ1KGUsIHt9LCByLCBuKTsKICBjb25zdCBpID0gT2JqZWN0LmFzc2lnbih7fSwgdCk7CiAgZm9yIChjb25zdCBhIGluIGUpIHsKICAgIGlmIChhID09PSAiX19wcm90b19fIiB8fCBhID09PSAiY29uc3RydWN0b3IiKSBjb250aW51ZTsKICAgIGNvbnN0IG8gPSBlW2FdOwogICAgbyAhPSBudWxsICYmCiAgICAgICgobiAmJiBuKGksIGEsIG8sIHIpKSB8fAogICAgICAgIChBcnJheS5pc0FycmF5KG8pICYmIEFycmF5LmlzQXJyYXkoaVthXSkKICAgICAgICAgID8gKGlbYV0gPSBbLi4ubywgLi4uaVthXV0pCiAgICAgICAgICA6IGlzUGxhaW5PYmplY3QkMyhvKSAmJiBpc1BsYWluT2JqZWN0JDMoaVthXSkKICAgICAgICAgICAgPyAoaVthXSA9IF9kZWZ1KG8sIGlbYV0sIChyID8gYCR7cn0uYCA6ICIiKSArIGEudG9TdHJpbmcoKSwgbikpCiAgICAgICAgICAgIDogKGlbYV0gPSBvKSkpOwogIH0KICByZXR1cm4gaTsKfQpmdW5jdGlvbiBjcmVhdGVEZWZ1KGUpIHsKICByZXR1cm4gKC4uLnQpID0+IHQucmVkdWNlKChyLCBuKSA9PiBfZGVmdShyLCBuLCAiIiwgZSksIHt9KTsKfQpjb25zdCBkZWZ1ID0gY3JlYXRlRGVmdSgpLAogIGRlZnVGbiA9IGNyZWF0ZURlZnUoKGUsIHQsIHIpID0+IHsKICAgIGlmIChlW3RdICE9PSB2b2lkIDAgJiYgdHlwZW9mIHIgPT0gImZ1bmN0aW9uIikgcmV0dXJuIChlW3RdID0gcihlW3RdKSksICEwOwogIH0pOwpmdW5jdGlvbiBoYXNQcm9wKGUsIHQpIHsKICB0cnkgewogICAgcmV0dXJuIHQgaW4gZTsKICB9IGNhdGNoIHsKICAgIHJldHVybiAhMTsKICB9Cn0KdmFyIF9fZGVmUHJvcCQyID0gT2JqZWN0LmRlZmluZVByb3BlcnR5LAogIF9fZGVmTm9ybWFsUHJvcCQyID0gKGUsIHQsIHIpID0+CiAgICB0IGluIGUKICAgICAgPyBfX2RlZlByb3AkMihlLCB0LCB7CiAgICAgICAgZW51bWVyYWJsZTogITAsCiAgICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgICB3cml0YWJsZTogITAsCiAgICAgICAgdmFsdWU6IHIsCiAgICAgIH0pCiAgICAgIDogKGVbdF0gPSByKSwKICBfX3B1YmxpY0ZpZWxkJDIgPSAoZSwgdCwgcikgPT4gKAogICAgX19kZWZOb3JtYWxQcm9wJDIoZSwgdHlwZW9mIHQgIT0gInN5bWJvbCIgPyB0ICsgIiIgOiB0LCByKSwgcgogICk7CmNsYXNzIEgzRXJyb3IgZXh0ZW5kcyBFcnJvciB7CiAgY29uc3RydWN0b3IodCwgciA9IHt9KSB7CiAgICBzdXBlcih0LCByKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJzdGF0dXNDb2RlIiwgNTAwKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJmYXRhbCIsICExKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJ1bmhhbmRsZWQiLCAhMSksCiAgICAgIF9fcHVibGljRmllbGQkMih0aGlzLCAic3RhdHVzTWVzc2FnZSIpLAogICAgICBfX3B1YmxpY0ZpZWxkJDIodGhpcywgImRhdGEiKSwKICAgICAgX19wdWJsaWNGaWVsZCQyKHRoaXMsICJjYXVzZSIpLAogICAgICByLmNhdXNlICYmICF0aGlzLmNhdXNlICYmICh0aGlzLmNhdXNlID0gci5jYXVzZSk7CiAgfQogIHRvSlNPTigpIHsKICAgIGNvbnN0IHQgPSB7CiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSwKICAgICAgc3RhdHVzQ29kZTogc2FuaXRpemVTdGF0dXNDb2RlKHRoaXMuc3RhdHVzQ29kZSwgNTAwKSwKICAgIH07CiAgICByZXR1cm4gKAogICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgJiYKICAgICAgKHQuc3RhdHVzTWVzc2FnZSA9IHNhbml0aXplU3RhdHVzTWVzc2FnZSh0aGlzLnN0YXR1c01lc3NhZ2UpKSwKICAgICAgdGhpcy5kYXRhICE9PSB2b2lkIDAgJiYgKHQuZGF0YSA9IHRoaXMuZGF0YSksCiAgICAgIHQKICAgICk7CiAgfQp9Cl9fcHVibGljRmllbGQkMihIM0Vycm9yLCAiX19oM19lcnJvcl9fIiwgITApOwpmdW5jdGlvbiBjcmVhdGVFcnJvciQxKGUpIHsKICBpZiAodHlwZW9mIGUgPT0gInN0cmluZyIpIHJldHVybiBuZXcgSDNFcnJvcihlKTsKICBpZiAoaXNFcnJvcihlKSkgcmV0dXJuIGU7CiAgY29uc3QgdCA9IG5ldyBIM0Vycm9yKGUubWVzc2FnZSA/PyBlLnN0YXR1c01lc3NhZ2UgPz8gIiIsIHsKICAgIGNhdXNlOiBlLmNhdXNlIHx8IGUsCiAgfSk7CiAgaWYgKGhhc1Byb3AoZSwgInN0YWNrIikpCiAgICB0cnkgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInN0YWNrIiwgewogICAgICAgIGdldCgpIHsKICAgICAgICAgIHJldHVybiBlLnN0YWNrOwogICAgICAgIH0sCiAgICAgIH0pOwogICAgfSBjYXRjaCB7CiAgICAgIHRyeSB7CiAgICAgICAgdC5zdGFjayA9IGUuc3RhY2s7CiAgICAgIH0gY2F0Y2ggeyB9CiAgICB9CiAgaWYgKAogICAgKGUuZGF0YSAmJiAodC5kYXRhID0gZS5kYXRhKSwKICAgICAgZS5zdGF0dXNDb2RlCiAgICAgICAgPyAodC5zdGF0dXNDb2RlID0gc2FuaXRpemVTdGF0dXNDb2RlKGUuc3RhdHVzQ29kZSwgdC5zdGF0dXNDb2RlKSkKICAgICAgICA6IGUuc3RhdHVzICYmICh0LnN0YXR1c0NvZGUgPSBzYW5pdGl6ZVN0YXR1c0NvZGUoZS5zdGF0dXMsIHQuc3RhdHVzQ29kZSkpLAogICAgICBlLnN0YXR1c01lc3NhZ2UKICAgICAgICA/ICh0LnN0YXR1c01lc3NhZ2UgPSBlLnN0YXR1c01lc3NhZ2UpCiAgICAgICAgOiBlLnN0YXR1c1RleHQgJiYgKHQuc3RhdHVzTWVzc2FnZSA9IGUuc3RhdHVzVGV4dCksCiAgICAgIHQuc3RhdHVzTWVzc2FnZSkKICApIHsKICAgIGNvbnN0IHIgPSB0LnN0YXR1c01lc3NhZ2U7CiAgICBzYW5pdGl6ZVN0YXR1c01lc3NhZ2UodC5zdGF0dXNNZXNzYWdlKSAhPT0gciAmJgogICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgIltoM10gUGxlYXNlIHByZWZlciB1c2luZyBgbWVzc2FnZWAgZm9yIGxvbmdlciBlcnJvciBtZXNzYWdlcyBpbnN0ZWFkIG9mIGBzdGF0dXNNZXNzYWdlYC4gSW4gdGhlIGZ1dHVyZSwgYHN0YXR1c01lc3NhZ2VgIHdpbGwgYmUgc2FuaXRpemVkIGJ5IGRlZmF1bHQuIgogICAgICApOwogIH0KICByZXR1cm4gKAogICAgZS5mYXRhbCAhPT0gdm9pZCAwICYmICh0LmZhdGFsID0gZS5mYXRhbCksCiAgICBlLnVuaGFuZGxlZCAhPT0gdm9pZCAwICYmICh0LnVuaGFuZGxlZCA9IGUudW5oYW5kbGVkKSwKICAgIHQKICApOwp9CmZ1bmN0aW9uIGlzRXJyb3IoZSkgewogIHZhciB0OwogIHJldHVybiAoCiAgICAoKHQgPSBlID09IG51bGwgPyB2b2lkIDAgOiBlLmNvbnN0cnVjdG9yKSA9PSBudWxsCiAgICAgID8gdm9pZCAwCiAgICAgIDogdC5fX2gzX2Vycm9yX18pID09PSAhMAogICk7Cn0KY29uc3QgRElTQUxMT1dFRF9TVEFUVVNfQ0hBUlMgPSAvW15cdTAwMDlcdTAwMjAtXHUwMDdFXS9nOwpmdW5jdGlvbiBzYW5pdGl6ZVN0YXR1c01lc3NhZ2UoZSA9ICIiKSB7CiAgcmV0dXJuIGUucmVwbGFjZShESVNBTExPV0VEX1NUQVRVU19DSEFSUywgIiIpOwp9CmZ1bmN0aW9uIHNhbml0aXplU3RhdHVzQ29kZShlLCB0ID0gMjAwKSB7CiAgcmV0dXJuICFlIHx8CiAgICAodHlwZW9mIGUgPT0gInN0cmluZyIgJiYgKGUgPSBOdW1iZXIucGFyc2VJbnQoZSwgMTApKSwgZSA8IDEwMCB8fCBlID4gOTk5KQogICAgPyB0CiAgICA6IGU7Cn0KdHlwZW9mIHNldEltbWVkaWF0ZSA+ICJ1IiB8fCBzZXRJbW1lZGlhdGU7CmNvbnN0IExheW91dE1ldGFTeW1ib2wgPSBTeW1ib2woImxheW91dC1tZXRhIiksCiAgUGFnZVJvdXRlU3ltYm9sID0gU3ltYm9sKCJyb3V0ZSIpLAogIHVzZVJvdXRlciQxID0gKCkgPT4gewogICAgdmFyIGU7CiAgICByZXR1cm4gKGUgPSB1c2VOdXh0QXBwKCkpID09IG51bGwgPyB2b2lkIDAgOiBlLiRyb3V0ZXI7CiAgfSwKICB1c2VSb3V0ZSQxID0gKCkgPT4KICAgIGhhc0luamVjdGlvbkNvbnRleHQoKQogICAgICA/IGluamVjdCQxKFBhZ2VSb3V0ZVN5bWJvbCwgdXNlTnV4dEFwcCgpLl9yb3V0ZSkKICAgICAgOiB1c2VOdXh0QXBwKCkuX3JvdXRlOwpmdW5jdGlvbiBkZWZpbmVOdXh0Um91dGVNaWRkbGV3YXJlKGUpIHsKICByZXR1cm4gZTsKfQpjb25zdCBhZGRSb3V0ZU1pZGRsZXdhcmUgPSAoZSwgdCwgciA9IHt9KSA9PiB7CiAgY29uc3QgbiA9IHVzZU51eHRBcHAoKSwKICAgIGkgPSByLmdsb2JhbCB8fCB0eXBlb2YgZSAhPSAic3RyaW5nIiwKICAgIGEgPSB0OwogIGlmICghYSkgewogICAgY29uc29sZS53YXJuKAogICAgICAiW251eHRdIE5vIHJvdXRlIG1pZGRsZXdhcmUgcGFzc2VkIHRvIGBhZGRSb3V0ZU1pZGRsZXdhcmVgLiIsCiAgICAgIGUKICAgICk7CiAgICByZXR1cm47CiAgfQogIGkgPyBuLl9taWRkbGV3YXJlLmdsb2JhbC5wdXNoKGEpIDogKG4uX21pZGRsZXdhcmUubmFtZWRbZV0gPSBhKTsKfSwKICBpc1Byb2Nlc3NpbmdNaWRkbGV3YXJlID0gKCkgPT4gewogICAgdHJ5IHsKICAgICAgaWYgKHVzZU51eHRBcHAoKS5fcHJvY2Vzc2luZ01pZGRsZXdhcmUpIHJldHVybiAhMDsKICAgIH0gY2F0Y2ggewogICAgICByZXR1cm4gITE7CiAgICB9CiAgICByZXR1cm4gITE7CiAgfSwKICBuYXZpZ2F0ZVRvID0gKGUsIHQpID0+IHsKICAgIGUgfHwgKGUgPSAiLyIpOwogICAgY29uc3QgciA9CiAgICAgIHR5cGVvZiBlID09ICJzdHJpbmciCiAgICAgICAgPyBlCiAgICAgICAgOiAicGF0aCIgaW4gZQogICAgICAgICAgPyByZXNvbHZlUm91dGVPYmplY3QoZSkKICAgICAgICAgIDogdXNlUm91dGVyJDEoKS5yZXNvbHZlKGUpLmhyZWY7CiAgICBpZiAodCAhPSBudWxsICYmIHQub3BlbikgewogICAgICBjb25zdCB7IHRhcmdldDogYyA9ICJfYmxhbmsiLCB3aW5kb3dGZWF0dXJlczogdSA9IHt9IH0gPSB0Lm9wZW4sCiAgICAgICAgZCA9IE9iamVjdC5lbnRyaWVzKHUpCiAgICAgICAgICAuZmlsdGVyKChbRSwgYl0pID0+IGIgIT09IHZvaWQgMCkKICAgICAgICAgIC5tYXAoKFtFLCBiXSkgPT4gYCR7RS50b0xvd2VyQ2FzZSgpfT0ke2J9YCkKICAgICAgICAgIC5qb2luKCIsICIpOwogICAgICByZXR1cm4gb3BlbihyLCBjLCBkKSwgUHJvbWlzZS5yZXNvbHZlKCk7CiAgICB9CiAgICBjb25zdCBuID0gaGFzUHJvdG9jb2wociwgeyBhY2NlcHRSZWxhdGl2ZTogITAgfSksCiAgICAgIGkgPSAodCA9PSBudWxsID8gdm9pZCAwIDogdC5leHRlcm5hbCkgfHwgbjsKICAgIGlmIChpKSB7CiAgICAgIGlmICghKHQgIT0gbnVsbCAmJiB0LmV4dGVybmFsKSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAiTmF2aWdhdGluZyB0byBhbiBleHRlcm5hbCBVUkwgaXMgbm90IGFsbG93ZWQgYnkgZGVmYXVsdC4gVXNlIGBuYXZpZ2F0ZVRvKHVybCwgeyBleHRlcm5hbDogdHJ1ZSB9KWAuIgogICAgICAgICk7CiAgICAgIGNvbnN0IHsgcHJvdG9jb2w6IGMgfSA9IG5ldyBVUkwociwgd2luZG93LmxvY2F0aW9uLmhyZWYpOwogICAgICBpZiAoYyAmJiBpc1NjcmlwdFByb3RvY29sKGMpKQogICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IG5hdmlnYXRlIHRvIGEgVVJMIHdpdGggJyR7Y30nIHByb3RvY29sLmApOwogICAgfQogICAgY29uc3QgYSA9IGlzUHJvY2Vzc2luZ01pZGRsZXdhcmUoKTsKICAgIGlmICghaSAmJiBhKQogICAgICByZXR1cm4gdCAhPSBudWxsICYmIHQucmVwbGFjZQogICAgICAgID8gdHlwZW9mIGUgPT0gInN0cmluZyIKICAgICAgICAgID8geyBwYXRoOiBlLCByZXBsYWNlOiAhMCB9CiAgICAgICAgICA6IHsgLi4uZSwgcmVwbGFjZTogITAgfQogICAgICAgIDogZTsKICAgIGNvbnN0IG8gPSB1c2VSb3V0ZXIkMSgpLAogICAgICBsID0gdXNlTnV4dEFwcCgpOwogICAgcmV0dXJuIGkKICAgICAgPyAobC5fc2NvcGUuc3RvcCgpLAogICAgICAgIHQgIT0gbnVsbCAmJiB0LnJlcGxhY2UgPyBsb2NhdGlvbi5yZXBsYWNlKHIpIDogKGxvY2F0aW9uLmhyZWYgPSByKSwKICAgICAgICBhID8gKGwuaXNIeWRyYXRpbmcgPyBuZXcgUHJvbWlzZSgoKSA9PiB7IH0pIDogITEpIDogUHJvbWlzZS5yZXNvbHZlKCkpCiAgICAgIDogdCAhPSBudWxsICYmIHQucmVwbGFjZQogICAgICAgID8gby5yZXBsYWNlKGUpCiAgICAgICAgOiBvLnB1c2goZSk7CiAgfTsKZnVuY3Rpb24gcmVzb2x2ZVJvdXRlT2JqZWN0KGUpIHsKICByZXR1cm4gd2l0aFF1ZXJ5KGUucGF0aCB8fCAiIiwgZS5xdWVyeSB8fCB7fSkgKyAoZS5oYXNoIHx8ICIiKTsKfQpjb25zdCBOVVhUX0VSUk9SX1NJR05BVFVSRSA9ICJfX251eHRfZXJyb3IiLAogIHVzZUVycm9yID0gKCkgPT4gdG9SZWYodXNlTnV4dEFwcCgpLnBheWxvYWQsICJlcnJvciIpLAogIHNob3dFcnJvciA9IChlKSA9PiB7CiAgICBjb25zdCB0ID0gY3JlYXRlRXJyb3IoZSk7CiAgICB0cnkgewogICAgICBjb25zdCByID0gdXNlTnV4dEFwcCgpLAogICAgICAgIG4gPSB1c2VFcnJvcigpOwogICAgICByLmhvb2tzLmNhbGxIb29rKCJhcHA6ZXJyb3IiLCB0KSwgKG4udmFsdWUgPSBuLnZhbHVlIHx8IHQpOwogICAgfSBjYXRjaCB7CiAgICAgIHRocm93IHQ7CiAgICB9CiAgICByZXR1cm4gdDsKICB9LAogIGNsZWFyRXJyb3IgPSBhc3luYyAoZSA9IHt9KSA9PiB7CiAgICBjb25zdCB0ID0gdXNlTnV4dEFwcCgpLAogICAgICByID0gdXNlRXJyb3IoKTsKICAgIHQuY2FsbEhvb2soImFwcDplcnJvcjpjbGVhcmVkIiwgZSksCiAgICAgIGUucmVkaXJlY3QgJiYgKGF3YWl0IHVzZVJvdXRlciQxKCkucmVwbGFjZShlLnJlZGlyZWN0KSksCiAgICAgIChyLnZhbHVlID0gbnV4dERlZmF1bHRFcnJvclZhbHVlKTsKICB9LAogIGlzTnV4dEVycm9yID0gKGUpID0+ICEhZSAmJiB0eXBlb2YgZSA9PSAib2JqZWN0IiAmJiBOVVhUX0VSUk9SX1NJR05BVFVSRSBpbiBlLAogIGNyZWF0ZUVycm9yID0gKGUpID0+IHsKICAgIGNvbnN0IHQgPSBjcmVhdGVFcnJvciQxKGUpOwogICAgcmV0dXJuICgKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIE5VWFRfRVJST1JfU0lHTkFUVVJFLCB7CiAgICAgICAgdmFsdWU6ICEwLAogICAgICAgIGNvbmZpZ3VyYWJsZTogITEsCiAgICAgICAgd3JpdGFibGU6ICExLAogICAgICB9KSwKICAgICAgdAogICAgKTsKICB9LAogIGlzVnVlMiA9ICExOwovKiEKICogcGluaWEgdjIuMy4wCiAqIChjKSAyMDI0IEVkdWFyZG8gU2FuIE1hcnRpbiBNb3JvdGUKICogQGxpY2Vuc2UgTUlUCiAqLyBsZXQgYWN0aXZlUGluaWE7CmNvbnN0IHNldEFjdGl2ZVBpbmlhID0gKGUpID0+IChhY3RpdmVQaW5pYSA9IGUpLAogIHBpbmlhU3ltYm9sID0gU3ltYm9sKCk7CmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QkMihlKSB7CiAgcmV0dXJuICgKICAgIGUgJiYKICAgIHR5cGVvZiBlID09ICJvYmplY3QiICYmCiAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkgPT09ICJbb2JqZWN0IE9iamVjdF0iICYmCiAgICB0eXBlb2YgZS50b0pTT04gIT0gImZ1bmN0aW9uIgogICk7Cn0KdmFyIE11dGF0aW9uVHlwZTsKKGZ1bmN0aW9uIChlKSB7CiAgKGUuZGlyZWN0ID0gImRpcmVjdCIpLAogICAgKGUucGF0Y2hPYmplY3QgPSAicGF0Y2ggb2JqZWN0IiksCiAgICAoZS5wYXRjaEZ1bmN0aW9uID0gInBhdGNoIGZ1bmN0aW9uIik7Cn0pKE11dGF0aW9uVHlwZSB8fCAoTXV0YXRpb25UeXBlID0ge30pKTsKZnVuY3Rpb24gY3JlYXRlUGluaWEoKSB7CiAgY29uc3QgZSA9IGVmZmVjdFNjb3BlKCEwKSwKICAgIHQgPSBlLnJ1bigoKSA9PiByZWYoe30pKTsKICBsZXQgciA9IFtdLAogICAgbiA9IFtdOwogIGNvbnN0IGkgPSBtYXJrUmF3KHsKICAgIGluc3RhbGwoYSkgewogICAgICBzZXRBY3RpdmVQaW5pYShpKSwKICAgICAgICAoaS5fYSA9IGEpLAogICAgICAgIGEucHJvdmlkZShwaW5pYVN5bWJvbCwgaSksCiAgICAgICAgKGEuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHBpbmlhID0gaSksCiAgICAgICAgbi5mb3JFYWNoKChvKSA9PiByLnB1c2gobykpLAogICAgICAgIChuID0gW10pOwogICAgfSwKICAgIHVzZShhKSB7CiAgICAgIHJldHVybiAhdGhpcy5fYSAmJiAhaXNWdWUyID8gbi5wdXNoKGEpIDogci5wdXNoKGEpLCB0aGlzOwogICAgfSwKICAgIF9wOiByLAogICAgX2E6IG51bGwsCiAgICBfZTogZSwKICAgIF9zOiBuZXcgTWFwKCksCiAgICBzdGF0ZTogdCwKICB9KTsKICByZXR1cm4gaTsKfQpjb25zdCBub29wJDEgPSAoKSA9PiB7IH07CmZ1bmN0aW9uIGFkZFN1YnNjcmlwdGlvbihlLCB0LCByLCBuID0gbm9vcCQxKSB7CiAgZS5wdXNoKHQpOwogIGNvbnN0IGkgPSAoKSA9PiB7CiAgICBjb25zdCBhID0gZS5pbmRleE9mKHQpOwogICAgYSA+IC0xICYmIChlLnNwbGljZShhLCAxKSwgbigpKTsKICB9OwogIHJldHVybiAhciAmJiBnZXRDdXJyZW50U2NvcGUoKSAmJiBvblNjb3BlRGlzcG9zZShpKSwgaTsKfQpmdW5jdGlvbiB0cmlnZ2VyU3Vic2NyaXB0aW9ucyhlLCAuLi50KSB7CiAgZS5zbGljZSgpLmZvckVhY2goKHIpID0+IHsKICAgIHIoLi4udCk7CiAgfSk7Cn0KY29uc3QgZmFsbGJhY2tSdW5XaXRoQ29udGV4dCA9IChlKSA9PiBlKCksCiAgQUNUSU9OX01BUktFUiA9IFN5bWJvbCgpLAogIEFDVElPTl9OQU1FID0gU3ltYm9sKCk7CmZ1bmN0aW9uIG1lcmdlUmVhY3RpdmVPYmplY3RzKGUsIHQpIHsKICBlIGluc3RhbmNlb2YgTWFwICYmIHQgaW5zdGFuY2VvZiBNYXAKICAgID8gdC5mb3JFYWNoKChyLCBuKSA9PiBlLnNldChuLCByKSkKICAgIDogZSBpbnN0YW5jZW9mIFNldCAmJiB0IGluc3RhbmNlb2YgU2V0ICYmIHQuZm9yRWFjaChlLmFkZCwgZSk7CiAgZm9yIChjb25zdCByIGluIHQpIHsKICAgIGlmICghdC5oYXNPd25Qcm9wZXJ0eShyKSkgY29udGludWU7CiAgICBjb25zdCBuID0gdFtyXSwKICAgICAgaSA9IGVbcl07CiAgICBpc1BsYWluT2JqZWN0JDIoaSkgJiYKICAgICAgaXNQbGFpbk9iamVjdCQyKG4pICYmCiAgICAgIGUuaGFzT3duUHJvcGVydHkocikgJiYKICAgICAgIWlzUmVmKG4pICYmCiAgICAgICFpc1JlYWN0aXZlKG4pCiAgICAgID8gKGVbcl0gPSBtZXJnZVJlYWN0aXZlT2JqZWN0cyhpLCBuKSkKICAgICAgOiAoZVtyXSA9IG4pOwogIH0KICByZXR1cm4gZTsKfQpjb25zdCBza2lwSHlkcmF0ZVN5bWJvbCA9IFN5bWJvbCgpOwpmdW5jdGlvbiBzaG91bGRIeWRyYXRlKGUpIHsKICByZXR1cm4gIWlzUGxhaW5PYmplY3QkMihlKSB8fCAhZS5oYXNPd25Qcm9wZXJ0eShza2lwSHlkcmF0ZVN5bWJvbCk7Cn0KY29uc3QgeyBhc3NpZ246IGFzc2lnbiQyIH0gPSBPYmplY3Q7CmZ1bmN0aW9uIGlzQ29tcHV0ZWQoZSkgewogIHJldHVybiAhIShpc1JlZihlKSAmJiBlLmVmZmVjdCk7Cn0KZnVuY3Rpb24gY3JlYXRlT3B0aW9uc1N0b3JlKGUsIHQsIHIsIG4pIHsKICBjb25zdCB7IHN0YXRlOiBpLCBhY3Rpb25zOiBhLCBnZXR0ZXJzOiBvIH0gPSB0LAogICAgbCA9IHIuc3RhdGUudmFsdWVbZV07CiAgbGV0IGM7CiAgZnVuY3Rpb24gdSgpIHsKICAgIGwgfHwgKHIuc3RhdGUudmFsdWVbZV0gPSBpID8gaSgpIDoge30pOwogICAgY29uc3QgZCA9IHRvUmVmcyhyLnN0YXRlLnZhbHVlW2VdKTsKICAgIHJldHVybiBhc3NpZ24kMigKICAgICAgZCwKICAgICAgYSwKICAgICAgT2JqZWN0LmtleXMobyB8fCB7fSkucmVkdWNlKAogICAgICAgIChFLCBiKSA9PiAoCiAgICAgICAgICAoRVtiXSA9IG1hcmtSYXcoCiAgICAgICAgICAgIGNvbXB1dGVkKCgpID0+IHsKICAgICAgICAgICAgICBzZXRBY3RpdmVQaW5pYShyKTsKICAgICAgICAgICAgICBjb25zdCBQID0gci5fcy5nZXQoZSk7CiAgICAgICAgICAgICAgcmV0dXJuIG9bYl0uY2FsbChQLCBQKTsKICAgICAgICAgICAgfSkKICAgICAgICAgICkpLAogICAgICAgICAgRQogICAgICAgICksCiAgICAgICAge30KICAgICAgKQogICAgKTsKICB9CiAgcmV0dXJuIChjID0gY3JlYXRlU2V0dXBTdG9yZShlLCB1LCB0LCByLCBuLCAhMCkpLCBjOwp9CmZ1bmN0aW9uIGNyZWF0ZVNldHVwU3RvcmUoZSwgdCwgciA9IHt9LCBuLCBpLCBhKSB7CiAgbGV0IG87CiAgY29uc3QgbCA9IGFzc2lnbiQyKHsgYWN0aW9uczoge30gfSwgciksCiAgICBjID0geyBkZWVwOiAhMCB9OwogIGxldCB1LAogICAgZCwKICAgIEUgPSBbXSwKICAgIGIgPSBbXSwKICAgIFA7CiAgY29uc3QgUiA9IG4uc3RhdGUudmFsdWVbZV07CiAgIWEgJiYgIVIgJiYgKG4uc3RhdGUudmFsdWVbZV0gPSB7fSksIHJlZih7fSk7CiAgbGV0IFQ7CiAgZnVuY3Rpb24gTShIKSB7CiAgICBsZXQgJDsKICAgICh1ID0gZCA9ICExKSwKICAgICAgdHlwZW9mIEggPT0gImZ1bmN0aW9uIgogICAgICAgID8gKEgobi5zdGF0ZS52YWx1ZVtlXSksCiAgICAgICAgICAoJCA9IHsgdHlwZTogTXV0YXRpb25UeXBlLnBhdGNoRnVuY3Rpb24sIHN0b3JlSWQ6IGUsIGV2ZW50czogUCB9KSkKICAgICAgICA6IChtZXJnZVJlYWN0aXZlT2JqZWN0cyhuLnN0YXRlLnZhbHVlW2VdLCBIKSwKICAgICAgICAgICgkID0gewogICAgICAgICAgICB0eXBlOiBNdXRhdGlvblR5cGUucGF0Y2hPYmplY3QsCiAgICAgICAgICAgIHBheWxvYWQ6IEgsCiAgICAgICAgICAgIHN0b3JlSWQ6IGUsCiAgICAgICAgICAgIGV2ZW50czogUCwKICAgICAgICAgIH0pKTsKICAgIGNvbnN0IHEgPSAoVCA9IFN5bWJvbCgpKTsKICAgIG5leHRUaWNrKCkudGhlbigoKSA9PiB7CiAgICAgIFQgPT09IHEgJiYgKHUgPSAhMCk7CiAgICB9KSwKICAgICAgKGQgPSAhMCksCiAgICAgIHRyaWdnZXJTdWJzY3JpcHRpb25zKEUsICQsIG4uc3RhdGUudmFsdWVbZV0pOwogIH0KICBjb25zdCB4ID0gYQogICAgPyBmdW5jdGlvbiAoKSB7CiAgICAgIGNvbnN0IHsgc3RhdGU6ICQgfSA9IHIsCiAgICAgICAgcSA9ICQgPyAkKCkgOiB7fTsKICAgICAgdGhpcy4kcGF0Y2goKEopID0+IHsKICAgICAgICBhc3NpZ24kMihKLCBxKTsKICAgICAgfSk7CiAgICB9CiAgICA6IG5vb3AkMTsKICBmdW5jdGlvbiBrKCkgewogICAgby5zdG9wKCksIChFID0gW10pLCAoYiA9IFtdKSwgbi5fcy5kZWxldGUoZSk7CiAgfQogIGNvbnN0IFMgPSAoSCwgJCA9ICIiKSA9PiB7CiAgICBpZiAoQUNUSU9OX01BUktFUiBpbiBIKSByZXR1cm4gKEhbQUNUSU9OX05BTUVdID0gJCksIEg7CiAgICBjb25zdCBxID0gZnVuY3Rpb24gKCkgewogICAgICBzZXRBY3RpdmVQaW5pYShuKTsKICAgICAgY29uc3QgSiA9IEFycmF5LmZyb20oYXJndW1lbnRzKSwKICAgICAgICBLID0gW10sCiAgICAgICAgZWUgPSBbXTsKICAgICAgZnVuY3Rpb24gbGUoeikgewogICAgICAgIEsucHVzaCh6KTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZSh6KSB7CiAgICAgICAgZWUucHVzaCh6KTsKICAgICAgfQogICAgICB0cmlnZ2VyU3Vic2NyaXB0aW9ucyhiLCB7CiAgICAgICAgYXJnczogSiwKICAgICAgICBuYW1lOiBxW0FDVElPTl9OQU1FXSwKICAgICAgICBzdG9yZTogTywKICAgICAgICBhZnRlcjogbGUsCiAgICAgICAgb25FcnJvcjogcmUsCiAgICAgIH0pOwogICAgICBsZXQgQjsKICAgICAgdHJ5IHsKICAgICAgICBCID0gSC5hcHBseSh0aGlzICYmIHRoaXMuJGlkID09PSBlID8gdGhpcyA6IE8sIEopOwogICAgICB9IGNhdGNoICh6KSB7CiAgICAgICAgdGhyb3cgKHRyaWdnZXJTdWJzY3JpcHRpb25zKGVlLCB6KSwgeik7CiAgICAgIH0KICAgICAgcmV0dXJuIEIgaW5zdGFuY2VvZiBQcm9taXNlCiAgICAgICAgPyBCLnRoZW4oKHopID0+ICh0cmlnZ2VyU3Vic2NyaXB0aW9ucyhLLCB6KSwgeikpLmNhdGNoKAogICAgICAgICAgKHopID0+ICh0cmlnZ2VyU3Vic2NyaXB0aW9ucyhlZSwgeiksIFByb21pc2UucmVqZWN0KHopKQogICAgICAgICkKICAgICAgICA6ICh0cmlnZ2VyU3Vic2NyaXB0aW9ucyhLLCBCKSwgQik7CiAgICB9OwogICAgcmV0dXJuIChxW0FDVElPTl9NQVJLRVJdID0gITApLCAocVtBQ1RJT05fTkFNRV0gPSAkKSwgcTsKICB9LAogICAgQSA9IHsKICAgICAgX3A6IG4sCiAgICAgICRpZDogZSwKICAgICAgJG9uQWN0aW9uOiBhZGRTdWJzY3JpcHRpb24uYmluZChudWxsLCBiKSwKICAgICAgJHBhdGNoOiBNLAogICAgICAkcmVzZXQ6IHgsCiAgICAgICRzdWJzY3JpYmUoSCwgJCA9IHt9KSB7CiAgICAgICAgY29uc3QgcSA9IGFkZFN1YnNjcmlwdGlvbihFLCBILCAkLmRldGFjaGVkLCAoKSA9PiBKKCkpLAogICAgICAgICAgSiA9IG8ucnVuKCgpID0+CiAgICAgICAgICAgIHdhdGNoKAogICAgICAgICAgICAgICgpID0+IG4uc3RhdGUudmFsdWVbZV0sCiAgICAgICAgICAgICAgKEspID0+IHsKICAgICAgICAgICAgICAgICgkLmZsdXNoID09PSAic3luYyIgPyBkIDogdSkgJiYKICAgICAgICAgICAgICAgICAgSCh7IHN0b3JlSWQ6IGUsIHR5cGU6IE11dGF0aW9uVHlwZS5kaXJlY3QsIGV2ZW50czogUCB9LCBLKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGFzc2lnbiQyKHt9LCBjLCAkKQogICAgICAgICAgICApCiAgICAgICAgICApOwogICAgICAgIHJldHVybiBxOwogICAgICB9LAogICAgICAkZGlzcG9zZTogaywKICAgIH0sCiAgICBPID0gcmVhY3RpdmUoQSk7CiAgbi5fcy5zZXQoZSwgTyk7CiAgY29uc3QgRCA9ICgobi5fYSAmJiBuLl9hLnJ1bldpdGhDb250ZXh0KSB8fCBmYWxsYmFja1J1bldpdGhDb250ZXh0KSgoKSA9PgogICAgbi5fZS5ydW4oKCkgPT4gKG8gPSBlZmZlY3RTY29wZSgpKS5ydW4oKCkgPT4gdCh7IGFjdGlvbjogUyB9KSkpCiAgKTsKICBmb3IgKGNvbnN0IEggaW4gRCkgewogICAgY29uc3QgJCA9IERbSF07CiAgICBpZiAoKGlzUmVmKCQpICYmICFpc0NvbXB1dGVkKCQpKSB8fCBpc1JlYWN0aXZlKCQpKQogICAgICBhIHx8CiAgICAgICAgKFIgJiYKICAgICAgICAgIHNob3VsZEh5ZHJhdGUoJCkgJiYKICAgICAgICAgIChpc1JlZigkKSA/ICgkLnZhbHVlID0gUltIXSkgOiBtZXJnZVJlYWN0aXZlT2JqZWN0cygkLCBSW0hdKSksCiAgICAgICAgICAobi5zdGF0ZS52YWx1ZVtlXVtIXSA9ICQpKTsKICAgIGVsc2UgaWYgKHR5cGVvZiAkID09ICJmdW5jdGlvbiIpIHsKICAgICAgY29uc3QgcSA9IFMoJCwgSCk7CiAgICAgIChEW0hdID0gcSksIChsLmFjdGlvbnNbSF0gPSAkKTsKICAgIH0KICB9CiAgcmV0dXJuICgKICAgIGFzc2lnbiQyKE8sIEQpLAogICAgYXNzaWduJDIodG9SYXcoTyksIEQpLAogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sICIkc3RhdGUiLCB7CiAgICAgIGdldDogKCkgPT4gbi5zdGF0ZS52YWx1ZVtlXSwKICAgICAgc2V0OiAoSCkgPT4gewogICAgICAgIE0oKCQpID0+IHsKICAgICAgICAgIGFzc2lnbiQyKCQsIEgpOwogICAgICAgIH0pOwogICAgICB9LAogICAgfSksCiAgICBuLl9wLmZvckVhY2goKEgpID0+IHsKICAgICAgYXNzaWduJDIoCiAgICAgICAgTywKICAgICAgICBvLnJ1bigoKSA9PiBIKHsgc3RvcmU6IE8sIGFwcDogbi5fYSwgcGluaWE6IG4sIG9wdGlvbnM6IGwgfSkpCiAgICAgICk7CiAgICB9KSwKICAgIFIgJiYgYSAmJiByLmh5ZHJhdGUgJiYgci5oeWRyYXRlKE8uJHN0YXRlLCBSKSwKICAgICh1ID0gITApLAogICAgKGQgPSAhMCksCiAgICBPCiAgKTsKfQovKiEgI19fTk9fU0lERV9FRkZFQ1RTX18gKi8gZnVuY3Rpb24gZGVmaW5lU3RvcmUoZSwgdCwgcikgewogIGxldCBuLCBpOwogIGNvbnN0IGEgPSB0eXBlb2YgdCA9PSAiZnVuY3Rpb24iOwogIHR5cGVvZiBlID09ICJzdHJpbmciID8gKChuID0gZSksIChpID0gYSA/IHIgOiB0KSkgOiAoKGkgPSBlKSwgKG4gPSBlLmlkKSk7CiAgZnVuY3Rpb24gbyhsLCBjKSB7CiAgICBjb25zdCB1ID0gaGFzSW5qZWN0aW9uQ29udGV4dCgpOwogICAgcmV0dXJuICgKICAgICAgKGwgPSBsIHx8ICh1ID8gaW5qZWN0JDEocGluaWFTeW1ib2wsIG51bGwpIDogbnVsbCkpLAogICAgICBsICYmIHNldEFjdGl2ZVBpbmlhKGwpLAogICAgICAobCA9IGFjdGl2ZVBpbmlhKSwKICAgICAgbC5fcy5oYXMobikgfHwKICAgICAgKGEgPyBjcmVhdGVTZXR1cFN0b3JlKG4sIHQsIGksIGwpIDogY3JlYXRlT3B0aW9uc1N0b3JlKG4sIGksIGwpKSwKICAgICAgbC5fcy5nZXQobikKICAgICk7CiAgfQogIHJldHVybiAoby4kaWQgPSBuKSwgbzsKfQpmdW5jdGlvbiBkZWNvZGU2NChlKSB7CiAgY29uc3QgdCA9IGFzY2lpVG9CaW5hcnkoZSksCiAgICByID0gbmV3IEFycmF5QnVmZmVyKHQubGVuZ3RoKSwKICAgIG4gPSBuZXcgRGF0YVZpZXcocik7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCByLmJ5dGVMZW5ndGg7IGkrKykgbi5zZXRVaW50OChpLCB0LmNoYXJDb2RlQXQoaSkpOwogIHJldHVybiByOwp9CmNvbnN0IEtFWV9TVFJJTkcgPQogICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIjsKZnVuY3Rpb24gYXNjaWlUb0JpbmFyeShlKSB7CiAgZS5sZW5ndGggJSA0ID09PSAwICYmIChlID0gZS5yZXBsYWNlKC89PT8kLywgIiIpKTsKICBsZXQgdCA9ICIiLAogICAgciA9IDAsCiAgICBuID0gMDsKICBmb3IgKGxldCBpID0gMDsgaSA8IGUubGVuZ3RoOyBpKyspCiAgICAociA8PD0gNiksCiAgICAgIChyIHw9IEtFWV9TVFJJTkcuaW5kZXhPZihlW2ldKSksCiAgICAgIChuICs9IDYpLAogICAgICBuID09PSAyNCAmJgogICAgICAoKHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgociAmIDE2NzExNjgwKSA+PiAxNikpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKHIgJiA2NTI4MCkgPj4gOCkpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUociAmIDI1NSkpLAogICAgICAgIChyID0gbiA9IDApKTsKICByZXR1cm4gKAogICAgbiA9PT0gMTIKICAgICAgPyAoKHIgPj49IDQpLCAodCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHIpKSkKICAgICAgOiBuID09PSAxOCAmJgogICAgICAoKHIgPj49IDIpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKHIgJiA2NTI4MCkgPj4gOCkpLAogICAgICAgICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUociAmIDI1NSkpKSwKICAgIHQKICApOwp9CmNvbnN0IFVOREVGSU5FRCA9IC0xLAogIEhPTEUgPSAtMiwKICBOQU4gPSAtMywKICBQT1NJVElWRV9JTkZJTklUWSA9IC00LAogIE5FR0FUSVZFX0lORklOSVRZID0gLTUsCiAgTkVHQVRJVkVfWkVSTyA9IC02OwpmdW5jdGlvbiBwYXJzZSQxKGUsIHQpIHsKICByZXR1cm4gdW5mbGF0dGVuKEpTT04ucGFyc2UoZSksIHQpOwp9CmZ1bmN0aW9uIHVuZmxhdHRlbihlLCB0KSB7CiAgaWYgKHR5cGVvZiBlID09ICJudW1iZXIiKSByZXR1cm4gaShlLCAhMCk7CiAgaWYgKCFBcnJheS5pc0FycmF5KGUpIHx8IGUubGVuZ3RoID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTsKICBjb25zdCByID0gZSwKICAgIG4gPSBBcnJheShyLmxlbmd0aCk7CiAgZnVuY3Rpb24gaShhLCBvID0gITEpIHsKICAgIGlmIChhID09PSBVTkRFRklORUQpIHJldHVybjsKICAgIGlmIChhID09PSBOQU4pIHJldHVybiBOYU47CiAgICBpZiAoYSA9PT0gUE9TSVRJVkVfSU5GSU5JVFkpIHJldHVybiAxIC8gMDsKICAgIGlmIChhID09PSBORUdBVElWRV9JTkZJTklUWSkgcmV0dXJuIC0xIC8gMDsKICAgIGlmIChhID09PSBORUdBVElWRV9aRVJPKSByZXR1cm4gLTA7CiAgICBpZiAobykgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGlucHV0Iik7CiAgICBpZiAoYSBpbiBuKSByZXR1cm4gblthXTsKICAgIGNvbnN0IGwgPSByW2FdOwogICAgaWYgKCFsIHx8IHR5cGVvZiBsICE9ICJvYmplY3QiKSBuW2FdID0gbDsKICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobCkpCiAgICAgIGlmICh0eXBlb2YgbFswXSA9PSAic3RyaW5nIikgewogICAgICAgIGNvbnN0IGMgPSBsWzBdLAogICAgICAgICAgdSA9IHQgPT0gbnVsbCA/IHZvaWQgMCA6IHRbY107CiAgICAgICAgaWYgKHUpIHJldHVybiAoblthXSA9IHUoaShsWzFdKSkpOwogICAgICAgIHN3aXRjaCAoYykgewogICAgICAgICAgY2FzZSAiRGF0ZSI6CiAgICAgICAgICAgIG5bYV0gPSBuZXcgRGF0ZShsWzFdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJTZXQiOgogICAgICAgICAgICBjb25zdCBkID0gbmV3IFNldCgpOwogICAgICAgICAgICBuW2FdID0gZDsKICAgICAgICAgICAgZm9yIChsZXQgUCA9IDE7IFAgPCBsLmxlbmd0aDsgUCArPSAxKSBkLmFkZChpKGxbUF0pKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJNYXAiOgogICAgICAgICAgICBjb25zdCBFID0gbmV3IE1hcCgpOwogICAgICAgICAgICBuW2FdID0gRTsKICAgICAgICAgICAgZm9yIChsZXQgUCA9IDE7IFAgPCBsLmxlbmd0aDsgUCArPSAyKSBFLnNldChpKGxbUF0pLCBpKGxbUCArIDFdKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiUmVnRXhwIjoKICAgICAgICAgICAgblthXSA9IG5ldyBSZWdFeHAobFsxXSwgbFsyXSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiT2JqZWN0IjoKICAgICAgICAgICAgblthXSA9IE9iamVjdChsWzFdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJCaWdJbnQiOgogICAgICAgICAgICBuW2FdID0gQmlnSW50KGxbMV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIm51bGwiOgogICAgICAgICAgICBjb25zdCBiID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgICAgICAgICAgblthXSA9IGI7CiAgICAgICAgICAgIGZvciAobGV0IFAgPSAxOyBQIDwgbC5sZW5ndGg7IFAgKz0gMikgYltsW1BdXSA9IGkobFtQICsgMV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkludDhBcnJheSI6CiAgICAgICAgICBjYXNlICJVaW50OEFycmF5IjoKICAgICAgICAgIGNhc2UgIlVpbnQ4Q2xhbXBlZEFycmF5IjoKICAgICAgICAgIGNhc2UgIkludDE2QXJyYXkiOgogICAgICAgICAgY2FzZSAiVWludDE2QXJyYXkiOgogICAgICAgICAgY2FzZSAiSW50MzJBcnJheSI6CiAgICAgICAgICBjYXNlICJVaW50MzJBcnJheSI6CiAgICAgICAgICBjYXNlICJGbG9hdDMyQXJyYXkiOgogICAgICAgICAgY2FzZSAiRmxvYXQ2NEFycmF5IjoKICAgICAgICAgIGNhc2UgIkJpZ0ludDY0QXJyYXkiOgogICAgICAgICAgY2FzZSAiQmlnVWludDY0QXJyYXkiOiB7CiAgICAgICAgICAgIGNvbnN0IFAgPSBnbG9iYWxUaGlzW2NdLAogICAgICAgICAgICAgIFIgPSBsWzFdLAogICAgICAgICAgICAgIFQgPSBkZWNvZGU2NChSKSwKICAgICAgICAgICAgICBNID0gbmV3IFAoVCk7CiAgICAgICAgICAgIG5bYV0gPSBNOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGNhc2UgIkFycmF5QnVmZmVyIjogewogICAgICAgICAgICBjb25zdCBQID0gbFsxXSwKICAgICAgICAgICAgICBSID0gZGVjb2RlNjQoUCk7CiAgICAgICAgICAgIG5bYV0gPSBSOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0eXBlICR7Y31gKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgYyA9IG5ldyBBcnJheShsLmxlbmd0aCk7CiAgICAgICAgblthXSA9IGM7CiAgICAgICAgZm9yIChsZXQgdSA9IDA7IHUgPCBsLmxlbmd0aDsgdSArPSAxKSB7CiAgICAgICAgICBjb25zdCBkID0gbFt1XTsKICAgICAgICAgIGQgIT09IEhPTEUgJiYgKGNbdV0gPSBpKGQpKTsKICAgICAgICB9CiAgICAgIH0KICAgIGVsc2UgewogICAgICBjb25zdCBjID0ge307CiAgICAgIG5bYV0gPSBjOwogICAgICBmb3IgKGNvbnN0IHUgaW4gbCkgewogICAgICAgIGNvbnN0IGQgPSBsW3VdOwogICAgICAgIGNbdV0gPSBpKGQpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gblthXTsKICB9CiAgcmV0dXJuIGkoMCk7Cn0KY29uc3QgVGFnc1dpdGhJbm5lckNvbnRlbnQgPSBuZXcgU2V0KFsKICAidGl0bGUiLAogICJ0aXRsZVRlbXBsYXRlIiwKICAic2NyaXB0IiwKICAic3R5bGUiLAogICJub3NjcmlwdCIsCl0pLAogIEhhc0VsZW1lbnRUYWdzID0gbmV3IFNldChbCiAgICAiYmFzZSIsCiAgICAibWV0YSIsCiAgICAibGluayIsCiAgICAic3R5bGUiLAogICAgInNjcmlwdCIsCiAgICAibm9zY3JpcHQiLAogIF0pLAogIFZhbGlkSGVhZFRhZ3MgPSBuZXcgU2V0KFsKICAgICJ0aXRsZSIsCiAgICAidGl0bGVUZW1wbGF0ZSIsCiAgICAidGVtcGxhdGVQYXJhbXMiLAogICAgImJhc2UiLAogICAgImh0bWxBdHRycyIsCiAgICAiYm9keUF0dHJzIiwKICAgICJtZXRhIiwKICAgICJsaW5rIiwKICAgICJzdHlsZSIsCiAgICAic2NyaXB0IiwKICAgICJub3NjcmlwdCIsCiAgXSksCiAgVW5pcXVlVGFncyA9IG5ldyBTZXQoWwogICAgImJhc2UiLAogICAgInRpdGxlIiwKICAgICJ0aXRsZVRlbXBsYXRlIiwKICAgICJib2R5QXR0cnMiLAogICAgImh0bWxBdHRycyIsCiAgICAidGVtcGxhdGVQYXJhbXMiLAogIF0pLAogIFRhZ0NvbmZpZ0tleXMgPSBuZXcgU2V0KFsKICAgICJ0YWdQb3NpdGlvbiIsCiAgICAidGFnUHJpb3JpdHkiLAogICAgInRhZ0R1cGxpY2F0ZVN0cmF0ZWd5IiwKICAgICJjaGlsZHJlbiIsCiAgICAiaW5uZXJIVE1MIiwKICAgICJ0ZXh0Q29udGVudCIsCiAgICAicHJvY2Vzc1RlbXBsYXRlUGFyYW1zIiwKICBdKSwKICBJc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93IDwgInUiOwpmdW5jdGlvbiBkZWZpbmVIZWFkUGx1Z2luKGUpIHsKICByZXR1cm4gZTsKfQpmdW5jdGlvbiBoYXNoQ29kZShlKSB7CiAgbGV0IHQgPSA5OwogIGZvciAobGV0IHIgPSAwOyByIDwgZS5sZW5ndGg7KSB0ID0gTWF0aC5pbXVsKHQgXiBlLmNoYXJDb2RlQXQocisrKSwgOSAqKiA5KTsKICByZXR1cm4gKCh0IF4gKHQgPj4+IDkpKSArIDY1NTM2KS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEsIDgpLnRvTG93ZXJDYXNlKCk7Cn0KZnVuY3Rpb24gaGFzaFRhZyhlKSB7CiAgaWYgKGUuX2gpIHJldHVybiBlLl9oOwogIGlmIChlLl9kKSByZXR1cm4gaGFzaENvZGUoZS5fZCk7CiAgbGV0IHQgPSBgJHtlLnRhZ306JHtlLnRleHRDb250ZW50IHx8IGUuaW5uZXJIVE1MIHx8ICIifTpgOwogIGZvciAoY29uc3QgciBpbiBlLnByb3BzKSB0ICs9IGAke3J9OiR7U3RyaW5nKGUucHJvcHNbcl0pfSxgOwogIHJldHVybiBoYXNoQ29kZSh0KTsKfQpmdW5jdGlvbiB0aGVuYWJsZShlLCB0KSB7CiAgcmV0dXJuIGUgaW5zdGFuY2VvZiBQcm9taXNlID8gZS50aGVuKHQpIDogdChlKTsKfQpmdW5jdGlvbiBub3JtYWxpc2VUYWcoZSwgdCwgciwgbikgewogIGNvbnN0IGkgPQogICAgbiB8fAogICAgbm9ybWFsaXNlUHJvcHMoCiAgICAgIHR5cGVvZiB0ID09ICJvYmplY3QiICYmIHR5cGVvZiB0ICE9ICJmdW5jdGlvbiIgJiYgISh0IGluc3RhbmNlb2YgUHJvbWlzZSkKICAgICAgICA/IHsgLi4udCB9CiAgICAgICAgOiB7CiAgICAgICAgICBbZSA9PT0gInNjcmlwdCIgfHwgZSA9PT0gIm5vc2NyaXB0IiB8fCBlID09PSAic3R5bGUiCiAgICAgICAgICAgID8gImlubmVySFRNTCIKICAgICAgICAgICAgOiAidGV4dENvbnRlbnQiXTogdCwKICAgICAgICB9LAogICAgICBlID09PSAidGVtcGxhdGVQYXJhbXMiIHx8IGUgPT09ICJ0aXRsZVRlbXBsYXRlIgogICAgKTsKICBpZiAoaSBpbnN0YW5jZW9mIFByb21pc2UpIHJldHVybiBpLnRoZW4oKG8pID0+IG5vcm1hbGlzZVRhZyhlLCB0LCByLCBvKSk7CiAgY29uc3QgYSA9IHsgdGFnOiBlLCBwcm9wczogaSB9OwogIGZvciAoY29uc3QgbyBvZiBUYWdDb25maWdLZXlzKSB7CiAgICBjb25zdCBsID0gYS5wcm9wc1tvXSAhPT0gdm9pZCAwID8gYS5wcm9wc1tvXSA6IHJbb107CiAgICBsICE9PSB2b2lkIDAgJiYKICAgICAgKCghKG8gPT09ICJpbm5lckhUTUwiIHx8IG8gPT09ICJ0ZXh0Q29udGVudCIgfHwgbyA9PT0gImNoaWxkcmVuIikgfHwKICAgICAgICBUYWdzV2l0aElubmVyQ29udGVudC5oYXMoYS50YWcpKSAmJgogICAgICAgIChhW28gPT09ICJjaGlsZHJlbiIgPyAiaW5uZXJIVE1MIiA6IG9dID0gbCksCiAgICAgICAgZGVsZXRlIGEucHJvcHNbb10pOwogIH0KICByZXR1cm4gKAogICAgYS5wcm9wcy5ib2R5ICYmICgoYS50YWdQb3NpdGlvbiA9ICJib2R5Q2xvc2UiKSwgZGVsZXRlIGEucHJvcHMuYm9keSksCiAgICBhLnRhZyA9PT0gInNjcmlwdCIgJiYKICAgIHR5cGVvZiBhLmlubmVySFRNTCA9PSAib2JqZWN0IiAmJgogICAgKChhLmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGEuaW5uZXJIVE1MKSksCiAgICAgIChhLnByb3BzLnR5cGUgPSBhLnByb3BzLnR5cGUgfHwgImFwcGxpY2F0aW9uL2pzb24iKSksCiAgICBBcnJheS5pc0FycmF5KGEucHJvcHMuY29udGVudCkKICAgICAgPyBhLnByb3BzLmNvbnRlbnQubWFwKChvKSA9PiAoewogICAgICAgIC4uLmEsCiAgICAgICAgcHJvcHM6IHsgLi4uYS5wcm9wcywgY29udGVudDogbyB9LAogICAgICB9KSkKICAgICAgOiBhCiAgKTsKfQpmdW5jdGlvbiBub3JtYWxpc2VTdHlsZUNsYXNzUHJvcHMoZSwgdCkgewogIHZhciBuOwogIGNvbnN0IHIgPSBlID09PSAiY2xhc3MiID8gIiAiIDogIjsiOwogIHJldHVybiAoCiAgICB0ICYmCiAgICB0eXBlb2YgdCA9PSAib2JqZWN0IiAmJgogICAgIUFycmF5LmlzQXJyYXkodCkgJiYKICAgICh0ID0gT2JqZWN0LmVudHJpZXModCkKICAgICAgLmZpbHRlcigoWywgaV0pID0+IGkpCiAgICAgIC5tYXAoKFtpLCBhXSkgPT4gKGUgPT09ICJzdHlsZSIgPyBgJHtpfToke2F9YCA6IGkpKSksCiAgICAobiA9IFN0cmluZyhBcnJheS5pc0FycmF5KHQpID8gdC5qb2luKHIpIDogdCkpID09IG51bGwKICAgICAgPyB2b2lkIDAKICAgICAgOiBuCiAgICAgICAgLnNwbGl0KHIpCiAgICAgICAgLmZpbHRlcigoaSkgPT4gISFpLnRyaW0oKSkKICAgICAgICAuam9pbihyKQogICk7Cn0KZnVuY3Rpb24gbmVzdGVkTm9ybWFsaXNlUHJvcHMoZSwgdCwgciwgbikgewogIGZvciAobGV0IGkgPSBuOyBpIDwgci5sZW5ndGg7IGkgKz0gMSkgewogICAgY29uc3QgYSA9IHJbaV07CiAgICBpZiAoYSA9PT0gImNsYXNzIiB8fCBhID09PSAic3R5bGUiKSB7CiAgICAgIGVbYV0gPSBub3JtYWxpc2VTdHlsZUNsYXNzUHJvcHMoYSwgZVthXSk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgaWYgKGVbYV0gaW5zdGFuY2VvZiBQcm9taXNlKQogICAgICByZXR1cm4gZVthXS50aGVuKChvKSA9PiAoKGVbYV0gPSBvKSwgbmVzdGVkTm9ybWFsaXNlUHJvcHMoZSwgdCwgciwgaSkpKTsKICAgIGlmICghdCAmJiAhVGFnQ29uZmlnS2V5cy5oYXMoYSkpIHsKICAgICAgY29uc3QgbyA9IFN0cmluZyhlW2FdKSwKICAgICAgICBsID0gYS5zdGFydHNXaXRoKCJkYXRhLSIpOwogICAgICBvID09PSAidHJ1ZSIgfHwgbyA9PT0gIiIKICAgICAgICA/IChlW2FdID0gbCA/ICJ0cnVlIiA6ICEwKQogICAgICAgIDogZVthXSB8fCAobCAmJiBvID09PSAiZmFsc2UiID8gKGVbYV0gPSAiZmFsc2UiKSA6IGRlbGV0ZSBlW2FdKTsKICAgIH0KICB9Cn0KZnVuY3Rpb24gbm9ybWFsaXNlUHJvcHMoZSwgdCA9ICExKSB7CiAgY29uc3QgciA9IG5lc3RlZE5vcm1hbGlzZVByb3BzKGUsIHQsIE9iamVjdC5rZXlzKGUpLCAwKTsKICByZXR1cm4gciBpbnN0YW5jZW9mIFByb21pc2UgPyByLnRoZW4oKCkgPT4gZSkgOiBlOwp9CmNvbnN0IFRhZ0VudGl0eUJpdHMgPSAxMDsKZnVuY3Rpb24gbmVzdGVkTm9ybWFsaXNlRW50cnlUYWdzKGUsIHQsIHIpIHsKICBmb3IgKGxldCBuID0gcjsgbiA8IHQubGVuZ3RoOyBuICs9IDEpIHsKICAgIGNvbnN0IGkgPSB0W25dOwogICAgaWYgKGkgaW5zdGFuY2VvZiBQcm9taXNlKQogICAgICByZXR1cm4gaS50aGVuKChhKSA9PiAoKHRbbl0gPSBhKSwgbmVzdGVkTm9ybWFsaXNlRW50cnlUYWdzKGUsIHQsIG4pKSk7CiAgICBBcnJheS5pc0FycmF5KGkpID8gZS5wdXNoKC4uLmkpIDogZS5wdXNoKGkpOwogIH0KfQpmdW5jdGlvbiBub3JtYWxpc2VFbnRyeVRhZ3MoZSkgewogIGNvbnN0IHQgPSBbXSwKICAgIHIgPSBlLnJlc29sdmVkSW5wdXQ7CiAgZm9yIChjb25zdCBpIGluIHIpIHsKICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIGkpKSBjb250aW51ZTsKICAgIGNvbnN0IGEgPSByW2ldOwogICAgaWYgKCEoYSA9PT0gdm9pZCAwIHx8ICFWYWxpZEhlYWRUYWdzLmhhcyhpKSkpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHsKICAgICAgICBmb3IgKGNvbnN0IG8gb2YgYSkgdC5wdXNoKG5vcm1hbGlzZVRhZyhpLCBvLCBlKSk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgdC5wdXNoKG5vcm1hbGlzZVRhZyhpLCBhLCBlKSk7CiAgICB9CiAgfQogIGlmICh0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdOwogIGNvbnN0IG4gPSBbXTsKICByZXR1cm4gdGhlbmFibGUobmVzdGVkTm9ybWFsaXNlRW50cnlUYWdzKG4sIHQsIDApLCAoKSA9PgogICAgbi5tYXAoCiAgICAgIChpLCBhKSA9PiAoCiAgICAgICAgKGkuX2UgPSBlLl9pKSwKICAgICAgICBlLm1vZGUgJiYgKGkuX20gPSBlLm1vZGUpLAogICAgICAgIChpLl9wID0gKGUuX2kgPDwgVGFnRW50aXR5Qml0cykgKyBhKSwKICAgICAgICBpCiAgICAgICkKICAgICkKICApOwp9CmNvbnN0IE5ldHdvcmtFdmVudHMgPSBuZXcgU2V0KFsKICAib25sb2FkIiwKICAib25lcnJvciIsCiAgIm9uYWJvcnQiLAogICJvbnByb2dyZXNzIiwKICAib25sb2Fkc3RhcnQiLApdKSwKICBUQUdfV0VJR0hUUyA9IHsgYmFzZTogLTEwLCB0aXRsZTogMTAgfSwKICBUQUdfQUxJQVNFUyA9IHsgY3JpdGljYWw6IC04MCwgaGlnaDogLTEwLCBsb3c6IDIwIH07CmZ1bmN0aW9uIHRhZ1dlaWdodChlKSB7CiAgY29uc3QgdCA9IGUudGFnUHJpb3JpdHk7CiAgaWYgKHR5cGVvZiB0ID09ICJudW1iZXIiKSByZXR1cm4gdDsKICBsZXQgciA9IDEwMDsKICByZXR1cm4gKAogICAgZS50YWcgPT09ICJtZXRhIgogICAgICA/IGUucHJvcHNbImh0dHAtZXF1aXYiXSA9PT0gImNvbnRlbnQtc2VjdXJpdHktcG9saWN5IgogICAgICAgID8gKHIgPSAtMzApCiAgICAgICAgOiBlLnByb3BzLmNoYXJzZXQKICAgICAgICAgID8gKHIgPSAtMjApCiAgICAgICAgICA6IGUucHJvcHMubmFtZSA9PT0gInZpZXdwb3J0IiAmJiAociA9IC0xNSkKICAgICAgOiBlLnRhZyA9PT0gImxpbmsiICYmIGUucHJvcHMucmVsID09PSAicHJlY29ubmVjdCIKICAgICAgICA/IChyID0gMjApCiAgICAgICAgOiBlLnRhZyBpbiBUQUdfV0VJR0hUUyAmJiAociA9IFRBR19XRUlHSFRTW2UudGFnXSksCiAgICB0ICYmIHQgaW4gVEFHX0FMSUFTRVMgPyByICsgVEFHX0FMSUFTRVNbdF0gOiByCiAgKTsKfQpjb25zdCBTb3J0TW9kaWZpZXJzID0gWwogIHsgcHJlZml4OiAiYmVmb3JlOiIsIG9mZnNldDogLTEgfSwKICB7IHByZWZpeDogImFmdGVyOiIsIG9mZnNldDogMSB9LApdLAogIGFsbG93ZWRNZXRhUHJvcGVydGllcyA9IFsibmFtZSIsICJwcm9wZXJ0eSIsICJodHRwLWVxdWl2Il07CmZ1bmN0aW9uIHRhZ0RlZHVwZUtleShlKSB7CiAgY29uc3QgeyBwcm9wczogdCwgdGFnOiByIH0gPSBlOwogIGlmIChVbmlxdWVUYWdzLmhhcyhyKSkgcmV0dXJuIHI7CiAgaWYgKHIgPT09ICJsaW5rIiAmJiB0LnJlbCA9PT0gImNhbm9uaWNhbCIpIHJldHVybiAiY2Fub25pY2FsIjsKICBpZiAodC5jaGFyc2V0KSByZXR1cm4gImNoYXJzZXQiOwogIGlmICh0LmlkKSByZXR1cm4gYCR7cn06aWQ6JHt0LmlkfWA7CiAgZm9yIChjb25zdCBuIG9mIGFsbG93ZWRNZXRhUHJvcGVydGllcykKICAgIGlmICh0W25dICE9PSB2b2lkIDApIHJldHVybiBgJHtyfToke259OiR7dFtuXX1gOwogIHJldHVybiAhMTsKfQpjb25zdCBzZXBTdWIgPSAiJXNlcGFyYXRvciI7CmZ1bmN0aW9uIHN1YihlLCB0LCByID0gITEpIHsKICB2YXIgaTsKICBsZXQgbjsKICBpZiAodCA9PT0gInMiIHx8IHQgPT09ICJwYWdlVGl0bGUiKSBuID0gZS5wYWdlVGl0bGU7CiAgZWxzZSBpZiAodC5pbmNsdWRlcygiLiIpKSB7CiAgICBjb25zdCBhID0gdC5pbmRleE9mKCIuIik7CiAgICBuID0gKGkgPSBlW3Quc3Vic3RyaW5nKDAsIGEpXSkgPT0gbnVsbCA/IHZvaWQgMCA6IGlbdC5zdWJzdHJpbmcoYSArIDEpXTsKICB9IGVsc2UgbiA9IGVbdF07CiAgaWYgKG4gIT09IHZvaWQgMCkgcmV0dXJuIHIgPyAobiB8fCAiIikucmVwbGFjZSgvIi9nLCAnXFwiJykgOiBuIHx8ICIiOwp9CmNvbnN0IHNlcFN1YlJlID0gbmV3IFJlZ0V4cChgJHtzZXBTdWJ9KD86XFxzKiR7c2VwU3VifSkqYCwgImciKTsKZnVuY3Rpb24gcHJvY2Vzc1RlbXBsYXRlUGFyYW1zKGUsIHQsIHIsIG4gPSAhMSkgewogIGlmICh0eXBlb2YgZSAhPSAic3RyaW5nIiB8fCAhZS5pbmNsdWRlcygiJSIpKSByZXR1cm4gZTsKICBsZXQgaSA9IGU7CiAgdHJ5IHsKICAgIGkgPSBkZWNvZGVVUkkoZSk7CiAgfSBjYXRjaCB7IH0KICBjb25zdCBhID0gaS5tYXRjaCgvJVx3Kyg/OlwuXHcrKT8vZyk7CiAgaWYgKCFhKSByZXR1cm4gZTsKICBjb25zdCBvID0gZS5pbmNsdWRlcyhzZXBTdWIpOwogIHJldHVybiAoCiAgICAoZSA9IGUKICAgICAgLnJlcGxhY2UoLyVcdysoPzpcLlx3Kyk/L2csIChsKSA9PiB7CiAgICAgICAgaWYgKGwgPT09IHNlcFN1YiB8fCAhYS5pbmNsdWRlcyhsKSkgcmV0dXJuIGw7CiAgICAgICAgY29uc3QgYyA9IHN1Yih0LCBsLnNsaWNlKDEpLCBuKTsKICAgICAgICByZXR1cm4gYyAhPT0gdm9pZCAwID8gYyA6IGw7CiAgICAgIH0pCiAgICAgIC50cmltKCkpLAogICAgbyAmJgogICAgKGUuZW5kc1dpdGgoc2VwU3ViKSAmJiAoZSA9IGUuc2xpY2UoMCwgLXNlcFN1Yi5sZW5ndGgpKSwKICAgICAgZS5zdGFydHNXaXRoKHNlcFN1YikgJiYgKGUgPSBlLnNsaWNlKHNlcFN1Yi5sZW5ndGgpKSwKICAgICAgKGUgPSBlLnJlcGxhY2Uoc2VwU3ViUmUsIHIpLnRyaW0oKSkpLAogICAgZQogICk7Cn0KZnVuY3Rpb24gcmVzb2x2ZVRpdGxlVGVtcGxhdGUoZSwgdCkgewogIHJldHVybiBlID09IG51bGwgPyB0IHx8IG51bGwgOiB0eXBlb2YgZSA9PSAiZnVuY3Rpb24iID8gZSh0KSA6IGU7Cn0KYXN5bmMgZnVuY3Rpb24gcmVuZGVyRE9NSGVhZChlLCB0ID0ge30pIHsKICBjb25zdCByID0gdC5kb2N1bWVudCB8fCBlLnJlc29sdmVkT3B0aW9ucy5kb2N1bWVudDsKICBpZiAoIXIgfHwgIWUuZGlydHkpIHJldHVybjsKICBjb25zdCBuID0geyBzaG91bGRSZW5kZXI6ICEwLCB0YWdzOiBbXSB9OwogIGlmICgoYXdhaXQgZS5ob29rcy5jYWxsSG9vaygiZG9tOmJlZm9yZVJlbmRlciIsIG4pLCAhIW4uc2hvdWxkUmVuZGVyKSkKICAgIHJldHVybiAoCiAgICAgIGUuX2RvbVVwZGF0ZVByb21pc2UgfHwKICAgICAgKGUuX2RvbVVwZGF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShhc3luYyAoaSkgPT4gewogICAgICAgIHZhciBFOwogICAgICAgIGNvbnN0IGEgPSAoYXdhaXQgZS5yZXNvbHZlVGFncygpKS5tYXAoKGIpID0+ICh7CiAgICAgICAgICB0YWc6IGIsCiAgICAgICAgICBpZDogSGFzRWxlbWVudFRhZ3MuaGFzKGIudGFnKSA/IGhhc2hUYWcoYikgOiBiLnRhZywKICAgICAgICAgIHNob3VsZFJlbmRlcjogITAsCiAgICAgICAgfSkpOwogICAgICAgIGxldCBvID0gZS5fZG9tOwogICAgICAgIGlmICghbykgewogICAgICAgICAgbyA9IHsgZWxNYXA6IHsgaHRtbEF0dHJzOiByLmRvY3VtZW50RWxlbWVudCwgYm9keUF0dHJzOiByLmJvZHkgfSB9OwogICAgICAgICAgY29uc3QgYiA9IG5ldyBTZXQoKTsKICAgICAgICAgIGZvciAoY29uc3QgUCBvZiBbImJvZHkiLCAiaGVhZCJdKSB7CiAgICAgICAgICAgIGNvbnN0IFIgPSAoRSA9IHJbUF0pID09IG51bGwgPyB2b2lkIDAgOiBFLmNoaWxkcmVuOwogICAgICAgICAgICBmb3IgKGNvbnN0IFQgb2YgUikgewogICAgICAgICAgICAgIGNvbnN0IE0gPSBULnRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICBpZiAoIUhhc0VsZW1lbnRUYWdzLmhhcyhNKSkgY29udGludWU7CiAgICAgICAgICAgICAgY29uc3QgeCA9IHsKICAgICAgICAgICAgICAgIHRhZzogTSwKICAgICAgICAgICAgICAgIHByb3BzOiBhd2FpdCBub3JtYWxpc2VQcm9wcygKICAgICAgICAgICAgICAgICAgVC5nZXRBdHRyaWJ1dGVOYW1lcygpLnJlZHVjZSgKICAgICAgICAgICAgICAgICAgICAoTywgRikgPT4gKHsgLi4uTywgW0ZdOiBULmdldEF0dHJpYnV0ZShGKSB9KSwKICAgICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgaW5uZXJIVE1MOiBULmlubmVySFRNTCwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgayA9IHRhZ0RlZHVwZUtleSh4KTsKICAgICAgICAgICAgICBsZXQgUyA9IGssCiAgICAgICAgICAgICAgICBBID0gMTsKICAgICAgICAgICAgICBmb3IgKDsgUyAmJiBiLmhhcyhTKTspIFMgPSBgJHtrfToke0ErK31gOwogICAgICAgICAgICAgIFMgJiYgKCh4Ll9kID0gUyksIGIuYWRkKFMpKSwKICAgICAgICAgICAgICAgIChvLmVsTWFwW1QuZ2V0QXR0cmlidXRlKCJkYXRhLWhpZCIpIHx8IGhhc2hUYWcoeCldID0gVCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgKG8ucGVuZGluZ1NpZGVFZmZlY3RzID0geyAuLi5vLnNpZGVFZmZlY3RzIH0pLCAoby5zaWRlRWZmZWN0cyA9IHt9KTsKICAgICAgICBmdW5jdGlvbiBsKGIsIFAsIFIpIHsKICAgICAgICAgIGNvbnN0IFQgPSBgJHtifToke1B9YDsKICAgICAgICAgIChvLnNpZGVFZmZlY3RzW1RdID0gUiksIGRlbGV0ZSBvLnBlbmRpbmdTaWRlRWZmZWN0c1tUXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYyh7IGlkOiBiLCAkZWw6IFAsIHRhZzogUiB9KSB7CiAgICAgICAgICBjb25zdCBUID0gUi50YWcuZW5kc1dpdGgoIkF0dHJzIik7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICgoby5lbE1hcFtiXSA9IFApLAogICAgICAgICAgICAgIFQgfHwKICAgICAgICAgICAgICAoUi50ZXh0Q29udGVudCAmJgogICAgICAgICAgICAgICAgUi50ZXh0Q29udGVudCAhPT0gUC50ZXh0Q29udGVudCAmJgogICAgICAgICAgICAgICAgKFAudGV4dENvbnRlbnQgPSBSLnRleHRDb250ZW50KSwKICAgICAgICAgICAgICAgIFIuaW5uZXJIVE1MICYmCiAgICAgICAgICAgICAgICBSLmlubmVySFRNTCAhPT0gUC5pbm5lckhUTUwgJiYKICAgICAgICAgICAgICAgIChQLmlubmVySFRNTCA9IFIuaW5uZXJIVE1MKSwKICAgICAgICAgICAgICAgIGwoYiwgImVsIiwgKCkgPT4gewogICAgICAgICAgICAgICAgICB2YXIgTTsKICAgICAgICAgICAgICAgICAgKE0gPSBvLmVsTWFwW2JdKSA9PSBudWxsIHx8IE0ucmVtb3ZlKCksIGRlbGV0ZSBvLmVsTWFwW2JdOwogICAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgICAgIFIuX2V2ZW50SGFuZGxlcnMpCiAgICAgICAgICApCiAgICAgICAgICAgIGZvciAoY29uc3QgTSBpbiBSLl9ldmVudEhhbmRsZXJzKQogICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSLl9ldmVudEhhbmRsZXJzLCBNKSAmJgogICAgICAgICAgICAgICAgUC5nZXRBdHRyaWJ1dGUoYGRhdGEtJHtNfWApICE9PSAiIiAmJgogICAgICAgICAgICAgICAgKChSLnRhZyA9PT0gImJvZHlBdHRycyIgPyByLmRlZmF1bHRWaWV3IDogUCkuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgICAgICAgTS5zdWJzdHJpbmcoMiksCiAgICAgICAgICAgICAgICAgIFIuX2V2ZW50SGFuZGxlcnNbTV0uYmluZChQKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgUC5zZXRBdHRyaWJ1dGUoYGRhdGEtJHtNfWAsICIiKSk7CiAgICAgICAgICBmb3IgKGNvbnN0IE0gaW4gUi5wcm9wcykgewogICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSLnByb3BzLCBNKSkgY29udGludWU7CiAgICAgICAgICAgIGNvbnN0IHggPSBSLnByb3BzW01dLAogICAgICAgICAgICAgIGsgPSBgYXR0cjoke019YDsKICAgICAgICAgICAgaWYgKE0gPT09ICJjbGFzcyIpIHsKICAgICAgICAgICAgICBpZiAoIXgpIGNvbnRpbnVlOwogICAgICAgICAgICAgIGZvciAoY29uc3QgUyBvZiB4LnNwbGl0KCIgIikpCiAgICAgICAgICAgICAgICBUICYmIGwoYiwgYCR7a306JHtTfWAsICgpID0+IFAuY2xhc3NMaXN0LnJlbW92ZShTKSksCiAgICAgICAgICAgICAgICAgICFQLmNsYXNzTGlzdC5jb250YWlucyhTKSAmJiBQLmNsYXNzTGlzdC5hZGQoUyk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoTSA9PT0gInN0eWxlIikgewogICAgICAgICAgICAgIGlmICgheCkgY29udGludWU7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBTIG9mIHguc3BsaXQoIjsiKSkgewogICAgICAgICAgICAgICAgY29uc3QgQSA9IFMuaW5kZXhPZigiOiIpLAogICAgICAgICAgICAgICAgICBPID0gUy5zdWJzdHJpbmcoMCwgQSkudHJpbSgpLAogICAgICAgICAgICAgICAgICBGID0gUy5zdWJzdHJpbmcoQSArIDEpLnRyaW0oKTsKICAgICAgICAgICAgICAgIGwoYiwgYCR7a306JHtPfWAsICgpID0+IHsKICAgICAgICAgICAgICAgICAgUC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShPKTsKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBQLnN0eWxlLnNldFByb3BlcnR5KE8sIEYpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgUC5nZXRBdHRyaWJ1dGUoTSkgIT09IHggJiYKICAgICAgICAgICAgICAgIFAuc2V0QXR0cmlidXRlKE0sIHggPT09ICEwID8gIiIgOiBTdHJpbmcoeCkpLAogICAgICAgICAgICAgICAgVCAmJiBsKGIsIGssICgpID0+IFAucmVtb3ZlQXR0cmlidXRlKE0pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgdSA9IFtdLAogICAgICAgICAgZCA9IHsgYm9keUNsb3NlOiB2b2lkIDAsIGJvZHlPcGVuOiB2b2lkIDAsIGhlYWQ6IHZvaWQgMCB9OwogICAgICAgIGZvciAoY29uc3QgYiBvZiBhKSB7CiAgICAgICAgICBjb25zdCB7IHRhZzogUCwgc2hvdWxkUmVuZGVyOiBSLCBpZDogVCB9ID0gYjsKICAgICAgICAgIGlmIChSKSB7CiAgICAgICAgICAgIGlmIChQLnRhZyA9PT0gInRpdGxlIikgewogICAgICAgICAgICAgIHIudGl0bGUgPSBQLnRleHRDb250ZW50OwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChiLiRlbCA9IGIuJGVsIHx8IG8uZWxNYXBbVF0pLAogICAgICAgICAgICAgIGIuJGVsID8gYyhiKSA6IEhhc0VsZW1lbnRUYWdzLmhhcyhQLnRhZykgJiYgdS5wdXNoKGIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGNvbnN0IGIgb2YgdSkgewogICAgICAgICAgY29uc3QgUCA9IGIudGFnLnRhZ1Bvc2l0aW9uIHx8ICJoZWFkIjsKICAgICAgICAgIChiLiRlbCA9IHIuY3JlYXRlRWxlbWVudChiLnRhZy50YWcpKSwKICAgICAgICAgICAgYyhiKSwKICAgICAgICAgICAgKGRbUF0gPSBkW1BdIHx8IHIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKSwKICAgICAgICAgICAgZFtQXS5hcHBlbmRDaGlsZChiLiRlbCk7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgYiBvZiBhKSBhd2FpdCBlLmhvb2tzLmNhbGxIb29rKCJkb206cmVuZGVyVGFnIiwgYiwgciwgbCk7CiAgICAgICAgZC5oZWFkICYmIHIuaGVhZC5hcHBlbmRDaGlsZChkLmhlYWQpLAogICAgICAgICAgZC5ib2R5T3BlbiAmJiByLmJvZHkuaW5zZXJ0QmVmb3JlKGQuYm9keU9wZW4sIHIuYm9keS5maXJzdENoaWxkKSwKICAgICAgICAgIGQuYm9keUNsb3NlICYmIHIuYm9keS5hcHBlbmRDaGlsZChkLmJvZHlDbG9zZSk7CiAgICAgICAgZm9yIChjb25zdCBiIGluIG8ucGVuZGluZ1NpZGVFZmZlY3RzKSBvLnBlbmRpbmdTaWRlRWZmZWN0c1tiXSgpOwogICAgICAgIChlLl9kb20gPSBvKSwKICAgICAgICAgIGF3YWl0IGUuaG9va3MuY2FsbEhvb2soImRvbTpyZW5kZXJlZCIsIHsgcmVuZGVyczogYSB9KSwKICAgICAgICAgIGkoKTsKICAgICAgfSkuZmluYWxseSgoKSA9PiB7CiAgICAgICAgKGUuX2RvbVVwZGF0ZVByb21pc2UgPSB2b2lkIDApLCAoZS5kaXJ0eSA9ICExKTsKICAgICAgfSkpLAogICAgICBlLl9kb21VcGRhdGVQcm9taXNlCiAgICApOwp9CmZ1bmN0aW9uIGRlYm91bmNlZFJlbmRlckRPTUhlYWQoZSwgdCA9IHt9KSB7CiAgY29uc3QgciA9IHQuZGVsYXlGbiB8fCAoKG4pID0+IHNldFRpbWVvdXQobiwgMTApKTsKICByZXR1cm4gKGUuX2RvbURlYm91bmNlZFVwZGF0ZVByb21pc2UgPQogICAgZS5fZG9tRGVib3VuY2VkVXBkYXRlUHJvbWlzZSB8fAogICAgbmV3IFByb21pc2UoKG4pID0+CiAgICAgIHIoKCkgPT4KICAgICAgICByZW5kZXJET01IZWFkKGUsIHQpLnRoZW4oKCkgPT4gewogICAgICAgICAgZGVsZXRlIGUuX2RvbURlYm91bmNlZFVwZGF0ZVByb21pc2UsIG4oKTsKICAgICAgICB9KQogICAgICApCiAgICApKTsKfQpmdW5jdGlvbiBEb21QbHVnaW4oZSkgewogIHJldHVybiAodCkgPT4gewogICAgdmFyIG4sIGk7CiAgICBjb25zdCByID0KICAgICAgKChpID0KICAgICAgICAobiA9IHQucmVzb2x2ZWRPcHRpb25zLmRvY3VtZW50KSA9PSBudWxsCiAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgOiBuLmhlYWQucXVlcnlTZWxlY3Rvcignc2NyaXB0W2lkPSJ1bmhlYWQ6cGF5bG9hZCJdJykpID09IG51bGwKICAgICAgICA/IHZvaWQgMAogICAgICAgIDogaS5pbm5lckhUTUwpIHx8ICExOwogICAgcmV0dXJuICgKICAgICAgciAmJiB0LnB1c2goSlNPTi5wYXJzZShyKSksCiAgICAgIHsKICAgICAgICBtb2RlOiAiY2xpZW50IiwKICAgICAgICBob29rczogewogICAgICAgICAgImVudHJpZXM6dXBkYXRlZCI6IChhKSA9PiB7CiAgICAgICAgICAgIGRlYm91bmNlZFJlbmRlckRPTUhlYWQoYSwgZSk7CiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgfTsKfQpjb25zdCBVc2VzTWVyZ2VTdHJhdGVneSA9IG5ldyBTZXQoWyJ0ZW1wbGF0ZVBhcmFtcyIsICJodG1sQXR0cnMiLCAiYm9keUF0dHJzIl0pLAogIERlZHVwZVBsdWdpbiA9IHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWc6bm9ybWFsaXNlIjogKHsgdGFnOiBlIH0pID0+IHsKICAgICAgICBlLnByb3BzLmhpZCAmJiAoKGUua2V5ID0gZS5wcm9wcy5oaWQpLCBkZWxldGUgZS5wcm9wcy5oaWQpLAogICAgICAgICAgZS5wcm9wcy52bWlkICYmICgoZS5rZXkgPSBlLnByb3BzLnZtaWQpLCBkZWxldGUgZS5wcm9wcy52bWlkKSwKICAgICAgICAgIGUucHJvcHMua2V5ICYmICgoZS5rZXkgPSBlLnByb3BzLmtleSksIGRlbGV0ZSBlLnByb3BzLmtleSk7CiAgICAgICAgY29uc3QgdCA9IHRhZ0RlZHVwZUtleShlKTsKICAgICAgICB0ICYmCiAgICAgICAgICAhdC5zdGFydHNXaXRoKCJtZXRhOm9nOiIpICYmCiAgICAgICAgICAhdC5zdGFydHNXaXRoKCJtZXRhOnR3aXR0ZXI6IikgJiYKICAgICAgICAgIGRlbGV0ZSBlLmtleTsKICAgICAgICBjb25zdCByID0gdCB8fCAoZS5rZXkgPyBgJHtlLnRhZ306JHtlLmtleX1gIDogITEpOwogICAgICAgIHIgJiYgKGUuX2QgPSByKTsKICAgICAgfSwKICAgICAgInRhZ3M6cmVzb2x2ZSI6IChlKSA9PiB7CiAgICAgICAgY29uc3QgdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgZm9yIChjb25zdCBuIG9mIGUudGFncykgewogICAgICAgICAgY29uc3QgaSA9IChuLmtleSA/IGAke24udGFnfToke24ua2V5fWAgOiBuLl9kKSB8fCBoYXNoVGFnKG4pLAogICAgICAgICAgICBhID0gdFtpXTsKICAgICAgICAgIGlmIChhKSB7CiAgICAgICAgICAgIGxldCBsID0gbiA9PSBudWxsID8gdm9pZCAwIDogbi50YWdEdXBsaWNhdGVTdHJhdGVneTsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICghbCAmJiBVc2VzTWVyZ2VTdHJhdGVneS5oYXMobi50YWcpICYmIChsID0gIm1lcmdlIiksCiAgICAgICAgICAgICAgICBsID09PSAibWVyZ2UiKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBjb25zdCBjID0gYS5wcm9wczsKICAgICAgICAgICAgICBjLnN0eWxlICYmCiAgICAgICAgICAgICAgICBuLnByb3BzLnN0eWxlICYmCiAgICAgICAgICAgICAgICAoYy5zdHlsZVtjLnN0eWxlLmxlbmd0aCAtIDFdICE9PSAiOyIgJiYgKGMuc3R5bGUgKz0gIjsiKSwKICAgICAgICAgICAgICAgICAgKG4ucHJvcHMuc3R5bGUgPSBgJHtjLnN0eWxlfSAke24ucHJvcHMuc3R5bGV9YCkpLAogICAgICAgICAgICAgICAgYy5jbGFzcyAmJiBuLnByb3BzLmNsYXNzCiAgICAgICAgICAgICAgICAgID8gKG4ucHJvcHMuY2xhc3MgPSBgJHtjLmNsYXNzfSAke24ucHJvcHMuY2xhc3N9YCkKICAgICAgICAgICAgICAgICAgOiBjLmNsYXNzICYmIChuLnByb3BzLmNsYXNzID0gYy5jbGFzcyksCiAgICAgICAgICAgICAgICAodFtpXS5wcm9wcyA9IHsgLi4uYywgLi4ubi5wcm9wcyB9KTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChuLl9lID09PSBhLl9lKSB7CiAgICAgICAgICAgICAgKGEuX2R1cGVkID0gYS5fZHVwZWQgfHwgW10pLAogICAgICAgICAgICAgICAgKG4uX2QgPSBgJHthLl9kfToke2EuX2R1cGVkLmxlbmd0aCArIDF9YCksCiAgICAgICAgICAgICAgICBhLl9kdXBlZC5wdXNoKG4pOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ1dlaWdodChuKSA+IHRhZ1dlaWdodChhKSkgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICEoCiAgICAgICAgICAgICAgbi5pbm5lckhUTUwgfHwKICAgICAgICAgICAgICBuLnRleHRDb250ZW50IHx8CiAgICAgICAgICAgICAgT2JqZWN0LmtleXMobi5wcm9wcykubGVuZ3RoICE9PSAwCiAgICAgICAgICAgICkgJiYKICAgICAgICAgICAgSGFzRWxlbWVudFRhZ3MuaGFzKG4udGFnKQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGRlbGV0ZSB0W2ldOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHRbaV0gPSBuOwogICAgICAgIH0KICAgICAgICBjb25zdCByID0gW107CiAgICAgICAgZm9yIChjb25zdCBuIGluIHQpIHsKICAgICAgICAgIGNvbnN0IGkgPSB0W25dLAogICAgICAgICAgICBhID0gaS5fZHVwZWQ7CiAgICAgICAgICByLnB1c2goaSksIGEgJiYgKGRlbGV0ZSBpLl9kdXBlZCwgci5wdXNoKC4uLmEpKTsKICAgICAgICB9CiAgICAgICAgKGUudGFncyA9IHIpLAogICAgICAgICAgKGUudGFncyA9IGUudGFncy5maWx0ZXIoCiAgICAgICAgICAgIChuKSA9PgogICAgICAgICAgICAgICEoCiAgICAgICAgICAgICAgICBuLnRhZyA9PT0gIm1ldGEiICYmCiAgICAgICAgICAgICAgICAobi5wcm9wcy5uYW1lIHx8IG4ucHJvcHMucHJvcGVydHkpICYmCiAgICAgICAgICAgICAgICAhbi5wcm9wcy5jb250ZW50CiAgICAgICAgICAgICAgKQogICAgICAgICAgKSk7CiAgICAgIH0sCiAgICB9LAogIH0sCiAgVmFsaWRFdmVudFRhZ3MgPSBuZXcgU2V0KFsic2NyaXB0IiwgImxpbmsiLCAiYm9keUF0dHJzIl0pLAogIEV2ZW50SGFuZGxlcnNQbHVnaW4gPSAoZSkgPT4gKHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOnJlc29sdmUiOiAodCkgPT4gewogICAgICAgIGZvciAoY29uc3QgciBvZiB0LnRhZ3MpIHsKICAgICAgICAgIGlmICghVmFsaWRFdmVudFRhZ3MuaGFzKHIudGFnKSkgY29udGludWU7CiAgICAgICAgICBjb25zdCBuID0gci5wcm9wczsKICAgICAgICAgIGZvciAoY29uc3QgaSBpbiBuKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICBpWzBdICE9PSAibyIgfHwKICAgICAgICAgICAgICBpWzFdICE9PSAibiIgfHwKICAgICAgICAgICAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sIGkpCiAgICAgICAgICAgICkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgY29uc3QgYSA9IG5baV07CiAgICAgICAgICAgIHR5cGVvZiBhID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAoZS5zc3IgJiYgTmV0d29ya0V2ZW50cy5oYXMoaSkKICAgICAgICAgICAgICAgID8gKG5baV0gPSBgdGhpcy5kYXRhc2V0LiR7aX1maXJlZCA9IHRydWVgKQogICAgICAgICAgICAgICAgOiBkZWxldGUgbltpXSwKICAgICAgICAgICAgICAgIChyLl9ldmVudEhhbmRsZXJzID0gci5fZXZlbnRIYW5kbGVycyB8fCB7fSksCiAgICAgICAgICAgICAgICAoci5fZXZlbnRIYW5kbGVyc1tpXSA9IGEpKTsKICAgICAgICAgIH0KICAgICAgICAgIGUuc3NyICYmCiAgICAgICAgICAgIHIuX2V2ZW50SGFuZGxlcnMgJiYKICAgICAgICAgICAgKHIucHJvcHMuc3JjIHx8IHIucHJvcHMuaHJlZikgJiYKICAgICAgICAgICAgKHIua2V5ID0gci5rZXkgfHwgaGFzaENvZGUoci5wcm9wcy5zcmMgfHwgci5wcm9wcy5ocmVmKSk7CiAgICAgICAgfQogICAgICB9LAogICAgICAiZG9tOnJlbmRlclRhZyI6ICh7ICRlbDogdCwgdGFnOiByIH0pID0+IHsKICAgICAgICB2YXIgaSwgYTsKICAgICAgICBjb25zdCBuID0gdCA9PSBudWxsID8gdm9pZCAwIDogdC5kYXRhc2V0OwogICAgICAgIGlmIChuKQogICAgICAgICAgZm9yIChjb25zdCBvIGluIG4pIHsKICAgICAgICAgICAgaWYgKCFvLmVuZHNXaXRoKCJmaXJlZCIpKSBjb250aW51ZTsKICAgICAgICAgICAgY29uc3QgbCA9IG8uc2xpY2UoMCwgLTUpOwogICAgICAgICAgICBOZXR3b3JrRXZlbnRzLmhhcyhsKSAmJgogICAgICAgICAgICAgICgoYSA9IChpID0gci5fZXZlbnRIYW5kbGVycykgPT0gbnVsbCA/IHZvaWQgMCA6IGlbbF0pID09IG51bGwgfHwKICAgICAgICAgICAgICAgIGEuY2FsbCh0LCBuZXcgRXZlbnQobC5zdWJzdHJpbmcoMikpKSk7CiAgICAgICAgICB9CiAgICAgIH0sCiAgICB9LAogIH0pLAogIER1cGVhYmxlVGFncyA9IG5ldyBTZXQoWyJsaW5rIiwgInN0eWxlIiwgInNjcmlwdCIsICJub3NjcmlwdCJdKSwKICBIYXNoS2V5ZWRQbHVnaW4gPSB7CiAgICBob29rczogewogICAgICAidGFnOm5vcm1hbGlzZSI6ICh7IHRhZzogZSB9KSA9PiB7CiAgICAgICAgZS5rZXkgJiYKICAgICAgICAgIER1cGVhYmxlVGFncy5oYXMoZS50YWcpICYmCiAgICAgICAgICAoZS5wcm9wc1siZGF0YS1oaWQiXSA9IGUuX2ggPSBoYXNoQ29kZShlLmtleSkpOwogICAgICB9LAogICAgfSwKICB9LAogIFBheWxvYWRQbHVnaW4gPSB7CiAgICBtb2RlOiAic2VydmVyIiwKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOmJlZm9yZVJlc29sdmUiOiAoZSkgPT4gewogICAgICAgIGNvbnN0IHQgPSB7fTsKICAgICAgICBsZXQgciA9ICExOwogICAgICAgIGZvciAoY29uc3QgbiBvZiBlLnRhZ3MpCiAgICAgICAgICBuLl9tICE9PSAic2VydmVyIiB8fAogICAgICAgICAgICAobi50YWcgIT09ICJ0aXRsZVRlbXBsYXRlIiAmJgogICAgICAgICAgICAgIG4udGFnICE9PSAidGVtcGxhdGVQYXJhbXMiICYmCiAgICAgICAgICAgICAgbi50YWcgIT09ICJ0aXRsZSIpIHx8CiAgICAgICAgICAgICgodFtuLnRhZ10gPQogICAgICAgICAgICAgIG4udGFnID09PSAidGl0bGUiIHx8IG4udGFnID09PSAidGl0bGVUZW1wbGF0ZSIKICAgICAgICAgICAgICAgID8gbi50ZXh0Q29udGVudAogICAgICAgICAgICAgICAgOiBuLnByb3BzKSwKICAgICAgICAgICAgICAociA9ICEwKSk7CiAgICAgICAgciAmJgogICAgICAgICAgZS50YWdzLnB1c2goewogICAgICAgICAgICB0YWc6ICJzY3JpcHQiLAogICAgICAgICAgICBpbm5lckhUTUw6IEpTT04uc3RyaW5naWZ5KHQpLAogICAgICAgICAgICBwcm9wczogeyBpZDogInVuaGVhZDpwYXlsb2FkIiwgdHlwZTogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICAgICAgICB9KTsKICAgICAgfSwKICAgIH0sCiAgfSwKICBTb3J0UGx1Z2luID0gewogICAgaG9va3M6IHsKICAgICAgInRhZ3M6cmVzb2x2ZSI6IChlKSA9PiB7CiAgICAgICAgdmFyIHQ7CiAgICAgICAgZm9yIChjb25zdCByIG9mIGUudGFncykKICAgICAgICAgIGlmICh0eXBlb2Ygci50YWdQcmlvcml0eSA9PSAic3RyaW5nIikKICAgICAgICAgICAgZm9yIChjb25zdCB7IHByZWZpeDogbiwgb2Zmc2V0OiBpIH0gb2YgU29ydE1vZGlmaWVycykgewogICAgICAgICAgICAgIGlmICghci50YWdQcmlvcml0eS5zdGFydHNXaXRoKG4pKSBjb250aW51ZTsKICAgICAgICAgICAgICBjb25zdCBhID0gci50YWdQcmlvcml0eS5zdWJzdHJpbmcobi5sZW5ndGgpLAogICAgICAgICAgICAgICAgbyA9CiAgICAgICAgICAgICAgICAgICh0ID0gZS50YWdzLmZpbmQoKGwpID0+IGwuX2QgPT09IGEpKSA9PSBudWxsID8gdm9pZCAwIDogdC5fcDsKICAgICAgICAgICAgICBpZiAobyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICByLl9wID0gbyArIGk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBlLnRhZ3Muc29ydCgociwgbikgPT4gewogICAgICAgICAgY29uc3QgaSA9IHRhZ1dlaWdodChyKSwKICAgICAgICAgICAgYSA9IHRhZ1dlaWdodChuKTsKICAgICAgICAgIHJldHVybiBpIDwgYSA/IC0xIDogaSA+IGEgPyAxIDogci5fcCAtIG4uX3A7CiAgICAgICAgfSk7CiAgICAgIH0sCiAgICB9LAogIH0sCiAgU3VwcG9ydGVkQXR0cnMgPSB7IG1ldGE6ICJjb250ZW50IiwgbGluazogImhyZWYiLCBodG1sQXR0cnM6ICJsYW5nIiB9LAogIGNvbnRlbnRBdHRycyA9IFsiaW5uZXJIVE1MIiwgInRleHRDb250ZW50Il0sCiAgVGVtcGxhdGVQYXJhbXNQbHVnaW4gPSAoZSkgPT4gKHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOnJlc29sdmUiOiAodCkgPT4gewogICAgICAgIHZhciBvOwogICAgICAgIGNvbnN0IHsgdGFnczogciB9ID0gdDsKICAgICAgICBsZXQgbjsKICAgICAgICBmb3IgKGxldCBsID0gMDsgbCA8IHIubGVuZ3RoOyBsICs9IDEpCiAgICAgICAgICByW2xdLnRhZyA9PT0gInRlbXBsYXRlUGFyYW1zIiAmJgogICAgICAgICAgICAoKG4gPSB0LnRhZ3Muc3BsaWNlKGwsIDEpWzBdLnByb3BzKSwgKGwgLT0gMSkpOwogICAgICAgIGNvbnN0IGkgPSBuIHx8IHt9LAogICAgICAgICAgYSA9IGkuc2VwYXJhdG9yIHx8ICJ8IjsKICAgICAgICBkZWxldGUgaS5zZXBhcmF0b3IsCiAgICAgICAgICAoaS5wYWdlVGl0bGUgPSBwcm9jZXNzVGVtcGxhdGVQYXJhbXMoCiAgICAgICAgICAgIGkucGFnZVRpdGxlIHx8CiAgICAgICAgICAgICgobyA9IHIuZmluZCgobCkgPT4gbC50YWcgPT09ICJ0aXRsZSIpKSA9PSBudWxsCiAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICA6IG8udGV4dENvbnRlbnQpIHx8CiAgICAgICAgICAgICIiLAogICAgICAgICAgICBpLAogICAgICAgICAgICBhCiAgICAgICAgICApKTsKICAgICAgICBmb3IgKGNvbnN0IGwgb2YgcikgewogICAgICAgICAgaWYgKGwucHJvY2Vzc1RlbXBsYXRlUGFyYW1zID09PSAhMSkgY29udGludWU7CiAgICAgICAgICBjb25zdCBjID0gU3VwcG9ydGVkQXR0cnNbbC50YWddOwogICAgICAgICAgaWYgKGMgJiYgdHlwZW9mIGwucHJvcHNbY10gPT0gInN0cmluZyIpCiAgICAgICAgICAgIGwucHJvcHNbY10gPSBwcm9jZXNzVGVtcGxhdGVQYXJhbXMobC5wcm9wc1tjXSwgaSwgYSk7CiAgICAgICAgICBlbHNlIGlmICgKICAgICAgICAgICAgbC5wcm9jZXNzVGVtcGxhdGVQYXJhbXMgfHwKICAgICAgICAgICAgbC50YWcgPT09ICJ0aXRsZVRlbXBsYXRlIiB8fAogICAgICAgICAgICBsLnRhZyA9PT0gInRpdGxlIgogICAgICAgICAgKQogICAgICAgICAgICBmb3IgKGNvbnN0IHUgb2YgY29udGVudEF0dHJzKQogICAgICAgICAgICAgIHR5cGVvZiBsW3VdID09ICJzdHJpbmciICYmCiAgICAgICAgICAgICAgICAobFt1XSA9IHByb2Nlc3NUZW1wbGF0ZVBhcmFtcygKICAgICAgICAgICAgICAgICAgbFt1XSwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbC50YWcgPT09ICJzY3JpcHQiICYmIGwucHJvcHMudHlwZS5lbmRzV2l0aCgianNvbiIpCiAgICAgICAgICAgICAgICApKTsKICAgICAgICB9CiAgICAgICAgKGUuX3RlbXBsYXRlUGFyYW1zID0gaSksIChlLl9zZXBhcmF0b3IgPSBhKTsKICAgICAgfSwKICAgICAgInRhZ3M6YWZ0ZXJSZXNvbHZlIjogKHsgdGFnczogdCB9KSA9PiB7CiAgICAgICAgbGV0IHI7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCB0Lmxlbmd0aDsgbiArPSAxKSB7CiAgICAgICAgICBjb25zdCBpID0gdFtuXTsKICAgICAgICAgIGkudGFnID09PSAidGl0bGUiICYmIGkucHJvY2Vzc1RlbXBsYXRlUGFyYW1zICE9PSAhMSAmJiAociA9IGkpOwogICAgICAgIH0KICAgICAgICByICE9IG51bGwgJiYKICAgICAgICAgIHIudGV4dENvbnRlbnQgJiYKICAgICAgICAgIChyLnRleHRDb250ZW50ID0gcHJvY2Vzc1RlbXBsYXRlUGFyYW1zKAogICAgICAgICAgICByLnRleHRDb250ZW50LAogICAgICAgICAgICBlLl90ZW1wbGF0ZVBhcmFtcywKICAgICAgICAgICAgZS5fc2VwYXJhdG9yCiAgICAgICAgICApKTsKICAgICAgfSwKICAgIH0sCiAgfSksCiAgVGl0bGVUZW1wbGF0ZVBsdWdpbiA9IHsKICAgIGhvb2tzOiB7CiAgICAgICJ0YWdzOnJlc29sdmUiOiAoZSkgPT4gewogICAgICAgIGNvbnN0IHsgdGFnczogdCB9ID0gZTsKICAgICAgICBsZXQgciwgbjsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHQubGVuZ3RoOyBpICs9IDEpIHsKICAgICAgICAgIGNvbnN0IGEgPSB0W2ldOwogICAgICAgICAgYS50YWcgPT09ICJ0aXRsZSIgPyAociA9IGEpIDogYS50YWcgPT09ICJ0aXRsZVRlbXBsYXRlIiAmJiAobiA9IGEpOwogICAgICAgIH0KICAgICAgICBpZiAobiAmJiByKSB7CiAgICAgICAgICBjb25zdCBpID0gcmVzb2x2ZVRpdGxlVGVtcGxhdGUobi50ZXh0Q29udGVudCwgci50ZXh0Q29udGVudCk7CiAgICAgICAgICBpICE9PSBudWxsCiAgICAgICAgICAgID8gKHIudGV4dENvbnRlbnQgPSBpIHx8IHIudGV4dENvbnRlbnQpCiAgICAgICAgICAgIDogZS50YWdzLnNwbGljZShlLnRhZ3MuaW5kZXhPZihyKSwgMSk7CiAgICAgICAgfSBlbHNlIGlmIChuKSB7CiAgICAgICAgICBjb25zdCBpID0gcmVzb2x2ZVRpdGxlVGVtcGxhdGUobi50ZXh0Q29udGVudCk7CiAgICAgICAgICBpICE9PSBudWxsICYmICgobi50ZXh0Q29udGVudCA9IGkpLCAobi50YWcgPSAidGl0bGUiKSwgKG4gPSB2b2lkIDApKTsKICAgICAgICB9CiAgICAgICAgbiAmJiBlLnRhZ3Muc3BsaWNlKGUudGFncy5pbmRleE9mKG4pLCAxKTsKICAgICAgfSwKICAgIH0sCiAgfSwKICBYU1NQbHVnaW4gPSB7CiAgICBob29rczogewogICAgICAidGFnczphZnRlclJlc29sdmUiOiAoZSkgPT4gewogICAgICAgIGZvciAoY29uc3QgdCBvZiBlLnRhZ3MpCiAgICAgICAgICB0eXBlb2YgdC5pbm5lckhUTUwgPT0gInN0cmluZyIgJiYKICAgICAgICAgICAgKHQuaW5uZXJIVE1MICYmCiAgICAgICAgICAgICAgKHQucHJvcHMudHlwZSA9PT0gImFwcGxpY2F0aW9uL2xkK2pzb24iIHx8CiAgICAgICAgICAgICAgICB0LnByb3BzLnR5cGUgPT09ICJhcHBsaWNhdGlvbi9qc29uIikKICAgICAgICAgICAgICA/ICh0LmlubmVySFRNTCA9IHQuaW5uZXJIVE1MLnJlcGxhY2UoLzwvZywgIlxcdTAwM0MiKSkKICAgICAgICAgICAgICA6ICh0LmlubmVySFRNTCA9IHQuaW5uZXJIVE1MLnJlcGxhY2UoCiAgICAgICAgICAgICAgICBuZXcgUmVnRXhwKGA8LyR7dC50YWd9YCwgImciKSwKICAgICAgICAgICAgICAgIGA8XFwvJHt0LnRhZ31gCiAgICAgICAgICAgICAgKSkpOwogICAgICB9LAogICAgfSwKICB9OwpsZXQgYWN0aXZlSGVhZDsKZnVuY3Rpb24gY3JlYXRlSGVhZCQxKGUgPSB7fSkgewogIGNvbnN0IHQgPSBjcmVhdGVIZWFkQ29yZShlKTsKICByZXR1cm4gdC51c2UoRG9tUGx1Z2luKCkpLCAoYWN0aXZlSGVhZCA9IHQpOwp9CmZ1bmN0aW9uIGZpbHRlck1vZGUoZSwgdCkgewogIHJldHVybiAhZSB8fCAoZSA9PT0gInNlcnZlciIgJiYgdCkgfHwgKGUgPT09ICJjbGllbnQiICYmICF0KTsKfQpmdW5jdGlvbiBjcmVhdGVIZWFkQ29yZShlID0ge30pIHsKICBjb25zdCB0ID0gY3JlYXRlSG9va3MoKTsKICB0LmFkZEhvb2tzKGUuaG9va3MgfHwge30pLAogICAgKGUuZG9jdW1lbnQgPSBlLmRvY3VtZW50IHx8IChJc0Jyb3dzZXIgPyBkb2N1bWVudCA6IHZvaWQgMCkpOwogIGNvbnN0IHIgPSAhZS5kb2N1bWVudCwKICAgIG4gPSAoKSA9PiB7CiAgICAgIChsLmRpcnR5ID0gITApLCB0LmNhbGxIb29rKCJlbnRyaWVzOnVwZGF0ZWQiLCBsKTsKICAgIH07CiAgbGV0IGkgPSAwLAogICAgYSA9IFtdOwogIGNvbnN0IG8gPSBbXSwKICAgIGwgPSB7CiAgICAgIHBsdWdpbnM6IG8sCiAgICAgIGRpcnR5OiAhMSwKICAgICAgcmVzb2x2ZWRPcHRpb25zOiBlLAogICAgICBob29rczogdCwKICAgICAgaGVhZEVudHJpZXMoKSB7CiAgICAgICAgcmV0dXJuIGE7CiAgICAgIH0sCiAgICAgIHVzZShjKSB7CiAgICAgICAgY29uc3QgdSA9IHR5cGVvZiBjID09ICJmdW5jdGlvbiIgPyBjKGwpIDogYzsKICAgICAgICAoIXUua2V5IHx8ICFvLnNvbWUoKGQpID0+IGQua2V5ID09PSB1LmtleSkpICYmCiAgICAgICAgICAoby5wdXNoKHUpLCBmaWx0ZXJNb2RlKHUubW9kZSwgcikgJiYgdC5hZGRIb29rcyh1Lmhvb2tzIHx8IHt9KSk7CiAgICAgIH0sCiAgICAgIHB1c2goYywgdSkgewogICAgICAgIHUgPT0gbnVsbCB8fCBkZWxldGUgdS5oZWFkOwogICAgICAgIGNvbnN0IGQgPSB7IF9pOiBpKyssIGlucHV0OiBjLCAuLi51IH07CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGZpbHRlck1vZGUoZC5tb2RlLCByKSAmJiAoYS5wdXNoKGQpLCBuKCkpLAogICAgICAgICAgewogICAgICAgICAgICBkaXNwb3NlKCkgewogICAgICAgICAgICAgIChhID0gYS5maWx0ZXIoKEUpID0+IEUuX2kgIT09IGQuX2kpKSwgbigpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBwYXRjaChFKSB7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBiIG9mIGEpIGIuX2kgPT09IGQuX2kgJiYgKGIuaW5wdXQgPSBkLmlucHV0ID0gRSk7CiAgICAgICAgICAgICAgbigpOwogICAgICAgICAgICB9LAogICAgICAgICAgfQogICAgICAgICk7CiAgICAgIH0sCiAgICAgIGFzeW5jIHJlc29sdmVUYWdzKCkgewogICAgICAgIGNvbnN0IGMgPSB7IHRhZ3M6IFtdLCBlbnRyaWVzOiBbLi4uYV0gfTsKICAgICAgICBhd2FpdCB0LmNhbGxIb29rKCJlbnRyaWVzOnJlc29sdmUiLCBjKTsKICAgICAgICBmb3IgKGNvbnN0IHUgb2YgYy5lbnRyaWVzKSB7CiAgICAgICAgICBjb25zdCBkID0gdS5yZXNvbHZlZElucHV0IHx8IHUuaW5wdXQ7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgICgodS5yZXNvbHZlZElucHV0ID0gYXdhaXQgKHUudHJhbnNmb3JtID8gdS50cmFuc2Zvcm0oZCkgOiBkKSksCiAgICAgICAgICAgICAgdS5yZXNvbHZlZElucHV0KQogICAgICAgICAgKQogICAgICAgICAgICBmb3IgKGNvbnN0IEUgb2YgYXdhaXQgbm9ybWFsaXNlRW50cnlUYWdzKHUpKSB7CiAgICAgICAgICAgICAgY29uc3QgYiA9IHsKICAgICAgICAgICAgICAgIHRhZzogRSwKICAgICAgICAgICAgICAgIGVudHJ5OiB1LAogICAgICAgICAgICAgICAgcmVzb2x2ZWRPcHRpb25zOiBsLnJlc29sdmVkT3B0aW9ucywKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGF3YWl0IHQuY2FsbEhvb2soInRhZzpub3JtYWxpc2UiLCBiKSwgYy50YWdzLnB1c2goYi50YWcpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAoCiAgICAgICAgICBhd2FpdCB0LmNhbGxIb29rKCJ0YWdzOmJlZm9yZVJlc29sdmUiLCBjKSwKICAgICAgICAgIGF3YWl0IHQuY2FsbEhvb2soInRhZ3M6cmVzb2x2ZSIsIGMpLAogICAgICAgICAgYXdhaXQgdC5jYWxsSG9vaygidGFnczphZnRlclJlc29sdmUiLCBjKSwKICAgICAgICAgIGMudGFncwogICAgICAgICk7CiAgICAgIH0sCiAgICAgIHNzcjogciwKICAgIH07CiAgcmV0dXJuICgKICAgIFsKICAgICAgRGVkdXBlUGx1Z2luLAogICAgICBQYXlsb2FkUGx1Z2luLAogICAgICBFdmVudEhhbmRsZXJzUGx1Z2luLAogICAgICBIYXNoS2V5ZWRQbHVnaW4sCiAgICAgIFNvcnRQbHVnaW4sCiAgICAgIFRlbXBsYXRlUGFyYW1zUGx1Z2luLAogICAgICBUaXRsZVRlbXBsYXRlUGx1Z2luLAogICAgICBYU1NQbHVnaW4sCiAgICAgIC4uLigoZSA9PSBudWxsID8gdm9pZCAwIDogZS5wbHVnaW5zKSB8fCBbXSksCiAgICBdLmZvckVhY2goKGMpID0+IGwudXNlKGMpKSwKICAgIGwuaG9va3MuY2FsbEhvb2soImluaXQiLCBsKSwKICAgIGwKICApOwp9CmZ1bmN0aW9uIGdldEFjdGl2ZUhlYWQoKSB7CiAgcmV0dXJuIGFjdGl2ZUhlYWQ7Cn0KY29uc3QgVnVlMyA9IHZlcnNpb24kMVswXSA9PT0gIjMiOwpmdW5jdGlvbiByZXNvbHZlVW5yZWYoZSkgewogIHJldHVybiB0eXBlb2YgZSA9PSAiZnVuY3Rpb24iID8gZSgpIDogdW5yZWYoZSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZVVucmVmSGVhZElucHV0KGUpIHsKICBpZiAoZSBpbnN0YW5jZW9mIFByb21pc2UgfHwgZSBpbnN0YW5jZW9mIERhdGUgfHwgZSBpbnN0YW5jZW9mIFJlZ0V4cCkKICAgIHJldHVybiBlOwogIGNvbnN0IHQgPSByZXNvbHZlVW5yZWYoZSk7CiAgaWYgKCFlIHx8ICF0KSByZXR1cm4gdDsKICBpZiAoQXJyYXkuaXNBcnJheSh0KSkgcmV0dXJuIHQubWFwKChyKSA9PiByZXNvbHZlVW5yZWZIZWFkSW5wdXQocikpOwogIGlmICh0eXBlb2YgdCA9PSAib2JqZWN0IikgewogICAgY29uc3QgciA9IHt9OwogICAgZm9yIChjb25zdCBuIGluIHQpCiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgbikpIHsKICAgICAgICBpZiAobiA9PT0gInRpdGxlVGVtcGxhdGUiIHx8IChuWzBdID09PSAibyIgJiYgblsxXSA9PT0gIm4iKSkgewogICAgICAgICAgcltuXSA9IHVucmVmKHRbbl0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIHJbbl0gPSByZXNvbHZlVW5yZWZIZWFkSW5wdXQodFtuXSk7CiAgICAgIH0KICAgIHJldHVybiByOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCBWdWVSZWFjdGl2aXR5UGx1Z2luID0gewogIGhvb2tzOiB7CiAgICAiZW50cmllczpyZXNvbHZlIjogKGUpID0+IHsKICAgICAgZm9yIChjb25zdCB0IG9mIGUuZW50cmllcykKICAgICAgICB0LnJlc29sdmVkSW5wdXQgPSByZXNvbHZlVW5yZWZIZWFkSW5wdXQodC5pbnB1dCk7CiAgICB9LAogIH0sCn0sCiAgaGVhZFN5bWJvbCA9ICJ1c2VoZWFkIjsKZnVuY3Rpb24gdnVlSW5zdGFsbChlKSB7CiAgcmV0dXJuIHsKICAgIGluc3RhbGwocikgewogICAgICBWdWUzICYmCiAgICAgICAgKChyLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiR1bmhlYWQgPSBlKSwKICAgICAgICAgIChyLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRoZWFkID0gZSksCiAgICAgICAgICByLnByb3ZpZGUoaGVhZFN5bWJvbCwgZSkpOwogICAgfSwKICB9Lmluc3RhbGw7Cn0KZnVuY3Rpb24gY3JlYXRlSGVhZChlID0ge30pIHsKICBlLmRvbURlbGF5Rm4gPQogICAgZS5kb21EZWxheUZuIHx8ICgocikgPT4gbmV4dFRpY2soKCkgPT4gc2V0VGltZW91dCgoKSA9PiByKCksIDApKSk7CiAgY29uc3QgdCA9IGNyZWF0ZUhlYWQkMShlKTsKICByZXR1cm4gdC51c2UoVnVlUmVhY3Rpdml0eVBsdWdpbiksICh0Lmluc3RhbGwgPSB2dWVJbnN0YWxsKHQpKSwgdDsKfQpjb25zdCBfZ2xvYmFsID0KICB0eXBlb2YgZ2xvYmFsVGhpcyA8ICJ1IgogICAgPyBnbG9iYWxUaGlzCiAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIKICAgICAgPyB3aW5kb3cKICAgICAgOiB0eXBlb2YgZ2xvYmFsIDwgInUiCiAgICAgICAgPyBnbG9iYWwKICAgICAgICA6IHR5cGVvZiBzZWxmIDwgInUiCiAgICAgICAgICA/IHNlbGYKICAgICAgICAgIDoge30sCiAgZ2xvYmFsS2V5ID0gIl9fdW5oZWFkX2luamVjdGlvbl9oYW5kbGVyX18iOwpmdW5jdGlvbiBzZXRIZWFkSW5qZWN0aW9uSGFuZGxlcihlKSB7CiAgX2dsb2JhbFtnbG9iYWxLZXldID0gZTsKfQpmdW5jdGlvbiBpbmplY3RIZWFkKCkgewogIHJldHVybiBnbG9iYWxLZXkgaW4gX2dsb2JhbAogICAgPyBfZ2xvYmFsW2dsb2JhbEtleV0oKQogICAgOiBpbmplY3QkMShoZWFkU3ltYm9sKSB8fCBnZXRBY3RpdmVIZWFkKCk7Cn0KZnVuY3Rpb24gdXNlSGVhZChlLCB0ID0ge30pIHsKICBjb25zdCByID0gdC5oZWFkIHx8IGluamVjdEhlYWQoKTsKICBpZiAocikgcmV0dXJuIHIuc3NyID8gci5wdXNoKGUsIHQpIDogY2xpZW50VXNlSGVhZChyLCBlLCB0KTsKfQpmdW5jdGlvbiBjbGllbnRVc2VIZWFkKGUsIHQsIHIgPSB7fSkgewogIGNvbnN0IG4gPSByZWYoITEpLAogICAgaSA9IHJlZih7fSk7CiAgd2F0Y2hFZmZlY3QoKCkgPT4gewogICAgaS52YWx1ZSA9IG4udmFsdWUgPyB7fSA6IHJlc29sdmVVbnJlZkhlYWRJbnB1dCh0KTsKICB9KTsKICBjb25zdCBhID0gZS5wdXNoKGkudmFsdWUsIHIpOwogIHJldHVybiAoCiAgICB3YXRjaChpLCAobCkgPT4gewogICAgICBhLnBhdGNoKGwpOwogICAgfSksCiAgICBnZXRDdXJyZW50SW5zdGFuY2UkMSgpICYmCiAgICAob25CZWZvcmVVbm1vdW50KCgpID0+IHsKICAgICAgYS5kaXNwb3NlKCk7CiAgICB9KSwKICAgICAgb25EZWFjdGl2YXRlZCgoKSA9PiB7CiAgICAgICAgbi52YWx1ZSA9ICEwOwogICAgICB9KSwKICAgICAgb25BY3RpdmF0ZWQoKCkgPT4gewogICAgICAgIG4udmFsdWUgPSAhMTsKICAgICAgfSkpLAogICAgYQogICk7Cn0KY29uc3Qgc2NyaXB0UmVsID0gIm1vZHVsZXByZWxvYWQiLAogIGFzc2V0c1VSTCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICByZXR1cm4gbmV3IFVSTChlLCB0KS5ocmVmOwogIH0sCiAgc2VlbiA9IHt9LAogIF9fdml0ZVByZWxvYWQgPSBmdW5jdGlvbiAodCwgciwgbikgewogICAgbGV0IGkgPSBQcm9taXNlLnJlc29sdmUoKTsKICAgIGlmIChyICYmIHIubGVuZ3RoID4gMCkgewogICAgICBjb25zdCBvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKSwKICAgICAgICBsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdIiksCiAgICAgICAgYyA9CiAgICAgICAgICAobCA9PSBudWxsID8gdm9pZCAwIDogbC5ub25jZSkgfHwKICAgICAgICAgIChsID09IG51bGwgPyB2b2lkIDAgOiBsLmdldEF0dHJpYnV0ZSgibm9uY2UiKSk7CiAgICAgIGkgPSBQcm9taXNlLmFsbFNldHRsZWQoCiAgICAgICAgci5tYXAoKHUpID0+IHsKICAgICAgICAgIGlmICgoKHUgPSBhc3NldHNVUkwodSwgbikpLCB1IGluIHNlZW4pKSByZXR1cm47CiAgICAgICAgICBzZWVuW3VdID0gITA7CiAgICAgICAgICBjb25zdCBkID0gdS5lbmRzV2l0aCgiLmNzcyIpLAogICAgICAgICAgICBFID0gZCA/ICdbcmVsPSJzdHlsZXNoZWV0Il0nIDogIiI7CiAgICAgICAgICBpZiAoISFuKQogICAgICAgICAgICBmb3IgKGxldCBSID0gby5sZW5ndGggLSAxOyBSID49IDA7IFItLSkgewogICAgICAgICAgICAgIGNvbnN0IFQgPSBvW1JdOwogICAgICAgICAgICAgIGlmIChULmhyZWYgPT09IHUgJiYgKCFkIHx8IFQucmVsID09PSAic3R5bGVzaGVldCIpKSByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHt1fSJdJHtFfWApKSByZXR1cm47CiAgICAgICAgICBjb25zdCBQID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpOwogICAgICAgICAgaWYgKAogICAgICAgICAgICAoKFAucmVsID0gZCA/ICJzdHlsZXNoZWV0IiA6IHNjcmlwdFJlbCksCiAgICAgICAgICAgICAgZCB8fCAoUC5hcyA9ICJzY3JpcHQiKSwKICAgICAgICAgICAgICAoUC5jcm9zc09yaWdpbiA9ICIiKSwKICAgICAgICAgICAgICAoUC5ocmVmID0gdSksCiAgICAgICAgICAgICAgYyAmJiBQLnNldEF0dHJpYnV0ZSgibm9uY2UiLCBjKSwKICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKFApLAogICAgICAgICAgICAgIGQpCiAgICAgICAgICApCiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoUiwgVCkgPT4gewogICAgICAgICAgICAgIFAuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIFIpLAogICAgICAgICAgICAgICAgUC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpID0+CiAgICAgICAgICAgICAgICAgIFQobmV3IEVycm9yKGBVbmFibGUgdG8gcHJlbG9hZCBDU1MgZm9yICR7dX1gKSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pCiAgICAgICk7CiAgICB9CiAgICBmdW5jdGlvbiBhKG8pIHsKICAgICAgY29uc3QgbCA9IG5ldyBFdmVudCgidml0ZTpwcmVsb2FkRXJyb3IiLCB7IGNhbmNlbGFibGU6ICEwIH0pOwogICAgICBpZiAoKChsLnBheWxvYWQgPSBvKSwgd2luZG93LmRpc3BhdGNoRXZlbnQobCksICFsLmRlZmF1bHRQcmV2ZW50ZWQpKQogICAgICAgIHRocm93IG87CiAgICB9CiAgICByZXR1cm4gaS50aGVuKChvKSA9PiB7CiAgICAgIGZvciAoY29uc3QgbCBvZiBvIHx8IFtdKSBsLnN0YXR1cyA9PT0gInJlamVjdGVkIiAmJiBhKGwucmVhc29uKTsKICAgICAgcmV0dXJuIHQoKS5jYXRjaChhKTsKICAgIH0pOwogIH07CmxldCBtYW5pZmVzdCwgbWF0Y2hlcjsKZnVuY3Rpb24gZmV0Y2hNYW5pZmVzdCgpIHsKICByZXR1cm4gKAogICAgKG1hbmlmZXN0ID0gJGZldGNoKAogICAgICBidWlsZEFzc2V0c1VSTChgYnVpbGRzL21ldGEvJHt1c2VSdW50aW1lQ29uZmlnKCkuYXBwLmJ1aWxkSWR9Lmpzb25gKSwKICAgICAgeyByZXNwb25zZVR5cGU6ICJqc29uIiB9CiAgICApKSwKICAgIG1hbmlmZXN0CiAgICAgIC50aGVuKChlKSA9PiB7CiAgICAgICAgbWF0Y2hlciA9IGNyZWF0ZU1hdGNoZXJGcm9tRXhwb3J0KGUubWF0Y2hlcik7CiAgICAgIH0pCiAgICAgIC5jYXRjaCgoZSkgPT4gewogICAgICAgIGNvbnNvbGUuZXJyb3IoIltudXh0XSBFcnJvciBmZXRjaGluZyBhcHAgbWFuaWZlc3QuIiwgZSk7CiAgICAgIH0pLAogICAgbWFuaWZlc3QKICApOwp9CmZ1bmN0aW9uIGdldEFwcE1hbmlmZXN0KCkgewogIHJldHVybiBtYW5pZmVzdCB8fCBmZXRjaE1hbmlmZXN0KCk7Cn0KYXN5bmMgZnVuY3Rpb24gZ2V0Um91dGVSdWxlcyhlKSB7CiAgY29uc3QgdCA9IHR5cGVvZiBlID09ICJzdHJpbmciID8gZSA6IGUucGF0aDsKICBpZiAoKGF3YWl0IGdldEFwcE1hbmlmZXN0KCksICFtYXRjaGVyKSkKICAgIHJldHVybiAoCiAgICAgIGNvbnNvbGUuZXJyb3IoIltudXh0XSBFcnJvciBjcmVhdGluZyBhcHAgbWFuaWZlc3QgbWF0Y2hlci4iLCBtYXRjaGVyKSwge30KICAgICk7CiAgdHJ5IHsKICAgIHJldHVybiBkZWZ1KHt9LCAuLi5tYXRjaGVyLm1hdGNoQWxsKHQpLnJldmVyc2UoKSk7CiAgfSBjYXRjaCAocikgewogICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoIltudXh0XSBFcnJvciBtYXRjaGluZyByb3V0ZSBydWxlcy4iLCByKSwge307CiAgfQp9CmFzeW5jIGZ1bmN0aW9uIGxvYWRQYXlsb2FkKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSBhd2FpdCBfZ2V0UGF5bG9hZFVSTChlLCB0KSwKICAgIG4gPSB1c2VOdXh0QXBwKCksCiAgICBpID0gKG4uX3BheWxvYWRDYWNoZSA9IG4uX3BheWxvYWRDYWNoZSB8fCB7fSk7CiAgcmV0dXJuIHIgaW4gaQogICAgPyBpW3JdIHx8IG51bGwKICAgIDogKChpW3JdID0gaXNQcmVyZW5kZXJlZChlKS50aGVuKChhKSA9PgogICAgICBhCiAgICAgICAgPyBfaW1wb3J0UGF5bG9hZChyKS50aGVuKChvKSA9PiBvIHx8IChkZWxldGUgaVtyXSwgbnVsbCkpCiAgICAgICAgOiAoKGlbcl0gPSBudWxsKSwgbnVsbCkKICAgICkpLAogICAgICBpW3JdKTsKfQpjb25zdCBmaWxlbmFtZSA9ICJfcGF5bG9hZC5qc29uIjsKYXN5bmMgZnVuY3Rpb24gX2dldFBheWxvYWRVUkwoZSwgdCA9IHt9KSB7CiAgY29uc3QgciA9IG5ldyBVUkwoZSwgImh0dHA6Ly9sb2NhbGhvc3QiKTsKICBpZiAoci5ob3N0ICE9PSAibG9jYWxob3N0IiB8fCBoYXNQcm90b2NvbChyLnBhdGhuYW1lLCB7IGFjY2VwdFJlbGF0aXZlOiAhMCB9KSkKICAgIHRocm93IG5ldyBFcnJvcigiUGF5bG9hZCBVUkwgbXVzdCBub3QgaW5jbHVkZSBob3N0bmFtZTogIiArIGUpOwogIGNvbnN0IG4gPSB1c2VSdW50aW1lQ29uZmlnKCksCiAgICBpID0gdC5oYXNoIHx8ICh0LmZyZXNoID8gRGF0ZS5ub3coKSA6IG4uYXBwLmJ1aWxkSWQpLAogICAgYSA9IG4uYXBwLmNkblVSTCwKICAgIG8gPSBhICYmIChhd2FpdCBpc1ByZXJlbmRlcmVkKGUpKSA/IGEgOiBuLmFwcC5iYXNlVVJMOwogIHJldHVybiBqb2luVVJMKG8sIHIucGF0aG5hbWUsIGZpbGVuYW1lICsgKGkgPyBgPyR7aX1gIDogIiIpKTsKfQphc3luYyBmdW5jdGlvbiBfaW1wb3J0UGF5bG9hZChlKSB7CiAgY29uc3QgdCA9IGZldGNoKGUpLnRoZW4oKHIpID0+IHIudGV4dCgpLnRoZW4ocGFyQ2hhaW5HcmFtc2xvYWQpKTsKICB0cnkgewogICAgcmV0dXJuIGF3YWl0IHQ7CiAgfSBjYXRjaCAocikgewogICAgY29uc29sZS53YXJuKCJbbnV4dF0gQ2Fubm90IGxvYWQgcGF5bG9hZCAiLCBlLCByKTsKICB9CiAgcmV0dXJuIG51bGw7Cn0KYXN5bmMgZnVuY3Rpb24gaXNQcmVyZW5kZXJlZChlID0gdXNlUm91dGUkMSgpLnBhdGgpIHsKICBjb25zdCB0ID0gdXNlTnV4dEFwcCgpOwogIHJldHVybiAoCiAgICAoZSA9IHdpdGhvdXRUcmFpbGluZ1NsYXNoKGUpKSwKICAgIChhd2FpdCBnZXRBcHBNYW5pZmVzdCgpKS5wcmVyZW5kZXJlZC5pbmNsdWRlcyhlKQogICAgICA/ICEwCiAgICAgIDogdC5ydW5XaXRoQ29udGV4dChhc3luYyAoKSA9PiB7CiAgICAgICAgY29uc3QgbiA9IGF3YWl0IGdldFJvdXRlUnVsZXMoeyBwYXRoOiBlIH0pOwogICAgICAgIHJldHVybiAhIW4ucHJlcmVuZGVyICYmICFuLnJlZGlyZWN0OwogICAgICB9KQogICk7Cn0KbGV0IHBheWxvYWRDYWNoZSA9IG51bGw7CmFzeW5jIGZ1bmN0aW9uIGdldE51eHRDbGllbnRQYXlsb2FkKCkgewogIHZhciBuOwogIGlmIChwYXlsb2FkQ2FjaGUpIHJldHVybiBwYXlsb2FkQ2FjaGU7CiAgY29uc3QgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX05VWFRfREFUQV9fIik7CiAgaWYgKCFlKSByZXR1cm4ge307CiAgY29uc3QgdCA9IGF3YWl0IHBhckNoYWluR3JhbXNsb2FkKGUudGV4dENvbnRlbnQgfHwgIiIpLAogICAgciA9IGUuZGF0YXNldC5zcmMgPyBhd2FpdCBfaW1wb3J0UGF5bG9hZChlLmRhdGFzZXQuc3JjKSA6IHZvaWQgMDsKICByZXR1cm4gKAogICAgKHBheWxvYWRDYWNoZSA9IHsgLi4udCwgLi4uciwgLi4ud2luZG93Ll9fTlVYVF9fIH0pLAogICAgKG4gPSBwYXlsb2FkQ2FjaGUuY29uZmlnKSAhPSBudWxsICYmCiAgICBuLnB1YmxpYyAmJgogICAgKHBheWxvYWRDYWNoZS5jb25maWcucHVibGljID0gcmVhY3RpdmUocGF5bG9hZENhY2hlLmNvbmZpZy5wdWJsaWMpKSwKICAgIHBheWxvYWRDYWNoZQogICk7Cn0KYXN5bmMgZnVuY3Rpb24gcGFyQ2hhaW5HcmFtc2xvYWQoZSkgewogIHJldHVybiBhd2FpdCBwYXJzZSQxKGUsIHVzZU51eHRBcHAoKS5fcGF5bG9hZFJldml2ZXJzKTsKfQpmdW5jdGlvbiBkZWZpbmVQYXlsb2FkUmV2aXZlcihlLCB0KSB7CiAgdXNlTnV4dEFwcCgpLl9wYXlsb2FkUmV2aXZlcnNbZV0gPSB0Owp9CmNvbnN0IHBheWxvYWRQbHVnaW4gPSBkZWZpbmVQYXlsb2FkUGx1Z2luKCgpID0+IHsKICBkZWZpbmVQYXlsb2FkUmV2aXZlcigic2tpcEh5ZHJhdGUiLCAoZSkgPT4geyB9KTsKfSksCiAgcmV2aXZlcnMgPSBbCiAgICBbIk51eHRFcnJvciIsIChlKSA9PiBjcmVhdGVFcnJvcihlKV0sCiAgICBbCiAgICAgICJFbXB0eVNoYWxsb3dSZWYiLAogICAgICAoZSkgPT4gc2hhbGxvd1JlZihlID09PSAiXyIgPyB2b2lkIDAgOiBlID09PSAiMG4iID8gQmlnSW50KDApIDogZGVzdHIoZSkpLAogICAgXSwKICAgIFsKICAgICAgIkVtcHR5UmVmIiwKICAgICAgKGUpID0+IHJlZihlID09PSAiXyIgPyB2b2lkIDAgOiBlID09PSAiMG4iID8gQmlnSW50KDApIDogZGVzdHIoZSkpLAogICAgXSwKICAgIFsiU2hhbGxvd1JlZiIsIChlKSA9PiBzaGFsbG93UmVmKGUpXSwKICAgIFsiU2hhbGxvd1JlYWN0aXZlIiwgKGUpID0+IHNoYWxsb3dSZWFjdGl2ZShlKV0sCiAgICBbIlJlZiIsIChlKSA9PiByZWYoZSldLAogICAgWyJSZWFjdGl2ZSIsIChlKSA9PiByZWFjdGl2ZShlKV0sCiAgXSwKICByZXZpdmVfcGF5bG9hZF9jbGllbnRfNHNWUU53N1JsTiA9IGRlZmluZU51eHRQbHVnaW4oewogICAgbmFtZTogIm51eHQ6cmV2aXZlLXBheWxvYWQ6Y2xpZW50IiwKICAgIG9yZGVyOiAtMzAsCiAgICBhc3luYyBzZXR1cChlKSB7CiAgICAgIGxldCB0LCByOwogICAgICBmb3IgKGNvbnN0IFtuLCBpXSBvZiByZXZpdmVycykgZGVmaW5lUGF5bG9hZFJldml2ZXIobiwgaSk7CiAgICAgIE9iamVjdC5hc3NpZ24oCiAgICAgICAgZS5wYXlsb2FkLAogICAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGUucnVuV2l0aENvbnRleHQoZ2V0TnV4dENsaWVudFBheWxvYWQpKSksCiAgICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgICAgcigpLAogICAgICAgICAgdCkKICAgICAgKSwKICAgICAgICAod2luZG93Ll9fTlVYVF9fID0gZS5wYXlsb2FkKTsKICAgIH0sCiAgfSk7Ci8qIQogKiBzaGFyZWQgdjkuMTQuMgogKiAoYykgMjAyNCBrYXp1eWEga2F3YWd1Y2hpCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovIGNvbnN0IGluQnJvd3NlciQxID0gdHlwZW9mIHdpbmRvdyA8ICJ1IiwKICBtYWtlU3ltYm9sID0gKGUsIHQgPSAhMSkgPT4gKHQgPyBTeW1ib2wuZm9yKGUpIDogU3ltYm9sKGUpKSwKICBnZW5lcmF0ZUZvcm1hdENhY2hlS2V5ID0gKGUsIHQsIHIpID0+CiAgICBmcmllbmRseUpTT05zdHJpbmdpZnkoeyBsOiBlLCBrOiB0LCBzOiByIH0pLAogIGZyaWVuZGx5SlNPTnN0cmluZ2lmeSA9IChlKSA9PgogICAgSlNPTi5zdHJpbmdpZnkoZSkKICAgICAgLnJlcGxhY2UoL1x1MjAyOC9nLCAiXFx1MjAyOCIpCiAgICAgIC5yZXBsYWNlKC9cdTIwMjkvZywgIlxcdTIwMjkiKQogICAgICAucmVwbGFjZSgvXHUwMDI3L2csICJcXHUwMDI3IiksCiAgaXNOdW1iZXIgPSAoZSkgPT4gdHlwZW9mIGUgPT0gIm51bWJlciIgJiYgaXNGaW5pdGUoZSksCiAgaXNEYXRlID0gKGUpID0+IHRvVHlwZVN0cmluZyhlKSA9PT0gIltvYmplY3QgRGF0ZV0iLAogIGlzUmVnRXhwID0gKGUpID0+IHRvVHlwZVN0cmluZyhlKSA9PT0gIltvYmplY3QgUmVnRXhwXSIsCiAgaXNFbXB0eU9iamVjdCA9IChlKSA9PiBpc1BsYWluT2JqZWN0JDEoZSkgJiYgT2JqZWN0LmtleXMoZSkubGVuZ3RoID09PSAwLAogIGFzc2lnbiQxID0gT2JqZWN0LmFzc2lnbiwKICBfY3JlYXRlID0gT2JqZWN0LmNyZWF0ZSwKICBjcmVhdGUgPSAoZSA9IG51bGwpID0+IF9jcmVhdGUoZSk7CmxldCBfZ2xvYmFsVGhpczsKY29uc3QgZ2V0R2xvYmFsVGhpcyA9ICgpID0+CiAgX2dsb2JhbFRoaXMgfHwKICAoX2dsb2JhbFRoaXMgPQogICAgdHlwZW9mIGdsb2JhbFRoaXMgPCAidSIKICAgICAgPyBnbG9iYWxUaGlzCiAgICAgIDogdHlwZW9mIHNlbGYgPCAidSIKICAgICAgICA/IHNlbGYKICAgICAgICA6IHR5cGVvZiB3aW5kb3cgPCAidSIKICAgICAgICAgID8gd2luZG93CiAgICAgICAgICA6IHR5cGVvZiBnbG9iYWwgPCAidSIKICAgICAgICAgICAgPyBnbG9iYWwKICAgICAgICAgICAgOiBjcmVhdGUoKSk7CmZ1bmN0aW9uIGVzY2FwZUh0bWwoZSkgewogIHJldHVybiBlCiAgICAucmVwbGFjZSgvPC9nLCAiJmx0OyIpCiAgICAucmVwbGFjZSgvPi9nLCAiJmd0OyIpCiAgICAucmVwbGFjZSgvIi9nLCAiJnF1b3Q7IikKICAgIC5yZXBsYWNlKC8nL2csICImYXBvczsiKTsKfQpjb25zdCBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7CmZ1bmN0aW9uIGhhc093bihlLCB0KSB7CiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoZSwgdCk7Cn0KY29uc3QgaXNBcnJheSQxID0gQXJyYXkuaXNBcnJheSwKICBpc0Z1bmN0aW9uID0gKGUpID0+IHR5cGVvZiBlID09ICJmdW5jdGlvbiIsCiAgaXNTdHJpbmcgPSAoZSkgPT4gdHlwZW9mIGUgPT0gInN0cmluZyIsCiAgaXNCb29sZWFuID0gKGUpID0+IHR5cGVvZiBlID09ICJib29sZWFuIiwKICBpc1N5bWJvbCA9IChlKSA9PiB0eXBlb2YgZSA9PSAic3ltYm9sIiwKICBpc09iamVjdCQxID0gKGUpID0+IGUgIT09IG51bGwgJiYgdHlwZW9mIGUgPT0gIm9iamVjdCIsCiAgaXNQcm9taXNlID0gKGUpID0+IGlzT2JqZWN0JDEoZSkgJiYgaXNGdW5jdGlvbihlLnRoZW4pICYmIGlzRnVuY3Rpb24oZS5jYXRjaCksCiAgb2JqZWN0VG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLAogIHRvVHlwZVN0cmluZyA9IChlKSA9PiBvYmplY3RUb1N0cmluZy5jYWxsKGUpLAogIGlzUGxhaW5PYmplY3QkMSA9IChlKSA9PiB7CiAgICBpZiAoIWlzT2JqZWN0JDEoZSkpIHJldHVybiAhMTsKICAgIGNvbnN0IHQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7CiAgICByZXR1cm4gdCA9PT0gbnVsbCB8fCB0LmNvbnN0cnVjdG9yID09PSBPYmplY3Q7CiAgfSwKICB0b0Rpc3BsYXlTdHJpbmcgPSAoZSkgPT4KICAgIGUgPT0gbnVsbAogICAgICA/ICIiCiAgICAgIDogaXNBcnJheSQxKGUpIHx8IChpc1BsYWluT2JqZWN0JDEoZSkgJiYgZS50b1N0cmluZyA9PT0gb2JqZWN0VG9TdHJpbmcpCiAgICAgICAgPyBKU09OLnN0cmluZ2lmeShlLCBudWxsLCAyKQogICAgICAgIDogU3RyaW5nKGUpOwpmdW5jdGlvbiBqb2luKGUsIHQgPSAiIikgewogIHJldHVybiBlLnJlZHVjZSgociwgbiwgaSkgPT4gKGkgPT09IDAgPyByICsgbiA6IHIgKyB0ICsgbiksICIiKTsKfQpmdW5jdGlvbiBpbmNyZW1lbnRlcihlKSB7CiAgbGV0IHQgPSBlOwogIHJldHVybiAoKSA9PiArK3Q7Cn0KZnVuY3Rpb24gd2FybihlLCB0KSB7CiAgdHlwZW9mIGNvbnNvbGUgPCAidSIgJiYKICAgIChjb25zb2xlLndhcm4oIltpbnRsaWZ5XSAiICsgZSksIHQgJiYgY29uc29sZS53YXJuKHQuc3RhY2spKTsKfQpjb25zdCBpc05vdE9iamVjdE9ySXNBcnJheSA9IChlKSA9PiAhaXNPYmplY3QkMShlKSB8fCBpc0FycmF5JDEoZSk7CmZ1bmN0aW9uIGRlZXBDb3B5KGUsIHQpIHsKICBpZiAoaXNOb3RPYmplY3RPcklzQXJyYXkoZSkgfHwgaXNOb3RPYmplY3RPcklzQXJyYXkodCkpCiAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFsdWUiKTsKICBjb25zdCByID0gW3sgc3JjOiBlLCBkZXM6IHQgfV07CiAgZm9yICg7IHIubGVuZ3RoOykgewogICAgY29uc3QgeyBzcmM6IG4sIGRlczogaSB9ID0gci5wb3AoKTsKICAgIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGEpID0+IHsKICAgICAgYSAhPT0gIl9fcHJvdG9fXyIgJiYKICAgICAgICAoaXNPYmplY3QkMShuW2FdKSAmJgogICAgICAgICAgIWlzT2JqZWN0JDEoaVthXSkgJiYKICAgICAgICAgIChpW2FdID0gQXJyYXkuaXNBcnJheShuW2FdKSA/IFtdIDogY3JlYXRlKCkpLAogICAgICAgICAgaXNOb3RPYmplY3RPcklzQXJyYXkoaVthXSkgfHwgaXNOb3RPYmplY3RPcklzQXJyYXkoblthXSkKICAgICAgICAgICAgPyAoaVthXSA9IG5bYV0pCiAgICAgICAgICAgIDogci5wdXNoKHsgc3JjOiBuW2FdLCBkZXM6IGlbYV0gfSkpOwogICAgfSk7CiAgfQp9Ci8qIQogKiBtZXNzYWdlLWNvbXBpbGVyIHY5LjE0LjIKICogKGMpIDIwMjQga2F6dXlhIGthd2FndWNoaQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLyBmdW5jdGlvbiBjcmVhdGVQb3NpdGlvbihlLCB0LCByKSB7CiAgcmV0dXJuIHsgbGluZTogZSwgY29sdW1uOiB0LCBvZmZzZXQ6IHIgfTsKfQpmdW5jdGlvbiBjcmVhdGVMb2NhdGlvbihlLCB0LCByKSB7CiAgcmV0dXJuIHsgc3RhcnQ6IGUsIGVuZDogdCB9Owp9CmNvbnN0IENvbXBpbGVXYXJuQ29kZXMgPSB7IFVTRV9NT0RVTE9fU1lOVEFYOiAxLCBfX0VYVEVORF9QT0lOVF9fOiAyIH07CmZ1bmN0aW9uIGNyZWF0ZUNvbXBpbGVXYXJuKGUsIHQsIC4uLnIpIHsKICBjb25zdCBpID0geyBtZXNzYWdlOiBTdHJpbmcoZSksIGNvZGU6IGUgfTsKICByZXR1cm4gdCAmJiAoaS5sb2NhdGlvbiA9IHQpLCBpOwp9CmNvbnN0IENvbXBpbGVFcnJvckNvZGVzID0gewogIEVYUEVDVEVEX1RPS0VOOiAxLAogIElOVkFMSURfVE9LRU5fSU5fUExBQ0VIT0xERVI6IDIsCiAgVU5URVJNSU5BVEVEX1NJTkdMRV9RVU9URV9JTl9QTEFDRUhPTERFUjogMywKICBVTktOT1dOX0VTQ0FQRV9TRVFVRU5DRTogNCwKICBJTlZBTElEX1VOSUNPREVfRVNDQVBFX1NFUVVFTkNFOiA1LAogIFVOQkFMQU5DRURfQ0xPU0lOR19CUkFDRTogNiwKICBVTlRFUk1JTkFURURfQ0xPU0lOR19CUkFDRTogNywKICBFTVBUWV9QTEFDRUhPTERFUjogOCwKICBOT1RfQUxMT1dfTkVTVF9QTEFDRUhPTERFUjogOSwKICBJTlZBTElEX0xJTktFRF9GT1JNQVQ6IDEwLAogIE1VU1RfSEFWRV9NRVNTQUdFU19JTl9QTFVSQUw6IDExLAogIFVORVhQRUNURURfRU1QVFlfTElOS0VEX01PRElGSUVSOiAxMiwKICBVTkVYUEVDVEVEX0VNUFRZX0xJTktFRF9LRVk6IDEzLAogIFVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUzogMTQsCiAgVU5IQU5ETEVEX0NPREVHRU5fTk9ERV9UWVBFOiAxNSwKICBVTkhBTkRMRURfTUlOSUZJRVJfTk9ERV9UWVBFOiAxNiwKICBfX0VYVEVORF9QT0lOVF9fOiAxNywKfTsKZnVuY3Rpb24gY3JlYXRlQ29tcGlsZUVycm9yKGUsIHQsIHIgPSB7fSkgewogIGNvbnN0IHsgZG9tYWluOiBuLCBtZXNzYWdlczogaSwgYXJnczogYSB9ID0gciwKICAgIG8gPSBlLAogICAgbCA9IG5ldyBTeW50YXhFcnJvcihTdHJpbmcobykpOwogIHJldHVybiAobC5jb2RlID0gZSksIHQgJiYgKGwubG9jYXRpb24gPSB0KSwgKGwuZG9tYWluID0gbiksIGw7Cn0KZnVuY3Rpb24gZGVmYXVsdE9uRXJyb3IoZSkgewogIHRocm93IGU7Cn0KY29uc3QgQ0hBUl9TUCA9ICIgIiwKICBDSEFSX0NSID0gIlxyIiwKICBDSEFSX0xGID0gYApgLAogIENIQVJfTFMgPSAiXHUyMDI4IiwKICBDSEFSX1BTID0gIlx1MjAyOSI7CmZ1bmN0aW9uIGNyZWF0ZVNjYW5uZXIoZSkgewogIGNvbnN0IHQgPSBlOwogIGxldCByID0gMCwKICAgIG4gPSAxLAogICAgaSA9IDEsCiAgICBhID0gMDsKICBjb25zdCBvID0gKEQpID0+IHRbRF0gPT09IENIQVJfQ1IgJiYgdFtEICsgMV0gPT09IENIQVJfTEYsCiAgICBsID0gKEQpID0+IHRbRF0gPT09IENIQVJfTEYsCiAgICBjID0gKEQpID0+IHRbRF0gPT09IENIQVJfUFMsCiAgICB1ID0gKEQpID0+IHRbRF0gPT09IENIQVJfTFMsCiAgICBkID0gKEQpID0+IG8oRCkgfHwgbChEKSB8fCBjKEQpIHx8IHUoRCksCiAgICBFID0gKCkgPT4gciwKICAgIGIgPSAoKSA9PiBuLAogICAgUCA9ICgpID0+IGksCiAgICBSID0gKCkgPT4gYSwKICAgIFQgPSAoRCkgPT4gKG8oRCkgfHwgYyhEKSB8fCB1KEQpID8gQ0hBUl9MRiA6IHRbRF0pLAogICAgTSA9ICgpID0+IFQociksCiAgICB4ID0gKCkgPT4gVChyICsgYSk7CiAgZnVuY3Rpb24gaygpIHsKICAgIHJldHVybiAoYSA9IDApLCBkKHIpICYmIChuKyssIChpID0gMCkpLCBvKHIpICYmIHIrKywgcisrLCBpKyssIHRbcl07CiAgfQogIGZ1bmN0aW9uIFMoKSB7CiAgICByZXR1cm4gbyhyICsgYSkgJiYgYSsrLCBhKyssIHRbciArIGFdOwogIH0KICBmdW5jdGlvbiBBKCkgewogICAgKHIgPSAwKSwgKG4gPSAxKSwgKGkgPSAxKSwgKGEgPSAwKTsKICB9CiAgZnVuY3Rpb24gTyhEID0gMCkgewogICAgYSA9IEQ7CiAgfQogIGZ1bmN0aW9uIEYoKSB7CiAgICBjb25zdCBEID0gciArIGE7CiAgICBmb3IgKDsgRCAhPT0gcjspIGsoKTsKICAgIGEgPSAwOwogIH0KICByZXR1cm4gewogICAgaW5kZXg6IEUsCiAgICBsaW5lOiBiLAogICAgY29sdW1uOiBQLAogICAgcGVla09mZnNldDogUiwKICAgIGNoYXJBdDogVCwKICAgIGN1cnJlbnRDaGFyOiBNLAogICAgY3VycmVudFBlZWs6IHgsCiAgICBuZXh0OiBrLAogICAgcGVlazogUywKICAgIHJlc2V0OiBBLAogICAgcmVzZXRQZWVrOiBPLAogICAgc2tpcFRvUGVlazogRiwKICB9Owp9CmNvbnN0IEVPRiA9IHZvaWQgMCwKICBET1QgPSAiLiIsCiAgTElURVJBTF9ERUxJTUlURVIgPSAiJyIsCiAgRVJST1JfRE9NQUlOJDMgPSAidG9rZW5pemVyIjsKZnVuY3Rpb24gY3JlYXRlVG9rZW5pemVyKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSB0LmxvY2F0aW9uICE9PSAhMSwKICAgIG4gPSBjcmVhdGVTY2FubmVyKGUpLAogICAgaSA9ICgpID0+IG4uaW5kZXgoKSwKICAgIGEgPSAoKSA9PiBjcmVhdGVQb3NpdGlvbihuLmxpbmUoKSwgbi5jb2x1bW4oKSwgbi5pbmRleCgpKSwKICAgIG8gPSBhKCksCiAgICBsID0gaSgpLAogICAgYyA9IHsKICAgICAgY3VycmVudFR5cGU6IDE0LAogICAgICBvZmZzZXQ6IGwsCiAgICAgIHN0YXJ0TG9jOiBvLAogICAgICBlbmRMb2M6IG8sCiAgICAgIGxhc3RUeXBlOiAxNCwKICAgICAgbGFzdE9mZnNldDogbCwKICAgICAgbGFzdFN0YXJ0TG9jOiBvLAogICAgICBsYXN0RW5kTG9jOiBvLAogICAgICBicmFjZU5lc3Q6IDAsCiAgICAgIGluTGlua2VkOiAhMSwKICAgICAgdGV4dDogIiIsCiAgICB9LAogICAgdSA9ICgpID0+IGMsCiAgICB7IG9uRXJyb3I6IGQgfSA9IHQ7CiAgZnVuY3Rpb24gRShqLCBVLCBYLCAuLi5vZSkgewogICAgY29uc3QgZmUgPSB1KCk7CiAgICBpZiAoKChVLmNvbHVtbiArPSBYKSwgKFUub2Zmc2V0ICs9IFgpLCBkKSkgewogICAgICBjb25zdCB1ZSA9IHIgPyBjcmVhdGVMb2NhdGlvbihmZS5zdGFydExvYywgVSkgOiBudWxsLAogICAgICAgIFogPSBjcmVhdGVDb21waWxlRXJyb3IoaiwgdWUsIHsgZG9tYWluOiBFUlJPUl9ET01BSU4kMywgYXJnczogb2UgfSk7CiAgICAgIGQoWik7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGIoaiwgVSwgWCkgewogICAgKGouZW5kTG9jID0gYSgpKSwgKGouY3VycmVudFR5cGUgPSBVKTsKICAgIGNvbnN0IG9lID0geyB0eXBlOiBVIH07CiAgICByZXR1cm4gKAogICAgICByICYmIChvZS5sb2MgPSBjcmVhdGVMb2NhdGlvbihqLnN0YXJ0TG9jLCBqLmVuZExvYykpLAogICAgICBYICE9IG51bGwgJiYgKG9lLnZhbHVlID0gWCksCiAgICAgIG9lCiAgICApOwogIH0KICBjb25zdCBQID0gKGopID0+IGIoaiwgMTQpOwogIGZ1bmN0aW9uIFIoaiwgVSkgewogICAgcmV0dXJuIGouY3VycmVudENoYXIoKSA9PT0gVQogICAgICA/IChqLm5leHQoKSwgVSkKICAgICAgOiAoRShDb21waWxlRXJyb3JDb2Rlcy5FWFBFQ1RFRF9UT0tFTiwgYSgpLCAwLCBVKSwgIiIpOwogIH0KICBmdW5jdGlvbiBUKGopIHsKICAgIGxldCBVID0gIiI7CiAgICBmb3IgKDsgai5jdXJyZW50UGVlaygpID09PSBDSEFSX1NQIHx8IGouY3VycmVudFBlZWsoKSA9PT0gQ0hBUl9MRjspCiAgICAgIChVICs9IGouY3VycmVudFBlZWsoKSksIGoucGVlaygpOwogICAgcmV0dXJuIFU7CiAgfQogIGZ1bmN0aW9uIE0oaikgewogICAgY29uc3QgVSA9IFQoaik7CiAgICByZXR1cm4gai5za2lwVG9QZWVrKCksIFU7CiAgfQogIGZ1bmN0aW9uIHgoaikgewogICAgaWYgKGogPT09IEVPRikgcmV0dXJuICExOwogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiAoVSA+PSA5NyAmJiBVIDw9IDEyMikgfHwgKFUgPj0gNjUgJiYgVSA8PSA5MCkgfHwgVSA9PT0gOTU7CiAgfQogIGZ1bmN0aW9uIGsoaikgewogICAgaWYgKGogPT09IEVPRikgcmV0dXJuICExOwogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiBVID49IDQ4ICYmIFUgPD0gNTc7CiAgfQogIGZ1bmN0aW9uIFMoaiwgVSkgewogICAgY29uc3QgeyBjdXJyZW50VHlwZTogWCB9ID0gVTsKICAgIGlmIChYICE9PSAyKSByZXR1cm4gITE7CiAgICBUKGopOwogICAgY29uc3Qgb2UgPSB4KGouY3VycmVudFBlZWsoKSk7CiAgICByZXR1cm4gai5yZXNldFBlZWsoKSwgb2U7CiAgfQogIGZ1bmN0aW9uIEEoaiwgVSkgewogICAgY29uc3QgeyBjdXJyZW50VHlwZTogWCB9ID0gVTsKICAgIGlmIChYICE9PSAyKSByZXR1cm4gITE7CiAgICBUKGopOwogICAgY29uc3Qgb2UgPSBqLmN1cnJlbnRQZWVrKCkgPT09ICItIiA/IGoucGVlaygpIDogai5jdXJyZW50UGVlaygpLAogICAgICBmZSA9IGsob2UpOwogICAgcmV0dXJuIGoucmVzZXRQZWVrKCksIGZlOwogIH0KICBmdW5jdGlvbiBPKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBpZiAoWCAhPT0gMikgcmV0dXJuICExOwogICAgVChqKTsKICAgIGNvbnN0IG9lID0gai5jdXJyZW50UGVlaygpID09PSBMSVRFUkFMX0RFTElNSVRFUjsKICAgIHJldHVybiBqLnJlc2V0UGVlaygpLCBvZTsKICB9CiAgZnVuY3Rpb24gRihqLCBVKSB7CiAgICBjb25zdCB7IGN1cnJlbnRUeXBlOiBYIH0gPSBVOwogICAgaWYgKFggIT09IDgpIHJldHVybiAhMTsKICAgIFQoaik7CiAgICBjb25zdCBvZSA9IGouY3VycmVudFBlZWsoKSA9PT0gIi4iOwogICAgcmV0dXJuIGoucmVzZXRQZWVrKCksIG9lOwogIH0KICBmdW5jdGlvbiBEKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBpZiAoWCAhPT0gOSkgcmV0dXJuICExOwogICAgVChqKTsKICAgIGNvbnN0IG9lID0geChqLmN1cnJlbnRQZWVrKCkpOwogICAgcmV0dXJuIGoucmVzZXRQZWVrKCksIG9lOwogIH0KICBmdW5jdGlvbiBIKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBpZiAoIShYID09PSA4IHx8IFggPT09IDEyKSkgcmV0dXJuICExOwogICAgVChqKTsKICAgIGNvbnN0IG9lID0gai5jdXJyZW50UGVlaygpID09PSAiOiI7CiAgICByZXR1cm4gai5yZXNldFBlZWsoKSwgb2U7CiAgfQogIGZ1bmN0aW9uICQoaiwgVSkgewogICAgY29uc3QgeyBjdXJyZW50VHlwZTogWCB9ID0gVTsKICAgIGlmIChYICE9PSAxMCkgcmV0dXJuICExOwogICAgY29uc3Qgb2UgPSAoKSA9PiB7CiAgICAgIGNvbnN0IHVlID0gai5jdXJyZW50UGVlaygpOwogICAgICByZXR1cm4gdWUgPT09ICJ7IgogICAgICAgID8geChqLnBlZWsoKSkKICAgICAgICA6IHVlID09PSAiQCIgfHwKICAgICAgICAgIHVlID09PSAiJSIgfHwKICAgICAgICAgIHVlID09PSAifCIgfHwKICAgICAgICAgIHVlID09PSAiOiIgfHwKICAgICAgICAgIHVlID09PSAiLiIgfHwKICAgICAgICAgIHVlID09PSBDSEFSX1NQIHx8CiAgICAgICAgICAhdWUKICAgICAgICAgID8gITEKICAgICAgICAgIDogdWUgPT09IENIQVJfTEYKICAgICAgICAgICAgPyAoai5wZWVrKCksIG9lKCkpCiAgICAgICAgICAgIDogSyhqLCAhMSk7CiAgICB9LAogICAgICBmZSA9IG9lKCk7CiAgICByZXR1cm4gai5yZXNldFBlZWsoKSwgZmU7CiAgfQogIGZ1bmN0aW9uIHEoaikgewogICAgVChqKTsKICAgIGNvbnN0IFUgPSBqLmN1cnJlbnRQZWVrKCkgPT09ICJ8IjsKICAgIHJldHVybiBqLnJlc2V0UGVlaygpLCBVOwogIH0KICBmdW5jdGlvbiBKKGopIHsKICAgIGNvbnN0IFUgPSBUKGopLAogICAgICBYID0gai5jdXJyZW50UGVlaygpID09PSAiJSIgJiYgai5wZWVrKCkgPT09ICJ7IjsKICAgIHJldHVybiBqLnJlc2V0UGVlaygpLCB7IGlzTW9kdWxvOiBYLCBoYXNTcGFjZTogVS5sZW5ndGggPiAwIH07CiAgfQogIGZ1bmN0aW9uIEsoaiwgVSA9ICEwKSB7CiAgICBjb25zdCBYID0gKGZlID0gITEsIHVlID0gIiIsIFogPSAhMSkgPT4gewogICAgICBjb25zdCBuZSA9IGouY3VycmVudFBlZWsoKTsKICAgICAgcmV0dXJuIG5lID09PSAieyIKICAgICAgICA/IHVlID09PSAiJSIKICAgICAgICAgID8gITEKICAgICAgICAgIDogZmUKICAgICAgICA6IG5lID09PSAiQCIgfHwgIW5lCiAgICAgICAgICA/IHVlID09PSAiJSIKICAgICAgICAgICAgPyAhMAogICAgICAgICAgICA6IGZlCiAgICAgICAgICA6IG5lID09PSAiJSIKICAgICAgICAgICAgPyAoai5wZWVrKCksIFgoZmUsICIlIiwgITApKQogICAgICAgICAgICA6IG5lID09PSAifCIKICAgICAgICAgICAgICA/IHVlID09PSAiJSIgfHwgWgogICAgICAgICAgICAgICAgPyAhMAogICAgICAgICAgICAgICAgOiAhKHVlID09PSBDSEFSX1NQIHx8IHVlID09PSBDSEFSX0xGKQogICAgICAgICAgICAgIDogbmUgPT09IENIQVJfU1AKICAgICAgICAgICAgICAgID8gKGoucGVlaygpLCBYKCEwLCBDSEFSX1NQLCBaKSkKICAgICAgICAgICAgICAgIDogbmUgPT09IENIQVJfTEYKICAgICAgICAgICAgICAgICAgPyAoai5wZWVrKCksIFgoITAsIENIQVJfTEYsIFopKQogICAgICAgICAgICAgICAgICA6ICEwOwogICAgfSwKICAgICAgb2UgPSBYKCk7CiAgICByZXR1cm4gVSAmJiBqLnJlc2V0UGVlaygpLCBvZTsKICB9CiAgZnVuY3Rpb24gZWUoaiwgVSkgewogICAgY29uc3QgWCA9IGouY3VycmVudENoYXIoKTsKICAgIHJldHVybiBYID09PSBFT0YgPyBFT0YgOiBVKFgpID8gKGoubmV4dCgpLCBYKSA6IG51bGw7CiAgfQogIGZ1bmN0aW9uIGxlKGopIHsKICAgIGNvbnN0IFUgPSBqLmNoYXJDb2RlQXQoMCk7CiAgICByZXR1cm4gKAogICAgICAoVSA+PSA5NyAmJiBVIDw9IDEyMikgfHwKICAgICAgKFUgPj0gNjUgJiYgVSA8PSA5MCkgfHwKICAgICAgKFUgPj0gNDggJiYgVSA8PSA1NykgfHwKICAgICAgVSA9PT0gOTUgfHwKICAgICAgVSA9PT0gMzYKICAgICk7CiAgfQogIGZ1bmN0aW9uIHJlKGopIHsKICAgIHJldHVybiBlZShqLCBsZSk7CiAgfQogIGZ1bmN0aW9uIEIoaikgewogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiAoCiAgICAgIChVID49IDk3ICYmIFUgPD0gMTIyKSB8fAogICAgICAoVSA+PSA2NSAmJiBVIDw9IDkwKSB8fAogICAgICAoVSA+PSA0OCAmJiBVIDw9IDU3KSB8fAogICAgICBVID09PSA5NSB8fAogICAgICBVID09PSAzNiB8fAogICAgICBVID09PSA0NQogICAgKTsKICB9CiAgZnVuY3Rpb24geihqKSB7CiAgICByZXR1cm4gZWUoaiwgQik7CiAgfQogIGZ1bmN0aW9uIE4oaikgewogICAgY29uc3QgVSA9IGouY2hhckNvZGVBdCgwKTsKICAgIHJldHVybiBVID49IDQ4ICYmIFUgPD0gNTc7CiAgfQogIGZ1bmN0aW9uIFYoaikgewogICAgcmV0dXJuIGVlKGosIE4pOwogIH0KICBmdW5jdGlvbiBRKGopIHsKICAgIGNvbnN0IFUgPSBqLmNoYXJDb2RlQXQoMCk7CiAgICByZXR1cm4gKAogICAgICAoVSA+PSA0OCAmJiBVIDw9IDU3KSB8fCAoVSA+PSA2NSAmJiBVIDw9IDcwKSB8fCAoVSA+PSA5NyAmJiBVIDw9IDEwMikKICAgICk7CiAgfQogIGZ1bmN0aW9uIFkoaikgewogICAgcmV0dXJuIGVlKGosIFEpOwogIH0KICBmdW5jdGlvbiBoZShqKSB7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSBWKGopKTspIFggKz0gVTsKICAgIHJldHVybiBYOwogIH0KICBmdW5jdGlvbiB5ZShqKSB7CiAgICBNKGopOwogICAgY29uc3QgVSA9IGouY3VycmVudENoYXIoKTsKICAgIHJldHVybiAoCiAgICAgIFUgIT09ICIlIiAmJiBFKENvbXBpbGVFcnJvckNvZGVzLkVYUEVDVEVEX1RPS0VOLCBhKCksIDAsIFUpLCBqLm5leHQoKSwgIiUiCiAgICApOwogIH0KICBmdW5jdGlvbiB2ZShqKSB7CiAgICBsZXQgVSA9ICIiOwogICAgZm9yICg7IDspIHsKICAgICAgY29uc3QgWCA9IGouY3VycmVudENoYXIoKTsKICAgICAgaWYgKFggPT09ICJ7IiB8fCBYID09PSAifSIgfHwgWCA9PT0gIkAiIHx8IFggPT09ICJ8IiB8fCAhWCkgYnJlYWs7CiAgICAgIGlmIChYID09PSAiJSIpCiAgICAgICAgaWYgKEsoaikpIChVICs9IFgpLCBqLm5leHQoKTsKICAgICAgICBlbHNlIGJyZWFrOwogICAgICBlbHNlIGlmIChYID09PSBDSEFSX1NQIHx8IFggPT09IENIQVJfTEYpCiAgICAgICAgaWYgKEsoaikpIChVICs9IFgpLCBqLm5leHQoKTsKICAgICAgICBlbHNlIHsKICAgICAgICAgIGlmIChxKGopKSBicmVhazsKICAgICAgICAgIChVICs9IFgpLCBqLm5leHQoKTsKICAgICAgICB9CiAgICAgIGVsc2UgKFUgKz0gWCksIGoubmV4dCgpOwogICAgfQogICAgcmV0dXJuIFU7CiAgfQogIGZ1bmN0aW9uIFBlKGopIHsKICAgIE0oaik7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSB6KGopKTspIFggKz0gVTsKICAgIHJldHVybiAoCiAgICAgIGouY3VycmVudENoYXIoKSA9PT0gRU9GICYmCiAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuVU5URVJNSU5BVEVEX0NMT1NJTkdfQlJBQ0UsIGEoKSwgMCksCiAgICAgIFgKICAgICk7CiAgfQogIGZ1bmN0aW9uIENlKGopIHsKICAgIE0oaik7CiAgICBsZXQgVSA9ICIiOwogICAgcmV0dXJuICgKICAgICAgai5jdXJyZW50Q2hhcigpID09PSAiLSIgPyAoai5uZXh0KCksIChVICs9IGAtJHtoZShqKX1gKSkgOiAoVSArPSBoZShqKSksCiAgICAgIGouY3VycmVudENoYXIoKSA9PT0gRU9GICYmCiAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuVU5URVJNSU5BVEVEX0NMT1NJTkdfQlJBQ0UsIGEoKSwgMCksCiAgICAgIFUKICAgICk7CiAgfQogIGZ1bmN0aW9uIGllKGopIHsKICAgIHJldHVybiBqICE9PSBMSVRFUkFMX0RFTElNSVRFUiAmJiBqICE9PSBDSEFSX0xGOwogIH0KICBmdW5jdGlvbiBtZShqKSB7CiAgICBNKGopLCBSKGosICInIik7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSBlZShqLCBpZSkpOykgVSA9PT0gIlxcIiA/IChYICs9IHBlKGopKSA6IChYICs9IFUpOwogICAgY29uc3Qgb2UgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICByZXR1cm4gb2UgPT09IENIQVJfTEYgfHwgb2UgPT09IEVPRgogICAgICA/IChFKENvbXBpbGVFcnJvckNvZGVzLlVOVEVSTUlOQVRFRF9TSU5HTEVfUVVPVEVfSU5fUExBQ0VIT0xERVIsIGEoKSwgMCksCiAgICAgICAgb2UgPT09IENIQVJfTEYgJiYgKGoubmV4dCgpLCBSKGosICInIikpLAogICAgICAgIFgpCiAgICAgIDogKFIoaiwgIiciKSwgWCk7CiAgfQogIGZ1bmN0aW9uIHBlKGopIHsKICAgIGNvbnN0IFUgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICBzd2l0Y2ggKFUpIHsKICAgICAgY2FzZSAiXFwiOgogICAgICBjYXNlICInIjoKICAgICAgICByZXR1cm4gai5uZXh0KCksIGBcXCR7VX1gOwogICAgICBjYXNlICJ1IjoKICAgICAgICByZXR1cm4gZ2UoaiwgVSwgNCk7CiAgICAgIGNhc2UgIlUiOgogICAgICAgIHJldHVybiBnZShqLCBVLCA2KTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gRShDb21waWxlRXJyb3JDb2Rlcy5VTktOT1dOX0VTQ0FQRV9TRVFVRU5DRSwgYSgpLCAwLCBVKSwgIiI7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGdlKGosIFUsIFgpIHsKICAgIFIoaiwgVSk7CiAgICBsZXQgb2UgPSAiIjsKICAgIGZvciAobGV0IGZlID0gMDsgZmUgPCBYOyBmZSsrKSB7CiAgICAgIGNvbnN0IHVlID0gWShqKTsKICAgICAgaWYgKCF1ZSkgewogICAgICAgIEUoCiAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5JTlZBTElEX1VOSUNPREVfRVNDQVBFX1NFUVVFTkNFLAogICAgICAgICAgYSgpLAogICAgICAgICAgMCwKICAgICAgICAgIGBcXCR7VX0ke29lfSR7ai5jdXJyZW50Q2hhcigpfWAKICAgICAgICApOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIG9lICs9IHVlOwogICAgfQogICAgcmV0dXJuIGBcXCR7VX0ke29lfWA7CiAgfQogIGZ1bmN0aW9uIEVlKGopIHsKICAgIHJldHVybiBqICE9PSAieyIgJiYgaiAhPT0gIn0iICYmIGogIT09IENIQVJfU1AgJiYgaiAhPT0gQ0hBUl9MRjsKICB9CiAgZnVuY3Rpb24gU2UoaikgewogICAgTShqKTsKICAgIGxldCBVID0gIiIsCiAgICAgIFggPSAiIjsKICAgIGZvciAoOyAoVSA9IGVlKGosIEVlKSk7KSBYICs9IFU7CiAgICByZXR1cm4gWDsKICB9CiAgZnVuY3Rpb24gVyhqKSB7CiAgICBsZXQgVSA9ICIiLAogICAgICBYID0gIiI7CiAgICBmb3IgKDsgKFUgPSByZShqKSk7KSBYICs9IFU7CiAgICByZXR1cm4gWDsKICB9CiAgZnVuY3Rpb24gRyhqKSB7CiAgICBjb25zdCBVID0gKFgpID0+IHsKICAgICAgY29uc3Qgb2UgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICAgIHJldHVybiBvZSA9PT0gInsiIHx8CiAgICAgICAgb2UgPT09ICIlIiB8fAogICAgICAgIG9lID09PSAiQCIgfHwKICAgICAgICBvZSA9PT0gInwiIHx8CiAgICAgICAgb2UgPT09ICIoIiB8fAogICAgICAgIG9lID09PSAiKSIgfHwKICAgICAgICAhb2UgfHwKICAgICAgICBvZSA9PT0gQ0hBUl9TUAogICAgICAgID8gWAogICAgICAgIDogKChYICs9IG9lKSwgai5uZXh0KCksIFUoWCkpOwogICAgfTsKICAgIHJldHVybiBVKCIiKTsKICB9CiAgZnVuY3Rpb24gdGUoaikgewogICAgTShqKTsKICAgIGNvbnN0IFUgPSBSKGosICJ8Iik7CiAgICByZXR1cm4gTShqKSwgVTsKICB9CiAgZnVuY3Rpb24gYWUoaiwgVSkgewogICAgbGV0IFggPSBudWxsOwogICAgc3dpdGNoIChqLmN1cnJlbnRDaGFyKCkpIHsKICAgICAgY2FzZSAieyI6CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIFUuYnJhY2VOZXN0ID49IDEgJiYKICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuTk9UX0FMTE9XX05FU1RfUExBQ0VIT0xERVIsIGEoKSwgMCksCiAgICAgICAgICBqLm5leHQoKSwKICAgICAgICAgIChYID0gYihVLCAyLCAieyIpKSwKICAgICAgICAgIE0oaiksCiAgICAgICAgICBVLmJyYWNlTmVzdCsrLAogICAgICAgICAgWAogICAgICAgICk7CiAgICAgIGNhc2UgIn0iOgogICAgICAgIHJldHVybiAoCiAgICAgICAgICBVLmJyYWNlTmVzdCA+IDAgJiYKICAgICAgICAgIFUuY3VycmVudFR5cGUgPT09IDIgJiYKICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuRU1QVFlfUExBQ0VIT0xERVIsIGEoKSwgMCksCiAgICAgICAgICBqLm5leHQoKSwKICAgICAgICAgIChYID0gYihVLCAzLCAifSIpKSwKICAgICAgICAgIFUuYnJhY2VOZXN0LS0sCiAgICAgICAgICBVLmJyYWNlTmVzdCA+IDAgJiYgTShqKSwKICAgICAgICAgIFUuaW5MaW5rZWQgJiYgVS5icmFjZU5lc3QgPT09IDAgJiYgKFUuaW5MaW5rZWQgPSAhMSksCiAgICAgICAgICBYCiAgICAgICAgKTsKICAgICAgY2FzZSAiQCI6CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIFUuYnJhY2VOZXN0ID4gMCAmJgogICAgICAgICAgRShDb21waWxlRXJyb3JDb2Rlcy5VTlRFUk1JTkFURURfQ0xPU0lOR19CUkFDRSwgYSgpLCAwKSwKICAgICAgICAgIChYID0gc2UoaiwgVSkgfHwgUChVKSksCiAgICAgICAgICAoVS5icmFjZU5lc3QgPSAwKSwKICAgICAgICAgIFgKICAgICAgICApOwogICAgICBkZWZhdWx0OiB7CiAgICAgICAgbGV0IGZlID0gITAsCiAgICAgICAgICB1ZSA9ICEwLAogICAgICAgICAgWiA9ICEwOwogICAgICAgIGlmIChxKGopKQogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgVS5icmFjZU5lc3QgPiAwICYmCiAgICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuVU5URVJNSU5BVEVEX0NMT1NJTkdfQlJBQ0UsIGEoKSwgMCksCiAgICAgICAgICAgIChYID0gYihVLCAxLCB0ZShqKSkpLAogICAgICAgICAgICAoVS5icmFjZU5lc3QgPSAwKSwKICAgICAgICAgICAgKFUuaW5MaW5rZWQgPSAhMSksCiAgICAgICAgICAgIFgKICAgICAgICAgICk7CiAgICAgICAgaWYgKAogICAgICAgICAgVS5icmFjZU5lc3QgPiAwICYmCiAgICAgICAgICAoVS5jdXJyZW50VHlwZSA9PT0gNSB8fCBVLmN1cnJlbnRUeXBlID09PSA2IHx8IFUuY3VycmVudFR5cGUgPT09IDcpCiAgICAgICAgKQogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgRShDb21waWxlRXJyb3JDb2Rlcy5VTlRFUk1JTkFURURfQ0xPU0lOR19CUkFDRSwgYSgpLCAwKSwKICAgICAgICAgICAgKFUuYnJhY2VOZXN0ID0gMCksCiAgICAgICAgICAgIGNlKGosIFUpCiAgICAgICAgICApOwogICAgICAgIGlmICgoZmUgPSBTKGosIFUpKSkgcmV0dXJuIChYID0gYihVLCA1LCBQZShqKSkpLCBNKGopLCBYOwogICAgICAgIGlmICgodWUgPSBBKGosIFUpKSkgcmV0dXJuIChYID0gYihVLCA2LCBDZShqKSkpLCBNKGopLCBYOwogICAgICAgIGlmICgoWiA9IE8oaiwgVSkpKSByZXR1cm4gKFggPSBiKFUsIDcsIG1lKGopKSksIE0oaiksIFg7CiAgICAgICAgaWYgKCFmZSAmJiAhdWUgJiYgIVopCiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoWCA9IGIoVSwgMTMsIFNlKGopKSksCiAgICAgICAgICAgIEUoQ29tcGlsZUVycm9yQ29kZXMuSU5WQUxJRF9UT0tFTl9JTl9QTEFDRUhPTERFUiwgYSgpLCAwLCBYLnZhbHVlKSwKICAgICAgICAgICAgTShqKSwKICAgICAgICAgICAgWAogICAgICAgICAgKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogICAgcmV0dXJuIFg7CiAgfQogIGZ1bmN0aW9uIHNlKGosIFUpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IFggfSA9IFU7CiAgICBsZXQgb2UgPSBudWxsOwogICAgY29uc3QgZmUgPSBqLmN1cnJlbnRDaGFyKCk7CiAgICBzd2l0Y2ggKAogICAgKChYID09PSA4IHx8IFggPT09IDkgfHwgWCA9PT0gMTIgfHwgWCA9PT0gMTApICYmCiAgICAgIChmZSA9PT0gQ0hBUl9MRiB8fCBmZSA9PT0gQ0hBUl9TUCkgJiYKICAgICAgRShDb21waWxlRXJyb3JDb2Rlcy5JTlZBTElEX0xJTktFRF9GT1JNQVQsIGEoKSwgMCksCiAgICAgIGZlKQogICAgKSB7CiAgICAgIGNhc2UgIkAiOgogICAgICAgIHJldHVybiBqLm5leHQoKSwgKG9lID0gYihVLCA4LCAiQCIpKSwgKFUuaW5MaW5rZWQgPSAhMCksIG9lOwogICAgICBjYXNlICIuIjoKICAgICAgICByZXR1cm4gTShqKSwgai5uZXh0KCksIGIoVSwgOSwgIi4iKTsKICAgICAgY2FzZSAiOiI6CiAgICAgICAgcmV0dXJuIE0oaiksIGoubmV4dCgpLCBiKFUsIDEwLCAiOiIpOwogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiBxKGopCiAgICAgICAgICA/ICgob2UgPSBiKFUsIDEsIHRlKGopKSksIChVLmJyYWNlTmVzdCA9IDApLCAoVS5pbkxpbmtlZCA9ICExKSwgb2UpCiAgICAgICAgICA6IEYoaiwgVSkgfHwgSChqLCBVKQogICAgICAgICAgICA/IChNKGopLCBzZShqLCBVKSkKICAgICAgICAgICAgOiBEKGosIFUpCiAgICAgICAgICAgICAgPyAoTShqKSwgYihVLCAxMiwgVyhqKSkpCiAgICAgICAgICAgICAgOiAkKGosIFUpCiAgICAgICAgICAgICAgICA/IChNKGopLCBmZSA9PT0gInsiID8gYWUoaiwgVSkgfHwgb2UgOiBiKFUsIDExLCBHKGopKSkKICAgICAgICAgICAgICAgIDogKFggPT09IDggJiYgRShDb21waWxlRXJyb3JDb2Rlcy5JTlZBTElEX0xJTktFRF9GT1JNQVQsIGEoKSwgMCksCiAgICAgICAgICAgICAgICAgIChVLmJyYWNlTmVzdCA9IDApLAogICAgICAgICAgICAgICAgICAoVS5pbkxpbmtlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgY2UoaiwgVSkpOwogICAgfQogIH0KICBmdW5jdGlvbiBjZShqLCBVKSB7CiAgICBsZXQgWCA9IHsgdHlwZTogMTQgfTsKICAgIGlmIChVLmJyYWNlTmVzdCA+IDApIHJldHVybiBhZShqLCBVKSB8fCBQKFUpOwogICAgaWYgKFUuaW5MaW5rZWQpIHJldHVybiBzZShqLCBVKSB8fCBQKFUpOwogICAgc3dpdGNoIChqLmN1cnJlbnRDaGFyKCkpIHsKICAgICAgY2FzZSAieyI6CiAgICAgICAgcmV0dXJuIGFlKGosIFUpIHx8IFAoVSk7CiAgICAgIGNhc2UgIn0iOgogICAgICAgIHJldHVybiAoCiAgICAgICAgICBFKENvbXBpbGVFcnJvckNvZGVzLlVOQkFMQU5DRURfQ0xPU0lOR19CUkFDRSwgYSgpLCAwKSwKICAgICAgICAgIGoubmV4dCgpLAogICAgICAgICAgYihVLCAzLCAifSIpCiAgICAgICAgKTsKICAgICAgY2FzZSAiQCI6CiAgICAgICAgcmV0dXJuIHNlKGosIFUpIHx8IFAoVSk7CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBpZiAocShqKSkKICAgICAgICAgIHJldHVybiAoWCA9IGIoVSwgMSwgdGUoaikpKSwgKFUuYnJhY2VOZXN0ID0gMCksIChVLmluTGlua2VkID0gITEpLCBYOwogICAgICAgIGNvbnN0IHsgaXNNb2R1bG86IGZlLCBoYXNTcGFjZTogdWUgfSA9IEooaik7CiAgICAgICAgaWYgKGZlKSByZXR1cm4gdWUgPyBiKFUsIDAsIHZlKGopKSA6IGIoVSwgNCwgeWUoaikpOwogICAgICAgIGlmIChLKGopKSByZXR1cm4gYihVLCAwLCB2ZShqKSk7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBYOwogIH0KICBmdW5jdGlvbiBkZSgpIHsKICAgIGNvbnN0IHsgY3VycmVudFR5cGU6IGosIG9mZnNldDogVSwgc3RhcnRMb2M6IFgsIGVuZExvYzogb2UgfSA9IGM7CiAgICByZXR1cm4gKAogICAgICAoYy5sYXN0VHlwZSA9IGopLAogICAgICAoYy5sYXN0T2Zmc2V0ID0gVSksCiAgICAgIChjLmxhc3RTdGFydExvYyA9IFgpLAogICAgICAoYy5sYXN0RW5kTG9jID0gb2UpLAogICAgICAoYy5vZmZzZXQgPSBpKCkpLAogICAgICAoYy5zdGFydExvYyA9IGEoKSksCiAgICAgIG4uY3VycmVudENoYXIoKSA9PT0gRU9GID8gYihjLCAxNCkgOiBjZShuLCBjKQogICAgKTsKICB9CiAgcmV0dXJuIHsgbmV4dFRva2VuOiBkZSwgY3VycmVudE9mZnNldDogaSwgY3VycmVudFBvc2l0aW9uOiBhLCBjb250ZXh0OiB1IH07Cn0KY29uc3QgRVJST1JfRE9NQUlOJDIgPSAicGFyc2VyIiwKICBLTk9XTl9FU0NBUEVTID0gLyg/OlxcXFx8XFwnfFxcdShbMC05YS1mQS1GXXs0fSl8XFxVKFswLTlhLWZBLUZdezZ9KSkvZzsKZnVuY3Rpb24gZnJvbUVzY2FwZVNlcXVlbmNlKGUsIHQsIHIpIHsKICBzd2l0Y2ggKGUpIHsKICAgIGNhc2UgIlxcXFwiOgogICAgICByZXR1cm4gIlxcIjsKICAgIGNhc2UgIlxcJyI6CiAgICAgIHJldHVybiAiJyI7CiAgICBkZWZhdWx0OiB7CiAgICAgIGNvbnN0IG4gPSBwYXJzZUludCh0IHx8IHIsIDE2KTsKICAgICAgcmV0dXJuIG4gPD0gNTUyOTUgfHwgbiA+PSA1NzM0NCA/IFN0cmluZy5mcm9tQ29kZVBvaW50KG4pIDogIsOvwr/CvSI7CiAgICB9CiAgfQp9CmZ1bmN0aW9uIGNyZWF0ZVBhcnNlcihlID0ge30pIHsKICBjb25zdCB0ID0gZS5sb2NhdGlvbiAhPT0gITEsCiAgICB7IG9uRXJyb3I6IHIsIG9uV2FybjogbiB9ID0gZTsKICBmdW5jdGlvbiBpKFMsIEEsIE8sIEYsIC4uLkQpIHsKICAgIGNvbnN0IEggPSBTLmN1cnJlbnRQb3NpdGlvbigpOwogICAgaWYgKCgoSC5vZmZzZXQgKz0gRiksIChILmNvbHVtbiArPSBGKSwgcikpIHsKICAgICAgY29uc3QgJCA9IHQgPyBjcmVhdGVMb2NhdGlvbihPLCBIKSA6IG51bGwsCiAgICAgICAgcSA9IGNyZWF0ZUNvbXBpbGVFcnJvcihBLCAkLCB7IGRvbWFpbjogRVJST1JfRE9NQUlOJDIsIGFyZ3M6IEQgfSk7CiAgICAgIHIocSk7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGEoUywgQSwgTywgRiwgLi4uRCkgewogICAgY29uc3QgSCA9IFMuY3VycmVudFBvc2l0aW9uKCk7CiAgICBpZiAoKChILm9mZnNldCArPSBGKSwgKEguY29sdW1uICs9IEYpLCBuKSkgewogICAgICBjb25zdCAkID0gdCA/IGNyZWF0ZUxvY2F0aW9uKE8sIEgpIDogbnVsbDsKICAgICAgbihjcmVhdGVDb21waWxlV2FybihBLCAkLCBEKSk7CiAgICB9CiAgfQogIGZ1bmN0aW9uIG8oUywgQSwgTykgewogICAgY29uc3QgRiA9IHsgdHlwZTogUyB9OwogICAgcmV0dXJuIHQgJiYgKChGLnN0YXJ0ID0gQSksIChGLmVuZCA9IEEpLCAoRi5sb2MgPSB7IHN0YXJ0OiBPLCBlbmQ6IE8gfSkpLCBGOwogIH0KICBmdW5jdGlvbiBsKFMsIEEsIE8sIEYpIHsKICAgIHQgJiYgKChTLmVuZCA9IEEpLCBTLmxvYyAmJiAoUy5sb2MuZW5kID0gTykpOwogIH0KICBmdW5jdGlvbiBjKFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgRiA9IG8oMywgTy5vZmZzZXQsIE8uc3RhcnRMb2MpOwogICAgcmV0dXJuIChGLnZhbHVlID0gQSksIGwoRiwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLCBGOwogIH0KICBmdW5jdGlvbiB1KFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgeyBsYXN0T2Zmc2V0OiBGLCBsYXN0U3RhcnRMb2M6IEQgfSA9IE8sCiAgICAgIEggPSBvKDUsIEYsIEQpOwogICAgcmV0dXJuICgKICAgICAgKEguaW5kZXggPSBwYXJzZUludChBLCAxMCkpLAogICAgICBTLm5leHRUb2tlbigpLAogICAgICBsKEgsIFMuY3VycmVudE9mZnNldCgpLCBTLmN1cnJlbnRQb3NpdGlvbigpKSwKICAgICAgSAogICAgKTsKICB9CiAgZnVuY3Rpb24gZChTLCBBLCBPKSB7CiAgICBjb25zdCBGID0gUy5jb250ZXh0KCksCiAgICAgIHsgbGFzdE9mZnNldDogRCwgbGFzdFN0YXJ0TG9jOiBIIH0gPSBGLAogICAgICAkID0gbyg0LCBELCBIKTsKICAgIHJldHVybiAoCiAgICAgICgkLmtleSA9IEEpLAogICAgICBPID09PSAhMCAmJiAoJC5tb2R1bG8gPSAhMCksCiAgICAgIFMubmV4dFRva2VuKCksCiAgICAgIGwoJCwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLAogICAgICAkCiAgICApOwogIH0KICBmdW5jdGlvbiBFKFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgeyBsYXN0T2Zmc2V0OiBGLCBsYXN0U3RhcnRMb2M6IEQgfSA9IE8sCiAgICAgIEggPSBvKDksIEYsIEQpOwogICAgcmV0dXJuICgKICAgICAgKEgudmFsdWUgPSBBLnJlcGxhY2UoS05PV05fRVNDQVBFUywgZnJvbUVzY2FwZVNlcXVlbmNlKSksCiAgICAgIFMubmV4dFRva2VuKCksCiAgICAgIGwoSCwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLAogICAgICBICiAgICApOwogIH0KICBmdW5jdGlvbiBiKFMpIHsKICAgIGNvbnN0IEEgPSBTLm5leHRUb2tlbigpLAogICAgICBPID0gUy5jb250ZXh0KCksCiAgICAgIHsgbGFzdE9mZnNldDogRiwgbGFzdFN0YXJ0TG9jOiBEIH0gPSBPLAogICAgICBIID0gbyg4LCBGLCBEKTsKICAgIHJldHVybiBBLnR5cGUgIT09IDEyCiAgICAgID8gKGkoCiAgICAgICAgUywKICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VNUFRZX0xJTktFRF9NT0RJRklFUiwKICAgICAgICBPLmxhc3RTdGFydExvYywKICAgICAgICAwCiAgICAgICksCiAgICAgICAgKEgudmFsdWUgPSAiIiksCiAgICAgICAgbChILCBGLCBEKSwKICAgICAgICB7IG5leHRDb25zdW1lVG9rZW46IEEsIG5vZGU6IEggfSkKICAgICAgOiAoQS52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgaSgKICAgICAgICAgIFMsCiAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICBPLmxhc3RTdGFydExvYywKICAgICAgICAgIDAsCiAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oQSkKICAgICAgICApLAogICAgICAgIChILnZhbHVlID0gQS52YWx1ZSB8fCAiIiksCiAgICAgICAgbChILCBTLmN1cnJlbnRPZmZzZXQoKSwgUy5jdXJyZW50UG9zaXRpb24oKSksCiAgICAgICAgeyBub2RlOiBIIH0pOwogIH0KICBmdW5jdGlvbiBQKFMsIEEpIHsKICAgIGNvbnN0IE8gPSBTLmNvbnRleHQoKSwKICAgICAgRiA9IG8oNywgTy5vZmZzZXQsIE8uc3RhcnRMb2MpOwogICAgcmV0dXJuIChGLnZhbHVlID0gQSksIGwoRiwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLCBGOwogIH0KICBmdW5jdGlvbiBSKFMpIHsKICAgIGNvbnN0IEEgPSBTLmNvbnRleHQoKSwKICAgICAgTyA9IG8oNiwgQS5vZmZzZXQsIEEuc3RhcnRMb2MpOwogICAgbGV0IEYgPSBTLm5leHRUb2tlbigpOwogICAgaWYgKEYudHlwZSA9PT0gOSkgewogICAgICBjb25zdCBEID0gYihTKTsKICAgICAgKE8ubW9kaWZpZXIgPSBELm5vZGUpLCAoRiA9IEQubmV4dENvbnN1bWVUb2tlbiB8fCBTLm5leHRUb2tlbigpKTsKICAgIH0KICAgIHN3aXRjaCAoCiAgICAoRi50eXBlICE9PSAxMCAmJgogICAgICBpKAogICAgICAgIFMsCiAgICAgICAgQ29tcGlsZUVycm9yQ29kZXMuVU5FWFBFQ1RFRF9MRVhJQ0FMX0FOQUxZU0lTLAogICAgICAgIEEubGFzdFN0YXJ0TG9jLAogICAgICAgIDAsCiAgICAgICAgZ2V0VG9rZW5DYXB0aW9uKEYpCiAgICAgICksCiAgICAgIChGID0gUy5uZXh0VG9rZW4oKSksCiAgICAgIEYudHlwZSA9PT0gMiAmJiAoRiA9IFMubmV4dFRva2VuKCkpLAogICAgICBGLnR5cGUpCiAgICApIHsKICAgICAgY2FzZSAxMToKICAgICAgICBGLnZhbHVlID09IG51bGwgJiYKICAgICAgICAgIGkoCiAgICAgICAgICAgIFMsCiAgICAgICAgICAgIENvbXBpbGVFcnJvckNvZGVzLlVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUywKICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIGdldFRva2VuQ2FwdGlvbihGKQogICAgICAgICAgKSwKICAgICAgICAgIChPLmtleSA9IFAoUywgRi52YWx1ZSB8fCAiIikpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIDU6CiAgICAgICAgRi52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICBpKAogICAgICAgICAgICBTLAogICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgIEEubGFzdFN0YXJ0TG9jLAogICAgICAgICAgICAwLAogICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oRikKICAgICAgICAgICksCiAgICAgICAgICAoTy5rZXkgPSBkKFMsIEYudmFsdWUgfHwgIiIpKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSA2OgogICAgICAgIEYudmFsdWUgPT0gbnVsbCAmJgogICAgICAgICAgaSgKICAgICAgICAgICAgUywKICAgICAgICAgICAgQ29tcGlsZUVycm9yQ29kZXMuVU5FWFBFQ1RFRF9MRVhJQ0FMX0FOQUxZU0lTLAogICAgICAgICAgICBBLmxhc3RTdGFydExvYywKICAgICAgICAgICAgMCwKICAgICAgICAgICAgZ2V0VG9rZW5DYXB0aW9uKEYpCiAgICAgICAgICApLAogICAgICAgICAgKE8ua2V5ID0gdShTLCBGLnZhbHVlIHx8ICIiKSk7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgNzoKICAgICAgICBGLnZhbHVlID09IG51bGwgJiYKICAgICAgICAgIGkoCiAgICAgICAgICAgIFMsCiAgICAgICAgICAgIENvbXBpbGVFcnJvckNvZGVzLlVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUywKICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIGdldFRva2VuQ2FwdGlvbihGKQogICAgICAgICAgKSwKICAgICAgICAgIChPLmtleSA9IEUoUywgRi52YWx1ZSB8fCAiIikpOwogICAgICAgIGJyZWFrOwogICAgICBkZWZhdWx0OiB7CiAgICAgICAgaShTLCBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VNUFRZX0xJTktFRF9LRVksIEEubGFzdFN0YXJ0TG9jLCAwKTsKICAgICAgICBjb25zdCBEID0gUy5jb250ZXh0KCksCiAgICAgICAgICBIID0gbyg3LCBELm9mZnNldCwgRC5zdGFydExvYyk7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIChILnZhbHVlID0gIiIpLAogICAgICAgICAgbChILCBELm9mZnNldCwgRC5zdGFydExvYyksCiAgICAgICAgICAoTy5rZXkgPSBIKSwKICAgICAgICAgIGwoTywgRC5vZmZzZXQsIEQuc3RhcnRMb2MpLAogICAgICAgICAgeyBuZXh0Q29uc3VtZVRva2VuOiBGLCBub2RlOiBPIH0KICAgICAgICApOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gbChPLCBTLmN1cnJlbnRPZmZzZXQoKSwgUy5jdXJyZW50UG9zaXRpb24oKSksIHsgbm9kZTogTyB9OwogIH0KICBmdW5jdGlvbiBUKFMpIHsKICAgIGNvbnN0IEEgPSBTLmNvbnRleHQoKSwKICAgICAgTyA9IEEuY3VycmVudFR5cGUgPT09IDEgPyBTLmN1cnJlbnRPZmZzZXQoKSA6IEEub2Zmc2V0LAogICAgICBGID0gQS5jdXJyZW50VHlwZSA9PT0gMSA/IEEuZW5kTG9jIDogQS5zdGFydExvYywKICAgICAgRCA9IG8oMiwgTywgRik7CiAgICBELml0ZW1zID0gW107CiAgICBsZXQgSCA9IG51bGwsCiAgICAgICQgPSBudWxsOwogICAgZG8gewogICAgICBjb25zdCBLID0gSCB8fCBTLm5leHRUb2tlbigpOwogICAgICBzd2l0Y2ggKCgoSCA9IG51bGwpLCBLLnR5cGUpKSB7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgSy52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oSykKICAgICAgICAgICAgKSwKICAgICAgICAgICAgRC5pdGVtcy5wdXNoKGMoUywgSy52YWx1ZSB8fCAiIikpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA2OgogICAgICAgICAgSy52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oSykKICAgICAgICAgICAgKSwKICAgICAgICAgICAgRC5pdGVtcy5wdXNoKHUoUywgSy52YWx1ZSB8fCAiIikpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA0OgogICAgICAgICAgJCA9ICEwOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA1OgogICAgICAgICAgSy52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICAgIGkoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0xFWElDQUxfQU5BTFlTSVMsCiAgICAgICAgICAgICAgQS5sYXN0U3RhcnRMb2MsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICBnZXRUb2tlbkNhcHRpb24oSykKICAgICAgICAgICAgKSwKICAgICAgICAgICAgRC5pdGVtcy5wdXNoKGQoUywgSy52YWx1ZSB8fCAiIiwgISEkKSksCiAgICAgICAgICAgICQgJiYKICAgICAgICAgICAgKGEoCiAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICBDb21waWxlV2FybkNvZGVzLlVTRV9NT0RVTE9fU1lOVEFYLAogICAgICAgICAgICAgIEEubGFzdFN0YXJ0TG9jLAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgZ2V0VG9rZW5DYXB0aW9uKEspCiAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKCQgPSBudWxsKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDc6CiAgICAgICAgICBLLnZhbHVlID09IG51bGwgJiYKICAgICAgICAgICAgaSgKICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgIENvbXBpbGVFcnJvckNvZGVzLlVORVhQRUNURURfTEVYSUNBTF9BTkFMWVNJUywKICAgICAgICAgICAgICBBLmxhc3RTdGFydExvYywKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIGdldFRva2VuQ2FwdGlvbihLKQogICAgICAgICAgICApLAogICAgICAgICAgICBELml0ZW1zLnB1c2goRShTLCBLLnZhbHVlIHx8ICIiKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDg6IHsKICAgICAgICAgIGNvbnN0IGVlID0gUihTKTsKICAgICAgICAgIEQuaXRlbXMucHVzaChlZS5ub2RlKSwgKEggPSBlZS5uZXh0Q29uc3VtZVRva2VuIHx8IG51bGwpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9IHdoaWxlIChBLmN1cnJlbnRUeXBlICE9PSAxNCAmJiBBLmN1cnJlbnRUeXBlICE9PSAxKTsKICAgIGNvbnN0IHEgPSBBLmN1cnJlbnRUeXBlID09PSAxID8gQS5sYXN0T2Zmc2V0IDogUy5jdXJyZW50T2Zmc2V0KCksCiAgICAgIEogPSBBLmN1cnJlbnRUeXBlID09PSAxID8gQS5sYXN0RW5kTG9jIDogUy5jdXJyZW50UG9zaXRpb24oKTsKICAgIHJldHVybiBsKEQsIHEsIEopLCBEOwogIH0KICBmdW5jdGlvbiBNKFMsIEEsIE8sIEYpIHsKICAgIGNvbnN0IEQgPSBTLmNvbnRleHQoKTsKICAgIGxldCBIID0gRi5pdGVtcy5sZW5ndGggPT09IDA7CiAgICBjb25zdCAkID0gbygxLCBBLCBPKTsKICAgICgkLmNhc2VzID0gW10pLCAkLmNhc2VzLnB1c2goRik7CiAgICBkbyB7CiAgICAgIGNvbnN0IHEgPSBUKFMpOwogICAgICBIIHx8IChIID0gcS5pdGVtcy5sZW5ndGggPT09IDApLCAkLmNhc2VzLnB1c2gocSk7CiAgICB9IHdoaWxlIChELmN1cnJlbnRUeXBlICE9PSAxNCk7CiAgICByZXR1cm4gKAogICAgICBIICYmIGkoUywgQ29tcGlsZUVycm9yQ29kZXMuTVVTVF9IQVZFX01FU1NBR0VTX0lOX1BMVVJBTCwgTywgMCksCiAgICAgIGwoJCwgUy5jdXJyZW50T2Zmc2V0KCksIFMuY3VycmVudFBvc2l0aW9uKCkpLAogICAgICAkCiAgICApOwogIH0KICBmdW5jdGlvbiB4KFMpIHsKICAgIGNvbnN0IEEgPSBTLmNvbnRleHQoKSwKICAgICAgeyBvZmZzZXQ6IE8sIHN0YXJ0TG9jOiBGIH0gPSBBLAogICAgICBEID0gVChTKTsKICAgIHJldHVybiBBLmN1cnJlbnRUeXBlID09PSAxNCA/IEQgOiBNKFMsIE8sIEYsIEQpOwogIH0KICBmdW5jdGlvbiBrKFMpIHsKICAgIGNvbnN0IEEgPSBjcmVhdGVUb2tlbml6ZXIoUywgYXNzaWduJDEoe30sIGUpKSwKICAgICAgTyA9IEEuY29udGV4dCgpLAogICAgICBGID0gbygwLCBPLm9mZnNldCwgTy5zdGFydExvYyk7CiAgICByZXR1cm4gKAogICAgICB0ICYmIEYubG9jICYmIChGLmxvYy5zb3VyY2UgPSBTKSwKICAgICAgKEYuYm9keSA9IHgoQSkpLAogICAgICBlLm9uQ2FjaGVLZXkgJiYgKEYuY2FjaGVLZXkgPSBlLm9uQ2FjaGVLZXkoUykpLAogICAgICBPLmN1cnJlbnRUeXBlICE9PSAxNCAmJgogICAgICBpKAogICAgICAgIEEsCiAgICAgICAgQ29tcGlsZUVycm9yQ29kZXMuVU5FWFBFQ1RFRF9MRVhJQ0FMX0FOQUxZU0lTLAogICAgICAgIE8ubGFzdFN0YXJ0TG9jLAogICAgICAgIDAsCiAgICAgICAgU1tPLm9mZnNldF0gfHwgIiIKICAgICAgKSwKICAgICAgbChGLCBBLmN1cnJlbnRPZmZzZXQoKSwgQS5jdXJyZW50UG9zaXRpb24oKSksCiAgICAgIEYKICAgICk7CiAgfQogIHJldHVybiB7IHBhcnNlOiBrIH07Cn0KZnVuY3Rpb24gZ2V0VG9rZW5DYXB0aW9uKGUpIHsKICBpZiAoZS50eXBlID09PSAxNCkgcmV0dXJuICJFT0YiOwogIGNvbnN0IHQgPSAoZS52YWx1ZSB8fCAiIikucmVwbGFjZSgvXHI/XG4vZ3UsICJcXG4iKTsKICByZXR1cm4gdC5sZW5ndGggPiAxMCA/IHQuc2xpY2UoMCwgOSkgKyAiw6LigqzCpiIgOiB0Owp9CmZ1bmN0aW9uIGNyZWF0ZVRyYW5zZm9ybWVyKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSB7IGFzdDogZSwgaGVscGVyczogbmV3IFNldCgpIH07CiAgcmV0dXJuIHsgY29udGV4dDogKCkgPT4gciwgaGVscGVyOiAoYSkgPT4gKHIuaGVscGVycy5hZGQoYSksIGEpIH07Cn0KZnVuY3Rpb24gdHJhdmVyc2VOb2RlcyhlLCB0KSB7CiAgZm9yIChsZXQgciA9IDA7IHIgPCBlLmxlbmd0aDsgcisrKSB0cmF2ZXJzZU5vZGUoZVtyXSwgdCk7Cn0KZnVuY3Rpb24gdHJhdmVyc2VOb2RlKGUsIHQpIHsKICBzd2l0Y2ggKGUudHlwZSkgewogICAgY2FzZSAxOgogICAgICB0cmF2ZXJzZU5vZGVzKGUuY2FzZXMsIHQpLCB0LmhlbHBlcigicGx1cmFsIik7CiAgICAgIGJyZWFrOwogICAgY2FzZSAyOgogICAgICB0cmF2ZXJzZU5vZGVzKGUuaXRlbXMsIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgNjogewogICAgICB0cmF2ZXJzZU5vZGUoZS5rZXksIHQpLCB0LmhlbHBlcigibGlua2VkIiksIHQuaGVscGVyKCJ0eXBlIik7CiAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSA1OgogICAgICB0LmhlbHBlcigiaW50ZXJwb2xhdGUiKSwgdC5oZWxwZXIoImxpc3QiKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDQ6CiAgICAgIHQuaGVscGVyKCJpbnRlcnBvbGF0ZSIpLCB0LmhlbHBlcigibmFtZWQiKTsKICAgICAgYnJlYWs7CiAgfQp9CmZ1bmN0aW9uIHRyYW5zZm9ybShlLCB0ID0ge30pIHsKICBjb25zdCByID0gY3JlYXRlVHJhbnNmb3JtZXIoZSk7CiAgci5oZWxwZXIoIm5vcm1hbGl6ZSIpLCBlLmJvZHkgJiYgdHJhdmVyc2VOb2RlKGUuYm9keSwgcik7CiAgY29uc3QgbiA9IHIuY29udGV4dCgpOwogIGUuaGVscGVycyA9IEFycmF5LmZyb20obi5oZWxwZXJzKTsKfQpmdW5jdGlvbiBvcHRpbWl6ZShlKSB7CiAgY29uc3QgdCA9IGUuYm9keTsKICByZXR1cm4gKAogICAgdC50eXBlID09PSAyCiAgICAgID8gb3B0aW1pemVNZXNzYWdlTm9kZSh0KQogICAgICA6IHQuY2FzZXMuZm9yRWFjaCgocikgPT4gb3B0aW1pemVNZXNzYWdlTm9kZShyKSksCiAgICBlCiAgKTsKfQpmdW5jdGlvbiBvcHRpbWl6ZU1lc3NhZ2VOb2RlKGUpIHsKICBpZiAoZS5pdGVtcy5sZW5ndGggPT09IDEpIHsKICAgIGNvbnN0IHQgPSBlLml0ZW1zWzBdOwogICAgKHQudHlwZSA9PT0gMyB8fCB0LnR5cGUgPT09IDkpICYmICgoZS5zdGF0aWMgPSB0LnZhbHVlKSwgZGVsZXRlIHQudmFsdWUpOwogIH0gZWxzZSB7CiAgICBjb25zdCB0ID0gW107CiAgICBmb3IgKGxldCByID0gMDsgciA8IGUuaXRlbXMubGVuZ3RoOyByKyspIHsKICAgICAgY29uc3QgbiA9IGUuaXRlbXNbcl07CiAgICAgIGlmICghKG4udHlwZSA9PT0gMyB8fCBuLnR5cGUgPT09IDkpIHx8IG4udmFsdWUgPT0gbnVsbCkgYnJlYWs7CiAgICAgIHQucHVzaChuLnZhbHVlKTsKICAgIH0KICAgIGlmICh0Lmxlbmd0aCA9PT0gZS5pdGVtcy5sZW5ndGgpIHsKICAgICAgZS5zdGF0aWMgPSBqb2luKHQpOwogICAgICBmb3IgKGxldCByID0gMDsgciA8IGUuaXRlbXMubGVuZ3RoOyByKyspIHsKICAgICAgICBjb25zdCBuID0gZS5pdGVtc1tyXTsKICAgICAgICAobi50eXBlID09PSAzIHx8IG4udHlwZSA9PT0gOSkgJiYgZGVsZXRlIG4udmFsdWU7CiAgICAgIH0KICAgIH0KICB9Cn0KZnVuY3Rpb24gbWluaWZ5KGUpIHsKICBzd2l0Y2ggKCgoZS50ID0gZS50eXBlKSwgZS50eXBlKSkgewogICAgY2FzZSAwOiB7CiAgICAgIGNvbnN0IHQgPSBlOwogICAgICBtaW5pZnkodC5ib2R5KSwgKHQuYiA9IHQuYm9keSksIGRlbGV0ZSB0LmJvZHk7CiAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSAxOiB7CiAgICAgIGNvbnN0IHQgPSBlLAogICAgICAgIHIgPSB0LmNhc2VzOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IHIubGVuZ3RoOyBuKyspIG1pbmlmeShyW25dKTsKICAgICAgKHQuYyA9IHIpLCBkZWxldGUgdC5jYXNlczsKICAgICAgYnJlYWs7CiAgICB9CiAgICBjYXNlIDI6IHsKICAgICAgY29uc3QgdCA9IGUsCiAgICAgICAgciA9IHQuaXRlbXM7CiAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgci5sZW5ndGg7IG4rKykgbWluaWZ5KHJbbl0pOwogICAgICAodC5pID0gciksCiAgICAgICAgZGVsZXRlIHQuaXRlbXMsCiAgICAgICAgdC5zdGF0aWMgJiYgKCh0LnMgPSB0LnN0YXRpYyksIGRlbGV0ZSB0LnN0YXRpYyk7CiAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSAzOgogICAgY2FzZSA5OgogICAgY2FzZSA4OgogICAgY2FzZSA3OiB7CiAgICAgIGNvbnN0IHQgPSBlOwogICAgICB0LnZhbHVlICYmICgodC52ID0gdC52YWx1ZSksIGRlbGV0ZSB0LnZhbHVlKTsKICAgICAgYnJlYWs7CiAgICB9CiAgICBjYXNlIDY6IHsKICAgICAgY29uc3QgdCA9IGU7CiAgICAgIG1pbmlmeSh0LmtleSksCiAgICAgICAgKHQuayA9IHQua2V5KSwKICAgICAgICBkZWxldGUgdC5rZXksCiAgICAgICAgdC5tb2RpZmllciAmJgogICAgICAgIChtaW5pZnkodC5tb2RpZmllciksICh0Lm0gPSB0Lm1vZGlmaWVyKSwgZGVsZXRlIHQubW9kaWZpZXIpOwogICAgICBicmVhazsKICAgIH0KICAgIGNhc2UgNTogewogICAgICBjb25zdCB0ID0gZTsKICAgICAgKHQuaSA9IHQuaW5kZXgpLCBkZWxldGUgdC5pbmRleDsKICAgICAgYnJlYWs7CiAgICB9CiAgICBjYXNlIDQ6IHsKICAgICAgY29uc3QgdCA9IGU7CiAgICAgICh0LmsgPSB0LmtleSksIGRlbGV0ZSB0LmtleTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGRlbGV0ZSBlLnR5cGU7Cn0KZnVuY3Rpb24gY3JlYXRlQ29kZUdlbmVyYXRvcihlLCB0KSB7CiAgY29uc3QgeyBzb3VyY2VNYXA6IHIsIGZpbGVuYW1lOiBuLCBicmVha0xpbmVDb2RlOiBpLCBuZWVkSW5kZW50OiBhIH0gPSB0LAogICAgbyA9IHQubG9jYXRpb24gIT09ICExLAogICAgbCA9IHsKICAgICAgZmlsZW5hbWU6IG4sCiAgICAgIGNvZGU6ICIiLAogICAgICBjb2x1bW46IDEsCiAgICAgIGxpbmU6IDEsCiAgICAgIG9mZnNldDogMCwKICAgICAgbWFwOiB2b2lkIDAsCiAgICAgIGJyZWFrTGluZUNvZGU6IGksCiAgICAgIG5lZWRJbmRlbnQ6IGEsCiAgICAgIGluZGVudExldmVsOiAwLAogICAgfTsKICBvICYmIGUubG9jICYmIChsLnNvdXJjZSA9IGUubG9jLnNvdXJjZSk7CiAgY29uc3QgYyA9ICgpID0+IGw7CiAgZnVuY3Rpb24gdShNLCB4KSB7CiAgICBsLmNvZGUgKz0gTTsKICB9CiAgZnVuY3Rpb24gZChNLCB4ID0gITApIHsKICAgIGNvbnN0IGsgPSB4ID8gaSA6ICIiOwogICAgdShhID8gayArICIgICIucmVwZWF0KE0pIDogayk7CiAgfQogIGZ1bmN0aW9uIEUoTSA9ICEwKSB7CiAgICBjb25zdCB4ID0gKytsLmluZGVudExldmVsOwogICAgTSAmJiBkKHgpOwogIH0KICBmdW5jdGlvbiBiKE0gPSAhMCkgewogICAgY29uc3QgeCA9IC0tbC5pbmRlbnRMZXZlbDsKICAgIE0gJiYgZCh4KTsKICB9CiAgZnVuY3Rpb24gUCgpIHsKICAgIGQobC5pbmRlbnRMZXZlbCk7CiAgfQogIHJldHVybiB7CiAgICBjb250ZXh0OiBjLAogICAgcHVzaDogdSwKICAgIGluZGVudDogRSwKICAgIGRlaW5kZW50OiBiLAogICAgbmV3bGluZTogUCwKICAgIGhlbHBlcjogKE0pID0+IGBfJHtNfWAsCiAgICBuZWVkSW5kZW50OiAoKSA9PiBsLm5lZWRJbmRlbnQsCiAgfTsKfQpmdW5jdGlvbiBnZW5lcmF0ZUxpbmtlZE5vZGUoZSwgdCkgewogIGNvbnN0IHsgaGVscGVyOiByIH0gPSBlOwogIGUucHVzaChgJHtyKCJsaW5rZWQiKX0oYCksCiAgICBnZW5lcmF0ZU5vZGUoZSwgdC5rZXkpLAogICAgdC5tb2RpZmllcgogICAgICA/IChlLnB1c2goIiwgIiksIGdlbmVyYXRlTm9kZShlLCB0Lm1vZGlmaWVyKSwgZS5wdXNoKCIsIF90eXBlIikpCiAgICAgIDogZS5wdXNoKCIsIHVuZGVmaW5lZCwgX3R5cGUiKSwKICAgIGUucHVzaCgiKSIpOwp9CmZ1bmN0aW9uIGdlbmVyYXRlTWVzc2FnZU5vZGUoZSwgdCkgewogIGNvbnN0IHsgaGVscGVyOiByLCBuZWVkSW5kZW50OiBuIH0gPSBlOwogIGUucHVzaChgJHtyKCJub3JtYWxpemUiKX0oW2ApLCBlLmluZGVudChuKCkpOwogIGNvbnN0IGkgPSB0Lml0ZW1zLmxlbmd0aDsKICBmb3IgKGxldCBhID0gMDsgYSA8IGkgJiYgKGdlbmVyYXRlTm9kZShlLCB0Lml0ZW1zW2FdKSwgYSAhPT0gaSAtIDEpOyBhKyspCiAgICBlLnB1c2goIiwgIik7CiAgZS5kZWluZGVudChuKCkpLCBlLnB1c2goIl0pIik7Cn0KZnVuY3Rpb24gZ2VuZXJhdGVQbHVyYWxOb2RlKGUsIHQpIHsKICBjb25zdCB7IGhlbHBlcjogciwgbmVlZEluZGVudDogbiB9ID0gZTsKICBpZiAodC5jYXNlcy5sZW5ndGggPiAxKSB7CiAgICBlLnB1c2goYCR7cigicGx1cmFsIil9KFtgKSwgZS5pbmRlbnQobigpKTsKICAgIGNvbnN0IGkgPSB0LmNhc2VzLmxlbmd0aDsKICAgIGZvciAobGV0IGEgPSAwOyBhIDwgaSAmJiAoZ2VuZXJhdGVOb2RlKGUsIHQuY2FzZXNbYV0pLCBhICE9PSBpIC0gMSk7IGErKykKICAgICAgZS5wdXNoKCIsICIpOwogICAgZS5kZWluZGVudChuKCkpLCBlLnB1c2goIl0pIik7CiAgfQp9CmZ1bmN0aW9uIGdlbmVyYXRlUmVzb3VyY2UoZSwgdCkgewogIHQuYm9keSA/IGdlbmVyYXRlTm9kZShlLCB0LmJvZHkpIDogZS5wdXNoKCJudWxsIik7Cn0KZnVuY3Rpb24gZ2VuZXJhdGVOb2RlKGUsIHQpIHsKICBjb25zdCB7IGhlbHBlcjogciB9ID0gZTsKICBzd2l0Y2ggKHQudHlwZSkgewogICAgY2FzZSAwOgogICAgICBnZW5lcmF0ZVJlc291cmNlKGUsIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgMToKICAgICAgZ2VuZXJhdGVQbHVyYWxOb2RlKGUsIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgMjoKICAgICAgZ2VuZXJhdGVNZXNzYWdlTm9kZShlLCB0KTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDY6CiAgICAgIGdlbmVyYXRlTGlua2VkTm9kZShlLCB0KTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDg6CiAgICAgIGUucHVzaChKU09OLnN0cmluZ2lmeSh0LnZhbHVlKSwgdCk7CiAgICAgIGJyZWFrOwogICAgY2FzZSA3OgogICAgICBlLnB1c2goSlNPTi5zdHJpbmdpZnkodC52YWx1ZSksIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgNToKICAgICAgZS5wdXNoKGAke3IoImludGVycG9sYXRlIil9KCR7cigibGlzdCIpfSgke3QuaW5kZXh9KSlgLCB0KTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDQ6CiAgICAgIGUucHVzaChgJHtyKCJpbnRlcnBvbGF0ZSIpfSgke3IoIm5hbWVkIil9KCR7SlNPTi5zdHJpbmdpZnkodC5rZXkpfSkpYCwgdCk7CiAgICAgIGJyZWFrOwogICAgY2FzZSA5OgogICAgICBlLnB1c2goSlNPTi5zdHJpbmdpZnkodC52YWx1ZSksIHQpOwogICAgICBicmVhazsKICAgIGNhc2UgMzoKICAgICAgZS5wdXNoKEpTT04uc3RyaW5naWZ5KHQudmFsdWUpLCB0KTsKICAgICAgYnJlYWs7CiAgfQp9CmNvbnN0IGdlbmVyYXRlID0gKGUsIHQgPSB7fSkgPT4gewogIGNvbnN0IHIgPSBpc1N0cmluZyh0Lm1vZGUpID8gdC5tb2RlIDogIm5vcm1hbCIsCiAgICBuID0gaXNTdHJpbmcodC5maWxlbmFtZSkgPyB0LmZpbGVuYW1lIDogIm1lc3NhZ2UuaW50bCIsCiAgICBpID0gISF0LnNvdXJjZU1hcCwKICAgIGEgPQogICAgICB0LmJyZWFrTGluZUNvZGUgIT0gbnVsbAogICAgICAgID8gdC5icmVha0xpbmVDb2RlCiAgICAgICAgOiByID09PSAiYXJyb3ciCiAgICAgICAgICA/ICI7IgogICAgICAgICAgOiBgCmAsCiAgICBvID0gdC5uZWVkSW5kZW50ID8gdC5uZWVkSW5kZW50IDogciAhPT0gImFycm93IiwKICAgIGwgPSBlLmhlbHBlcnMgfHwgW10sCiAgICBjID0gY3JlYXRlQ29kZUdlbmVyYXRvcihlLCB7CiAgICAgIG1vZGU6IHIsCiAgICAgIGZpbGVuYW1lOiBuLAogICAgICBzb3VyY2VNYXA6IGksCiAgICAgIGJyZWFrTGluZUNvZGU6IGEsCiAgICAgIG5lZWRJbmRlbnQ6IG8sCiAgICB9KTsKICBjLnB1c2gociA9PT0gIm5vcm1hbCIgPyAiZnVuY3Rpb24gX19tc2dfXyAoY3R4KSB7IiA6ICIoY3R4KSA9PiB7IiksCiAgICBjLmluZGVudChvKSwKICAgIGwubGVuZ3RoID4gMCAmJgogICAgKGMucHVzaCgKICAgICAgYGNvbnN0IHsgJHtqb2luKAogICAgICAgIGwubWFwKChFKSA9PiBgJHtFfTogXyR7RX1gKSwKICAgICAgICAiLCAiCiAgICAgICl9IH0gPSBjdHhgCiAgICApLAogICAgICBjLm5ld2xpbmUoKSksCiAgICBjLnB1c2goInJldHVybiAiKSwKICAgIGdlbmVyYXRlTm9kZShjLCBlKSwKICAgIGMuZGVpbmRlbnQobyksCiAgICBjLnB1c2goIn0iKSwKICAgIGRlbGV0ZSBlLmhlbHBlcnM7CiAgY29uc3QgeyBjb2RlOiB1LCBtYXA6IGQgfSA9IGMuY29udGV4dCgpOwogIHJldHVybiB7IGFzdDogZSwgY29kZTogdSwgbWFwOiBkID8gZC50b0pTT04oKSA6IHZvaWQgMCB9Owp9OwpmdW5jdGlvbiBiYXNlQ29tcGlsZSQxKGUsIHQgPSB7fSkgewogIGNvbnN0IHIgPSBhc3NpZ24kMSh7fSwgdCksCiAgICBuID0gISFyLmppdCwKICAgIGkgPSAhIXIubWluaWZ5LAogICAgYSA9IHIub3B0aW1pemUgPT0gbnVsbCA/ICEwIDogci5vcHRpbWl6ZSwKICAgIGwgPSBjcmVhdGVQYXJzZXIocikucGFyc2UoZSk7CiAgcmV0dXJuIG4KICAgID8gKGEgJiYgb3B0aW1pemUobCksIGkgJiYgbWluaWZ5KGwpLCB7IGFzdDogbCwgY29kZTogIiIgfSkKICAgIDogKHRyYW5zZm9ybShsLCByKSwgZ2VuZXJhdGUobCwgcikpOwp9Ci8qIQogKiBjb3JlLWJhc2UgdjkuMTQuMgogKiAoYykgMjAyNCBrYXp1eWEga2F3YWd1Y2hpCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovIGZ1bmN0aW9uIGluaXRGZWF0dXJlRmxhZ3MkMSgpIHsKICB0eXBlb2YgX19JTlRMSUZZX1BST0RfREVWVE9PTFNfXyAhPSAiYm9vbGVhbiIgJiYKICAgIChnZXRHbG9iYWxUaGlzKCkuX19JTlRMSUZZX1BST0RfREVWVE9PTFNfXyA9ICExKTsKfQpjb25zdCBwYXRoU3RhdGVNYWNoaW5lID0gW107CnBhdGhTdGF0ZU1hY2hpbmVbMF0gPSB7IHc6IFswXSwgaTogWzMsIDBdLCAiWyI6IFs0XSwgbzogWzddIH07CnBhdGhTdGF0ZU1hY2hpbmVbMV0gPSB7IHc6IFsxXSwgIi4iOiBbMl0sICJbIjogWzRdLCBvOiBbN10gfTsKcGF0aFN0YXRlTWFjaGluZVsyXSA9IHsgdzogWzJdLCBpOiBbMywgMF0sIDA6IFszLCAwXSB9OwpwYXRoU3RhdGVNYWNoaW5lWzNdID0gewogIGk6IFszLCAwXSwKICAwOiBbMywgMF0sCiAgdzogWzEsIDFdLAogICIuIjogWzIsIDFdLAogICJbIjogWzQsIDFdLAogIG86IFs3LCAxXSwKfTsKcGF0aFN0YXRlTWFjaGluZVs0XSA9IHsKICAiJyI6IFs1LCAwXSwKICAnIic6IFs2LCAwXSwKICAiWyI6IFs0LCAyXSwKICAiXSI6IFsxLCAzXSwKICBvOiA4LAogIGw6IFs0LCAwXSwKfTsKcGF0aFN0YXRlTWFjaGluZVs1XSA9IHsgIiciOiBbNCwgMF0sIG86IDgsIGw6IFs1LCAwXSB9OwpwYXRoU3RhdGVNYWNoaW5lWzZdID0geyAnIic6IFs0LCAwXSwgbzogOCwgbDogWzYsIDBdIH07CmNvbnN0IGxpdGVyYWxWYWx1ZVJFID0gL15ccz8oPzp0cnVlfGZhbHNlfC0/W1xkLl0rfCdbXiddKid8IlteIl0qIilccz8kLzsKZnVuY3Rpb24gaXNMaXRlcmFsKGUpIHsKICByZXR1cm4gbGl0ZXJhbFZhbHVlUkUudGVzdChlKTsKfQpmdW5jdGlvbiBzdHJpcFF1b3RlcyhlKSB7CiAgY29uc3QgdCA9IGUuY2hhckNvZGVBdCgwKSwKICAgIHIgPSBlLmNoYXJDb2RlQXQoZS5sZW5ndGggLSAxKTsKICByZXR1cm4gdCA9PT0gciAmJiAodCA9PT0gMzQgfHwgdCA9PT0gMzkpID8gZS5zbGljZSgxLCAtMSkgOiBlOwp9CmZ1bmN0aW9uIGdldFBhdGhDaGFyVHlwZShlKSB7CiAgaWYgKGUgPT0gbnVsbCkgcmV0dXJuICJvIjsKICBzd2l0Y2ggKGUuY2hhckNvZGVBdCgwKSkgewogICAgY2FzZSA5MToKICAgIGNhc2UgOTM6CiAgICBjYXNlIDQ2OgogICAgY2FzZSAzNDoKICAgIGNhc2UgMzk6CiAgICAgIHJldHVybiBlOwogICAgY2FzZSA5NToKICAgIGNhc2UgMzY6CiAgICBjYXNlIDQ1OgogICAgICByZXR1cm4gImkiOwogICAgY2FzZSA5OgogICAgY2FzZSAxMDoKICAgIGNhc2UgMTM6CiAgICBjYXNlIDE2MDoKICAgIGNhc2UgNjUyNzk6CiAgICBjYXNlIDgyMzI6CiAgICBjYXNlIDgyMzM6CiAgICAgIHJldHVybiAidyI7CiAgfQogIHJldHVybiAiaSI7Cn0KZnVuY3Rpb24gZm9ybWF0U3ViUGF0aChlKSB7CiAgY29uc3QgdCA9IGUudHJpbSgpOwogIHJldHVybiBlLmNoYXJBdCgwKSA9PT0gIjAiICYmIGlzTmFOKHBhcnNlSW50KGUpKQogICAgPyAhMQogICAgOiBpc0xpdGVyYWwodCkKICAgICAgPyBzdHJpcFF1b3Rlcyh0KQogICAgICA6ICIqIiArIHQ7Cn0KZnVuY3Rpb24gcGFyc2UoZSkgewogIGNvbnN0IHQgPSBbXTsKICBsZXQgciA9IC0xLAogICAgbiA9IDAsCiAgICBpID0gMCwKICAgIGEsCiAgICBvLAogICAgbCwKICAgIGMsCiAgICB1LAogICAgZCwKICAgIEU7CiAgY29uc3QgYiA9IFtdOwogIChiWzBdID0gKCkgPT4gewogICAgbyA9PT0gdm9pZCAwID8gKG8gPSBsKSA6IChvICs9IGwpOwogIH0pLAogICAgKGJbMV0gPSAoKSA9PiB7CiAgICAgIG8gIT09IHZvaWQgMCAmJiAodC5wdXNoKG8pLCAobyA9IHZvaWQgMCkpOwogICAgfSksCiAgICAoYlsyXSA9ICgpID0+IHsKICAgICAgYlswXSgpLCBpKys7CiAgICB9KSwKICAgIChiWzNdID0gKCkgPT4gewogICAgICBpZiAoaSA+IDApIGktLSwgKG4gPSA0KSwgYlswXSgpOwogICAgICBlbHNlIHsKICAgICAgICBpZiAoKChpID0gMCksIG8gPT09IHZvaWQgMCB8fCAoKG8gPSBmb3JtYXRTdWJQYXRoKG8pKSwgbyA9PT0gITEpKSkKICAgICAgICAgIHJldHVybiAhMTsKICAgICAgICBiWzFdKCk7CiAgICAgIH0KICAgIH0pOwogIGZ1bmN0aW9uIFAoKSB7CiAgICBjb25zdCBSID0gZVtyICsgMV07CiAgICBpZiAoKG4gPT09IDUgJiYgUiA9PT0gIiciKSB8fCAobiA9PT0gNiAmJiBSID09PSAnIicpKQogICAgICByZXR1cm4gcisrLCAobCA9ICJcXCIgKyBSKSwgYlswXSgpLCAhMDsKICB9CiAgZm9yICg7IG4gIT09IG51bGw7KQogICAgaWYgKChyKyssIChhID0gZVtyXSksICEoYSA9PT0gIlxcIiAmJiBQKCkpKSkgewogICAgICBpZiAoCiAgICAgICAgKChjID0gZ2V0UGF0aENoYXJUeXBlKGEpKSwKICAgICAgICAgIChFID0gcGF0aFN0YXRlTWFjaGluZVtuXSksCiAgICAgICAgICAodSA9IEVbY10gfHwgRS5sIHx8IDgpLAogICAgICAgICAgdSA9PT0gOCB8fAogICAgICAgICAgKChuID0gdVswXSksCiAgICAgICAgICAgIHVbMV0gIT09IHZvaWQgMCAmJiAoKGQgPSBiW3VbMV1dKSwgZCAmJiAoKGwgPSBhKSwgZCgpID09PSAhMSkpKSkKICAgICAgKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKG4gPT09IDcpIHJldHVybiB0OwogICAgfQp9CmNvbnN0IGNhY2hlID0gbmV3IE1hcCgpOwpmdW5jdGlvbiByZXNvbHZlV2l0aEtleVZhbHVlKGUsIHQpIHsKICByZXR1cm4gaXNPYmplY3QkMShlKSA/IGVbdF0gOiBudWxsOwp9CmZ1bmN0aW9uIHJlc29sdmVWYWx1ZSQxKGUsIHQpIHsKICBpZiAoIWlzT2JqZWN0JDEoZSkpIHJldHVybiBudWxsOwogIGxldCByID0gY2FjaGUuZ2V0KHQpOwogIGlmICgociB8fCAoKHIgPSBwYXJzZSh0KSksIHIgJiYgY2FjaGUuc2V0KHQsIHIpKSwgIXIpKSByZXR1cm4gbnVsbDsKICBjb25zdCBuID0gci5sZW5ndGg7CiAgbGV0IGkgPSBlLAogICAgYSA9IDA7CiAgZm9yICg7IGEgPCBuOykgewogICAgY29uc3QgbyA9IGlbclthXV07CiAgICBpZiAobyA9PT0gdm9pZCAwIHx8IGlzRnVuY3Rpb24oaSkpIHJldHVybiBudWxsOwogICAgKGkgPSBvKSwgYSsrOwogIH0KICByZXR1cm4gaTsKfQpjb25zdCBERUZBVUxUX01PRElGSUVSID0gKGUpID0+IGUsCiAgREVGQVVMVF9NRVNTQUdFID0gKGUpID0+ICIiLAogIERFRkFVTFRfTUVTU0FHRV9EQVRBX1RZUEUgPSAidGV4dCIsCiAgREVGQVVMVF9OT1JNQUxJWkUgPSAoZSkgPT4gKGUubGVuZ3RoID09PSAwID8gIiIgOiBqb2luKGUpKSwKICBERUZBVUxUX0lOVEVSUE9MQVRFID0gdG9EaXNwbGF5U3RyaW5nOwpmdW5jdGlvbiBwbHVyYWxEZWZhdWx0KGUsIHQpIHsKICByZXR1cm4gKAogICAgKGUgPSBNYXRoLmFicyhlKSksCiAgICB0ID09PSAyID8gKGUgPyAoZSA+IDEgPyAxIDogMCkgOiAxKSA6IGUgPyBNYXRoLm1pbihlLCAyKSA6IDAKICApOwp9CmZ1bmN0aW9uIGdldFBsdXJhbEluZGV4KGUpIHsKICBjb25zdCB0ID0gaXNOdW1iZXIoZS5wbHVyYWxJbmRleCkgPyBlLnBsdXJhbEluZGV4IDogLTE7CiAgcmV0dXJuIGUubmFtZWQgJiYgKGlzTnVtYmVyKGUubmFtZWQuY291bnQpIHx8IGlzTnVtYmVyKGUubmFtZWQubikpCiAgICA/IGlzTnVtYmVyKGUubmFtZWQuY291bnQpCiAgICAgID8gZS5uYW1lZC5jb3VudAogICAgICA6IGlzTnVtYmVyKGUubmFtZWQubikKICAgICAgICA/IGUubmFtZWQubgogICAgICAgIDogdAogICAgOiB0Owp9CmZ1bmN0aW9uIG5vcm1hbGl6ZU5hbWVkKGUsIHQpIHsKICB0LmNvdW50IHx8ICh0LmNvdW50ID0gZSksIHQubiB8fCAodC5uID0gZSk7Cn0KZnVuY3Rpb24gY3JlYXRlTWVzc2FnZUNvbnRleHQoZSA9IHt9KSB7CiAgY29uc3QgdCA9IGUubG9jYWxlLAogICAgciA9IGdldFBsdXJhbEluZGV4KGUpLAogICAgbiA9CiAgICAgIGlzT2JqZWN0JDEoZS5wbHVyYWxSdWxlcykgJiYgaXNTdHJpbmcodCkgJiYgaXNGdW5jdGlvbihlLnBsdXJhbFJ1bGVzW3RdKQogICAgICAgID8gZS5wbHVyYWxSdWxlc1t0XQogICAgICAgIDogcGx1cmFsRGVmYXVsdCwKICAgIGkgPQogICAgICBpc09iamVjdCQxKGUucGx1cmFsUnVsZXMpICYmIGlzU3RyaW5nKHQpICYmIGlzRnVuY3Rpb24oZS5wbHVyYWxSdWxlc1t0XSkKICAgICAgICA/IHBsdXJhbERlZmF1bHQKICAgICAgICA6IHZvaWQgMCwKICAgIGEgPSAoeCkgPT4geFtuKHIsIHgubGVuZ3RoLCBpKV0sCiAgICBvID0gZS5saXN0IHx8IFtdLAogICAgbCA9ICh4KSA9PiBvW3hdLAogICAgYyA9IGUubmFtZWQgfHwgY3JlYXRlKCk7CiAgaXNOdW1iZXIoZS5wbHVyYWxJbmRleCkgJiYgbm9ybWFsaXplTmFtZWQociwgYyk7CiAgY29uc3QgdSA9ICh4KSA9PiBjW3hdOwogIGZ1bmN0aW9uIGQoeCkgewogICAgY29uc3QgayA9IGlzRnVuY3Rpb24oZS5tZXNzYWdlcykKICAgICAgPyBlLm1lc3NhZ2VzKHgpCiAgICAgIDogaXNPYmplY3QkMShlLm1lc3NhZ2VzKQogICAgICAgID8gZS5tZXNzYWdlc1t4XQogICAgICAgIDogITE7CiAgICByZXR1cm4gayB8fCAoZS5wYXJlbnQgPyBlLnBhcmVudC5tZXNzYWdlKHgpIDogREVGQVVMVF9NRVNTQUdFKTsKICB9CiAgY29uc3QgRSA9ICh4KSA9PiAoZS5tb2RpZmllcnMgPyBlLm1vZGlmaWVyc1t4XSA6IERFRkFVTFRfTU9ESUZJRVIpLAogICAgYiA9CiAgICAgIGlzUGxhaW5PYmplY3QkMShlLnByb2Nlc3NvcikgJiYgaXNGdW5jdGlvbihlLnByb2Nlc3Nvci5ub3JtYWxpemUpCiAgICAgICAgPyBlLnByb2Nlc3Nvci5ub3JtYWxpemUKICAgICAgICA6IERFRkFVTFRfTk9STUFMSVpFLAogICAgUCA9CiAgICAgIGlzUGxhaW5PYmplY3QkMShlLnByb2Nlc3NvcikgJiYgaXNGdW5jdGlvbihlLnByb2Nlc3Nvci5pbnRlcnBvbGF0ZSkKICAgICAgICA/IGUucHJvY2Vzc29yLmludGVycG9sYXRlCiAgICAgICAgOiBERUZBVUxUX0lOVEVSUE9MQVRFLAogICAgUiA9CiAgICAgIGlzUGxhaW5PYmplY3QkMShlLnByb2Nlc3NvcikgJiYgaXNTdHJpbmcoZS5wcm9jZXNzb3IudHlwZSkKICAgICAgICA/IGUucHJvY2Vzc29yLnR5cGUKICAgICAgICA6IERFRkFVTFRfTUVTU0FHRV9EQVRBX1RZUEUsCiAgICBNID0gewogICAgICBsaXN0OiBsLAogICAgICBuYW1lZDogdSwKICAgICAgcGx1cmFsOiBhLAogICAgICBsaW5rZWQ6ICh4LCAuLi5rKSA9PiB7CiAgICAgICAgY29uc3QgW1MsIEFdID0gazsKICAgICAgICBsZXQgTyA9ICJ0ZXh0IiwKICAgICAgICAgIEYgPSAiIjsKICAgICAgICBrLmxlbmd0aCA9PT0gMQogICAgICAgICAgPyBpc09iamVjdCQxKFMpCiAgICAgICAgICAgID8gKChGID0gUy5tb2RpZmllciB8fCBGKSwgKE8gPSBTLnR5cGUgfHwgTykpCiAgICAgICAgICAgIDogaXNTdHJpbmcoUykgJiYgKEYgPSBTIHx8IEYpCiAgICAgICAgICA6IGsubGVuZ3RoID09PSAyICYmCiAgICAgICAgICAoaXNTdHJpbmcoUykgJiYgKEYgPSBTIHx8IEYpLCBpc1N0cmluZyhBKSAmJiAoTyA9IEEgfHwgTykpOwogICAgICAgIGNvbnN0IEQgPSBkKHgpKE0pLAogICAgICAgICAgSCA9IE8gPT09ICJ2bm9kZSIgJiYgaXNBcnJheSQxKEQpICYmIEYgPyBEWzBdIDogRDsKICAgICAgICByZXR1cm4gRiA/IEUoRikoSCwgTykgOiBIOwogICAgICB9LAogICAgICBtZXNzYWdlOiBkLAogICAgICB0eXBlOiBSLAogICAgICBpbnRlcnBvbGF0ZTogUCwKICAgICAgbm9ybWFsaXplOiBiLAogICAgICB2YWx1ZXM6IGFzc2lnbiQxKGNyZWF0ZSgpLCBvLCBjKSwKICAgIH07CiAgcmV0dXJuIE07Cn0KbGV0IGRldnRvb2xzID0gbnVsbDsKZnVuY3Rpb24gc2V0RGV2VG9vbHNIb29rKGUpIHsKICBkZXZ0b29scyA9IGU7Cn0KZnVuY3Rpb24gaW5pdEkxOG5EZXZUb29scyhlLCB0LCByKSB7CiAgZGV2dG9vbHMgJiYKICAgIGRldnRvb2xzLmVtaXQoImkxOG46aW5pdCIsIHsKICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLAogICAgICBpMThuOiBlLAogICAgICB2ZXJzaW9uOiB0LAogICAgICBtZXRhOiByLAogICAgfSk7Cn0KY29uc3QgdHJhbnNsYXRlRGV2VG9vbHMgPSBjcmVhdGVEZXZUb29sc0hvb2soImZ1bmN0aW9uOnRyYW5zbGF0ZSIpOwpmdW5jdGlvbiBjcmVhdGVEZXZUb29sc0hvb2soZSkgewogIHJldHVybiAodCkgPT4gZGV2dG9vbHMgJiYgZGV2dG9vbHMuZW1pdChlLCB0KTsKfQpjb25zdCBjb2RlJDEkMSA9IENvbXBpbGVXYXJuQ29kZXMuX19FWFRFTkRfUE9JTlRfXywKICBpbmMkMSQxID0gaW5jcmVtZW50ZXIoY29kZSQxJDEpLAogIENvcmVXYXJuQ29kZXMgPSB7CiAgICBOT1RfRk9VTkRfS0VZOiBjb2RlJDEkMSwKICAgIEZBTExCQUNLX1RPX1RSQU5TTEFURTogaW5jJDEkMSgpLAogICAgQ0FOTk9UX0ZPUk1BVF9OVU1CRVI6IGluYyQxJDEoKSwKICAgIEZBTExCQUNLX1RPX05VTUJFUl9GT1JNQVQ6IGluYyQxJDEoKSwKICAgIENBTk5PVF9GT1JNQVRfREFURTogaW5jJDEkMSgpLAogICAgRkFMTEJBQ0tfVE9fREFURV9GT1JNQVQ6IGluYyQxJDEoKSwKICAgIEVYUEVSSU1FTlRBTF9DVVNUT01fTUVTU0FHRV9DT01QSUxFUjogaW5jJDEkMSgpLAogICAgX19FWFRFTkRfUE9JTlRfXzogaW5jJDEkMSgpLAogIH0sCiAgY29kZSQyID0gQ29tcGlsZUVycm9yQ29kZXMuX19FWFRFTkRfUE9JTlRfXywKICBpbmMkMiA9IGluY3JlbWVudGVyKGNvZGUkMiksCiAgQ29yZUVycm9yQ29kZXMgPSB7CiAgICBJTlZBTElEX0FSR1VNRU5UOiBjb2RlJDIsCiAgICBJTlZBTElEX0RBVEVfQVJHVU1FTlQ6IGluYyQyKCksCiAgICBJTlZBTElEX0lTT19EQVRFX0FSR1VNRU5UOiBpbmMkMigpLAogICAgTk9UX1NVUFBPUlRfTk9OX1NUUklOR19NRVNTQUdFOiBpbmMkMigpLAogICAgTk9UX1NVUFBPUlRfTE9DQUxFX1BST01JU0VfVkFMVUU6IGluYyQyKCksCiAgICBOT1RfU1VQUE9SVF9MT0NBTEVfQVNZTkNfRlVOQ1RJT046IGluYyQyKCksCiAgICBOT1RfU1VQUE9SVF9MT0NBTEVfVFlQRTogaW5jJDIoKSwKICAgIF9fRVhURU5EX1BPSU5UX186IGluYyQyKCksCiAgfTsKZnVuY3Rpb24gY3JlYXRlQ29yZUVycm9yKGUpIHsKICByZXR1cm4gY3JlYXRlQ29tcGlsZUVycm9yKGUsIG51bGwsIHZvaWQgMCk7Cn0KZnVuY3Rpb24gZ2V0TG9jYWxlJDEoZSwgdCkgewogIHJldHVybiB0LmxvY2FsZSAhPSBudWxsID8gcmVzb2x2ZUxvY2FsZSh0LmxvY2FsZSkgOiByZXNvbHZlTG9jYWxlKGUubG9jYWxlKTsKfQpsZXQgX3Jlc29sdmVMb2NhbGU7CmZ1bmN0aW9uIHJlc29sdmVMb2NhbGUoZSkgewogIGlmIChpc1N0cmluZyhlKSkgcmV0dXJuIGU7CiAgaWYgKGlzRnVuY3Rpb24oZSkpIHsKICAgIGlmIChlLnJlc29sdmVkT25jZSAmJiBfcmVzb2x2ZUxvY2FsZSAhPSBudWxsKSByZXR1cm4gX3Jlc29sdmVMb2NhbGU7CiAgICBpZiAoZS5jb25zdHJ1Y3Rvci5uYW1lID09PSAiRnVuY3Rpb24iKSB7CiAgICAgIGNvbnN0IHQgPSBlKCk7CiAgICAgIGlmIChpc1Byb21pc2UodCkpCiAgICAgICAgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLk5PVF9TVVBQT1JUX0xPQ0FMRV9QUk9NSVNFX1ZBTFVFKTsKICAgICAgcmV0dXJuIChfcmVzb2x2ZUxvY2FsZSA9IHQpOwogICAgfSBlbHNlCiAgICAgIHRocm93IGNyZWF0ZUNvcmVFcnJvcihDb3JlRXJyb3JDb2Rlcy5OT1RfU1VQUE9SVF9MT0NBTEVfQVNZTkNfRlVOQ1RJT04pOwogIH0gZWxzZSB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuTk9UX1NVUFBPUlRfTE9DQUxFX1RZUEUpOwp9CmZ1bmN0aW9uIGZhbGxiYWNrV2l0aFNpbXBsZShlLCB0LCByKSB7CiAgcmV0dXJuIFsKICAgIC4uLm5ldyBTZXQoWwogICAgICByLAogICAgICAuLi4oaXNBcnJheSQxKHQpCiAgICAgICAgPyB0CiAgICAgICAgOiBpc09iamVjdCQxKHQpCiAgICAgICAgICA/IE9iamVjdC5rZXlzKHQpCiAgICAgICAgICA6IGlzU3RyaW5nKHQpCiAgICAgICAgICAgID8gW3RdCiAgICAgICAgICAgIDogW3JdKSwKICAgIF0pLAogIF07Cn0KZnVuY3Rpb24gZmFsbGJhY2tXaXRoTG9jYWxlQ2hhaW4oZSwgdCwgcikgewogIGNvbnN0IG4gPSBpc1N0cmluZyhyKSA/IHIgOiBERUZBVUxUX0xPQ0FMRSwKICAgIGkgPSBlOwogIGkuX19sb2NhbGVDaGFpbkNhY2hlIHx8IChpLl9fbG9jYWxlQ2hhaW5DYWNoZSA9IG5ldyBNYXAoKSk7CiAgbGV0IGEgPSBpLl9fbG9jYWxlQ2hhaW5DYWNoZS5nZXQobik7CiAgaWYgKCFhKSB7CiAgICBhID0gW107CiAgICBsZXQgbyA9IFtyXTsKICAgIGZvciAoOyBpc0FycmF5JDEobyk7KSBvID0gYXBwZW5kQmxvY2tUb0NoYWluKGEsIG8sIHQpOwogICAgY29uc3QgbCA9CiAgICAgIGlzQXJyYXkkMSh0KSB8fCAhaXNQbGFpbk9iamVjdCQxKHQpID8gdCA6IHQuZGVmYXVsdCA/IHQuZGVmYXVsdCA6IG51bGw7CiAgICAobyA9IGlzU3RyaW5nKGwpID8gW2xdIDogbCksCiAgICAgIGlzQXJyYXkkMShvKSAmJiBhcHBlbmRCbG9ja1RvQ2hhaW4oYSwgbywgITEpLAogICAgICBpLl9fbG9jYWxlQ2hhaW5DYWNoZS5zZXQobiwgYSk7CiAgfQogIHJldHVybiBhOwp9CmZ1bmN0aW9uIGFwcGVuZEJsb2NrVG9DaGFpbihlLCB0LCByKSB7CiAgbGV0IG4gPSAhMDsKICBmb3IgKGxldCBpID0gMDsgaSA8IHQubGVuZ3RoICYmIGlzQm9vbGVhbihuKTsgaSsrKSB7CiAgICBjb25zdCBhID0gdFtpXTsKICAgIGlzU3RyaW5nKGEpICYmIChuID0gYXBwZW5kTG9jYWxlVG9DaGFpbihlLCB0W2ldLCByKSk7CiAgfQogIHJldHVybiBuOwp9CmZ1bmN0aW9uIGFwcGVuZExvY2FsZVRvQ2hhaW4oZSwgdCwgcikgewogIGxldCBuOwogIGNvbnN0IGkgPSB0LnNwbGl0KCItIik7CiAgZG8gewogICAgY29uc3QgYSA9IGkuam9pbigiLSIpOwogICAgKG4gPSBhcHBlbmRJdGVtVG9DaGFpbihlLCBhLCByKSksIGkuc3BsaWNlKC0xLCAxKTsKICB9IHdoaWxlIChpLmxlbmd0aCAmJiBuID09PSAhMCk7CiAgcmV0dXJuIG47Cn0KZnVuY3Rpb24gYXBwZW5kSXRlbVRvQ2hhaW4oZSwgdCwgcikgewogIGxldCBuID0gITE7CiAgaWYgKCFlLmluY2x1ZGVzKHQpICYmICgobiA9ICEwKSwgdCkpIHsKICAgIG4gPSB0W3QubGVuZ3RoIC0gMV0gIT09ICIhIjsKICAgIGNvbnN0IGkgPSB0LnJlcGxhY2UoLyEvZywgIiIpOwogICAgZS5wdXNoKGkpLCAoaXNBcnJheSQxKHIpIHx8IGlzUGxhaW5PYmplY3QkMShyKSkgJiYgcltpXSAmJiAobiA9IHJbaV0pOwogIH0KICByZXR1cm4gbjsKfQpjb25zdCBWRVJTSU9OJDEgPSAiOS4xNC4yIiwKICBOT1RfUkVPU0xWRUQgPSAtMSwKICBERUZBVUxUX0xPQ0FMRSA9ICJlbi1VUyIsCiAgTUlTU0lOR19SRVNPTFZFX1ZBTFVFID0gIiIsCiAgY2FwaXRhbGl6ZSA9IChlKSA9PiBgJHtlLmNoYXJBdCgwKS50b0xvY2FsZVVwcGVyQ2FzZSgpfSR7ZS5zdWJzdHIoMSl9YDsKZnVuY3Rpb24gZ2V0RGVmYXVsdExpbmtlZE1vZGlmaWVycygpIHsKICByZXR1cm4gewogICAgdXBwZXI6IChlLCB0KSA9PgogICAgICB0ID09PSAidGV4dCIgJiYgaXNTdHJpbmcoZSkKICAgICAgICA/IGUudG9VcHBlckNhc2UoKQogICAgICAgIDogdCA9PT0gInZub2RlIiAmJiBpc09iamVjdCQxKGUpICYmICJfX3ZfaXNWTm9kZSIgaW4gZQogICAgICAgICAgPyBlLmNoaWxkcmVuLnRvVXBwZXJDYXNlKCkKICAgICAgICAgIDogZSwKICAgIGxvd2VyOiAoZSwgdCkgPT4KICAgICAgdCA9PT0gInRleHQiICYmIGlzU3RyaW5nKGUpCiAgICAgICAgPyBlLnRvTG93ZXJDYXNlKCkKICAgICAgICA6IHQgPT09ICJ2bm9kZSIgJiYgaXNPYmplY3QkMShlKSAmJiAiX192X2lzVk5vZGUiIGluIGUKICAgICAgICAgID8gZS5jaGlsZHJlbi50b0xvd2VyQ2FzZSgpCiAgICAgICAgICA6IGUsCiAgICBjYXBpdGFsaXplOiAoZSwgdCkgPT4KICAgICAgdCA9PT0gInRleHQiICYmIGlzU3RyaW5nKGUpCiAgICAgICAgPyBjYXBpdGFsaXplKGUpCiAgICAgICAgOiB0ID09PSAidm5vZGUiICYmIGlzT2JqZWN0JDEoZSkgJiYgIl9fdl9pc1ZOb2RlIiBpbiBlCiAgICAgICAgICA/IGNhcGl0YWxpemUoZS5jaGlsZHJlbikKICAgICAgICAgIDogZSwKICB9Owp9CmxldCBfY29tcGlsZXI7CmZ1bmN0aW9uIHJlZ2lzdGVyTWVzc2FnZUNvbXBpbGVyKGUpIHsKICBfY29tcGlsZXIgPSBlOwp9CmxldCBfcmVzb2x2ZXI7CmZ1bmN0aW9uIHJlZ2lzdGVyTWVzc2FnZVJlc29sdmVyKGUpIHsKICBfcmVzb2x2ZXIgPSBlOwp9CmxldCBfZmFsbGJhY2tlcjsKZnVuY3Rpb24gcmVnaXN0ZXJMb2NhbGVGYWxsYmFja2VyKGUpIHsKICBfZmFsbGJhY2tlciA9IGU7Cn0KbGV0IF9hZGRpdGlvbmFsTWV0YSA9IG51bGw7CmNvbnN0IHNldEFkZGl0aW9uYWxNZXRhID0gKGUpID0+IHsKICBfYWRkaXRpb25hbE1ldGEgPSBlOwp9LAogIGdldEFkZGl0aW9uYWxNZXRhID0gKCkgPT4gX2FkZGl0aW9uYWxNZXRhOwpsZXQgX2ZhbGxiYWNrQ29udGV4dCA9IG51bGw7CmNvbnN0IHNldEZhbGxiYWNrQ29udGV4dCA9IChlKSA9PiB7CiAgX2ZhbGxiYWNrQ29udGV4dCA9IGU7Cn0sCiAgZ2V0RmFsbGJhY2tDb250ZXh0ID0gKCkgPT4gX2ZhbGxiYWNrQ29udGV4dDsKbGV0IF9jaWQgPSAwOwpmdW5jdGlvbiBjcmVhdGVDb3JlQ29udGV4dChlID0ge30pIHsKICBjb25zdCB0ID0gaXNGdW5jdGlvbihlLm9uV2FybikgPyBlLm9uV2FybiA6IHdhcm4sCiAgICByID0gaXNTdHJpbmcoZS52ZXJzaW9uKSA/IGUudmVyc2lvbiA6IFZFUlNJT04kMSwKICAgIG4gPSBpc1N0cmluZyhlLmxvY2FsZSkgfHwgaXNGdW5jdGlvbihlLmxvY2FsZSkgPyBlLmxvY2FsZSA6IERFRkFVTFRfTE9DQUxFLAogICAgaSA9IGlzRnVuY3Rpb24obikgPyBERUZBVUxUX0xPQ0FMRSA6IG4sCiAgICBhID0KICAgICAgaXNBcnJheSQxKGUuZmFsbGJhY2tMb2NhbGUpIHx8CiAgICAgICAgaXNQbGFpbk9iamVjdCQxKGUuZmFsbGJhY2tMb2NhbGUpIHx8CiAgICAgICAgaXNTdHJpbmcoZS5mYWxsYmFja0xvY2FsZSkgfHwKICAgICAgICBlLmZhbGxiYWNrTG9jYWxlID09PSAhMQogICAgICAgID8gZS5mYWxsYmFja0xvY2FsZQogICAgICAgIDogaSwKICAgIG8gPSBpc1BsYWluT2JqZWN0JDEoZS5tZXNzYWdlcykgPyBlLm1lc3NhZ2VzIDogY3JlYXRlUmVzb3VyY2VzKGkpLAogICAgbCA9IGlzUGxhaW5PYmplY3QkMShlLmRhdGV0aW1lRm9ybWF0cykKICAgICAgPyBlLmRhdGV0aW1lRm9ybWF0cwogICAgICA6IGNyZWF0ZVJlc291cmNlcyhpKSwKICAgIGMgPSBpc1BsYWluT2JqZWN0JDEoZS5udW1iZXJGb3JtYXRzKSA/IGUubnVtYmVyRm9ybWF0cyA6IGNyZWF0ZVJlc291cmNlcyhpKSwKICAgIHUgPSBhc3NpZ24kMShjcmVhdGUoKSwgZS5tb2RpZmllcnMsIGdldERlZmF1bHRMaW5rZWRNb2RpZmllcnMoKSksCiAgICBkID0gZS5wbHVyYWxSdWxlcyB8fCBjcmVhdGUoKSwKICAgIEUgPSBpc0Z1bmN0aW9uKGUubWlzc2luZykgPyBlLm1pc3NpbmcgOiBudWxsLAogICAgYiA9CiAgICAgIGlzQm9vbGVhbihlLm1pc3NpbmdXYXJuKSB8fCBpc1JlZ0V4cChlLm1pc3NpbmdXYXJuKSA/IGUubWlzc2luZ1dhcm4gOiAhMCwKICAgIFAgPQogICAgICBpc0Jvb2xlYW4oZS5mYWxsYmFja1dhcm4pIHx8IGlzUmVnRXhwKGUuZmFsbGJhY2tXYXJuKQogICAgICAgID8gZS5mYWxsYmFja1dhcm4KICAgICAgICA6ICEwLAogICAgUiA9ICEhZS5mYWxsYmFja0Zvcm1hdCwKICAgIFQgPSAhIWUudW5yZXNvbHZpbmcsCiAgICBNID0gaXNGdW5jdGlvbihlLnBvc3RUcmFuc2xhdGlvbikgPyBlLnBvc3RUcmFuc2xhdGlvbiA6IG51bGwsCiAgICB4ID0gaXNQbGFpbk9iamVjdCQxKGUucHJvY2Vzc29yKSA/IGUucHJvY2Vzc29yIDogbnVsbCwKICAgIGsgPSBpc0Jvb2xlYW4oZS53YXJuSHRtbE1lc3NhZ2UpID8gZS53YXJuSHRtbE1lc3NhZ2UgOiAhMCwKICAgIFMgPSAhIWUuZXNjYXBlUGFyYW1ldGVyLAogICAgQSA9IGlzRnVuY3Rpb24oZS5tZXNzYWdlQ29tcGlsZXIpID8gZS5tZXNzYWdlQ29tcGlsZXIgOiBfY29tcGlsZXIsCiAgICBPID0gaXNGdW5jdGlvbihlLm1lc3NhZ2VSZXNvbHZlcikKICAgICAgPyBlLm1lc3NhZ2VSZXNvbHZlcgogICAgICA6IF9yZXNvbHZlciB8fCByZXNvbHZlV2l0aEtleVZhbHVlLAogICAgRiA9IGlzRnVuY3Rpb24oZS5sb2NhbGVGYWxsYmFja2VyKQogICAgICA/IGUubG9jYWxlRmFsbGJhY2tlcgogICAgICA6IF9mYWxsYmFja2VyIHx8IGZhbGxiYWNrV2l0aFNpbXBsZSwKICAgIEQgPSBpc09iamVjdCQxKGUuZmFsbGJhY2tDb250ZXh0KSA/IGUuZmFsbGJhY2tDb250ZXh0IDogdm9pZCAwLAogICAgSCA9IGUsCiAgICAkID0gaXNPYmplY3QkMShILl9fZGF0ZXRpbWVGb3JtYXR0ZXJzKSA/IEguX19kYXRldGltZUZvcm1hdHRlcnMgOiBuZXcgTWFwKCksCiAgICBxID0gaXNPYmplY3QkMShILl9fbnVtYmVyRm9ybWF0dGVycykgPyBILl9fbnVtYmVyRm9ybWF0dGVycyA6IG5ldyBNYXAoKSwKICAgIEogPSBpc09iamVjdCQxKEguX19tZXRhKSA/IEguX19tZXRhIDoge307CiAgX2NpZCsrOwogIGNvbnN0IEsgPSB7CiAgICB2ZXJzaW9uOiByLAogICAgY2lkOiBfY2lkLAogICAgbG9jYWxlOiBuLAogICAgZmFsbGJhY2tMb2NhbGU6IGEsCiAgICBtZXNzYWdlczogbywKICAgIG1vZGlmaWVyczogdSwKICAgIHBsdXJhbFJ1bGVzOiBkLAogICAgbWlzc2luZzogRSwKICAgIG1pc3NpbmdXYXJuOiBiLAogICAgZmFsbGJhY2tXYXJuOiBQLAogICAgZmFsbGJhY2tGb3JtYXQ6IFIsCiAgICB1bnJlc29sdmluZzogVCwKICAgIHBvc3RUcmFuc2xhdGlvbjogTSwKICAgIHByb2Nlc3NvcjogeCwKICAgIHdhcm5IdG1sTWVzc2FnZTogaywKICAgIGVzY2FwZVBhcmFtZXRlcjogUywKICAgIG1lc3NhZ2VDb21waWxlcjogQSwKICAgIG1lc3NhZ2VSZXNvbHZlcjogTywKICAgIGxvY2FsZUZhbGxiYWNrZXI6IEYsCiAgICBmYWxsYmFja0NvbnRleHQ6IEQsCiAgICBvbldhcm46IHQsCiAgICBfX21ldGE6IEosCiAgfTsKICByZXR1cm4gKAogICAgKEsuZGF0ZXRpbWVGb3JtYXRzID0gbCksCiAgICAoSy5udW1iZXJGb3JtYXRzID0gYyksCiAgICAoSy5fX2RhdGV0aW1lRm9ybWF0dGVycyA9ICQpLAogICAgKEsuX19udW1iZXJGb3JtYXR0ZXJzID0gcSksCiAgICBfX0lOVExJRllfUFJPRF9ERVZUT09MU19fICYmIGluaXRJMThuRGV2VG9vbHMoSywgciwgSiksCiAgICBLCiAgKTsKfQpjb25zdCBjcmVhdGVSZXNvdXJjZXMgPSAoZSkgPT4gKHsgW2VdOiBjcmVhdGUoKSB9KTsKZnVuY3Rpb24gaGFuZGxlTWlzc2luZyhlLCB0LCByLCBuLCBpKSB7CiAgY29uc3QgeyBtaXNzaW5nOiBhLCBvbldhcm46IG8gfSA9IGU7CiAgaWYgKGEgIT09IG51bGwpIHsKICAgIGNvbnN0IGwgPSBhKGUsIHIsIHQsIGkpOwogICAgcmV0dXJuIGlzU3RyaW5nKGwpID8gbCA6IHQ7CiAgfSBlbHNlIHJldHVybiB0Owp9CmZ1bmN0aW9uIHVwZGF0ZUZhbGxiYWNrTG9jYWxlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZTsKICAobi5fX2xvY2FsZUNoYWluQ2FjaGUgPSBuZXcgTWFwKCkpLCBlLmxvY2FsZUZhbGxiYWNrZXIoZSwgciwgdCk7Cn0KZnVuY3Rpb24gaXNBbG1vc3RTYW1lTG9jYWxlKGUsIHQpIHsKICByZXR1cm4gZSA9PT0gdCA/ICExIDogZS5zcGxpdCgiLSIpWzBdID09PSB0LnNwbGl0KCItIilbMF07Cn0KZnVuY3Rpb24gaXNJbXBsaWNpdEZhbGxiYWNrKGUsIHQpIHsKICBjb25zdCByID0gdC5pbmRleE9mKGUpOwogIGlmIChyID09PSAtMSkgcmV0dXJuICExOwogIGZvciAobGV0IG4gPSByICsgMTsgbiA8IHQubGVuZ3RoOyBuKyspCiAgICBpZiAoaXNBbG1vc3RTYW1lTG9jYWxlKGUsIHRbbl0pKSByZXR1cm4gITA7CiAgcmV0dXJuICExOwp9CmZ1bmN0aW9uIGZvcm1hdCQxKGUpIHsKICByZXR1cm4gKHIpID0+IGZvcm1hdFBhcnRzKHIsIGUpOwp9CmZ1bmN0aW9uIGZvcm1hdFBhcnRzKGUsIHQpIHsKICBjb25zdCByID0gcmVzb2x2ZUJvZHkodCk7CiAgaWYgKHIgPT0gbnVsbCkgdGhyb3cgY3JlYXRlVW5oYW5kbGVOb2RlRXJyb3IoMCk7CiAgaWYgKHJlc29sdmVUeXBlKHIpID09PSAxKSB7CiAgICBjb25zdCBhID0gcmVzb2x2ZUNhc2VzKHIpOwogICAgcmV0dXJuIGUucGx1cmFsKGEucmVkdWNlKChvLCBsKSA9PiBbLi4ubywgZm9ybWF0TWVzc2FnZVBhcnRzKGUsIGwpXSwgW10pKTsKICB9IGVsc2UgcmV0dXJuIGZvcm1hdE1lc3NhZ2VQYXJ0cyhlLCByKTsKfQpjb25zdCBQUk9QU19CT0RZID0gWyJiIiwgImJvZHkiXTsKZnVuY3Rpb24gcmVzb2x2ZUJvZHkoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfQk9EWSk7Cn0KY29uc3QgUFJPUFNfQ0FTRVMgPSBbImMiLCAiY2FzZXMiXTsKZnVuY3Rpb24gcmVzb2x2ZUNhc2VzKGUpIHsKICByZXR1cm4gcmVzb2x2ZVByb3BzKGUsIFBST1BTX0NBU0VTLCBbXSk7Cn0KZnVuY3Rpb24gZm9ybWF0TWVzc2FnZVBhcnRzKGUsIHQpIHsKICBjb25zdCByID0gcmVzb2x2ZVN0YXRpYyh0KTsKICBpZiAociAhPSBudWxsKSByZXR1cm4gZS50eXBlID09PSAidGV4dCIgPyByIDogZS5ub3JtYWxpemUoW3JdKTsKICB7CiAgICBjb25zdCBuID0gcmVzb2x2ZUl0ZW1zKHQpLnJlZHVjZSgKICAgICAgKGksIGEpID0+IFsuLi5pLCBmb3JtYXRNZXNzYWdlUGFydChlLCBhKV0sCiAgICAgIFtdCiAgICApOwogICAgcmV0dXJuIGUubm9ybWFsaXplKG4pOwogIH0KfQpjb25zdCBQUk9QU19TVEFUSUMgPSBbInMiLCAic3RhdGljIl07CmZ1bmN0aW9uIHJlc29sdmVTdGF0aWMoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfU1RBVElDKTsKfQpjb25zdCBQUk9QU19JVEVNUyA9IFsiaSIsICJpdGVtcyJdOwpmdW5jdGlvbiByZXNvbHZlSXRlbXMoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfSVRFTVMsIFtdKTsKfQpmdW5jdGlvbiBmb3JtYXRNZXNzYWdlUGFydChlLCB0KSB7CiAgY29uc3QgciA9IHJlc29sdmVUeXBlKHQpOwogIHN3aXRjaCAocikgewogICAgY2FzZSAzOgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgY2FzZSA5OgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgY2FzZSA0OiB7CiAgICAgIGNvbnN0IG4gPSB0OwogICAgICBpZiAoaGFzT3duKG4sICJrIikgJiYgbi5rKSByZXR1cm4gZS5pbnRlcnBvbGF0ZShlLm5hbWVkKG4uaykpOwogICAgICBpZiAoaGFzT3duKG4sICJrZXkiKSAmJiBuLmtleSkgcmV0dXJuIGUuaW50ZXJwb2xhdGUoZS5uYW1lZChuLmtleSkpOwogICAgICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcihyKTsKICAgIH0KICAgIGNhc2UgNTogewogICAgICBjb25zdCBuID0gdDsKICAgICAgaWYgKGhhc093bihuLCAiaSIpICYmIGlzTnVtYmVyKG4uaSkpIHJldHVybiBlLmludGVycG9sYXRlKGUubGlzdChuLmkpKTsKICAgICAgaWYgKGhhc093bihuLCAiaW5kZXgiKSAmJiBpc051bWJlcihuLmluZGV4KSkKICAgICAgICByZXR1cm4gZS5pbnRlcnBvbGF0ZShlLmxpc3Qobi5pbmRleCkpOwogICAgICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcihyKTsKICAgIH0KICAgIGNhc2UgNjogewogICAgICBjb25zdCBuID0gdCwKICAgICAgICBpID0gcmVzb2x2ZUxpbmtlZE1vZGlmaWVyKG4pLAogICAgICAgIGEgPSByZXNvbHZlTGlua2VkS2V5KG4pOwogICAgICByZXR1cm4gZS5saW5rZWQoCiAgICAgICAgZm9ybWF0TWVzc2FnZVBhcnQoZSwgYSksCiAgICAgICAgaSA/IGZvcm1hdE1lc3NhZ2VQYXJ0KGUsIGkpIDogdm9pZCAwLAogICAgICAgIGUudHlwZQogICAgICApOwogICAgfQogICAgY2FzZSA3OgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgY2FzZSA4OgogICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHQsIHIpOwogICAgZGVmYXVsdDoKICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmhhbmRsZWQgbm9kZSBvbiBmb3JtYXQgbWVzc2FnZSBwYXJ0OiAke3J9YCk7CiAgfQp9CmNvbnN0IFBST1BTX1RZUEUgPSBbInQiLCAidHlwZSJdOwpmdW5jdGlvbiByZXNvbHZlVHlwZShlKSB7CiAgcmV0dXJuIHJlc29sdmVQcm9wcyhlLCBQUk9QU19UWVBFKTsKfQpjb25zdCBQUk9QU19WQUxVRSA9IFsidiIsICJ2YWx1ZSJdOwpmdW5jdGlvbiByZXNvbHZlVmFsdWUoZSwgdCkgewogIGNvbnN0IHIgPSByZXNvbHZlUHJvcHMoZSwgUFJPUFNfVkFMVUUpOwogIGlmIChyKSByZXR1cm4gcjsKICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcih0KTsKfQpjb25zdCBQUk9QU19NT0RJRklFUiA9IFsibSIsICJtb2RpZmllciJdOwpmdW5jdGlvbiByZXNvbHZlTGlua2VkTW9kaWZpZXIoZSkgewogIHJldHVybiByZXNvbHZlUHJvcHMoZSwgUFJPUFNfTU9ESUZJRVIpOwp9CmNvbnN0IFBST1BTX0tFWSA9IFsiayIsICJrZXkiXTsKZnVuY3Rpb24gcmVzb2x2ZUxpbmtlZEtleShlKSB7CiAgY29uc3QgdCA9IHJlc29sdmVQcm9wcyhlLCBQUk9QU19LRVkpOwogIGlmICh0KSByZXR1cm4gdDsKICB0aHJvdyBjcmVhdGVVbmhhbmRsZU5vZGVFcnJvcig2KTsKfQpmdW5jdGlvbiByZXNvbHZlUHJvcHMoZSwgdCwgcikgewogIGZvciAobGV0IG4gPSAwOyBuIDwgdC5sZW5ndGg7IG4rKykgewogICAgY29uc3QgaSA9IHRbbl07CiAgICBpZiAoaGFzT3duKGUsIGkpICYmIGVbaV0gIT0gbnVsbCkgcmV0dXJuIGVbaV07CiAgfQogIHJldHVybiByOwp9CmZ1bmN0aW9uIGNyZWF0ZVVuaGFuZGxlTm9kZUVycm9yKGUpIHsKICByZXR1cm4gbmV3IEVycm9yKGB1bmhhbmRsZWQgbm9kZSB0eXBlOiAke2V9YCk7Cn0KY29uc3QgZGVmYXVsdE9uQ2FjaGVLZXkgPSAoZSkgPT4gZTsKbGV0IGNvbXBpbGVDYWNoZSA9IGNyZWF0ZSgpOwpmdW5jdGlvbiBpc01lc3NhZ2VBU1QoZSkgewogIHJldHVybiAoCiAgICBpc09iamVjdCQxKGUpICYmCiAgICByZXNvbHZlVHlwZShlKSA9PT0gMCAmJgogICAgKGhhc093bihlLCAiYiIpIHx8IGhhc093bihlLCAiYm9keSIpKQogICk7Cn0KZnVuY3Rpb24gYmFzZUNvbXBpbGUoZSwgdCA9IHt9KSB7CiAgbGV0IHIgPSAhMTsKICBjb25zdCBuID0gdC5vbkVycm9yIHx8IGRlZmF1bHRPbkVycm9yOwogIHJldHVybiAoCiAgICAodC5vbkVycm9yID0gKGkpID0+IHsKICAgICAgKHIgPSAhMCksIG4oaSk7CiAgICB9KSwKICAgIHsgLi4uYmFzZUNvbXBpbGUkMShlLCB0KSwgZGV0ZWN0RXJyb3I6IHIgfQogICk7Cn0KZnVuY3Rpb24gY29tcGlsZShlLCB0KSB7CiAgaWYgKGlzU3RyaW5nKGUpKSB7CiAgICBpc0Jvb2xlYW4odC53YXJuSHRtbE1lc3NhZ2UpICYmIHQud2Fybkh0bWxNZXNzYWdlOwogICAgY29uc3QgbiA9ICh0Lm9uQ2FjaGVLZXkgfHwgZGVmYXVsdE9uQ2FjaGVLZXkpKGUpLAogICAgICBpID0gY29tcGlsZUNhY2hlW25dOwogICAgaWYgKGkpIHJldHVybiBpOwogICAgY29uc3QgeyBhc3Q6IGEsIGRldGVjdEVycm9yOiBvIH0gPSBiYXNlQ29tcGlsZShlLCB7CiAgICAgIC4uLnQsCiAgICAgIGxvY2F0aW9uOiAhMSwKICAgICAgaml0OiAhMCwKICAgIH0pLAogICAgICBsID0gZm9ybWF0JDEoYSk7CiAgICByZXR1cm4gbyA/IGwgOiAoY29tcGlsZUNhY2hlW25dID0gbCk7CiAgfSBlbHNlIHsKICAgIGNvbnN0IHIgPSBlLmNhY2hlS2V5OwogICAgaWYgKHIpIHsKICAgICAgY29uc3QgbiA9IGNvbXBpbGVDYWNoZVtyXTsKICAgICAgcmV0dXJuIG4gfHwgKGNvbXBpbGVDYWNoZVtyXSA9IGZvcm1hdCQxKGUpKTsKICAgIH0gZWxzZSByZXR1cm4gZm9ybWF0JDEoZSk7CiAgfQp9CmNvbnN0IE5PT1BfTUVTU0FHRV9GVU5DVElPTiA9ICgpID0+ICIiLAogIGlzTWVzc2FnZUZ1bmN0aW9uID0gKGUpID0+IGlzRnVuY3Rpb24oZSk7CmZ1bmN0aW9uIHRyYW5zbGF0ZShlLCAuLi50KSB7CiAgY29uc3QgewogICAgZmFsbGJhY2tGb3JtYXQ6IHIsCiAgICBwb3N0VHJhbnNsYXRpb246IG4sCiAgICB1bnJlc29sdmluZzogaSwKICAgIG1lc3NhZ2VDb21waWxlcjogYSwKICAgIGZhbGxiYWNrTG9jYWxlOiBvLAogICAgbWVzc2FnZXM6IGwsCiAgfSA9IGUsCiAgICBbYywgdV0gPSBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4udCksCiAgICBkID0gaXNCb29sZWFuKHUubWlzc2luZ1dhcm4pID8gdS5taXNzaW5nV2FybiA6IGUubWlzc2luZ1dhcm4sCiAgICBFID0gaXNCb29sZWFuKHUuZmFsbGJhY2tXYXJuKSA/IHUuZmFsbGJhY2tXYXJuIDogZS5mYWxsYmFja1dhcm4sCiAgICBiID0gaXNCb29sZWFuKHUuZXNjYXBlUGFyYW1ldGVyKSA/IHUuZXNjYXBlUGFyYW1ldGVyIDogZS5lc2NhcGVQYXJhbWV0ZXIsCiAgICBQID0gISF1LnJlc29sdmVkTWVzc2FnZSwKICAgIFIgPQogICAgICBpc1N0cmluZyh1LmRlZmF1bHQpIHx8IGlzQm9vbGVhbih1LmRlZmF1bHQpCiAgICAgICAgPyBpc0Jvb2xlYW4odS5kZWZhdWx0KQogICAgICAgICAgPyBhCiAgICAgICAgICAgID8gYwogICAgICAgICAgICA6ICgpID0+IGMKICAgICAgICAgIDogdS5kZWZhdWx0CiAgICAgICAgOiByCiAgICAgICAgICA/IGEKICAgICAgICAgICAgPyBjCiAgICAgICAgICAgIDogKCkgPT4gYwogICAgICAgICAgOiAiIiwKICAgIFQgPSByIHx8IFIgIT09ICIiLAogICAgTSA9IGdldExvY2FsZSQxKGUsIHUpOwogIGIgJiYgZXNjYXBlUGFyYW1zKHUpOwogIGxldCBbeCwgaywgU10gPSBQCiAgICA/IFtjLCBNLCBsW01dIHx8IGNyZWF0ZSgpXQogICAgOiByZXNvbHZlTWVzc2FnZUZvcm1hdChlLCBjLCBNLCBvLCBFLCBkKSwKICAgIEEgPSB4LAogICAgTyA9IGM7CiAgaWYgKAogICAgKCFQICYmCiAgICAgICEoaXNTdHJpbmcoQSkgfHwgaXNNZXNzYWdlQVNUKEEpIHx8IGlzTWVzc2FnZUZ1bmN0aW9uKEEpKSAmJgogICAgICBUICYmCiAgICAgICgoQSA9IFIpLCAoTyA9IEEpKSwKICAgICAgIVAgJiYKICAgICAgKCEoaXNTdHJpbmcoQSkgfHwgaXNNZXNzYWdlQVNUKEEpIHx8IGlzTWVzc2FnZUZ1bmN0aW9uKEEpKSB8fAogICAgICAgICFpc1N0cmluZyhrKSkpCiAgKQogICAgcmV0dXJuIGkgPyBOT1RfUkVPU0xWRUQgOiBjOwogIGxldCBGID0gITE7CiAgY29uc3QgRCA9ICgpID0+IHsKICAgIEYgPSAhMDsKICB9LAogICAgSCA9IGlzTWVzc2FnZUZ1bmN0aW9uKEEpID8gQSA6IGNvbXBpbGVNZXNzYWdlRm9ybWF0KGUsIGMsIGssIEEsIE8sIEQpOwogIGlmIChGKSByZXR1cm4gQTsKICBjb25zdCAkID0gZ2V0TWVzc2FnZUNvbnRleHRPcHRpb25zKGUsIGssIFMsIHUpLAogICAgcSA9IGNyZWF0ZU1lc3NhZ2VDb250ZXh0KCQpLAogICAgSiA9IGV2YWx1YXRlTWVzc2FnZShlLCBILCBxKSwKICAgIEsgPSBuID8gbihKLCBjKSA6IEo7CiAgaWYgKF9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18pIHsKICAgIGNvbnN0IGVlID0gewogICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksCiAgICAgIGtleTogaXNTdHJpbmcoYykgPyBjIDogaXNNZXNzYWdlRnVuY3Rpb24oQSkgPyBBLmtleSA6ICIiLAogICAgICBsb2NhbGU6IGsgfHwgKGlzTWVzc2FnZUZ1bmN0aW9uKEEpID8gQS5sb2NhbGUgOiAiIiksCiAgICAgIGZvcm1hdDogaXNTdHJpbmcoQSkgPyBBIDogaXNNZXNzYWdlRnVuY3Rpb24oQSkgPyBBLnNvdXJjZSA6ICIiLAogICAgICBtZXNzYWdlOiBLLAogICAgfTsKICAgIChlZS5tZXRhID0gYXNzaWduJDEoe30sIGUuX19tZXRhLCBnZXRBZGRpdGlvbmFsTWV0YSgpIHx8IHt9KSksCiAgICAgIHRyYW5zbGF0ZURldlRvb2xzKGVlKTsKICB9CiAgcmV0dXJuIEs7Cn0KZnVuY3Rpb24gZXNjYXBlUGFyYW1zKGUpIHsKICBpc0FycmF5JDEoZS5saXN0KQogICAgPyAoZS5saXN0ID0gZS5saXN0Lm1hcCgodCkgPT4gKGlzU3RyaW5nKHQpID8gZXNjYXBlSHRtbCh0KSA6IHQpKSkKICAgIDogaXNPYmplY3QkMShlLm5hbWVkKSAmJgogICAgT2JqZWN0LmtleXMoZS5uYW1lZCkuZm9yRWFjaCgodCkgPT4gewogICAgICBpc1N0cmluZyhlLm5hbWVkW3RdKSAmJiAoZS5uYW1lZFt0XSA9IGVzY2FwZUh0bWwoZS5uYW1lZFt0XSkpOwogICAgfSk7Cn0KZnVuY3Rpb24gcmVzb2x2ZU1lc3NhZ2VGb3JtYXQoZSwgdCwgciwgbiwgaSwgYSkgewogIGNvbnN0IHsgbWVzc2FnZXM6IG8sIG9uV2FybjogbCwgbWVzc2FnZVJlc29sdmVyOiBjLCBsb2NhbGVGYWxsYmFja2VyOiB1IH0gPSBlLAogICAgZCA9IHUoZSwgbiwgcik7CiAgbGV0IEUgPSBjcmVhdGUoKSwKICAgIGIsCiAgICBQID0gbnVsbDsKICBjb25zdCBSID0gInRyYW5zbGF0ZSI7CiAgZm9yICgKICAgIGxldCBUID0gMDsKICAgIFQgPCBkLmxlbmd0aCAmJgogICAgKChiID0gZFtUXSksCiAgICAgIChFID0gb1tiXSB8fCBjcmVhdGUoKSksCiAgICAgIChQID0gYyhFLCB0KSkgPT09IG51bGwgJiYgKFAgPSBFW3RdKSwKICAgICAgIShpc1N0cmluZyhQKSB8fCBpc01lc3NhZ2VBU1QoUCkgfHwgaXNNZXNzYWdlRnVuY3Rpb24oUCkpKTsKICAgIFQrKwogICkKICAgIGlmICghaXNJbXBsaWNpdEZhbGxiYWNrKGIsIGQpKSB7CiAgICAgIGNvbnN0IE0gPSBoYW5kbGVNaXNzaW5nKGUsIHQsIGIsIGEsIFIpOwogICAgICBNICE9PSB0ICYmIChQID0gTSk7CiAgICB9CiAgcmV0dXJuIFtQLCBiLCBFXTsKfQpmdW5jdGlvbiBjb21waWxlTWVzc2FnZUZvcm1hdChlLCB0LCByLCBuLCBpLCBhKSB7CiAgY29uc3QgeyBtZXNzYWdlQ29tcGlsZXI6IG8sIHdhcm5IdG1sTWVzc2FnZTogbCB9ID0gZTsKICBpZiAoaXNNZXNzYWdlRnVuY3Rpb24obikpIHsKICAgIGNvbnN0IHUgPSBuOwogICAgcmV0dXJuICh1LmxvY2FsZSA9IHUubG9jYWxlIHx8IHIpLCAodS5rZXkgPSB1LmtleSB8fCB0KSwgdTsKICB9CiAgaWYgKG8gPT0gbnVsbCkgewogICAgY29uc3QgdSA9ICgpID0+IG47CiAgICByZXR1cm4gKHUubG9jYWxlID0gciksICh1LmtleSA9IHQpLCB1OwogIH0KICBjb25zdCBjID0gbyhuLCBnZXRDb21waWxlQ29udGV4dChlLCByLCBpLCBuLCBsLCBhKSk7CiAgcmV0dXJuIChjLmxvY2FsZSA9IHIpLCAoYy5rZXkgPSB0KSwgKGMuc291cmNlID0gbiksIGM7Cn0KZnVuY3Rpb24gZXZhbHVhdGVNZXNzYWdlKGUsIHQsIHIpIHsKICByZXR1cm4gdChyKTsKfQpmdW5jdGlvbiBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4uZSkgewogIGNvbnN0IFt0LCByLCBuXSA9IGUsCiAgICBpID0gY3JlYXRlKCk7CiAgaWYgKCFpc1N0cmluZyh0KSAmJiAhaXNOdW1iZXIodCkgJiYgIWlzTWVzc2FnZUZ1bmN0aW9uKHQpICYmICFpc01lc3NhZ2VBU1QodCkpCiAgICB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuSU5WQUxJRF9BUkdVTUVOVCk7CiAgY29uc3QgYSA9IGlzTnVtYmVyKHQpID8gU3RyaW5nKHQpIDogKGlzTWVzc2FnZUZ1bmN0aW9uKHQpLCB0KTsKICByZXR1cm4gKAogICAgaXNOdW1iZXIocikKICAgICAgPyAoaS5wbHVyYWwgPSByKQogICAgICA6IGlzU3RyaW5nKHIpCiAgICAgICAgPyAoaS5kZWZhdWx0ID0gcikKICAgICAgICA6IGlzUGxhaW5PYmplY3QkMShyKSAmJiAhaXNFbXB0eU9iamVjdChyKQogICAgICAgICAgPyAoaS5uYW1lZCA9IHIpCiAgICAgICAgICA6IGlzQXJyYXkkMShyKSAmJiAoaS5saXN0ID0gciksCiAgICBpc051bWJlcihuKQogICAgICA/IChpLnBsdXJhbCA9IG4pCiAgICAgIDogaXNTdHJpbmcobikKICAgICAgICA/IChpLmRlZmF1bHQgPSBuKQogICAgICAgIDogaXNQbGFpbk9iamVjdCQxKG4pICYmIGFzc2lnbiQxKGksIG4pLAogICAgW2EsIGldCiAgKTsKfQpmdW5jdGlvbiBnZXRDb21waWxlQ29udGV4dChlLCB0LCByLCBuLCBpLCBhKSB7CiAgcmV0dXJuIHsKICAgIGxvY2FsZTogdCwKICAgIGtleTogciwKICAgIHdhcm5IdG1sTWVzc2FnZTogaSwKICAgIG9uRXJyb3I6IChvKSA9PiB7CiAgICAgIHRocm93IChhICYmIGEobyksIG8pOwogICAgfSwKICAgIG9uQ2FjaGVLZXk6IChvKSA9PiBnZW5lcmF0ZUZvcm1hdENhY2hlS2V5KHQsIHIsIG8pLAogIH07Cn0KZnVuY3Rpb24gZ2V0TWVzc2FnZUNvbnRleHRPcHRpb25zKGUsIHQsIHIsIG4pIHsKICBjb25zdCB7CiAgICBtb2RpZmllcnM6IGksCiAgICBwbHVyYWxSdWxlczogYSwKICAgIG1lc3NhZ2VSZXNvbHZlcjogbywKICAgIGZhbGxiYWNrTG9jYWxlOiBsLAogICAgZmFsbGJhY2tXYXJuOiBjLAogICAgbWlzc2luZ1dhcm46IHUsCiAgICBmYWxsYmFja0NvbnRleHQ6IGQsCiAgfSA9IGUsCiAgICBiID0gewogICAgICBsb2NhbGU6IHQsCiAgICAgIG1vZGlmaWVyczogaSwKICAgICAgcGx1cmFsUnVsZXM6IGEsCiAgICAgIG1lc3NhZ2VzOiAoUCkgPT4gewogICAgICAgIGxldCBSID0gbyhyLCBQKTsKICAgICAgICBpZiAoUiA9PSBudWxsICYmIGQpIHsKICAgICAgICAgIGNvbnN0IFssICwgVF0gPSByZXNvbHZlTWVzc2FnZUZvcm1hdChkLCBQLCB0LCBsLCBjLCB1KTsKICAgICAgICAgIFIgPSBvKFQsIFApOwogICAgICAgIH0KICAgICAgICBpZiAoaXNTdHJpbmcoUikgfHwgaXNNZXNzYWdlQVNUKFIpKSB7CiAgICAgICAgICBsZXQgVCA9ICExOwogICAgICAgICAgY29uc3QgeCA9IGNvbXBpbGVNZXNzYWdlRm9ybWF0KGUsIFAsIHQsIFIsIFAsICgpID0+IHsKICAgICAgICAgICAgVCA9ICEwOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gVCA/IE5PT1BfTUVTU0FHRV9GVU5DVElPTiA6IHg7CiAgICAgICAgfSBlbHNlIHJldHVybiBpc01lc3NhZ2VGdW5jdGlvbihSKSA/IFIgOiBOT09QX01FU1NBR0VfRlVOQ1RJT047CiAgICAgIH0sCiAgICB9OwogIHJldHVybiAoCiAgICBlLnByb2Nlc3NvciAmJiAoYi5wcm9jZXNzb3IgPSBlLnByb2Nlc3NvciksCiAgICBuLmxpc3QgJiYgKGIubGlzdCA9IG4ubGlzdCksCiAgICBuLm5hbWVkICYmIChiLm5hbWVkID0gbi5uYW1lZCksCiAgICBpc051bWJlcihuLnBsdXJhbCkgJiYgKGIucGx1cmFsSW5kZXggPSBuLnBsdXJhbCksCiAgICBiCiAgKTsKfQpmdW5jdGlvbiBkYXRldGltZShlLCAuLi50KSB7CiAgY29uc3QgewogICAgZGF0ZXRpbWVGb3JtYXRzOiByLAogICAgdW5yZXNvbHZpbmc6IG4sCiAgICBmYWxsYmFja0xvY2FsZTogaSwKICAgIG9uV2FybjogYSwKICAgIGxvY2FsZUZhbGxiYWNrZXI6IG8sCiAgfSA9IGUsCiAgICB7IF9fZGF0ZXRpbWVGb3JtYXR0ZXJzOiBsIH0gPSBlLAogICAgW2MsIHUsIGQsIEVdID0gcGFyc2VEYXRlVGltZUFyZ3MoLi4udCksCiAgICBiID0gaXNCb29sZWFuKGQubWlzc2luZ1dhcm4pID8gZC5taXNzaW5nV2FybiA6IGUubWlzc2luZ1dhcm47CiAgaXNCb29sZWFuKGQuZmFsbGJhY2tXYXJuKSA/IGQuZmFsbGJhY2tXYXJuIDogZS5mYWxsYmFja1dhcm47CiAgY29uc3QgUCA9ICEhZC5wYXJ0LAogICAgUiA9IGdldExvY2FsZSQxKGUsIGQpLAogICAgVCA9IG8oZSwgaSwgUik7CiAgaWYgKCFpc1N0cmluZyhjKSB8fCBjID09PSAiIikgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFIsIEUpLmZvcm1hdCh1KTsKICBsZXQgTSA9IHt9LAogICAgeCwKICAgIGsgPSBudWxsOwogIGNvbnN0IFMgPSAiZGF0ZXRpbWUgZm9ybWF0IjsKICBmb3IgKAogICAgbGV0IEYgPSAwOwogICAgRiA8IFQubGVuZ3RoICYmCiAgICAoKHggPSBUW0ZdKSwgKE0gPSByW3hdIHx8IHt9KSwgKGsgPSBNW2NdKSwgIWlzUGxhaW5PYmplY3QkMShrKSk7CiAgICBGKysKICApCiAgICBoYW5kbGVNaXNzaW5nKGUsIGMsIHgsIGIsIFMpOwogIGlmICghaXNQbGFpbk9iamVjdCQxKGspIHx8ICFpc1N0cmluZyh4KSkgcmV0dXJuIG4gPyBOT1RfUkVPU0xWRUQgOiBjOwogIGxldCBBID0gYCR7eH1fXyR7Y31gOwogIGlzRW1wdHlPYmplY3QoRSkgfHwgKEEgPSBgJHtBfV9fJHtKU09OLnN0cmluZ2lmeShFKX1gKTsKICBsZXQgTyA9IGwuZ2V0KEEpOwogIHJldHVybiAoCiAgICBPIHx8ICgoTyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHgsIGFzc2lnbiQxKHt9LCBrLCBFKSkpLCBsLnNldChBLCBPKSksCiAgICBQID8gTy5mb3JtYXRUb1BhcnRzKHUpIDogTy5mb3JtYXQodSkKICApOwp9CmNvbnN0IERBVEVUSU1FX0ZPUk1BVF9PUFRJT05TX0tFWVMgPSBbCiAgImxvY2FsZU1hdGNoZXIiLAogICJ3ZWVrZGF5IiwKICAiZXJhIiwKICAieWVhciIsCiAgIm1vbnRoIiwKICAiZGF5IiwKICAiaG91ciIsCiAgIm1pbnV0ZSIsCiAgInNlY29uZCIsCiAgInRpbWVab25lTmFtZSIsCiAgImZvcm1hdE1hdGNoZXIiLAogICJob3VyMTIiLAogICJ0aW1lWm9uZSIsCiAgImRhdGVTdHlsZSIsCiAgInRpbWVTdHlsZSIsCiAgImNhbGVuZGFyIiwKICAiZGF5UGVyaW9kIiwKICAibnVtYmVyaW5nU3lzdGVtIiwKICAiaG91ckN5Y2xlIiwKICAiZnJhY3Rpb25hbFNlY29uZERpZ2l0cyIsCl07CmZ1bmN0aW9uIHBhcnNlRGF0ZVRpbWVBcmdzKC4uLmUpIHsKICBjb25zdCBbdCwgciwgbiwgaV0gPSBlLAogICAgYSA9IGNyZWF0ZSgpOwogIGxldCBvID0gY3JlYXRlKCksCiAgICBsOwogIGlmIChpc1N0cmluZyh0KSkgewogICAgY29uc3QgYyA9IHQubWF0Y2goLyhcZHs0fS1cZHsyfS1cZHsyfSkoVHxccyk/KC4qKS8pOwogICAgaWYgKCFjKSB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuSU5WQUxJRF9JU09fREFURV9BUkdVTUVOVCk7CiAgICBjb25zdCB1ID0gY1szXQogICAgICA/IGNbM10udHJpbSgpLnN0YXJ0c1dpdGgoIlQiKQogICAgICAgID8gYCR7Y1sxXS50cmltKCl9JHtjWzNdLnRyaW0oKX1gCiAgICAgICAgOiBgJHtjWzFdLnRyaW0oKX1UJHtjWzNdLnRyaW0oKX1gCiAgICAgIDogY1sxXS50cmltKCk7CiAgICBsID0gbmV3IERhdGUodSk7CiAgICB0cnkgewogICAgICBsLnRvSVNPU3RyaW5nKCk7CiAgICB9IGNhdGNoIHsKICAgICAgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLklOVkFMSURfSVNPX0RBVEVfQVJHVU1FTlQpOwogICAgfQogIH0gZWxzZSBpZiAoaXNEYXRlKHQpKSB7CiAgICBpZiAoaXNOYU4odC5nZXRUaW1lKCkpKQogICAgICB0aHJvdyBjcmVhdGVDb3JlRXJyb3IoQ29yZUVycm9yQ29kZXMuSU5WQUxJRF9EQVRFX0FSR1VNRU5UKTsKICAgIGwgPSB0OwogIH0gZWxzZSBpZiAoaXNOdW1iZXIodCkpIGwgPSB0OwogIGVsc2UgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLklOVkFMSURfQVJHVU1FTlQpOwogIHJldHVybiAoCiAgICBpc1N0cmluZyhyKQogICAgICA/IChhLmtleSA9IHIpCiAgICAgIDogaXNQbGFpbk9iamVjdCQxKHIpICYmCiAgICAgIE9iamVjdC5rZXlzKHIpLmZvckVhY2goKGMpID0+IHsKICAgICAgICBEQVRFVElNRV9GT1JNQVRfT1BUSU9OU19LRVlTLmluY2x1ZGVzKGMpCiAgICAgICAgICA/IChvW2NdID0gcltjXSkKICAgICAgICAgIDogKGFbY10gPSByW2NdKTsKICAgICAgfSksCiAgICBpc1N0cmluZyhuKSA/IChhLmxvY2FsZSA9IG4pIDogaXNQbGFpbk9iamVjdCQxKG4pICYmIChvID0gbiksCiAgICBpc1BsYWluT2JqZWN0JDEoaSkgJiYgKG8gPSBpKSwKICAgIFthLmtleSB8fCAiIiwgbCwgYSwgb10KICApOwp9CmZ1bmN0aW9uIGNsZWFyRGF0ZVRpbWVGb3JtYXQoZSwgdCwgcikgewogIGNvbnN0IG4gPSBlOwogIGZvciAoY29uc3QgaSBpbiByKSB7CiAgICBjb25zdCBhID0gYCR7dH1fXyR7aX1gOwogICAgbi5fX2RhdGV0aW1lRm9ybWF0dGVycy5oYXMoYSkgJiYgbi5fX2RhdGV0aW1lRm9ybWF0dGVycy5kZWxldGUoYSk7CiAgfQp9CmZ1bmN0aW9uIG51bWJlcihlLCAuLi50KSB7CiAgY29uc3QgewogICAgbnVtYmVyRm9ybWF0czogciwKICAgIHVucmVzb2x2aW5nOiBuLAogICAgZmFsbGJhY2tMb2NhbGU6IGksCiAgICBvbldhcm46IGEsCiAgICBsb2NhbGVGYWxsYmFja2VyOiBvLAogIH0gPSBlLAogICAgeyBfX251bWJlckZvcm1hdHRlcnM6IGwgfSA9IGUsCiAgICBbYywgdSwgZCwgRV0gPSBwYXJzZU51bWJlckFyZ3MoLi4udCksCiAgICBiID0gaXNCb29sZWFuKGQubWlzc2luZ1dhcm4pID8gZC5taXNzaW5nV2FybiA6IGUubWlzc2luZ1dhcm47CiAgaXNCb29sZWFuKGQuZmFsbGJhY2tXYXJuKSA/IGQuZmFsbGJhY2tXYXJuIDogZS5mYWxsYmFja1dhcm47CiAgY29uc3QgUCA9ICEhZC5wYXJ0LAogICAgUiA9IGdldExvY2FsZSQxKGUsIGQpLAogICAgVCA9IG8oZSwgaSwgUik7CiAgaWYgKCFpc1N0cmluZyhjKSB8fCBjID09PSAiIikgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChSLCBFKS5mb3JtYXQodSk7CiAgbGV0IE0gPSB7fSwKICAgIHgsCiAgICBrID0gbnVsbDsKICBjb25zdCBTID0gIm51bWJlciBmb3JtYXQiOwogIGZvciAoCiAgICBsZXQgRiA9IDA7CiAgICBGIDwgVC5sZW5ndGggJiYKICAgICgoeCA9IFRbRl0pLCAoTSA9IHJbeF0gfHwge30pLCAoayA9IE1bY10pLCAhaXNQbGFpbk9iamVjdCQxKGspKTsKICAgIEYrKwogICkKICAgIGhhbmRsZU1pc3NpbmcoZSwgYywgeCwgYiwgUyk7CiAgaWYgKCFpc1BsYWluT2JqZWN0JDEoaykgfHwgIWlzU3RyaW5nKHgpKSByZXR1cm4gbiA/IE5PVF9SRU9TTFZFRCA6IGM7CiAgbGV0IEEgPSBgJHt4fV9fJHtjfWA7CiAgaXNFbXB0eU9iamVjdChFKSB8fCAoQSA9IGAke0F9X18ke0pTT04uc3RyaW5naWZ5KEUpfWApOwogIGxldCBPID0gbC5nZXQoQSk7CiAgcmV0dXJuICgKICAgIE8gfHwgKChPID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KHgsIGFzc2lnbiQxKHt9LCBrLCBFKSkpLCBsLnNldChBLCBPKSksCiAgICBQID8gTy5mb3JtYXRUb1BhcnRzKHUpIDogTy5mb3JtYXQodSkKICApOwp9CmNvbnN0IE5VTUJFUl9GT1JNQVRfT1BUSU9OU19LRVlTID0gWwogICJsb2NhbGVNYXRjaGVyIiwKICAic3R5bGUiLAogICJjdXJyZW5jeSIsCiAgImN1cnJlbmN5RGlzcGxheSIsCiAgImN1cnJlbmN5U2lnbiIsCiAgInVzZUdyb3VwaW5nIiwKICAibWluaW11bUludGVnZXJEaWdpdHMiLAogICJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLAogICJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLAogICJtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMiLAogICJtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMiLAogICJjb21wYWN0RGlzcGxheSIsCiAgIm5vdGF0aW9uIiwKICAic2lnbkRpc3BsYXkiLAogICJ1bml0IiwKICAidW5pdERpc3BsYXkiLAogICJyb3VuZGluZ01vZGUiLAogICJyb3VuZGluZ1ByaW9yaXR5IiwKICAicm91bmRpbmdJbmNyZW1lbnQiLAogICJ0cmFpbGluZ1plcm9EaXNwbGF5IiwKXTsKZnVuY3Rpb24gcGFyc2VOdW1iZXJBcmdzKC4uLmUpIHsKICBjb25zdCBbdCwgciwgbiwgaV0gPSBlLAogICAgYSA9IGNyZWF0ZSgpOwogIGxldCBvID0gY3JlYXRlKCk7CiAgaWYgKCFpc051bWJlcih0KSkgdGhyb3cgY3JlYXRlQ29yZUVycm9yKENvcmVFcnJvckNvZGVzLklOVkFMSURfQVJHVU1FTlQpOwogIGNvbnN0IGwgPSB0OwogIHJldHVybiAoCiAgICBpc1N0cmluZyhyKQogICAgICA/IChhLmtleSA9IHIpCiAgICAgIDogaXNQbGFpbk9iamVjdCQxKHIpICYmCiAgICAgIE9iamVjdC5rZXlzKHIpLmZvckVhY2goKGMpID0+IHsKICAgICAgICBOVU1CRVJfRk9STUFUX09QVElPTlNfS0VZUy5pbmNsdWRlcyhjKQogICAgICAgICAgPyAob1tjXSA9IHJbY10pCiAgICAgICAgICA6IChhW2NdID0gcltjXSk7CiAgICAgIH0pLAogICAgaXNTdHJpbmcobikgPyAoYS5sb2NhbGUgPSBuKSA6IGlzUGxhaW5PYmplY3QkMShuKSAmJiAobyA9IG4pLAogICAgaXNQbGFpbk9iamVjdCQxKGkpICYmIChvID0gaSksCiAgICBbYS5rZXkgfHwgIiIsIGwsIGEsIG9dCiAgKTsKfQpmdW5jdGlvbiBjbGVhck51bWJlckZvcm1hdChlLCB0LCByKSB7CiAgY29uc3QgbiA9IGU7CiAgZm9yIChjb25zdCBpIGluIHIpIHsKICAgIGNvbnN0IGEgPSBgJHt0fV9fJHtpfWA7CiAgICBuLl9fbnVtYmVyRm9ybWF0dGVycy5oYXMoYSkgJiYgbi5fX251bWJlckZvcm1hdHRlcnMuZGVsZXRlKGEpOwogIH0KfQppbml0RmVhdHVyZUZsYWdzJDEoKTsKLyohCiAqIHZ1ZS1pMThuIHY5LjE0LjIKICogKGMpIDIwMjQga2F6dXlhIGthd2FndWNoaQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLyBjb25zdCBWRVJTSU9OID0gIjkuMTQuMiI7CmZ1bmN0aW9uIGluaXRGZWF0dXJlRmxhZ3MoKSB7CiAgdHlwZW9mIF9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18gIT0gImJvb2xlYW4iICYmCiAgICAoZ2V0R2xvYmFsVGhpcygpLl9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18gPSAhMSk7Cn0KY29uc3QgY29kZSQxID0gQ29yZVdhcm5Db2Rlcy5fX0VYVEVORF9QT0lOVF9fLAogIGluYyQxID0gaW5jcmVtZW50ZXIoY29kZSQxKTsKaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKSwgaW5jJDEoKTsKY29uc3QgY29kZSA9IENvcmVFcnJvckNvZGVzLl9fRVhURU5EX1BPSU5UX18sCiAgaW5jID0gaW5jcmVtZW50ZXIoY29kZSksCiAgSTE4bkVycm9yQ29kZXMgPSB7CiAgICBVTkVYUEVDVEVEX1JFVFVSTl9UWVBFOiBjb2RlLAogICAgSU5WQUxJRF9BUkdVTUVOVDogaW5jKCksCiAgICBNVVNUX0JFX0NBTExfU0VUVVBfVE9QOiBpbmMoKSwKICAgIE5PVF9JTlNUQUxMRUQ6IGluYygpLAogICAgTk9UX0FWQUlMQUJMRV9JTl9MRUdBQ1lfTU9ERTogaW5jKCksCiAgICBSRVFVSVJFRF9WQUxVRTogaW5jKCksCiAgICBJTlZBTElEX1ZBTFVFOiBpbmMoKSwKICAgIENBTk5PVF9TRVRVUF9WVUVfREVWVE9PTFNfUExVR0lOOiBpbmMoKSwKICAgIE5PVF9JTlNUQUxMRURfV0lUSF9QUk9WSURFOiBpbmMoKSwKICAgIFVORVhQRUNURURfRVJST1I6IGluYygpLAogICAgTk9UX0NPTVBBVElCTEVfTEVHQUNZX1ZVRV9JMThOOiBpbmMoKSwKICAgIGNvaW5kaW5hcnNfY29tX1ZVRV8yX09OTFk6IGluYygpLAogICAgTVVTVF9ERUZJTkVfSTE4Tl9PUFRJT05fSU5fQUxMT1dfQ09NUE9TSVRJT046IGluYygpLAogICAgTk9UX0FWQUlMQUJMRV9DT01QT1NJVElPTl9JTl9MRUdBQ1k6IGluYygpLAogICAgX19FWFRFTkRfUE9JTlRfXzogaW5jKCksCiAgfTsKZnVuY3Rpb24gY3JlYXRlSTE4bkVycm9yKGUsIC4uLnQpIHsKICByZXR1cm4gY3JlYXRlQ29tcGlsZUVycm9yKGUsIG51bGwsIHZvaWQgMCk7Cn0KY29uc3QgVHJhbnNsYXRlVk5vZGVTeW1ib2wgPSBtYWtlU3ltYm9sKCJfX3RyYW5zbGF0ZVZOb2RlIiksCiAgRGF0ZXRpbWVQYXJ0c1N5bWJvbCA9IG1ha2VTeW1ib2woIl9fZGF0ZXRpbWVQYXJ0cyIpLAogIE51bWJlclBhcnRzU3ltYm9sID0gbWFrZVN5bWJvbCgiX19udW1iZXJQYXJ0cyIpLAogIFNldFBsdXJhbFJ1bGVzU3ltYm9sID0gbWFrZVN5bWJvbCgiX19zZXRQbHVyYWxSdWxlcyIpLAogIEluZWpjdFdpdGhPcHRpb25TeW1ib2wgPSBtYWtlU3ltYm9sKCJfX2luamVjdFdpdGhPcHRpb24iKSwKICBEaXNwb3NlU3ltYm9sID0gbWFrZVN5bWJvbCgiX19kaXNwb3NlIik7CmZ1bmN0aW9uIGhhbmRsZUZsYXRKc29uKGUpIHsKICBpZiAoIWlzT2JqZWN0JDEoZSkpIHJldHVybiBlOwogIGZvciAoY29uc3QgdCBpbiBlKQogICAgaWYgKGhhc093bihlLCB0KSkKICAgICAgaWYgKCF0LmluY2x1ZGVzKCIuIikpIGlzT2JqZWN0JDEoZVt0XSkgJiYgaGFuZGxlRmxhdEpzb24oZVt0XSk7CiAgICAgIGVsc2UgewogICAgICAgIGNvbnN0IHIgPSB0LnNwbGl0KCIuIiksCiAgICAgICAgICBuID0gci5sZW5ndGggLSAxOwogICAgICAgIGxldCBpID0gZSwKICAgICAgICAgIGEgPSAhMTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG47IG8rKykgewogICAgICAgICAgaWYgKChyW29dIGluIGkgfHwgKGlbcltvXV0gPSBjcmVhdGUoKSksICFpc09iamVjdCQxKGlbcltvXV0pKSkgewogICAgICAgICAgICBhID0gITA7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaSA9IGlbcltvXV07CiAgICAgICAgfQogICAgICAgIGEgfHwgKChpW3Jbbl1dID0gZVt0XSksIGRlbGV0ZSBlW3RdKSwKICAgICAgICAgIGlzT2JqZWN0JDEoaVtyW25dXSkgJiYgaGFuZGxlRmxhdEpzb24oaVtyW25dXSk7CiAgICAgIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVNZXNzYWdlcyhlLCB0KSB7CiAgY29uc3QgeyBtZXNzYWdlczogciwgX19pMThuOiBuLCBtZXNzYWdlUmVzb2x2ZXI6IGksIGZsYXRKc29uOiBhIH0gPSB0LAogICAgbyA9IGlzUGxhaW5PYmplY3QkMShyKSA/IHIgOiBpc0FycmF5JDEobikgPyBjcmVhdGUoKSA6IHsgW2VdOiBjcmVhdGUoKSB9OwogIGlmICgKICAgIChpc0FycmF5JDEobikgJiYKICAgICAgbi5mb3JFYWNoKChsKSA9PiB7CiAgICAgICAgaWYgKCJsb2NhbGUiIGluIGwgJiYgInJlc291cmNlIiBpbiBsKSB7CiAgICAgICAgICBjb25zdCB7IGxvY2FsZTogYywgcmVzb3VyY2U6IHUgfSA9IGw7CiAgICAgICAgICBjID8gKChvW2NdID0gb1tjXSB8fCBjcmVhdGUoKSksIGRlZXBDb3B5KHUsIG9bY10pKSA6IGRlZXBDb3B5KHUsIG8pOwogICAgICAgIH0gZWxzZSBpc1N0cmluZyhsKSAmJiBkZWVwQ29weShKU09OLnBhcnNlKGwpLCBvKTsKICAgICAgfSksCiAgICAgIGkgPT0gbnVsbCAmJiBhKQogICkKICAgIGZvciAoY29uc3QgbCBpbiBvKSBoYXNPd24obywgbCkgJiYgaGFuZGxlRmxhdEpzb24ob1tsXSk7CiAgcmV0dXJuIG87Cn0KZnVuY3Rpb24gZ2V0Q29tcG9uZW50T3B0aW9ucyhlKSB7CiAgcmV0dXJuIGUudHlwZTsKfQpmdW5jdGlvbiBhZGp1c3RJMThuUmVzb3VyY2VzKGUsIHQsIHIpIHsKICBsZXQgbiA9IGlzT2JqZWN0JDEodC5tZXNzYWdlcykgPyB0Lm1lc3NhZ2VzIDogY3JlYXRlKCk7CiAgIl9faTE4bkdsb2JhbCIgaW4gciAmJgogICAgKG4gPSBnZXRMb2NhbGVNZXNzYWdlcyhlLmxvY2FsZS52YWx1ZSwgewogICAgICBtZXNzYWdlczogbiwKICAgICAgX19pMThuOiByLl9faTE4bkdsb2JhbCwKICAgIH0pKTsKICBjb25zdCBpID0gT2JqZWN0LmtleXMobik7CiAgaS5sZW5ndGggJiYKICAgIGkuZm9yRWFjaCgoYSkgPT4gewogICAgICBlLm1lcmdlTG9jYWxlTWVzc2FnZShhLCBuW2FdKTsKICAgIH0pOwogIHsKICAgIGlmIChpc09iamVjdCQxKHQuZGF0ZXRpbWVGb3JtYXRzKSkgewogICAgICBjb25zdCBhID0gT2JqZWN0LmtleXModC5kYXRldGltZUZvcm1hdHMpOwogICAgICBhLmxlbmd0aCAmJgogICAgICAgIGEuZm9yRWFjaCgobykgPT4gewogICAgICAgICAgZS5tZXJnZURhdGVUaW1lRm9ybWF0KG8sIHQuZGF0ZXRpbWVGb3JtYXRzW29dKTsKICAgICAgICB9KTsKICAgIH0KICAgIGlmIChpc09iamVjdCQxKHQubnVtYmVyRm9ybWF0cykpIHsKICAgICAgY29uc3QgYSA9IE9iamVjdC5rZXlzKHQubnVtYmVyRm9ybWF0cyk7CiAgICAgIGEubGVuZ3RoICYmCiAgICAgICAgYS5mb3JFYWNoKChvKSA9PiB7CiAgICAgICAgICBlLm1lcmdlTnVtYmVyRm9ybWF0KG8sIHQubnVtYmVyRm9ybWF0c1tvXSk7CiAgICAgICAgfSk7CiAgICB9CiAgfQp9CmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKGUpIHsKICByZXR1cm4gY3JlYXRlVk5vZGUoVGV4dCwgbnVsbCwgZSwgMCk7Cn0KY29uc3QgREVWVE9PTFNfTUVUQSA9ICJfX0lOVExJRllfTUVUQV9fIiwKICBOT09QX1JFVFVSTl9BUlJBWSA9ICgpID0+IFtdLAogIE5PT1BfUkVUVVJOX0ZBTFNFID0gKCkgPT4gITE7CmxldCBjb21wb3NlcklEID0gMDsKZnVuY3Rpb24gZGVmaW5lQ29yZU1pc3NpbmdIYW5kbGVyKGUpIHsKICByZXR1cm4gKHQsIHIsIG4sIGkpID0+IGUociwgbiwgZ2V0Q3VycmVudEluc3RhbmNlJDEoKSB8fCB2b2lkIDAsIGkpOwp9CmNvbnN0IGdldE1ldGFJbmZvID0gKCkgPT4gewogIGNvbnN0IGUgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGxldCB0ID0gbnVsbDsKICByZXR1cm4gZSAmJiAodCA9IGdldENvbXBvbmVudE9wdGlvbnMoZSlbREVWVE9PTFNfTUVUQV0pCiAgICA/IHsgW0RFVlRPT0xTX01FVEFdOiB0IH0KICAgIDogbnVsbDsKfTsKZnVuY3Rpb24gY3JlYXRlQ29tcG9zZXIoZSA9IHt9LCB0KSB7CiAgY29uc3QgeyBfX3Jvb3Q6IHIsIF9faW5qZWN0V2l0aE9wdGlvbjogbiB9ID0gZSwKICAgIGkgPSByID09PSB2b2lkIDAsCiAgICBhID0gZS5mbGF0SnNvbiwKICAgIG8gPSBpbkJyb3dzZXIkMSA/IHJlZiA6IHNoYWxsb3dSZWYsCiAgICBsID0gISFlLnRyYW5zbGF0ZUV4aXN0Q29tcGF0aWJsZTsKICBsZXQgYyA9IGlzQm9vbGVhbihlLmluaGVyaXRMb2NhbGUpID8gZS5pbmhlcml0TG9jYWxlIDogITA7CiAgY29uc3QgdSA9IG8oCiAgICByICYmIGMgPyByLmxvY2FsZS52YWx1ZSA6IGlzU3RyaW5nKGUubG9jYWxlKSA/IGUubG9jYWxlIDogREVGQVVMVF9MT0NBTEUKICApLAogICAgZCA9IG8oCiAgICAgIHIgJiYgYwogICAgICAgID8gci5mYWxsYmFja0xvY2FsZS52YWx1ZQogICAgICAgIDogaXNTdHJpbmcoZS5mYWxsYmFja0xvY2FsZSkgfHwKICAgICAgICAgIGlzQXJyYXkkMShlLmZhbGxiYWNrTG9jYWxlKSB8fAogICAgICAgICAgaXNQbGFpbk9iamVjdCQxKGUuZmFsbGJhY2tMb2NhbGUpIHx8CiAgICAgICAgICBlLmZhbGxiYWNrTG9jYWxlID09PSAhMQogICAgICAgICAgPyBlLmZhbGxiYWNrTG9jYWxlCiAgICAgICAgICA6IHUudmFsdWUKICAgICksCiAgICBFID0gbyhnZXRMb2NhbGVNZXNzYWdlcyh1LnZhbHVlLCBlKSksCiAgICBiID0gbygKICAgICAgaXNQbGFpbk9iamVjdCQxKGUuZGF0ZXRpbWVGb3JtYXRzKSA/IGUuZGF0ZXRpbWVGb3JtYXRzIDogeyBbdS52YWx1ZV06IHt9IH0KICAgICksCiAgICBQID0gbygKICAgICAgaXNQbGFpbk9iamVjdCQxKGUubnVtYmVyRm9ybWF0cykgPyBlLm51bWJlckZvcm1hdHMgOiB7IFt1LnZhbHVlXToge30gfQogICAgKTsKICBsZXQgUiA9IHIKICAgID8gci5taXNzaW5nV2FybgogICAgOiBpc0Jvb2xlYW4oZS5taXNzaW5nV2FybikgfHwgaXNSZWdFeHAoZS5taXNzaW5nV2FybikKICAgICAgPyBlLm1pc3NpbmdXYXJuCiAgICAgIDogITAsCiAgICBUID0gcgogICAgICA/IHIuZmFsbGJhY2tXYXJuCiAgICAgIDogaXNCb29sZWFuKGUuZmFsbGJhY2tXYXJuKSB8fCBpc1JlZ0V4cChlLmZhbGxiYWNrV2FybikKICAgICAgICA/IGUuZmFsbGJhY2tXYXJuCiAgICAgICAgOiAhMCwKICAgIE0gPSByID8gci5mYWxsYmFja1Jvb3QgOiBpc0Jvb2xlYW4oZS5mYWxsYmFja1Jvb3QpID8gZS5mYWxsYmFja1Jvb3QgOiAhMCwKICAgIHggPSAhIWUuZmFsbGJhY2tGb3JtYXQsCiAgICBrID0gaXNGdW5jdGlvbihlLm1pc3NpbmcpID8gZS5taXNzaW5nIDogbnVsbCwKICAgIFMgPSBpc0Z1bmN0aW9uKGUubWlzc2luZykgPyBkZWZpbmVDb3JlTWlzc2luZ0hhbmRsZXIoZS5taXNzaW5nKSA6IG51bGwsCiAgICBBID0gaXNGdW5jdGlvbihlLnBvc3RUcmFuc2xhdGlvbikgPyBlLnBvc3RUcmFuc2xhdGlvbiA6IG51bGwsCiAgICBPID0gcgogICAgICA/IHIud2Fybkh0bWxNZXNzYWdlCiAgICAgIDogaXNCb29sZWFuKGUud2Fybkh0bWxNZXNzYWdlKQogICAgICAgID8gZS53YXJuSHRtbE1lc3NhZ2UKICAgICAgICA6ICEwLAogICAgRiA9ICEhZS5lc2NhcGVQYXJhbWV0ZXI7CiAgY29uc3QgRCA9IHIgPyByLm1vZGlmaWVycyA6IGlzUGxhaW5PYmplY3QkMShlLm1vZGlmaWVycykgPyBlLm1vZGlmaWVycyA6IHt9OwogIGxldCBIID0gZS5wbHVyYWxSdWxlcyB8fCAociAmJiByLnBsdXJhbFJ1bGVzKSwKICAgICQ7CiAgKCQgPSAoKCkgPT4gewogICAgaSAmJiBzZXRGYWxsYmFja0NvbnRleHQobnVsbCk7CiAgICBjb25zdCBaID0gewogICAgICB2ZXJzaW9uOiBWRVJTSU9OLAogICAgICBsb2NhbGU6IHUudmFsdWUsCiAgICAgIGZhbGxiYWNrTG9jYWxlOiBkLnZhbHVlLAogICAgICBtZXNzYWdlczogRS52YWx1ZSwKICAgICAgbW9kaWZpZXJzOiBELAogICAgICBwbHVyYWxSdWxlczogSCwKICAgICAgbWlzc2luZzogUyA9PT0gbnVsbCA/IHZvaWQgMCA6IFMsCiAgICAgIG1pc3NpbmdXYXJuOiBSLAogICAgICBmYWxsYmFja1dhcm46IFQsCiAgICAgIGZhbGxiYWNrRm9ybWF0OiB4LAogICAgICB1bnJlc29sdmluZzogITAsCiAgICAgIHBvc3RUcmFuc2xhdGlvbjogQSA9PT0gbnVsbCA/IHZvaWQgMCA6IEEsCiAgICAgIHdhcm5IdG1sTWVzc2FnZTogTywKICAgICAgZXNjYXBlUGFyYW1ldGVyOiBGLAogICAgICBtZXNzYWdlUmVzb2x2ZXI6IGUubWVzc2FnZVJlc29sdmVyLAogICAgICBtZXNzYWdlQ29tcGlsZXI6IGUubWVzc2FnZUNvbXBpbGVyLAogICAgICBfX21ldGE6IHsgZnJhbWV3b3JrOiAidnVlIiB9LAogICAgfTsKICAgIChaLmRhdGV0aW1lRm9ybWF0cyA9IGIudmFsdWUpLAogICAgICAoWi5udW1iZXJGb3JtYXRzID0gUC52YWx1ZSksCiAgICAgIChaLl9fZGF0ZXRpbWVGb3JtYXR0ZXJzID0gaXNQbGFpbk9iamVjdCQxKCQpCiAgICAgICAgPyAkLl9fZGF0ZXRpbWVGb3JtYXR0ZXJzCiAgICAgICAgOiB2b2lkIDApLAogICAgICAoWi5fX251bWJlckZvcm1hdHRlcnMgPSBpc1BsYWluT2JqZWN0JDEoJCkKICAgICAgICA/ICQuX19udW1iZXJGb3JtYXR0ZXJzCiAgICAgICAgOiB2b2lkIDApOwogICAgY29uc3QgbmUgPSBjcmVhdGVDb3JlQ29udGV4dChaKTsKICAgIHJldHVybiBpICYmIHNldEZhbGxiYWNrQ29udGV4dChuZSksIG5lOwogIH0pKCkpLAogICAgdXBkYXRlRmFsbGJhY2tMb2NhbGUoJCwgdS52YWx1ZSwgZC52YWx1ZSk7CiAgZnVuY3Rpb24gSigpIHsKICAgIHJldHVybiBbdS52YWx1ZSwgZC52YWx1ZSwgRS52YWx1ZSwgYi52YWx1ZSwgUC52YWx1ZV07CiAgfQogIGNvbnN0IEsgPSBjb21wdXRlZCh7CiAgICBnZXQ6ICgpID0+IHUudmFsdWUsCiAgICBzZXQ6IChaKSA9PiB7CiAgICAgICh1LnZhbHVlID0gWiksICgkLmxvY2FsZSA9IHUudmFsdWUpOwogICAgfSwKICB9KSwKICAgIGVlID0gY29tcHV0ZWQoewogICAgICBnZXQ6ICgpID0+IGQudmFsdWUsCiAgICAgIHNldDogKFopID0+IHsKICAgICAgICAoZC52YWx1ZSA9IFopLAogICAgICAgICAgKCQuZmFsbGJhY2tMb2NhbGUgPSBkLnZhbHVlKSwKICAgICAgICAgIHVwZGF0ZUZhbGxiYWNrTG9jYWxlKCQsIHUudmFsdWUsIFopOwogICAgICB9LAogICAgfSksCiAgICBsZSA9IGNvbXB1dGVkKCgpID0+IEUudmFsdWUpLAogICAgcmUgPSBjb21wdXRlZCgoKSA9PiBiLnZhbHVlKSwKICAgIEIgPSBjb21wdXRlZCgoKSA9PiBQLnZhbHVlKTsKICBmdW5jdGlvbiB6KCkgewogICAgcmV0dXJuIGlzRnVuY3Rpb24oQSkgPyBBIDogbnVsbDsKICB9CiAgZnVuY3Rpb24gTihaKSB7CiAgICAoQSA9IFopLCAoJC5wb3N0VHJhbnNsYXRpb24gPSBaKTsKICB9CiAgZnVuY3Rpb24gVigpIHsKICAgIHJldHVybiBrOwogIH0KICBmdW5jdGlvbiBRKFopIHsKICAgIFogIT09IG51bGwgJiYgKFMgPSBkZWZpbmVDb3JlTWlzc2luZ0hhbmRsZXIoWikpLCAoayA9IFopLCAoJC5taXNzaW5nID0gUyk7CiAgfQogIGNvbnN0IFkgPSAoWiwgbmUsIF9lLCBiZSwgVGUsIEFlKSA9PiB7CiAgICBKKCk7CiAgICBsZXQgUmU7CiAgICB0cnkgewogICAgICBfX0lOVExJRllfUFJPRF9ERVZUT09MU19fLAogICAgICAgIGkgfHwgKCQuZmFsbGJhY2tDb250ZXh0ID0gciA/IGdldEZhbGxiYWNrQ29udGV4dCgpIDogdm9pZCAwKSwKICAgICAgICAoUmUgPSBaKCQpKTsKICAgIH0gZmluYWxseSB7CiAgICAgIF9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX18sIGkgfHwgKCQuZmFsbGJhY2tDb250ZXh0ID0gdm9pZCAwKTsKICAgIH0KICAgIGlmICgKICAgICAgKF9lICE9PSAidHJhbnNsYXRlIGV4aXN0cyIgJiYgaXNOdW1iZXIoUmUpICYmIFJlID09PSBOT1RfUkVPU0xWRUQpIHx8CiAgICAgIChfZSA9PT0gInRyYW5zbGF0ZSBleGlzdHMiICYmICFSZSkKICAgICkgewogICAgICBjb25zdCBbd2UsIEllXSA9IG5lKCk7CiAgICAgIHJldHVybiByICYmIE0gPyBiZShyKSA6IFRlKHdlKTsKICAgIH0gZWxzZSB7CiAgICAgIGlmIChBZShSZSkpIHJldHVybiBSZTsKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLlVORVhQRUNURURfUkVUVVJOX1RZUEUpOwogICAgfQogIH07CiAgZnVuY3Rpb24gaGUoLi4uWikgewogICAgcmV0dXJuIFkoCiAgICAgIChuZSkgPT4gUmVmbGVjdC5hcHBseSh0cmFuc2xhdGUsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4uWiksCiAgICAgICJ0cmFuc2xhdGUiLAogICAgICAobmUpID0+IFJlZmxlY3QuYXBwbHkobmUudCwgbmUsIFsuLi5aXSksCiAgICAgIChuZSkgPT4gbmUsCiAgICAgIChuZSkgPT4gaXNTdHJpbmcobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiB5ZSguLi5aKSB7CiAgICBjb25zdCBbbmUsIF9lLCBiZV0gPSBaOwogICAgaWYgKGJlICYmICFpc09iamVjdCQxKGJlKSkKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLklOVkFMSURfQVJHVU1FTlQpOwogICAgcmV0dXJuIGhlKG5lLCBfZSwgYXNzaWduJDEoeyByZXNvbHZlZE1lc3NhZ2U6ICEwIH0sIGJlIHx8IHt9KSk7CiAgfQogIGZ1bmN0aW9uIHZlKC4uLlopIHsKICAgIHJldHVybiBZKAogICAgICAobmUpID0+IFJlZmxlY3QuYXBwbHkoZGF0ZXRpbWUsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZURhdGVUaW1lQXJncyguLi5aKSwKICAgICAgImRhdGV0aW1lIGZvcm1hdCIsCiAgICAgIChuZSkgPT4gUmVmbGVjdC5hcHBseShuZS5kLCBuZSwgWy4uLlpdKSwKICAgICAgKCkgPT4gTUlTU0lOR19SRVNPTFZFX1ZBTFVFLAogICAgICAobmUpID0+IGlzU3RyaW5nKG5lKQogICAgKTsKICB9CiAgZnVuY3Rpb24gUGUoLi4uWikgewogICAgcmV0dXJuIFkoCiAgICAgIChuZSkgPT4gUmVmbGVjdC5hcHBseShudW1iZXIsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZU51bWJlckFyZ3MoLi4uWiksCiAgICAgICJudW1iZXIgZm9ybWF0IiwKICAgICAgKG5lKSA9PiBSZWZsZWN0LmFwcGx5KG5lLm4sIG5lLCBbLi4uWl0pLAogICAgICAoKSA9PiBNSVNTSU5HX1JFU09MVkVfVkFMVUUsCiAgICAgIChuZSkgPT4gaXNTdHJpbmcobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiBDZShaKSB7CiAgICByZXR1cm4gWi5tYXAoKG5lKSA9PgogICAgICBpc1N0cmluZyhuZSkgfHwgaXNOdW1iZXIobmUpIHx8IGlzQm9vbGVhbihuZSkKICAgICAgICA/IGNyZWF0ZVRleHROb2RlKFN0cmluZyhuZSkpCiAgICAgICAgOiBuZQogICAgKTsKICB9CiAgY29uc3QgbWUgPSB7IG5vcm1hbGl6ZTogQ2UsIGludGVycG9sYXRlOiAoWikgPT4gWiwgdHlwZTogInZub2RlIiB9OwogIGZ1bmN0aW9uIHBlKC4uLlopIHsKICAgIHJldHVybiBZKAogICAgICAobmUpID0+IHsKICAgICAgICBsZXQgX2U7CiAgICAgICAgY29uc3QgYmUgPSBuZTsKICAgICAgICB0cnkgewogICAgICAgICAgKGJlLnByb2Nlc3NvciA9IG1lKSwKICAgICAgICAgICAgKF9lID0gUmVmbGVjdC5hcHBseSh0cmFuc2xhdGUsIG51bGwsIFtiZSwgLi4uWl0pKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgYmUucHJvY2Vzc29yID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIF9lOwogICAgICB9LAogICAgICAoKSA9PiBwYXJzZVRyYW5zbGF0ZUFyZ3MoLi4uWiksCiAgICAgICJ0cmFuc2xhdGUiLAogICAgICAobmUpID0+IG5lW1RyYW5zbGF0ZVZOb2RlU3ltYm9sXSguLi5aKSwKICAgICAgKG5lKSA9PiBbY3JlYXRlVGV4dE5vZGUobmUpXSwKICAgICAgKG5lKSA9PiBpc0FycmF5JDEobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiBnZSguLi5aKSB7CiAgICByZXR1cm4gWSgKICAgICAgKG5lKSA9PiBSZWZsZWN0LmFwcGx5KG51bWJlciwgbnVsbCwgW25lLCAuLi5aXSksCiAgICAgICgpID0+IHBhcnNlTnVtYmVyQXJncyguLi5aKSwKICAgICAgIm51bWJlciBmb3JtYXQiLAogICAgICAobmUpID0+IG5lW051bWJlclBhcnRzU3ltYm9sXSguLi5aKSwKICAgICAgTk9PUF9SRVRVUk5fQVJSQVksCiAgICAgIChuZSkgPT4gaXNTdHJpbmcobmUpIHx8IGlzQXJyYXkkMShuZSkKICAgICk7CiAgfQogIGZ1bmN0aW9uIEVlKC4uLlopIHsKICAgIHJldHVybiBZKAogICAgICAobmUpID0+IFJlZmxlY3QuYXBwbHkoZGF0ZXRpbWUsIG51bGwsIFtuZSwgLi4uWl0pLAogICAgICAoKSA9PiBwYXJzZURhdGVUaW1lQXJncyguLi5aKSwKICAgICAgImRhdGV0aW1lIGZvcm1hdCIsCiAgICAgIChuZSkgPT4gbmVbRGF0ZXRpbWVQYXJ0c1N5bWJvbF0oLi4uWiksCiAgICAgIE5PT1BfUkVUVVJOX0FSUkFZLAogICAgICAobmUpID0+IGlzU3RyaW5nKG5lKSB8fCBpc0FycmF5JDEobmUpCiAgICApOwogIH0KICBmdW5jdGlvbiBTZShaKSB7CiAgICAoSCA9IFopLCAoJC5wbHVyYWxSdWxlcyA9IEgpOwogIH0KICBmdW5jdGlvbiBXKFosIG5lKSB7CiAgICByZXR1cm4gWSgKICAgICAgKCkgPT4gewogICAgICAgIGlmICghWikgcmV0dXJuICExOwogICAgICAgIGNvbnN0IF9lID0gaXNTdHJpbmcobmUpID8gbmUgOiB1LnZhbHVlLAogICAgICAgICAgYmUgPSBhZShfZSksCiAgICAgICAgICBUZSA9ICQubWVzc2FnZVJlc29sdmVyKGJlLCBaKTsKICAgICAgICByZXR1cm4gbAogICAgICAgICAgPyBUZSAhPSBudWxsCiAgICAgICAgICA6IGlzTWVzc2FnZUFTVChUZSkgfHwgaXNNZXNzYWdlRnVuY3Rpb24oVGUpIHx8IGlzU3RyaW5nKFRlKTsKICAgICAgfSwKICAgICAgKCkgPT4gW1pdLAogICAgICAidHJhbnNsYXRlIGV4aXN0cyIsCiAgICAgIChfZSkgPT4gUmVmbGVjdC5hcHBseShfZS50ZSwgX2UsIFtaLCBuZV0pLAogICAgICBOT09QX1JFVFVSTl9GQUxTRSwKICAgICAgKF9lKSA9PiBpc0Jvb2xlYW4oX2UpCiAgICApOwogIH0KICBmdW5jdGlvbiBHKFopIHsKICAgIGxldCBuZSA9IG51bGw7CiAgICBjb25zdCBfZSA9IGZhbGxiYWNrV2l0aExvY2FsZUNoYWluKCQsIGQudmFsdWUsIHUudmFsdWUpOwogICAgZm9yIChsZXQgYmUgPSAwOyBiZSA8IF9lLmxlbmd0aDsgYmUrKykgewogICAgICBjb25zdCBUZSA9IEUudmFsdWVbX2VbYmVdXSB8fCB7fSwKICAgICAgICBBZSA9ICQubWVzc2FnZVJlc29sdmVyKFRlLCBaKTsKICAgICAgaWYgKEFlICE9IG51bGwpIHsKICAgICAgICBuZSA9IEFlOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gbmU7CiAgfQogIGZ1bmN0aW9uIHRlKFopIHsKICAgIGNvbnN0IG5lID0gRyhaKTsKICAgIHJldHVybiBuZSA/PyAociA/IHIudG0oWikgfHwge30gOiB7fSk7CiAgfQogIGZ1bmN0aW9uIGFlKFopIHsKICAgIHJldHVybiBFLnZhbHVlW1pdIHx8IHt9OwogIH0KICBmdW5jdGlvbiBzZShaLCBuZSkgewogICAgaWYgKGEpIHsKICAgICAgY29uc3QgX2UgPSB7IFtaXTogbmUgfTsKICAgICAgZm9yIChjb25zdCBiZSBpbiBfZSkgaGFzT3duKF9lLCBiZSkgJiYgaGFuZGxlRmxhdEpzb24oX2VbYmVdKTsKICAgICAgbmUgPSBfZVtaXTsKICAgIH0KICAgIChFLnZhbHVlW1pdID0gbmUpLCAoJC5tZXNzYWdlcyA9IEUudmFsdWUpOwogIH0KICBmdW5jdGlvbiBjZShaLCBuZSkgewogICAgRS52YWx1ZVtaXSA9IEUudmFsdWVbWl0gfHwge307CiAgICBjb25zdCBfZSA9IHsgW1pdOiBuZSB9OwogICAgaWYgKGEpIGZvciAoY29uc3QgYmUgaW4gX2UpIGhhc093bihfZSwgYmUpICYmIGhhbmRsZUZsYXRKc29uKF9lW2JlXSk7CiAgICAobmUgPSBfZVtaXSksIGRlZXBDb3B5KG5lLCBFLnZhbHVlW1pdKSwgKCQubWVzc2FnZXMgPSBFLnZhbHVlKTsKICB9CiAgZnVuY3Rpb24gZGUoWikgewogICAgcmV0dXJuIGIudmFsdWVbWl0gfHwge307CiAgfQogIGZ1bmN0aW9uIGooWiwgbmUpIHsKICAgIChiLnZhbHVlW1pdID0gbmUpLAogICAgICAoJC5kYXRldGltZUZvcm1hdHMgPSBiLnZhbHVlKSwKICAgICAgY2xlYXJEYXRlVGltZUZvcm1hdCgkLCBaLCBuZSk7CiAgfQogIGZ1bmN0aW9uIFUoWiwgbmUpIHsKICAgIChiLnZhbHVlW1pdID0gYXNzaWduJDEoYi52YWx1ZVtaXSB8fCB7fSwgbmUpKSwKICAgICAgKCQuZGF0ZXRpbWVGb3JtYXRzID0gYi52YWx1ZSksCiAgICAgIGNsZWFyRGF0ZVRpbWVGb3JtYXQoJCwgWiwgbmUpOwogIH0KICBmdW5jdGlvbiBYKFopIHsKICAgIHJldHVybiBQLnZhbHVlW1pdIHx8IHt9OwogIH0KICBmdW5jdGlvbiBvZShaLCBuZSkgewogICAgKFAudmFsdWVbWl0gPSBuZSksICgkLm51bWJlckZvcm1hdHMgPSBQLnZhbHVlKSwgY2xlYXJOdW1iZXJGb3JtYXQoJCwgWiwgbmUpOwogIH0KICBmdW5jdGlvbiBmZShaLCBuZSkgewogICAgKFAudmFsdWVbWl0gPSBhc3NpZ24kMShQLnZhbHVlW1pdIHx8IHt9LCBuZSkpLAogICAgICAoJC5udW1iZXJGb3JtYXRzID0gUC52YWx1ZSksCiAgICAgIGNsZWFyTnVtYmVyRm9ybWF0KCQsIFosIG5lKTsKICB9CiAgY29tcG9zZXJJRCsrLAogICAgciAmJgogICAgaW5Ccm93c2VyJDEgJiYKICAgICh3YXRjaChyLmxvY2FsZSwgKFopID0+IHsKICAgICAgYyAmJgogICAgICAgICgodS52YWx1ZSA9IFopLAogICAgICAgICAgKCQubG9jYWxlID0gWiksCiAgICAgICAgICB1cGRhdGVGYWxsYmFja0xvY2FsZSgkLCB1LnZhbHVlLCBkLnZhbHVlKSk7CiAgICB9KSwKICAgICAgd2F0Y2goci5mYWxsYmFja0xvY2FsZSwgKFopID0+IHsKICAgICAgICBjICYmCiAgICAgICAgICAoKGQudmFsdWUgPSBaKSwKICAgICAgICAgICAgKCQuZmFsbGJhY2tMb2NhbGUgPSBaKSwKICAgICAgICAgICAgdXBkYXRlRmFsbGJhY2tMb2NhbGUoJCwgdS52YWx1ZSwgZC52YWx1ZSkpOwogICAgICB9KSk7CiAgY29uc3QgdWUgPSB7CiAgICBpZDogY29tcG9zZXJJRCwKICAgIGxvY2FsZTogSywKICAgIGZhbGxiYWNrTG9jYWxlOiBlZSwKICAgIGdldCBpbmhlcml0TG9jYWxlKCkgewogICAgICByZXR1cm4gYzsKICAgIH0sCiAgICBzZXQgaW5oZXJpdExvY2FsZShaKSB7CiAgICAgIChjID0gWiksCiAgICAgICAgWiAmJgogICAgICAgIHIgJiYKICAgICAgICAoKHUudmFsdWUgPSByLmxvY2FsZS52YWx1ZSksCiAgICAgICAgICAoZC52YWx1ZSA9IHIuZmFsbGJhY2tMb2NhbGUudmFsdWUpLAogICAgICAgICAgdXBkYXRlRmFsbGJhY2tMb2NhbGUoJCwgdS52YWx1ZSwgZC52YWx1ZSkpOwogICAgfSwKICAgIGdldCBhdmFpbGFibGVMb2NhbGVzKCkgewogICAgICByZXR1cm4gT2JqZWN0LmtleXMoRS52YWx1ZSkuc29ydCgpOwogICAgfSwKICAgIG1lc3NhZ2VzOiBsZSwKICAgIGdldCBtb2RpZmllcnMoKSB7CiAgICAgIHJldHVybiBEOwogICAgfSwKICAgIGdldCBwbHVyYWxSdWxlcygpIHsKICAgICAgcmV0dXJuIEggfHwge307CiAgICB9LAogICAgZ2V0IGlzR2xvYmFsKCkgewogICAgICByZXR1cm4gaTsKICAgIH0sCiAgICBnZXQgbWlzc2luZ1dhcm4oKSB7CiAgICAgIHJldHVybiBSOwogICAgfSwKICAgIHNldCBtaXNzaW5nV2FybihaKSB7CiAgICAgIChSID0gWiksICgkLm1pc3NpbmdXYXJuID0gUik7CiAgICB9LAogICAgZ2V0IGZhbGxiYWNrV2FybigpIHsKICAgICAgcmV0dXJuIFQ7CiAgICB9LAogICAgc2V0IGZhbGxiYWNrV2FybihaKSB7CiAgICAgIChUID0gWiksICgkLmZhbGxiYWNrV2FybiA9IFQpOwogICAgfSwKICAgIGdldCBmYWxsYmFja1Jvb3QoKSB7CiAgICAgIHJldHVybiBNOwogICAgfSwKICAgIHNldCBmYWxsYmFja1Jvb3QoWikgewogICAgICBNID0gWjsKICAgIH0sCiAgICBnZXQgZmFsbGJhY2tGb3JtYXQoKSB7CiAgICAgIHJldHVybiB4OwogICAgfSwKICAgIHNldCBmYWxsYmFja0Zvcm1hdChaKSB7CiAgICAgICh4ID0gWiksICgkLmZhbGxiYWNrRm9ybWF0ID0geCk7CiAgICB9LAogICAgZ2V0IHdhcm5IdG1sTWVzc2FnZSgpIHsKICAgICAgcmV0dXJuIE87CiAgICB9LAogICAgc2V0IHdhcm5IdG1sTWVzc2FnZShaKSB7CiAgICAgIChPID0gWiksICgkLndhcm5IdG1sTWVzc2FnZSA9IFopOwogICAgfSwKICAgIGdldCBlc2NhcGVQYXJhbWV0ZXIoKSB7CiAgICAgIHJldHVybiBGOwogICAgfSwKICAgIHNldCBlc2NhcGVQYXJhbWV0ZXIoWikgewogICAgICAoRiA9IFopLCAoJC5lc2NhcGVQYXJhbWV0ZXIgPSBaKTsKICAgIH0sCiAgICB0OiBoZSwKICAgIGdldExvY2FsZU1lc3NhZ2U6IGFlLAogICAgc2V0TG9jYWxlTWVzc2FnZTogc2UsCiAgICBtZXJnZUxvY2FsZU1lc3NhZ2U6IGNlLAogICAgZ2V0UG9zdFRyYW5zbGF0aW9uSGFuZGxlcjogeiwKICAgIHNldFBvc3RUcmFuc2xhdGlvbkhhbmRsZXI6IE4sCiAgICBnZXRNaXNzaW5nSGFuZGxlcjogViwKICAgIHNldE1pc3NpbmdIYW5kbGVyOiBRLAogICAgW1NldFBsdXJhbFJ1bGVzU3ltYm9sXTogU2UsCiAgfTsKICByZXR1cm4gKAogICAgKHVlLmRhdGV0aW1lRm9ybWF0cyA9IHJlKSwKICAgICh1ZS5udW1iZXJGb3JtYXRzID0gQiksCiAgICAodWUucnQgPSB5ZSksCiAgICAodWUudGUgPSBXKSwKICAgICh1ZS50bSA9IHRlKSwKICAgICh1ZS5kID0gdmUpLAogICAgKHVlLm4gPSBQZSksCiAgICAodWUuZ2V0RGF0ZVRpbWVGb3JtYXQgPSBkZSksCiAgICAodWUuc2V0RGF0ZVRpbWVGb3JtYXQgPSBqKSwKICAgICh1ZS5tZXJnZURhdGVUaW1lRm9ybWF0ID0gVSksCiAgICAodWUuZ2V0TnVtYmVyRm9ybWF0ID0gWCksCiAgICAodWUuc2V0TnVtYmVyRm9ybWF0ID0gb2UpLAogICAgKHVlLm1lcmdlTnVtYmVyRm9ybWF0ID0gZmUpLAogICAgKHVlW0luZWpjdFdpdGhPcHRpb25TeW1ib2xdID0gbiksCiAgICAodWVbVHJhbnNsYXRlVk5vZGVTeW1ib2xdID0gcGUpLAogICAgKHVlW0RhdGV0aW1lUGFydHNTeW1ib2xdID0gRWUpLAogICAgKHVlW051bWJlclBhcnRzU3ltYm9sXSA9IGdlKSwKICAgIHVlCiAgKTsKfQpjb25zdCBiYXNlRm9ybWF0UHJvcHMgPSB7CiAgdGFnOiB7IHR5cGU6IFtTdHJpbmcsIE9iamVjdF0gfSwKICBsb2NhbGU6IHsgdHlwZTogU3RyaW5nIH0sCiAgc2NvcGU6IHsKICAgIHR5cGU6IFN0cmluZywKICAgIHZhbGlkYXRvcjogKGUpID0+IGUgPT09ICJwYXJlbnQiIHx8IGUgPT09ICJnbG9iYWwiLAogICAgZGVmYXVsdDogInBhcmVudCIsCiAgfSwKICBpMThuOiB7IHR5cGU6IE9iamVjdCB9LAp9OwpmdW5jdGlvbiBnZXRJbnRlcnBvbGF0ZUFyZyh7IHNsb3RzOiBlIH0sIHQpIHsKICByZXR1cm4gdC5sZW5ndGggPT09IDEgJiYgdFswXSA9PT0gImRlZmF1bHQiCiAgICA/IChlLmRlZmF1bHQgPyBlLmRlZmF1bHQoKSA6IFtdKS5yZWR1Y2UoCiAgICAgIChuLCBpKSA9PiBbLi4ubiwgLi4uKGkudHlwZSA9PT0gRnJhZ21lbnQgPyBpLmNoaWxkcmVuIDogW2ldKV0sCiAgICAgIFtdCiAgICApCiAgICA6IHQucmVkdWNlKChyLCBuKSA9PiB7CiAgICAgIGNvbnN0IGkgPSBlW25dOwogICAgICByZXR1cm4gaSAmJiAocltuXSA9IGkoKSksIHI7CiAgICB9LCBjcmVhdGUoKSk7Cn0KZnVuY3Rpb24gZ2V0RnJhZ21lbnRhYmxlVGFnKGUpIHsKICByZXR1cm4gRnJhZ21lbnQ7Cn0KY29uc3QgVHJhbnNsYXRpb25JbXBsID0gZGVmaW5lQ29tcG9uZW50JDEoewogIG5hbWU6ICJpMThuLXQiLAogIHByb3BzOiBhc3NpZ24kMSgKICAgIHsKICAgICAga2V5cGF0aDogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiAhMCB9LAogICAgICBwbHVyYWw6IHsKICAgICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLAogICAgICAgIHZhbGlkYXRvcjogKGUpID0+IGlzTnVtYmVyKGUpIHx8ICFpc05hTihlKSwKICAgICAgfSwKICAgIH0sCiAgICBiYXNlRm9ybWF0UHJvcHMKICApLAogIHNldHVwKGUsIHQpIHsKICAgIGNvbnN0IHsgc2xvdHM6IHIsIGF0dHJzOiBuIH0gPSB0LAogICAgICBpID0gZS5pMThuIHx8IHVzZUkxOG4oeyB1c2VTY29wZTogZS5zY29wZSwgX191c2VDb21wb25lbnQ6ICEwIH0pOwogICAgcmV0dXJuICgpID0+IHsKICAgICAgY29uc3QgYSA9IE9iamVjdC5rZXlzKHIpLmZpbHRlcigoRSkgPT4gRSAhPT0gIl8iKSwKICAgICAgICBvID0gY3JlYXRlKCk7CiAgICAgIGUubG9jYWxlICYmIChvLmxvY2FsZSA9IGUubG9jYWxlKSwKICAgICAgICBlLnBsdXJhbCAhPT0gdm9pZCAwICYmCiAgICAgICAgKG8ucGx1cmFsID0gaXNTdHJpbmcoZS5wbHVyYWwpID8gK2UucGx1cmFsIDogZS5wbHVyYWwpOwogICAgICBjb25zdCBsID0gZ2V0SW50ZXJwb2xhdGVBcmcodCwgYSksCiAgICAgICAgYyA9IGlbVHJhbnNsYXRlVk5vZGVTeW1ib2xdKGUua2V5cGF0aCwgbCwgbyksCiAgICAgICAgdSA9IGFzc2lnbiQxKGNyZWF0ZSgpLCBuKSwKICAgICAgICBkID0KICAgICAgICAgIGlzU3RyaW5nKGUudGFnKSB8fCBpc09iamVjdCQxKGUudGFnKSA/IGUudGFnIDogZ2V0RnJhZ21lbnRhYmxlVGFnKCk7CiAgICAgIHJldHVybiBoJDIoZCwgdSwgYyk7CiAgICB9OwogIH0sCn0pLAogIFRyYW5zbGF0aW9uID0gVHJhbnNsYXRpb25JbXBsOwpmdW5jdGlvbiBpc1ZOb2RlKGUpIHsKICByZXR1cm4gaXNBcnJheSQxKGUpICYmICFpc1N0cmluZyhlWzBdKTsKfQpmdW5jdGlvbiByZW5kZXJGb3JtYXR0ZXIoZSwgdCwgciwgbikgewogIGNvbnN0IHsgc2xvdHM6IGksIGF0dHJzOiBhIH0gPSB0OwogIHJldHVybiAoKSA9PiB7CiAgICBjb25zdCBvID0geyBwYXJ0OiAhMCB9OwogICAgbGV0IGwgPSBjcmVhdGUoKTsKICAgIGUubG9jYWxlICYmIChvLmxvY2FsZSA9IGUubG9jYWxlKSwKICAgICAgaXNTdHJpbmcoZS5mb3JtYXQpCiAgICAgICAgPyAoby5rZXkgPSBlLmZvcm1hdCkKICAgICAgICA6IGlzT2JqZWN0JDEoZS5mb3JtYXQpICYmCiAgICAgICAgKGlzU3RyaW5nKGUuZm9ybWF0LmtleSkgJiYgKG8ua2V5ID0gZS5mb3JtYXQua2V5KSwKICAgICAgICAgIChsID0gT2JqZWN0LmtleXMoZS5mb3JtYXQpLnJlZHVjZSgKICAgICAgICAgICAgKGIsIFApID0+CiAgICAgICAgICAgICAgci5pbmNsdWRlcyhQKSA/IGFzc2lnbiQxKGNyZWF0ZSgpLCBiLCB7IFtQXTogZS5mb3JtYXRbUF0gfSkgOiBiLAogICAgICAgICAgICBjcmVhdGUoKQogICAgICAgICAgKSkpOwogICAgY29uc3QgYyA9IG4oZS52YWx1ZSwgbywgbCk7CiAgICBsZXQgdSA9IFtvLmtleV07CiAgICBpc0FycmF5JDEoYykKICAgICAgPyAodSA9IGMubWFwKChiLCBQKSA9PiB7CiAgICAgICAgY29uc3QgUiA9IGlbYi50eXBlXSwKICAgICAgICAgIFQgPSBSID8gUih7IFtiLnR5cGVdOiBiLnZhbHVlLCBpbmRleDogUCwgcGFydHM6IGMgfSkgOiBbYi52YWx1ZV07CiAgICAgICAgcmV0dXJuIGlzVk5vZGUoVCkgJiYgKFRbMF0ua2V5ID0gYCR7Yi50eXBlfS0ke1B9YCksIFQ7CiAgICAgIH0pKQogICAgICA6IGlzU3RyaW5nKGMpICYmICh1ID0gW2NdKTsKICAgIGNvbnN0IGQgPSBhc3NpZ24kMShjcmVhdGUoKSwgYSksCiAgICAgIEUgPSBpc1N0cmluZyhlLnRhZykgfHwgaXNPYmplY3QkMShlLnRhZykgPyBlLnRhZyA6IGdldEZyYWdtZW50YWJsZVRhZygpOwogICAgcmV0dXJuIGgkMihFLCBkLCB1KTsKICB9Owp9CmNvbnN0IE51bWJlckZvcm1hdEltcGwgPSBkZWZpbmVDb21wb25lbnQkMSh7CiAgbmFtZTogImkxOG4tbiIsCiAgcHJvcHM6IGFzc2lnbiQxKAogICAgewogICAgICB2YWx1ZTogeyB0eXBlOiBOdW1iZXIsIHJlcXVpcmVkOiAhMCB9LAogICAgICBmb3JtYXQ6IHsgdHlwZTogW1N0cmluZywgT2JqZWN0XSB9LAogICAgfSwKICAgIGJhc2VGb3JtYXRQcm9wcwogICksCiAgc2V0dXAoZSwgdCkgewogICAgY29uc3QgciA9IGUuaTE4biB8fCB1c2VJMThuKHsgdXNlU2NvcGU6IGUuc2NvcGUsIF9fdXNlQ29tcG9uZW50OiAhMCB9KTsKICAgIHJldHVybiByZW5kZXJGb3JtYXR0ZXIoZSwgdCwgTlVNQkVSX0ZPUk1BVF9PUFRJT05TX0tFWVMsICguLi5uKSA9PgogICAgICByW051bWJlclBhcnRzU3ltYm9sXSguLi5uKQogICAgKTsKICB9LAp9KSwKICBOdW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXRJbXBsLAogIERhdGV0aW1lRm9ybWF0SW1wbCA9IGRlZmluZUNvbXBvbmVudCQxKHsKICAgIG5hbWU6ICJpMThuLWQiLAogICAgcHJvcHM6IGFzc2lnbiQxKAogICAgICB7CiAgICAgICAgdmFsdWU6IHsgdHlwZTogW051bWJlciwgRGF0ZV0sIHJlcXVpcmVkOiAhMCB9LAogICAgICAgIGZvcm1hdDogeyB0eXBlOiBbU3RyaW5nLCBPYmplY3RdIH0sCiAgICAgIH0sCiAgICAgIGJhc2VGb3JtYXRQcm9wcwogICAgKSwKICAgIHNldHVwKGUsIHQpIHsKICAgICAgY29uc3QgciA9IGUuaTE4biB8fCB1c2VJMThuKHsgdXNlU2NvcGU6IGUuc2NvcGUsIF9fdXNlQ29tcG9uZW50OiAhMCB9KTsKICAgICAgcmV0dXJuIHJlbmRlckZvcm1hdHRlcihlLCB0LCBEQVRFVElNRV9GT1JNQVRfT1BUSU9OU19LRVlTLCAoLi4ubikgPT4KICAgICAgICByW0RhdGV0aW1lUGFydHNTeW1ib2xdKC4uLm4pCiAgICAgICk7CiAgICB9LAogIH0pLAogIERhdGV0aW1lRm9ybWF0ID0gRGF0ZXRpbWVGb3JtYXRJbXBsOwpmdW5jdGlvbiBnZXRDb21wb3NlciQyKGUsIHQpIHsKICBjb25zdCByID0gZTsKICBpZiAoZS5tb2RlID09PSAiY29tcG9zaXRpb24iKSByZXR1cm4gci5fX2dldEluc3RhbmNlKHQpIHx8IGUuZ2xvYmFsOwogIHsKICAgIGNvbnN0IG4gPSByLl9fZ2V0SW5zdGFuY2UodCk7CiAgICByZXR1cm4gbiAhPSBudWxsID8gbi5fX2NvbXBvc2VyIDogZS5nbG9iYWwuX19jb21wb3NlcjsKICB9Cn0KZnVuY3Rpb24gdlREaXJlY3RpdmUoZSkgewogIGNvbnN0IHQgPSAobykgPT4gewogICAgY29uc3QgeyBpbnN0YW5jZTogbCwgbW9kaWZpZXJzOiBjLCB2YWx1ZTogdSB9ID0gbzsKICAgIGlmICghbCB8fCAhbC4kKSB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuVU5FWFBFQ1RFRF9FUlJPUik7CiAgICBjb25zdCBkID0gZ2V0Q29tcG9zZXIkMihlLCBsLiQpLAogICAgICBFID0gcGFyc2VWYWx1ZSh1KTsKICAgIHJldHVybiBbUmVmbGVjdC5hcHBseShkLnQsIGQsIFsuLi5tYWtlUGFyYW1zKEUpXSksIGRdOwogIH07CiAgcmV0dXJuIHsKICAgIGNyZWF0ZWQ6IChvLCBsKSA9PiB7CiAgICAgIGNvbnN0IFtjLCB1XSA9IHQobCk7CiAgICAgIGluQnJvd3NlciQxICYmCiAgICAgICAgZS5nbG9iYWwgPT09IHUgJiYKICAgICAgICAoby5fX2kxOG5XYXRjaGVyID0gd2F0Y2godS5sb2NhbGUsICgpID0+IHsKICAgICAgICAgIGwuaW5zdGFuY2UgJiYgbC5pbnN0YW5jZS4kZm9yY2VVcGRhdGUoKTsKICAgICAgICB9KSksCiAgICAgICAgKG8uX19jb21wb3NlciA9IHUpLAogICAgICAgIChvLnRleHRDb250ZW50ID0gYyk7CiAgICB9LAogICAgdW5tb3VudGVkOiAobykgPT4gewogICAgICBpbkJyb3dzZXIkMSAmJgogICAgICAgIG8uX19pMThuV2F0Y2hlciAmJgogICAgICAgIChvLl9faTE4bldhdGNoZXIoKSwgKG8uX19pMThuV2F0Y2hlciA9IHZvaWQgMCksIGRlbGV0ZSBvLl9faTE4bldhdGNoZXIpLAogICAgICAgIG8uX19jb21wb3NlciAmJiAoKG8uX19jb21wb3NlciA9IHZvaWQgMCksIGRlbGV0ZSBvLl9fY29tcG9zZXIpOwogICAgfSwKICAgIGJlZm9yZVVwZGF0ZTogKG8sIHsgdmFsdWU6IGwgfSkgPT4gewogICAgICBpZiAoby5fX2NvbXBvc2VyKSB7CiAgICAgICAgY29uc3QgYyA9IG8uX19jb21wb3NlciwKICAgICAgICAgIHUgPSBwYXJzZVZhbHVlKGwpOwogICAgICAgIG8udGV4dENvbnRlbnQgPSBSZWZsZWN0LmFwcGx5KGMudCwgYywgWy4uLm1ha2VQYXJhbXModSldKTsKICAgICAgfQogICAgfSwKICAgIGdldFNTUlByb3BzOiAobykgPT4gewogICAgICBjb25zdCBbbF0gPSB0KG8pOwogICAgICByZXR1cm4geyB0ZXh0Q29udGVudDogbCB9OwogICAgfSwKICB9Owp9CmZ1bmN0aW9uIHBhcnNlVmFsdWUoZSkgewogIGlmIChpc1N0cmluZyhlKSkgcmV0dXJuIHsgcGF0aDogZSB9OwogIGlmIChpc1BsYWluT2JqZWN0JDEoZSkpIHsKICAgIGlmICghKCJwYXRoIiBpbiBlKSkKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLlJFUVVJUkVEX1ZBTFVFLCAicGF0aCIpOwogICAgcmV0dXJuIGU7CiAgfSBlbHNlIHRocm93IGNyZWF0ZUkxOG5FcnJvcihJMThuRXJyb3JDb2Rlcy5JTlZBTElEX1ZBTFVFKTsKfQpmdW5jdGlvbiBtYWtlUGFyYW1zKGUpIHsKICBjb25zdCB7IHBhdGg6IHQsIGxvY2FsZTogciwgYXJnczogbiwgY2hvaWNlOiBpLCBwbHVyYWw6IGEgfSA9IGUsCiAgICBvID0ge30sCiAgICBsID0gbiB8fCB7fTsKICByZXR1cm4gKAogICAgaXNTdHJpbmcocikgJiYgKG8ubG9jYWxlID0gciksCiAgICBpc051bWJlcihpKSAmJiAoby5wbHVyYWwgPSBpKSwKICAgIGlzTnVtYmVyKGEpICYmIChvLnBsdXJhbCA9IGEpLAogICAgW3QsIGwsIG9dCiAgKTsKfQpmdW5jdGlvbiBhcHBseShlLCB0LCAuLi5yKSB7CiAgY29uc3QgbiA9IGlzUGxhaW5PYmplY3QkMShyWzBdKSA/IHJbMF0gOiB7fSwKICAgIGkgPSAhIW4udXNlSTE4bkNvbXBvbmVudE5hbWU7CiAgKGlzQm9vbGVhbihuLmdsb2JhbEluc3RhbGwpID8gbi5nbG9iYWxJbnN0YWxsIDogITApICYmCiAgICAoW2kgPyAiaTE4biIgOiBUcmFuc2xhdGlvbi5uYW1lLCAiSTE4blQiXS5mb3JFYWNoKChvKSA9PgogICAgICBlLmNvbXBvbmVudChvLCBUcmFuc2xhdGlvbikKICAgICksCiAgICAgIFtOdW1iZXJGb3JtYXQubmFtZSwgIkkxOG5OIl0uZm9yRWFjaCgobykgPT4gZS5jb21wb25lbnQobywgTnVtYmVyRm9ybWF0KSksCiAgICAgIFtEYXRldGltZUZvcm1hdC5uYW1lLCAiSTE4bkQiXS5mb3JFYWNoKChvKSA9PgogICAgICAgIGUuY29tcG9uZW50KG8sIERhdGV0aW1lRm9ybWF0KQogICAgICApKSwKICAgIGUuZGlyZWN0aXZlKCJ0IiwgdlREaXJlY3RpdmUodCkpOwp9CmNvbnN0IEkxOG5JbmplY3Rpb25LZXkgPSBtYWtlU3ltYm9sKCJnbG9iYWwtdnVlLWkxOG4iKTsKZnVuY3Rpb24gY3JlYXRlSTE4bihlID0ge30sIHQpIHsKICBjb25zdCByID0gaXNCb29sZWFuKGUuZ2xvYmFsSW5qZWN0aW9uKSA/IGUuZ2xvYmFsSW5qZWN0aW9uIDogITAsCiAgICBuID0gITAsCiAgICBpID0gbmV3IE1hcCgpLAogICAgW2EsIG9dID0gY3JlYXRlR2xvYmFsKGUpLAogICAgbCA9IG1ha2VTeW1ib2woIiIpOwogIGZ1bmN0aW9uIGMoRSkgewogICAgcmV0dXJuIGkuZ2V0KEUpIHx8IG51bGw7CiAgfQogIGZ1bmN0aW9uIHUoRSwgYikgewogICAgaS5zZXQoRSwgYik7CiAgfQogIGZ1bmN0aW9uIGQoRSkgewogICAgaS5kZWxldGUoRSk7CiAgfQogIHsKICAgIGNvbnN0IEUgPSB7CiAgICAgIGdldCBtb2RlKCkgewogICAgICAgIHJldHVybiAiY29tcG9zaXRpb24iOwogICAgICB9LAogICAgICBnZXQgYWxsb3dDb21wb3NpdGlvbigpIHsKICAgICAgICByZXR1cm4gbjsKICAgICAgfSwKICAgICAgYXN5bmMgaW5zdGFsbChiLCAuLi5QKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgKChiLl9fVlVFX0kxOE5fU1lNQk9MX18gPSBsKSwKICAgICAgICAgICAgYi5wcm92aWRlKGIuX19WVUVfSTE4Tl9TWU1CT0xfXywgRSksCiAgICAgICAgICAgIGlzUGxhaW5PYmplY3QkMShQWzBdKSkKICAgICAgICApIHsKICAgICAgICAgIGNvbnN0IE0gPSBQWzBdOwogICAgICAgICAgKEUuX19jb21wb3NlckV4dGVuZCA9IE0uX19jb21wb3NlckV4dGVuZCksCiAgICAgICAgICAgIChFLl9fdnVlSTE4bkV4dGVuZCA9IE0uX192dWVJMThuRXh0ZW5kKTsKICAgICAgICB9CiAgICAgICAgbGV0IFIgPSBudWxsOwogICAgICAgIHIgJiYgKFIgPSBpbmplY3RHbG9iYWxGaWVsZHMoYiwgRS5nbG9iYWwpKSwgYXBwbHkoYiwgRSwgLi4uUCk7CiAgICAgICAgY29uc3QgVCA9IGIudW5tb3VudDsKICAgICAgICBiLnVubW91bnQgPSAoKSA9PiB7CiAgICAgICAgICBSICYmIFIoKSwgRS5kaXNwb3NlKCksIFQoKTsKICAgICAgICB9OwogICAgICB9LAogICAgICBnZXQgZ2xvYmFsKCkgewogICAgICAgIHJldHVybiBvOwogICAgICB9LAogICAgICBkaXNwb3NlKCkgewogICAgICAgIGEuc3RvcCgpOwogICAgICB9LAogICAgICBfX2luc3RhbmNlczogaSwKICAgICAgX19nZXRJbnN0YW5jZTogYywKICAgICAgX19zZXRJbnN0YW5jZTogdSwKICAgICAgX19kZWxldGVJbnN0YW5jZTogZCwKICAgIH07CiAgICByZXR1cm4gRTsKICB9Cn0KZnVuY3Rpb24gdXNlSTE4bihlID0ge30pIHsKICBjb25zdCB0ID0gZ2V0Q3VycmVudEluc3RhbmNlJDEoKTsKICBpZiAodCA9PSBudWxsKSB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuTVVTVF9CRV9DQUxMX1NFVFVQX1RPUCk7CiAgaWYgKAogICAgIXQuaXNDRSAmJgogICAgdC5hcHBDb250ZXh0LmFwcCAhPSBudWxsICYmCiAgICAhdC5hcHBDb250ZXh0LmFwcC5fX1ZVRV9JMThOX1NZTUJPTF9fCiAgKQogICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKEkxOG5FcnJvckNvZGVzLk5PVF9JTlNUQUxMRUQpOwogIGNvbnN0IHIgPSBnZXRJMThuSW5zdGFuY2UodCksCiAgICBuID0gZ2V0R2xvYmFsQ29tcG9zZXIociksCiAgICBpID0gZ2V0Q29tcG9uZW50T3B0aW9ucyh0KSwKICAgIGEgPSBnZXRTY29wZShlLCBpKTsKICBpZiAoYSA9PT0gImdsb2JhbCIpIHJldHVybiBhZGp1c3RJMThuUmVzb3VyY2VzKG4sIGUsIGkpLCBuOwogIGlmIChhID09PSAicGFyZW50IikgewogICAgbGV0IGMgPSBnZXRDb21wb3NlciQxKHIsIHQsIGUuX191c2VDb21wb25lbnQpOwogICAgcmV0dXJuIGMgPT0gbnVsbCAmJiAoYyA9IG4pLCBjOwogIH0KICBjb25zdCBvID0gcjsKICBsZXQgbCA9IG8uX19nZXRJbnN0YW5jZSh0KTsKICBpZiAobCA9PSBudWxsKSB7CiAgICBjb25zdCBjID0gYXNzaWduJDEoe30sIGUpOwogICAgIl9faTE4biIgaW4gaSAmJiAoYy5fX2kxOG4gPSBpLl9faTE4biksCiAgICAgIG4gJiYgKGMuX19yb290ID0gbiksCiAgICAgIChsID0gY3JlYXRlQ29tcG9zZXIoYykpLAogICAgICBvLl9fY29tcG9zZXJFeHRlbmQgJiYgKGxbRGlzcG9zZVN5bWJvbF0gPSBvLl9fY29tcG9zZXJFeHRlbmQobCkpLAogICAgICBzZXR1cExpZmVDeWNsZShvLCB0LCBsKSwKICAgICAgby5fX3NldEluc3RhbmNlKHQsIGwpOwogIH0KICByZXR1cm4gbDsKfQpmdW5jdGlvbiBjcmVhdGVHbG9iYWwoZSwgdCwgcikgewogIGNvbnN0IG4gPSBlZmZlY3RTY29wZSgpOwogIHsKICAgIGNvbnN0IGkgPSBuLnJ1bigoKSA9PiBjcmVhdGVDb21wb3NlcihlKSk7CiAgICBpZiAoaSA9PSBudWxsKSB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuVU5FWFBFQ1RFRF9FUlJPUik7CiAgICByZXR1cm4gW24sIGldOwogIH0KfQpmdW5jdGlvbiBnZXRJMThuSW5zdGFuY2UoZSkgewogIHsKICAgIGNvbnN0IHQgPSBpbmplY3QkMSgKICAgICAgZS5pc0NFID8gSTE4bkluamVjdGlvbktleSA6IGUuYXBwQ29udGV4dC5hcHAuX19WVUVfSTE4Tl9TWU1CT0xfXwogICAgKTsKICAgIGlmICghdCkKICAgICAgdGhyb3cgY3JlYXRlSTE4bkVycm9yKAogICAgICAgIGUuaXNDRQogICAgICAgICAgPyBJMThuRXJyb3JDb2Rlcy5OT1RfSU5TVEFMTEVEX1dJVEhfUFJPVklERQogICAgICAgICAgOiBJMThuRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VSUk9SCiAgICAgICk7CiAgICByZXR1cm4gdDsKICB9Cn0KZnVuY3Rpb24gZ2V0U2NvcGUoZSwgdCkgewogIHJldHVybiBpc0VtcHR5T2JqZWN0KGUpCiAgICA/ICJfX2kxOG4iIGluIHQKICAgICAgPyAibG9jYWwiCiAgICAgIDogImdsb2JhbCIKICAgIDogZS51c2VTY29wZQogICAgICA/IGUudXNlU2NvcGUKICAgICAgOiAibG9jYWwiOwp9CmZ1bmN0aW9uIGdldEdsb2JhbENvbXBvc2VyKGUpIHsKICByZXR1cm4gZS5tb2RlID09PSAiY29tcG9zaXRpb24iID8gZS5nbG9iYWwgOiBlLmdsb2JhbC5fX2NvbXBvc2VyOwp9CmZ1bmN0aW9uIGdldENvbXBvc2VyJDEoZSwgdCwgciA9ICExKSB7CiAgbGV0IG4gPSBudWxsOwogIGNvbnN0IGkgPSB0LnJvb3Q7CiAgbGV0IGEgPSBnZXRQYXJlbnRDb21wb25lbnRJbnN0YW5jZSh0LCByKTsKICBmb3IgKDsgYSAhPSBudWxsOykgewogICAgY29uc3QgbyA9IGU7CiAgICBpZiAoCiAgICAgIChlLm1vZGUgPT09ICJjb21wb3NpdGlvbiIgJiYgKG4gPSBvLl9fZ2V0SW5zdGFuY2UoYSkpLAogICAgICAgIG4gIT0gbnVsbCB8fCBpID09PSBhKQogICAgKQogICAgICBicmVhazsKICAgIGEgPSBhLnBhcmVudDsKICB9CiAgcmV0dXJuIG47Cn0KZnVuY3Rpb24gZ2V0UGFyZW50Q29tcG9uZW50SW5zdGFuY2UoZSwgdCA9ICExKSB7CiAgcmV0dXJuIGUgPT0gbnVsbCA/IG51bGwgOiAodCAmJiBlLnZub2RlLmN0eCkgfHwgZS5wYXJlbnQ7Cn0KZnVuY3Rpb24gc2V0dXBMaWZlQ3ljbGUoZSwgdCwgcikgewogIG9uTW91bnRlZCgoKSA9PiB7IH0sIHQpLAogICAgb25Vbm1vdW50ZWQoKCkgPT4gewogICAgICBjb25zdCBuID0gcjsKICAgICAgZS5fX2RlbGV0ZUluc3RhbmNlKHQpOwogICAgICBjb25zdCBpID0gbltEaXNwb3NlU3ltYm9sXTsKICAgICAgaSAmJiAoaSgpLCBkZWxldGUgbltEaXNwb3NlU3ltYm9sXSk7CiAgICB9LCB0KTsKfQpjb25zdCBnbG9iYWxFeHBvcnRQcm9wcyA9IFsibG9jYWxlIiwgImZhbGxiYWNrTG9jYWxlIiwgImF2YWlsYWJsZUxvY2FsZXMiXSwKICBnbG9iYWxFeHBvcnRNZXRob2RzID0gWyJ0IiwgInJ0IiwgImQiLCAibiIsICJ0bSIsICJ0ZSJdOwpmdW5jdGlvbiBpbmplY3RHbG9iYWxGaWVsZHMoZSwgdCkgewogIGNvbnN0IHIgPSBPYmplY3QuY3JlYXRlKG51bGwpOwogIHJldHVybiAoCiAgICBnbG9iYWxFeHBvcnRQcm9wcy5mb3JFYWNoKChpKSA9PiB7CiAgICAgIGNvbnN0IGEgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsIGkpOwogICAgICBpZiAoIWEpIHRocm93IGNyZWF0ZUkxOG5FcnJvcihJMThuRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VSUk9SKTsKICAgICAgY29uc3QgbyA9IGlzUmVmKGEudmFsdWUpCiAgICAgICAgPyB7CiAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgIHJldHVybiBhLnZhbHVlLnZhbHVlOwogICAgICAgICAgfSwKICAgICAgICAgIHNldChsKSB7CiAgICAgICAgICAgIGEudmFsdWUudmFsdWUgPSBsOwogICAgICAgICAgfSwKICAgICAgICB9CiAgICAgICAgOiB7CiAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgIHJldHVybiBhLmdldCAmJiBhLmdldCgpOwogICAgICAgICAgfSwKICAgICAgICB9OwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkociwgaSwgbyk7CiAgICB9KSwKICAgIChlLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRpMThuID0gciksCiAgICBnbG9iYWxFeHBvcnRNZXRob2RzLmZvckVhY2goKGkpID0+IHsKICAgICAgY29uc3QgYSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgaSk7CiAgICAgIGlmICghYSB8fCAhYS52YWx1ZSkKICAgICAgICB0aHJvdyBjcmVhdGVJMThuRXJyb3IoSTE4bkVycm9yQ29kZXMuVU5FWFBFQ1RFRF9FUlJPUik7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLCBgJCR7aX1gLCBhKTsKICAgIH0pLAogICAgKCkgPT4gewogICAgICBkZWxldGUgZS5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kaTE4biwKICAgICAgICBnbG9iYWxFeHBvcnRNZXRob2RzLmZvckVhY2goKGkpID0+IHsKICAgICAgICAgIGRlbGV0ZSBlLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzW2AkJHtpfWBdOwogICAgICAgIH0pOwogICAgfQogICk7Cn0KaW5pdEZlYXR1cmVGbGFncygpOwpyZWdpc3Rlck1lc3NhZ2VDb21waWxlcihjb21waWxlKTsKcmVnaXN0ZXJNZXNzYWdlUmVzb2x2ZXIocmVzb2x2ZVZhbHVlJDEpOwpyZWdpc3RlckxvY2FsZUZhbGxiYWNrZXIoZmFsbGJhY2tXaXRoTG9jYWxlQ2hhaW4pOwppZiAoX19JTlRMSUZZX1BST0RfREVWVE9PTFNfXykgewogIGNvbnN0IGUgPSBnZXRHbG9iYWxUaGlzKCk7CiAgKGUuX19JTlRMSUZZX18gPSAhMCksIHNldERldlRvb2xzSG9vayhlLl9fSU5UTElGWV9ERVZUT09MU19HTE9CQUxfSE9PS19fKTsKfQpmdW5jdGlvbiBjcmVhdGVBZGFwdGVyKGUpIHsKICBlLmxvY2FsZSA9IHt9OwogIGNvbnN0IHQgPSB1c2VOdXh0QXBwKCksCiAgICByID0gdC4kaTE4biwKICAgIG4gPSByLmxvY2FsZSwKICAgIGkgPSByLmZhbGxiYWNrTG9jYWxlLAogICAgYSA9IHIubWVzc2FnZXMsCiAgICBvID0gcmVmKG4udmFsdWUpOwogIChlLmxvY2FsZS5ydGwgPSByLmxvY2FsZXMudmFsdWUucmVkdWNlKAogICAgKGwsIGMpID0+ICgobFtjLmNvZGVdID0gYy5kaXIgPT09ICJydGwiKSwgbCksCiAgICB7fQogICkpLAogICAgd2F0Y2goCiAgICAgIG8sCiAgICAgIChsLCBjKSA9PiB7CiAgICAgICAgYyAmJiByLnNldExvY2FsZShsKTsKICAgICAgfSwKICAgICAgeyBpbW1lZGlhdGU6ICEwLCBmbHVzaDogInBvc3QiIH0KICAgICksCiAgICB0Lmhvb2soImkxOG46bG9jYWxlU3dpdGNoZWQiLCAoeyBuZXdMb2NhbGU6IGwgfSkgPT4gewogICAgICBvLnZhbHVlID0gbDsKICAgIH0pLAogICAgKGUubG9jYWxlLmFkYXB0ZXIgPSB7CiAgICAgIG5hbWU6ICJudXh0LXZ1ZS1pMThuIiwKICAgICAgY3VycmVudDogbywKICAgICAgZmFsbGJhY2s6IGksCiAgICAgIG1lc3NhZ2VzOiBhLAogICAgICB0OiAobCwgLi4uYykgPT4gci50KGwsIGMpLAogICAgICBuOiByLm4sCiAgICAgIHByb3ZpZGU6IGNyZWF0ZVByb3ZpZGVGdW5jdGlvbiQxKHsKICAgICAgICBjdXJyZW50OiBvLAogICAgICAgIGZhbGxiYWNrOiBpLAogICAgICAgIG1lc3NhZ2VzOiBhLAogICAgICB9KSwKICAgIH0pOwp9CmZ1bmN0aW9uIGNyZWF0ZVByb3ZpZGVGdW5jdGlvbiQxKGUpIHsKICByZXR1cm4gKHQpID0+IHsKICAgIGNvbnN0IHIgPSByZWYodC5sb2NhbGUgPz8gZS5jdXJyZW50LnZhbHVlKSwKICAgICAgbiA9IHVzZUkxOG4oewogICAgICAgIGxvY2FsZTogci52YWx1ZSwKICAgICAgICBmYWxsYmFja0xvY2FsZTogZS5mYWxsYmFjay52YWx1ZSwKICAgICAgICBtZXNzYWdlczogZS5tZXNzYWdlcy52YWx1ZSwKICAgICAgICB1c2VTY29wZTogImxvY2FsIiwKICAgICAgICBsZWdhY3k6ICExLAogICAgICAgIGluaGVyaXRMb2NhbGU6ICExLAogICAgICB9KTsKICAgIHdhdGNoKAogICAgICByLAogICAgICAobywgbCkgPT4gewogICAgICAgIGwgJiYgbi5zZXRMb2NhbGUobyk7CiAgICAgIH0sCiAgICAgIHsgaW1tZWRpYXRlOiAhMCwgZmx1c2g6ICJwb3N0IiB9CiAgICApOwogICAgY29uc3QgaSA9IHdyYXBJMThuKG4udCksCiAgICAgIGEgPSB3cmFwSTE4bihuLm4pOwogICAgcmV0dXJuIHsKICAgICAgbmFtZTogIm51eHQtdnVlLWkxOG4iLAogICAgICBjdXJyZW50OiByLAogICAgICBmYWxsYmFjazogZS5mYWxsYmFjaywKICAgICAgbWVzc2FnZXM6IGUubWVzc2FnZXMsCiAgICAgIHQ6IGksCiAgICAgIG46IGEsCiAgICAgIHByb3ZpZGU6IGNyZWF0ZVByb3ZpZGVGdW5jdGlvbiQxKHsKICAgICAgICBjdXJyZW50OiByLAogICAgICAgIGZhbGxiYWNrOiBlLmZhbGxiYWNrLAogICAgICAgIG1lc3NhZ2VzOiBlLm1lc3NhZ2VzLAogICAgICB9KSwKICAgIH07CiAgfTsKfQpmdW5jdGlvbiB3cmFwSTE4bihlKSB7CiAgcmV0dXJuICguLi50KSA9PiBlKC4uLnQpOwp9CmNvbnN0IHZ1ZXRpZnlfaTE4bl9INHVVdmh5clUxID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgbmFtZTogInZ1ZXRpZnk6aTE4bjpwbHVnaW4iLAogIG9yZGVyOiAtMjUsCiAgZGVwZW5kc09uOiBbImkxOG46cGx1Z2luIl0sCiAgcGFyYWxsZWw6ICEwLAogIHNldHVwKGUpIHsKICAgIGUuaG9vaygidnVldGlmeTpjb25maWd1cmF0aW9uIiwgKHsgdnVldGlmeU9wdGlvbnM6IHQgfSkgPT4gewogICAgICBjcmVhdGVBZGFwdGVyKHQpOwogICAgfSk7CiAgfSwKfSksCiAgSU5fQlJPV1NFUiA9IHR5cGVvZiB3aW5kb3cgPCAidSIsCiAgU1VQUE9SVFNfSU5URVJTRUNUSU9OID0gSU5fQlJPV1NFUiAmJiAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiIGluIHdpbmRvdywKICBTVVBQT1JUU19UT1VDSCA9CiAgICBJTl9CUk9XU0VSICYmCiAgICAoIm9udG91Y2hzdGFydCIgaW4gd2luZG93IHx8IHdpbmRvdy5uYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPiAwKTsKZnVuY3Rpb24gX2NsYXNzUHJpdmF0ZUZpZWxkSW5pdFNwZWMoZSwgdCwgcikgewogIF9jaGVja1ByaXZhdGVSZWRlY2xhcmF0aW9uKGUsIHQpLCB0LnNldChlLCByKTsKfQpmdW5jdGlvbiBfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbihlLCB0KSB7CiAgaWYgKHQuaGFzKGUpKQogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0IgogICAgKTsKfQpmdW5jdGlvbiBfY2xhc3NQcml2YXRlRmllbGRTZXQoZSwgdCwgcikgewogIHJldHVybiBlLnNldChfYXNzZXJ0Q2xhc3NCcmFuZChlLCB0KSwgciksIHI7Cn0KZnVuY3Rpb24gX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KGUsIHQpIHsKICByZXR1cm4gZS5nZXQoX2Fzc2VydENsYXNzQnJhbmQoZSwgdCkpOwp9CmZ1bmN0aW9uIF9hc3NlcnRDbGFzc0JyYW5kKGUsIHQsIHIpIHsKICBpZiAodHlwZW9mIGUgPT0gImZ1bmN0aW9uIiA/IGUgPT09IHQgOiBlLmhhcyh0KSkKICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMyA/IHQgOiByOwogIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpOwp9CmZ1bmN0aW9uIGdldE5lc3RlZFZhbHVlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gdC5sZW5ndGggLSAxOwogIGlmIChuIDwgMCkgcmV0dXJuIGUgPT09IHZvaWQgMCA/IHIgOiBlOwogIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICBpZiAoZSA9PSBudWxsKSByZXR1cm4gcjsKICAgIGUgPSBlW3RbaV1dOwogIH0KICByZXR1cm4gZSA9PSBudWxsIHx8IGVbdFtuXV0gPT09IHZvaWQgMCA/IHIgOiBlW3Rbbl1dOwp9CmZ1bmN0aW9uIGRlZXBFcXVhbChlLCB0KSB7CiAgaWYgKGUgPT09IHQpIHJldHVybiAhMDsKICBpZiAoCiAgICAoZSBpbnN0YW5jZW9mIERhdGUgJiYgdCBpbnN0YW5jZW9mIERhdGUgJiYgZS5nZXRUaW1lKCkgIT09IHQuZ2V0VGltZSgpKSB8fAogICAgZSAhPT0gT2JqZWN0KGUpIHx8CiAgICB0ICE9PSBPYmplY3QodCkKICApCiAgICByZXR1cm4gITE7CiAgY29uc3QgciA9IE9iamVjdC5rZXlzKGUpOwogIHJldHVybiByLmxlbmd0aCAhPT0gT2JqZWN0LmtleXModCkubGVuZ3RoCiAgICA/ICExCiAgICA6IHIuZXZlcnkoKG4pID0+IGRlZXBFcXVhbChlW25dLCB0W25dKSk7Cn0KZnVuY3Rpb24gZ2V0T2JqZWN0VmFsdWVCeVBhdGgoZSwgdCwgcikgewogIHJldHVybiBlID09IG51bGwgfHwgIXQgfHwgdHlwZW9mIHQgIT0gInN0cmluZyIKICAgID8gcgogICAgOiBlW3RdICE9PSB2b2lkIDAKICAgICAgPyBlW3RdCiAgICAgIDogKCh0ID0gdC5yZXBsYWNlKC9cWyhcdyspXF0vZywgIi4kMSIpKSwKICAgICAgICAodCA9IHQucmVwbGFjZSgvXlwuLywgIiIpKSwKICAgICAgICBnZXROZXN0ZWRWYWx1ZShlLCB0LnNwbGl0KCIuIiksIHIpKTsKfQpmdW5jdGlvbiBnZXRQcm9wZXJ0eUZyb21JdGVtKGUsIHQsIHIpIHsKICBpZiAodCA9PT0gITApIHJldHVybiBlID09PSB2b2lkIDAgPyByIDogZTsKICBpZiAodCA9PSBudWxsIHx8IHR5cGVvZiB0ID09ICJib29sZWFuIikgcmV0dXJuIHI7CiAgaWYgKGUgIT09IE9iamVjdChlKSkgewogICAgaWYgKHR5cGVvZiB0ICE9ICJmdW5jdGlvbiIpIHJldHVybiByOwogICAgY29uc3QgaSA9IHQoZSwgcik7CiAgICByZXR1cm4gdHlwZW9mIGkgPiAidSIgPyByIDogaTsKICB9CiAgaWYgKHR5cGVvZiB0ID09ICJzdHJpbmciKSByZXR1cm4gZ2V0T2JqZWN0VmFsdWVCeVBhdGgoZSwgdCwgcik7CiAgaWYgKEFycmF5LmlzQXJyYXkodCkpIHJldHVybiBnZXROZXN0ZWRWYWx1ZShlLCB0LCByKTsKICBpZiAodHlwZW9mIHQgIT0gImZ1bmN0aW9uIikgcmV0dXJuIHI7CiAgY29uc3QgbiA9IHQoZSwgcik7CiAgcmV0dXJuIHR5cGVvZiBuID4gInUiID8gciA6IG47Cn0KZnVuY3Rpb24gY3JlYXRlUmFuZ2UoZSkgewogIGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMV0gOiAwOwogIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBlIH0sIChyLCBuKSA9PiB0ICsgbik7Cn0KZnVuY3Rpb24gY29udmVydFRvVW5pdChlKSB7CiAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1sxXSA6ICJweCI7CiAgaWYgKCEoZSA9PSBudWxsIHx8IGUgPT09ICIiKSkKICAgIHJldHVybiBpc05hTigrZSkgPyBTdHJpbmcoZSkgOiBpc0Zpbml0ZSgrZSkgPyBgJHtOdW1iZXIoZSl9JHt0fWAgOiB2b2lkIDA7Cn0KZnVuY3Rpb24gaXNPYmplY3QoZSkgewogIHJldHVybiBlICE9PSBudWxsICYmIHR5cGVvZiBlID09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KGUpOwp9CmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QoZSkgewogIGxldCB0OwogIHJldHVybiAoCiAgICBlICE9PSBudWxsICYmCiAgICB0eXBlb2YgZSA9PSAib2JqZWN0IiAmJgogICAgKCh0ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKSA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCB0ID09PSBudWxsKQogICk7Cn0KZnVuY3Rpb24gcmVmRWxlbWVudChlKSB7CiAgaWYgKGUgJiYgIiRlbCIgaW4gZSkgewogICAgY29uc3QgdCA9IGUuJGVsOwogICAgcmV0dXJuICh0ID09IG51bGwgPyB2b2lkIDAgOiB0Lm5vZGVUeXBlKSA9PT0gTm9kZS5URVhUX05PREUKICAgICAgPyB0Lm5leHRFbGVtZW50U2libGluZwogICAgICA6IHQ7CiAgfQogIHJldHVybiBlOwp9CmNvbnN0IGtleUNvZGVzID0gT2JqZWN0LmZyZWV6ZSh7CiAgZW50ZXI6IDEzLAogIHRhYjogOSwKICBkZWxldGU6IDQ2LAogIGVzYzogMjcsCiAgc3BhY2U6IDMyLAogIHVwOiAzOCwKICBkb3duOiA0MCwKICBsZWZ0OiAzNywKICByaWdodDogMzksCiAgZW5kOiAzNSwKICBob21lOiAzNiwKICBkZWw6IDQ2LAogIGJhY2tzcGFjZTogOCwKICBpbnNlcnQ6IDQ1LAogIHBhZ2V1cDogMzMsCiAgcGFnZWRvd246IDM0LAogIHNoaWZ0OiAxNiwKfSksCiAga2V5VmFsdWVzID0gT2JqZWN0LmZyZWV6ZSh7CiAgICBlbnRlcjogIkVudGVyIiwKICAgIHRhYjogIlRhYiIsCiAgICBkZWxldGU6ICJEZWxldGUiLAogICAgZXNjOiAiRXNjYXBlIiwKICAgIHNwYWNlOiAiU3BhY2UiLAogICAgdXA6ICJBcnJvd1VwIiwKICAgIGRvd246ICJBcnJvd0Rvd24iLAogICAgbGVmdDogIkFycm93TGVmdCIsCiAgICByaWdodDogIkFycm93UmlnaHQiLAogICAgZW5kOiAiRW5kIiwKICAgIGhvbWU6ICJIb21lIiwKICAgIGRlbDogIkRlbGV0ZSIsCiAgICBiYWNrc3BhY2U6ICJCYWNrc3BhY2UiLAogICAgaW5zZXJ0OiAiSW5zZXJ0IiwKICAgIHBhZ2V1cDogIlBhZ2VVcCIsCiAgICBwYWdlZG93bjogIlBhZ2VEb3duIiwKICAgIHNoaWZ0OiAiU2hpZnQiLAogIH0pOwpmdW5jdGlvbiBrZXlzKGUpIHsKICByZXR1cm4gT2JqZWN0LmtleXMoZSk7Cn0KZnVuY3Rpb24gaGFzKGUsIHQpIHsKICByZXR1cm4gdC5ldmVyeSgocikgPT4gZS5oYXNPd25Qcm9wZXJ0eShyKSk7Cn0KZnVuY3Rpb24gcGljayhlLCB0KSB7CiAgY29uc3QgciA9IHt9LAogICAgbiA9IG5ldyBTZXQoT2JqZWN0LmtleXMoZSkpOwogIGZvciAoY29uc3QgaSBvZiB0KSBuLmhhcyhpKSAmJiAocltpXSA9IGVbaV0pOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIHBpY2tXaXRoUmVzdChlLCB0LCByKSB7CiAgY29uc3QgbiA9IE9iamVjdC5jcmVhdGUobnVsbCksCiAgICBpID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKICBmb3IgKGNvbnN0IGEgaW4gZSkKICAgIHQuc29tZSgobykgPT4gKG8gaW5zdGFuY2VvZiBSZWdFeHAgPyBvLnRlc3QoYSkgOiBvID09PSBhKSkgJiYKICAgICAgIShyICE9IG51bGwgJiYgci5zb21lKChvKSA9PiBvID09PSBhKSkKICAgICAgPyAoblthXSA9IGVbYV0pCiAgICAgIDogKGlbYV0gPSBlW2FdKTsKICByZXR1cm4gW24sIGldOwp9CmZ1bmN0aW9uIG9taXQoZSwgdCkgewogIGNvbnN0IHIgPSB7IC4uLmUgfTsKICByZXR1cm4gdC5mb3JFYWNoKChuKSA9PiBkZWxldGUgcltuXSksIHI7Cn0KZnVuY3Rpb24gb25seShlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIHJldHVybiB0LmZvckVhY2goKG4pID0+IChyW25dID0gZVtuXSkpLCByOwp9CmNvbnN0IG9uUkUgPSAvXm9uW15hLXpdLywKICBpc09uID0gKGUpID0+IG9uUkUudGVzdChlKSwKICBidWJibGluZ0V2ZW50cyA9IFsKICAgICJvbkFmdGVyc2NyaXB0ZXhlY3V0ZSIsCiAgICAib25BbmltYXRpb25jYW5jZWwiLAogICAgIm9uQW5pbWF0aW9uZW5kIiwKICAgICJvbkFuaW1hdGlvbml0ZXJhdGlvbiIsCiAgICAib25BbmltYXRpb25zdGFydCIsCiAgICAib25BdXhjbGljayIsCiAgICAib25CZWZvcmVpbnB1dCIsCiAgICAib25CZWZvcmVzY3JpcHRleGVjdXRlIiwKICAgICJvbkNoYW5nZSIsCiAgICAib25DbGljayIsCiAgICAib25Db21wb3NpdGlvbmVuZCIsCiAgICAib25Db21wb3NpdGlvbnN0YXJ0IiwKICAgICJvbkNvbXBvc2l0aW9udXBkYXRlIiwKICAgICJvbkNvbnRleHRtZW51IiwKICAgICJvbkNvcHkiLAogICAgIm9uQ3V0IiwKICAgICJvbkRibGNsaWNrIiwKICAgICJvbkZvY3VzaW4iLAogICAgIm9uRm9jdXNvdXQiLAogICAgIm9uRnVsbHNjcmVlbmNoYW5nZSIsCiAgICAib25GdWxsc2NyZWVuZXJyb3IiLAogICAgIm9uR2VzdHVyZWNoYW5nZSIsCiAgICAib25HZXN0dXJlZW5kIiwKICAgICJvbkdlc3R1cmVzdGFydCIsCiAgICAib25Hb3Rwb2ludGVyY2FwdHVyZSIsCiAgICAib25JbnB1dCIsCiAgICAib25LZXlkb3duIiwKICAgICJvbktleXByZXNzIiwKICAgICJvbktleXVwIiwKICAgICJvbkxvc3Rwb2ludGVyY2FwdHVyZSIsCiAgICAib25Nb3VzZWRvd24iLAogICAgIm9uTW91c2Vtb3ZlIiwKICAgICJvbk1vdXNlb3V0IiwKICAgICJvbk1vdXNlb3ZlciIsCiAgICAib25Nb3VzZXVwIiwKICAgICJvbk1vdXNld2hlZWwiLAogICAgIm9uUGFzdGUiLAogICAgIm9uUG9pbnRlcmNhbmNlbCIsCiAgICAib25Qb2ludGVyZG93biIsCiAgICAib25Qb2ludGVyZW50ZXIiLAogICAgIm9uUG9pbnRlcmxlYXZlIiwKICAgICJvblBvaW50ZXJtb3ZlIiwKICAgICJvblBvaW50ZXJvdXQiLAogICAgIm9uUG9pbnRlcm92ZXIiLAogICAgIm9uUG9pbnRlcnVwIiwKICAgICJvblJlc2V0IiwKICAgICJvblNlbGVjdCIsCiAgICAib25TdWJtaXQiLAogICAgIm9uVG91Y2hjYW5jZWwiLAogICAgIm9uVG91Y2hlbmQiLAogICAgIm9uVG91Y2htb3ZlIiwKICAgICJvblRvdWNoc3RhcnQiLAogICAgIm9uVHJhbnNpdGlvbmNhbmNlbCIsCiAgICAib25UcmFuc2l0aW9uZW5kIiwKICAgICJvblRyYW5zaXRpb25ydW4iLAogICAgIm9uVHJhbnNpdGlvbnN0YXJ0IiwKICAgICJvbldoZWVsIiwKICBdOwpmdW5jdGlvbiBmaWx0ZXJJbnB1dEF0dHJzKGUpIHsKICBjb25zdCBbdCwgcl0gPSBwaWNrV2l0aFJlc3QoZSwgW29uUkVdKSwKICAgIG4gPSBvbWl0KHQsIGJ1YmJsaW5nRXZlbnRzKSwKICAgIFtpLCBhXSA9IHBpY2tXaXRoUmVzdChyLCBbImNsYXNzIiwgInN0eWxlIiwgImlkIiwgL15kYXRhLS9dKTsKICByZXR1cm4gT2JqZWN0LmFzc2lnbihpLCB0KSwgT2JqZWN0LmFzc2lnbihhLCBuKSwgW2ksIGFdOwp9CmZ1bmN0aW9uIHdyYXBJbkFycmF5KGUpIHsKICByZXR1cm4gZSA9PSBudWxsID8gW10gOiBBcnJheS5pc0FycmF5KGUpID8gZSA6IFtlXTsKfQpmdW5jdGlvbiBkZWJvdW5jZShlLCB0KSB7CiAgbGV0IHIgPSAwOwogIGNvbnN0IG4gPSBmdW5jdGlvbiAoKSB7CiAgICBmb3IgKHZhciBpID0gYXJndW1lbnRzLmxlbmd0aCwgYSA9IG5ldyBBcnJheShpKSwgbyA9IDA7IG8gPCBpOyBvKyspCiAgICAgIGFbb10gPSBhcmd1bWVudHNbb107CiAgICBjbGVhclRpbWVvdXQociksIChyID0gc2V0VGltZW91dCgoKSA9PiBlKC4uLmEpLCB1bnJlZih0KSkpOwogIH07CiAgcmV0dXJuICgKICAgIChuLmNsZWFyID0gKCkgPT4gewogICAgICBjbGVhclRpbWVvdXQocik7CiAgICB9KSwKICAgIChuLmltbWVkaWF0ZSA9IGUpLAogICAgbgogICk7Cn0KZnVuY3Rpb24gY2xhbXAoZSkgewogIGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMV0gOiAwLAogICAgciA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzJdIDogMTsKICByZXR1cm4gTWF0aC5tYXgodCwgTWF0aC5taW4ociwgZSkpOwp9CmZ1bmN0aW9uIHBhZEVuZChlLCB0KSB7CiAgbGV0IHIgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1syXSA6ICIwIjsKICByZXR1cm4gZSArIHIucmVwZWF0KE1hdGgubWF4KDAsIHQgLSBlLmxlbmd0aCkpOwp9CmZ1bmN0aW9uIHBhZFN0YXJ0KGUsIHQpIHsKICByZXR1cm4gKAogICAgKGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdm9pZCAwCiAgICAgID8gYXJndW1lbnRzWzJdCiAgICAgIDogIjAiCiAgICApLnJlcGVhdChNYXRoLm1heCgwLCB0IC0gZS5sZW5ndGgpKSArIGUKICApOwp9CmZ1bmN0aW9uIGNodW5rKGUpIHsKICBsZXQgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzFdIDogMTsKICBjb25zdCByID0gW107CiAgbGV0IG4gPSAwOwogIGZvciAoOyBuIDwgZS5sZW5ndGg7KSByLnB1c2goZS5zdWJzdHIobiwgdCkpLCAobiArPSB0KTsKICByZXR1cm4gcjsKfQpmdW5jdGlvbiBodW1hblJlYWRhYmxlRmlsZVNpemUoZSkgewogIGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMV0gOiAxZTM7CiAgaWYgKGUgPCB0KSByZXR1cm4gYCR7ZX0gQmA7CiAgY29uc3QgciA9IHQgPT09IDEwMjQgPyBbIktpIiwgIk1pIiwgIkdpIl0gOiBbImsiLCAiTSIsICJHIl07CiAgbGV0IG4gPSAtMTsKICBmb3IgKDsgTWF0aC5hYnMoZSkgPj0gdCAmJiBuIDwgci5sZW5ndGggLSAxOykgKGUgLz0gdCksICsrbjsKICByZXR1cm4gYCR7ZS50b0ZpeGVkKDEpfSAke3Jbbl19QmA7Cn0KZnVuY3Rpb24gbWVyZ2VEZWVwKCkgewogIGxldCBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMF0gOiB7fSwKICAgIHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1sxXSA6IHt9LAogICAgciA9IGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdm9pZCAwOwogIGNvbnN0IG4gPSB7fTsKICBmb3IgKGNvbnN0IGkgaW4gZSkgbltpXSA9IGVbaV07CiAgZm9yIChjb25zdCBpIGluIHQpIHsKICAgIGNvbnN0IGEgPSBlW2ldLAogICAgICBvID0gdFtpXTsKICAgIGlmIChpc1BsYWluT2JqZWN0KGEpICYmIGlzUGxhaW5PYmplY3QobykpIHsKICAgICAgbltpXSA9IG1lcmdlRGVlcChhLCBvLCByKTsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAociAmJiBBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkobykpIHsKICAgICAgbltpXSA9IHIoYSwgbyk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgbltpXSA9IG87CiAgfQogIHJldHVybiBuOwp9CmZ1bmN0aW9uIGZsYXR0ZW5GcmFnbWVudHMoZSkgewogIHJldHVybiBlCiAgICAubWFwKCh0KSA9PiAodC50eXBlID09PSBGcmFnbWVudCA/IGZsYXR0ZW5GcmFnbWVudHModC5jaGlsZHJlbikgOiB0KSkKICAgIC5mbGF0KCk7Cn0KZnVuY3Rpb24gdG9LZWJhYkNhc2UoKSB7CiAgbGV0IGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1swXSA6ICIiOwogIGlmICh0b0tlYmFiQ2FzZS5jYWNoZS5oYXMoZSkpIHJldHVybiB0b0tlYmFiQ2FzZS5jYWNoZS5nZXQoZSk7CiAgY29uc3QgdCA9IGUKICAgIC5yZXBsYWNlKC9bXmEtel0vZ2ksICItIikKICAgIC5yZXBsYWNlKC9cQihbQS1aXSkvZywgIi0kMSIpCiAgICAudG9Mb3dlckNhc2UoKTsKICByZXR1cm4gdG9LZWJhYkNhc2UuY2FjaGUuc2V0KGUsIHQpLCB0Owp9CnRvS2ViYWJDYXNlLmNhY2hlID0gbmV3IE1hcCgpOwpmdW5jdGlvbiBmaW5kQ2hpbGRyZW5XaXRoUHJvdmlkZShlLCB0KSB7CiAgaWYgKCF0IHx8IHR5cGVvZiB0ICE9ICJvYmplY3QiKSByZXR1cm4gW107CiAgaWYgKEFycmF5LmlzQXJyYXkodCkpCiAgICByZXR1cm4gdC5tYXAoKHIpID0+IGZpbmRDaGlsZHJlbldpdGhQcm92aWRlKGUsIHIpKS5mbGF0KDEpOwogIGlmICh0LnN1c3BlbnNlKSByZXR1cm4gZmluZENoaWxkcmVuV2l0aFByb3ZpZGUoZSwgdC5zc0NvbnRlbnQpOwogIGlmIChBcnJheS5pc0FycmF5KHQuY2hpbGRyZW4pKQogICAgcmV0dXJuIHQuY2hpbGRyZW4ubWFwKChyKSA9PiBmaW5kQ2hpbGRyZW5XaXRoUHJvdmlkZShlLCByKSkuZmxhdCgxKTsKICBpZiAodC5jb21wb25lbnQpIHsKICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQuY29tcG9uZW50LnByb3ZpZGVzKS5pbmNsdWRlcyhlKSkKICAgICAgcmV0dXJuIFt0LmNvbXBvbmVudF07CiAgICBpZiAodC5jb21wb25lbnQuc3ViVHJlZSkKICAgICAgcmV0dXJuIGZpbmRDaGlsZHJlbldpdGhQcm92aWRlKGUsIHQuY29tcG9uZW50LnN1YlRyZWUpLmZsYXQoMSk7CiAgfQogIHJldHVybiBbXTsKfQp2YXIgX2FyciA9IG5ldyBXZWFrTWFwKCksCiAgX3BvaW50ZXIgPSBuZXcgV2Vha01hcCgpOwpjbGFzcyBDaXJjdWxhckJ1ZmZlciB7CiAgY29uc3RydWN0b3IodCkgewogICAgX2NsYXNzUHJpdmF0ZUZpZWxkSW5pdFNwZWModGhpcywgX2FyciwgW10pLAogICAgICBfY2xhc3NQcml2YXRlRmllbGRJbml0U3BlYyh0aGlzLCBfcG9pbnRlciwgMCksCiAgICAgICh0aGlzLnNpemUgPSB0KTsKICB9CiAgcHVzaCh0KSB7CiAgICAoX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9hcnIsIHRoaXMpW19jbGFzc1ByaXZhdGVGaWVsZEdldChfcG9pbnRlciwgdGhpcyldID0KICAgICAgdCksCiAgICAgIF9jbGFzc1ByaXZhdGVGaWVsZFNldCgKICAgICAgICBfcG9pbnRlciwKICAgICAgICB0aGlzLAogICAgICAgIChfY2xhc3NQcml2YXRlRmllbGRHZXQoX3BvaW50ZXIsIHRoaXMpICsgMSkgJSB0aGlzLnNpemUKICAgICAgKTsKICB9CiAgdmFsdWVzKCkgewogICAgcmV0dXJuIF9jbGFzc1ByaXZhdGVGaWVsZEdldChfYXJyLCB0aGlzKQogICAgICAuc2xpY2UoX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9wb2ludGVyLCB0aGlzKSkKICAgICAgLmNvbmNhdCgKICAgICAgICBfY2xhc3NQcml2YXRlRmllbGRHZXQoX2FyciwgdGhpcykuc2xpY2UoCiAgICAgICAgICAwLAogICAgICAgICAgX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9wb2ludGVyLCB0aGlzKQogICAgICAgICkKICAgICAgKTsKICB9Cn0KZnVuY3Rpb24gZGVzdHJ1Y3RDb21wdXRlZChlKSB7CiAgY29uc3QgdCA9IHJlYWN0aXZlKHt9KSwKICAgIHIgPSBjb21wdXRlZChlKTsKICByZXR1cm4gKAogICAgd2F0Y2hFZmZlY3QoCiAgICAgICgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IG4gaW4gci52YWx1ZSkgdFtuXSA9IHIudmFsdWVbbl07CiAgICAgIH0sCiAgICAgIHsgZmx1c2g6ICJzeW5jIiB9CiAgICApLAogICAgdG9SZWZzKHQpCiAgKTsKfQpmdW5jdGlvbiBpbmNsdWRlcyhlLCB0KSB7CiAgcmV0dXJuIGUuaW5jbHVkZXModCk7Cn0KZnVuY3Rpb24gZXZlbnROYW1lKGUpIHsKICByZXR1cm4gZVsyXS50b0xvd2VyQ2FzZSgpICsgZS5zbGljZSgzKTsKfQpjb25zdCBFdmVudFByb3AgPSAoKSA9PiBbRnVuY3Rpb24sIEFycmF5XTsKZnVuY3Rpb24gaGFzRXZlbnQoZSwgdCkgewogIHJldHVybiAoCiAgICAodCA9ICJvbiIgKyBjYXBpdGFsaXplJDEodCkpLAogICAgISEoCiAgICAgIGVbdF0gfHwKICAgICAgZVtgJHt0fU9uY2VgXSB8fAogICAgICBlW2Ake3R9Q2FwdHVyZWBdIHx8CiAgICAgIGVbYCR7dH1PbmNlQ2FwdHVyZWBdIHx8CiAgICAgIGVbYCR7dH1DYXB0dXJlT25jZWBdCiAgICApCiAgKTsKfQpmdW5jdGlvbiBjYWxsRXZlbnQoZSkgewogIGZvciAoCiAgICB2YXIgdCA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBuZXcgQXJyYXkodCA+IDEgPyB0IC0gMSA6IDApLCBuID0gMTsKICAgIG4gPCB0OwogICAgbisrCiAgKQogICAgcltuIC0gMV0gPSBhcmd1bWVudHNbbl07CiAgaWYgKEFycmF5LmlzQXJyYXkoZSkpIGZvciAoY29uc3QgaSBvZiBlKSBpKC4uLnIpOwogIGVsc2UgdHlwZW9mIGUgPT0gImZ1bmN0aW9uIiAmJiBlKC4uLnIpOwp9CmZ1bmN0aW9uIGZvY3VzYWJsZUNoaWxkcmVuKGUpIHsKICBsZXQgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzFdIDogITA7CiAgY29uc3QgciA9IFsKICAgICJidXR0b24iLAogICAgIltocmVmXSIsCiAgICAnaW5wdXQ6bm90KFt0eXBlPSJoaWRkZW4iXSknLAogICAgInNlbGVjdCIsCiAgICAidGV4dGFyZWEiLAogICAgIlt0YWJpbmRleF0iLAogIF0KICAgIC5tYXAoKG4pID0+IGAke259JHt0ID8gJzpub3QoW3RhYmluZGV4PSItMSJdKScgOiAiIn06bm90KFtkaXNhYmxlZF0pYCkKICAgIC5qb2luKCIsICIpOwogIHJldHVybiBbLi4uZS5xdWVyeVNlbGVjdG9yQWxsKHIpXTsKfQpmdW5jdGlvbiBnZXROZXh0RWxlbWVudChlLCB0LCByKSB7CiAgbGV0IG4sCiAgICBpID0gZS5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpOwogIGNvbnN0IGEgPSB0ID09PSAibmV4dCIgPyAxIDogLTE7CiAgZG8gKGkgKz0gYSksIChuID0gZVtpXSk7CiAgd2hpbGUgKAogICAgKCFuIHx8IG4ub2Zmc2V0UGFyZW50ID09IG51bGwgfHwgISgociA9PSBudWxsID8gdm9pZCAwIDogcihuKSkgPz8gITApKSAmJgogICAgaSA8IGUubGVuZ3RoICYmCiAgICBpID49IDAKICApOwogIHJldHVybiBuOwp9CmZ1bmN0aW9uIGZvY3VzQ2hpbGQoZSwgdCkgewogIHZhciBuLCBpLCBhLCBvOwogIGNvbnN0IHIgPSBmb2N1c2FibGVDaGlsZHJlbihlKTsKICBpZiAoIXQpCiAgICAoZSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB8fCAhZS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkgJiYKICAgICAgKChuID0gclswXSkgPT0gbnVsbCB8fCBuLmZvY3VzKCkpOwogIGVsc2UgaWYgKHQgPT09ICJmaXJzdCIpIChpID0gclswXSkgPT0gbnVsbCB8fCBpLmZvY3VzKCk7CiAgZWxzZSBpZiAodCA9PT0gImxhc3QiKSAoYSA9IHIuYXQoLTEpKSA9PSBudWxsIHx8IGEuZm9jdXMoKTsKICBlbHNlIGlmICh0eXBlb2YgdCA9PSAibnVtYmVyIikgKG8gPSByW3RdKSA9PSBudWxsIHx8IG8uZm9jdXMoKTsKICBlbHNlIHsKICAgIGNvbnN0IGwgPSBnZXROZXh0RWxlbWVudChyLCB0KTsKICAgIGwgPyBsLmZvY3VzKCkgOiBmb2N1c0NoaWxkKGUsIHQgPT09ICJuZXh0IiA/ICJmaXJzdCIgOiAibGFzdCIpOwogIH0KfQpmdW5jdGlvbiBpc0VtcHR5KGUpIHsKICByZXR1cm4gZSA9PSBudWxsIHx8ICh0eXBlb2YgZSA9PSAic3RyaW5nIiAmJiBlLnRyaW0oKSA9PT0gIiIpOwp9CmZ1bmN0aW9uIG1hdGNoZXNTZWxlY3RvcihlLCB0KSB7CiAgaWYgKAogICAgISgKICAgICAgSU5fQlJPV1NFUiAmJgogICAgICB0eXBlb2YgQ1NTIDwgInUiICYmCiAgICAgIHR5cGVvZiBDU1Muc3VwcG9ydHMgPCAidSIgJiYKICAgICAgQ1NTLnN1cHBvcnRzKGBzZWxlY3Rvcigke3R9KWApCiAgICApCiAgKQogICAgcmV0dXJuIG51bGw7CiAgdHJ5IHsKICAgIHJldHVybiAhIWUgJiYgZS5tYXRjaGVzKHQpOwogIH0gY2F0Y2ggewogICAgcmV0dXJuIG51bGw7CiAgfQp9CmZ1bmN0aW9uIGVuc3VyZVZhbGlkVk5vZGUoZSkgewogIHJldHVybiBlLnNvbWUoKHQpID0+CiAgICBpc1ZOb2RlJDEodCkKICAgICAgPyB0LnR5cGUgPT09IENvbW1lbnQKICAgICAgICA/ICExCiAgICAgICAgOiB0LnR5cGUgIT09IEZyYWdtZW50IHx8IGVuc3VyZVZhbGlkVk5vZGUodC5jaGlsZHJlbikKICAgICAgOiAhMAogICkKICAgID8gZQogICAgOiBudWxsOwp9CmZ1bmN0aW9uIGRlZmVyKGUsIHQpIHsKICBpZiAoIUlOX0JST1dTRVIgfHwgZSA9PT0gMCkgcmV0dXJuIHQoKSwgKCkgPT4geyB9OwogIGNvbnN0IHIgPSB3aW5kb3cuc2V0VGltZW91dCh0LCBlKTsKICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dChyKTsKfQpmdW5jdGlvbiBpc0NsaWNrSW5zaWRlRWxlbWVudChlLCB0KSB7CiAgY29uc3QgciA9IGUuY2xpZW50WCwKICAgIG4gPSBlLmNsaWVudFksCiAgICBpID0gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwKICAgIGEgPSBpLmxlZnQsCiAgICBvID0gaS50b3AsCiAgICBsID0gaS5yaWdodCwKICAgIGMgPSBpLmJvdHRvbTsKICByZXR1cm4gciA+PSBhICYmIHIgPD0gbCAmJiBuID49IG8gJiYgbiA8PSBjOwp9CmZ1bmN0aW9uIHRlbXBsYXRlUmVmKCkgewogIGNvbnN0IGUgPSBzaGFsbG93UmVmKCksCiAgICB0ID0gKHIpID0+IHsKICAgICAgZS52YWx1ZSA9IHI7CiAgICB9OwogIHJldHVybiAoCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInZhbHVlIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiBlLnZhbHVlLAogICAgICBzZXQ6IChyKSA9PiAoZS52YWx1ZSA9IHIpLAogICAgfSksCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgImVsIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiByZWZFbGVtZW50KGUudmFsdWUpLAogICAgfSksCiAgICB0CiAgKTsKfQpmdW5jdGlvbiBjaGVja1ByaW50YWJsZShlKSB7CiAgY29uc3QgdCA9IGUua2V5Lmxlbmd0aCA9PT0gMSwKICAgIHIgPSAhZS5jdHJsS2V5ICYmICFlLm1ldGFLZXkgJiYgIWUuYWx0S2V5OwogIHJldHVybiB0ICYmIHI7Cn0KY29uc3QgbWFpblRSQyA9IDIuNCwKICBSY28gPSAwLjIxMjY3MjksCiAgR2NvID0gMC43MTUxNTIyLAogIEJjbyA9IDAuMDcyMTc1LAogIG5vcm1CRyA9IDAuNTUsCiAgbm9ybVRYVCA9IDAuNTgsCiAgcmV2VFhUID0gMC41NywKICByZXZCRyA9IDAuNjIsCiAgYmxrVGhycyA9IDAuMDMsCiAgYmxrQ2xtcCA9IDEuNDUsCiAgZGVsdGFZbWluID0gNWUtNCwKICBzY2FsZUJvVyA9IDEuMjUsCiAgc2NhbGVXb0IgPSAxLjI1LAogIGxvQ29uVGhyZXNoID0gMC4wNzgsCiAgbG9Db25GYWN0b3IgPSAxMi44MjA1MTI4MjA1MTI4MiwKICBsb0Nvbk9mZnNldCA9IDAuMDYsCiAgbG9DbGlwID0gMC4wMDE7CmZ1bmN0aW9uIEFQQ0Fjb250cmFzdChlLCB0KSB7CiAgY29uc3QgciA9IChlLnIgLyAyNTUpICoqIG1haW5UUkMsCiAgICBuID0gKGUuZyAvIDI1NSkgKiogbWFpblRSQywKICAgIGkgPSAoZS5iIC8gMjU1KSAqKiBtYWluVFJDLAogICAgYSA9ICh0LnIgLyAyNTUpICoqIG1haW5UUkMsCiAgICBvID0gKHQuZyAvIDI1NSkgKiogbWFpblRSQywKICAgIGwgPSAodC5iIC8gMjU1KSAqKiBtYWluVFJDOwogIGxldCBjID0gciAqIFJjbyArIG4gKiBHY28gKyBpICogQmNvLAogICAgdSA9IGEgKiBSY28gKyBvICogR2NvICsgbCAqIEJjbzsKICBpZiAoCiAgICAoYyA8PSBibGtUaHJzICYmIChjICs9IChibGtUaHJzIC0gYykgKiogYmxrQ2xtcCksCiAgICAgIHUgPD0gYmxrVGhycyAmJiAodSArPSAoYmxrVGhycyAtIHUpICoqIGJsa0NsbXApLAogICAgICBNYXRoLmFicyh1IC0gYykgPCBkZWx0YVltaW4pCiAgKQogICAgcmV0dXJuIDA7CiAgbGV0IGQ7CiAgaWYgKHUgPiBjKSB7CiAgICBjb25zdCBFID0gKHUgKiogbm9ybUJHIC0gYyAqKiBub3JtVFhUKSAqIHNjYWxlQm9XOwogICAgZCA9CiAgICAgIEUgPCBsb0NsaXAKICAgICAgICA/IDAKICAgICAgICA6IEUgPCBsb0NvblRocmVzaAogICAgICAgICAgPyBFIC0gRSAqIGxvQ29uRmFjdG9yICogbG9Db25PZmZzZXQKICAgICAgICAgIDogRSAtIGxvQ29uT2Zmc2V0OwogIH0gZWxzZSB7CiAgICBjb25zdCBFID0gKHUgKiogcmV2QkcgLSBjICoqIHJldlRYVCkgKiBzY2FsZVdvQjsKICAgIGQgPQogICAgICBFID4gLWxvQ2xpcAogICAgICAgID8gMAogICAgICAgIDogRSA+IC1sb0NvblRocmVzaAogICAgICAgICAgPyBFIC0gRSAqIGxvQ29uRmFjdG9yICogbG9Db25PZmZzZXQKICAgICAgICAgIDogRSArIGxvQ29uT2Zmc2V0OwogIH0KICByZXR1cm4gZCAqIDEwMDsKfQpmdW5jdGlvbiBjb25zb2xlV2FybihlKSB7IH0KZnVuY3Rpb24gY29uc29sZUVycm9yKGUpIHsgfQpmdW5jdGlvbiBkZXByZWNhdGUoZSwgdCkgewogIHQgPSBBcnJheS5pc0FycmF5KHQpCiAgICA/IHQKICAgICAgLnNsaWNlKDAsIC0xKQogICAgICAubWFwKChyKSA9PiBgJyR7cn0nYCkKICAgICAgLmpvaW4oIiwgIikgKyBgIG9yICcke3QuYXQoLTEpfSdgCiAgICA6IGAnJHt0fSdgOwp9CmNvbnN0IGRlbHRhID0gMC4yMDY4OTY1NTE3MjQxMzc5MywKICBjaWVsYWJGb3J3YXJkVHJhbnNmb3JtID0gKGUpID0+CiAgICBlID4gZGVsdGEgKiogMyA/IE1hdGguY2JydChlKSA6IGUgLyAoMyAqIGRlbHRhICoqIDIpICsgNCAvIDI5LAogIGNpZWxhYlJldmVyc2VUcmFuc2Zvcm0gPSAoZSkgPT4KICAgIGUgPiBkZWx0YSA/IGUgKiogMyA6IDMgKiBkZWx0YSAqKiAyICogKGUgLSA0IC8gMjkpOwpmdW5jdGlvbiBmcm9tWFlaJDEoZSkgewogIGNvbnN0IHQgPSBjaWVsYWJGb3J3YXJkVHJhbnNmb3JtLAogICAgciA9IHQoZVsxXSk7CiAgcmV0dXJuIFsKICAgIDExNiAqIHIgLSAxNiwKICAgIDUwMCAqICh0KGVbMF0gLyAwLjk1MDQ3KSAtIHIpLAogICAgMjAwICogKHIgLSB0KGVbMl0gLyAxLjA4ODgzKSksCiAgXTsKfQpmdW5jdGlvbiB0b1hZWiQxKGUpIHsKICBjb25zdCB0ID0gY2llbGFiUmV2ZXJzZVRyYW5zZm9ybSwKICAgIHIgPSAoZVswXSArIDE2KSAvIDExNjsKICByZXR1cm4gW3QociArIGVbMV0gLyA1MDApICogMC45NTA0NywgdChyKSwgdChyIC0gZVsyXSAvIDIwMCkgKiAxLjA4ODgzXTsKfQpjb25zdCBzcmdiRm9yd2FyZE1hdHJpeCA9IFsKICBbMy4yNDA2LCAtMS41MzcyLCAtMC40OTg2XSwKICBbLTAuOTY4OSwgMS44NzU4LCAwLjA0MTVdLAogIFswLjA1NTcsIC0wLjIwNCwgMS4wNTddLApdLAogIHNyZ2JGb3J3YXJkVHJhbnNmb3JtID0gKGUpID0+CiAgICBlIDw9IDAuMDAzMTMwOCA/IGUgKiAxMi45MiA6IDEuMDU1ICogZSAqKiAoMSAvIDIuNCkgLSAwLjA1NSwKICBzcmdiUmV2ZXJzZU1hdHJpeCA9IFsKICAgIFswLjQxMjQsIDAuMzU3NiwgMC4xODA1XSwKICAgIFswLjIxMjYsIDAuNzE1MiwgMC4wNzIyXSwKICAgIFswLjAxOTMsIDAuMTE5MiwgMC45NTA1XSwKICBdLAogIHNyZ2JSZXZlcnNlVHJhbnNmb3JtID0gKGUpID0+CiAgICBlIDw9IDAuMDQwNDUgPyBlIC8gMTIuOTIgOiAoKGUgKyAwLjA1NSkgLyAxLjA1NSkgKiogMi40OwpmdW5jdGlvbiBmcm9tWFlaKGUpIHsKICBjb25zdCB0ID0gQXJyYXkoMyksCiAgICByID0gc3JnYkZvcndhcmRUcmFuc2Zvcm0sCiAgICBuID0gc3JnYkZvcndhcmRNYXRyaXg7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCAzOyArK2kpCiAgICB0W2ldID0gTWF0aC5yb3VuZCgKICAgICAgY2xhbXAocihuW2ldWzBdICogZVswXSArIG5baV1bMV0gKiBlWzFdICsgbltpXVsyXSAqIGVbMl0pKSAqIDI1NQogICAgKTsKICByZXR1cm4geyByOiB0WzBdLCBnOiB0WzFdLCBiOiB0WzJdIH07Cn0KZnVuY3Rpb24gdG9YWVooZSkgewogIGxldCB7IHI6IHQsIGc6IHIsIGI6IG4gfSA9IGU7CiAgY29uc3QgaSA9IFswLCAwLCAwXSwKICAgIGEgPSBzcmdiUmV2ZXJzZVRyYW5zZm9ybSwKICAgIG8gPSBzcmdiUmV2ZXJzZU1hdHJpeDsKICAodCA9IGEodCAvIDI1NSkpLCAociA9IGEociAvIDI1NSkpLCAobiA9IGEobiAvIDI1NSkpOwogIGZvciAobGV0IGwgPSAwOyBsIDwgMzsgKytsKSBpW2xdID0gb1tsXVswXSAqIHQgKyBvW2xdWzFdICogciArIG9bbF1bMl0gKiBuOwogIHJldHVybiBpOwp9CmZ1bmN0aW9uIGlzQ3NzQ29sb3IoZSkgewogIHJldHVybiAhIWUgJiYgL14oI3x2YXJcKC0tfChyZ2J8aHNsKWE/XCgpLy50ZXN0KGUpOwp9CmZ1bmN0aW9uIGlzUGFyc2FibGVDb2xvcihlKSB7CiAgcmV0dXJuIGlzQ3NzQ29sb3IoZSkgJiYgIS9eKChyZ2J8aHNsKWE/XCgpP3ZhclwoLS0vLnRlc3QoZSk7Cn0KY29uc3QgY3NzQ29sb3JSZSA9IC9eKD88Zm4+KD86cmdifGhzbClhPylcKCg/PHZhbHVlcz4uKylcKS8sCiAgbWFwcGVycyA9IHsKICAgIHJnYjogKGUsIHQsIHIsIG4pID0+ICh7IHI6IGUsIGc6IHQsIGI6IHIsIGE6IG4gfSksCiAgICByZ2JhOiAoZSwgdCwgciwgbikgPT4gKHsgcjogZSwgZzogdCwgYjogciwgYTogbiB9KSwKICAgIGhzbDogKGUsIHQsIHIsIG4pID0+IEhTTHRvUkdCKHsgaDogZSwgczogdCwgbDogciwgYTogbiB9KSwKICAgIGhzbGE6IChlLCB0LCByLCBuKSA9PiBIU0x0b1JHQih7IGg6IGUsIHM6IHQsIGw6IHIsIGE6IG4gfSksCiAgICBoc3Y6IChlLCB0LCByLCBuKSA9PiBIU1Z0b1JHQih7IGg6IGUsIHM6IHQsIHY6IHIsIGE6IG4gfSksCiAgICBoc3ZhOiAoZSwgdCwgciwgbikgPT4gSFNWdG9SR0IoeyBoOiBlLCBzOiB0LCB2OiByLCBhOiBuIH0pLAogIH07CmZ1bmN0aW9uIHBhcnNlQ29sb3IoZSkgewogIGlmICh0eXBlb2YgZSA9PSAibnVtYmVyIikKICAgIHJldHVybiB7IHI6IChlICYgMTY3MTE2ODApID4+IDE2LCBnOiAoZSAmIDY1MjgwKSA+PiA4LCBiOiBlICYgMjU1IH07CiAgaWYgKHR5cGVvZiBlID09ICJzdHJpbmciICYmIGNzc0NvbG9yUmUudGVzdChlKSkgewogICAgY29uc3QgeyBncm91cHM6IHQgfSA9IGUubWF0Y2goY3NzQ29sb3JSZSksCiAgICAgIHsgZm46IHIsIHZhbHVlczogbiB9ID0gdCwKICAgICAgaSA9IG4KICAgICAgICAuc3BsaXQoLyxccyovKQogICAgICAgIC5tYXAoKGEpID0+CiAgICAgICAgICBhLmVuZHNXaXRoKCIlIikgJiYgWyJoc2wiLCAiaHNsYSIsICJoc3YiLCAiaHN2YSJdLmluY2x1ZGVzKHIpCiAgICAgICAgICAgID8gcGFyc2VGbG9hdChhKSAvIDEwMAogICAgICAgICAgICA6IHBhcnNlRmxvYXQoYSkKICAgICAgICApOwogICAgcmV0dXJuIG1hcHBlcnNbcl0oLi4uaSk7CiAgfSBlbHNlIGlmICh0eXBlb2YgZSA9PSAic3RyaW5nIikgewogICAgbGV0IHQgPSBlLnN0YXJ0c1dpdGgoIiMiKSA/IGUuc2xpY2UoMSkgOiBlOwogICAgcmV0dXJuICgKICAgICAgWzMsIDRdLmluY2x1ZGVzKHQubGVuZ3RoKQogICAgICAgID8gKHQgPSB0CiAgICAgICAgICAuc3BsaXQoIiIpCiAgICAgICAgICAubWFwKChyKSA9PiByICsgcikKICAgICAgICAgIC5qb2luKCIiKSkKICAgICAgICA6IFs2LCA4XS5pbmNsdWRlcyh0Lmxlbmd0aCksCiAgICAgIEhleFRvUkdCKHQpCiAgICApOwogIH0gZWxzZSBpZiAodHlwZW9mIGUgPT0gIm9iamVjdCIpIHsKICAgIGlmIChoYXMoZSwgWyJyIiwgImciLCAiYiJdKSkgcmV0dXJuIGU7CiAgICBpZiAoaGFzKGUsIFsiaCIsICJzIiwgImwiXSkpIHJldHVybiBIU1Z0b1JHQihIU0x0b0hTVihlKSk7CiAgICBpZiAoaGFzKGUsIFsiaCIsICJzIiwgInYiXSkpIHJldHVybiBIU1Z0b1JHQihlKTsKICB9CiAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBjb2xvcjogJHtlID09IG51bGwgPyBlIDogU3RyaW5nKGUpIHx8IGUuY29uc3RydWN0b3IubmFtZQogICAgfQpFeHBlY3RlZCAjaGV4LCAjaGV4YSwgcmdiKCksIHJnYmEoKSwgaHNsKCksIGhzbGEoKSwgb2JqZWN0IG9yIG51bWJlcmApOwp9CmZ1bmN0aW9uIEhTVnRvUkdCKGUpIHsKICBjb25zdCB7IGg6IHQsIHM6IHIsIHY6IG4sIGE6IGkgfSA9IGUsCiAgICBhID0gKGwpID0+IHsKICAgICAgY29uc3QgYyA9IChsICsgdCAvIDYwKSAlIDY7CiAgICAgIHJldHVybiBuIC0gbiAqIHIgKiBNYXRoLm1heChNYXRoLm1pbihjLCA0IC0gYywgMSksIDApOwogICAgfSwKICAgIG8gPSBbYSg1KSwgYSgzKSwgYSgxKV0ubWFwKChsKSA9PiBNYXRoLnJvdW5kKGwgKiAyNTUpKTsKICByZXR1cm4geyByOiBvWzBdLCBnOiBvWzFdLCBiOiBvWzJdLCBhOiBpIH07Cn0KZnVuY3Rpb24gSFNMdG9SR0IoZSkgewogIHJldHVybiBIU1Z0b1JHQihIU0x0b0hTVihlKSk7Cn0KZnVuY3Rpb24gSFNMdG9IU1YoZSkgewogIGNvbnN0IHsgaDogdCwgczogciwgbDogbiwgYTogaSB9ID0gZSwKICAgIGEgPSBuICsgciAqIE1hdGgubWluKG4sIDEgLSBuKSwKICAgIG8gPSBhID09PSAwID8gMCA6IDIgLSAoMiAqIG4pIC8gYTsKICByZXR1cm4geyBoOiB0LCBzOiBvLCB2OiBhLCBhOiBpIH07Cn0KZnVuY3Rpb24gdG9IZXgoZSkgewogIGNvbnN0IHQgPSBNYXRoLnJvdW5kKGUpLnRvU3RyaW5nKDE2KTsKICByZXR1cm4gKCIwMCIuc3Vic3RyKDAsIDIgLSB0Lmxlbmd0aCkgKyB0KS50b1VwcGVyQ2FzZSgpOwp9CmZ1bmN0aW9uIFJHQnRvSGV4KGUpIHsKICBsZXQgeyByOiB0LCBnOiByLCBiOiBuLCBhOiBpIH0gPSBlOwogIHJldHVybiBgIyR7WwogICAgdG9IZXgodCksCiAgICB0b0hleChyKSwKICAgIHRvSGV4KG4pLAogICAgaSAhPT0gdm9pZCAwID8gdG9IZXgoTWF0aC5yb3VuZChpICogMjU1KSkgOiAiIiwKICBdLmpvaW4oIiIpfWA7Cn0KZnVuY3Rpb24gSGV4VG9SR0IoZSkgewogIGUgPSBwYXJzZUhleChlKTsKICBsZXQgW3QsIHIsIG4sIGldID0gY2h1bmsoZSwgMikubWFwKChhKSA9PiBwYXJzZUludChhLCAxNikpOwogIHJldHVybiAoaSA9IGkgPT09IHZvaWQgMCA/IGkgOiBpIC8gMjU1KSwgeyByOiB0LCBnOiByLCBiOiBuLCBhOiBpIH07Cn0KZnVuY3Rpb24gcGFyc2VIZXgoZSkgewogIHJldHVybiAoCiAgICBlLnN0YXJ0c1dpdGgoIiMiKSAmJiAoZSA9IGUuc2xpY2UoMSkpLAogICAgKGUgPSBlLnJlcGxhY2UoLyhbXjAtOWEtZl0pL2dpLCAiRiIpKSwKICAgIChlLmxlbmd0aCA9PT0gMyB8fCBlLmxlbmd0aCA9PT0gNCkgJiYKICAgIChlID0gZQogICAgICAuc3BsaXQoIiIpCiAgICAgIC5tYXAoKHQpID0+IHQgKyB0KQogICAgICAuam9pbigiIikpLAogICAgZS5sZW5ndGggIT09IDYgJiYgKGUgPSBwYWRFbmQocGFkRW5kKGUsIDYpLCA4LCAiRiIpKSwKICAgIGUKICApOwp9CmZ1bmN0aW9uIGxpZ2h0ZW4oZSwgdCkgewogIGNvbnN0IHIgPSBmcm9tWFlaJDEodG9YWVooZSkpOwogIHJldHVybiAoclswXSA9IHJbMF0gKyB0ICogMTApLCBmcm9tWFlaKHRvWFlaJDEocikpOwp9CmZ1bmN0aW9uIGRhcmtlbihlLCB0KSB7CiAgY29uc3QgciA9IGZyb21YWVokMSh0b1hZWihlKSk7CiAgcmV0dXJuIChyWzBdID0gclswXSAtIHQgKiAxMCksIGZyb21YWVoodG9YWVokMShyKSk7Cn0KZnVuY3Rpb24gZ2V0THVtYShlKSB7CiAgY29uc3QgdCA9IHBhcnNlQ29sb3IoZSk7CiAgcmV0dXJuIHRvWFlaKHQpWzFdOwp9CmZ1bmN0aW9uIGdldEZvcmVncm91bmQoZSkgewogIGNvbnN0IHQgPSBNYXRoLmFicyhBUENBY29udHJhc3QocGFyc2VDb2xvcigwKSwgcGFyc2VDb2xvcihlKSkpOwogIHJldHVybiBNYXRoLmFicyhBUENBY29udHJhc3QocGFyc2VDb2xvcigxNjc3NzIxNSksIHBhcnNlQ29sb3IoZSkpKSA+CiAgICBNYXRoLm1pbih0LCA1MCkKICAgID8gIiNmZmYiCiAgICA6ICIjMDAwIjsKfQpmdW5jdGlvbiBwcm9wc0ZhY3RvcnkoZSwgdCkgewogIHJldHVybiAocikgPT4KICAgIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgobiwgaSkgPT4gewogICAgICBjb25zdCBvID0KICAgICAgICB0eXBlb2YgZVtpXSA9PSAib2JqZWN0IiAmJiBlW2ldICE9IG51bGwgJiYgIUFycmF5LmlzQXJyYXkoZVtpXSkKICAgICAgICAgID8gZVtpXQogICAgICAgICAgOiB7IHR5cGU6IGVbaV0gfTsKICAgICAgcmV0dXJuICgKICAgICAgICByICYmIGkgaW4gciA/IChuW2ldID0geyAuLi5vLCBkZWZhdWx0OiByW2ldIH0pIDogKG5baV0gPSBvKSwKICAgICAgICB0ICYmICFuW2ldLnNvdXJjZSAmJiAobltpXS5zb3VyY2UgPSB0KSwKICAgICAgICBuCiAgICAgICk7CiAgICB9LCB7fSk7Cn0KY29uc3QgbWFrZUNvbXBvbmVudFByb3BzID0gcHJvcHNGYWN0b3J5KAogIHsKICAgIGNsYXNzOiBbU3RyaW5nLCBBcnJheSwgT2JqZWN0XSwKICAgIHN0eWxlOiB7IHR5cGU6IFtTdHJpbmcsIEFycmF5LCBPYmplY3RdLCBkZWZhdWx0OiBudWxsIH0sCiAgfSwKICAiY29tcG9uZW50IgopOwpmdW5jdGlvbiBnZXRDdXJyZW50SW5zdGFuY2UoZSwgdCkgewogIGNvbnN0IHIgPSBnZXRDdXJyZW50SW5zdGFuY2UkMSgpOwogIGlmICghcikKICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgYFtWdWV0aWZ5XSAke2V9IG11c3QgYmUgY2FsbGVkIGZyb20gaW5zaWRlIGEgc2V0dXAgZnVuY3Rpb25gCiAgICApOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIGdldEN1cnJlbnRJbnN0YW5jZU5hbWUoKSB7CiAgbGV0IGUgPQogICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB2b2lkIDAKICAgICAgPyBhcmd1bWVudHNbMF0KICAgICAgOiAiY29tcG9zYWJsZXMiOwogIGNvbnN0IHQgPSBnZXRDdXJyZW50SW5zdGFuY2UoZSkudHlwZTsKICByZXR1cm4gdG9LZWJhYkNhc2UoCiAgICAodCA9PSBudWxsID8gdm9pZCAwIDogdC5hbGlhc05hbWUpIHx8ICh0ID09IG51bGwgPyB2b2lkIDAgOiB0Lm5hbWUpCiAgKTsKfQpsZXQgX3VpZCA9IDAsCiAgX21hcCA9IG5ldyBXZWFrTWFwKCk7CmZ1bmN0aW9uIGdldFVpZCgpIHsKICBjb25zdCBlID0gZ2V0Q3VycmVudEluc3RhbmNlKCJnZXRVaWQiKTsKICBpZiAoX21hcC5oYXMoZSkpIHJldHVybiBfbWFwLmdldChlKTsKICB7CiAgICBjb25zdCB0ID0gX3VpZCsrOwogICAgcmV0dXJuIF9tYXAuc2V0KGUsIHQpLCB0OwogIH0KfQpnZXRVaWQucmVzZXQgPSAoKSA9PiB7CiAgKF91aWQgPSAwKSwgKF9tYXAgPSBuZXcgV2Vha01hcCgpKTsKfTsKZnVuY3Rpb24gaW5qZWN0U2VsZihlKSB7CiAgbGV0IHQgPQogICAgYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB2b2lkIDAKICAgICAgPyBhcmd1bWVudHNbMV0KICAgICAgOiBnZXRDdXJyZW50SW5zdGFuY2UoImluamVjdFNlbGYiKTsKICBjb25zdCB7IHByb3ZpZGVzOiByIH0gPSB0OwogIGlmIChyICYmIGUgaW4gcikgcmV0dXJuIHJbZV07Cn0KY29uc3QgRGVmYXVsdHNTeW1ib2wgPSBTeW1ib2wuZm9yKCJ2dWV0aWZ5OmRlZmF1bHRzIik7CmZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRzKGUpIHsKICByZXR1cm4gcmVmKGUpOwp9CmZ1bmN0aW9uIGluamVjdERlZmF1bHRzKCkgewogIGNvbnN0IGUgPSBpbmplY3QkMShEZWZhdWx0c1N5bWJvbCk7CiAgaWYgKCFlKSB0aHJvdyBuZXcgRXJyb3IoIltWdWV0aWZ5XSBDb3VsZCBub3QgZmluZCBkZWZhdWx0cyBpbnN0YW5jZSIpOwogIHJldHVybiBlOwp9CmZ1bmN0aW9uIHByb3ZpZGVEZWZhdWx0cyhlLCB0KSB7CiAgY29uc3QgciA9IGluamVjdERlZmF1bHRzKCksCiAgICBuID0gcmVmKGUpLAogICAgaSA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgaWYgKHVucmVmKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuZGlzYWJsZWQpKSByZXR1cm4gci52YWx1ZTsKICAgICAgY29uc3QgbyA9IHVucmVmKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuc2NvcGVkKSwKICAgICAgICBsID0gdW5yZWYodCA9PSBudWxsID8gdm9pZCAwIDogdC5yZXNldCksCiAgICAgICAgYyA9IHVucmVmKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQucm9vdCk7CiAgICAgIGlmIChuLnZhbHVlID09IG51bGwgJiYgIShvIHx8IGwgfHwgYykpIHJldHVybiByLnZhbHVlOwogICAgICBsZXQgdSA9IG1lcmdlRGVlcChuLnZhbHVlLCB7IHByZXY6IHIudmFsdWUgfSk7CiAgICAgIGlmIChvKSByZXR1cm4gdTsKICAgICAgaWYgKGwgfHwgYykgewogICAgICAgIGNvbnN0IGQgPSBOdW1iZXIobCB8fCAxIC8gMCk7CiAgICAgICAgZm9yIChsZXQgRSA9IDA7IEUgPD0gZCAmJiAhKCF1IHx8ICEoInByZXYiIGluIHUpKTsgRSsrKSB1ID0gdS5wcmV2OwogICAgICAgIHJldHVybiAoCiAgICAgICAgICB1ICYmCiAgICAgICAgICB0eXBlb2YgYyA9PSAic3RyaW5nIiAmJgogICAgICAgICAgYyBpbiB1ICYmCiAgICAgICAgICAodSA9IG1lcmdlRGVlcChtZXJnZURlZXAodSwgeyBwcmV2OiB1IH0pLCB1W2NdKSksCiAgICAgICAgICB1CiAgICAgICAgKTsKICAgICAgfQogICAgICByZXR1cm4gdS5wcmV2ID8gbWVyZ2VEZWVwKHUucHJldiwgdSkgOiB1OwogICAgfSk7CiAgcmV0dXJuIHByb3ZpZGUoRGVmYXVsdHNTeW1ib2wsIGkpLCBpOwp9CmZ1bmN0aW9uIHByb3BJc0RlZmluZWQoZSwgdCkgewogIHZhciByLCBuOwogIHJldHVybiAoCiAgICB0eXBlb2YgKChyID0gZS5wcm9wcykgPT0gbnVsbCA/IHZvaWQgMCA6IHJbdF0pIDwgInUiIHx8CiAgICB0eXBlb2YgKChuID0gZS5wcm9wcykgPT0gbnVsbCA/IHZvaWQgMCA6IG5bdG9LZWJhYkNhc2UodCldKSA8ICJ1IgogICk7Cn0KZnVuY3Rpb24gaW50ZXJuYWxVc2VEZWZhdWx0cygpIHsKICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdm9pZCAwID8gYXJndW1lbnRzWzBdIDoge30sCiAgICB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB2b2lkIDAsCiAgICByID0KICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB2b2lkIDAKICAgICAgICA/IGFyZ3VtZW50c1syXQogICAgICAgIDogaW5qZWN0RGVmYXVsdHMoKTsKICBjb25zdCBuID0gZ2V0Q3VycmVudEluc3RhbmNlKCJ1c2VEZWZhdWx0cyIpOwogIGlmICgoKHQgPSB0ID8/IG4udHlwZS5uYW1lID8/IG4udHlwZS5fX25hbWUpLCAhdCkpCiAgICB0aHJvdyBuZXcgRXJyb3IoIltWdWV0aWZ5XSBDb3VsZCBub3QgZGV0ZXJtaW5lIGNvbXBvbmVudCBuYW1lIik7CiAgY29uc3QgaSA9IGNvbXB1dGVkKCgpID0+IHsKICAgIHZhciBjOwogICAgcmV0dXJuIChjID0gci52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IGNbZS5fYXMgPz8gdF07CiAgfSksCiAgICBhID0gbmV3IFByb3h5KGUsIHsKICAgICAgZ2V0KGMsIHUpIHsKICAgICAgICB2YXIgRSwgYiwgUCwgUiwgVCwgTSwgeDsKICAgICAgICBjb25zdCBkID0gUmVmbGVjdC5nZXQoYywgdSk7CiAgICAgICAgcmV0dXJuIHUgPT09ICJjbGFzcyIgfHwgdSA9PT0gInN0eWxlIgogICAgICAgICAgPyBbKEUgPSBpLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogRVt1XSwgZF0uZmlsdGVyKChrKSA9PiBrICE9IG51bGwpCiAgICAgICAgICA6IHR5cGVvZiB1ID09ICJzdHJpbmciICYmICFwcm9wSXNEZWZpbmVkKG4udm5vZGUsIHUpCiAgICAgICAgICAgID8gKChiID0gaS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IGJbdV0pICE9PSB2b2lkIDAKICAgICAgICAgICAgICA/IChQID0gaS52YWx1ZSkgPT0gbnVsbAogICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgIDogUFt1XQogICAgICAgICAgICAgIDogKChUID0gKFIgPSByLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogUi5nbG9iYWwpID09IG51bGwKICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICA6IFRbdV0pICE9PSB2b2lkIDAKICAgICAgICAgICAgICAgID8gKHggPSAoTSA9IHIudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBNLmdsb2JhbCkgPT0gbnVsbAogICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICA6IHhbdV0KICAgICAgICAgICAgICAgIDogZAogICAgICAgICAgICA6IGQ7CiAgICAgIH0sCiAgICB9KSwKICAgIG8gPSBzaGFsbG93UmVmKCk7CiAgd2F0Y2hFZmZlY3QoKCkgPT4gewogICAgaWYgKGkudmFsdWUpIHsKICAgICAgY29uc3QgYyA9IE9iamVjdC5lbnRyaWVzKGkudmFsdWUpLmZpbHRlcigodSkgPT4gewogICAgICAgIGxldCBbZF0gPSB1OwogICAgICAgIHJldHVybiBkLnN0YXJ0c1dpdGgoZFswXS50b1VwcGVyQ2FzZSgpKTsKICAgICAgfSk7CiAgICAgIG8udmFsdWUgPSBjLmxlbmd0aCA/IE9iamVjdC5mcm9tRW50cmllcyhjKSA6IHZvaWQgMDsKICAgIH0gZWxzZSBvLnZhbHVlID0gdm9pZCAwOwogIH0pOwogIGZ1bmN0aW9uIGwoKSB7CiAgICBjb25zdCBjID0gaW5qZWN0U2VsZihEZWZhdWx0c1N5bWJvbCwgbik7CiAgICBwcm92aWRlKAogICAgICBEZWZhdWx0c1N5bWJvbCwKICAgICAgY29tcHV0ZWQoKCkgPT4KICAgICAgICBvLnZhbHVlCiAgICAgICAgICA/IG1lcmdlRGVlcCgoYyA9PSBudWxsID8gdm9pZCAwIDogYy52YWx1ZSkgPz8ge30sIG8udmFsdWUpCiAgICAgICAgICA6IGMgPT0gbnVsbAogICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICA6IGMudmFsdWUKICAgICAgKQogICAgKTsKICB9CiAgcmV0dXJuIHsgcHJvcHM6IGEsIHByb3ZpZGVTdWJEZWZhdWx0czogbCB9Owp9CmZ1bmN0aW9uIGRlZmluZUNvbXBvbmVudChlKSB7CiAgaWYgKCgoZS5fc2V0dXAgPSBlLl9zZXR1cCA/PyBlLnNldHVwKSwgIWUubmFtZSkpIHJldHVybiBlOwogIGlmIChlLl9zZXR1cCkgewogICAgZS5wcm9wcyA9IHByb3BzRmFjdG9yeShlLnByb3BzID8/IHt9LCBlLm5hbWUpKCk7CiAgICBjb25zdCB0ID0gT2JqZWN0LmtleXMoZS5wcm9wcykuZmlsdGVyKAogICAgICAocikgPT4gciAhPT0gImNsYXNzIiAmJiByICE9PSAic3R5bGUiCiAgICApOwogICAgKGUuZmlsdGVyUHJvcHMgPSBmdW5jdGlvbiAobikgewogICAgICByZXR1cm4gcGljayhuLCB0KTsKICAgIH0pLAogICAgICAoZS5wcm9wcy5fYXMgPSBTdHJpbmcpLAogICAgICAoZS5zZXR1cCA9IGZ1bmN0aW9uIChuLCBpKSB7CiAgICAgICAgY29uc3QgYSA9IGluamVjdERlZmF1bHRzKCk7CiAgICAgICAgaWYgKCFhLnZhbHVlKSByZXR1cm4gZS5fc2V0dXAobiwgaSk7CiAgICAgICAgY29uc3QgeyBwcm9wczogbywgcHJvdmlkZVN1YkRlZmF1bHRzOiBsIH0gPSBpbnRlcm5hbFVzZURlZmF1bHRzKAogICAgICAgICAgbiwKICAgICAgICAgIG4uX2FzID8/IGUubmFtZSwKICAgICAgICAgIGEKICAgICAgICApLAogICAgICAgICAgYyA9IGUuX3NldHVwKG8sIGkpOwogICAgICAgIHJldHVybiBsKCksIGM7CiAgICAgIH0pOwogIH0KICByZXR1cm4gZTsKfQpmdW5jdGlvbiBnZW5lcmljQ29tcG9uZW50KCkgewogIGxldCBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB2b2lkIDAgPyBhcmd1bWVudHNbMF0gOiAhMDsKICByZXR1cm4gKHQpID0+IChlID8gZGVmaW5lQ29tcG9uZW50IDogZGVmaW5lQ29tcG9uZW50JDEpKHQpOwp9CmZ1bmN0aW9uIGRlZmluZUZ1bmN0aW9uYWxDb21wb25lbnQoZSwgdCkgewogIHJldHVybiAodC5wcm9wcyA9IGUpLCB0Owp9CmZ1bmN0aW9uIHVzZVJlbmRlcihlKSB7CiAgY29uc3QgdCA9IGdldEN1cnJlbnRJbnN0YW5jZSgidXNlUmVuZGVyIik7CiAgdC5yZW5kZXIgPSBlOwp9CmNvbnN0IEljb25WYWx1ZSA9IFtTdHJpbmcsIEZ1bmN0aW9uLCBPYmplY3QsIEFycmF5XSwKICBJY29uU3ltYm9sID0gU3ltYm9sLmZvcigidnVldGlmeTppY29ucyIpLAogIG1ha2VJY29uUHJvcHMgPSBwcm9wc0ZhY3RvcnkoCiAgICB7IGljb246IHsgdHlwZTogSWNvblZhbHVlIH0sIHRhZzogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiAhMCB9IH0sCiAgICAiaWNvbiIKICApLAogIFZDb21wb25lbnRJY29uID0gZ2VuZXJpY0NvbXBvbmVudCgpKHsKICAgIG5hbWU6ICJWQ29tcG9uZW50SWNvbiIsCiAgICBwcm9wczogbWFrZUljb25Qcm9wcygpLAogICAgc2V0dXAoZSwgdCkgewogICAgICBsZXQgeyBzbG90czogciB9ID0gdDsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBjb25zdCBuID0gZS5pY29uOwogICAgICAgIHJldHVybiBjcmVhdGVWTm9kZShlLnRhZywgbnVsbCwgewogICAgICAgICAgZGVmYXVsdDogKCkgPT4gewogICAgICAgICAgICB2YXIgaTsKICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICBlLmljb24KICAgICAgICAgICAgICAgID8gY3JlYXRlVk5vZGUobiwgbnVsbCwgbnVsbCkKICAgICAgICAgICAgICAgIDogKGkgPSByLmRlZmF1bHQpID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiBpLmNhbGwociksCiAgICAgICAgICAgIF07CiAgICAgICAgICB9LAogICAgICAgIH0pOwogICAgICB9OwogICAgfSwKICB9KSwKICBWU3ZnSWNvbiA9IGRlZmluZUNvbXBvbmVudCh7CiAgICBuYW1lOiAiVlN2Z0ljb24iLAogICAgaW5oZXJpdEF0dHJzOiAhMSwKICAgIHByb3BzOiBtYWtlSWNvblByb3BzKCksCiAgICBzZXR1cChlLCB0KSB7CiAgICAgIGxldCB7IGF0dHJzOiByIH0gPSB0OwogICAgICByZXR1cm4gKCkgPT4KICAgICAgICBjcmVhdGVWTm9kZShlLnRhZywgbWVyZ2VQcm9wcyhyLCB7IHN0eWxlOiBudWxsIH0pLCB7CiAgICAgICAgICBkZWZhdWx0OiAoKSA9PiBbCiAgICAgICAgICAgIGNyZWF0ZVZOb2RlKAogICAgICAgICAgICAgICJzdmciLAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsYXNzOiAidi1pY29uX19zdmciLAogICAgICAgICAgICAgICAgeG1sbnM6ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsCiAgICAgICAgICAgICAgICB2aWV3Qm94OiAiMCAwIDI0IDI0IiwKICAgICAgICAgICAgICAgIHJvbGU6ICJpbWciLAogICAgICAgICAgICAgICAgImFyaWEtaGlkZGVuIjogInRydWUiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShlLmljb24pCiAgICAgICAgICAgICAgICAgID8gZS5pY29uLm1hcCgobikgPT4KICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KG4pCiAgICAgICAgICAgICAgICAgICAgICA/IGNyZWF0ZVZOb2RlKAogICAgICAgICAgICAgICAgICAgICAgICAicGF0aCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHsgZDogblswXSwgImZpbGwtb3BhY2l0eSI6IG5bMV0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgOiBjcmVhdGVWTm9kZSgicGF0aCIsIHsgZDogbiB9LCBudWxsKQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIDogY3JlYXRlVk5vZGUoInBhdGgiLCB7IGQ6IGUuaWNvbiB9LCBudWxsKSwKICAgICAgICAgICAgICBdCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgIH0pOwogICAgfSwKICB9KTsKZGVmaW5lQ29tcG9uZW50KHsKICBuYW1lOiAiVkxpZ2F0dXJlSWNvbiIsCiAgcHJvcHM6IG1ha2VJY29uUHJvcHMoKSwKICBzZXR1cChlKSB7CiAgICByZXR1cm4gKCkgPT4gY3JlYXRlVk5vZGUoZS50YWcsIG51bGwsIHsgZGVmYXVsdDogKCkgPT4gW2UuaWNvbl0gfSk7CiAgfSwKfSk7CmNvbnN0IFZDbGFzc0ljb24gPSBkZWZpbmVDb21wb25lbnQoewogIG5hbWU6ICJWQ2xhc3NJY29uIiwKICBwcm9wczogbWFrZUljb25Qcm9wcygpLAogIHNldHVwKGUpIHsKICAgIHJldHVybiAoKSA9PiBjcmVhdGVWTm9kZShlLnRhZywgeyBjbGFzczogZS5pY29uIH0sIG51bGwpOwogIH0sCn0pOwpmdW5jdGlvbiBnZW5EZWZhdWx0cyQzKCkgewogIHJldHVybiB7IHN2ZzogeyBjb21wb25lbnQ6IFZTdmdJY29uIH0sIGNsYXNzOiB7IGNvbXBvbmVudDogVkNsYXNzSWNvbiB9IH07Cn0KZnVuY3Rpb24gY3JlYXRlSWNvbnMoZSkgewogIGNvbnN0IHQgPSBnZW5EZWZhdWx0cyQzKCksCiAgICByID0gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUuZGVmYXVsdFNldCkgPz8gIm1kaSI7CiAgcmV0dXJuICgKICAgIHIgPT09ICJtZGkiICYmICF0Lm1kaSAmJiAodC5tZGkgPSBtZGkpLAogICAgbWVyZ2VEZWVwKAogICAgICB7CiAgICAgICAgZGVmYXVsdFNldDogciwKICAgICAgICBzZXRzOiB0LAogICAgICAgIGFsaWFzZXM6IHsKICAgICAgICAgIC4uLmFsaWFzZXMsCiAgICAgICAgICB2dWV0aWZ5OiBbCiAgICAgICAgICAgICJNOC4yMjQxIDE0LjIwMDlMMTIgMjFMMjIgM0gxNC40NDU5TDguMjI0MSAxNC4yMDA5WiIsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAiTTcuMjYzMDMgMTIuNDczM0w3LjAwMTEzIDEyTDIgM0gxMi41MjYxQzEyLjUyNjEgMyAxMi41MjYxIDMgMTIuNTI2MSAzTDcuMjYzMDMgMTIuNDczM1oiLAogICAgICAgICAgICAgIDAuNiwKICAgICAgICAgICAgXSwKICAgICAgICAgIF0sCiAgICAgICAgICAidnVldGlmeS1vdXRsaW5lIjoKICAgICAgICAgICAgInN2ZzpNNy4yNiAxMi40NyAxMi41MyAzSDJMNy4yNiAxMi40N1pNMTQuNDUgMyA4LjIyIDE0LjIgMTIgMjEgMjIgM0gxNC40NVpNMTguNiA1IDEyIDE2Ljg4IDEwLjUxIDE0LjIgMTUuNjIgNVpNNy4yNiA4LjM1IDUuNCA1SDkuMTNMNy4yNiA4LjM1WiIsCiAgICAgICAgICAidnVldGlmeS1wbGF5IjogWwogICAgICAgICAgICAibTYuMzc2IDEzLjE4NC00LjExLTcuMTkyQzEuNTA1IDQuNjYgMi40NjcgMyA0LjAwMyAzaDguNTMybC0uOTUzIDEuNTc2LS4wMDYuMDEtLjM5Ni42NzdjLS40MjkuNzMyLS4yMTQgMS41MDcuMTk0IDIuMDE1LjQwNC41MDMgMS4wOTIuODc4IDEuODY5LjgwNmEzLjcyIDMuNzIgMCAwIDEgMS4wMDUuMDIyYy4yNzYuMDUzLjQzNC4xNDMuNTIzLjIzNy4xMzguMTQ2LjM4LjYzNS0uMjUgMi4wOS0uODkzIDEuNjMtMS41NTMgMS43MjItMS44NDcgMS42NzctLjIxMy0uMDMzLS40NjgtLjE1OC0uNzU2LS40MDZhNC45NSA0Ljk1IDAgMCAxLS44LS45MjdjLS4zOS0uNTY0LTEuMDQtLjg0LTEuNjYtLjg0Ni0uNjI1LS4wMDYtMS4zMTYuMjctMS42OTMuOTIxbC0uNDc4LjgyNi0uOTExIDEuNTA2WiIsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAiTTkuMDkzIDExLjU1MmMuMDQ2LS4wNzkuMTQ0LS4xNS4zMi0uMTQ4YS41My41MyAwIDAgMSAuNDMuMjA3Yy4yODUuNDE0LjYzNi44NDcgMS4wNDYgMS4yLjQwNS4zNS45MTQuNjYyIDEuNTE2Ljc1NCAxLjMzNC4yMDUgMi41MDItLjY5OCAzLjQ4LTIuNDk1bC4wMTQtLjAyOC4wMTMtLjAzYy42ODctMS41NzQuNzc0LTIuODUyLS4wMDUtMy42NzUtLjM3LS4zOTEtLjg2MS0uNTg2LTEuMzMzLS42NzZhNS4yNDMgNS4yNDMgMCAwIDAtMS40NDctLjA0NGMtLjE3My4wMTYtLjM5My0uMDczLS41NC0uMjU3LS4xNDUtLjE4LS4xMjctLjMxNi0uMDgyLS4zOTJsLjM5My0uNjcyTDE0LjI4NyAzaDUuNzFjMS41MzYgMCAyLjQ5OSAxLjY1OSAxLjczNyAyLjk5MmwtNy45OTcgMTMuOTk2Yy0uNzY4IDEuMzQ0LTIuNzA2IDEuMzQ0LTMuNDczIDBsLTMuMDM3LTUuMzE0IDEuMzc3LTIuMjc4LjAwNC0uMDA2LjAwNC0uMDA3LjQ4MS0uODMxWiIsCiAgICAgICAgICAgICAgMC42LAogICAgICAgICAgICBdLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICB9LAogICAgICBlCiAgICApCiAgKTsKfQpjb25zdCB1c2VJY29uID0gKGUpID0+IHsKICBjb25zdCB0ID0gaW5qZWN0JDEoSWNvblN5bWJvbCk7CiAgaWYgKCF0KSB0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgVnVldGlmeSBJY29ucyBwcm92aWRlISIpOwogIHJldHVybiB7CiAgICBpY29uRGF0YTogY29tcHV0ZWQoKCkgPT4gewogICAgICB2YXIgYzsKICAgICAgY29uc3QgbiA9IHVucmVmKGUpOwogICAgICBpZiAoIW4pIHJldHVybiB7IGNvbXBvbmVudDogVkNvbXBvbmVudEljb24gfTsKICAgICAgbGV0IGkgPSBuOwogICAgICBpZiAoCiAgICAgICAgKHR5cGVvZiBpID09ICJzdHJpbmciICYmCiAgICAgICAgICAoKGkgPSBpLnRyaW0oKSksCiAgICAgICAgICAgIGkuc3RhcnRzV2l0aCgiJCIpICYmCiAgICAgICAgICAgIChpID0gKGMgPSB0LmFsaWFzZXMpID09IG51bGwgPyB2b2lkIDAgOiBjW2kuc2xpY2UoMSldKSksCiAgICAgICAgICBBcnJheS5pc0FycmF5KGkpKQogICAgICApCiAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiBWU3ZnSWNvbiwgaWNvbjogaSB9OwogICAgICBpZiAodHlwZW9mIGkgIT0gInN0cmluZyIpIHJldHVybiB7IGNvbXBvbmVudDogVkNvbXBvbmVudEljb24sIGljb246IGkgfTsKICAgICAgY29uc3QgYSA9IE9iamVjdC5rZXlzKHQuc2V0cykuZmluZCgKICAgICAgICAodSkgPT4gdHlwZW9mIGkgPT0gInN0cmluZyIgJiYgaS5zdGFydHNXaXRoKGAke3V9OmApCiAgICAgICksCiAgICAgICAgbyA9IGEgPyBpLnNsaWNlKGEubGVuZ3RoICsgMSkgOiBpOwogICAgICByZXR1cm4geyBjb21wb25lbnQ6IHQuc2V0c1thID8/IHQuZGVmYXVsdFNldF0uY29tcG9uZW50LCBpY29uOiBvIH07CiAgICB9KSwKICB9Owp9LAogIGFsaWFzZXMgPSB7CiAgICBjb2xsYXBzZTogIm1kaS1jaGV2cm9uLXVwIiwKICAgIGNvbXBsZXRlOiAibWRpLWNoZWNrIiwKICAgIGNhbmNlbDogIm1kaS1jbG9zZS1jaXJjbGUiLAogICAgY2xvc2U6ICJtZGktY2xvc2UiLAogICAgZGVsZXRlOiAibWRpLWNsb3NlLWNpcmNsZSIsCiAgICBjbGVhcjogIm1kaS1jbG9zZS1jaXJjbGUiLAogICAgc3VjY2VzczogIm1kaS1jaGVjay1jaXJjbGUiLAogICAgaW5mbzogIm1kaS1pbmZvcm1hdGlvbiIsCiAgICB3YXJuaW5nOiAibWRpLWFsZXJ0LWNpcmNsZSIsCiAgICBlcnJvcjogIm1kaS1jbG9zZS1jaXJjbGUiLAogICAgcHJldjogIm1kaS1jaGV2cm9uLWxlZnQiLAogICAgbmV4dDogIm1kaS1jaGV2cm9uLXJpZ2h0IiwKICAgIGNoZWNrYm94T246ICJtZGktY2hlY2tib3gtbWFya2VkIiwKICAgIGNoZWNrYm94T2ZmOiAibWRpLWNoZWNrYm94LWJsYW5rLW91dGxpbmUiLAogICAgY2hlY2tib3hJbmRldGVybWluYXRlOiAibWRpLW1pbnVzLWJveCIsCiAgICBkZWxpbWl0ZXI6ICJtZGktY2lyY2xlIiwKICAgIHNvcnRBc2M6ICJtZGktYXJyb3ctdXAiLAogICAgc29ydERlc2M6ICJtZGktYXJyb3ctZG93biIsCiAgICBleHBhbmQ6ICJtZGktY2hldnJvbi1kb3duIiwKICAgIG1lbnU6ICJtZGktbWVudSIsCiAgICBzdWJncm91cDogIm1kaS1tZW51LWRvd24iLAogICAgZHJvcGRvd246ICJtZGktbWVudS1kb3duIiwKICAgIHJhZGlvT246ICJtZGktcmFkaW9ib3gtbWFya2VkIiwKICAgIHJhZGlvT2ZmOiAibWRpLXJhZGlvYm94LWJsYW5rIiwKICAgIGVkaXQ6ICJtZGktcGVuY2lsIiwKICAgIHJhdGluZ0VtcHR5OiAibWRpLXN0YXItb3V0bGluZSIsCiAgICByYXRpbmdGdWxsOiAibWRpLXN0YXIiLAogICAgcmF0aW5nSGFsZjogIm1kaS1zdGFyLWhhbGYtZnVsbCIsCiAgICBsb2FkaW5nOiAibWRpLWNhY2hlZCIsCiAgICBmaXJzdDogIm1kaS1wYWdlLWZpcnN0IiwKICAgIGxhc3Q6ICJtZGktcGFnZS1sYXN0IiwKICAgIHVuZm9sZDogIm1kaS11bmZvbGQtbW9yZS1ob3Jpem9udGFsIiwKICAgIGZpbGU6ICJtZGktcGFwZXJjbGlwIiwKICAgIHBsdXM6ICJtZGktcGx1cyIsCiAgICBtaW51czogIm1kaS1taW51cyIsCiAgICBjYWxlbmRhcjogIm1kaS1jYWxlbmRhciIsCiAgICB0cmVldmlld0NvbGxhcHNlOiAibWRpLW1lbnUtZG93biIsCiAgICB0cmVldmlld0V4cGFuZDogIm1kaS1tZW51LXJpZ2h0IiwKICAgIGV5ZURyb3BwZXI6ICJtZGktZXllZHJvcHBlciIsCiAgICB1cGxvYWQ6ICJtZGktY2xvdWQtdXBsb2FkIiwKICB9LAogIG1kaSA9IHsgY29tcG9uZW50OiAoZSkgPT4gaCQyKFZDbGFzc0ljb24sIHsgLi4uZSwgY2xhc3M6ICJtZGkiIH0pIH07CmZ1bmN0aW9uIGljb25zQ29uZmlndXJhdGlvbigpIHsKICByZXR1cm4geyBkZWZhdWx0U2V0OiAibWRpIiwgYWxpYXNlcywgc2V0czogeyBtZGkgfSB9Owp9CmZ1bmN0aW9uIGNvbmZpZ3VyZUljb25zKGUpIHsKICB7CiAgICBjb25zdCB0ID0gaWNvbnNDb25maWd1cmF0aW9uKCk7CiAgICBpZiAoKHQgPT0gbnVsbCA/IHZvaWQgMCA6IHQuZGVmYXVsdFNldCkgPT09ICJjdXN0b20iKSByZXR1cm47CiAgICBlLmljb25zID0gdDsKICB9Cn0KY29uc3QgdnVldGlmeV9pY29uc19LQXVtdjJwVW5pID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgbmFtZTogInZ1ZXRpZnk6aWNvbnM6cGx1Z2luIiwKICBvcmRlcjogLTI1LAogIHBhcmFsbGVsOiAhMCwKICBzZXR1cChlKSB7CiAgICBlLmhvb2soInZ1ZXRpZnk6Y29uZmlndXJhdGlvbiIsICh7IHZ1ZXRpZnlPcHRpb25zOiB0IH0pID0+IHsKICAgICAgY29uZmlndXJlSWNvbnModCk7CiAgICB9KTsKICB9LAp9KSwKICB1bmhlYWRQbHVnaW5zID0gW10sCiAgdW5oZWFkX0tnQURjWjBqUGogPSBkZWZpbmVOdXh0UGx1Z2luKHsKICAgIG5hbWU6ICJudXh0OmhlYWQiLAogICAgZW5mb3JjZTogInByZSIsCiAgICBzZXR1cChlKSB7CiAgICAgIGNvbnN0IHQgPSBjcmVhdGVIZWFkKHsgcGx1Z2luczogdW5oZWFkUGx1Z2lucyB9KTsKICAgICAgc2V0SGVhZEluamVjdGlvbkhhbmRsZXIoCiAgICAgICAgKCkgPT4gdXNlTnV4dEFwcCgpLnZ1ZUFwcC5fY29udGV4dC5wcm92aWRlcy51c2VoZWFkCiAgICAgICksCiAgICAgICAgZS52dWVBcHAudXNlKHQpOwogICAgICB7CiAgICAgICAgbGV0IHIgPSAhMDsKICAgICAgICBjb25zdCBuID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgKHIgPSAhMSksIGF3YWl0IHJlbmRlckRPTUhlYWQodCk7CiAgICAgICAgfTsKICAgICAgICB0Lmhvb2tzLmhvb2soImRvbTpiZWZvcmVSZW5kZXIiLCAoaSkgPT4gewogICAgICAgICAgaS5zaG91bGRSZW5kZXIgPSAhcjsKICAgICAgICB9KSwKICAgICAgICAgIGUuaG9va3MuaG9vaygicGFnZTpzdGFydCIsICgpID0+IHsKICAgICAgICAgICAgciA9ICEwOwogICAgICAgICAgfSksCiAgICAgICAgICBlLmhvb2tzLmhvb2soInBhZ2U6ZmluaXNoIiwgKCkgPT4gewogICAgICAgICAgICBlLmlzSHlkcmF0aW5nIHx8IG4oKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZS5ob29rcy5ob29rKCJhcHA6ZXJyb3IiLCBuKSwKICAgICAgICAgIGUuaG9va3MuaG9vaygiYXBwOnN1c3BlbnNlOnJlc29sdmUiLCBuKTsKICAgICAgfQogICAgfSwKICB9KTsKLyohCiAqIHZ1ZS1yb3V0ZXIgdjQuNS4wCiAqIChjKSAyMDI0IEVkdWFyZG8gU2FuIE1hcnRpbiBNb3JvdGUKICogQGxpY2Vuc2UgTUlUCiAqLyBjb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2YgZG9jdW1lbnQgPCAidSI7CmZ1bmN0aW9uIGlzUm91dGVDb21wb25lbnQoZSkgewogIHJldHVybiAoCiAgICB0eXBlb2YgZSA9PSAib2JqZWN0IiB8fAogICAgImRpc3BsYXlOYW1lIiBpbiBlIHx8CiAgICAicHJvcHMiIGluIGUgfHwKICAgICJfX3ZjY09wdHMiIGluIGUKICApOwp9CmZ1bmN0aW9uIGlzRVNNb2R1bGUoZSkgewogIHJldHVybiAoCiAgICBlLl9fZXNNb2R1bGUgfHwKICAgIGVbU3ltYm9sLnRvU3RyaW5nVGFnXSA9PT0gIk1vZHVsZSIgfHwKICAgIChlLmRlZmF1bHQgJiYgaXNSb3V0ZUNvbXBvbmVudChlLmRlZmF1bHQpKQogICk7Cn0KY29uc3QgYXNzaWduID0gT2JqZWN0LmFzc2lnbjsKZnVuY3Rpb24gYXBwbHlUb1BhcmFtcyhlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIGZvciAoY29uc3QgbiBpbiB0KSB7CiAgICBjb25zdCBpID0gdFtuXTsKICAgIHJbbl0gPSBpc0FycmF5KGkpID8gaS5tYXAoZSkgOiBlKGkpOwogIH0KICByZXR1cm4gcjsKfQpjb25zdCBub29wID0gKCkgPT4geyB9LAogIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5LAogIEhBU0hfUkUgPSAvIy9nLAogIEFNUEVSU0FORF9SRSA9IC8mL2csCiAgU0xBU0hfUkUgPSAvXC8vZywKICBFUVVBTF9SRSA9IC89L2csCiAgSU1fUkUgPSAvXD8vZywKICBQTFVTX1JFID0gL1wrL2csCiAgRU5DX0JSQUNLRVRfT1BFTl9SRSA9IC8lNUIvZywKICBFTkNfQlJBQ0tFVF9DTE9TRV9SRSA9IC8lNUQvZywKICBFTkNfQ0FSRVRfUkUgPSAvJTVFL2csCiAgRU5DX0JBQ0tUSUNLX1JFID0gLyU2MC9nLAogIEVOQ19DVVJMWV9PUEVOX1JFID0gLyU3Qi9nLAogIEVOQ19QSVBFX1JFID0gLyU3Qy9nLAogIEVOQ19DVVJMWV9DTE9TRV9SRSA9IC8lN0QvZywKICBFTkNfU1BBQ0VfUkUgPSAvJTIwL2c7CmZ1bmN0aW9uIGNvbW1vbkVuY29kZShlKSB7CiAgcmV0dXJuIGVuY29kZVVSSSgiIiArIGUpCiAgICAucmVwbGFjZShFTkNfUElQRV9SRSwgInwiKQogICAgLnJlcGxhY2UoRU5DX0JSQUNLRVRfT1BFTl9SRSwgIlsiKQogICAgLnJlcGxhY2UoRU5DX0JSQUNLRVRfQ0xPU0VfUkUsICJdIik7Cn0KZnVuY3Rpb24gZW5jb2RlSGFzaChlKSB7CiAgcmV0dXJuIGNvbW1vbkVuY29kZShlKQogICAgLnJlcGxhY2UoRU5DX0NVUkxZX09QRU5fUkUsICJ7IikKICAgIC5yZXBsYWNlKEVOQ19DVVJMWV9DTE9TRV9SRSwgIn0iKQogICAgLnJlcGxhY2UoRU5DX0NBUkVUX1JFLCAiXiIpOwp9CmZ1bmN0aW9uIGVuY29kZVF1ZXJ5VmFsdWUoZSkgewogIHJldHVybiBjb21tb25FbmNvZGUoZSkKICAgIC5yZXBsYWNlKFBMVVNfUkUsICIlMkIiKQogICAgLnJlcGxhY2UoRU5DX1NQQUNFX1JFLCAiKyIpCiAgICAucmVwbGFjZShIQVNIX1JFLCAiJTIzIikKICAgIC5yZXBsYWNlKEFNUEVSU0FORF9SRSwgIiUyNiIpCiAgICAucmVwbGFjZShFTkNfQkFDS1RJQ0tfUkUsICJgIikKICAgIC5yZXBsYWNlKEVOQ19DVVJMWV9PUEVOX1JFLCAieyIpCiAgICAucmVwbGFjZShFTkNfQ1VSTFlfQ0xPU0VfUkUsICJ9IikKICAgIC5yZXBsYWNlKEVOQ19DQVJFVF9SRSwgIl4iKTsKfQpmdW5jdGlvbiBlbmNvZGVRdWVyeUtleShlKSB7CiAgcmV0dXJuIGVuY29kZVF1ZXJ5VmFsdWUoZSkucmVwbGFjZShFUVVBTF9SRSwgIiUzRCIpOwp9CmZ1bmN0aW9uIGVuY29kZVBhdGgoZSkgewogIHJldHVybiBjb21tb25FbmNvZGUoZSkucmVwbGFjZShIQVNIX1JFLCAiJTIzIikucmVwbGFjZShJTV9SRSwgIiUzRiIpOwp9CmZ1bmN0aW9uIGVuY29kZVBhcmFtKGUpIHsKICByZXR1cm4gZSA9PSBudWxsID8gIiIgOiBlbmNvZGVQYXRoKGUpLnJlcGxhY2UoU0xBU0hfUkUsICIlMkYiKTsKfQpmdW5jdGlvbiBkZWNvZGUoZSkgewogIHRyeSB7CiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KCIiICsgZSk7CiAgfSBjYXRjaCB7IH0KICByZXR1cm4gIiIgKyBlOwp9CmNvbnN0IFRSQUlMSU5HX1NMQVNIX1JFID0gL1wvJC8sCiAgcmVtb3ZlVHJhaWxpbmdTbGFzaCA9IChlKSA9PiBlLnJlcGxhY2UoVFJBSUxJTkdfU0xBU0hfUkUsICIiKTsKZnVuY3Rpb24gcGFyc2VVUkwoZSwgdCwgciA9ICIvIikgewogIGxldCBuLAogICAgaSA9IHt9LAogICAgYSA9ICIiLAogICAgbyA9ICIiOwogIGNvbnN0IGwgPSB0LmluZGV4T2YoIiMiKTsKICBsZXQgYyA9IHQuaW5kZXhPZigiPyIpOwogIHJldHVybiAoCiAgICBsIDwgYyAmJiBsID49IDAgJiYgKGMgPSAtMSksCiAgICBjID4gLTEgJiYKICAgICgobiA9IHQuc2xpY2UoMCwgYykpLAogICAgICAoYSA9IHQuc2xpY2UoYyArIDEsIGwgPiAtMSA/IGwgOiB0Lmxlbmd0aCkpLAogICAgICAoaSA9IGUoYSkpKSwKICAgIGwgPiAtMSAmJiAoKG4gPSBuIHx8IHQuc2xpY2UoMCwgbCkpLCAobyA9IHQuc2xpY2UobCwgdC5sZW5ndGgpKSksCiAgICAobiA9IHJlc29sdmVSZWxhdGl2ZVBhdGgobiA/PyB0LCByKSksCiAgICB7IGZ1bGxQYXRoOiBuICsgKGEgJiYgIj8iKSArIGEgKyBvLCBwYXRoOiBuLCBxdWVyeTogaSwgaGFzaDogZGVjb2RlKG8pIH0KICApOwp9CmZ1bmN0aW9uIHN0cmluZ2lmeVVSTChlLCB0KSB7CiAgY29uc3QgciA9IHQucXVlcnkgPyBlKHQucXVlcnkpIDogIiI7CiAgcmV0dXJuIHQucGF0aCArIChyICYmICI/IikgKyByICsgKHQuaGFzaCB8fCAiIik7Cn0KZnVuY3Rpb24gc3RyaXBCYXNlKGUsIHQpIHsKICByZXR1cm4gIXQgfHwgIWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHQudG9Mb3dlckNhc2UoKSkKICAgID8gZQogICAgOiBlLnNsaWNlKHQubGVuZ3RoKSB8fCAiLyI7Cn0KZnVuY3Rpb24gaXNTYW1lUm91dGVMb2NhdGlvbihlLCB0LCByKSB7CiAgY29uc3QgbiA9IHQubWF0Y2hlZC5sZW5ndGggLSAxLAogICAgaSA9IHIubWF0Y2hlZC5sZW5ndGggLSAxOwogIHJldHVybiAoCiAgICBuID4gLTEgJiYKICAgIG4gPT09IGkgJiYKICAgIGlzU2FtZVJvdXRlUmVjb3JkKHQubWF0Y2hlZFtuXSwgci5tYXRjaGVkW2ldKSAmJgogICAgaXNTYW1lUm91dGVMb2NhdGlvblBhcmFtcyh0LnBhcmFtcywgci5wYXJhbXMpICYmCiAgICBlKHQucXVlcnkpID09PSBlKHIucXVlcnkpICYmCiAgICB0Lmhhc2ggPT09IHIuaGFzaAogICk7Cn0KZnVuY3Rpb24gaXNTYW1lUm91dGVSZWNvcmQoZSwgdCkgewogIHJldHVybiAoZS5hbGlhc09mIHx8IGUpID09PSAodC5hbGlhc09mIHx8IHQpOwp9CmZ1bmN0aW9uIGlzU2FtZVJvdXRlTG9jYXRpb25QYXJhbXMoZSwgdCkgewogIGlmIChPYmplY3Qua2V5cyhlKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHQpLmxlbmd0aCkgcmV0dXJuICExOwogIGZvciAoY29uc3QgciBpbiBlKSBpZiAoIWlzU2FtZVJvdXRlTG9jYXRpb25QYXJhbXNWYWx1ZShlW3JdLCB0W3JdKSkgcmV0dXJuICExOwogIHJldHVybiAhMDsKfQpmdW5jdGlvbiBpc1NhbWVSb3V0ZUxvY2F0aW9uUGFyYW1zVmFsdWUoZSwgdCkgewogIHJldHVybiBpc0FycmF5KGUpCiAgICA/IGlzRXF1aXZhbGVudEFycmF5KGUsIHQpCiAgICA6IGlzQXJyYXkodCkKICAgICAgPyBpc0VxdWl2YWxlbnRBcnJheSh0LCBlKQogICAgICA6IGUgPT09IHQ7Cn0KZnVuY3Rpb24gaXNFcXVpdmFsZW50QXJyYXkoZSwgdCkgewogIHJldHVybiBpc0FycmF5KHQpCiAgICA/IGUubGVuZ3RoID09PSB0Lmxlbmd0aCAmJiBlLmV2ZXJ5KChyLCBuKSA9PiByID09PSB0W25dKQogICAgOiBlLmxlbmd0aCA9PT0gMSAmJiBlWzBdID09PSB0Owp9CmZ1bmN0aW9uIHJlc29sdmVSZWxhdGl2ZVBhdGgoZSwgdCkgewogIGlmIChlLnN0YXJ0c1dpdGgoIi8iKSkgcmV0dXJuIGU7CiAgaWYgKCFlKSByZXR1cm4gdDsKICBjb25zdCByID0gdC5zcGxpdCgiLyIpLAogICAgbiA9IGUuc3BsaXQoIi8iKSwKICAgIGkgPSBuW24ubGVuZ3RoIC0gMV07CiAgKGkgPT09ICIuLiIgfHwgaSA9PT0gIi4iKSAmJiBuLnB1c2goIiIpOwogIGxldCBhID0gci5sZW5ndGggLSAxLAogICAgbywKICAgIGw7CiAgZm9yIChvID0gMDsgbyA8IG4ubGVuZ3RoOyBvKyspCiAgICBpZiAoKChsID0gbltvXSksIGwgIT09ICIuIikpCiAgICAgIGlmIChsID09PSAiLi4iKSBhID4gMSAmJiBhLS07CiAgICAgIGVsc2UgYnJlYWs7CiAgcmV0dXJuIHIuc2xpY2UoMCwgYSkuam9pbigiLyIpICsgIi8iICsgbi5zbGljZShvKS5qb2luKCIvIik7Cn0KY29uc3QgU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRCA9IHsKICBwYXRoOiAiLyIsCiAgbmFtZTogdm9pZCAwLAogIHBhcmFtczoge30sCiAgcXVlcnk6IHt9LAogIGhhc2g6ICIiLAogIGZ1bGxQYXRoOiAiLyIsCiAgbWF0Y2hlZDogW10sCiAgbWV0YToge30sCiAgcmVkaXJlY3RlZEZyb206IHZvaWQgMCwKfTsKdmFyIE5hdmlnYXRpb25UeXBlOwooZnVuY3Rpb24gKGUpIHsKICAoZS5wb3AgPSAicG9wIiksIChlLnB1c2ggPSAicHVzaCIpOwp9KShOYXZpZ2F0aW9uVHlwZSB8fCAoTmF2aWdhdGlvblR5cGUgPSB7fSkpOwp2YXIgTmF2aWdhdGlvbkRpcmVjdGlvbjsKKGZ1bmN0aW9uIChlKSB7CiAgKGUuYmFjayA9ICJiYWNrIiksIChlLmZvcndhcmQgPSAiZm9yd2FyZCIpLCAoZS51bmtub3duID0gIiIpOwp9KShOYXZpZ2F0aW9uRGlyZWN0aW9uIHx8IChOYXZpZ2F0aW9uRGlyZWN0aW9uID0ge30pKTsKZnVuY3Rpb24gbm9ybWFsaXplQmFzZShlKSB7CiAgaWYgKCFlKQogICAgaWYgKGlzQnJvd3NlcikgewogICAgICBjb25zdCB0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYmFzZSIpOwogICAgICAoZSA9ICh0ICYmIHQuZ2V0QXR0cmlidXRlKCJocmVmIikpIHx8ICIvIiksCiAgICAgICAgKGUgPSBlLnJlcGxhY2UoL15cdys6XC9cL1teXC9dKy8sICIiKSk7CiAgICB9IGVsc2UgZSA9ICIvIjsKICByZXR1cm4gZVswXSAhPT0gIi8iICYmIGVbMF0gIT09ICIjIiAmJiAoZSA9ICIvIiArIGUpLCByZW1vdmVUcmFpbGluZ1NsYXNoKGUpOwp9CmNvbnN0IEJFRk9SRV9IQVNIX1JFID0gL15bXiNdKyMvOwpmdW5jdGlvbiBjcmVhdGVIcmVmKGUsIHQpIHsKICByZXR1cm4gZS5yZXBsYWNlKEJFRk9SRV9IQVNIX1JFLCAiIyIpICsgdDsKfQpmdW5jdGlvbiBnZXRFbGVtZW50UG9zaXRpb24oZSwgdCkgewogIGNvbnN0IHIgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksCiAgICBuID0gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICByZXR1cm4gewogICAgYmVoYXZpb3I6IHQuYmVoYXZpb3IsCiAgICBsZWZ0OiBuLmxlZnQgLSByLmxlZnQgLSAodC5sZWZ0IHx8IDApLAogICAgdG9wOiBuLnRvcCAtIHIudG9wIC0gKHQudG9wIHx8IDApLAogIH07Cn0KY29uc3QgY29tcHV0ZVNjcm9sbFBvc2l0aW9uID0gKCkgPT4gKHsKICBsZWZ0OiB3aW5kb3cuc2Nyb2xsWCwKICB0b3A6IHdpbmRvdy5zY3JvbGxZLAp9KTsKZnVuY3Rpb24gc2Nyb2xsVG9Qb3NpdGlvbihlKSB7CiAgbGV0IHQ7CiAgaWYgKCJlbCIgaW4gZSkgewogICAgY29uc3QgciA9IGUuZWwsCiAgICAgIG4gPSB0eXBlb2YgciA9PSAic3RyaW5nIiAmJiByLnN0YXJ0c1dpdGgoIiMiKSwKICAgICAgaSA9CiAgICAgICAgdHlwZW9mIHIgPT0gInN0cmluZyIKICAgICAgICAgID8gbgogICAgICAgICAgICA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2xpY2UoMSkpCiAgICAgICAgICAgIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyKQogICAgICAgICAgOiByOwogICAgaWYgKCFpKSByZXR1cm47CiAgICB0ID0gZ2V0RWxlbWVudFBvc2l0aW9uKGksIGUpOwogIH0gZWxzZSB0ID0gZTsKICAic2Nyb2xsQmVoYXZpb3IiIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZQogICAgPyB3aW5kb3cuc2Nyb2xsVG8odCkKICAgIDogd2luZG93LnNjcm9sbFRvKAogICAgICB0LmxlZnQgIT0gbnVsbCA/IHQubGVmdCA6IHdpbmRvdy5zY3JvbGxYLAogICAgICB0LnRvcCAhPSBudWxsID8gdC50b3AgOiB3aW5kb3cuc2Nyb2xsWQogICAgKTsKfQpmdW5jdGlvbiBnZXRTY3JvbGxLZXkoZSwgdCkgewogIHJldHVybiAoaGlzdG9yeS5zdGF0ZSA/IGhpc3Rvcnkuc3RhdGUucG9zaXRpb24gLSB0IDogLTEpICsgZTsKfQpjb25zdCBzY3JvbGxQb3NpdGlvbnMgPSBuZXcgTWFwKCk7CmZ1bmN0aW9uIHNhdmVTY3JvbGxQb3NpdGlvbihlLCB0KSB7CiAgc2Nyb2xsUG9zaXRpb25zLnNldChlLCB0KTsKfQpmdW5jdGlvbiBnZXRTYXZlZFNjcm9sbFBvc2l0aW9uKGUpIHsKICBjb25zdCB0ID0gc2Nyb2xsUG9zaXRpb25zLmdldChlKTsKICByZXR1cm4gc2Nyb2xsUG9zaXRpb25zLmRlbGV0ZShlKSwgdDsKfQpsZXQgY3JlYXRlQmFzZUxvY2F0aW9uID0gKCkgPT4gbG9jYXRpb24ucHJvdG9jb2wgKyAiLy8iICsgbG9jYXRpb24uaG9zdDsKZnVuY3Rpb24gY3JlYXRlQ3VycmVudExvY2F0aW9uJDEoZSwgdCkgewogIGNvbnN0IHsgcGF0aG5hbWU6IHIsIHNlYXJjaDogbiwgaGFzaDogaSB9ID0gdCwKICAgIGEgPSBlLmluZGV4T2YoIiMiKTsKICBpZiAoYSA+IC0xKSB7CiAgICBsZXQgbCA9IGkuaW5jbHVkZXMoZS5zbGljZShhKSkgPyBlLnNsaWNlKGEpLmxlbmd0aCA6IDEsCiAgICAgIGMgPSBpLnNsaWNlKGwpOwogICAgcmV0dXJuIGNbMF0gIT09ICIvIiAmJiAoYyA9ICIvIiArIGMpLCBzdHJpcEJhc2UoYywgIiIpOwogIH0KICByZXR1cm4gc3RyaXBCYXNlKHIsIGUpICsgbiArIGk7Cn0KZnVuY3Rpb24gdXNlSGlzdG9yeUxpc3RlbmVycyhlLCB0LCByLCBuKSB7CiAgbGV0IGkgPSBbXSwKICAgIGEgPSBbXSwKICAgIG8gPSBudWxsOwogIGNvbnN0IGwgPSAoeyBzdGF0ZTogYiB9KSA9PiB7CiAgICBjb25zdCBQID0gY3JlYXRlQ3VycmVudExvY2F0aW9uJDEoZSwgbG9jYXRpb24pLAogICAgICBSID0gci52YWx1ZSwKICAgICAgVCA9IHQudmFsdWU7CiAgICBsZXQgTSA9IDA7CiAgICBpZiAoYikgewogICAgICBpZiAoKChyLnZhbHVlID0gUCksICh0LnZhbHVlID0gYiksIG8gJiYgbyA9PT0gUikpIHsKICAgICAgICBvID0gbnVsbDsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgTSA9IFQgPyBiLnBvc2l0aW9uIC0gVC5wb3NpdGlvbiA6IDA7CiAgICB9IGVsc2UgbihQKTsKICAgIGkuZm9yRWFjaCgoeCkgPT4gewogICAgICB4KHIudmFsdWUsIFIsIHsKICAgICAgICBkZWx0YTogTSwKICAgICAgICB0eXBlOiBOYXZpZ2F0aW9uVHlwZS5wb3AsCiAgICAgICAgZGlyZWN0aW9uOiBNCiAgICAgICAgICA/IE0gPiAwCiAgICAgICAgICAgID8gTmF2aWdhdGlvbkRpcmVjdGlvbi5mb3J3YXJkCiAgICAgICAgICAgIDogTmF2aWdhdGlvbkRpcmVjdGlvbi5iYWNrCiAgICAgICAgICA6IE5hdmlnYXRpb25EaXJlY3Rpb24udW5rbm93biwKICAgICAgfSk7CiAgICB9KTsKICB9OwogIGZ1bmN0aW9uIGMoKSB7CiAgICBvID0gci52YWx1ZTsKICB9CiAgZnVuY3Rpb24gdShiKSB7CiAgICBpLnB1c2goYik7CiAgICBjb25zdCBQID0gKCkgPT4gewogICAgICBjb25zdCBSID0gaS5pbmRleE9mKGIpOwogICAgICBSID4gLTEgJiYgaS5zcGxpY2UoUiwgMSk7CiAgICB9OwogICAgcmV0dXJuIGEucHVzaChQKSwgUDsKICB9CiAgZnVuY3Rpb24gZCgpIHsKICAgIGNvbnN0IHsgaGlzdG9yeTogYiB9ID0gd2luZG93OwogICAgYi5zdGF0ZSAmJgogICAgICBiLnJlcGxhY2VTdGF0ZSgKICAgICAgICBhc3NpZ24oe30sIGIuc3RhdGUsIHsgc2Nyb2xsOiBjb21wdXRlU2Nyb2xsUG9zaXRpb24oKSB9KSwKICAgICAgICAiIgogICAgICApOwogIH0KICBmdW5jdGlvbiBFKCkgewogICAgZm9yIChjb25zdCBiIG9mIGEpIGIoKTsKICAgIChhID0gW10pLAogICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLCBsKSwKICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsIGQpOwogIH0KICByZXR1cm4gKAogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwgbCksCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwgZCwgeyBwYXNzaXZlOiAhMCB9KSwKICAgIHsgcGF1c2VMaXN0ZW5lcnM6IGMsIGxpc3RlbjogdSwgZGVzdHJveTogRSB9CiAgKTsKfQpmdW5jdGlvbiBidWlsZFN0YXRlKGUsIHQsIHIsIG4gPSAhMSwgaSA9ICExKSB7CiAgcmV0dXJuIHsKICAgIGJhY2s6IGUsCiAgICBjdXJyZW50OiB0LAogICAgZm9yd2FyZDogciwKICAgIHJlcGxhY2VkOiBuLAogICAgcG9zaXRpb246IHdpbmRvdy5oaXN0b3J5Lmxlbmd0aCwKICAgIHNjcm9sbDogaSA/IGNvbXB1dGVTY3JvbGxQb3NpdGlvbigpIDogbnVsbCwKICB9Owp9CmZ1bmN0aW9uIHVzZUhpc3RvcnlTdGF0ZU5hdmlnYXRpb24oZSkgewogIGNvbnN0IHsgaGlzdG9yeTogdCwgbG9jYXRpb246IHIgfSA9IHdpbmRvdywKICAgIG4gPSB7IHZhbHVlOiBjcmVhdGVDdXJyZW50TG9jYXRpb24kMShlLCByKSB9LAogICAgaSA9IHsgdmFsdWU6IHQuc3RhdGUgfTsKICBpLnZhbHVlIHx8CiAgICBhKAogICAgICBuLnZhbHVlLAogICAgICB7CiAgICAgICAgYmFjazogbnVsbCwKICAgICAgICBjdXJyZW50OiBuLnZhbHVlLAogICAgICAgIGZvcndhcmQ6IG51bGwsCiAgICAgICAgcG9zaXRpb246IHQubGVuZ3RoIC0gMSwKICAgICAgICByZXBsYWNlZDogITAsCiAgICAgICAgc2Nyb2xsOiBudWxsLAogICAgICB9LAogICAgICAhMAogICAgKTsKICBmdW5jdGlvbiBhKGMsIHUsIGQpIHsKICAgIGNvbnN0IEUgPSBlLmluZGV4T2YoIiMiKTsKICAgIGxldCBiID0gRSA+IC0xCiAgICAgID8gKHIuaG9zdCAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJiYXNlIikgPyBlIDogZS5zbGljZShFKSkgKyBjCiAgICAgIDogY3JlYXRlQmFzZUxvY2F0aW9uKCkgKyBlICsgYzsKCiAgICAvLyDDkMKjw5DCtMOQwrDDkMK7w5HCj8OQwrXDkMK8IC9SdSDDkMK4w5DCtyDDkMK9w5DCvsOQwrLDkMK+w5DCs8OQwr4gw5DCv8ORxpLDkeKAmsOQwrgKICAgIGlmIChiLmluY2x1ZGVzKCIvUnUiKSkgewogICAgICBiID0gYi5yZXBsYWNlKCIvUnUiLCAiIik7CiAgICB9CgogICAgdHJ5IHsKICAgICAgLy8gw5DFvsOR4oChw5DCuMOR4oCww5DCsMOQwrXDkMK8IC9SdSDDkMK4w5DCtyDDkMKyw5HCgcOQwrXDkeKApiDDkcKBw5DCvsORwoHDkeKAmsOQwr7DkcKPw5DCvcOQwrjDkMK5CiAgICAgIGlmICh1LmN1cnJlbnQgJiYgdS5jdXJyZW50LmluY2x1ZGVzKCIvUnUiKSkgewogICAgICAgIHUuY3VycmVudCA9IHUuY3VycmVudC5yZXBsYWNlKCIvUnUiLCAiIik7CiAgICAgIH0KICAgICAgaWYgKHUuYmFjayAmJiB1LmJhY2suaW5jbHVkZXMoIi9SdSIpKSB7CiAgICAgICAgdS5iYWNrID0gdS5iYWNrLnJlcGxhY2UoIi9SdSIsICIiKTsKICAgICAgfQogICAgICBpZiAodS5mb3J3YXJkICYmIHUuZm9yd2FyZC5pbmNsdWRlcygiL1J1IikpIHsKICAgICAgICB1LmZvcndhcmQgPSB1LmZvcndhcmQucmVwbGFjZSgiL1J1IiwgIiIpOwogICAgICB9CgogICAgICAvLyDDkMKhw5DCvsOR4oCmw5HigqzDkMKww5DCvcORwo/DkMK1w5DCvCDDkeKAmsOQwrXDkMK6w5HGksOR4oCww5DCuMOQwrUgw5DCv8OQwrDDkeKCrMOQwrDDkMK8w5DCtcOR4oCaw5HigqzDkeKAuSBVUkwKICAgICAgY29uc3QgY3VycmVudFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkudG9TdHJpbmcoKTsKICAgICAgaWYgKGN1cnJlbnRQYXJhbXMgJiYgIWIuaW5jbHVkZXMoJz8nKSkgewogICAgICAgIGIgPSBiICsgJz8nICsgY3VycmVudFBhcmFtczsKICAgICAgfQoKICAgICAgdFtkID8gInJlcGxhY2VTdGF0ZSIgOiAicHVzaFN0YXRlIl0odSwgIiIsIGIpOwogICAgICBpLnZhbHVlID0gdTsKICAgIH0gY2F0Y2ggKFApIHsKICAgICAgY29uc29sZS5lcnJvcihQKTsKICAgICAgcltkID8gInJlcGxhY2UiIDogImFzc2lnbiJdKGIpOwogICAgfQogIH0KICBmdW5jdGlvbiBvKGMsIHUpIHsKICAgIGNvbnN0IGQgPSBhc3NpZ24oCiAgICAgIHt9LAogICAgICB0LnN0YXRlLAogICAgICBidWlsZFN0YXRlKGkudmFsdWUuYmFjaywgYywgaS52YWx1ZS5mb3J3YXJkLCAhMCksCiAgICAgIHUsCiAgICAgIHsgcG9zaXRpb246IGkudmFsdWUucG9zaXRpb24gfQogICAgKTsKICAgIGEoYywgZCwgITApLCAobi52YWx1ZSA9IGMpOwogIH0KICBmdW5jdGlvbiBsKGMsIHUpIHsKICAgIGNvbnN0IGQgPSBhc3NpZ24oe30sIGkudmFsdWUsIHQuc3RhdGUsIHsKICAgICAgZm9yd2FyZDogYywKICAgICAgc2Nyb2xsOiBjb21wdXRlU2Nyb2xsUG9zaXRpb24oKSwKICAgIH0pOwogICAgYShkLmN1cnJlbnQsIGQsICEwKTsKICAgIGNvbnN0IEUgPSBhc3NpZ24oCiAgICAgIHt9LAogICAgICBidWlsZFN0YXRlKG4udmFsdWUsIGMsIG51bGwpLAogICAgICB7IHBvc2l0aW9uOiBkLnBvc2l0aW9uICsgMSB9LAogICAgICB1CiAgICApOwogICAgYShjLCBFLCAhMSksIChuLnZhbHVlID0gYyk7CiAgfQogIHJldHVybiB7IGxvY2F0aW9uOiBuLCBzdGF0ZTogaSwgcHVzaDogbCwgcmVwbGFjZTogbyB9Owp9CmZ1bmN0aW9uIGNyZWF0ZVdlYkhpc3RvcnkoZSkgewogIGUgPSBub3JtYWxpemVCYXNlKGUpOwogIGNvbnN0IHQgPSB1c2VIaXN0b3J5U3RhdGVOYXZpZ2F0aW9uKGUpLAogICAgciA9IHVzZUhpc3RvcnlMaXN0ZW5lcnMoZSwgdC5zdGF0ZSwgdC5sb2NhdGlvbiwgdC5yZXBsYWNlKTsKICBmdW5jdGlvbiBuKGEsIG8gPSAhMCkgewogICAgbyB8fCByLnBhdXNlTGlzdGVuZXJzKCksIGhpc3RvcnkuZ28oYSk7CiAgfQogIGNvbnN0IGkgPSBhc3NpZ24oCiAgICB7IGxvY2F0aW9uOiAiIiwgYmFzZTogZSwgZ286IG4sIGNyZWF0ZUhyZWY6IGNyZWF0ZUhyZWYuYmluZChudWxsLCBlKSB9LAogICAgdCwKICAgIHIKICApOwogIHJldHVybiAoCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwgImxvY2F0aW9uIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiB0LmxvY2F0aW9uLnZhbHVlLAogICAgfSksCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwgInN0YXRlIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiAoKSA9PiB0LnN0YXRlLnZhbHVlLAogICAgfSksCiAgICBpCiAgKTsKfQpmdW5jdGlvbiBpc1JvdXRlTG9jYXRpb24oZSkgewogIHJldHVybiB0eXBlb2YgZSA9PSAic3RyaW5nIiB8fCAoZSAmJiB0eXBlb2YgZSA9PSAib2JqZWN0Iik7Cn0KZnVuY3Rpb24gaXNSb3V0ZU5hbWUoZSkgewogIHJldHVybiB0eXBlb2YgZSA9PSAic3RyaW5nIiB8fCB0eXBlb2YgZSA9PSAic3ltYm9sIjsKfQpjb25zdCBOYXZpZ2F0aW9uRmFpbHVyZVN5bWJvbCA9IFN5bWJvbCgiIik7CnZhciBOYXZpZ2F0aW9uRmFpbHVyZVR5cGU7CihmdW5jdGlvbiAoZSkgewogIChlWyhlLmFib3J0ZWQgPSA0KV0gPSAiYWJvcnRlZCIpLAogICAgKGVbKGUuY2FuY2VsbGVkID0gOCldID0gImNhbmNlbGxlZCIpLAogICAgKGVbKGUuZHVwbGljYXRlZCA9IDE2KV0gPSAiZHVwbGljYXRlZCIpOwp9KShOYXZpZ2F0aW9uRmFpbHVyZVR5cGUgfHwgKE5hdmlnYXRpb25GYWlsdXJlVHlwZSA9IHt9KSk7CmZ1bmN0aW9uIGNyZWF0ZVJvdXRlckVycm9yKGUsIHQpIHsKICByZXR1cm4gYXNzaWduKG5ldyBFcnJvcigpLCB7IHR5cGU6IGUsIFtOYXZpZ2F0aW9uRmFpbHVyZVN5bWJvbF06ICEwIH0sIHQpOwp9CmZ1bmN0aW9uIGlzTmF2aWdhdGlvbkZhaWx1cmUoZSwgdCkgewogIHJldHVybiAoCiAgICBlIGluc3RhbmNlb2YgRXJyb3IgJiYKICAgIE5hdmlnYXRpb25GYWlsdXJlU3ltYm9sIGluIGUgJiYKICAgICh0ID09IG51bGwgfHwgISEoZS50eXBlICYgdCkpCiAgKTsKfQpjb25zdCBCQVNFX1BBUkFNX1BBVFRFUk4gPSAiW14vXSs/IiwKICBCQVNFX1BBVEhfUEFSU0VSX09QVElPTlMgPSB7IHNlbnNpdGl2ZTogITEsIHN0cmljdDogITEsIHN0YXJ0OiAhMCwgZW5kOiAhMCB9LAogIFJFR0VYX0NIQVJTX1JFID0gL1suKyo/XiR7fSgpW1xdL1xcXS9nOwpmdW5jdGlvbiB0b2tlbnNUb1BhcnNlcihlLCB0KSB7CiAgY29uc3QgciA9IGFzc2lnbih7fSwgQkFTRV9QQVRIX1BBUlNFUl9PUFRJT05TLCB0KSwKICAgIG4gPSBbXTsKICBsZXQgaSA9IHIuc3RhcnQgPyAiXiIgOiAiIjsKICBjb25zdCBhID0gW107CiAgZm9yIChjb25zdCB1IG9mIGUpIHsKICAgIGNvbnN0IGQgPSB1Lmxlbmd0aCA/IFtdIDogWzkwXTsKICAgIHIuc3RyaWN0ICYmICF1Lmxlbmd0aCAmJiAoaSArPSAiLyIpOwogICAgZm9yIChsZXQgRSA9IDA7IEUgPCB1Lmxlbmd0aDsgRSsrKSB7CiAgICAgIGNvbnN0IGIgPSB1W0VdOwogICAgICBsZXQgUCA9IDQwICsgKHIuc2Vuc2l0aXZlID8gMC4yNSA6IDApOwogICAgICBpZiAoYi50eXBlID09PSAwKQogICAgICAgIEUgfHwgKGkgKz0gIi8iKSwKICAgICAgICAgIChpICs9IGIudmFsdWUucmVwbGFjZShSRUdFWF9DSEFSU19SRSwgIlxcJCYiKSksCiAgICAgICAgICAoUCArPSA0MCk7CiAgICAgIGVsc2UgaWYgKGIudHlwZSA9PT0gMSkgewogICAgICAgIGNvbnN0IHsgdmFsdWU6IFIsIHJlcGVhdGFibGU6IFQsIG9wdGlvbmFsOiBNLCByZWdleHA6IHggfSA9IGI7CiAgICAgICAgYS5wdXNoKHsgbmFtZTogUiwgcmVwZWF0YWJsZTogVCwgb3B0aW9uYWw6IE0gfSk7CiAgICAgICAgY29uc3QgayA9IHggfHwgQkFTRV9QQVJBTV9QQVRURVJOOwogICAgICAgIGlmIChrICE9PSBCQVNFX1BBUkFNX1BBVFRFUk4pIHsKICAgICAgICAgIFAgKz0gMTA7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBuZXcgUmVnRXhwKGAoJHtrfSlgKTsKICAgICAgICAgIH0gY2F0Y2ggKEEpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAgIGBJbnZhbGlkIGN1c3RvbSBSZWdFeHAgZm9yIHBhcmFtICIke1J9IiAoJHtrfSk6IGAgKyBBLm1lc3NhZ2UKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGV0IFMgPSBUID8gYCgoPzoke2t9KSg/Oi8oPzoke2t9KSkqKWAgOiBgKCR7a30pYDsKICAgICAgICBFIHx8IChTID0gTSAmJiB1Lmxlbmd0aCA8IDIgPyBgKD86LyR7U30pYCA6ICIvIiArIFMpLAogICAgICAgICAgTSAmJiAoUyArPSAiPyIpLAogICAgICAgICAgKGkgKz0gUyksCiAgICAgICAgICAoUCArPSAyMCksCiAgICAgICAgICBNICYmIChQICs9IC04KSwKICAgICAgICAgIFQgJiYgKFAgKz0gLTIwKSwKICAgICAgICAgIGsgPT09ICIuKiIgJiYgKFAgKz0gLTUwKTsKICAgICAgfQogICAgICBkLnB1c2goUCk7CiAgICB9CiAgICBuLnB1c2goZCk7CiAgfQogIGlmIChyLnN0cmljdCAmJiByLmVuZCkgewogICAgY29uc3QgdSA9IG4ubGVuZ3RoIC0gMTsKICAgIG5bdV1bblt1XS5sZW5ndGggLSAxXSArPSAwLjcwMDAwMDAwMDAwMDAwMDE7CiAgfQogIHIuc3RyaWN0IHx8IChpICs9ICIvPyIpLAogICAgci5lbmQgPyAoaSArPSAiJCIpIDogci5zdHJpY3QgJiYgIWkuZW5kc1dpdGgoIi8iKSAmJiAoaSArPSAiKD86L3wkKSIpOwogIGNvbnN0IG8gPSBuZXcgUmVnRXhwKGksIHIuc2Vuc2l0aXZlID8gIiIgOiAiaSIpOwogIGZ1bmN0aW9uIGwodSkgewogICAgY29uc3QgZCA9IHUubWF0Y2gobyksCiAgICAgIEUgPSB7fTsKICAgIGlmICghZCkgcmV0dXJuIG51bGw7CiAgICBmb3IgKGxldCBiID0gMTsgYiA8IGQubGVuZ3RoOyBiKyspIHsKICAgICAgY29uc3QgUCA9IGRbYl0gfHwgIiIsCiAgICAgICAgUiA9IGFbYiAtIDFdOwogICAgICBFW1IubmFtZV0gPSBQICYmIFIucmVwZWF0YWJsZSA/IFAuc3BsaXQoIi8iKSA6IFA7CiAgICB9CiAgICByZXR1cm4gRTsKICB9CiAgZnVuY3Rpb24gYyh1KSB7CiAgICBsZXQgZCA9ICIiLAogICAgICBFID0gITE7CiAgICBmb3IgKGNvbnN0IGIgb2YgZSkgewogICAgICAoIUUgfHwgIWQuZW5kc1dpdGgoIi8iKSkgJiYgKGQgKz0gIi8iKSwgKEUgPSAhMSk7CiAgICAgIGZvciAoY29uc3QgUCBvZiBiKQogICAgICAgIGlmIChQLnR5cGUgPT09IDApIGQgKz0gUC52YWx1ZTsKICAgICAgICBlbHNlIGlmIChQLnR5cGUgPT09IDEpIHsKICAgICAgICAgIGNvbnN0IHsgdmFsdWU6IFIsIHJlcGVhdGFibGU6IFQsIG9wdGlvbmFsOiBNIH0gPSBQLAogICAgICAgICAgICB4ID0gUiBpbiB1ID8gdVtSXSA6ICIiOwogICAgICAgICAgaWYgKGlzQXJyYXkoeCkgJiYgIVQpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgICBgUHJvdmlkZWQgcGFyYW0gIiR7Un0iIGlzIGFuIGFycmF5IGJ1dCBpdCBpcyBub3QgcmVwZWF0YWJsZSAoKiBvciArIG1vZGlmaWVycylgCiAgICAgICAgICAgICk7CiAgICAgICAgICBjb25zdCBrID0gaXNBcnJheSh4KSA/IHguam9pbigiLyIpIDogeDsKICAgICAgICAgIGlmICghaykKICAgICAgICAgICAgaWYgKE0pCiAgICAgICAgICAgICAgYi5sZW5ndGggPCAyICYmCiAgICAgICAgICAgICAgICAoZC5lbmRzV2l0aCgiLyIpID8gKGQgPSBkLnNsaWNlKDAsIC0xKSkgOiAoRSA9ICEwKSk7CiAgICAgICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIHBhcmFtICIke1J9ImApOwogICAgICAgICAgZCArPSBrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBkIHx8ICIvIjsKICB9CiAgcmV0dXJuIHsgcmU6IG8sIHNjb3JlOiBuLCBrZXlzOiBhLCBwYXJzZTogbCwgc3RyaW5naWZ5OiBjIH07Cn0KZnVuY3Rpb24gY29tcGFyZVNjb3JlQXJyYXkoZSwgdCkgewogIGxldCByID0gMDsKICBmb3IgKDsgciA8IGUubGVuZ3RoICYmIHIgPCB0Lmxlbmd0aDspIHsKICAgIGNvbnN0IG4gPSB0W3JdIC0gZVtyXTsKICAgIGlmIChuKSByZXR1cm4gbjsKICAgIHIrKzsKICB9CiAgcmV0dXJuIGUubGVuZ3RoIDwgdC5sZW5ndGgKICAgID8gZS5sZW5ndGggPT09IDEgJiYgZVswXSA9PT0gODAKICAgICAgPyAtMQogICAgICA6IDEKICAgIDogZS5sZW5ndGggPiB0Lmxlbmd0aAogICAgICA/IHQubGVuZ3RoID09PSAxICYmIHRbMF0gPT09IDgwCiAgICAgICAgPyAxCiAgICAgICAgOiAtMQogICAgICA6IDA7Cn0KZnVuY3Rpb24gY29tcGFyZVBhdGhQYXJzZXJTY29yZShlLCB0KSB7CiAgbGV0IHIgPSAwOwogIGNvbnN0IG4gPSBlLnNjb3JlLAogICAgaSA9IHQuc2NvcmU7CiAgZm9yICg7IHIgPCBuLmxlbmd0aCAmJiByIDwgaS5sZW5ndGg7KSB7CiAgICBjb25zdCBhID0gY29tcGFyZVNjb3JlQXJyYXkobltyXSwgaVtyXSk7CiAgICBpZiAoYSkgcmV0dXJuIGE7CiAgICByKys7CiAgfQogIGlmIChNYXRoLmFicyhpLmxlbmd0aCAtIG4ubGVuZ3RoKSA9PT0gMSkgewogICAgaWYgKGlzTGFzdFNjb3JlTmVnYXRpdmUobikpIHJldHVybiAxOwogICAgaWYgKGlzTGFzdFNjb3JlTmVnYXRpdmUoaSkpIHJldHVybiAtMTsKICB9CiAgcmV0dXJuIGkubGVuZ3RoIC0gbi5sZW5ndGg7Cn0KZnVuY3Rpb24gaXNMYXN0U2NvcmVOZWdhdGl2ZShlKSB7CiAgY29uc3QgdCA9IGVbZS5sZW5ndGggLSAxXTsKICByZXR1cm4gZS5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSA8IDA7Cn0KY29uc3QgUk9PVF9UT0tFTiA9IHsgdHlwZTogMCwgdmFsdWU6ICIiIH0sCiAgVkFMSURfUEFSQU1fUkUgPSAvW2EtekEtWjAtOV9dLzsKZnVuY3Rpb24gdG9rZW5pemVQYXRoKGUpIHsKICBpZiAoIWUpIHJldHVybiBbW11dOwogIGlmIChlID09PSAiLyIpIHJldHVybiBbW1JPT1RfVE9LRU5dXTsKICBpZiAoIWUuc3RhcnRzV2l0aCgiLyIpKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGF0aCAiJHtlfSJgKTsKICBmdW5jdGlvbiB0KFApIHsKICAgIHRocm93IG5ldyBFcnJvcihgRVJSICgke3J9KS8iJHt1fSI6ICR7UH1gKTsKICB9CiAgbGV0IHIgPSAwLAogICAgbiA9IHI7CiAgY29uc3QgaSA9IFtdOwogIGxldCBhOwogIGZ1bmN0aW9uIG8oKSB7CiAgICBhICYmIGkucHVzaChhKSwgKGEgPSBbXSk7CiAgfQogIGxldCBsID0gMCwKICAgIGMsCiAgICB1ID0gIiIsCiAgICBkID0gIiI7CiAgZnVuY3Rpb24gRSgpIHsKICAgIHUgJiYKICAgICAgKHIgPT09IDAKICAgICAgICA/IGEucHVzaCh7IHR5cGU6IDAsIHZhbHVlOiB1IH0pCiAgICAgICAgOiByID09PSAxIHx8IHIgPT09IDIgfHwgciA9PT0gMwogICAgICAgICAgPyAoYS5sZW5ndGggPiAxICYmCiAgICAgICAgICAgIChjID09PSAiKiIgfHwgYyA9PT0gIisiKSAmJgogICAgICAgICAgICB0KAogICAgICAgICAgICAgIGBBIHJlcGVhdGFibGUgcGFyYW0gKCR7dX0pIG11c3QgYmUgYWxvbmUgaW4gaXRzIHNlZ21lbnQuIGVnOiAnLzppZHMrLmAKICAgICAgICAgICAgKSwKICAgICAgICAgICAgYS5wdXNoKHsKICAgICAgICAgICAgICB0eXBlOiAxLAogICAgICAgICAgICAgIHZhbHVlOiB1LAogICAgICAgICAgICAgIHJlZ2V4cDogZCwKICAgICAgICAgICAgICByZXBlYXRhYmxlOiBjID09PSAiKiIgfHwgYyA9PT0gIisiLAogICAgICAgICAgICAgIG9wdGlvbmFsOiBjID09PSAiKiIgfHwgYyA9PT0gIj8iLAogICAgICAgICAgICB9KSkKICAgICAgICAgIDogdCgiSW52YWxpZCBzdGF0ZSB0byBjb25zdW1lIGJ1ZmZlciIpLAogICAgICAgICh1ID0gIiIpKTsKICB9CiAgZnVuY3Rpb24gYigpIHsKICAgIHUgKz0gYzsKICB9CiAgZm9yICg7IGwgPCBlLmxlbmd0aDspIHsKICAgIGlmICgoKGMgPSBlW2wrK10pLCBjID09PSAiXFwiICYmIHIgIT09IDIpKSB7CiAgICAgIChuID0gciksIChyID0gNCk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgc3dpdGNoIChyKSB7CiAgICAgIGNhc2UgMDoKICAgICAgICBjID09PSAiLyIgPyAodSAmJiBFKCksIG8oKSkgOiBjID09PSAiOiIgPyAoRSgpLCAociA9IDEpKSA6IGIoKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSA0OgogICAgICAgIGIoKSwgKHIgPSBuKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAxOgogICAgICAgIGMgPT09ICIoIgogICAgICAgICAgPyAociA9IDIpCiAgICAgICAgICA6IFZBTElEX1BBUkFNX1JFLnRlc3QoYykKICAgICAgICAgICAgPyBiKCkKICAgICAgICAgICAgOiAoRSgpLCAociA9IDApLCBjICE9PSAiKiIgJiYgYyAhPT0gIj8iICYmIGMgIT09ICIrIiAmJiBsLS0pOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIDI6CiAgICAgICAgYyA9PT0gIikiCiAgICAgICAgICA/IGRbZC5sZW5ndGggLSAxXSA9PSAiXFwiCiAgICAgICAgICAgID8gKGQgPSBkLnNsaWNlKDAsIC0xKSArIGMpCiAgICAgICAgICAgIDogKHIgPSAzKQogICAgICAgICAgOiAoZCArPSBjKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAzOgogICAgICAgIEUoKSwgKHIgPSAwKSwgYyAhPT0gIioiICYmIGMgIT09ICI/IiAmJiBjICE9PSAiKyIgJiYgbC0tLCAoZCA9ICIiKTsKICAgICAgICBicmVhazsKICAgICAgZGVmYXVsdDoKICAgICAgICB0KCJVbmtub3duIHN0YXRlIik7CiAgICAgICAgYnJlYWs7CiAgICB9CiAgfQogIHJldHVybiByID09PSAyICYmIHQoYFVuZmluaXNoZWQgY3VzdG9tIFJlZ0V4cCBmb3IgcGFyYW0gIiR7dX0iYCksIEUoKSwgbygpLCBpOwp9CmZ1bmN0aW9uIGNyZWF0ZVJvdXRlUmVjb3JkTWF0Y2hlcihlLCB0LCByKSB7CiAgY29uc3QgbiA9IHRva2Vuc1RvUGFyc2VyKHRva2VuaXplUGF0aChlLnBhdGgpLCByKSwKICAgIGkgPSBhc3NpZ24obiwgeyByZWNvcmQ6IGUsIHBhcmVudDogdCwgY2hpbGRyZW46IFtdLCBhbGlhczogW10gfSk7CiAgcmV0dXJuIHQgJiYgIWkucmVjb3JkLmFsaWFzT2YgPT0gIXQucmVjb3JkLmFsaWFzT2YgJiYgdC5jaGlsZHJlbi5wdXNoKGkpLCBpOwp9CmZ1bmN0aW9uIGNyZWF0ZVJvdXRlck1hdGNoZXIoZSwgdCkgewogIGNvbnN0IHIgPSBbXSwKICAgIG4gPSBuZXcgTWFwKCk7CiAgdCA9IG1lcmdlT3B0aW9ucyh7IHN0cmljdDogITEsIGVuZDogITAsIHNlbnNpdGl2ZTogITEgfSwgdCk7CiAgZnVuY3Rpb24gaShFKSB7CiAgICByZXR1cm4gbi5nZXQoRSk7CiAgfQogIGZ1bmN0aW9uIGEoRSwgYiwgUCkgewogICAgY29uc3QgUiA9ICFQLAogICAgICBUID0gbm9ybWFsaXplUm91dGVSZWNvcmQoRSk7CiAgICBULmFsaWFzT2YgPSBQICYmIFAucmVjb3JkOwogICAgY29uc3QgTSA9IG1lcmdlT3B0aW9ucyh0LCBFKSwKICAgICAgeCA9IFtUXTsKICAgIGlmICgiYWxpYXMiIGluIEUpIHsKICAgICAgY29uc3QgQSA9IHR5cGVvZiBFLmFsaWFzID09ICJzdHJpbmciID8gW0UuYWxpYXNdIDogRS5hbGlhczsKICAgICAgZm9yIChjb25zdCBPIG9mIEEpCiAgICAgICAgeC5wdXNoKAogICAgICAgICAgbm9ybWFsaXplUm91dGVSZWNvcmQoCiAgICAgICAgICAgIGFzc2lnbih7fSwgVCwgewogICAgICAgICAgICAgIGNvbXBvbmVudHM6IFAgPyBQLnJlY29yZC5jb21wb25lbnRzIDogVC5jb21wb25lbnRzLAogICAgICAgICAgICAgIHBhdGg6IE8sCiAgICAgICAgICAgICAgYWxpYXNPZjogUCA/IFAucmVjb3JkIDogVCwKICAgICAgICAgICAgfSkKICAgICAgICAgICkKICAgICAgICApOwogICAgfQogICAgbGV0IGssIFM7CiAgICBmb3IgKGNvbnN0IEEgb2YgeCkgewogICAgICBjb25zdCB7IHBhdGg6IE8gfSA9IEE7CiAgICAgIGlmIChiICYmIE9bMF0gIT09ICIvIikgewogICAgICAgIGNvbnN0IEYgPSBiLnJlY29yZC5wYXRoLAogICAgICAgICAgRCA9IEZbRi5sZW5ndGggLSAxXSA9PT0gIi8iID8gIiIgOiAiLyI7CiAgICAgICAgQS5wYXRoID0gYi5yZWNvcmQucGF0aCArIChPICYmIEQgKyBPKTsKICAgICAgfQogICAgICBpZiAoCiAgICAgICAgKChrID0gY3JlYXRlUm91dGVSZWNvcmRNYXRjaGVyKEEsIGIsIE0pKSwKICAgICAgICAgIFAKICAgICAgICAgICAgPyBQLmFsaWFzLnB1c2goaykKICAgICAgICAgICAgOiAoKFMgPSBTIHx8IGspLAogICAgICAgICAgICAgIFMgIT09IGsgJiYgUy5hbGlhcy5wdXNoKGspLAogICAgICAgICAgICAgIFIgJiYgRS5uYW1lICYmICFpc0FsaWFzUmVjb3JkKGspICYmIG8oRS5uYW1lKSksCiAgICAgICAgICBpc01hdGNoYWJsZShrKSAmJiBjKGspLAogICAgICAgICAgVC5jaGlsZHJlbikKICAgICAgKSB7CiAgICAgICAgY29uc3QgRiA9IFQuY2hpbGRyZW47CiAgICAgICAgZm9yIChsZXQgRCA9IDA7IEQgPCBGLmxlbmd0aDsgRCsrKSBhKEZbRF0sIGssIFAgJiYgUC5jaGlsZHJlbltEXSk7CiAgICAgIH0KICAgICAgUCA9IFAgfHwgazsKICAgIH0KICAgIHJldHVybiBTCiAgICAgID8gKCkgPT4gewogICAgICAgIG8oUyk7CiAgICAgIH0KICAgICAgOiBub29wOwogIH0KICBmdW5jdGlvbiBvKEUpIHsKICAgIGlmIChpc1JvdXRlTmFtZShFKSkgewogICAgICBjb25zdCBiID0gbi5nZXQoRSk7CiAgICAgIGIgJiYKICAgICAgICAobi5kZWxldGUoRSksCiAgICAgICAgICByLnNwbGljZShyLmluZGV4T2YoYiksIDEpLAogICAgICAgICAgYi5jaGlsZHJlbi5mb3JFYWNoKG8pLAogICAgICAgICAgYi5hbGlhcy5mb3JFYWNoKG8pKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnN0IGIgPSByLmluZGV4T2YoRSk7CiAgICAgIGIgPiAtMSAmJgogICAgICAgIChyLnNwbGljZShiLCAxKSwKICAgICAgICAgIEUucmVjb3JkLm5hbWUgJiYgbi5kZWxldGUoRS5yZWNvcmQubmFtZSksCiAgICAgICAgICBFLmNoaWxkcmVuLmZvckVhY2gobyksCiAgICAgICAgICBFLmFsaWFzLmZvckVhY2gobykpOwogICAgfQogIH0KICBmdW5jdGlvbiBsKCkgewogICAgcmV0dXJuIHI7CiAgfQogIGZ1bmN0aW9uIGMoRSkgewogICAgY29uc3QgYiA9IGZpbmRJbnNlcnRpb25JbmRleChFLCByKTsKICAgIHIuc3BsaWNlKGIsIDAsIEUpLAogICAgICBFLnJlY29yZC5uYW1lICYmICFpc0FsaWFzUmVjb3JkKEUpICYmIG4uc2V0KEUucmVjb3JkLm5hbWUsIEUpOwogIH0KICBmdW5jdGlvbiB1KEUsIGIpIHsKICAgIGxldCBQLAogICAgICBSID0ge30sCiAgICAgIFQsCiAgICAgIE07CiAgICBpZiAoIm5hbWUiIGluIEUgJiYgRS5uYW1lKSB7CiAgICAgIGlmICgoKFAgPSBuLmdldChFLm5hbWUpKSwgIVApKQogICAgICAgIHRocm93IGNyZWF0ZVJvdXRlckVycm9yKDEsIHsgbG9jYXRpb246IEUgfSk7CiAgICAgIChNID0gUC5yZWNvcmQubmFtZSksCiAgICAgICAgKFIgPSBhc3NpZ24oCiAgICAgICAgICBwYXJhbXNGcm9tTG9jYXRpb24oCiAgICAgICAgICAgIGIucGFyYW1zLAogICAgICAgICAgICBQLmtleXMKICAgICAgICAgICAgICAuZmlsdGVyKChTKSA9PiAhUy5vcHRpb25hbCkKICAgICAgICAgICAgICAuY29uY2F0KFAucGFyZW50ID8gUC5wYXJlbnQua2V5cy5maWx0ZXIoKFMpID0+IFMub3B0aW9uYWwpIDogW10pCiAgICAgICAgICAgICAgLm1hcCgoUykgPT4gUy5uYW1lKQogICAgICAgICAgKSwKICAgICAgICAgIEUucGFyYW1zICYmCiAgICAgICAgICBwYXJhbXNGcm9tTG9jYXRpb24oCiAgICAgICAgICAgIEUucGFyYW1zLAogICAgICAgICAgICBQLmtleXMubWFwKChTKSA9PiBTLm5hbWUpCiAgICAgICAgICApCiAgICAgICAgKSksCiAgICAgICAgKFQgPSBQLnN0cmluZ2lmeShSKSk7CiAgICB9IGVsc2UgaWYgKEUucGF0aCAhPSBudWxsKQogICAgICAoVCA9IEUucGF0aCksCiAgICAgICAgKFAgPSByLmZpbmQoKFMpID0+IFMucmUudGVzdChUKSkpLAogICAgICAgIFAgJiYgKChSID0gUC5wYXJzZShUKSksIChNID0gUC5yZWNvcmQubmFtZSkpOwogICAgZWxzZSB7CiAgICAgIGlmICgoKFAgPSBiLm5hbWUgPyBuLmdldChiLm5hbWUpIDogci5maW5kKChTKSA9PiBTLnJlLnRlc3QoYi5wYXRoKSkpLCAhUCkpCiAgICAgICAgdGhyb3cgY3JlYXRlUm91dGVyRXJyb3IoMSwgeyBsb2NhdGlvbjogRSwgY3VycmVudExvY2F0aW9uOiBiIH0pOwogICAgICAoTSA9IFAucmVjb3JkLm5hbWUpLAogICAgICAgIChSID0gYXNzaWduKHt9LCBiLnBhcmFtcywgRS5wYXJhbXMpKSwKICAgICAgICAoVCA9IFAuc3RyaW5naWZ5KFIpKTsKICAgIH0KICAgIGNvbnN0IHggPSBbXTsKICAgIGxldCBrID0gUDsKICAgIGZvciAoOyBrOykgeC51bnNoaWZ0KGsucmVjb3JkKSwgKGsgPSBrLnBhcmVudCk7CiAgICByZXR1cm4gewogICAgICBuYW1lOiBNLAogICAgICBwYXRoOiBULAogICAgICBwYXJhbXM6IFIsCiAgICAgIG1hdGNoZWQ6IHgsCiAgICAgIG1ldGE6IG1lcmdlTWV0YUZpZWxkcyh4KSwKICAgIH07CiAgfQogIGUuZm9yRWFjaCgoRSkgPT4gYShFKSk7CiAgZnVuY3Rpb24gZCgpIHsKICAgIChyLmxlbmd0aCA9IDApLCBuLmNsZWFyKCk7CiAgfQogIHJldHVybiB7CiAgICBhZGRSb3V0ZTogYSwKICAgIHJlc29sdmU6IHUsCiAgICByZW1vdmVSb3V0ZTogbywKICAgIGNsZWFyUm91dGVzOiBkLAogICAgZ2V0Um91dGVzOiBsLAogICAgZ2V0UmVjb3JkTWF0Y2hlcjogaSwKICB9Owp9CmZ1bmN0aW9uIHBhcmFtc0Zyb21Mb2NhdGlvbihlLCB0KSB7CiAgY29uc3QgciA9IHt9OwogIGZvciAoY29uc3QgbiBvZiB0KSBuIGluIGUgJiYgKHJbbl0gPSBlW25dKTsKICByZXR1cm4gcjsKfQpmdW5jdGlvbiBub3JtYWxpemVSb3V0ZVJlY29yZChlKSB7CiAgY29uc3QgdCA9IHsKICAgIHBhdGg6IGUucGF0aCwKICAgIHJlZGlyZWN0OiBlLnJlZGlyZWN0LAogICAgbmFtZTogZS5uYW1lLAogICAgbWV0YTogZS5tZXRhIHx8IHt9LAogICAgYWxpYXNPZjogZS5hbGlhc09mLAogICAgYmVmb3JlRW50ZXI6IGUuYmVmb3JlRW50ZXIsCiAgICBwcm9wczogbm9ybWFsaXplUmVjb3JkUHJvcHMoZSksCiAgICBjaGlsZHJlbjogZS5jaGlsZHJlbiB8fCBbXSwKICAgIGluc3RhbmNlczoge30sCiAgICBsZWF2ZUd1YXJkczogbmV3IFNldCgpLAogICAgdXBkYXRlR3VhcmRzOiBuZXcgU2V0KCksCiAgICBlbnRlckNhbGxiYWNrczoge30sCiAgICBjb21wb25lbnRzOgogICAgICAiY29tcG9uZW50cyIgaW4gZQogICAgICAgID8gZS5jb21wb25lbnRzIHx8IG51bGwKICAgICAgICA6IGUuY29tcG9uZW50ICYmIHsgZGVmYXVsdDogZS5jb21wb25lbnQgfSwKICB9OwogIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgIm1vZHMiLCB7IHZhbHVlOiB7fSB9KSwgdDsKfQpmdW5jdGlvbiBub3JtYWxpemVSZWNvcmRQcm9wcyhlKSB7CiAgY29uc3QgdCA9IHt9LAogICAgciA9IGUucHJvcHMgfHwgITE7CiAgaWYgKCJjb21wb25lbnQiIGluIGUpIHQuZGVmYXVsdCA9IHI7CiAgZWxzZSBmb3IgKGNvbnN0IG4gaW4gZS5jb21wb25lbnRzKSB0W25dID0gdHlwZW9mIHIgPT0gIm9iamVjdCIgPyByW25dIDogcjsKICByZXR1cm4gdDsKfQpmdW5jdGlvbiBpc0FsaWFzUmVjb3JkKGUpIHsKICBmb3IgKDsgZTspIHsKICAgIGlmIChlLnJlY29yZC5hbGlhc09mKSByZXR1cm4gITA7CiAgICBlID0gZS5wYXJlbnQ7CiAgfQogIHJldHVybiAhMTsKfQpmdW5jdGlvbiBtZXJnZU1ldGFGaWVsZHMoZSkgewogIHJldHVybiBlLnJlZHVjZSgodCwgcikgPT4gYXNzaWduKHQsIHIubWV0YSksIHt9KTsKfQpmdW5jdGlvbiBtZXJnZU9wdGlvbnMoZSwgdCkgewogIGNvbnN0IHIgPSB7fTsKICBmb3IgKGNvbnN0IG4gaW4gZSkgcltuXSA9IG4gaW4gdCA/IHRbbl0gOiBlW25dOwogIHJldHVybiByOwp9CmZ1bmN0aW9uIGZpbmRJbnNlcnRpb25JbmRleChlLCB0KSB7CiAgbGV0IHIgPSAwLAogICAgbiA9IHQubGVuZ3RoOwogIGZvciAoOyByICE9PSBuOykgewogICAgY29uc3QgYSA9IChyICsgbikgPj4gMTsKICAgIGNvbXBhcmVQYXRoUGFyc2VyU2NvcmUoZSwgdFthXSkgPCAwID8gKG4gPSBhKSA6IChyID0gYSArIDEpOwogIH0KICBjb25zdCBpID0gZ2V0SW5zZXJ0aW9uQW5jZXN0b3IoZSk7CiAgcmV0dXJuIGkgJiYgKG4gPSB0Lmxhc3RJbmRleE9mKGksIG4gLSAxKSksIG47Cn0KZnVuY3Rpb24gZ2V0SW5zZXJ0aW9uQW5jZXN0b3IoZSkgewogIGxldCB0ID0gZTsKICBmb3IgKDsgKHQgPSB0LnBhcmVudCk7KQogICAgaWYgKGlzTWF0Y2hhYmxlKHQpICYmIGNvbXBhcmVQYXRoUGFyc2VyU2NvcmUoZSwgdCkgPT09IDApIHJldHVybiB0Owp9CmZ1bmN0aW9uIGlzTWF0Y2hhYmxlKHsgcmVjb3JkOiBlIH0pIHsKICByZXR1cm4gISEoCiAgICBlLm5hbWUgfHwKICAgIChlLmNvbXBvbmVudHMgJiYgT2JqZWN0LmtleXMoZS5jb21wb25lbnRzKS5sZW5ndGgpIHx8CiAgICBlLnJlZGlyZWN0CiAgKTsKfQpmdW5jdGlvbiBwYXJzZVF1ZXJ5KGUpIHsKICBjb25zdCB0ID0ge307CiAgaWYgKGUgPT09ICIiIHx8IGUgPT09ICI/IikgcmV0dXJuIHQ7CiAgY29uc3QgbiA9IChlWzBdID09PSAiPyIgPyBlLnNsaWNlKDEpIDogZSkuc3BsaXQoIiYiKTsKICBmb3IgKGxldCBpID0gMDsgaSA8IG4ubGVuZ3RoOyArK2kpIHsKICAgIGNvbnN0IGEgPSBuW2ldLnJlcGxhY2UoUExVU19SRSwgIiAiKSwKICAgICAgbyA9IGEuaW5kZXhPZigiPSIpLAogICAgICBsID0gZGVjb2RlKG8gPCAwID8gYSA6IGEuc2xpY2UoMCwgbykpLAogICAgICBjID0gbyA8IDAgPyBudWxsIDogZGVjb2RlKGEuc2xpY2UobyArIDEpKTsKICAgIGlmIChsIGluIHQpIHsKICAgICAgbGV0IHUgPSB0W2xdOwogICAgICBpc0FycmF5KHUpIHx8ICh1ID0gdFtsXSA9IFt1XSksIHUucHVzaChjKTsKICAgIH0gZWxzZSB0W2xdID0gYzsKICB9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gc3RyaW5naWZ5UXVlcnkoZSkgewogIGxldCB0ID0gIiI7CiAgZm9yIChsZXQgciBpbiBlKSB7CiAgICBjb25zdCBuID0gZVtyXTsKICAgIGlmICgoKHIgPSBlbmNvZGVRdWVyeUtleShyKSksIG4gPT0gbnVsbCkpIHsKICAgICAgbiAhPT0gdm9pZCAwICYmICh0ICs9ICh0Lmxlbmd0aCA/ICImIiA6ICIiKSArIHIpOwogICAgICBjb250aW51ZTsKICAgIH0KICAgIChpc0FycmF5KG4pCiAgICAgID8gbi5tYXAoKGEpID0+IGEgJiYgZW5jb2RlUXVlcnlWYWx1ZShhKSkKICAgICAgOiBbbiAmJiBlbmNvZGVRdWVyeVZhbHVlKG4pXQogICAgKS5mb3JFYWNoKChhKSA9PiB7CiAgICAgIGEgIT09IHZvaWQgMCAmJgogICAgICAgICgodCArPSAodC5sZW5ndGggPyAiJiIgOiAiIikgKyByKSwgYSAhPSBudWxsICYmICh0ICs9ICI9IiArIGEpKTsKICAgIH0pOwogIH0KICByZXR1cm4gdDsKfQpmdW5jdGlvbiBub3JtYWxpemVRdWVyeShlKSB7CiAgY29uc3QgdCA9IHt9OwogIGZvciAoY29uc3QgciBpbiBlKSB7CiAgICBjb25zdCBuID0gZVtyXTsKICAgIG4gIT09IHZvaWQgMCAmJgogICAgICAodFtyXSA9IGlzQXJyYXkobikKICAgICAgICA/IG4ubWFwKChpKSA9PiAoaSA9PSBudWxsID8gbnVsbCA6ICIiICsgaSkpCiAgICAgICAgOiBuID09IG51bGwKICAgICAgICAgID8gbgogICAgICAgICAgOiAiIiArIG4pOwogIH0KICByZXR1cm4gdDsKfQpjb25zdCBtYXRjaGVkUm91dGVLZXkgPSBTeW1ib2woIiIpLAogIHZpZXdEZXB0aEtleSA9IFN5bWJvbCgiIiksCiAgcm91dGVyS2V5ID0gU3ltYm9sKCIiKSwKICByb3V0ZUxvY2F0aW9uS2V5ID0gU3ltYm9sKCIiKSwKICByb3V0ZXJWaWV3TG9jYXRpb25LZXkgPSBTeW1ib2woIiIpOwpmdW5jdGlvbiB1c2VDYWxsYmFja3MoKSB7CiAgbGV0IGUgPSBbXTsKICBmdW5jdGlvbiB0KG4pIHsKICAgIHJldHVybiAoCiAgICAgIGUucHVzaChuKSwKICAgICAgKCkgPT4gewogICAgICAgIGNvbnN0IGkgPSBlLmluZGV4T2Yobik7CiAgICAgICAgaSA+IC0xICYmIGUuc3BsaWNlKGksIDEpOwogICAgICB9CiAgICApOwogIH0KICBmdW5jdGlvbiByKCkgewogICAgZSA9IFtdOwogIH0KICByZXR1cm4geyBhZGQ6IHQsIGxpc3Q6ICgpID0+IGUuc2xpY2UoKSwgcmVzZXQ6IHIgfTsKfQpmdW5jdGlvbiBndWFyZFRvUHJvbWlzZUZuKGUsIHQsIHIsIG4sIGksIGEgPSAobykgPT4gbygpKSB7CiAgY29uc3QgbyA9IG4gJiYgKG4uZW50ZXJDYWxsYmFja3NbaV0gPSBuLmVudGVyQ2FsbGJhY2tzW2ldIHx8IFtdKTsKICByZXR1cm4gKCkgPT4KICAgIG5ldyBQcm9taXNlKChsLCBjKSA9PiB7CiAgICAgIGNvbnN0IHUgPSAoYikgPT4gewogICAgICAgIGIgPT09ICExCiAgICAgICAgICA/IGMoY3JlYXRlUm91dGVyRXJyb3IoNCwgeyBmcm9tOiByLCB0bzogdCB9KSkKICAgICAgICAgIDogYiBpbnN0YW5jZW9mIEVycm9yCiAgICAgICAgICAgID8gYyhiKQogICAgICAgICAgICA6IGlzUm91dGVMb2NhdGlvbihiKQogICAgICAgICAgICAgID8gYyhjcmVhdGVSb3V0ZXJFcnJvcigyLCB7IGZyb206IHQsIHRvOiBiIH0pKQogICAgICAgICAgICAgIDogKG8gJiYKICAgICAgICAgICAgICAgIG4uZW50ZXJDYWxsYmFja3NbaV0gPT09IG8gJiYKICAgICAgICAgICAgICAgIHR5cGVvZiBiID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAgIG8ucHVzaChiKSwKICAgICAgICAgICAgICAgIGwoKSk7CiAgICAgIH0sCiAgICAgICAgZCA9IGEoKCkgPT4gZS5jYWxsKG4gJiYgbi5pbnN0YW5jZXNbaV0sIHQsIHIsIHUpKTsKICAgICAgbGV0IEUgPSBQcm9taXNlLnJlc29sdmUoZCk7CiAgICAgIGUubGVuZ3RoIDwgMyAmJiAoRSA9IEUudGhlbih1KSksIEUuY2F0Y2goKGIpID0+IGMoYikpOwogICAgfSk7Cn0KZnVuY3Rpb24gZXh0cmFjdENvbXBvbmVudHNHdWFyZHMoZSwgdCwgciwgbiwgaSA9IChhKSA9PiBhKCkpIHsKICBjb25zdCBhID0gW107CiAgZm9yIChjb25zdCBvIG9mIGUpCiAgICBmb3IgKGNvbnN0IGwgaW4gby5jb21wb25lbnRzKSB7CiAgICAgIGxldCBjID0gby5jb21wb25lbnRzW2xdOwogICAgICBpZiAoISh0ICE9PSAiYmVmb3JlUm91dGVFbnRlciIgJiYgIW8uaW5zdGFuY2VzW2xdKSkKICAgICAgICBpZiAoaXNSb3V0ZUNvbXBvbmVudChjKSkgewogICAgICAgICAgY29uc3QgZCA9IChjLl9fdmNjT3B0cyB8fCBjKVt0XTsKICAgICAgICAgIGQgJiYgYS5wdXNoKGd1YXJkVG9Qcm9taXNlRm4oZCwgciwgbiwgbywgbCwgaSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBsZXQgdSA9IGMoKTsKICAgICAgICAgIGEucHVzaCgoKSA9PgogICAgICAgICAgICB1LnRoZW4oKGQpID0+IHsKICAgICAgICAgICAgICBpZiAoIWQpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgICAgIGBDb3VsZG4ndCByZXNvbHZlIGNvbXBvbmVudCAiJHtsfSIgYXQgIiR7by5wYXRofSJgCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGNvbnN0IEUgPSBpc0VTTW9kdWxlKGQpID8gZC5kZWZhdWx0IDogZDsKICAgICAgICAgICAgICAoby5tb2RzW2xdID0gZCksIChvLmNvbXBvbmVudHNbbF0gPSBFKTsKICAgICAgICAgICAgICBjb25zdCBQID0gKEUuX192Y2NPcHRzIHx8IEUpW3RdOwogICAgICAgICAgICAgIHJldHVybiBQICYmIGd1YXJkVG9Qcm9taXNlRm4oUCwgciwgbiwgbywgbCwgaSkoKTsKICAgICAgICAgICAgfSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogIHJldHVybiBhOwp9CmZ1bmN0aW9uIHVzZUxpbmsoZSkgewogIGNvbnN0IHQgPSBpbmplY3QkMShyb3V0ZXJLZXkpLAogICAgciA9IGluamVjdCQxKHJvdXRlTG9jYXRpb25LZXkpLAogICAgbiA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgY29uc3QgYyA9IHVucmVmKGUudG8pOwogICAgICByZXR1cm4gdC5yZXNvbHZlKGMpOwogICAgfSksCiAgICBpID0gY29tcHV0ZWQoKCkgPT4gewogICAgICBjb25zdCB7IG1hdGNoZWQ6IGMgfSA9IG4udmFsdWUsCiAgICAgICAgeyBsZW5ndGg6IHUgfSA9IGMsCiAgICAgICAgZCA9IGNbdSAtIDFdLAogICAgICAgIEUgPSByLm1hdGNoZWQ7CiAgICAgIGlmICghZCB8fCAhRS5sZW5ndGgpIHJldHVybiAtMTsKICAgICAgY29uc3QgYiA9IEUuZmluZEluZGV4KGlzU2FtZVJvdXRlUmVjb3JkLmJpbmQobnVsbCwgZCkpOwogICAgICBpZiAoYiA+IC0xKSByZXR1cm4gYjsKICAgICAgY29uc3QgUCA9IGdldE9yaWdpbmFsUGF0aChjW3UgLSAyXSk7CiAgICAgIHJldHVybiB1ID4gMSAmJiBnZXRPcmlnaW5hbFBhdGgoZCkgPT09IFAgJiYgRVtFLmxlbmd0aCAtIDFdLnBhdGggIT09IFAKICAgICAgICA/IEUuZmluZEluZGV4KGlzU2FtZVJvdXRlUmVjb3JkLmJpbmQobnVsbCwgY1t1IC0gMl0pKQogICAgICAgIDogYjsKICAgIH0pLAogICAgYSA9IGNvbXB1dGVkKAogICAgICAoKSA9PiBpLnZhbHVlID4gLTEgJiYgaW5jbHVkZXNQYXJhbXMoci5wYXJhbXMsIG4udmFsdWUucGFyYW1zKQogICAgKSwKICAgIG8gPSBjb21wdXRlZCgKICAgICAgKCkgPT4KICAgICAgICBpLnZhbHVlID4gLTEgJiYKICAgICAgICBpLnZhbHVlID09PSByLm1hdGNoZWQubGVuZ3RoIC0gMSAmJgogICAgICAgIGlzU2FtZVJvdXRlTG9jYXRpb25QYXJhbXMoci5wYXJhbXMsIG4udmFsdWUucGFyYW1zKQogICAgKTsKICBmdW5jdGlvbiBsKGMgPSB7fSkgewogICAgaWYgKGd1YXJkRXZlbnQoYykpIHsKICAgICAgY29uc3QgdSA9IHRbdW5yZWYoZS5yZXBsYWNlKSA/ICJyZXBsYWNlIiA6ICJwdXNoIl0odW5yZWYoZS50bykpLmNhdGNoKAogICAgICAgIG5vb3AKICAgICAgKTsKICAgICAgcmV0dXJuICgKICAgICAgICBlLnZpZXdUcmFuc2l0aW9uICYmCiAgICAgICAgdHlwZW9mIGRvY3VtZW50IDwgInUiICYmCiAgICAgICAgInN0YXJ0Vmlld1RyYW5zaXRpb24iIGluIGRvY3VtZW50ICYmCiAgICAgICAgZG9jdW1lbnQuc3RhcnRWaWV3VHJhbnNpdGlvbigoKSA9PiB1KSwKICAgICAgICB1CiAgICAgICk7CiAgICB9CiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CiAgfQogIHJldHVybiB7CiAgICByb3V0ZTogbiwKICAgIGhyZWY6IGNvbXB1dGVkKCgpID0+IG4udmFsdWUuaHJlZiksCiAgICBpc0FjdGl2ZTogYSwKICAgIGlzRXhhY3RBY3RpdmU6IG8sCiAgICBuYXZpZ2F0ZTogbCwKICB9Owp9CmZ1bmN0aW9uIHByZWZlclNpbmdsZVZOb2RlKGUpIHsKICByZXR1cm4gZS5sZW5ndGggPT09IDEgPyBlWzBdIDogZTsKfQpjb25zdCBSb3V0ZXJMaW5rSW1wbCA9IGRlZmluZUNvbXBvbmVudCQxKHsKICBuYW1lOiAiUm91dGVyTGluayIsCiAgY29tcGF0Q29uZmlnOiB7IE1PREU6IDMgfSwKICBwcm9wczogewogICAgdG86IHsgdHlwZTogW1N0cmluZywgT2JqZWN0XSwgcmVxdWlyZWQ6ICEwIH0sCiAgICByZXBsYWNlOiBCb29sZWFuLAogICAgYWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGV4YWN0QWN0aXZlQ2xhc3M6IFN0cmluZywKICAgIGN1c3RvbTogQm9vbGVhbiwKICAgIGFyaWFDdXJyZW50VmFsdWU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAicGFnZSIgfSwKICB9LAogIHVzZUxpbmssCiAgc2V0dXAoZSwgeyBzbG90czogdCB9KSB7CiAgICBjb25zdCByID0gcmVhY3RpdmUodXNlTGluayhlKSksCiAgICAgIHsgb3B0aW9uczogbiB9ID0gaW5qZWN0JDEocm91dGVyS2V5KSwKICAgICAgaSA9IGNvbXB1dGVkKCgpID0+ICh7CiAgICAgICAgW2dldExpbmtDbGFzcygKICAgICAgICAgIGUuYWN0aXZlQ2xhc3MsCiAgICAgICAgICBuLmxpbmtBY3RpdmVDbGFzcywKICAgICAgICAgICJyb3V0ZXItbGluay1hY3RpdmUiCiAgICAgICAgKV06IHIuaXNBY3RpdmUsCiAgICAgICAgW2dldExpbmtDbGFzcygKICAgICAgICAgIGUuZXhhY3RBY3RpdmVDbGFzcywKICAgICAgICAgIG4ubGlua0V4YWN0QWN0aXZlQ2xhc3MsCiAgICAgICAgICAicm91dGVyLWxpbmstZXhhY3QtYWN0aXZlIgogICAgICAgICldOiByLmlzRXhhY3RBY3RpdmUsCiAgICAgIH0pKTsKICAgIHJldHVybiAoKSA9PiB7CiAgICAgIGNvbnN0IGEgPSB0LmRlZmF1bHQgJiYgcHJlZmVyU2luZ2xlVk5vZGUodC5kZWZhdWx0KHIpKTsKICAgICAgcmV0dXJuIGUuY3VzdG9tCiAgICAgICAgPyBhCiAgICAgICAgOiBoJDIoCiAgICAgICAgICAiYSIsCiAgICAgICAgICB7CiAgICAgICAgICAgICJhcmlhLWN1cnJlbnQiOiByLmlzRXhhY3RBY3RpdmUgPyBlLmFyaWFDdXJyZW50VmFsdWUgOiBudWxsLAogICAgICAgICAgICBocmVmOiByLmhyZWYsCiAgICAgICAgICAgIG9uQ2xpY2s6IHIubmF2aWdhdGUsCiAgICAgICAgICAgIGNsYXNzOiBpLnZhbHVlLAogICAgICAgICAgfSwKICAgICAgICAgIGEKICAgICAgICApOwogICAgfTsKICB9LAp9KSwKICBSb3V0ZXJMaW5rID0gUm91dGVyTGlua0ltcGw7CmZ1bmN0aW9uIGd1YXJkRXZlbnQoZSkgewogIGlmICgKICAgICEoZS5tZXRhS2V5IHx8IGUuYWx0S2V5IHx8IGUuY3RybEtleSB8fCBlLnNoaWZ0S2V5KSAmJgogICAgIWUuZGVmYXVsdFByZXZlbnRlZCAmJgogICAgIShlLmJ1dHRvbiAhPT0gdm9pZCAwICYmIGUuYnV0dG9uICE9PSAwKQogICkgewogICAgaWYgKGUuY3VycmVudFRhcmdldCAmJiBlLmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKSB7CiAgICAgIGNvbnN0IHQgPSBlLmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKTsKICAgICAgaWYgKC9cYl9ibGFua1xiL2kudGVzdCh0KSkgcmV0dXJuOwogICAgfQogICAgcmV0dXJuIGUucHJldmVudERlZmF1bHQgJiYgZS5wcmV2ZW50RGVmYXVsdCgpLCAhMDsKICB9Cn0KZnVuY3Rpb24gaW5jbHVkZXNQYXJhbXMoZSwgdCkgewogIGZvciAoY29uc3QgciBpbiB0KSB7CiAgICBjb25zdCBuID0gdFtyXSwKICAgICAgaSA9IGVbcl07CiAgICBpZiAodHlwZW9mIG4gPT0gInN0cmluZyIpIHsKICAgICAgaWYgKG4gIT09IGkpIHJldHVybiAhMTsKICAgIH0gZWxzZSBpZiAoCiAgICAgICFpc0FycmF5KGkpIHx8CiAgICAgIGkubGVuZ3RoICE9PSBuLmxlbmd0aCB8fAogICAgICBuLnNvbWUoKGEsIG8pID0+IGEgIT09IGlbb10pCiAgICApCiAgICAgIHJldHVybiAhMTsKICB9CiAgcmV0dXJuICEwOwp9CmZ1bmN0aW9uIGdldE9yaWdpbmFsUGF0aChlKSB7CiAgcmV0dXJuIGUgPyAoZS5hbGlhc09mID8gZS5hbGlhc09mLnBhdGggOiBlLnBhdGgpIDogIiI7Cn0KY29uc3QgZ2V0TGlua0NsYXNzID0gKGUsIHQsIHIpID0+IGUgPz8gdCA/PyByLAogIFJvdXRlclZpZXdJbXBsID0gZGVmaW5lQ29tcG9uZW50JDEoewogICAgbmFtZTogIlJvdXRlclZpZXciLAogICAgaW5oZXJpdEF0dHJzOiAhMSwKICAgIHByb3BzOiB7IG5hbWU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAiZGVmYXVsdCIgfSwgcm91dGU6IE9iamVjdCB9LAogICAgY29tcGF0Q29uZmlnOiB7IE1PREU6IDMgfSwKICAgIHNldHVwKGUsIHsgYXR0cnM6IHQsIHNsb3RzOiByIH0pIHsKICAgICAgY29uc3QgbiA9IGluamVjdCQxKHJvdXRlclZpZXdMb2NhdGlvbktleSksCiAgICAgICAgaSA9IGNvbXB1dGVkKCgpID0+IGUucm91dGUgfHwgbi52YWx1ZSksCiAgICAgICAgYSA9IGluamVjdCQxKHZpZXdEZXB0aEtleSwgMCksCiAgICAgICAgbyA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgICAgIGxldCB1ID0gdW5yZWYoYSk7CiAgICAgICAgICBjb25zdCB7IG1hdGNoZWQ6IGQgfSA9IGkudmFsdWU7CiAgICAgICAgICBsZXQgRTsKICAgICAgICAgIGZvciAoOyAoRSA9IGRbdV0pICYmICFFLmNvbXBvbmVudHM7KSB1Kys7CiAgICAgICAgICByZXR1cm4gdTsKICAgICAgICB9KSwKICAgICAgICBsID0gY29tcHV0ZWQoKCkgPT4gaS52YWx1ZS5tYXRjaGVkW28udmFsdWVdKTsKICAgICAgcHJvdmlkZSgKICAgICAgICB2aWV3RGVwdGhLZXksCiAgICAgICAgY29tcHV0ZWQoKCkgPT4gby52YWx1ZSArIDEpCiAgICAgICksCiAgICAgICAgcHJvdmlkZShtYXRjaGVkUm91dGVLZXksIGwpLAogICAgICAgIHByb3ZpZGUocm91dGVyVmlld0xvY2F0aW9uS2V5LCBpKTsKICAgICAgY29uc3QgYyA9IHJlZigpOwogICAgICByZXR1cm4gKAogICAgICAgIHdhdGNoKAogICAgICAgICAgKCkgPT4gW2MudmFsdWUsIGwudmFsdWUsIGUubmFtZV0sCiAgICAgICAgICAoW3UsIGQsIEVdLCBbYiwgUCwgUl0pID0+IHsKICAgICAgICAgICAgZCAmJgogICAgICAgICAgICAgICgoZC5pbnN0YW5jZXNbRV0gPSB1KSwKICAgICAgICAgICAgICAgIFAgJiYKICAgICAgICAgICAgICAgIFAgIT09IGQgJiYKICAgICAgICAgICAgICAgIHUgJiYKICAgICAgICAgICAgICAgIHUgPT09IGIgJiYKICAgICAgICAgICAgICAgIChkLmxlYXZlR3VhcmRzLnNpemUgfHwgKGQubGVhdmVHdWFyZHMgPSBQLmxlYXZlR3VhcmRzKSwKICAgICAgICAgICAgICAgICAgZC51cGRhdGVHdWFyZHMuc2l6ZSB8fCAoZC51cGRhdGVHdWFyZHMgPSBQLnVwZGF0ZUd1YXJkcykpKSwKICAgICAgICAgICAgICB1ICYmCiAgICAgICAgICAgICAgZCAmJgogICAgICAgICAgICAgICghUCB8fCAhaXNTYW1lUm91dGVSZWNvcmQoZCwgUCkgfHwgIWIpICYmCiAgICAgICAgICAgICAgKGQuZW50ZXJDYWxsYmFja3NbRV0gfHwgW10pLmZvckVhY2goKFQpID0+IFQodSkpOwogICAgICAgICAgfSwKICAgICAgICAgIHsgZmx1c2g6ICJwb3N0IiB9CiAgICAgICAgKSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBjb25zdCB1ID0gaS52YWx1ZSwKICAgICAgICAgICAgZCA9IGUubmFtZSwKICAgICAgICAgICAgRSA9IGwudmFsdWUsCiAgICAgICAgICAgIGIgPSBFICYmIEUuY29tcG9uZW50c1tkXTsKICAgICAgICAgIGlmICghYikgcmV0dXJuIG5vcm1hbGl6ZVNsb3Qoci5kZWZhdWx0LCB7IENvbXBvbmVudDogYiwgcm91dGU6IHUgfSk7CiAgICAgICAgICBjb25zdCBQID0gRS5wcm9wc1tkXSwKICAgICAgICAgICAgUiA9IFAKICAgICAgICAgICAgICA/IFAgPT09ICEwCiAgICAgICAgICAgICAgICA/IHUucGFyYW1zCiAgICAgICAgICAgICAgICA6IHR5cGVvZiBQID09ICJmdW5jdGlvbiIKICAgICAgICAgICAgICAgICAgPyBQKHUpCiAgICAgICAgICAgICAgICAgIDogUAogICAgICAgICAgICAgIDogbnVsbCwKICAgICAgICAgICAgTSA9IGgkMigKICAgICAgICAgICAgICBiLAogICAgICAgICAgICAgIGFzc2lnbih7fSwgUiwgdCwgewogICAgICAgICAgICAgICAgb25Wbm9kZVVubW91bnRlZDogKHgpID0+IHsKICAgICAgICAgICAgICAgICAgeC5jb21wb25lbnQuaXNVbm1vdW50ZWQgJiYgKEUuaW5zdGFuY2VzW2RdID0gbnVsbCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcmVmOiBjLAogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICk7CiAgICAgICAgICByZXR1cm4gbm9ybWFsaXplU2xvdChyLmRlZmF1bHQsIHsgQ29tcG9uZW50OiBNLCByb3V0ZTogdSB9KSB8fCBNOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSk7CmZ1bmN0aW9uIG5vcm1hbGl6ZVNsb3QoZSwgdCkgewogIGlmICghZSkgcmV0dXJuIG51bGw7CiAgY29uc3QgciA9IGUodCk7CiAgcmV0dXJuIHIubGVuZ3RoID09PSAxID8gclswXSA6IHI7Cn0KY29uc3QgUm91dGVyVmlldyA9IFJvdXRlclZpZXdJbXBsOwpmdW5jdGlvbiBjcmVhdGVSb3V0ZXIoZSkgewogIGNvbnN0IHQgPSBjcmVhdGVSb3V0ZXJNYXRjaGVyKGUucm91dGVzLCBlKSwKICAgIHIgPSBlLnBhcnNlUXVlcnkgfHwgcGFyc2VRdWVyeSwKICAgIG4gPSBlLnN0cmluZ2lmeVF1ZXJ5IHx8IHN0cmluZ2lmeVF1ZXJ5LAogICAgaSA9IGUuaGlzdG9yeSwKICAgIGEgPSB1c2VDYWxsYmFja3MoKSwKICAgIG8gPSB1c2VDYWxsYmFja3MoKSwKICAgIGwgPSB1c2VDYWxsYmFja3MoKSwKICAgIGMgPSBzaGFsbG93UmVmKFNUQVJUX0xPQ0FUSU9OX05PUk1BTElaRUQpOwogIGxldCB1ID0gU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRDsKICBpc0Jyb3dzZXIgJiYKICAgIGUuc2Nyb2xsQmVoYXZpb3IgJiYKICAgICJzY3JvbGxSZXN0b3JhdGlvbiIgaW4gaGlzdG9yeSAmJgogICAgKGhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb24gPSAibWFudWFsIik7CiAgY29uc3QgZCA9IGFwcGx5VG9QYXJhbXMuYmluZChudWxsLCAoaWUpID0+ICIiICsgaWUpLAogICAgRSA9IGFwcGx5VG9QYXJhbXMuYmluZChudWxsLCBlbmNvZGVQYXJhbSksCiAgICBiID0gYXBwbHlUb1BhcmFtcy5iaW5kKG51bGwsIGRlY29kZSk7CiAgZnVuY3Rpb24gUChpZSwgbWUpIHsKICAgIGxldCBwZSwgZ2U7CiAgICByZXR1cm4gKAogICAgICBpc1JvdXRlTmFtZShpZSkgPyAoKHBlID0gdC5nZXRSZWNvcmRNYXRjaGVyKGllKSksIChnZSA9IG1lKSkgOiAoZ2UgPSBpZSksCiAgICAgIHQuYWRkUm91dGUoZ2UsIHBlKQogICAgKTsKICB9CiAgZnVuY3Rpb24gUihpZSkgewogICAgY29uc3QgbWUgPSB0LmdldFJlY29yZE1hdGNoZXIoaWUpOwogICAgbWUgJiYgdC5yZW1vdmVSb3V0ZShtZSk7CiAgfQogIGZ1bmN0aW9uIFQoKSB7CiAgICByZXR1cm4gdC5nZXRSb3V0ZXMoKS5tYXAoKGllKSA9PiBpZS5yZWNvcmQpOwogIH0KICBmdW5jdGlvbiBNKGllKSB7CiAgICByZXR1cm4gISF0LmdldFJlY29yZE1hdGNoZXIoaWUpOwogIH0KICBmdW5jdGlvbiB4KGllLCBtZSkgewogICAgaWYgKCgobWUgPSBhc3NpZ24oe30sIG1lIHx8IGMudmFsdWUpKSwgdHlwZW9mIGllID09ICJzdHJpbmciKSkgewogICAgICBjb25zdCBHID0gcGFyc2VVUkwociwgaWUsIG1lLnBhdGgpLAogICAgICAgIHRlID0gdC5yZXNvbHZlKHsgcGF0aDogRy5wYXRoIH0sIG1lKSwKICAgICAgICBhZSA9IGkuY3JlYXRlSHJlZihHLmZ1bGxQYXRoKTsKICAgICAgcmV0dXJuIGFzc2lnbihHLCB0ZSwgewogICAgICAgIHBhcmFtczogYih0ZS5wYXJhbXMpLAogICAgICAgIGhhc2g6IGRlY29kZShHLmhhc2gpLAogICAgICAgIHJlZGlyZWN0ZWRGcm9tOiB2b2lkIDAsCiAgICAgICAgaHJlZjogYWUsCiAgICAgIH0pOwogICAgfQogICAgbGV0IHBlOwogICAgaWYgKGllLnBhdGggIT0gbnVsbCkKICAgICAgcGUgPSBhc3NpZ24oe30sIGllLCB7IHBhdGg6IHBhcnNlVVJMKHIsIGllLnBhdGgsIG1lLnBhdGgpLnBhdGggfSk7CiAgICBlbHNlIHsKICAgICAgY29uc3QgRyA9IGFzc2lnbih7fSwgaWUucGFyYW1zKTsKICAgICAgZm9yIChjb25zdCB0ZSBpbiBHKSBHW3RlXSA9PSBudWxsICYmIGRlbGV0ZSBHW3RlXTsKICAgICAgKHBlID0gYXNzaWduKHt9LCBpZSwgeyBwYXJhbXM6IEUoRykgfSkpLCAobWUucGFyYW1zID0gRShtZS5wYXJhbXMpKTsKICAgIH0KICAgIGNvbnN0IGdlID0gdC5yZXNvbHZlKHBlLCBtZSksCiAgICAgIEVlID0gaWUuaGFzaCB8fCAiIjsKICAgIGdlLnBhcmFtcyA9IGQoYihnZS5wYXJhbXMpKTsKICAgIGNvbnN0IFNlID0gc3RyaW5naWZ5VVJMKAogICAgICBuLAogICAgICBhc3NpZ24oe30sIGllLCB7IGhhc2g6IGVuY29kZUhhc2goRWUpLCBwYXRoOiBnZS5wYXRoIH0pCiAgICApLAogICAgICBXID0gaS5jcmVhdGVIcmVmKFNlKTsKICAgIHJldHVybiBhc3NpZ24oCiAgICAgIHsKICAgICAgICBmdWxsUGF0aDogU2UsCiAgICAgICAgaGFzaDogRWUsCiAgICAgICAgcXVlcnk6IG4gPT09IHN0cmluZ2lmeVF1ZXJ5ID8gbm9ybWFsaXplUXVlcnkoaWUucXVlcnkpIDogaWUucXVlcnkgfHwge30sCiAgICAgIH0sCiAgICAgIGdlLAogICAgICB7IHJlZGlyZWN0ZWRGcm9tOiB2b2lkIDAsIGhyZWY6IFcgfQogICAgKTsKICB9CiAgZnVuY3Rpb24gayhpZSkgewogICAgcmV0dXJuIHR5cGVvZiBpZSA9PSAic3RyaW5nIgogICAgICA/IHBhcnNlVVJMKHIsIGllLCBjLnZhbHVlLnBhdGgpCiAgICAgIDogYXNzaWduKHt9LCBpZSk7CiAgfQogIGZ1bmN0aW9uIFMoaWUsIG1lKSB7CiAgICBpZiAodSAhPT0gaWUpIHJldHVybiBjcmVhdGVSb3V0ZXJFcnJvcig4LCB7IGZyb206IG1lLCB0bzogaWUgfSk7CiAgfQogIGZ1bmN0aW9uIEEoaWUpIHsKICAgIHJldHVybiBEKGllKTsKICB9CiAgZnVuY3Rpb24gTyhpZSkgewogICAgcmV0dXJuIEEoYXNzaWduKGsoaWUpLCB7IHJlcGxhY2U6ICEwIH0pKTsKICB9CiAgZnVuY3Rpb24gRihpZSkgewogICAgY29uc3QgbWUgPSBpZS5tYXRjaGVkW2llLm1hdGNoZWQubGVuZ3RoIC0gMV07CiAgICBpZiAobWUgJiYgbWUucmVkaXJlY3QpIHsKICAgICAgY29uc3QgeyByZWRpcmVjdDogcGUgfSA9IG1lOwogICAgICBsZXQgZ2UgPSB0eXBlb2YgcGUgPT0gImZ1bmN0aW9uIiA/IHBlKGllKSA6IHBlOwogICAgICByZXR1cm4gKAogICAgICAgIHR5cGVvZiBnZSA9PSAic3RyaW5nIiAmJgogICAgICAgICgoZ2UgPQogICAgICAgICAgZ2UuaW5jbHVkZXMoIj8iKSB8fCBnZS5pbmNsdWRlcygiIyIpID8gKGdlID0gayhnZSkpIDogeyBwYXRoOiBnZSB9KSwKICAgICAgICAgIChnZS5wYXJhbXMgPSB7fSkpLAogICAgICAgIGFzc2lnbigKICAgICAgICAgIHsKICAgICAgICAgICAgcXVlcnk6IGllLnF1ZXJ5LAogICAgICAgICAgICBoYXNoOiBpZS5oYXNoLAogICAgICAgICAgICBwYXJhbXM6IGdlLnBhdGggIT0gbnVsbCA/IHt9IDogaWUucGFyYW1zLAogICAgICAgICAgfSwKICAgICAgICAgIGdlCiAgICAgICAgKQogICAgICApOwogICAgfQogIH0KICBmdW5jdGlvbiBEKGllLCBtZSkgewogICAgY29uc3QgcGUgPSAodSA9IHgoaWUpKSwKICAgICAgZ2UgPSBjLnZhbHVlLAogICAgICBFZSA9IGllLnN0YXRlLAogICAgICBTZSA9IGllLmZvcmNlLAogICAgICBXID0gaWUucmVwbGFjZSA9PT0gITAsCiAgICAgIEcgPSBGKHBlKTsKICAgIGlmIChHKQogICAgICByZXR1cm4gRCgKICAgICAgICBhc3NpZ24oayhHKSwgewogICAgICAgICAgc3RhdGU6IHR5cGVvZiBHID09ICJvYmplY3QiID8gYXNzaWduKHt9LCBFZSwgRy5zdGF0ZSkgOiBFZSwKICAgICAgICAgIGZvcmNlOiBTZSwKICAgICAgICAgIHJlcGxhY2U6IFcsCiAgICAgICAgfSksCiAgICAgICAgbWUgfHwgcGUKICAgICAgKTsKICAgIGNvbnN0IHRlID0gcGU7CiAgICB0ZS5yZWRpcmVjdGVkRnJvbSA9IG1lOwogICAgbGV0IGFlOwogICAgcmV0dXJuICgKICAgICAgIVNlICYmCiAgICAgIGlzU2FtZVJvdXRlTG9jYXRpb24obiwgZ2UsIHBlKSAmJgogICAgICAoKGFlID0gY3JlYXRlUm91dGVyRXJyb3IoMTYsIHsgdG86IHRlLCBmcm9tOiBnZSB9KSksIFkoZ2UsIGdlLCAhMCwgITEpKSwKICAgICAgKGFlID8gUHJvbWlzZS5yZXNvbHZlKGFlKSA6IHEodGUsIGdlKSkKICAgICAgICAuY2F0Y2goKHNlKSA9PgogICAgICAgICAgaXNOYXZpZ2F0aW9uRmFpbHVyZShzZSkKICAgICAgICAgICAgPyBpc05hdmlnYXRpb25GYWlsdXJlKHNlLCAyKQogICAgICAgICAgICAgID8gc2UKICAgICAgICAgICAgICA6IFEoc2UpCiAgICAgICAgICAgIDogTihzZSwgdGUsIGdlKQogICAgICAgICkKICAgICAgICAudGhlbigoc2UpID0+IHsKICAgICAgICAgIGlmIChzZSkgewogICAgICAgICAgICBpZiAoaXNOYXZpZ2F0aW9uRmFpbHVyZShzZSwgMikpCiAgICAgICAgICAgICAgcmV0dXJuIEQoCiAgICAgICAgICAgICAgICBhc3NpZ24oeyByZXBsYWNlOiBXIH0sIGsoc2UudG8pLCB7CiAgICAgICAgICAgICAgICAgIHN0YXRlOgogICAgICAgICAgICAgICAgICAgIHR5cGVvZiBzZS50byA9PSAib2JqZWN0IiA/IGFzc2lnbih7fSwgRWUsIHNlLnRvLnN0YXRlKSA6IEVlLAogICAgICAgICAgICAgICAgICBmb3JjZTogU2UsCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIG1lIHx8IHRlCiAgICAgICAgICAgICAgKTsKICAgICAgICAgIH0gZWxzZSBzZSA9IEsodGUsIGdlLCAhMCwgVywgRWUpOwogICAgICAgICAgcmV0dXJuIEoodGUsIGdlLCBzZSksIHNlOwogICAgICAgIH0pCiAgICApOwogIH0KICBmdW5jdGlvbiBIKGllLCBtZSkgewogICAgY29uc3QgcGUgPSBTKGllLCBtZSk7CiAgICByZXR1cm4gcGUgPyBQcm9taXNlLnJlamVjdChwZSkgOiBQcm9taXNlLnJlc29sdmUoKTsKICB9CiAgZnVuY3Rpb24gJChpZSkgewogICAgY29uc3QgbWUgPSB2ZS52YWx1ZXMoKS5uZXh0KCkudmFsdWU7CiAgICByZXR1cm4gbWUgJiYgdHlwZW9mIG1lLnJ1bldpdGhDb250ZXh0ID09ICJmdW5jdGlvbiIKICAgICAgPyBtZS5ydW5XaXRoQ29udGV4dChpZSkKICAgICAgOiBpZSgpOwogIH0KICBmdW5jdGlvbiBxKGllLCBtZSkgewogICAgbGV0IHBlOwogICAgY29uc3QgW2dlLCBFZSwgU2VdID0gZXh0cmFjdENoYW5naW5nUmVjb3JkcyhpZSwgbWUpOwogICAgcGUgPSBleHRyYWN0Q29tcG9uZW50c0d1YXJkcyhnZS5yZXZlcnNlKCksICJiZWZvcmVSb3V0ZUxlYXZlIiwgaWUsIG1lKTsKICAgIGZvciAoY29uc3QgRyBvZiBnZSkKICAgICAgRy5sZWF2ZUd1YXJkcy5mb3JFYWNoKCh0ZSkgPT4gewogICAgICAgIHBlLnB1c2goZ3VhcmRUb1Byb21pc2VGbih0ZSwgaWUsIG1lKSk7CiAgICAgIH0pOwogICAgY29uc3QgVyA9IEguYmluZChudWxsLCBpZSwgbWUpOwogICAgcmV0dXJuICgKICAgICAgcGUucHVzaChXKSwKICAgICAgQ2UocGUpCiAgICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgcGUgPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgRyBvZiBhLmxpc3QoKSkgcGUucHVzaChndWFyZFRvUHJvbWlzZUZuKEcsIGllLCBtZSkpOwogICAgICAgICAgcmV0dXJuIHBlLnB1c2goVyksIENlKHBlKTsKICAgICAgICB9KQogICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgIHBlID0gZXh0cmFjdENvbXBvbmVudHNHdWFyZHMoRWUsICJiZWZvcmVSb3V0ZVVwZGF0ZSIsIGllLCBtZSk7CiAgICAgICAgICBmb3IgKGNvbnN0IEcgb2YgRWUpCiAgICAgICAgICAgIEcudXBkYXRlR3VhcmRzLmZvckVhY2goKHRlKSA9PiB7CiAgICAgICAgICAgICAgcGUucHVzaChndWFyZFRvUHJvbWlzZUZuKHRlLCBpZSwgbWUpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gcGUucHVzaChXKSwgQ2UocGUpOwogICAgICAgIH0pCiAgICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgcGUgPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgRyBvZiBTZSkKICAgICAgICAgICAgaWYgKEcuYmVmb3JlRW50ZXIpCiAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoRy5iZWZvcmVFbnRlcikpCiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRlIG9mIEcuYmVmb3JlRW50ZXIpCiAgICAgICAgICAgICAgICAgIHBlLnB1c2goZ3VhcmRUb1Byb21pc2VGbih0ZSwgaWUsIG1lKSk7CiAgICAgICAgICAgICAgZWxzZSBwZS5wdXNoKGd1YXJkVG9Qcm9taXNlRm4oRy5iZWZvcmVFbnRlciwgaWUsIG1lKSk7CiAgICAgICAgICByZXR1cm4gcGUucHVzaChXKSwgQ2UocGUpOwogICAgICAgIH0pCiAgICAgICAgLnRoZW4oCiAgICAgICAgICAoKSA9PiAoCiAgICAgICAgICAgIGllLm1hdGNoZWQuZm9yRWFjaCgoRykgPT4gKEcuZW50ZXJDYWxsYmFja3MgPSB7fSkpLAogICAgICAgICAgICAocGUgPSBleHRyYWN0Q29tcG9uZW50c0d1YXJkcyhTZSwgImJlZm9yZVJvdXRlRW50ZXIiLCBpZSwgbWUsICQpKSwKICAgICAgICAgICAgcGUucHVzaChXKSwKICAgICAgICAgICAgQ2UocGUpCiAgICAgICAgICApCiAgICAgICAgKQogICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgIHBlID0gW107CiAgICAgICAgICBmb3IgKGNvbnN0IEcgb2Ygby5saXN0KCkpIHBlLnB1c2goZ3VhcmRUb1Byb21pc2VGbihHLCBpZSwgbWUpKTsKICAgICAgICAgIHJldHVybiBwZS5wdXNoKFcpLCBDZShwZSk7CiAgICAgICAgfSkKICAgICAgICAuY2F0Y2goKEcpID0+IChpc05hdmlnYXRpb25GYWlsdXJlKEcsIDgpID8gRyA6IFByb21pc2UucmVqZWN0KEcpKSkKICAgICk7CiAgfQogIGZ1bmN0aW9uIEooaWUsIG1lLCBwZSkgewogICAgbC5saXN0KCkuZm9yRWFjaCgoZ2UpID0+ICQoKCkgPT4gZ2UoaWUsIG1lLCBwZSkpKTsKICB9CiAgZnVuY3Rpb24gSyhpZSwgbWUsIHBlLCBnZSwgRWUpIHsKICAgIGNvbnN0IFNlID0gUyhpZSwgbWUpOwogICAgaWYgKFNlKSByZXR1cm4gU2U7CiAgICBjb25zdCBXID0gbWUgPT09IFNUQVJUX0xPQ0FUSU9OX05PUk1BTElaRUQsCiAgICAgIEcgPSBpc0Jyb3dzZXIgPyBoaXN0b3J5LnN0YXRlIDoge307CiAgICBwZSAmJgogICAgICAoZ2UgfHwgVwogICAgICAgID8gaS5yZXBsYWNlKGllLmZ1bGxQYXRoLCBhc3NpZ24oeyBzY3JvbGw6IFcgJiYgRyAmJiBHLnNjcm9sbCB9LCBFZSkpCiAgICAgICAgOiBpLnB1c2goaWUuZnVsbFBhdGgsIEVlKSksCiAgICAgIChjLnZhbHVlID0gaWUpLAogICAgICBZKGllLCBtZSwgcGUsIFcpLAogICAgICBRKCk7CiAgfQogIGxldCBlZTsKICBmdW5jdGlvbiBsZSgpIHsKICAgIGVlIHx8CiAgICAgIChlZSA9IGkubGlzdGVuKChpZSwgbWUsIHBlKSA9PiB7CiAgICAgICAgaWYgKCFQZS5saXN0ZW5pbmcpIHJldHVybjsKICAgICAgICBjb25zdCBnZSA9IHgoaWUpLAogICAgICAgICAgRWUgPSBGKGdlKTsKICAgICAgICBpZiAoRWUpIHsKICAgICAgICAgIEQoYXNzaWduKEVlLCB7IHJlcGxhY2U6ICEwLCBmb3JjZTogITAgfSksIGdlKS5jYXRjaChub29wKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdSA9IGdlOwogICAgICAgIGNvbnN0IFNlID0gYy52YWx1ZTsKICAgICAgICBpc0Jyb3dzZXIgJiYKICAgICAgICAgIHNhdmVTY3JvbGxQb3NpdGlvbigKICAgICAgICAgICAgZ2V0U2Nyb2xsS2V5KFNlLmZ1bGxQYXRoLCBwZS5kZWx0YSksCiAgICAgICAgICAgIGNvbXB1dGVTY3JvbGxQb3NpdGlvbigpCiAgICAgICAgICApLAogICAgICAgICAgcShnZSwgU2UpCiAgICAgICAgICAgIC5jYXRjaCgoVykgPT4KICAgICAgICAgICAgICBpc05hdmlnYXRpb25GYWlsdXJlKFcsIDEyKQogICAgICAgICAgICAgICAgPyBXCiAgICAgICAgICAgICAgICA6IGlzTmF2aWdhdGlvbkZhaWx1cmUoVywgMikKICAgICAgICAgICAgICAgICAgPyAoRChhc3NpZ24oayhXLnRvKSwgeyBmb3JjZTogITAgfSksIGdlKQogICAgICAgICAgICAgICAgICAgIC50aGVuKChHKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICBpc05hdmlnYXRpb25GYWlsdXJlKEcsIDIwKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAhcGUuZGVsdGEgJiYKICAgICAgICAgICAgICAgICAgICAgICAgcGUudHlwZSA9PT0gTmF2aWdhdGlvblR5cGUucG9wICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGkuZ28oLTEsICExKTsKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIC5jYXRjaChub29wKSwKICAgICAgICAgICAgICAgICAgICBQcm9taXNlLnJlamVjdCgpKQogICAgICAgICAgICAgICAgICA6IChwZS5kZWx0YSAmJiBpLmdvKC1wZS5kZWx0YSwgITEpLCBOKFcsIGdlLCBTZSkpCiAgICAgICAgICAgICkKICAgICAgICAgICAgLnRoZW4oKFcpID0+IHsKICAgICAgICAgICAgICAoVyA9IFcgfHwgSyhnZSwgU2UsICExKSksCiAgICAgICAgICAgICAgICBXICYmCiAgICAgICAgICAgICAgICAocGUuZGVsdGEgJiYgIWlzTmF2aWdhdGlvbkZhaWx1cmUoVywgOCkKICAgICAgICAgICAgICAgICAgPyBpLmdvKC1wZS5kZWx0YSwgITEpCiAgICAgICAgICAgICAgICAgIDogcGUudHlwZSA9PT0gTmF2aWdhdGlvblR5cGUucG9wICYmCiAgICAgICAgICAgICAgICAgIGlzTmF2aWdhdGlvbkZhaWx1cmUoVywgMjApICYmCiAgICAgICAgICAgICAgICAgIGkuZ28oLTEsICExKSksCiAgICAgICAgICAgICAgICBKKGdlLCBTZSwgVyk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5jYXRjaChub29wKTsKICAgICAgfSkpOwogIH0KICBsZXQgcmUgPSB1c2VDYWxsYmFja3MoKSwKICAgIEIgPSB1c2VDYWxsYmFja3MoKSwKICAgIHo7CiAgZnVuY3Rpb24gTihpZSwgbWUsIHBlKSB7CiAgICBRKGllKTsKICAgIGNvbnN0IGdlID0gQi5saXN0KCk7CiAgICByZXR1cm4gKAogICAgICBnZS5sZW5ndGggPyBnZS5mb3JFYWNoKChFZSkgPT4gRWUoaWUsIG1lLCBwZSkpIDogY29uc29sZS5lcnJvcihpZSksCiAgICAgIFByb21pc2UucmVqZWN0KGllKQogICAgKTsKICB9CiAgZnVuY3Rpb24gVigpIHsKICAgIHJldHVybiB6ICYmIGMudmFsdWUgIT09IFNUQVJUX0xPQ0FUSU9OX05PUk1BTElaRUQKICAgICAgPyBQcm9taXNlLnJlc29sdmUoKQogICAgICA6IG5ldyBQcm9taXNlKChpZSwgbWUpID0+IHsKICAgICAgICByZS5hZGQoW2llLCBtZV0pOwogICAgICB9KTsKICB9CiAgZnVuY3Rpb24gUShpZSkgewogICAgcmV0dXJuICgKICAgICAgeiB8fAogICAgICAoKHogPSAhaWUpLAogICAgICAgIGxlKCksCiAgICAgICAgcmUubGlzdCgpLmZvckVhY2goKFttZSwgcGVdKSA9PiAoaWUgPyBwZShpZSkgOiBtZSgpKSksCiAgICAgICAgcmUucmVzZXQoKSksCiAgICAgIGllCiAgICApOwogIH0KICBmdW5jdGlvbiBZKGllLCBtZSwgcGUsIGdlKSB7CiAgICBjb25zdCB7IHNjcm9sbEJlaGF2aW9yOiBFZSB9ID0gZTsKICAgIGlmICghaXNCcm93c2VyIHx8ICFFZSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgY29uc3QgU2UgPQogICAgICAoIXBlICYmIGdldFNhdmVkU2Nyb2xsUG9zaXRpb24oZ2V0U2Nyb2xsS2V5KGllLmZ1bGxQYXRoLCAwKSkpIHx8CiAgICAgICgoZ2UgfHwgIXBlKSAmJiBoaXN0b3J5LnN0YXRlICYmIGhpc3Rvcnkuc3RhdGUuc2Nyb2xsKSB8fAogICAgICBudWxsOwogICAgcmV0dXJuIG5leHRUaWNrKCkKICAgICAgLnRoZW4oKCkgPT4gRWUoaWUsIG1lLCBTZSkpCiAgICAgIC50aGVuKChXKSA9PiBXICYmIHNjcm9sbFRvUG9zaXRpb24oVykpCiAgICAgIC5jYXRjaCgoVykgPT4gTihXLCBpZSwgbWUpKTsKICB9CiAgY29uc3QgaGUgPSAoaWUpID0+IGkuZ28oaWUpOwogIGxldCB5ZTsKICBjb25zdCB2ZSA9IG5ldyBTZXQoKSwKICAgIFBlID0gewogICAgICBjdXJyZW50Um91dGU6IGMsCiAgICAgIGxpc3RlbmluZzogITAsCiAgICAgIGFkZFJvdXRlOiBQLAogICAgICByZW1vdmVSb3V0ZTogUiwKICAgICAgY2xlYXJSb3V0ZXM6IHQuY2xlYXJSb3V0ZXMsCiAgICAgIGhhc1JvdXRlOiBNLAogICAgICBnZXRSb3V0ZXM6IFQsCiAgICAgIHJlc29sdmU6IHgsCiAgICAgIG9wdGlvbnM6IGUsCiAgICAgIHB1c2g6IEEsCiAgICAgIHJlcGxhY2U6IE8sCiAgICAgIGdvOiBoZSwKICAgICAgYmFjazogKCkgPT4gaGUoLTEpLAogICAgICBmb3J3YXJkOiAoKSA9PiBoZSgxKSwKICAgICAgYmVmb3JlRWFjaDogYS5hZGQsCiAgICAgIGJlZm9yZVJlc29sdmU6IG8uYWRkLAogICAgICBhZnRlckVhY2g6IGwuYWRkLAogICAgICBvbkVycm9yOiBCLmFkZCwKICAgICAgaXNSZWFkeTogViwKICAgICAgaW5zdGFsbChpZSkgewogICAgICAgIGNvbnN0IG1lID0gdGhpczsKICAgICAgICBpZS5jb21wb25lbnQoIlJvdXRlckxpbmsiLCBSb3V0ZXJMaW5rKSwKICAgICAgICAgIGllLmNvbXBvbmVudCgiUm91dGVyVmlldyIsIFJvdXRlclZpZXcpLAogICAgICAgICAgKGllLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRyb3V0ZXIgPSBtZSksCiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaWUuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMsICIkcm91dGUiLCB7CiAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgICBnZXQ6ICgpID0+IHVucmVmKGMpLAogICAgICAgICAgfSksCiAgICAgICAgICBpc0Jyb3dzZXIgJiYKICAgICAgICAgICF5ZSAmJgogICAgICAgICAgYy52YWx1ZSA9PT0gU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRCAmJgogICAgICAgICAgKCh5ZSA9ICEwKSwgQShpLmxvY2F0aW9uKS5jYXRjaCgoRWUpID0+IHsgfSkpOwogICAgICAgIGNvbnN0IHBlID0ge307CiAgICAgICAgZm9yIChjb25zdCBFZSBpbiBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVEKQogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBlLCBFZSwgewogICAgICAgICAgICBnZXQ6ICgpID0+IGMudmFsdWVbRWVdLAogICAgICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICAgIH0pOwogICAgICAgIGllLnByb3ZpZGUocm91dGVyS2V5LCBtZSksCiAgICAgICAgICBpZS5wcm92aWRlKHJvdXRlTG9jYXRpb25LZXksIHNoYWxsb3dSZWFjdGl2ZShwZSkpLAogICAgICAgICAgaWUucHJvdmlkZShyb3V0ZXJWaWV3TG9jYXRpb25LZXksIGMpOwogICAgICAgIGNvbnN0IGdlID0gaWUudW5tb3VudDsKICAgICAgICB2ZS5hZGQoaWUpLAogICAgICAgICAgKGllLnVubW91bnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZlLmRlbGV0ZShpZSksCiAgICAgICAgICAgICAgdmUuc2l6ZSA8IDEgJiYKICAgICAgICAgICAgICAoKHUgPSBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVEKSwKICAgICAgICAgICAgICAgIGVlICYmIGVlKCksCiAgICAgICAgICAgICAgICAoZWUgPSBudWxsKSwKICAgICAgICAgICAgICAgIChjLnZhbHVlID0gU1RBUlRfTE9DQVRJT05fTk9STUFMSVpFRCksCiAgICAgICAgICAgICAgICAoeWUgPSAhMSksCiAgICAgICAgICAgICAgICAoeiA9ICExKSksCiAgICAgICAgICAgICAgZ2UoKTsKICAgICAgICAgIH0pOwogICAgICB9LAogICAgfTsKICBmdW5jdGlvbiBDZShpZSkgewogICAgcmV0dXJuIGllLnJlZHVjZSgobWUsIHBlKSA9PiBtZS50aGVuKCgpID0+ICQocGUpKSwgUHJvbWlzZS5yZXNvbHZlKCkpOwogIH0KICByZXR1cm4gUGU7Cn0KZnVuY3Rpb24gZXh0cmFjdENoYW5naW5nUmVjb3JkcyhlLCB0KSB7CiAgY29uc3QgciA9IFtdLAogICAgbiA9IFtdLAogICAgaSA9IFtdLAogICAgYSA9IE1hdGgubWF4KHQubWF0Y2hlZC5sZW5ndGgsIGUubWF0Y2hlZC5sZW5ndGgpOwogIGZvciAobGV0IG8gPSAwOyBvIDwgYTsgbysrKSB7CiAgICBjb25zdCBsID0gdC5tYXRjaGVkW29dOwogICAgbCAmJgogICAgICAoZS5tYXRjaGVkLmZpbmQoKHUpID0+IGlzU2FtZVJvdXRlUmVjb3JkKHUsIGwpKSA/IG4ucHVzaChsKSA6IHIucHVzaChsKSk7CiAgICBjb25zdCBjID0gZS5tYXRjaGVkW29dOwogICAgYyAmJiAodC5tYXRjaGVkLmZpbmQoKHUpID0+IGlzU2FtZVJvdXRlUmVjb3JkKHUsIGMpKSB8fCBpLnB1c2goYykpOwogIH0KICByZXR1cm4gW3IsIG4sIGldOwp9CmZ1bmN0aW9uIHVzZVJvdXRlcigpIHsKICByZXR1cm4gaW5qZWN0JDEocm91dGVyS2V5KTsKfQpmdW5jdGlvbiB1c2VSb3V0ZShlKSB7CiAgcmV0dXJuIGluamVjdCQxKHJvdXRlTG9jYXRpb25LZXkpOwp9CmNvbnN0IFJPVVRFX0tFWV9QQVJFTlRIRVNFU19SRSQxID0gLyg6XHcrKVwoW14pXStcKS9nLAogIFJPVVRFX0tFWV9TWU1CT0xTX1JFJDEgPSAvKDpcdyspWz8rKl0vZywKICBST1VURV9LRVlfTk9STUFMX1JFJDEgPSAvOlx3Ky9nLAogIGludGVycG9sYXRlUGF0aCA9IChlLCB0KSA9PgogICAgdC5wYXRoCiAgICAgIC5yZXBsYWNlKFJPVVRFX0tFWV9QQVJFTlRIRVNFU19SRSQxLCAiJDEiKQogICAgICAucmVwbGFjZShST1VURV9LRVlfU1lNQk9MU19SRSQxLCAiJDEiKQogICAgICAucmVwbGFjZShST1VURV9LRVlfTk9STUFMX1JFJDEsIChyKSA9PiB7CiAgICAgICAgdmFyIG47CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICgobiA9IGUucGFyYW1zW3Iuc2xpY2UoMSldKSA9PSBudWxsID8gdm9pZCAwIDogbi50b1N0cmluZygpKSB8fCAiIgogICAgICAgICk7CiAgICAgIH0pLAogIGdlbmVyYXRlUm91dGVLZXkkMSA9IChlLCB0KSA9PiB7CiAgICBjb25zdCByID0gZS5yb3V0ZS5tYXRjaGVkLmZpbmQoKGkpID0+IHsKICAgICAgdmFyIGE7CiAgICAgIHJldHVybiAoCiAgICAgICAgKChhID0gaS5jb21wb25lbnRzKSA9PSBudWxsID8gdm9pZCAwIDogYS5kZWZhdWx0KSA9PT0gZS5Db21wb25lbnQudHlwZQogICAgICApOwogICAgfSksCiAgICAgIG4gPQogICAgICAgIHQgPz8KICAgICAgICAociA9PSBudWxsID8gdm9pZCAwIDogci5tZXRhLmtleSkgPz8KICAgICAgICAociAmJiBpbnRlcnBvbGF0ZVBhdGgoZS5yb3V0ZSwgcikpOwogICAgcmV0dXJuIHR5cGVvZiBuID09ICJmdW5jdGlvbiIgPyBuKGUucm91dGUpIDogbjsKICB9LAogIHdyYXBJbktlZXBBbGl2ZSA9IChlLCB0KSA9PiAoewogICAgZGVmYXVsdDogKCkgPT4gKGUgPyBoJDIoS2VlcEFsaXZlLCBlID09PSAhMCA/IHt9IDogZSwgdCkgOiB0KSwKICB9KTsKZnVuY3Rpb24gdG9BcnJheShlKSB7CiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZSkgPyBlIDogW2VdOwp9CmNvbnN0IF9fbnV4dF9wYWdlX21ldGEkYSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkOSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkOCA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNyA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNiA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkNCA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkMyA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkMiA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEkMSA9IHsgbGF5b3V0OiAicHJvZmlsZSIsIG1pZGRsZXdhcmU6ICJhdXRoIiB9LAogIF9fbnV4dF9wYWdlX21ldGEgPSB7IGxheW91dDogInByb2ZpbGUiLCBtaWRkbGV3YXJlOiAiYXV0aCIgfSwKICBfcm91dGVzID0gWwogICAgewogICAgICBuYW1lOiAiaW5kZXgiLAogICAgICBwYXRoOiAiLyIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0Q1OXpfQUVILmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LAogICAgICAgICAgICAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsCiAgICAgICAgICAgIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiYW1sLWt5Yy1wb2xpY3lfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vYW1sLWt5Yy1wb2xpY3kiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DeVEwZWF5Ny5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs0OCwgMjIsIDE5LCA2LCA4LCAyMCwgNDksIDUwXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImFtbC1reWMtcG9saWN5X19fUnUiLAogICAgICBwYXRoOiAiL1J1L2FtbC1reWMtcG9saWN5IiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQ3lRMGVheTcuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbNDgsIDIyLCAxOSwgNiwgOCwgMjAsIDQ5LCA1MF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJicmFuZC1ndWlkZWxpbmVzX19fRW4iLAogICAgICBwYXRoOiAiL0VuL2JyYW5kLWd1aWRlbGluZXMiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EQ1pmd1dmeC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNTEsIDIyLCAxOSwgNiwgOCwgMjAsIDUyLCA1MywgNCwgNSwgNywgOSwgMzIsIDEyLCAxMywgNTQsIDU1LCA0NiwKICAgICAgICAgICAgMzgsIDU2LCAxOCwgNTcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiYnJhbmQtZ3VpZGVsaW5lc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS9icmFuZC1ndWlkZWxpbmVzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRENaZndXZnguanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDUxLCAyMiwgMTksIDYsIDgsIDIwLCA1MiwgNTMsIDQsIDUsIDcsIDksIDMyLCAxMiwgMTMsIDU0LCA1NSwgNDYsCiAgICAgICAgICAgIDM4LCA1NiwgMTgsIDU3LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImNvbnRhY3QtdXNfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vY29udGFjdC11cyIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RhbG5qY0g3LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzU4LCAyMiwgMTksIDYsIDgsIDIwLCAxLCA1OV0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJjb250YWN0LXVzX19fUnUiLAogICAgICBwYXRoOiAiL1J1L2NvbnRhY3QtdXMiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EYWxuamNINy5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs1OCwgMjIsIDE5LCA2LCA4LCAyMCwgMSwgNTldKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLWFjY291bnRfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL2FjY291bnQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0I0TjVqM0NwLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA2MCwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMjIsIDE5LCAyMCwgMzYsIDEsCiAgICAgICAgICAgIDE2LCAxNywgMTgsIDIxLCA0MiwgNDAsIDQxLCA2MSwgNjIsIDYzLCAyNSwgMjYsIDY0LCAyOCwgNjUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLWFjY291bnRfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL2FjY291bnQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0I0TjVqM0NwLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA2MCwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMjIsIDE5LCAyMCwgMzYsIDEsCiAgICAgICAgICAgIDE2LCAxNywgMTgsIDIxLCA0MiwgNDAsIDQxLCA2MSwgNjIsIDYzLCAyNSwgMjYsIDY0LCAyOCwgNjUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLWFmZmlsaWF0ZXNfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL2FmZmlsaWF0ZXMiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDksCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0hsQkt6ODZ0LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA2NiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLAogICAgICAgICAgICAyMSwgMjIsIDY3LCA2OCwgNjEsIDQ2LCAzOCwgMzcsIDY5LCA3MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtYWZmaWxpYXRlc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS9kYXNoYm9hcmQvYWZmaWxpYXRlcyIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkOSwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vSGxCS3o4NnQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDY2LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsCiAgICAgICAgICAgIDIxLCAyMiwgNjcsIDY4LCA2MSwgNDYsIDM4LCAzNywgNjksIDcwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC1kaXNjb3VudF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvZGlzY291bnQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDgsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0JvaXNQOFJPLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA3MSwgNzIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDEsIDYyLCA2MywgMjUsCiAgICAgICAgICAgIDE4LCAyNiwgNjQsIDM0LCAzNSwgNTYsIDU3LCA3MywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtZGlzY291bnRfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL2Rpc2NvdW50IiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ4LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9Cb2lzUDhSTy5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzEsIDcyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxLCA2MiwgNjMsIDI1LAogICAgICAgICAgICAxOCwgMjYsIDY0LCAzNCwgMzUsIDU2LCA1NywgNzMsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkX19fRW4iLAogICAgICBwYXRoOiAiL0VuL2Rhc2hib2FyZCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkNywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQzMxREFCMC0uanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDc0LCAyMiwgMTksIDYsIDgsIDIwLCAxLCAxMSwgMTIsIDEzLCA1LCAxNCwgNzUsIDMsIDQsIDcsIDksIDEwLCAxNSwKICAgICAgICAgICAgNjcsIDY4LCA3MiwgMTgsIDI3LCAyOCwgMjksIDc2LCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkX19fUnUiLAogICAgICBwYXRoOiAiL1J1L2Rhc2hib2FyZCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkNywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQzMxREFCMC0uanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDc0LCAyMiwgMTksIDYsIDgsIDIwLCAxLCAxMSwgMTIsIDEzLCA1LCAxNCwgNzUsIDMsIDQsIDcsIDksIDEwLCAxNSwKICAgICAgICAgICAgNjcsIDY4LCA3MiwgMTgsIDI3LCAyOCwgMjksIDc2LCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLW5ldy1vcmRlcl9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvbmV3LW9yZGVyIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ2LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9VcTg5SXN0dC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzcsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC1uZXctb3JkZXJfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL25ldy1vcmRlciIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkNiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vVXE4OUlzdHQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDc3LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtb3JkZXJfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL29yZGVyIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ1LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DWmlQTnVHVy5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzgsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC1vcmRlcl9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9kYXNoYm9hcmQvb3JkZXIiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDUsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NaaVBOdUdXLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA3OCwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLW9yZGVyc19fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvb3JkZXJzIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ0LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ENXNBempJaC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzksIDc1LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA2NywgNjgsIDcyLCAxOCwKICAgICAgICAgICAgMjcsIDE5LCAyMCwgMjgsIDI5LCAyMiwgNjksIDcwLCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLW9yZGVyc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS9kYXNoYm9hcmQvb3JkZXJzIiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQ0LAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ENXNBempJaC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgNzksIDc1LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA2NywgNjgsIDcyLCAxOCwKICAgICAgICAgICAgMjcsIDE5LCAyMCwgMjgsIDI5LCAyMiwgNjksIDcwLCAzNCwgMzUsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLXdhbGxldC1kZXBvc2l0X19fRW4iLAogICAgICBwYXRoOiAiL0VuL2Rhc2hib2FyZC93YWxsZXQvZGVwb3NpdCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQ0w4WFV2RWMuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDgwLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA4MSwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgODIsIDY5LCA3MCwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDg2LCA3NiwgMzQsIDM1LCA4NywgNzIsIDM3LCAzOCwgNDYsIDg4LCA0MiwgODksCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLXdhbGxldC1kZXBvc2l0X19fUnUiLAogICAgICBwYXRoOiAiL1J1L2Rhc2hib2FyZC93YWxsZXQvZGVwb3NpdCIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMywKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQ0w4WFV2RWMuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDgwLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA4MSwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgODIsIDY5LCA3MCwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDg2LCA3NiwgMzQsIDM1LCA4NywgNzIsIDM3LCAzOCwgNDYsIDg4LCA0MiwgODksCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZGFzaGJvYXJkLXdhbGxldF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9kYXNoYm9hcmQvd2FsbGV0IiwKICAgICAgbWV0YTogX19udXh0X3BhZ2VfbWV0YSQyLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DOF9FREdXay5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgOTAsIDgyLCA2OSwgMTEsIDEyLCAxMywgNiwgNSwgMTQsIDcwLCAxNywgMTgsIDgsIDQsIDcsIDksIDE5LCAyMCwKICAgICAgICAgICAgMjEsIDgzLCA2MywgMjcsIDI4LCAyOSwgODQsIDMyLCAzMSwgMzMsIDI0LCAyNSwgMjYsIDMwLCA2NywgNjgsIDg1LAogICAgICAgICAgICAxLCA3NiwgMzQsIDM1LCA5MSwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJkYXNoYm9hcmQtd2FsbGV0X19fUnUiLAogICAgICBwYXRoOiAiL1J1L2Rhc2hib2FyZC93YWxsZXQiLAogICAgICBtZXRhOiBfX251eHRfcGFnZV9tZXRhJDIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0M4X0VER1drLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA5MCwgODIsIDY5LCAxMSwgMTIsIDEzLCA2LCA1LCAxNCwgNzAsIDE3LCAxOCwgOCwgNCwgNywgOSwgMTksIDIwLAogICAgICAgICAgICAyMSwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwgMzAsIDY3LCA2OCwgODUsCiAgICAgICAgICAgIDEsIDc2LCAzNCwgMzUsIDkxLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtdHJhbnNhY3Rpb25fX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL3dhbGxldC90cmFuc2FjdGlvbiIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMSwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRC1nOGN6MmUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDkyLCA4NywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgNzIsIDgyLCA2OSwgNzAsCiAgICAgICAgICAgIDE3LCAxOCwgMTksIDIwLCAyMSwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDM3LCAzOCwgNDYsIDg4LCA3NiwgNjIsIDY0LCAzNCwgMzUsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtdHJhbnNhY3Rpb25fX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL3dhbGxldC90cmFuc2FjdGlvbiIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEkMSwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRC1nOGN6MmUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDkyLCA4NywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgNzIsIDgyLCA2OSwgNzAsCiAgICAgICAgICAgIDE3LCAxOCwgMTksIDIwLCAyMSwgODMsIDYzLCAyNywgMjgsIDI5LCA4NCwgMzIsIDMxLCAzMywgMjQsIDI1LCAyNiwKICAgICAgICAgICAgMzAsIDY3LCA2OCwgODUsIDM3LCAzOCwgNDYsIDg4LCA3NiwgNjIsIDY0LCAzNCwgMzUsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtd2l0aGRyYXdfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vZGFzaGJvYXJkL3dhbGxldC93aXRoZHJhdyIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NsTTRQZWFmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA5MywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgODEsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDgyLCA2OSwgNzAsIDgzLCA2MywgMjcsIDI4LCAyOSwgODQsIDMyLCAzMSwgMzMsIDI0LCAyNSwgMjYsCiAgICAgICAgICAgIDMwLCA2NywgNjgsIDg1LCA4NiwgNzYsIDM0LCAzNSwgODcsIDcyLCAzNywgMzgsIDQ2LCA4OCwgNDIsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImRhc2hib2FyZC13YWxsZXQtd2l0aGRyYXdfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvZGFzaGJvYXJkL3dhbGxldC93aXRoZHJhdyIsCiAgICAgIG1ldGE6IF9fbnV4dF9wYWdlX21ldGEsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NsTTRQZWFmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICA5MywgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgODEsIDE2LCAxNywgMTgsIDE5LAogICAgICAgICAgICAyMCwgMjEsIDgyLCA2OSwgNzAsIDgzLCA2MywgMjcsIDI4LCAyOSwgODQsIDMyLCAzMSwgMzMsIDI0LCAyNSwgMjYsCiAgICAgICAgICAgIDMwLCA2NywgNjgsIDg1LCA4NiwgNzYsIDM0LCAzNSwgODcsIDcyLCAzNywgMzgsIDQ2LCA4OCwgNDIsIDg5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogImZhcV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9mYXEiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ETEkxeXozZS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs5NCwgOTUsIDU2LCAxOCwgNywgNiwgMTIsIDEzLCA1NywgOTZdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiZmFxX19fUnUiLAogICAgICBwYXRoOiAiL1J1L2ZhcSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RMSTF5ejNlLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzk0LCA5NSwgNTYsIDE4LCA3LCA2LCAxMiwgMTMsIDU3LCA5Nl0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJDb2luRGluYXJzLWFmZmlsaWF0ZV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9qb2xpeG8tYWZmaWxpYXRlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRHhMVkxPQlQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDk3LCAyMiwgMTksIDYsIDgsIDIwLCA5NSwgNTYsIDE4LCA3LCAxMiwgMTMsIDU3LCA5NiwgMzksIDMsIDQsIDUsIDksCiAgICAgICAgICAgIDEwLCAxMSwgMTQsIDE1LCAxNiwgMTcsIDIxLCA0MCwgNDEsIDQyLCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJDb2luRGluYXJzLWFmZmlsaWF0ZV9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9qb2xpeG8tYWZmaWxpYXRlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRHhMVkxPQlQuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDk3LCAyMiwgMTksIDYsIDgsIDIwLCA5NSwgNTYsIDE4LCA3LCAxMiwgMTMsIDU3LCA5NiwgMzksIDMsIDQsIDUsIDksCiAgICAgICAgICAgIDEwLCAxMSwgMTQsIDE1LCAxNiwgMTcsIDIxLCA0MCwgNDEsIDQyLCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJpbmRleF9fX0VuIiwKICAgICAgcGF0aDogIi9FbiIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0Q1OXpfQUVILmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LAogICAgICAgICAgICAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsCiAgICAgICAgICAgIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAiaW5kZXhfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9ENTl6X0FFSC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwKICAgICAgICAgICAgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LAogICAgICAgICAgICAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInBheW1lbnQtZmFpbF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9wYXltZW50L2ZhaWwiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EUlotZ2dsWC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgOTgsIDIyLCAxOSwgNiwgOCwgMjAsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDIzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInBheW1lbnQtZmFpbF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9wYXltZW50L2ZhaWwiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EUlotZ2dsWC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgOTgsIDIyLCAxOSwgNiwgOCwgMjAsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDIzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInBheW1lbnQtc3VjY2Vzc19fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9wYXltZW50L3N1Y2Nlc3MiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CRWtGTUNtai5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFs5OSwgMjIsIDE5LCA2LCA4LCAyMCwgMSwgMTEsIDEyLCAxMywgNSwgMTQsIDEwMF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJwYXltZW50LXN1Y2Nlc3NfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvcGF5bWVudC9zdWNjZXNzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQkVrRk1DbWouanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbOTksIDIyLCAxOSwgNiwgOCwgMjAsIDEsIDExLCAxMiwgMTMsIDUsIDE0LCAxMDBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAicHJpdmFjeS1wb2xpY3lfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vcHJpdmFjeS1wb2xpY3kiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9DVjk0UGFBdS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsxMDEsIDIyLCAxOSwgNiwgOCwgMjAsIDQ5LCA1MF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJwcml2YWN5LXBvbGljeV9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9wcml2YWN5LXBvbGljeSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NWOTRQYUF1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzEwMSwgMjIsIDE5LCA2LCA4LCAyMCwgNDksIDUwXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLWFkdmNhc2gtdG8tcGF5cGFsLWV4Y2hhbmdlX19fRW4iLAogICAgICBwYXRoOiAiL0VuL3NlcnZpY2VzL2FkdmNhc2gtdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQk5rejh1LVYuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEwMiwgMjIsIDE5LCA2LCA4LCAyMCwgMiwgMywgNCwgNSwgNywgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCAxMDMsIDk1LCA1NiwgNTcsIDk2LCA0NSwgNTAsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic2VydmljZXMtYWR2Y2FzaC10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvYWR2Y2FzaC10by1wYXlwYWwtZXhjaGFuZ2UiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CTmt6OHUtVi5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTAyLCAyMiwgMTksIDYsIDgsIDIwLCAyLCAzLCA0LCA1LCA3LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwKICAgICAgICAgICAgMTcsIDE4LCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDEwMywgOTUsIDU2LCA1NywgOTYsIDQ1LCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzZXJ2aWNlcy1iaXRjb2luLXRvLXBheXBhbC1leGNoYW5nZV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zZXJ2aWNlcy9iaXRjb2luLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RQQmt6S213LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDQsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLWJpdGNvaW4tdG8tcGF5cGFsLWV4Y2hhbmdlX19fUnUiLAogICAgICBwYXRoOiAiL1J1L3NlcnZpY2VzL2JpdGNvaW4tdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRFBCa3pLbXcuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEwNCwgMjIsIDE5LCA2LCA4LCAyMCwgMiwgMywgNCwgNSwgNywgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCAxMDMsIDk1LCA1NiwgNTcsIDk2LCA0NSwgNTAsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic2VydmljZXMtZXhjaGFuZ2UtdXNkdC10cnhfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvZXhjaGFuZ2UtdXNkdC10cngiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9LN3hENTdTdS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTA1LCAyMiwgMTksIDYsIDgsIDIwLCAyLCAzLCA0LCA1LCA3LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwKICAgICAgICAgICAgMTcsIDE4LCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDEwMywgOTUsIDU2LCA1NywgOTYsIDQ1LCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzZXJ2aWNlcy1leGNoYW5nZS11c2R0LXRyeF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9zZXJ2aWNlcy9leGNoYW5nZS11c2R0LXRyeCIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0s3eEQ1N1N1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDUsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBheWVlci10by1wYXlwYWwtZXhjaGFuZ2VfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvcGF5ZWVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL21oeFBCRDBmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDYsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBheWVlci10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvcGF5ZWVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL21oeFBCRDBmLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDYsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBlcmZlY3Rtb25leS10by1wYXlwYWwtZXhjaGFuZ2VfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvcGVyZmVjdG1vbmV5LXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0J4T3p2aGswLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDcsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXBlcmZlY3Rtb25leS10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvcGVyZmVjdG1vbmV5LXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0J4T3p2aGswLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDcsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCAxMDMsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXRldGhlci10by1wYXlwYWwtZXhjaGFuZ2VfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc2VydmljZXMvdGV0aGVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NrZHdjN0tnLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDgsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXRldGhlci10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvdGV0aGVyLXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0NrZHdjN0tnLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMDgsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgMTAzLCA5NSwgNTYsIDU3LCA5NiwgNDUsIDUwLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNlcnZpY2VzLXdlYm1vbmV5LXRvLXBheXBhbC1leGNoYW5nZV9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zZXJ2aWNlcy93ZWJtb25leS10by1wYXlwYWwtZXhjaGFuZ2UiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9UNHRSTmZFdS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTA5LCAyMiwgMTksIDYsIDgsIDIwLCAyLCAzLCA0LCA1LCA3LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwKICAgICAgICAgICAgMTcsIDE4LCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDEwMywgOTUsIDU2LCA1NywgOTYsIDQ1LCA1MCwKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzZXJ2aWNlcy13ZWJtb25leS10by1wYXlwYWwtZXhjaGFuZ2VfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc2VydmljZXMvd2VibW9uZXktdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vVDR0Uk5mRXUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEwOSwgMjIsIDE5LCA2LCA4LCAyMCwgMiwgMywgNCwgNSwgNywgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCAxMDMsIDk1LCA1NiwgNTcsIDk2LCA0NSwgNTAsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLWJ1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyX19fRW4iLAogICAgICBwYXRoOiAiL0VuL3NvbHV0aW9ucy9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RnT1pEbUJzLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMTAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA5NSwgNTYsIDU3LCA5NiwgMTAzLCAxLCAxMTEsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLWJ1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyX19fUnUiLAogICAgICBwYXRoOiAiL1J1L3NvbHV0aW9ucy9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RnT1pEbUJzLmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMTAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA5NSwgNTYsIDU3LCA5NiwgMTAzLCAxLCAxMTEsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLWV4Y2hhbmdlLXBheXBhbF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zb2x1dGlvbnMvZXhjaGFuZ2UtcGF5cGFsIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQjFaaEpLRnUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDExMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMjIsIDE5LCAyMCwgMTYsCiAgICAgICAgICAgIDE3LCAxOCwgMjEsIDQ0LCA5NSwgNTYsIDU3LCA5NiwgMTAzLCA0NSwgMSwgMTEzLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1leGNoYW5nZS1wYXlwYWxfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc29sdXRpb25zL2V4Y2hhbmdlLXBheXBhbCIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0IxWmhKS0Z1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMTIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDIyLCAxOSwgMjAsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCA0NCwgOTUsIDU2LCA1NywgOTYsIDEwMywgNDUsIDEsIDExMywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzb2x1dGlvbnMtSGlXYWxsZXRfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc29sdXRpb25zL0hpV2FsbGV0IiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQk1aZ2cyR2UuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDExNCwgMjIsIDE5LCA2LCA4LCAyMCwgNDQsIDEwMywgOTUsIDU2LCAxOCwgNywgMTIsIDEzLCA1NywgOTYsIDQ1LAogICAgICAgICAgICA1MCwgMzksIDMsIDQsIDUsIDksIDEwLCAxMSwgMTQsIDE1LCAxNiwgMTcsIDIxLCA0MCwgNDEsIDQyLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1IaVdhbGxldF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9zb2x1dGlvbnMvSGlXYWxsZXQiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CTVpnZzJHZS5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE0LCAyMiwgMTksIDYsIDgsIDIwLCA0NCwgMTAzLCA5NSwgNTYsIDE4LCA3LCAxMiwgMTMsIDU3LCA5NiwgNDUsCiAgICAgICAgICAgIDUwLCAzOSwgMywgNCwgNSwgOSwgMTAsIDExLCAxNCwgMTUsIDE2LCAxNywgMjEsIDQwLCA0MSwgNDIsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogICAgewogICAgICBuYW1lOiAic29sdXRpb25zLW9ubGluZS1wYXltZW50LWZvci1idXNpbmVzc19fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zb2x1dGlvbnMvb25saW5lLXBheW1lbnQtZm9yLWJ1c2luZXNzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vQlF5MG84bjAuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDExNSwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMiwgMTYsIDE3LCAxOCwgMTksCiAgICAgICAgICAgIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwKICAgICAgICAgICAgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA5NSwgNTYsIDU3LCA5NiwgNDUsIDExNiwgNTAsIDEsIDExNywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJzb2x1dGlvbnMtb25saW5lLXBheW1lbnQtZm9yLWJ1c2luZXNzX19fUnUiLAogICAgICBwYXRoOiAiL1J1L3NvbHV0aW9ucy9vbmxpbmUtcGF5bWVudC1mb3ItYnVzaW5lc3MiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9CUXkwbzhuMC5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE1LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAyLCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDk1LCA1NiwgNTcsIDk2LCA0NSwgMTE2LCA1MCwgMSwgMTE3LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1vbmxpbmUtcGF5bWVudF9fX0VuIiwKICAgICAgcGF0aDogIi9Fbi9zb2x1dGlvbnMvb25saW5lLXBheW1lbnQiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EeGZ6clRlQi5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE4LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAyLCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgMSwgNDQsIDk1LCA1NiwgNTcsIDk2LCA0NSwgMTE2LCA1MCwgMTE5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1vbmxpbmUtcGF5bWVudF9fX1J1IiwKICAgICAgcGF0aDogIi9SdS9zb2x1dGlvbnMvb25saW5lLXBheW1lbnQiLAogICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAgICAgX192aXRlUHJlbG9hZCgKICAgICAgICAgICgpID0+IGltcG9ydCgiLi9EeGZ6clRlQi5qcyIpLAogICAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgICAgMTE4LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAyLCAxNiwgMTcsIDE4LCAxOSwKICAgICAgICAgICAgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LAogICAgICAgICAgICAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgMSwgNDQsIDk1LCA1NiwgNTcsIDk2LCA0NSwgMTE2LCA1MCwgMTE5LAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1wYXltZW50LWdhdGVfX19FbiIsCiAgICAgIHBhdGg6ICIvRW4vc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0JzbnVKSko0LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMjAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NSwgMSwgMTIxLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInNvbHV0aW9ucy1wYXltZW50LWdhdGVfX19SdSIsCiAgICAgIHBhdGg6ICIvUnUvc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0JzbnVKSko0LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMjAsIDIyLCAxOSwgNiwgOCwgMjAsIDIsIDMsIDQsIDUsIDcsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAxNywgMTgsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsCiAgICAgICAgICAgIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NSwgMSwgMTIxLAogICAgICAgICAgXSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApLAogICAgfSwKICAgIHsKICAgICAgbmFtZTogInRlcm1zLW9mLXNlcnZpY2VzX19fRW4iLAogICAgICBwYXRoOiAiL0VuL3Rlcm1zLW9mLXNlcnZpY2VzIiwKICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgICAoKSA9PiBpbXBvcnQoIi4vRGJPZXFtODUuanMiKSwKICAgICAgICAgIF9fdml0ZV9fbWFwRGVwcyhbCiAgICAgICAgICAgIDEyMiwgNTIsIDUzLCA0LCA1LCA2LCA3LCA4LCA5LCAzMiwgMTIsIDEzLCA1NCwgNTUsIDIyLCAxOSwgMjAsIDQ2LAogICAgICAgICAgICAzOCwgNTYsIDE4LCA1NywKICAgICAgICAgIF0pLAogICAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICAgKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICJ0ZXJtcy1vZi1zZXJ2aWNlc19fX1J1IiwKICAgICAgcGF0aDogIi9SdS90ZXJtcy1vZi1zZXJ2aWNlcyIsCiAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgICAgICBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0RiT2VxbTg1LmpzIiksCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWwogICAgICAgICAgICAxMjIsIDUyLCA1MywgNCwgNSwgNiwgNywgOCwgOSwgMzIsIDEyLCAxMywgNTQsIDU1LCAyMiwgMTksIDIwLCA0NiwKICAgICAgICAgICAgMzgsIDU2LCAxOCwgNTcsCiAgICAgICAgICBdKSwKICAgICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICAgICksCiAgICB9LAogIF0sCiAgX3dyYXBJZiA9IChlLCB0LCByKSA9PiAoCiAgICAodCA9IHQgPT09ICEwID8ge30gOiB0KSwKICAgIHsKICAgICAgZGVmYXVsdDogKCkgPT4gewogICAgICAgIHZhciBuOwogICAgICAgIHJldHVybiB0ID8gaCQyKGUsIHQsIHIpIDogKG4gPSByLmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiBuLmNhbGwocik7CiAgICAgIH0sCiAgICB9CiAgKSwKICBST1VURV9LRVlfUEFSRU5USEVTRVNfUkUgPSAvKDpcdyspXChbXildK1wpL2csCiAgUk9VVEVfS0VZX1NZTUJPTFNfUkUgPSAvKDpcdyspWz8rKl0vZywKICBST1VURV9LRVlfTk9STUFMX1JFID0gLzpcdysvZzsKZnVuY3Rpb24gZ2VuZXJhdGVSb3V0ZUtleShlKSB7CiAgY29uc3QgdCA9CiAgICAoZSA9PSBudWxsID8gdm9pZCAwIDogZS5tZXRhLmtleSkgPz8KICAgIGUucGF0aAogICAgICAucmVwbGFjZShST1VURV9LRVlfUEFSRU5USEVTRVNfUkUsICIkMSIpCiAgICAgIC5yZXBsYWNlKFJPVVRFX0tFWV9TWU1CT0xTX1JFLCAiJDEiKQogICAgICAucmVwbGFjZShST1VURV9LRVlfTk9STUFMX1JFLCAocikgPT4gewogICAgICAgIHZhciBuOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoKG4gPSBlLnBhcmFtc1tyLnNsaWNlKDEpXSkgPT0gbnVsbCA/IHZvaWQgMCA6IG4udG9TdHJpbmcoKSkgfHwgIiIKICAgICAgICApOwogICAgICB9KTsKICByZXR1cm4gdHlwZW9mIHQgPT0gImZ1bmN0aW9uIiA/IHQoZSkgOiB0Owp9CmZ1bmN0aW9uIGlzQ2hhbmdpbmdQYWdlKGUsIHQpIHsKICByZXR1cm4gZSA9PT0gdCB8fCB0ID09PSBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVECiAgICA/ICExCiAgICA6IGdlbmVyYXRlUm91dGVLZXkoZSkgIT09IGdlbmVyYXRlUm91dGVLZXkodCkKICAgICAgPyAhMAogICAgICA6ICFlLm1hdGNoZWQuZXZlcnkoKG4sIGkpID0+IHsKICAgICAgICB2YXIgYSwgbzsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbi5jb21wb25lbnRzICYmCiAgICAgICAgICBuLmNvbXBvbmVudHMuZGVmYXVsdCA9PT0KICAgICAgICAgICgobyA9IChhID0gdC5tYXRjaGVkW2ldKSA9PSBudWxsID8gdm9pZCAwIDogYS5jb21wb25lbnRzKSA9PSBudWxsCiAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgIDogby5kZWZhdWx0KQogICAgICAgICk7CiAgICAgIH0pOwp9CmNvbnN0IHJvdXRlck9wdGlvbnMwID0gewogIHNjcm9sbEJlaGF2aW9yKGUsIHQsIHIpIHsKICAgIHZhciB1OwogICAgY29uc3QgbiA9IHVzZU51eHRBcHAoKSwKICAgICAgaSA9CiAgICAgICAgKCh1ID0gdXNlUm91dGVyJDEoKS5vcHRpb25zKSA9PSBudWxsID8gdm9pZCAwIDogdS5zY3JvbGxCZWhhdmlvclR5cGUpID8/CiAgICAgICAgImF1dG8iOwogICAgbGV0IGEgPSByIHx8IHZvaWQgMDsKICAgIGNvbnN0IG8gPQogICAgICB0eXBlb2YgZS5tZXRhLnNjcm9sbFRvVG9wID09ICJmdW5jdGlvbiIKICAgICAgICA/IGUubWV0YS5zY3JvbGxUb1RvcChlLCB0KQogICAgICAgIDogZS5tZXRhLnNjcm9sbFRvVG9wOwogICAgaWYgKAogICAgICAoIWEgJiYKICAgICAgICB0ICYmCiAgICAgICAgZSAmJgogICAgICAgIG8gIT09ICExICYmCiAgICAgICAgaXNDaGFuZ2luZ1BhZ2UoZSwgdCkgJiYKICAgICAgICAoYSA9IHsgbGVmdDogMCwgdG9wOiAwIH0pLAogICAgICAgIGUucGF0aCA9PT0gdC5wYXRoKQogICAgKQogICAgICByZXR1cm4gdC5oYXNoICYmICFlLmhhc2gKICAgICAgICA/IHsgbGVmdDogMCwgdG9wOiAwIH0KICAgICAgICA6IGUuaGFzaAogICAgICAgICAgPyB7CiAgICAgICAgICAgIGVsOiBlLmhhc2gsCiAgICAgICAgICAgIHRvcDogX2dldEhhc2hFbGVtZW50U2Nyb2xsTWFyZ2luVG9wKGUuaGFzaCksCiAgICAgICAgICAgIGJlaGF2aW9yOiBpLAogICAgICAgICAgfQogICAgICAgICAgOiAhMTsKICAgIGNvbnN0IGwgPSAoZCkgPT4gISEoZC5tZXRhLnBhZ2VUcmFuc2l0aW9uID8/IGFwcFBhZ2VUcmFuc2l0aW9uKSwKICAgICAgYyA9IGwodCkgJiYgbChlKSA/ICJwYWdlOnRyYW5zaXRpb246ZmluaXNoIiA6ICJwYWdlOmZpbmlzaCI7CiAgICByZXR1cm4gbmV3IFByb21pc2UoKGQpID0+IHsKICAgICAgbi5ob29rcy5ob29rT25jZShjLCBhc3luYyAoKSA9PiB7CiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKEUpID0+IHNldFRpbWVvdXQoRSwgMCkpLAogICAgICAgICAgZS5oYXNoICYmCiAgICAgICAgICAoYSA9IHsKICAgICAgICAgICAgZWw6IGUuaGFzaCwKICAgICAgICAgICAgdG9wOiBfZ2V0SGFzaEVsZW1lbnRTY3JvbGxNYXJnaW5Ub3AoZS5oYXNoKSwKICAgICAgICAgICAgYmVoYXZpb3I6IGksCiAgICAgICAgICB9KSwKICAgICAgICAgIGQoYSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSwKfTsKZnVuY3Rpb24gX2dldEhhc2hFbGVtZW50U2Nyb2xsTWFyZ2luVG9wKGUpIHsKICB0cnkgewogICAgY29uc3QgdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk7CiAgICBpZiAodCkKICAgICAgcmV0dXJuICgKICAgICAgICAoTnVtYmVyLnBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS5zY3JvbGxNYXJnaW5Ub3ApIHx8IDApICsKICAgICAgICAoTnVtYmVyLnBhcnNlRmxvYXQoCiAgICAgICAgICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuc2Nyb2xsUGFkZGluZ1RvcAogICAgICAgICkgfHwgMCkKICAgICAgKTsKICB9IGNhdGNoIHsgfQogIHJldHVybiAwOwp9CmNvbnN0IGNvbmZpZ1JvdXRlck9wdGlvbnMgPSB7IGhhc2hNb2RlOiAhMSwgc2Nyb2xsQmVoYXZpb3JUeXBlOiAiYXV0byIgfSwKICByb3V0ZXJPcHRpb25zID0geyAuLi5jb25maWdSb3V0ZXJPcHRpb25zLCAuLi5yb3V0ZXJPcHRpb25zMCB9LAogIHZhbGlkYXRlID0gYXN5bmMgKGUpID0+IHsKICAgIHZhciBjOwogICAgbGV0IHQsIHI7CiAgICBpZiAoISgoYyA9IGUubWV0YSkgIT0gbnVsbCAmJiBjLnZhbGlkYXRlKSkgcmV0dXJuOwogICAgY29uc3QgbiA9IHVzZU51eHRBcHAoKSwKICAgICAgaSA9IHVzZVJvdXRlciQxKCksCiAgICAgIGEgPQogICAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IFByb21pc2UucmVzb2x2ZShlLm1ldGEudmFsaWRhdGUoZSkpKSksCiAgICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgICAgcigpLAogICAgICAgICAgdCk7CiAgICBpZiAoYSA9PT0gITApIHJldHVybjsKICAgIGNvbnN0IG8gPSBjcmVhdGVFcnJvcih7CiAgICAgIHN0YXR1c0NvZGU6IChhICYmIGEuc3RhdHVzQ29kZSkgfHwgNDA0LAogICAgICBzdGF0dXNNZXNzYWdlOgogICAgICAgIChhICYmIGEuc3RhdHVzTWVzc2FnZSkgfHwgYFBhZ2UgTm90IEZvdW5kOiAke2UuZnVsbFBhdGh9YCwKICAgICAgZGF0YTogeyBwYXRoOiBlLmZ1bGxQYXRoIH0sCiAgICB9KSwKICAgICAgbCA9IGkuYmVmb3JlUmVzb2x2ZSgodSkgPT4gewogICAgICAgIGlmICgobCgpLCB1ID09PSBlKSkgewogICAgICAgICAgY29uc3QgZCA9IGkuYWZ0ZXJFYWNoKGFzeW5jICgpID0+IHsKICAgICAgICAgICAgZCgpLAogICAgICAgICAgICAgIGF3YWl0IG4ucnVuV2l0aENvbnRleHQoKCkgPT4gc2hvd0Vycm9yKG8pKSwKICAgICAgICAgICAgICB3aW5kb3cgPT0gbnVsbCB8fCB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICIiLCBlLmZ1bGxQYXRoKTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuICExOwogICAgICAgIH0KICAgICAgfSk7CiAgfSwKICByZXF1ZXN0SWRsZUNhbGxiYWNrID0KICAgIGdsb2JhbFRoaXMucmVxdWVzdElkbGVDYWxsYmFjayB8fAogICAgKChlKSA9PiB7CiAgICAgIGNvbnN0IHQgPSBEYXRlLm5vdygpLAogICAgICAgIHIgPSB7CiAgICAgICAgICBkaWRUaW1lb3V0OiAhMSwKICAgICAgICAgIHRpbWVSZW1haW5pbmc6ICgpID0+IE1hdGgubWF4KDAsIDUwIC0gKERhdGUubm93KCkgLSB0KSksCiAgICAgICAgfTsKICAgICAgcmV0dXJuIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIGUocik7CiAgICAgIH0sIDEpOwogICAgfSksCiAgY2FuY2VsSWRsZUNhbGxiYWNrID0KICAgIGdsb2JhbFRoaXMuY2FuY2VsSWRsZUNhbGxiYWNrIHx8CiAgICAoKGUpID0+IHsKICAgICAgY2xlYXJUaW1lb3V0KGUpOwogICAgfSksCiAgb25OdXh0UmVhZHkgPSAoZSkgPT4gewogICAgY29uc3QgdCA9IHVzZU51eHRBcHAoKTsKICAgIHQuaXNIeWRyYXRpbmcKICAgICAgPyB0Lmhvb2tzLmhvb2tPbmNlKCJhcHA6c3VzcGVuc2U6cmVzb2x2ZSIsICgpID0+IHsKICAgICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IGUoKSk7CiAgICAgIH0pCiAgICAgIDogcmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiBlKCkpOwogIH0sCiAgdXNlU3RhdGVLZXlQcmVmaXggPSAiJHMiOwpmdW5jdGlvbiB1c2VTdGF0ZSguLi5lKSB7CiAgY29uc3QgdCA9IHR5cGVvZiBlW2UubGVuZ3RoIC0gMV0gPT0gInN0cmluZyIgPyBlLnBvcCgpIDogdm9pZCAwOwogIHR5cGVvZiBlWzBdICE9ICJzdHJpbmciICYmIGUudW5zaGlmdCh0KTsKICBjb25zdCBbciwgbl0gPSBlOwogIGlmICghciB8fCB0eXBlb2YgciAhPSAic3RyaW5nIikKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIltudXh0XSBbdXNlU3RhdGVdIGtleSBtdXN0IGJlIGEgc3RyaW5nOiAiICsgcik7CiAgaWYgKG4gIT09IHZvaWQgMCAmJiB0eXBlb2YgbiAhPSAiZnVuY3Rpb24iKQogICAgdGhyb3cgbmV3IEVycm9yKCJbbnV4dF0gW3VzZVN0YXRlXSBpbml0IG11c3QgYmUgYSBmdW5jdGlvbjogIiArIG4pOwogIGNvbnN0IGkgPSB1c2VTdGF0ZUtleVByZWZpeCArIHIsCiAgICBhID0gdXNlTnV4dEFwcCgpLAogICAgbyA9IHRvUmVmKGEucGF5bG9hZC5zdGF0ZSwgaSk7CiAgaWYgKG8udmFsdWUgPT09IHZvaWQgMCAmJiBuKSB7CiAgICBjb25zdCBsID0gbigpOwogICAgaWYgKGlzUmVmKGwpKSByZXR1cm4gKGEucGF5bG9hZC5zdGF0ZVtpXSA9IGwpLCBsOwogICAgby52YWx1ZSA9IGw7CiAgfQogIHJldHVybiBvOwp9CmZ1bmN0aW9uIGtsb25hJDEoZSkgewogIGlmICh0eXBlb2YgZSAhPSAib2JqZWN0IikgcmV0dXJuIGU7CiAgdmFyIHQsCiAgICByLAogICAgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKTsKICBpZiAobiA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgIGlmIChlLmNvbnN0cnVjdG9yICE9PSBPYmplY3QgJiYgdHlwZW9mIGUuY29uc3RydWN0b3IgPT0gImZ1bmN0aW9uIikgewogICAgICByID0gbmV3IGUuY29uc3RydWN0b3IoKTsKICAgICAgZm9yICh0IGluIGUpCiAgICAgICAgZS5oYXNPd25Qcm9wZXJ0eSh0KSAmJiByW3RdICE9PSBlW3RdICYmIChyW3RdID0ga2xvbmEkMShlW3RdKSk7CiAgICB9IGVsc2UgewogICAgICByID0ge307CiAgICAgIGZvciAodCBpbiBlKQogICAgICAgIHQgPT09ICJfX3Byb3RvX18iCiAgICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCB0LCB7CiAgICAgICAgICAgIHZhbHVlOiBrbG9uYSQxKGVbdF0pLAogICAgICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICAgICAgd3JpdGFibGU6ICEwLAogICAgICAgICAgfSkKICAgICAgICAgIDogKHJbdF0gPSBrbG9uYSQxKGVbdF0pKTsKICAgIH0KICAgIHJldHVybiByOwogIH0KICBpZiAobiA9PT0gIltvYmplY3QgQXJyYXldIikgewogICAgZm9yICh0ID0gZS5sZW5ndGgsIHIgPSBBcnJheSh0KTsgdC0tOykgclt0XSA9IGtsb25hJDEoZVt0XSk7CiAgICByZXR1cm4gcjsKICB9CiAgcmV0dXJuIG4gPT09ICJbb2JqZWN0IFNldF0iCiAgICA/ICgociA9IG5ldyBTZXQoKSksCiAgICAgIGUuZm9yRWFjaChmdW5jdGlvbiAoaSkgewogICAgICAgIHIuYWRkKGtsb25hJDEoaSkpOwogICAgICB9KSwKICAgICAgcikKICAgIDogbiA9PT0gIltvYmplY3QgTWFwXSIKICAgICAgPyAoKHIgPSBuZXcgTWFwKCkpLAogICAgICAgIGUuZm9yRWFjaChmdW5jdGlvbiAoaSwgYSkgewogICAgICAgICAgci5zZXQoa2xvbmEkMShhKSwga2xvbmEkMShpKSk7CiAgICAgICAgfSksCiAgICAgICAgcikKICAgICAgOiBuID09PSAiW29iamVjdCBEYXRlXSIKICAgICAgICA/IG5ldyBEYXRlKCtlKQogICAgICAgIDogbiA9PT0gIltvYmplY3QgUmVnRXhwXSIKICAgICAgICAgID8gKChyID0gbmV3IFJlZ0V4cChlLnNvdXJjZSwgZS5mbGFncykpLCAoci5sYXN0SW5kZXggPSBlLmxhc3RJbmRleCksIHIpCiAgICAgICAgICA6IG4gPT09ICJbb2JqZWN0IERhdGFWaWV3XSIKICAgICAgICAgICAgPyBuZXcgZS5jb25zdHJ1Y3RvcihrbG9uYSQxKGUuYnVmZmVyKSkKICAgICAgICAgICAgOiBuID09PSAiW29iamVjdCBBcnJheUJ1ZmZlcl0iCiAgICAgICAgICAgICAgPyBlLnNsaWNlKDApCiAgICAgICAgICAgICAgOiBuLnNsaWNlKC02KSA9PT0gIkFycmF5XSIKICAgICAgICAgICAgICAgID8gbmV3IGUuY29uc3RydWN0b3IoZSkKICAgICAgICAgICAgICAgIDogZTsKfQpjb25zdCBDb29raWVEZWZhdWx0cyA9IHsKICBwYXRoOiAiLyIsCiAgd2F0Y2g6ICEwLAogIGRlY29kZTogKGUpID0+IGRlc3RyKGRlY29kZVVSSUNvbXBvbmVudChlKSksCiAgZW5jb2RlOiAoZSkgPT4KICAgIGVuY29kZVVSSUNvbXBvbmVudCh0eXBlb2YgZSA9PSAic3RyaW5nIiA/IGUgOiBKU09OLnN0cmluZ2lmeShlKSksCn0sCiAgc3RvcmUgPSB3aW5kb3cuY29va2llU3RvcmU7CmZ1bmN0aW9uIHVzZUNvb2tpZShlLCB0KSB7CiAgdmFyIGM7CiAgY29uc3QgciA9IHsgLi4uQ29va2llRGVmYXVsdHMsIC4uLnQgfTsKICByLmZpbHRlciA/PyAoci5maWx0ZXIgPSAodSkgPT4gdSA9PT0gZSk7CiAgY29uc3QgbiA9IHJlYWRSYXdDb29raWVzKHIpIHx8IHt9OwogIGxldCBpOwogIHIubWF4QWdlICE9PSB2b2lkIDAKICAgID8gKGkgPSByLm1heEFnZSAqIDFlMykKICAgIDogci5leHBpcmVzICYmIChpID0gci5leHBpcmVzLmdldFRpbWUoKSAtIERhdGUubm93KCkpOwogIGNvbnN0IGEgPSBpICE9PSB2b2lkIDAgJiYgaSA8PSAwLAogICAgbyA9IGtsb25hJDEoCiAgICAgIGEgPyB2b2lkIDAgOiBuW2VdID8/ICgoYyA9IHIuZGVmYXVsdCkgPT0gbnVsbCA/IHZvaWQgMCA6IGMuY2FsbChyKSkKICAgICksCiAgICBsID0gaSAmJiAhYSA/IGNvb2tpZVJlZihvLCBpLCByLndhdGNoICYmIHIud2F0Y2ggIT09ICJzaGFsbG93IikgOiByZWYobyk7CiAgewogICAgbGV0IHUgPSBudWxsOwogICAgdHJ5IHsKICAgICAgIXN0b3JlICYmCiAgICAgICAgdHlwZW9mIEJyb2FkY2FzdENoYW5uZWwgPCAidSIgJiYKICAgICAgICAodSA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKGBudXh0OmNvb2tpZXM6JHtlfWApKTsKICAgIH0gY2F0Y2ggeyB9CiAgICBjb25zdCBkID0gKCkgPT4gewogICAgICByLnJlYWRvbmx5IHx8CiAgICAgICAgaXNFcXVhbCQxKGwudmFsdWUsIG5bZV0pIHx8CiAgICAgICAgKHdyaXRlQ2xpZW50Q29va2llKGUsIGwudmFsdWUsIHIpLAogICAgICAgICAgKG5bZV0gPSBrbG9uYSQxKGwudmFsdWUpKSwKICAgICAgICAgIHUgPT0gbnVsbCB8fCB1LnBvc3RNZXNzYWdlKHsgdmFsdWU6IHIuZW5jb2RlKGwudmFsdWUpIH0pKTsKICAgIH0sCiAgICAgIEUgPSAoUikgPT4gewogICAgICAgIHZhciBNOwogICAgICAgIGNvbnN0IFQgPSBSLnJlZnJlc2gKICAgICAgICAgID8gKE0gPSByZWFkUmF3Q29va2llcyhyKSkgPT0gbnVsbAogICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICA6IE1bZV0KICAgICAgICAgIDogci5kZWNvZGUoUi52YWx1ZSk7CiAgICAgICAgKGIgPSAhMCksCiAgICAgICAgICAobC52YWx1ZSA9IFQpLAogICAgICAgICAgKG5bZV0gPSBrbG9uYSQxKFQpKSwKICAgICAgICAgIG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgYiA9ICExOwogICAgICAgICAgfSk7CiAgICAgIH07CiAgICBsZXQgYiA9ICExOwogICAgY29uc3QgUCA9ICEhZ2V0Q3VycmVudFNjb3BlKCk7CiAgICBpZiAoCiAgICAgIChQICYmCiAgICAgICAgb25TY29wZURpc3Bvc2UoKCkgPT4gewogICAgICAgICAgKGIgPSAhMCksIGQoKSwgdSA9PSBudWxsIHx8IHUuY2xvc2UoKTsKICAgICAgICB9KSwKICAgICAgICBzdG9yZSkKICAgICkgewogICAgICBjb25zdCBSID0gKFQpID0+IHsKICAgICAgICBjb25zdCBNID0gVC5jaGFuZ2VkLmZpbmQoKGspID0+IGsubmFtZSA9PT0gZSksCiAgICAgICAgICB4ID0gVC5kZWxldGVkLmZpbmQoKGspID0+IGsubmFtZSA9PT0gZSk7CiAgICAgICAgTSAmJiBFKHsgdmFsdWU6IE0udmFsdWUgfSksIHggJiYgRSh7IHZhbHVlOiBudWxsIH0pOwogICAgICB9OwogICAgICBzdG9yZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBSKSwKICAgICAgICBQICYmIG9uU2NvcGVEaXNwb3NlKCgpID0+IHN0b3JlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIFIpKTsKICAgIH0gZWxzZSB1ICYmICh1Lm9ubWVzc2FnZSA9ICh7IGRhdGE6IFIgfSkgPT4gRShSKSk7CiAgICByLndhdGNoCiAgICAgID8gd2F0Y2goCiAgICAgICAgbCwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBiIHx8IGQoKTsKICAgICAgICB9LAogICAgICAgIHsgZGVlcDogci53YXRjaCAhPT0gInNoYWxsb3ciIH0KICAgICAgKQogICAgICA6IGQoKTsKICB9CiAgcmV0dXJuIGw7Cn0KZnVuY3Rpb24gcmVhZFJhd0Nvb2tpZXMoZSA9IHt9KSB7CiAgcmV0dXJuIHBhcnNlJDIoZG9jdW1lbnQuY29va2llLCBlKTsKfQpmdW5jdGlvbiBzZXJpYWxpemVDb29raWUoZSwgdCwgciA9IHt9KSB7CiAgcmV0dXJuIHQgPT0gbnVsbCA/IHNlcmlhbGl6ZShlLCB0LCB7IC4uLnIsIG1heEFnZTogLTEgfSkgOiBzZXJpYWxpemUoZSwgdCwgcik7Cn0KZnVuY3Rpb24gd3JpdGVDbGllbnRDb29raWUoZSwgdCwgciA9IHt9KSB7CiAgZG9jdW1lbnQuY29va2llID0gc2VyaWFsaXplQ29va2llKGUsIHQsIHIpOwp9CmNvbnN0IE1BWF9USU1FT1VUX0RFTEFZID0gMjE0NzQ4MzY0NzsKZnVuY3Rpb24gY29va2llUmVmKGUsIHQsIHIpIHsKICBsZXQgbiwKICAgIGksCiAgICBhID0gMDsKICBjb25zdCBvID0gciA/IHJlZihlKSA6IHsgdmFsdWU6IGUgfTsKICByZXR1cm4gKAogICAgZ2V0Q3VycmVudFNjb3BlKCkgJiYKICAgIG9uU2NvcGVEaXNwb3NlKCgpID0+IHsKICAgICAgaSA9PSBudWxsIHx8IGkoKSwgY2xlYXJUaW1lb3V0KG4pOwogICAgfSksCiAgICBjdXN0b21SZWYoKGwsIGMpID0+IHsKICAgICAgciAmJiAoaSA9IHdhdGNoKG8sIGMpKTsKICAgICAgZnVuY3Rpb24gdSgpIHsKICAgICAgICAoYSA9IDApLCBjbGVhclRpbWVvdXQobik7CiAgICAgICAgY29uc3QgZCA9IHQgLSBhLAogICAgICAgICAgRSA9IGQgPCBNQVhfVElNRU9VVF9ERUxBWSA/IGQgOiBNQVhfVElNRU9VVF9ERUxBWTsKICAgICAgICBuID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICBpZiAoKChhICs9IEUpLCBhIDwgdCkpIHJldHVybiB1KCk7CiAgICAgICAgICAoby52YWx1ZSA9IHZvaWQgMCksIGMoKTsKICAgICAgICB9LCBFKTsKICAgICAgfQogICAgICByZXR1cm4gewogICAgICAgIGdldCgpIHsKICAgICAgICAgIHJldHVybiBsKCksIG8udmFsdWU7CiAgICAgICAgfSwKICAgICAgICBzZXQoZCkgewogICAgICAgICAgdSgpLCAoby52YWx1ZSA9IGQpLCBjKCk7CiAgICAgICAgfSwKICAgICAgfTsKICAgIH0pCiAgKTsKfQphc3luYyBmdW5jdGlvbiBwcmVsb2FkUm91dGVDb21wb25lbnRzKGUsIHQgPSB1c2VSb3V0ZXIkMSgpKSB7CiAgY29uc3QgeyBwYXRoOiByLCBtYXRjaGVkOiBuIH0gPSB0LnJlc29sdmUoZSk7CiAgaWYgKAogICAgIW4ubGVuZ3RoIHx8CiAgICAodC5fcm91dGVQcmVsb2FkZWQgfHwgKHQuX3JvdXRlUHJlbG9hZGVkID0gbmV3IFNldCgpKSwKICAgICAgdC5fcm91dGVQcmVsb2FkZWQuaGFzKHIpKQogICkKICAgIHJldHVybjsKICBjb25zdCBpID0gKHQuX3ByZWxvYWRQcm9taXNlcyA9IHQuX3ByZWxvYWRQcm9taXNlcyB8fCBbXSk7CiAgaWYgKGkubGVuZ3RoID4gNCkKICAgIHJldHVybiBQcm9taXNlLmFsbChpKS50aGVuKCgpID0+IHByZWxvYWRSb3V0ZUNvbXBvbmVudHMoZSwgdCkpOwogIHQuX3JvdXRlUHJlbG9hZGVkLmFkZChyKTsKICBjb25zdCBhID0gbgogICAgLm1hcCgobykgPT4gewogICAgICB2YXIgbDsKICAgICAgcmV0dXJuIChsID0gby5jb21wb25lbnRzKSA9PSBudWxsID8gdm9pZCAwIDogbC5kZWZhdWx0OwogICAgfSkKICAgIC5maWx0ZXIoKG8pID0+IHR5cGVvZiBvID09ICJmdW5jdGlvbiIpOwogIGZvciAoY29uc3QgbyBvZiBhKSB7CiAgICBjb25zdCBsID0gUHJvbWlzZS5yZXNvbHZlKG8oKSkKICAgICAgLmNhdGNoKCgpID0+IHsgfSkKICAgICAgLmZpbmFsbHkoKCkgPT4gaS5zcGxpY2UoaS5pbmRleE9mKGwpKSk7CiAgICBpLnB1c2gobCk7CiAgfQogIGF3YWl0IFByb21pc2UuYWxsKGkpOwp9CmZ1bmN0aW9uIHJlbG9hZE51eHRBcHAoZSA9IHt9KSB7CiAgY29uc3QgdCA9IGUucGF0aCB8fCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CiAgbGV0IHIgPSB7fTsKICB0cnkgewogICAgciA9IGRlc3RyKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oIm51eHQ6cmVsb2FkIikgfHwgInt9Iik7CiAgfSBjYXRjaCB7IH0KICBpZiAoCiAgICBlLmZvcmNlIHx8CiAgICAociA9PSBudWxsID8gdm9pZCAwIDogci5wYXRoKSAhPT0gdCB8fAogICAgKHIgPT0gbnVsbCA/IHZvaWQgMCA6IHIuZXhwaXJlcykgPCBEYXRlLm5vdygpCiAgKSB7CiAgICB0cnkgewogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKAogICAgICAgICJudXh0OnJlbG9hZCIsCiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBwYXRoOiB0LCBleHBpcmVzOiBEYXRlLm5vdygpICsgKGUudHRsID8/IDFlNCkgfSkKICAgICAgKTsKICAgIH0gY2F0Y2ggeyB9CiAgICBpZiAoZS5wZXJzaXN0U3RhdGUpCiAgICAgIHRyeSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgKICAgICAgICAgICJudXh0OnJlbG9hZDpzdGF0ZSIsCiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IHN0YXRlOiB1c2VOdXh0QXBwKCkucGF5bG9hZC5zdGF0ZSB9KQogICAgICAgICk7CiAgICAgIH0gY2F0Y2ggeyB9CiAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgIT09IHQKICAgICAgPyAod2luZG93LmxvY2F0aW9uLmhyZWYgPSB0KQogICAgICA6IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsKICB9Cn0KY29uc3QgZmlyc3ROb25VbmRlZmluZWQgPSAoLi4uZSkgPT4gZS5maW5kKCh0KSA9PiB0ICE9PSB2b2lkIDApOwpmdW5jdGlvbiBkZWZpbmVOdXh0TGluayhlKSB7CiAgY29uc3QgdCA9IGUuY29tcG9uZW50TmFtZSB8fCAiTnV4dExpbmsiOwogIGZ1bmN0aW9uIHIoYSkgewogICAgcmV0dXJuIHR5cGVvZiBhID09ICJzdHJpbmciICYmIGEuc3RhcnRzV2l0aCgiIyIpOwogIH0KICBmdW5jdGlvbiBuKGEsIG8pIHsKICAgIGlmICghYSB8fCAoZS50cmFpbGluZ1NsYXNoICE9PSAiYXBwZW5kIiAmJiBlLnRyYWlsaW5nU2xhc2ggIT09ICJyZW1vdmUiKSkKICAgICAgcmV0dXJuIGE7CiAgICBpZiAodHlwZW9mIGEgPT0gInN0cmluZyIpCiAgICAgIHJldHVybiBhcHBseVRyYWlsaW5nU2xhc2hCZWhhdmlvcihhLCBlLnRyYWlsaW5nU2xhc2gpOwogICAgY29uc3QgbCA9ICJwYXRoIiBpbiBhICYmIGEucGF0aCAhPT0gdm9pZCAwID8gYS5wYXRoIDogbyhhKS5wYXRoOwogICAgcmV0dXJuIHsKICAgICAgLi4uYSwKICAgICAgbmFtZTogdm9pZCAwLAogICAgICBwYXRoOiBhcHBseVRyYWlsaW5nU2xhc2hCZWhhdmlvcihsLCBlLnRyYWlsaW5nU2xhc2gpLAogICAgfTsKICB9CiAgZnVuY3Rpb24gaShhKSB7CiAgICBjb25zdCBvID0gdXNlUm91dGVyJDEoKSwKICAgICAgbCA9IHVzZVJ1bnRpbWVDb25maWcoKSwKICAgICAgYyA9IGNvbXB1dGVkKCgpID0+ICEhYS50YXJnZXQgJiYgYS50YXJnZXQgIT09ICJfc2VsZiIpLAogICAgICB1ID0gY29tcHV0ZWQoKCkgPT4gewogICAgICAgIGNvbnN0IE0gPSBhLnRvIHx8IGEuaHJlZiB8fCAiIjsKICAgICAgICByZXR1cm4gdHlwZW9mIE0gPT0gInN0cmluZyIgJiYgaGFzUHJvdG9jb2woTSwgeyBhY2NlcHRSZWxhdGl2ZTogITAgfSk7CiAgICAgIH0pLAogICAgICBkID0gcmVzb2x2ZUNvbXBvbmVudCgiUm91dGVyTGluayIpLAogICAgICBFID0gZCAmJiB0eXBlb2YgZCAhPSAic3RyaW5nIiA/IGQudXNlTGluayA6IHZvaWQgMCwKICAgICAgYiA9IGNvbXB1dGVkKCgpID0+IHsKICAgICAgICBpZiAoYS5leHRlcm5hbCkgcmV0dXJuICEwOwogICAgICAgIGNvbnN0IE0gPSBhLnRvIHx8IGEuaHJlZiB8fCAiIjsKICAgICAgICByZXR1cm4gdHlwZW9mIE0gPT0gIm9iamVjdCIgPyAhMSA6IE0gPT09ICIiIHx8IHUudmFsdWU7CiAgICAgIH0pLAogICAgICBQID0gY29tcHV0ZWQoKCkgPT4gewogICAgICAgIGNvbnN0IE0gPSBhLnRvIHx8IGEuaHJlZiB8fCAiIjsKICAgICAgICByZXR1cm4gYi52YWx1ZSA/IE0gOiBuKE0sIG8ucmVzb2x2ZSk7CiAgICAgIH0pLAogICAgICBSID0gYi52YWx1ZSB8fCBFID09IG51bGwgPyB2b2lkIDAgOiBFKHsgLi4uYSwgdG86IFAgfSksCiAgICAgIFQgPSBjb21wdXRlZCgoKSA9PiB7CiAgICAgICAgdmFyIE07CiAgICAgICAgaWYgKCFQLnZhbHVlIHx8IHUudmFsdWUgfHwgcihQLnZhbHVlKSkgcmV0dXJuIFAudmFsdWU7CiAgICAgICAgaWYgKGIudmFsdWUpIHsKICAgICAgICAgIGNvbnN0IHggPQogICAgICAgICAgICB0eXBlb2YgUC52YWx1ZSA9PSAib2JqZWN0IiAmJiAicGF0aCIgaW4gUC52YWx1ZQogICAgICAgICAgICAgID8gcmVzb2x2ZVJvdXRlT2JqZWN0KFAudmFsdWUpCiAgICAgICAgICAgICAgOiBQLnZhbHVlLAogICAgICAgICAgICBrID0gdHlwZW9mIHggPT0gIm9iamVjdCIgPyBvLnJlc29sdmUoeCkuaHJlZiA6IHg7CiAgICAgICAgICByZXR1cm4gbihrLCBvLnJlc29sdmUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHlwZW9mIFAudmFsdWUgPT0gIm9iamVjdCIKICAgICAgICAgID8gKChNID0gby5yZXNvbHZlKFAudmFsdWUpKSA9PSBudWxsID8gdm9pZCAwIDogTS5ocmVmKSA/PyBudWxsCiAgICAgICAgICA6IG4oam9pblVSTChsLmFwcC5iYXNlVVJMLCBQLnZhbHVlKSwgby5yZXNvbHZlKTsKICAgICAgfSk7CiAgICByZXR1cm4gewogICAgICB0bzogUCwKICAgICAgaGFzVGFyZ2V0OiBjLAogICAgICBpc0Fic29sdXRlVXJsOiB1LAogICAgICBpc0V4dGVybmFsOiBiLAogICAgICBocmVmOiBULAogICAgICBpc0FjdGl2ZToKICAgICAgICAoUiA9PSBudWxsID8gdm9pZCAwIDogUi5pc0FjdGl2ZSkgPz8KICAgICAgICBjb21wdXRlZCgoKSA9PiBQLnZhbHVlID09PSBvLmN1cnJlbnRSb3V0ZS52YWx1ZS5wYXRoKSwKICAgICAgaXNFeGFjdEFjdGl2ZToKICAgICAgICAoUiA9PSBudWxsID8gdm9pZCAwIDogUi5pc0V4YWN0QWN0aXZlKSA/PwogICAgICAgIGNvbXB1dGVkKCgpID0+IFAudmFsdWUgPT09IG8uY3VycmVudFJvdXRlLnZhbHVlLnBhdGgpLAogICAgICByb3V0ZToKICAgICAgICAoUiA9PSBudWxsID8gdm9pZCAwIDogUi5yb3V0ZSkgPz8gY29tcHV0ZWQoKCkgPT4gby5yZXNvbHZlKFAudmFsdWUpKSwKICAgICAgYXN5bmMgbmF2aWdhdGUoKSB7CiAgICAgICAgYXdhaXQgbmF2aWdhdGVUbyhULnZhbHVlLCB7CiAgICAgICAgICByZXBsYWNlOiBhLnJlcGxhY2UsCiAgICAgICAgICBleHRlcm5hbDogYi52YWx1ZSB8fCBjLnZhbHVlLAogICAgICAgIH0pOwogICAgICB9LAogICAgfTsKICB9CiAgcmV0dXJuIGRlZmluZUNvbXBvbmVudCQxKHsKICAgIG5hbWU6IHQsCiAgICBwcm9wczogewogICAgICB0bzogeyB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBocmVmOiB7IHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHRhcmdldDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHJlbDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIG5vUmVsOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHByZWZldGNoOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIHByZWZldGNoT246IHsgdHlwZTogW1N0cmluZywgT2JqZWN0XSwgZGVmYXVsdDogdm9pZCAwLCByZXF1aXJlZDogITEgfSwKICAgICAgbm9QcmVmZXRjaDogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBhY3RpdmVDbGFzczogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIGV4YWN0QWN0aXZlQ2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBwcmVmZXRjaGVkQ2xhc3M6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICByZXBsYWNlOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCwgcmVxdWlyZWQ6ICExIH0sCiAgICAgIGFyaWFDdXJyZW50VmFsdWU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBleHRlcm5hbDogeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiB2b2lkIDAsIHJlcXVpcmVkOiAhMSB9LAogICAgICBjdXN0b206IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogdm9pZCAwLCByZXF1aXJlZDogITEgfSwKICAgIH0sCiAgICB1c2VMaW5rOiBpLAogICAgc2V0dXAoYSwgeyBzbG90czogbyB9KSB7CiAgICAgIGNvbnN0IGwgPSB1c2VSb3V0ZXIkMSgpLAogICAgICAgIHsKICAgICAgICAgIHRvOiBjLAogICAgICAgICAgaHJlZjogdSwKICAgICAgICAgIG5hdmlnYXRlOiBkLAogICAgICAgICAgaXNFeHRlcm5hbDogRSwKICAgICAgICAgIGhhc1RhcmdldDogYiwKICAgICAgICAgIGlzQWJzb2x1dGVVcmw6IFAsCiAgICAgICAgfSA9IGkoYSksCiAgICAgICAgUiA9IHJlZighMSksCiAgICAgICAgVCA9IHJlZihudWxsKSwKICAgICAgICBNID0gKFMpID0+IHsKICAgICAgICAgIHZhciBBOwogICAgICAgICAgVC52YWx1ZSA9IGEuY3VzdG9tCiAgICAgICAgICAgID8gKEEgPSBTID09IG51bGwgPyB2b2lkIDAgOiBTLiRlbCkgPT0gbnVsbAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBBLm5leHRFbGVtZW50U2libGluZwogICAgICAgICAgICA6IFMgPT0gbnVsbAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBTLiRlbDsKICAgICAgICB9OwogICAgICBmdW5jdGlvbiB4KFMpIHsKICAgICAgICB2YXIgQSwgTzsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgIVIudmFsdWUgJiYKICAgICAgICAgICh0eXBlb2YgYS5wcmVmZXRjaE9uID09ICJzdHJpbmciCiAgICAgICAgICAgID8gYS5wcmVmZXRjaE9uID09PSBTCiAgICAgICAgICAgIDogKChBID0gYS5wcmVmZXRjaE9uKSA9PSBudWxsID8gdm9pZCAwIDogQVtTXSkgPz8KICAgICAgICAgICAgKChPID0gZS5wcmVmZXRjaE9uKSA9PSBudWxsID8gdm9pZCAwIDogT1tTXSkpICYmCiAgICAgICAgICAoYS5wcmVmZXRjaCA/PyBlLnByZWZldGNoKSAhPT0gITEgJiYKICAgICAgICAgIGEubm9QcmVmZXRjaCAhPT0gITAgJiYKICAgICAgICAgIGEudGFyZ2V0ICE9PSAiX2JsYW5rIiAmJgogICAgICAgICAgIWlzU2xvd0Nvbm5lY3Rpb24oKQogICAgICAgICk7CiAgICAgIH0KICAgICAgYXN5bmMgZnVuY3Rpb24gayhTID0gdXNlTnV4dEFwcCgpKSB7CiAgICAgICAgaWYgKFIudmFsdWUpIHJldHVybjsKICAgICAgICBSLnZhbHVlID0gITA7CiAgICAgICAgY29uc3QgQSA9CiAgICAgICAgICB0eXBlb2YgYy52YWx1ZSA9PSAic3RyaW5nIgogICAgICAgICAgICA/IGMudmFsdWUKICAgICAgICAgICAgOiBFLnZhbHVlCiAgICAgICAgICAgICAgPyByZXNvbHZlUm91dGVPYmplY3QoYy52YWx1ZSkKICAgICAgICAgICAgICA6IGwucmVzb2x2ZShjLnZhbHVlKS5mdWxsUGF0aCwKICAgICAgICAgIE8gPSBFLnZhbHVlID8gbmV3IFVSTChBLCB3aW5kb3cubG9jYXRpb24uaHJlZikuaHJlZiA6IEE7CiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwogICAgICAgICAgUy5ob29rcy5jYWxsSG9vaygibGluazpwcmVmZXRjaCIsIE8pLmNhdGNoKCgpID0+IHsgfSksCiAgICAgICAgICAhRS52YWx1ZSAmJgogICAgICAgICAgIWIudmFsdWUgJiYKICAgICAgICAgIHByZWxvYWRSb3V0ZUNvbXBvbmVudHMoYy52YWx1ZSwgbCkuY2F0Y2goKCkgPT4geyB9KSwKICAgICAgICBdKTsKICAgICAgfQogICAgICBpZiAoeCgidmlzaWJpbGl0eSIpKSB7CiAgICAgICAgY29uc3QgUyA9IHVzZU51eHRBcHAoKTsKICAgICAgICBsZXQgQSwKICAgICAgICAgIE8gPSBudWxsOwogICAgICAgIG9uTW91bnRlZCgoKSA9PiB7CiAgICAgICAgICBjb25zdCBGID0gdXNlT2JzZXJ2ZXIoKTsKICAgICAgICAgIG9uTnV4dFJlYWR5KCgpID0+IHsKICAgICAgICAgICAgQSA9IHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gewogICAgICAgICAgICAgIHZhciBEOwogICAgICAgICAgICAgIChEID0gVCA9PSBudWxsID8gdm9pZCAwIDogVC52YWx1ZSkgIT0gbnVsbCAmJgogICAgICAgICAgICAgICAgRC50YWdOYW1lICYmCiAgICAgICAgICAgICAgICAoTyA9IEYub2JzZXJ2ZShULnZhbHVlLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgIE8gPT0gbnVsbCB8fCBPKCksIChPID0gbnVsbCksIGF3YWl0IGsoUyk7CiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgfSksCiAgICAgICAgICBvbkJlZm9yZVVubW91bnQoKCkgPT4gewogICAgICAgICAgICBBICYmIGNhbmNlbElkbGVDYWxsYmFjayhBKSwgTyA9PSBudWxsIHx8IE8oKSwgKE8gPSBudWxsKTsKICAgICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgdmFyIE87CiAgICAgICAgaWYgKCFFLnZhbHVlICYmICFiLnZhbHVlICYmICFyKGMudmFsdWUpKSB7CiAgICAgICAgICBjb25zdCBGID0gewogICAgICAgICAgICByZWY6IE0sCiAgICAgICAgICAgIHRvOiBjLnZhbHVlLAogICAgICAgICAgICBhY3RpdmVDbGFzczogYS5hY3RpdmVDbGFzcyB8fCBlLmFjdGl2ZUNsYXNzLAogICAgICAgICAgICBleGFjdEFjdGl2ZUNsYXNzOiBhLmV4YWN0QWN0aXZlQ2xhc3MgfHwgZS5leGFjdEFjdGl2ZUNsYXNzLAogICAgICAgICAgICByZXBsYWNlOiBhLnJlcGxhY2UsCiAgICAgICAgICAgIGFyaWFDdXJyZW50VmFsdWU6IGEuYXJpYUN1cnJlbnRWYWx1ZSwKICAgICAgICAgICAgY3VzdG9tOiBhLmN1c3RvbSwKICAgICAgICAgIH07CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBhLmN1c3RvbSB8fAogICAgICAgICAgICAoeCgiaW50ZXJhY3Rpb24iKSAmJgogICAgICAgICAgICAgICgoRi5vblBvaW50ZXJlbnRlciA9IGsuYmluZChudWxsLCB2b2lkIDApKSwKICAgICAgICAgICAgICAgIChGLm9uRm9jdXMgPSBrLmJpbmQobnVsbCwgdm9pZCAwKSkpLAogICAgICAgICAgICAgIFIudmFsdWUgJiYgKEYuY2xhc3MgPSBhLnByZWZldGNoZWRDbGFzcyB8fCBlLnByZWZldGNoZWRDbGFzcyksCiAgICAgICAgICAgICAgKEYucmVsID0gYS5yZWwgfHwgdm9pZCAwKSksCiAgICAgICAgICAgIGgkMihyZXNvbHZlQ29tcG9uZW50KCJSb3V0ZXJMaW5rIiksIEYsIG8uZGVmYXVsdCkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IFMgPSBhLnRhcmdldCB8fCBudWxsLAogICAgICAgICAgQSA9CiAgICAgICAgICAgIGZpcnN0Tm9uVW5kZWZpbmVkKAogICAgICAgICAgICAgIGEubm9SZWwgPyAiIiA6IGEucmVsLAogICAgICAgICAgICAgIGUuZXh0ZXJuYWxSZWxBdHRyaWJ1dGUsCiAgICAgICAgICAgICAgUC52YWx1ZSB8fCBiLnZhbHVlID8gIm5vb3BlbmVyIG5vcmVmZXJyZXIiIDogIiIKICAgICAgICAgICAgKSB8fCBudWxsOwogICAgICAgIHJldHVybiBhLmN1c3RvbQogICAgICAgICAgPyBvLmRlZmF1bHQKICAgICAgICAgICAgPyBvLmRlZmF1bHQoewogICAgICAgICAgICAgIGhyZWY6IHUudmFsdWUsCiAgICAgICAgICAgICAgbmF2aWdhdGU6IGQsCiAgICAgICAgICAgICAgcHJlZmV0Y2g6IGssCiAgICAgICAgICAgICAgZ2V0IHJvdXRlKCkgewogICAgICAgICAgICAgICAgaWYgKCF1LnZhbHVlKSByZXR1cm47CiAgICAgICAgICAgICAgICBjb25zdCBGID0gbmV3IFVSTCh1LnZhbHVlLCB3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICBwYXRoOiBGLnBhdGhuYW1lLAogICAgICAgICAgICAgICAgICBmdWxsUGF0aDogRi5wYXRobmFtZSwKICAgICAgICAgICAgICAgICAgZ2V0IHF1ZXJ5KCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVF1ZXJ5JDEoRi5zZWFyY2gpOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBoYXNoOiBGLmhhc2gsCiAgICAgICAgICAgICAgICAgIHBhcmFtczoge30sCiAgICAgICAgICAgICAgICAgIG5hbWU6IHZvaWQgMCwKICAgICAgICAgICAgICAgICAgbWF0Y2hlZDogW10sCiAgICAgICAgICAgICAgICAgIHJlZGlyZWN0ZWRGcm9tOiB2b2lkIDAsCiAgICAgICAgICAgICAgICAgIG1ldGE6IHt9LAogICAgICAgICAgICAgICAgICBocmVmOiB1LnZhbHVlLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJlbDogQSwKICAgICAgICAgICAgICB0YXJnZXQ6IFMsCiAgICAgICAgICAgICAgaXNFeHRlcm5hbDogRS52YWx1ZSB8fCBiLnZhbHVlLAogICAgICAgICAgICAgIGlzQWN0aXZlOiAhMSwKICAgICAgICAgICAgICBpc0V4YWN0QWN0aXZlOiAhMSwKICAgICAgICAgICAgfSkKICAgICAgICAgICAgOiBudWxsCiAgICAgICAgICA6IGgkMigKICAgICAgICAgICAgImEiLAogICAgICAgICAgICB7IHJlZjogVCwgaHJlZjogdS52YWx1ZSB8fCBudWxsLCByZWw6IEEsIHRhcmdldDogUyB9LAogICAgICAgICAgICAoTyA9IG8uZGVmYXVsdCkgPT0gbnVsbCA/IHZvaWQgMCA6IE8uY2FsbChvKQogICAgICAgICAgKTsKICAgICAgfTsKICAgIH0sCiAgfSk7Cn0KY29uc3QgX19udXh0X2NvbXBvbmVudF8xJDEgPSBkZWZpbmVOdXh0TGluayhudXh0TGlua0RlZmF1bHRzKTsKZnVuY3Rpb24gYXBwbHlUcmFpbGluZ1NsYXNoQmVoYXZpb3IoZSwgdCkgewogIGNvbnN0IHIgPSB0ID09PSAiYXBwZW5kIiA/IHdpdGhUcmFpbGluZ1NsYXNoIDogd2l0aG91dFRyYWlsaW5nU2xhc2g7CiAgcmV0dXJuIGhhc1Byb3RvY29sKGUpICYmICFlLnN0YXJ0c1dpdGgoImh0dHAiKSA/IGUgOiByKGUsICEwKTsKfQpmdW5jdGlvbiB1c2VPYnNlcnZlcigpIHsKICBjb25zdCBlID0gdXNlTnV4dEFwcCgpOwogIGlmIChlLl9vYnNlcnZlcikgcmV0dXJuIGUuX29ic2VydmVyOwogIGxldCB0ID0gbnVsbDsKICBjb25zdCByID0gbmV3IE1hcCgpLAogICAgbiA9IChhLCBvKSA9PiAoCiAgICAgIHQgfHwKICAgICAgKHQgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGwpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IGMgb2YgbCkgewogICAgICAgICAgY29uc3QgdSA9IHIuZ2V0KGMudGFyZ2V0KTsKICAgICAgICAgIChjLmlzSW50ZXJzZWN0aW5nIHx8IGMuaW50ZXJzZWN0aW9uUmF0aW8gPiAwKSAmJiB1ICYmIHUoKTsKICAgICAgICB9CiAgICAgIH0pKSwKICAgICAgci5zZXQoYSwgbyksCiAgICAgIHQub2JzZXJ2ZShhKSwKICAgICAgKCkgPT4gewogICAgICAgIHIuZGVsZXRlKGEpLAogICAgICAgICAgdCA9PSBudWxsIHx8IHQudW5vYnNlcnZlKGEpLAogICAgICAgICAgci5zaXplID09PSAwICYmICh0ID09IG51bGwgfHwgdC5kaXNjb25uZWN0KCksICh0ID0gbnVsbCkpOwogICAgICB9CiAgICApOwogIHJldHVybiAoZS5fb2JzZXJ2ZXIgPSB7IG9ic2VydmU6IG4gfSk7Cn0KY29uc3QgSVNfMkdfUkUgPSAvMmcvOwpmdW5jdGlvbiBpc1Nsb3dDb25uZWN0aW9uKCkgewogIGNvbnN0IGUgPSBuYXZpZ2F0b3IuY29ubmVjdGlvbjsKICByZXR1cm4gISEoZSAmJiAoZS5zYXZlRGF0YSB8fCBJU18yR19SRS50ZXN0KGUuZWZmZWN0aXZlVHlwZSkpKTsKfQpjb25zdCBpbmxpbmVDb25maWcgPSB7IG51eHQ6IHt9LCBfX3N3aXBlcjogeyBidW5kbGVkOiAhMCB9IH0sCiAgX19hcHBDb25maWcgPSBkZWZ1Rm4oaW5saW5lQ29uZmlnKTsKZnVuY3Rpb24gdXNlQXBwQ29uZmlnKCkgewogIGNvbnN0IGUgPSB1c2VOdXh0QXBwKCk7CiAgcmV0dXJuIGUuX2FwcENvbmZpZyB8fCAoZS5fYXBwQ29uZmlnID0gcmVhY3RpdmUoX19hcHBDb25maWcpKSwgZS5fYXBwQ29uZmlnOwp9CmNvbnN0IHJlZGlyZWN0XzQ1Z2xvYmFsID0gKGUpID0+IHsKICBjb25zdCB0ID0gewogICAgIi9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciI6CiAgICAgICIvc29sdXRpb25zL2J1eS1zZWxsLXBlcmZlY3Rtb25leS12b3VjaGVyIiwKICAgICIvUnUvYnV5LXNlbGwtcGVyZmVjdG1vbmV5LXZvdWNoZXIiOgogICAgICAiL1J1L3NvbHV0aW9ucy9idXktc2VsbC1wZXJmZWN0bW9uZXktdm91Y2hlciIsCiAgICAiL3JlY2VpdmUtcGF5cGFsIjogIi9zb2x1dGlvbnMvZXhjaGFuZ2UtcGF5cGFsIiwKICAgICIvc2VydmljZXMvZXhjaGFuZ2UtcGVyZmVjdG1vbmV5LXBheXBhbCI6CiAgICAgICIvc2VydmljZXMvcGVyZmVjdG1vbmV5LXRvLXBheXBhbC1leGNoYW5nZSIsCiAgICAiL3doeS1zaWduLXVwIjogIi9hbWwta3ljLXBvbGljeSIsCiAgICAiL3N0b3J5LW9mLXVzIjogIi9Fbi9jb250YWN0LXVzIiwKICAgICIvUnUvcGF5cGFsLWludm9pY2UiOiAiL1J1L3NvbHV0aW9ucy9wYXltZW50LWdhdGUiLAogICAgIi9SdS9zZXJ2aWNlcy9leGNoYW5nZS1wZXJmZWN0bW9uZXktcGF5cGFsIjoKICAgICAgIi9SdS9zZXJ2aWNlcy9wZXJmZWN0bW9uZXktdG8tcGF5cGFsLWV4Y2hhbmdlIiwKICAgICIvdGV0aGVyLXRvLVBtdm91Y2hlci1leGNoYW5nZSI6ICIvIiwKICAgICIvUnUvdmlzYS1tYXN0ZXItaW52b2ljZSI6ICIvc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAiL1J1L3RldGhlci10by1QbXZvdWNoZXItZXhjaGFuZ2U/c3RlcD0xIjogIi8iLAogICAgIi9wYXlwYWwtaW52b2ljZSI6ICIvc29sdXRpb25zL3BheW1lbnQtZ2F0ZSIsCiAgICAiL2Rpc2NsYWltZXIiOiAiL3Rlcm1zLW9mLXNlcnZpY2VzIiwKICAgICIvcGF5bWVudC1nYXRlIjogIi9zb2x1dGlvbnMvcGF5bWVudC1nYXRlIiwKICAgICIvUnUvcmVjZWl2ZS1wYXlwYWwiOiAiL1J1L3NvbHV0aW9ucy9leGNoYW5nZS1wYXlwYWwiLAogICAgIi9SdS9wYXltZW50LWdhdGUiOiAiL1J1L3NvbHV0aW9ucy9wYXltZW50LWdhdGUiLAogICAgIi9SdS90ZXRoZXItdG8tUG12b3VjaGVyLWV4Y2hhbmdlIjogIi8iLAogIH07CiAgaWYgKHRbZS5wYXRoXSkgcmV0dXJuIG5hdmlnYXRlVG8odFtlLnBhdGhdLCB7IHJlZGlyZWN0Q29kZTogMzAxIH0pOwp9LAogIG1hbmlmZXN0XzQ1cm91dGVfNDVydWxlID0gYXN5bmMgKGUpID0+IHsKICAgIGxldCB0LCByOwogICAgY29uc3QgbiA9CiAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGdldFJvdXRlUnVsZXMoeyBwYXRoOiBlLnBhdGggfSkpKSwKICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgIHIoKSwKICAgICAgICB0KTsKICAgIGlmIChuLnJlZGlyZWN0KQogICAgICByZXR1cm4gaGFzUHJvdG9jb2wobi5yZWRpcmVjdCwgeyBhY2NlcHRSZWxhdGl2ZTogITAgfSkKICAgICAgICA/ICgod2luZG93LmxvY2F0aW9uLmhyZWYgPSBuLnJlZGlyZWN0KSwgITEpCiAgICAgICAgOiBuLnJlZGlyZWN0OwogIH0sCiAgZ2xvYmFsTWlkZGxld2FyZSA9IFt2YWxpZGF0ZSwgcmVkaXJlY3RfNDVnbG9iYWwsIG1hbmlmZXN0XzQ1cm91dGVfNDVydWxlXSwKICBuYW1lZE1pZGRsZXdhcmUgPSB7CiAgICBhdXRoOiAoKSA9PgogICAgICBfX3ZpdGVQcmVsb2FkKCgpID0+IGltcG9ydCgiLi9EbGgzX1c5LS5qcyIpLCBbXSwgaW1wb3J0Lm1ldGEudXJsKSwKICB9OwpmdW5jdGlvbiBjcmVhdGVDdXJyZW50TG9jYXRpb24oZSwgdCwgcikgewogIGNvbnN0IHsgcGF0aG5hbWU6IG4sIHNlYXJjaDogaSwgaGFzaDogYSB9ID0gdCwKICAgIG8gPSBlLmluZGV4T2YoIiMiKTsKICBpZiAobyA+IC0xKSB7CiAgICBjb25zdCB1ID0gYS5pbmNsdWRlcyhlLnNsaWNlKG8pKSA/IGUuc2xpY2UobykubGVuZ3RoIDogMTsKICAgIGxldCBkID0gYS5zbGljZSh1KTsKICAgIHJldHVybiBkWzBdICE9PSAiLyIgJiYgKGQgPSAiLyIgKyBkKSwgd2l0aG91dEJhc2UoZCwgIiIpOwogIH0KICBjb25zdCBsID0gd2l0aG91dEJhc2UobiwgZSksCiAgICBjID0gIXIgfHwgaXNFcXVhbCQyKGwsIHIsIHsgdHJhaWxpbmdTbGFzaDogITAgfSkgPyBsIDogcjsKICByZXR1cm4gYyArIChjLmluY2x1ZGVzKCI/IikgPyAiIiA6IGkpICsgYTsKfQpjb25zdCBwbHVnaW4kMiA9IGRlZmluZU51eHRQbHVnaW4oewogIG5hbWU6ICJudXh0OnJvdXRlciIsCiAgZW5mb3JjZTogInByZSIsCiAgYXN5bmMgc2V0dXAoZSkgewogICAgdmFyIE07CiAgICBsZXQgdCwKICAgICAgciwKICAgICAgbiA9IHVzZVJ1bnRpbWVDb25maWcoKS5hcHAuYmFzZVVSTDsKICAgIGNvbnN0IGkgPQogICAgICAoKE0gPSByb3V0ZXJPcHRpb25zLmhpc3RvcnkpID09IG51bGwKICAgICAgICA/IHZvaWQgMAogICAgICAgIDogTS5jYWxsKHJvdXRlck9wdGlvbnMsIG4pKSA/PyBjcmVhdGVXZWJIaXN0b3J5KG4pLAogICAgICBhID0gcm91dGVyT3B0aW9ucy5yb3V0ZXMKICAgICAgICA/ICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IHJvdXRlck9wdGlvbnMucm91dGVzKF9yb3V0ZXMpKSksCiAgICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgICAgcigpLAogICAgICAgICAgdCA/PyBfcm91dGVzKQogICAgICAgIDogX3JvdXRlczsKICAgIGxldCBvOwogICAgY29uc3QgbCA9IGNyZWF0ZVJvdXRlcih7CiAgICAgIC4uLnJvdXRlck9wdGlvbnMsCiAgICAgIHNjcm9sbEJlaGF2aW9yOiAoeCwgaywgUykgPT4gewogICAgICAgIGlmIChrID09PSBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVEKSB7CiAgICAgICAgICBvID0gUzsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKHJvdXRlck9wdGlvbnMuc2Nyb2xsQmVoYXZpb3IpIHsKICAgICAgICAgIGlmICgKICAgICAgICAgICAgKChsLm9wdGlvbnMuc2Nyb2xsQmVoYXZpb3IgPSByb3V0ZXJPcHRpb25zLnNjcm9sbEJlaGF2aW9yKSwKICAgICAgICAgICAgICAic2Nyb2xsUmVzdG9yYXRpb24iIGluIHdpbmRvdy5oaXN0b3J5KQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGNvbnN0IEEgPSBsLmJlZm9yZUVhY2goKCkgPT4gewogICAgICAgICAgICAgIEEoKSwgKHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gIm1hbnVhbCIpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByb3V0ZXJPcHRpb25zLnNjcm9sbEJlaGF2aW9yKAogICAgICAgICAgICB4LAogICAgICAgICAgICBTVEFSVF9MT0NBVElPTl9OT1JNQUxJWkVELAogICAgICAgICAgICBvIHx8IFMKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9LAogICAgICBoaXN0b3J5OiBpLAogICAgICByb3V0ZXM6IGEsCiAgICB9KTsKICAgICJzY3JvbGxSZXN0b3JhdGlvbiIgaW4gd2luZG93Lmhpc3RvcnkgJiYKICAgICAgKHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gImF1dG8iKSwKICAgICAgZS52dWVBcHAudXNlKGwpOwogICAgY29uc3QgYyA9IHNoYWxsb3dSZWYobC5jdXJyZW50Um91dGUudmFsdWUpOwogICAgbC5hZnRlckVhY2goKHgsIGspID0+IHsKICAgICAgYy52YWx1ZSA9IGs7CiAgICB9KSwKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KAogICAgICAgIGUudnVlQXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLAogICAgICAgICJwcmV2aW91c1JvdXRlIiwKICAgICAgICB7IGdldDogKCkgPT4gYy52YWx1ZSB9CiAgICAgICk7CiAgICBjb25zdCB1ID0gY3JlYXRlQ3VycmVudExvY2F0aW9uKG4sIHdpbmRvdy5sb2NhdGlvbiwgZS5wYXlsb2FkLnBhdGgpLAogICAgICBkID0gc2hhbGxvd1JlZihsLmN1cnJlbnRSb3V0ZS52YWx1ZSksCiAgICAgIEUgPSAoKSA9PiB7CiAgICAgICAgZC52YWx1ZSA9IGwuY3VycmVudFJvdXRlLnZhbHVlOwogICAgICB9OwogICAgZS5ob29rKCJwYWdlOmZpbmlzaCIsIEUpLAogICAgICBsLmFmdGVyRWFjaCgoeCwgaykgPT4gewogICAgICAgIHZhciBTLCBBLCBPLCBGOwogICAgICAgICgoQSA9IChTID0geC5tYXRjaGVkWzBdKSA9PSBudWxsID8gdm9pZCAwIDogUy5jb21wb25lbnRzKSA9PSBudWxsCiAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgOiBBLmRlZmF1bHQpID09PQogICAgICAgICAgKChGID0gKE8gPSBrLm1hdGNoZWRbMF0pID09IG51bGwgPyB2b2lkIDAgOiBPLmNvbXBvbmVudHMpID09IG51bGwKICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgOiBGLmRlZmF1bHQpICYmIEUoKTsKICAgICAgfSk7CiAgICBjb25zdCBiID0ge307CiAgICBmb3IgKGNvbnN0IHggaW4gZC52YWx1ZSkKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIHgsIHsgZ2V0OiAoKSA9PiBkLnZhbHVlW3hdLCBlbnVtZXJhYmxlOiAhMCB9KTsKICAgIChlLl9yb3V0ZSA9IHNoYWxsb3dSZWFjdGl2ZShiKSksCiAgICAgIChlLl9taWRkbGV3YXJlID0gZS5fbWlkZGxld2FyZSB8fCB7IGdsb2JhbDogW10sIG5hbWVkOiB7fSB9KTsKICAgIGNvbnN0IFAgPSB1c2VFcnJvcigpOwogICAgbC5hZnRlckVhY2goYXN5bmMgKHgsIGssIFMpID0+IHsKICAgICAgZGVsZXRlIGUuX3Byb2Nlc3NpbmdNaWRkbGV3YXJlLAogICAgICAgICFlLmlzSHlkcmF0aW5nICYmIFAudmFsdWUgJiYgKGF3YWl0IGUucnVuV2l0aENvbnRleHQoY2xlYXJFcnJvcikpLAogICAgICAgIFMgJiYgKGF3YWl0IGUuY2FsbEhvb2soInBhZ2U6bG9hZGluZzplbmQiKSk7CiAgICB9KTsKICAgIHRyeSB7CiAgICAgIChbdCwgcl0gPSBleGVjdXRlQXN5bmMoKCkgPT4gbC5pc1JlYWR5KCkpKSwgYXdhaXQgdCwgcigpOwogICAgfSBjYXRjaCAoeCkgewogICAgICAoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGUucnVuV2l0aENvbnRleHQoKCkgPT4gc2hvd0Vycm9yKHgpKSkpLAogICAgICAgIGF3YWl0IHQsCiAgICAgICAgcigpOwogICAgfQogICAgY29uc3QgUiA9CiAgICAgIHUgIT09IGwuY3VycmVudFJvdXRlLnZhbHVlLmZ1bGxQYXRoCiAgICAgICAgPyBsLnJlc29sdmUodSkKICAgICAgICA6IGwuY3VycmVudFJvdXRlLnZhbHVlOwogICAgRSgpOwogICAgY29uc3QgVCA9IGUucGF5bG9hZC5zdGF0ZS5fbGF5b3V0OwogICAgcmV0dXJuICgKICAgICAgbC5iZWZvcmVFYWNoKGFzeW5jICh4LCBrKSA9PiB7CiAgICAgICAgdmFyIFM7CiAgICAgICAgYXdhaXQgZS5jYWxsSG9vaygicGFnZTpsb2FkaW5nOnN0YXJ0IiksCiAgICAgICAgICAoeC5tZXRhID0gcmVhY3RpdmUoeC5tZXRhKSksCiAgICAgICAgICBlLmlzSHlkcmF0aW5nICYmCiAgICAgICAgICBUICYmCiAgICAgICAgICAhaXNSZWFkb25seSh4Lm1ldGEubGF5b3V0KSAmJgogICAgICAgICAgKHgubWV0YS5sYXlvdXQgPSBUKSwKICAgICAgICAgIChlLl9wcm9jZXNzaW5nTWlkZGxld2FyZSA9ICEwKTsKICAgICAgICB7CiAgICAgICAgICBjb25zdCBBID0gbmV3IFNldChbLi4uZ2xvYmFsTWlkZGxld2FyZSwgLi4uZS5fbWlkZGxld2FyZS5nbG9iYWxdKTsKICAgICAgICAgIGZvciAoY29uc3QgTyBvZiB4Lm1hdGNoZWQpIHsKICAgICAgICAgICAgY29uc3QgRiA9IE8ubWV0YS5taWRkbGV3YXJlOwogICAgICAgICAgICBpZiAoRikgZm9yIChjb25zdCBEIG9mIHRvQXJyYXkoRikpIEEuYWRkKEQpOwogICAgICAgICAgfQogICAgICAgICAgewogICAgICAgICAgICBjb25zdCBPID0gYXdhaXQgZS5ydW5XaXRoQ29udGV4dCgoKSA9PgogICAgICAgICAgICAgIGdldFJvdXRlUnVsZXMoeyBwYXRoOiB4LnBhdGggfSkKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKE8uYXBwTWlkZGxld2FyZSkKICAgICAgICAgICAgICBmb3IgKGNvbnN0IEYgaW4gTy5hcHBNaWRkbGV3YXJlKQogICAgICAgICAgICAgICAgTy5hcHBNaWRkbGV3YXJlW0ZdID8gQS5hZGQoRikgOiBBLmRlbGV0ZShGKTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAoY29uc3QgTyBvZiBBKSB7CiAgICAgICAgICAgIGNvbnN0IEYgPQogICAgICAgICAgICAgIHR5cGVvZiBPID09ICJzdHJpbmciCiAgICAgICAgICAgICAgICA/IGUuX21pZGRsZXdhcmUubmFtZWRbT10gfHwKICAgICAgICAgICAgICAgIChhd2FpdCAoKFMgPSBuYW1lZE1pZGRsZXdhcmVbT10pID09IG51bGwKICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgOiBTLmNhbGwobmFtZWRNaWRkbGV3YXJlKS50aGVuKChIKSA9PiBILmRlZmF1bHQgfHwgSCkpKQogICAgICAgICAgICAgICAgOiBPOwogICAgICAgICAgICBpZiAoIUYpIHRocm93IG5ldyBFcnJvcihgVW5rbm93biByb3V0ZSBtaWRkbGV3YXJlOiAnJHtPfScuYCk7CiAgICAgICAgICAgIGNvbnN0IEQgPSBhd2FpdCBlLnJ1bldpdGhDb250ZXh0KCgpID0+IEYoeCwgaykpOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgIWUucGF5bG9hZC5zZXJ2ZXJSZW5kZXJlZCAmJgogICAgICAgICAgICAgIGUuaXNIeWRyYXRpbmcgJiYKICAgICAgICAgICAgICAoRCA9PT0gITEgfHwgRCBpbnN0YW5jZW9mIEVycm9yKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBjb25zdCBIID0KICAgICAgICAgICAgICAgIEQgfHwKICAgICAgICAgICAgICAgIGNyZWF0ZUVycm9yJDEoewogICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiA0MDQsCiAgICAgICAgICAgICAgICAgIHN0YXR1c01lc3NhZ2U6IGBQYWdlIE5vdCBGb3VuZDogJHt1fWAsCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZS5ydW5XaXRoQ29udGV4dCgoKSA9PiBzaG93RXJyb3IoSCkpLCAhMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoRCAhPT0gITAgJiYgKEQgfHwgRCA9PT0gITEpKSByZXR1cm4gRDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pLAogICAgICBsLm9uRXJyb3IoYXN5bmMgKCkgPT4gewogICAgICAgIGRlbGV0ZSBlLl9wcm9jZXNzaW5nTWlkZGxld2FyZSwgYXdhaXQgZS5jYWxsSG9vaygicGFnZTpsb2FkaW5nOmVuZCIpOwogICAgICB9KSwKICAgICAgbC5hZnRlckVhY2goYXN5bmMgKHgsIGspID0+IHsKICAgICAgICB4Lm1hdGNoZWQubGVuZ3RoID09PSAwICYmCiAgICAgICAgICAoYXdhaXQgZS5ydW5XaXRoQ29udGV4dCgoKSA9PgogICAgICAgICAgICBzaG93RXJyb3IoCiAgICAgICAgICAgICAgY3JlYXRlRXJyb3IkMSh7CiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiA0MDQsCiAgICAgICAgICAgICAgICBmYXRhbDogITEsCiAgICAgICAgICAgICAgICBzdGF0dXNNZXNzYWdlOiBgUGFnZSBub3QgZm91bmQ6ICR7eC5mdWxsUGF0aH1gLAogICAgICAgICAgICAgICAgZGF0YTogeyBwYXRoOiB4LmZ1bGxQYXRoIH0sCiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKQogICAgICAgICAgKSk7CiAgICAgIH0pLAogICAgICBlLmhvb2tzLmhvb2tPbmNlKCJhcHA6Y3JlYXRlZCIsIGFzeW5jICgpID0+IHsKICAgICAgICB0cnkgewogICAgICAgICAgIm5hbWUiIGluIFIgJiYgKFIubmFtZSA9IHZvaWQgMCksCiAgICAgICAgICAgIGF3YWl0IGwucmVwbGFjZSh7IC4uLlIsIGZvcmNlOiAhMCB9KSwKICAgICAgICAgICAgKGwub3B0aW9ucy5zY3JvbGxCZWhhdmlvciA9IHJvdXRlck9wdGlvbnMuc2Nyb2xsQmVoYXZpb3IpOwogICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgIGF3YWl0IGUucnVuV2l0aENvbnRleHQoKCkgPT4gc2hvd0Vycm9yKHgpKTsKICAgICAgICB9CiAgICAgIH0pLAogICAgICB7IHByb3ZpZGU6IHsgcm91dGVyOiBsIH0gfQogICAgKTsKICB9LAp9KSwKICBwYXlsb2FkX2NsaWVudF95Vkxvd3Y2aERsID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAibnV4dDpwYXlsb2FkIiwKICAgIHNldHVwKGUpIHsKICAgICAgdXNlUm91dGVyJDEoKS5iZWZvcmVSZXNvbHZlKGFzeW5jICh0LCByKSA9PiB7CiAgICAgICAgaWYgKHQucGF0aCA9PT0gci5wYXRoKSByZXR1cm47CiAgICAgICAgY29uc3QgbiA9IGF3YWl0IGxvYWRQYXlsb2FkKHQucGF0aCk7CiAgICAgICAgbiAmJiBPYmplY3QuYXNzaWduKGUuc3RhdGljLmRhdGEsIG4uZGF0YSk7CiAgICAgIH0pLAogICAgICAgIG9uTnV4dFJlYWR5KCgpID0+IHsKICAgICAgICAgIHZhciB0OwogICAgICAgICAgZS5ob29rcy5ob29rKCJsaW5rOnByZWZldGNoIiwgYXN5bmMgKHIpID0+IHsKICAgICAgICAgICAgY29uc3QgeyBob3N0bmFtZTogbiB9ID0gbmV3IFVSTChyLCB3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICAgICAgICAgIG4gPT09IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSAmJiAoYXdhaXQgbG9hZFBheWxvYWQocikpOwogICAgICAgICAgfSksCiAgICAgICAgICAgICgodCA9IG5hdmlnYXRvci5jb25uZWN0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogdC5lZmZlY3RpdmVUeXBlKSAhPT0KICAgICAgICAgICAgInNsb3ctMmciICYmIHNldFRpbWVvdXQoZ2V0QXBwTWFuaWZlc3QsIDFlMyk7CiAgICAgICAgfSk7CiAgICB9LAogIH0pLAogIG5hdmlnYXRpb25fcmVwYWludF9jbGllbnRfYnMyYldER1JJRSA9IGRlZmluZU51eHRQbHVnaW4oKCkgPT4gewogICAgY29uc3QgZSA9IHVzZVJvdXRlciQxKCk7CiAgICBvbk51eHRSZWFkeSgoKSA9PiB7CiAgICAgIGUuYmVmb3JlUmVzb2x2ZShhc3luYyAoKSA9PiB7CiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHQpID0+IHsKICAgICAgICAgIHNldFRpbWVvdXQodCwgMTAwKSwKICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgICAgICBzZXRUaW1lb3V0KHQsIDApOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKICB9KSwKICBjaGVja19vdXRkYXRlZF9idWlsZF9jbGllbnRfOHZLN1JrZkd4WiA9IGRlZmluZU51eHRQbHVnaW4oKGUpID0+IHsKICAgIGxldCB0OwogICAgYXN5bmMgZnVuY3Rpb24gcigpIHsKICAgICAgY29uc3QgbiA9IGF3YWl0IGdldEFwcE1hbmlmZXN0KCk7CiAgICAgIHQgJiYgY2xlYXJUaW1lb3V0KHQpLCAodCA9IHNldFRpbWVvdXQociwgb3V0ZGF0ZWRCdWlsZEludGVydmFsKSk7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3QgaSA9IGF3YWl0ICRmZXRjaCgKICAgICAgICAgIGJ1aWxkQXNzZXRzVVJMKCJidWlsZHMvbGF0ZXN0Lmpzb24iKSArIGA/JHtEYXRlLm5vdygpfWAKICAgICAgICApOwogICAgICAgIGkuaWQgIT09IG4uaWQgJiYgZS5ob29rcy5jYWxsSG9vaygiYXBwOm1hbmlmZXN0OnVwZGF0ZSIsIGkpOwogICAgICB9IGNhdGNoIHsgfQogICAgfQogICAgb25OdXh0UmVhZHkoKCkgPT4gewogICAgICB0ID0gc2V0VGltZW91dChyLCBvdXRkYXRlZEJ1aWxkSW50ZXJ2YWwpOwogICAgfSk7CiAgfSksCiAgY2h1bmtfcmVsb2FkX2NsaWVudF9VY2lFMGk2emVzID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAibnV4dDpjaHVuay1yZWxvYWQiLAogICAgc2V0dXAoZSkgewogICAgICBjb25zdCB0ID0gdXNlUm91dGVyJDEoKSwKICAgICAgICByID0gdXNlUnVudGltZUNvbmZpZygpLAogICAgICAgIG4gPSBuZXcgU2V0KCk7CiAgICAgIHQuYmVmb3JlRWFjaCgoKSA9PiB7CiAgICAgICAgbi5jbGVhcigpOwogICAgICB9KSwKICAgICAgICBlLmhvb2soImFwcDpjaHVua0Vycm9yIiwgKHsgZXJyb3I6IGEgfSkgPT4gewogICAgICAgICAgbi5hZGQoYSk7CiAgICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIGkoYSkgewogICAgICAgIGNvbnN0IGwgPQogICAgICAgICAgImhyZWYiIGluIGEgJiYgYS5ocmVmWzBdID09PSAiIyIKICAgICAgICAgICAgPyByLmFwcC5iYXNlVVJMICsgYS5ocmVmCiAgICAgICAgICAgIDogam9pblVSTChyLmFwcC5iYXNlVVJMLCBhLmZ1bGxQYXRoKTsKICAgICAgICByZWxvYWROdXh0QXBwKHsgcGF0aDogbCwgcGVyc2lzdFN0YXRlOiAhMCB9KTsKICAgICAgfQogICAgICBlLmhvb2soImFwcDptYW5pZmVzdDp1cGRhdGUiLCAoKSA9PiB7CiAgICAgICAgdC5iZWZvcmVSZXNvbHZlKGkpOwogICAgICB9KSwKICAgICAgICB0Lm9uRXJyb3IoKGEsIG8pID0+IHsKICAgICAgICAgIG4uaGFzKGEpICYmIGkobyk7CiAgICAgICAgfSk7CiAgICB9LAogIH0pLAogIHBsdWdpbiQxID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAicGluaWEiLAogICAgc2V0dXAoZSkgewogICAgICBjb25zdCB0ID0gY3JlYXRlUGluaWEoKTsKICAgICAgcmV0dXJuICgKICAgICAgICBlLnZ1ZUFwcC51c2UodCksCiAgICAgICAgc2V0QWN0aXZlUGluaWEodCksCiAgICAgICAgZS5wYXlsb2FkICYmIGUucGF5bG9hZC5waW5pYSAmJiAodC5zdGF0ZS52YWx1ZSA9IGUucGF5bG9hZC5waW5pYSksCiAgICAgICAgeyBwcm92aWRlOiB7IHBpbmlhOiB0IH0gfQogICAgICApOwogICAgfSwKICB9KSwKICBjb21wb25lbnRzX3BsdWdpbl9LUjFIQlpzNGtZID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgICBuYW1lOiAibnV4dDpnbG9iYWwtY29tcG9uZW50cyIsCiAgfSksCiAgbGF5b3V0cyA9IHsKICAgIGRlZmF1bHQ6IGRlZmluZUFzeW5jQ29tcG9uZW50KCgpID0+CiAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgKCkgPT4gaW1wb3J0KCIuL3FBcnhTVTVfLmpzIiksCiAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgIDEyMywgMjIsIDE5LCA2LCA4LCAyMCwgODMsIDE4LCA2MywgMTIsIDEzLCAyNywgMTEsIDUsIDE0LCAyOCwgMjksIDg0LAogICAgICAgICAgMzEsIDQsIDcsIDksIDMyLCAzMywgMzksIDMsIDEwLCAxNSwgMTYsIDE3LCAyMSwgNDAsIDQxLCA0MiwgMTI0LCAxLAogICAgICAgICAgNTMsIDU0LCAxMjUsIDM4LAogICAgICAgIF0pLAogICAgICAgIGltcG9ydC5tZXRhLnVybAogICAgICApLnRoZW4oKGUpID0+IGUuZGVmYXVsdCB8fCBlKQogICAgKSwKICAgIHByb2ZpbGU6IGRlZmluZUFzeW5jQ29tcG9uZW50KCgpID0+CiAgICAgIF9fdml0ZVByZWxvYWQoCiAgICAgICAgKCkgPT4gaW1wb3J0KCIuL0IyWXdkUExELmpzIiksCiAgICAgICAgX192aXRlX19tYXBEZXBzKFsKICAgICAgICAgIDEyNiwgMjIsIDE5LCA2LCA4LCAyMCwgMTI0LCAxOCwgMTEsIDEyLCAxMywgNSwgMTQsIDEsIDI3LCAyOCwgMjksIDUzLAogICAgICAgICAgNCwgNywgOSwgMzIsIDU0LCAxMjUsIDEwLCA2MywgODMsIDg0LCAxMjcsCiAgICAgICAgXSksCiAgICAgICAgaW1wb3J0Lm1ldGEudXJsCiAgICAgICkudGhlbigoZSkgPT4gZS5kZWZhdWx0IHx8IGUpCiAgICApLAogIH0sCiAgcHJlZmV0Y2hfY2xpZW50XzV0enpOMG9JVkwgPSBkZWZpbmVOdXh0UGx1Z2luKHsKICAgIG5hbWU6ICJudXh0OnByZWZldGNoIiwKICAgIHNldHVwKGUpIHsKICAgICAgY29uc3QgdCA9IHVzZVJvdXRlciQxKCk7CiAgICAgIGUuaG9va3MuaG9vaygiYXBwOm1vdW50ZWQiLCAoKSA9PiB7CiAgICAgICAgdC5iZWZvcmVFYWNoKGFzeW5jIChyKSA9PiB7CiAgICAgICAgICB2YXIgaTsKICAgICAgICAgIGNvbnN0IG4gPQogICAgICAgICAgICAoaSA9IHIgPT0gbnVsbCA/IHZvaWQgMCA6IHIubWV0YSkgPT0gbnVsbCA/IHZvaWQgMCA6IGkubGF5b3V0OwogICAgICAgICAgbiAmJiB0eXBlb2YgbGF5b3V0c1tuXSA9PSAiZnVuY3Rpb24iICYmIChhd2FpdCBsYXlvdXRzW25dKCkpOwogICAgICAgIH0pOwogICAgICB9KSwKICAgICAgICBlLmhvb2tzLmhvb2soImxpbms6cHJlZmV0Y2giLCAocikgPT4gewogICAgICAgICAgaWYgKGhhc1Byb3RvY29sKHIpKSByZXR1cm47CiAgICAgICAgICBjb25zdCBuID0gdC5yZXNvbHZlKHIpOwogICAgICAgICAgaWYgKCFuKSByZXR1cm47CiAgICAgICAgICBjb25zdCBpID0gbi5tZXRhLmxheW91dDsKICAgICAgICAgIGxldCBhID0gdG9BcnJheShuLm1ldGEubWlkZGxld2FyZSk7CiAgICAgICAgICBhID0gYS5maWx0ZXIoKG8pID0+IHR5cGVvZiBvID09ICJzdHJpbmciKTsKICAgICAgICAgIGZvciAoY29uc3QgbyBvZiBhKQogICAgICAgICAgICB0eXBlb2YgbmFtZWRNaWRkbGV3YXJlW29dID09ICJmdW5jdGlvbiIgJiYgbmFtZWRNaWRkbGV3YXJlW29dKCk7CiAgICAgICAgICBpICYmIHR5cGVvZiBsYXlvdXRzW2ldID09ICJmdW5jdGlvbiIgJiYgbGF5b3V0c1tpXSgpOwogICAgICAgIH0pOwogICAgfSwKICB9KSwKICBjb21wb25lbnRzX2NsaWVudF9aQjFXMEVlSDBFID0gZGVmaW5lTnV4dFBsdWdpbigoZSkgPT4gewogICAgY29uc3QgdCA9IHVzZUFwcENvbmZpZygpOwogICAgZS5ob29rKCJhcHA6Y3JlYXRlZCIsIGFzeW5jICgpID0+IHsKICAgICAgaWYgKCF0Ll9fc3dpcGVyLmJ1bmRsZWQpIHsKICAgICAgICAoCiAgICAgICAgICBhd2FpdCBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgICBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgeyByZWdpc3RlcjogbiB9ID0gYXdhaXQgaW1wb3J0KCIuL0NwWVdCVWFXLmpzIik7CiAgICAgICAgICAgICAgcmV0dXJuIHsgcmVnaXN0ZXI6IG4gfTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgX192aXRlX19tYXBEZXBzKFsxMjgsIDEyOV0pLAogICAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICAgICkKICAgICAgICApLnJlZ2lzdGVyKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgICgKICAgICAgICBhd2FpdCBfX3ZpdGVQcmVsb2FkKAogICAgICAgICAgYXN5bmMgKCkgPT4gewogICAgICAgICAgICBjb25zdCB7IHJlZ2lzdGVyOiBuIH0gPSBhd2FpdCBpbXBvcnQoIi4vRDNPbkxlM2QuanMiKTsKICAgICAgICAgICAgcmV0dXJuIHsgcmVnaXN0ZXI6IG4gfTsKICAgICAgICAgIH0sCiAgICAgICAgICBfX3ZpdGVfX21hcERlcHMoWzEzMCwgMTI5XSksCiAgICAgICAgICBpbXBvcnQubWV0YS51cmwKICAgICAgICApCiAgICAgICkucmVnaXN0ZXIoKTsKICAgIH0pOwogIH0pLAogIGxvY2FsZUNvZGVzID0gWyJFbiIsICJSdSJdLAogIGxvY2FsZUxvYWRlcnMgPSB7CiAgICBFbjogWwogICAgICB7CiAgICAgICAga2V5OiAiLi4vbG9jYWxlL2VuLVVTLmpzIiwKICAgICAgICBsb2FkOiAoKSA9PgogICAgICAgICAgX192aXRlUHJlbG9hZCgoKSA9PiBpbXBvcnQoIi4vQjlUOHRnR1guanMiKSwgW10sIGltcG9ydC5tZXRhLnVybCksCiAgICAgICAgY2FjaGU6ICEwLAogICAgICB9LAogICAgXSwKICAgIFJ1OiBbCiAgICAgIHsKICAgICAgICBrZXk6ICIuLi9sb2NhbGUvcnUtUlUuanMiLAogICAgICAgIGxvYWQ6ICgpID0+CiAgICAgICAgICBfX3ZpdGVQcmVsb2FkKCgpID0+IGltcG9ydCgiLi9EcVdUdVVpei5qcyIpLCBbXSwgaW1wb3J0Lm1ldGEudXJsKSwKICAgICAgICBjYWNoZTogITAsCiAgICAgIH0sCiAgICBdLAogIH0sCiAgdnVlSTE4bkNvbmZpZ3MgPSBbXSwKICBub3JtYWxpemVkTG9jYWxlcyA9IFsKICAgIHsgY29kZTogIkVuIiwgbmFtZTogIkVuZ2xpc2giLCBmaWxlczogW3sgcGF0aDogIi9zcmMvbG9jYWxlL2VuLVVTLmpzIiB9XSB9LAogICAgeyBjb2RlOiAiUnUiLCBuYW1lOiAiw5Agw5HGksORwoHDkcKBw5DCusOQwrjDkMK5IiwgZmlsZXM6IFt7IHBhdGg6ICIvc3JjL2xvY2FsZS9ydS1SVS5qcyIgfV0gfSwKICBdLAogIE5VWFRfSTE4Tl9NT0RVTEVfSUQgPSAiQG51eHRqcy9pMThuIiwKICBwYXJhbGxlbFBsdWdpbiA9ICExLAogIGlzU1NHID0gITEsCiAgREVGQVVMVF9EWU5BTUlDX1BBUkFNU19LRVkgPSAibnV4dEkxOG4iLAogIERFRkFVTFRfQ09PS0lFX0tFWSA9ICJpMThuX3JlZGlyZWN0ZWQiLAogIFNXSVRDSF9MT0NBTEVfUEFUSF9MSU5LX0lERU5USUZJRVIgPSAibnV4dC1pMThuLXNscCIsCiAgaW5Ccm93c2VyID0gdHlwZW9mIHdpbmRvdyA8ICJ1IjsKZnVuY3Rpb24gZ2V0Tm9ybWFsaXplZExvY2FsZXMoZSkgewogIGUgPSBlIHx8IFtdOwogIGNvbnN0IHQgPSBbXTsKICBmb3IgKGNvbnN0IHIgb2YgZSkgaXNTdHJpbmcocikgPyB0LnB1c2goeyBjb2RlOiByIH0pIDogdC5wdXNoKHIpOwogIHJldHVybiB0Owp9CmZ1bmN0aW9uIGlzSTE4bkluc3RhbmNlKGUpIHsKICByZXR1cm4gZSAhPSBudWxsICYmICJnbG9iYWwiIGluIGUgJiYgIm1vZGUiIGluIGU7Cn0KZnVuY3Rpb24gaXNDb21wb3NlcihlKSB7CiAgcmV0dXJuIGUgIT0gbnVsbCAmJiAhKCJfX2NvbXBvc2VyIiBpbiBlKSAmJiAibG9jYWxlIiBpbiBlICYmIGlzUmVmKGUubG9jYWxlKTsKfQpmdW5jdGlvbiBpc1Z1ZUkxOG4oZSkgewogIHJldHVybiBlICE9IG51bGwgJiYgIl9fY29tcG9zZXIiIGluIGU7Cn0KZnVuY3Rpb24gZ2V0STE4blRhcmdldChlKSB7CiAgcmV0dXJuIGlzSTE4bkluc3RhbmNlKGUpID8gZS5nbG9iYWwgOiBlOwp9CmZ1bmN0aW9uIGdldENvbXBvc2VyKGUpIHsKICBjb25zdCB0ID0gZ2V0STE4blRhcmdldChlKTsKICByZXR1cm4gaXNDb21wb3Nlcih0KSA/IHQgOiBpc1Z1ZUkxOG4odCkgPyB0Ll9fY29tcG9zZXIgOiB0Owp9CmZ1bmN0aW9uIGdldExvY2FsZShlKSB7CiAgcmV0dXJuIHVucmVmKGdldEkxOG5UYXJnZXQoZSkubG9jYWxlKTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVzKGUpIHsKICByZXR1cm4gdW5yZWYoZ2V0STE4blRhcmdldChlKS5sb2NhbGVzKTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVDb2RlcyhlKSB7CiAgcmV0dXJuIHVucmVmKGdldEkxOG5UYXJnZXQoZSkubG9jYWxlQ29kZXMpOwp9CmZ1bmN0aW9uIHNldExvY2FsZShlLCB0KSB7CiAgY29uc3QgciA9IGdldEkxOG5UYXJnZXQoZSk7CiAgaXNSZWYoci5sb2NhbGUpID8gKHIubG9jYWxlLnZhbHVlID0gdCkgOiAoci5sb2NhbGUgPSB0KTsKfQpmdW5jdGlvbiBnZXRSb3V0ZU5hbWUoZSkgewogIHJldHVybiBpc1N0cmluZyhlKSA/IGUgOiBpc1N5bWJvbChlKSA/IGUudG9TdHJpbmcoKSA6ICIobnVsbCkiOwp9CmZ1bmN0aW9uIGdldExvY2FsZVJvdXRlTmFtZSgKICBlLAogIHQsCiAgewogICAgZGVmYXVsdExvY2FsZTogciwKICAgIHN0cmF0ZWd5OiBuLAogICAgcm91dGVzTmFtZVNlcGFyYXRvcjogaSwKICAgIGRlZmF1bHRMb2NhbGVSb3V0ZU5hbWVTdWZmaXg6IGEsCiAgICBkaWZmZXJlbnREb21haW5zOiBvLAogIH0KKSB7CiAgY29uc3QgbCA9IG4gIT09ICJub19wcmVmaXgiIHx8IG87CiAgbGV0IGMgPSBnZXRSb3V0ZU5hbWUoZSkgKyAobCA/IGkgKyB0IDogIiIpOwogIHJldHVybiB0ID09PSByICYmIG4gPT09ICJwcmVmaXhfYW5kX2RlZmF1bHQiICYmIChjICs9IGkgKyBhKSwgYzsKfQpmdW5jdGlvbiByZXNvbHZlQmFzZVVybChlLCB0KSB7CiAgcmV0dXJuIGlzRnVuY3Rpb24oZSkgPyBlKHQpIDogZTsKfQpmdW5jdGlvbiBtYXRjaEJyb3dzZXJMb2NhbGUoZSwgdCkgewogIGNvbnN0IHIgPSBbXTsKICBmb3IgKGNvbnN0IFtuLCBpXSBvZiB0LmVudHJpZXMoKSkgewogICAgY29uc3QgYSA9IGUuZmluZCgobykgPT4gby5sYW5ndWFnZS50b0xvd2VyQ2FzZSgpID09PSBpLnRvTG93ZXJDYXNlKCkpOwogICAgaWYgKGEpIHsKICAgICAgci5wdXNoKHsgY29kZTogYS5jb2RlLCBzY29yZTogMSAtIG4gLyB0Lmxlbmd0aCB9KTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGZvciAoY29uc3QgW24sIGldIG9mIHQuZW50cmllcygpKSB7CiAgICBjb25zdCBhID0gaS5zcGxpdCgiLSIpWzBdLnRvTG93ZXJDYXNlKCksCiAgICAgIG8gPSBlLmZpbmQoKGwpID0+IGwubGFuZ3VhZ2Uuc3BsaXQoIi0iKVswXS50b0xvd2VyQ2FzZSgpID09PSBhKTsKICAgIGlmIChvKSB7CiAgICAgIHIucHVzaCh7IGNvZGU6IG8uY29kZSwgc2NvcmU6IDAuOTk5IC0gbiAvIHQubGVuZ3RoIH0pOwogICAgICBicmVhazsKICAgIH0KICB9CiAgcmV0dXJuIHI7Cn0KY29uc3QgRGVmYXVsdEJyb3dzZXJMb2NhbGVNYXRjaGVyID0gbWF0Y2hCcm93c2VyTG9jYWxlOwpmdW5jdGlvbiBjb21wYXJlQnJvd3NlckxvY2FsZShlLCB0KSB7CiAgcmV0dXJuIGUuc2NvcmUgPT09IHQuc2NvcmUKICAgID8gdC5jb2RlLmxlbmd0aCAtIGUuY29kZS5sZW5ndGgKICAgIDogdC5zY29yZSAtIGUuc2NvcmU7Cn0KY29uc3QgRGVmYXVsdEJyb3dlckxvY2FsZUNvbXBhcmVyID0gY29tcGFyZUJyb3dzZXJMb2NhbGU7CmZ1bmN0aW9uIGZpbmRCcm93c2VyTG9jYWxlKAogIGUsCiAgdCwKICB7CiAgICBtYXRjaGVyOiByID0gRGVmYXVsdEJyb3dzZXJMb2NhbGVNYXRjaGVyLAogICAgY29tcGFyZXI6IG4gPSBEZWZhdWx0QnJvd2VyTG9jYWxlQ29tcGFyZXIsCiAgfSA9IHt9CikgewogIGNvbnN0IGkgPSBbXTsKICBmb3IgKGNvbnN0IG8gb2YgZSkgewogICAgY29uc3QgeyBjb2RlOiBsIH0gPSBvLAogICAgICBjID0gby5sYW5ndWFnZSB8fCBsOwogICAgaS5wdXNoKHsgY29kZTogbCwgbGFuZ3VhZ2U6IGMgfSk7CiAgfQogIGNvbnN0IGEgPSByKGksIHQpOwogIHJldHVybiBhLmxlbmd0aCA+IDEgJiYgYS5zb3J0KG4pLCBhLmxlbmd0aCA/IGFbMF0uY29kZSA6ICIiOwp9CmZ1bmN0aW9uIGdldExvY2FsZXNSZWdleChlKSB7CiAgcmV0dXJuIG5ldyBSZWdFeHAoYF4vKCR7ZS5qb2luKCJ8Iil9KSg/Oi98JClgLCAiaSIpOwp9CmNvbnN0IGNhY2hlTWVzc2FnZXMgPSBuZXcgTWFwKCk7CmFzeW5jIGZ1bmN0aW9uIGxvYWRWdWVJMThuT3B0aW9ucyhlLCB0KSB7CiAgY29uc3QgciA9IHsgbWVzc2FnZXM6IHt9IH07CiAgZm9yIChjb25zdCBuIG9mIGUpIHsKICAgIGNvbnN0IHsgZGVmYXVsdDogaSB9ID0gYXdhaXQgbigpLAogICAgICBhID0gaXNGdW5jdGlvbihpKSA/IGF3YWl0IHQucnVuV2l0aENvbnRleHQoYXN5bmMgKCkgPT4gYXdhaXQgaSgpKSA6IGk7CiAgICBkZWVwQ29weShhLCByKTsKICB9CiAgcmV0dXJuIHI7Cn0KZnVuY3Rpb24gbWFrZUZhbGxiYWNrTG9jYWxlQ29kZXMoZSwgdCkgewogIGxldCByID0gW107CiAgaWYgKGlzQXJyYXkkMShlKSkgciA9IGU7CiAgZWxzZSBpZiAoaXNPYmplY3QkMShlKSkgewogICAgY29uc3QgbiA9IFsuLi50LCAiZGVmYXVsdCJdOwogICAgZm9yIChjb25zdCBpIG9mIG4pIGVbaV0gJiYgKHIgPSBbLi4uciwgLi4uZVtpXS5maWx0ZXIoQm9vbGVhbildKTsKICB9IGVsc2UgaXNTdHJpbmcoZSkgJiYgdC5ldmVyeSgobikgPT4gbiAhPT0gZSkgJiYgci5wdXNoKGUpOwogIHJldHVybiByOwp9CmFzeW5jIGZ1bmN0aW9uIGxvYWRJbml0aWFsTWVzc2FnZXMoZSwgdCwgcikgewogIGNvbnN0IHsKICAgIGRlZmF1bHRMb2NhbGU6IG4sCiAgICBpbml0aWFsTG9jYWxlOiBpLAogICAgbG9jYWxlQ29kZXM6IGEsCiAgICBmYWxsYmFja0xvY2FsZTogbywKICAgIGxhenk6IGwsCiAgfSA9IHI7CiAgaWYgKGwgJiYgbykgewogICAgY29uc3QgdSA9IG1ha2VGYWxsYmFja0xvY2FsZUNvZGVzKG8sIFtuLCBpXSk7CiAgICBhd2FpdCBQcm9taXNlLmFsbCh1Lm1hcCgoZCkgPT4gbG9hZEFuZFNldExvY2FsZU1lc3NhZ2VzKGQsIHQsIGUpKSk7CiAgfQogIGNvbnN0IGMgPSBsID8gWy4uLm5ldyBTZXQoKS5hZGQobikuYWRkKGkpXSA6IGE7CiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGMubWFwKCh1KSA9PiBsb2FkQW5kU2V0TG9jYWxlTWVzc2FnZXModSwgdCwgZSkpKSwgZTsKfQphc3luYyBmdW5jdGlvbiBsb2FkTWVzc2FnZShlLCB7IGtleTogdCwgbG9hZDogciB9KSB7CiAgbGV0IG4gPSBudWxsOwogIHRyeSB7CiAgICBjb25zdCBpID0gYXdhaXQgcigpLnRoZW4oKGEpID0+IGEuZGVmYXVsdCB8fCBhKTsKICAgIGlzRnVuY3Rpb24oaSkKICAgICAgPyAobiA9IGF3YWl0IGkoZSkpCiAgICAgIDogKChuID0gaSksIG4gIT0gbnVsbCAmJiBjYWNoZU1lc3NhZ2VzICYmIGNhY2hlTWVzc2FnZXMuc2V0KHQsIG4pKTsKICB9IGNhdGNoIChpKSB7CiAgICBjb25zb2xlLmVycm9yKCJGYWlsZWQgbG9jYWxlIGxvYWRpbmc6ICIgKyBpLm1lc3NhZ2UpOwogIH0KICByZXR1cm4gbjsKfQphc3luYyBmdW5jdGlvbiBsb2FkTG9jYWxlKGUsIHQsIHIpIHsKICBjb25zdCBuID0gdFtlXTsKICBpZiAobiA9PSBudWxsKSB7CiAgICBjb25zb2xlLndhcm4oIkNvdWxkIG5vdCBmaW5kIG1lc3NhZ2VzIGZvciBsb2NhbGUgY29kZTogIiArIGUpOwogICAgcmV0dXJuOwogIH0KICBjb25zdCBpID0ge307CiAgZm9yIChjb25zdCBhIG9mIG4pIHsKICAgIGxldCBvID0gbnVsbDsKICAgIGNhY2hlTWVzc2FnZXMgJiYgY2FjaGVNZXNzYWdlcy5oYXMoYS5rZXkpICYmIGEuY2FjaGUKICAgICAgPyAobyA9IGNhY2hlTWVzc2FnZXMuZ2V0KGEua2V5KSkKICAgICAgOiAobyA9IGF3YWl0IGxvYWRNZXNzYWdlKGUsIGEpKSwKICAgICAgbyAhPSBudWxsICYmIGRlZXBDb3B5KG8sIGkpOwogIH0KICByKGUsIGkpOwp9CmFzeW5jIGZ1bmN0aW9uIGxvYWRBbmRTZXRMb2NhbGVNZXNzYWdlcyhlLCB0LCByKSB7CiAgYXdhaXQgbG9hZExvY2FsZShlLCB0LCAoaSwgYSkgPT4gewogICAgY29uc3QgbyA9IHJbaV0gfHwge307CiAgICBkZWVwQ29weShhLCBvKSwgKHJbaV0gPSBvKTsKICB9KTsKfQpmdW5jdGlvbiBzcGxpdChlLCB0KSB7CiAgcmV0dXJuIFtlLnNsaWNlKDAsIHQpLCBlLnNsaWNlKHQpXTsKfQpmdW5jdGlvbiByb3V0ZVRvT2JqZWN0KGUpIHsKICBjb25zdCB7CiAgICBmdWxsUGF0aDogdCwKICAgIHF1ZXJ5OiByLAogICAgaGFzaDogbiwKICAgIG5hbWU6IGksCiAgICBwYXRoOiBhLAogICAgcGFyYW1zOiBvLAogICAgbWV0YTogbCwKICAgIHJlZGlyZWN0ZWRGcm9tOiBjLAogICAgbWF0Y2hlZDogdSwKICB9ID0gZTsKICByZXR1cm4gewogICAgZnVsbFBhdGg6IHQsCiAgICBwYXJhbXM6IG8sCiAgICBxdWVyeTogciwKICAgIGhhc2g6IG4sCiAgICBuYW1lOiBpLAogICAgcGF0aDogYSwKICAgIG1ldGE6IGwsCiAgICBtYXRjaGVkOiB1LAogICAgcmVkaXJlY3RlZEZyb206IGMsCiAgfTsKfQpmdW5jdGlvbiByZXNvbHZlKHsgcm91dGVyOiBlIH0sIHQsIHIsIG4pIHsKICB2YXIgdSwgZDsKICBpZiAociAhPT0gInByZWZpeCIpIHJldHVybiBlLnJlc29sdmUodCk7CiAgY29uc3QgW2ksIGFdID0gc3BsaXQodC5wYXRoLCAxKSwKICAgIG8gPSBgJHtpfSR7bn0ke2EgPT09ICIiID8gYSA6IGAvJHthfWB9YCwKICAgIGwgPQogICAgICAoZCA9ICh1ID0gZS5vcHRpb25zKSA9PSBudWxsID8gdm9pZCAwIDogdS5yb3V0ZXMpID09IG51bGwKICAgICAgICA/IHZvaWQgMAogICAgICAgIDogZC5maW5kKChFKSA9PiBFLnBhdGggPT09IG8pOwogIGlmIChsID09IG51bGwpIHJldHVybiB0OwogIGNvbnN0IGMgPSBhc3NpZ24kMSh7fSwgdCwgbCk7CiAgcmV0dXJuIChjLnBhdGggPSBvKSwgZS5yZXNvbHZlKGMpOwp9CmNvbnN0IFJFU09MVkVEX1BSRUZJWEVEID0gbmV3IFNldChbCiAgInByZWZpeF9hbmRfZGVmYXVsdCIsCiAgInByZWZpeF9leGNlcHRfZGVmYXVsdCIsCl0pOwpmdW5jdGlvbiBwcmVmaXhhYmxlKGUpIHsKICBjb25zdCB7IGN1cnJlbnRMb2NhbGU6IHQsIGRlZmF1bHRMb2NhbGU6IHIsIHN0cmF0ZWd5OiBuIH0gPSBlOwogIHJldHVybiAhKHQgPT09IHIgJiYgUkVTT0xWRURfUFJFRklYRUQuaGFzKG4pKSAmJiBuICE9PSAibm9fcHJlZml4IjsKfQpjb25zdCBEZWZhdWx0UHJlZml4YWJsZSA9IHByZWZpeGFibGU7CmZ1bmN0aW9uIGdldFJvdXRlQmFzZU5hbWUoZSwgdCkgewogIGNvbnN0IHsgcm91dGVzTmFtZVNlcGFyYXRvcjogciB9ID0gZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuLAogICAgbiA9IHVucmVmKHQpOwogIHJldHVybiBuID09IG51bGwgfHwgIW4ubmFtZSA/IHZvaWQgMCA6IGdldFJvdXRlTmFtZShuLm5hbWUpLnNwbGl0KHIpWzBdOwp9CmZ1bmN0aW9uIGxvY2FsZVBhdGgoZSwgdCwgcikgewogIHZhciBpOwogIGlmICh0eXBlb2YgdCA9PSAic3RyaW5nIiAmJiBoYXNQcm90b2NvbCh0LCB7IGFjY2VwdFJlbGF0aXZlOiAhMCB9KSkgcmV0dXJuIHQ7CiAgY29uc3QgbiA9IHJlc29sdmVSb3V0ZShlLCB0LCByKTsKICByZXR1cm4gbiA9PSBudWxsCiAgICA/ICIiCiAgICA6ICgoaSA9IG4ucmVkaXJlY3RlZEZyb20pID09IG51bGwgPyB2b2lkIDAgOiBpLmZ1bGxQYXRoKSB8fCBuLmZ1bGxQYXRoOwp9CmZ1bmN0aW9uIGxvY2FsZVJvdXRlKGUsIHQsIHIpIHsKICByZXR1cm4gcmVzb2x2ZVJvdXRlKGUsIHQsIHIpID8/IHZvaWQgMDsKfQpmdW5jdGlvbiBsb2NhbGVMb2NhdGlvbihlLCB0LCByKSB7CiAgcmV0dXJuIHJlc29sdmVSb3V0ZShlLCB0LCByKSA/PyB2b2lkIDA7Cn0KZnVuY3Rpb24gcmVzb2x2ZVJvdXRlKGUsIHQsIHIpIHsKICBjb25zdCB7IHJvdXRlcjogbiwgaTE4bjogaSB9ID0gZSwKICAgIGEgPSByIHx8IGdldExvY2FsZShpKSwKICAgIHsKICAgICAgZGVmYXVsdExvY2FsZTogbywKICAgICAgc3RyYXRlZ3k6IGwsCiAgICAgIHRyYWlsaW5nU2xhc2g6IGMsCiAgICB9ID0gZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuLAogICAgdSA9IGV4dGVuZFByZWZpeGFibGUoZS5ydW50aW1lQ29uZmlnKTsKICBsZXQgZDsKICBpZiAoaXNTdHJpbmcodCkpCiAgICBpZiAodFswXSA9PT0gIi8iKSB7CiAgICAgIGNvbnN0IHsgcGF0aG5hbWU6IFAsIHNlYXJjaDogUiwgaGFzaDogVCB9ID0gcGFyc2VQYXRoKHQpLAogICAgICAgIE0gPSBwYXJzZVF1ZXJ5JDEoUik7CiAgICAgIGQgPSB7IHBhdGg6IFAsIHF1ZXJ5OiBNLCBoYXNoOiBUIH07CiAgICB9IGVsc2UgZCA9IHsgbmFtZTogdCB9OwogIGVsc2UgZCA9IHQ7CiAgbGV0IEUgPSBhc3NpZ24kMSh7fSwgZCk7CiAgaWYgKCgoUCkgPT4gInBhdGgiIGluIFAgJiYgISFQLnBhdGggJiYgISgibmFtZSIgaW4gUCkpKEUpKSB7CiAgICBjb25zdCBQID0gcmVzb2x2ZShlLCBFLCBsLCBhKSwKICAgICAgUiA9IGdldFJvdXRlQmFzZU5hbWUoZSwgUCk7CiAgICBpc1N0cmluZyhSKQogICAgICA/ICgoRSA9IHsKICAgICAgICBuYW1lOiBnZXRMb2NhbGVSb3V0ZU5hbWUoUiwgYSwgZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuKSwKICAgICAgICBwYXJhbXM6IFAucGFyYW1zLAogICAgICAgIHF1ZXJ5OiBQLnF1ZXJ5LAogICAgICAgIGhhc2g6IFAuaGFzaCwKICAgICAgfSksCiAgICAgICAgKEUuc3RhdGUgPSBQLnN0YXRlKSkKICAgICAgOiAodSh7IGN1cnJlbnRMb2NhbGU6IGEsIGRlZmF1bHRMb2NhbGU6IG8sIHN0cmF0ZWd5OiBsIH0pICYmCiAgICAgICAgKEUucGF0aCA9IGAvJHthfSR7RS5wYXRofWApLAogICAgICAgIChFLnBhdGggPSBjCiAgICAgICAgICA/IHdpdGhUcmFpbGluZ1NsYXNoKEUucGF0aCwgITApCiAgICAgICAgICA6IHdpdGhvdXRUcmFpbGluZ1NsYXNoKEUucGF0aCwgITApKSk7CiAgfSBlbHNlCiAgICAhRS5uYW1lICYmCiAgICAgICEoInBhdGgiIGluIEUpICYmCiAgICAgIChFLm5hbWUgPSBnZXRSb3V0ZUJhc2VOYW1lKGUsIG4uY3VycmVudFJvdXRlLnZhbHVlKSksCiAgICAgIChFLm5hbWUgPSBnZXRMb2NhbGVSb3V0ZU5hbWUoRS5uYW1lLCBhLCBlLnJ1bnRpbWVDb25maWcucHVibGljLmkxOG4pKTsKICB0cnkgewogICAgY29uc3QgUCA9IG4ucmVzb2x2ZShFKTsKICAgIHJldHVybiBQLm5hbWUgPyBQIDogbi5yZXNvbHZlKHQpOwogIH0gY2F0Y2ggKFApIHsKICAgIGlmICh0eXBlb2YgUCA9PSAib2JqZWN0IiAmJiAidHlwZSIgaW4gUCAmJiBQLnR5cGUgPT09IDEpIHJldHVybiBudWxsOwogIH0KfQpjb25zdCBEZWZhdWx0U3dpdGNoTG9jYWxlUGF0aEludGVyY2VwdGVyID0gKGUpID0+IGU7CmZ1bmN0aW9uIGdldExvY2FsaXphYmxlTWV0YUZyb21EeW5hbWljUGFyYW1zKGUsIHQpIHsKICB2YXIgbjsKICBpZiAoZS5ydW50aW1lQ29uZmlnLnB1YmxpYy5pMThuLmV4cGVyaW1lbnRhbC5zd2l0Y2hMb2NhbGVQYXRoTGlua1NTUikKICAgIHJldHVybiB1bnJlZihlLm1ldGFTdGF0ZS52YWx1ZSk7CiAgY29uc3QgciA9IHQubWV0YSB8fCB7fTsKICByZXR1cm4gKAogICAgKChuID0gdW5yZWYocikpID09IG51bGwgPyB2b2lkIDAgOiBuW0RFRkFVTFRfRFlOQU1JQ19QQVJBTVNfS0VZXSkgfHwge30KICApOwp9CmZ1bmN0aW9uIHN3aXRjaExvY2FsZVBhdGgoZSwgdCwgcikgewogIGNvbnN0IG4gPSByID8/IGUucm91dGVyLmN1cnJlbnRSb3V0ZS52YWx1ZSwKICAgIGkgPSBnZXRSb3V0ZUJhc2VOYW1lKGUsIG4pOwogIGlmICghaSkgcmV0dXJuICIiOwogIGNvbnN0IGEgPSBleHRlbmRTd2l0Y2hMb2NhbGVQYXRoSW50ZXJjZXB0ZXIoZS5ydW50aW1lQ29uZmlnKSwKICAgIG8gPSByb3V0ZVRvT2JqZWN0KG4pLAogICAgbCA9IGdldExvY2FsaXphYmxlTWV0YUZyb21EeW5hbWljUGFyYW1zKGUsIG4pW3RdLAogICAgYyA9IHsgLi4ubywgbmFtZTogaSwgcGFyYW1zOiB7IC4uLm8ucGFyYW1zLCAuLi5sIH0gfSwKICAgIHUgPSBsb2NhbGVQYXRoKGUsIGMsIHQpOwogIHJldHVybiBhKHUsIHQpOwp9CmZ1bmN0aW9uIGxvY2FsZUhlYWQoCiAgZSwKICB7CiAgICBhZGREaXJBdHRyaWJ1dGU6IHQgPSAhMSwKICAgIGFkZFNlb0F0dHJpYnV0ZXM6IHIgPSAhMCwKICAgIGlkZW50aWZpZXJBdHRyaWJ1dGU6IG4gPSAiaGlkIiwKICB9CikgewogIGNvbnN0IHsgZGVmYXVsdERpcmVjdGlvbjogaSB9ID0gdXNlUnVudGltZUNvbmZpZygpLnB1YmxpYy5pMThuLAogICAgYSA9IGdldENvbXBvc2VyKGUuaTE4biksCiAgICBvID0geyBodG1sQXR0cnM6IHt9LCBsaW5rOiBbXSwgbWV0YTogW10gfTsKICBpZiAodW5yZWYoYS5sb2NhbGVzKSA9PSBudWxsIHx8IHVucmVmKGEuYmFzZVVybCkgPT0gbnVsbCkgcmV0dXJuIG87CiAgY29uc3QgbCA9IGdldExvY2FsZShlLmkxOG4pLAogICAgYyA9IGdldExvY2FsZXMoZS5pMThuKSwKICAgIHUgPSBnZXROb3JtYWxpemVkTG9jYWxlcyhjKS5maW5kKChiKSA9PiBiLmNvZGUgPT09IGwpIHx8IHsgY29kZTogbCB9LAogICAgZCA9IHUubGFuZ3VhZ2UsCiAgICBFID0gdS5kaXIgfHwgaTsKICByZXR1cm4gKAogICAgdCAmJiAoby5odG1sQXR0cnMuZGlyID0gRSksCiAgICByICYmCiAgICBsICYmCiAgICB1bnJlZihhLmxvY2FsZXMpICYmCiAgICAoZCAmJiAoby5odG1sQXR0cnMubGFuZyA9IGQpLAogICAgICBvLmxpbmsucHVzaCgKICAgICAgICAuLi5nZXRIcmVmbGFuZ0xpbmtzKGUsIHVucmVmKGMpLCBuKSwKICAgICAgICAuLi5nZXRDYW5vbmljYWxMaW5rKGUsIG4sIHIpCiAgICAgICksCiAgICAgIG8ubWV0YS5wdXNoKAogICAgICAgIC4uLmdldE9nVXJsKGUsIG4sIHIpLAogICAgICAgIC4uLmdldEN1cnJlbnRPZ0xvY2FsZSh1LCBkLCBuKSwKICAgICAgICAuLi5nZXRBbHRlcm5hdGVPZ0xvY2FsZXModW5yZWYoYyksIGQsIG4pCiAgICAgICkpLAogICAgbwogICk7Cn0KZnVuY3Rpb24gZ2V0QmFzZVVybCgpIHsKICBjb25zdCBlID0gdXNlTnV4dEFwcCgpLAogICAgdCA9IGdldENvbXBvc2VyKGUuJGkxOG4pOwogIHJldHVybiBqb2luVVJMKHVucmVmKHQuYmFzZVVybCksIGUuJGNvbmZpZy5hcHAuYmFzZVVSTCk7Cn0KZnVuY3Rpb24gZ2V0SHJlZmxhbmdMaW5rcyhlLCB0LCByKSB7CiAgY29uc3QgbiA9IGdldEJhc2VVcmwoKSwKICAgIHsgZGVmYXVsdExvY2FsZTogaSwgc3RyYXRlZ3k6IGEgfSA9IHVzZVJ1bnRpbWVDb25maWcoKS5wdWJsaWMuaTE4biwKICAgIG8gPSBbXTsKICBpZiAoYSA9PT0gIm5vX3ByZWZpeCIpIHJldHVybiBvOwogIGNvbnN0IGwgPSBuZXcgTWFwKCk7CiAgZm9yIChjb25zdCBjIG9mIHQpIHsKICAgIGNvbnN0IHUgPSBjLmxhbmd1YWdlOwogICAgaWYgKCF1KSB7CiAgICAgIGNvbnNvbGUud2FybigKICAgICAgICAiTG9jYWxlIGBsYW5ndWFnZWAgSVNPIGNvZGUgaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgYWx0ZXJuYXRlIGxpbmsiCiAgICAgICk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgY29uc3QgW2QsIEVdID0gdS5zcGxpdCgiLSIpOwogICAgZCAmJiBFICYmIChjLmlzQ2F0Y2hhbGxMb2NhbGUgfHwgIWwuaGFzKGQpKSAmJiBsLnNldChkLCBjKSwgbC5zZXQodSwgYyk7CiAgfQogIGZvciAoY29uc3QgW2MsIHVdIG9mIGwuZW50cmllcygpKSB7CiAgICBjb25zdCBkID0gc3dpdGNoTG9jYWxlUGF0aChlLCB1LmNvZGUpOwogICAgZCAmJgogICAgICBvLnB1c2goewogICAgICAgIFtyXTogYGkxOG4tYWx0LSR7Y31gLAogICAgICAgIHJlbDogImFsdGVybmF0ZSIsCiAgICAgICAgaHJlZjogdG9BYnNvbHV0ZVVybChkLCBuKSwKICAgICAgICBocmVmbGFuZzogYywKICAgICAgfSk7CiAgfQogIGlmIChpKSB7CiAgICBjb25zdCBjID0gc3dpdGNoTG9jYWxlUGF0aChlLCBpKTsKICAgIGMgJiYKICAgICAgby5wdXNoKHsKICAgICAgICBbcl06ICJpMThuLXhkIiwKICAgICAgICByZWw6ICJhbHRlcm5hdGUiLAogICAgICAgIGhyZWY6IHRvQWJzb2x1dGVVcmwoYywgbiksCiAgICAgICAgaHJlZmxhbmc6ICJ4LWRlZmF1bHQiLAogICAgICB9KTsKICB9CiAgcmV0dXJuIG87Cn0KZnVuY3Rpb24gZ2V0Q2Fub25pY2FsVXJsKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZS5yb3V0ZXIuY3VycmVudFJvdXRlLnZhbHVlLAogICAgaSA9IGxvY2FsZVJvdXRlKGUsIHsgLi4ubiwgcGF0aDogdm9pZCAwLCBuYW1lOiBnZXRSb3V0ZUJhc2VOYW1lKGUsIG4pIH0pOwogIGlmICghaSkgcmV0dXJuICIiOwogIGxldCBhID0gdG9BYnNvbHV0ZVVybChpLnBhdGgsIHQpOwogIGNvbnN0IG8gPSAoaXNPYmplY3QkMShyKSAmJiByLmNhbm9uaWNhbFF1ZXJpZXMpIHx8IFtdLAogICAgbCA9IGkucXVlcnksCiAgICBjID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpOwogIGZvciAoY29uc3QgZCBvZiBvKQogICAgaWYgKGQgaW4gbCkgewogICAgICBjb25zdCBFID0gbFtkXTsKICAgICAgaXNBcnJheSQxKEUpCiAgICAgICAgPyBFLmZvckVhY2goKGIpID0+IGMuYXBwZW5kKGQsIGIgfHwgIiIpKQogICAgICAgIDogYy5hcHBlbmQoZCwgRSB8fCAiIik7CiAgICB9CiAgY29uc3QgdSA9IGMudG9TdHJpbmcoKTsKICByZXR1cm4gdSAmJiAoYSA9IGAke2F9PyR7dX1gKSwgYTsKfQpmdW5jdGlvbiBnZXRDYW5vbmljYWxMaW5rKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZ2V0QmFzZVVybCgpLAogICAgaSA9IGdldENhbm9uaWNhbFVybChlLCBuLCByKTsKICByZXR1cm4gaSA/IFt7IFt0XTogImkxOG4tY2FuIiwgcmVsOiAiY2Fub25pY2FsIiwgaHJlZjogaSB9XSA6IFtdOwp9CmZ1bmN0aW9uIGdldE9nVXJsKGUsIHQsIHIpIHsKICBjb25zdCBuID0gZ2V0QmFzZVVybCgpLAogICAgaSA9IGdldENhbm9uaWNhbFVybChlLCBuLCByKTsKICByZXR1cm4gaSA/IFt7IFt0XTogImkxOG4tb2ctdXJsIiwgcHJvcGVydHk6ICJvZzp1cmwiLCBjb250ZW50OiBpIH1dIDogW107Cn0KZnVuY3Rpb24gZ2V0Q3VycmVudE9nTG9jYWxlKGUsIHQsIHIpIHsKICByZXR1cm4gIWUgfHwgIXQKICAgID8gW10KICAgIDogWwogICAgICB7CiAgICAgICAgW3JdOiAiaTE4bi1vZyIsCiAgICAgICAgcHJvcGVydHk6ICJvZzpsb2NhbGUiLAogICAgICAgIGNvbnRlbnQ6IGh5cGVuVG9VbmRlcnNjb3JlKHQpLAogICAgICB9LAogICAgXTsKfQpmdW5jdGlvbiBnZXRBbHRlcm5hdGVPZ0xvY2FsZXMoZSwgdCwgcikgewogIHJldHVybiBlCiAgICAuZmlsdGVyKChpKSA9PiBpLmxhbmd1YWdlICYmIGkubGFuZ3VhZ2UgIT09IHQpCiAgICAubWFwKChpKSA9PiAoewogICAgICBbcl06IGBpMThuLW9nLWFsdC0ke2kubGFuZ3VhZ2V9YCwKICAgICAgcHJvcGVydHk6ICJvZzpsb2NhbGU6YWx0ZXJuYXRlIiwKICAgICAgY29udGVudDogaHlwZW5Ub1VuZGVyc2NvcmUoaS5sYW5ndWFnZSksCiAgICB9KSk7Cn0KZnVuY3Rpb24gaHlwZW5Ub1VuZGVyc2NvcmUoZSkgewogIHJldHVybiAoZSB8fCAiIikucmVwbGFjZSgvLS9nLCAiXyIpOwp9CmZ1bmN0aW9uIHRvQWJzb2x1dGVVcmwoZSwgdCkgewogIHJldHVybiBlLm1hdGNoKC9eaHR0cHM/OlwvXC8vKSA/IGUgOiBqb2luVVJMKHQsIGUpOwp9CmZ1bmN0aW9uIGNyZWF0ZUxvY2FsZUZyb21Sb3V0ZUdldHRlcigpIHsKICBjb25zdCB7IHJvdXRlc05hbWVTZXBhcmF0b3I6IGUsIGRlZmF1bHRMb2NhbGVSb3V0ZU5hbWVTdWZmaXg6IHQgfSA9CiAgICB1c2VSdW50aW1lQ29uZmlnKCkucHVibGljLmkxOG4sCiAgICByID0gYCgke2xvY2FsZUNvZGVzLmpvaW4oInwiKX0pYCwKICAgIG4gPSBgKD86JHtlfSR7dH0pP2AsCiAgICBpID0gbmV3IFJlZ0V4cChgJHtlfSR7cn0ke259JGAsICJpIiksCiAgICBhID0gZ2V0TG9jYWxlc1JlZ2V4KGxvY2FsZUNvZGVzKTsKICByZXR1cm4gKGwpID0+IHsKICAgIGlmIChpc09iamVjdCQxKGwpKSB7CiAgICAgIGlmIChsLm5hbWUpIHsKICAgICAgICBjb25zdCB1ID0gKGlzU3RyaW5nKGwubmFtZSkgPyBsLm5hbWUgOiBsLm5hbWUudG9TdHJpbmcoKSkubWF0Y2goaSk7CiAgICAgICAgaWYgKHUgJiYgdS5sZW5ndGggPiAxKSByZXR1cm4gdVsxXTsKICAgICAgfSBlbHNlIGlmIChsLnBhdGgpIHsKICAgICAgICBjb25zdCBjID0gbC5wYXRoLm1hdGNoKGEpOwogICAgICAgIGlmIChjICYmIGMubGVuZ3RoID4gMSkgcmV0dXJuIGNbMV07CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcobCkpIHsKICAgICAgY29uc3QgYyA9IGwubWF0Y2goYSk7CiAgICAgIGlmIChjICYmIGMubGVuZ3RoID4gMSkgcmV0dXJuIGNbMV07CiAgICB9CiAgICByZXR1cm4gIiI7CiAgfTsKfQpmdW5jdGlvbiBzZXRDb29raWVMb2NhbGUoZSwgdCkgewogIHJldHVybiBjYWxsVnVlSTE4bkludGVyZmFjZXMoZSwgInNldExvY2FsZUNvb2tpZSIsIHQpOwp9CmZ1bmN0aW9uIG1lcmdlTG9jYWxlTWVzc2FnZShlLCB0LCByKSB7CiAgcmV0dXJuIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCAibWVyZ2VMb2NhbGVNZXNzYWdlIiwgdCwgcik7Cn0KYXN5bmMgZnVuY3Rpb24gb25CZWZvcmVMYW5ndWFnZVN3aXRjaChlLCB0LCByLCBuLCBpKSB7CiAgcmV0dXJuIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCAib25CZWZvcmVMYW5ndWFnZVN3aXRjaCIsIHQsIHIsIG4sIGkpOwp9CmZ1bmN0aW9uIG9uTGFuZ3VhZ2VTd2l0Y2hlZChlLCB0LCByKSB7CiAgcmV0dXJuIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCAib25MYW5ndWFnZVN3aXRjaGVkIiwgdCwgcik7Cn0KZnVuY3Rpb24gaW5pdENvbW1vbkNvbXBvc2FibGVPcHRpb25zKGUpIHsKICByZXR1cm4gewogICAgaTE4bjogZSA/PyB1c2VOdXh0QXBwKCkuJGkxOG4sCiAgICByb3V0ZXI6IHVzZVJvdXRlciQxKCksCiAgICBydW50aW1lQ29uZmlnOiB1c2VSdW50aW1lQ29uZmlnKCksCiAgICBtZXRhU3RhdGU6IHVzZVN0YXRlKCJudXh0LWkxOG4tbWV0YSIsICgpID0+ICh7fSkpLAogIH07Cn0KYXN5bmMgZnVuY3Rpb24gbG9hZEFuZFNldExvY2FsZShlLCB0LCByLCBuID0gITEpIHsKICBjb25zdCB7IGRpZmZlcmVudERvbWFpbnM6IGksIHNraXBTZXR0aW5nTG9jYWxlT25OYXZpZ2F0ZTogYSwgbGF6eTogbyB9ID0gciwKICAgIGwgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKHIpLAogICAgYyA9IHVzZU51eHRBcHAoKSwKICAgIHUgPSBnZXRMb2NhbGUodCksCiAgICBkID0gZ2V0TG9jYWxlQ29kZXModCk7CiAgZnVuY3Rpb24gRShQID0gdSkgewogICAgbCA9PT0gITEgfHwgIWwudXNlQ29va2llIHx8IGEgfHwgc2V0Q29va2llTG9jYWxlKHQsIFApOwogIH0KICBpZiAoIWUgfHwgKCFuICYmIGkpIHx8IHUgPT09IGUpIHJldHVybiBFKCksICExOwogIGNvbnN0IGIgPSBhd2FpdCBvbkJlZm9yZUxhbmd1YWdlU3dpdGNoKHQsIHUsIGUsIG4sIGMpOwogIGlmIChiICYmIGQuaW5jbHVkZXMoYikpIHsKICAgIGlmICh1ID09PSBiKSByZXR1cm4gRSgpLCAhMTsKICAgIGUgPSBiOwogIH0KICBpZiAobykgewogICAgY29uc3QgUCA9IGdldFZ1ZUkxOG5Qcm9wZXJ0eVZhbHVlKHQsICJmYWxsYmFja0xvY2FsZSIpLAogICAgICBSID0gKFQsIE0pID0+IG1lcmdlTG9jYWxlTWVzc2FnZSh0LCBULCBNKTsKICAgIGlmIChQKSB7CiAgICAgIGNvbnN0IFQgPSBtYWtlRmFsbGJhY2tMb2NhbGVDb2RlcyhQLCBbZV0pOwogICAgICBhd2FpdCBQcm9taXNlLmFsbChULm1hcCgoTSkgPT4gbG9hZExvY2FsZShNLCBsb2NhbGVMb2FkZXJzLCBSKSkpOwogICAgfQogICAgYXdhaXQgbG9hZExvY2FsZShlLCBsb2NhbGVMb2FkZXJzLCBSKTsKICB9CiAgcmV0dXJuIGEKICAgID8gITEKICAgIDogKEUoZSksIHNldExvY2FsZSh0LCBlKSwgYXdhaXQgb25MYW5ndWFnZVN3aXRjaGVkKHQsIHUsIGUpLCAhMCk7Cn0KZnVuY3Rpb24gY3JlYXRlTG9nZ2VyKGUpIHsKICByZXR1cm4geyBsb2c6IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSwgYCR7ZX06YCkgfTsKfQpmdW5jdGlvbiBkZXRlY3RMb2NhbGUoZSwgdCwgciwgbiwgaSkgewogIGNvbnN0IHsKICAgIHN0cmF0ZWd5OiBhLAogICAgZGVmYXVsdExvY2FsZTogbywKICAgIGRpZmZlcmVudERvbWFpbnM6IGwsCiAgICBtdWx0aURvbWFpbkxvY2FsZXM6IGMsCiAgfSA9IGksCiAgICB7IGxvY2FsZUNvb2tpZTogdSB9ID0gbiwKICAgIGQgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKGkpOwogIGNyZWF0ZUxvZ2dlcigiZGV0ZWN0TG9jYWxlIik7CiAgY29uc3QgRSA9IGlzRnVuY3Rpb24ocikgPyByKCkgOiByLAogICAgYiA9IGRldGVjdEJyb3dzZXJMYW5ndWFnZShlLCBuLCBFKTsKICBpZiAoYi5yZWFzb24gPT09IERldGVjdEZhaWx1cmUuU1NHX0lHTk9SRSkgcmV0dXJuIEU7CiAgaWYgKGIubG9jYWxlICYmIGIuZnJvbSAhPSBudWxsKSByZXR1cm4gYi5sb2NhbGU7CiAgbGV0IFAgPSAiIjsKICBsIHx8IGMKICAgID8gUCB8fCAoUCA9IGdldExvY2FsZURvbWFpbihub3JtYWxpemVkTG9jYWxlcywgYSwgZSkpCiAgICA6IGEgIT09ICJub19wcmVmaXgiICYmIChQIHx8IChQID0gdChlKSkpOwogIGNvbnN0IFIgPSBkICYmIGQudXNlQ29va2llICYmIHU7CiAgcmV0dXJuIFAgfHwgKFAgPSBSIHx8IEUgfHwgbyB8fCAiIiksIFA7Cn0KZnVuY3Rpb24gZGV0ZWN0UmVkaXJlY3QoewogIHJvdXRlOiBlLAogIHRhcmdldExvY2FsZTogdCwKICByb3V0ZUxvY2FsZUdldHRlcjogciwKICBjYWxsZWRXaXRoUm91dGluZzogbiA9ICExLAp9KSB7CiAgY29uc3QgaSA9IHVzZU51eHRBcHAoKSwKICAgIGEgPSBpbml0Q29tbW9uQ29tcG9zYWJsZU9wdGlvbnMoKSwKICAgIHsgc3RyYXRlZ3k6IG8sIGRpZmZlcmVudERvbWFpbnM6IGwgfSA9IGEucnVudGltZUNvbmZpZy5wdWJsaWMuaTE4bjsKICBsZXQgYyA9ICIiOwogIGNvbnN0IHsgZnVsbFBhdGg6IHUgfSA9IGUudG87CiAgaWYgKCFsICYmIChuIHx8IG8gIT09ICJub19wcmVmaXgiKSAmJiByKGUudG8pICE9PSB0KSB7CiAgICBjb25zdCBkID0gaS4kc3dpdGNoTG9jYWxlUGF0aCh0KSB8fCBpLiRsb2NhbGVQYXRoKHUsIHQpOwogICAgaXNTdHJpbmcoZCkgJiYKICAgICAgZCAmJgogICAgICAhaXNFcXVhbCQyKGQsIHUpICYmCiAgICAgICFkLnN0YXJ0c1dpdGgoIi8vIikgJiYKICAgICAgKGMgPSBlLmZyb20gJiYgZS5mcm9tLmZ1bGxQYXRoID09PSBkID8gIiIgOiBkKTsKICB9CiAgaWYgKChsIHx8IGlzU1NHKSAmJiByKGUudG8pICE9PSB0KSB7CiAgICBjb25zdCBkID0gc3dpdGNoTG9jYWxlUGF0aChhLCB0LCBlLnRvKTsKICAgIGlzU3RyaW5nKGQpICYmIGQgJiYgIWlzRXF1YWwkMihkLCB1KSAmJiAhZC5zdGFydHNXaXRoKCIvLyIpICYmIChjID0gZCk7CiAgfQogIHJldHVybiBjOwp9CmZ1bmN0aW9uIGlzUm9vdFJlZGlyZWN0T3B0aW9ucyhlKSB7CiAgcmV0dXJuIGlzT2JqZWN0JDEoZSkgJiYgInBhdGgiIGluIGUgJiYgInN0YXR1c0NvZGUiIGluIGU7Cn0KY29uc3QgdXNlUmVkaXJlY3RTdGF0ZSA9ICgpID0+CiAgdXNlU3RhdGUoTlVYVF9JMThOX01PRFVMRV9JRCArICI6cmVkaXJlY3QiLCAoKSA9PiAiIik7CmZ1bmN0aW9uIF9uYXZpZ2F0ZShlLCB0KSB7CiAgcmV0dXJuIG5hdmlnYXRlVG8oZSwgeyByZWRpcmVjdENvZGU6IHQgfSk7Cn0KYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGUoZSwgeyBzdGF0dXM6IHQgPSAzMDIsIGVuYWJsZU5hdmlnYXRlOiByID0gITEgfSA9IHt9KSB7CiAgY29uc3QgeyBudXh0QXBwOiBuLCBpMThuOiBpLCBsb2NhbGU6IGEsIHJvdXRlOiBvIH0gPSBlLAogICAgewogICAgICByb290UmVkaXJlY3Q6IGwsCiAgICAgIGRpZmZlcmVudERvbWFpbnM6IGMsCiAgICAgIG11bHRpRG9tYWluTG9jYWxlczogdSwKICAgICAgc2tpcFNldHRpbmdMb2NhbGVPbk5hdmlnYXRlOiBkLAogICAgICBjb25maWdMb2NhbGVzOiBFLAogICAgICBzdHJhdGVneTogYiwKICAgIH0gPSBuLiRjb25maWcucHVibGljLmkxOG47CiAgbGV0IHsgcmVkaXJlY3RQYXRoOiBQIH0gPSBlOwogIGlmIChvLnBhdGggPT09ICIvIiAmJiBsKQogICAgcmV0dXJuICgKICAgICAgaXNTdHJpbmcobCkKICAgICAgICA/IChQID0gIi8iICsgbCkKICAgICAgICA6IGlzUm9vdFJlZGlyZWN0T3B0aW9ucyhsKSAmJiAoKFAgPSAiLyIgKyBsLnBhdGgpLCAodCA9IGwuc3RhdHVzQ29kZSkpLAogICAgICAoUCA9IG4uJGxvY2FsZVBhdGgoUCwgYSkpLAogICAgICBfbmF2aWdhdGUoUCwgdCkKICAgICk7CiAgaWYgKAogICAgISgKICAgICAgZCAmJgogICAgICAoKGkuX19wZW5kaW5nTG9jYWxlID0gYSksCiAgICAgICAgKGkuX19wZW5kaW5nTG9jYWxlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChSKSA9PiB7CiAgICAgICAgICBpLl9fcmVzb2x2ZVBlbmRpbmdMb2NhbGVQcm9taXNlID0gUjsKICAgICAgICB9KSksCiAgICAgICAgIXIpCiAgICApCiAgKSB7CiAgICBpZiAodSAmJiBiID09PSAicHJlZml4X2V4Y2VwdF9kZWZhdWx0IikgewogICAgICBjb25zdCBSID0gZ2V0SG9zdCgpLAogICAgICAgIFQgPSBFLmZpbmQoKHgpID0+IHsKICAgICAgICAgIHZhciBrOwogICAgICAgICAgcmV0dXJuIHR5cGVvZiB4ICE9ICJzdHJpbmciCiAgICAgICAgICAgID8gKGsgPSB4LmRlZmF1bHRGb3JEb21haW5zKSA9PSBudWxsCiAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICA6IGsuZmluZCgoUykgPT4gUyA9PT0gUikKICAgICAgICAgICAgOiAhMTsKICAgICAgICB9KSwKICAgICAgICBNID0gdHlwZW9mIFQgIT0gInN0cmluZyIgPyAoVCA9PSBudWxsID8gdm9pZCAwIDogVC5jb2RlKSA6IHZvaWQgMDsKICAgICAgaWYgKG8ucGF0aC5zdGFydHNXaXRoKGAvJHtNfWApKQogICAgICAgIHJldHVybiBfbmF2aWdhdGUoby5wYXRoLnJlcGxhY2UoYC8ke019YCwgIiIpLCB0KTsKICAgICAgaWYgKCFvLnBhdGguc3RhcnRzV2l0aChgLyR7YX1gKSAmJiBhICE9PSBNKSB7CiAgICAgICAgY29uc3QgayA9IGNyZWF0ZUxvY2FsZUZyb21Sb3V0ZUdldHRlcigpKG8ucGF0aCk7CiAgICAgICAgcmV0dXJuIF9uYXZpZ2F0ZSgKICAgICAgICAgIGsgIT09ICIiCiAgICAgICAgICAgID8gYC8ke2EgKyBvLnBhdGgucmVwbGFjZShgLyR7a31gLCAiIil9YAogICAgICAgICAgICA6IGAvJHthICsgKG8ucGF0aCA9PT0gIi8iID8gIiIgOiBvLnBhdGgpfWAsCiAgICAgICAgICB0CiAgICAgICAgKTsKICAgICAgfSBlbHNlIGlmIChQICYmIG8ucGF0aCAhPT0gUCkgcmV0dXJuIF9uYXZpZ2F0ZShQLCB0KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGMpIHsKICAgICAgY29uc3QgUiA9IHVzZVJlZGlyZWN0U3RhdGUoKTsKICAgICAgUi52YWx1ZSAmJiBSLnZhbHVlICE9PSBQICYmICgoUi52YWx1ZSA9ICIiKSwgd2luZG93LmxvY2F0aW9uLmFzc2lnbihQKSk7CiAgICB9IGVsc2UgaWYgKFApIHJldHVybiBfbmF2aWdhdGUoUCwgdCk7CiAgfQp9CmZ1bmN0aW9uIGluamVjdE51eHRIZWxwZXJzKGUsIHQpIHsKICBkZWZpbmVHZXR0ZXIoZSwgIiRpMThuIiwgZ2V0STE4blRhcmdldCh0KSksCiAgICBkZWZpbmVHZXR0ZXIoZSwgIiRnZXRSb3V0ZUJhc2VOYW1lIiwgd3JhcENvbXBvc2FibGUoZ2V0Um91dGVCYXNlTmFtZSkpLAogICAgZGVmaW5lR2V0dGVyKGUsICIkbG9jYWxlUGF0aCIsIHdyYXBDb21wb3NhYmxlKGxvY2FsZVBhdGgpKSwKICAgIGRlZmluZUdldHRlcihlLCAiJGxvY2FsZVJvdXRlIiwgd3JhcENvbXBvc2FibGUobG9jYWxlUm91dGUpKSwKICAgIGRlZmluZUdldHRlcihlLCAiJHN3aXRjaExvY2FsZVBhdGgiLCB3cmFwQ29tcG9zYWJsZShzd2l0Y2hMb2NhbGVQYXRoKSksCiAgICBkZWZpbmVHZXR0ZXIoZSwgIiRsb2NhbGVIZWFkIiwgd3JhcENvbXBvc2FibGUobG9jYWxlSGVhZCkpOwp9CmZ1bmN0aW9uIGV4dGVuZFByZWZpeGFibGUoZSA9IHVzZVJ1bnRpbWVDb25maWcoKSkgewogIHJldHVybiAodCkgPT4gRGVmYXVsdFByZWZpeGFibGUodCkgJiYgIWUucHVibGljLmkxOG4uZGlmZmVyZW50RG9tYWluczsKfQpmdW5jdGlvbiBleHRlbmRTd2l0Y2hMb2NhbGVQYXRoSW50ZXJjZXB0ZXIoZSA9IHVzZVJ1bnRpbWVDb25maWcoKSkgewogIHJldHVybiAodCwgcikgPT4gewogICAgaWYgKGUucHVibGljLmkxOG4uZGlmZmVyZW50RG9tYWlucykgewogICAgICBjb25zdCBuID0gZ2V0RG9tYWluRnJvbUxvY2FsZShyKTsKICAgICAgcmV0dXJuIG4gPyBqb2luVVJMKG4sIHQpIDogdDsKICAgIH0gZWxzZSByZXR1cm4gRGVmYXVsdFN3aXRjaExvY2FsZVBhdGhJbnRlcmNlcHRlcih0KTsKICB9Owp9CmZ1bmN0aW9uIGV4dGVuZEJhc2VVcmwoKSB7CiAgcmV0dXJuICgpID0+IHsKICAgIGNvbnN0IGUgPSB1c2VOdXh0QXBwKCksCiAgICAgIHsKICAgICAgICBiYXNlVXJsOiB0LAogICAgICAgIGRlZmF1bHRMb2NhbGU6IHIsCiAgICAgICAgZGlmZmVyZW50RG9tYWluczogbiwKICAgICAgfSA9IGUuJGNvbmZpZy5wdWJsaWMuaTE4bjsKICAgIGlmIChpc0Z1bmN0aW9uKHQpKSByZXR1cm4gdChlKTsKICAgIGNvbnN0IGkgPSBpc0Z1bmN0aW9uKHIpID8gcigpIDogcjsKICAgIGlmIChuICYmIGkpIHsKICAgICAgY29uc3QgYSA9IGdldERvbWFpbkZyb21Mb2NhbGUoaSk7CiAgICAgIGlmIChhKSByZXR1cm4gYTsKICAgIH0KICAgIHJldHVybiB0OwogIH07Cn0KZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShlKSB7CiAgcmV0dXJuIE5VWFRfSTE4Tl9NT0RVTEVfSUQgKyAiICIgKyBlOwp9CmZ1bmN0aW9uIGNhbGxWdWVJMThuSW50ZXJmYWNlcyhlLCB0LCAuLi5yKSB7CiAgY29uc3QgbiA9IGdldEkxOG5UYXJnZXQoZSksCiAgICBbaSwgYV0gPSBbbiwgblt0XV07CiAgcmV0dXJuIFJlZmxlY3QuYXBwbHkoYSwgaSwgWy4uLnJdKTsKfQpmdW5jdGlvbiBnZXRWdWVJMThuUHJvcGVydHlWYWx1ZShlLCB0KSB7CiAgY29uc3QgciA9IGdldEkxOG5UYXJnZXQoZSk7CiAgcmV0dXJuIHVucmVmKHJbdF0pOwp9CmZ1bmN0aW9uIGRlZmluZUdldHRlcihlLCB0LCByKSB7CiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHQsIHsgZ2V0OiAoKSA9PiByIH0pOwp9CmZ1bmN0aW9uIHdyYXBDb21wb3NhYmxlKGUsIHQgPSBpbml0Q29tbW9uQ29tcG9zYWJsZU9wdGlvbnMoKSkgewogIHJldHVybiAoLi4ucikgPT4gZSh0LCAuLi5yKTsKfQpmdW5jdGlvbiBnZXRCcm93c2VyTG9jYWxlKCkgewogIGxldCBlOwogIHJldHVybiAoCiAgICBuYXZpZ2F0b3IubGFuZ3VhZ2VzICYmCiAgICAoZSA9IGZpbmRCcm93c2VyTG9jYWxlKG5vcm1hbGl6ZWRMb2NhbGVzLCBuYXZpZ2F0b3IubGFuZ3VhZ2VzKSksCiAgICBlCiAgKTsKfQpmdW5jdGlvbiBnZXRJMThuQ29va2llKCkgewogIGNvbnN0IGUgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKCksCiAgICB0ID0gKGUgJiYgZS5jb29raWVLZXkpIHx8IERFRkFVTFRfQ09PS0lFX0tFWSwKICAgIHIgPSBuZXcgRGF0ZSgpLAogICAgbiA9IHsKICAgICAgZXhwaXJlczogbmV3IERhdGUoci5zZXREYXRlKHIuZ2V0RGF0ZSgpICsgMzY1KSksCiAgICAgIHBhdGg6ICIvIiwKICAgICAgc2FtZVNpdGU6IGUgJiYgZS5jb29raWVDcm9zc09yaWdpbiA/ICJub25lIiA6ICJsYXgiLAogICAgICBzZWN1cmU6IChlICYmIGUuY29va2llQ3Jvc3NPcmlnaW4pIHx8IChlICYmIGUuY29va2llU2VjdXJlKSwKICAgIH07CiAgcmV0dXJuIGUgJiYgZS5jb29raWVEb21haW4gJiYgKG4uZG9tYWluID0gZS5jb29raWVEb21haW4pLCB1c2VDb29raWUodCwgbik7Cn0KZnVuY3Rpb24gZ2V0TG9jYWxlQ29va2llKGUsIHQsIHIpIHsKICBpZiAodCA9PT0gITEgfHwgIXQudXNlQ29va2llKSByZXR1cm47CiAgY29uc3QgbiA9IGUudmFsdWUgPz8gdm9pZCAwOwogIGlmIChuICE9IG51bGwpIHsKICAgIGlmIChsb2NhbGVDb2Rlcy5pbmNsdWRlcyhuKSkgcmV0dXJuIG47CiAgICBpZiAocikgcmV0dXJuIChlLnZhbHVlID0gciksIHI7CiAgICBlLnZhbHVlID0gdm9pZCAwOwogIH0KfQpmdW5jdGlvbiBzZXRMb2NhbGVDb29raWUoZSwgdCwgcikgewogIHIgPT09ICExIHx8ICFyLnVzZUNvb2tpZSB8fCAoZS52YWx1ZSA9IHQpOwp9CnZhciBEZXRlY3RGYWlsdXJlID0gKChlKSA9PiAoCiAgKGUuTk9UX0ZPVU5EID0gIm5vdF9mb3VuZF9tYXRjaCIpLAogIChlLkZJUlNUX0FDQ0VTUyA9ICJmaXJzdF9hY2Nlc3Nfb25seSIpLAogIChlLk5PX1JFRElSRUNUX1JPT1QgPSAibm90X3JlZGlyZWN0X29uX3Jvb3QiKSwKICAoZS5OT19SRURJUkVDVF9OT19QUkVGSVggPSAibm90X3JlZGlyZWN0X29uX25vX3ByZWZpeCIpLAogIChlLlNTR19JR05PUkUgPSAiZGV0ZWN0X2lnbm9yZV9vbl9zc2ciKSwKICBlCikpKERldGVjdEZhaWx1cmUgfHwge30pOwpjb25zdCBEZWZhdWx0RGV0ZWN0QnJvd3Nlckxhbmd1YWdlRnJvbVJlc3VsdCA9IHsgbG9jYWxlOiAiIiB9OwpmdW5jdGlvbiBkZXRlY3RCcm93c2VyTGFuZ3VhZ2UoZSwgdCwgciA9ICIiKSB7CiAgY3JlYXRlTG9nZ2VyKCJkZXRlY3RCcm93c2VyTGFuZ3VhZ2UiKTsKICBjb25zdCBuID0gcnVudGltZURldGVjdEJyb3dzZXJMYW5ndWFnZSgpOwogIGlmICghbikgcmV0dXJuIERlZmF1bHREZXRlY3RCcm93c2VyTGFuZ3VhZ2VGcm9tUmVzdWx0OwogIGNvbnN0IHsgc3RyYXRlZ3k6IGkgfSA9IHVzZVJ1bnRpbWVDb25maWcoKS5wdWJsaWMuaTE4biwKICAgIHsgc3NnOiBhLCBjYWxsVHlwZTogbywgZmlyc3RBY2Nlc3M6IGwsIGxvY2FsZUNvb2tpZTogYyB9ID0gdDsKICBpZiAoIWwpCiAgICByZXR1cm4geyBsb2NhbGU6IGkgPT09ICJub19wcmVmaXgiID8gciA6ICIiLCByZWFzb246ICJmaXJzdF9hY2Nlc3Nfb25seSIgfTsKICBjb25zdCB7CiAgICByZWRpcmVjdE9uOiB1LAogICAgYWx3YXlzUmVkaXJlY3Q6IGQsCiAgICB1c2VDb29raWU6IEUsCiAgICBmYWxsYmFja0xvY2FsZTogYiwKICB9ID0gbiwKICAgIFAgPSBpc1N0cmluZyhlKSA/IGUgOiBlLnBhdGg7CiAgaWYgKGkgIT09ICJub19wcmVmaXgiKSB7CiAgICBpZiAodSA9PT0gInJvb3QiICYmIFAgIT09ICIvIikKICAgICAgcmV0dXJuIHsgbG9jYWxlOiAiIiwgcmVhc29uOiAibm90X3JlZGlyZWN0X29uX3Jvb3QiIH07CiAgICBpZiAodSA9PT0gIm5vIHByZWZpeCIgJiYgIWQgJiYgUC5tYXRjaChnZXRMb2NhbGVzUmVnZXgobG9jYWxlQ29kZXMpKSkKICAgICAgcmV0dXJuIHsgbG9jYWxlOiAiIiwgcmVhc29uOiAibm90X3JlZGlyZWN0X29uX25vX3ByZWZpeCIgfTsKICB9CiAgbGV0IFI7CiAgY29uc3QgVCA9IChFICYmIGMpIHx8IHZvaWQgMDsKICBFICYmIChSID0gImNvb2tpZSIpOwogIGNvbnN0IE0gPSBnZXRCcm93c2VyTG9jYWxlKCk7CiAgVCB8fCAoUiA9ICJuYXZpZ2F0b3Jfb3JfaGVhZGVyIik7CiAgY29uc3QgeCA9IFQgfHwgTSwKICAgIGsgPSB4IHx8IGIgfHwgIiI7CiAgcmV0dXJuICF4ICYmIGIgJiYgKFIgPSAiZmFsbGJhY2siKSwgeyBsb2NhbGU6IGssIGZyb206IFIgfTsKfQpmdW5jdGlvbiBnZXRIb3N0KCkgewogIGxldCBlOwogIHJldHVybiAoZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0KSwgZTsKfQpmdW5jdGlvbiBnZXRMb2NhbGVEb21haW4oZSwgdCwgcikgewogIGxldCBuID0gZ2V0SG9zdCgpIHx8ICIiOwogIGlmIChuKSB7CiAgICBsZXQgaTsKICAgIGNvbnN0IGEgPSBlLmZpbHRlcigobykgPT4gewogICAgICBpZiAobyAmJiBvLmRvbWFpbikgewogICAgICAgIGxldCBsID0gby5kb21haW47CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGhhc1Byb3RvY29sKG8uZG9tYWluKSAmJgogICAgICAgICAgKGwgPSBvLmRvbWFpbi5yZXBsYWNlKC8oaHR0cHxodHRwcyk6XC9cLy8sICIiKSksCiAgICAgICAgICBsID09PSBuCiAgICAgICAgKTsKICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG8gPT0gbnVsbCA/IHZvaWQgMCA6IG8uZG9tYWlucykpCiAgICAgICAgcmV0dXJuIG8uZG9tYWlucy5pbmNsdWRlcyhuKTsKICAgICAgcmV0dXJuICExOwogICAgfSk7CiAgICBpZiAoYS5sZW5ndGggPT09IDEpIGkgPSBhWzBdOwogICAgZWxzZSBpZiAoYS5sZW5ndGggPiAxKQogICAgICBpZiAodCA9PT0gIm5vX3ByZWZpeCIpCiAgICAgICAgY29uc29sZS53YXJuKAogICAgICAgICAgZm9ybWF0TWVzc2FnZSgKICAgICAgICAgICAgIk11bHRpcGxlIG1hdGNoaW5nIGRvbWFpbnMgZm91bmQhIFRoaXMgaXMgbm90IHN1cHBvcnRlZCBmb3Igbm9fcHJlZml4IHN0cmF0ZWd5IGluIGNvbWJpbmF0aW9uIHdpdGggZGlmZmVyZW50RG9tYWlucyEiCiAgICAgICAgICApCiAgICAgICAgKSwKICAgICAgICAgIChpID0gYVswXSk7CiAgICAgIGVsc2UgewogICAgICAgIGlmIChyKSB7CiAgICAgICAgICBjb25zdCBvID0gaXNPYmplY3QkMShyKSA/IHIucGF0aCA6IGlzU3RyaW5nKHIpID8gciA6ICIiOwogICAgICAgICAgaWYgKG8gJiYgbyAhPT0gIiIpIHsKICAgICAgICAgICAgY29uc3QgbCA9IG8ubWF0Y2goZ2V0TG9jYWxlc1JlZ2V4KGEubWFwKChjKSA9PiBjLmNvZGUpKSk7CiAgICAgICAgICAgIGwgJiYgbC5sZW5ndGggPiAxICYmIChpID0gYS5maW5kKChjKSA9PiBjLmNvZGUgPT09IGxbMV0pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaSB8fAogICAgICAgICAgKGkgPSBhLmZpbmQoKG8pID0+CiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoby5kZWZhdWx0Rm9yRG9tYWlucykKICAgICAgICAgICAgICA/IG8uZGVmYXVsdEZvckRvbWFpbnMuaW5jbHVkZXMobikKICAgICAgICAgICAgICA6IG8uZG9tYWluRGVmYXVsdAogICAgICAgICAgKSk7CiAgICAgIH0KICAgIGlmIChpKSByZXR1cm4gaS5jb2RlOwogICAgbiA9ICIiOwogIH0KICByZXR1cm4gbjsKfQpmdW5jdGlvbiBnZXREb21haW5Gcm9tTG9jYWxlKGUpIHsKICB2YXIgbywgbCwgYywgdSwgZCwgRTsKICBjb25zdCB0ID0gdXNlUnVudGltZUNvbmZpZygpOwogIHVzZU51eHRBcHAoKTsKICBjb25zdCByID0gZ2V0SG9zdCgpLAogICAgbiA9IHQucHVibGljLmkxOG4sCiAgICBpID0gbm9ybWFsaXplZExvY2FsZXMuZmluZCgoYikgPT4gYi5jb2RlID09PSBlKSwKICAgIGEgPQogICAgICAoKGwgPSAobyA9IG4gPT0gbnVsbCA/IHZvaWQgMCA6IG4ubG9jYWxlcykgPT0gbnVsbCA/IHZvaWQgMCA6IG9bZV0pID09CiAgICAgICAgbnVsbAogICAgICAgID8gdm9pZCAwCiAgICAgICAgOiBsLmRvbWFpbikgfHwKICAgICAgKGkgPT0gbnVsbCA/IHZvaWQgMCA6IGkuZG9tYWluKSB8fAogICAgICAoKGQgPQogICAgICAgICh1ID0gKGMgPSBuID09IG51bGwgPyB2b2lkIDAgOiBuLmxvY2FsZXMpID09IG51bGwgPyB2b2lkIDAgOiBjW2VdKSA9PQogICAgICAgICAgbnVsbAogICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgIDogdS5kb21haW5zKSA9PSBudWxsCiAgICAgICAgPyB2b2lkIDAKICAgICAgICA6IGQuZmluZCgoYikgPT4gYiA9PT0gcikpIHx8CiAgICAgICgoRSA9IGkgPT0gbnVsbCA/IHZvaWQgMCA6IGkuZG9tYWlucykgPT0gbnVsbAogICAgICAgID8gdm9pZCAwCiAgICAgICAgOiBFLmZpbmQoKGIpID0+IGIgPT09IHIpKTsKICBpZiAoYSkgewogICAgaWYgKGhhc1Byb3RvY29sKGEsIHsgc3RyaWN0OiAhMCB9KSkgcmV0dXJuIGE7CiAgICBsZXQgYjsKICAgIHJldHVybiAoYiA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLm9yaWdpbikucHJvdG9jb2wpLCBiICsgIi8vIiArIGE7CiAgfQogIGNvbnNvbGUud2Fybihmb3JtYXRNZXNzYWdlKCJDb3VsZCBub3QgZmluZCBkb21haW4gbmFtZSBmb3IgbG9jYWxlICIgKyBlKSk7Cn0KY29uc3QgcnVudGltZURldGVjdEJyb3dzZXJMYW5ndWFnZSA9IChlID0gdXNlUnVudGltZUNvbmZpZygpLnB1YmxpYy5pMThuKSA9PgogIChlID09IG51bGwgPyB2b2lkIDAgOiBlLmRldGVjdEJyb3dzZXJMYW5ndWFnZSkgPT09ICExCiAgICA/ICExCiAgICA6IGUgPT0gbnVsbAogICAgICA/IHZvaWQgMAogICAgICA6IGUuZGV0ZWN0QnJvd3Nlckxhbmd1YWdlOwpmdW5jdGlvbiB1c2VMb2NhbGVQYXRoKCkgewogIHJldHVybiB3cmFwQ29tcG9zYWJsZShsb2NhbGVQYXRoKTsKfQpmdW5jdGlvbiB1c2VTd2l0Y2hMb2NhbGVQYXRoKCkgewogIHJldHVybiB3cmFwQ29tcG9zYWJsZShzd2l0Y2hMb2NhbGVQYXRoKTsKfQpjb25zdCBzd2l0Y2hfbG9jYWxlX3BhdGhfc3NyXzVjc2ZJZ2tyQlAgPSBkZWZpbmVOdXh0UGx1Z2luKHsKICBuYW1lOiAiaTE4bjpwbHVnaW46c3dpdGNoLWxvY2FsZS1wYXRoLXNzciIsCiAgZGVwZW5kc09uOiBbImkxOG46cGx1Z2luIl0sCiAgc2V0dXAoZSkgewogICAgaWYgKGUuJGNvbmZpZy5wdWJsaWMuaTE4bi5leHBlcmltZW50YWwuc3dpdGNoTG9jYWxlUGF0aExpbmtTU1IgIT09ICEwKQogICAgICByZXR1cm47CiAgICBjb25zdCB0ID0gdXNlU3dpdGNoTG9jYWxlUGF0aCgpLAogICAgICByID0gbmV3IFJlZ0V4cCgKICAgICAgICBbCiAgICAgICAgICBgPCEtLSR7U1dJVENIX0xPQ0FMRV9QQVRIX0xJTktfSURFTlRJRklFUn0tXFxbKFxcdyspXFxdLS0+YCwKICAgICAgICAgICIuKz8iLAogICAgICAgICAgYDwhLS0vJHtTV0lUQ0hfTE9DQUxFX1BBVEhfTElOS19JREVOVElGSUVSfS0tPmAsCiAgICAgICAgXS5qb2luKCIiKSwKICAgICAgICAiZyIKICAgICAgKTsKICAgIGUuaG9vaygiYXBwOnJlbmRlcmVkIiwgKG4pID0+IHsKICAgICAgdmFyIGk7CiAgICAgICgoaSA9IG4ucmVuZGVyUmVzdWx0KSA9PSBudWxsID8gdm9pZCAwIDogaS5odG1sKSAhPSBudWxsICYmCiAgICAgICAgKG4ucmVuZGVyUmVzdWx0Lmh0bWwgPSBuLnJlbmRlclJlc3VsdC5odG1sLnJlcGxhY2VBbGwociwgKGEsIG8pID0+CiAgICAgICAgICBhLnJlcGxhY2UoL2hyZWY9IihbXiJdKykiLywgYGhyZWY9IiR7ZW5jb2RlVVJJKHQobyA/PyAiIikpfSJgKQogICAgICAgICkpOwogICAgfSk7CiAgfSwKfSk7CmZ1bmN0aW9uIGV4dGVuZEkxOG4oCiAgZSwKICB7CiAgICBsb2NhbGVzOiB0ID0gW10sCiAgICBsb2NhbGVDb2RlczogciA9IFtdLAogICAgYmFzZVVybDogbiA9ICIiLAogICAgaG9va3M6IGkgPSB7fSwKICAgIGNvbnRleHQ6IGEgPSB7fSwKICB9ID0ge30KKSB7CiAgY29uc3QgbyA9IGVmZmVjdFNjb3BlKCksCiAgICBsID0gZS5pbnN0YWxsOwogIHJldHVybiAoCiAgICAoZS5pbnN0YWxsID0gKGMsIC4uLnUpID0+IHsKICAgICAgY29uc3QgZCA9IGlzUGx1Z2luT3B0aW9ucyh1WzBdKSA/IGFzc2lnbiQxKHt9LCB1WzBdKSA6IHsgaW5qZWN0OiAhMCB9OwogICAgICBkLmluamVjdCA9PSBudWxsICYmIChkLmluamVjdCA9ICEwKTsKICAgICAgY29uc3QgRSA9IGQuX19jb21wb3NlckV4dGVuZDsKICAgICAgaWYgKAogICAgICAgICgoZC5fX2NvbXBvc2VyRXh0ZW5kID0gKFQpID0+IHsKICAgICAgICAgIGNvbnN0IE0gPSBnZXRDb21wb3NlcihlKTsKICAgICAgICAgIChULmxvY2FsZXMgPSBjb21wdXRlZCgoKSA9PiBNLmxvY2FsZXMudmFsdWUpKSwKICAgICAgICAgICAgKFQubG9jYWxlQ29kZXMgPSBjb21wdXRlZCgoKSA9PiBNLmxvY2FsZUNvZGVzLnZhbHVlKSksCiAgICAgICAgICAgIChULmJhc2VVcmwgPSBjb21wdXRlZCgoKSA9PiBNLmJhc2VVcmwudmFsdWUpKTsKICAgICAgICAgIGxldCB4OwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgaXNGdW5jdGlvbihFKSAmJiAoeCA9IFJlZmxlY3QuYXBwbHkoRSwgZCwgW1RdKSksCiAgICAgICAgICAgICgpID0+IHsKICAgICAgICAgICAgICB4ICYmIHgoKTsKICAgICAgICAgICAgfQogICAgICAgICAgKTsKICAgICAgICB9KSwKICAgICAgICAgIGUubW9kZSA9PT0gImxlZ2FjeSIpCiAgICAgICkgewogICAgICAgIGNvbnN0IFQgPSBkLl9fdnVlSTE4bkV4dGVuZDsKICAgICAgICBkLl9fdnVlSTE4bkV4dGVuZCA9IChNKSA9PiB7CiAgICAgICAgICBleHRlbmRWdWVJMThuKE0sIGkub25FeHRlbmRWdWVJMThuKTsKICAgICAgICAgIGxldCB4OwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgaXNGdW5jdGlvbihUKSAmJiAoeCA9IFJlZmxlY3QuYXBwbHkoVCwgZCwgW01dKSksCiAgICAgICAgICAgICgpID0+IHsKICAgICAgICAgICAgICB4ICYmIHgoKTsKICAgICAgICAgICAgfQogICAgICAgICAgKTsKICAgICAgICB9OwogICAgICB9CiAgICAgICh1WzBdID0gZCksIFJlZmxlY3QuYXBwbHkobCwgZSwgW2MsIC4uLnVdKTsKICAgICAgY29uc3QgYiA9IGdldENvbXBvc2VyKGUpOwogICAgICBvLnJ1bigoKSA9PiB7CiAgICAgICAgZXh0ZW5kQ29tcG9zZXIoYiwgewogICAgICAgICAgbG9jYWxlczogdCwKICAgICAgICAgIGxvY2FsZUNvZGVzOiByLAogICAgICAgICAgYmFzZVVybDogbiwKICAgICAgICAgIGhvb2tzOiBpLAogICAgICAgICAgY29udGV4dDogYSwKICAgICAgICB9KSwKICAgICAgICAgIGUubW9kZSA9PT0gImxlZ2FjeSIgJiYKICAgICAgICAgIGlzVnVlSTE4bihlLmdsb2JhbCkgJiYKICAgICAgICAgIGV4dGVuZFZ1ZUkxOG4oZS5nbG9iYWwsIGkub25FeHRlbmRWdWVJMThuKTsKICAgICAgfSk7CiAgICAgIGNvbnN0IFAgPSBjLAogICAgICAgIFIgPSBlLm1vZGUgPT09ICJjb21wb3NpdGlvbiIgPyBQLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRpMThuIDogbnVsbDsKICAgICAgaWYgKAogICAgICAgIChSICYmIGV4dGVuZEV4cG9ydGVkR2xvYmFsKFIsIGIsIGkub25FeHRlbmRFeHBvcnRlZEdsb2JhbCksIGQuaW5qZWN0KQogICAgICApIHsKICAgICAgICBjb25zdCBUID0gaW5pdENvbW1vbkNvbXBvc2FibGVPcHRpb25zKGUpOwogICAgICAgIGMubWl4aW4oewogICAgICAgICAgbWV0aG9kczogewogICAgICAgICAgICBnZXRSb3V0ZUJhc2VOYW1lOiB3cmFwQ29tcG9zYWJsZShnZXRSb3V0ZUJhc2VOYW1lLCBUKSwKICAgICAgICAgICAgcmVzb2x2ZVJvdXRlOiB3cmFwQ29tcG9zYWJsZShyZXNvbHZlUm91dGUsIFQpLAogICAgICAgICAgICBsb2NhbGVQYXRoOiB3cmFwQ29tcG9zYWJsZShsb2NhbGVQYXRoLCBUKSwKICAgICAgICAgICAgbG9jYWxlUm91dGU6IHdyYXBDb21wb3NhYmxlKGxvY2FsZVJvdXRlLCBUKSwKICAgICAgICAgICAgbG9jYWxlTG9jYXRpb246IHdyYXBDb21wb3NhYmxlKGxvY2FsZUxvY2F0aW9uLCBUKSwKICAgICAgICAgICAgc3dpdGNoTG9jYWxlUGF0aDogd3JhcENvbXBvc2FibGUoc3dpdGNoTG9jYWxlUGF0aCwgVCksCiAgICAgICAgICAgIGxvY2FsZUhlYWQ6IHdyYXBDb21wb3NhYmxlKGxvY2FsZUhlYWQsIFQpLAogICAgICAgICAgfSwKICAgICAgICB9KTsKICAgICAgfQogICAgICBpZiAoUC51bm1vdW50KSB7CiAgICAgICAgY29uc3QgVCA9IFAudW5tb3VudDsKICAgICAgICBQLnVubW91bnQgPSAoKSA9PiB7CiAgICAgICAgICBvLnN0b3AoKSwgVCgpOwogICAgICAgIH07CiAgICAgIH0KICAgIH0pLAogICAgbwogICk7Cn0KZnVuY3Rpb24gZXh0ZW5kQ29tcG9zZXIoZSwgdCkgewogIGNvbnN0IHsgbG9jYWxlczogciwgbG9jYWxlQ29kZXM6IG4sIGJhc2VVcmw6IGksIGNvbnRleHQ6IGEgfSA9IHQsCiAgICBvID0gcmVmKHIpLAogICAgbCA9IHJlZihuKSwKICAgIGMgPSByZWYoIiIpOwogIChlLmxvY2FsZXMgPSBjb21wdXRlZCgoKSA9PiBvLnZhbHVlKSksCiAgICAoZS5sb2NhbGVDb2RlcyA9IGNvbXB1dGVkKCgpID0+IGwudmFsdWUpKSwKICAgIChlLmJhc2VVcmwgPSBjb21wdXRlZCgoKSA9PiBjLnZhbHVlKSksCiAgICBpbkJyb3dzZXIKICAgICAgPyB3YXRjaCgKICAgICAgICBlLmxvY2FsZSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBjLnZhbHVlID0gcmVzb2x2ZUJhc2VVcmwoaSwgYSk7CiAgICAgICAgfSwKICAgICAgICB7IGltbWVkaWF0ZTogITAgfQogICAgICApCiAgICAgIDogKGMudmFsdWUgPSByZXNvbHZlQmFzZVVybChpLCBhKSksCiAgICB0Lmhvb2tzICYmIHQuaG9va3Mub25FeHRlbmRDb21wb3NlciAmJiB0Lmhvb2tzLm9uRXh0ZW5kQ29tcG9zZXIoZSk7Cn0KZnVuY3Rpb24gZXh0ZW5kUHJvcGVydHlEZXNjcmlwdG9ycyhlLCB0LCByKSB7CiAgY29uc3QgbiA9IFsKICAgIHsKICAgICAgbG9jYWxlczogewogICAgICAgIGdldCgpIHsKICAgICAgICAgIHJldHVybiBlLmxvY2FsZXMudmFsdWU7CiAgICAgICAgfSwKICAgICAgfSwKICAgICAgbG9jYWxlQ29kZXM6IHsKICAgICAgICBnZXQoKSB7CiAgICAgICAgICByZXR1cm4gZS5sb2NhbGVDb2Rlcy52YWx1ZTsKICAgICAgICB9LAogICAgICB9LAogICAgICBiYXNlVXJsOiB7CiAgICAgICAgZ2V0KCkgewogICAgICAgICAgcmV0dXJuIGUuYmFzZVVybC52YWx1ZTsKICAgICAgICB9LAogICAgICB9LAogICAgfSwKICBdOwogIHIgJiYgbi5wdXNoKHIoZSkpOwogIGZvciAoY29uc3QgaSBvZiBuKQogICAgZm9yIChjb25zdCBbYSwgb10gb2YgT2JqZWN0LmVudHJpZXMoaSkpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCBhLCBvKTsKfQpmdW5jdGlvbiBleHRlbmRFeHBvcnRlZEdsb2JhbChlLCB0LCByKSB7CiAgZXh0ZW5kUHJvcGVydHlEZXNjcmlwdG9ycyh0LCBlLCByKTsKfQpmdW5jdGlvbiBleHRlbmRWdWVJMThuKGUsIHQpIHsKICBjb25zdCByID0gZ2V0Q29tcG9zZXIoZSk7CiAgZXh0ZW5kUHJvcGVydHlEZXNjcmlwdG9ycyhyLCBlLCB0KTsKfQpmdW5jdGlvbiBpc1BsdWdpbk9wdGlvbnMoZSkgewogIHJldHVybiAoCiAgICBpc09iamVjdCQxKGUpICYmCiAgICAoImluamVjdCIgaW4gZSB8fCAiX19jb21wb3NlckV4dGVuZCIgaW4gZSB8fCAiX192dWVJMThuRXh0ZW5kIiBpbiBlKQogICk7Cn0KY29uc3QgaTE4bl9zcTFNdUNycWJDID0gZGVmaW5lTnV4dFBsdWdpbih7CiAgbmFtZTogImkxOG46cGx1Z2luIiwKICBwYXJhbGxlbDogcGFyYWxsZWxQbHVnaW4sCiAgYXN5bmMgc2V0dXAoZSkgewogICAgbGV0IHQsIHI7CiAgICBjb25zdCBuID0gdXNlUm91dGUkMSgpLAogICAgICB7IHZ1ZUFwcDogaSB9ID0gZSwKICAgICAgYSA9IGUsCiAgICAgIG8gPSBnZXRIb3N0KCksCiAgICAgIHsKICAgICAgICBjb25maWdMb2NhbGVzOiBsLAogICAgICAgIGRlZmF1bHRMb2NhbGU6IGMsCiAgICAgICAgbXVsdGlEb21haW5Mb2NhbGVzOiB1LAogICAgICAgIHN0cmF0ZWd5OiBkLAogICAgICB9ID0gYS4kY29uZmlnLnB1YmxpYy5pMThuLAogICAgICBFID0gbC5zb21lKAogICAgICAgICgkKSA9PiB0eXBlb2YgJCAhPSAic3RyaW5nIiAmJiBBcnJheS5pc0FycmF5KCQuZGVmYXVsdEZvckRvbWFpbnMpCiAgICAgICk7CiAgICBsZXQgYjsKICAgIGlmIChjKSBiID0gYzsKICAgIGVsc2UgaWYgKEUpIHsKICAgICAgY29uc3QgJCA9IGwuZmluZCgocSkgPT4KICAgICAgICB0eXBlb2YgcSA9PSAic3RyaW5nIiB8fCAhQXJyYXkuaXNBcnJheShxLmRlZmF1bHRGb3JEb21haW5zKQogICAgICAgICAgPyAhMQogICAgICAgICAgOiBxLmRlZmF1bHRGb3JEb21haW5zLmluY2x1ZGVzKG8gPz8gIiIpCiAgICAgICk7CiAgICAgIGIgPSAoJCA9PSBudWxsID8gdm9pZCAwIDogJC5jb2RlKSA/PyAiIjsKICAgIH0gZWxzZSBiID0gIiI7CiAgICBpZiAodSAmJiAoZCA9PT0gInByZWZpeF9leGNlcHRfZGVmYXVsdCIgfHwgZCA9PT0gInByZWZpeF9hbmRfZGVmYXVsdCIpKSB7CiAgICAgIGNvbnN0ICQgPSB1c2VSb3V0ZXIkMSgpOwogICAgICAkLmdldFJvdXRlcygpLmZvckVhY2goKHEpID0+IHsKICAgICAgICB2YXIgSjsKICAgICAgICBpZiAoKEogPSBxLm5hbWUpICE9IG51bGwgJiYgSi50b1N0cmluZygpLmluY2x1ZGVzKCJfX19kZWZhdWx0IikpCiAgICAgICAgICBpZiAocS5uYW1lLnRvU3RyaW5nKCkuc3BsaXQoIl9fXyIpWzFdICE9PSBiKSAkLnJlbW92ZVJvdXRlKHEubmFtZSk7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY29uc3QgZWUgPSBxLm5hbWUudG9TdHJpbmcoKS5yZXBsYWNlKCJfX19kZWZhdWx0IiwgIiIpOwogICAgICAgICAgICBxLm5hbWUgPSBlZTsKICAgICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBjb25zdCBQID0geyAuLi5hLiRjb25maWcucHVibGljLmkxOG4sIGRlZmF1bHRMb2NhbGU6IGIgfTsKICAgIFAuYmFzZVVybCA9IGV4dGVuZEJhc2VVcmwoKTsKICAgIGNvbnN0IFIgPSBydW50aW1lRGV0ZWN0QnJvd3Nlckxhbmd1YWdlKCksCiAgICAgIFQgPQogICAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+CiAgICAgICAgICBsb2FkVnVlSTE4bk9wdGlvbnModnVlSTE4bkNvbmZpZ3MsIHVzZU51eHRBcHAoKSkKICAgICAgICApKSwKICAgICAgICAgICh0ID0gYXdhaXQgdCksCiAgICAgICAgICByKCksCiAgICAgICAgICB0KTsKICAgIChULm1lc3NhZ2VzID0gVC5tZXNzYWdlcyB8fCB7fSksCiAgICAgIChULmZhbGxiYWNrTG9jYWxlID0gVC5mYWxsYmFja0xvY2FsZSA/PyAhMSk7CiAgICBjb25zdCBNID0gY3JlYXRlTG9jYWxlRnJvbVJvdXRlR2V0dGVyKCksCiAgICAgIHggPSAoJCkgPT4gJCB8fCBULmxvY2FsZSB8fCAiZW4tVVMiLAogICAgICBrID0gZ2V0STE4bkNvb2tpZSgpOwogICAgbGV0IFMgPSBkZXRlY3RMb2NhbGUoCiAgICAgIG4sCiAgICAgIE0sCiAgICAgIHgoUC5kZWZhdWx0TG9jYWxlKSwKICAgICAgewogICAgICAgIHNzZzogIm5vcm1hbCIsCiAgICAgICAgY2FsbFR5cGU6ICJzZXR1cCIsCiAgICAgICAgZmlyc3RBY2Nlc3M6ICEwLAogICAgICAgIGxvY2FsZUNvb2tpZTogZ2V0TG9jYWxlQ29va2llKGssIFIsIFAuZGVmYXVsdExvY2FsZSksCiAgICAgIH0sCiAgICAgIFAKICAgICk7CiAgICAoVC5tZXNzYWdlcyA9CiAgICAgICgoW3QsIHJdID0gZXhlY3V0ZUFzeW5jKCgpID0+CiAgICAgICAgbG9hZEluaXRpYWxNZXNzYWdlcyhULm1lc3NhZ2VzLCBsb2NhbGVMb2FkZXJzLCB7CiAgICAgICAgICBsb2NhbGVDb2RlcywKICAgICAgICAgIGluaXRpYWxMb2NhbGU6IFMsCiAgICAgICAgICBsYXp5OiBQLmxhenksCiAgICAgICAgICBkZWZhdWx0TG9jYWxlOiBQLmRlZmF1bHRMb2NhbGUsCiAgICAgICAgICBmYWxsYmFja0xvY2FsZTogVC5mYWxsYmFja0xvY2FsZSwKICAgICAgICB9KQogICAgICApKSwKICAgICAgICAodCA9IGF3YWl0IHQpLAogICAgICAgIHIoKSwKICAgICAgICB0KSksCiAgICAgIChTID0geChTKSk7CiAgICBjb25zdCBBID0gY3JlYXRlSTE4bih7IC4uLlQsIGxvY2FsZTogUyB9KTsKICAgIGxldCBPID0gITA7CiAgICBjb25zdCBGID0gKCQpID0+IFMgIT09ICQgJiYgTzsKICAgIGV4dGVuZEkxOG4oQSwgewogICAgICBsb2NhbGVzOiBQLmNvbmZpZ0xvY2FsZXMsCiAgICAgIGxvY2FsZUNvZGVzLAogICAgICBiYXNlVXJsOiBQLmJhc2VVcmwsCiAgICAgIGNvbnRleHQ6IGEsCiAgICAgIGhvb2tzOiB7CiAgICAgICAgb25FeHRlbmRDb21wb3NlcigkKSB7CiAgICAgICAgICAoJC5zdHJhdGVneSA9IFAuc3RyYXRlZ3kpLAogICAgICAgICAgICAoJC5sb2NhbGVQcm9wZXJ0aWVzID0gY29tcHV0ZWQoCiAgICAgICAgICAgICAgKCkgPT4KICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRMb2NhbGVzLmZpbmQoKHEpID0+IHEuY29kZSA9PT0gJC5sb2NhbGUudmFsdWUpIHx8IHsKICAgICAgICAgICAgICAgICAgY29kZTogJC5sb2NhbGUudmFsdWUsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkpLAogICAgICAgICAgICAoJC5zZXRMb2NhbGUgPSBhc3luYyAocSkgPT4gewogICAgICAgICAgICAgIGNvbnN0IEogPSBGKHEpOwogICAgICAgICAgICAgIChhd2FpdCBsb2FkQW5kU2V0TG9jYWxlKHEsIEEsIFAsIEopKSAmJiBKICYmIChPID0gITEpOwogICAgICAgICAgICAgIGNvbnN0IGVlID0gYXdhaXQgYS5ydW5XaXRoQ29udGV4dCgoKSA9PgogICAgICAgICAgICAgICAgZGV0ZWN0UmVkaXJlY3QoewogICAgICAgICAgICAgICAgICByb3V0ZTogeyB0bzogbiB9LAogICAgICAgICAgICAgICAgICB0YXJnZXRMb2NhbGU6IHEsCiAgICAgICAgICAgICAgICAgIHJvdXRlTG9jYWxlR2V0dGVyOiBNLAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGF3YWl0IGEucnVuV2l0aENvbnRleHQoCiAgICAgICAgICAgICAgICBhc3luYyAoKSA9PgogICAgICAgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0ZSgKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBudXh0QXBwOiBhLAogICAgICAgICAgICAgICAgICAgICAgaTE4bjogQSwKICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0UGF0aDogZWUsCiAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHEsCiAgICAgICAgICAgICAgICAgICAgICByb3V0ZTogbiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsgZW5hYmxlTmF2aWdhdGU6ICEwIH0KICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoJC5sb2FkTG9jYWxlTWVzc2FnZXMgPSBhc3luYyAocSkgPT4gewogICAgICAgICAgICAgIGF3YWl0IGxvYWRMb2NhbGUocSwgbG9jYWxlTG9hZGVycywgKEssIGVlKSA9PgogICAgICAgICAgICAgICAgbWVyZ2VMb2NhbGVNZXNzYWdlKEEsIEssIGVlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoJC5kaWZmZXJlbnREb21haW5zID0gUC5kaWZmZXJlbnREb21haW5zKSwKICAgICAgICAgICAgKCQuZGVmYXVsdExvY2FsZSA9IFAuZGVmYXVsdExvY2FsZSksCiAgICAgICAgICAgICgkLmdldEJyb3dzZXJMb2NhbGUgPSAoKSA9PiBnZXRCcm93c2VyTG9jYWxlKCkpLAogICAgICAgICAgICAoJC5nZXRMb2NhbGVDb29raWUgPSAoKSA9PgogICAgICAgICAgICAgIGdldExvY2FsZUNvb2tpZShrLCBSLCBQLmRlZmF1bHRMb2NhbGUpKSwKICAgICAgICAgICAgKCQuc2V0TG9jYWxlQ29va2llID0gKHEpID0+IHNldExvY2FsZUNvb2tpZShrLCBxLCBSKSksCiAgICAgICAgICAgICgkLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2ggPSAocSwgSiwgSywgZWUpID0+CiAgICAgICAgICAgICAgZS5jYWxsSG9vaygiaTE4bjpiZWZvcmVMb2NhbGVTd2l0Y2giLCB7CiAgICAgICAgICAgICAgICBvbGRMb2NhbGU6IHEsCiAgICAgICAgICAgICAgICBuZXdMb2NhbGU6IEosCiAgICAgICAgICAgICAgICBpbml0aWFsU2V0dXA6IEssCiAgICAgICAgICAgICAgICBjb250ZXh0OiBlZSwKICAgICAgICAgICAgICB9KSksCiAgICAgICAgICAgICgkLm9uTGFuZ3VhZ2VTd2l0Y2hlZCA9IChxLCBKKSA9PgogICAgICAgICAgICAgIGUuY2FsbEhvb2soImkxOG46bG9jYWxlU3dpdGNoZWQiLCB7CiAgICAgICAgICAgICAgICBvbGRMb2NhbGU6IHEsCiAgICAgICAgICAgICAgICBuZXdMb2NhbGU6IEosCiAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgICAoJC5maW5hbGl6ZVBlbmRpbmdMb2NhbGVDaGFuZ2UgPSBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgQS5fX3BlbmRpbmdMb2NhbGUgJiYKICAgICAgICAgICAgICAgIChzZXRMb2NhbGUoQSwgQS5fX3BlbmRpbmdMb2NhbGUpLAogICAgICAgICAgICAgICAgICBBLl9fcmVzb2x2ZVBlbmRpbmdMb2NhbGVQcm9taXNlICYmCiAgICAgICAgICAgICAgICAgIChhd2FpdCBBLl9fcmVzb2x2ZVBlbmRpbmdMb2NhbGVQcm9taXNlKCkpLAogICAgICAgICAgICAgICAgICAoQS5fX3BlbmRpbmdMb2NhbGUgPSB2b2lkIDApKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICgkLndhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgIEEuX19wZW5kaW5nTG9jYWxlICYmCiAgICAgICAgICAgICAgICBBLl9fcGVuZGluZ0xvY2FsZVByb21pc2UgJiYKICAgICAgICAgICAgICAgIChhd2FpdCBBLl9fcGVuZGluZ0xvY2FsZVByb21pc2UpOwogICAgICAgICAgICB9KTsKICAgICAgICB9LAogICAgICAgIG9uRXh0ZW5kRXhwb3J0ZWRHbG9iYWwoJCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgc3RyYXRlZ3k6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5zdHJhdGVneTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBsb2NhbGVQcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuICQubG9jYWxlUHJvcGVydGllcy52YWx1ZTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXN5bmMgKHEpID0+IFJlZmxlY3QuYXBwbHkoJC5zZXRMb2NhbGUsICQsIFtxXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGlmZmVyZW50RG9tYWluczogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkLmRpZmZlcmVudERvbWFpbnM7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkLmRlZmF1bHRMb2NhbGU7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZ2V0QnJvd3NlckxvY2FsZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBSZWZsZWN0LmFwcGx5KCQuZ2V0QnJvd3NlckxvY2FsZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGdldExvY2FsZUNvb2tpZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBSZWZsZWN0LmFwcGx5KCQuZ2V0TG9jYWxlQ29va2llLCAkLCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2V0TG9jYWxlQ29va2llOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIChxKSA9PiBSZWZsZWN0LmFwcGx5KCQuc2V0TG9jYWxlQ29va2llLCAkLCBbcV0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2g6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKHEsIEosIEssIGVlKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQub25CZWZvcmVMYW5ndWFnZVN3aXRjaCwgJCwgW3EsIEosIEssIGVlXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgb25MYW5ndWFnZVN3aXRjaGVkOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIChxLCBKKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQub25MYW5ndWFnZVN3aXRjaGVkLCAkLCBbcSwgSl0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZpbmFsaXplUGVuZGluZ0xvY2FsZUNoYW5nZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQuZmluYWxpemVQZW5kaW5nTG9jYWxlQ2hhbmdlLCAkLCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgd2FpdEZvclBlbmRpbmdMb2NhbGVDaGFuZ2U6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLndhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlLCAkLCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgIH07CiAgICAgICAgfSwKICAgICAgICBvbkV4dGVuZFZ1ZUkxOG4oJCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgc3RyYXRlZ3k6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5zdHJhdGVneTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBsb2NhbGVQcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuICQubG9jYWxlUHJvcGVydGllcy52YWx1ZTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXN5bmMgKHEpID0+IFJlZmxlY3QuYXBwbHkoJC5zZXRMb2NhbGUsICQsIFtxXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbG9hZExvY2FsZU1lc3NhZ2VzOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFzeW5jIChxKSA9PgogICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KCQubG9hZExvY2FsZU1lc3NhZ2VzLCAkLCBbcV0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRpZmZlcmVudERvbWFpbnM6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5kaWZmZXJlbnREb21haW5zOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJC5kZWZhdWx0TG9jYWxlOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGdldEJyb3dzZXJMb2NhbGU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gUmVmbGVjdC5hcHBseSgkLmdldEJyb3dzZXJMb2NhbGUsICQsIFtdKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBnZXRMb2NhbGVDb29raWU6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gUmVmbGVjdC5hcHBseSgkLmdldExvY2FsZUNvb2tpZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNldExvY2FsZUNvb2tpZTogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAocSkgPT4gUmVmbGVjdC5hcHBseSgkLnNldExvY2FsZUNvb2tpZSwgJCwgW3FdKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkJlZm9yZUxhbmd1YWdlU3dpdGNoOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIChxLCBKLCBLLCBlZSkgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2gsICQsIFtxLCBKLCBLLCBlZV0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uTGFuZ3VhZ2VTd2l0Y2hlZDogewogICAgICAgICAgICAgIGdldCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAocSwgSikgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLm9uTGFuZ3VhZ2VTd2l0Y2hlZCwgJCwgW3EsIEpdKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBmaW5hbGl6ZVBlbmRpbmdMb2NhbGVDaGFuZ2U6IHsKICAgICAgICAgICAgICBnZXQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4KICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseSgkLmZpbmFsaXplUGVuZGluZ0xvY2FsZUNoYW5nZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHdhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlOiB7CiAgICAgICAgICAgICAgZ2V0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgpID0+CiAgICAgICAgICAgICAgICAgIFJlZmxlY3QuYXBwbHkoJC53YWl0Rm9yUGVuZGluZ0xvY2FsZUNoYW5nZSwgJCwgW10pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9OwogICAgICAgIH0sCiAgICAgIH0sCiAgICB9KTsKICAgIGNvbnN0IEQgPSB7CiAgICAgIF9fY29tcG9zZXJFeHRlbmQ6ICgkKSA9PiB7CiAgICAgICAgY29uc3QgcSA9IGdldENvbXBvc2VyKEEpOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoJC5zdHJhdGVneSA9IHEuc3RyYXRlZ3kpLAogICAgICAgICAgKCQubG9jYWxlUHJvcGVydGllcyA9IGNvbXB1dGVkKCgpID0+IHEubG9jYWxlUHJvcGVydGllcy52YWx1ZSkpLAogICAgICAgICAgKCQuc2V0TG9jYWxlID0gcS5zZXRMb2NhbGUpLAogICAgICAgICAgKCQuZGlmZmVyZW50RG9tYWlucyA9IHEuZGlmZmVyZW50RG9tYWlucyksCiAgICAgICAgICAoJC5nZXRCcm93c2VyTG9jYWxlID0gcS5nZXRCcm93c2VyTG9jYWxlKSwKICAgICAgICAgICgkLmdldExvY2FsZUNvb2tpZSA9IHEuZ2V0TG9jYWxlQ29va2llKSwKICAgICAgICAgICgkLnNldExvY2FsZUNvb2tpZSA9IHEuc2V0TG9jYWxlQ29va2llKSwKICAgICAgICAgICgkLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2ggPSBxLm9uQmVmb3JlTGFuZ3VhZ2VTd2l0Y2gpLAogICAgICAgICAgKCQub25MYW5ndWFnZVN3aXRjaGVkID0gcS5vbkxhbmd1YWdlU3dpdGNoZWQpLAogICAgICAgICAgKCQuZmluYWxpemVQZW5kaW5nTG9jYWxlQ2hhbmdlID0gcS5maW5hbGl6ZVBlbmRpbmdMb2NhbGVDaGFuZ2UpLAogICAgICAgICAgKCQud2FpdEZvclBlbmRpbmdMb2NhbGVDaGFuZ2UgPSBxLndhaXRGb3JQZW5kaW5nTG9jYWxlQ2hhbmdlKSwKICAgICAgICAgICgpID0+IHsgfQogICAgICAgICk7CiAgICAgIH0sCiAgICB9OwogICAgaS51c2UoQSwgRCksIGluamVjdE51eHRIZWxwZXJzKGEsIEEpOwogICAgbGV0IEggPSAwOwogICAgYWRkUm91dGVNaWRkbGV3YXJlKAogICAgICAibG9jYWxlLWNoYW5naW5nIiwKICAgICAgYXN5bmMgKCQsIHEpID0+IHsKICAgICAgICBsZXQgSiwgSzsKICAgICAgICBjb25zdCBlZSA9IGRldGVjdExvY2FsZSgKICAgICAgICAgICQsCiAgICAgICAgICBNLAogICAgICAgICAgKCkgPT4gZ2V0TG9jYWxlKEEpIHx8IHgoUC5kZWZhdWx0TG9jYWxlKSwKICAgICAgICAgIHsKICAgICAgICAgICAgc3NnOiAibm9ybWFsIiwKICAgICAgICAgICAgY2FsbFR5cGU6ICJyb3V0aW5nIiwKICAgICAgICAgICAgZmlyc3RBY2Nlc3M6IEggPT09IDAsCiAgICAgICAgICAgIGxvY2FsZUNvb2tpZTogZ2V0TG9jYWxlQ29va2llKGssIFIsIFAuZGVmYXVsdExvY2FsZSksCiAgICAgICAgICB9LAogICAgICAgICAgUAogICAgICAgICksCiAgICAgICAgICBsZSA9IEYoZWUpOwogICAgICAgICgoW0osIEtdID0gZXhlY3V0ZUFzeW5jKCgpID0+IGxvYWRBbmRTZXRMb2NhbGUoZWUsIEEsIFAsIGxlKSkpLAogICAgICAgICAgKEogPSBhd2FpdCBKKSwKICAgICAgICAgIEsoKSwKICAgICAgICAgIEopICYmCiAgICAgICAgICBsZSAmJgogICAgICAgICAgKE8gPSAhMSk7CiAgICAgICAgY29uc3QgQiA9CiAgICAgICAgICAoKFtKLCBLXSA9IGV4ZWN1dGVBc3luYygoKSA9PgogICAgICAgICAgICBhLnJ1bldpdGhDb250ZXh0KCgpID0+CiAgICAgICAgICAgICAgZGV0ZWN0UmVkaXJlY3QoewogICAgICAgICAgICAgICAgcm91dGU6IHsgdG86ICQsIGZyb206IHEgfSwKICAgICAgICAgICAgICAgIHRhcmdldExvY2FsZTogZWUsCiAgICAgICAgICAgICAgICByb3V0ZUxvY2FsZUdldHRlcjogUC5zdHJhdGVneSA9PT0gIm5vX3ByZWZpeCIgPyAoKSA9PiBlZSA6IE0sCiAgICAgICAgICAgICAgICBjYWxsZWRXaXRoUm91dGluZzogITAsCiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKQogICAgICAgICAgKSksCiAgICAgICAgICAgIChKID0gYXdhaXQgSiksCiAgICAgICAgICAgIEsoKSwKICAgICAgICAgICAgSik7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIEgrKywKICAgICAgICAgIChbSiwgS10gPSBleGVjdXRlQXN5bmMoKCkgPT4KICAgICAgICAgICAgYS5ydW5XaXRoQ29udGV4dChhc3luYyAoKSA9PgogICAgICAgICAgICAgIG5hdmlnYXRlKHsKICAgICAgICAgICAgICAgIG51eHRBcHA6IGEsCiAgICAgICAgICAgICAgICBpMThuOiBBLAogICAgICAgICAgICAgICAgcmVkaXJlY3RQYXRoOiBCLAogICAgICAgICAgICAgICAgbG9jYWxlOiBlZSwKICAgICAgICAgICAgICAgIHJvdXRlOiAkLAogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICkKICAgICAgICAgICkpLAogICAgICAgICAgKEogPSBhd2FpdCBKKSwKICAgICAgICAgIEsoKSwKICAgICAgICAgIEoKICAgICAgICApOwogICAgICB9LAogICAgICB7IGdsb2JhbDogITAgfQogICAgKTsKICB9LAp9KSwKICBwbHVnaW4gPSBkZWZpbmVOdXh0UGx1Z2luKCgpID0+ICh7CiAgICBwcm92aWRlOiByZWFjdGl2ZSh7CiAgICAgIHNzckNsaWVudEhpbnRzOiB7CiAgICAgICAgZmlyc3RSZXF1ZXN0OiAhMSwKICAgICAgICBwcmVmZXJzQ29sb3JTY2hlbWVBdmFpbGFibGU6ICExLAogICAgICAgIHByZWZlcnNSZWR1Y2VkTW90aW9uQXZhaWxhYmxlOiAhMSwKICAgICAgICB2aWV3cG9ydEhlaWdodEF2YWlsYWJsZTogITEsCiAgICAgICAgdmlld3BvcnRXaWR0aEF2YWlsYWJsZTogITEsCiAgICAgIH0sCiAgICB9KSwKICB9KSk7CmZ1bmN0aW9uIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzKGUpIHsKICByZXR1cm4gZSAmJiBlLl9fZXNNb2R1bGUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsICJkZWZhdWx0IikKICAgID8gZS5kZWZhdWx0CiAgICA6IGU7Cn0KZnVuY3Rpb24gZ2V0QXVnbWVudGVkTmFtZXNwYWNlKGUpIHsKICBpZiAoZS5fX2VzTW9kdWxlKSByZXR1cm4gZTsKICB2YXIgdCA9IGUuZGVmYXVsdDsKICBpZiAodHlwZW9mIHQgPT0gImZ1bmN0aW9uIikgewogICAgdmFyIHIgPSBmdW5jdGlvbiBuKCkgewogICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIG4KICAgICAgICA/IFJlZmxlY3QuY29uc3RydWN0KHQsIGFyZ3VtZW50cywgdGhpcy5jb25zdHJ1Y3RvcikKICAgICAgICA6IHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIH07CiAgICByLnByb3RvdHlwZSA9IHQucHJvdG90eXBlOwogIH0gZWxzZSByID0ge307CiAgcmV0dXJuICgKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLAogICAgT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbiAobikgewogICAgICB2YXIgaSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgbik7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgKICAgICAgICByLAogICAgICAgIG4sCiAgICAgICAgaS5nZXQKICAgICAgICAgID8gaQogICAgICAgICAgOiB7CiAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gZVtuXTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0KICAgICAgKTsKICAgIH0pLAogICAgcgogICk7Cn0KdmFyIFJlQ2FwdGNoYVZ1ZVBsdWdpbiA9IHt9LAogIFJlQ2FwdGNoYSA9IHt9LAogIFJlQ2FwdGNoYUxvYWRlciA9IHt9LAogIFJlQ2FwdGNoYUluc3RhbmNlID0ge30sCiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFJbnN0YW5jZTsKZnVuY3Rpb24gcmVxdWlyZVJlQ2FwdGNoYUluc3RhbmNlKCkgewogIGlmIChoYXNSZXF1aXJlZFJlQ2FwdGNoYUluc3RhbmNlKSByZXR1cm4gUmVDYXB0Y2hhSW5zdGFuY2U7CiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFJbnN0YW5jZSA9IDE7CiAgdmFyIGUgPQogICAgUmVDYXB0Y2hhSW5zdGFuY2UuX19hd2FpdGVyIHx8CiAgICBmdW5jdGlvbiAobiwgaSwgYSwgbykgewogICAgICBmdW5jdGlvbiBsKGMpIHsKICAgICAgICByZXR1cm4gYyBpbnN0YW5jZW9mIGEKICAgICAgICAgID8gYwogICAgICAgICAgOiBuZXcgYShmdW5jdGlvbiAodSkgewogICAgICAgICAgICB1KGMpOwogICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyAoYSB8fCAoYSA9IFByb21pc2UpKShmdW5jdGlvbiAoYywgdSkgewogICAgICAgIGZ1bmN0aW9uIGQoUCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgYihvLm5leHQoUCkpOwogICAgICAgICAgfSBjYXRjaCAoUikgewogICAgICAgICAgICB1KFIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBFKFApIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGIoby50aHJvdyhQKSk7CiAgICAgICAgICB9IGNhdGNoIChSKSB7CiAgICAgICAgICAgIHUoUik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGIoUCkgewogICAgICAgICAgUC5kb25lID8gYyhQLnZhbHVlKSA6IGwoUC52YWx1ZSkudGhlbihkLCBFKTsKICAgICAgICB9CiAgICAgICAgYigobyA9IG8uYXBwbHkobiwgaSB8fCBbXSkpLm5leHQoKSk7CiAgICAgIH0pOwogICAgfSwKICAgIHQgPQogICAgICBSZUNhcHRjaGFJbnN0YW5jZS5fX2dlbmVyYXRvciB8fAogICAgICBmdW5jdGlvbiAobiwgaSkgewogICAgICAgIHZhciBhID0gewogICAgICAgICAgbGFiZWw6IDAsCiAgICAgICAgICBzZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChjWzBdICYgMSkgdGhyb3cgY1sxXTsKICAgICAgICAgICAgcmV0dXJuIGNbMV07CiAgICAgICAgICB9LAogICAgICAgICAgdHJ5czogW10sCiAgICAgICAgICBvcHM6IFtdLAogICAgICAgIH0sCiAgICAgICAgICBvLAogICAgICAgICAgbCwKICAgICAgICAgIGMsCiAgICAgICAgICB1OwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAodSA9IHsgbmV4dDogZCgwKSwgdGhyb3c6IGQoMSksIHJldHVybjogZCgyKSB9KSwKICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgKHVbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9KSwKICAgICAgICAgIHUKICAgICAgICApOwogICAgICAgIGZ1bmN0aW9uIGQoYikgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChQKSB7CiAgICAgICAgICAgIHJldHVybiBFKFtiLCBQXSk7CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBFKGIpIHsKICAgICAgICAgIGlmIChvKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgICBmb3IgKDsgdSAmJiAoKHUgPSAwKSwgYlswXSAmJiAoYSA9IDApKSwgYTspCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKChvID0gMSksCiAgICAgICAgICAgICAgICAgIGwgJiYKICAgICAgICAgICAgICAgICAgKGMgPQogICAgICAgICAgICAgICAgICAgIGJbMF0gJiAyCiAgICAgICAgICAgICAgICAgICAgICA/IGwucmV0dXJuCiAgICAgICAgICAgICAgICAgICAgICA6IGJbMF0KICAgICAgICAgICAgICAgICAgICAgICAgPyBsLnRocm93IHx8ICgoYyA9IGwucmV0dXJuKSAmJiBjLmNhbGwobCksIDApCiAgICAgICAgICAgICAgICAgICAgICAgIDogbC5uZXh0KSAmJgogICAgICAgICAgICAgICAgICAhKGMgPSBjLmNhbGwobCwgYlsxXSkpLmRvbmUpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgcmV0dXJuIGM7CiAgICAgICAgICAgICAgc3dpdGNoICgoKGwgPSAwKSwgYyAmJiAoYiA9IFtiWzBdICYgMiwgYy52YWx1ZV0pLCBiWzBdKSkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICBjID0gYjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgIHJldHVybiBhLmxhYmVsKyssIHsgdmFsdWU6IGJbMV0sIGRvbmU6ICExIH07CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIGEubGFiZWwrKywgKGwgPSBiWzFdKSwgKGIgPSBbMF0pOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgKGIgPSBhLm9wcy5wb3AoKSksIGEudHJ5cy5wb3AoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKChjID0gYS50cnlzKSwKICAgICAgICAgICAgICAgICAgICAgICEoYyA9IGMubGVuZ3RoID4gMCAmJiBjW2MubGVuZ3RoIC0gMV0pICYmCiAgICAgICAgICAgICAgICAgICAgICAoYlswXSA9PT0gNiB8fCBiWzBdID09PSAyKSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgYSA9IDA7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDMgJiYgKCFjIHx8IChiWzFdID4gY1swXSAmJiBiWzFdIDwgY1szXSkpKSB7CiAgICAgICAgICAgICAgICAgICAgYS5sYWJlbCA9IGJbMV07CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDYgJiYgYS5sYWJlbCA8IGNbMV0pIHsKICAgICAgICAgICAgICAgICAgICAoYS5sYWJlbCA9IGNbMV0pLCAoYyA9IGIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChjICYmIGEubGFiZWwgPCBjWzJdKSB7CiAgICAgICAgICAgICAgICAgICAgKGEubGFiZWwgPSBjWzJdKSwgYS5vcHMucHVzaChiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBjWzJdICYmIGEub3BzLnBvcCgpLCBhLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBiID0gaS5jYWxsKG4sIGEpOwogICAgICAgICAgICB9IGNhdGNoIChQKSB7CiAgICAgICAgICAgICAgKGIgPSBbNiwgUF0pLCAobCA9IDApOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIG8gPSBjID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgaWYgKGJbMF0gJiA1KSB0aHJvdyBiWzFdOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGJbMF0gPyBiWzFdIDogdm9pZCAwLCBkb25lOiAhMCB9OwogICAgICAgIH0KICAgICAgfTsKICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVDYXB0Y2hhSW5zdGFuY2UsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogITAgfSksCiAgICAoUmVDYXB0Y2hhSW5zdGFuY2UuUmVDYXB0Y2hhSW5zdGFuY2UgPSB2b2lkIDApOwogIHZhciByID0gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIG4oaSwgYSwgbykgewogICAgICAodGhpcy5zaXRlS2V5ID0gaSksCiAgICAgICAgKHRoaXMucmVjYXB0Y2hhSUQgPSBhKSwKICAgICAgICAodGhpcy5yZWNhcHRjaGEgPSBvKSwKICAgICAgICAodGhpcy5zdHlsZUNvbnRhaW5lciA9IG51bGwpOwogICAgfQogICAgcmV0dXJuICgKICAgICAgKG4ucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbiAoaSkgewogICAgICAgIHJldHVybiBlKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgYTsKICAgICAgICAgIHJldHVybiB0KHRoaXMsIGZ1bmN0aW9uIChvKSB7CiAgICAgICAgICAgIHN3aXRjaCAoby5sYWJlbCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlY2FwdGNoYS5lbnRlcnByaXNlCiAgICAgICAgICAgICAgICAgID8gWwogICAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNhcHRjaGEuZW50ZXJwcmlzZS5leGVjdXRlKHRoaXMucmVjYXB0Y2hhSUQsIHsKICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogaSwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICA6IFszLCAyXTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gKGEgPSBvLnNlbnQoKSksIFszLCA0XTsKICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgICB0aGlzLnJlY2FwdGNoYS5leGVjdXRlKHRoaXMucmVjYXB0Y2hhSUQsIHsgYWN0aW9uOiBpIH0pLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAoYSA9IG8uc2VudCgpKSwgKG8ubGFiZWwgPSA0KTsKICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICByZXR1cm4gWzIsIGFdOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfSksCiAgICAgIChuLnByb3RvdHlwZS5nZXRTaXRlS2V5ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB0aGlzLnNpdGVLZXk7CiAgICAgIH0pLAogICAgICAobi5wcm90b3R5cGUuaGlkZUJhZGdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHRoaXMuc3R5bGVDb250YWluZXIgPT09IG51bGwgJiYKICAgICAgICAgICgodGhpcy5zdHlsZUNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikpLAogICAgICAgICAgICAodGhpcy5zdHlsZUNvbnRhaW5lci5pbm5lckhUTUwgPQogICAgICAgICAgICAgICIuZ3JlY2FwdGNoYS1iYWRnZXt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50O30iKSwKICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLnN0eWxlQ29udGFpbmVyKSk7CiAgICAgIH0pLAogICAgICAobi5wcm90b3R5cGUuc2hvd0JhZGdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHRoaXMuc3R5bGVDb250YWluZXIgIT09IG51bGwgJiYKICAgICAgICAgIChkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKHRoaXMuc3R5bGVDb250YWluZXIpLAogICAgICAgICAgICAodGhpcy5zdHlsZUNvbnRhaW5lciA9IG51bGwpKTsKICAgICAgfSksCiAgICAgIG4KICAgICk7CiAgfSkoKTsKICByZXR1cm4gKFJlQ2FwdGNoYUluc3RhbmNlLlJlQ2FwdGNoYUluc3RhbmNlID0gciksIFJlQ2FwdGNoYUluc3RhbmNlOwp9CnZhciBoYXNSZXF1aXJlZFJlQ2FwdGNoYUxvYWRlcjsKZnVuY3Rpb24gcmVxdWlyZVJlQ2FwdGNoYUxvYWRlcigpIHsKICBpZiAoaGFzUmVxdWlyZWRSZUNhcHRjaGFMb2FkZXIpIHJldHVybiBSZUNhcHRjaGFMb2FkZXI7CiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFMb2FkZXIgPSAxOwogIHZhciBlID0KICAgIFJlQ2FwdGNoYUxvYWRlci5fX2Fzc2lnbiB8fAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gKAogICAgICAgIChlID0KICAgICAgICAgIE9iamVjdC5hc3NpZ24gfHwKICAgICAgICAgIGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgIGZvciAodmFyIGEsIG8gPSAxLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgbyA8IGw7IG8rKykgewogICAgICAgICAgICAgIGEgPSBhcmd1bWVudHNbb107CiAgICAgICAgICAgICAgZm9yICh2YXIgYyBpbiBhKQogICAgICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGMpICYmIChpW2NdID0gYVtjXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgICB9KSwKICAgICAgICBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykKICAgICAgKTsKICAgIH07CiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlQ2FwdGNoYUxvYWRlciwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KSwKICAgIChSZUNhcHRjaGFMb2FkZXIuZ2V0SW5zdGFuY2UgPSBSZUNhcHRjaGFMb2FkZXIubG9hZCA9IHZvaWQgMCk7CiAgdmFyIHQgPSByZXF1aXJlUmVDYXB0Y2hhSW5zdGFuY2UoKSwKICAgIHI7CiAgKGZ1bmN0aW9uIChpKSB7CiAgICAoaVsoaS5OT1RfTE9BREVEID0gMCldID0gIk5PVF9MT0FERUQiKSwKICAgICAgKGlbKGkuTE9BRElORyA9IDEpXSA9ICJMT0FESU5HIiksCiAgICAgIChpWyhpLkxPQURFRCA9IDIpXSA9ICJMT0FERUQiKTsKICB9KShyIHx8IChyID0ge30pKTsKICB2YXIgbiA9IChmdW5jdGlvbiAoKSB7CiAgICBmdW5jdGlvbiBpKCkgeyB9CiAgICByZXR1cm4gKAogICAgICAoaS5sb2FkID0gZnVuY3Rpb24gKGEsIG8pIHsKICAgICAgICBpZiAoKG8gPT09IHZvaWQgMCAmJiAobyA9IHt9KSwgdHlwZW9mIGRvY3VtZW50ID4gInUiKSkKICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgKICAgICAgICAgICAgbmV3IEVycm9yKCJUaGlzIGlzIGEgbGlicmFyeSBmb3IgdGhlIGJyb3dzZXIhIikKICAgICAgICAgICk7CiAgICAgICAgaWYgKGkuZ2V0TG9hZGluZ1N0YXRlKCkgPT09IHIuTE9BREVEKQogICAgICAgICAgcmV0dXJuIGkuaW5zdGFuY2UuZ2V0U2l0ZUtleSgpID09PSBhCiAgICAgICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKGkuaW5zdGFuY2UpCiAgICAgICAgICAgIDogUHJvbWlzZS5yZWplY3QoCiAgICAgICAgICAgICAgbmV3IEVycm9yKCJyZUNBUFRDSEEgYWxyZWFkeSBsb2FkZWQgd2l0aCBkaWZmZXJlbnQgc2l0ZSBrZXkhIikKICAgICAgICAgICAgKTsKICAgICAgICBpZiAoaS5nZXRMb2FkaW5nU3RhdGUoKSA9PT0gci5MT0FESU5HKQogICAgICAgICAgcmV0dXJuIGEgIT09IGkuaW5zdGFuY2VTaXRlS2V5CiAgICAgICAgICAgID8gUHJvbWlzZS5yZWplY3QoCiAgICAgICAgICAgICAgbmV3IEVycm9yKCJyZUNBUFRDSEEgYWxyZWFkeSBsb2FkZWQgd2l0aCBkaWZmZXJlbnQgc2l0ZSBrZXkhIikKICAgICAgICAgICAgKQogICAgICAgICAgICA6IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChjLCB1KSB7CiAgICAgICAgICAgICAgaS5zdWNjZXNzZnVsTG9hZGluZ0NvbnN1bWVycy5wdXNoKGZ1bmN0aW9uIChkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYyhkKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIGkuZXJyb3JMb2FkaW5nUnVubmFibGUucHVzaChmdW5jdGlvbiAoZCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gdShkKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAoaS5pbnN0YW5jZVNpdGVLZXkgPSBhKSwgaS5zZXRMb2FkaW5nU3RhdGUoci5MT0FESU5HKTsKICAgICAgICB2YXIgbCA9IG5ldyBpKCk7CiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChjLCB1KSB7CiAgICAgICAgICBsLmxvYWRTY3JpcHQoCiAgICAgICAgICAgIGEsCiAgICAgICAgICAgIG8udXNlUmVjYXB0Y2hhTmV0IHx8ICExLAogICAgICAgICAgICBvLnVzZUVudGVycHJpc2UgfHwgITEsCiAgICAgICAgICAgIG8ucmVuZGVyUGFyYW1ldGVycyA/IG8ucmVuZGVyUGFyYW1ldGVycyA6IHt9LAogICAgICAgICAgICBvLmN1c3RvbVVybAogICAgICAgICAgKQogICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgaS5zZXRMb2FkaW5nU3RhdGUoci5MT0FERUQpOwogICAgICAgICAgICAgIHZhciBkID0gbC5kb0V4cGxpY2l0UmVuZGVyKAogICAgICAgICAgICAgICAgZ3JlY2FwdGNoYSwKICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICBvLmV4cGxpY2l0UmVuZGVyUGFyYW1ldGVycyA/IG8uZXhwbGljaXRSZW5kZXJQYXJhbWV0ZXJzIDoge30sCiAgICAgICAgICAgICAgICBvLnVzZUVudGVycHJpc2UgfHwgITEKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgRSA9IG5ldyB0LlJlQ2FwdGNoYUluc3RhbmNlKGEsIGQsIGdyZWNhcHRjaGEpOwogICAgICAgICAgICAgIGkuc3VjY2Vzc2Z1bExvYWRpbmdDb25zdW1lcnMuZm9yRWFjaChmdW5jdGlvbiAoYikgewogICAgICAgICAgICAgICAgcmV0dXJuIGIoRSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAoaS5zdWNjZXNzZnVsTG9hZGluZ0NvbnN1bWVycyA9IFtdKSwKICAgICAgICAgICAgICAgIG8uYXV0b0hpZGVCYWRnZSAmJiBFLmhpZGVCYWRnZSgpLAogICAgICAgICAgICAgICAgKGkuaW5zdGFuY2UgPSBFKSwKICAgICAgICAgICAgICAgIGMoRSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZCkgewogICAgICAgICAgICAgIGkuZXJyb3JMb2FkaW5nUnVubmFibGUuZm9yRWFjaChmdW5jdGlvbiAoRSkgewogICAgICAgICAgICAgICAgcmV0dXJuIEUoZCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAoaS5lcnJvckxvYWRpbmdSdW5uYWJsZSA9IFtdKSwKICAgICAgICAgICAgICAgIHUoZCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9KSwKICAgICAgKGkuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIGkuaW5zdGFuY2U7CiAgICAgIH0pLAogICAgICAoaS5zZXRMb2FkaW5nU3RhdGUgPSBmdW5jdGlvbiAoYSkgewogICAgICAgIGkubG9hZGluZ1N0YXRlID0gYTsKICAgICAgfSksCiAgICAgIChpLmdldExvYWRpbmdTdGF0ZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gaS5sb2FkaW5nU3RhdGUgPT09IG51bGwgPyByLk5PVF9MT0FERUQgOiBpLmxvYWRpbmdTdGF0ZTsKICAgICAgfSksCiAgICAgIChpLnByb3RvdHlwZS5sb2FkU2NyaXB0ID0gZnVuY3Rpb24gKGEsIG8sIGwsIGMsIHUpIHsKICAgICAgICB2YXIgZCA9IHRoaXM7CiAgICAgICAgbyA9PT0gdm9pZCAwICYmIChvID0gITEpLAogICAgICAgICAgbCA9PT0gdm9pZCAwICYmIChsID0gITEpLAogICAgICAgICAgYyA9PT0gdm9pZCAwICYmIChjID0ge30pLAogICAgICAgICAgdSA9PT0gdm9pZCAwICYmICh1ID0gIiIpOwogICAgICAgIHZhciBFID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgRS5zZXRBdHRyaWJ1dGUoInJlY2FwdGNoYS12My1zY3JpcHQiLCAiIiksCiAgICAgICAgICBFLnNldEF0dHJpYnV0ZSgiYXN5bmMiLCAiIiksCiAgICAgICAgICBFLnNldEF0dHJpYnV0ZSgiZGVmZXIiLCAiIik7CiAgICAgICAgdmFyIGIgPSAiIjsKICAgICAgICBvCiAgICAgICAgICA/IGwKICAgICAgICAgICAgPyAoYiA9ICIiKQogICAgICAgICAgICA6IChiID0gIiIpCiAgICAgICAgICA6IGwgJiYgKGIgPSAiIiksCiAgICAgICAgICB1ICYmIChiID0gdSksCiAgICAgICAgICBjLnJlbmRlciAmJiAoYy5yZW5kZXIgPSB2b2lkIDApOwogICAgICAgIHZhciBQID0gdGhpcy5idWlsZFF1ZXJ5U3RyaW5nKGMpOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoRS5zcmMgPSAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLmpzP3JlbmRlcj1leHBsaWNpdCIpLAogICAgICAgICAgbmV3IFByb21pc2UoZnVuY3Rpb24gKFIsIFQpIHsKICAgICAgICAgICAgRS5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICJsb2FkIiwKICAgICAgICAgICAgICBkLndhaXRGb3JTY3JpcHRUb0xvYWQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgUihFKTsKICAgICAgICAgICAgICB9LCBsKSwKICAgICAgICAgICAgICAhMQogICAgICAgICAgICApLAogICAgICAgICAgICAgIChFLm9uZXJyb3IgPSBmdW5jdGlvbiAoTSkgewogICAgICAgICAgICAgICAgaS5zZXRMb2FkaW5nU3RhdGUoci5OT1RfTE9BREVEKSwgVChNKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEUpOwogICAgICAgICAgfSkKICAgICAgICApOwogICAgICB9KSwKICAgICAgKGkucHJvdG90eXBlLmJ1aWxkUXVlcnlTdHJpbmcgPSBmdW5jdGlvbiAoYSkgewogICAgICAgIHZhciBvID0gT2JqZWN0LmtleXMoYSk7CiAgICAgICAgcmV0dXJuIG8ubGVuZ3RoIDwgMQogICAgICAgICAgPyAiIgogICAgICAgICAgOiAiJiIgKwogICAgICAgICAgT2JqZWN0LmtleXMoYSkKICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgIHJldHVybiAhIWFbbF07CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICByZXR1cm4gbCArICI9IiArIGFbbF07CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5qb2luKCImIik7CiAgICAgIH0pLAogICAgICAoaS5wcm90b3R5cGUud2FpdEZvclNjcmlwdFRvTG9hZCA9IGZ1bmN0aW9uIChhLCBvKSB7CiAgICAgICAgdmFyIGwgPSB0aGlzOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB3aW5kb3cuZ3JlY2FwdGNoYSA9PT0gdm9pZCAwCiAgICAgICAgICAgID8gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgbC53YWl0Rm9yU2NyaXB0VG9Mb2FkKGEsIG8pOwogICAgICAgICAgICB9LCBpLlNDUklQVF9MT0FEX0RFTEFZKQogICAgICAgICAgICA6IG8KICAgICAgICAgICAgICA/IHdpbmRvdy5ncmVjYXB0Y2hhLmVudGVycHJpc2UucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgYSgpOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgOiB3aW5kb3cuZ3JlY2FwdGNoYS5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBhKCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfSksCiAgICAgIChpLnByb3RvdHlwZS5kb0V4cGxpY2l0UmVuZGVyID0gZnVuY3Rpb24gKGEsIG8sIGwsIGMpIHsKICAgICAgICB2YXIgdSA9IGUoeyBzaXRla2V5OiBvIH0sIGwpOwogICAgICAgIHJldHVybiBsLmNvbnRhaW5lcgogICAgICAgICAgPyBjCiAgICAgICAgICAgID8gYS5lbnRlcnByaXNlLnJlbmRlcihsLmNvbnRhaW5lciwgdSkKICAgICAgICAgICAgOiBhLnJlbmRlcihsLmNvbnRhaW5lciwgdSkKICAgICAgICAgIDogYwogICAgICAgICAgICA/IGEuZW50ZXJwcmlzZS5yZW5kZXIodSkKICAgICAgICAgICAgOiBhLnJlbmRlcih1KTsKICAgICAgfSksCiAgICAgIChpLmxvYWRpbmdTdGF0ZSA9IG51bGwpLAogICAgICAoaS5pbnN0YW5jZSA9IG51bGwpLAogICAgICAoaS5pbnN0YW5jZVNpdGVLZXkgPSBudWxsKSwKICAgICAgKGkuc3VjY2Vzc2Z1bExvYWRpbmdDb25zdW1lcnMgPSBbXSksCiAgICAgIChpLmVycm9yTG9hZGluZ1J1bm5hYmxlID0gW10pLAogICAgICAoaS5TQ1JJUFRfTE9BRF9ERUxBWSA9IDI1KSwKICAgICAgaQogICAgKTsKICB9KSgpOwogIHJldHVybiAoCiAgICAoUmVDYXB0Y2hhTG9hZGVyLmxvYWQgPSBuLmxvYWQpLAogICAgKFJlQ2FwdGNoYUxvYWRlci5nZXRJbnN0YW5jZSA9IG4uZ2V0SW5zdGFuY2UpLAogICAgUmVDYXB0Y2hhTG9hZGVyCiAgKTsKfQp2YXIgaGFzUmVxdWlyZWRSZUNhcHRjaGE7CmZ1bmN0aW9uIHJlcXVpcmVSZUNhcHRjaGEoKSB7CiAgcmV0dXJuICgKICAgIGhhc1JlcXVpcmVkUmVDYXB0Y2hhIHx8CiAgICAoKGhhc1JlcXVpcmVkUmVDYXB0Y2hhID0gMSksCiAgICAgIChmdW5jdGlvbiAoZSkgewogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLAogICAgICAgICAgKGUuUmVDYXB0Y2hhSW5zdGFuY2UgPSBlLmdldEluc3RhbmNlID0gZS5sb2FkID0gdm9pZCAwKTsKICAgICAgICB2YXIgdCA9IHJlcXVpcmVSZUNhcHRjaGFMb2FkZXIoKTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgImxvYWQiLCB7CiAgICAgICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdC5sb2FkOwogICAgICAgICAgfSwKICAgICAgICB9KSwKICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCAiZ2V0SW5zdGFuY2UiLCB7CiAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gdC5nZXRJbnN0YW5jZTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIHZhciByID0gcmVxdWlyZVJlQ2FwdGNoYUluc3RhbmNlKCk7CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsICJSZUNhcHRjaGFJbnN0YW5jZSIsIHsKICAgICAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiByLlJlQ2FwdGNoYUluc3RhbmNlOwogICAgICAgICAgfSwKICAgICAgICB9KTsKICAgICAgfSkoUmVDYXB0Y2hhKSksCiAgICBSZUNhcHRjaGEKICApOwp9CmNvbnN0IHJlcXVpcmUkJDEgPSBnZXRBdWdtZW50ZWROYW1lc3BhY2UodnVlX3J1bnRpbWVfZXNtQnVuZGxlcik7CnZhciBoYXNSZXF1aXJlZFJlQ2FwdGNoYVZ1ZVBsdWdpbjsKZnVuY3Rpb24gcmVxdWlyZVJlQ2FwdGNoYVZ1ZVBsdWdpbigpIHsKICBpZiAoaGFzUmVxdWlyZWRSZUNhcHRjaGFWdWVQbHVnaW4pIHJldHVybiBSZUNhcHRjaGFWdWVQbHVnaW47CiAgaGFzUmVxdWlyZWRSZUNhcHRjaGFWdWVQbHVnaW4gPSAxOwogIHZhciBlID0KICAgIFJlQ2FwdGNoYVZ1ZVBsdWdpbi5fX2F3YWl0ZXIgfHwKICAgIGZ1bmN0aW9uIChkLCBFLCBiLCBQKSB7CiAgICAgIGZ1bmN0aW9uIFIoVCkgewogICAgICAgIHJldHVybiBUIGluc3RhbmNlb2YgYgogICAgICAgICAgPyBUCiAgICAgICAgICA6IG5ldyBiKGZ1bmN0aW9uIChNKSB7CiAgICAgICAgICAgIE0oVCk7CiAgICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IChiIHx8IChiID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChULCBNKSB7CiAgICAgICAgZnVuY3Rpb24geChBKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBTKFAubmV4dChBKSk7CiAgICAgICAgICB9IGNhdGNoIChPKSB7CiAgICAgICAgICAgIE0oTyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGsoQSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgUyhQLnRocm93KEEpKTsKICAgICAgICAgIH0gY2F0Y2ggKE8pIHsKICAgICAgICAgICAgTShPKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gUyhBKSB7CiAgICAgICAgICBBLmRvbmUgPyBUKEEudmFsdWUpIDogUihBLnZhbHVlKS50aGVuKHgsIGspOwogICAgICAgIH0KICAgICAgICBTKChQID0gUC5hcHBseShkLCBFIHx8IFtdKSkubmV4dCgpKTsKICAgICAgfSk7CiAgICB9LAogICAgdCA9CiAgICAgIFJlQ2FwdGNoYVZ1ZVBsdWdpbi5fX2dlbmVyYXRvciB8fAogICAgICBmdW5jdGlvbiAoZCwgRSkgewogICAgICAgIHZhciBiID0gewogICAgICAgICAgbGFiZWw6IDAsCiAgICAgICAgICBzZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChUWzBdICYgMSkgdGhyb3cgVFsxXTsKICAgICAgICAgICAgcmV0dXJuIFRbMV07CiAgICAgICAgICB9LAogICAgICAgICAgdHJ5czogW10sCiAgICAgICAgICBvcHM6IFtdLAogICAgICAgIH0sCiAgICAgICAgICBQLAogICAgICAgICAgUiwKICAgICAgICAgIFQsCiAgICAgICAgICBNOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoTSA9IHsgbmV4dDogeCgwKSwgdGhyb3c6IHgoMSksIHJldHVybjogeCgyKSB9KSwKICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgKE1bU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9KSwKICAgICAgICAgIE0KICAgICAgICApOwogICAgICAgIGZ1bmN0aW9uIHgoUykgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChBKSB7CiAgICAgICAgICAgIHJldHVybiBrKFtTLCBBXSk7CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBrKFMpIHsKICAgICAgICAgIGlmIChQKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgICBmb3IgKDsgYjspCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKChQID0gMSksCiAgICAgICAgICAgICAgICAgIFIgJiYKICAgICAgICAgICAgICAgICAgKFQgPQogICAgICAgICAgICAgICAgICAgIFNbMF0gJiAyCiAgICAgICAgICAgICAgICAgICAgICA/IFIucmV0dXJuCiAgICAgICAgICAgICAgICAgICAgICA6IFNbMF0KICAgICAgICAgICAgICAgICAgICAgICAgPyBSLnRocm93IHx8ICgoVCA9IFIucmV0dXJuKSAmJiBULmNhbGwoUiksIDApCiAgICAgICAgICAgICAgICAgICAgICAgIDogUi5uZXh0KSAmJgogICAgICAgICAgICAgICAgICAhKFQgPSBULmNhbGwoUiwgU1sxXSkpLmRvbmUpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgcmV0dXJuIFQ7CiAgICAgICAgICAgICAgc3dpdGNoICgoKFIgPSAwKSwgVCAmJiAoUyA9IFtTWzBdICYgMiwgVC52YWx1ZV0pLCBTWzBdKSkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICBUID0gUzsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgIHJldHVybiBiLmxhYmVsKyssIHsgdmFsdWU6IFNbMV0sIGRvbmU6ICExIH07CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIGIubGFiZWwrKywgKFIgPSBTWzFdKSwgKFMgPSBbMF0pOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgKFMgPSBiLm9wcy5wb3AoKSksIGIudHJ5cy5wb3AoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKChUID0gYi50cnlzKSwKICAgICAgICAgICAgICAgICAgICAgICEoVCA9IFQubGVuZ3RoID4gMCAmJiBUW1QubGVuZ3RoIC0gMV0pICYmCiAgICAgICAgICAgICAgICAgICAgICAoU1swXSA9PT0gNiB8fCBTWzBdID09PSAyKSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgYiA9IDA7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKFNbMF0gPT09IDMgJiYgKCFUIHx8IChTWzFdID4gVFswXSAmJiBTWzFdIDwgVFszXSkpKSB7CiAgICAgICAgICAgICAgICAgICAgYi5sYWJlbCA9IFNbMV07CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKFNbMF0gPT09IDYgJiYgYi5sYWJlbCA8IFRbMV0pIHsKICAgICAgICAgICAgICAgICAgICAoYi5sYWJlbCA9IFRbMV0pLCAoVCA9IFMpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChUICYmIGIubGFiZWwgPCBUWzJdKSB7CiAgICAgICAgICAgICAgICAgICAgKGIubGFiZWwgPSBUWzJdKSwgYi5vcHMucHVzaChTKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBUWzJdICYmIGIub3BzLnBvcCgpLCBiLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBTID0gRS5jYWxsKGQsIGIpOwogICAgICAgICAgICB9IGNhdGNoIChBKSB7CiAgICAgICAgICAgICAgKFMgPSBbNiwgQV0pLCAoUiA9IDApOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIFAgPSBUID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgaWYgKFNbMF0gJiA1KSB0aHJvdyBTWzFdOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IFNbMF0gPyBTWzFdIDogdm9pZCAwLCBkb25lOiAhMCB9OwogICAgICAgIH0KICAgICAgfTsKICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVDYXB0Y2hhVnVlUGx1Z2luLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLAogICAgKFJlQ2FwdGNoYVZ1ZVBsdWdpbi51c2VSZUNhcHRjaGEgPSBSZUNhcHRjaGFWdWVQbHVnaW4uVnVlUmVDYXB0Y2hhID0KICAgICAgdm9pZCAwKTsKICB2YXIgciA9IHJlcXVpcmVSZUNhcHRjaGEoKSwKICAgIG4gPSByZXF1aXJlJCQxLAogICAgaSA9IFN5bWJvbCgiVnVlUmVDYXB0Y2hhSW5qZWN0S2V5IiksCiAgICBhID0geyBsb2FkZWRXYWl0ZXJzOiBbXSwgZXJyb3I6IG51bGwgfTsKICBSZUNhcHRjaGFWdWVQbHVnaW4uVnVlUmVDYXB0Y2hhID0gewogICAgaW5zdGFsbDogZnVuY3Rpb24gKGQsIEUpIHsKICAgICAgdmFyIGIgPSBuLnJlZighMSksCiAgICAgICAgUCA9IG4ucmVmKHZvaWQgMCk7CiAgICAgIChkLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRyZWNhcHRjaGFMb2FkZWQgPSBjKGIpKSwKICAgICAgICBsKEUpCiAgICAgICAgICAudGhlbihmdW5jdGlvbiAoUikgewogICAgICAgICAgICAoYi52YWx1ZSA9ICEwKSwKICAgICAgICAgICAgICAoUC52YWx1ZSA9IFIpLAogICAgICAgICAgICAgIChkLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRyZWNhcHRjaGEgPSB1KFApKSwKICAgICAgICAgICAgICAoZC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kcmVjYXB0Y2hhSW5zdGFuY2UgPSBQKSwKICAgICAgICAgICAgICBhLmxvYWRlZFdhaXRlcnMuZm9yRWFjaChmdW5jdGlvbiAoVCkgewogICAgICAgICAgICAgICAgcmV0dXJuIFQucmVzb2x2ZSghMCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KQogICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChSKSB7CiAgICAgICAgICAgIChhLmVycm9yID0gUiksCiAgICAgICAgICAgICAgYS5sb2FkZWRXYWl0ZXJzLmZvckVhY2goZnVuY3Rpb24gKFQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBULnJlamVjdChSKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLAogICAgICAgIGQucHJvdmlkZShpLCB7CiAgICAgICAgICBpbnN0YW5jZTogUCwKICAgICAgICAgIGlzTG9hZGVkOiBiLAogICAgICAgICAgZXhlY3V0ZVJlY2FwdGNoYTogdShQKSwKICAgICAgICAgIHJlY2FwdGNoYUxvYWRlZDogYyhiKSwKICAgICAgICB9KTsKICAgIH0sCiAgfTsKICBmdW5jdGlvbiBvKCkgewogICAgcmV0dXJuIG4uaW5qZWN0KGkpOwogIH0KICBSZUNhcHRjaGFWdWVQbHVnaW4udXNlUmVDYXB0Y2hhID0gbzsKICBmdW5jdGlvbiBsKGQpIHsKICAgIHJldHVybiBlKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiB0KHRoaXMsIGZ1bmN0aW9uIChFKSB7CiAgICAgICAgc3dpdGNoIChFLmxhYmVsKSB7CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIHJldHVybiBbNCwgci5sb2FkKGQuc2l0ZUtleSwgZC5sb2FkZXJPcHRpb25zKV07CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJldHVybiBbMiwgRS5zZW50KCldOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gYyhkKSB7CiAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKEUsIGIpIHsKICAgICAgICBpZiAoYS5lcnJvciAhPT0gbnVsbCkgcmV0dXJuIGIoYS5lcnJvcik7CiAgICAgICAgaWYgKGQudmFsdWUpIHJldHVybiBFKCEwKTsKICAgICAgICBhLmxvYWRlZFdhaXRlcnMucHVzaCh7IHJlc29sdmU6IEUsIHJlamVjdDogYiB9KTsKICAgICAgfSk7CiAgICB9OwogIH0KICBmdW5jdGlvbiB1KGQpIHsKICAgIHZhciBFID0gdGhpczsKICAgIHJldHVybiBmdW5jdGlvbiAoYikgewogICAgICByZXR1cm4gZShFLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBQOwogICAgICAgIHJldHVybiB0KHRoaXMsIGZ1bmN0aW9uIChSKSB7CiAgICAgICAgICBzd2l0Y2ggKFIubGFiZWwpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgKFAgPSBkLnZhbHVlKSA9PT0gbnVsbCB8fCBQID09PSB2b2lkIDAgPyB2b2lkIDAgOiBQLmV4ZWN1dGUoYiksCiAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHJldHVybiBbMiwgUi5zZW50KCldOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH07CiAgfQogIHJldHVybiBSZUNhcHRjaGFWdWVQbHVnaW47Cn0KdmFyIFJlQ2FwdGNoYVZ1ZVBsdWdpbkV4cG9ydHMgPSByZXF1aXJlUmVDYXB0Y2hhVnVlUGx1Z2luKCk7CmNvbnN0IHJlY2FwdGNoYV9jbGllbnRfZVBWR3kxMk9kbSA9IGRlZmluZU51eHRQbHVnaW4oKGUpID0+IHsKICBjb25zdCB0ID0gdXNlUnVudGltZUNvbmZpZygpOwogIGUudnVlQXBwLnVzZShSZUNhcHRjaGFWdWVQbHVnaW5FeHBvcnRzLlZ1ZVJlQ2FwdGNoYSwgewogICAgc2l0ZUtleTogdC5wdWJsaWMuc2l0ZUtleSwKICB9KTsKfSksCiAgR0VUX09UUCA9ICIvYXBpL3YxL3NpZ24tdXAvZ2V0LW90cCIsCiAgU0lHTl9VUCA9ICIvYXBpL3YxL3NpZ24tdXAvY29uZmlybSIsCiAgRk9SR0VUX1BBU1NXT1JEX0dFVF9PVFAgPSAiL2FwaS92MS9mb3Jnb3QtcGFzc3dvcmQvZ2V0LW90cCIsCiAgRk9SR09UX1BBU1NXT1JEID0gIi9hcGkvdjEvZm9yZ290LXBhc3N3b3JkL2NvbmZpcm0iLAogIEdPT0dMRV9MT0dJTiA9ICIvYXBpL3YxL2dvb2dsZS9sb2dpbiIsCiAgU0lHTl9JTiA9ICIvYXBpL3YxL2xvZ2luIiwKICBMT0dPVVQgPSAiL2FwaS92MS9sb2dvdXQiLAogIERJUkVDVElPTlMgPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9kaXJlY3Rpb25zIiwKICBDQUxDVUxBVElPTiA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uIiwKICBDT01QTEVURV9ESVJFQ1RJT04gPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9zdGVwMSIsCiAgV0FMTEVUX0lORk8gPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9zdGVwMiIsCiAgQ09ORklSTV9SRVZJRVdfT1JERVIgPSAiL2FwaS92MS9jYWxjdWxhdGlvbi9zdGVwMyIsCiAgQ0hFQ0tfRElTQ09VTlQgPSAiL2FwaS92MS9jb3Vwb25zL2NoZWNrIiwKICBQUk9DRVNTX1RSQU5TQUNUSU9OID0gIi9hcGkvdjEvY2FsY3VsYXRpb24vcHJvY2Vzcy10cmFuc2FjdGlvbiIsCiAgUEFZTUVOVF9HQVRFV0FZID0gIi9hcGkvdjEvcGF5bWVudC9nYXRld2F5IiwKICBORUJVTE9YX0NPTkZJUk1BVElPTiA9ICIvYXBpL3YxL3BheW1lbnQvbmVidWxveC9jb25maXJtYXRpb24iLAogIEVYUElSRV9PUkRFUiA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uL2V4cGlyZSIsCiAgUFJPQ0VTU19PUkRFUiA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uL3Byb2Nlc3Mtb3JkZXIiLAogIFRSQUNLX09SREVSID0gIi9hcGkvdjEvY2FsY3VsYXRpb24vdHJhY2stb3JkZXIiLAogIE9SREVSX1NUQVRVUyA9ICIvYXBpL3YxL29yZGVyL3N0YXR1cyIsCiAgR0VORVJBVEVfVFdPX0ZBID0gIi9hcGkvdjEvdXNlci9wcm9maWxlL2dlbmVyYXRlMmZhIiwKICBFTkFCTEVfVFdPX0ZBID0gIi9hcGkvdjEvdXNlci9wcm9maWxlL2VuYWJsZTJmYSIsCiAgRElTQUJMRV9UV09fRkEgPSAiL2FwaS92MS91c2VyL3Byb2ZpbGUvZGlzYWJsZTJmYSIsCiAgVVNFUl9PUkRFUlMgPSAiL2FwaS92MS91c2VyL29yZGVyL2ZpbHRlciIsCiAgQ0hBTkdFX1BBU1NXT1JEID0gIi9hcGkvdjEvdXNlci9wcm9maWxlL2NoYW5nZS1wYXNzd29yZCIsCiAgVVBMT0FEX0FWQVRBUiA9ICIvYXBpL3YxL3VzZXIvcHJvZmlsZS9hdmF0YXIiLAogIEVESVRfUFJPRklMRSA9ICIvYXBpL3YxL3VzZXIvcHJvZmlsZS91cGRhdGUiLAogIFVTRVJfVFJBTlNBQ1RJT05TID0gIi9hcGkvdjEvdXNlci90cmFuc2FjdGlvbi9maWx0ZXIiLAogIFVTRVJfQ1JFQVRFX1dJVEhEUkFXID0gIi9hcGkvdjEvdXNlci93aXRoZHJhdy9zdG9yZSIsCiAgVVNFUl9XSVRIRFJBV1MgPSAiL2FwaS92MS91c2VyL3dpdGhkcmF3L2ZpbHRlciIsCiAgVVNFUl9ESVNDT1VOVF9MSVNUID0gIi9hcGkvdjEvY291cG9ucy91c2VyL2Rpc2NvdW50cyIsCiAgQ1VSUkVOQ0lFUyA9ICIvYXBpL3YxL2NhbGN1bGF0aW9uL2N1cnJlbmNpZXMiLAogIEdFVF9VU0VSX0lORk8gPSAiL2FwaS92MS91c2VyL2luZm8iLAogIEdFVF9VU0VSX09UUCA9ICIvYXBpL3YxL3VzZXIvZW1haWwvZ2V0LW90cCIsCiAgVkVSSUZZX0VNQUlMID0gIi9hcGkvdjEvdXNlci9lbWFpbC92ZXJpZnkiLAogIFJFQ0VJVkVfUEFZUEFMX0xBTkRJTkcgPSAiL2FwaS92MS9sYW5kaW5nLzEvZGV0YWlscyIsCiAgV0FMTEVUX0NVUlJFTkNJRVMgPSAiL2FwaS92MS93YWxsZXQvdXNlci9jdXJyZW5jaWVzIiwKICBXQUxMRVRfREVUQUlMUyA9ICIvYXBpL3YxL3dhbGxldCIsCiAgQ1JFQVRFX1dBTExFVCA9ICIvYXBpL3YxL3dhbGxldC9zdG9yZSIsCiAgV0lUSERSQVdfUkVRVUVTVCA9ICIvYXBpL3YxL3dhbGxldC93aXRoZHJhdy1yZXF1ZXN0IiwKICBXSVRIRFJBX0xJU1QgPSAiL2FwaS92MS93YWxsZXQvbGlzdC93aXRoZHJhdy1yZXF1ZXN0IiwKICBDUklTUF9XRUJTSVRFX0lEX0NPTkZJRyA9ICI4MDZmYTM3OC00OGEyLTQ4NzYtYTJmZC1mNjg1NTU0NzgyN2EiLAogIGNyaXNwX2NsaWVudF9hbVFOQTZ0UUE0ID0gZGVmaW5lTnV4dFBsdWdpbigoKSA9PiB7CiAgICAod2luZG93LiRjcmlzcCA9IFtdKSwKICAgICAgKHdpbmRvdy5DUklTUF9XRUJTSVRFX0lEID0gQ1JJU1BfV0VCU0lURV9JRF9DT05GSUcpLAogICAgICAoZnVuY3Rpb24gKCkgewoKICAgICAgfSkoKTsKICB9KTsKdmFyIGxvdHRpZSQxID0geyBleHBvcnRzOiB7fSB9LAogIGxvdHRpZSA9IGxvdHRpZSQxLmV4cG9ydHMsCiAgaGFzUmVxdWlyZWRMb3R0aWU7CmZ1bmN0aW9uIHJlcXVpcmVMb3R0aWUoKSB7CiAgcmV0dXJuICgKICAgIGhhc1JlcXVpcmVkTG90dGllIHx8CiAgICAoKGhhc1JlcXVpcmVkTG90dGllID0gMSksCiAgICAgIChmdW5jdGlvbiAobW9kdWxlLCBleHBvcnRzKSB7CiAgICAgICAgdHlwZW9mIG5hdmlnYXRvciA8ICJ1IiAmJgogICAgICAgICAgKGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gdCgpOwogICAgICAgICAgfSkobG90dGllLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBzdmdOUyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsCiAgICAgICAgICAgICAgbG9jYXRpb25IcmVmID0gIiIsCiAgICAgICAgICAgICAgX3VzZVdlYldvcmtlciA9ICExLAogICAgICAgICAgICAgIGluaXRpYWxEZWZhdWx0RnJhbWUgPSAtOTk5OTk5LAogICAgICAgICAgICAgIHNldFdlYldvcmtlciA9IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICBfdXNlV2ViV29ya2VyID0gISF0OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0V2ViV29ya2VyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIF91c2VXZWJXb3JrZXI7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRMb2NhdGlvbkhyZWYgPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgbG9jYXRpb25IcmVmID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldExvY2F0aW9uSHJlZiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbkhyZWY7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVGFnKGUpIHsKICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBleHRlbmRQcm90b3R5cGUoZSwgdCkgewogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoLAogICAgICAgICAgICAgICAgaTsKICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB7CiAgICAgICAgICAgICAgICBpID0gZVtyXS5wcm90b3R5cGU7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBhIGluIGkpCiAgICAgICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLCBhKSAmJgogICAgICAgICAgICAgICAgICAgICh0LnByb3RvdHlwZVthXSA9IGlbYV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBnZXREZXNjcmlwdG9yKGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm94eUZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiB0KCkgeyB9CiAgICAgICAgICAgICAgcmV0dXJuICh0LnByb3RvdHlwZSA9IGUpLCB0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBhdWRpb0NvbnRyb2xsZXJGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiBlKHQpIHsKICAgICAgICAgICAgICAgICh0aGlzLmF1ZGlvcyA9IFtdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXVkaW9GYWN0b3J5ID0gdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl92b2x1bWUgPSAxKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzTXV0ZWQgPSAhMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgIGFkZEF1ZGlvOiBmdW5jdGlvbiAocikgewogICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9zLnB1c2gocik7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHBhdXNlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgICAgICBuID0gdGhpcy5hdWRpb3MubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHRoaXMuYXVkaW9zW3JdLnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHJlc3VtZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuYXVkaW9zLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB0aGlzLmF1ZGlvc1tyXS5yZXN1bWUoKTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgc2V0UmF0ZTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLmF1ZGlvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkgdGhpcy5hdWRpb3Nbbl0uc2V0UmF0ZShyKTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgY3JlYXRlQXVkaW86IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXVkaW9GYWN0b3J5CiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYXVkaW9GYWN0b3J5KHIpCiAgICAgICAgICAgICAgICAgICAgICA6IHdpbmRvdy5Ib3dsCiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IHdpbmRvdy5Ib3dsKHsgc3JjOiBbcl0gfSkKICAgICAgICAgICAgICAgICAgICAgICAgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nOiAhMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUGxheWluZyA9ICEwOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlazogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSAhMTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlpbmc6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICByYXRlOiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Vm9sdW1lOiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHNldEF1ZGlvRmFjdG9yeTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvRmFjdG9yeSA9IHI7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHNldFZvbHVtZTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lID0gciksIHRoaXMuX3VwZGF0ZVZvbHVtZSgpOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBtdXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzTXV0ZWQgPSAhMCksIHRoaXMuX3VwZGF0ZVZvbHVtZSgpOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB1bm11dGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNNdXRlZCA9ICExKSwgdGhpcy5fdXBkYXRlVm9sdW1lKCk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIGdldFZvbHVtZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92b2x1bWU7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIF91cGRhdGVWb2x1bWU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmF1ZGlvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9zW3JdLnZvbHVtZSgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdm9sdW1lICogKHRoaXMuX2lzTXV0ZWQgPyAwIDogMSkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBjcmVhdGVUeXBlZEFycmF5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUociwgbikgewogICAgICAgICAgICAgICAgICB2YXIgaSA9IDAsCiAgICAgICAgICAgICAgICAgICAgYSA9IFtdLAogICAgICAgICAgICAgICAgICAgIG87CiAgICAgICAgICAgICAgICAgIHN3aXRjaCAocikgewogICAgICAgICAgICAgICAgICAgIGNhc2UgImludDE2IjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJ1aW50OGMiOgogICAgICAgICAgICAgICAgICAgICAgbyA9IDE7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgbyA9IDEuMTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpICs9IDEpIGEucHVzaChvKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0KHIsIG4pIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgPT09ICJmbG9hdDMyIgogICAgICAgICAgICAgICAgICAgID8gbmV3IEZsb2F0MzJBcnJheShuKQogICAgICAgICAgICAgICAgICAgIDogciA9PT0gImludDE2IgogICAgICAgICAgICAgICAgICAgICAgPyBuZXcgSW50MTZBcnJheShuKQogICAgICAgICAgICAgICAgICAgICAgOiByID09PSAidWludDhjIgogICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBVaW50OENsYW1wZWRBcnJheShuKQogICAgICAgICAgICAgICAgICAgICAgICA6IGUociwgbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5ID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAgICAgdHlwZW9mIEZsb2F0MzJBcnJheSA9PSAiZnVuY3Rpb24iCiAgICAgICAgICAgICAgICAgID8gdAogICAgICAgICAgICAgICAgICA6IGU7CiAgICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlU2l6ZWRBcnJheShlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmFwcGx5KG51bGwsIHsgbGVuZ3RoOiBlIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIF90eXBlb2YkNihlKSB7CiAgICAgICAgICAgICAgIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgPyAoX3R5cGVvZiQ2ID0gZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHI7CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIDogKF90eXBlb2YkNiA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgci5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICByICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIF90eXBlb2YkNihlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHN1YmZyYW1lRW5hYmxlZCA9ICEwLAogICAgICAgICAgICAgIGV4cHJlc3Npb25zUGx1Z2luID0gbnVsbCwKICAgICAgICAgICAgICBleHByZXNzaW9uc0ludGVyZmFjZXMgPSBudWxsLAogICAgICAgICAgICAgIGlkUHJlZml4JDEgPSAiIiwKICAgICAgICAgICAgICBpc1NhZmFyaSA9IC9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QoCiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IudXNlckFnZW50CiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBibVBvdyA9IE1hdGgucG93LAogICAgICAgICAgICAgIGJtU3FydCA9IE1hdGguc3FydCwKICAgICAgICAgICAgICBibUZsb29yID0gTWF0aC5mbG9vciwKICAgICAgICAgICAgICBibU1heCA9IE1hdGgubWF4LAogICAgICAgICAgICAgIGJtTWluID0gTWF0aC5taW4sCiAgICAgICAgICAgICAgQk1NYXRoID0ge307CiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBbCiAgICAgICAgICAgICAgICAiYWJzIiwKICAgICAgICAgICAgICAgICJhY29zIiwKICAgICAgICAgICAgICAgICJhY29zaCIsCiAgICAgICAgICAgICAgICAiYXNpbiIsCiAgICAgICAgICAgICAgICAiYXNpbmgiLAogICAgICAgICAgICAgICAgImF0YW4iLAogICAgICAgICAgICAgICAgImF0YW5oIiwKICAgICAgICAgICAgICAgICJhdGFuMiIsCiAgICAgICAgICAgICAgICAiY2VpbCIsCiAgICAgICAgICAgICAgICAiY2JydCIsCiAgICAgICAgICAgICAgICAiZXhwbTEiLAogICAgICAgICAgICAgICAgImNsejMyIiwKICAgICAgICAgICAgICAgICJjb3MiLAogICAgICAgICAgICAgICAgImNvc2giLAogICAgICAgICAgICAgICAgImV4cCIsCiAgICAgICAgICAgICAgICAiZmxvb3IiLAogICAgICAgICAgICAgICAgImZyb3VuZCIsCiAgICAgICAgICAgICAgICAiaHlwb3QiLAogICAgICAgICAgICAgICAgImltdWwiLAogICAgICAgICAgICAgICAgImxvZyIsCiAgICAgICAgICAgICAgICAibG9nMXAiLAogICAgICAgICAgICAgICAgImxvZzIiLAogICAgICAgICAgICAgICAgImxvZzEwIiwKICAgICAgICAgICAgICAgICJtYXgiLAogICAgICAgICAgICAgICAgIm1pbiIsCiAgICAgICAgICAgICAgICAicG93IiwKICAgICAgICAgICAgICAgICJyYW5kb20iLAogICAgICAgICAgICAgICAgInJvdW5kIiwKICAgICAgICAgICAgICAgICJzaWduIiwKICAgICAgICAgICAgICAgICJzaW4iLAogICAgICAgICAgICAgICAgInNpbmgiLAogICAgICAgICAgICAgICAgInNxcnQiLAogICAgICAgICAgICAgICAgInRhbiIsCiAgICAgICAgICAgICAgICAidGFuaCIsCiAgICAgICAgICAgICAgICAidHJ1bmMiLAogICAgICAgICAgICAgICAgIkUiLAogICAgICAgICAgICAgICAgIkxOMTAiLAogICAgICAgICAgICAgICAgIkxOMiIsCiAgICAgICAgICAgICAgICAiTE9HMTBFIiwKICAgICAgICAgICAgICAgICJMT0cyRSIsCiAgICAgICAgICAgICAgICAiUEkiLAogICAgICAgICAgICAgICAgIlNRUlQxXzIiLAogICAgICAgICAgICAgICAgIlNRUlQyIiwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgIHIgPSBlLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKSBCTU1hdGhbZVt0XV0gPSBNYXRoW2VbdF1dOwogICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgIChCTU1hdGgucmFuZG9tID0gTWF0aC5yYW5kb20pLAogICAgICAgICAgICAgIChCTU1hdGguYWJzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gX3R5cGVvZiQ2KGUpOwogICAgICAgICAgICAgICAgaWYgKHQgPT09ICJvYmplY3QiICYmIGUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgIHZhciByID0gY3JlYXRlU2l6ZWRBcnJheShlLmxlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgICBpID0gZS5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpIHJbbl0gPSBNYXRoLmFicyhlW25dKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5hYnMoZSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBkZWZhdWx0Q3VydmVTZWdtZW50cyA9IDE1MCwKICAgICAgICAgICAgICBkZWdUb1JhZHMgPSBNYXRoLlBJIC8gMTgwLAogICAgICAgICAgICAgIHJvdW5kQ29ybmVyID0gMC41NTE5OwogICAgICAgICAgICBmdW5jdGlvbiBzdHlsZURpdihlKSB7CiAgICAgICAgICAgICAgKGUuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiKSwKICAgICAgICAgICAgICAgIChlLnN0eWxlLnRvcCA9IDApLAogICAgICAgICAgICAgICAgKGUuc3R5bGUubGVmdCA9IDApLAogICAgICAgICAgICAgICAgKGUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gIjAgMCIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUud2Via2l0VHJhbnNmb3JtT3JpZ2luID0gIjAgMCIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUuYmFja2ZhY2VWaXNpYmlsaXR5ID0gInZpc2libGUiKSwKICAgICAgICAgICAgICAgIChlLnN0eWxlLndlYmtpdEJhY2tmYWNlVmlzaWJpbGl0eSA9ICJ2aXNpYmxlIiksCiAgICAgICAgICAgICAgICAoZS5zdHlsZS50cmFuc2Zvcm1TdHlsZSA9ICJwcmVzZXJ2ZS0zZCIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUud2Via2l0VHJhbnNmb3JtU3R5bGUgPSAicHJlc2VydmUtM2QiKSwKICAgICAgICAgICAgICAgIChlLnN0eWxlLm1velRyYW5zZm9ybVN0eWxlID0gInByZXNlcnZlLTNkIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1FbnRlckZyYW1lRXZlbnQoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRUaW1lID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy50b3RhbFRpbWUgPSByKSwKICAgICAgICAgICAgICAgICh0aGlzLmRpcmVjdGlvbiA9IG4gPCAwID8gLTEgOiAxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBCTUNvbXBsZXRlRXZlbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwgKHRoaXMuZGlyZWN0aW9uID0gdCA8IDAgPyAtMSA6IDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIEJNQ29tcGxldGVMb29wRXZlbnQoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRMb29wID0gciksCiAgICAgICAgICAgICAgICAodGhpcy50b3RhbExvb3BzID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5kaXJlY3Rpb24gPSBuIDwgMCA/IC0xIDogMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1TZWdtZW50U3RhcnRFdmVudChlLCB0LCByKSB7CiAgICAgICAgICAgICAgKHRoaXMudHlwZSA9IGUpLCAodGhpcy5maXJzdEZyYW1lID0gdCksICh0aGlzLnRvdGFsRnJhbWVzID0gcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1EZXN0cm95RXZlbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwgKHRoaXMudGFyZ2V0ID0gdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1SZW5kZXJGcmFtZUVycm9yRXZlbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSAicmVuZGVyRnJhbWVFcnJvciIpLAogICAgICAgICAgICAgICAgKHRoaXMubmF0aXZlRXJyb3IgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRUaW1lID0gdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQk1Db25maWdFcnJvckV2ZW50KGUpIHsKICAgICAgICAgICAgICAodGhpcy50eXBlID0gImNvbmZpZ0Vycm9yIiksICh0aGlzLm5hdGl2ZUVycm9yID0gZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGNyZWF0ZUVsZW1lbnRJRCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSAwOwogICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGUgKz0gMSksIGlkUHJlZml4JDEgKyAiX19sb3R0aWVfZWxlbWVudF8iICsgZTsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBIU1Z0b1JHQihlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4sIGksIGEsIG8sIGwsIGMsIHUsIGQ7CiAgICAgICAgICAgICAgc3dpdGNoICgKICAgICAgICAgICAgICAoKG8gPSBNYXRoLmZsb29yKGUgKiA2KSksCiAgICAgICAgICAgICAgICAobCA9IGUgKiA2IC0gbyksCiAgICAgICAgICAgICAgICAoYyA9IHIgKiAoMSAtIHQpKSwKICAgICAgICAgICAgICAgICh1ID0gciAqICgxIC0gbCAqIHQpKSwKICAgICAgICAgICAgICAgIChkID0gciAqICgxIC0gKDEgLSBsKSAqIHQpKSwKICAgICAgICAgICAgICAgIG8gJSA2KQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAobiA9IHIpLCAoaSA9IGQpLCAoYSA9IGMpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgKG4gPSB1KSwgKGkgPSByKSwgKGEgPSBjKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgIChuID0gYyksIChpID0gciksIChhID0gZCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAobiA9IGMpLCAoaSA9IHUpLCAoYSA9IHIpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgKG4gPSBkKSwgKGkgPSBjKSwgKGEgPSByKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIChuID0gciksIChpID0gYyksIChhID0gdSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gW24sIGksIGFdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFJHQnRvSFNWKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB2YXIgbiA9IE1hdGgubWF4KGUsIHQsIHIpLAogICAgICAgICAgICAgICAgaSA9IE1hdGgubWluKGUsIHQsIHIpLAogICAgICAgICAgICAgICAgYSA9IG4gLSBpLAogICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgIGwgPSBuID09PSAwID8gMCA6IGEgLyBuLAogICAgICAgICAgICAgICAgYyA9IG4gLyAyNTU7CiAgICAgICAgICAgICAgc3dpdGNoIChuKSB7CiAgICAgICAgICAgICAgICBjYXNlIGk6CiAgICAgICAgICAgICAgICAgIG8gPSAwOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgZToKICAgICAgICAgICAgICAgICAgKG8gPSB0IC0gciArIGEgKiAodCA8IHIgPyA2IDogMCkpLCAobyAvPSA2ICogYSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSB0OgogICAgICAgICAgICAgICAgICAobyA9IHIgLSBlICsgYSAqIDIpLCAobyAvPSA2ICogYSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSByOgogICAgICAgICAgICAgICAgICAobyA9IGUgLSB0ICsgYSAqIDQpLCAobyAvPSA2ICogYSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gW28sIGwsIGNdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZFNhdHVyYXRpb25Ub1JHQihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBSR0J0b0hTVihlWzBdICogMjU1LCBlWzFdICogMjU1LCBlWzJdICogMjU1KTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHJbMV0gKz0gdCksCiAgICAgICAgICAgICAgICByWzFdID4gMSA/IChyWzFdID0gMSkgOiByWzFdIDw9IDAgJiYgKHJbMV0gPSAwKSwKICAgICAgICAgICAgICAgIEhTVnRvUkdCKHJbMF0sIHJbMV0sIHJbMl0pCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhZGRCcmlnaHRuZXNzVG9SR0IoZSwgdCkgewogICAgICAgICAgICAgIHZhciByID0gUkdCdG9IU1YoZVswXSAqIDI1NSwgZVsxXSAqIDI1NSwgZVsyXSAqIDI1NSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChyWzJdICs9IHQpLAogICAgICAgICAgICAgICAgclsyXSA+IDEgPyAoclsyXSA9IDEpIDogclsyXSA8IDAgJiYgKHJbMl0gPSAwKSwKICAgICAgICAgICAgICAgIEhTVnRvUkdCKHJbMF0sIHJbMV0sIHJbMl0pCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhZGRIdWVUb1JHQihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBSR0J0b0hTVihlWzBdICogMjU1LCBlWzFdICogMjU1LCBlWzJdICogMjU1KTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHJbMF0gKz0gdCAvIDM2MCksCiAgICAgICAgICAgICAgICByWzBdID4gMSA/IChyWzBdIC09IDEpIDogclswXSA8IDAgJiYgKHJbMF0gKz0gMSksCiAgICAgICAgICAgICAgICBIU1Z0b1JHQihyWzBdLCByWzFdLCByWzJdKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHJnYlRvSGV4ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IFtdLAogICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgIHI7CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IDI1NjsgdCArPSAxKQogICAgICAgICAgICAgICAgKHIgPSB0LnRvU3RyaW5nKDE2KSksIChlW3RdID0gci5sZW5ndGggPT09IDEgPyAiMCIgKyByIDogcik7CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChuLCBpLCBhKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICBuIDwgMCAmJiAobiA9IDApLAogICAgICAgICAgICAgICAgICBpIDwgMCAmJiAoaSA9IDApLAogICAgICAgICAgICAgICAgICBhIDwgMCAmJiAoYSA9IDApLAogICAgICAgICAgICAgICAgICAiIyIgKyBlW25dICsgZVtpXSArIGVbYV0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBzZXRTdWJmcmFtZUVuYWJsZWQgPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgc3ViZnJhbWVFbmFibGVkID0gISF0OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0U3ViZnJhbWVFbmFibGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHN1YmZyYW1lRW5hYmxlZDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNldEV4cHJlc3Npb25zUGx1Z2luID0gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zUGx1Z2luID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldEV4cHJlc3Npb25zUGx1Z2luID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGV4cHJlc3Npb25zUGx1Z2luOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2V0RXhwcmVzc2lvbkludGVyZmFjZXMgPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgZXhwcmVzc2lvbnNJbnRlcmZhY2VzID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldEV4cHJlc3Npb25JbnRlcmZhY2VzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGV4cHJlc3Npb25zSW50ZXJmYWNlczsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGRlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldERlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDdXJ2ZVNlZ21lbnRzOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2V0SWRQcmVmaXggPSBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgaWRQcmVmaXgkMSA9IHQ7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlTlMoZSkgewogICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsIGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIF90eXBlb2YkNShlKSB7CiAgICAgICAgICAgICAgIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgPyAoX3R5cGVvZiQ1ID0gZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHI7CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIDogKF90eXBlb2YkNSA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgci5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICByICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIF90eXBlb2YkNShlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGRhdGFNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IDEsCiAgICAgICAgICAgICAgICB0ID0gW10sCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGkgPSB7CiAgICAgICAgICAgICAgICAgIG9ubWVzc2FnZTogZnVuY3Rpb24gKCkgeyB9LAogICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZTogZnVuY3Rpb24gKFApIHsKICAgICAgICAgICAgICAgICAgICByKHsgZGF0YTogUCB9KTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBhID0gewogICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZTogZnVuY3Rpb24gKFApIHsKICAgICAgICAgICAgICAgICAgICBpLm9ubWVzc2FnZSh7IGRhdGE6IFAgfSk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oYikgewogICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5Xb3JrZXIgJiYgd2luZG93LkJsb2IgJiYgZ2V0V2ViV29ya2VyKCkpIHsKICAgICAgICAgICAgICAgICAgdmFyIFAgPSBuZXcgQmxvYigKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAidmFyIF93b3JrZXJTZWxmID0gc2VsZjsgc2VsZi5vbm1lc3NhZ2UgPSAiLAogICAgICAgICAgICAgICAgICAgICAgYi50b1N0cmluZygpLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAidGV4dC9qYXZhc2NyaXB0IiB9CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgUiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoUCk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV29ya2VyKFIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIChyID0gYiksIGk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGwoKSB7CiAgICAgICAgICAgICAgICBuIHx8CiAgICAgICAgICAgICAgICAgICgobiA9IG8oZnVuY3Rpb24gKFApIHsKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBSKCkgewogICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gTShyZSwgQikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgeiwKICAgICAgICAgICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICAgICAgICAgIFYgPSByZS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgICAgICAgICAgICBZLAogICAgICAgICAgICAgICAgICAgICAgICAgIGhlLAogICAgICAgICAgICAgICAgICAgICAgICAgIHllOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKHogPSByZVtOXSksICJrcyIgaW4geiAmJiAhei5jb21wbGV0ZWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCh6LmNvbXBsZXRlZCA9ICEwKSwgei5oYXNNYXNrKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmUgPSB6Lm1hc2tzUHJvcGVydGllczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChZID0gdmUubGVuZ3RoLCBRID0gMDsgUSA8IFk7IFEgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVbUV0ucHQuay5pKSBPKHZlW1FdLnB0LmspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllID0gdmVbUV0ucHQuay5sZW5ndGgsIGhlID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUgPCB5ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUgKz0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZVtRXS5wdC5rW2hlXS5zICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyh2ZVtRXS5wdC5rW2hlXS5zWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZVtRXS5wdC5rW2hlXS5lICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyh2ZVtRXS5wdC5rW2hlXS5lWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHoudHkgPT09IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKHoubGF5ZXJzID0gUyh6LnJlZklkLCBCKSksIE0oei5sYXllcnMsIEIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHoudHkgPT09IDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEEoei5zaGFwZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB6LnR5ID09PSA1ICYmIGVlKHopOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHgocmUsIEIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHogPSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9IHJlLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgTjsgeiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVbel0udCA9PT0gMSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJlW3pdLmRhdGEubGF5ZXJzID0gUyhyZVt6XS5kYXRhLnJlZklkLCBCKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTShyZVt6XS5kYXRhLmxheWVycywgQikpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBrKHJlLCBCKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHogPSAwLCBOID0gQi5sZW5ndGg7IHogPCBOOykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChCW3pdLmlkID09PSByZSkgcmV0dXJuIEJbel07CiAgICAgICAgICAgICAgICAgICAgICAgICAgeiArPSAxOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gUyhyZSwgQikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgeiA9IGsocmUsIEIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gegogICAgICAgICAgICAgICAgICAgICAgICAgID8gei5sYXllcnMuX191c2VkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoei5sYXllcnMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKHoubGF5ZXJzLl9fdXNlZCA9ICEwKSwgei5sYXllcnMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQShyZSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQiwKICAgICAgICAgICAgICAgICAgICAgICAgICB6ID0gcmUubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVjsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChCID0geiAtIDE7IEIgPj0gMDsgQiAtPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZVtCXS50eSA9PT0gInNoIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZVtCXS5rcy5rLmkpIE8ocmVbQl0ua3Muayk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViA9IHJlW0JdLmtzLmsubGVuZ3RoLCBOID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOIDwgVjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlW0JdLmtzLmtbTl0ucyAmJiBPKHJlW0JdLmtzLmtbTl0uc1swXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZVtCXS5rcy5rW05dLmUgJiYgTyhyZVtCXS5rcy5rW05dLmVbMF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcmVbQl0udHkgPT09ICJnciIgJiYgQShyZVtCXS5pdCk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBPKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBCLAogICAgICAgICAgICAgICAgICAgICAgICAgIHogPSByZS5pLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChCID0gMDsgQiA8IHo7IEIgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAocmUuaVtCXVswXSArPSByZS52W0JdWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZS5pW0JdWzFdICs9IHJlLnZbQl1bMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlLm9bQl1bMF0gKz0gcmUudltCXVswXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmUub1tCXVsxXSArPSByZS52W0JdWzFdKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIEYocmUsIEIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHogPSBCID8gQi5zcGxpdCgiLiIpIDogWzEwMCwgMTAwLCAxMDBdOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVbMF0gPiB6WzBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAhMAogICAgICAgICAgICAgICAgICAgICAgICAgIDogelswXSA+IHJlWzBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICExCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlWzFdID4gelsxXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogelsxXSA+IHJlWzFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAhMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVbMl0gPiB6WzJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHpbMl0gPiByZVsyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICExCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIHZhciBEID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlID0gWzQsIDQsIDE0XTsKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFYgPSBOLnQuZDsKICAgICAgICAgICAgICAgICAgICAgICAgICBOLnQuZCA9IHsgazogW3sgczogViwgdDogMCB9XSB9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHooTikgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBROyBWICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOW1ZdLnR5ID09PSA1ICYmIEIoTltWXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEYocmUsIE4udikgJiYgKHooTi5sYXllcnMpLCBOLmFzc2V0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRID0gTi5hc3NldHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTi5hc3NldHNbVl0ubGF5ZXJzICYmIHooTi5hc3NldHNbVl0ubGF5ZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgICAgICAgICAgICBIID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmUgPSBbNCwgNywgOTldOwogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoQikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEIuY2hhcnMgJiYgIUYocmUsIEIudikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9IEIuY2hhcnMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgTjsgeiArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFYgPSBCLmNoYXJzW3pdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYuZGF0YSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVi5kYXRhLnNoYXBlcyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEEoVi5kYXRhLnNoYXBlcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWLmRhdGEuaXAgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYuZGF0YS5vcCA9IDk5OTk5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYuZGF0YS5zdCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVi5kYXRhLnNyID0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWLmRhdGEua3MgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDogeyBrOiBbMCwgMF0sIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiB7IGs6IFsxMDAsIDEwMF0sIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhOiB7IGs6IFswLCAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHI6IHsgazogMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG86IHsgazogMTAwLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmNoYXJzW3pdLnQgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYuZGF0YS5zaGFwZXMucHVzaCh7IHR5OiAibm8iIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYuZGF0YS5zaGFwZXNbMF0uaXQucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwOiB7IGs6IFswLCAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczogeyBrOiBbMTAwLCAxMDBdLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhOiB7IGs6IFswLCAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcjogeyBrOiAwLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvOiB7IGs6IDEwMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2s6IHsgazogMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2E6IHsgazogMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHk6ICJ0ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgICAgICAgICAgICQgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZSA9IFs1LCA3LCAxNV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViA9IE4udC5wOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIFYuYSA9PSAibnVtYmVyIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVi5hID0geyBhOiAwLCBrOiBWLmEgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBWLnAgPT0gIm51bWJlciIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYucCA9IHsgYTogMCwgazogVi5wIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgVi5yID09ICJudW1iZXIiICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWLnIgPSB7IGE6IDAsIGs6IFYuciB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS50eSA9PT0gNSAmJiBCKE5bVl0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKE4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChGKHJlLCBOLnYpICYmICh6KE4ubGF5ZXJzKSwgTi5hc3NldHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEgPSBOLmFzc2V0cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBROyBWICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTi5hc3NldHNbVl0ubGF5ZXJzICYmIHooTi5hc3NldHNbVl0ubGF5ZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgICAgICAgICAgICBxID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmUgPSBbNCwgMSwgOV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBROyBWICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChOW1ZdLnR5ID09PSAiZ3IiKSBCKE5bVl0uaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChOW1ZdLnR5ID09PSAiZmwiIHx8IE5bVl0udHkgPT09ICJzdCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE5bVl0uYy5rICYmIE5bVl0uYy5rWzBdLmkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZSA9IE5bVl0uYy5rLmxlbmd0aCwgWSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFkgPCBoZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSArPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uYy5rW1ldLnMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5bVl0uYy5rW1ldLnNbMF0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmMua1tZXS5zWzFdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbWV0uc1syXSAvPSAyNTUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5bVl0uYy5rW1ldLnNbM10gLz0gMjU1KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS5jLmtbWV0uZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoTltWXS5jLmtbWV0uZVswXSAvPSAyNTUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5bVl0uYy5rW1ldLmVbMV0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmMua1tZXS5lWzJdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbWV0uZVszXSAvPSAyNTUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbMF0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5bVl0uYy5rWzFdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmMua1syXSAvPSAyNTUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5jLmtbM10gLz0gMjU1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS50eSA9PT0gNCAmJiBCKE5bVl0uc2hhcGVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRihyZSwgTi52KSAmJiAoeihOLmxheWVycyksIE4uYXNzZXRzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRID0gTi5hc3NldHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKFYgPSAwOyBWIDwgUTsgViArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4uYXNzZXRzW1ZdLmxheWVycyAmJiB6KE4uYXNzZXRzW1ZdLmxheWVycyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgSiA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlID0gWzQsIDQsIDE4XTsKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBCKE4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRID0gTi5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gUSAtIDE7IFYgPj0gMDsgViAtPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTltWXS50eSA9PT0gInNoIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTltWXS5rcy5rLmkpIE5bVl0ua3Muay5jID0gTltWXS5jbG9zZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGUgPSBOW1ZdLmtzLmsubGVuZ3RoLCBZID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSA8IGhlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS5rcy5rW1ldLnMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTltWXS5rcy5rW1ldLnNbMF0uYyA9IE5bVl0uY2xvc2VkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOW1ZdLmtzLmtbWV0uZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOW1ZdLmtzLmtbWV0uZVswXS5jID0gTltWXS5jbG9zZWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIE5bVl0udHkgPT09ICJnciIgJiYgQihOW1ZdLml0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geihOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSA9IE4ubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoUSA9IDA7IFEgPCBZOyBRICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoViA9IE5bUV0pLCBWLmhhc01hc2spKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIENlID0gVi5tYXNrc1Byb3BlcnRpZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh5ZSA9IENlLmxlbmd0aCwgaGUgPSAwOyBoZSA8IHllOyBoZSArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKENlW2hlXS5wdC5rLmkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENlW2hlXS5wdC5rLmMgPSBDZVtoZV0uY2w7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGUgPSBDZVtoZV0ucHQuay5sZW5ndGgsIHZlID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZSA8IFBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENlW2hlXS5wdC5rW3ZlXS5zICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ2VbaGVdLnB0LmtbdmVdLnNbMF0uYyA9IENlW2hlXS5jbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDZVtoZV0ucHQua1t2ZV0uZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENlW2hlXS5wdC5rW3ZlXS5lWzBdLmMgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDZVtoZV0uY2wpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYudHkgPT09IDQgJiYgQihWLnNoYXBlcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoTikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEYocmUsIE4udikgJiYgKHooTi5sYXllcnMpLCBOLmFzc2V0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9IE4uYXNzZXRzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLmFzc2V0c1tWXS5sYXllcnMgJiYgeihOLmFzc2V0c1tWXS5sYXllcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBLKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlLl9fY29tcGxldGUgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAocShyZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEKHJlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgocmUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChyZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKKHJlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0ocmUubGF5ZXJzLCByZS5hc3NldHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeChyZS5jaGFycywgcmUuYXNzZXRzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZS5fX2NvbXBsZXRlID0gITApKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVlKHJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlLnQuYS5sZW5ndGggPT09IDAgJiYgIm0iIGluIHJlLnQucDsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIHZhciBsZSA9IHt9OwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNvbXBsZXRlRGF0YSA9IEspLAogICAgICAgICAgICAgICAgICAgICAgICAobGUuY2hlY2tDb2xvcnMgPSBxKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNoZWNrQ2hhcnMgPSBIKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNoZWNrUGF0aFByb3BlcnRpZXMgPSAkKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGxlLmNoZWNrU2hhcGVzID0gSiksCiAgICAgICAgICAgICAgICAgICAgICAgIChsZS5jb21wbGV0ZUxheWVycyA9IE0pLAogICAgICAgICAgICAgICAgICAgICAgICBsZQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKGEuZGF0YU1hbmFnZXIgfHwgKGEuZGF0YU1hbmFnZXIgPSBSKCkpLAogICAgICAgICAgICAgICAgICAgICAgICBhLmFzc2V0TG9hZGVyIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIChhLmFzc2V0TG9hZGVyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBNKGspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBTID0gay5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgay5yZXNwb25zZVR5cGUgPT09ICJqc29uIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLmluZGV4T2YoImpzb24iKSAhPT0gLTEpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrLnJlc3BvbnNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3R5cGVvZiQ1KGsucmVzcG9uc2UpID09PSAib2JqZWN0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBrLnJlc3BvbnNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogay5yZXNwb25zZSAmJiB0eXBlb2Ygay5yZXNwb25zZSA9PSAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZShrLnJlc3BvbnNlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogay5yZXNwb25zZVRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZShrLnJlc3BvbnNlVGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24geChrLCBTLCBBLCBPKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRC5yZXNwb25zZVR5cGUgPSAianNvbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHsgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChELnJlYWR5U3RhdGUgPT09IDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEQuc3RhdHVzID09PSAyMDApIChGID0gTShEKSksIEEoRik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEYgPSBNKEQpKSwgQShGKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyAmJiBPKEgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQub3BlbihbIkciLCAiRSIsICJUIl0uam9pbigiIiksIGssICEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBELm9wZW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJHIiwgIkUiLCAiVCJdLmpvaW4oIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyAiLyIgKyBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBELnNlbmQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbG9hZDogeCB9OwogICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgUC5kYXRhLnR5cGUgPT09ICJsb2FkQW5pbWF0aW9uIikKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICBhLmFzc2V0TG9hZGVyLmxvYWQoCiAgICAgICAgICAgICAgICAgICAgICAgIFAuZGF0YS5wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICBQLmRhdGEuZnVsbFBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChNKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYS5kYXRhTWFuYWdlci5jb21wbGV0ZURhdGEoTSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFAuZGF0YS5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDogTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAic3VjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGEucG9zdE1lc3NhZ2UoeyBpZDogUC5kYXRhLmlkLCBzdGF0dXM6ICJlcnJvciIgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoUC5kYXRhLnR5cGUgPT09ICJjb21wbGV0ZSIpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBUID0gUC5kYXRhLmFuaW1hdGlvbjsKICAgICAgICAgICAgICAgICAgICAgIGEuZGF0YU1hbmFnZXIuY29tcGxldGVEYXRhKFQpLAogICAgICAgICAgICAgICAgICAgICAgICBhLnBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogUC5kYXRhLmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IFQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAic3VjY2VzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgUC5kYXRhLnR5cGUgPT09ICJsb2FkRGF0YSIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgYS5hc3NldExvYWRlci5sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuZGF0YS5wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuZGF0YS5mdWxsUGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoTSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBQLmRhdGEuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogInN1Y2Nlc3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnBvc3RNZXNzYWdlKHsgaWQ6IFAuZGF0YS5pZCwgc3RhdHVzOiAiZXJyb3IiIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgICAgICAgICAgIChuLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChiKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgUCA9IGIuZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgUiA9IFAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIFQgPSB0W1JdOwogICAgICAgICAgICAgICAgICAgICAgKHRbUl0gPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAgICAgUC5zdGF0dXMgPT09ICJzdWNjZXNzIgogICAgICAgICAgICAgICAgICAgICAgICAgID8gVC5vbkNvbXBsZXRlKFAucGF5bG9hZCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IFQub25FcnJvciAmJiBULm9uRXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGMoYiwgUCkgewogICAgICAgICAgICAgICAgZSArPSAxOwogICAgICAgICAgICAgICAgdmFyIFIgPSAicHJvY2Vzc0lkXyIgKyBlOwogICAgICAgICAgICAgICAgcmV0dXJuICh0W1JdID0geyBvbkNvbXBsZXRlOiBiLCBvbkVycm9yOiBQIH0pLCBSOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiB1KGIsIFAsIFIpIHsKICAgICAgICAgICAgICAgIGwoKTsKICAgICAgICAgICAgICAgIHZhciBUID0gYyhQLCBSKTsKICAgICAgICAgICAgICAgIG4ucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICB0eXBlOiAibG9hZEFuaW1hdGlvbiIsCiAgICAgICAgICAgICAgICAgIHBhdGg6IGIsCiAgICAgICAgICAgICAgICAgIGZ1bGxQYXRoOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLAogICAgICAgICAgICAgICAgICBpZDogVCwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBkKGIsIFAsIFIpIHsKICAgICAgICAgICAgICAgIGwoKTsKICAgICAgICAgICAgICAgIHZhciBUID0gYyhQLCBSKTsKICAgICAgICAgICAgICAgIG4ucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICB0eXBlOiAibG9hZERhdGEiLAogICAgICAgICAgICAgICAgICBwYXRoOiBiLAogICAgICAgICAgICAgICAgICBmdWxsUGF0aDogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwKICAgICAgICAgICAgICAgICAgaWQ6IFQsCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gRShiLCBQLCBSKSB7CiAgICAgICAgICAgICAgICBsKCk7CiAgICAgICAgICAgICAgICB2YXIgVCA9IGMoUCwgUik7CiAgICAgICAgICAgICAgICBuLnBvc3RNZXNzYWdlKHsgdHlwZTogImNvbXBsZXRlIiwgYW5pbWF0aW9uOiBiLCBpZDogVCB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgbG9hZEFuaW1hdGlvbjogdSwgbG9hZERhdGE6IGQsIGNvbXBsZXRlQW5pbWF0aW9uOiBFIH07CiAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgSW1hZ2VQcmVsb2FkZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICB2YXIgeCA9IGNyZWF0ZVRhZygiY2FudmFzIik7CiAgICAgICAgICAgICAgICAgICh4LndpZHRoID0gMSksICh4LmhlaWdodCA9IDEpOwogICAgICAgICAgICAgICAgICB2YXIgayA9IHguZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAoay5maWxsU3R5bGUgPSAicmdiYSgwLDAsMCwwKSIpLCBrLmZpbGxSZWN0KDAsIDAsIDEsIDEpLCB4CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICAgICAgZnVuY3Rpb24gdCgpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMubG9hZGVkQXNzZXRzICs9IDEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkQXNzZXRzID09PSB0aGlzLnRvdGFsSW1hZ2VzICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRGb290YWdlc0NvdW50ID09PSB0aGlzLnRvdGFsRm9vdGFnZXMgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlc0xvYWRlZENiICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZXNMb2FkZWRDYihudWxsKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHIoKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQgKz0gMSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRBc3NldHMgPT09IHRoaXMudG90YWxJbWFnZXMgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQgPT09IHRoaXMudG90YWxGb290YWdlcyAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzTG9hZGVkQ2IgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlc0xvYWRlZENiKG51bGwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbih4LCBrLCBTKSB7CiAgICAgICAgICAgICAgICAgIHZhciBBID0gIiI7CiAgICAgICAgICAgICAgICAgIGlmICh4LmUpIEEgPSB4LnA7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgTyA9IHgucDsKICAgICAgICAgICAgICAgICAgICBPLmluZGV4T2YoImltYWdlcy8iKSAhPT0gLTEgJiYgKE8gPSBPLnNwbGl0KCIvIilbMV0pLAogICAgICAgICAgICAgICAgICAgICAgKEEgPSBrICsgTyk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSAoQSA9IFMpLCAoQSArPSB4LnUgPyB4LnUgOiAiIiksIChBICs9IHgucCk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBBOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gaSh4KSB7CiAgICAgICAgICAgICAgICAgIHZhciBrID0gMCwKICAgICAgICAgICAgICAgICAgICBTID0gc2V0SW50ZXJ2YWwoCiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBBID0geC5nZXRCQm94KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIChBLndpZHRoIHx8IGsgPiA1MDApICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2ltYWdlTG9hZGVkKCksIGNsZWFySW50ZXJ2YWwoUykpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IDEpOwogICAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpLAogICAgICAgICAgICAgICAgICAgICAgNTAKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYSh4KSB7CiAgICAgICAgICAgICAgICAgIHZhciBrID0gbih4LCB0aGlzLmFzc2V0c1BhdGgsIHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgICAgUyA9IGNyZWF0ZU5TKCJpbWFnZSIpOwogICAgICAgICAgICAgICAgICBpc1NhZmFyaQogICAgICAgICAgICAgICAgICAgID8gdGhpcy50ZXN0SW1hZ2VMb2FkZWQoUykKICAgICAgICAgICAgICAgICAgICA6IFMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRoaXMuX2ltYWdlTG9hZGVkLCAhMSksCiAgICAgICAgICAgICAgICAgICAgUy5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgKEEuaW1nID0gZSksIHRoaXMuX2ltYWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgUy5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsICJocmVmIiwgayksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmQKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmQoUykKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmRDaGlsZChTKTsKICAgICAgICAgICAgICAgICAgdmFyIEEgPSB7IGltZzogUywgYXNzZXREYXRhOiB4IH07CiAgICAgICAgICAgICAgICAgIHJldHVybiBBOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbyh4KSB7CiAgICAgICAgICAgICAgICAgIHZhciBrID0gbih4LCB0aGlzLmFzc2V0c1BhdGgsIHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgICAgUyA9IGNyZWF0ZVRhZygiaW1nIik7CiAgICAgICAgICAgICAgICAgIChTLmNyb3NzT3JpZ2luID0gImFub255bW91cyIpLAogICAgICAgICAgICAgICAgICAgIFMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRoaXMuX2ltYWdlTG9hZGVkLCAhMSksCiAgICAgICAgICAgICAgICAgICAgUy5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgKEEuaW1nID0gZSksIHRoaXMuX2ltYWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKFMuc3JjID0gayk7CiAgICAgICAgICAgICAgICAgIHZhciBBID0geyBpbWc6IFMsIGFzc2V0RGF0YTogeCB9OwogICAgICAgICAgICAgICAgICByZXR1cm4gQTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGwoeCkgewogICAgICAgICAgICAgICAgICB2YXIgayA9IHsgYXNzZXREYXRhOiB4IH0sCiAgICAgICAgICAgICAgICAgICAgUyA9IG4oeCwgdGhpcy5hc3NldHNQYXRoLCB0aGlzLnBhdGgpOwogICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgIGRhdGFNYW5hZ2VyLmxvYWREYXRhKAogICAgICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChBKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIChrLmltZyA9IEEpLCB0aGlzLl9mb290YWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIChrLmltZyA9IHt9KSwgdGhpcy5fZm9vdGFnZUxvYWRlZCgpOwogICAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBrCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBjKHgsIGspIHsKICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZXNMb2FkZWRDYiA9IGs7CiAgICAgICAgICAgICAgICAgIHZhciBTLAogICAgICAgICAgICAgICAgICAgIEEgPSB4Lmxlbmd0aDsKICAgICAgICAgICAgICAgICAgZm9yIChTID0gMDsgUyA8IEE7IFMgKz0gMSkKICAgICAgICAgICAgICAgICAgICB4W1NdLmxheWVycyB8fAogICAgICAgICAgICAgICAgICAgICAgKCF4W1NdLnQgfHwgeFtTXS50ID09PSAic2VxIgogICAgICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy50b3RhbEltYWdlcyArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlcy5wdXNoKHRoaXMuX2NyZWF0ZUltYWdlRGF0YSh4W1NdKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogeFtTXS50ID09PSAzICYmCiAgICAgICAgICAgICAgICAgICAgICAgICgodGhpcy50b3RhbEZvb3RhZ2VzICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzLnB1c2godGhpcy5jcmVhdGVGb290YWdlRGF0YSh4W1NdKSkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHUoeCkgewogICAgICAgICAgICAgICAgICB0aGlzLnBhdGggPSB4IHx8ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZCh4KSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXRzUGF0aCA9IHggfHwgIiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBFKHgpIHsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDAsIFMgPSB0aGlzLmltYWdlcy5sZW5ndGg7IGsgPCBTOykgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlc1trXS5hc3NldERhdGEgPT09IHgpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXNba10uaW1nOwogICAgICAgICAgICAgICAgICAgIGsgKz0gMTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGIoKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLmltYWdlc0xvYWRlZENiID0gbnVsbCksICh0aGlzLmltYWdlcy5sZW5ndGggPSAwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvdGFsSW1hZ2VzID09PSB0aGlzLmxvYWRlZEFzc2V0czsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFIoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvdGFsRm9vdGFnZXMgPT09IHRoaXMubG9hZGVkRm9vdGFnZXNDb3VudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFQoeCwgaykgewogICAgICAgICAgICAgICAgICB4ID09PSAic3ZnIgogICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLl9lbGVtZW50SGVscGVyID0gayksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fY3JlYXRlSW1hZ2VEYXRhID0gdGhpcy5jcmVhdGVJbWFnZURhdGEuYmluZCh0aGlzKSkpCiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5fY3JlYXRlSW1hZ2VEYXRhID0gdGhpcy5jcmVhdGVJbWdEYXRhLmJpbmQodGhpcykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gTSgpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuX2ltYWdlTG9hZGVkID0gdC5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fZm9vdGFnZUxvYWRlZCA9IHIuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGVzdEltYWdlTG9hZGVkID0gaS5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5jcmVhdGVGb290YWdlRGF0YSA9IGwuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXNzZXRzUGF0aCA9ICIiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wYXRoID0gIiIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsSW1hZ2VzID0gMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudG90YWxGb290YWdlcyA9IDApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvYWRlZEFzc2V0cyA9IDApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQgPSAwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5pbWFnZXNMb2FkZWRDYiA9IG51bGwpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmltYWdlcyA9IFtdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChNLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICBsb2FkQXNzZXRzOiBjLAogICAgICAgICAgICAgICAgICAgIHNldEFzc2V0c1BhdGg6IGQsCiAgICAgICAgICAgICAgICAgICAgc2V0UGF0aDogdSwKICAgICAgICAgICAgICAgICAgICBsb2FkZWRJbWFnZXM6IFAsCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkRm9vdGFnZXM6IFIsCiAgICAgICAgICAgICAgICAgICAgZGVzdHJveTogYiwKICAgICAgICAgICAgICAgICAgICBnZXRBc3NldDogRSwKICAgICAgICAgICAgICAgICAgICBjcmVhdGVJbWdEYXRhOiBvLAogICAgICAgICAgICAgICAgICAgIGNyZWF0ZUltYWdlRGF0YTogYSwKICAgICAgICAgICAgICAgICAgICBpbWFnZUxvYWRlZDogdCwKICAgICAgICAgICAgICAgICAgICBmb290YWdlTG9hZGVkOiByLAogICAgICAgICAgICAgICAgICAgIHNldENhY2hlVHlwZTogVCwKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIE0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gQmFzZUV2ZW50KCkgeyB9CiAgICAgICAgICAgIEJhc2VFdmVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50OiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Nic1t0XSkKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IHRoaXMuX2Nic1t0XSwgaSA9IDA7IGkgPCBuLmxlbmd0aDsgaSArPSAxKQogICAgICAgICAgICAgICAgICAgIG5baV0ocik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdGhpcy5fY2JzW3RdIHx8ICh0aGlzLl9jYnNbdF0gPSBbXSksCiAgICAgICAgICAgICAgICAgIHRoaXMuX2Nic1t0XS5wdXNoKHIpLAogICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHQsIHIpOwogICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgaWYgKCFyKSB0aGlzLl9jYnNbdF0gPSBudWxsOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY2JzW3RdKSB7CiAgICAgICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwLCBpID0gdGhpcy5fY2JzW3RdLmxlbmd0aDsgbiA8IGk7KQogICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nic1t0XVtuXSA9PT0gciAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2Nic1t0XS5zcGxpY2UobiwgMSksIChuIC09IDEpLCAoaSAtPSAxKSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSAxKTsKICAgICAgICAgICAgICAgICAgdGhpcy5fY2JzW3RdLmxlbmd0aCB8fCAodGhpcy5fY2JzW3RdID0gbnVsbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdmFyIG1hcmtlclBhcnNlciA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gZSh0KSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB2YXIgciA9IHQuc3BsaXQoYFxyCmApLAogICAgICAgICAgICAgICAgICBuID0ge30sCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEgPSAwLAogICAgICAgICAgICAgICAgICBvID0gMDsKICAgICAgICAgICAgICAgICAgbyA8IHIubGVuZ3RoOwogICAgICAgICAgICAgICAgICBvICs9IDEKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgKGkgPSByW29dLnNwbGl0KCI6IikpLAogICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoID09PSAyICYmICgobltpWzBdXSA9IGlbMV0udHJpbSgpKSwgKGEgKz0gMSkpOwogICAgICAgICAgICAgICAgaWYgKGEgPT09IDApIHRocm93IG5ldyBFcnJvcigpOwogICAgICAgICAgICAgICAgcmV0dXJuIG47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgciA9IFtdLCBuID0gMDsgbiA8IHQubGVuZ3RoOyBuICs9IDEpIHsKICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0W25dLAogICAgICAgICAgICAgICAgICAgIGEgPSB7IHRpbWU6IGkudG0sIGR1cmF0aW9uOiBpLmRyIH07CiAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgYS5wYXlsb2FkID0gSlNPTi5wYXJzZSh0W25dLmNtKTsKICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgIGEucGF5bG9hZCA9IGUodFtuXS5jbSk7CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgICAgICAgICBhLnBheWxvYWQgPSB7IG5hbWU6IHRbbl0uY20gfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgci5wdXNoKGEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBQcm9qZWN0SW50ZXJmYWNlID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUodCkgewogICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9ucy5wdXNoKHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdChyKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IDAsIGkgPSB0aGlzLmNvbXBvc2l0aW9ucy5sZW5ndGg7IG4gPCBpOykgewogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5kYXRhICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9zaXRpb25zW25dLmRhdGEubm0gPT09IHIKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5wcmVwYXJlRnJhbWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5kYXRhLnh0ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb3NpdGlvbnNbbl0ucHJlcGFyZUZyYW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUKICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9zaXRpb25zW25dLmNvbXBJbnRlcmZhY2UKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIG4gKz0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAodC5jb21wb3NpdGlvbnMgPSBbXSksCiAgICAgICAgICAgICAgICAgICAgKHQuY3VycmVudEZyYW1lID0gMCksCiAgICAgICAgICAgICAgICAgICAgKHQucmVnaXN0ZXJDb21wb3NpdGlvbiA9IGUpLAogICAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICByZW5kZXJlcnMgPSB7fSwKICAgICAgICAgICAgICByZWdpc3RlclJlbmRlcmVyID0gZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICAgICAgICAgIHJlbmRlcmVyc1t0XSA9IHI7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UmVuZGVyZXIoZSkgewogICAgICAgICAgICAgIHJldHVybiByZW5kZXJlcnNbZV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZFJlbmRlcmVyKCkgewogICAgICAgICAgICAgIGlmIChyZW5kZXJlcnMuY2FudmFzKSByZXR1cm4gImNhbnZhcyI7CiAgICAgICAgICAgICAgZm9yICh2YXIgZSBpbiByZW5kZXJlcnMpIGlmIChyZW5kZXJlcnNbZV0pIHJldHVybiBlOwogICAgICAgICAgICAgIHJldHVybiAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBfdHlwZW9mJDQoZSkgewogICAgICAgICAgICAgICJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgID8gKF90eXBlb2YkNCA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICA6IChfdHlwZW9mJDQgPSBmdW5jdGlvbiAocikgewogICAgICAgICAgICAgICAgICAgIHJldHVybiByICYmCiAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgU3ltYm9sID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAgICAgICAgIHIuY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJgogICAgICAgICAgICAgICAgICAgICAgciAhPT0gU3ltYm9sLnByb3RvdHlwZQogICAgICAgICAgICAgICAgICAgICAgPyAic3ltYm9sIgogICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgcjsKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICBfdHlwZW9mJDQoZSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBBbmltYXRpb25JdGVtID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICh0aGlzLl9jYnMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5uYW1lID0gIiIpLAogICAgICAgICAgICAgICAgKHRoaXMucGF0aCA9ICIiKSwKICAgICAgICAgICAgICAgICh0aGlzLmlzTG9hZGVkID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudEZyYW1lID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50UmF3RnJhbWUgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsRnJhbWVzID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5mcmFtZVJhdGUgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lTXVsdCA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMucGxheVNwZWVkID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5wbGF5RGlyZWN0aW9uID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5wbGF5Q291bnQgPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGlvbkRhdGEgPSB7fSksCiAgICAgICAgICAgICAgICAodGhpcy5hc3NldHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5pc1BhdXNlZCA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLmF1dG9wbGF5ID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMubG9vcCA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyID0gbnVsbCksCiAgICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JRCA9IGNyZWF0ZUVsZW1lbnRJRCgpKSwKICAgICAgICAgICAgICAgICh0aGlzLmFzc2V0c1BhdGggPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy50aW1lQ29tcGxldGVkID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5zZWdtZW50UG9zID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5pc1N1YmZyYW1lRW5hYmxlZCA9IGdldFN1YmZyYW1lRW5hYmxlZCgpKSwKICAgICAgICAgICAgICAgICh0aGlzLnNlZ21lbnRzID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuX2lkbGUgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5fY29tcGxldGVkTG9vcCA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb2plY3RJbnRlcmZhY2UgPSBQcm9qZWN0SW50ZXJmYWNlKCkpLAogICAgICAgICAgICAgICAgKHRoaXMuaW1hZ2VQcmVsb2FkZXIgPSBuZXcgSW1hZ2VQcmVsb2FkZXIoKSksCiAgICAgICAgICAgICAgICAodGhpcy5hdWRpb0NvbnRyb2xsZXIgPSBhdWRpb0NvbnRyb2xsZXJGYWN0b3J5KCkpLAogICAgICAgICAgICAgICAgKHRoaXMubWFya2VycyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbmZpZ0FuaW1hdGlvbiA9IHRoaXMuY29uZmlnQW5pbWF0aW9uLmJpbmQodGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMub25TZXR1cEVycm9yID0gdGhpcy5vblNldHVwRXJyb3IuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5vblNlZ21lbnRDb21wbGV0ZSA9IHRoaXMub25TZWdtZW50Q29tcGxldGUuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5kcmF3bkZyYW1lRXZlbnQgPSBuZXcgQk1FbnRlckZyYW1lRXZlbnQoCiAgICAgICAgICAgICAgICAgICJkcmF3bkZyYW1lIiwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy5leHByZXNzaW9uc1BsdWdpbiA9IGdldEV4cHJlc3Npb25zUGx1Z2luKCkpOwogICAgICAgICAgICB9OwogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0Jhc2VFdmVudF0sIEFuaW1hdGlvbkl0ZW0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRQYXJhbXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgKGUud3JhcHBlciB8fCBlLmNvbnRhaW5lcikgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMud3JhcHBlciA9IGUud3JhcHBlciB8fCBlLmNvbnRhaW5lcik7CiAgICAgICAgICAgICAgICB2YXIgdCA9ICJzdmciOwogICAgICAgICAgICAgICAgZS5hbmltVHlwZSA/ICh0ID0gZS5hbmltVHlwZSkgOiBlLnJlbmRlcmVyICYmICh0ID0gZS5yZW5kZXJlcik7CiAgICAgICAgICAgICAgICB2YXIgciA9IGdldFJlbmRlcmVyKHQpOwogICAgICAgICAgICAgICAgKHRoaXMucmVuZGVyZXIgPSBuZXcgcih0aGlzLCBlLnJlbmRlcmVyU2V0dGluZ3MpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZWxvYWRlci5zZXRDYWNoZVR5cGUoCiAgICAgICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZGVmcwogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb2plY3RJbnRlcmZhY2UodGhpcy5wcm9qZWN0SW50ZXJmYWNlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYW5pbVR5cGUgPSB0KSwKICAgICAgICAgICAgICAgICAgZS5sb29wID09PSAiIiB8fAogICAgICAgICAgICAgICAgICAgIGUubG9vcCA9PT0gbnVsbCB8fAogICAgICAgICAgICAgICAgICAgIGUubG9vcCA9PT0gdm9pZCAwIHx8CiAgICAgICAgICAgICAgICAgICAgZS5sb29wID09PSAhMAogICAgICAgICAgICAgICAgICAgID8gKHRoaXMubG9vcCA9ICEwKQogICAgICAgICAgICAgICAgICAgIDogZS5sb29wID09PSAhMQogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5sb29wID0gITEpCiAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmxvb3AgPSBwYXJzZUludChlLmxvb3AsIDEwKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmF1dG9wbGF5ID0gImF1dG9wbGF5IiBpbiBlID8gZS5hdXRvcGxheSA6ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubmFtZSA9IGUubmFtZSA/IGUubmFtZSA6ICIiKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXV0b2xvYWRTZWdtZW50cyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICJhdXRvbG9hZFNlZ21lbnRzIgogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgPyBlLmF1dG9sb2FkU2VnbWVudHMKICAgICAgICAgICAgICAgICAgICA6ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXNzZXRzUGF0aCA9IGUuYXNzZXRzUGF0aCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmluaXRpYWxTZWdtZW50ID0gZS5pbml0aWFsU2VnbWVudCksCiAgICAgICAgICAgICAgICAgIGUuYXVkaW9GYWN0b3J5ICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9Db250cm9sbGVyLnNldEF1ZGlvRmFjdG9yeShlLmF1ZGlvRmFjdG9yeSksCiAgICAgICAgICAgICAgICAgIGUuYW5pbWF0aW9uRGF0YQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZXR1cEFuaW1hdGlvbihlLmFuaW1hdGlvbkRhdGEpCiAgICAgICAgICAgICAgICAgICAgOiBlLnBhdGggJiYKICAgICAgICAgICAgICAgICAgICAoZS5wYXRoLmxhc3RJbmRleE9mKCJcXCIpICE9PSAtMQogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5wYXRoID0gZS5wYXRoLnN1YnN0cigKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgZS5wYXRoLmxhc3RJbmRleE9mKCJcXCIpICsgMQogICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMucGF0aCA9IGUucGF0aC5zdWJzdHIoCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGUucGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMQogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maWxlTmFtZSA9IGUucGF0aC5zdWJzdHIoCiAgICAgICAgICAgICAgICAgICAgICAgIGUucGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMQogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maWxlTmFtZSA9IHRoaXMuZmlsZU5hbWUuc3Vic3RyKAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVOYW1lLmxhc3RJbmRleE9mKCIuanNvbiIpCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIGRhdGFNYW5hZ2VyLmxvYWRBbmltYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgIGUucGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdBbmltYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZXR1cEVycm9yCiAgICAgICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUub25TZXR1cEVycm9yID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJkYXRhX2ZhaWxlZCIpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXR1cEFuaW1hdGlvbiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBkYXRhTWFuYWdlci5jb21wbGV0ZUFuaW1hdGlvbihlLCB0aGlzLmNvbmZpZ0FuaW1hdGlvbik7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNldERhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdCAmJiBfdHlwZW9mJDQodCkgIT09ICJvYmplY3QiICYmICh0ID0gSlNPTi5wYXJzZSh0KSk7CiAgICAgICAgICAgICAgICB2YXIgciA9IHsgd3JhcHBlcjogZSwgYW5pbWF0aW9uRGF0YTogdCB9LAogICAgICAgICAgICAgICAgICBuID0gZS5hdHRyaWJ1dGVzOwogICAgICAgICAgICAgICAgKHIucGF0aCA9IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW1hdGlvbi1wYXRoIikKICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltYXRpb24tcGF0aCIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcGF0aCIpCiAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1wYXRoIikudmFsdWUKICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS1wYXRoIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXBhdGgiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgOiAiIiksCiAgICAgICAgICAgICAgICAgIChyLmFuaW1UeXBlID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS10eXBlIikKICAgICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tdHlwZSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS10eXBlIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tdHlwZSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS10eXBlIikKICAgICAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiYm0tdHlwZSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcmVuZGVyZXIiKQogICAgICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcmVuZGVyZXIiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImJtLXJlbmRlcmVyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXJlbmRlcmVyIikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2V0UmVnaXN0ZXJlZFJlbmRlcmVyKCkgfHwgImNhbnZhcyIpOwogICAgICAgICAgICAgICAgdmFyIGkgPSBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltLWxvb3AiKQogICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tbG9vcCIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tbG9vcCIpCiAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1sb29wIikudmFsdWUKICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS1sb29wIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLWxvb3AiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgOiAiIjsKICAgICAgICAgICAgICAgIGkgPT09ICJmYWxzZSIKICAgICAgICAgICAgICAgICAgPyAoci5sb29wID0gITEpCiAgICAgICAgICAgICAgICAgIDogaSA9PT0gInRydWUiCiAgICAgICAgICAgICAgICAgICAgPyAoci5sb29wID0gITApCiAgICAgICAgICAgICAgICAgICAgOiBpICE9PSAiIiAmJiAoci5sb29wID0gcGFyc2VJbnQoaSwgMTApKTsKICAgICAgICAgICAgICAgIHZhciBhID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS1hdXRvcGxheSIpCiAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS1hdXRvcGxheSIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tYXV0b3BsYXkiKQogICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tYXV0b3BsYXkiKS52YWx1ZQogICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImJtLWF1dG9wbGF5IikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLWF1dG9wbGF5IikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgIDogITA7CiAgICAgICAgICAgICAgICAoci5hdXRvcGxheSA9IGEgIT09ICJmYWxzZSIpLAogICAgICAgICAgICAgICAgICAoci5uYW1lID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtbmFtZSIpCiAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1uYW1lIikudmFsdWUKICAgICAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWJtLW5hbWUiKQogICAgICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1uYW1lIikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImJtLW5hbWUiKQogICAgICAgICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJibS1uYW1lIikudmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgOiAiIik7CiAgICAgICAgICAgICAgICB2YXIgbyA9IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltLXByZXJlbmRlciIpLnZhbHVlCiAgICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWJtLXByZXJlbmRlciIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiYm0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXByZXJlbmRlciIpLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICA6ICIiOwogICAgICAgICAgICAgICAgbyA9PT0gImZhbHNlIiAmJiAoci5wcmVyZW5kZXIgPSAhMSksCiAgICAgICAgICAgICAgICAgIHIucGF0aCA/IHRoaXMuc2V0UGFyYW1zKHIpIDogdGhpcy50cmlnZ2VyKCJkZXN0cm95Iik7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmluY2x1ZGVMYXllcnMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZS5vcCA+IHRoaXMuYW5pbWF0aW9uRGF0YS5vcCAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuYW5pbWF0aW9uRGF0YS5vcCA9IGUub3ApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsRnJhbWVzID0gTWF0aC5mbG9vcigKICAgICAgICAgICAgICAgICAgICAgIGUub3AgLSB0aGlzLmFuaW1hdGlvbkRhdGEuaXAKICAgICAgICAgICAgICAgICAgICApKSk7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuYW5pbWF0aW9uRGF0YS5sYXllcnMsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0Lmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSA9IGUubGF5ZXJzLAogICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICBvID0gaS5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKGEgPSAwOyBhIDwgbzsgYSArPSAxKQogICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjspIHsKICAgICAgICAgICAgICAgICAgICBpZiAodFtyXS5pZCA9PT0gaVthXS5pZCkgewogICAgICAgICAgICAgICAgICAgICAgdFtyXSA9IGlbYV07CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgoZS5jaGFycyB8fCBlLmZvbnRzKSAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuYWRkQ2hhcnMoZS5jaGFycyksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuYWRkRm9udHMoCiAgICAgICAgICAgICAgICAgICAgICAgIGUuZm9udHMsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuZ2xvYmFsRGF0YS5kZWZzCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICBlLmFzc2V0cykKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgZm9yIChuID0gZS5hc3NldHMubGVuZ3RoLCByID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuYXNzZXRzLnB1c2goZS5hc3NldHNbcl0pOwogICAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uRGF0YS5fX2NvbXBsZXRlID0gITEpLAogICAgICAgICAgICAgICAgICBkYXRhTWFuYWdlci5jb21wbGV0ZUFuaW1hdGlvbigKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlZ21lbnRDb21wbGV0ZQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5vblNlZ21lbnRDb21wbGV0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEgPSBlOwogICAgICAgICAgICAgICAgdmFyIHQgPSBnZXRFeHByZXNzaW9uc1BsdWdpbigpOwogICAgICAgICAgICAgICAgdCAmJiB0LmluaXRFeHByZXNzaW9ucyh0aGlzKSwgdGhpcy5sb2FkTmV4dFNlZ21lbnQoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUubG9hZE5leHRTZWdtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmFuaW1hdGlvbkRhdGEuc2VnbWVudHM7CiAgICAgICAgICAgICAgICBpZiAoIWUgfHwgZS5sZW5ndGggPT09IDAgfHwgIXRoaXMuYXV0b2xvYWRTZWdtZW50cykgewogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRhdGFfcmVhZHkiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy50aW1lQ29tcGxldGVkID0gdGhpcy50b3RhbEZyYW1lcyk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciB0ID0gZS5zaGlmdCgpOwogICAgICAgICAgICAgICAgdGhpcy50aW1lQ29tcGxldGVkID0gdC50aW1lICogdGhpcy5mcmFtZVJhdGU7CiAgICAgICAgICAgICAgICB2YXIgciA9CiAgICAgICAgICAgICAgICAgIHRoaXMucGF0aCArIHRoaXMuZmlsZU5hbWUgKyAiXyIgKyB0aGlzLnNlZ21lbnRQb3MgKyAiLmpzb24iOwogICAgICAgICAgICAgICAgKHRoaXMuc2VnbWVudFBvcyArPSAxKSwKICAgICAgICAgICAgICAgICAgZGF0YU1hbmFnZXIubG9hZERhdGEoCiAgICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluY2x1ZGVMYXllcnMuYmluZCh0aGlzKSwKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRhdGFfZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmxvYWRTZWdtZW50cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5hbmltYXRpb25EYXRhLnNlZ21lbnRzOwogICAgICAgICAgICAgICAgZSB8fCAodGhpcy50aW1lQ29tcGxldGVkID0gdGhpcy50b3RhbEZyYW1lcyksCiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZE5leHRTZWdtZW50KCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmltYWdlc0xvYWRlZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigibG9hZGVkX2ltYWdlcyIpLCB0aGlzLmNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnByZWxvYWRJbWFnZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmltYWdlUHJlbG9hZGVyLnNldEFzc2V0c1BhdGgodGhpcy5hc3NldHNQYXRoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZWxvYWRlci5zZXRQYXRoKHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmVsb2FkZXIubG9hZEFzc2V0cygKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuYXNzZXRzLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzTG9hZGVkLmJpbmQodGhpcykKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuY29uZmlnQW5pbWF0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVyKQogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGlvbkRhdGEgPSBlKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNlZ21lbnQKICAgICAgICAgICAgICAgICAgICAgICAgPyAoKHRoaXMudG90YWxGcmFtZXMgPSBNYXRoLmZsb29yKAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNlZ21lbnRbMV0gLSB0aGlzLmluaXRpYWxTZWdtZW50WzBdCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSBNYXRoLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsU2VnbWVudFswXQogICAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy50b3RhbEZyYW1lcyA9IE1hdGguZmxvb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLm9wIC0gdGhpcy5hbmltYXRpb25EYXRhLmlwCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSBNYXRoLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLmlwCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5jb25maWdBbmltYXRpb24oZSksCiAgICAgICAgICAgICAgICAgICAgICBlLmFzc2V0cyB8fCAoZS5hc3NldHMgPSBbXSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5hc3NldHMgPSB0aGlzLmFuaW1hdGlvbkRhdGEuYXNzZXRzKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lUmF0ZSA9IHRoaXMuYW5pbWF0aW9uRGF0YS5mciksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZU11bHQgPSB0aGlzLmFuaW1hdGlvbkRhdGEuZnIgLyAxZTMpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZWFyY2hFeHRyYUNvbXBvc2l0aW9ucyhlLmFzc2V0cyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5tYXJrZXJzID0gbWFya2VyUGFyc2VyKGUubWFya2VycyB8fCBbXSkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJjb25maWdfcmVhZHkiKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlbG9hZEltYWdlcygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkU2VnbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYUZyYW1lTW9kaWZpZXIoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FpdEZvckZvbnRzTG9hZGVkKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUGF1c2VkICYmIHRoaXMuYXVkaW9Db250cm9sbGVyLnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJDb25maWdFcnJvcih0KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS53YWl0Rm9yRm9udHNMb2FkZWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuaXNMb2FkZWQKICAgICAgICAgICAgICAgICAgICA/IHRoaXMuY2hlY2tMb2FkZWQoKQogICAgICAgICAgICAgICAgICAgIDogc2V0VGltZW91dCh0aGlzLndhaXRGb3JGb250c0xvYWRlZC5iaW5kKHRoaXMpLCAyMCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5jaGVja0xvYWRlZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgIXRoaXMuaXNMb2FkZWQgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmlzTG9hZGVkICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmltYWdlUHJlbG9hZGVyLmxvYWRlZEltYWdlcygpIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXJlclR5cGUgIT09ICJjYW52YXMiKSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUHJlbG9hZGVyLmxvYWRlZEZvb3RhZ2VzKCkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gITA7CiAgICAgICAgICAgICAgICAgIHZhciBlID0gZ2V0RXhwcmVzc2lvbnNQbHVnaW4oKTsKICAgICAgICAgICAgICAgICAgZSAmJiBlLmluaXRFeHByZXNzaW9ucyh0aGlzKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmluaXRJdGVtcygpLAogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoCiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiRE9NTG9hZGVkIik7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmdvdG9GcmFtZSgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b3BsYXkgJiYgdGhpcy5wbGF5KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnJlc2l6ZSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IHR5cGVvZiBlID09ICJudW1iZXIiID8gZSA6IHZvaWQgMCwKICAgICAgICAgICAgICAgICAgbiA9IHR5cGVvZiB0ID09ICJudW1iZXIiID8gdCA6IHZvaWQgMDsKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIudXBkYXRlQ29udGFpbmVyU2l6ZShyLCBuKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0U3ViZnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5pc1N1YmZyYW1lRW5hYmxlZCA9ICEhZTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ290b0ZyYW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudEZyYW1lID0gdGhpcy5pc1N1YmZyYW1lRW5hYmxlZAogICAgICAgICAgICAgICAgICA/IHRoaXMuY3VycmVudFJhd0ZyYW1lCiAgICAgICAgICAgICAgICAgIDogfn50aGlzLmN1cnJlbnRSYXdGcmFtZSksCiAgICAgICAgICAgICAgICAgIHRoaXMudGltZUNvbXBsZXRlZCAhPT0gdGhpcy50b3RhbEZyYW1lcyAmJgogICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA+IHRoaXMudGltZUNvbXBsZXRlZCAmJgogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50RnJhbWUgPSB0aGlzLnRpbWVDb21wbGV0ZWQpLAogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImVudGVyRnJhbWUiKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGcmFtZSgpLAogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRyYXduRnJhbWUiKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLmlzTG9hZGVkID09PSAhMSB8fCAhdGhpcy5yZW5kZXJlcikpCiAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc1BsdWdpbiAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc1BsdWdpbi5yZXNldEZyYW1lKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbmRlckZyYW1lKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSArIHRoaXMuZmlyc3RGcmFtZQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclJlbmRlckZyYW1lRXJyb3IoZSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLmlzUGF1c2VkID09PSAhMCAmJgogICAgICAgICAgICAgICAgICAgICgodGhpcy5pc1BhdXNlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiX3BsYXkiKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9Db250cm9sbGVyLnJlc3VtZSgpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5faWRsZSAmJgogICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLl9pZGxlID0gITEpLCB0aGlzLnRyaWdnZXIoIl9hY3RpdmUiKSkpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucGF1c2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgKGUgJiYgdGhpcy5uYW1lICE9PSBlKSB8fAogICAgICAgICAgICAgICAgICAodGhpcy5pc1BhdXNlZCA9PT0gITEgJiYKICAgICAgICAgICAgICAgICAgICAoKHRoaXMuaXNQYXVzZWQgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoIl9wYXVzZSIpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lkbGUgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoIl9pZGxlIiksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvQ29udHJvbGxlci5wYXVzZSgpKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnRvZ2dsZVBhdXNlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXNQYXVzZWQgPT09ICEwID8gdGhpcy5wbGF5KCkgOiB0aGlzLnBhdXNlKCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwKICAgICAgICAgICAgICAgICAgKHRoaXMucGF1c2UoKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wbGF5Q291bnQgPSAwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fY29tcGxldGVkTG9vcCA9ICExKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKDApKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0TWFya2VyRGF0YSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciB0LCByID0gMDsgciA8IHRoaXMubWFya2Vycy5sZW5ndGg7IHIgKz0gMSkKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgodCA9IHRoaXMubWFya2Vyc1tyXSksIHQucGF5bG9hZCAmJiB0LnBheWxvYWQubmFtZSA9PT0gZSkKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0OwogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdvVG9BbmRTdG9wID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgICAgIGlmICghKHIgJiYgdGhpcy5uYW1lICE9PSByKSkgewogICAgICAgICAgICAgICAgICB2YXIgbiA9IE51bWJlcihlKTsKICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKG4pKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0aGlzLmdldE1hcmtlckRhdGEoZSk7CiAgICAgICAgICAgICAgICAgICAgaSAmJiB0aGlzLmdvVG9BbmRTdG9wKGkudGltZSwgITApOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUoZSkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZShlICogdGhpcy5mcmFtZU1vZGlmaWVyKTsKICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5nb1RvQW5kUGxheSA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgICAgICAgICBpZiAoIShyICYmIHRoaXMubmFtZSAhPT0gcikpIHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSBOdW1iZXIoZSk7CiAgICAgICAgICAgICAgICAgIGlmIChpc05hTihuKSkgewogICAgICAgICAgICAgICAgICAgIHZhciBpID0gdGhpcy5nZXRNYXJrZXJEYXRhKGUpOwogICAgICAgICAgICAgICAgICAgIGkgJiYKICAgICAgICAgICAgICAgICAgICAgIChpLmR1cmF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5wbGF5U2VnbWVudHMoW2kudGltZSwgaS50aW1lICsgaS5kdXJhdGlvbl0sICEwKQogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZ29Ub0FuZFN0b3AoaS50aW1lLCAhMCkpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5nb1RvQW5kU3RvcChuLCB0LCByKTsKICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmFkdmFuY2VUaW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGlmICghKHRoaXMuaXNQYXVzZWQgPT09ICEwIHx8IHRoaXMuaXNMb2FkZWQgPT09ICExKSkgewogICAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuY3VycmVudFJhd0ZyYW1lICsgZSAqIHRoaXMuZnJhbWVNb2RpZmllciwKICAgICAgICAgICAgICAgICAgICByID0gITE7CiAgICAgICAgICAgICAgICAgIHQgPj0gdGhpcy50b3RhbEZyYW1lcyAtIDEgJiYgdGhpcy5mcmFtZU1vZGlmaWVyID4gMAogICAgICAgICAgICAgICAgICAgID8gIXRoaXMubG9vcCB8fCB0aGlzLnBsYXlDb3VudCA9PT0gdGhpcy5sb29wCiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuY2hlY2tTZWdtZW50cygKICAgICAgICAgICAgICAgICAgICAgICAgdCA+IHRoaXMudG90YWxGcmFtZXMgPyB0ICUgdGhpcy50b3RhbEZyYW1lcyA6IDAKICAgICAgICAgICAgICAgICAgICAgICkgfHwgKChyID0gITApLCAodCA9IHRoaXMudG90YWxGcmFtZXMgLSAxKSkKICAgICAgICAgICAgICAgICAgICAgIDogdCA+PSB0aGlzLnRvdGFsRnJhbWVzCiAgICAgICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLnBsYXlDb3VudCArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2VnbWVudHModCAlIHRoaXMudG90YWxGcmFtZXMpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUodCAlIHRoaXMudG90YWxGcmFtZXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NvbXBsZXRlZExvb3AgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImxvb3BDb21wbGV0ZSIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKHQpCiAgICAgICAgICAgICAgICAgICAgOiB0IDwgMAogICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNoZWNrU2VnbWVudHModCAlIHRoaXMudG90YWxGcmFtZXMpIHx8CiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sb29wICYmICEodGhpcy5wbGF5Q291bnQtLSA8PSAwICYmIHRoaXMubG9vcCAhPT0gITApCiAgICAgICAgICAgICAgICAgICAgICAgID8gKHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbEZyYW1lcyArICh0ICUgdGhpcy50b3RhbEZyYW1lcykKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wbGV0ZWRMb29wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudHJpZ2dlcigibG9vcENvbXBsZXRlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMuX2NvbXBsZXRlZExvb3AgPSAhMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKChyID0gITApLCAodCA9IDApKSkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSh0KSwKICAgICAgICAgICAgICAgICAgICByICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUodCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdXNlKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImNvbXBsZXRlIikpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5hZGp1c3RTZWdtZW50ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICh0aGlzLnBsYXlDb3VudCA9IDApLAogICAgICAgICAgICAgICAgICBlWzFdIDwgZVswXQogICAgICAgICAgICAgICAgICAgID8gKHRoaXMuZnJhbWVNb2RpZmllciA+IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnBsYXlTcGVlZCA8IDAKICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNldFNwZWVkKC10aGlzLnBsYXlTcGVlZCkKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNldERpcmVjdGlvbigtMSkpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudG90YWxGcmFtZXMgPSBlWzBdIC0gZVsxXSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy50aW1lQ29tcGxldGVkID0gdGhpcy50b3RhbEZyYW1lcyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maXJzdEZyYW1lID0gZVsxXSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsRnJhbWVzIC0gMC4wMDEgLSB0CiAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgIDogZVsxXSA+IGVbMF0gJiYKICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZU1vZGlmaWVyIDwgMCAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGxheVNwZWVkIDwgMAogICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2V0U3BlZWQoLXRoaXMucGxheVNwZWVkKQogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc2V0RGlyZWN0aW9uKDEpKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnRvdGFsRnJhbWVzID0gZVsxXSAtIGVbMF0pLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGltZUNvbXBsZXRlZCA9IHRoaXMudG90YWxGcmFtZXMpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmlyc3RGcmFtZSA9IGVbMF0pLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSgwLjAwMSArIHQpKSwKICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJzZWdtZW50U3RhcnQiKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0U2VnbWVudCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IC0xOwogICAgICAgICAgICAgICAgdGhpcy5pc1BhdXNlZCAmJgogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50UmF3RnJhbWUgKyB0aGlzLmZpcnN0RnJhbWUgPCBlCiAgICAgICAgICAgICAgICAgICAgPyAociA9IGUpCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmN1cnJlbnRSYXdGcmFtZSArIHRoaXMuZmlyc3RGcmFtZSA+IHQgJiYKICAgICAgICAgICAgICAgICAgICAociA9IHQgLSBlKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSBlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudG90YWxGcmFtZXMgPSB0IC0gZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRpbWVDb21wbGV0ZWQgPSB0aGlzLnRvdGFsRnJhbWVzKSwKICAgICAgICAgICAgICAgICAgciAhPT0gLTEgJiYgdGhpcy5nb1RvQW5kU3RvcChyLCAhMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnBsYXlTZWdtZW50cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICh0ICYmICh0aGlzLnNlZ21lbnRzLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgIF90eXBlb2YkNChlWzBdKSA9PT0gIm9iamVjdCIpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB0aGlzLnNlZ21lbnRzLnB1c2goZVtyXSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5zZWdtZW50cy5wdXNoKGUpOwogICAgICAgICAgICAgICAgdGhpcy5zZWdtZW50cy5sZW5ndGggJiYKICAgICAgICAgICAgICAgICAgdCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmFkanVzdFNlZ21lbnQodGhpcy5zZWdtZW50cy5zaGlmdCgpLCAwKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pc1BhdXNlZCAmJiB0aGlzLnBsYXkoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucmVzZXRTZWdtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5zZWdtZW50cy5sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZWdtZW50cy5wdXNoKFsKICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuaXAsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLm9wLAogICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgZSAmJiB0aGlzLmNoZWNrU2VnbWVudHMoMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmNoZWNrU2VnbWVudHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VnbWVudHMubGVuZ3RoCiAgICAgICAgICAgICAgICAgID8gKHRoaXMuYWRqdXN0U2VnbWVudCh0aGlzLnNlZ21lbnRzLnNoaWZ0KCksIGUpLCAhMCkKICAgICAgICAgICAgICAgICAgOiAhMTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8CiAgICAgICAgICAgICAgICAgICF0aGlzLnJlbmRlcmVyIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyLmRlc3Ryb3koKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUHJlbG9hZGVyLmRlc3Ryb3koKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRlc3Ryb3kiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fY2JzID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub25FbnRlckZyYW1lID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub25Mb29wQ29tcGxldGUgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vbkNvbXBsZXRlID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub25TZWdtZW50U3RhcnQgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vbkRlc3Ryb3kgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlciA9IG51bGwpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmV4cHJlc3Npb25zUGx1Z2luID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaW1hZ2VQcmVsb2FkZXIgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wcm9qZWN0SW50ZXJmYWNlID0gbnVsbCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50UmF3RnJhbWUgPSBlKSwgdGhpcy5nb3RvRnJhbWUoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0U3BlZWQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgKHRoaXMucGxheVNwZWVkID0gZSksIHRoaXMudXBkYUZyYW1lTW9kaWZpZXIoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0RGlyZWN0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICh0aGlzLnBsYXlEaXJlY3Rpb24gPSBlIDwgMCA/IC0xIDogMSksIHRoaXMudXBkYUZyYW1lTW9kaWZpZXIoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0TG9vcCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLmxvb3AgPSBlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRWb2x1bWUgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgKHQgJiYgdGhpcy5uYW1lICE9PSB0KSB8fCB0aGlzLmF1ZGlvQ29udHJvbGxlci5zZXRWb2x1bWUoZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdldFZvbHVtZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmF1ZGlvQ29udHJvbGxlci5nZXRWb2x1bWUoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUubXV0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8IHRoaXMuYXVkaW9Db250cm9sbGVyLm11dGUoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUudW5tdXRlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwgdGhpcy5hdWRpb0NvbnRyb2xsZXIudW5tdXRlKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnVwZGFGcmFtZU1vZGlmaWVyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVNb2RpZmllciA9CiAgICAgICAgICAgICAgICAgIHRoaXMuZnJhbWVNdWx0ICogdGhpcy5wbGF5U3BlZWQgKiB0aGlzLnBsYXlEaXJlY3Rpb24pLAogICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvQ29udHJvbGxlci5zZXRSYXRlKAogICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVNwZWVkICogdGhpcy5wbGF5RGlyZWN0aW9uCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdldFBhdGggPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5nZXRBc3NldHNQYXRoID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gIiI7CiAgICAgICAgICAgICAgICBpZiAoZS5lKSB0ID0gZS5wOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5hc3NldHNQYXRoKSB7CiAgICAgICAgICAgICAgICAgIHZhciByID0gZS5wOwogICAgICAgICAgICAgICAgICByLmluZGV4T2YoImltYWdlcy8iKSAhPT0gLTEgJiYgKHIgPSByLnNwbGl0KCIvIilbMV0pLAogICAgICAgICAgICAgICAgICAgICh0ID0gdGhpcy5hc3NldHNQYXRoICsgcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgKHQgPSB0aGlzLnBhdGgpLCAodCArPSBlLnUgPyBlLnUgOiAiIiksICh0ICs9IGUucCk7CiAgICAgICAgICAgICAgICByZXR1cm4gdDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0QXNzZXREYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy5hc3NldHMubGVuZ3RoOyB0IDwgcjspIHsKICAgICAgICAgICAgICAgICAgaWYgKGUgPT09IHRoaXMuYXNzZXRzW3RdLmlkKSByZXR1cm4gdGhpcy5hc3NldHNbdF07CiAgICAgICAgICAgICAgICAgIHQgKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNob3cgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3coKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0RHVyYXRpb24gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGUgPyB0aGlzLnRvdGFsRnJhbWVzIDogdGhpcy50b3RhbEZyYW1lcyAvIHRoaXMuZnJhbWVSYXRlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS51cGRhdGVEb2N1bWVudERhdGEgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLnJlbmRlcmVyLmdldEVsZW1lbnRCeVBhdGgoZSk7CiAgICAgICAgICAgICAgICAgIG4udXBkYXRlRG9jdW1lbnREYXRhKHQsIHIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCB7IH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2JzICYmIHRoaXMuX2Nic1tlXSkKICAgICAgICAgICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW50ZXJGcmFtZSI6CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgKICAgICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJNRW50ZXJGcmFtZUV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbEZyYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lTW9kaWZpZXIKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImRyYXduRnJhbWUiOgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZHJhd25GcmFtZUV2ZW50LmN1cnJlbnRUaW1lID0gdGhpcy5jdXJyZW50RnJhbWUpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5kcmF3bkZyYW1lRXZlbnQudG90YWxUaW1lID0gdGhpcy50b3RhbEZyYW1lcyksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmRyYXduRnJhbWVFdmVudC5kaXJlY3Rpb24gPSB0aGlzLmZyYW1lTW9kaWZpZXIpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChlLCB0aGlzLmRyYXduRnJhbWVFdmVudCk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJsb29wQ29tcGxldGUiOgogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCTUNvbXBsZXRlTG9vcEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb29wLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGxheUNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJhbWVNdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjb21wbGV0ZSI6CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgKICAgICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJNQ29tcGxldGVFdmVudChlLCB0aGlzLmZyYW1lTXVsdCkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJzZWdtZW50U3RhcnQiOgogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCTVNlZ21lbnRTdGFydEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maXJzdEZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWxGcmFtZXMKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImRlc3Ryb3kiOgogICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoZSwgbmV3IEJNRGVzdHJveUV2ZW50KGUsIHRoaXMpKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChlKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZSA9PT0gImVudGVyRnJhbWUiICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25FbnRlckZyYW1lICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25FbnRlckZyYW1lLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICBuZXcgQk1FbnRlckZyYW1lRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsRnJhbWVzLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZU11bHQKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGUgPT09ICJsb29wQ29tcGxldGUiICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25Mb29wQ29tcGxldGUgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5vbkxvb3BDb21wbGV0ZS5jYWxsKAogICAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgICAgbmV3IEJNQ29tcGxldGVMb29wRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb29wLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lTXVsdAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgZSA9PT0gImNvbXBsZXRlIiAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uQ29tcGxldGUgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5vbkNvbXBsZXRlLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICBuZXcgQk1Db21wbGV0ZUV2ZW50KGUsIHRoaXMuZnJhbWVNdWx0KQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBlID09PSAic2VnbWVudFN0YXJ0IiAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uU2VnbWVudFN0YXJ0ICYmCiAgICAgICAgICAgICAgICAgIHRoaXMub25TZWdtZW50U3RhcnQuY2FsbCgKICAgICAgICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgICAgICAgIG5ldyBCTVNlZ21lbnRTdGFydEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyc3RGcmFtZSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWxGcmFtZXMKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGUgPT09ICJkZXN0cm95IiAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uRGVzdHJveSAmJgogICAgICAgICAgICAgICAgICB0aGlzLm9uRGVzdHJveS5jYWxsKHRoaXMsIG5ldyBCTURlc3Ryb3lFdmVudChlLCB0aGlzKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnRyaWdnZXJSZW5kZXJGcmFtZUVycm9yID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gbmV3IEJNUmVuZGVyRnJhbWVFcnJvckV2ZW50KGUsIHRoaXMuY3VycmVudEZyYW1lKTsKICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCJlcnJvciIsIHQpLAogICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IgJiYgdGhpcy5vbkVycm9yLmNhbGwodGhpcywgdCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnRyaWdnZXJDb25maWdFcnJvciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IG5ldyBCTUNvbmZpZ0Vycm9yRXZlbnQoZSwgdGhpcy5jdXJyZW50RnJhbWUpOwogICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoImVycm9yIiwgdCksCiAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvciAmJiB0aGlzLm9uRXJyb3IuY2FsbCh0aGlzLCB0KTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGFuaW1hdGlvbk1hbmFnZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0ge30sCiAgICAgICAgICAgICAgICB0ID0gW10sCiAgICAgICAgICAgICAgICByID0gMCwKICAgICAgICAgICAgICAgIG4gPSAwLAogICAgICAgICAgICAgICAgaSA9IDAsCiAgICAgICAgICAgICAgICBhID0gITAsCiAgICAgICAgICAgICAgICBvID0gITE7CiAgICAgICAgICAgICAgZnVuY3Rpb24gbChCKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciB6ID0gMCwgTiA9IEIudGFyZ2V0OyB6IDwgbjspCiAgICAgICAgICAgICAgICAgIHRbel0uYW5pbWF0aW9uID09PSBOICYmCiAgICAgICAgICAgICAgICAgICAgKHQuc3BsaWNlKHosIDEpLCAoeiAtPSAxKSwgKG4gLT0gMSksIE4uaXNQYXVzZWQgfHwgRSgpKSwKICAgICAgICAgICAgICAgICAgICAoeiArPSAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYyhCLCB6KSB7CiAgICAgICAgICAgICAgICBpZiAoIUIpIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgZm9yICh2YXIgTiA9IDA7IE4gPCBuOykgewogICAgICAgICAgICAgICAgICBpZiAodFtOXS5lbGVtID09PSBCICYmIHRbTl0uZWxlbSAhPT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdFtOXS5hbmltYXRpb247CiAgICAgICAgICAgICAgICAgIE4gKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBWID0gbmV3IEFuaW1hdGlvbkl0ZW0oKTsKICAgICAgICAgICAgICAgIHJldHVybiBiKFYsIEIpLCBWLnNldERhdGEoQiwgeiksIFY7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHUoKSB7CiAgICAgICAgICAgICAgICB2YXIgQiwKICAgICAgICAgICAgICAgICAgeiA9IHQubGVuZ3RoLAogICAgICAgICAgICAgICAgICBOID0gW107CiAgICAgICAgICAgICAgICBmb3IgKEIgPSAwOyBCIDwgejsgQiArPSAxKSBOLnB1c2godFtCXS5hbmltYXRpb24pOwogICAgICAgICAgICAgICAgcmV0dXJuIE47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGQoKSB7CiAgICAgICAgICAgICAgICAoaSArPSAxKSwgcSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBFKCkgewogICAgICAgICAgICAgICAgaSAtPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBiKEIsIHopIHsKICAgICAgICAgICAgICAgIEIuYWRkRXZlbnRMaXN0ZW5lcigiZGVzdHJveSIsIGwpLAogICAgICAgICAgICAgICAgICBCLmFkZEV2ZW50TGlzdGVuZXIoIl9hY3RpdmUiLCBkKSwKICAgICAgICAgICAgICAgICAgQi5hZGRFdmVudExpc3RlbmVyKCJfaWRsZSIsIEUpLAogICAgICAgICAgICAgICAgICB0LnB1c2goeyBlbGVtOiB6LCBhbmltYXRpb246IEIgfSksCiAgICAgICAgICAgICAgICAgIChuICs9IDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBQKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6ID0gbmV3IEFuaW1hdGlvbkl0ZW0oKTsKICAgICAgICAgICAgICAgIHJldHVybiBiKHosIG51bGwpLCB6LnNldFBhcmFtcyhCKSwgejsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gUihCLCB6KSB7CiAgICAgICAgICAgICAgICB2YXIgTjsKICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBuOyBOICs9IDEpIHRbTl0uYW5pbWF0aW9uLnNldFNwZWVkKEIsIHopOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBUKEIsIHopIHsKICAgICAgICAgICAgICAgIHZhciBOOwogICAgICAgICAgICAgICAgZm9yIChOID0gMDsgTiA8IG47IE4gKz0gMSkgdFtOXS5hbmltYXRpb24uc2V0RGlyZWN0aW9uKEIsIHopOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBNKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6OwogICAgICAgICAgICAgICAgZm9yICh6ID0gMDsgeiA8IG47IHogKz0gMSkgdFt6XS5hbmltYXRpb24ucGxheShCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24geChCKSB7CiAgICAgICAgICAgICAgICB2YXIgeiA9IEIgLSByLAogICAgICAgICAgICAgICAgICBOOwogICAgICAgICAgICAgICAgZm9yIChOID0gMDsgTiA8IG47IE4gKz0gMSkgdFtOXS5hbmltYXRpb24uYWR2YW5jZVRpbWUoeik7CiAgICAgICAgICAgICAgICAociA9IEIpLCBpICYmICFvID8gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh4KSA6IChhID0gITApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBrKEIpIHsKICAgICAgICAgICAgICAgIChyID0gQiksIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoeCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFMoQikgewogICAgICAgICAgICAgICAgdmFyIHo7CiAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgbjsgeiArPSAxKSB0W3pdLmFuaW1hdGlvbi5wYXVzZShCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gQShCLCB6LCBOKSB7CiAgICAgICAgICAgICAgICB2YXIgVjsKICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCBuOyBWICs9IDEpCiAgICAgICAgICAgICAgICAgIHRbVl0uYW5pbWF0aW9uLmdvVG9BbmRTdG9wKEIsIHosIE4pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBPKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6OwogICAgICAgICAgICAgICAgZm9yICh6ID0gMDsgeiA8IG47IHogKz0gMSkgdFt6XS5hbmltYXRpb24uc3RvcChCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gRihCKSB7CiAgICAgICAgICAgICAgICB2YXIgejsKICAgICAgICAgICAgICAgIGZvciAoeiA9IDA7IHogPCBuOyB6ICs9IDEpIHRbel0uYW5pbWF0aW9uLnRvZ2dsZVBhdXNlKEIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBEKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6OwogICAgICAgICAgICAgICAgZm9yICh6ID0gbiAtIDE7IHogPj0gMDsgeiAtPSAxKSB0W3pdLmFuaW1hdGlvbi5kZXN0cm95KEIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBIKEIsIHosIE4pIHsKICAgICAgICAgICAgICAgIHZhciBWID0gW10uY29uY2F0KAogICAgICAgICAgICAgICAgICBbXS5zbGljZS5jYWxsKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxvdHRpZSIpKSwKICAgICAgICAgICAgICAgICAgW10uc2xpY2UuY2FsbCgKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJib2R5bW92aW4iKQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgICBZID0gVi5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKFEgPSAwOyBRIDwgWTsgUSArPSAxKQogICAgICAgICAgICAgICAgICBOICYmIFZbUV0uc2V0QXR0cmlidXRlKCJkYXRhLWJtLXR5cGUiLCBOKSwgYyhWW1FdLCBCKTsKICAgICAgICAgICAgICAgIGlmICh6ICYmIFkgPT09IDApIHsKICAgICAgICAgICAgICAgICAgTiB8fCAoTiA9ICJzdmciKTsKICAgICAgICAgICAgICAgICAgdmFyIGhlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTsKICAgICAgICAgICAgICAgICAgaGUuaW5uZXJUZXh0ID0gIiI7CiAgICAgICAgICAgICAgICAgIHZhciB5ZSA9IGNyZWF0ZVRhZygiZGl2Iik7CiAgICAgICAgICAgICAgICAgICh5ZS5zdHlsZS53aWR0aCA9ICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgKHllLnN0eWxlLmhlaWdodCA9ICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgeWUuc2V0QXR0cmlidXRlKCJkYXRhLWJtLXR5cGUiLCBOKSwKICAgICAgICAgICAgICAgICAgICBoZS5hcHBlbmRDaGlsZCh5ZSksCiAgICAgICAgICAgICAgICAgICAgYyh5ZSwgQik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uICQoKSB7CiAgICAgICAgICAgICAgICB2YXIgQjsKICAgICAgICAgICAgICAgIGZvciAoQiA9IDA7IEIgPCBuOyBCICs9IDEpIHRbQl0uYW5pbWF0aW9uLnJlc2l6ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBxKCkgewogICAgICAgICAgICAgICAgIW8gJiYgaSAmJiBhICYmICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGspLCAoYSA9ICExKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEooKSB7CiAgICAgICAgICAgICAgICBvID0gITA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEsoKSB7CiAgICAgICAgICAgICAgICAobyA9ICExKSwgcSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBlZShCLCB6KSB7CiAgICAgICAgICAgICAgICB2YXIgTjsKICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBuOyBOICs9IDEpIHRbTl0uYW5pbWF0aW9uLnNldFZvbHVtZShCLCB6KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbGUoQikgewogICAgICAgICAgICAgICAgdmFyIHo7CiAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgbjsgeiArPSAxKSB0W3pdLmFuaW1hdGlvbi5tdXRlKEIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiByZShCKSB7CiAgICAgICAgICAgICAgICB2YXIgejsKICAgICAgICAgICAgICAgIGZvciAoeiA9IDA7IHogPCBuOyB6ICs9IDEpIHRbel0uYW5pbWF0aW9uLnVubXV0ZShCKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChlLnJlZ2lzdGVyQW5pbWF0aW9uID0gYyksCiAgICAgICAgICAgICAgICAoZS5sb2FkQW5pbWF0aW9uID0gUCksCiAgICAgICAgICAgICAgICAoZS5zZXRTcGVlZCA9IFIpLAogICAgICAgICAgICAgICAgKGUuc2V0RGlyZWN0aW9uID0gVCksCiAgICAgICAgICAgICAgICAoZS5wbGF5ID0gTSksCiAgICAgICAgICAgICAgICAoZS5wYXVzZSA9IFMpLAogICAgICAgICAgICAgICAgKGUuc3RvcCA9IE8pLAogICAgICAgICAgICAgICAgKGUudG9nZ2xlUGF1c2UgPSBGKSwKICAgICAgICAgICAgICAgIChlLnNlYXJjaEFuaW1hdGlvbnMgPSBIKSwKICAgICAgICAgICAgICAgIChlLnJlc2l6ZSA9ICQpLAogICAgICAgICAgICAgICAgKGUuZ29Ub0FuZFN0b3AgPSBBKSwKICAgICAgICAgICAgICAgIChlLmRlc3Ryb3kgPSBEKSwKICAgICAgICAgICAgICAgIChlLmZyZWV6ZSA9IEopLAogICAgICAgICAgICAgICAgKGUudW5mcmVlemUgPSBLKSwKICAgICAgICAgICAgICAgIChlLnNldFZvbHVtZSA9IGVlKSwKICAgICAgICAgICAgICAgIChlLm11dGUgPSBsZSksCiAgICAgICAgICAgICAgICAoZS51bm11dGUgPSByZSksCiAgICAgICAgICAgICAgICAoZS5nZXRSZWdpc3RlcmVkQW5pbWF0aW9ucyA9IHUpLAogICAgICAgICAgICAgICAgZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgQmV6aWVyRmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IHt9OwogICAgICAgICAgICAgICAgZS5nZXRCZXppZXJFYXNpbmcgPSByOwogICAgICAgICAgICAgICAgdmFyIHQgPSB7fTsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHIoaywgUywgQSwgTywgRikgewogICAgICAgICAgICAgICAgICB2YXIgRCA9CiAgICAgICAgICAgICAgICAgICAgRiB8fAogICAgICAgICAgICAgICAgICAgICgiYmV6XyIgKyBrICsgIl8iICsgUyArICJfIiArIEEgKyAiXyIgKyBPKS5yZXBsYWNlKAogICAgICAgICAgICAgICAgICAgICAgL1wuL2csCiAgICAgICAgICAgICAgICAgICAgICAicCIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBpZiAodFtEXSkgcmV0dXJuIHRbRF07CiAgICAgICAgICAgICAgICAgIHZhciBIID0gbmV3IHgoW2ssIFMsIEEsIE9dKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICh0W0RdID0gSCksIEg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgbiA9IDQsCiAgICAgICAgICAgICAgICAgIGkgPSAwLjAwMSwKICAgICAgICAgICAgICAgICAgYSA9IDFlLTcsCiAgICAgICAgICAgICAgICAgIG8gPSAxMCwKICAgICAgICAgICAgICAgICAgbCA9IDExLAogICAgICAgICAgICAgICAgICBjID0gMSAvIChsIC0gMSksCiAgICAgICAgICAgICAgICAgIHUgPSB0eXBlb2YgRmxvYXQzMkFycmF5ID09ICJmdW5jdGlvbiI7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBkKGssIFMpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIDEgLSAzICogUyArIDMgKiBrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gRShrLCBTKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAzICogUyAtIDYgKiBrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYihrKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAzICogazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFAoaywgUywgQSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gKChkKFMsIEEpICogayArIEUoUywgQSkpICogayArIGIoUykpICogazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFIoaywgUywgQSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gMyAqIGQoUywgQSkgKiBrICogayArIDIgKiBFKFMsIEEpICogayArIGIoUyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBUKGssIFMsIEEsIE8sIEYpIHsKICAgICAgICAgICAgICAgICAgdmFyIEQsCiAgICAgICAgICAgICAgICAgICAgSCwKICAgICAgICAgICAgICAgICAgICAkID0gMDsKICAgICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICAoSCA9IFMgKyAoQSAtIFMpIC8gMiksCiAgICAgICAgICAgICAgICAgICAgICAoRCA9IFAoSCwgTywgRikgLSBrKSwKICAgICAgICAgICAgICAgICAgICAgIEQgPiAwID8gKEEgPSBIKSA6IChTID0gSCk7CiAgICAgICAgICAgICAgICAgIHdoaWxlIChNYXRoLmFicyhEKSA+IGEgJiYgKyskIDwgbyk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBIOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gTShrLCBTLCBBLCBPKSB7CiAgICAgICAgICAgICAgICAgIGZvciAodmFyIEYgPSAwOyBGIDwgbjsgKytGKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIEQgPSBSKFMsIEEsIE8pOwogICAgICAgICAgICAgICAgICAgIGlmIChEID09PSAwKSByZXR1cm4gUzsKICAgICAgICAgICAgICAgICAgICB2YXIgSCA9IFAoUywgQSwgTykgLSBrOwogICAgICAgICAgICAgICAgICAgIFMgLT0gSCAvIEQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIFM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB4KGspIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuX3AgPSBrKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fbVNhbXBsZVZhbHVlcyA9IHUKICAgICAgICAgICAgICAgICAgICAgID8gbmV3IEZsb2F0MzJBcnJheShsKQogICAgICAgICAgICAgICAgICAgICAgOiBuZXcgQXJyYXkobCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9wcmVjb21wdXRlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5nZXQgPSB0aGlzLmdldC5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICh4LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uIChTKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IHRoaXMuX3BbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE8gPSB0aGlzLl9wWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5fcFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgRCA9IHRoaXMuX3BbM107CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVjb21wdXRlZCB8fCB0aGlzLl9wcmVjb21wdXRlKCksCiAgICAgICAgICAgICAgICAgICAgICAgIEEgPT09IE8gJiYgRiA9PT0gRAogICAgICAgICAgICAgICAgICAgICAgICAgID8gUwogICAgICAgICAgICAgICAgICAgICAgICAgIDogUyA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFMgPT09IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUCh0aGlzLl9nZXRURm9yWChTKSwgTywgRCkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBfcHJlY29tcHV0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLl9wWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBBID0gdGhpcy5fcFsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgTyA9IHRoaXMuX3BbMl0sCiAgICAgICAgICAgICAgICAgICAgICAgIEYgPSB0aGlzLl9wWzNdOwogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX3ByZWNvbXB1dGVkID0gITApLAogICAgICAgICAgICAgICAgICAgICAgICAoUyAhPT0gQSB8fCBPICE9PSBGKSAmJiB0aGlzLl9jYWxjU2FtcGxlVmFsdWVzKCk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBfY2FsY1NhbXBsZVZhbHVlczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLl9wWzBdLCBBID0gdGhpcy5fcFsyXSwgTyA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIE8gPCBsOwogICAgICAgICAgICAgICAgICAgICAgICArK08KICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbVNhbXBsZVZhbHVlc1tPXSA9IFAoTyAqIGMsIFMsIEEpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgX2dldFRGb3JYOiBmdW5jdGlvbiAoUykgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEEgPSB0aGlzLl9wWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBPID0gdGhpcy5fcFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgRiA9IHRoaXMuX21TYW1wbGVWYWx1ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIEQgPSAwLAogICAgICAgICAgICAgICAgICAgICAgICBIID0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgJCA9IGwgLSAxOwogICAgICAgICAgICAgICAgICAgICAgICBIICE9PSAkICYmIEZbSF0gPD0gUzsKICAgICAgICAgICAgICAgICAgICAgICAgKytICiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIEQgKz0gYzsKICAgICAgICAgICAgICAgICAgICAgIC0tSDsKICAgICAgICAgICAgICAgICAgICAgIHZhciBxID0gKFMgLSBGW0hdKSAvIChGW0ggKyAxXSAtIEZbSF0pLAogICAgICAgICAgICAgICAgICAgICAgICBKID0gRCArIHEgKiBjLAogICAgICAgICAgICAgICAgICAgICAgICBLID0gUihKLCBBLCBPKTsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBLID49IGkKICAgICAgICAgICAgICAgICAgICAgICAgPyBNKFMsIEosIEEsIE8pCiAgICAgICAgICAgICAgICAgICAgICAgIDogSyA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgID8gSgogICAgICAgICAgICAgICAgICAgICAgICAgIDogVChTLCBELCBEICsgYywgQSwgTyk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIGUKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBwb29saW5nID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUodCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gdC5jb25jYXQoY3JlYXRlU2l6ZWRBcnJheSh0Lmxlbmd0aCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHsgZG91YmxlOiBlIH07CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBwb29sRmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSAwLAogICAgICAgICAgICAgICAgICAgIGkgPSBlLAogICAgICAgICAgICAgICAgICAgIGEgPSBjcmVhdGVTaXplZEFycmF5KGkpLAogICAgICAgICAgICAgICAgICAgIG8gPSB7IG5ld0VsZW1lbnQ6IGwsIHJlbGVhc2U6IGMgfTsKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gbCgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbiA/ICgobiAtPSAxKSwgKHUgPSBhW25dKSkgOiAodSA9IHQoKSksIHU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gYyh1KSB7CiAgICAgICAgICAgICAgICAgICAgbiA9PT0gaSAmJiAoKGEgPSBwb29saW5nLmRvdWJsZShhKSksIChpICo9IDIpKSwKICAgICAgICAgICAgICAgICAgICAgIHIgJiYgcih1KSwKICAgICAgICAgICAgICAgICAgICAgIChhW25dID0gdSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSAxKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gbzsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBiZXppZXJMZW5ndGhQb29sID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGUoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgYWRkZWRMZW5ndGg6IDAsCiAgICAgICAgICAgICAgICAgICAgcGVyY2VudHM6IGNyZWF0ZVR5cGVkQXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAiZmxvYXQzMiIsCiAgICAgICAgICAgICAgICAgICAgICBnZXREZWZhdWx0Q3VydmVTZWdtZW50cygpCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBsZW5ndGhzOiBjcmVhdGVUeXBlZEFycmF5KAogICAgICAgICAgICAgICAgICAgICAgImZsb2F0MzIiLAogICAgICAgICAgICAgICAgICAgICAgZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcG9vbEZhY3RvcnkoOCwgZSk7CiAgICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBzZWdtZW50c0xlbmd0aFBvb2wgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbGVuZ3RoczogW10sIHRvdGFsTGVuZ3RoOiAwIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0KHIpIHsKICAgICAgICAgICAgICAgICAgdmFyIG4sCiAgICAgICAgICAgICAgICAgICAgaSA9IHIubGVuZ3Rocy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpCiAgICAgICAgICAgICAgICAgICAgYmV6aWVyTGVuZ3RoUG9vbC5yZWxlYXNlKHIubGVuZ3Roc1tuXSk7CiAgICAgICAgICAgICAgICAgIHIubGVuZ3Rocy5sZW5ndGggPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHBvb2xGYWN0b3J5KDgsIGUsIHQpOwogICAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIGJlekZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBlID0gTWF0aDsKICAgICAgICAgICAgICBmdW5jdGlvbiB0KGIsIFAsIFIsIFQsIE0sIHgpIHsKICAgICAgICAgICAgICAgIHZhciBrID0gYiAqIFQgKyBQICogTSArIFIgKiB4IC0gTSAqIFQgLSB4ICogYiAtIFIgKiBQOwogICAgICAgICAgICAgICAgcmV0dXJuIGsgPiAtMC4wMDEgJiYgayA8IDAuMDAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiByKGIsIFAsIFIsIFQsIE0sIHgsIGssIFMsIEEpIHsKICAgICAgICAgICAgICAgIGlmIChSID09PSAwICYmIHggPT09IDAgJiYgQSA9PT0gMCkgcmV0dXJuIHQoYiwgUCwgVCwgTSwgaywgUyk7CiAgICAgICAgICAgICAgICB2YXIgTyA9IGUuc3FydCgKICAgICAgICAgICAgICAgICAgZS5wb3coVCAtIGIsIDIpICsgZS5wb3coTSAtIFAsIDIpICsgZS5wb3coeCAtIFIsIDIpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBGID0gZS5zcXJ0KAogICAgICAgICAgICAgICAgICAgIGUucG93KGsgLSBiLCAyKSArIGUucG93KFMgLSBQLCAyKSArIGUucG93KEEgLSBSLCAyKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBEID0gZS5zcXJ0KAogICAgICAgICAgICAgICAgICAgIGUucG93KGsgLSBULCAyKSArIGUucG93KFMgLSBNLCAyKSArIGUucG93KEEgLSB4LCAyKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBIOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTyA+IEYKICAgICAgICAgICAgICAgICAgICA/IE8gPiBECiAgICAgICAgICAgICAgICAgICAgICA/IChIID0gTyAtIEYgLSBEKQogICAgICAgICAgICAgICAgICAgICAgOiAoSCA9IEQgLSBGIC0gTykKICAgICAgICAgICAgICAgICAgICA6IEQgPiBGCiAgICAgICAgICAgICAgICAgICAgICA/IChIID0gRCAtIEYgLSBPKQogICAgICAgICAgICAgICAgICAgICAgOiAoSCA9IEYgLSBPIC0gRCksCiAgICAgICAgICAgICAgICAgIEggPiAtMWUtNCAmJiBIIDwgMWUtNAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIG4gPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChiLCBQLCBSLCBUKSB7CiAgICAgICAgICAgICAgICAgIHZhciBNID0gZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICB4LAogICAgICAgICAgICAgICAgICAgIGssCiAgICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgICAgIE8sCiAgICAgICAgICAgICAgICAgICAgRiA9IDAsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBIID0gW10sCiAgICAgICAgICAgICAgICAgICAgJCA9IFtdLAogICAgICAgICAgICAgICAgICAgIHEgPSBiZXppZXJMZW5ndGhQb29sLm5ld0VsZW1lbnQoKTsKICAgICAgICAgICAgICAgICAgZm9yIChTID0gUi5sZW5ndGgsIHggPSAwOyB4IDwgTTsgeCArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChPID0geCAvIChNIC0gMSksIEQgPSAwLCBrID0gMDsgayA8IFM7IGsgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChBID0KICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coMSAtIE8sIDMpICogYltrXSArCiAgICAgICAgICAgICAgICAgICAgICAgIDMgKiBibVBvdygxIC0gTywgMikgKiBPICogUltrXSArCiAgICAgICAgICAgICAgICAgICAgICAgIDMgKiAoMSAtIE8pICogYm1Qb3coTywgMikgKiBUW2tdICsKICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coTywgMykgKiBQW2tdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEhba10gPSBBKSwKICAgICAgICAgICAgICAgICAgICAgICAgJFtrXSAhPT0gbnVsbCAmJiAoRCArPSBibVBvdyhIW2tdIC0gJFtrXSwgMikpLAogICAgICAgICAgICAgICAgICAgICAgICAoJFtrXSA9IEhba10pOwogICAgICAgICAgICAgICAgICAgIEQgJiYgKChEID0gYm1TcXJ0KEQpKSwgKEYgKz0gRCkpLAogICAgICAgICAgICAgICAgICAgICAgKHEucGVyY2VudHNbeF0gPSBPKSwKICAgICAgICAgICAgICAgICAgICAgIChxLmxlbmd0aHNbeF0gPSBGKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gKHEuYWRkZWRMZW5ndGggPSBGKSwgcTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgICBmdW5jdGlvbiBpKGIpIHsKICAgICAgICAgICAgICAgIHZhciBQID0gc2VnbWVudHNMZW5ndGhQb29sLm5ld0VsZW1lbnQoKSwKICAgICAgICAgICAgICAgICAgUiA9IGIuYywKICAgICAgICAgICAgICAgICAgVCA9IGIudiwKICAgICAgICAgICAgICAgICAgTSA9IGIubywKICAgICAgICAgICAgICAgICAgeCA9IGIuaSwKICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgUyA9IGIuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgQSA9IFAubGVuZ3RocywKICAgICAgICAgICAgICAgICAgTyA9IDA7CiAgICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgUyAtIDE7IGsgKz0gMSkKICAgICAgICAgICAgICAgICAgKEFba10gPSBuKFRba10sIFRbayArIDFdLCBNW2tdLCB4W2sgKyAxXSkpLAogICAgICAgICAgICAgICAgICAgIChPICs9IEFba10uYWRkZWRMZW5ndGgpOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgUiAmJgogICAgICAgICAgICAgICAgICBTICYmCiAgICAgICAgICAgICAgICAgICgoQVtrXSA9IG4oVFtrXSwgVFswXSwgTVtrXSwgeFswXSkpLAogICAgICAgICAgICAgICAgICAgIChPICs9IEFba10uYWRkZWRMZW5ndGgpKSwKICAgICAgICAgICAgICAgICAgKFAudG90YWxMZW5ndGggPSBPKSwKICAgICAgICAgICAgICAgICAgUAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYShiKSB7CiAgICAgICAgICAgICAgICAodGhpcy5zZWdtZW50TGVuZ3RoID0gMCksICh0aGlzLnBvaW50cyA9IG5ldyBBcnJheShiKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oYiwgUCkgewogICAgICAgICAgICAgICAgKHRoaXMucGFydGlhbExlbmd0aCA9IGIpLCAodGhpcy5wb2ludCA9IFApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgbCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgYiA9IHt9OwogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChQLCBSLCBULCBNKSB7CiAgICAgICAgICAgICAgICAgIHZhciB4ID0gKAogICAgICAgICAgICAgICAgICAgIFBbMF0gKwogICAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgICAgUFsxXSArCiAgICAgICAgICAgICAgICAgICAgIl8iICsKICAgICAgICAgICAgICAgICAgICBSWzBdICsKICAgICAgICAgICAgICAgICAgICAiXyIgKwogICAgICAgICAgICAgICAgICAgIFJbMV0gKwogICAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgICAgVFswXSArCiAgICAgICAgICAgICAgICAgICAgIl8iICsKICAgICAgICAgICAgICAgICAgICBUWzFdICsKICAgICAgICAgICAgICAgICAgICAiXyIgKwogICAgICAgICAgICAgICAgICAgIE1bMF0gKwogICAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgICAgTVsxXQogICAgICAgICAgICAgICAgICApLnJlcGxhY2UoL1wuL2csICJwIik7CiAgICAgICAgICAgICAgICAgIGlmICghYlt4XSkgewogICAgICAgICAgICAgICAgICAgIHZhciBrID0gZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgICAgICAgTywKICAgICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgICBELAogICAgICAgICAgICAgICAgICAgICAgSCA9IDAsCiAgICAgICAgICAgICAgICAgICAgICAkLAogICAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICAgIEogPSBudWxsOwogICAgICAgICAgICAgICAgICAgIFAubGVuZ3RoID09PSAyICYmCiAgICAgICAgICAgICAgICAgICAgICAoUFswXSAhPT0gUlswXSB8fCBQWzFdICE9PSBSWzFdKSAmJgogICAgICAgICAgICAgICAgICAgICAgdChQWzBdLCBQWzFdLCBSWzBdLCBSWzFdLCBQWzBdICsgVFswXSwgUFsxXSArIFRbMV0pICYmCiAgICAgICAgICAgICAgICAgICAgICB0KFBbMF0sIFBbMV0sIFJbMF0sIFJbMV0sIFJbMF0gKyBNWzBdLCBSWzFdICsgTVsxXSkgJiYKICAgICAgICAgICAgICAgICAgICAgIChrID0gMik7CiAgICAgICAgICAgICAgICAgICAgdmFyIEsgPSBuZXcgYShrKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKE8gPSBULmxlbmd0aCwgUyA9IDA7IFMgPCBrOyBTICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBjcmVhdGVTaXplZEFycmF5KE8pLCBEID0gUyAvIChrIC0gMSksICQgPSAwLCBBID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgQSA8IE87CiAgICAgICAgICAgICAgICAgICAgICAgIEEgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAoRiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coMSAtIEQsIDMpICogUFtBXSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgMyAqIGJtUG93KDEgLSBELCAyKSAqIEQgKiAoUFtBXSArIFRbQV0pICsKICAgICAgICAgICAgICAgICAgICAgICAgICAzICogKDEgLSBEKSAqIGJtUG93KEQsIDIpICogKFJbQV0gKyBNW0FdKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coRCwgMykgKiBSW0FdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAocVtBXSA9IEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgIEogIT09IG51bGwgJiYgKCQgKz0gYm1Qb3cocVtBXSAtIEpbQV0sIDIpKTsKICAgICAgICAgICAgICAgICAgICAgICgkID0gYm1TcXJ0KCQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEggKz0gJCksCiAgICAgICAgICAgICAgICAgICAgICAgIChLLnBvaW50c1tTXSA9IG5ldyBvKCQsIHEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEogPSBxKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgKEsuc2VnbWVudExlbmd0aCA9IEgpLCAoYlt4XSA9IEspOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiBiW3hdOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGMoYiwgUCkgewogICAgICAgICAgICAgICAgdmFyIFIgPSBQLnBlcmNlbnRzLAogICAgICAgICAgICAgICAgICBUID0gUC5sZW5ndGhzLAogICAgICAgICAgICAgICAgICBNID0gUi5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHggPSBibUZsb29yKChNIC0gMSkgKiBiKSwKICAgICAgICAgICAgICAgICAgayA9IGIgKiBQLmFkZGVkTGVuZ3RoLAogICAgICAgICAgICAgICAgICBTID0gMDsKICAgICAgICAgICAgICAgIGlmICh4ID09PSBNIC0gMSB8fCB4ID09PSAwIHx8IGsgPT09IFRbeF0pIHJldHVybiBSW3hdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgQSA9IFRbeF0gPiBrID8gLTEgOiAxLCBPID0gITA7IE87KQogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKFRbeF0gPD0gayAmJiBUW3ggKyAxXSA+IGsKICAgICAgICAgICAgICAgICAgICAgID8gKChTID0gKGsgLSBUW3hdKSAvIChUW3ggKyAxXSAtIFRbeF0pKSwgKE8gPSAhMSkpCiAgICAgICAgICAgICAgICAgICAgICA6ICh4ICs9IEEpLAogICAgICAgICAgICAgICAgICAgICAgeCA8IDAgfHwgeCA+PSBNIC0gMSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHggPT09IE0gLSAxKSByZXR1cm4gUlt4XTsKICAgICAgICAgICAgICAgICAgICBPID0gITE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBSW3hdICsgKFJbeCArIDFdIC0gUlt4XSkgKiBTOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiB1KGIsIFAsIFIsIFQsIE0sIHgpIHsKICAgICAgICAgICAgICAgIHZhciBrID0gYyhNLCB4KSwKICAgICAgICAgICAgICAgICAgUyA9IDEgLSBrLAogICAgICAgICAgICAgICAgICBBID0KICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgKFMgKiBTICogUyAqIGJbMF0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIFMgKiBTICsgUyAqIGsgKiBTICsgUyAqIFMgKiBrKSAqIFJbMF0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIGsgKiBTICsgUyAqIGsgKiBrICsgayAqIFMgKiBrKSAqIFRbMF0gKwogICAgICAgICAgICAgICAgICAgICAgICBrICogayAqIGsgKiBQWzBdKSAqCiAgICAgICAgICAgICAgICAgICAgICAxZTMKICAgICAgICAgICAgICAgICAgICApIC8gMWUzLAogICAgICAgICAgICAgICAgICBPID0KICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgKFMgKiBTICogUyAqIGJbMV0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIFMgKiBTICsgUyAqIGsgKiBTICsgUyAqIFMgKiBrKSAqIFJbMV0gKwogICAgICAgICAgICAgICAgICAgICAgICAoayAqIGsgKiBTICsgUyAqIGsgKiBrICsgayAqIFMgKiBrKSAqIFRbMV0gKwogICAgICAgICAgICAgICAgICAgICAgICBrICogayAqIGsgKiBQWzFdKSAqCiAgICAgICAgICAgICAgICAgICAgICAxZTMKICAgICAgICAgICAgICAgICAgICApIC8gMWUzOwogICAgICAgICAgICAgICAgcmV0dXJuIFtBLCBPXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIGQgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgOCk7CiAgICAgICAgICAgICAgZnVuY3Rpb24gRShiLCBQLCBSLCBULCBNLCB4LCBrKSB7CiAgICAgICAgICAgICAgICBNIDwgMCA/IChNID0gMCkgOiBNID4gMSAmJiAoTSA9IDEpOwogICAgICAgICAgICAgICAgdmFyIFMgPSBjKE0sIGspOwogICAgICAgICAgICAgICAgeCA9IHggPiAxID8gMSA6IHg7CiAgICAgICAgICAgICAgICB2YXIgQSA9IGMoeCwgayksCiAgICAgICAgICAgICAgICAgIE8sCiAgICAgICAgICAgICAgICAgIEYgPSBiLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgRCA9IDEgLSBTLAogICAgICAgICAgICAgICAgICBIID0gMSAtIEEsCiAgICAgICAgICAgICAgICAgICQgPSBEICogRCAqIEQsCiAgICAgICAgICAgICAgICAgIHEgPSBTICogRCAqIEQgKiAzLAogICAgICAgICAgICAgICAgICBKID0gUyAqIFMgKiBEICogMywKICAgICAgICAgICAgICAgICAgSyA9IFMgKiBTICogUywKICAgICAgICAgICAgICAgICAgZWUgPSBEICogRCAqIEgsCiAgICAgICAgICAgICAgICAgIGxlID0gUyAqIEQgKiBIICsgRCAqIFMgKiBIICsgRCAqIEQgKiBBLAogICAgICAgICAgICAgICAgICByZSA9IFMgKiBTICogSCArIEQgKiBTICogQSArIFMgKiBEICogQSwKICAgICAgICAgICAgICAgICAgQiA9IFMgKiBTICogQSwKICAgICAgICAgICAgICAgICAgeiA9IEQgKiBIICogSCwKICAgICAgICAgICAgICAgICAgTiA9IFMgKiBIICogSCArIEQgKiBBICogSCArIEQgKiBIICogQSwKICAgICAgICAgICAgICAgICAgViA9IFMgKiBBICogSCArIEQgKiBBICogQSArIFMgKiBIICogQSwKICAgICAgICAgICAgICAgICAgUSA9IFMgKiBBICogQSwKICAgICAgICAgICAgICAgICAgWSA9IEggKiBIICogSCwKICAgICAgICAgICAgICAgICAgaGUgPSBBICogSCAqIEggKyBIICogQSAqIEggKyBIICogSCAqIEEsCiAgICAgICAgICAgICAgICAgIHllID0gQSAqIEEgKiBIICsgSCAqIEEgKiBBICsgQSAqIEggKiBBLAogICAgICAgICAgICAgICAgICB2ZSA9IEEgKiBBICogQTsKICAgICAgICAgICAgICAgIGZvciAoTyA9IDA7IE8gPCBGOyBPICs9IDEpCiAgICAgICAgICAgICAgICAgIChkW08gKiA0XSA9CiAgICAgICAgICAgICAgICAgICAgZS5yb3VuZCgoJCAqIGJbT10gKyBxICogUltPXSArIEogKiBUW09dICsgSyAqIFBbT10pICogMWUzKSAvCiAgICAgICAgICAgICAgICAgICAgMWUzKSwKICAgICAgICAgICAgICAgICAgICAoZFtPICogNCArIDFdID0KICAgICAgICAgICAgICAgICAgICAgIGUucm91bmQoCiAgICAgICAgICAgICAgICAgICAgICAgIChlZSAqIGJbT10gKyBsZSAqIFJbT10gKyByZSAqIFRbT10gKyBCICogUFtPXSkgKiAxZTMKICAgICAgICAgICAgICAgICAgICAgICkgLyAxZTMpLAogICAgICAgICAgICAgICAgICAgIChkW08gKiA0ICsgMl0gPQogICAgICAgICAgICAgICAgICAgICAgZS5yb3VuZCgKICAgICAgICAgICAgICAgICAgICAgICAgKHogKiBiW09dICsgTiAqIFJbT10gKyBWICogVFtPXSArIFEgKiBQW09dKSAqIDFlMwogICAgICAgICAgICAgICAgICAgICAgKSAvIDFlMyksCiAgICAgICAgICAgICAgICAgICAgKGRbTyAqIDQgKyAzXSA9CiAgICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgICAoWSAqIGJbT10gKyBoZSAqIFJbT10gKyB5ZSAqIFRbT10gKyB2ZSAqIFBbT10pICogMWUzCiAgICAgICAgICAgICAgICAgICAgICApIC8gMWUzKTsKICAgICAgICAgICAgICAgIHJldHVybiBkOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZ2V0U2VnbWVudHNMZW5ndGg6IGksCiAgICAgICAgICAgICAgICBnZXROZXdTZWdtZW50OiBFLAogICAgICAgICAgICAgICAgZ2V0UG9pbnRJblNlZ21lbnQ6IHUsCiAgICAgICAgICAgICAgICBidWlsZEJlemllckRhdGE6IGwsCiAgICAgICAgICAgICAgICBwb2ludE9uTGluZTJEOiB0LAogICAgICAgICAgICAgICAgcG9pbnRPbkxpbmUzRDogciwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBiZXogPSBiZXpGdW5jdGlvbigpLAogICAgICAgICAgICAgIGluaXRGcmFtZSA9IGluaXRpYWxEZWZhdWx0RnJhbWUsCiAgICAgICAgICAgICAgbWF0aEFicyA9IE1hdGguYWJzOwogICAgICAgICAgICBmdW5jdGlvbiBpbnRlcnBvbGF0ZVZhbHVlKGUsIHQpIHsKICAgICAgICAgICAgICB2YXIgciA9IHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgIG47CiAgICAgICAgICAgICAgdGhpcy5wcm9wVHlwZSA9PT0gIm11bHRpZGltZW5zaW9uYWwiICYmCiAgICAgICAgICAgICAgICAobiA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCB0aGlzLnB2Lmxlbmd0aCkpOwogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB2YXIgaSA9IHQubGFzdEluZGV4LAogICAgICAgICAgICAgICAgYSA9IGksCiAgICAgICAgICAgICAgICBvID0gdGhpcy5rZXlmcmFtZXMubGVuZ3RoIC0gMSwKICAgICAgICAgICAgICAgIGwgPSAhMCwKICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgZDsKICAgICAgICAgICAgICAgIGw7CgogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKGMgPSB0aGlzLmtleWZyYW1lc1thXSksCiAgICAgICAgICAgICAgICAgICAgKHUgPSB0aGlzLmtleWZyYW1lc1thICsgMV0pLAogICAgICAgICAgICAgICAgICAgIGEgPT09IG8gLSAxICYmIGUgPj0gdS50IC0gcikKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBjLmggJiYgKGMgPSB1KSwgKGkgPSAwKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAodS50IC0gciA+IGUpIHsKICAgICAgICAgICAgICAgICAgaSA9IGE7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYSA8IG8gLSAxID8gKGEgKz0gMSkgOiAoKGkgPSAwKSwgKGwgPSAhMSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBkID0gdGhpcy5rZXlmcmFtZXNNZXRhZGF0YVthXSB8fCB7fTsKICAgICAgICAgICAgICB2YXIgRSwKICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICBQLAogICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICAgeCA9IHUudCAtIHIsCiAgICAgICAgICAgICAgICBrID0gYy50IC0gciwKICAgICAgICAgICAgICAgIFM7CiAgICAgICAgICAgICAgaWYgKGMudG8pIHsKICAgICAgICAgICAgICAgIGQuYmV6aWVyRGF0YSB8fAogICAgICAgICAgICAgICAgICAoZC5iZXppZXJEYXRhID0gYmV6LmJ1aWxkQmV6aWVyRGF0YSgKICAgICAgICAgICAgICAgICAgICBjLnMsCiAgICAgICAgICAgICAgICAgICAgdS5zIHx8IGMuZSwKICAgICAgICAgICAgICAgICAgICBjLnRvLAogICAgICAgICAgICAgICAgICAgIGMudGkKICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICB2YXIgQSA9IGQuYmV6aWVyRGF0YTsKICAgICAgICAgICAgICAgIGlmIChlID49IHggfHwgZSA8IGspIHsKICAgICAgICAgICAgICAgICAgdmFyIE8gPSBlID49IHggPyBBLnBvaW50cy5sZW5ndGggLSAxIDogMDsKICAgICAgICAgICAgICAgICAgZm9yIChiID0gQS5wb2ludHNbT10ucG9pbnQubGVuZ3RoLCBFID0gMDsgRSA8IGI7IEUgKz0gMSkKICAgICAgICAgICAgICAgICAgICBuW0VdID0gQS5wb2ludHNbT10ucG9pbnRbRV07CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBkLl9fZm5jdAogICAgICAgICAgICAgICAgICAgID8gKE0gPSBkLl9fZm5jdCkKICAgICAgICAgICAgICAgICAgICA6ICgoTSA9IEJlemllckZhY3RvcnkuZ2V0QmV6aWVyRWFzaW5nKAogICAgICAgICAgICAgICAgICAgICAgYy5vLngsCiAgICAgICAgICAgICAgICAgICAgICBjLm8ueSwKICAgICAgICAgICAgICAgICAgICAgIGMuaS54LAogICAgICAgICAgICAgICAgICAgICAgYy5pLnksCiAgICAgICAgICAgICAgICAgICAgICBjLm4KICAgICAgICAgICAgICAgICAgICApLmdldCksCiAgICAgICAgICAgICAgICAgICAgICAoZC5fX2ZuY3QgPSBNKSksCiAgICAgICAgICAgICAgICAgICAgKFAgPSBNKChlIC0gaykgLyAoeCAtIGspKSk7CiAgICAgICAgICAgICAgICAgIHZhciBGID0gQS5zZWdtZW50TGVuZ3RoICogUCwKICAgICAgICAgICAgICAgICAgICBELAogICAgICAgICAgICAgICAgICAgIEggPQogICAgICAgICAgICAgICAgICAgICAgdC5sYXN0RnJhbWUgPCBlICYmIHQuX2xhc3RLZXlmcmFtZUluZGV4ID09PSBhCiAgICAgICAgICAgICAgICAgICAgICAgID8gdC5fbGFzdEFkZGVkTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgIDogMDsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBUID0KICAgICAgICAgICAgICAgICAgICB0Lmxhc3RGcmFtZSA8IGUgJiYgdC5fbGFzdEtleWZyYW1lSW5kZXggPT09IGEKICAgICAgICAgICAgICAgICAgICAgID8gdC5fbGFzdFBvaW50CiAgICAgICAgICAgICAgICAgICAgICA6IDAsCiAgICAgICAgICAgICAgICAgICAgbCA9ICEwLAogICAgICAgICAgICAgICAgICAgIFIgPSBBLnBvaW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgbDsKCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgoSCArPSBBLnBvaW50c1tUXS5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICAgRiA9PT0gMCB8fCBQID09PSAwIHx8IFQgPT09IEEucG9pbnRzLmxlbmd0aCAtIDEpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGIgPSBBLnBvaW50c1tUXS5wb2ludC5sZW5ndGgsIEUgPSAwOyBFIDwgYjsgRSArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICBuW0VdID0gQS5wb2ludHNbVF0ucG9pbnRbRV07CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKAogICAgICAgICAgICAgICAgICAgICAgRiA+PSBIICYmCiAgICAgICAgICAgICAgICAgICAgICBGIDwgSCArIEEucG9pbnRzW1QgKyAxXS5wYXJ0aWFsTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBEID0gKEYgLSBIKSAvIEEucG9pbnRzW1QgKyAxXS5wYXJ0aWFsTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBiID0gQS5wb2ludHNbVF0ucG9pbnQubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBFID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgRSA8IGI7CiAgICAgICAgICAgICAgICAgICAgICAgIEUgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBuW0VdID0KICAgICAgICAgICAgICAgICAgICAgICAgICBBLnBvaW50c1tUXS5wb2ludFtFXSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEEucG9pbnRzW1QgKyAxXS5wb2ludFtFXSAtIEEucG9pbnRzW1RdLnBvaW50W0VdKSAqIEQ7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgVCA8IFIgLSAxID8gKFQgKz0gMSkgOiAobCA9ICExKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAodC5fbGFzdFBvaW50ID0gVCksCiAgICAgICAgICAgICAgICAgICAgKHQuX2xhc3RBZGRlZExlbmd0aCA9IEggLSBBLnBvaW50c1tUXS5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAodC5fbGFzdEtleWZyYW1lSW5kZXggPSBhKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFyICQsIHEsIEosIEssIGVlOwogICAgICAgICAgICAgICAgaWYgKCgobyA9IGMucy5sZW5ndGgpLCAoUyA9IHUucyB8fCBjLmUpLCB0aGlzLnNoICYmIGMuaCAhPT0gMSkpCiAgICAgICAgICAgICAgICAgIGlmIChlID49IHgpIChuWzBdID0gU1swXSksIChuWzFdID0gU1sxXSksIChuWzJdID0gU1syXSk7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGUgPD0gaykKICAgICAgICAgICAgICAgICAgICAoblswXSA9IGMuc1swXSksIChuWzFdID0gYy5zWzFdKSwgKG5bMl0gPSBjLnNbMl0pOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbGUgPSBjcmVhdGVRdWF0ZXJuaW9uKGMucyksCiAgICAgICAgICAgICAgICAgICAgICByZSA9IGNyZWF0ZVF1YXRlcm5pb24oUyksCiAgICAgICAgICAgICAgICAgICAgICBCID0gKGUgLSBrKSAvICh4IC0gayk7CiAgICAgICAgICAgICAgICAgICAgcXVhdGVybmlvblRvRXVsZXIobiwgc2xlcnAobGUsIHJlLCBCKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IG87IGEgKz0gMSkKICAgICAgICAgICAgICAgICAgICBjLmggIT09IDEgJiYKICAgICAgICAgICAgICAgICAgICAgIChlID49IHgKICAgICAgICAgICAgICAgICAgICAgICAgPyAoUCA9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgIDogZSA8IGsKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChQID0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChjLm8ueC5jb25zdHJ1Y3RvciA9PT0gQXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGQuX19mbmN0IHx8IChkLl9fZm5jdCA9IFtdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5fX2ZuY3RbYV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChNID0gZC5fX2ZuY3RbYV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKCQgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5vLnhbYV0gPT09IHZvaWQgMCA/IGMuby54WzBdIDogYy5vLnhbYV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHEgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLm8ueVthXSA9PT0gdm9pZCAwID8gYy5vLnlbMF0gOiBjLm8ueVthXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuaS54W2FdID09PSB2b2lkIDAgPyBjLmkueFswXSA6IGMuaS54W2FdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChLID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5pLnlbYV0gPT09IHZvaWQgMCA/IGMuaS55WzBdIDogYy5pLnlbYV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5nZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGQuX19mbmN0W2FdID0gTSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBkLl9fZm5jdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChNID0gZC5fX2ZuY3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKCgkID0gYy5vLngpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChxID0gYy5vLnkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChKID0gYy5pLngpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChLID0gYy5pLnkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChNID0gQmV6aWVyRmFjdG9yeS5nZXRCZXppZXJFYXNpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5nZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjLmtleWZyYW1lTWV0YWRhdGEgPSBNKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUCA9IE0oKGUgLSBrKSAvICh4IC0gaykpKSkpLAogICAgICAgICAgICAgICAgICAgICAgKFMgPSB1LnMgfHwgYy5lKSwKICAgICAgICAgICAgICAgICAgICAgIChlZSA9IGMuaCA9PT0gMSA/IGMuc1thXSA6IGMuc1thXSArIChTW2FdIC0gYy5zW2FdKSAqIFApLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wVHlwZSA9PT0gIm11bHRpZGltZW5zaW9uYWwiCiAgICAgICAgICAgICAgICAgICAgICAgID8gKG5bYV0gPSBlZSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAobiA9IGVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICh0Lmxhc3RJbmRleCA9IGkpLCBuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHNsZXJwKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB2YXIgbiA9IFtdLAogICAgICAgICAgICAgICAgaSA9IGVbMF0sCiAgICAgICAgICAgICAgICBhID0gZVsxXSwKICAgICAgICAgICAgICAgIG8gPSBlWzJdLAogICAgICAgICAgICAgICAgbCA9IGVbM10sCiAgICAgICAgICAgICAgICBjID0gdFswXSwKICAgICAgICAgICAgICAgIHUgPSB0WzFdLAogICAgICAgICAgICAgICAgZCA9IHRbMl0sCiAgICAgICAgICAgICAgICBFID0gdFszXSwKICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICBQLAogICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICBNOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoUCA9IGkgKiBjICsgYSAqIHUgKyBvICogZCArIGwgKiBFKSwKICAgICAgICAgICAgICAgIFAgPCAwICYmICgoUCA9IC1QKSwgKGMgPSAtYyksICh1ID0gLXUpLCAoZCA9IC1kKSwgKEUgPSAtRSkpLAogICAgICAgICAgICAgICAgMSAtIFAgPiAxZS02CiAgICAgICAgICAgICAgICAgID8gKChiID0gTWF0aC5hY29zKFApKSwKICAgICAgICAgICAgICAgICAgICAoUiA9IE1hdGguc2luKGIpKSwKICAgICAgICAgICAgICAgICAgICAoVCA9IE1hdGguc2luKCgxIC0gcikgKiBiKSAvIFIpLAogICAgICAgICAgICAgICAgICAgIChNID0gTWF0aC5zaW4ociAqIGIpIC8gUikpCiAgICAgICAgICAgICAgICAgIDogKChUID0gMSAtIHIpLCAoTSA9IHIpKSwKICAgICAgICAgICAgICAgIChuWzBdID0gVCAqIGkgKyBNICogYyksCiAgICAgICAgICAgICAgICAoblsxXSA9IFQgKiBhICsgTSAqIHUpLAogICAgICAgICAgICAgICAgKG5bMl0gPSBUICogbyArIE0gKiBkKSwKICAgICAgICAgICAgICAgIChuWzNdID0gVCAqIGwgKyBNICogRSksCiAgICAgICAgICAgICAgICBuCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBxdWF0ZXJuaW9uVG9FdWxlcihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSB0WzBdLAogICAgICAgICAgICAgICAgbiA9IHRbMV0sCiAgICAgICAgICAgICAgICBpID0gdFsyXSwKICAgICAgICAgICAgICAgIGEgPSB0WzNdLAogICAgICAgICAgICAgICAgbyA9IE1hdGguYXRhbjIoCiAgICAgICAgICAgICAgICAgIDIgKiBuICogYSAtIDIgKiByICogaSwKICAgICAgICAgICAgICAgICAgMSAtIDIgKiBuICogbiAtIDIgKiBpICogaQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGwgPSBNYXRoLmFzaW4oMiAqIHIgKiBuICsgMiAqIGkgKiBhKSwKICAgICAgICAgICAgICAgIGMgPSBNYXRoLmF0YW4yKAogICAgICAgICAgICAgICAgICAyICogciAqIGEgLSAyICogbiAqIGksCiAgICAgICAgICAgICAgICAgIDEgLSAyICogciAqIHIgLSAyICogaSAqIGkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgKGVbMF0gPSBvIC8gZGVnVG9SYWRzKSwKICAgICAgICAgICAgICAgIChlWzFdID0gbCAvIGRlZ1RvUmFkcyksCiAgICAgICAgICAgICAgICAoZVsyXSA9IGMgLyBkZWdUb1JhZHMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVF1YXRlcm5pb24oZSkgewogICAgICAgICAgICAgIHZhciB0ID0gZVswXSAqIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgIHIgPSBlWzFdICogZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgbiA9IGVbMl0gKiBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICBpID0gTWF0aC5jb3ModCAvIDIpLAogICAgICAgICAgICAgICAgYSA9IE1hdGguY29zKHIgLyAyKSwKICAgICAgICAgICAgICAgIG8gPSBNYXRoLmNvcyhuIC8gMiksCiAgICAgICAgICAgICAgICBsID0gTWF0aC5zaW4odCAvIDIpLAogICAgICAgICAgICAgICAgYyA9IE1hdGguc2luKHIgLyAyKSwKICAgICAgICAgICAgICAgIHUgPSBNYXRoLnNpbihuIC8gMiksCiAgICAgICAgICAgICAgICBkID0gaSAqIGEgKiBvIC0gbCAqIGMgKiB1LAogICAgICAgICAgICAgICAgRSA9IGwgKiBjICogbyArIGkgKiBhICogdSwKICAgICAgICAgICAgICAgIGIgPSBsICogYSAqIG8gKyBpICogYyAqIHUsCiAgICAgICAgICAgICAgICBQID0gaSAqIGMgKiBvIC0gbCAqIGEgKiB1OwogICAgICAgICAgICAgIHJldHVybiBbRSwgYiwgUCwgZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0VmFsdWVBdEN1cnJlbnRUaW1lKCkgewogICAgICAgICAgICAgIHZhciBlID0gdGhpcy5jb21wLnJlbmRlcmVkRnJhbWUgLSB0aGlzLm9mZnNldFRpbWUsCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5rZXlmcmFtZXNbMF0udCAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgIHIgPQogICAgICAgICAgICAgICAgICB0aGlzLmtleWZyYW1lc1t0aGlzLmtleWZyYW1lcy5sZW5ndGggLSAxXS50IC0gdGhpcy5vZmZzZXRUaW1lOwogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEoCiAgICAgICAgICAgICAgICAgIGUgPT09IHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSAhPT0gaW5pdEZyYW1lICYmCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSA+PSByICYmIGUgPj0gcikgfHwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSA8IHQgJiYgZSA8IHQpKSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lID49IGUgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLl9jYWNoaW5nLl9sYXN0S2V5ZnJhbWVJbmRleCA9IC0xKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fY2FjaGluZy5sYXN0SW5kZXggPSAwKSk7CiAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuaW50ZXJwb2xhdGVWYWx1ZShlLCB0aGlzLl9jYWNoaW5nKTsKICAgICAgICAgICAgICAgIHRoaXMucHYgPSBuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lID0gZSksIHRoaXMucHY7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gc2V0VlZhbHVlKGUpIHsKICAgICAgICAgICAgICB2YXIgdDsKICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wVHlwZSA9PT0gInVuaWRpbWVuc2lvbmFsIikKICAgICAgICAgICAgICAgICh0ID0gZSAqIHRoaXMubXVsdCksCiAgICAgICAgICAgICAgICAgIG1hdGhBYnModGhpcy52IC0gdCkgPiAxZS01ICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy52ID0gdCksICh0aGlzLl9tZGYgPSAhMCkpOwogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBuID0gdGhpcy52Lmxlbmd0aDsgciA8IG47KQogICAgICAgICAgICAgICAgICAodCA9IGVbcl0gKiB0aGlzLm11bHQpLAogICAgICAgICAgICAgICAgICAgIG1hdGhBYnModGhpcy52W3JdIC0gdCkgPiAxZS01ICYmCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLnZbcl0gPSB0KSwgKHRoaXMuX21kZiA9ICEwKSksCiAgICAgICAgICAgICAgICAgICAgKHIgKz0gMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0VmZmVjdHNTZXF1ZW5jZSgpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhKAogICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkID09PSB0aGlzLmZyYW1lSWQgfHwKICAgICAgICAgICAgICAgICAgIXRoaXMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jaykgewogICAgICAgICAgICAgICAgICB0aGlzLnNldFZWYWx1ZSh0aGlzLnB2KTsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKHRoaXMubG9jayA9ICEwKSwgKHRoaXMuX21kZiA9IHRoaXMuX2lzRmlyc3RGcmFtZSk7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgciA9IHRoaXMua2YgPyB0aGlzLnB2IDogdGhpcy5kYXRhLms7CiAgICAgICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdDsgZSArPSAxKSByID0gdGhpcy5lZmZlY3RzU2VxdWVuY2VbZV0ocik7CiAgICAgICAgICAgICAgICB0aGlzLnNldFZWYWx1ZShyKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubG9jayA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhZGRFZmZlY3QoZSkgewogICAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLnB1c2goZSksCiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gVmFsdWVQcm9wZXJ0eShlLCB0LCByLCBuKSB7CiAgICAgICAgICAgICAgKHRoaXMucHJvcFR5cGUgPSAidW5pZGltZW5zaW9uYWwiKSwKICAgICAgICAgICAgICAgICh0aGlzLm11bHQgPSByIHx8IDEpLAogICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMudiA9IHIgPyB0LmsgKiByIDogdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSBuKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBlLmNvbXApLAogICAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLmtmID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMudmVsID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5lZmZlY3RzU2VxdWVuY2UgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSBwcm9jZXNzRWZmZWN0c1NlcXVlbmNlKSwKICAgICAgICAgICAgICAgICh0aGlzLnNldFZWYWx1ZSA9IHNldFZWYWx1ZSksCiAgICAgICAgICAgICAgICAodGhpcy5hZGRFZmZlY3QgPSBhZGRFZmZlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIE11bHRpRGltZW5zaW9uYWxQcm9wZXJ0eShlLCB0LCByLCBuKSB7CiAgICAgICAgICAgICAgKHRoaXMucHJvcFR5cGUgPSAibXVsdGlkaW1lbnNpb25hbCIpLAogICAgICAgICAgICAgICAgKHRoaXMubXVsdCA9IHIgfHwgMSksCiAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyID0gbiksCiAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gZS5jb21wKSwKICAgICAgICAgICAgICAgICh0aGlzLmsgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5rZiA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSk7CiAgICAgICAgICAgICAgdmFyIGksCiAgICAgICAgICAgICAgICBhID0gdC5rLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdGhpcy52ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGEpLAogICAgICAgICAgICAgICAgdGhpcy5wdiA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCBhKSwKICAgICAgICAgICAgICAgIHRoaXMudmVsID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGEpLAogICAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICAgICBpIDwgYTsKICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICh0aGlzLnZbaV0gPSB0LmtbaV0gKiB0aGlzLm11bHQpLCAodGhpcy5wdltpXSA9IHQua1tpXSk7CiAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gcHJvY2Vzc0VmZmVjdHNTZXF1ZW5jZSksCiAgICAgICAgICAgICAgICAodGhpcy5zZXRWVmFsdWUgPSBzZXRWVmFsdWUpLAogICAgICAgICAgICAgICAgKHRoaXMuYWRkRWZmZWN0ID0gYWRkRWZmZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBLZXlmcmFtZWRWYWx1ZVByb3BlcnR5KGUsIHQsIHIsIG4pIHsKICAgICAgICAgICAgICAodGhpcy5wcm9wVHlwZSA9ICJ1bmlkaW1lbnNpb25hbCIpLAogICAgICAgICAgICAgICAgKHRoaXMua2V5ZnJhbWVzID0gdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lc01ldGFkYXRhID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMub2Zmc2V0VGltZSA9IGUuZGF0YS5zdCksCiAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpLAogICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcgPSB7CiAgICAgICAgICAgICAgICAgIGxhc3RGcmFtZTogaW5pdEZyYW1lLAogICAgICAgICAgICAgICAgICBsYXN0SW5kZXg6IDAsCiAgICAgICAgICAgICAgICAgIHZhbHVlOiAwLAogICAgICAgICAgICAgICAgICBfbGFzdEtleWZyYW1lSW5kZXg6IC0xLAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAodGhpcy5rID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5tdWx0ID0gciB8fCAxKSwKICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IG4pLAogICAgICAgICAgICAgICAgKHRoaXMuY29tcCA9IGUuY29tcCksCiAgICAgICAgICAgICAgICAodGhpcy52ID0gaW5pdEZyYW1lKSwKICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gaW5pdEZyYW1lKSwKICAgICAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHByb2Nlc3NFZmZlY3RzU2VxdWVuY2UpLAogICAgICAgICAgICAgICAgKHRoaXMuc2V0VlZhbHVlID0gc2V0VlZhbHVlKSwKICAgICAgICAgICAgICAgICh0aGlzLmludGVycG9sYXRlVmFsdWUgPSBpbnRlcnBvbGF0ZVZhbHVlKSwKICAgICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtnZXRWYWx1ZUF0Q3VycmVudFRpbWUuYmluZCh0aGlzKV0pLAogICAgICAgICAgICAgICAgKHRoaXMuYWRkRWZmZWN0ID0gYWRkRWZmZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBLZXlmcmFtZWRNdWx0aWRpbWVuc2lvbmFsUHJvcGVydHkoZSwgdCwgciwgbikgewogICAgICAgICAgICAgIHRoaXMucHJvcFR5cGUgPSAibXVsdGlkaW1lbnNpb25hbCI7CiAgICAgICAgICAgICAgdmFyIGksCiAgICAgICAgICAgICAgICBhID0gdC5rLmxlbmd0aCwKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgIHU7CiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGEgLSAxOyBpICs9IDEpCiAgICAgICAgICAgICAgICB0LmtbaV0udG8gJiYKICAgICAgICAgICAgICAgICAgdC5rW2ldLnMgJiYKICAgICAgICAgICAgICAgICAgdC5rW2kgKyAxXSAmJgogICAgICAgICAgICAgICAgICB0LmtbaSArIDFdLnMgJiYKICAgICAgICAgICAgICAgICAgKChvID0gdC5rW2ldLnMpLAogICAgICAgICAgICAgICAgICAgIChsID0gdC5rW2kgKyAxXS5zKSwKICAgICAgICAgICAgICAgICAgICAoYyA9IHQua1tpXS50byksCiAgICAgICAgICAgICAgICAgICAgKHUgPSB0LmtbaV0udGkpLAogICAgICAgICAgICAgICAgICAgICgoby5sZW5ndGggPT09IDIgJiYKICAgICAgICAgICAgICAgICAgICAgICEob1swXSA9PT0gbFswXSAmJiBvWzFdID09PSBsWzFdKSAmJgogICAgICAgICAgICAgICAgICAgICAgYmV6LnBvaW50T25MaW5lMkQoCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0gKyBjWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBvWzFdICsgY1sxXQogICAgICAgICAgICAgICAgICAgICAgKSAmJgogICAgICAgICAgICAgICAgICAgICAgYmV6LnBvaW50T25MaW5lMkQoCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0gKyB1WzBdLAogICAgICAgICAgICAgICAgICAgICAgICBsWzFdICsgdVsxXQogICAgICAgICAgICAgICAgICAgICAgKSkgfHwKICAgICAgICAgICAgICAgICAgICAgIChvLmxlbmd0aCA9PT0gMyAmJgogICAgICAgICAgICAgICAgICAgICAgICAhKG9bMF0gPT09IGxbMF0gJiYgb1sxXSA9PT0gbFsxXSAmJiBvWzJdID09PSBsWzJdKSAmJgogICAgICAgICAgICAgICAgICAgICAgICBiZXoucG9pbnRPbkxpbmUzRCgKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgb1syXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBsWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzBdICsgY1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzFdICsgY1sxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzJdICsgY1syXQogICAgICAgICAgICAgICAgICAgICAgICApICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGJlei5wb2ludE9uTGluZTNEKAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgb1sxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbFsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBsWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMF0gKyB1WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMV0gKyB1WzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbMl0gKyB1WzJdCiAgICAgICAgICAgICAgICAgICAgICAgICkpKSAmJgogICAgICAgICAgICAgICAgICAgICgodC5rW2ldLnRvID0gbnVsbCksICh0LmtbaV0udGkgPSBudWxsKSksCiAgICAgICAgICAgICAgICAgICAgb1swXSA9PT0gbFswXSAmJgogICAgICAgICAgICAgICAgICAgIG9bMV0gPT09IGxbMV0gJiYKICAgICAgICAgICAgICAgICAgICBjWzBdID09PSAwICYmCiAgICAgICAgICAgICAgICAgICAgY1sxXSA9PT0gMCAmJgogICAgICAgICAgICAgICAgICAgIHVbMF0gPT09IDAgJiYKICAgICAgICAgICAgICAgICAgICB1WzFdID09PSAwICYmCiAgICAgICAgICAgICAgICAgICAgKG8ubGVuZ3RoID09PSAyIHx8CiAgICAgICAgICAgICAgICAgICAgICAob1syXSA9PT0gbFsyXSAmJiBjWzJdID09PSAwICYmIHVbMl0gPT09IDApKSAmJgogICAgICAgICAgICAgICAgICAgICgodC5rW2ldLnRvID0gbnVsbCksICh0LmtbaV0udGkgPSBudWxsKSkpOwogICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtnZXRWYWx1ZUF0Q3VycmVudFRpbWUuYmluZCh0aGlzKV0pLAogICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMua2V5ZnJhbWVzID0gdC5rKSwKICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lc01ldGFkYXRhID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMub2Zmc2V0VGltZSA9IGUuZGF0YS5zdCksCiAgICAgICAgICAgICAgICAodGhpcy5rID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMubXVsdCA9IHIgfHwgMSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSBuKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBlLmNvbXApLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSBwcm9jZXNzRWZmZWN0c1NlcXVlbmNlKSwKICAgICAgICAgICAgICAgICh0aGlzLnNldFZWYWx1ZSA9IHNldFZWYWx1ZSksCiAgICAgICAgICAgICAgICAodGhpcy5pbnRlcnBvbGF0ZVZhbHVlID0gaW50ZXJwb2xhdGVWYWx1ZSksCiAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpOwogICAgICAgICAgICAgIHZhciBkID0gdC5rWzBdLnMubGVuZ3RoOwogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB0aGlzLnYgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgZCksCiAgICAgICAgICAgICAgICB0aGlzLnB2ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGQpLAogICAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICAgICBpIDwgZDsKICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICh0aGlzLnZbaV0gPSBpbml0RnJhbWUpLCAodGhpcy5wdltpXSA9IGluaXRGcmFtZSk7CiAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcgPSB7CiAgICAgICAgICAgICAgICBsYXN0RnJhbWU6IGluaXRGcmFtZSwKICAgICAgICAgICAgICAgIGxhc3RJbmRleDogMCwKICAgICAgICAgICAgICAgIHZhbHVlOiBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgZCksCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAodGhpcy5hZGRFZmZlY3QgPSBhZGRFZmZlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBQcm9wZXJ0eUZhY3RvcnkgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGZ1bmN0aW9uIGUociwgbiwgaSwgYSwgbykgewogICAgICAgICAgICAgICAgbi5zaWQgJiYgKG4gPSByLmdsb2JhbERhdGEuc2xvdE1hbmFnZXIuZ2V0UHJvcChuKSk7CiAgICAgICAgICAgICAgICB2YXIgbDsKICAgICAgICAgICAgICAgIGlmICghbi5rLmxlbmd0aCkgbCA9IG5ldyBWYWx1ZVByb3BlcnR5KHIsIG4sIGEsIG8pOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG4ua1swXSA9PSAibnVtYmVyIikKICAgICAgICAgICAgICAgICAgbCA9IG5ldyBNdWx0aURpbWVuc2lvbmFsUHJvcGVydHkociwgbiwgYSwgbyk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgIGwgPSBuZXcgS2V5ZnJhbWVkVmFsdWVQcm9wZXJ0eShyLCBuLCBhLCBvKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgIGwgPSBuZXcgS2V5ZnJhbWVkTXVsdGlkaW1lbnNpb25hbFByb3BlcnR5KHIsIG4sIGEsIG8pOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBsLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggJiYgby5hZGREeW5hbWljUHJvcGVydHkobCksIGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciB0ID0geyBnZXRQcm9wOiBlIH07CiAgICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcigpIHsgfQogICAgICAgICAgICBEeW5hbWljUHJvcGVydHlDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGFkZER5bmFtaWNQcm9wZXJ0eTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMuaW5kZXhPZih0KSA9PT0gLTEgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuZHluYW1pY1Byb3BlcnRpZXMucHVzaCh0KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGREeW5hbWljUHJvcGVydHkodGhpcyksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhMCkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9tZGYgPSAhMTsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzW3RdLmdldFZhbHVlKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllc1t0XS5fbWRmICYmICh0aGlzLl9tZGYgPSAhMCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyID0gdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzID0gW10pLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICExKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgICAgICB2YXIgcG9pbnRQb29sID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiBlKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCAyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHBvb2xGYWN0b3J5KDgsIGUpOwogICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBTaGFwZVBhdGgoKSB7CiAgICAgICAgICAgICAgKHRoaXMuYyA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLl9sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggPSA4KSwKICAgICAgICAgICAgICAgICh0aGlzLnYgPSBjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkpLAogICAgICAgICAgICAgICAgKHRoaXMubyA9IGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSksCiAgICAgICAgICAgICAgICAodGhpcy5pID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLl9tYXhMZW5ndGgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoU2hhcGVQYXRoLnByb3RvdHlwZS5zZXRQYXRoRGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgKHRoaXMuYyA9IGUpLCB0aGlzLnNldExlbmd0aCh0KTsKICAgICAgICAgICAgICBmb3IgKHZhciByID0gMDsgciA8IHQ7KQogICAgICAgICAgICAgICAgKHRoaXMudltyXSA9IHBvaW50UG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAodGhpcy5vW3JdID0gcG9pbnRQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmlbcl0gPSBwb2ludFBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAgICAgKHIgKz0gMSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnNldExlbmd0aCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBmb3IgKDsgdGhpcy5fbWF4TGVuZ3RoIDwgZTspIHRoaXMuZG91YmxlQXJyYXlMZW5ndGgoKTsKICAgICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9IGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNoYXBlUGF0aC5wcm90b3R5cGUuZG91YmxlQXJyYXlMZW5ndGggPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy52ID0gdGhpcy52LmNvbmNhdChjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaSA9IHRoaXMuaS5jb25jYXQoY3JlYXRlU2l6ZWRBcnJheSh0aGlzLl9tYXhMZW5ndGgpKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm8gPSB0aGlzLm8uY29uY2F0KGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSkpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWF4TGVuZ3RoICo9IDIpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnNldFhZQXQgPSBmdW5jdGlvbiAoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICAgICAgdmFyIGE7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKAogICAgICAgICAgICAgICAgKCh0aGlzLl9sZW5ndGggPSBNYXRoLm1heCh0aGlzLl9sZW5ndGgsIG4gKyAxKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA+PSB0aGlzLl9tYXhMZW5ndGggJiYgdGhpcy5kb3VibGVBcnJheUxlbmd0aCgpLAogICAgICAgICAgICAgICAgICByKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgInYiOgogICAgICAgICAgICAgICAgICAgIGEgPSB0aGlzLnY7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImkiOgogICAgICAgICAgICAgICAgICAgIGEgPSB0aGlzLmk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgIm8iOgogICAgICAgICAgICAgICAgICAgIGEgPSB0aGlzLm87CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYSA9IFtdOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKCFhW25dIHx8IChhW25dICYmICFpKSkgJiYgKGFbbl0gPSBwb2ludFBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAgICAgKGFbbl1bMF0gPSBlKSwKICAgICAgICAgICAgICAgICAgKGFbbl1bMV0gPSB0KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU2hhcGVQYXRoLnByb3RvdHlwZS5zZXRUcmlwbGVBdCA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBsCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB0aGlzLnNldFhZQXQoZSwgdCwgInYiLCBvLCBsKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZXRYWUF0KHIsIG4sICJvIiwgbywgbCksCiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0WFlBdChpLCBhLCAiaSIsIG8sIGwpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnJldmVyc2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IG5ldyBTaGFwZVBhdGgoKTsKICAgICAgICAgICAgICAgIGUuc2V0UGF0aERhdGEodGhpcy5jLCB0aGlzLl9sZW5ndGgpOwogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLnYsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLm8sCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmksCiAgICAgICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgICAgdGhpcy5jICYmCiAgICAgICAgICAgICAgICAgIChlLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgIHRbMF1bMF0sCiAgICAgICAgICAgICAgICAgICAgdFswXVsxXSwKICAgICAgICAgICAgICAgICAgICBuWzBdWzBdLAogICAgICAgICAgICAgICAgICAgIG5bMF1bMV0sCiAgICAgICAgICAgICAgICAgICAgclswXVswXSwKICAgICAgICAgICAgICAgICAgICByWzBdWzFdLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAoaSA9IDEpKTsKICAgICAgICAgICAgICAgIHZhciBhID0gdGhpcy5fbGVuZ3RoIC0gMSwKICAgICAgICAgICAgICAgICAgbyA9IHRoaXMuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgbDsKICAgICAgICAgICAgICAgIGZvciAobCA9IGk7IGwgPCBvOyBsICs9IDEpCiAgICAgICAgICAgICAgICAgIGUuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgdFthXVswXSwKICAgICAgICAgICAgICAgICAgICB0W2FdWzFdLAogICAgICAgICAgICAgICAgICAgIG5bYV1bMF0sCiAgICAgICAgICAgICAgICAgICAgblthXVsxXSwKICAgICAgICAgICAgICAgICAgICByW2FdWzBdLAogICAgICAgICAgICAgICAgICAgIHJbYV1bMV0sCiAgICAgICAgICAgICAgICAgICAgbCwKICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIChhIC09IDEpOwogICAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNoYXBlUGF0aC5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xlbmd0aDsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIHNoYXBlUG9vbCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2hhcGVQYXRoKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHQoaSkgewogICAgICAgICAgICAgICAgdmFyIGEgPSBpLl9sZW5ndGgsCiAgICAgICAgICAgICAgICAgIG87CiAgICAgICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgYTsgbyArPSAxKQogICAgICAgICAgICAgICAgICBwb2ludFBvb2wucmVsZWFzZShpLnZbb10pLAogICAgICAgICAgICAgICAgICAgIHBvaW50UG9vbC5yZWxlYXNlKGkuaVtvXSksCiAgICAgICAgICAgICAgICAgICAgcG9pbnRQb29sLnJlbGVhc2UoaS5vW29dKSwKICAgICAgICAgICAgICAgICAgICAoaS52W29dID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICAgKGkuaVtvXSA9IG51bGwpLAogICAgICAgICAgICAgICAgICAgIChpLm9bb10gPSBudWxsKTsKICAgICAgICAgICAgICAgIChpLl9sZW5ndGggPSAwKSwgKGkuYyA9ICExKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gcihpKSB7CiAgICAgICAgICAgICAgICB2YXIgYSA9IG4ubmV3RWxlbWVudCgpLAogICAgICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgICAgICBsID0gaS5fbGVuZ3RoID09PSB2b2lkIDAgPyBpLnYubGVuZ3RoIDogaS5fbGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChhLnNldExlbmd0aChsKSwgYS5jID0gaS5jLCBvID0gMDsgbyA8IGw7IG8gKz0gMSkKICAgICAgICAgICAgICAgICAgYS5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICBpLnZbb11bMF0sCiAgICAgICAgICAgICAgICAgICAgaS52W29dWzFdLAogICAgICAgICAgICAgICAgICAgIGkub1tvXVswXSwKICAgICAgICAgICAgICAgICAgICBpLm9bb11bMV0sCiAgICAgICAgICAgICAgICAgICAgaS5pW29dWzBdLAogICAgICAgICAgICAgICAgICAgIGkuaVtvXVsxXSwKICAgICAgICAgICAgICAgICAgICBvCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIG4gPSBwb29sRmFjdG9yeSg0LCBlLCB0KTsKICAgICAgICAgICAgICByZXR1cm4gKG4uY2xvbmUgPSByKSwgbjsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gU2hhcGVDb2xsZWN0aW9uKCkgewogICAgICAgICAgICAgICh0aGlzLl9sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggPSA0KSwKICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlcyA9IGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKFNoYXBlQ29sbGVjdGlvbi5wcm90b3R5cGUuYWRkU2hhcGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9PT0gdGhpcy5fbWF4TGVuZ3RoICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuc2hhcGVzID0gdGhpcy5zaGFwZXMuY29uY2F0KAogICAgICAgICAgICAgICAgICBjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWF4TGVuZ3RoICo9IDIpKSwKICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc1t0aGlzLl9sZW5ndGhdID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5fbGVuZ3RoICs9IDEpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU2hhcGVDb2xsZWN0aW9uLnByb3RvdHlwZS5yZWxlYXNlU2hhcGVzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGU7CiAgICAgICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdGhpcy5fbGVuZ3RoOyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHNoYXBlUG9vbC5yZWxlYXNlKHRoaXMuc2hhcGVzW2VdKTsKICAgICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9IDA7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBzaGFwZUNvbGxlY3Rpb25Qb29sID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IHsgbmV3U2hhcGVDb2xsZWN0aW9uOiBpLCByZWxlYXNlOiBhIH0sCiAgICAgICAgICAgICAgICB0ID0gMCwKICAgICAgICAgICAgICAgIHIgPSA0LAogICAgICAgICAgICAgICAgbiA9IGNyZWF0ZVNpemVkQXJyYXkocik7CiAgICAgICAgICAgICAgZnVuY3Rpb24gaSgpIHsKICAgICAgICAgICAgICAgIHZhciBvOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdCA/ICgodCAtPSAxKSwgKG8gPSBuW3RdKSkgOiAobyA9IG5ldyBTaGFwZUNvbGxlY3Rpb24oKSksIG8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGEobykgewogICAgICAgICAgICAgICAgdmFyIGwsCiAgICAgICAgICAgICAgICAgIGMgPSBvLl9sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKGwgPSAwOyBsIDwgYzsgbCArPSAxKSBzaGFwZVBvb2wucmVsZWFzZShvLnNoYXBlc1tsXSk7CiAgICAgICAgICAgICAgICAoby5fbGVuZ3RoID0gMCksCiAgICAgICAgICAgICAgICAgIHQgPT09IHIgJiYgKChuID0gcG9vbGluZy5kb3VibGUobikpLCAociAqPSAyKSksCiAgICAgICAgICAgICAgICAgIChuW3RdID0gbyksCiAgICAgICAgICAgICAgICAgICh0ICs9IDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgICBTaGFwZVByb3BlcnR5RmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IC05OTk5OTk7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0KHgsIGssIFMpIHsKICAgICAgICAgICAgICAgICAgdmFyIEEgPSBTLmxhc3RJbmRleCwKICAgICAgICAgICAgICAgICAgICBPLAogICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICQsCiAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICBKLAogICAgICAgICAgICAgICAgICAgIEssCiAgICAgICAgICAgICAgICAgICAgZWUsCiAgICAgICAgICAgICAgICAgICAgbGUgPSB0aGlzLmtleWZyYW1lczsKICAgICAgICAgICAgICAgICAgaWYgKHggPCBsZVswXS50IC0gdGhpcy5vZmZzZXRUaW1lKQogICAgICAgICAgICAgICAgICAgIChPID0gbGVbMF0uc1swXSksIChEID0gITApLCAoQSA9IDApOwogICAgICAgICAgICAgICAgICBlbHNlIGlmICh4ID49IGxlW2xlLmxlbmd0aCAtIDFdLnQgLSB0aGlzLm9mZnNldFRpbWUpCiAgICAgICAgICAgICAgICAgICAgKE8gPSBsZVtsZS5sZW5ndGggLSAxXS5zCiAgICAgICAgICAgICAgICAgICAgICA/IGxlW2xlLmxlbmd0aCAtIDFdLnNbMF0KICAgICAgICAgICAgICAgICAgICAgIDogbGVbbGUubGVuZ3RoIC0gMl0uZVswXSksCiAgICAgICAgICAgICAgICAgICAgICAoRCA9ICEwKTsKICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgIHZhciByZSA9IEEsIEIgPSBsZS5sZW5ndGggLSAxLCB6ID0gITAsIE4sIFYsIFE7CiAgICAgICAgICAgICAgICAgICAgICB6ICYmCiAgICAgICAgICAgICAgICAgICAgICAoKE4gPSBsZVtyZV0pLAogICAgICAgICAgICAgICAgICAgICAgICAoViA9IGxlW3JlICsgMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAhKFYudCAtIHRoaXMub2Zmc2V0VGltZSA+IHgpKTsKCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgcmUgPCBCIC0gMSA/IChyZSArPSAxKSA6ICh6ID0gITEpOwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgoUSA9IHRoaXMua2V5ZnJhbWVzTWV0YWRhdGFbcmVdIHx8IHt9KSwKICAgICAgICAgICAgICAgICAgICAgICAgKEQgPSBOLmggPT09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAoQSA9IHJlKSwKICAgICAgICAgICAgICAgICAgICAgICAgIUQpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoeCA+PSBWLnQgLSB0aGlzLm9mZnNldFRpbWUpIEsgPSAxOwogICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoeCA8IE4udCAtIHRoaXMub2Zmc2V0VGltZSkgSyA9IDA7CiAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFk7CiAgICAgICAgICAgICAgICAgICAgICAgIFEuX19mbmN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoWSA9IFEuX19mbmN0KQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKChZID0gQmV6aWVyRmFjdG9yeS5nZXRCZXppZXJFYXNpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLm8ueCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4uby55LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTi5pLngsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLmkueQogICAgICAgICAgICAgICAgICAgICAgICAgICkuZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChRLl9fZm5jdCA9IFkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoSyA9IFkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCAtIChOLnQgLSB0aGlzLm9mZnNldFRpbWUpKSAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVi50IC0gdGhpcy5vZmZzZXRUaW1lIC0gKE4udCAtIHRoaXMub2Zmc2V0VGltZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBGID0gVi5zID8gVi5zWzBdIDogTi5lWzBdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBPID0gTi5zWzBdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgcSA9IGsuX2xlbmd0aCwgSiA9IE8uaVswXS5sZW5ndGgsIFMubGFzdEluZGV4ID0gQSwgSCA9IDA7CiAgICAgICAgICAgICAgICAgICAgSCA8IHE7CiAgICAgICAgICAgICAgICAgICAgSCArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBmb3IgKCQgPSAwOyAkIDwgSjsgJCArPSAxKQogICAgICAgICAgICAgICAgICAgICAgKGVlID0gRAogICAgICAgICAgICAgICAgICAgICAgICA/IE8uaVtIXVskXQogICAgICAgICAgICAgICAgICAgICAgICA6IE8uaVtIXVskXSArIChGLmlbSF1bJF0gLSBPLmlbSF1bJF0pICogSyksCiAgICAgICAgICAgICAgICAgICAgICAgIChrLmlbSF1bJF0gPSBlZSksCiAgICAgICAgICAgICAgICAgICAgICAgIChlZSA9IEQKICAgICAgICAgICAgICAgICAgICAgICAgICA/IE8ub1tIXVskXQogICAgICAgICAgICAgICAgICAgICAgICAgIDogTy5vW0hdWyRdICsgKEYub1tIXVskXSAtIE8ub1tIXVskXSkgKiBLKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGsub1tIXVskXSA9IGVlKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGVlID0gRAogICAgICAgICAgICAgICAgICAgICAgICAgID8gTy52W0hdWyRdCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBPLnZbSF1bJF0gKyAoRi52W0hdWyRdIC0gTy52W0hdWyRdKSAqIEspLAogICAgICAgICAgICAgICAgICAgICAgICAoay52W0hdWyRdID0gZWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gcigpIHsKICAgICAgICAgICAgICAgICAgdmFyIHggPSB0aGlzLmNvbXAucmVuZGVyZWRGcmFtZSAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgICAgICBrID0gdGhpcy5rZXlmcmFtZXNbMF0udCAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgICAgICBTID0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZnJhbWVzW3RoaXMua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLQogICAgICAgICAgICAgICAgICAgICAgdGhpcy5vZmZzZXRUaW1lLAogICAgICAgICAgICAgICAgICAgIEEgPSB0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAoQSAhPT0gZSAmJiAoKEEgPCBrICYmIHggPCBrKSB8fCAoQSA+IFMgJiYgeCA+IFMpKSkgfHwKICAgICAgICAgICAgICAgICAgICAoKHRoaXMuX2NhY2hpbmcubGFzdEluZGV4ID0KICAgICAgICAgICAgICAgICAgICAgIEEgPCB4ID8gdGhpcy5fY2FjaGluZy5sYXN0SW5kZXggOiAwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJwb2xhdGVTaGFwZSh4LCB0aGlzLnB2LCB0aGlzLl9jYWNoaW5nKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lID0geCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wdgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbigpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5wYXRocyA9IHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb247CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBpKHgsIGspIHsKICAgICAgICAgICAgICAgICAgaWYgKHguX2xlbmd0aCAhPT0gay5fbGVuZ3RoIHx8IHguYyAhPT0gay5jKSByZXR1cm4gITE7CiAgICAgICAgICAgICAgICAgIHZhciBTLAogICAgICAgICAgICAgICAgICAgIEEgPSB4Ll9sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAoUyA9IDA7IFMgPCBBOyBTICs9IDEpCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgeC52W1NdWzBdICE9PSBrLnZbU11bMF0gfHwKICAgICAgICAgICAgICAgICAgICAgIHgudltTXVsxXSAhPT0gay52W1NdWzFdIHx8CiAgICAgICAgICAgICAgICAgICAgICB4Lm9bU11bMF0gIT09IGsub1tTXVswXSB8fAogICAgICAgICAgICAgICAgICAgICAgeC5vW1NdWzFdICE9PSBrLm9bU11bMV0gfHwKICAgICAgICAgICAgICAgICAgICAgIHguaVtTXVswXSAhPT0gay5pW1NdWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgICB4LmlbU11bMV0gIT09IGsuaVtTXVsxXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhMTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYSh4KSB7CiAgICAgICAgICAgICAgICAgIGkodGhpcy52LCB4KSB8fAogICAgICAgICAgICAgICAgICAgICgodGhpcy52ID0gc2hhcGVQb29sLmNsb25lKHgpKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24ucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbi5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbikpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbygpIHsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCkgewogICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZGYgPSAhMTsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jaykgewogICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWVmFsdWUodGhpcy5wdik7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMCksICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHg7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5rZgogICAgICAgICAgICAgICAgICAgICAgPyAoeCA9IHRoaXMucHYpCiAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YS5rcwogICAgICAgICAgICAgICAgICAgICAgICA/ICh4ID0gdGhpcy5kYXRhLmtzLmspCiAgICAgICAgICAgICAgICAgICAgICAgIDogKHggPSB0aGlzLmRhdGEucHQuayk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGssCiAgICAgICAgICAgICAgICAgICAgICBTID0gdGhpcy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBTOyBrICs9IDEpIHggPSB0aGlzLmVmZmVjdHNTZXF1ZW5jZVtrXSh4KTsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZWYWx1ZSh4KSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGwoeCwgaywgUykgewogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wVHlwZSA9ICJzaGFwZSIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSB4LmNvbXApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IHgpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSB4KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gayksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5rZiA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICAgICAgICB2YXIgQSA9IFMgPT09IDMgPyBrLnB0LmsgOiBrLmtzLms7CiAgICAgICAgICAgICAgICAgICh0aGlzLnYgPSBzaGFwZVBvb2wuY2xvbmUoQSkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gc2hhcGVQb29sLmNsb25lKHRoaXMudikpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uID0KICAgICAgICAgICAgICAgICAgICAgIHNoYXBlQ29sbGVjdGlvblBvb2wubmV3U2hhcGVDb2xsZWN0aW9uKCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRocy5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gbiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWZmZWN0c1NlcXVlbmNlID0gW10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gYyh4KSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLnB1c2goeCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKGwucHJvdG90eXBlLmludGVycG9sYXRlU2hhcGUgPSB0KSwKICAgICAgICAgICAgICAgICAgKGwucHJvdG90eXBlLmdldFZhbHVlID0gbyksCiAgICAgICAgICAgICAgICAgIChsLnByb3RvdHlwZS5zZXRWVmFsdWUgPSBhKSwKICAgICAgICAgICAgICAgICAgKGwucHJvdG90eXBlLmFkZEVmZmVjdCA9IGMpOwogICAgICAgICAgICAgICAgZnVuY3Rpb24gdSh4LCBrLCBTKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BUeXBlID0gInNoYXBlIiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29tcCA9IHguY29tcCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IHgpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IHgpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLm9mZnNldFRpbWUgPSB4LmRhdGEuc3QpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lcyA9IFMgPT09IDMgPyBrLnB0LmsgOiBrLmtzLmspLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lc01ldGFkYXRhID0gW10pLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmsgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMCk7CiAgICAgICAgICAgICAgICAgIHZhciBBID0gdGhpcy5rZXlmcmFtZXNbMF0uc1swXS5pLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRQYXRoRGF0YSh0aGlzLmtleWZyYW1lc1swXS5zWzBdLmMsIEEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gc2hhcGVQb29sLmNsb25lKHRoaXMudikpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uID0KICAgICAgICAgICAgICAgICAgICAgIHNoYXBlQ29sbGVjdGlvblBvb2wubmV3U2hhcGVDb2xsZWN0aW9uKCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRocy5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxhc3RGcmFtZSA9IGUpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gbiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcgPSB7IGxhc3RGcmFtZTogZSwgbGFzdEluZGV4OiAwIH0pLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtyLmJpbmQodGhpcyldKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICh1LnByb3RvdHlwZS5nZXRWYWx1ZSA9IG8pLAogICAgICAgICAgICAgICAgICAodS5wcm90b3R5cGUuaW50ZXJwb2xhdGVTaGFwZSA9IHQpLAogICAgICAgICAgICAgICAgICAodS5wcm90b3R5cGUuc2V0VlZhbHVlID0gYSksCiAgICAgICAgICAgICAgICAgICh1LnByb3RvdHlwZS5hZGRFZmZlY3QgPSBjKTsKICAgICAgICAgICAgICAgIHZhciBkID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgdmFyIHggPSByb3VuZENvcm5lcjsKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gayhTLCBBKSB7CiAgICAgICAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFBhdGhEYXRhKCEwLCA0KSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uID0KICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wYXRocyA9IHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24pLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbi5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZCA9IEEuZCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gUyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gUy5jb21wKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoUyksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoUywgQS5wLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoUywgQS5zLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoKHRoaXMuayA9ICExKSwgdGhpcy5jb252ZXJ0RWxsVG9QYXRoKCkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgKGsucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgcmVzZXQ6IG4sCiAgICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkICE9PSB0aGlzLmZyYW1lSWQgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21kZiAmJiB0aGlzLmNvbnZlcnRFbGxUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgY29udmVydEVsbFRvUGF0aDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IHRoaXMucC52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE8gPSB0aGlzLnAudlsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5zLnZbMF0gLyAyLAogICAgICAgICAgICAgICAgICAgICAgICAgIEQgPSB0aGlzLnMudlsxXSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgSCA9IHRoaXMuZCAhPT0gMywKICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gdGhpcy52OwogICAgICAgICAgICAgICAgICAgICAgICAoJC52WzBdWzBdID0gQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQudlswXVsxXSA9IE8gLSBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC52WzFdWzBdID0gSCA/IEEgKyBGIDogQSAtIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLnZbMV1bMV0gPSBPKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC52WzJdWzBdID0gQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQudlsyXVsxXSA9IE8gKyBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC52WzNdWzBdID0gSCA/IEEgLSBGIDogQSArIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLnZbM11bMV0gPSBPKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5pWzBdWzBdID0gSCA/IEEgLSBGICogeCA6IEEgKyBGICogeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQuaVswXVsxXSA9IE8gLSBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5pWzFdWzBdID0gSCA/IEEgKyBGIDogQSAtIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLmlbMV1bMV0gPSBPIC0gRCAqIHgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLmlbMl1bMF0gPSBIID8gQSArIEYgKiB4IDogQSAtIEYgKiB4KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5pWzJdWzFdID0gTyArIEQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLmlbM11bMF0gPSBIID8gQSAtIEYgOiBBICsgRiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQuaVszXVsxXSA9IE8gKyBEICogeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQub1swXVswXSA9IEggPyBBICsgRiAqIHggOiBBIC0gRiAqIHgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLm9bMF1bMV0gPSBPIC0gRCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQub1sxXVswXSA9IEggPyBBICsgRiA6IEEgLSBGKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5vWzFdWzFdID0gTyArIEQgKiB4KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5vWzJdWzBdID0gSCA/IEEgLSBGICogeCA6IEEgKyBGICogeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQub1syXVsxXSA9IE8gKyBEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoJC5vWzNdWzBdID0gSCA/IEEgLSBGIDogQSArIEYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICgkLm9bM11bMV0gPSBPIC0gRCAqIHgpOwogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIGspLAogICAgICAgICAgICAgICAgICAgIGsKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgICAgIEUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHgoaywgUykgewogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0UGF0aERhdGEoITAsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gayksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBrLmNvbXApLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gUyksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmQgPSBTLmQpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoayksCiAgICAgICAgICAgICAgICAgICAgICAgIFMuc3kgPT09IDEKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy5pciA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMuaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmlzID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMuaXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29udmVydFRvUGF0aCA9IHRoaXMuY29udmVydFN0YXJUb1BhdGgpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMuY29udmVydFRvUGF0aCA9IHRoaXMuY29udmVydFBvbHlnb25Ub1BhdGgpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wdCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgICAgIGssCiAgICAgICAgICAgICAgICAgICAgICAgICAgUy5wdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGssIFMucCwgMSwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICAgICAgICBTLnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMub3IgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgICAgICAgIFMub3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm9zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICAgICAgICBTLm9zLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24uYWRkU2hhcGUodGhpcy52KSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMgPSB0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy5rID0gITEpLCB0aGlzLmNvbnZlcnRUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgICAoeC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0OiBuLAogICAgICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZyYW1lSWQgPSB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWRmICYmIHRoaXMuY29udmVydFRvUGF0aCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFN0YXJUb1BhdGg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgUyA9IE1hdGguZmxvb3IodGhpcy5wdC52KSAqIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBID0gKE1hdGguUEkgKiAyKSAvIFMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPID0gITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5vci52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRCA9IHRoaXMuaXIudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggPSB0aGlzLm9zLnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gdGhpcy5pcy52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcSA9ICgyICogTWF0aC5QSSAqIEYpIC8gKFMgKiAyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEogPSAoMiAqIE1hdGguUEkgKiBEKSAvIChTICogMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBLLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQiA9IC1NYXRoLlBJIC8gMjsKICAgICAgICAgICAgICAgICAgICAgICAgICBCICs9IHRoaXMuci52OwogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB6ID0gdGhpcy5kYXRhLmQgPT09IDMgPyAtMSA6IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh0aGlzLnYuX2xlbmd0aCA9IDAsIEsgPSAwOyBLIDwgUzsgSyArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWUgPSBPID8gRiA6IEQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGUgPSBPID8gSCA6ICQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmUgPSBPID8gcSA6IEopOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIE4gPSBlZSAqIE1hdGguY29zKEIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWID0gZWUgKiBNYXRoLnNpbihCKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9PT0gMCAmJiBWID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogViAvIE1hdGguc3FydChOICogTiArIFYgKiBWKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiA9PT0gMCAmJiBWID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLU4gLyBNYXRoLnNxcnQoTiAqIE4gKyBWICogVik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTiArPSArdGhpcy5wLnZbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoViArPSArdGhpcy5wLnZbMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4gLSBRICogcmUgKiBsZSAqIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViAtIFkgKiByZSAqIGxlICogeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICsgUSAqIHJlICogbGUgKiB6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYgKyBZICogcmUgKiBsZSAqIHosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTyA9ICFPKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEIgKz0gQSAqIHopOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFBvbHlnb25Ub1BhdGg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgUyA9IE1hdGguZmxvb3IodGhpcy5wdC52KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgPSAoTWF0aC5QSSAqIDIpIC8gUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8gPSB0aGlzLm9yLnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGID0gdGhpcy5vcy52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRCA9ICgyICogTWF0aC5QSSAqIE8pIC8gKFMgKiA0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gLU1hdGguUEkgKiAwLjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxID0gdGhpcy5kYXRhLmQgPT09IDMgPyAtMSA6IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQgKz0gdGhpcy5yLnYsIHRoaXMudi5fbGVuZ3RoID0gMCwgSCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIIDwgUzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggKz0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEogPSBPICogTWF0aC5jb3MoJCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEsgPSBPICogTWF0aC5zaW4oJCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVlID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKID09PSAwICYmIEsgPT09IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBLIC8gTWF0aC5zcXJ0KEogKiBKICsgSyAqIEspLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiA9PT0gMCAmJiBLID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLUogLyBNYXRoLnNxcnQoSiAqIEogKyBLICogSyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSiArPSArdGhpcy5wLnZbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSyArPSArdGhpcy5wLnZbMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEogLSBlZSAqIEQgKiBGICogcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLIC0gbGUgKiBEICogRiAqIHEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSiArIGVlICogRCAqIEYgKiBxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEsgKyBsZSAqIEQgKiBGICogcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkICs9IEEgKiBxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMubGVuZ3RoID0gMCksICh0aGlzLnBhdGhzWzBdID0gdGhpcy52KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCB4KSwKICAgICAgICAgICAgICAgICAgICAgIHgKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgICAgICBiID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB4KGssIFMpIHsKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYgPSBzaGFwZVBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMudi5jID0gITApLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24uYWRkU2hhcGUodGhpcy52KSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMgPSB0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGspLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gay5jb21wKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IC0xKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZCA9IFMuZCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihrKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGssIFMucCwgMSwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoaywgUy5zLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnIgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChrLCBTLnIsIDAsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy5rID0gITEpLCB0aGlzLmNvbnZlcnRSZWN0VG9QYXRoKCkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgKHgucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0UmVjdFRvUGF0aDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBTID0gdGhpcy5wLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBID0gdGhpcy5wLnZbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPID0gdGhpcy5zLnZbMF0gLyAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRiA9IHRoaXMucy52WzFdIC8gMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQgPSBibU1pbihPLCBGLCB0aGlzLnIudiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIID0gRCAqICgxIC0gcm91bmRDb3JuZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYuX2xlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kID09PSAyIHx8IHRoaXMuZCA9PT0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRCAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8gLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEICE9PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYgKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgLSBGICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8gKyBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTyArIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8gLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPIC0gSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTyAtIEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYgLSBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGIC0gRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTICsgTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPICsgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAtIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgLSBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIC0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIC0gTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBICsgRiAtIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyAtIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSArIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyArIE8gLSBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgKyBPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgKyBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZyYW1lSWQgPSB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWRmICYmIHRoaXMuY29udmVydFJlY3RUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0OiBuLAogICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIHgpLAogICAgICAgICAgICAgICAgICAgICAgeAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBQKHgsIGssIFMpIHsKICAgICAgICAgICAgICAgICAgdmFyIEE7CiAgICAgICAgICAgICAgICAgIGlmIChTID09PSAzIHx8IFMgPT09IDQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgTyA9IFMgPT09IDMgPyBrLnB0IDogay5rcywKICAgICAgICAgICAgICAgICAgICAgIEYgPSBPLms7CiAgICAgICAgICAgICAgICAgICAgRi5sZW5ndGggPyAoQSA9IG5ldyB1KHgsIGssIFMpKSA6IChBID0gbmV3IGwoeCwgaywgUykpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBTID09PSA1CiAgICAgICAgICAgICAgICAgICAgICA/IChBID0gbmV3IGIoeCwgaykpCiAgICAgICAgICAgICAgICAgICAgICA6IFMgPT09IDYKICAgICAgICAgICAgICAgICAgICAgICAgPyAoQSA9IG5ldyBkKHgsIGspKQogICAgICAgICAgICAgICAgICAgICAgICA6IFMgPT09IDcgJiYgKEEgPSBuZXcgRSh4LCBrKSk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBBLmsgJiYgeC5hZGREeW5hbWljUHJvcGVydHkoQSksIEE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBSKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFQoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB1OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIE0gPSB7fTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChNLmdldFNoYXBlUHJvcCA9IFApLAogICAgICAgICAgICAgICAgICAoTS5nZXRDb25zdHJ1Y3RvckZ1bmN0aW9uID0gUiksCiAgICAgICAgICAgICAgICAgIChNLmdldEtleWZyYW1lZENvbnN0cnVjdG9yRnVuY3Rpb24gPSBUKSwKICAgICAgICAgICAgICAgICAgTQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICAvKiEKIFRyYW5zZm9ybWF0aW9uIE1hdHJpeCB2Mi4wCiAoYykgRXBpc3RlbWV4IDIwMTQtMjAxNQogd3d3LmVwaXN0ZW1leC5jb20KIEJ5IEtlbiBGeXJzdGVuYmVyZwogQ29udHJpYnV0aW9ucyBieSBsZWVvbml5YS4KIExpY2Vuc2U6IE1JVCwgaGVhZGVyIHJlcXVpcmVkLgogKi8gdmFyIE1hdHJpeCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBNYXRoLmNvcywKICAgICAgICAgICAgICAgIHQgPSBNYXRoLnNpbiwKICAgICAgICAgICAgICAgIHIgPSBNYXRoLnRhbiwKICAgICAgICAgICAgICAgIG4gPSBNYXRoLnJvdW5kOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGkoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1swXSA9IDEpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1syXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1szXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s0XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s1XSA9IDEpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s2XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s3XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s4XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s5XSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxMF0gPSAxKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTFdID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzEyXSA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxM10gPSAwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTRdID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzE1XSA9IDEpLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBhKE4pIHsKICAgICAgICAgICAgICAgIGlmIChOID09PSAwKSByZXR1cm4gdGhpczsKICAgICAgICAgICAgICAgIHZhciBWID0gZShOKSwKICAgICAgICAgICAgICAgICAgUSA9IHQoTik7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdChWLCAtUSwgMCwgMCwgUSwgViwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oTikgewogICAgICAgICAgICAgICAgaWYgKE4gPT09IDApIHJldHVybiB0aGlzOwogICAgICAgICAgICAgICAgdmFyIFYgPSBlKE4pLAogICAgICAgICAgICAgICAgICBRID0gdChOKTsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl90KDEsIDAsIDAsIDAsIDAsIFYsIC1RLCAwLCAwLCBRLCBWLCAwLCAwLCAwLCAwLCAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbChOKSB7CiAgICAgICAgICAgICAgICBpZiAoTiA9PT0gMCkgcmV0dXJuIHRoaXM7CiAgICAgICAgICAgICAgICB2YXIgViA9IGUoTiksCiAgICAgICAgICAgICAgICAgIFEgPSB0KE4pOwogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3QoViwgMCwgUSwgMCwgMCwgMSwgMCwgMCwgLVEsIDAsIFYsIDAsIDAsIDAsIDAsIDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBjKE4pIHsKICAgICAgICAgICAgICAgIGlmIChOID09PSAwKSByZXR1cm4gdGhpczsKICAgICAgICAgICAgICAgIHZhciBWID0gZShOKSwKICAgICAgICAgICAgICAgICAgUSA9IHQoTik7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdChWLCAtUSwgMCwgMCwgUSwgViwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHUoTiwgVikgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3QoMSwgViwgTiwgMSwgMCwgMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGQoTiwgVikgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hlYXIocihOKSwgcihWKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEUoTiwgVikgewogICAgICAgICAgICAgICAgdmFyIFEgPSBlKFYpLAogICAgICAgICAgICAgICAgICBZID0gdChWKTsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl90KFEsIFksIDAsIDAsIC1ZLCBRLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxKQogICAgICAgICAgICAgICAgICAuX3QoMSwgMCwgMCwgMCwgcihOKSwgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSkKICAgICAgICAgICAgICAgICAgLl90KFEsIC1ZLCAwLCAwLCBZLCBRLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYihOLCBWLCBRKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAhUSAmJiBRICE9PSAwICYmIChRID0gMSksCiAgICAgICAgICAgICAgICAgIE4gPT09IDEgJiYgViA9PT0gMSAmJiBRID09PSAxCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl90KE4sIDAsIDAsIDAsIDAsIFYsIDAsIDAsIDAsIDAsIFEsIDAsIDAsIDAsIDAsIDEpCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBQKAogICAgICAgICAgICAgICAgTiwKICAgICAgICAgICAgICAgIFYsCiAgICAgICAgICAgICAgICBRLAogICAgICAgICAgICAgICAgWSwKICAgICAgICAgICAgICAgIGhlLAogICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICB2ZSwKICAgICAgICAgICAgICAgIFBlLAogICAgICAgICAgICAgICAgQ2UsCiAgICAgICAgICAgICAgICBpZSwKICAgICAgICAgICAgICAgIG1lLAogICAgICAgICAgICAgICAgcGUsCiAgICAgICAgICAgICAgICBnZSwKICAgICAgICAgICAgICAgIEVlLAogICAgICAgICAgICAgICAgU2UsCiAgICAgICAgICAgICAgICBXCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1swXSA9IE4pLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxXSA9IFYpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1syXSA9IFEpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1szXSA9IFkpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s0XSA9IGhlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbNV0gPSB5ZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzZdID0gdmUpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s3XSA9IFBlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbOF0gPSBDZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzldID0gaWUpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxMF0gPSBtZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzExXSA9IHBlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTJdID0gZ2UpLAogICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxM10gPSBFZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzE0XSA9IFNlKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTVdID0gVyksCiAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFIoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgKFEgPSBRIHx8IDApLAogICAgICAgICAgICAgICAgICBOICE9PSAwIHx8IFYgIT09IDAgfHwgUSAhPT0gMAogICAgICAgICAgICAgICAgICAgID8gdGhpcy5fdCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCBOLCBWLCBRLCAxKQogICAgICAgICAgICAgICAgICAgIDogdGhpcwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gVCgKICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgIFksCiAgICAgICAgICAgICAgICBoZSwKICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgdmUsCiAgICAgICAgICAgICAgICBQZSwKICAgICAgICAgICAgICAgIENlLAogICAgICAgICAgICAgICAgaWUsCiAgICAgICAgICAgICAgICBtZSwKICAgICAgICAgICAgICAgIHBlLAogICAgICAgICAgICAgICAgZ2UsCiAgICAgICAgICAgICAgICBFZSwKICAgICAgICAgICAgICAgIFNlLAogICAgICAgICAgICAgICAgVwogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIEcgPSB0aGlzLnByb3BzOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICBOID09PSAxICYmCiAgICAgICAgICAgICAgICAgIFYgPT09IDAgJiYKICAgICAgICAgICAgICAgICAgUSA9PT0gMCAmJgogICAgICAgICAgICAgICAgICBZID09PSAwICYmCiAgICAgICAgICAgICAgICAgIGhlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIHllID09PSAxICYmCiAgICAgICAgICAgICAgICAgIHZlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIFBlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIENlID09PSAwICYmCiAgICAgICAgICAgICAgICAgIGllID09PSAwICYmCiAgICAgICAgICAgICAgICAgIG1lID09PSAxICYmCiAgICAgICAgICAgICAgICAgIHBlID09PSAwCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgKEdbMTJdID0gR1sxMl0gKiBOICsgR1sxNV0gKiBnZSksCiAgICAgICAgICAgICAgICAgICAgKEdbMTNdID0gR1sxM10gKiB5ZSArIEdbMTVdICogRWUpLAogICAgICAgICAgICAgICAgICAgIChHWzE0XSA9IEdbMTRdICogbWUgKyBHWzE1XSAqIFNlKSwKICAgICAgICAgICAgICAgICAgICAoR1sxNV0gKj0gVyksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB2YXIgdGUgPSBHWzBdLAogICAgICAgICAgICAgICAgICBhZSA9IEdbMV0sCiAgICAgICAgICAgICAgICAgIHNlID0gR1syXSwKICAgICAgICAgICAgICAgICAgY2UgPSBHWzNdLAogICAgICAgICAgICAgICAgICBkZSA9IEdbNF0sCiAgICAgICAgICAgICAgICAgIGogPSBHWzVdLAogICAgICAgICAgICAgICAgICBVID0gR1s2XSwKICAgICAgICAgICAgICAgICAgWCA9IEdbN10sCiAgICAgICAgICAgICAgICAgIG9lID0gR1s4XSwKICAgICAgICAgICAgICAgICAgZmUgPSBHWzldLAogICAgICAgICAgICAgICAgICB1ZSA9IEdbMTBdLAogICAgICAgICAgICAgICAgICBaID0gR1sxMV0sCiAgICAgICAgICAgICAgICAgIG5lID0gR1sxMl0sCiAgICAgICAgICAgICAgICAgIF9lID0gR1sxM10sCiAgICAgICAgICAgICAgICAgIGJlID0gR1sxNF0sCiAgICAgICAgICAgICAgICAgIFRlID0gR1sxNV07CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoR1swXSA9IHRlICogTiArIGFlICogaGUgKyBzZSAqIENlICsgY2UgKiBnZSksCiAgICAgICAgICAgICAgICAgIChHWzFdID0gdGUgKiBWICsgYWUgKiB5ZSArIHNlICogaWUgKyBjZSAqIEVlKSwKICAgICAgICAgICAgICAgICAgKEdbMl0gPSB0ZSAqIFEgKyBhZSAqIHZlICsgc2UgKiBtZSArIGNlICogU2UpLAogICAgICAgICAgICAgICAgICAoR1szXSA9IHRlICogWSArIGFlICogUGUgKyBzZSAqIHBlICsgY2UgKiBXKSwKICAgICAgICAgICAgICAgICAgKEdbNF0gPSBkZSAqIE4gKyBqICogaGUgKyBVICogQ2UgKyBYICogZ2UpLAogICAgICAgICAgICAgICAgICAoR1s1XSA9IGRlICogViArIGogKiB5ZSArIFUgKiBpZSArIFggKiBFZSksCiAgICAgICAgICAgICAgICAgIChHWzZdID0gZGUgKiBRICsgaiAqIHZlICsgVSAqIG1lICsgWCAqIFNlKSwKICAgICAgICAgICAgICAgICAgKEdbN10gPSBkZSAqIFkgKyBqICogUGUgKyBVICogcGUgKyBYICogVyksCiAgICAgICAgICAgICAgICAgIChHWzhdID0gb2UgKiBOICsgZmUgKiBoZSArIHVlICogQ2UgKyBaICogZ2UpLAogICAgICAgICAgICAgICAgICAoR1s5XSA9IG9lICogViArIGZlICogeWUgKyB1ZSAqIGllICsgWiAqIEVlKSwKICAgICAgICAgICAgICAgICAgKEdbMTBdID0gb2UgKiBRICsgZmUgKiB2ZSArIHVlICogbWUgKyBaICogU2UpLAogICAgICAgICAgICAgICAgICAoR1sxMV0gPSBvZSAqIFkgKyBmZSAqIFBlICsgdWUgKiBwZSArIFogKiBXKSwKICAgICAgICAgICAgICAgICAgKEdbMTJdID0gbmUgKiBOICsgX2UgKiBoZSArIGJlICogQ2UgKyBUZSAqIGdlKSwKICAgICAgICAgICAgICAgICAgKEdbMTNdID0gbmUgKiBWICsgX2UgKiB5ZSArIGJlICogaWUgKyBUZSAqIEVlKSwKICAgICAgICAgICAgICAgICAgKEdbMTRdID0gbmUgKiBRICsgX2UgKiB2ZSArIGJlICogbWUgKyBUZSAqIFNlKSwKICAgICAgICAgICAgICAgICAgKEdbMTVdID0gbmUgKiBZICsgX2UgKiBQZSArIGJlICogcGUgKyBUZSAqIFcpLAogICAgICAgICAgICAgICAgICAodGhpcy5faWRlbnRpdHlDYWxjdWxhdGVkID0gITEpLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBNKE4pIHsKICAgICAgICAgICAgICAgIHZhciBWID0gTi5wcm9wczsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgVlswXSwKICAgICAgICAgICAgICAgICAgVlsxXSwKICAgICAgICAgICAgICAgICAgVlsyXSwKICAgICAgICAgICAgICAgICAgVlszXSwKICAgICAgICAgICAgICAgICAgVls0XSwKICAgICAgICAgICAgICAgICAgVls1XSwKICAgICAgICAgICAgICAgICAgVls2XSwKICAgICAgICAgICAgICAgICAgVls3XSwKICAgICAgICAgICAgICAgICAgVls4XSwKICAgICAgICAgICAgICAgICAgVls5XSwKICAgICAgICAgICAgICAgICAgVlsxMF0sCiAgICAgICAgICAgICAgICAgIFZbMTFdLAogICAgICAgICAgICAgICAgICBWWzEyXSwKICAgICAgICAgICAgICAgICAgVlsxM10sCiAgICAgICAgICAgICAgICAgIFZbMTRdLAogICAgICAgICAgICAgICAgICBWWzE1XQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24geCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCB8fAogICAgICAgICAgICAgICAgICAoKHRoaXMuX2lkZW50aXR5ID0gISgKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzBdICE9PSAxIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxXSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMl0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzNdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1s0XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbNV0gIT09IDEgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzZdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1s3XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbOF0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzldICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxMF0gIT09IDEgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzExXSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTJdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxM10gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzE0XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTVdICE9PSAxCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9pZGVudGl0eUNhbGN1bGF0ZWQgPSAhMCkpLAogICAgICAgICAgICAgICAgICB0aGlzLl9pZGVudGl0eQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gayhOKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBWID0gMDsgViA8IDE2OykgewogICAgICAgICAgICAgICAgICBpZiAoTi5wcm9wc1tWXSAhPT0gdGhpcy5wcm9wc1tWXSkgcmV0dXJuICExOwogICAgICAgICAgICAgICAgICBWICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFMoTikgewogICAgICAgICAgICAgICAgdmFyIFY7CiAgICAgICAgICAgICAgICBmb3IgKFYgPSAwOyBWIDwgMTY7IFYgKz0gMSkgTi5wcm9wc1tWXSA9IHRoaXMucHJvcHNbVl07CiAgICAgICAgICAgICAgICByZXR1cm4gTjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gQShOKSB7CiAgICAgICAgICAgICAgICB2YXIgVjsKICAgICAgICAgICAgICAgIGZvciAoViA9IDA7IFYgPCAxNjsgViArPSAxKSB0aGlzLnByb3BzW1ZdID0gTltWXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gTyhOLCBWLCBRKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICB4OgogICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzBdICsKICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s0XSArCiAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbOF0gKwogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTJdLAogICAgICAgICAgICAgICAgICB5OgogICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzFdICsKICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s1XSArCiAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbOV0gKwogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTNdLAogICAgICAgICAgICAgICAgICB6OgogICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzJdICsKICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s2XSArCiAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbMTBdICsKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzE0XSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEYoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMF0gKwogICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s0XSArCiAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzhdICsKICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxMl0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEQoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMV0gKwogICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s1XSArCiAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzldICsKICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxM10KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEgoTiwgViwgUSkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMl0gKwogICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s2XSArCiAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzEwXSArCiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTRdCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiAkKCkgewogICAgICAgICAgICAgICAgdmFyIE4gPQogICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzBdICogdGhpcy5wcm9wc1s1XSAtCiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMV0gKiB0aGlzLnByb3BzWzRdLAogICAgICAgICAgICAgICAgICBWID0gdGhpcy5wcm9wc1s1XSAvIE4sCiAgICAgICAgICAgICAgICAgIFEgPSAtdGhpcy5wcm9wc1sxXSAvIE4sCiAgICAgICAgICAgICAgICAgIFkgPSAtdGhpcy5wcm9wc1s0XSAvIE4sCiAgICAgICAgICAgICAgICAgIGhlID0gdGhpcy5wcm9wc1swXSAvIE4sCiAgICAgICAgICAgICAgICAgIHllID0KICAgICAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s0XSAqIHRoaXMucHJvcHNbMTNdIC0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbNV0gKiB0aGlzLnByb3BzWzEyXSkgLwogICAgICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICAgIHZlID0KICAgICAgICAgICAgICAgICAgICAtKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1swXSAqIHRoaXMucHJvcHNbMTNdIC0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMV0gKiB0aGlzLnByb3BzWzEyXQogICAgICAgICAgICAgICAgICAgICkgLyBOLAogICAgICAgICAgICAgICAgICBQZSA9IG5ldyBNYXRyaXgoKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChQZS5wcm9wc1swXSA9IFYpLAogICAgICAgICAgICAgICAgICAoUGUucHJvcHNbMV0gPSBRKSwKICAgICAgICAgICAgICAgICAgKFBlLnByb3BzWzRdID0gWSksCiAgICAgICAgICAgICAgICAgIChQZS5wcm9wc1s1XSA9IGhlKSwKICAgICAgICAgICAgICAgICAgKFBlLnByb3BzWzEyXSA9IHllKSwKICAgICAgICAgICAgICAgICAgKFBlLnByb3BzWzEzXSA9IHZlKSwKICAgICAgICAgICAgICAgICAgUGUKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHEoTikgewogICAgICAgICAgICAgICAgdmFyIFYgPSB0aGlzLmdldEludmVyc2VNYXRyaXgoKTsKICAgICAgICAgICAgICAgIHJldHVybiBWLmFwcGx5VG9Qb2ludEFycmF5KE5bMF0sIE5bMV0sIE5bMl0gfHwgMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEooTikgewogICAgICAgICAgICAgICAgdmFyIFYsCiAgICAgICAgICAgICAgICAgIFEgPSBOLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgWSA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkgWVtWXSA9IHEoTltWXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gWTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gSyhOLCBWLCBRKSB7CiAgICAgICAgICAgICAgICB2YXIgWSA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCA2KTsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzSWRlbnRpdHkoKSkKICAgICAgICAgICAgICAgICAgKFlbMF0gPSBOWzBdKSwKICAgICAgICAgICAgICAgICAgICAoWVsxXSA9IE5bMV0pLAogICAgICAgICAgICAgICAgICAgIChZWzJdID0gVlswXSksCiAgICAgICAgICAgICAgICAgICAgKFlbM10gPSBWWzFdKSwKICAgICAgICAgICAgICAgICAgICAoWVs0XSA9IFFbMF0pLAogICAgICAgICAgICAgICAgICAgIChZWzVdID0gUVsxXSk7CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIGhlID0gdGhpcy5wcm9wc1swXSwKICAgICAgICAgICAgICAgICAgICB5ZSA9IHRoaXMucHJvcHNbMV0sCiAgICAgICAgICAgICAgICAgICAgdmUgPSB0aGlzLnByb3BzWzRdLAogICAgICAgICAgICAgICAgICAgIFBlID0gdGhpcy5wcm9wc1s1XSwKICAgICAgICAgICAgICAgICAgICBDZSA9IHRoaXMucHJvcHNbMTJdLAogICAgICAgICAgICAgICAgICAgIGllID0gdGhpcy5wcm9wc1sxM107CiAgICAgICAgICAgICAgICAgIChZWzBdID0gTlswXSAqIGhlICsgTlsxXSAqIHZlICsgQ2UpLAogICAgICAgICAgICAgICAgICAgIChZWzFdID0gTlswXSAqIHllICsgTlsxXSAqIFBlICsgaWUpLAogICAgICAgICAgICAgICAgICAgIChZWzJdID0gVlswXSAqIGhlICsgVlsxXSAqIHZlICsgQ2UpLAogICAgICAgICAgICAgICAgICAgIChZWzNdID0gVlswXSAqIHllICsgVlsxXSAqIFBlICsgaWUpLAogICAgICAgICAgICAgICAgICAgIChZWzRdID0gUVswXSAqIGhlICsgUVsxXSAqIHZlICsgQ2UpLAogICAgICAgICAgICAgICAgICAgIChZWzVdID0gUVswXSAqIHllICsgUVsxXSAqIFBlICsgaWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIFk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGVlKE4sIFYsIFEpIHsKICAgICAgICAgICAgICAgIHZhciBZOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdGhpcy5pc0lkZW50aXR5KCkKICAgICAgICAgICAgICAgICAgICA/IChZID0gW04sIFYsIFFdKQogICAgICAgICAgICAgICAgICAgIDogKFkgPSBbCiAgICAgICAgICAgICAgICAgICAgICBOICogdGhpcy5wcm9wc1swXSArCiAgICAgICAgICAgICAgICAgICAgICBWICogdGhpcy5wcm9wc1s0XSArCiAgICAgICAgICAgICAgICAgICAgICBRICogdGhpcy5wcm9wc1s4XSArCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzEyXSwKICAgICAgICAgICAgICAgICAgICAgIE4gKiB0aGlzLnByb3BzWzFdICsKICAgICAgICAgICAgICAgICAgICAgIFYgKiB0aGlzLnByb3BzWzVdICsKICAgICAgICAgICAgICAgICAgICAgIFEgKiB0aGlzLnByb3BzWzldICsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTNdLAogICAgICAgICAgICAgICAgICAgICAgTiAqIHRoaXMucHJvcHNbMl0gKwogICAgICAgICAgICAgICAgICAgICAgViAqIHRoaXMucHJvcHNbNl0gKwogICAgICAgICAgICAgICAgICAgICAgUSAqIHRoaXMucHJvcHNbMTBdICsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTRdLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICBZCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBsZShOLCBWKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0lkZW50aXR5KCkpIHJldHVybiBOICsgIiwiICsgVjsKICAgICAgICAgICAgICAgIHZhciBRID0gdGhpcy5wcm9wczsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoKE4gKiBRWzBdICsgViAqIFFbNF0gKyBRWzEyXSkgKiAxMDApIC8gMTAwICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgoTiAqIFFbMV0gKyBWICogUVs1XSArIFFbMTNdKSAqIDEwMCkgLyAxMDAKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHJlKCkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdmFyIE4gPSAwLCBWID0gdGhpcy5wcm9wcywgUSA9ICJtYXRyaXgzZCgiLCBZID0gMWU0OwogICAgICAgICAgICAgICAgICBOIDwgMTY7CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAoUSArPSBuKFZbTl0gKiBZKSAvIFkpLCAoUSArPSBOID09PSAxNSA/ICIpIiA6ICIsIiksIChOICs9IDEpOwogICAgICAgICAgICAgICAgcmV0dXJuIFE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEIoTikgewogICAgICAgICAgICAgICAgdmFyIFYgPSAxZTQ7CiAgICAgICAgICAgICAgICByZXR1cm4gKE4gPCAxZS02ICYmIE4gPiAwKSB8fCAoTiA+IC0xZS02ICYmIE4gPCAwKQogICAgICAgICAgICAgICAgICA/IG4oTiAqIFYpIC8gVgogICAgICAgICAgICAgICAgICA6IE47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHooKSB7CiAgICAgICAgICAgICAgICB2YXIgTiA9IHRoaXMucHJvcHMsCiAgICAgICAgICAgICAgICAgIFYgPSBCKE5bMF0pLAogICAgICAgICAgICAgICAgICBRID0gQihOWzFdKSwKICAgICAgICAgICAgICAgICAgWSA9IEIoTls0XSksCiAgICAgICAgICAgICAgICAgIGhlID0gQihOWzVdKSwKICAgICAgICAgICAgICAgICAgeWUgPSBCKE5bMTJdKSwKICAgICAgICAgICAgICAgICAgdmUgPSBCKE5bMTNdKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICJtYXRyaXgoIiArCiAgICAgICAgICAgICAgICAgIFYgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICBRICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgWSArCiAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgIGhlICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgeWUgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICB2ZSArCiAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gaSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJvdGF0ZSA9IGEpLAogICAgICAgICAgICAgICAgICAodGhpcy5yb3RhdGVYID0gbyksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJvdGF0ZVkgPSBsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucm90YXRlWiA9IGMpLAogICAgICAgICAgICAgICAgICAodGhpcy5za2V3ID0gZCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNrZXdGcm9tQXhpcyA9IEUpLAogICAgICAgICAgICAgICAgICAodGhpcy5zaGVhciA9IHUpLAogICAgICAgICAgICAgICAgICAodGhpcy5zY2FsZSA9IGIpLAogICAgICAgICAgICAgICAgICAodGhpcy5zZXRUcmFuc2Zvcm0gPSBQKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudHJhbnNsYXRlID0gUiksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybSA9IFQpLAogICAgICAgICAgICAgICAgICAodGhpcy5tdWx0aXBseSA9IE0pLAogICAgICAgICAgICAgICAgICAodGhpcy5hcHBseVRvUG9pbnQgPSBPKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1ggPSBGKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1kgPSBEKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1ogPSBIKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1BvaW50QXJyYXkgPSBlZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VG9UcmlwbGVQb2ludHMgPSBLKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQgPSBsZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRvQ1NTID0gcmUpLAogICAgICAgICAgICAgICAgICAodGhpcy50bzJkQ1NTID0geiksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNsb25lID0gUyksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNsb25lRnJvbVByb3BzID0gQSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmVxdWFscyA9IGspLAogICAgICAgICAgICAgICAgICAodGhpcy5pbnZlcnNlUG9pbnRzID0gSiksCiAgICAgICAgICAgICAgICAgICh0aGlzLmludmVyc2VQb2ludCA9IHEpLAogICAgICAgICAgICAgICAgICAodGhpcy5nZXRJbnZlcnNlTWF0cml4ID0gJCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl90ID0gdGhpcy50cmFuc2Zvcm0pLAogICAgICAgICAgICAgICAgICAodGhpcy5pc0lkZW50aXR5ID0geCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pZGVudGl0eSA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHMgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgMTYpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIF90eXBlb2YkMyhlKSB7CiAgICAgICAgICAgICAgIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgPyAoX3R5cGVvZiQzID0gZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHI7CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgIDogKF90eXBlb2YkMyA9IGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgci5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICByICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiByOwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIF90eXBlb2YkMyhlKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGxvdHRpZSA9IHt9OwogICAgICAgICAgICBmdW5jdGlvbiBzZXRMb2NhdGlvbihlKSB7CiAgICAgICAgICAgICAgc2V0TG9jYXRpb25IcmVmKGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHNlYXJjaEFuaW1hdGlvbnMoKSB7CiAgICAgICAgICAgICAgYW5pbWF0aW9uTWFuYWdlci5zZWFyY2hBbmltYXRpb25zKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gc2V0U3ViZnJhbWVSZW5kZXJpbmcoZSkgewogICAgICAgICAgICAgIHNldFN1YmZyYW1lRW5hYmxlZChlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzZXRQcmVmaXgoZSkgewogICAgICAgICAgICAgIHNldElkUHJlZml4KGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRBbmltYXRpb24oZSkgewogICAgICAgICAgICAgIHJldHVybiBhbmltYXRpb25NYW5hZ2VyLmxvYWRBbmltYXRpb24oZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gc2V0UXVhbGl0eShlKSB7CiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBlID09ICJzdHJpbmciKQogICAgICAgICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgImhpZ2giOgogICAgICAgICAgICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzKDIwMCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIGNhc2UgIm1lZGl1bSI6CiAgICAgICAgICAgICAgICAgICAgc2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoNTApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlICJsb3ciOgogICAgICAgICAgICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzKDEwKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlICFpc05hTihlKSAmJiBlID4gMSAmJiBzZXREZWZhdWx0Q3VydmVTZWdtZW50cyhlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBpbkJyb3dzZXIoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBuYXZpZ2F0b3IgPCAidSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaW5zdGFsbFBsdWdpbihlLCB0KSB7CiAgICAgICAgICAgICAgZSA9PT0gImV4cHJlc3Npb25zIiAmJiBzZXRFeHByZXNzaW9uc1BsdWdpbih0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBnZXRGYWN0b3J5KGUpIHsKICAgICAgICAgICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgInByb3BlcnR5RmFjdG9yeSI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eUZhY3Rvcnk7CiAgICAgICAgICAgICAgICBjYXNlICJzaGFwZVByb3BlcnR5RmFjdG9yeSI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBTaGFwZVByb3BlcnR5RmFjdG9yeTsKICAgICAgICAgICAgICAgIGNhc2UgIm1hdHJpeCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBNYXRyaXg7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKGxvdHRpZS5wbGF5ID0gYW5pbWF0aW9uTWFuYWdlci5wbGF5KSwKICAgICAgICAgICAgICAobG90dGllLnBhdXNlID0gYW5pbWF0aW9uTWFuYWdlci5wYXVzZSksCiAgICAgICAgICAgICAgKGxvdHRpZS5zZXRMb2NhdGlvbkhyZWYgPSBzZXRMb2NhdGlvbiksCiAgICAgICAgICAgICAgKGxvdHRpZS50b2dnbGVQYXVzZSA9IGFuaW1hdGlvbk1hbmFnZXIudG9nZ2xlUGF1c2UpLAogICAgICAgICAgICAgIChsb3R0aWUuc2V0U3BlZWQgPSBhbmltYXRpb25NYW5hZ2VyLnNldFNwZWVkKSwKICAgICAgICAgICAgICAobG90dGllLnNldERpcmVjdGlvbiA9IGFuaW1hdGlvbk1hbmFnZXIuc2V0RGlyZWN0aW9uKSwKICAgICAgICAgICAgICAobG90dGllLnN0b3AgPSBhbmltYXRpb25NYW5hZ2VyLnN0b3ApLAogICAgICAgICAgICAgIChsb3R0aWUuc2VhcmNoQW5pbWF0aW9ucyA9IHNlYXJjaEFuaW1hdGlvbnMpLAogICAgICAgICAgICAgIChsb3R0aWUucmVnaXN0ZXJBbmltYXRpb24gPSBhbmltYXRpb25NYW5hZ2VyLnJlZ2lzdGVyQW5pbWF0aW9uKSwKICAgICAgICAgICAgICAobG90dGllLmxvYWRBbmltYXRpb24gPSBsb2FkQW5pbWF0aW9uKSwKICAgICAgICAgICAgICAobG90dGllLnNldFN1YmZyYW1lUmVuZGVyaW5nID0gc2V0U3ViZnJhbWVSZW5kZXJpbmcpLAogICAgICAgICAgICAgIChsb3R0aWUucmVzaXplID0gYW5pbWF0aW9uTWFuYWdlci5yZXNpemUpLAogICAgICAgICAgICAgIChsb3R0aWUuZ29Ub0FuZFN0b3AgPSBhbmltYXRpb25NYW5hZ2VyLmdvVG9BbmRTdG9wKSwKICAgICAgICAgICAgICAobG90dGllLmRlc3Ryb3kgPSBhbmltYXRpb25NYW5hZ2VyLmRlc3Ryb3kpLAogICAgICAgICAgICAgIChsb3R0aWUuc2V0UXVhbGl0eSA9IHNldFF1YWxpdHkpLAogICAgICAgICAgICAgIChsb3R0aWUuaW5Ccm93c2VyID0gaW5Ccm93c2VyKSwKICAgICAgICAgICAgICAobG90dGllLmluc3RhbGxQbHVnaW4gPSBpbnN0YWxsUGx1Z2luKSwKICAgICAgICAgICAgICAobG90dGllLmZyZWV6ZSA9IGFuaW1hdGlvbk1hbmFnZXIuZnJlZXplKSwKICAgICAgICAgICAgICAobG90dGllLnVuZnJlZXplID0gYW5pbWF0aW9uTWFuYWdlci51bmZyZWV6ZSksCiAgICAgICAgICAgICAgKGxvdHRpZS5zZXRWb2x1bWUgPSBhbmltYXRpb25NYW5hZ2VyLnNldFZvbHVtZSksCiAgICAgICAgICAgICAgKGxvdHRpZS5tdXRlID0gYW5pbWF0aW9uTWFuYWdlci5tdXRlKSwKICAgICAgICAgICAgICAobG90dGllLnVubXV0ZSA9IGFuaW1hdGlvbk1hbmFnZXIudW5tdXRlKSwKICAgICAgICAgICAgICAobG90dGllLmdldFJlZ2lzdGVyZWRBbmltYXRpb25zID0KICAgICAgICAgICAgICAgIGFuaW1hdGlvbk1hbmFnZXIuZ2V0UmVnaXN0ZXJlZEFuaW1hdGlvbnMpLAogICAgICAgICAgICAgIChsb3R0aWUudXNlV2ViV29ya2VyID0gc2V0V2ViV29ya2VyKSwKICAgICAgICAgICAgICAobG90dGllLnNldElEUHJlZml4ID0gc2V0UHJlZml4KSwKICAgICAgICAgICAgICAobG90dGllLl9fZ2V0RmFjdG9yeSA9IGdldEZhY3RvcnkpLAogICAgICAgICAgICAgIChsb3R0aWUudmVyc2lvbiA9ICI1LjEyLjIiKTsKICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tSZWFkeSgpIHsKICAgICAgICAgICAgICBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiICYmCiAgICAgICAgICAgICAgICAoY2xlYXJJbnRlcnZhbChyZWFkeVN0YXRlQ2hlY2tJbnRlcnZhbCksIHNlYXJjaEFuaW1hdGlvbnMoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UXVlcnlWYXJpYWJsZShlKSB7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHZhciB0ID0gcXVlcnlTdHJpbmcuc3BsaXQoIiYiKSwgciA9IDA7CiAgICAgICAgICAgICAgICByIDwgdC5sZW5ndGg7CiAgICAgICAgICAgICAgICByICs9IDEKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciBuID0gdFtyXS5zcGxpdCgiPSIpOwogICAgICAgICAgICAgICAgaWYgKGRlY29kZVVSSUNvbXBvbmVudChuWzBdKSA9PSBlKQogICAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG5bMV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSAiIjsKICAgICAgICAgICAgewogICAgICAgICAgICAgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLAogICAgICAgICAgICAgICAgaW5kZXggPSBzY3JpcHRzLmxlbmd0aCAtIDEsCiAgICAgICAgICAgICAgICBteVNjcmlwdCA9IHNjcmlwdHNbaW5kZXhdIHx8IHsgc3JjOiAiIiB9OwogICAgICAgICAgICAgIChxdWVyeVN0cmluZyA9IG15U2NyaXB0LnNyYwogICAgICAgICAgICAgICAgPyBteVNjcmlwdC5zcmMucmVwbGFjZSgvXlteXD9dK1w/Py8sICIiKQogICAgICAgICAgICAgICAgOiAiIiksCiAgICAgICAgICAgICAgICBnZXRRdWVyeVZhcmlhYmxlKCJyZW5kZXJlciIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciByZWFkeVN0YXRlQ2hlY2tJbnRlcnZhbCA9IHNldEludGVydmFsKGNoZWNrUmVhZHksIDEwMCk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgX3R5cGVvZiQzKGV4cG9ydHMpICE9PSAib2JqZWN0IiAmJiAod2luZG93LmJvZHltb3ZpbiA9IGxvdHRpZSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfQogICAgICAgICAgICB2YXIgU2hhcGVNb2RpZmllcnMgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0ge30sCiAgICAgICAgICAgICAgICB0ID0ge307CiAgICAgICAgICAgICAgKGUucmVnaXN0ZXJNb2RpZmllciA9IHIpLCAoZS5nZXRNb2RpZmllciA9IG4pOwogICAgICAgICAgICAgIGZ1bmN0aW9uIHIoaSwgYSkgewogICAgICAgICAgICAgICAgdFtpXSB8fCAodFtpXSA9IGEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBuKGksIGEsIG8pIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgdFtpXShhLCBvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNoYXBlTW9kaWZpZXIoKSB7IH0KICAgICAgICAgICAgKFNoYXBlTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChTaGFwZU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZVRvTW9kaWZpZXIgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChTaGFwZU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICAgICAgICAgIGUuc2guY29udGFpbmVyLmFkZER5bmFtaWNQcm9wZXJ0eShlLnNoKTsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB7CiAgICAgICAgICAgICAgICAgICAgc2hhcGU6IGUuc2gsCiAgICAgICAgICAgICAgICAgICAgZGF0YTogZSwKICAgICAgICAgICAgICAgICAgICBsb2NhbFNoYXBlQ29sbGVjdGlvbjoKICAgICAgICAgICAgICAgICAgICAgIHNoYXBlQ29sbGVjdGlvblBvb2wubmV3U2hhcGVDb2xsZWN0aW9uKCksCiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVzLnB1c2godCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTaGFwZVRvTW9kaWZpZXIodCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNBbmltYXRlZCAmJiBlLnNldEFzQW5pbWF0ZWQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU2hhcGVNb2RpZmllci5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICAodGhpcy5zaGFwZXMgPSBbXSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgICB0aGlzLmluaXRNb2RpZmllclByb3BlcnRpZXMoZSwgdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSBpbml0aWFsRGVmYXVsdEZyYW1lKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuY2xvc2VkID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5rID0gITEpLAogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICAgID8gKHRoaXMuayA9ICEwKQogICAgICAgICAgICAgICAgICAgIDogdGhpcy5nZXRWYWx1ZSghMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNoYXBlTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NLZXlzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCAhPT0gdGhpcy5mcmFtZUlkICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5mcmFtZUlkID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBTaGFwZU1vZGlmaWVyKTsKICAgICAgICAgICAgZnVuY3Rpb24gVHJpbU1vZGlmaWVyKCkgeyB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU2hhcGVNb2RpZmllcl0sIFRyaW1Nb2RpZmllciksCiAgICAgICAgICAgICAgKFRyaW1Nb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5zLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmUsIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQubywgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAodGhpcy5zVmFsdWUgPSAwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZVZhbHVlID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5wcm9jZXNzS2V5cyksCiAgICAgICAgICAgICAgICAgICh0aGlzLm0gPSB0Lm0pLAogICAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9CiAgICAgICAgICAgICAgICAgICAgISF0aGlzLnMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCB8fAogICAgICAgICAgICAgICAgICAgICEhdGhpcy5lLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggfHwKICAgICAgICAgICAgICAgICAgICAhIXRoaXMuby5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZVRvTW9kaWZpZXIgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZS5wYXRoc0RhdGEgPSBbXTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5jYWxjdWxhdGVTaGFwZUVkZ2VzID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciBhID0gW107CiAgICAgICAgICAgICAgICB0IDw9IDEKICAgICAgICAgICAgICAgICAgPyBhLnB1c2goeyBzOiBlLCBlOiB0IH0pCiAgICAgICAgICAgICAgICAgIDogZSA+PSAxCiAgICAgICAgICAgICAgICAgICAgPyBhLnB1c2goeyBzOiBlIC0gMSwgZTogdCAtIDEgfSkKICAgICAgICAgICAgICAgICAgICA6IChhLnB1c2goeyBzOiBlLCBlOiAxIH0pLCBhLnB1c2goeyBzOiAwLCBlOiB0IC0gMSB9KSk7CiAgICAgICAgICAgICAgICB2YXIgbyA9IFtdLAogICAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgICBjID0gYS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHU7CiAgICAgICAgICAgICAgICBmb3IgKGwgPSAwOyBsIDwgYzsgbCArPSAxKQogICAgICAgICAgICAgICAgICBpZiAoKCh1ID0gYVtsXSksICEodS5lICogaSA8IG4gfHwgdS5zICogaSA+IG4gKyByKSkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZCwgRTsKICAgICAgICAgICAgICAgICAgICB1LnMgKiBpIDw9IG4gPyAoZCA9IDApIDogKGQgPSAodS5zICogaSAtIG4pIC8gciksCiAgICAgICAgICAgICAgICAgICAgICB1LmUgKiBpID49IG4gKyByID8gKEUgPSAxKSA6IChFID0gKHUuZSAqIGkgLSBuKSAvIHIpLAogICAgICAgICAgICAgICAgICAgICAgby5wdXNoKFtkLCBFXSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBvLmxlbmd0aCB8fCBvLnB1c2goWzAsIDBdKSwgbzsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5yZWxlYXNlUGF0aHNEYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gZS5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKSBzZWdtZW50c0xlbmd0aFBvb2wucmVsZWFzZShlW3RdKTsKICAgICAgICAgICAgICAgIHJldHVybiAoZS5sZW5ndGggPSAwKSwgZTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzU2hhcGVzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LCByOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuX21kZiB8fCBlKSB7CiAgICAgICAgICAgICAgICAgIHZhciBuID0gKHRoaXMuby52ICUgMzYwKSAvIDM2MDsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIChuIDwgMCAmJiAobiArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucy52ID4gMQogICAgICAgICAgICAgICAgICAgICAgICA/ICh0ID0gMSArIG4pCiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zLnYgPCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAodCA9IDAgKyBuKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKHQgPSB0aGlzLnMudiArIG4pLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lLnYgPiAxCiAgICAgICAgICAgICAgICAgICAgICAgID8gKHIgPSAxICsgbikKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmUudiA8IDAKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChyID0gMCArIG4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAociA9IHRoaXMuZS52ICsgbiksCiAgICAgICAgICAgICAgICAgICAgICB0ID4gcikKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0OwogICAgICAgICAgICAgICAgICAgICh0ID0gciksIChyID0gaSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKHQgPSBNYXRoLnJvdW5kKHQgKiAxZTQpICogMWUtNCksCiAgICAgICAgICAgICAgICAgICAgKHIgPSBNYXRoLnJvdW5kKHIgKiAxZTQpICogMWUtNCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc1ZhbHVlID0gdCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZVZhbHVlID0gcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgKHQgPSB0aGlzLnNWYWx1ZSksIChyID0gdGhpcy5lVmFsdWUpOwogICAgICAgICAgICAgICAgdmFyIGEsCiAgICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICAgIGwgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICAgIEUsCiAgICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICAgIFAgPSAwOwogICAgICAgICAgICAgICAgaWYgKHIgPT09IHQpCiAgICAgICAgICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBsOyBvICs9IDEpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZXNbb10ubG9jYWxTaGFwZUNvbGxlY3Rpb24ucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2hhcGVzW29dLnNoYXBlLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zaGFwZXNbb10uc2hhcGUucGF0aHMgPQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc1tvXS5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZGYgJiYgKHRoaXMuc2hhcGVzW29dLnBhdGhzRGF0YS5sZW5ndGggPSAwKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKChyID09PSAxICYmIHQgPT09IDApIHx8IChyID09PSAwICYmIHQgPT09IDEpKSB7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tZGYpCiAgICAgICAgICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IGw7IG8gKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc1tvXS5wYXRoc0RhdGEubGVuZ3RoID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc1tvXS5zaGFwZS5fbWRmID0gITApOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIFIgPSBbXSwKICAgICAgICAgICAgICAgICAgICBULAogICAgICAgICAgICAgICAgICAgIE07CiAgICAgICAgICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBsOyBvICs9IDEpCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKChUID0gdGhpcy5zaGFwZXNbb10pLAogICAgICAgICAgICAgICAgICAgICAgICAhVC5zaGFwZS5fbWRmICYmICF0aGlzLl9tZGYgJiYgIWUgJiYgdGhpcy5tICE9PSAyKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIFQuc2hhcGUucGF0aHMgPSBULmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAoKGEgPSBULnNoYXBlLnBhdGhzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodSA9IGEuX2xlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAhVC5zaGFwZS5fbWRmICYmIFQucGF0aHNEYXRhLmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgYiA9IFQudG90YWxTaGFwZUxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSB0aGlzLnJlbGVhc2VQYXRoc0RhdGEoVC5wYXRoc0RhdGEpLCBjID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICBjIDwgdTsKICAgICAgICAgICAgICAgICAgICAgICAgICBjICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgIChFID0gYmV6LmdldFNlZ21lbnRzTGVuZ3RoKGEuc2hhcGVzW2NdKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goRSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiArPSBFLnRvdGFsTGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICAgKFQudG90YWxTaGFwZUxlbmd0aCA9IGIpLCAoVC5wYXRoc0RhdGEgPSBkKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIChQICs9IGIpLCAoVC5zaGFwZS5fbWRmID0gITApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIHggPSB0LAogICAgICAgICAgICAgICAgICAgIGsgPSByLAogICAgICAgICAgICAgICAgICAgIFMgPSAwLAogICAgICAgICAgICAgICAgICAgIEE7CiAgICAgICAgICAgICAgICAgIGZvciAobyA9IGwgLSAxOyBvID49IDA7IG8gLT0gMSkKICAgICAgICAgICAgICAgICAgICBpZiAoKChUID0gdGhpcy5zaGFwZXNbb10pLCBULnNoYXBlLl9tZGYpKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBNID0gVC5sb2NhbFNoYXBlQ29sbGVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgTS5yZWxlYXNlU2hhcGVzKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubSA9PT0gMiAmJiBsID4gMQogICAgICAgICAgICAgICAgICAgICAgICAgID8gKChBID0gdGhpcy5jYWxjdWxhdGVTaGFwZUVkZ2VzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBULnRvdGFsU2hhcGVMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUAogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFMgKz0gVC50b3RhbFNoYXBlTGVuZ3RoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChBID0gW1t4LCBrXV0pLAogICAgICAgICAgICAgICAgICAgICAgICB1ID0gQS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBjIDwgdTsKICAgICAgICAgICAgICAgICAgICAgICAgYyArPSAxCiAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgKHggPSBBW2NdWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoayA9IEFbY11bMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIChSLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGsgPD0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBSLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBULnRvdGFsU2hhcGVMZW5ndGggKiB4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlOiBULnRvdGFsU2hhcGVMZW5ndGggKiBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeCA+PSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gUi5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBULnRvdGFsU2hhcGVMZW5ndGggKiAoeCAtIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGU6IFQudG90YWxTaGFwZUxlbmd0aCAqIChrIC0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKFIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczogVC50b3RhbFNoYXBlTGVuZ3RoICogeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlOiBULnRvdGFsU2hhcGVMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZTogVC50b3RhbFNoYXBlTGVuZ3RoICogKGsgLSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBPID0gdGhpcy5hZGRTaGFwZXMoVCwgUlswXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSWzBdLnMgIT09IFJbMF0uZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBGID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVC5zaGFwZS5wYXRocy5zaGFwZXNbVC5zaGFwZS5wYXRocy5fbGVuZ3RoIC0gMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRi5jKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBEID0gTy5wb3AoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRQYXRocyhPLCBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTyA9IHRoaXMuYWRkU2hhcGVzKFQsIFJbMV0sIEQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhdGhzKE8sIE0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChPID0gdGhpcy5hZGRTaGFwZXMoVCwgUlsxXSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhdGhzKE8sIE0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBULnNoYXBlLnBhdGhzID0gTTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRyaW1Nb2RpZmllci5wcm90b3R5cGUuYWRkUGF0aHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSBlLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHQuYWRkU2hhcGUoZVtyXSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRyaW1Nb2RpZmllci5wcm90b3R5cGUuYWRkU2VnbWVudCA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgIG8KICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIGkuc2V0WFlBdCh0WzBdLCB0WzFdLCAibyIsIGEpLAogICAgICAgICAgICAgICAgICBpLnNldFhZQXQoclswXSwgclsxXSwgImkiLCBhICsgMSksCiAgICAgICAgICAgICAgICAgIG8gJiYgaS5zZXRYWUF0KGVbMF0sIGVbMV0sICJ2IiwgYSksCiAgICAgICAgICAgICAgICAgIGkuc2V0WFlBdChuWzBdLCBuWzFdLCAidiIsIGEgKyAxKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTZWdtZW50RnJvbUFycmF5ID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbgogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdC5zZXRYWUF0KGVbMV0sIGVbNV0sICJvIiwgciksCiAgICAgICAgICAgICAgICAgIHQuc2V0WFlBdChlWzJdLCBlWzZdLCAiaSIsIHIgKyAxKSwKICAgICAgICAgICAgICAgICAgbiAmJiB0LnNldFhZQXQoZVswXSwgZVs0XSwgInYiLCByKSwKICAgICAgICAgICAgICAgICAgdC5zZXRYWUF0KGVbM10sIGVbN10sICJ2IiwgciArIDEpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUcmltTW9kaWZpZXIucHJvdG90eXBlLmFkZFNoYXBlcyA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgICAgICAgICB2YXIgbiA9IGUucGF0aHNEYXRhLAogICAgICAgICAgICAgICAgICBpID0gZS5zaGFwZS5wYXRocy5zaGFwZXMsCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSBlLnNoYXBlLnBhdGhzLl9sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUgPSAwLAogICAgICAgICAgICAgICAgICBkLAogICAgICAgICAgICAgICAgICBFLAogICAgICAgICAgICAgICAgICBiLAogICAgICAgICAgICAgICAgICBQLAogICAgICAgICAgICAgICAgICBSID0gW10sCiAgICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICAgIE0gPSAhMDsKICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgIHIKICAgICAgICAgICAgICAgICAgICA/ICgoRSA9IHIuX2xlbmd0aCksIChUID0gci5fbGVuZ3RoKSkKICAgICAgICAgICAgICAgICAgICA6ICgociA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLCAoRSA9IDApLCAoVCA9IDApKSwKICAgICAgICAgICAgICAgICAgUi5wdXNoKHIpLAogICAgICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgICAgICAgYSA8IG87CiAgICAgICAgICAgICAgICAgIGEgKz0gMQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgYiA9IG5bYV0ubGVuZ3RocywKICAgICAgICAgICAgICAgICAgICByLmMgPSBpW2FdLmMsCiAgICAgICAgICAgICAgICAgICAgYyA9IGlbYV0uYyA/IGIubGVuZ3RoIDogYi5sZW5ndGggKyAxLAogICAgICAgICAgICAgICAgICAgIGwgPSAxOwogICAgICAgICAgICAgICAgICAgIGwgPCBjOwogICAgICAgICAgICAgICAgICAgIGwgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgaWYgKCgoZCA9IGJbbCAtIDFdKSwgdSArIGQuYWRkZWRMZW5ndGggPCB0LnMpKQogICAgICAgICAgICAgICAgICAgICAgKHUgKz0gZC5hZGRlZExlbmd0aCksIChyLmMgPSAhMSk7CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodSA+IHQuZSkgewogICAgICAgICAgICAgICAgICAgICAgci5jID0gITE7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgIHQucyA8PSB1ICYmIHQuZSA+PSB1ICsgZC5hZGRlZExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmFkZFNlZ21lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS52W2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLm9bbCAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0uaVtsXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnZbbF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgICAgICAgICBFLAogICAgICAgICAgICAgICAgICAgICAgICAgIE0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoTSA9ICExKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoKFAgPSBiZXouZ2V0TmV3U2VnbWVudCgKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnZbbCAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0udltsXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLm9bbCAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0uaVtsXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodC5zIC0gdSkgLyBkLmFkZGVkTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0LmUgLSB1KSAvIGQuYWRkZWRMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYltsIC0gMV0KICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTZWdtZW50RnJvbUFycmF5KFAsIHIsIEUsIE0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIChNID0gITEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChyLmMgPSAhMSkpLAogICAgICAgICAgICAgICAgICAgICAgICAodSArPSBkLmFkZGVkTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICAgKEUgKz0gMSk7CiAgICAgICAgICAgICAgICAgIGlmIChpW2FdLmMgJiYgYi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKChkID0gYltsIC0gMV0pLCB1IDw9IHQuZSkpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciB4ID0gYltsIC0gMV0uYWRkZWRMZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICB0LnMgPD0gdSAmJiB0LmUgPj0gdSArIHgKICAgICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5hZGRTZWdtZW50KAogICAgICAgICAgICAgICAgICAgICAgICAgIGlbYV0udltsIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS5vW2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLmlbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgRSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSAhMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKChQID0gYmV6LmdldE5ld1NlZ21lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS52W2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaVthXS5vW2wgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpW2FdLmlbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHQucyAtIHUpIC8geCwKICAgICAgICAgICAgICAgICAgICAgICAgICAodC5lIC0gdSkgLyB4LAogICAgICAgICAgICAgICAgICAgICAgICAgIGJbbCAtIDFdCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU2VnbWVudEZyb21BcnJheShQLCByLCBFLCBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoTSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoci5jID0gITEpKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugci5jID0gITE7CiAgICAgICAgICAgICAgICAgICAgKHUgKz0gZC5hZGRlZExlbmd0aCksIChFICs9IDEpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoci5fbGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgICAoci5zZXRYWUF0KHIudltUXVswXSwgci52W1RdWzFdLCAiaSIsIFQpLAogICAgICAgICAgICAgICAgICAgICAgICByLnNldFhZQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgci52W3IuX2xlbmd0aCAtIDFdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHIudltyLl9sZW5ndGggLSAxXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAibyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgci5fbGVuZ3RoIC0gMQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIHUgPiB0LmUpCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgYSA8IG8gLSAxICYmCiAgICAgICAgICAgICAgICAgICAgKChyID0gc2hhcGVQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICAgICAoTSA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgIFIucHVzaChyKSwKICAgICAgICAgICAgICAgICAgICAgIChFID0gMCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIFI7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIoKSB7IH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTaGFwZU1vZGlmaWVyXSwgUHVja2VyQW5kQmxvYXRNb2RpZmllciksCiAgICAgICAgICAgICAgKFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPQogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLnByb2Nlc3NLZXlzKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hbW91bnQgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICB0LmEsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICEhdGhpcy5hbW91bnQuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCk7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUHVja2VyQW5kQmxvYXRNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdmFyIHIgPSB0IC8gMTAwLAogICAgICAgICAgICAgICAgICBuID0gWzAsIDBdLAogICAgICAgICAgICAgICAgICBpID0gZS5fbGVuZ3RoLAogICAgICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgICAgIGZvciAoYSA9IDA7IGEgPCBpOyBhICs9IDEpCiAgICAgICAgICAgICAgICAgIChuWzBdICs9IGUudlthXVswXSksIChuWzFdICs9IGUudlthXVsxXSk7CiAgICAgICAgICAgICAgICAoblswXSAvPSBpKSwgKG5bMV0gLz0gaSk7CiAgICAgICAgICAgICAgICB2YXIgbyA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgICBvLmMgPSBlLmM7CiAgICAgICAgICAgICAgICB2YXIgbCwgYywgdSwgZCwgRSwgYjsKICAgICAgICAgICAgICAgIGZvciAoYSA9IDA7IGEgPCBpOyBhICs9IDEpCiAgICAgICAgICAgICAgICAgIChsID0gZS52W2FdWzBdICsgKG5bMF0gLSBlLnZbYV1bMF0pICogciksCiAgICAgICAgICAgICAgICAgICAgKGMgPSBlLnZbYV1bMV0gKyAoblsxXSAtIGUudlthXVsxXSkgKiByKSwKICAgICAgICAgICAgICAgICAgICAodSA9IGUub1thXVswXSArIChuWzBdIC0gZS5vW2FdWzBdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICAoZCA9IGUub1thXVsxXSArIChuWzFdIC0gZS5vW2FdWzFdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICAoRSA9IGUuaVthXVswXSArIChuWzBdIC0gZS5pW2FdWzBdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICAoYiA9IGUuaVthXVsxXSArIChuWzFdIC0gZS5pW2FdWzFdKSAqIC1yKSwKICAgICAgICAgICAgICAgICAgICBvLnNldFRyaXBsZUF0KGwsIGMsIHUsIGQsIEUsIGIsIGEpOwogICAgICAgICAgICAgICAgcmV0dXJuIG87CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLmFtb3VudC52OwogICAgICAgICAgICAgICAgaWYgKG8gIT09IDApIHsKICAgICAgICAgICAgICAgICAgdmFyIGwsIGM7CiAgICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAoKGwgPSB0aGlzLnNoYXBlc1tyXSksCiAgICAgICAgICAgICAgICAgICAgICAgIChjID0gbC5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgICAgICEoIWwuc2hhcGUuX21kZiAmJiAhdGhpcy5fbWRmICYmICFlKSkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBjLnJlbGVhc2VTaGFwZXMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgbC5zaGFwZS5fbWRmID0gITAsCiAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBsLnNoYXBlLnBhdGhzLnNoYXBlcywKICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGwuc2hhcGUucGF0aHMuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgPCBhOwogICAgICAgICAgICAgICAgICAgICAgICBpICs9IDEKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgYy5hZGRTaGFwZSh0aGlzLnByb2Nlc3NQYXRoKHRbaV0sIG8pKTsKICAgICAgICAgICAgICAgICAgICBsLnNoYXBlLnBhdGhzID0gbC5sb2NhbFNoYXBlQ29sbGVjdGlvbjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIFRyYW5zZm9ybVByb3BlcnR5RmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBbMCwgMF07CiAgICAgICAgICAgICAgZnVuY3Rpb24gdChjKSB7CiAgICAgICAgICAgICAgICB2YXIgdSA9IHRoaXMuX21kZjsKICAgICAgICAgICAgICAgIHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSB0aGlzLl9tZGYgfHwgdSksCiAgICAgICAgICAgICAgICAgIHRoaXMuYSAmJgogICAgICAgICAgICAgICAgICBjLnRyYW5zbGF0ZSgtdGhpcy5hLnZbMF0sIC10aGlzLmEudlsxXSwgdGhpcy5hLnZbMl0pLAogICAgICAgICAgICAgICAgICB0aGlzLnMgJiYgYy5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zayAmJiBjLnNrZXdGcm9tQXhpcygtdGhpcy5zay52LCB0aGlzLnNhLnYpLAogICAgICAgICAgICAgICAgICB0aGlzLnIKICAgICAgICAgICAgICAgICAgICA/IGMucm90YXRlKC10aGlzLnIudikKICAgICAgICAgICAgICAgICAgICA6IGMKICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKC10aGlzLnJ6LnYpCiAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWSh0aGlzLnJ5LnYpCiAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWigtdGhpcy5vci52WzJdKQogICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkodGhpcy5vci52WzFdKQogICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnAucwogICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhLnAuegogICAgICAgICAgICAgICAgICAgICAgPyBjLnRyYW5zbGF0ZSh0aGlzLnB4LnYsIHRoaXMucHkudiwgLXRoaXMucHoudikKICAgICAgICAgICAgICAgICAgICAgIDogYy50cmFuc2xhdGUodGhpcy5weC52LCB0aGlzLnB5LnYsIDApCiAgICAgICAgICAgICAgICAgICAgOiBjLnRyYW5zbGF0ZSh0aGlzLnAudlswXSwgdGhpcy5wLnZbMV0sIC10aGlzLnAudlsyXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHIoYykgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCkgewogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzRGlydHkgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnByZWNhbGN1bGF0ZU1hdHJpeCgpLCAodGhpcy5faXNEaXJ0eSA9ICExKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWRmIHx8IGMpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIHZhciB1OwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYuY2xvbmVGcm9tUHJvcHModGhpcy5wcmUucHJvcHMpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAxICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgLXRoaXMuYS52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIC10aGlzLmEudlsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmEudlsyXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAyICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zayAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAzICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5za2V3RnJvbUF4aXMoLXRoaXMuc2sudiwgdGhpcy5zYS52KSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yICYmIHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA8IDQKICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudi5yb3RhdGUoLXRoaXMuci52KQogICAgICAgICAgICAgICAgICAgICAgICAgIDogIXRoaXMuciAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA8IDQgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKC10aGlzLnJ6LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWSh0aGlzLnJ5LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWigtdGhpcy5vci52WzJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkodGhpcy5vci52WzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvT3JpZW50ZWQpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZCwgRTsKICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgKCh1ID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVSYXRlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAgJiYgdGhpcy5wLmtleWZyYW1lcyAmJiB0aGlzLnAuZ2V0VmFsdWVBdFRpbWUpCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC5fY2FjaGluZy5sYXN0RnJhbWUgKyB0aGlzLnAub2Zmc2V0VGltZSA8PQogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC5rZXlmcmFtZXNbMF0udAogICAgICAgICAgICAgICAgICAgICAgICAgID8gKChkID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucC5rZXlmcmFtZXNbMF0udCArIDAuMDEpIC8gdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAua2V5ZnJhbWVzWzBdLnQgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucC5fY2FjaGluZy5sYXN0RnJhbWUgKyB0aGlzLnAub2Zmc2V0VGltZSA+PQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLmtleWZyYW1lc1t0aGlzLnAua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKChkID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAua2V5ZnJhbWVzW3RoaXMucC5rZXlmcmFtZXMubGVuZ3RoIC0gMV0udCAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRSA9IHRoaXMucC5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wLmtleWZyYW1lc1t0aGlzLnAua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wNSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChkID0gdGhpcy5wLnB2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgPSB0aGlzLnAuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucC5fY2FjaGluZy5sYXN0RnJhbWUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLm9mZnNldFRpbWUgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wMSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLm9mZnNldFRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHggJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weC5rZXlmcmFtZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weS5rZXlmcmFtZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weC5nZXRWYWx1ZUF0VGltZSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnB5LmdldFZhbHVlQXRUaW1lCiAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSBbXSksIChFID0gW10pOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYiA9IHRoaXMucHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgUCA9IHRoaXMucHk7CiAgICAgICAgICAgICAgICAgICAgICAgIGIuX2NhY2hpbmcubGFzdEZyYW1lICsgYi5vZmZzZXRUaW1lIDw9IGIua2V5ZnJhbWVzWzBdLnQKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoZFswXSA9IGIuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYi5rZXlmcmFtZXNbMF0udCArIDAuMDEpIC8gdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkWzFdID0gUC5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFAua2V5ZnJhbWVzWzBdLnQgKyAwLjAxKSAvIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEVbMF0gPSBiLmdldFZhbHVlQXRUaW1lKGIua2V5ZnJhbWVzWzBdLnQgLyB1LCAwKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRVsxXSA9IFAuZ2V0VmFsdWVBdFRpbWUoUC5rZXlmcmFtZXNbMF0udCAvIHUsIDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IGIuX2NhY2hpbmcubGFzdEZyYW1lICsgYi5vZmZzZXRUaW1lID49CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLmtleWZyYW1lc1tiLmtleWZyYW1lcy5sZW5ndGggLSAxXS50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoZFswXSA9IGIuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIua2V5ZnJhbWVzW2Iua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRbMV0gPSBQLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAua2V5ZnJhbWVzW1Aua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFWzBdID0gYi5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYi5rZXlmcmFtZXNbYi5rZXlmcmFtZXMubGVuZ3RoIC0gMV0udCAtIDAuMDEpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFWzFdID0gUC5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUC5rZXlmcmFtZXNbUC5rZXlmcmFtZXMubGVuZ3RoIC0gMV0udCAtIDAuMDEpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoZCA9IFtiLnB2LCBQLnB2XSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFWzBdID0gYi5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYi5fY2FjaGluZy5sYXN0RnJhbWUgKyBiLm9mZnNldFRpbWUgLSAwLjAxKSAvIHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi5vZmZzZXRUaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRVsxXSA9IFAuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFAuX2NhY2hpbmcubGFzdEZyYW1lICsgUC5vZmZzZXRUaW1lIC0gMC4wMSkgLyB1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAub2Zmc2V0VGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSk7CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgKEUgPSBlKSwgKGQgPSBFKTsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5yb3RhdGUoLU1hdGguYXRhbjIoZFsxXSAtIEVbMV0sIGRbMF0gLSBFWzBdKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5wICYmIHRoaXMuZGF0YS5wLnMKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhLnAuegogICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudi50cmFuc2xhdGUodGhpcy5weC52LCB0aGlzLnB5LnYsIC10aGlzLnB6LnYpCiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy52LnRyYW5zbGF0ZSh0aGlzLnB4LnYsIHRoaXMucHkudiwgMCkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy52LnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC52WzFdLAogICAgICAgICAgICAgICAgICAgICAgICAtdGhpcy5wLnZbMl0KICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZUlkID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbigpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKCh0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPSAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByZS5yZXNldCgpLAogICAgICAgICAgICAgICAgICAgICF0aGlzLmEuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgdGhpcy5wcmUudHJhbnNsYXRlKC10aGlzLmEudlswXSwgLXRoaXMuYS52WzFdLCB0aGlzLmEudlsyXSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA9IDEpOwogICAgICAgICAgICAgICAgZWxzZSByZXR1cm47CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoKQogICAgICAgICAgICAgICAgICB0aGlzLnByZS5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gMik7CiAgICAgICAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICAgICAgICAgIGlmICh0aGlzLnNrKQogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2suZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAgICF0aGlzLnNhLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHRoaXMucHJlLnNrZXdGcm9tQXhpcygtdGhpcy5zay52LCB0aGlzLnNhLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA9IDMpOwogICAgICAgICAgICAgICAgICBlbHNlIHJldHVybjsKICAgICAgICAgICAgICAgIHRoaXMucgogICAgICAgICAgICAgICAgICA/IHRoaXMuci5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLnByZS5yb3RhdGUoLXRoaXMuci52KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gNCkpCiAgICAgICAgICAgICAgICAgIDogIXRoaXMucnouZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAhdGhpcy5yeS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLnJ4LmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggJiYKICAgICAgICAgICAgICAgICAgIXRoaXMub3IuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAodGhpcy5wcmUKICAgICAgICAgICAgICAgICAgICAucm90YXRlWigtdGhpcy5yei52KQogICAgICAgICAgICAgICAgICAgIC5yb3RhdGVZKHRoaXMucnkudikKICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVooLXRoaXMub3IudlsyXSkKICAgICAgICAgICAgICAgICAgICAucm90YXRlWSh0aGlzLm9yLnZbMV0pCiAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gNCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBpKCkgeyB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gYShjKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9hZGREeW5hbWljUHJvcGVydHkoYyksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkoYyksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0RpcnR5ID0gITApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBvKGMsIHUsIGQpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKCh0aGlzLmVsZW0gPSBjKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BUeXBlID0gInRyYW5zZm9ybSIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSB1KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy52ID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wcmUgPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPSAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZCB8fCBjKSwKICAgICAgICAgICAgICAgICAgICB1LnAgJiYgdS5wLnMKICAgICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLnB4ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgICAgIHUucC54LAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucHkgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChjLCB1LnAueSwgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICB1LnAueiAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5weiA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdS5wLnosCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnAgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgICAgdS5wIHx8IHsgazogWzAsIDAsIDBdIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgIHUucngpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgodGhpcy5yeCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgIHUucngsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMucnkgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgICAgdS5yeSwKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnJ6ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgICAgIHUucnosCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICB1Lm9yLmtbMF0udGkpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIHZhciBFLAogICAgICAgICAgICAgICAgICAgICAgYiA9IHUub3Iuay5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChFID0gMDsgRSA8IGI7IEUgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICh1Lm9yLmtbRV0udG8gPSBudWxsKSwgKHUub3Iua1tFXS50aSA9IG51bGwpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICh0aGlzLm9yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICB1Lm9yLAogICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMub3Iuc2ggPSAhMCk7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgdGhpcy5yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICB1LnIgfHwgeyBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdS5zayAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuc2sgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBjLAogICAgICAgICAgICAgICAgICAgIHUuc2ssCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zYSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICAgIHUuc2EsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICkpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgICAgdS5hIHx8IHsgazogWzAsIDAsIDBdIH0sCiAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBjLAogICAgICAgICAgICAgICAgICAgIHUucyB8fCB7IGs6IFsxMDAsIDEwMCwgMTAwXSB9LAogICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICB1Lm8KICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChjLCB1Lm8sIDAsIDAuMDEsIGMpKQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMubyA9IHsgX21kZjogITEsIHY6IDEgfSksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0RpcnR5ID0gITApLAogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKG8ucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgYXBwbHlUb01hdHJpeDogdCwKICAgICAgICAgICAgICAgIGdldFZhbHVlOiByLAogICAgICAgICAgICAgICAgcHJlY2FsY3VsYXRlTWF0cml4OiBuLAogICAgICAgICAgICAgICAgYXV0b09yaWVudDogaSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgbyksCiAgICAgICAgICAgICAgICAoby5wcm90b3R5cGUuYWRkRHluYW1pY1Byb3BlcnR5ID0gYSksCiAgICAgICAgICAgICAgICAoby5wcm90b3R5cGUuX2FkZER5bmFtaWNQcm9wZXJ0eSA9CiAgICAgICAgICAgICAgICAgIER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lci5wcm90b3R5cGUuYWRkRHluYW1pY1Byb3BlcnR5KTsKICAgICAgICAgICAgICBmdW5jdGlvbiBsKGMsIHUsIGQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgbyhjLCB1LCBkKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgZ2V0VHJhbnNmb3JtUHJvcGVydHk6IGwgfTsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gUmVwZWF0ZXJNb2RpZmllcigpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW1NoYXBlTW9kaWZpZXJdLCBSZXBlYXRlck1vZGlmaWVyKSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMucHJvY2Vzc0tleXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5jID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5jLCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0Lm8sIDAsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudHIgPSBUcmFuc2Zvcm1Qcm9wZXJ0eUZhY3RvcnkuZ2V0VHJhbnNmb3JtUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LnRyLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNvID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LnRyLnNvLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAodGhpcy5lbyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgdC50ci5lbywKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCB0aGlzLmdldFZhbHVlKCEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhIXRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucE1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJNYXRyaXggPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgICAgICAodGhpcy5zTWF0cml4ID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudE1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm1hdHJpeCA9IG5ldyBNYXRyaXgoKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLmFwcGx5VHJhbnNmb3JtcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIG8gPSBhID8gLTEgOiAxLAogICAgICAgICAgICAgICAgICBsID0gbi5zLnZbMF0gKyAoMSAtIG4ucy52WzBdKSAqICgxIC0gaSksCiAgICAgICAgICAgICAgICAgIGMgPSBuLnMudlsxXSArICgxIC0gbi5zLnZbMV0pICogKDEgLSBpKTsKICAgICAgICAgICAgICAgIGUudHJhbnNsYXRlKG4ucC52WzBdICogbyAqIGksIG4ucC52WzFdICogbyAqIGksIG4ucC52WzJdKSwKICAgICAgICAgICAgICAgICAgdC50cmFuc2xhdGUoLW4uYS52WzBdLCAtbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICAgICAgdC5yb3RhdGUoLW4uci52ICogbyAqIGkpLAogICAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZShuLmEudlswXSwgbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICAgICAgci50cmFuc2xhdGUoLW4uYS52WzBdLCAtbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICAgICAgci5zY2FsZShhID8gMSAvIGwgOiBsLCBhID8gMSAvIGMgOiBjKSwKICAgICAgICAgICAgICAgICAgci50cmFuc2xhdGUobi5hLnZbMF0sIG4uYS52WzFdLCBuLmEudlsyXSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtID0gZSwKICAgICAgICAgICAgICAgICAgdGhpcy5hcnIgPSB0LAogICAgICAgICAgICAgICAgICB0aGlzLnBvcyA9IHIsCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbXNEYXRhID0gbiwKICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudENvcGllcyA9IDAsCiAgICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRzID0gW10sCiAgICAgICAgICAgICAgICAgIHRoaXMuX2dyb3VwcyA9IFtdLAogICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lSWQgPSAtMSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgICB0aGlzLmluaXRNb2RpZmllclByb3BlcnRpZXMoZSwgdFtyXSk7CiAgICAgICAgICAgICAgICAgIHIgPiAwOwoKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgKHIgLT0gMSksIHRoaXMuX2VsZW1lbnRzLnVuc2hpZnQodFtyXSk7CiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgOiB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUucmVzZXRFbGVtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgKGVbdF0uX3Byb2Nlc3NlZCA9ICExKSwKICAgICAgICAgICAgICAgICAgICBlW3RdLnR5ID09PSAiZ3IiICYmIHRoaXMucmVzZXRFbGVtZW50cyhlW3RdLml0KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuY2xvbmVFbGVtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpOwogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzZXRFbGVtZW50cyh0KSwgdDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuY2hhbmdlR3JvdXBSZW5kZXIgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSBlLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIChlW3JdLl9yZW5kZXIgPSB0KSwKICAgICAgICAgICAgICAgICAgICBlW3JdLnR5ID09PSAiZ3IiICYmIHRoaXMuY2hhbmdlR3JvdXBSZW5kZXIoZVtyXS5pdCwgdCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSAhMTsKICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tZGYgfHwgZSkgewogICAgICAgICAgICAgICAgICB2YXIgbCA9IE1hdGguY2VpbCh0aGlzLmMudik7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ncm91cHMubGVuZ3RoIDwgbCkgewogICAgICAgICAgICAgICAgICAgIGZvciAoOyB0aGlzLl9ncm91cHMubGVuZ3RoIDwgbDspIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gewogICAgICAgICAgICAgICAgICAgICAgICBpdDogdGhpcy5jbG9uZUVsZW1lbnRzKHRoaXMuX2VsZW1lbnRzKSwKICAgICAgICAgICAgICAgICAgICAgICAgdHk6ICJnciIsCiAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgYy5pdC5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgYTogeyBhOiAwLCBpeDogMSwgazogWzAsIDBdIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIG5tOiAiVHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgICAgbzogeyBhOiAwLCBpeDogNywgazogMTAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHA6IHsgYTogMCwgaXg6IDIsIGs6IFswLCAwXSB9LAogICAgICAgICAgICAgICAgICAgICAgICByOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpeDogNiwKICAgICAgICAgICAgICAgICAgICAgICAgICBrOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHM6IDAsIGU6IDAsIHQ6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgczogMCwgZTogMCwgdDogMSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHM6IHsgYTogMCwgaXg6IDMsIGs6IFsxMDAsIDEwMF0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgc2E6IHsgYTogMCwgaXg6IDUsIGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgc2s6IHsgYTogMCwgaXg6IDQsIGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgdHk6ICJ0ciIsCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcnIuc3BsaWNlKDAsIDAsIGMpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ncm91cHMuc3BsaWNlKDAsIDAsIGMpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fY3VycmVudENvcGllcyArPSAxKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtLnJlbG9hZFNoYXBlcygpLCAobyA9ICEwKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgICAgICAgdmFyIHU7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPD0gdGhpcy5fZ3JvdXBzLmxlbmd0aCAtIDE7IG4gKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgodSA9IGEgPCBsKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2dyb3Vwc1tuXS5fcmVuZGVyID0gdSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlR3JvdXBSZW5kZXIodGhpcy5fZ3JvdXBzW25dLml0LCB1KSwKICAgICAgICAgICAgICAgICAgICAgICAgIXUpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZWxlbXNEYXRhW25dLml0LAogICAgICAgICAgICAgICAgICAgICAgICBFID0gZFtkLmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgICAgICAgRS50cmFuc2Zvcm0ub3AudiAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgICA/ICgoRS50cmFuc2Zvcm0ub3AuX21kZiA9ICEwKSwgKEUudHJhbnNmb3JtLm9wLnYgPSAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoRS50cmFuc2Zvcm0ub3AuX21kZiA9ICExKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYSArPSAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDb3BpZXMgPSBsOwogICAgICAgICAgICAgICAgICB2YXIgYiA9IHRoaXMuby52LAogICAgICAgICAgICAgICAgICAgIFAgPSBiICUgMSwKICAgICAgICAgICAgICAgICAgICBSID0gYiA+IDAgPyBNYXRoLmZsb29yKGIpIDogTWF0aC5jZWlsKGIpLAogICAgICAgICAgICAgICAgICAgIFQgPSB0aGlzLnBNYXRyaXgucHJvcHMsCiAgICAgICAgICAgICAgICAgICAgTSA9IHRoaXMuck1hdHJpeC5wcm9wcywKICAgICAgICAgICAgICAgICAgICB4ID0gdGhpcy5zTWF0cml4LnByb3BzOwogICAgICAgICAgICAgICAgICB0aGlzLnBNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnRNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdHJpeC5yZXNldCgpOwogICAgICAgICAgICAgICAgICB2YXIgayA9IDA7CiAgICAgICAgICAgICAgICAgIGlmIChiID4gMCkgewogICAgICAgICAgICAgICAgICAgIGZvciAoOyBrIDwgUjspCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IDEpOwogICAgICAgICAgICAgICAgICAgIFAgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgUCwKICAgICAgICAgICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IFApKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChiIDwgMCkgewogICAgICAgICAgICAgICAgICAgIGZvciAoOyBrID4gUjspCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChrIC09IDEpOwogICAgICAgICAgICAgICAgICAgIFAgJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgLVAsCiAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAoayAtPSBQKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKG4gPSB0aGlzLmRhdGEubSA9PT0gMSA/IDAgOiB0aGlzLl9jdXJyZW50Q29waWVzIC0gMSksCiAgICAgICAgICAgICAgICAgICAgKGkgPSB0aGlzLmRhdGEubSA9PT0gMSA/IDEgOiAtMSksCiAgICAgICAgICAgICAgICAgICAgKGEgPSB0aGlzLl9jdXJyZW50Q29waWVzKTsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgUywgQTsgYTspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAoKHQgPSB0aGlzLmVsZW1zRGF0YVtuXS5pdCksCiAgICAgICAgICAgICAgICAgICAgICAgIChyID0gdFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5tUHJvcHMudi5wcm9wcyksCiAgICAgICAgICAgICAgICAgICAgICAgIChBID0gci5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAodFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5tUHJvcHMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ub3AuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ub3AudiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudENvcGllcyA9PT0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNvLnYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zby52ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmVvLnYgLSB0aGlzLnNvLnYpICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuIC8gKHRoaXMuX2N1cnJlbnRDb3BpZXMgLSAxKSkpLAogICAgICAgICAgICAgICAgICAgICAgICBrICE9PSAwKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgKChuICE9PSAwICYmIGkgPT09IDEpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKG4gIT09IHRoaXMuX2N1cnJlbnRDb3BpZXMgLSAxICYmIGkgPT09IC0xKSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVRyYW5zZm9ybXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuck1hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICExCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgTVsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgTVs1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzZdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgTVs4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWzldLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTRdLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1bMTVdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeFs1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzZdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeFs4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICB4WzldLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTRdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHhbMTVdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zZm9ybSgKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVFsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVFs1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzZdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVFs4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBUWzldLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTRdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFRbMTVdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIFMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBTIDwgQTsKICAgICAgICAgICAgICAgICAgICAgICAgUyArPSAxCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHJbU10gPSB0aGlzLm1hdHJpeC5wcm9wc1tTXTsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHRoaXMubWF0cml4LnJlc2V0KCksIFMgPSAwOyBTIDwgQTsgUyArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICByW1NdID0gdGhpcy5tYXRyaXgucHJvcHNbU107CiAgICAgICAgICAgICAgICAgICAgKGsgKz0gMSksIChhIC09IDEpLCAobiArPSBpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgIGZvciAoYSA9IHRoaXMuX2N1cnJlbnRDb3BpZXMsIG4gPSAwLCBpID0gMTsgYTspCiAgICAgICAgICAgICAgICAgICAgKHQgPSB0aGlzLmVsZW1zRGF0YVtuXS5pdCksCiAgICAgICAgICAgICAgICAgICAgICAociA9IHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ubVByb3BzLnYucHJvcHMpLAogICAgICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ubVByb3BzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAodFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5vcC5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgICAgKGEgLT0gMSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSBpKTsKICAgICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChSZXBlYXRlck1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZSA9IGZ1bmN0aW9uICgpIHsgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFJvdW5kQ29ybmVyc01vZGlmaWVyKCkgeyB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU2hhcGVNb2RpZmllcl0sIFJvdW5kQ29ybmVyc01vZGlmaWVyKSwKICAgICAgICAgICAgICAoUm91bmRDb3JuZXJzTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPQogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLnByb2Nlc3NLZXlzKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5yZCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuciwgMCwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISF0aGlzLnJkLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgpOwogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFJvdW5kQ29ybmVyc01vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzUGF0aCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgICByLmMgPSBlLmM7CiAgICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgICAgaSA9IGUuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgICAgbCwKICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICAgICAgRSA9IDAsCiAgICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICAgIFAsCiAgICAgICAgICAgICAgICAgIFIsCiAgICAgICAgICAgICAgICAgIFQsCiAgICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICAgIHg7CiAgICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgaTsgbiArPSAxKQogICAgICAgICAgICAgICAgICAoYSA9IGUudltuXSksCiAgICAgICAgICAgICAgICAgICAgKGwgPSBlLm9bbl0pLAogICAgICAgICAgICAgICAgICAgIChvID0gZS5pW25dKSwKICAgICAgICAgICAgICAgICAgICBhWzBdID09PSBsWzBdICYmCiAgICAgICAgICAgICAgICAgICAgICBhWzFdID09PSBsWzFdICYmCiAgICAgICAgICAgICAgICAgICAgICBhWzBdID09PSBvWzBdICYmCiAgICAgICAgICAgICAgICAgICAgICBhWzFdID09PSBvWzFdCiAgICAgICAgICAgICAgICAgICAgICA/IChuID09PSAwIHx8IG4gPT09IGkgLSAxKSAmJiAhZS5jCiAgICAgICAgICAgICAgICAgICAgICAgID8gKHIuc2V0VHJpcGxlQXQoYVswXSwgYVsxXSwgbFswXSwgbFsxXSwgb1swXSwgb1sxXSwgRSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgKz0gMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKG4gPT09IDAgPyAoYyA9IGUudltpIC0gMV0pIDogKGMgPSBlLnZbbiAtIDFdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodSA9IE1hdGguc3FydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KGFbMF0gLSBjWzBdLCAyKSArIE1hdGgucG93KGFbMV0gLSBjWzFdLCAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChkID0gdSA/IE1hdGgubWluKHUgLyAyLCB0KSAvIHUgOiAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoTSA9IGFbMF0gKyAoY1swXSAtIGFbMF0pICogZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgPSBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoeCA9IGFbMV0gLSAoYVsxXSAtIGNbMV0pICogZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFAgPSB4KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9IGIgLSAoYiAtIGFbMF0pICogcm91bmRDb3JuZXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChUID0gUCAtIChQIC0gYVsxXSkgKiByb3VuZENvcm5lciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgci5zZXRUcmlwbGVBdChiLCBQLCBSLCBULCBNLCB4LCBFKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBuID09PSBpIC0gMSA/IChjID0gZS52WzBdKSA6IChjID0gZS52W24gKyAxXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHUgPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnBvdyhhWzBdIC0gY1swXSwgMikgKyBNYXRoLnBvdyhhWzFdIC0gY1sxXSwgMikKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoZCA9IHUgPyBNYXRoLm1pbih1IC8gMiwgdCkgLyB1IDogMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSBhWzBdICsgKGNbMF0gLSBhWzBdKSAqIGQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChiID0gUiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBhWzFdICsgKGNbMV0gLSBhWzFdKSAqIGQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChQID0gVCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSBiIC0gKGIgLSBhWzBdKSAqIHJvdW5kQ29ybmVyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoeCA9IFAgLSAoUCAtIGFbMV0pICogcm91bmRDb3JuZXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHIuc2V0VHJpcGxlQXQoYiwgUCwgUiwgVCwgTSwgeCwgRSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgKz0gMSkpCiAgICAgICAgICAgICAgICAgICAgICA6IChyLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICBlLnZbbl1bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGUudltuXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5vW25dWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBlLm9bbl1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGUuaVtuXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5pW25dWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBFCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKSk7CiAgICAgICAgICAgICAgICByZXR1cm4gcjsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUm91bmRDb3JuZXJzTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLnJkLnY7CiAgICAgICAgICAgICAgICBpZiAobyAhPT0gMCkgewogICAgICAgICAgICAgICAgICB2YXIgbCwgYzsKICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgobCA9IHRoaXMuc2hhcGVzW3JdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGMgPSBsLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgISghbC5zaGFwZS5fbWRmICYmICF0aGlzLl9tZGYgJiYgIWUpKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIGMucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgICBsLnNoYXBlLl9tZGYgPSAhMCwKICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGwuc2hhcGUucGF0aHMuc2hhcGVzLAogICAgICAgICAgICAgICAgICAgICAgICBhID0gbC5zaGFwZS5wYXRocy5fbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaSA8IGE7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBjLmFkZFNoYXBlKHRoaXMucHJvY2Vzc1BhdGgodFtpXSwgbykpOwogICAgICAgICAgICAgICAgICAgIGwuc2hhcGUucGF0aHMgPSBsLmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmdW5jdGlvbiBmbG9hdEVxdWFsKGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgTWF0aC5hYnMoZSAtIHQpICogMWU1IDw9IE1hdGgubWluKE1hdGguYWJzKGUpLCBNYXRoLmFicyh0KSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGZsb2F0WmVybyhlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKGUpIDw9IDFlLTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gbGVycChlLCB0LCByKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGUgKiAoMSAtIHIpICsgdCAqIHI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gbGVycFBvaW50KGUsIHQsIHIpIHsKICAgICAgICAgICAgICByZXR1cm4gW2xlcnAoZVswXSwgdFswXSwgciksIGxlcnAoZVsxXSwgdFsxXSwgcildOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHF1YWRSb290cyhlLCB0LCByKSB7CiAgICAgICAgICAgICAgaWYgKGUgPT09IDApIHJldHVybiBbXTsKICAgICAgICAgICAgICB2YXIgbiA9IHQgKiB0IC0gNCAqIGUgKiByOwogICAgICAgICAgICAgIGlmIChuIDwgMCkgcmV0dXJuIFtdOwogICAgICAgICAgICAgIHZhciBpID0gLXQgLyAoMiAqIGUpOwogICAgICAgICAgICAgIGlmIChuID09PSAwKSByZXR1cm4gW2ldOwogICAgICAgICAgICAgIHZhciBhID0gTWF0aC5zcXJ0KG4pIC8gKDIgKiBlKTsKICAgICAgICAgICAgICByZXR1cm4gW2kgLSBhLCBpICsgYV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcG9seW5vbWlhbENvZWZmaWNpZW50cyhlLCB0LCByLCBuKSB7CiAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgIC1lICsgMyAqIHQgLSAzICogciArIG4sCiAgICAgICAgICAgICAgICAzICogZSAtIDYgKiB0ICsgMyAqIHIsCiAgICAgICAgICAgICAgICAtMyAqIGUgKyAzICogdCwKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzaW5nbGVQb2ludChlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2x5bm9taWFsQmV6aWVyKGUsIGUsIGUsIGUsICExKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBQb2x5bm9taWFsQmV6aWVyKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgICAgICAgICBpICYmIHBvaW50RXF1YWwoZSwgdCkgJiYgKHQgPSBsZXJwUG9pbnQoZSwgbiwgMSAvIDMpKSwKICAgICAgICAgICAgICAgIGkgJiYgcG9pbnRFcXVhbChyLCBuKSAmJiAociA9IGxlcnBQb2ludChlLCBuLCAyIC8gMykpOwogICAgICAgICAgICAgIHZhciBhID0gcG9seW5vbWlhbENvZWZmaWNpZW50cyhlWzBdLCB0WzBdLCByWzBdLCBuWzBdKSwKICAgICAgICAgICAgICAgIG8gPSBwb2x5bm9taWFsQ29lZmZpY2llbnRzKGVbMV0sIHRbMV0sIHJbMV0sIG5bMV0pOwogICAgICAgICAgICAgICh0aGlzLmEgPSBbYVswXSwgb1swXV0pLAogICAgICAgICAgICAgICAgKHRoaXMuYiA9IFthWzFdLCBvWzFdXSksCiAgICAgICAgICAgICAgICAodGhpcy5jID0gW2FbMl0sIG9bMl1dKSwKICAgICAgICAgICAgICAgICh0aGlzLmQgPSBbYVszXSwgb1szXV0pLAogICAgICAgICAgICAgICAgKHRoaXMucG9pbnRzID0gW2UsIHQsIHIsIG5dKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUucG9pbnQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAoKHRoaXMuYVswXSAqIGUgKyB0aGlzLmJbMF0pICogZSArIHRoaXMuY1swXSkgKiBlICsgdGhpcy5kWzBdLAogICAgICAgICAgICAgICAgKCh0aGlzLmFbMV0gKiBlICsgdGhpcy5iWzFdKSAqIGUgKyB0aGlzLmNbMV0pICogZSArIHRoaXMuZFsxXSwKICAgICAgICAgICAgICBdOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUuZGVyaXZhdGl2ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAoMyAqIGUgKiB0aGlzLmFbMF0gKyAyICogdGhpcy5iWzBdKSAqIGUgKyB0aGlzLmNbMF0sCiAgICAgICAgICAgICAgICAgICgzICogZSAqIHRoaXMuYVsxXSArIDIgKiB0aGlzLmJbMV0pICogZSArIHRoaXMuY1sxXSwKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFBvbHlub21pYWxCZXppZXIucHJvdG90eXBlLnRhbmdlbnRBbmdsZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZGVyaXZhdGl2ZShlKTsKICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHRbMV0sIHRbMF0pOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5ub3JtYWxBbmdsZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZGVyaXZhdGl2ZShlKTsKICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHRbMF0sIHRbMV0pOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5pbmZsZWN0aW9uUG9pbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmFbMV0gKiB0aGlzLmJbMF0gLSB0aGlzLmFbMF0gKiB0aGlzLmJbMV07CiAgICAgICAgICAgICAgICBpZiAoZmxvYXRaZXJvKGUpKSByZXR1cm4gW107CiAgICAgICAgICAgICAgICB2YXIgdCA9CiAgICAgICAgICAgICAgICAgICgtMC41ICogKHRoaXMuYVsxXSAqIHRoaXMuY1swXSAtIHRoaXMuYVswXSAqIHRoaXMuY1sxXSkpIC8KICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgciA9CiAgICAgICAgICAgICAgICAgICAgdCAqIHQgLQogICAgICAgICAgICAgICAgICAgICgoMSAvIDMpICoKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmJbMV0gKiB0aGlzLmNbMF0gLSB0aGlzLmJbMF0gKiB0aGlzLmNbMV0pKSAvCiAgICAgICAgICAgICAgICAgICAgZTsKICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgcmV0dXJuIFtdOwogICAgICAgICAgICAgICAgdmFyIG4gPSBNYXRoLnNxcnQocik7CiAgICAgICAgICAgICAgICByZXR1cm4gZmxvYXRaZXJvKG4pCiAgICAgICAgICAgICAgICAgID8gbiA+IDAgJiYgbiA8IDEKICAgICAgICAgICAgICAgICAgICA/IFt0XQogICAgICAgICAgICAgICAgICAgIDogW10KICAgICAgICAgICAgICAgICAgOiBbdCAtIG4sIHQgKyBuXS5maWx0ZXIoZnVuY3Rpb24gKGkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSA+IDAgJiYgaSA8IDE7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5zcGxpdCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoZSA8PSAwKSByZXR1cm4gW3NpbmdsZVBvaW50KHRoaXMucG9pbnRzWzBdKSwgdGhpc107CiAgICAgICAgICAgICAgICBpZiAoZSA+PSAxKQogICAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgICAgc2luZ2xlUG9pbnQodGhpcy5wb2ludHNbdGhpcy5wb2ludHMubGVuZ3RoIC0gMV0pLAogICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHQgPSBsZXJwUG9pbnQodGhpcy5wb2ludHNbMF0sIHRoaXMucG9pbnRzWzFdLCBlKSwKICAgICAgICAgICAgICAgICAgciA9IGxlcnBQb2ludCh0aGlzLnBvaW50c1sxXSwgdGhpcy5wb2ludHNbMl0sIGUpLAogICAgICAgICAgICAgICAgICBuID0gbGVycFBvaW50KHRoaXMucG9pbnRzWzJdLCB0aGlzLnBvaW50c1szXSwgZSksCiAgICAgICAgICAgICAgICAgIGkgPSBsZXJwUG9pbnQodCwgciwgZSksCiAgICAgICAgICAgICAgICAgIGEgPSBsZXJwUG9pbnQociwgbiwgZSksCiAgICAgICAgICAgICAgICAgIG8gPSBsZXJwUG9pbnQoaSwgYSwgZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICBuZXcgUG9seW5vbWlhbEJlemllcih0aGlzLnBvaW50c1swXSwgdCwgaSwgbywgITApLAogICAgICAgICAgICAgICAgICBuZXcgUG9seW5vbWlhbEJlemllcihvLCBhLCBuLCB0aGlzLnBvaW50c1szXSwgITApLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gZXh0cmVtYShlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBlLnBvaW50c1swXVt0XSwKICAgICAgICAgICAgICAgIG4gPSBlLnBvaW50c1tlLnBvaW50cy5sZW5ndGggLSAxXVt0XTsKICAgICAgICAgICAgICBpZiAociA+IG4pIHsKICAgICAgICAgICAgICAgIHZhciBpID0gbjsKICAgICAgICAgICAgICAgIChuID0gciksIChyID0gaSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB2YXIgYSA9IHF1YWRSb290cygzICogZS5hW3RdLCAyICogZS5iW3RdLCBlLmNbdF0pLCBvID0gMDsKICAgICAgICAgICAgICAgIG8gPCBhLmxlbmd0aDsKICAgICAgICAgICAgICAgIG8gKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGlmIChhW29dID4gMCAmJiBhW29dIDwgMSkgewogICAgICAgICAgICAgICAgICB2YXIgbCA9IGUucG9pbnQoYVtvXSlbdF07CiAgICAgICAgICAgICAgICAgIGwgPCByID8gKHIgPSBsKSA6IGwgPiBuICYmIChuID0gbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgbWluOiByLCBtYXg6IG4gfTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUuYm91bmRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB7IHg6IGV4dHJlbWEodGhpcywgMCksIHk6IGV4dHJlbWEodGhpcywgMSkgfTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFBvbHlub21pYWxCZXppZXIucHJvdG90eXBlLmJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmJvdW5kcygpOwogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgbGVmdDogZS54Lm1pbiwKICAgICAgICAgICAgICAgICAgcmlnaHQ6IGUueC5tYXgsCiAgICAgICAgICAgICAgICAgIHRvcDogZS55Lm1pbiwKICAgICAgICAgICAgICAgICAgYm90dG9tOiBlLnkubWF4LAogICAgICAgICAgICAgICAgICB3aWR0aDogZS54Lm1heCAtIGUueC5taW4sCiAgICAgICAgICAgICAgICAgIGhlaWdodDogZS55Lm1heCAtIGUueS5taW4sCiAgICAgICAgICAgICAgICAgIGN4OiAoZS54Lm1heCArIGUueC5taW4pIC8gMiwKICAgICAgICAgICAgICAgICAgY3k6IChlLnkubWF4ICsgZS55Lm1pbikgLyAyLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gaW50ZXJzZWN0RGF0YShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSBlLmJvdW5kaW5nQm94KCk7CiAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIGN4OiBuLmN4LAogICAgICAgICAgICAgICAgY3k6IG4uY3ksCiAgICAgICAgICAgICAgICB3aWR0aDogbi53aWR0aCwKICAgICAgICAgICAgICAgIGhlaWdodDogbi5oZWlnaHQsCiAgICAgICAgICAgICAgICBiZXo6IGUsCiAgICAgICAgICAgICAgICB0OiAodCArIHIpIC8gMiwKICAgICAgICAgICAgICAgIHQxOiB0LAogICAgICAgICAgICAgICAgdDI6IHIsCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzcGxpdERhdGEoZSkgewogICAgICAgICAgICAgIHZhciB0ID0gZS5iZXouc3BsaXQoMC41KTsKICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgaW50ZXJzZWN0RGF0YSh0WzBdLCBlLnQxLCBlLnQpLAogICAgICAgICAgICAgICAgaW50ZXJzZWN0RGF0YSh0WzFdLCBlLnQsIGUudDIpLAogICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gYm94SW50ZXJzZWN0KGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgTWF0aC5hYnMoZS5jeCAtIHQuY3gpICogMiA8IGUud2lkdGggKyB0LndpZHRoICYmCiAgICAgICAgICAgICAgICBNYXRoLmFicyhlLmN5IC0gdC5jeSkgKiAyIDwgZS5oZWlnaHQgKyB0LmhlaWdodAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaW50ZXJzZWN0c0ltcGwoZSwgdCwgciwgbiwgaSwgYSkgewogICAgICAgICAgICAgIGlmIChib3hJbnRlcnNlY3QoZSwgdCkpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgciA+PSBhIHx8CiAgICAgICAgICAgICAgICAgIChlLndpZHRoIDw9IG4gJiYKICAgICAgICAgICAgICAgICAgICBlLmhlaWdodCA8PSBuICYmCiAgICAgICAgICAgICAgICAgICAgdC53aWR0aCA8PSBuICYmCiAgICAgICAgICAgICAgICAgICAgdC5oZWlnaHQgPD0gbikKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBpLnB1c2goW2UudCwgdC50XSk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBvID0gc3BsaXREYXRhKGUpLAogICAgICAgICAgICAgICAgICBsID0gc3BsaXREYXRhKHQpOwogICAgICAgICAgICAgICAgaW50ZXJzZWN0c0ltcGwob1swXSwgbFswXSwgciArIDEsIG4sIGksIGEpLAogICAgICAgICAgICAgICAgICBpbnRlcnNlY3RzSW1wbChvWzBdLCBsWzFdLCByICsgMSwgbiwgaSwgYSksCiAgICAgICAgICAgICAgICAgIGludGVyc2VjdHNJbXBsKG9bMV0sIGxbMF0sIHIgKyAxLCBuLCBpLCBhKSwKICAgICAgICAgICAgICAgICAgaW50ZXJzZWN0c0ltcGwob1sxXSwgbFsxXSwgciArIDEsIG4sIGksIGEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUuaW50ZXJzZWN0aW9ucyA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgICAgICAgdCA9PT0gdm9pZCAwICYmICh0ID0gMiksIHIgPT09IHZvaWQgMCAmJiAociA9IDcpOwogICAgICAgICAgICAgIHZhciBuID0gW107CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGludGVyc2VjdHNJbXBsKAogICAgICAgICAgICAgICAgICBpbnRlcnNlY3REYXRhKHRoaXMsIDAsIDEpLAogICAgICAgICAgICAgICAgICBpbnRlcnNlY3REYXRhKGUsIDAsIDEpLAogICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgbgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB2YXIgciA9ICh0ICsgMSkgJSBlLmxlbmd0aCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2x5bm9taWFsQmV6aWVyKGUudlt0XSwgZS5vW3RdLCBlLmlbcl0sIGUudltyXSwgITApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudEludmVydGVkID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByID0gKHQgKyAxKSAlIGUubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBvbHlub21pYWxCZXppZXIoZS52W3JdLCBlLmlbcl0sIGUub1t0XSwgZS52W3RdLCAhMCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIGNyb3NzUHJvZHVjdChlLCB0KSB7CiAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgIGVbMV0gKiB0WzJdIC0gZVsyXSAqIHRbMV0sCiAgICAgICAgICAgICAgICBlWzJdICogdFswXSAtIGVbMF0gKiB0WzJdLAogICAgICAgICAgICAgICAgZVswXSAqIHRbMV0gLSBlWzFdICogdFswXSwKICAgICAgICAgICAgICBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGxpbmVJbnRlcnNlY3Rpb24oZSwgdCwgciwgbikgewogICAgICAgICAgICAgIHZhciBpID0gW2VbMF0sIGVbMV0sIDFdLAogICAgICAgICAgICAgICAgYSA9IFt0WzBdLCB0WzFdLCAxXSwKICAgICAgICAgICAgICAgIG8gPSBbclswXSwgclsxXSwgMV0sCiAgICAgICAgICAgICAgICBsID0gW25bMF0sIG5bMV0sIDFdLAogICAgICAgICAgICAgICAgYyA9IGNyb3NzUHJvZHVjdChjcm9zc1Byb2R1Y3QoaSwgYSksIGNyb3NzUHJvZHVjdChvLCBsKSk7CiAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0WmVybyhjWzJdKSA/IG51bGwgOiBbY1swXSAvIGNbMl0sIGNbMV0gLyBjWzJdXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBwb2xhck9mZnNldChlLCB0LCByKSB7CiAgICAgICAgICAgICAgcmV0dXJuIFtlWzBdICsgTWF0aC5jb3ModCkgKiByLCBlWzFdIC0gTWF0aC5zaW4odCkgKiByXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBwb2ludERpc3RhbmNlKGUsIHQpIHsKICAgICAgICAgICAgICByZXR1cm4gTWF0aC5oeXBvdChlWzBdIC0gdFswXSwgZVsxXSAtIHRbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHBvaW50RXF1YWwoZSwgdCkgewogICAgICAgICAgICAgIHJldHVybiBmbG9hdEVxdWFsKGVbMF0sIHRbMF0pICYmIGZsb2F0RXF1YWwoZVsxXSwgdFsxXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gWmlnWmFnTW9kaWZpZXIoKSB7IH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTaGFwZU1vZGlmaWVyXSwgWmlnWmFnTW9kaWZpZXIpLAogICAgICAgICAgICAgIChaaWdaYWdNb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMucHJvY2Vzc0tleXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5hbXBsaXR1ZGUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIHQucywKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZnJlcXVlbmN5ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LnIsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnBvaW50c1R5cGUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIHQucHQsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFtcGxpdHVkZS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVxdWVuY3kuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucG9pbnRzVHlwZS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICE9PSAwKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gc2V0UG9pbnQoZSwgdCwgciwgbiwgaSwgYSwgbykgewogICAgICAgICAgICAgIHZhciBsID0gciAtIE1hdGguUEkgLyAyLAogICAgICAgICAgICAgICAgYyA9IHIgKyBNYXRoLlBJIC8gMiwKICAgICAgICAgICAgICAgIHUgPSB0WzBdICsgTWF0aC5jb3MocikgKiBuICogaSwKICAgICAgICAgICAgICAgIGQgPSB0WzFdIC0gTWF0aC5zaW4ocikgKiBuICogaTsKICAgICAgICAgICAgICBlLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICB1ICsgTWF0aC5jb3MobCkgKiBhLAogICAgICAgICAgICAgICAgZCAtIE1hdGguc2luKGwpICogYSwKICAgICAgICAgICAgICAgIHUgKyBNYXRoLmNvcyhjKSAqIG8sCiAgICAgICAgICAgICAgICBkIC0gTWF0aC5zaW4oYykgKiBvLAogICAgICAgICAgICAgICAgZS5sZW5ndGgoKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UGVycGVuZGljdWxhclZlY3RvcihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBbdFswXSAtIGVbMF0sIHRbMV0gLSBlWzFdXSwKICAgICAgICAgICAgICAgIG4gPSAtTWF0aC5QSSAqIDAuNSwKICAgICAgICAgICAgICAgIGkgPSBbCiAgICAgICAgICAgICAgICAgIE1hdGguY29zKG4pICogclswXSAtIE1hdGguc2luKG4pICogclsxXSwKICAgICAgICAgICAgICAgICAgTWF0aC5zaW4obikgKiByWzBdICsgTWF0aC5jb3MobikgKiByWzFdLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBnZXRQcm9qZWN0aW5nQW5nbGUoZSwgdCkgewogICAgICAgICAgICAgIHZhciByID0gdCA9PT0gMCA/IGUubGVuZ3RoKCkgLSAxIDogdCAtIDEsCiAgICAgICAgICAgICAgICBuID0gKHQgKyAxKSAlIGUubGVuZ3RoKCksCiAgICAgICAgICAgICAgICBpID0gZS52W3JdLAogICAgICAgICAgICAgICAgYSA9IGUudltuXSwKICAgICAgICAgICAgICAgIG8gPSBnZXRQZXJwZW5kaWN1bGFyVmVjdG9yKGksIGEpOwogICAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKDAsIDEpIC0gTWF0aC5hdGFuMihvWzFdLCBvWzBdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB6aWdaYWdDb3JuZXIoZSwgdCwgciwgbiwgaSwgYSwgbykgewogICAgICAgICAgICAgIHZhciBsID0gZ2V0UHJvamVjdGluZ0FuZ2xlKHQsIHIpLAogICAgICAgICAgICAgICAgYyA9IHQudltyICUgdC5fbGVuZ3RoXSwKICAgICAgICAgICAgICAgIHUgPSB0LnZbciA9PT0gMCA/IHQuX2xlbmd0aCAtIDEgOiByIC0gMV0sCiAgICAgICAgICAgICAgICBkID0gdC52WyhyICsgMSkgJSB0Ll9sZW5ndGhdLAogICAgICAgICAgICAgICAgRSA9CiAgICAgICAgICAgICAgICAgIGEgPT09IDIKICAgICAgICAgICAgICAgICAgICA/IE1hdGguc3FydCgKICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KGNbMF0gLSB1WzBdLCAyKSArIE1hdGgucG93KGNbMV0gLSB1WzFdLCAyKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICA6IDAsCiAgICAgICAgICAgICAgICBiID0KICAgICAgICAgICAgICAgICAgYSA9PT0gMgogICAgICAgICAgICAgICAgICAgID8gTWF0aC5zcXJ0KAogICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coY1swXSAtIGRbMF0sIDIpICsgTWF0aC5wb3coY1sxXSAtIGRbMV0sIDIpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIDogMDsKICAgICAgICAgICAgICBzZXRQb2ludCgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0LnZbciAlIHQuX2xlbmd0aF0sCiAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBiIC8gKChpICsgMSkgKiAyKSwKICAgICAgICAgICAgICAgIEUgLyAoKGkgKyAxKSAqIDIpCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB6aWdaYWdTZWdtZW50KGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBvID0gMDsgbyA8IG47IG8gKz0gMSkgewogICAgICAgICAgICAgICAgdmFyIGwgPSAobyArIDEpIC8gKG4gKyAxKSwKICAgICAgICAgICAgICAgICAgYyA9CiAgICAgICAgICAgICAgICAgICAgaSA9PT0gMgogICAgICAgICAgICAgICAgICAgICAgPyBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KHQucG9pbnRzWzNdWzBdIC0gdC5wb2ludHNbMF1bMF0sIDIpICsKICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3codC5wb2ludHNbM11bMV0gLSB0LnBvaW50c1swXVsxXSwgMikKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIDogMCwKICAgICAgICAgICAgICAgICAgdSA9IHQubm9ybWFsQW5nbGUobCksCiAgICAgICAgICAgICAgICAgIGQgPSB0LnBvaW50KGwpOwogICAgICAgICAgICAgICAgc2V0UG9pbnQoZSwgZCwgdSwgYSwgciwgYyAvICgobiArIDEpICogMiksIGMgLyAoKG4gKyAxKSAqIDIpKSwKICAgICAgICAgICAgICAgICAgKGEgPSAtYSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChaaWdaYWdNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICAgIHZhciBpID0gZS5fbGVuZ3RoLAogICAgICAgICAgICAgICAgYSA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgaWYgKCgoYS5jID0gZS5jKSwgZS5jIHx8IChpIC09IDEpLCBpID09PSAwKSkgcmV0dXJuIGE7CiAgICAgICAgICAgICAgdmFyIG8gPSAtMSwKICAgICAgICAgICAgICAgIGwgPSBQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudChlLCAwKTsKICAgICAgICAgICAgICB6aWdaYWdDb3JuZXIoYSwgZSwgMCwgdCwgciwgbiwgbyk7CiAgICAgICAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCBpOyBjICs9IDEpCiAgICAgICAgICAgICAgICAobyA9IHppZ1phZ1NlZ21lbnQoYSwgbCwgdCwgciwgbiwgLW8pKSwKICAgICAgICAgICAgICAgICAgYyA9PT0gaSAtIDEgJiYgIWUuYwogICAgICAgICAgICAgICAgICAgID8gKGwgPSBudWxsKQogICAgICAgICAgICAgICAgICAgIDogKGwgPSBQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudChlLCAoYyArIDEpICUgaSkpLAogICAgICAgICAgICAgICAgICB6aWdaYWdDb3JuZXIoYSwgZSwgYyArIDEsIHQsIHIsIG4sIG8pOwogICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoWmlnWmFnTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLmFtcGxpdHVkZS52LAogICAgICAgICAgICAgICAgICBsID0gTWF0aC5tYXgoMCwgTWF0aC5yb3VuZCh0aGlzLmZyZXF1ZW5jeS52KSksCiAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLnBvaW50c1R5cGUudjsKICAgICAgICAgICAgICAgIGlmIChvICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgIHZhciB1LCBkOwogICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKCh1ID0gdGhpcy5zaGFwZXNbcl0pLAogICAgICAgICAgICAgICAgICAgICAgICAoZCA9IHUubG9jYWxTaGFwZUNvbGxlY3Rpb24pLAogICAgICAgICAgICAgICAgICAgICAgICAhKCF1LnNoYXBlLl9tZGYgJiYgIXRoaXMuX21kZiAmJiAhZSkpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgZC5yZWxlYXNlU2hhcGVzKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHUuc2hhcGUuX21kZiA9ICEwLAogICAgICAgICAgICAgICAgICAgICAgICB0ID0gdS5zaGFwZS5wYXRocy5zaGFwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIGEgPSB1LnNoYXBlLnBhdGhzLl9sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpIDwgYTsKICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIGQuYWRkU2hhcGUodGhpcy5wcm9jZXNzUGF0aCh0W2ldLCBvLCBsLCBjKSk7CiAgICAgICAgICAgICAgICAgICAgdS5zaGFwZS5wYXRocyA9IHUubG9jYWxTaGFwZUNvbGxlY3Rpb247CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoIHx8ICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIGxpbmVhck9mZnNldChlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSBNYXRoLmF0YW4yKHRbMF0gLSBlWzBdLCB0WzFdIC0gZVsxXSk7CiAgICAgICAgICAgICAgcmV0dXJuIFtwb2xhck9mZnNldChlLCBuLCByKSwgcG9sYXJPZmZzZXQodCwgbiwgcildOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG9mZnNldFNlZ21lbnQoZSwgdCkgewogICAgICAgICAgICAgIHZhciByLCBuLCBpLCBhLCBvLCBsLCBjOwogICAgICAgICAgICAgIChjID0gbGluZWFyT2Zmc2V0KGUucG9pbnRzWzBdLCBlLnBvaW50c1sxXSwgdCkpLAogICAgICAgICAgICAgICAgKHIgPSBjWzBdKSwKICAgICAgICAgICAgICAgIChuID0gY1sxXSksCiAgICAgICAgICAgICAgICAoYyA9IGxpbmVhck9mZnNldChlLnBvaW50c1sxXSwgZS5wb2ludHNbMl0sIHQpKSwKICAgICAgICAgICAgICAgIChpID0gY1swXSksCiAgICAgICAgICAgICAgICAoYSA9IGNbMV0pLAogICAgICAgICAgICAgICAgKGMgPSBsaW5lYXJPZmZzZXQoZS5wb2ludHNbMl0sIGUucG9pbnRzWzNdLCB0KSksCiAgICAgICAgICAgICAgICAobyA9IGNbMF0pLAogICAgICAgICAgICAgICAgKGwgPSBjWzFdKTsKICAgICAgICAgICAgICB2YXIgdSA9IGxpbmVJbnRlcnNlY3Rpb24ociwgbiwgaSwgYSk7CiAgICAgICAgICAgICAgdSA9PT0gbnVsbCAmJiAodSA9IG4pOwogICAgICAgICAgICAgIHZhciBkID0gbGluZUludGVyc2VjdGlvbihvLCBsLCBpLCBhKTsKICAgICAgICAgICAgICByZXR1cm4gZCA9PT0gbnVsbCAmJiAoZCA9IG8pLCBuZXcgUG9seW5vbWlhbEJlemllcihyLCB1LCBkLCBsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBqb2luTGluZXMoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICAgIHZhciBhID0gdC5wb2ludHNbM10sCiAgICAgICAgICAgICAgICBvID0gci5wb2ludHNbMF07CiAgICAgICAgICAgICAgaWYgKG4gPT09IDMgfHwgcG9pbnRFcXVhbChhLCBvKSkgcmV0dXJuIGE7CiAgICAgICAgICAgICAgaWYgKG4gPT09IDIpIHsKICAgICAgICAgICAgICAgIHZhciBsID0gLXQudGFuZ2VudEFuZ2xlKDEpLAogICAgICAgICAgICAgICAgICBjID0gLXIudGFuZ2VudEFuZ2xlKDApICsgTWF0aC5QSSwKICAgICAgICAgICAgICAgICAgdSA9IGxpbmVJbnRlcnNlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgICBwb2xhck9mZnNldChhLCBsICsgTWF0aC5QSSAvIDIsIDEwMCksCiAgICAgICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgICAgICBwb2xhck9mZnNldChvLCBsICsgTWF0aC5QSSAvIDIsIDEwMCkKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgZCA9IHUgPyBwb2ludERpc3RhbmNlKHUsIGEpIDogcG9pbnREaXN0YW5jZShhLCBvKSAvIDIsCiAgICAgICAgICAgICAgICAgIEUgPSBwb2xhck9mZnNldChhLCBsLCAyICogZCAqIHJvdW5kQ29ybmVyKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIGUuc2V0WFlBdChFWzBdLCBFWzFdLCAibyIsIGUubGVuZ3RoKCkgLSAxKSwKICAgICAgICAgICAgICAgICAgKEUgPSBwb2xhck9mZnNldChvLCBjLCAyICogZCAqIHJvdW5kQ29ybmVyKSksCiAgICAgICAgICAgICAgICAgIGUuc2V0VHJpcGxlQXQob1swXSwgb1sxXSwgb1swXSwgb1sxXSwgRVswXSwgRVsxXSwgZS5sZW5ndGgoKSksCiAgICAgICAgICAgICAgICAgIG8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBiID0gcG9pbnRFcXVhbChhLCB0LnBvaW50c1syXSkgPyB0LnBvaW50c1swXSA6IHQucG9pbnRzWzJdLAogICAgICAgICAgICAgICAgUCA9IHBvaW50RXF1YWwobywgci5wb2ludHNbMV0pID8gci5wb2ludHNbM10gOiByLnBvaW50c1sxXSwKICAgICAgICAgICAgICAgIFIgPSBsaW5lSW50ZXJzZWN0aW9uKGIsIGEsIG8sIFApOwogICAgICAgICAgICAgIHJldHVybiBSICYmIHBvaW50RGlzdGFuY2UoUiwgYSkgPCBpCiAgICAgICAgICAgICAgICA/IChlLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICBSWzBdLAogICAgICAgICAgICAgICAgICBSWzFdLAogICAgICAgICAgICAgICAgICBSWzBdLAogICAgICAgICAgICAgICAgICBSWzFdLAogICAgICAgICAgICAgICAgICBSWzBdLAogICAgICAgICAgICAgICAgICBSWzFdLAogICAgICAgICAgICAgICAgICBlLmxlbmd0aCgpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBSKQogICAgICAgICAgICAgICAgOiBhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGdldEludGVyc2VjdGlvbihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBlLmludGVyc2VjdGlvbnModCk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHIubGVuZ3RoICYmIGZsb2F0RXF1YWwoclswXVswXSwgMSkgJiYgci5zaGlmdCgpLAogICAgICAgICAgICAgICAgci5sZW5ndGggPyByWzBdIDogbnVsbAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcHJ1bmVTZWdtZW50SW50ZXJzZWN0aW9uKGUsIHQpIHsKICAgICAgICAgICAgICB2YXIgciA9IGUuc2xpY2UoKSwKICAgICAgICAgICAgICAgIG4gPSB0LnNsaWNlKCksCiAgICAgICAgICAgICAgICBpID0gZ2V0SW50ZXJzZWN0aW9uKGVbZS5sZW5ndGggLSAxXSwgdFswXSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGkgJiYKICAgICAgICAgICAgICAgICgocltlLmxlbmd0aCAtIDFdID0gZVtlLmxlbmd0aCAtIDFdLnNwbGl0KGlbMF0pWzBdKSwKICAgICAgICAgICAgICAgICAgKG5bMF0gPSB0WzBdLnNwbGl0KGlbMV0pWzFdKSksCiAgICAgICAgICAgICAgICBlLmxlbmd0aCA+IDEgJiYKICAgICAgICAgICAgICAgICAgdC5sZW5ndGggPiAxICYmCiAgICAgICAgICAgICAgICAgICgoaSA9IGdldEludGVyc2VjdGlvbihlWzBdLCB0W3QubGVuZ3RoIC0gMV0pKSwgaSkKICAgICAgICAgICAgICAgICAgPyBbW2VbMF0uc3BsaXQoaVswXSlbMF1dLCBbdFt0Lmxlbmd0aCAtIDFdLnNwbGl0KGlbMV0pWzFdXV0KICAgICAgICAgICAgICAgICAgOiBbciwgbl0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHBydW5lSW50ZXJzZWN0aW9ucyhlKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgdCwgciA9IDE7IHIgPCBlLmxlbmd0aDsgciArPSAxKQogICAgICAgICAgICAgICAgKHQgPSBwcnVuZVNlZ21lbnRJbnRlcnNlY3Rpb24oZVtyIC0gMV0sIGVbcl0pKSwKICAgICAgICAgICAgICAgICAgKGVbciAtIDFdID0gdFswXSksCiAgICAgICAgICAgICAgICAgIChlW3JdID0gdFsxXSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGUubGVuZ3RoID4gMSAmJgogICAgICAgICAgICAgICAgKCh0ID0gcHJ1bmVTZWdtZW50SW50ZXJzZWN0aW9uKGVbZS5sZW5ndGggLSAxXSwgZVswXSkpLAogICAgICAgICAgICAgICAgICAoZVtlLmxlbmd0aCAtIDFdID0gdFswXSksCiAgICAgICAgICAgICAgICAgIChlWzBdID0gdFsxXSkpLAogICAgICAgICAgICAgICAgZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gb2Zmc2V0U2VnbWVudFNwbGl0KGUsIHQpIHsKICAgICAgICAgICAgICB2YXIgciA9IGUuaW5mbGVjdGlvblBvaW50cygpLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgbzsKICAgICAgICAgICAgICBpZiAoci5sZW5ndGggPT09IDApIHJldHVybiBbb2Zmc2V0U2VnbWVudChlLCB0KV07CiAgICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAxIHx8IGZsb2F0RXF1YWwoclsxXSwgMSkpCiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoYSA9IGUuc3BsaXQoclswXSkpLAogICAgICAgICAgICAgICAgICAobiA9IGFbMF0pLAogICAgICAgICAgICAgICAgICAoaSA9IGFbMV0pLAogICAgICAgICAgICAgICAgICBbb2Zmc2V0U2VnbWVudChuLCB0KSwgb2Zmc2V0U2VnbWVudChpLCB0KV0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgKGEgPSBlLnNwbGl0KHJbMF0pKSwgKG4gPSBhWzBdKTsKICAgICAgICAgICAgICB2YXIgbCA9IChyWzFdIC0gclswXSkgLyAoMSAtIHJbMF0pOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoYSA9IGFbMV0uc3BsaXQobCkpLAogICAgICAgICAgICAgICAgKG8gPSBhWzBdKSwKICAgICAgICAgICAgICAgIChpID0gYVsxXSksCiAgICAgICAgICAgICAgICBbb2Zmc2V0U2VnbWVudChuLCB0KSwgb2Zmc2V0U2VnbWVudChvLCB0KSwgb2Zmc2V0U2VnbWVudChpLCB0KV0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIE9mZnNldFBhdGhNb2RpZmllcigpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW1NoYXBlTW9kaWZpZXJdLCBPZmZzZXRQYXRoTW9kaWZpZXIpLAogICAgICAgICAgICAgIChPZmZzZXRQYXRoTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgdAogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLnByb2Nlc3NLZXlzKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYW1vdW50ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICB0LmEsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLm1pdGVyTGltaXQgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIHQubWwsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmxpbmVKb2luID0gdC5saiksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gdGhpcy5hbW91bnQuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAhPT0gMCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE9mZnNldFBhdGhNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoCiAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICBuCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgaSA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgICBpLmMgPSBlLmM7CiAgICAgICAgICAgICAgICB2YXIgYSA9IGUubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICBlLmMgfHwgKGEgLT0gMSk7CiAgICAgICAgICAgICAgICB2YXIgbywKICAgICAgICAgICAgICAgICAgbCwKICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgdSA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IGE7IG8gKz0gMSkKICAgICAgICAgICAgICAgICAgKGMgPSBQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudChlLCBvKSksCiAgICAgICAgICAgICAgICAgICAgdS5wdXNoKG9mZnNldFNlZ21lbnRTcGxpdChjLCB0KSk7CiAgICAgICAgICAgICAgICBpZiAoIWUuYykKICAgICAgICAgICAgICAgICAgZm9yIChvID0gYSAtIDE7IG8gPj0gMDsgbyAtPSAxKQogICAgICAgICAgICAgICAgICAgIChjID0gUG9seW5vbWlhbEJlemllci5zaGFwZVNlZ21lbnRJbnZlcnRlZChlLCBvKSksCiAgICAgICAgICAgICAgICAgICAgICB1LnB1c2gob2Zmc2V0U2VnbWVudFNwbGl0KGMsIHQpKTsKICAgICAgICAgICAgICAgIHUgPSBwcnVuZUludGVyc2VjdGlvbnModSk7CiAgICAgICAgICAgICAgICB2YXIgZCA9IG51bGwsCiAgICAgICAgICAgICAgICAgIEUgPSBudWxsOwogICAgICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IHUubGVuZ3RoOyBvICs9IDEpIHsKICAgICAgICAgICAgICAgICAgdmFyIGIgPSB1W29dOwogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIEUgJiYgKGQgPSBqb2luTGluZXMoaSwgRSwgYlswXSwgciwgbikpLAogICAgICAgICAgICAgICAgICAgIEUgPSBiW2IubGVuZ3RoIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgbCA9IDA7CiAgICAgICAgICAgICAgICAgICAgbCA8IGIubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGwgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKGMgPSBiW2xdKSwKICAgICAgICAgICAgICAgICAgICAgIGQgJiYgcG9pbnRFcXVhbChjLnBvaW50c1swXSwgZCkKICAgICAgICAgICAgICAgICAgICAgICAgPyBpLnNldFhZQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbMV1bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbMV1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoKCkgLSAxCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgOiBpLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzFdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzFdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzBdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoKCkKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIGkuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzNdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBjLnBvaW50c1szXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbM11bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGMucG9pbnRzWzNdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBjLnBvaW50c1syXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgYy5wb2ludHNbMl1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoKCkKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAoZCA9IGMucG9pbnRzWzNdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB1Lmxlbmd0aCAmJiBqb2luTGluZXMoaSwgRSwgdVswXVswXSwgciwgbiksIGk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE9mZnNldFBhdGhNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1NoYXBlcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuc2hhcGVzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbyA9IHRoaXMuYW1vdW50LnYsCiAgICAgICAgICAgICAgICAgIGwgPSB0aGlzLm1pdGVyTGltaXQudiwKICAgICAgICAgICAgICAgICAgYyA9IHRoaXMubGluZUpvaW47CiAgICAgICAgICAgICAgICBpZiAobyAhPT0gMCkgewogICAgICAgICAgICAgICAgICB2YXIgdSwgZDsKICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgodSA9IHRoaXMuc2hhcGVzW3JdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSB1LmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgISghdS5zaGFwZS5fbWRmICYmICF0aGlzLl9tZGYgJiYgIWUpKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIGQucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgICB1LnNoYXBlLl9tZGYgPSAhMCwKICAgICAgICAgICAgICAgICAgICAgICAgdCA9IHUuc2hhcGUucGF0aHMuc2hhcGVzLAogICAgICAgICAgICAgICAgICAgICAgICBhID0gdS5zaGFwZS5wYXRocy5fbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaSA8IGE7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBkLmFkZFNoYXBlKHRoaXMucHJvY2Vzc1BhdGgodFtpXSwgbywgYywgbCkpOwogICAgICAgICAgICAgICAgICAgIHUuc2hhcGUucGF0aHMgPSB1LmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmdW5jdGlvbiBnZXRGb250UHJvcGVydGllcyhlKSB7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHZhciB0ID0gZS5mU3R5bGUgPyBlLmZTdHlsZS5zcGxpdCgiICIpIDogW10sCiAgICAgICAgICAgICAgICByID0gIm5vcm1hbCIsCiAgICAgICAgICAgICAgICBuID0gIm5vcm1hbCIsCiAgICAgICAgICAgICAgICBpID0gdC5sZW5ndGgsCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgbyA9IDA7CiAgICAgICAgICAgICAgICBvIDwgaTsKICAgICAgICAgICAgICAgIG8gKz0gMQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHN3aXRjaCAoKChhID0gdFtvXS50b0xvd2VyQ2FzZSgpKSwgYSkpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAiaXRhbGljIjoKICAgICAgICAgICAgICAgICAgICBuID0gIml0YWxpYyI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImJvbGQiOgogICAgICAgICAgICAgICAgICAgIHIgPSAiNzAwIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAiYmxhY2siOgogICAgICAgICAgICAgICAgICAgIHIgPSAiOTAwIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAibWVkaXVtIjoKICAgICAgICAgICAgICAgICAgICByID0gIjUwMCI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgInJlZ3VsYXIiOgogICAgICAgICAgICAgICAgICBjYXNlICJub3JtYWwiOgogICAgICAgICAgICAgICAgICAgIHIgPSAiNDAwIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAibGlnaHQiOgogICAgICAgICAgICAgICAgICBjYXNlICJ0aGluIjoKICAgICAgICAgICAgICAgICAgICByID0gIjIwMCI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHsgc3R5bGU6IG4sIHdlaWdodDogZS5mV2VpZ2h0IHx8IHIgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgRm9udE1hbmFnZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0gNWUzLAogICAgICAgICAgICAgICAgdCA9IHsgdzogMCwgc2l6ZTogMCwgc2hhcGVzOiBbXSwgZGF0YTogeyBzaGFwZXM6IFtdIH0gfSwKICAgICAgICAgICAgICAgIHIgPSBbXTsKICAgICAgICAgICAgICByID0gci5jb25jYXQoWwogICAgICAgICAgICAgICAgMjMwNCwgMjMwNSwgMjMwNiwgMjMwNywgMjM2MiwgMjM2MywgMjM2NCwgMjM2NCwgMjM2NiwgMjM2NywKICAgICAgICAgICAgICAgIDIzNjgsIDIzNjksIDIzNzAsIDIzNzEsIDIzNzIsIDIzNzMsIDIzNzQsIDIzNzUsIDIzNzYsIDIzNzcsCiAgICAgICAgICAgICAgICAyMzc4LCAyMzc5LCAyMzgwLCAyMzgxLCAyMzgyLCAyMzgzLCAyMzg3LCAyMzg4LCAyMzg5LCAyMzkwLAogICAgICAgICAgICAgICAgMjM5MSwgMjQwMiwgMjQwMywKICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICB2YXIgbiA9IDEyNzk4OCwKICAgICAgICAgICAgICAgIGkgPSA5MTc2MzEsCiAgICAgICAgICAgICAgICBhID0gOTE3NjAxLAogICAgICAgICAgICAgICAgbyA9IDkxNzYyNiwKICAgICAgICAgICAgICAgIGwgPSA2NTAzOSwKICAgICAgICAgICAgICAgIGMgPSA4MjA1LAogICAgICAgICAgICAgICAgdSA9IDEyNzQ2MiwKICAgICAgICAgICAgICAgIGQgPSAxMjc0ODcsCiAgICAgICAgICAgICAgICBFID0gWwogICAgICAgICAgICAgICAgICAiZDgzY2RmZmIiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmMiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmQiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmUiLAogICAgICAgICAgICAgICAgICAiZDgzY2RmZmYiLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICBmdW5jdGlvbiBiKEIpIHsKICAgICAgICAgICAgICAgIHZhciB6ID0gQi5zcGxpdCgiLCIpLAogICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICBWID0gei5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIFEgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBWOyBOICs9IDEpCiAgICAgICAgICAgICAgICAgIHpbTl0gIT09ICJzYW5zLXNlcmlmIiAmJiB6W05dICE9PSAibW9ub3NwYWNlIiAmJiBRLnB1c2goeltOXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gUS5qb2luKCIsIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFAoQiwgeikgewogICAgICAgICAgICAgICAgdmFyIE4gPSBjcmVhdGVUYWcoInNwYW4iKTsKICAgICAgICAgICAgICAgIE4uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsICEwKSwgKE4uc3R5bGUuZm9udEZhbWlseSA9IHopOwogICAgICAgICAgICAgICAgdmFyIFYgPSBjcmVhdGVUYWcoInNwYW4iKTsKICAgICAgICAgICAgICAgIChWLmlubmVyVGV4dCA9ICJnaUl0VDFXUXlAIS0vIyIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5sZWZ0ID0gIi0xMDAwMHB4IiksCiAgICAgICAgICAgICAgICAgIChOLnN0eWxlLnRvcCA9ICItMTAwMDBweCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5mb250U2l6ZSA9ICIzMDBweCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5mb250VmFyaWFudCA9ICJub3JtYWwiKSwKICAgICAgICAgICAgICAgICAgKE4uc3R5bGUuZm9udFN0eWxlID0gIm5vcm1hbCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5mb250V2VpZ2h0ID0gIm5vcm1hbCIpLAogICAgICAgICAgICAgICAgICAoTi5zdHlsZS5sZXR0ZXJTcGFjaW5nID0gIjAiKSwKICAgICAgICAgICAgICAgICAgTi5hcHBlbmRDaGlsZChWKSwKICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChOKTsKICAgICAgICAgICAgICAgIHZhciBRID0gVi5vZmZzZXRXaWR0aDsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChWLnN0eWxlLmZvbnRGYW1pbHkgPSBiKEIpICsgIiwgIiArIHopLAogICAgICAgICAgICAgICAgICB7IG5vZGU6IFYsIHc6IFEsIHBhcmVudDogTiB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBSKCkgewogICAgICAgICAgICAgICAgdmFyIEIsCiAgICAgICAgICAgICAgICAgIHogPSB0aGlzLmZvbnRzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgTiwKICAgICAgICAgICAgICAgICAgViwKICAgICAgICAgICAgICAgICAgUSA9IHo7CiAgICAgICAgICAgICAgICBmb3IgKEIgPSAwOyBCIDwgejsgQiArPSAxKQogICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLmxvYWRlZAogICAgICAgICAgICAgICAgICAgID8gKFEgLT0gMSkKICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZm9udHNbQl0uZk9yaWdpbiA9PT0gIm4iIHx8CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLm9yaWdpbiA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5mb250c1tCXS5sb2FkZWQgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgIDogKChOID0gdGhpcy5mb250c1tCXS5tb25vQ2FzZS5ub2RlKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFYgPSB0aGlzLmZvbnRzW0JdLm1vbm9DYXNlLncpLAogICAgICAgICAgICAgICAgICAgICAgICBOLm9mZnNldFdpZHRoICE9PSBWCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKFEgLT0gMSksICh0aGlzLmZvbnRzW0JdLmxvYWRlZCA9ICEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoTiA9IHRoaXMuZm9udHNbQl0uc2Fuc0Nhc2Uubm9kZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoViA9IHRoaXMuZm9udHNbQl0uc2Fuc0Nhc2UudyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOLm9mZnNldFdpZHRoICE9PSBWICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFEgLT0gMSksICh0aGlzLmZvbnRzW0JdLmxvYWRlZCA9ICEwKSkpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLmxvYWRlZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5mb250c1tCXS5zYW5zQ2FzZS5wYXJlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLnNhbnNDYXNlLnBhcmVudAogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9udHNbQl0ubW9ub0Nhc2UucGFyZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW0JdLm1vbm9DYXNlLnBhcmVudAogICAgICAgICAgICAgICAgICAgICAgICAgICkpKTsKICAgICAgICAgICAgICAgIFEgIT09IDAgJiYgRGF0ZS5ub3coKSAtIHRoaXMuaW5pdFRpbWUgPCBlCiAgICAgICAgICAgICAgICAgID8gc2V0VGltZW91dCh0aGlzLmNoZWNrTG9hZGVkRm9udHNCaW5kZWQsIDIwKQogICAgICAgICAgICAgICAgICA6IHNldFRpbWVvdXQodGhpcy5zZXRJc0xvYWRlZEJpbmRlZCwgMTApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBUKEIsIHopIHsKICAgICAgICAgICAgICAgIHZhciBOID0gZG9jdW1lbnQuYm9keSAmJiB6ID8gInN2ZyIgOiAiY2FudmFzIiwKICAgICAgICAgICAgICAgICAgViwKICAgICAgICAgICAgICAgICAgUSA9IGdldEZvbnRQcm9wZXJ0aWVzKEIpOwogICAgICAgICAgICAgICAgaWYgKE4gPT09ICJzdmciKSB7CiAgICAgICAgICAgICAgICAgIHZhciBZID0gY3JlYXRlTlMoInRleHQiKTsKICAgICAgICAgICAgICAgICAgKFkuc3R5bGUuZm9udFNpemUgPSAiMTAwcHgiKSwKICAgICAgICAgICAgICAgICAgICBZLnNldEF0dHJpYnV0ZSgiZm9udC1mYW1pbHkiLCBCLmZGYW1pbHkpLAogICAgICAgICAgICAgICAgICAgIFkuc2V0QXR0cmlidXRlKCJmb250LXN0eWxlIiwgUS5zdHlsZSksCiAgICAgICAgICAgICAgICAgICAgWS5zZXRBdHRyaWJ1dGUoImZvbnQtd2VpZ2h0IiwgUS53ZWlnaHQpLAogICAgICAgICAgICAgICAgICAgIChZLnRleHRDb250ZW50ID0gIjEiKSwKICAgICAgICAgICAgICAgICAgICBCLmZDbGFzcwogICAgICAgICAgICAgICAgICAgICAgPyAoKFkuc3R5bGUuZm9udEZhbWlseSA9ICJpbmhlcml0IiksCiAgICAgICAgICAgICAgICAgICAgICAgIFkuc2V0QXR0cmlidXRlKCJjbGFzcyIsIEIuZkNsYXNzKSkKICAgICAgICAgICAgICAgICAgICAgIDogKFkuc3R5bGUuZm9udEZhbWlseSA9IEIuZkZhbWlseSksCiAgICAgICAgICAgICAgICAgICAgei5hcHBlbmRDaGlsZChZKSwKICAgICAgICAgICAgICAgICAgICAoViA9IFkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIGhlID0gbmV3IE9mZnNjcmVlbkNhbnZhcyg1MDAsIDUwMCkuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgKGhlLmZvbnQgPSBRLnN0eWxlICsgIiAiICsgUS53ZWlnaHQgKyAiIDEwMHB4ICIgKyBCLmZGYW1pbHkpLAogICAgICAgICAgICAgICAgICAgIChWID0gaGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24geWUodmUpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIE4gPT09ICJzdmciCiAgICAgICAgICAgICAgICAgICAgPyAoKFYudGV4dENvbnRlbnQgPSB2ZSksIFYuZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgICAgOiBWLm1lYXN1cmVUZXh0KHZlKS53aWR0aDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB7IG1lYXN1cmVUZXh0OiB5ZSB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBNKEIsIHopIHsKICAgICAgICAgICAgICAgIGlmICghQikgewogICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gITA7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoYXJzKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLmlzTG9hZGVkID0gITApLCAodGhpcy5mb250cyA9IEIubGlzdCk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQuYm9keSkgewogICAgICAgICAgICAgICAgICAodGhpcy5pc0xvYWRlZCA9ICEwKSwKICAgICAgICAgICAgICAgICAgICBCLmxpc3QuZm9yRWFjaChmdW5jdGlvbiAobWUpIHsKICAgICAgICAgICAgICAgICAgICAgIChtZS5oZWxwZXIgPSBUKG1lKSksIChtZS5jYWNoZSA9IHt9KTsKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5mb250cyA9IEIubGlzdCk7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBOID0gQi5saXN0LAogICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICBRID0gTi5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIFkgPSBROwogICAgICAgICAgICAgICAgZm9yIChWID0gMDsgViA8IFE7IFYgKz0gMSkgewogICAgICAgICAgICAgICAgICB2YXIgaGUgPSAhMCwKICAgICAgICAgICAgICAgICAgICB5ZSwKICAgICAgICAgICAgICAgICAgICB2ZTsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgoTltWXS5sb2FkZWQgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAoTltWXS5tb25vQ2FzZSA9IFAoTltWXS5mRmFtaWx5LCAibW9ub3NwYWNlIikpLAogICAgICAgICAgICAgICAgICAgICAgKE5bVl0uc2Fuc0Nhc2UgPSBQKE5bVl0uZkZhbWlseSwgInNhbnMtc2VyaWYiKSksCiAgICAgICAgICAgICAgICAgICAgICAhTltWXS5mUGF0aCkKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIChOW1ZdLmxvYWRlZCA9ICEwKSwgKFkgLT0gMSk7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKE5bVl0uZk9yaWdpbiA9PT0gInAiIHx8IE5bVl0ub3JpZ2luID09PSAzKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKCh5ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHlsZVtmLWZvcmlnaW49InAiXVtmLWZhbWlseT0iJyArCiAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZkZhbWlseSArCiAgICAgICAgICAgICAgICAgICAgICAgICciXSwgc3R5bGVbZi1vcmlnaW49IjMiXVtmLWZhbWlseT0iJyArCiAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZkZhbWlseSArCiAgICAgICAgICAgICAgICAgICAgICAgICciXScKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICB5ZS5sZW5ndGggPiAwICYmIChoZSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgaGUpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgUGUgPSBjcmVhdGVUYWcoInN0eWxlIik7CiAgICAgICAgICAgICAgICAgICAgICBQZS5zZXRBdHRyaWJ1dGUoImYtZm9yaWdpbiIsIE5bVl0uZk9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIFBlLnNldEF0dHJpYnV0ZSgiZi1vcmlnaW4iLCBOW1ZdLm9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIFBlLnNldEF0dHJpYnV0ZSgiZi1mYW1pbHkiLCBOW1ZdLmZGYW1pbHkpLAogICAgICAgICAgICAgICAgICAgICAgICAoUGUudHlwZSA9ICJ0ZXh0L2NzcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAoUGUuaW5uZXJUZXh0ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAiQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZkZhbWlseSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgZm9udC1zdHlsZTogbm9ybWFsOyBzcmM6IHVybCgnIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgTltWXS5mUGF0aCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIicpO30iKSwKICAgICAgICAgICAgICAgICAgICAgICAgei5hcHBlbmRDaGlsZChQZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKE5bVl0uZk9yaWdpbiA9PT0gImciIHx8IE5bVl0ub3JpZ2luID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgIHllID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbmtbZi1mb3JpZ2luPSJnIl0sIGxpbmtbZi1vcmlnaW49IjEiXScKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB2ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICB2ZSA8IHllLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgIHZlICs9IDEKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICB5ZVt2ZV0uaHJlZi5pbmRleE9mKE5bVl0uZlBhdGgpICE9PSAtMSAmJiAoaGUgPSAhMSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGhlKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgQ2UgPSBjcmVhdGVUYWcoImxpbmsiKTsKICAgICAgICAgICAgICAgICAgICAgIENlLnNldEF0dHJpYnV0ZSgiZi1mb3JpZ2luIiwgTltWXS5mT3JpZ2luKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2Uuc2V0QXR0cmlidXRlKCJmLW9yaWdpbiIsIE5bVl0ub3JpZ2luKSwKICAgICAgICAgICAgICAgICAgICAgICAgKENlLnR5cGUgPSAidGV4dC9jc3MiKSwKICAgICAgICAgICAgICAgICAgICAgICAgKENlLnJlbCA9ICJzdHlsZXNoZWV0IiksCiAgICAgICAgICAgICAgICAgICAgICAgIChDZS5ocmVmID0gTltWXS5mUGF0aCksCiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoQ2UpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChOW1ZdLmZPcmlnaW4gPT09ICJ0IiB8fCBOW1ZdLm9yaWdpbiA9PT0gMikgewogICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICB5ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICdzY3JpcHRbZi1mb3JpZ2luPSJ0Il0sIHNjcmlwdFtmLW9yaWdpbj0iMiJdJwogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHZlID0gMDsKICAgICAgICAgICAgICAgICAgICAgIHZlIDwgeWUubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgdmUgKz0gMQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIE5bVl0uZlBhdGggPT09IHllW3ZlXS5zcmMgJiYgKGhlID0gITEpOwogICAgICAgICAgICAgICAgICAgIGlmIChoZSkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGllID0gY3JlYXRlVGFnKCJsaW5rIik7CiAgICAgICAgICAgICAgICAgICAgICBpZS5zZXRBdHRyaWJ1dGUoImYtZm9yaWdpbiIsIE5bVl0uZk9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIGllLnNldEF0dHJpYnV0ZSgiZi1vcmlnaW4iLCBOW1ZdLm9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgIGllLnNldEF0dHJpYnV0ZSgicmVsIiwgInN0eWxlc2hlZXQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgaWUuc2V0QXR0cmlidXRlKCJocmVmIiwgTltWXS5mUGF0aCksCiAgICAgICAgICAgICAgICAgICAgICAgIHouYXBwZW5kQ2hpbGQoaWUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAoTltWXS5oZWxwZXIgPSBUKE5bVl0sIHopKSwKICAgICAgICAgICAgICAgICAgICAoTltWXS5jYWNoZSA9IHt9KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzLnB1c2goTltWXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBZID09PSAwCiAgICAgICAgICAgICAgICAgID8gKHRoaXMuaXNMb2FkZWQgPSAhMCkKICAgICAgICAgICAgICAgICAgOiBzZXRUaW1lb3V0KHRoaXMuY2hlY2tMb2FkZWRGb250cy5iaW5kKHRoaXMpLCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiB4KEIpIHsKICAgICAgICAgICAgICAgIGlmIChCKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnMgfHwgKHRoaXMuY2hhcnMgPSBbXSk7CiAgICAgICAgICAgICAgICAgIHZhciB6LAogICAgICAgICAgICAgICAgICAgIE4gPSBCLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICBWLAogICAgICAgICAgICAgICAgICAgIFEgPSB0aGlzLmNoYXJzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICBZOwogICAgICAgICAgICAgICAgICBmb3IgKHogPSAwOyB6IDwgTjsgeiArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChWID0gMCwgWSA9ICExOyBWIDwgUTspCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJzW1ZdLnN0eWxlID09PSBCW3pdLnN0eWxlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbVl0uZkZhbWlseSA9PT0gQlt6XS5mRmFtaWx5ICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbVl0uY2ggPT09IEJbel0uY2ggJiYKICAgICAgICAgICAgICAgICAgICAgICAgKFkgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIChWICs9IDEpOwogICAgICAgICAgICAgICAgICAgIFkgfHwgKHRoaXMuY2hhcnMucHVzaChCW3pdKSwgKFEgKz0gMSkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGsoQiwgeiwgTikgewogICAgICAgICAgICAgICAgZm9yICh2YXIgViA9IDAsIFEgPSB0aGlzLmNoYXJzLmxlbmd0aDsgViA8IFE7KSB7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJzW1ZdLmNoID09PSBCICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFyc1tWXS5zdHlsZSA9PT0geiAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbVl0uZkZhbWlseSA9PT0gTgogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhcnNbVl07CiAgICAgICAgICAgICAgICAgIFYgKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICgodHlwZW9mIEIgPT0gInN0cmluZyIgJiYgQi5jaGFyQ29kZUF0KDApICE9PSAxMykgfHwgIUIpICYmCiAgICAgICAgICAgICAgICAgIGNvbnNvbGUgJiYKICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLl93YXJuZWQgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLl93YXJuZWQgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKAogICAgICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgY2hhcmFjdGVyIGZyb20gZXhwb3J0ZWQgY2hhcmFjdGVycyBsaXN0OiAiLAogICAgICAgICAgICAgICAgICAgICAgQiwKICAgICAgICAgICAgICAgICAgICAgIHosCiAgICAgICAgICAgICAgICAgICAgICBOCiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIFMoQiwgeiwgTikgewogICAgICAgICAgICAgICAgdmFyIFYgPSB0aGlzLmdldEZvbnRCeU5hbWUoeiksCiAgICAgICAgICAgICAgICAgIFEgPSBCOwogICAgICAgICAgICAgICAgaWYgKCFWLmNhY2hlW1FdKSB7CiAgICAgICAgICAgICAgICAgIHZhciBZID0gVi5oZWxwZXI7CiAgICAgICAgICAgICAgICAgIGlmIChCID09PSAiICIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaGUgPSBZLm1lYXN1cmVUZXh0KCJ8IiArIEIgKyAifCIpLAogICAgICAgICAgICAgICAgICAgICAgeWUgPSBZLm1lYXN1cmVUZXh0KCJ8fCIpOwogICAgICAgICAgICAgICAgICAgIFYuY2FjaGVbUV0gPSAoaGUgLSB5ZSkgLyAxMDA7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSBWLmNhY2hlW1FdID0gWS5tZWFzdXJlVGV4dChCKSAvIDEwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBWLmNhY2hlW1FdICogTjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gQShCKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciB6ID0gMCwgTiA9IHRoaXMuZm9udHMubGVuZ3RoOyB6IDwgTjspIHsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9udHNbel0uZk5hbWUgPT09IEIpIHJldHVybiB0aGlzLmZvbnRzW3pdOwogICAgICAgICAgICAgICAgICB6ICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb250c1swXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gTyhCKSB7CiAgICAgICAgICAgICAgICB2YXIgeiA9IDAsCiAgICAgICAgICAgICAgICAgIE4gPSBCLmNoYXJDb2RlQXQoMCk7CiAgICAgICAgICAgICAgICBpZiAoTiA+PSA1NTI5NiAmJiBOIDw9IDU2MzE5KSB7CiAgICAgICAgICAgICAgICAgIHZhciBWID0gQi5jaGFyQ29kZUF0KDEpOwogICAgICAgICAgICAgICAgICBWID49IDU2MzIwICYmCiAgICAgICAgICAgICAgICAgICAgViA8PSA1NzM0MyAmJgogICAgICAgICAgICAgICAgICAgICh6ID0gKE4gLSA1NTI5NikgKiAxMDI0ICsgViAtIDU2MzIwICsgNjU1MzYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHo7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEYoQiwgeikgewogICAgICAgICAgICAgICAgdmFyIE4gPSBCLnRvU3RyaW5nKDE2KSArIHoudG9TdHJpbmcoMTYpOwogICAgICAgICAgICAgICAgcmV0dXJuIEUuaW5kZXhPZihOKSAhPT0gLTE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEQoQikgewogICAgICAgICAgICAgICAgcmV0dXJuIEIgPT09IGM7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIEgoQikgewogICAgICAgICAgICAgICAgcmV0dXJuIEIgPT09IGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uICQoQikgewogICAgICAgICAgICAgICAgdmFyIHogPSBPKEIpOwogICAgICAgICAgICAgICAgcmV0dXJuIHogPj0gdSAmJiB6IDw9IGQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHEoQikgewogICAgICAgICAgICAgICAgcmV0dXJuICQoQi5zdWJzdHIoMCwgMikpICYmICQoQi5zdWJzdHIoMiwgMikpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBKKEIpIHsKICAgICAgICAgICAgICAgIHJldHVybiByLmluZGV4T2YoQikgIT09IC0xOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBLKEIsIHopIHsKICAgICAgICAgICAgICAgIHZhciBOID0gTyhCLnN1YnN0cih6LCAyKSk7CiAgICAgICAgICAgICAgICBpZiAoTiAhPT0gbikgcmV0dXJuICExOwogICAgICAgICAgICAgICAgdmFyIFYgPSAwOwogICAgICAgICAgICAgICAgZm9yICh6ICs9IDI7IFYgPCA1OykgewogICAgICAgICAgICAgICAgICBpZiAoKChOID0gTyhCLnN1YnN0cih6LCAyKSkpLCBOIDwgYSB8fCBOID4gbykpIHJldHVybiAhMTsKICAgICAgICAgICAgICAgICAgKFYgKz0gMSksICh6ICs9IDIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIE8oQi5zdWJzdHIoeiwgMikpID09PSBpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBlZSgpIHsKICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSAhMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIGxlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuZm9udHMgPSBbXSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNoYXJzID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnR5cGVraXRMb2FkZWQgPSAwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXNMb2FkZWQgPSAhMSksCiAgICAgICAgICAgICAgICAgICh0aGlzLl93YXJuZWQgPSAhMSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmluaXRUaW1lID0gRGF0ZS5ub3coKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNldElzTG9hZGVkQmluZGVkID0gdGhpcy5zZXRJc0xvYWRlZC5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuY2hlY2tMb2FkZWRGb250c0JpbmRlZCA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0xvYWRlZEZvbnRzLmJpbmQodGhpcykpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgKGxlLmlzTW9kaWZpZXIgPSBGKSwKICAgICAgICAgICAgICAgIChsZS5pc1plcm9XaWR0aEpvaW5lciA9IEQpLAogICAgICAgICAgICAgICAgKGxlLmlzRmxhZ0Vtb2ppID0gcSksCiAgICAgICAgICAgICAgICAobGUuaXNSZWdpb25hbENvZGUgPSAkKSwKICAgICAgICAgICAgICAgIChsZS5pc0NvbWJpbmVkQ2hhcmFjdGVyID0gSiksCiAgICAgICAgICAgICAgICAobGUuaXNSZWdpb25hbEZsYWcgPSBLKSwKICAgICAgICAgICAgICAgIChsZS5pc1ZhcmlhdGlvblNlbGVjdG9yID0gSCksCiAgICAgICAgICAgICAgICAobGUuQkxBQ0tfRkxBR19DT0RFX1BPSU5UID0gbik7CiAgICAgICAgICAgICAgdmFyIHJlID0gewogICAgICAgICAgICAgICAgYWRkQ2hhcnM6IHgsCiAgICAgICAgICAgICAgICBhZGRGb250czogTSwKICAgICAgICAgICAgICAgIGdldENoYXJEYXRhOiBrLAogICAgICAgICAgICAgICAgZ2V0Rm9udEJ5TmFtZTogQSwKICAgICAgICAgICAgICAgIG1lYXN1cmVUZXh0OiBTLAogICAgICAgICAgICAgICAgY2hlY2tMb2FkZWRGb250czogUiwKICAgICAgICAgICAgICAgIHNldElzTG9hZGVkOiBlZSwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIHJldHVybiAobGUucHJvdG90eXBlID0gcmUpLCBsZTsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gU2xvdE1hbmFnZXIoZSkgewogICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRGF0YSA9IGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU2xvdE1hbmFnZXIucHJvdG90eXBlLmdldFByb3AgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbkRhdGEuc2xvdHMgJiYgdGhpcy5hbmltYXRpb25EYXRhLnNsb3RzW2Uuc2lkXQogICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKGUsIHRoaXMuYW5pbWF0aW9uRGF0YS5zbG90c1tlLnNpZF0ucCkKICAgICAgICAgICAgICAgIDogZTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gc2xvdEZhY3RvcnkoZSkgewogICAgICAgICAgICAgIHJldHVybiBuZXcgU2xvdE1hbmFnZXIoZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gUmVuZGVyYWJsZUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgUmVuZGVyYWJsZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGluaXRSZW5kZXJhYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy5pc0luUmFuZ2UgPSAhMSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmhpZGRlbiA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXNUcmFuc3BhcmVudCA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMucmVuZGVyYWJsZUNvbXBvbmVudHMgPSBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRSZW5kZXJhYmxlQ29tcG9uZW50OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5pbmRleE9mKHQpID09PSAtMSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLnB1c2godCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW1vdmVSZW5kZXJhYmxlQ29tcG9uZW50OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5pbmRleE9mKHQpICE9PSAtMSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLnNwbGljZSgKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLmluZGV4T2YodCksCiAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcHJlcGFyZVJlbmRlcmFibGVGcmFtZTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tMYXllckxpbWl0cyh0KTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNoZWNrVHJhbnNwYXJlbmN5OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLm8udiA8PSAwCiAgICAgICAgICAgICAgICAgID8gIXRoaXMuaXNUcmFuc3BhcmVudCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucmVuZGVyQ29uZmlnLmhpZGVPblRyYW5zcGFyZW50ICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5pc1RyYW5zcGFyZW50ID0gITApLCB0aGlzLmhpZGUoKSkKICAgICAgICAgICAgICAgICAgOiB0aGlzLmlzVHJhbnNwYXJlbnQgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLmlzVHJhbnNwYXJlbnQgPSAhMSksIHRoaXMuc2hvdygpKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNoZWNrTGF5ZXJMaW1pdHM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaXAgLSB0aGlzLmRhdGEuc3QgPD0gdCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEub3AgLSB0aGlzLmRhdGEuc3QgPiB0CiAgICAgICAgICAgICAgICAgID8gdGhpcy5pc0luUmFuZ2UgIT09ICEwICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5nbG9iYWxEYXRhLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5pc0luUmFuZ2UgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCkpCiAgICAgICAgICAgICAgICAgIDogdGhpcy5pc0luUmFuZ2UgIT09ICExICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5nbG9iYWxEYXRhLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaXNJblJhbmdlID0gITEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJlbmRlclJlbmRlcmFibGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzW3RdLnJlbmRlckZyYW1lKHRoaXMuX2lzRmlyc3RGcmFtZSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzb3VyY2VSZWN0QXRUaW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4geyB0b3A6IDAsIGxlZnQ6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwIH07CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXRMYXllclNpemU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGEudHkgPT09IDUKICAgICAgICAgICAgICAgICAgPyB7CiAgICAgICAgICAgICAgICAgICAgdzogdGhpcy5kYXRhLnRleHREYXRhLndpZHRoLAogICAgICAgICAgICAgICAgICAgIGg6IHRoaXMuZGF0YS50ZXh0RGF0YS5oZWlnaHQsCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgOiB7IHc6IHRoaXMuZGF0YS53aWR0aCwgaDogdGhpcy5kYXRhLmhlaWdodCB9OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBnZXRCbGVuZE1vZGUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0gewogICAgICAgICAgICAgICAgMDogInNvdXJjZS1vdmVyIiwKICAgICAgICAgICAgICAgIDE6ICJtdWx0aXBseSIsCiAgICAgICAgICAgICAgICAyOiAic2NyZWVuIiwKICAgICAgICAgICAgICAgIDM6ICJvdmVybGF5IiwKICAgICAgICAgICAgICAgIDQ6ICJkYXJrZW4iLAogICAgICAgICAgICAgICAgNTogImxpZ2h0ZW4iLAogICAgICAgICAgICAgICAgNjogImNvbG9yLWRvZGdlIiwKICAgICAgICAgICAgICAgIDc6ICJjb2xvci1idXJuIiwKICAgICAgICAgICAgICAgIDg6ICJoYXJkLWxpZ2h0IiwKICAgICAgICAgICAgICAgIDk6ICJzb2Z0LWxpZ2h0IiwKICAgICAgICAgICAgICAgIDEwOiAiZGlmZmVyZW5jZSIsCiAgICAgICAgICAgICAgICAxMTogImV4Y2x1c2lvbiIsCiAgICAgICAgICAgICAgICAxMjogImh1ZSIsCiAgICAgICAgICAgICAgICAxMzogInNhdHVyYXRpb24iLAogICAgICAgICAgICAgICAgMTQ6ICJjb2xvciIsCiAgICAgICAgICAgICAgICAxNTogImx1bWlub3NpdHkiLAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZVt0XSB8fCAiIjsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBTbGlkZXJFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQW5nbGVFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQ29sb3JFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMSwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gUG9pbnRFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMSwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gTGF5ZXJJbmRleEVmZmVjdChlLCB0LCByKSB7CiAgICAgICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAwLCAwLCByKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBNYXNrSW5kZXhFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQ2hlY2tib3hFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHQsIGUudiwgMCwgMCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gTm9WYWx1ZUVmZmVjdCgpIHsKICAgICAgICAgICAgICB0aGlzLnAgPSB7fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBFZmZlY3RzTWFuYWdlcihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBlLmVmIHx8IFtdOwogICAgICAgICAgICAgIHRoaXMuZWZmZWN0RWxlbWVudHMgPSBbXTsKICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgIGkgPSByLmxlbmd0aCwKICAgICAgICAgICAgICAgIGE7CiAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkKICAgICAgICAgICAgICAgIChhID0gbmV3IEdyb3VwRWZmZWN0KHJbbl0sIHQpKSwgdGhpcy5lZmZlY3RFbGVtZW50cy5wdXNoKGEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIEdyb3VwRWZmZWN0KGUsIHQpIHsKICAgICAgICAgICAgICB0aGlzLmluaXQoZSwgdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBHcm91cEVmZmVjdCksCiAgICAgICAgICAgICAgKEdyb3VwRWZmZWN0LnByb3RvdHlwZS5nZXRWYWx1ZSA9CiAgICAgICAgICAgICAgICBHcm91cEVmZmVjdC5wcm90b3R5cGUuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgICAoR3JvdXBFZmZlY3QucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IGUpLAogICAgICAgICAgICAgICAgICAodGhpcy5lZmZlY3RFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKHQpOwogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmRhdGEuZWYubGVuZ3RoLAogICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgICBhID0gdGhpcy5kYXRhLmVmOwogICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgewogICAgICAgICAgICAgICAgICBzd2l0Y2ggKCgoaSA9IG51bGwpLCBhW3JdLnR5KSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgU2xpZGVyRWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgICAgaSA9IG5ldyBBbmdsZUVmZmVjdChhW3JdLCB0LCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgQ29sb3JFZmZlY3QoYVtyXSwgdCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgICBpID0gbmV3IFBvaW50RWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgQ2hlY2tib3hFZmZlY3QoYVtyXSwgdCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgICAgICAgaSA9IG5ldyBMYXllckluZGV4RWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICAgICAgICAgIGkgPSBuZXcgTWFza0luZGV4RWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgICAgICAgaSA9IG5ldyBFZmZlY3RzTWFuYWdlcihhW3JdLCB0KTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICBpID0gbmV3IE5vVmFsdWVFZmZlY3QoYVtyXSk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpICYmIHRoaXMuZWZmZWN0RWxlbWVudHMucHVzaChpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQmFzZUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgQmFzZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGNoZWNrTWFza3M6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5kYXRhLmhhc01hc2spIHJldHVybiAhMTsKICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllcy5sZW5ndGg7IHQgPCByOykgewogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllc1t0XS5tb2RlICE9PSAibiIgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEubWFza3NQcm9wZXJ0aWVzW3RdLmNsICE9PSAhMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgICAgICB0ICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpbml0RXhwcmVzc2lvbnM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gZ2V0RXhwcmVzc2lvbkludGVyZmFjZXMoKTsKICAgICAgICAgICAgICAgIGlmICh0KSB7CiAgICAgICAgICAgICAgICAgIHZhciByID0gdCgibGF5ZXIiKSwKICAgICAgICAgICAgICAgICAgICBuID0gdCgiZWZmZWN0cyIpLAogICAgICAgICAgICAgICAgICAgIGkgPSB0KCJzaGFwZSIpLAogICAgICAgICAgICAgICAgICAgIGEgPSB0KCJ0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgbyA9IHQoImNvbXAiKTsKICAgICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJJbnRlcmZhY2UgPSByKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaGFzTWFzayAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVySW50ZXJmYWNlLnJlZ2lzdGVyTWFza0ludGVyZmFjZSgKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB2YXIgbCA9IG4uY3JlYXRlRWZmZWN0c0ludGVyZmFjZSh0aGlzLCB0aGlzLmxheWVySW50ZXJmYWNlKTsKICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckludGVyZmFjZS5yZWdpc3RlckVmZmVjdHNJbnRlcmZhY2UobCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnR5ID09PSAwIHx8IHRoaXMuZGF0YS54dAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5jb21wSW50ZXJmYWNlID0gbyh0aGlzKSkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5kYXRhLnR5ID09PSA0CiAgICAgICAgICAgICAgICAgICAgICAgID8gKCh0aGlzLmxheWVySW50ZXJmYWNlLnNoYXBlSW50ZXJmYWNlID0gaSgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckludGVyZmFjZQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sYXllckludGVyZmFjZS5jb250ZW50ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2Uuc2hhcGVJbnRlcmZhY2UpKQogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YS50eSA9PT0gNSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMubGF5ZXJJbnRlcmZhY2UudGV4dEludGVyZmFjZSA9IGEodGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmxheWVySW50ZXJmYWNlLnRleHQgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckludGVyZmFjZS50ZXh0SW50ZXJmYWNlKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRCbGVuZE1vZGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gZ2V0QmxlbmRNb2RlKHRoaXMuZGF0YS5ibSksCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmJhc2VFbGVtZW50IHx8IHRoaXMubGF5ZXJFbGVtZW50OwogICAgICAgICAgICAgICAgci5zdHlsZVsibWl4LWJsZW5kLW1vZGUiXSA9IHQ7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpbml0QmFzZURhdGE6IGZ1bmN0aW9uICh0LCByLCBuKSB7CiAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhID0gciksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBuKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgICAgICAodGhpcy5sYXllcklkID0gY3JlYXRlRWxlbWVudElEKCkpLAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuc3IgfHwgKHRoaXMuZGF0YS5zciA9IDEpLAogICAgICAgICAgICAgICAgICAodGhpcy5lZmZlY3RzTWFuYWdlciA9IG5ldyBFZmZlY3RzTWFuYWdlcigKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0VHlwZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNvdXJjZVJlY3RBdFRpbWU6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gRnJhbWVFbGVtZW50KCkgeyB9CiAgICAgICAgICAgIEZyYW1lRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgaW5pdEZyYW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5keW5hbWljUHJvcGVydGllcyA9IFtdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByZXBhcmVQcm9wZXJ0aWVzOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgdmFyIG4sCiAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpCiAgICAgICAgICAgICAgICAgIChyIHx8CiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzUGFyZW50ICYmCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzW25dLnByb3BUeXBlID09PSAidHJhbnNmb3JtIikpICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbbl0uZ2V0VmFsdWUoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbbl0uX21kZiAmJgogICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmdsb2JhbERhdGEuX21kZiA9ICEwKSwgKHRoaXMuX21kZiA9ICEwKSkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgYWRkRHluYW1pY1Byb3BlcnR5OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5pbmRleE9mKHQpID09PSAtMSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLnB1c2godCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gRm9vdGFnZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRSZW5kZXJhYmxlKCksCiAgICAgICAgICAgICAgICAodGhpcy5hc3NldERhdGEgPSB0LmdldEFzc2V0RGF0YShlLnJlZklkKSksCiAgICAgICAgICAgICAgICAodGhpcy5mb290YWdlRGF0YSA9IHQuaW1hZ2VMb2FkZXIuZ2V0QXNzZXQodGhpcy5hc3NldERhdGEpKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEJhc2VEYXRhKGUsIHQsIHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUucHJlcGFyZUZyYW1lID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgICBbUmVuZGVyYWJsZUVsZW1lbnQsIEJhc2VFbGVtZW50LCBGcmFtZUVsZW1lbnRdLAogICAgICAgICAgICAgICAgRm9vdGFnZUVsZW1lbnQKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUuZ2V0QmFzZUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoRm9vdGFnZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICAoRm9vdGFnZUVsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUuaW5pdEV4cHJlc3Npb25zID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBnZXRFeHByZXNzaW9uSW50ZXJmYWNlcygpOwogICAgICAgICAgICAgICAgaWYgKGUpIHsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSBlKCJmb290YWdlIik7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2UgPSB0KHRoaXMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUuZ2V0Rm9vdGFnZURhdGEgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb290YWdlRGF0YTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQXVkaW9FbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgICAgICB0aGlzLmluaXRGcmFtZSgpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5nZXRBc3NldERhdGEoZS5yZWZJZCkpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0QmFzZURhdGEoZSwgdCwgciksCiAgICAgICAgICAgICAgICAodGhpcy5faXNQbGF5aW5nID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX2NhblBsYXkgPSAhMSk7CiAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLmdsb2JhbERhdGEuZ2V0QXNzZXRzUGF0aCh0aGlzLmFzc2V0RGF0YSk7CiAgICAgICAgICAgICAgKHRoaXMuYXVkaW8gPSB0aGlzLmdsb2JhbERhdGEuYXVkaW9Db250cm9sbGVyLmNyZWF0ZUF1ZGlvKG4pKSwKICAgICAgICAgICAgICAgICh0aGlzLl9jdXJyZW50VGltZSA9IDApLAogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmF1ZGlvQ29udHJvbGxlci5hZGRBdWRpbyh0aGlzKSwKICAgICAgICAgICAgICAgICh0aGlzLl92b2x1bWVNdWx0aXBsaWVyID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5fcHJldmlvdXNWb2x1bWUgPSBudWxsKSwKICAgICAgICAgICAgICAgICh0aGlzLnRtID0gZS50bQogICAgICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgICAgICA6IHsgX3BsYWNlaG9sZGVyOiAhMCB9KSwKICAgICAgICAgICAgICAgICh0aGlzLmx2ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIGUuYXUgJiYgZS5hdS5sdiA/IGUuYXUubHYgOiB7IGs6IFsxMDBdIH0sCiAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlLCAhMCksCiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVByb3BlcnRpZXMoZSwgITApLAogICAgICAgICAgICAgICAgICB0aGlzLnRtLl9wbGFjZWhvbGRlcikKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGltZSA9IGUgLyB0aGlzLmRhdGEuc3I7CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMudG0udjsKICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRUaW1lID0gdDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5fdm9sdW1lID0gdGhpcy5sdi52WzBdOwogICAgICAgICAgICAgIHZhciByID0gdGhpcy5fdm9sdW1lICogdGhpcy5fdm9sdW1lTXVsdGlwbGllcjsKICAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c1ZvbHVtZSAhPT0gciAmJgogICAgICAgICAgICAgICAgKCh0aGlzLl9wcmV2aW91c1ZvbHVtZSA9IHIpLCB0aGlzLmF1ZGlvLnZvbHVtZShyKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgICAgIFtSZW5kZXJhYmxlRWxlbWVudCwgQmFzZUVsZW1lbnQsIEZyYW1lRWxlbWVudF0sCiAgICAgICAgICAgICAgICBBdWRpb0VsZW1lbnQKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5pc0luUmFuZ2UgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuUGxheSAmJgogICAgICAgICAgICAgICAgICAodGhpcy5faXNQbGF5aW5nCiAgICAgICAgICAgICAgICAgICAgPyAoIXRoaXMuYXVkaW8ucGxheWluZygpIHx8CiAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicygKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgLyB0aGlzLmdsb2JhbERhdGEuZnJhbWVSYXRlIC0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby5zZWVrKCkKICAgICAgICAgICAgICAgICAgICAgICkgPiAwLjEpICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby5zZWVrKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgLyB0aGlzLmdsb2JhbERhdGEuZnJhbWVSYXRlCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMuYXVkaW8ucGxheSgpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby5zZWVrKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGltZSAvIHRoaXMuZ2xvYmFsRGF0YS5mcmFtZVJhdGUKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNQbGF5aW5nID0gITApKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW8ucGF1c2UoKSwgKHRoaXMuX2lzUGxheWluZyA9ICExKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQXVkaW9FbGVtZW50LnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW8ucGF1c2UoKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzUGxheWluZyA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2NhblBsYXkgPSAhMSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5fY2FuUGxheSA9ICEwOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnNldFJhdGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5hdWRpby5yYXRlKGUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnZvbHVtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lTXVsdGlwbGllciA9IGUpLAogICAgICAgICAgICAgICAgICAodGhpcy5fcHJldmlvdXNWb2x1bWUgPSBlICogdGhpcy5fdm9sdW1lKSwKICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby52b2x1bWUodGhpcy5fcHJldmlvdXNWb2x1bWUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLmdldEJhc2VFbGVtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuc291cmNlUmVjdEF0VGltZSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuaW5pdEV4cHJlc3Npb25zID0gZnVuY3Rpb24gKCkgeyB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQmFzZVJlbmRlcmVyKCkgeyB9CiAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmNoZWNrTGF5ZXJzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgIHIgPSB0aGlzLmxheWVycy5sZW5ndGgsCiAgICAgICAgICAgICAgICBuOwogICAgICAgICAgICAgIGZvciAodGhpcy5jb21wbGV0ZUxheWVycyA9ICEwLCB0ID0gciAtIDE7IHQgPj0gMDsgdCAtPSAxKQogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1t0XSB8fAogICAgICAgICAgICAgICAgICAoKG4gPSB0aGlzLmxheWVyc1t0XSksCiAgICAgICAgICAgICAgICAgICAgbi5pcCAtIG4uc3QgPD0gZSAtIHRoaXMubGF5ZXJzW3RdLnN0ICYmCiAgICAgICAgICAgICAgICAgICAgbi5vcCAtIG4uc3QgPiBlIC0gdGhpcy5sYXllcnNbdF0uc3QgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSXRlbSh0KSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlTGF5ZXJzID0gdGhpcy5lbGVtZW50c1t0XQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5jb21wbGV0ZUxheWVycwogICAgICAgICAgICAgICAgICAgIDogITEpOwogICAgICAgICAgICAgIHRoaXMuY2hlY2tQZW5kaW5nRWxlbWVudHMoKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlSXRlbSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKGUudHkpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUltYWdlKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29tcChlKTsKICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNvbGlkKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTnVsbChlKTsKICAgICAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNoYXBlKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dChlKTsKICAgICAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUF1ZGlvKGUpOwogICAgICAgICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNhbWVyYShlKTsKICAgICAgICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGb290YWdlKGUpOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU51bGwoZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlQ2FtZXJhID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAgICAgICAiWW91J3JlIHVzaW5nIGEgM2QgY2FtZXJhLiBUcnkgdGhlIGh0bWwgcmVuZGVyZXIuIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVBdWRpbyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEF1ZGlvRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmNyZWF0ZUZvb3RhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGb290YWdlRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmJ1aWxkQWxsSXRlbXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMuYnVpbGRJdGVtKGUpOwogICAgICAgICAgICAgICAgdGhpcy5jaGVja1BlbmRpbmdFbGVtZW50cygpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmluY2x1ZGVMYXllcnMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUxheWVycyA9ICExOwogICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgIHIgPSBlLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgaSA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOykgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheWVyc1tuXS5pZCA9PT0gZVt0XS5pZCkgewogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllcnNbbl0gPSBlW3RdOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIG4gKz0gMTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLnNldFByb2plY3RJbnRlcmZhY2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UgPSBlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmluaXRJdGVtcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5wcm9ncmVzc2l2ZUxvYWQgfHwgdGhpcy5idWlsZEFsbEl0ZW1zKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuYnVpbGRFbGVtZW50UGFyZW50aW5nID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuZWxlbWVudHMsIGkgPSB0aGlzLmxheWVycywgYSA9IDAsIG8gPSBpLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgYSA8IG87CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBpW2FdLmluZCA9PSB0ICYmCiAgICAgICAgICAgICAgICAgICAgKCFuW2FdIHx8IG5bYV0gPT09ICEwCiAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmJ1aWxkSXRlbShhKSwgdGhpcy5hZGRQZW5kaW5nRWxlbWVudChlKSkKICAgICAgICAgICAgICAgICAgICAgIDogKHIucHVzaChuW2FdKSwKICAgICAgICAgICAgICAgICAgICAgICAgblthXS5zZXRBc1BhcmVudCgpLAogICAgICAgICAgICAgICAgICAgICAgICBpW2FdLnBhcmVudCAhPT0gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmJ1aWxkRWxlbWVudFBhcmVudGluZyhlLCBpW2FdLnBhcmVudCwgcikKICAgICAgICAgICAgICAgICAgICAgICAgICA6IGUuc2V0SGllcmFyY2h5KHIpKSksCiAgICAgICAgICAgICAgICAgICAgKGEgKz0gMSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuYWRkUGVuZGluZ0VsZW1lbnQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nRWxlbWVudHMucHVzaChlKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5zZWFyY2hFeHRyYUNvbXBvc2l0aW9ucyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgaWYgKGVbdF0ueHQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuY3JlYXRlQ29tcChlW3RdKTsKICAgICAgICAgICAgICAgICAgICBuLmluaXRFeHByZXNzaW9ucygpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UucmVnaXN0ZXJDb21wb3NpdGlvbihuKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmdldEVsZW1lbnRCeUlkID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5lbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50c1t0XS5kYXRhLmluZCA9PT0gZSkgcmV0dXJuIHRoaXMuZWxlbWVudHNbdF07CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5nZXRFbGVtZW50QnlQYXRoID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gZS5zaGlmdCgpLAogICAgICAgICAgICAgICAgICByOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0ID09ICJudW1iZXIiKSByID0gdGhpcy5lbGVtZW50c1t0XTsKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgICAgICBpID0gdGhpcy5lbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudHNbbl0uZGF0YS5ubSA9PT0gdCkgewogICAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuZWxlbWVudHNbbl07CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZS5sZW5ndGggPT09IDAgPyByIDogci5nZXRFbGVtZW50QnlQYXRoKGUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLnNldHVwR2xvYmFsRGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyID0gbmV3IEZvbnRNYW5hZ2VyKCkpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLnNsb3RNYW5hZ2VyID0gc2xvdEZhY3RvcnkoZSkpLAogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuYWRkQ2hhcnMoZS5jaGFycyksCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5hZGRGb250cyhlLmZvbnRzLCB0KSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5nZXRBc3NldERhdGEgPQogICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5nZXRBc3NldERhdGEuYmluZCh0aGlzLmFuaW1hdGlvbkl0ZW0pKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5nZXRBc3NldHNQYXRoID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uZ2V0QXNzZXRzUGF0aC5iaW5kKHRoaXMuYW5pbWF0aW9uSXRlbSkpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmltYWdlTG9hZGVyID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uaW1hZ2VQcmVsb2FkZXIpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmF1ZGlvQ29udHJvbGxlciA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmF1ZGlvQ29udHJvbGxlciksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZnJhbWVJZCA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZyYW1lUmF0ZSA9IGUuZnIpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLm5tID0gZS5ubSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuY29tcFNpemUgPSB7IHc6IGUudywgaDogZS5oIH0pOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZWZmZWN0VHlwZXMgPSB7IFRSQU5TRk9STV9FRkZFQ1Q6ICJ0cmFuc2Zvcm1FRmZlY3QiIH07CiAgICAgICAgICAgIGZ1bmN0aW9uIFRyYW5zZm9ybUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgaW5pdFRyYW5zZm9ybTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIHQgPSBuZXcgTWF0cml4KCk7CiAgICAgICAgICAgICAgICAodGhpcy5maW5hbFRyYW5zZm9ybSA9IHsKICAgICAgICAgICAgICAgICAgbVByb3A6IHRoaXMuZGF0YS5rcwogICAgICAgICAgICAgICAgICAgID8gVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5LmdldFRyYW5zZm9ybVByb3BlcnR5KAogICAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5rcywKICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgOiB7IG86IDAgfSwKICAgICAgICAgICAgICAgICAgX21hdE1kZjogITEsCiAgICAgICAgICAgICAgICAgIF9sb2NhbE1hdE1kZjogITEsCiAgICAgICAgICAgICAgICAgIF9vcE1kZjogITEsCiAgICAgICAgICAgICAgICAgIG1hdDogdCwKICAgICAgICAgICAgICAgICAgbG9jYWxNYXQ6IHQsCiAgICAgICAgICAgICAgICAgIGxvY2FsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuYW8gJiYgKHRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3AuYXV0b09yaWVudGVkID0gITApLAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW5kZXJUcmFuc2Zvcm06IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKCh0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC5vLl9tZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmID0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3AuX21kZiB8fCB0aGlzLl9pc0ZpcnN0RnJhbWUpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaGllcmFyY2h5KQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmZpbmFsVHJhbnNmb3JtLm1hdCwKICAgICAgICAgICAgICAgICAgICBuID0gMCwKICAgICAgICAgICAgICAgICAgICBpID0gdGhpcy5oaWVyYXJjaHkubGVuZ3RoOwogICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmluYWxUcmFuc2Zvcm0uX21hdE1kZikKICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbiA8IGk7KSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oaWVyYXJjaHlbbl0uZmluYWxUcmFuc2Zvcm0ubVByb3AuX21kZikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9tYXRNZGYgPSAhMDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmKQogICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICB0ID0gdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC52LnByb3BzLAogICAgICAgICAgICAgICAgICAgICAgci5jbG9uZUZyb21Qcm9wcyh0KSwKICAgICAgICAgICAgICAgICAgICAgIG4gPSAwOwogICAgICAgICAgICAgICAgICAgICAgbiA8IGk7CiAgICAgICAgICAgICAgICAgICAgICBuICs9IDEKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICByLm11bHRpcGx5KHRoaXMuaGllcmFyY2h5W25dLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLnYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtLl9sb2NhbE1hdE1kZiA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmKSwKICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5ID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLm8udik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW5kZXJMb2NhbFRyYW5zZm9ybTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jYWxUcmFuc2Zvcm1zKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0ID0gMCwKICAgICAgICAgICAgICAgICAgICByID0gdGhpcy5sb2NhbFRyYW5zZm9ybXMubGVuZ3RoOwogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZpbmFsVHJhbnNmb3JtLl9sb2NhbE1hdE1kZiA9CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9tYXRNZGYpLAogICAgICAgICAgICAgICAgICAgICAgIXRoaXMuZmluYWxUcmFuc2Zvcm0uX2xvY2FsTWF0TWRmIHx8CiAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYpCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBmb3IgKDsgdCA8IHI7KQogICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFRyYW5zZm9ybXNbdF0uX21kZiAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maW5hbFRyYW5zZm9ybS5fbG9jYWxNYXRNZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxUcmFuc2Zvcm1zW3RdLl9vcE1kZiAmJgogICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsT3BhY2l0eSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC5vLnYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiA9ICEwKSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0ICs9IDEpOwogICAgICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fbG9jYWxNYXRNZGYpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxNYXQ7CiAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxUcmFuc2Zvcm1zWzBdLm1hdHJpeC5jbG9uZShuKSwgdCA9IDE7CiAgICAgICAgICAgICAgICAgICAgICB0IDwgcjsKICAgICAgICAgICAgICAgICAgICAgIHQgKz0gMQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0aGlzLmxvY2FsVHJhbnNmb3Jtc1t0XS5tYXRyaXg7CiAgICAgICAgICAgICAgICAgICAgICBuLm11bHRpcGx5KGkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBuLm11bHRpcGx5KHRoaXMuZmluYWxUcmFuc2Zvcm0ubWF0KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5OwogICAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICBhICo9IHRoaXMubG9jYWxUcmFuc2Zvcm1zW3RdLm9wYWNpdHkgKiAwLjAxOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5ID0gYTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2VhcmNoRWZmZWN0VHJhbnNmb3JtczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyYWJsZUVmZmVjdHNNYW5hZ2VyKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5yZW5kZXJhYmxlRWZmZWN0c01hbmFnZXIuZ2V0RWZmZWN0cygKICAgICAgICAgICAgICAgICAgICBlZmZlY3RUeXBlcy5UUkFOU0ZPUk1fRUZGRUNUCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGlmICh0Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsVHJhbnNmb3JtcyA9IFtdKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsTWF0ID0gbmV3IE1hdHJpeCgpKTsKICAgICAgICAgICAgICAgICAgICB2YXIgciA9IDAsCiAgICAgICAgICAgICAgICAgICAgICBuID0gdC5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgdGhpcy5sb2NhbFRyYW5zZm9ybXMucHVzaCh0W3JdKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2xvYmFsVG9Mb2NhbDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIHZhciByID0gW107CiAgICAgICAgICAgICAgICByLnB1c2godGhpcy5maW5hbFRyYW5zZm9ybSk7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBuID0gITAsIGkgPSB0aGlzLmNvbXA7IG47KQogICAgICAgICAgICAgICAgICBpLmZpbmFsVHJhbnNmb3JtCiAgICAgICAgICAgICAgICAgICAgPyAoaS5kYXRhLmhhc01hc2sgJiYgci5zcGxpY2UoMCwgMCwgaS5maW5hbFRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IGkuY29tcCkpCiAgICAgICAgICAgICAgICAgICAgOiAobiA9ICExKTsKICAgICAgICAgICAgICAgIHZhciBhLAogICAgICAgICAgICAgICAgICBvID0gci5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGw7CiAgICAgICAgICAgICAgICBmb3IgKGEgPSAwOyBhIDwgbzsgYSArPSAxKQogICAgICAgICAgICAgICAgICAobCA9IHJbYV0ubWF0LmFwcGx5VG9Qb2ludEFycmF5KDAsIDAsIDApKSwKICAgICAgICAgICAgICAgICAgICAodCA9IFt0WzBdIC0gbFswXSwgdFsxXSAtIGxbMV0sIDBdKTsKICAgICAgICAgICAgICAgIHJldHVybiB0OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgbUhlbHBlcjogbmV3IE1hdHJpeCgpLAogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBNYXNrRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudCA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IHIpLAogICAgICAgICAgICAgICAgKHRoaXMuc3RvcmVkRGF0YSA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLm1hc2tzUHJvcGVydGllcyA9IHRoaXMuZGF0YS5tYXNrc1Byb3BlcnRpZXMgfHwgW10pLAogICAgICAgICAgICAgICAgKHRoaXMubWFza0VsZW1lbnQgPSBudWxsKTsKICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMuZ2xvYmFsRGF0YS5kZWZzLAogICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgIGEgPSB0aGlzLm1hc2tzUHJvcGVydGllcyA/IHRoaXMubWFza3NQcm9wZXJ0aWVzLmxlbmd0aCA6IDA7CiAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGEgPSBjcmVhdGVTaXplZEFycmF5KGEpKSwgKHRoaXMuc29saWRQYXRoID0gIiIpOwogICAgICAgICAgICAgIHZhciBvLAogICAgICAgICAgICAgICAgbCA9IHRoaXMubWFza3NQcm9wZXJ0aWVzLAogICAgICAgICAgICAgICAgYyA9IDAsCiAgICAgICAgICAgICAgICB1ID0gW10sCiAgICAgICAgICAgICAgICBkLAogICAgICAgICAgICAgICAgRSwKICAgICAgICAgICAgICAgIGIgPSBjcmVhdGVFbGVtZW50SUQoKSwKICAgICAgICAgICAgICAgIFAsCiAgICAgICAgICAgICAgICBSLAogICAgICAgICAgICAgICAgVCwKICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICB4ID0gImNsaXBQYXRoIiwKICAgICAgICAgICAgICAgIGsgPSAiY2xpcC1wYXRoIjsKICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYTsgaSArPSAxKQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKChsW2ldLm1vZGUgIT09ICJhIiAmJiBsW2ldLm1vZGUgIT09ICJuIikgfHwKICAgICAgICAgICAgICAgICAgICBsW2ldLmludiB8fAogICAgICAgICAgICAgICAgICAgIGxbaV0uby5rICE9PSAxMDAgfHwKICAgICAgICAgICAgICAgICAgICBsW2ldLm8ueCkgJiYKICAgICAgICAgICAgICAgICAgICAoKHggPSAibWFzayIpLCAoayA9ICJtYXNrIikpLAogICAgICAgICAgICAgICAgICAgIChsW2ldLm1vZGUgPT09ICJzIiB8fCBsW2ldLm1vZGUgPT09ICJpIikgJiYgYyA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgPyAoKFAgPSBjcmVhdGVOUygicmVjdCIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgUC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiI2ZmZmZmZiIpLAogICAgICAgICAgICAgICAgICAgICAgICBQLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmVsZW1lbnQuY29tcC5kYXRhLncgfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIFAuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCB0aGlzLmVsZW1lbnQuY29tcC5kYXRhLmggfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHUucHVzaChQKSkKICAgICAgICAgICAgICAgICAgICAgIDogKFAgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAobyA9IGNyZWF0ZU5TKCJwYXRoIikpLAogICAgICAgICAgICAgICAgICAgIGxbaV0ubW9kZSA9PT0gIm4iKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAodGhpcy52aWV3RGF0YVtpXSA9IHsKICAgICAgICAgICAgICAgICAgICBvcDogUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICBsW2ldLm8sCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgcHJvcDogU2hhcGVQcm9wZXJ0eUZhY3RvcnkuZ2V0U2hhcGVQcm9wKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgbFtpXSwKICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIGVsZW06IG8sCiAgICAgICAgICAgICAgICAgICAgbGFzdFBhdGg6ICIiLAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKG8pOwogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIChjICs9IDEpLAogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgImZpbGwiLAogICAgICAgICAgICAgICAgICAgICAgbFtpXS5tb2RlID09PSAicyIgPyAiIzAwMDAwMCIgOiAiI2ZmZmZmZiIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKCJjbGlwLXJ1bGUiLCAibm9uemVybyIpOwogICAgICAgICAgICAgICAgICB2YXIgUzsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIChsW2ldLnguayAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgPyAoKHggPSAibWFzayIpLAogICAgICAgICAgICAgICAgICAgICAgICAoayA9ICJtYXNrIiksCiAgICAgICAgICAgICAgICAgICAgICAgIChNID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbaV0ueCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAoUyA9IGNyZWF0ZUVsZW1lbnRJRCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSBjcmVhdGVOUygiZmlsdGVyIikpLAogICAgICAgICAgICAgICAgICAgICAgICBSLnNldEF0dHJpYnV0ZSgiaWQiLCBTKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBjcmVhdGVOUygiZmVNb3JwaG9sb2d5IikpLAogICAgICAgICAgICAgICAgICAgICAgICBULnNldEF0dHJpYnV0ZSgib3BlcmF0b3IiLCAiZXJvZGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgVC5zZXRBdHRyaWJ1dGUoImluIiwgIlNvdXJjZUdyYXBoaWMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgVC5zZXRBdHRyaWJ1dGUoInJhZGl1cyIsICIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgIFIuYXBwZW5kQ2hpbGQoVCksCiAgICAgICAgICAgICAgICAgICAgICAgIG4uYXBwZW5kQ2hpbGQoUiksCiAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJva2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxbaV0ubW9kZSA9PT0gInMiID8gIiMwMDAwMDAiIDogIiNmZmZmZmYiCiAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICA6ICgoVCA9IG51bGwpLCAoTSA9IG51bGwpKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnN0b3JlZERhdGFbaV0gPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW06IG8sCiAgICAgICAgICAgICAgICAgICAgICAgIHg6IE0sCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuOiBULAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0UGF0aDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RPcGVyYXRvcjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcklkOiBTLAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmFkaXVzOiAwLAogICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICBsW2ldLm1vZGUgPT09ICJpIikKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgRSA9IHUubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIHZhciBBID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKGQgPSAwOyBkIDwgRTsgZCArPSAxKSBBLmFwcGVuZENoaWxkKHVbZF0pOwogICAgICAgICAgICAgICAgICAgIHZhciBPID0gY3JlYXRlTlMoIm1hc2siKTsKICAgICAgICAgICAgICAgICAgICBPLnNldEF0dHJpYnV0ZSgibWFzay10eXBlIiwgImFscGhhIiksCiAgICAgICAgICAgICAgICAgICAgICBPLnNldEF0dHJpYnV0ZSgiaWQiLCBiICsgIl8iICsgYyksCiAgICAgICAgICAgICAgICAgICAgICBPLmFwcGVuZENoaWxkKG8pLAogICAgICAgICAgICAgICAgICAgICAgbi5hcHBlbmRDaGlsZChPKSwKICAgICAgICAgICAgICAgICAgICAgIEEuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAibWFzayIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgYiArICJfIiArIGMgKyAiKSIKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAodS5sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICAgICAgIHUucHVzaChBKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIHUucHVzaChvKTsKICAgICAgICAgICAgICAgICAgbFtpXS5pbnYgJiYKICAgICAgICAgICAgICAgICAgICAhdGhpcy5zb2xpZFBhdGggJiYKICAgICAgICAgICAgICAgICAgICAodGhpcy5zb2xpZFBhdGggPSB0aGlzLmNyZWF0ZUxheWVyU29saWRQYXRoKCkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhW2ldID0gewogICAgICAgICAgICAgICAgICAgICAgZWxlbTogbywKICAgICAgICAgICAgICAgICAgICAgIGxhc3RQYXRoOiAiIiwKICAgICAgICAgICAgICAgICAgICAgIG9wOiBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICBsW2ldLm8sCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudAogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHByb3A6IFNoYXBlUHJvcGVydHlGYWN0b3J5LmdldFNoYXBlUHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICBsW2ldLAogICAgICAgICAgICAgICAgICAgICAgICAzCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgaW52UmVjdDogUCwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW2ldLnByb3AuayB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd1BhdGgoCiAgICAgICAgICAgICAgICAgICAgICBsW2ldLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVtpXS5wcm9wLnYsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW2ldCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdGhpcy5tYXNrRWxlbWVudCA9IGNyZWF0ZU5TKHgpLCBhID0gdS5sZW5ndGgsIGkgPSAwOwogICAgICAgICAgICAgICAgaSA8IGE7CiAgICAgICAgICAgICAgICBpICs9IDEKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB0aGlzLm1hc2tFbGVtZW50LmFwcGVuZENoaWxkKHVbaV0pOwogICAgICAgICAgICAgIGMgPiAwICYmCiAgICAgICAgICAgICAgICAodGhpcy5tYXNrRWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgYiksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5tYXNrZWRFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgYiArICIpIgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKHRoaXMubWFza0VsZW1lbnQpKSwKICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGEubGVuZ3RoICYmCiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkUmVuZGVyYWJsZUNvbXBvbmVudCh0aGlzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLmdldE1hc2tQcm9wZXJ0eSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlld0RhdGFbZV0ucHJvcDsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZWxlbWVudC5maW5hbFRyYW5zZm9ybS5tYXQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKQogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLnZpZXdEYXRhW3JdLnByb3AuX21kZiB8fCBlKSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3UGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXNrc1Byb3BlcnRpZXNbcl0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGFbcl0ucHJvcC52LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW3JdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbcl0ub3AuX21kZiB8fCBlKSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVtyXS5lbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgImZpbGwtb3BhY2l0eSIsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGFbcl0ub3AudgogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFza3NQcm9wZXJ0aWVzW3JdLm1vZGUgIT09ICJuIiAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbcl0uaW52UmVjdCAmJgogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmZpbmFsVHJhbnNmb3JtLm1Qcm9wLl9tZGYgfHwgZSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVtyXS5pbnZSZWN0LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldEludmVyc2VNYXRyaXgoKS50bzJkQ1NTKCkKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZWREYXRhW3JdLnggJiYgKHRoaXMuc3RvcmVkRGF0YVtyXS54Ll9tZGYgfHwgZSkpKQogICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IHRoaXMuc3RvcmVkRGF0YVtyXS5leHBhbjsKICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbcl0ueC52IDwgMAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5zdG9yZWREYXRhW3JdLmxhc3RPcGVyYXRvciAhPT0gImVyb2RlIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuc3RvcmVkRGF0YVtyXS5sYXN0T3BlcmF0b3IgPSAiZXJvZGUiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbcl0uZWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2NhdGlvbkhyZWYoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIyIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZWREYXRhW3JdLmZpbHRlcklkICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgicmFkaXVzIiwgLXRoaXMuc3RvcmVkRGF0YVtyXS54LnYpKQogICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zdG9yZWREYXRhW3JdLmxhc3RPcGVyYXRvciAhPT0gImRpbGF0ZSIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLnN0b3JlZERhdGFbcl0ubGFzdE9wZXJhdG9yID0gImRpbGF0ZSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVkRGF0YVtyXS5lbGVtLnNldEF0dHJpYnV0ZSgiZmlsdGVyIiwgbnVsbCkpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbcl0uZWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cm9rZS13aWR0aCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZWREYXRhW3JdLngudiAqIDIKICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLmdldE1hc2tlbGVtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFza0VsZW1lbnQ7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVMYXllclNvbGlkUGF0aCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gIk0wLDAgIjsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIChlICs9ICIgaCIgKyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUudyksCiAgICAgICAgICAgICAgICAgIChlICs9ICIgdiIgKyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUuaCksCiAgICAgICAgICAgICAgICAgIChlICs9ICIgaC0iICsgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncpLAogICAgICAgICAgICAgICAgICAoZSArPSAiIHYtIiArIHRoaXMuZ2xvYmFsRGF0YS5jb21wU2l6ZS5oICsgIiAiKSwKICAgICAgICAgICAgICAgICAgZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLmRyYXdQYXRoID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgICAgIHZhciBuID0gIiBNIiArIHQudlswXVswXSArICIsIiArIHQudlswXVsxXSwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYTsKICAgICAgICAgICAgICAgIGZvciAoYSA9IHQuX2xlbmd0aCwgaSA9IDE7IGkgPCBhOyBpICs9IDEpCiAgICAgICAgICAgICAgICAgIG4gKz0KICAgICAgICAgICAgICAgICAgICAiIEMiICsKICAgICAgICAgICAgICAgICAgICB0Lm9baSAtIDFdWzBdICsKICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgIHQub1tpIC0gMV1bMV0gKwogICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgdC5pW2ldWzBdICsKICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgIHQuaVtpXVsxXSArCiAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICB0LnZbaV1bMF0gKwogICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgdC52W2ldWzFdOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodC5jICYmCiAgICAgICAgICAgICAgICAgICAgYSA+IDEgJiYKICAgICAgICAgICAgICAgICAgICAobiArPQogICAgICAgICAgICAgICAgICAgICAgIiBDIiArCiAgICAgICAgICAgICAgICAgICAgICB0Lm9baSAtIDFdWzBdICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICB0Lm9baSAtIDFdWzFdICsKICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICB0LmlbMF1bMF0gKwogICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgIHQuaVswXVsxXSArCiAgICAgICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICAgICAgdC52WzBdWzBdICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICB0LnZbMF1bMV0pLAogICAgICAgICAgICAgICAgICAgIHIubGFzdFBhdGggIT09IG4pCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIG8gPSAiIjsKICAgICAgICAgICAgICAgICAgci5lbGVtICYmCiAgICAgICAgICAgICAgICAgICAgKHQuYyAmJiAobyA9IGUuaW52ID8gdGhpcy5zb2xpZFBhdGggKyBuIDogbiksCiAgICAgICAgICAgICAgICAgICAgICByLmVsZW0uc2V0QXR0cmlidXRlKCJkIiwgbykpLAogICAgICAgICAgICAgICAgICAgIChyLmxhc3RQYXRoID0gbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudCA9IG51bGwpLAogICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICh0aGlzLm1hc2tFbGVtZW50ID0gbnVsbCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubWFza3NQcm9wZXJ0aWVzID0gbnVsbCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJzRmFjdG9yeSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSB7fTsKICAgICAgICAgICAgICAoZS5jcmVhdGVGaWx0ZXIgPSB0KSwgKGUuY3JlYXRlQWxwaGFUb0x1bWluYW5jZUZpbHRlciA9IHIpOwogICAgICAgICAgICAgIGZ1bmN0aW9uIHQobiwgaSkgewogICAgICAgICAgICAgICAgdmFyIGEgPSBjcmVhdGVOUygiZmlsdGVyIik7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiaWQiLCBuKSwKICAgICAgICAgICAgICAgICAgaSAhPT0gITAgJiYKICAgICAgICAgICAgICAgICAgKGEuc2V0QXR0cmlidXRlKCJmaWx0ZXJVbml0cyIsICJvYmplY3RCb3VuZGluZ0JveCIpLAogICAgICAgICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJ4IiwgIjAlIiksCiAgICAgICAgICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoInkiLCAiMCUiKSwKICAgICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwJSIpLAogICAgICAgICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwJSIpKSwKICAgICAgICAgICAgICAgICAgYQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gcigpIHsKICAgICAgICAgICAgICAgIHZhciBuID0gY3JlYXRlTlMoImZlQ29sb3JNYXRyaXgiKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJ0eXBlIiwgIm1hdHJpeCIpLAogICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwgInNSR0IiKSwKICAgICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgInZhbHVlcyIsCiAgICAgICAgICAgICAgICAgICAgIjAgMCAwIDEgMCAgMCAwIDAgMSAwICAwIDAgMCAxIDAgIDAgMCAwIDEgMSIKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgbgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgZmVhdHVyZVN1cHBvcnQgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB7CiAgICAgICAgICAgICAgICAgIG1hc2tUeXBlOiAhMCwKICAgICAgICAgICAgICAgICAgc3ZnTHVtYUhpZGRlbjogITAsCiAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkNhbnZhczogdHlwZW9mIE9mZnNjcmVlbkNhbnZhcyA8ICJ1IiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoL01TSUUgMTAvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpIHx8CiAgICAgICAgICAgICAgICAgICAgL01TSUUgOS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgfHwKICAgICAgICAgICAgICAgICAgICAvcnY6MTEuMC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgfHwKICAgICAgICAgICAgICAgICAgICAvRWRnZVwvXGQuL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgJiYKICAgICAgICAgICAgICAgICAgKGUubWFza1R5cGUgPSAhMSksCiAgICAgICAgICAgICAgICAgIC9maXJlZm94L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJgogICAgICAgICAgICAgICAgICAoZS5zdmdMdW1hSGlkZGVuID0gITEpLAogICAgICAgICAgICAgICAgICBlCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMSA9IHt9LAogICAgICAgICAgICAgIGlkUHJlZml4ID0gImZpbHRlcl9yZXN1bHRfIjsKICAgICAgICAgICAgZnVuY3Rpb24gU1ZHRWZmZWN0cyhlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gIlNvdXJjZUdyYXBoaWMiLAogICAgICAgICAgICAgICAgbiA9IGUuZGF0YS5lZiA/IGUuZGF0YS5lZi5sZW5ndGggOiAwLAogICAgICAgICAgICAgICAgaSA9IGNyZWF0ZUVsZW1lbnRJRCgpLAogICAgICAgICAgICAgICAgYSA9IGZpbHRlcnNGYWN0b3J5LmNyZWF0ZUZpbHRlcihpLCAhMCksCiAgICAgICAgICAgICAgICBvID0gMDsKICAgICAgICAgICAgICB0aGlzLmZpbHRlcnMgPSBbXTsKICAgICAgICAgICAgICB2YXIgbDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgbjsgdCArPSAxKSB7CiAgICAgICAgICAgICAgICBsID0gbnVsbDsKICAgICAgICAgICAgICAgIHZhciBjID0gZS5kYXRhLmVmW3RdLnR5OwogICAgICAgICAgICAgICAgaWYgKHJlZ2lzdGVyZWRFZmZlY3RzJDFbY10pIHsKICAgICAgICAgICAgICAgICAgdmFyIHUgPSByZWdpc3RlcmVkRWZmZWN0cyQxW2NdLmVmZmVjdDsKICAgICAgICAgICAgICAgICAgKGwgPSBuZXcgdSgKICAgICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICAgIGUuZWZmZWN0c01hbmFnZXIuZWZmZWN0RWxlbWVudHNbdF0sCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICBpZFByZWZpeCArIG8sCiAgICAgICAgICAgICAgICAgICAgcgogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAociA9IGlkUHJlZml4ICsgbyksCiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMVtjXS5jb3VudHNBc0VmZmVjdCAmJiAobyArPSAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGwgJiYgdGhpcy5maWx0ZXJzLnB1c2gobCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG8gJiYKICAgICAgICAgICAgICAgIChlLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChhKSwKICAgICAgICAgICAgICAgICAgZS5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJmaWx0ZXIiLAogICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgaSArICIpIgogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVycy5sZW5ndGggJiYgZS5hZGRSZW5kZXJhYmxlQ29tcG9uZW50KHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChTVkdFZmZlY3RzLnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKSB0aGlzLmZpbHRlcnNbdF0ucmVuZGVyRnJhbWUoZSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdFZmZlY3RzLnByb3RvdHlwZS5nZXRFZmZlY3RzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgbiA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzW3RdLnR5cGUgPT09IGUgJiYgbi5wdXNoKHRoaXMuZmlsdGVyc1t0XSk7CiAgICAgICAgICAgICAgICByZXR1cm4gbjsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJFZmZlY3QkMShlLCB0LCByKSB7CiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMVtlXSA9IHsgZWZmZWN0OiB0LCBjb3VudHNBc0VmZmVjdDogciB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0Jhc2VFbGVtZW50KCkgeyB9CiAgICAgICAgICAgIFNWR0Jhc2VFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICBpbml0UmVuZGVyZXJFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudCA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjcmVhdGVDb250YWluZXJFbGVtZW50czogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMubWF0dGVFbGVtZW50ID0gY3JlYXRlTlMoImciKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybWVkRWxlbWVudCA9IHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgKHRoaXMubWFza2VkRWxlbWVudCA9IHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX3NpemVDaGFuZ2VkID0gITEpOwogICAgICAgICAgICAgICAgdmFyIHQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS50ZCkgewogICAgICAgICAgICAgICAgICB0aGlzLm1hdHRlTWFza3MgPSB7fTsKICAgICAgICAgICAgICAgICAgdmFyIHIgPSBjcmVhdGVOUygiZyIpOwogICAgICAgICAgICAgICAgICByLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmxheWVySWQpLAogICAgICAgICAgICAgICAgICAgIHIuYXBwZW5kQ2hpbGQodGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICh0ID0gciksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQocik7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnR0CiAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5tYXR0ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICAgKHQgPSB0aGlzLm1hdHRlRWxlbWVudCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5iYXNlRWxlbWVudCA9IHRoaXMubWF0dGVFbGVtZW50KSkKICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmJhc2VFbGVtZW50ID0gdGhpcy5sYXllckVsZW1lbnQpOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhLmxuICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuZGF0YS5sbiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLmNsICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIHRoaXMuZGF0YS5jbCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnR5ID09PSAwICYmICF0aGlzLmRhdGEuaGQpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSBjcmVhdGVOUygiY2xpcFBhdGgiKSwKICAgICAgICAgICAgICAgICAgICBpID0gY3JlYXRlTlMoInBhdGgiKTsKICAgICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgImQiLAogICAgICAgICAgICAgICAgICAgICJNMCwwIEwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudyArCiAgICAgICAgICAgICAgICAgICAgIiwwIEwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudyArCiAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaCArCiAgICAgICAgICAgICAgICAgICAgIiBMMCwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaCArCiAgICAgICAgICAgICAgICAgICAgInoiCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIHZhciBhID0gY3JlYXRlRWxlbWVudElEKCk7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAobi5zZXRBdHRyaWJ1dGUoImlkIiwgYSksCiAgICAgICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKGkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQobiksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrTWFza3MoKSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG8gPSBjcmVhdGVOUygiZyIpOwogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgImNsaXAtcGF0aCIsCiAgICAgICAgICAgICAgICAgICAgICAidXJsKCIgKyBnZXRMb2NhdGlvbkhyZWYoKSArICIjIiArIGEgKyAiKSIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgby5hcHBlbmRDaGlsZCh0aGlzLmxheWVyRWxlbWVudCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQgPSBvKSwKICAgICAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICAgICAgICAgPyB0LmFwcGVuZENoaWxkKHRoaXMudHJhbnNmb3JtZWRFbGVtZW50KQogICAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmJhc2VFbGVtZW50ID0gdGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAiY2xpcC1wYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgYSArICIpIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuYm0gIT09IDAgJiYgdGhpcy5zZXRCbGVuZE1vZGUoKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJlbmRlckVsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0uX2xvY2FsTWF0TWRmICYmCiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtZWRFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAidHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsTWF0LnRvMmRDU1MoKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiAmJgogICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVkRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgIm9wYWNpdHkiLAogICAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBkZXN0cm95QmFzZUVsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLmxheWVyRWxlbWVudCA9IG51bGwpLAogICAgICAgICAgICAgICAgICAodGhpcy5tYXR0ZUVsZW1lbnQgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgdGhpcy5tYXNrTWFuYWdlci5kZXN0cm95KCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXRCYXNlRWxlbWVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5oZCA/IG51bGwgOiB0aGlzLmJhc2VFbGVtZW50OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgY3JlYXRlUmVuZGVyYWJsZUNvbXBvbmVudHM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLm1hc2tNYW5hZ2VyID0gbmV3IE1hc2tFbGVtZW50KAogICAgICAgICAgICAgICAgICB0aGlzLmRhdGEsCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YQogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlciA9IG5ldyBTVkdFZmZlY3RzKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hFZmZlY3RUcmFuc2Zvcm1zKCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXRNYXR0ZTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKHRoaXMubWF0dGVNYXNrcyB8fCAodGhpcy5tYXR0ZU1hc2tzID0ge30pLAogICAgICAgICAgICAgICAgICAgICF0aGlzLm1hdHRlTWFza3NbdF0pCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmxheWVySWQgKyAiXyIgKyB0LAogICAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICAgIG87CiAgICAgICAgICAgICAgICAgIGlmICh0ID09PSAxIHx8IHQgPT09IDMpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbCA9IGNyZWF0ZU5TKCJtYXNrIik7CiAgICAgICAgICAgICAgICAgICAgbC5zZXRBdHRyaWJ1dGUoImlkIiwgciksCiAgICAgICAgICAgICAgICAgICAgICBsLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgIm1hc2stdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgIHQgPT09IDMgPyAibHVtaW5hbmNlIiA6ICJhbHBoYSIKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAoYSA9IGNyZWF0ZU5TKCJ1c2UiKSksCiAgICAgICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZU5TKAogICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsCiAgICAgICAgICAgICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgIiMiICsgdGhpcy5sYXllcklkCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgbC5hcHBlbmRDaGlsZChhKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKGwpLAogICAgICAgICAgICAgICAgICAgICAgIWZlYXR1cmVTdXBwb3J0Lm1hc2tUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICB0ID09PSAxICYmCiAgICAgICAgICAgICAgICAgICAgICAobC5zZXRBdHRyaWJ1dGUoIm1hc2stdHlwZSIsICJsdW1pbmFuY2UiKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG4gPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICAgICAgICAgICAgIChpID0gZmlsdGVyc0ZhY3RvcnkuY3JlYXRlRmlsdGVyKG4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQoaSksCiAgICAgICAgICAgICAgICAgICAgICAgIGkuYXBwZW5kQ2hpbGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyc0ZhY3RvcnkuY3JlYXRlQWxwaGFUb0x1bWluYW5jZUZpbHRlcigpCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIChvID0gY3JlYXRlTlMoImciKSksCiAgICAgICAgICAgICAgICAgICAgICAgIG8uYXBwZW5kQ2hpbGQoYSksCiAgICAgICAgICAgICAgICAgICAgICAgIGwuYXBwZW5kQ2hpbGQobyksCiAgICAgICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgbiArICIpIgogICAgICAgICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBjcmVhdGVOUygibWFzayIpOwogICAgICAgICAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJpZCIsIHIpLAogICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoIm1hc2stdHlwZSIsICJhbHBoYSIpOwogICAgICAgICAgICAgICAgICAgIHZhciB1ID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICAgICAgICBjLmFwcGVuZENoaWxkKHUpLAogICAgICAgICAgICAgICAgICAgICAgKG4gPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IGZpbHRlcnNGYWN0b3J5LmNyZWF0ZUZpbHRlcihuKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSBjcmVhdGVOUygiZmVDb21wb25lbnRUcmFuc2ZlciIpOwogICAgICAgICAgICAgICAgICAgIGQuc2V0QXR0cmlidXRlKCJpbiIsICJTb3VyY2VHcmFwaGljIiksIGkuYXBwZW5kQ2hpbGQoZCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIEUgPSBjcmVhdGVOUygiZmVGdW5jQSIpOwogICAgICAgICAgICAgICAgICAgIEUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRhYmxlIiksCiAgICAgICAgICAgICAgICAgICAgICBFLnNldEF0dHJpYnV0ZSgidGFibGVWYWx1ZXMiLCAiMS4wIDAuMCIpLAogICAgICAgICAgICAgICAgICAgICAgZC5hcHBlbmRDaGlsZChFKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKGkpOwogICAgICAgICAgICAgICAgICAgIHZhciBiID0gY3JlYXRlTlMoInJlY3QiKTsKICAgICAgICAgICAgICAgICAgICBiLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmNvbXAuZGF0YS53KSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCB0aGlzLmNvbXAuZGF0YS5oKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJ4IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJ5IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJmaWxsIiwgIiNmZmZmZmYiKSwKICAgICAgICAgICAgICAgICAgICAgIGIuc2V0QXR0cmlidXRlKCJvcGFjaXR5IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBuICsgIikiCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChiKSwKICAgICAgICAgICAgICAgICAgICAgIChhID0gY3JlYXRlTlMoInVzZSIpKSwKICAgICAgICAgICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlTlMoCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgImhyZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiIyIgKyB0aGlzLmxheWVySWQKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB1LmFwcGVuZENoaWxkKGEpLAogICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZVN1cHBvcnQubWFza1R5cGUgfHwKICAgICAgICAgICAgICAgICAgICAgIChjLnNldEF0dHJpYnV0ZSgibWFzay10eXBlIiwgImx1bWluYW5jZSIpLAogICAgICAgICAgICAgICAgICAgICAgICBpLmFwcGVuZENoaWxkKAogICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnNGYWN0b3J5LmNyZWF0ZUFscGhhVG9MdW1pbmFuY2VGaWx0ZXIoKQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAobyA9IGNyZWF0ZU5TKCJnIikpLAogICAgICAgICAgICAgICAgICAgICAgICB1LmFwcGVuZENoaWxkKGIpLAogICAgICAgICAgICAgICAgICAgICAgICBvLmFwcGVuZENoaWxkKHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChvKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChjKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB0aGlzLm1hdHRlTWFza3NbdF0gPSByOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF0dGVNYXNrc1t0XTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNldE1hdHRlOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdGhpcy5tYXR0ZUVsZW1lbnQgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5tYXR0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJtYXNrIiwKICAgICAgICAgICAgICAgICAgICAidXJsKCIgKyBnZXRMb2NhdGlvbkhyZWYoKSArICIjIiArIHQgKyAiKSIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBIaWVyYXJjaHlFbGVtZW50KCkgeyB9CiAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGluaXRIaWVyYXJjaHk6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICh0aGlzLmhpZXJhcmNoeSA9IFtdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzUGFyZW50ID0gITEpLAogICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrUGFyZW50aW5nKCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRIaWVyYXJjaHk6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0aGlzLmhpZXJhcmNoeSA9IHQ7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZXRBc1BhcmVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5faXNQYXJlbnQgPSAhMDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNoZWNrUGFyZW50aW5nOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRhdGEucGFyZW50ICE9PSB2b2lkIDAgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5jb21wLmJ1aWxkRWxlbWVudFBhcmVudGluZyh0aGlzLCB0aGlzLmRhdGEucGFyZW50LCBbXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gUmVuZGVyYWJsZURPTUVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgZSA9IHsKICAgICAgICAgICAgICAgIGluaXRFbGVtZW50OiBmdW5jdGlvbiAociwgbiwgaSkgewogICAgICAgICAgICAgICAgICB0aGlzLmluaXRGcmFtZSgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdEJhc2VEYXRhKHIsIG4sIGkpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShyLCBuLCBpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRIaWVyYXJjaHkoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRSZW5kZXJhYmxlKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb250YWluZXJFbGVtZW50cygpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUmVuZGVyYWJsZUNvbXBvbmVudHMoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnQoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBoaWRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5oaWRkZW4gJiYgKCF0aGlzLmlzSW5SYW5nZSB8fCB0aGlzLmlzVHJhbnNwYXJlbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmJhc2VFbGVtZW50IHx8IHRoaXMubGF5ZXJFbGVtZW50OwogICAgICAgICAgICAgICAgICAgIChyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpLCAodGhpcy5oaWRkZW4gPSAhMCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBzaG93OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzSW5SYW5nZSAmJiAhdGhpcy5pc1RyYW5zcGFyZW50KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaGQpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciByID0gdGhpcy5iYXNlRWxlbWVudCB8fCB0aGlzLmxheWVyRWxlbWVudDsKICAgICAgICAgICAgICAgICAgICAgIHIuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICh0aGlzLmhpZGRlbiA9ICExKSwgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICEwKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHJlbmRlckZyYW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5oZCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuIHx8CiAgICAgICAgICAgICAgICAgICAgKHRoaXMucmVuZGVyVHJhbnNmb3JtKCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclJlbmRlcmFibGUoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTG9jYWxUcmFuc2Zvcm0oKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRWxlbWVudCgpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJJbm5lckNvbnRlbnQoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzRmlyc3RGcmFtZSAmJiAodGhpcy5faXNGaXJzdEZyYW1lID0gITEpKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICByZW5kZXJJbm5lckNvbnRlbnQ6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgICAgIHByZXBhcmVGcmFtZTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVSZW5kZXJhYmxlRnJhbWUociksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhyLCB0aGlzLmlzSW5SYW5nZSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja1RyYW5zcGFyZW5jeSgpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuaW5uZXJFbGVtID0gbnVsbCksIHRoaXMuZGVzdHJveUJhc2VFbGVtZW50KCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgICAgW1JlbmRlcmFibGVFbGVtZW50LCBjcmVhdGVQcm94eUZ1bmN0aW9uKGUpXSwKICAgICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gSUltYWdlRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5nZXRBc3NldERhdGEoZS5yZWZJZCkpLAogICAgICAgICAgICAgICAgdGhpcy5hc3NldERhdGEgJiYKICAgICAgICAgICAgICAgIHRoaXMuYXNzZXREYXRhLnNpZCAmJgogICAgICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5zbG90TWFuYWdlci5nZXRQcm9wKHRoaXMuYXNzZXREYXRhKSksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpLAogICAgICAgICAgICAgICAgKHRoaXMuc291cmNlUmVjdCA9IHsKICAgICAgICAgICAgICAgICAgdG9wOiAwLAogICAgICAgICAgICAgICAgICBsZWZ0OiAwLAogICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5hc3NldERhdGEudywKICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmFzc2V0RGF0YS5oLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIEJhc2VFbGVtZW50LAogICAgICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudCwKICAgICAgICAgICAgICAgIFNWR0Jhc2VFbGVtZW50LAogICAgICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgICAgIEZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50LAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgSUltYWdlRWxlbWVudAogICAgICAgICAgICApLAogICAgICAgICAgICAgIChJSW1hZ2VFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmdsb2JhbERhdGEuZ2V0QXNzZXRzUGF0aCh0aGlzLmFzc2V0RGF0YSk7CiAgICAgICAgICAgICAgICAodGhpcy5pbm5lckVsZW0gPSBjcmVhdGVOUygiaW1hZ2UiKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJFbGVtLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmFzc2V0RGF0YS53ICsgInB4IiksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IiwKICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0RGF0YS5oICsgInB4IgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLmlubmVyRWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgInByZXNlcnZlQXNwZWN0UmF0aW8iLAogICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXREYXRhLnByIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlckNvbmZpZy5pbWFnZVByZXNlcnZlQXNwZWN0UmF0aW8KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbm5lckVsZW0uc2V0QXR0cmlidXRlTlMoCiAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLAogICAgICAgICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAgICAgICBlCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaW5uZXJFbGVtKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSUltYWdlRWxlbWVudC5wcm90b3R5cGUuc291cmNlUmVjdEF0VGltZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZVJlY3Q7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFByb2Nlc3NlZEVsZW1lbnQoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwgKHRoaXMucG9zID0gdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gSVNoYXBlRWxlbWVudCgpIHsgfQogICAgICAgICAgICBJU2hhcGVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICBhZGRTaGFwZVRvTW9kaWZpZXJzOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLnNoYXBlTW9kaWZpZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHRoaXMuc2hhcGVNb2RpZmllcnNbcl0uYWRkU2hhcGUodCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBpc1NoYXBlSW5BbmltYXRlZE1vZGlmaWVyczogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBuID0gdGhpcy5zaGFwZU1vZGlmaWVycy5sZW5ndGg7IHIgPCBuOykKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hhcGVNb2RpZmllcnNbcl0uaXNBbmltYXRlZFdpdGhTaGFwZSh0KSkgcmV0dXJuICEwOwogICAgICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcmVuZGVyTW9kaWZpZXJzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaGFwZU1vZGlmaWVycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuc2hhcGVzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgdGhpcy5zaGFwZXNbdF0uc2gucmVzZXQoKTsKICAgICAgICAgICAgICAgICAgciA9IHRoaXMuc2hhcGVNb2RpZmllcnMubGVuZ3RoOwogICAgICAgICAgICAgICAgICB2YXIgbjsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICB0ID0gciAtIDE7CiAgICAgICAgICAgICAgICAgICAgdCA+PSAwICYmCiAgICAgICAgICAgICAgICAgICAgKChuID0gdGhpcy5zaGFwZU1vZGlmaWVyc1t0XS5wcm9jZXNzU2hhcGVzKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lCiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAhbik7CiAgICAgICAgICAgICAgICAgICAgdCAtPSAxCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBzZWFyY2hQcm9jZXNzZWRFbGVtZW50OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLnByb2Nlc3NlZEVsZW1lbnRzLCBuID0gMCwgaSA9IHIubGVuZ3RoOwogICAgICAgICAgICAgICAgICBuIDwgaTsKCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgaWYgKHJbbl0uZWxlbSA9PT0gdCkgcmV0dXJuIHJbbl0ucG9zOwogICAgICAgICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGFkZFByb2Nlc3NlZEVsZW1lbnQ6IGZ1bmN0aW9uICh0LCByKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBuID0gdGhpcy5wcm9jZXNzZWRFbGVtZW50cywgaSA9IG4ubGVuZ3RoOyBpOykKICAgICAgICAgICAgICAgICAgaWYgKCgoaSAtPSAxKSwgbltpXS5lbGVtID09PSB0KSkgewogICAgICAgICAgICAgICAgICAgIG5baV0ucG9zID0gcjsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG4ucHVzaChuZXcgUHJvY2Vzc2VkRWxlbWVudCh0LCByKSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBwcmVwYXJlRnJhbWU6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVSZW5kZXJhYmxlRnJhbWUodCksCiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVByb3BlcnRpZXModCwgdGhpcy5pc0luUmFuZ2UpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBsaW5lQ2FwRW51bSA9IHsgMTogImJ1dHQiLCAyOiAicm91bmQiLCAzOiAic3F1YXJlIiB9LAogICAgICAgICAgICAgIGxpbmVKb2luRW51bSA9IHsgMTogIm1pdGVyIiwgMjogInJvdW5kIiwgMzogImJldmVsIiB9OwogICAgICAgICAgICBmdW5jdGlvbiBTVkdTaGFwZURhdGEoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLmNhY2hlcyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlcyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybWVycyA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMubFN0ciA9ICIiKSwKICAgICAgICAgICAgICAgICh0aGlzLnNoID0gciksCiAgICAgICAgICAgICAgICAodGhpcy5sdmwgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISFyLmspOwogICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwLCBpID0gZS5sZW5ndGg7IG4gPCBpOykgewogICAgICAgICAgICAgICAgaWYgKGVbbl0ubVByb3BzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICB0aGlzLl9pc0FuaW1hdGVkID0gITA7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbiArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBTVkdTaGFwZURhdGEucHJvdG90eXBlLnNldEFzQW5pbWF0ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdGhpcy5faXNBbmltYXRlZCA9ICEwOwogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBTVkdTdHlsZURhdGEoZSwgdCkgewogICAgICAgICAgICAgICh0aGlzLmRhdGEgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlLnR5KSwKICAgICAgICAgICAgICAgICh0aGlzLmQgPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy5sdmwgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5jbG9zZWQgPSBlLmhkID09PSAhMCksCiAgICAgICAgICAgICAgICAodGhpcy5wRWxlbSA9IGNyZWF0ZU5TKCJwYXRoIikpLAogICAgICAgICAgICAgICAgKHRoaXMubXNFbGVtID0gbnVsbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU1ZHU3R5bGVEYXRhLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAodGhpcy5kID0gIiIpLCAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBEYXNoUHJvcGVydHkoZSwgdCwgciwgbikgewogICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgICAodGhpcy5kYXRhUHJvcHMgPSBjcmVhdGVTaXplZEFycmF5KHQubGVuZ3RoKSksCiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlciA9IHIpLAogICAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLmRhc2hTdHIgPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy5kYXNoQXJyYXkgPSBjcmVhdGVUeXBlZEFycmF5KAogICAgICAgICAgICAgICAgICAiZmxvYXQzMiIsCiAgICAgICAgICAgICAgICAgIHQubGVuZ3RoID8gdC5sZW5ndGggLSAxIDogMAogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy5kYXNob2Zmc2V0ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIDEpKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihuKTsKICAgICAgICAgICAgICB2YXIgaSwKICAgICAgICAgICAgICAgIGEgPSB0Lmxlbmd0aCB8fCAwLAogICAgICAgICAgICAgICAgbzsKICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYTsgaSArPSAxKQogICAgICAgICAgICAgICAgKG8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0W2ldLnYsIDAsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuayA9IG8uayB8fCB0aGlzLmspLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhUHJvcHNbaV0gPSB7IG46IHRbaV0ubiwgcDogbyB9KTsKICAgICAgICAgICAgICB0aGlzLmsgfHwgdGhpcy5nZXRWYWx1ZSghMCksICh0aGlzLl9pc0FuaW1hdGVkID0gdGhpcy5rKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoRGFzaFByb3BlcnR5LnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISh0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkID09PSB0aGlzLmZyYW1lSWQgJiYgIWUpICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gdGhpcy5fbWRmIHx8IGUpLAogICAgICAgICAgICAgICAgICB0aGlzLl9tZGYpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IDAsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRhdGFQcm9wcy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyID09PSAic3ZnIiAmJiAodGhpcy5kYXNoU3RyID0gIiIpLCB0ID0gMDsKICAgICAgICAgICAgICAgICAgdCA8IHI7CiAgICAgICAgICAgICAgICAgIHQgKz0gMQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm9wc1t0XS5uICE9PSAibyIKICAgICAgICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyZXIgPT09ICJzdmciCiAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmRhc2hTdHIgKz0gIiAiICsgdGhpcy5kYXRhUHJvcHNbdF0ucC52KQogICAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5kYXNoQXJyYXlbdF0gPSB0aGlzLmRhdGFQcm9wc1t0XS5wLnYpCiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5kYXNob2Zmc2V0WzBdID0gdGhpcy5kYXRhUHJvcHNbdF0ucC52KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgRGFzaFByb3BlcnR5KTsKICAgICAgICAgICAgZnVuY3Rpb24gU1ZHU3Ryb2tlU3R5bGVEYXRhKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZSksCiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgICAgICh0aGlzLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0Lm8sIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLncgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LncsIDAsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLmQgPSBuZXcgRGFzaFByb3BlcnR5KGUsIHQuZCB8fCB7fSwgInN2ZyIsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLmMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmMsIDEsIDI1NSwgdGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMuc3R5bGUgPSByKSwKICAgICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISF0aGlzLl9pc0FuaW1hdGVkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIFNWR1N0cm9rZVN0eWxlRGF0YSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0ZpbGxTdHlsZURhdGEoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihlKSwKICAgICAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMpLAogICAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQubywgMCwgMC4wMSwgdGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMuYyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuYywgMSwgMjU1LCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5zdHlsZSA9IHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgU1ZHRmlsbFN0eWxlRGF0YSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR05vU3R5bGVEYXRhKGUsIHQsIHIpIHsKICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZSksCiAgICAgICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlID0gcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBTVkdOb1N0eWxlRGF0YSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIEdyYWRpZW50UHJvcGVydHkoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwgKHRoaXMuYyA9IGNyZWF0ZVR5cGVkQXJyYXkoInVpbnQ4YyIsIHQucCAqIDQpKTsKICAgICAgICAgICAgICB2YXIgbiA9IHQuay5rWzBdLnMKICAgICAgICAgICAgICAgID8gdC5rLmtbMF0ucy5sZW5ndGggLSB0LnAgKiA0CiAgICAgICAgICAgICAgICA6IHQuay5rLmxlbmd0aCAtIHQucCAqIDQ7CiAgICAgICAgICAgICAgKHRoaXMubyA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCBuKSksCiAgICAgICAgICAgICAgICAodGhpcy5fY21kZiA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLl9vbWRmID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX2NvbGxhcHNhYmxlID0gdGhpcy5jaGVja0NvbGxhcHNhYmxlKCkpLAogICAgICAgICAgICAgICAgKHRoaXMuX2hhc09wYWNpdHkgPSBuKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihyKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3AgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmssIDEsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLmsgPSB0aGlzLnByb3AuayksCiAgICAgICAgICAgICAgICB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoR3JhZGllbnRQcm9wZXJ0eS5wcm90b3R5cGUuY29tcGFyZVBvaW50cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgciA9IDAsIG4gPSB0aGlzLm8ubGVuZ3RoIC8gMiwgaTsgciA8IG47KSB7CiAgICAgICAgICAgICAgICBpZiAoKChpID0gTWF0aC5hYnMoZVtyICogNF0gLSBlW3QgKiA0ICsgciAqIDJdKSksIGkgPiAwLjAxKSkKICAgICAgICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChHcmFkaWVudFByb3BlcnR5LnByb3RvdHlwZS5jaGVja0NvbGxhcHNhYmxlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuby5sZW5ndGggLyAyICE9PSB0aGlzLmMubGVuZ3RoIC8gNCkgcmV0dXJuICExOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5rLmtbMF0ucykKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZSA9IDAsIHQgPSB0aGlzLmRhdGEuay5rLmxlbmd0aDsgZSA8IHQ7KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBhcmVQb2ludHModGhpcy5kYXRhLmsua1tlXS5zLCB0aGlzLmRhdGEucCkpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAgICAgICAgICAgZSArPSAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICghdGhpcy5jb21wYXJlUG9pbnRzKHRoaXMuZGF0YS5rLmssIHRoaXMuZGF0YS5wKSkKICAgICAgICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChHcmFkaWVudFByb3BlcnR5LnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3AuZ2V0VmFsdWUoKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9jbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9vbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcC5fbWRmIHx8IGUpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuZGF0YS5wICogNCwKICAgICAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgICAgIGk7CiAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgICAgKG4gPSB0ICUgNCA9PT0gMCA/IDEwMCA6IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IE1hdGgucm91bmQodGhpcy5wcm9wLnZbdF0gKiBuKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNbdF0gIT09IGkgJiYgKCh0aGlzLmNbdF0gPSBpKSwgKHRoaXMuX2NtZGYgPSAhZSkpOwogICAgICAgICAgICAgICAgICBpZiAodGhpcy5vLmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMucHJvcC52Lmxlbmd0aCwgdCA9IHRoaXMuZGF0YS5wICogNDsKICAgICAgICAgICAgICAgICAgICAgIHQgPCByOwogICAgICAgICAgICAgICAgICAgICAgdCArPSAxCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKG4gPSB0ICUgMiA9PT0gMCA/IDEwMCA6IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAoaSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgdCAlIDIgPT09IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTWF0aC5yb3VuZCh0aGlzLnByb3Audlt0XSAqIDEwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wcm9wLnZbdF0pLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9bdCAtIHRoaXMuZGF0YS5wICogNF0gIT09IGkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLm9bdCAtIHRoaXMuZGF0YS5wICogNF0gPSBpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fb21kZiA9ICFlKSk7CiAgICAgICAgICAgICAgICAgIHRoaXMuX21kZiA9ICFlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgR3JhZGllbnRQcm9wZXJ0eSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0dyYWRpZW50RmlsbFN0eWxlRGF0YShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcyksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRHcmFkaWVudERhdGEoZSwgdCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKFNWR0dyYWRpZW50RmlsbFN0eWxlRGF0YS5wcm90b3R5cGUuaW5pdEdyYWRpZW50RGF0YSA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgcgogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAodGhpcy5vID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5vLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5zLCAxLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5lID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5lLCAxLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5oID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgIHQuaCB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy5hID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgIHQuYSB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICh0aGlzLmcgPSBuZXcgR3JhZGllbnRQcm9wZXJ0eShlLCB0LmcsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlID0gciksCiAgICAgICAgICAgICAgICAodGhpcy5zdG9wcyA9IFtdKSwKICAgICAgICAgICAgICAgIHRoaXMuc2V0R3JhZGllbnREYXRhKHIucEVsZW0sIHQpLAogICAgICAgICAgICAgICAgdGhpcy5zZXRHcmFkaWVudE9wYWNpdHkodCwgciksCiAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICEhdGhpcy5faXNBbmltYXRlZCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdHcmFkaWVudEZpbGxTdHlsZURhdGEucHJvdG90eXBlLnNldEdyYWRpZW50RGF0YSA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IGNyZWF0ZUVsZW1lbnRJRCgpLAogICAgICAgICAgICAgICAgICBuID0gY3JlYXRlTlModC50ID09PSAxID8gImxpbmVhckdyYWRpZW50IiA6ICJyYWRpYWxHcmFkaWVudCIpOwogICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoImlkIiwgciksCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJzcHJlYWRNZXRob2QiLCAicGFkIiksCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJncmFkaWVudFVuaXRzIiwgInVzZXJTcGFjZU9uVXNlIik7CiAgICAgICAgICAgICAgICB2YXIgaSA9IFtdLAogICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgICAgICBsOwogICAgICAgICAgICAgICAgZm9yIChsID0gdC5nLnAgKiA0LCBvID0gMDsgbyA8IGw7IG8gKz0gNCkKICAgICAgICAgICAgICAgICAgKGEgPSBjcmVhdGVOUygic3RvcCIpKSwgbi5hcHBlbmRDaGlsZChhKSwgaS5wdXNoKGEpOwogICAgICAgICAgICAgICAgZS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgIHQudHkgPT09ICJnZiIgPyAiZmlsbCIgOiAic3Ryb2tlIiwKICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyByICsgIikiCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAodGhpcy5nZiA9IG4pLAogICAgICAgICAgICAgICAgICAodGhpcy5jc3QgPSBpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhLnByb3RvdHlwZS5zZXRHcmFkaWVudE9wYWNpdHkgPQogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZy5faGFzT3BhY2l0eSAmJiAhdGhpcy5nLl9jb2xsYXBzYWJsZSkgewogICAgICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgICAgICBhID0gY3JlYXRlTlMoIm1hc2siKSwKICAgICAgICAgICAgICAgICAgICAgIG8gPSBjcmVhdGVOUygicGF0aCIpOwogICAgICAgICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQobyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGwgPSBjcmVhdGVFbGVtZW50SUQoKSwKICAgICAgICAgICAgICAgICAgICAgIGMgPSBjcmVhdGVFbGVtZW50SUQoKTsKICAgICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiaWQiLCBjKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdSA9IGNyZWF0ZU5TKAogICAgICAgICAgICAgICAgICAgICAgZS50ID09PSAxID8gImxpbmVhckdyYWRpZW50IiA6ICJyYWRpYWxHcmFkaWVudCIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJpZCIsIGwpLAogICAgICAgICAgICAgICAgICAgICAgdS5zZXRBdHRyaWJ1dGUoInNwcmVhZE1ldGhvZCIsICJwYWQiKSwKICAgICAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJncmFkaWVudFVuaXRzIiwgInVzZXJTcGFjZU9uVXNlIiksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IGUuZy5rLmtbMF0ucyA/IGUuZy5rLmtbMF0ucy5sZW5ndGggOiBlLmcuay5rLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLnN0b3BzOwogICAgICAgICAgICAgICAgICAgIGZvciAobiA9IGUuZy5wICogNDsgbiA8IGk7IG4gKz0gMikKICAgICAgICAgICAgICAgICAgICAgIChyID0gY3JlYXRlTlMoInN0b3AiKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHIuc2V0QXR0cmlidXRlKCJzdG9wLWNvbG9yIiwgInJnYigyNTUsMjU1LDI1NSkiKSwKICAgICAgICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChyKSwKICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHIpOwogICAgICAgICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgZS50eSA9PT0gImdmIiA/ICJmaWxsIiA6ICJzdHJva2UiLAogICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBsICsgIikiCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIGUudHkgPT09ICJncyIgJiYKICAgICAgICAgICAgICAgICAgICAgIChvLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgInN0cm9rZS1saW5lY2FwIiwKICAgICAgICAgICAgICAgICAgICAgICAgbGluZUNhcEVudW1bZS5sYyB8fCAyXQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cm9rZS1saW5lam9pbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUpvaW5FbnVtW2UubGogfHwgMl0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5saiA9PT0gMSAmJgogICAgICAgICAgICAgICAgICAgICAgICBvLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW1pdGVybGltaXQiLCBlLm1sKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5vZiA9IHUpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMubXMgPSBhKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm9zdCA9IGQpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWFza0lkID0gYyksCiAgICAgICAgICAgICAgICAgICAgICAodC5tc0VsZW0gPSBvKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgICAgW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sCiAgICAgICAgICAgICAgICBTVkdHcmFkaWVudEZpbGxTdHlsZURhdGEKICAgICAgICAgICAgICApOwogICAgICAgICAgICBmdW5jdGlvbiBTVkdHcmFkaWVudFN0cm9rZVN0eWxlRGF0YShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcyksCiAgICAgICAgICAgICAgICAodGhpcy53ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC53LCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5kID0gbmV3IERhc2hQcm9wZXJ0eShlLCB0LmQgfHwge30sICJzdmciLCB0aGlzKSksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRHcmFkaWVudERhdGEoZSwgdCwgciksCiAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICEhdGhpcy5faXNBbmltYXRlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICAgIFtTVkdHcmFkaWVudEZpbGxTdHlsZURhdGEsIER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sCiAgICAgICAgICAgICAgU1ZHR3JhZGllbnRTdHJva2VTdHlsZURhdGEKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZnVuY3Rpb24gU2hhcGVHcm91cERhdGEoKSB7CiAgICAgICAgICAgICAgKHRoaXMuaXQgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5wcmV2Vmlld0RhdGEgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5nciA9IGNyZWF0ZU5TKCJnIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR1RyYW5zZm9ybURhdGEoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybSA9IHsgbVByb3BzOiBlLCBvcDogdCwgY29udGFpbmVyOiByIH0pLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9CiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtLm1Qcm9wcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwKICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm0ub3AuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGJ1aWxkU2hhcGVTdHJpbmcgPSBmdW5jdGlvbiAodCwgciwgbiwgaSkgewogICAgICAgICAgICAgIGlmIChyID09PSAwKSByZXR1cm4gIiI7CiAgICAgICAgICAgICAgdmFyIGEgPSB0Lm8sCiAgICAgICAgICAgICAgICBvID0gdC5pLAogICAgICAgICAgICAgICAgbCA9IHQudiwKICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICB1ID0gIiBNIiArIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQobFswXVswXSwgbFswXVsxXSk7CiAgICAgICAgICAgICAgZm9yIChjID0gMTsgYyA8IHI7IGMgKz0gMSkKICAgICAgICAgICAgICAgIHUgKz0KICAgICAgICAgICAgICAgICAgIiBDIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQoYVtjIC0gMV1bMF0sIGFbYyAtIDFdWzFdKSArCiAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQob1tjXVswXSwgb1tjXVsxXSkgKwogICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICBpLmFwcGx5VG9Qb2ludFN0cmluZ2lmaWVkKGxbY11bMF0sIGxbY11bMV0pOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBuICYmCiAgICAgICAgICAgICAgICByICYmCiAgICAgICAgICAgICAgICAoKHUgKz0KICAgICAgICAgICAgICAgICAgIiBDIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQoYVtjIC0gMV1bMF0sIGFbYyAtIDFdWzFdKSArCiAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgIGkuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQob1swXVswXSwgb1swXVsxXSkgKwogICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICBpLmFwcGx5VG9Qb2ludFN0cmluZ2lmaWVkKGxbMF1bMF0sIGxbMF1bMV0pKSwKICAgICAgICAgICAgICAgICAgKHUgKz0gInoiKSksCiAgICAgICAgICAgICAgICB1CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBTVkdFbGVtZW50c1JlbmRlcmVyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgICAgICB0ID0gbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgICAgICByID0geyBjcmVhdGVSZW5kZXJGdW5jdGlvbjogbiB9OwogICAgICAgICAgICAgICAgZnVuY3Rpb24gbihFKSB7CiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoRS50eSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgImZsIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImdmIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1OwogICAgICAgICAgICAgICAgICAgIGNhc2UgImdzIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInN0IjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInNoIjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJlbCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAicmMiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgInNyIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRyIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgICAgIGNhc2UgIm5vIjoKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gaShFLCBiLCBQKSB7CiAgICAgICAgICAgICAgICAgIChQIHx8IGIudHJhbnNmb3JtLm9wLl9tZGYpICYmCiAgICAgICAgICAgICAgICAgICAgYi50cmFuc2Zvcm0uY29udGFpbmVyLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJvcGFjaXR5IiwKICAgICAgICAgICAgICAgICAgICAgIGIudHJhbnNmb3JtLm9wLnYKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIChQIHx8IGIudHJhbnNmb3JtLm1Qcm9wcy5fbWRmKSAmJgogICAgICAgICAgICAgICAgICAgIGIudHJhbnNmb3JtLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAidHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgIGIudHJhbnNmb3JtLm1Qcm9wcy52LnRvMmRDU1MoKQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhKCkgeyB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBvKEUsIGIsIFApIHsKICAgICAgICAgICAgICAgICAgdmFyIFIsCiAgICAgICAgICAgICAgICAgICAgVCwKICAgICAgICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICAgICAgIHgsCiAgICAgICAgICAgICAgICAgICAgaywKICAgICAgICAgICAgICAgICAgICBTLAogICAgICAgICAgICAgICAgICAgIEEgPSBiLnN0eWxlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgTyA9IGIubHZsLAogICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICQ7CiAgICAgICAgICAgICAgICAgIGZvciAoUyA9IDA7IFMgPCBBOyBTICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKCh4ID0gYi5zaC5fbWRmIHx8IFApLCBiLnN0eWxlc1tTXS5sdmwgPCBPKSkgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgRCA9IHQucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgSCA9IE8gLSBiLnN0eWxlc1tTXS5sdmwsCiAgICAgICAgICAgICAgICAgICAgICAgICQgPSBiLnRyYW5zZm9ybWVycy5sZW5ndGggLSAxOwogICAgICAgICAgICAgICAgICAgICAgICAheCAmJiBIID4gMDsKCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICh4ID0gYi50cmFuc2Zvcm1lcnNbJF0ubVByb3BzLl9tZGYgfHwgeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEggLT0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCQgLT0gMSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICBIID0gTyAtIGIuc3R5bGVzW1NdLmx2bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAkID0gYi50cmFuc2Zvcm1lcnMubGVuZ3RoIC0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICBIID4gMDsKCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICBELm11bHRpcGx5KGIudHJhbnNmb3JtZXJzWyRdLm1Qcm9wcy52KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChIIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCQgLT0gMSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIEQgPSBlOwogICAgICAgICAgICAgICAgICAgIGlmICgoKEYgPSBiLnNoLnBhdGhzKSwgKFQgPSBGLl9sZW5ndGgpLCB4KSkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChNID0gIiIsIFIgPSAwOyBSIDwgVDsgUiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoayA9IEYuc2hhcGVzW1JdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBrICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgay5fbGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gKz0gYnVpbGRTaGFwZVN0cmluZyhrLCBrLl9sZW5ndGgsIGsuYywgRCkpOwogICAgICAgICAgICAgICAgICAgICAgYi5jYWNoZXNbU10gPSBNOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBNID0gYi5jYWNoZXNbU107CiAgICAgICAgICAgICAgICAgICAgKGIuc3R5bGVzW1NdLmQgKz0gRS5oZCA9PT0gITAgPyAiIiA6IE0pLAogICAgICAgICAgICAgICAgICAgICAgKGIuc3R5bGVzW1NdLl9tZGYgPSB4IHx8IGIuc3R5bGVzW1NdLl9tZGYpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBsKEUsIGIsIFApIHsKICAgICAgICAgICAgICAgICAgdmFyIFIgPSBiLnN0eWxlOwogICAgICAgICAgICAgICAgICAoYi5jLl9tZGYgfHwgUCkgJiYKICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJmaWxsIiwKICAgICAgICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgICAgICBibUZsb29yKGIuYy52WzBdKSArCiAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihiLmMudlsxXSkgKwogICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgIGJtRmxvb3IoYi5jLnZbMl0pICsKICAgICAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKGIuby5fbWRmIHx8IFApICYmCiAgICAgICAgICAgICAgICAgICAgUi5wRWxlbS5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIsIGIuby52KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGMoRSwgYiwgUCkgewogICAgICAgICAgICAgICAgICB1KEUsIGIsIFApLCBkKEUsIGIsIFApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gdShFLCBiLCBQKSB7CiAgICAgICAgICAgICAgICAgIHZhciBSID0gYi5nZiwKICAgICAgICAgICAgICAgICAgICBUID0gYi5nLl9oYXNPcGFjaXR5LAogICAgICAgICAgICAgICAgICAgIE0gPSBiLnMudiwKICAgICAgICAgICAgICAgICAgICB4ID0gYi5lLnY7CiAgICAgICAgICAgICAgICAgIGlmIChiLm8uX21kZiB8fCBQKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGsgPSBFLnR5ID09PSAiZ2YiID8gImZpbGwtb3BhY2l0eSIgOiAic3Ryb2tlLW9wYWNpdHkiOwogICAgICAgICAgICAgICAgICAgIGIuc3R5bGUucEVsZW0uc2V0QXR0cmlidXRlKGssIGIuby52KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoYi5zLl9tZGYgfHwgUCkgewogICAgICAgICAgICAgICAgICAgIHZhciBTID0gRS50ID09PSAxID8gIngxIiA6ICJjeCIsCiAgICAgICAgICAgICAgICAgICAgICBBID0gUyA9PT0gIngxIiA/ICJ5MSIgOiAiY3kiOwogICAgICAgICAgICAgICAgICAgIFIuc2V0QXR0cmlidXRlKFMsIE1bMF0pLAogICAgICAgICAgICAgICAgICAgICAgUi5zZXRBdHRyaWJ1dGUoQSwgTVsxXSksCiAgICAgICAgICAgICAgICAgICAgICBUICYmCiAgICAgICAgICAgICAgICAgICAgICAhYi5nLl9jb2xsYXBzYWJsZSAmJgogICAgICAgICAgICAgICAgICAgICAgKGIub2Yuc2V0QXR0cmlidXRlKFMsIE1bMF0pLAogICAgICAgICAgICAgICAgICAgICAgICBiLm9mLnNldEF0dHJpYnV0ZShBLCBNWzFdKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIE8sIEYsIEQsIEg7CiAgICAgICAgICAgICAgICAgIGlmIChiLmcuX2NtZGYgfHwgUCkgewogICAgICAgICAgICAgICAgICAgIE8gPSBiLmNzdDsKICAgICAgICAgICAgICAgICAgICB2YXIgJCA9IGIuZy5jOwogICAgICAgICAgICAgICAgICAgIGZvciAoRCA9IE8ubGVuZ3RoLCBGID0gMDsgRiA8IEQ7IEYgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChIID0gT1tGXSksCiAgICAgICAgICAgICAgICAgICAgICAgIEguc2V0QXR0cmlidXRlKCJvZmZzZXQiLCAkW0YgKiA0XSArICIlIiksCiAgICAgICAgICAgICAgICAgICAgICAgIEguc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICJzdG9wLWNvbG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAicmdiKCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICRbRiAqIDQgKyAxXSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAkW0YgKiA0ICsgMl0gKwogICAgICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgJFtGICogNCArIDNdICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoVCAmJiAoYi5nLl9vbWRmIHx8IFApKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHEgPSBiLmcubzsKICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgYi5nLl9jb2xsYXBzYWJsZSA/IChPID0gYi5jc3QpIDogKE8gPSBiLm9zdCksCiAgICAgICAgICAgICAgICAgICAgICBEID0gTy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICBGID0gMDsKICAgICAgICAgICAgICAgICAgICAgIEYgPCBEOwogICAgICAgICAgICAgICAgICAgICAgRiArPSAxCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgKEggPSBPW0ZdKSwKICAgICAgICAgICAgICAgICAgICAgICAgYi5nLl9jb2xsYXBzYWJsZSB8fAogICAgICAgICAgICAgICAgICAgICAgICBILnNldEF0dHJpYnV0ZSgib2Zmc2V0IiwgcVtGICogMl0gKyAiJSIpLAogICAgICAgICAgICAgICAgICAgICAgICBILnNldEF0dHJpYnV0ZSgic3RvcC1vcGFjaXR5IiwgcVtGICogMiArIDFdKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoRS50ID09PSAxKQogICAgICAgICAgICAgICAgICAgIChiLmUuX21kZiB8fCBQKSAmJgogICAgICAgICAgICAgICAgICAgICAgKFIuc2V0QXR0cmlidXRlKCJ4MiIsIHhbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICBSLnNldEF0dHJpYnV0ZSgieTIiLCB4WzFdKSwKICAgICAgICAgICAgICAgICAgICAgICAgVCAmJgogICAgICAgICAgICAgICAgICAgICAgICAhYi5nLl9jb2xsYXBzYWJsZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoYi5vZi5zZXRBdHRyaWJ1dGUoIngyIiwgeFswXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYi5vZi5zZXRBdHRyaWJ1dGUoInkyIiwgeFsxXSkpKTsKICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIEo7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKChiLnMuX21kZiB8fCBiLmUuX21kZiB8fCBQKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKEogPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coTVswXSAtIHhbMF0sIDIpICsgTWF0aC5wb3coTVsxXSAtIHhbMV0sIDIpCiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFIuc2V0QXR0cmlidXRlKCJyIiwgSiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgVCAmJiAhYi5nLl9jb2xsYXBzYWJsZSAmJiBiLm9mLnNldEF0dHJpYnV0ZSgiciIsIEopKSwKICAgICAgICAgICAgICAgICAgICAgICAgYi5lLl9tZGYgfHwgYi5oLl9tZGYgfHwgYi5hLl9tZGYgfHwgUCkKICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgIEogfHwKICAgICAgICAgICAgICAgICAgICAgICAgKEogPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coTVswXSAtIHhbMF0sIDIpICsgTWF0aC5wb3coTVsxXSAtIHhbMV0sIDIpCiAgICAgICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICAgICAgdmFyIEsgPSBNYXRoLmF0YW4yKHhbMV0gLSBNWzFdLCB4WzBdIC0gTVswXSksCiAgICAgICAgICAgICAgICAgICAgICAgIGVlID0gYi5oLnY7CiAgICAgICAgICAgICAgICAgICAgICBlZSA+PSAxID8gKGVlID0gMC45OSkgOiBlZSA8PSAtMSAmJiAoZWUgPSAtMC45OSk7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgbGUgPSBKICogZWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlID0gTWF0aC5jb3MoSyArIGIuYS52KSAqIGxlICsgTVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgQiA9IE1hdGguc2luKEsgKyBiLmEudikgKiBsZSArIE1bMV07CiAgICAgICAgICAgICAgICAgICAgICBSLnNldEF0dHJpYnV0ZSgiZngiLCByZSksCiAgICAgICAgICAgICAgICAgICAgICAgIFIuc2V0QXR0cmlidXRlKCJmeSIsIEIpLAogICAgICAgICAgICAgICAgICAgICAgICBUICYmCiAgICAgICAgICAgICAgICAgICAgICAgICFiLmcuX2NvbGxhcHNhYmxlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChiLm9mLnNldEF0dHJpYnV0ZSgiZngiLCByZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYi5vZi5zZXRBdHRyaWJ1dGUoImZ5IiwgQikpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZChFLCBiLCBQKSB7CiAgICAgICAgICAgICAgICAgIHZhciBSID0gYi5zdHlsZSwKICAgICAgICAgICAgICAgICAgICBUID0gYi5kOwogICAgICAgICAgICAgICAgICBUICYmCiAgICAgICAgICAgICAgICAgICAgKFQuX21kZiB8fCBQKSAmJgogICAgICAgICAgICAgICAgICAgIFQuZGFzaFN0ciAmJgogICAgICAgICAgICAgICAgICAgIChSLnBFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWRhc2hhcnJheSIsIFQuZGFzaFN0ciksCiAgICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWRhc2hvZmZzZXQiLCBULmRhc2hvZmZzZXRbMF0pKSwKICAgICAgICAgICAgICAgICAgICBiLmMgJiYKICAgICAgICAgICAgICAgICAgICAoYi5jLl9tZGYgfHwgUCkgJiYKICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJzdHJva2UiLAogICAgICAgICAgICAgICAgICAgICAgInJnYigiICsKICAgICAgICAgICAgICAgICAgICAgIGJtRmxvb3IoYi5jLnZbMF0pICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICBibUZsb29yKGIuYy52WzFdKSArCiAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihiLmMudlsyXSkgKwogICAgICAgICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAoYi5vLl9tZGYgfHwgUCkgJiYKICAgICAgICAgICAgICAgICAgICBSLnBFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW9wYWNpdHkiLCBiLm8udiksCiAgICAgICAgICAgICAgICAgICAgKGIudy5fbWRmIHx8IFApICYmCiAgICAgICAgICAgICAgICAgICAgKFIucEVsZW0uc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCBiLncudiksCiAgICAgICAgICAgICAgICAgICAgICBSLm1zRWxlbSAmJiBSLm1zRWxlbS5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIGIudy52KSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcjsKICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICBmdW5jdGlvbiBTVkdTaGFwZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLnNoYXBlcyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc0RhdGEgPSBlLnNoYXBlcyksCiAgICAgICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0ID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuc2hhcGVNb2RpZmllcnMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5pdGVtc0RhdGEgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9jZXNzZWRFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGVkQ29udGVudHMgPSBbXSksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpLAogICAgICAgICAgICAgICAgKHRoaXMucHJldlZpZXdEYXRhID0gW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICBCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIFRyYW5zZm9ybUVsZW1lbnQsCiAgICAgICAgICAgICAgICBTVkdCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIElTaGFwZUVsZW1lbnQsCiAgICAgICAgICAgICAgICBIaWVyYXJjaHlFbGVtZW50LAogICAgICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICAgICAgUmVuZGVyYWJsZURPTUVsZW1lbnQsCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICBTVkdTaGFwZUVsZW1lbnQKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5pbml0U2Vjb25kYXJ5RWxlbWVudCA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuaWRlbnRpdHlNYXRyaXggPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmJ1aWxkRXhwcmVzc2lvbkludGVyZmFjZSA9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFNoYXBlcygKICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZXNEYXRhLAogICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zRGF0YSwKICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2Vmlld0RhdGEsCiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyVW5pcXVlU2hhcGVzKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuZmlsdGVyVW5pcXVlU2hhcGVzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLnN0eWxlc0xpc3QubGVuZ3RoLAogICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICBvID0gW10sCiAgICAgICAgICAgICAgICAgIGwgPSAhMTsKICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBhID0gdGhpcy5zdHlsZXNMaXN0W25dLCBsID0gITEsIG8ubGVuZ3RoID0gMCwgZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgZSA8IHQ7CiAgICAgICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAociA9IHRoaXMuc2hhcGVzW2VdKSwKICAgICAgICAgICAgICAgICAgICAgIHIuc3R5bGVzLmluZGV4T2YoYSkgIT09IC0xICYmCiAgICAgICAgICAgICAgICAgICAgICAoby5wdXNoKHIpLCAobCA9IHIuX2lzQW5pbWF0ZWQgfHwgbCkpOwogICAgICAgICAgICAgICAgICBvLmxlbmd0aCA+IDEgJiYgbCAmJiB0aGlzLnNldFNoYXBlc0FzQW5pbWF0ZWQobyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuc2V0U2hhcGVzQXNBbmltYXRlZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgZVt0XS5zZXRBc0FuaW1hdGVkKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU3R5bGVFbGVtZW50ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICBuID0gbmV3IFNWR1N0eWxlRGF0YShlLCB0KSwKICAgICAgICAgICAgICAgICAgaSA9IG4ucEVsZW07CiAgICAgICAgICAgICAgICBpZiAoZS50eSA9PT0gInN0IikgciA9IG5ldyBTVkdTdHJva2VTdHlsZURhdGEodGhpcywgZSwgbik7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChlLnR5ID09PSAiZmwiKSByID0gbmV3IFNWR0ZpbGxTdHlsZURhdGEodGhpcywgZSwgbik7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChlLnR5ID09PSAiZ2YiIHx8IGUudHkgPT09ICJncyIpIHsKICAgICAgICAgICAgICAgICAgdmFyIGEgPQogICAgICAgICAgICAgICAgICAgIGUudHkgPT09ICJnZiIKICAgICAgICAgICAgICAgICAgICAgID8gU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhCiAgICAgICAgICAgICAgICAgICAgICA6IFNWR0dyYWRpZW50U3Ryb2tlU3R5bGVEYXRhOwogICAgICAgICAgICAgICAgICAociA9IG5ldyBhKHRoaXMsIGUsIG4pKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChyLmdmKSwKICAgICAgICAgICAgICAgICAgICByLm1hc2tJZCAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChyLm1zKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKHIub2YpLAogICAgICAgICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICJtYXNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyByLm1hc2tJZCArICIpIgogICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgZS50eSA9PT0gIm5vIiAmJiAociA9IG5ldyBTVkdOb1N0eWxlRGF0YSh0aGlzLCBlLCBuKSk7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoZS50eSA9PT0gInN0IiB8fCBlLnR5ID09PSAiZ3MiKSAmJgogICAgICAgICAgICAgICAgICAoaS5zZXRBdHRyaWJ1dGUoInN0cm9rZS1saW5lY2FwIiwgbGluZUNhcEVudW1bZS5sYyB8fCAyXSksCiAgICAgICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoInN0cm9rZS1saW5lam9pbiIsIGxpbmVKb2luRW51bVtlLmxqIHx8IDJdKSwKICAgICAgICAgICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICBlLmxqID09PSAxICYmIGkuc2V0QXR0cmlidXRlKCJzdHJva2UtbWl0ZXJsaW1pdCIsIGUubWwpKSwKICAgICAgICAgICAgICAgICAgZS5yID09PSAyICYmIGkuc2V0QXR0cmlidXRlKCJmaWxsLXJ1bGUiLCAiZXZlbm9kZCIpLAogICAgICAgICAgICAgICAgICBlLmxuICYmIGkuc2V0QXR0cmlidXRlKCJpZCIsIGUubG4pLAogICAgICAgICAgICAgICAgICBlLmNsICYmIGkuc2V0QXR0cmlidXRlKCJjbGFzcyIsIGUuY2wpLAogICAgICAgICAgICAgICAgICBlLmJtICYmIChpLnN0eWxlWyJtaXgtYmxlbmQtbW9kZSJdID0gZ2V0QmxlbmRNb2RlKGUuYm0pKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0LnB1c2gobiksCiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9BbmltYXRlZENvbnRlbnRzKGUsIHIpLAogICAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUdyb3VwRWxlbWVudCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IG5ldyBTaGFwZUdyb3VwRGF0YSgpOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgZS5sbiAmJiB0LmdyLnNldEF0dHJpYnV0ZSgiaWQiLCBlLmxuKSwKICAgICAgICAgICAgICAgICAgZS5jbCAmJiB0LmdyLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCBlLmNsKSwKICAgICAgICAgICAgICAgICAgZS5ibSAmJiAodC5nci5zdHlsZVsibWl4LWJsZW5kLW1vZGUiXSA9IGdldEJsZW5kTW9kZShlLmJtKSksCiAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlVHJhbnNmb3JtRWxlbWVudCA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgciA9IFRyYW5zZm9ybVByb3BlcnR5RmFjdG9yeS5nZXRUcmFuc2Zvcm1Qcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgbiA9IG5ldyBTVkdUcmFuc2Zvcm1EYXRhKHIsIHIubywgdCk7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hZGRUb0FuaW1hdGVkQ29udGVudHMoZSwgbiksIG47CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU2hhcGVFbGVtZW50ID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgbiA9IDQ7CiAgICAgICAgICAgICAgICBlLnR5ID09PSAicmMiCiAgICAgICAgICAgICAgICAgID8gKG4gPSA1KQogICAgICAgICAgICAgICAgICA6IGUudHkgPT09ICJlbCIKICAgICAgICAgICAgICAgICAgICA/IChuID0gNikKICAgICAgICAgICAgICAgICAgICA6IGUudHkgPT09ICJzciIgJiYgKG4gPSA3KTsKICAgICAgICAgICAgICAgIHZhciBpID0gU2hhcGVQcm9wZXJ0eUZhY3RvcnkuZ2V0U2hhcGVQcm9wKHRoaXMsIGUsIG4sIHRoaXMpLAogICAgICAgICAgICAgICAgICBhID0gbmV3IFNWR1NoYXBlRGF0YSh0LCByLCBpKTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVzLnB1c2goYSksCiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU2hhcGVUb01vZGlmaWVycyhhKSwKICAgICAgICAgICAgICAgICAgdGhpcy5hZGRUb0FuaW1hdGVkQ29udGVudHMoZSwgYSksCiAgICAgICAgICAgICAgICAgIGEKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuYWRkVG9BbmltYXRlZENvbnRlbnRzID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBuID0gdGhpcy5hbmltYXRlZENvbnRlbnRzLmxlbmd0aDsgciA8IG47KSB7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGVkQ29udGVudHNbcl0uZWxlbWVudCA9PT0gdCkgcmV0dXJuOwogICAgICAgICAgICAgICAgICByICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGVkQ29udGVudHMucHVzaCh7CiAgICAgICAgICAgICAgICAgIGZuOiBTVkdFbGVtZW50c1JlbmRlcmVyLmNyZWF0ZVJlbmRlckZ1bmN0aW9uKGUpLAogICAgICAgICAgICAgICAgICBlbGVtZW50OiB0LAogICAgICAgICAgICAgICAgICBkYXRhOiBlLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuc2V0RWxlbWVudFN0eWxlcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IGUuc3R5bGVzLAogICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICBuID0gdGhpcy5zdHlsZXNMaXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzTGlzdFtyXS5jbG9zZWQgfHwgdC5wdXNoKHRoaXMuc3R5bGVzTGlzdFtyXSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUucmVsb2FkU2hhcGVzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lID0gITA7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMuaXRlbXNEYXRhLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMucHJldlZpZXdEYXRhW2VdID0gdGhpcy5pdGVtc0RhdGFbZV07CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFNoYXBlcygKICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2Vmlld0RhdGEsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclVuaXF1ZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGUgPSAwOwogICAgICAgICAgICAgICAgICBlIDwgdDsKICAgICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbZV0uZ2V0VmFsdWUoKTsKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTW9kaWZpZXJzKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuc2VhcmNoU2hhcGVzID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgbwogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIGwgPSBbXS5jb25jYXQoYSksCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUgPSBlLmxlbmd0aCAtIDEsCiAgICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICAgIEUsCiAgICAgICAgICAgICAgICAgIGIgPSBbXSwKICAgICAgICAgICAgICAgICAgUCA9IFtdLAogICAgICAgICAgICAgICAgICBSLAogICAgICAgICAgICAgICAgICBULAogICAgICAgICAgICAgICAgICBNOwogICAgICAgICAgICAgICAgZm9yIChjID0gdTsgYyA+PSAwOyBjIC09IDEpIHsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICgoTSA9IHRoaXMuc2VhcmNoUHJvY2Vzc2VkRWxlbWVudChlW2NdKSksCiAgICAgICAgICAgICAgICAgICAgICBNID8gKHRbY10gPSByW00gLSAxXSkgOiAoZVtjXS5fcmVuZGVyID0gbyksCiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAiZmwiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAic3QiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAiZ2YiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAiZ3MiIHx8CiAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAibm8iKQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTQogICAgICAgICAgICAgICAgICAgICAgPyAodFtjXS5zdHlsZS5jbG9zZWQgPSAhMSkKICAgICAgICAgICAgICAgICAgICAgIDogKHRbY10gPSB0aGlzLmNyZWF0ZVN0eWxlRWxlbWVudChlW2NdLCBpKSksCiAgICAgICAgICAgICAgICAgICAgICBlW2NdLl9yZW5kZXIgJiYKICAgICAgICAgICAgICAgICAgICAgIHRbY10uc3R5bGUucEVsZW0ucGFyZW50Tm9kZSAhPT0gbiAmJgogICAgICAgICAgICAgICAgICAgICAgbi5hcHBlbmRDaGlsZCh0W2NdLnN0eWxlLnBFbGVtKSwKICAgICAgICAgICAgICAgICAgICAgIGIucHVzaCh0W2NdLnN0eWxlKTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZVtjXS50eSA9PT0gImdyIikgewogICAgICAgICAgICAgICAgICAgIGlmICghTSkgdFtjXSA9IHRoaXMuY3JlYXRlR3JvdXBFbGVtZW50KGVbY10pOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgIGZvciAoRSA9IHRbY10uaXQubGVuZ3RoLCBkID0gMDsgZCA8IEU7IGQgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgdFtjXS5wcmV2Vmlld0RhdGFbZF0gPSB0W2NdLml0W2RdOwogICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoU2hhcGVzKAogICAgICAgICAgICAgICAgICAgICAgZVtjXS5pdCwKICAgICAgICAgICAgICAgICAgICAgIHRbY10uaXQsCiAgICAgICAgICAgICAgICAgICAgICB0W2NdLnByZXZWaWV3RGF0YSwKICAgICAgICAgICAgICAgICAgICAgIHRbY10uZ3IsCiAgICAgICAgICAgICAgICAgICAgICBpICsgMSwKICAgICAgICAgICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgICAgICAgICBvCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIGVbY10uX3JlbmRlciAmJgogICAgICAgICAgICAgICAgICAgICAgdFtjXS5nci5wYXJlbnROb2RlICE9PSBuICYmCiAgICAgICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKHRbY10uZ3IpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAidHIiCiAgICAgICAgICAgICAgICAgICAgICA/IChNIHx8ICh0W2NdID0gdGhpcy5jcmVhdGVUcmFuc2Zvcm1FbGVtZW50KGVbY10sIG4pKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSB0W2NdLnRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICAgICAgICAgIGwucHVzaChSKSkKICAgICAgICAgICAgICAgICAgICAgIDogZVtjXS50eSA9PT0gInNoIiB8fAogICAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAicmMiIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIGVbY10udHkgPT09ICJlbCIgfHwKICAgICAgICAgICAgICAgICAgICAgICAgZVtjXS50eSA9PT0gInNyIgogICAgICAgICAgICAgICAgICAgICAgICA/IChNIHx8ICh0W2NdID0gdGhpcy5jcmVhdGVTaGFwZUVsZW1lbnQoZVtjXSwgbCwgaSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RWxlbWVudFN0eWxlcyh0W2NdKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBlW2NdLnR5ID09PSAidG0iIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgZVtjXS50eSA9PT0gInJkIiB8fAogICAgICAgICAgICAgICAgICAgICAgICAgIGVbY10udHkgPT09ICJtcyIgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICBlW2NdLnR5ID09PSAicGIiIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgZVtjXS50eSA9PT0gInp6IiB8fAogICAgICAgICAgICAgICAgICAgICAgICAgIGVbY10udHkgPT09ICJvcCIKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoVCA9IHRbY10pLCAoVC5jbG9zZWQgPSAhMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoVCA9IFNoYXBlTW9kaWZpZXJzLmdldE1vZGlmaWVyKGVbY10udHkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVC5pbml0KHRoaXMsIGVbY10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodFtjXSA9IFQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlTW9kaWZpZXJzLnB1c2goVCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUC5wdXNoKFQpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogZVtjXS50eSA9PT0gInJwIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIChNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoVCA9IHRbY10pLCAoVC5jbG9zZWQgPSAhMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoVCA9IFNoYXBlTW9kaWZpZXJzLmdldE1vZGlmaWVyKGVbY10udHkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRbY10gPSBUKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVC5pbml0KHRoaXMsIGUsIGMsIHQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlTW9kaWZpZXJzLnB1c2goVCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvID0gITEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAucHVzaChUKSk7CiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkUHJvY2Vzc2VkRWxlbWVudChlW2NdLCBjICsgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgKHUgPSBiLmxlbmd0aCwgYyA9IDA7IGMgPCB1OyBjICs9IDEpIGJbY10uY2xvc2VkID0gITA7CiAgICAgICAgICAgICAgICBmb3IgKHUgPSBQLmxlbmd0aCwgYyA9IDA7IGMgPCB1OyBjICs9IDEpIFBbY10uY2xvc2VkID0gITA7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVySW5uZXJDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJNb2RpZmllcnMoKTsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy5zdHlsZXNMaXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMuc3R5bGVzTGlzdFtlXS5yZXNldCgpOwogICAgICAgICAgICAgICAgZm9yICh0aGlzLnJlbmRlclNoYXBlKCksIGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0W2VdLl9tZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlc0xpc3RbZV0ubXNFbGVtICYmCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0W2VdLm1zRWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICJkIiwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0W2VdLmQKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlc0xpc3RbZV0uZCA9ICJNMCAwIiArIHRoaXMuc3R5bGVzTGlzdFtlXS5kKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0eWxlc0xpc3RbZV0ucEVsZW0uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAiZCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzTGlzdFtlXS5kIHx8ICJNMCAwIgogICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVyU2hhcGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMuYW5pbWF0ZWRDb250ZW50cy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHI7CiAgICAgICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgICAgICAociA9IHRoaXMuYW5pbWF0ZWRDb250ZW50c1tlXSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSB8fCByLmVsZW1lbnQuX2lzQW5pbWF0ZWQpICYmCiAgICAgICAgICAgICAgICAgICAgci5kYXRhICE9PSAhMCAmJgogICAgICAgICAgICAgICAgICAgIHIuZm4oci5kYXRhLCByLmVsZW1lbnQsIHRoaXMuX2lzRmlyc3RGcmFtZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveUJhc2VFbGVtZW50KCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc0RhdGEgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXRlbXNEYXRhID0gbnVsbCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIExldHRlclByb3BzKGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgICAgICAgICAodGhpcy5vID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5zdyA9IHQpLAogICAgICAgICAgICAgICAgKHRoaXMuc2MgPSByKSwKICAgICAgICAgICAgICAgICh0aGlzLmZjID0gbiksCiAgICAgICAgICAgICAgICAodGhpcy5tID0gaSksCiAgICAgICAgICAgICAgICAodGhpcy5wID0gYSksCiAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gewogICAgICAgICAgICAgICAgICBvOiAhMCwKICAgICAgICAgICAgICAgICAgc3c6ICEhdCwKICAgICAgICAgICAgICAgICAgc2M6ICEhciwKICAgICAgICAgICAgICAgICAgZmM6ICEhbiwKICAgICAgICAgICAgICAgICAgbTogITAsCiAgICAgICAgICAgICAgICAgIHA6ICEwLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgTGV0dGVyUHJvcHMucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChlLCB0LCByLCBuLCBpLCBhKSB7CiAgICAgICAgICAgICAgKHRoaXMuX21kZi5vID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZi5zdyA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYuc2MgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5fbWRmLmZjID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZi5tID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZi5wID0gITEpOwogICAgICAgICAgICAgIHZhciBvID0gITE7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHRoaXMubyAhPT0gZSAmJiAoKHRoaXMubyA9IGUpLCAodGhpcy5fbWRmLm8gPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMuc3cgIT09IHQgJiYgKCh0aGlzLnN3ID0gdCksICh0aGlzLl9tZGYuc3cgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMuc2MgIT09IHIgJiYgKCh0aGlzLnNjID0gciksICh0aGlzLl9tZGYuc2MgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMuZmMgIT09IG4gJiYgKCh0aGlzLmZjID0gbiksICh0aGlzLl9tZGYuZmMgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIHRoaXMubSAhPT0gaSAmJiAoKHRoaXMubSA9IGkpLCAodGhpcy5fbWRmLm0gPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAgIGEubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAodGhpcy5wWzBdICE9PSBhWzBdIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMucFsxXSAhPT0gYVsxXSB8fAogICAgICAgICAgICAgICAgICB0aGlzLnBbNF0gIT09IGFbNF0gfHwKICAgICAgICAgICAgICAgICAgdGhpcy5wWzVdICE9PSBhWzVdIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMucFsxMl0gIT09IGFbMTJdIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMucFsxM10gIT09IGFbMTNdKSAmJgogICAgICAgICAgICAgICAgKCh0aGlzLnAgPSBhKSwgKHRoaXMuX21kZi5wID0gITApLCAobyA9ICEwKSksCiAgICAgICAgICAgICAgICBvCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gVGV4dFByb3BlcnR5KGUsIHQpIHsKICAgICAgICAgICAgICAodGhpcy5fZnJhbWVJZCA9IGluaXRpYWxEZWZhdWx0RnJhbWUpLAogICAgICAgICAgICAgICAgKHRoaXMucHYgPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy52ID0gIiIpLAogICAgICAgICAgICAgICAgKHRoaXMua2YgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAgIHQuZCAmJiB0LmQuc2lkICYmICh0LmQgPSBlLmdsb2JhbERhdGEuc2xvdE1hbmFnZXIuZ2V0UHJvcCh0LmQpKSwKICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSB0aGlzLmVsZW0uY29tcCksCiAgICAgICAgICAgICAgICAodGhpcy5rZXlzSW5kZXggPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmNhblJlc2l6ZSA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLm1pbmltdW1Gb250U2l6ZSA9IDEpLAogICAgICAgICAgICAgICAgKHRoaXMuZWZmZWN0c1NlcXVlbmNlID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudERhdGEgPSB7CiAgICAgICAgICAgICAgICAgIGFzY2VudDogMCwKICAgICAgICAgICAgICAgICAgYm94V2lkdGg6IHRoaXMuZGVmYXVsdEJveFdpZHRoLAogICAgICAgICAgICAgICAgICBmOiAiIiwKICAgICAgICAgICAgICAgICAgZlN0eWxlOiAiIiwKICAgICAgICAgICAgICAgICAgZldlaWdodDogIiIsCiAgICAgICAgICAgICAgICAgIGZjOiAiIiwKICAgICAgICAgICAgICAgICAgajogIiIsCiAgICAgICAgICAgICAgICAgIGp1c3RpZnlPZmZzZXQ6ICIiLAogICAgICAgICAgICAgICAgICBsOiBbXSwKICAgICAgICAgICAgICAgICAgbGg6IDAsCiAgICAgICAgICAgICAgICAgIGxpbmVXaWR0aHM6IFtdLAogICAgICAgICAgICAgICAgICBsczogIiIsCiAgICAgICAgICAgICAgICAgIG9mOiAiIiwKICAgICAgICAgICAgICAgICAgczogIiIsCiAgICAgICAgICAgICAgICAgIHNjOiAiIiwKICAgICAgICAgICAgICAgICAgc3c6IDAsCiAgICAgICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgICAgIHRyOiAwLAogICAgICAgICAgICAgICAgICBzejogMCwKICAgICAgICAgICAgICAgICAgcHM6IG51bGwsCiAgICAgICAgICAgICAgICAgIGZpbGxDb2xvckFuaW06ICExLAogICAgICAgICAgICAgICAgICBzdHJva2VDb2xvckFuaW06ICExLAogICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aEFuaW06ICExLAogICAgICAgICAgICAgICAgICB5T2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgICBmaW5hbFNpemU6IDAsCiAgICAgICAgICAgICAgICAgIGZpbmFsVGV4dDogW10sCiAgICAgICAgICAgICAgICAgIGZpbmFsTGluZUhlaWdodDogMCwKICAgICAgICAgICAgICAgICAgX19jb21wbGV0ZTogITEsCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHRoaXMuY29weURhdGEodGhpcy5jdXJyZW50RGF0YSwgdGhpcy5kYXRhLmQua1swXS5zKSwKICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUHJvcGVydHkoKSB8fAogICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZVRleHREYXRhKHRoaXMuY3VycmVudERhdGEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmRlZmF1bHRCb3hXaWR0aCA9IFswLCAwXSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuY29weURhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgciBpbiB0KQogICAgICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgcikgJiYgKGVbcl0gPSB0W3JdKTsKICAgICAgICAgICAgICAgIHJldHVybiBlOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNldEN1cnJlbnREYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIGUuX19jb21wbGV0ZSB8fCB0aGlzLmNvbXBsZXRlVGV4dERhdGEoZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnREYXRhID0gZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnREYXRhLmJveFdpZHRoID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnREYXRhLmJveFdpZHRoIHx8IHRoaXMuZGVmYXVsdEJveFdpZHRoKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoVGV4dFByb3BlcnR5LnByb3RvdHlwZS5zZWFyY2hQcm9wZXJ0eSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEtleWZyYW1lcygpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNlYXJjaEtleWZyYW1lcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICh0aGlzLmtmID0gdGhpcy5kYXRhLmQuay5sZW5ndGggPiAxKSwKICAgICAgICAgICAgICAgICAgdGhpcy5rZiAmJiB0aGlzLmFkZEVmZmVjdCh0aGlzLmdldEtleWZyYW1lVmFsdWUuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAgIHRoaXMua2YKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuYWRkRWZmZWN0ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLnB1c2goZSksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0VmFsdWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAhKAogICAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkID09PSB0aGlzLmZyYW1lSWQgfHwKICAgICAgICAgICAgICAgICAgICAgICF0aGlzLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgpICYmCiAgICAgICAgICAgICAgICAgICAgIWUKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudERhdGEudCA9IHRoaXMuZGF0YS5kLmtbdGhpcy5rZXlzSW5kZXhdLnMudDsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmN1cnJlbnREYXRhLAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmtleXNJbmRleDsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jaykgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudERhdGEodGhpcy5jdXJyZW50RGF0YSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMCksICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICAgICAgICAgIHZhciBuLAogICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgYSA9IGUgfHwgdGhpcy5kYXRhLmQua1t0aGlzLmtleXNJbmRleF0uczsKICAgICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkKICAgICAgICAgICAgICAgICAgICByICE9PSB0aGlzLmtleXNJbmRleAogICAgICAgICAgICAgICAgICAgICAgPyAoYSA9IHRoaXMuZWZmZWN0c1NlcXVlbmNlW25dKGEsIGEudCkpCiAgICAgICAgICAgICAgICAgICAgICA6IChhID0gdGhpcy5lZmZlY3RzU2VxdWVuY2Vbbl0odGhpcy5jdXJyZW50RGF0YSwgYS50KSk7CiAgICAgICAgICAgICAgICAgIHQgIT09IGEgJiYgdGhpcy5zZXRDdXJyZW50RGF0YShhKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy52ID0gdGhpcy5jdXJyZW50RGF0YSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMucHYgPSB0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmxvY2sgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmdldEtleWZyYW1lVmFsdWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMuZGF0YS5kLmssCiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLmVsZW0uY29tcC5yZW5kZXJlZEZyYW1lLAogICAgICAgICAgICAgICAgICByID0gMCwKICAgICAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgICByIDw9IG4gLSAxICYmICEociA9PT0gbiAtIDEgfHwgZVtyICsgMV0udCA+IHQpOwoKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgdGhpcy5rZXlzSW5kZXggIT09IHIgJiYgKHRoaXMua2V5c0luZGV4ID0gciksCiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5kLmtbdGhpcy5rZXlzSW5kZXhdLnMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuYnVpbGRGaW5hbFRleHQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdmFyIHQgPSBbXSwgciA9IDAsIG4gPSBlLmxlbmd0aCwgaSwgYSwgbyA9ICExLCBsID0gITEsIGMgPSAiIjsKICAgICAgICAgICAgICAgICAgciA8IG47CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAobyA9IGwpLAogICAgICAgICAgICAgICAgICAgIChsID0gITEpLAogICAgICAgICAgICAgICAgICAgIChpID0gZS5jaGFyQ29kZUF0KHIpKSwKICAgICAgICAgICAgICAgICAgICAoYyA9IGUuY2hhckF0KHIpKSwKICAgICAgICAgICAgICAgICAgICBGb250TWFuYWdlci5pc0NvbWJpbmVkQ2hhcmFjdGVyKGkpCiAgICAgICAgICAgICAgICAgICAgICA/IChvID0gITApCiAgICAgICAgICAgICAgICAgICAgICA6IGkgPj0gNTUyOTYgJiYgaSA8PSA1NjMxOQogICAgICAgICAgICAgICAgICAgICAgICA/IEZvbnRNYW5hZ2VyLmlzUmVnaW9uYWxGbGFnKGUsIHIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoYyA9IGUuc3Vic3RyKHIsIDE0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoYSA9IGUuY2hhckNvZGVBdChyICsgMSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA+PSA1NjMyMCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA8PSA1NzM0MyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEZvbnRNYW5hZ2VyLmlzTW9kaWZpZXIoaSwgYSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGMgPSBlLnN1YnN0cihyLCAyKSksIChvID0gITApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEZvbnRNYW5hZ2VyLmlzRmxhZ0Vtb2ppKGUuc3Vic3RyKHIsIDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGMgPSBlLnN1YnN0cihyLCA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChjID0gZS5zdWJzdHIociwgMikpKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBpID4gNTYzMTkKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoYSA9IGUuY2hhckNvZGVBdChyICsgMSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udE1hbmFnZXIuaXNWYXJpYXRpb25TZWxlY3RvcihpKSAmJiAobyA9ICEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IEZvbnRNYW5hZ2VyLmlzWmVyb1dpZHRoSm9pbmVyKGkpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChvID0gITApLCAobCA9ICEwKSksCiAgICAgICAgICAgICAgICAgICAgbyA/ICgodFt0Lmxlbmd0aCAtIDFdICs9IGMpLCAobyA9ICExKSkgOiB0LnB1c2goYyksCiAgICAgICAgICAgICAgICAgICAgKHIgKz0gYy5sZW5ndGgpOwogICAgICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuY29tcGxldGVUZXh0RGF0YSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBlLl9fY29tcGxldGUgPSAhMDsKICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZm9udE1hbmFnZXIsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRhdGEsCiAgICAgICAgICAgICAgICAgIG4gPSBbXSwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgICAgbCA9IDAsCiAgICAgICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgICAgIHUgPSByLm0uZywKICAgICAgICAgICAgICAgICAgZCA9IDAsCiAgICAgICAgICAgICAgICAgIEUgPSAwLAogICAgICAgICAgICAgICAgICBiID0gMCwKICAgICAgICAgICAgICAgICAgUCA9IFtdLAogICAgICAgICAgICAgICAgICBSID0gMCwKICAgICAgICAgICAgICAgICAgVCA9IDAsCiAgICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICAgIHgsCiAgICAgICAgICAgICAgICAgIGsgPSB0LmdldEZvbnRCeU5hbWUoZS5mKSwKICAgICAgICAgICAgICAgICAgUywKICAgICAgICAgICAgICAgICAgQSA9IDAsCiAgICAgICAgICAgICAgICAgIE8gPSBnZXRGb250UHJvcGVydGllcyhrKTsKICAgICAgICAgICAgICAgIChlLmZXZWlnaHQgPSBPLndlaWdodCksCiAgICAgICAgICAgICAgICAgIChlLmZTdHlsZSA9IE8uc3R5bGUpLAogICAgICAgICAgICAgICAgICAoZS5maW5hbFNpemUgPSBlLnMpLAogICAgICAgICAgICAgICAgICAoZS5maW5hbFRleHQgPSB0aGlzLmJ1aWxkRmluYWxUZXh0KGUudCkpLAogICAgICAgICAgICAgICAgICAoYSA9IGUuZmluYWxUZXh0Lmxlbmd0aCksCiAgICAgICAgICAgICAgICAgIChlLmZpbmFsTGluZUhlaWdodCA9IGUubGgpOwogICAgICAgICAgICAgICAgdmFyIEYgPSAoZS50ciAvIDFlMykgKiBlLmZpbmFsU2l6ZSwKICAgICAgICAgICAgICAgICAgRDsKICAgICAgICAgICAgICAgIGlmIChlLnN6KQogICAgICAgICAgICAgICAgICBmb3IgKHZhciBIID0gITAsICQgPSBlLnN6WzBdLCBxID0gZS5zelsxXSwgSiwgSzsgSDspIHsKICAgICAgICAgICAgICAgICAgICAoSyA9IHRoaXMuYnVpbGRGaW5hbFRleHQoZS50KSksCiAgICAgICAgICAgICAgICAgICAgICAoSiA9IDApLAogICAgICAgICAgICAgICAgICAgICAgKFIgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgIChhID0gSy5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgKEYgPSAoZS50ciAvIDFlMykgKiBlLmZpbmFsU2l6ZSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGVlID0gLTE7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGE7IGkgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChEID0gS1tpXS5jaGFyQ29kZUF0KDApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAgIEtbaV0gPT09ICIgIgogICAgICAgICAgICAgICAgICAgICAgICAgID8gKGVlID0gaSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChEID09PSAxMyB8fCBEID09PSAzKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICgoUiA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSiArPSBlLmZpbmFsTGluZUhlaWdodCB8fCBlLmZpbmFsU2l6ZSAqIDEuMikpLAogICAgICAgICAgICAgICAgICAgICAgICB0LmNoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKFMgPSB0LmdldENoYXJEYXRhKEtbaV0sIGsuZlN0eWxlLCBrLmZGYW1pbHkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBID0gbyA/IDAgOiAoUy53ICogZS5maW5hbFNpemUpIC8gMTAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChBID0gdC5tZWFzdXJlVGV4dChLW2ldLCBlLmYsIGUuZmluYWxTaXplKSksCiAgICAgICAgICAgICAgICAgICAgICAgIFIgKyBBID4gJCAmJiBLW2ldICE9PSAiICIKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChlZSA9PT0gLTEgPyAoYSArPSAxKSA6IChpID0gZWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEogKz0gZS5maW5hbExpbmVIZWlnaHQgfHwgZS5maW5hbFNpemUgKiAxLjIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSy5zcGxpY2UoaSwgZWUgPT09IGkgPyAxIDogMCwgIlxyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWUgPSAtMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9IDApKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKChSICs9IEEpLCAoUiArPSBGKSk7CiAgICAgICAgICAgICAgICAgICAgKEogKz0gKGsuYXNjZW50ICogZS5maW5hbFNpemUpIC8gMTAwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVzaXplICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGUuZmluYWxTaXplID4gdGhpcy5taW5pbXVtRm9udFNpemUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgcSA8IEoKICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGUuZmluYWxTaXplIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChlLmZpbmFsTGluZUhlaWdodCA9IChlLmZpbmFsU2l6ZSAqIGUubGgpIC8gZS5zKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoKGUuZmluYWxUZXh0ID0gSyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgPSBlLmZpbmFsVGV4dC5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChIID0gITEpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKFIgPSAtRiksIChBID0gMCk7CiAgICAgICAgICAgICAgICB2YXIgbGUgPSAwLAogICAgICAgICAgICAgICAgICByZTsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhOyBpICs9IDEpCiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoKG8gPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAocmUgPSBlLmZpbmFsVGV4dFtpXSksCiAgICAgICAgICAgICAgICAgICAgICAoRCA9IHJlLmNoYXJDb2RlQXQoMCkpLAogICAgICAgICAgICAgICAgICAgICAgRCA9PT0gMTMgfHwgRCA9PT0gMwogICAgICAgICAgICAgICAgICAgICAgICA/ICgobGUgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBQLnB1c2goUiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBSID4gVCA/IFIgOiBUKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9IC0yICogRiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGMgPSAiIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKz0gMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKGMgPSByZSksCiAgICAgICAgICAgICAgICAgICAgICB0LmNoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgID8gKChTID0gdC5nZXRDaGFyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgICByZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBrLmZTdHlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldEZvbnRCeU5hbWUoZS5mKS5mRmFtaWx5CiAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChBID0gbyA/IDAgOiAoUy53ICogZS5maW5hbFNpemUpIC8gMTAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoQSA9IHQubWVhc3VyZVRleHQoYywgZS5mLCBlLmZpbmFsU2l6ZSkpLAogICAgICAgICAgICAgICAgICAgICAgcmUgPT09ICIgIiA/IChsZSArPSBBICsgRikgOiAoKFIgKz0gQSArIEYgKyBsZSksIChsZSA9IDApKSwKICAgICAgICAgICAgICAgICAgICAgIG4ucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGw6IEEsCiAgICAgICAgICAgICAgICAgICAgICAgIGFuOiBBLAogICAgICAgICAgICAgICAgICAgICAgICBhZGQ6IGQsCiAgICAgICAgICAgICAgICAgICAgICAgIG46IG8sCiAgICAgICAgICAgICAgICAgICAgICAgIGFuSW5kZXhlczogW10sCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbDogYywKICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogYiwKICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0b3JKdXN0aWZ5T2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICB1ID09IDIpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIGlmICgoKGQgKz0gQSksIGMgPT09ICIiIHx8IGMgPT09ICIgIiB8fCBpID09PSBhIC0gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoKGMgPT09ICIiIHx8IGMgPT09ICIgIikgJiYgKGQgLT0gQSk7IEUgPD0gaTspCiAgICAgICAgICAgICAgICAgICAgICAgIChuW0VdLmFuID0gZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uaW5kID0gbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uZXh0cmEgPSBBKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKTsKICAgICAgICAgICAgICAgICAgICAgIChsICs9IDEpLCAoZCA9IDApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1ID09IDMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKChkICs9IEEpLCBjID09PSAiIiB8fCBpID09PSBhIC0gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoYyA9PT0gIiIgJiYgKGQgLT0gQSk7IEUgPD0gaTspCiAgICAgICAgICAgICAgICAgICAgICAgIChuW0VdLmFuID0gZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uaW5kID0gbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5bRV0uZXh0cmEgPSBBKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRSArPSAxKTsKICAgICAgICAgICAgICAgICAgICAgIChkID0gMCksIChsICs9IDEpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIChuW2xdLmluZCA9IGwpLCAobltsXS5leHRyYSA9IDApLCAobCArPSAxKTsKICAgICAgICAgICAgICAgIGlmICgoKGUubCA9IG4pLCAoVCA9IFIgPiBUID8gUiA6IFQpLCBQLnB1c2goUiksIGUuc3opKQogICAgICAgICAgICAgICAgICAoZS5ib3hXaWR0aCA9IGUuc3pbMF0pLCAoZS5qdXN0aWZ5T2Zmc2V0ID0gMCk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKChlLmJveFdpZHRoID0gVCksIGUuaikpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgPSAtZS5ib3hXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgIGUuanVzdGlmeU9mZnNldCA9IC1lLmJveFdpZHRoIC8gMjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgPSAwOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlLmxpbmVXaWR0aHMgPSBQOwogICAgICAgICAgICAgICAgdmFyIEIgPSByLmEsCiAgICAgICAgICAgICAgICAgIHosCiAgICAgICAgICAgICAgICAgIE47CiAgICAgICAgICAgICAgICB4ID0gQi5sZW5ndGg7CiAgICAgICAgICAgICAgICB2YXIgViwKICAgICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgICAgWSA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChNID0gMDsgTSA8IHg7IE0gKz0gMSkgewogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIHogPSBCW01dLAogICAgICAgICAgICAgICAgICAgIHouYS5zYyAmJiAoZS5zdHJva2VDb2xvckFuaW0gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgei5hLnN3ICYmIChlLnN0cm9rZVdpZHRoQW5pbSA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAoei5hLmZjIHx8IHouYS5maCB8fCB6LmEuZnMgfHwgei5hLmZiKSAmJgogICAgICAgICAgICAgICAgICAgIChlLmZpbGxDb2xvckFuaW0gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgUSA9IDAsCiAgICAgICAgICAgICAgICAgICAgViA9IHoucy5iLAogICAgICAgICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgICAgICAgIGkgPCBhOwogICAgICAgICAgICAgICAgICAgIGkgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKE4gPSBuW2ldKSwKICAgICAgICAgICAgICAgICAgICAgIChOLmFuSW5kZXhlc1tNXSA9IFEpLAogICAgICAgICAgICAgICAgICAgICAgKChWID09IDEgJiYgTi52YWwgIT09ICIiKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoViA9PSAyICYmIE4udmFsICE9PSAiIiAmJiBOLnZhbCAhPT0gIiAiKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoViA9PSAzICYmIChOLm4gfHwgTi52YWwgPT0gIiAiIHx8IGkgPT0gYSAtIDEpKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoViA9PSA0ICYmIChOLm4gfHwgaSA9PSBhIC0gMSkpKSAmJgogICAgICAgICAgICAgICAgICAgICAgKHoucy5ybiA9PT0gMSAmJiBZLnB1c2goUSksIChRICs9IDEpKTsKICAgICAgICAgICAgICAgICAgci5hW01dLnMudG90YWxDaGFycyA9IFE7CiAgICAgICAgICAgICAgICAgIHZhciBoZSA9IC0xLAogICAgICAgICAgICAgICAgICAgIHllOwogICAgICAgICAgICAgICAgICBpZiAoei5zLnJuID09PSAxKQogICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhOyBpICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAoTiA9IG5baV0pLAogICAgICAgICAgICAgICAgICAgICAgICBoZSAhPSBOLmFuSW5kZXhlc1tNXSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKGhlID0gTi5hbkluZGV4ZXNbTV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICh5ZSA9IFkuc3BsaWNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogWS5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgIClbMF0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgKE4uYW5JbmRleGVzW01dID0geWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKGUueU9mZnNldCA9IGUuZmluYWxMaW5lSGVpZ2h0IHx8IGUuZmluYWxTaXplICogMS4yKSwKICAgICAgICAgICAgICAgICAgKGUubHMgPSBlLmxzIHx8IDApLAogICAgICAgICAgICAgICAgICAoZS5hc2NlbnQgPSAoay5hc2NlbnQgKiBlLmZpbmFsU2l6ZSkgLyAxMDApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnVwZGF0ZURvY3VtZW50RGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB0ID0gdCA9PT0gdm9pZCAwID8gdGhpcy5rZXlzSW5kZXggOiB0OwogICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmNvcHlEYXRhKHt9LCB0aGlzLmRhdGEuZC5rW3RdLnMpOwogICAgICAgICAgICAgICAgKHIgPSB0aGlzLmNvcHlEYXRhKHIsIGUpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YS5kLmtbdF0ucyA9IHIpLAogICAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlKHQpLAogICAgICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnREYXRhKHIpLAogICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnJlY2FsY3VsYXRlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5kYXRhLmQua1tlXS5zOwogICAgICAgICAgICAgICAgKHQuX19jb21wbGV0ZSA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMua2V5c0luZGV4ID0gMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWUodCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuY2FuUmVzaXplRm9udCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAodGhpcy5jYW5SZXNpemUgPSBlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZSh0aGlzLmtleXNJbmRleCksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuc2V0TWluaW11bUZvbnRTaXplID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICh0aGlzLm1pbmltdW1Gb250U2l6ZSA9IE1hdGguZmxvb3IoZSkgfHwgMSksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGUodGhpcy5rZXlzSW5kZXgpLAogICAgICAgICAgICAgICAgICB0aGlzLmVsZW0uYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgVGV4dFNlbGVjdG9yUHJvcCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBNYXRoLm1heCwKICAgICAgICAgICAgICAgIHQgPSBNYXRoLm1pbiwKICAgICAgICAgICAgICAgIHIgPSBNYXRoLmZsb29yOwogICAgICAgICAgICAgIGZ1bmN0aW9uIG4oYSwgbykgewogICAgICAgICAgICAgICAgKHRoaXMuX2N1cnJlbnRUZXh0TGVuZ3RoID0gLTEpLAogICAgICAgICAgICAgICAgICAodGhpcy5rID0gITEpLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gbyksCiAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBhKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuY29tcCA9IGEuY29tcCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsUyA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5maW5hbEUgPSAwKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGEpLAogICAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgICBvLnMgfHwgeyBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICJlIiBpbiBvCiAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5lID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoYSwgby5lLCAwLCAwLCB0aGlzKSkKICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLmUgPSB7IHY6IDEwMCB9KSwKICAgICAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgICAgby5vIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAodGhpcy54ZSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgICAgby54ZSB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubmUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgICAgIG8ubmUgfHwgeyBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnNtID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgICBvLnNtIHx8IHsgazogMTAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmEgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChhLCBvLmEsIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwgdGhpcy5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAobi5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICBnZXRNdWx0OiBmdW5jdGlvbiAobykgewogICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGV4dExlbmd0aCAhPT0KICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW0udGV4dFByb3BlcnR5LmN1cnJlbnREYXRhLmwubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgICAgICB2YXIgbCA9IDAsCiAgICAgICAgICAgICAgICAgICAgYyA9IDAsCiAgICAgICAgICAgICAgICAgICAgdSA9IDEsCiAgICAgICAgICAgICAgICAgICAgZCA9IDE7CiAgICAgICAgICAgICAgICAgIHRoaXMubmUudiA+IDAKICAgICAgICAgICAgICAgICAgICA/IChsID0gdGhpcy5uZS52IC8gMTAwKQogICAgICAgICAgICAgICAgICAgIDogKGMgPSAtdGhpcy5uZS52IC8gMTAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnhlLnYgPiAwCiAgICAgICAgICAgICAgICAgICAgICA/ICh1ID0gMSAtIHRoaXMueGUudiAvIDEwMCkKICAgICAgICAgICAgICAgICAgICAgIDogKGQgPSAxICsgdGhpcy54ZS52IC8gMTAwKTsKICAgICAgICAgICAgICAgICAgdmFyIEUgPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZyhsLCBjLCB1LCBkKS5nZXQsCiAgICAgICAgICAgICAgICAgICAgYiA9IDAsCiAgICAgICAgICAgICAgICAgICAgUCA9IHRoaXMuZmluYWxTLAogICAgICAgICAgICAgICAgICAgIFIgPSB0aGlzLmZpbmFsRSwKICAgICAgICAgICAgICAgICAgICBUID0gdGhpcy5kYXRhLnNoOwogICAgICAgICAgICAgICAgICBpZiAoVCA9PT0gMikKICAgICAgICAgICAgICAgICAgICBSID09PSBQCiAgICAgICAgICAgICAgICAgICAgICA/IChiID0gbyA+PSBSID8gMSA6IDApCiAgICAgICAgICAgICAgICAgICAgICA6IChiID0gZSgwLCB0KDAuNSAvIChSIC0gUCkgKyAobyAtIFApIC8gKFIgLSBQKSwgMSkpKSwKICAgICAgICAgICAgICAgICAgICAgIChiID0gRShiKSk7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFQgPT09IDMpCiAgICAgICAgICAgICAgICAgICAgUiA9PT0gUAogICAgICAgICAgICAgICAgICAgICAgPyAoYiA9IG8gPj0gUiA/IDAgOiAxKQogICAgICAgICAgICAgICAgICAgICAgOiAoYiA9IDEgLSBlKDAsIHQoMC41IC8gKFIgLSBQKSArIChvIC0gUCkgLyAoUiAtIFApLCAxKSkpLAogICAgICAgICAgICAgICAgICAgICAgKGIgPSBFKGIpKTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVCA9PT0gNCkKICAgICAgICAgICAgICAgICAgICBSID09PSBQCiAgICAgICAgICAgICAgICAgICAgICA/IChiID0gMCkKICAgICAgICAgICAgICAgICAgICAgIDogKChiID0gZSgwLCB0KDAuNSAvIChSIC0gUCkgKyAobyAtIFApIC8gKFIgLSBQKSwgMSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgYiA8IDAuNSA/IChiICo9IDIpIDogKGIgPSAxIC0gMiAqIChiIC0gMC41KSkpLAogICAgICAgICAgICAgICAgICAgICAgKGIgPSBFKGIpKTsKICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVCA9PT0gNSkgewogICAgICAgICAgICAgICAgICAgIGlmIChSID09PSBQKSBiID0gMDsKICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBNID0gUiAtIFA7CiAgICAgICAgICAgICAgICAgICAgICBvID0gdChlKDAsIG8gKyAwLjUgLSBQKSwgUiAtIFApOwogICAgICAgICAgICAgICAgICAgICAgdmFyIHggPSAtTSAvIDIgKyBvLAogICAgICAgICAgICAgICAgICAgICAgICBrID0gTSAvIDI7CiAgICAgICAgICAgICAgICAgICAgICBiID0gTWF0aC5zcXJ0KDEgLSAoeCAqIHgpIC8gKGsgKiBrKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGIgPSBFKGIpOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBUID09PSA2CiAgICAgICAgICAgICAgICAgICAgICA/IChSID09PSBQCiAgICAgICAgICAgICAgICAgICAgICAgID8gKGIgPSAwKQogICAgICAgICAgICAgICAgICAgICAgICA6ICgobyA9IHQoZSgwLCBvICsgMC41IC0gUCksIFIgLSBQKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmNvcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLlBJICsgKE1hdGguUEkgKiAyICogbykgLyAoUiAtIFApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGIgPSBFKGIpKSkKICAgICAgICAgICAgICAgICAgICAgIDogKG8gPj0gcihQKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAobyAtIFAgPCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoYiA9IGUoMCwgdCh0KFIsIDEpIC0gKFAgLSBvKSwgMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKGIgPSBlKDAsIHQoUiAtIG8sIDEpKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAoYiA9IEUoYikpKTsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc20udiAhPT0gMTAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLnNtLnYgKiAwLjAxOwogICAgICAgICAgICAgICAgICAgIFMgPT09IDAgJiYgKFMgPSAxZS04KTsKICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IDAuNSAtIFMgKiAwLjU7CiAgICAgICAgICAgICAgICAgICAgYiA8IEEgPyAoYiA9IDApIDogKChiID0gKGIgLSBBKSAvIFMpLCBiID4gMSAmJiAoYiA9IDEpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gYiAqIHRoaXMuYS52OwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGdldFZhbHVlOiBmdW5jdGlvbiAobykgewogICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSBvIHx8IHRoaXMuX21kZiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2N1cnJlbnRUZXh0TGVuZ3RoID0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS50ZXh0UHJvcGVydHkuY3VycmVudERhdGEubC5sZW5ndGggfHwgMCksCiAgICAgICAgICAgICAgICAgICAgbyAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5yID09PSAyICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZS52ID0gdGhpcy5fY3VycmVudFRleHRMZW5ndGgpOwogICAgICAgICAgICAgICAgICB2YXIgbCA9IHRoaXMuZGF0YS5yID09PSAyID8gMSA6IDEwMCAvIHRoaXMuZGF0YS50b3RhbENoYXJzLAogICAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLm8udiAvIGwsCiAgICAgICAgICAgICAgICAgICAgdSA9IHRoaXMucy52IC8gbCArIGMsCiAgICAgICAgICAgICAgICAgICAgZCA9IHRoaXMuZS52IC8gbCArIGM7CiAgICAgICAgICAgICAgICAgIGlmICh1ID4gZCkgewogICAgICAgICAgICAgICAgICAgIHZhciBFID0gdTsKICAgICAgICAgICAgICAgICAgICAodSA9IGQpLCAoZCA9IEUpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsUyA9IHUpLCAodGhpcy5maW5hbEUgPSBkKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIG4pOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGkoYSwgbywgbCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBuKGEsIG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4geyBnZXRUZXh0U2VsZWN0b3JQcm9wOiBpIH07CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFRleHRBbmltYXRvckRhdGFQcm9wZXJ0eShlLCB0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSB7IHByb3BUeXBlOiAhMSB9LAogICAgICAgICAgICAgICAgaSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wLAogICAgICAgICAgICAgICAgYSA9IHQuYTsKICAgICAgICAgICAgICAodGhpcy5hID0gewogICAgICAgICAgICAgICAgcjogYS5yID8gaShlLCBhLnIsIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgcng6IGEucnggPyBpKGUsIGEucngsIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgcnk6IGEucnkgPyBpKGUsIGEucnksIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgc2s6IGEuc2sgPyBpKGUsIGEuc2ssIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgc2E6IGEuc2EgPyBpKGUsIGEuc2EsIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICAgICAgczogYS5zID8gaShlLCBhLnMsIDEsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgICAgIGE6IGEuYSA/IGkoZSwgYS5hLCAxLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgICBvOiBhLm8gPyBpKGUsIGEubywgMCwgMC4wMSwgcikgOiBuLAogICAgICAgICAgICAgICAgcDogYS5wID8gaShlLCBhLnAsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgICAgIHN3OiBhLnN3ID8gaShlLCBhLnN3LCAwLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgICBzYzogYS5zYyA/IGkoZSwgYS5zYywgMSwgMCwgcikgOiBuLAogICAgICAgICAgICAgICAgZmM6IGEuZmMgPyBpKGUsIGEuZmMsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgICAgIGZoOiBhLmZoID8gaShlLCBhLmZoLCAwLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgICBmczogYS5mcyA/IGkoZSwgYS5mcywgMCwgMC4wMSwgcikgOiBuLAogICAgICAgICAgICAgICAgZmI6IGEuZmIgPyBpKGUsIGEuZmIsIDAsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgICAgIHQ6IGEudCA/IGkoZSwgYS50LCAwLCAwLCByKSA6IG4sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAodGhpcy5zID0gVGV4dFNlbGVjdG9yUHJvcC5nZXRUZXh0U2VsZWN0b3JQcm9wKGUsIHQucywgcikpLAogICAgICAgICAgICAgICAgKHRoaXMucy50ID0gdC5zLnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIFRleHRBbmltYXRvclByb3BlcnR5KGUsIHQsIHIpIHsKICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuX2hhc01hc2tlZFBhdGggPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5fZnJhbWVJZCA9IC0xKSwKICAgICAgICAgICAgICAgICh0aGlzLl90ZXh0RGF0YSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMuX3JlbmRlclR5cGUgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLl9lbGVtID0gciksCiAgICAgICAgICAgICAgICAodGhpcy5fYW5pbWF0b3JzRGF0YSA9IGNyZWF0ZVNpemVkQXJyYXkoCiAgICAgICAgICAgICAgICAgIHRoaXMuX3RleHREYXRhLmEubGVuZ3RoCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICh0aGlzLl9wYXRoRGF0YSA9IHt9KSwKICAgICAgICAgICAgICAgICh0aGlzLl9tb3JlT3B0aW9ucyA9IHsgYWxpZ25tZW50OiB7fSB9KSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVkTGV0dGVycyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyA9ICExKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoVGV4dEFuaW1hdG9yUHJvcGVydHkucHJvdG90eXBlLnNlYXJjaFByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5fdGV4dERhdGEuYS5sZW5ndGgsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wOwogICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAociA9IHRoaXMuX3RleHREYXRhLmFbZV0pLAogICAgICAgICAgICAgICAgICAodGhpcy5fYW5pbWF0b3JzRGF0YVtlXSA9IG5ldyBUZXh0QW5pbWF0b3JEYXRhUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbSwKICAgICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgdGhpcy5fdGV4dERhdGEucCAmJiAibSIgaW4gdGhpcy5fdGV4dERhdGEucAogICAgICAgICAgICAgICAgPyAoKHRoaXMuX3BhdGhEYXRhID0gewogICAgICAgICAgICAgICAgICBhOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAuYSwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICAgIGY6IG4odGhpcy5fZWxlbSwgdGhpcy5fdGV4dERhdGEucC5mLCAwLCAwLCB0aGlzKSwKICAgICAgICAgICAgICAgICAgbDogbih0aGlzLl9lbGVtLCB0aGlzLl90ZXh0RGF0YS5wLmwsIDAsIDAsIHRoaXMpLAogICAgICAgICAgICAgICAgICByOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAuciwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICAgIHA6IG4odGhpcy5fZWxlbSwgdGhpcy5fdGV4dERhdGEucC5wLCAwLCAwLCB0aGlzKSwKICAgICAgICAgICAgICAgICAgbTogdGhpcy5fZWxlbS5tYXNrTWFuYWdlci5nZXRNYXNrUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGV4dERhdGEucC5tCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2hhc01hc2tlZFBhdGggPSAhMCkpCiAgICAgICAgICAgICAgICA6ICh0aGlzLl9oYXNNYXNrZWRQYXRoID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21vcmVPcHRpb25zLmFsaWdubWVudCA9IG4oCiAgICAgICAgICAgICAgICAgIHRoaXMuX2VsZW0sCiAgICAgICAgICAgICAgICAgIHRoaXMuX3RleHREYXRhLm0uYSwKICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0QW5pbWF0b3JQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0TWVhc3VyZXMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnID0gdCksCiAgICAgICAgICAgICAgICAgICAgISgKICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9tZGYgJiYKICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9pc0ZpcnN0RnJhbWUgJiYKICAgICAgICAgICAgICAgICAgICAgICF0ICYmCiAgICAgICAgICAgICAgICAgICAgICAoIXRoaXMuX2hhc01hc2tlZFBhdGggfHwgIXRoaXMuX3BhdGhEYXRhLm0uX21kZikKICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuX2lzRmlyc3RGcmFtZSA9ICExOwogICAgICAgICAgICAgICAgICB2YXIgciA9IHRoaXMuX21vcmVPcHRpb25zLmFsaWdubWVudC52LAogICAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLl9hbmltYXRvcnNEYXRhLAogICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLl90ZXh0RGF0YSwKICAgICAgICAgICAgICAgICAgICBhID0gdGhpcy5tSGVscGVyLAogICAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLl9yZW5kZXJUeXBlLAogICAgICAgICAgICAgICAgICAgIGwgPSB0aGlzLnJlbmRlcmVkTGV0dGVycy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICAgICAgRSwKICAgICAgICAgICAgICAgICAgICBiID0gZS5sLAogICAgICAgICAgICAgICAgICAgIFAsCiAgICAgICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgICAgICBULAogICAgICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICAgICAgeCwKICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgIFMsCiAgICAgICAgICAgICAgICAgICAgQSwKICAgICAgICAgICAgICAgICAgICBPLAogICAgICAgICAgICAgICAgICAgIEYsCiAgICAgICAgICAgICAgICAgICAgRCwKICAgICAgICAgICAgICAgICAgICBILAogICAgICAgICAgICAgICAgICAgICQsCiAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICBKOwogICAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFzTWFza2VkUGF0aCkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICgoSiA9IHRoaXMuX3BhdGhEYXRhLm0pLAogICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5fcGF0aERhdGEubiB8fCB0aGlzLl9wYXRoRGF0YS5fbWRmKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIEsgPSBKLnY7CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRGF0YS5yLnYgJiYgKEsgPSBLLnJldmVyc2UoKSksCiAgICAgICAgICAgICAgICAgICAgICAgIChQID0geyB0TGVuZ3RoOiAwLCBzZWdtZW50czogW10gfSksCiAgICAgICAgICAgICAgICAgICAgICAgIChFID0gSy5fbGVuZ3RoIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZWU7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKEggPSAwLCBkID0gMDsgZCA8IEU7IGQgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgKGVlID0gYmV6LmJ1aWxkQmV6aWVyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgICBLLnZbZF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgSy52W2QgKyAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbSy5vW2RdWzBdIC0gSy52W2RdWzBdLCBLLm9bZF1bMV0gLSBLLnZbZF1bMV1dLAogICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEsuaVtkICsgMV1bMF0gLSBLLnZbZCArIDFdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSy5pW2QgKyAxXVsxXSAtIEsudltkICsgMV1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUC50TGVuZ3RoICs9IGVlLnNlZ21lbnRMZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuc2VnbWVudHMucHVzaChlZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEggKz0gZWUuc2VnbWVudExlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgICAoZCA9IEUpLAogICAgICAgICAgICAgICAgICAgICAgICBKLnYuYyAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKGVlID0gYmV6LmJ1aWxkQmV6aWVyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgICBLLnZbZF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgSy52WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIFtLLm9bZF1bMF0gLSBLLnZbZF1bMF0sIEsub1tkXVsxXSAtIEsudltkXVsxXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgW0suaVswXVswXSAtIEsudlswXVswXSwgSy5pWzBdWzFdIC0gSy52WzBdWzFdXQogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUC50TGVuZ3RoICs9IGVlLnNlZ21lbnRMZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFAuc2VnbWVudHMucHVzaChlZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEggKz0gZWUuc2VnbWVudExlbmd0aCkpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5fcGF0aERhdGEucGkgPSBQKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKChQID0gdGhpcy5fcGF0aERhdGEucGkpLAogICAgICAgICAgICAgICAgICAgICAgICAoUiA9IHRoaXMuX3BhdGhEYXRhLmYudiksCiAgICAgICAgICAgICAgICAgICAgICAgIChTID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgIChrID0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgIChNID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgICh4ID0gITApLAogICAgICAgICAgICAgICAgICAgICAgICAoRiA9IFAuc2VnbWVudHMpLAogICAgICAgICAgICAgICAgICAgICAgICBSIDwgMCAmJiBKLnYuYykKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBQLnRMZW5ndGggPCBNYXRoLmFicyhSKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoUiA9IC1NYXRoLmFicyhSKSAlIFAudExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgIFMgPSBGLmxlbmd0aCAtIDEsCiAgICAgICAgICAgICAgICAgICAgICAgIE8gPSBGW1NdLnBvaW50cywKICAgICAgICAgICAgICAgICAgICAgICAgayA9IE8ubGVuZ3RoIC0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgUiA8IDA7CgogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAoUiArPSBPW2tdLnBhcnRpYWxMZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChrIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGsgPCAwICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChTIC09IDEpLCAoTyA9IEZbU10ucG9pbnRzKSwgKGsgPSBPLmxlbmd0aCAtIDEpKTsKICAgICAgICAgICAgICAgICAgICAoTyA9IEZbU10ucG9pbnRzKSwKICAgICAgICAgICAgICAgICAgICAgIChBID0gT1trIC0gMV0pLAogICAgICAgICAgICAgICAgICAgICAgKFQgPSBPW2tdKSwKICAgICAgICAgICAgICAgICAgICAgIChEID0gVC5wYXJ0aWFsTGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAoRSA9IGIubGVuZ3RoKSwgKGMgPSAwKSwgKHUgPSAwKTsKICAgICAgICAgICAgICAgICAgdmFyIGxlID0gZS5maW5hbFNpemUgKiAxLjIgKiAwLjcxNCwKICAgICAgICAgICAgICAgICAgICByZSA9ICEwLAogICAgICAgICAgICAgICAgICAgIEIsCiAgICAgICAgICAgICAgICAgICAgeiwKICAgICAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgICAgIFYsCiAgICAgICAgICAgICAgICAgICAgUTsKICAgICAgICAgICAgICAgICAgViA9IG4ubGVuZ3RoOwogICAgICAgICAgICAgICAgICB2YXIgWSwKICAgICAgICAgICAgICAgICAgICBoZSA9IC0xLAogICAgICAgICAgICAgICAgICAgIHllLAogICAgICAgICAgICAgICAgICAgIHZlLAogICAgICAgICAgICAgICAgICAgIFBlLAogICAgICAgICAgICAgICAgICAgIENlID0gUiwKICAgICAgICAgICAgICAgICAgICBpZSA9IFMsCiAgICAgICAgICAgICAgICAgICAgbWUgPSBrLAogICAgICAgICAgICAgICAgICAgIHBlID0gLTEsCiAgICAgICAgICAgICAgICAgICAgZ2UsCiAgICAgICAgICAgICAgICAgICAgRWUsCiAgICAgICAgICAgICAgICAgICAgU2UsCiAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICBHLAogICAgICAgICAgICAgICAgICAgIHRlLAogICAgICAgICAgICAgICAgICAgIGFlLAogICAgICAgICAgICAgICAgICAgIHNlLAogICAgICAgICAgICAgICAgICAgIGNlID0gIiIsCiAgICAgICAgICAgICAgICAgICAgZGUgPSB0aGlzLmRlZmF1bHRQcm9wc0FycmF5LAogICAgICAgICAgICAgICAgICAgIGo7CiAgICAgICAgICAgICAgICAgIGlmIChlLmogPT09IDIgfHwgZS5qID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIFUgPSAwLAogICAgICAgICAgICAgICAgICAgICAgWCA9IDAsCiAgICAgICAgICAgICAgICAgICAgICBvZSA9IGUuaiA9PT0gMiA/IC0wLjUgOiAtMSwKICAgICAgICAgICAgICAgICAgICAgIGZlID0gMCwKICAgICAgICAgICAgICAgICAgICAgIHVlID0gITA7CiAgICAgICAgICAgICAgICAgICAgZm9yIChkID0gMDsgZCA8IEU7IGQgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIGlmIChiW2RdLm4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChVICYmIChVICs9IFgpOyBmZSA8IGQ7KQogICAgICAgICAgICAgICAgICAgICAgICAgIChiW2ZlXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgPSBVKSwgKGZlICs9IDEpOwogICAgICAgICAgICAgICAgICAgICAgICAoVSA9IDApLCAodWUgPSAhMCk7CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIChCID0gbltOXS5hKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIudC5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVlICYmIGUuaiA9PT0gMiAmJiAoWCArPSBCLnQudiAqIG9lKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHogPSBuW05dLnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSA9IHouZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmFbTl0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKFUgKz0gQi50LnYgKiBZWzBdICogb2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoVSArPSBCLnQudiAqIFkgKiBvZSkpOwogICAgICAgICAgICAgICAgICAgICAgICB1ZSA9ICExOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZvciAoVSAmJiAoVSArPSBYKTsgZmUgPCBkOykKICAgICAgICAgICAgICAgICAgICAgIChiW2ZlXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgPSBVKSwgKGZlICs9IDEpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGZvciAoZCA9IDA7IGQgPCBFOyBkICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKGEucmVzZXQoKSwgKGdlID0gMSksIGJbZF0ubikpCiAgICAgICAgICAgICAgICAgICAgICAoYyA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAodSArPSBlLnlPZmZzZXQpLAogICAgICAgICAgICAgICAgICAgICAgICAodSArPSByZSA/IDEgOiAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgKFIgPSBDZSksCiAgICAgICAgICAgICAgICAgICAgICAgIChyZSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFzTWFza2VkUGF0aCAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKFMgPSBpZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGsgPSBtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE8gPSBGW1NdLnBvaW50cyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEEgPSBPW2sgLSAxXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFQgPSBPW2tdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoRCA9IFQucGFydGlhbExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKE0gPSAwKSksCiAgICAgICAgICAgICAgICAgICAgICAgIChjZSA9ICIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHNlID0gIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAodGUgPSAiIiksCiAgICAgICAgICAgICAgICAgICAgICAgIChqID0gIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAoZGUgPSB0aGlzLmRlZmF1bHRQcm9wc0FycmF5KTsKICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYXNNYXNrZWRQYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZSAhPT0gYltkXS5saW5lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlLmopIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUiArPSBIIC0gZS5saW5lV2lkdGhzW2JbZF0ubGluZV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSICs9IChIIC0gZS5saW5lV2lkdGhzW2JbZF0ubGluZV0pIC8gMjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIHBlID0gYltkXS5saW5lOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGhlICE9PSBiW2RdLmluZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIChiW2hlXSAmJiAoUiArPSBiW2hlXS5leHRyYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiArPSBiW2RdLmFuIC8gMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGUgPSBiW2RdLmluZCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChSICs9IHJbMF0gKiBiW2RdLmFuICogMC4wMDUpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgWiA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBWOyBOICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEIgPSBuW05dLmEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHogPSBuW05dLnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSA9IHouZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmFbTl0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKFogKz0gQi5wLnZbMF0gKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKFogKz0gQi5wLnZbMF0gKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmEucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoeiA9IG5bTl0ucyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0uYW5JbmRleGVzW05dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuYVtOXS5zLnRvdGFsQ2hhcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoWiArPSBCLmEudlswXSAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoWiArPSBCLmEudlswXSAqIFkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICB4ID0gITAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0aERhdGEuYS52ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChSID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbMF0uYW4gKiAwLjUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKChIIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0aERhdGEuZi52IC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlswXS5hbiAqIDAuNSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbYi5sZW5ndGggLSAxXS5hbiAqIDAuNSkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEUgLSAxKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiArPSB0aGlzLl9wYXRoRGF0YS5mLnYpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB4OwoKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgIE0gKyBEID49IFIgKyBaIHx8ICFPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoJCA9IChSICsgWiAtIE0pIC8gVC5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlID0gQS5wb2ludFswXSArIChULnBvaW50WzBdIC0gQS5wb2ludFswXSkgKiAkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBlID0gQS5wb2ludFsxXSArIChULnBvaW50WzFdIC0gQS5wb2ludFsxXSkgKiAkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXJbMF0gKiBiW2RdLmFuICogMC4wMDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShyWzFdICogbGUpICogMC4wMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCA9ICExKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKChNICs9IFQucGFydGlhbExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrID49IE8ubGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoayA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZbU10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKE8gPSBGW1NdLnBvaW50cykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSi52LmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGsgPSAwKSwgKFMgPSAwKSwgKE8gPSBGW1NdLnBvaW50cykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChNIC09IFQucGFydGlhbExlbmd0aCksIChPID0gbnVsbCkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEEgPSBUKSwgKFQgPSBPW2tdKSwgKEQgPSBULnBhcnRpYWxMZW5ndGgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICh5ZSA9IGJbZF0uYW4gLyAyIC0gYltkXS5hZGQpLCBhLnRyYW5zbGF0ZSgteWUsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICh5ZSA9IGJbZF0uYW4gLyAyIC0gYltkXS5hZGQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGEudHJhbnNsYXRlKC15ZSwgMCwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtclswXSAqIGJbZF0uYW4gKiAwLjAwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1yWzFdICogbGUgKiAwLjAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi50LnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYyAhPT0gMCB8fCBlLmogIT09IDApICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5faGFzTWFza2VkUGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoUiArPSBCLnQudiAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoUiArPSBCLnQudiAqIFkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChjICs9IEIudC52ICogWVswXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChjICs9IEIudC52ICogWSkpKTsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3Ryb2tlV2lkdGhBbmltICYmIChTZSA9IGUuc3cgfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3Ryb2tlQ29sb3JBbmltICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChlLnNjCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoRWUgPSBbZS5zY1swXSwgZS5zY1sxXSwgZS5zY1syXV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoRWUgPSBbMCwgMCwgMF0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgZS5maWxsQ29sb3JBbmltICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGUuZmMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKFcgPSBbZS5mY1swXSwgZS5mY1sxXSwgZS5mY1syXV0pLAogICAgICAgICAgICAgICAgICAgICAgICBOID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgTiA8IFY7CiAgICAgICAgICAgICAgICAgICAgICAgIE4gKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi5hLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1CLmEudlswXSAqIFlbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIuYS52WzFdICogWVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmEudlsyXSAqIFlbMl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1CLmEudlswXSAqIFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIuYS52WzFdICogWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmEudlsyXSAqIFkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi5zLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEuc2NhbGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIChCLnMudlswXSAtIDEpICogWVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgKEIucy52WzFdIC0gMSkgKiBZWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEuc2NhbGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIChCLnMudlswXSAtIDEpICogWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgKEIucy52WzFdIC0gMSkgKiBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAoKEIgPSBuW05dLmEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHogPSBuW05dLnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkgPSB6LmdldE11bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0uYW5JbmRleGVzW05dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmFbTl0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuc2sucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEuc2tld0Zyb21BeGlzKC1CLnNrLnYgKiBZWzBdLCBCLnNhLnYgKiBZWzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEuc2tld0Zyb21BeGlzKC1CLnNrLnYgKiBZLCBCLnNhLnYgKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLnIucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEucm90YXRlWigtQi5yLnYgKiBZWzJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEucm90YXRlWigtQi5yLnYgKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLnJ5LnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBhLnJvdGF0ZVkoQi5yeS52ICogWVsxXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhLnJvdGF0ZVkoQi5yeS52ICogWSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5yeC5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYS5yb3RhdGVYKEIucngudiAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYS5yb3RhdGVYKEIucngudiAqIFkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuby5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGdlICs9IChCLm8udiAqIFlbMF0gLSBnZSkgKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChnZSArPSAoQi5vLnYgKiBZIC0gZ2UpICogWSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdHJva2VXaWR0aEFuaW0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuc3cucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChTZSArPSBCLnN3LnYgKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChTZSArPSBCLnN3LnYgKiBZKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0cm9rZUNvbG9yQW5pbSAmJiBCLnNjLnByb3BUeXBlKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChHID0gMDsgRyA8IDM7IEcgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKEVlW0ddICs9IChCLnNjLnZbR10gLSBFZVtHXSkgKiBZWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChFZVtHXSArPSAoQi5zYy52W0ddIC0gRWVbR10pICogWSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmZpbGxDb2xvckFuaW0gJiYgZS5mYykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChCLmZjLnByb3BUeXBlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChHID0gMDsgRyA8IDM7IEcgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChXW0ddICs9IChCLmZjLnZbR10gLSBXW0ddKSAqIFlbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoV1tHXSArPSAoQi5mYy52W0ddIC0gV1tHXSkgKiBZKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBCLmZoLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoVyA9IGFkZEh1ZVRvUkdCKFcsIEIuZmgudiAqIFlbMF0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChXID0gYWRkSHVlVG9SR0IoVywgQi5maC52ICogWSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIuZnMucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChXID0gYWRkU2F0dXJhdGlvblRvUkdCKFcsIEIuZnMudiAqIFlbMF0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChXID0gYWRkU2F0dXJhdGlvblRvUkdCKFcsIEIuZnMudiAqIFkpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCLmZiLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoVyA9IGFkZEJyaWdodG5lc3NUb1JHQihXLCBCLmZiLnYgKiBZWzBdKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoVyA9IGFkZEJyaWdodG5lc3NUb1JHQihXLCBCLmZiLnYgKiBZKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVjsgTiArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAoQiA9IG5bTl0uYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh6ID0gbltOXS5zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZID0gei5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiW2RdLmFuSW5kZXhlc1tOXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5hW05dLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNNYXNrZWRQYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIucC52WzFdICogWVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1CLnAudlsyXSAqIFlbMV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhLnRyYW5zbGF0ZSgwLCBCLnAudlsxXSAqIFksIC1CLnAudlsyXSAqIFkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogWS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMF0gKiBZWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMV0gKiBZWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIucC52WzJdICogWVsyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMF0gKiBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQi5wLnZbMV0gKiBZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUIucC52WzJdICogWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAoZS5zdHJva2VXaWR0aEFuaW0gJiYgKHRlID0gU2UgPCAwID8gMCA6IFNlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0cm9rZUNvbG9yQW5pbSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIChhZSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmdiKCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChFZVswXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoRWVbMV0gKiAyNTUpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKEVlWzJdICogMjU1KSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGUuZmlsbENvbG9yQW5pbSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIGUuZmMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoc2UgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJnYigiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoV1swXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoV1sxXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoV1syXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIikiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNNYXNrZWRQYXRoKQogICAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAoYS50cmFuc2xhdGUoMCwgLWUubHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoMCwgclsxXSAqIGxlICogMC4wMSArIHUsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0aERhdGEucC52KQogICAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBxID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChULnBvaW50WzFdIC0gQS5wb2ludFsxXSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFQucG9pbnRbMF0gLSBBLnBvaW50WzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmUgPSAoTWF0aC5hdGFuKHEpICogMTgwKSAvIE1hdGguUEk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgVC5wb2ludFswXSA8IEEucG9pbnRbMF0gJiYgKG5lICs9IDE4MCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnJvdGF0ZSgoLW5lICogTWF0aC5QSSkgLyAxODApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGEudHJhbnNsYXRlKHZlLCBQZSwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFIgLT0gclswXSAqIGJbZF0uYW4gKiAwLjAwNSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYltkICsgMV0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgICBoZSAhPT0gYltkICsgMV0uaW5kICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChSICs9IGJbZF0uYW4gLyAyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSICs9IGUudHIgKiAwLjAwMSAqIGUuZmluYWxTaXplKSk7CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKAogICAgICAgICAgICAgICAgICAgICAgICAoYS50cmFuc2xhdGUoYywgdSwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcyAmJiBhLnRyYW5zbGF0ZShlLnBzWzBdLCBlLnBzWzFdICsgZS5hc2NlbnQsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGUuaikKICAgICAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0uYW5pbWF0b3JKdXN0aWZ5T2Zmc2V0ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5qdXN0aWZ5T2Zmc2V0ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUuYm94V2lkdGggLSBlLmxpbmVXaWR0aHNbYltkXS5saW5lXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYltkXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5ib3hXaWR0aCAtIGUubGluZVdpZHRoc1tiW2RdLmxpbmVdKSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBhLnRyYW5zbGF0ZSgwLCAtZS5scyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYS50cmFuc2xhdGUoeWUsIDAsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGEudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgclswXSAqIGJbZF0uYW4gKiAwLjAwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbMV0gKiBsZSAqIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoYyArPSBiW2RdLmwgKyBlLnRyICogMC4wMDEgKiBlLmZpbmFsU2l6ZSk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBvID09PSAiaHRtbCIKICAgICAgICAgICAgICAgICAgICAgICAgPyAoY2UgPSBhLnRvQ1NTKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIDogbyA9PT0gInN2ZyIKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChjZSA9IGEudG8yZENTUygpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKGRlID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1szXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzVdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1s2XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbN10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzhdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1s5XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbMTBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1sxMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzEyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEucHJvcHNbMTNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wcm9wc1sxNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByb3BzWzE1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGogPSBnZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGwgPD0gZAogICAgICAgICAgICAgICAgICAgICAgPyAoKFEgPSBuZXcgTGV0dGVyUHJvcHMoaiwgdGUsIGFlLCBzZSwgY2UsIGRlKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZWRMZXR0ZXJzLnB1c2goUSksCiAgICAgICAgICAgICAgICAgICAgICAgIChsICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sZXR0ZXJzQ2hhbmdlZEZsYWcgPSAhMCkpCiAgICAgICAgICAgICAgICAgICAgICA6ICgoUSA9IHRoaXMucmVuZGVyZWRMZXR0ZXJzW2RdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnID0KICAgICAgICAgICAgICAgICAgICAgICAgICBRLnVwZGF0ZShqLCB0ZSwgYWUsIHNlLCBjZSwgZGUpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXR0ZXJzQ2hhbmdlZEZsYWcpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChUZXh0QW5pbWF0b3JQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0VmFsdWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCAhPT0gdGhpcy5fZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuX2ZyYW1lSWQgPSB0aGlzLl9lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFRleHRBbmltYXRvclByb3BlcnR5LnByb3RvdHlwZS5tSGVscGVyID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgICAgICAoVGV4dEFuaW1hdG9yUHJvcGVydHkucHJvdG90eXBlLmRlZmF1bHRQcm9wc0FycmF5ID0gW10pLAogICAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgVGV4dEFuaW1hdG9yUHJvcGVydHkpOwogICAgICAgICAgICBmdW5jdGlvbiBJVGV4dEVsZW1lbnQoKSB7IH0KICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuaW5pdEVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyA9ICEwKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRCYXNlRGF0YShlLCB0LCByKSwKICAgICAgICAgICAgICAgICh0aGlzLnRleHRQcm9wZXJ0eSA9IG5ldyBUZXh0UHJvcGVydHkoCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIGUudCwKICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcwogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy50ZXh0QW5pbWF0b3IgPSBuZXcgVGV4dEFuaW1hdG9yUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgIGUudCwKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUeXBlLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShlLCB0LCByKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEhpZXJhcmNoeSgpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbnRhaW5lckVsZW1lbnRzKCksCiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVJlbmRlcmFibGVDb21wb25lbnRzKCksCiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnQoKSwKICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpLAogICAgICAgICAgICAgICAgdGhpcy50ZXh0QW5pbWF0b3Iuc2VhcmNoUHJvcGVydGllcyh0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUucHJlcGFyZUZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhlLCB0aGlzLmlzSW5SYW5nZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuY3JlYXRlUGF0aFNoYXBlID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICBuID0gdC5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgIGEgPSAiIjsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIHRbcl0udHkgPT09ICJzaCIgJiYKICAgICAgICAgICAgICAgICAgICAoKGkgPSB0W3JdLmtzLmspLAogICAgICAgICAgICAgICAgICAgICAgKGEgKz0gYnVpbGRTaGFwZVN0cmluZyhpLCBpLmkubGVuZ3RoLCAhMCwgZSkpKTsKICAgICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJVGV4dEVsZW1lbnQucHJvdG90eXBlLnVwZGF0ZURvY3VtZW50RGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS51cGRhdGVEb2N1bWVudERhdGEoZSwgdCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuY2FuUmVzaXplRm9udCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS5jYW5SZXNpemVGb250KGUpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJVGV4dEVsZW1lbnQucHJvdG90eXBlLnNldE1pbmltdW1Gb250U2l6ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS5zZXRNaW5pbXVtRm9udFNpemUoZSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuYXBwbHlUZXh0UHJvcGVydGllc1RvTWF0cml4ID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHN3aXRjaCAoCiAgICAgICAgICAgICAgICAoZS5wcyAmJiB0LnRyYW5zbGF0ZShlLnBzWzBdLCBlLnBzWzFdICsgZS5hc2NlbnQsIDApLAogICAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZSgwLCAtZS5scywgMCksCiAgICAgICAgICAgICAgICAgIGUuaikKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgdC50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgKyAoZS5ib3hXaWR0aCAtIGUubGluZVdpZHRoc1tyXSksCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgIGUuanVzdGlmeU9mZnNldCArIChlLmJveFdpZHRoIC0gZS5saW5lV2lkdGhzW3JdKSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0LnRyYW5zbGF0ZShuLCBpLCAwKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5idWlsZENvbG9yID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoZVswXSAqIDI1NSkgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKGVbMV0gKiAyNTUpICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChlWzJdICogMjU1KSArCiAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5lbXB0eVByb3AgPSBuZXcgTGV0dGVyUHJvcHMoKSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUudmFsaWRhdGVUZXh0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5Ll9tZGYgfHwgdGhpcy50ZXh0UHJvcGVydHkuX2lzRmlyc3RGcmFtZSkgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuYnVpbGROZXdUZXh0KCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5Ll9pc0ZpcnN0RnJhbWUgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5Ll9tZGYgPSAhMSkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZW1wdHlTaGFwZURhdGEgPSB7IHNoYXBlczogW10gfTsKICAgICAgICAgICAgZnVuY3Rpb24gU1ZHVGV4dExvdHRpZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLnRleHRTcGFucyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlclR5cGUgPSAic3ZnIiksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICBCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIFRyYW5zZm9ybUVsZW1lbnQsCiAgICAgICAgICAgICAgICBTVkdCYXNlRWxlbWVudCwKICAgICAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQsCiAgICAgICAgICAgICAgICBGcmFtZUVsZW1lbnQsCiAgICAgICAgICAgICAgICBSZW5kZXJhYmxlRE9NRWxlbWVudCwKICAgICAgICAgICAgICAgIElUZXh0RWxlbWVudCwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIFNWR1RleHRMb3R0aWVFbGVtZW50CiAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5kYXRhLnNpbmdsZVNoYXBlICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuY2hhcnMgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dENvbnRhaW5lciA9IGNyZWF0ZU5TKCJ0ZXh0IikpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUuYnVpbGRUZXh0Q29udGVudHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgdCA9IDAsIHIgPSBlLmxlbmd0aCwgbiA9IFtdLCBpID0gIiI7IHQgPCByOykKICAgICAgICAgICAgICAgICAgZVt0XSA9PT0gIlxyIiB8fCBlW3RdID09PSAiAyIKICAgICAgICAgICAgICAgICAgICA/IChuLnB1c2goaSksIChpID0gIiIpKQogICAgICAgICAgICAgICAgICAgIDogKGkgKz0gZVt0XSksCiAgICAgICAgICAgICAgICAgICAgKHQgKz0gMSk7CiAgICAgICAgICAgICAgICByZXR1cm4gbi5wdXNoKGkpLCBuOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUuYnVpbGRTaGFwZURhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgICAgaWYgKGUuc2hhcGVzICYmIGUuc2hhcGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICB2YXIgciA9IGUuc2hhcGVzWzBdOwogICAgICAgICAgICAgICAgICBpZiAoci5pdCkgewogICAgICAgICAgICAgICAgICAgIHZhciBuID0gci5pdFtyLml0Lmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgICAgIG4ucyAmJiAoKG4ucy5rWzBdID0gdCksIChuLnMua1sxXSA9IHQpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5idWlsZE5ld1RleHQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFkZER5bmFtaWNQcm9wZXJ0eSh0aGlzKTsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGE7CiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZExldHRlcnMgPSBjcmVhdGVTaXplZEFycmF5KHIgPyByLmwubGVuZ3RoIDogMCkpLAogICAgICAgICAgICAgICAgICByLmZjCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAiZmlsbCIsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkQ29sb3Ioci5mYykKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAicmdiYSgwLDAsMCwwKSIpLAogICAgICAgICAgICAgICAgICByLnNjICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgInN0cm9rZSIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZENvbG9yKHIuc2MpCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCByLnN3KSksCiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC1zaXplIiwgci5maW5hbFNpemUpOwogICAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuZ2V0Rm9udEJ5TmFtZShyLmYpOwogICAgICAgICAgICAgICAgaWYgKG4uZkNsYXNzKSB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgbi5mQ2xhc3MpOwogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC1mYW1pbHkiLCBuLmZGYW1pbHkpOwogICAgICAgICAgICAgICAgICB2YXIgaSA9IHIuZldlaWdodCwKICAgICAgICAgICAgICAgICAgICBhID0gci5mU3R5bGU7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC1zdHlsZSIsIGEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC13ZWlnaHQiLCBpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIHIudCk7CiAgICAgICAgICAgICAgICB2YXIgbyA9IHIubCB8fCBbXSwKICAgICAgICAgICAgICAgICAgbCA9ICEhdGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmNoYXJzOwogICAgICAgICAgICAgICAgdCA9IG8ubGVuZ3RoOwogICAgICAgICAgICAgICAgdmFyIGMsCiAgICAgICAgICAgICAgICAgIHUgPSB0aGlzLm1IZWxwZXIsCiAgICAgICAgICAgICAgICAgIGQgPSAiIiwKICAgICAgICAgICAgICAgICAgRSA9IHRoaXMuZGF0YS5zaW5nbGVTaGFwZSwKICAgICAgICAgICAgICAgICAgYiA9IDAsCiAgICAgICAgICAgICAgICAgIFAgPSAwLAogICAgICAgICAgICAgICAgICBSID0gITAsCiAgICAgICAgICAgICAgICAgIFQgPSByLnRyICogMC4wMDEgKiByLmZpbmFsU2l6ZTsKICAgICAgICAgICAgICAgIGlmIChFICYmICFsICYmICFyLnN6KSB7CiAgICAgICAgICAgICAgICAgIHZhciBNID0gdGhpcy50ZXh0Q29udGFpbmVyLAogICAgICAgICAgICAgICAgICAgIHggPSAic3RhcnQiOwogICAgICAgICAgICAgICAgICBzd2l0Y2ggKHIuaikgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgIHggPSAiZW5kIjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgIHggPSAibWlkZGxlIjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICB4ID0gInN0YXJ0IjsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIE0uc2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIsIHgpLAogICAgICAgICAgICAgICAgICAgIE0uc2V0QXR0cmlidXRlKCJsZXR0ZXItc3BhY2luZyIsIFQpOwogICAgICAgICAgICAgICAgICB2YXIgayA9IHRoaXMuYnVpbGRUZXh0Q29udGVudHMoci5maW5hbFRleHQpOwogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIHQgPSBrLmxlbmd0aCwgUCA9IHIucHMgPyByLnBzWzFdICsgci5hc2NlbnQgOiAwLCBlID0gMDsKICAgICAgICAgICAgICAgICAgICBlIDwgdDsKICAgICAgICAgICAgICAgICAgICBlICs9IDEKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIChjID0gdGhpcy50ZXh0U3BhbnNbZV0uc3BhbiB8fCBjcmVhdGVOUygidHNwYW4iKSksCiAgICAgICAgICAgICAgICAgICAgICAoYy50ZXh0Q29udGVudCA9IGtbZV0pLAogICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoIngiLCAwKSwKICAgICAgICAgICAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJ5IiwgUCksCiAgICAgICAgICAgICAgICAgICAgICAoYy5zdHlsZS5kaXNwbGF5ID0gImluaGVyaXQiKSwKICAgICAgICAgICAgICAgICAgICAgIE0uYXBwZW5kQ2hpbGQoYyksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRTcGFuc1tlXSB8fAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdID0geyBzcGFuOiBudWxsLCBnbHlwaDogbnVsbCB9KSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1tlXS5zcGFuID0gYyksCiAgICAgICAgICAgICAgICAgICAgICAoUCArPSByLmZpbmFsTGluZUhlaWdodCk7CiAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LmFwcGVuZENoaWxkKE0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIFMgPSB0aGlzLnRleHRTcGFucy5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgQTsKICAgICAgICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1tlXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy50ZXh0U3BhbnNbZV0gPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbjogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFNwYW46IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAhbCB8fCAhRSB8fCBlID09PSAwKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAoKGMgPQogICAgICAgICAgICAgICAgICAgICAgICAgIFMgPiBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudGV4dFNwYW5zW2VdLnNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3JlYXRlTlMobCA/ICJnIiA6ICJ0ZXh0IikpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFMgPD0gZSkKICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGMuc2V0QXR0cmlidXRlKCJzdHJva2UtbGluZWNhcCIsICJidXR0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVqb2luIiwgInJvdW5kIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW1pdGVybGltaXQiLCAiNCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLnNwYW4gPSBjKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwpCiAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBPID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBjLmFwcGVuZENoaWxkKE8pLCAodGhpcy50ZXh0U3BhbnNbZV0uY2hpbGRTcGFuID0gTyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLnNwYW4gPSBjKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChjKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGMuc3R5bGUuZGlzcGxheSA9ICJpbmhlcml0IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKHUucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgRSAmJgogICAgICAgICAgICAgICAgICAgICAgICAob1tlXS5uICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChiID0gLVQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFAgKz0gci55T2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQICs9IFIgPyAxIDogMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUiA9ICExKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVRleHRQcm9wZXJ0aWVzVG9NYXRyaXgociwgdSwgb1tlXS5saW5lLCBiLCBQKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoYiArPSBvW2VdLmwgfHwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKz0gVCkpLAogICAgICAgICAgICAgICAgICAgICAgICBsKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgQSA9IHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRDaGFyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgci5maW5hbFRleHRbZV0sCiAgICAgICAgICAgICAgICAgICAgICAgIG4uZlN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuZ2V0Rm9udEJ5TmFtZShyLmYpLmZGYW1pbHkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgRjsKICAgICAgICAgICAgICAgICAgICAgIGlmIChBLnQgPT09IDEpCiAgICAgICAgICAgICAgICAgICAgICAgIEYgPSBuZXcgU1ZHQ29tcEVsZW1lbnQoQS5kYXRhLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBEID0gZW1wdHlTaGFwZURhdGE7CiAgICAgICAgICAgICAgICAgICAgICAgIEEuZGF0YSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIEEuZGF0YS5zaGFwZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoRCA9IHRoaXMuYnVpbGRTaGFwZURhdGEoQS5kYXRhLCByLmZpbmFsU2l6ZSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChGID0gbmV3IFNWR1NoYXBlRWxlbWVudChELCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRleHRTcGFuc1tlXS5nbHlwaCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgSCA9IHRoaXMudGV4dFNwYW5zW2VdLmdseXBoOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRTcGFuc1tlXS5jaGlsZFNwYW4ucmVtb3ZlQ2hpbGQoSC5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIEguZGVzdHJveSgpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLmdseXBoID0gRiksCiAgICAgICAgICAgICAgICAgICAgICAgIChGLl9kZWJ1ZyA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgICAgRi5wcmVwYXJlRnJhbWUoMCksCiAgICAgICAgICAgICAgICAgICAgICAgIEYucmVuZGVyRnJhbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0U3BhbnNbZV0uY2hpbGRTcGFuLmFwcGVuZENoaWxkKEYubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgQS50ID09PSAxICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dFNwYW5zW2VdLmNoaWxkU3Bhbi5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInNjYWxlKCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIHIuZmluYWxTaXplIC8gMTAwICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIHIuZmluYWxTaXplIC8gMTAwICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgIEUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zbGF0ZSgiICsgdS5wcm9wc1sxMl0gKyAiLCIgKyB1LnByb3BzWzEzXSArICIpIgogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAoYy50ZXh0Q29udGVudCA9IG9bZV0udmFsKSwKICAgICAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGVOUygKICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sOnNwYWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlc2VydmUiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgRSAmJiBjICYmIGMuc2V0QXR0cmlidXRlKCJkIiwgZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgKDsgZSA8IHRoaXMudGV4dFNwYW5zLmxlbmd0aDspCiAgICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1tlXS5zcGFuLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpLCAoZSArPSAxKTsKICAgICAgICAgICAgICAgIHRoaXMuX3NpemVDaGFuZ2VkID0gITA7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5zb3VyY2VSZWN0QXRUaW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodGhpcy5wcmVwYXJlRnJhbWUodGhpcy5jb21wLnJlbmRlcmVkRnJhbWUgLSB0aGlzLmRhdGEuc3QpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVySW5uZXJDb250ZW50KCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2l6ZUNoYW5nZWQpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdGhpcy5fc2l6ZUNoYW5nZWQgPSAhMTsKICAgICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmxheWVyRWxlbWVudC5nZXRCQm94KCk7CiAgICAgICAgICAgICAgICAgIHRoaXMuYmJveCA9IHsKICAgICAgICAgICAgICAgICAgICB0b3A6IGUueSwKICAgICAgICAgICAgICAgICAgICBsZWZ0OiBlLngsCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGUud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBlLmhlaWdodCwKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJib3g7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy50ZXh0U3BhbnMubGVuZ3RoLAogICAgICAgICAgICAgICAgICByOwogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlZEZyYW1lID0gdGhpcy5jb21wLnJlbmRlcmVkRnJhbWUsIGUgPSAwOwogICAgICAgICAgICAgICAgICBlIDwgdDsKICAgICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIChyID0gdGhpcy50ZXh0U3BhbnNbZV0uZ2x5cGgpLAogICAgICAgICAgICAgICAgICAgIHIgJiYKICAgICAgICAgICAgICAgICAgICAoci5wcmVwYXJlRnJhbWUodGhpcy5jb21wLnJlbmRlcmVkRnJhbWUgLSB0aGlzLmRhdGEuc3QpLAogICAgICAgICAgICAgICAgICAgICAgci5fbWRmICYmICh0aGlzLl9tZGYgPSAhMCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUucmVuZGVySW5uZXJDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodGhpcy52YWxpZGF0ZVRleHQoKSwKICAgICAgICAgICAgICAgICAgICAoIXRoaXMuZGF0YS5zaW5nbGVTaGFwZSB8fCB0aGlzLl9tZGYpICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dEFuaW1hdG9yLmdldE1lYXN1cmVzKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGEsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZwogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyB8fAogICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0QW5pbWF0b3IubGV0dGVyc0NoYW5nZWRGbGFnKSkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICB0aGlzLl9zaXplQ2hhbmdlZCA9ICEwOwogICAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLnRleHRBbmltYXRvci5yZW5kZXJlZExldHRlcnMsCiAgICAgICAgICAgICAgICAgICAgbiA9IHRoaXMudGV4dFByb3BlcnR5LmN1cnJlbnREYXRhLmw7CiAgICAgICAgICAgICAgICAgIHQgPSBuLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgdmFyIGksIGEsIG87CiAgICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgICAgbltlXS5uIHx8CiAgICAgICAgICAgICAgICAgICAgICAoKGkgPSByW2VdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGEgPSB0aGlzLnRleHRTcGFuc1tlXS5zcGFuKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG8gPSB0aGlzLnRleHRTcGFuc1tlXS5nbHlwaCksCiAgICAgICAgICAgICAgICAgICAgICAgIG8gJiYgby5yZW5kZXJGcmFtZSgpLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYubSAmJiBhLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgaS5tKSwKICAgICAgICAgICAgICAgICAgICAgICAgaS5fbWRmLm8gJiYgYS5zZXRBdHRyaWJ1dGUoIm9wYWNpdHkiLCBpLm8pLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYuc3cgJiYgYS5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIGkuc3cpLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYuc2MgJiYgYS5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsIGkuc2MpLAogICAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYuZmMgJiYgYS5zZXRBdHRyaWJ1dGUoImZpbGwiLCBpLmZjKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIElTb2xpZEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtJSW1hZ2VFbGVtZW50XSwgSVNvbGlkRWxlbWVudCksCiAgICAgICAgICAgICAgKElTb2xpZEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGNyZWF0ZU5TKCJyZWN0Iik7CiAgICAgICAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmRhdGEuc3cpLAogICAgICAgICAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgdGhpcy5kYXRhLnNoKSwKICAgICAgICAgICAgICAgICAgZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCB0aGlzLmRhdGEuc2MpLAogICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChlKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gTnVsbEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRCYXNlRGF0YShlLCB0LCByKSwKICAgICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRUcmFuc2Zvcm0oZSwgdCwgciksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRIaWVyYXJjaHkoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoTnVsbEVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhlLCAhMCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUuZ2V0QmFzZUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoTnVsbEVsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7IH0pLAogICAgICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUuc291cmNlUmVjdEF0VGltZSA9IGZ1bmN0aW9uICgpIHsgfSksCiAgICAgICAgICAgICAgKE51bGxFbGVtZW50LnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgICBbQmFzZUVsZW1lbnQsIFRyYW5zZm9ybUVsZW1lbnQsIEhpZXJhcmNoeUVsZW1lbnQsIEZyYW1lRWxlbWVudF0sCiAgICAgICAgICAgICAgICBOdWxsRWxlbWVudAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR1JlbmRlcmVyQmFzZSgpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0Jhc2VSZW5kZXJlcl0sIFNWR1JlbmRlcmVyQmFzZSksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlTnVsbCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bGxFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlU2hhcGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTVkdTaGFwZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVUZXh0ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU1ZHVGV4dExvdHRpZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVJbWFnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IElJbWFnZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVTb2xpZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IElTb2xpZEVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jb25maWdBbmltYXRpb24gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgInhtbG5zIiwKICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAieG1sbnM6eGxpbmsiLAogICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy52aWV3Qm94U2l6ZQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnZpZXdCb3hTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIDogdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICAgICIwIDAgIiArIGUudyArICIgIiArIGUuaAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnZpZXdCb3hPbmx5IHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIGUudyksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgZS5oKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zdmdFbGVtZW50LnN0eWxlLndpZHRoID0gIjEwMCUiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zdmdFbGVtZW50LnN0eWxlLmhlaWdodCA9ICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlM2QoMCwwLDApIiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudC5zdHlsZS5jb250ZW50VmlzaWJpbGl0eSA9CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5jb250ZW50VmlzaWJpbGl0eSkpLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy53aWR0aCAmJgogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJ3aWR0aCIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcud2lkdGgKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuaGVpZ2h0ICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgImhlaWdodCIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuaGVpZ2h0CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsYXNzTmFtZSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJjbGFzcyIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuY2xhc3NOYW1lCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmlkICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5yZW5kZXJDb25maWcuaWQpLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5mb2N1c2FibGUgIT09IHZvaWQgMCAmJgogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJmb2N1c2FibGUiLAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmZvY3VzYWJsZQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5wcmVzZXJ2ZUFzcGVjdFJhdGlvCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS53cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuc3ZnRWxlbWVudCk7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZ2xvYmFsRGF0YS5kZWZzOwogICAgICAgICAgICAgICAgdGhpcy5zZXR1cEdsb2JhbERhdGEoZSwgdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEucHJvZ3Jlc3NpdmVMb2FkID0KICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5wcm9ncmVzc2l2ZUxvYWQpLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhID0gZSk7CiAgICAgICAgICAgICAgICB2YXIgciA9IGNyZWF0ZU5TKCJjbGlwUGF0aCIpLAogICAgICAgICAgICAgICAgICBuID0gY3JlYXRlTlMoInJlY3QiKTsKICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIGUudyksCiAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBlLmgpLAogICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgieCIsIDApLAogICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgieSIsIDApOwogICAgICAgICAgICAgICAgdmFyIGkgPSBjcmVhdGVFbGVtZW50SUQoKTsKICAgICAgICAgICAgICAgIHIuc2V0QXR0cmlidXRlKCJpZCIsIGkpLAogICAgICAgICAgICAgICAgICByLmFwcGVuZENoaWxkKG4pLAogICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgImNsaXAtcGF0aCIsCiAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBpICsgIikiCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHQuYXBwZW5kQ2hpbGQociksCiAgICAgICAgICAgICAgICAgICh0aGlzLmxheWVycyA9IGUubGF5ZXJzKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBjcmVhdGVTaXplZEFycmF5KGUubGF5ZXJzLmxlbmd0aCkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChTVkdSZW5kZXJlckJhc2UucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0ud3JhcHBlciAmJgogICAgICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIuaW5uZXJUZXh0ID0gIiIpLAogICAgICAgICAgICAgICAgICAodGhpcy5sYXllckVsZW1lbnQgPSBudWxsKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5kZWZzID0gbnVsbCk7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMubGF5ZXJzID8gdGhpcy5sYXllcnMubGVuZ3RoIDogMDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0gJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLmRlc3Ryb3kgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLmRlc3Ryb3koKTsKICAgICAgICAgICAgICAgICh0aGlzLmVsZW1lbnRzLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy5kZXN0cm95ZWQgPSAhMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmFuaW1hdGlvbkl0ZW0gPSBudWxsKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS51cGRhdGVDb250YWluZXJTaXplID0gZnVuY3Rpb24gKCkgeyB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5maW5kSW5kZXhCeUluZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IDAsCiAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmxheWVycy5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXllcnNbdF0uaW5kID09PSBlKSByZXR1cm4gdDsKICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5idWlsZEl0ZW0gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmVsZW1lbnRzOwogICAgICAgICAgICAgICAgaWYgKCEodFtlXSB8fCB0aGlzLmxheWVyc1tlXS50eSA9PT0gOTkpKSB7CiAgICAgICAgICAgICAgICAgIHRbZV0gPSAhMDsKICAgICAgICAgICAgICAgICAgdmFyIHIgPSB0aGlzLmNyZWF0ZUl0ZW0odGhpcy5sYXllcnNbZV0pOwogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKCh0W2VdID0gciksCiAgICAgICAgICAgICAgICAgICAgICBnZXRFeHByZXNzaW9uc1BsdWdpbigpICYmCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sYXllcnNbZV0udHkgPT09IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UucmVnaXN0ZXJDb21wb3NpdGlvbihyKSwKICAgICAgICAgICAgICAgICAgICAgICAgci5pbml0RXhwcmVzc2lvbnMoKSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRJblBvcyhyLCBlKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJzW2VdLnR0KQogICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiA9CiAgICAgICAgICAgICAgICAgICAgICAidHAiIGluIHRoaXMubGF5ZXJzW2VdCiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5maW5kSW5kZXhCeUluZCh0aGlzLmxheWVyc1tlXS50cCkKICAgICAgICAgICAgICAgICAgICAgICAgOiBlIC0gMTsKICAgICAgICAgICAgICAgICAgICBpZiAobiA9PT0gLTEpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWxlbWVudHNbbl0gfHwgdGhpcy5lbGVtZW50c1tuXSA9PT0gITApCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSXRlbShuKSwgdGhpcy5hZGRQZW5kaW5nRWxlbWVudChyKTsKICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBpID0gdFtuXSwKICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGkuZ2V0TWF0dGUodGhpcy5sYXllcnNbZV0udHQpOwogICAgICAgICAgICAgICAgICAgICAgci5zZXRNYXR0ZShhKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jaGVja1BlbmRpbmdFbGVtZW50cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZvciAoOyB0aGlzLnBlbmRpbmdFbGVtZW50cy5sZW5ndGg7KSB7CiAgICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5wZW5kaW5nRWxlbWVudHMucG9wKCk7CiAgICAgICAgICAgICAgICAgIGlmICgoZS5jaGVja1BhcmVudGluZygpLCBlLmRhdGEudHQpKQogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy5lbGVtZW50cy5sZW5ndGg7IHQgPCByOykgewogICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudHNbdF0gPT09IGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG4gPQogICAgICAgICAgICAgICAgICAgICAgICAgICJ0cCIgaW4gZS5kYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZmluZEluZGV4QnlJbmQoZS5kYXRhLnRwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0IC0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gdGhpcy5lbGVtZW50c1tuXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gaS5nZXRNYXR0ZSh0aGlzLmxheWVyc1t0XS50dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGUuc2V0TWF0dGUoYSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgdCArPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLnJlbmRlcmVkRnJhbWUgPT09IGUgfHwgdGhpcy5kZXN0cm95ZWQpKSB7CiAgICAgICAgICAgICAgICAgIGUgPT09IG51bGwKICAgICAgICAgICAgICAgICAgICA/IChlID0gdGhpcy5yZW5kZXJlZEZyYW1lKQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMucmVuZGVyZWRGcmFtZSA9IGUpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZnJhbWVOdW0gPSBlKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZyYW1lSWQgKz0gMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5wcm9qZWN0SW50ZXJmYWNlLmN1cnJlbnRGcmFtZSA9IGUpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuX21kZiA9ICExKTsKICAgICAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlTGF5ZXJzIHx8IHRoaXMuY2hlY2tMYXllcnMoZSksIHQgPSByIC0gMTsKICAgICAgICAgICAgICAgICAgICB0ID49IDA7CiAgICAgICAgICAgICAgICAgICAgdCAtPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3RdKSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1t0XS5wcmVwYXJlRnJhbWUoZSAtIHRoaXMubGF5ZXJzW3RdLnN0KTsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2xvYmFsRGF0YS5fbWRmKQogICAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3RdKSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW3RdLnJlbmRlckZyYW1lKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuYXBwZW5kRWxlbWVudEluUG9zID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgIHZhciByID0gZS5nZXRCYXNlRWxlbWVudCgpOwogICAgICAgICAgICAgICAgaWYgKHIpIHsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IDAsIGk7IG4gPCB0OykKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW25dICYmCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW25dICE9PSAhMCAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tuXS5nZXRCYXNlRWxlbWVudCgpICYmCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IHRoaXMuZWxlbWVudHNbbl0uZ2V0QmFzZUVsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICAgICAobiArPSAxKTsKICAgICAgICAgICAgICAgICAgaQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5sYXllckVsZW1lbnQuaW5zZXJ0QmVmb3JlKHIsIGkpCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIElDb21wRWxlbWVudCgpIHsgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1FbGVtZW50LAogICAgICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgICAgIEZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50LAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgSUNvbXBFbGVtZW50CiAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuaW5pdEVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgICAgdGhpcy5pbml0RnJhbWUoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0QmFzZURhdGEoZSwgdCwgciksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShlLCB0LCByKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgICB0aGlzLmluaXRIaWVyYXJjaHkoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29udGFpbmVyRWxlbWVudHMoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVSZW5kZXJhYmxlQ29tcG9uZW50cygpLAogICAgICAgICAgICAgICAgICAodGhpcy5kYXRhLnh0IHx8ICF0LnByb2dyZXNzaXZlTG9hZCkgJiYgdGhpcy5idWlsZEFsbEl0ZW1zKCksCiAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJQ29tcEVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVQcm9wZXJ0aWVzKGUsIHRoaXMuaXNJblJhbmdlKSwKICAgICAgICAgICAgICAgICAgICAhKCF0aGlzLmlzSW5SYW5nZSAmJiAhdGhpcy5kYXRhLnh0KSkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBpZiAodGhpcy50bS5fcGxhY2Vob2xkZXIpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlZEZyYW1lID0gZSAvIHRoaXMuZGF0YS5zcjsKICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLnRtLnY7CiAgICAgICAgICAgICAgICAgICAgdCA9PT0gdGhpcy5kYXRhLm9wICYmICh0ID0gdGhpcy5kYXRhLm9wIC0gMSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gdCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuZWxlbWVudHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVMYXllcnMgfHwgdGhpcy5jaGVja0xheWVycyh0aGlzLnJlbmRlcmVkRnJhbWUpLAogICAgICAgICAgICAgICAgICAgIHIgPSBuIC0gMTsKICAgICAgICAgICAgICAgICAgICByID49IDA7CiAgICAgICAgICAgICAgICAgICAgciAtPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3JdKSAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHNbcl0ucHJlcGFyZUZyYW1lKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVkRnJhbWUgLSB0aGlzLmxheWVyc1tyXS5zdAogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tyXS5fbWRmICYmICh0aGlzLl9tZGYgPSAhMCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChJQ29tcEVsZW1lbnQucHJvdG90eXBlLnJlbmRlcklubmVyQ29udGVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgICAgICB0ID0gdGhpcy5sYXllcnMubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkKICAgICAgICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgfHwgdGhpcy5lbGVtZW50c1tlXSkgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLnJlbmRlckZyYW1lKCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuc2V0RWxlbWVudHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50czsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoSUNvbXBFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95RWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0gJiYgdGhpcy5lbGVtZW50c1tlXS5kZXN0cm95KCk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveUVsZW1lbnRzKCksIHRoaXMuZGVzdHJveUJhc2VFbGVtZW50KCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIFNWR0NvbXBFbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgICAgICAodGhpcy5sYXllcnMgPSBlLmxheWVycyksCiAgICAgICAgICAgICAgICAodGhpcy5zdXBwb3J0czNkID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5wZW5kaW5nRWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50cyA9IHRoaXMubGF5ZXJzCiAgICAgICAgICAgICAgICAgID8gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLmxheWVycy5sZW5ndGgpCiAgICAgICAgICAgICAgICAgIDogW10pLAogICAgICAgICAgICAgICAgdGhpcy5pbml0RWxlbWVudChlLCB0LCByKSwKICAgICAgICAgICAgICAgICh0aGlzLnRtID0gZS50bQogICAgICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgICAgICA6IHsgX3BsYWNlaG9sZGVyOiAhMCB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgICAgW1NWR1JlbmRlcmVyQmFzZSwgSUNvbXBFbGVtZW50LCBTVkdCYXNlRWxlbWVudF0sCiAgICAgICAgICAgICAgU1ZHQ29tcEVsZW1lbnQKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAoU1ZHQ29tcEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbXAgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTVkdDb21wRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmdW5jdGlvbiBTVkdSZW5kZXJlcihlLCB0KSB7CiAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uSXRlbSA9IGUpLAogICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJzID0gbnVsbCksCiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gLTEpLAogICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudCA9IGNyZWF0ZU5TKCJzdmciKSk7CiAgICAgICAgICAgICAgdmFyIHIgPSAiIjsKICAgICAgICAgICAgICBpZiAodCAmJiB0LnRpdGxlKSB7CiAgICAgICAgICAgICAgICB2YXIgbiA9IGNyZWF0ZU5TKCJ0aXRsZSIpLAogICAgICAgICAgICAgICAgICBpID0gY3JlYXRlRWxlbWVudElEKCk7CiAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgiaWQiLCBpKSwKICAgICAgICAgICAgICAgICAgKG4udGV4dENvbnRlbnQgPSB0LnRpdGxlKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKG4pLAogICAgICAgICAgICAgICAgICAociArPSBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHQgJiYgdC5kZXNjcmlwdGlvbikgewogICAgICAgICAgICAgICAgdmFyIGEgPSBjcmVhdGVOUygiZGVzYyIpLAogICAgICAgICAgICAgICAgICBvID0gY3JlYXRlRWxlbWVudElEKCk7CiAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiaWQiLCBvKSwKICAgICAgICAgICAgICAgICAgKGEudGV4dENvbnRlbnQgPSB0LmRlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKGEpLAogICAgICAgICAgICAgICAgICAociArPSAiICIgKyBvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgciAmJiB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLCByKTsKICAgICAgICAgICAgICB2YXIgbCA9IGNyZWF0ZU5TKCJkZWZzIik7CiAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKGwpOwogICAgICAgICAgICAgIHZhciBjID0gY3JlYXRlTlMoImciKTsKICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuYXBwZW5kQ2hpbGQoYyksCiAgICAgICAgICAgICAgICAodGhpcy5sYXllckVsZW1lbnQgPSBjKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlckNvbmZpZyA9IHsKICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzoKICAgICAgICAgICAgICAgICAgICAodCAmJiB0LnByZXNlcnZlQXNwZWN0UmF0aW8pIHx8ICJ4TWlkWU1pZCBtZWV0IiwKICAgICAgICAgICAgICAgICAgaW1hZ2VQcmVzZXJ2ZUFzcGVjdFJhdGlvOgogICAgICAgICAgICAgICAgICAgICh0ICYmIHQuaW1hZ2VQcmVzZXJ2ZUFzcGVjdFJhdGlvKSB8fCAieE1pZFlNaWQgc2xpY2UiLAogICAgICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0eTogKHQgJiYgdC5jb250ZW50VmlzaWJpbGl0eSkgfHwgInZpc2libGUiLAogICAgICAgICAgICAgICAgICBwcm9ncmVzc2l2ZUxvYWQ6ICh0ICYmIHQucHJvZ3Jlc3NpdmVMb2FkKSB8fCAhMSwKICAgICAgICAgICAgICAgICAgaGlkZU9uVHJhbnNwYXJlbnQ6ICEodCAmJiB0LmhpZGVPblRyYW5zcGFyZW50ID09PSAhMSksCiAgICAgICAgICAgICAgICAgIHZpZXdCb3hPbmx5OiAodCAmJiB0LnZpZXdCb3hPbmx5KSB8fCAhMSwKICAgICAgICAgICAgICAgICAgdmlld0JveFNpemU6ICh0ICYmIHQudmlld0JveFNpemUpIHx8ICExLAogICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICh0ICYmIHQuY2xhc3NOYW1lKSB8fCAiIiwKICAgICAgICAgICAgICAgICAgaWQ6ICh0ICYmIHQuaWQpIHx8ICIiLAogICAgICAgICAgICAgICAgICBmb2N1c2FibGU6IHQgJiYgdC5mb2N1c2FibGUsCiAgICAgICAgICAgICAgICAgIGZpbHRlclNpemU6IHsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS53aWR0aCkgfHwgIjEwMCUiLAogICAgICAgICAgICAgICAgICAgIGhlaWdodDoKICAgICAgICAgICAgICAgICAgICAgICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUuaGVpZ2h0KSB8fCAiMTAwJSIsCiAgICAgICAgICAgICAgICAgICAgeDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS54KSB8fCAiMCUiLAogICAgICAgICAgICAgICAgICAgIHk6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUueSkgfHwgIjAlIiwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgd2lkdGg6IHQgJiYgdC53aWR0aCwKICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0ICYmIHQuaGVpZ2h0LAogICAgICAgICAgICAgICAgICBydW5FeHByZXNzaW9uczoKICAgICAgICAgICAgICAgICAgICAhdCB8fCB0LnJ1bkV4cHJlc3Npb25zID09PSB2b2lkIDAgfHwgdC5ydW5FeHByZXNzaW9ucywKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IHsKICAgICAgICAgICAgICAgICAgX21kZjogITEsCiAgICAgICAgICAgICAgICAgIGZyYW1lTnVtOiAtMSwKICAgICAgICAgICAgICAgICAgZGVmczogbCwKICAgICAgICAgICAgICAgICAgcmVuZGVyQ29uZmlnOiB0aGlzLnJlbmRlckNvbmZpZywKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5wZW5kaW5nRWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgICAodGhpcy5kZXN0cm95ZWQgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlclR5cGUgPSAic3ZnIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTVkdSZW5kZXJlckJhc2VdLCBTVkdSZW5kZXJlciksCiAgICAgICAgICAgICAgKFNWR1JlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVDb21wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU1ZHQ29tcEVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gU2hhcGVUcmFuc2Zvcm1NYW5hZ2VyKCkgewogICAgICAgICAgICAgICh0aGlzLnNlcXVlbmNlcyA9IHt9KSwKICAgICAgICAgICAgICAgICh0aGlzLnNlcXVlbmNlTGlzdCA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybV9rZXlfY291bnQgPSAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBTaGFwZVRyYW5zZm9ybU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGFkZFRyYW5zZm9ybVNlcXVlbmNlOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSB0Lmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSA9ICJfIjsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIGkgKz0gdFtyXS50cmFuc2Zvcm0ua2V5ICsgIl8iOwogICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlzLnNlcXVlbmNlc1tpXTsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIGEgfHwKICAgICAgICAgICAgICAgICAgKChhID0gewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybXM6IFtdLmNvbmNhdCh0KSwKICAgICAgICAgICAgICAgICAgICBmaW5hbFRyYW5zZm9ybTogbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgICAgICAgIF9tZGY6ICExLAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zZXF1ZW5jZXNbaV0gPSBhKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcXVlbmNlTGlzdC5wdXNoKGEpKSwKICAgICAgICAgICAgICAgICAgYQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByb2Nlc3NTZXF1ZW5jZTogZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwLCBpID0gdC50cmFuc2Zvcm1zLmxlbmd0aCwgYSA9IHI7IG4gPCBpICYmICFyOykgewogICAgICAgICAgICAgICAgICBpZiAodC50cmFuc2Zvcm1zW25dLnRyYW5zZm9ybS5tUHJvcHMuX21kZikgewogICAgICAgICAgICAgICAgICAgIGEgPSAhMDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoYSkKICAgICAgICAgICAgICAgICAgZm9yICh0LmZpbmFsVHJhbnNmb3JtLnJlc2V0KCksIG4gPSBpIC0gMTsgbiA+PSAwOyBuIC09IDEpCiAgICAgICAgICAgICAgICAgICAgdC5maW5hbFRyYW5zZm9ybS5tdWx0aXBseSgKICAgICAgICAgICAgICAgICAgICAgIHQudHJhbnNmb3Jtc1tuXS50cmFuc2Zvcm0ubVByb3BzLnYKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdC5fbWRmID0gYTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByb2Nlc3NTZXF1ZW5jZXM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgICAgbiA9IHRoaXMuc2VxdWVuY2VMaXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1NlcXVlbmNlKHRoaXMuc2VxdWVuY2VMaXN0W3JdLCB0KTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGdldE5ld0tleTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtX2tleV9jb3VudCArPSAxKSwKICAgICAgICAgICAgICAgICAgIl8iICsgdGhpcy50cmFuc2Zvcm1fa2V5X2NvdW50CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBsdW1hTG9hZGVyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciB0ID0gIl9fbG90dGllX2VsZW1lbnRfbHVtYV9idWZmZXIiLAogICAgICAgICAgICAgICAgciA9IG51bGwsCiAgICAgICAgICAgICAgICBuID0gbnVsbCwKICAgICAgICAgICAgICAgIGkgPSBudWxsOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGEoKSB7CiAgICAgICAgICAgICAgICB2YXIgYyA9IGNyZWF0ZU5TKCJzdmciKSwKICAgICAgICAgICAgICAgICAgdSA9IGNyZWF0ZU5TKCJmaWx0ZXIiKSwKICAgICAgICAgICAgICAgICAgZCA9IGNyZWF0ZU5TKCJmZUNvbG9yTWF0cml4Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICB1LnNldEF0dHJpYnV0ZSgiaWQiLCB0KSwKICAgICAgICAgICAgICAgICAgZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAibWF0cml4IiksCiAgICAgICAgICAgICAgICAgIGQuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCAic1JHQiIpLAogICAgICAgICAgICAgICAgICBkLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAidmFsdWVzIiwKICAgICAgICAgICAgICAgICAgICAiMC4zLCAwLjMsIDAuMywgMCwgMCwgMC4zLCAwLjMsIDAuMywgMCwgMCwgMC4zLCAwLjMsIDAuMywgMCwgMCwgMC4zLCAwLjMsIDAuMywgMCwgMCIKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChkKSwKICAgICAgICAgICAgICAgICAgYy5hcHBlbmRDaGlsZCh1KSwKICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoImlkIiwgdCArICJfc3ZnIiksCiAgICAgICAgICAgICAgICAgIGZlYXR1cmVTdXBwb3J0LnN2Z0x1bWFIaWRkZW4gJiYgKGMuc3R5bGUuZGlzcGxheSA9ICJub25lIiksCiAgICAgICAgICAgICAgICAgIGMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIG8oKSB7CiAgICAgICAgICAgICAgICByIHx8CiAgICAgICAgICAgICAgICAgICgoaSA9IGEoKSksCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKSwKICAgICAgICAgICAgICAgICAgICAociA9IGNyZWF0ZVRhZygiY2FudmFzIikpLAogICAgICAgICAgICAgICAgICAgIChuID0gci5nZXRDb250ZXh0KCIyZCIpKSwKICAgICAgICAgICAgICAgICAgICAobi5maWx0ZXIgPSAidXJsKCMiICsgdCArICIpIiksCiAgICAgICAgICAgICAgICAgICAgKG4uZmlsbFN0eWxlID0gInJnYmEoMCwwLDAsMCkiKSwKICAgICAgICAgICAgICAgICAgICBuLmZpbGxSZWN0KDAsIDAsIDEsIDEpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbChjKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICByIHx8IG8oKSwKICAgICAgICAgICAgICAgICAgKHIud2lkdGggPSBjLndpZHRoKSwKICAgICAgICAgICAgICAgICAgKHIuaGVpZ2h0ID0gYy5oZWlnaHQpLAogICAgICAgICAgICAgICAgICAobi5maWx0ZXIgPSAidXJsKCMiICsgdCArICIpIiksCiAgICAgICAgICAgICAgICAgIHIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB7IGxvYWQ6IG8sIGdldDogbCB9OwogICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVDYW52YXMoZSwgdCkgewogICAgICAgICAgICAgIGlmIChmZWF0dXJlU3VwcG9ydC5vZmZzY3JlZW5DYW52YXMpCiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9mZnNjcmVlbkNhbnZhcyhlLCB0KTsKICAgICAgICAgICAgICB2YXIgciA9IGNyZWF0ZVRhZygiY2FudmFzIik7CiAgICAgICAgICAgICAgcmV0dXJuIChyLndpZHRoID0gZSksIChyLmhlaWdodCA9IHQpLCByOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBhc3NldExvYWRlciA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIGxvYWRMdW1hQ2FudmFzOiBsdW1hTG9hZGVyLmxvYWQsCiAgICAgICAgICAgICAgICBnZXRMdW1hQ2FudmFzOiBsdW1hTG9hZGVyLmdldCwKICAgICAgICAgICAgICAgIGNyZWF0ZUNhbnZhcywKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgIHJlZ2lzdGVyZWRFZmZlY3RzID0ge307CiAgICAgICAgICAgIGZ1bmN0aW9uIENWRWZmZWN0cyhlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gZS5kYXRhLmVmID8gZS5kYXRhLmVmLmxlbmd0aCA6IDA7CiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzID0gW107CiAgICAgICAgICAgICAgdmFyIG47CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgewogICAgICAgICAgICAgICAgbiA9IG51bGw7CiAgICAgICAgICAgICAgICB2YXIgaSA9IGUuZGF0YS5lZlt0XS50eTsKICAgICAgICAgICAgICAgIGlmIChyZWdpc3RlcmVkRWZmZWN0c1tpXSkgewogICAgICAgICAgICAgICAgICB2YXIgYSA9IHJlZ2lzdGVyZWRFZmZlY3RzW2ldLmVmZmVjdDsKICAgICAgICAgICAgICAgICAgbiA9IG5ldyBhKGUuZWZmZWN0c01hbmFnZXIuZWZmZWN0RWxlbWVudHNbdF0sIGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbiAmJiB0aGlzLmZpbHRlcnMucHVzaChuKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzLmxlbmd0aCAmJiBlLmFkZFJlbmRlcmFibGVDb21wb25lbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKENWRWZmZWN0cy5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgciA9IHRoaXMuZmlsdGVycy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgdGhpcy5maWx0ZXJzW3RdLnJlbmRlckZyYW1lKGUpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQ1ZFZmZlY3RzLnByb3RvdHlwZS5nZXRFZmZlY3RzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgbiA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzW3RdLnR5cGUgPT09IGUgJiYgbi5wdXNoKHRoaXMuZmlsdGVyc1t0XSk7CiAgICAgICAgICAgICAgICByZXR1cm4gbjsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJFZmZlY3QoZSwgdCkgewogICAgICAgICAgICAgIHJlZ2lzdGVyZWRFZmZlY3RzW2VdID0geyBlZmZlY3Q6IHQgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBDVk1hc2tFbGVtZW50KGUsIHQpIHsKICAgICAgICAgICAgICAodGhpcy5kYXRhID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50ID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5tYXNrc1Byb3BlcnRpZXMgPSB0aGlzLmRhdGEubWFza3NQcm9wZXJ0aWVzIHx8IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGgpKTsKICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgIG4gPSB0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGgsCiAgICAgICAgICAgICAgICBpID0gITE7CiAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICAgIHRoaXMubWFza3NQcm9wZXJ0aWVzW3JdLm1vZGUgIT09ICJuIiAmJiAoaSA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbcl0gPSBTaGFwZVByb3BlcnR5RmFjdG9yeS5nZXRTaGFwZVByb3AoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LAogICAgICAgICAgICAgICAgICAgIHRoaXMubWFza3NQcm9wZXJ0aWVzW3JdLAogICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgKHRoaXMuaGFzTWFza3MgPSBpKSwKICAgICAgICAgICAgICAgIGkgJiYgdGhpcy5lbGVtZW50LmFkZFJlbmRlcmFibGVDb21wb25lbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKENWTWFza0VsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGlmICh0aGlzLmhhc01hc2tzKSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMuZWxlbWVudC5maW5hbFRyYW5zZm9ybS5tYXQsCiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLmVsZW1lbnQuY2FudmFzQ29udGV4dCwKICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgbiA9IHRoaXMubWFza3NQcm9wZXJ0aWVzLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgICAgbzsKICAgICAgICAgICAgICAgIGZvciAodC5iZWdpblBhdGgoKSwgciA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hc2tzUHJvcGVydGllc1tyXS5tb2RlICE9PSAibiIpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hc2tzUHJvcGVydGllc1tyXS5pbnYgJiYKICAgICAgICAgICAgICAgICAgICAgICh0Lm1vdmVUbygwLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgdC5saW5lVG8odGhpcy5lbGVtZW50Lmdsb2JhbERhdGEuY29tcFNpemUudywgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHQubGluZVRvKAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5nbG9iYWxEYXRhLmNvbXBTaXplLncsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lmdsb2JhbERhdGEuY29tcFNpemUuaAogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICB0LmxpbmVUbygwLCB0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5jb21wU2l6ZS5oKSwKICAgICAgICAgICAgICAgICAgICAgICAgdC5saW5lVG8oMCwgMCkpLAogICAgICAgICAgICAgICAgICAgICAgKG8gPSB0aGlzLnZpZXdEYXRhW3JdLnYpLAogICAgICAgICAgICAgICAgICAgICAgKGkgPSBlLmFwcGx5VG9Qb2ludEFycmF5KG8udlswXVswXSwgby52WzBdWzFdLCAwKSksCiAgICAgICAgICAgICAgICAgICAgICB0Lm1vdmVUbyhpWzBdLCBpWzFdKTsKICAgICAgICAgICAgICAgICAgICB2YXIgbCwKICAgICAgICAgICAgICAgICAgICAgIGMgPSBvLl9sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgZm9yIChsID0gMTsgbCA8IGM7IGwgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIChhID0gZS5hcHBseVRvVHJpcGxlUG9pbnRzKG8ub1tsIC0gMV0sIG8uaVtsXSwgby52W2xdKSksCiAgICAgICAgICAgICAgICAgICAgICAgIHQuYmV6aWVyQ3VydmVUbyhhWzBdLCBhWzFdLCBhWzJdLCBhWzNdLCBhWzRdLCBhWzVdKTsKICAgICAgICAgICAgICAgICAgICAoYSA9IGUuYXBwbHlUb1RyaXBsZVBvaW50cyhvLm9bbCAtIDFdLCBvLmlbMF0sIG8udlswXSkpLAogICAgICAgICAgICAgICAgICAgICAgdC5iZXppZXJDdXJ2ZVRvKGFbMF0sIGFbMV0sIGFbMl0sIGFbM10sIGFbNF0sIGFbNV0pOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5yZW5kZXJlci5zYXZlKCEwKSwgdC5jbGlwKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoQ1ZNYXNrRWxlbWVudC5wcm90b3R5cGUuZ2V0TWFza1Byb3BlcnR5ID0KICAgICAgICAgICAgICAgIE1hc2tFbGVtZW50LnByb3RvdHlwZS5nZXRNYXNrUHJvcGVydHkpLAogICAgICAgICAgICAgIChDVk1hc2tFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50ID0gbnVsbDsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgZnVuY3Rpb24gQ1ZCYXNlRWxlbWVudCgpIHsgfQogICAgICAgICAgICB2YXIgb3BlcmF0aW9uc01hcCA9IHsKICAgICAgICAgICAgICAxOiAic291cmNlLWluIiwKICAgICAgICAgICAgICAyOiAic291cmNlLW91dCIsCiAgICAgICAgICAgICAgMzogInNvdXJjZS1pbiIsCiAgICAgICAgICAgICAgNDogInNvdXJjZS1vdXQiLAogICAgICAgICAgICB9OwogICAgICAgICAgICAoQ1ZCYXNlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudHM6IGZ1bmN0aW9uICgpIHsgfSwKICAgICAgICAgICAgICBpbml0UmVuZGVyZXJFbGVtZW50OiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgY3JlYXRlQ29udGFpbmVyRWxlbWVudHM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEudHQgPj0gMSkgewogICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcnMgPSBbXTsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dCwKICAgICAgICAgICAgICAgICAgICByID0gYXNzZXRMb2FkZXIuY3JlYXRlQ2FudmFzKAogICAgICAgICAgICAgICAgICAgICAgdC5jYW52YXMud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICB0LmNhbnZhcy5oZWlnaHQKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcnMucHVzaChyKTsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSBhc3NldExvYWRlci5jcmVhdGVDYW52YXMoCiAgICAgICAgICAgICAgICAgICAgdC5jYW52YXMud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgdC5jYW52YXMuaGVpZ2h0CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVycy5wdXNoKG4pLAogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS50dCA+PSAzICYmCiAgICAgICAgICAgICAgICAgICAgIWRvY3VtZW50Ll9pc1Byb3h5ICYmCiAgICAgICAgICAgICAgICAgICAgYXNzZXRMb2FkZXIubG9hZEx1bWFDYW52YXMoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQgPSB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dCksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcyA9IHRoaXMuZ2xvYmFsRGF0YS50cmFuc2Zvcm1DYW52YXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJhYmxlRWZmZWN0c01hbmFnZXIgPSBuZXcgQ1ZFZmZlY3RzKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hFZmZlY3RUcmFuc2Zvcm1zKCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjcmVhdGVDb250ZW50OiBmdW5jdGlvbiAoKSB7IH0sCiAgICAgICAgICAgICAgc2V0QmxlbmRNb2RlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZ2xvYmFsRGF0YTsKICAgICAgICAgICAgICAgIGlmICh0LmJsZW5kTW9kZSAhPT0gdGhpcy5kYXRhLmJtKSB7CiAgICAgICAgICAgICAgICAgIHQuYmxlbmRNb2RlID0gdGhpcy5kYXRhLmJtOwogICAgICAgICAgICAgICAgICB2YXIgciA9IGdldEJsZW5kTW9kZSh0aGlzLmRhdGEuYm0pOwogICAgICAgICAgICAgICAgICB0LmNhbnZhc0NvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNyZWF0ZVJlbmRlcmFibGVDb21wb25lbnRzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAodGhpcy5tYXNrTWFuYWdlciA9IG5ldyBDVk1hc2tFbGVtZW50KHRoaXMuZGF0YSwgdGhpcykpLAogICAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1FZmZlY3RzID0KICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlci5nZXRFZmZlY3RzKAogICAgICAgICAgICAgICAgICAgICAgZWZmZWN0VHlwZXMuVFJBTlNGT1JNX0VGRkVDVAogICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgaGlkZUVsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICF0aGlzLmhpZGRlbiAmJgogICAgICAgICAgICAgICAgICAoIXRoaXMuaXNJblJhbmdlIHx8IHRoaXMuaXNUcmFuc3BhcmVudCkgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuaGlkZGVuID0gITApOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2hvd0VsZW1lbnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHRoaXMuaXNJblJhbmdlICYmCiAgICAgICAgICAgICAgICAgICF0aGlzLmlzVHJhbnNwYXJlbnQgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLmhpZGRlbiA9ICExKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLm1hc2tNYW5hZ2VyLl9pc0ZpcnN0RnJhbWUgPSAhMCkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgY2xlYXJDYW52YXM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICB0LmNsZWFyUmVjdCgKICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYW52YXMudHgsCiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLnR5LAogICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUNhbnZhcy53ICogdGhpcy50cmFuc2Zvcm1DYW52YXMuc3gsCiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLmggKiB0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHByZXBhcmVMYXllcjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS50dCA+PSAxKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5idWZmZXJzWzBdLAogICAgICAgICAgICAgICAgICAgIHIgPSB0LmdldENvbnRleHQoIjJkIik7CiAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXMociksCiAgICAgICAgICAgICAgICAgICAgci5kcmF3SW1hZ2UodGhpcy5jYW52YXNDb250ZXh0LmNhbnZhcywgMCwgMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudFRyYW5zZm9ybSA9IHRoaXMuY2FudmFzQ29udGV4dC5nZXRUcmFuc2Zvcm0oKSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQ2FudmFzKHRoaXMuY2FudmFzQ29udGV4dCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnNldFRyYW5zZm9ybSh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZXhpdExheWVyOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhLnR0ID49IDEpIHsKICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmJ1ZmZlcnNbMV0sCiAgICAgICAgICAgICAgICAgICAgciA9IHQuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckNhbnZhcyhyKSwKICAgICAgICAgICAgICAgICAgICByLmRyYXdJbWFnZSh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXModGhpcy5jYW52YXNDb250ZXh0KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSk7CiAgICAgICAgICAgICAgICAgIHZhciBuID0gdGhpcy5jb21wLmdldEVsZW1lbnRCeUlkKAogICAgICAgICAgICAgICAgICAgICJ0cCIgaW4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLnRwIDogdGhpcy5kYXRhLmluZCAtIDEKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIChuLnJlbmRlckZyYW1lKCEwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgMCwgMCksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHQgPj0gMyAmJiAhZG9jdW1lbnQuX2lzUHJveHkpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIHZhciBpID0gYXNzZXRMb2FkZXIuZ2V0THVtYUNhbnZhcygKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5jYW52YXMKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgYSA9IGkuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICAgICAgICBhLmRyYXdJbWFnZSh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXModGhpcy5jYW52YXNDb250ZXh0KSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5kcmF3SW1hZ2UoaSwgMCwgMCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKHRoaXMuY2FudmFzQ29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPQogICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnNNYXBbdGhpcy5kYXRhLnR0XSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LmRyYXdJbWFnZSh0LCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5jYW52YXNDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICAiZGVzdGluYXRpb24tb3ZlciIpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5kcmF3SW1hZ2UodGhpcy5idWZmZXJzWzBdLCAwLCAwKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY2FudmFzQ29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPQogICAgICAgICAgICAgICAgICAgICAgInNvdXJjZS1vdmVyIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICByZW5kZXJGcmFtZTogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgISh0aGlzLmhpZGRlbiB8fCB0aGlzLmRhdGEuaGQpICYmCiAgICAgICAgICAgICAgICAgICEodGhpcy5kYXRhLnRkID09PSAxICYmICF0KQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyVA=="}},"time_used":64,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":34,"receive":30,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/_nuxt/BXNHQyJN.js","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:49.495Z","timestamp":1785139669495,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /_nuxt/BXNHQyJN.js HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://nconnect.org/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:49 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nLast-Modified: Sat, 20 Jun 2026 07:15:11 GMT\r\nETag: \"b0df-654aa2b82da32-gzip\"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 8719\r\nKeep-Alive: timeout=5, max=97\r\nConnection: Keep-Alive\r\nContent-Type: application/javascript\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":45279,"size_decoded":9070,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text","md5":"2b21c04f6c0d228c3b14aef66302bb05","sha1":"30ef20a8d5d422bf2ad580349f2d80af731a2be3","sha256":"af857f3ede4ccc5ebc5cad0668d9957043924ceb03685b58d6fc19ad3a5168e8","sha512":"fc950f2a7bc7994947843ab73f7582d1a81861a5e2e999e5d23d387009bf64f8def1f376453a6ca74ff742c254b0e2f27f1ab36785d8503bdf4d44f1205d16c1","ssdeep":"768:h/lUftvRFk/fjl+MjGAOmLU+b+1Ep24MfzRBUToBJ17Fw:h/05Fk/fjAMjGAOm7a6p24MfzRBUToLM","tlshash":"00130e06b6f764305723f0b94e1f906a772a568b4da8fdd47a8c56441f0c42ca2f27de","first_seen":"2025-10-23T03:46:52.070534Z","last_seen":"2026-07-27T11:49:48.907119Z","times_seen":8,"resource_available":true,"data":"aW1wb3J0IHsKICB4IGFzIEgsCiAgUiwKICBhZCBhcyBXLAogIGJRIGFzIHAsCiAgYXkgYXMgU2UsCiAgciBhcyBQLAogICQgYXMgQiwKICBhMSBhcyBaLAogIHMgYXMgdiwKICBrIGFzIGhlLAogIGF2IGFzIGV0LAogIGFpIGFzIGIsCiAgYW4gYXMgdHQsCiAgYkMgYXMgYmUsCiAgYiQgYXMgYXQsCiAgYXggYXMgaiwKICBhNyBhcyBGLAogIGE4IGFzICQsCiAgYTAgYXMgeCwKICBhNSBhcyBELAogIGYgYXMgYywKICBJIGFzIHBlLAogIFggYXMgbnQsCiAgYUsgYXMgRywKICBhOSBhcyBsZSwKICBqIGFzIGx0LAogIGFhIGFzIGllLAogIGMwIGFzIGl0LAogIGFlIGFzIHN0LAogIEYgYXMgZGUsCiAgSCBhcyB2ZSwKICBhMiBhcyBlZSwKICBhNCBhcyBrZSwKICBhZiBhcyBmZSwKICBhRyBhcyBydCwKICBhTSBhcyBPLAogIGEzIGFzIENlLAogIGFoIGFzIHV0LAogIGFqIGFzIG90LAogIGJYIGFzIGN0LAp9IGZyb20gIi4vU20ybUNmREUuanMiOwppbXBvcnQgeyBWIGFzIGR0IH0gZnJvbSAiLi9CXzJGa1A4Uy5qcyI7CmltcG9ydCB7IHUgYXMgdnQgfSBmcm9tICIuL0JBakplQmtLLmpzIjsKaW1wb3J0IHsgTSBhcyBmdCB9IGZyb20gIi4vQ0k4VkZzZ0guanMiOwppbXBvcnQgeyBWIGFzIHRlLCBiIGFzIHdlLCBSIGFzIG10LCBjIGFzIEllIH0gZnJvbSAiLi9DTXVVVGxTMi5qcyI7CmltcG9ydCB7IGMgYXMgeXQsIGEgYXMgbWUgfSBmcm9tICIuL0JJcDUtM0VLLmpzIjsKaW1wb3J0IHsKICBlIGFzIEFlLAogIGEgYXMgVmUsCiAgZiBhcyBQZSwKICBvIGFzIExlLAogIGogYXMgZ3QsCiAgdSBhcyBPZSwKICBuIGFzIFN0LAp9IGZyb20gIi4vWmZOWml5Q20uanMiOwppbXBvcnQgeyBtIGFzIEJlLCBhIGFzIF9lLCB1IGFzIE1lLCBiIGFzIGplIH0gZnJvbSAiLi9COFR4VHlhay5qcyI7CmltcG9ydCB7IG0gYXMgaHQsIHUgYXMgYnQgfSBmcm9tICIuL3hVbzVzS0dpLmpzIjsKY29uc3QgYWUgPSBTeW1ib2wuZm9yKCJ2dWV0aWZ5Omxpc3QiKTsKZnVuY3Rpb24geGUoKSB7CiAgY29uc3QgZSA9IEgoYWUsIHsgaGFzUHJlcGVuZDogUighMSksIHVwZGF0ZUhhc1ByZXBlbmQ6ICgpID0+IG51bGwgfSksCiAgICBpID0gewogICAgICBoYXNQcmVwZW5kOiBSKCExKSwKICAgICAgdXBkYXRlSGFzUHJlcGVuZDogKHQpID0+IHsKICAgICAgICB0ICYmIChpLmhhc1ByZXBlbmQudmFsdWUgPSB0KTsKICAgICAgfSwKICAgIH07CiAgcmV0dXJuIFcoYWUsIGkpLCBlOwp9CmZ1bmN0aW9uIFRlKCkgewogIHJldHVybiBIKGFlLCBudWxsKTsKfQpjb25zdCBzZSA9IChlKSA9PiB7CiAgICBjb25zdCBpID0gewogICAgICBhY3RpdmF0ZTogKHQpID0+IHsKICAgICAgICBsZXQgeyBpZDogYSwgdmFsdWU6IGwsIGFjdGl2YXRlZDogbiB9ID0gdDsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgKGEgPSBwKGEpKSwKICAgICAgICAgIChlICYmICFsICYmIG4uc2l6ZSA9PT0gMSAmJiBuLmhhcyhhKSkgfHwgKGwgPyBuLmFkZChhKSA6IG4uZGVsZXRlKGEpKSwKICAgICAgICAgIG4KICAgICAgICApOwogICAgICB9LAogICAgICBpbjogKHQsIGEsIGwpID0+IHsKICAgICAgICBsZXQgbiA9IG5ldyBTZXQoKTsKICAgICAgICBpZiAodCAhPSBudWxsKQogICAgICAgICAgZm9yIChjb25zdCBzIG9mIFNlKHQpKQogICAgICAgICAgICBuID0gaS5hY3RpdmF0ZSh7CiAgICAgICAgICAgICAgaWQ6IHMsCiAgICAgICAgICAgICAgdmFsdWU6ICEwLAogICAgICAgICAgICAgIGFjdGl2YXRlZDogbmV3IFNldChuKSwKICAgICAgICAgICAgICBjaGlsZHJlbjogYSwKICAgICAgICAgICAgICBwYXJlbnRzOiBsLAogICAgICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbjsKICAgICAgfSwKICAgICAgb3V0OiAodCkgPT4gQXJyYXkuZnJvbSh0KSwKICAgIH07CiAgICByZXR1cm4gaTsKICB9LAogIEZlID0gKGUpID0+IHsKICAgIGNvbnN0IGkgPSBzZShlKTsKICAgIHJldHVybiB7CiAgICAgIGFjdGl2YXRlOiAoYSkgPT4gewogICAgICAgIGxldCB7IGFjdGl2YXRlZDogbCwgaWQ6IG4sIC4uLnMgfSA9IGE7CiAgICAgICAgbiA9IHAobik7CiAgICAgICAgY29uc3QgdSA9IGwuaGFzKG4pID8gbmV3IFNldChbbl0pIDogbmV3IFNldCgpOwogICAgICAgIHJldHVybiBpLmFjdGl2YXRlKHsgLi4ucywgaWQ6IG4sIGFjdGl2YXRlZDogdSB9KTsKICAgICAgfSwKICAgICAgaW46IChhLCBsLCBuKSA9PiB7CiAgICAgICAgbGV0IHMgPSBuZXcgU2V0KCk7CiAgICAgICAgaWYgKGEgIT0gbnVsbCkgewogICAgICAgICAgY29uc3QgdSA9IFNlKGEpOwogICAgICAgICAgdS5sZW5ndGggJiYgKHMgPSBpLmluKHUuc2xpY2UoMCwgMSksIGwsIG4pKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHM7CiAgICAgIH0sCiAgICAgIG91dDogKGEsIGwsIG4pID0+IGkub3V0KGEsIGwsIG4pLAogICAgfTsKICB9LAogIHB0ID0gKGUpID0+IHsKICAgIGNvbnN0IGkgPSBzZShlKTsKICAgIHJldHVybiB7CiAgICAgIGFjdGl2YXRlOiAoYSkgPT4gewogICAgICAgIGxldCB7IGlkOiBsLCBhY3RpdmF0ZWQ6IG4sIGNoaWxkcmVuOiBzLCAuLi51IH0gPSBhOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAobCA9IHAobCkpLAogICAgICAgICAgcy5oYXMobCkgPyBuIDogaS5hY3RpdmF0ZSh7IGlkOiBsLCBhY3RpdmF0ZWQ6IG4sIGNoaWxkcmVuOiBzLCAuLi51IH0pCiAgICAgICAgKTsKICAgICAgfSwKICAgICAgaW46IGkuaW4sCiAgICAgIG91dDogaS5vdXQsCiAgICB9OwogIH0sCiAga3QgPSAoZSkgPT4gewogICAgY29uc3QgaSA9IEZlKGUpOwogICAgcmV0dXJuIHsKICAgICAgYWN0aXZhdGU6IChhKSA9PiB7CiAgICAgICAgbGV0IHsgaWQ6IGwsIGFjdGl2YXRlZDogbiwgY2hpbGRyZW46IHMsIC4uLnUgfSA9IGE7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIChsID0gcChsKSksCiAgICAgICAgICBzLmhhcyhsKSA/IG4gOiBpLmFjdGl2YXRlKHsgaWQ6IGwsIGFjdGl2YXRlZDogbiwgY2hpbGRyZW46IHMsIC4uLnUgfSkKICAgICAgICApOwogICAgICB9LAogICAgICBpbjogaS5pbiwKICAgICAgb3V0OiBpLm91dCwKICAgIH07CiAgfSwKICBDdCA9IHsKICAgIG9wZW46IChlKSA9PiB7CiAgICAgIGxldCB7IGlkOiBpLCB2YWx1ZTogdCwgb3BlbmVkOiBhLCBwYXJlbnRzOiBsIH0gPSBlOwogICAgICBpZiAodCkgewogICAgICAgIGNvbnN0IG4gPSBuZXcgU2V0KCk7CiAgICAgICAgbi5hZGQoaSk7CiAgICAgICAgbGV0IHMgPSBsLmdldChpKTsKICAgICAgICBmb3IgKDsgcyAhPSBudWxsOyApIG4uYWRkKHMpLCAocyA9IGwuZ2V0KHMpKTsKICAgICAgICByZXR1cm4gbjsKICAgICAgfSBlbHNlIHJldHVybiBhLmRlbGV0ZShpKSwgYTsKICAgIH0sCiAgICBzZWxlY3Q6ICgpID0+IG51bGwsCiAgfSwKICBEZSA9IHsKICAgIG9wZW46IChlKSA9PiB7CiAgICAgIGxldCB7IGlkOiBpLCB2YWx1ZTogdCwgb3BlbmVkOiBhLCBwYXJlbnRzOiBsIH0gPSBlOwogICAgICBpZiAodCkgewogICAgICAgIGxldCBuID0gbC5nZXQoaSk7CiAgICAgICAgZm9yIChhLmFkZChpKTsgbiAhPSBudWxsICYmIG4gIT09IGk7ICkgYS5hZGQobiksIChuID0gbC5nZXQobikpOwogICAgICAgIHJldHVybiBhOwogICAgICB9IGVsc2UgYS5kZWxldGUoaSk7CiAgICAgIHJldHVybiBhOwogICAgfSwKICAgIHNlbGVjdDogKCkgPT4gbnVsbCwKICB9LAogIHd0ID0gewogICAgb3BlbjogRGUub3BlbiwKICAgIHNlbGVjdDogKGUpID0+IHsKICAgICAgbGV0IHsgaWQ6IGksIHZhbHVlOiB0LCBvcGVuZWQ6IGEsIHBhcmVudHM6IGwgfSA9IGU7CiAgICAgIGlmICghdCkgcmV0dXJuIGE7CiAgICAgIGNvbnN0IG4gPSBbXTsKICAgICAgbGV0IHMgPSBsLmdldChpKTsKICAgICAgZm9yICg7IHMgIT0gbnVsbDsgKSBuLnB1c2gocyksIChzID0gbC5nZXQocykpOwogICAgICByZXR1cm4gbmV3IFNldChuKTsKICAgIH0sCiAgfSwKICByZSA9IChlKSA9PiB7CiAgICBjb25zdCBpID0gewogICAgICBzZWxlY3Q6ICh0KSA9PiB7CiAgICAgICAgbGV0IHsgaWQ6IGEsIHZhbHVlOiBsLCBzZWxlY3RlZDogbiB9ID0gdDsKICAgICAgICBpZiAoKChhID0gcChhKSksIGUgJiYgIWwpKSB7CiAgICAgICAgICBjb25zdCBzID0gQXJyYXkuZnJvbShuLmVudHJpZXMoKSkucmVkdWNlKCh1LCBmKSA9PiB7CiAgICAgICAgICAgIGxldCBbbSwgU10gPSBmOwogICAgICAgICAgICByZXR1cm4gUyA9PT0gIm9uIiAmJiB1LnB1c2gobSksIHU7CiAgICAgICAgICB9LCBbXSk7CiAgICAgICAgICBpZiAocy5sZW5ndGggPT09IDEgJiYgc1swXSA9PT0gYSkgcmV0dXJuIG47CiAgICAgICAgfQogICAgICAgIHJldHVybiBuLnNldChhLCBsID8gIm9uIiA6ICJvZmYiKSwgbjsKICAgICAgfSwKICAgICAgaW46ICh0LCBhLCBsKSA9PiB7CiAgICAgICAgbGV0IG4gPSBuZXcgTWFwKCk7CiAgICAgICAgZm9yIChjb25zdCBzIG9mIHQgfHwgW10pCiAgICAgICAgICBuID0gaS5zZWxlY3QoewogICAgICAgICAgICBpZDogcywKICAgICAgICAgICAgdmFsdWU6ICEwLAogICAgICAgICAgICBzZWxlY3RlZDogbmV3IE1hcChuKSwKICAgICAgICAgICAgY2hpbGRyZW46IGEsCiAgICAgICAgICAgIHBhcmVudHM6IGwsCiAgICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbjsKICAgICAgfSwKICAgICAgb3V0OiAodCkgPT4gewogICAgICAgIGNvbnN0IGEgPSBbXTsKICAgICAgICBmb3IgKGNvbnN0IFtsLCBuXSBvZiB0LmVudHJpZXMoKSkgbiA9PT0gIm9uIiAmJiBhLnB1c2gobCk7CiAgICAgICAgcmV0dXJuIGE7CiAgICAgIH0sCiAgICB9OwogICAgcmV0dXJuIGk7CiAgfSwKICBOZSA9IChlKSA9PiB7CiAgICBjb25zdCBpID0gcmUoZSk7CiAgICByZXR1cm4gewogICAgICBzZWxlY3Q6IChhKSA9PiB7CiAgICAgICAgbGV0IHsgc2VsZWN0ZWQ6IGwsIGlkOiBuLCAuLi5zIH0gPSBhOwogICAgICAgIG4gPSBwKG4pOwogICAgICAgIGNvbnN0IHUgPSBsLmhhcyhuKSA/IG5ldyBNYXAoW1tuLCBsLmdldChuKV1dKSA6IG5ldyBNYXAoKTsKICAgICAgICByZXR1cm4gaS5zZWxlY3QoeyAuLi5zLCBpZDogbiwgc2VsZWN0ZWQ6IHUgfSk7CiAgICAgIH0sCiAgICAgIGluOiAoYSwgbCwgbikgPT4gewogICAgICAgIGxldCBzID0gbmV3IE1hcCgpOwogICAgICAgIHJldHVybiBhICE9IG51bGwgJiYgYS5sZW5ndGggJiYgKHMgPSBpLmluKGEuc2xpY2UoMCwgMSksIGwsIG4pKSwgczsKICAgICAgfSwKICAgICAgb3V0OiAoYSwgbCwgbikgPT4gaS5vdXQoYSwgbCwgbiksCiAgICB9OwogIH0sCiAgSXQgPSAoZSkgPT4gewogICAgY29uc3QgaSA9IHJlKGUpOwogICAgcmV0dXJuIHsKICAgICAgc2VsZWN0OiAoYSkgPT4gewogICAgICAgIGxldCB7IGlkOiBsLCBzZWxlY3RlZDogbiwgY2hpbGRyZW46IHMsIC4uLnUgfSA9IGE7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIChsID0gcChsKSksCiAgICAgICAgICBzLmhhcyhsKSA/IG4gOiBpLnNlbGVjdCh7IGlkOiBsLCBzZWxlY3RlZDogbiwgY2hpbGRyZW46IHMsIC4uLnUgfSkKICAgICAgICApOwogICAgICB9LAogICAgICBpbjogaS5pbiwKICAgICAgb3V0OiBpLm91dCwKICAgIH07CiAgfSwKICBBdCA9IChlKSA9PiB7CiAgICBjb25zdCBpID0gTmUoZSk7CiAgICByZXR1cm4gewogICAgICBzZWxlY3Q6IChhKSA9PiB7CiAgICAgICAgbGV0IHsgaWQ6IGwsIHNlbGVjdGVkOiBuLCBjaGlsZHJlbjogcywgLi4udSB9ID0gYTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgKGwgPSBwKGwpKSwKICAgICAgICAgIHMuaGFzKGwpID8gbiA6IGkuc2VsZWN0KHsgaWQ6IGwsIHNlbGVjdGVkOiBuLCBjaGlsZHJlbjogcywgLi4udSB9KQogICAgICAgICk7CiAgICAgIH0sCiAgICAgIGluOiBpLmluLAogICAgICBvdXQ6IGkub3V0LAogICAgfTsKICB9LAogIFZ0ID0gKGUpID0+IHsKICAgIGNvbnN0IGkgPSB7CiAgICAgIHNlbGVjdDogKHQpID0+IHsKICAgICAgICBsZXQgeyBpZDogYSwgdmFsdWU6IGwsIHNlbGVjdGVkOiBuLCBjaGlsZHJlbjogcywgcGFyZW50czogdSB9ID0gdDsKICAgICAgICBhID0gcChhKTsKICAgICAgICBjb25zdCBmID0gbmV3IE1hcChuKSwKICAgICAgICAgIG0gPSBbYV07CiAgICAgICAgZm9yICg7IG0ubGVuZ3RoOyApIHsKICAgICAgICAgIGNvbnN0IHkgPSBtLnNoaWZ0KCk7CiAgICAgICAgICBuLnNldChwKHkpLCBsID8gIm9uIiA6ICJvZmYiKSwgcy5oYXMoeSkgJiYgbS5wdXNoKC4uLnMuZ2V0KHkpKTsKICAgICAgICB9CiAgICAgICAgbGV0IFMgPSBwKHUuZ2V0KGEpKTsKICAgICAgICBmb3IgKDsgUzsgKSB7CiAgICAgICAgICBjb25zdCB5ID0gcy5nZXQoUyksCiAgICAgICAgICAgIGsgPSB5LmV2ZXJ5KChyKSA9PiBuLmdldChwKHIpKSA9PT0gIm9uIiksCiAgICAgICAgICAgIGggPSB5LmV2ZXJ5KChyKSA9PiAhbi5oYXMocChyKSkgfHwgbi5nZXQocChyKSkgPT09ICJvZmYiKTsKICAgICAgICAgIG4uc2V0KFMsIGsgPyAib24iIDogaCA/ICJvZmYiIDogImluZGV0ZXJtaW5hdGUiKSwgKFMgPSBwKHUuZ2V0KFMpKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBlICYmCiAgICAgICAgICAhbCAmJgogICAgICAgICAgQXJyYXkuZnJvbShuLmVudHJpZXMoKSkucmVkdWNlKChrLCBoKSA9PiB7CiAgICAgICAgICAgIGxldCBbciwgb10gPSBoOwogICAgICAgICAgICByZXR1cm4gbyA9PT0gIm9uIiAmJiBrLnB1c2gociksIGs7CiAgICAgICAgICB9LCBbXSkubGVuZ3RoID09PSAwCiAgICAgICAgICA/IGYKICAgICAgICAgIDogbjsKICAgICAgfSwKICAgICAgaW46ICh0LCBhLCBsKSA9PiB7CiAgICAgICAgbGV0IG4gPSBuZXcgTWFwKCk7CiAgICAgICAgZm9yIChjb25zdCBzIG9mIHQgfHwgW10pCiAgICAgICAgICBuID0gaS5zZWxlY3QoewogICAgICAgICAgICBpZDogcywKICAgICAgICAgICAgdmFsdWU6ICEwLAogICAgICAgICAgICBzZWxlY3RlZDogbmV3IE1hcChuKSwKICAgICAgICAgICAgY2hpbGRyZW46IGEsCiAgICAgICAgICAgIHBhcmVudHM6IGwsCiAgICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbjsKICAgICAgfSwKICAgICAgb3V0OiAodCwgYSkgPT4gewogICAgICAgIGNvbnN0IGwgPSBbXTsKICAgICAgICBmb3IgKGNvbnN0IFtuLCBzXSBvZiB0LmVudHJpZXMoKSkgcyA9PT0gIm9uIiAmJiAhYS5oYXMobikgJiYgbC5wdXNoKG4pOwogICAgICAgIHJldHVybiBsOwogICAgICB9LAogICAgfTsKICAgIHJldHVybiBpOwogIH0sCiAgRSA9IFN5bWJvbC5mb3IoInZ1ZXRpZnk6bmVzdGVkIiksCiAgR2UgPSB7CiAgICBpZDogUigpLAogICAgcm9vdDogewogICAgICByZWdpc3RlcjogKCkgPT4gbnVsbCwKICAgICAgdW5yZWdpc3RlcjogKCkgPT4gbnVsbCwKICAgICAgcGFyZW50czogUChuZXcgTWFwKCkpLAogICAgICBjaGlsZHJlbjogUChuZXcgTWFwKCkpLAogICAgICBvcGVuOiAoKSA9PiBudWxsLAogICAgICBvcGVuT25TZWxlY3Q6ICgpID0+IG51bGwsCiAgICAgIGFjdGl2YXRlOiAoKSA9PiBudWxsLAogICAgICBzZWxlY3Q6ICgpID0+IG51bGwsCiAgICAgIGFjdGl2YXRhYmxlOiBQKCExKSwKICAgICAgc2VsZWN0YWJsZTogUCghMSksCiAgICAgIG9wZW5lZDogUChuZXcgU2V0KCkpLAogICAgICBhY3RpdmF0ZWQ6IFAobmV3IFNldCgpKSwKICAgICAgc2VsZWN0ZWQ6IFAobmV3IE1hcCgpKSwKICAgICAgc2VsZWN0ZWRWYWx1ZXM6IFAoW10pLAogICAgICBnZXRQYXRoOiAoKSA9PiBbXSwKICAgIH0sCiAgfSwKICBQdCA9IEIoCiAgICB7CiAgICAgIGFjdGl2YXRhYmxlOiBCb29sZWFuLAogICAgICBzZWxlY3RhYmxlOiBCb29sZWFuLAogICAgICBhY3RpdmVTdHJhdGVneTogW1N0cmluZywgRnVuY3Rpb24sIE9iamVjdF0sCiAgICAgIHNlbGVjdFN0cmF0ZWd5OiBbU3RyaW5nLCBGdW5jdGlvbiwgT2JqZWN0XSwKICAgICAgb3BlblN0cmF0ZWd5OiBbU3RyaW5nLCBPYmplY3RdLAogICAgICBvcGVuZWQ6IG51bGwsCiAgICAgIGFjdGl2YXRlZDogbnVsbCwKICAgICAgc2VsZWN0ZWQ6IG51bGwsCiAgICAgIG1hbmRhdG9yeTogQm9vbGVhbiwKICAgIH0sCiAgICAibmVzdGVkIgogICksCiAgTHQgPSAoZSkgPT4gewogICAgbGV0IGkgPSAhMTsKICAgIGNvbnN0IHQgPSBQKG5ldyBNYXAoKSksCiAgICAgIGEgPSBQKG5ldyBNYXAoKSksCiAgICAgIGwgPSBaKAogICAgICAgIGUsCiAgICAgICAgIm9wZW5lZCIsCiAgICAgICAgZS5vcGVuZWQsCiAgICAgICAgKHIpID0+IG5ldyBTZXQociksCiAgICAgICAgKHIpID0+IFsuLi5yLnZhbHVlcygpXQogICAgICApLAogICAgICBuID0gdigoKSA9PiB7CiAgICAgICAgaWYgKHR5cGVvZiBlLmFjdGl2ZVN0cmF0ZWd5ID09ICJvYmplY3QiKSByZXR1cm4gZS5hY3RpdmVTdHJhdGVneTsKICAgICAgICBpZiAodHlwZW9mIGUuYWN0aXZlU3RyYXRlZ3kgPT0gImZ1bmN0aW9uIikKICAgICAgICAgIHJldHVybiBlLmFjdGl2ZVN0cmF0ZWd5KGUubWFuZGF0b3J5KTsKICAgICAgICBzd2l0Y2ggKGUuYWN0aXZlU3RyYXRlZ3kpIHsKICAgICAgICAgIGNhc2UgImxlYWYiOgogICAgICAgICAgICByZXR1cm4gcHQoZS5tYW5kYXRvcnkpOwogICAgICAgICAgY2FzZSAic2luZ2xlLWxlYWYiOgogICAgICAgICAgICByZXR1cm4ga3QoZS5tYW5kYXRvcnkpOwogICAgICAgICAgY2FzZSAiaW5kZXBlbmRlbnQiOgogICAgICAgICAgICByZXR1cm4gc2UoZS5tYW5kYXRvcnkpOwogICAgICAgICAgY2FzZSAic2luZ2xlLWluZGVwZW5kZW50IjoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBGZShlLm1hbmRhdG9yeSk7CiAgICAgICAgfQogICAgICB9KSwKICAgICAgcyA9IHYoKCkgPT4gewogICAgICAgIGlmICh0eXBlb2YgZS5zZWxlY3RTdHJhdGVneSA9PSAib2JqZWN0IikgcmV0dXJuIGUuc2VsZWN0U3RyYXRlZ3k7CiAgICAgICAgaWYgKHR5cGVvZiBlLnNlbGVjdFN0cmF0ZWd5ID09ICJmdW5jdGlvbiIpCiAgICAgICAgICByZXR1cm4gZS5zZWxlY3RTdHJhdGVneShlLm1hbmRhdG9yeSk7CiAgICAgICAgc3dpdGNoIChlLnNlbGVjdFN0cmF0ZWd5KSB7CiAgICAgICAgICBjYXNlICJzaW5nbGUtbGVhZiI6CiAgICAgICAgICAgIHJldHVybiBBdChlLm1hbmRhdG9yeSk7CiAgICAgICAgICBjYXNlICJsZWFmIjoKICAgICAgICAgICAgcmV0dXJuIEl0KGUubWFuZGF0b3J5KTsKICAgICAgICAgIGNhc2UgImluZGVwZW5kZW50IjoKICAgICAgICAgICAgcmV0dXJuIHJlKGUubWFuZGF0b3J5KTsKICAgICAgICAgIGNhc2UgInNpbmdsZS1pbmRlcGVuZGVudCI6CiAgICAgICAgICAgIHJldHVybiBOZShlLm1hbmRhdG9yeSk7CiAgICAgICAgICBjYXNlICJjbGFzc2ljIjoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBWdChlLm1hbmRhdG9yeSk7CiAgICAgICAgfQogICAgICB9KSwKICAgICAgdSA9IHYoKCkgPT4gewogICAgICAgIGlmICh0eXBlb2YgZS5vcGVuU3RyYXRlZ3kgPT0gIm9iamVjdCIpIHJldHVybiBlLm9wZW5TdHJhdGVneTsKICAgICAgICBzd2l0Y2ggKGUub3BlblN0cmF0ZWd5KSB7CiAgICAgICAgICBjYXNlICJsaXN0IjoKICAgICAgICAgICAgcmV0dXJuIHd0OwogICAgICAgICAgY2FzZSAic2luZ2xlIjoKICAgICAgICAgICAgcmV0dXJuIEN0OwogICAgICAgICAgY2FzZSAibXVsdGlwbGUiOgogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIERlOwogICAgICAgIH0KICAgICAgfSksCiAgICAgIGYgPSBaKAogICAgICAgIGUsCiAgICAgICAgImFjdGl2YXRlZCIsCiAgICAgICAgZS5hY3RpdmF0ZWQsCiAgICAgICAgKHIpID0+IG4udmFsdWUuaW4ociwgdC52YWx1ZSwgYS52YWx1ZSksCiAgICAgICAgKHIpID0+IG4udmFsdWUub3V0KHIsIHQudmFsdWUsIGEudmFsdWUpCiAgICAgICksCiAgICAgIG0gPSBaKAogICAgICAgIGUsCiAgICAgICAgInNlbGVjdGVkIiwKICAgICAgICBlLnNlbGVjdGVkLAogICAgICAgIChyKSA9PiBzLnZhbHVlLmluKHIsIHQudmFsdWUsIGEudmFsdWUpLAogICAgICAgIChyKSA9PiBzLnZhbHVlLm91dChyLCB0LnZhbHVlLCBhLnZhbHVlKQogICAgICApOwogICAgaGUoKCkgPT4gewogICAgICBpID0gITA7CiAgICB9KTsKICAgIGZ1bmN0aW9uIFMocikgewogICAgICBjb25zdCBvID0gW107CiAgICAgIGxldCBkID0gcjsKICAgICAgZm9yICg7IGQgIT0gbnVsbDsgKSBvLnVuc2hpZnQoZCksIChkID0gYS52YWx1ZS5nZXQoZCkpOwogICAgICByZXR1cm4gbzsKICAgIH0KICAgIGNvbnN0IHkgPSBldCgibmVzdGVkIiksCiAgICAgIGsgPSBuZXcgU2V0KCksCiAgICAgIGggPSB7CiAgICAgICAgaWQ6IFIoKSwKICAgICAgICByb290OiB7CiAgICAgICAgICBvcGVuZWQ6IGwsCiAgICAgICAgICBhY3RpdmF0YWJsZTogYihlLCAiYWN0aXZhdGFibGUiKSwKICAgICAgICAgIHNlbGVjdGFibGU6IGIoZSwgInNlbGVjdGFibGUiKSwKICAgICAgICAgIGFjdGl2YXRlZDogZiwKICAgICAgICAgIHNlbGVjdGVkOiBtLAogICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM6IHYoKCkgPT4gewogICAgICAgICAgICBjb25zdCByID0gW107CiAgICAgICAgICAgIGZvciAoY29uc3QgW28sIGRdIG9mIG0udmFsdWUuZW50cmllcygpKSBkID09PSAib24iICYmIHIucHVzaChvKTsKICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICB9KSwKICAgICAgICAgIHJlZ2lzdGVyOiAociwgbywgZCkgPT4gewogICAgICAgICAgICBpZiAoay5oYXMocikpIHsKICAgICAgICAgICAgICBTKHIpLm1hcChTdHJpbmcpLmpvaW4oIiAtPiAiKSwKICAgICAgICAgICAgICAgIFMobykuY29uY2F0KHIpLm1hcChTdHJpbmcpLmpvaW4oIiAtPiAiKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0gZWxzZSBrLmFkZChyKTsKICAgICAgICAgICAgbyAmJiByICE9PSBvICYmIGEudmFsdWUuc2V0KHIsIG8pLAogICAgICAgICAgICAgIGQgJiYgdC52YWx1ZS5zZXQociwgW10pLAogICAgICAgICAgICAgIG8gIT0gbnVsbCAmJiB0LnZhbHVlLnNldChvLCBbLi4uKHQudmFsdWUuZ2V0KG8pIHx8IFtdKSwgcl0pOwogICAgICAgICAgfSwKICAgICAgICAgIHVucmVnaXN0ZXI6IChyKSA9PiB7CiAgICAgICAgICAgIGlmIChpKSByZXR1cm47CiAgICAgICAgICAgIGsuZGVsZXRlKHIpLCB0LnZhbHVlLmRlbGV0ZShyKTsKICAgICAgICAgICAgY29uc3QgbyA9IGEudmFsdWUuZ2V0KHIpOwogICAgICAgICAgICBpZiAobykgewogICAgICAgICAgICAgIGNvbnN0IGQgPSB0LnZhbHVlLmdldChvKSA/PyBbXTsKICAgICAgICAgICAgICB0LnZhbHVlLnNldCgKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBkLmZpbHRlcigoQykgPT4gQyAhPT0gcikKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGEudmFsdWUuZGVsZXRlKHIpOwogICAgICAgICAgfSwKICAgICAgICAgIG9wZW46IChyLCBvLCBkKSA9PiB7CiAgICAgICAgICAgIHkuZW1pdCgiY2xpY2s6b3BlbiIsIHsgaWQ6IHIsIHZhbHVlOiBvLCBwYXRoOiBTKHIpLCBldmVudDogZCB9KTsKICAgICAgICAgICAgY29uc3QgQyA9IHUudmFsdWUub3Blbih7CiAgICAgICAgICAgICAgaWQ6IHIsCiAgICAgICAgICAgICAgdmFsdWU6IG8sCiAgICAgICAgICAgICAgb3BlbmVkOiBuZXcgU2V0KGwudmFsdWUpLAogICAgICAgICAgICAgIGNoaWxkcmVuOiB0LnZhbHVlLAogICAgICAgICAgICAgIHBhcmVudHM6IGEudmFsdWUsCiAgICAgICAgICAgICAgZXZlbnQ6IGQsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBDICYmIChsLnZhbHVlID0gQyk7CiAgICAgICAgICB9LAogICAgICAgICAgb3Blbk9uU2VsZWN0OiAociwgbywgZCkgPT4gewogICAgICAgICAgICBjb25zdCBDID0gdS52YWx1ZS5zZWxlY3QoewogICAgICAgICAgICAgIGlkOiByLAogICAgICAgICAgICAgIHZhbHVlOiBvLAogICAgICAgICAgICAgIHNlbGVjdGVkOiBuZXcgTWFwKG0udmFsdWUpLAogICAgICAgICAgICAgIG9wZW5lZDogbmV3IFNldChsLnZhbHVlKSwKICAgICAgICAgICAgICBjaGlsZHJlbjogdC52YWx1ZSwKICAgICAgICAgICAgICBwYXJlbnRzOiBhLnZhbHVlLAogICAgICAgICAgICAgIGV2ZW50OiBkLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgQyAmJiAobC52YWx1ZSA9IEMpOwogICAgICAgICAgfSwKICAgICAgICAgIHNlbGVjdDogKHIsIG8sIGQpID0+IHsKICAgICAgICAgICAgeS5lbWl0KCJjbGljazpzZWxlY3QiLCB7IGlkOiByLCB2YWx1ZTogbywgcGF0aDogUyhyKSwgZXZlbnQ6IGQgfSk7CiAgICAgICAgICAgIGNvbnN0IEMgPSBzLnZhbHVlLnNlbGVjdCh7CiAgICAgICAgICAgICAgaWQ6IHIsCiAgICAgICAgICAgICAgdmFsdWU6IG8sCiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IG5ldyBNYXAobS52YWx1ZSksCiAgICAgICAgICAgICAgY2hpbGRyZW46IHQudmFsdWUsCiAgICAgICAgICAgICAgcGFyZW50czogYS52YWx1ZSwKICAgICAgICAgICAgICBldmVudDogZCwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIEMgJiYgKG0udmFsdWUgPSBDKSwgaC5yb290Lm9wZW5PblNlbGVjdChyLCBvLCBkKTsKICAgICAgICAgIH0sCiAgICAgICAgICBhY3RpdmF0ZTogKHIsIG8sIGQpID0+IHsKICAgICAgICAgICAgaWYgKCFlLmFjdGl2YXRhYmxlKSByZXR1cm4gaC5yb290LnNlbGVjdChyLCAhMCwgZCk7CiAgICAgICAgICAgIHkuZW1pdCgiY2xpY2s6YWN0aXZhdGUiLCB7IGlkOiByLCB2YWx1ZTogbywgcGF0aDogUyhyKSwgZXZlbnQ6IGQgfSk7CiAgICAgICAgICAgIGNvbnN0IEMgPSBuLnZhbHVlLmFjdGl2YXRlKHsKICAgICAgICAgICAgICBpZDogciwKICAgICAgICAgICAgICB2YWx1ZTogbywKICAgICAgICAgICAgICBhY3RpdmF0ZWQ6IG5ldyBTZXQoZi52YWx1ZSksCiAgICAgICAgICAgICAgY2hpbGRyZW46IHQudmFsdWUsCiAgICAgICAgICAgICAgcGFyZW50czogYS52YWx1ZSwKICAgICAgICAgICAgICBldmVudDogZCwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIEMgJiYgKGYudmFsdWUgPSBDKTsKICAgICAgICAgIH0sCiAgICAgICAgICBjaGlsZHJlbjogdCwKICAgICAgICAgIHBhcmVudHM6IGEsCiAgICAgICAgICBnZXRQYXRoOiBTLAogICAgICAgIH0sCiAgICAgIH07CiAgICByZXR1cm4gVyhFLCBoKSwgaC5yb290OwogIH0sCiAgUmUgPSAoZSwgaSkgPT4gewogICAgY29uc3QgdCA9IEgoRSwgR2UpLAogICAgICBhID0gU3ltYm9sKHR0KCkpLAogICAgICBsID0gdigoKSA9PiAoZS52YWx1ZSAhPT0gdm9pZCAwID8gZS52YWx1ZSA6IGEpKSwKICAgICAgbiA9IHsKICAgICAgICAuLi50LAogICAgICAgIGlkOiBsLAogICAgICAgIG9wZW46IChzLCB1KSA9PiB0LnJvb3Qub3BlbihsLnZhbHVlLCBzLCB1KSwKICAgICAgICBvcGVuT25TZWxlY3Q6IChzLCB1KSA9PiB0LnJvb3Qub3Blbk9uU2VsZWN0KGwudmFsdWUsIHMsIHUpLAogICAgICAgIGlzT3BlbjogdigoKSA9PiB0LnJvb3Qub3BlbmVkLnZhbHVlLmhhcyhsLnZhbHVlKSksCiAgICAgICAgcGFyZW50OiB2KCgpID0+IHQucm9vdC5wYXJlbnRzLnZhbHVlLmdldChsLnZhbHVlKSksCiAgICAgICAgYWN0aXZhdGU6IChzLCB1KSA9PiB0LnJvb3QuYWN0aXZhdGUobC52YWx1ZSwgcywgdSksCiAgICAgICAgaXNBY3RpdmF0ZWQ6IHYoKCkgPT4gdC5yb290LmFjdGl2YXRlZC52YWx1ZS5oYXMocChsLnZhbHVlKSkpLAogICAgICAgIHNlbGVjdDogKHMsIHUpID0+IHQucm9vdC5zZWxlY3QobC52YWx1ZSwgcywgdSksCiAgICAgICAgaXNTZWxlY3RlZDogdigoKSA9PiB0LnJvb3Quc2VsZWN0ZWQudmFsdWUuZ2V0KHAobC52YWx1ZSkpID09PSAib24iKSwKICAgICAgICBpc0luZGV0ZXJtaW5hdGU6IHYoCiAgICAgICAgICAoKSA9PiB0LnJvb3Quc2VsZWN0ZWQudmFsdWUuZ2V0KHAobC52YWx1ZSkpID09PSAiaW5kZXRlcm1pbmF0ZSIKICAgICAgICApLAogICAgICAgIGlzTGVhZjogdigoKSA9PiAhdC5yb290LmNoaWxkcmVuLnZhbHVlLmdldChsLnZhbHVlKSksCiAgICAgICAgaXNHcm91cEFjdGl2YXRvcjogdC5pc0dyb3VwQWN0aXZhdG9yLAogICAgICB9OwogICAgcmV0dXJuICgKICAgICAgYmUoKCkgPT4gewogICAgICAgICF0LmlzR3JvdXBBY3RpdmF0b3IgJiYgdC5yb290LnJlZ2lzdGVyKGwudmFsdWUsIHQuaWQudmFsdWUsIGkpOwogICAgICB9KSwKICAgICAgaGUoKCkgPT4gewogICAgICAgICF0LmlzR3JvdXBBY3RpdmF0b3IgJiYgdC5yb290LnVucmVnaXN0ZXIobC52YWx1ZSk7CiAgICAgIH0pLAogICAgICBpICYmIFcoRSwgbiksCiAgICAgIG4KICAgICk7CiAgfSwKICBPdCA9ICgpID0+IHsKICAgIGNvbnN0IGUgPSBIKEUsIEdlKTsKICAgIFcoRSwgeyAuLi5lLCBpc0dyb3VwQWN0aXZhdG9yOiAhMCB9KTsKICB9LAogIEJ0ID0gYXQoewogICAgbmFtZTogIlZMaXN0R3JvdXBBY3RpdmF0b3IiLAogICAgc2V0dXAoZSwgaSkgewogICAgICBsZXQgeyBzbG90czogdCB9ID0gaTsKICAgICAgcmV0dXJuICgKICAgICAgICBPdCgpLAogICAgICAgICgpID0+IHsKICAgICAgICAgIHZhciBhOwogICAgICAgICAgcmV0dXJuIChhID0gdC5kZWZhdWx0KSA9PSBudWxsID8gdm9pZCAwIDogYS5jYWxsKHQpOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSksCiAgX3QgPSBCKAogICAgewogICAgICBhY3RpdmVDb2xvcjogU3RyaW5nLAogICAgICBiYXNlQ29sb3I6IFN0cmluZywKICAgICAgY29sb3I6IFN0cmluZywKICAgICAgY29sbGFwc2VJY29uOiB7IHR5cGU6IGosIGRlZmF1bHQ6ICIkY29sbGFwc2UiIH0sCiAgICAgIGV4cGFuZEljb246IHsgdHlwZTogaiwgZGVmYXVsdDogIiRleHBhbmQiIH0sCiAgICAgIHByZXBlbmRJY29uOiBqLAogICAgICBhcHBlbmRJY29uOiBqLAogICAgICBmbHVpZDogQm9vbGVhbiwKICAgICAgc3ViZ3JvdXA6IEJvb2xlYW4sCiAgICAgIHRpdGxlOiBTdHJpbmcsCiAgICAgIHZhbHVlOiBudWxsLAogICAgICAuLi5GKCksCiAgICAgIC4uLiQoKSwKICAgIH0sCiAgICAiVkxpc3RHcm91cCIKICApLAogIHllID0geCgpKHsKICAgIG5hbWU6ICJWTGlzdEdyb3VwIiwKICAgIHByb3BzOiBfdCgpLAogICAgc2V0dXAoZSwgaSkgewogICAgICBsZXQgeyBzbG90czogdCB9ID0gaTsKICAgICAgY29uc3QgeyBpc09wZW46IGEsIG9wZW46IGwsIGlkOiBuIH0gPSBSZShiKGUsICJ2YWx1ZSIpLCAhMCksCiAgICAgICAgcyA9IHYoKCkgPT4gYHYtbGlzdC1ncm91cC0taWQtJHtTdHJpbmcobi52YWx1ZSl9YCksCiAgICAgICAgdSA9IFRlKCksCiAgICAgICAgeyBpc0Jvb3RlZDogZiB9ID0gdnQoKTsKICAgICAgZnVuY3Rpb24gbShoKSB7CiAgICAgICAgaC5zdG9wUHJvcGFnYXRpb24oKSwgbCghYS52YWx1ZSwgaCk7CiAgICAgIH0KICAgICAgY29uc3QgUyA9IHYoKCkgPT4gKHsKICAgICAgICAgIG9uQ2xpY2s6IG0sCiAgICAgICAgICBjbGFzczogInYtbGlzdC1ncm91cF9faGVhZGVyIiwKICAgICAgICAgIGlkOiBzLnZhbHVlLAogICAgICAgIH0pKSwKICAgICAgICB5ID0gdigoKSA9PiAoYS52YWx1ZSA/IGUuY29sbGFwc2VJY29uIDogZS5leHBhbmRJY29uKSksCiAgICAgICAgayA9IHYoKCkgPT4gKHsKICAgICAgICAgIFZMaXN0SXRlbTogewogICAgICAgICAgICBhY3RpdmU6IGEudmFsdWUsCiAgICAgICAgICAgIGFjdGl2ZUNvbG9yOiBlLmFjdGl2ZUNvbG9yLAogICAgICAgICAgICBiYXNlQ29sb3I6IGUuYmFzZUNvbG9yLAogICAgICAgICAgICBjb2xvcjogZS5jb2xvciwKICAgICAgICAgICAgcHJlcGVuZEljb246IGUucHJlcGVuZEljb24gfHwgKGUuc3ViZ3JvdXAgJiYgeS52YWx1ZSksCiAgICAgICAgICAgIGFwcGVuZEljb246IGUuYXBwZW5kSWNvbiB8fCAoIWUuc3ViZ3JvdXAgJiYgeS52YWx1ZSksCiAgICAgICAgICAgIHRpdGxlOiBlLnRpdGxlLAogICAgICAgICAgICB2YWx1ZTogZS52YWx1ZSwKICAgICAgICAgIH0sCiAgICAgICAgfSkpOwogICAgICByZXR1cm4gKAogICAgICAgIEQoKCkgPT4KICAgICAgICAgIGMoCiAgICAgICAgICAgIGUudGFnLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgY2xhc3M6IFsKICAgICAgICAgICAgICAgICJ2LWxpc3QtZ3JvdXAiLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAidi1saXN0LWdyb3VwLS1wcmVwZW5kIjoKICAgICAgICAgICAgICAgICAgICB1ID09IG51bGwgPyB2b2lkIDAgOiB1Lmhhc1ByZXBlbmQudmFsdWUsCiAgICAgICAgICAgICAgICAgICJ2LWxpc3QtZ3JvdXAtLWZsdWlkIjogZS5mbHVpZCwKICAgICAgICAgICAgICAgICAgInYtbGlzdC1ncm91cC0tc3ViZ3JvdXAiOiBlLnN1Ymdyb3VwLAogICAgICAgICAgICAgICAgICAidi1saXN0LWdyb3VwLS1vcGVuIjogYS52YWx1ZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBlLmNsYXNzLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgc3R5bGU6IGUuc3R5bGUsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiBbCiAgICAgICAgICAgICAgICB0LmFjdGl2YXRvciAmJgogICAgICAgICAgICAgICAgICBjKAogICAgICAgICAgICAgICAgICAgIHRlLAogICAgICAgICAgICAgICAgICAgIHsgZGVmYXVsdHM6IGsudmFsdWUgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIGMoQnQsIG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmFjdGl2YXRvcih7IHByb3BzOiBTLnZhbHVlLCBpc09wZW46IGEudmFsdWUgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgIGZ0LAogICAgICAgICAgICAgICAgICB7IHRyYW5zaXRpb246IHsgY29tcG9uZW50OiBkdCB9LCBkaXNhYmxlZDogIWYudmFsdWUgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBoOwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgICAgcGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogInYtbGlzdC1ncm91cF9faXRlbXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAiZ3JvdXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1sYWJlbGxlZGJ5Ijogcy52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGggPSB0LmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiBoLmNhbGwodCldCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbW250LCBhLnZhbHVlXV0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9CiAgICAgICAgICApCiAgICAgICAgKSwKICAgICAgICB7IGlzT3BlbjogYSB9CiAgICAgICk7CiAgICB9LAogIH0pLAogIE10ID0gQih7IG9wYWNpdHk6IFtOdW1iZXIsIFN0cmluZ10sIC4uLkYoKSwgLi4uJCgpIH0sICJWTGlzdEl0ZW1TdWJ0aXRsZSIpLAogIGp0ID0geCgpKHsKICAgIG5hbWU6ICJWTGlzdEl0ZW1TdWJ0aXRsZSIsCiAgICBwcm9wczogTXQoKSwKICAgIHNldHVwKGUsIGkpIHsKICAgICAgbGV0IHsgc2xvdHM6IHQgfSA9IGk7CiAgICAgIHJldHVybiAoCiAgICAgICAgRCgoKSA9PgogICAgICAgICAgYygKICAgICAgICAgICAgZS50YWcsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBjbGFzczogWyJ2LWxpc3QtaXRlbS1zdWJ0aXRsZSIsIGUuY2xhc3NdLAogICAgICAgICAgICAgIHN0eWxlOiBbeyAiLS12LWxpc3QtaXRlbS1zdWJ0aXRsZS1vcGFjaXR5IjogZS5vcGFjaXR5IH0sIGUuc3R5bGVdLAogICAgICAgICAgICB9LAogICAgICAgICAgICB0CiAgICAgICAgICApCiAgICAgICAgKSwKICAgICAgICB7fQogICAgICApOwogICAgfSwKICB9KSwKICB4dCA9IHl0KCJ2LWxpc3QtaXRlbS10aXRsZSIpLAogIFR0ID0gQigKICAgIHsKICAgICAgYWN0aXZlOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IHZvaWQgMCB9LAogICAgICBhY3RpdmVDbGFzczogU3RyaW5nLAogICAgICBhY3RpdmVDb2xvcjogU3RyaW5nLAogICAgICBhcHBlbmRBdmF0YXI6IFN0cmluZywKICAgICAgYXBwZW5kSWNvbjogaiwKICAgICAgYmFzZUNvbG9yOiBTdHJpbmcsCiAgICAgIGRpc2FibGVkOiBCb29sZWFuLAogICAgICBsaW5lczogW0Jvb2xlYW4sIFN0cmluZ10sCiAgICAgIGxpbms6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogdm9pZCAwIH0sCiAgICAgIG5hdjogQm9vbGVhbiwKICAgICAgcHJlcGVuZEF2YXRhcjogU3RyaW5nLAogICAgICBwcmVwZW5kSWNvbjogaiwKICAgICAgcmlwcGxlOiB7IHR5cGU6IFtCb29sZWFuLCBPYmplY3RdLCBkZWZhdWx0OiAhMCB9LAogICAgICBzbGltOiBCb29sZWFuLAogICAgICBzdWJ0aXRsZTogW1N0cmluZywgTnVtYmVyXSwKICAgICAgdGl0bGU6IFtTdHJpbmcsIE51bWJlcl0sCiAgICAgIHZhbHVlOiBudWxsLAogICAgICBvbkNsaWNrOiBHKCksCiAgICAgIG9uQ2xpY2tPbmNlOiBHKCksCiAgICAgIC4uLkFlKCksCiAgICAgIC4uLkYoKSwKICAgICAgLi4uVmUoKSwKICAgICAgLi4uQmUoKSwKICAgICAgLi4ud2UoKSwKICAgICAgLi4uX2UoKSwKICAgICAgLi4uaHQoKSwKICAgICAgLi4uJCgpLAogICAgICAuLi5sZSgpLAogICAgICAuLi5QZSh7IHZhcmlhbnQ6ICJ0ZXh0IiB9KSwKICAgIH0sCiAgICAiVkxpc3RJdGVtIgogICksCiAgZ2UgPSB4KCkoewogICAgbmFtZTogIlZMaXN0SXRlbSIsCiAgICBkaXJlY3RpdmVzOiB7IFJpcHBsZTogbXQgfSwKICAgIHByb3BzOiBUdCgpLAogICAgZW1pdHM6IHsgY2xpY2s6IChlKSA9PiAhMCB9LAogICAgc2V0dXAoZSwgaSkgewogICAgICBsZXQgeyBhdHRyczogdCwgc2xvdHM6IGEsIGVtaXQ6IGwgfSA9IGk7CiAgICAgIGNvbnN0IG4gPSBidChlLCB0KSwKICAgICAgICBzID0gdigoKSA9PiAoZS52YWx1ZSA9PT0gdm9pZCAwID8gbi5ocmVmLnZhbHVlIDogZS52YWx1ZSkpLAogICAgICAgIHsKICAgICAgICAgIGFjdGl2YXRlOiB1LAogICAgICAgICAgaXNBY3RpdmF0ZWQ6IGYsCiAgICAgICAgICBzZWxlY3Q6IG0sCiAgICAgICAgICBpc09wZW46IFMsCiAgICAgICAgICBpc1NlbGVjdGVkOiB5LAogICAgICAgICAgaXNJbmRldGVybWluYXRlOiBrLAogICAgICAgICAgaXNHcm91cEFjdGl2YXRvcjogaCwKICAgICAgICAgIHJvb3Q6IHIsCiAgICAgICAgICBwYXJlbnQ6IG8sCiAgICAgICAgICBvcGVuT25TZWxlY3Q6IGQsCiAgICAgICAgICBpZDogQywKICAgICAgICB9ID0gUmUocywgITEpLAogICAgICAgIEkgPSBUZSgpLAogICAgICAgIEwgPSB2KCgpID0+IHsKICAgICAgICAgIHZhciBnOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgZS5hY3RpdmUgIT09ICExICYmCiAgICAgICAgICAgIChlLmFjdGl2ZSB8fAogICAgICAgICAgICAgICgoZyA9IG4uaXNBY3RpdmUpID09IG51bGwgPyB2b2lkIDAgOiBnLnZhbHVlKSB8fAogICAgICAgICAgICAgIChyLmFjdGl2YXRhYmxlLnZhbHVlID8gZi52YWx1ZSA6IHkudmFsdWUpKQogICAgICAgICAgKTsKICAgICAgICB9KSwKICAgICAgICBOID0gdigoKSA9PiBlLmxpbmsgIT09ICExICYmIG4uaXNMaW5rLnZhbHVlKSwKICAgICAgICBfID0gdigKICAgICAgICAgICgpID0+CiAgICAgICAgICAgICEhSSAmJgogICAgICAgICAgICAoci5zZWxlY3RhYmxlLnZhbHVlIHx8IHIuYWN0aXZhdGFibGUudmFsdWUgfHwgZS52YWx1ZSAhPSBudWxsKQogICAgICAgICksCiAgICAgICAgQSA9IHYoCiAgICAgICAgICAoKSA9PgogICAgICAgICAgICAhZS5kaXNhYmxlZCAmJgogICAgICAgICAgICBlLmxpbmsgIT09ICExICYmCiAgICAgICAgICAgIChlLmxpbmsgfHwgbi5pc0NsaWNrYWJsZS52YWx1ZSB8fCBfLnZhbHVlKQogICAgICAgICksCiAgICAgICAgWCA9IHYoKCkgPT4gZS5yb3VuZGVkIHx8IGUubmF2KSwKICAgICAgICB6ID0gdigoKSA9PiBlLmNvbG9yID8/IGUuYWN0aXZlQ29sb3IpLAogICAgICAgIHEgPSB2KCgpID0+ICh7CiAgICAgICAgICBjb2xvcjogTC52YWx1ZSA/IHoudmFsdWUgPz8gZS5iYXNlQ29sb3IgOiBlLmJhc2VDb2xvciwKICAgICAgICAgIHZhcmlhbnQ6IGUudmFyaWFudCwKICAgICAgICB9KSk7CiAgICAgIGx0KAogICAgICAgICgpID0+IHsKICAgICAgICAgIHZhciBnOwogICAgICAgICAgcmV0dXJuIChnID0gbi5pc0FjdGl2ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IGcudmFsdWU7CiAgICAgICAgfSwKICAgICAgICAoZykgPT4gewogICAgICAgICAgZyAmJiBVKCk7CiAgICAgICAgfQogICAgICApLAogICAgICAgIGJlKCgpID0+IHsKICAgICAgICAgIHZhciBnOwogICAgICAgICAgKGcgPSBuLmlzQWN0aXZlKSAhPSBudWxsICYmIGcudmFsdWUgJiYgVSgpOwogICAgICAgIH0pOwogICAgICBmdW5jdGlvbiBVKCkgewogICAgICAgIG8udmFsdWUgIT0gbnVsbCAmJiByLm9wZW4oby52YWx1ZSwgITApLCBkKCEwKTsKICAgICAgfQogICAgICBjb25zdCB7IHRoZW1lQ2xhc3NlczogUSB9ID0gaWUoZSksCiAgICAgICAgeyBib3JkZXJDbGFzc2VzOiBNIH0gPSBMZShlKSwKICAgICAgICB7IGNvbG9yQ2xhc3NlczogdywgY29sb3JTdHlsZXM6IFQsIHZhcmlhbnRDbGFzc2VzOiBLZSB9ID0gZ3QocSksCiAgICAgICAgeyBkZW5zaXR5Q2xhc3NlczogSGUgfSA9IE9lKGUpLAogICAgICAgIHsgZGltZW5zaW9uU3R5bGVzOiBXZSB9ID0gTWUoZSksCiAgICAgICAgeyBlbGV2YXRpb25DbGFzc2VzOiBYZSB9ID0gSWUoZSksCiAgICAgICAgeyByb3VuZGVkQ2xhc3NlczogemUgfSA9IGplKFgpLAogICAgICAgIHFlID0gdigoKSA9PiAoZS5saW5lcyA/IGB2LWxpc3QtaXRlbS0tJHtlLmxpbmVzfS1saW5lYCA6IHZvaWQgMCkpLAogICAgICAgIEogPSB2KCgpID0+ICh7CiAgICAgICAgICBpc0FjdGl2ZTogTC52YWx1ZSwKICAgICAgICAgIHNlbGVjdDogbSwKICAgICAgICAgIGlzT3BlbjogUy52YWx1ZSwKICAgICAgICAgIGlzU2VsZWN0ZWQ6IHkudmFsdWUsCiAgICAgICAgICBpc0luZGV0ZXJtaW5hdGU6IGsudmFsdWUsCiAgICAgICAgfSkpOwogICAgICBmdW5jdGlvbiBRZShnKSB7CiAgICAgICAgdmFyIEs7CiAgICAgICAgbCgiY2xpY2siLCBnKSwKICAgICAgICAgIEEudmFsdWUgJiYKICAgICAgICAgICAgKChLID0gbi5uYXZpZ2F0ZSkgPT0gbnVsbCB8fCBLLmNhbGwobiwgZyksCiAgICAgICAgICAgICFoICYmCiAgICAgICAgICAgICAgKHIuYWN0aXZhdGFibGUudmFsdWUKICAgICAgICAgICAgICAgID8gdSghZi52YWx1ZSwgZykKICAgICAgICAgICAgICAgIDogKHIuc2VsZWN0YWJsZS52YWx1ZSB8fCBlLnZhbHVlICE9IG51bGwpICYmIG0oIXkudmFsdWUsIGcpKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gSmUoZykgewogICAgICAgIChnLmtleSA9PT0gIkVudGVyIiB8fCBnLmtleSA9PT0gIiAiKSAmJgogICAgICAgICAgKGcucHJldmVudERlZmF1bHQoKSwKICAgICAgICAgIGcudGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoImNsaWNrIiwgZykpKTsKICAgICAgfQogICAgICByZXR1cm4gKAogICAgICAgIEQoKCkgPT4gewogICAgICAgICAgY29uc3QgZyA9IE4udmFsdWUgPyAiYSIgOiBlLnRhZywKICAgICAgICAgICAgSyA9IGEudGl0bGUgfHwgZS50aXRsZSAhPSBudWxsLAogICAgICAgICAgICBZZSA9IGEuc3VidGl0bGUgfHwgZS5zdWJ0aXRsZSAhPSBudWxsLAogICAgICAgICAgICB1ZSA9ICEhKGUuYXBwZW5kQXZhdGFyIHx8IGUuYXBwZW5kSWNvbiksCiAgICAgICAgICAgIFplID0gISEodWUgfHwgYS5hcHBlbmQpLAogICAgICAgICAgICBvZSA9ICEhKGUucHJlcGVuZEF2YXRhciB8fCBlLnByZXBlbmRJY29uKSwKICAgICAgICAgICAgWSA9ICEhKG9lIHx8IGEucHJlcGVuZCk7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBJID09IG51bGwgfHwgSS51cGRhdGVIYXNQcmVwZW5kKFkpLAogICAgICAgICAgICBlLmFjdGl2ZUNvbG9yICYmIGl0KCJhY3RpdmUtY29sb3IiLCBbImNvbG9yIiwgImJhc2UtY29sb3IiXSksCiAgICAgICAgICAgIHBlKAogICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICBnLAogICAgICAgICAgICAgICAgZWUoCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjbGFzczogWwogICAgICAgICAgICAgICAgICAgICAgInYtbGlzdC1pdGVtIiwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInYtbGlzdC1pdGVtLS1hY3RpdmUiOiBMLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAidi1saXN0LWl0ZW0tLWRpc2FibGVkIjogZS5kaXNhYmxlZCwKICAgICAgICAgICAgICAgICAgICAgICAgInYtbGlzdC1pdGVtLS1saW5rIjogQS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgInYtbGlzdC1pdGVtLS1uYXYiOiBlLm5hdiwKICAgICAgICAgICAgICAgICAgICAgICAgInYtbGlzdC1pdGVtLS1wcmVwZW5kIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAhWSAmJiAoSSA9PSBudWxsID8gdm9pZCAwIDogSS5oYXNQcmVwZW5kLnZhbHVlKSwKICAgICAgICAgICAgICAgICAgICAgICAgInYtbGlzdC1pdGVtLS1zbGltIjogZS5zbGltLAogICAgICAgICAgICAgICAgICAgICAgICBbYCR7ZS5hY3RpdmVDbGFzc31gXTogZS5hY3RpdmVDbGFzcyAmJiBMLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIFEudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBNLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgdy52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIEhlLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgWGUudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBxZS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIHplLnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgS2UudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBlLmNsYXNzLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IFtULnZhbHVlLCBXZS52YWx1ZSwgZS5zdHlsZV0sCiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg6IEEudmFsdWUgPyAoSSA/IC0yIDogMCkgOiB2b2lkIDAsCiAgICAgICAgICAgICAgICAgICAgImFyaWEtc2VsZWN0ZWQiOiBfLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICA/IHIuYWN0aXZhdGFibGUudmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgPyBmLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIDogci5zZWxlY3RhYmxlLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgID8geS52YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICA6IEwudmFsdWUKICAgICAgICAgICAgICAgICAgICAgIDogdm9pZCAwLAogICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IFFlLAogICAgICAgICAgICAgICAgICAgIG9uS2V5ZG93bjogQS52YWx1ZSAmJiAhTi52YWx1ZSAmJiBKZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgbi5saW5rUHJvcHMKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICB2YXIgY2U7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgIFN0KEEudmFsdWUgfHwgTC52YWx1ZSwgInYtbGlzdC1pdGVtIiksCiAgICAgICAgICAgICAgICAgICAgICBZICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImRpdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICJwcmVwZW5kIiwgY2xhc3M6ICJ2LWxpc3QtaXRlbV9fcHJlcGVuZCIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnByZXBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogInByZXBlbmQtZGVmYXVsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogIW9lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0czogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBdmF0YXI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHk6IGUuZGVuc2l0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlOiBlLnByZXBlbmRBdmF0YXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWSWNvbjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2l0eTogZS5kZW5zaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogZS5wcmVwZW5kSWNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZMaXN0SXRlbUFjdGlvbjogeyBzdGFydDogITAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFYgPSBhLnByZXBlbmQpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBWLmNhbGwoYSwgSi52YWx1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYyhkZSwgbnVsbCwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmVwZW5kQXZhdGFyICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAicHJlcGVuZC1hdmF0YXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2l0eTogZS5kZW5zaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGUucHJlcGVuZEF2YXRhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJlcGVuZEljb24gJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJwcmVwZW5kLWljb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2l0eTogZS5kZW5zaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogZS5wcmVwZW5kSWNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoImRpdiIsIHsgY2xhc3M6ICJ2LWxpc3QtaXRlbV9fc3BhY2VyIiB9LCBudWxsKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBjKAogICAgICAgICAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAidi1saXN0LWl0ZW1fX2NvbnRlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLW5vLWFjdGl2YXRvciI6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgSyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAidGl0bGUiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoViA9IGEudGl0bGUpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVi5jYWxsKGEsIHsgdGl0bGU6IGUudGl0bGUgfSkpID8/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS50aXRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBZZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAic3VidGl0bGUiIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoViA9IGEuc3VidGl0bGUpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVi5jYWxsKGEsIHsgc3VidGl0bGU6IGUuc3VidGl0bGUgfSkpID8/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdWJ0aXRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoY2UgPSBhLmRlZmF1bHQpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNlLmNhbGwoYSwgSi52YWx1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICBaZSAmJgogICAgICAgICAgICAgICAgICAgICAgICBjKAogICAgICAgICAgICAgICAgICAgICAgICAgICJkaXYiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAiYXBwZW5kIiwgY2xhc3M6ICJ2LWxpc3QtaXRlbV9fYXBwZW5kIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuYXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJhcHBlbmQtZGVmYXVsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogIXVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0czogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBdmF0YXI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHk6IGUuZGVuc2l0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlOiBlLmFwcGVuZEF2YXRhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZJY29uOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW5zaXR5OiBlLmRlbnNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBlLmFwcGVuZEljb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWTGlzdEl0ZW1BY3Rpb246IHsgZW5kOiAhMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBWOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoViA9IGEuYXBwZW5kKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVi5jYWxsKGEsIEoudmFsdWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGMoZGUsIG51bGwsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuYXBwZW5kSWNvbiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogImFwcGVuZC1pY29uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHk6IGUuZGVuc2l0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGUuYXBwZW5kSWNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuYXBwZW5kQXZhdGFyICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAiYXBwZW5kLWF2YXRhciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW5zaXR5OiBlLmRlbnNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTogZS5hcHBlbmRBdmF0YXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCJkaXYiLCB7IGNsYXNzOiAidi1saXN0LWl0ZW1fX3NwYWNlciIgfSwgbnVsbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBbW3N0KCJyaXBwbGUiKSwgQS52YWx1ZSAmJiBlLnJpcHBsZV1dCiAgICAgICAgICAgICkKICAgICAgICAgICk7CiAgICAgICAgfSksCiAgICAgICAgewogICAgICAgICAgYWN0aXZhdGU6IHUsCiAgICAgICAgICBpc0FjdGl2YXRlZDogZiwKICAgICAgICAgIGlzR3JvdXBBY3RpdmF0b3I6IGgsCiAgICAgICAgICBpc1NlbGVjdGVkOiB5LAogICAgICAgICAgbGlzdDogSSwKICAgICAgICAgIHNlbGVjdDogbSwKICAgICAgICAgIHJvb3Q6IHIsCiAgICAgICAgICBpZDogQywKICAgICAgICB9CiAgICAgICk7CiAgICB9LAogIH0pLAogIEZ0ID0gQigKICAgIHsKICAgICAgY29sb3I6IFN0cmluZywKICAgICAgaW5zZXQ6IEJvb2xlYW4sCiAgICAgIHN0aWNreTogQm9vbGVhbiwKICAgICAgdGl0bGU6IFN0cmluZywKICAgICAgLi4uRigpLAogICAgICAuLi4kKCksCiAgICB9LAogICAgIlZMaXN0U3ViaGVhZGVyIgogICksCiAgRHQgPSB4KCkoewogICAgbmFtZTogIlZMaXN0U3ViaGVhZGVyIiwKICAgIHByb3BzOiBGdCgpLAogICAgc2V0dXAoZSwgaSkgewogICAgICBsZXQgeyBzbG90czogdCB9ID0gaTsKICAgICAgY29uc3QgeyB0ZXh0Q29sb3JDbGFzc2VzOiBhLCB0ZXh0Q29sb3JTdHlsZXM6IGwgfSA9IGtlKGIoZSwgImNvbG9yIikpOwogICAgICByZXR1cm4gKAogICAgICAgIEQoKCkgPT4gewogICAgICAgICAgY29uc3QgbiA9ICEhKHQuZGVmYXVsdCB8fCBlLnRpdGxlKTsKICAgICAgICAgIHJldHVybiBjKAogICAgICAgICAgICBlLnRhZywKICAgICAgICAgICAgewogICAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgICAidi1saXN0LXN1YmhlYWRlciIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJ2LWxpc3Qtc3ViaGVhZGVyLS1pbnNldCI6IGUuaW5zZXQsCiAgICAgICAgICAgICAgICAgICJ2LWxpc3Qtc3ViaGVhZGVyLS1zdGlja3kiOiBlLnN0aWNreSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBhLnZhbHVlLAogICAgICAgICAgICAgICAgZS5jbGFzcywKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHN0eWxlOiBbeyB0ZXh0Q29sb3JTdHlsZXM6IGwgfSwgZS5zdHlsZV0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiB7CiAgICAgICAgICAgICAgICB2YXIgczsKICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgIG4gJiYKICAgICAgICAgICAgICAgICAgICBjKCJkaXYiLCB7IGNsYXNzOiAidi1saXN0LXN1YmhlYWRlcl9fdGV4dCIgfSwgWwogICAgICAgICAgICAgICAgICAgICAgKChzID0gdC5kZWZhdWx0KSA9PSBudWxsID8gdm9pZCAwIDogcy5jYWxsKHQpKSA/PyBlLnRpdGxlLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9CiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIHt9CiAgICAgICk7CiAgICB9LAogIH0pLAogIE50ID0gQigKICAgIHsKICAgICAgY29sb3I6IFN0cmluZywKICAgICAgaW5zZXQ6IEJvb2xlYW4sCiAgICAgIGxlbmd0aDogW051bWJlciwgU3RyaW5nXSwKICAgICAgb3BhY2l0eTogW051bWJlciwgU3RyaW5nXSwKICAgICAgdGhpY2tuZXNzOiBbTnVtYmVyLCBTdHJpbmddLAogICAgICB2ZXJ0aWNhbDogQm9vbGVhbiwKICAgICAgLi4uRigpLAogICAgICAuLi5sZSgpLAogICAgfSwKICAgICJWRGl2aWRlciIKICApLAogIEd0ID0geCgpKHsKICAgIG5hbWU6ICJWRGl2aWRlciIsCiAgICBwcm9wczogTnQoKSwKICAgIHNldHVwKGUsIGkpIHsKICAgICAgbGV0IHsgYXR0cnM6IHQsIHNsb3RzOiBhIH0gPSBpOwogICAgICBjb25zdCB7IHRoZW1lQ2xhc3NlczogbCB9ID0gaWUoZSksCiAgICAgICAgeyB0ZXh0Q29sb3JDbGFzc2VzOiBuLCB0ZXh0Q29sb3JTdHlsZXM6IHMgfSA9IGtlKGIoZSwgImNvbG9yIikpLAogICAgICAgIHUgPSB2KCgpID0+IHsKICAgICAgICAgIGNvbnN0IGYgPSB7fTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIGUubGVuZ3RoICYmIChmW2UudmVydGljYWwgPyAiaGVpZ2h0IiA6ICJ3aWR0aCJdID0gZmUoZS5sZW5ndGgpKSwKICAgICAgICAgICAgZS50aGlja25lc3MgJiYKICAgICAgICAgICAgICAoZltlLnZlcnRpY2FsID8gImJvcmRlclJpZ2h0V2lkdGgiIDogImJvcmRlclRvcFdpZHRoIl0gPSBmZSgKICAgICAgICAgICAgICAgIGUudGhpY2tuZXNzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgIGYKICAgICAgICAgICk7CiAgICAgICAgfSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgRCgoKSA9PiB7CiAgICAgICAgICBjb25zdCBmID0gYygKICAgICAgICAgICAgImhyIiwKICAgICAgICAgICAgewogICAgICAgICAgICAgIGNsYXNzOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJ2LWRpdmlkZXIiOiAhMCwKICAgICAgICAgICAgICAgICAgInYtZGl2aWRlci0taW5zZXQiOiBlLmluc2V0LAogICAgICAgICAgICAgICAgICAidi1kaXZpZGVyLS12ZXJ0aWNhbCI6IGUudmVydGljYWwsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbC52YWx1ZSwKICAgICAgICAgICAgICAgIG4udmFsdWUsCiAgICAgICAgICAgICAgICBlLmNsYXNzLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgc3R5bGU6IFsKICAgICAgICAgICAgICAgIHUudmFsdWUsCiAgICAgICAgICAgICAgICBzLnZhbHVlLAogICAgICAgICAgICAgICAgeyAiLS12LWJvcmRlci1vcGFjaXR5IjogZS5vcGFjaXR5IH0sCiAgICAgICAgICAgICAgICBlLnN0eWxlLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgImFyaWEtb3JpZW50YXRpb24iOgogICAgICAgICAgICAgICAgIXQucm9sZSB8fCB0LnJvbGUgPT09ICJzZXBhcmF0b3IiCiAgICAgICAgICAgICAgICAgID8gZS52ZXJ0aWNhbAogICAgICAgICAgICAgICAgICAgID8gInZlcnRpY2FsIgogICAgICAgICAgICAgICAgICAgIDogImhvcml6b250YWwiCiAgICAgICAgICAgICAgICAgIDogdm9pZCAwLAogICAgICAgICAgICAgIHJvbGU6IGAke3Qucm9sZSB8fCAic2VwYXJhdG9yIn1gLAogICAgICAgICAgICB9LAogICAgICAgICAgICBudWxsCiAgICAgICAgICApOwogICAgICAgICAgcmV0dXJuIGEuZGVmYXVsdAogICAgICAgICAgICA/IGMoCiAgICAgICAgICAgICAgICAiZGl2IiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgY2xhc3M6IFsKICAgICAgICAgICAgICAgICAgICAidi1kaXZpZGVyX193cmFwcGVyIiwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAidi1kaXZpZGVyX193cmFwcGVyLS12ZXJ0aWNhbCI6IGUudmVydGljYWwsCiAgICAgICAgICAgICAgICAgICAgICAidi1kaXZpZGVyX193cmFwcGVyLS1pbnNldCI6IGUuaW5zZXQsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBbZiwgYygiZGl2IiwgeyBjbGFzczogInYtZGl2aWRlcl9fY29udGVudCIgfSwgW2EuZGVmYXVsdCgpXSksIGZdCiAgICAgICAgICAgICAgKQogICAgICAgICAgICA6IGY7CiAgICAgICAgfSksCiAgICAgICAge30KICAgICAgKTsKICAgIH0sCiAgfSksCiAgUnQgPSBCKHsgaXRlbXM6IEFycmF5LCByZXR1cm5PYmplY3Q6IEJvb2xlYW4gfSwgIlZMaXN0Q2hpbGRyZW4iKSwKICBFZSA9IHgoKSh7CiAgICBuYW1lOiAiVkxpc3RDaGlsZHJlbiIsCiAgICBwcm9wczogUnQoKSwKICAgIHNldHVwKGUsIGkpIHsKICAgICAgbGV0IHsgc2xvdHM6IHQgfSA9IGk7CiAgICAgIHJldHVybiAoCiAgICAgICAgeGUoKSwKICAgICAgICAoKSA9PiB7CiAgICAgICAgICB2YXIgYSwgbDsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICgoYSA9IHQuZGVmYXVsdCkgPT0gbnVsbCA/IHZvaWQgMCA6IGEuY2FsbCh0KSkgPz8KICAgICAgICAgICAgKChsID0gZS5pdGVtcykgPT0gbnVsbAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBsLm1hcCgobikgPT4gewogICAgICAgICAgICAgICAgICB2YXIgaywgaDsKICAgICAgICAgICAgICAgICAgbGV0IHsgY2hpbGRyZW46IHMsIHByb3BzOiB1LCB0eXBlOiBmLCByYXc6IG0gfSA9IG47CiAgICAgICAgICAgICAgICAgIGlmIChmID09PSAiZGl2aWRlciIpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAgICgoayA9IHQuZGl2aWRlcikgPT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICA/IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgICA6IGsuY2FsbCh0LCB7IHByb3BzOiB1IH0pKSA/PyBjKEd0LCB1LCBudWxsKQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGlmIChmID09PSAic3ViaGVhZGVyIikKICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgKChoID0gdC5zdWJoZWFkZXIpID09IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDAKICAgICAgICAgICAgICAgICAgICAgICAgOiBoLmNhbGwodCwgeyBwcm9wczogdSB9KSkgPz8gYyhEdCwgdSwgbnVsbCkKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBjb25zdCBTID0gewogICAgICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IHQuc3VidGl0bGUKICAgICAgICAgICAgICAgICAgICAgICAgPyAocikgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG8gPSB0LnN1YnRpdGxlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogby5jYWxsKHQsIHsgLi4uciwgaXRlbTogbSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIDogdm9pZCAwLAogICAgICAgICAgICAgICAgICAgICAgcHJlcGVuZDogdC5wcmVwZW5kCiAgICAgICAgICAgICAgICAgICAgICAgID8gKHIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChvID0gdC5wcmVwZW5kKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogby5jYWxsKHQsIHsgLi4uciwgaXRlbTogbSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIDogdm9pZCAwLAogICAgICAgICAgICAgICAgICAgICAgYXBwZW5kOiB0LmFwcGVuZAogICAgICAgICAgICAgICAgICAgICAgICA/IChyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobyA9IHQuYXBwZW5kKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogby5jYWxsKHQsIHsgLi4uciwgaXRlbTogbSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIDogdm9pZCAwLAogICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHQudGl0bGUKICAgICAgICAgICAgICAgICAgICAgICAgPyAocikgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG8gPSB0LnRpdGxlKSA9PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogby5jYWxsKHQsIHsgLi4uciwgaXRlbTogbSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIDogdm9pZCAwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgeSA9IHllLmZpbHRlclByb3BzKHUpOwogICAgICAgICAgICAgICAgICByZXR1cm4gcwogICAgICAgICAgICAgICAgICAgID8gYyh5ZSwgZWUoeyB2YWx1ZTogdSA9PSBudWxsID8gdm9pZCAwIDogdS52YWx1ZSB9LCB5KSwgewogICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0b3I6IChyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHsgcHJvcHM6IG8gfSA9IHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5vLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGUucmV0dXJuT2JqZWN0ID8gbSA6IHUudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdC5oZWFkZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdC5oZWFkZXIoeyBwcm9wczogZCB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjKGdlLCBkLCBTKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogKCkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICBjKEVlLCB7IGl0ZW1zOiBzLCByZXR1cm5PYmplY3Q6IGUucmV0dXJuT2JqZWN0IH0sIHQpLAogICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICA6IHQuaXRlbQogICAgICAgICAgICAgICAgICAgID8gdC5pdGVtKHsgcHJvcHM6IHUgfSkKICAgICAgICAgICAgICAgICAgICA6IGMoZ2UsIGVlKHUsIHsgdmFsdWU6IGUucmV0dXJuT2JqZWN0ID8gbSA6IHUudmFsdWUgfSksIFMpOwogICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgfSksCiAgRXQgPSBCKAogICAgewogICAgICBpdGVtczogeyB0eXBlOiBBcnJheSwgZGVmYXVsdDogKCkgPT4gW10gfSwKICAgICAgaXRlbVRpdGxlOiB7IHR5cGU6IFtTdHJpbmcsIEFycmF5LCBGdW5jdGlvbl0sIGRlZmF1bHQ6ICJ0aXRsZSIgfSwKICAgICAgaXRlbVZhbHVlOiB7IHR5cGU6IFtTdHJpbmcsIEFycmF5LCBGdW5jdGlvbl0sIGRlZmF1bHQ6ICJ2YWx1ZSIgfSwKICAgICAgaXRlbUNoaWxkcmVuOiB7CiAgICAgICAgdHlwZTogW0Jvb2xlYW4sIFN0cmluZywgQXJyYXksIEZ1bmN0aW9uXSwKICAgICAgICBkZWZhdWx0OiAiY2hpbGRyZW4iLAogICAgICB9LAogICAgICBpdGVtUHJvcHM6IHsgdHlwZTogW0Jvb2xlYW4sIFN0cmluZywgQXJyYXksIEZ1bmN0aW9uXSwgZGVmYXVsdDogInByb3BzIiB9LAogICAgICByZXR1cm5PYmplY3Q6IEJvb2xlYW4sCiAgICAgIHZhbHVlQ29tcGFyYXRvcjogeyB0eXBlOiBGdW5jdGlvbiwgZGVmYXVsdDogcnQgfSwKICAgIH0sCiAgICAibGlzdC1pdGVtcyIKICApOwpmdW5jdGlvbiBuZShlLCBpKSB7CiAgY29uc3QgdCA9IE8oaSwgZS5pdGVtVGl0bGUsIGkpLAogICAgYSA9IE8oaSwgZS5pdGVtVmFsdWUsIHQpLAogICAgbCA9IE8oaSwgZS5pdGVtQ2hpbGRyZW4pLAogICAgbiA9CiAgICAgIGUuaXRlbVByb3BzID09PSAhMAogICAgICAgID8gdHlwZW9mIGkgPT0gIm9iamVjdCIgJiYgaSAhPSBudWxsICYmICFBcnJheS5pc0FycmF5KGkpCiAgICAgICAgICA/ICJjaGlsZHJlbiIgaW4gaQogICAgICAgICAgICA/IENlKGksIFsiY2hpbGRyZW4iXSkKICAgICAgICAgICAgOiBpCiAgICAgICAgICA6IHZvaWQgMAogICAgICAgIDogTyhpLCBlLml0ZW1Qcm9wcyksCiAgICBzID0geyB0aXRsZTogdCwgdmFsdWU6IGEsIC4uLm4gfTsKICByZXR1cm4gewogICAgdGl0bGU6IFN0cmluZyhzLnRpdGxlID8/ICIiKSwKICAgIHZhbHVlOiBzLnZhbHVlLAogICAgcHJvcHM6IHMsCiAgICBjaGlsZHJlbjogQXJyYXkuaXNBcnJheShsKSA/ICRlKGUsIGwpIDogdm9pZCAwLAogICAgcmF3OiBpLAogIH07Cn0KZnVuY3Rpb24gJGUoZSwgaSkgewogIGNvbnN0IHQgPSBbXTsKICBmb3IgKGNvbnN0IGEgb2YgaSkgdC5wdXNoKG5lKGUsIGEpKTsKICByZXR1cm4gdDsKfQpmdW5jdGlvbiB0YShlKSB7CiAgY29uc3QgaSA9IHYoKCkgPT4gJGUoZSwgZS5pdGVtcykpLAogICAgdCA9IHYoKCkgPT4gaS52YWx1ZS5zb21lKChuKSA9PiBuLnZhbHVlID09PSBudWxsKSk7CiAgZnVuY3Rpb24gYShuKSB7CiAgICByZXR1cm4gKAogICAgICB0LnZhbHVlIHx8IChuID0gbi5maWx0ZXIoKHMpID0+IHMgIT09IG51bGwpKSwKICAgICAgbi5tYXAoKHMpID0+CiAgICAgICAgZS5yZXR1cm5PYmplY3QgJiYgdHlwZW9mIHMgPT0gInN0cmluZyIKICAgICAgICAgID8gbmUoZSwgcykKICAgICAgICAgIDogaS52YWx1ZS5maW5kKCh1KSA9PiBlLnZhbHVlQ29tcGFyYXRvcihzLCB1LnZhbHVlKSkgfHwgbmUoZSwgcykKICAgICAgKQogICAgKTsKICB9CiAgZnVuY3Rpb24gbChuKSB7CiAgICByZXR1cm4gZS5yZXR1cm5PYmplY3QKICAgICAgPyBuLm1hcCgocykgPT4gewogICAgICAgICAgbGV0IHsgcmF3OiB1IH0gPSBzOwogICAgICAgICAgcmV0dXJuIHU7CiAgICAgICAgfSkKICAgICAgOiBuLm1hcCgocykgPT4gewogICAgICAgICAgbGV0IHsgdmFsdWU6IHUgfSA9IHM7CiAgICAgICAgICByZXR1cm4gdTsKICAgICAgICB9KTsKICB9CiAgcmV0dXJuIHsgaXRlbXM6IGksIHRyYW5zZm9ybUluOiBhLCB0cmFuc2Zvcm1PdXQ6IGwgfTsKfQpmdW5jdGlvbiAkdChlKSB7CiAgcmV0dXJuIHR5cGVvZiBlID09ICJzdHJpbmciIHx8IHR5cGVvZiBlID09ICJudW1iZXIiIHx8IHR5cGVvZiBlID09ICJib29sZWFuIjsKfQpmdW5jdGlvbiBVdChlLCBpKSB7CiAgY29uc3QgdCA9IE8oaSwgZS5pdGVtVHlwZSwgIml0ZW0iKSwKICAgIGEgPSAkdChpKSA/IGkgOiBPKGksIGUuaXRlbVRpdGxlKSwKICAgIGwgPSBPKGksIGUuaXRlbVZhbHVlLCB2b2lkIDApLAogICAgbiA9IE8oaSwgZS5pdGVtQ2hpbGRyZW4pLAogICAgcyA9IGUuaXRlbVByb3BzID09PSAhMCA/IENlKGksIFsiY2hpbGRyZW4iXSkgOiBPKGksIGUuaXRlbVByb3BzKSwKICAgIHUgPSB7IHRpdGxlOiBhLCB2YWx1ZTogbCwgLi4ucyB9OwogIHJldHVybiB7CiAgICB0eXBlOiB0LAogICAgdGl0bGU6IHUudGl0bGUsCiAgICB2YWx1ZTogdS52YWx1ZSwKICAgIHByb3BzOiB1LAogICAgY2hpbGRyZW46IHQgPT09ICJpdGVtIiAmJiBuID8gVWUoZSwgbikgOiB2b2lkIDAsCiAgICByYXc6IGksCiAgfTsKfQpmdW5jdGlvbiBVZShlLCBpKSB7CiAgY29uc3QgdCA9IFtdOwogIGZvciAoY29uc3QgYSBvZiBpKSB0LnB1c2goVXQoZSwgYSkpOwogIHJldHVybiB0Owp9CmZ1bmN0aW9uIEt0KGUpIHsKICByZXR1cm4geyBpdGVtczogdigoKSA9PiBVZShlLCBlLml0ZW1zKSkgfTsKfQpjb25zdCBIdCA9IEIoCiAgICB7CiAgICAgIGJhc2VDb2xvcjogU3RyaW5nLAogICAgICBhY3RpdmVDb2xvcjogU3RyaW5nLAogICAgICBhY3RpdmVDbGFzczogU3RyaW5nLAogICAgICBiZ0NvbG9yOiBTdHJpbmcsCiAgICAgIGRpc2FibGVkOiBCb29sZWFuLAogICAgICBleHBhbmRJY29uOiBqLAogICAgICBjb2xsYXBzZUljb246IGosCiAgICAgIGxpbmVzOiB7IHR5cGU6IFtCb29sZWFuLCBTdHJpbmddLCBkZWZhdWx0OiAib25lIiB9LAogICAgICBzbGltOiBCb29sZWFuLAogICAgICBuYXY6IEJvb2xlYW4sCiAgICAgICJvbkNsaWNrOm9wZW4iOiBHKCksCiAgICAgICJvbkNsaWNrOnNlbGVjdCI6IEcoKSwKICAgICAgIm9uVXBkYXRlOm9wZW5lZCI6IEcoKSwKICAgICAgLi4uUHQoeyBzZWxlY3RTdHJhdGVneTogInNpbmdsZS1sZWFmIiwgb3BlblN0cmF0ZWd5OiAibGlzdCIgfSksCiAgICAgIC4uLkFlKCksCiAgICAgIC4uLkYoKSwKICAgICAgLi4uVmUoKSwKICAgICAgLi4uQmUoKSwKICAgICAgLi4ud2UoKSwKICAgICAgaXRlbVR5cGU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAidHlwZSIgfSwKICAgICAgLi4uRXQoKSwKICAgICAgLi4uX2UoKSwKICAgICAgLi4uJCgpLAogICAgICAuLi5sZSgpLAogICAgICAuLi5QZSh7IHZhcmlhbnQ6ICJ0ZXh0IiB9KSwKICAgIH0sCiAgICAiVkxpc3QiCiAgKSwKICBhYSA9IHgoKSh7CiAgICBuYW1lOiAiVkxpc3QiLAogICAgcHJvcHM6IEh0KCksCiAgICBlbWl0czogewogICAgICAidXBkYXRlOnNlbGVjdGVkIjogKGUpID0+ICEwLAogICAgICAidXBkYXRlOmFjdGl2YXRlZCI6IChlKSA9PiAhMCwKICAgICAgInVwZGF0ZTpvcGVuZWQiOiAoZSkgPT4gITAsCiAgICAgICJjbGljazpvcGVuIjogKGUpID0+ICEwLAogICAgICAiY2xpY2s6YWN0aXZhdGUiOiAoZSkgPT4gITAsCiAgICAgICJjbGljazpzZWxlY3QiOiAoZSkgPT4gITAsCiAgICB9LAogICAgc2V0dXAoZSwgaSkgewogICAgICBsZXQgeyBzbG90czogdCB9ID0gaTsKICAgICAgY29uc3QgeyBpdGVtczogYSB9ID0gS3QoZSksCiAgICAgICAgeyB0aGVtZUNsYXNzZXM6IGwgfSA9IGllKGUpLAogICAgICAgIHsgYmFja2dyb3VuZENvbG9yQ2xhc3NlczogbiwgYmFja2dyb3VuZENvbG9yU3R5bGVzOiBzIH0gPSB1dCgKICAgICAgICAgIGIoZSwgImJnQ29sb3IiKQogICAgICAgICksCiAgICAgICAgeyBib3JkZXJDbGFzc2VzOiB1IH0gPSBMZShlKSwKICAgICAgICB7IGRlbnNpdHlDbGFzc2VzOiBmIH0gPSBPZShlKSwKICAgICAgICB7IGRpbWVuc2lvblN0eWxlczogbSB9ID0gTWUoZSksCiAgICAgICAgeyBlbGV2YXRpb25DbGFzc2VzOiBTIH0gPSBJZShlKSwKICAgICAgICB7IHJvdW5kZWRDbGFzc2VzOiB5IH0gPSBqZShlKSwKICAgICAgICB7IGNoaWxkcmVuOiBrLCBvcGVuOiBoLCBwYXJlbnRzOiByLCBzZWxlY3Q6IG8sIGdldFBhdGg6IGQgfSA9IEx0KGUpLAogICAgICAgIEMgPSB2KCgpID0+IChlLmxpbmVzID8gYHYtbGlzdC0tJHtlLmxpbmVzfS1saW5lYCA6IHZvaWQgMCkpLAogICAgICAgIEkgPSBiKGUsICJhY3RpdmVDb2xvciIpLAogICAgICAgIEwgPSBiKGUsICJiYXNlQ29sb3IiKSwKICAgICAgICBOID0gYihlLCAiY29sb3IiKTsKICAgICAgeGUoKSwKICAgICAgICBvdCh7CiAgICAgICAgICBWTGlzdEdyb3VwOiB7CiAgICAgICAgICAgIGFjdGl2ZUNvbG9yOiBJLAogICAgICAgICAgICBiYXNlQ29sb3I6IEwsCiAgICAgICAgICAgIGNvbG9yOiBOLAogICAgICAgICAgICBleHBhbmRJY29uOiBiKGUsICJleHBhbmRJY29uIiksCiAgICAgICAgICAgIGNvbGxhcHNlSWNvbjogYihlLCAiY29sbGFwc2VJY29uIiksCiAgICAgICAgICB9LAogICAgICAgICAgVkxpc3RJdGVtOiB7CiAgICAgICAgICAgIGFjdGl2ZUNsYXNzOiBiKGUsICJhY3RpdmVDbGFzcyIpLAogICAgICAgICAgICBhY3RpdmVDb2xvcjogSSwKICAgICAgICAgICAgYmFzZUNvbG9yOiBMLAogICAgICAgICAgICBjb2xvcjogTiwKICAgICAgICAgICAgZGVuc2l0eTogYihlLCAiZGVuc2l0eSIpLAogICAgICAgICAgICBkaXNhYmxlZDogYihlLCAiZGlzYWJsZWQiKSwKICAgICAgICAgICAgbGluZXM6IGIoZSwgImxpbmVzIiksCiAgICAgICAgICAgIG5hdjogYihlLCAibmF2IiksCiAgICAgICAgICAgIHNsaW06IGIoZSwgInNsaW0iKSwKICAgICAgICAgICAgdmFyaWFudDogYihlLCAidmFyaWFudCIpLAogICAgICAgICAgfSwKICAgICAgICB9KTsKICAgICAgY29uc3QgXyA9IFIoITEpLAogICAgICAgIEEgPSBQKCk7CiAgICAgIGZ1bmN0aW9uIFgodykgewogICAgICAgIF8udmFsdWUgPSAhMDsKICAgICAgfQogICAgICBmdW5jdGlvbiB6KHcpIHsKICAgICAgICBfLnZhbHVlID0gITE7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcSh3KSB7CiAgICAgICAgdmFyIFQ7CiAgICAgICAgIV8udmFsdWUgJiYKICAgICAgICAgICEoCiAgICAgICAgICAgIHcucmVsYXRlZFRhcmdldCAmJgogICAgICAgICAgICAoVCA9IEEudmFsdWUpICE9IG51bGwgJiYKICAgICAgICAgICAgVC5jb250YWlucyh3LnJlbGF0ZWRUYXJnZXQpCiAgICAgICAgICApICYmCiAgICAgICAgICBNKCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gVSh3KSB7CiAgICAgICAgY29uc3QgVCA9IHcudGFyZ2V0OwogICAgICAgIGlmICghKCFBLnZhbHVlIHx8IFsiSU5QVVQiLCAiVEVYVEFSRUEiXS5pbmNsdWRlcyhULnRhZ05hbWUpKSkgewogICAgICAgICAgaWYgKHcua2V5ID09PSAiQXJyb3dEb3duIikgTSgibmV4dCIpOwogICAgICAgICAgZWxzZSBpZiAody5rZXkgPT09ICJBcnJvd1VwIikgTSgicHJldiIpOwogICAgICAgICAgZWxzZSBpZiAody5rZXkgPT09ICJIb21lIikgTSgiZmlyc3QiKTsKICAgICAgICAgIGVsc2UgaWYgKHcua2V5ID09PSAiRW5kIikgTSgibGFzdCIpOwogICAgICAgICAgZWxzZSByZXR1cm47CiAgICAgICAgICB3LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIFEodykgewogICAgICAgIF8udmFsdWUgPSAhMDsKICAgICAgfQogICAgICBmdW5jdGlvbiBNKHcpIHsKICAgICAgICBpZiAoQS52YWx1ZSkgcmV0dXJuIGN0KEEudmFsdWUsIHcpOwogICAgICB9CiAgICAgIHJldHVybiAoCiAgICAgICAgRCgoKSA9PgogICAgICAgICAgYygKICAgICAgICAgICAgZS50YWcsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICByZWY6IEEsCiAgICAgICAgICAgICAgY2xhc3M6IFsKICAgICAgICAgICAgICAgICJ2LWxpc3QiLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAidi1saXN0LS1kaXNhYmxlZCI6IGUuZGlzYWJsZWQsCiAgICAgICAgICAgICAgICAgICJ2LWxpc3QtLW5hdiI6IGUubmF2LAogICAgICAgICAgICAgICAgICAidi1saXN0LS1zbGltIjogZS5zbGltLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGwudmFsdWUsCiAgICAgICAgICAgICAgICBuLnZhbHVlLAogICAgICAgICAgICAgICAgdS52YWx1ZSwKICAgICAgICAgICAgICAgIGYudmFsdWUsCiAgICAgICAgICAgICAgICBTLnZhbHVlLAogICAgICAgICAgICAgICAgQy52YWx1ZSwKICAgICAgICAgICAgICAgIHkudmFsdWUsCiAgICAgICAgICAgICAgICBlLmNsYXNzLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgc3R5bGU6IFtzLnZhbHVlLCBtLnZhbHVlLCBlLnN0eWxlXSwKICAgICAgICAgICAgICB0YWJpbmRleDogZS5kaXNhYmxlZCB8fCBfLnZhbHVlID8gLTEgOiAwLAogICAgICAgICAgICAgIHJvbGU6ICJsaXN0Ym94IiwKICAgICAgICAgICAgICAiYXJpYS1hY3RpdmVkZXNjZW5kYW50Ijogdm9pZCAwLAogICAgICAgICAgICAgIG9uRm9jdXNpbjogWCwKICAgICAgICAgICAgICBvbkZvY3Vzb3V0OiB6LAogICAgICAgICAgICAgIG9uRm9jdXM6IHEsCiAgICAgICAgICAgICAgb25LZXlkb3duOiBVLAogICAgICAgICAgICAgIG9uTW91c2Vkb3duOiBRLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgZGVmYXVsdDogKCkgPT4gWwogICAgICAgICAgICAgICAgYyhFZSwgeyBpdGVtczogYS52YWx1ZSwgcmV0dXJuT2JqZWN0OiBlLnJldHVybk9iamVjdCB9LCB0KSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9CiAgICAgICAgICApCiAgICAgICAgKSwKICAgICAgICB7IG9wZW46IGgsIHNlbGVjdDogbywgZm9jdXM6IE0sIGNoaWxkcmVuOiBrLCBwYXJlbnRzOiByLCBnZXRQYXRoOiBkIH0KICAgICAgKTsKICAgIH0sCiAgfSk7CmV4cG9ydCB7IGFhIGFzIFYsIGdlIGFzIGEsIEd0IGFzIGIsIHh0IGFzIGMsIEV0IGFzIG0sIHRhIGFzIHUgfTsK"}},"time_used":36,"timings":{"blocked":9,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"nconnect.org/api/v1/calculation/directions","fqdn":"nconnect.org","domain":"nconnect.org","tld":"org"},"ip":{"addr":"77.110.106.191","port":443,"asn":0,"as":"","country":"Lebanon","country_code":"LB"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://nconnect.org/","date":"2026-07-27T08:07:50.467Z","timestamp":1785139670467,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"nconnect.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 06:12:49 GMT","end":"Fri, 18 Sep 2026 06:12:48 GMT"},"fingerprint":{"sha1":"C8:60:CB:20:BF:5D:83:92:6A:B3:9F:3C:7A:62:A4:FC:96:5E:35:78","sha256":"3E:4A:08:D5:51:2C:21:E4:49:4C:87:5B:5C:A7:0D:E6:12:EF:D1:F8:40:E7:B8:13:76:CC:BC:D4:5A:E2:BB:53"}}},"request":{"raw":"GET /api/v1/calculation/directions HTTP/1.1\r\nHost: nconnect.org\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://nconnect.org/En\r\nclient-id: $2y$12$ZO0grh5OxBtbvRwhZ44gAuszo//Jdrb48emsErh8VW76k9jVpvCGK\r\ncontent-type: application/json\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: i18n_redirected=En\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nDate: Mon, 27 Jul 2026 08:07:50 GMT\r\nServer: Apache/2.4.58 (Ubuntu)\r\nContent-Length: 4042\r\nKeep-Alive: timeout=5, max=83\r\nConnection: Keep-Alive\r\nContent-Type: application/json\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Apache HTTP Server:2.4.58","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":4042,"size_decoded":4239,"mime_type":"application/json","magic":"JSON text data","md5":"426d629ee379848a5ba67ed775899c96","sha1":"fc022a49a53adf467652ed5d9ae66eec7cdd5a09","sha256":"128f6620a2bb6db9f0d0672d82ddc280de6fa9830de22054a1121f10ae8eca10","sha512":"62deecf3ed17ab71c22dc7e076734bdf3eee5da11388e9fa520f0378b53bd65238c0c1735de5a8c7c097921d61c4a195c1d6d157070b59e829a43437ba16b59f","ssdeep":"","tlshash":"83816e1577f87df0c73704802ce7bbb966ae2224d9e7e6d603eed28c42c4570851a95b","first_seen":"2025-10-23T03:46:52.707976Z","last_seen":"2026-07-27T11:49:48.958199Z","times_seen":8,"resource_available":false,"data":"eyJkYXRhIjpbeyJjdXJyZW5jeV9pZCI6MSwidGl0bGUiOiJCVEMgIiwic2x1ZyI6IkJUQyIsImN1cnJlbmN5X2NvZGUiOiJCVEMiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL2J0Yy5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6MiwidGl0bGUiOiJFVEggIiwic2x1ZyI6IkVUSCIsImN1cnJlbmN5X2NvZGUiOiJFVEgiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL2V0aC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6MywidGl0bGUiOiJUUlggIiwic2x1ZyI6IlRSWCIsImN1cnJlbmN5X2NvZGUiOiJUUlgiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3RyeC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6NCwidGl0bGUiOiJYUlAgIiwic2x1ZyI6IlhSUCIsImN1cnJlbmN5X2NvZGUiOiJYUlAiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3hycC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6NSwidGl0bGUiOiJMVEMgIiwic2x1ZyI6IkxUQyIsImN1cnJlbmN5X2NvZGUiOiJMVEMiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL2x0Yy5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6NiwidGl0bGUiOiJUT04gIiwic2x1ZyI6IlRPTiIsImN1cnJlbmN5X2NvZGUiOiJUT04iLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3Rvbi5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6NywidGl0bGUiOiJVU0RUIEVSQzIwIiwic2x1ZyI6IlVTRFQiLCJjdXJyZW5jeV9jb2RlIjoiVVNEVCIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvdXNkdC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6IkVSQzIwIn0seyJjdXJyZW5jeV9pZCI6OCwidGl0bGUiOiJVU0RUIFRSQzIwIiwic2x1ZyI6IlVTRFQiLCJjdXJyZW5jeV9jb2RlIjoiVVNEVCIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvdXNkdC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6IlRSQzIwIn0seyJjdXJyZW5jeV9pZCI6OSwidGl0bGUiOiJVU0RUIFRPTiIsInNsdWciOiJVU0RUIiwiY3VycmVuY3lfY29kZSI6IlVTRFQiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3VzZHQucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjEsIm5ldHdvcmsiOiJUT04ifSx7ImN1cnJlbmN5X2lkIjoxMCwidGl0bGUiOiJVU0RUIFNPTCIsInNsdWciOiJVU0RUIiwiY3VycmVuY3lfY29kZSI6IlVTRFQiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3VzZHQucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjEsIm5ldHdvcmsiOiJTT0wifSx7ImN1cnJlbmN5X2lkIjoxMSwidGl0bGUiOiJEQUkgIiwic2x1ZyI6IkRBSSIsImN1cnJlbmN5X2NvZGUiOiJEQUkiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL2RhaS5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6MTIsInRpdGxlIjoiRE9UICIsInNsdWciOiJET1QiLCJjdXJyZW5jeV9jb2RlIjoiRE9UIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9kb3QucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjEsIm5ldHdvcmsiOm51bGx9LHsiY3VycmVuY3lfaWQiOjEzLCJ0aXRsZSI6IlVTREMgRVJDMjAiLCJzbHVnIjoiVVNEQyIsImN1cnJlbmN5X2NvZGUiOiJVU0RDIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC91c2RjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjoiRVJDMjAifSx7ImN1cnJlbmN5X2lkIjoxNCwidGl0bGUiOiJTT0wgIiwic2x1ZyI6IlNPTCIsImN1cnJlbmN5X2NvZGUiOiJTT0wiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL3NvbC5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6MTUsInRpdGxlIjoiVVNEQyBTT0wiLCJzbHVnIjoiVVNEQyIsImN1cnJlbmN5X2NvZGUiOiJVU0RDIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC91c2RjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjoiU09MIn0seyJjdXJyZW5jeV9pZCI6MTgsInRpdGxlIjoiQVJCICIsInNsdWciOiJBUkIiLCJjdXJyZW5jeV9jb2RlIjoiQVJCIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC9hcmIucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjEsIm5ldHdvcmsiOm51bGx9LHsiY3VycmVuY3lfaWQiOjE5LCJ0aXRsZSI6IkJDSCAiLCJzbHVnIjoiQkNIIiwiY3VycmVuY3lfY29kZSI6IkJDSCIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvYmNoLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjpudWxsfSx7ImN1cnJlbmN5X2lkIjoyMCwidGl0bGUiOiJEQVNIICIsInNsdWciOiJEQVNIIiwiY3VycmVuY3lfY29kZSI6IkRBU0giLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL2Rhc2gucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjEsIm5ldHdvcmsiOm51bGx9LHsiY3VycmVuY3lfaWQiOjIxLCJ0aXRsZSI6IlpFQyAiLCJzbHVnIjoiWkVDIiwiY3VycmVuY3lfY29kZSI6IlpFQyIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvemVjLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjpudWxsfSx7ImN1cnJlbmN5X2lkIjoyMiwidGl0bGUiOiJCTkIgQkVQMjAiLCJzbHVnIjoiQk5CIiwiY3VycmVuY3lfY29kZSI6IkJOQiIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvYm5iLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjoiQkVQMjAifSx7ImN1cnJlbmN5X2lkIjoyMywidGl0bGUiOiJET0dFICIsInNsdWciOiJET0dFIiwiY3VycmVuY3lfY29kZSI6IkRPR0UiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL2RvZ2UucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjEsIm5ldHdvcmsiOm51bGx9LHsiY3VycmVuY3lfaWQiOjI0LCJ0aXRsZSI6IlhNUiAiLCJzbHVnIjoiWE1SIiwiY3VycmVuY3lfY29kZSI6IlhNUiIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wveG1yLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjpudWxsfSx7ImN1cnJlbmN5X2lkIjoyNSwidGl0bGUiOiJFVEMgIiwic2x1ZyI6IkVUQyIsImN1cnJlbmN5X2NvZGUiOiJFVEMiLCJpc19jcnlwdG8iOjEsImljb24iOiJcL2ltYWdlc1wvY29pbnNcL2V0Yy5wbmciLCJpc192aXNpYmxlX2luX3dhbGxldCI6MSwibmV0d29yayI6bnVsbH0seyJjdXJyZW5jeV9pZCI6MjYsInRpdGxlIjoiWExNICIsInNsdWciOiJYTE0iLCJjdXJyZW5jeV9jb2RlIjoiWExNIiwiaXNfY3J5cHRvIjoxLCJpY29uIjoiXC9pbWFnZXNcL2NvaW5zXC94bG0ucG5nIiwiaXNfdmlzaWJsZV9pbl93YWxsZXQiOjEsIm5ldHdvcmsiOm51bGx9LHsiY3VycmVuY3lfaWQiOjM2LCJ0aXRsZSI6IkFEQSAiLCJzbHVnIjoiQURBIiwiY3VycmVuY3lfY29kZSI6IkFEQSIsImlzX2NyeXB0byI6MSwiaWNvbiI6IlwvaW1hZ2VzXC9jb2luc1wvYWRhLnBuZyIsImlzX3Zpc2libGVfaW5fd2FsbGV0IjoxLCJuZXR3b3JrIjpudWxsfV0sIm1lc3NhZ2UiOiJ5b3VyIHJlcXVlc3Qgd2FzIHN1Y2Nlc3NmdWwifQ=="}},"time_used":133,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":133,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/recaptcha__en.js","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.google.com/recaptcha/api2/anchor?ar=1\u0026k=6LfRUoYnAAAAAKfevHpSKXaw8gRuE6AJVb9YJKYH\u0026co=aHR0cHM6Ly9uY29ubmVjdC5vcmc6NDQz\u0026hl=en\u0026v=A7KpaEASfhDcK0nXxgQEyyYv\u0026size=invisible\u0026anchor-ms=20000\u0026execute-ms=30000\u0026cb=xxau4owkhj73","date":"2026-07-27T08:07:50.828Z","timestamp":1785139670828,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /recaptcha/releases/A7KpaEASfhDcK0nXxgQEyyYv/recaptcha__en.js HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.google.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/recaptcha-scs\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups; report-to=\"recaptcha-scs\"\r\nreport-to: {\"group\":\"recaptcha-scs\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/recaptcha-scs\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 382189\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:17 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:17 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 14 Jul 2026 12:02:38 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding\r\nage: 413853\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":891014,"size_decoded":383076,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (553)","md5":"a07ac1bf3466fe5eff6b753f96f39a11","sha1":"d06f6ebd81a8c180a7a6343821a3cf8279f5b86d","sha256":"c9fc8d435c9c3e131d7aedb36923a5ef798c85412192ed2afd9c52dcfb826ff7","sha512":"4648746112b8cdbab787c43e88827d96e02034c52b5436167a24d647ce349a0501df4ca67f82779c89fe0f5659bcc9b444655f83da816469c23e781fa3facc9a","ssdeep":"12288:CN7INAse6Zz779FTMfCtfTSZDYDzVRlh09yENpDvE:a0le6p5tfTSZ0D1h09yENpDvE","tlshash":"50153ade714639b24322b6f52077241ea77e9619c40c5c5d70aa98f03ef580da0f6ebb","first_seen":"2026-07-14T22:23:00.839245Z","last_seen":"2026-08-04T07:42:04.216012Z","times_seen":17341,"resource_available":true,"data":"KGZ1bmN0aW9uKCl7LyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCgogQ29weXJpZ2h0IChjKSAyMDE1LTIwMTggR29vZ2xlLCBJbmMuLCBOZXRmbGl4LCBJbmMuLCBNaWNyb3NvZnQgQ29ycC4gYW5kIGNvbnRyaWJ1dG9ycwogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoqLwovKgoKIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCi8qCgogQ29weXJpZ2h0IEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCi8qCgogQ29weXJpZ2h0IDIwMDUsIDIwMDcgQm9iIElwcG9saXRvLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKi8KLyoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIENvcHlyaWdodCAoYykgMjAxMy0yMDE2IERtaXRyeSBDaGVzdG55a2guIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKi8KdmFyIGcwPWZ1bmN0aW9uKCl7cmV0dXJuW2Z1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQl42Myk+PjM9PSgoQi0zJigoKCh2PVsxLDIsNTBdLEImODgpPT1CJiZULmNhbGwodGhpcyx6KSxCKzYpJjE1KT09dlsxXSYmKHo9PT12b2lkIDAmJktEKCkscD1LKSw3KSk9PTMmJlQuY2FsbCh0aGlzLHosMCxDRC5SVCksdilbMF0pYTp7aWYoSz09KGI9WzEsbnVsbCwnIiddLGIpW3ZbMF1dKXtwPUo7YnJlYWsgYX1pZigoQz10eXBlb2YgSyxDKT09PUFZKUorPUs7ZWxzZSBpZihBcnJheS5pc0FycmF5KEspKXtBPTA7Zm9yKEorPXo7QTxLLmxlbmd0aC1iWzBdO0ErKylKPWcwWzBdKDQ4LCJbIixLW0FdLEopLEorPSIsIjtKPWcwWzBdKHZbMl0sIlsiLEtbSy5sZW5ndGgtYlswXV0sSiksSis9Il0ifWVsc2UgQz09PU5NPyhKPUorYlt2WzFdXStLLnJlcGxhY2UoLyIvZyxPdygpKSxKKz1iW3ZbMV1dKTpDPT09REcmJihKKz1LPzE6MCk7cD1KfXJldHVybiBwfSxmdW5jdGlvbihCLHosCkssSixDLGIsQSx2KXtyZXR1cm4oKCgoQnwoKHY9WyJBIiwibFkiLCJBTCJdLEI+PjIpJjE1fHwoTEQuY2FsbCh0aGlzLDQxLDE2LFsyXSksdGhpcy51WT10aGlzLkI9LTEsdGhpcy5WPXRoaXMuWD10aGlzLlM9dGhpcy5ucT10aGlzLm89dGhpcy5JPXRoaXNbdlsyXV09LTEsdGhpcy5VPXRoaXMuVz10aGlzLkg9dGhpcy5nPXRoaXMuaj10aGlzLkQ9dGhpcy5NPXRoaXMuUD10aGlzLmlZPXRoaXMuSz10aGlzLkw9dGhpcy5rSj10aGlzLmk9dGhpcy5DPXRoaXNbdlswXV09LTEsdGhpcy5HPXRoaXMubT10aGlzLlhnPXRoaXNbdlsxXV09LTEsdGhpcy5wcT1nWzddKDYpLHRoaXMuVzE9Z1s3XSg0KSksNzIpKT09QiYmKHRoaXMuV1c9Yix0aGlzLmxYPUosdGhpcy5Gbj16LHRoaXMuaVI9Syx0aGlzLnVYPUMpLEIpfDI0KT09QiYmKEo9KEM9T1sxNl0oMTQsMCxudWxsLCJDTE9TVVJFX0ZMQUdTIikpJiZDW3pdLEE9SiE9bnVsbD9KOkspLEIrMj4+MTxCJiYoQi0yfDkpPj1CKSYmTEQuY2FsbCh0aGlzLAo1NDUsOCksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKCgoQi03PDwyPCgoKFo9WyJheiIsNiw0M10sQnw4KSZaWzFdKT09MiYmKHRoaXMuS3x8RFtaWzJdXSg3Myx0aGlzLCExKSksQikmJihCKzJeWlsxXSk+PUImJihXPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHopKSxCPj4xJjE1KT09MiYmKEtbWlswXV0oKSx2PUsucmVzcG9uc2UscD1WcSgpLG49Sy5sWS55ZSgpLFE9SDgoKSxiPVJbMjldKDI0LHosMjMsbixRKSx2W3BdPWIsSj1LLnJlc3BvbnNlLFJbMV0oNSwhMCxKKT9BPSIiOihDPWVOKEopLEE9T1syM10oMjYsQywzKSksVz1BKSxCKSs3JjE1KT09NClhOntmb3IoYiBpbiBKKWlmKEMuY2FsbCh2b2lkIDAsSltiXSxiLEopKXtXPXo7YnJlYWsgYX1XPUt9cmV0dXJuKEIrWlsxXSY1NSk+PUImJihCKzJeMTcpPEImJihXPW5ldyBQcm9taXNlKGZ1bmN0aW9uKE4peyh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihQOCgpLGZ1bmN0aW9uKCl7TigpfSwKe29uY2U6ITB9KSxkb2N1bWVudC5oaWRkZW4pfHxOKCl9KSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEI+PihwPVsxOSwyMSwzOV0sMikmMTQpPj0zJiZCLTM8cFsxXSlpZih0eXBlb2YgSy5kaXNwb3NlPT0iZnVuY3Rpb24iKUsuZGlzcG9zZSgpO2Vsc2UgZm9yKEogaW4gSylLW0pdPXo7aWYoKEImNDEpPT1CKWE6e2ZvcihLPXo7Szx3aW5kb3dbaTNdW2M4KCldO0srKylpZihHWzE1XShwWzJdKS5jb250YWlucyh3aW5kb3dbaTNdW1NOKCldW0tdLmtuKSl7UT1LO2JyZWFrIGF9dGhyb3cgRXJyb3IoRXcoKSk7fWlmKChCfDQwKT09KCgoQi01fDE0KT49QiYmKEItM15wWzBdKTxCJiYoUT16Lk0/ITA6ei52P3oudi5zaXplPj16Lmk6ITEpLEIrNiYxNik8NiYmQis5Pj40Pj0zJiYoei5NPXouQ3x8ei5PLHoubD17bjE6SyxjQTohMH0pLEIpKWE6e3RyeXtpZighKChBPWIuY2FsbChDLnYuVyxLKSxIKVsxNF0oMSxBKSxBLmRvbmUpKXsoUT1BLEMudikuVT16O2JyZWFrIGF9dj0KQS52YWx1ZX1jYXRjaChuKXtRPShnMFtDLnYuVz1udWxsLDNdKDY0LEMudixuKSxEWzEwXSgzMyxudWxsLEMpKTticmVhayBhfVE9KChDLnYuVz1udWxsLEopLmNhbGwoQy52LHYpLERbMTBdKDQsbnVsbCxDKSl9cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7aWYoKChWPVsicmMtaW1hZ2VzZWxlY3QtdGFibGUtNDQiLDQsJyInXSxCKXw4KTwxOSYmKEJ8NSk+PjM+PTApYTp0cnl7UD0oUls0Nl0oNiwxLEopLnNldEl0ZW0oeixLKSxLKTticmVhayBhfWNhdGNoKHEpe1A9bnVsbDticmVhayBhfWlmKChCLTcmMTMpPT0xKXtmb3IoTD0oZj0obj0ocD0oYj0oQT1bIkltYWdlIGNoYWxsZW5nZSIsMiwwXSx6LnJvd1NwYW4pLHopLmNvbFNwYW4seD1lWzIxXSg3NCxWWzFdLGIpJiZlWzIxXSg3MyxWWzFdLHApPycgY2xhc3M9IicrUlsxMV0oNyxWWzBdKStWWzJdOmVbMjFdKDc4LFZbMV0sYikmJmVbMjFdKDczLEFbMV0scCk/JyBjbGFzcz0iJysKUlsxMV0oNywicmMtaW1hZ2VzZWxlY3QtdGFibGUtNDIiKStWWzJdOicgY2xhc3M9IicrUlsxMV0oNywicmMtaW1hZ2VzZWxlY3QtdGFibGUtMzMiKStWWzJdLE8pWzQwXSg3OSxhWigpLCI8dGFibGUiK3grIj48dGJvZHk+IiksaFkoQVsyXSxkMChiLUFbMl0pKSksQVsyXSk7TDxmO0wrKyl7Zm9yKEM9KE9bcj1MKjEsNDBdKDc5LG4sazgoKSksaFkoQVsyXSxkMChwLUFbMl0pKSksTj1BWzJdO048QztOKyspe2ZvcihKIGluIEo9KFo9KChPWzQwXSg5NyxuLCc8dGQgcm9sZT0iYnV0dG9uIiBpZD0iJytSWzExXSg3MywoVz1OKjEscipwK1cpKSsnIiB0YWJpbmRleD0iMCIgY2xhc3M9IicrUlsxMV0oOSwicmMtaW1hZ2VzZWxlY3QtdGlsZSIpKyJcIiBhcmlhLWxhYmVsPSciKSxnKVsyNV0oNjcsbixlWzM0XSg4OCxBWzBdKSksUT1PWzQwXSg5NyxuLFV3KCkpLHtGSjpyLHhGOld9KSx2b2lkIDApLHY9eix2KUogaW4gWnx8KFpbSl09dltKXSk7T1s0MF0oOTcsZ1syNV0oVlsxXSxRLHlbVlsxXV0oVlsxXSwKWixLKSksTU0oKSl9T1s0MF0oNzgsbixGaCgpKX1PWzQwXSg5NyxuLHNSKCkpLFA9bn1pZigoQjw8MSYyKT49MSYmKEI+PjImMyk8Mil7Zm9yKGI9KFE9WyhwPUouV2goKSxDPShuPUouV2goKSxbXSkscCldLG4hPXAmJlEucHVzaChuKSxLLlpNKTtiOylBPWImLWIsQy5wdXNoKERbMjZdKDIxLHosSixBKSksYiY9fkE7UD0oKHY9KFEucHVzaC5hcHBseShRLEMpLEsuVykpJiZRLnB1c2guYXBwbHkoUSx2KSxRKX1yZXR1cm4gUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEImKCgoQT1bNjMsMTA5LDYyXSxCPj4yPDcpJiZCPDwyPj0wJiYoSz1nWzIzXSg0MiksZ1szXSg1MixLLG5ldyB6RChLLHopKSksKEIrMyYyOSk8QikmJihCLTheOSk+PUImJihKPVJbOF0oQVsyXSx0aGlzKSxLPU9bNDhdKDk2LHRoaXMpKyIiLEM9MCx6PjEmJihDPU9bNDhdKDk2LHRoaXMpKSx0aGlzLnhKW0pdPVlbNF0oQVswXSxLLEMpKSxBWzFdKSk9PUImJihiPVJbMTNdKDEzLEhbMjVdKDU3LE9bOV0oMzAsCnopLEspLFtnWzE2XSgzOCxKKV0pKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZihiPVsiY2FsbCIsMTEsMzJdLCgoQl42NSkmMjcpPT0xKVRbYlswXV0odGhpcyx6KTtpZigoQis0Pj40PT00JiYoSjNbYlswXV0odGhpcyx6LEspLHRoaXMubz0hMSx0aGlzLk09bnVsbCx0aGlzLmc9Six0aGlzLnN0eWxlPUNLKSxCKzleMjIpPEImJihCKzcmNTIpPj1CKWE6e2lmKEEzKXtBPWdbYlsxXV0oKEo9QmlnSW50KEspLDYwKSxOdW1iZXIoQmlnSW50LmFzSW50TihiWzJdLEo+PkJpZ0ludChiWzJdKSkpLE51bWJlcihCaWdJbnQuYXNJbnROKGJbMl0sSikpKTticmVhayBhfUE9T1szNl0oMjgseixTdHJpbmcoSykpfWlmKChCLTZeKCgoQl45MikmMTUpPT00JiYoej1bInJjLTJmYS10YWJsb29wLWJlZ2luIiwicmMtMmZhLXRhYmxvb3AtZW5kIiwnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjxkaXYgY2xhc3M9IiddLEE9VEQoJzxkaXYgY2xhc3M9InJjLTJmYSI+PHNwYW4gY2xhc3M9IicrUltiWzFdXSg3MSwKelswXSkrelsyXStSW2JbMV1dKDczLCJyYy0yZmEtcGF5bG9hZCIpKyciPjwvZGl2PjxzcGFuIGNsYXNzPSInK1JbYlsxXV0oOSx6WzFdKSsnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjwvZGl2PicpKSwxMCkpPj1CJiYoQi04XjgpPEIpZm9yKEMgaW4gSyl6W2JbMF1dKEosS1tDXSxDLEspO3JldHVybiBBfV19KCksUj1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEI+PjEmKEItKEM9WzQyLDUsIlgiXSxDWzFdKT4+Mz09MSYmKHRoaXMudj1KLHRoaXNbQ1syXV09Syx0aGlzLk09eiksMykpPj0xJiZCPj4xPDkmJihiPVJbMTNdKDIxLEhbMjVdKENbMF0sT1s5XSgxNCwxMykseiksW2dbMTZdKDM4LEspLGdbMTZdKDc4LEopXSkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZighKEIrNz4+KChiPVs3MiwhMSwxMV0sKEJ8YlswXSk9PUImJihDPUhbMjFdKDcsSyx6KSksQiszPj4zPT0zKSYmKGpZPW51bGwscEs9W10sbks9bmV3IE1hcCksNCkpKWE6e2ZvcihKIGluIEspe0M9CmJbMV07YnJlYWsgYX1DPXp9aWYoIShCPj4yJmJbMl0pJiZ0aGlzLmNsb3NlZCl0aHJvdyBuZXcgWlY7cmV0dXJuIEN9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEJeKEM9WzIwLCJNIiwidiJdLEI8PDEmNnx8KEo9L15bXHNceGEwXSokLy50ZXN0KHopKSw1KSk+PTgmJkIrNTxDWzBdJiYoSz1uZXcgZzQsSy5YPXouWCx6W0NbMl1dJiYoS1tDWzJdXT1uZXcgTWFwKHpbQ1syXV0pLEtbQ1sxXV09eltDWzFdXSksSj1LKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoKG49WzAsImoiLDIzXSxCKS03Pj40KSl7Sj1KPT09KEE9KGI9Yj09PXZvaWQgMD9LLndpdGhDcmVkZW50aWFsczpiLHt9KSx2b2lkIDApP251bGw6SixLLlJ8fChLLlI9Tm0oKSk7dHJ5e3Y9KG5ldyBVUkwoSy5SKSkudG9TdHJpbmcoKX1jYXRjaChaKXt2PShuZXcgVVJMKEsuUixEWzExXSg5KS5sb2NhdGlvbi5vcmlnaW4pKS50b1N0cmluZygpfVE9KChDPW5ldyBVUkwodiksSiYmKEFbT1IoKV09CkopLEsuWHIpJiYoQVt4Zl09Sy5YcixDLnNlYXJjaFBhcmFtcy5zZXQoRFYoKSxLLlhyKSkse3VybDpDLnRvU3RyaW5nKCksYm9keTp6LHRxOjEsQUI6QSxXRDpMSygpLHdpdGhDcmVkZW50aWFsczpiLGd6OksuZ3p9KX1pZihCPDwxPj1uWzJdJiZCKzU8MzMpYTppZih2PVsxLDAsMzhdLEMua2V5Q29kZT09Mzd8fEMua2V5Q29kZT09Mzl8fEMua2V5Q29kZT09dlsyXXx8Qy5rZXlDb2RlPT16fHxDLmtleUNvZGU9PTkpaWYocD1bXSxDLmtleUNvZGUhPTkpe2lmKChBPShBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHlbMjZdKDUyLFJwKSxmdW5jdGlvbihaKXtPWzExXSg2MSxaLCJkaXNwbGF5IikhPT0ibm9uZSImJnI0KChafHxkb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbCgiLnJjLWltYWdlc2VsZWN0LXRpbGUiKSxmdW5jdGlvbihXKXtwLnB1c2goVyl9KX0pLHAubGVuZ3RoKS12W25bMF1dLEopLlcxPj12WzFdJiZwW0ouVzFdPT1EWzEzXSg0LEssZG9jdW1lbnQpKXN3aXRjaChBPQpKLlcxLEMua2V5Q29kZSl7Y2FzZSAzNzpBLS07YnJlYWs7Y2FzZSB2WzJdOkEtPWI7YnJlYWs7Y2FzZSAzOTpBKys7YnJlYWs7Y2FzZSB6OkErPWI7YnJlYWs7ZGVmYXVsdDpRPXZvaWQgMDticmVhayBhfShBPj12WzFdJiZBPHAubGVuZ3RoP3BbQV0uZm9jdXMoKTpBPj1wLmxlbmd0aCYmT1syXSgzMyxWUyxkb2N1bWVudCkuZm9jdXMoKSxDKS5wcmV2ZW50RGVmYXVsdCgpLEMudigpfXJldHVybihCfDQwKT09QiYmKHo9WzE2LCJDYW5jZWwiLG51bGxdLEdELmNhbGwodGhpcyxuWzBdLG5bMF0sSG8pLHRoaXMuZz16WzJdLHRoaXMudj1uZXcgZVkoIiIpLHlbNDNdKDQzLHRoaXMudix0aGlzKSx0aGlzW25bMV1dPW5ldyBQbyx5WzQzXSg0MSx0aGlzW25bMV1dLHRoaXMpLHRoaXMuQz1uZXcgcW0seVs0M10oNTgsdGhpcy5DLHRoaXMpLHRoaXMuSD16WzJdLHRoaXMuWD1SWzEyXSgxLHpbblswXV0sIlN1Ym1pdCIsdGhpcyksdGhpcy5EPVJbMTJdKDQseltuWzBdXSx6WzFdLHRoaXMpKSwKUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKHA9WzE5LDE3LDExXSxCLTkpPDwxPj1CJiYoQi05fHBbMF0pPEIpYTp7aWYoIWlMKXtRPWdbcFsxXV0oMTMseixLLEopO2JyZWFrIGF9Zm9yKEE9KGI9KEM9eVMudGVzdChKKT9KLnJlcGxhY2UoeVMseVs2XS5iaW5kKG51bGwscFsyXSkpOkosdj1hdG9iKEMpLG5ldyBVaW50OEFycmF5KHYubGVuZ3RoKSksMCk7QTx2Lmxlbmd0aDtBKyspYltBXT12LmNoYXJDb2RlQXQoQSk7UT1ifXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZighKChCXjE4KT4+KChCXihCLShwPVszLDczNDgsITFdLDcpPj5wWzBdPT0yJiYodGhpcy5saXN0ZW5lcj1iLHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz16LHRoaXMudHlwZT1LLHRoaXMuY2FwdHVyZT0hIUMsdGhpcy5kQj1KLHRoaXMua2V5PSsrWWYsdGhpcy5JdT1wWzJdLHRoaXMubUE9cFsyXSksNDcpKTwyMiYmKEI+PjImMTUpPj0yJiYoUT1PYmplY3QudmFsdWVzKHdpbmRvd1tpM11bU04oKV0pLnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4udTc9PQp6fSkpLHBbMF0pKSlhOntpZihBPVsyMTA5LCIsIiwwXSxiPUooeigpLDkpLGIubGVuZ3RoPT1BWzJdKXtRPVNZKCk7YnJlYWsgYX1RPShDPSh2PVJbMzVdKDcsYi5sZW5ndGgpLGJbdl0uaGFzQXR0cmlidXRlKG1IKCkpKT9IWzhdKDM2LDg2OTUpKGJbdl0uZ2V0QXR0cmlidXRlKG1IKCkpLnNwbGl0KC9bPyNdLylbQVsyXV0pOkhbOF0oMTIsQVswXSkoSFs4XSg0NCxwWzFdKShiW3ZdLnRleHQsRVIpLDUwMCksditBWzFdK0MpfXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKCEoKEJ8KE49WzI5LDQzLDJdLDQpKSYzKSlhOmlmKEM9dGhpcyx2PVs2LDExLDEwMF0sWDIpdHJ5e2lmKChiPXVMLmdldCh0aGlzKSkmJmIudXJsKWlmKGIuWVopZm9yKEo9Z1sxMl0oNixkNCksbj1KLm5leHQoKTshbi5kb25lO249Si5uZXh0KCkpe2lmKEE9SFsxN10oMTQsdltOWzJdXSwxLG4udmFsdWUsYi51cmwpKXtBLnRoZW4oZnVuY3Rpb24oeCl7KEMuc2V0UmVxdWVzdEhlYWRlcih0MywKeCksdzQpLmNhbGwoQyx6KX0sZnVuY3Rpb24oKXt3NC5jYWxsKEMseil9KSxaPXZvaWQgMDticmVhayBhfX1lbHNlIGlmKEs9ZDQuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geVszOF0oNjgsbnVsbCx4LGIudXJsKSE9PW51bGx9KSlRPURbMjNdKDU4LDQsT1sxNV0oMTEsMTAsRFsyNl0oNDQsdlsxXSxIWzM3XSgyMSx2WzBdLEdbTlsxXV0oOTEsMSx2WzBdKSxLLnYuU0spLEsudi5vcmlnaW4pLChwPURbMzFdKDIyLG51bGwsYi51cmwsSykpPT1udWxsP3ZvaWQgMDpwLnN1YnN0cmluZygwLHZbTlsyXV0pKS55ZSgpLEsuTSksdGhpcy5zZXRSZXF1ZXN0SGVhZGVyKHQzLFEpO3c0LmNhbGwodGhpcyx6KX1jYXRjaCh4KXt3NC5jYWxsKHRoaXMseil9ZWxzZSB3NC5jYWxsKHRoaXMseik7aWYoQis0Pj4xPEImJihCKzFeOCk+PUIpZm9yKFc9ZnVuY3Rpb24oeCl7eCYmQS5hcHBlbmRDaGlsZCh0eXBlb2YgeD09PSJzdHJpbmciP3YuY3JlYXRlVGV4dE5vZGUoeCk6eCl9LFE9SjtRPGIubGVuZ3RoO1ErKylpZihwPQpiW1FdLCFZWzhdKDUsIm51bWJlciIscCl8fEhbNDRdKDcscCkmJnAubm9kZVR5cGU+QylXKHApO2Vsc2V7YTp7aWYocCYmdHlwZW9mIHAubGVuZ3RoPT0ibnVtYmVyIil7aWYoSFs0NF0oOSxwKSl7bj10eXBlb2YgcC5pdGVtPT0iZnVuY3Rpb24ifHx0eXBlb2YgcC5pdGVtPT1LO2JyZWFrIGF9aWYodHlwZW9mIHA9PT0iZnVuY3Rpb24iKXtuPXR5cGVvZiBwLml0ZW09PSJmdW5jdGlvbiI7YnJlYWsgYX19bj16fXI0KG4/bVtOWzBdXSg1LHApOnAsVyl9cmV0dXJuIEIrNT4+TlsyXTxCJiYoQi1OWzJdfE5bMl0pPj1CJiYoWj1tWzIzXShOWzBdLEosSyx6LGwpKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKFc9WzEsMywiaXNBcnJheSJdLEItV1sxXSleMjApPEImJkItNjw8V1swXT49QilpZihBcnJheVtXWzJdXShDKSlmb3Iobj16O248Qy5sZW5ndGg7bisrKVJbN10oMjIsMCwhMCxKLENbbl0sYixBLHYscCk7ZWxzZShRPU9bMjJdKDEwLEssQSxDLHZ8fApiLmhhbmRsZUV2ZW50LEoscHx8Yi5IfHxiKSkmJihiLldbUS5rZXldPVEpO3JldHVybihCPDwyJjYpPj0oKEI8PFdbMF0mNik8NCYmKEI+PjImMTUpPj04JiYoSz1uZXcgSXAoZnVuY3Rpb24oTix4KXtKPSh6PU4seCl9KSxaPW5ldyBCcSh6LEssSikpLDQpJiZCK1dbMF0+PjU8V1swXSYmKHRoaXMudj0hMCksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtyZXR1cm4oKEItKCgobj1bNTYsMSwxOF0sKEIrblsxXSY0Mik+PUImJihCK25bMV1eOSk8QikmJihwPVswLDFdLHRoaXMudj10eXBlb2Ygej09PSJudW1iZXIiP25ldyBEYXRlKHosS3x8cFswXSxKfHxwW25bMV1dLEN8fHBbMF0sYnx8cFswXSxBfHxwWzBdLHZ8fHBbMF0pOm5ldyBEYXRlKHomJnouZ2V0VGltZT96LmdldFRpbWUoKTplWzI5XSg0MikpKSxCfDcyKT09QiYmVC5jYWxsKHRoaXMseiksbilbMV0mMTN8fChLLmNsYXNzTGlzdD9LLmNsYXNzTGlzdC5hZGQoeik6ZVsxMF0oblsyXSxLLHopfHwoSj15WzIyXSgyLAoiIiwic3RyaW5nIixLKSxHWzM4XSgzNiwic3RyaW5nIixKKyhKLmxlbmd0aD4wPyIgIit6OnopLEspKSksQnxuWzBdKT09QiYmKGdbMTRdKDk2LG5bMV0sei52KSxRPWtbMTVdKDQ1LHoudikpLEIpLTI+PjQ9PTQmJihLPXogaW5zdGFuY2VvZiB6Sj96Om5ldyB6Sih6KSxRPUsudmFsdWU9PT1udWxsfHxLLnZhbHVlIGluc3RhbmNlb2YgSiQ/SzpuZXcgekooSy52YWx1ZSwhMCkpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYpe2lmKHg9WzE3LDIsMzVdLChCJjQ5KT09QilpZihKLk0hPXopUlsxNF0oMTUsSyxKKTtlbHNlIEM9WVsyNV0oNzAsSi52KSxnWzE0XSg5NixDLEoudik7aWYoKEIrNiY3KT09KChCKzUmNjEpPj1CJiZCLTQ8PDE8QiYmKHA9Yi5wRC5jb25jYXQoeVsxMl0oNDAsQyx4WzFdLEEsa1szXSgxMikpKS5yZWR1Y2UoZnVuY3Rpb24oUCxxKXtyZXR1cm4gUF5xfSksUT1HWzQ0XSgyNix6LEMsWVszNF0oNyxLLEEpLHApLHY9Z1t4WzBdXSgxMiwKeFsxXSxKLFEpLFJbeFsyXV0oMyx4WzFdLGIudix2KSksMSkpe2ZvcihaPSh2PShOPShWPShmPWZ1bmN0aW9uKFAscSl7bj0ocD0oQVtBW0FbMl09KEFbKFA9WzAsMSwyNzE3MzM4NzhdLHE9WzAsMjU2MjM4MzEwMiwxXSxQKVtxWzBdXV09MTczMjU4NDE5MyxBW1BbcVsyXV1dPTQwMjMyMzM0MTcscSlbMV0sQ109UFsyXSw0XT0zMjg1Mzc3NTIwLFBbcVswXV0pLFBbcVswXV0pfSxMPWZ1bmN0aW9uKFAscSxjLEUsUyxhLHUpe2ZvcihQPShwPChjPSh1PShxPVtdLFsxLDIsMF0pLFs1Niw4LDI1NV0pLEU9bipjW3VbMF1dLGNbdVsyXV0pP04oVyxjW3VbMl1dLXApOk4oVyw2NC0ocC1jW3VbMl1dKSksSyk7UD49Y1t1WzJdXTtQLS0pYltQXT1FJmNbdVsxXV0sRT4+Pj1jW3VbMF1dO2ZvcihTPShWKGIpLFA9dVsyXSx1WzJdKTtQPDU7UCsrKWZvcihhPTI0O2E+PXVbMl07YS09Y1t1WzBdXSlxW1MrK109QVtQXT4+YSZjW3VbMV1dO3JldHVybiBxfSxmdW5jdGlvbihQLHEsYyxFLFMsYSx1LApYLGQsdCxoLE0sVSx3KXtmb3IoWD1bNCwocT0oYz1RLHc9WzAsMiw0Mjk0OTY3Mjk1XSx3WzBdKSwxODU5Nzc1MzkzKSwzMV07cTw2NDtxKz1YW3dbMF1dKWNbcS9YW3dbMF1dXT1QW3FdPDwyNHxQW3ErMV08PEp8UFtxK3dbMV1dPDw4fFBbcStDXTtmb3IocT1KO3E8ODA7cSsrKWg9Y1txLUNdXmNbcS04XV5jW3EtMTRdXmNbcS1KXSxjW3FdPShoPDwxfGg+Pj5YW3dbMV1dKSZ3WzJdO2ZvcihxPShVPUFbKE09KEU9QVt1PUFbQ10sWFtTPUFbd1swXV0sd1swXV1dLEEpWzFdLHcpWzFdXSx3WzBdKTtxPDgwO3ErKylxPDQwP3E8MjA/KHQ9dV5NJihVXnUpLGE9MTUxODUwMDI0OSk6KHQ9TV5VXnUsYT1YWzFdKTpxPDYwPyh0PU0mVXx1JihNfFUpLGE9MjQwMDk1OTcwOCk6KGE9MzM5NTQ2OTc4Mix0PU1eVV51KSxkPSgoUzw8NXxTPj4+eikmd1syXSkrdCtFK2ErY1txXSZ3WzJdLEU9dSx1PVUsVT0oTTw8MzB8TT4+PndbMV0pJndbMl0sTT1TLFM9ZDtBW1hbd1tBW0NdPShBW3dbQVsxXT0KKEFbd1swXV09QVt3WzBdXStTJndbMl0sQVsxXStNJndbMl0pLDFdXT1BW3dbMV1dK1Umd1syXSxBW0NdK3Umd1syXSksMF1dXT1BW1hbd1swXV1dK0Umd1syXX0pLGZ1bmN0aW9uKFAscSxjLEUsUyxhLHUsWCl7aWYoKFg9WyhhPVswLDY0XSwxKSwicHVzaCIsImNoYXJDb2RlQXQiXSx0eXBlb2YgUCk9PT0ic3RyaW5nIil7Zm9yKGM9KHU9KEU9KFA9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KFApKSxQLmxlbmd0aCksW10pLGFbMF0pO2M8RTsrK2MpdVtYWzFdXShQW1hbMl1dKGMpKTtQPXV9aWYoKFM9YVtxfHwocT1QLmxlbmd0aCksMF0scCk9PWFbMF0pZm9yKDtTK2FbWFswXV08cTspVihQLnNsaWNlKFMsUythW1hbMF1dKSksbis9YVtYWzBdXSxTKz1hW1hbMF1dO2Zvcig7UzxxOylpZihiW3ArK109UFtTKytdLG4rKyxwPT1hW1hbMF1dKWZvcihwPWFbMF0sVihiKTtTK2FbWFswXV08cTspVihQLnNsaWNlKFMsUythW1hbMF1dKSksbis9YVtYWzBdXSxTKz1hW1hbMF1dfSksCkNoKCkpLEE9W10sYj1bXSxRPVtdLFc9WzEyOF0sMSk7Wjw2NDsrK1opV1taXT0wO3I9KGYoKSx7cmVzZXQ6Zix1cGRhdGU6TixkaWdlc3Q6TCxaMzpmdW5jdGlvbihQLHEsYyxFLFMsYSl7Zm9yKGE9KFM9TCgpLGMpLEU9cTthPFMubGVuZ3RoO2ErKylFKz12W1BdKGJOKFNbYV0vSikpK3ZbUF0oU1thXSVKKTtyZXR1cm4gRX19KX1yZXR1cm4gcn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihRPVsxNiwxMiw2XSwhKEI+PjImMykpYTp7aWYodHlwZW9mIHohPT0oSj1bNCwzMiwhMV0sIm9iamVjdCIpKXtuPXo7YnJlYWsgYX1pZihBcnJheS5pc0FycmF5KHopKXt6Lmxlbmd0aD09PShwPXpbQSRdfDAsMCkmJnAmMT92PXZvaWQgMDooQT16LHAmMnx8KCFLfHw0MDk2JnB8fFFbMF0mcD9BPU9bMThdKFFbMV0sMzQscCxBLEpbMl0sSyYmIShwJlFbMF0pKTooT1sxNF0oNTYsMzQsQSkscCZKWzBdJiZUSihBKSkpLHY9QSksbj12O2JyZWFrIGF9aWYoeiE9bnVsbCYmeltqVF09PT0Kbmgpe249KEM9KGI9ei5hVCxiW0EkXXwwKSx5WzJdKDM4LHosQyk/ejplWzMwXSgyMCxKWzFdLGIsQyx6KT9nWzQ0XSgzNSxiLHopOk9bMThdKDIwLDM0LEMsYikpO2JyZWFrIGF9aWYoeiBpbnN0YW5jZW9mIFpsKXtuPXo7YnJlYWsgYX19cmV0dXJuKEIrNV41KT49QiYmKEItMXwxNyk8QiYmKHRoaXMuZz16LmksSj1uZXcgTzgsSz1rW1FbMl1dKDI3LDEsSix6Lk0pLHRoaXMuaj1rW1FbMl1dKDI3LDIsSyx6LnYpLHRoaXMuSz16LlgpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChCfChCPDwoKEIrNl4oKEIrMl4oKFc9WyJ2Iiw0OCwyN10sKEIrMyYxNSk+PTEwJiYoQj4+MSY4KTw0KSYmKFo9R1sxMF0oODQseGoseik/ZVszNF0oOTAsSFsyMF0oMTEsIiIsei5WZSgpKSk6U3RyaW5nKHopLnJlcGxhY2UoRGwsWVs0N10uYmluZChudWxsLFdbMl0pKSksVylbMl0pPj1CJiYoQi0zfDM1KTxCJiYodGhpc1tXWzBdXT1bXSksMTkpKTxCJiYoQi0xXjI2KT49CkImJih0aGlzW1dbMF1dPUssdGhpcy5NPW5ldyBvQih6LEopKSwyKSYxNXx8KFo9Sz09bnVsbD9LOmVbNV0oV1sxXSwiISIseiw1MTIsNjQsSykpLDQwKSk9PUIpZm9yKG49WzAsbnVsbCwyXSxDPWdbMTBdKDcsImZvbnRTaXplIixKKSx2PShBPUMubWF0Y2goTGgpKSYmQVtuWzBdXXx8blsxXSxDJiYicHgiPT12P1E9cGFyc2VJbnQoQyx6KToocD1SQihyRSx7c3R5bGU6InZpc2liaWxpdHk6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xpbmUtaGVpZ2h0OjA7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjowO2hlaWdodDoxZW07In0pLEouYXBwZW5kQ2hpbGQocCksQz1wLm9mZnNldEhlaWdodCxlWzQ2XShXWzJdLHApLFE9QyksWVszNV0oMTYsSiwiZm9udFNpemUiLFErInB4IiksYj1SWzM2XShXWzFdLEopLmhlaWdodDtRPjEyJiYhKEs8PW5bMF0mJmI8PW5bMl0qUSkmJiEoYjw9Syk7KVEtPW5bMl0sWVszNV0oV1sxXSxKLCJmb250U2l6ZSIsUSsicHgiKSxiPVJbMzZdKFdbMV0sSikuaGVpZ2h0OwpyZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEJ8OCk9PSgoQT1bNDEsImlzRW5hYmxlZCIsN10sQi0zPj4zKT09MiYmeltBWzFdXSgpJiZnWzJdKDMwLEssInJlY2FwdGNoYS1jaGVja2JveC1jbGVhck91dGxpbmUiLHopLEI8PDI8MTcmJihCfEFbMl0pPj0wJiYoYj1EW0FbMF1dKDgseix2b2lkIDAsQyx2b2lkIDAsdm9pZCAwLEssSikpLEIpJiZWJC5jYWxsKHRoaXMpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoISgoQnwoTj1bMjUsMTUsImZyb21DaGFyQ29kZSJdLDYpKT4+MykpYTp7aWYoISh2PURbMTFdKDEwKVtDPUM9PT12b2lkIDA/ITE6QyxHSigpXSx2KSl7Si52PUhxLFc9SzticmVhayBhfWlmKCEoQT12W2VUKCldLEEpKXtKLnY9KFc9SyxxVSk7YnJlYWsgYX1pZighKFo9QVtpTigpXSxaKSl7Vz0oSi52PXkkLEspO2JyZWFrIGF9Zm9yKHA9KGI9a1tKLkY9Qz81OjQsNDVdKDgsImR3ZHpSbGwyZUdwZlVYVlEiKSwKeiksUT0wO1E8Yi5sZW5ndGg7USsrKXArPVN0cmluZ1tOWzJdXShiW1FdXiJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiLmNoYXJDb2RlQXQoUSUyNCkpO1c9KG49TWF0aC50cnVuYyhZaigpKSxtWzJdKDMsWi5jYWxsKEEse2Nsb3VkUHJvamVjdE51bWJlcjpwfSkpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIEouQT1NYXRoLnRydW5jKFlqKCkpLW4seH0sZnVuY3Rpb24oKXtyZXR1cm4gSi52PWNxLEt9KSl9cmV0dXJuKEJ8KChCfCgoKEJ8MikmKChCLTEmTlsxXSk9PTMmJlQuY2FsbCh0aGlzLHosMCxTVC5SVCksTilbMV0pPj03JiZCPj4xPDI0JiYoVz1rWzM0XSgyMywxNixtMywzLEsseikpLDI0KSk9PUImJih0aGlzLnY9eiksNzIpKT09QiYmKFc9UlsxM10oNDQsSFtOWzBdXSg0MixPWzldKDIyLDIyKSx6KSxbZ1sxNl0oNzgsSyksZ1sxNl0oMTQsSildKSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKChCLTVeKE49WzE2LDEsMl0sMjMpKTxCJiYKKEIrM14zMCk+PUIpe2lmKChwPShXPShRPShuPVsxMCwwLCJFZGdlIl0se3RpdGxlOmxOKCksdGFiaW5kZXg6Six3aWR0aDpTdHJpbmcodi53aWR0aCksaGVpZ2h0OlN0cmluZyh2LmhlaWdodCkscm9sZTpFOCgpLG5hbWU6aCQrQy5qfSksR1sxMF0oNSwiU2FmYXJpIikmJmtbTlswXV0oMTEsblswXSwiMTcuNSIsZVsxM10oNTcsbltOWzJdXSx6LE5bMl0sIk1TSUUiKSk+PW5bTlsxXV0pLHlbOF0oMzgsImlQb2QiKSYma1tOWzBdXSg3MyxuWzBdLCIxNy41IixtWzRdKDM2LCJrYWlvcyIsIkNyT1MiKSk+PW5bTlsxXV0pLFcpfHxwKVFbZEUoKV09a2ooKTsoKFo9KEMuQT1IWzIwXShOWzFdLG5bTlsxXV0sUSxlWzQ2XSgzMyxBKSksWWopKCksQykuQS5vbmxvYWQ9ZnVuY3Rpb24oZixMKXtmPWdbTD1bMCw2NiwxXSwzMl0oODUsTFswXSxtWzM1XShMWzFdLExbMF0seVs5XSg1LExbMl0sSyksWiksWWooKS1aKSwoMCx0JC5rZikoZil9LGIpLmFwcGVuZENoaWxkKEMuQSl9aWYoKEImNjEpPT0KQil7Zm9yKGI9KCh0aGlzLk09KCh0aGlzLmJsb2NrU2l6ZT0oKHRoaXMudj16LHRoaXMpLmJsb2NrU2l6ZT0tMSxDPUssSnx8ei5ibG9ja1NpemV8fE5bMF0pLHRoaXMpLlg9QXJyYXkodGhpcy5ibG9ja1NpemUpLEFycmF5KHRoaXMuYmxvY2tTaXplKSksQy5sZW5ndGg+dGhpcy5ibG9ja1NpemUpJiYodGhpcy52LnVwZGF0ZShDKSxDPXRoaXMudi5kaWdlc3QoKSx0aGlzLnYucmVzZXQoKSksMCk7Yjx0aGlzLmJsb2NrU2l6ZTtiKyspQT1iPEMubGVuZ3RoP0NbYl06MCx0aGlzLlhbYl09QV45Mix0aGlzLk1bYl09QV41NDt0aGlzLnYudXBkYXRlKHRoaXMuTSl9aWYoKEJ8NjQpPT1CKWE6e2lmKEo9PT0tMSl7eD16O2JyZWFrIGF9aWYoISgoUT0oQT1KKyhLPzA6LTEpLEMubGVuZ3RoLU5bMV0pLFEpPE5bMV0rKEs/MDotMSkpKXtpZihBPj1RKWlmKHA9Q1tRXSxwIT16JiZ0eXBlb2YgcD09PSJvYmplY3QiJiZwLmNvbnN0cnVjdG9yPT09T2JqZWN0KXY9ITAsWj1wW0pdO2Vsc2UgaWYoQT09PQpRKVo9cDtlbHNle3g9dm9pZCAwO2JyZWFrIGF9ZWxzZSBaPUNbQV07aWYoYiYmWiE9eil7aWYobj1iKFopLG49PXope3g9bjticmVhayBhfWlmKCFVOChuLFopKXsoeD1uLHYpP3BbSl09bjpDW0FdPW47YnJlYWsgYX19eD1aO2JyZWFrIGF9fWlmKChCfDcpPj40PE5bMV0mJihCPDxOWzJdJjE1KT49NSl7Sj1bMSwwLDJdO3RyeXtzd2l0Y2goSy5NKXtjYXNlIEpbTlsxXV06Sy5NIT1KW05bMV1dP1JbMTRdKDE0LEpbMF0sSyk6UlsxN10oNyxLLnYpO2JyZWFrO2Nhc2UgejpnWzE0XSg2NCw4LEsudik7YnJlYWs7Y2FzZSBKW05bMl1dOlJbOV0oTlswXSxKW05bMl1dLEpbMF0sSyk7YnJlYWs7Y2FzZSA1OmdbMTRdKDYzLDQsSy52KTticmVhaztjYXNlIDM6Qz0oSFtOWzFdXSg5LDEwMCksSy5YKTt0cnl7ZG97aWYoIURbNDddKDgsSlswXSxLKSl0aHJvdyBFcnJvcigpO2lmKEsuTT09NCl7aWYoSy5YIT1DKXRocm93IEVycm9yKCk7YnJlYWt9UlsxNF0oNyxKWzBdLEspfXdoaWxlKDEpfWNhdGNoKGYpe2lmKGYgaW5zdGFuY2VvZgpSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBmO31maW5hbGx5e01VPkpbTlsxXV0mJk1VLS19YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigpO319Y2F0Y2goZil7aWYoZiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGY7fX1yZXR1cm4geH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQjw8MSYoKEImMzkpPT0odj1bMCwibCIsIksiXSwoQnwyNCk9PUImJih0aGlzLlg9Six0aGlzLkE9eixiPVtudWxsLDEsITFdLHRoaXMuTD1LfHxiWzFdLHRoaXMuaT1DLHRoaXMuRmc9bmV3IHdFKHRoaXMpLHRoaXMuST1iWzJdLHRoaXNbdlsxXV09Ylt2WzBdXSx0aGlzLkY9Ylt2WzBdXSx0aGlzLmo9YlsyXSx0aGlzLlU9W10sdGhpcy5HPS0xLHRoaXMuUz12WzBdLHRoaXMubz1iW3ZbMF1dLHRoaXMubnE9YlsyXSx0aGlzLkg9Ylt2WzBdXSx0aGlzLm09Ylt2WzBdXSx0aGlzLkI9Ylt2WzBdXSx0aGlzLlA9Ylt2WzBdXSwKdGhpcy5XPXZbMF0sdGhpcy5YZz1iWzJdLHRoaXMuRD1iW3ZbMF1dLHRoaXMuTz1iW3ZbMF1dLHRoaXMuQz1iW3ZbMF1dLHRoaXMuUj1iWzJdLHRoaXMuZz1iW3ZbMF1dLHRoaXMudHU9NDVFMyx0aGlzLnY9Ylt2WzBdXSx0aGlzW3ZbMl1dPWJbMl0sdGhpcy5NPW5ldyBJQiksQikmJihBPVREKCc8ZGl2PlRoaXMgc2l0ZSBpcyBleGNlZWRpbmcgPGEgaHJlZj0iaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3JlY2FwdGNoYS9kb2NzL2JpbGxpbmctaW5mb3JtYXRpb24iIHRhcmdldD0iX2JsYW5rIj5yZUNBUFRDSEEgRW50ZXJwcmlzZSBmcmVlIHF1b3RhPC9hPi48L2Rpdj4nKSksMTIpKTwyJiYoQl40Nyk+PjQ+PXZbMF0pc3dpdGNoKHo9enx8bmV3IEZ0LHRoaXNbdlsyXV09ei5STix6LlZYJiYodGhpc1t2WzFdXT16LlZYKSx6LnYhPW51bGwmJih0aGlzLlU9ISF6LnYpLHRoaXMudi5YKXtjYXNlIEJmOmtbNDVdKDY0LDIsdGhpcyxzTyxuZXcgemwoei5NKSk7YnJlYWs7Y2FzZSBLUTprWzQ1XSg2NSwKMix0aGlzLENRKTticmVhaztkZWZhdWx0OkRbNDNdKDcxLHRoaXMsITApfXJldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoQj4+MTwoKHA9WyJyZW1vdmVMaXN0ZW5lciIsMCwiRUwiXSwoQl41MCkmMTV8fHouWC5wdXNoKHouWjIsei5sUCx6W3BbMl1dLFlbMl0oODEsZnVuY3Rpb24oUSxuKXtyZXR1cm4gUV5ufSx6KSx6LmFiLHoudmQsei5KTCksKEJeNjMpJjkpfHwoSj16LmRvY3VtZW50LEs9Si5jb21wYXRNb2RlPT0iQ1NTMUNvbXBhdCI/Si5kb2N1bWVudEVsZW1lbnQ6Si5ib2R5LHY9bmV3IGJtKEsuY2xpZW50V2lkdGgsSy5jbGllbnRIZWlnaHQpKSwxMSkmJigoQl40NykmMTEpPj0xMCYmKEE9WzAsITAsbnVsbF0sdHlwZW9mIHohPT0ibnVtYmVyIiYmeiYmIXoubUEpKWlmKEo9ei5zcmMsZ1twWzFdXSg5LEopKWVbM10oMzQsQVtwWzFdXSxKLk8seik7ZWxzZSBpZihiPXoudHlwZSxLPXoucHJveHksSi5yZW1vdmVFdmVudExpc3RlbmVyP0oucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLApLLHouY2FwdHVyZSk6Si5kZXRhY2hFdmVudD9KLmRldGFjaEV2ZW50KE9bMzddKDE3LGIpLEspOkouYWRkTGlzdGVuZXImJkpbcFswXV0mJkpbcFswXV0oSyksQVEtLSxDPWVbMThdKDcwLEopKWVbM10oMzIsQVtwWzFdXSxDLHopLEMuTT09QVtwWzFdXSYmKEMuc3JjPUFbMl0sSlt2Zl09QVsyXSk7ZWxzZSBPWzEwXSgyLEFbMV0seik7cmV0dXJuKEI+PjImNyk+PTYmJihCLTYmOCk8NiYmKHY9UlsxM10oMjEsSFsyNV0oNDEsT1s5XSgyOCwxMSkseiksW2dbMTZdKDg2LEspLGdbMTZdKDMwLEopXSkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpe2lmKGM9WzE2LDIsMTNdLChCJjEwNik9PUIpT1s0M10oMyxDLEoseixLLHtkZXN0aW5hdGlvbjp3aW5kb3csb0E6QSxvcmlnaW46dixFbDpUbCxvbk1lc3NhZ2U6ZnVuY3Rpb24oRSl7YihqWChFLmRhdGEpKX19KTtpZigoKEImMTkpPT1CJiYocFEuY2FsbCh0aGlzKSx0aGlzLk09eiwKeVs0M10oNDAsdGhpcy5NLHRoaXMpLHRoaXMuaT1LKSxCfDU2KT09Qil7aWYoeD0ocD0oVj0oTj0oQT0oTD15W2NbMV1dKDQsKFA9KG49WyhaPXYuYVQsMCksNCwyXSxaW0EkXSl8eix2KSxQKT8xOkosISFBfHxMPT09MyksTD09PTImJllbMThdKGNbMF0sblswXSx2KSYmKFo9di5hVCxQPVpbQSRdfHopLG1bMzRdKDUsbnVsbCxaLEssQykpLE49PT1RUD83Ok5bQSRdfHopLGdbMjRdKDMsbltjWzFdXSxQLFYpKSxuKVsxXSZwPyExOiEwLHgpe2ZvcihmPShuWzFdJnAmJihOPWcwW2NbMV1dKDgsTiksVj16LHA9SFs0M10oMzQsbltjWzFdXSxwLFApLFA9WVsyNV0oMzQsTixDLFAsSyxaKSksVz16KTtmPE4ubGVuZ3RoO2YrKylyPWIoTltmXSksciE9bnVsbCYmKE5bVysrXT1yKTtwPShXPChRPShwfG5bMV0pJi01MTMsZikmJihOLmxlbmd0aD1XKSxRJj0tMTAyNSkscCY9LTQwOTd9cT1OPShwIT09ViYmKGtbMzhdKDkzLE4scCksbltjWzFdXSZwJiZUSihOKSksRClbMTBdKGNbMF0sbltjWzFdXSwKTCx4LFoscCxBLE4sSyxDLFApfWlmKChCPDwxJjE1KT49MTQmJihCKzQmMjgpPDI3KWE6e2ZvcihLPShDPShiPShBPXoudix6Lk0pLDApLEErMTApO0E8SzspaWYoSj1iW0ErK10sQ3w9SiwoSiYxMjgpPT09MCl7cT0hIShrWzQzXSg3LHosQSksQyYxMjcpO2JyZWFrIGF9dGhyb3cgRXJyb3IoKTt9cmV0dXJuKEIrNSZjWzJdKT09MSYmKG5RLmNhbGwodGhpcyxLKSx0aGlzLlg9enx8IiIpLHF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuKCgoKEIrN14xMyk+PShuPVswLDMsMV0sQikmJihCKzJeMzEpPEImJihZWzM3XSg5LEssSiksSz1aZihLKSwhSiYmIWdkfHxOdShLKT9DPVN0cmluZyhLKTooa1sxMl0oMTMseixLKSxDPVJbMzZdKG5bMV0sMzIsT08seE8pKSxRPUMpLEI+Pm5bMl0pJjExfHwodj1uZXcgRGYoYixBKSxRPXtjaGFsbGVuZ2VBY2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIEdbMTFdKDQxLEdbMjddKDEsSyxDLEosNyx2KSl9LHZlcmlmeUFjY291bnQ6ZnVuY3Rpb24oWil7cmV0dXJuIEdbMTFdKDQwLApEWzMxXSgxMCw0LHosSixLLHYsWikpfSxnZXRDaGFsbGVuZ2VNZXRhZGF0YTpmdW5jdGlvbigpe3JldHVybiBPWzQwXSg2LHYuaSl9LGlzVmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi53SCgpfX0pLEIpfDcpPj5uWzFdfHwoYj1bMjA0NywwLDJdLHA9SFsyOF0oOCxuWzJdLEspLEo9SFsyOF0oblsxXSxuWzJdLEspLEM9KEo+PjMxKSpiWzJdK25bMl0sQT1KPj4+MjAmYltuWzBdXSx2PTQyOTQ5NjcyOTYqKEomMTA0ODU3NSkrcCxRPUE9PWJbblswXV0/dj9OYU46QypJbmZpbml0eTpBPT1iW25bMl1dP0MqZlEoYlsyXSwtMTA3NCkqdjpDKmZRKGJbMl0sQS16KSoodis0NTAzNTk5NjI3MzcwNDk2KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKChCXjM3KSYoKCgoKEJeMjQpJih2PVsiekoiLCJVIiw3XSwxNSkpPT0yJiYoYj1iPT09dm9pZCAwP3t9OmIsQT16LnJlcXVlc3QoTEsoKSxLLEMsSixiKSksQileMjkpJnZbMl18fChMRC5jYWxsKHRoaXMsMzUyLDE5KSwKdGhpcy5FMz10aGlzLlA9dGhpcy5vPXRoaXMuSz10aGlzLmRlPXRoaXMuQjE9dGhpcy5EPXRoaXMubnE9dGhpcy5Naj10aGlzLmtKPXRoaXMuQT10aGlzLlcxPXRoaXMuQUw9dGhpcy5Jdz10aGlzLndiPXRoaXMucWQ9dGhpcy5NeT10aGlzLmEwPXRoaXMubVg9dGhpcy55QT10aGlzLkg9dGhpcy51WT10aGlzLk09dGhpcy5pWT0tMSx0aGlzLnZ2PXRoaXMuRE09dGhpcy5tPXRoaXMuWD10aGlzLkpNPXRoaXMuZFY9dGhpcy5CaD10aGlzLm9UPXRoaXMubnU9dGhpcy5pPXRoaXMuQj10aGlzLkk9dGhpcy5qPXRoaXMuSk89dGhpcy5DPXRoaXMuUz10aGlzW3ZbMV1dPS0xLHRoaXMuVz10aGlzLlhnPXRoaXMuWEM9dGhpcy5HPXRoaXNbdlswXV09LTEsdGhpcy5pNT16LHRoaXMudmw9dGhpcy5MPXRoaXMubFk9dGhpcy5nPXRoaXMuTmQ9dGhpcy5LcT10aGlzLmdCPXRoaXMuUWU9dGhpcy5mcT0tMSx0aGlzLkFlPWdbdlsyXV0oMzYpLHRoaXMuUjE9Z1t2WzJdXSgzOSksdGhpcy5rdz1nW3ZbMl1dKHZbMl0pLAp0aGlzLnBxPWdbdlsyXV0oNSksdGhpcy5uaT1nW3ZbMl1dKDM4KSksMTIpKTwxJiYoQjw8MiY1KT49MiYmKEE9KEM9SihLKCksMTYpKT9DLmxlbmd0aCsiLCIrSihDLDIyKS5sZW5ndGg6b2YoKSksQj4+MSYxMSl8fChBPVJbMTNdKDE0LEhbMjVdKDQzLE9bOV0oMTYsNSkseiksW09bMjVdKDMsSiksT1syNV0oNSxLKV0pKSxBfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoQnwoKCgoQz1bMywwLDFdLEIpfENbMl0pJkNbMF0pPj1DWzFdJiZCLUNbMF08OSYmKEs9bmV3IFdlYWtNYXAsSj1mdW5jdGlvbihiKXsoYj1LLmdldCh0aGlzKXx8QXJyYXkoeikuZmlsbCh2b2lkIDApLEsuc2V0KHRoaXMsdGhpcy54SiksdGhpcykueEo9Yn0pLEMpWzJdKSZDWzBdKT09Q1syXSYmKHRoaXMuTT1LLHRoaXMudj16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWKXtpZigoVj1bIkNnIiw1NiwzXSwoQnxWWzFdKT09QikmJihuPXRoaXNbTFFdLE49W251bGwsCjEsMTI4XSxXPXRoaXNbUmZdLEE9ZnVuY3Rpb24oUCxxLGMsRSxTLGEsdSl7aWYoKHU9WzU1LDE2LG51bGxdLGMpLmxlbmd0aCE9PTApaWYoWltxXSlmb3IoUz1nWzEyXSgxLGMpLEU9Uy5uZXh0KCk7IUUuZG9uZTtFPVMubmV4dCgpKXthPWdbMTJdKHVbMF0sRS52YWx1ZSk7dHJ5e1E9ITAsVyhmLGEpfWZpbmFsbHl7RFsyOF0odVsxXSwxMDAsYSl9fWVsc2UgQz09dVsyXXx8Qyh6LHEsYyl9LGY9Z1syMl0oMTcsTlsxXSx2b2lkIDAsbi5yZSksYj15WzIyXSgyNSx6KSkmJihaPW4uZlgsUT0hMSxaKSl7aWYoSz09TlswXSlEWzM3XSgxMixBLGIpO2Vsc2UgYiE9TlswXSYmKHg9YltLXSkmJkEoYixLLHgpO2lmKFEpe2lmKChMPXpbQSRdfChwPWZ1bmN0aW9uKFAscSxjKXtpZihSWzE0XSg3NCwoYz1bbnVsbCwyNSwxXSxjWzBdKSx2LFAseikhPWNbMF0pc3dpdGNoKEo9PWNbMF0/dm9pZCAwOkouUEQpe2Nhc2UgY1syXTpyZXR1cm47ZGVmYXVsdDp0aHJvdyBFcnJvcigpO31kZWxldGUgKHEhPQpjWzBdJiYoTD1ZW2NbMV1dKDE2LHEsUCxMLHYseikpLGIpW1BdfSwwKSxMKSYyJiZMJjIwNDgmJihKPT1OWzBdfHwhSi5zQikpdGhyb3cgRXJyb3IoKTt2PUhbMzVdKDE0LE5bMl0sTCksSz09TlswXT9EWzJdKDgsTlsxXSxOWzJdLGYsZnVuY3Rpb24oUCxxKXtwKFAscSl9LGZbQSRdfDApOnAoSyxSWzE0XSg3NSxOWzBdLHYsSyxmKSl9fWlmKCEoQjw8MSYxMCkmJih2PVswLDFdLHRoaXMudj1bXSx6KSlhOntpZih6IGluc3RhbmNlb2YgcmQpe2lmKEM9ei5EUygpLGI9ei5GcCgpLHRoaXMudi5sZW5ndGg8PXZbMF0pe2ZvcihwPXRoaXMudixBPXZbMF07QTxDLmxlbmd0aDtBKyspcC5wdXNoKG5ldyBWUChDW0FdLGJbQV0pKTticmVhayBhfX1lbHNle2ZvcihLIGluIEM9WVsxOV0oMjIsKFE9W10sdlswXSksKG49dlswXSx6KSkseilRW24rK109eltLXTtiPVF9Zm9yKEo9dlswXTtKPEMubGVuZ3RoO0orKyltWzM4XSgzMyx2WzBdLHZbMV0sdGhpcyxiW0pdLENbSl0pfWlmKEItOT4+VlsyXT09ClZbMl0pe2ZvcihBPUM9MDtBPEo7QSsrKWI9dGhpc1tWWzBdXShLK0EpK3pbVlswXV0oQSkrQyxDPWI+Pj4xNSx0aGlzLkdTKEsrQSxiJjMyNzY3KTtyPUN9cmV0dXJuKEImMjkpPT1CJiZLLm8mJihHbC5jbGVhclRpbWVvdXQoSy5vKSxLLm89eikscn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKEItMzw8KEo9WzEyLCJYIiwiTSJdLDIpPj1CJiZCLTU8PDE8QiYmKEs9Sz09PXZvaWQgMD8hMDpLLHpbSlsxXV0mJks/KHpbSlsxXV0uY2xhc3NMaXN0LmFkZChIZikseltKWzFdXS5jbGFzc0xpc3QucmVtb3ZlKGVYKSk6eltKWzFdXSYmIUsmJih6W0pbMV1dLmNsYXNzTGlzdC5hZGQoZVgpLHpbSlsxXV0uY2xhc3NMaXN0LnJlbW92ZShIZikpKSxCKSszXkpbMF0pPj1CJiYoQisyXjI5KTxCJiYoSz10aGlzW0pbMl1dLEM9Sz09PXp8fEFycmF5LmlzQXJyYXkoSykmJksuaW5jbHVkZXMoeikpLEN9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKCgoKChDPShCPDwxJjEzfHwodGhpcy52PQpuZXcgTWFwLHRoaXMuTT16fHxudWxsKSxbNCwxNywzXSksKEImNzkpPT1CKSYmKEo9SyV6KSxCKS0yXjYpPj1CJiYoQi1DWzJdfDc0KTxCJiZULmNhbGwodGhpcyx6KSxCKStDWzJdPj5DWzBdPj0wJiZCLTY8Q1sxXSYmKHo9RXJyb3IuY2FsbCh0aGlzLFBmKCkpLHRoaXMubWVzc2FnZT16Lm1lc3NhZ2UsInN0YWNrImluIHomJih0aGlzLnN0YWNrPXouc3RhY2spLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlKSx0aGlzLm5hbWU9JE8oKSksQnw1Nik9PUImJkxELmNhbGwodGhpcywyMDMxLDIsWzJdKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUpe3JldHVybihCJjUwKT09KChCLTR8NzcpPCgoKEImKCh1PVs4LDQwLDI1XSxCLTYpPDE0JiYoQjw8MSYxNSk+PTQmJihXPVsnIiBjbGFzcz0iJywiICIsJyI+J10sdj1IWzQ1XSh1WzFdLHF1KCksei5zaXplLGltKCkseVAoKSksCllPKCksaW0oKSxjZigpLEVPKCksaW0oKSxjZigpLFhyKCksaW0oKSx1bSgpLGFmKCksaW0oKSx1bSgpLGhRKCksaW0oKSx1bSgpLGRkKCksaW0oKSx1bSgpLGtPKCksaW0oKSx0USgpLFVPKCksaW0oKSxNdSgpLHY9PT0xPyhaPUhbNDVdKDEyLFlPKCksei5zWSxpbSgpLGNmKCkpLEVPKCksaW0oKSxjZigpLFA9SFs0NV0oNDQsWHIoKSx6Lk10LGltKCksdW0oKSksZj1IWzQ1XSg3MixhZigpLHouRVksaW0oKSx1bSgpKSxTPUhbNDVdKDQ0LGhRKCksei5LRCxpbSgpLHVtKCkpLEU9SFs0NV0oNzYsZGQoKSx6LlpuLGltKCksdW0oKSksTj1IWzQ1XSgxMixrTygpLHouZXJyb3JNZXNzYWdlLGltKCksdFEoKSkscT1IWzQ1XSh1WzFdLFVPKCksei5lcnJvckNvZGUsaW0oKSxNdSgpKSxMPU9bdVsxXV0oOTgsZ1t1WzJdXSgzLGdbdVsyXV0oMzUsZ1t1WzJdXSgzNixnW3VbMl1dKDY3LGdbdVsyXV0oNjcsT1t1WzFdXSg3OCxnW3VbMl1dKDUxLGdbdVsyXV0oNCxPW3VbMV1dKDc4LGFaKCksJzxkaXYgaWQ9IicrClJbMTFdKDcsInJjLWFuY2hvci1jb250YWluZXIiKStXWzBdK1JbMTFdKDcxLCJyYy1hbmNob3IiKStXWzFdK1JbMTFdKDksInJjLWFuY2hvci1ub3JtYWwiKStXWzFdK1JbMTFdKDczLFopK1dbMl0pLFlbMjJdKDEwLHouaHUpKSxEWzMzXSg2NSkpLCc8ZGl2IGNsYXNzPSInK1JbMTFdKDcsInJjLWFuY2hvci1jb250ZW50IikrV1syXSksTnx8KHEhPW51bGw/cTpudWxsKT4wP09bMjZdKDE2LDYsNyx6KTpPWzI3XSgxMSxXWzFdKSksUD9PW3VbMV1dKDk4LGdbdVsyXV0oMzYsT1t1WzFdXSg5OSxhWigpLHdkKCkpLGVbNDZdKDMxKSksSWYoKSk6IiIpLGY/T1t1WzFdXSg3OSxnW3VbMl1dKDUxLE9bdVsxXV0oOTgsYVooKSx3ZCgpKSxSWzE1XSgyKSksSWYoKSk6IiIpLFM/T1t1WzFdXSg3OCxnW3VbMl1dKDUxLE9bdVsxXV0oNzgsYVooKSxGcigpKSxZWzldKDEpKSxJZigpKToiIiksRT9PW3VbMV1dKDk3LGdbdVsyXV0oNCxPW3VbMV1dKDk5LGFaKCksQkYoKSksR1szN10oOSkpLElmKCkpOgoiIiksJzwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJjLWFuY2hvci1ub3JtYWwtZm9vdGVyIikrV1syXSksQT16Lk10LHI9ei5FWSxuPUhbNDVdKHVbMF0sWHIoKSxBLGltKCksdW0oKSksUT1IWzQ1XSg3MixhZigpLHIsaW0oKSx1bSgpKSxjPVREKCc8ZGl2IGNsYXNzPSInK1JbMTFdKDczLCJyYy1hbmNob3ItbG9nby1wb3J0cmFpdCIpKyhufHxRP1dbMV0rUlsxMV0oMzksInJjLWFuY2hvci1vdmVyLXF1b3RhLWxvZ28iKToiIikrJyIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9InByZXNlbnRhdGlvbiI+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYW5jaG9yLWxvZ28taW1nIikrV1sxXStSWzExXSg3LCJyYy1hbmNob3ItbG9nby1pbWctcG9ydHJhaXQiKSsnIj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDcsInJjLWFuY2hvci1sb2dvLXRleHQiKSsnIj5yZUNBUFRDSEE8L2Rpdj48L2Rpdj4nKSxiPU9bdVsxXV0oNzksZ1t1WzJdXSg1MSxnW3VbMl1dKDUxLEwsYyksCmdbMTZdKDQ0LFdbMV0seikpLHMxKCkpKTp2PT09Mj8oSz1IWzQ1XSg0NCxZTygpLHouc1ksaW0oKSxjZigpKSxFTygpLGltKCksY2YoKSxwPUhbNDVdKHVbMF0sWHIoKSx6Lk10LGltKCksdW0oKSksVj1IWzQ1XSg3MixhZigpLHouRVksaW0oKSx1bSgpKSxDPUhbNDVdKDQ0LGhRKCksei5LRCxpbSgpLHVtKCkpLEo9SFs0NV0oNDQsZGQoKSx6LlpuLGltKCksdW0oKSkseD1IWzQ1XSh1WzBdLGtPKCksei5lcnJvck1lc3NhZ2UsaW0oKSx0USgpKSxVTygpLGltKCksTXUoKSxiPU9bdVsxXV0oNzgsZ1t1WzJdXSg2NyxnW3VbMl1dKDUyLE9bdVsxXV0oOTgsZ1t1WzJdXSg2NyxnW3VbMl1dKDUyLGdbdVsyXV0oMzYsZ1t1WzJdXSg1MSxnW3VbMl1dKDMsT1t1WzFdXSg5OCxnW3VbMl1dKDY4LGdbdVsyXV0oNTIsT1t1WzFdXSg3OCxhWigpLCc8ZGl2IGlkPSInK1JbMTFdKDksInJjLWFuY2hvci1jb250YWluZXIiKStXWzBdK1JbMTFdKDM5LCJyYy1hbmNob3IiKStXWzFdK1JbMTFdKDczLAoicmMtYW5jaG9yLWNvbXBhY3QiKStXWzFdK1JbMTFdKDcsSykrV1syXSksWVsyMl0oOSx6Lmh1KSksRFszM10oNjcpKSwnPGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy1hbmNob3ItY29udGVudCIpK1dbMl0pLHg/T1syNl0oMTcsNiw3LHopOk9bMjddKDEwLFdbMV0pKSxwP09bdVsxXV0oNzksZ1t1WzJdXSg1MSxPW3VbMV1dKDk4LGFaKCksd2QoKSksZVs0Nl0oNDcpKSxJZigpKToiIiksVj9PW3VbMV1dKDc5LGdbdVsyXV0oNjcsT1t1WzFdXSg5OSxhWigpLHdkKCkpLFJbMTVdKDQpKSxJZigpKToiIiksQz9PW3VbMV1dKDk4LGdbdVsyXV0oNCxPW3VbMV1dKDk5LGFaKCksRnIoKSksWVs5XSg5KSksSWYoKSk6IiIpLEo/T1t1WzFdXSg3OSxnW3VbMl1dKDM2LE9bdVsxXV0oOTksYVooKSxCRigpKSxHWzM3XSh1WzJdKSksSWYoKSk6IiIpLCc8L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLWFuY2hvci1jb21wYWN0LWZvb3RlciIpK1dbMl0pLFREKCc8ZGl2IGNsYXNzPSInK1JbMTFdKDksCiJyYy1hbmNob3ItbG9nby1sYW5kc2NhcGUiKSsnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iJytSWzExXSg3MywicmMtYW5jaG9yLWxvZ28taW1nIikrV1sxXStSWzExXSg3LCJyYy1hbmNob3ItbG9nby1pbWctbGFuZHNjYXBlIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtYW5jaG9yLWxvZ28tbGFuZHNjYXBlLXRleHQtaG9sZGVyIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1hbmNob3ItY2VudGVyLWNvbnRhaW5lciIpKyciPjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJjLWFuY2hvci1jZW50ZXItaXRlbSIpK1dbMV0rUlsxMV0oOSwicmMtYW5jaG9yLWxvZ28tdGV4dCIpKyciPnJlQ0FQVENIQTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PicpKSxnWzE2XSg0MSxXWzFdLHopKSxzMSgpKSk6Yj0iIixhPWdbdVsyXV0oMzYsYVooKSxiKSksNjkpKT09QiYmKEE9QT09PXZvaWQgMD97fToKQSxhPW5ldyB6aChmdW5jdGlvbihYLGQsdCxoLE0sVSl7cmV0dXJuKEMuc3RyZWFtcy5zZXQoKHQ9bmV3IEtuKGIsKGg9KFU9WyhNPSsrQy5vLCJjZCIpLDE2LDRdLGQ9QVtVWzBdXSkhPUs/ZDpDLlguVWwsaCksWCksTSksdCksQy5sKS5uZXh0KHt9KSxHW1VbMl1dKFVbMV0seixDLHQsTSksZnVuY3Rpb24oKXtPWzQ3XSgyNCxKLEssQyxNKX19KSksKEJ8ODgpPT1CKSYmKHRoaXMuWD10aGlzLnY9dGhpcy5NPTApLEIpJiZCLTU8PDI+PUImJihhPXo9PT1udWxsP0owKCk6ej09PXZvaWQgMD9DbigpOnopLEIpJiYoYmQuY2FsbCh0aGlzLGtbMThdKDIwLEEwKSxrWzQzXSgyNix2RiksTEsoKSksa1s0OF0odVsxXSx0aGlzLFRoLHopLGtbNDhdKDEwLHRoaXMsajQsZU4oSykpKSxhfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEI+PjEmKCgoQisodj1bMiw5LDY4XSx2KVswXSY1Nyk+PUImJkIrMz4+dlswXTxCJiYoej1bbnVsbCwhMV0sdGhpcy52PXpbMF0sdGhpcy5NPXpbMF0sCnRoaXMuaT16WzBdLHRoaXMuWD16WzBdLHRoaXMubmV4dD16WzBdLHRoaXMuQT16WzFdKSwoQjw8dlswXSYxMSk+PTcpJiYoKEJeMjkpJjE2KTw0JiYocD1HWzI2XSgxNixDLEssZVs0OF0odlsyXSx6LEopLGIsQSkpLDEyKSk8NSYmQit2WzFdPj4zPj0xKWE6e2lmKHBuKXtwPUdsLmF0b2IoSyk7YnJlYWsgYX1tWzZdKHZbMV0sNjQsKEo9eixmdW5jdGlvbihRKXtKKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFEpfSksSykscD1KfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoQz1bImNhbGwiLDgsMzNdLChCJjEyMyk9PUIpVFtDWzBdXSh0aGlzLHopO3JldHVybihCK0NbMV0mNDMpPEImJihCLTleMjEpPj1CJiYoYj1lWzJdKENbMl0sSyxKLHosUUIpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChCXihDPVsxLCJyZW1vdmUiLDQ4XSwyMCkpPj4zPT1DWzBdJiYoYj1uZXcgbm4oeixLLEopKSxCPDxDWzBdJjcpfHwoei5jbGFzc0xpc3Q/ei5jbGFzc0xpc3RbQ1sxXV0oSyk6CmVbMTBdKDE3LHosSykmJkdbMzhdKENbMl0sInN0cmluZyIsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGVbQ1swXV0oMTIseiksZnVuY3Rpb24oQSl7cmV0dXJuIEEhPUt9KS5qb2luKCIgIikseikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZihiPVsibWF0Y2giLDMsInYiXSwhKEIrNyY3KSl7Zm9yKDt6PVppLnJlbW92ZSgpOyl7dHJ5e3ouTS5jYWxsKHpbYlsyXV0pfWNhdGNoKEEpe09bNDVdKDIsQSl9V0YucHV0KHopfWdrPSExfXJldHVybihCfDUpPj4oKEJeMjcpJjExfHwoQz10aGlzW2JbMl1dW2JOKCh6KzcpLzE3KV0pLGJbMV0pfHwoSj1LW2JbMF1dKG9vKSxMbiYmWyJodHRwIiwiaHR0cHMiLCJ3cyIsIndzcyIsImZ0cCJdLmluZGV4T2YoSlt6XSk+PTAmJkxuKEspLEM9SiksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKChCXigoUT1bMiwxNSw5XSxCKzE+PTIzKSYmQi00PDI1JiYoYj1nWzMxXSg0MywwLGtbMzldKDQzLHosSiksQy50b1N0cmluZygpLApSbykscD1lWzE2XSg5OSw0LHJrLGtbMjRdKDcsMCxIWzQ4XShRWzBdLGIubGVuZ3RoLDE5LEssNzUpLGIpKSksNjgpKTwyMSYmKEIrMyY3KT49NSYmKHRoaXMuWD16LHRoaXMuTT1iLHRoaXMuY29uZmlnPUMsdGhpcy5aaT1KLHRoaXMuc3RhdGU9MCx0aGlzLnY9bmV3IHdFLHRoaXMuY2hhbm5lbD1tWzE4XShRWzBdLCJjIiwiZCIsMSxRWzBdLEssdGhpcykpLEIpKzc8MjMmJigoQnxRWzJdKSZRWzFdKT49MTImJihwPUdbMTNdKDE3LGZ1bmN0aW9uKG4sWil7aWYoKFo9WzEwLCJ2IiwiWCJdLG4uTSk9PXopcmV0dXJuIHY9WVtaWzBdXSgzNSxmdW5jdGlvbihXKXtyZXR1cm4gVy5wYXJzZShiKX0pLG5bWlsxXV0oUls0N10oNTgsSix2W0tdLHZbel0rdltDXSksQyk7cmV0dXJuIG4ucmV0dXJuKG5ldyBWQihZW1pbQT1uW1pbMl1dLDBdXSg2NSxmdW5jdGlvbihXKXtyZXR1cm4gVy5wYXJzZShBKX0pLHZbel0sdltDXSkpfSkpLCEoQi1RWzBdJjExKSlhOntpZigoQz0vcnY6ICooW1xkXC5dKikvLmV4ZWMoSikpJiYKQ1tLXSl7cD1DW0tdO2JyZWFrIGF9aWYoKHY9L01TSUUgKyhbXGRcLl0rKS8uZXhlYygoYj0iIixKKSkpJiZ2W0tdKWlmKEE9L1RyaWRlbnRcLyhcZC5cZCkvLmV4ZWMoSiksdltLXT09eilpZihBJiZBW0tdKXN3aXRjaChBW0tdKXtjYXNlICI0LjAiOmI9R2goKTticmVhaztjYXNlICI1LjAiOmI9SEYoKTticmVhaztjYXNlICI2LjAiOmI9ZTQoKTticmVhaztjYXNlIHo6Yj1QRigpfWVsc2UgYj0kaCgpO2Vsc2UgYj12W0tdO3A9Yn1yZXR1cm4gcH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoYj1bOCw3LDZdLCgoQnxiWzBdKSZiWzFdKT09Mil7Zm9yKEo9eixDPVtdO0o8SztKKyspQ1tKXT16O0E9Q31pZigoQisyJjQwKT49QiYmKEItYlsxXV5iWzFdKTxCKWtbYlsyXV0oMjQseixLLEopO2lmKCEoQisyJjE0KSlPWzJdKGJbMV0sZnVuY3Rpb24oKXt0aGlzLmhPKCl9LHosSyk7cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKChiPVs2LDEsNDI5NDk2NzI5Nl0sCkIpLWJbMV18YlsxXSk8QiYmKEItYlswXXwyMyk+PUImJihDPW5ldyBxMSh6JjQyOTQ5NjcyOTUsYk4oei9iWzJdKSkpLEIpLTU+PTE4JiYoQj4+YlsxXSY4KTw3JiYoQz1LJiZKLk9kKCk+ej9LKCk6bnVsbCksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXtpZigoQiYoUD1bImNvbnN0cnVjdG9yIiw5MywyXSxQWzFdKSk9PUIpYTp7aWYoKChyPShuPVshMCwiVW5rbm93bkVycm9yIiwid2luZG93LmxvY2F0aW9uLmhyZWYiXSxPWzE2XSgxMyxLLHosbltQWzJdXSkpLGIpPT16JiYoYj1pZCgpKSx0eXBlb2YgYik9PT0ic3RyaW5nIil7Vj17bWVzc2FnZTpiLG5hbWU6eUIoKSxsaW5lTnVtYmVyOlloKCksZmlsZU5hbWU6cixzdGFjazpZaCgpfTticmVhayBhfXg9ITE7dHJ5e1E9Yi5saW5lTnVtYmVyfHxiLmxpbmV8fCJOb3QgYXZhaWxhYmxlIn1jYXRjaChxKXtRPVloKCkseD1uWzBdfXRyeXtmPWIuZmlsZU5hbWV8fGIuZmlsZW5hbWV8fApiLnNvdXJjZVVSTHx8R2xbY0YoKV18fHJ9Y2F0Y2gocSl7Zj1ZaCgpLHg9blswXX1pZihwPUdbMjhdKDM3LEMsYiksISgheCYmYi5saW5lTnVtYmVyJiZiLmZpbGVOYW1lJiZiLnN0YWNrJiZiLm1lc3NhZ2UmJmIubmFtZSkpe1Y9KHY9Yi5tZXNzYWdlLHY9PXomJihiW1BbMF1dJiZiW1BbMF1daW5zdGFuY2VvZiBGdW5jdGlvbj8oYltQWzBdXS5uYW1lP0E9YltQWzBdXS5uYW1lOihXPWJbUFswXV0sUzRbV10/QT1TNFtXXTooTD1TdHJpbmcoVyksUzRbTF18fChOPS9mdW5jdGlvblxzKyhbXlwoXSspL20uZXhlYyhMKSxTNFtMXT1OP05bMV06bXooKSksQT1TNFtMXSkpLFo9J1Vua25vd24gRXJyb3Igb2YgdHlwZSAiJytBKyciJyk6Wj1sZCgpLHY9Wix0eXBlb2YgYi50b1N0cmluZz09PSJmdW5jdGlvbiImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmchPT1iLnRvU3RyaW5nJiYodis9SitiLnRvU3RyaW5nKCkpKSx7bWVzc2FnZTp2LG5hbWU6Yi5uYW1lfHxuWzFdLGxpbmVOdW1iZXI6USwKZmlsZU5hbWU6ZixzdGFjazpwfHwiTm90IGF2YWlsYWJsZSJ9KTticmVhayBhfVY9e21lc3NhZ2U6Yi5tZXNzYWdlLG5hbWU6Yi5uYW1lLGxpbmVOdW1iZXI6Yi5saW5lTnVtYmVyLGZpbGVOYW1lOmIuZmlsZU5hbWUsc3RhY2s6cH19aWYoQis2Pj4zPj1QWzJdJiYoQj4+MSY2KTwxKWE6aWYoYj1tW1BbMl1dKDkxLEUxKSxwPSFrWzEwXSgzLCJub25lIixiKSxDPT1udWxsfHxDPT1wKXtpZihwKXtpZighKEouZmcoYiksWVsxXSg0NSx6LGIpKSl7Vj12b2lkIDA7YnJlYWsgYX1BPShZWzM4XSg0LGIsITApLFIpWzM2XSg4LGIpLmhlaWdodCxrWzhdKDQyLEosZnVuY3Rpb24ocSl7KChxPVsiZm9jdXMiLDQwLCJTaWxrIl0sYk4pKEspLHkpWzI1XShxWzFdLDAscVsyXSwiRWRnZSIsIkNyaU9TIik+PUt8fGJbcVswXV0oKX0pfWVsc2UgQT0tMSpSWzM2XSg0MCxiKS5oZWlnaHQsRFsxM10oMjIsYiksWVszOF0oNyxiLCExKTtrWzQ2XSg2MiwiaCIsSiwoKHY9T1s0M10oMTcsSi5SKSx2KS5oZWlnaHQrPQpBLHYpKX1yZXR1cm4gVn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKE49WyJ2IiwxOCwzXSxCLTIpXjEyKTxCJiYoQisxJjYxKT49QilhOntpZighKHY9WyJHRVQiLDAsMl0sZVsyMl0oNCx2WzBdLHZbMl0sYikpKXtXPXlbMjBdKDE2LEMsYltOWzBdXSk7YnJlYWsgYX1pZigobj1iW05bMF1dLmdldFJlc3BvbnNlKCksbik9PT0iIil7Vz1DO2JyZWFrIGF9aWYoIShRPShaPVJbNDJdKDQxLGJbTlswXV0pPT16LEE9QyxuLmxlbmd0aCksYi5NKS5YKXtpZih0eXBlb2YgVGV4dERlY29kZXI9PT0idW5kZWZpbmVkIil7Vz0oKFhTKCksSFs5XSg1NixudWxsLGIpLFkpWzQzXShOWzFdLHZbMV0sYiksQyk7YnJlYWsgYX1iLk0uWD1uZXcgR2wuVGV4dERlY29kZXJ9Zm9yKHA9dlsxXTtwPFE7cCsrKWIuTS5NPUssQSs9Yi5NLlguZGVjb2RlKG5bcF0se3N0cmVhbTohKFomJnA9PVEtSil9KTtXPWIuTVtOW2IuTVsobi5sZW5ndGg9dlsxXSxOKVswXV0rPUEsYi5XPQp2WzFdLDBdXX1yZXR1cm4oQj4+MjxOWzFdJiYoQi1OWzJdJjcpPj02JiYoSj1LLnRhYkluZGV4LFc9dHlwZW9mIEo9PT0ibnVtYmVyIiYmSj49eiYmSjwzMjc2OCksKChCfDkpJjE2KTw0KSYmQi00Pj0tODMmJihlWzM2XSgxLGIsYltOWzBdXSwiZyIsZnVuY3Rpb24oeCl7eVsyNF0oNCxudWxsLCh4PVs1MCwhMCwzNV0seFsxXSksZ1t4WzJdXSh4WzBdLGIudikpfSksZVszNl0oMTAsYixiW05bMF1dLCJoIixmdW5jdGlvbigpe2IucmVzaXplKCl9KSxlWzM2XSg1LGIsYltOWzBdXSwiaSIsZnVuY3Rpb24oeCl7eVt4PVtudWxsLDM1LDUxXSwyNF0oNix4WzBdLHosZ1t4WzFdXSh4WzJdLGIudikpfSksZVszNl0oNyxiLGJbTlswXV0sSixmdW5jdGlvbigpe3JldHVybiBEWzFdKDI3LDIsdWQsYil9KSxlWzM2XShOWzJdLGIsYltOWzBdXSxDLGZ1bmN0aW9uKCl7cmV0dXJuIERbMV0oMTEsMixhbyxiKX0pLGVbMzZdKDEyLGIsYltOWzBdXSxLLGZ1bmN0aW9uKCl7cmV0dXJuIERbMV0oMTksCjIsaDAsYil9KSxlWzM2XSgxMCxiLGJbTlswXV0sImoiLGZ1bmN0aW9uKHgpe3JldHVybiBEW3g9WzEsMjgsMF0seFsxXV0oMTIseFsyXSwyLHhbMF0sNCxiKX0pLGVbMzZdKE5bMl0sYixiW05bMF1dLCJyIixmdW5jdGlvbih4KXtyZXR1cm4gZ1szMF0oKHg9WzEsMjEsMTFdLHgpWzFdLHhbMF0seFsyXSwxMywhMSxiKX0pKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVybiBCKygoKFY9WzEzLDIsNV0sQik+PlZbMV0mVlsyXSk9PTEmJihQPUdbVlswXV0oOSxmdW5jdGlvbihxLGMsRSl7aWYocVtFPVsiTSIsKGM9W251bGwsMSwwXSw2NyksOV0sRVswXV09PWNbMV0pcmV0dXJuIHY9ZGsuSigpLFE9Yi52Lkssa2guSigpLnY9Z1syNF0oMTQsY1syXSxRKSxyPWNbMF0sVz1uZXcgdDAoUSx2LmdldCgpLnllKCksSFswXSg1NixjWzJdLHYsSikpLE49Yi5GZy50aGVuKGZ1bmN0aW9uKFMpe3JldHVybiBTLnNlbmQoVTEsVyw1RTMpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pLApxLnYoKDAsdCQueTUpKGZ1bmN0aW9uKCl7cmV0dXJuIE59LDE1KSwyKTtpZighKG49KHA9KEw9KGIudVk9KChyPXEuWCl8fChyPWtbMzVdKDEwLGNbMV0seiwhMSkpLHIudltFWzBdXSksZGVjb2RlVVJJQ29tcG9uZW50KShlc2NhcGUoUlsyNV0oMSxDLGIudi5VKSkpLGIudi5IKSx7cEQ6USxOSTpMLHd6OnAsUU46ci52LnYsbmI6ci52LkxELFdBOk0xLEtiOllbMjJdKEVbMV0sSyx2LmdldCgpKSxjbzpHWzQ5XSgxMCwhMSx3ayx2KSxhTjpudWxsLGx5Om51bGwscGI6bnVsbH0pLGIpLnYuWClEWzFdKDEwLGNbMF0sYiwoZj0oeD1yW0VbMF1dKT09Y1swXT92b2lkIDA6eC52KSE9Y1swXT9mOm51bGwsbik7cmV0dXJuIHEudihHWzMyXShFWzJdLGNbMF0sY1syXSxiLChaPShBPXJbRVswXV0pPT1jWzBdP3ZvaWQgMDpBW0VbMF1dKSE9Y1swXT9aOm51bGwsbiksY1syXSl9KSksVlsxXSk+PjR8fChiTihDKSxiTihKKSxnWzI3XSgxNCx6LEssQyksZ1syN10oVlswXSx6LEssSikpLFB9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyl7aWYoISgoQi05XjEwKTwoUz1bNDIsMTQsMV0sQikmJihCKzkmMTUpPj1CJiYoQT1rW1NbMF1dKDIzLHosSy51RCxKKSxLLk09QS5idWZmZXIsSy5BPUEudixLLmk9Q3x8MCxLLnY9Sy5pLEsuWD1iIT09dm9pZCAwP0suaStiOksuTS5sZW5ndGgpLEItNCY3KSlhOntpZihWPUNbS10scT1bMCxudWxsLChXPXt9LCJzdHJpbmciKV0sVil7RT1WO2JyZWFrIGF9Zm9yKCh2PSgoWj17fSxaKS53UT1DLFoucmU9WVsxMF0oNCwib2JqZWN0Iix6LHFbMF0scVsyXSxDW3FbMF1dKSxDW1NbMl1dKSxjPVNbMl0sdiYmdi5jb25zdHJ1Y3Rvcj09PU9iamVjdCkmJihaLmZYPXYsdj1DWysrY10sdHlwZW9mIHY9PT0iZnVuY3Rpb24iJiYoWi5Gcj0hMCxJbyE9cVtTWzJdXXx8KElvPXYpLEZTIT1xW1NbMl1dfHwoRlM9Q1tjK1NbMl1dKSx2PUNbYys9Ml0pKTt2JiZBcnJheS5pc0FycmF5KHYpJiZ2Lmxlbmd0aCYmdHlwZW9mIHZbcVswXV09PT0KIm51bWJlciImJnZbcVswXV0+cVswXTspe2ZvcihmPXFbMF07Zjx2Lmxlbmd0aDtmKyspV1t2W2ZdXT12O3Y9Q1srK2NdfWZvcihRPVNbMl07diE9PXZvaWQgMDspe2lmKChOPSh0eXBlb2Ygdj09PSJudW1iZXIiJiYoUSs9dix2PUNbKytjXSksUD12b2lkIDAsdm9pZCAwKSx2IGluc3RhbmNlb2YgQkQpP249djoobj1KZSxjLS0pLChQPW4pPT1xW1NbMl1dPzA6UC52KXY9Q1srK2NdLEw9YyxBPXYscj1DLHR5cGVvZiBBPT09ImZ1bmN0aW9uIiYmKEE9QSgpLHJbTF09QSksTj1BO2ZvcigocD1RKyh2PUNbKytjXSxTKVsyXSx0eXBlb2Ygdj09PSJudW1iZXIiKSYmdjxxWzBdJiYocC09dix2PUNbKytjXSk7UTxwO1ErKyl4PVdbUV0sTj9KKFosUSxuLE4seCk6YihaLFEsbix4KX1FPUNbS109Wn1yZXR1cm4oKEJ8MTYpPT1CJiYoYmQuY2FsbCh0aGlzLGtbMThdKFNbMV0sQ2cpLGtbNDNdKDI1LGJGKSxMSygpKSxtWzIzXSgyNywiQTdLcGFFQVNmaERjSzBuWHhnUUV5eVl2Iix6LDIsbCksCks9RFs4XSgxMSxkay5KKCkuZ2V0KCkpLG1bMjNdKDIwLEsseixTWzJdLGwpLHRoaXMuTzA9ei5UKCkpLChCPj5TWzJdJjE1KT09MykmJihFPWJOKEFlKCkqeikpLEV9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQjw8KFo9WyJmaXJzdENoaWxkIiwyMiwiZGF0YSJdLDEpJjExKT09MiYmKFE9WzAsMjE0NzQ4MzY0OCwiIl0sSiZRWzFdPyhnW1pbMV1dKDI0KT9BPVFbMl0rKEJpZ0ludChKfFFbMF0pPDxCaWdJbnQoeil8QmlnSW50KEs+Pj5RWzBdKSk6KHA9Z1sxMl0oMTEsR1szMV0oMzYsMSxKLEspKSx2PXAubmV4dCgpLnZhbHVlLEM9cC5uZXh0KCkudmFsdWUsQT0iLSIra1syNl0oMzAsOCx2LEMpKSxiPUEpOmI9a1syNl0oOTQsOCxLLEopLG49YiksIShCPDwxJjE1KSlhOntpZigodj15WzQ3XS5iaW5kKG51bGwsMTIpLGcpWzEwXSgxLCJkaXNwbGF5Iix6KSE9Im5vbmUiKXtuPXYoeik7YnJlYWsgYX0oYj0oQT0oQz0oSz16LnN0eWxlLEspLnBvc2l0aW9uLApKPUsuZGlzcGxheSxLLnZpc2liaWxpdHkpLEsudmlzaWJpbGl0eT12RCgpLEsucG9zaXRpb249VHkoKSxLLmRpc3BsYXk9akMoKSx2KHopKSxLKS5kaXNwbGF5PUosSy5wb3NpdGlvbj1DLEsudmlzaWJpbGl0eT1BLG49Yn1pZighKChCXjE2KT4+MykpaWYoInRleHRDb250ZW50ImluIHopei50ZXh0Q29udGVudD1LO2Vsc2UgaWYoei5ub2RlVHlwZT09Myl6W1pbMl1dPVN0cmluZyhLKTtlbHNlIGlmKHpbWlswXV0mJnpbWlswXV0ubm9kZVR5cGU9PTMpe2Zvcig7ei5sYXN0Q2hpbGQhPXpbWlswXV07KXoucmVtb3ZlQ2hpbGQoei5sYXN0Q2hpbGQpO3pbWlswXV1bWlsyXV09U3RyaW5nKEspfWVsc2UgRFsxM10oNzIseiksei5hcHBlbmRDaGlsZChnWzMxXSg0OCw5LHopLmNyZWF0ZVRleHROb2RlKFN0cmluZyhLKSkpO3JldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgoKHY9WzEsIl9fIiwzXSxCPj52WzBdKSZ2WzJdfHwodGhpcy52PSExKSxCKS05JjcpPT12WzBdKXtpZighKGI9CihDPUdsW3BnKCldfHxHbFtRZygpXSxDKVtLXSxiKSl0aHJvdyBFcnJvcihLKyIgbm90IG9uIGdsb2JhbD8iKTsoQ1tLXT1mdW5jdGlvbihwLFEpe3ZhciBuPVtudWxsLCJjYWxsIiw0N107aWYoKCh0eXBlb2YgcD09PSJzdHJpbmciJiYocD1uZyh5WzM0XS5iaW5kKG5bMF0sMjcpLHApKSxwKSYmKGFyZ3VtZW50c1swXT1wPWtbblsyXV0oMTgsITEsITAscCxKKSksYikuYXBwbHkpcmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBaPXA7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXZhciBXPUFycmF5LnByb3RvdHlwZS5zbGljZVtuWzFdXSgoWj1mdW5jdGlvbigpe3AuYXBwbHkodGhpcyxXKX0sYXJndW1lbnRzKSwyKTtyZXR1cm4gYihaLFEpfSxDW0tdKVttWzRdKDgsdlsxXSx6LEopXT1ifXJldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKFc9WyJXIiwzMiw0MV0sQiY1Nyk9PUImJihBPUouTVtKLk0ubGVuZ3RoLXpdLGI9WWooKSxBLkh2PD0KYiYmKEEuVEU9SyksSltXWzBdXSYmSltXWzBdXT49QS5URXx8KEEuVEU9PT0xPyhKW1dbMF1dPXosQz1BLkh2LWIsSi5yYihDKSk6KEpbV1swXV09SyxKLlFlKCkpKSksKChCXjc2KSYzKT49MikmJkI+PjE8MTUpYTp7aWYodj1nWzMxXSg2NCx6LChDPW5ldyBaNigwLDApLEopKSxKPT0odj9nWzMxXSg4MCx6LHYpOmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQpe1E9QzticmVhayBhfShwPShBPWVbMTJdKDIsSiksSFsxN10oMzEseix2KSksYj1lW1dbMl1dKDMwLEsscC52KSxDLng9QS5sZWZ0K2IueCxDKS55PUEudG9wK2IueSxRPUN9cmV0dXJuKChCLTVeMTQpPEImJihCLTJeMjEpPj1CJiZULmNhbGwodGhpcyx6KSxCfFdbMV0pPT1CJiYoWj1mdW5jdGlvbihOKXtyZXR1cm4gei5uZXh0KE4pfSxuPWZ1bmN0aW9uKE4pe3JldHVybiB6WyJ0aHJvdyJdKE4pfSxRPW5ldyBQcm9taXNlKGZ1bmN0aW9uKE4seCl7ZnVuY3Rpb24gZihMKXtMLmRvbmU/TihMLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoTC52YWx1ZSkudGhlbihaLApuKS50aGVuKGYseCl9Zih6Lm5leHQoKSl9KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZigoQis4JigoQj4+KGY9WzEzLDAsIm9ubG9hZCJdLDIpJjE1fHxULmNhbGwodGhpcyx6KSxCLTE+PTYmJkI+PjE8OCYmKEE9e3RpbWVvdXQ6MUU0fSxaPUEuZG9jdW1lbnR8fGRvY3VtZW50LHg9WVszMV0oMyxiKS50b1N0cmluZygpLG49KG5ldyBXRChaKSkuY3JlYXRlRWxlbWVudChnXyksUT17T2w6bix0dTp2b2lkIDB9LHY9bmV3IE5OKE9tLFEpLHA9QS50aW1lb3V0IT1DP0EudGltZW91dDo1RTMsVz1DLHA+ZlsxXSYmKFc9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24ocixWKXtyPShIWzM3XSgyMiwoVj1bNDUsITAsNDBdLEMpLFZbMV0sbiksbmV3IHhBKDEsIlRpbWVvdXQgcmVhY2hlZCBmb3IgbG9hZGluZyBzY3JpcHQgIit4KSkseVsxM10oNzQsSix2KSxnW1ZbMF1dKFZbMl0sVlsxXSx2LEoscil9LHApLFEudHU9VyksbltmWzJdXT1uLm9ucmVhZHlzdGF0ZWNoYW5nZT0KZnVuY3Rpb24ocil7KHI9WyJ3QyIsInJlYWR5U3RhdGUiLCJsb2FkZWQiXSxuW3JbMV1dKSYmbltyWzFdXSE9clsyXSYmbltyWzFdXSE9ImNvbXBsZXRlInx8KEhbMzddKDE4LEMsQVtyWzBdXXx8SixuLFcpLHYueEEoQykpfSxuLm9uZXJyb3I9ZnVuY3Rpb24ocixWKXsocj0oVj1bITAsODgsMzddLEhbVlsyXV0oMTksQyxWWzBdLG4sVyksbmV3IHhBKDAsIkVycm9yIHdoaWxlIGxvYWRpbmcgc2NyaXB0ICIreCkpLHkpWzEzXShWWzFdLEosdiksZ1s0NV0oNDEsVlswXSx2LEoscil9LE49QS5hdHRyaWJ1dGVzfHx7fSxENihOLHt0eXBlOiJ0ZXh0L2phdmFzY3JpcHQiLGNoYXJzZXQ6IlVURi04In0pLEhbMzZdKDQ5LHosSyxOLG4pLGtbMzZdKDEwLEMsIiIsbixiKSxHWzhdKDI4LGZbMV0sWikuYXBwZW5kQ2hpbGQobiksTD12KSxCLTg8PDIpPj1CJiYoQi0zfDM5KTxCJiYoWVszNV0oMzIsbVsyXSg5MSwicmMtaW1hZ2UtdGlsZS1vdmVybGF5IixKLmVsZW1lbnQpLHtvcGFjaXR5OiIwLjUiLApkaXNwbGF5OiJibG9jayIsdG9wOiIwcHgifSksT1syXSg0MCxmdW5jdGlvbihyKXtZWzM1XSgocj1bOTAsMTYsMl0sclsxXSksbVtyWzJdXShyWzBdLCJyYy1pbWFnZS10aWxlLW92ZXJsYXkiLEouZWxlbWVudCksIm9wYWNpdHkiLHopfSxLKSksZlswXSkpPT0xKWtbNl0oMjgseixLLEopO3JldHVybiBMfSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKCEoKCgoQz1bNjIsOCw0Nl0sQiZDWzBdKT09QiYmSyYmZ1syMF0oQ1sxXSx6LEspLEItNileMjcpPEImJihCLTV8NTApPj1CJiYoSj1rW0NbMl1dKENbMl0sZnVuY3Rpb24oYixBLHYpe2Iuc3Vic2NyaWJlKCh2PXosbmV3IGZnKEEsZnVuY3Rpb24ocCl7Kyt2PD1LJiYoQS5uZXh0KHApLEs8PXYmJkEuY29tcGxldGUoKSl9KSkpfSkpLChCfDUpPj40KSlzd2l0Y2godHlwZW9mIEspe2Nhc2UgInN0cmluZyI6T1syNV0oMjcseixLKX1yZXR1cm4gSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCfChwPVsiaVkiLDE1LDVdLApCLTQmM3x8VC5jYWxsKHRoaXMseiksMTYpKT09QiYmKEouUD1EYXRlLm5vdygpLGVbMzRdKDMsSiksSi5tPXlbcFsxXV0oMTgsSi5DKSxtWzQ3XSg1MixKLm0sb3goKSxKLkwpLGI9Si5pLkQsSi5XPUssSi5NPW5ldyBJQixKLnY9eVszNV0oNCxKLmksYj9DOm51bGwsIUoubCksSi5TPksmJihKLkQ9bmV3IExnKFJ4KEpbcFswXV0sSixKLnYpLEouUykpLEhbNDFdKDM0LHZvaWQgMCxKLkZnLEoudixKLmtKLHJfKSxBPUouSD9tWzQyXSgzMyxKLkgpOnt9LEoubD8oSi5PfHwoSi5PPUxLKCkpLEFbVmcoKV09R3koKSxKLnYuc2VuZChKLm0sSi5PLEoubCxBKSk6KEouTz1IRCgpLEoudi5zZW5kKEoubSxKLk8sbnVsbCxBKSksZzBbcFsyXV0oNiwxKSxlWzEyXSg1MCwiXG4iLCImIiwyLHosSi5BLEoubSxKLk8sSi5MLEoubCxKLlgpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKChCJjg3KT09KEE9WzEsMjEsN10sQikmJihLPXRoaXMudixKPXRoaXMuQSx0aGlzLlg/ei5lcnJvcihKKToKSyYmei5jb21wbGV0ZSgpKSxCXjIpPj40KSlhOntpZigoWVszN10oQVsxXSxLLEopLEM9WmYoTnVtYmVyKEspKSxOdSkoQykpe3Y9U3RyaW5nKEMpO2JyZWFrIGF9dj0oKGI9Sy5pbmRleE9mKGVDKCkpLGIhPT0tMSkmJihLPUsuc3Vic3RyaW5nKHosYikpLEp8fGdkKT9EWzIzXSg2NSwzMiwxNixLKTpLfXJldHVybigoQl4zMikmQVsyXSk9PUFbMF0mJih2PXoudj96LnYucmVhZHlTdGF0ZTowKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCgoQnw1KSYoKEJeNDApPCgoQiY1NCk9PShRPVsyNywiWCIsODhdLEIpJiYoSj1HWzM5XShRWzJdLDEsbnVsbCx6LGtbNDddKDUsUEQpLG5ldyBNYXAoW1tbJEEscU4saUYseWcsWUFdLEsubF0sW1tjRF0sSy56Sl0sW1tTQ10sSy5ZZl0sW21MLEsucGddXSksSyksSi5jYXRjaChmdW5jdGlvbigpe30pLG49SiksMjkpJiYoQl43Nik+PTI0JiYodj1PWzI2XSg5OCwwKSxwPXA9PT12b2lkIDA/e306cCxuPW5ldyB6aChmdW5jdGlvbihaLApXLE4seCxmLEwscixWKXtpZigoTj0oeVs0NV0oMzQsMCwoTD1uZXcgbEYoWiwoZj0oeD0ocj0oVj1bNzIsbnVsbCwidiJdLCsrQS5vKSxwLmNkKSkhPVZbMV0/eDpBLlguVWwsdiksITEsZixiKSxBKSksZ1szOF0oVlswXSxMLEEpKSkmJihOLk18fHYuY29tcGFyZShOW1ZbMl1dKTw9MCkpcmV0dXJuIFc9SyxPWzJdKDM5LGZ1bmN0aW9uKCl7VyYmTC5NLmNvbXBsZXRlKCl9LDZFNCksZnVuY3Rpb24oKXtXPUp9O3JldHVybiBBLnN0cmVhbXMuc2V0KHIsTCksQS5sLm5leHQoe30pLEdbNF0oMTcsQyxBLEwsciksZnVuY3Rpb24oKXtPWzQ3XSg0MCx6LG51bGwsQSxyKX19KSksUVswXSkpPT0zKWE6c3dpdGNoKHo9ej09PXZvaWQgMD9udWxsOnosSyl7Y2FzZSBFbTpuPW5ldyBYNjticmVhayBhO2Nhc2UgdUY6bj1uZXcgYXg7YnJlYWsgYTtjYXNlIGhlOm49bmV3IGRfO2JyZWFrIGE7Y2FzZSBrQTpuPW5ldyB0ZTticmVhayBhO2Nhc2UgVW06bj1uZXcgdGUoVW0pO2JyZWFrIGE7Y2FzZSBNTjpuPQpuZXcgd187YnJlYWsgYTtjYXNlIEl4Om49bmV3IEY2O2JyZWFrIGE7Y2FzZSBCTDpuPW5ldyBzZDticmVhayBhO2Nhc2Ugemo6bj1uZXcgS1I7YnJlYWsgYTtjYXNlIEp4Om49bmV3IENSO2JyZWFrIGE7Y2FzZSBiMjpuPW5ldyBBeDticmVhayBhO2Nhc2UgSG86bj1uZXcgdkw7YnJlYWsgYTtjYXNlIFRqOm49bmV3IGpXKHopO2JyZWFrIGE7Y2FzZSBwUjpuPW5ldyBRTzticmVhayBhfXJldHVybigoQnw4MCk9PUImJlQuY2FsbCh0aGlzLHosMCxiRi5SVCksQiktND4+M3x8KEtbUVsxXV09Qz9rWzEyXSgyNCxKLHopOkosbj1LKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gQi05JigoKChiPVsxMyw0OCw2OF0sQjw8MikmYlswXXx8KEE9bVsyM10oMjIsSixLLHopKSxCKS0zfDIxKT49QiYmKEItN15iWzBdKTxCJiYoSj1LW25SXSxKfHwoQz1SWzM1XShiWzJdLHosWnQsSFsyNF0uYmluZChudWxsLDQwKSxLLGtbYlsxXV0uYmluZChudWxsLDExKSksSj1mdW5jdGlvbih2LApwKXtyZXR1cm4gWVsxM10oMTMsMTI4LDUwMCxDLHYscCl9LEtbblJdPUopLEE9SiksNyl8fChwUS5jYWxsKHRoaXMpLHRoaXMuQT1LfHw1RTMsdGhpcy5pPXp8fDAsdGhpcy5NPUp8fG5ldyBXTCh0aGlzLmksZzUsMSwxMCx0aGlzLkEpLHlbNDNdKDU3LHRoaXMuTSx0aGlzKSx0aGlzLlg9MCksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCEoKHA9WzU4LDMsMzBdLEIpLTg+PjQpKXtpZigheil0aHJvdyBFcnJvcigiSW52YWxpZCBjbGFzcyBuYW1lICIreik7aWYodHlwZW9mIEshPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJJbnZhbGlkIGRlY29yYXRvciBmdW5jdGlvbiAiK0spO31pZigoQiZwWzJdKT09QilhOntpZihOMCl7dj0oSj1LW09kXSkhPXo/SjpLW09kXT1uZXcgTWFwO2JyZWFrIGF9aWYoT2QgaW4gSyl7dj1LW09kXTticmVhayBhfXhWKEssT2QsKEM9bmV3IE1hcCx7dmFsdWU6Q30pKSx2PUN9cmV0dXJuKChCXnBbMF0pPj40fHwodj1HWzEzXSg4LGZ1bmN0aW9uKFEsCm4sWil7bj0oWj1bMTEsMSwiaSJdLFs3LDAsNl0pO3N3aXRjaChRLk0pe2Nhc2UgWlsxXTppZihKPShiPURbWlswXV0oWlswXSksYikuZG9jdW1lbnQsIUpbRHQoKV18fCFKW2ZSKCldKXtRLkdfKG5bWlsxXV0pO2JyZWFrfXJldHVybiBRLkEoeiksUS52KEpbRHQoKV0oKSxLKTtjYXNlIEs6aWYoIShBPVEuWCxBKSl7US5HXyhuWzJdKTticmVha31yZXR1cm4gUS52KEpbZlIoKV0oe2xvY2FsU3RvcmFnZTohMCxzZXNzaW9uU3RvcmFnZTohMH0pLG5bMF0pO2Nhc2UgblswXTooQz1RLlgpJiYob249Qyk7Y2FzZSBuWzJdOlEuRihuW1pbMV1dKTticmVhaztjYXNlIHo6UVtaWzJdXSgpLFEuUigpfX0pKSxCfDYpPj5wWzFdPj0wJiYoKEJeNjkpJjEwKTwyJiYoSj15WzM0XSg0OSxudWxsLHopLmNsaWVudCx2PVJbMThdKDgsMiwxLDUsNixLLEouWCkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LApzdyxCOCxKWSxiMyx6OCxqTixaRyl7cmV0dXJuKChCfDQ4KT09KChCKzEmKCgoWkc9WzMsNTAsMjRdLEIrOD4+WkdbMF09PTEpJiYob258fChvbj1EWzExXSgyKSksak49Sz09ej9vbi5zZXNzaW9uU3RvcmFnZTpvbi5sb2NhbFN0b3JhZ2UpLChCLTV8MzQpPEImJihCLTheMjApPj1CKSYmKEE9WyIvbS8wazRqIiwiL20vMDR3NjdfIiwiVGlsZVNlbGVjdGlvblN0cmVldFNpZ24iXSxDPVsiVGlsZVNlbGVjdGlvblN0cmVldFNpZ24iLCIvbS8wazRqIiwiL20vMDR3NjdfIl0sYj1tWzMxXShaR1swXSxLLEoubWV0YWRhdGEpLFJbMjZdKDEyLGIsSyk9PSIvbS8wazRqIiYmKEM9QSksdj1tWzJdKDg5LCJyYy1pbWFnZXNlbGVjdC1kZXNjLXdyYXBwZXIiKSxEWzEzXSg3MCx2KSxtWzMxXSgyOCx2LGVbMzhdLmJpbmQobnVsbCwzMikse2xhYmVsOkNbSi52Lmxlbmd0aC1LXSxVWTpKeH0pLGtbMzFdKDcseixKKSksMTUpKT09NCYmKHRoaXMudj1udWxsKSxCKSYmKHRoaXMuTT1LLHRoaXMudj0KeiksKEImODIpPT1CKSYmKGIzPVsxMiwwLDI1Nl0sQT1nWzEyXSgxMixrWzQyXSg0MSx6LDUpKSxRPUEubmV4dCgpLnZhbHVlLFY9QS5uZXh0KCkudmFsdWUsVz1BLm5leHQoKS52YWx1ZSxyPUEubmV4dCgpLnZhbHVlLHU9QS5uZXh0KCkudmFsdWUsei55eT8oYT1nWzI2XSg5MCxMUi5KKCksYjNbMF0pLHY9Z1sxMl0oNCxhKSxTPXYubmV4dCgpLnZhbHVlLHg9di5uZXh0KCkudmFsdWUsc3c9di5uZXh0KCkudmFsdWUsWD12Lm5leHQoKS52YWx1ZSxCOD12Lm5leHQoKS52YWx1ZSxKPXYubmV4dCgpLnZhbHVlLE09di5uZXh0KCkudmFsdWUsdi5uZXh0KCksdi5uZXh0KCksdD12Lm5leHQoKS52YWx1ZSx2Lm5leHQoKSxxPXYubmV4dCgpLnZhbHVlLGQ9W1lbNDFdKDIzLHIsT1syNV0oNSxyKSxPWzI1XSg1LDE4NDYpKSxHW1pHWzJdXSgxMCxyLE9bMjVdKDcsciksT1syNV0oNywxMjEzKSksWVsxNV0oNjUscixPWzI1XSg3LHIpLE9bMjVdKFpHWzBdLDE0NTQpKSxSWzE5XSg0MSxNLHEsCkspLEdbWkdbMl1dKFpHWzJdLE0sT1syNV0oNyxNKSxPWzI1XSg5LHIpKSxZWzE1XSg3NixNLE9bMjVdKDksTSksYjNbMl0pLG1bMzNdKDI3LEsscSxPWzI1XSg1LE0pKV0sRT1bWVsxNV0oNzIsUyxPWzI1XSg1LFcpLGIzWzJdKSxtWzMzXSgxMCxLLEosT1syNV0oNSxTKSksUlswXSgxMCx4LE9bMjVdKFpHWzBdLFcpLGIzWzJdKSxJKFcsc3csWCx4KV0sbj1beVszNl0oNTYsMjEsSyxPWzI1XSg3LEspKSxtWzEyXSg0MixCOCxSbiksUlsxOV0oNDAsQjgsQjgsSyksR1taR1syXV0oMTYsSixPWzI1XSg1LEI4KSw0KSxZWzE1XSg3MixyLE9bMjVdKDcsciksT1syNV0oNywxNDU0KSksR1taR1syXV0oWkdbMl0scixPWzI1XSg5LHIpLE9bMjVdKFpHWzBdLDE0NTQpKSxZWzE1XSg2NCxyLE9bMjVdKDksciksT1syNV0oNywxNDU0KSksbVsxMl0oNDcscSxiM1sxXSksRFsxNF0oOTgscSxkLEI4KSxnWzQ4XSgxMCwxOTEsc3cpLFlbMTJdKFpHWzBdLHN3LHN3KSxnWzQ4XSgxNiw2OTAsWCksUlsxNl0oMjYsCkI4LE9bMjVdKFpHWzBdLEI4KSwxKSxSWzE2XShaR1syXSxKLE9bMjVdKDUsSiksMSksRFsxNF0oMzQsSixFLEI4LC0xKSxIWzQ0XSg2MyxzdyksSFs0NF0oWkdbMV0sWCksSFs0NF0oNTgsdCldLChoPUxSLkooKSkudi5hcHBseShoLGVbMzNdKDM1LGEpKSxjPW4pOihaPUdbOF0oNDgsNjU1MzUpLHo4PWdbMjZdKDg4LExSLkooKSw1KSxwPWdbMTJdKDEyLHo4KSxiPXAubmV4dCgpLnZhbHVlLFU9cC5uZXh0KCkudmFsdWUsSlk9cC5uZXh0KCkudmFsdWUsZj1wLm5leHQoKS52YWx1ZSx3PXAubmV4dCgpLnZhbHVlLEM9W1JbMTldKDY0LGYsSlksSyksT1szN10oNTcsdyxPWzI1XShaR1swXSxmKSxPWzI1XSgxLFUpKSxHW1pHWzJdXSgxMCxVLE9bMjVdKDksVSksT1syNV0oMSxmKSksbVszM10oMjYsSyxKWSxPWzI1XSg1LHcpKV0sTD1beVszNl0oNTQsMjEsSyxPWzI1XSg1LEspKSxtWzEyXSgzOSxVLFopLG1bMTJdKDQxLGIsUm4pLFJbMTldKDksYixiLEspLG1bMTJdKDQ0LEpZLGIzWzFdKSwKRFsxNF0oMjYsSlksQyxiKSxtWzEyXSg0MCxVLFopLG1bMzNdKDE3LEssYixPWzI1XSg5LFUpKV0sKE49TFIuSigpKS52LmFwcGx5KE4sZVszM10oMjAsejgpKSxjPUwpLFA9YyxqTj1bZVs3XSg2NCxWKSxHW1pHWzJdXSgyNixWLE9bMjVdKDcsViksNjMyKSxZWzQxXSg3MCxWLE9bMjVdKDEsVikscjUpLE9bMzddKDYyLFYsT1syNV0oWkdbMF0sViksYjNbMV0pLE9bMzddKDU5LFcsT1syNV0oNyx6Lk8pLE9bMjVdKDcsVikpLE9bMzddKDU2LHIsT1syNV0oMSx6LkZnKSxPWzI1XSg5LFYpKSxQLHoueHcsZ1s1XSgyMCwzOSxRKSxSWzE2XShaR1syXSxRLE9bMjVdKDEsUSksT1syNV0oMSx6Lm96KSksbVsxMl0oMzksdSx6LnpWKSxrWzQzXSgxLDcsW3UsSyxRLHouSkxdKV0pLGpOfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoYj1bMTUsOTcsM10sQis4KT4+NHx8dGhpcy5SLnRoZW4oZnVuY3Rpb24oQSl7cmV0dXJuIEEuc2VuZChWTyl9KSwoQl4yNSk+PmJbMl09PTImJih0aGlzLng9CnohPT12b2lkIDA/ejowLHRoaXMueT1LIT09dm9pZCAwP0s6MCksKEImYlsxXSk9PUIpJiYoQz16PT1udWxsfHx0eXBlb2Ygej09PSJzdHJpbmciP3o6dm9pZCAwKSwoQi02JmJbMF0pPT00JiYoQz1HWzEzXSgzMyxmdW5jdGlvbihBKXtyZXR1cm4gQS5yZXR1cm4oeVs0Ml0oOSx6LDIyNCxLLEopKX0pKSxCJjkyKT09QiYmVC5jYWxsKHRoaXMseiksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKCgoWj1bMCwoKEImMTMpPT1CJiYobj1mdW5jdGlvbihXLE4seCxmLEwscixWLFApe2ZvcihOPShmPShXPSh4PShZWzEzXSgxMiwxMjgsNTAwLFJbMzVdKDEyLChQPVs3MiwidiIsKEw9bmV3IEdqLDY2KV0sIm51bWJlciIpLFp0LEhbMjRdLmJpbmQobnVsbCxQWzBdKSx6LGtbNDhdLmJpbmQobnVsbCwyNykpLHRoaXMuYVQsTCksSFs0NV0oUFsyXSxMW1BbMV1dLmVuZCgpLEwpLG5ldyBVaW50OEFycmF5KEwuTSkpLHI9MCxMKS5YLFcubGVuZ3RoKSwwKTtyPGY7cisrKVY9Cldbcl0seC5zZXQoVixOKSxOKz1WLmxlbmd0aDtyZXR1cm4gTC5YPVt4XSx4fSksNjEpLDJdLEIpLTVeMTcpPj1CJiYoQis3JjI4KTxCKWE6e2lmKHY9RFszOF0oNTEsKFE9KHA9KGI9WzAsbnVsbF0sei5hVCkscFtBJF18YltaWzBdXSksYlsxXSksUSxLLHAsSixDKSx2PT1iWzFdKXtuPXY7YnJlYWsgYX15W1pbMl1dKChRPXBbQSRdfGJbWlswXV0sMzYpLHosUSl8fChBPURbMV0oWlsxXSxiW1pbMF1dLHYpLEEhPT12JiYoWVsxOF0oMjAsYltaWzBdXSx6KSYmKHA9ei5hVCxRPXBbQSRdfGJbWlswXV0pLHY9QSxRPVlbMjVdKDE5LHYsSixRLEMscCksSFszNl0oWlsyXSxwLFEpKSksbj12fWlmKCgoQis0XjIyKTxCJiYoQi03fDYzKT49QiYmKEsmJiFKLmkmJihZWzQyXSgxMyxaWzBdLEopLEouWD16LEoudi5mb3JFYWNoKGZ1bmN0aW9uKFcsTix4LGYpe04hPShmPVs2NSwicmVtb3ZlIiwoeD1OLnRvTG93ZXJDYXNlKCksMTgpXSx4KSYmKHRoaXNbZlsxXV0oTiksa1tmWzJdXShmWzBdLAowLG51bGwseCx0aGlzLFcpKX0sSikpLEouaT1LKSwoQl4yMik+PjQpPj0xJiYoQl41MSk+PjQ8WlsyXSlhOntpZighSil7bj1LO2JyZWFrIGF9bj0oKGI9UlsyNl0oMjEsSix6KSxiKT09PW51bGx8fGI9PT12b2lkIDA/Qz1LOihITCgpLEM9bmV3IGVXKGIpKSxDKX1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihwPVsyLDUsMThdLChCKzcmNik+PTEmJihCXjEwKT4+NDxwWzBdJiYoZ1szXSgyNCxLLHosSixiLEEsQyl8fGVbcFsxXV0ocFsyXSxLLG5nKEMsYikpKSxCPDxwWzBdKSY3fHxULmNhbGwodGhpcyx6KSx2fV19KCkseT1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoQjw8KHY9WzQ4LDcsMTFdLDEpJjZ8fChBPVJbdlswXV0oNjksSyxQTCx6LGwpKSxCKS00fHZbMl0pPj1CJiYoQisyJjU2KTxCJiYoYj1bMTUsMCwzOF0sQz1KKEsoKSx2WzJdLGJbMF0sdlsxXSksQT1DPmJbMV0/SihLKCksdlsyXSwKYlswXSxiWzJdKS1DOi0xKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKChCKygoKHY9WzI1LDEwNyw0MF0sQikmdlsxXSk9PUImJihLPVJbMjRdKDgyLEspLHA9R1s0M10oNTYseixLKSksMSkmOCk8NCYmKEJeNyk+PTYmJihDPUhbNDVdKHZbMl0sWHIoKSx6Lk10LGltKCksdW0oKSksQT1IWzQ1XSgxMixhZigpLHouRVksaW0oKSx1bSgpKSxiPUhbNDVdKDEyLGhRKCksei5LRCxpbSgpLHVtKCkpLEs9SFs0NV0odlsyXSxkZCgpLHouWm4saW0oKSx1bSgpKSxKPU9bdlsyXV0oNzgsYVooKSwnPGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1hbmNob3ItaW52aXNpYmxlLXRleHQiKSsnIj48c3Bhbj4nKSxnW3ZbMF1dKDY4LEosInByb3RlY3RlZCBieSA8c3Ryb25nPnJlQ0FQVENIQTwvc3Ryb25nPiIpLE9bdlsyXV0oNzgsZ1t2WzBdXSg1MixnW3ZbMF1dKDY4LGdbdlswXV0oMyxnW3ZbMF1dKDMsZ1t2WzBdXSgzNSxPW3ZbMl1dKDk5LEosJFYoKSksYj9PW3ZbMl1dKDk3LApnW3ZbMF1dKDM1LE9bdlsyXV0oOTksYVooKSxxMCgpKSxZWzldKDgpKSxJZigpKToiIiksSz9PW3ZbMl1dKDk3LGdbdlswXV0oNCxPW3ZbMl1dKDk3LGFaKCksaTIoKSksR1szN10oMTApKSxJZigpKToiIiksQz9PW3ZbMl1dKDk4LGdbdlswXV0oNCxPW3ZbMl1dKDc4LGFaKCkseU8oKSksZVs0Nl0oMTUpKSxJZigpKToiIiksQT9PW3ZbMl1dKDc5LGdbdlswXV0oNjgsT1t2WzJdXSg3OSxhWigpLHlPKCkpLFJbMTVdKDMpKSxJZigpKToiIiksZ1sxNl0oNDIsIiAiLHopKSxJZigpKSxwPUopLChCfDMyKT09QikmJlQuY2FsbCh0aGlzLHosMCxZVi5SVCkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEItKChCLTheMTcpPj0oKChiPSgoQiYzOCk9PUImJihBPUs9PT12b2lkIDA/ei52IT09Y0wmJiEhKDImKHouYVRbQSRdfDApKTohISgyJkspJiZ6LnYhPT1jTCksWzYyLCJwcm90b3R5cGUiLDEyXSksQil8ODgpPT1CJiYoQT1LLmFkZChtWzI0XSg0LHopKSksKEIrNV5iWzJdKTwKQiYmKEItM14xMCk+PUImJihLPUVycm9yLmNhbGwodGhpcyx6P3oubGVuZ3RoKyIgZXJyb3JzIG9jY3VycmVkIGR1cmluZyB1bnN1YnNjcmlwdGlvbjpcbiIrei5tYXAoZnVuY3Rpb24odixwKXtyZXR1cm4gcCsxKyIpICIrdi50b1N0cmluZygpfSkuam9pbihTVygpKToiIiksdGhpcy5tZXNzYWdlPUsubWVzc2FnZSwic3RhY2siaW4gSyYmKHRoaXMuc3RhY2s9Sy5zdGFjayksdGhpcy5lcnJvcnM9eixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyx0aGlzLmNvbnN0cnVjdG9yW2JbMV1dKSx0aGlzLm5hbWU9bW8oKSksQikmJihCLTleMTEpPEImJihiZC5jYWxsKHRoaXMsa1sxOF0oYlsyXSxsMiksa1s0M10oMTEsRWQpLExLKCkpLEs9T1s0Nl0oNTUsbnVsbCwwLHopLEdbNDFdKDcsMTQsbVsxOV0oNDUsMSxLKSksdGhpcy5PMD16LlQoKSksMSkmMTR8fChZWzM3XSg4LEoseiksSj1aZihKKSxKPj0wJiZOdShKKT9DPVN0cmluZyhKKTooa1tiWzJdXSg1LDAsSiksQz1rWzI2XShiWzBdLApLLE9PLHhPKSksQT1DKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSl7aWYoQis4Pj4xPj0oUD1bInYiLCJpIiwiVyJdLEIpJiYoQi05fDIwKTxCKXtpZigoZj1bMSwhMSwyXSxKKS5SJiZKLlgmJkhbNDddKDMsZlswXSxKKSl7aWYoQz1KLlIsVz1YT1tDXSlHbC5jbGVhclRpbWVvdXQoV1tQWzBdXSksZGVsZXRlIFhPW0NdO0ouUj1LfWZvcihKW1BbMF1dJiYoSltQWzBdXS5sLS0sZGVsZXRlIEpbUFswXV0pLHI9ZlsxXSxWPWZbMV0scD1KLk07Si5BLmxlbmd0aCYmIUouRjspaWYobj1KLkEuc2hpZnQoKSx4PW5bS10sQT1uW3pdLFo9bltmWzBdXSxOPUpbUFsxXV0/Wjp4KXRyeXtpZihiPU4uY2FsbChBfHxKLkMscCksYj09PXUyJiYoYj12b2lkIDApLGIhPT12b2lkIDAmJihKW1BbMV1dPUpbUFsxXV0mJihiPT1wfHxiIGluc3RhbmNlb2YgRXJyb3IpLEouTT1wPWIpLGtbMzldKDIwLGZbMV0scCl8fHR5cGVvZiBHbFthbigpXT09PSJmdW5jdGlvbiImJgpwIGluc3RhbmNlb2YgR2xbYW4oKV0pVj1KLkY9ITB9Y2F0Y2goYyl7SltQWzFdXT0hMCxwPWMsSFs0N10oMixmWzBdLEopfHwocj0hMCl9KChKLk09cCxWKSYmKFE9UngoSltQWzJdXSxKLCEwKSxMPVJ4KEpbUFsyXV0sSixmWzFdKSxwIGluc3RhbmNlb2YgTk4/KFlbMzddKDczLGZbMl0sTCxRLHApLHAubz0hMCk6cC50aGVuKFEsTCkpLHIpJiYodj1uZXcgaHgocCksWE9bdltQWzBdXV09dixKLlI9dltQWzBdXSl9cmV0dXJuKEIrOSY3NSk+PSgoQnwxKT4+Mz09MiYmKHE9eVsyNl0oNTYsZDUpKSxCKSYmQis5Pj4xPEImJlQuY2FsbCh0aGlzLHopLHF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe3JldHVybigoKFo9WzczLDExLCJmb3JFYWNoIl0sQikmMTMpPT1CJiYocD16LnJvd1NwYW4sUT1bInJjLWltYWdlLXRpbGUtd3JhcHBlciIsNCxudWxsXSxKPXouYkIsSz16LmNvbFNwYW4sYj16LkZKLHY9ei54RixuPXoudEIsQT16Llg3LEM9ZVsyMV0oNzIsUVsxXSwKcCkmJmVbMjFdKDc0LFFbMV0sSyk/JyBjbGFzcz0iJytSW1pbMV1dKDM5LCJyYy1pbWFnZS10aWxlLTQ0IikrJyInOmVbMjFdKDc1LFFbMV0scCkmJmVbMjFdKDc4LDIsSyk/JyBjbGFzcz0iJytSW1pbMV1dKFpbMF0sInJjLWltYWdlLXRpbGUtNDIiKSsnIic6ZVsyMV0oNzUsMSxwKSYmZVsyMV0oNzksMSxLKT8nIGNsYXNzPSInK1JbWlsxXV0oNywicmMtaW1hZ2UtdGlsZS0xMSIpKyciJzonIGNsYXNzPSInK1JbWlsxXV0oNzEsInJjLWltYWdlLXRpbGUtMzMiKSsnIicsVz1URCgnPGRpdiBjbGFzcz0iJytSW1pbMV1dKDksInJjLWltYWdlLXRpbGUtdGFyZ2V0IikrJyI+PGRpdiBjbGFzcz0iJytSW1pbMV1dKDcsUVswXSkrJyIgc3R5bGU9IndpZHRoOiAnK1JbWlsxXV0oOSxZWzI0XSg0LFFbMl0sSikpKyI7IGhlaWdodDogIitSW1pbMV1dKDksWVsyNF0oMyxRWzJdLEEpKSsnIj48aW1nJytDKyIgc3JjPSciK1JbWlsxXV0oWlswXSxPWzBdKDE3LCIiLG4pKSsnXCcgYWx0PSIiIHN0eWxlPSJ0b3A6JysKUltaWzFdXSg3MSxZWzI0XSgxLFFbMl0sYiotMTAwKSkrIiU7IGxlZnQ6ICIrUltaWzFdXSg3MSxZWzI0XSgyLFFbMl0sdiotMTAwKSkrJyUiPjxkaXYgY2xhc3M9IicrUltaWzFdXShaWzBdLCJyYy1pbWFnZS10aWxlLW92ZXJsYXkiKSsnIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbWlsxXV0oNywicmMtaW1hZ2VzZWxlY3QtY2hlY2tib3giKSsnIj48L2Rpdj48L2Rpdj4nKSksQikrOSYzfHwoSz1bXSx6LlguZFEuRG4uTnRbWlsyXV0oZnVuY3Rpb24oTix4KXtOLnNlbGVjdGVkJiZrVih0aGlzLmcseCk9PS0xJiZLLnB1c2goeCl9LHopLFc9SyksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtyZXR1cm4oKChuPVsyNyw2LDVdLChCLTNeMjApPEImJihCKzgmNDEpPj1CKSYmKHRoaXMuTT1bXSx0aGlzLlg9dGhpcy52PXRoaXMuY2xvc2VkPSExLHRoaXMuQT1udWxsKSxCLW5bMV0pXm5bMF0pPj1CJiYoQituWzJdJjc3KTxCJiYodj1KLlU5LHpbS109ZnVuY3Rpb24oWiwKVyxOLHgpe3JldHVybiB2KFosKHg9WyJyZSIsMTEsIm51bWJlciJdLFcpLE4scHx8KHA9UlszNV0oMzYseFsyXSxMUSx5WzVdLmJpbmQobnVsbCx4WzFdKSxDLFlbNV0uYmluZChudWxsLHhbMV0pKVt4WzBdXSksQXx8KEE9eVszNl0oMTMseFsyXSxDKSksYil9KSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZihCLShwPVsyNywxMSwyXSxwWzJdKT4+Mz09MylrWzZdKHBbMF0seixLLEopO3JldHVybihCKzQmKChCLTU8PDE8QiYmKEIrNV4yNSk+PUImJlQuY2FsbCh0aGlzLHosMCx0eC5SVCksQikrNT4+Mz09cFsyXSYmKFE9VWRbel18fCIiKSxwWzFdKSk9PXBbMl0mJih2PWdbMzhdKHBbMl0sMSxDLEspLHYhPW51bGwmJihBPUhbMTldKHBbMl0scFsyXSxKLHopLGIodix6KSxHWzE1XSg5OCwxMjcseixBKSkpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQis3Pj4oKFo9WzMwLDE0LCJ2Il0sKEJ8MzIpPT1CKSYmKEE9bmV3IE0wLGI9QyhuZXcgRGF0ZSwKWlsxXSkoKSx2PWtbNl0oMjUsMSxBLGIpLHA9dzUoKSxuPUhbNDldKDU3LDMscCx2KS55ZSgpKSwxKTxCJiYoQi04XlpbMF0pPj1CJiZULmNhbGwodGhpcyx6KSwoQj4+MSYxMSk+PTYpJiZCPj4xPDI1KXtpZihLLnNpemUhPUtbWlsyXV0ubGVuZ3RoKXtmb3IoUT1KPXo7UTxLW1pbMl1dLmxlbmd0aDspQz1LW1pbMl1dW1FdLERbMzZdKDcsQyxLLk0pJiYoS1taWzJdXVtKKytdPUMpLFErKztLW1pbMl1dLmxlbmd0aD1KfWlmKEsuc2l6ZSE9S1taWzJdXS5sZW5ndGgpe2ZvcihwPWI9KEE9e30seik7cDxLW1pbMl1dLmxlbmd0aDspdj1LW1pbMl1dW3BdLERbMzZdKDUsdixBKXx8KEtbWlsyXV1bYisrXT12LEFbdl09MSkscCsrO0tbWlsyXV0ubGVuZ3RoPWJ9fXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoISgoQl4zMCk+Pigobj1bMCwiZ2V0TmFtZSIsNF0sKEImNDMpPT1CJiYoWj1HWzEzXSg4LGZ1bmN0aW9uKFcsTil7aWYoKE49WzY0LCJYIiwxMF0sClcuTSk9PXopcmV0dXJuIFcudihrW05bMl1dKE5bMF0sWVtOWzJdXSg5NyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdHJpbmdpZnkoSi5tZXNzYWdlKX0pLEoubWVzc2FnZVR5cGUrSi52KSxLKTtyZXR1cm4oQz1XW05bMV1dLFcpLnJldHVybihZW05bMl1dKDM0LGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0cmluZ2lmeShbQyxKLm1lc3NhZ2VUeXBlLEoudl0pfSkpfSkpLEIrblsyXSY3KT09MiYmKFo9SFsyM10oMyx6LCJpUGhvbmUiKXx8RFsyMF0oNywiaVBhZCIpfHxEWzIwXSg5LHopKSxuWzJdKSkpe2lmKEE9KHA9KEs9KHo9ej09PXZvaWQgMD9nMFszXSg5LG5bMF0pOnosSyk9PT12b2lkIDA/e306Syx5KVszNF0oNTcsbnVsbCx6LEspLHAuY2xpZW50KSxDPXAuSkIsIVlbMzBdKDI0LEEudikpdGhyb3cgRXJyb3IoSW4oKSk7Zm9yKGI9Z1sxMl0oOSxGTyhDKSksUT1iLm5leHQoKTshUS5kb25lO1E9Yi5uZXh0KCkpaWYodj1RLnZhbHVlLCFbQjdbblsxXV0oKSxzMltuWzFdXSgpLHpkW25bMV1dKCksCks1W25bMV1dKCksSlhbblsxXV0oKSxDNVtuWzFdXSgpXS5pbmNsdWRlcyh2KSl0aHJvdyBFcnJvcihiTSgpKTtaPSgoQ1tzMltuWzFdXSgpXSYmQ1tzMltuWzFdXSgpXS5sZW5ndGg+blswXXx8Q1t6ZFtuWzFdXSgpXSkmJihKPUhbMzldKDc1LG5bMF0sQVgpKSYmKENbdjdbblsxXV0oKV09SiksRylbMTFdKDExLEEubChBLkYuYmluZChBLFRkLEMpKSxmdW5jdGlvbihXKXtBLnYuaGFzKGpQKXx8QS52LnNldChqUCxXKX0pfXJldHVybiBafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoKEM9WzM3LDUsMV0sQis5KSY0Nyk+PUImJkIrNz4+Q1syXTxCJiYoSj1uZXcgbTMsYj1HWzI2XSgxNixwNSxDWzFdLFlbMTBdKDMxLHosSyksSikpLEIpXkNbMF0pJjN8fChKPW5ldyBRNixiPUhbMF0oNTEsSix6LEspKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKEImKG49WzYsMiwiU3EiXSwoKEJeMTQpJm5bMF0pPj00JiZCLW5bMV0+PjU8MSYmKFo9WVsxOV0oNjgsCnosSykpLDcxKSk9PUIpe2lmKChBPVswLChwPUouRj9KLkYubGVuZ3RoOjAsbnVsbCksJyInXSxLW25bMl1dKSYmIUpbblsyXV0pdGhyb3cgRXJyb3IobjUpO2lmKHA8QVswXXx8cD4oSi5GP0ouRi5sZW5ndGg6MCkpdGhyb3cgRXJyb3IoWkkpO2lmKEsuaT09KEouQSYmSi5GfHwoSi5BPXt9LEouRj1bXSksSikpdj1KLkEsQz1PWzE5XSgzMix6LEspLHZbQ109SyxtWzI2XSg1NCxBWzBdLEouRixLKTtlbHNlIERbMzhdKDExLEFbblsxXV0sSi5BLE9bMTldKDE2LHosSyksSyk7KE9bblsxXV0oMSxBWzFdLEssSiksVzcoSi5GLHAsQVswXSxLKSxLW25bMl1dJiZKW25bMl1dKSYmSy5pPT1KPyhRPUouZWkoKSwoUS5jaGlsZE5vZGVzW3BdfHxBWzFdKSE9Sy51KCkmJihLLnUoKS5wYXJlbnRFbGVtZW50PT1RJiZRLnJlbW92ZUNoaWxkKEsudSgpKSxiPVEuY2hpbGROb2Rlc1twXXx8QVsxXSxRLmluc2VydEJlZm9yZShLLnUoKSxiKSkpOkpbblsyXV0mJiFLW25bMl1dJiZLLk0mJksuTS5wYXJlbnROb2RlJiYKSy5NLnBhcmVudE5vZGUubm9kZVR5cGU9PTEmJksuQ3EoKX1yZXR1cm4oQjw8KChCKzg+PjQ8blsxXSYmKEJ8blsxXSk+PS03OCYmKEM9T1sxNF0oMTIsbnVsbCxLKSxDIT1udWxsJiYoRFsyMl0oNzIsMCx6LEopLHoudi52LnB1c2goQz8xOjApKSksQj4+blsxXSk+PTE5JiYoQl43MSk+PjQ8NCYmKHRoaXMudj16KSwxKSY3KT49MSYmKEJeNjEpPDIwJiYoUlsxNl0oblsxXSx6KSxPWzI4XSgxLHopLHlbMjFdKDIzLHopLEhbMzJdKDEyLHopLGdbNDhdKDEseiksei5YLnB1c2goei5aMix6LmVYLHouWk8sei5oQSx6LnBxKSxtWzQ0XSgzMyx6KSx6LlgucHVzaCh6Lm56LHoua0osei5zWix6LnVQKSx6LlguZm9yRWFjaChmdW5jdGlvbihXLE4seCl7cmV0dXJuIHhbTl09Vy5iaW5kKHopfSkpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybihCfCgoQT1bMiwzLDhdLEIrND4+QVsxXT09MSkmJihiPWtbMzRdKEFbMF0sSyxncix6LEMsSikpLEFbMl0pKT4+ND49MCYmKEJeMzMpPAoxNSYmKHogaW5zdGFuY2VvZiBOYXx8KHo9bmV3IE5hKHosSykpLGI9eiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgodj1bMiwzLDldLEItNSleMTQpPj1CJiYoQisxJjYwKTxCKWE6aWYoej09bnVsbHx8dHlwZW9mIHo9PSJzdHJpbmcifHx6IGluc3RhbmNlb2YgWmwpe3A9ejticmVhayBhfXJldHVybihCPDwxJigoKEIrNV4xMyk+PUImJihCLTh8NTApPEImJihLPVtdLEhbMjldKDEyLHZbMV0sSywhMSx6KSxwPUsuam9pbigiIikpLChCXjQ4KT4+dlsxXSl8fChBPXRoaXMsQz1bMSwyXSx6JiYodGhpcy5vPXouV0EsdGhpcy5qPXouS2IsdGhpcy5GLnJlc2V0KCksdGhpcy5YPW5ldyBPMihmdW5jdGlvbihRKXtBLlImJkEuUihRKX0sdGhpcy5GLk0sei5jbyx6LnBEKSxKPUhbdlswXV0oMzQsQ1sxXSxPWzM5XSgxNyxDWzBdLHouTkkpLHoud3opLGVbdlsyXV0oMjIsQ1swXSx0aGlzLlgsSiksei5hTiYmei5seSYmKGI9SFt2WzBdXSh2WzFdLENbMV0sT1szOV0oMSwKQ1swXSx6LmFOKSx6Lmx5KSxlW3ZbMl1dKDM3LENbMF0sdGhpcy5YLGIpKSxLPUhbdlswXV0oOTgsQ1sxXSxPWzM5XSh2WzFdLENbMF0sei5RTiksei5uYiksZVt2WzJdXSg2LENbMF0sdGhpcy5YLEspKSksMTUpfHwocD1SWzE3XSg1Nix6LGIsQyxLLERbOF0uYmluZChudWxsLDcyKSx2b2lkIDAsSikpLCgoQnw2KSYyNCk8MSYmQis0Pj0tODcpJiYoR0QuY2FsbCh0aGlzLHhlLndpZHRoLHhlLmhlaWdodCx6fHxrQSksdGhpcy5FMz0xLHRoaXMuUWU9dGhpcy5DPW51bGwsdGhpcy5YPXtkUTp7RG46bnVsbCxlbGVtZW50Om51bGx9fSx0aGlzLm1ldGFkYXRhPW51bGwsdGhpcy5XMT12b2lkIDApLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCfCgoYj1bNDQsNSwiYTciXSxCKTw8Mj49MyYmQj4+MTwxMyYmKEE9eVszOF0oYlsxXSx2b2lkIDAsSj09bnVsbD9KOkRbMzRdKDQyLHosdm9pZCAwLEopLEMsSykpLDcyKSk9PUImJksuWCl7aWYoIUsuTyl0aHJvdyBuZXcgREkoSyk7CksuTz16fXJldHVybigoKEImNjkpPT1CJiYoSz0oMCx0JC5YOCkoKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIE9bNDBdKDIwLHYpfSksej0oMCx0JFtiWzJdXSkoKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIE9bNDBdKDM2LHYpfSksKDAsdCQudkYpKCksQT1uZXcgZjUoeixudWxsLEspKSxCKzk+PjEpPEImJihCLTl8OSk+PUImJlQuY2FsbCh0aGlzLHopLEJeYlswXSk8MTImJkI+PjE+PTExJiYodGhpcy52PUFycmF5LmZyb20oei5lbnRyaWVzKCkpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCXjgpPj0oTD1bMiwyNCwxXSwyMSkmJkIrTFsyXTwzNCYmKG49W251bGwsITAsITFdLG9nLmNhbGwodGhpcyksdGhpcy5YPUt8fG5bMF0sdGhpcy5BPUw1KCksdGhpcy5GPUdbM10uYmluZChudWxsLExbMF0pLHRoaXMuTT17fSx0aGlzLlI9eiwhSikpe2ZvcihXPSh4PShiPShaPShwPXRoaXMudj1uZXcgUmcoKHRoaXMudj1uWzBdLFJ4KHRoaXMuaSwKdGhpcykpKSxSWzM3XSgxMCxuW0xbMF1dLHJyKCkscCksdGhpcykudixSWzM3XSgxOCxuW0xbMF1dLFY2KCksWiksTj10aGlzLnYsWyJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJtb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ3ZWJraXRBbmltYXRpb25GcmFtZSIsIm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIl0pLEdsW3BnKCldfHxHbFtRZygpXSksMCk7VzxiLmxlbmd0aDtXKyspQz1iW1ddLGJbV11pbiB4JiZSWzM3XShMWzBdLG5bTFswXV0sQyxOKTtmb3IoQT0oUT1SeCgodj10aGlzLnYsR2Q9bltMWzJdXSx2LnYpLHYpLDApO0E8SDcubGVuZ3RoO0ErKylIN1tBXShRKTtlUC5wdXNoKHYpfXJldHVybigoKEJ8TFsxXSk9PUImJih0aGlzLnJlc3BvbnNlPXopLEIpLTN8NDMpPEImJkItMzw8TFswXT49QiYmVC5jYWxsKHRoaXMseiksZn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoIShCKzM+PigoQl4ocD1bMiwiQSIsMjFdLDU0KSkmNnx8Si5wdXNoKFA3KCksQy5yZXBsYWNlKCRlLApmdW5jdGlvbihuLFosVyl7cmV0dXJuKFo9cWFbVz1bImNoYXJDb2RlQXQiLCJzbGljZSIsMTZdLG5dLFopfHwoWj0iXFx1IisobltXWzBdXSh6KXw2NTUzNikudG9TdHJpbmcoV1syXSlbV1sxXV0oSykscWFbbl09WiksWn0pLFA3KCkpLDQpfHwoYiYmKHY9dHlwZW9mIGI9PT0ic3RyaW5nIj9iOk9bMTldKDE2LHosYiksYj1DW3BbMV1dJiZ2P0dbcFsyXV0oMzMsdixDW3BbMV1dKXx8SjpudWxsLHYmJmImJihBPUNbcFsxXV0sdiBpbiBBJiZkZWxldGUgQVt2XSxtWzI2XSg1NSxLLEMuRixiKSxiLkRHKCksYi5NJiZlWzQ2XSg3NSxiLk0pLE9bcFswXV0ocFswXSxKLGIsSikpKSxiKSkpdGhyb3cgRXJyb3IoaU0pO3JldHVybiBCPDxwWzBdJjZ8fChRPW5ldyB5Nih6KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEImKFE9WzEsMiwwXSw0MSkpPT1CKWE6e2lmKEE9WzgwLG51bGwsITBdLEs9PVllKXtwPVllO2JyZWFrIGF9cD0oKEo9KGI9KEM9Uls0M10oNSxBW1FbMV1dLApuZXcgeTYoSyksIiIpLERbMjldKDM2LEMsIiIpKSxZKVszMV0oMTMsQVtRWzFdXSxnWzQ1XSg3MCwiIixiKSxHWzQ5XSgzLEFbUVswXV0sUVsyXSxLKSksSi5pKSE9QVtRWzBdXXx8KEouTT09Imh0dHBzIj95WzI5XSg0NCw0NDMsSik6Si5NPT16JiZ5WzI5XSgyOCxBW1FbMl1dLEopKSxKLnRvU3RyaW5nKCkpfWlmKChCKzYmMTIpPEImJihCLTReOSk+PUImJmM3KXRyeXtjNyh6KX1jYXRjaChuKXt0aHJvdyBuLmNhdXNlPXosbjt9cmV0dXJuKEItNl4yOSk8QiYmKEItM3w5KT49QiYmKHY9a1tRWzBdXSgxMyx2b2lkIDAsQyxKLEspLEE9Qy5hVCxwPURbMzhdKDY3LG51bGwsQVtBJF18eixiLEEsdil8fGJbU1BdfHwoYltTUF09R1tRWzFdXShRWzFdLDM0LGIpKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigodj1bImlzQXJyYXkiLDIsMV0sQjw8dlsyXSY3KT09dlsxXSYmVC5jYWxsKHRoaXMseiksIShCLXZbMl0+PjMpKWlmKEFycmF5W3ZbMF1dKEMpKWZvcihiPTA7YjwKQy5sZW5ndGg7YisrKXlbMTddKDMsIj0iLEssSixTdHJpbmcoQ1tiXSkpO2Vsc2UgQyE9bnVsbCYmSi5wdXNoKEsrKEM9PT0iIj8iIjp6K0dbMF0oOSxDKSkpO3JldHVybihCfDgpPT1CJiYoQz1DPT09dm9pZCAwP21nKCk6QyxBPShiPURbMjJdKDE0LEssSikpIT16P2I6QyksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQisoKCgoQiYodj1bIm1hcCIsMzQsInByb3RvdHlwZSJdLDEzKSk9PUImJihBPUFycmF5W3ZbMl1dW3ZbMF1dLmNhbGwoSyxmdW5jdGlvbihwLFEpe3JldHVybihRPXAudG9TdHJpbmcoeiksUSkubGVuZ3RoPjE/UToiMCIrUX0pLmpvaW4oIiIpKSxCKXwyNCk9PUImJihiPWxNKCksQT1DLnJlcGxhY2UobmV3IFJlZ0V4cChKKyhiP3orYitLOiIiKSsiKShbYS16XSkiLCJnIiksZnVuY3Rpb24ocCxRLG4pe3JldHVybiBRK24udG9VcHBlckNhc2UoKX0pKSw0KSY1KT09MSYmKEE9WVsyNl0oNDcsSixDLEs9PW51bGw/SzpEW3ZbMV1dKDM5LHosdm9pZCAwLApLKSxtZygpKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihRPVsxMywhMCwiY2FsbCJdLChCJjEwNik9PUImJiFFMilmb3IoRTI9e30sSj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLnNwbGl0KCIiKSxDPUssYj1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXTtDPHo7QysrKWZvcihBPUouY29uY2F0KGJbQ10uc3BsaXQoIiIpKSxYb1tDXT1BLHA9SztwPEEubGVuZ3RoO3ArKyl2PUFbcF0sRTJbdl09PT12b2lkIDAmJihFMlt2XT1wKTtpZigoQl44KTwxNCYmKEJ8Nyk+PjM+PTEpVFtRWzJdXSh0aGlzLHopO3JldHVybigoQl42NikmMTQpPCgoQis0JlFbMF0pPEImJihCLTJeUVswXSk+PUImJihDLk18fEMudiE9eiYmQy52IT1LfHxHWzMzXSgxNyxRWzFdLEMpLEMuaT8oQy5pLm5leHQ9SixDLmk9Sik6KEMuTT1KLEMuaT1KKSksMTEpJiYoQis5JjUpPj0yJiYoR0RbUVsyXV0odGhpcywKdU0ud2lkdGgsdU0uaGVpZ2h0LGIyLGFnKSx0aGlzLnY9W10sdGhpcy5YPXRoaXMuSD10aGlzLkM9bnVsbCx0aGlzLmo9MCksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEImMTIwKT09KGI9WyJwdXNoIiwidiIsNl0sQikpYTp0cnl7QT1LW2JbMV1dP0tbYlsxXV0ucmVzcG9uc2VUZXh0OiIiO2JyZWFrIGF9Y2F0Y2godil7QT16O2JyZWFrIGF9aWYoKEItKEI+PjI+PTQmJihCLTcmOCk8NyYmKEpbYlsxXV0ubGVuZ3RoPj16JiYoSltiWzFdXT1bWVs0XSg1OCxHWzddKDUsIl0iLEpbYlsxXV0pKS50b1N0cmluZygpXSksSltiWzFdXVtiWzBdXShLKSksNCleYlsyXSk+PUImJihCKzNeOCk8Qil7aWYoaFgpQz1HWzldKDEsMTg5LDU5LDE4Niw2MSxLKTtlbHNle2lmKGRyJiZrZSlhOnN3aXRjaChLKXtjYXNlIDkzOko9ejticmVhayBhO2RlZmF1bHQ6Sj1LfWVsc2UgSj1LO0M9Sn1BPUN9cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybiBCLTEmKChCLTY+PgooKChBPVsyLG51bGwsMzJdLEIrNCleMTkpPEImJihCLTZeMzApPj1CJiYoej1SWzhdKDU3LHRoaXMpLEs9T1s0OF0oQVsyXSx0aGlzKSx0aGlzLnhKW3pdPW5ldyB0WChLLHRoaXMseikpLDQpfHwoQz15WzEyXSgxMCxLKSxDIT1BWzFdJiZEWzQxXSg3LDcseixKLGtbNDJdKDM5LEFbMF0sITAsQykuYnVmZmVyKSksQisxJjcpfHx6LlgucHVzaChZW0FbMF1dKDg1LGZ1bmN0aW9uKHYscCl7cmV0dXJuIHYqcH0seiksWVtBWzBdXSg4MCxmdW5jdGlvbih2LHApe3JldHVybiB2L3B9LHopLHouVzEsWVtBWzBdXSg4NCxmdW5jdGlvbih2LHApe3JldHVybiB2JXB9LHopLHoubFksei5NdyksNyl8fFQuY2FsbCh0aGlzLHopLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gQz1bImNsYXNzTmFtZSIsMTUsImdldEF0dHJpYnV0ZSJdLChCJjExMSk9PUImJihiPXR5cGVvZiBKW0NbMF1dPT1LP0pbQ1swXV06SltDWzJdXSYmSltDWzJdXShVMigpKXx8eiksKEJeQ1sxXSkmMXx8KGI9KEs9CkRbQ1sxXV0oNjQsTWEpKT96W0tdOnZvaWQgMCksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7aWYoKChCJjI4KT09KHE9WzUsImxhc3RJbmRleCIsImdldE5hbWUiXSxCKSYmKEo9bVs0Ml0oMzAsSyksQz13cltxWzJdXSgpLElnLmhhc093blByb3BlcnR5KEpbQ10pfHwoSltDXT16KSxQPUopLChCKzdeOSk+PUImJihCLXFbMF1eMjgpPEIpJiYodGhpcy52PXopLChCJjEwNSk9PUIpYTp7Zm9yKEw9KHA9QyxuPSh2PUMsUT1bXSxBLmxlbmd0aCksWzEsIj4iLCIiXSksVz1bXTtwPG47KXtzd2l0Y2godil7Y2FzZSBDOmlmKHI9QS5pbmRleE9mKEZvKCkscCkscjxDKXtpZihRLmxlbmd0aD09PTApe1A9QTticmVhayBhfXA9KFEucHVzaChBLnN1YnN0cmluZyhwKSksbil9ZWxzZSBRLnB1c2goQS5zdWJzdHJpbmcocCxyKSkscD1yK0xbMF0sTj1yLEJoPyhzbFtxWzFdXT1wLFY9c2wuZXhlYyhBKSk6KHNsW3FbMV1dPUMsVj1zbC5leGVjKEEuc3Vic3RyaW5nKHApKSksClY/KFo9VltMWzBdXSx2PUxbMF0sVz1bIjwiLFZbQ11dLHArPVZbQ10ubGVuZ3RoKTpRLnB1c2goRm8oKSk7YnJlYWs7Y2FzZSBMWzBdOmY9QS5jaGFyQXQocCsrKTtzd2l0Y2goZil7Y2FzZSB6OmNhc2UgSjp4PUEuaW5kZXhPZihmLHApLHg8Qz9wPW46KFcucHVzaChmLEEuc3Vic3RyaW5nKHAseCtMWzBdKSkscD14K0xbMF0pO2JyZWFrO2Nhc2UgTFsxXTpXPShOPSgoVy5wdXNoKGYpLFEpLnB1c2goYihXLmpvaW4oTFsyXSksWikpLFo9Syksdj1DLFtdKTticmVhaztkZWZhdWx0OlcucHVzaChmKX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fXY9PT0xJiZwPj1uJiYocD1OK0xbMF0sUS5wdXNoKEZvKCkpLFo9Syx2PUMsTj1LLFc9W10pfVA9US5qb2luKExbMl0pfXJldHVybigoQl4zMSkmMTEpPT0xJiYoYz1mdW5jdGlvbihFLFMpe0UhPUomJihBcnJheS5pc0FycmF5KEUpP0UuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYyhhLFMpfSk6KGIrPVErZW5jb2RlVVJJQ29tcG9uZW50KFMpKwpLK2VuY29kZVVSSUNvbXBvbmVudChFKSxRPXpMKCkpKX0sUT1iLmxlbmd0aD96TCgpOksxKCksdi5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKHY9T2JqZWN0LmVudHJpZXModikpLEFycmF5LmlzQXJyYXkodik/di5mb3JFYWNoKGZ1bmN0aW9uKEUpe3JldHVybiBjKEVbQ10sRVt6XSl9KTp2LmZvckVhY2goYyksUD1EWzQwXSg1NyxKLEErYitwKSksUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoQisoZj1bImlzQXJyYXkiLCJmdW5jdGlvbiIsMl0sMyk+PjU8MSYmQiszPj0xMSlhOmlmKGI9WyJvYmplY3QiLCJudW1iZXIiLDFdLEs9PW51bGwpQy5wdXNoKEowKCkpO2Vsc2V7aWYodHlwZW9mIEs9PWJbMF0pe2lmKEFycmF5W2ZbMF1dKEspKXtmb3Iobj0ocD0oKFo9Syx2PVoubGVuZ3RoLEMpLnB1c2goSjgoKSksMCksIiIpO3A8djtwKyspQy5wdXNoKG4pLHlbMjRdKDEwLGJbMV0sWltwXSxKLEMpLG49QzEoKTt4PShDLnB1c2goYnEoKSksdm9pZCAwKTsKYnJlYWsgYX1pZihLIGluc3RhbmNlb2YgU3RyaW5nfHxLIGluc3RhbmNlb2YgTnVtYmVyfHxLIGluc3RhbmNlb2YgQm9vbGVhbilLPUsudmFsdWVPZigpO2Vsc2V7Zm9yKFcgaW4gTj0oUT1LLEMucHVzaChBOCgpKSwiIiksUSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUSxXKSYmKEE9UVtXXSx0eXBlb2YgQSE9ZlsxXSYmKEMucHVzaChOKSx5WzE1XSgyMywwLGJbZlsyXV0sQyxXKSxDLnB1c2godmgoKSkseVsyNF0oOCxiWzFdLEEsSixDKSxOPUMxKCkpKTtDLnB1c2goVEwoKSkseD12b2lkIDA7YnJlYWsgYX19c3dpdGNoKHR5cGVvZiBLKXtjYXNlICJzdHJpbmciOnlbMTVdKDE1LDAsYltmWzJdXSxDLEspO2JyZWFrO2Nhc2UgejpDLnB1c2goaXNGaW5pdGUoSykmJiFpc05hTihLKT9TdHJpbmcoSyk6SjAoKSk7YnJlYWs7Y2FzZSAiYm9vbGVhbiI6Qy5wdXNoKFN0cmluZyhLKSk7YnJlYWs7Y2FzZSBmWzFdOkMucHVzaChKMCgpKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbmtub3duIHR5cGU6ICIrCnR5cGVvZiBLKTt9fXJldHVybigoKEItN3w0MCk8QiYmQi01PDwxPj1CJiYoeD1tWzIyXSgyNik/Z1syOF0oOSx6LGpKKTpEWzIwXSgxLCJFZGcvIikpLEI+PjEpJjEwKSE9ZlsyXXx8KEM9R2wuenptYikhPXomJkMuenpzaChLLEoud2lkdGgsSi5oZWlnaHQpLHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChCfCgoQiY5Mik9PShRPVs0MCwzMywidmVyc2lvbiJdLEIpJiYocD0iXyIrcDErQVguc3BsaXQodmgoKSlbel0pLDMpKT4+Mz09MilnMFs2XSgyMyxmdW5jdGlvbihuLFope3RoaXMuYWRkKFosbil9LEsseik7aWYoKEJ8UVswXSk9PUIpYTp7aWYobVsyMl0oMjcpJiZRUiE9PW4xKXtpZihiPVo4LmJyYW5kcy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmJyYW5kPT09UVJ9KSwhYnx8IWJbUVsyXV0pe3A9TmFOO2JyZWFrIGF9dj1iW1FbMl1dLnNwbGl0KGVDKCkpfWVsc2V7aWYoKEE9WVtRWzFdXShRWzBdLEsseixDLEopLEEpPT09IiIpe3A9TmFOO2JyZWFrIGF9dj0KQS5zcGxpdChlQygpKX1wPXYubGVuZ3RoPT09MD9OYU46TnVtYmVyKHZbel0pfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKChCJjI5KT09KChCPDwxJigoTj1bMCw0OSwiY2FsbCJdLChCXk5bMV0pPj40KXx8KFc9KEt8fGRvY3VtZW50KS5nZXRFbGVtZW50c0J5VGFnTmFtZShTdHJpbmcoeikpKSwzKSk+PTImJkI+PjI8MjAmJihXaFtOWzJdXSh0aGlzLHosSiksdGhpcy5YPUJmLHRoaXMuQT1udWxsLHRoaXMudj1DLHRoaXMubD1OWzBdLHRoaXMuRj1OWzBdLHRoaXMuUj1SWzQ4XSg3MyxLLGdtLDUsbCkpLEIpKXtmb3IoWj0oUT0oSj0odj1uZXcgTWFwLHA9eixbXSksZ1sxMl0oNyxLKSksUSkubmV4dCgpOyFaLmRvbmU7Wj1RLm5leHQoKSlDPVoudmFsdWUsQyBpbnN0YW5jZW9mIE5xP3Yuc2V0KEMscCk6cCsrO2ZvcihiPShuPWdbcD16LDEyXSgxMSxLKSxuKS5uZXh0KCk7IWIuZG9uZTtiPW4ubmV4dCgpKUE9Yi52YWx1ZSxBIGluc3RhbmNlb2YKT2w/KEoucHVzaChBKSxwKyspOkEgaW5zdGFuY2VvZiB4MCYmKEoucHVzaChBLnYodixwKSkscCsrKTtXPUp9cmV0dXJuIFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKCgoKHY9WyJ2IiwxMSwiQSJdLEIrNyleMTkpPj1CJiYoQis5JjQyKTxCJiYoQT1bNCwyLDQxXSxiPWRrLkooKS5nZXQoKSxZWzE5XSg2OCx6LGIpfHxKLnBxP0ouRz1tWzEyXSgyMCxBWzBdLG51bGwsQVsxXSxBWzJdLEMsSik6WVsxOV0oMzYsSyxiKSYmKEouST1tWzIyXSgxMixBWzBdLDMsQVsxXSxDLEopKSksQiY3OCk9PUImJih0aGlzLmk9eix0aGlzW3ZbMF1dPUssdGhpcy5NPUosdGhpc1t2WzJdXT1DLHRoaXMuWD1iLm1hcChmdW5jdGlvbihRKXtyZXR1cm4gbmV3IEQ4KFEpfSkpLEJ8NCkmdlsxXSk9PTEpdGhyb3cgSj1mMSgpLEVycm9yKEo9PT12b2lkIDA/InVuZXhwZWN0ZWQgdmFsdWUgIitLK3o6Sik7cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKEImNjkpPT0oQT0KWzMxLDEsOF0sQikmJihKPVsiLWR5bmFtaXRlLSIsImh0dHBzOi8vIiwiLXNpZ25hbGVyLXBhLmdvb2dsZWFwaXMuY29tL3B1bmN0dWFsIl0sYj17aXk6bmV3IHk2KEpbQVsxXV0reitKWzBdK0srIi1zaWduYWxlci1wYS5jbGllbnRzNi5nb29nbGUuY29tL3B1bmN0dWFsIiksZkQ6bmV3IHk2KEpbQVsxXV0reitKWzBdK0srSlsyXSksUVg6ITB9KSxCKT4+QVsxXSYxNSk9PUFbMV0pe2lmKChDPWVbMl0oMzgsKEs9WyJNaXNzaW5nIHBhdGgiLDIsMV0sSylbMl0sdm9pZCAwLHopLCFDKXx8Qy5sZW5ndGg9PT0wKXRocm93IEVycm9yKEtbMF0pO3RoaXMuYWN0aW9uPSh0aGlzLnY9KEo9ZVsyXSgodGhpcy5NPW5ldyBSZWdFeHAoQywidSIpLDM0KSxLW0FbMV1dLHZvaWQgMCx6KSkmJkoubGVuZ3RoPjA/bmV3IFJlZ0V4cChKLCJ1Iik6UmVnRXhwKCIuKiIsInUiKSxlKVsyXSgzMiwzLHZvaWQgMCx6KX1pZigoKChCJjYwKT09QiYmKEoudj1PWzJdKEFbMl0sZnVuY3Rpb24odil7SlsoSlt2PQpbIlgiLCJpIiwidiJdLHZbMl1dPUssdilbMF1dJiYhSlt2WzFdXSYmKEpbdlswXV09eix5WzI4XSgxMiwhMSxudWxsLEopKX0sSi5BKSxDPUouTSxKLk09SyxKLlIuYXBwbHkoSyxDKSksQi1BWzJdKV5BWzBdKT49QiYmKEIrOSYyNik8QiYmKGVbNDhdKDE2LEspLHRoaXMudj16LHohPW51bGwmJnoubGVuZ3RoPT09MCkpdGhyb3cgRXJyb3IoIkJ5dGVTdHJpbmcgc2hvdWxkIGJlIGNvbnN0cnVjdGVkIHdpdGggbm9uLWVtcHR5IHZhbHVlcyIpO3JldHVybiBifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQi0oKChRPVs4OCw0OCwyNV0sQis0KV4yKT49QiYmKEItNHw2Myk8QiYmKGI9WyExLDEsInN0cmluZyJdLHY9SltiWzFdXSxBPUdbUVsyXV0oNyxTdHJpbmcoSlt6XSksQyksdiYmKHR5cGVvZiB2PT09InN0cmluZyI/QS5jbGFzc05hbWU9djpBcnJheS5pc0FycmF5KHYpP0EuY2xhc3NOYW1lPXYuam9pbihvOSgpKTpIWzM2XShRWzFdLCJzdHlsZSIsSyx2LEEpKSwKSi5sZW5ndGg+MiYmUls2XSg1LGJbMF0sYlsyXSwyLDAsSixBLEMpLHA9QSksNSkmMTUpPT0yKWtbNl0oMzEseixLLEopO2lmKChCLTh8NTUpPj0oKEImKEIrNT4+Mz09MiYmVC5jYWxsKHRoaXMseiwwLEwxLlJUKSxRKVswXSk9PUImJihBPUNbQSRdfDAsYj1IWzM1XSgyMywxMjgsQSksQT1ZWzM3XSg0OSxBLEssYixDLHopLFlbUVsyXV0oOTYsSixLLEEsYixDKSksQikmJihCKzNeNik8QilpZih6KXtpZih6PU51bWJlcih6KSxpc05hTih6KXx8ejwwKXRocm93IEVycm9yKCJCYWQgcG9ydCBudW1iZXIgIit6KTtLLmk9en1lbHNlIEsuaT1udWxsO3JldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKHA9WyJnZXRDb250ZXh0IiwxLDI5XSxCPj5wWzFdJjcpPT0yKWZvcihBPVswLDEwXSxKPSh0aGlzLnNpemUrQVswXSkqQVtwWzFdXSx6LndpZHRoPUosei5oZWlnaHQ9SixDPXpbcFswXV0oUjkoKSksYj0tMDtiPHRoaXMuc2l6ZStBWzBdO2IrKylmb3IoSz0tMDtLPAp0aGlzLnNpemUrQVswXTtLKyspQy5maWxsU3R5bGU9dGhpcy5LKEssYik/cm0oKTpWUigpLEMuZmlsbFJlY3QoKEsrQVswXSkqQVtwWzFdXSwoYitBWzBdKSpBW3BbMV1dLEFbcFsxXV0sQVtwWzFdXSk7cmV0dXJuIEItcFsxXT49OSYmKEJ8NSk8cFsyXSYmKHY9VEQoIkNsaWNrIHRoZSBidXR0b24gdG8gc3RhcnQgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzIG9uIHlvdXIgZGV2aWNlLiIpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEJeKChCfDQwKT09KEE9WzIsMjUsIk54Il0sQikmJihiPW1bNF0oQVsxXSx6KT9DW0FbMl1dLnNlbmQoR0wsSyxKKS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBLfSk6bnVsbCksQi00Pj0yMCYmQi00PDMzJiZULmNhbGwodGhpcyx6KSxBKVsxXSkmMTQpPj0xMyYmQj4+MTxBWzFdKXtpZihLPT16KXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSAndGhpcycgdmFsdWUgZm9yIFN0cmluZy5wcm90b3R5cGUuIitDKyIgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKaWYoSiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJGaXJzdCBhcmd1bWVudCB0byBTdHJpbmcucHJvdG90eXBlLiIrQysiIG11c3Qgbm90IGJlIGEgcmVndWxhciBleHByZXNzaW9uIik7Yj1LKyIifXJldHVybigoQj4+QVswXSYxNSk9PTQmJih0aGlzLnY9eiksKEIrM14xOCk+PUIpJiYoQis4XjIzKTxCJiYoQz1bMjUsMzEsMjhdLGI9MTAqSihLKCksQ1tBWzBdXSxDWzFdLENbMF0pK0ooSygpLENbQVswXV0sQ1sxXSwxMikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLTkmKCgoKGI9WzEsMyw0XSxCKXxiWzJdKSY2KT49MiYmQjw8MjwxNyYmKEE9eVszOF0oYlsxXSx2b2lkIDAsQz09ej9DOkRbMl0oMjIsQyksSyxKKSksMTIpKTxiWzBdJiYoQj4+YlswXSYxNSk+PWJbMV0pe2ZvcihKIGluIEM9W10sSyl5WzE3XShiWzJdLHosSixDLEtbSl0pO0E9Qy5qb2luKHpMKCkpfXJldHVybiBCLWJbMV0+PmJbMV09PTImJih0aGlzLndIPXopLEF9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCPDwoUT1bNjQsMTMsNDJdLDIpJlFbMV0pPT00KWE6e2lmKEo9PXope249bVtRWzJdXSg0Myk7YnJlYWsgYX1iPSgoQT1HWzRdKDQseixKLEspLEspLlNSJiZLLkE/dj1LLk0uc3ViYXJyYXkoQSxBK0opOihwPUErSixDPUsuTSx2PUE9PT1wP25ldyBVaW50OEFycmF5KDApOkhoP0Muc2xpY2UoQSxwKTpuZXcgVWludDhBcnJheShDLnN1YmFycmF5KEEscCkpKSx2KSxuPWIubGVuZ3RoPT16P21bUVsyXV0oNDQpOm5ldyBabChiLGVKKX1pZigoQnwoKEImNTgpPT1CJiYoYj1LLmNsKCkpJiYoQz1KLmdldEF0dHJpYnV0ZShQaCl8fHosYiE9QyYmKGI/Si5zZXRBdHRyaWJ1dGUoUGgsYik6Si5yZW1vdmVBdHRyaWJ1dGUoUGgpKSksUVswXSkpPT1CKWE6e2ZvcihiPXo7Sjspe2lmKEMoSikpe249SjticmVhayBhfUo9KGIrKyxKKS5wYXJlbnROb2RlfW49S31yZXR1cm4oQisoKEImNDcpPT1CJiYoSj1KPT09dm9pZCAwPzA6SixuPShDPURbOF0oOTEsCkhbNF0oOTIseixLKSkpIT1udWxsP0M6SiksNikmMTYpPFFbMV0mJihCPDwxJlFbMV0pPj03JiYoYnx8QyE9ej9LLkdKJkMmJkohPSEhKEsuWk0mQykmJihLLlguUWwoSixDLEspLEsuWk09Sj9LLlpNfEM6Sy5aTSZ+Qyk6Sy5nYighSikpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoISgoKChCPj4yJjE1KT09KEI+PjImKEE9WzcsOCwzXSxBKVswXXx8KHY9bmV3IEJEKEsseixKKSksNCkmJlQuY2FsbCh0aGlzLHopLEItNV4zMCk+PUImJkItQVsxXTw8MjxCJiZlWzQ1XSgxMSx6LEssSiw0KSYmeVszM10oNjIseixLLEosNCksQi1BWzJdPj5BWzJdPT1BWzJdJiYoMCxldmFsKSh6KSxCKStBWzBdJkFbMF0pKXtpZihKPShLPUs9PT12b2lkIDA/ZzBbQVsyXV0oMzIsMCk6SyxKPT09dm9pZCAwKT97fTpKLEhbNDRdKDEsSykpSj1LLGI9ZzBbQVsyXV0oMzMsMCk7ZWxzZSBpZih0eXBlb2YgSz09PSJzdHJpbmciJiYvW14wLTldLy50ZXN0KEspKXtpZihiPXdpbmRvd1tpM11bJDAoKV1bS10sCmI9PXopdGhyb3cgRXJyb3IoIkludmFsaWQgc2l0ZSBrZXkgb3Igbm90IGxvYWRlZCBpbiBhcGkuanM6ICIrSyk7fWVsc2UgYj1LO2lmKCEoQz13aW5kb3dbaTNdW1NOKCldW2JdLEMpKXRocm93IEVycm9yKCJJbnZhbGlkIHJlQ0FQVENIQSBjbGllbnQgaWQ6ICIrYik7dj17Y2xpZW50OkMsSkI6Sn19cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChCKygoQl4xNykmKFE9WyJEIiw1LDMxXSwxKXx8SiE9bnVsbCYma1s0OF0oNDIsSyx6LEopLDgpJlFbMl0pPj1CJiYoQitRWzFdJjM5KTxCKXtpZihLJiYheltRWzBdXSl0aHJvdyBFcnJvcigiQ2FuJ3QgY3JlYXRlIHNlY29uZGFyeSBkb21haW4gY2FwYWJsZSBYaHJJbyBvYmplY3QuIik7cD0oKEM9ei5NeSYmIXouUWU/bmV3IHFxKG5ldyBpcSh7VUI6Sn0pKTpuZXcgcXEoei5RZSksQykuQT16W1FbMF1dLEMpfXJldHVybiBCPj4yJlFbMV18fChwPUdbMTNdKDMyLGZ1bmN0aW9uKG4pe2lmKG4uTT09eilyZXR1cm4gbi52KGNyeXB0by5zdWJ0bGUuZGlnZXN0KHlSKCksCmIpLEopO3JldHVybiBBPW5ldyBEYXRhVmlldygodj1uLlgsdikpLG4ucmV0dXJuKEEuZ2V0VWludDMyKEssQykpfSkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYKXtpZigoKCgoKHU9WyExLDE3LDVdLEIpJjExNyk9PUImJihZMC5jYWxsKHRoaXMseixLKSx0aGlzLkQ9dVswXSx0aGlzLkM9dGhpcy5GZz1udWxsKSxCLTQ8PDE+PUImJihCLTZ8NDgpPEIpJiYoWD1SWzEzXSgxMSxIWzI1XSg1NyxPWzldKDIwLHopLEspLFtnWzE2XSgxNCxKKV0pKSxCLTgpJjExKT49MTAmJkIrNDwyNyl7aWYoKCgoKCgoKCgoKFA9KCgoUT0oQz0oQT0oYz0obj0ocT1nWzEyXSg2LChaPVswLDQsMjFdLEopKSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkudmFsdWUpLHEubmV4dCgpLnZhbHVlKSxMPXEubmV4dCgpLnZhbHVlLEM9PT12b2lkIDApP3t9OkMsR1s0MV0oMzgsMTQsbVsxOV0oNDAsMSxEWzQzXSgyOCwyLG5ldyB6bCxiLk0uWC52YWx1ZSkpKSksCm4pJiZtWzIzXSgyMyxuLFEsdVsyXSxsKSxjKSYmbVsyM10oMjYsYyxRLFpbMV0sbCksQSYmbVsyM10oMTksQSxRLDE2LGwpLEwmJm1bMjNdKDMxLEwsUSwyNCxsKSxIWzM5XSg3NSwxLGdbMTRdKDMsY2gpKSkpJiZtWzIzXSgyNCxQLFEsNyxsKSx2PUhbMzldKDc4LFpbMF0sZ1sxNF0oMixTSikpKSYmbVsyM10oMzMsdixRLFpbMl0sbCksQ1tCNy5QMV0pJiZtWzIzXSgyMSxDW0I3LlAxXSxRLDgsbCksQ1tzMi5QMV0pJiZtWzIzXSgyMCxDW3MyLlAxXSxRLDksbCksQ1ttQy5QMV0pJiZtWzIzXSgyMixDW21DLlAxXSxRLDExLGwpLENbdjcuUDFdJiZtWzIzXSgyMCxDW3Y3LlAxXSxRLDEwLGwpLENbSlguUDFdKSYmbVsyM10oMjksQ1tKWC5QMV0sUSwxNSxsKSxDKVtscS5QMV0mJm1bMjNdKDI1LENbbHEuUDFdLFEsdVsxXSxsKSxDW0VsLlAxXSYmSFs0OV0oNTAsMjgsQ1tFbC5QMV0sUSx2b2lkIDAsbCksQylbWDguUDFdJiZIWzQ5XSgyMCwyOSxDW1g4LlAxXSxRLHZvaWQgMCxsKSxiLkwmJgoocj1PWzIzXSgxMCxiLkwueWUoKSxaWzFdKSxtWzIzXSgzMCxyLFEsMjUsbCkpLHA9Yi5DKT09bnVsbD92b2lkIDA6cC5sZW5ndGgpPlpbMF18fCgoVz1iLlUpPT1udWxsP3ZvaWQgMDpXLmxlbmd0aCk+WlswXXx8Yi5CfHxiLmopeD1uZXcgdXEsZj1ZWzMyXSg4MCw0MDk2LHgsYi5DLDEsYTkpLFM9WVszMl0oNzYsNDA5NixmLGIuVSwyLGE5KSxFPVlbMTNdKDEsSyxTLGIuQiksTj1IWzQ0XSg2OCxFLE84LHVbMl0sYi5qKSxhPWtbMTRdKDEzLCEwLFJbNDddLmJpbmQobnVsbCwzMyksYi5BTCxaWzFdLE4sbVs0OV0uYmluZChudWxsLDI3KSx2b2lkIDAsITApLFY9WVsyNV0oMTAsMixaWzFdLGEpLG1bMjNdKDI5LFYsUSwyMCxsKSxiLlU9W10sYi5DPVtdO1g9KGIubyYmbVsyM10oMjgsYi5vLFEseixsKSxRKX1pZihCLXVbMl0+PXVbMl0mJihCfDEpPDIzKWE6e2lmKEM9S1tSZl0sQyE9bnVsbCl7WD1DO2JyZWFrIGF9S1soSj1SWzM1XSg0NCx6LExRLHlbdVsyXV0uYmluZChudWxsLDEyKSwKSyxZW3VbMl1dLmJpbmQobnVsbCwyNykpLEM9Si5Gcj9mdW5jdGlvbihkLHQpe3JldHVybiBJbyhkLHQsSil9OmZ1bmN0aW9uKGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4KXt6OD1bMjEsKFU9WzAsbnVsbCwxXSwwKSw0MV07YTp7SFsxXSg4LDEwMCk7dHJ5e2Zvcig7RFs0N10oMTUsVVsyXSx0KSYmdC5NIT00Oyl3PXQuWCxNPUpbd10sTT09VVsxXSYmKGIzPUouZlgpJiYoaD1iM1t3XSkmJihCOD1tWzhdKDE1LCJudW1iZXIiLFVbejhbMV1dLFVbMl0saCksQjghPVVbMV0mJihNPUpbd109QjgpKSxNIT1VWzFdJiZNKHQsZCx3KXx8a1syNl0oNixVWzFdLHcsZCxEWzI4XSh6OFsyXSxVWzJdLFVbejhbMV1dLHQpKTtpZihKWT15WzIyXSh6OFswXSxkKSlKWS5sZD1KLndRW2g4XTtzdz0hMDticmVhayBhfWNhdGNoKGpOKXtpZihqTiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGpOO31maW5hbGx5e01VPlVbejhbMV1dJiZNVS0tfXN3PXZvaWQgMH1yZXR1cm4gc3d9LApLKVtSZl09QyxoOF09ZG0uYmluZChLKSxYPUN9cmV0dXJuKEJeNDYpPj40fHwodGhpcy5NPXosdGhpcy52PW5ldyBrMCx0aGlzLmJEPXVbMF0sdGhpcy5mYj11WzBdLHRoaXMuZHo9bmV3IHQ4KSxYfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKEJ8KEE9WzgsInN0YXR1c1RleHQiLDU3XSw1KSkmMikmJihiPVs2LDQsIl0iXSxKLlgmJnR5cGVvZiBVbCE9InVuZGVmaW5lZCIpKWlmKEouQyYmUls0Ml0oQVsyXSxKKT09YlsxXSlzZXRUaW1lb3V0KEouZy5iaW5kKEopLHopO2Vsc2UgaWYoZ1szXSg1MSxKLHJfKSxSWzQyXSgyNSxKKT09YlsxXSl7Si5YPSExO3RyeXtpZihZWzQwXSg4MCx6LEopKWdbM10oNTMsSixNcSksZ1szXSg0OSxKLHdtKTtlbHNle0ouTT1iWzBdO3RyeXtDPVJbNDJdKDI1LEopPjI/Si52W0FbMV1dOiIifWNhdGNoKHApe0M9IiJ9R1tKLmk9QysiIFsiK0hbMzVdKDMyLDIsSikrYlsyXSwxNl0oNDAsITAsSil9fWZpbmFsbHl7Z1sxN10oMjIsSyxKKX19cmV0dXJuKEImCjEyMyk9PUImJih2PVJbMTddKDU5LHosQyxrWzNdKEFbMF0pLEssUls0N10uYmluZChudWxsLDMyKSx2b2lkIDAsSikpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZighKChCXjU1KT4+KCgoKG49WyJhVCIsInJlcGxhY2UiLDVdLEItNDw8MTxCKSYmKEIrblsyXSY0Nik+PUImJihnWzQxXSg1MixKKSxiPUpbblswXV0sWVsyNV0oODEsSyxDLGJbQSRdfDAseixiKSxaPUopLEIpJjg5KT09QiYmKFo9SFs4XSg0NCw4Njk4KShIWzhdKDQwLDc4NzcpKEhbOF0oMzYsNDAwNykoeilbblsxXV0oL1xzL2csSTkoKSksLy4qWzxcKFxeQF0oW15cXj5cKV0rKS8pKSksMykpKWE6e2lmKEMhPUspc3dpdGNoKEMuVnkpe2Nhc2UgSjpaPUo7YnJlYWsgYTtjYXNlIC0xOlo9LTE7YnJlYWsgYTtjYXNlIHo6Wj16O2JyZWFrIGF9Wj1LfWlmKCEoKEJeNzApPj40KSlhOntmb3IoQz0ocD0oQT1uZXcgeTYoSiksQS52Lmxlbmd0aCk+MD9BLnY6bG9jYXRpb24uaG9zdG5hbWUsdj1BLlgsCmI9Z1sxMl0oblsyXSxLLlgpLGIubmV4dCgpKTshQy5kb25lO0M9Yi5uZXh0KCkpaWYoUT1DLnZhbHVlLFEuTS50ZXN0KHYpJiZRLnYudGVzdChwKSl7Wj1RO2JyZWFrIGF9Wj16fXJldHVybiBafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCLTReKCgoKEIrKHY9WzMsNDAsInByZXZlbnREZWZhdWx0Il0sMSk+PnZbMF18fHoua2V5Q29kZSE9Mjd8fCh6LnR5cGU9PUY4P3RoaXMuUGg9dGhpcy51KCkudmFsdWU6ei50eXBlPT1CUz90aGlzLnUoKS52YWx1ZT10aGlzLlBoOnoudHlwZT09c1gmJih0aGlzLlBoPW51bGwpLHpbdlsyXV0oKSksKEItdlswXXx2WzFdKTxCKSYmKEItN3wxOCk+PUImJih0aGlzLk09Syx0aGlzLnY9eiksQikmMTA0KT09QiYmKEMudHk9eixiLnYudiYmYi5pfHxiLk54LnNlbmQoaUYsQyksYi5pJiZiLmkucmVzb2x2ZShDKSxPWzJdKDU1LGZ1bmN0aW9uKCl7cmV0dXJuIGIubChDLnJlc3BvbnNlLHp1KX0sQy50aW1lb3V0KkspLEE9Yi5PKHtpZDpudWxsLAp0aW1lb3V0Om51bGwsa0E6MUUzLGJ5Oko/MTpudWxsfSkpLChCKzUmMzMpPj1CJiYoQi0yXjI5KTxCJiYoQT1uZXcgS2YoSyx6KSksMjMpKT49QiYmKEIrdlswXV42KTxCJiYoej1mdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fSxPYmplY3Quc2V0UHJvdG90eXBlT2Yoeix6LnByb3RvdHlwZSksQT16KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigodj1bImkiLDI2LDddLEIpKzImdlsyXSk9PTEmJihiPWI9PT12b2lkIDA/Skw6YixDPUhbNF0oOTAsSixLLHZvaWQgMCx2b2lkIDAsT1swXS5iaW5kKG51bGwsMikpLEE9QyE9ej9DOmIpLEIrMj49dlsxXSYmKChCfDIpJnZbMl0pPHZbMl0mJihwUS5jYWxsKHRoaXMpLHRoaXMuUj1KIT1udWxsP3ouYmluZChKKTp6LHRoaXMuTT1udWxsLHRoaXMuQT1LLHRoaXMuWD0hMSx0aGlzLnY9bnVsbCx0aGlzW3ZbMF1dPTApLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gQi01JigoQiYxMjIpPT0oKEItKHA9ClsxNSw4LDJdLDMpXjE5KT49QiYmKEItNXw2NCk8QiYmKEM9WzgsMCwyNF0sQT1uZXcgQ2YsQS51cGRhdGUoSiksYj1BLmRpZ2VzdCgpLHY9KGJbQ1sxXV08PENbcFsyXV18YlsxXTw8enxiW3BbMl1dPDxDWzBdfGJbS10pPj4+Q1sxXSksQikmJlQuY2FsbCh0aGlzLHopLDYpfHxici5jYWxsKHRoaXMscFsxXSxBTCksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXtpZigoVj1bMCwxMDIzLDU2MzIwXSwoQi04JjExKT09MikmJnRoaXMudiYmKHRoaXMuaT16LHRoaXMuTXx8KHRoaXMuc3RhdHVzPXRoaXMuaS5zdGF0dXMsdGhpcy5zdGF0dXNUZXh0PXRoaXMuaS5zdGF0dXNUZXh0LHRoaXMuTT16LmhlYWRlcnMsdGhpcy5yZWFkeVN0YXRlPTIsRFsxOF0oMzMsdGhpcykpLHRoaXMudiYmKHRoaXMucmVhZHlTdGF0ZT0zLERbMThdKDM2LHRoaXMpLHRoaXMudikpKWlmKHRoaXMucmVzcG9uc2VUeXBlPT09ImFycmF5YnVmZmVyIil6LmFycmF5QnVmZmVyKCkudGhlbih0aGlzLng5LmJpbmQodGhpcyksCnRoaXMuYXcuYmluZCh0aGlzKSk7ZWxzZSBpZih0eXBlb2YgR2wuUmVhZGFibGVTdHJlYW0hPT0idW5kZWZpbmVkIiYmImJvZHkiaW4geil7aWYoKHRoaXMuWD16LmJvZHkuZ2V0UmVhZGVyKCksdGhpcykuUil7aWYodGhpcy5yZXNwb25zZVR5cGUpdGhyb3cgRXJyb3IoJ3Jlc3BvbnNlVHlwZSBtdXN0IGJlIGVtcHR5IGZvciAic3RyZWFtQmluYXJ5Q2h1bmtzIiBtb2RlIHJlc3BvbnNlcy4nKTt0aGlzLnJlc3BvbnNlPVtdfWVsc2UgdGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD0iIix0aGlzLlc9bmV3IFRleHREZWNvZGVyO0RbNV0oOCx0aGlzKX1lbHNlIHoudGV4dCgpLnRoZW4odGhpcy5Dei5iaW5kKHRoaXMpLHRoaXMuYXcuYmluZCh0aGlzKSk7aWYoIShCLTkmMTUpKXtpZigoUT1bNjU1MzYsNjMsMzFdLEpbVlswXV0pIT09dlMpdGhyb3cgMTtmb3Iocj0oZj1nWzMxXSg0MSxWWzBdLGtbNDVdKDEyLEouc2xpY2UoMSkpLEMudG9TdHJpbmcoKSxSbyksTD1WWzBdLFYpWzBdLApXPVtdO3I8Zi5sZW5ndGg7KXg9ZltyKytdLHg8MTI4P1dbTCsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHgpOng+MTkxJiZ4PEs/KHY9ZltyKytdLFdbTCsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKCh4JlFbMl0pPDw2fHYmUVsxXSkpOng+MjM5JiZ4PDM2NT8oTj1mW3IrK10scD1mW3IrK10sWj1mW3IrK10sbj0oKHgmeik8PDE4fChOJlFbMV0pPDwxMnwocCZRWzFdKTw8NnxaJlFbMV0pLVFbVlswXV0sV1tMKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKG4+PjEwKSksV1tMKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoVlsyXSsobiZWWzFdKSkpOihiPWZbcisrXSxBPWZbcisrXSxXW0wrK109U3RyaW5nLmZyb21DaGFyQ29kZSgoeCYxNSk8PDEyfChiJlFbMV0pPDw2fEEmUVsxXSkpO1A9Vy5qb2luKCIiKX1yZXR1cm4gQi0oKEJ8NCk8MTAmJkIrMz4+Mz49VlswXSYmVC5jYWxsKHRoaXMseiksNCk+PjM9PTEmJihBPVtudWxsLCIiLCExXSxLPUFbMl0seiYmeiBpbnN0YW5jZW9mIEVsZW1lbnQmJgooSz0oQVsxXSsoKGI9ei5pZCkhPUFbVlswXV0/YjoiIikrKChKPXouY2xhc3NOYW1lKSE9QVtWWzBdXT9KOiIiKSsoKEM9ei50ZXh0Q29udGVudCkhPUFbVlswXV0/QzoiIikpLm1hdGNoKFR1KSE9QVtWWzBdXSksUD1LP2p1KCk6bWcoKSksUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKFc9WyJpc0FycmF5IiwicHVzaCIsMThdLEItOTw8MSk8QiYmQi0zPDwxPj1CKWE6e2lmKHY9UlsxNF0oNjksbnVsbCwoQT1IWzM1XSgyNCwobj1DW1E9WzM0LDEsMF0sQSRdfFFbMl0seiksbiksQSksSyxDKSx2IT1udWxsJiZ2W2pUXT09PW5oKXtpZigheVsyXSg0LHYpKXtZW1dbMl1dKDQsUVsyXSx2KSxaPXYuYVQ7YnJlYWsgYX1wPXYuYVR9ZWxzZSBBcnJheVtXWzBdXSh2KSYmKHA9dik7KHAmJihiPXBbQSRdfFFbMl0sYiYyJiYocD1PW1dbMl1dKDI4LFFbMF0sYixwKSkpLHA9Z1syMl0oMTYsUVsxXSxwLEopLHApIT09diYmWVsyNV0oNTAscCxLLG4sQSxDKSxaPXB9cmV0dXJuKChCfAo0MCk9PUImJihKPW5nKERbMjNdLmJpbmQobnVsbCw3KSx6KSxLLm0/SigpOihLLlB8fChLLlA9W10pLEsuUFtXWzFdXShKKSkpLEItNjw8MT49QiYmKEItNHwxMSk8QikmJih0aGlzLlg9Syx0aGlzLk09ITAsdGhpcy5pPW51bGwsdGhpcy52PXopLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihCfCgocD1bNDUsMiw0XSwoQitwWzFdXjcpPEIpJiYoQi1wWzFdfDEyKT49QiYmKHRoaXMudj16KSw3KSk+PnBbMl18fCh2PXouc3R5bGUsYj16LkdRLEo9ei5QbyxLPUhbcFswXV0oMTIscGYoKSxiLGltKCksY2YoKSksQz1IW3BbMF1dKDEyLFFHKCksSixpbSgpLGNmKCkpLEE9SFtwWzBdXSg3NixuZigpLHYsaW0oKSxjZigpKSxRPU9bNDBdKDk4LGdbMjVdKHBbMl0sT1s0MF0oOTksYVooKSwnPGRpdiBjbGFzcz0iZ3JlY2FwdGNoYS1iYWRnZSIgZGF0YS1zdHlsZT0iJytSWzExXSg3MSxBKSsnIj48ZGl2IGNsYXNzPSJncmVjYXB0Y2hhLWxvZ28iPjwvZGl2PjxkaXYgY2xhc3M9ImdyZWNhcHRjaGEtZXJyb3IiPjwvZGl2PicpLApEWzE4XShwWzFdLEMsSykpLElmKCkpKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKCgoZj1bNDVFMywoKEJ8OCk8MjImJkI8PDE+PTExJiYoTD1kb2N1bWVudC5VUkwpLDMpLCJub3ciXSxCKzZeMzApPEImJihCLTZ8NzMpPj1CJiYoTD1EWzIwXSgzMyx6KSksQitmWzFdJjcwKT49QiYmKEIrMSYyNyk8Qil7Zm9yKG49KHg9KFo9KEEudj17Y2hhbm5lbDpiKGZ1bmN0aW9uKHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgsdm8sdTMsbEwsYXAsUVMsRjIsUHEsVVIsY28sTW0scGgseXEsaDMsV28sUSQsb3AsS2gsQm8pe2Zvcih2bz0oVDg9SFsxMl0oMjQsKEJvPSh5cT1bMiwxLG51bGxdLFsyLDEwLDM2XSkscikseXFbMV0sV1Msa1szXSg5KSksZ1sxMl0oMyxUOCkpLGpOPXZvLm5leHQoKTshak4uZG9uZTtqTj0Kdm8ubmV4dCgpKWlmKGg9ak4udmFsdWUsYT1BLGEudiE9eXFbQm9bMF1dJiYoYS52LnJ6PUMpLGEuRj0wLFU9RFsyMl0oMzAseXFbMV0saCksVSE9eXFbQm9bMF1dKWlmKHBoPU51bWJlcihVKSxnWzMwXSg3Mix5cVtCb1swXV0saCxKLGdpLE5LKSl7YTp7aWYobWw9bVsxMl0oNzgsSixnaSxoLE5LKSlpZihRJD1SWzQ4XSg3NCxtbCxPWCx5cVsxXSkpe1Y9USQ7YnJlYWsgYX1WPXZvaWQgMH1WJiYodD1hLGZEPVYsbEw9cGgsVzg9dC5zdHJlYW1zLmdldChsTCkpJiYoRFs4XSg3NCxIWzRdKDk1LHlxWzFdLGZEKSk9PT0wP1c4Lk0uY29tcGxldGUoKTpXOC5NLmVycm9yKHQuWC5mYj9uZXcgeFcoZkQpOmZEKSx0LnN0cmVhbXNbImRlbGV0ZSJdKGxMKSl9ZWxzZSBpZihiTD1tWzEyXSg1MCx5cVswXSxEQSxoLE5LKSlzd2l0Y2goSFsyNV0oQm9bMV0seXFbQm9bMF1dLGJMLGZmKSl7Y2FzZSB5cVsxXTppZigoUVM9KGNvPShyMD0oUHE9KFVSPShKWT1hLG0pWzEyXSgxOCx5cVsxXSxvdyxiTCwKZmYpLGUpWzMyXSg2MixVUix5cVsxXSksUlo9SlksZzBbNl0oQm9bMV0seXFbMV0sUHEpKSxwaCksUlopLnN0cmVhbXMuZ2V0KGNvKSxRUylpbnN0YW5jZW9mIEtuKXt0cnl7UVMuTS5uZXh0KG5ldyBMZil9Y2F0Y2goZmgpe31SWi5zdHJlYW1zLnNldChjbyxRUy5zdGFydChyMCkpfWJyZWFrO2Nhc2UgSjphOntpZihuRD1tWzEyXSgxOCxKLFJ3LGJMLGZmKSlpZihYPURbMjJdKDQ2LHlxWzFdLG5EKSxYIT15cVtCb1swXV0pe0c4PW5ldyByaShPW0JvWzJdXSgyMCx5cVsxXSxYKSk7YnJlYWsgYX1HOD12b2lkIDB9aWYoRzgmJihCOD1HOCxoMz1hLnN0cmVhbXMuZ2V0KHBoKSxoMyBpbnN0YW5jZW9mIGxGKSl7KGIzPShYaD1oMyxCOCkudixiMyk+WGguaSYmKFhoLlI9QyxYaC5pPWIzKTt0cnl7aDMuTS5uZXh0KEI4KX1jYXRjaChmaCl7fX1icmVhaztjYXNlIHlxWzBdOmlmKCEoWkc9YS5zdHJlYW1zLmdldChwaCksWkcgaW5zdGFuY2VvZiBsRikpYnJlYWs7aWYoUXE9bVsxMl0oNjIsCnlxWzBdLFZHLGJMLChNPVpHLnYsZmYpKSl7Zm9yKHRZPShjPWdbMTJdKDksKHN3PW5ldyBHdSxIWzEyXSgxNSxRcSx5cVsxXSxIUyxrWzNdKDcpKSkpLGMpLm5leHQoKTshdFkuZG9uZTt0WT1jLm5leHQoKSl1Mz10WS52YWx1ZSxsMz1SWzQ4XSg3NCx1MyxldSw2KSxLaD1EWzIyXSgyMixKLHUzKSxsMyYmS2ghPXlxW0JvWzBdXSYmKHE9dm9pZCAwLFA9KHE9SFs0XSg5MSx5cVswXSx1Myx2b2lkIDAsdm9pZCAwLGVbMzVdLmJpbmQobnVsbCw0KSkpPT15cVtCb1swXV0/dm9pZCAwOm5ldyBVaW50OEFycmF5KGdbMzBdKEJvWzFdLHlxWzBdLHEpfHwwKSx3PVA9PXlxW0JvWzBdXT92b2lkIDA6UCwoUz1tWzE1XSg2Nyx5cVtCb1swXV0sNywzLDExLGwzLE0pKSYmc3cuYWRkKG5ldyBQUyhTLE9bQm9bMl1dKDIwLHlxWzFdLEtoKSx3LCEhT1sxNF0oMTMseXFbQm9bMF1dLEhbNF0oOTIsSyx1MykpLCEhT1sxNF0oMTMseXFbQm9bMF1dLEhbNF0oODkseix1MykpKSkpO29wPXN3fWVsc2Ugb3A9CnZvaWQgMDtpZihvcClmb3IoRjI9WkcsV289Z1sxMl0oMTIsb3AudiksZks9V28ubmV4dCgpOyFmSy5kb25lO2ZLPVdvLm5leHQoKSl7YXA9bmV3IFBTKCh2OD1mSy52YWx1ZSx2OC5YKSx2OC52ZXJzaW9uLHY4LmRRLHY4Lk0sdjgudik7dHJ5e0YyLk0ubmV4dChhcCl9Y2F0Y2goZmgpe319YnJlYWs7Y2FzZSA1OmlmKElaPWEsdT1JWi5zdHJlYW1zLmdldChwaCkpe3UgaW5zdGFuY2VvZiBsRiYmKHlbNDVdKDM1LDAsSVopLChvWj1nWzM4XSg3Myx1LElaKSk/KG9aLnY9dS5pLG9aLk09QyxvWi5YPURhdGUubm93KCkpOklaLlIucHVzaChuZXcgJFcodS5pLHUuWCx1LnYpKSk7dHJ5e3UuTS5jb21wbGV0ZSgpfWNhdGNoKGZoKXt9fX1pZihHW0JvWzJdXSgxNywwLHlxWzBdLHIscUspKXN3aXRjaChkPVJbNDhdKDcwLHIscUsseXFbMF0pLGdbMTZdKDg5LHZvaWQgMCxkLHlxWzFdKSl7Y2FzZSB5cVsxXTpmb3IoS0s9Z1sxMl0oMyxBLnN0cmVhbXMudmFsdWVzKCkpLHo4PUtLLm5leHQoKTshejguZG9uZTt6OD0KS0submV4dCgpKXo4LnZhbHVlLkE9SjtBLnYmJkEudi5jaGFubmVsLmNsb3NlKCl9R1tCb1syXV0oMTMsMCxKLHIsaXIpJiZBLnYmJihFPUEudixNbT1SWzQ4XSg3MCxyLGlyLEopLHBEPVlbMzRdKDMseXFbMV0sTW0pLEUuSmU9cEQsQS52LlJ3PURhdGUubm93KCksQS5PfHwoZ1s0OV0oMSwwLHlxWzBdLEEpLEEuTz1DKSl9LEEsKEEuTShuZXcgWkEpLEEuaS51bnNoaWZ0KERhdGVbZlsyXV0oKSksdi5qRikpLHNsOnYuc2wsakY6di5qRixyejohMX0sQXJyYXkuZnJvbShBLnN0cmVhbXMuZW50cmllcygpKSksWi5zb3J0KGZ1bmN0aW9uKHIsVil7cmV0dXJuIHJbMF0tVlswXX0pLGcpWzEyXSgxLFopLHgpLm5leHQoKTshbi5kb25lO249eC5uZXh0KCkpTj1nWzEyXSgxLG4udmFsdWUpLFc9Ti5uZXh0KCkudmFsdWUscD1OLm5leHQoKS52YWx1ZSxHWzRdKDE4LDQsQSxwLFcpO09bMl0oNTUsZnVuY3Rpb24oKXtBLnY9PT1RJiZBLkMucmVzZXQoKX0sKFE9QS52LGZbMF0pKX1pZigoQi0yXgozMSk+PUImJihCKzQmMjcpPEIpZm9yKEo9eixDPURhdGVbZlsyXV0oKTtKPEsuUi5sZW5ndGg7KUM+PUsuUltKXS5YKzZFND9LLlIuc3BsaWNlKEopOisrSjtyZXR1cm4gTH0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKEJeMzkpJjEzKT09KCgoKEo9WzUsMSwidiJdLEItSlswXSk+PjR8fChDPVREKCI8Y2VudGVyPllvdXIgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgYXVkaW8uIFBsZWFzZSB1cGRhdGUgb3IgdXBncmFkZSB5b3VyIGJyb3dzZXIuPC9jZW50ZXI+IikpLEIpXjIxKT4+NHx8KEM9dGhpc1t6XSksSlsxXSkmJih0aGlzW0pbMl1dPUs+Pj4wLHRoaXMuTT16Pj4+MCksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKEItND4+KChCJigoQi01JjcpPT0ocD1bMjYsOTcsMjVdLDIpJiYodj1HWzEzXShwWzJdLGZ1bmN0aW9uKFEsbil7cmV0dXJuIFEucmV0dXJuKFByb21pc2UuYWxsKCh6PU9bMjhdKDQzLE9bMjhdKDM3LChuPVs4LDQ3LDkzMThdLEgpW25bMF1dKDM2LAo4MTU5KSxPWzI4XShuWzFdLE9bMjhdKDUzLEhbblswXV0oMTIsNjM5KSxIW25bMF1dKDEyLDkxOTYpKSxIW25bMF1dKDMyLG5bMl0pKSksSFtuWzBdXSgzMiw4NzcyKSksei5tYXAoZnVuY3Rpb24oWil7cmV0dXJuIERbMjRdKDU2LFopKCl9KSkpLnRoZW4oZnVuY3Rpb24oWil7cmV0dXJuIFoubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBXLm91KCl9KS5yZWR1Y2UoZnVuY3Rpb24oVyxOKXtyZXR1cm4gVytOLnNsaWNlKDAsMil9LCIiKX0pKX0pKSw3NSkpPT1CJiYoR1syOV0oMjAsbnVsbCl8fChZWzBdKDE1LHRoaXMudix0aGlzLnUoKSx5Ryx0aGlzLldGKSx0aGlzLlBoPW51bGwpLHRoaXMuT2M9ITEsSFszOF0ocFswXSxudWxsLHRoaXMpKSwzKT49MiYmKChCfDgpJjE2KTwxNSlhOntpZihKWzBdPT09Ii0iP2I9ITE6KEM9Si5sZW5ndGgsYj1DPFlXPyEwOkM9PT1ZVyYmSjw9Y1MpLGIpe3Y9SjticmVhayBhfXY9KEdbcFsyXV0oNzIsSyxKKSxrKVtwWzBdXSgzMSx6LE9PLHhPKX1pZigoQnwKMyk+PSgoQisxJjE0KT09NCYmKGI9WyIgIiwnPGRpdiBjbGFzcz0iJywnIj48L2Rpdj48L2Rpdj4nXSxYcigpLGltKCksdW0oKSxhZigpLGltKCksdW0oKSxBPU9bNDBdKDk5LGFaKCksYlsxXStSWzExXSg3MSwicmMtYW5jaG9yLW5vcm1hbC1mb290ZXIiKSt6KSxDPVREKGJbMV0rUlsxMV0oNzEsInJjLWFuY2hvci1sb2dvLWxhcmdlIikrJyIgcm9sZT0icHJlc2VudGF0aW9uIj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLWFuY2hvci1sb2dvLWltZyIpK0srUlsxMV0oNzMsInJjLWFuY2hvci1sb2dvLWltZy1sYXJnZSIpK2JbMl0pLHY9T1s0MF0ocFsxXSxnW3BbMl1dKDM1LGdbcFsyXV0oNCxBLEMpLGdbMTZdKDQwLGJbMF0sSikpLElmKCkpKSwxMikmJkItNDwxOSlhOntpZigoKEM9KGI9KEo9ei5vZmZzZXRXaWR0aCx6KS5vZmZzZXRIZWlnaHQsa2UmJiFKJiYhYiksSj09PXZvaWQgMCl8fEMpJiZ6LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dj0oSz1lWzEyXSg4LHopLG5ldyBibShLLnJpZ2h0LQpLLmxlZnQsSy5ib3R0b20tSy50b3ApKTticmVhayBhfXY9bmV3IGJtKEosYil9cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEImKChCfCh2PVsidiIsMiwwXSw0OCkpPT1CJiYoSz1bbnVsbCwzMiwzXSxrWzE2XSg2MCx0aGlzLk8pLEo9ZGsuSigpLmdldCgpLGI9dGhpcy5NW3ZbMF1dLkIxLGI9PT1hZyYmWVsxOV0oNjksS1sxXSxKKXx8Yj09PVN1JiZZWzE5XSg0LDMzLEopfHwoQz10aGlzLkkuYmluZCh0aGlzKSx0aGlzW3ZbMF1dW3ZbMF1dLmR0KCk9PW02P3RoaXNbdlswXV1bdlswXV0ud3QobmcoQyxLW3ZbMl1dKS5iaW5kKHRoaXMpLHRoaXNbdlswXV0uVTMoKSwhMCk6KCh6PXRoaXNbdlswXV0uaVt2WzBdXSk9PUtbdlsyXV0/MDpSWzI2XSgxMyx6LEtbdlsxXV0sbCkpP3RoaXNbdlswXV0uaS5leGVjdXRlKCkudGhlbihDLGZ1bmN0aW9uKCl7cmV0dXJuIEMoKX0pOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oQykpKSwxMTUpKT09QiYmKEo9WzE1LDEwNzM3MDkwNTYsCjFdLGI9ej4+PkpbdlsxXV0sQz10aGlzLkgxKGIpLHRoaXMucXgoYix6JkpbdlsxXV0/QyYzMjc2N3xLPDxKW3ZbMl1dOkMmSlsxXXxLJjMyNzY3KSksKEImMTA5KT09Qil7Zm9yKEM9dlsyXTtDPEoubGVuZ3RoO0MrKylLPShLPDx6KS1LK0ouY2hhckNvZGVBdChDKXx2WzJdO0E9S31yZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihCfCgoYj1bMjYsImtXIiw4OV0sKEJeMjcpPj0yMCkmJkIrNTwyMiYmKEo9Z1tiWzBdXShiWzJdLExSLkooKSxLKSx6W2JbMV1dLnB1c2guYXBwbHkoeltiWzFdXSxlWzMzXSgzLEopKSxDPUopLDgpKT09QiYmKHRoaXMuTT1ZWzM0XSg2LDEseiksdGhpcy5YPW1bMV0oMTYseiw3KT09Mj9scigpOkVYKCksdGhpcy52PW5ldyBYRSx0aGlzLnYuYWRkKG5ldyB1cihEWzE4XSg0NSxlWzMyXSg1Nyx6LDQpKSkpKSxDfV19KCksRD1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4oQj4+CihXPVs5LDE4LDI3XSwxKSY3fHxULmNhbGwodGhpcyx6KSxCKS1XWzBdPDwyPEImJihCKzImMjgpPj1CJiYodj1raC5KKCkudigpLG49di5MRCxRPUdbNDRdKFdbMl0sSyxDLGIsdi5SQSkscD1IWzJdKDk5LEosT1szOV0oV1sxXSx6LFEpLG4pLFo9bmV3IGF3KEEscCkpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChCKzkmKCgoQnwoWj1bNDQsKEItMj4+M3x8KHRoaXMuQT0xLHRoaXMuTT1LLHRoaXMuWD16LHRoaXMudj1KKSwxOSksMzJdLChCfDU2KT09QiYmKEM9Sy5hVCxKPUNbQSRdfHosVz15WzJdKDQsSyxKKT9lWzMwXShaWzFdLFpbMl0sQyxKLEspP2dbWlswXV0oMzQsQyxLLCEwKTpuZXcgSy5jb25zdHJ1Y3RvcihPWzE4XSgxMiwzNCxKLEMsITEpKTpLKSwoQnw3Mik9PUImJihXPXouTT8xOnoudj96LnYuc2l6ZTowKSwyKSkmNyk9PTMmJihXPUdbMTNdKDMzLGZ1bmN0aW9uKE4seCxmLEwscixWKXtpZihOLk09PShmPVs0LDEwLChWPVsyMywwLAoib25FcnJvciJdLDApXSwxKSlyZXR1cm4geD1uZXcgaEwsTD1KLlUzKCkscj1tW1ZbMF1dKDI3LEwseCx6KSxBPW1bVlswXV0oMzEsSyxyLGZbMV0pLE4uQSh6KSxOLnYoSi5GLnNlbmQobmV3IGRpKEEpKSxmW1ZbMV1dKTtpZihOLk0hPXope2lmKCFEWzZdKDI3LChDPU4uWCx0TCkpKEMpKXJldHVybiBKLk1bVlsyXV0oMSksTi5yZXR1cm4oKTtpZighQy5VMygpKXJldHVybiBKLk1bVlsyXV0oZlsyXSksTi5yZXR1cm4oKTtyZXR1cm4oSi5SKEMpLE4pLkYoZlsyXSl9aWYoKGI9Ti5pKCksYilpbnN0YW5jZW9mIFVYKUouTVtWWzJdXShmW1ZbMV1dKTtlbHNlIEouTVtWWzJdXShmWzJdKTtOLlIoKX0pKSw2KSk9PTIpR1sxM10oOSxmdW5jdGlvbihOKXsoYj1uZXcgKHY9T2JqZWN0LmFzc2lnbih7fSxDLHthTjoobj0oUT1KKT09ej92b2lkIDA6US52KSE9ej9uOm51bGwsbHk6KHA9KEE9Sik9PXo/dm9pZCAwOkEuTEQpIT16P3A6bnVsbH0pLE1LKSh2KSxLLlIpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIHguc2VuZCh3aSwKYil9KSxOLlIoKX0pO3JldHVybiBXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCLTF8MzEpPj0oZj1bNyw1NCwwXSxCKSYmKEIrZlswXV4yOCk8Qil7aWYodHlwZW9mIHohPT0ibnVtYmVyIil0aHJvdyBlWzZdKDIwLEl3KCkpO2lmKCFGRSh6KSlzd2l0Y2goQlQpe2Nhc2UgMjp0aHJvdyBlWzZdKGZbMV0sSXcoKSk7Y2FzZSAxOllbMTVdKDQ4LEl3KCkpfUw9QlQ9PT0yP3o+Pj5mWzJdOnp9aWYoKEJ8Mik8MjEmJigoQnwzKSYxMSk+PTkpe2lmKFE9KHg9YiYoQT1KLmxlbmd0aCxLKT8wOi0xLCEhQSkpTj1KW0Etel0sUT1OIT1udWxsJiZ0eXBlb2YgTj09PSJvYmplY3QiJiZOLmNvbnN0cnVjdG9yPT09T2JqZWN0O2ZvcihuPUErKHY9YiZLPzE6MCxXPVEsVz8tMTowKTt2PG47disrKUModi14LEpbdl0pO2lmKFcpZm9yKHAgaW4gWj1KW0Etel0sWikhaXNOYU4ocCkmJkMoK3AsWltwXSl9cmV0dXJuKEImNTMpPT1CJiYodGhpcy5BdT0xNUUzKSwKTH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEImKChiPVswLCJYIiwiQSJdLChCPDwxJjEyKT49OSkmJkIrNz4+NTw0JiYoSj1zSCxLPVswXSx0eXBlb2YgSj09PSJzdHJpbmciPyh0aGlzW2JbMV1dPUo9PXo1P3o6MCx0aGlzLmk9Sj09c0g/ejowLHRoaXMuUj1KPT1LYj96OjAsdGhpc1tiWzJdXT1KPT1KNj96OjAsdGhpcy52PUo9PUNiP3o6MCx0aGlzLk09Sj09Yjk/ejowKToodGhpcy52PUtbYlswXV0sdGhpcy5SPUp8fEtbYlswXV0sdGhpc1tiWzJdXT16fHxLW2JbMF1dLHRoaXMuTT1LW2JbMF1dLHRoaXMuaT1LW2JbMF1dLHRoaXNbYlsxXV09S1tiWzBdXSkpLDEyNikpPT1CJiYodGhpcy52PXosdGhpcy5NPUspLChCfDE2KT09QiYmKHRoaXNbYlsyXV09Six0aGlzLk09eix0aGlzW2JbMV1dPUMsdGhpcy5pPUspLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQpe2lmKCEoKChYPVs2RTMsIk0iLAowXSxCKXw1Nik9PUImJihkPW5ldyBCRChLLHosSikpLEI8PDEmMTUpKXtaPVsiSGFuZHNoYWtlIFJUVDogIiwxMSw1XTt0cnl7aWYoUT1KLmksUVtYWzFdXSE9WFsyXSYmKFEudj09Snx8R1s0NV0oMjMsUS5YLEopKSlpZighSi5qJiZHWzQ1XSg1NixRLlgsSikmJlFbWFsxXV09PTMpe3RyeXtBPVEucGcudi5wYXJzZShLKX1jYXRjaCh0KXtBPW51bGx9aWYoQXJyYXkuaXNBcnJheShBKSYmQS5sZW5ndGg9PTMpe2lmKHY9QSx2W1hbMl1dPT1YWzJdKWE6aWYoQTYoKSxRLlcpdlQoKTtlbHNle2lmKFEudilpZihRLnYuUCszRTM8Si5QKU9bMTBdKDIzLG51bGwsUSksWVszNV0oNCxudWxsLFEpO2Vsc2UgYnJlYWsgYTtlbHNlIFQ1KCk7RFs5XSgzLCExLFEpLEhbNDZdKDEwLDE4KX1lbHNlIFEua1c9dlsxXSxYWzJdPFEua1ctUS5nJiZ2WzJdPDM3NTAwJiZRLkgmJlEubT09WFsyXSYmIVEuQyYmKFEuQz1nW1hbMl1dKDUwLFJ4KFEuSk8sUSksWFswXSkpO2lmKERbMV0oNzIsUS5YKTw9MSYmClEubFkpe3RyeXtRLmxZKCl9Y2F0Y2godCl7akIoKX1RLmxZPXZvaWQgMH19ZWxzZSBwYigpLGVbMV0oMjUsWFsyXSxaWzFdLFEpfWVsc2UgaWYoKEouanx8US52PT1KKSYmT1sxMF0oMTcsbnVsbCxRKSwhUlsyXSg0LEspKWZvcihOPVEucGcudi5wYXJzZShLKSx4PVhbMl07eDxOLmxlbmd0aDt4KyspaWYoYj1OW3hdLHU9YltYWzJdXSwhKHU8PVEuZykpaWYoYj1iWzFdLFEuZz11LFFbWFsxXV09PTIpaWYoYltYWzJdXT09ImMiKXtpZihxPSgoQz0oKGM9KHI9KFEuUz1iWzFdLGIpWzNdLFEucHE9YlsyXSxyIT1udWxsJiYoUS5XMT1yLFEuQS5pbmZvKCJWRVI9IitRLlcxKSksYls0XSksYyE9bnVsbCkmJihRLm96PWMsUS5BLmluZm8oIlNWRVI9IitRLm96KSksYilbWlsyXV0sQyE9bnVsbCYmdHlwZW9mIEM9PT0ibnVtYmVyIiYmQz5YWzJdKSYmKEw9eipDLFEuST1MLFEuQS5pbmZvKCJiYWNrQ2hhbm5lbFJlcXVlc3RUaW1lb3V0TXNfPSIrTCkpLEU9USxKLnYpKXtpZihXPXEudj9xLnYuZ2V0UmVzcG9uc2VIZWFkZXIoUWEpOgpudWxsKVY9RS5YLGY9VywhVi52JiYoRFsyMF0oMjIsInNwZHkiLGYpfHxEWzIwXSgxOCwicXVpYyIsZil8fERbMjBdKDIyLCJoMiIsZikpJiYoVi5pPVYuQSxWLnY9bmV3IFNldCxWW1hbMV1dJiYoT1szOF0oMjEsVixWW1hbMV1dKSxWW1hbMV1dPW51bGwpKTtFLlAmJigoUz1xLnY/cS52LmdldFJlc3BvbnNlSGVhZGVyKG5iKTpudWxsKT8oRS5mcT1TLG1bOV0oMTMsRS5qLEUuUCxTKSk6WngoKSl9aWYoKGE9KFA9KCgoUVtYWzFdXT0zLFEpLlImJlEuUi5OWigpLFEpLkpMJiYoUS5GZz1EYXRlLm5vdygpLUouUCxRLkEuaW5mbyhaW1hbMl1dK1EuRmcrIm1zIikpLEopLFEpLGEpLktxPWdbMjFdKDE2LCIiLCIuIixhLmlZLGEsYS5EP2EucHE6bnVsbCksUC5qKVdUKCksWVszOV0oMzQsbnVsbCxhLlgsUCksbj1QLChwPWEuSSkmJm4uc2V0VGltZW91dChwKSxuLm8mJihSWzIxXSgxLG51bGwsbiksZVszNF0oMzUsbikpLGEudj1QO2Vsc2UgR1syMV0oMiwhMCxYWzJdLGEpO1EuaS5sZW5ndGg+ClhbMl0mJmtbMjRdKDMsWFsyXSxRKX1lbHNlIGJbWFsyXV0hPSJzdG9wIiYmYltYWzJdXSE9ImNsb3NlInx8ZVsxXSgyNyxYWzJdLDcsUSk7ZWxzZSBRW1hbMV1dPT0zJiYoYltYWzJdXT09InN0b3AifHxiW1hbMl1dPT0iY2xvc2UiP2JbWFsyXV09PSJzdG9wIj9lWzFdKDU4LFhbMl0sNyxRKTpnWzQ1XSgxLG51bGwsUSk6YltYWzJdXSE9Im5vb3AiJiZRLlImJlEuUi5nUShiKSxRLm09WFsyXSk7ZzBbNV0oNyw0KX1jYXRjaCh0KXtnbygpfX1yZXR1cm4gQj4+KChCLShCLTk8MTEmJkIrOD4+Mz49MSYmKE5QLmNhbGwodGhpcyx6KSx0aGlzW1hbMV1dPSExKSw2KSYxNSk9PTEmJihKPUo9PT12b2lkIDA/MjpKLGQ9R1szMl0oMjcsMzYsWFsyXSxrWzM2XSgxLFhbMl0sMTYsSykpLnNsaWNlKHosSikpLDEpJjE0fHwoSj16LnJULEs9Wyc8ZGl2IGlkPSJyYy1hdWRpbyIgYXJpYS1tb2RhbD0idHJ1ZSIgcm9sZT0iZGlhbG9nIj48c3BhbiBjbGFzcz0iJywiICIsJyIgdGFiSW5kZXg9IjAiPjwvc3Bhbj48L2Rpdj4nXSwKZD1PWzQwXSg5OCxnWzI1XSg2NyxPWzQwXSg5OCxhWigpLEtbWFsyXV0rUlsxMV0oNzMsInJjLWF1ZGlvY2hhbGxlbmdlLXRhYmxvb3AtYmVnaW4iKSsnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWF1ZGlvY2hhbGxlbmdlLWVycm9yLW1lc3NhZ2UiKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIiB0YWJJbmRleD0iMCI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYXVkaW9jaGFsbGVuZ2UtaW5zdHJ1Y3Rpb25zIikrJyIgaWQ9IicrUlsxMV0oNyxKKSsnIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtYXVkaW9jaGFsbGVuZ2UtY29udHJvbCIpKyciPjwvZGl2PjxkaXYgaWQ9IicrUlsxMV0oOSwicmMtcmVzcG9uc2UtbGFiZWwiKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLWF1ZGlvY2hhbGxlbmdlLWlucHV0LWxhYmVsIikrCiciIGlkPSInK1JbMTFdKDM5LCJyYy1yZXNwb25zZS1pbnB1dC1sYWJlbCIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzMsInJjLWF1ZGlvY2hhbGxlbmdlLXJlc3BvbnNlLWZpZWxkIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkIikrJyI+PC9kaXY+JyksRFszMF0oMTUsS1sxXSkpLCc8c3BhbiBjbGFzcz0iJytSWzExXSg3MywicmMtYXVkaW9jaGFsbGVuZ2UtdGFibG9vcC1lbmQiKStLWzJdKSksZH0sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEIrKEo9WzQsOCwiYXciXSxCLTc+PjM+PTAmJkItSlsxXTwxNiYmei5YLnJlYWQoKS50aGVuKHouclguYmluZCh6KSkuY2F0Y2goeltKWzJdXS5iaW5kKHopKSxKKVsxXT4+SlswXXx8VC5jYWxsKHRoaXMseiksS30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgoKHA9WyJjb25zdHJ1Y3RvciIsMCw4XSxCLTMpXjE3KT49QiYmKEIrcFsyXV4zMCk8QiYmCih2PShBPVN0cmluZyhHbC5sb2NhdGlvbi5ocmVmKSkmJkMmJmI/W2IsSFs3XSgzLHBbMV0sIiIsImtleSIseixPWzQ0XSgxMCxLLHBbMV0sQSksSnx8bnVsbCxDKV0uam9pbihvOSgpKTpudWxsKSxCLTY+PTIxKSYmKEI+PjImcFsyXSk8NCl7aWYodHlwZW9mIHo9PT0iZnVuY3Rpb24iKUs9ejtlbHNlIGlmKHR5cGVvZiB6PT09Im9iamVjdCIpSz16W3BbMF1dO2Vsc2UgdGhyb3cgRXJyb3Iodm9pZCAwKTt2PW1bMzZdKDEwLGZ1bmN0aW9uKFEpe3JldHVybiBRIGluc3RhbmNlb2YgS30pfXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoISgoQjw8KCgoQisoKFo9WyJjb29yZHMiLCJNIiwiaSJdLChCJjIxKT09QikmJihEWzEzXSgyNCxLW1pbMl1dKSxLLkE9eiksMSkmNjIpPEImJihCLTheOSk+PUImJihuPWVbMl0oMzIseix2b2lkIDAsSykpLEItOSYxNSl8fChuPUdbMTNdKDgsZnVuY3Rpb24oVyxOLHgpe3g9W251bGwsMTYsKE49WzEsOCwzXSwiQSIpXTsKc3dpdGNoKFcuTSl7Y2FzZSBOWzBdOmlmKCFiLlgpcmV0dXJuIFcucmV0dXJuKFtudWxsLG51bGxdKTtyZXR1cm4oV1soYi5SPShBPVtdLGZ1bmN0aW9uKGYsTCxyLFYsUCxxLGMsRSxTKXsoUz0ocT1bMywxLG51bGxdLFsyLDEsMzJdKSxmLmxlbmd0aD56KSYmKGM9Zlt6XSxjPnomJihmW3FbU1sxXV1dPyhWPW5ldyBPSCxMPXlbU1syXV0oU1swXSxxW1NbMF1dLFYsSixmW0pdKSxFPXlbU1syXV0oMyxxW1NbMF1dLEwscVswXSxmW3FbMF1dKSxQPW5ldyBVaW50OEFycmF5KE9iamVjdC52YWx1ZXMoZltxW1NbMV1dXSkpLHlbMzhdKDYsdm9pZCAwLEdbNDJdKDM0LHFbU1swXV0sITEsUCksRSw0KSxyPUUpOnI9cVtTWzBdXSxBW2MtcVtTWzFdXV09cikpfSksWWopKCkseFsyXV0oSixOWzJdKSxXKS52KCgwLHQkLnk1KShmdW5jdGlvbigpe3JldHVybiBiLlgudihiLmopfSwxNCksTlsyXSk7Y2FzZSBOWzJdOigoVy5tKCksYikuUj14WzBdLFcpLm8oNCk7YnJlYWs7Y2FzZSBKOihXLmkoKSwKVykuR18oTlsyXSk7YnJlYWs7Y2FzZSA0OigoUT1PWzEyXSgyLE5bMF0sbmV3IHhMLG5ldyBEeChBKSksWWopKCksVykuR18oSyk7YnJlYWs7Y2FzZSBLOnJldHVybiBwPVEueWUoKSxXLnYoUHJvbWlzZS5yZXNvbHZlKGVbeFsxXV0oNjgsNCxmYixHWzEwXSh4WzFdLDI1NSwyNTYsa1szOV0oNTksQyxwKSxiLm8pKSksTlsxXSk7Y2FzZSBOWzFdOnJldHVybiB2PVcuWCxXLnJldHVybihbWVs0XSg1OSxwKSx2XSl9fSkpLDEpJjE1fHwoSyBpbnN0YW5jZW9mIFo2PyhBPUsueSxLPUsueCk6QT16LGI9Si5YLHY9SltaWzJdXSxDPUoudi1KLlgscD1KW1pbMV1dLUpbWlsyXV0sbj0oKE51bWJlcihLKS1iKSooSi52LWIpKyhOdW1iZXIoQSktdikqKEpbWlsxXV0tdikpLyhDKkMrcCpwKSksQl44MykmMTUpKXtpZighKG9iLmNhbGwodGhpcyksQXJyYXkpLmlzQXJyYXkoeil8fCFBcnJheS5pc0FycmF5KEspKXRocm93IEVycm9yKCJTdGFydCBhbmQgZW5kIHBhcmFtZXRlcnMgbXVzdCBiZSBhcnJheXMiKTsKaWYoei5sZW5ndGghPUsubGVuZ3RoKXRocm93IEVycm9yKCJTdGFydCBhbmQgZW5kIHBvaW50cyBtdXN0IGJlIHRoZSBzYW1lIGxlbmd0aCIpO3RoaXNbKHRoaXMucHJvZ3Jlc3M9MCxaKVt0aGlzLmw9KCh0aGlzLmR1cmF0aW9uPSh0aGlzLlI9QyxKKSx0aGlzKVtaWzFdXT16LEspLDBdXT1bXX1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEJ8NzIpPT0oQj4+KEE9WzMyLDIwLDIyXSxCLTI+PjU8MSYmQi04Pj40Pj0wJiYoYj1SWzI2XShBWzJdLHosMixsKSksMikmMTV8fChDPUsuZFYrYk4oQWUoKSpLLmRlKSxLLmlzQWN0aXZlKCl8fChMYigpLEMqPXopLGI9QypKKSxCKSlhOntpZih6PT1udWxsKXtiPXo7YnJlYWsgYX1pZih0eXBlb2Ygej09PSJzdHJpbmciJiZ6KXo9K3o7ZWxzZSBpZih0eXBlb2YgeiE9PSJudW1iZXIiKXtiPXZvaWQgMDticmVhayBhfWI9QlQ9PT0yP0ZFKHopP3p8MDp2b2lkIDA6en1yZXR1cm4oQisyJjMxKT49QVsoQj4+MiZBWzJdKTwzJiYKKEI+PjImMTUpPj05JiYoYj1SYiYmWjg/IVo4Lm1vYmlsZSYmKERbQVsxXV0oMzUsImlQYWQiKXx8RFtBWzFdXSgxNSwiQW5kcm9pZCIpfHxEW0FbMV1dKDEzLHopKTpEW0FbMV1dKDEsImlQYWQiKXx8RFtBWzFdXSg5LCJBbmRyb2lkIikmJiFEW0FbMV1dKDM3LEspfHxEW0FbMV1dKDMzLHopKSwyXSYmQj4+MTxBWzBdJiYoSj0iIixLPXouSUEsSj1lWzIxXSg3NixybygpLEspP0orJ1NlbGVjdCBlYWNoIGltYWdlIHRoYXQgY29udGFpbnMgdGhlIG9iamVjdCBkZXNjcmliZWQgaW4gdGhlIHRleHQgb3IgaW4gdGhlIGltYWdlIGF0IHRoZSB0b3Agb2YgdGhlIFVJLiBUaGVuIGNsaWNrIFZlcmlmeS4gVG8gZ2V0IGEgbmV3IGNoYWxsZW5nZSwgY2xpY2sgdGhlIHJlbG9hZCBpY29uLiA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj5MZWFybiBtb3JlLjwvYT4nOkorIkNsaWNrIG9uIGFueSB0aWxlcyB5b3Ugc2VlIHdpdGggdGhlIG9iamVjdCBkZXNjcmliZWQgaW4gdGhlIHRleHQuIElmIG5ldyBpbWFnZXMgYXBwZWFyIHdpdGggdGhlIHNhbWUgb2JqZWN0LCBjbGljayB0aG9zZSBhcyB3ZWxsLiBXaGVuIHRoZXJlIGFyZSBub25lIGxlZnQsIGNsaWNrIFZlcmlmeS4iLApiPVREKEopKSxifSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKCgoQz1bIm0iLCEwLDBdLEIpPDwyJjR8fChKPVZhLkooKS5mbHVzaCgpKSxCPj4xJjMpPj1DWzJdJiZCLTU8MjApYTp7aWYoSy52fHxLLlcpe0o9KEc1KCkseik7YnJlYWsgYX1pZihLW0NbMF1dPj0zKXtKPXo7YnJlYWsgYX1LLlc9KEhUKCksSy5rSisrLGdbQ1syXV0oNDksUngoSy56SixLKSxEWzhdKDIsMixLLEtbQ1swXV0pKSksS1tDWzBdXSsrLEo9Q1sxXX1yZXR1cm4gSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgpe2lmKChCfDU2KT09KFQ4PVsyLCJkZWxldGUiLCJGZyJdLEIpKXtpZigoUD0oak49KGIzPSh6OD1uZXcgKHE9KG9aPShuRD0oeD0oZj0oWkc9KEo9Sj09PXZvaWQgMD8hMDpKLHQ9KHc9KDAsdCQuWDgpKCkuc2xpY2UoKSxbMSwzLDldKSwoMCx0JC5hNykoKSkuc2xpY2UoKSwKKDAsdCQuYjUpKHAsYikpLFlbMzBdKDEyLEEudik/MjoxKSx2OD1uZXcgZUIsZSlbNDNdKDkzLHY4LEosdFsxXSksSClbMF0oNTIsbkQsNyx4KSxrWzZdKDMwLDgsb1osQS5PKSksVT1rWzZdKDI4LHRbVDhbMF1dLHEsQS5DKSxQVCksWVszMl0oNzcsNDA5Nix6OCx3LmNvbmNhdChmKSx0WzBdLFE2KSksWVszMl0oNzgsNDA5NixiMyxaRy5jb25jYXQodiksVDhbMF0sJEwpKSxIWzQ0XSgyMSxVLFBULDUsak4pKSwoMCx0JC52RikoKSxhPVJbNDhdKDc0LFAsUFQsNSkscVAuc2l6ZSk9PT0wKXU9W107ZWxzZXtWPVtdO3RyeXtmb3IoWj1nWzEyXSg1LHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoaTkoKSkpLFE9Wi5uZXh0KCk7IVEuZG9uZTtRPVoubmV4dCgpKWZvcihuPVEudmFsdWUsVz1nWzEyXSgxLHFQKSxoPVcubmV4dCgpOyFoLmRvbmU7aD1XLm5leHQoKSlmRD1nWzEyXSgxLGgudmFsdWUpLE49ZkQubmV4dCgpLnZhbHVlLEU9ZkQubmV4dCgpLnZhbHVlLG4ubmFtZS5pbmNsdWRlcyhOKSYmCihTPW1bMzVdKFQ4WzBdLHosZ1szMl0oODIseix5WzldKDEsdFswXSxFKSx5YShuLmR1cmF0aW9uKSkseWEobi5zdGFydFRpbWUpKSxuLnJlc3BvbnNlU3RhdHVzJiZuLnJlc3BvbnNlU3RhdHVzPj1LJiYoZVs0M10oOTMsUywhMCw0KSxjPW5ldyBZTCxNPUhbNDldKDUxLHRbMF0sbi5yZXNwb25zZVN0YXR1cyxjKSxIWzQ0XSg4MyxTLFlMLDUsTSkpLFYucHVzaChTKSxxUFtUOFsxXV0oTikpfWNhdGNoKG1sKXt9dT1WfShCOD0oZD0oc3c9KEw9KEpZPShYPShZWzMyXSg4MSw0MDk2LGEsdSx0WzBdLFE2KSxuZXcgdHgpLHI9UlsyNV0oMTksbnVsbCxUOFswXSxDLGNULFgsbCksSFtUOFswXV0oMjcsQS52LFNCKSksbVsyM10oMzIsSlkscix0WzBdLGwpKSxtKVsyM10oMjksIkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsTCx0WzFdLGwpLEhbNDRdKDY5LHN3LGVCLDQsUCxsKSksbmV3IG12KGQsSFtUOFswXV0oMjcsQS52LFNCKSkpLEEpLmcuc2VuZChCOCwhMCwhMSl9aWYoIShCLTUmMTMpKWE6e2lmKEM9CkY4LGdbMF0oMTEsSikpe1FxPVlbNDhdKDYseixLLEouTyxDIT09dm9pZCAwP1N0cmluZyhDKTp2b2lkIDApO2JyZWFrIGF9UXE9KGI9ZVsxOF0oNyxKKSwhIWImJllbNDhdKDQseixLLGIsQykpfWlmKChCPDwxJjE1KT49MTAmJihCXjc4KT4+NDwzJiYoSj1bNSwxLG51bGxdLHRoaXMuVz1KW1Q4WzBdXSx0aGlzLk0ubGVuZ3RoIT09MCkpeyhiPSgoQT0oZj0odGhpcy5pPVlqKCksSltUOFswXV0pLHRoaXMuaSksdGhpcy5jbykmJihmPSgwLHQkLmxjKSh6PzE3OjE2KSksdGhpcykudVksYikudj1BLFc9MDtmb3IoeiYmKFc9dGhpcy5pK2VbMzJdKDE2LHopKTt0aGlzLk0ubGVuZ3RoPjA7KXtpZihRPXRoaXMuTS5wb3AoKSxRLkh2PD1BJiYoUS5URT1UOFswXSksdGhpc1tUOFsyXV0mJlEuVEU9PT0xKXtpZigheilicmVhaztpZigoTD1lWzMyXShUOFswXSx6KSxMKT09PTApYnJlYWs7Vz1BK0x9ZWxzZSBpZihBPnRoaXMuaSsxMClicmVhaztpZihRLkZQKXRyeXtSWzldKFQ4WzBdLDI1NSwKSlsxXSw2NCwwLHRoaXMsUS5GUCksUS5GUD1KW1Q4WzBdXSxBPVlqKCl9Y2F0Y2gobWwpe1E9KFEuZmkoKSxKW1Q4WzBdXSk7YnJlYWt9aWYoUS53Zjw9QSl7UT0oUS5maSgpLEpbVDhbMF1dKSx0aGlzLkQrPUpbMV07YnJlYWt9aWYoKCgoeD0oTj0oQT0oKHRoaXMubD0oKCgoQz1BLHI9ej9XLUE6dGhpcy5pKzEwLUEsdGhpcykuTD10aGlzLlI/cipoWSh0aGlzLlIvdGhpcy5tLEpbMF0pOnIqSlswXSx0aGlzLksoKSxRKS5WJiYodGhpcy54SltRLlZdPVEub1QsUS5WPTApLHRoaXMpLnYudj1RLkdvLDApLHRoaXMpLlhnKCkmJih0aGlzLmorPUpbMV0sdGhpcy5aMigpKSxZaigpKSxBLUMpLHRoaXMubCksTj1oWShOLC4xKSx0aGlzKS5SPyh0aGlzLlI9eCsuOSp0aGlzLlIsdGhpcy5tPU4rLjkqdGhpcy5tKToodGhpcy5tPU4sdGhpcy5SPXgpLEEpPEMmJih0aGlzLkc9Yi52KSx0aGlzLksoKSx0aGlzLk8pPT09bnVsbClRLm9qKCksUT1KW1Q4WzBdXTtlbHNleyhRLkdvPXRoaXMuTyx0aGlzKS5PPQpKW1Q4WzBdXTticmVha319aWYoKChLPShwPShRJiZ0aGlzLk0ucHVzaChRKSxaPVcsdGhpcykuaSxBKSx0aGlzKS5QKz1BLXRoaXMuaSxaKT5wKVorPUpbMV0sbj1sOShLLFopLXAsdj1oWShLLFopLVosSFs1XSg0NyxKWzFdLHRoaXMuSSxuKSx2PjAmJkhbNV0oNDgsSlsxXSx0aGlzLlUsdik7ZWxzZSBIWzVdKDMwLEpbMV0sdGhpcy5VLEstcCk7ZiYmKDAsdCQuZ1gpKGYpLHRoaXMuTS5sZW5ndGg+MCYmUlszOF0oOCxKWzFdLFQ4WzBdLHRoaXMpfWlmKChCJigoQiY1MCk9PUImJihXPWIsWj1bNDA5NiwxNiwwXSxLPT09MXx8KEshPT00PzA6eiZifHwhKFpbMV0mYikmJjMyJm4pP21bNV0oMjAsNCxiKXx8KGJ8PSF2Lmxlbmd0aHx8SiYmIShaWzBdJmIpfHwzMiZuJiYhKFpbMF0mYnx8WlsxXSZiKT8yOjI1NixiIT09VyYma1szOF0oNzgsdixiKSxUSih2KSk6KEs9PT0yJiZtWzVdKDE0LDQsYikmJih2PWcwW1Q4WzBdXSgxLHYpLFc9WltUOFswXV0sYj1IWzQzXSgzMyx6LGIsbiksbj0KWVsyNV0oMzMsdixRLG4scCxDKSksbVs1XSgxNCw0LGIpfHwoQXx8KGJ8PVpbMV0pLGIhPT1XJiZrWzM4XSg5Myx2LGIpKSkseiZifHwhKFpbMF0mYnx8WlsxXSZiKXx8SFszNl0oMSxDLG4pLFFxPXYpLDEwMSkpPT1CKWE6e2Zvcig7Sy52Lk07KXRyeXtpZihKPUsuTShLLnYpKXtRcT17dmFsdWU6Si52YWx1ZSxkb25lOiEoSy52LlU9ITEsMSl9O2JyZWFrIGF9fWNhdGNoKG1sKXtLLnYuWD12b2lkIDAsZzBbM10oNjUsSy52LG1sKX1pZigoSy52LlU9ITEsSykudi5sKXtpZigoKEM9Sy52LmwsSy52KS5sPXosQykuY0EpdGhyb3cgQy5uMTtRcT17dmFsdWU6Qy5yZXR1cm4sZG9uZTohMH07YnJlYWsgYX1RcT17dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXJldHVybiBRcX0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKEM9WzMsMiwiTSJdLEIrND4+NCl8fChKPXo/ei5kZWZhdWx0Vmlldzp3aW5kb3cpLEI+PkNbMV0mQ1swXSk9PTEmJihLPXpbQ1syXV0sSj1LW0NbMl1dLmxlbmd0aCtLLnYubGVuZ3RoKSwKSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihCLSgoQiYoKChCJjUzKT09KCgoUT1bInRvU3RyaW5nIiwxLDRdLEIpLVFbMl1eMTgpPEImJihCLTJeMTQpPj1CJiYoSj1bMjI0LDI4MzQsMF0sbj1EWzE1XShRWzFdLEpbMF0sNyxFSCgpLnNsaWNlKEhbOF0oMzYsNTYyMClbS10sSFs4XSg0NCwyODA4KVtLK3pdKSxIWzhdKDMyLEpbUVsxXV0pK1JbMzFdKDM2LEpbMl0sZnVuY3Rpb24oKXtyZXR1cm4gRUgoKS5zbGljZSgwLEhbOF0oNDQsMTM3OClbS10pfSxYSikpKSxCKSYmKEouc2V0KHU5LE9bNDFdKDMxKSksbj1EWzI5XSgzMyxuZXcgeTYoa1s0N10oUVsyXSxLKSksSltRWzBdXSgpLHopW1FbMF1dKCkpLEI+PlFbMV08MjEpJiYoQj4+UVsxXSYxNSk+PTUmJih0aGlzLmVycm9yPXopLDkzKSk9PUImJih0aGlzLlI9Syx0aGlzLlg9eix0aGlzLmk9Qyx0aGlzLnY9Six0aGlzLk09Yix0aGlzLkE9UVsxXSksUVsxXSk+PjU8MiYmKEI8PDImMTUpPj05KXtmb3IocD0oKGI9CihBPW1bMjJdKFFbMV0sbnVsbCxDLEosIkhFQURFUiIpLEFycmF5KS5mcm9tKEEpLGIpLnNvcnQoZnVuY3Rpb24oWixXKXtyZXR1cm4gWi1XfSksdj1LKTtwPGw5KHosYi5sZW5ndGgpO3ArKyl2PDw9MTYsdnw9YltwXSY2NTUzNTtuPXZ9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCgocD1bIk1BWF9TQUZFX0lOVEVHRVIiLDEsOTJdLEIpXnBbMl0pPDEzJiYoQnwyKT49cFsxXSlhOntpZih0eXBlb2YgQmlnSW50NjRBcnJheSE9PSh2PVswLDQyOTQ5NjcyOTUsMV0sInVuZGVmaW5lZCIpKXtiPSgoYWJ8fChhYj1uZXcgQmlnSW50NjRBcnJheSgxKSxoNj1uZXcgVWludDMyQXJyYXkoYWIuYnVmZmVyKSxhYlt2WzBdXT1CaWdJbnQodlsyXSksa0w9aDZbdlswXV09PT0xKSxhYilbdlswXV09SixrTCk/MDoxLFE9bmV3IEsoaDZbYl0saDZbdlsyXS1iXSk7YnJlYWsgYX1pZigodDZ8fChVSD1CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLE1QPUJpZ0ludChOdW1iZXJbcFswXV0pLAp3bz1CaWdJbnQodltwWzFdXSksdDY9QmlnSW50KHopKSxKPj1VSCkmJko8PU1QKXtRPUMoTnVtYmVyKEopKTticmVhayBhfVE9bmV3IEsoKEE9QmlnSW50LmFzVWludE4oNjQsSiksTnVtYmVyKShBJndvKSxOdW1iZXIoQT4+dDYpKX1pZigoQi01fDYwKT49QiYmKEIrN14xMyk8Qilmb3IoO0s9ei5maXJzdENoaWxkOyl6LnJlbW92ZUNoaWxkKEspO2lmKCEoKEJ8Nik+PjQpKWE6dHJ5e1E9KEo9SyYmSy5hY3RpdmVFbGVtZW50KSYmSi5ub2RlTmFtZT9KOm51bGw7YnJlYWsgYX1jYXRjaChuKXtRPXo7YnJlYWsgYX1pZigoQjw8KChCfDQ4KT09QiYmKHRoaXMubmV4dD10aGlzLk09dGhpcy52PW51bGwpLDIpJjcpPT00KWE6e2lmKEsgaW5zdGFuY2VvZiBJYil7UT1LO2JyZWFrIGF9UT0oSj1TdHJpbmcoSykucmVwbGFjZSgvJi9nLEZKKCkpLnJlcGxhY2UoLzwvZyxCYigpKS5yZXBsYWNlKC8+L2csc3ooKSkucmVwbGFjZSgvIi9nLHoyKCkpLnJlcGxhY2UoLycvZyxLeCgpKSxHWzQzXSgyNCwKeixKKSl9cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKEIrKG49WyJzbGljZSIsMTksMTJdLDcpJjIzKT09MSYmKGI9W10sdj1bMSwhMCwwXSxDPUM9PT12b2lkIDA/MTpDLEE9ITEsenx8KHo9Z1syNl0oNTYsTFIuSigpLHZbMF0pW3ZbMl1dLGIucHVzaChtW25bMl1dKDM4LHosdlsyXSkpLEE9dlsxXSksUT1nWzddKDM5KSxwPWdbN10oNSksYi5wdXNoKFEsWVswXSgyNCxwLE9bMjVdKDksSiksT1syNV0oNSx6KSksSyxHWzI0XSgxNix6LE9bMjVdKDkseiksQyksWVswXSgyNixRLHZbMF0sdlswXSkscCksQSYmTFIuSigpLnYoeiksWj1iKSxCfDgwKT09QilhOntpZih6PT1udWxsfHx0eXBlb2Ygej09PSJudW1iZXIiKXtaPXo7YnJlYWsgYX1pZih6PT09Ik5hTiJ8fHo9PT0iSW5maW5pdHkifHx6PT09Ii1JbmZpbml0eSIpe1o9TnVtYmVyKHopO2JyZWFrIGF9fXJldHVybigoQl43MCk+PTcmJkI8PDE8MTEmJihLPVs2LDAsMV0sKG5ldyBKTShPWzVdKDI4LApLWzJdLGdbblsxXV0oOSxLWzBdLHopKSxZWzMyXSgxOCwyLGdbblsxXV0oOCxLWzBdLHopKSxSWzI2XSgyMCx6LDcsbCksei5zMygpfHxLWzFdKSkucmVuZGVyKEdbMTVdKDQ2KSkpLEItMj4+Mz09MSYmKGI9WzAsMSwxMDBdLHR5cGVvZiB6PT09Im51bWJlciI/KHRoaXMudj1lWzIzXSg2LGJbMl0sYlswXSxLfHxiWzBdLEp8fGJbMV0seiksWVszOF0oOSxKfHxiWzFdLHRoaXMpKTpIWzQ0XSgyLHopPyh0aGlzLnY9ZVsyM10oNCxiWzJdLGJbMF0sei5nZXRNb250aCgpLHouZ2V0RGF0ZSgpLHouZ2V0RnVsbFllYXIoKSksWVszOF0oMSx6LmdldERhdGUoKSx0aGlzKSk6KHRoaXMudj1uZXcgRGF0ZShlWzI5XSg3NCkpLEM9dGhpcy52LmdldERhdGUoKSx0aGlzLnYuc2V0SG91cnMoYlswXSksdGhpcy52LnNldE1pbnV0ZXMoYlswXSksdGhpcy52LnNldFNlY29uZHMoYlswXSksdGhpcy52LnNldE1pbGxpc2Vjb25kcyhiWzBdKSxZWzM4XSgxNixDLHRoaXMpKSksQi05JjExKXx8KEE9SiwKYj1LLCgocD1iKT09ej8wOnAuaGVhZGVycyk/KGI9T2JqZWN0LmFzc2lnbih7fSxiKSxiLmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzPyhiLmhlYWRlcnM9bmV3IEhlYWRlcnMoYi5oZWFkZXJzKSxiLmhlYWRlcnMuc2V0KHQzLEMpKTpBcnJheS5pc0FycmF5KGIuaGVhZGVycyk/KGIuaGVhZGVycz1iLmhlYWRlcnNbblswXV0oKSxiLmhlYWRlcnMucHVzaChbdDMsQ10pKTooYi5oZWFkZXJzPU9iamVjdC5hc3NpZ24oe30sYi5oZWFkZXJzKSxiLmhlYWRlcnNbdDNdPUMpKTpBIGluc3RhbmNlb2YgUmVxdWVzdCYmIUEuaGVhZGVycy5rZXlzKCkubmV4dCgpLmRvbmU/KEE9bmV3IFJlcXVlc3QoQSksQS5oZWFkZXJzLnNldCh0MyxDKSk6KGI9T2JqZWN0LmFzc2lnbih7fSxiKSx2PXt9LGIuaGVhZGVycz0odlt0M109Qyx2KSksWj1DeChBLGIpLnRoZW4oZnVuY3Rpb24oVyl7cmV0dXJuIFcuc3RhdHVzPT09NDMxP0N4KEosSyk6V30pKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYsCnAsUSxuKXtpZighKCgoKChuPVsyLDExLDE2XSwoQj4+blswXSYyNyk+PTkpJiZCPj5uWzBdPG5bMl0mJihKPShLPW5LLmdldCh6KSkhPW51bGw/SzowLG5LLnNldCh6LEorMSkpLChCKzQmblsyXSk8MTUpJiYoQjw8blswXSYyNyk+PTE4JiZULmNhbGwodGhpcyx6LDAsZ20uUlQpLChCPDwxJm5bMV0pPT1uWzBdKSYmKFE9eVs0Ml0oMjUsSyx6LEosQykpLEItOCk+PjQpJiZKLk8pZm9yKHAgaW4gQT1KLk8sYj16LEEudil7Zm9yKHY9KEM9QS52W3BdLHopO3Y8Qy5sZW5ndGg7disrKSsrYixPWzEwXSgzLEssQ1t2XSk7ZGVsZXRlIEEudltBLk0tLSxwXX1yZXR1cm4oQiYxMjQpPT1CJiYoUT16KSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCJihuPVsiY2FsbCIsInN0YXR1c1RleHQiLDEzXSwxMjApKT09Qil7aWYoKEE9KGI9KHA9WVsyNV0oNiwodj1KLnYuWCxKKS52KSxKLnYuditwKSxiLXYpLEE8PXopJiYoSi52Llg9YixDKEssSix2b2lkIDAsdm9pZCAwLAp2b2lkIDApLEE9Yi1KLnYudiksQSl0aHJvdyBFcnJvcigpOyhKLnYudj1iLEoudikuWD12fXJldHVybihCPDwoKEJ8KChCfDI0KT09KCgoQl42MSkmblsyXSk9PTEmJihRPUhbMjFdKDQ1LEsseikpLEIpJiYoSj1bMCxudWxsLCIiXSxvZ1tuWzBdXSh0aGlzKSx0aGlzLlU9eix0aGlzLkE9dm9pZCAwLHRoaXMuUj1LLHRoaXMucmVhZHlTdGF0ZT1KWzBdLHRoaXMuc3RhdHVzPUpbMF0sdGhpc1tuWzFdXT1KWzJdLHRoaXMucmVzcG9uc2U9SlsyXSx0aGlzLnJlc3BvbnNlVGV4dD1KWzJdLHRoaXMucmVzcG9uc2VUeXBlPUpbMl0sdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U9SlsxXSx0aGlzLmw9bmV3IEhlYWRlcnMsdGhpcy5NPUpbMV0sdGhpcy5DPUhEKCksdGhpcy5pPUpbMV0sdGhpcy5XPUpbMV0sdGhpcy52PSExLHRoaXMuWD1KWzFdLHRoaXMubz1KWzJdLHRoaXMuRj1uZXcgQWJvcnRDb250cm9sbGVyKSwzKSk+PjM9PTImJihiZFtuWzBdXSh0aGlzLGJRKCksa1s0M10oMjgsQU0pLExLKCkpLApIWzMxXSgzMyx0aGlzLHopLHRoaXMuaE09ITApLDEpJm5bMl0pPT00JiYoYj1bMjYsMTEsMTVdLEM9SihLKCksYlsxXSxiWzJdLDIpLFE9Qz4wP0ooSygpLGJbMV0sYlsyXSxiWzBdKS1DOi0xKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQiYoQT1bIi5ncmVjYXB0Y2hhLWJhZGdlIiwzNSwidiJdLChCXjM3KTwyNCYmQjw8MT49MjImJihiPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKEFbMF0pLGZ1bmN0aW9uKHYpe3JldHVybiBZWzhdKDMwLHZiLHYuZ2V0QXR0cmlidXRlKCJkYXRhLXN0eWxlIikpfSkubGVuZ3RoPnopLDkyKSk9PUImJihOUC5jYWxsKHRoaXMpLHRoaXMucmVxdWVzdD16LHRoaXNbQVsyXV09Syx0aGlzLmVycm9yQ29kZT10aGlzW0FbMl1dP0hbQVsxXV0oMywyLHRoaXNbQVsyXV0pOi0xLHRoaXMuWD0oSj0oQz10aGlzW0FbMl1dKT09bnVsbD92b2lkIDA6Qy5NKSE9bnVsbD9KOm51bGwpLGJ9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBKXtpZigoQnwxNik9PSgoKChCJjk0KT09KEE9WzIyLDksNDRdLEIpJiYoYj1URCgnPHRleHRhcmVhIGlkPSInK1JbMTFdKDcxLEspKyciIG5hbWU9IicrUlsxMV0oQVsxXSx6KSsnIiBjbGFzcz0iZy1yZWNhcHRjaGEtcmVzcG9uc2UiPjwvdGV4dGFyZWE+JykpLEIpKzMmNyk8MSYmQj4+Mj49LTg0JiYoVDIoeiksajcoeiksYj1qNyh6KT9OdW1iZXIoeik6U3RyaW5nKHopKSxCKSlhOntpZih6Lk0hPT0wJiZ6Lk0hPT0yKXtiPSExO2JyZWFrIGF9Yj0hKChDPU9bQVswXV0oMSwyLEssS1tBJF18MCxKKSx6KS5NPT0yP09bNDddKDUsa1sxNV0uYmluZChudWxsLDMyKSx6LEMpOkMucHVzaChrWzE1XShBWzJdLHoudikpLDApfXJldHVybihCLUFbMV18MjMpPEImJihCLTh8NDcpPj1CJiZ6Lm9ucmVhZHlzdGF0ZWNoYW5nZSYmei5vbnJlYWR5c3RhdGVjaGFuZ2UuY2FsbCh6KSxifSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEI+PihDPVsxLCIiLDI3XSxDWzBdKSY4KTwKMiYmKChCfDUpJjIpPj1DWzBdKWZvcihKIGluIHopSy5jYWxsKHZvaWQgMCx6W0pdLEoseik7cmV0dXJuKEIrOSZDWzJdKT49QiYmQis3Pj5DWzBdPEImJihHRC5jYWxsKHRoaXMscHgud2lkdGgscHguaGVpZ2h0LHBSLFFiKSx0aGlzLm1vYmlsZVRva2VuPUNbMV0sdGhpcy51cmw9Q1sxXSx0aGlzLkQ9MCksYn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oSj1bMiwyMCw0N10sQiZKWzJdKT09QiYmKEM9RFtKWzFdXSgxOCx6LEhbMzNdKDIzKSkpLEI8PEpbMF0mN3x8KEM9Sy5pbmRleE9mKHopIT0tMSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCKzReKCgoKHA9WyJwWCIsNSwiSiJdLEIpLTReMzEpPEImJihCLXBbMV1eOCk+PUImJihDPUp8fG54W3BbMl1dKCksWksuY2FsbCh0aGlzLG51bGwsQyxLKSx0aGlzLm89eiE9PXZvaWQgMD96OiExKSwoQiY2MSk9PUImJih2PXtxdDp6W3BbMF1dKCksT0I6ei5SMCgpLHdpdGhDcmVkZW50aWFsczp6LnRLKCl9KSwKQnw0MCk9PUImJih0aGlzLnY9bmV3IFdiLHRoaXMuWD10aGlzLmk9ITEsdGhpcy5NPWVbMjddLmJpbmQobnVsbCxwWzFdKSksMjEpKT49QiYmKEIrOV4xNSk8QiYmKGdQLmxlbmd0aD8oQT1nUC5wb3AoKSxBLmluaXQoSyxDLEoseiksYj1BKTpiPW5ldyBONyhLLEMsSix6KSx0aGlzLlg9LTEsdGhpcy52PWIsdGhpcy5NPS0xLHRoaXMuQT10aGlzLnYudix0aGlzLmk9LTEsWVszMF0oMyx6LHRoaXMpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEIrOSYxMyk9PShCLSgoKEImKEIrKGI9WzQ0LDE1LDRdLDEpPj5iWzJdPT1iWzJdJiYoSj49MSYmYk4oSiksSFszMF0oMSw3LEoqOCt6LEsudikpLDU4KSk9PUImJihKPUo9PT12b2lkIDA/a1tiWzFdXS5iaW5kKG51bGwsNDgpOkosQz1rWzQ2XShiWzBdLGZ1bmN0aW9uKEEsdixwKXsocD16LEEpLnN1YnNjcmliZShuZXcgZmcodixmdW5jdGlvbihRKXt2Lm5leHQoKHA9SyxRKSl9LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBwPwp2LmNvbXBsZXRlKCk6di5lcnJvcihKKCkpfSkpfSkpLEItMiY3KT09YlsyXSYmKEM9R1szN10oODYsNjQsbnVsbCxIW2JbMl1dKDg5LHosSyx2b2lkIDAsdm9pZCAwLGtbNDZdLmJpbmQobnVsbCwyMSkpKSksNik8PDE8QiYmKEItMnw4Nik+PUImJnRoaXMudi5nZXRWYWx1ZSgpLmxlbmd0aD4wJiZ0aGlzLm1KKCExKSxiWzJdKSYmKEo9WzE2LDE1LDBdLEs9ei5jaGFyQ29kZUF0KEpbMl0pLEM9IiUiKyhLPj5iWzJdJkpbMV0pLnRvU3RyaW5nKEpbMF0pKyhLJkpbMV0pLnRvU3RyaW5nKEpbMF0pKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEIrNyYoKGI9WyJmdW5jdGlvbiIsMjUsNV0sKEJ8NTYpPT1CKSYmKEM9bVs0MF0oMTYsMCwiIixKLEspLEE9ZVsxNl0oYlsyXSx6LE96LEMpKSwxMykpPj1CJiZCLTQ8PDI8QiYmKEE9Sy52P0suTS5NPyEwOiEoIXlbMjBdKDQ4LHosSy52KSYmIUsudi5nZXRSZXNwb25zZSgpKTohMSksQikrYlsyXSYzfHx6JiZ0eXBlb2Ygei5kaXNwb3NlPT0KYlswXSYmei5kaXNwb3NlKCksKEJ8NjQpPT1CKWE6e2lmKEpbMF09PT0oQz1KLmxlbmd0aCwiLSIpP0M8eHN8fEM9PT14cyYmSjw9REs6QzxmeHx8Qz09PWZ4JiZKPD1vYyl7QT1KO2JyZWFrIGF9R1tiWzFdXSg0NCxLLEopLEE9UlszNl0oMSx6LE9PLHhPKX1yZXR1cm4oQl44Nik+PjQ9PTQmJlQuY2FsbCh0aGlzLHopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKCgoKCgoQl4yNik+PjM9PShuPVs2NCwyMiwidiJdLDMpJiYoSz1bOSxudWxsLCExXSxvZy5jYWxsKHRoaXMpLHRoaXMubD16fHxIWzE3XSgyOCxLWzBdKSx0aGlzLlU9dm9pZCAwLHRoaXMuaT1LWzFdLHRoaXMuQT1LWzFdLHRoaXMuRj1LWzFdLHRoaXMuU3E9S1syXSx0aGlzLnVZPUx4LHRoaXMuSz1LWzFdLHRoaXMuTT1LWzFdKSxCKTw8MSYxNSk9PTImJih2PVhKLHA9bmV3IFJjLHAuTT1mdW5jdGlvbihXLE4pe3JldHVybiBHWzEzXSgzMixmdW5jdGlvbih4LGYsTCl7Zj1bJyInLDIsIShMPQpbIkEiLDAsMTBdLDApXTtzd2l0Y2goeC5NKXtjYXNlIDE6aWYoKHhbTFswXV0oKE49QyxmWzFdKSkscCkudi5PZCgpPT1MWzFdKXt4LkdfKEspO2JyZWFrfXJldHVybiB4LnYoUlszMV0oMzUsTFsxXSxBLHYpLHopO2Nhc2UgejppZihOPXguWCxOIT1DKXJldHVybiB0eXBlb2YgTiE9InN0cmluZyJ8fE4uaW5jbHVkZXMoUDcoKSl8fE4uaW5jbHVkZXMoclAoKSk/dHlwZW9mIE49PSJudW1iZXIiP049IiIrTjpOIGluc3RhbmNlb2YgVmI/KHAuaT1mWzJdLE49Ti52KTpOPVlbTFsyXV0oNjcsZnVuY3Rpb24ocil7cmV0dXJuIHIuc3RyaW5naWZ5KE4pfSk6Tj1mW0xbMV1dK04rZltMWzFdXSx4LnJldHVybihRKFcsTikpO2Nhc2UgSzp4LkYoMyk7YnJlYWs7Y2FzZSBmWzFdOnguaSgpLHAuWD1mWzJdO2Nhc2UgMzpyZXR1cm4geC5yZXR1cm4oZVsyN10oMjEsVykpfX0pfSxRPWZ1bmN0aW9uKFcsTil7cmV0dXJuIEdbMTNdKDMzLGZ1bmN0aW9uKHgsZil7cmV0dXJuIHguTT09KGY9WzEsInYiLAozOV0sZlswXSk/eFtmWzFdXShiKE4sVyksMik6eC5yZXR1cm4oe2RROnguWCx3VDpEWzRdKGZbMl0sMCxOKX0pfSl9LHBbblsyXV09bVszNV0oNTksSiksWj1wKSxCKSsxXjIwKTxCJiYoQis2JjI4KT49QiYmKFo9Z1tuWzFdXSg1Nik/R1szMV0oODMsQmlnSW50LmFzSW50TihuWzBdLChCaWdJbnQuYXNVaW50TigzMixCaWdJbnQoSykpPDxCaWdJbnQoMzIpKStCaWdJbnQuYXNVaW50TigzMixCaWdJbnQoeikpKSk6R1szMV0oODcsUlszNl0oOSwzMix6LEspKSksKEImNjApPT1CJiYoSj1KPT09dm9pZCAwPyEwOkosQz1DPT09dm9pZCAwP21bMjNdLmJpbmQobnVsbCwxKTpDLFo9ZnVuY3Rpb24oVyxOLHgpe3ZhciBmPVsxMywxOCwzXSxMPUcyLmFwcGx5KGZbMl0sYXJndW1lbnRzKTtXPVc9PT12b2lkIDA/ZVszMV0oZlsxXSk6Vzt2YXIgcixWLFAscSxjLEU9dGhpcyxTLGE7cmV0dXJuIEdbZlswXV0oOCxmdW5jdGlvbih1LFgsZCx0KXtmb3IoZD0odD1bMjIsIk0iLDY0XSw4Nyk7ZCE9Cjk4OylpZihkPT01MylkPXghPXZvaWQgMCYmSGI9PXg/NTQ6NjA7ZWxzZSBpZihkPT01OSlkPXVbdFsxXV09PTE/dFsyXTo0MztlbHNle2lmKGQ9PXRbMl0pcmV0dXJuIFhKPU58fFhKLEhiPUhifHx4LFM9ZTcoWVs0XSg1NyxXKSksYz1lWzZdKDEsWFsxXSxTKSxKJiZQYihmdW5jdGlvbihoKXtyZXR1cm4gTC51bnNoaWZ0KEhbKGg9WzQ0LDU2NTcsOF0saClbMl1dKGhbMF0sNzQyMCkoKSxIW2hbMl1dKDQwLDk5MTUpKCksSFtoWzJdXSgxMiw5NDYpLEhbaFsyXV0oMzIsaFsxXSkpfSwwKSxhPURbMjRdKDMzLFhbMF0sNCxYWzJdLG51bGwsQyxmdW5jdGlvbigpe3JldHVybiB6LmFwcGx5KEUsTCl9KSx1LnYoYVt0WzFdXShTKSxYWzFdKTtpZihkPT01NClWPW5ldyAkcyxEWzhdKDc4LEhbNF0oOTUsMyxjKSk9PTB8fGEudi5PZCgpPT0wP0hbMF0oNTIsViwxLFhbMV0pOmEuWD9IWzBdKDQ4LFYsMSwzKTphLmk/SFswXSg2NSxWLDEsNCk6SFswXSh0WzJdLFYsMSwxKSxtWzIzXSh0WzBdLApQLFYsWFsxXSkscTcucHVzaChWKSxIYj12b2lkIDAsZD02MDtlbHNlIGlmKGQ9PTQzKXE9dS5YLFA9cS53VCxyPXEuZFEsbVsyM10oMjMscixjLDEpLGZ1bmN0aW9uKGgpe3JldHVybiBrWzZdKDI0LDMsYyxoKX0oWEouT2QoKSksZD01MztlbHNle2lmKGQ9PTYwKXJldHVybiB1LnJldHVybihuZXcgaVEoYyxLLFApKTtkPT04NyYmKFg9WzUsMiwyMDBdLGQ9NTkpfX19KX0pLEIpPj4yJjE0KT09Mil7aWYoYj13aW5kb3csSyBpbnN0YW5jZW9mIHliKUM9S1tuWzJdXTtlbHNlIHRocm93IEVycm9yKHopO2IuZXZhbCgoSj1DLEopKT09PUomJmIuZXZhbChKLnRvU3RyaW5nKCkpfXJldHVybiBafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChDPVsxNSw1Niw0XSwoQi01XkNbMF0pPj1CJiYoQis1JkNbMV0pPEImJihKPUsuc3R5bGVbZVsxMV0oMjYsInZpc2liaWxpdHkiKV0sYj10eXBlb2YgSiE9PSJ1bmRlZmluZWQiP0o6Sy5zdHlsZVtEWzQ4XSgxLHosIl0rIixLLCJ2aXNpYmlsaXR5IildfHwKIiIpLChCXjI5KSY3KT09MiYmVC5jYWxsKHRoaXMseiksKEJ8NSk+PkNbMl0pPj0yJiYoQitDWzJdJjE2KTwxMiYmKGI9bmV3IElwKGZ1bmN0aW9uKEEsdixwKXsodj1lW3A9WzM1LDIzLCJpbWciXSxwWzBdXShwWzFdLHosSyxkb2N1bWVudCxudWxsLHBbMl0pLHYubGVuZ3RoKT09MD9BKCk6SFs1XSgyNSx2WzBdLFlzLGZ1bmN0aW9uKCl7QSgpfSl9KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKHY9WyJ0cmFuc2Zvcm0iLDIsIi1ob3ZlciJdLCEoKEJeNzEpPj40KSlpZihiLmdiKHopLEEpWVszNV0oNDgsYi5DLCJvcGFjaXR5IixKKSxZWzM1XSgxNixiLkMsdlswXSwic2NhbGUoMCkiKSxPW3ZbMV1dKDQwLFJ4KGZ1bmN0aW9uKCl7WVszNV0oNDAsdGhpcy5DLCJkaXNwbGF5IixDKX0sYiksSyk7ZWxzZSBZWzM1XSg0OCxiLkMsImRpc3BsYXkiLEMpO3JldHVybihCLTQmKEItODw8KChCLXZbMV18NDMpPEImJihCLTN8NjQpPj1CJiYocD1tWzIzXSgzMSxKLEsseixsKSksCnZbMV0pPEImJkItNDw8dlsxXT49QiYmKGNiLmNhbGwodGhpcyx6LmVxKSx0aGlzLnR5cGU9UzcpLDEyKSk8NCYmKEJ8OSk+PjM+PXZbMV0mJihLLnZ8fGdbNl0oNzMsdlsyXSx6LEspLHA9Sy52W0pdKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoKEJeNCkmKFE9WzIsIkoiLDZdLDE0KSkpe2lmKG5RLmNhbGwodGhpcyxKKSwhKEM9Sykpe2ZvcihBPXRoaXMuY29uc3RydWN0b3I7QTspe2lmKHA9KGI9bVs0OF0oNDYsQSksbVkpW2JdKWJyZWFrO0E9KHY9bFEoQS5wcm90b3R5cGUpKSYmdi5jb25zdHJ1Y3Rvcn1DPXA/dHlwZW9mIHBbUVsxXV09PT0iZnVuY3Rpb24iP3BbUVsxXV0oKTpuZXcgcDpudWxsfXRoaXMuanM9eiE9PXZvaWQgMD96Om51bGwsdGhpcy5YPUN9cmV0dXJuKEItKCgoQitRWzBdPDM4JiZCPDxRWzBdPj0yOCYmKEMudi5jbG9zZSgpLEMudj1KLGVbMzZdKDExLEMsQy52LEV6LGZ1bmN0aW9uKFope3JldHVybiBnWzMzXSgzNCxLLHosQyxaKX0pLApDLnYuc3RhcnQoKSksQi1RWzJdKSYxMSk9PTMmJih0aGlzLnY9MCx0aGlzLmk9bnVsbCx0aGlzLlg9bmV3IFh4LHRoaXMuTT1uZXcgWHgpLDcpXjE3KTxCJiYoQis4JjEzKT49QiYmKHouaT1LKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKEItKChCKzgmMTYpPCgoKEI8PDI+PShaPVs1LDQsMTRdLFopWzFdJiYoQitaWzFdJjEyKTwyJiYobj1HWzEzXSgxNyxmdW5jdGlvbihXLE4pe2lmKFcuTT09KE49WyJ2IiwiRiIsIkEiXSxKKSlyZXR1cm4gUT1iW05bMF1dW05bMF1dLHA9SFszM10oNTcsUSksV1tOWzJdXShLKSxXW05bMF1dKGJbTlsxXV0uc2VuZChuZXcgdVEoYi5VMygpLHApKSxDKTtpZihXLk0hPUspcmV0dXJuIHY9Vy5YLG1bMzVdKDEseixDLFEsdiksV1tOWzFdXSh6KTtpZigoQT1XLmkoKSxBKWluc3RhbmNlb2YgVVgpYi5NLm9uRXJyb3IoQyk7ZWxzZSBiLk0ub25FcnJvcih6KTtXLlIoKX0pKSxCKS0yXjMyKTxCJiYoQisxJjU5KT49QiYmCihDPUouQSxSW1pbMl1dKDExLHosSiksbj1nWzM0XSgzMixLLEosQykpLDIpJiZCK1pbMF0+PTE5JiZULmNhbGwodGhpcyx6LDE5KSw3KT4+WlsxXTwyJiYoQl5aWzBdKT49MTcmJihLLnYuY2xlYXIoKSxLLmk9LTEsSy5NPS0xLEsuWD0tMSxhYy5sZW5ndGg8eiYmYWMucHVzaChLKSksQitaWzFdPj5aWzFdKXx8KEoudj1DP2tbMTJdKDM2LEsseik6Syksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQiY3Nyk9PSgoQiYoQi05Pj4oQT1bIm8iLDMsNTBdLEFbMV0pPT1BWzFdJiYoSyBpbnN0YW5jZW9mIGc0Pyh6LkE9SyxSWzQ4XSgxNCxudWxsLHouRix6LkEpKTooSnx8KEs9RFs0MV0oNzAsbnVsbCxoTSxLKSksei5BPW5ldyBnNChLLHouRikpLHY9eiksNTYpKT09QiYmS1tBWzBdXSE9eiYmKGRQKCksR2wuY2xlYXJUaW1lb3V0KEtbQVswXV0pLEtbQVswXV09eiksQikpe2ZvcihDPVtdLGI9ejtiPEsubGVuZ3RoO2IrKylDLnB1c2goS1tiXV5KW2JdKTt2PUN9cmV0dXJuKEIrCkFbMV0mMjUpPj1CJiYoQis4JkFbMl0pPEImJihKPUo9PT12b2lkIDA/bnVsbDpKLHY9a1s0Nl0oMTQsZnVuY3Rpb24ocCxRLG4pe3Auc3Vic2NyaWJlKG5ldyBmZyhRLGZ1bmN0aW9uKFope1EubmV4dCgobj1LLFopKX0sdm9pZCAwLChuPXosZnVuY3Rpb24oKXtufHxRLm5leHQoSiksUS5jb21wbGV0ZSgpfSkpKX0pKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtyZXR1cm4gZj1bInJjLWJ1dHRvbnMiLDIsInJjLWNvbnRyb2xzIl0sQis1Pj4zPj1mWzFdJiYoQjw8ZlsxXSY2KTxmWzFdJiYoUT1bXSxaPWZ1bmN0aW9uKEwpe0hbMTNdKChuKyssMTUpLHosYihMLE4rKykpLnN1YnNjcmliZShuZXcgZmcoQSxmdW5jdGlvbihyKXtBLm5leHQocil9LHZvaWQgMCxmdW5jdGlvbihyKXtmb3Iocj0obi0tLHt9KTtRLmxlbmd0aCYmbjx2O3I9e2VGOnZvaWQgMH0pci5lRj1RLnNoaWZ0KCksWihyLmVGKTshV3x8US5sZW5ndGh8fG58fEEuY29tcGxldGUoKX0pKX0sCm49QyxXPUosTj1DLHAuc3Vic2NyaWJlKG5ldyBmZyhBLGZ1bmN0aW9uKEwpe3JldHVybiBuPHY/WihMKTpRLnB1c2goTCl9LHZvaWQgMCxmdW5jdGlvbigpeyEoVz1LLFcpfHxRLmxlbmd0aHx8bnx8QS5jb21wbGV0ZSgpfSkpLHg9ZnVuY3Rpb24oKXtRPXp9KSwoQnw4KT09QiYmKEs9WyciPjwvZGl2PjxkaXYgY2xhc3M9IicsJyI+PGRpdiBjbGFzcz0iJywidW5kby1idXR0b24taG9sZGVyIl0seD1URCgnPGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy1mb290ZXIiKStLWzFdK1JbMTFdKDcxLCJyYy1zZXBhcmF0b3IiKStLWzBdK1JbMTFdKDczLGZbMl0pK0tbMV0rUlsxMV0oNzEsInByaW1hcnktY29udHJvbHMiKStLWzFdK1JbMTFdKDcsZlswXSkrS1sxXStSWzExXSg3MywiYnV0dG9uLWhvbGRlciIpK3orUlsxMV0oOSwicmVsb2FkLWJ1dHRvbi1ob2xkZXIiKStLWzBdK1JbMTFdKDksImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDM5LCJhdWRpby1idXR0b24taG9sZGVyIikrS1swXSsKUlsxMV0oNzEsImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDczLCJpbWFnZS1idXR0b24taG9sZGVyIikrS1swXStSWzExXSg3LCJidXR0b24taG9sZGVyIikreitSWzExXSg3MSwibGl2ZW5lc3MtYnV0dG9uLWhvbGRlciIpK0tbMF0rUlsxMV0oOSwiYnV0dG9uLWhvbGRlciIpK3orUlsxMV0oNzMsInFyLWJ1dHRvbi1ob2xkZXIiKStLWzBdK1JbMTFdKDcsImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDczLCJoZWxwLWJ1dHRvbi1ob2xkZXIiKStLWzBdK1JbMTFdKDcsImJ1dHRvbi1ob2xkZXIiKSt6K1JbMTFdKDczLEtbZlsxXV0pKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzMsInZlcmlmeS1idXR0b24taG9sZGVyIikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy1jaGFsbGVuZ2UtaGVscCIpKyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHRhYkluZGV4PSIwIj48L2Rpdj48L2Rpdj48L2Rpdj4nKSkseH0sZnVuY3Rpb24oQix6LEssSixDLApiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCh4PVsyNywiRiIsNDJdLChCLTl8NTgpPEIpJiYoQis2JjQ0KT49Qil7Zm9yKDt6PUhbeFsyXV0oMTMsbnVsbCx0aGlzKTspZVsxN10oMjMsMyxudWxsLHosdGhpcy52LHRoaXNbeFsxXV0sdGhpcyk7dGhpcy5SPSExfWlmKEItNT4+Mz09Mylmb3IoSj1LfHxbRTFdLEM9MDtDPEoubGVuZ3RoO0MrKylpZigoYj1tWzJdKDg5LEpbQ10pKSYma1sxMF0oMTAseixiKSYma1sxMF0oMix6LGIucGFyZW50RWxlbWVudHx8bnVsbCkpeyhiLnRhZ05hbWU9PWtzJiZiLmhhc0F0dHJpYnV0ZSh0TSgpKXx8Yi50YWdOYW1lPT1kNXx8Yi50YWdOYW1lPT1Venx8Yi50YWdOYW1lPT1NN3x8Yi50YWdOYW1lPT13UD9iLmRpc2FibGVkfHxiLmhhc0F0dHJpYnV0ZShJYygpKSYmIVJbMzNdKDE3LDAsYik6IWVbNF0oeFswXSwwLGIpKT9nWzI2XSgyMCwxLGIpLmZvY3VzKCk6Yi5mb2N1cygpO2JyZWFrfXJldHVybigoQi04Pj4zfHwoZj1HWzEzXSg4LGZ1bmN0aW9uKEwsCnIsVixQKXtQPVsxMCwoVj1bMywhMSw2XSwwKSwiczMiXTtzd2l0Y2goTC5NKXtjYXNlIEM6aWYoIWIuWCl0aHJvdyBFcnJvcigiY291bGQgbm90IGNvbnRhY3QgcmVDQVBUQ0hBLiIpO2lmKCFiLk0pcmV0dXJuIEwucmV0dXJuKEhbMV0oNzEsUFsxXSxLKSk7aWYodHlwZW9mIEEhPT0ic3RyaW5nInx8QS5sZW5ndGghPVZbMl0pcmV0dXJuIEwucmV0dXJuKEhbMV0oNzIsUFsxXSx6KSk7cmV0dXJuKEwuQShLKSxMKS52KGIuWCx6KTtjYXNlIHo6TC5GKFZbKG49TC5YLFApWzFdXSk7YnJlYWs7Y2FzZSBLOnRocm93IEwuaSgpLEVycm9yKCJjb3VsZCBub3QgY29udGFjdCByZUNBUFRDSEEuIik7Y2FzZSBWW1BbMV1dOnJldHVybiBwPXtwaW46QX0sVz17fSxRPShXW0Z4XT1iLnYsV1tCbF09T1syM10oOTAsZU4ocCksVltQWzFdXSksVyksTC5BKEopLEwudihuLnNlbmQoczMsUSwxRTQpLDcpO2Nhc2UgNzpyZXR1cm4gTj1MLlgsdj1uZXcgekgoTiksWj12W1BbMl1dKCksYi52PVlbMzRdKDMsCkssdiksYi52JiZaIT1LJiZaIT1WWzJdJiZaIT1QWzBdfHwoYi5NPVZbMV0pLHYubGsoKSYmKHI9di5saygpLGcwWzRdKDIsQVgscixQWzFdKSksTC5yZXR1cm4oSFsxXSg2OCxQWzFdLFosdi5kSCgpKSk7Y2FzZSBKOnRocm93IEwuaSgpLEVycm9yKCJ2ZXJpZnlBY2NvdW50IHJlcXVlc3QgZmFpbGVkLiIpO319KSksQikrMz4+Mz09MyYmKGY9KEM9eVszOF0oNjYseixKLEspKT09ej92b2lkIDA6Qy5hY3Rpb24pLChCJjEyMSk9PUIpJiYoZj1HWzEzXSgxNyxmdW5jdGlvbihMLHIsVixQKXtyPVsxMCwwLChQPVsiY2FsbCIsInYiLCJpIl0sOCldO3N3aXRjaChMLk0pe2Nhc2UgSzpMLkEoeiwzKSxWPWJbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLHA9ViE9PXZvaWQgMD9WW1BbMF1dKGIpOm5ldyBLQyhnWzEyXSgxMixiKSk7Y2FzZSBDOnJldHVybiBMW1BbMV1dKHAubmV4dCgpLHJbMl0pO2Nhc2UgclsyXTppZihuPUwuWCxuLmRvbmUpe0wuR18oMyk7YnJlYWt9KHY9bi52YWx1ZSxBKS5uZXh0KHYpLApMLkdfKEMpO2JyZWFrO2Nhc2UgMzppZihMLm0oKSxMLksoOSksIW58fG4uZG9uZXx8IShXPXAucmV0dXJuKSl7TC5HXyg5KTticmVha31yZXR1cm4gTFtQWzFdXShXW1BbMF1dKHApLDkpO2Nhc2UgOTppZihMLm0oclsxXSxyWzFdLEspLFEpdGhyb3cgUS5lcnJvcjtMLm8oclswXSxLKTticmVhaztjYXNlIHJbMF06TC5vKEopO2JyZWFrO2Nhc2UgejpaPUxbUFsyXV0oKSxRPXtlcnJvcjpafSxMLkdfKDMpO2JyZWFrO2Nhc2UgSjpBLmNvbXBsZXRlKCksTC5SKCl9fSkpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpe2lmKEIrMT4+KCgoKEJeNTEpJihCLShjPVs0LDExLCJQIl0sYylbMF0+PmNbMF18fChMRC5jYWxsKHRoaXMsNjU5LDEyKSx0aGlzLmRlPUhbMF0oNTksMCxkay5KKCksMTIxKSx0aGlzLk15PXRoaXMuVj10aGlzLm5xPXRoaXMua0o9dGhpcy5DPXRoaXMudVk9dGhpcy5sWT10aGlzLnpKPXRoaXMuTT10aGlzLmk9dGhpcy5FMz0KdGhpcy53Yj10aGlzLkRNPXRoaXMuSk89dGhpcy5YQz10aGlzLkQ9dGhpcy5CMT10aGlzLkk9dGhpcy5VPXRoaXMuUz10aGlzLlg9dGhpcy5pWT10aGlzLlFlPXRoaXMuVzE9dGhpcy5YZz10aGlzLks9dGhpcy5MPXRoaXMuZFY9dGhpcy5XPXRoaXMubz10aGlzLmc9dGhpcy5BTD10aGlzLkE9dGhpcy5HPXRoaXMuS3E9dGhpcy5mcT10aGlzLnBxPXRoaXMuaj10aGlzLkg9dGhpcy5CPS0xLHRoaXMubT10aGlzW2NbMl1dPS0xLHRoaXMuQmg9Z1s3XSgzNiksdGhpcy52dj1nWzddKDM2KSx0aGlzLk1qPWdbN10oNyksdGhpcy5hMD1nWzddKDcpLHRoaXMueUE9Z1s3XSgzOSksdGhpcy5udT1nWzddKDcpKSwxNSkpPj03JiYoQisyJjE2KTwyJiYoej16fHx7fSx4PXoudUIsVz1bJyBhcmlhLWxhYmVsbGVkYnk9IicsInJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyLWdpZiIsJyI+PC9kaXY+PC9kaXY+J10sbj16LmRpc2FibGVkLEs9ei5jaGVja2VkLFE9ei5JTyxiPXouYXR0cmlidXRlcyxmPQp6LkQzLHA9ei5pZCxyPXoucG8sTD1hWigpLE49JzxzcGFuIGNsYXNzPSInK1JbY1sxXV0oNywicmVjYXB0Y2hhLWNoZWNrYm94IikrIiAiK1JbY1sxXV0oMzksImdvb2ctaW5saW5lLWJsb2NrIikrKEs/IiAiK1JbY1sxXV0oMzksInJlY2FwdGNoYS1jaGVja2JveC1jaGVja2VkIik6IiAiK1JbY1sxXV0oOSwicmVjYXB0Y2hhLWNoZWNrYm94LXVuY2hlY2tlZCIpKSsobj8iICIrUltjWzFdXSg3MywicmVjYXB0Y2hhLWNoZWNrYm94LWRpc2FibGVkIik6IiIpKyh4PyIgIitSW2NbMV1dKDM5LHgpOiIiKSsnIiByb2xlPSJjaGVja2JveCIgYXJpYS1jaGVja2VkPSInKyhLP0pCKCk6Q0MoKSkrJyInKyhyP1dbMF0rUltjWzFdXSgzOSxyKSsnIic6IiIpKyhwPycgaWQ9IicrUltjWzFdXSg3MyxwKSsnIic6IiIpKyhuP2JmKCk6JyB0YWJpbmRleD0iJysoZj9SW2NbMV1dKDM5LGYpOm1nKCkpKyciJyksYj8oR1sxMF0oOTIsQUIsYik/QT1iLlZlKCk6KEM9U3RyaW5nKGIpLEE9dmwudGVzdChDKT8KQzpUSCgpKSxKPUEsR1sxMF0oODcsQUIsSikmJihKPUouVmUoKSksUD0oSiYmIUouc3RhcnRzV2l0aChvOSgpKT9vOSgpOiIiKStKKTpQPSIiLFo9T1s0MF0oOTcsTCxOK1ArJyBkaXI9Imx0ciI+Jyksdj12PXtJTzpRIT1udWxsP1E6bnVsbH0sVj1URCgodi5JTz8nPGRpdiBjbGFzcz0iJytSW2NbMV1dKDksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXIiKSsnIiByb2xlPSJwcmVzZW50YXRpb24iPjwvZGl2PjxkaXYgY2xhc3M9IicrUltjWzFdXSg3MywicmVjYXB0Y2hhLWNoZWNrYm94LWJvcmRlckFuaW1hdGlvbiIpKyciIHJvbGU9InByZXNlbnRhdGlvbiI+PC9kaXY+PGRpdiBjbGFzcz0iJytSW2NbMV1dKDcxLCJyZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lciIpKyciIHJvbGU9InByZXNlbnRhdGlvbiI+PGRpdiBjbGFzcz0iJytSW2NbMV1dKDcxLCJyZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lci1vdmVybGF5IikrV1syXTonPGRpdiBjbGFzcz0iJytSW2NbMV1dKDcxLFdbMV0pKwonIiByb2xlPSJwcmVzZW50YXRpb24iPjwvZGl2PicpKyc8ZGl2IGNsYXNzPSInK1JbY1sxXV0oNzEsInJlY2FwdGNoYS1jaGVja2JveC1jaGVja21hcmsiKSsnIiByb2xlPSJwcmVzZW50YXRpb24iPjwvZGl2PicpLHE9T1s0MF0oOTgsZ1syNV0oNTEsWixWKSwkVigpKSksQi0xXjI0KT49QiYmKEItNXw4MSk8QiYmKHRoaXMucHJvbWlzZT1LLHRoaXMucmVzb2x2ZT1KLHRoaXMucmVqZWN0PXopLGNbMF0pPT1jWzBdKWE6e2lmKGVbMjRdKChiPWI9PT12b2lkIDA/SW5maW5pdHk6Yiw1MSksSikpe3E9RFszMl0oNjQsITAsMCxiLGZ1bmN0aW9uKEUsUyl7cmV0dXJuIG1bNDhdKDIsSyxmdW5jdGlvbihhLHUpe3JldHVybiBKKEUsYSxTLHUpfSkoSFsxM10oMzksbnVsbCxDKEUsUykpKX0pO2JyZWFrIGF9dHlwZW9mIEo9PT0ibnVtYmVyIiYmKGI9SikscT1rWzQ2XSg0MCxmdW5jdGlvbihFLFMpe3JldHVybiBEWzMwXSgxNixudWxsLHosITEsSyxDLFMsYixFKX0pfXJldHVybihCPj4yJmNbMV0pPT0KMiYmKGI9Yj09PXZvaWQgMD8yOmIsRFs3XSgxNyxLLEouTSksdj1ZWzM0XShjWzFdLHosITAsQyxKKSxKLk0ucmVuZGVyKHYsbVs2XSg3NywiLSIsSi5pZCksU3RyaW5nKGdbMzJdKDQ5LHosMTAsSikpLEhbMl0oMjcsSi52LHdyKSksQT1KLk0uQSxxPUdbMzldKDkwLDEsSyxBLHYsbmV3IE1hcChbW3lnLEouWGddLFtqdCxKLlcxXSxbaUYsSi5LXSxbWUEsSi5KTF0sW3BDLEouTF0sW1EwLEouRmddLFt3aSxKLkRdLFtuQyxKLmtKXSxbWjQsZnVuY3Rpb24oRSxTKXtyZXR1cm4gT1tTPVs4LDIsNF0sMTNdKFNbMl0sU1swXSxTWzFdLDcsMjUsSixFKX1dLFtXbCxKLmlZXSxbZ3QsSi5HXSxbTlIsSi5BTF0sW08zLEouQl0sW0dMLEoubnFdXSksSixKLk8pLmNhdGNoKGZ1bmN0aW9uKEUsUyxhLHUpe2lmKCgoMCwodT1bMiwoUz1bImVuIiwwLCEwXSw0KSwwXSx0JCkuYlMpKCksSikua24uY29udGFpbnMoQSkpe2lmKChhPWItMSxhKT56KXJldHVybiBEWzMyXSgyNSxTWzFdLG51bGwsSixDLAphKTtKLk0uSyhZWzIxXSh1WzFdLFNbdVsyXV0sU1t1WzBdXSxKKSxtWzZdKDc4LCItIixKLmlkKSxTW3VbMF1dKX10aHJvdyBFO30pKSxxfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgodj1bOTcsNzMsInYiXSxCKXw1KT4+Mz09MSlhOntpZihiLk0hPT0wKXtBPXo7YnJlYWsgYX1BPShIWzI3XSg1LEMsSixIWzE2XSgzLGJbdlsyXV0pKSxLKX1yZXR1cm4oQl4oKEJeMjYpPj4oKEImNDEpPT1CJiYoSz1bInJjLXByZXBvc2l0aW9uYWwtdGFibG9vcC1iZWdpbiIsJyIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgdGFiaW5kZXg9IjAiPicsIiAiXSx6PU9bNDBdKDk5LGFaKCksJzxkaXYgaWQ9InJjLXByZXBvc2l0aW9uYWwiPjxzcGFuIGNsYXNzPSInK1JbMTFdKDcsS1swXSkrJyIgdGFiSW5kZXg9IjAiPjwvc3Bhbj48ZGl2IGNsYXNzPSInK1JbMTFdKDksInJjLXByZXBvc2l0aW9uYWwtc2VsZWN0LW1vcmUiKStLWzFdKSxnWzI1XSg2OCx6LCJQbGVhc2UgZmlsbCBpbiB0aGUgYW5zd2VycyB0byBwcm9jZWVkIiksCk9bNDBdKHZbMF0seiwnPC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtcHJlcG9zaXRpb25hbC12ZXJpZnktZmFpbGVkIikrS1sxXSksZ1syNV0oNTIseiwiUGxlYXNlIHRyeSBhZ2FpbiIpLE9bNDBdKDk5LGdbMjVdKDMsT1s0MF0oOTkseiwnPC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSh2WzFdLCJyYy1wcmVwb3NpdGlvbmFsLXBheWxvYWQiKSsnIj48L2Rpdj4nKSxEWzMwXSgxMSxLWzJdKSksJzxzcGFuIGNsYXNzPSInK1JbMTFdKDcxLCJyYy1wcmVwb3NpdGlvbmFsLXRhYmxvb3AtZW5kIikrJyIgdGFiSW5kZXg9IjAiPjwvc3Bhbj48L2Rpdj4nKSxBPXopLDQpfHwoQT1uZXcgemgoZnVuY3Rpb24ocCxRKXtmb3IoUT16O1E8Sy5sZW5ndGgmJiFwLmNsb3NlZDtRKyspcC5uZXh0KEtbUV0pO3AuY29tcGxldGUoKX0pKSwoQiY5Mik9PUImJihBPXo9PT1LKSw3OCkpPj40fHwoQT1URCgnPGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmMtYW5jaG9yLWVycm9yLW1zZy1jb250YWluZXIiKSsKJyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PHNwYW4gY2xhc3M9IicrUlsxMV0odlsxXSwicmMtYW5jaG9yLWVycm9yLW1zZyIpKyciIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9kaXY+JykpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQj4+KEI+Pih2PVsxLDMyLDI0XSwyKTw0JiYoQl41Nik+PjM+PXZbMF0mJihKPUsuTSxwPUoucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxKLndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZXx8Si5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEoub1JlcXVlc3RBbmltYXRpb25GcmFtZXx8Si5tc1JlcXVlc3RBbmltYXRpb25GcmFtZXx8eiksdlswXSkmOSk9PXZbMF0pYTp7aWYoKEshPShDPVshMSwwLCIhIl0sbnVsbCl8fChLPTEwMjQpLEE9SyE9PTAsIUEpJiYhZ2Qpe3A9SjticmVhayBhfWlmKCFZWzM3XSgxNCxKLEEpKXRocm93IGVbNl0oMjEseGIoKSk7Yj10eXBlb2YgSjtzd2l0Y2goSyl7Y2FzZSA1MTI6c3dpdGNoKGIpe2Nhc2UgInN0cmluZyI6cD0KUls0Ml0oMTQsQ1t2WzBdXSxKLHopO2JyZWFrIGE7Y2FzZSAiYmlnaW50IjpwPVN0cmluZyhENCg2NCxKKSk7YnJlYWsgYTtkZWZhdWx0OnA9UlsxOF0oMTYsQ1t2WzBdXSxKLHopO2JyZWFrIGF9Y2FzZSAxMDI0OnN3aXRjaChiKXtjYXNlICJzdHJpbmciOnA9T1t2WzJdXSh2WzFdLENbdlswXV0sNjQsSik7YnJlYWsgYTtjYXNlICJiaWdpbnQiOnA9R1szMV0oOTMsRDQoNjQsSikpO2JyZWFrIGE7ZGVmYXVsdDpwPWVbNl0oODAsITAsQ1t2WzBdXSxKKTticmVhayBhfWNhc2UgQ1t2WzBdXTpzd2l0Y2goYil7Y2FzZSAic3RyaW5nIjpwPVJbNDJdKDgsQ1t2WzBdXSxKLENbMF0pO2JyZWFrIGE7Y2FzZSAiYmlnaW50IjpwPUdbMzFdKDkxLEQ0KDY0LEopKTticmVhayBhO2RlZmF1bHQ6cD1ZWzQ2XSh2WzBdLENbdlswXV0sSixDWzBdKTticmVhayBhfWRlZmF1bHQ6cD15WzI3XSh2WzBdLENbMl0sSyk7YnJlYWsgYX19cmV0dXJuKEJ8dlsyXSk9PUImJihiPXlbMTVdKDQ0LEMudXJpKSxDLlFYJiYKRFsyOF0oMixKLGJOKEFlKCkqeikudG9TdHJpbmcoKStLK2IudixiKSxwPWIpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKCh2PVs5LDEsNDhdLChCLXZbMF18NjIpPj1CJiYoQi12WzBdfHZbMl0pPEImJihBPWZ1bmN0aW9uKHAsUSxuKXtmb3Iobj0oUT1bXSx7ZUs6MH0pO1EmJiFwLmNsb3NlZCYmbi5lSzxKLmxlbmd0aDtuPXtlSzpuLmVLfSxuLmVLKyspUS5wdXNoKEhbMTNdKDIzLHosSltuLmVLXSkuc3Vic2NyaWJlKG5ldyBmZyhwLGZ1bmN0aW9uKFope3JldHVybiBmdW5jdGlvbihXLE4pe2lmKFEpe2ZvcihOPUs7TjxRLmxlbmd0aDtOKyspTiE9PVouZUsmJlFbTl0udW5zdWJzY3JpYmUoKTtRPXp9cC5uZXh0KFcpfX0obikpKSl9KSwoQiYyNik9PUIpJiYoQT1nWzE2XSgyNix2b2lkIDAsSyx6LFFCKSksKEI8PHZbMV0mMjMpPDQpJiZCKzI+PjQ+PTIpYTp7aWYoIUope0E9SzticmVhayBhfUE9KGI9UlsyNl0oMjEsSix6KSxiPT09bnVsbHx8Yj09PXZvaWQgMD9DPQpLOihITCgpLEM9RFs0MF0oNjAsSyxiKSksQyl9aWYoKCgoQnwyKSYxNik8dlsxXSYmKEJ8dlswXSk+PTI2JiYoQz17fSxKPUo9PT12b2lkIDA/e306SixZWzE5XSgzOCx6LGZDKS5mb3JFYWNoKGZ1bmN0aW9uKHAsUSxuKXsobj1mQ1twXSxuLlAxKSYmKFE9SltuLmdldE5hbWUoKV18fHRoaXMuZ2V0KG4pKSYmKENbbi5QMV09USl9LEspLEE9QyksQiYyMSk9PUIpSFszOF0oMzQsbnVsbCx0aGlzKTtyZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEpe2lmKChCPj4yJjEzKT09KChCLTJeNyk8KChCPj4yJjEyKTwocT1bMTksMjAsMTI4XSwzKSYmQjw8MT49cVswXSYmSy5pbmZvKGZ1bmN0aW9uKCl7cmV0dXJuIlRJTUVPVVQ6ICIren0pLEIpJiYoQi0yXnFbMV0pPj1CJiYoUD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSyx6KSksNCkpYTp7aWYoYj09KEE9QT09PShXPVsxMDI0LCJyZmFyciIsMTAyM10sdm9pZCAwKT8KMDpBLG51bGwpKVE9MzIsSj8oYj1bSl0sUXw9cVsyXSk6Yj1bXSxDJiYoUT1RJi0xNjc2MDgzM3woQyZXWzJdKTw8MTQpO2Vsc2V7aWYoIUFycmF5LmlzQXJyYXkoYikpdGhyb3cgRXJyb3IoIm5hcnIiKTtpZigoUT1iW0EkXXwwLG9SKSYmeiZRKXRocm93IEVycm9yKFdbMV0pO2lmKDIwNDgmUSYmISgyJlEpJiZnWzEyXSgxNywxLDUsImNhcnIiKSxRJjI1Nil0aHJvdyBFcnJvcigiZmFyciIpO2lmKFEmNjQpe1A9KChRfEEpIT09USYma1szOF0oNzgsYixRfEEpLGIpO2JyZWFrIGF9aWYoSiYmKFF8PXFbMl0sSiE9PWJbMF0pKXRocm93IEVycm9yKCJtaWQiKTtiOntpZih4PShMPShmPWIsUXw2NCksZi5sZW5ndGgpKWlmKFo9eC16LFY9ZltaXSxWIT1udWxsJiZ0eXBlb2YgVj09PSJvYmplY3QiJiZWLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtpZigodj0oTj1MJnFbMl0/MDotMSxaLU4pLHYpPj1XWzBdKXRocm93IEVycm9yKCJwdnRsbXQiKTtmb3IociBpbiBWKXA9K3IscDx2JiYoZltwKwpOXT1WW3JdLGRlbGV0ZSBWW3JdKTtRPUwmLTE2NzYwODMzfCh2JldbMl0pPDwxNDticmVhayBifWlmKEMpe2lmKG49aFkoQyx4LShMJnFbMl0/MDotMSkpLG4+V1swXSl0aHJvdyBFcnJvcihLKTtRPUwmLTE2NzYwODMzfChuJldbMl0pPDwxNH1lbHNlIFE9TH19UD0oa1szOF0oOTQsYixRfDY0fEEpLGIpfXJldHVybigoQi02XjI3KT49QiYmKEIrOCY3OSk8QiYmTEMuY2FsbCh0aGlzLDgsUlIpLEJ8NTYpPT1CJiYoYj1uZXcgTWFwLEM9Qz09PXZvaWQgMD81RTM6QyxQPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsRSxTLGEpe2E9KEouYWRkRXZlbnRMaXN0ZW5lcigoUz0oYT1LLGZ1bmN0aW9uKHUsWCl7KFg9WyJwb3J0cyIsNjMsMTZdLHUuZGF0YT09PXJ0KSYmdVtYWzBdXS5sZW5ndGg+eiYmKGtbWFsyXV0oWFsxXSxhKSxKLnJlbW92ZUV2ZW50TGlzdGVuZXIoVjAoKSxTKSxjKG5ldyBHSCh1W1hbMF1dW3pdLGIsbnVsbCxHbC5sb2NhdGlvbi5vcmlnaW4pKSl9KSxWMCgpKSxTKSxPWzJdKDU2LApmdW5jdGlvbigpe0UoKEoucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsUyksRXJyb3IoIlRpbWVkIG91dC4iKSkpfSxDKSl9KSksUH0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCEoQi0oQz1bMTMsMTUsOF0sQylbMl0+PjMpKWZvcihKIGluIEspIWlzTmFOKEopJiZ6KEssK0osS1tKXSk7aWYoKEIrNV5DWzBdKTxCJiYoQi02fDI3KT49Qil7aWYoSz0oej16PT09dm9pZCAwP2cwWzNdKENbMl0sMCk6eix3aW5kb3dbaTNdW1NOKCldKVt6XSwhSyl0aHJvdyBFcnJvcigiSW52YWxpZCByZUNBUFRDSEEgY2xpZW50IGlkOiAiK3opO2I9a1tDWzJdXShDWzFdLCItIixLLmlkKS52YWx1ZX1yZXR1cm4gYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigoQnwoKChCJihuPVszNiwxLDNdLDEyMSkpPT1CJiYoQz1sLFE9UlsyNl0oMjEsSyxrW25bMV1dKDE1LEMsSyx6LEopLEMpKSxCKzY+Pm5bMl0pPT1uWzJdJiYoUT1LLmgqNDI5NDk2NzI5NisoSy5NeD4+PnopKSwKMikpPj5uWzJdPT1uWzFdKXtpZihLIT09bnVsbCYmSiBpbiBLKXRocm93IEVycm9yKCdUaGUgb2JqZWN0IGFscmVhZHkgY29udGFpbnMgdGhlIGtleSAiJytKK3opO0tbSl09Q31pZigoQi0yJjE1KT09blsxXSlhOmlmKHY9ITEscD1SWzE0XSg3NixudWxsLEEsYixDLGZ1bmN0aW9uKFosVyl7cmV0dXJuIHY9KFc9SFsyN10oMjcsMzIsSyxKLCExLFopLFchPT1aKSYmVyE9eixXfSkscCE9eil7UT0odiYmIXlbMl0oNixwKSYmSFtuWzBdXShuWzJdLEMsSykscCk7YnJlYWsgYX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEo9WyIiLDEwLG51bGxdLEIrNT4+NHx8KEs9R1tKWzFdXSg5MSx4aix6KT96OnogaW5zdGFuY2VvZiBJYj9URChtWzI2XSg2LEpbMF0seikudG9TdHJpbmcoKSk6VEQoU3RyaW5nKFN0cmluZyh6KSkucmVwbGFjZShEbCxZWzQ3XS5iaW5kKEpbMl0sMjYpKSx5WzM4XSg0OCwwLEpbMl0sMSx6KSkpLEt9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLApRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyl7aWYoKCgoQnw1Nik9PSh3PVsyLCJoIiw0XSxCKSYmKEo9SyxDPShiPU9bMzhdKDQxLHopKT9iLmNyZWF0ZVNjcmlwdFVSTChKKTpKLHN3PW5ldyBIbChDKSksQjw8MT49MTUmJihCfHdbMF0pPDI1JiYoc3c9R1szMV0oODcsZ1syMl0oMjMpP0JpZ0ludC5hc1VpbnROKDY0LChCaWdJbnQoSz4+PjApPDxCaWdJbnQoMzIpKStCaWdJbnQoej4+PjApKTprWzI2XSg2Myw4LHosSykpKSxCKSY0Nik9PUIpe2ZvcihXPVsxOCwxLCh4PShYPTAscT1LLk8sSy5YKSwxNildO1g8V1t3WzBdXTtYKyspRT1YKjgscVtYXT1uZXcgZXQoeFtFK3dbMl1dPDwyNHx4W0UrNV08PFdbd1swXV18eFtFKzZdPDw4fHhbRSs3XSx4W0VdPDwyNHx4W0UrV1sxXV08PFdbd1swXV18eFtFK3dbMF1dPDw4fHhbRSt6XSk7Zm9yKE09V1t3WzBdXTtNPDgwO00rKyljPXFbTS0xNV0sSj1jLk14LFU9cVtNLXdbMF1dLG49VS5NeCwKYj1VW3dbMV1dLEM9Y1t3WzFdXSxxW01dPUsuRihxW00tV1t3WzBdXV0scVtNLTddLG5ldyBldChKPj4+V1sxXV5DPDwzMV5KPj4+OF5DPDwyNF5KPj4+N15DPDwyNSxDPj4+V1sxXV5KPDwzMV5DPj4+OF5KPDwyNF5DPj4+NyksbmV3IGV0KG4+Pj4xOV5iPDwxM15iPj4+Mjlebjw8el5uPj4+Nl5iPDwyNixiPj4+MTlebjw8MTNebj4+PjI5XmI8PHpeYj4+PjYpKTtmb3IoTD0oWj1LLnZbUT0ocj0oaD1LLnZbNl0sSy52WzddKSxLLnZbd1syXV0pLCh2PUsudls1XSxhPTAsQT1LLnZbMF0sdylbcD1LLnZbV1sxXV0sMF1dLEsudlt6XSk7YTw4MDthKyspTj1BW3dbMV1dLGY9QS5NeCxQPShuZXcgZXQoZj4+PjI4Xk48PHdbMl1eTj4+PndbMF1eZjw8MzBeTj4+PjdeZjw8MjUsTj4+PjI4XmY8PHdbMl1eZj4+PndbMF1eTjw8MzBeZj4+PjdeTjw8MjUpKS5hZGQobmV3IGV0KEEuTXgmcC5NeHxwLk14JlouTXh8QS5NeCZaLk14LEFbd1sxXV0mcFt3WzFdXXxwW3dbMV1dJlpbd1sxXV18QVt3WzFdXSYKWlt3WzFdXSkpLFM9UVt3WzFdXSxkPVEuTXgsVj1RW3dbMV1dLHQ9US5NeCx1PUsuRihyLG5ldyBldChkPj4+MTReVjw8V1swXV5kPj4+V1swXV5WPDwxNF5WPj4+OV5kPDwyMyxWPj4+MTReZDw8V1swXV5WPj4+V1swXV5kPDwxNF5kPj4+OV5WPDwyMyksbmV3IGV0KHQmdi5NeHx+dCZoLk14LFMmdlt3WzFdXXx+UyZoW3dbMV1dKSxQbFthXSxxW2FdKSxyPWgsaD12LHY9USxRPUwuYWRkKHUpLEw9WixaPXAscD1BLEE9dS5hZGQoUCk7KCgoKChLLnZbMF09Sy52WzBdLmFkZChBKSxLKS52W1dbMV1dPUsudltXWzFdXS5hZGQocCksSy52W3dbMF1dPUsudlt3WzBdXS5hZGQoWiksSykudlt6XT1LLnZbel0uYWRkKEwpLEspLnZbd1syXV09Sy52W3dbMl1dLmFkZChRKSxLLnYpWzVdPUsudls1XS5hZGQodiksSy52WzZdPUsudls2XS5hZGQoaCksSy52KVs3XT1LLnZbN10uYWRkKHIpfWlmKCgoQl41NikmMTQpPT0oQj4+d1swXSYxM3x8KEM9RFs0OF0od1swXSwifFsiLCJdKyIsSix6KSkmJgooJGIudGVzdChDKT9KLnN0eWxlLnNldFByb3BlcnR5KEMsSyk6Si5zdHlsZVtDXT1LKSx3WzBdKSlhOntpZigoSz16LHFSPT09IiIpfHwheTApe3N3PUs7YnJlYWsgYX10cnl7Sj1mdW5jdGlvbihCOCl7cmV0dXJuIEI4fSxLPXkwLmNyZWF0ZVBvbGljeShxUix7Y3JlYXRlSFRNTDpKLGNyZWF0ZVNjcmlwdDpKLGNyZWF0ZVNjcmlwdFVSTDpKfSl9Y2F0Y2goQjgpe31zdz1LfXJldHVybiBzd30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKCgoKChCXigoQl41MSkmKCgoKChaPVsxMSwxMywyXSxCKSY0MSk9PUImJihRPW5ldyBZYihDLEEsdm9pZCAwLHYubCxmdW5jdGlvbihXKXtyZXR1cm4gZ1sxXSg3MCxudWxsLGNsLHYubFksVyl9KSxKJiZnWzE0XSg3MyxKLFEpLGImJlEucF8oYiksSyYmT1s0N10oMTksITAsSyxRKSxwJiZIWzQ1XSg2LCExLCEwLHosUSkseVsxMF0oNjUsMzYsUSx2KSxuPVEpLEItNyl8ODYpPEImJkItNjw8MT49QiYmKEM9bmV3IFN0LEMuc2V0U2Vjb25kcyhKLnYpLApZWzI2XSg0OSxaWzJdLEMsWVsxMF0oNjIseixKLk0pLEspLG49QyksWlswXSl8fChEWzIyXSg2OCxaWzJdLEssSiksSFszMF0oNSx6LEMubGVuZ3RoLEsudiksSFs0NV0oWlsyXSxLLnYuZW5kKCksSyksSFs0NV0oMyxDLEspKSwyMSkpPj40fHwoSj1ZWzI1XSg2LEsudiksbj15WzMzXSgyMSx6LEsudixKKSksQileWlsyXSkmMTUpPT00KWE6e2lmKHR5cGVvZiBKPT09InN0cmluZyIpe249KGI9ZW5jb2RlVVJJKEopLnJlcGxhY2UoSyxEWzIyXS5iaW5kKG51bGwsWlsxXSkpLEMmJihiPWIucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLG0wKCkpKSxiKTticmVhayBhfW49en1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe2lmKChCfDMyKT09KChCLTFeKEw9WzlFNSw1LDM0XSwxOSkpPj1CJiYoQi0xfDYpPEImJihyPUdbMTNdKDE3LGZ1bmN0aW9uKFYsUCl7cmV0dXJuKCgoKCgoKGY9KFo9KFc9bVtQPVsidG9TdHJpbmciLCJzcmMiLAoobj13aW5kb3cub3JpZ2luLCJhcHBlbmRDaGlsZCIpXSwzXSg4LEssIj8iLCIjIixKLG5ldyBNYXAoW1siZCIsQS55ZSgpXSxbIm9yaWdpbiIsbl1dKSx2KSxuZXcgVVJMKFlbMzFdKDIsVylbUFswXV0oKSxkb2N1bWVudC5iYXNlVVJJKSkub3JpZ2luLHg9bmV3IFByb21pc2UoZnVuY3Rpb24ocSl7Tj1xfSksbGYpKEUzKCkpLFJbMTddKDgsbnVsbCxKLEMsITEsZnVuY3Rpb24ocSxjLEUsUyxhLHUsWCxkKXtyZXR1cm4gR1sxM10oMTYsZnVuY3Rpb24odCxoLE0sVSl7VT0oTT1bMyw0LDVdLFsiUiIsMiwxXSk7c3dpdGNoKG1bVVsyXV0oMjgscSxLKSl7Y2FzZSBNWzBdOk4oeVsxNl0oMyxKLE1bVVsyXV0sWF8scSx1ZikpO2JyZWFrO2Nhc2UgTVtVWzJdXTpwJiZwKHlbMTZdKDUsSixNW1VbMV1dLFhfLHEsYVIpKTticmVhaztjYXNlIE1bVVsxXV06USYmKGg9eVsxNl0oMTksSiw2LFhfLHEsaEIpLFg9WVszNF0oNCxLLGgpLChhPWYuY29udGVudFdpbmRvd1tYXSkmJnR5cGVvZiBhPT09CiJmdW5jdGlvbiImJihFPWdbMTJdKDUsYS5jYWxsKGYuY29udGVudFdpbmRvdykpLGQ9RS5uZXh0KCkudmFsdWUsdT1FLm5leHQoKS52YWx1ZSxTPWQsYz11LFEoUyxjKSkpfXRbVVswXV0oKX0pfSxmLFopLGYpW1BbMV1dPVlbMzFdKDM1LFcpW1BbMF1dKCksZikud2lkdGg9ZHQoKSxmLmhlaWdodD1kdCgpLGYpLmFsbG93PVs5OSw5NywxMDksMTAxLDExNCw5N10ubWFwKGZ1bmN0aW9uKHEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHEpfSkuam9pbih6KSxmKS5zY3JvbGxpbmc9a2IoKSxmLnN0eWxlLm92ZXJmbG93PXZEKCksZi5zdHlsZSkuYm9yZGVyPXRCKCksZikuc3R5bGUubWFyZ2luPW1nKCksYilbUFsyXV0oZiksVi5yZXR1cm4oeCl9KSksQikpYTp7Zm9yKHY9ejt2PEMubGVuZ3RoOysrdilpZihBPUNbdl0sIUEubUEmJkEubGlzdGVuZXI9PUsmJkEuY2FwdHVyZT09ISFKJiZBLmRCPT1iKXtyPXY7YnJlYWsgYX1yPS0xfWlmKChCJjQ1KT09Qil7Zm9yKEo9KFE9KHA9KFo9CihLPSh6PXo9PT12b2lkIDA/ZzBbM10oMSwwKTp6LEspPT09dm9pZCAwP3t9OksseVtMWzJdXSg0MSxudWxsLHosSykpLFouSkIpLFouY2xpZW50KSxnWzEyXShMWzFdLEZPKHApKSksQz1KLm5leHQoKTshQy5kb25lO0M9Si5uZXh0KCkpaWYodj1DLnZhbHVlLCFbQjcuZ2V0TmFtZSgpLG1DLmdldE5hbWUoKSxLNS5nZXROYW1lKCldLmluY2x1ZGVzKHYpKXRocm93IEVycm9yKFUzKCkpO2lmKGI9cFtLNS5nZXROYW1lKCldKXtpZihuPWVbMzVdKDkwLG51bGwsYiksIW4pdGhyb3cgRXJyb3IoTVIoKSk7US5NLmw9bn1BPVEubChRLkYuYmluZChRLHd0LHAsTFswXSwhMSkpLHI9R1sxMV0oNDIsQSl9aWYoKEIrOCYxNik8TFsxXSYmKEI+PjEmOSk+PTcpYTp7aWYoKFE9KHY9Sy5XLEopLmluZGV4T2YoSVIoKSx2KSxRKT09LTEpe3I9Rl87YnJlYWsgYX1pZihDPShiPUouc3Vic3RyaW5nKHYsUSksTnVtYmVyKGIpKSxpc05hTihDKSl7cj1CSTticmVhayBhfWlmKEE9USt6LEErQz5KLmxlbmd0aCl7cj0KRl87YnJlYWsgYX1yPShLLlc9KHA9Si5zbGljZShBLEErQyksQSkrQyxwKX1yZXR1cm4gcn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe2lmKChCXjQ3KT4+KEItOTw8MTwocj1bIlIiLDI3LDBdLEIpJiYoQiszJjExKT49QiYmKG9nLmNhbGwodGhpcyksdGhpcy52PW5ldyBzMChLKSx0aGlzLmk9eix0aGlzLk09SyYmSy5hQXx8bnVsbCxDPUsmJksuVm98fG51bGwsSyYmSy5VeiYmKEM/Q1t6a109S3Q6Qz1KRih6ayxLdCkpLHRoaXMudi5PPUMsSj1LJiZLLk5ifHxudWxsLEsmJksuWEomJihKP0pbQ3RdPUsuWEo6Sj1KRihDdCxLLlhKKSksSyYmSy5ReSYmKEo/SltiNl09Sy5ReTpKPUpGKGI2LEsuUXkpKSx0aGlzLnYubnE9SiwocD1LJiZLLmdDKSYmIVJbMl0oMjQscCkmJih0aGlzLnYubD1wKSx0aGlzLkE9SyYmSy5mMXx8ITEsdGhpc1tyWzBdXT1LJiZLLmRUfHwhMSwoQT1LJiZLLmlCKSYmIVJbMl0oMTYsQSkmJihiPXRoaXMuTSx0aGlzLnYuUD0KQSxiIT09bnVsbCYmQSBpbiBiJiYodj10aGlzLk0sQSBpbiB2JiZkZWxldGUgdltBXSkpLHRoaXMuWD1uZXcgQUYodGhpcykpLChCPDwxJjExKT49OCYmKEItOCY4KTwyJiYoTD1tWzIzXShyWzFdLEosSyx6LGwpKSwzKT09Myl0aHJvdyBFcnJvcigiRG8gbm90IGluc3RhbnRpYXRlIGRpcmVjdGx5Iik7cmV0dXJuKChCPj4yJjE5KT49MTcmJihCLTImOCk8MyYmei52LnYuTVooSyxnWzM1XSg0OCx6Lk0pKS50aGVuKGZ1bmN0aW9uKFYpe3pbVj1bImwiLCJ2IiwiTSJdLFZbMl1dW1ZbMV1dJiYoeltWWzJdXVtWWzFdXS5XPXpbVlswXV0pfSksQis1XjIyKTxCJiYoQis0JjI1KT49QiYmKFo9WzAsMl0sTj1nWzI2XSg1OCxMUi5KKCksWlsxXSksZj1nWzEyXSgxMixOKSx4PWYubmV4dCgpLnZhbHVlLHY9Zi5uZXh0KCkudmFsdWUsVz1nWzddKDM3KSxwPWdbN10oNCksbj1nWzddKDcpLEE9W0hbNDRdKDQzLHYpLG1bNF0oMTQsQyx4KSxXLHZJKEosSFsxNV0oMjQseikseCxLKSxZW3JbMl1dKHJbMV0sCnAsT1syNV0oNyx2KSxPWzI1XSg3LEopKSxZW3JbMl1dKDI4LG4sWltyWzJdXSxaW3JbMl1dKSxwLHZJKHgsSFsxNV0oMzIsWlsxXSkseCksWVtyWzJdXSgyNSxiLE9bMjVdKDcsdiksT1syNV0oNyx4KSksWVtyWzJdXSgyNixXLFpbclsyXV0sWltyWzJdXSksbixIWzQ0XSg1MCx4KV0sKFE9TFIuSigpKS52LmFwcGx5KFEsZVszM10oclsxXSxOKSksTD1BKSxMfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKChCfDUpPj4oKEI8PChiPVs0LDI2NDIxNzI1NTUsMzZdLDEpJjEzKT49MTImJigoQl41NikmOCk8MiYmKEE9KEM9Sih6KCksMzIpKT9IWzhdKDQwLDU5MDkpKEMpKyIsIitIWzhdKGJbMl0sNzYxMCkoQyk6IiIpLDMpPT0yJiYoSj1KPT09dm9pZCAwPzA6SixDPSh0eXBlb2YgSz09PSJzdHJpbmciP1lbYlswXV0oNjAsSyxKKTpLK0opfHosQz0oQz4+MTZeQykqYlsxXSxDPShDPj4xNl5DKSpiWzFdLEE9Qz4+MTZeQyksQil8NDgpPT1CJiYoSz0xMjAwLEs9Sz09PXZvaWQgMD8KMjA6Syx6PXo9PT12b2lkIDA/VGs6eix0aGlzLnY9KG5ldyBVaW50OEFycmF5KGQwKDI4MTApKSkuZmlsbCgwKSx0aGlzLk09Syx0aGlzLlg9eiksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEImKGI9WzcsNzgsInB1c2giXSwzNSkpPT1CJiYoQz1bZ1sxNl0oYlsxXSx6KV0sSiYmQ1tiWzJdXShnWzE2XSg1NCxKKSksQT1SWzEzXSgzNyxIWzI1XSg0MyxPWzldKDIwLDIwKSxLKSxDKSksKEI8PDEmOCk8YlswXSYmKEI+PjImYlswXSk+PTEmJlQuY2FsbCh0aGlzLHopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYodj1bNDgsOCwidiJdLCEoQi02JjcpKXtmb3IoSj0oYj1SW3ZbMV1dKDU5LHRoaXMpLEM9W10sSz1PW3ZbMF1dKDY0LHRoaXMpLDEpO0o8ejtKKyspQy5wdXNoKE9bdlswXV0oMzIsdGhpcykpO3RoaXMueEpbYl09RFsxMV0oOSlbS10uYXBwbHkoRFsxMV0oMiksZVszM10oMTksQykpfWlmKChCJjM3KT09QilhOntpZih6Lk0pe0E9SFsoSz16Lk0sCnYpWzFdXSgxNCxLKS50aGVuKGZ1bmN0aW9uKHAsUSl7cmV0dXJuIG5ldyAoSy5zdWJzY3JpYmUoKFE9bmV3IGpNKHApLFEpKSxwdCkoUSl9KTticmVhayBhfUE9elt2WzJdXT96Llg/UHJvbWlzZS5yZXNvbHZlKG5ldyBRbyh6Llgselt2WzJdXSkpOnouQT9Qcm9taXNlLnJlc29sdmUobmV3IG50KHpbdlsyXV0pKTpQcm9taXNlLnJlc29sdmUobmV3IFpOKHouaSx6W3ZbMl1dKSk6UHJvbWlzZS5yZWplY3QoRXJyb3IoIkFuIEFQSSBrZXkgb3IgT0F1dGggdG9rZW4gc3RyZWFtIGlzIHJlcXVpcmVkIikpfXJldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEIrKHY9WzI1LCJBIiwxXSw5KSY2KTx2WzJdJiZCLTU+PXZbMl0pYTp7aWYoZ1s0MF0oNSwoQz1bITEsNSwhMF0sSy52KSkpe3A9Q1swXTticmVhayBhfWlmKCEoKEtbdlsxXV09Sy52LnYsYj1ZW3ZbMF1dKDY4LEsudiksQT1iPj4+MyxKPWImNyxKPj0wKSYmSjw9Q1t2WzJdXSkpdGhyb3cgRXJyb3IoKTtpZihBPAp6KXRocm93IEVycm9yKCk7Sy5NPShLLlg9KHA9Q1syXSxBKSxLLmk9YixKKX1yZXR1cm4oQi0yXnZbMF0pPEImJihCKzJeOCk+PUImJihwPVREKCdUeXBlIHlvdXIgYmVzdCBndWVzcyBvZiB0aGUgdGV4dCBzaG93bi4gVG8gZ2V0IGEgbmV3IGNoYWxsZW5nZSwgY2xpY2sgdGhlIHJlbG9hZCBpY29uLiA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj5MZWFybiBtb3JlLjwvYT4nKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoQis4Pj0tKEI+PihwPVszLCIoXiIsNl0sMikmN3x8KHY9V0lbQ10sdnx8KHY9QT1lWzExXSgyNSxDKSxKLnN0eWxlW0FdPT09dm9pZCAwJiYoYj0oa2U/Z3koKTpoWD9OcigpOm51bGwpK3lbMThdKDI0LHosSyxwWzFdLEEpLEouc3R5bGVbYl0hPT12b2lkIDAmJih2PWIpKSxXSVtDXT12KSxRPXYpLDM0KSYmKEItcFswXSZwWzJdKTxwWzBdKWE6e2lmKEsgaW5zdGFuY2VvZihiPQpiPT09dm9pZCAwP08wOmIseGspKXtRPUs7YnJlYWsgYX1mb3IoQz16O0M8Yi5sZW5ndGg7KytDKWlmKEo9YltDXSxKIGluc3RhbmNlb2YgRE4mJkoud0goSykpe1E9bmV3IHhrKEspO2JyZWFrIGF9fXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKHA9WzcxLCJYIiwiVyJdLEI+PjEmMTEpPT0xKXtmb3IoSz0oSj0oQT0oQz0oYj1bMSwiPC90ZD48L3RyPiIsJzxkaXYgY2xhc3M9IiddLHoudGV4dCksYlsyXStSWzExXSgzOSwicmMtcHJlcG9zaXRpb25hbC1jaGFsbGVuZ2UiKSsnIj48ZGl2IGlkPSJyYy1wcmVwb3NpdGlvbmFsLXRhcmdldCIgY2xhc3M9IicrUlsxMV0oNywicmMtcHJlcG9zaXRpb25hbC10YXJnZXQiKSsnIiBkaXI9Imx0ciI+PGRpdiB0YWJJbmRleD0iMCIgY2xhc3M9IicrUlsxMV0ocFswXSwicmMtcHJlcG9zaXRpb25hbC1pbnN0cnVjdGlvbnMiKSsnIj48L2Rpdj48dGFibGUgY2xhc3M9IicrUlsxMV0oMzksInJjLXByZXBvc2l0aW9uYWwtdGFibGUiKSsKJyIgcm9sZT0icmVnaW9uIj4nKSxoWSkoMCxkMChDLmxlbmd0aC0wKSksMCk7SzxKO0srKylBKz0nPHRyIHJvbGU9InByZXNlbnRhdGlvbiI+PHRkIHJvbGU9ImNoZWNrYm94IiB0YWJJbmRleD0iMCI+JytEWzM5XSgxLENbSypiWzBdXSkrYlsxXTt2PVREKEErIjwvdGFibGU+PC9kaXY+PC9kaXY+Iil9cmV0dXJuKCgoQiYxMDgpPT1CJiYoTEQuY2FsbCh0aGlzLDIwMzMsMjQsWzJdKSx0aGlzLkM9dGhpcy5WPXRoaXMuTT10aGlzLmk9dGhpcy5IPXRoaXMuUD10aGlzLkE9dGhpcy5VPXRoaXNbcFsyXV09LTEsdGhpcy5EPWdbN10oMzcpLHRoaXMuZz1nWzddKDQpLHRoaXMubT0tMSx0aGlzLks9Z1s3XSg1KSx0aGlzLm89LTEsdGhpcy5qPWdbN10oNiksdGhpc1twWzFdXT0tMSksQis2KSY3OSk+PUImJkIrNz4+MjxCJiZULmNhbGwodGhpcyx6KSx2fV19KCksaz1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKEItKFc9W251bGwsCjEyOCwiTSJdLChCLTh8MjMpPEImJihCLTl8MzkpPj1CJiYoeltXWzJdXS5sZW5ndGg9PT0wJiYoeltXWzJdXT16LnYseltXWzJdXS5yZXZlcnNlKCksei52PVtdKSxOPXpbV1syXV0ucG9wKCkpLDQpPDExJiZCKzU+PjM+PTApYTp7aWYoIXYpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO2lmKChwPSgoUT1lWzE4XSgzOSwoWj1IWzQ0XSg4LEopPyEhSi5jYXB0dXJlOiEhSixLKSkpfHwoS1t2Zl09UT1uZXcgZnQoSykpLFEuYWRkKHYsQSxDLFosYikpLHApLnByb3h5KXtOPXA7YnJlYWsgYX1pZigoKHAucHJveHk9KG49ZVsxXSg4MCksbiksbi5zcmM9SyxuKS5saXN0ZW5lcj1wLEspLmFkZEV2ZW50TGlzdGVuZXIpbzR8fChKPVopLEo9PT12b2lkIDAmJihKPXopLEsuYWRkRXZlbnRMaXN0ZW5lcih2LnRvU3RyaW5nKCksbixKKTtlbHNlIGlmKEsuYXR0YWNoRXZlbnQpSy5hdHRhY2hFdmVudChPWzM3XSgxNix2LnRvU3RyaW5nKCkpLG4pO2Vsc2UgaWYoSy5hZGRMaXN0ZW5lciYmCksucmVtb3ZlTGlzdGVuZXIpSy5hZGRMaXN0ZW5lcihuKTtlbHNlIHRocm93IEVycm9yKCJhZGRFdmVudExpc3RlbmVyIGFuZCBhdHRhY2hFdmVudCBhcmUgdW5hdmFpbGFibGUuIik7Tj1wLEFRKyt9aWYoQi0yPDwxPj1CJiYoQisyXjEzKTxCKW1bMzVdKDMsV1sxXSxXWzBdLEoseixEWzhdKDc1LEspKTtyZXR1cm4oQnw4MCk9PSgoQnw0OCk9PUImJihHWzI1XSg5LEssQSksSFsyNV0oMTYseixKLGZ1bmN0aW9uKHgsZil7ZVsyOF0oOSx4Pj4+QyxmPj4+QyxiKX0pKSxCKSYmKHRoaXMuWFg9dHlwZW9mIEFib3J0Q29udHJvbGxlciE9PSJ1bmRlZmluZWQiKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4oQnwxKTwoQis2Pj4oKChCfDcyKT09KHA9WzE5LDIsMjJdLEIpJiZ6LkYmJnouRi5KTihKLEspLEI+PnBbMV08cFswXSkmJihCLTkmMTUpPj0xMyYmTEQuY2FsbCh0aGlzLDcyNyw0LFsyXSksNCl8fChBPUE9PT12b2lkIDA/THQ6QSwodj1iLllBP3ZvaWQgMDoKRFsxMV0oMTApKT9rW3BbMl1dKDE2LHBbMV0sMywxNiw1LHYsQSkudGhlbihmdW5jdGlvbihuLFosVyl7cmV0dXJuIFo9KGJbVz1bMTEsIk0iLDg1XSxXWzFdXT1SNChuIT1KP246cnkoKSksSFsyMF0oMjcsV1swXSxiKSksSFs0NF0oV1syXSxaLFZvLEssYltXWzFdXSksen0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIEN9KTpQcm9taXNlLnJlc29sdmUoQykpLDE2KSYmQis1Pj0xMCYmKFE9SFsyNV0oMTIsbnVsbCxLLEoseik9PT1DP0M6LTEpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCJihBPVswLCJWYWx1ZSBvZiBmbG9hdC9kb3VibGUgZmllbGQgbXVzdCBiZSBhIG51bWJlciwgZm91bmQgIiw3XSw1MikpPT1CKXtpZihKPT1LKUM9SjtlbHNle2lmKHR5cGVvZiBKIT09Im51bWJlciIpdGhyb3cgRXJyb3IoQVsxXSt0eXBlb2YgSit6K0opO0M9Sn1iPUN9aWYoIShCLTMmMykpUltBWzJdXSgyMCxBWzBdLCEwLHZvaWQgMCxKLHosSyxDKTtyZXR1cm4gYn0sZnVuY3Rpb24oQiwKeixLLEope3JldHVybihCPj4oSz1bNyw0LDNdLChCLUtbMl1eMjApPj1CJiYoQi1LWzBdXktbMV0pPEImJihKPXo9PT1Haz8yOjQpLDEpJktbMF0pPEtbMl0mJkI+PjI+PS00MCYmVC5jYWxsKHRoaXMseiksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgpe2lmKChCJjEyNCk9PShYPVsxLCJ2IiwyXSxCKSl7Zm9yKEsgaW4gdGhpc1tYWzFdXT1bXSx0aGlzLlg9eix6KXRoaXNbWFsxXV0ucHVzaChLKTt0aGlzW1hbMV1dLnJldmVyc2UoKX1pZihCLTk8PFhbMl0+PUImJihCLTZeMzApPEIpe2ZvcihxPShKPShOPVsoTD1LLlgsMCksMyw0XSxaPU5bMF0sTlswXSksSy5GKTtKPEwubGVuZ3RoOylxW1orK109TFtKXTw8MjR8TFtKK1hbMF1dPDwxNnxMW0orWFsyXV08PDh8TFtKK05bWFswXV1dLEo9WipOW1hbMl1dO2ZvcihFPTE2O0U8NjQ7RSsrKW49cVtFLVhbMl1dfE5bMF0sZj1xW0UtMTVdfE5bMF0scVtFXT0oKHFbRS0KMTZdfE5bMF0pKygoZj4+Pjd8Zjw8MjUpXihmPj4+MTh8Zjw8MTQpXmY+Pj5OW1hbMF1dKXxOWzBdKSsoKHFbRS03XXxOWzBdKSsoKG4+Pj4xN3xuPDwxNSleKG4+Pj4xOXxuPDwxMylebj4+PjEwKXxOWzBdKXxOWzBdO2Zvcih4PShhPUtbKFE9KGM9S1tYWzFdXVtYWzJdXXxOWzBdLEtbWFsxXV1bQz0oVj0ocD1LW1hbMV1dW1hbMF1dfE5bMF0sS1tYWzFdXVtOWyhXPUtbWFsxXV1bN118TlswXSxYKVsyXV1dfE5bMF0pLE4pWzBdLE5bWFswXV1dKXxOWzBdLFgpWzFdXVs1XXxOW3Y9S1tYWzFdXVs2XXxOWzBdLDBdLEtbWFsxXV1bTlswXV18TlswXSk7Qzw2NDtDKyspcj0oViZhXn5WJnYpKyhISVtDXXxOWzBdKXxOWzBdLEE9VysoKFY+Pj42fFY8PHopXihWPj4+MTF8Vjw8MjEpXihWPj4+MjV8Vjw8NykpfE5bMF0sUD1yKyhxW0NdfE5bMF0pfE5bMF0sVz12LGI9QStQfE5bMF0sdj1hLGE9VixWPVErYnxOWzBdLFE9YyxTPSgoeD4+PlhbMl18eDw8MzApXih4Pj4+MTN8eDw8MTkpXih4Pj4+CjIyfHg8PDEwKSkrKHgmcF54JmNecCZjKXxOWzBdLGM9cCxwPXgseD1iK1N8TlswXTtLWygoKEtbWFsoS1tYW0tbWFsxXV1bTlswXV09S1tYWzFdXVtOWzBdXSt4fE5bMF0sMV1dW1hbMF1dPUtbWFsxXV1bWFswXV0rcHxOWzBdLEspW1hbMV1dW1hbMl1dPUtbWFsxXV1bWFsyXV0rY3xOWzBdLEtbWFsxXV1bTltYWzBdXV09S1tYWzFdXVtOW1hbMF1dXStRfE5bMF0sMV1dW05bWFsyXV1dPUtbWFsxXV1bTltYWzJdXV0rVnxOWzBdLEspW1hbMV1dWzVdPUtbWFsxXV1bNV0rYXxOWzBdLEtbWFsxXV0pWzZdPUtbWFsxXV1bNl0rdnxOWzBdLFgpWzFdXVs3XT1LW1hbMV1dWzddK1d8TlswXX1yZXR1cm4oQj4+WFsyXSY3KT09WFsyXSYmKHRoaXMuc3RhdHVzPXopLHV9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKCgoVz1bIk8iLDYsMTZdLEIrV1sxXSleOCk8QiYmKEIrOV4xMyk+PUIpaWYoQXJyYXkuaXNBcnJheShBKSlmb3IoUT16O1E8QS5sZW5ndGg7USsrKWtbNV0oOCwKMCxLLEosQyxiLEFbUV0pO2Vsc2Ugbj1IWzQ0XSg3LEopPyEhSi5jYXB0dXJlOiEhSixDPWtbMThdKDQ4LEMpLGdbMF0oOCxiKT9iW1dbMF1dLnJlbW92ZShTdHJpbmcoQSksQyxuLEspOmImJih2PWVbMThdKDM4LGIpKSYmKHA9T1syNF0oMzMsMCxDLEssQSx2LG4pKSYmUltXWzJdXSgyMCxwKTtyZXR1cm4gQj4+MiY3fHxkNC5pbmNsdWRlcyhLKXx8KGQ0LnB1c2goSyksZDQubGVuZ3RoPT09MSYmKEN4fHwoQ3g9d2luZG93W2VNKCldLHdpbmRvd1tlTSgpXT1HWzEyXS5iaW5kKG51bGwsV1syXSkpLFBJPXosJGt8fCgkaz1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbixYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3Blbj1xcix3ND1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuc2VuZCxYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuc2VuZD1pNiksWDI9eikpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi02Pj4oKEI8PDEmKEM9WzM4LDEwLDJdLDE2KSk8Q1syXSYmCihCXjkpPj1DWzFdJiYoYj1LP0subWFwKGZ1bmN0aW9uKEEsdixwKXtmb3Iodj1bXSxwPTA7cDxBLmxlbmd0aDtwKyspcCE9MSYmKHZbcF09QVtwXSk7cmV0dXJuIG5ldyBRNigoeiYmKHZbMV09ei15bytBWzFdKSx2KSl9KTpbXSksNCl8fCh0aGlzLk09eix0aGlzLnY9SyksKEIrOCYxNik8MTIpJiYoQl4xNSk+PS04MSYmKGI9eVtDWzBdXSg3LHZvaWQgMCxZW0NbMV1dKDQ1LG51bGwsSiksSyx6KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKChRPVsxMiwxNywxXSxCKV42MCk+PTI4JiYoKEJ8UVsyXSkmMTYpPDYpYTp7aWYoIUdsLmRvY3VtZW50JiYhR2wud2luZG93KXtwPXo7YnJlYWsgYX1mb3IoQT0odj1nW1FbMF1dKDMsW1lrLFBEXSksdikubmV4dCgpOyFBLmRvbmU7QT12Lm5leHQoKSlpZihDPXdpbmRvdy5sb2NhdGlvbi5ocmVmLGI9a1s0N10oNixBLnZhbHVlKSxDLmxhc3RJbmRleE9mKGIsSik9PUope3A9ejticmVhayBhfXA9S31pZigoQi02JjcpPj0KMiYmKEJeUVsxXSk+PjQ8UVsyXSYmVC5jYWxsKHRoaXMseiksIShCPDxRWzJdJlFbMF0pKXtmb3IoSz0oSj0oQz1SWzhdKDYzLChiPVtdLHRoaXMpKSxPWzQ4XSgzMSx0aGlzKSksUSlbMl07Szx6O0srKyliLnB1c2goT1s0OF0oMzEsdGhpcykpO3RoaXMueEpbQ109bmV3IChGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShKLFtudWxsXS5jb25jYXQoZVszM10oMzUsYikpKSl9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKChBPVsyLDEyLDRdLEI8PEFbMF0pJjE1KT49QVsyXSYmQitBWzJdPj5BWzJdPEFbMF0pe2lmKCEoSj1PW0FbMF1dKDMwLG1bNl0oNzYseixLKSxkb2N1bWVudCksSikpdGhyb3cgRXJyb3IoInJlQ0FQVENIQSBjbGllbnQgZWxlbWVudCBoYXMgYmVlbiByZW1vdmVkOiAiK0spO3Y9Sn1pZigoQjw8MSY3KT49KChCPj5BWzBdJjcpPT1BWzBdJiZ6LmtKLnB1c2goSyksMCkmJihCPj4xJjYpPDMpe2ZvcihDPShLPWdbQVsxXV0oOSwoSj1bXSwKeikpLEsubmV4dCgpKTshQy5kb25lO0M9Sy5uZXh0KCkpYj1DLnZhbHVlLGIgaW5zdGFuY2VvZiB6Sj9KLnB1c2goYik6Si5wdXNoKG5ldyB6SihiKSk7dj1KfXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoQi00Pj4obj1bIndob2xlVGV4dCIsMzYsM10sblsyXSkpKWE6e2lmKEEuTSE9PTApe1E9ejticmVhayBhfXlbMjldKDgwLEosYixIWzE2XSgzMyxBLnYpLEMpLFE9S31pZigoQjw8MiYzMSk9PTQpe2lmKEo9Sj09PXZvaWQgMD8hMTpKKXtpZihDJiZDLmF0dHJpYnV0ZXMmJih5WzIwXSgyNSx6LEMudGFnTmFtZSxiKSxDLnRhZ05hbWUhPWQ1KSlmb3IoQT1LO0E8Qy5hdHRyaWJ1dGVzLmxlbmd0aDtBKyspeVsyMF0oMjcseixDLmF0dHJpYnV0ZXNbQV0ubmFtZSsiOiIrQy5hdHRyaWJ1dGVzW0FdLnZhbHVlLGIpfWVsc2UgZm9yKHYgaW4gQyl5WzIwXSgyMyx6LHYsYik7aWYoQy5ub2RlVHlwZT09blsyXSYmKHA9QyxwW25bMF1dJiZ5WzIwXSgyNiwKeixwW25bMF1dLGIpKSxDLm5vZGVUeXBlPT0xKWZvcihDPUMuZmlyc3RDaGlsZDtDOylrWzldKDE3LDEwMCwwLEosQyxiKSxDPUMubmV4dFNpYmxpbmd9cmV0dXJuKCgoQiY1MCk9PUImJihKPVN0cmluZyh6KSxLLmkmJihKPUoudG9Mb3dlckNhc2UoKSksUT1KKSwoQl41MCk8MTgpJiZCLTk+PTEzJiZULmNhbGwodGhpcyx6KSxCKS04Pj40PT00JiYoSj16LlBvLEs9ei5HUSxRPU9bNDBdKDk3LGdbMjVdKDQsT1s0MF0oOTksYVooKSwiPGRpdj48ZGl2PjwvZGl2PiIpLGdbblsxXV0oblsyXSx7aWQ6SyxuYW1lOkp9KSksSWYoKSkpLFF9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEImKChCJigoQi04XjE5KT49KEo9WzE4LDkzLDddLEIpJiYoQiszXjI1KTxCJiZULmNhbGwodGhpcyx6KSw0NykpPT1CJiYoQz1LLnN0eWxlLmRpc3BsYXkhPXopLEpbMV0pKT09QiYmKEM9UHJvbWlzZS5yZXNvbHZlKGtbNDhdKEpbMl0sNCxKWzBdLHosSykpKSxDfSxmdW5jdGlvbihCLHosSyl7cmV0dXJuKChCXgoxOCkmMyk+PSgoQnwoSz1bbnVsbCwiTSIsIkkiXSw5KSk+PjR8fChvYi5jYWxsKHRoaXMpLHRoaXNbS1sxXV09W10pLDIpJiYoQjw8MiY0KTwxJiYoej10aGlzW0tbMl1dP3RoaXNbS1syXV0udGhlbihmdW5jdGlvbihKKXtyZXR1cm4gbmV3IGNJKEopfSk6UHJvbWlzZS5yZXNvbHZlKEtbMF0pKSx6fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKEJ8Nyk+Pih2PVsxMCwzMSwzOV0sNCkpKWlmKEs8eilrW3ZbMl1dKDIyLHosei1LKSxiPWdbMTJdKDMsR1t2WzFdXSg2LDEseE8sT08pKSxKPWIubmV4dCgpLnZhbHVlLEM9Yi5uZXh0KCkudmFsdWUseE89Qz4+PnosT089Sj4+Pno7ZWxzZSBrW3ZbMl1dKDIxLHosSyk7cmV0dXJuKEIrNiYoKEI8PDImKChCfDcyKT09QiYmKEs/Si50YWJJbmRleD16OihKLnRhYkluZGV4PS0xLEoucmVtb3ZlQXR0cmlidXRlKFNNKCkpKSksMTMpKT49OSYmKEI8PDImMTYpPDYmJlQuY2FsbCh0aGlzLHosMCxtcC5SVCksNTkpKT49QiYmKEIrN14KdlswXSk8QiYmKEE9ej9LP2RlY29kZVVSSSh6LnJlcGxhY2UoLyUyNS9nLGw2KCkpKTpkZWNvZGVVUklDb21wb25lbnQoeik6IiIpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCgoeD1bInYiLCJVMCIsM10sQil8MjQpPT1CKXtmb3Iodj0oUT1uZXcgRTAsZ1sxMl0oOSxDLm8pKSxBPXYubmV4dCgpOyFBLmRvbmU7QT12Lm5leHQoKSlXPWdbMTJdKDQsQS52YWx1ZSksTj1XLm5leHQoKS52YWx1ZSxuPVcubmV4dCgpLnZhbHVlLGI9bmV3IFh5LHA9a1s2XSgyOCx6LGIsTiksWj1rWzZdKDU4LEsscCxuKSxnWzFdKDY1LEosWHksUSxaKTtmPVF9cmV0dXJuKEJeKCgoQnx4WyhCJjk0KT09QiYmKHRoaXMuZWxlbWVudD1KLHRoaXNbeFswXV09eix0aGlzLmRlcHRoPUssdGhpcy5NPUMpLDJdKSYxMCk+PTQmJihCKzQmMTYpPDE1JiZ0aGlzW3hbMF1dJiZHWzQ4XSgxNSw0LHRoaXMpLDQ4KSk+PTE3JiYoQnx4WzJdKTwyNiYmeiYmKHRoaXMuTVt4WzBdXVt4WzFdXSh6LnZpc2libGUpLApHWzE1XSgzNikuc3R5bGUuaGVpZ2h0PWR0KCkpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYpe2lmKCEoVj1bMSwzMiw0XSwoQnxWWzJdKT4+VlsyXSkpe2lmKFo9KE49KFE9KGdbNDFdKChuPVsyLDAsMTAyNF0sNDgpLGIpLFIpWzE3XSg1OCxuW1ZbMF1dLHZvaWQgMCxuWzBdLEMsSyx6LGIpLFlbMTRdKDMzLFZbMl0sblsyXSxRPT09UVA/NzpRW0EkXXxuW1ZbMF1dKSkpIT1udWxsP046MTAyNCxwKWlmKEFycmF5LmlzQXJyYXkoSikpZm9yKFc9bltWWzBdXSxmPUoubGVuZ3RoO1c8ZjtXKyspUS5wdXNoKEEoSltXXSxaKSk7ZWxzZSBmb3IoTD1nWzEyXSgxMixKKSx4PUwubmV4dCgpOyF4LmRvbmU7eD1MLm5leHQoKSlRLnB1c2goQSh4LnZhbHVlLFopKTtlbHNle2lmKHYpdGhyb3cgRXJyb3IoKTtRLnB1c2goQShKLFopKX1yPWJ9aWYoKEImNTkpPT1CKWlmKGI9WzEyNyw3LDBdLGJOKEopLEo+PWJbMl0pSFszMF0oMyxiW1ZbMF1dLEosSyk7CmVsc2V7Zm9yKEM9YlsyXTtDPDk7QysrKUsudi5wdXNoKEomYlswXXx6KSxKPj49YltWWzBdXTtLLnYucHVzaChWWzBdKX1yZXR1cm4oQnxWWzFdKT09QiYmVC5jYWxsKHRoaXMseikscn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKChaPVsiTSIsMiwwXSxCJjkwKT09QiYmKFE9S1taWzBdXSxDPVsxLDIsMTZdLHA9Sy52LEE9UVtwK0NbWlsyXV1dLHY9UVtwKzNdLGI9UVtwK1pbMl1dLEo9UVtwK0NbMV1dLGdbMTRdKDYzLHosSyksbj1iPDxaWzJdfEE8PDh8Sjw8Q1taWzFdXXx2PDwyNCksQisxPj0yMiYmKEI+PjEmOCk8NCl7aWYoKEE9KEo9eltLPShDPXoudixbMTI4LDEyNyw3XSksWlswXV0sSltDKytdKSxiPUEmS1sxXSxBKSZLW1pbMl1dJiYoQT1KW0MrK10sYnw9KEEmS1sxXSk8PEtbWlsxXV0sQSZLW1pbMl1dJiYoQT1KW0MrK10sYnw9KEEmS1sxXSk8PDE0LEEmS1taWzJdXSYmKEE9SltDKytdLGJ8PShBJktbMV0pPDwyMSxBJktbWlsyXV0mJihBPUpbQysrXSwKYnw9QTw8MjgsQSZLW1pbMl1dJiZKW0MrK10mS1taWzJdXSYmSltDKytdJktbWlsyXV0mJkpbQysrXSZLW1pbMl1dJiZKW0MrK10mS1taWzJdXSYmSltDKytdJktbWlsyXV0pKSkpKXRocm93IEVycm9yKCk7a1s0M10oMjMseixDKSxuPWJ9cmV0dXJuKEJ8NDgpPT1CJiYobj1uZXcgdTYpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCEoKEJeNzMpJih4PVsyLCJjbGVhclRpbWVvdXQiLDY2XSwxMykpKXtmb3IoUT0odj0oTj0ocD0oVz0obj1bIiIsMywwXSxuW3hbMF1dKSxhNCkoU3RyaW5nKEopKS5zcGxpdChlQygpKSxhNCkoU3RyaW5nKEspKS5zcGxpdChlQygpKSxoWSkocC5sZW5ndGgsTi5sZW5ndGgpLG4pW3hbMF1dO1c9PW5beFswXV0mJlE8djtRKyspe2I9TltDPXBbUV18fG5bMF0sUV18fG5bMF07ZG97aWYoKFo9KEE9LyhcZCopKFxEKikoLiopLy5leGVjKEMpfHxbIiIsIiIsIiIsIiJdLC8oXGQqKShcRCopKC4qKS8uZXhlYyhiKXx8ClsiIiwiIiwiIiwiIl0pLEFbblt4WzBdXV0ubGVuZ3RoPT1uW3hbMF1dKSYmWltuW3hbMF1dXS5sZW5ndGg9PW5beFswXV0pYnJlYWs7Vz0oQz1BW25bMV1dLFkpWzQ3XSg2NCwoYj1aW25bMV1dLEFbMV0ubGVuZ3RoPT1uW3hbMF1dPzA6cGFyc2VJbnQoQVsxXSx6KSksWlsxXS5sZW5ndGg9PW5beFswXV0/MDpwYXJzZUludChaWzFdLHopKXx8WVs0N10oeFsyXSxBW3hbMF1dLmxlbmd0aD09blt4WzBdXSxaW3hbMF1dLmxlbmd0aD09blt4WzBdXSl8fFlbNDddKDY3LEFbeFswXV0sWlt4WzBdXSl9d2hpbGUoVz09blt4WzBdXSl9Zj1XfWlmKChCfCgoQnx4WzBdKTwzMyYmKEJ8Myk+PTE1JiZULmNhbGwodGhpcyx6KSwyNCkpPT1CKUdsW3hbMV1dKHopO3JldHVybihCLTkmNyk9PTEmJih6PVJbOF0oNTYsdGhpcyksSj1PWzQ4XSg2Myx0aGlzKSxLPU9bNDhdKDMxLHRoaXMpLHRoaXMueEpbel09SltLXSksZn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoQi0KKChCKzgmMTUpPj0oTj1bOSw1LCJxeCJdLDQpJiZCKzc8MTYmJihXPW1bMjJdKDMwKT8hMTpEWzIwXSgxNSx6KSksTilbMV0mMTEpPT0zKWE6e2lmKEM9PT0obj0ocD1KLmxlbmd0aCxuZXcgaEYocCtiLCExKSksMCkpe2ZvcihBPXo7QTxwO0ErKyluW05bMl1dKEEsSi5IMShBKSk7Yj56JiZuW05bMl1dKHAseiksVz1uO2JyZWFrIGF9Zm9yKFo9dj16O1o8cDtaKyspUT1KLkgxKFopLG5bTlsyXV0oWixRPDxDJjEwNzM3NDE4MjN8diksdj1RPj4+Sy1DO2I+eiYmbltOWzJdXShwLHYpLFc9bn1yZXR1cm4gQi0oKEJeNDIpPj40PDQmJigoQl4xNikmNyk+PTYmJihXPUdbMTNdKE5bMF0sZnVuY3Rpb24oeCxmKXtyZXR1cm4gZj1bbnVsbCwzOSwiIl0sKEo9SFtmWzFdXSg3Myx6LGdbMTRdKDIsZHkpKSk/eC5yZXR1cm4oUls0N10oNzQsSyxKLGVbMjBdKDEsZlsyXSx6KSkudGhlbihmdW5jdGlvbihMKXtyZXR1cm4ga2soa1s0NV0oMjQsTCkpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pKToKeC5yZXR1cm4oZlswXSl9KSksTlsxXSk+PjM+PTImJihCXjM5KTwxMiYmKFc9WVswXSgyOCx0RiwxLDEpKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChCLTUmNik9PSgoQi01XigoQi0oKEImOTEpPT0odj1bMjksIk0iLCJyZW1vdmUiXSxCKSYmKENbdlsyXV0oSiksYi5sZW5ndGg+eiYmKEMuWD1LLEMudi5zZXQoa1s5XSgyLEosQyksbVt2WzBdXSgyMixiKSksQ1t2WzFdXSs9Yi5sZW5ndGgpKSwxKSYxNSk+PTAmJkI+PjI8NyYmKEE9KG5ldyB5NihrWzQ3XSg2LHopKSkuWCksMTkpKTxCJiYoQi00fDU5KT49QiYmKEE9UlsxM10oMTQsSFsyNV0oNTgsT1s5XSgyMywyNykseiksW2dbMTZdKDc4LEspXSkpLDIpKWE6e2lmKHR5cGVvZiB6PT09ImZ1bmN0aW9uIil7QT16O2JyZWFrIGF9QT0oeltVMF18fCh6W1UwXT1mdW5jdGlvbihwKXtyZXR1cm4gei5oYW5kbGVFdmVudChwKX0pLHpbVTBdKX1yZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosClcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEpe2lmKChCJihCLTU8PChTPVswLDEsMl0sUylbMV0+PUImJihCK1NbMl0mNjIpPEImJihjYi5jYWxsKHRoaXMsQyksdGhpcy50eXBlPU1yLHRoaXMua2V5Q29kZT16LHRoaXMucmVwZWF0PUopLDYwKSk9PUIpYTp7aWYoSz0oej1rWzE1XSgzMyx0aGlzLnYpLHRoaXMueEpbel0pLEsgaW5zdGFuY2VvZiB0WCl7YT0oKEo9RFs0NF0oMTYsU1swXSx6LHRoaXMuSCksSykudihKKSxLKVt3eSgpXTticmVhayBhfWE9S31pZigoQis5JjE1KTwoKEI+PlNbMl0mNik9PVNbMl0mJih0aGlzLmk9eix0aGlzLlg9Six0aGlzLk09Syx0aGlzLnY9QyksNSkmJkIrOD49LTQyKXtpZihLJihDPUotKHA9WzE1LChMPVNbMF0sMSksMzI3NjddLHApW1NbMV1dPj4+cFtTWzFdXSxwW1NbMV1dKSl7Zm9yKHE9U1tjPXRoaXMuSDEoKEs+Pj1wW1NbMV1dLEspKSxyPWMmcFtTWzJdXSwwXTtxPEM7cSsrKUU9ei5IMShxKSxQPShjPj4+cFtTWzBdXSktKEUmcFtTWzJdXSktCkwsTD1QPj4+cFtTWzBdXSZwW1NbMV1dLHRoaXMucXgoSytxLChQJnBbU1syXV0pPDxwW1NbMF1dfHImcFtTWzJdXSksYz10aGlzLkgxKEsrcStwW1NbMV1dKSxyPShjJnBbU1syXV0pLShFPj4+cFtTWzBdXSktTCxMPXI+Pj5wW1NbMF1dJnBbU1sxXV07aWYoKHRoaXMucXgoSytxLChMPShOPShjPj4+cFtRPXouSDEocSksU1swXV0pLShRJnBbU1syXV0pLUwsTj4+PnBbU1swXV0pJnBbU1sxXV0sKE4mcFtTWzJdXSk8PHBbU1swXV18ciZwW1NbMl1dKSksSytxK3BbU1sxXV0pPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIGJvdW5kcyIpOyhKJnBbU1sxXV0pPT09MCYmKGM9dGhpcy5IMShLK3ErcFtTWzFdXSkscj0oYyZwW1NbMl1dKS0oUT4+PnBbU1swXV0pLUwsTD1yPj4+cFtTWzBdXSZwW1NbMV1dLHRoaXMucXgoSyt6Lmxlbmd0aCxjJjEwNzM3MDkwNTZ8ciZwW1NbMl1dKSl9ZWxzZXt2PVNbMF07Zm9yKEs+Pj1wW1NbMV1dO3Y8ei5sZW5ndGgtcFtTWzFdXTt2KyspQT0KdGhpcy5IMShLK3YpLFo9ei5IMSh2KSxiPShBJnBbU1syXV0pLShaJnBbU1syXV0pLUwsTD1iPj4+cFtTWzBdXSZwW1NbMV1dLG49KEE+Pj5wW1NbMF1dKS0oWj4+PnBbU1swXV0pLUwsTD1uPj4+cFtTWzBdXSZwW1NbMV1dLHRoaXMucXgoSyt2LChuJnBbU1syXV0pPDxwW1NbMF1dfGImcFtTWzJdXSk7dGhpcy5xeCgoKEomcFtMPShmPShWPVNbMF0sKHg9dGhpcy5IMShLK3YpLFc9ei5IMSh2KSx4JnBbU1syXV0pLShXJnBbU1syXV0pLUwpLGY+Pj5wW1NbMF1dJnBbU1sxXV0pLFNbMV1dKT09PTAmJihWPSh4Pj4+cFtTWzBdXSktKFc+Pj5wW1NbMF1dKS1MLEw9Vj4+PnBbU1swXV0mcFtTWzFdXSksSyt2KSwoViZwW1NbMl1dKTw8cFtTWzBdXXxmJnBbU1syXV0pfWE9TH1yZXR1cm4gYX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVybihCKzcmNik+PSgoQnw0OCk9PSgoWj1bMjMsMTYsImxhYmVsLWlucHV0LWxhYmVsIl0sQl45KT4+NHx8KEE9QT09PXZvaWQgMD8KWWooKSszRTM6QSx2PXY9PT12b2lkIDA/WWooKSszRTMrMjUwOnYsdGhpcy5Idj1BLHRoaXMuVj1DLFE9UT09PXZvaWQgMD9nMFs0XS5iaW5kKG51bGwsMjApOlEsdGhpcy5URT1KLHRoaXMud2Y9dixwPXA9PT12b2lkIDA/ZzBbNF0uYmluZChudWxsLDI1KTpwLHRoaXMub1Q9Yix0aGlzLm9qPXAsdGhpcy5maT1RLHRoaXMuRlA9eix0aGlzLkdvPUspLEIpJiYodGhpcy5PYz0hMCx6PXRoaXMudSgpLFJbMjddKFpbMV0seixaWzJdKSxHWzI5XSgyMixudWxsKXx8T1syNl0oWlswXSwiIix0aGlzKXx8dGhpcy5SfHwhdGhpcy51KCl8fCh0aGlzLnUoKS52YWx1ZT0iIikpLDIpJiYoQi05JjE0KTwxMyYmKG49Sj09Sz9JNCgpOko9PXo/SkIoKTpDQygpKSxufSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihCJihKPVs1LCJYIiw2NV0sKEI+PjImSlswXSk+PTEmJihCXjQwKT4+SlswXTw0JiYoZVs0NF0oMjMsei52KSxSWzE3XSgzMSx6LnYpLGVbNDRdKDEsei52KSxDPXouWXcoKSksNjIpKT09CkImJih0aGlzLnY9bnVsbCx6PVsiUmVjYXB0Y2hhTUZyYW1lLnNob3ciLCJSZWNhcHRjaGFNRnJhbWUudG9rZW4iLCJSZWNhcHRjaGFNRnJhbWUuc2hvd24iXSx0aGlzLk09bnVsbCx0aGlzW0pbMV1dPW51bGwsSz10aGlzLGdbNDZdKEpbMl0sZnVuY3Rpb24oYixBKXtLLk0obmV3IEZ0KG51bGwsbmV3IGJtKGItMjAsQSkpKX0selswXSksZ1s0Nl0oODEsZnVuY3Rpb24oYixBLHYpe0suWChuZXcgRnkoe3Zpc2libGU6diE9PXZvaWQgMD92OiEwLHV5Om5ldyBibShiLEEpfSkpfSx6WzJdKSxnWzQ2XShKWzJdLGZ1bmN0aW9uKGIsQSl7Sy52KGIsQSl9LHpbMV0pKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSl7aWYoKEJ8KEpZPVs0MywiY3JlYXRlRWxlbWVudCIsMV0sODgpKT09Qil7aWYoVj0odD0oRT0oKGY9KHN3PShNPXlbMl0oMzgsKGQ9WzgsMiwzMl0sUSksYikpPzE6QSwKbiYmIU0pLHY9ISF2fHxzdz09PTMsKHN3PT09Mnx8ZikmJllbMThdKDgseixRKSkmJihDPVEuYVQsYj1DW0EkXXx6KSxtWzM0XSg3LG51bGwsQyxLLEopKSxFPT09UVA/NzpFW0EkXXx6KSxnWzI0XShKWVsyXSxkW0pZWzJdXSxiLHQpKSxyPSEoNCZWKSl7Zm9yKEw9IShhPSEoWj0hIShkWyhjPShOPShQPVM9eixWKSxFKSxKWSlbMl1dJihXPWIsTikpLFomJihXfD1kW0pZWzJdXSksWiksMCk7UzxjLmxlbmd0aDtTKyspWD1IWzI3XSgyOSxkWzJdLFcscCwhMSxjW1NdKSxYIGluc3RhbmNlb2YgcCYmKFp8fCh1PXlbMl0oNixYKSxhJiYoYT0hdSksTCYmKEw9dSkpLGNbUCsrXT1YKTtWPShOPShQPChOfD00LFMpJiYoYy5sZW5ndGg9UCksTCk/TiYtNDA5NzpOfDQwOTYsYSk/TnxkWzBdOk4mLTl9aWYoKFYhPT10JiYoa1szOF0oOTMsRSxWKSxkW0pZWzJdXSZWJiZUSihFKSksZikmJiEoZFswXSZWfHwhRS5sZW5ndGgmJihzdz09PTF8fChzdyE9PTQ/MDpkW0pZWzJdXSZWfHwhKDE2JlYpJiYKZFsyXSZiKSkpKXtmb3IocT0odz0oeD0obVs1XSgxNSw0LFYpJiYoRT1nMFsyXShKWVsyXSxFKSxWPUhbSllbMF1dKDI5LGRbSllbMl1dLFYsYiksYj1ZWzI1XSgzMixFLEosYixLLEMpKSx6KSxFKSxWKTt4PHcubGVuZ3RoO3grKylVPXdbeF0saD1EW0pZWzJdXSg1Nix6LFUpLFUhPT1oJiYod1t4XT1oKTtrWzM4XSg3OCxFLChWPXE9KHF8PWRbMF0sdy5sZW5ndGg/cXw0MDk2OnEmLTQwOTcpLFYpKX1COD1FPURbMTBdKDIsZFtKWVsyXV0sc3cscixDLFYsdixFLEssSixiKX1pZigoQj4+SllbMl0mMTUpPT0oQj4+SllbMl0+PTEyJiYoQjw8SllbMl0mMjUpPDUmJih0aGlzLnY9dGhpcy5NPW51bGwsdGhpcy5pPSEhSyx0aGlzLlg9enx8bnVsbCksMikpe2E6e2lmKHY9KG49eihLfHxCVSxKKSxDfHxIWzE3XSgyNyw5KSksbiYmbi5YP2I9bi5YKCk6KGI9dltKWVsxXV0oc2kpLHA9T1s3XSgyLG51bGwsbiksYi5pbm5lckhUTUw9bVsyNl0oMywiIixwKSksYi5jaGlsZE5vZGVzLmxlbmd0aD09CkpZWzJdJiYoUT1iLmZpcnN0Q2hpbGQsUS5ub2RlVHlwZT09SllbMl0pKXtBPVE7YnJlYWsgYX1BPWJ9Qjg9QX1pZigoKChCfDQ4KT09QiYmem8oZnVuY3Rpb24oKXt0aHJvdyB6O30pLEIpfDIpPj4zPT0yKWE6e2lmKEE9QT09PXZvaWQgMD9MdDpBLCFLMCl7aWYocD0oUT1iLm5hdmlnYXRvcik9PW51bGw/dm9pZCAwOlEudXNlckFnZW50RGF0YSwhcHx8dHlwZW9mIHAuZ2V0SGlnaEVudHJvcHlWYWx1ZXMhPT0iZnVuY3Rpb24ifHxwLmJyYW5kcyYmdHlwZW9mIHAuYnJhbmRzLm1hcCE9PSJmdW5jdGlvbiIpe0I4PVByb21pc2UucmVqZWN0KEVycm9yKCJVQUNIIHVuYXZhaWxhYmxlIikpO2JyZWFrIGF9SzA9KHR5cGVvZihnWzQyXSgzMixKLEpZWzJdLChwLmJyYW5kc3x8W10pLm1hcChmdW5jdGlvbihiMyx6OCxqTixaRyl7cmV0dXJuIHo4PShqTj0oWkc9WyJicmFuZCIsMSwidmVyc2lvbiJdLG5ldyBKeiksbVsyM10oMjYsYjNbWkdbMF1dLGpOLFpHWzFdKSksbVsyM10oMjUsYjNbWkdbMl1dLAp6OCx6KX0pKSxwKS5tb2JpbGU9PT0iYm9vbGVhbiImJmVbSllbMF1dKDc3LEMwLHAubW9iaWxlLHopLHAuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoQSkpfUI4PSh2PW5ldyBTZXQoQSksSzApLnRoZW4oZnVuY3Rpb24oYjMsejgsak4pe3JldHVybigoKCgoejg9ZVszMV0oMzQsITAsKGpOPVsibW9kZWwiLCJoYXMiLDIzXSxDMCkpLHYpW2pOWzFdXShiNCgpKSYmbVtqTlsyXV0oMzEsYjMucGxhdGZvcm0sejgsSyksdltqTlsxXV0oQXooKSkpJiZtW2pOWzJdXSgyOCxiMy5wbGF0Zm9ybVZlcnNpb24sejgsNCksdilbak5bMV1dKHZVKCkpJiZtW2pOWzJdXSgyMSxiMy5hcmNoaXRlY3R1cmUsejgsQyksdltqTlsxXV0oVG8oKSkpJiZtW2pOWzJdXSgyMSxiM1tqTlswXV0sejgsNiksdltqTlsxXV0oakUoKSkmJm1bak5bMl1dKDI5LGIzLnVhRnVsbFZlcnNpb24sejgsNyksejgpLnllKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBDMC55ZSgpfSl9cmV0dXJuIEI4fSxmdW5jdGlvbihCLHosCkssSixDLGIsQSl7cmV0dXJuKEIrKGI9WyJXIiwiRWRnZSIsOF0sKEJ8Nik+PjQ+PTImJigoQnw3KSZiWzJdKTw1JiYoblEuY2FsbCh0aGlzKSx0aGlzLlg9eix0aGlzLnY9Six0aGlzLlI9Qyx0aGlzW2JbMF1dPXAwW0tdfHxwMFsxXSksYlsyXSkmNyk+PTUmJkItNDwyMiYmKEE9bVsyMl0oMjYpP2dbMjhdKDExLCEwLFFVKTooRFsyMF0oMzcsIkNocm9tZSIpfHxEWzIwXSgzNSx6KSkmJiFrWzE3XSg0LGJbMV0pfHx5WzQ1XSgxNywiU2lsayIpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCPj4xJigoKChMPVshMCw4LDYyXSxCLTEpfDMyKTxCJiYoQi00XjYpPj1CJiYoej1SW0xbMV1dKExbMl0sdGhpcyksdGhpcy54Slt6XT1udWxsKSxCLTQ8TFsxXSYmKEIrOSY3KT49MyYmIWcwWzNdKDI1LEsuWCkmJiFLLkYmJihLLkY9TFswXSxlWzVdKDE2LExbMF0sSy5CMSxLKSxLLlU9eiksQi1MWzFdJjE1KXx8KGY9R1sxM10oOSxmdW5jdGlvbihyLApWLFApe2lmKFY9WyhQPVszMiwzLDFdLDEpLDIsMTJFNF0sci5NPT1LKXJldHVybiByLnYoWVs2XSg2LFZbMF0sQSksVltQWzJdXSk7Zm9yKG49KFo9KFc9KHA9KFE9Z1sxMl0oNCwodj1yLlgsdikpLFEubmV4dCgpLnZhbHVlKSxOPVEubmV4dCgpLnZhbHVlKSxwKSxEYXRlLm5vdygpKTtBLmkubGVuZ3RoPkMmJkEuaVtBLmkubGVuZ3RoLUtdPD1uLVZbMl07KUEuaS5wb3AoKTtyZXR1cm4oeD1BLmkubGVuZ3RoLHg+SyYmQS5NKG5ldyBuMCkscikucmV0dXJuKFlbUFswXV0oUFsyXSx6LEMsVltQWzJdXSxKLGIsR1szNl0oUFsxXSxWWzBdLDQsVyxaKSx4LEEuRixBLlApKX0pKSwxNSkpPT0zKXtmb3IoYj16O2I8Si5sZW5ndGg7YisrKUE9YitiTihLKCkqKEoubGVuZ3RoLWIpKSxDPWdbMTJdKDEsW0pbQV0sSltiXV0pLEpbYl09Qy5uZXh0KCkudmFsdWUsSltBXT1DLm5leHQoKS52YWx1ZTtmPUp9cmV0dXJuIGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKHA9WyJ2IiwKMiwiY2FsbCJdLEItM3wzOCk8QiYmKEItMV44KT49QiYmKFlbMzVdKDEseixLKSxLLlcmJihHbC5jbGVhclRpbWVvdXQoSy5XKSxLLlc9eiksT1sxMF0oMTYseixLKSxLLlguY2FuY2VsKCksSy5GJiYodHlwZW9mIEsuRj09PSJudW1iZXIiJiZHbC5jbGVhclRpbWVvdXQoSy5GKSxLLkY9eikpLEIrcFsxXSY3KT09Myl7Zm9yKEs9KHo9KGI9KEM9KEo9Uls4XSg2MCx0aGlzKSxbXSksbVs4XSgzOSkpLE9bNDhdKDMxLHRoaXMpKSk/eitaYjpaYixBPTA7QTxLLmxlbmd0aDtBKyspQ1tBXT1iW3BbMl1dKEssQSk7dGhpcy54SltKXT1DfWlmKChCK3BbMV0mNTgpPEImJihCKzMmNjApPj1CKVRbcFsyXV0odGhpcyx6KTtyZXR1cm4oQl4xOSk+PjR8fCh0aGlzW3BbMF1dPVtdKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCxqTixaRyxuRCx2OCxmRCxvWixRcSxUOCxtbCxHOCwKcEQsS0spe2lmKCEoKEJeNjQpPj4oKEIrNyYoKEIrMyYoKEImKChCPj4ocEQ9WyIiLDE2LDBdLDIpJjExKT09MSYmQyYmKChBPShiPSh2PUpbTWFdKSE9ej92OkpbTWFdPW5ldyBXVSlbS10pIT16P0E6YltLXT1bXSkucHVzaChDKSw5MCkpPT1CJiYodGhpcy52PXopLDI1KSk8QiYmKEItNV44KT49QiYmVC5jYWxsKHRoaXMseiksNykpPj01JiYoKEJeNjEpJnBEWzFdKTw0JiYoSz4+Pj1wRFsyXSx2PVs0Mjk0OTY3Mjk2LDIsMUU3XSxKPj4+PXBEWzJdLEo8PTIwOTcxNTE/bj1wRFswXSsodltwRFsyXV0qSitLKTooZ1syMl0oMTkpP0M9cERbMF0rKEJpZ0ludChKKTw8QmlnSW50KDMyKXxCaWdJbnQoSykpOihwPUo+PnBEWzFdJjY1NTM1LEE9KEs+Pj4yNHxKPDx6KSYxNjc3NzIxNSxiPXAqdlsxXSxRPUErcCo4MTQ3NDk3LFo9KEsmMTY3NzcyMTUpK0EqNjc3NzIxNitwKjY3MTA2NTYsWj49dlsyXSYmKFErPVovdlsyXT4+PnBEWzJdLFolPXZbMl0pLFE+PXZbMl0mJihiKz1RL3ZbMl0+Pj4KcERbMl0sUSU9dlsyXSksQz1iK0hbNDBdKHBEWzFdLFEpK0hbNDBdKDE3LFopKSxuPUMpLEtLPW4pLDQpKSlhOntpZigoZkQ9WzIsMzI3NjcsMV0sZj1KLmxlbmd0aCxmKT09PTApe0tLPXBEWzBdO2JyZWFrIGF9aWYoZj09PTEpe0tLPShDPT09KG49Si5QbChwRFsyXSkudG9TdHJpbmcoSyksITEpJiZKLnNpZ24mJihuPSItIituKSxuKTticmVhayBhfWlmKChvWj0oYz0oSlk9KHI9KGQ9ZiozMC1ndyhKLkgxKGYtZkRbMl0pKSxOT1tLXS1mRFsyXSksKChkKk9pKyhyLWZEWzJdKSkvcnxwRFsyXSkrZkRbMl0+PmZEWzJdKSxIWzhdKDEsZkRbMl0sMTUsbnVsbCwzMCxnWzM5XSg1LHBEWzJdLEspLGdbMzldKDYscERbMl0sSlkpKSksYy5QbChwRFsyXSkpLGMubGVuZ3RoPT09MSkmJm9aPD1mRFsxXSl7Zm9yKHc9KFY9bmV3IGhGKEoubGVuZ3RoLCExKSxWLmlrKCkscD1KLmxlbmd0aCpmRFtwRFsyXV0tZkRbMl0scERbMl0pO3A+PXBEWzJdO3AtLSlQPXc8PDE1fEouQ2cocCksVi5HUyhwLApQL29afHBEWzJdKSx3PVAlb1p8cERbMl07YT13LnRvU3RyaW5nKEspfWVsc2V7Zm9yKHU9KEU9KChNPSh2OD1uZXcgKChRcT0obWw9Si5sNSgpLShVPSh4PWMseC5sNSgpKSxxPXgubGVuZ3RoLFUpLG5ldyBoRihtbCtmRFtwRFsyXV0+Pj5mRFsyXSwhMSkpLFFxKS5paygpLGhGKShVK2ZEW3BEWzJdXT4+PmZEWzJdLCExKSx2OC5paygpLGd3KHguQ2coVS1mRFsyXSkpKS0xNSxNPnBEWzJdKSYmKHg9a1sxN10oOCxwRFsyXSwzMCx4LE0scERbMl0pKSx6OD1rWzE3XSgxMixwRFsyXSwzMCxKLE0sZkRbMl0pLHY9eC5DZyhVLWZEWzJdKSxtbCkscEQpWzJdO0U+PXBEWzJdO0UtLSl7aWYoWj0oaD1mRFsxXSx6OC5DZyhFK1UpKSxaIT09dilmb3IoRzg9KFo8PDE1fHo4LkNnKEUrVS1mRFsyXSkpPj4+cERbMl0saD1HOC92fHBEWzJdLGI9RzgldnxwRFsyXSxaRz14LkNnKFUtZkRbcERbMl1dKSxqTj16OC5DZyhFK1UtZkRbcERbMl1dKTt4aShoLFpHKT4+PnBEWzJdPihiPDx6fGpOKT4+PnBEWzJdJiYKIShoLS0sYis9dixiPmZEWzFdKTspO2ZvcihBPShUOD1wRFsyXSxTPShuRD1wRFsyXSxwRClbdD14LHN3PXEsMl0saCksTj12ODtTPHN3O1MrKylMPXQuSDEoUyksVz14aShMPj4+MTUsQSksWD14aShMJmZEWzFdLEEpKygoVyZmRFsxXSk8PDE1KStUOCtuRCxUOD1XPj4+MTUsbkQ9WD4+PjMwLE4ucXgoUyxYJjEwNzM3NDE4MjMpO2lmKE4ubGVuZ3RoPnN3KWZvcihOLnF4KHN3KyssbkQrVDgpO3N3PE4ubGVuZ3RoOylOLnF4KHN3KysscERbMl0pO2Vsc2UgaWYobkQrVDghPT0wKXRocm93IEVycm9yKCJpbXBsZW1lbnRhdGlvbiBidWciKTsoYjM9ejgudkUodjgsRSxVK2ZEWzJdKSxiMyE9PTAmJihiMz16OC5ZYyh4LEUsVSksejguR1MoRStVLHo4LkNnKEUrVSkrYjMmZkRbMV0pLGgtLSksRSZmRFsyXSk/dT1oPDwxNTpRcS5xeChFPj4+ZkRbMl0sdXxoKX1hPShWPSh6OC5CWShNKSxRcSksQjg9ejguZTAoKSxrWzI2XSg2NyxwRFsxXSxLLEI4LCEwKSl9Zm9yKFE9KFYuZTAoKSxrWzI2XSg2NSwKcERbMV0sSyxWLCEwKSk7YS5sZW5ndGg8Slk7KWE9IjAiK2E7Qz09PSExJiZKLnNpZ24mJihRPSItIitRKSxLSz1RK2F9cmV0dXJuIEtLfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQi04fDM4KTwoKHA9WyIuIiwyMSw1XSxCKS1wWzJdPj0yMiYmKEI+PjImOCk8cFsyXSYmSyYmZVsyNF0oMjAscFswXSxudWxsLHosSyksQikmJihCLTJ8MzMpPj1CKWtbNl0oNTYseixLLEopO3JldHVybiBCLTE+PjM9PTEmJihDPVsyLCIiLDQwXSx2PTEsYj1EWzQ0XShwWzFdLDAsQ1syXStLLHouSCksQT1ZWzJdKDQ4LENbMV0sQ1swXSksdGhpcy52PWZ1bmN0aW9uKG4sWixXLE4pe2ZvcihOPShXPVs4MiwxLDYxXSxXKVswXTtOIT03MjspTj09MjU/Tj1uPT09WiYmdj09PTE/V1syXTo1MzpOPT1XWzBdPyhaPURbNDRdKDIwLDAsSyx6LkgpLE49MjUpOk49PVdbMl0/KHY9RFs0NF0oMTksMCxXWzFdLGIpLE49NzIpOk49PTUzJiYodj0tMSxKPXZvaWQgMCxOPTcyKX0seFYodGhpcyx3eSgpLAp7Z2V0OmZ1bmN0aW9uKG4sWixXLE4seCxmLEwscil7Zm9yKHI9KEw9WzgyLDEzLCJoYXMiXSw1MCk7ciE9OTQ7KWlmKHI9PTY3KXI9eC5kb25lPzU5OjE2O2Vsc2UgaWYocj09NTApTj1bMiwiIiwwXSxXPVlbMl0oNDksTlsxXSxOWzBdKSxaPU5bMl0sbj1nWzEyXSgxLFcpLHg9bi5uZXh0KCkscj04ODtlbHNle2lmKHI9PUxbMV0pcmV0dXJuIHY9MSxKO3I9PTUxPyhmPURbNDRdKDE3LE5bMl0sMSxiKSxyPTIpOnI9PTk2Pyh4PW4ubmV4dCgpLHI9NjcpOnI9PTI/cj12PT09Zj9MWzFdOjQzOnI9PUxbMF0/cj01OTpyPT00Mz8oSj12b2lkIDAsdj0tMSxyPTk0KTpyPT04OD9yPTY3OnI9PTU5P3I9WjxOWzBdPzQzOjUxOnI9PTE2PyhBW0xbMl1dKHgudmFsdWUpJiZaKysscj05KTpyPT05JiYocj1aPT09Mj9MWzBdOjk2KX19LmJpbmQobnVsbCl9KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoQis0XjEyKT49KCgoKChXPVszNSwiWCIsInYiXSxCKSYKNzQpPT1CJiYodGhpc1tXWzJdXT16LHRoaXMuTT1LLHRoaXMuaT1KLHRoaXNbV1sxXV09QyksQis2KSYxMyk9PTEmJihOPVREKCdUYXAgdGhlIGNlbnRlciBvZiB0aGUgb2JqZWN0cyBpbiB0aGUgaW1hZ2UgYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMgYWJvdmUuICBJZiBub3QgY2xlYXIsIG9yIHRvIGdldCBhIG5ldyBjaGFsbGVuZ2UsIHJlbG9hZCB0aGUgY2hhbGxlbmdlLjxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3JlY2FwdGNoYSIgdGFyZ2V0PSJfYmxhbmsiPkxlYXJuIG1vcmUuPC9hPicpKSxCKSYmKEIrOSY1OCk8QilhOntpZihiPT1DKXtOPWI7YnJlYWsgYX1pZih0eXBlb2YgYj09PSJiaWdpbnQiKXtOPShqNyhiKT9uPU51bWJlcihiKToodj1ENChLLGIpLG49ajcodik/TnVtYmVyKHYpOlN0cmluZyh2KSksbik7YnJlYWsgYX1pZighZ2Qpe049YjticmVhayBhfWlmKFlbMzddKDEyLGIseikpe2lmKHR5cGVvZiBiPT09Im51bWJlciIpe049WVs0Nl0oOSwKSixiLHopO2JyZWFrIGF9Tj0oRGI/KFlbMzddKDQsYix6KSxwPVpmKE51bWJlcihiKSksTnUocCk/Wj1wOihBPVJbNDJdKDEwLEosYix6KSxRPU51bWJlcihBKSxaPU51KFEpP1E6QSkpOlo9Uls0Ml0oMTEsSixiLHopLFopO2JyZWFrIGF9fWlmKChCPj4xJjI2KT09Mil7aWYoIUouTSl7Zm9yKHYgaW4gYj1KW0pbV1syXV18fGdbNl0oNzUsSyx6LEopLEE9e30sV1syXV0sYilBW2Jbdl1dPXY7Si5NPUF9Tj0ocD1wYXJzZUludChKLk1bQ10sMTApLGlzTmFOKHApKT8wOnB9cmV0dXJuIE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoISgoQl4oKChMPVs1LCJ2Iiw0Ml0sKEItOHwxMDApPEIpJiZCKzk+PjE+PUImJlQuY2FsbCh0aGlzLHopLChCLUxbMF18TFsyXSk8QikmJihCKzZeOCk+PUImJih0aGlzW0xbMV1dPXosdGhpcy5NPUspLDYwKSk+PjMpKWE6e2lmKHouTSE9PTAmJnouTSE9PTIpe2Y9ITE7YnJlYWsgYX1mPSgoQz1PWzIyXSgzMywyLApLLEtbQSRdfDAsSiksei5NPT0yKT9PWzQ3XSg2LGtbTFsyXV0uYmluZChudWxsLDQpLHosQyk6Qy5wdXNoKGtbMTVdKDQwLHpbTFsxXV0pKSwhMCl9cmV0dXJuKEI+PjI+PTIyJiZCPj4yPDI4JiYoQz1IWzRdKDg5LEssSix2b2lkIDAsdm9pZCAwLGVbMzVdLmJpbmQobnVsbCxMWzBdKSksZj1DPT16P21bTFsyXV0oNDkpOkMpLChCfExbMF0pPj4zKT09MyYmKHY9WzQsMyw1XSxXPWdbMjZdKDkwLExSLkooKSx2WzFdKSxOPWdbMTJdKDMsVykseD1OLm5leHQoKS52YWx1ZSxuPU4ubmV4dCgpLnZhbHVlLHA9Ti5uZXh0KCkudmFsdWUsQT1nWzddKDYpLGI9Z1s3XSgzOSksWj1bSFs0NF0oNDYsSiksRFs0M10oMjAseixDLG4sSyxiKSxSWzE5XSg5LHgsSFsxNV0oMzIsdlsyXSksbiksWVswXSgyOCxBLE9bMjVdKDksSiksT1syNV0oTFswXSx4KSksdkkoeCxIWzE1XSg2NCx2WzBdKSx4KSx2SShwLEhbMTVdKDI0LDcpLHgpLFlbMF0oMjQsYixPWzI1XShMWzBdLHApLCExKSxSWzE5XSg0MCwKSixDLEspLFlbMF0oMjYsYix6LHopLEEsUlsxOV0oNzIsSixIWzE1XSg0OCx2WzFdKSxuKSxiLEhbNDRdKDUwLHgpLEhbNDRdKDQ3LG4pLEhbNDRdKDUxLHApXSwoUT1MUi5KKCkpW0xbMV1dLmFwcGx5KFEsZVszM10oMTksVykpLGY9WiksZn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKCh2PVsiTSIsImNhbGwiLDQzXSxCKTw8MiY3fHwocFFbdlsxXV0odGhpcyksdGhpcy52PXosdGhpcy5pPUt8fDAsdGhpc1t2WzBdXT1KLHRoaXMuWD1SeCh0aGlzLlZ3LHRoaXMpKSxCfDMyKT09QiYmKGI9ZnVuY3Rpb24oKXtDfHwoQz16LEooKSl9LGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUifHxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIj9KKCk6KEM9Syx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihmMCgpLGIsSyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIob0goKSxiLEspKSksQnwzKT4+NDwxJiYoQnwyKT49LTg0JiYoR0RbdlsxXV0odGhpcyxMMC53aWR0aCwKTDAuaGVpZ2h0LEVtKSx0aGlzLkM9bnVsbCx0aGlzLnY9bmV3IGVZLHlbdlsyXV0oNTksdGhpcy52LHRoaXMpLHRoaXMuWD1uZXcgcW0seVt2WzJdXSh2WzJdLHRoaXMuWCx0aGlzKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEpe2lmKCEoKHE9WzYsInJjLWltYWdlc2VsZWN0LWRlc2Mtd3JhcHBlciIsNThdLEIpLXFbMF0+PjMpJiYoSj1bIm51bWJlciIsInBhZGRpbmciLDJdLFE9bVsyXSg5MywicmMtaW1hZ2VzZWxlY3QtZGVzYyIsSy5DKSxuPW1bMl0oOTEsInJjLWltYWdlc2VsZWN0LWRlc2Mtbm8tY2Fub25pY2FsIixLLkMpLEw9UT9ROm4pKXtmb3IoQz0oKHA9KHg9KHI9KChBPW1bWj15WzI2XShxWzJdLHJFLChWPXlbMjZdKDQ4LFJILEwpLEwpKSwyXSg4OSxxWzFdLEsuQyksVz1PWzQzXSg5NixLLlIpLndpZHRoLUpbMl0qbVsxMl0oNTMsIlJpZ2h0IixBLEpbMV0pLmxlZnQsUSkmJihOPW1bMl0oOTUsInJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZXMiLApLLkMpLFctPVJbMzZdKDgsTikud2lkdGgpLFJbMzZdKDI0LEEpLmhlaWdodCksbVsxMl0oNTksIlJpZ2h0IixBLEpbMV0pLnRvcCksciktSlsyXSp4K0pbMl0qbVsxMl0oNjcsIlJpZ2h0IixMLEpbMV0pLnRvcCxMKS5zdHlsZS53aWR0aD1rWzMyXSgxMixKWzBdLFcpLDApO0M8Vi5sZW5ndGg7QysrKVJbMTFdKHFbMl0sMTAsLTEsVltDXSk7Zm9yKHY9MDt2PFoubGVuZ3RoO3YrKylSWzExXSg1OSwxMCwtMSxaW3ZdKTsoZj0oUlsxMV0oNTcsMTAscCxMKSxSWzM2XSg4LEwpLmhlaWdodCksZik+cCYmKGI9aFkoLXgsKGYtcCkvSlsyXSotMSksWVszNV0oMzIsTCwibWFyZ2luVG9wIixiK3opKX1pZigoQiY4NSk9PUIpe2lmKE49KG49ITEsWzYzLDMsNTYzMjBdKSxuPW49PT12b2lkIDA/ITE6bixydyl7aWYobiYmKFZVPyFKW0dvXSgpOi8oPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSkvLnRlc3QoSikpKXRocm93IEVycm9yKCJGb3VuZCBhbiB1bnBhaXJlZCBzdXJyb2dhdGUiKTsKVz0oSFV8fChIVT1uZXcgVGV4dEVuY29kZXIpKS5lbmNvZGUoSil9ZWxzZXtmb3IocD1uZXcgVWludDhBcnJheShOWzFdKih2PShDPXosbiksSikubGVuZ3RoKSxaPXo7WjxKLmxlbmd0aDtaKyspaWYoYj1KLmNoYXJDb2RlQXQoWiksYjwxMjgpcFtDKytdPWI7ZWxzZXtpZihiPDIwNDgpcFtDKytdPWI+PnFbMF18MTkyO2Vsc2V7aWYoYj49NTUyOTYmJmI8PTU3MzQzKXtpZihiPD01NjMxOSYmWjxKLmxlbmd0aClpZihRPUouY2hhckNvZGVBdCgrK1opLFE+PU5bMl0mJlE8PTU3MzQzKXtwWyhwW0E9KGItNTUyOTYpKksrUS1OWzJdKzY1NTM2LEMrK109QT4+MTh8MjQwLHApW0MrK109QT4+MTImTlswXXwxMjgscFtDKytdPUE+PnFbMF0mTlswXXwxMjgsQysrXT1BJk5bMF18MTI4O2NvbnRpbnVlfWVsc2UgWi0tO2lmKHYpdGhyb3cgRXJyb3IoIkZvdW5kIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZSIpO2I9NjU1MzN9cFtwW0MrK109Yj4+MTJ8MjI0LEMrK109Yj4+cVswXSZOWzBdfDEyOH1wW0MrK109CmImTlswXXwxMjh9Vz1DPT09cC5sZW5ndGg/cDpwLnN1YmFycmF5KHosQyl9UD1XfXJldHVybiBQfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoKChDPVsxMDcsInB4IiwxXSwoQiZDWzBdKT09QikmJnouYXBwZW5kQ2hpbGQoSyksQil8NSkmMyk9PUNbMl0mJih0eXBlb2YgSz09eiYmKEs9eWEoSykrQ1sxXSksSj1LKSxKfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihCXigoSj1bMzIsInhKIiwxOV0sQiszPj4zPT0xKSYmKEs9Uls4XSg2MCx0aGlzKSx6PU9bNDhdKEpbMF0sdGhpcyksdGhpc1tKWzFdXVtLXT16KSxKWzJdKSk+PjQ8MSYmQjw8MT49LTM2JiYoSz10aGlzLk0sSz09PXo/dGhpcy5NPW51bGw6QXJyYXkuaXNBcnJheShLKSYmR1tKWzBdXSgzNCwxLEsseikpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7aWYoKEIrKChWPVs0LDMsOV0sQiYxMTcpPT1CJiYoUD16PT1udWxsP3o6ZUU9PT0yP0ZFKHopP3p8MDp2b2lkIDA6CnopLDEpXjcpPj1CJiYoQi02XjIwKTxCKWE6e2lmKChaPShOPShnWzQxXSg1NCwocD1bMCwhMCxudWxsXSxiKSksYi5hVCksTltBJF18cFswXSksQyk9PXBbMl0pe1lbMjVdKDQ5LHZvaWQgMCxKLFosdm9pZCAwLE4pLFA9YjticmVhayBhfWlmKCFBcnJheS5pc0FycmF5KEMpKXRocm93IGVbNl0oMjApO2ZvcihmPShRPW1bNV0oMTksKHY9cj1DPT09UVA/NzpDW0EkXXxwWzBdLFZbMF0pLHIpKXx8UFUoQykseD1wWzFdLEw9cFswXSxuPXBbMV07TDxDLmxlbmd0aDtMKyspQT1DW0xdLEdbNDhdKDIsSyxBKSxRfHwoVz15WzJdKDYsQSkseCYmKHg9IVcpLG4mJihuPVcpKTtQPSgoKFF8fChyPXg/MTM6NSxyPW4/ciYtNDA5NzpyfDQwOTYpLGYmJnI9PT12fHwoQz1nMFsyXShWWzJdLEMpLHY9cFswXSxyPUhbNDNdKDMwLDIscixaKSkscikhPT12JiZrWzM4XSg5NSxDLHIpLFo9WVsyNV0oODIsQyxKLFosdm9pZCAwLE4pLDImcil8fCEoNDA5NiZyfHx6JnIpfHxIWzM2XShWWzBdLE4sWiksYil9aWYoKEItCjJeMjUpPj1CJiYoQitWWzJdXjMyKTxCKWE6c3dpdGNoKEM9WzIwMCw1MDEsNF0sSil7Y2FzZSBDWzBdOlA9MDticmVhayBhO2Nhc2UgNDAwOlA9VlsxXTticmVhayBhO2Nhc2UgNDAxOlA9MTY7YnJlYWsgYTtjYXNlIHo6UD03O2JyZWFrIGE7Y2FzZSA0MDQ6UD1LO2JyZWFrIGE7Y2FzZSA0MDk6UD0xMDticmVhayBhO2Nhc2UgNDEyOlA9VlsyXTticmVhayBhO2Nhc2UgNDI5OlA9ODticmVhayBhO2Nhc2UgQ1sxXTpQPTEyO2JyZWFrIGE7Y2FzZSA1MDM6UD0xNDticmVhayBhO2Nhc2UgNTA0OlA9Q1syXTticmVhayBhO2RlZmF1bHQ6UD0yO2JyZWFrIGF9cmV0dXJuIFB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpe2lmKEItKCgocT1bMTEsNTcsMF0sQi0xKV4xNyk+PUImJihCLTl8MjcpPEImJih0aGlzW3pdPUt8cVsyXSksOSk8MjgmJihCXjQwKT49MjYpYTp7Zm9yKHY9KG49KEM9KHg9KChWPShKPShWPShMPVswLCEwLDI1NV0sTClbMV0sCkopPT09dm9pZCAwPyExOkosVj09PXZvaWQgMD8hMTpWKSxwPUxSLkooKSkuaS5hcHBseShwLGVbMzNdKDQsR1sxNV0oMykpKSxMUikuSigpLE9iamVjdCkudmFsdWVzKCRpKSxnWzEyXSgxMixDKSksbi5uZXh0KCkpOyF2LmRvbmU7dj1uLm5leHQoKSlXPXYudmFsdWUseC5YLmhhcyhXKXx8KGI9Z1sxMl0oMyxnWzI2XShxWzFdLHgseikpLm5leHQoKS52YWx1ZSx4Llguc2V0KFcsYikpO3RyeXtjPShOPW5ldyAoUT1PWzQ4XSg4MCwxNCxLLDkzOSxMWzJdLEopLHFPKShZWzM0XSg1LHosUS52KSx5WzEyXSg1NixMW3FbMl1dLDIsUS52LGtbM10oMTQpKS5zbGljZSgpLFEuTSksZj1udWxsLFYmJihQPW1bMjldKDI1LHosTFtxWzJdXSx6KSxBPW1bMjldKHFbMV0seixMW3FbMl1dLDIpLGY9bmV3IGk0KEEsUCkpLG5ldyB5VShmLE4pKTticmVhayBhfWZpbmFsbHl7KHI9TFIuSigpKS52LmFwcGx5KHIsZVszM10ocVswXSxHWzE1XSgxKSkpLFo9TFIuSigpLFoudi5hcHBseShaLGVbMzNdKDI3LApaLlgudmFsdWVzKCkpKSxaLlguY2xlYXIoKX19cmV0dXJuIEI8PDEmN3x8KEs9Sz09PXZvaWQgMD84OkssSj1uZXcgWWksSi51cGRhdGUoeiksQz1KLmRpZ2VzdCgpLGM9eVsxOF0oOCwxNixDKS5zbGljZShxWzJdLEspKSxjfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYobj1bMTEsMiwiYXBwbHkiXSxCLTQ8PG5bMV08QiYmKEIrNSY0NCk+PUIpe2ZvcihDPShwPShBPVs1LDE3LDI1NV0sdj0oUT1bXSx6KSksQyk9PT12b2lkIDA/NDpDO3Y8PUoubGVuZ3RoLzEyO3YrKyliPUouc2xpY2UodioxMixsOSgodisxKSoxMixKLmxlbmd0aCkpLHA9bVszN10oMzQsMCwxLEFbMF0sMyxiLHApLFEucHVzaFtuWzJdXShRLGVbMzNdKDI3LG5ldyBVaW50OEFycmF5KFtBW25bMV1dJnA+PjI0LEFbblsxXV0mcD4+SyxBW25bMV1dJnA+PjgsQVtuWzFdXSZwXSkpKTtaPWtbMjRdKDM4LHosSFs0OF0oMSxwLEFbMV0sblswXSwyNSksUSkuc2xpY2UoeixDKX1yZXR1cm4gQi04PDwKMT49KChCLW5bMV1eblswXSk8QiYmKEItNHwzNyk+PUImJihKLnNyYz1ZWzMxXSgxOCxDKSxBPUoub3duZXJEb2N1bWVudCwoYj1tWzEzXSg3LHosSyxjVSgpLEEpKSYmSi5zZXRBdHRyaWJ1dGUoU0UoKSxiKSksQikmJihCLTVeMjQpPEImJihDPW5ldyBTZXQoQXJyYXkuZnJvbShKKHooKSw5KSkubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBXJiZXLmhhc0F0dHJpYnV0ZSYmVy5oYXNBdHRyaWJ1dGUobUgoKSk/KG5ldyB5NihXLmdldEF0dHJpYnV0ZShtSCgpKSkpLnY6bWQoKX0pKSxaPUFycmF5LmZyb20oQykuc2xpY2UoMCwyNSkuam9pbihDMSgpKSksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQj4+MSYoKEJ8KChCfCh2PVsyNywibyIsIkgiXSw0OCkpPT1CJiYoQT1lWzQzXSg0NSxLLEoseikpLDgpKT09QiYmKEs9ei5rRixBPVREKCc8ZGl2IGNsYXNzPSInK1JbMTFdKDcsInJjLWF1ZGlvY2hhbGxlbmdlLXBsYXktYnV0dG9uIikrJyI+PC9kaXY+PGF1ZGlvIGlkPSJhdWRpby1zb3VyY2UiIHNyYz0iJysKUlsxMV0oNzEsZVsxMV0oNSwiIixLKSkrJyIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvYXVkaW8+JykpLDcpKT09MSYmKG5RLmNhbGwodGhpcyksdGhpcy5YPU9bMl0odlswXSxsNCxkb2N1bWVudCksdGhpc1t2WzFdXT1KLHRoaXMuQz1DLHRoaXNbdlsyXV09Syx0aGlzLmo9Yix0aGlzLlI9bnVsbCx0aGlzLnNZPXAwW3pdfHxwMFsxXSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKFc9WzAsIlgiLDcyXSwoQiYxMjIpPT1CJiYodGhpc1tXWzFdXT16LHRoaXMudmVyc2lvbj1LLHRoaXMuZFE9Six0aGlzLnY9Yj09PXZvaWQgMD8hMTpiLHRoaXMuTT1DPT09dm9pZCAwPyExOkMpLEItMyYxNSl8fChLPXoudSgpKSYmWVszOF0oMzYsSywhMSksKEIrNSY1Nik8QikmJihCKzMmNjApPj1CKWE6e2lmKEE9KFE9WzM3LDI3LCItIl0sQyhKKEsoKSwxMSksUVtXWzBdXSkpKWlmKGI9QSgpfHxbXSxiLmxlbmd0aD5XWzBdKXtmb3IocD0odj1nWzEyXSg0LGIpLAp2KS5uZXh0KCk7IXAuZG9uZTtwPXYubmV4dCgpKWlmKG49cC52YWx1ZSxZWzE4XSgzNSkudGVzdChuLm5hbWUpKXtOPShaPSshSihuLDQ0KSxIWzhdKDMyLDYzMjMpKEoobixRWzFdKSkrUVsyXSkrWjticmVhayBhfU49IiI7YnJlYWsgYX1OPWVDKCl9cmV0dXJuKEJ8KChCLTV8OSk+PUImJkIrOT4+MTxCJiZFaS5jYWxsKHRoaXMsdHlwZW9mIHo9PT0ic3RyaW5nIj96OiJUeXBlIHRoZSB0ZXh0IixLKSxXWzJdKSk9PUImJihOMHx8QSQgaW4genx8WEcoeix1NCkseltBJF09SyksTn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEI8PCgocD1bMSwzLDJdLEIpK3BbMV0+PnBbMV09PXBbMV0mJihKPUs+Pj56LHhPPShLLUopLzQyOTQ5NjcyOTY+Pj56LE9PPUopLHBbMF0pJjEzKT09NCl7Zm9yKEo9WzYzLDEyOCwoQT1bXSwyMDQ4KV0sdj1iPTA7YjxLLmxlbmd0aDtiKyspQz1LLmNoYXJDb2RlQXQoYiksQzxKW3BbMF1dP0FbdisrXT1DOihDPEpbcFsyXV0/QVt2KytdPUM+Pgo2fDE5MjooKEMmNjQ1MTIpPT01NTI5NiYmYitwWzBdPEsubGVuZ3RoJiYoSy5jaGFyQ29kZUF0KGIrcFswXSkmNjQ1MTIpPT01NjMyMD8oQz02NTUzNisoKEMmMTAyMyk8PDEwKSsoSy5jaGFyQ29kZUF0KCsrYikmMTAyMyksQVt2KytdPUM+Pnp8MjQwLEFbdisrXT1DPj4xMiZKWzBdfEpbcFswXV0pOkFbdisrXT1DPj4xMnwyMjQsQVt2KytdPUM+PjYmSlswXXxKW3BbMF1dKSxBW3YrK109QyZKWzBdfEpbcFswXV0pO1E9QX1pZigoQitwWzBdJigoKEIrcFsyXT49MCYmQitwWzFdPj40PHBbMF0mJih0aGlzLlY9Six0aGlzLk09Syx0aGlzLlg9eiksQikmMTE1KT09QiYmKEM9Sio0Mjk0OTY3Mjk2KyhLPj4+eiksUT1OdW1iZXIuaXNTYWZlSW50ZWdlcihDKT9DOmtbMjZdKDQ4LDgsSyxKKSksMTQpKT09NClhOntpZighSyl7UT16O2JyZWFrIGF9dHJ5e1E9ISFLW2FIXTticmVhayBhfWNhdGNoKG4pe1E9ejticmVhayBhfX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsClEsbixaKXtpZigoQjw8MiYxMSk8KG49WyJ2IiwiY2FsbCIsMTJdLDEpJiYoKEJeNTUpJjcpPj02KVRbblsxXV0odGhpcyx6LDAsaHouUlQpO2lmKCgoQis5JjE2KTwxMCYmQi0zPj0xNyYmS1tuWzBdXS5NLnNlbmQoeikudGhlbihKLEsuQSxLKSxCfDQ4KT09Qil7Zm9yKHA9KGI9KEM9Z1tuWzJdXSg3LChBPSh2PXosbmV3IGR3KHYpKSxraShBKSkpLEMubmV4dCgpKSx7fSk7IWIuZG9uZTtwPXtsRDp2b2lkIDB9LGI9Qy5uZXh0KCkpUT17fSxwLmxEPWIudmFsdWUsdHooQSxwLmxELChRW1VpXT1mdW5jdGlvbihXKXt2PVd9LmJpbmQoQSksUVtNT109ZnVuY3Rpb24oVyl7cmV0dXJuIGZ1bmN0aW9uKE4pe3JldHVybigoTj17fSx4VikoQSxXLmxELChOW3d3XT12LE5bSUhdPUssTltGR109SyxOW0JFXT1LLE4pKSxKKSgpLHZ9fShwKS5iaW5kKEEpLFFbQkVdPUssUVtGR109SyxRKSk7Wj1BfXJldHVybihCPj4yJjE0KT09MiYmKHRoaXMuTT1udWxsLHRoaXNbblswXV09bnVsbCksWn0sZnVuY3Rpb24oQiwKeixLLEope2lmKChCfChLPVtudWxsLCJjYWxsIiwiaSJdLDkpKT4+Mz49MSYmKEI+PjEmOCk8OClUW0tbMV1dKHRoaXMseik7cmV0dXJuKEJ8MTYpPT1CJiYodGhpcy5YPT09c3k/dGhpcy5NLnpxKCk6KHoudmlzaWJsZT8odGhpcy5YPXpaLHoudXkmJnoudXkud2lkdGg9PTAmJnoudXkuaGVpZ2h0PT0wfHx0aGlzLk0uZDcoKSk6KCgwLHQkLlJEKSgyKSx0aGlzLlg9S1MsdGhpcy5NLmFEKCksdGhpc1tLWzJdXSYmdGhpc1tLWzJdXS5yZXNvbHZlKG5ldyBKUCgwLCIiLENTLCExKSkpLHRoaXMuUi50aGVuKGZ1bmN0aW9uKEMpe3JldHVybiBDLnNlbmQocU4seil9LE9bNDVdLmJpbmQoS1swXSw5OCkpKSksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCEoKHY9WzMwLDQwLDE1XSxCLTUpJjEzKSlhOntpZih0eXBlb2YgSj09PSJzdHJpbmciKXtwPW5ldyBiVChLLFJbNF0oMjYseiw2NCxKKSk7YnJlYWsgYX1pZihBcnJheS5pc0FycmF5KEopKXtwPW5ldyBiVChLLG5ldyBVaW50OEFycmF5KEopKTsKYnJlYWsgYX1pZihKLmNvbnN0cnVjdG9yPT09VWludDhBcnJheSl7cD1uZXcgYlQoITEsSik7YnJlYWsgYX1pZihKLmNvbnN0cnVjdG9yPT09QXJyYXlCdWZmZXIpe0M9bmV3IFVpbnQ4QXJyYXkoSikscD1uZXcgYlQoITEsQyk7YnJlYWsgYX1pZihKLmNvbnN0cnVjdG9yPT09Wmwpe3A9bmV3IChBPWdbdlswXV0oMix6LEopfHxuZXcgVWludDhBcnJheSgwKSxiVCkoITAsQSxKKTticmVhayBhfWlmKEogaW5zdGFuY2VvZiBVaW50OEFycmF5KXtwPShiPUouY29uc3RydWN0b3I9PT1VaW50OEFycmF5P0o6bmV3IFVpbnQ4QXJyYXkoSi5idWZmZXIsSi5ieXRlT2Zmc2V0LEouYnl0ZUxlbmd0aCksbmV3IGJUKCExLGIpKTticmVhayBhfXRocm93IEVycm9yKCk7fXJldHVybihCfCgoKEImNzYpPT1CJiYocD1rW3ZbMl1dKDQyLHopKSxCKS0zJjEzfHxULmNhbGwodGhpcyx6KSx2WzFdKSk9PUImJihKPWdbMjZdKDg5LExSLkooKSxLKSx6LnJiLnB1c2guYXBwbHkoei5yYixlWzMzXSgyOCxKKSksCnA9SikscH0sZnVuY3Rpb24oQix6LEssSixDKXtpZighKCgoKChCJihDPVsibWFwIiw4LDldLDEwOSkpPT1CJiYoSj1SWzEzXShDWzJdLE9bQ1syXV0oMTUseiksS1tDWzBdXShmdW5jdGlvbihiKXtyZXR1cm4gT1syNV0oMyxiKX0pKSksQil8Q1sxXSk9PUImJihKPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgeihiKX0pLEJeNDUpJjUpJiYoei52PUssSz56LlgpKXRocm93IEVycm9yKCk7cmV0dXJuIEp9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKChCPj4oSj1bOCw3LDFdLEpbMl0pJkpbMF0pPEpbMV0mJigoQl4xNykmSlsxXSk+PTMmJih0aGlzLk09eix0aGlzLnY9SyksKEIrSlswXSZKWzFdKT09SlsyXSkmJlQuY2FsbCh0aGlzLHopLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKEImKFc9WyJ2IiwiQyIsIlUzIl0sNTMpKT09QiYmKExELmNhbGwodGhpcyw2MTksMjksWzFdKSx0aGlzLmk9dGhpcy5NPXRoaXMuVj0tMSx0aGlzLlg9dGhpcy5XPQp0aGlzLkE9dGhpc1tXWzFdXT0tMSx0aGlzLm09Z1s3XSg1KSksKEItOXwzNyk8QiYmKEIrN14xNCk+PUImJihuPVsxMSw2LDMyXSxRPWRrLkooKS5nZXQoKSwhKEo9PT1oMCYmWVsxOV0oMzcsblsyXSxRKXx8Sj09PWFvJiZZWzE5XSgzNiwzMyxRKSkpKXtpZihKPT1zT3x8Sj09Q1EpS1tXWzBdXS5sPURhdGUubm93KCk7aWYoKChLW1dbMF1dLkY9RGF0ZS5ub3coKSxrKVsxNl0oNTYsSy5PKSxLKVtXWzBdXS5YPT1CZiYmS1tXWzBdXS5SIT1udWxsKUdbMTBdKDEyLDEzLEtbV1swXV0uUixLKTtlbHNlIGI9ZnVuY3Rpb24oeCl7Sy52Lk0uc2VuZCh4KS50aGVuKGZ1bmN0aW9uKGYsTCxyLFYpe2lmKGZbKFY9WzM0LChMPVtudWxsLCExLDYwXSwiYXUiKSwiczMiXSxWKVsyXV0oKT09TFswXXx8ZltWWzJdXSgpPT0wfHxmW1ZbMl1dKCk9PTEwKXI9ZltWWzFdXSgpLGtbNDddKDQ0LHRoaXMsWVtWWzBdXSg0LHosZil8fCIiKSx0aGlzLkMoSG8sWVtWWzBdXSg2LHosZil8fCIiLGYscj9EWzE4XSg2OSwKZVszMl0oNTUsciw0KSkqTFsyXTo2MCxMWzFdKX0sSy5BLEspfSxBPWZ1bmN0aW9uKHgsZil7QVAoKGY9WzEwLCJNIiwidiJdLEtbZlsyXV1bZlsxXV0uc2VuZC5iaW5kKEtbZlsyXV1bZlsxXV0pKSxmWzBdLHgpLnRoZW4oZnVuY3Rpb24oTCl7R1sxMF0oMTAsMTMsTCxLLCExKX0sSy5BLEspfSxDP1JbMjZdKDIzLEMsblswXSxsKT8oWj17fSxiKG5ldyB2RSgoWltGeF09UlsyNl0oMTMsQyxuWzBdLGwpLFopKSkpOkEobmV3IFRaKGdbMzNdKDQ0LG5bMV0sQyxKKSkpOktbV1swXV1bV1swXV0uZHQoKT09bTY/S1tXWzBdXVtXWzBdXS53dChmdW5jdGlvbih4LGYsTCxyLFYsUCl7KFY9KHI9KEw9RFs0M10oMjkseixnW1A9WzE5LDEyLDMzXSxQWzJdXSg0Myw2LG5ldyB6bCxKKSxLLnYuVTMoKSksbVsyM10oUFswXSxmLEwsMTMsbCkpLG0pWzIzXSgyMSx4LHIsUFsxXSxsKSxBKShuZXcgVFooVikpfSxLW1dbMF1dW1dbMl1dKCksITEpOihwPWZ1bmN0aW9uKHgsZixMLHIpeyhmPShMPShyPQpbNDIsNDMsNl0sRFtyWzFdXSgzMCx6LGdbMzNdKHJbMF0sclsyXSxuZXcgemwsSiksSy52LlUzKCkpKSxtWzIzXSgzNCx4LEwsNCxsKSksQSkobmV3IFRaKGYpKX0sKCh2PUtbV1swXV0uaVtXWzBdXSk9PW51bGw/MDpSWzI2XSgxMyx2LDMsbCkpP0tbV1swXV0uaS5leGVjdXRlKCkudGhlbihwLHApOlByb21pc2UucmVzb2x2ZSgpLnRoZW4ocCkpfXJldHVybigoKChCXjM4KSYxNSk9PTEmJihqYy5jYWxsKHRoaXMseixKLEMsYixBKSx0aGlzW1dbMF1dPUspLEIpfDgpPT1CJiYoSz1bXSxtWzZdKDEwLDY0LGZ1bmN0aW9uKHgpe0sucHVzaCh4KX0seiksTj1LKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgoKCgoKEE9WzIwLDQwLDEwXSwoQnw1NikhPUJ8fEsuUi53aWR0aD09Si53aWR0aCYmSy5SLmhlaWdodD09Si5oZWlnaHQpfHwoSy5SPUosQyYma1s4XSg0MSxLLGdbQVswXV0uYmluZChudWxsLDQpKSxnWzNdKDYzLEsseikpLEIpfDMpJjE1KT49OSYmKChCfDcpJkFbMF0pPAo1JiYodj1mdW5jdGlvbihwKXtpZihlWzI0XSg4MixwPT1udWxsP3ZvaWQgMDpwLnA1KSlyZXR1cm4gcC5wNShmdW5jdGlvbihRKXt0cnl7cmV0dXJuIHooUSx0aGlzKX1jYXRjaChuKXt0aGlzLmVycm9yKG4pfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIik7fSksQil8NSk8MzEmJigoQnw2KSYyNSk+PTE0KWE6e2lmKChKPShLPXR5cGVvZiB6LFs2NCwhMCxudWxsXSkseik9PUpbMl0pe3Y9ejticmVhayBhfWlmKEs9PT0iYmlnaW50Iil7dj1HWzMxXSg5NCxENChKWzBdLHopKTticmVhayBhfWlmKFlbMzddKEFbMl0seixKWzFdKSl7dj1LPT09InN0cmluZyI/T1syNF0oQVsxXSwwLEpbMF0seik6ZVs2XSg4MSxKWzFdLDAseik7YnJlYWsgYX19aWYoKEItNSY3KT09KChCJjkxKT09QiYmKHRoaXMudj16KSwyKSlhOntpZighQ3x8IWIpe3Y9SzticmVhayBhfWlmKEMuY29udGFpbnMmJmIubm9kZVR5cGU9PXope3Y9Qz09CmJ8fEMuY29udGFpbnMoYik7YnJlYWsgYX1pZih0eXBlb2YgQy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiE9InVuZGVmaW5lZCIpe3Y9Qz09Ynx8ISEoQy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSZKKTticmVhayBhfWZvcig7YiYmQyE9YjspYj1iLnBhcmVudE5vZGU7dj1iPT1DfXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoKChCfChCKzI+Pih2PVshMSwxMSwiZW5kc1dpdGgiXSwxKTxCJiYoQis2JnZbMV0pPj1CJiYoSz1HbFtwUygpXXx8Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaTIvIixLW3ZbMl1dKFFFKCkpfHxLW3ZbMl1dKG5TKCkpfHwoSys9ImFwaTIvIiksej09Wk8mJihLPUsucmVwbGFjZShXRSgpLGdTKCkpKSxBPShZWzI3XSg5LEspLk0/IiI6TmgoKSkrSyt6KSw0MCkpPT1CJiYoei52LkE9Syx6Lk0uWC52YWx1ZT1LKSxCKSY1Nik9PUImJihBPW5ldyB6Sih6KSksKEIrOV4zMCk8QiYmKEItMl52WzFdKT49QikmJgooYj1tWzRdKDIsIl9fIixLLEMpLEpbYl18fCgoSltiXT1ZWzJdKDksMCx2WzBdLCJfXyIsSixDKSlbbVs0XSgxMCwiX18iLHosQyldPUopLEE9SltiXSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEJ8KChCJjQyKT09KCgoQT1bInJlbW92ZSIsMzEsMF0sKChCXjI0KSYxMyk9PTEpJiYoeltLXT1KLmowKSxCKzQ+PjE8QikmJihCKzEmMjUpPj1CJiYoYj1lWzE2XSgzNyx6LHZTLGdbQVsxXV0oNDIsQVsyXSxrWzM5XSg0MixLLEopLEMudG9TdHJpbmcoKSxSbykpKSxCKSYmKHoudltBWzBdXShLKSx6LnYuYWRkKEssSikpLDU2KSk9PUImJihDPVJbNDddKDMyLEspLEMhPW51bGwmJkRbNDFdKDM5LDcseixKLGtbQVsxXV0oMSxBWzJdLDEwMjQsQykpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4oKEJ8KCgoKEJ8NSk+PjM9PSgoQiYxMjEpPT0oVz1bMSwiTSIsImZyb20iXSxCKSYmKFo9dGhpc1t6Pj4+V1swXV0+Pj4oeiZXWzBdKSoKMTUmMzI3NjcpLFdbMF0pJiYoYj1iPT09dm9pZCAwPzE6YixDPUM9PT12b2lkIDA/bVs0OF0oNzUsSix3NSgpLEspOkMsWj1BcnJheVtXWzJdXSh7bGVuZ3RoOmJ9LGZ1bmN0aW9uKCl7cmV0dXJuIHorQygpfSkpLEIpLTR8MjYpPEImJihCLTd8NDQpPj1CJiYodGhpcy5SPSEhUSx0aGlzW1dbMV1dPWJ8fG51bGwsdGhpcy5BPUssdGhpcy52PXosbj1bIiIsITEsMF0sdGhpcy5Qej1uW1dbMF1dLHRoaXMuWm09blsyXSx0aGlzLmk9cHx8blswXSx0aGlzLlg9Snx8IkdFVCIsdGhpcy5LXz12IT09dm9pZCAwP3Y6MSx0aGlzLkdxPUMsdGhpcy5EWj1BLHRoaXMuQnY9bnVsbCx0aGlzLnBpPW5bV1swXV0pLDMpKSYxMSk8NSYmQj4+V1swXT49LTQ1JiYodGhpc1tXWzFdXT1iLHRoaXMuaT1LLHRoaXMuQT1DLHRoaXMudj1KLHRoaXMuWD16KSxafV19KCksWT1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLAp1LFgpe2lmKCEoQi0oKEIrKCgoQnwyKT4+Mz09KHU9WzEwLDEsNTRdLDMpJiYoWD1uZXcgT3koeixLLEosMTkpKSxCLXVbMV0+PjMpfHwodGhpcy52PXp8fEdsLmRvY3VtZW50fHxkb2N1bWVudCksNCkmNyk9PTImJihuPVsxNzE5LDcsMTUwMV0sTD1nWzI2XSg4OCxMUi5KKCksblt1WzFdXSksYT1nWzEyXSg1LEwpLFM9YS5uZXh0KCkudmFsdWUsVj1hLm5leHQoKS52YWx1ZSxRPWEubmV4dCgpLnZhbHVlLHE9YS5uZXh0KCkudmFsdWUscj1hLm5leHQoKS52YWx1ZSx4PWEubmV4dCgpLnZhbHVlLE49YS5uZXh0KCkudmFsdWUsdj1IWzE1XSg3Mix1WzFdKSxXPUhbMTVdKDY0LDIpLFA9SFsxNV0oNTYsQyksYz1IWzE1XSgyNCw2KSxBPUhbMTVdKDcyLDkpLFo9SFsxNV0oNDAsblt1WzFdXSksZj1IWzE1XSgyNCwxMSksRT1nWzddKDM3KSxiPVtnWzQ4XSh1WzBdLDQ1MixRKSxZWzEyXSgxOCxRLFEpLGdbNDhdKDI2LDE0NDksUyksZ1s0OF0oMTgsMTYyNixWKSxJKHEsUSxTLFYpLGdbNDhdKHVbMF0sCjIwMjYsTiksUlsxOV0oNjUsTixOLHEpLGdbNDhdKDE4LG5bMF0sUyksZ1s0OF0odVswXSwxNTAyLFYpLG1bMzNdKDMyLE4sUyxPWzI1XSg3LFYpKSxnWzQ4XSgxOCwxODEsciksUlsxOV0oMzMscixyLFEpLGdbNDhdKHVbMF0seixTKSxJKFYscixTLHEpLGdbNDhdKDE2LEoseCksUlsxOV0oMzIseCx4LHEpLEhbNDRdKHVbMl0sUSksSFs0NF0oNjIsTiksZ1s0OF0oMTgsMjcxLHYpLFJbMTldKDMzLHYsdix4KSxnWzQ4XSh1WzBdLDE3ODksUyksUlsxOV0oMzMsdixTLHYpLGdbNDhdKDE2LDE0MDksVyksUlsxOV0oOCxXLFcseCksZ1s0OF0oMTYsMTMzNixTKSxSWzE5XSg4LFcsUyxXKSxnWzQ4XSgxNiwzNjIsSFsxNV0oNDAsMykpLGdbNDhdKDI0LDE1MTgsUCksZ1s0OF0oMjYsSyxWKSxSWzE5XSg3MixWLFYseCksUlsxOV0oNzMsVixQLFYpLGdbNDhdKHVbMF0sMTM3MixTKSxSWzE5XSg4LGMsUyxWKSxnWzQ4XSgxNiw1NzgsQSksZ1s0OF0oMTgsSyxWKSxSWzE5XSg5LFYsVix4KSxSWzE5XSh1WzFdLApWLFAsViksZ1s0OF0oMTgsODg0LFMpLFJbMTldKDMzLFYsUyxWKSxJKEhbMTVdKDQwLDQpLGMsQSxWKSxnWzQ4XSh1WzBdLDEwNSxIWzE1XSg0OCw1KSksZ1s0OF0oMTYsOTk5LFYpLFJbMTNdKDc3LFYsT1syNV0oMyxWKSwiIiksZ1s0OF0oMjYsMzM4LFMpLFJbMTldKDQxLFosUyxWKSxJKFosWixBLFYpLGdbNDhdKDE2LDc2NixIWzE1XSg1Nix1WzBdKSksZ1s0OF0oMTYsMTU4NSxWKSxSWzE5XSgzMixWLFYseCksZ1s0OF0oMjQsblsyXSxTKSxIWzQ0XSg1OSxmKSxtWzMwXSg0LDksNixFLFMsZixWKSxFLGdbNDhdKDI0LDEzMTYsUyksSShWLHIsUyxxKSxIWzQ0XSg1OCxyKSxIWzQ0XSg1MCxxKSxIWzQ0XSh1WzJdLHgpLEhbNDRdKDQ3LFMpLEhbNDRdKDYzLFYpXSwocD1MUi5KKCkpLnYuYXBwbHkocCxlWzMzXSgzNixMKSksWD1iKSw3KSY3KSl7aWYoQXJyYXkuaXNBcnJheShKKSlmb3Iodj0wO3Y8Si5sZW5ndGg7disrKVlbMF0oNjMseixLLEpbdl0sQyxiLEEpO2Vsc2UgaWYoUT0KQXx8ei5IfHx6LHA9SFs0NF0oMixiKT8hIWIuY2FwdHVyZTohIWIsTj1DfHx6LmhhbmRsZUV2ZW50LE49a1sxOF0oMzksTiksbj0hIXAsVz1nWzBdKHVbMV0sSyk/T1syNF0oMzcsMCxOLFEsU3RyaW5nKEopLEsuTyxuKTpLPyhaPWVbMThdKDYsSykpP09bMjRdKDM1LDAsTixRLEosWixuKTpudWxsOm51bGwseD1XKVJbMTZdKHVbMV0seCksZGVsZXRlIHouV1t4LmtleV07WD16fXJldHVybiBYfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCXjUzKSYoQi02JigoQj4+KEE9WyJjaGlsZHJlbiIsMTksInYiXSwxKSYxNXx8KGI9bmV3IHh5KHosSyxDPT09dm9pZCAwP251bGw6QyxKPT09dm9pZCAwPyExOkopLERPLnNldCh0aGlzLGIpKSxCPj4xPEFbMV0mJihCPDwxJjE1KT49NCkmJlQuY2FsbCh0aGlzLHopLDEwKXx8Sy5DfHwhS1tBWzJdXXx8IUsudSgpLmZvcm18fChlWzM2XSg1LEtbQVsyXV0sSy51KCkuZm9ybSxmUyxLLkJFKSxLLkM9eiksNyl8fCh2PUtbQVswXV0hPQp2b2lkIDA/S1tBWzBdXTpBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoSy5jaGlsZE5vZGVzLGZ1bmN0aW9uKHApe3JldHVybiBwLm5vZGVUeXBlPT16fSkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChCfDQ4KT09KCgoKEJeKChCKzleMjQpPj0ocD1bMCxudWxsLDc3XSxCKSYmKEItNXw1Nyk8QiYmKHRoaXMuWUE9ej16PT09dm9pZCAwPyExOnosdGhpcy5sb2NhbGU9cFsxXSx0aGlzLlg9ITEsdGhpcy5NPXBbMV0sdGhpcy5pPXBbMF0sdGhpcy52PW5ldyBvaixOdW1iZXIuaXNJbnRlZ2VyKEspJiZ0aGlzLnYuTnUoSyksenx8KHRoaXMubG9jYWxlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoTFMoKSkpLEdbNDBdKDYsNSxuZXcgUmosdGhpcykpLHBbMl0pKSYxMyk9PTQmJihBPWZ1bmN0aW9uKCl7dmFyIG49WyJNIiwiYXBwbHkiLCJpbmRleE9mIl07aWYodi5tKXJldHVybiBDW25bMV1dKHRoaXMsYXJndW1lbnRzKTt0cnl7cmV0dXJuIENbblsxXV0odGhpcywKYXJndW1lbnRzKX1jYXRjaChXKXt2YXIgWj1XO2lmKCEoWiYmdHlwZW9mIFo9PT0ib2JqZWN0IiYmdHlwZW9mIFoubWVzc2FnZT09PSJzdHJpbmciJiZaLm1lc3NhZ2VbblsyXV0oclMpPT16fHx0eXBlb2YgWj09PSJzdHJpbmciJiZaW25bMl1dKHJTKT09eikpdGhyb3cgdltuWzBdXShaKSxuZXcgVkUoWik7fX0sdj1iLEFbbVs0XSgxNixKLEssYildPUMsUT1BKSxCJjEwNik9PUImJih6PVByb21pc2UucmVzb2x2ZSh2b2lkIDApLEdaPWZ1bmN0aW9uKCl7ei50aGVuKFJbMjhdLmJpbmQobnVsbCw5KSl9KSxCKSl7dHJ5e3Rocm93IEVycm9yKCk7fWNhdGNoKG4pe0o9bltIRV18fHp9Zm9yKEE9KGI9KEM9Si5zcGxpdChJUigpKSxuZXcgU2V0KSxLKTtBPEMubGVuZ3RoO0ErKylDW0FdJiZiLmFkZChEWzQ0XSgyMixwWzBdLENbQV0pKTtRPWJ9cmV0dXJuKEJeODMpPDgmJkIrOD4+Mz49MSYmKFE9ZnVuY3Rpb24obixaLFcsTil7S1sobj0oVz1SW049WyJ4SiIsOCw1OV0sTlsxXV0oTlsyXSwKSyksT1s0OF0oOTYsSykpLFo9T1s0OF0oNjMsSyksTilbMF1dW1ddPShuPT1udWxsPzA6bi5tYXApP24ubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB6KHgsWil9KTp6KG4sWil9KSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4oKEJ8NSk8KCgoKHA9WyJBIixudWxsLDE5XSwoQiYyMyk9PUIpJiYoej17fSxLPW5ldyBlYygoeltGeF09dGhpcy52LlUzKCkseltCbF09ZzBbMl0oNSwxOCx0aGlzLk0udikseikpLHRoaXMudi5NLnNlbmQoSykudGhlbih0aGlzLkRPLHRoaXNbcFswXV0sdGhpcykpLEIpfDI0KT09QiYmKFBFKCksSi52PW5ldyAkeSgicnBjIixKLEpbcFswXV0sSi5rSiksSi5sPT09bnVsbCYmKEoudi5IPUouTyksSi52LlM9eixDPXlbMTVdKDQyLEouS3EpLG1bOV0oMTUsQyxxaCgpLGlUKCkpLG1bOV0oOSxDLHlFKCksSi5TKSxtWzldKHBbMl0sQyxZeSgpLEouZyksbVs5XSg3LEMsY0UoKSxKLkg/bWcoKTpqdSgpKSwhSi5IJiZKLnVZJiZtWzldKDcsCkMsU2MoKSxKLnVZKSxtWzldKDEzLEMsbTIoKSxsVCgpKSxIWzMyXSg2LEMsSiksSi5sJiZKLk8mJk9bNF0oMjYsSyxKLk8sSi5sLEMpLEouSSYmSi52LnNldFRpbWVvdXQoSi5JKSxBPUoudixBLmc9MSxiPUoucHEsQS5DPWVbNDldKDQseVsxNV0oMjAsQykpLEEuST1LLEEubD1wWzFdLFJbNDFdKDE3LCJ0eXBlIix6LEEsYiksRXkoKSkscFsyXSkmJkI+PjI+PTImJihDPUM9PT12b2lkIDA/ITE6QyxKPUo9PT12b2lkIDA/MDpKLFE9R1sxM10oMjQsZnVuY3Rpb24obixaLFcpe1c9WzEsMiwoWj1bMiwxNzRFNCw1XSwwKV07c3dpdGNoKG4uTSl7Y2FzZSBXWzBdOmlmKCEoSj56KSl7bi5HXyhaW1dbMl1dKTticmVha31yZXR1cm4gbi52KGcwW1dbMV1dKDE0KSxaW1dbMl1dKTtjYXNlIFpbV1syXV06cmV0dXJuIEN8fEsudi5zZXQobHEsWDMpLG4uQSg0KSxuLnYoSy5sKEsuRi5iaW5kKEssVGQpKSw2KTtjYXNlIDY6bi5GKFpbV1sxXV0pO2JyZWFrO2Nhc2UgNDpuLmkoKTtjYXNlIFpbV1sxXV06Yj0KWltXWzBdXSxKPFpbV1syXV0mJihDP0o9PXo/Yj01RTM6Sj09V1swXSYmKGI9NkU0KTpiPTZFNCksT1tXWzFdXSg4LGZ1bmN0aW9uKCl7cmV0dXJuIFlbM10oOSwwLEssKytKLEMpfSxiKSxuLlIoKX19KSksQnw0MCk9PUImJihRPUdbMTNdKDI1LGZ1bmN0aW9uKG4sWixXKXtpZigoWj0oVz1bNzUsMzUsMl0sWzEsMiw2XSksbikuTT09WlswXSl7aWYoZ1szMF0oV1swXSxLLGIsWlswXSx1VCxhaikpcmV0dXJuIHY9eVsxNl0oNTEseixaWzBdLGFqLGIsdVQpLG4udihtWzQ3XSgyNCxaWzFdLEosIiIseix2KSxaW1dbMl1dKTtpZighZ1szMF0oNzMsSyxiLFpbMV0saFAsYWopKXJldHVybiBkUygpLG4uR18oeik7cmV0dXJuKEE9eVsxNl0oV1sxXSx6LFpbMV0sYWosYixoUCksbikudihHWzQ4XSg1Nix6LEMsWlswXSwxNixBKSxKKX1yZXR1cm4gbi5yZXR1cm4obi5YKX0pKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCfDQwKT09KChCJjEwNik9PSgoUT1bInYiLAo0Nyw1XSwoQl4zMCk+PjMpfHwodGhpc1tRWzBdXT16KSxCKSYmKHA9Yi50aGVuKGZ1bmN0aW9uKFosVyxOLHgsZixMKXtMPVsxMCwxNSw0MV0seD1bMCwxLCExXSxmPXhbMl07c3dpdGNoKFouaEsoKSl7Y2FzZSB6OmNhc2UgeFswXTpmPXYuUVgsTj12Lml5O2JyZWFrO2Nhc2UgeFsxXTpOPXYuZkQ7YnJlYWs7ZGVmYXVsdDpOPW5ldyB5Nn1yZXR1cm57cXU6bmV3IChXPVJbNDNdKDExLEMseVtMWzFdXSgxNixOKSxHWzMyXSgyLHhbMV0sSixOLlgsa3kpKSx0UCkoTixtW0xbMl1dKExbMF0seFswXSxBLnZBKSxaKSxrWjpuZXcgVXkoTixaLG1bTFsyXV0oMix4WzBdLEEudkEpKSxaaTpmdW5jdGlvbihyLFYsUCxxLGMsRSxTKXtyZXR1cm4ocT1uZXcgKEU9bmV3IE1oKEEudkEhPT12b2lkIDAsZixaLChjPShTPUEuZHopPT1LP3ZvaWQgMDpTLkhvKSE9Sz9jOiExLFcpLHdTKShmdW5jdGlvbihhLHUpe3JldHVybiBuZXcgKG5ldyBJaixGMykoYSx1KX0scixWLFAsRSkscS5zdGF0ZSk9PT0KMCYmKHEuc3RhdGU9MSxHWzQzXSgxNixDLHEuY2hhbm5lbCkpLHF9fX0pLG49bmV3IEJIKHAsQSkpLEIpKWE6e2lmKGI9KEo9bVs4XSg4KSxLPT09dm9pZCAwKT8wOkssIXope249YjticmVhayBhfWZvcihDPTA7Qzx6Lmxlbmd0aDtDKyspQT1KLmNhbGwoeixDKSxiPShiPDxRWzJdKS1iK0EsYiY9YjtuPWJ9aWYoQis3Pj4xPEImJihCLTdeMzEpPj1CKXtmb3IocD12PUs7RFtRWzFdXSg3LEosYikmJmIuTSE9QzspaWYoYi5pIT09MTZ8fHApaWYoYi5pIT09MjZ8fHYpUlsxNF0oNixKLGIpO2Vsc2UgcD8odj0tMSxEWzE2XSgzMixLLHAsYixBKSk6KHY9Yi5BLFJbOV0oMTcseixKLGIpKTtlbHNlIHA9WVsyNV0oNjgsYltRWzBdXSksdiYmKGJbUVswXV1bUVswXV09dix2PUspO2lmKGIuaSE9PTEyfHwhdnx8IXApdGhyb3cgRXJyb3IoKTt9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoKG49WyJudW1iZXIiLDEwLDE1XSwoQiY4NCk9PUIpJiZDIT1udWxsKXN3aXRjaChEWzIyXSg2OCwKMCxiLEopLHR5cGVvZiBDKXtjYXNlIG5bMF06KGJOKChBPWIudixDKSksaylbMTJdKDEsMCxDKSxlWzI4XShuWzFdLE9PLHhPLEEpO2JyZWFrO2Nhc2UgSzoocD1EWzEzXSg4MCx6LHNzLEMsR1sxNF0uYmluZChudWxsLDgpKSxlKVsyOF0oNDMscC5NLHAudixiLnYpO2JyZWFrO2RlZmF1bHQ6dj1PWzI1XSgyNiwxNixDKSxlWzI4XSgxMSx2Lk0sdi52LGIudil9cmV0dXJuKChCKzM8MTMmJihCLTcmblsyXSk+PW5bMV0mJlQuY2FsbCh0aGlzLHopLEIrNykmblsyXSk9PTImJihiPUouVTkseltLXT1DP2Z1bmN0aW9uKFosVyxOKXtyZXR1cm4gYihaLFcsTixDKX06YiksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVybiBCKzg+PjQ8KChCfDMyKT09KFo9WyJ2IiwyLDE2XSxCKSYmKHRoaXNbWlswXV09Syx0aGlzLk09bmV3IG9CKEoseikpLFopWzFdJiYoQi04JjcpPj02JiYobj1HWzEzXShaWzJdLGZ1bmN0aW9uKFcsTix4LGYpe2lmKChmPVsxMiwidiIsMTNdLApLLlgpLmJEKWZvcihiPWdbZlswXV0oZlswXSxLLnN0cmVhbXMudmFsdWVzKCkpLEo9Yi5uZXh0KCk7IUouZG9uZTtKPWIubmV4dCgpKWlmKEE9Si52YWx1ZSxDPUFbZlsxXV0sQyBpbnN0YW5jZW9mIHpPJiYoQz1DW2ZbMV1dKSxDLk0pcmV0dXJuIFcucmV0dXJuKFtBLlgsQVtmWzFdXV0pO2ZvcihRPSh2PWdbZlswXV0oOSxLLnN0cmVhbXMudmFsdWVzKCkpLHYubmV4dCgpKTshUS5kb25lO1E9di5uZXh0KCkpcmV0dXJuIHA9US52YWx1ZSxXLnJldHVybihbcC5YLHBbZlsxXV1dKTtyZXR1cm4oeD0oTj1uZXcgemgsVylbZlsxXV0sTi5zb3VyY2U9Sy5sLHgpLmNhbGwoVyxIWzhdKGZbMl0sTi5ocyhLeSgpKSkseil9KSksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYocD1bNCw2LDE2XSwoQnw3Mik9PUIpe2lmKEpxKXtKPSExO3RyeXtKPSFZWzIwXShwWzFdLHopLmRvY3VtZW50fWNhdGNoKG4pe0o9ITB9SiYmKGVbNDZdKDQzLEpxKSxKcT16KX1RPSgoYj0oIShDPUN5fHwKR1sxNV0oNDApLEpxKSYmQyYmKEpxPVJCKGJZKSxZWzM1XSgzMixKcSwiZGlzcGxheSIsIm5vbmUiKSxDLmFwcGVuZENoaWxkKEpxKSksRClbMTFdKDMpLEpxKSYmKGI9WVsyMF0oMjIseil8fGIpLEsoYikpfXJldHVybigoKChCfDgwKT09QiYmKChiPUhbMzldKDczLDAsZ1sxNF0ocFsxXSxBcSkpKT8oQT1uZXcgdkgobmV3IFlpLGVbNDhdKDEzLDgsSyxiK1RPKSksQS5yZXNldCgpLEEudXBkYXRlKEopLHY9QS5kaWdlc3QoKSxDPXlbMThdKHBbMF0scFsyXSx2KS5zbGljZSgwLHBbMF0pKTpDPXosUT1DKSwoQnw3KTwyMCYmKEI+PjImMTUpPj0yJiYoQz1DPT09dm9pZCAwPyExOkMsSj1KPT09dm9pZCAwP3t9OkosUT1HWzEzXShwWzJdLGZ1bmN0aW9uKG4sWil7aWYoKFo9WyJ2IiwhMSwhMF0sbi5NKT09MSl7aWYoKEsuTS5MdShaWzFdKSxiPUsuWCxLLlgpPT1LUylyZXR1cm4gbi5HXyh6KTtyZXR1cm4gbltLLlg9amgsWlswXV0oSy5NLlMwKCkseil9KChBPUtbWlswXV1bWlswXV0mJgohS1taWzBdXS5BLGIpPT09cHl8fEEmJihiPT09c3l8fGI9PT1RSik/SFs0OF0oMTEsWlsyXSxLLEosQyk6YiE9bnkmJksuUi50aGVuKGZ1bmN0aW9uKFcpe3JldHVybiBXLnNlbmQoanQsbmV3IEZ5KHt2aXNpYmxlOiEwLFJOOkN9KSl9LE9bNDVdLmJpbmQobnVsbCwyKSksbikuUigpfSkpLEIpLTNecFsxXSk+PUImJihCKzcmNDUpPEImJlQuY2FsbCh0aGlzLHopLChCfDQ4KSE9Qil8fEMuTXx8KEMuWD1NYXRoLnRydW5jKFlqKCkpLEMuaXx8KEMuaT1SWzEzXSgxLEssSixDLHopfHxtWzJdKDcsSikpLEMuTT1DLmkudGhlbihmdW5jdGlvbihuLFosVyl7aWYoKFc9WyJsIiwidHJ1bmMiLDddLG4pJiZ0eXBlb2YgbltaSCgpXT09PSJmdW5jdGlvbiIpcmV0dXJuIFo9TWF0aFtXWzFdXShZaigpKSxDW1dbMF1dKyssbVsyXShXWzJdLG4ucmVxdWVzdFRva2VuKGIpKS50aGVuKGZ1bmN0aW9uKE4peyhDLlI9TWF0aC50cnVuYyhZaigpKS1aLE4pJiYoQy52PU4pfSk7biYmKEMudj1XSCl9KS5jYXRjaChmdW5jdGlvbigpe0Mudj0KZ099KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihCJjMwKT09KCgoYj1bNCwib2JqZWN0IiwiYXJyYXkiXSxCKSYxNSk9PUImJihKPUhbNDZdKGJbMF0sYlsxXSxLKSxDPUo9PWJbMl18fEo9PWJbMV0mJnR5cGVvZiBLLmxlbmd0aD09eiksQikmJihDPWtWKHosSyk+PTApLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe3JldHVybigoQiY3Nyk9PSgoQi0xXjI2KT49KHg9WyJNIiwicGFyZW50Tm9kZSIsM10sQikmJihCKzkmMzApPEImJlQuY2FsbCh0aGlzLHopLEIpJiYoZj1URCgnPGRpdj5yZUNBUFRDSEEgaXMgY2hhbmdpbmcgaXRzIHRlcm1zIG9mIHNlcnZpY2UuIDxhIGNsYXNzPSJtaWdyYXRlLWxpbmsiIGhyZWY9Imh0dHBzOi8vZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYWRtaW4vbWlncmF0ZSIgdGFyZ2V0PSJfYmxhbmsiPlRha2UgYWN0aW9uLjwvYT48L2Rpdj4nKSksQnwxKT49eFsyXSYmKChCXjYpJjgpPDYmJihXPUhbMTddKDMwLApDLGIpLFo9ZVszNV0oODcseix2b2lkIDAsVy52LHZvaWQgMCxOcClbMF0sWnx8KHA9ZVszNV0oODMseix2b2lkIDAsVy52LHZvaWQgMCxPcylbMF0sWj1XW3hbMF1dKE5wKSxwW3hbMV1dLmluc2VydEJlZm9yZShaLHApKSxuPVdbeFswXV0oeE0pLHY9ZG9jdW1lbnQsKFE9bVsxM10oNixLLEosbmYoKSx2KSkmJm4uc2V0QXR0cmlidXRlKFNFKCksUSksTj1HWzE3XSgyOSxKLEEpLEdsLnRydXN0ZWRUeXBlcz9SWzM2XSgxOCxuLE4pOm4uaW5uZXJIVE1MPU4sVy5YKFosbikpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoISgoKCgoKEImKChCKzkmKEE9W251bGwsInYiLDE0XSxBWzJdKSk9PTImJih0aGlzW0FbMV1dPXopLDEwNykpPT1CJiYodj1rWzddKDIsITAsITEsMCk/eihESCk6WVs3XSg3OCxBWzBdLGZ1bmN0aW9uKHAsUSxuLFope249T2JqZWN0WyhaPVsidG9KU09OIiwiSlNPTiIsInByb3RvdHlwZSJdLFE9QXJyYXlbWlsyXV1bWlswXV0sWilbMl1dW1pbMF1dO3RyeXtyZXR1cm4gZGVsZXRlIEFycmF5W1pbMl1dW1pbMF1dLApkZWxldGUgT2JqZWN0W1pbMl1dW1pbMF1dLHoocFtaWzFdXSl9ZmluYWxseXtRJiYoQXJyYXlbWlsyXV1bWlswXV09USksbiYmKE9iamVjdFtaWzJdXVtaWzBdXT1uKX19KSksQikrMl4yOSk+PUImJihCLTFeMTMpPEImJih2PUs9PXo/SzpnWzJdKDIyLEspKSxCKXw2KT4+NCkpYTpzd2l0Y2godHlwZW9mIGIpe2Nhc2UgImJvb2xlYW4iOnY9Znl8fChmeT1bMCx2b2lkIDAsITBdKTticmVhayBhO2Nhc2UgSzp2PWI+Sj92b2lkIDA6Yj09PTA/b0V8fChvRT1bMCx2b2lkIDBdKTpbLWIsdm9pZCAwXTticmVhayBhO2Nhc2UgQzp2PVswLGJdO2JyZWFrIGE7Y2FzZSB6OnY9YjticmVhayBhfXJldHVybihCLTUmMTEpPT0zJiYoej1SWzhdKDU5LHRoaXMpLEs9T1s0OF0oMzEsdGhpcyksdGhpcy5GJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5GLEspP3RoaXMueEpbel09dGhpcy5GW0tdOnRoaXMueEpbel09RFsxMV0oMSlbS10pLHZ9LGZ1bmN0aW9uKEIseiwKSyxKLEMsYixBLHYpe3JldHVybihCKygoQjw8MiYoQT1bOCw0NCwyNF0sQSlbMF0pPDImJkIrMj49LTQ2JiYoalk9eix0JC5Bcyh6KSksNSkmMjIpPEImJkItNzw8MT49QiYmKEogaW5zdGFuY2VvZiB4az9iPW1bQVsxXV0oQVsyXSx6LEopOmI9THkudGVzdChKKT9KOnZvaWQgMCxDPWIsQyE9PXZvaWQgMCYmKEsuaHJlZj1DKSksdn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oQi0zfCgoQiYxOSk9PShDPVsxMywidiIsMjJdLEIpJiYoSj1SW0NbMF1dKDQ3LEhbMjVdKDU5LE9bOV0oMjEsMTcpLHopLFtPWzI1XSgzLEspXSkpLENbMl0pKT49QiYmKEIrNV5DWzBdKTxCJiYodGhpc1tDWzFdXT16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEI+PjImKHY9WzUsNCwzXSx2WzBdKXx8KHA9SFs0NF0oODMsSyxSRSx6LEopKSxCLXZbMV0pPDwxPj1CJiYoQi12WzJdXjI0KTxCKUdbMTNdKDMzLGZ1bmN0aW9uKFEpe3JldHVybiBRLnYoKEE9Qy5JLmJpbmQoQyxiKSwobmV3IFByb21pc2UoZnVuY3Rpb24obil7cmV0dXJuIGtbMzBdKDMzLAp6LEssbil9KSkudGhlbihmdW5jdGlvbigpe3JPP3JPKEEpOlZKKEEpfSkpLEopfSk7cmV0dXJuIEIrNj4+dlsxXT49MSYmQi02Pj52WzFdPDEmJihEWzJdKDksMSx6LEMsZnVuY3Rpb24oUSxuLFosVyxOKXtuIT0oWj1bMCwoTj1bbnVsbCwwLDJdLDMpLDFdLE5bMF0pJiYoKFc9Z1s0MF0oMjQsWltOWzFdXSxaW05bMl1dLCJudW1iZXIiLFEsSikpP1coYixuLFEpOlE8S3x8bVs0N10oTlsyXSxaW05bMl1dLEdPLFpbMV0pKX0sQ1tBJF18MCksKEE9eVsyMl0oMjMsQykpJiZEWzM3XSgxMSxmdW5jdGlvbihRLG4sWixXLE4pe2ZvcihIWyhOPVs0NSwzNSwwXSxOKVswXV0oTlsxXSxiLnYuZW5kKCksYiksVz1OWzJdO1c8Wi5sZW5ndGg7VysrKUhbTlswXV0oNjcsZ1szMF0oNiwyLFpbV10pfHxuZXcgVWludDhBcnJheSgwKSxiKX0sQSkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKChCJihaPVsyOSwyLDZdLDE1KSk9PUImJihBPVs0LG51bGwsITBdLGI9ei5WZSgpLApDPShKPT1BWzFdPzA6Si5zMyk/Si5zMygpOnZvaWQgMCxwPShKPT1BWzFdPzA6Si5BeSk/Si5BeSgpOnZvaWQgMCxRPW5ldyBZTCx2PWtbWlsyXV0oMzAsWlsxXSxRLGI/Yi5sZW5ndGg6MCksQyYmKEhbNDldKDUwLDEsQyx2KSxlWzQzXSg2MSxLLEFbWlsxXV0sQVswXSkpLHAmJihIWzQ5XSg0NCwzLHAsdiksZVs0M10oWlswXSxLLEFbWlsxXV0sQVswXSkpLEhbNDRdKDg0LEssWUwsNSx2KSwoMCx0JC5BcykoSykpLEItWlsyXT4+NDwxKSYmQi01Pj4zPj0xJiYoSj0iIix6PXp8fHt9LEs9ei5RbyxIWzQ1XSg3NixISCgpLEssaW0oKSxlaCgpKXx8KEorPSJQcmVzcyBSIHRvIHJlcGxheSB0aGUgc2FtZSBjaGFsbGVuZ2UuICIpLG49VEQoSisnUHJlc3MgdGhlIHJlZnJlc2ggYnV0dG9uIHRvIGdldCBhIG5ldyBjaGFsbGVuZ2UuIDxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3JlY2FwdGNoYS8jNjE3NTk3MSIgdGFyZ2V0PSJfYmxhbmsiPkxlYXJuIGhvdyB0byBzb2x2ZSB0aGlzIGNoYWxsZW5nZS48L2E+JykpLApCfDMyKT09QilhOmlmKHomSil7bj01MTImSj81MTI6SyZKPzEwMjQ6MDticmVhayBhfXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEIrKCgoQis2XigoKGI9WzAsNCwxNV0sQikmNzcpPT1CJiYoQz1SWzEzXSgzOSxIWzI1XSg1NyxPWzldKDE4LGJbMl0pLHopLFtnWzE2XSgzOCxLKSxnWzE2XSgzMCxKKV0pKSwyMSkpPEImJihCKzEmNDcpPj1CJiYoej1EWzExXSg4KS5uYXZpZ2F0b3IudXNlckFnZW50RGF0YSxDPVJbNDRdKDgsMyxrWzM3XSg0OCwyLHlbMTFdKGJbMV0sMSwxNixuZXcgUEgsei5icmFuZHMubWFwKGZ1bmN0aW9uKEEsdixwLFEpe3JldHVybihwPShRPVsyMywzMCwiYnJhbmQiXSxuZXcgZ3IpLHY9bVtRWzBdXShRWzFdLEFbUVsyXV0scCwxKSxtKVtRWzBdXShRWzBdLEEudmVyc2lvbix2LDIpfSkpLHoubW9iaWxlKSx6LnBsYXRmb3JtKSksKEJ8ODApPT1CKSYmJE0uY2FsbCh0aGlzLHFwLHopLDkpPj4zPj1iWzBdJiYoQnwyKTwxNiYmVC5jYWxsKHRoaXMsCnopLChCXjU3KT4+YlsxXSl8fCh6PUVycm9yKCksZ1szOF0oNDkseiwiaW5jaWRlbnQiKSxjNz95WzE2XSgxMSx6KTpPWzQ1XShiWzFdLHopKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKCgoQi0xXjIzKTwoWj1bMzcsMjUsNDBdLEIpJiYoQi05fFpbMl0pPj1CJiYocD1EW1pbMV1dKDksInxbIixiLnYpPT09InZpc2libGUiLFlbMzVdKDQ4LGIudix7dmlzaWJpbGl0eTpBPyJ2aXNpYmxlIjoiaGlkZGVuIixvcGFjaXR5OkE/IjEiOiIwIix0cmFuc2l0aW9uOkE/InZpc2liaWxpdHkgMHMgbGluZWFyIDBzLCBvcGFjaXR5IDAuM3MgbGluZWFyIjoidmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4zcywgb3BhY2l0eSAwLjNzIGxpbmVhciJ9KSxwJiYhQT9iLlM9T1syXSg1NSxmdW5jdGlvbigpe1lbMzVdKDQwLHRoaXMudixDLCItMTAwMDBweCIpfSxLLGIpOkEmJihrWzE2XSg1NixiLlMpLFlbMzVdKFpbMl0sYi52LEMsIjBweCIpKSx2JiYoUT1EWzExXSgxMCkuaW5uZXJIZWlnaHQsCmVbMTRdKDI2LHosWVs0N10oMzMsITEsYiksbDkodi53aWR0aCxEWzExXSgxMSkuaW5uZXJXaWR0aCksbDkodi5oZWlnaHQsUSkpLGVbMTRdKDIzLHosZ1syNl0oMjEsSixZWzQ3XShaWzBdLCExLGIpKSx2LndpZHRoLHYuaGVpZ2h0KSx2LmhlaWdodD5RJiZBJiZZWzM1XSgzMixZWzQ3XShaWzJdLCExLGIpLHsib3ZlcmZsb3cteSI6ImF1dG8ifSkpKSxCLTl8NTUpPEImJihCKzleMTEpPj1CJiZlWzQ1XSgxOSwxLEssSix6KSYmeVszM10oNjMsMSxLLEoseiksKEIrMSY4KTw2JiYoQl40Mik+PS02MSkmJihuPVBiKGZ1bmN0aW9uKFcsTix4KXtyZXR1cm4oTj0oeD1mdW5jdGlvbihmLEwpe3JldHVybigoTD1bInJlcGxhY2UiLCJpbmRleE9mIiwidHJpbSJdLGZbTFsxXV0oQTgoKSkpIT0tMSYmKGY9Zi5zbGljZShmW0xbMV1dKEE4KCkpKSksZltMWzBdXSgvXHMrL2csbzkoKSlbTFswXV0oL1xuL2cseikpW0xbMl1dKCl9LHgoeitKKSksVz14KHorQyksTik9PVd9LEspKSxufSxmdW5jdGlvbihCLAp6LEssSixDKXtyZXR1cm4oKEJ8KChKPVszLDEyNiwxOV0sQiZKWzFdKT09QiYmViQuY2FsbCh0aGlzKSw1KSkmSlswXSk9PTEmJihLPUVSLmdldCgpLEM9WVtKWzJdXSgzNix6LEspKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZihBPVsidiIsMjA0OCwhMF0sIShCPDwxJjcpKWE6e2lmKEtbQVswXV0hPT1jTCl7Yj0hMTticmVhayBhfUtbSy5NPShLLmFUPSgoSj1DPShDPUsuYVQsTylbMThdKDQsMzQsQ1tBJF18eixDKSxPKVsxNF0oNjQsQVsxXSxKKSxKKSx2b2lkIDApLEFbMF1dPXZvaWQgMCxiPUFbMl19cmV0dXJuKEJeMzcpPj4zfHwoYj1SZWdFeHAoIl5odHRwczovL3d3dy5nc3RhdGljLmMuLj8vcmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdi9yZWNhcHRjaGFfXy4qIikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQiY4Mik9PShaPVsiVyIsIndpbmRvdyIsIlIiXSxCKSl7aWYodGhpcy51Nz10aGlzLmtuPSh0aGlzLmlkPQoocD0odGhpcy52PW5ldyBpWSgoYj1bMCwxRTUsbnVsbF0seikpLHdpbmRvdylbaTNdLHRoaXMudi5nZXQoeUopKT9iWzFdK3BbWU0oKV0rKzpwW2M4KCldKyssSiksdGhpcy5nPUssdGhpcy52LmhhcyhjSCkpe2lmKEM9ZVszNV0oODksYlsyXSx0aGlzLnYuZ2V0KGNIKSksIUMpdGhyb3cgRXJyb3IoU2goKSk7dGhpcy51Nz1DfSh0aGlzLkM9KHY9KChRPSh0aGlzLkg9KCh0aGlzW3RoaXMuUD0odGhpcy5YPSh0aGlzLm09KCh0aGlzLmk9KHRoaXNbKHRoaXMuQT0odGhpcy5vPWJbMl0sbmV3IG14KSx0aGlzKS5NPWJbMl0sWlsyXV09YlsyXSxiWzJdKSx0aGlzKS5VPW5ldyBsWSxiWzBdKSxiKVsyXSxPKVs0MV0oMjcpLFpbMF1dPWJbMl0sdGhpcykuaj0hMCwhMSksSFsyXSg0Myx0aGlzLnYsU0IpPT09IjZMZVlxRmNxQUFBQUFENmlaZXNtTmdWdWxzTzRQa3BCZHI2TlZHNk0ifHxIWzJdKDU5LHRoaXMudixTQik9PT0iNkxlYjdLTXBBQUFBQUFtMjBER05kV19PN2Z1VzRoRUNwNFBwRTZjSSJ8fApIWzJdKDQzLHRoaXMudixTQik9PT0iNkxmd21RRW9BQUFBQU9jTXYxZ0VpODVrSFBjSVpyQ3Fwem9HQlJlRSJ8fEhbMl0oMTEsdGhpcy52LFNCKT09PSI2TGNIVzlVWkFBQUFBTHR0UXo1b0RXMXZLSDUxcy04X2dET3MtcjRuIil8fEhbMl0oNTksdGhpcy52LFNCKT09PSI2TGZNc0o0a0FBQUFBT2N1RlNTamE1VGVSdm9pMjZTZXhtRzJvM0w2Inx8SFsyXSgxMSx0aGlzLnYsU0IpPT09IjZMY1hVOWNtQUFBQUFNWEJpaHA5MlM3clZyY0wtLVNnYUwweUxDUUciLEE9R2xbWlsxXV1baTNdW0VsLmdldE5hbWUoKV0sdGhpcy5PPVE/OEU0OkEmJkEubGVuZ3RoPmJbMF0/QVtiWzBdXToyRTQsdGhpcykudi5zZXQoRWwsdGhpcy5PKSxHbClbWlsxXV1baTNdW1g4LmdldE5hbWUoKV0sUT82RTQ6diYmdi5sZW5ndGg+YlswXT92W2JbMF1dOjNFNCksdGhpcy52KS5zZXQoWDgsdGhpcy5DKSxnWzJdKDEsIi0iLCExLHRoaXMsMSl9aWYoISgoKEItMV4xNSk+PSgoQj4+MSYxNSk9PTImJihuPU9bMTRdKDE0LApudWxsLEhbNF0oOTQseixLLGwsUUIpKSksQikmJihCLTJeMTIpPEImJihuPVJbNDhdKDcyLEssRXMseixsKSksQiktNiYxNSkpe2ZvcihiIGluIEM9KEo9eixbXSksSylDW0orK109YjtuPUN9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKCgoKFo9KChCJjkwKT09QiYmKEs9ei5uYixRPXouYU4sdj16Lmx5LEM9ei5jbz09PXZvaWQgMD8hMTp6LmNvLHRoaXMucEQ9ei5wRCxKPXoud3osdGhpcy5jbz1DLHRoaXMubHk9dix0aGlzLnd6PUosYj16LktiLHRoaXMuV0E9ei5XQSxwPXoucGI9PT12b2lkIDA/bnVsbDp6LnBiLHRoaXMubmI9Syx0aGlzLmFOPVEsdGhpcy5OST1BPXouTkksdGhpcy5wYj1wLHRoaXMuS2I9Yix0aGlzLlFOPW49ei5RTiksWyJMIiwxLDE4XSksQileMzYpJjE1KT09MilhOntLPUpxO3RyeXtXPUsuY29udGVudFdpbmRvd3x8KEsuY29udGVudERvY3VtZW50P0RbMTFdKDgsSy5jb250ZW50RG9jdW1lbnQpOm51bGwpO2JyZWFrIGF9Y2F0Y2goTil7fVc9Cnp9cmV0dXJuKChCKzImNTIpPj1CJiYoQi02XlpbMV0pPEImJihYZy5jYWxsKHRoaXMsQkwpLHRoaXMuWGc9W10sdGhpcy5qPTAsdGhpcy5IPVtdLHRoaXMudj1bXSx0aGlzW1pbMF1dPSExKSwoQi05XlpbMl0pPj1CJiYoQis5JjU3KTxCKSYmVC5jYWxsKHRoaXMseiksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEItKChiPVs4LCJhZGQiLDFdLEImNjEpPT1CJiYoQz1uZXcgdVksQ1tiWzFdXShhRSxIWzJdKDQzLEoudixTQikpLENbYlsxXV0oaHEseiksQ1tiWzFdXShkTywiQTdLcGFFQVNmaERjSzBuWHhnUUV5eVl2IiksQ1tiWzFdXShrTSxEYXRlLm5vdygpLUoubSksd2luZG93W2kzXVt0cSgpXSYmQ1tiWzFdXShVcyxLKSxBPWtbNDddKDksWk8pKyI/IitDLnRvU3RyaW5nKCkpLChCXjMwKT4+NHx8KEE9Uls0OF0oNzUsSyxNcCx6KSksMileNCk+PUImJihCK2JbMF0mMjUpPEImJih6PXRoaXMubGVuZ3RoLEE9dGhpcy5QbCh6LWJbMl0pPD0zMjc2Nz96KjItYlsyXToKeioyKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZighKEI8PDEmKCgoKEJ8OSk+PigoKFE9WzMxLCIuIDwvZGl2PiIsNTJdLEIpXjExKT4+ND09NCYmKHA9SFsyMV0oNDUsSyx6LGwpKSw0KXx8KEo9WyJyZWNhcHRjaGEtYWNjZXNzaWJsZS1zdGF0dXMiLCJyYy1hbmNob3ItYXJpYS1zdGF0dXMiLCc8ZGl2IGlkPSInXSxLPUhbNDVdKDQwLEVPKCkseixpbSgpLGNmKCkpLHA9VEQoSlsyXStSWzExXSg5LEpbMF0pKyciIGNsYXNzPSInK1JbMTFdKDcsSlsxXSkrJyIgYXJpYS1oaWRkZW49InRydWUiPicrRFszOV0oMixLKStRWzFdKSksQil8NTYpPT1CJiYocD1ZWzE5XSgzNyx6LEspKSwxNCkpKUdbMTNdKDE3LGZ1bmN0aW9uKG4sWixXKXtmb3IoVz1bMTEsIk0iLDldLFo9MjM7WiE9MTA7KXtpZihaPT0zMClyZXR1cm4gdj1uLlgsbi52KHdPKHYub3UoKSksQyk7aWYoWj09NDkpQT1uLlgsSFs1XSgyNSxEW1dbMF1dKFdbMF0pLElFLGZ1bmN0aW9uKE4seCxmLEwscixWLApQLHEsYyxFLFMsYSx1LFgsZCl7Zm9yKFg9WyJvdSIsIm5ld1ZhbHVlIiwwXSxkPTY4O2QhPTk0OylkPT02OD8oYz1bNkU0LCItXFxkKyQiLCItIl0scj1OLmVxLGQ9ODMpOmQ9PTg5Pyh4PW5ldyBGZyxxPW1bMjNdKDI4LHIua2V5LHgsMSksVj1iTihwZXJmb3JtYW5jZS5ub3coKS9jW1hbMl1dKSxTPWtbNl0oNTYsSyxxLFYpLFA9a1szNV0oMzIsIiIrYnx8IiIsOCksZj1tWzIzXSgzMCxQLFMsQyksTD1IWzQ0XSg2NyxmLEJOLEosdi5QdigpKSxhPUFbWFswXV0oKSxFPW1bMjNdKDMyLGEsTCx6KSx1PWVbNDZdKDI1LEMsRS5UKCkpLGcwWzRdKDIsci5rZXkrY1syXStrWzM1XSgzMixIWzM5XSg3MiwxLGdbMTRdKDIsZHkpKXx8IiIpLHUsWFsyXSksT1syXSgzOSxlWzQyXS5iaW5kKG51bGwsNiksMTEpLGQ9OTQpOmQ9PTgzJiYoZD1yLmtleSYmcltYWzFdXSYmci5rZXkubWF0Y2goZ1sxNF0oNyxzcCkrY1sxXSk/ODk6OTQpfSksbi5SKCksWj0xMDtlbHNle2lmKFo9PTEzKXJldHVybiBuLnYoeiQoZVszMV0oMjIpLAptWzM1XSg0MykpLEspO1o9PVdbMl0/Wj1uW1dbMV1dIT1DPzMwOjQ5Olo9PTIzJiYoWj1uW1dbMV1dPT0xPzEzOldbMl0pfX19KTtpZigoQiYzOSk9PUIpYTp7aWYoYj1aZihOdW1iZXIoSikpLE51KGIpJiZiPj16KXtwPUdbUVswXV0oODUsYik7YnJlYWsgYX1wPShDPUouaW5kZXhPZihlQygpKSxDIT09LTEmJihKPUouc3Vic3RyaW5nKHosQykpLGdbMjJdKFFbMl0pP0dbUVswXV0oODYsS3coNjQsQmlnSW50KEopKSk6R1tRWzBdXSg4Mix5WzQ3XSgzMyw4LEssSikpKX1yZXR1cm4gcH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7cmV0dXJuKCgoQisoKEImKCgoQisoVz1bJyI+PC9kaXY+JywiUEYiLDExXSw2KSYxNSk9PTQmJihaPWd3KHRoaXMuSDEodGhpcy5sZW5ndGgtMSkpKSwoQi04fDMyKTxCJiZCKzc+PjE+PUIpJiYoQT1BPT09dm9pZCAwPyExOkEsUT1iLnYuQyxuPUhbNDNdKDEsQyxLLFsoMCx0JC55NSkoYi5KTC5iaW5kKGIscCksMiksYi5SXSkudGhlbihmdW5jdGlvbihOLAp4LGYsTCl7cmV0dXJuIHg9KGY9KEw9Z1sxMl0oMTEsTiksTCkubmV4dCgpLnZhbHVlLEwubmV4dCgpLnZhbHVlKSwoMCx0JC55NSkoZnVuY3Rpb24ocixWLFAscSxjLEUpe3JldHVybiByPShWPShQPShxPUdbMzldKDQxLHlbMzZdKDIsMjcsMywoRT1bIkoiLCJ2IiwoYz14LnNlbmQsMTkpXSxmKSx2LGIpKSxiLm5xKSxkaylbRVswXV0oKS5nZXQoKSxZKVtFWzJdXSg2OSwxNixWKSxjLmNhbGwoeCxUZCxuZXcgRnQocSxQLCEoIXJ8fCFiW0VbMV1dW0VbMV1dKSxBKSl9LHopfSlbV1sxXV0oZnVuY3Rpb24oKXt9KSxPWzJdKDM5LGZ1bmN0aW9uKCl7bi5jYW5jZWwoKSxiLmwodixKNSl9LDE1RTMqKEorUSkpLFo9biksNDIpKT09QiYmKEs9ei50QixKPVsnIj48L2NhbnZhcz48aW1nIGNsYXNzPSInLCc8ZGl2IGlkPSJyYy1jYW52YXMiPjxjYW52YXMgY2xhc3M9IicsInJjLWNhbnZhcy1pbWFnZSJdLFo9VEQoSlsxXStSW1dbMl1dKDM5LCJyYy1jYW52YXMtY2FudmFzIikrSlswXStSW1dbMl1dKDksCkpbMl0pKyciIHNyYz0iJytSW1dbMl1dKDM5LE9bMF0oMTksIiIsSykpK1dbMF0pKSw4KSY2Mik8QiYmKEItOHw2OSk+PUImJih0aGlzLkliPTEwMjQpLEIpfDQ4KT09QiYmKHouVXx8KHouVT1uZXcgd0UoeikpLFo9ei5VKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIEItOD4+Mz09KChDPVs2LDEwLCIiXSxCJjQ3KT09QiYmKGI9R1tDWzFdXSg5MCxDdyxLKT9tWzE3XSgxOSxLLlZlKCksITEpOks9PXo/IiI6SyBpbnN0YW5jZW9mIGVXP21bMTddKENbMF0sR1sxN10oMjgsQ1syXSxLKSwhMSk6bVsxN10oMjAsU3RyaW5nKEspLCEwKSksMSkmJih0aGlzLk09Six0aGlzLnBEPXosdGhpcy52PUspLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoKEItKE49WyJjb25zdHJ1Y3RvciIsMSwwXSw1KSYxMXx8R0QuY2FsbCh0aGlzLE5bMl0sTlsyXSx1RixidSksQnwzKSYxNCk9PTIpYTp7aWYoKG49SysoQz8wOi0xKSx2PWIubGVuZ3RoLShXPQpbbnVsbCwwLDEwMjNdLE4pWzFdLHY+PU5bMV0rKEM/MDotMSkpJiZuPj12JiYocD1iW3ZdLHAhPVdbTlsyXV0mJnR5cGVvZiBwPT09Im9iamVjdCImJnBbTlswXV09PT1PYmplY3QpKXtwW0tdPSh4PUoseik7YnJlYWsgYX1pZihuPD12KXt4PUosYltuXT16O2JyZWFrIGF9eD0oeiE9PXZvaWQgMCYmKFE9KChaPUopIT1XW05bMl1dP1o6Sj1iW0EkXXxXW05bMV1dKT4+MTQmV1syXXx8NTM2ODcwOTEyLEs+PVE/eiE9V1tOWzJdXSYmKEE9e30sYltRKyhDPzA6LTEpXT0oQVtLXT16LEEpKTpiW25dPXopLEopfXJldHVybihCPj4yJjE1KT09KChCfCgoQiY3NSk9PUImJihDPUoueWUoQTUpLHg9T1syM10oNDIsQyxLKS5zdWJzdHJpbmcoeikpLDI0KSk9PUImJlQuY2FsbCh0aGlzLHosTlsyXSx2Ti5SVCksTlsxXSkmJih4PWtbMTVdKDQ2LHopPj4+TlsyXSkseH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKChCPj4odj1bIkZnIiwicGciLDExMF0sMSk8MjMmJihCLTMmMTQpPj0KNiYmKHRoaXMuTXg9enwwLHRoaXMuaD1LfDApLChCXjcwKT4+NCl8fFQuY2FsbCh0aGlzLHopLEIpJnZbMl0pPT1CJiYoSj1KPT09dm9pZCAwP1tdOkosdGhpc1t2WzBdXT0tMSx0aGlzLkNpPXosdGhpcy5KTD0tMSx0aGlzLnpWPUssdGhpcy5vej0tMSx0aGlzLnJiPVtdLHRoaXMua1c9W10sdGhpcy5PPS0xLHRoaXMueHc9Z1s3XSgzNiksdGhpc1t2WzFdXT1KLHRoaXMueXk9ITApLEItODw8MT49QiYmKEIrNl4yOSk8QiYmKGdbNDFdKDUwLEspLGI9Sy5hVCxZWzI1XSg5OCwoQz09PSIwIj9OdW1iZXIoSik9PT0wOko9PT1DKT92b2lkIDA6Six6LGJbQSRdfDAsdm9pZCAwLGIpLEE9SyksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKHA9WzE3LCJ0aHJvdyIsMTNdLChCJjgzKT09QikmJih0aGlzW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gen0sdGhpcy5uZXh0PQpmdW5jdGlvbihuKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHoubmV4dChuKSl9LHRoaXNbcFsxXV09ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKFosVyxOLHgpeyhOPXpbInRocm93Il0sTiE9PXZvaWQgMCk/WihOLmNhbGwoeixuKSk6KHg9elsicmV0dXJuIl0seCE9PXZvaWQgMCYmeC5jYWxsKHopLFcobmV3IFR5cGVFcnJvcigibm8gYHRocm93YCBtZXRob2QiKSkpfSl9LHpbInJldHVybiJdIT09dm9pZCAwJiYodGhpc1sicmV0dXJuIl09ZnVuY3Rpb24obil7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh6WyJyZXR1cm4iXShuKSl9KSksKEJ8OCk9PUImJihRPXogaW5zdGFuY2VvZiB5Nj95WzE1XSgyOCx6KTpuZXcgeTYoeikpLChCfDMyKT09QilHW3BbMl1dKHBbMF0sZnVuY3Rpb24obixaKXsoKHY9ZVs4XSgxNSxDLGIsKFo9WzE4LCJsb2NhdGlvbiIsInN0YXJ0c1dpdGgiXSxUJCkpLChBPXYuZ2V0TmFtZSgpKSYmQVtaWzJdXShqZSgpKSkmJnB3LnNldChBLApZWzM0XSg1LEosdix2b2lkIDAsbCkse1ZOOlJbNDhdKDcxLHYsUUQseixsKT9EW1pbMF1dKDc3LFJbNDhdKDc0LHYsUUQseixsKS5nZXRTZWNvbmRzKCkpOnZvaWQgMCxwYXRoOm53KCksc2FtZVNpdGU6WlMsc2VjdXJlOks9PWRvY3VtZW50W1pbMV1dLnByb3RvY29sPyEwOiExfSksbikuUigpfSk7cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCEoKChCXjIpJihRPVsyNSwxNSwxM10sUVsxXSkpPT0zJiYoQT1uZXcgV04sYj1uZXcgQWJvcnRDb250cm9sbGVyLHY9c2V0VGltZW91dChmdW5jdGlvbigpeyhiLmFib3J0KCksbSlbNF0oOTIsQSxncCgpLEssQyl9LDFFNCksZmV0Y2goSix7c2lnbmFsOmIuc2lnbmFsfSkudGhlbihmdW5jdGlvbihuKXsoY2xlYXJUaW1lb3V0KHYpLG4ub2spP21bNF0oOTUsQSxORygpLHosQyk6bVs0XSg5NCxBLE9wKCksSyxDKX0pLmNhdGNoKGZ1bmN0aW9uKCl7KGNsZWFyVGltZW91dCh2KSxtKVs0XSg5MyxBLHhKKCksSywKQyl9KSksQjw8MiZRWzJdKSlHW1FbMl1dKFFbMF0sZnVuY3Rpb24obixaKXtpZigoWj1bIlgiLCJ2VyIsIkMiXSxuLk0pPT1LKXJldHVybih2PUMuUykhPUomJnYuc2l6ZT9uLnYoQy5OeC5zZW5kKE5SLG5ldyBEUyhDLlMpKSx6KTpuLnJldHVybigpOyhBcnJheS5mcm9tKChBPW5bWlswXV0sYj1uZXcgTWFwKEEuTTcpLGIua2V5cygpKSkuZm9yRWFjaChmdW5jdGlvbihXKXtyZXR1cm4gQy5TWyJkZWxldGUiXShXKX0pLENbWlsyXV09Q1taWzJdXS5jb25jYXQoQXJyYXkuZnJvbShiLnZhbHVlcygpKS5tYXAoZnVuY3Rpb24oVyl7cmV0dXJuIG5ldyBhOShXKX0pKSxDKS5BTD1BW1pbMV1dLG4uUigpfSk7cmV0dXJuKEJ8MjQpPT1CJiYoej1SWzhdKDYwLHRoaXMpLEo9T1s0OF0oNjMsdGhpcyksSz1PWzQ4XSg2NCx0aGlzKSx0aGlzLnhKW3pdPUorSykscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSl7aWYoKChoPQpbMTUsbnVsbCwxXSxCKSYxMjQpPT1CKXtmb3Iodj0oSyYodT0obj0oZD0hIShLJihBPSghKGI9KGY9WyExLDEsKHE9KFc9RFtoWzBdXSg3MixNYSksYiE9PXZvaWQgMCksMTI4KV0sISFiKSxxKSYmTjAmJlcmJihFPUpbV10pJiZEWzM3XSgxNCxlWzQ3XS5iaW5kKGhbMV0sMyksRSksdD1bXSw0Mjk0OTY3Mjk1KSx6KSksZlswXSksTj1kP0smZlsyXT8wOi0xOnZvaWQgMCxKLmxlbmd0aCksZltoWzJdXSl8fChWPXUmJkpbdS1mW2hbMl1dXSxWIT1oWzFdJiZ0eXBlb2YgVj09PSJvYmplY3QiJiZWLmNvbnN0cnVjdG9yPT09T2JqZWN0Pyh1LS0sQT11KTpWPXZvaWQgMCwhZHx8SyZmWzJdfHxxfHwobj0hMCxBPSgoTD1mdykhPWhbMV0/TDpvVikoQS1OLE4sSixWLHZvaWQgMCkrTikpLFo9MCx2b2lkIDApO1o8dTtaKyspWD1KW1pdLFghPWhbMV0mJihYPUMoWCxiKSkhPWhbMV0mJihkJiZaPj1BPyhjPVotTixhPXZvaWQgMCwoKGE9dikhPWhbMV0/YTp2PXt9KVtjXT1YKTp0W1pdPVgpO2lmKFYpZm9yKHIgaW4gVilRPQpWW3JdLFEhPWhbMV0mJihRPUMoUSxiKSkhPWhbMV0mJihwPXZvaWQgMCx4PStyLGQmJiFOdW1iZXIuaXNOYU4oeCkmJihwPXgrTik8QT90W3BdPVE6KFM9dm9pZCAwLCgoUz12KSE9aFsxXT9TOnY9e30pW3JdPVEpKTtNPSgodiYmKG4/dC5wdXNoKHYpOnRbQV09dikscSkmJkRbaFswXV0oNDgsTWEpJiYoUD15WzIyXSgxOSxKKSkmJlAgaW5zdGFuY2VvZiBXVSYmKHRbTWFdPWVbNDNdKDQsUCkpLHQpfWlmKChCJjkwKT09QilhOntpZih2PShPW2hbMF1dKDIwLEMsYi52KSxiKS52Llcpe009ZzBbM10oNDIsSyxBLGIudi5yZXR1cm4sYiwicmV0dXJuImluIHY/dlt6XTpmdW5jdGlvbihVKXtyZXR1cm57dmFsdWU6VSxkb25lOiEwfX0pO2JyZWFrIGF9TT0oYi52LnJldHVybihBKSxEWzEwXSgzNixKLGIpKX1pZighKChCK2hbMl1eMTkpPEImJihCLTN8MjEpPj1CJiYoTT1OdShKKT9HWzMxXSg4NCxIWzQ0XSg3NCwwLEoseikpOkdbMzFdKDg4LHlbMl0oMzMseixLLEopKSksQjw8aFsyXSYKMTMpKWtbNl0oMzAseixLLEopO3JldHVybiBNfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIEItKChCJihDPVsyMywyLCJ5ZCJdLENbMF0pKT09QiYmKEo9ej09PXZvaWQgMD97fTp6LEtbQ1syXV09SltDWzJdXT09PXZvaWQgMD8hMTpKW0NbMl1dKSw0KSZDWzFdfHwoYj16LmdldCh3cik9PUx3KSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoQjw8MSY3KT49KEE9WyIiLCJNIiwyMF0sMykmJihCKzcmNCk8MilhOntpZih6IGluc3RhbmNlb2YgSGwpe2I9ei52O2JyZWFrIGF9dGhyb3cgRXJyb3IoQVswXSk7fXJldHVybihCLTh8MTUpPj1CJiZCKzQ+PjI8QiYmKEtbQVsxXV09Qz9rWzEyXShBWzJdLEoseik6SixLW0FbMV1dJiYoS1tBWzFdXT1LW0FbMV1dLnJlcGxhY2UoLzokLyxBWzBdKSksYj1LKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSl7aWYoKEI+PjImKChCfDI0KT09KCgocT1bMywiUiIsMF0sQj4+MiYxNSl8fAooUD1HWzEzXSgxNyxmdW5jdGlvbihjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSl7aWYoYy5NPT0oSlk9WzEyLCJ2IiwwXSx1PVsxLCJDaG9vc2VTZXJ2ZXIgcmVzcG9uc2UgaXMgbWlzc2luZyBnc2Vzc2lvbmlkIiwxRTZdLHVbSllbMl1dKSlyZXR1cm4gTD1uZXcgUlYsdz1uZXcgcnAsZD1IWzQ0XSg2Nyx3LFZELHVbSllbMl1dLEEpLGg9a1s2XSg1OSw0LGQscCksTj1rWzZdKDI1LHosaCx2KSxRJiYoWD1RLmkhPUM/RFszOF0oMTgsSyxRLmkpL3VbMl06dm9pZCAwLE09bVszOF0oMjQsIjogIixKLE4sWCksUz1RLlghPUM/T1syNl0oMTgsUS5NLm5vdygpKjFFMykuYWRkKFEuWCk6dm9pZCAwLFU9KGY9Uyk9PUM/dm9pZCAwOmYudG9TdHJpbmcoKSxIWzQ5XSgyNSwzLFUsTSkpLGNbSllbMV1dKFJbMTldKDI2LGIuTSxHJCxITixOLERbMjFdKDEsYltKWVsxXV0pKSxKKTtpZigoYT0oc3c9KHQ9KEI4PU9bMzZdKEpZWzBdLHVbSllbMl1dLHlbMTddKDExLChFPUwsbj1jLlgsCkMpLDQsbikpLE9bMzZdKEpZWzBdLHVbSllbMl1dLHlbMTddKEpZWzBdLEMseixuKSkpLE8pWzI2XSg2NixFLk0ubm93KCkqMUUzKSx5WzJdKDkzLEI4LHQpKSxFKS5pPXlbMl0oOTIsYSx5WzJdKDkxLEVbSllbMV1dLHN3KSksRS5YPXlbMl0oOTIsc3cseVsyXSg5MyxFW0pZWzFdXSxCOCkuYWRkKHQpKS5kaXYoT1syNl0oODIsSikpLFo9ZVsyXSgzNyx1W0pZWzJdXSx2b2lkIDAsbiksWj09Qyl0aHJvdyBFcnJvcih1WzFdKTtyZXR1cm4gYy5yZXR1cm4oe2pGOlosc2w6KHg9Z1sxNl0oNzUsdm9pZCAwLG4sSikpIT1DP3g6MCxKcTooVz1EWzhdKDk1LEhbNF0oOTMsMyxuKSkpIT1DP1c6MCxsQjpMfSl9KSksKEJeMTYpPj5xWzBdKXx8KFA9Z1sxNl0oMjUsdm9pZCAwLEsseixRQikpLEIpJiYoUD1HWzEzXSgxNyxmdW5jdGlvbihjLEUpe2lmKChFPVsxLDgsIlgiXSxjLk0pPT1FWzBdKXJldHVybiBjLnYoeVtFWzFdXShFWzBdLEVbMF0seixuZXcgVkIoYixKLEMpKSx6KTsoKEE9Y1tFWzJdXSwKSy52KS5wb3N0TWVzc2FnZShBKSxjKS5SKCl9KSksMTMpKTw4JiZCPj4yPj0xOSl7aWYoTj0oZj0oTD0oZ1s0MV0oNTYsKHY9WzAsMiwhMF0sSykpLEsuYVQpLGtbMjJdKDg5LHZbcVsyXV0sdm9pZCAwLEMsTCxMW0EkXXx2W3FbMl1dLHZbMV0sdlsyXSxiLEspKSxWPXZbcVsyXV0sdltxWzJdXSksQXJyYXkuaXNBcnJheShKKSlmb3IocD1KLmxlbmd0aCxXPXZbcVsyXV07VzxwO1crKylRPUdbNDhdKDUsYixKW1ddKSxmLnB1c2goUSksKHI9eVsyXSg2LFEpKSYmIVYrKyYmKGZbQSRdJj0tOSkscnx8TisrfHxPWzE0XSg3Mix6LGYpO2Vsc2UgZm9yKFo9Z1sxMl0oNixKKSx4PVoubmV4dCgpOyF4LmRvbmU7eD1aLm5leHQoKSluPUdbNDhdKDQsYix4LnZhbHVlKSxmLnB1c2gobiksKEE9eVsyXSgzNixuKSkmJiFWKysmJihmW0EkXSY9LTkpLEF8fE4rK3x8T1sxNF0oNDAseixmKTtQPShOJiZIWzM2XSgyLEwpLEspfXJldHVybihCPj4xJjE1KT09MiYmKEtbcVsxXV0mJihlWzQ2XSgyNyxLW3FbMV1dKSwKS1txWzFdXT16KSxLLnYmJihLLlg9eixrWzE2XSg1NixLLkMpLEsuQz16LEdbMjVdKDIwLEspLGVbNDZdKDQzLEsudiksSy52PXopKSxQfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKEJ8KFo9WzEsNDksMTBdLChCXjI2KT4+NHx8KEM9ZWUoSyxKKSxuPUM9PXZvaWQgMHx8Qy5nZXQ9PXZvaWQgMHx8WVsxNl0oMiwiIiwhMSxDLmdldCxZW1pbMl1dKDY2LGZ1bmN0aW9uKFcpe3JldHVybiBXLnN0cmluZ2lmeX0pKT9LOm5ldyBWYihZW1pbMl1dKDMzLGZ1bmN0aW9uKFcpe3JldHVybiBXLnN0cmluZ2lmeSh6K0MuZ2V0KX0pKSksNDApKT09QilhOntpZihRUj09PShiPUhbMzNdKDI2KSx2PVsiRnhpT1MiLCIiLCEwXSxQTikpe249SFsyMl0oMTcsIk1TSUUiKT9SWzI5XSgxOCwiNy4wIixaWzBdLGIpOiIiO2JyZWFrIGF9UT0oQT1HW1pbMF1dKDQsImciLDMsYiksZ1s0Ml0oMjAsSyxaWzBdLEEpKTtzd2l0Y2goUVIpe2Nhc2UgJEo6aWYoZ1s4XSgxNywiT3BlcmEiKSl7bj0KUShbIlZlcnNpb24iLCJPcGVyYSJdKTticmVhayBhfWlmKG1bMjJdKDMxKT9nWzI4XSg3LHZbMl0sJEopOkRbMjBdKDMsIk9QUiIpKXtuPVEoWyJPUFIiXSk7YnJlYWsgYX1icmVhaztjYXNlIGpKOmlmKGtbMTddKDIsQykpe249UShbIkVkZ2UiXSk7YnJlYWsgYX1pZih5WzI0XShaWzFdLHZbMl0pKXtuPVEoWyJFZGciXSk7YnJlYWsgYX1icmVhaztjYXNlIFFVOmlmKGtbMjNdKDE1LEopKXtuPVEoWyJDaHJvbWUiLCJDcmlPUyIsIkhlYWRsZXNzQ2hyb21lIl0pO2JyZWFrIGF9fWlmKFFSPT09cUcmJk9bMzddKDgsdlswXSl8fFFSPT09UVImJkdbWlsyXV0oNCwiU2FmYXJpIil8fFFSPT09aXUmJm1bNDVdKFpbMl0seix2WzBdKXx8UVI9PT1uMSYmeVs0NV0oMTgseikpe249KHA9QVsyXSkmJnBbWlswXV18fHZbWlswXV07YnJlYWsgYX1uPXZbWlswXV19aWYoKChCfDIpJjExKT09Mil7Zm9yKGI9KEM9MCxbXSk7QzxKLmxlbmd0aDtDKz1LKWIucHVzaChuZXcgZXQoSltDK3pdLEpbQ10pKTsKbj1ifXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoKEI+PigoQT1bMSwyLDM1XSxCK0FbMF0+PjMpPT1BWzFdJiYodGhpcy5BQT16LHRoaXMuU0k9Six0aGlzLkpyPUssdGhpcy51Uj1DPXlvKSxBWzBdKSY4KTxBWzFdJiZCPj5BWzBdPj00JiYoYj1uZXcgdVksYi5hZGQoeUQsSi50b1N0cmluZygpKSx3aW5kb3dbaTNdW1lKKCldJiZiLmFkZChjTixLKSx3aW5kb3dbU2VdW21HKCldJiZiLmFkZChsdSxLKSx5WzI1XSgxNyxiLERbQVsyXV0oMzQseixDLnYpKSx2PURbMTJdKDMyLEssWWssYikpLEItMyl8MjMpPj1CJiZCLTg8PEFbMV08QiYmKEo9Sj09PXZvaWQgMD8iIjpKLHY9KGI9ZVtBWzFdXSgzNyx6LEMsSykpIT1udWxsP2I6Siksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQiYoKEItKHY9WzU2LCJ3aW5kb3ciLDNdLDUpXjEyKT49QiYmKEIrNl4yMik8QiYmKEdsW3ZbMV1dW2kzXXx8Z1s0Nl0oODAse30saTMpLEdsW3ZbMV1dW2kzXVtFcCgpXT09PQp2b2lkIDAmJihHbFt2WzFdXVtpM11bRXAoKV09ZnVuY3Rpb24ocCl7cmV0dXJuIG1bN10oNjgsSiwib25sb2FkIiwiLnJlYWR5IixwKX0sR2xbdlsxXV1baTNdW1hiKCldPWZ1bmN0aW9uKHApe3JldHVybiBIWzE0XSg1MCwhMCxDLHoscCl9LEdsW3ZbMV1dW2kzXVtjOCgpXT1KLEdsW3ZbMV1dW2kzXVtZTSgpXT1KLEdsW3ZbMV1dW2kzXVtTTigpXT17fSxHbFt2WzFdXVtpM11bJDAoKV09e30sR2xbdlsxXV1baTNdW3V1KCldPUssd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZjAoKSxmdW5jdGlvbigpe3JldHVybiBWYS5KKCkuc3RhcnQoKX0sITEpKSxiPSh3aW5kb3dbaTNdW2FWKCldfHxbXSkubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwP2g1OmRwfSksYi5sZW5ndGg9PUomJmIucHVzaChkcCksR2xbdlsxXV1baTNdW2FWKCldPVtdLEdsW3ZbMV1dW2kzXVtYYigpXShiKSxrWzMwXSgzNSwhMCwhMSxmdW5jdGlvbigpe3JldHVybiBHbC53aW5kb3dbaTNdW0VwKCldKGIpfSkpLHZbMF0pKT09CkIpaWYodHlwZW9mIEs9PT0ic3RyaW5nIilEWzQwXSgxLEssSix6KTtlbHNlIGZvcihDIGluIEspRFs0MF0odlsyXSxDLEtbQ10seik7cmV0dXJuIEItNzw8MjxCJiYoQi0xXjIwKT49QiYmSy52JiYoRFsyOV0oMTYseixLKSxLLnYuY2FuY2VsKCksSy52PXopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQis1Xih2PVsxMCw0MCwnPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiddLDI2KSk+PUImJihCLTleMTIpPEIpe2ZvcihiPShLPSc8ZGl2IGNsYXNzPSInK1JbMTFdKDcsKEE9WzEsKEM9ei5zb3VyY2VzLCIgIiksMF0sInJjLXByZXBvc2l0aW9uYWwtYXR0cmlidXRpb24iKSkrJyI+JyxDKS5sZW5ndGgsSys9IlNvdXJjZXM6ICIsSj1BWzJdO0o8YjtKKyspSys9dlsyXStSWzExXSg3MyxlWzExXSgxLCIiLENbSl0pKSsnIj4nK0RbMzldKHZbMF0sSitBWzBdKSsiPC9hPiIrKEohPT1DLmxlbmd0aC1BWzBdP0MxKCk6IiIpK0FbMV07cD1URChLKycoQ0MgQlktU0EpPC9kaXY+Rm9yIGVhY2ggcGhyYXNlIGFib3ZlLCBzZWxlY3QgaXQgaWYgaXQgc291bmRzIHNvbWVob3cgaW5jb3JyZWN0LiBEbyBub3Qgc2VsZWN0IHBocmFzZXMgdGhhdCBoYXZlIGdyYW1tYXRpY2FsIHByb2JsZW1zIG9yIHNlZW0gbm9uc2Vuc2ljYWwgd2l0aG91dCBvdGhlciBjb250ZXh0LiA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj5MZWFybiBtb3JlLjwvYT4nKX1yZXR1cm4oQl4KNTApPj40Pj0zJiYoQj4+MiY4KTw4JiZ6LmtleUNvZGU9PTEzJiZIWzE4XSg2NywhMSx0aGlzKSwoQnx2WzFdKT09QiYmKHRoaXMudj16LHRoaXMuc2l6ZT1DLHRoaXMuYm94PUssdGhpcy50aW1lPUoqMTcsZTcoSy5ib3R0b20tSy50b3ApKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQl4ocD1bInB1c2giLDEyLDU1XSxwKVsyXSk+PjM+PTEmJihCXjQpPDIwKWE6c3dpdGNoKHR5cGVvZiB6KXtjYXNlICJiaWdpbnQiOlE9ITA7YnJlYWsgYTtjYXNlICJudW1iZXIiOlE9RkUoeik7YnJlYWsgYTtjYXNlICJzdHJpbmciOlE9S3x8Z2Q/a0oudGVzdCh6KTohIXomJmlzRmluaXRlKHopO2JyZWFrIGE7ZGVmYXVsdDpRPSExO2JyZWFrIGF9cmV0dXJuKEJ8KChCLTMmN3x8VC5jYWxsKHRoaXMseiksKEJ8NDgpPT1CKSYmKEs9PT0wfHxiLmluY2x1ZGVzKEspLEE9Uls0NV0oMixudWxsLEMpLHY9R1twWzFdXSgyLG51bGwsQyxKLEEseixiKSx2IT09SyYmKHYmJih6PVlbMjVdKDE4LAp2b2lkIDAsdix6LEosQykpLEEuc2V0KGIsSykpLFE9eiksNzIpKT09QiYmKEE9Qy5YLEF8fChKPT09Sz9KPUs9dDUoSik6KEo9dDUoSiksSz10NShLKSkpLEMuQVtwWzBdXShbSixLLGJdKSxBJiZ5WzNdKDIseiwwLEMpKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe3JldHVybiBCPDwxJihXPVsiQiIsNDAsIm5xIl0sQi02JjExfHwodGhpc1tXWzBdXT1DLHRoaXMuUz0iIixaPVswLCEwLG51bGxdLHRoaXMucEQ9SixwPXRoaXMsdj1aWzFdLHRoaXMuY289ej09PXZvaWQgMD8hMTp6LHY9dj09PXZvaWQgMD8hMDp2LHRoaXMuWD1bXSx0aGlzLkY9Sz09PXZvaWQgMD9udWxsOkssdGhpcy5pWT1bbnVsbF0uY29uY2F0KFt0aGlzLll3LHRoaXMuTlUsdGhpcy5Ceix0aGlzW1dbMl1dLHRoaXMuTGksdGhpcy50QV0ubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmJpbmQocCl9KSksdGhpcy52PW5ldyBONyx0aGlzLnhKPUFycmF5KDIwNDgpLmZpbGwodm9pZCAwKSwKdGhpcy5IPURbNDRdKDE4LFpbMF0sWWooKSksdGhpcy51WT1rW1dbMV1dKDUwLFpbMF0sWlsxXSx0aGlzLmt4LmJpbmQodGhpcykpLHRoaXMubz1uZXcgTWFwLHRoaXMuS3E9VkouYmluZChaWzJdLHRoaXMucHIuYmluZCh0aGlzKSw3MiksdGhpcy5BPVtdLHRoaXMuTT1bXSx0aGlzLkM9WVszOV0oMiwxKSx0aGlzLkZnPSEoIXZ8fCFyTyksQT10aGlzLkMucnVuLmJpbmQodGhpcy5DLHRoaXMuZ3QuYmluZCh0aGlzLFpbMl0pKSx0aGlzLkZnPyhRPXRoaXMubkIuYmluZCh0aGlzKSxiPWZ1bmN0aW9uKHgpe3AuQy5ydW4oZnVuY3Rpb24oKXtyZXR1cm4gUSh4KX0pfSxuPWZ1bmN0aW9uKHgpe3JldHVybiByTyhiLHt0aW1lb3V0Onh9KX0pOm49ZnVuY3Rpb24oeCl7cmV0dXJuIFZKKEEsbDkoeCw2MikpfSx0aGlzLnJiPW4sdGhpcy5RZT1mdW5jdGlvbigpe2RvY3VtZW50W3ZEKCldP1VwLnRoZW4oQSk6VkooQSwxKX0sdGhpcy5YZz1QYi5iaW5kKFpbMl0sdGhpcy5GWC5iaW5kKHRoaXMpLApaWzFdKSx0aGlzLkRNPXRoaXMuTS51bnNoaWZ0LmJpbmQodGhpcy5NKSx0aGlzLm09WlswXSx0aGlzLmk9WlswXSx0aGlzLlc9WlsyXSx0aGlzLlA9WlswXSx0aGlzLlI9WlswXSx0aGlzLkc9WWooKSx0aGlzLlU9bmV3IE1HLHRoaXMuST1uZXcgTUcsdGhpcy5EPVpbMF0sdGhpcy5nPVpbMF0sdGhpcy5sPVpbMF0sdGhpcy5qPVpbMF0sdGhpcy5PPVpbMl0sdGhpcy5MPVpbMF0seVsxMF0oNDUsdGhpcykpLDEzKXx8Sy5nZXREYXRlKCkhPXomJksudi5zZXRVVENIb3VycyhLLnYuZ2V0VVRDSG91cnMoKSsoSy5nZXREYXRlKCk8ej8xOi0xKSksKEI+PjImNyk9PTEmJih6LnN0eWxlLmRpc3BsYXk9Sz8iIjp0QigpKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoKEJ8NSk+PigoKHY9WzI5LCJNIiwxNF0sQnwyKSZ2WzJdKTx2WzJdJiYoKEJeMSkmMTUpPj04JiYoQT0iIitBcnJheS5mcm9tKHdwLmtleXMoKSkpLDQpKSlhOntpZigoSj1ycigpLHR5cGVvZiBjb25zb2xlIT09CiJ1bmRlZmluZWQiKSYmdHlwZW9mIGNvbnNvbGVbSVYoKV09PT0iZnVuY3Rpb24iKXRyeXtpZihLPWNvbnNvbGVbSVYoKV0oSiksdHlwZW9mIEs9PT0ib2JqZWN0IiYmSyE9PW51bGwmJnR5cGVvZiBLW0ZiKCldPT09ImZ1bmN0aW9uIil7QT1LO2JyZWFrIGF9fWNhdGNoKHApe31BPXtydW46ZnVuY3Rpb24ocCl7cmV0dXJuIHAuYXBwbHkodm9pZCAwLEcyLmFwcGx5KHosYXJndW1lbnRzKSl9fX1yZXR1cm4oKChCXjQ2KT4+NHx8KEtbdlsxXV0mJktbdlsxXV09PUo/S1t2WzFdXT16OksudiYmSy52LmhhcyhKKSYmSy52WyJkZWxldGUiXShKKSksQi02KV52WzBdKTxCJiYoQi0xXjEpPj1CJiYoYj1EWzI0XS5iaW5kKG51bGwsMTgpLEE9T1s0NV0oNTIsSyxmdW5jdGlvbihwLFEsbixaKXtyZXR1cm4gWj0oKG49LSgoWj1wLFopJkopLFo+Pj5KKXxRPDx6KV5uLGIoWixRPj4+Sl5uKX0sQykpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEJ8ODApPT0KKCgoQisoZj1bNTcsIlQiLDQ4XSwxKSY0Nyk+PUImJkIrMz4+MTxCJiYoTD1KPj0xMDA/Sj49MUU0P2QwKE1hdGgubG9nMTAoMStKKSk6SjxLPzM6NDpKPHo/MToyKSxCJjc5KT09QiYmKEw9UltmWzJdXSg3MyxLLFBMLHosbCkpLEIpKXtwPUhbMzVdKDM0LDIsKEM9WzIwNCwyMDIsITFdLEspKTthOnN3aXRjaChwKXtjYXNlIDIwMDpjYXNlIDIwMTpjYXNlIENbMV06Y2FzZSBDWzBdOmNhc2UgMjA2OmNhc2UgMzA0OmNhc2UgMTIyMzpiPSEwO2JyZWFrIGE7ZGVmYXVsdDpiPUNbMl19aWYoISh2PWIpKXtpZihKPXA9PT0wKUE9R1s0OV0oMSxudWxsLHosU3RyaW5nKEsuSCkpLEo9IUJkLnRlc3QoQSk7dj1KfUw9dn1yZXR1cm4oKChCJmZbMF0pPT1CJiZULmNhbGwodGhpcyx6LDgpLEI+PjEpJjE1KT49MTAmJihCLTEmOCk8NyYmKGJkLmNhbGwodGhpcyxrWzE4XSg1LHNoKSxrWzQzXSgyNyxMMSksTEsoKSw5KSxrW2ZbMl1dKDEwLHRoaXMsVGgseiksa1tmWzJdXSgyLHRoaXMsQmwsSyksCnlbMzVdKDQ3LGtNLHRoaXMsSikseVszNV0oMjcsekUsdGhpcyxDKSx5WzM1XSgyNSxLOSx0aGlzLGIpLHlbMzVdKDI5LEphLHRoaXMsQSkseVszNV0oNDksQzksdGhpcyx2KSx5WzM1XSgzNyxiVix0aGlzLHApLHlbMzVdKDQ1LEFhLHRoaXMsUSkseVszNV0oMzksdmQsdGhpcyxuKSx5WzM1XSgzMSxURSx0aGlzLFopLFcmJihOPVdbZlsxXV0oKSx4PWVbNDZdKDksMyxOLDQpLGtbZlsyXV0oMzQsdGhpcyxqTCx4KSkpLEx9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChwPVs1LDQxLDEwXSwoQnwzKT4+cFswXSk8cFswXSYmKEI+PjImMTUpPj0xMil7aWYoSyl0aHJvdyBFcnJvcigiSW52YWxpZCBVVEY4Iik7ei5wdXNoKDY1NTMzKX1yZXR1cm4oKEItKChCXjY0KT4+Mz09MSYmSiYmeFYoSixDLHtnZXQ6ZnVuY3Rpb24obixaLFcsTix4LGYpe3JldHVybih4PShuPShXPShaPShmPVtudWxsLDEsKE49Sy5sWSwhMCldLG5ldyBjbCksa1szNV0oNTIsQykpLG1bMjNdKDIyLApXLFosZlsxXSkpLGspWzE0XSg2LGZbMl0sa1szNF0uYmluZChmWzBdLDQpLDIsMixuLE9bMl0uYmluZChmWzBdLDEyKSksZ1tmWzFdXSg3MSx6LGNsLE4seCksSi5hdHRyaWJ1dGVzW0NdKS52YWx1ZX19KSwyKT4+Mz09MSYmKHY9bVs0OF0oNzQsSix3NSgpLEspLFE9ZnVuY3Rpb24obixaKXtyZXR1cm4gbj1rW1o9WzIzLDM4LDEwXSw0OV0oWlsyXSx6LEMsSixBLHordigpKSx7UkE6RFtaWzFdXShaWzBdLEosYi5jb25jYXQobikubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBPWzI2XSg5OCxXKX0pLnJlZHVjZShmdW5jdGlvbihXLE4pe3JldHVybiBXLnhvcihOKX0pKSxMRDpufX0pLEI+PjIpJjExKT09MSYmKFE9UlsxM10ocFsyXSxIWzI1XShwWzFdLE9bOV0oMTYsMTIpLHopLFtnWzE2XSgxNCxLKSxnWzE2XSgzOCxKKV0pKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKHY9WzEsInRvU3RyaW5nIiwxMV0sQis2Pj41PHZbMF0mJihCfDkpPj0xOClhOntpZihLLk0hPXope0E9CksuWC5jb25jYXQoSy5NLlUpO2JyZWFrIGF9aWYoSy52IT16JiZLLnYuc2l6ZSE9PTApe2ZvcihDPShKPWdbMTJdKHZbMl0sKGI9Sy5YLEsudikudmFsdWVzKCkpLEoubmV4dCgpKTshQy5kb25lO0M9Si5uZXh0KCkpYj1iLmNvbmNhdChDLnZhbHVlLlUpO0E9YjticmVhayBhfUE9bVsyOV0oMTksSy5YKX1pZigoQiY2MCk9PSgoQis0XjMpPj1CJiYoQi12WzBdXnZbMl0pPEImJiFLLnYmJihLLnY9bmV3IE1hcCxLLk09eixLLlgmJkdbNDddKDEwLG51bGwsdlswXSx6LEsuWCxmdW5jdGlvbihwLFEpe0suYWRkKGRlY29kZVVSSUNvbXBvbmVudChwLnJlcGxhY2UoL1wrL2csbzkoKSkpLFEpfSkpLEIpKXtmb3IoQz0oSj1uZXcgWHgsSz1tWzM2XSgyMixudWxsLCExLGZ1bmN0aW9uKHAsUSl7cmV0dXJuKHAudGFnTmFtZT09KFE9WzI3LDgsMTJdLGQ1KXx8cC50YWdOYW1lPT1VeikmJkhbUVsxXV0oUVsyXSxRWzBdKShwKSE9IiJ9LHooKSksMCk7QzxLLmxlbmd0aCYmSi5hZGQoS1tDXS5uYW1lKTtDKyspOwpBPUpbdlsxXV0oKX1yZXR1cm4gQX0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKChCJigoQisxJjU4KTwoKGI9WzIsNCwxOV0sQi03PDxiWzBdPj1CKSYmKEIrOF5iWzJdKTxCJiYoSy5pLk09PXp8fEsuS3x8R1syOF0oYlsxXSw2LGJbMV0sSy5pLEspKSxCKSYmKEIrYlswXV4yNCk+PUImJlQuY2FsbCh0aGlzLHopLDEyMCkpPT1CKWtbNl0oMjgseixKLEspO3JldHVybiBDfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEJ8KCgoYj1bMzksIk0iLDhdLEJ8MjQpPT1CJiZuZXcgcDkoIi9yZWNhcHRjaGEvYXBpMi9qc2Vycm9ybG9nZ2luZyIseix2b2lkIDApLChCXjMxKT4+Myk9PTEmJihMRC5jYWxsKHRoaXMsNDMsMTcsWzJdKSx0aGlzLkg9dGhpcy5pPXRoaXMuVz10aGlzLkE9dGhpcy5tPS0xLHRoaXMuUz10aGlzLlg9dGhpcy5VPXRoaXMuRD10aGlzLks9dGhpcy5QPXRoaXMubz10aGlzLkw9dGhpcy5nPXRoaXMuVj10aGlzLmo9dGhpcy5DPXRoaXNbYlsxXV09LTEsdGhpcy5HPQpnWzddKDQpLHRoaXMuST1nWzddKDYpKSxiKVsyXSk+PjM9PTEmJihDPUhbYlsyXV0oMzIsNjMzNSkoSih6KCksYlswXSkpKSxDfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoKEItNF4oKChKPVsiaXNBY3RpdmUiLDcsIlgiXSxCKSY2MCk9PUImJk5QLmNhbGwodGhpcyksSilbMV0pPEImJihCLTJeMTApPj1CJiYodGhpc1tKWzJdXT16LHRoaXMuaT1mdW5jdGlvbigpe3JldHVybiBlWzI5XSg5MCl9LHRoaXMueEE9Syx0aGlzLk09ITEsdGhpcy5BPXRoaXMuaSgpKSxCKXw1Nik9PUImJihRQXx8KG45P1FBPW5ldyBaRShmdW5jdGlvbihiKXtlWzE3XSgyLGIpfSxuOSk6UUE9bmV3IFdkKGZ1bmN0aW9uKCl7ZVsxN10oMSxlWzI5XSg3NCkpfSwyMCkpLHo9UUEseltKWzBdXSgpfHx6LnN0YXJ0KCkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoKEImKChCKzQmNjApPCgoKChCXjEyKSY2KTwoUT1bMSwiLSIsNV0sUVswXSkmJihCfDIpPj05JiZULmNhbGwodGhpcywKeiksKEIrNCY2MSk8QikmJihCKzJeMzEpPj1CJiYoTEQuY2FsbCh0aGlzLDEwOTIsMTUpLHRoaXMuTT0tMSksQikmJihCLVFbMl18NzgpPj1CJiYobj1mdW5jdGlvbigpe3JldHVybigwLHQkLnk1KShKLkpMLmJpbmQoSixuZXcgQk4oSy5EaSkpLHopLnRoZW4oZnVuY3Rpb24oWixXKXtyZXR1cm4gZ1tXPVszNiwzMywyN10sV1sxXV0oNDEsNix5W1dbMF1dKDMsV1syXSwzLFosSy5vTixKKSxnRil9KX0pLChCfDQwKT09QiYmKG49WVs3XSg3OSxudWxsLGZ1bmN0aW9uKFosVyl7cmV0dXJuKFc9Wi5jcnlwdG8pP0soVy5zdWJ0bGV8fFcudixXKTpLKHoseil9KSksMjkpKT09Qil7aWYoIShZWzM3XSgyMCxLLEopLEs9WmYoSyksSikmJiFnZHx8TnUoSykpdj1LO2Vsc2V7aWYoYj0oQT0oa1sxMl0oOSx6LEspLEM9T08seE8pLEEpJjIxNDc0ODM2NDgpQT1+QT4+PnosQz1+QytRWzBdPj4+eixDPT16JiYoQT1BK1FbMF0+Pj56KTt2PShwPWtbMzldKDE3LHosQyxBKSx0eXBlb2YgcCk9PT0ibnVtYmVyIj8KYj8tcDpwOmI/UVsxXStwOnB9bj12fXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKEItKChCJigoQi0oWj1bNiwyNyw4XSw5KTwxMyYmKEItWlswXSY3KT49MCYmKHY9WzQsInJjLWltYWdlc2VsZWN0LWNhcm91c2VsLW9mZnNjcmVlbi1yaWdodCIsInJjLWltYWdlc2VsZWN0LWNhcm91c2VsLWxlYXZpbmctbGVmdCJdLHA9RFsxM10oMix6LGRvY3VtZW50KSxBLm5nKCExKSxRPWIucHJldmlvdXNFbGVtZW50U2libGluZyE9PXZvaWQgMD9iLnByZXZpb3VzRWxlbWVudFNpYmxpbmc6SFtaWzFdXSg1OCxDLCExLGIucHJldmlvdXNTaWJsaW5nKSxSW1pbMl1dKDE5LHZbMV0sYiksUltaWzJdXSg4Myx2WzJdLFEpLFJbWlsyXV0oMSxBLlguZFEuRG4ucm93U3Bhbj09dlswXSYmQS5YLmRRLkRuLmNvbFNwYW49PXZbMF0/InJjLWltYWdlc2VsZWN0LWNhcm91c2VsLW1vY2stbWFyZ2luLTEiOiJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1tb2NrLW1hcmdpbi0yIiwKYiksbj1EWzI1XSgzMixKLGIpLnRoZW4oZnVuY3Rpb24oKXtPWzJdKDcsZnVuY3Rpb24oVyl7KFc9WzM2LCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1vZmZzY3JlZW4tcmlnaHQiLCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1lbnRlcmluZy1yaWdodCJdLFJbMjddKFdbMF0sYixXWzFdKSxSKVsyN10oMjAsUSwicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtbGVhdmluZy1sZWZ0IiksUls4XSgxOSxXWzJdLGIpLFJbOF0oNjUsInJjLWltYWdlc2VsZWN0LWNhcm91c2VsLW9mZnNjcmVlbi1sZWZ0IixRKSxPWzJdKDU1LGZ1bmN0aW9uKE4seCxmLEwscil7Zm9yKChOPShmPSh4PSgoKFJbMjddKDIwLChyPShMPVsicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtZW50ZXJpbmctcmlnaHQiLDQsMF0sWyJYIiwicmMtaW1hZ2VzZWxlY3QtdGlsZXNlbGVjdGVkIiwxXSksYiksTFswXSksUilbMjddKDMyLGIsdGhpc1tyWzBdXS5kUS5Ebi5yb3dTcGFuPT1MW3JbMl1dJiZ0aGlzW3JbMF1dLmRRLkRuLmNvbFNwYW49PQpMW3JbMl1dPyJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1tb2NrLW1hcmdpbi0xIjoicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtbW9jay1tYXJnaW4tMiIpLGVbNDZdKDU5LFEpLHRoaXMubmcoSykscCkmJnAuZm9jdXMoKSx0aGlzW3JbMF1dKS5kUS5EbixMWzJdKSx4Lk50KSx4KS5JTj1MWzJdO2Y8Ti5sZW5ndGg7ZisrKU5bZl0uc2VsZWN0ZWQ9ITEsUlsyN10oMTIsTltmXS5lbGVtZW50LHJbMV0pfSw2MDAsdGhpcyl9LDEwMCxBKX0pKSxCfDY0KT09QiYmKG49ejxLPy0xOno+Sz8xOjApLDQ1KSk9PUImJihuPUsuWD09TjU/Sy52OkdbMjBdKDIsMSx6LEsudikpLDEpXjMyKT49QiYmKEItMl5aWzJdKTxCJiYobj1PaFt6XSksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCPj4oKCgoQiYoKEImKHY9WzIsNCw1N10sODYpKT09QiYmKGI9KEE9QyE9PXZvaWQgMCk/Qy50b1N0cmluZygpOiIiLHA9ZzBbdlswXV0oMTMsITAsITEsSi52LGZ1bmN0aW9uKFEsbil7Zm9yKG49Cno7bjxRLmxlbmd0aDsrK24paWYoIUF8fFFbbl0udHlwZT09YilyZXR1cm4gSztyZXR1cm4hMX0pKSx2WzJdKSk9PUImJihKPXBLLmZpbHRlcihmdW5jdGlvbihRKXtyZXR1cm4geFUuaW5jbHVkZXMobVsxXSgxNixRLEspKX0pLHBLPXBLLnNsaWNlKHorSi5sZW5ndGgpLHBLLnB1c2guYXBwbHkocEssZVszM10odlsxXSxKKSkpLEIpJjk5KT09QiYmKHRoaXMubT10aGlzLm0sdGhpcy5QPXRoaXMuUCksdlswXSkmMTUpPT12WzBdJiYoYmQuY2FsbCh0aGlzLGtbMThdKDUsREUpLGtbNDNdKDEwLGdtKSxMSygpLHZbMV0pLG1bMTldKDcyLDEseiksR1s0MV0oNiwxNCx6KSx0aGlzLk8wPXouVCgpKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCPDwxJih2PVszMywidiIsIm91Il0sNyl8fCh0aGlzLlB2PWZ1bmN0aW9uKCl7cmV0dXJuIEt9LHRoaXMucHU9ZnVuY3Rpb24ocCl7cFtKLTFdPU9bNDBdKDUyLEspfSx0aGlzW3ZbMl1dPWZ1bmN0aW9uKCl7cmV0dXJuIHp9KSwKQis2KT4+NHx8KHo9dGhpcyxLPVJbOF0oNjMsdGhpcyksYj1PW3ZbMF1dKDMxLHRoaXMpLEo9Z1szN10oOCx0aGlzKSxDPXRoaXMud2IuYmluZCh0aGlzLHRoaXNbdlsxXV1bdlsxXV0rYixKKSx0aGlzLnhKW0tdPWZ1bmN0aW9uKCl7dmFyIHA9RzIuYXBwbHkoMCxhcmd1bWVudHMpO3ouQy5ydW4oZnVuY3Rpb24oKXtyZXR1cm4gQy5hcHBseShudWxsLGVbMzNdKDQscCkpfSl9KSxBfV19KCksZz1mdW5jdGlvbigpe3JldHVybltmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEItKChBPVsic2V0VGltZW91dCIsInYiLDRdLEJ8Nyk+PkFbMl18fChiPSEoIXp8fCF6W2Y5XSkpLDMpJjE1fHxLLlImJlJbMzZdKDIxLEsuUix6KSxCKXw0OCk9PUIpe2lmKHR5cGVvZiB6IT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiRm4gbXVzdCBub3QgYmUgbnVsbCBhbmQgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Yj1HbFtBWzBdXShmdW5jdGlvbigpe3ooKX0sSyl9cmV0dXJuKEI8PDImMzEpPj0xNSYmCkI+PjI8MTgmJihDPXRoaXMsSj10aGlzW0FbMV1dLEs9dGhpcy5NLGI9dGhpcy5YfHxKP29pW0FbMV1dOihLLnB1c2goeiksbmV3IG9pKGZ1bmN0aW9uKCl7cmV0dXJuIEdbMzJdKDQ5LDEsQy5NLHopfSkpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZighKEI8PChaPVs0MDk2LDI4LDM0XSwyKSYxNCkpYTp0cnl7Vz1lWzM1XShaWzFdLHopLmZpbHRlcihmdW5jdGlvbihOKXtyZXR1cm4hTi5zdGFydHNXaXRoKGdbMTRdKDMsc3ApKX0pLmxlbmd0aDticmVhayBhfWNhdGNoKE4pe1c9LTE7YnJlYWsgYX1yZXR1cm4oKEItNTw8KChCfDUpPj4zfHxMRC5jYWxsKHRoaXMsODk1LDE0KSwxKT49QiYmKEItOHw0Nik8QiYmKHA9WzAsMiwhMF0sZ1s0MV0oNTUsSiksQT1KLmFULHY9a1syMl0oOTAscFswXSx2b2lkIDAsMSxBLEFbQSRdfHBbMF0scFsxXSxwWzJdLEssSiksQz1DIT16P0dbNDhdKDMsSyxDKTpuZXcgSyx2LnB1c2goQyksYj1uPXY9PT1RUD83OnZbQSRdfApwWzBdLChRPXlbMl0oMzgsQykpPyhuJj0tOSx2Lmxlbmd0aD09PTEmJihuJj0tNDA5NykpOm58PVpbMF0sbiE9PWImJmtbMzhdKDk1LHYsbiksUXx8SFszNl0oMSxBKSxXPUMpLEIpfDQ4KT09QiYmKHo9ej09PXZvaWQgMD9nMFszXSgxLDApOnosSz1LPT09dm9pZCAwP3t9OkssSj15W1pbMl1dKDI1LG51bGwseixLKS5jbGllbnQsSyYmKEM9Si52LEQ2KEMudixLKSxDLnY9eVsyM10oMTIsbnVsbCxDLnYpKSxtWzMwXSgxOSwiLSIsSikpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQi0oKHY9WzMsNiw0MV0sQi05Pj52WzBdPT0yKSYmSi51KCkmJkdbMzVdKDI1LEoudSgpLHosSyksOCl8NTkpPj1CJiYoQis1XjI2KTxCKXtpZih0eXBlb2YgeiE9PSJudW1iZXIiKXRocm93IGVbdlsxXV0oMjIsTDkoKSk7aWYoIUZFKHopKXN3aXRjaChCVCl7Y2FzZSAyOnRocm93IGVbdlsxXV0oNTUsTDkoKSk7Y2FzZSAxOllbMTVdKDUxLEw5KCkpfXA9QlQ9PT0yP3p8MDp6fXJldHVybihCJgoxNSk9PUImJihBPVshMCwwLDldLEoubT1EYXRlLm5vdygpLEN5PUoua24sSi5NPVlbMzBdKDEzLEoudik/bmV3IFJpKEoua24sSi5QLEhbMl0oMjcsSi52LHJGKSk6bmV3IFZBKEoua24sSi5QKSxKLk0uRj1tW3ZbMl1dKDMyLEFbMl0sSi51Nyksd2luZG93W2kzXVt0cSgpXT9KLk0uSyhZWzIxXSgxLCJlbiIsQVswXSxKKSxtW3ZbMV1dKDI0LHosSi5pZCksSyk6KEouWD1EWzMyXSgyNCxBWzFdLG51bGwsSixDKSxKLlguY2F0Y2goa1sxMF0uYmluZChudWxsLDYyKSksQz09PTEmJndpbmRvd1tpM11bR0UoKV0mJndpbmRvd1tpM11bR0UoKV0uaW5jbHVkZXMoWDMpJiZZWzMwXSg4LEoudikmJllbdlswXV0oOCxBWzFdLEopLFlbMzBdKDI4LEoudikmJkoudTchPUoua24mJihiPWZ1bmN0aW9uKCl7cmV0dXJuIGdbM10oMSwwLEssSi51Nyl9LEoubz1uZXcgSGQoSi51NyxmdW5jdGlvbihRLG4pe249WyEwLCJGIiwzXSxRLnByZXZlbnREZWZhdWx0KCksZ1tuWzJdXShuWzJdLDAsblswXSwKSi51NyksSi5sKEpbblsxXV0uYmluZChKLFRkKSkudGhlbihiLGIpfSksYigpKSkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEItNF4oKEJ8Nyk+PihMPVszLCEwLDFdLExbMF0pPT0yJiYoZj1tWzIzXSgyMSxLLEoseikpLDE0KSk+PUImJihCLTZ8MTkpPEIpYTp7aWYoQyBpbnN0YW5jZW9mIElwKXtmPShtWzI0XSgzMixMWzBdLDIsQyxBLGIsSikseik7YnJlYWsgYX1pZihrWzM5XSgzNiwhMSxDKSl7Zj0oQy50aGVuKEEsYixKKSx6KTticmVhayBhfWlmKEhbNDRdKDIsQykpdHJ5e2lmKHY9Qy50aGVuLHR5cGVvZiB2PT09ImZ1bmN0aW9uIil7ZVsyNV0oOCwhMSxMWzFdLHYsSixDLGIsQSksZj16O2JyZWFrIGF9fWNhdGNoKHIpe2Y9KGIuY2FsbChKLHIpLHopO2JyZWFrIGF9Zj1LfWlmKCEoKEJeNjIpPj40KSl7aWYoTj0oeD1bITAsMSwwXSx6LkFMKSlmb3IoVz14W0xbMl1dLEM9W107TjtOPU4uQUwpQy5wdXNoKE4pLCsrVztpZih2PQooKEE9KFo9KHA9SyxiPXouekosQykscC50eXBlfHxwKSx0eXBlb2YgcCk9PT0ic3RyaW5nIj9wPW5ldyAkTShwLGIpOnAgaW5zdGFuY2VvZiAkTT9wLnRhcmdldD1wLnRhcmdldHx8YjooSj1wLHA9bmV3ICRNKEEsYiksRDYocCxKKSkseFswXSksWilmb3Iobj1aLmxlbmd0aC14W0xbMl1dOyFwLlgmJm4+PXhbMl07bi0tKVE9cC5NPVpbbl0sdj1nWzMyXSgzMix4WzJdLHAsQSx4WzBdLFEpJiZ2O2lmKHAuWHx8KFE9cC5NPWIsdj1nWzMyXSgzNCx4WzJdLHAsQSx4WzBdLFEpJiZ2LHAuWHx8KHY9Z1szMl0oMzUseFsyXSxwLEEsITEsUSkmJnYpKSxaKWZvcihuPXhbMl07IXAuWCYmbjxaLmxlbmd0aDtuKyspUT1wLk09WltuXSx2PWdbMzJdKDQwLHhbMl0scCxBLCExLFEpJiZ2O2Y9dn1pZigoQnw0KT4+NDxMWzJdJiZCPj5MWzJdPj0tNjEpaWYoSi50YWdOYW1lPT1lTClmb3IoYj16LEM9Si5lbGVtZW50cztKPUMuaXRlbShiKTtiKyspZ1tMWzBdXSgyLDAsSyxKKTtlbHNlIEs9PUxbMV0mJgpKLmJsdXIoKSxKLmRpc2FibGVkPUs7cmV0dXJuKEJ8NzIpPT1CJiZULmNhbGwodGhpcyx6KSxmfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEItKCgoYj1bNyw4Njk3LDMyXSxCKS05fDI2KTxCJiYoQi1iWzBdfDQ5KT49QiYmKEM9SFs4XShiWzJdLGJbMV0pKEooSygpLDApKSksYilbMF0mYlswXSk9PTEpYTp0cnl7Qz16KCk7YnJlYWsgYX1jYXRjaChBKXtDPUs7YnJlYWsgYX1yZXR1cm4oQi0xXjI1KT49QiYmQi04PDwyPEImJihDPWVbMl0oMzMseix2b2lkIDAsSykpLEN9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoKEItKEo9WyJjYWxsIiw1LCJSVCJdLDkpJjcpPT0yKVRbSlswXV0odGhpcyx6KTtpZigoQiY3NSk9PUIpVFtKWzBdXSh0aGlzLHosMCxQTFtKWzJdXSk7cmV0dXJuKEJeSlsxXSk+PjM9PTImJihDPUhbMjVdKDQxLE9bOV0oMjMseiksSykpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKChCfCgoQi04JjEwKT49KHA9WzQ3LDIwLDddLDQpJiYKQitwWzJdPDE2JiYoZ1twWzFdXSgyLDAsSyx6KSx2PW5ldyBQZChLKSksNTYpKT09QiYmKEM9WyIuIiwxLCJyYy1pbWFnZXNlbGVjdC10YXJnZXQiXSxSWzhdKDMzLCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1sZWF2aW5nLWxlZnQiLEdbcFsxXV0oMSxDWzFdLCExLGVbMzFdKDEzLENbMl0sSikpKSxKLmo+PUoudi5sZW5ndGh8fChiPUoublgoSi52W0oual0pLEouais9Q1sxXSxBPUouWGdbSi5qXSxZW3BbMF1dKDIsbnVsbCxLLENbMF0sQ1sxXSxiLEopLnRoZW4oZnVuY3Rpb24oUSxuLFopeygoKChuPW1bMl0oOTIsKFo9WzQsKFE9WzcsInJjLWltYWdlc2VsZWN0LWRlc2Mtd3JhcHBlciIsMV0sMzEpLCIiXSxRWzFdKSksRClbMTNdKDM4LG4pLG0pW1pbMV1dKDI1LG4sR1s0N10uYmluZChudWxsLDEpLHtsYWJlbDpSWzI2XSgyMyxBLFFbMl0pLFVZOkJMLE1JOlJbMjZdKDEyLEEsUVswXSl9KSxtKVs0NF0oWlswXSxaWzJdLG4seVsxXSgzLG51bGwsbi5pbm5lckhUTUwucmVwbGFjZShlQygpLApaWzJdKSkpLGspW1pbMV1dKDgseixKKX0pLGdbMThdKDI1LEosIlNraXAiKSxSWzI3XSgzNixtWzJdKDk1LCJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1pbnN0cnVjdGlvbnMiKSwicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtaW5zdHJ1Y3Rpb25zLWhpZGRlbiIpKSksKEJeMjEpPDExJiYoQj4+MiZwWzJdKT49MCkmJihkay5KKCkuaW5pdChZWzQwXSg2NCwyLHopKSxZWzQ0XSgyNSxmdW5jdGlvbihRLG4sWil7KG4uaz1EWzhdKDksKFo9WzIsNDAsIlUzIl0sWVtaWzFdXShaWzBdLFpbMF0seikpKSxDJiZDW1pbMl1dKCkpJiYobi50PUNbWlsyXV0oKSl9KSxDPW5ldyAkVSxDLnJlbmRlcihHWzE1XSg0MSkpLEo9bmV3IHE1KEhbMjFdKHBbMF0seiw2LGwpLEhbMjFdKDM5LHoscFsyXSxsKXx8MUU0KSxLPW5ldyBpVihKLHosbmV3IHlBLG5ldyBZVSksdGhpcy52PW5ldyBjZChDLEspKSwoQnw3Mik9PUIpJiYoQz1KLldoKCksQy5yZXBsYWNlKC9ceGEwfFxzL2csbzkoKSksSi52PXsxOkMrCiItZGlzYWJsZWQiLDI6Qyt6LDQ6QysiLWFjdGl2ZSIsODpDKyItc2VsZWN0ZWQiLDE2OkMrIi1jaGVja2VkIiwzMjpDKyItZm9jdXNlZCIsNjQ6QytLfSksKEImMTIyKT09QiYmKEs9dGhpcyx2PUdbMTNdKDksZnVuY3Rpb24oUSxuLFope1o9WyhuPVs1ODYsMCw1XSw3KSw0LCJGIl07c3dpdGNoKFEuTSl7Y2FzZSAxOmlmKCEoej1LLnZbWlsyXV0seikpcmV0dXJuIEsuWD1TTCxtWzIwXSgyNiwiaHR0cCIsRFsxMV0oOSkucGFyZW50LFllKS5zZW5kKHlnKSxRLnJldHVybigpO2lmKCEoKCgoKCgoQz1uZXcgKCgoSj1kay5KKCksZSlbOV0oOCxEWzE2XSgxMiwxLFlbMTldKDEsOSxKLmdldCgpKSkpLEspLk54PW1bMjBdKDE2LCJodHRwIixEWzExXSgxKS5wYXJlbnQseixuZXcgTWFwKFtbW3FOLFRkLHd0LG1zLFlBLFZPXSxLLmxdLFtsVixLLlFlXSxbczMsSy5YQ10sW0VoLEsuQjFdLFtYSCxLLmNFXSxbdVYsSy5rV11dKSxLKSxhaSkoSy52LmoubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBPWzQwXSgyMCwKVyl9KSxKLmdldCgpLnllKCksSy5NLlgudmFsdWUpLEsuTngpLnNlbmQoUTAsQyksSykudi5YfHxLLlIudGhlbihmdW5jdGlvbihXKXtyZXR1cm4gVy5zZW5kKFEwLEMpfSksbSlbMjBdKDYsImUiLEspLEgpWzIzXShaWzFdLG5bMV0sbnVsbCxLKSxIWzBdKDU3LG5bMV0sSiw5NSkmJm1bMTNdKDI0LDEsMywiOiAiLDIsSyksSFswXSg2MSxuWzFdLEosNzMpKSYmWVsyOF0oWlsxXSwyLDEsbnVsbCxLKSxIWzQ4XSgyNCwxNSxKLmdldCgpKSkmJmVbMTNdKDMyLDEsblsxXSwzLDIsSyksR1s0OV0oMTEsITEsaGEsSikpKXtRLkdfKDIpO2JyZWFrfXJldHVybiBRLnYoUls0NV0oNTEsMyxuWzJdKSwyKTtjYXNlIDI6cmV0dXJuIFEuQShaWzFdKSxRLnYoSy5PKCksNik7Y2FzZSA2OnJldHVybiBRLnYoUlszNF0oMTQsblswXSwxOSwxMDUsIiIsSyksWlswXSk7Y2FzZSBaWzBdOlFbWlsyXV0oblsyXSk7YnJlYWs7Y2FzZSBaWzFdOlEuaSgpO2Nhc2UgblsyXTppZigoWVsyMl0oMTYsblsyXSwyLApaWzFdLDMseiksTylbMl0oNTYsZnVuY3Rpb24oKXtyZXR1cm4gSy5sKG51bGwscEMpfSxLLnYuRCoxRTMpLEsudi5YKXtRLkdfKG5bMV0pO2JyZWFrfXJldHVybiBRLnYoZVs0MV0oMzgsMSxLKSw5KTtjYXNlIDk6Sy52LkEmJksubChudWxsLGRGKSxRLlIoKX19KSksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQi05JihBPVszOCw3LCJkYXRhIl0sQSlbMV18fCh0aGlzW0FbMl1dPXosdGhpcy5jaGFubmVsPUspLChCXjUwKT4+NCl8fChDPUs9UlsyNF0oODEsSyksSj0oYj1PW0FbMF1dKDQyLHopKT9iLmNyZWF0ZVNjcmlwdChDKTpDLHY9bmV3IHliKEopKSwoQj4+MiZBWzFdKT09MSYmKHY9bmV3IE5xKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCPj4yPj0odj1bInJlcGxhY2UiLDMsMV0sLTM1KSYmKEItOSY4KTw0JiYoYj1bITEsMSxudWxsXSxLLnY9PTAmJihLPT09QyYmKEo9eixDPW5ldyBUeXBlRXJyb3IoIlByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpLApLLnY9Ylt2WzJdXSxnW3ZbMV1dKDI1LCEwLGJbMF0sSyxDLEsuTyxLLmwpfHwoSy52PUosSy5GPUMsSy5YPWJbMl0sR1szM10odlsyXSwhMCxLKSxKIT16fHxDIGluc3RhbmNlb2Yga1V8fG1bMzRdKDgxLGJbMl0sITAsQyxLKSkpKSwoQis2JjExKT49MiYmQi02PDUpJiYoSj1bIiIsMywhMF0sYj1bXSxIWzI5XSg4LEpbdlsyXV0sYixKWzJdLEspLEM9Yi5qb2luKEpbMF0pLEM9Q1t2WzBdXSgvIFx4QUQgL2csbzkoKSlbdlswXV0oL1x4QUQvZyxKWzBdKSxDPUNbdlswXV0oL1x1MjAwQi9nLEpbMF0pLEM9Q1t2WzBdXSgvICsvZyxvOSgpKSxDIT16JiYoQz1DW3ZbMF1dKC9eXHMqLyxKWzBdKSksQT1DKSxCK3ZbMl0+PnZbMV09PTImJihBPW1bMjJdKDI4KT8hMTpEWzIwXSgxMyx6KSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoISgoQl4yOCkmKEItND4+KHg9WzExLG51bGwsNDRdLDMpPT0xJiYoZj1HWzEzXSgyNCxmdW5jdGlvbihMLHIsVil7cj0KWyhWPVsiWCIsMiwiTSJdLDEpLDAsMl07c3dpdGNoKExbVlsyXV0pe2Nhc2UgclswXTpyZXR1cm4gTC52KEdbNDNdKDQsclswXSxBLnllKCksYikscltWWzFdXSk7Y2FzZSByW1ZbMV1dOmlmKCEobj1HWzM0XSg3LEMsUls2XSgzLHJbVlsxXV0sKFc9TFtWWzBdXSxnWzQ3XSg0LEosclswXSxuZXcgQ0QsdltWWzJdXVtWWzBdXS52YWx1ZSkpLFcpKSxOPUoscCkpeyhlWzE4XSg4LHJbMV0sclswXSxBLHYseikudGhlbihmdW5jdGlvbihQKXtyZXR1cm4gR1sxM10oMzIsZnVuY3Rpb24ocSxjKXtpZighKGM9WzI2LCJSIiwxXSxQKXx8UC5zMygpKXJldHVybiBxLnJldHVybigpO3FbKChSWzQwXSgyMCxjWzJdLFJbY1swXV0oMjIsUCxjWzJdLGwpKSx2Lk8oe2lkOm51bGwsdGltZW91dDpudWxsLGtBOjFFMyxieTpZWzE5XSgzNyxDLFApPzE6bnVsbH0pLFApLndWKCkmJnYuTnguc2VuZChndCxuZXcgdGEoUC53VigpKSksYylbMV1dKCl9KX0pLEwpLkdfKEspO2JyZWFrfXJldHVybiBRPW5ldyBVaChnWzQ5XSgyMCwKclswXSxBKSksTC52KHYudltWWzJdXS5zZW5kKFEpLEMpO2Nhc2UgQzpaPUxbVlswXV0sWi5zMygpfHwoTj1aLndWKCksUls0MF0oMTgsclswXSxaLnhuKCkpLHYuTyh7aWQ6bnVsbCx0aW1lb3V0Om51bGwsa0E6MUUzLGJ5OllbMTldKDY5LEMsWik/MTpudWxsfSkpO2Nhc2UgSzpyZXR1cm4gTC5yZXR1cm4obmV3IEpQKDEyMCxuLG51bGwsbnVsbCxOKSl9fSkpLChCPj4xJnhbMF0pPT0yJiYoQz1DPT09dm9pZCAwP001OkMsSi52Llg+enx8Si5NLnNvbWUoZnVuY3Rpb24oTCl7cmV0dXJuISFMLkZQfSksYj1uZXcgUHJvbWlzZShmdW5jdGlvbihMLHIpe0hbMzRdKDEzLEssSixuZXcgd0YobnVsbCwwLG51bGwsMCwyLE01LEMrWWooKSxMLHIpKX0pLGIuY2F0Y2goZzBbNF0uYmluZCh4WzFdLDE2KSksZj1iKSx4KVswXSkpSFt4WzJdXSg2OSxLLElpLHosSik7cmV0dXJuIGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKEItMyYocD1bNyw2LDFdLHBbMF0pKSlhOntpZihBPQpQYihmdW5jdGlvbihRKXtyZXR1cm4oUT0vU2Ftc3VuZ0Jyb3dzZXJcLyhbLlxkXSspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpKSYmcGFyc2VGbG9hdChRW3pdKT49Q30sSyksIWRvY3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3N8fEEpe3Y9bVsyXShwWzFdLHopO2JyZWFrIGF9dj0oYj1SW3BbMF1dKDQwKSxGSCgpLnRoZW4oZnVuY3Rpb24oUSl7cmV0dXJuIGIucmVzb2x2ZShRPzI6Myl9LGZ1bmN0aW9uKCl7cmV0dXJuIGIucmVzb2x2ZShKKX0pLGIpLnByb21pc2V9cmV0dXJuKEIrcFsyXSZwWzFdKTwzJiYoQiszJnBbMF0pPj1wWzJdJiYodj1PWzExXSg1OSxLLHopfHwoSy5jdXJyZW50U3R5bGU/Sy5jdXJyZW50U3R5bGVbel06bnVsbCl8fEsuc3R5bGUmJksuc3R5bGVbel0pLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybihCfDQ4KT09KEIrNT4+Mz49KCgoKGI9Wzg2LCJmcm9tIiw4XSwoQi02JjcpPT0zKSYmKEM9SyxnMFs2XShiWzBdLGZ1bmN0aW9uKHYscCl7Qys9CnAsQys9IjoiLEMrPXYsQys9en0sSiksQT1DKSxCKSs5JjYyKT49QiYmKEIrYlsyXSY0MSk8QiYmKEo9Sj09PXZvaWQgMD9udWxsOkosQXJyYXlbYlsxXV0oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh6K0J0KSkuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiFSWzVdKDMyLHYpfSkuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiBKPT1udWxsfHx2LmdldEF0dHJpYnV0ZShzayk9PUp9KS5mb3JFYWNoKGZ1bmN0aW9uKHYpe3JldHVybiBlWzVdKDY5LHYse30sSyl9KSksMCkmJihCLTYmNyk8MSYmKEsuaS5YPSEwLEsuZmx1c2goKSxLLmkuWD16KSxCKSYmKEE9bmV3IGV0KEsseikpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoQis4JihOPVsiY2FsbCIsNCw3Ml0sMjcpKT49QiYmKEIrM14xNyk8Qil7aWYob1IpdGhyb3cgRXJyb3IoSik7bVs0N10oMzIseix6cSxLLEtyKCkpfWlmKEItNzw8MT49QiYmKEItNnw1MSk8QilhOntpZihhYy5sZW5ndGgpe3g9CigoYj1hYy5wb3AoKSxZWzMwXSgyLEMsYiksYi52KS5pbml0KHosSyxKLEMpLGIpO2JyZWFrIGF9eD1uZXcgSkUoQyxLLHosSil9aWYoIShCPDwxJjExKSl7Zm9yKHY9KChuPXt9LGIpLnYmJlJbNDJdKDMzLGIpPj0yP2Iudi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8ejoiIikuc3BsaXQoQ3IoKSksQT1LO0E8di5sZW5ndGg7QSsrKVJbMl0oTlsxXSx2W0FdKXx8KFc9R1syXSgxNixLLEosIjoiLHZbQV0pLFE9V1tLXSxwPVdbSl0sdHlwZW9mIHA9PT0ic3RyaW5nIiYmKHA9cC50cmltKCksWj1uW1FdfHxbXSxuW1FdPVosWi5wdXNoKHApKSk7RFsxOV0oMixuLGZ1bmN0aW9uKGYpe3JldHVybiBmLmpvaW4oQyl9KX1pZigoQnxOWzJdKT09QiYmKE5QW05bMF1dKHRoaXMsclMrKHomJnoubWVzc2FnZT9TdHJpbmcoei5tZXNzYWdlKTpTdHJpbmcoeikpLHopLChLPXomJnouc3RhY2spJiZ0eXBlb2YgSz09PSJzdHJpbmciJiYodGhpcy5zdGFjaz1LKSksISgoQl44KT4+TlsxXSkpYTp7aWYoSz0KdHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJlN5bWJvbC5pdGVyYXRvciYmeltTeW1ib2wuaXRlcmF0b3JdKXt4PUtbTlswXV0oeik7YnJlYWsgYX1pZih0eXBlb2Ygei5sZW5ndGg9PSJudW1iZXIiKXt4PXtuZXh0OmVbTlsxXV0oMywwLHopfTticmVhayBhfXRocm93IEVycm9yKFN0cmluZyh6KSsiIGlzIG5vdCBhbiBpdGVyYWJsZSBvciBBcnJheUxpa2UiKTt9cmV0dXJuIHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gcD1bInYiLCgoQiY1Nik9PUImJih0aGlzLndpZHRoPXosdGhpcy5oZWlnaHQ9SyksMSksImkiXSwoQj4+cFsxXSY3KT09cFsxXSYmKGI9Yj09PXZvaWQgMD9udWxsOmIsd0UuY2FsbCh0aGlzKSx0aGlzLkE9Yix0aGlzW3BbMF1dPXp8fHRoaXMuQS5wb3J0MSxBPXRoaXMsdGhpcy5YPW5ldyBNYXAsSy5mb3JFYWNoKGZ1bmN0aW9uKFEsbixaLFcpe2ZvcihaPShXPWdbMTJdKDEsQXJyYXkuaXNBcnJheShuKT9uOltuXSksVykubmV4dCgpOyFaLmRvbmU7Wj0KVy5uZXh0KCkpQS5YLnNldChaLnZhbHVlLFEpfSksdGhpc1twWzJdXT1KLG5ldyB5NihDKSx0aGlzLk09bmV3IE1hcCxlWzM2XSg5LHRoaXMsdGhpc1twWzBdXSxFeixmdW5jdGlvbihRKXtyZXR1cm4gZ1szM10oMzMsMSxudWxsLEEsUSl9KSx0aGlzW3BbMF1dLnN0YXJ0KCkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQis2XigoQj4+MiYocD1bNjQsInYiLCJBIl0sMTUpKT09NCYmKGI9QWUoKSxBPWw5KEosQyE9ej9DOkopLHY9aFkoQSsoMjRFNCs0RTQqYiktSixLKSksMTYpKT49QiYmKEItMXwzMCk8QilrWzQzXSgyMSxLLEtbcFsxXV0reik7cmV0dXJuIEItMj4+KCgoQi02JjE1KT09MyYmKEsuaSYmSy5pW3BbMl1dJiYoSj1LLmlbcFsyXV0sQz1LLkssQyBpbiBKJiZkZWxldGUgSltDXSxEWzM4XSgxMCwnIicsSy5pW3BbMl1dLHosSykpLEsuSz16KSwoQnw0KSYxMSk9PTEmJih0aGlzLmJsb2NrU2l6ZT0tMSx0aGlzLmJsb2NrU2l6ZT1wWzBdLHRoaXMuWD1HbFtidygpXT8KbmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzW3BbMl1dPUssdGhpc1twWzFdXT1bXSx0aGlzLk09MCx0aGlzLlI9eix0aGlzLmk9MCx0aGlzLkY9R2xbQUUoKV0/bmV3IEludDMyQXJyYXkoNjQpOkFycmF5KHBbMF0pLEhJPT09dm9pZCAwJiYoR2xbQUUoKV0/SEk9bmV3IEludDMyQXJyYXkodnQpOkhJPXZ0KSx0aGlzLnJlc2V0KCkpLDMpfHwodj1tWzQyXSg4KS5jYWxsKDc2OCwyOCkucGFkRW5kKDQsdmgoKSkreiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigoQnwoUT1bNDMsMiwxXSw0KSk8MTQmJihCPj5RWzJdJlFbMl0pPj0wKWE6dHJ5e249KChBfHwhQz9DPW5ldyBJaTp2JiZrWzE0XSgxNSx6LERbOF0uYmluZChudWxsLDc5KSwtMSxKLEMsZ1tRWzFdXS5iaW5kKG51bGwsMTkpKSxiKSYmKHA9eVsxMl0oMjQsSyxKLGIsa1szXSgzOCkpKSYmcC5sZW5ndGgmJmtbMTRdKDEyLHosRFs4XS5iaW5kKG51bGwsCjg4KSxwW0tdLEosQyxnW1FbMV1dLmJpbmQobnVsbCwyMCkpLEMpO2JyZWFrIGF9Y2F0Y2goWil7fXJldHVybihCfDgpJjZ8fChiZC5jYWxsKHRoaXMsVHEoKSxrW1FbMF1dKDI0LHpIKSxMSygpKSx0aGlzLmhNPSEwLEhbMzFdKDI0LHRoaXMseikpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQisoWj1bMjgsMTksM10sWlsyXSkmNyk9PTEpYTpzd2l0Y2goUT1bbnVsbCw2LCJzdHJpbmciXSx0eXBlb2Ygeil7Y2FzZSBRWzJdOm49KEo9bmV3IG0zLFJbMjVdKDE4LFFbMF0sNCx6LHA1LEopKTticmVhayBhO2Nhc2UgIm51bWJlciI6TnVtYmVyLmlzSW50ZWdlcih6KSYmejwyMTQ3NDgzNjQ4JiZ6Pj0tMjE0NzQ4MzY0OD8oQT1uZXcgbTMscD1HWzI2XSg5LHA1LFpbMl0sWVsxMF0oNjMsUVswXSx6KSxBKSk6KGI9bmV3IG0zLHA9R1syNl0oMjUscDUsUVsxXSxrWzJdKDQsIjogIixRWzBdLHopLGIpKSxuPXA7YnJlYWsgYTtjYXNlICJib29sZWFuIjpuPShDPQpuZXcgbTMsZ1syM10oMTIsIjogIixwNSx6LDIsQykpO2JyZWFrIGE7ZGVmYXVsdDpuPSh6PT1RWzBdP3Y9MDooSz1rWzFdKDEyLHZvaWQgMCx6LHA1LDEpLHY9SFsxNF0oNTgsSFs0XSg5NCxLLHopKSE9UVswXSksdik/ejpuZXcgbTM7YnJlYWsgYX1yZXR1cm4oQis4XigoKEImKChCfDUpPj5aWzJdfHwodj1nWzM4XShaWzJdLDEsQyxLKSx2IT1udWxsJiYoQT1IW1pbMV1dKDEsMixKLHopLGIodix6KSxHWzE1XSgxOCwxMjcseixBKSkpLFpbMF0pKT09QiYmKG49UFUoeikmJlBVKHoucmF3KSksKEJ8NDApPT1CKSYmKEo9Sy5FWSxiPUsuTXQsQz1IWzQ1XSg3MixYcigpLGIsaW0oKSx1bSgpKSxBPUhbNDVdKDc2LGFmKCksSixpbSgpLHVtKCkpLG49VEQoJzxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWFuY2hvci1wdCIpKyhDfHxBP3orUlsxMV0oNzMsInJjLWFuY2hvci1vdmVyLXF1b3RhLXB0IikrejoiIikrJyI+PC9kaXY+JykpLFopWzBdKT49QiYmKEIrNV4yMCk8QiYmKG49a1szNF0oMTcsCkhbNF0oOTMsSixLLHosQykpKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChuPVsib25yZWFkeXN0YXRlY2hhbmdlIiw4LDNdLEIpKzY+PTI0JiYoQi1uWzFdJjE2KTw3JiZLLnYpeyhLLkYmJihjbGVhclRpbWVvdXQoSy5GKSxLLkY9eiksQz1LLnYsSykudj16LEp8fGdbblsyXV0oNjAsSyxqWik7dHJ5e0NbblswXV09en1jYXRjaChaKXt9fXJldHVybihCfCgoQl4xKT49LTgyJiYoQjw8MiYxNik8blsyXSYmKHRoaXMudj16KSxuWzFdKSk9PUImJihBPUoubGVuZ3RoLHA9WzEsMyw0XSx2PUEqcFsxXS9wWzJdLHYlcFsxXT92PWJOKHYpOkRbMjBdKDI4LEpbQS1wWzBdXSxwcikmJih2PURbMjBdKDI0LEpbQS16XSxwcik/di16OnYtcFswXSksQz1uZXcgVWludDhBcnJheSh2KSxiPTAsbVs2XShuWzFdLEssZnVuY3Rpb24oWil7Q1tiKytdPVp9LEopLFE9YiE9PXY/Qy5zdWJhcnJheSgwLGIpOkMpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKChCJgo3NCk9PSh2PVsibnVtYmVyIiwyLDFdLEIpJiZULmNhbGwodGhpcyx6LDAsdkYuUlQpLChCfDQwKT09QikmJihBPWtbNDZdKDQzLGZ1bmN0aW9uKHAsUSxuKXtwLnN1YnNjcmliZShuZXcgZmcoUSwobj16LGZ1bmN0aW9uKFope3JldHVybiBLLmNhbGwodm9pZCAwLFosbisrKSYmUS5uZXh0KFopfSkpKX0pKSwoQnw3Mik9PUImJihBPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh6LEspKSwoQjw8dlsyXSYxNSk9PXZbMV0mJihiPXoubyxDPUt8fCJWZXJpZnkiLE9bMzFdKDMsOSx2WzBdLGIudSgpLEMpLGIuanM9QyxHWzM1XSg4LHouby51KCksISFKLFFjKSksQX0sZnVuY3Rpb24oQix6LEssSixDKXtpZigoKCgoQz1bInYiLDMwLDE2XSxCfDcpPDE0JiYoQis5JjE1KT49MTAmJihuci5jYWxsKHRoaXMpLHRoaXMuWD0wKSxCKSY1Nyk9PUImJihKPVJbNDhdKDcxLEssWmQseixsKSksKEIrMyY1MSk+PUImJihCLTheMTApPEIpJiYodGhpc1tDWzBdXT15WzIzXSg0LG51bGwsCnopLEs9ZVszNl0oQ1syXSwwLHRoaXMpLEsubGVuZ3RoPjApKXRocm93IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcnM6ICIrSy5qb2luKCkpO3JldHVybihCXjQ1KT4+Mz09MiYmKEo9Z1syNV0oMzYsYVooKSxEW0NbMV1dKDksIiAiKSkpLEp9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoQiY1Nik9PShCKygoQz1bMTUsMywib25tZXNzYWdlIl0sKEImMzUpPT1CKSYmSiYmKEtbQ1syXV09ZnVuY3Rpb24oQSl7SihuZXcgV3QoQS5kYXRhLGdbNl0oMyx2b2lkIDAsQS5wb3J0c1t6XSkpKX0pLDIpPj5DWzFdPT1DWzFdJiYoSz1LPT09dm9pZCAwP21nKCk6SyxwUS5jYWxsKHRoaXMpLHRoaXMuWHI9Syx0aGlzLnJRPXosdGhpcy52PU5tKCksdGhpcy5jdj10aGlzLm5EPW51bGwpLEIpKWcwWzRdKENbMF0sZ1sxNF0oQ1sxXSxjaCksSyx6KTtyZXR1cm4oQj4+MSYxNCk9PTImJihiPW51bGwpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKChCPj4KMiYxNCk9PShmPVswLDMsMTBdLDIpJiYoYj1bMSwxMDczNzQxODIzLDBdLHohPT0wKSl7Zm9yKEs9dGhpcy5sZW5ndGgtYltmW0M9KEo9YlsyXSx0aGlzLkgxKGJbMl0pPj4+eiksMF1dO0o8SztKKyspQT10aGlzLkgxKEorYltmWzBdXSksdGhpcy5xeChKLEE8PDMwLXomYlsxXXxDKSxDPUE+Pj56O3RoaXMucXgoSyxDKX1yZXR1cm4oQi0oKEJ8NjQpPT1CJiYoei5qcz1LKSwxKT4+ZlsxXXx8KHRoaXMuaT1udWxsLEs9WyIiLCEwLDVdLHRoaXMubD1LW2ZbMF1dLHRoaXMuUj1LW2ZbMF1dLHRoaXMuWD1LW2ZbMF1dLHRoaXMuRj0hMSx0aGlzLnY9S1tmWzBdXSx0aGlzLk09S1tmWzBdXSx6IGluc3RhbmNlb2YgeTY/KHRoaXMuRj16LkYsWVszMV0oOSxLWzFdLHRoaXMsei5NKSx0aGlzLlI9ei5SLERbMjhdKDcsS1sxXSx6LnYsdGhpcykseVsyOV0oMzUsei5pLHRoaXMpLFJbNDNdKDUsS1sxXSx0aGlzLHouWCksRFsyOV0oMzUsdGhpcyxSWzJdKDksei5BKSksZ1s0NV0oNzIsei5sLHRoaXMpKToKeiYmKEo9UlsyOF0oZlsxXSwxLFN0cmluZyh6KSkpPyh0aGlzLkY9ITEsWVszMV0oMTUsS1sxXSx0aGlzLEpbMV18fEtbZlswXV0sS1sxXSksdGhpcy5SPWtbMTJdKDM5LEpbMl18fEtbZlswXV0pLERbMjhdKGZbMV0sS1sxXSxKW2ZbMV1dfHxLW2ZbMF1dLHRoaXMsS1sxXSkseVsyOV0oMTksSls0XSx0aGlzKSxSWzQzXShmWzJdLEtbMV0sdGhpcyxKW0tbMl1dfHxLW2ZbMF1dLEtbMV0pLERbMjldKDM0LHRoaXMsSls2XXx8S1tmWzBdXSxLWzFdKSxnWzQ1XSg2OCxKWzddfHxLW2ZbMF1dLHRoaXMsS1sxXSkpOih0aGlzLkY9ITEsdGhpcy5BPW5ldyBnNChudWxsLHRoaXMuRikpKSwoKEJ8MSkmMTUpPT0xKSYmKHA9WVsyN10oZlsyXSxKKSxwLnYhPXo/KGImJkRbMjhdKDQsITAsYitLK3AudixwKSx5WzI5XSg1MSxwLmkscCkpOihOPUdsLmxvY2F0aW9uLFE9K04ucG9ydCx2PWI/YitLK04uaG9zdG5hbWU6Ti5ob3N0bmFtZSxaPU4ucHJvdG9jb2wsbj1uZXcgeTYobnVsbCksWiYmWVszMV0oMTIsCiEwLG4sWiksdiYmRFsyOF0oNiwhMCx2LG4pLFEmJnlbMjldKDIwLFEsbiksSiYmUls0M10oOCwhMCxuLEopLHA9biksQT1DLmZxLChXPUMuUCkmJkEmJm1bOV0oMTkscCxXLEEpLG1bOV0oMTUscCxnSigpLEMuVzEpLEhbMzJdKDcscCxDKSx4PXApLHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuIEItKChCJigoKCgoQi0odj1bInNwdnQiLDE2LDIxXSw1KXx2WzJdKTxCJiYoQi0xXjIwKT49QiYmKEM9ei5pLEo9ei5YLEE9bmV3IFo2KEMrSyooei5NLUMpLEorSyooei52LUopKSksQileNjMpJjI3KT09MSYmKHRoaXMudXJpPXosdGhpcy5RWD1iLHRoaXMuSG89Syx0aGlzLk09Qyx0aGlzLnY9SiksdlsyXSkpPT1CJiYoQT1EWzM2XSgyNCwxLHZbMF0sSlt6XSxKWzBdLEspKSw1KTw8Mj49QiYmKEIrN14xMSk8QiYmKEE9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiIpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKCgoQl4xNik8KEE9WyJTcSIsNSw0NV0sCjExKSYmKEJeQVsxXSk+PTcmJih6PWtbNDddKDMsWWspLHY9bmV3IE1hcChbWyJyZWNhcHRjaGEvIisoei5pbmNsdWRlcyhhVigpKT9OaygpOk9rKCkpLDNdLFsicmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsMV0sW3osMl0sW2tbNDddKDMsUEQpLDRdXSkpLEIrMj49MikmJkIrMjwxNCYmKEtbQVswXV0mJnohPUsuZyYmZVsxNl0oMTgsSyx6KSxLLmc9eiksKEImQVsyXSk9PUImJih2PUdbMjZdKDMzLEssQyxKPT1udWxsP0o6ZVsyNl0oMTEseixKKSxiKSksQi04Pj40Pj0yJiYoQj4+MiYxNik8NykmJih2PXg3PXg3fHxuZXcgb2cpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi0oKEI+PigoQiY0Myk9PUImJih6JksmJihKfD16KSxiPUp8MSksQz0oKEImMTIwKT09QiYmKHRoaXMuWUo9dGhpcy5laz0tMSx0aGlzLmNJPXouYWx0S2V5KSxbMTUsMTMsM10pLDIpJkNbMF0pPT1DWzJdJiYoSj1tWzQ4XSg3Myx6LHc1KCksMjU1KSxiPVlbNDFdKDEwLAoxLDUsMCwyNTUsSyxKKSksOSkmQ1sxXSk9PTEmJih0aGlzLkhvPSExKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKEItMSYoKEItKChCLSh2PVs3LCJzaGlmdEtleSIsInJlbGF0ZWRUYXJnZXQiXSx2WzBdKSZ2WzBdKT09MyYmVC5jYWxsKHRoaXMseiw0KSw4KT4+NHx8KEo9W251bGwsITEsMF0sJE0uY2FsbCh0aGlzLHo/ei50eXBlOiIiKSx0aGlzLnRhcmdldD1KWzBdLHRoaXMuTT1KWzBdLHRoaXNbdlsyXV09SlswXSx0aGlzLmNsaWVudFg9SlsyXSx0aGlzLmNsaWVudFk9SlsyXSx0aGlzLnNjcmVlblg9SlsyXSx0aGlzLnNjcmVlblk9SlsyXSx0aGlzLmJ1dHRvbj1KWzJdLHRoaXMua2V5PSIiLHRoaXMua2V5Q29kZT1KWzJdLHRoaXMuY3RybEtleT1KWzFdLHRoaXMuYWx0S2V5PUpbMV0sdGhpc1t2WzFdXT1KWzFdLHRoaXMubWV0YUtleT1KWzFdLHRoaXMuc3RhdGU9SlswXSx0aGlzLkE9SlsxXSx0aGlzLnBvaW50ZXJJZD1KWzJdLHRoaXMucG9pbnRlclR5cGU9CiIiLHRoaXMudGltZVN0YW1wPUpbMl0sdGhpcy5lcT1KWzBdLHomJnRoaXMuaW5pdCh6LEspKSxCLTF8NCk8QiYmKEItNV4xNik+PUImJihEZC5jYWxsKHRoaXMsW0oubGVmdCxKLnRvcF0sW0oucmlnaHQsSi5ib3R0b21dLEMsYiksdGhpcy5YPUssdGhpcy5BPXosdGhpcy5GPSEhQSksMTQpKT09MiYmKHoudiE9PXZvaWQgMD96LnYucHVzaChLKTpLIGluc3RhbmNlb2YgZnI/Sy5NIT09dm9pZCAwP3ouTSs9Sy5WZSgpOih6LnY9W3ouTSxLXSx6Lk09dm9pZCAwKTp6Lk0rPUsscD16KSxwfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBCLShCKzUmKCgoKEJ8MjQpPT0oSj1bNTksMSwiZmlyc3RFbGVtZW50Q2hpbGQiXSxCKSYmKEM9QXJyYXkuZnJvbSh7bGVuZ3RoOks9PT12b2lkIDA/MTpLfSxmdW5jdGlvbihiLEEsdil7aWYoKGI9KHY9WzIwNDgsIk0iLCJoYXMiXSx2KVswXSx6W3ZbMV1dKS5zaXplPHZbMF0pe2RvIGI9Yk4oQWUoKSp2WzBdKTt3aGlsZSh6W3ZbMV1dW3ZbMl1dKGIpKQp9cmV0dXJuIHpbdlsxXV0uYWRkKChBPWIsQSkpLEF9KSksQiY3OCk9PUImJlQuY2FsbCh0aGlzLHopLEIrNSYyOCk8MTImJkI+PjI+PS00OSYmKHouY2xhc3NMaXN0P0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoSyxmdW5jdGlvbihiKXtSWzI3XSgzMix6LGIpfSk6R1szOF0oMjAsInN0cmluZyIsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGVbSlsxXV0oNDQseiksZnVuY3Rpb24oYil7cmV0dXJuIVlbOF0oMjYsSyxiKX0pLmpvaW4oIiAiKSx6KSksMTMpfHxULmNhbGwodGhpcyx6KSw2KTwyMCYmKChCfEpbMV0pJjE5KT49MTMmJihDPUtbSlsyXV0hPT12b2lkIDA/S1tKWzJdXTpIWzI3XShKWzBdLHosITAsSy5maXJzdENoaWxkKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKChBPVswLDksM10sQi02Pj5BWzJdPj0yJiYoQl4yNSk+PjQ8QVsyXSYmKGI9bzNbel0pLEImMTE4KT09QiYmKGI9bmV3IElwKGZ1bmN0aW9uKHYscCl7cCh6KX0pKSxCLUFbMV18CjIzKT49QiYmQis3Pj4xPEImJihDPVsyNTUsOCwyNF0sYk4oSiksSy52LnB1c2goSj4+PkFbMF0mQ1tBWzBdXSksSy52LnB1c2goSj4+PkNbMV0mQ1tBWzBdXSksSy52LnB1c2goSj4+PnomQ1tBWzBdXSksSy52LnB1c2goSj4+PkNbMl0mQ1tBWzBdXSkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLShiPVsiaSIsMCwhMV0sNikmNyk9PTIpaWYoTHIuY2FsbCh0aGlzKSx6W1IzKCldJiYodGhpcy5oZWFkZXJzPXpbUjMoKV0sdGhpcy5zdGF0dXNDb2RlPXpbckooKV0sZGVsZXRlIHpbUjMoKV0sZGVsZXRlIHpbckooKV0pLEo9eltWYygpXSl7YTp7Zm9yKEsgaW4gSil7Qz1LO2JyZWFrIGF9Qz12b2lkIDB9dGhpcy5kYXRhPSh0aGlzW2JbMF1dPUMsdGhpc1tiWzBdXT9HWzIxXSgyNSx0aGlzW2JbMF1dLEopOkopfWVsc2UgdGhpcy5kYXRhPXo7aWYoIShCLTc+PjQpKWE6e2lmKCFSYnx8IVo4KXtBPWJbMl07YnJlYWsgYX1mb3IoSj1iWzFdO0o8WjguYnJhbmRzLmxlbmd0aDtKKyspaWYoKEM9Clo4LmJyYW5kc1tKXS5icmFuZCkmJkRbMjBdKDIwLEssQykpe0E9ejticmVhayBhfUE9YlsyXX1yZXR1cm4oQj4+MSY3KT09MiYmVC5jYWxsKHRoaXMseiksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChCJjExOCk9PShwPVszNSw3LCJuYW5vcyBtdXN0IGJlIGludGVnZXI6ICJdLEIpKWE6e2I9WyJzZWNvbmRzIG11c3QgYmUgbGVzcyB0aGFuIDI1MzQwMjMwMDgwMDogIixudWxsLCJzZWNvbmRzIG11c3QgYmUgaW50ZWdlcjogIl07dHJ5e2lmKChDPU51bWJlcihKLmdldFNlY29uZHMoKSksQT15WzMzXShwWzBdLEssSiksQyk8LTYyMTM1NTk2ODAwKXRocm93IEVycm9yKCJzZWNvbmRzIG11c3QgYmUgYXQgbGVhc3QgLTYyMTM1NTk2ODAwOiAiK0MpO2lmKDI1MzQwMjMwMDgwMDw9Qyl0aHJvdyBFcnJvcihiWzBdK0MpO2lmKEE8eil0aHJvdyBFcnJvcigibmFub3MgbXVzdCBiZSBhdCBsZWFzdCAwOiAiK0EpO2lmKDFFOTw9QSl0aHJvdyBFcnJvcigibmFub3MgbXVzdCBiZSBsZXNzIHRoYW4gMTAwMDAwMDAwMDogIisKQSk7aWYoIU51bWJlci5pc0ludGVnZXIoQykpdGhyb3cgRXJyb3IoYlsyXStDKTtpZighTnVtYmVyLmlzSW50ZWdlcihBKSl0aHJvdyBFcnJvcihwWzJdK0EpO3Y9bmV3IEdxKEMsQSk7YnJlYWsgYX1jYXRjaChRKXt2PWJbMV07YnJlYWsgYX19cmV0dXJuIEItKChCfHBbMV0pPj40fHwodj16KSw2KTw8MT49QiYmKEItM3wzMik8QiYmKHRoaXMuTT16LHRoaXMuVj1LKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7cmV0dXJuKCgoKEItKEItKCh4PVsiQ0IiLDEsbnVsbF0sKEImMjkpPT1CKSYmKE49R1sxM10oMTYsZnVuY3Rpb24oZixMLHIsVixQLHEsYyl7aWYoZlsoYz1bInYiLChxPVs0LG51bGwsMF0sIk0iKSwiWCJdLGMpWzFdXT09eilyZXR1cm4gbj1nMFsyXSg0LDE4LGJbY1swXV1bY1swXV0pLGYuQSgyKSxRPW5ldyBIdChiLlUzKCksbixwZXJmb3JtYW5jZS5ub3coKS1iLk8scGVyZm9ybWFuY2Uubm93KCktYi5sKSxmW2NbMF1dKGIuRi5zZW5kKFEpLApxWzBdKTtpZihmW2NbMV1dIT0yKXtpZighRFs2XSgyOCwoWj1mW2NbMl1dLEwxKSkoWikpcmV0dXJuIGJbY1sxXV0ub25FcnJvcih6KSxmLnJldHVybigpO2lmKGdbMTZdKDkwLGwsWixxWzBdKSE9cVsxXSlyZXR1cm4gYltjWzFdXS5vbkVycm9yKGdbMTZdKDExLGwsWixxWzBdKSksZi5yZXR1cm4oKTtpZigoKFc9ZVsyXSgzOSx6LGwsWiksVykhPXFbMV0mJihMPVcsYi5BPUwsYltjWzBdXVtjWzJdXS52YWx1ZT1MKSxPWzE0XSgxMSxxWzFdLEhbNF0oOTAsMixaLGwpKSl8fE9bMTRdKDExLHFbMV0sSFs0XSg5MSxLLFosbCkpKVA9KHA9VykhPXFbMV0/cDoiIiwoVj1HbC56em1iKT09cVsxXXx8Vi56enNjKFApLGJbY1syXV09QmYseVsyNF0oNSxxWzFdLEMsZ1szNV0oNDksYltjWzBdXSkpO2Vsc2UgaWYocj1aLmFULHY9RFszOF0oMzUscVsxXSxyW0EkXXxxWzJdLHRMLHIsSixsKSliLlIodik7ZWxzZSBiW2NbMV1dLm9uRXJyb3IocVsyXSk7cmV0dXJuIGYuRihxWzJdKX1pZihBPWYuaSgpLApBIGluc3RhbmNlb2YgVVgpYltjWzFdXS5vbkVycm9yKHFbMF0pO2Vsc2UgYltjWzFdXS5vbkVycm9yKHFbMl0pO2YuUigpfSkpLDMpPDE1JiYoQnx4WzFdKT4+Mz49MCYmKEE9W251bGwsIm9iamVjdCIsNjRdLGVbNDhdKDgwLGVKKSxDPUsudixDPT1BWzBdfHxlWiYmQyE9QVswXSYmQyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/Yj1DOnR5cGVvZiBDPT09InN0cmluZyI/Yj1SWzRdKDI1LHosQVsyXSxDKTooSFs0Nl0oMzIsQVt4WzFdXSxDKSxiPUFbMF0pLEo9YixOPUo9PUFbMF0/SjpLLnY9SikseFsxXSkmMTUpPT0yJiYoej0obmV3IFB0KDE0NTMsIjAiKSkuaUQoKSx6Lm5EfHwoei5uRD1uZXcgJDcpLEs9bmV3IHFrKHtyUTp6LnJRLEJvOnouQm8/ei5CbzpnWzQyXS5iaW5kKHhbMl0sNyksWHI6ei5Ycix4Wjp6LnYsWUE6ITEsQ0Q6ITEsaUQ6ei5NLFNGOnouU0YsbkQ6ei5uRH0pLHlbNDNdKDU3LEsseiksSy5sPW5ldyBpdyx6LmN2JiYoSy5jdj16LmN2KSxrW3hbMV1dKHhbMV0sITAsCjkseFsyXSwhMSxLLmkpLHoubkQuTnUmJnoubkQuTnUoei5yUSksei5uRFt4WzBdXSYmei5uRFt4WzBdXShLKSxOPUspLChCfDcyKT09QikmJihBPUsuYVQsTj1EWzM4XSgzLHosQVtBJF18MCxDLEEsa1t4WzFdXSgxMSx2b2lkIDAsSyxiLEopKSE9PXZvaWQgMCksQikmMTE2KT09QiYmKEo9ei5FQixLPSIiLEs9SFs0NV0oOCx5YygpLEosaW0oKSx1bSgpKT9LKyI8ZGl2PkNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSByZUNBUFRDSEEgc2VydmljZS4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBhbmQgcmVsb2FkIHRvIGdldCBhIHJlQ0FQVENIQSBjaGFsbGVuZ2UuPC9kaXY+IjpLKyc8bm9zY3JpcHQ+UGxlYXNlIGVuYWJsZSBKYXZhU2NyaXB0IHRvIGdldCBhIHJlQ0FQVENIQSBjaGFsbGVuZ2UuPGJyPjwvbm9zY3JpcHQ+PGRpdiBjbGFzcz0iaWYtanMtZW5hYmxlZCI+UGxlYXNlIHVwZ3JhZGUgdG8gYSA8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvP2hsPWVuIzYyMjM4MjgiPnN1cHBvcnRlZCBicm93c2VyPC9hPiB0byBnZXQgYSByZUNBUFRDSEEgY2hhbGxlbmdlLjwvZGl2Pjxicj48YnI+PGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vcmVjYXB0Y2hhIzYyNjI3MzYiIHRhcmdldD0iX2JsYW5rIj5XaHkgaXMgdGhpcyBoYXBwZW5pbmcgdG8gbWU/PC9hPicsCk49VEQoSykpLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEI8PDImKEIrKChmPVszLDI1LDBdLChCXjI4KT4+ZlswXT09MSkmJihMPXoudG9TdHJpbmcoKS5pbmRleE9mKFk3KCkpPT09LTEpLDcpPj4xPj1CJiZCLTc8PDI8QiYmKGJkLmNhbGwodGhpcyxrWzE4XSgxMyxjdCksa1s0M10oMTQsdEwpLExLKCksNCksbVsyM10oMjAsIkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIseiwxKSxLPURbOF0oMTAsZGsuSigpLmdldCgpKSxtWzIzXSgyMCxLLHosZlswXSksdGhpcy5PMD16LlQoKSksMzEpfHwoTD1LLm5vZGVUeXBlPT16P0s6Sy5vd25lckRvY3VtZW50fHxLLmRvY3VtZW50KSwoQnw0MCk9PUImJihiPWtbMzZdKDIseiwxNixKK0MsU1opLEE9Sy5tYXAoZnVuY3Rpb24ocixWKXtyZXR1cm4gYltWJWIubGVuZ3RoXX0pLEw9RFsyOV0oMSx6LEssQSkpLEI+PjImMTUpPT1mWzBdKWE6e2lmKEoubGVuZ3RoPT09MCl7TD1KO2JyZWFrIGF9aWYobj0KKFE9KEE9KE49KHA9W10sYnx8KGI9Z1s3XSgzNykscC5wdXNoKGIpKSxnWzddKDM3KSksW1lbZlsyXV0oMjksTixPW2ZbMV1dKDEsQy5DaSksanUoKSksWVtmWzJdXSgyOCxiLHoseiksTl0pLFtdKSxiKSxDLnBnJiZDLnBnLmxlbmd0aCE9PTApZm9yKHY9SFsxNV0oNjQsSykseD1nWzEyXSgxMSxDLnBnKSxXPXgubmV4dCgpOyFXLmRvbmU7Vz14Lm5leHQoKSlaPVcudmFsdWUsUS5wdXNoKFlbZlsyXV0oMjcsbixPW2ZbMV1dKDcsdiksWikpO0w9W10uY29uY2F0KGVbMzNdKDI4LEEpLGVbMzNdKDM1LFEpLGVbMzNdKDQsSiksZVszM10oMTEscCkpfXJldHVybiBMfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe2lmKCgoKFc9WyJ2IiwibGlzdGVuZXIiLCJJdSJdLEIrMT4+Mz09MykmJihvZy5jYWxsKHRoaXMpLHRoaXMuaT16IT09dm9pZCAwP3o6MSx0aGlzLkE9YiE9PXZvaWQgMD9oWSgwLGIpOjAsdGhpcy5SPSEhQSx0aGlzLk09bmV3IG1fKEssSixDLEEpLHRoaXNbV1swXV09Cm5ldyBsdyx0aGlzLlg9bmV3IHdFKHRoaXMpKSxCKSY0Myk9PUIpYTp7aWYodj1iLk9bV1swXV1bU3RyaW5nKEopXSwhdil7Tj0hMDticmVhayBhfWZvcihuPShwPSEodj12LmNvbmNhdCgpLDApLHopO248di5sZW5ndGg7KytuKShRPXZbbl0pJiYhUS5tQSYmUS5jYXB0dXJlPT1DJiYoWj1RW1dbMV1dLEE9US5kQnx8US5zcmMsUVtXWzJdXSYmZVszXSgzMyx6LGIuTyxRKSxwPVouY2FsbChBLEspIT09ITEmJnApO049cCYmIUsuZGVmYXVsdFByZXZlbnRlZH1yZXR1cm4gQisoKEI8PDEmMTUpPT0oKEItN3w3OSk8QiYmQi0yPDwyPj1CJiYoTj15WzM4XSg3LHZvaWQgMCxSWzExXSgyNCx6LEopLEssMykpLDIpJiYoSltXWzBdXS5oYXMoRWspPyhiPUpbV1swXV0uZ2V0KEVrKSxDPWhZKHoscGFyc2VJbnQoYixLKSkpOkM9eixOPUMpLDQpPDI0JiYoQl4xMDApPj0yMSYmKHRoaXNbel09S3wwKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoQiYoWj1bMTUsMTcsCjBdLDg1KSk9PUIpe2ZvcihLPSh6PW5ldyBoRih0aGlzLmxlbmd0aCx0aGlzLnNpZ24pLFopWzJdO0s8dGhpcy5sZW5ndGg7SysrKXpbS109dGhpc1tLXTtXPXp9cmV0dXJuKCgoKEJeMjgpJihCLTE+PVpbMV0mJihCLTEmMTQpPDcmJihXPUdbMTNdKDgsZnVuY3Rpb24oTix4LGYpe2lmKHg9WzcsKGY9WzI3LCJYIiwxXSwyKSwwXSxOLk09PXopcmV0dXJuIEE9Qy5lcSxOLnYoUlsyOV0oNCxmWzJdLHhbMl0seFswXSx4W2ZbMl1dLEEuZGF0YSkseFtmWzJdXSk7aWYodj0obj0ocD1OW2ZbMV1dLHAudiksYj1wLm1lc3NhZ2VUeXBlLHAubWVzc2FnZSksYj09WDV8fGI9PXV3KW4mJkouTS5oYXMobikmJihiPT1YNT9KLk0uZ2V0KG4pLnJlc29sdmUodik6Si5NLmdldChuKS5yZWplY3QoRXJyb3IoInJlQ0FQVENIQSAiK3YpKSxKLk1bImRlbGV0ZSJdKG4pKTtlbHNlIGlmKEpbZlsxXV0uaGFzKGIpKVE9SltmWzFdXS5nZXQoYiksKG5ldyBQcm9taXNlKGZ1bmN0aW9uKEwpe0woUS5jYWxsKEouaSwKdnx8dm9pZCAwLGIpKX0pKS50aGVuKGZ1bmN0aW9uKEwpe1lbMzJdKDI1LDIsSixYNSxuLEx8fEspfSxmdW5jdGlvbihMKXtZWzMyXSgyNiwyLEosdXcsKEw9TCBpbnN0YW5jZW9mIEVycm9yP0wubmFtZTpMfHxLLG4pLEwpfSk7ZWxzZSBZWzMyXShmWzBdLHhbZlsyXV0sSix1dyxuLEspO04uUigpfSkpLDE2KSk8MTMmJihCKzImWlswXSk+PTQmJihjYi5jYWxsKHRoaXMsei5lcSksdGhpcy50eXBlPWEzKSxCKV40Nyk8MTAmJkIrND4+ND49MiYmKFc9bVsyM10oMjgsSixLLHosbCkpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLShBPVs0LDUsMTldLDYpPDExJiYoQnxBWzFdKT49QVsxXSYmKGI9WVtBWzJdXShBWzBdLHosSykpLEImMTA2KT09QilhOmlmKCFLLnlkKXtiPXlbMzNdKDE3LCgoQz1LLnYudi1KLEsudikudj1KLHopLEsudixDKTticmVhayBhfXJldHVybigoKChCfDYpPj4zPT0zJiYoYj1BcnJheS5pc0FycmF5KEspP0tbel1pbnN0YW5jZW9mIEJEP0s6W2hFLApLXTpbSyx2b2lkIDBdKSwoQi04XjE1KT49QikmJihCK0FbMV1eMjEpPEImJiFPWzI2XSgyOSwiIix0aGlzKSYmKHRoaXMudSgpLnZhbHVlPXRoaXMuWCksQik+PjImNik9PUFbMF0mJihiPVlbMjZdKEFbMl0seixLLFlbMTBdKDMwLG51bGwsSiksMCkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQj4+KChCJigoYj1bMiwyNSw5XSxCPDwxPj0xOCkmJkIrMTxiWzFdJiYodGhpcy52PXopLDQ3KSk9PUImJihKPW5ldyBkSixDPWdbMjNdKDMyLCI6ICIsazcseixLLEopKSwxKSZiWzJdKT49YlswXSYmKEJeNTUpPDEzJiYoQz16LnY/T1s0M10oNDksei52LlIpOm5ldyBibSgwLDApKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQnw4KT09KCgoKEJeMjcpJihBPVsxLDQsIk0iXSwzKXx8KGI9RFsxOF0o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dCRXcBtMYmwXI0BwHTEgVkVceDAwNVdCaDlXUy1lM1pwYxc2TE0gSlh5bQI9WUkQFlkmfCUFYEpiBlx2PwFiZRYEICFBbFx4MDBccipdcyt/XHIYO1dUOl9xbFxmPFlFKycuY29kZVBvaW50QXQoeisKcClebikmWlsxXSxRKz1TdHJpbmdbWlswXV0odiksbis9djtyZXR1cm4gQz1RfSksQikmJih0aGlzLnNyYz16LHRoaXNbQVsyXV09MCx0aGlzLnY9e30pLGJ9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEImKChCPDwoKEo9WzcsKChCfDcyKT09QiYmKEsuTzA9eiksMTUxMyksMTJdLEJ8NTYpPT1CJiZOUC5jYWxsKHRoaXMpLDEpJkpbMF0pPj0zJiZCKzE+PjQ8NCYmKEs9eigpLnF1ZXJ5U2VsZWN0b3JBbGwoRFtKWzJdXSgyLDEsMSkpLEM9Sy5sZW5ndGg9PTA/IiI6SFs4XSg0NCxKWzFdKShLW0subGVuZ3RoLTFdKSksOTApKT09QiYmKGVbNDRdKDQsei52KSxSWzE3XSgzOSx6LnYpLGVbNDRdKDMyLHoudiksQz16LkJ6KCkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZighKChCfDcpPj4oKChCLShDPVsiaXNBcnJheSIsImZpbmQiLDBdLDYpPj4zfHwoSz1bbnVsbCwiIiwhMV0sR0QuY2FsbCh0aGlzLHRFLndpZHRoLHRFLmhlaWdodCxUaixVayx6PT09dm9pZCAwP251bGw6CnopLHRoaXMuaj1LW0NbMl1dLHRoaXMuZz1LWzJdLHRoaXMuSD1LWzFdLHRoaXMuQz1LW0NbMl1dLHRoaXMudj1LW0NbMl1dLHRoaXMuRD1uZXcgTWssdGhpcy5YPUtbQ1syXV0pLEIpfDQ4KT09QiYmKHpbd0pdfHwoelt3Sl09e30pLHpbd0pdLnNldmVyaXR5PUspLDMpKSlhOntpZihKIGluc3RhbmNlb2YgSTMpe2I9Si5hVDticmVhayBhfWlmKEFycmF5W0NbMF1dKEopKXtiPWdbMjJdKDUseixKLEspO2JyZWFrIGF9fXJldHVybihCfDcyKT09QiYmKGI9Sy5SW0NbMV1dKGZ1bmN0aW9uKEEsdixwLFEsbil7aWYodj1BLkE9PT0obj1bInYiLCJlcXVhbHMiLCJYIl0seltuWzJdXSkpUT1BLmkscD16W25bMF1dLHY9USBpbnN0YW5jZW9mIEY1JiZwIGluc3RhbmNlb2YgRjU/UVtuWzFdXShwKTpRIGluc3RhbmNlb2Ygek8mJnAgaW5zdGFuY2VvZiB6Tz9RW25bMV1dKHApOiExO3JldHVybiB2fSkpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCEoQj4+CigoQisoQis3Pj4zPT0oKEJ8KGY9WyJWZXJpZnkgeW91ciBwaG9uZSIsMiwnPC9kaXY+PGRpdiBjbGFzcz0iJ10sNDgpKT09QiYmKHRoaXMueWE9MCx0aGlzLnYmJnRoaXMudi5jYWxsKHRoaXMuTSkpLGZbMV0pJiYoSj1bJyI+PGRpdiBjbGFzcz0iJywiICIsIiBtaW51dGVzLjwvcD4iXSxOPXouaWRlbnRpZmllcixDPXouSzEsUT16LkwxLEE9ei5jRCx2PUhbNDVdKDQwLEJQKCksTixpbSgpLGNmKCkpLFc9SFs0NV0oNzIsc3QoKSxDLGltKCksdW0oKSksWj1IWzQ1XSgxMix6TSgpLFEsaW0oKSx5UCgpKSxiPUhbNDVdKDgsS2soKSxBLGltKCksY2YoKSksSz0nPGRpdiBjbGFzcz0iJytSWzExXSg3LCJyYy0yZmEtYmFja2dyb3VuZCIpK0pbMV0rUlsxMV0oMzksInJjLTJmYS1iYWNrZ3JvdW5kLW92ZXJyaWRlIikrSlswXStSWzExXSg3MywicmMtMmZhLWNvbnRhaW5lciIpK0pbMV0rUlsxMV0oNzMsInJjLTJmYS1jb250YWluZXItb3ZlcnJpZGUiKStKWzBdK1JbMTFdKDksInJjLTJmYS1oZWFkZXIiKSsKSlsxXStSWzExXSgzOSwicmMtMmZhLWhlYWRlci1vdmVycmlkZSIpKyciPicsSz0oYj09PSJwaG9uZSI/SytmWzBdOksrIlZlcmlmeSB5b3VyIGVtYWlsIikrKGZbMl0rUlsxMV0oNzEsInJjLTJmYS1pbnN0cnVjdGlvbnMiKStKWzFdK1JbMTFdKDksInJjLTJmYS1pbnN0cnVjdGlvbnMtb3ZlcnJpZGUiKSsnIj4nKSxiPT09InBob25lIj8ocD0iPHA+VG8gbWFrZSBzdXJlIHRoaXMgaXMgcmVhbGx5IHlvdSwgd2Ugc2VudCBhIHZlcmlmaWNhdGlvbiBjb2RlIHRvIHlvdXIgcGhvbmUgYXQgIitEWzM5XSg5LHYpKyIuPC9wPjxwPkVudGVyIHRoZSBjb2RlIGJlbG93LiBJdCB3aWxsIGV4cGlyZSBpbiAiK0RbMzldKDYsWikrSltmWzFdXSxLKz1wKToobj0iPHA+VG8gbWFrZSBzdXJlIHRoaXMgaXMgcmVhbGx5IHlvdSwgd2Ugc2VudCBhIHZlcmlmaWNhdGlvbiBjb2RlIHRvICIrRFszOV0oMyx2KSsiLjwvcD48cD5FbnRlciB0aGUgY29kZSBiZWxvdy4gSXQgd2lsbCBleHBpcmUgaW4gIitEWzM5XSg0LApaKStKW2ZbMV1dLERbMzldKDEsdiksRFszOV0oOCxaKSxLKz1uKSxLKz1mWzJdK1JbMTFdKDksInJjLTJmYS1yZXNwb25zZS1maWVsZCIpK0pbMV0rUlsxMV0oNzEsInJjLTJmYS1yZXNwb25zZS1maWVsZC1vdmVycmlkZSIpK0pbMV0rKFc/UlsxMV0oMzksInJjLTJmYS1yZXNwb25zZS1maWVsZC1lcnJvciIpK0pbMV0rUlsxMV0oNywicmMtMmZhLXJlc3BvbnNlLWZpZWxkLWVycm9yLW92ZXJyaWRlIik6IiIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLTJmYS1lcnJvci1tZXNzYWdlIikrSlsxXStSWzExXSgzOSwicmMtMmZhLWVycm9yLW1lc3NhZ2Utb3ZlcnJpZGUiKSsnIj4nLFcmJihLKz0iSW5jb3JyZWN0IGNvZGUuIiksSys9ZlsyXStSWzExXSg5LCJyYy0yZmEtc3VibWl0LWJ1dHRvbi1ob2xkZXIiKStKWzFdK1JbMTFdKDcsInJjLTJmYS1zdWJtaXQtYnV0dG9uLWhvbGRlci1vdmVycmlkZSIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oOSwicmMtMmZhLWNhbmNlbC1idXR0b24taG9sZGVyIikrCkpbMV0rUlsxMV0oNzMsInJjLTJmYS1jYW5jZWwtYnV0dG9uLWhvbGRlci1vdmVycmlkZSIpKyciPjwvZGl2PjwvZGl2PjwvZGl2PicseD1URChLKSksZlsxXSkmMTUpPj1CJiZCLTc8PGZbMV08QiYmKEo9bmV3IGhGKDEsITEpLEoucXgoeixLKSx4PUopLGZbMV0pJjExKSl0aHJvdyBFcnJvcigicGxlYXNlIGNvbnN0cnVjdCBtYXBzIGFzIG11dGFibGUgdGhlbiBjYWxsIHRvSW1tdXRhYmxlIik7cmV0dXJuKEIrOCY2MSk8QiYmKEItM3w4KT49QiYmVC5jYWxsKHRoaXMseikseH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoKEI8PDEmOCk8KCh4PVs0NCw3LG51bGxdLEIreFsxXV4xNCk8QiYmKEItMV4xKT49QiYmKGY9ei52PT16LlgpLDgpJiZCKzg+PjQ+PTIpYTp7aWYocD1iW0NdKXtmPXA7YnJlYWsgYX1pZihRPWIuZlgpaWYoWj1RW0NdKXtmPSgobj0oTj0odj1nWzM0XSgyOCx6LFopLHZbS10pLHZbel0uajApLE4pPyhXPVJbeFswXV0oNSxKLApOKSxBPVJbMzVdKDM2LEosWnQsSFsyNF0uYmluZCh4WzJdLDY0KSxOLGtbNDhdLmJpbmQoeFsyXSwyNSkpLnJlLHA9Yi5Gcj9GUyhBLFcpOmZ1bmN0aW9uKEwscixWKXtyZXR1cm4gbihMLHIsVixBLFcpfSk6cD1uLGJbQ109cCk7YnJlYWsgYX19cmV0dXJuIGZ9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQisyPj4oQz1bNTAsNCwxOF0sQ1sxXSk+PTMmJihCXjIzKT4+Q1sxXTwzJiYhWVtDWzJdXSgxMiwwLHopJiZ5WzJdKDMyLHosei5hVFtBJF18MCkpdGhyb3cgRXJyb3IoKTtyZXR1cm4oQl4oKEI+PjEmMTIpPDUmJihCPj4yJjMpPj0xJiYoSj1IWzBdKENbMF0sSyx6LHopKSwxOSkpPj4zfHxULmNhbGwodGhpcyx6LDAsemwuUlQpLEp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEImNTcpPT0oTD1bMTYsMjQsMTNdLEIpKWtbMzRdKExbMV0seixKeixLLEosQzApO3JldHVybihCLTdeKCgoQiY5MSk9PUImJihKPVlbMjVdKDcsSy52KSxmPUhbMjZdKDIxLAp6LDMxLEsudixKLCEwKSksQi03JjcpfHwocD1bIjovLyIsMCwidmFsdWUiXSxKPVtdLFc9T1s0NF0oOSxwWzBdLHBbMV0sKEE9Snl8fEdsKT09bnVsbD92b2lkIDA6QS5sb2NhdGlvbi5ocmVmKSwoQz1HbFtDa118fEdsW2JjXXx8R2xbQXldfHxHbFt2UF18fEdsW1RNXSk/Sz0hMDoodHlwZW9mIGRvY3VtZW50IT09InVuZGVmaW5lZCImJihaPW5ldyBqZChkb2N1bWVudCksQz1aLmdldChwayl8fFouZ2V0KFFRKXx8Wi5nZXQobmspfHxaLmdldChaUSkpLEs9ISFDKSxLJiYodj0obj1XLmluZGV4T2YoV1AoKSk9PXBbMV18fFcuaW5kZXhPZihnMygpKT09cFsxXXx8Vy5pbmRleE9mKE5MKCkpPT1wWzFdfHxXLmluZGV4T2YoT3QoKSk9PXBbMV0pP0dsW0NrXTpHbFtiY10sdnx8dHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCJ8fChRPW5ldyBqZChkb2N1bWVudCksdj1RLmdldChuP3BrOlFRKXx8US5nZXQobmspKSwoTj12P0RbNl0oTFsyXSxwWzJdLHBbMF0seix2LG4/eHA6RFEpOm51bGwpJiYKSi5wdXNoKE4pLG4mJigoeD1lW0xbMF1dKDIzLHBbMF0scFsyXSxaUSxmayx2UCx6KSkmJkoucHVzaCh4KSwoYj1lW0xbMF1dKDE5LHBbMF0scFsyXSxuayxvWSxBeSx6KSkmJkoucHVzaChiKSkpLGY9Si5sZW5ndGg9PXBbMV0/bnVsbDpKLmpvaW4obzkoKSkpLDMwKSk8QiYmKEItOV4xOSk+PUImJihDPXt9LEouZm9yRWFjaChmdW5jdGlvbihyKXtDW3Jbel1dPXJbS119KSxmPWZ1bmN0aW9uKHIpe3JldHVybiBDW3IuZmluZChmdW5jdGlvbihWKXtyZXR1cm4gViBpbiBDfSldfHwiIn0pLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoQi05JjExKT09KChCfChwPVszLDEsInRvU3RyaW5nIl0sOCkpPj40fHwodj1KLk8uYWRkKFN0cmluZyhLKSxDLHosYixBKSksMikpYTp7aWYoIShiPUxrW3BbMl1dKCksYikpe3Y9SzticmVhayBhfXY9eVszM10oNjQsKEE9Yj9TdHJpbmcoYikudG9VcHBlckNhc2UoKTpudWxsLHopLEssQyxmdW5jdGlvbihRKXtyZXR1cm4oIUF8fFEubm9kZU5hbWU9PQpBKSYmSn0pfXJldHVybihCPj4oKEJeNTYpPj5wWzBdPT1wWzFdJiZ6JiYodGhpcy5pNz16KSwyKSYxNik8cFsxXSYmKChCfDgpJjcpPj02JiYodGhpcy52PW5ldyBSWShiLEsseixDLEopKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCPj4oKChCPj4oKEE9WyJHSiIsMTEsMTBdLChCXjU0KTwxMikmJihCPj4yJjE0KT49NSYmKHY9a1sxNV0oQVsyXSw0LHRoaXMudikpLDEpJjE1KT09MSYmKEM9bmV3IEsuY29uc3RydWN0b3IoeiksSiYmKEMudj1jTCksQy5NPWNMLHY9QyksKEJ8NDApPT1CKSYmKHY9ISEoSy5SdSZ6KSYmISEoS1tBWzBdXSZ6KSksMikmQVsxXSk9PTEmJihiPUMuc3R5bGUsIm9wYWNpdHkiaW4gYj9iLm9wYWNpdHk9SjoiTW96T3BhY2l0eSJpbiBiP2IuTW96T3BhY2l0eT1KOiJmaWx0ZXIiaW4gYiYmKGIuZmlsdGVyPUo9PT0iIj8iIjoiYWxwaGEob3BhY2l0eT0iK051bWJlcihKKSpLK3opKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCwKUSl7aWYoKChCPj4oUT1bMCwyNCwidiJdLDIpPj0xNyYmQj4+MjxRWzFdJiYoSy5sPUo/a1sxMl0oMjMseik6eixwPUspLEJeMjEpJjUpPj0zJiZCKzk+PjU8MSl7aWYoKChiPVszLG51bGwsIiJdLHIzKCksaylbMjVdKDM5LGJbMV0sSyksSy5NKT09YltRWzBdXSl7aWYoKHY9IShKPSgoKChBPShDPUsuWGcrKyx5WzE1XSg0MCxLLmopKSxtKVs5XSg5LEEseUUoKSxLLlMpLG0pWzldKDExLEEscWgoKSxDKSxtWzldKDIxLEEsbTIoKSxWUSgpKSxIKVszMl0oMzYsQSxLKSxuZXcgJHkoQyxLLEsuQSx2b2lkIDApKSxKLmc9MixKLkM9ZVs0OV0oMSx5WzE1XSgzMixBKSksMSksR2wubmF2aWdhdG9yKSYmR2wubmF2aWdhdG9yLnNlbmRCZWFjb24pdHJ5e3Y9R2wubmF2aWdhdG9yLnNlbmRCZWFjb24oSi5DLnRvU3RyaW5nKCksYlsyXSl9Y2F0Y2gobil7fSgoIXYmJkdsLkltYWdlJiYoKG5ldyBJbWFnZSkuc3JjPUouQyx2PSEwKSx2KXx8KEpbUVsyXV09eVszNV0oNixKLmkseiksSltRWzJdXS5zZW5kKEouQykpLApKLlA9RGF0ZS5ub3coKSxlKVszNF0oMixKKX1PW1FbMV1dKDEsYlsxXSxRWzBdLEspfXJldHVybihCXjc5KSYoKEIrKChCPj4yJjE1KT49OSYmKEItMyZRWzFdKTw1JiYoSy5NPUMsSy5YPXosSy5pPSFKLHlbM10oMSwyLFFbMF0sSykpLDIpJjYwKT49QiYmKEItNnwyNyk8QiYmR0QuY2FsbCh0aGlzLEdNLndpZHRoLEdNLmhlaWdodCxoZSksNyl8fChKPVtIUCxlZF0scD0oSz1BcnJheS5mcm9tKFBQKCRwKSkuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gSi5pbmNsdWRlcyhuLmF1dG9jb21wbGV0ZSkmJm4udHlwZSE9cUwmJm4udmFsdWV9KSk9PXo/dm9pZCAwOksudmFsdWUpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYpe2lmKCgoVj1bODE5MiwxLCJhcHBseSJdLEIpLTUmMTUpPT0yKXtmb3IoTj0oQT0oZj0oUT1bMTUsKChXPShMPXomMzI3NjcsMCksSik+dGhpcy5sZW5ndGgmJihKPXRoaXMubGVuZ3RoKSwxMDczNzQxODIzKSwzMF0sMCksCno+Pj5RWzBdKSxLKTtmPEo7ZisrKUM9dGhpcy5IMShmKSxaPUMmMzI3Njcsdj1DPj4+UVswXSx4PXhpKFosQSksYj14aSh2LEwpLG49eGkodixBKSxwPU4reGkoWixMKStXLFc9cD4+PlFbMl0scCY9UVtWWzFdXSxOPW4rKHg+Pj5RWzBdKSsoYj4+PlFbMF0pLHArPSgoeCYzMjc2Nyk8PFFbMF0pKygoYiYzMjc2Nyk8PFFbMF0pLFcrPXA+Pj5RWzJdLHRoaXMucXgoZixwJlFbVlsxXV0pO2lmKFchPT0wfHxOIT09MCl0aHJvdyBFcnJvcigiaW1wbGVtZW50YXRpb24gYnVnIik7fWlmKCEoQj4+VlsxXSYyMykpZm9yKEM9Sy5zcGxpdChlQygpKSxKPUdsO0MubGVuZ3RoJiYoYj1DLnNoaWZ0KCkpOylDLmxlbmd0aHx8ej09PXZvaWQgMD9KW2JdJiZKW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXT9KPUpbYl06Sj1KW2JdPXt9OkpbYl09ejtpZihCPDwoQis4JjEyfHwocj1SWzE3XSg3LHRoaXMudikpLFYpWzFdPj0yNCYmKEJeMjcpPDI3KWE6e2lmKEM9PUspe3I9bmV3IEo7YnJlYWsgYX1pZihiPQpDLCFBcnJheS5pc0FycmF5KGIpKXRocm93IEVycm9yKCk7aWYoUFUoYil8fE9iamVjdC5pc1NlYWxlZChiKXx8IWljKGIpKXRocm93IEVycm9yKCk7cj1uZXcgSihIWzRdKDU3LHosKEM9YixDKSkpfWlmKCgoQl41NykmOSk9PVZbMV0pe2lmKEsubGVuZ3RoPD1WWzBdKUM9U3RyaW5nLmZyb21DaGFyQ29kZVtWWzJdXSh6LEspO2Vsc2V7Zm9yKEo9MCxiPSIiO0o8Sy5sZW5ndGg7Sis9VlswXSliKz1TdHJpbmcuZnJvbUNoYXJDb2RlW1ZbMl1dKHosQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoSyxKLEorVlswXSkpO0M9Yn1yPUN9cmV0dXJuIHJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKCgoQiYoKCh2PVszMCw1MCwyXSxCKV52WzBdKT4+NHx8VC5jYWxsKHRoaXMseiksMTIzKSk9PUImJihDPXoudmlzaWJsZSxKPXoudXk9PT12b2lkIDA/bnVsbDp6LnV5LEs9ei5yZXNpemU9PT12b2lkIDA/bnVsbDp6LnJlc2l6ZSxiPXouUk49PT12b2lkIDA/ITE6ei5STix0aGlzLnZpc2libGU9CkMsdGhpcy51eT1KLHRoaXMucmVzaXplPUssdGhpcy5STj1iKSxCKXx2WzJdKT4+NHx8KEE9UlsyNV0odlsxXSx6LEssQyx5USxKLGwpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7cmV0dXJuKHg9WzksNDcsMzddLEIteFswXV4xMCk8QiYmKEIrNCY0Nik+PUImJnouWC5wdXNoKFlbMl0oODAsZnVuY3Rpb24oZixMKXtyZXR1cm4hIWZ8fCEhTH0seiksei5rOSx6LmlQLHoucHosei5IZCksKEImMTIyKT09QiYmKHY9WzEsMzQxLDQzOF0sSj1KPT09dm9pZCAwP251bGw6SixXPXlbMzZdKDU1LDIxLEssT1syNV0oNSx6KSksQT1PW3hbMl1dKDUzLEssT1syNV0oMyxLKSxPWzI1XSg3LHZbMV0pKSxaPVlbMTVdKDY1LEssT1syNV0oMSxLKSxPWzI1XSgzLHZbMl0pKSxwPU9bMjVdKDcsMjc4KSxiPVJbMTNdKDQ2LEhbMjVdKDU4LE9beFswXV0oMjUsMzYpLEspLFtnWzE2XSg5NCxwKSxPWzI1XSgxLEspXSksUT1bVyxBLFosYl0sSiE9bnVsbCYmKG49Z1s3XSh4WzJdKSwKQz1nWzddKDM5KSxRPVtZWzBdKDI0LG4sT1syNV0oeFswXSx6KSxPWzI1XSh4WzBdLDApKV0uY29uY2F0KFEsW1lbMF0oMjgsQyx2WzBdLHZbMF0pLG4sbVsxMl0oeFsxXSxLLEopLENdKSksTj1RKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKEImNjApPT0oYj1bODYsOCw0NF0sQikmJihKPW5ldyBtcCxBPUhbYlsyXV0oYlswXSxKLHpsLHosSyxsKSksQis2JjMpPj0xJiYoQnxiWzFdKTwxNSlPWzJdKDQwLGZ1bmN0aW9uKCl7Si5XLnRoZW4oZnVuY3Rpb24odixwLFEsbixaKXsobj1bbnVsbCwyLChaPVsiSmUiLCJSdyIsMF0sMCldLCgoUT1KLnYpPT1uW1pbMl1dP3ZvaWQgMDpRW1pbMF1dKSE9bltaWzJdXSkmJigocD1KLnYpPT1uW1pbMl1dP3ZvaWQgMDpwW1pbMV1dKSE9bltaWzJdXSYmRGF0ZS5ub3coKT49Si52W1pbMV1dKzI0RTQ/KE9bNDBdKDI5LEssMSx6LG5bWlsyXV0sdi5rWixKLnZbWlswXV0sSi52LmpGKS5jYXRjaChmdW5jdGlvbigpe30pLEoudltaWzFdXT0KRGF0ZS5ub3coKSxnWzQ5XSgzLG5bMl0sblsxXSxKKSk6Si5PPSExfSl9LGdbMTRdKDE2LG51bGwseixEYXRlLm5vdygpLChDPUoudik9PW51bGw/dm9pZCAwOkMuUncpKTtyZXR1cm4gQX1dfSgpLGU9ZnVuY3Rpb24oKXtyZXR1cm5bZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7cmV0dXJuKChaPVs0NywxLDBdLEItNSY3KXx8KG49WyJlbiIsITEsMl0sZGsuSigpLmluaXQoeVtaWzJdXSgxMiwzLHopKSxZWzQ0XSgyNCxmdW5jdGlvbihOLHgsZil7KHguaz0oZj1bMCwiWCIsOF0sRClbZlsyXV0oZlsyXSx5W2ZbMF1dKGZbMl0sMyx6KSksSiYmSltmWzFdXS52YWx1ZSkmJih4LnQ9SltmWzFdXS52YWx1ZSl9KSxiPU9bNV0oMjcsWlsxXSxnWzE5XSgxNyw2LHopKSxiPT0zP0o9bmV3IFlwKFlbMzJdKDE2LG5bMl0sZ1sxOV0oMzMsNix6KSksRFszNV0oMiwzLGdbMTldKDI1LDYseikpLFlbMTldKDUsMTkseil8fG5bWlsxXV0sWVsxOV0oNCwyMCx6KXx8bltaWzFdXSx5WzEwXSgyNSwKMzEseVtaWzJdXSgxNiwzLHopKXx8bltaWzFdXSxZWzIyXSg1OCwzNCx5W1pbMl1dKDgsMyx6KSl8fG5bWlsxXV0pOko9bmV3IGNQKFlbMzJdKDE3LG5bMl0sZ1sxOV0oNDAsNix6KSksYixZWzE5XSg0LDE5LHopfHxuW1pbMV1dLFlbMTldKDQsMjAseil8fG5bWlsxXV0seVsxMF0oMjQsMzEseVtaWzJdXSgyOCwzLHopKXx8bltaWzFdXSxZWzIyXSg1NywzNCx5W1pbMl1dKDMyLDMseikpfHxuW1pbMV1dKSxKLnJlbmRlcihHWzE1XSgzNikpLEM9bmV3IHE1KEhbMjFdKFpbMF0seiwyNyxsKSxIWzIxXSgxNSx6LDI4LGwpfHwxRTQpLHY9bmV3IHlBLFJbNDhdKDc0LHosU2QsWlsxXSxsKSYmKHYuc2V0KFJbNDhdKDcxLHosU2QsWlsxXSxsKSksdi5sb2FkKCkpLEE9bmV3IG1FKEMseix2KSxwPW51bGwsQS5sJiYocD1nWzMwXSgxOSkpLEs9WVsyN10oOCxrW1pbMF1dKDksbGMpKSxtW1pbMF1dKDU0LEssaHEsbltaWzJdXSksbVtaWzBdXSgyMixLLGRPLCJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiKSwKUT1lWzI5XSg2LGVbNDZdKDE2LEsudG9TdHJpbmcoKSkpLHRoaXMudj1uZXcgRXQoSixBLFEscCkpLChCKzUmNyk9PVpbMV0pJiYocFEuY2FsbCh0aGlzKSx0aGlzLk09e30sdGhpcy52PXt9KSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCgoQl43OSkmMTEpPT0obj1bOSw0OSw0XSwzKSYmKFE9ei5jbGFzc0xpc3Q/ei5jbGFzc0xpc3Q6eVsyMl0oblsyXSwiIiwic3RyaW5nIix6KS5tYXRjaCgvXFMrL2cpfHxbXSksKEJ8MjQpPT1CKXtpZigoKHY9WyJodHRwIiwhMSwiRXJyb3IgY29kZSAiXSxKLkEpLmluZm8odlsyXStLKSxLKT09MilwPVJ4KEoudmwsSiksQz1KLnlBLEE9IUMsYj1uZXcgeTYoQ3x8Ii8vd3d3Lmdvb2dsZS5jb20vaW1hZ2VzL2NsZWFyZG90LmdpZiIpLEdsLmxvY2F0aW9uJiZHbC5sb2NhdGlvbi5wcm90b2NvbD09dlswXXx8WVszMV0oMTQsITAsYixYbigpKSxlW25bMV1dKDUsYiksQT9IWzQ4XSg2NCwhMCx2WzFdLGIudG9TdHJpbmcoKSxwKToKWVsyOF0oMSwhMCx2WzFdLGIudG9TdHJpbmcoKSxwKTtlbHNlIEhbNDZdKDIsMik7Si5NPXosSi5SJiZKLlIucVooSyksT1syNF0oMixudWxsLDAsSiksa1syNV0oNDAsbnVsbCxKKX1yZXR1cm4oQnw4MCk9PSgoQisoQi1uWzJdPDwxPj1CJiYoQi1uWzJdfDI3KTxCJiYoUT1LLmxlbmd0aD09PTA/SFs0N10uYmluZChudWxsLDE2KTpLLmxlbmd0aD09PTE/S1t6XTpmdW5jdGlvbihaKXtyZXR1cm4gSy5yZWR1Y2UoZnVuY3Rpb24oVyxOKXtyZXR1cm4gTihXKX0sWil9KSwzKV4zMCk+PUImJkItblswXTw8MjxCJiZULmNhbGwodGhpcyx6KSxCKSYmKEs9ZnVuY3Rpb24oWil7cmV0dXJuIHouY2FsbChLLnNyYyxLLmxpc3RlbmVyLFopfSx6PXVjLFE9SyksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKEJ8KCgoKChCXigoQT1bIlIiLDAsMjNdLChCXkFbMl0pPDEyJiYoQjw8MSYyNyk+PTUmJnouRikmJnouRi5mb3JFYWNoKEssdm9pZCAwKSwzOSkpPj40fHwoYj1SWzQ3XSg5NywKSFs0XSg5NSx6LEosSyxDKSkpLEIpJjkwKT09QiYmKHRoaXMuQT1bXSx0aGlzLm09eixKPVswLCExLG51bGxdLHRoaXMuQz1LfHxKWzJdLHRoaXNbQVswXV09SltBWzFdXSx0aGlzLm89SlsxXSx0aGlzLmw9SltBWzFdXSx0aGlzLkY9SlsxXSx0aGlzLnY9SlsyXSx0aGlzLk09dm9pZCAwLHRoaXMuaT1KWzFdLHRoaXMuTz1KWzFdLHRoaXMuWD1KWzFdKSwoQi0yfDc3KT49QikmJkItNDw8MTxCJiYodGhpcy5sZWZ0PUMsdGhpcy50b3A9eix0aGlzLndpZHRoPUssdGhpcy5oZWlnaHQ9SiksNDApKT09QiYmKHRoaXMuVWQ9Qyx0aGlzLnVjPUosdGhpcy5PST1LLHRoaXMuVlg9eiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEImKCgoKEJ8KEE9WzM2LCJjYWxsIiwxM10sMzIpKT09QiYmKEM9Si50eXBlLEMgaW4gSy52JiZtWzI2XSg1OSx6LEsudltDXSxKKSYmKE9bMTBdKDUsITAsSiksSy52W0NdLmxlbmd0aD09eiYmKGRlbGV0ZSBLLnZbQ10sSy5NLS0pKSksQikmQVsyXSk9PQpCJiYoYj1tW0FbMF1dKDQzLGZ1bmN0aW9uKHYpe3JldHVybiB2IGluc3RhbmNlb2Ygen0pKSwyMikpPT1CKVRbQVsxXV0odGhpcyx6KTtyZXR1cm4gYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCJigoQnw0OCk9PSgoQiszJihCPj4yPChCLShwPVsiSCIsNywidiJdLDkpPj4zPT0yJiYodj1LLmhhc0F0dHJpYnV0ZShJYygpKSYmUlszM10oMTgseixLKSksMzIpJiYoQi05JjE1KT49MTMmJihDPVswLG51bGwsIm4iXSx3RS5jYWxsKHRoaXMpLHRoaXMuTz1DWzBdLHRoaXNbcFsyXV09eix0aGlzLkE9Q1sxXSx0aGlzLmk9Q1sxXSx0aGlzLkY9Six0aGlzLlg9QmYsdGhpcy5sPUNbMF0sdGhpcy5NPUssUlszM10oMywhMSwibSIsImsiLENbMl0sdGhpcykpLDEzKSk9PTQmJihKPXosdj1mdW5jdGlvbigpe3JldHVybiBKPEsubGVuZ3RoP3tkb25lOiExLHZhbHVlOktbSisrXX06e2RvbmU6ITB9fSksQikmJihLJiYoSz1nMFswXSg0NCwiZ29vZy5Qcm9taXNlLnRoZW4iLApLKSksQyYmKEM9ZzBbMF0oMjgsImdvb2cuUHJvbWlzZS50aGVuIixDKSksQT1HWzhdKHBbMV0seix6LHopLEFbcFsyXV09bmV3IElwKGZ1bmN0aW9uKFEsbil7QS5NPShBLmk9Sz9mdW5jdGlvbihaLFcpe3RyeXtXPUsuY2FsbChiLFopLFEoVyl9Y2F0Y2goTil7bihOKX19OlEsQyk/ZnVuY3Rpb24oWixXKXt0cnl7Vz1DLmNhbGwoYixaKSxXPT09dm9pZCAwJiZaIGluc3RhbmNlb2Yga1U/bihaKTpRKFcpfWNhdGNoKE4pe24oTil9fTpufSksQVtwWzJdXS5YPUoseVsxOV0oMjMsMiwzLEEsSiksdj1BW3BbMl1dKSwyOSkpPT1CJiYocFEuY2FsbCh0aGlzKSx0aGlzW3BbMF1dPXosdGhpcy5XPXt9KSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCl7aWYoKEI+PjImKGg9WzMsMSwyNF0sMTMpKT09aFsxXSl7aWYoSFtKPShLPUs9PT12b2lkIDA/e306SyxKKT09PXZvaWQgMD8hMDpKLDQ0XSg5LHopJiZ6Lm5vZGVUeXBlPT0KaFsxXXx8IUhbNDRdKGhbMV0seil8fChLPXosej1HWzI1XSg3LHNpLGRvY3VtZW50KSxHWzE1XSg0MykuYXBwZW5kQ2hpbGQoeiksS1t3ci5nZXROYW1lKCldPUx3KSxwPWVbMzVdKDg4LG51bGwseiksIXApdGhyb3cgRXJyb3IoYVkoKSk7aWYoIUtbdT1DfHxuZXcgTWssckYuZ2V0TmFtZSgpXSYmd2luZG93W2kzXVtoeSgpXSYmd2luZG93W2kzXVtoeSgpXS5sZW5ndGg+MCYmKEtbckYuZ2V0TmFtZSgpXT13aW5kb3dbaTNdW2h5KCldWzBdKSxKPyhRPXAsTj1RLmdldEF0dHJpYnV0ZShzayksdj1RLmdldEF0dHJpYnV0ZShkMyksVz1RLmdldEF0dHJpYnV0ZShrcCkseD1RLmdldEF0dHJpYnV0ZSh0eSksVj1RLmdldEF0dHJpYnV0ZShVdCksQT1RLmdldEF0dHJpYnV0ZShNTCkscT1RLmdldEF0dHJpYnV0ZSh3MyksYz1RLmdldEF0dHJpYnV0ZShJWSksYj1RLmdldEF0dHJpYnV0ZShGbiksTD1RLmdldEF0dHJpYnV0ZShCbiksbj1RLmdldEF0dHJpYnV0ZShzdiksZj1RLmdldEF0dHJpYnV0ZSh6VCksCmQ9e3NpdGVrZXk6Tix0eXBlOnYsdGhlbWU6VyxzaXplOngsdGFiaW5kZXg6VixiaW5kOkEscHJlbG9hZDpxLGJhZGdlOmMsczpiLHBvb2w6TCwiY29udGVudC1iaW5kaW5nIjpuLGFjdGlvbjpmfSwoUD1RLmdldEF0dHJpYnV0ZShLcykpJiYoZFtKVSgpXT1QKSwocj1RLmdldEF0dHJpYnV0ZShDcykpJiYoZFtiMCgpXT1yKSwoWD1RLmdldEF0dHJpYnV0ZShBVSkpJiYoZFt2bigpXT1YKSwoYT1RLmdldEF0dHJpYnV0ZShUVCkpJiYoZFtqMCgpXT1hLnRvTG93ZXJDYXNlKCk9PT0iZmFsc2UiPyExOiEhYSksRT1kLEsmJkQ2KEUsSykpOkU9SyxSWzVdKDMzLHApKXRocm93IEVycm9yKHBzKCkpO2lmKHAudGFnTmFtZT09d1B8fHAudGFnTmFtZT09ZDUmJihwLnR5cGU9PVFofHxwLnR5cGU9PW5zKSlFW2NILmdldE5hbWUoKV09cCxaPUdbMjVdKDcwLHNpLGRvY3VtZW50KSxwLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKFoscCkscD1aO2lmKFlbaFsxXV0oNTMsaFsxXSxwKS5sZW5ndGghPT0KMCl0aHJvdyBFcnJvcihaMSgpKTtpZighRXx8IUhbNDRdKDgsRSkpdGhyb3cgRXJyb3IoV24oKSk7Uz1uZXcgZzkoRSxwLHUpLHdpbmRvd1tpM11bU04oKV1bUy5pZF09Uyx0PVMuaWR9aWYoKEImNDUpPT1CKXtpZihiPXRoaXMudj0oUT0odGhpcy5GPShXaC5jYWxsKHRoaXMseiwodj1bIiIsMSwyOV0sSikpLFIpWzI2XSgxNSxLLDQsbCksdGhpcy5YPSEhWVsxOV0oNjgsMTAsSyksZylbMTldKGhbMl0sNixLKSxnWzE2XSg4OCx2b2lkIDAsUSx2W2hbMV1dKT09aFswXSYmIXRoaXMuWCkpcD15WzBdKGhbMl0saFswXSxLKSxiPSFZWzE5XSg2OCwxOCxwKTt0aGlzLm89KHRoaXMuaj0odGhpcy5DPSh0aGlzLmc9KHRoaXMuVT0oKFo9KHRoaXMuSz0oKHRoaXMuUz0oQz0odGhpcy5PPSh0aGlzLkQ9KG49KCh0aGlzLlI9ISFZWzE5XSgodGhpcy5BPWIsNjkpLDE0LEspLHRoaXMpLmw9ISFZWzE5XSg1LDE1LEspLEgpWzRdKDkzLDExLEssbCx2b2lkIDAsa1s0Nl0uYmluZChudWxsLDI4KSksCmVbMjZdKDE2LG51bGwsbikpfHw4NjQwMCxSKVsyNl0oMjIsSywxMyxsKSxlKVsyNl0oaFsxXSxudWxsLEhbNF0oOTAsMTgsSyxsLFFCLGtbNDZdLmJpbmQobnVsbCwyOSkpKSkhPW51bGw/QzowLHRoaXMpLlc9KEE9ZVsyNl0oMTcsbnVsbCxIWzRdKDk0LDMxLEssbCxRQixrWzQ2XS5iaW5kKG51bGwsMjApKSkpIT1udWxsP0E6MCx5WzEyXSg4LDAsMjEsSyxrW2hbMF1dKDEzLE52KSxsKSksUls0OF0oNzUsSyxTZCx2W2hbMV1dLGwpKSk9PW51bGw/dm9pZCAwOlJbMjZdKDIwLFosNCxsKSl8fHZbMF0sdGhpcy5IPXlbMTJdKDE2LDAsMjMsSyxrW2hbMF1dKDExLE52KSxsKSxSWzI2XSgxNSxLLGhbMl0sbCl8fHZbMF0pLEhbMjFdKDQ3LEssMjcsbCkpfHwwLEhbMTJdKDIxLEssdlsyXSxPdixrW2hbMF1dKDYpLGwpKSxSWzI2XSgxNSxLLDMwLGwpfHx2WzBdKX1pZigoQi03Pj40fHwoSz1nMFswXSgxMiwiZ29vZy5hc3luYy5ydW4iLEspLEdafHxZWzJdKDgpLGdrfHwoR1ooKSxnaz16KSwKWmkuYWRkKEssSikpLEJ8NDgpPT1CKWE6e2lmKCEodj0oKFE9KHA9dm9pZCAwLFsxNiwiYmlnaW50Iiwic3RyaW5nIl0pLHAhPW51bGwpfHwocD0xMDI0KSxwIT09MCksdikmJiFnZCl7dD1iO2JyZWFrIGF9aWYoIVlbMzddKDIsYix2KSl0aHJvdyBlWzZdKDUyLHg0KCkpO0E9dHlwZW9mIGI7c3dpdGNoKHApe2Nhc2UgSjpzd2l0Y2goQSl7Y2FzZSBRWzJdOnQ9bVsxMl0oNixRWzBdLCEwLGIpO2JyZWFrIGE7Y2FzZSBRW2hbMV1dOnQ9U3RyaW5nKEt3KEMsYikpO2JyZWFrIGE7ZGVmYXVsdDp0PXlbMl0oaFsxXSwhMCw4LGIpO2JyZWFrIGF9Y2FzZSAxMDI0OnN3aXRjaChBKXtjYXNlIFFbMl06dD1ZWzIyXSgzNCxLLFFbMF0sYik7YnJlYWsgYTtjYXNlIFFbaFsxXV06dD1HWzMxXSg5MixLdyhDLGIpKTticmVhayBhO2RlZmF1bHQ6dD1ZWzI5XSgxNSwhMCw4LGIpO2JyZWFrIGF9Y2FzZSBLOnN3aXRjaChBKXtjYXNlIFFbMl06dD1tWzEyXSg0LFFbMF0sITEsYik7YnJlYWsgYTtjYXNlIFFbaFsxXV06dD0KR1szMV0oODQsS3coQyxiKSk7YnJlYWsgYTtkZWZhdWx0OnQ9SFs0NF0oNzIsSyxiLCExKTticmVhayBhfWRlZmF1bHQ6dD15WzI3XSg1LHoscCk7YnJlYWsgYX19cmV0dXJuIHR9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybigoKChCXjUyKSYxNSk+PShCKyhBPVs0OCw0OSwyXSw1KT4+MT49QiYmKEItNnw4Myk8QiYmKEo9bmV3IEJOLGI9a1s2XSgxLHosSixLKSksNykmJkI+PjE8MTcmJihiPWVbQVsyXV0oMzQseix2b2lkIDAsSykpLCgoQl41OCkmOCk8QVsyXSYmKEI8PEFbMl0mMTUpPj1BWzJdJiYoSj1SWzhdKDU4LHRoaXMpLHo9dGhpcy54SixDPU9bQVswXV0oOTYsdGhpcyksSz1nMFswXShBWzFdLCJbIixDLCIiKSx6W0pdPUspLEJ8ODApPT1CJiYoYj1OdShKKT9HWzMxXSg4NixZWzQ2XSg0LDAsSix6KSk6R1szMV0oOTAsUlsxOF0oMTUsSyxKLHopKSksKEI8PDEmMTYpPDYpJiYoQj4+MSYxMSk+PTEwJiYoSz1FcnJvcih6KSxnWzM4XShBWzBdLEssIndhcm5pbmciKSwKeVsxNl0oMTAsSyksYj1LKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQnwoQi02Pj0oKChCLShiPVsyOCw5LDI0XSw1KT4+NHx8KHRoaXMuajA9Syx0aGlzLlU5PXosQz1EWzE1XShiWzBdLEQxKSx0aGlzLnY9ISFDJiZKPT09Q3x8ITEpLEIpK2JbMV1eMTMpPj1CJiYoQi04XmJbMl0pPEImJihBPUhbMjVdKDU3LE9bYlsxXV0oMjYsYlswXSkseikpLDEwKSYmKChCXjYzKSY4KTwxJiYoQT1TdHJpbmcoeikucmVwbGFjZShmcyxnWzI3XS5iaW5kKG51bGwsMjcpKSksNykpPDQyJiZCK2JbMV0+PTIyJiZULmNhbGwodGhpcyx6KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoYj1bNCw1NywibyJdLChCXjMwKT4+Mz49MSkmJihCPDwyJmJbMF0pPDEpe2lmKEpbYlsyXV0hPXopdGhyb3cgRXJyb3IoIldhdGNoRG9nIHRpbWVyIG5vdCBudWxsIik7SltiWzJdXT1nWzBdKGJbMV0sUngoSi5BTCxKKSxLKX1pZigoKEJeNDUpJjcpPT0yKWE6e2lmKEs9PXp8fEs9PSIiKXtBPQpuZXcgSjticmVhayBhfWlmKCEoQz1vQyhLKSxBcnJheSkuaXNBcnJheShDKSl0aHJvdyBFcnJvcihMcygpKTtBPW5ldyBKKEhbYlswXV0oNTgsMzIsQykpfXJldHVybihCfDIpPj5iWzBdPj0wJiYoQnw1KTwxNSYmTEQuY2FsbCh0aGlzLDEzMTMsMjUpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuKEI8PCgoKEIrKG49WzExLCIiLDFdLDkpJjE1KT09MiYmTEQuY2FsbCh0aGlzLDI5MSwyOCksKEI8PG5bMl0mMTUpPj0zKSYmKEItMyYxMik8MiYmKEM9Qz09PXZvaWQgMD9NNTpDLG1bMjZdKDgsMCx6LERPLmdldChLKSxKLEMpKSwyKSYxNXx8KFJDPXopLChCXjI4KSYxMyk+PTEwJiZCPj4yPDIzJiYoQT1iPT0yLHY9ZVtuWzBdXSgzNSxuWzFdLCEwLEMsSz9BP3I5Oko/Vmg6R1Q6QT9IbjpKP2UwOlBuKSxwPWVbMzFdKG5bMF0sInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXIiLEMpLGtbMl0oblswXSxZWzIzXSg1MixDKSx2LCQ0LFJ4KGZ1bmN0aW9uKCl7WVszOF0oNCwKcCx6KX0sQykpLGtbMl0oMzEsWVsyM10oNDksQyksdixxdixSeChmdW5jdGlvbigpe0smJllbMzhdKDUscCwhMCl9LEMpKSxRPXYpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oQj4+MiYodj1bOCwxLDMwXSw3KXx8KEM9Qz09PXZvaWQgMD8hMTpDLHA9KEE9T1sxNF0oMTUseixIWzRdKDkxLEssSixiKSkpIT16P0E6QyksQjw8dlsxXTwxNyYmQjw8dlsxXT49dlswXSYmSy5ELmxlbmd0aCYmIUsuQikmJihLLkI9ITAsZ1szXSg1OSxLLHopKSwoQit2WzFdXnZbMl0pPEImJihCLXZbMV18OSk+PUImJihwPXouY2xhc3NMaXN0P3ouY2xhc3NMaXN0LmNvbnRhaW5zKEspOllbdlswXV0oMTYsZVt2WzFdXSg0MCx6KSxLKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCPj4xJigoKChwPVsidGltZSIsMCw3XSxCPDwyJjE1fHwodj0oej1IWzhdKDQwLDU3ODIpKGkwKyIiLHloKSk/a1szNV0oNDQsei5yZXBsYWNlKC9ccy9nLCIiKSk6eiksQi05KSYKMTUpPj1wWzFdJiZCKzg+PjQ8MiYmKEdbMTBdKDkzLFk0LEspfHxHWzEwXSg4NSxjbixLKT9iPVN0cmluZyhLKS5yZXBsYWNlKGZzLGdbMjddLmJpbmQobnVsbCwyOCkpOihLIGluc3RhbmNlb2YgeGs/Sj1lW3BbMl1dKDQyLG1bNDRdKDgseixLKSk6KEsgaW5zdGFuY2VvZiBIbD9DPWVbcFsyXV0oNDAsWVszMV0oMTksSykudG9TdHJpbmcoKSk6KEE9U3RyaW5nKEspLEM9UzAudGVzdChBKT9BLnJlcGxhY2UoZnMsZ1syN10uYmluZChudWxsLDI5KSk6bXEoKSksSj1DKSxiPUopLHY9YiksKEJ8OCk9PUIpJiYodj1TdHJpbmcoeikucmVwbGFjZSgvXC0oW2Etel0pL2csZnVuY3Rpb24oUSxuKXtyZXR1cm4gbi50b1VwcGVyQ2FzZSgpfSkpLDEzKSk9PTEmJihiPW5ldyBsMChlWzMxXSg5LEMudixKKSxDLnNpemUsQy5ib3gsQ1twWzBdXSx2b2lkIDAsITApLE9bMjJdKDE0LEssYixFdixSeChmdW5jdGlvbihRLG4pe3R5cGVvZihRPXRoaXMuQS5zdHlsZSxuPVsiYmFja2dyb3VuZFBvc2l0aW9uWSIsCiJiYWNrZ3JvdW5kUG9zaXRpb25YIiwiYmFja2dyb3VuZFBvc2l0aW9uIl0sUVtuWzJdXT16LFEpW25bMV1dIT0idW5kZWZpbmVkIiYmKFFbblsxXV09eixRW25bMF1dPXopfSxiKSksdj1iKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZihaPVsiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiaGFzIiw0Ml0sKEImNzgpPT1CKWE6dHJ5e1c9eltaWzBdXSgpO2JyZWFrIGF9Y2F0Y2goTil7Vz17bGVmdDowLHRvcDowLHJpZ2h0OjAsYm90dG9tOjB9O2JyZWFrIGF9cmV0dXJuKEImMTE3KT09QiYmKFlbWlsyXV0oMTUseixLKSxKPWtbOV0oMTgsSixLKSxXPUsudltaWzFdXShKKSksKEJ8NDgpPT1CJiZuLmluZm8oZnVuY3Rpb24oTix4LGYsTCxyLFYsUCxxLGMsRSl7aWYoKEU9WyIpIFthdHRlbXB0ICIsKGY9WzAsIj1yZWRhY3RlZCYiLCIiXSwiXTogIiksInNwbGl0Il0sbikudilpZihRKXtmb3IoTj0oTD1RW0VbMl1dKChxPWZbMl0sekwpKCkpLGZbMF0pO048TC5sZW5ndGg7TisrKWM9CkxbTl1bRVsyXV0oWFooKSksYy5sZW5ndGg+MSYmKHg9Y1sxXSxQPWNbZlswXV0sVj1QW0VbMl1dKG1kKCkpLHE9Vi5sZW5ndGg+PUomJlZbMV09PUM/cSsoUCsiPSIreCtLKTpxKyhQK2ZbMV0pKTtyPXF9ZWxzZSByPW51bGw7ZWxzZSByPVE7cmV0dXJuIlhNTEhUVFAgUkVRICgiK2IrRVswXStwK0VbMV0rdit6K0EreityfSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope2lmKChCfDQ4KT09KChuPVsiNy4wIiw1MCwxOV0sQi03PDwyPj1CKSYmKEIrN14yNSk8QiYmKEE9R1szOF0oMjMseixBLEspLEdbMjZdKDgsQyxKLEEsYiksQSYmIXlbMl0oMzYsQSkmJkhbMzZdKDQsYi5hVCksWj1iKSxCKSlhOntpZihIWzIyXSgoQT1IWzMzXSgocD1bIkNyaU9TIiwiZyIsITBdLDMxKSksNDgpLEMpKXtaPVJbMjldKDIsblswXSwxLEEpO2JyZWFrIGF9aWYoKGI9KFE9R1sxXSgyLHBbMV0sMyxBKSxnWzQyXSgyMSwwLDEsUSkpLGcpWzhdKG5bMl0sIk9wZXJhIikpe1o9YihbIlZlcnNpb24iLAoiT3BlcmEiXSk7YnJlYWsgYX1pZihrWzE3XSgzLHopKXtaPWIoWyJFZGdlIl0pO2JyZWFrIGF9aWYoeVsyNF0oblsxXSxwWzJdKSl7Wj1iKFsiRWRnIl0pO2JyZWFrIGF9aWYoeVs0NV0oMTYsIlNpbGsiKSl7Wj1iKFsiU2lsayJdKTticmVhayBhfWlmKGtbMjNdKDcscFswXSkpe1o9YihbIkNocm9tZSIsIkNyaU9TIiwiSGVhZGxlc3NDaHJvbWUiXSk7YnJlYWsgYX1aPSh2PVFbSl0pJiZ2WzFdfHxLfWlmKCgoQj4+MiYxMyk9PTEmJih0aGlzLnY9Z1syNF0oMTUsMCxbXSkpLEItOD4+Myk9PTMpR1sxM10oOSxmdW5jdGlvbihXLE4seCxmLEwscil7aWYoV1tyPVsiTSIsIiIsIkYiXSxyWzBdXT09eilyZXR1cm4gVy5BKEMpLHY9YltyWzBdXS5YLnZhbHVlLHg9bmV3IFNULE49bVsyM10oMTksdix4LEosbCksUT1uZXcgdTAoTiksVy52KGIudltyWzBdXS5zZW5kKFEpLDQpO2lmKFdbclswXV0hPUMpe2lmKChBPVcuWCxwPWJbclswXV0uWC52YWx1ZSxBKS5zYygpPT1yWzFdfHx2IT1wKXJldHVybiBXLnJldHVybigpOwpyZXR1cm4gV1soKEw9KGY9YltyWzBdXSxBLnNjKCkpLGYuWCkudmFsdWU9TCxyKVsyXV0oSyl9Vy5pKCksVy5SKCl9KTtyZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoQi0oKEItKChCJigoQisoUT1bIm5nIiw2LDJdLFFbMl0pJjEyKTxRWzJdJiYoQnwzKT49LTM4JiYoQz1uZXcgYUMsSiYmKGtbUVsyXV0oMjcsWVsyM10oNTAsSyksQywkNCxSeChLLkIsSyx6KSksa1tRWzJdXSgzNSxZWzIzXSg1NSxLKSxDLEV2LFJ4KEsuQixLLCExKSkpLHA9QyksNzUpKT09QiYmKHA9Sih6KCksNDIpKSxRWzFdKXwyOSk8QiYmQi1RWzFdPDxRWzJdPj1CJiYoSi5yZXNwb25zZT17fSx2PWZ1bmN0aW9uKCl7cmV0dXJuIEouaEwoQyxiLEEpfSxKW1FbMF1dKEspLE9bNDNdKDQ4LEouUikud2lkdGghPUouaUMoKS53aWR0aHx8T1s0M10oMSxKLlIpLmhlaWdodCE9Si5pQygpLmhlaWdodD8oa1s4XSg0MCxKLHYpLGtbNDZdKDU4LHosSixKLmlDKCkpKTp2KCkpLDcpPj4zPT0KUVsyXSl7aWYoSiBpbnN0YW5jZW9mIGJtKWI9Si5oZWlnaHQsSj1KLndpZHRoO2Vsc2V7aWYoQz09dm9pZCAwKXRocm93IEVycm9yKCJtaXNzaW5nIGhlaWdodCBhcmd1bWVudCIpO2I9Q30oSy5zdHlsZS53aWR0aD1rWzMyXSg0LHosSiksSykuc3R5bGUuaGVpZ2h0PWtbMzJdKDUseixiKX1yZXR1cm4gcH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKEIrKFc9WzMyLDMsMTVdLDQpXjgpPj1CJiYoQi00XjQpPEImJihOPWtbNDZdKDEyLGZ1bmN0aW9uKHgsZixMLHIsVixQKXt4LnN1YnNjcmliZShuZXcgZmcoZixmdW5jdGlvbihxLGMsRSl7KHI9KEw9KFY9KChFPVtudWxsLDcsMTNdLGM9cik9PUt8fGMudW5zdWJzY3JpYmUoKSx6KSxxKSxuZXcgZmcoZixQLHZvaWQgMCx5WzMwXS5iaW5kKEVbMF0sNikpKSxIKVtFWzJdXShFWzFdLEVbMF0sQyhxKSkuc3Vic2NyaWJlKHIpfSx2b2lkIDAsKFA9KHI9SyxMPUssZnVuY3Rpb24ocSxjKXsoKHE9cik9PUt8fApxLnVuc3Vic2NyaWJlKCkscj1LLFYpJiYoYz1MLFY9SixMPUssZi5uZXh0KGMpKX0pLFY9SixmdW5jdGlvbigpeyhQKCksZikuY29tcGxldGUoKX0pLGZ1bmN0aW9uKCl7TD1yPUt9KSl9KSksKEIrNF4xNyk8QikmJihCLVdbMV18MTIpPj1CKXtpZigoWj0ocD0oKEE9KCgoYj0oKG49KFE9Uls4XSg1OCwodj1bMSwoQz10aGlzLDApLDNdLHRoaXMpKSxPWzQ4XSg2Myx0aGlzKSksSj1bXSxnWzE0XSg2NCx2WzBdLHRoaXMudiksUlsxN10oODcsdGhpcy52KSxnKVsxNF0oMzEsdlswXSx0aGlzLnYpLGspW1dbMl1dKDQxLHRoaXMudiksZylbMTRdKDYzLHZbMF0sdGhpcy52KSxSKVsxN10oV1syXSx0aGlzLnYpLHRoaXMudi52KSxnKVsxNF0oV1swXSx2WzBdLHRoaXMudiksa1tXWzJdXSgzNix0aGlzLnYpKSx0aGlzLnhKW3BdKSkmJloubGVuZ3RoIT09MClaLmZvckVhY2goZnVuY3Rpb24oeCxmKXsoKChmPVsiWCIsInhKIiwidiJdLENbZlsxXV0pW2JdPXgsQ1tmWzJdXVtmWzJdXT1BLENbZlswXV0pW25dLmNhbGwoQywKei0zKSxKKS5wdXNoKENbZlsxXV1bcF0pfSk7ZWxzZSBmb3IoSz12WzFdO0s8ei12WzJdO0srKylPWzQ4XSg2Myx0aGlzKTt0aGlzLnhKW1FdPUp9cmV0dXJuIEIrOD4+MjxCJiYoQi03XjcpPj1CJiYhbVsxM10oMzEsMSwhMSx0aGlzLnUoKSx6KSYmZ1tXWzFdXSg1Mix0aGlzLGhVKSYmdGhpcy5pc0VuYWJsZWQoKSYmZ1s0NF0oNDcsMix0aGlzKSYmWVsxNl0oNywyLHRoaXMsITApLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybigoKChCKygoKEImKHA9WzAsOCwiTSJdLDU0KSk9PUImJihKPVlbMjNdKDU0LHopLEM9ei51KCksSz8oZVszNl0ocFsxXSxlWzM2XShwWzFdLGVbMzZdKHBbMV0sSFs0MV0oMTksdm9pZCAwLEosQyx6LnVrLGQ5LkNiKSxDLFtkOS56USxkOS5MYl0sei5JKSxDLGs0LHoubFMpLEMsdFUsei5TKSx6LnlsIT1EWzNdLmJpbmQobnVsbCw0MSkmJkhbNDFdKDUwLHZvaWQgMCxKLEMsei55bCxVdikpOihZW3BbMF1dKDc5LFlbcFswXV0oNDcsCllbcFswXV0oNzEsWVtwWzBdXSg1NSxKLEMsZDkuQ2Isei51ayksQyxbZDkuelEsZDkuTGJdLHouSSksQyxrNCx6LmxTKSxDLHRVLHouUyksei55bCE9RFszXS5iaW5kKG51bGwsNjUpJiZZW3BbMF1dKDM5LEosQyxVdix6LnlsKSkpLEIrM14yNSk+PUImJihCKzleMTMpPEImJihRPUsrZVs0Nl0oMjQsMyxKLHopKSxwKVsxXT49MTgmJkI8PDE8MzYmJihLPXRoaXNbcFsyXV0sdGhpc1twWzJdXT1BcnJheS5pc0FycmF5KEspPyhLLnB1c2goeiksSyk6Sz9bSyx6XTp6KSxCKSY3NSk9PUImJihDPXoueC1LLngsSj1LLnktei55LFE9W0osQyxKKnoueCtDKnoueV0pLEIpXjU5KSYxOXx8KCh2PUdsW2JdKXx8dHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCJ8fCh2PShuZXcgamQoZG9jdW1lbnQpKS5nZXQoSikpLFE9dj9EWzZdKDEyLEsseixBLHYsQyk6bnVsbCksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoIShwPVsiQSIsMTUsInYiXSxCKzkmNikpe2lmKEM9PXomJgpKLk0mJiFKW3BbMF1dKWZvcih2PUE7diYmdltwWzBdXTt2PXYuWCl2W3BbMF1dPSExO2lmKEpbcFsyXV0pSltwWzJdXS5YPUssR1twWzFdXSg0OSwyLEMsYixKKTtlbHNlIHRyeXtKW3BbMF1dP0ouaS5jYWxsKEouWCk6R1twWzFdXSg0OCwyLEMsYixKKX1jYXRjaChuKXtNdi5jYWxsKEssbil9dzkucHV0KEopfXJldHVybiBCLTI8MTYmJihCXjIpPj4zPj0wJiYoZzBbNl0oMjIsZnVuY3Rpb24obil7ZVs0OV0oMywwLDEsbix6KX0sSUMpLFJbMV0oNywhMCxJQyl8fFlbNDVdKDU4KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoIShCKygoWj1bInNldFRpbWVvdXQiLDIyMSwyNF0sKEImODgpPT1CKSYmKFc9R1sxM10oWlsyXSxmdW5jdGlvbihOLHgpe2lmKCFIWyh4PVsiSiIsIk0iLDBdLHgpWzJdXSg1OCx6LGRrW3hbMF1dKCksYikpcmV0dXJuIE4ucmV0dXJuKG51bGwpO3JldHVybihBPW5ldyBVaChnWzQ5XSgxNixLLEopKSxOKS5yZXR1cm4oQy52W3hbMV1dLnNlbmQoQSkpfSkpLAo3KSY3KSlhOntpZihuPVsyNywxODcsMTg2XSxkciYmdil7Vz1tWzE5XSg1MixuWzFdLEMpO2JyZWFrIGF9aWYodiYmIUEpe1c9ITE7YnJlYWsgYX1pZighaFgmJih0eXBlb2YgYj09PSJudW1iZXIiJiYoYj15WzIwXSg1LDkxLGIpKSxRPWI9PTE3fHxiPT0xOHx8ZHImJmI9PTkxLCghcHx8ZHIpJiZRfHxkciYmYj09SyYmKEF8fEopKSl7Vz0hMTticmVhayBhfWlmKGtlJiZBJiZwKXN3aXRjaChDKXtjYXNlIDIyMDpjYXNlIHo6Y2FzZSBaWzFdOmNhc2UgMTkyOmNhc2UgblsyXTpjYXNlIDE4OTpjYXNlIG5bMV06Y2FzZSAxODg6Y2FzZSAxOTA6Y2FzZSAxOTE6Y2FzZSAxOTI6Y2FzZSAyMjI6Vz0hMTticmVhayBhfXN3aXRjaChDKXtjYXNlIDEzOlc9aFg/Snx8dj8hMTohKHAmJkEpOiEwO2JyZWFrIGE7Y2FzZSBuWzBdOlc9IWtlJiYhaFg7YnJlYWsgYX1XPWhYJiYoQXx8dnx8Sik/ITE6bVsxOV0oNDgsblsxXSxDKX1yZXR1cm4oKEI+PjEmMTUpPT0zJiYoSz16W3ZmXSxXPUsgaW5zdGFuY2VvZgpmdD9LOm51bGwpLChCPj4yJjcpPj01KSYmKChCXjY0KSYxMCk8MTAmJihDP2I9Qy5BOmI9Si5YZysrLEE9eVsxNV0oWlsyXSxKLmopLG1bOV0oMTksQSx5RSgpLEouUyksbVs5XSgxNSxBLHFoKCksYiksbVs5XSgyMSxBLFl5KCksSi5nKSxIWzMyXSg0LEEsSiksSi5sJiZKLk8mJk9bNF0oMTAsSyxKLk8sSi5sLEEpLHA9bmV3ICR5KGIsSixKLkEsSi5VKzEpLEoubD09PW51bGwmJihwLkg9Si5PKSxDJiYoSi5pPUMuVS5jb25jYXQoSi5pKSksdj1lWzIxXSg2LCJ0eXBlPSIseixKLndiLEoscCkscFtaWzBdXSh5YShKLkUzKi41KSt5YShKLkUzKi41KkFlKCkpKSxPWzM4XSgyMCxKLlgscCksSFszMF0oNTYsInR5cGUiLHAsQSx2KSksV30sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybigoKGI9WzEyLDksMTVdLEIpPDwyPj1iWzFdJiYoKEJeNDgpJjQpPDEmJih0aGlzLk09bmV3IFNldCx0aGlzLlg9bmV3IE1hcCksKEItNXw1Mik8QiYmKEIrMV5iWzJdKT49QikmJlQuY2FsbCh0aGlzLAp6KSxCKzM+PjEpPEImJihCLWJbMV18NDQpPj1CJiYoSj1LLmFULEM9WVsyOV0oYlswXSw2NCxKW0EkXXx6LEosbVszMF0uYmluZChudWxsLGJbMl0pKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybigoKChiPVszOSwxLDE0XSxCKXwyKT4+NHx8KEo9bmV3IFlpLEoudXBkYXRlKChIW2JbMF1dKDcyLEssZ1tiWzJdXSg3LGNoKSl8fHopK1RPKSxDPXlbMThdKGJbMV0sMTYsSi5kaWdlc3QoKSkpLEIpJjEyNCk9PUImJih0aGlzLmVycm9yQ29kZT16LHRoaXMudj1LPT09dm9pZCAwPyExOkspLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCl7aWYoKChkPVsxMiwicmVxIiwiS3oiXSxCKSYyNSk9PUIpbVszNl0oNDcsZnVuY3Rpb24oaCl7cmV0dXJuIGggaW5zdGFuY2VvZiBNYXB9LEZaKCkpO2lmKChCPDwxJigoKEJ8NzIpPT1CJiYodD1LJiZ6JiZLW2RbMl1dJiZ6W2RbMl1dP0suTmohPT16Lk5qPyExOgpLLnRvU3RyaW5nKCk9PT16LnRvU3RyaW5nKCk6SyBpbnN0YW5jZW9mIFYkJiZ6IGluc3RhbmNlb2YgViQ/Sy5OaiE9ei5Oaj8hMTpLLnRvU3RyaW5nKCk9PXoudG9TdHJpbmcoKTpLPT16KSwoQi0yfDI4KT49QiYmKEItNV4zMSk8QikmJih0PUdbMTNdKDMyLGZ1bmN0aW9uKGgpe3JldHVybiBoLnJldHVybigoSz1TdHJpbmcoei5YKyspLEspKX0pKSwxMSkpPj03JiYoKEJ8NSkmZFswXSk8ZFswXSl7dj0oZj1sOShDLmkubGVuZ3RoLChjPVswLCExLCI9Il0sSikpLEMpLlI/UngoQy5SLlJqLEMuUixDKTpudWxsO2E6e2Zvcih4PShhPUMuaSwtMSk7Oyl7Zm9yKFc9IShMPSh4PT0ocj1bImNvdW50PSIrZl0sLTEpP2Y+Y1swXT8oeD1hW2NbMF1dLnYsci5wdXNoKEsreCkpOng9Y1swXTpyLnB1c2goSyt4KSxjWzBdKSwwKTtMPGY7TCsrKWlmKHA9YVtMXS5tYXAsVj1hW0xdLnYsVi09eCxWPGNbMF0peD1oWShjWzBdLGFbTF0udi0xMDApLFc9Y1sxXTtlbHNlIHRyeXtTPWRbMV0rVisiXyJ8fAoiIjt0cnl7Zm9yKFo9cCBpbnN0YW5jZW9mIE1hcD9wOk9iamVjdC5lbnRyaWVzKHApLEU9Z1tkWzBdXSg3LFopLHU9RS5uZXh0KCk7IXUuZG9uZTt1PUUubmV4dCgpKVg9Z1tkWzBdXSg2LHUudmFsdWUpLFE9WC5uZXh0KCkudmFsdWUscT1OPVgubmV4dCgpLnZhbHVlLEhbNDRdKDEsTikmJihxPShuZXcgQlIpLnllKE4pKSxyLnB1c2goUytRK2NbMl0rZW5jb2RlVVJJQ29tcG9uZW50KHEpKX1jYXRjaChoKXt0aHJvdyByLnB1c2goUyt6K2VuY29kZVVSSUNvbXBvbmVudChzRSgpKSksaDt9fWNhdGNoKGgpe3YmJnYocCl9aWYoVyl7QT1yLmpvaW4oekwoKSk7YnJlYWsgYX19QT12b2lkIDB9Yi5VPShuPUMuaS5zcGxpY2UoY1swXSwoUD1BLGYpKSxuKSx0PVB9cmV0dXJuIHR9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKCgoQz1bMywyLDRdLEItQ1syXSl8Q1swXSk8QiYmKEIrQ1sxXSY0NSk+PUImJihiPUoudj9KLk89PXomJkouZyE9SyYmSi5pLk15OiExKSxCKStDWzJdJjcpPj0KQ1swXSYmQj4+MTwxNiYmKHRoaXMudj1bXSx0aGlzLk09W10pLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZihCLSh2PVswLDMsNl0sdilbMl0+PnZbMV09PTIpZm9yKHo9dlswXTt6PHRoaXMubGVuZ3RoO3orKyl0aGlzW3pdPXZbMF07cmV0dXJuKCgoKEIrMSYyNyk9PSgoQiY5MCk9PUImJihLPW5ldyB6QyxwPVtHWzQ5XSg4LHosS0YsZGsuSigpKT9uZXcgSms6bmV3IENGLG5ldyBiMSxuZXcgQWssbmV3IHZSLG5ldyBUQyxuZXcganMsbmV3IHBGLG5ldyBRaixuZXcgbkYsbmV3IFpCLG5ldyBXUixLLG5ldyBnQixuZXcgTkYsbmV3IE9FLG5ldyB4bixuZXcgREIsbmV3IGZGKEspLG5ldyBvOCxuZXcgTEYsbmV3IFI4LG5ldyByQixuZXcgVmosbmV3IEdDLG5ldyBIUl0pLDIpJiYoZXMuY2FsbCh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIHp9KSx0aGlzLlg9eiksQi00KV4yMCk+PUImJkItdlsyXTw8MTxCJiYoQT1uZXcgRGF0ZShiLEosQyksYj49SyYmYjx6JiZBLnNldEZ1bGxZZWFyKEEuZ2V0RnVsbFllYXIoKS0KMTkwMCkscD1BKSwoQnw0OCk9PUIpJiZ0aGlzLnYmJih0aGlzLlImJnoudmFsdWU/dGhpcy5yZXNwb25zZS5wdXNoKHoudmFsdWUpOiF0aGlzLlImJihLPXoudmFsdWU/ei52YWx1ZTpuZXcgVWludDhBcnJheSgwKSxKPXRoaXMuVy5kZWNvZGUoSyx7c3RyZWFtOiF6LmRvbmV9KSkmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0Kz1KKSx6LmRvbmU/R1s0OF0oMTMsNCx0aGlzKTpEWzE4XSgzMix0aGlzKSx0aGlzLnJlYWR5U3RhdGU9PXZbMV0mJkRbNV0oOSx0aGlzKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoKEItKCgoKFc9WzEsMTcsNF0sQik8PFdbMF0mMTMpPDMmJihCfFdbMF0pPj0tODMmJlQuY2FsbCh0aGlzLHopLEJ8NTYpPT1CJiYoei5zWD12b2lkIDAsei5KPWZ1bmN0aW9uKCl7cmV0dXJuIHouc1g/ei5zWDp6LnNYPW5ldyB6fSksV1syXSleV1sxXSk+PUImJihCK1dbMF1eMjgpPEImJihOPXR5cGVvZiB6PT09ImZ1bmN0aW9uIiksCkImNDcpPT1CJiYoTj1sOShoWShLLHopLEopKSwhKChCXjIyKT4+V1syXSkpYTp7Zm9yKEE9KGI9UFIscD1KLnNwbGl0KHopLDApO0E8cC5sZW5ndGgtV1swXTtBKyspe2lmKCEobj1wW0FdLG4gaW4gYikpe049dm9pZCAwO2JyZWFrIGF9Yj1iW25dfShRPShaPWJbdj1wW3AubGVuZ3RoLVdbMF1dLHZdLEMpKFopLFEhPVopJiZRIT1LJiYkbihiLHYse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpRfSl9cmV0dXJuIE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKEI+PjImKFc9WzUsNywxNV0sV1sxXSkpPT0yKXtwPWZ1bmN0aW9uKHgpe258fChuPUssdi5jYWxsKEMseCkpfSxRPWZ1bmN0aW9uKHgpe258fChuPUssQS5jYWxsKEMseCkpfSxuPXo7dHJ5e0ouY2FsbChiLHAsUSl9Y2F0Y2goeCl7USh4KX19aWYoKEItKEItOD4+Mz09MSYmKE49R1sxM10oMTcsZnVuY3Rpb24oeCxmLEwpe0w9WyhmPVsxLCJuIiwwXSwiUiIpLDEsMTldO3N3aXRjaCh4Lk0pe2Nhc2UgZlswXTppZighKEogaW5zdGFuY2VvZgooeC5BKDIpLHFGKSkpcmV0dXJuIGdbM10oNTEsQyxmW0xbMV1dKSx4LnJldHVybigpO2lmKG49RFszNV0oNDgsSyxudWxsLFJbNDhdKDY5LEosaTEsMTEsbCkuQ3UoKSksbj09PW51bGwpcmV0dXJuIGdbM10oNTgsQyxmW0xbMV1dKSx4LnJldHVybigpO3JldHVybigoQT0oUT0oQy5DPSh2PUMua1cpPT1udWxsP3ZvaWQgMDplWzQwXShMWzFdLHYpLGZ1bmN0aW9uKHIsVil7Qy5DJiZDLkMudGhlbihmdW5jdGlvbihQKXtQKHtkZXRhaWw6W3IsVl19KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9KSxmdW5jdGlvbihyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3KXt3PShVPVsxLDExLDEwXSxbOCw1NywxMl0pO2E6e2g9KFA9KHE9KEU9KFM9KHU9bmV3IHlqLHIpLmdldFZhbHVlKCksaylbNl0od1sxXSwyLHUsUyksWVszNF0oNyx6LHIpKSxtKVsyM10oMjYscSxFLHopLE09eVszM10oNDYsSyxyKSxrWzZdKDI0LEssUCxNKSk7c3dpdGNoKG1bMV0oMjQscixVWzBdKSl7Y2FzZSBVWzBdOm1bMjhdKDIsClVbMF0saCk7YnJlYWs7Y2FzZSAyOm1bMjhdKDMsMixoKTticmVhaztjYXNlIDU6bVsyOF0oMTksNixoKTticmVhaztjYXNlIDY6bVsyOF0oMiw3LGgpO2JyZWFrO2Nhc2UgNzptWzI4XSgyMyw1LGgpO2JyZWFrO2Nhc2UgejptWzI4XSgzLHosaCk7YnJlYWs7Y2FzZSBLOm1bMjhdKDE4LEssaCk7YnJlYWs7Y2FzZSB3WzBdOm1bMjhdKDcsd1swXSxoKTticmVhaztjYXNlIDk6bVsyOF0oMTksOSxoKTticmVhaztjYXNlIFVbMl06bVsyOF0oNyxVWzJdLGgpO2JyZWFrO2Nhc2UgVVsxXTptWzI4XSgyMixVWzFdLGgpO2JyZWFrO2Nhc2Ugd1syXTptWzI4XSgyLHdbMl0saCk7YnJlYWs7Y2FzZSAxODptWzI4XSg2LDEzLGgpO2JyZWFrO2Nhc2UgMTM6bVsyOF0oNiwxNCxoKTticmVhaztjYXNlIDE0Om1bMjhdKDIzLDE1LGgpO2JyZWFrO2Nhc2UgMTU6bVsyOF0oMywxNixoKTticmVhaztjYXNlIDE2Om1bMjhdKDIyLDE3LGgpO2JyZWFrO2Nhc2UgMTc6bVsyOF0oMTgsMTgsaCk7YnJlYWs7ZGVmYXVsdDpQcm9taXNlLnJlc29sdmUoKTsKYnJlYWsgYX0oZD0oVj0oWD0oYz1uZXcgdHgsdD1SWzI1XSg1MSxudWxsLDUsQy5ILGNULGMsbCksbmV3IGVCKSxIWzQ0XSg4NCxYLHlqLDYsaCkpLEhbNDRdKDg2LHQsZUIsSyxWLGwpKSxhPW5ldyBtdihkKSxDLkQpLnNlbmQoYSwhMCwhMSl9fSkseCkuQShLKSx4KS52KERbNDJdKDcsIiIsZlswXSxmWzJdLCIuIixDLnYsWVsyMV0oMTgsZlswXSxSWzQ4XSg3MCxKLGkxLDExLGwpKSxuLEEsUSksNik7Y2FzZSA2OigoWj0ocD14LlgsQy5YPXAsYj1HW0xbMl1dKDY1LDI5KSkhPW51bGw/YjowLFo+ZlsyXSk/c2V0VGltZW91dChmdW5jdGlvbigpe2dbM10oNjIsQywiciIpfSxaKTpnWzNdKDYxLEMsInIiKSx4KS5GKDUsMik7YnJlYWs7Y2FzZSBLOnguaSgyKSxnWzNdKDU5LEMsZltMWzFdXSk7Y2FzZSA1OnguRihmWzJdKTticmVhaztjYXNlIDI6eC5pKCksZ1szXSg2MyxDLGZbTFsxXV0pLHhbTFswXV0oKX19KSksV1swXSl8V1syXSk+PUImJihCK1dbMF1eMzApPEIpR1sxM10oMzMsCmZ1bmN0aW9uKHgpe0ouQT0oQz1ZWzQ2XSg4OCxLLG5ldyBZbixKKSxKLkEudGhlbihDLEMpLnRoZW4oZnVuY3Rpb24oZixMLHIsVixQKXtyPShQPShWPUoudi5NLEw9Vi5zZW5kLG5ldyBjUiksSFs0NF0oODQsUCx6bCx6LGYsbCkpLEwuY2FsbChWLG5ldyBTcyhyKSl9KSkseC5SKCl9KTtyZXR1cm4gTn0sZnVuY3Rpb24oQix6LEssSixDKXtpZigoKEJeKChKPVs1LDE4LDEzXSxCJjExNyk9PUImJihLPT16fHxUMihLKSxDPUs9PXo/bnVsbDpEW0pbMV1dKEpbMl0sSykpLDQ1KSk+PjR8fFQuY2FsbCh0aGlzLHopLCgoQnwxKSYxNCk+PTkpJiZCKzk+PjQ8Mil7aWYodHlwZW9mIEshPT0iYm9vbGVhbiIpdGhyb3cgRXJyb3IoIkV4cGVjdGVkIGJvb2xlYW4gYnV0IGdvdCAiK0hbNDZdKEpbMF0sIm9iamVjdCIsSykreitLKTtDPUt9cmV0dXJuIEN9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKCgoKCgoQi0oKChCXihKPVsxMywidW5zdWJzY3JpYmUiLDg2XSxKKVsyXSkmMTUpPT0zJiYKKEM9R1tKWzBdXSg4LGZ1bmN0aW9uKGIpe3JldHVybih6PWVbMzFdKDIzKSxiKS5yZXR1cm4oe2RROm1jK3osd1Q6RFs0XSgyMywwLHopfSl9KSksNil8NTgpPEImJkItNTw8Mj49QiYmVC5jYWxsKHRoaXMseiksQik8PDEmMTEpPT0yJiZULmNhbGwodGhpcyx6KSwoQiYyNyk9PUIpJiYoSz1kay5KKCkuZ2V0KCksQz1ZWzE5XSg0LHosSykpLEIpKzkmMTEpPT0xJiYoQz16IGluc3RhbmNlb2Ygb2l8fHomJiJjbG9zZWQiaW4geiYmZVsyNF0oNTEsei5yZW1vdmUpJiZlWzI0XSg3OSx6LmFkZCkmJmVbMjRdKDUwLHpbSlsxXV0pKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoQisoKEE9WzIsMTI3LDVdLEItQVsyXTw8QVswXT49QiYmKEIrM14yOSk8QikmJih6LnJhdz1LLE9iamVjdC5mcmVlemUmJihUSih6KSxUSihLKSksYj16KSxBWzJdKSY0MSk8QiYmKEItMV4xNyk+PUIpe2JOKChDPVsxMjgsNywwXSx6KSk7Zm9yKGJOKEspO0s+Q1tBWzBdXXx8ej5BWzFdOylKLnYucHVzaCh6JgpBWzFdfENbMF0pLHo9KHo+Pj5DWzFdfEs8PDI1KT4+PkNbQVswXV0sSz4+Pj1DWzFdO0oudi5wdXNoKHopfXJldHVybiBCPj5BWzBdJkFbMF18fChiPSh6LnN0YWNrfHwiIikuc3BsaXQobDEpWzBdKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKEIrNl4oWj1bMzYsMTUsIm4iXSxaWzFdKSk+PUImJihCLTd8OTQpPEImJihDPW5ldyBFRShLKSxnWzNdKDQ4LHosQykpKXtKPW5ldyBYNChLKTt0cnl7Z1szXSg1Mix6LEopfWZpbmFsbHl7Sy52KCl9fXJldHVybihCLSgoKCgoKEJ8NCk+PjQ8MSYmKEJ8Myk+PjQ+PTAmJihuPW5ldyBXb3JrZXIoWVszMV0oMzQseiksdm9pZCAwKSksQikrOSZaWzFdKT09MyYmKG49RGF0ZS5ub3coKSksQikmNTcpPT1CJiZ0aGlzLnYuVTMoKT09ei5yZXNwb25zZSYmKHRoaXMudi5YPUtRKSw0KSZaWzFdKT09MSYmKFE9WyJoIiwzMywicCJdLGVbWlswXV0oMTEsYixiLk0sSixmdW5jdGlvbigpe3JldHVybiBEWzQzXSg3MCxiLCEwKX0pLAplW1pbMF1dKDcsYixiLk0sUVswXSxmdW5jdGlvbihXKXtiLnYudltXPVszNSw1MiwidnoiXSxXWzJdXShnW1dbMF1dKFdbMV0sYi5NKSl9KSxlW1pbMF1dKDcsYixiLk0sImkiLGZ1bmN0aW9uKCl7cmV0dXJuIGIuZUkoKX0pLGVbWlswXV0oNyxiLGIuTSwiayIsZnVuY3Rpb24oKXtyZXR1cm4ga1s0NV0oNTAsMixiLHVkKX0pLGVbWlswXV0oMTAsYixiLk0sQyxmdW5jdGlvbihXKXtiWyhXPVshMSw4NSwidiJdLEQpWzQzXShXWzFdLGIsV1swXSksV1syXV1bV1syXV0ub0QoKX0pLHA9ZGsuSigpLmdldCgpLFlbMTldKDY5LFFbMV0scCl8fGVbWlswXV0oMTAsYixiLk0sWlsyXSxmdW5jdGlvbigpe3JldHVybiBrWzQ1XSgyLDIsYixhbyl9KSxZWzE5XSg1LDMyLHApfHxlW1pbMF1dKDUsYixiLk0sIm0iLGZ1bmN0aW9uKCl7cmV0dXJuIGtbNDVdKDY2LDIsYixoMCl9KSwoQT1HWzFdKDksMjQscCkpIT1udWxsJiZBJiZlW1pbMF1dKDksYixiLk0sIm8iLGZ1bmN0aW9uKCl7cmV0dXJuIGtbNDVdKDMsCjIsYix1MSl9KSwodj1ZWzE5XSg1LDMwLHApKSE9bnVsbCYmdiYmZVtaWzBdXSgxLGIsYi5NLFFbMl0sZnVuY3Rpb24oKXtyZXR1cm4ga1s0NV0oNTEsMixiLGE4KX0pLGVbWlswXV0oNSxiLGIuTSwiaiIsZnVuY3Rpb24oVyl7cmV0dXJuIGtbNDBdKChXPVsidiIsMjMsMzNdLFdbMV0pLG5ldyB1UShiW1dbMF1dLlUzKCksSFtXWzJdXSg2MSxiLk1bV1swXV0pKSxiLGZ1bmN0aW9uKE4seCxmKXtpZihnW2Y9WzMsIkEiLDE2XSxmWzJdXSg4OSxsLE4sZlswXSkhPW51bGwpYltmWzFdXSgpO2Vsc2UoeD1SWzI2XSgxNCxOLDEsbCkpJiZrWzQ3XSg0MyxiLHgpLG1bMzVdKGZbMl0sMCw0LGIuTS52LE4pfSl9KSxIWzQxXSgzNSx2b2lkIDAsYixiLk0sYi5yNyx6KSxIWzQxXSg1MCx2b2lkIDAsYixiLk0sYi5WdCwidCIpLEhbNDFdKDE4LHZvaWQgMCxiLGIuTSxiLmcsSykpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEE9WzksMTAsITFdLEIrQVswXV5BWzFdKT49QiYmQisxPj4KMjxCKWE6e2lmKEomKGI9WzQwOTYsMiwhMF0sYlsxXSkpe3Y9YlsyXTticmVhayBhfWlmKEomeiYmIShKJmJbMF0pKXt2PShDLnY9KGtbMzhdKDk1LEssSnxiWzFdKSxjTCksYilbMl07YnJlYWsgYX12PUFbMl19cmV0dXJuKEImMTExKT09QiYmKHRoaXMuYmxvY2tTaXplPS0xKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCgodj1bInByb3RvdHlwZSIsInB1c2giLDEyXSwoQiYxMDYpPT1CKSYmKEM9Sy5hVCxKPUNbQSRdfDAsQT1lWzMwXSgxNiwzMixDLEosSyk/Z1s0NF0oMyxDLEsseik6bmV3IEsuY29uc3RydWN0b3IoT1sxOF0oMzYsMzQsSixDLCExKSkpLEImMjMpPT1CKXtmb3IoQz0oej0oSj0wLEs9W10seik9PT12b2lkIDA/ODp6LEM9PT12b2lkIDApPzA6QztKPHo7SisrKUtbdlsxXV0odzUoKSUoaGsrMSleR1s4XSg0OSxoaykpO0E9T1syM10oNTgsR1szMl0oMTEsMzYsMCxLKSxDKX1pZigoKEJ8Nik+PjR8fChBPUsuTT9tWzJdKDk0LHosSy5NfHxLLmwudik6Cm51bGwpLEJ8NDApPT1CKWlmKHouY2xhc3NMaXN0KUFycmF5W3ZbMF1dLmZvckVhY2guY2FsbChLLGZ1bmN0aW9uKHApe1JbOF0oMSxwLHopfSk7ZWxzZXtmb3IoSiBpbiBDPSgoQXJyYXlbdlswXV0uZm9yRWFjaC5jYWxsKGVbMV0odlsyXSwoYj17fSx6KSksZnVuY3Rpb24ocCl7YltwXT0hMH0pLEFycmF5KVt2WzBdXS5mb3JFYWNoLmNhbGwoSyxmdW5jdGlvbihwKXtiW3BdPSEwfSksIiIpLGIpQys9Qy5sZW5ndGg+MD8iICIrSjpKO0dbMzhdKDE2LCJzdHJpbmciLEMseil9cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKEItNT49KChCPj4yJihBPVsyMCwiUmVDQVBUQ0hBIGNvdWxkbid0IGZpbmQgdXNlci1wcm92aWRlZCBmdW5jdGlvbjogIiw0Nl0sNikpPT0yJiYoQz1IWzE0XSg1NyxLKSxDIT1udWxsJiZDIT1udWxsJiYoRFsyMl0oNjksMCx6LEopLEhbMzBdKDQsNyxDLHoudikpKSwyMykmJigoQnwyKSYxNik8MTEpYTp7aWYoQz0oSj1KPT09dm9pZCAwPyExOgpKLHopLmdldChLKSl7aWYodHlwZW9mIEM9PT0iZnVuY3Rpb24iKXtiPUM7YnJlYWsgYX1pZih0eXBlb2Ygd2luZG93W0NdPT09ImZ1bmN0aW9uIil7Yj13aW5kb3dbQ107YnJlYWsgYX1KJiZjb25zb2xlLmxvZyhBWzFdK0MpfWI9ZnVuY3Rpb24oKXt9fXJldHVybigoQiYyNik9PUImJihiPXoudGltZVJlbWFpbmluZygpKSxCPj4yPj04KSYmKEJeNDkpPEFbMF0mJihKPUo9PT12b2lkIDA/Skw6SixiPShDPUhbNF0oOTMsSyx6LHZvaWQgMCx2b2lkIDAsa1tBWzJdXS5iaW5kKG51bGwsQVswXSkpKSE9bnVsbD9DOkopLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoIShCLTMmKCh2PVs2LDQ5LDU5XSwoQl4zOSkmdlswXSl8fChBPUhbdlsxXV0odlsyXSx6LEosSyx2b2lkIDAsbCkpLHZbMF0pKSl7aWYoeiBpbnN0YW5jZW9mIEFycmF5KUo9ejtlbHNle2ZvcihiPShLPWdbMTJdKDkseiksW10pOyEoQz1LLm5leHQoKSkuZG9uZTspYi5wdXNoKEMudmFsdWUpO0o9Yn1BPUp9cmV0dXJuIEF9LApmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKChCJjEwNyk9PSgoKChuPVszLDM0LDEwXSxCfDg4KT09QiYmKFo9U3RyaW5nKHopLnJlcGxhY2UoZEIsWVs0N10uYmluZChudWxsLDI4KSkpLEIrOCleMjEpPEImJihCKzJeMTkpPj1CJiYodj1uZXcga24sYj1rWzZdKDI1LDEsdixKLnYpLEoudj5LJiZtWzM4XSgxNix6LDIsYixKLlgvSi52KSxDPksmJm1bMzhdKDI4LHosblswXSxiLEouWC9DKSxKLk0+SyYmKEE9ZDAoSi5NKSxrWzZdKDI2LDQsYixBKSksWj1iKSxCKSYmKHouQj1EYXRlLm5vdygpK3oudHUsZVs4XShuWzJdLG51bGwsei50dSx6KSksQnw0KT49MjMmJkIrNzxuWzFdKWE6e2lmKCEocD1bMCwiJiIsMV0sSikpe1o9SzticmVhayBhfVo9KChBPShiPSh2PSgoQz1LLmluZGV4T2YodGsoKSksQzxwWzBdKSYmKEM9Sy5sZW5ndGgpLEsuaW5kZXhPZihLMSgpKSksdjxwWzBdfHx2PkM/KHY9QyxRPXopOlE9Sy5zdWJzdHJpbmcoditwWzJdLEMpLFtLLnNsaWNlKHBbMF0sCnYpLFEsSy5zbGljZShDKV0pLGIpW3BbMl1dLGIpW3BbMl1dPUo/QT9BK3BbMV0rSjpKOkEsYltwWzBdXSsoYltwWzJdXT8iPyIrYltwWzJdXToiIikrYlsyXSl9cmV0dXJuKEImMTEzKT09QiYmKFo9ZVsyOF0oMjcseix6KSksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKEIrOV4oKEImKChCXjg3KSYocD1bMjgsMSwyXSwyNyl8fCh2PUt8fEosUT0oQT1iJiZiIT0iKiI/U3RyaW5nKGIpLnRvVXBwZXJDYXNlKCk6IiIpfHxDP3YucXVlcnlTZWxlY3RvckFsbChBKyhDP3orQzoiIikpOnYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVUUoKSkpLDEzKSk9PUImJihRPUdbNDJdKDQ2LG51bGwsITAseikpLDYpKT49QiYmKEItM3wyNyk8QilhOnRyeXtRPUZPKFJbNDZdKDQscFsxXSx6KXx8e30pO2JyZWFrIGF9Y2F0Y2gobil7UT1bXTticmVhayBhfXJldHVybigoKEJ8NTYpPT1CJiYoUT1mdW5jdGlvbihuKXtyZXR1cm4gZVs4XSgyMyx6LG4sSyl9KSxCKXw4OCk9PUImJihKPQp6LHR5cGVvZiBLPT09InN0cmluZyI/Sj1PW3BbMl1dKHBbMF0sSyxkb2N1bWVudCk6SFs0NF0oOSxLKSYmSy5ub2RlVHlwZT09cFsxXSYmKEo9SyksUT1KKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKCgoKHA9WzExLCJGIiw3XSxCKSszPj40PDEmJkI8PDE+PS02MCYmKHY9SFs0MV0oMzUsYix6LEssQyxKKSksQikmODYpPT1CJiYoSj1bXSxZWzE5XSg2LHosZkMpLmZvckVhY2goZnVuY3Rpb24oUSl7ZkNbUV0uQmQmJiF0aGlzLmhhcyhmQ1tRXSkmJkoucHVzaChmQ1tRXS5nZXROYW1lKCkpfSxLKSx2PUopLEItcFsyXT49MTYmJihCXjM1KTwyNSYmKEE9Sj9LW3BbMV1dLmxlZnQtMTA6S1twWzFdXS5sZWZ0K0tbcFsxXV0ud2lkdGgrMTAsYj1SWzM4XShwWzJdLDksbnVsbCxLLkQoKSksQz1LW3BbMV1dLnRvcCtLW3BbMV1dLmhlaWdodCp6LEEgaW5zdGFuY2VvZiBaNj8oYi54Kz1BLngsYi55Kz1BLnkpOihiLngrPU51bWJlcihBKSx0eXBlb2YgQz09PSJudW1iZXIiJiYKKGIueSs9QykpLHY9YiksQis0JnBbMF0pPj0zJiYoKEJeNDkpJjE2KTwyJiZULmNhbGwodGhpcyx6KSx2fSxmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gQi0oKEItKChCXjE4KT4+KEs9WzgsMjQsInYiXSwzKT09MiYmKHRoaXNbS1syXV09eiksNileS1swXSk+PUImJkIrMj4+MTxCJiZULmNhbGwodGhpcyx6KSw3KTw8MT49QiYmKEItN15LWzFdKTxCJiZULmNhbGwodGhpcyx6KSxKfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBCKzYmKChCXihKPVs4MiwzOCwxRTNdLEpbMV0pKT4+NHx8KEM9SFszMF0oOSwnIj4nLCI8L2Rpdj4iLHoubGFiZWwpKSwzKXx8KEs9Sz09PXZvaWQgMD9EYXRlOkssdGhpcy52PXo9ej09PXZvaWQgMD9PWzI2XShKWzBdLEsubm93KCkqSlsyXSk6eix0aGlzLk09SyksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKCgoYj1bNDAsImNoYXJBdCIsN10sKEI8PDImMjMpPT00KSYmKEM9Uls5XSgxMSxLLHosMTYsMyksQy51cGRhdGUoSiksQT1DLlozKGJbMV0sCiIiLDApLnRvTG93ZXJDYXNlKCkpLEI8PDIpJjE1KT49MTImJihCPDwxJjE2KTwxNilhOntpZigoSj1bNjQsITEsMF0seik9PW51bGwpe0E9ejticmVhayBhfWlmKEs9dHlwZW9mIHosSz09PSJiaWdpbnQiKXtBPVN0cmluZyhENChKWzBdLHopKTticmVhayBhfWlmKCFnZCl7QT16O2JyZWFrIGF9aWYoWVszN10oMTMseixKWzFdKSl7aWYoSz09PSJzdHJpbmciKXtBPVJbNDJdKDEyLEpbMl0seixKWzFdKTticmVhayBhfWlmKEs9PT0ibnVtYmVyIil7QT1ZWzQ2XSg1LEpbMl0seixKWzFdKTticmVhayBhfX19aWYoKEIrNSYxNSk9PSgoQisxJjYyKT49QiYmQi1iWzJdPDwxPEImJihMRC5jYWxsKHRoaXMsOTU5LDEzLFsyXSksdGhpcy5QPXRoaXMuVT10aGlzLlc9dGhpcy5NPXRoaXMuaT10aGlzLm09dGhpcy5qPXRoaXMuQT10aGlzLlg9dGhpcy5IPXRoaXMuSz10aGlzLkM9dGhpcy5vPS0xLHRoaXMuRD1nW2JbMl1dKGJbMl0pLHRoaXMuZz1nW2JbMl1dKGJbMl0pKSwzKSl7Zm9yKDshZ1tiWzBdXSgyMSwKdGhpcy52KSYmdGhpcy5sPHRoaXMuTDspdGhpcy5sKz0xLHo9ZVs0NF0oMzMsdGhpcy52KSxLPWtbMTVdKDMyLHRoaXMudiksdGhpcy5YW0tdKHopO2dbYlswXV0oYlsyXSx0aGlzLnYpfHwodGhpcy5PPXRoaXMudi52KX1yZXR1cm4oQiY1MSk9PUImJihBPW5ldyB6aChmdW5jdGlvbih2KXtLLnRoZW4oZnVuY3Rpb24ocCl7di5jbG9zZWR8fCh2Lm5leHQocCksdi5jb21wbGV0ZSgpKX0sZnVuY3Rpb24ocCl7cmV0dXJuIHYuZXJyb3IocCl9KS50aGVuKHosa1syMl0uYmluZChudWxsLDUyKSl9KSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKHA9WzIsImNhbGwiLCJpbm5lckhlaWdodCJdLEI8PDEmcFswXSk9PXBbMF0pYTp7aWYoKEM9TUYseikudltDXSl7UT16LnZbQ107YnJlYWsgYX1pZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5W3BbSz16Lk0sMV1dKEssQykmJihBPWVlKEssQykpJiYidmFsdWUiaW4gQSl7UT0oYj0odj1BW3dCKCldLGRlbGV0ZSBLW0NdLApQcm9taXNlLnJlc29sdmUodikpLHopLnZbQ109YjticmVhayBhfUo9bmV3IFByb21pc2UoZnVuY3Rpb24obil7eFYoSyxDLHtjb25maWd1cmFibGU6ITAsc2V0OmZ1bmN0aW9uKFope2RlbGV0ZSAobihaKSxLKVtDXX19KX0pLFE9ei52W0NdPUp9aWYoKEItcFswXXwxNSk+PUImJihCLTVeMTApPEIpYTp7aWYoSy5sKXtRPVJbMzZdKDQwLEsubCk7YnJlYWsgYX1RPW5ldyBibSgoKEo9RFtDPVJbMTZdKDksd2luZG93KS53aWR0aCwxMV0oOCkuaW5uZXJXaWR0aCkmJko8QyYmKEM9SiksQyksaFkoUlsxNl0oMTEsd2luZG93KS5oZWlnaHQsRFsxMV0oOClbcFsyXV18fHopKX1yZXR1cm4oQi03XjEyKT49QiYmQis2Pj5wWzBdPEImJihKPUp8fHosUT1mdW5jdGlvbigpe3JldHVybiBLLmFwcGx5KHRoaXMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLHosSikpfSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEItKCgoKCgoQT1bMiwiTSIsbnVsbF0sQi0KNileMjUpPEImJihCKzYmMjkpPj1CJiYodGhpcy52PUFbMl0sdGhpc1tBWzFdXT1BWzJdKSwoQi01fDI3KTxCKSYmQi02PDwxPj1CJiYoQz1LLmRlZmF1bHRWaWV3LEo9Sy5zY3JvbGxpbmdFbGVtZW50P0suc2Nyb2xsaW5nRWxlbWVudDprZXx8Sy5jb21wYXRNb2RlIT0iQ1NTMUNvbXBhdCI/Sy5ib2R5fHxLLmRvY3VtZW50RWxlbWVudDpLLmRvY3VtZW50RWxlbWVudCxiPW5ldyBaNigoQz09ej92b2lkIDA6Qy5wYWdlWU9mZnNldCl8fEouc2Nyb2xsVG9wLChDPT16P3ZvaWQgMDpDLnBhZ2VYT2Zmc2V0KXx8Si5zY3JvbGxMZWZ0KSksQiszKSYzOSk8QiYmKEIrMV4xMSk+PUImJihiPUdbMTNdKDI1LGZ1bmN0aW9uKHYscCl7aWYoKHA9WzIsIlgiLG51bGxdLHYuTSk9PXopcmV0dXJuIHYudihIWzZdKDQsImVuIixwWzJdLDEscFswXSxLKSxwWzBdKTsoSy5OeC5zZW5kKFdsLChKPXZbcFsxXV0sSikpLHYpLlIoKX0pKSw5KTw8QVswXT49QiYmKEIrM14yMSk8QiYmKHBRLmNhbGwodGhpcyksCnRoaXNbQVsxXV09eiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKEItOF4xMCk+PShXPVsxNCwiYkMiLCJsNyJdLChCPj4xJjYpPT0yJiZlWzM1XSgyOSwwKS5mb3JFYWNoKGZ1bmN0aW9uKE4seCxmLEwscil7Zm9yKHI9KHg9KGY9WzUwLDc4LDEwXSxmWzBdKSxmWzFdKTs7KXRyeXtpZih4PT1mWzJdKWJyZWFrO2Vsc2UgeD09MzA/KHI9ZlsxXSx4PWZbMl0pOng9PWZbMF0/eD1OLnN0YXJ0c1dpdGgoZ1sxNF0oNixzcCkpPzg1OmZbMl06eD09ODUmJihyPTQ4LERhdGUubm93KCk+cGFyc2VJbnQoTi5zcGxpdChJOCgpKVsxXSxmWzJdKSsxRTQmJkdbMzBdKDcsMCxOKSx4PWZbMl0pfWNhdGNoKFYpe2lmKHI9PWZbMV0pdGhyb3cgVjtyPT00OCYmKEw9Vix4PTMwKX19KSxCKSYmKEItOF4yNSk8QilhOntpZigoQT1bIm5vbmUiLDI1MCwhMV0sSik9PShLLnY9PXopKXtaPW1bMl0oNik7YnJlYWsgYX1pZihKKXtaPSgoKG49KCgocD1LLnYsdj1LW1dbMl1dKCksClE9ZVtXWzBdXSgxNiwhMCxLKSxLLklUKCkpP1EuYWRkKEdbMTddKDU2LCEwLEssQVsyXSkpOlEuYWRkKGVbOV0oMTcsQVsyXSxBWzJdLHYsSyxwKSksSClbMjNdKFdbMF0sQVsyXSwiMSIsImJsb2NrIixLKSxDJiZDLnJlc29sdmUoKSxSWzddKDM2KSksaylbMl0oMTUsWVsyM10oNTMsSyksUSxFdixSeChmdW5jdGlvbigpe24ucmVzb2x2ZSgpfSxLKSksS1tXWzFdXSh6KSxRKS5wbGF5KCksbi5wcm9taXNlKTticmVhayBhfVo9KEtbRFsyNl0oNjYsITAsQVsxXSwiMCIsQVswXSxLLGIpLFdbMV1dKDEpLG0pWzJdKDQpfXJldHVybihCJjExNyk9PUImJihaPXc1KCkpLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4KXtpZihCKyh6OD1bNCwxLDQ0XSx6OClbMF0+PTE2JiYoQnwzKTwzMCl7Zm9yKEs9KHo9dGhpcy5sZW5ndGgsdGhpc1t6LXo4WzFdXSk7Sz09PTA7KXotLSwKSz10aGlzW3otejhbMV1dLHRoaXMucG9wKCk7KGIzPXRoaXMsej09PTApJiYodGhpcy5zaWduPSExKX1yZXR1cm4oQi05JihCPDwoKEItOSYxNSk9PXo4WzBdJiYoYjM9eVszOF0oMyx2b2lkIDAsSz09bnVsbD9LOmVbMjZdKDEwLCI6ICIsSykseixKKSksMikmMTJ8fChLPW5ldyBXVSxEWzM3XSgxMyxmdW5jdGlvbihqTixaRyxuRCl7S1taR109ZzBbMl0oNyxuRCl9LHopLEsubGQ9ei5sZCxiMz1LKSwxNCkpPDImJihCfDIpPj56OFswXT49MyYmKGg9WzMsNCwxNl0sQT1BPT09dm9pZCAwP251bGw6QSxFPUosdj12PT09dm9pZCAwPzA6dixRPVE9PT12b2lkIDA/MDpRLEw9SixFPUU9PT12b2lkIDA/MDpFLEw9TD09PXZvaWQgMD8wOkwscC5ZQXx8KFY9SFsyMF0oNjMsMTEscCksQjg9TCxzdz1RLGM9RSxQPW5ldyBGNCxxPUhbMF0oNDcsUCx6OFsxXSxwLmkpLG49ZVs0M10oNDUscSxwLlgsMikseD1rWzZdKHo4WzFdLGhbMF0sbixzdz5KP3N3OnZvaWQgMCksdT1rWzZdKHo4WzFdLGhbejhbMV1dLAp4LGM+Sj9jOnZvaWQgMCksYT1rWzZdKDU5LEssdSxCOD5KP0I4OnZvaWQgMCksZD1PWzQ2XSh6OFsxXSwzMixKLGEpLEhbejhbMl1dKDY5LFYsRjQsQyxkKSksTT1lWzMxXSgzMiwhMCxwLnYpLGY9RGF0ZS5ub3coKS50b1N0cmluZygpLFc9eVsxM10oMiwhMCxoW3o4WzFdXSxmLE0pLHQ9a1szNF0oMjUsaFsyXSxCMixoWzBdLGIuc2xpY2UoKSxXKSxBJiYocj1BLFg9bmV3IHNLLEpZPWtbNl0oMzEseixYLHIpLFM9bmV3IHpRLFU9SFt6OFsyXV0oMjIsUyxzSywyLEpZKSxOPW5ldyBLcSx3PUhbejhbMl1dKDIyLE4selEsejhbMV0sVSksWj1IWzBdKDUzLHcsMiw5KSxIW3o4WzJdXSg2OSx0LEtxLDE4LFopKSx2JiZIWzQ5XSgyMCwxNCx2LHQpLGIzPXQpLChCKzgmNjApPj1CJiYoQis2JjU2KTxCJiZULmNhbGwodGhpcyx6KSxiM30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFKXtpZihCKzc+PihjPVsxNCwyOSw0MV0sMyk9PTImJihwPQpbIkNTUzFDb21wYXQiLCJweCIsLjVdLERbMjVdKDEwLCJ8WyIsSi52KT09InZpc2libGUiKSl7QT1SWzM2XSg1NixZWzQ3XShjWzJdLCExLEopKTthOntpZih2PXdpbmRvdyxWPTAsQz12LmRvY3VtZW50KXtpZihyPShiPUMuYm9keSxDLmRvY3VtZW50RWxlbWVudCksIXJ8fCFiKXtQPTA7YnJlYWsgYX0obj1SWzE2XSgxMyx2KS5oZWlnaHQsQy5jb21wYXRNb2RlPT1wWzBdJiZyLnNjcm9sbEhlaWdodCk/Vj1yLnNjcm9sbEhlaWdodCE9bj9yLnNjcm9sbEhlaWdodDpyLm9mZnNldEhlaWdodDoocT1yLnNjcm9sbEhlaWdodCxMPXIub2Zmc2V0SGVpZ2h0LHIuY2xpZW50SGVpZ2h0IT1MJiYocT1iLnNjcm9sbEhlaWdodCxMPWIub2Zmc2V0SGVpZ2h0KSxWPXE+bj9xPkw/cTpMOnE8TD9xOkwpfVA9Vn1pZihaPShXPShOPSh4PShmPWhZKFAsZVs0MF0oMzQsMCxKKS5oZWlnaHQpLGUpWzM2XSgzNixwWzJdLEopLGVbMjRdKDYsZVtjWzJdXShjWzFdLEssZG9jdW1lbnQpLnkrMTAseC55LUEuaGVpZ2h0KgpwWzJdLGVbY1syXV0oMzMsSyxkb2N1bWVudCkueStlWzQwXSgyMCwwLEopLmhlaWdodC1BLmhlaWdodC0xMCkpLGVbMjRdKDQseC55LUEuaGVpZ2h0KnosTix4LnktQS5oZWlnaHQqLjEpKSxlWzI0XSgyLDEwLFcsaFkoMTAsZi1BLmhlaWdodC0xMCkpKSxKLlg9PUpmKVE9eC54PmVbNDBdKDE4LDAsSikud2lkdGgqcFsyXSxZWzM1XSg0MCxKLnYse2xlZnQ6ZVszNl0oMzUscFsyXSxKLFEpLngrKFE/LUEud2lkdGg6MCkrcFsxXSx0b3A6WitwWzFdfSksbVsyMV0oMSwiLiIscFsxXSxwWzJdLCJ0b3AiLEosWixRKTtlbHNlIFlbMzVdKDMyLEoudix7bGVmdDplW2NbMl1dKDMyLEssZG9jdW1lbnQpLngrcFsxXSx0b3A6WitwWzFdLHdpZHRoOmVbNDBdKDMwLDAsSikud2lkdGgrcFsxXX0pfWlmKChCfDI0KT09QilHWzM1XSgxNix6LnUoKSxLLCJyYy1yZXNwb25zZS1pbnB1dC1maWVsZC1lcnJvciIpO3JldHVybihCLTl8MTEpPEImJihCKzkmNDQpPj1CJiYoSz16Lk1bei52KzBdLGdbY1swXV0oMzIsCjEseiksRT1LKSxFfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKEImKEE9WzU5LDI2LDQ4XSxBKVswXSk9PUImJihiPSEhKEsuR0omQykmJiEhKEsuWk0mQykhPUomJighKDAmQyl8fGdbM10oQVsyXSxLLG1bQVsxXV0oODAseiwyLDE2LDY0LEMsSikpKSYmIUsubSksQjw8MiY2KXx8KGI9bmV3IEROKGZ1bmN0aW9uKHYpe3JldHVybiB2LnN1YnN0cigwLEsubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1LK3p9KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7aWYoQisoYz1bMiwxLCIiXSw3KT4+Y1swXTxCJiYoQi04XjExKT49Qil7Zm9yKGY9KE49KGI9KFo9KChZWzhdKDExLCJudW1iZXIiLChXPVsyLDAsNF0sSykpLEo9PT12b2lkIDAmJihKPVdbY1sxXV0pLHkpWzE5XShjWzBdLDUsV1tjWzFdXSksQT1Yb1tKXSxBcnJheShiTihLLmxlbmd0aC96KSkpLFcpW2NbMV1dLEEpWzY0XXx8Y1syXSxXW2NbMV1dKTtmPApLLmxlbmd0aC1XWzBdO2YrPXopVj1LW2ZdLHg9S1tmK2NbMV1dLHA9QVsoViZ6KTw8V1tjWzBdXXx4Pj5XW2NbMF1dXSxQPUFbVj4+V1swXV0sQz1LW2YrV1swXV0sUT1BWyh4JjE1KTw8V1swXXxDPj42XSxuPUFbQyY2M10sWltiKytdPWNbMl0rUCtwK1ErbjtyPSh2PVdbY1sxXV0sTik7c3dpdGNoKEsubGVuZ3RoLWYpe2Nhc2UgV1swXTp2PUtbZitjWzFdXSxyPUFbKHYmMTUpPDxXWzBdXXx8TjtjYXNlIGNbMV06TD1LW2ZdLFpbYl09Y1syXStBW0w+PldbMF1dK0FbKEwmeik8PFdbY1swXV18dj4+V1tjWzBdXV0rcitOfXE9Wi5qb2luKGNbMl0pfXJldHVybiBCPj4oQisoKEIrMyYxNSk9PWNbMF0mJihxPVREKCc8ZGl2PlRoaXMgc2l0ZSBpcyBleGNlZWRpbmcgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvZmFxI2FyZS10aGVyZS1hbnktcXBzLW9yLWRhaWx5LWxpbWl0cy1vbi1teS11c2Utb2YtcmVjYXB0Y2hhIiB0YXJnZXQ9Il9ibGFuayI+cmVDQVBUQ0hBIHF1b3RhPC9hPi48L2Rpdj4nKSksCjUpJjE1fHx6JiZ6LnBhcmVudE5vZGUmJnoucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh6KSxjWzFdKSY3fHwoej1SWzI0XSg4MCx6KSxxPURbNDBdKDU2LG51bGwseikpLHF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oQjw8KHY9WyJ2Iiw0Nyw2Nl0sMikmN3x8KGpjLmNhbGwodGhpcyx6LEosQyxiLEEpLHRoaXNbdlswXV09bmV3IENxLGdbMTRdKDU3LGJPLHRoaXNbdlswXV0pLE9bdlsxXV0oMTcsITAsInJjLWFuY2hvci1jaGVja2JveCIsdGhpc1t2WzBdXSkseVsxMF0odlsyXSwzNix0aGlzW3ZbMF1dLHRoaXMpLHRoaXMuVz1LKSwoQi02JjcpPj01KSYmQj4+MTwxMyYmKEs8MTAwfHxtW3ZbMV1dKDMsMSxBZiwxKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoKFE9WzMsNCxudWxsXSxCJjQ1KT09Qil7Zm9yKGI9Qz0oQT1bXSwwKTtDPEoubGVuZ3RoO0MrKyl2PUouY2hhckNvZGVBdChDKSx2PksmJihBW2IrK109diZLLHY+Pj16KSxBW2IrK109CnY7cD1BfWlmKChCPj4yJjE1KT09UVsxXSYmeiE9PWVKKXRocm93IEVycm9yKCJpbGxlZ2FsIGV4dGVybmFsIGNhbGxlciIpO2lmKChCfDg4KT09QiYmKHA9ZVtRWzFdXSg0OCxRWzJdLFFbMl0sdGhpcyx0NSh6KSxLKSksKEImMTA4KT09Qil7aWYoSyE9eiYmdHlwZW9mIEshPT0ic3RyaW5nIil0aHJvdyBFcnJvcigpO3A9S31pZihCKzU+PlFbMV08MiYmKEIrUVswXSY3KT49UVsxXSl7aWYoKHRoaXMuYnVmZmVyPUssSikmJiF6KXRocm93IEVycm9yKCk7dGhpcy52PXp9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybigoYj1bImVuZFRpbWUiLDEsInByb2dyZXNzIl0sQj4+YlsxXSYzKT09YlsxXSYmKEM8Si5zdGFydFRpbWUmJihKW2JbMF1dPUMrSltiWzBdXS1KLnN0YXJ0VGltZSxKLnN0YXJ0VGltZT1DKSxKW2JbMl1dPShDLUouc3RhcnRUaW1lKS8oSltiWzBdXS1KLnN0YXJ0VGltZSksSltiWzJdXT5LJiYoSltiWzJdXT1LKSxHWzM0XSgxNiwwLEpbYlsyXV0sCkopLEpbYlsyXV09PUs/KEoudj16LG1bMzFdKDcxLCEwLEopLEouaSgpLEoudEwoRXYpKTpKLnY9PUsmJkouT1goKSksQiYxMyk9PUImJihtWzldKDE3LHosdjIsT1s0MV0oMjIpKSxBPXopLEF9XX0oKSxPPWZ1bmN0aW9uKCl7cmV0dXJuW2Z1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZih2PVsyOSxudWxsLDgyXSwoQiY5MCk9PUIpYTp7aWYoej09KEo9KEs9WzgsbnVsbCwhMF0sdHlwZW9mIHopLEtbMV0pKXtwPXo7YnJlYWsgYX1pZihKPT09ImJpZ2ludCIpe3A9R1szMV0odlsyXSxLdyg2NCx6KSk7YnJlYWsgYX1pZihZWzM3XSgxLHosS1syXSkpe3A9Sj09PSJzdHJpbmciP1lbMjJdKDMzLDAsMTYseik6WVt2WzBdXSgxOSxLWzJdLEtbMF0seik7YnJlYWsgYX19cmV0dXJuKEIrOCYoQis2Pj40Pj0zJiYoQl40Mik8MjImJnRoaXMuQihbdGhpcy5TXSksNDIpKTxCJiYoQi0xXjkpPj1CJiYoR1sxMF0oODYsWTQsSyl8fEdbMTBdKDgzLGNuLEspP0M9U3RyaW5nKEspLnJlcGxhY2UoZnMsCmdbMjddLmJpbmQodlsxXSwyNSkpOihLIGluc3RhbmNlb2YgeGs/Sj1lWzddKDQxLG1bNDRdKDE2LHosSykpOihLIGluc3RhbmNlb2YgSGw/Yj1lWzddKDQzLFlbMzFdKDE5LEspLnRvU3RyaW5nKCkpOihBPVN0cmluZyhLKSxiPVRRLnRlc3QoQSk/QS5yZXBsYWNlKGZzLGdbMjddLmJpbmQodlsxXSwyNikpOm1xKCkpLEo9YiksQz1KKSxwPUMpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7cmV0dXJuKCgoKChXPVswLCJhZGRpdGlvbnMgdGV4dCIsNDldLEIpLTc+PjM9PTImJihuPVszLDEsMTNdLFE9SihLKCksMTEsMTApLGI9bmV3IGpxLEM9SihRLG5bMl0pLHA9SFtXWzJdXShXWzJdLG5bMV0sQyxiKSxaPUooUSw4KSx2PUhbV1syXV0oNDQsMixaLHApLEE9SihRLDQ2KSxOPUhbV1syXV0oNTIsbltXWzBdXSxBLHYpLnllKCkpLChCfDYpPDE4JiZCPj4yPj0xKSYmcHEuY2FsbCh0aGlzLHpqKSxCKXw0MCk9PUImJihOPWVbNDFdKDMxLG51bGwsZG9jdW1lbnQpLnkpLAooQiYxMjEpPT1CKSYmKEE9WyExLCJub25lIiwidmVydGljYWwiXSxBcnJheS5pc0FycmF5KEopJiYoSj1KLmpvaW4obzkoKSkpLGI9UTUreixKPT09IiJ8fEo9PXZvaWQgMD8obnF8fChDPXt9LG5xPShDW1plXT1BW1dbMF1dLENbVzJdPUFbMV0sQ1tneF09QVsxXSxDW05UXT1BW1dbMF1dLENbT0tdPSJvZmYiLENbeGddPUFbV1swXV0sQ1tEZV09QVtXWzBdXSxDW2ZxXT1BWzJdLENbb0ZdPUFbV1swXV0sQ1tMcV09V1sxXSxDW1JGXT1BW1dbMF1dLENbcnhdPUFbMV0sQ1tWNV09QVtXWzBdXSxDW0dRXT1BW1dbMF1dLENbSDJdPUFbV1swXV0sQ1tlcV09ImZhbHNlIixDKSksdj1ucSx6IGluIHY/Sy5zZXRBdHRyaWJ1dGUoYix2W3pdKTpLLnJlbW92ZUF0dHJpYnV0ZShiKSk6Sy5zZXRBdHRyaWJ1dGUoYixKKSksTn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgocD1bNiw1LDNdLEJ8ODApPT1CJiYodj1uZXcgemgoZnVuY3Rpb24oUSxuKXtpZigobj16W1AyXSgpLGUpWzI0XSg1MCwKbi5zdWJzY3JpYmUpKXJldHVybiBuLnN1YnNjcmliZShRKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm92aWRlZCBvYmplY3QgZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBTeW1ib2wub2JzZXJ2YWJsZSIpO30pKSxCKzdeMTIpPj1CJiZCLTk8PDI8Qil7aWYoSz09Sil0aHJvdyBFcnJvcigkZyk7aWYoQz1KJiZLLmkmJksuSylBPUsuSyxiPUsuaSxDPWIuQSYmQT9HWzIxXSg5LEEsYi5BKXx8ejpudWxsO2lmKEMmJksuaSE9Sil0aHJvdyBFcnJvcigkZyk7Sy5pPUosblEuWS53Yi5jYWxsKEssSil9aWYoKEIrcFsxXV4xMik8QiYmKEIrcFsxXSY1Nik+PUIpe2lmKHR5cGVvZiB6PT09ImZ1bmN0aW9uIilKJiYoej1SeCh6LEopKTtlbHNlIGlmKHomJnR5cGVvZiB6LmhhbmRsZUV2ZW50PT0iZnVuY3Rpb24iKXo9Ungoei5oYW5kbGVFdmVudCx6KTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGxpc3RlbmVyIGFyZ3VtZW50Iik7dj1OdW1iZXIoSyk+MjE0NzQ4MzY0Nz8tMTpHbC5zZXRUaW1lb3V0KHosCkt8fDApfWlmKCEoQi0oQi1wWzJdPj5wWzJdPT1wWzJdJiYodj10eXBlb2Ygej09PSJzdHJpbmciP0suZ2V0RWxlbWVudEJ5SWQoeik6eiksOSk+PjQpKXtpZighRkUoeikpc3dpdGNoKGVFKXtjYXNlIDI6dGhyb3cgZVtwWzBdXSgyMyxxVCgpKTtjYXNlIDE6WVsxNV0oNDkscVQoKSl9dj1lRT09PTI/enwwOnp9cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKChBPVswLDEsImluZGV4T2YiXSxCKSY1Nik9PUIpYTp7aWYoIU51bWJlci5pc0Zpbml0ZSh6KSl7dj1TdHJpbmcoeik7YnJlYWsgYX0oKGI9KEM9U3RyaW5nKHopLENbQVsyXV0oZUMoKSkpLGIpPT09LTEmJihiPUMubGVuZ3RoKSxKPUNbQVswXV09PT0iLSI/STgoKToiIikmJihDPUMuc3Vic3RyaW5nKEFbMV0pKSx2PUoraU8oIjAiLGhZKEFbMF0sSy1iKSkrQ31yZXR1cm4gQi0yPj4zPj1BWzBdJiYoKEJeMjApJjcpPDImJih0aGlzLnY9bmV3IHk1LHRoaXMuTT16KSx2fSxmdW5jdGlvbihCLHosSyxKLApDLGIsQSx2LHAsUSl7aWYoKHA9WyIiLCJwcm9taXNlIiwxXSxCPDxwWzJdJjE0KT09NCYmIVJbcFsyXV0oOCx6LEspKWlmKGI9Z1sxMV0ocFsyXSwiXHJcbiIscFswXSxLKSx0eXBlb2YgQz09PSJzdHJpbmciKXY9R1swXSgxMCxKKSxBPWIhPW51bGw/Ij0iK0dbMF0oOCxiKToiIixlWzM0XSgxOSxwWzBdLEMsditBKTtlbHNlIG1bOV0oMTcsQyxKLGIpO3JldHVybigoKEItKChCLTd8NjgpPEImJkItcFsyXTw8cFsyXT49QiYmKFE9Yi5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuKG48WWdbSl18fG4+WWcuc3Vic3RyKDEsQykpJiYobjxZZ1tDXXx8bj5ZZ1t6XSkmJihuPFlnW0tdfHxuPllnWzZdKX0pKSxCPDxwWzJdJjMxfHwodGhpcy5PZD1mdW5jdGlvbigpe3JldHVybiAwfSkscFsyXSkmNyk9PTMmJih0aGlzW3BbMV1dPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4sWil7Sz0oej1aLG4pfSksdGhpcy5yZXNvbHZlPUssdGhpcy5yZWplY3Q9eiksQik+PjImMTEpPT1wWzJdJiZULmNhbGwodGhpcywKeiksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKCgoQj4+KCgoKGI9WyJpIiwicHJvZ3Jlc3MiLCJkdXJhdGlvbiJdLEIrMikmNyk9PTQmJihDPW5ldyBOTixKLnRoZW4oZnVuY3Rpb24odil7Qy54QSh2KX0sZnVuY3Rpb24odil7eVsxM10oNzYsSyxDKSxnWzQ1XSgzNyx6LEMsSyx2KX0pLEE9QyksQik+PjImMTV8fExELmNhbGwodGhpcywzNjAsMjAsWzJdKSwxKSYxNSk9PTQmJigkTS5jYWxsKHRoaXMseiksdGhpcy5jb29yZHM9Sy5jb29yZHMsdGhpcy54PUsuY29vcmRzWzBdLHRoaXMueT1LLmNvb3Jkc1sxXSx0aGlzLno9Sy5jb29yZHNbMl0sdGhpc1tiWzJdXT1LW2JbMl1dLHRoaXNbYlsxXV09S1tiWzFdXSx0aGlzLnN0YXRlPUsudiksQi0xKSYxNSk+PTEzJiYoQl42MSk8MjAmJih0aGlzLkY9dm9pZCAwLEM9WzMsMCxudWxsXSx0aGlzLlg9Q1syXSx0aGlzLk09Q1syXSx0aGlzLlI9ITEsdGhpcy52PUNbMV0sdGhpc1tiWzBdXT1DWzJdLHRoaXMuQT0hMSx6IT1EWzNdLmJpbmQobnVsbCwKMSkpKXRyeXtKPXRoaXMsei5jYWxsKEssZnVuY3Rpb24odil7Z1s4XSgyNSwzLEosMix2KX0sZnVuY3Rpb24odil7Z1s4XSgxMiwzLEosMyx2KX0pfWNhdGNoKHYpe2dbOF0oMTMsQ1swXSx0aGlzLENbMF0sdil9cmV0dXJuIEIrNj49MjImJihCKzYmMTUpPDMmJihBPWdbMTZdKDc1LHZvaWQgMCxLLHosUUIpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe3JldHVybihOPVs2LCJKIiw1XSwoQitOWzBdXk5bMF0pPj1CJiYoQi1OWzJdfDI2KTxCKSYmVC5jYWxsKHRoaXMseiksKEImMTE3KT09QiYmKFE9Z1syNl0oMjYsTFJbTlsxXV0oKSxLKSx2PWdbMTJdKDMsUSkubmV4dCgpLnZhbHVlLEF8fChBPWdbMTJdKDEsZ1syNl0oODksTFJbTlsxXV0oKSxLKSkubmV4dCgpLnZhbHVlLFEucHVzaChBKSksWj1bbVsxMl0oOTcsQSx6KSxtWzEyXSg0MSx2LFJuKSxSWzE5XSgzMyx2LHYsSildLG49W1JbMTldKDMzLGIsQSxKKSxDXSxaLnB1c2goRFsxNF0oNTgsQSxuLAp2KSksKHA9TFJbTlsxXV0oKSkudi5hcHBseShwLGVbMzNdKDIwLFEpKSxXPVopLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKHY9WzEzLDYsNF0sQikmOTQpPT1CKWE6e2lmKCFIWzQ0XSg3LEspKXtwPURbdlswXV0oMTkseixTdHJpbmcoSykpO2JyZWFrIGF9aWYoSy5nNyYmKEo9Sy5nNygpLEogaW5zdGFuY2VvZiBJYikpe3A9SjticmVhayBhfXA9RFt2WzBdXSgxNyx6LFRIKCkpfXJldHVybiBCLTc8PDE+PUImJihCLTNedlsxXSk8QiYmKEo9Sj09PXZvaWQgMD8wOkosQT1IW3ZbMl1dKDkyLGIsQyxLLHZvaWQgMCxEWzE0XS5iaW5kKG51bGwsODApKSxwPUEhPXo/QTpKKSxwfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihCXjE2KT4+KChCLShCLTY8PChDPVsxLDcsMzBdLENbMF0pPEImJkItMzw8Q1swXT49QiYmKGMyW3pdPUspLENbMV0pPj4zPT0zJiZULmNhbGwodGhpcyx6KSxCLTI8PDI+PUImJihCKzkmNTYpPEIpJiYoSj1PWzQ1XSgyNyk/WjgucGxhdGZvcm09PT0KIkFuZHJvaWQiOkRbMjBdKDUsIkFuZHJvaWQiKSksNCl8fChLPVsiICIsInJjLWRlZmF1bHRjaGFsbGVuZ2UtcGF5bG9hZCIsJyI+PC9kaXY+PGRpdiBjbGFzcz0iJ10sej1PWzQwXSg3OSxhWigpLCc8ZGl2IHRhYmluZGV4PSIwIj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDczLCJyYy1kZWZhdWx0Y2hhbGxlbmdlLXJlc3BvbnNlLWZpZWxkIikrS1syXStSWzExXShDWzFdLEtbQ1swXV0pK0tbMl0rUlsxMV0oOSwicmMtZGVmYXVsdGNoYWxsZW5nZS1pbmNvcnJlY3QtcmVzcG9uc2UiKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIj4nKSxnWzI1XSgzNix6LCJNdWx0aXBsZSBjb3JyZWN0IHNvbHV0aW9ucyByZXF1aXJlZCAtIHBsZWFzZSBzb2x2ZSBtb3JlLiIpLGdbMjVdKDY4LE9bNDBdKDc4LHosSWYoKSksRFtDWzJdXSgyNSxLWzBdKSksSj16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBKPVs3LDAsNDZdLChCfEpbMF0pPj40PDImJkI8PDE+PTI3JiYoSz1uZXcgT2wsCkM9SFtKWzFdXShKWzJdLEssMSx6KSksQ30sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gQis2JigoQz1bMTksInNyYyIsbnVsbF0sKEJeMjgpPj41PDMpJiYoQl44KT49Q1swXSYmSy5DIT16JiYoR2wuY2xlYXJUaW1lb3V0KEsuQyksSy5DPXopLDQpfHwoSy5tQT16LEsubGlzdGVuZXI9Q1syXSxLLnByb3h5PUNbMl0sS1tDWzFdXT1DWzJdLEsuZEI9Q1syXSksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQnw1Nik9PSgoKCgodj1bMTUsMyw4XSwoQiY1Nik9PUImJnRoaXMudikmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PXosR1s0OF0oMTgsNCx0aGlzKSksKEItdlsxXXwxNyk+PUIpJiYoQi12WzFdfDc1KTxCJiYoQT1uZXcgemgoZnVuY3Rpb24ocCxRKXtyZXR1cm4gUT16LEoudzcoZnVuY3Rpb24oKXtRPT09Sy5sZW5ndGg/cC5jb21wbGV0ZSgpOihwLm5leHQoS1tRKytdKSxwLmNsb3NlZHx8dGhpcy53NygpKX0pfSkpLEIpJnZbMF0pPT1CJiYoQT0KbmV3IFNxKEsseixiLEosQykpLChCXjUzKTw1JiYoQnx2WzJdKT4+dlsxXT49MiYmKHRoaXMuWD10aGlzLnY9dGhpcy5NPXopLEIpKWE6e2lmKChDPWdbMzFdKHZbMl0sOSx6KSxDLmRlZmF1bHRWaWV3JiZDLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpJiYoSj1DLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoeixudWxsKSkpe0E9SltLXXx8Si5nZXRQcm9wZXJ0eVZhbHVlKEspfHwiIjticmVhayBhfUE9IiJ9cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQisoQz1bMzIsNDgsOF0sQi0yJjd8fChiPUhbNDRdKDIyLEssRHgseixKKSksNykmNik+PTMmJihCPDwxJkNbMl0pPDUmJih6PVJbQ1syXV0oNjEsdGhpcyksSz1PW0NbMV1dKENbMF0sdGhpcyksdGhpcy54Slt6XT0hSyksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMpe3JldHVybihCLSgoKEImNzUpPT0oRT1bITEsNCwxXSxCKSYmCih3RS5jYWxsKHRoaXMpLEhbNDFdKDE5LEVbMF0sdGhpcyx6LEsseUcpLEhbNDFdKDM0LEVbMF0sdGhpcyx6LEssZlMpKSxCKS0yPj5FWzFdPj0yJiYoQj4+RVsyXSY4KTwyJiYodGhpcy52PXopLDMpJjcpPT1FWzJdJiYoUz1HWzEzXSgzMixmdW5jdGlvbihhLHUsWCl7WD1bMzksInYiLCh1PVsxOSw1LDNdLDEpXTtzd2l0Y2goYS5NKXtjYXNlIFhbMl06cD1uZXcgZGsscC5pbml0KG1rKEFbWFsxXV0pKSxyPVlbMjJdKDY2LHVbMF0scC5nZXQoKSk7dHJ5e049KDAsdCQueTUpKGIuaVtYWzFdXS5iaW5kKGIuaSxyKSw2KX1jYXRjaChkKXtaPWIuWC50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlbmQoRWgsbmV3IGxPKFtdKSl9KSxaLmNhdGNoKGtbMTBdLmJpbmQobnVsbCw1NikpfWZvcihMPShxNz0oeD0obj0oKGM9KGY9KEhbNF0oNjUsZVszMl0oWFswXSxiW1hbMV1dLGJbWFsxXV0uaGFzKEVLKT9FSzpqUCksYi5rbixwKSxWPWZ1bmN0aW9uKGQpe3JldHVybiBkLnB1KEwpLGQub3UoKX0sClhBLnNsaWNlKCkpLHVPLnNsaWNlKCkpLGdbMzRdKFhbMl0sQyxwLmdldCgpKSkmJihmLnB1c2goZVs0Ml0uYmluZChudWxsLFhbMl0pKSxjLnB1c2goNzgpKSxtWzM1XSg3NSxyKSksUHJvbWlzZS5yZXNvbHZlKE9bNDFdKDI2KSkpLFtdKSx2PXtUXzowfSxbXSk7di5UXzxmLmxlbmd0aDt2PXtUXzp2LlRffSx2LlRfKyspeD14LnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBEWzI0XSg0NCxmW2QuVF9dLGNbZC5UX10pLmNhbGwoYix0LG4sZC5UXyl9fSh2KSkudGhlbihWKTtyZXR1cm4gYVsoeD14LnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIGFGKGQsbVszNV0oNDMsMTAwKSl9KS50aGVuKFYpLnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIGhmKGQsbVszNV0oMTEsMTAwKSl9KS50aGVuKFYpLFgpWzFdXSgoMCx0JC55NSkoZnVuY3Rpb24oKXtyZXR1cm4geH0sMTEpLEspO2Nhc2UgSzphLkdfKHVbMl0pO2JyZWFrO2Nhc2UgdVsyXTppZighKFA9KFE9KFc9bmV3IGR4KEwpLApQYihmdW5jdGlvbihkLHQsaCxNLFUsdyxzdyxCOCxKWSl7Zm9yKEI4PW5ldyAodD1tWzM2XSgxOSwoSlk9WzgsKFU9WyJdIiwwLCEwXSwxMDApLDRdLG51bGwpLCExLEhbSllbMF1dKDM2LDM1NDkpLHlbMjZdKDU4LE5wKVtVWzFdXSksWHgpKDI0MCw3LDI1KSxkPVVbMV07ZDx0Lmxlbmd0aCYmKHc9QjgsaD13LmFkZCxzdz1uZXcga2csa1s5XSgxLEpZWzFdLFVbMV0sVVsyXSx0W2RdLHN3KSxNPVlbSllbMl1dKDU3LEdbN10oMjEsVVswXSxzdy52KSksaC5jYWxsKHcsIiIrTSkpO2QrKyk7bVsyXSgzMixVWzFdLFcsMTcsW0I4LnRvU3RyaW5nKCldLG1bNDldLmJpbmQobnVsbCwyNikpfSxudWxsKSxlKVs0MF0oNCwwLGIuTSkscT1bXSxbXSksYi5pKXx8IU4pe2EuR18odVtYWzJdXSk7YnJlYWt9cmV0dXJuIGFbKGEuQSg2KSxYKVsxXV0oTix6KTtjYXNlIHo6YS5GKEopO2JyZWFrO2Nhc2UgNjphLmkoKTtjYXNlIEo6cT1HW1hbMF1dKDksbVs0N10oNDksSix1W1hbMl1dLERPLmdldChiLmkpKSksClA9R1tYWzBdXSg1NyxrWzEzXSgyNSxYWzJdLEssbnVsbCxETy5nZXQoYi5pKSkpO2Nhc2UgdVtYWzJdXTpyZXR1cm4gYS5yZXR1cm4obmV3IHRmKHEsUSxQLE9bNDBdKDM2LFcpKSl9fSkpLFN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCEoQisoQT1bNSwiTSIsInYiXSwoQnw0KTw0MCYmKChCfDgpJjMxKT49MjEmJih0aGlzW0FbMl1dPXosdGhpc1tBWzFdXT0hMSx0aGlzLmk9Syx0aGlzLkE9Six0aGlzLlg9RGF0ZS5ub3coKSksKEIrQVswXV4xNyk+PUImJihCK0FbMF1eNyk8QiYmKEs9W251bGwsITEsIiJdLG9nLmNhbGwodGhpcyksdGhpcy5oZWFkZXJzPW5ldyBNYXAsdGhpcy5IPUtbMl0sdGhpcy5vPUtbMV0sdGhpcy5YPUtbMV0sdGhpcy5pPUtbMl0sdGhpc1tBWzFdXT0wLHRoaXMuRj1LWzBdLHRoaXMubD1LWzJdLHRoaXMuQz1LWzFdLHRoaXMuVz0wLHRoaXMuVT1LWzFdLHRoaXMuUj1LWzFdLHRoaXMuaj16fHxLWzBdLHRoaXNbQVsyXV09S1swXSx0aGlzLkE9S1sxXSksCkFbMF0pPj40KSl7Zm9yKHRoaXMuQT0oKChKPUo9PT0oKEs9Sz09PXZvaWQgMD8yOkssdGhpcylbQVsyXV09ej09PXZvaWQgMD82MDp6LHZvaWQgMCk/MjA6Six0aGlzKS5pPWJOKHRoaXNbQVsyXV0vNiksdGhpcylbQVsxXV09W10sQz0wLEspO0M8dGhpcy5pO0MrKyl0aGlzW0FbMV1dLnB1c2goUlszMF0oMTAsMCw2KSk7dGhpcy5YPUp9aWYoKEIrOF4xNik8QiYmKEIrNiYzMSk+PUIpYTp7aWYoSz09enx8dHlwZW9mIEs9PT0iYm9vbGVhbiIpe2I9SzticmVhayBhfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe2I9ISFLO2JyZWFrIGF9fXJldHVybiBCPDwyJjMwfHwoTjB8fEEkIGluIEt8fFhHKEssdTQpLEtbQSRdfD16KSxifSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKChCJjU3KT09KEM9WzUsNCwyMl0sQikmJihLPUs9PT12b2lkIDA/ITA6Syx6LnYmJks/KHoudi5jbGFzc0xpc3QuYWRkKFVLKSx6LnYuY2xhc3NMaXN0LnJlbW92ZShNVCkpOnoudiYmIUsmJih6LnYuY2xhc3NMaXN0LmFkZChNVCksCnoudi5jbGFzc0xpc3QucmVtb3ZlKFVLKSkpLEItQ1sxXXw0Mik+PUImJihCLTNeQ1syXSk8Qil7aWYoSy5VKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtLLlU9en1yZXR1cm4oQj4+MSY3KT49Q1sxXSYmQitDWzBdPj5DWzBdPDEmJihiPW1bMjNdKDI3LEosSyx6LGwpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEJeKChwPVs1NywiY2FsbCIsMjhdLEI+PjIpJjIzfHwodj1ZWzddKDczLHosZnVuY3Rpb24oUSxuLFope3JldHVybiBuPShaPVs0LDIsM10sRylbNDZdKFpbMV0sUSksT1taWzBdXShaWzJdLFpbMF0sNSwwLFpbMl0sbihEWzExXShaWzFdKSkuY29uY2F0KG4oZG9jdW1lbnQpKSl9KSkscFswXSkpPDE4JiZCPj4xPj0xMylUW3BbMV1dKHRoaXMseiwwLEVkLlJUKTtpZigoKEJeNyk+PjM9PTMmJih2PW5ldyB6aChmdW5jdGlvbihRLG4pe0RbMzFdKDE2LChuPVsxLDIsNV0sblsxXSksblswXSw0LG5bMl0seiwKUSkuY2F0Y2goZnVuY3Rpb24oWil7cmV0dXJuIFEuZXJyb3IoWil9KX0pKSxCKS03Pj02JiZCPj4xPDEwKWE6e2ZvcihDPShBPShiPUouc3BsaXQoZUMoKSksR2wpLHopO0M8Yi5sZW5ndGg7QysrKWlmKEE9QVtiW0NdXSxBPT1LKXt2PUs7YnJlYWsgYX12PUF9aWYoQis1Pj40PDEmJihCPDwxJnBbMl0pPj03KSRNW3BbMV1dKHRoaXMsd3gseik7cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEope2lmKCEoQi0oSz1bImNhbGwiLDQsN10sS1syXSk+PktbMV0pKVRbS1swXV0odGhpcyx6KTtyZXR1cm4oQl4yMyk+PktbMV18fCh0aGlzLnY9eiksSn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7cmV0dXJuKEI+PihCLTQmKFE9W251bGwsIk0iLDY0XSw3KXx8KGIhPVFbMF18fChiPSEhKHomSykpLEE9WVsyOV0oMzYsUVsyXSxLLEosUlsxMF0uYmluZChRWzBdLDEpLGIpLHY9MzIsQyYmKHZ8PTIpLEs9SyYxNjc2OTIxN3x2LGtbMzhdKDc5LEEsSykscD1BKSwxKSY2KTw1JiYoQj4+CjEmNSk+PTMmJih0aGlzLnY9eix0aGlzW1FbMV1dPUspLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoKGI9WyJ0b1N0cmluZyIsNywidGVzdCJdLEItYlsxXSkmYlsxXSk9PTEmJihDPUsuS3x8KEsuSz0iOiIrKEsub3oudisrKVtiWzBdXSh6KSkpLChCLTYmYlsxXSk9PTEpYTp7aWYoIUope0M9SUZ8fChJRj1uZXcgcTEoMCwwKSk7YnJlYWsgYX1pZighL15cZCskL1tiWzJdXShKKSl7Qz1LO2JyZWFrIGF9R1syNV0oNDAseixKKSxDPW5ldyBxMShPTyx4Tyl9cmV0dXJuIEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7aWYoQi0oUD1bMyw3LDgyXSxQKVsxXTw8MjxCJiYoQis4XjI3KT49QilhOntpZihKIT1LKWZvcih2PUouZmlyc3RDaGlsZDt2Oyl7aWYoQyh2KSYmKEEucHVzaCh2KSxiKSl7Vj0hMDticmVhayBhfWlmKE9bMjBdKDIsITEsbnVsbCx2LEMsYixBKSl7Vj0hMDticmVhayBhfXY9di5uZXh0U2libGluZ31WPXp9cmV0dXJuKChCXgooQj4+KCgoQl43NSkmMTUpPT0oQi01Pj5QWzBdPT0xJiYoSy54Kj16LEsueSo9eixWPUspLFBbMF0pJiYoZj1bMzQsMTksNF0sbj1LKCksYj1uZXcgRkEsQT1KKG4sZlswXSksdj1rWzZdKDI0LDUsYixBKSxDPUoobixmWzFdKSxOPWtbNl0oMjksZlsyXSx2LEMpLFE9SihuLDIxKSxwPWtbNl0oMSw2LE4sUSksVz1KKG4sZlsyXSwyOSksTD1rWzZdKDI3LDIscCxXKSxaPUoobixmWzJdLDM1KSx4PWtbNl0oMjYsMSxMLFopLHI9SihuLGZbMl0sNDcpLFY9a1s2XSgyNCxQWzBdLHgscikueWUoKSksMSkmMTV8fFQuY2FsbCh0aGlzLHosMzcpLFBbMl0pKSYyMyk9PTQmJihWPWU3KEsueC1KLngpPD16JiZlNyhLLnktSi55KTw9eiksVn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoIShCKzY+PihBPVsiWSIsNCwoQi03Pj4zfHwodGhpcy5rZXk9eix0aGlzLmRlZmF1bHRWYWx1ZT0hMSx0aGlzLmZsYWdOYW1lRm9yRGVidWdnaW5nPXZvaWQgMCx0aGlzLnBoYXNlPTIpLCJwcm90b3R5cGUiKV0sCkEpWzFdKSl7aWYoelt6W0FbMl1dPUJ6KEtbQVsyXV0pLEFbMl1dLmNvbnN0cnVjdG9yPXosc1kpc1koeixLKTtlbHNlIGZvcihDIGluIEspQyE9QVsyXSYmKHpHPyhKPWVlKEssQykpJiZ4Vih6LEMsSik6eltDXT1LW0NdKTt6W0FbMF1dPUtbQVsyXV19cmV0dXJuKChCXjM0KSY3KT09MiYmVC5jYWxsKHRoaXMseiwwLFNkLlJUKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoKFo9WzIxLDEyLDVdLChCfDgpJlpbMl0pPT0xKXtpZihKJihRPVtudWxsLDEyOCwxNl0seikpdGhyb3cgRXJyb3IoKTtpZihwPShiPSh2PW1bMzRdKDEsUVswXSwoQT1IWzM1XSgyNixRWzFdLEopLEspLEEsQyksdj09PVFQPzc6dltBJF18MCksZ1syNF0oMix6LEosYikpLHomcHx8bVtaWzJdXSgxNSw0LHApfHxRWzJdJnApcD09PWJ8fG1bWlsyXV0oMTgsNCxwKXx8a1szOF0oOTQsdixwKSx2PWcwWzJdKDgsdiksYj0wLHA9SFs0M10oMzEseixwLEopLFlbMjVdKDM1LHYsQyxKLEEsSyk7Cm49KHAmPS0xMyxwIT09YiYma1szOF0oNzksdixwKSx2KX1pZigoQiYyOCk9PUIpe2ZvcihBPShKPSh6PShLPShDPVJbOF0oNTYsdGhpcyksYj1PWzQ4XSg2Myx0aGlzKSxrW1pbMF1dKDE1LHRoaXMpKSwiIiksZ1taWzFdXSg0LEspKSxKKS5uZXh0KCk7IUEuZG9uZTtBPUoubmV4dCgpKXorPWJbQS52YWx1ZV07dGhpcy54SltDXT16fWlmKCgoQl42MCkmMTApPT0oKEJ8NjQpPT1CJiYobj1IW1pbMF1dKDQ1LEsseikpLDIpKWE6e2lmKEFycmF5LmlzQXJyYXkoSikpe2Zvcih2PTA7djxKLmxlbmd0aDt2KyspT1syMl0oMTUsITAsSyxKW3ZdLEMsYixBKTtuPW51bGw7YnJlYWsgYX1uPShDPWtbMThdKDQwLEMpLGdbMF0oMTAsSykpP2dbNDNdKDIsITAsSixLLEMsSFs0NF0oOSxiKT8hIWIuY2FwdHVyZTohIWIsQSk6a1swXSgyLCExLEssYix6LEEsQyxKKX1yZXR1cm4gbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChCfDUpPj0ocD1bMTIsNDgsN10sMjApJiZCK3BbMl0+Pgo1PDEpYTp7aWYoW3FMLEs2XS5zb21lKChKPXoub3V0ZXJIVE1MLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oUSl7cmV0dXJuIEouaW5jbHVkZXMoUSl9KSkpe3Y9ITE7YnJlYWsgYX12PShLPVtKUixIUCxlZCxDNixiS10sW2VkLEFSXS5pbmNsdWRlcyh6LmF1dG9jb21wbGV0ZSl8fEsuc29tZShmdW5jdGlvbihRKXtyZXR1cm4gSi5pbmNsdWRlcyhRKX0pPyEwOiExKX1pZigoQl4oKEJ8cFsyXSk+PXBbMl0mJkI8PDI8MTgmJih2ei5jYWxsKHRoaXMseiksdGhpcy5BPWIsSyYmKHRoaXMubzE9ZnVuY3Rpb24oUSl7dHJ5e0soUSl9Y2F0Y2gobil7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihuKX19KSxKJiYodGhpcy5Ubz1mdW5jdGlvbihRKXt0cnl7SihRKX1jYXRjaChuKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKG4pfXRoaXMudW5zdWJzY3JpYmUoKX0pLEMmJih0aGlzLnNhPWZ1bmN0aW9uKCl7dHJ5e0MoKX1jYXRjaChRKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKFEpfXRoaXMudW5zdWJzY3JpYmUoKX0pKSwKNjQpKTwxOSYmQisyPj40Pj0yKWE6e2lmKGI9PUope3Y9YjticmVhayBhfWlmKEE9dHlwZW9mIGIsQT09PSJiaWdpbnQiKXt2PVN0cmluZyhLdyg2NCxiKSk7YnJlYWsgYX1pZighZ2Qpe3Y9YjticmVhayBhfWlmKFlbMzddKDE1LGIseikpe2lmKEE9PT0ic3RyaW5nIil7dj1tW3BbMF1dKDEsQyx6LGIpO2JyZWFrIGF9aWYoQT09PSJudW1iZXIiKXt2PUhbNDRdKDczLEssYix6KTticmVhayBhfX19cmV0dXJuKEItOCYxNSk9PTImJih2PVRHJiYhSz9HbC5idG9hKHopOmVbNDZdKDI4LDMsZVtwWzFdXSg1LDgsMjU1LHopLEspKSwoQi0yfDIyKTxCJiZCLTY8PDI+PUImJigoSj1MUi5KKCkpLnYuYXBwbHkoSixlWzMzXSgyMCxLLnJiKSksSy5yYi5sZW5ndGg9eiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZighKG49WyJDIiwiWCIsMV0sQjw8blsyXSYxNSkpYTp7aWYoKEM9WmYoTnVtYmVyKEopKSxOdSkoQykpe1E9R1szMV0oODksQyk7YnJlYWsgYX1RPSgoYj1KLmluZGV4T2YoZUMoKSksCmIhPT0tMSkmJihKPUouc3Vic3RyaW5nKHosYikpLGdbMjJdKDUxKT9HWzMxXSg4NSxENChLLEJpZ0ludChKKSkpOkdbMzFdKDg4LERbMjNdKDY0LDMyLDE2LEopKSl9aWYoKEImMTEpPT1CJiYoSi5NPUssSi5yYj1bXSxKLlIpKXtpZigoQz1ZWzQyXSgxNyx6LEpbblsxXV0pLEMubGVuZ3RoKSE9S3x8Si5pLmxlbmd0aCE9SylqYShKLnJiLEMpLGphKEoucmIsSi5pKSxKW25bMV1dW25bMV1dLmxlbmd0aD1LLG1bMjldKDYsSi5pKSxKLmkubGVuZ3RoPUs7Si5SLm1NKCl9cmV0dXJuKEIrOF4oKEItKCgoQl44NykmMjQpPDQmJihCPDxuWzJdJjExKT49MCYmVC5jYWxsKHRoaXMseiksMyleMjYpPEImJihCLTd8MTEpPj1CJiYoYj1bMCxudWxsLCExXSx3RS5jYWxsKHRoaXMpLHRoaXMuTT16LE0xPUsuVyx0aGlzLmlZPUoscDY9Sy5TLHA9dGhpcyx0aGlzLnY9Syx0aGlzLkZnPURbMzZdKDU2LGJbMF0sYltuWzJdXSx0aGlzLmlZKSx0aGlzLktxPUMsdGhpc1tuWzFdXT1weSx0aGlzLnVZPQpiW25bMl1dLHRoaXMuTng9YltuWzJdXSx0aGlzLlhnPWJbblsyXV0sdGhpcy5SPVJbNDNdKDE4LGJbblsyXV0sdGhpcyksdGhpcy5ucT1iW25bMl1dLHRoaXMuaT1iW25bMl1dLEhbMzldKDcyLGJbMF0sZ1sxNF0oNCxBcSkpP3Y9YlsyXTooZzBbNF0oNixnWzE0XSg4LEFxKSxlWzMxXSgxOCksYlswXSksdj0hMCksdGhpcy5wcT1iWzJdLHRoaXMuST1iW25bMl1dLHRoaXMuZnE9dix0aGlzLkc9YltuWzJdXSx0aGlzLlM9Z1syM10oMTYpLHRoaXMuVT1bXSx0aGlzLkw9YltuWzJdXSx0aGlzLkI9YltuWzJdXSx0aGlzLkFMPVtdLHRoaXNbblswXV09W10sdGhpcy5ETT0oQT1lWzI3XSgyLDIyKSkhPWJbblsyXV0/QTohMSx0aGlzLmo9YltuWzJdXSx0aGlzLm89YltuWzJdXSx0aGlzLmc9YltuWzJdXSx0aGlzLks9YltuWzJdXSx0aGlzLmRWPUpGKHB5LEpGKFRkLHRoaXMuRix3dCx0aGlzLndiLFFDLHRoaXMuTyxuNix0aGlzLkYsZEYsdGhpcy5NeSxZQSxmdW5jdGlvbigpe3JldHVybiBwLk0uVHEoKX0sCnBDLHRoaXMuRTMpLHpaLEpGKHFOLHRoaXMuVzEsbXMsdGhpcy54NyxZQSx0aGlzLmtKLGlGLHRoaXMubFkseWcsdGhpcy5SNyxWTyx0aGlzLnpaLCRBLHRoaXMucmIpLG55LEpGKEo1LHRoaXMudHUsVGQsdGhpcy5GLG42LHRoaXMuRixxTix0aGlzLkQseWcsdGhpcy5SNyksamgsSkYoSjUsdGhpcy50dSxxTix0aGlzLkQseWcsdGhpcy5SNyksS1MsSkYoVGQsdGhpcy5GLG42LHRoaXMuRixxTix0aGlzLkQsaUYsdGhpcy5sWSxtcyx0aGlzLng3LFlBLHRoaXMua0opLFFKLEpGKFRkLHRoaXMuRixuNix0aGlzLkYpLHN5LEpGKHFOLHRoaXMuVzEsbXMsdGhpcy54Nyx6dSx0aGlzLm96LFFDLHRoaXMuTyxUZCx0aGlzLkYpLFNMLHt9KSx0aGlzLkE9UHJvbWlzZS5yZXNvbHZlKCkpLDkpKTxCJiZCLTU8PG5bMl0+PUImJihwPWIudltDLnRvU3RyaW5nKCldLHY9LTEscCYmKHY9RFs0Ml0oMzUseixLLEEscCxKKSksUT12Pi0xP3Bbdl06bnVsbCksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSwKdixwLFEsbixaKXtpZigoQiYoWj1bIm11bHRpcGx5IiwiY2FsbCIsMjBdLDYwKSk9PUIpVFtaWzFdXSh0aGlzLHopO2lmKChCLTReOSk+PSgoQnw0MCk9PSgoQiszJjYxKT49QiYmQi03PDwyPEImJihLPW5ldyBtMyxuPUdbMjZdKDEscDUsMSx6PT1udWxsP3o6RFsyXSgxOSx6KSxLKSksQikmJih0aGlzLnY9eix0aGlzLkxEPUssdGhpcy5NPUopLEIpJiYoQi0yXjEwKTxCKWE6e2lmKCFLKXtuPVpDfHwoWkM9bmV3IHNzKDAsMCkpO2JyZWFrIGF9aWYoIS9eLT9cZCskLy50ZXN0KEspKXtuPW51bGw7YnJlYWsgYX1uPShHWzI1XSg0MSx6LEspLG5ldyBzcyhPTyx4TykpfWlmKChCJjExMCk9PUIpYTp7aWYodj1bMCwxMF0sSi5oPj12WzBdKXtuPUoudG9TdHJpbmcodm9pZCAwKTticmVhayBhfW49KGI9KFE9KEE9KHA9bVtaWzJdXSg4Myx2WzBdLChDPUouaCx2WzFdKSksZ1sxMV0oNTUsQz4+PkssSi5NeD4+Pkt8Qzw8eikpLEEuZGl2KHApKS5zaGlmdExlZnQoSykseVsyXSg5NSxRW1pbMF1dKHApLApKKSksYi5jb21wYXJlKHApPj12WzBdJiYoUT1RLmFkZChXeiksYj15WzJdKDk0LFFbWlswXV0ocCksSikpLFEudG9TdHJpbmcodlsxXSkrYi50b1N0cmluZyh2WzFdKSl9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKG49WzEsNDcsM10sQi0yKXw0MCk8QiYmKEIrblsyXV4xMyk+PUIpWVszNV0oMTYsbVsyXSg5MiwicmMtaW1hZ2VzZWxlY3QtcHJvZ3Jlc3MiKSx6LDEwMC1KL0sqMTAwKyIlIik7aWYoKEImODUpPT0oKChCKygoQnw3KT49MiYmQi0yPDExJiYob2cuY2FsbCh0aGlzKSx0aGlzLnY9eixIWzVdKDI3LHosRjgsdGhpcy5NLCExLHRoaXMpLEhbNV0oOTEseix5Ryx0aGlzLlgsITEsdGhpcykpLDIpJjE1KT09NCYmKFo9ej4wP3o+PTB4N2ZmZmZmZmZmZmZmZmZmZj9nWjpuZXcgZXQoeix6LzQyOTQ5NjcyOTYpOno8MD96PD0tMHg3ZmZmZmZmZmZmZmZmZmZmP056Om1bMjRdKDUsbmV3IGV0KC16LC16LzQyOTQ5NjcyOTYpKTpPWSksKEIrCjImMTMpPEIpJiYoQis5Jm5bMV0pPj1CJiYoWj0hIUsudSgpJiZLLnUoKS52YWx1ZSE9eiYmSy51KCkudmFsdWUhPUsuWCksQikpe3A9JzxkaXYgY2xhc3M9IicrKGI9KEM9KFE9KHY9WyciPjxkaXYgY2xhc3M9IicsNSwoSj1KfHx7fSxudWxsKV0sSi5lcnJvckNvZGUpLEouZXJyb3JNZXNzYWdlKSxBPUhbNDVdKDgsa08oKSxDLGltKCksdFEoKSksSFs0NV0oNzIsVU8oKSxRLGltKCksTXUoKSkpLFIpWzExXSg3MywicmMtaW5saW5lLWJsb2NrIikrdlswXStSWzExXSg3LCJyYy1hbmNob3ItY2VudGVyLWNvbnRhaW5lciIpK3ZbMF0rUlsxMV0oMzksInJjLWFuY2hvci1jZW50ZXItaXRlbSIpKyIgIitSWzExXSg5LCJyYy1hbmNob3ItZXJyb3ItbWVzc2FnZSIpKyciPic7c3dpdGNoKGIpe2Nhc2UgblswXTpwKz0iSW52YWxpZCBhcmd1bWVudC4iO2JyZWFrO2Nhc2UgMjpwKz0iWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiI7YnJlYWs7Y2FzZSBuWzJdOnArPSJUaGlzIHNpdGUga2V5IGlzIG5vdCBlbmFibGVkIGZvciB0aGUgaW52aXNpYmxlIGNhcHRjaGEuIjsKYnJlYWs7Y2FzZSA0OnArPSJDb3VsZCBub3QgY29ubmVjdCB0byB0aGUgcmVDQVBUQ0hBIHNlcnZpY2UuIFBsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIHJlbG9hZC4iO2JyZWFrO2Nhc2UgdltuWzBdXTpwKz0nTG9jYWxob3N0IGlzIG5vdCBpbiB0aGUgbGlzdCBvZiA8YSBocmVmPSJodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdHJvdWJsZXNob290LXJlY2FwdGNoYS1pc3N1ZXMjbG9jYWxob3N0LWVycm9yIiB0YXJnZXQ9Il9ibGFuayI+c3VwcG9ydGVkIGRvbWFpbnM8L2E+IGZvciB0aGlzIHNpdGUga2V5Lic7YnJlYWs7Y2FzZSB6OnArPSJFUlJPUiBmb3Igc2l0ZSBvd25lcjo8YnI+SW52YWxpZCBkb21haW4gZm9yIHNpdGUga2V5IjticmVhaztjYXNlIEs6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOiBJbnZhbGlkIHNpdGUga2V5IjticmVhaztjYXNlIDg6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOiBJbnZhbGlkIGtleSB0eXBlIjsKYnJlYWs7Y2FzZSA5OnArPSJFUlJPUiBmb3Igc2l0ZSBvd25lcjogSW52YWxpZCBwYWNrYWdlIG5hbWUiO2JyZWFrO2Nhc2UgMTA6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOiBJbnZhbGlkIGFjdGlvbiBuYW1lIGdvby5nbGUvcmVjYXB0Y2hhLWFjdGlvbi1uYW1lIjticmVhaztjYXNlIDE1OnArPSJFUlJPUiBmb3Igc2l0ZSBvd25lcjo8YnI+SW52YWxpZCBlbmRwb2ludCBmb3IgaG9zdCBkb21haW4uIFBsZWFzZSBjb250YWN0IHlvdXIgYXNzaWduZWQgU2VjdXJpdHkgU2FsZXMgU3BlY2lhbGlzdHMgaWYgeW91IGhhdmUgb25lIG9yIHJlYWNoIG91dCB0byBHb29nbGUgQ2xvdWQgc3VwcG9ydCB0aHJvdWdoIGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9jb250YWN0IG90aGVyd2lzZS4iO2JyZWFrO2Nhc2UgMTc6cCs9IkVSUk9SIGZvciBzaXRlIG93bmVyOjxicj5Qb2xpY3ktYmFzZWQgY2hhbGxlbmdlcyBjYW5ub3QgYmUgcmVuZGVyZWQgYXMgYSBjaGVja2JveC4iO2JyZWFrO2RlZmF1bHQ6cD0KcCsiRVJST1IgZm9yIHNpdGUgb3duZXI6PGJyPiIrRFszOV0oblsyXSxBIT12WzJdP0E6IiIpfVo9VEQocCsiPC9kaXY+PC9kaXY+PC9kaXY+Iil9cmV0dXJuIFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihCKygoKFE9WzksOCwxOV0sKEIrM14zMCk8QikmJihCKzQmMjQpPj1CJiYodj1tWzJdKDkyLCJyYy1wcmVwb3NpdGlvbmFsLXRhcmdldCIpLEE9W10sQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlWzM1XShRWzJdLEMsdixkb2N1bWVudCxKLEspLGZ1bmN0aW9uKG4sWixXLE4seCl7KFc9KCh4PShOPXRoaXMsWyJwdXNoIiwxLDE3XSksdGhpcykudlt4WzBdXShaKSx7c2VsZWN0ZWQ6ITEsZWxlbWVudDpuLGluZGV4Olp9KSxBW3hbMF1dKFcpLGVbMzZdKDksWVsyM10oNTMsdGhpcyksbmV3IHhGKG4pLERDLGZ1bmN0aW9uKGYsTCl7KChmPShOLm1KKCEoTD1bMTIsInYiLDI3XSwxKSksIVcuc2VsZWN0ZWQpKT8oUls4XSg0OSwicmMtcHJlcG9zaXRpb25hbC1zZWxlY3RlZCIsClcuZWxlbWVudCksbVsyNl0oNTIseixOW0xbMV1dLFcuaW5kZXgpKTooUltMWzJdXShMWzBdLFcuZWxlbWVudCwicmMtcHJlcG9zaXRpb25hbC1zZWxlY3RlZCIpLE5bTFsxXV0ucHVzaChXLmluZGV4KSksVykuc2VsZWN0ZWQ9ZixPWzFdKDY0LGY2LFcuZWxlbWVudCxXLnNlbGVjdGVkP29OOkw2KX0pLE8pW3hbMV1dKHhbMl0sZjYsbixMNil9LGIpKSxCK1FbMV0pPj40fHwoSz1PWzMzXSgzMix0aGlzKSxKPU9bNDhdKDY0LHRoaXMpLHo9T1s0OF0oMzIsdGhpcyksSj09eiYmZ1sxNF0oMzEsSyx0aGlzLnYpKSw2KSYyMik+PUImJihCK1FbMF1eUVsyXSk8QiYmKEs9WyciPjxkaXYgY2xhc3M9IicsInJjLWlubGluZS1ibG9jayIsJyI+PC9zcGFuPiddLEo9JzxkaXYgY2xhc3M9IicrUlsxMV0oMzksS1sxXSkrS1swXStSWzExXSg3MywicmMtYW5jaG9yLWNlbnRlci1jb250YWluZXIiKStLWzBdK1JbMTFdKFFbMF0sInJjLWFuY2hvci1jZW50ZXItaXRlbSIpK3orUlsxMV0oUVswXSwicmMtYW5jaG9yLWNoZWNrYm94LWhvbGRlciIpKwonIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDM5LEtbMV0pK0tbMF0rUlsxMV0oNzMsInJjLWFuY2hvci1jZW50ZXItY29udGFpbmVyIikrJyI+PGxhYmVsIGNsYXNzPSInK1JbMTFdKDczLCJyYy1hbmNob3ItY2VudGVyLWl0ZW0iKSt6K1JbMTFdKDcxLCJyYy1hbmNob3ItY2hlY2tib3gtbGFiZWwiKSsnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48c3BhbiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1sYWJlbGxlZGJ5PSInK1JbMTFdKDM5LCJyZWNhcHRjaGEtYWNjZXNzaWJsZS1zdGF0dXMiKStLWzJdLHA9VEQoSisiSSdtIG5vdCBhIHJvYm90PC9sYWJlbD48L2Rpdj48L2Rpdj4iKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCJjI1KT09KChCKzg+Pih2PVsiWCIsNyw2XSw1KTwxJiYoKEJeMykmdlsxXSk+PXZbMl0mJihDPW5ldyByWixwPVJbMjVdKDI2LHosSyxKLFZDLEMpKSxCfDMyKT09QiYmKHA9CltdLmNvbmNhdCh6LEssSnx8W10sSitDLzJ8fFtdLEorYi80fHxbXSxKK0EvdlsyXXx8W10pKSxCKSYmelt2WzBdXS5wdXNoKHouV2Qsei5HWix6LklqLFlbMl0oODcsZnVuY3Rpb24oUSxuKXtyZXR1cm4gUStufSx6KSxZWzJdKDgzLGZ1bmN0aW9uKFEsbil7cmV0dXJuIFEtbn0seikpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gQi0zPj4oQi0oKEIrMl4oQz1bMSwiTSIsMTBdLENbMl0pKTxCJiYoQisyXjIpPj1CJiYoSj1rW0NbMF1dKDE0LHZvaWQgMCxLLEdHLHopLGI9RFsyMl0oMzgsSixLKSksQylbMF0+PTI5JiYoQis0JjE2KTw5JiZULmNhbGwodGhpcyx6KSw0KXx8KEs9ZnVuY3Rpb24oQSx2KXtyZXR1cm5bKEE9ei5YPT09KHY9WyJBIiwiRiIsImwiXSwtMSk/MDpNYXRoLnRydW5jKFlqKCkpLXouWCx6KS52LHpbdlswXV0sei5SLEEselt2WzJdXSx6W3ZbMV1dXX0sYj16W0NbMV1dP1Byb21pc2UucmVzb2x2ZSh6W0NbMV1dLnRoZW4oSykpOlByb21pc2UucmVzb2x2ZShLKCkpKSwKYn0sZnVuY3Rpb24oQix6LEspe3JldHVybiBCPj4yPCh6PVsiQSIsMywidiJdLDE4KSYmKEItOCZ6WzFdKT49MiYmKHRoaXMuRj16WzFdLHRoaXMuUj0tMSx0aGlzLk09bnVsbCx0aGlzW3pbMF1dPS0xLHRoaXNbelsyXV09SHosdGhpcy5YPS0xLHRoaXMuaT1SWzEzXSgyLCIiLG51bGwsdGhpcyksdGhpcy5sPTApLChCJjYyKT09QiYmKG9nLmNhbGwodGhpcyksdGhpc1t6WzJdXT0wLHRoaXMuZW5kVGltZT10aGlzLnN0YXJ0VGltZT1udWxsKSxLfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKEIrKChCJjExMyk9PShBPVsiWUoiLCJmb3JFYWNoIiwia3AiXSxCKSYmKEsuQU0mJihSWzE2XSgxNixLLkFNKSxSWzE2XSg1LEsubzcpLFJbMTZdKDQsS1tBWzJdXSksSy5vNz16LEsuQU09eixLW0FbMl1dPXopLEtbQVswXV09LTEsSy5laz0tMSxLLnY9eiksOCk+PjI8QiYmKEItMl4zMSk+PUImJkomJihEWzEzXSgyNCxKKSxDKSlpZih0eXBlb2YgQz09PSJzdHJpbmciKVJbMzZdKDIwLApKLEMpO2Vsc2UgYj1mdW5jdGlvbihwLFEpe3AmJihRPWdbMzFdKDg4LHosSiksSi5hcHBlbmRDaGlsZCh0eXBlb2YgcD09PSJzdHJpbmciP1EuY3JlYXRlVGV4dE5vZGUocCk6cCkpfSxBcnJheS5pc0FycmF5KEMpP0NbQVsxXV0oYik6IVlbOF0oMSxLLEMpfHwibm9kZVR5cGUiaW4gQz9iKEMpOm1bMjldKDM1LEMpW0FbMV1dKGIpO3JldHVybihCfDIpPj0tMzUmJihCKzgmOCk8NSYmKCRNLmNhbGwodGhpcyx6LEspLHRoaXMuaWQ9Six0aGlzLkJ2PUMpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoKChCPj4xJjcpPj0oWj1bImkiLCJGIiw0OF0sMSkmJigoQnwyKSY0KTwzJiYobj1HWzEzXSgyNCxmdW5jdGlvbihXLE4pe049WyJyZWFkYWJsZSIsImdldFdyaXRlciIsInYiXTtzd2l0Y2goVy5NKXtjYXNlIEM6cmV0dXJuIHA9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksdj0obmV3IFJlc3BvbnNlKHBbTlswXV0pKS5hcnJheUJ1ZmZlcigpLEE9cC53cml0YWJsZVtOWzFdXSgpLApXW05bMl1dKEEud3JpdGUoKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGIpKSxKKTtjYXNlIEo6cmV0dXJuIFdbTlsyXV0oQS5jbG9zZSgpLEspO2Nhc2UgSzpyZXR1cm4gUT1VaW50OEFycmF5LFdbTlsyXV0odix6KTtjYXNlIHo6cmV0dXJuIFcucmV0dXJuKG5ldyBRKFcuWCkpfX0pKSxCLTgpfDE3KTxCJiZCLTg8PDE+PUIpYTp7aWYoRFsxXSg3NixiLlgpPj1iLlhbWlswXV0tKGJbWlsxXV0/MTowKSl7bj0oZWEoKSxLKTticmVhayBhfWlmKGJbWlsxXV0peyhQeigpLGIpW1pbMF1dPUEuVS5jb25jYXQoYltaWzBdXSksbj16O2JyZWFrIGF9aWYoYi5NPT1DfHxiLk09PUp8fGIuVT49KGIudnY/MDpiLk1qKSl7bj1LO2JyZWFrIGF9YlskRigpLFpbMV1dPWdbMF0oWlsyXSxSeChiLkIxLGIsQSksRFs4XSgxLEosYixiLlUpKSxiLlUrKyxuPXp9cmV0dXJuIG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybigoKHA9WyIiLCJjYWxsIiwzXSxCJjI3KSE9Qnx8T1syNl0oMzAsCnBbMF0sdGhpcyl8fCh0aGlzLnUoKS52YWx1ZT1wWzBdLE9bMl0oNTYsdGhpcy5QRSwxMCx0aGlzKSksKEIrOSY2KT49cFsyXSYmKEJeNTkpPj40PDQpJiYoQT1bbnVsbCwhMCwiZ29vZy1pbmxpbmUtYmxvY2siXSx2PW1bMTddKDIscXosenx8InJjLWJ1dHRvbi1kZWZhdWx0IiksaUtbcFsxXV0odGhpcyxLLHYsQyksdGhpcy5DPWJ8fEFbMF0sdGhpcy5SPXp8fCJyYy1idXR0b24tZGVmYXVsdCIsdGhpcy52PUp8fDAsT1s0N10oMTgsQVsxXSxBWzJdLHRoaXMpKSxCLTJeMTMpPEImJihCKzImNjApPj1CJiYoZVs0NF0oNSx6LnYpLFJbMTddKDE1LHoudiksZVs0NF0ocFsyXSx6LnYpLFE9ei5MaSgpKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChDPVsiaSIsInYiLDIzXSxCJkNbMl0pPT1CJiYodGhpcy5NPXosdGhpc1tDWzFdXT1LLHRoaXMuU0s9SiksKEI+PjEmMyk9PTEpJiYoeltDWzFdXVtDWzBdXS5zZXQoSykseltDWzFdXVtDWzBdXS5sb2FkKCkpLGJ9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCfCgoQnw4KT4+KCgoQj4+KG49WyJzdWJzdHJpbmciLDIsInN1YnN0ciJdLG5bMV0pJjcpPT0zJiYoUT16XkteSiksQj4+MSkmMTN8fChRPWZ1bmN0aW9uKFope1ouZm9yRWFjaChmdW5jdGlvbihXLE4pe1cudHlwZT09PShOPVsiTSIsInRhcmdldCIsImFkZCJdLCJhdHRyaWJ1dGVzIikmJihBZSgpPHomJksudisrLFcuYXR0cmlidXRlTmFtZSYmSy5YW05bMl1dKFcuYXR0cmlidXRlTmFtZSksV1tOWzFdXSYmV1tOWzFdXS50YWdOYW1lJiZLW05bMF1dW05bMl1dKFdbTlsxXV0udGFnTmFtZSkpfSl9KSw0KXx8KGI9QygpW25bMl1dKHoseUNbel0pLFE9bVs0Ml0oNykuY2FsbChwYXJzZUZsb2F0KEorYi1KKV5KLEspKSw0OCkpPT1CKXtmb3IocD0oYj0oSy52LmNvb2tpZXx8IiIpLnNwbGl0KFlGKCkpLEo9W10sW10pLEE9ejtBPGIubGVuZ3RoO0ErKylDPWE0KGJbQV0pLHY9Qy5pbmRleE9mKFhaKCkpLHY9PS0xPyhKLnB1c2goIiIpLHAucHVzaChDKSk6CihKLnB1c2goQ1tuWzBdXSh6LHYpKSxwLnB1c2goQ1tuWzBdXSh2KzEpKSk7UT17a2V5czpKLHZhbHVlczpwfX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKCEoKEJeMzMpJihOPVs3LDEsMF0sTlswXSkpKWcwWzRdKDIsZ1sxNF0oOCxTSiksSyx6KTtpZigoQi0zJk5bMF0pPT1OWzFdKWE6e2lmKChRPVs4LDkwMDcxOTkyNTQ3NDA5OTEsNDI5NDk2NzI5Nl0sSykuY2hhckF0KE5bMl0pPT0iLSIpe3g9bVsyNF0oNixPWzM2XSg0LE5bMV0sSy5zdWJzdHJpbmcoeiksSikpO2JyZWFrIGF9aWYodj1wYXJzZUludChLLEp8fDEwKSx2PD1RW05bMV1dKXt4PW5ldyBldCh2JVFbMl18TlsyXSx2L1FbMl18TlsyXSk7YnJlYWsgYX1pZihLLmxlbmd0aD09TlsyXSl0aHJvdyBFcnJvcigibnVtYmVyIGZvcm1hdCBlcnJvcjogZW1wdHkgc3RyaW5nIik7aWYoSy5pbmRleE9mKEk4KCkpPj1OWzJdKXRocm93IEVycm9yKCdudW1iZXIgZm9ybWF0IGVycm9yOiBpbnRlcmlvciAiLSIgY2hhcmFjdGVyOiAnKwpLKTtpZigoQT1KfHwxMCxBKTwyfHwzNjxBKXRocm93IEVycm9yKCJyYWRpeCBvdXQgb2YgcmFuZ2U6ICIrQSk7Zm9yKGI9KHA9KFo9T1syNl0oMTgsZlEoQSxRW05bMl1dKSksTlsyXSksT1kpO3A8Sy5sZW5ndGg7cCs9UVtOWzJdXSlXPWw5KFFbTlsyXV0sSy5sZW5ndGgtcCksbj1wYXJzZUludChLLnN1YnN0cmluZyhwLHArVyksQSksVzxRW05bMl1dPyhDPU9bMjZdKDUwLGZRKEEsVykpLGI9Yi5tdWx0aXBseShDKS5hZGQoT1syNl0oNTAsbikpKTooYj1iLm11bHRpcGx5KFopLGI9Yi5hZGQoT1syNl0oMTgsbikpKTt4PWJ9cmV0dXJuIHh9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi0oKEIrKChCfDQ4KT09KGI9WzksNDMsMTZdLEIpJiYoQz1SWzEzXShiWzFdLEhbMjVdKGJbMV0sT1tiWzBdXSgyOCwzKSx6KSxbZ1tiWzJdXSg1NCxLKSxnW2JbMl1dKDg2LEopXSkpLDcpXjE3KT49QiYmKEIrYlswXV4xNCk8QiYmKEs9JzxpbWcgc3JjPSInK1JbMTFdKDM5LE9bMF0oMjAsCiIiLHouV28pKSsnIiBhbHQ9IicsSys9ZVszNF0oOTEsInJlQ0FQVENIQSBjaGFsbGVuZ2UgaW1hZ2UiKSxDPVREKEsrJyIvPicpKSw3KTw8Mj49QiYmKEItNXwxNSk8QiYmKEM9eiBpbiBjej9jelt6XTpjelt6XT1TYSt6KSxCXjI4KT4+Mz09MiYmKEM9RFsyMF0oMTEsIkZpcmVmb3giKXx8RFsyMF0oYlswXSx6KSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZigoQl40MCk+PigoKEJ8MykmKChCLTNeKEw9WyJhcHBseSIsNyw0XSwoQnw3Mik9PUImJihXPVswLCExLDddLHY9Z1syNl0oNTcsTFIuSigpLHopLFo9Z1sxMl0oMTEsdikscD1aLm5leHQoKS52YWx1ZSx4PVoubmV4dCgpLnZhbHVlLEE9Z1tMWzFdXSgzOCksTj1nW0xbMV1dKDYpLFE9W0hbNDRdKDQ2LEMpLFlbMTJdKDE2LHAsSiksdkkoeCxIWzE1XSg3MixMWzJdKSxwKSx2SSh4LEhbMTVdKDY0LFdbMl0pLHgpLFlbMF0oMjQsQSxPWzI1XShMWzFdLHgpLFdbMV0pLFJbMTldKDQxLApDLEhbMTVdKDMyLEspLHApLFlbMF0oMjQsTixXWzBdLFdbMF0pLEEsSFs0NF0oNDMsSiksSFs0NF0oNDcscCksSFs0NF0oNTgseCksWVswXSgyOSxiLFdbMF0sV1swXSksTixIWzQ0XSg1NCx4KSxIWzQ0XSg1MSxwKV0sKG49TFIuSigpKS52W0xbMF1dKG4sZVszM10oMzYsdikpLGY9USksMTMpKT49QiYmKEItM14yNik8QiYmKHoudj96LnYuYWRkKEspOnouTT1LKSwxNSkpPT0zJiYoZj1IWzhdKDM2LDIwODMpKEooeigpLDUpKSksMyk9PTIpYTp7Zm9yKHY9KHA9KGI9RFsxMl0oNjYsMSwzMCksZylbMTJdKDEsSFs4XSgzNiwxNDg4KSh6LEosZnVuY3Rpb24ocil7cmV0dXJuIHJ9KSkscC5uZXh0KCkpOyF2LmRvbmU7dj1wLm5leHQoKSlpZihDPWdbMTJdKDUsdi52YWx1ZS5zcGxpdChYWigpKSksQT1DLm5leHQoKS52YWx1ZSxRPUMubmV4dCgpLnZhbHVlLEEudHJpbSgpPT09Yil7Zj1RO2JyZWFrIGF9Zj0iIn1yZXR1cm4oQis5JjI2KTxCJiYoQi05XjI4KT49QiYmKG1uPT09dm9pZCAwJiYKKG1uPURbNDBdKDI2LHopKSxmPW1uKSxmfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoKEJ8Myk+PigoQnw1Nik9PSgoeD1bMjIsMTE1LCJpc0FycmF5Il0sKEImeFsxXSk9PUImJihKPW5ldyBsSyxOPW1bMjNdKHhbMF0sSyxKLHopKSxCLTQpJjE1fHwodGhpcy52PXp8fHtjb29raWU6IiJ9KSxCKSYmKE49UGIoZnVuY3Rpb24oKXtyZXR1cm4gSygpLnBhcmVudCE9SygpPyEwOksoKS5mcmFtZUVsZW1lbnQhPW51bGw/ITA6ITF9LCEwKSksMyk9PTMpYTp7aWYoIUEudil7Tj1iO2JyZWFrIGF9aWYoIWIpe049SjticmVhayBhfXRyeXtpZihRPW9DKGIpKWZvcih2PTA7djxRLmxlbmd0aDt2KyspaWYoQXJyYXlbeFsyXV0oUVt2XSkmJihwPVFbdl0sIShwLmxlbmd0aDxDfHwoWj1wW0tdLCFBcnJheVt4WzJdXShaKXx8Wi5sZW5ndGg8S3x8KG49WlswXSxuPT16fHxuPT0ic3RvcCJ8fG49PSJjbG9zZSIpKSkpKWZvcihXPUs7VzxaLmxlbmd0aDtXKyspWltXXT0KIiI7Tj0obmV3IEJSKS55ZShRKTticmVhayBhfWNhdGNoKGYpe049KEVZKCksYik7YnJlYWsgYX19cmV0dXJuIE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQj4+MSY3KT09KCgoKChCJjg4KT09KChCLShuPVsyOSw5MiwxOV0sNil8NzcpPEImJihCLTFeblswXSk+PUImJih6LnYhPT12b2lkIDA/ei52LnB1c2goSyk6ei5NKz1LLFo9eiksQikmJihKPW5ldyB1SyhuZXcgYU4oSykpLHNZJiZ6LnByb3RvdHlwZSYmc1koSix6LnByb3RvdHlwZSksWj1KKSxCKzI+PjQpfHwoWj16P3tnZXRFbmRwb2ludElkZW50aWZpZXI6ZnVuY3Rpb24oKXtyZXR1cm4gei5NfSxnZXRFbmRwb2ludFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gei5YfSxnZXRFeHBpcmF0aW9uVGltZTpmdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh6LnYuZ2V0VGltZSgpKX19Om51bGwpLEJeblsxXSkmNyk9PTEmJihaPUdbMTNdKDI1LGZ1bmN0aW9uKFcsTix4KXtpZigoeD1bMTAsMUU0LCJBIl0sClcuTSk9PUspe2lmKGIudiBpbnN0YW5jZW9mIG50KXJldHVybiBXLnJldHVybihQcm9taXNlLnJlc29sdmUoKSk7cmV0dXJuKCgoKChwPShRPShOPW5ldyBoUixtWzIzXSgzNCxBLE4sSykpLEQpWzIxXSg4LGIudikscCkucXQ9PUMmJihwLnF0PXt9KSxwKS5xdFtkWigpXT12LHApLkF1PXhbMV0sVylbeFsyXV0oeiksVykudihSWzE5XSh4WzBdLGIuTSxrRix0UixRLHApLDQpfWlmKFcuTSE9eilyZXR1cm4gVy5GKEopO1cuaSgpLFcuUigpfSkpLDIpKWE6e2lmKEspe2Z3PUs9PW51bGx8fEs9PT1nW25bMF1dLmJpbmQobnVsbCwzKXx8S1tVWV0hPT1Nej9nW25bMF1dLmJpbmQobnVsbCw1KTpLO3RyeXtaPWVbblsyXV0oMTIsMCx6KTticmVhayBhfWZpbmFsbHl7Znc9dm9pZCAwfX1aPWVbblsyXV0oMTQsMCx6KX1yZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKEI+PihKPVsxMCwidG9TdHJpbmciLDM2XSwxKTwyMiYmQi05Pj1KWzBdJiYoSz1iTihBZSgpKjIxNDc0ODM2NDgpW0pbMV1dKEpbMl0pKwplNyhiTihBZSgpKjIxNDc0ODM2NDgpXmVbMjldKDI2KSlbSlsxXV0oSlsyXSkpLEItMzw8Mik+PUImJkItODw8MjxCJiYodGhpcy5NLmNGKHouZXJyb3JDb2RlKSx0aGlzLlg9cHksdGhpcy5OeC5zZW5kKHlnLHopLHRoaXMuaSYmdGhpcy5pLnJlamVjdCh6LmVycm9yQ29kZSkpLEt9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybihBPVsyNiwiSiIsN10sQj4+MSZBWzJdfHwoZGtbQVsxXV0oKS5pbml0KFlbNDBdKDY1LDIseikpLEs9bmV3ICRVLEsucmVuZGVyKEdbMTVdKDQ0KSksQz1uZXcgcTUsSj1uZXcgaVYoQyx6LG5ldyB5QSxuZXcgd1opLHRoaXMudj1uZXcgY2QoSyxKKSx0aGlzLnYuaW5pdChSW0FbMF1dKDE0LHosMSxsKSkpLEIrOSZBWzJdKXx8KGI9ZG9jdW1lbnQpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyKXtpZigoQl4oKHI9WzEsMjUsNDFdLEJ8NDApPT1CJiYobj1bMCwxMCxudWxsXSxXPWVbMzNdKDcsclswXSxHWzQzXSg5MywKclswXSxuWzBdLCIiK0MpLEoubSksSi5XJiZIWzM3XSgxNyw2LFcsSi5XKSxIWzQ5XSg1OCw3LEouTyxXLHZvaWQgMCxsKSxIWzQ5XSgyNiw4LEouQyxXLHZvaWQgMCxsKSxRPWImJmJbQjcuZ2V0TmFtZSgpXT9iW0I3LmdldE5hbWUoKV06SFsyXSg5MSxKLnYsQjcpLE9bMTVdKDEzLG5bclswXV0sVyxRPT1uWzJdP3ZvaWQgMDpRLnN1YnN0cmluZyhuWzBdLDEwMCkpLERbMjZdKDQ4LHosVywoTj1IWzJdKDExLEoudixJTikpIT1uWzJdP046IiIpLHdpbmRvd1tpM11bRlIoKV0/KEE9SFsyXSgxMSxKLnYsU0IpfHxPW3JbMl1dKDI4KSxSWzI2XSgyMSxXLDYsbCl8fChaPShBZSgpKkJrK3NNKS8yLGY9ZVszMV0oMjAsenQpLHY9T1syM10oMTAsS20rZi5zdWJzdHJpbmcoblswXSxaKSw0KSx5WzM4XSg2LGwsR1s0Ml0oNDIsblsyXSwhMSx2KSxXLEspKSxwPW1bNDBdKDE3LG5bMF0sIiIsQSxXLnllKCkpLHg9ZVsxNl0oMzUsNCxLbSxwKSk6eD1EWzIzXSg1Nyw0LFcueWUoKSxIWzJdKDkxLApKLnYsU0IpfHxPW3JbMl1dKDE5KSksTD14KSw3NCkpPDM0JiZCPj4yPj0yMClhOntpZihKPT0oYj1bIkludmFsaWQgY2hlY2tib3ggc3RhdGU6ICIsIShDPUsuV2goKSwwKSwiLXVuZGV0ZXJtaW5lZCJdLGIpW3JbMF1dKXtMPUMrIi1jaGVja2VkIjticmVhayBhfWlmKEo9PTApe0w9QysiLXVuY2hlY2tlZCI7YnJlYWsgYX1pZihKPT16KXtMPUMrYlsyXTticmVhayBhfXRocm93IEVycm9yKGJbMF0rSik7fXJldHVybiBCPj4oKEJeNjcpJjE1fHwodj1iLm9yaWdpbixwPWIub0EsUT1iLkVsPT09dm9pZCAwPyJaTldOMWQiOmIuRWwsWj1iLm9uTWVzc2FnZT09PXZvaWQgMD92b2lkIDA6Yi5vbk1lc3NhZ2Usbj1iLmRlc3RpbmF0aW9uLEE9Yi5ZRj09PXZvaWQgMD92b2lkIDA6Yi5ZRixHWzExXShyWzBdLHosQyxLLHtkZXN0aW5hdGlvbjpuLHZEOmZ1bmN0aW9uKCl7cmV0dXJuIHAuY29udGVudFdpbmRvd30seW86diBpbnN0YW5jZW9mIEp1P3Y6dHlwZW9mIHY9PT0iZnVuY3Rpb24iP25ldyBKdSh2KToKbmV3IEp1KG1bclsxXV0oclswXSxKLCEwLHYpKSxFbDpRLG9uTWVzc2FnZTpaLFlGOkF9KSksclswXSkmN3x8KEw9bmV3IGJtKHoud2lkdGgsei5oZWlnaHQpKSxMfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZihCKzk+PSgoQiYoWj1bImluZGV4T2YiLDE1LCJ0ZXN0Il0sMTkpKT09QiYmKEo9IkpzbG9hZGVyIGVycm9yIChjb2RlICMiK3orIikiLEsmJihKKz0iOiAiK0spLE5QLmNhbGwodGhpcyxKKSx0aGlzLmNvZGU9eiksWilbMV0mJihCLTkmOCk8MylhOntpZighKHA9WzMsIjoiLCJVUkkgaXMgbWlzc2luZyBwcm90b2NvbDogIl0sSikpe1c9IiI7YnJlYWsgYX1pZigvXmFib3V0Oig/OmJsYW5rfHNyY2RvYykkL1taWzJdXShKKSl7Vz13aW5kb3cub3JpZ2lufHwiIjticmVhayBhfWlmKHY9KG49KEE9KC9eW1x3XC1dKjpcL1wvL1soSj0oSj0oSltaWzBdXShDbSgpKT09PTAmJihKPUouc3Vic3RyaW5nKDUpKSxKLnNwbGl0KHRrKCkpW0tdLnNwbGl0KEsxKCkpW0tdKSwKSikudG9Mb3dlckNhc2UoKSxKW1pbMF1dKE5oKCkpKT09SyYmKEo9d2luZG93LmxvY2F0aW9uLnByb3RvY29sK0opLFpbMl1dKEopfHwoSj13aW5kb3cubG9jYXRpb24uaHJlZiksSi5zdWJzdHJpbmcoSltaWzBdXShiWigpKStwWzBdKSksQVtaWzBdXShudygpKSksbiE9LTEmJihBPUEuc3Vic3RyaW5nKEssbikpLEouc3Vic3RyaW5nKEssSltaWzBdXShiWigpKSkpLCF2KXRocm93IEVycm9yKHBbMl0rSik7aWYodiE9PSJodHRwIiYmdiE9PSJodHRwcyImJnYhPT0iY2hyb21lLWV4dGVuc2lvbiImJnYhPT0ibW96LWV4dGVuc2lvbiImJnYhPT0iZmlsZSImJnYhPT0iYW5kcm9pZC1hcHAiJiZ2IT09ImNocm9tZS1zZWFyY2giJiZ2IT09ImNocm9tZS11bnRydXN0ZWQiJiZ2IT09ImNocm9tZSImJnYhPT0iYXBwIiYmdiE9PSJkZXZ0b29scyIpdGhyb3cgRXJyb3IoIkludmFsaWQgVVJJIHNjaGVtZSBpbiBvcmlnaW46ICIrdik7Vz0oKEM9IiIsUT1BW1pbMF1dKHZoKCkpLFEhPS0xKSYmCihiPUEuc3Vic3RyaW5nKFErMSksQT1BLnN1YnN0cmluZyhLLFEpLHY9PT0iaHR0cCImJmIhPT0iODAifHx2PT09Imh0dHBzIiYmYiE9PSI0NDMiKSYmKEM9cFsxXStiKSx2K3orQStDKX1yZXR1cm4gV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKEJ8NDgpPT0oKCgoKCgoQl4oVz1bNzAsNDYsM10sV1sxXSkpJjI3KT09MiYmKHRoaXMudj10aGlzLmk9MCx0aGlzLkE9ITEsdGhpcy5NPW51bGwsdGhpcy5YPTAsdGhpcy5pbml0KHosSyxKLEMpKSxCLTUpfDg1KTxCJiYoQi0yfDgzKT49QiYmR2wuc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IHo7fSwwKSxCLTcpJjcpPT00JiYoWj1SYj8hIVo4JiYhIVo4LnBsYXRmb3JtOiExKSxCKSlhOntBPUoudix2PShiPShwPVsxMjgsKFE9MCw3KSwxMjddLEM9MCksSi5NKTtkbyBuPXZbQSsrXSxDfD0obiZwWzJdKTw8YixiKz1wWzFdO3doaWxlKGI8eiYmbiZwWzBdKTtpZihiPnopZm9yKFF8PShuJnBbMl0pPj40LApiPVdbMl07Yjx6JiZuJnBbMF07Yis9cFsxXSluPXZbQSsrXSxRfD0obiZwWzJdKTw8YjtpZihrWzQzXSgzOSxKLEEpLCEobiZwWzBdKSl7Wj1LKEM+Pj4wLFE+Pj4wKTticmVhayBhfXRocm93IEVycm9yKCk7fXJldHVybigoQl5XWzBdKSYxNSk9PVdbMl0mJih6PTgsej16PT09dm9pZCAwPzE6eix0aGlzLm1heD04LHRoaXMuTT1EYXRlLm5vdygpLHRoaXMudj16KSxafSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKEItKFc9WyJDIiw0LDI3XSw5KTxXWzJdJiYoQnw4KT49MjImJih0aGlzLk09eix0aGlzLnY9SyksKEImMTUpPT1CJiYoYj1KLmFULEM9YltBJF18SyxaPXlbMl0oV1sxXSxKLEMpP0o6ZVszMF0oMjMseixiLEMsSik/Z1s0NF0oMixiLEopOm5ldyBKLmNvbnN0cnVjdG9yKE9bMThdKFdbMV0sMzQsQyxiLCEwKSkpLEIrMyleV1syXSk8QiYmKEIrOSY3NCk+PUIpYTppZihBPWwsdj16bCxnWzQxXSg1MyxKKSxiPUouYVQsQz1iW0EkXXxLLG49UlsxNF0oNzIsCnosQSwxLGIpLHA9dm9pZCAwPT09QXUsUT1IW1dbMl1dKDI4LDMyLEMsdiwhcCxuKSwhcHx8USl7KFE9RFsxXSg2MCwwLFEpLG4pIT09USYmKEM9WVsyNV0oNTEsUSwxLEMsQSxiKSxIWzM2XSgxLGIsQykpLFo9UTticmVhayBhfXJldHVybiBCLTg+PigoQiYxMDgpPT1CJiYoej1bbnVsbCw1NDksMThdLExELmNhbGwodGhpcyx6WzFdLHpbMl0pLHRoaXMua0o9elswXSx0aGlzLmxZPXpbMF0sdGhpcy5TPXpbMF0sdGhpcy5XPXpbMF0sdGhpcy5pPXpbMF0sdGhpcy5ucT16WzBdLHRoaXMuUD16WzBdLHRoaXMuSz16WzBdLHRoaXMuSD16WzBdLHRoaXMuVT16WzBdLHRoaXMubz16WzBdLHRoaXMuWD16WzBdLHRoaXMuaVk9elswXSx0aGlzLkw9elswXSx0aGlzLlhnPXpbMF0sdGhpcy5nPXpbMF0sdGhpcy5WPXpbMF0sdGhpcy5EPXpbMF0sdGhpcy5CPXpbMF0sdGhpcy5JPXpbMF0sdGhpcy5qPXpbMF0sdGhpcy5XMT16WzBdLHRoaXMuRz16WzBdLHRoaXNbV1swXV09elswXSx0aGlzLm09elswXSwKdGhpcy5BTD16WzBdLHRoaXMuTT16WzBdLHRoaXMuQT16WzBdLHRoaXMudVk9Z1s3XSgzOCksdGhpcy53Yj1nWzddKDM2KSx0aGlzLnBxPWdbN10oV1sxXSkpLFdbMV0pPT1XWzFdJiYoSj1IWzhdKDQwLEspLFo9ZnVuY3Rpb24oKXtyZXR1cm4gUkM9PXo/ZUMoKTpKLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoQisoQj4+KCgoKFE9WyJwdXNoIiwxLDE0XSxCKSYxMjApPT1CJiYoYj1uZXcgdmsscD1nW1FbMV1dKDY5LEssVHQsYiksdj15WzEzXSg2LCEwLHosQy50b1N0cmluZygpLHApLEE9bmV3IGpwLGVbMTNdKDE5LEssanAsMyxwbSx2LEEpLEoudiYmSi52LmNoYW5uZWwuc2VuZChiKSxKLnN0cmVhbXNbImRlbGV0ZSJdKEMpKSwoKEJeMjcpJjE1KT09UVsxXSkmJlQuY2FsbCh0aGlzLHopLFFbMV0pJlFbMl18fChuPVREKCJTY2FuIHRoZSBRUiBjb2RlIHdpdGggeW91ciBwaG9uZSdzIGNhbWVyYS4gVGhpcyB3aWxsIGluaXRpYWxpemUgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzIG9uIHRoZSBwaG9uZS4gQWZ0ZXIgdmVyaWZpY2F0aW9uLCB5b3Ugd2lsbCBwYXNzIHRoZSBjaGFsbGVuZ2UuIikpLAo2KTwyMiYmKChCfFFbMV0pJlFbMl0pPj0zKWZvcihDPVlbMjVdKDcwLEsudiksYj1LLnYuditDO0sudi52PGI7KUpbUVswXV0oeihLLnYpKTtyZXR1cm4oQi04fDEzKTxCJiYoQi03fDIyKT49QiYmSyYmKEouVz9ZWzhdKDE4LEouVyxLKXx8Si5XW1FbMF1dKEspOkouVz1bS10sbVsxOF0oNzMsSyxKLHopKSxufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVybihCKygoKCgoQl45Myk8KFA9WzMwLDEzLDcxXSwxOSkmJkIrNz4+Mz49MiYmKGI9Yj09PXZvaWQgMD8hMTpiLGY9WzgsMiwxXSx2PWVbMjNdKDIsITEpLE49Z1sxMl0oOSxnWzI2XSg1OCxMUi5KKCksZlsxXSkpLG49Ti5uZXh0KCkudmFsdWUseD1OLm5leHQoKS52YWx1ZSx2LmZvckVhY2goZnVuY3Rpb24ocSxjLEUsUyl7KHEuTz0ocS5KTD0oRT0oYz0oKFM9WzYsMTIsMl0scSkuUigpLHkpWzQ5XShTWzJdLHEsMyksZ1tTWzFdXShTWzBdLGMpKSxFLm5leHQoKS52YWx1ZSksCkUpLm5leHQoKS52YWx1ZSxxKS5GZz1FLm5leHQoKS52YWx1ZX0pLEE9di5tYXAoZnVuY3Rpb24ocSxjLEUsUyxhKXtyZXR1cm4gUz0oRT1rWzQyXSg0NixxLChhPVs1NSwyLDVdLGM9WzM5LDEyLDFdLGNbYVsxXV0pKVswXSxbZ1thWzJdXSgxNixjWzBdLHEuSkwpLGdbMzFdKDEzLGNbYVsxXV0sY1sxXSxxLkYoKSxxKSxnW2FbMl1dKDE3LGNbMF0sRSksUlsxNl0oNTgscS5KTCxPWzI1XShhWzJdLEUpLE9bMjVdKDMscS5KTCkpLGVbN10oYVsxXSxxLk8pLEdbMjRdKDI2LHEuTyxPWzI1XShhWzJdLHEuTyksSiksWVs0MV0oMjAscS5PLE9bMjVdKDMscS5PKSxyNSksT1szN10oNjAscS5PLE9bMjVdKDMscS5PKSwwKSxPWzM3XSg2MSxxLkZnLE9bMjVdKDksSykscS5DaSksT1szN10oYVswXSxxLkZnLE9bMjVdKDEscS5GZyksT1syNV0oOSxxLk8pKV0pLE9bMjNdKDMyLDAscSksU30pLHI9di5tYXAoZnVuY3Rpb24ocSxjKXtyZXR1cm4gYz1xLmwoKSxPWzIzXSgzMywwLHEpLGN9KSxRPQp2Lm1hcChmdW5jdGlvbihxLGMpe3JldHVybiBIW2M9WzcsNDYsMjBdLGNbMV1dKGNbMl0sMCwxMiwzOSxjWzBdLHEsYil9KSx2LmZvckVhY2goZnVuY3Rpb24ocSxjLEUpeygoRT1bImFwcGx5IiwwLCJKIl0sKGM9TFJbRVsyXV0oKSkudilbRVswXV0oYyxlWzMzXSgxMixxLmtXKSkscSkua1cubGVuZ3RoPUVbMV19KSxaPWdbN10oMzYpLEw9T1s0MV0oMjQpLHA9W1lbMF0oMjQsWixPWzI1XSgxLG4pLEwpLG1bMTJdKDk3LG4sTCksWVswXSgxNCxDLDI2NSwxNTIyLGZbMF0pLEEsT1szN10oNTgsSyxPWzI1XSg1LEspLC0xMDApLGVbN10oMSx4KSxPWzM3XSg1NCxLLE9bMjVdKDcsSyksT1syNV0oOSx4KSksSFs0NF0oNTEseCksWVswXSgyNSx0RixmWzJdLGZbMl0pLHIsUltQWzFdXSg0NSxPWzldKDI5LHopLFtnWzE2XShQWzBdLC0xKV0pLFosUSx0Rl0sVz1RaShwKSxMUi5KKCkudihuLHgpLFY9VyksQis4Pj4xPj1CKSYmKEItNl4yMik8QiYmKFY9UltQWzFdXSg4LEhbMjVdKDQyLE9bOV0oMTgsCnopLEspLFtnWzE2XSg5NCxKKSxnWzE2XSgyMixDKV0pKSwoQl5QWzJdKT4+Myk9PTEmJihWPVJbUFsxXV0oMTAsSFsyNV0oNTgsT1s5XSgyMSwyKSx6KSxbZ1sxNl0oMjIsSyksZ1sxNl0oMjIsSildKSksQikrND4+Mz09MyYmKFY9eiksNSkmUFswXSk9PTQmJihlWzQ0XSgyLHoudiksUlsxN10oNzksei52KSxLPWVbNDRdKDYsei52KT4+MyxWPXouaVlbS10oKSksVn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCgoYj1bImNhcHR1cmVTdGFja1RyYWNlIiwyNywhMF0sQikmYlsxXSk9PUIpe2lmKEVycm9yW2JbMF1dKUVycm9yW2JbMF1dKHRoaXMsTlApO2Vsc2UgaWYoSj1FcnJvcigpLnN0YWNrKXRoaXMuc3RhY2s9Sjt0aGlzLk09KCh6JiYodGhpcy5tZXNzYWdlPVN0cmluZyh6KSksSykhPT12b2lkIDAmJih0aGlzLmNhdXNlPUspLGJbMl0pfXJldHVybihCXjM4KT4+M3x8KEM9eiksQ31dfSgpLEc9ZnVuY3Rpb24oKXtyZXR1cm5bZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEIrND4+CjM9PSgoSj1bMSwicHVzaCIsOF0sQis3JjI4KTxCJiYoQitKWzJdXjIpPj1CJiYocEsubGVuZ3RoPj0xMDAmJllbNDhdKDE3LDEwLEpbMF0pLHBLW0pbMV1dKHopKSxKWzBdKSYmKEs9ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyh6KSkpLEt9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKChCPDwodj1bMSwyLCJwdXNoIl0sdilbMF0mMTEpPT12WzFdJiYocD1ZWzE5XSg0LHosSykpLEI8PHZbMV0mNykpe2ZvcihDPVJlZ0V4cCgiKFtBLVpdW1xcdyBdKykvKFteXFxzXSspXFxzKig/OlxcKCguKj8pXFwpKT8iLHopLEE9W107Yj1DLmV4ZWMoSik7KUFbdlsyXV0oW2JbdlswXV0sYlt2WzFdXSxiW0tdfHx2b2lkIDBdKTtwPUF9aWYoKEItdlsxXSY1KT09dlswXSl7Zm9yKEM9KEo9Z1sxMl0oNCxLKSxKLm5leHQoKSk7IUMuZG9uZSYmei5hZGQoQy52YWx1ZSk7Qz1KLm5leHQoKSk7cD16fXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoKCgoKChwPQpbImFUIiwiZGVsZXRlIiwidiJdLChCJjc2KT09QikmJihDPURbOF0oOTQsSyksQyE9bnVsbCYmQyE9bnVsbCYmKGJOKEMpLERbMjJdKDYzLDAseixKKSxrWzE0XSgxNywxMjgseltwWzJdXSxDKSkpLEI+PjIpJjd8fChKPW5ldyBLLE9bMTRdKDMyLHosSltwWzBdXSksUT1KKSxCKXw0MCk9PUImJihiPUtbcFsyXV0uZ2V0KHopLCFifHxiLlB6fHxiLlptPmIuS18/KGImJihZWzBdKDE1LEsuWCxKLG5tLGIuR3EpLEtbcFsyXV0ucmVtb3ZlKHopKSxDPUsuTSxDW3BbMl1dW3BbMV1dKEopJiZDLkFLKEopKTooYi5abSsrLEouc2VuZChiLkN1KCksYi5MWCgpLGIuVmUoKSxiLlIwKCkpKSksQil8MTYpPT1CKXtmb3IoYj1DLnNwbGl0KCh2PUssQT1bXSxKKSk7dj56JiZiLmxlbmd0aDspQS5wdXNoKGIuc2hpZnQoKSksdi0tO1E9KGIubGVuZ3RoJiZBLnB1c2goYi5qb2luKEopKSxBKX1yZXR1cm4gUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKCgoeD1bInYiLAo0OCwiRCJdLEIrNCleNCk+PUImJihCKzVeNyk8Qil7aWYoQyBpbnN0YW5jZW9mIE1hcClmb3IoWj17fSx2PWdbMTJdKDksQykscD12Lm5leHQoKTshcC5kb25lO3A9di5uZXh0KCkpVz1nWzEyXSgzLHAudmFsdWUpLFE9Vy5uZXh0KCkudmFsdWUsQT1XLm5leHQoKS52YWx1ZSxaW1FdPUE7ZWxzZSBaPUM7KGI9KG49WixuZXcgcXEpLFpoLnB1c2goYiksZylbNDNdKDEsITAsalosYixiW3hbMl1dKSxiLnNlbmQoeixLLEosbil9cmV0dXJuKEJeMzUpPj4oKEItNXx4WzFdKT49QiYmQi05PDwyPEImJihuUS5jYWxsKHRoaXMseiksdGhpc1t4WzBdXT1udWxsLHRoaXMuWD1PWzJdKDMxLFdrLGRvY3VtZW50KSksKEImODgpPT1CJiYodj16LGIuWCYmKEE9Yi5BKCkqLjIsdj1kMCgoQy1BKSpiW3hbMF1dKSxiW3hbMF1dPGIuTSYmKGJbeFswXV0qPUssYlt4WzBdXT5iLk0mJihiW3hbMF1dPWIuTSkpKSxiLlg9SixOPXYpLDQpfHwoTj16JiZlWzI0XSg3OSx6Lnc3KSksTn0sZnVuY3Rpb24oQiwKeixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKEI+PjImKChCLShOPVsidG9TdHJpbmciLDUsMTNdLDMpfDIyKT49QiYmKEIrMV4yNSk8QiYmKHA9WzEsOSxudWxsXSxLLnYmJihuPUdbMzZdKDIscFswXSx6LEoudixKLlgpLEogaW5zdGFuY2VvZiBsRiYmKGI9eVtOWzJdXSgzLCEwLHBbMF0sSi5pW05bMF1dKCksbiksZVs0M10oNjEsYixKLlIsOCkpLEhbMF0oNTEsbixwWzFdLEouQSksSi5BPTAsQT1uZXcgdmssdj1nWzFdKDY3LHBbMl0sVHQsQSksUT15W05bMl1dKDgsITAscFswXSxDW05bMF1dKCksdiksWj1lW05bMl1dKDIwLHBbMl0sVkQsMixwbSxRLG4pLEhbMF0oNDksWix6LEsudi5zbCksSy52LmNoYW5uZWwuc2VuZChBKSkpLE5bMV0pKT09MSl7aWYoSzx6KXRocm93IEVycm9yKCk7aWYoKGI9KEM9Si52LEMrSyksYik+Si5YKXRocm93IEVycm9yKCk7KFc9QyxKKS52PWJ9cmV0dXJuIFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKFc9Cls3LDEsNF0sQis5Pj4zPj0wKSYmQitXWzBdPj5XWzJdPDIpYTp7aWYobVs0NV0oOSxKLEspfHxrWzE3XSg1LHopKXtOPW5ldyBncSgwLCIiLDApO2JyZWFrIGF9Zm9yKFo9KGI9KEE9WWooKSxPWzE2XShXWzFdLEMpKSx2PW5ldyBOXyxnWzEyXSgxMSxiKSksbj1aLm5leHQoKTshbi5kb25lJiZ2LmFkZChuLnZhbHVlKTtuPVoubmV4dCgpKTtOPShRPShwPXYudG9TdHJpbmcoKSxZaigpLUEpLG5ldyBncShiLmxlbmd0aCxwLFEpKX1yZXR1cm4gTn0sZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oQi00JigoQi0zJjExKT09KEItKCgoQz1bIkEiLDE1LCJNIl0sQik+PjEmMTQpPj0zJiZCLTg8NiYmTEQuY2FsbCh0aGlzLDEyNzgsMjIsWzJdKSwzKSZDWzFdfHwoej1NYXRoLnJhbmRvbSx0aGlzW0NbMF1dPXosdGhpc1tDWzJdXT01MTJFMyx0aGlzLmk9NTAwLHRoaXMucmVzZXQoKSksMykmJihKPW5ldyB6aChmdW5jdGlvbihiLEEsdixwKXtmb3Iodj1LW09NXSgpOyFiLmNsb3NlZDspQT0Kdi5uZXh0KCkscD1BLnZhbHVlLEEuZG9uZT9iLmNvbXBsZXRlKCk6Yi5uZXh0KHApO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlWzI0XSg4Mix2PT16P3ZvaWQgMDp2LnJldHVybikmJnYucmV0dXJuKCl9fSkpLENbMV0pKT09MyYmKExELmNhbGwodGhpcywxOTk0LDI2KSx0aGlzLlg9dGhpcy5WPS0xLHRoaXMuaT10aGlzW0NbMl1dPS0xLHRoaXNbQ1swXV09LTEsdGhpcy5XPWdbN10oNyksdGhpcy5DPWdbN10oMzYpKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoISgoKHY9WzEsIlUiLCJjYWxsIl0sQiYxMDcpPT1CJiYoeDFbdlsyXV0odGhpcyksdGhpcy5kZXN0aW5hdGlvbj16LHRoaXMuc291cmNlPUspLEJeNykmMTMpKXtpZigoYj0oQT1bIlsiLCI6IiwoSj10eXBlb2YgSywiXSIpXSwiIiksSik9PT0ib2JqZWN0Iilmb3IoQyBpbiBLKWIrPUFbMF0rSitBW3ZbMF1dK0MrR1s3XSgzNyxBWzJdLEtbQ10pK3o7ZWxzZSBiPUo9PT0iZnVuY3Rpb24iP2IrKEFbMF0rCkorQVt2WzBdXStLLnRvU3RyaW5nKCkreik6YisoQVswXStKK0FbdlswXV0rSyt6KTtwPWIucmVwbGFjZSgvXHMvZywiIil9cmV0dXJuKEJ8NDApPT0oKChCJjkxKT09QiYmKHA9SFs4XSgzMiw0OTg1KShKKERoLDM2KSwxMCkpLEItNiYxMik8MyYmQjw8dlswXT49LTU3JiYoej1bbnVsbCwhMSwwXSx0aGlzLkM9elsyXSx0aGlzLlg9dm9pZCAwLHRoaXNbdlsxXV09elt2WzBdXSx0aGlzLk09dlswXSx0aGlzLmw9elswXSx0aGlzLlc9elswXSx0aGlzLkg9elswXSx0aGlzLk89elsyXSksQikmJih0aGlzLnY9Sz4+PjAsdGhpcy5NPXo+Pj4wKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKEJ8KFo9WzIzLCJjYWxsIiwxOV0sKEJ8MSk8WlsyXSYmQj4+MT49MyYmKEM9dzkuZ2V0KCksQy5NPUosQy5pPUssQy5YPXosVz1DKSw0OCkpPT1CJiYoVz1iTihBZSgpKnopKSxCJjczKT09QilMRFtaWzFdXSh0aGlzLDc3OSwxMSxbMl0pO2lmKChCLTEmMTUpPj0zJiYKKEJeNDApPFpbMF0pYTppZihiPVswLG51bGwsMl0sQXJyYXkuaXNBcnJheShKKSl7aWYoKG49SltBJF18YlswXSxuKSY0KXtXPUo7YnJlYWsgYX1mb3IoQT0oUT1iWzBdLGJbMF0pO1E8Si5sZW5ndGg7USsrKXY9SyhKW1FdKSx2IT1iWzFdJiYoSltBKytdPXYpO1c9KChwPShBPFEmJihKLmxlbmd0aD1BKSxufHopLEMmJihwPShwfDQpJi0xNTM3KSxwIT09biYma1szOF0oNzcsSixwKSxDKSYmcCZiWzJdJiZUSihKKSxKKTticmVhayBhfXJldHVybihCPj4yJjExKT09MyYmKFc9KEo9eVsyNl0oNTQsTnAsSykpJiZKLmxlbmd0aCE9PTA/Slt6XTpLLmRvY3VtZW50RWxlbWVudCksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgodj1bOCwidiIsMTVdLEI+PjEpPDEyJiYoQj4+MSZ2WzJdKT49NyYmKEs9Ult2WzBdXSg2MSx0aGlzKSx6PWtbMjFdKDcsdGhpcyksdGhpcy54SltLXT10eXBlb2YgeiksQnw1Nik9PUIpe0pbdlsxXV09PW51bGx8fEpbdlsxXV0ucnp8fHlbMzNdKDQ3LAp6LEMpIT09MTR8fEouRisrO3RyeXtKLkEubmV4dChDKX1jYXRjaChRKXt9Zm9yKGI9Z1sxMl0oMTEsSi5zdHJlYW1zLnZhbHVlcygpKSxBPWIubmV4dCgpOyFBLmRvbmU7QT1iLm5leHQoKSlBLnZhbHVlLkE9S31pZigoQiY5MSk9PUIpYTpzd2l0Y2goQT1bMCwyMjQsOTFdLGIpe2Nhc2UgQzpwPTE4NzticmVhayBhO2Nhc2UgSzpwPUo7YnJlYWsgYTtjYXNlIDE3MzpwPXo7YnJlYWsgYTtjYXNlIEFbMV06cD1BWzJdO2JyZWFrIGE7Y2FzZSBBWzBdOnA9QVsxXTticmVhayBhO2RlZmF1bHQ6cD1iO2JyZWFrIGF9cmV0dXJuIEI8PDEmNnx8KHA9SiYmSi5KWT9KLkpZW3pdfHxLOkspLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCgoKCgoUT1bMiw5LG51bGxdLEItNDw8MTxCKSYmKEIrOCY0MSk+PUImJihLPVsiQW5kcm9pZCIsIkZ4aU9TIiwiQ3JpT1MiXSxwPURbMjBdKDMzLHopJiYhKGtbMjNdKDUsS1tRWzBdXSl8fChtWzIyXSgyOCk/MDpEWzIwXSgzOSwiQ29hc3QiKSl8fApnWzhdKDIxLCJPcGVyYSIpfHxrWzE3XSgxLCJFZGdlIil8fHlbMjRdKDQ4LCEwKXx8KG1bMjJdKDI5KT9nWzI4XSgxMCwhMCwkSik6RFsyMF0oNSwiT1BSIikpfHxPWzM3XShRWzFdLEtbMV0pfHx5WzQ1XSgyMCwiU2lsayIpfHxEWzIwXSgxLEtbMF0pKSksQik8PDE+PVFbMF0mJihCXjU0KTwyMiYmVC5jYWxsKHRoaXMseiksQnw4MCk9PUImJihwPUshPVFbMl0mJksuTmo9PT16KSxCKT4+UVswXSYxNCk+PVFbMF0mJihCfDgpPj40PDEpe2lmKEdbMzZdKDEyLCh2PVs0LDNFNCw5XSwwKSwxOCxLLGZtLGwpKXRyeXtBPUdbMzldKDczLFJbNDhdKDczLEssZm0sMTgsbCkpLGI9ZU4oQSksSi5pPUoudi52Lmo5KG5ldyBvNihiKSx2WzFdKSxKLmkmJnR5cGVvZiBKLmkuY2F0Y2g9PT0iZnVuY3Rpb24iJiZKLmkuY2F0Y2goZnVuY3Rpb24oKXt9KX1jYXRjaChuKXtKLmk9UHJvbWlzZS5yZXNvbHZlKG5ldyBMbSh2b2lkIDAsOCwwLDAsW10pKX1pZihnWzE2XSgyNixsLEssNikhPVFbMl0pSi52LnYub25FcnJvcihLLnMzKCkpOwplbHNlIFlbMTldKDM2LHosSykmJkoudi52LmJSKCksa1s0N10oNDEsSixLLlUzKCkpLEsueG4oKSYmZ1syMF0oMTYsMSxLLnhuKCkpLEsuenUoKSYmT1szNl0oUVsxXSwwLEsuenUoKSksKDAsdCQueTUpKEouQy5iaW5kKEosUlsyNl0oMTMsSyw1LGwpLFJbMjZdKDIwLEssdltRWzBdXSxsKSxSWzQ4XSg3MCxLLHFGLHZbMF0sbCksZVsyNl0oNCxRWzJdLEsuVkEoKSksISFDKSw4KSxSWzQ4XSg3NSxLLFNkLDcsbCkmJk9bMzRdKDEwLEosUls0OF0oNzEsSyxTZCw3LGwpKX1yZXR1cm4oQiY4OSk9PUImJihDJT0xRTYsYj1kMChBZSgpKnopLHA9W2JdLmNvbmNhdChlWzMzXSgxMSxKLm1hcChmdW5jdGlvbihuLFope3JldHVybihuK0oubGVuZ3RoKyhDK2IpKihaK2IpKSVLfSkpKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtyZXR1cm4oQnwoKChCPj4oVz1bNSw3LDI5XSwyKSZXWzFdKT09MiYmKEs9Sz09PXZvaWQgMD9udWxsOkssTj17dGhlbjpmdW5jdGlvbih4LApmKXtyZXR1cm4oSyYmSyh4LGYpLEcpWzExXSgxMSx6LnRoZW4oeCxmKSl9LCJjYXRjaCI6ZnVuY3Rpb24oeCl7cmV0dXJuIEdbMTFdKDQzLHoudGhlbih2b2lkIDAseCksSyl9fSksKEJeNTMpPj1XWzJdKSYmQitXWzBdPj40PDEmJihaPUMuWUY9PT12b2lkIDA/dm9pZCAwOkMuWUYsUT1DLm9uTWVzc2FnZT09PXZvaWQgMD92b2lkIDA6Qy5vbk1lc3NhZ2Usdj1DLnlvLEE9Qy5WZD09PXZvaWQgMD92b2lkIDA6Qy5WZCxiPUMuZGVzdGluYXRpb24sbj1DLkVsLHA9Qy52RCxuZXcgUjYoZnVuY3Rpb24oeCxmLEwpe2IuYWRkRXZlbnRMaXN0ZW5lcihFeiwoTD1mdW5jdGlvbihyLFYpeyhWPVsiZGF0YSIsInNvdXJjZSIsJ1Rva2VuIG1pc21hdGNoIHdoaWxlIGVzdGFibGlzaGluZyBjaGFubmVsICInXSxyW1ZbMV1dJiZyW1ZbMV1dPT09cCgpJiZ2LnYoci5vcmlnaW4pKSYmKHJbVlswXV1bcnFdfHxyW1ZbMF1dKT09PW4mJihiLnJlbW92ZUV2ZW50TGlzdGVuZXIoRXosTCx6KSxBJiZyW1ZbMF1dW1ZpXSE9PQpBP2YoRXJyb3IoVlsyXStuKyciLiBFeHBlY3RlZCAnK0ErIiwgYnV0IHJlY2VpdmVkICIrcltWWzBdXVtWaV0rSikpOih4KGdbNl0oMSxRLHIucG9ydHNbS10pKSxaJiZaKHIpKSl9LEwpLHopfSkpLDI0KSk9PUImJihiZC5jYWxsKHRoaXMsa1s0N10oV1sxXSxHdCksZnVuY3Rpb24oKXt9LExLKCksbnVsbCxLKSxnWzM3XSg3Myx6LlQoKSx0aGlzKSx0aGlzLnRzPUhrKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZighKChCfChXPVsxNSwxMywxN10sNykpPj40KSlhOntpZigodj1DLmdldChBKSx2KSE9eil7Wj12O2JyZWFrIGF9Zm9yKFE9dj0wO1E8QS5sZW5ndGg7USsrKXA9QVtRXSxSWzE0XSg3MCx6LEoscCxLKSE9eiYmKHYhPT0wJiYoYj1ZWzI1XSg4Myx2b2lkIDAsdixiLEosSykpLHY9cCk7Wj0oQy5zZXQoQSx2KSx2KX1pZigoQnwxNik9PUIpYTp7aWYoSj1bMCw1LDZdLCFQSSl7Wj1DeCh6LEspO2JyZWFrIGF9dHJ5e2lmKChBPXogaW5zdGFuY2VvZgpSZXF1ZXN0P3oudXJsOnoudG9TdHJpbmcoKSxLKT09bnVsbD8wOksua2VlcGFsaXZlKXtpZihDPWQ0LmZpbmQoZnVuY3Rpb24oTil7cmV0dXJuIHlbMzhdKDY3LG51bGwsTixBKSE9PW51bGx9KSl7Yj1EWzIzXSg1Niw0LERbMjZdKDQ5LDExLEhbMzddKDI5LEpbMl0sT1tXWzBdXSgxMCwxMCxHWzQzXSg5MCwxLEpbMV0pLEM9PW51bGw/dm9pZCAwOihwPURbMzFdKDIxLG51bGwsQSxDKSk9PW51bGw/dm9pZCAwOnAuc3Vic3RyaW5nKEpbMF0sMTAwKSksQy52LlNLKSxDLnYub3JpZ2luKS55ZSgpLEMuTSksWj1EWzE0XSgyNSxudWxsLEsseixiKTticmVhayBhfVo9Q3goeixLKTticmVhayBhfWZvcihRPSh2PWdbMTJdKDYsZDQpLHYpLm5leHQoKTshUS5kb25lO1E9di5uZXh0KCkpaWYobj1IW1dbMl1dKFdbMV0sMTAwLDEsUS52YWx1ZSxBKSl7Wj1Qcm9taXNlLnJlc29sdmUobi50aGVuKGZ1bmN0aW9uKE4pe3JldHVybiBEWzE0XSg5LG51bGwsSyx6LE4pfSxmdW5jdGlvbigpe3JldHVybiBDeCh6LApLKX0pKTticmVhayBhfVo9Q3goeixLKTticmVhayBhfWNhdGNoKE4pe1o9Q3goeixLKTticmVhayBhfX1yZXR1cm4gWn0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBCPj4oKGI9WyJ0b1N0cmluZyIsMSw4XSxCK2JbMl0pPj5iWzFdPj1CJiYoQi1iWzJdXjkpPEImJihKPXosdHlwZW9mIEtbYlswXV09PT0iZnVuY3Rpb24iJiYoSj16K0spLEM9SitLW2VwKCldKSxiKVsxXSYzfHwoQz1SWzM4XSgzNyxuZXcgdUsobmV3IGFOKHopKSkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKCgoQl4zMSkmKGI9WzE2LDcsOV0sYilbMV18fChDPVJbMTNdKDIzLEhbMjVdKDU4LE9bYlsyXV0oMzEsMzUpLHopLFtnW2JbMF1dKDU0LEspLGdbYlswXV0oMjIsSildKSksQil8YlsyXSkmNCk8NCYmKEI+PjEmNSk+PTMmJihDPW5ldyBzcyh6JjQyOTQ5NjcyOTUsYk4oei80Mjk0OTY3Mjk2KSkpLEN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEE9W251bGwsInYiLDQ4XSwKQjw8MSYzMSk9PTQpe2ZvcihiPShDPUoucG9wKCksSy5NK0tbQVsxXV0ubGVuZ3RoKCktQyk7Yj56OylKLnB1c2goYiZ6fDEyOCksYj4+Pj03LEsuTSsrO0oucHVzaChiKSxLLk0rK31yZXR1cm4oKChCfDMpJjE1KT49KChCfEFbMl0pPT1CJiYoSz09ej9DLmkuY2FsbChDLlgsSik6Qy5NJiZDLk0uY2FsbChDLlgsSikpLChCLTheMjMpPEImJkIrNj4+MT49QiYmKHY9W10uY29uY2F0KGVbMzNdKDE5LE9iamVjdC52YWx1ZXMoUGspKSxlWzMzXSgxMSxPYmplY3QudmFsdWVzKCQxKSkpKSw1KSYmKEJeNDYpPDIxJiYodj1kb2N1bWVudC5ib2R5KSwoQisyXjEwKT49QikmJihCLTF8MjEpPEImJih0aGlzW0FbMV1dPUFbMF0sdGhpcy5NPUFbMF0sej10aGlzLEdsLnp6c21jPWZ1bmN0aW9uKHAsUSxuLFope3RyeXtuPXoudixaPWtbNDVdKDI1LHApLFE9cV8oWiksbihRKX1jYXRjaChXKXt6Lm9uRXJyb3IoMSl9fSxHbC56em1jcz1mdW5jdGlvbihwKXt0cnl7KDAsei5NKShuZXcgRnkoe3Zpc2libGU6cH0pKX1jYXRjaChRKXt6Lm9uRXJyb3IoMSl9fSksCnZ9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEIrMT4+KChCfDQwKSE9KEM9WyJvIiw2MSwzXSxCKXx8S1tDWzBdXXx8KEtbQ1swXV09eixnW0NbMl1dKDYyLEssTXEpLGdbQ1syXV0oQ1sxXSxLLGlaKSksQ1syXSk+PTAmJkItNzwxNSYmKHRoaXMuaT16LHRoaXMuY2xvc2VkPSExLHRoaXMuWD10aGlzLk09bnVsbCksQi02XjE2KT49QiYmKEIrNyY0Mik8QiYmKHRoaXMucmVxdWVzdD16KSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoQi0zPj4zPT0oKCgoQiY3Nyk9PSgodj1bNiw0MCw1OV0sQi05PDIwJiYoQjw8MiY5KT49OCkmJih6LnYoKSx0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLnYhPTMmJiF6LnRhcmdldC5ocmVmJiYoSz0hdGhpcy5JVCgpLGdbM10odlsyXSx0aGlzLEs/eWk6WTEpJiYoei5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuSGgoSykpKSksQikmJihwPVlbNDZdKHZbMV0sbnVsbCxmdW5jdGlvbihRLG4sWixXLE4seCxmLEwpe3JldHVybiBHWzEzXSgzMiwKZnVuY3Rpb24ocixWLFAscSxjLEUsUyl7aWYoci5NPT0oVj1bMTIsMywyXSxTPVsiZ2V0UmFuZG9tVmFsdWVzIiwiaW1wb3J0S2V5IiwxNl0sQykpe2lmKCFRKXRocm93IDE7cmV0dXJuIGM9UVsocT0oKFA9bmV3IChFPSgoZj0oTj1rWzM5XSg1OCwxOCxiKSxuZXcgVWludDhBcnJheSgxMikpLG4pW1NbMF1dKGYpLHIudiksWWkpLFApLnVwZGF0ZShBKSxuZXcgVWludDhBcnJheShQLmRpZ2VzdCgpKSksUylbMV1dKGNrKCkscSx7bmFtZTpTcCgpLGxlbmd0aDpxLmxlbmd0aH0sSyxbbVIoKSxsWigpXSksRS5jYWxsKHIsYyxWWzJdKX1pZihyLk0hPVZbMV0pcmV0dXJuIFo9ci5YLHIudihRLmVuY3J5cHQoe25hbWU6U3AoKSxpdjpmLGFkZGl0aW9uYWxEYXRhOm5ldyBVaW50OEFycmF5KDApLHRhZ0xlbmd0aDoxMjh9LFosbmV3IFVpbnQ4QXJyYXkoTikpLFZbMV0pO3JldHVybiBXPSh4PShMPXIuWCxuZXcgVWludDhBcnJheShMKSksbmV3IFVpbnQ4QXJyYXkoVlswXSt4Lmxlbmd0aCkpLApXLnNldChmLEopLFcuc2V0KHgsVlswXSksci5yZXR1cm4oZVtTWzJdXSg3MCx6LEVNLFcpKX0pfSkpLChCfHZbMV0pPT1CJiYoYj1lWzExXSgzNCwiIix6LEssSj9YSTp1Wiksa1syXSgxOSxZWzIzXSg1MixLKSxiLCQ0LFJ4KGZ1bmN0aW9uKCl7WVszNV0oMzIsdGhpcy51KCksIm92ZXJmbG93IiwidmlzaWJsZSIpfSxLKSksa1syXSgyMyxZWzIzXSg0OSxLKSxiLHF2LFJ4KGZ1bmN0aW9uKCl7Snx8WVszNV0oMzIsdGhpcy51KCksIm92ZXJmbG93IiwiIiksQyYmQygpfSxLKSkscD1iKSxCLXZbMF0pXjI1KT49QiYmKEIrNyYyMyk8QiYmKHA9ZnVuY3Rpb24oKXt2YXIgUT10aGlzLG49YXJndW1lbnRzO3JldHVybiBQYihmdW5jdGlvbigpe3JldHVybiBSWzMxXSgzMiwwLGZ1bmN0aW9uKCl7cmV0dXJuIEsuYXBwbHkoUSxuKX0sWEopfSx6KX0pLDMpKWE6e2lmKEsgaW5zdGFuY2VvZiBlVyl7cD1LLnY7YnJlYWsgYX10aHJvdyBFcnJvcih6KTt9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseiwKSyxKKXtpZigoQi05JihLPVs0MiwyLCJjYWxsIl0sOCkpPDMmJihCPDxLWzFdJjcpPj1LWzFdKVRbS1syXV0odGhpcyx6KTtpZigoQisxJktbMF0pPEImJihCKzFeOCk+PUIpVFtLWzJdXSh0aGlzLHopO3JldHVybiBKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQis2JigoQisoKEIrKCgoQT1bMCwibm93IiwiaiJdLEIpJjkwKT09QiYmKGI9bVszNV0oNTQsQVswXSx5WzldKDksMSx6KSxZaigpKSksMikmNyk9PTQmJlQuY2FsbCh0aGlzLHopLDkpPj40fHwoSj1bbnVsbF0sd0UuY2FsbCh0aGlzKSx0aGlzLmw9SltBWzBdXSx0aGlzLmk9eix0aGlzLlg9SltBWzBdXSx0aGlzLlI9SltBWzBdXSx0aGlzLkE9SltBWzBdXSx0aGlzW0FbMl1dPUssdGhpcy5GPUpbQVswXV0sdGhpcy52PUpbQVswXV0sdGhpcy5VPURhdGVbQVsxXV0oKSx0aGlzLlM9SltBWzBdXSx0aGlzLkM9SltBWzBdXSx0aGlzLkk9SltBWzBdXSksQnw1KT4+ND09NCYmKEs9ZGsuSigpLmdldCgpLGI9SFsyMV0oMzksCksseixsKSksMjcpKT09MiYmKEouWD1LLEoudiYmKEouUj16LEoudi5hYm9ydCgpLEouUj1LKSxKLk09NSxKLmk9QyxHWzE2XSg1NiwhMCxKKSxnWzE3XSgyMyxudWxsLEopKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZighKChCXjgpJigoQnw0OCk9PSgoQi0oUT1bMjcsMTYsNV0sNileMik8QiYmQis0Pj4xPj1CJiYocD1KLmxhc3RFbGVtZW50Q2hpbGQhPT12b2lkIDA/Si5sYXN0RWxlbWVudENoaWxkOkhbUVswXV0oNTcseixLLEoubGFzdENoaWxkKSksQikmJlQuY2FsbCh0aGlzLHopLFEpWzBdKSlrWzZdKDU4LHosSyxKKTtyZXR1cm4oKEJ8ODgpPT1CJiYoQz1DPT09dm9pZCAwP1N1OkMsQT1bITAsIkdldCBhIG5ldyBjaGFsbGVuZ2UiLCExXSxiPWI9PT12b2lkIDA/bnVsbDpiLG5RLmNhbGwodGhpcyksdGhpcy5CMT1DLHRoaXMuZnE9Six0aGlzLnJiPW5ldyBibSh6LEspLHRoaXMuTXk9Qz09YWcsdGhpcy5XPW51bGwsdGhpcy5YQz1DPT1TdSx0aGlzLmRWPQpDPT1RYix0aGlzLnBnPUM9PVVrLHRoaXMuUj10aGlzLnJiLHRoaXMucmVzcG9uc2U9e30sdGhpcy5rVz1iLHRoaXMua0o9W10sdj1IWzNdKDQsQVsyXSksdGhpcy5wcT1EWzQxXSg0MCxRWzFdLHY/YTY6aHUsZHEsazEsQVsxXSx2b2lkIDAsdGhpcyksdGhpcy5JPURbNDFdKDEsUVsxXSx2P3R1OlVNLE1fLGsxLCJHZXQgYW4gYXVkaW8gY2hhbGxlbmdlIix2b2lkIDAsdGhpcyksdGhpcy5ucT1EWzQxXSgzMyxRWzFdLHY/d3E6STYsRkksazEsIkdldCBhIHZpc3VhbCBjaGFsbGVuZ2UiLHZvaWQgMCx0aGlzKSx0aGlzLkc9RFs0MV0oMSxRWzFdLEJzLHN4LGsxLCJHZXQgYSBsaXZlbmVzcyBjaGFsbGVuZ2UiLHZvaWQgMCx0aGlzKSx0aGlzLmlZPURbNDFdKDQxLFFbMV0sengsS2osazEsIlZlcmlmeSB3aXRoIG1vYmlsZSIsdm9pZCAwLHRoaXMpLHRoaXMuSkw9RFs0MV0oOSxRWzFdLHY/Sm86Q2osYmosazEsIkhlbHAiLHZvaWQgMCx0aGlzLEFbMF0pLHRoaXMuRmc9RFs0MV0oMzIsUVsxXSwKdj9Bbzp2cyxUeCxrMSwiVW5kbyIsdm9pZCAwLHRoaXMsQVswXSksdGhpcy5vPVJbMTJdKDMsUVsxXSwiVmVyaWZ5Iix0aGlzLGozKSx0aGlzLmxZPW5ldyBwaiksKEItUVsyXV5RWzJdKT49QikmJkIrMT4+MjxCJiYocD1URCgnRHJhdyBhIGJveCBhcm91bmQgdGhlIG9iamVjdCBieSBjbGlja2luZyBvbiBpdHMgY29ybmVycyBhcyBpbiB0aGUgYW5pbWF0aW9uICBhYm92ZS4gSWYgbm90IGNsZWFyLCBvciB0byBnZXQgYSBuZXcgY2hhbGxlbmdlLCByZWxvYWQgdGhlIGNoYWxsZW5nZS4gPGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vcmVjYXB0Y2hhIiB0YXJnZXQ9Il9ibGFuayI+TGVhcm4gbW9yZS48L2E+JykpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKEJeOCkmNyk9PSgoQT1bImNoYXJDb2RlQXQiLDMsMjRdLEIpLTQ8PDE8QiYmKEIrNiYzMCk+PUImJiFKLnYmJiFKLlcmJihKLmtKPTEsZVs1XSgxMCx6LEouekosSiksSi5tPUspLDEpJiYoYj1LIT09Cm51bGwmJnogaW4gSz9LW3pdOnZvaWQgMCksQi1BWzFdXjgpPEImJihCLTZeQVsyXSk+PUIpYTp7Zm9yKEM9KEo9UUgoRGF0ZSksMCk7QzxKLmxlbmd0aDtDKyspaWYoSltDXS5sZW5ndGg9PUFbMV0mJkpbQ11bQVswXV0oLTEpPT16KXtiPUpbQ107YnJlYWsgYX1iPUt9cmV0dXJuIGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihCJigoQi02JihRPVsiTyIsMzIsInYiXSw3KSk9PTEmJihKPUo9PT12b2lkIDA/bmV3IG5qKDAsMCwwLDApOkosdltRWzJdXXx8dltRWzBdXSh2b2lkIDAsQT09PXZvaWQgMD8hMTpBKSx2LkY9Snx8bmV3IG5qKDAsMCwwLDApLGJbbmYoKV09Wk0oKSxiW1dzKCldPWc2K3Yuaix2LlI9SFsyMF0oUVsxXSx6LGIsQyksWVs0N10oMzYsSyx2KS5hcHBlbmRDaGlsZCh2LlIpKSwyNikpPT1CJiYodGhpc1tRWzJdXT16KSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKChCfChCLShRPVszLCJ4SiIsMzJdLFFbMF0pJjZ8fAooSz1SWzhdKDU3LHRoaXMpLHo9a1syMV0oNSx0aGlzKSx0aGlzW1FbMV1dW0tdPXopLFEpWzJdKT09QilHWzEzXSgxNixmdW5jdGlvbihaLFcsTil7Vz1bNSwoTj1bNDAwLDU2LCJBQSJdLG51bGwpLDFdO3N3aXRjaChaLk0pe2Nhc2UgV1syXTpyZXR1cm4gcD0hMSxaLkEoMiksWi52KGIuWCw0KTtjYXNlIDQ6cmV0dXJuIHY9Wi5YLHA9ISghQ3x8SiksWi52KHYuc2VuZCh1ViksV1swXSk7Y2FzZSBXWzBdOkRbMTBdKE5bMV0seixOW0E9Wi5YLDBdLHAsQVtOWzJdXSxBLnVSLGIsQS5TSSxBLkpyKSxaLkYoeik7YnJlYWs7Y2FzZSAyOlouaSgpLERbMTBdKDU3LHosTlswXSxwLEssV1sxXSxiLFtdLFtdKSxaLlIoKX19KTtyZXR1cm4oQisxJjcpPj02JiZCLTc8MjImJihuPXopLG59LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gQisoKGI9WzI2LDEzLDg2XSxCJmJbMF0pPT1CJiYoQz1SW2JbMV1dKDEyLEhbMjVdKDQzLE9bOV0oYlswXSwxMCkseiksW2dbMTZdKGJbMl0sSyksZ1sxNl0oNzAsCkopXSkpLDcpPj40fHwoQz1KKEsoKSwzMyxOYygpKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZigoQiYoKEJ8KEw9KChCPj4yJjcpPT0xJiYoej1TdHJpbmcoeiksSy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoej16LnRvTG93ZXJDYXNlKCkpLGY9Sy5jcmVhdGVFbGVtZW50KHopKSxbNTksMCwyOF0pLDgwKSk9PUImJih4PVsxMCwxLCExXSxDPUM9PT12b2lkIDA/dEY6QyxBPWdbMjZdKDI2LExSLkooKSx6KSxaPWdbMTJdKDYsQSksVz1aLm5leHQoKS52YWx1ZSxOPVoubmV4dCgpLnZhbHVlLGI9SFsxNV0oNzIseFtMWzFdXSksUT1nWzddKDM2KSx2PWdbN10oNSksbj1bdkkoTixIWzE1XSgzMix4WzFdKSxLLGIpLEhbNDRdKDQzLFcpLFlbTFsxXV0oTFsyXSxRLE9bMjVdKDcsTiksT1syNV0oOSxXKSksUlsxOV0oNjUsVyxIWzE1XSg0OCw1KSxOKSxHWzE0XSg3LFcsT1syNV0oMSxXKSxMWzFdKSxZW0xbMV1dKExbMl0sClEsT1syNV0oNSxXKSxMWzFdKSx2SShOLEhbMTVdKDQwLDcpLFcpLFlbTFsxXV0oTFsyXSxRLE9bMjVdKDksTikseFsyXSksUlsxOV0oMzIsTixiLEspLFlbTFsxXV0oMjcsUSxPWzI1XSgzLE4pLHhbMl0pLHZJKE4sSFsxNV0oNTYseiksSyksWVtMWzFdXSgyNSx2LE9bMjVdKDMsTiksT1syNV0oMSxKKSksUSxIWzQ0XSg0MixLKSxIWzQ0XSg1NSxXKSxIWzQ0XShMWzBdLE4pLFlbTFsxXV0oMjUsQyx4WzFdLHhbMV0pLHYsSFs0NF0oNDIsVyksSFs0NF0oNDIsTildLChwPUxSLkooKSkudi5hcHBseShwLGVbMzNdKDQsQSkpLGY9biksMTA5KSk9PUIpaWYoSj1bMUU2LDAsMzJdLEsubGVuZ3RoPHopa1sxMl0oMTQsSlsxXSxOdW1iZXIoSykpO2Vsc2UgaWYoZ1syMl0oNTUpKXA9QmlnSW50KEspLE9PPU51bWJlcihwJkJpZ0ludCg0Mjk0OTY3Mjk1KSk+Pj5KWzFdLHhPPU51bWJlcihwPj5CaWdJbnQoSlsyXSkmQmlnSW50KDQyOTQ5NjcyOTUpKTtlbHNle2Zvcih2PShuPSh4Tz1KW2I9Sy5sZW5ndGgsCjFdLEpbMV0rKEM9KyhLW09PPUpbMV0sSlsxXV09PT0iLSIpLEMpKSwoYi1DKSU2KStDO3Y8PWI7bj12LHYrPTYpT089T08qSltMWzFdXStOdW1iZXIoSy5zbGljZShuLHYpKSx4Tyo9SltMWzFdXSxPTz49NDI5NDk2NzI5NiYmKHhPKz1NYXRoLnRydW5jKE9PLzQyOTQ5NjcyOTYpLHhPPj4+PUpbMV0sT08+Pj49SlsxXSk7QyYmKFE9Z1sxMl0oMSxHWzMxXSgzOCwxLHhPLE9PKSksQT1RLm5leHQoKS52YWx1ZSx4Tz1RLm5leHQoKS52YWx1ZSxPTz1BKX1pZigoQi01XjExKTxCJiYoQisyXjE4KT49QilhOntpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWwhPT0idW5kZWZpbmVkIil7KEo9Qz0oYj1uZXcgTWVzc2FnZUNoYW5uZWwse30pLGJbT3goKV0pLm9ubWVzc2FnZT1mdW5jdGlvbihyKXtDLm5leHQhPT12b2lkIDAmJihDPUMubmV4dCxyPUMucUksQy5xST16LHIoKSl9LGY9ZnVuY3Rpb24ocil7YltKLm5leHQ9e3FJOnJ9LEo9Si5uZXh0LHhYKCldLnBvc3RNZXNzYWdlKEspfTticmVhayBhfWY9CmZ1bmN0aW9uKHIpe0dsLnNldFRpbWVvdXQocixLKX19cmV0dXJuKEImMzApPT1CJiYoZzBbNl0oNyxmdW5jdGlvbihyLFYpe3RoaXMuVy5oYXNPd25Qcm9wZXJ0eShWKSYmUlsxNl0oMTcscil9LHouVyx6KSx6Llc9e30pLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYoKChCXjM4KSY3KT09KFE9WzE3LCJjYWxsIiwxXSxRKVsyXSlUW1FbMV1dKHRoaXMseik7aWYoKEImNTcpPT1CKWE6e2lmKChwPShnWzQxXSg0OSxDKSx2PUMuYVQsdltBJF18MCksSik9PW51bGwpaWYoQT1SWzQ1XSg2LG51bGwsdiksR1sxMl0oUVsyXSxudWxsLHYsYixBLHAseik9PT1LKUEuc2V0KHosMCk7ZWxzZXtuPUM7YnJlYWsgYX1lbHNlIHA9WVszN10oNDgscCxLLGIsdix6KTtZWzI1XShRWzBdLEosSyxwLGIsdiksbj1DfXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoQi0oeD1bImNhbGwiLDIsNl0seClbMV0+PjM9PTEpVFt4WzBdXSh0aGlzLAp6KTtpZigoKEI+PnhbMV0meFsyXXx8KE49R1sxM10oOSxmdW5jdGlvbihmLEwscil7TD1bMTAsKHI9WyExLDMsNF0sMiksMUU0XTtzd2l0Y2goZi5NKXtjYXNlIHo6aWYoIWIuWCl0aHJvdyBFcnJvcigiY291bGQgbm90IGNvbnRhY3QgcmVDQVBUQ0hBLiIpO2lmKCFiLk0pcmV0dXJuIGYucmV0dXJuKEhbMV0oNjksMCxMWzFdKSk7cmV0dXJuIGYuQShMWzFdKSxmLnYoYi5YLHJbMl0pO2Nhc2UgclsyXTpmLkYoKFc9Zi5YLHIpWzFdKTticmVhaztjYXNlIExbMV06dGhyb3cgZi5pKCksRXJyb3IoImNvdWxkIG5vdCBjb250YWN0IHJlQ0FQVENIQS4iKTtjYXNlIHJbMV06cmV0dXJuIHY9e30scD0odltGeF09Yi52LHYpLGYuQShKKSxmLnYoVy5zZW5kKGxWLHAsTFsyXSksQyk7Y2FzZSBDOnJldHVybiBRPWYuWCxaPW5ldyBBTShRKSxBPVouczMoKSxuPVouYXUoKSxiLnY9WVszNF0oNixMWzFdLFopLGIudiYmQSE9TFsxXSYmQSE9SyYmQSE9TFswXSYmbj9iLmk9bmV3IERNKG4pOmIuTT0KclswXSxmLnJldHVybihIWzFdKDcwLDAsQSxaLmRIKCkpKTtjYXNlIEo6dGhyb3cgZi5pKCksRXJyb3IoImNoYWxsZW5nZUFjY291bnQgcmVxdWVzdCBmYWlsZWQuIik7fX0pKSxCKXw0MCk9PUIpVFt4WzBdXSh0aGlzLHopO3JldHVybiBOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe2lmKChCLShMPVszLDIsNF0sKEItTFsxXXw5KTxCJiZCLTc8PDE+PUImJih2ei5jYWxsKHRoaXMpLGVbMjRdKDUxLHopfHwhej9DPXtuZXh0OnohPW51bGw/ejp2b2lkIDAsZXJyb3I6SyE9bnVsbD9LOnZvaWQgMCxjb21wbGV0ZTpKIT1udWxsP0o6dm9pZCAwfTpDPXosdGhpcy5kZXN0aW5hdGlvbj1uZXcgZmooQykpLEwpWzFdJjcpPT1MWzFdKWE6e2lmKCgoeD1bMCxudWxsLCEwXSxvMikoKSxRPXhbMV0sSikudj09QylPWzEwXSgyMix4WzFdLEopLERbMjldKDMyLHhbMV0sSiksSi52PXhbMV0sdj1MWzFdO2Vsc2UgaWYoR1s0NV0oNTUsSi5YLEMpKVE9Qy5VLFlbMzldKDMyLAp4WzFdLEouWCxDKSx2PTE7ZWxzZXtmPXZvaWQgMDticmVhayBhfWlmKEouTSE9eFswXSlpZihDLlIpaWYodj09MSlwPUMubD9DLmwubGVuZ3RoOjAsVz1EYXRlLm5vdygpLUMuUCxuPUouVSxaPWdbMjNdKDQ2KSxnW0xbMF1dKDUzLFosbmV3IExqKFoscCxXLG4pKSxrWzI0XSg1LHhbMF0sSik7ZWxzZSBHWzIxXShMWzBdLHhbTFsxXV0seFswXSxKKTtlbHNle2lmKChBPShOPUMuRixDLkcpLE49PUxbMF0pfHxOPT14WzBdJiZBPnhbMF0pUjIoKSxBPjIwMCYmKEouRE09Qy5HKTtlbHNle2lmKHY9PTEmJk9bMzJdKDI4LHhbTFsxXV0sITEsTFsxXSwxLEosQyl8fHY9PUxbMV0mJkRbOV0oMSwhMSxKKSl7Zj12b2lkIDA7YnJlYWsgYX1yNigpfShRJiZRLmxlbmd0aD54WzBdJiYoYj1KLlgsYi5YPWIuWC5jb25jYXQoUSkpLFZIKSgpO3N3aXRjaChOKXtjYXNlIDE6ZVsxXSgyNix4WzBdLDUsSik7YnJlYWs7Y2FzZSBLOmVbMV0oMjUseFswXSwxMCxKKTticmVhaztjYXNlIExbMF06ZVsxXSg1OSwKeFswXSx6LEopO2JyZWFrO2RlZmF1bHQ6ZVsxXSg1Nyx4WzBdLExbMV0sSil9fX1pZigoQi01JjE0KTxMWzFdJiYoQnxMWzBdKT49OCl7aWYoQz0oKHA9KFE9KGI9KEp8fChKPXt9KSxbNCwiIiwiIG1vcmUgaW5uZXIgZXJyb3JzIl0pLEpbR1sxM10oTFsxXSxiWzFdLEspXT0hMCxLW2VwKCldfHxiWzFdKSxLLmNhdXNlKSkmJiFKW0dbMTNdKExbMF0sYlsxXSxwKV0mJihRKz0iXG5DYXVzZWQgYnk6ICIscC5zdGFjayYmcC5zdGFjay5pbmRleE9mKHAudG9TdHJpbmcoKSk9PTB8fChRKz10eXBlb2YgcD09PSJzdHJpbmciP3A6cC5tZXNzYWdlKyJcbiIpLFErPUdbMjhdKDIyLCJcbi4uLiAiLHAsSikpLEsuZXJyb3JzKSxBcnJheS5pc0FycmF5KEMpKXtmb3Iodj0oQT0xLDApO3Y8Qy5sZW5ndGgmJiEoQT5iWzBdKTt2KyspSltHWzEzXShMWzJdLGJbMV0sQ1t2XSldfHwoUSs9IlxuSW5uZXIgZXJyb3IgIitBKysgKyI6ICIsQ1t2XS5zdGFjayYmQ1t2XS5zdGFjay5pbmRleE9mKENbdl0udG9TdHJpbmcoKSk9PQowfHwoUSs9dHlwZW9mIENbdl09PT0ic3RyaW5nIj9DW3ZdOkNbdl0ubWVzc2FnZSsiXG4iKSxRKz1HWzI4XSgyMSwiXG4uLi4gIixDW3ZdLEopKTt2PEMubGVuZ3RoJiYoUSs9eisoQy5sZW5ndGgtdikrYltMWzFdXSl9Zj1RfXJldHVybiBmfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oQnwoKCgoQl4oYj1bNiwiWCIsImZyb21DaGFyQ29kZSJdLGJbMF0pKTwyNSYmQis5Pj0xOSYmKEd4PT16JiYoR3g9InBsYWNlaG9sZGVyImluIEdbMjVdKDM4LGQ1LGRvY3VtZW50KSksQT1HeCksKEI8PDImMTYpPDUmJihCKzcmNSk+PTMpJiYoSz1bXSx6W2JbMV1dLmRRLkRuLk50LmZvckVhY2goZnVuY3Rpb24odixwKXt2LnNlbGVjdGVkJiZLLnB1c2gocCl9KSxBPUspLEJ8Myk8MjMmJkI8PDI+PTEyJiYoYmQuY2FsbCh0aGlzLGtbMThdKGJbMF0sSHMpLGZ1bmN0aW9uKCl7fSxMSygpKSxHWzQxXSgzOSwxNCxtWzE5XSg0NCwxLE9bNDZdKDU2LG51bGwsMCx6KSkpLGdbMzddKDc1LHouVCgpLAp0aGlzKSx0aGlzLnRzPUhrKSw0MCkpPT1CJiYoQz1TdHJpbmdbYlsyXV0uYXBwbHkoeixLKSxBPUo9PXo/QzpKK0MpLEF9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoKEItN14oSj1bMSw0Niw4XSwyMykpPj1CJiYoQi1KWzJdfDMpPEIpdHJ5e1JbSlsxXV0oSlswXSxKWzBdLHopLnJlbW92ZUl0ZW0oSyl9Y2F0Y2goYil7fXJldHVybihCKzYmSlsyXSk8SlsyXSYmQjw8SlswXT49MjcmJih0aGlzLnZhbHVlPXosdGhpcy52PSEhSyksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKEJ8ODApPT0oKEImNTgpPT0oQi0yJigoQisoKEImKFo9WyJub3ciLCJDIiwyNV0sMjkpKT09QiYmKFc9ZTNbWlswXV0oKSksOSleMjIpPEImJihCLTZeMjkpPj1CJiZ0aGlzW1pbMV1dJiYoej10aGlzW1pbMV1dLEo9ZGsuSigpLmdldCgpLEs9T1s3XSgxNSxudWxsLGwsMSxKLDYpLHoucGxheWJhY2tSYXRlPUssdGhpc1taWzFdXS5sb2FkKCksdGhpc1taWzFdXS5wbGF5KCkpLFpbMl0pfHwKKEs9fkssSj9KPX5KK3o6Sys9eixXPVtKLEtdKSxCKSYmcC5pbmZvKGZ1bmN0aW9uKCl7cmV0dXJuIlhNTEhUVFAgUkVTUCAoIitDKyIpIFsgYXR0ZW1wdCAiK2IreitRK0srditLK24rSitBfSksQikpYTp7aWYoUHMoKEs9eixLKSkpe2lmKCEvXlxzKig/Oi0/WzEtOV1cZCp8MCk/XHMqJC8udGVzdChLKSl0aHJvdyBFcnJvcihTdHJpbmcoSykpO31lbHNlIGlmKCRYKEspJiYhTnVtYmVyLmlzU2FmZUludGVnZXIoSykpdGhyb3cgRXJyb3IoU3RyaW5nKEspKTtpZihBMyl7Vz1CaWdJbnQoeik7YnJlYWsgYX1XPXo9cWMoeik/ej9qdSgpOm1nKCk6UHMoeik/ei50cmltKCl8fCIwIjpTdHJpbmcoeil9cmV0dXJuIFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChCLSgoVz1bMiwwLDFdLChCLTkmMTUpPj0zJiZCPj5XWzBdPDQpJiYoSi5lbmRzV2l0aChudygpKSYmKEo9Si5zdWJzdHJpbmcoV1sxXSxKLmxlbmd0aC16KSksQy5zdGFydHNXaXRoKG53KCkpJiYoQz0KQy5zdWJzdHJpbmcoeikpLFo9SitLK0MpLDkpJjcpPT1XWzBdKXtmb3IoYj1bNCwxLChDPSIiLHA9Syw4KV07cDw9Si5sZW5ndGgvYltXWzFdXS1iW1dbMl1dO3ArKyl7Zm9yKEE9KHY9KHArYltRPUssV1syXV0pKmJbV1sxXV0tYltXWzJdXSxLKTt2Pj1wKmJbV1sxXV07di0tKUErPUpbdl08PFEsUSs9YltXWzBdXTtDKz0oQT4+PkspLnRvU3RyaW5nKHopfVo9Q31yZXR1cm4oKEIrNyYyNyk8QiYmKEItV1syXV4xMyk+PUImJksmJihDPUsuaW5kZXhPZihKKSxXWzFdPD1DJiZLLnNwbGljZShDLHopKSxCKSszPj5XWzBdPEImJihCLTNeMTMpPj1CJiYoWj1HWzEzXSg5LGZ1bmN0aW9uKE4pe3JldHVybiBwPU9iamVjdC5hc3NpZ24oe30sYix7YU46KEE9KFE9Qyk9PXo/dm9pZCAwOlEudikhPXo/QTpudWxsLGx5OihuPSh2PUMpPT16P3ZvaWQgMDp2LkxEKSE9ej9uOm51bGx9KSxOLnYoSi5OeC5zZW5kKHdpLG5ldyBNSyhwKSksSyl9KSksWn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LApwKXtpZihwPVsyLDE3LCJjIl0sKEJ8NDgpPT1CKWE6e2lmKCFiLmcpe3Y9Z1syN10oNixFcnJvcihpaikpO2JyZWFrIGF9dj0oQT1uZXcgek8oeUgoYi5qKSksbmV3IElwKGZ1bmN0aW9uKFEsbil7KFJbNDNdKDMzLChuPVsxLCJnIiwic3Vic2NyaWJlIl0sbilbMF0seixDLDQsQSxiW25bMV1dKVtuWzJdXShmdW5jdGlvbigpe30pLFJbMjRdKG5bMF0sNCxudWxsLG5bMF0sYltuWzFdXSxBKSlbblsyXV0oe25leHQ6ZnVuY3Rpb24oWixXLE4seCxmLEwscixWLFAscSxjLEUpe2lmKChMPVsxRTYsMCwyNV0sRT1bODAsMSwxNV0sWiBpbnN0YW5jZW9mIFBTKSYmWi5kUSl7cj12b2lkIDA7dHJ5e2Y9WVgoWi5kUSkscT1SWzQ4XSg3NCxmLFN0LEVbMV0pLE49TnVtYmVyKHlbMTddKDEwLG51bGwsRVsxXSxxKSksVj15WzMzXShFWzJdLEoscSkseD0obmV3IERhdGUoTipLK1YvTFswXSkpLmdldFRpbWUoKSxXPURhdGUubm93KCkteCxQPWdbMzJdKDg2LExbRVsxXV0sbVszNV0oNjIsTFtFWzFdXSwKeVs5XSgyMSxFWzFdLDI2KSx4KSxXKSwoMCx0JC5BcykoUCkscj1ZWzM0XSg0LEosZil9Y2F0Y2goUyl7cj0obmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpKS5kZWNvZGUoWi5kUSl9UShyKX1aIGluc3RhbmNlb2YgTGYmJihjPWdbMzJdKEVbMF0sTFtFWzFdXSxtWzM1XSgyLExbRVsxXV0seVs5XSgxNyxFWzFdLExbMl0pLGIuRCksWWooKS1iLkQpLCgwLHQkLkFzKShjKSl9LGVycm9yOmZ1bmN0aW9uKCl7fSxjb21wbGV0ZTpmdW5jdGlvbigpe319KX0pKX1yZXR1cm4oKEJ8MSkmKChCLTl8MzcpPCgoKChCfDQpJjcpPT00JiYoSz1bJzxhIGNsYXNzPSInLCciIHRhcmdldD0iX2JsYW5rIiBocmVmPSInLCIiXSxKPXoua0YsQz1LWzBdK1JbMTFdKDcxLHouQzEpK0tbMV0rUlsxMV0oMzksZVsxMV0ocFsxXSxLW3BbMF1dLEopKSsnIiB0aXRsZT0iJyxDKz1lWzM0XSg5MiwiQWx0ZXJuYXRpdmVseSwgZG93bmxvYWQgYXVkaW8gYXMgTVAzIiksdj1URChDKyciPjwvYT4nKSksQnxwWzBdKT4+CjQ8cFswXSYmKEI8PHBbMF0mMjcpPj1wWzFdJiZULmNhbGwodGhpcyx6KSxCKSYmKEItcFswXV45KT49QiYmJE0uY2FsbCh0aGlzLHBbMl0pLDEzKSkhPTF8fEsuUnx8KEsuUj16LGVbNV0oMTkseixLLm1hLEspKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCEoQjw8KEE9WyJpIiw2LDVdLDEpJjExKSlmb3IodHlwZW9mIEouUj09PSJmdW5jdGlvbiImJihLPUouUihLKSksSi5jb29yZHM9QXJyYXkoSi5NLmxlbmd0aCksQz16O0M8Si5NLmxlbmd0aDtDKyspSi5jb29yZHNbQ109KEoubFtDXS1KLk1bQ10pKksrSi5NW0NdO3JldHVybihCLSgoQnw4KT09QiYmKHRoaXMubD12b2lkIDAsdGhpc1tBWzBdXT1uZXcgY3MsUzMuY2FsbCh0aGlzLHosSykpLCEoKEItQVsxXXwyMyk8QiYmKEItMnw4KT49Qil8fEomJmImJmIud2lkdGg9PUsmJmIuaGVpZ2h0PT1LfHwoWVsxNl0oMjMseiw1MDAsMSwidG9wIixDLEosYiksUlsxNl0oMjEsQy5JKSxKPyhlWzQ0XSgxMCwuOSxudWxsLApDKSxDLlIuZm9jdXMoKSxDLlg9PUpmJiYoQy5JPUhbQVsyXV0oMjQsRFsxMV0oOCksbUssZnVuY3Rpb24oKXtyZXR1cm4gQy5HKCl9LHtwYXNzaXZlOiEwfSkpKTpDLkEuZm9jdXMoKSxDLlU9RGF0ZS5ub3coKSksQVsyXSkmMTQpPT0yJiYodj1saitPWzIzXSg1OCxLLnllKCkseikpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKCgoQT1bIjxkaXYgaWQ9J3JjLXFyJz48ZGl2IGNsYXNzPVwiIiwzNSwyNV0sQikmODkpPT1CJiYoSz9SWzhdKDE3LEoseik6UlsyN10oMTYseixKKSksKEJ8Myk+PjMpfHwoQz16Lkp1LGI9WyJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJDYW52YXMiLCJDbGljayB0byB2ZXJpZnkiLCciIGlkPVwncmMtbW9iaWxlLXZlcmlmaWNhdGlvbi1idXR0b25cJyB0YXJnZXQ9Il9ibGFuayIgcm9sZT0iYnV0dG9uIj4nXSxLPUhbNDVdKDc2LEV4KCksQyxpbSgpLHVtKCkpLEo9T1s0MF0oNzksYVooKSxBWzBdK1JbMTFdKDksInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRck91dGVyQ29udGFpbmVyIikrCiciPjxkaXYgY2xhc3M9IicrUlsxMV0oOSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQ29udGFpbmVyIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSgzOSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyQmFja2dyb3VuZCIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRckluc3RydWN0aW9uc0NvbnRhaW5lciIpKyciPjxkaXYgY2xhc3M9IicrUlsxMV0oNzEsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRclNob3J0SW5zdHJ1Y3Rpb25zQ29udGFpbmVyIikrJyI+PGgxIGNsYXNzPSInK1JbMTFdKDczLCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJTaG9ydEluc3RydWN0aW9ucyIpKyciPicpLEs/Z1tBWzJdXSgzLEosIk1vYmlsZSBWZXJpZmljYXRpb24iKTpnW0FbMl1dKEFbMV0sSiwiU2NhbiB0byBWZXJpZnkgWW91J3JlIEh1bWFuIiksT1s0MF0oNzgsSiwnPC9oMT48L2Rpdj48ZGl2IGNsYXNzPSInKwpSWzExXSg5LCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJBZGRpdGlvbmFsSW5zdHJ1Y3Rpb25zQ29udGFpbmVyIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJDYW1lcmFJY29uIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3LCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJNb2JpbGVJY29uIikrJyI+PC9kaXY+PGgyIGNsYXNzPSInK1JbMTFdKDczLCJyZWNhcHRjaGFKYXZhc2NyaXB0Q2hhbGxlbmdlUXJBZGRpdGlvbmFsSW5zdHJ1Y3Rpb25zIikrJyI+JyksSz9nW0FbMl1dKDM2LEosIkNsaWNrIGJlbG93IHRvIHZlcmlmeSB5b3UgYXJlIGh1bWFuLiByZUNBUFRDSEEgcHJvdGVjdHMgeW91ciBwcml2YWN5IGFuZCBkb2VzIG5vdCBzaGFyZSB5b3VyIGRldGFpbHMgd2l0aCB0aGlzIHdlYnNpdGUgb3IgYXBwLiIpOmdbQVsyXV0oQVsxXSxKLCJTY2FuIHRoaXMgUVIgY29kZSB3aXRoIHlvdXIgbW9iaWxlIGRldmljZSB0byB2ZXJpZnkgeW91IGFyZSBodW1hbi4gcmVDQVBUQ0hBIHByb3RlY3RzIHlvdXIgcHJpdmFjeSBhbmQgZG9lcyBub3Qgc2hhcmUgeW91ciBkZXRhaWxzIHdpdGggdGhpcyB3ZWJzaXRlIG9yIGFwcC4iKSwKT1s0MF0oNzgsSiwnPC9oMj48L2Rpdj48L2Rpdj48Y2FudmFzIGNsYXNzPSInK1JbMTFdKDcxLGJbMF0pKyciIHRhYmluZGV4PSItMSIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSInKSxnW0FbMl1dKDM2LEosZVszNF0oODksIlFSIGNvZGUiKSksT1s0MF0oNzgsSiwnIj48cCBjbGFzcz0iJytSWzExXSgzOSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZVFyRmFsbGJhY2tUZXh0IikrJyI+PC9wPjwvY2FudmFzPjxhIGNsYXNzPSInK1JbMTFdKDcsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VRckJ1dHRvbiIpK2JbMl0pLGdbQVsyXV0oNTEsSixiWzFdKSxPWzQwXSg5NyxnW0FbMl1dKDUxLE9bNDBdKDk5LEosWGYoKSksRFszMF0oMTAsIiAiKSksczEoKSksdj1KKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVybihCLTF8KChCPDwoVj1bMzUsMCw0NF0sMSkmNyk+PTMmJihCXjIxKT4+NTwxJiYoYj1bMixudWxsLDFdLApBPW5ldyBWRCxMPUhbVlsyXV0oNjgsQSx1aixLLGEyKSxKIGluc3RhbmNlb2YgRjU/KG49bmV3IGhvLEMhPWJbMV0mJihRPU9bMjhdKDQsYlsxXSx6LEMpLEhbVlsyXV0oMjEsbixyWix6LFEpKSxyPUouTT9tWzMxXSgxNixiW1ZbMV1dLCI6ICIpOmdbVlswXV0oMiwhMCx6KSxXPUhbVlsyXV0oMjIsbixkSixiW1ZbMV1dLHIpLHg9SFszOV0oMjMsMzEsYlsyXSxKKSxIW1ZbMl1dKDg1LFcsZXUsMyx4KSxlWzEzXSgxOCxiWzFdLGhvLGJbVlsxXV0sZDYsTCxuKSk6KE49bmV3IGtYLEMhPWJbMV0mJih2PU9bMjhdKDUsYlsxXSx6LEMpLEhbVlsyXV0oNzAsTixyWix6LHYpKSxmPUoudi5NP21bMzFdKDE3LGJbVlsxXV0sIjogIik6Z1tWWzBdXSgxLCEwLHopLFo9SFtWWzJdXSgyMSxOLGRKLGJbVlsxXV0sZikscD1IWzM5XSgzMSwzMSxiWzJdLEoudiksSFtWWzJdXSg3MCxaLGV1LDMscCksZVsxM10oMTcsYlsxXSxrWCw2LGQ2LEwsTikpLFA9TCksNikpPj1CJiYoQis2XjE5KTxCJiYoQT0KSi5hVCxQPURbMzhdKDgzLG51bGwsQVtBJF18eixDLEEsSyxiKSE9PXZvaWQgMCksUH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQnwoKChCLTYmMTYpPCh2PVsxNSw5LDNdLDExKSYmKEJ8NCk+PjQ+PXZbMl0mJlQuY2FsbCh0aGlzLHosMCxxRi5SVCksQisxJnZbMF0pPT0yJiZULmNhbGwodGhpcyx6KSw4MCkpPT1CKWE6e2lmKEo9PShiPShDPXR5cGVvZiBKLGI9PT12b2lkIDA/ITE6YiksSykpe0E9SjticmVhayBhfWlmKEM9PT0iYmlnaW50Iil7QT1TdHJpbmcoRDQoeixKKSk7YnJlYWsgYX1pZighYiYmIWdkKXtBPUo7YnJlYWsgYX1pZihZWzM3XSg2LEosYikpe0E9Qz09PSJzdHJpbmciP1JbNDJdKDEzLDAsSixiKTpifHxEYj9SWzE4XSgxNywwLEosYik6WVs0Nl0oOCwwLEosYik7YnJlYWsgYX19cmV0dXJuKEItKChCPj4yJjEzKT09MSYmKEs9RXJyb3IuY2FsbCh0aGlzLCJbIit5WzMzXSh2WzJdLDEseikrIl0gIitZWzM0XSh2WzJdLHZbMl0seikpLHRoaXMubWVzc2FnZT0KSy5tZXNzYWdlLCJzdGFjayJpbiBLJiYodGhpcy5zdGFjaz1LLnN0YWNrKSx0aGlzLnN0YXR1cz16KSx2WzFdKXwxMCk+PUImJihCLXZbMV1edlsyXSk8QiYmKEE9VEQoJzxkaXY+Rm9yIHNpdGUgb3duZXI6IHYxYmV0YTEgaXMgZGVwcmVjYXRlZC4gPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmNsb3VkLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvbWlncmF0aW9uLXYxIiB0YXJnZXQ9Il9ibGFuayI+VGFrZSBhY3Rpb24uPC9hPjwvZGl2PicpKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoKChCfDQpJjE1KT09KCgoQnwoQz1bMixudWxsLCJBIl0sMSkpJjI5KT09MSYmKHRoaXMuWD16LlNDfHxDWzFdLHRoaXMuTT16LlVCfHwhMSksNCkmJih0eXBlb2YgSi5jbGFzc05hbWU9PXo/Si5jbGFzc05hbWU9SzpKLnNldEF0dHJpYnV0ZSYmSi5zZXRBdHRyaWJ1dGUoVTIoKSxLKSksQitDWzBdPDIxJiYoKEJ8NykmMTUpPj0xMSYmKEo9WzAsITEsMTI4XSx0aGlzLmJsb2NrU2l6ZT0KLTEsdGhpcy5ibG9ja1NpemU9SltDWzBdXSx0aGlzLlg9R2xbYncoKV0/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzLk89W10sdGhpcy5NPUpbMF0sdGhpcy5pPUpbMF0sdGhpcy52PVtdLHRoaXMuUj16LHRoaXMubD1ZWzMzXShDWzBdLDEsQ1swXSxLKSx0aGlzW0NbMl1dPUpbMV0sdGhpcy5yZXNldCgpKSxCLTUpJjMpPT0xJiZULmNhbGwodGhpcyx6KSxCKSs5JjI1fHwoSyE9ej9HWzQ4XSg2LEosSyk6Sz12b2lkIDAsYj1LKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhKXtpZigoQl4oQi0xPDwoKCgoKEJeKGE9WzExLDUsMl0sNjYpKSY3KT09MyYmKFM9T1s0MF0oODQseikpLChCLTR8MTQpPEImJihCLTd8NjUpPj1CKSYmVC5jYWxsKHRoaXMseiksKEItOHwxMCk8QiYmKEIrYVsyXV4yOSk+PUIpJiYhdG8mJihtWzM5XSgyOCxmdW5jdGlvbih1KXtyZXR1cm4gd3AuYWRkKHUpfSwKZnVuY3Rpb24odSl7cmV0dXJuIHUuZXEub3JpZ2lufSksdG89bmV3IHdFLGVbMzZdKGFbMV0sdG8sRFthWzBdXShhWzBdKSxFeixmdW5jdGlvbih1LFgsZCx0LGgpe2Zvcih0PShYPWdbMTJdKDcsVXgudmFsdWVzKCkpLFgubmV4dCgpKTshdC5kb25lO3Q9WC5uZXh0KCkpaD10LnZhbHVlLChkPWguZmlsdGVyKHUpKSYmaC54QShkKX0pKSxhKVsyXT49QiYmKEItNnw4Nik8QiYmKHY9dj09PXZvaWQgMD8xNUUzOnYsR1szOV0oNykscD1mdW5jdGlvbih1LFgsZCx0LGgsTSl7cmV0dXJuKFg9KHQ9KE09WzAsImRhdGEiLChkPXUuZXEsInNvdXJjZSIpXSxkW01bMV1dPT1ydCksaD15WzE2XSg4LCJodHRwIixkLm9yaWdpbik9PXlbMTZdKDksImh0dHAiLEMpLCFKKXx8ZFtNWzJdXT09Si5jb250ZW50V2luZG93LHQpJiZoJiZYJiZkLnBvcnRzLmxlbmd0aD5NWzBdP2QucG9ydHNbTVswXV06bnVsbH0sUz1uZXcgUHJvbWlzZShmdW5jdGlvbih1LFgsZCl7KGQ9bVszOV0oMjUsZnVuY3Rpb24odCwKaCl7dSgoVXhbImRlbGV0ZSJdKGQpLGg9bmV3IEdIKHQsYixBLEMpLGVbMzZdKDExLGgsRFsxMV0oMSksRXosZnVuY3Rpb24oTSxVKXsoVT1wKE0pKSYmVSE9dCYmRFsyN10oNyxLLHosVSxoKX0pLGgpKX0scCksTylbMl0oOCxmdW5jdGlvbigpe1goKFV4WyJkZWxldGUiXShkKSxFcnJvcikoInJlQ0FQVENIQSBUaW1lb3V0IikpfSx2KX0pKSxhWzJdKSk+PjM9PTMmJih2PVshMCw4LDBdLHI9RGF0ZS5ub3coKS1KLEw9ZGsuSigpLmdldCgpLEEudi5sKSlpZihQPW5ldyBNYyxWPURbOF0oMTQsTCksTj1ZWzI2XSgyMCxhWzJdLFAsZVs0OF0oNjQsbnVsbCxWKSwiIikscD1ZWzI2XSgyMiwzLE4sYj09bnVsbD9iOk9bYVsyXV0oMTUsYiksdlthWzJdXSksZj1ZWzI2XSg0OCw0LHAsUlthWzBdXSg0LHZbYVsyXV0sciksbWcoKSksQyE9dm9pZCAwJiZ5WzE4XSg3LHZbMF0sQyxLLGYpLFc9QS5LcSx4PW5ldyBCMixuPWYueWUoKSxRPW1bMjNdKDM0LG4seCx2WzFdKSxxPWtbNl0oNTYsYVswXSwKUSxhWzJdKSxxIGluc3RhbmNlb2YgQjIpVy5sb2cocSk7ZWxzZSB0cnl7Wj1uZXcgQjIsRT1xLnllKCksYz1tWzIzXSgzMyxFLFosdlsxXSksVy5sb2coYyl9Y2F0Y2godSl7a1sxXSg3MyxXLHosNCl9cmV0dXJuIFN9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oQi01JigocD1bNzIsImxvY2FsZSIsNzBdLEJ8MjQpPT1CJiZULmNhbGwodGhpcyx6KSwxMSkpPT0xJiYoQT1bOSwxLDExXSxIWzQ0XSg2OCxKLnYsUmosQVsxXSxLKSxtWzFdKDMwLEssQVsxXSl8fGdbNDFdKDQsQVsxXSxLKSxKLllBfHwoYj1IWzIwXSgzMSxBWzJdLEopLFlbMzRdKDQseixiKXx8bVsyM10oMTksSltwWzFdXSxiLHopKSxKLk0mJihDPUhbMjBdKDU5LEFbMl0sSiksUls0OF0ocFswXSxDLFZvLEFbMF0pfHxIWzQ0XShwWzJdLEMsVm8sQVswXSxKLk0pKSksdn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCEoQj4+KChCfDI0KT09KChiPVsxNSwxLDE5XSwoQiYyNyk9PUIpJiYoQz1SWzQ4XSg3MywKSyx3Nix6LGwpKSxCKSYmKEM9UlsxOF0oNCwxMDc1LHRoaXMudikpLGJbMV0pJjEzKSl7Zm9yKEs9KEo9W10sMCk7Szx6O0srKylKLnB1c2goa1syMV0oYlsyXSx0aGlzKSk7dGhpcy5CKEopfXJldHVybigoKEI+PmJbMV0mYlswXSk9PTMmJihKPURbOF0oYlswXSxkay5KKCkuZ2V0KCkpLEM9bVsyM10oMzIsSixLLHosbCkpLEIpPDxiWzFdJjEwKT09MiYmKHRoaXMudTU9Six0aGlzLmJjPUssdGhpcy5pWD16KSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtpZigoZj1bImZpcnN0Q2hpbGQiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiWCJdLEIpLTY+PjU8NCYmKEI8PDImNyk+PTMpYTp7aWYoKG49KHY9KFo9eVs0XS5iaW5kKG51bGwsMSksSFsxN10oMjksSykpLFooYnx8QlUsdm9pZCAwKSkpJiZuW2ZbMl1dKXt4PW5bZlsyXV0oKTticmVhayBhfWlmKChwPShRPShOPU9bN10oNCxDLG4pLHYudiksR1syNV0oNzEsc2ksUSkpLG0pWzQ0XSgyLEosCnAsTikscC5jaGlsZE5vZGVzLmxlbmd0aD09eilBPXAucmVtb3ZlQ2hpbGQocFtmWzBdXSk7ZWxzZXtmb3IoVz1RW2ZbMV1dKCk7cFtmWzBdXTspVy5hcHBlbmRDaGlsZChwW2ZbMF1dKTtBPVd9eD1BfWlmKChCfDQpPj40PDQmJihCPDwxJjcpPj0zKXtpZihKPT16KWI9SjtlbHNle2lmKHR5cGVvZiBKPT09InN0cmluZyIpQz1KP25ldyBabChKLGVKKTptWzQyXSg0NSk7ZWxzZXtpZihKLmNvbnN0cnVjdG9yPT09WmwpQT1KO2Vsc2V7aWYoZVomJkohPXomJkogaW5zdGFuY2VvZiBVaW50OEFycmF5KXY9Si5sZW5ndGg/bmV3IFpsKG5ldyBVaW50OEFycmF5KEopLGVKKTptWzQyXSg0Mik7ZWxzZXtpZighSyl0aHJvdyBFcnJvcigpO3Y9dm9pZCAwfUE9dn1DPUF9Yj1DfXg9Yn1yZXR1cm4geH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKChCJih4PVsyMywiWCIsIlJEIl0sNDMpKT09QiYmKG49WzEsbnVsbCwwXSxDLnY9PW5bMl0pKWlmKENbeFsxXV0pe2lmKCh2PQpDW3hbMV1dLHYpLk0pe2ZvcihiPShwPW5bMV0sdi5NKSxaPW5bMV0sQT1uWzJdO2ImJihiLkF8fChBKyssYi52PT1DJiYoWj1iKSwhKFomJkE+SykpKTtiPWIubmV4dClafHwocD1iKTtpZihaKWlmKHYudj09blsyXSYmQT09SylHWzQzXSgxMSwzLG5bMF0sSix2KTtlbHNle2lmKHApUT1wLFEubmV4dD09di5pJiYodi5pPVEpLFEubmV4dD1RLm5leHQubmV4dDtlbHNlIEhbNDJdKDEyLG5bMV0sdik7ZVsxN10oMjQsMyxuWzFdLFoseixKLHYpfX1DW3hbMV1dPW5bMV19ZWxzZSBnWzhdKDEwLHosQyx6LEopO3JldHVybigoKEIrM14xMCk+PSgoQj4+MiYxNSk9PTQmJihLLnYuUj1LW3hbMV1dLEsuUiYmKEsudi5EPXopLEsudi5jb25uZWN0KEsuaSxLLk18fHZvaWQgMCkpLChCfDg4KT09QiYmKEM9WzUsMywyXSx2PW5ldyBZVixBPUhbMF0oNDgsdixDWzBdLEssbCksbj1lWzMzXSg2LHosQSwoUT0oYj1wZXJmb3JtYW5jZSk9PW51bGw/dm9pZCAwOmIudGltZU9yaWdpbikhPW51bGw/UToKRGF0ZS5ub3coKSkscD1tW3hbMF1dKDI0LCJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiLG4sNCxsKSxaPW1beFswXV0oMjgseVs0NV0oNikscCxDWzFdLGwpLFc9bVt4WzBdXSgyNSxuYXZpZ2F0b3IudXNlckFnZW50LFosMTIsbCksSiYmbVt4WzBdXSgzMCxKLFcsQ1syXSxsKSwoMCx0JFt4WzJdXSkoeiksTj1XKSxCKSYmKEItOHw1NCk8QiYmKE49R1sxN10oMSw0LCExLDAseixLLEopLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIGtbMTBdKDY1LEssSil9KSksQik+PjEmNyk9PTQmJihiPUssQz0oSj1PWzM4XSg0Myx6KSk/Si5jcmVhdGVIVE1MKGIpOmIsTj1uZXcgSWIoQykpLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChwPVsiYXZhaWxIZWlnaHQiLCJvdXRlcldpZHRoIiwzXSxCLXBbMl1eMjcpPEImJihCKzZeMjMpPj1CKXtmb3Iodj0oYj1tWzQ4XSg3MiwwLEMseiksQT1LLCIiKTtBPEoubGVuZ3RoO0ErKyl2Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKEouY2hhckNvZGVBdChBKV4KYigpKTtRPXZ9cmV0dXJuKEJeNTQpPj0tKChCfDQwKT09QiYmKFE9R1sxN10oMjAsbnVsbCxPWzQyXS5iaW5kKG51bGwsNykpKSw2MSkmJigoQnxwWzJdKSY4KTwyJiYoSTJ8fEZmPyhLPXNjcmVlbi5hdmFpbFdpZHRoLEo9c2NyZWVuW3BbMF1dKTpCY3x8czQ/KEs9d2luZG93W3BbMV1dfHxzY3JlZW4uYXZhaWxXaWR0aHx8c2NyZWVuLndpZHRoLEo9d2luZG93Lm91dGVySGVpZ2h0fHxzY3JlZW5bcFswXV18fHNjcmVlbi5oZWlnaHQsem58fChKLT16KSk6KEo9d2luZG93Lm91dGVySGVpZ2h0fHx3aW5kb3cuaW5uZXJIZWlnaHQsSz13aW5kb3dbcFsxXV18fHdpbmRvdy5pbm5lcldpZHRoKSxRPW5ldyBibShLfHwwLEp8fDApKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKChiPVs2LDQ0LCgoQiYyNik9PUImJihDPWtbNDZdKDEzLGZ1bmN0aW9uKEEsdixwLFEsbil7KFE9QS5zdWJzY3JpYmUobmV3IGZnKHYsKHA9KFE9eixLKSx2b2lkIDApLGZ1bmN0aW9uKFosVyl7KG49SFsxM10oMzEsCm51bGwsSihaLChXPVshMCwxOCw0NV0sR1tXWzJdXShXWzFdLG51bGwsITEsSikoQSkpKSksUSk/KFEudW5zdWJzY3JpYmUoKSxRPXosbi5zdWJzY3JpYmUodikpOnA9V1swXX0pKSxwKSYmKFEudW5zdWJzY3JpYmUoKSxRPXosbi5zdWJzY3JpYmUodikpfSkpLDUpXSxCLTFeMTYpPj1CJiZCLTk8PDI8QiYmKHBRLmNhbGwodGhpcyksdGhpcy5PPW5ldyBmdCh0aGlzKSx0aGlzLkFMPW51bGwsdGhpcy56Sj10aGlzKSxCKS1iWzJdPDwxPj1CJiYoQi0yfDczKTxCKXtpZigodGhpcy5PPSgocFEuY2FsbCh0aGlzKSx0aGlzKS5YPUt8fDEwLHp8fDApLHRoaXMuTyk+dGhpcy5YKXRocm93IEVycm9yKEtHKTsodGhpcy5kZWxheT0odGhpcy5NPW5ldyBKVCx0aGlzLnY9bmV3IFNldCwwKSx0aGlzKS5SPW51bGwsdGhpcy5WYSgpfXJldHVybihCKzleMTgpPj1CJiYoQis4JmJbMV0pPEImJihDPXouTT96Lk09PUs6ei52P3oudi5oYXMoSyk6ITEpLEIrYlswXT4+MTxCJiYoQitiWzJdXjMwKT49QiYmCihDPU9bNDVdKDE5KT9aOC5wbGF0Zm9ybT09PSJXaW5kb3dzIjpEWzIwXSgxNSwiV2luZG93cyIpKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEImKCgoQl4zMCkmNyk9PSgoKGI9WzMsImdldE93blByb3BlcnR5TmFtZXMiLDVdLChCK2JbMl0mNyk+PWJbMF0pJiZCKzg8MjEmJihDPXouT2JqZWN0W2JbMV1dKSxCfGJbMl0pPDMwJiZCLTQ+PTExJiYodGhpcy52PUtbR2wuU3ltYm9sLml0ZXJhdG9yXSgpLHRoaXMuTT16KSxiKVswXSYmVC5jYWxsKHRoaXMseiksNTMpKT09QiYmKEo9eixLJiYoSj1SeCh6LEspKSxKPUNHKEopLEo9dDUoSiksYmx8fChibD1HWzI1XShiWzBdLG51bGwsMCkpLGJsKEopKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe2lmKChCJihWPVsxMSwzOSw0MF0sMTA1KSk9PUIpe0w9KGY9WyciPjxkaXYgY2xhc3M9IicsIlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5iaWN5Y2xlczwvc3Ryb25nPiIsCihDPXoubGFiZWwsIi9tLzAzc3k3diIpXSxhWigpKTtzd2l0Y2goSFs0NF0oOCxDKT9DLnRvU3RyaW5nKCk6Qyl7Y2FzZSAic3RvcF9zaWduIjpPW1ZbMl1dKDc5LEwsJzxkaXYgY2xhc3M9IicrUltWWzBdXSg3MywicmMtaW1hZ2VzZWxlY3QtY2FuZGlkYXRlcyIpK2ZbMF0rUltWWzBdXShWWzFdLCJyYy1jYW5vbmljYWwtc3RvcC1zaWduIikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSW1ZbMF1dKDksInJjLWltYWdlc2VsZWN0LWRlc2MiKSsnIj4nKTticmVhaztjYXNlICJ2ZWhpY2xlIjpjYXNlICIvbS8wN3l2OSI6Y2FzZSAiL20vMGs0aiI6T1tWWzJdXSg5OCxMLCc8ZGl2IGNsYXNzPSInK1JbVlswXV0oNywicmMtaW1hZ2VzZWxlY3QtY2FuZGlkYXRlcyIpK2ZbMF0rUltWWzBdXShWWzFdLCJyYy1jYW5vbmljYWwtY2FyIikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSW1ZbMF1dKDcxLCJyYy1pbWFnZXNlbGVjdC1kZXNjIikrJyI+Jyk7YnJlYWs7Y2FzZSAicm9hZCI6T1tWWzJdXSg3OCwKTCwnPGRpdiBjbGFzcz0iJytSW1ZbMF1dKDczLCJyYy1pbWFnZXNlbGVjdC1jYW5kaWRhdGVzIikrZlswXStSW1ZbMF1dKDcxLCJyYy1jYW5vbmljYWwtcm9hZCIpKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUltWWzBdXSg3LCJyYy1pbWFnZXNlbGVjdC1kZXNjIikrJyI+Jyk7YnJlYWs7Y2FzZSAiL20vMDE1a3IiOk9bVlsyXV0oOTksTCwnPGRpdiBjbGFzcz0iJytSW1ZbMF1dKDcsInJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZXMiKStmWzBdK1JbVlswXV0oNzMsInJjLWNhbm9uaWNhbC1icmlkZ2UiKSsnIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbVlswXV0oVlsxXSwicmMtaW1hZ2VzZWxlY3QtZGVzYyIpKyciPicpO2JyZWFrO2RlZmF1bHQ6T1tWWzJdXSg3OSxMLCc8ZGl2IGNsYXNzPSInK1JbVlswXV0oVlsxXSwicmMtaW1hZ2VzZWxlY3QtZGVzYy1uby1jYW5vbmljYWwiKSsnIj4nKX1wPXouVVksdj1hWigpO3N3aXRjaChIWzQ0XSgyLHApP3AudG9TdHJpbmcoKToKcCl7Y2FzZSAidGlsZXNlbGVjdCI6Y2FzZSAibXVsdGljYXB0Y2hhIjp4PShRPSIiLHoubGFiZWwpLFc9ei5NSSxLPXouVVk7c3dpdGNoKEhbNDRdKDIseCk/eC50b1N0cmluZygpOngpe2Nhc2UgIlRpbGVTZWxlY3Rpb25TdHJlZXRTaWduIjpjYXNlICIvbS8wMW1xZHQiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnN0cmVldCBzaWduczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiVGlsZVNlbGVjdGlvbkJpelZpZXciOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPmJ1c2luZXNzIG5hbWVzPC9zdHJvbmc+IjticmVhaztjYXNlICJzdG9wX3NpZ24iOmNhc2UgIi9tLzAycHYxOSI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+c3RvcCBzaWduczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAic2lkZXdhbGsiOmNhc2UgImZvb3RwYXRoIjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggYSA8c3Ryb25nPnNpZGV3YWxrPC9zdHJvbmc+IjticmVhazsKY2FzZSAidmVoaWNsZSI6Y2FzZSAiL20vMDd5djkiOmNhc2UgIi9tLzBrNGoiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnZlaGljbGVzPC9zdHJvbmc+IjticmVhaztjYXNlICJyb2FkIjpjYXNlICIvbS8wNmdmaiI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+cm9hZHM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgImhvdXNlIjpjYXNlICIvbS8wM2ptNSI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+aG91c2VzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTVrciI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+YnJpZGdlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMGNkbDEiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnBhbG0gdHJlZXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxNHhjcyI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+Y3Jvc3N3YWxrczwvc3Ryb25nPiI7CmJyZWFrO2Nhc2UgIi9tLzAxNXFmZiI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+dHJhZmZpYyBsaWdodHM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxcG5zMCI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+ZmlyZSBoeWRyYW50czwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMDFianYiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPmJ1c2VzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wcGc1MiI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+dGF4aXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzA0X3N2IjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz5tb3RvcmN5Y2xlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMDE5OWciOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPmJpY3ljbGVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTVxYnAiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgd2l0aCA8c3Ryb25nPnBhcmtpbmcgbWV0ZXJzPC9zdHJvbmc+IjsKYnJlYWs7Y2FzZSAiL20vMDFseW5oIjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz5zdGFpcnM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxamtfNCI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+Y2hpbW5leXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxM3hsbSI6USs9IlNlbGVjdCBhbGwgc3F1YXJlcyB3aXRoIDxzdHJvbmc+dHJhY3RvcnM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzA3ajdyIjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz50cmVlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMGM5cGg1IjpRKz0iU2VsZWN0IGFsbCBzcXVhcmVzIHdpdGggPHN0cm9uZz5mbG93ZXJzPC9zdHJvbmc+IjticmVhaztjYXNlICJVU0VSX0RFRklORURfU1RST05HTEFCRUwiOlErPSJTZWxlY3QgYWxsIHNxdWFyZXMgdGhhdCBtYXRjaCB0aGUgbGFiZWw6IDxzdHJvbmc+IitEW1ZbMV1dKDUsVykrIjwvc3Ryb25nPiI7CmJyZWFrO2RlZmF1bHQ6USs9IlNlbGVjdCBhbGwgaW1hZ2VzIGJlbG93IHRoYXQgbWF0Y2ggdGhlIG9uZSBvbiB0aGUgcmlnaHQifShOPShlWzIxXSg3NyxBVCgpLEspJiYoUSs9JzxzcGFuIGNsYXNzPSInK1JbVlswXV0oNywicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtaW5zdHJ1Y3Rpb25zIikrJyI+JyxRKz0iSWYgdGhlcmUgYXJlIG5vbmUsIGNsaWNrIHNraXAuPC9zcGFuPiIpLFREKFEpKSxnKVsyNV0oMzYsdixOKTticmVhaztkZWZhdWx0OnI9KGI9ei5NSSxuPShaPSIiLHopLmxhYmVsLHouVVkpO3N3aXRjaChIWzQ0XSg4LG4pP24udG9TdHJpbmcoKTpuKXtjYXNlICIxMDAwRV9zaWduX3R5cGVfVVNfc3RvcCI6Y2FzZSAiL20vMDJwdjE5IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnN0b3Agc2lnbnM8L3N0cm9uZz4uIjticmVhaztjYXNlICJzaWducyI6Y2FzZSAiL20vMDFtcWR0IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnN0cmVldCBzaWduczwvc3Ryb25nPi4iOwpicmVhaztjYXNlICJJbWFnZVNlbGVjdFN0b3JlRnJvbnQiOmNhc2UgInN0b3JlZnJvbnQiOmNhc2UgIkltYWdlU2VsZWN0Qml6RnJvbnQiOmNhc2UgIkltYWdlU2VsZWN0U3RvcmVGcm9udF9pbmNvbnNpc3RlbnQiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIGEgPHN0cm9uZz5zdG9yZSBmcm9udDwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzA1czJzIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnBsYW50czwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzBjOXBoNSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5mbG93ZXJzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDdqN3IiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dHJlZXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wY2RsMSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5wYWxtIHRyZWVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wOWRfciI6Wis9CiJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+bW91bnRhaW5zIG9yIGhpbGxzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDNrdG0xIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgb2YgPHN0cm9uZz5ib2RpZXMgb2Ygd2F0ZXI8L3N0cm9uZz4gc3VjaCBhcyBsYWtlcyBvciBvY2VhbnMuIjticmVhaztjYXNlICIvbS8wNmNucCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5yaXZlcnM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wYjN5ciI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5iZWFjaGVzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDFicXZwIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgb2YgPHN0cm9uZz50aGUgc2t5PC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDd5djkiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dmVoaWNsZXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzBrNGoiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+Y2Fyczwvc3Ryb25nPiI7CmJyZWFrO2Nhc2UgIi9tLzAxOTlnIjpaKz1mWzFdO2JyZWFrO2Nhc2UgIi9tLzA0X3N2IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPm1vdG9yY3ljbGVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTlqZCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5ib2F0czwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiL20vMHBnNTIiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dGF4aXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMnl2aGoiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIGEgPHN0cm9uZz5zY2hvb2wgYnVzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDFianYiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIGEgPHN0cm9uZz5idXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wN2pkciI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz50cmFpbnM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMTNfMWMiOlorPQoiU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnN0YXR1ZXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8waDhsaGtnIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmZvdW50YWluczwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzAxNWtyIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmJyaWRnZXM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMV9tNyI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5waWxsYXJzIG9yIGNvbHVtbnM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wM2ptNSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5hIGhvdXNlPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDFuYmx0IjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmFuIGFwYXJ0bWVudCBidWlsZGluZzwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzAxcG5zMCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5hIGZpcmUgaHlkcmFudDwvc3Ryb25nPi4iOwpicmVhaztjYXNlICIvbS8wMWtuamIiOmNhc2UgImJpbGxib2FyZCI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz5hIGJpbGxib2FyZDwvc3Ryb25nPi4iO2JyZWFrO2Nhc2UgIi9tLzA2Z2ZqIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnJvYWRzPC9zdHJvbmc+LiI7YnJlYWs7Y2FzZSAiL20vMDE0eGNzIjpaKz0iU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPmNyb3Nzd2Fsa3M8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMTVxZmYiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+dHJhZmZpYyBsaWdodHM8L3N0cm9uZz4uIjticmVhaztjYXNlICIvbS8wMWp3XzEiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+YnVzIHN0b3BzPC9zdHJvbmc+IjticmVhaztjYXNlIGZbMl06Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz50cmFmZmljIGNvbmVzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMTVxYnAiOlorPQoiU2VsZWN0IGFsbCBpbWFnZXMgd2l0aCA8c3Ryb25nPnBhcmtpbmcgbWV0ZXJzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMWx5bmgiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+c3RhaXJzPC9zdHJvbmc+IjticmVhaztjYXNlICIvbS8wMWprXzQiOlorPSJTZWxlY3QgYWxsIGltYWdlcyB3aXRoIDxzdHJvbmc+Y2hpbW5leXM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgIi9tLzAxM3hsbSI6Wis9IlNlbGVjdCBhbGwgaW1hZ2VzIHdpdGggPHN0cm9uZz50cmFjdG9yczwvc3Ryb25nPiI7YnJlYWs7ZGVmYXVsdDpKPSJTZWxlY3QgYWxsIGltYWdlcyB0aGF0IG1hdGNoIHRoZSBsYWJlbDogPHN0cm9uZz4iK0RbVlsxXV0oMixiKSsiPC9zdHJvbmc+LiIsWis9Sn0oQT0oZVsyMV0oNzcsdmMoKSxyKSYmKForPSI8c3Bhbj5DbGljayB2ZXJpZnkgb25jZSB0aGVyZSBhcmUgbm9uZSBsZWZ0Ljwvc3Bhbj4iKSxURChaKSksZylbMjVdKDMsdixBKX1QPShPW1ZbMl1dKDc5LGdbMjVdKDUyLApMLHYpLElmKCkpLEwpfWlmKChCKzcmNDMpPEImJihCKzJeNik+PUImJkMpZm9yKFE9Qy5zcGxpdCh6TCgpKSxBPUo7QTxRLmxlbmd0aDtBKyspdj1RW0FdLmluZGV4T2YoWFooKSksbj16LHY+PUo/KHA9UVtBXS5zdWJzdHJpbmcoSix2KSxuPVFbQV0uc3Vic3RyaW5nKHYrSykpOnA9UVtBXSxiKHAsbj9kZWNvZGVVUklDb21wb25lbnQobi5yZXBsYWNlKC9cKy9nLG85KCkpKToiIik7cmV0dXJuIFB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoKEJ8KChCKyhMPVsxLDQsMTNdLDgpPj5MWzFdPj1MWzBdJiZCLTk8MTcmJihLLnJlYWR5U3RhdGU9eixLLmk9bnVsbCxLLlg9bnVsbCxLLlc9bnVsbCxEWzE4XSgzNCxLKSksQi1MWzBdKSY3fHwodGhpcy52PXopLDcyKSk9PUIpZm9yKHo9dGhpcy5pO3oudi5sZW5ndGg+MDspaWYoSz10aGlzLllTKCkpei5yZW1vdmUoKS5hcHBseSh0aGlzLFtLXSk7ZWxzZSBicmVhaztpZighKEIrMz4+KChCfDU2KT09CkImJihmPUdbTFsyXV0oMTYsZnVuY3Rpb24ocixWLFApe1Y9WzIsNSw3XSxQPVs4LDQsIk0iXTtzd2l0Y2gocltQWzJdXSl7Y2FzZSBKOnY9R1syM10oMTMsRFtQWzBdXSg3OSxIW1BbMV1dKDk1LFZbMF0sYikpLFRuKCkpLE49R1syM10oNSxEW1BbMF1dKDcyLEhbUFsxXV0oOTAsMyxiKSksamYoKSksVz1HWzIzXSgxNCxEW1BbMF1dKDkwLEhbUFsxXV0oOTUsSixiKSkscEcoKSkseD1BcnJheSh2KSxRPXosQT10eXBlb2YgY3J5cHRvIT09InVuZGVmaW5lZCImJnR5cGVvZiBjcnlwdG8uc3VidGxlIT09InVuZGVmaW5lZCI7Y2FzZSBWWzBdOmlmKChRKyssUSk+PTVFNil0aHJvdyBFcnJvcigiIik7aWYoIShRPnomJlElNTAwPT09MCkpe3IuR18oVlsxXSk7YnJlYWt9cmV0dXJuIHIudihuZXcgUHJvbWlzZShmdW5jdGlvbihxKXtzZXRUaW1lb3V0KHEseil9KSxWWzFdKTtjYXNlIFZbMV06aWYobj0oWj1Rdi5lbmNvZGUoVytLK1EpLHZvaWQgMCksIUEpe249eVs0MV0oMyxDLDMsWiksci5HXyhWWzJdKTsKYnJlYWt9cmV0dXJuIHIuQShQWzBdKSxyLnYoeVszNV0oMixKLHosVlswXSwhMSxaKSwxMCk7Y2FzZSAxMDpyLkYoVltuPXIuWCwyXSk7YnJlYWs7Y2FzZSBQWzBdOnIuaSgpLEE9ITEsbj15WzQxXShQWzFdLEMsMyxaKTtjYXNlIFZbMl06aWYoKCh4W3A9biV2LHBdfHwoeFtwXT1bXSkseClbcF0ucHVzaChRKSx4KVtwXS5sZW5ndGg+PU4pcmV0dXJuIHIucmV0dXJuKHhbcF0pO3IuR18oVlswXSl9fSkpLExbMV0pKSl7aWYoIShLIGluc3RhbmNlb2YgeikpdGhyb3cgRXJyb3IoIkV4cGVjdGVkIGluc3RhbmNlb2YgIitIWzQxXShMWzFdLHopKyIgYnV0IGdvdCAiKyhLJiZIWzQxXShMWzBdLEsuY29uc3RydWN0b3IpKSk7Zj1LfXJldHVybiBmfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybihCLSgoQjw8KEE9WyJsb2NhdGlvbiIsInNlbGYiLCJwcm90b2NvbCJdLDEpJjE2KTwyJiYoQj4+MiY1KT49NCYmKHY9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woKT09PQoic3ltYm9sIj8oSj09PXZvaWQgMD8wOkopJiZTeW1ib2xbImZvciJdJiZLP1N5bWJvbFsiZm9yIl0oSyk6SyE9bnVsbD9TeW1ib2woSyk6U3ltYm9sKCk6eiksQisxPj4zPT0xJiYoSi5NPyhiPUouTSxDPUsucGhhc2U9PT0xfHxiLk0mJiEoSy5rZXkgaW4gYi52KT9LLmRlZmF1bHRWYWx1ZTpLLmN0b3IoYi52W0sua2V5XSkpOkM9eix2PUMpLDEpfDEpPj1CJiYoQi02fDI5KTxCJiYoQz1SWzI4XSg0LDEsSilbMV18fHosIUMmJkdsW0FbMV1dJiZHbFtBWzFdXVtBWzBdXSYmKEM9R2xbQVsxXV1bQVswXV1bQVsyXV0uc2xpY2UoSywtMSkpLHY9Qz9DLnRvTG93ZXJDYXNlKCk6IiIpLHZ9XX0oKSxIPWZ1bmN0aW9uKCl7cmV0dXJuW2Z1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKEItODw8KEItKHY9WzEsNzgsMTVdLDcpPHZbMl0mJihCK3ZbMF0mMTIpPj0yJiYoSj1bNCw1MiwxNl0sQT16PT0wPzA6OSpoWSh2WzBdPDwzMi1uRyh6K3ovMi12WzBdKSxKWzBdKTw9Sz96PT0wPzA6Cno8SlswXT8xMDArKHotdlswXSkqSlsyXTp6PDY/MTQ4Kyh6LUpbMF0pKkpbMl06ejwxMj8yNDQrKHotNikqSlsyXTp6PDIyPzQzNisoei0xMikqMTk6ejw0ND84MjArKHotMjIpKjE3OkpbdlswXV0rMzIqejo0MCtKWzBdKkspLHZbMF0pPj1CJiYoQi02fDQ1KTxCJiYoQT15WzM4XSgyLEMsSj09bnVsbD9KOk9bMl0oMTQsSikseixLKSksKEJ8MjQpPT1CJiYoSy52PyhiPVJbMTddKDU3LHosbCxrWzNdKDExKSw4LGtbMzRdLmJpbmQobnVsbCw1KSx2b2lkIDAsSy52KSxDPVlbOF0oMjIsYixKKSk6Qz0hMSxBPUMpLChCKzMmdlsxXSk8QikmJihCLTleMzIpPj1CJiZULmNhbGwodGhpcyx6KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKChiPVs5LDAsMl0sQiszJmJbMF0pPj0xJiYoQl43OSk8MTImJihDPW5ldyBabShKPT09dm9pZCAwPyIiOkosSyksQT17aXNTdWNjZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIEMudj09en0sZ2V0VmVyZGljdFRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEMuTX0sCmdldFN0YXR1c0NvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gV2MuaGFzKEMudik/V2MuZ2V0KEMudik6Z0EoKX19KSxCKSY0MSk9PUIpe2lmKE1VPj16KXRocm93IG5ldyBTeW50YXhFcnJvcjtNVSsrfXJldHVybigoQj4+MSY3KT09MSYmKEM9WyJyZWNhcHRjaGEtY2hlY2tib3giLG51bGwsMV0sSj1tWzE3XSgxLE5RLENbYlsxXV0pLFpLLmNhbGwodGhpcyxDWzFdLEosSyksdGhpcy52PUNbYlsyXV0sdGhpcy5SPUNbMV0sdGhpcy50YWJJbmRleD16JiZpc0Zpbml0ZSh6KSYmeiVDW2JbMl1dPT1iWzFdJiZ6PmJbMV0/ejowKSxCKTw8YlsyXT49MTcmJigoQl41NCkmMTYpPGJbMl0mJlQuY2FsbCh0aGlzLHosYlsxXSxUJC5SVCksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKChCPDwyJigoQi04JigoQj4+MiYoYj1bNjQsMTUsM10sNyl8fChBPW1bMl0oNjUsMCxLLHosSixnWzJdLmJpbmQobnVsbCwxOCkpKSwoQl43Myk+PjQpfHxULmNhbGwodGhpcyx6KSxiWzFdKSk9PWJbMl0mJgooQT0oSj16LmdldChLKSk/Si50b1N0cmluZygpOm51bGwpLGJbMV0pKT09NCYmKEs9Uls4XSg1Nix0aGlzKSxDPU9bNDhdKDMyLHRoaXMpLEo9T1s0OF0oYlswXSx0aGlzKSx6PXlbMTFdKDMzLEMsSiksdGhpcy54SltLXT16KSxCPDwxKSY3fHwoJE0uY2FsbCh0aGlzLCJmIiksdGhpcy5lcnJvcj16KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQiY2Mik9PShRPVsiSiIsInlmIiwiYXBwZW5kQ2hpbGQiXSxCKSlhOntpZihoWCYmTzQpe3A9KChLPSgoKEo9bGYoeFkoKSksSi5zdHlsZSkuYmFja2dyb3VuZENvbG9yPURtLGRvY3VtZW50KS5ib2R5W1FbMl1dKEopLE8pWzExXSg1OCxKLCJiYWNrZ3JvdW5kQ29sb3IiKSxkb2N1bWVudC5ib2R5KS5yZW1vdmVDaGlsZChKKSxLIT09RG0pO2JyZWFrIGF9cD16fXJldHVybihCLTQmNSk+PTEmJihCXjI0KT4+NDwxJiYodGhpc1tRWzFdXT1LLHY9WyIiLCJHRVQiLG51bGxdLHRoaXMuaE09ITEsdGhpcy5NPUp8fHZbMV0sCnRoaXMuWD1DfHx2WzJdLHRoaXMuSTc9bmV3IHk2KHopLHRoaXMuTzA9dlsyXSx0aGlzLnRzPXZbMF0sdGhpcy52PW5ldyB1WSxBPWJ8fERbOF0oMTYsZGtbUVswXV0oKS5nZXQoKSksbVs0N10oMjAsdGhpcy5JNyxhRSxBKSxrWzQ4XSgyLHRoaXMsZE8sIkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIpKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEJ8KChCKzMmNyk9PSgoKChCLSh2PVsiY2FsbCIsMSwidiJdLHYpWzFdPj40PT00JiYoZkc9SyxpMD16LEVSPUosb1U9WVszOV0uYmluZChudWxsLDI0KSksQi00KV42KTxCJiZCKzg+PnZbMV0+PUImJih0ZVt2WzBdXSh0aGlzLHopLHRoaXMuSD12WzFdLHRoaXNbdlsyXV09W1tdXSksQnw1Nik9PUImJihPWzE0XSg0OCx6LEspLHA9SyksMykmJihDPWVbMzldKDM5LEspLEMhPW51bGwmJihSWzQwXSh2WzFdLDE2LEMpLFlbNV0oMTYsMzIsImJpZ2ludCIsSixDLHopKSksODgpKT09QilhOmlmKGljKEspLEE9UlsxNF0oNzEsCm51bGwsSix6LEsuYVQsYiksQSE9PW51bGx8fEMmJkxHIT09MSYmSy5NIT09Y0wpe3A9QTticmVhayBhfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQl4oKHA9WzQ3LDIsInYiXSxCXjg5KTwxOCYmKEIrNSY5KT49NCYmJE0uY2FsbCh0aGlzLCJkIikscClbMV0pPj0tNTAmJihCKzgmMTIpPDMpYTp7aWYoKEE9WyEwLCExLDBdLEMpJiZDLm9uY2Upe1E9T1syMl0oMzAsQVswXSx6LEssSixDLGIpO2JyZWFrIGF9aWYoQXJyYXkuaXNBcnJheShLKSl7Zm9yKHY9QVtwWzFdXTt2PEsubGVuZ3RoO3YrKylIWzVdKDI3LHosS1t2XSxKLEMsYik7UT1udWxsO2JyZWFrIGF9UT0oSj1rWzE4XShwWzBdLEopLGdbMF0ocFsxXSx6KT96Lk8uYWRkKFN0cmluZyhLKSxKLEFbMV0sSFs0NF0oMSxDKT8hIUMuY2FwdHVyZTohIUMsYik6a1swXSgxLEFbMV0seixDLEFbMV0sYixKLEspKX1yZXR1cm4oQisoKEIrMSZwWzBdKT49QiYmQisxPj4xPEImJihRPXBLKSwzKSY2MCk+PQpCJiYoQitwWzFdJjMxKTxCJiYoSy5YKz1KLEtbcFsyXV0rPXosSj5LLk0mJihLLk09SikpLFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtyZXR1cm4oQjw8KEI+PigoQl43MSk+PigoKCgoeD1bNCwicmMtaW1hZ2VzZWxlY3QtdGFibG9vcC1lbmQiLDFdLEIpLXhbMF1eMjYpPj1CJiYoQit4WzJdJjc4KTxCJiYodGhpcy52PSIiLHRoaXMuWD1udWxsLHRoaXMuTT0hMSksQiktM3w4Mik+PUImJkItODw8eFsyXTxCJiYoTj1HWzEzXSgyNSxmdW5jdGlvbihmLEwscil7TD1bNCwhMSwocj1bMCwxLCJGIl0sMjQpXTtzd2l0Y2goZi5NKXtjYXNlIEo6aWYoKChBPXt9LEFbaHFdPXosQVtkT109IkE3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsQVthRV09RFs4XSgxMixkay5KKCkuZ2V0KCkpLEEpW1JVXT1iLnYubywoVz1HW3JbMV1dKDMzLExbMl0sZGsuSigpLmdldCgpKSk9PUspfHwhVyl7Zi5HXyhDKTticmVha31pZighRFsxMV0oMykuaXNTZWN1cmVDb250ZXh0fHwKIURbMTFdKDIpLm5hdmlnYXRvci5tZWRpYURldmljZXMpe0FbckFdPUxbclsxXV0sZi5HXyhDKTticmVha31yZXR1cm4gZi5BKExbclt2PWZ1bmN0aW9uKCl7cmV0dXJuIERbMTFdKDEpLm5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpfSwwXV0pLGYudigoMCx0JC55NSkodiwyMiksNik7Y2FzZSA2OihBW1E9Zi5YLHJBXT1RLnNvbWUoZnVuY3Rpb24oVil7cmV0dXJuIFYua2luZD09PSJ2aWRlb2lucHV0In0pLGYpW3JbMl1dKEMpO2JyZWFrO2Nhc2UgTFtyWzBdXTpmLmkoKSxBW3JBXT1MW3JbMV1dO2Nhc2UgQzpyZXR1cm4gcD1uZXcgdVkseVsyNV0oMTgscCxBKSxuPXtxdWVyeTpwLnRvU3RyaW5nKCksdGl0bGU6InJlY2FwdGNoYSBjaGFsbGVuZ2UgZXhwaXJlcyBpbiB0d28gbWludXRlcyJ9LChaPUdbclsxXV0oclsxXSxMWzJdLGRrLkooKS5nZXQoKSkpIT1LJiZaJiYobi5hbGxvdz0iY2FtZXJhIiksZi5yZXR1cm4obmV3IFZ2KGIuTS5NQSgpLG4pKX19KSksCjMpfHwodGhpcy5yZXNwb25zZT16LHRoaXMudGltZW91dD1LLHRoaXMuZXJyb3I9Sj09PXZvaWQgMD9udWxsOkosdGhpcy5pPXY9PT12b2lkIDA/bnVsbDp2LHRoaXMudHk9bnVsbCx0aGlzLnY9Yj09PXZvaWQgMD9udWxsOmIsdGhpcy5NPXA9PT12b2lkIDA/bnVsbDpwLHRoaXMuWD1BPT09dm9pZCAwP251bGw6QSx0aGlzLlF0PUM9PT12b2lkIDA/bnVsbDpDKSwyKSYyM3x8VC5jYWxsKHRoaXMseikseFsyXSkmMTUpPT0yJiYoej1bJzxkaXYgaWQ9InJjLWltYWdlc2VsZWN0IiBhcmlhLW1vZGFsPSJ0cnVlIiByb2xlPSJkaWFsb2ciPjxkaXYgY2xhc3M9IicsInJjLWltYWdlc2VsZWN0LXJlc3BvbnNlLWZpZWxkIiwnIiB0YWJJbmRleD0iMCI+PC9zcGFuPjxkaXYgY2xhc3M9IiddLE49T1s0MF0oNzksZ1syNV0oeFswXSxPWzQwXSg5OSxhWigpLHpbMF0rUlsxMV0oOSx6W3hbMl1dKSsnIj48L2Rpdj48c3BhbiBjbGFzcz0iJytSWzExXSg5LCJyYy1pbWFnZXNlbGVjdC10YWJsb29wLWJlZ2luIikrCnpbMl0rUlsxMV0oNzEsInJjLWltYWdlc2VsZWN0LXBheWxvYWQiKSsnIj48L2Rpdj4nKSxEWzMwXSg4LCIgIikpLCc8c3BhbiBjbGFzcz0iJytSWzExXSg3LHhbMV0pKyciIHRhYkluZGV4PSIwIj48L3NwYW4+PC9kaXY+JykpLE59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyKXtpZigoKEw9WyJqb2luIiwzOSwwXSxCKXwzKT4+ND49TFsyXSYmQi04PDUpYTp7aWYoKEFycmF5LmlzQXJyYXkoQSk/MjoxKT09KHA9KFc9W10sWzYzLDI3LDFFM10pLGY9W10sUT1bXSwxKSl7cjQoUSwoVz1bdixiXSxmdW5jdGlvbihWKXtXLnB1c2goVil9KSkscj1lW0xbMV1dKDI1LHBbTFsyXV0scFsxXSxXW0xbMF1dKG85KCkpKTticmVhayBhfSh4PShuPShXPShOPShyNChBLChaPVtdLGZ1bmN0aW9uKFYpe1oucHVzaChWW0pdKSxmLnB1c2goVltDXSl9KSksYk4pKChuZXcgRGF0ZSkuZ2V0VGltZSgpL3BbMl0pLGYubGVuZ3RoPT16P1tOLHYsYl06W2ZbTFswXV0odmgoKSksCk4sdixiXSkscjQoUSxmdW5jdGlvbihWKXtXLnB1c2goVil9KSxlW0xbMV1dKDI3LHBbTFsyXV0scFsxXSxXW0xbMF1dKG85KCkpKSksW04sbl0pLFopLmxlbmd0aD09enx8eC5wdXNoKFpbTFswXV0oSykpLHI9eFtMWzBdXShtZCgpKX1yZXR1cm4oQi0yJigoQjw8MiYxNSk+PTImJihCPDwyJjE0KTwxMCYmVC5jYWxsKHRoaXMseiksNykpPT0yJiYodGhpcy5hVD1EWzM2XSgyNSwxLCJzcHZ0IixKLEsseiwyMDQ4KSkscn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtpZighKEIrKEw9WzMsInNpZ24iLCJQbCJdLDYpPj40KSlhOntpZihRPVswXSxBW0xbMV1dKXRocm93IG5ldyBSYW5nZUVycm9yKCJFeHBvbmVudCBtdXN0IGJlIHBvc2l0aXZlIik7aWYoQS5sZW5ndGg9PT0wKXtmPWdbMzldKDQsUVswXSx6KTticmVhayBhfWlmKGIubGVuZ3RoPT09MCl7Zj1iO2JyZWFrIGF9aWYoYi5sZW5ndGg9PT0xJiZiLkgxKFFbMF0pPT09MSl7YltMWzFdXSYmKEEuSDEoUVswXSkmCnopPT09MD9iLmxlbmd0aD09PTA/eD1iOihOPWIuTEUoKSxOW0xbMV1dPSFiW0xbMV1dLHg9Tik6eD1iLGY9eDticmVhayBhfWlmKEEubGVuZ3RoPnopdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJpZ0ludCB0b28gYmlnIik7aWYoKFc9QVtMWzJdXShRWzBdKSxXKT09PTEpe2Y9YjticmVhayBhfWlmKFc+PUduKXRocm93IG5ldyBSYW5nZUVycm9yKCJCaWdJbnQgdG9vIGJpZyIpO2lmKGIubGVuZ3RoPT09MSYmYi5IMShRWzBdKT09PTIpeyhaPW5ldyBoRigocD16KyhXL0N8UVswXSkscCksYltMWzFdXSYmKFcmeikhPT0wKSxaLmlrKCksWikucXgocC16LHo8PFclQyksZj1aO2JyZWFrIGF9KFcmeikhPT0odj1iLG49SiwwKSYmKG49Yik7Zm9yKFc+Pj16O1chPT0wO1c+Pj16KXY9SFsyMl0oTFswXSxLLFFbMF0sdix2KSwoVyZ6KSE9PTAmJihuPW49PT1udWxsP3Y6SFsyMl0oMixLLFFbMF0sdixuKSk7Zj1ufXJldHVybihCK0xbQjw8MSY2fHwoSz1LPSgoel5SQ3xMWzBdKT4+NSkrUkMsZj0KYzJbKEslNjIrNjIpJTYyXSksMF1eMjUpPEImJkItNTw8Mj49QiYmKGY9bmV3IFByb21pc2UoZnVuY3Rpb24ocixWLFApeyhQPW5ldyBIYyh7bmV4dDpmdW5jdGlvbihxKXtyKHEpLFAudW5zdWJzY3JpYmUoKX0sZXJyb3I6Vixjb21wbGV0ZTpmdW5jdGlvbigpe1YobmV3IHU2KX19KSx6KS5zdWJzY3JpYmUoUCl9KSksZn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKCgoKEItKEM9WyJEIiwyNSw5XSxDWzJdKXw0Myk8QiYmKEItNl5DWzJdKT49QiYmKFJbMjFdKDUseixLKSxEWzIzXSgzOSxLW0NbMF1dKSxLW0NbMF1dPXosR1tDWzFdXSgxMCxLLkZnKSxLLnYmJihKPUsudixLLnY9eixKLmFib3J0KCksSi5kaXNwb3NlKCkpKSwoQiYyOCk9PUImJihiPXtpeTpuZXcgeTYoImh0dHBzOi8vY2hhdC5nb29nbGUuY29tL3B1bmN0dWFsLyIreiksZkQ6bmV3IHk2KCJodHRwczovL2NoYXQuZ29vZ2xlLmNvbS9wdW5jdHVhbC8iK3opLFFYOiExfSksQis0KSY3KT09MSlrWzZdKDU3LHosSixLKTsKcmV0dXJuIGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEIrKFE9WyJjYWxsIiwxLDhdLFFbMl0pPj40PFFbMV0mJkI+PlFbMV0+PS04MylUW1FbMF1dKHRoaXMseik7aWYoKEJ8UVsyXSk9PUIpYTp7Zm9yKHY9KEE9KEsgaW5zdGFuY2VvZiBTdHJpbmcmJihLPVN0cmluZyhLKSkseiksSy5sZW5ndGgpO0E8djtBKyspaWYoYj1LW0FdLEpbUVswXV0oQyxiLEEsSykpe3A9e3lOOkEsSEE6Yn07YnJlYWsgYX1wPXt5TjotMSxIQTp2b2lkIDB9fXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKCgoKGI9WzQsOTUsNDhdLEIpK2JbMF0+PmJbMF18fChBPW5ldyB6aChmdW5jdGlvbih2LHApe3JldHVybiBwPU9bMl0oMzksZnVuY3Rpb24oKXsodi5uZXh0KHt9KSx2KS5jb21wbGV0ZSgpfSx6KSxmdW5jdGlvbigpe2tbMTZdKDYxLHApfX0pKSwoQiY0Nik9PUIpJiYoSj1PWzMzXSgxNSx0aGlzKSx6PU9bYlsyXV0oNjQsdGhpcyksSz1PW2JbMl1dKDMxLAp0aGlzKSx6PEsmJmdbMTRdKGJbMV0sSix0aGlzLnYpKSxCKS0zPj4zPT0xJiYodGhpcy50b3A9eix0aGlzLnJpZ2h0PUssdGhpcy5ib3R0b209Six0aGlzLmxlZnQ9QyksQil8NTYpPT1CJiYoej1nNSxBPW5ldyB6LmNvbnN0cnVjdG9yKHopKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKEItKChCKygoKEI+PjImKHA9WyJNIiwzLDZdLDcpKT09MiYmKHY9NDArNCp6KSxCKzg+PjQpfHwodj1mdW5jdGlvbihRLG4sWixXLE4seCxmLEwpe0w9WzEyLDE3LDM2XTthOntOPShmPXt1RDohMH0sbiYmT2JqZWN0LmFzc2lnbihmLG4pLGcpW0xbMF1dKDU0LFEsdm9pZCAwLHZvaWQgMCxmKTt0cnl7Vz0oKFo9KHg9bmV3IEsseCkuYVQseSlbTFsyXV0oTFswXSwibnVtYmVyIixKKShaLE4pLHgpO2JyZWFrIGF9Y2F0Y2gocil7aWYociBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IHI7fWZpbmFsbHl7RFsyOF0oTFsxXSx6LE4pfVc9dm9pZCAwfXJldHVybiBXfSksCnApWzJdXjI0KTxCJiYoQi1wWzFdfDczKT49QiYmKEE9ei5hVCx2PWtbMjJdKDg4LDAsYixLLEEsQVtBJF18MCxDLCExLEoseiwhMCkpLDcpfDczKT49QiYmKEItNXwyNyk8QilhOntpZih6W3BbMF1dIT09Mil7dj0hMTticmVhayBhfXY9ISgoQz1EWzQxXSgxNywwLHopLEgpWzI3XShwWzFdLEssSixDPT09bVs0Ml0oNDYpP3ZvaWQgMDpDKSwwKX1yZXR1cm4gdn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKGI9WyJjYWxsIiwwLDMzXSwhKEIrMSY2KSlhOntpZihLIGluc3RhbmNlb2YoSj1bIiciLG51bGwsMF0semgpKXtDPUs7YnJlYWsgYX1pZihLIT16KXtpZihlWzI0XSg3OSxLW1AyXSkpe0M9T1syXSg4MCxLKTticmVhayBhfWlmKEsmJnR5cGVvZiBLLmxlbmd0aD09PSJudW1iZXIiJiZ0eXBlb2YgSyE9PSJmdW5jdGlvbiIpe0M9RFtiWzJdXSgxOCxKWzJdLEspO2JyZWFrIGF9aWYoZVsyNF0oODMsSz09ej92b2lkIDA6Sy50aGVuKSl7Qz1lWzM5XSgxNixKWzFdLEspO2JyZWFrIGF9aWYoU3ltYm9sLmFzeW5jSXRlcmF0b3ImJgplWzI0XSg4MixLPT16P3ZvaWQgMDpLW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSkpe0M9T1sxNl0oMjQsSyk7YnJlYWsgYX1pZihlWzI0XSg4MixLPT16P3ZvaWQgMDpLW09NXSkpe0M9R1s2XSg2LEpbMV0sSyk7YnJlYWsgYX19dGhyb3cgbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKEshPT1udWxsJiZ0eXBlb2YgSz09PSJvYmplY3QiP2VmKCk6SltiWzFdXStLK0pbYlsxXV0pKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpO31yZXR1cm4oQjw8MiYzKT49YlsxXSYmKEI8PDEmOCk8NCYmKHgxW2JbMF1dKHRoaXMpLHRoaXMuaT16KSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoISgoKFo9WzExLDQ2LG51bGxdLEIpfDkpPj40fHx6IGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIisKeisiIGlzIG5vdCBhbiBvYmplY3QiKTtpZigoKEJeMTYpPj40fHwoej1bInJjLWRvc2NhcHRjaGEtYm9keS10ZXh0IiwiVHJ5IGFnYWluIGxhdGVyIiwnIj48ZGl2IGNsYXNzPSInXSxLPU9bNDBdKDk4LGFaKCksJzxkaXY+PGRpdiBjbGFzcz0iJytSW1pbMF1dKDM5LCJyYy1kb3NjYXB0Y2hhLWhlYWRlciIpK3pbMl0rUltaWzBdXSg3MSwicmMtZG9zY2FwdGNoYS1oZWFkZXItdGV4dCIpKyciPicpLGdbMjVdKDY4LEsselsxXSksT1s0MF0oOTgsSywnPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSW1pbMF1dKDczLCJyYy1kb3NjYXB0Y2hhLWJvZHkiKSt6WzJdK1JbWlswXV0oMzkselswXSkrJyIgdGFiSW5kZXg9IjAiPicpLGdbMjVdKDM1LEssJ1lvdXIgY29tcHV0ZXIgb3IgbmV0d29yayBtYXkgYmUgc2VuZGluZyBhdXRvbWF0ZWQgcXVlcmllcy4gVG8gcHJvdGVjdCBvdXIgdXNlcnMsIHdlIGNhblwndCBwcm9jZXNzIHlvdXIgcmVxdWVzdCByaWdodCBub3cuIEZvciBtb3JlIGRldGFpbHMgdmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vd2Vic2VhcmNoL2Fuc3dlci84NjY0MCIgdGFyZ2V0PSJfYmxhbmsiPm91ciBoZWxwIHBhZ2U8L2E+LicpLApPWzQwXSg3OCxnWzI1XSgzNSxPWzQwXSg5NyxLLCc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1JbWlswXV0oNywicmMtZG9zY2FwdGNoYS1mb290ZXIiKSsnIj4nKSxEWzMwXSgxMywiICIpKSxJZigpKSxuPUspLChCKzImMTMpPj00KSYmKEItOSYxNik8NCl7Zm9yKGI9KHA9KChRPShBPVsiLmdldFJlc3BvbnNlIiwiLmdldFBhZ2VJZCIsIi5lYXAuaW5pdFR3b0ZhY3RvclZlcmlmaWNhdGlvbkhhbmRsZSJdLEdsLndpbmRvd1tpM10pW1BjKCldJiZHbC53aW5kb3dbaTNdW1BjKCldLmluZGV4T2YoeikhPT0tMSxHbC53aW5kb3cpW2kzXVtQYygpXT1bXSxnWzEyXSgxLEMpKSxwLm5leHQoKSk7IWIuZG9uZTtiPXAubmV4dCgpKXY9Yi52YWx1ZSxnW1pbMV1dKDY0LGVbNV0uYmluZChaWzJdLDYpLHYrIi5yZW5kZXIiKSxnW1pbMV1dKDgwLGdbMV0uYmluZChaWzJdLDU3KSx2K0spLGdbWlsxXV0oMSxEWzM3XS5iaW5kKFpbMl0sNyksditBWzBdKSxnW1pbMV1dKDEseVs4XS5iaW5kKFpbMl0sCjE2KSx2KyIuZXhlY3V0ZSIpLHY9PWg1JiZRJiYoZ1taWzFdXSg2NSxEWzQyXS5iaW5kKFpbMl0sMSksdisiLmNoYWxsZW5nZUFjY291bnQiKSxnW1pbMV1dKDY0LFJbNDVdLmJpbmQoWlsyXSwxKSx2K0FbMl0pKTtnW1pbMV1dKDgxLGZ1bmN0aW9uKCl7cmV0dXJuIEdsLndpbmRvd1tpM11bSl19LGRwK0FbMV0pfWlmKChCfDQwKT09QilhOntpZih6PT1aWzJdKXtuPXo7YnJlYWsgYX1pZih0eXBlb2Ygej09PSJzdHJpbmciJiZ6KXo9K3o7ZWxzZSBpZih0eXBlb2YgeiE9PSJudW1iZXIiKXtuPXZvaWQgMDticmVhayBhfW49QlQ9PT0yP0ZFKHopP3o+Pj4wOnZvaWQgMDp6fXJldHVybiBufSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoKChDPVsxLDQ0LDldLChCLTd8NjQpPj1CJiZCLUNbMl08PENbMF08QikmJihLPW5ldyAkWSx6PVlbMzJdKDc5LDQwOTYsSyxxNyxDWzBdLCRzKSxKPW1bMjNdKDI0LCI0NyIseiwyKS55ZSgpKSxCKS03fDc2KTxCJiYoQi1DWzBdXjEzKT49QiYmKHRoaXMudj0KbmV3IHFRKSwoKEJeQ1sxXSkmMTApPT0yJiZULmNhbGwodGhpcyx6KSxCKTw8Q1swXSYxNXx8KEo9TFIuSigpLlguZ2V0KHopKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoQz1bMTcsbnVsbCwzMl0sQnwyNCk9PUImJih0aGlzLnY9eiksKEImNjIpPT1CKSYmKEsudSgpLmRpc2FibGVkPSF6LEo9Sy51KCksR1szNV0oQ1swXSxKLCF6LCJsYWJlbC1pbnB1dC1sYWJlbC1kaXNhYmxlZCIpKSxCPj4yJjYpfHwoYj1PWzQ1XSg1MCxDWzJdLERbMjRdLmJpbmQoQ1sxXSwxOSkseikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtyZXR1cm4oQi0oKEIrKChuPVsic2xpY2UiLDI5LDQ0XSxCLTk8NCYmQis0Pj40Pj0wKSYmKEM9WzU3NzEsMSw1RTRdLHY9bmV3IGlsLEE9SFs4XShuWzJdLDQ0MjQpKDIzLDQ1LDQwLDI0LDMpLFE9WVsxOV0oMTcsOSxFUi5nZXQoKSksSFszMF0oMTQsZnVuY3Rpb24oVyxOLHgsZixMLHIsVixQLHEsYyxFLFMpe2ZvcihTPVswLApudWxsLDU1XSxFPTE0O0UhPTUwOylpZihFPT00MilQPUhbMjFdKDEzLFEscltTWzBdXSksYz1xKCkuc3Vic3RyKFNbMF0seUNbMV0pK3EoKS5zdWJzdHIocSgpLmxlbmd0aC15Q1tTWzBdXSksTD1tWzQyXSgxNSkuY2FsbChwYXJzZUZsb2F0KFArYykrUCwzMCksbVsyM10oMjMsTCx2LDUpLFY9KChmPVcucGFyZW50RWxlbWVudCk9PVNbMV0/MDooeD1mLmxhc3RDaGlsZCk9PVNbMV0/MDp4LnNyYyk/Vy5wYXJlbnRFbGVtZW50Lmxhc3RDaGlsZC5jbGFzc05hbWU6IiIsbVsyM10oMjYsVix2LDcpLEU9MTc7ZWxzZSBpZihFPT0zMilxPUhbOF0oNDQsNTQ4MykoSFs4XSgzNiw3MykoVykucmVwbGFjZSgvXHMvZyxyWzFdKSksRT1TWzJdO2Vsc2V7aWYoRT09MTcpcmV0dXJuITA7aWYoRT09MjgpRT1RJiZIWzIxXSgxNSxRLHJbU1swXV0pPzQyOjE3O2Vsc2UgaWYoRT09U1syXSlFPXEoKSYmcSgpLmxlbmd0aD5yWzJdPzM4OjExO2Vsc2V7aWYoRT09MTEpcmV0dXJuITE7RT09MTY/RT1IWzhdKDM2LAozNjcyKShXLm5hbWUrVy5pZCsoVy5nZXRBdHRyaWJ1dGUoQVtyWzJdXSgpKXx8clsxXSksQVtTWzBdXSgpLHl2KCkpPzMyOjExOkU9PTE0PyhyPVsyLCIiLDRdLEU9MTYpOkU9PTM4JiYoTj1xKCkubGVuZ3RoLGtbMTRdKDUsITAsRFs4XS5iaW5kKFNbMV0sNzMpLE4scltTWzBdXSx2LGdbMl0uYmluZChTWzFdLDE2KSksRT0yOCl9fX0seVszXSgxNikpLGI9SFs4XSgzNiw1NjQpKEooR1sxNV0oNDcpLDQxKVtuWzBdXSgwLENbMl0pKSxwPUhbOF0oMTIsNjkwMykoSFs4XShuWzJdLDU3NjgpKGIoKSxBWzNdKCkseXYoKSkucmVwbGFjZSgvXEQvZywiIilbblswXV0oLTQpKSxwKCkmJlEmJkhbMjFdKDEzLFEsMikmJm1bMV0oNjksNix2LE9bMzVdKDIsMCwzNSxIWzIxXSg1NSxRLDIpLHApKSxaPW1bMjddKDE5LDQsZ1szXSgxNiwzLEhbOF0oblsyXSwzOTcyKShiKCksQVsyXSgpK0FbQ1sxXV0oKSx5digpLDEwKSx2KSxIWzhdKDQwLENbMF0pKGIoKSxBW0NbMV1dKCkpKS55ZSgpKSw1KSYKblsxXSk8QiYmKEItOHw4KT49QiYmKFo9Sz9uZXcgV0QoZ1szMV0oMzIseixLKSk6WVl8fChZWT1uZXcgV0QpKSw1KTw8Mj49QiYmKEIrNV4yMyk8QiYmKFo9KGI9eVszOF0oNjksbnVsbCxKLEMpKT8obmV3IFByb21pc2UoZnVuY3Rpb24oVyxOKXtKLmkoYi5hY3Rpb24pLnRoZW4oZnVuY3Rpb24oeCl7eD9XKHgpOk4oRXJyb3IoIk5vIHRva2VuIikpfSxOKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKHgsZil7Zj0oeD0wLHNldEludGVydmFsKShmdW5jdGlvbigpe0ouQSgpfHwoeCsrLHg+PTImJihOKGNjKSxjbGVhckludGVydmFsKGYpKSl9LDJFMyl9LDExNTAwKX0pKS5jYXRjaChmdW5jdGlvbihXLE4seCxmKXtyZXR1cm4gRFsyM10oNjAsKHg9WzQsMCwoZj1bMSwyNSwxNV0sbnVsbCldLHhbMF0pLE9bZlsyXV0oMTIsMTAsRFsyNl0oNDUsMTEsSFszN10oZlsxXSw2LEdbNDNdKDkyLEssVz09PWNjPzE6MyxXPT14WzJdP3ZvaWQgMDpXLm1lc3NhZ2UpLEoudi5TSyksSi52Lm9yaWdpbiksCihOPWIuYWN0aW9uKT09eFsyXT92b2lkIDA6Ti5zdWJzdHJpbmcoeFtmWzBdXSx6KSkueWUoKSxKLk0pfSk6bnVsbCksQj4+MT49MyYmKEJeNjUpPDE1KSYmKHRoaXMuaT16LHRoaXMuWD1LLHRoaXMudj1udWxsLHRoaXMuTT0wKSxafSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEI+PigoQi00XjcpPj0oKEItKCgoYj1bImtXIiwxLCJLIl0sQikmMTA4KT09QiYmKG9nLmNhbGwodGhpcykseiYmbVs0MF0oOSx0aGlzLHosSykpLDcpJjcpPT0yJiYoSj1KPT09dm9pZCAwP0QxOkosQz1uZXcgQkQoeixKLEspKSxCKSYmKEItNF4yMyk8QiYmKEs9WzAsITEsMUUzXSx0aGlzLm96PUtbMF0sdGhpcy5pPVtdLHRoaXMuQT1uZXcgV04sdGhpcy5wcT10aGlzLm5xPXRoaXMuS3E9bnVsbCx0aGlzLlhnPUtbMF0sdGhpcy5pWT10aGlzLnY9dGhpcy5PPXRoaXMuUD10aGlzLmZxPXRoaXMuaj10aGlzLmw9bnVsbCx0aGlzLm51PUtbMF0sdGhpc1tiWzJdXT1udWxsLHRoaXMudnY9R1s5XSgzNiwKU2YoKSxLW2JbMV1dLHopLHRoaXMuQz10aGlzLlI9dGhpcy5XPW51bGwsdGhpcy5nPS0xLHRoaXNbYlswXV09LTEsdGhpcy5tPUtbMF0sdGhpcy5ETT0tMSx0aGlzLkg9bnVsbCx0aGlzLlU9S1swXSx0aGlzLkY9bnVsbCx0aGlzLkFMPSEwLHRoaXMua0o9S1swXSx0aGlzLmRWPUdbOV0oMjgsbUYoKSw1RTMseiksdGhpcy5kZT1HWzldKDEyLGxsKCksMUU0LHopLHRoaXMuTWo9R1s5XSgzMixFNCgpLDIseiksdGhpcy5FMz1HWzldKDQsWDcoKSwyRTQseiksdGhpcy5EPXomJnouZFR8fEtbYlsxXV0sdGhpcy5JPXZvaWQgMCx0aGlzLlFlPXomJnoudkF8fHZvaWQgMCx0aGlzLnlBPXomJnouRHR8fHZvaWQgMCx0aGlzLk15PXomJnouZUN8fEtbYlsxXV0sdGhpcy5TPSIiLHRoaXMuWD1uZXcgdWwoeiYmei5qQyksdGhpcy53Yj1sOSh6JiZ6LlFtfHxLWzJdLEtbMl0pLHRoaXMucGc9bmV3IGFVLHRoaXMuQj16JiZ6LnFifHxLW2JbMV1dLHRoaXMuTD16JiZ6Lm1LfHxLW2JbMV1dLHRoaXMuQiYmCnRoaXMuTCYmKGhUKCksdGhpcy5MPUtbYlsxXV0pLHRoaXMuWEM9eiYmei5IRHx8S1tiWzFdXSx6JiZ6LkkxJiZ0aGlzLkEuSTEoKSx6JiZ6LkhvJiYodGhpcy5BTD1LW2JbMV1dKSx0aGlzLkpMPSF0aGlzLkImJnRoaXMuQUwmJnomJnouZ1R8fEtbYlsxXV0sdGhpcy51WT12b2lkIDAseiYmei5XWSYmei5XWT5LWzBdJiYodGhpcy51WT16LldZKSx0aGlzLkZnPUtbMF0sdGhpcy5HPUtbYlsxXV0sdGhpcy5sWT12b2lkIDAsdGhpcy5vPXRoaXMucmI9bnVsbCksYilbMV0mMTUpPT1iWzFdJiYoSj1KPT09dm9pZCAwPyJyIjpKLEsuenIoKT9LLktxKCk6Sy5SeigpfHwoSy5uZyh6KSxnWzNdKDYxLEssSikpKSxDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKEI+PigoKChBPVsyMiwyLDddLEIpXjUwKSYxNSk9PUFbMV0mJih2PShDPUooSygpLDExLDIwKSk/SihDLGRBKCkpOi0xKSwxKTxBWzJdJiYoQj4+QVsxXSYzKT49MCYmKERbQVswXV0oNzQseixKLEspLEM9Si52LmVuZCgpLApIWzQ1XSgzNCxDLEopLEMucHVzaChKLk0pLHY9QyksKEIrNSYyMSk+PTE3JiYoQi1BWzFdJjEyKTwzKWE6e2ZvcihiPUooeigpLDkpLEM9MDtDPGIubGVuZ3RoO0MrKylpZihiW0NdW21IKCldJiZZWzE4XSgzMykudGVzdChiW0NdW21IKCldKSl7dj1DO2JyZWFrIGF9dj0tMX1yZXR1cm4oQi00JjExKT09MyYmKEsuTT16LEsudiYmKGNsZWFyVGltZW91dChLLnYpLEsudj12b2lkIDApKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKCgoKChCXjYxKSYodj1bNiwzMSwxNDIyXSwyNykpPT0yJiYoQz1SWzQ4XSg3MyxLLnYsUmosMSksQ3x8KEM9bmV3IFJqLEdbNDBdKDEwLDUsQyxLKSksYj1DLEo9Uls0OF0oNzAsYixrWSx6KSxKfHwoSj1uZXcga1ksSFs0NF0oNzAsYixrWSx6LEopKSxwPUopLEIrdlswXT49OCYmQjw8MTwyMikmJihiPXoub1QmJigoQz16Lm9UWzBdKT09bnVsbD92b2lkIDA6Qy50eXBlKSkmJihKPVlbNF0oNjIsYikmNjU1MzUsSz10aGlzLm8uZ2V0KEopfHwKMCx0aGlzLm8uc2V0KEosSysxKSksKEItMyYxNSk9PTQmJkxELmNhbGwodGhpcyx2WzJdLDIxKSxCKSY5Nyk9PUIpe2ZvcihDPShiPVsiYWxsb3ctbW9kYWxzIiwiYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IiwoRDYoSyx7ZnJhbWVib3JkZXI6IjAiLHNjcm9sbGluZzoibm8iLHNhbmRib3g6ImFsbG93LWZvcm1zIGFsbG93LXBvcHVwcyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIGFsbG93LXRvcC1uYXZpZ2F0aW9uIn0pLCJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24iKV0sUkIpKGJZLEspLEMuc3JjPVlbdlsxXV0oMixKKS50b1N0cmluZygpLEE9ejtBPGIubGVuZ3RoO0ErKylDLnNhbmRib3gmJkMuc2FuZGJveC5zdXBwb3J0cyYmQy5zYW5kYm94LmFkZCYmQy5zYW5kYm94LnN1cHBvcnRzKGJbQV0pJiZDLnNhbmRib3guYWRkKGJbQV0pO3A9Q31yZXR1cm4oQi0xXjkpPEImJihCKzgmdlsxXSk+PUImJihwPXlbMjNdKDksIiciLG51bGwsCiciJywwLGZ1bmN0aW9uKCl7cmV0dXJuIHp9LFN0cmluZyhLKSkucmVwbGFjZSh0VCxCYigpKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChwPVsxMCw3NywoKEImMTI2KT09QiYmKEs9e25leHQ6en0sS1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHY9SyksMTIpXSwoQnwyKSY3KT49MiYmKEI8PDEmMTUpPHBbMF0pe2ZvcihiPShBPShoWShDLmxlbmd0aC0oSnx8SyksSyksW10pLEp8fEspO2I8Qy5sZW5ndGg7Yis9eil5WzE3XSgyLCI9IixDW2JdLEEsQ1tiKzFdKTt2PUEuam9pbih6TCgpKX1yZXR1cm4oQis5JjM0KTxCJiYoQis5XnBbMl0pPj1CJiYodj1EWzhdKHBbMV0sSFs0XSg4OSxLLHosSixRQikpKSx2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkKXtpZigoQi04fDQpPCgoZD1bMiwwLCJIMSJdLEItZFswXSYxMyk9PTQmJihYPUFycmF5LmZyb20obkssZnVuY3Rpb24odCwKaCxNLFUsdyxzdyxCOCl7cmV0dXJuIE09KFU9bmV3IChzdz1nWzEyXSgoQjg9WzQsNTgsMV0sQjgpWzBdLHQpLGg9c3cubmV4dCgpLnZhbHVlLHc9c3cubmV4dCgpLnZhbHVlLCRMKSxIKVswXSg2OSxVLEI4WzJdLGgpLGtbNl0oQjhbMV0sMixNLHcpfSkpLEIpJiYoQitkWzBdJjQ3KT49QilhOntpZigoUz1bMzI3NjcsMzAsMTA3Mzc0MTgyM10sQykubGVuZ3RoPT09MCl7WD1DO2JyZWFrIGF9aWYoSi5sZW5ndGg9PT0wKXtYPUo7YnJlYWsgYX1mb3IoRT1DLmxlbmd0aCtKLmxlbmd0aCxDLld6KCkrSi5XeigpPj1TWzFdJiZFLS0sTj1uZXcgaEYoRSxDLnNpZ24hPT1KLnNpZ24pLE4uaWsoKSxhPUs7YTxDLmxlbmd0aDthKyspaWYoUT1OLGM9YSxxPUosdT1DW2RbMl1dKGEpLHUhPT0wKXtmb3IoZj0oYj1yPUssdj11Pj4+eixLKSxWPXUmU1tkWzFdXTtmPHEubGVuZ3RoO2YrKyxjKyspWj1RW2RbMl1dKGMpLEw9cVtkWzJdXShmKSxwPUwmU1tkWzFdXSxXPUw+Pj56LG49eGkocCx2KSxQPQp4aShXLFYpLHg9eGkoVyx2KSxaKz1iK3hpKHAsVikrcixiPXgrKG4+Pj56KSsoUD4+PnopLHI9Wj4+PlNbMV0sWiY9U1tkWzBdXSxaKz0oKG4mU1tkWzFdXSk8PHopKygoUCZTW2RbMV1dKTw8eikscis9Wj4+PlNbMV0sUS5xeChjLFomU1tkWzBdXSk7Zm9yKDtyIT09MHx8YiE9PTA7YysrKUE9UVtkWzJdXShjKSxBKz1yK2IsYj1LLHI9QT4+PlNbMV0sUS5xeChjLEEmU1tkWzBdXSl9WD1OLmUwKCl9cmV0dXJuKCgoQi0zXjIxKT49KEIrNCYxMHx8KFg9bVsyMl0oMjcpPyExOkRbMjBdKDMsIlRyaWRlbnQiKXx8RFsyMF0oMSx6KSksQikmJihCKzQmNTMpPEImJihYPUdbMTddKDE3LG51bGwsZnVuY3Rpb24oKXtyZXR1cm4gRFsxMV0oMSkuZnJhbWVzfSkpLEIrNyleMTgpPj1CJiYoQitkWzBdXjEyKTxCJiYoSyBpbnN0YW5jZW9mIFN0cmluZyYmKEsrPSIiKSxBPWRbMV0sYj0hMSxDPXtuZXh0OmZ1bmN0aW9uKHQpe2lmKCFiJiZBPEsubGVuZ3RoKXJldHVybiB0PUErKyx7dmFsdWU6Sih0LApLW3RdKSxkb25lOiExfTtyZXR1cm57ZG9uZTohMCx2YWx1ZTooYj16LHZvaWQgMCl9fX0sQ1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIEN9LFg9QyksWH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQiYodj1bMTA5LDIsIkZnIl0sdilbMF0pPT1CKUdbMTNdKDE2LGZ1bmN0aW9uKHAsUSl7cmV0dXJuKFE9WyJnZXRWYWx1ZSIsImNvb2tpZURlcHJlY2F0aW9uTGFiZWwiLCJ2Il0sSi5vfHwoQz1EWzExXSgzKS5uYXZpZ2F0b3IpPT1LfHwhQ1tRWzFdXSk/cC5yZXR1cm4oKTpwW1FbMl1dKERbMTFdKDMpLm5hdmlnYXRvcltRWzFdXVtRWzBdXSgpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIEoubz1ufSkseil9KTtyZXR1cm4oKEItMV4yNyk8QiYmQi12WzFdPDwxPj1CJiYodGhpcy52YWx1ZT16KSxCPj52WzFdPDEyJiYoQnwxKT4+Mz49MSkmJihiPVsiYW5pbWF0aW9uLXBsYXktc3RhdGUiLCJydW5uaW5nIiwib3BhY2l0eSJdLEMuZ2IoeiksWVszNV0oNDAsCkMuQywiZGlzcGxheSIsSiksWVszNV0oNDAsQy5DLGJbMF0sYlsxXSksWVszNV0oMzIsQy5DLGJbdlsxXV0sSyksWVszNV0oNDAsQ1t2WzJdXSxiWzBdLGJbMV0pKSwoQjw8dlsxXSYxNik8OSYmKEJeMzIpPj0yMSYmKEE9RFsyMF0oMzksSykmJiFEWzIwXSgzOSx6KSYmIURbMjBdKDcsImlQYWQiKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtyZXR1cm4oQj4+MiYoKChCLTEmKChCLShRPVsxMyxudWxsLDE1XSwoQiZRWzBdKT09QiYmKHRoaXMudj1RWzFdLHRoaXMuTT1RWzFdKSw5KSZRWzJdKT09MyYmKEo9PUs/Yj1KOihDPUoudnx8eixiPXR5cGVvZiBDPT09InN0cmluZyI/QzpuZXcgVWludDhBcnJheShDKSkscD1iKSwxMSkpPT0xJiYodGhpcy52PUo9PT12b2lkIDA/bnVsbDpKLHRoaXMuVlg9Sz09PXZvaWQgMD9udWxsOkssdGhpcy5STj1DPT09dm9pZCAwPyExOkMsdGhpcy5NPXo9PT12b2lkIDA/bnVsbDp6KSxCKTw8MSZRWzJdfHwoQT1KLmowLHpbS109ZnVuY3Rpb24oWiwKVyxOLHgpe3JldHVybiBBKFosVywoeD1bOSwzNSxudWxsXSxOKSxifHwoYj1SW3hbMV1dKDc2LCJudW1iZXIiLFp0LEhbMjRdLmJpbmQoeFsyXSwzMiksQyxrWzQ4XS5iaW5kKHhbMl0seFswXSkpLnJlKSx2fHwodj1SWzQ0XSgzLCJudW1iZXIiLEMpKSl9KSw1KSk9PTQmJihuPWZ1bmN0aW9uKCl7fSxuLnByb3RvdHlwZT1LLnByb3RvdHlwZSx6Llk9Sy5wcm90b3R5cGUsei5wcm90b3R5cGU9bmV3IG4sei5wcm90b3R5cGUuY29uc3RydWN0b3I9eix6LmJiPWZ1bmN0aW9uKFosVyxOKXtmb3IodmFyIHg9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxmPTI7Zjxhcmd1bWVudHMubGVuZ3RoO2YrKyl4W2YtMl09YXJndW1lbnRzW2ZdO3JldHVybiBLLnByb3RvdHlwZVtXXS5hcHBseShaLHgpfSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCLTl8MzgpPCgoQisoKEJ8NSk+Pih2PVsxLDI0LDExXSw0KXx8KGI9Sy5hVCxwPUdbMTJdKDMseixiLEMsUls0NV0odlsxXSwKeixiKSx2b2lkIDAsSikpLHYpWzBdXjIzKTxCJiYoQis3JjU5KT49QiYmKEM9T08sQT14TyxiPUE+PnosQT0oQTw8S3xDPj4+eileYixKKEM8PEteYixBKSksQikmJihCLTR8dlsyXSk+PUImJihwPXlbMzJdKHZbMF0sbnVsbCx6LDIsSykpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQpe2lmKEItNDw8MT49KCgoQl4zKSYyKT49KFg9WzYsMTYwLDI0XSwxKSYmQi00PFhbMF0mJihvaS5jYWxsKHRoaXMpLHRoaXMudj0hMSx0aGlzLmRlc3RpbmF0aW9uPXogaW5zdGFuY2VvZiB2ej96Om5ldyBmaighenx8ZVtYWzJdXSg1MCx6KT97bmV4dDp6IT1udWxsP3o6dm9pZCAwfTp6KSxlWzI3XSgxMix6KSYmei5hZGQodGhpcykpLEIpJiYoQi00XlhbMl0pPEIpe2lmKHU9KEE9R1s0XSg1LDAsKFY9WzEsITEsNjNdLEMpLEopLEouTSksVTQpe1E9KFc9KChRPXUsYik/KChaPU1RKXx8KFo9TVE9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIsCntmYXRhbDohMH0pKSxuPVopOigoUz13QSl8fChTPXdBPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiLHtmYXRhbDohMX0pKSxuPVMpLHg9bixBK0MpLEE9PT0wJiZXPT09US5sZW5ndGg/UTpRLnN1YmFycmF5KEEsVykpO3RyeXtmPXguZGVjb2RlKFEpfWNhdGNoKHQpe2lmKHE9Yil7aWYoSVU9PT12b2lkIDApe3RyeXt4LmRlY29kZShuZXcgVWludDhBcnJheShbMTI4XSkpfWNhdGNoKGgpe310cnl7eC5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzk3XSkpLElVPSEwfWNhdGNoKGgpe0lVPVZbMV19fXE9IUlVfXEmJihNUT12b2lkIDApO3Rocm93IHQ7fX1lbHNle2ZvcihQPShjPShOPW51bGwscD1BLFtdKSxwK0MpO3A8UDspe2lmKHI9dVtwKytdLHI8MTI4KWMucHVzaChyKTtlbHNlIGlmKHI8MjI0KWlmKHA+PVApWVs0MV0oNDksYyxiKTtlbHNlIHY9dVtwKytdLHI8MTk0fHwodiYxOTIpIT09MTI4PyhwLS0sWVs0MV0oNTQsYyxiKSk6Yy5wdXNoKChyJkspPDxYWzBdfHYmVlsyXSk7ZWxzZSBpZihyPAoyNDApaWYocD49UC1WWzBdKVlbNDFdKDUzLGMsYik7ZWxzZSB2PXVbcCsrXSwodiYxOTIpIT09MTI4fHxyPT09MjI0JiZ2PFhbMV18fHI9PT0yMzcmJnY+PVhbMV18fCgoRT11W3ArK10pJjE5MikhPT0xMjg/KHAtLSxZWzQxXSg1MixjLGIpKTpjLnB1c2goKHImMTUpPDwxMnwodiZWWzJdKTw8WFswXXxFJlZbMl0pO2Vsc2UgaWYocjw9MjQ0KWlmKHA+PVAtMilZWzQxXSg0OCxjLGIpO2Vsc2Ugdj11W3ArK10sKHYmMTkyKSE9PTEyOHx8KHI8PDI4KSsodi0xNDQpPj4zMCE9PTB8fCgoRT11W3ArK10pJjE5MikhPT0xMjh8fCgoTD11W3ArK10pJjE5MikhPT0xMjg/KHAtLSxZWzQxXSg1MCxjLGIpKTooYT0ociY3KTw8MTh8KHYmVlsyXSk8PDEyfChFJlZbMl0pPDxYWzBdfEwmVlsyXSxhLT02NTUzNixjLnB1c2goKGE+PnomMTAyMykrNTUyOTYsKGEmMTAyMykrNTYzMjApKTtlbHNlIFlbNDFdKDUxLGMsYik7Yy5sZW5ndGg+PTgxOTImJihOPUdbMjldKDQxLG51bGwsYyxOKSxjLmxlbmd0aD0KMCl9Zj1HWzI5XSg0MixudWxsLGMsTil9ZD1mfXJldHVybiBkfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQiY1Nik9PShwPVs5NCwxLDM4XSxCKSl7Sj1KPT09dm9pZCAwPyEwOko7dHJ5e1gyJiZ1TC5zZXQodGhpcyx7dXJsOksudG9TdHJpbmcoKSxZWjpKfSl9Y2F0Y2gobil7fSRrLmNhbGwodGhpcyx6LEssSixDLGIpfWlmKEIrNj4+cFsxXT49QiYmKEItNnw0MSk8QilZWzI1XSg4MCxKLEsseltBJF18MCxIWzM1XSgyOCwxMjgseltBJF18MCkseik7aWYoKEIrOCY2Mik8QiYmKEIrOV4zMSk+PUIpe2Zvcig7SiYmSi5ub2RlVHlwZSE9ejspSj1LP0oubmV4dFNpYmxpbmc6Si5wcmV2aW91c1NpYmxpbmc7UT1KfWlmKChCKzUmMzUpPj1CJiYoQisyJjc4KTxCKWE6e2lmKGIhPW51bGwmJmJbalRdPT09bmgpe1E9YjticmVhayBhfWlmKCFBcnJheS5pc0FycmF5KGIpKXtRPUM/SyYyP0pbU1BdfHwoSltTUF09R1syXShwWzFdLDM0LEopKTpuZXcgSjp2b2lkIDA7YnJlYWsgYX1RPQooKEE9KHY9YltBJF18MCx2fEsmenxLJjIpLEEpIT09diYma1twWzJdXShwWzBdLGIsQSksbmV3IEooYikpfXJldHVybiBRfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuKG49WzQwLDEwLDFdLCgoQl5uWzBdKSY3KT09MiYmdGhpcy52JiYodGhpcy5yZXNwb25zZT16LEdbNDhdKDE0LDQsdGhpcykpLChCJjc1KT09QiYmKHY9WzQsMTYsOF0sQz1LLk0sUT1LLnYscD1DW1Erel0sSj1DW1ErMl0sQT1DW1ErM10sYj1DW1ErMF0sZ1sxNF0oMzIsdlswXSxLKSxaPShiPDwwfHA8PHZbMl18Sjw8dltuWzJdXXxBPDwyNCk+Pj4wKSxCK25bMl0mMTEpPT1uWzJdJiZMRC5jYWxsKHRoaXMsMzc1LG5bMV0pLFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKCgoKEJeMTApJihBPVsicmVwbGFjZSIsNCwhMF0sMTUpKT49MTEmJihCfDkpPj5BWzFdPEFbMV0mJihKPUdbM10oMTYsMCwyLEFbMl0sMSxLLkMpLEhbMTFdKDEsSikuaHMoRjcoSy5STy5ocyhLeShmdW5jdGlvbihwLApRKXtyZXR1cm4oUT1LLkgsUS51cGRhdGUoKSxRKS52PHo/cD0hMTooUS52LS0scD0hMCkscH0pKSkpLnN1YnNjcmliZShmdW5jdGlvbigpe0suVy50aGVuKGZ1bmN0aW9uKHAsUSl7S1soUT1bMSxudWxsLCJNIl0sUSlbMl1dKG5ldyBCZSksa1syNF0oOCw1LFFbMF0sUVsxXSwwLHAucXUsSykudGhlbihmdW5jdGlvbihuKXsoKEsuTShuZXcgc0YpLEspLlA9bi5sQixPKVsyXSg4LGZ1bmN0aW9uKFopeyhLLm09KFo9WyEwLDMsOF0sWlswXSkseSlbNDVdKFpbMV0sWlsyXSw3LFpbMV0sWlswXSxwLlppLEssbil9LEsubT8wOm4uSnEpfSxmdW5jdGlvbihuLFosVyxOKXtpZihaPWdbVz1bKE49WzM5LDM0LDIxXSwxKSxudWxsLDJdLE5bMV1dKE5bMl0sV1swXSxuZXcgekYsV1syXSksbiBpbnN0YW5jZW9mIEtVKVlbMjZdKDIzLFdbMl0sWixlWzQ4XSg3MixXWzFdLG4ubWVzc2FnZSksIiIpLG4uc3RhdHVzJiZnW05bMV1dKDIwLFdbMF0sWixrW05bMV1dKE5bMF0sNDAzLDUsbi5zdGF0dXMpKSwKbi5zdGF0dXM9PT01MDMmJksuRisrO2Vsc2UgWVsyNl0oTlsyXSxXWzJdLFosZVs0OF0oNzYsV1sxXSxuLnRvU3RyaW5nKCkpLCIiKTtLLk0obmV3IEpTKTt0cnl7Sy5BLm5leHQoWil9Y2F0Y2goeCl7fUhbMjldKDYsV1swXSxLKX0pfSxmdW5jdGlvbihwLFEsbixaKXtRPShuPShaPVsiIiwxNyxudWxsXSxnKVszNF0oWlsxXSwxLG5ldyB6RiwxMyksWSlbMjZdKDI0LDIsbixlWzQ4XSg2NCxaWzJdLHAudG9TdHJpbmcoKSksWlswXSksSy5BLm5leHQoUSl9KX0pKSxCKTw8MSY2KTwzJiZCPDwyPj0tNjAmJiEoQy5ub2RlTmFtZSBpbiBDVSkpaWYoQy5ub2RlVHlwZT09eilKP0sucHVzaChTdHJpbmcoQy5ub2RlVmFsdWUpW0FbMF1dKC8oXHJcbnxccnxcbikvZywiIikpOksucHVzaChDLm5vZGVWYWx1ZSk7ZWxzZSBpZihDLm5vZGVOYW1lIGluIGJEKUsucHVzaChiRFtDLm5vZGVOYW1lXSk7ZWxzZSBmb3IoYj1DLmZpcnN0Q2hpbGQ7YjspSFsyOV0oOSwzLEssSixiKSxiPWIubmV4dFNpYmxpbmc7CnJldHVybihCXjIxKT4+QVsxXXx8VC5jYWxsKHRoaXMseiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQj4+KHY9WyJ2Iiw4LDJdLHYpWzJdJjE1KT09dlsyXSl7Qz0nPGRpdiBjbGFzcz0iJysoYj1bIlRhcCB0aGUgY2VudGVyIG9mIHRoZSA8c3Ryb25nPnN0cmVldCBzaWduczwvc3Ryb25nPiIsIlRhcCB0aGUgY2VudGVyIG9mIHRoZSA8c3Ryb25nPmNhcnM8L3N0cm9uZz4iLCIvbS8wNHc2N18iXSxSWzExXSg3LCJyYy1pbWFnZXNlbGVjdC1kZXNjLW5vLWNhbm9uaWNhbCIpKSt6O3N3aXRjaChIWzQ0XSg3LEopP0oudG9TdHJpbmcoKTpKKXtjYXNlICJUaWxlU2VsZWN0aW9uU3RyZWV0U2lnbiI6Qys9YlswXTticmVhaztjYXNlICIvbS8wazRqIjpDKz1iWzFdO2JyZWFrO2Nhc2UgYlt2WzJdXTpDKz0iVGFwIHRoZSBjZW50ZXIgb2YgdGhlIDxzdHJvbmc+bWFpbCBib3hlczwvc3Ryb25nPiJ9QT1URChDK0spfWlmKEIrKChCfDU2KT09QiYmKEsuZz0xLEsuQz1lWzQ5XSh2WzFdLAp5WzE1XSgzNCxKKSksSy5sPUMsSy5JPSEwLFJbNDFdKDE4LHosMCxLLG51bGwpKSx2KVsyXTwxMSYmKEJ8dlsxXSk+PjM+PTApe2ZvcihiTihLKTtLPjEyNzspSlt2WzBdXS5wdXNoKEsmMTI3fDEyOCksSz4+Pj16O0pbdlswXV0ucHVzaChLKX1yZXR1cm4gQj4+MT49NyYmQis0PDI1JiZBcnJheS5mcm9tKEspLnJldmVyc2UoKS5zb21lKHopLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKChCPDwyPj0oYj1bMSwzMCw2XSwyNCkmJihCXjcpPDMxJiZ0aGlzJiZ0aGlzLk9sJiYoej10aGlzLk9sKSYmei50YWdOYW1lPT1nXyYmSFszN10oMjMsbnVsbCwhMCx6LHRoaXMudHUpLEIpXjcxKTwxMSYmKChCfGJbMF0pJjE1KT49YlsyXSYmSjMuY2FsbCh0aGlzLHosSyksQl4zNikmMTF8fChBPWtbMTBdKDI5LGVbNDZdKDEyLEssQy5UKCkpLGVbMjBdKDIseixKKSkudGhlbihmdW5jdGlvbih2KXtyZXR1cm4gZzBbNF0oMTQsZ1sxNF0oNixkeSksdixKKX0pKSxCKS0yPDxiWzBdPj0KQiYmKEItMl5iWzFdKTxCKWcwW2JbMl1dKGJbMl0sZnVuY3Rpb24odixwKXtrWzQ4XSgzMix0aGlzLHAsdil9LEsseik7cmV0dXJuIEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuKCgoKChCXjU1KSYyNik9PSgoQiYyNSk9PShRPVsxLCJQMSIsMl0sQikmJihuPUdbMTNdKDksZnVuY3Rpb24oWixXLE4pe049WzAsKFc9WzksbnVsbCw0XSwiWCIpLCExXTtzd2l0Y2goWi5NKXtjYXNlIDE6dj1XWzFdLEE9SjtjYXNlIDI6aWYoIShBPHopKXtaLkdfKFdbMl0pO2JyZWFrfWlmKCEoQT5KKSl7Wi5HXyhLKTticmVha31yZXR1cm4gWi52KG1bMzFdKDQ4LFdbMV0sMUUzKSxLKTtjYXNlIEs6cmV0dXJuIFouQShDKSxaLnYoUlszOV0oNywic3R5bGUiLCJjbGFzcyIsTlsyXSxXWzFdLGIpLFdbTlswXV0pO2Nhc2UgV1tOWzBdXTpyZXR1cm4gWi5yZXR1cm4oWltOWzFdXSk7Y2FzZSBDOnY9cD1aLmkoKTtjYXNlIHo6QSsrLFouR18oMik7YnJlYWs7Y2FzZSBXWzJdOnRocm93IHY7Cn19KSksUVsyXSkmJlQuY2FsbCh0aGlzLHopLChCPj5RWzBdJjE0KT09UVsyXSkmJihLLksmJmcwWzZdKDM5LGZ1bmN0aW9uKFosVyl7bVs5XSg5LHosVyxaKX0sSy5LKSxLLlImJmcwWzZdKDU1LGZ1bmN0aW9uKFosVyl7bVs5XSgxNSx6LFcsWil9LHt9KSksKEI+PlFbMl0mMTUpPT0zKSYmei5YLnB1c2goei5kZix6LlNYLHoueXQsei5vYix6LlJiLFlbUVsyXV0oODIsZnVuY3Rpb24oWixXKXtyZXR1cm4hIVomJiEhV30seikpLChCXjkwKT4+Myl8fCh0aGlzLk09eix0aGlzLnY9Sz09PXZvaWQgMD9udWxsOkssdGhpc1tRWzFdXT1KPT09dm9pZCAwP251bGw6Six0aGlzLkJkPUM9PT12b2lkIDA/ITE6Qyksbn0sZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKChCXjMxKTwoQz1bMCwiY2FsbCIsMl0sMTYpJiYoQl41MCk+PTYpe2E6e2lmKHo9R2wubmF2aWdhdG9yKWlmKEo9ei51c2VyQWdlbnQpe0s9SjticmVhayBhfUs9IiJ9Yj1LfWlmKChCXjMzKTwyMSYmKEJ8OCk+PTMpVFtDWzFdXSh0aGlzLAp6KTtyZXR1cm4oKCgoQl42MCk+PjQ+PTMmJihCfDUpPj40PDEmJihnWzMyXSg4MyxDWzBdLHosWWooKS1EWzE4XSg2OSx5WzQwXSg3LG51bGwseixDWzJdKSkpLHQkLkFzKHopKSwoKEJeNTYpJjExKT09MSkmJihLPXouRCx6LkQ9W10sYj1LKSxCPDwxKSY4KTw0JiYoKEJeNDApJjcpPj0zJiYoYj0oSj1LIT16P0s6dm9pZCAwKSE9ej9KOlByb21pc2UpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCEoKEJ8KCgoKFE9WzEsIk0iLCJBIl0sQj4+UVswXSkmMTN8fChwPUsuWD09SmZ8fEsuWD09QVM/Z1syNl0oMTgseixLLnYpOm51bGwpLEIpLTReNik8QiYmKEItNl4xMCk+PUImJih0aGlzW1FbMl1dPXp8fDEwLEo9WyJocSIsImgyIiwxXSxHbC5QZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmc/KEM9R2wucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpLEs9Qy5sZW5ndGg+MCYmKENbMF0ubmV4dEhvcFByb3RvY29sPT1KWzBdfHxDWzBdLm5leHRIb3BQcm90b2NvbD09CkpbUVswXV0pKTpLPSEhKEdsLmNocm9tZSYmR2wuY2hyb21lLmxvYWRUaW1lcyYmR2wuY2hyb21lLmxvYWRUaW1lcygpJiZHbC5jaHJvbWUubG9hZFRpbWVzKCkud2FzRmV0Y2hlZFZpYVNwZHkpLHRoaXMuaT1LP3RoaXNbUVsyXV06MSx0aGlzLnY9bnVsbCx0aGlzLmk+SlsyXSYmKHRoaXMudj1uZXcgU2V0KSx0aGlzLlg9W10sdGhpc1tRWzFdXT1udWxsKSwyKSk+PjQpKXtmb3IoQT0oYj0oQz0wLEouVEUpLEouSHYpO0M8S1tRWzFdXS5sZW5ndGg7QysrKXtpZigodj1LW1FbMV1dW0NdLHYuVEUpPj1iJiZ2Lkh2PD1BKWJyZWFrOygoYj1oWSh2LlRFLGIpLHYuVEUpPGImJih2LlRFPWIsSy5nKz16KSxBPWw5KHYuSHYsQSksdikuSHY9QX1LLkRNKEopJiZLLktxKEopJiZSWzM4XShRWzBdLFFbMF0sMixLKX1yZXR1cm4oKEJ8MikmNyk9PTImJih0aGlzLm1lc3NhZ2U9eix0aGlzLm1lc3NhZ2VUeXBlPUssdGhpcy52PUopLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKEI+PgoyJihwPVs0MiwhMSw4XSw3KSkpYTp0cnl7dj1SW3BbMF1dKDQ5LEspPno/Sy52LnN0YXR1czotMTticmVhayBhfWNhdGNoKFEpe3Y9LTE7YnJlYWsgYX1pZighKCgoQi1wWzJdPj01JiYoQi03JnBbMl0pPHBbMl0mJih2PUsmej9sOnZvaWQgMCksQileNTMpJjMpKWE6e2lmKEsubGVuZ3RoPkoubGVuZ3RoKXt2PXBbMV07YnJlYWsgYX1pZihLLmxlbmd0aDxKLmxlbmd0aHx8Sz09PUope3Y9ITA7YnJlYWsgYX1mb3IoYj16O2I8Sy5sZW5ndGg7YisrKXtpZihBPShDPUtbYl0sSltiXSksQz5BKXt2PXBbMV07YnJlYWsgYX1pZihDPEEpe3Y9ITA7YnJlYWsgYX19fXJldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoKChiPVswLDUsNDhdLChCKzNeMTYpPj1CKSYmKEItYlsxXXw0MSk8QiYmKEs9PT12b2lkIDAmJihLPXpbQSRdfGJbMF0pLEsmMzImJiEoSyY0MDk2KSYma1szOF0oNzcseixLfDQwOTYpKSxCPj4yPj0tNjUmJihCLTcmOCk8YlsxXSkmJnBxLmNhbGwodGhpcywKSngpLEJ8YlsyXSk9PUIpZzBbNl0oNTQsZnVuY3Rpb24odixwLFEsbil7bj1bImFyaWEtIiwoUT1bMCwiZGF0YS0iLCJmb3IiXSwibGFzdEluZGV4T2YiKSwic2V0QXR0cmlidXRlIl0scD09ej9DLnN0eWxlLmNzc1RleHQ9djpwPT1LP0MuY2xhc3NOYW1lPXY6cD09UVsyXT9DLmh0bWxGb3I9djp2ZS5oYXNPd25Qcm9wZXJ0eShwKT9DW25bMl1dKHZlW3BdLHYpOnBbblsxXV0oblswXSxRWzBdKT09UVswXXx8cFtuWzFdXShRWzFdLFFbMF0pPT1RWzBdP0NbblsyXV0ocCx2KTpDW3BdPXZ9LEopO3JldHVybiBBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oKEIrMiYoKEI8PDImMTIpPChiPVsyOCwic2V0VGltZW91dCIsN10sYilbMl0mJkI8PDE+PS04MiYmKEE9bVsyM10oMzIsSixLLHosbCkpLGIpWzBdKT49QiYmKEIrOSY3OCk8QiYmKEMhPXomJkdsLmNsZWFyVGltZW91dChDKSxKLm9ubG9hZD1mdW5jdGlvbigpe30sSi5vbmVycm9yPWZ1bmN0aW9uKCl7fSxKLm9ucmVhZHlzdGF0ZWNoYW5nZT0KZnVuY3Rpb24oKXt9LEsmJndpbmRvd1tiWzFdXShmdW5jdGlvbigpe2VbNDZdKDExLEopfSwwKSksQiYxMTEpPT1CJiZULmNhbGwodGhpcyx6KSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChCKzleMjEpPj0odj1bIiAgIiwzLDZdLEIpJiYoQi0yXnZbMV0pPEImJihLPU9bMzNdKDQyLHRoaXMpLHo9Z1szN10oMTYsdGhpcyksdGhpcy5BLnB1c2gobmV3IHdGKHRoaXMueEpbel0sdGhpcy52LnYrSyxudWxsLHosMixNNSxNNSkpKSwoQis3JjcpPT0xKXtpZigoQz1LLnUoKSxHKVsyOV0oMjMseikpSy51KCkucGxhY2Vob2xkZXIhPUsuWCYmKEsudSgpLnBsYWNlaG9sZGVyPUsuWCk7ZWxzZSBZWzFdKDM4LCEwLEspO09bMV0oNzIsVEYsQyxLLlgpLE9bMjZdKDI2LCIiLEspPyhiPUsudSgpLFJbMjddKDgsYiwibGFiZWwtaW5wdXQtbGFiZWwiKSk6KEsuUnx8Sy5PY3x8KEo9Sy51KCksUls4XSh2WzFdLCJsYWJlbC1pbnB1dC1sYWJlbCIsSikpLEdbMjldKDIyLHopfHxPWzJdKDcsCksubywxMCxLKSl9cmV0dXJuKEItdlsyXV44KT49QiYmQi03PDwxPEImJihiPVsiICIsJzxkaXYgY2xhc3M9IicsJyI+J10sRU8oKSxpbSgpLGNmKCksSj1IWzQ1XSg3NixZTygpLHouc1ksaW0oKSxjZigpKSxLPUhbNDVdKDQwLGp4KCksei5CRCxpbSgpLHlQKCkpLEM9SFs0NV0oNDQscFUoKSx6LkFxLGltKCksdW0oKSksWHIoKSxpbSgpLHVtKCksYWYoKSxpbSgpLHVtKCksaFEoKSxpbSgpLHVtKCksZGQoKSxpbSgpLHVtKCksQT1PWzQwXSg5NyxnWzI1XSh2WzFdLGdbMjVdKDUyLGdbMjVdKHZbMV0sT1s0MF0oNzksYVooKSxiWzFdK1JbMTFdKDcxLCJyYy1hbmNob3IiKStiWzBdK1JbMTFdKDcxLCJyYy1hbmNob3ItaW52aXNpYmxlIikrYlswXStSWzExXSg3MyxKKSt2WzBdKyhLPT09MXx8Sz09PTI/UlsxMV0oNzEsInJjLWFuY2hvci1pbnZpc2libGUtaG92ZXIiKTpSWzExXSg3LCJyYy1hbmNob3ItaW52aXNpYmxlLW5vaG92ZXIiKSkrYlsyXSksWVsyMl0oMTEsei5odSkpLERbMzNdKDY2KSksCks9PT0xIT09Qz9nWzI1XSg1MixnWzI1XSh2WzFdLGFaKCkseVs0N10oNTEsYlsyXSxiWzBdLHopKSx5WzFdKDE1LHopKTpnWzI1XSg2NyxnWzI1XSgzNSxhWigpLHlbMV0oMTYseikpLHlbNDddKDQsYlsyXSxiWzBdLHopKSksSWYoKSkpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoKXtpZigodD1bMTMsInYiLDRdLEI8PDEmMTUpPj10WzBdJiYoQl42Nik+PjU8dFsyXSl7Zm9yKFY9KGM9KFM9WyExLG51bGwsMTJdLEE9bmV3IGV1LGcpWzEyXSg3LEpbdFsxXV0pLGMubmV4dCgpKTshVi5kb25lO1Y9Yy5uZXh0KCkpbj1WLnZhbHVlLHE9bmV3IFE4LG4udmFsdWU9PT1udWxsPyhRPXEsZj1uZXcgblUsZVt0WzBdXSgyMSxTWzFdLG5VLHRbMF0sR0csUSxmKSk6bi52YWx1ZSBpbnN0YW5jZW9mIGV0P25bdFsxXV0/KE49cSxQPW4udmFsdWUudG9TdHJpbmcoKSxHWzI2XSg4LEdHLHRbMl0sUD09U1sxXT9QOgpEWzM0XSgzNCwhMCx2b2lkIDAsUCksTikpOihMPXEsdT1uLnZhbHVlLnRvU3RyaW5nKCksR1syNl0oMSxHRywyLHU9PVNbMV0/dTpEWzM0XSgzOCwhMCx2b2lkIDAsdSksTCkpOm4udmFsdWUgaW5zdGFuY2VvZiBadT9uW3RbMV1dPyh4PXEscD1PWzI1XSgzNCx6LEssbi52YWx1ZS52YWx1ZSksZD14LEdbMjZdKDksR0csNixSWzExXSgyMCwwLHApLGQpKTooQz1xLGI9T1syNV0oMTQseixLLG4udmFsdWUudmFsdWUpLFo9QyxHWzI2XSgzMixHRyw4LFJbMTFdKDMyLDAsYiksWikpOnR5cGVvZiBuLnZhbHVlPT09InN0cmluZyI/blt0WzFdXT9SWzI1XSgyNyxTWzFdLDMsbi52YWx1ZSxHRyxxKTpSWzI1XSg1OCxTWzFdLEssbi52YWx1ZSxHRyxxKTpuLnZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheT9uW3RbMV1dPyhYPXEsR1syNl0oMTcsR0csNSxHWzQyXSg1MCxTWzFdLFNbMF0sbi52YWx1ZSksWCkpOihhPXEsR1syNl0oMjQsR0csNyxHWzQyXSg1OCxTWzFdLFNbMF0sbi52YWx1ZSksCmEpKTpuLnZhbHVlIGluc3RhbmNlb2YgR3E/blt0WzFdXT8odj1xLHI9RFs0MV0oODgsU1sxXSwwLG4udmFsdWUpLGVbdFswXV0oMTYsU1sxXSxTdCwxMSxHRyx2LHIpKTooRT1xLFc9RFs0MV0oODksU1sxXSwwLG4udmFsdWUpLGVbdFswXV0oMTAsU1sxXSxTdCxTWzJdLEdHLEUsVykpOnE9bi52YWx1ZVt0WzFdXSxnWzFdKDY2LFNbMV0sUTgsQSxxKTtoPUF9aWYoQisyPj4zPj0wJiYoQl43NCk8NilhOnRyeXtoPVJbNDZdKDUsMSx6KS5nZXRJdGVtKEspO2JyZWFrIGF9Y2F0Y2goTSl7aD1udWxsO2JyZWFrIGF9cmV0dXJuKChCXjIwKT4+dFsyXTwzJiYoQnwxKT4+dFsyXT49MiYmKExELmNhbGwodGhpcywyMDMzLDI0LFsyXSksdGhpcy5WPXRoaXMuTT10aGlzLlg9dGhpcy5pPS0xLHRoaXMuQT1nWzddKDM5KSksQi0zPj50WzJdKXx8KHRoaXNbdFsxXV09W10pLGh9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oQi0oKEJ8MzIpPT0oKEM9WyJ2Iiw4LDU1XSwoQnxDWzFdKT49MykmJgooQl4xOCk8Q1sxXSYmKEs9U3RyaW5nKHopLGI9IjAwMDAwMDAiLnNsaWNlKEsubGVuZ3RoKStLKSxCKSYmKHRlLmNhbGwodGhpcyx6KSx0aGlzLkQ9W10sdGhpcy5CPSExLHRoaXMuZz1bXSksQ1sxXSl8Q1syXSk8QiYmKEIrQ1sxXV4xOCk+PUImJihvZy5jYWxsKHRoaXMpLHRoaXNbQ1swXV09eix0aGlzLlg9LTEsdGhpcy5pPW5ldyBXZSh0aGlzW0NbMF1dKSx5WzQzXSg1OCx0aGlzLmksdGhpcyksKHM0JiZ6bnx8RmZ8fEkyKSYmSFs1XSgyNix0aGlzW0NbMF1dLFtndixOSF0sdGhpcy5BLCExLHRoaXMpLEt8fChIWzVdKDI2LHRoaXMuaSxhMyx0aGlzLk0sITEsdGhpcyksSFs1XSgyNyx0aGlzW0NbMF1dLHNYLHRoaXMuUiwhMSx0aGlzKSksdGhpcy5GPUopLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKCgoKHA9WyJkaXNwbGF5TmFtZSIsMyw5XSxCKS03Pj0xMCYmKEIrcFsyXSYxMik8NyYmKHRoaXMudj1LLHRoaXMubWFwPXopLEI+PjEpJjcpPT0xKXtmb3IoQT0KKEFycmF5LmlzQXJyYXkoYil8fChiJiYoT0ZbMF09Yi50b1N0cmluZygpKSxiPU9GKSwwKTtBPGIubGVuZ3RoO0ErKyl7aWYodj1IWzVdKDI1LEosYltBXSxDfHxLLmhhbmRsZUV2ZW50LHp8fCExLEsuSHx8SyksIXYpYnJlYWs7Sy5XW3Yua2V5XT12fVE9S31yZXR1cm4oQnxwWzFdKT4+NHx8KFE9eltwWzBdXXx8ei5uYW1lfHwidW5rbm93biB0eXBlIG5hbWUiKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEI+PjImKGI9WyJSVCIsMCw1XSxiWzJdKXx8VC5jYWxsKHRoaXMseixiWzFdLGNSW2JbMF1dKSxCfDI0KT09Qil7Zm9yKHo9YlsxXTtmRz1mRy5wYXJlbnRFbGVtZW50fHxudWxsOyl6Kys7Qz16fXJldHVybihCKzleNCk+PUImJihCKzdeMTkpPEImJihKPXosSy5NJiYoSj1LLk0sSy5NPUoubmV4dCxKLm5leHQ9eiksSy5NfHwoSy5pPXopLEM9SiksQ30sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybigoQz1bOCwzLDRdLEIrN14yOSk+PUImJihCKzImOSk8QiYmKGI9Cks9KHomSj9LfHo6SyYtMykmLTI3MyksQnxDWzFdKT4+Q1syXXx8KGI9bmV3IElwKGZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTil7aWYoTj0ocD0oUT1mdW5jdGlvbih4KXt2KHgpfSxKKS5sZW5ndGgsW10pLHApZm9yKFo9ZnVuY3Rpb24oeCxmKXsoTlt4XT1mLHAtLSxwPT0wKSYmQShOKX0sVz0wO1c8Si5sZW5ndGg7VysrKW49SltXXSxSWzQ5XSgzLHosSyxudWxsLG5nKFosVyksbixRKTtlbHNlIEEoTil9KSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCfDcyKT09KCgoKEItNzw8KHA9WyJvYmplY3QiLDMyLCJ2Il0sMik8QiYmKEIrM14yMyk+PUImJihLPXR5cGVvZiB6LHY9Sz09cFswXSYmeiE9bnVsbHx8Sz09ImZ1bmN0aW9uIiksQl42Mik8MjImJihCPDwyJjE1KT49NiYmKHY9SFsyNV0oNDEsT1s5XSgyNyw5KSx6KSksQikrOV4xMik8QiYmKEIrNl5wWzFdKT49QiYmKEM9R1szOF0oMjUsbnVsbCxDLEspLHlbMzhdKDMsYixDLHosSiksQyYmIXlbMl0ocFsxXSwKQykmJkhbMzZdKDMsei5hVCksdj16KSxCKSYmKFlbMzddKDUsSyxKKSxLPVpmKEspLCFKJiYhZ2R8fEs+PXomJk51KEspP0M9Szooa1sxMl0oMTAseixLKSxDPWtbMzldKDE2LHosT08seE8pKSx2PUMpLEItNT4+Mz09MSYmKGI9Yj09PXZvaWQgMD9udWxsOmIsQT1bMTAwLDM2LDBdLEpbcFsyXV0mJih5WzE1XSgxLEFbMV0sQVsyXSxLLEosSltwWzJdXSksRFsyM10oNDcsSltwWzJdXSkpLEpbcFsyXV09Uls0M10oMyxiLEMpLHlbMTBdKDY0LEFbMV0sSltwWzJdXSxKKSxKW3BbMl1dLnJlbmRlcihKLnUoKSksZ1s0NF0oNSwiKSIsQVswXSxBWzJdLEoudSgpKSxEWzI1XSgzNCwiLiIsSi51KCkpLnRoZW4oZnVuY3Rpb24oUSl7Z1soUT1bNjAsInUiLDQ0XSxRKVsyXV0oNCwiKSIsMTAwLHosSltRWzFdXSgpKSxnWzNdKFFbMF0sSiwiZyIpfSkpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKChCLTd8KCgoKEJ8KChCLTUmKEE9WzAsMTMsIk0iXSwxMSkpPT0zJiYoYj1LKSwyNCkpPT0KQiYmKHRoaXMuWD1bXSx0aGlzW0FbMl1dPUFbMF0sdGhpcy52PW5ldyB4UCksQj4+MSkmNyk9PTEmJnoubGVuZ3RoIT09MCYmKEsuWC5wdXNoKHopLEtbQVsyXV0rPXoubGVuZ3RoKSxBWzFdKSk8QiYmKEItNXwyMyk+PUIpe2lmKEMuU3EmJkMuWk0mSiYmIUspdGhyb3cgRXJyb3IobjUpO0MuR0o9KCFLJiZDLlpNJkomJnlbMzNdKDI4LDEsQyx6LEopLEs/Qy5HSnxKOkMuR0omfkopfXJldHVybiBifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pe3JldHVybihCXigoKE49WzI1LDMzLDFdLEImOTEpPT1CJiYoSz1nWzIzXSg0MyksZ1szXSg0OCxLLG5ldyBEdShLLHopKSksKEImMTAxKT09QikmJihKPXR5cGVvZiBLLFc9SiE9ej9KOks/QXJyYXkuaXNBcnJheShLKT9mVSgpOko6SjAoKSksKEI+Pk5bMl0mMTYpPDQmJihCfDIpPj40Pj1OWzJdJiYocD1bbnVsbCwxLDNdLGIueXk9QT09PXZvaWQgMD8hMDpBLGIub3o9Z1sxMl0oMTIsa1s0Ml0oNDIsYixwW05bMl1dKSkubmV4dCgpLnZhbHVlLApuPWIudigpLmZsYXQoSW5maW5pdHkpLFE9bi5maW5kSW5kZXgoZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBPbCYmbVsxXSgyMCx4LDEpPT1DfSksWj1IWzEyXShOWzBdLG5bUV0scFsyXSxtMyxrWzNdKDM4KSksdj1bZ1s1XSgxOCxKLGIub3opLEhbNDRdKDQ2LG1bMTRdKDEwLHBbTlsyXV0scFswXSxaW3BbTlsyXV1dKSksZ1szMV0oMTIscFtOWzJdXSxLLG4sYixiLnh3KV0sT1syM10oTlswXSx6LGIpLFc9diksNTkpKTwyMCYmQjw8Mj49NyYmKFc9T1s0NV0oMzUpP1o4LnBsYXRmb3JtPT09Im1hY09TIjpEWzIwXShOWzFdLCJNYWNpbnRvc2giKSksV30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe3JldHVybigoKE49WyJSIiw2LDExN10sQikrTlsxXT4+MTxCJiYoQi00Xk5bMV0pPj1CJiYocD1bMSwicHgiLDE0XSx2PU9bNDNdKDY1LGJbTlswXV0pLndpZHRoLXBbMl0sbj1KPT16JiZDPT16PzE6MixBPW5ldyBibSgoQy1wWzBdKSpuKkssKEotCnBbMF0pKm4qSyksWj1uZXcgYm0odi1BLndpZHRoLHYtQS5oZWlnaHQpLFE9cFswXS9KLFc9cFswXS9DLFoud2lkdGgqPVcsWi5oZWlnaHQqPXR5cGVvZiBRPT09Im51bWJlciI/UTpXLFouZmxvb3IoKSx4PXtYNzpaLmhlaWdodCtwWzFdLGJCOloud2lkdGgrcFsxXSxyb3dTcGFuOkosY29sU3BhbjpDfSksQiZOWzJdKT09QiYmKHg9eiksQi05fDU1KTxCJiYoQis0JjQ0KT49QiYmKHg9b1goSy5BLGZ1bmN0aW9uKGYpe3JldHVybiB0eXBlb2YgZlt6XT09PSJmdW5jdGlvbiJ9KSkseH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybihCKygoQi05Jigodj1bMSxudWxsLDE5XSxCfDY0KT09QiYmKEE9bmV3IFdOLEdsLkltYWdlPyhiPW5ldyBJbWFnZSxiLm9ubG9hZD1uZyhtWzRdLmJpbmQodlsxXSw4OCksQSwiVGVzdExvYWRJbWFnZTogbG9hZGVkIix6LEMsYiksYi5vbmVycm9yPW5nKG1bNF0uYmluZCh2WzFdLDg5KSxBLCJUZXN0TG9hZEltYWdlOiBlcnJvciIsSyxDLApiKSxiLm9uYWJvcnQ9bmcobVs0XS5iaW5kKHZbMV0sOTApLEEsIlRlc3RMb2FkSW1hZ2U6IGFib3J0IixLLEMsYiksYi5vbnRpbWVvdXQ9bmcobVs0XS5iaW5kKHZbMV0sOTEpLEEsIlRlc3RMb2FkSW1hZ2U6IHRpbWVvdXQiLEssQyxiKSxHbC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoYi5vbnRpbWVvdXQpYi5vbnRpbWVvdXQoKX0sMUU0KSxiLnNyYz1KKTpDKEspKSwxNCkpPDQmJihCPj4yJjcpPj12WzBdJiYoQz1DPT09dm9pZCAwPyExOkMsR1sxM10oMjUsZnVuY3Rpb24oUSxuKXtpZihRLk09PShuPVsyLDEsInYiXSxuWzFdKSlyZXR1cm4gUVtuWzJdXShMVShlWzMxXSgyMSksbVszNV0oNTkpLHZvaWQgMCxEWzExXShuWzFdKS5FcnJvcigpKSxuWzBdKTtLLkE9KEE9KGI9US5YLGZ1bmN0aW9uKFope3JldHVybihaPVsiUHYiLCExLDFdLFkpWzIzXShaWzJdLDEyLHosWlsyXSxaWzFdLEssQyxKLGJbWlswXV0oKSl9KSxLKS5BLnRoZW4oQSxBKSxRLlIoKX0pKSx2WzBdKT4+MjwKQiYmQis3Pj52WzBdPj1CJiYoYj16LHA9ZnVuY3Rpb24oKXtyZXR1cm4oYj0oSipiK0spJUMsYikvQ30pLEJ8MjQpPT1CJiYocD1ZW3ZbMl1dKDUseixLKSkscH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoQis3Pj4oUT1bbnVsbCwyMywicHJvdG90eXBlIl0sMSk8QiYmKEIrNF4yMik+PUIpe2lmKHo+KChKPVJYKEFycmF5LFt6XSx0aGlzLmNvbnN0cnVjdG9yKSxKKS5zaWduPUssT2JqZWN0LnNldFByb3RvdHlwZU9mKEosaEZbUVsyXV0pLHJ2KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF4aW11bSBCaWdJbnQgc2l6ZSBleGNlZWRlZCIpO3A9Sn1yZXR1cm4oQi00Pj40fHwodj1ZWzQ2XSg4OSwyLGIsQSksQS5BPUEuQS50aGVuKHYsdikudGhlbihmdW5jdGlvbihuLFosVyl7cmV0dXJuIEdbMTNdKDgsZnVuY3Rpb24oTix4LGYsTCxyKXtpZigoKFo9ISEoZj0oeD0oVz1BLnYuTyxbMywocj1bMCwxNywxOV0sNCksbnVsbF0pLGRrLkooKS5nZXQoKSksWVtyWzJdXSgzNiwKeixmKSksYikubWR8fFopJiZXKXJldHVybiBOLnJldHVybihnWzldKDE0LDQyLHhbclswXV0seFsyXSx4WzFdLFcsbixBLFopKTtyZXR1cm4gbj0oTD1uLEEuZyYmbVsyM10oMzQsQS5nLEwsQyxsKSxMKSxOLnJldHVybihtWzIwXShyWzFdLEosMSwyLEssVyxuLEEpKX0pfSkscD1BLkEpLEItMV42KT49QiYmKEIrNF5RWzFdKTxCJiYocD15WzM4XSg0LGIsSz09UVswXT9LOkRbMzRdKDM1LCEwLEMsSyksSix6KSkscH1dfSgpLG09ZnVuY3Rpb24oKXtyZXR1cm5bZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihCXjYpPj4oKEM9WzMsInhKIiwyXSwoKEJ8NikmOCk8Q1swXSkmJihCXjM1KT4+ND49Q1syXSYmKHo9Uls4XSg2MSx0aGlzKSx0aGlzW0NbMV1dW3pdPU1hdGgudHJ1bmMoWWooKSkpLDQpfHwoYj1uZXcgT3koeixLLEosMzEpKSxifSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoKEItMXwoeD1bMCw3LDRdLDY4KSk8QiYmKEIreFsyXV4xNyk+PQpCKW1bMjNdKDI0LEosSyx6KTtpZihCLTg8PDE8KChCPj4xJjE1KT09MSYmKE49dGhpc1t6XT4+PnhbMF0pLEIpJiYoQis5JjMwKT49Qil7aWYoKFE9KHY9WzEsKFc9ZnVuY3Rpb24oZixMKXtyZXR1cm4gTC5sZW5ndGg+PWYubGVuZ3RoP0w6Zn0sMCksM10scD1uZXcgVjgsL1xiKDFbMi05XVxkezh9KFxkezN9KT8pXGIvZyksWSlbMTddKDEseFsxXSkpe2ZvcihaPShDPWdbMTJdKDYsSFs4XSg0NCwzMzQwKSh6LEosZnVuY3Rpb24oZixMLHIpe3JldHVybihMPWYubWF0Y2goUSl8fFtdLHI9TC5yZWR1Y2UoVywiIiksTC5maWx0ZXIoZnVuY3Rpb24oVil7cmV0dXJuIFYubGVuZ3RoPT1yLmxlbmd0aH0pKS5tYXAoZnVuY3Rpb24oVil7cmV0dXJuIHBhcnNlSW50KFYuc3Vic3RyaW5nKDEsNiksMTApfSl9KSksQykubmV4dCgpOyFaLmRvbmU7Wj1DLm5leHQoKSlmb3IoQT1nWzEyXSgzLFoudmFsdWUpLGI9QS5uZXh0KCk7IWIuZG9uZTtiPUEubmV4dCgpKW49Yi52YWx1ZSxSWzM5XSgyNSwKdlt4WzBdXSxwLChIWzIxXSgzOSxwLHZbeFswXV0pfHx2WzFdKSt2W3hbMF1dKSxZWzQzXSg4LHZbMl0saFkoSFsyMV0oMTMscCx2WzJdKXx8dlsxXSxuKSxwKSxZWzI5XSgxLDIscCxsOShIWzIxXSh4WzFdLHAsMil8fG4sbikpLEhbOV0oNSx4WzJdLChIWzIxXSg0NyxwLHhbMl0pfHx2WzFdKStuLHApO0hbMjFdKDEzLHAsdlt4WzBdXSkmJkhbOV0oMTMseFsyXSxiTihIWzIxXSg0NSxwLHhbMl0pL0hbMjFdKDE1LHAsdlt4WzBdXSkpLHApfU49cC55ZSgpfXJldHVybihCJigoQi14WzFdJjE1KT09MiYmKE49a1sxNV0oMzgsdGhpcy52KSksMzApKT09QiYmKEo9Sj09PXZvaWQgMD8wOkosTj0oQz1nWzE2XSgxMSx2b2lkIDAseixLKSkhPW51bGw/QzpKKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe2lmKChCXjY5KT4+KChCLTcmKChQPVs0LDEsMjZdLChCfDg4KT09QikmJihiPVswLCIuIiwiKiJdLEE9S3x8ZG9jdW1lbnQsQS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPwpDPUEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh6KVtiWzBdXTooSj1kb2N1bWVudCxDPXo/KEt8fEopLnF1ZXJ5U2VsZWN0b3Ioej9iW1BbMV1dK3o6IiIpOmVbMzVdKDE5LGJbUFsxXV0sSyxKLHosYlsyXSlbYlswXV18fG51bGwpLFY9Q3x8bnVsbCksMTUpKT09UFsxXSYmKGI9WzUwMCwxLDVdLEs9Sz09PXZvaWQgMD8xOkssalk/KGVbNDNdKDI5LGpZLCEwLFBbMF0pLHomJihDPW5ldyBZTCxKPUhbNDldKDI3LGJbUFsxXV0seixDKSxIWzQ0XSg2NyxqWSxZTCxiWzJdLEopKSk6SzwzJiZzZXRUaW1lb3V0KHQkLmJTLGJbMF0seixLK2JbUFsxXV0pKSxQWzBdKT49UFsxXSYmKEI+PjImMTQpPDIpYTp7aWYoeiBpbnN0YW5jZW9mIElwKXtWPXo7YnJlYWsgYX1LPW5ldyBJcChEWzNdLmJpbmQobnVsbCwzMykpLGdbOF0oUFsyXSwzLEssMix6KSxWPUt9aWYoIShCPj5QWzFdJjE1KSlhOntpZigoUT0oeD0oZ1s0MV0oNTEsKG49WzQsMixudWxsXSxLKSksSykuYVQseFtBJF0pfHosQyk9PW5bMl0pe1Y9CihZWzI1XSg5Nyx2b2lkIDAsSixRLHZvaWQgMCx4KSxLKTticmVhayBhfWlmKCFBcnJheS5pc0FycmF5KEMpKXRocm93IGVbNl0oNTMpO3A9KCgoZj1BPUM9PT1RUD83OkNbQSRdfHosdj0ocj1tWzVdKDE4LG5bMF0sQSkpfHxQVShDKSxyKXx8KEE9eiksdil8fChDPWcwWzJdKDYsQyksZj16LEE9SFs0M10oMzIsbltQWzFdXSxBLFEpLHY9ITEpLEF8PTUsKFo9WVsxNF0oMzIsblswXSwxMDI0LEEpKSE9blsyXSk/WjoxMDI0LE49ejtmb3IoQXw9cDtOPEMubGVuZ3RoO04rKylMPUNbTl0sVz1iKEwscCksVTgoTCxXKXx8KHYmJihDPWcwWzJdKDYsQyksZj16LEE9SFs0M10oMzUsbltQWzFdXSxBLFEpLHY9ITEpLENbTl09Vyk7Vj0oQSE9PWYmJih2JiYoQz1nMFsyXSg3LEMpLEE9SFs0M10oMjgsbltQWzFdXSxBLFEpKSxrWzM4XSg3NyxDLEEpKSxZWzI1XSg0OCxDLEosUSx2b2lkIDAseCksSyl9cmV0dXJuKEI+PjImNyk9PVBbMF0mJih0aGlzLnY9R2wuc2V0VGltZW91dChSeCh0aGlzLlgsCnRoaXMpLDApLHRoaXMuTT16KSxWfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4gQjw8MSYoQi00Pj4oWj1bMjMsInYiLDEwXSwzKT49MiYmKEI+PjImOCk8NiYmdGhpc1taWzFdXS5YPT1HRiYmKHRoaXNbWlsxXV0uWD1LUSx0aGlzW1pbMV1dW1pbMV1dLlk3KCksdGhpcy5NW1pbMV1dLlUwKCExKSksMTQpfHwodj1ZWzMxXSgxOCxBKS50b1N0cmluZygpLG49di5zcGxpdCgvWz8jXS8pLFE9L1s/XS8udGVzdCh2KT9LK25bel06IiIscD0vWyNdLy50ZXN0KHYpP0orKFE/blsyXTpuW3pdKToiIixXPXlbWlswXV0oWlsyXSwwLCI9IixudWxsLDEsUSxuW0NdLGIscCkpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoKHg9Wzg4LDEsIm9uZXJyb3IiXSxCPj54WzFdKSYzMSk+PTE3JiYoQl42MSk8Mjgpe2lmKEdbbj0oQT1IW3Y9WyIiLDEsImlQb2QiXSwzM10oMTYpLHYpWzBdLDQ1XSgxMikpQz0vV2luZG93cyAoPzpOVHxQaG9uZSkgKFswLTkuXSspLywKbj0oYj1DLmV4ZWMoQSkpP2Jbdlt4WzFdXV06SGUoKTtlbHNlIGlmKHlbOF0oNDYsdlsyXSkpQz0vKD86aVBob25lfGlQb2R8aVBhZHxDUFUpXHMrT1NccysoXFMrKS8sbj0oUT1DLmV4ZWMoQSkpJiZRW3ZbeFsxXV1dLnJlcGxhY2UoL18vZyxlQygpKTtlbHNlIGlmKEhbNDZdKDQzKSlDPS9NYWMgT1MgWCAoWzAtOV8uXSspLyxuPShXPUMuZXhlYyhBKSk/V1t2W3hbMV1dXS5yZXBsYWNlKC9fL2csZUMoKSk6ZXgoKTtlbHNlIGlmKERbMjBdKDIwLHosSFszM10oMjgpLnRvTG93ZXJDYXNlKCkpKUM9Lyg/OkthaU9TKVwvKFxTKykvaSxuPShwPUMuZXhlYyhBKSkmJnBbdlt4WzFdXV07ZWxzZSBpZihPWzhdKDU3KSlDPS9BbmRyb2lkXHMrKFteXCk7XSspKFwpfDspLyxuPShKPUMuZXhlYyhBKSkmJkpbdlt4WzFdXV07ZWxzZSBpZihPWzQ1XSgxMSk/WjgucGxhdGZvcm09PT0iQ2hyb21lIE9TIjpEWzIwXSgxMSxLKSlDPS8oPzpDck9TXHMrKD86aTY4Nnx4ODZfNjQpXHMrKFswLTkuXSspKS8sCm49KFo9Qy5leGVjKEEpKSYmWlt2W3hbMV1dXTtOPW58fHZbMF19aWYoKChCfCgoQiYyNik9PUImJihOPShLP1BlKCk6JFAoKSkrbVs0OF0oNDQsSikreikseFsxXSkpPj4zPT0zJiYoSz1kay5KKCkuZ2V0KCksTj1ZWzE5XSg1LHosSykpLEJ8eFswXSk9PUIpdHJ5e2ImJihiLm9ubG9hZD1udWxsLGJbeFsyXV09bnVsbCxiLm9uYWJvcnQ9bnVsbCxiLm9udGltZW91dD1udWxsKSxDKEopfWNhdGNoKGYpe31yZXR1cm4oQis5JjcpPj01JiYoQl44KTwxNCYmKE49UlsxM10oMTUsSFsyNV0oNDIsT1s5XSgxOSw4KSxLKSxbT1syNV0oOSx6KV0pKSxOfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEJ8KChCJjEzKT09KCgoQi01Pj4zPT0oQz1bImNhbGwiLDk0LDJdLDEpJiYoYj0hIShDWzJdJkspJiYhISh6JkspfHwhISgyNTYmSykpLEItQ1syXSkmMTUpPj01JiYoKEJeNTMpJjE2KTwxNSYmKEo9T1sxMV0oNjMsbVtDWzJdXShDWzFdLHFIKSxpRCksYj1QYihmdW5jdGlvbigpe3JldHVybiBKLm1hdGNoKC9bXixdKiwoW1x3XGRcK1wvXSopLylbel19LApLKSksQikmJih6PUVycm9yW0NbMF1dKHRoaXMseTgoKSksdGhpcy5tZXNzYWdlPXoubWVzc2FnZSwic3RhY2siaW4geiYmKHRoaXMuc3RhY2s9ei5zdGFjayksT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUpLHRoaXMubmFtZT1ZUCgpKSwzMikpPT1CJiYoJE1bQ1swXV0odGhpcyxjZSx6KSx0aGlzLnNpemU9SyksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoKG49WzE2LDUsMjQwXSxCJjEwNyk9PUIpZm9yKFo9ZnVuY3Rpb24oTix4LGYpe2Zvcig7QTxKLmxlbmd0aDspe2lmKHg9KGY9Si5jaGFyQXQoQSsrKSxFMltmXSkseCE9bnVsbClyZXR1cm4geDtpZighUlsyXSgyMCxmKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIitmKTt9cmV0dXJuIE59LHY9WzIsMCw2XSx5WzE5XSgzMixuWzFdLHZbMV0pLEE9dlsxXTs7KXtpZihiPShwPShDPVooLTEpLFopKHZbMV0pLFooeikpLApRPVooeiksUT09PTY0JiZDPT09LTEpYnJlYWs7KEsoQzw8dlswXXxwPj40KSxiKSE9eiYmKEsocDw8NCZuWzJdfGI+PnZbMF0pLFEhPXomJksoYjw8dlsyXSYxOTJ8USkpfWlmKCgoQjw8MSYoKEJ8ODApPT1CJiZULmNhbGwodGhpcyx6KSxuWzBdKSk8blswXSYmQjw8Mj49LTc0JiYodGhpcy52PUssdGhpcy5NPXopLEJ8MzIpPT1CKWE6e2lmKHogaW5zdGFuY2VvZiBlc3x8eiBpbnN0YW5jZW9mIFN4fHx6IGluc3RhbmNlb2YgbWIpe1c9ejticmVhayBhfWlmKHR5cGVvZiB6Lm5leHQ9PSJmdW5jdGlvbiIpe1c9bmV3IGVzKGZ1bmN0aW9uKCl7cmV0dXJuIHp9KTticmVhayBhfWlmKHR5cGVvZiB6W1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIpe1c9bmV3IGVzKGZ1bmN0aW9uKCl7cmV0dXJuIHpbU3ltYm9sLml0ZXJhdG9yXSgpfSk7YnJlYWsgYX1pZih0eXBlb2Ygei5xaj09ImZ1bmN0aW9uIil7Vz1uZXcgZXMoZnVuY3Rpb24oKXtyZXR1cm4gei5xaigpfSk7YnJlYWsgYX10aHJvdyBFcnJvcigiTm90IGFuIGl0ZXJhdG9yIG9yIGl0ZXJhYmxlLiIpOwp9cmV0dXJuKEIrN14xOCk8QiYmQi04PDwxPj1CJiYoVz1sRCsoSz96K0s6IiIpKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUpe2lmKCgoYz1bMTAsMywibWV0YUtleSJdLChCXjU2KT4+NHx8KEs9WzkxLDE3LDE4XSxrZSYmKHRoaXMuWUo9PUtbMV0mJiF6LmN0cmxLZXl8fHRoaXMuWUo9PUtbMl0mJiF6LmFsdEtleXx8ZHImJnRoaXMuWUo9PUtbMF0mJiF6W2NbMl1dKSYmKHRoaXMuWUo9dGhpcy5laz0tMSksdGhpcy5ZSj09LTEmJih6LmN0cmxLZXkmJnoua2V5Q29kZSE9S1sxXT90aGlzLllKPUtbMV06ei5hbHRLZXkmJnoua2V5Q29kZSE9S1syXT90aGlzLllKPUtbMl06eltjWzJdXSYmei5rZXlDb2RlIT1LWzBdJiYodGhpcy5ZSj1LWzBdKSksZVsxOF0oMSwyMTksMTYseltjWzJdXSx6LmtleUNvZGUsdGhpcy5ZSix6LmN0cmxLZXksei5hbHRLZXksei5zaGlmdEtleSk/KHRoaXMuZWs9eVsyMF0oMjEsS1swXSx6LmtleUNvZGUpLApFRiYmKHRoaXMuY0k9ei5hbHRLZXkpKTp0aGlzLmhhbmRsZUV2ZW50KHopKSxCPDwxKSYxNik8MTUmJihCLTQmMTUpPj1jWzBdKXtpZihDPShRPSh0aGlzLk09ITEsbnVsbCksWzUsImNhc2UgIiw0XSkseilmPVhjKHopLFE9SFsxMl0oMTMsZiwxLHVELGtbY1sxXV0oOSkpWzBdO2Vsc2UgaWYocT13aW5kb3csdGhpcy5NPSEwLFo9cT1xPT09dm9pZCAwP3dpbmRvdzpxLFo9Wj09PXZvaWQgMD93aW5kb3c6WixiPShyPVpbYVhdKSYmIlRTRHRWImluIHI/ci5UU0R0VjpudWxsLHY9dHlwZW9mIGIhPT0ic3RyaW5nIj9udWxsOmIpTD0iWyIrdi5zdWJzdHJpbmcoaFMubGVuZ3RoKSxuPWR2KEwpLFE9SFsxMl0oMTcsbiwxLHVELGtbY1sxXV0oMTUpKVswXTtpZihRKWZvcihQPWdbMTJdKGNbMV0sSFsxMl0oMTYsUSwyLGtQLGtbY1sxXV0oMzkpKSksVz1QLm5leHQoKTshVy5kb25lO1c9UC5uZXh0KCkpaWYoZ1szMF0oNzQsbnVsbCxXLnZhbHVlLDYsdFMsVUYpKXRocm93IEVycm9yKCk7aWYoUSl7Zm9yKEE9CihWPWdbMTJdKDEyLEhbMTJdKDEyLFEsMiwoSz17fSxrUCksa1tjWzFdXSg2KSkpLFYubmV4dCgpKTshQS5kb25lO0E9Vi5uZXh0KCkpc3dpdGNoKHg9QS52YWx1ZSxwPWVbMzJdKDYxLHgsMSkudG9TdHJpbmcoKSxIWzI1XSgxMSxudWxsLHgsVUYpKXtjYXNlIGNbMV06S1twXT1lW2NbMF1dKDMyLG51bGwsa1sxXShjWzBdLHZvaWQgMCx4LFVGLGNbMV0pLHgpO2JyZWFrO2Nhc2UgMjpLW3BdPURbMThdKDEzLGVbMzJdKDQ5LHgsa1sxXSgxNSx2b2lkIDAseCxVRiwyKSkpO2JyZWFrO2Nhc2UgQ1syXTpLW3BdPU9bN10oMTcsbnVsbCx2b2lkIDAsdm9pZCAwLHgsa1sxXSgxNCx2b2lkIDAseCxVRixDWzJdKSk7YnJlYWs7Y2FzZSBDWzBdOktbcF09WVszNF0oY1sxXSxrWzFdKDE1LHZvaWQgMCx4LFVGLENbMF0pLHgpO2JyZWFrO2Nhc2UgNjpLW3BdPW1bMTJdKDY2LDYsdFMseCxVRik7YnJlYWs7Y2FzZSA4Ok49eVsxNl0oNCwwLDgsVUYseCxNSCk7c3dpdGNoKEhbMjVdKDIsbnVsbCxOLAp3dikpe2Nhc2UgMTpLW3BdPVlbMzRdKDQsa1sxXSgxNCx2b2lkIDAsTix3diwxKSxOKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKENbMV0rSFsyNV0oOSxudWxsLE4sd3YpKTt9YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihDWzFdK0hbMjVdKDEsbnVsbCx4LFVGKSk7fUo9S31lbHNlIEo9e307dGhpcy5WZD0odGhpcy52PUosUSk/US56bygpOm51bGx9aWYoISgoQl43MSk+PigoQi01XjcpPj1CJiZCKzQ+PjE8QiYmVC5jYWxsKHRoaXMseiksNCkpKXtmb3IoVz0oeD1nWzEyXSg5LChaPVsiZXhwbGljaXQiLCEwLCIuIl0sQykpLHgpLm5leHQoKTshVy5kb25lO1c9eC5uZXh0KCkpZ1s0Nl0oMSxmdW5jdGlvbihTKXtPWzJdKDgsUyx6KX0sVy52YWx1ZStKKTtmb3IoYj0oQT0oKHI9d2luZG93W2kzXVtJWCgpXSx3aW5kb3dbaTNdW0lYKCldPVtdLEFycmF5KS5pc0FycmF5KHIpfHwocj1bcl0pLGcpWzEyXSg0LHIpLEEubmV4dCgpKTshYi5kb25lO2I9QS5uZXh0KCkpaWYodj1iLnZhbHVlLAp2PT1LKWdbMTFdKDgsWlsyXSxaWzFdKTtlbHNlIHYhPVpbMF0mJihmPWVbNV0oNjgse3NpdGVrZXk6dixpc29sYXRlZDohMH0pLEdsLndpbmRvd1tpM11bJDAoKV1bdl09ZixnWzExXShjWzBdLFpbMl0sWlsxXSx2KSk7Zm9yKE49KHA9KCgobj13aW5kb3dbaTNdW0ZjKCldLHdpbmRvdylbaTNdW0ZjKCldPVtdLEFycmF5LmlzQXJyYXkobikpfHwobj1bbl0pLFE9d2luZG93W2kzXVtCNigpXSx3aW5kb3dbaTNdW0I2KCldPVtdLFEmJkFycmF5LmlzQXJyYXkoUSkmJihuPW4uY29uY2F0KFEpKSxnKVsxMl0oMTIsbikscCkubmV4dCgpOyFOLmRvbmU7Tj1wLm5leHQoKSlMPU4udmFsdWUsdHlwZW9mIHdpbmRvd1tMXT09PSJmdW5jdGlvbiI/UHJvbWlzZS5yZXNvbHZlKCkudGhlbih3aW5kb3dbTF0pOnR5cGVvZiBMPT09ImZ1bmN0aW9uIj9Qcm9taXNlLnJlc29sdmUoKS50aGVuKEwpOkwmJmNvbnNvbGUud2FybigicmVDQVBUQ0hBIGNvdWxkbid0IGZpbmQgdXNlci1wcm92aWRlZCBmdW5jdGlvbjogIisKTCl9cmV0dXJuIEV9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZihCPj4oKEI8PChaPVsyMiwyLDFdLFpbMl0pJjExKT09WlsxXSYmKG49SFs4XSgzMiwyMjkpKEooeigpLDQzKSkpLFpbMV0pPj0zJiYoQj4+WlsxXSY4KTxaWzFdKWE6e2lmKFE9KHA9Z1szNF0oMjcsSyxDKSxwW0tdLlU5KSx2PXBbSl0pe2I9eVszNl0oMTAseix2KSxBPVJbMzVdKDQ0LHosTFEseVs1XS5iaW5kKG51bGwsMTMpLHYsWVs1XS5iaW5kKG51bGwsNDMpKS5yZSxuPWZ1bmN0aW9uKFcsTix4KXtyZXR1cm4gUShXLE4seCxBLGIpfTticmVhayBhfW49UX1yZXR1cm4oQitaWzJdXlpbMF0pPj1CJiYoQitaWzJdXjkpPEImJihuPWgkLmNoYXJDb2RlQXQpLG59LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7aWYoQi0oKGY9WyJLWCIsNDUsMF0sQis0KT4+Mz49MSYmKEI8PDImNyk8MyYmKFo9Z1sxMl0oNixrWzQyXShmWzFdLEMsNCkpLFc9Wi5uZXh0KCkudmFsdWUsCk49Wi5uZXh0KCkudmFsdWUseD1aLm5leHQoKS52YWx1ZSxRPVoubmV4dCgpLnZhbHVlLG49Z1s3XSgzNiksTD1bZ1s0OF0oMjQsQSxXKSxJKFcsVyxwLEspLFlbMTJdKDE5LHYsYiksc2codix2KSxSWzE5XSgxLFEsSixXKSxtWzEyXSg5Nyx4LHopLG4sUlsxOV0oNjUsTix4LFcpLEdbMjRdKDI0LHgsT1syNV0oOSx4KSwxKSxtWzMzXSgzMSx2LE4sT1syNV0oOSx4KSksbVtmWzJdXSgxMCxuLE9bMjVdKDMseCksT1syNV0oNyxRKSldKSw2KT4+NHx8ei5BLnNldChLLEopLChCJjEwMSk9PUIpaWYoQz1bbnVsbCwhMSwyXSx6LnMzKCkhPUNbZlsyXV0mJnouczMoKSE9ZlsyXSYmei5zMygpIT0xMCYmei5zMygpIT02KWlmKFlbMzRdKDUsQ1syXSx6KSlrWzQ3XSg0Nix0aGlzLFlbMzRdKDMsQ1syXSx6KSksSj16LmF1KCksdGhpcy5DKEhvLFlbMzRdKDUsQ1syXSx6KSx6LERbMThdKDUsZVszMl0oNTIsSiw0KSkqNjAsITApO2Vsc2UgRFs0M10oNjksdGhpcyxDWzFdKTtlbHNlIEs9bmV3IEpQKDYwLAp6LmRIKCksbnVsbCxudWxsLG51bGwsei5saygpfHxDW2ZbMl1dKSx0aGlzLnYudltmWzBdXShLKSxEWzQzXSg3Mix0aGlzLENbMV0pO3JldHVybiBMfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoISgoQl43KT4+KGI9WyJjYWxsIiw0LDFdLGIpWzFdKSlaS1tiWzBdXSh0aGlzLHosS3x8cXouSigpLEopO2lmKChCXjMwKTwxMiYmKEI8PGJbMl0mNSk+PWJbMV0pVFtiWzBdXSh0aGlzLHopO3JldHVybiBDfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCl7aWYoKGg9WzAsInYiLDE0XSxCKS01PDwyPj1CJiYoQi03fDEzKTxCKXtmb3IoUD0ocT1bXSxbMCwyLDNdKSxFPVBbaFswXV07RTxiLmxlbmd0aDtFKyspcVtFXT1iW0VdLlQoKTtmb3Iobj0oVj1uZXcgTjcsUFtoWzBdXSk7bjxiLmxlbmd0aDtuKyspe2lmKCh4PSgoWD0oYT1iW25dLEFycmF5LmZyb20ocVtuXSkpLFgpW1BbaFswXV1dPUhbMTJdKDIzLGEsClBbMl0sbTMsa1szXSgxMCkpLmxlbmd0aCxYW0NdKSx4KT09PTE5fHx4PT09MzF8fHg9PT0zMHx8eD09PTMyKWlmKFJbMzVdKDEsUFsxXSxWLFgpLHg9PT0zMD8oVltoWzFdXT1QWzJdLFJbMTddKDU1LFYpLGdbaFsyXV0oMzEsQyxWKSk6eD09PTMyPyhWW2hbMV1dPVBbMV0sZ1toWzJdXSg5NSxDLFYpKTpWW2hbMV1dPVBbMl0sUlsxN10oMjMsViksZ1toWzJdXSg2NCxDLFYpLHI9VltoWzFdXSxOPWtbMTVdKDgsSixWKSxOIT09MCl7Zm9yKEE9KFM9Yz0oUT0oTD1QW2hbMF1dLE4pPlBbaFswXV0pP24rQzpuLFE/MTotMSk7UT9TPGMrTjpTPmMrTjtTKz1BKWQ9dm9pZCAwLEwrPUEqKChkPXFbU10pPT1udWxsP05hTjpkLmxlbmd0aCk7aWYoVz0ocD1BcnJheSx2PUwscC5mcm9tKSxWLkEpdGhyb3cgRXJyb3IoKTsoKHU9KFo9KGY9Vy5jYWxsKHAsVi5NKSx2KSxbXSksYk4pKFopLHUucHVzaChaPj4+UFtoWzBdXSZ6KSx1LnB1c2goWj4+PjgmeiksdSkucHVzaChaPj4+SyZ6KSx1LnB1c2goWj4+PgoyNCZ6KSxmLnNwbGljZS5hcHBseShmLFtyLDRdLmNvbmNhdChlWzMzXSgyNyx1KSkpLFg9Zn1xW25dPVh9dD1xLmZsYXQoKX1yZXR1cm4gQisxPj4zPT0xJiYoeHkucHJvdG90eXBlLks9UlsyMF0oMywyMDQ4KSx0aGlzLnhKLmxlbmd0aD5oWzBdJiZ0aGlzLnhKLnB1c2godGhpcy54Si5zaGlmdCgpKSksdH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYoISgoUT1bMTEsNzUsMV0sQnw5KT4+NCkpYTp7aWYoQz0oWVszN10oNyxKLEspLFpmKE51bWJlcihKKSkpLE51KEMpJiYoIUsmJiFnZHx8Qz49MCkpe3A9U3RyaW5nKEMpO2JyZWFrIGF9KGI9Si5pbmRleE9mKGVDKCkpLGIhPT0tMSkmJihKPUouc3Vic3RyaW5nKDAsYikpLHA9eVs0N10oMzIsOCx6LEopfXJldHVybihCKzkmNSk9PShCLSgoKChCKzUmUVswXSk9PTMmJihwPVJbNDhdKFFbMV0sSixLLGtbUVsyXV0oMTMsdm9pZCAwLEosQyx6KSx2b2lkIDApKSxCKzIpXjMyKTxCJiYoQi1RWzJdfDQ4KT49QiYmKHA9UlsxM10oMjMsCkhbMjVdKDU4LE9bOV0oMjQsUVsyXSkseiksW2dbMTZdKDk0LEspXSkpLFEpWzJdPj0xOCYmQi0zPj41PFFbMl0mJih2PVlbNDZdKDg3LEosYixBKSxBLkE9QS5BLnRoZW4odix2KS50aGVuKGZ1bmN0aW9uKG4sWixXKXtyZXR1cm4gR1sxM10oMjQsZnVuY3Rpb24oTix4LGYpe3g9WyhmPVsyLDYxLDFdLDMpLDEsMF07c3dpdGNoKE4uTSl7Y2FzZSB4W2ZbMl1dOmlmKFc9SyxaPUEudi5PLCFaKXtOLkdfKEopO2JyZWFrfXJldHVybiBOLnYoR1s0M10oZlsxXSx4W2ZbMl1dLG4ueWUoKSxaKSx4WzBdKTtjYXNlIHhbMF06Vz1OLlg7Y2FzZSBKOnJldHVybiBOLnYoZVsxOF0oMTYseFtmWzBdXSx4W2ZbMl1dLG4sQSxDKSx6KTtjYXNlIHo6cmV0dXJuIE4ucmV0dXJuKHtPWTpOLlgsb086V30pfX0pfSkscD1BLkEpLDQpJiYoQT1PW1FbMF1dKDU3LEssSisiTGVmdCIpLEM9T1tRWzBdXSg2MixLLEoreiksdj1PW1FbMF1dKDU4LEssSisiVG9wIiksYj1PW1FbMF1dKDU3LEssSisiQm90dG9tIiksCnA9bmV3IHozKHBhcnNlRmxvYXQoQykscGFyc2VGbG9hdCh2KSxwYXJzZUZsb2F0KEEpLHBhcnNlRmxvYXQoYikpKSxwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoKChCfCgoUT1bImh0dHBzOi8vIiw0LDU1XSxCXlFbMl0pPDM3JiYoQis5JjMxKT49MjkmJihwPXtpeTpuZXcgeTYoUVswXSt6KyItc2lnbmFsZXItcGEuY2xpZW50czYuZ29vZ2xlLmNvbS9wdW5jdHVhbCIpLGZEOm5ldyB5NihRWzBdK3orIi1zaWduYWxlci1wYS5nb29nbGVhcGlzLmNvbS9wdW5jdHVhbCIpLFFYOiExfSksMykpPj5RWzFdPDEmJihCXjkxKT49LTY2JiYoQz1DPT09dm9pZCAwP2RvY3VtZW50OkMsdj0oQT0oYj1DKS5xdWVyeVNlbGVjdG9yKT09ej92b2lkIDA6QS5jYWxsKGIsSisiW25vbmNlXSIpLHA9dj09ej8iIjp2W1NFKCldfHx2LmdldEF0dHJpYnV0ZShTRSgpKXx8SyksQi04JjExKT09MSYmKHRoaXMudj16KSxCPj4yJjExKT09Mil0cnl7KG5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKG4pe24uZ2V0RW50cmllcygpLmZpbHRlcihmdW5jdGlvbihaKXtyZXR1cm4gWi5uYW1lPT09CktZfHxaLm5hbWU9PT1KNH0pLmZvckVhY2goZnVuY3Rpb24oWixXLE4seCxmLEwscixWKXsoeD0oZj0oTj1uZXcgKEw9KFc9YltWPVszOCwiVSIsInB1c2giXSxWWzFdXSxXKVtWWzJdXSxhOSksSFswXSg2NixOLHosWi5uYW1lPT09S1k/Mjo0KSksbVtWWzBdXSgyMCxKLEMsZixaLmR1cmF0aW9uKSkscj1tW1ZbMF1dKDE2LEosSyx4LFouc3RhcnRUaW1lKSxMKS5jYWxsKFcscil9KX0pKS5vYnNlcnZlKHt0eXBlOkNZKCksYnVmZmVyZWQ6ITB9KX1jYXRjaChuKXt9cmV0dXJuKEIrMl4zMSk+PUImJihCLTZeMjIpPEImJihwPSEhQy5yZWxhdGVkVGFyZ2V0JiZrWzQ2XSg3LHosSywxNixKLEMucmVsYXRlZFRhcmdldCkpLHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKEItKChCLTZ8KHA9WzksOTEsInYiXSw0NikpPj1CJiYoQi0yfDI0KTxCJiYoQz1FcnJvci5jYWxsKHRoaXMsSyksdGhpcy5tZXNzYWdlPUMubWVzc2FnZSwic3RhY2siaW4gQyYmKHRoaXMuc3RhY2s9CkMuc3RhY2spLHRoaXMuY29kZT16LHRoaXMubWVzc2FnZT1LLHRoaXMuc3RhdHVzPUosT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsS1UucHJvdG90eXBlKSx0aGlzLm5hbWU9YlIoKSksNSleMjApPEImJihCLTJeMTgpPj1CJiYodGhpc1twWzJdXT1kay5KKCkuZ2V0KCkueWUoKSksQi1wWzBdfDIyKT49QiYmKEIrNl4yNSk8QiYmKGI9a1sxXSgxMix2b2lkIDAsSixwNSx6KSxDPXZvaWQgMCxDPUM9PT12b2lkIDA/MDpDLHY9KEE9SFsxNF0oNDYsSFs0XShwWzFdLGIsSikpKSE9Sz9BOkMpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3KXtpZigoQl45KT4+ND09KChCJigodz1bNSwzMSwiTSJdLChCLTJ8MjcpPj1CKSYmKEItMnwzOCk8QiYmTEQuY2FsbCh0aGlzLDQxNywxKSw4NSkpPT1CJiYoZj1KLnYuVTMoKSxXPWcwWzJdKDM2LHosSlt3WzJdXS52KSxMPUoudixyPURhdGUubm93KCktCkwubCxaPUoudix4PURhdGUubm93KCktWi5GLE49bmV3IEh0KGYsVyxyLHgsdixBLEMscCxiLEssUSxuKSxKLnZbd1syXV0uc2VuZChOKS50aGVuKEouUyxKLkEsSikpLDQpKWE6e2lmKChkPVsxLDEwLDZdLEEpaW5zdGFuY2VvZiBGNSl7c3c9SFsxMl0oMTQsYixkWzBdLFE4LGtbM10oMTUpKS5sZW5ndGg+MD9udWxsOkFbd1syXV0/QTQuYXBwbHkoRjUsZVszM10oMjAsQS52KSk6eUguYXBwbHkoRjUsZVszM10oNCxBLnYpKTticmVhayBhfWZvcihaPShxPShYPUFycmF5Lm9mLmFwcGx5KEFycmF5LGVbMzNdKDE5LEEudi52KSksZ1sxMl0oNixIWzEyXSgxOSxiLGRbMF0sUTgsa1szXSgxMykpKSkscS5uZXh0KCkpOyFaLmRvbmU7Wj1xLm5leHQoKSlzd2l0Y2goaD1aLnZhbHVlLEhbMjVdKDMseixoLEdHKSl7Y2FzZSA0OlgucHVzaChSWzhdKDcwLE9bMzZdKDM2LGRbMF0sT1syOV0oMjIsNCxoKSkpKTticmVhaztjYXNlIDI6WC5wdXNoKGtbNDddKDI0LE9bMzZdKDQsZFswXSxPWzI5XSgyMywKMixoKSkpKTticmVhaztjYXNlIGRbMl06WC5wdXNoKFJbOF0oNzEsbmV3IFp1KGcwWzZdKDksZFswXSx5WzQwXSgyMyx6LGgsa1sxXSgxMCx2b2lkIDAsaCxHRyxkWzJdKSkpKSkpO2JyZWFrO2Nhc2UgODpYLnB1c2goa1s0N10oMTYsbmV3IFp1KGcwWzZdKDExLGRbMF0seVs0MF0oMTUseixoLGtbMV0oMTEsdm9pZCAwLGgsR0csOCkpKSkpKTticmVhaztjYXNlIGRbMV06Y2FzZSA5OlgucHVzaChuZXcgekoobmV3IEokKGgpKSk7YnJlYWs7Y2FzZSBKOihmPShQPShOPShNPVgsTS5wdXNoKSxrWzFdKDEwLHZvaWQgMCxoLEdHLEopKSxlWzJdKDM2LFAsdm9pZCAwLGgpKSxOKS5jYWxsKE0sUls4XSg2NixmKSk7YnJlYWs7Y2FzZSBkWzBdOlY9KFE9a1sxXSgxMCx2b2lkIDAsKEU9KEw9WCxMLnB1c2gpLGgpLEdHLGRbMF0pLGVbMl0oMzYsUSx2b2lkIDAsaCkpLEUuY2FsbChMLGtbNDddKDQ4LFYpKTticmVhaztjYXNlIEs6Uz0obj1rWzFdKDExLHZvaWQgMCxoLEdHLCh1PShVPSh2PVgsCnZvaWQgMCksdi5wdXNoKSxLKSksSFs0XSg5NCxuLGgsdm9pZCAwLHZvaWQgMCxlWzM1XS5iaW5kKG51bGwsOCkpKSx1LmNhbGwodixrWzQ3XSgzMiwoVT1TKT09ej92b2lkIDA6bmV3IFVpbnQ4QXJyYXkoZ1szMF0oNywyLFUpfHwwKSkpO2JyZWFrO2Nhc2Ugd1swXTooYz0oVz1rWzFdKDEyLHZvaWQgMCwoeD0ocj0oYT12b2lkIDAsWCkscikucHVzaCxoKSxHRyx3WzBdKSxIKVs0XSg4OSxXLGgsdm9pZCAwLHZvaWQgMCxlWzM1XS5iaW5kKG51bGwsOSkpLHgpLmNhbGwocixSWzhdKDY4LChhPWMpPT16P3ZvaWQgMDpuZXcgVWludDhBcnJheShnWzMwXSgxMSwyLGEpfHwwKSkpO2JyZWFrO2Nhc2UgMTI6aWYodD1nWzI5XSgxOCwwLDIsbVsxMl0oODIsMTIsU3QsaCxHRykpLHQ9PT1udWxsKXtzdz16O2JyZWFrIGF9WC5wdXNoKG5ldyB6Sih0KSk7YnJlYWs7Y2FzZSBDOmlmKHA9Z1syOV0oMTYsMCwyLG1bMTJdKDUwLEMsU3QsaCxHRykpLHA9PT1udWxsKXtzdz16O2JyZWFrIGF9WC5wdXNoKFJbOF0oNjksCnApKTticmVhaztjYXNlIDEzOlgucHVzaChuZXcgekoobnVsbCkpO2JyZWFrO2Nhc2UgMDpYLnB1c2gobmV3IHpKKG5ldyBKJChoKSkpO2JyZWFrO2RlZmF1bHQ6c3c9ejticmVhayBhfXN3PUEudlt3WzJdXT9BNC5hcHBseShGNSxlWzMzXSgzLFgpKTp5SC5hcHBseShGNSxlWzMzXSgxOSxYKSl9cmV0dXJuKEJeMjIpJjExfHwoQz16PT09dm9pZCAwP3t9OnosSz1DLm9OPT09dm9pZCAwP3t9OkMub04sSj1DLlJOPT09dm9pZCAwPyExOkMuUk4sdGhpcy5vTj1LLHRoaXMuQXU9Qy5BdT09PXZvaWQgMD92b2lkIDA6Qy5BdSxiPUMubWQ9PT12b2lkIDA/ITE6Qy5tZCx0aGlzLkRpPUE9Qy5EaT09PXZvaWQgMD9udWxsOkMuRGksdGhpcy5WWD1DLlZYPT09dm9pZCAwP251bGw6Qy5WWCx0aGlzLlJOPUosdGhpcy5tZD1iKSxzd30sZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKEItOHwyNCk8KChKPVs0LCJjYWxsIiwyXSxCKzc+PjEpPEImJkItOTw8SlsyXT49QiYmKHRoaXMudj16KSxCKSYmKEIrCjVeSlswXSk+PUImJihMRFtKWzFdXSh0aGlzLDYxNCwyMyksdGhpcy5WPXRoaXMuTT10aGlzLlg9LTEsdGhpcy5pPWdbN10oMzcpKSxLfSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKChDPVsicmVwbGFjZSIsIldoIiwyXSxCPj5DWzJdJjd8fChKPW5ldyB6LEpbQ1sxXV09ZnVuY3Rpb24oKXtyZXR1cm4gS30sYj1KKSxCKS03XjMwKTxCJiYoQi02XjE2KT49QiYmKEo9eltDWzBdXSgvPFwvL2csdjYoKSlbQ1swXV0oL1xdXF0+L2csVDMoKSksYj1LP0pbQ1swXV0oL3svZyxqRigpKVtDWzBdXSgvfS9nLHBZKCkpW0NbMF1dKC9cL1wqL2csUXgoKSlbQ1swXV0oL1xcJC8sblkoKSk6SiksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigoKCgoKEImMjkpPT0oUT1bImNvbmZpZyIsMzgsMzFdLChCfDMpPj40fHwodj17ZjE6ITAsWEo6WlcoKSxpQjp2b2lkIDAsYUE6T2JqZWN0LmFzc2lnbih7fSx7Z3Nlc3Npb25pZDpifSxBW1FbMF1dLnYucFgoKSksZ1Q6IUFbUVswXV0uSG8sCkhvOkFbUVswXV0uSG8sZUM6QVtRWzBdXS5NLFZvOkFbUVswXV0udi5SMCgpLGRUOkFbUVswXV0udi50SygpfSxwPUEuWmkoRFszNF0oMjQsMTAsIi0iLCEwLEFbUVswXV0pLnRvU3RyaW5nKCksdiksZVszNl0oMTEsQS52LHAsImEiLGZ1bmN0aW9uKFosVyxOKXtaPShOPVsxLDAsKFc9QS5NLCJBIildLFcuTShuZXcgVzYpLGdbMzRdKDE5LE5bMF0sbmV3IHpGLE5bMV0pKTt0cnl7V1tOWzJdXS5uZXh0KFopfWNhdGNoKHgpe319KSxlWzM2XSg5LEEudixwLCJiIixmdW5jdGlvbihaLFcpeygoKChXPVsxMywidiIsIk0iXSxaPUFbV1syXV0sWilbV1syXV0obmV3IGdLKSxaKVtXWzFdXT12b2lkIDAsSFsyOV0oNyxKLFopLEEpLnN0YXRlPUMsRFsxNV0oV1swXSwwLCEwLEEuY2hhbm5lbCksRylbMjVdKDE0LEFbV1sxXV0pfSksZVszNl0oOSxBLnYscCxLLGZ1bmN0aW9uKFosVyxOLHgsZixMKXtMPVs5LDEsKGY9WzMyLDAsbnVsbF0sNDYpXSxaLmRhdGEmJkFycmF5LmlzQXJyYXkoWi5kYXRhKSYmClouZGF0YS5sZW5ndGg9PT0xJiYoWi5pJiZaLmk9PT0ic3RhdHVzIj8oTj1nW0xbMl1dKDEzLGZbMF0sZlsyXSx6RixaLmRhdGFbZltMWzFdXV1bZltMWzFdXV0pLFc9QS5NLHlbMzNdKDExLEosTikhPT0wJiYoVy5NKG5ldyBOaShPW0xbMl1dKDIsZlswXSxmW0xbMV1dLE4pKSksR1tMWzBdXSg1NyxMWzFdLDIsVyxOKSkpOih4PWdbTFsyXV0oMTUsZlswXSxmWzJdLE9nLFouZGF0YVtmW0xbMV1dXSksQS5YKHgpKSl9KSxlWzM2XSgzLEEudixwLHosZnVuY3Rpb24oWixXKXsoQS5NW1c9WyJETSIsInYiLCJvbkVycm9yIl0sV1syXV0oWiwobmV3IHhSKEEuY2hhbm5lbFtXWzFdXSkpW1dbMV1dW1dbMF1dKSxaLnN0YXR1cykhPT0wJiYoQS5zdGF0ZT1DKX0pLG49cCksQikmJih0aGlzLlg9eix2PVshMSxudWxsLDFdLGI9dGhpcyx0aGlzLlc9Syx0aGlzLk89dlswXSx0aGlzLnN0cmVhbXM9bmV3IE1hcCx0aGlzLmw9bmV3IHgxLHRoaXMubz0wLHRoaXMuQT1uZXcgeDEsdGhpcy5zdGF0dXM9Cm5ldyBqTShuZXcgekYpLHRoaXMuSD1uZXcgRFcsdGhpcy5GPTAsdGhpcy5SPVtdLHRoaXMuaT1bXSx0aGlzLm09dlswXSx0aGlzLlU9bmV3IHdFLHRoaXMuTT1mdW5jdGlvbihaKXtQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKFcsTil7KFc9Yi5YLmR6KT09bnVsbHx8KE49Vy52KT09bnVsbHx8Ti5jYWxsKFcsWil9KS5jYXRjaChmdW5jdGlvbigpe30pfSwoKEM9dGhpcy5YLmR6KT09dlsxXT8wOkMudikmJmVbMzZdKDgsdGhpcy5VLGdbMjNdKDQ3KSx3eCxmdW5jdGlvbihaKXtiLk0oWil9KSx0aGlzLkEuaHMoZVsxNV0oMSwhMCx2WzFdLHZbMF0sZnVuY3Rpb24oWil7cmV0dXJuIHlbMzNdKDQ0LDEsWik9PT0wP1Byb21pc2UucmVzb2x2ZSgpOm5ldyBQcm9taXNlKGZ1bmN0aW9uKFcpe09bMl0oNTYsVyw1MDApfSl9KSkuc3Vic2NyaWJlKHRoaXMuc3RhdHVzKSx0aGlzLkM9bmV3IGZZLHRoaXMuUk89KEo9KEE9ei5STyk9PXZbMV0/dm9pZCAwOkEuaHMoR1s0NV0oMTYsdlsxXSwKdlswXSxmdW5jdGlvbigpe3JldHVybiBvVH0pLExZKG9UKSkpIT12WzFdP0o6b1QsSFsyOV0oUVsxXSx2WzJdLHRoaXMpKSxCPj4xKSY3KT09MiYmKHRoaXMudj16KSxCKV44OCk+PjM9PTEpbVszNl0oNDEsZnVuY3Rpb24oWil7cmV0dXJuIEFycmF5LmlzQXJyYXkoWil9LFJUKCkpO3JldHVybihCfDcyKT09QiYmKEM9Sy51P0sudSgpOkspJiYoSj9lW1FbMl1dLmJpbmQobnVsbCw0MSk6Z1syNl0uYmluZChudWxsLDEpKShDLFt6XSksbn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZighKChCXih2PVsiVyIsIk0iLDEwN10sKEI+PjEmMTMpPT00JiYoQT1tWzIzXSgyNSwiQTdLcGFFQVNmaERjSzBuWHhnUUV5eVl2IixLLHosbCkpLDUzKSk+PjQpKWE6e2lmKChKPVs5MCwxMTEsMTg4XSxLPj00OCYmSzw9NTd8fEs+PTk2JiZLPD0xMDYpfHxLPj02NSYmSzw9SlswXXx8a2UmJks9PTApe0E9ITA7YnJlYWsgYX1zd2l0Y2goSyl7Y2FzZSAzMjpjYXNlIDQzOmNhc2UgNjM6Y2FzZSA2NDpjYXNlIHZbMl06Y2FzZSAxMDk6Y2FzZSAxMTA6Y2FzZSBKWzFdOmNhc2UgMTg2OmNhc2UgNTk6Y2FzZSAxODk6Y2FzZSB6OmNhc2UgNjE6Y2FzZSBKWzJdOmNhc2UgMTkwOmNhc2UgMTkxOmNhc2UgMTkyOmNhc2UgMjIyOmNhc2UgMjE5OmNhc2UgMjIwOmNhc2UgMjIxOmNhc2UgMTYzOmNhc2UgNTg6QT0KITA7YnJlYWsgYTtjYXNlIDE3MzpjYXNlIDE3MTpBPWhYO2JyZWFrIGE7ZGVmYXVsdDpBPSExO2JyZWFrIGF9fXJldHVybigoQjw8MSYoQi0yPj4zPj0wJiZCLTg8MTkmJihYZy5jYWxsKHRoaXMsTU4pLHRoaXMuSD17fSx0aGlzLnY9MCksMjMpKT09NCYmVC5jYWxsKHRoaXMseiksKEI8PDEmMTQpPT0yKSYmKEM9WzEsbnVsbCw1XSxwUS5jYWxsKHRoaXMpLHRoaXMuTz0wLEs9dGhpcyx0aGlzLks9Q1swXSx0aGlzW3ZbMF1dPS0xLHRoaXMubD1DWzFdLHRoaXMuQT10aGlzLmd6PTAsdGhpcy5Cbz16LkJvfHxmdW5jdGlvbigpe30sdGhpcy5GPUNbMV0sdGhpcy5IPS0xLHRoaXNbdlsxXV09W10sdGhpcy5VPSIiLHRoaXMuclE9ei5yUSx0aGlzLmk9bmV3IHJLKHouclEsei5ZQSksdGhpcy5jdj16LmN2fHxDWzFdLHRoaXMuQ0Q9ei5DRHx8ITEsdGhpcy5SPXoueFp8fENbMV0sdGhpcy5Ycj16LlhyfHxDWzFdLHRoaXMubkQ9ei5uRHx8Q1sxXSx0aGlzLndpdGhDcmVkZW50aWFscz0hei5pRCwKdGhpcy5ZQT16LllBfHwhMSx0aGlzLm89dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyE9PSJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKE5tKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoTm0oKSkpLnNlYXJjaFBhcmFtcy5zZXQsSj1nWzQxXSg1LENbMF0sbmV3IFJqKSxHWzQwXSgyMixDWzJdLEosdGhpcy5pKSx0aGlzLlg9bmV3IFZ4KDFFNCksYj1tWzIwXSg2Nix6LlNGLHRoaXMpLHRoaXMudj1uZXcgRzModGhpcy5YLmdldFZhbHVlKCksYiksdGhpcy5DPW5ldyBHMyg2RTUsYiksdGhpcy5DRHx8dGhpcy5DLnN0YXJ0KCksdGhpcy5ZQXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoSDYsZnVuY3Rpb24ocCxRKXtkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0oUT1bMTEsMzgsbnVsbF0sImhpZGRlbiIpJiYoZ1tRWzBdXShRWzFdLCExLEspLChwPUsuRik9PVFbMl18fHAuZmx1c2goKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGVGLGZ1bmN0aW9uKHAsUSl7KGdbUT1bNiwKbnVsbCwxMV0sUVsyXV0oUVswXSwhMSxLKSxwPUsuRik9PVFbMV18fHAuZmx1c2goKX0pKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyl7aWYoISgoKCgoQl4oWj1bMzYsMiwiTSJdLDU4KSkmNyk9PTMmJihXPUdbMTNdKDMzLGZ1bmN0aW9uKE4seCxmLEwscixWLFAscSxjLEUpe0U9KEw9W251bGwsMTMsMF0sWyJ2IiwiVTMiLDddKTtzd2l0Y2goTi5NKXtjYXNlIEs6cmV0dXJuIE5bRVswXV0odltFWzBdXS5NLnNlbmQobmV3IFRaKEEpKSxKKTtjYXNlIEo6aWYoKG49Ti5YLG4pLnMzKCkpcmV0dXJuIFA9Ti5yZXR1cm4sYz1uLnMzKCksUC5jYWxsKE4sbmV3IEpQKDAsIiIsUDZbY118fFA2W0xbMl1dLCEwKSk7aWYoKFE9KChWPShSWzQwXSgxNiwxLG4ueG4oKSksbi56dSgpKSkmJk9bMzZdKDEsTFsyXSxWKSx2Lk8oe2lkOm51bGwsdGltZW91dDpudWxsLGtBOjFFMyxieTpZWzE5XSg2OSxDLG4pPzE6bnVsbH0pLG5bRVsxXV0oKSksIWIpfHwhWVsxOV0oMzcsCkxbMV0sbikpe04uR18oNCk7YnJlYWt9cmV0dXJuIE5bRVswXV0oR1s0M10oNjIsSyxBLnllKCksYikseik7Y2FzZSB6OnA9Ti5YLFE9R1szNF0oMjMsNCxSWzZdKEVbMl0sSixnWzQ3XSg1LExbMF0sSyxuZXcgQ0QsbltFWzFdXSgpKSxwKSk7Y2FzZSA0OnJldHVybiBmPU4ucmV0dXJuLHE9USx4PW4uVkEoKSx4PT1MWzBdfHxUMih4KSxyPXghPUxbMF0/RFsxOF0oNSx4KTp2b2lkIDAsZi5jYWxsKE4sbmV3IEpQKHIscSxudWxsLG51bGwsbi53VigpLG4ubGsoKSxuLmJrKCk/bi5iaygpLnllKCk6bnVsbCkpfX0pKSwoQiY0Nyk9PUImJihlW1pbMF1dKDEyLEssS1taWzJdXSx6LGZ1bmN0aW9uKCl7cmV0dXJuIEsubChuZXcgWW4sbjYpfSksSj1LW1pbMl1dLnUoKSxlW1pbMF1dKDEyLEssSiwkUixmdW5jdGlvbihOKXtOPVsiY2xhc3NMaXN0IiwicmVtb3ZlIiwiYWRkIl0sSltOWzBdXS5jb250YWlucyhxaSgpKSYmKEpbTlswXV1bTlsxXV0ocWkoKSksSltOWzBdXVtOWzJdXShpUigpKSwKdGhpcy5OeC5zZW5kKE8zKSl9KSxlW1pbMF1dKDUsSyxKLHl4LGZ1bmN0aW9uKE4pe0pbTj1bImNsYXNzTGlzdCIsInJlbW92ZSIsImNvbnRhaW5zIl0sTlswXV1bTlsyXV0oaVIoKSkmJihKW05bMF1dW05bMV1dKGlSKCkpLEpbTlswXV0uYWRkKHFpKCkpLHRoaXMuTnguc2VuZChPMykpfSkpLChCK1pbMV1eMzIpPj1CJiYoQi0zfDgwKTxCKSYmKFc9WVJbS118fChZUltLXT1uZXcgZXQoSyxLPHo/LTE6MCkpKSxCKS1aWzFdJjI4KSlhOntpZighSy5vKXtXPWZ1bmN0aW9uKCl7fTticmVhayBhfUo9ZnVuY3Rpb24oKXtLLmZsdXNoKCl9LFc9ej9mdW5jdGlvbigpe3ooKS50aGVuKEopfTpKfXJldHVybihCJjU4KT09QiYmKEM9Qz09PXZvaWQgMD9uZXcgTWFwOkMsYj1iPT09dm9pZCAwP251bGw6YixHWzM5XSg2KSxBPW5ldyBNZXNzYWdlQ2hhbm5lbCxLLnBvc3RNZXNzYWdlKHJ0LHlbMTZdKDEseixKKSxbQS5wb3J0Ml0pLFc9bmV3IEdIKEEucG9ydDEsQyxiLEosQSkpLFd9LGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBLHYscCxRKXtpZighKEIrNSYoKEI+PjEmKHA9WyJjb250cm9sbGVyIiwiY2FsbCIsMTVdLDcpKT09MiYmKEo9W251bGwsNiwxRTRdLGRrLkooKS5pbml0KFlbNDBdKHBbMl0sMix6KSksSz1KWzBdLFlbNDRdKDI2LGZ1bmN0aW9uKG4sWixXLE4seCxmKXtOPShXPVlbNDBdKChmPVsyLCJrIiwzXSxmKVsyXSxmWzBdLHopLGVbZlswXV0oMzUsZlswXSxsLFcpKSxaW2ZbMV1dPU4sSyYmKHg9Sy5VMygpKSYmKFoudD14KX0pLEs9bmV3ICRVLEsucmVuZGVyKEdbcFsyXV0oMzgpKSxDPW5ldyBxNShEWzhdKDkzLEhbNF0oOTAsSlsxXSx6LGwpKXx8MCxEWzhdKDczLEhbNF0oOTMsNyx6LGwpKXx8SlsyXSksdGhpc1twWzBdXT1uZXcgYzYoSyxuZXcgU0YsQykpLDExKSkpYTp7Zm9yKHY9KGI9W3o9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLEMsej09dHlwZW9mIHdpbmRvdyYmd2luZG93LHo9PXR5cGVvZiBzZWxmJiZzZWxmLHo9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sCkopO3Y8Yi5sZW5ndGg7Kyt2KWlmKChBPWJbdl0pJiZBW0tdPT1NYXRoKXtRPUE7YnJlYWsgYX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO31pZighKEI+PjEmMTEpKUFycmF5LnByb3RvdHlwZS5mb3JFYWNoW3BbMV1dKChiLnZ8fGRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKHorbTQpLGZ1bmN0aW9uKG4sWixXLE4pe1c9Wj09KE49WzM2LDMyLDM1XSxZW05bMl1dKDQ4LG4sQyxlW05bMF1dKE5bMV0sSix0aGlzKS55LUErSyksMCk/bFIoKTpFZygpLFlbTlsyXV0oTlsxXSxuLHY/e2xlZnQ6IjEwMCUiLHJpZ2h0OiIiLCJib3JkZXItbGVmdC1jb2xvciI6VywiYm9yZGVyLXJpZ2h0LWNvbG9yIjoidHJhbnNwYXJlbnQifTp7bGVmdDoiIixyaWdodDoiMTAwJSIsImJvcmRlci1yaWdodC1jb2xvciI6VywiYm9yZGVyLWxlZnQtY29sb3IiOiJ0cmFuc3BhcmVudCJ9KX0sYik7cmV0dXJuIFF9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTiwKeCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCl7aWYoKCgoYjM9WyJ2IiwyNSwiYWRkIl0sQisxPj40Pj0yJiYoQl44NSk+PjQ8MSkmJihKPUsuTSx6OD1KLmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxKLmNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8Si53ZWJraXRDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEoubW96Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxKLm9DYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEoubXNDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHopLEIpJjQzKT09Qil7Zm9yKE49KE09WyhVPVsiRk9PVEVSIiwyNjU0NDM1NzY5LDVdLG49ZG9jdW1lbnQuYm9keSxuZXcgWEwoMCxuLm9mZnNldEhlaWdodCpuLm9mZnNldFdpZHRoLG4sMCkpXSxuZXcgU2V0KTtNLmxlbmd0aD4wJiZOLnNpemU8Szspe2lmKChYPU1bMF0sWj1NLnBvcCgpLE0ubGVuZ3RoKSE9PTApZm9yKE1bMF09Wix2PTA7djw9Ck0ubGVuZ3RoPj5KOyl7aWYoKFY9KFM9KEI4PShjPU1bYT0oeD12b2lkIDAsKHU9dm9pZCAwLHQ9dm9pZCAwLHYpPDxKKSx2XVtiM1swXV0sdD0odT1NW2I9dm9pZCAwLGFdKT09ej92b2lkIDA6dVtiM1swXV0pIT16P3Q6LTEsKHY8PEopK0opLChiPSh4PU1bU10pPT16P3ZvaWQgMDp4W2IzWzBdXSkhPXo/YjotMSksQjgpPmMmJkI4Pj1WKWY9YTtlbHNlIGlmKFY+YylmPVM7ZWxzZSBicmVhazt2PShNW2ZdPShNW3ZdPU1bQT1NW3ZdLGZdLEEpLGYpfWlmKHI9KCgodz15WzQ4XSgoVz0oSlk9KEw9WCxMKSxKWS5lbGVtZW50KSx3PUpZLk0sOSksVVsyXSx3LFcudGFnTmFtZSksVy5pZCkmJih3PXlbNDhdKDQsVVsyXSx3LFcuaWQpKSxXLmNsYXNzTmFtZSkmJih3PXlbNDhdKDgsVVsyXSx3LFcuY2xhc3NOYW1lLnRvU3RyaW5nKCkpKSxXLnR5cGUpKXc9eVs0OF0oNSxVWzJdLHcsciksVy5uYW1lJiYodz15WzQ4XSgxMixVWzJdLHcsVy5uYW1lKSk7Zm9yKGQ9KEpZLmRlcHRoPj00JiZOW2IzWzJdXSh1Uih3LApVWzFdKSksZ1sxMl0oMTEsVy5jaGlsZHJlbikpLFE9ZC5uZXh0KCk7IVEuZG9uZTtRPWQubmV4dCgpKXtpZihQPVEudmFsdWUsaD1QLm9mZnNldEhlaWdodCpQLm9mZnNldFdpZHRoLFAudGFnTmFtZT09Q3x8UC50YWdOYW1lPT1VWzBdKWg9Sjtmb3IocT0oc3c9KEU9bmV3IFhMKHcsaCwocD1NLFApLEpZLmRlcHRoK0opLHAubGVuZ3RoKSxwLnB1c2goRSksRSlbYjNbMF1dO3N3PjAmJnBbc3c+PkpdW2IzWzBdXTxxOylwW3N3XT1wW3N3Pj5KXSxwW3N3Pj5KXT1FLHN3Pj49Sn19ejg9Tn1yZXR1cm4oQl4oQi0oKEIrN15iM1sxXSk8QiYmKEItN3w1MSk+PUImJihBPVlbNDZdKDg2LEosQyxiKSxiLkE9Yi5BLnRoZW4oQSxBKS50aGVuKGZ1bmN0aW9uKGpOKXtyZXR1cm4gZVs0Nl0oOCxLLGpOLlQoKSx6KX0pLHo4PWIuQSksMik+PjM9PTMmJih6OD1SYj8hIVo4JiZaOC5icmFuZHMubGVuZ3RoPjA6ITEpLDc5KSkmMjN8fCh6OD1IWzhdKDEyLDg2ODMpKEooeigpLDUpKS5sZW5ndGglMj09CjA/NTo0KSx6OH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuKChiPVs0OCxudWxsLDZdLEItM3wxNyk8QiYmQi1iWzJdPDwxPj1CJiYoQT15WzM4XSg0LEMsZVtiWzBdXSg5NixiWzFdLHopLEssSikpLChCPj4xJjIpPj0wKSYmKEJ8Nyk8MTUmJihBPVByb21pc2UucmVzb2x2ZShSWzI5XSgyMywxOCwyMyx6LEspKSksQX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKCgoQi00PDwxPCgocD1bMywiY2FsbCIsMTNdLChCXjcyKSYyOSl8fChDPWQ0LmluZGV4T2YoSiksQyE9PS0xJiYoZDQuc3BsaWNlKEMseiksZDQubGVuZ3RoPT09MCYmKFgyPVBJPUspKSksQikmJkItMTw8MT49QiYmKEs9fnouTXgrMXwwLHY9Z1sxMV0oNTYsfnouaCshS3wwLEspKSwoQnw2KT4+cFswXSk9PXBbMF0mJih0aGlzLnY9eiksQis0JnBbMl0pPT00KXlbMTldKDE4LEsseixHWzhdKDYsQSxDfHxEW3BbMF1dLmJpbmQobnVsbCw5KSxifHxudWxsKSxKKTtyZXR1cm4oQnw0KT4+cFswXT09MiYmCihCY3x8czR8fEZmfHxJMj9HRFtwWzFdXSh0aGlzLGFULndpZHRoLGFULmhlaWdodCxJeCxhZyk6R0RbcFsxXV0odGhpcyxoNC53aWR0aCxoNC5oZWlnaHQsSXgsYWcpLHRoaXMuZz10aGlzLnY9bnVsbCx0aGlzLkg9QmN8fHM0fHxGZnx8STIsdGhpcy5YPW5ldyBlWSgiIiksZ1sxNF0oMjUsZEssdGhpcy5YKSx5WzQzXSg0Mix0aGlzLlgsdGhpcyksdGhpcy5qPW5ldyBxbSx5WzQzXSg1Nix0aGlzLmosdGhpcyksdGhpcy5DPW51bGwpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZigoKHY9WzEsImZpbmQiLDZdLEIpPj52WzBdJnZbMl18fChDPWtSKHopLCh0eXBlb2YgSj09PSJzdHJpbmciP1tKXTpKKS5mb3JFYWNoKGZ1bmN0aW9uKFEpe2lmKFE9PT0ibnVsbCIpdGhyb3cgRXJyb3IoIlJlY2VpdmluZyBmcm9tIG51bGwgb3JpZ2luIG5vdCBhbGxvd2VkIHdpdGhvdXQgdG9rZW4gdmVyaWZpY2F0aW9uLiBQbGVhc2UgdXNlIE51bGxPcmlnaW5Db25uZWN0b3IuIik7Q1tRXT0KS30pLHA9ZnVuY3Rpb24oUSl7cmV0dXJuIENbUV09PT0hMH0pLEJ8MTYpPT1CKWE6e2lmKCEoQz1BcnJheS5mcm9tKFBQKCRwKSlbdlsxXV0oZnVuY3Rpb24oUSl7cmV0dXJuIFEudHlwZT09PXFMfSksQykpe3A9ejticmVhayBhfXA9KEE9KGI9QXJyYXkuZnJvbShQUCgkcCkpLmZpbHRlcihmdW5jdGlvbihRKXtyZXR1cm5bdDQsZWQsQVJdLmluY2x1ZGVzKFEudHlwZSl9KS5zbGljZShKLEspLmZpbHRlcihmdW5jdGlvbihRKXtyZXR1cm4gUS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihDKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HfSkuZmlsdGVyKE9bMjNdLmJpbmQobnVsbCwxNikpLnJldmVyc2UoKVt2WzFdXShmdW5jdGlvbihRKXtyZXR1cm4gUS52YWx1ZX0pKT09ej92b2lkIDA6Yi52YWx1ZSkhPXo/QTpudWxsfXJldHVybiBwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCEoKEJ8KG49WzMyLDQyLDBdLDcpKT4+MykpYTp7aWYoSyBpbnN0YW5jZW9mCkliKXtRPUsudjticmVhayBhfXRocm93IEVycm9yKHopO31pZigoQj4+MSYxNSk9PTQpe2ZvcihBPSh2PShiPWI9PT12b2lkIDA/TTU6YixnKVsxMl0oNyxKLkEpLHYubmV4dCgpKTshQS5kb25lO0E9di5uZXh0KCkpSFszNF0oMTQsSyxKLEEudmFsdWUpOyhuZXcgUHJvbWlzZSgoSi5BLmxlbmd0aD16LGZ1bmN0aW9uKFosVyl7SFszNF0oMyxLLEosbmV3IHdGKG51bGwsMCxDLDAsMixNNSxiK1lqKCksWixXKSl9KSkpLmNhdGNoKGcwWzRdLmJpbmQobnVsbCwyOCkpfWlmKChCPDwxJjIzKT09MiYmKEM9W251bGwsMTYsITFdLEE9T1syM10oNjYsQ1syXSxuWzJdLENbblsyXV0sQ1sxXSxLKSxBIT1DW25bMl1dKSl7c3dpdGNoKHR5cGVvZiBBKXtjYXNlICJzdHJpbmciOk9bMTldKDcsQ1sxXSxDW25bMl1dLEEpfWlmKEEhPUNbblsyXV0pc3dpdGNoKERbMjJdKDY3LG5bMl0seixKKSx0eXBlb2YgQSl7Y2FzZSAibnVtYmVyIjooYk4oKHY9ei52LEEpKSxrKVsxMl0oNixuWzJdLEEpLGVbMjhdKG5bMV0sCk9PLHhPLHYpO2JyZWFrO2Nhc2UgImJpZ2ludCI6KGI9RFsxM10oODQsblswXSxxMSxBLFJbMzFdLmJpbmQobnVsbCw2KSksZSlbMjhdKDEzLGIuTSxiLnYsei52KTticmVhaztkZWZhdWx0OnA9T1sxOV0oMTUsQ1sxXSxDW25bMl1dLEEpLGVbMjhdKDEyLHAuTSxwLnYsei52KX19aWYoKEJ8ODApPT1CKWE6e3N3aXRjaChiKXtjYXNlIHo6UT1BP1VnOk1pO2JyZWFrIGE7Y2FzZSBLOlE9QT93SzpJVDticmVhayBhO2Nhc2UgNDpRPUE/Rkw6Qmo7YnJlYWsgYTtjYXNlIDg6UT1BP3NDOnpyO2JyZWFrIGE7Y2FzZSBKOlE9QT9LYTpKOTticmVhayBhO2Nhc2UgblswXTpRPUE/Q2E6Ykc7YnJlYWsgYTtjYXNlIEM6UT1BP0E5OnZqO2JyZWFrIGF9dGhyb3cgRXJyb3IoVHIpO31yZXR1cm4oQl41Nyk8MzMmJihCPj4yJjMxKT49MTMmJihiPWtWKEssSiksKEM9Yj49eikmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChLLGIsMSksUT1DKSxRfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEItCjJ8KChCfChDPVszLDI3LDVdLDI0KSk9PUImJih6LmtleUNvZGU9PTEzP0hbMThdKDM0LCExLHRoaXMpOnRoaXMuSCYmdGhpcy52JiZnWzhdKENbMF0sIiAiLHRoaXMudikubGVuZ3RoPjAmJnRoaXMubUooITEpKSw2NCkpPEImJkItODw8Mj49QiltWzM2XSgzOCxmdW5jdGlvbihBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFNldH0sanIoKSk7cmV0dXJuKCgoQi03fENbMF0pPEImJkIrQ1syXT4+MT49QiYmKHBhLmNhbGwodGhpcyksdGhpcy5zdGF0dXM9MSx0aGlzLmVycm9yQ29kZT16KSxCLUNbMl0+PkNbMl08MSYmQisxPj0yMCYmKGI9bVsyM10oMzAsSixLLHopKSxCKSsxJjI5KTxCJiYoQi05XkNbMV0pPj1CJiZ6LmtleUNvZGU9PTEzJiZ0aGlzLnYuZ2V0VmFsdWUoKS5sZW5ndGg9PTYmJih0aGlzLlguZ2IoITEpLEhbMThdKDM1LCExLHRoaXMsInQiKSksYn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZigoQnwzMik9PShBPVsxMyw1OCxudWxsXSxCKSl7Zm9yKGI9KEs9KEM9KEo9ClJbOF0oQVsxXSx0aGlzKSxbXSksaylbMjFdKDIxLHRoaXMpLDEpO2I8ejtiKyspQy5wdXNoKGtbMjFdKEFbMF0sdGhpcykpO3RoaXMueEpbSl09Sy5hcHBseShBWzJdLGVbMzNdKDIwLEMpKX1pZighKEItMiYoKEI8PDImOCk8NSYmKEJeNTApPj4zPj0xJiZULmNhbGwodGhpcyx6KSwxMCkpKUhbMF0oNjgsSywxLHopO3JldHVybiB2fSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKCgocD1bMiwzLCJ0YXJnZXQiXSwoQi0xfDYpPj1CKSYmKEItcFswXXwyMik8QiYmKEM9SFsxNV0oNjQsMTIpLEE9W21bMTJdKDk1LEMsSildLGI9UWkoQSksdj1uZXcgcU8oWVszNF0oNyx6LGIudikseVsxMl0oODAsSyxwWzBdLGIudixrW3BbMV1dKDE0KSkuc2xpY2UoKSxiLk0pKSxCKSY1NSk9PUIpYTp7aWYoKEs9ei5sZW5ndGgsSyk+MCl7Zm9yKEo9QXJyYXkoSyksQz0wO0M8SztDKyspSltDXT16W0NdO3Y9SjticmVhayBhfXY9W119cmV0dXJuKEItMSYxMyk+PSgoKChCJjEwNik9PUImJgoodGhpcy50eXBlPXosdGhpc1twWzJdXT1LLHRoaXMuWD0hMSx0aGlzLk09dGhpc1twWzJdXSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEpLEIpJjEyNCk9PUImJih0aGlzLm5leHQ9ZnVuY3Rpb24oUSxuLFope3JldHVybiBPWzE1XSgyMSwoWj1bIlciLCJQIixudWxsXSwhMCksei52KSx6LnZbWlswXV0/bj1nMFszXSg0MywhMSxRLHoudltaWzFdXSx6LHoudltaWzBdXS5uZXh0KTooei52W1pbMV1dKFEpLG49RFsxMF0oMSxaWzJdLHopKSxufSx0aGlzWyJ0aHJvdyJdPWZ1bmN0aW9uKFEsbixaKXtyZXR1cm4oT1sxNV0oMTksITAsKFo9WyJXIiw2NCwzXSx6LnYpKSx6LnZbWlswXV0pP249ZzBbWlsyXV0oNDQsITEsUSx6LnYuUCx6LHoudltaWzBdXVsidGhyb3ciXSk6KGcwW1pbMl1dKDM5LHoudixRKSxuPURbMTBdKFpbMV0sbnVsbCx6KSksbn0sdGhpcy5yZXR1cm49ZnVuY3Rpb24oUSxuKXtyZXR1cm4gWVsyOV0oKG49WyExLDIsbnVsbF0sblsxXSksInJldHVybiIsblswXSxuWzJdLAohMCx6LFEpfSx0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLDEwKSYmKEItcFswXSYxNik8MSYmKHo9UXcsdGhpcy5jdG9yPW5hLHRoaXMudj1SWzQ4XS5iaW5kKG51bGwsNjkpLHRoaXMuZGVmYXVsdFZhbHVlPXZvaWQgMCx0aGlzLk09ei5SVCE9bnVsbD9sOnZvaWQgMCksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe2lmKCgoQi0oKEJeNjIpPj4oKChMPVszMCwyNSwzMl0sQiY3Nik9PUImJih2PVswLDIsITFdLFo9Z1syNl0oNTcsTFIuSigpLHZbMV0pLFc9Z1sxMl0oNyxaKSxuPVcubmV4dCgpLnZhbHVlLFE9Vy5uZXh0KCkudmFsdWUsTj1nWzddKDM2KSxmPWdbN10oMzgpLHA9W0hbNDRdKDYzLGIpLERbNDNdKDE2LDEsQyxuLEEsZiksUlsxOV0oNjQsUSxIWzE1XSg0OCwzKSxuKSxZWzBdKDI2LEosT1tMWzFdXSg5LFEpLE9bTFsxXV0oOSxiKSksdkkobixIWzE1XSg1Niw3KSxRKSxZWzBdKDI5LEosT1tMWzFdXSg1LApuKSx2WzJdKSxJKGIsSFsxNV0oTFsyXSxLKSxIWzE1XSg1Nix6KSxRKSxIWzQ0XSg1MSxuKSxIWzQ0XSg1NSxRKSxZWzBdKDI2LE4sdlswXSx2WzBdKSxmLEhbNDRdKDQzLEMpLEhbNDRdKDU1LG4pLEhbNDRdKDYzLFEpLFlbMF0oMjgsSix2WzBdLHZbMF0pLE5dLCh4PUxSLkooKSkudi5hcHBseSh4LGVbMzNdKDI3LFopKSxyPXApLChCKzReMjIpPj1CKSYmKEIrNCY0Nik8QiYmKCh6PT1udWxsPzA6ei5kaWRUaW1lb3V0KT90aGlzLmd0KG51bGwpOnRoaXMuZ3QoeikpLDMpPT0xJiYocD1bYj4+PkMmMjU1LGI+Pj5KJjI1NSxiPj4+OCYyNTUsYiYyNTVdLHY9UXYuZW5jb2RlKEEudG9TdHJpbmcoKSkscj1uZXcgUHJvbWlzZShmdW5jdGlvbihWLFApe1pxKHYscCx6LDgsMzIsZnVuY3Rpb24ocSl7cT9WKHEpOlAoRXJyb3IoSykpfSl9KSksMSk+PjM9PTImJihDPVtudWxsLCExLDFdLEo9Sj09PXZvaWQgMD8xOkosSy5SJiYobVsyNF0oOCxDWzJdLENbMV0sSy5SLnYpLEsuUj1DWzBdKSwKSy5YLnRoZW4oZnVuY3Rpb24oVil7cmV0dXJuIERbMjNdKDE1LFYpfSxmdW5jdGlvbigpe30pLEsuWD1DWzBdLERbMjNdKDM1LEsuTSksSy5NPUNbMF0sSy5vJiZLLm8uZGlzcG9zZSgpLEsuaSYmKEsuaS5kaXNwb3NlKCksSy5pPUNbMF0pLERbMjNdKDQzLEsuQSksSy5BPUNbMF0sZ1syXSgyLHosQ1sxXSxLLEopKSxCKSs1Jjc0KTxCJiYoQi01XjUpPj1CKWE6e0o9WzAsMTAyNDAsM107c3dpdGNoKHR5cGVvZiB6KXtjYXNlICJudW1iZXIiOnI9TnVtYmVyLmlzRmluaXRlKHopP3o6IiIrejticmVhayBhO2Nhc2UgImJpZ2ludCI6cj1qNyh6KT9OdW1iZXIoeik6IiIrejticmVhayBhO2Nhc2UgImJvb2xlYW4iOnI9ej8xOjA7YnJlYWsgYTtjYXNlICJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoeikpe0E9eltBJF18SlswXSxyPXoubGVuZ3RoPT09MCYmQSYxP3ZvaWQgMDpZWzI5XSg0LDY0LEEseixtW0xbMF1dLmJpbmQobnVsbCwxMykpO2JyZWFrIGF9aWYoeiE9bnVsbCYmeltqVF09PT0Kbmgpe3I9ZVsxOV0oMTMsSlswXSx6KTticmVhayBhfWlmKHogaW5zdGFuY2VvZiBabCl7aWYoKHY9ei52LHYpPT1udWxsKWI9IiI7ZWxzZXtpZih0eXBlb2Ygdj09PSJzdHJpbmciKW49djtlbHNle2lmKGlMKXtmb3IoUT0ocD0oSz0iIix2Lmxlbmd0aCktSlsxXSxKWzBdKTtRPHA7KUsrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx2LnN1YmFycmF5KFEsUSs9SlsxXSkpO0M9KEsrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxRP3Yuc3ViYXJyYXkoUSk6diksYnRvYSkoSyl9ZWxzZSBDPWVbNDZdKDI5LEpbMl0sdik7bj16LnY9Q31iPW59cj1iO2JyZWFrIGF9cj12b2lkIDA7YnJlYWsgYX1yPXp9cmV0dXJuIHJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKCgoKHY9WyJpIiwyNCw0OF0sQi04fDg3KTxCJiYoQisyJjYyKT49QiYmKEE9Ult2WzJdXSg3MixLLFdqLHosbCkpLEIpXjQ1KSYyMyk9PTImJihKPW1bdlsyXV0oMzAsSyksZGVsZXRlIElDW0pdLApSWzFdKDQseixJQykmJlFBJiZRQS5tOCgpKSwoQnx2WzFdKT09QilpZigoQz1LKEp8fEJVLHZvaWQgMCkpJiZDW3ZbMF1dJiZ6KUNbdlswXV0oeik7ZWxzZSBiPU9bN10oNixudWxsLEMpLHouaW5uZXJIVE1MPW1bMjZdKDQsIiIsYik7cmV0dXJuKCgoQl4yMyk+PjN8fChKPW5ldyBkSixBPWdbMjNdKDEzLEssazcsITAseixKKSksQileNjIpPj40fHwoSj16LEE9KG5ldyBJcChmdW5jdGlvbihwLFEpeyhKPU9bMl0oMzksZnVuY3Rpb24oKXtwKHZvaWQgMCl9LEspLEo9PS0xKSYmUShFcnJvcigiRmFpbGVkIHRvIHNjaGVkdWxlIHRpbWVyLiIpKX0pKS5QRihmdW5jdGlvbihwKXtrWzE2XSg2MSxKKTt0aHJvdyBwO30pKSxBfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoKChaPVsiczwvc3Ryb25nPiIsMjUsNDBdLEIrNSkmN3x8KEs9ei5HUSxiPXouaHEsSj16LlBvLEM9SFs0NV0oOCxOWigpLGIsaW0oKSxPQygpKSxXPU9bWlsyXV0oOTgsZ1taWzFdXSg1MiwKT1taWzJdXSg5NyxhWigpLCc8aWZyYW1lIHNyYz0iJytSWzExXSg3MyxHWzEwXSg4MixjbixDKT9DLlZlKCk6QyBpbnN0YW5jZW9mIEhsP1lbMzFdKDMsQykudG9TdHJpbmcoKTptcSgpKSsnIiBmcmFtZWJvcmRlcj0iMCIgc2Nyb2xsaW5nPSJubyI+PC9pZnJhbWU+PGRpdj4nKSxnWzM2XSgxOSx7aWQ6SyxuYW1lOkp9KSksSWYoKSkpLEIpPj4yJjEwKT09Mil7aWYoZVsyMV0oNzYsKEo9WyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiPicsKGI9ei5VWSwicmMtaW1hZ2VzZWxlY3QtZXJyb3ItZHluYW1pYy1tb3JlIiksJyI+J10seEsoKSksYikpe249JzxkaXYgaWQ9InJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZSIgY2xhc3M9IicrUlsxMV0oNzEsKHY9ei5sYWJlbCxBPXouTUksInJjLWltYWdlc2VsZWN0LWNhbmRpZGF0ZXMiKSkrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1jYW5vbmljYWwtYm91bmRpbmctYm94IikrJyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg3LAoicmMtaW1hZ2VzZWxlY3QtZGVzYyIpK0pbMl07c3dpdGNoKEhbNDRdKDEsdik/di50b1N0cmluZygpOnYpe2Nhc2UgIlRpbGVTZWxlY3Rpb25TdHJlZXRTaWduIjpuKz0iU2VsZWN0IGFyb3VuZCB0aGUgPHN0cm9uZz5zdHJlZXQgc2lnbnM8L3N0cm9uZz4iO2JyZWFrO2Nhc2UgInZlaGljbGUiOmNhc2UgIi9tLzA3eXY5IjpjYXNlICIvbS8wazRqIjpuKz0iT3V0bGluZSB0aGUgPHN0cm9uZz52ZWhpY2xlczwvc3Ryb25nPiI7YnJlYWs7Y2FzZSAiVVNFUl9ERUZJTkVEX1NUUk9OR0xBQkVMIjpuKz0iU2VsZWN0IGFyb3VuZCB0aGUgPHN0cm9uZz4iK0RbMzldKDcsQSkrWlswXTticmVhaztkZWZhdWx0Om4rPSJTZWxlY3QgYXJvdW5kIHRoZSBvYmplY3QifVE9VEQobisiPC9kaXY+Iil9ZWxzZSBRPWVbMjFdKDcyLERxKCksYik/SFszMF0oMTAsSlsyXSwiPC9kaXY+Iix6LmxhYmVsKTpHWzQ3XSg4LHosSyk7Vz0oKCgoKChwPU9bWlsyXV0oOTgsZ1taW0M9USwxXV0oNjgsT1taWzJdXSg3OCwKYVooKSwnPGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtaW1hZ2VzZWxlY3QtaW5zdHJ1Y3Rpb25zIikrJyI+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1pbWFnZXNlbGVjdC1kZXNjLXdyYXBwZXIiKStKWzJdKSxDKSwnPC9kaXY+PGRpdiBjbGFzcz0iJytSWzExXSg5LCJyYy1pbWFnZXNlbGVjdC1wcm9ncmVzcyIpKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWltYWdlc2VsZWN0LWNoYWxsZW5nZSIpKyciPjxkaXYgaWQ9InJjLWltYWdlc2VsZWN0LXRhcmdldCIgY2xhc3M9IicrUlsxMV0oNywicmMtaW1hZ2VzZWxlY3QtdGFyZ2V0IikrJyIgZGlyPSJsdHIiIHJvbGU9InByZXNlbnRhdGlvbiIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWltYWdlc2VsZWN0LWluY29ycmVjdC1yZXNwb25zZSIpK0pbMF0pLGdbWlsxXV0oNjcscCwiUGxlYXNlIHRyeSBhZ2Fpbi4iKSxPKVtaWzJdXSg3OCxwLAonPC9kaXY+PGRpdiBhcmlhLWxpdmU9InBvbGl0ZSI+PGRpdiBjbGFzcz0iJytSWzExXSg3MSwicmMtaW1hZ2VzZWxlY3QtZXJyb3Itc2VsZWN0LW1vcmUiKStKWzBdKSxnKVtaWzFdXSg2OCxwLCJQbGVhc2Ugc2VsZWN0IGFsbCBtYXRjaGluZyBpbWFnZXMuIiksT1taWzJdXSg3OSxwLCc8L2Rpdj48ZGl2IGNsYXNzPSInK1JbMTFdKDM5LEpbMV0pK0pbMF0pLGcpW1pbMV1dKDM1LHAsIlBsZWFzZSBhbHNvIGNoZWNrIHRoZSBuZXcgaW1hZ2VzLiIpLE8pW1pbMl1dKDk3LHAsJzwvZGl2PjxkaXYgY2xhc3M9IicrUlsxMV0oMzksInJjLWltYWdlc2VsZWN0LWVycm9yLXNlbGVjdC1zb21ldGhpbmciKStKWzBdKSxnW1pbMV1dKDUyLHAsIlBsZWFzZSBzZWxlY3QgYXJvdW5kIHRoZSBvYmplY3QsIG9yIHJlbG9hZCBpZiB0aGVyZSBhcmUgbm9uZS4iKSxPKVtaWzJdXSg5NyxwLHMxKCkpLHApfXJldHVybiBCKzEmN3x8KEVIPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMzFdKDMzLEssZnVuY3Rpb24oKXtyZXR1cm4gSi5zbGljZSh6KX0sClhKKX0sVz1KKSxXfSxmdW5jdGlvbihCLHosSyxKLEMsYil7aWYoKEJeKGI9WzIsNywidiJdLDU1KSk8MjEmJkIrYlsxXT4+ND49YlswXSYmTEQuY2FsbCh0aGlzLDE1MCxiWzFdLFsyXSksQis2Pj4xPj1CJiZCLTg8PGJbMF08QiYmKEg3W0g3Lmxlbmd0aF09SyxHZCkpZm9yKEo9ejtKPGVQLmxlbmd0aDtKKyspSyhSeChlUFtKXVtiWzJdXSxlUFtKXSkpO3JldHVybihCKzZeOSk+PUImJkIrYlswXT4+YlswXTxCJiYoQz1SWzEzXSg0MCxPWzldKDE1LDYpLFtPWzI1XSg5LHopLE9bMjVdKDMsSyksZ1sxNl0oMzAsSildKSksQ30sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oKChCKzImNDkpPj0oKChBPVsxLCJBIiwidiJdLChCfDgwKT09QikmJihDW0FbMV1dPUssZVs1XSgxMSxLLGZ1bmN0aW9uKCl7Qy5BJiZNdi5jYWxsKHosSil9KSksQnxBWzBdKT4+NDxBWzBdJiZCKzI+PS00MCYmKGI9UlsxNF0oNzMseixKLEMsSyksdj1BcnJheS5pc0FycmF5KGIpP2I6UVApLEIpJiYKQis3Pj5BWzBdPEImJihKLk0/KEM9aFkoSi5pKCktSltBWzFdXSwwKSxDPEouWCp6P0pbQVsyXV09c2V0VGltZW91dChmdW5jdGlvbigpe21bMzRdKDMxLC44LCExLEopfSxKLlgtQyk6KEpbQVsyXV0mJihjbGVhclRpbWVvdXQoSltBWzJdXSksSltBWzJdXT12b2lkIDApLEoueEEoKSxKLk0mJihIWzE5XSg1OSxLLEopLEouc3RhcnQoKSkpKTpKW0FbMl1dPXZvaWQgMCksQi00XjI2KTxCJiYoQi0yXjcpPj1CJiZULmNhbGwodGhpcyx6KSwoQiYxMjYpPT1CKSYmKHRoaXNbQVsyXV09eiksdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKChCJjI1KT09KCgoTj1bMTQsMiwxOV0sQi04KSYxNSk9PTMmJih6PXo9PT12b2lkIDA/MUUzOnosSz1uZXcgV2IsSy5PZD1mdW5jdGlvbigpe3JldHVybiBuZyhmdW5jdGlvbihmLEwscil7cmV0dXJuKEw9KHI9R1szMV0oMSksci1mKSwhcnx8Yk4oTC96KSk/KEsuT2Q9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sSy5PZCgpKToKei1MfSxHWzMxXSg1KSl9KCkseD1LKSwoQi1OWzFdXjMpPj1CJiYoQi01fDUyKTxCJiYoeD15WzM4XShOWzFdLHZvaWQgMCxSWzExXSgyOCx6LEopLEssTlsxXSkpLEIrNT4+Mz09MSYmYiE9SyYmKEE9cGFyc2VJbnQoYiwxMCksYk4oQSksRFsyMl0oNzYsMCxDLEopLGtbTlswXV0oTlsyXSx6LEMudixBKSksQikpe2ZvcihaPShXPShBPXlbMzddKE5bMl0seixOW2I9KEouQj0hMSxbXSksMV0sQyxsKSxnWzEyXSg3LEEpKSxXLm5leHQoKSk7IVouZG9uZTtaPVcubmV4dCgpKW49Wi52YWx1ZSxRPVJbMjZdKDIwLEMsNSxsKSxiLnB1c2goSi5XbyhRLG4pKTt2PUhbMTJdKDQ0LEMsKHA9Si5ETSxLKSxxRixrWzNdKDcpLGwpLHAuY2FsbChKLGIsdiksZVsxMF0oNCwiaiIsSil9cmV0dXJuIHh9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7aWYoKEImKChCLTVeMzApPj0oKEIrKEE9WzkzLDEsImNhbGwiXSw3KV4yNSk8QiYmQi03PDxBWzFdPj1CJiYoYj1bXSxPWzIwXSgzLEsseixDLEosCkssYiksdj1iKSxCKSYmKEIrNyYxMCk8QiYmKHoudFk9ITAsdj16KSxBWzBdKSk9PUIpTERbQVsyXV0odGhpcywxMzEwLDI3KTtyZXR1cm4gdn0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZighKChOPVswLDY1LDEyXSxCXk5bMV0pJjMpKWE6e2lmKEoubm9kZVR5cGU9PXope1c9KGI9ZVtOWzJdXSg2LEopLG5ldyBaNihiLnRvcCxiLmxlZnQpKTticmVhayBhfVc9bmV3IFo2KChDPUouY2hhbmdlZFRvdWNoZXM/Si5jaGFuZ2VkVG91Y2hlc1tLXTpKLEMpLmNsaWVudFksQy5jbGllbnRYKX1pZigoKCgoQnw1KSY3KT49MyYmQisyPDE2JiYodGhpcy5XPXosdGhpcy5DPSEhQyxmYS5jYWxsKHRoaXMsSyxKKSksQiktMl4zMSk+PUImJihCLTVeMTYpPEIpe2ZvcihuPVtdLmNvbmNhdChlWzMzXSgoUT1tW3A9b3Iuc2xpY2UoKSw4XSgxMCksWj0oQT09PXZvaWQgMD8wOkEpJW9yLmxlbmd0aCwyOCksYikpLHY9ejt2PG4ubGVuZ3RoO3YrKylwW1pdPSgocFtaXTw8Sl4KTWF0aC5wb3coUS5jYWxsKG5bdl0seiktb3JbWl0sQykpKyhwW1pdPj5DKSkvb3JbWl18eixaPShaK0spJW9yLmxlbmd0aDtXPWU3KHAucmVkdWNlKGZ1bmN0aW9uKHgsZil7cmV0dXJuIHheZn0seikpfXJldHVybihCfDcyKT09QiYmKHY9WzE3LDIwLDFdLHA9SihLKCksMTEpLEMocCx2W05bMF1dKSYmKEE9QyhwLHZbTlswXV0pKERbTlsyXV0oNTYsdlsyXSx2WzFdKSkpJiZBW05bMF1dJiYoYj1KKEFbTlswXV0sMjcpfHwiIiksVz1IWzhdKDQwLDIzMCkoYikpLFd9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKChXPVs4LDEzLDRdLEI8PDE8MjQpJiYoKEJ8V1swXSkmV1sxXSk+PVdbMl0mJmIpZm9yKEE9SztBPExhLmxlbmd0aDtBKyspZVsyNF0oMjEseixKLExhW0FdKyJBcnJheS5wcm90b3R5cGUuIitDLGIpO2lmKCgoKEImMjgpPT1CJiYoWj15WzM4XSg1LHZvaWQgMCxrWzJdKDE2LHosbnVsbCxDKSxKLEspKSxCLTUpPj5XWzJdPj0zJiYoQj4+MSZXWzBdKTwKV1swXSYmKFo9T1sxNF0oMTIsSyxIW1dbMl1dKDkyLHosSikpKSxCfDUpPj5XWzJdPj0yJiZCLTk+PldbMl08Mil7Zm9yKFE9KCh2PUoudix2KS5wdXNoKG5ldyBWUChiLEMpKSxwPUoudixuPXYubGVuZ3RoLUsscFtuXSk7bj56OylpZihBPW4tSz4+SyxwW0FdLnY+US52KXBbbl09cFtBXSxuPUE7ZWxzZSBicmVhaztwW25dPVF9cmV0dXJuIFp9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYpe2lmKCgoeD1bImNhbGwiLCJhcHBseSIsMjFdLEIrNykmMjkpPj1CJiZCKzQ+PjE8QilUW3hbMF1dKHRoaXMseik7cmV0dXJuKChCXnhbMl0pPDEzJiYoQj4+MiYxMCk+PTImJihKPU9bNDFdKDMwKSxVeC5zZXQoSix7ZmlsdGVyOksseEE6en0pLGY9SiksQis4XjE0KTxCJiYoQi02fDUwKT49QiYmKHA9WzIsITEsN10sVz1nWzI2XSg4OCxMUi5KKCkscFswXSksTj1nWzEyXSgzLFcpLEE9Ti5uZXh0KCkudmFsdWUsUT1OLm5leHQoKS52YWx1ZSxuPWdbN10oMzcpLFo9CmdbN10oMzgpLGI9W0hbNDRdKDYyLEopLERbNDNdKDE3LDEseixBLEMsWiksUlsxOV0oMzMsUSxIWzE1XSgyNCw1KSxBKSxZWzBdKDI0LEssT1syNV0oNSxRKSxPWzI1XSg1LEopKSx2SShBLEhbMTVdKDcyLHBbMl0pLFEpLFlbMF0oMjUsSyxPWzI1XSgzLEEpLHBbMV0pLEkoSixIWzE1XSg0OCw2KSxIWzE1XSgzMiw5KSxRKSxIWzQ0XSg1OCxBKSxIWzQ0XSg2MixRKSxZWzBdKDI3LG4sMCwwKSxaLEhbNDRdKDQ2LHopLEhbNDRdKDYzLEEpLEhbNDRdKDU5LFEpLFlbMF0oMjcsSywwLDApLG5dLCh2PUxSLkooKSkudlt4WzFdXSh2LGVbMzNdKDM2LFcpKSxmPWIpLGZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKChwPVtudWxsLCJSIiwidiJdLChCXjM3KT4+NCk+PTAmJigoQl4xMikmMTQpPDcmJih6LmtwJiZPWzMxXSgxNyxwWzBdLHopLHpbcFsyXV09Syx6LkFNPUhbNV0oMjQseltwWzJdXSxCUyx6LEopLHoubzc9SFs1XSg5MSx6W3BbMl1dLEY4LHouUFksSix6KSwKei5rcD1IWzVdKDI0LHpbcFsyXV0sc1gsei5YdCxKLHopKSwoQi05XjIyKTxCJiYoQisxXjE1KT49QikmJihwUS5jYWxsKHRoaXMpLHRoaXMuTT1LfHx3aW5kb3csdGhpc1twWzJdXT1wWzBdLHRoaXMuaT0hMSx0aGlzW3BbMV1dPXosdGhpcy5BPUosdGhpcy5YPVJ4KHRoaXMuRix0aGlzKSksKEJeMTQpPj4zPj0xJiYoQjw8MiYxMSk8MykmJihBPW1bOF0oNyksYj1PWzQxXSgyMSkuc3BsaXQoSykuc2xpY2UoeiwzKS5tYXAoZnVuY3Rpb24oUSl7cmV0dXJuIEEuY2FsbChRLHopfSksZW5jb2RlVVJJQ29tcG9uZW50KEMpLnNwbGl0KEspLmZvckVhY2goZnVuY3Rpb24oUSxuLFope2IucHVzaCgoWj1bMzUsMywiY2FsbCJdLE9bWlswXV0oNDQsQVtaWzJdXShKLG4lSi5sZW5ndGgpLEFbWlsyXV0oUSx6KSxiW24lWlsxXV0pKSl9KSx2PWIpLHZ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKCgoKEImOTApPT0oYj1bNywiY2FsbCIsMTZdLEIpJiYoQT17c2VuZDpmdW5jdGlvbih2LHAsClEsbixaLFcsTix4LGYpe3JldHVybigoKHg9bmV3IHFxKChmPVshMCwiTyIsIlciXSxLKSkseFtmWzFdXSkuYWRkKFN0cmluZyhNcSkscCwhMSx2b2lkIDAsdm9pZCAwKSxnKVs0M10oMyxmWzBdLGpaLHgsZnVuY3Rpb24oKXt4LmRpc3Bvc2UoKX0pLFcmJih4W2ZbMl1dPWhZKHosVykpLE4pJiYoeC5BPU4pLHguc2VuZCh2LFEsbixaKSx4fX0pLEI8PDEpJjMpPj0yJiYoKEJ8YlswXSkmYlsyXSk8OSlUW2JbMV1dKHRoaXMseik7cmV0dXJuKEJeMjEpPj40Pj0yJiZCPj4yPDIwJiYoQz1SWzM4XSg2LHosbnVsbCxLKSxKPVJbMzZdKDU2LEspLEE9bmV3IG5qKEMueCxDLnksSi53aWR0aCxKLmhlaWdodCkpLEF9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoKChDPVs5LDU2LDFdLChCLUNbMF1eMTUpPEIpJiYoQitDWzJdJkNbMV0pPj1CJiYoYj1TWi50b1N0cmluZyksQisyKSYzMCk8QiYmKEIrNl4xOCk+PUIpe2ZvcihKIGluIEs9e30seilLW0pdPXpbSl07Yj1LfXJldHVybiBCPj5DWzJdPj0KMjAmJihCXjM2KTwzNiYmKGI9UnJ8fChScj1uZXcgWmwobnVsbCxlSikpKSxifSxmdW5jdGlvbihCLHosSyxKKXtpZihCLTc+PS0oSz1bImNhbGwiLDEyMyw0XSw4OSkmJihCPDwxJktbMl0pPEtbMl0pVFtLWzBdXSh0aGlzLHopO3JldHVybiBKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChBPVszLCJ0YWdOYW1lIiwiSW52YWxpZCBKU09OIHN0cmluZzogIl0sQitBWzBdJjcpPT1BWzBdKWE6e2lmKEsgaW5zdGFuY2VvZiB4ayl7dj1LLnY7YnJlYWsgYX10aHJvdyBFcnJvcih6KTt9aWYoISgoKEIrNSYzMCk8QiYmKEItMV4yOSk+PUImJnouWC5wdXNoKHouQVksWVsyXSg4NixmdW5jdGlvbihwLFEpe3JldHVybiBwfHxRfSx6KSx6LmJQLHouQUwpLEItQVswXSkmMTEpKWE6e3RyeXt2PUdsW3JhKCldW1Z3KCldKEMpO2JyZWFrIGF9Y2F0Y2gocCl7fWlmKC9eXHMqJC8udGVzdCgoYj1TdHJpbmcoQyksYikpPzA6L15bXF0sOnt9XHNcdTIwMjhcdTIwMjldKiQvLnRlc3QoYi5yZXBsYWNlKC9cXFsiXFxcL2JmbnJ0dV0vZywKR3IoKSkucmVwbGFjZSgvKD86IlteIlxcXG5cclx1MjAyOFx1MjAyOVx4MDAtXHgwOFx4MGEtXHgxZl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/KVtcc1x1MjAyOFx1MjAyOV0qKD89OnwsfF18fXwkKS9nLGJxKCkpLnJlcGxhY2UoLyg/Ol58OnwsKSg/Oltcc1x1MjAyOFx1MjAyOV0qXFspKy9nLHopKSl0cnl7dj1ldmFsKEsrYitKKTticmVhayBhfWNhdGNoKHApe310aHJvdyBFcnJvcihBWzJdK2IpO31pZigoQi03fDY2KTxCJiYoQitBWzBdXjMyKT49Qil7aWYoSy5ub2RlVHlwZT09PTEmJi9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChLW0FbMV1dKSl0aHJvdyBFcnJvcih6KTtLLmlubmVySFRNTD1tWzI2XSgyLHosSil9cmV0dXJuIHZ9LGZ1bmN0aW9uKEIseixLLEosQyl7aWYoISgoQz1bMTUsMzcsOF0sQj4+MikmNnx8KGdbNDRdKDQ2LDQsdGhpcykmJnlbMzRdKENbMl0sMSx0aGlzLCExKSxnWzQ0XSg1NywzMix0aGlzKSYmdGhpcy5KSyghMSkpLApCPDwyJkNbMF0pKXtpZih0aGlzLk5qIT09eGopdGhyb3cgRXJyb3IoIlNhbml0aXplZCBjb250ZW50IHdhcyBub3Qgb2Yga2luZCBIVE1MLiIpO0o9R1s0M10oMjUsbnVsbCx0aGlzLnRvU3RyaW5nKCkpfXJldHVybiBCKzE+PjR8fChKPURbMjBdKDUsIkFuZHJvaWQiKSYmIShrWzIzXSgxNCwiQ3JpT1MiKXx8T1tDWzFdXSgxMSxLKXx8Z1tDWzJdXSgyMCwiT3BlcmEiKXx8eVs0NV0oMjEseikpKSxKfSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKCgoKCgoQnw4OCk9PSh2PVsyLDgsMV0sQikmJlQuY2FsbCh0aGlzLHopLChCPj52WzJdJjI3KT09dlswXSkmJih0aGlzLkJ2PXo9ej09PXZvaWQgMD9tWzQxXSh2WzFdLDApOnosdGhpcy52PUspLEImMzUpPT1CJiYoSj1bbnVsbCwiZyIsITFdLHdFLmNhbGwodGhpcyksdGhpcy5NPXoseVs0M10oNTYsdGhpcy5NLHRoaXMpLHRoaXMudj1LLHlbNDNdKDQwLHRoaXMudix0aGlzKSx0aGlzLk89SlswXSx0aGlzLmw9SlswXSx0aGlzLlU9CkpbdlswXV0sdGhpcy5LPUpbdlswXV0sdGhpcy5vPURhdGUubm93KCksdGhpcy5qPUpbMF0sdGhpcy5YPUpbMF0sdGhpcy5SPUpbMF0sdGhpcy5GPW5ldyBteCx5WzQzXSg0Mix0aGlzLkYsdGhpcyksZVsyOV0oMjEsInIiLCJzIixKW3ZbMl1dLCJsIix0aGlzKSx0aGlzLmk9SlswXSksQit2WzJdJjU2KT49QiYmKEItN3wzNSk8QiYmKHRoaXMuTTc9QXJyYXkuZnJvbShLLmVudHJpZXMoKSksdGhpcy52Vz1BcnJheS5mcm9tKHopKSxCKT4+dlswXSYxNSk9PXZbMF0pe2ZvcihBPShKPShiPShDPVJbdlsxXV0oNTcsdGhpcyksa1syMV0oMTcsdGhpcykpLEs9W10sa1syMV0oMjUsdGhpcykpLHZbMF0pO0E8ejtBKyspSy5wdXNoKGtbMjFdKDIzLHRoaXMpKTt0aGlzLnhKW0NdPWJbSl0uYXBwbHkoYixlWzMzXSgzNixLKSl9cmV0dXJuIHB9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtyZXR1cm4gQi0oKEImKCgoQnwyKSYoKEJeODgpPj40PCgoeD1bMzQsNiwyNl0sCihCfDIpJjE1KT49NSYmKEI8PDEmMTYpPDkmJihBcnJheS5pc0FycmF5KEopfHwoSj1bU3RyaW5nKEopXSksa1sxOF0oNjYsMCxudWxsLEssei5BLEopKSwzKSYmQj4+Mj49MTkmJkMuaW5mbyhmdW5jdGlvbihmLEwpe3JldHVybihmPVtudWxsLCIgIiwiWE1MSFRUUCBURVhUICgiXSxMPVszOSwxLDJdLGYpW0xbMl1dK0orIik6ICIrT1tMWzBdXSgyNCwibm9vcCIsTFsxXSxmWzBdLHosSyxDKSsoYj9mW0xbMV1dK2I6IiIpfSksMTUpKT49NyYmKEItOSYxNik8OSYmKE49R1sxM10oMjQsZnVuY3Rpb24oZixMLHIpe3I9KEw9WzEsNyw4XSxbMjEsMjMsMl0pO3N3aXRjaChmLk0pe2Nhc2UgTFswXTpRPUMsQT1HW3JbMV1dKHJbMF0sRFs4XSg4OSxIWzRdKDkwLHosYikpLEhqKCkpLHA9R1tyWzFdXSg2LERbOF0oODgsSFs0XSg5NCxMWzBdLGIpKSxwRygpKTtjYXNlIHo6aWYoUSsrLFE+PTFFNCl0aHJvdyBFcnJvcihKKTtpZighKFE+QyYmUSU1MDA9PT0wKSl7Zi5HXyhLKTticmVha31yZXR1cm4gZi52KG5ldyBQcm9taXNlKGZ1bmN0aW9uKFYpe3NldFRpbWVvdXQoViwKQyl9KSxLKTtjYXNlIEs6cmV0dXJuIGYudihtWzMwXSg0OCxMWzFdLEosMTYsMjQscCxRKSxMWzFdKTtjYXNlIExbMV06aWYoKG49KCh2PWYuWCx2W0NdPDwyNHx2W0xbMF1dPDwxNil8dlt6XTw8TFtyWzJdXXx2WzNdKT4+PkMsbiklQT09PTApcmV0dXJuIGYucmV0dXJuKFtRXSk7Zi5HXyh6KX19KSksNDcpKT09QiYmSyE9bnVsbCYmKEE9KEM9ZXIpIT1udWxsP0M6ZXI9e30sYj1BW0tdfHwwLGI+PUp8fChBW0tdPWIreixZWzE1XSg1MCkpKSwzKTw8Mj49QiYmKEItNHw0NSk8QiYmKFE9WzAsOCw0XSxBPVlqKCktSi5HLFo9bmV3IFJFLHY9ZVt4WzBdXSgxMywiOiAiLFFbMF0sSi5VLEEpLFc9SFs0NF0oODYsWixrbixRWzJdLHYpLG49ZVt4WzBdXSgxMiwiOiAiLFFbMF0sSi5JLEEpLGI9SFs0NF0oODMsVyxrbixLLG4pLEM9a1t4WzFdXSh4WzJdLHhbMV0sYixKLkQpLHA9a1t4WzFdXSgzMCx6LEMsSi5qKSxOPWtbeFsxXV0oNTcsUVsxXSxwLEouZykpLE59LGZ1bmN0aW9uKEIseixLLApKLEMsYixBLHYscCxRKXtyZXR1cm4gQi0zPj4oKChCXigoQnwocD1bMSwyLDRdLDcyKSk9PUImJihDPUhbNDhdKHBbMl0sZTcoSyksUGpbel0sUGpbcFswXV0sUGpbcFsxXV0pLFE9ZnVuY3Rpb24oKXtyZXR1cm4gYk4oQygpKlBqWzJdKSVKfSksNzcpKSYxMyk9PXBbMF0mJihRPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh6LCRLKSYmelskS118fCh6WyRLXT0rK3FaKSkscFsyXSl8fCh2PVtudWxsLDQsMF0sQT1EWzE0XSg4MSxLKSxBIT12WzBdJiYoRFsyMl0oNjYscFswXSx6LEopLEM9ei52LGI9aUd8fChpRz1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgpKSksYi5zZXRGbG9hdDY0KHZbcFsxXV0sK0EsITApLE9PPWIuZ2V0VWludDMyKHZbcFsxXV0sITApLHhPPWIuZ2V0VWludDMyKHZbcFswXV0sITApLGdbMjddKDEyLDE2LEMsT08pLGdbMjddKDEwLDE2LEMseE8pKSksQi1wWzFdJjEwfHwoUT1rWzQ2XSg0MSxmdW5jdGlvbihuLFosVyl7bi5zdWJzY3JpYmUoKFc9CnosbmV3IGZnKFosZnVuY3Rpb24oTil7Wi5uZXh0KEsuY2FsbCh2b2lkIDAsTixXKyspKX0pKSl9KSksUX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKEJ8MjQpPT0oKEImMjUpPT0oQT1bNzEsNjcsInRvU3RyaW5nIl0sQikmJih6PVsnIiB0YWJpbmRleD0iLTEiPjwvZGl2PicsIjxkaXYgaWQ9J3JjLWxpdmVuZXNzJyBjbGFzcz1cIiIsInJlY2FwdGNoYUphdmFzY3JpcHRDaGFsbGVuZ2VMaXZlbmVzc091dGVyQ29udGFpbmVyIl0sYj1PWzQwXSg3OSxnWzI1XShBWzFdLE9bNDBdKDk5LGFaKCkselsxXStSWzExXSg3LHpbMl0pKyciPjxkaXYgY2xhc3M9IicrUlsxMV0oQVswXSwicmVjYXB0Y2hhSmF2YXNjcmlwdENoYWxsZW5nZUxpdmVuZXNzQ29udGFpbmVyIikrelswXSksRFszMF0oMjcsIiAiKSksSWYoKSkpLEIpKXtpZih0eXBlb2YgeiE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7Yj16fXJldHVybigoQl40Mik+PjN8fChiPUdbMV0oNSxuZXcgWHgsSFs4XSgzMiwzMzM5KSh6LApKLGZ1bmN0aW9uKHYpe3JldHVybiB2LnNwbGl0KFhaKCkpWzBdfSkpW0FbMl1dKCkpLChCPj4xJjcpPT0zKSYmKGI9KCIiK0MoSygpLDE4KSgpKS5sZW5ndGh8fDApLGJ9XX0oKSxRNj1mdW5jdGlvbihCKXtyZXR1cm4ga1syNl0uY2FsbCh0aGlzLDksQil9LHl3LEYsWUssY2osU3IsYzI9W10sUTg9ZnVuY3Rpb24oQil7cmV0dXJuIHlbN10uY2FsbCh0aGlzLDgsQil9LFNkPSgoY2o9c2VsZik9PW51bGx8fCh5dz1jai5kb2N1bWVudCk9PW51bGx8fChTcj15dy5jcmVhdGVFdmVudCk9PW51bGx8fChZSz1Tci5iaW5kKT09bnVsbHx8WUsuY2FsbChTcixkb2N1bWVudCksZnVuY3Rpb24oQil7cmV0dXJuIE9bMjFdLmNhbGwodGhpcywxNixCKX0pLG1JPU9bMjhdKDM5LE9bMjhdKDM4LDAsT1syOF0oNDksMTgsMjApKSxPWzI4XSg1MCxPWzI4XSg0NiwzMyxPWzI4XSg1MSw4OSw4MCkpLE9bMjhdKDQwLDkxLDExNCwxMzgsMjAsMTA4LDMxOCksMjExLDI0LDEyNCwxODYpKSxPMj1mdW5jdGlvbihCLAp6LEssSixDKXtyZXR1cm4gWVsxXS5jYWxsKHRoaXMsMSxCLEosSyx6LEMpfSx5VT1mdW5jdGlvbihCLHope3JldHVybiBPWzE4XS5jYWxsKHRoaXMsOCx6LEIpfSxKaz1mdW5jdGlvbigpe3JldHVybiBIWzM5XS5jYWxsKHRoaXMsNDgpfSxsRyxFQyxYMSx1Rz1mdW5jdGlvbihCKXtyZXR1cm4gUls0N10uY2FsbCh0aGlzLDE2LEIpfSxhcix1Uj0oWDE9c2VsZik9PW51bGw/dm9pZCAwOihhcj1YMS5NYXRoKT09bnVsbD92b2lkIDA6KGxHPWFyLmltdWwpPT1udWxsP3ZvaWQgMDooRUM9bEcuYmluZCk9PW51bGw/dm9pZCAwOkVDLmNhbGwobEcsTWF0aCksaDksTHQ9WyJwbGF0Zm9ybSIsInBsYXRmb3JtVmVyc2lvbiIsImFyY2hpdGVjdHVyZSIsIm1vZGVsIiwidWFGdWxsVmVyc2lvbiJdLGRhLGtLLHRQPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gUlsxMV0uY2FsbCh0aGlzLDEzLHosSyxCKX0sdDksUFA9KHQ5PXNlbGYpPT1udWxsP3ZvaWQgMDooa0s9dDkuZG9jdW1lbnQpPT1udWxsP3ZvaWQgMDoKKGg5PWtLLmdldEVsZW1lbnRzQnlUYWdOYW1lKT09bnVsbD92b2lkIDA6KGRhPWg5LmJpbmQpPT1udWxsP3ZvaWQgMDpkYS5jYWxsKGg5LGRvY3VtZW50KSxVQyxNWix3YSxXdD1mdW5jdGlvbihCLHope3JldHVybiBnWzddLmNhbGwodGhpcywxLEIseil9LEokPWZ1bmN0aW9uKEIpe3JldHVybiBlWzM3XS5jYWxsKHRoaXMsMSxCKX0sTWs9ZnVuY3Rpb24oKXtyZXR1cm4gRFsyXS5jYWxsKHRoaXMsMSl9LElyLEZIPShNWj1zZWxmKT09bnVsbD92b2lkIDA6KHdhPU1aLmRvY3VtZW50KT09bnVsbD92b2lkIDA6KElyPXdhLmhhc1N0b3JhZ2VBY2Nlc3MpPT1udWxsP3ZvaWQgMDooVUM9SXIuYmluZCk9PW51bGw/dm9pZCAwOlVDLmNhbGwoSXIsZG9jdW1lbnQpLEYxLEIyPWZ1bmN0aW9uKEIpe3JldHVybiBPWzIwXS5jYWxsKHRoaXMsMzIsQil9LEI1LHpKPWZ1bmN0aW9uKEIseil7cmV0dXJuIEdbMzBdLmNhbGwodGhpcywyNixCLHopfSxzWix6WDsKKHpYPXNlbGYpPT1udWxsfHwoQjU9elguTWF0aCk9PW51bGx8fChzWj1CNS5zaWduKT09bnVsbHx8KEYxPXNaLmJpbmQpPT1udWxsfHxGMS5jYWxsKHNaLE1hdGgpO3ZhciBLcCxKSj1mdW5jdGlvbihCKXtyZXR1cm4gSFsxMF0uY2FsbCh0aGlzLDEsQil9LENwLGJQLE43PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBPWzQ1XS5jYWxsKHRoaXMsOCxCLHosSyxKKX0sQUosdjU9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMTRdLmNhbGwodGhpcywyNCxCKX0sVFg9KEtwPXNlbGYpPT1udWxsP3ZvaWQgMDooYlA9S3AuTWF0aCk9PW51bGw/dm9pZCAwOihBSj1iUC5zcXJ0KT09bnVsbD92b2lkIDA6KENwPUFKLmJpbmQpPT1udWxsP3ZvaWQgMDpDcC5jYWxsKEFKLE1hdGgpLFdTPWZ1bmN0aW9uKEIpe3JldHVybiBrWzldLmNhbGwodGhpcywzNSxCKX0sam8scHA9WzBdLFFGLGRrPWZ1bmN0aW9uKCl7cmV0dXJuIGVbNDFdLmNhbGwodGhpcywxKX0sbnAsWlk7CihucD1zZWxmKT09bnVsbHx8KFFGPW5wLmRvY3VtZW50KT09bnVsbHx8KFpZPVFGLmNyZWF0ZVRleHROb2RlKT09bnVsbHx8KGpvPVpZLmJpbmQpPT1udWxsfHxqby5jYWxsKFpZLGRvY3VtZW50KTsKdmFyIFc1LGdRLEozPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gR1sxOV0uY2FsbCh0aGlzLDEsQix6LEspfSxOdyxPWixsZj0oTnc9c2VsZik9PW51bGw/dm9pZCAwOihnUT1Ody5kb2N1bWVudCk9PW51bGw/dm9pZCAwOihPWj1nUS5jcmVhdGVFbGVtZW50KT09bnVsbD92b2lkIDA6KFc1PU9aLmJpbmQpPT1udWxsP3ZvaWQgMDpXNS5jYWxsKE9aLGRvY3VtZW50KSx4WixZbj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIG1bMTVdLmNhbGwodGhpcywyLEIseixLLEosQyxiKX0sRFksZnAsb00sTHA9KHhaPXNlbGYpPT1udWxsP3ZvaWQgMDoob009eFouZG9jdW1lbnQpPT1udWxsP3ZvaWQgMDooRFk9b00uZ2V0RWxlbWVudEJ5SWQpPT1udWxsP3ZvaWQgMDooZnA9RFkuYmluZCk9PW51bGw/dm9pZCAwOmZwLmNhbGwoRFksZG9jdW1lbnQpLFZhPWZ1bmN0aW9uKCl7cmV0dXJuIERbMjddLmNhbGwodGhpcyw0MSl9LFJNLHJRLFZGLEdYLGFpPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gT1szNF0uY2FsbCh0aGlzLAoxLEIseixLKX0sRk89KHJRPXNlbGYpPT1udWxsP3ZvaWQgMDooUk09clEuT2JqZWN0KT09bnVsbD92b2lkIDA6KEdYPVJNLmtleXMpPT1udWxsP3ZvaWQgMDooVkY9R1guYmluZCk9PW51bGw/dm9pZCAwOlZGLmNhbGwoR1gsT2JqZWN0KSxINSxlbz1mdW5jdGlvbihCLHosSyl7cmV0dXJuIERbMTZdLmNhbGwodGhpcywyNSxCLHosSyl9LFA1LCRaLHF3LG9DPShQNT1zZWxmKT09bnVsbD92b2lkIDA6KEg1PVA1LkpTT04pPT1udWxsP3ZvaWQgMDoocXc9SDUucGFyc2UpPT1udWxsP3ZvaWQgMDooJFo9cXcuYmluZCk9PW51bGw/dm9pZCAwOiRaLmNhbGwocXcsSlNPTiksaVAseUYsWVosa1g9ZnVuY3Rpb24oQil7cmV0dXJuIEdbNDBdLmNhbGwodGhpcywyNSxCKX0sYzUsbkc9KGlQPXNlbGYpPT1udWxsP3ZvaWQgMDooYzU9aVAuTWF0aCk9PW51bGw/dm9pZCAwOihZWj1jNS5jbHozMik9PW51bGw/dm9pZCAwOih5Rj1ZWi5iaW5kKT09bnVsbD92b2lkIDA6eUYuY2FsbChZWixNYXRoKSwKU28sbUQsbFA9IkludDggVWludDggVWludDhDbGFtcGVkIEludDE2IFVpbnQxNiBJbnQzMiBVaW50MzIgRmxvYXQzMiBGbG9hdDY0Ii5zcGxpdCgiICIpLEVaLFhWLFBVPShTbz1zZWxmKT09bnVsbD92b2lkIDA6KEVaPVNvLk9iamVjdCk9PW51bGw/dm9pZCAwOihtRD1FWi5pc0Zyb3plbik9PW51bGw/dm9pZCAwOihYVj1tRC5iaW5kKT09bnVsbD92b2lkIDA6WFYuY2FsbChtRCxPYmplY3QpLENmPWZ1bmN0aW9uKCl7cmV0dXJuIERbMzZdLmNhbGwodGhpcywyMCl9LHVQLGFNPWZ1bmN0aW9uKEIpe3JldHVybiBPWzIxXS5jYWxsKHRoaXMsMTAsQil9LGhKLGRRLGtaPWZ1bmN0aW9uKEIpe3JldHVybiBSWzQ5XS5jYWxsKHRoaXMsMixCKX0sdEoseWE9KGhKPXNlbGYpPT1udWxsP3ZvaWQgMDooZFE9aEouTWF0aCk9PW51bGw/dm9pZCAwOih1UD1kUS5yb3VuZCk9PW51bGw/dm9pZCAwOih0Sj11UC5iaW5kKT09bnVsbD92b2lkIDA6dEouY2FsbCh1UCxNYXRoKSxVWixNdyx3USxJTSxlTj0KKHdRPXNlbGYpPT1udWxsP3ZvaWQgMDooSU09d1EuSlNPTik9PW51bGw/dm9pZCAwOihNdz1JTS5zdHJpbmdpZnkpPT1udWxsP3ZvaWQgMDooVVo9TXcuYmluZCk9PW51bGw/dm9pZCAwOlVaLmNhbGwoTXcsSlNPTiksc04sejcsS1csSkQsdTQ9e213Ont2YWx1ZTowLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExfX0sbFE9KHNOPXNlbGYpPT1udWxsP3ZvaWQgMDooSkQ9c04uT2JqZWN0KT09bnVsbD92b2lkIDA6KEtXPUpELmdldFByb3RvdHlwZU9mKT09bnVsbD92b2lkIDA6KHo3PUtXLmJpbmQpPT1udWxsP3ZvaWQgMDp6Ny5jYWxsKEtXLE9iamVjdCksQ1cseG49ZnVuY3Rpb24oKXtyZXR1cm4gWVs0NF0uY2FsbCh0aGlzLDE2KX0sYkgsQUQ9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzZdLmNhbGwodGhpcywzNCxCKX0sdncsVDcsZDA9KHZ3PXNlbGYpPT1udWxsP3ZvaWQgMDooQ1c9dncuTWF0aCk9PW51bGw/dm9pZCAwOihUNz1DVy5jZWlsKT09bnVsbD92b2lkIDA6CihiSD1UNy5iaW5kKT09bnVsbD92b2lkIDA6YkguY2FsbChUNyxNYXRoKSxqUyxwVyxRNyxuVyxRSD0oalM9c2VsZik9PW51bGw/dm9pZCAwOihwVz1qUy5PYmplY3QpPT1udWxsP3ZvaWQgMDooblc9cFcuZ2V0T3duUHJvcGVydHlOYW1lcyk9PW51bGw/dm9pZCAwOihRNz1uVy5iaW5kKT09bnVsbD92b2lkIDA6UTcuY2FsbChuVyxPYmplY3QpLEdIPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gZ1sxM10uY2FsbCh0aGlzLDIsQix6LEssSixDLGIpfSxaVCxXdyxnRCxOeCxsOT0oZ0Q9c2VsZik9PW51bGw/dm9pZCAwOihaVD1nRC5NYXRoKT09bnVsbD92b2lkIDA6KE54PVpULm1pbik9PW51bGw/dm9pZCAwOihXdz1OeC5iaW5kKT09bnVsbD92b2lkIDA6V3cuY2FsbChOeCxNYXRoKSxPTix4Qz17dFU6ITAsTTk6ITEsaDU6bnVsbH0sRFQsZlcsb2QsZTc9KG9kPXNlbGYpPT1udWxsP3ZvaWQgMDooT049b2QuTWF0aCk9PW51bGw/dm9pZCAwOihEVD1PTi5hYnMpPT1udWxsP3ZvaWQgMDoKKGZXPURULmJpbmQpPT1udWxsP3ZvaWQgMDpmVy5jYWxsKERULE1hdGgpLExXLFJkLHJELFY3LFU4PShSZD1zZWxmKT09bnVsbD92b2lkIDA6KExXPVJkLk9iamVjdCk9PW51bGw/dm9pZCAwOihWNz1MVy5pcyk9PW51bGw/dm9pZCAwOihyRD1WNy5iaW5kKT09bnVsbD92b2lkIDA6ckQuY2FsbChWNyxPYmplY3QpLEc3LEh3LGdxPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gUlswXS5jYWxsKHRoaXMsMTYsSyx6LEIpfSxlUyxQdyxoWT0oUHc9c2VsZik9PW51bGw/dm9pZCAwOihlUz1Qdy5NYXRoKT09bnVsbD92b2lkIDA6KEh3PWVTLm1heCk9PW51bGw/dm9pZCAwOihHNz1Idy5iaW5kKT09bnVsbD92b2lkIDA6RzcuY2FsbChIdyxNYXRoKSxnaT1mdW5jdGlvbihCKXtyZXR1cm4gT1syOV0uY2FsbCh0aGlzLDMwLEIpfSwkQyxxeCxpSCx5NyxZQz0oaUg9c2VsZik9PW51bGw/dm9pZCAwOigkQz1pSC5NYXRoKT09bnVsbD92b2lkIDA6KHk3PSRDLmxvZyk9PW51bGw/dm9pZCAwOihxeD15Ny5iaW5kKT09Cm51bGw/dm9pZCAwOnF4LmNhbGwoeTcsTWF0aCksT1g9ZnVuY3Rpb24oQil7cmV0dXJuIGtbMTBdLmNhbGwodGhpcywxOCxCKX0sY3csU1MsbW0sbEgsZlE9KFNTPXNlbGYpPT1udWxsP3ZvaWQgMDoobW09U1MuTWF0aCk9PW51bGw/dm9pZCAwOihjdz1tbS5wb3cpPT1udWxsP3ZvaWQgMDoobEg9Y3cuYmluZCk9PW51bGw/dm9pZCAwOmxILmNhbGwoY3csTWF0aCksRU4sWDksdUgsYWQsaWM9KEVOPXNlbGYpPT1udWxsP3ZvaWQgMDooWDk9RU4uT2JqZWN0KT09bnVsbD92b2lkIDA6KGFkPVg5LmlzRXh0ZW5zaWJsZSk9PW51bGw/dm9pZCAwOih1SD1hZC5iaW5kKT09bnVsbD92b2lkIDA6dUguY2FsbChhZCxPYmplY3QpLGhELGRELGtDLHRELHZFPWZ1bmN0aW9uKEIpe3JldHVybiBEWzE2XS5jYWxsKHRoaXMsMTcsQil9LEhsPWZ1bmN0aW9uKEIpe3JldHVybiBHWzIyXS5jYWxsKHRoaXMsMixCKX0sVU49KGREPXNlbGYpPT1udWxsP3ZvaWQgMDoodEQ9ZEQuT2JqZWN0KT09bnVsbD92b2lkIDA6CihoRD10RC5zZWFsKT09bnVsbD92b2lkIDA6KGtDPWhELmJpbmQpPT1udWxsP3ZvaWQgMDprQy5jYWxsKGhELE9iamVjdCksTXgsbzY9ZnVuY3Rpb24oQil7cmV0dXJuIG1bMTNdLmNhbGwodGhpcywyOSxCKX0sd0Qsbmc9ZnVuY3Rpb24oQix6KXt2YXIgSz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEo9Sy5zbGljZSgpO3JldHVybihKLnB1c2guYXBwbHkoSixhcmd1bWVudHMpLEIpLmFwcGx5KHRoaXMsSil9fSxJZCxGOSxrUj0oSWQ9c2VsZik9PW51bGw/dm9pZCAwOih3RD1JZC5PYmplY3QpPT1udWxsP3ZvaWQgMDooRjk9d0QuY3JlYXRlKT09bnVsbD92b2lkIDA6KE14PUY5LmJpbmQpPT1udWxsP3ZvaWQgMDpNeC5jYWxsKEY5LE9iamVjdCksQnAsc3EsenM9W10sS3oseUg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEY1KGtbOF0oNCxHMi5hcHBseSgwLGFyZ3VtZW50cykpLCExKX0sSmQsYk49KEpkPXNlbGYpPT1udWxsPwp2b2lkIDA6KHNxPUpkLk1hdGgpPT1udWxsP3ZvaWQgMDooS3o9c3EuZmxvb3IpPT1udWxsP3ZvaWQgMDooQnA9S3ouYmluZCk9PW51bGw/dm9pZCAwOkJwLmNhbGwoS3osTWF0aCksQ3osYkksQWQsdnAscTE9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVs0Nl0uY2FsbCh0aGlzLDQsQix6KX0sVEo9KEN6PXNlbGYpPT1udWxsP3ZvaWQgMDooQWQ9Q3ouT2JqZWN0KT09bnVsbD92b2lkIDA6KGJJPUFkLmZyZWV6ZSk9PW51bGw/dm9pZCAwOih2cD1iSS5iaW5kKT09bnVsbD92b2lkIDA6dnAuY2FsbChiSSxPYmplY3QpLFRzLGpsLHB6LFF6LHpHPShUcz1zZWxmKT09bnVsbD92b2lkIDA6KFF6PVRzLk9iamVjdCk9PW51bGw/dm9pZCAwOihwej1Rei5kZWZpbmVQcm9wZXJ0aWVzKT09bnVsbD92b2lkIDA6KGpsPXB6LmJpbmQpPT1udWxsP3ZvaWQgMDpqbC5jYWxsKHB6LE9iamVjdCksTks9WzIsMyw0XSxjbD1mdW5jdGlvbihCKXtyZXR1cm4gWVsyNl0uY2FsbCh0aGlzLDY1LEIpfSxueixaaywKV3AsZ1YseFY9KG56PXNlbGYpPT1udWxsP3ZvaWQgMDooV3A9bnouT2JqZWN0KT09bnVsbD92b2lkIDA6KGdWPVdwLmRlZmluZVByb3BlcnR5KT09bnVsbD92b2lkIDA6KFprPWdWLmJpbmQpPT1udWxsP3ZvaWQgMDpaay5jYWxsKGdWLE9iamVjdCksTlg9ZnVuY3Rpb24oKXtyZXR1cm4gbVsxNV0uY2FsbCh0aGlzLDMpfSxPcSx4QixpUT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFlbNDldLmNhbGwodGhpcywxMixLLEIseil9LEJJPXt9LERrLGZ6LGVlPShEaz1zZWxmKT09bnVsbD92b2lkIDA6KE9xPURrLk9iamVjdCk9PW51bGw/dm9pZCAwOih4Qj1PcS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpPT1udWxsP3ZvaWQgMDooZno9eEIuYmluZCk9PW51bGw/dm9pZCAwOmZ6LmNhbGwoeEIsT2JqZWN0KSxvMCxxSz1mdW5jdGlvbihCKXtyZXR1cm4geVs0Ml0uY2FsbCh0aGlzLDEsQil9LEx6LFIwLHJWLFZ6PShvMD1zZWxmKT09bnVsbD92b2lkIDA6KEx6PW8wLlJlZmxlY3QpPT1udWxsPwp2b2lkIDA6KFIwPUx6LnNldFByb3RvdHlwZU9mKT09bnVsbD92b2lkIDA6KHJWPVIwLmJpbmQpPT1udWxsP3ZvaWQgMDpyVi5jYWxsKFIwLFJlZmxlY3QpLEdzLEhwLGVsLGlxPWZ1bmN0aW9uKEIpe3JldHVybiBHWzM4XS5jYWxsKHRoaXMsMSxCKX0sdVE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gUlsyNF0uY2FsbCh0aGlzLDE2LEIseil9LFBwLCRCPShIcD1zZWxmKT09bnVsbD92b2lkIDA6KGVsPUhwLlJlZmxlY3QpPT1udWxsP3ZvaWQgMDooR3M9ZWwuY29uc3RydWN0KT09bnVsbD92b2lkIDA6KFBwPUdzLmJpbmQpPT1udWxsP3ZvaWQgMDpQcC5jYWxsKEdzLFJlZmxlY3QpLHFYLGlJLHl6LFlCLEFlPShPWzhdKDEwLDcsbUkpLChpST1zZWxmKT09bnVsbD92b2lkIDA6KHFYPWlJLk1hdGgpPT1udWxsP3ZvaWQgMDooWUI9cVgucmFuZG9tKT09bnVsbD92b2lkIDA6KHl6PVlCLmJpbmQpPT1udWxsP3ZvaWQgMDp5ei5jYWxsKFlCLE1hdGgpKSx4eT1mdW5jdGlvbihCLHosSyxKLEMsYiwKQSx2LHAsUSxuKXtyZXR1cm4gWVszOF0uY2FsbCh0aGlzLDEwLEosSyx6LEIsQyxiLEEsdixwLFEsbil9LGc5PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gWVsxOV0uY2FsbCh0aGlzLDIsQixLLHosSixDLGIsQSx2LHApfSxjcD1nWzM2XSgzOCw2NjIyOSwyMiw3KSxTbD1nWzM2XSgzNiw2NjIwMiwxMTUsMTIpLG1lPWdbMzZdKDYsNjI0NjUsNTM2MSw5KSxsST1nWzM2XSgzNyw2MTQ3NiwyMzUsNSksRXE9Z1szNl0oNiw2NjE5OCw5Niw0KSxrUD1mdW5jdGlvbihCKXtyZXR1cm4gRFswXS5jYWxsKHRoaXMsMSxCKX0sWGk9Z1szNl0oNCw2NjE4MCw3NCwxOCksdUk9Z1szNl0oNSw0MjE5NiwzNiw0KSxhMD1nWzM2XSgzNyw2NjE3MSw5Niw5KSxoZD1nWzM2XSgzNiw2NjE2Miw4MCw5KSxkVj1nWzM2XSg1LDI0NjkwLDc5LDcpLGtCPWdbMzZdKDUsNjYxNTQsMjUsOCksVEg9Z1szNl0oNCw2MTI4MSwyMDU2LDUpLHRkPWdbMzZdKDQsNjYxNTAsMTIxLDQpLFVxPWdbMzZdKDQsCjY2MDg3LDExNiw2MyksTVg9Z1szNl0oNiw2NjA2OSwyNCwxOCksd1Y9Z1szNl0oMzYsNjI3MTUsNjQsMjQpLEkwPWdbMzZdKDM3LDI3ODEsOTIsMTA4KSxGaT1nWzM2XSgzNyw1NDgwNyw3OSwzKSxCWD17MzoxMywxMjoxNDQsNjMyMzI6MzgsNjMyMzM6NDAsNjMyMzQ6MzcsNjMyMzU6MzksNjMyMzY6MTEyLDYzMjM3OjExMyw2MzIzODoxMTQsNjMyMzk6MTE1LDYzMjQwOjExNiw2MzI0MToxMTcsNjMyNDI6MTE4LDYzMjQzOjExOSw2MzI0NDoxMjAsNjMyNDU6MTIxLDYzMjQ2OjEyMiw2MzI0NzoxMjMsNjMyNDg6NDQsNjMyNzI6NDYsNjMyNzM6MzYsNjMyNzU6MzUsNjMyNzY6MzMsNjMyNzc6MzQsNjMyODk6MTQ0LDYzMzAyOjQ1fSxzcj1nWzM2XSg1LDYxRTMsNTMzOSwyKSx1Zj1mdW5jdGlvbihCKXtyZXR1cm4gWVs5XS5jYWxsKHRoaXMsNDAsQil9LHp2PWdbMzZdKDQsMTc0MTcsOTk0OCw3KSxLQj1nWzM2XSg2LDY2MDY0LDMxLDIpLEoxPWdbMzZdKDM2LDY2MDUwLDUxLDE0KSxDQj0KZ1szNl0oNSw2NjAyMCw1OSwzMCksYnA9Z1szNl0oMzYsNjYwMTEsNDksOSksQTE9Z1szNl0oMzYsNjZFMywxMTUsMTEpLHZYPWdbMzZdKDM3LDY1OTg5LDkwLDExKSxUdj1nWzM2XSgzNiw2NTk4Niw3NiwzKSxGNT1mdW5jdGlvbihCLHope3JldHVybiBSWzQ2XS5jYWxsKHRoaXMsNTYsQix6KX0saHg9ZnVuY3Rpb24oQil7cmV0dXJuIG1bMl0uY2FsbCh0aGlzLDE2LEIpfSxRZz1nWzM2XSgzNyw2NTk2OCwxMTYsMTApLGpnPWdbMzZdKDUsNDI3ODMsMSwxMyksY2s9Z1szNl0oMzYsNjU5NjUsNjEsMykscEI9Z1szNl0oMzgsMTk2LDk1NTMsMiksUU09Z1szNl0oMzcsMjU3OSwzNCwxNCksbkI9Z1szNl0oNSw5MDY5LDU1MDYsNCksWm89Z1szNl0oNCw2NTg5Myw5OCw3MiksV1g9Z1szNl0oNiw2NTg3OSwxMDAsMTQpLGdmPWdbMzZdKDM4LDY1ODA2LDQ4LDczKSxOZD1mdW5jdGlvbihCLHope3JldHVybiBIWzQxXS5jYWxsKHRoaXMsMjMseixCKX0sT3I9Z1szNl0oNCw2NTgwMCwxOSw2KSwKeHE9WzBdLFFFPWdbMzZdKDYsMjQ5NTUsNjYsNSksRG89Z1szNl0oNSw2NDU2MSwxMTA2LDMpLGZCPWdbMzZdKDM2LDgyNDMsODEsMjIpLGR4PWZ1bmN0aW9uKEIpe3JldHVybiBtWzE5XS5jYWxsKHRoaXMsMzQsQil9LEJiPWdbMzZdKDM4LDY1Nzc4LDg4LDQpLG8xPWdbMzZdKDM2LDY1NzAyLDYxLDc2KSxMQj1nWzM2XSgzNyw0Mjc0OSwxMjIsMiksUjE9Z1szNl0oNSw2NTY0Myw1OCwxMCkscmY9Z1szNl0oMzcsMzE0MzQsNDQxMCw0KSxWTT1nWzM2XSg1LDYwNzU2LDEyMywxNSksUDg9Z1szNl0oMzcsNjU2MjcsODcsMTYpLGNUPVsyLDVdLGRKPWZ1bmN0aW9uKEIpe3JldHVybiBrWzddLmNhbGwodGhpcywxOCxCKX0sR3Y9Z1szNl0oMzgsNjU2MTksMTI3LDgpLEhYPWdbMzZdKDYsNjU2MDEsMjEsMTgpLHdfPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMTldLmNhbGwodGhpcywzKX0sZWc9Z1szNl0oMzYsNjU1OTAsMjcsMTEpLFBYPWdbMzZdKDM4LDMzMDExLDIzNDUsNSksJHE9Z1szNl0oMzgsCjY1NTczLDgyLDE3KSxCRD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZVs3XS5jYWxsKHRoaXMsNSxLLEIseixKKX0scWQ9Z1szNl0oNiw2NTU2MCwyOSwxMyksRXQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4gT1syNF0uY2FsbCh0aGlzLDI1LEIseixLLEosQyxiLEEsdil9LFdJPXt9LGlwPWdbMzZdKDYsNjU0NDcsNTIsNzEpLFkwPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBIWzFdLmNhbGwodGhpcywyLEIseixLLEopfSx5TT1nWzM2XSgzNiw2MTk5LDQyOTIsMyksWXE9Z1szNl0oMzgsNjI4MTUsMjQsMTIpLGNYPWdbMzZdKDM4LDY1NDQzLDY5LDQpLFNnPWdbMzZdKDM4LDI3OTQ3LDI5LDIyKSxtUD1nWzM2XSg1LDY1MzkwLDEyNyw1MCksbHA9Z1szNl0oNCw2NTM4MSw5NSw5KSxBej1nWzM2XSgzOCw2NTM2NiwxMTIsMTUpLEVyPWdbMzZdKDQsNjUzNDUsNzcsMjEpLFhQPWdbMzZdKDYsNjUzMDksMjksMzYpLGk5PWdbMzZdKDYsNDk3ODcsNDQxOCw4KSxCSD1mdW5jdGlvbihCLAp6LEssSixDLGIsQSl7cmV0dXJuIG1bMThdLmNhbGwodGhpcywxNix6LEIsSyxKLEMsYixBKX0sdXA9Z1szNl0oMzcsNjUyODgsMTAxLDIxKSxoUT1nWzM2XSgzNyw2NTI2MywzLDI1KSxhMT1nWzM2XSg0LDU2MjYsODcyLDEyKSxoMT1mdW5jdGlvbihCKXtyZXR1cm4gR1syNl0uY2FsbCh0aGlzLDcsQil9LGRmPWdbMzZdKDUsMzEwMzksMjI5LDYpLGtxPWdbMzZdKDM3LDM3NDUwLDg2LDY0KSx0MT1nWzM2XSgzOCw2NTI1NiwxMDQsNyksVXI9Z1szNl0oNSw2NTI0NiwxLDEwKSxNZD1nWzM2XSgzNyw2NTE5NywxMTcsNDkpLGdtPWZ1bmN0aW9uKEIpe3JldHVybiBEWzE1XS5jYWxsKHRoaXMsNixCKX0sd2Y9Z1szNl0oMzYsMTIwLDI5MDMsMSksSTE9Z1szNl0oNiw2NTE5MiwxMDUsNSksaU49Z1szNl0oNiw2NTE1MCwyMiw0MiksWVI9e30sRlA9Z1szNl0oNCw0NzEwLDEwMiwxNSksV2o9ZnVuY3Rpb24oQil7cmV0dXJuIFlbNDNdLmNhbGwodGhpcywzLEIpfSxCMz1nWzM2XSg2LDY1MTQ3LAoxNiwzKSxzUT1nWzM2XSgzNyw2NTA3Niw3Myw1OCksQ0M9Z1szNl0oNSw2NTA3MSw1NCw1KSx6Qj1nWzM2XSg2LDY1MDA2LDc5LDY1KSxLUD1nWzM2XSgzNyw2NDk5NiwwLDEwKSxzZz1mdW5jdGlvbihCLHope3ZhciBLPVsxMyw5LDU5XSxKPUcyLmFwcGx5KDIsYXJndW1lbnRzKS5tYXAoZnVuY3Rpb24oQyl7cmV0dXJuIE9bMjVdKDEsQyl9KTtyZXR1cm4gUltLWzBdXShLWzFdLEhbMjVdKEtbMl0sT1tLWzFdXSgyNSwzNCksQiksW09bMjVdKDUseildLmNvbmNhdChlWzMzXSgyOCxKKSkpfSxhTj1mdW5jdGlvbihCKXtyZXR1cm4gT1szXS5jYWxsKHRoaXMsNCxCKX0sZVc9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzFdLmNhbGwodGhpcywxNixCKX0sa2c9ZnVuY3Rpb24oKXtyZXR1cm4gUlsxMV0uY2FsbCh0aGlzLDEpfSxQdD1mdW5jdGlvbihCLHope3JldHVybiBnWzIwXS5jYWxsKHRoaXMsMjIsQix6KX0sSlY9Z1szNl0oMzYsNjQ5OTMsMzAsMyksQ1A9Z1szNl0oNSw2NDkxNSw1NCwKNzgpLGJrPWdbMzZdKDYsMzAzNywyMjY2LDIpLEFWPWdbMzZdKDUsNjQ5MDgsNjEsNyksdjM9Z1szNl0oNSw2NDg5NCw3NCwxNCksVEI9Z1szNl0oMzgsMjM0MDgsMzcsNDMpLGpqPWdbMzZdKDYsNjQ4MjUsMTMsNjkpLFZ3PWdbMzZdKDM3LDYzMjQxLDUxNzIsNSkscFA9Z1szNl0oMzYsMTM4MTEsMTAzMiwzKSxRbj1nWzM2XSgzNiw2NDc2Niw4NSw1OSksUU89ZnVuY3Rpb24oKXtyZXR1cm4gRFsxOV0uY2FsbCh0aGlzLDgpfSxsVD1nWzM2XSgzOCw2NDc1OSwxMCw3KSxuUD1nWzM2XSg2LDY0NzUwLDUsOSksWkQ9Z1szNl0oNSwyNzcyLDIyLDQpLFczPWdbMzZdKDM3LDY0NzExLDI5LDIwKSxOQT1nWzM2XSg0LDY0NzAwLDExMSwzKSxPUT1nWzM2XSgzOCw2NDY5Nyw1NCwzKSx4dj1nWzM2XSgzNyw2NDY5MSw2OCw2KSxERD1nWzM2XSg2LDY0Njc5LDEyNSwxMiksZlA9Z1szNl0oMzYsNjQ2NjksMCwxMCksb0Q9Z1szNl0oMzYsNjQ2NjEsMyw4KSxqcz1mdW5jdGlvbigpe3JldHVybiBPWzVdLmNhbGwodGhpcywKMSl9LExQPWdbMzZdKDM4LDQ5Mzk2LDU1MTksNCksUkQ9Z1szNl0oNCw2NDU2NCw2OSw3MikscmM9Z1szNl0oMzYsMTc0ODMsMTAxNSw4KSxWbj1nWzM2XSgzNiw2NDU1MCw1MSwxNCksR0I9Z1szNl0oNSw0NDcxNiw3MjQsNSksSDM9Z1szNl0oNSw2NDQ5OSw3LDUxKSxlaj1nWzM2XSg1LDY0NDg0LDMzLDE1KSxQMz1nWzM2XSg1LDY0NDczLDYyLDExKSwkdj1nWzM2XSg1LDY0NDYzLDY3LDEwKSxxQT1nWzM2XSg1LDMxMzg0LDk2LDUpLE5PPVswLDAsMzIsNTEsNjQsNzUsODMsOTAsOTYsMTAyLDEwNywxMTEsMTE1LDExOSwxMjIsMTI2LDEyOCwxMzEsMTM0LDEzNiwxMzksMTQxLDE0MywxNDUsMTQ3LDE0OSwxNTEsMTUzLDE1NCwxNTYsMTU4LDE1OSwxNjAsMTYyLDE2MywxNjUsMTY2XSxpaz1nWzM2XSg1LDY0NDYwLDYzLDMpLHluPWdbMzZdKDQsNjQzOTEsNjIsNjkpLFl2PWdbMzZdKDM2LDY0Mzg2LDExNiw1KSxjMz1nWzM2XSg1LDU1MTIxLDg2LDIpLFNqPWdbMzZdKDYsNjQzODMsCjEzLDMpLHF1PWdbMzZdKDYsNDY3NzAsNTQ1LDQpLG1BPWdbMzZdKDM4LDY0Mzc1LDYxLDgpLGxrPWdbMzZdKDUsMzM0MzksMTIsOCksRVE9Z1szNl0oNiw2NDMwOSwxMDcsNjYpLHlDPVs0LDZdLEhjPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBHWzI4XS5jYWxsKHRoaXMsMTQsQix6LEssSil9LFhVPWdbMzZdKDQsNjQzMDAsOTEsMyksZ0o9Z1szNl0oMzYsODI1OSwxMzI4LDMpLFNOPWdbMzZdKDQsMzM3NjUsOTg2LDcpLE1IPWZ1bmN0aW9uKEIpe3JldHVybiBnWzI2XS5jYWxsKHRoaXMsOCxCKX0sdWs9Z1szNl0oMzcsMTkxMDAsNjk1NCwxMCksYUQ9Z1szNl0oNSw2NDI5NCwyOCw2KSxoVj1nWzM2XSg1LDQ3MDg0LDUyOSw0KSxkYz1nWzM2XSgzNywyMDA1OCwyOTgsOCksa3Y9Z1szNl0oMzgsNjQyODgsMTAsNiksRHQ9Z1szNl0oNiw2NDI3Miw4MCwxNiksdFY9Z1szNl0oNiw2NDI2MSw1LDExKSxVUT1nWzM2XSgzNiw0NDU1MCwzNiwxNCksTUE9Z1szNl0oMzYsMzIwNzMsODksNSksCndjPWdbMzZdKDYsNjQyMjIsNDksNiksSUQ9Z1szNl0oMzYsMjMyMDAsODksNjUpLEZVPWdbMzZdKDM4LDM2MzA2LDcyNywzKSxFcD1nWzM2XSgzNyw2NDIxOSwzMSwzKSxCTz1nWzM2XSgzNiw2NDE3MSw2MiwxKSxzaj1nWzM2XSg0LDY0MTAwLDE3LDcxKSx6Uj1nWzM2XSg2LDY0MDI1LDE1LDU5KSxLQT1nWzM2XSgzOCwzNDUwNCwxLDMpLHJCPWZ1bmN0aW9uKCl7cmV0dXJuIEdbNl0uY2FsbCh0aGlzLDcpfSxKbT1nWzM2XSgzNiw2Mzk1NCwxMTgsNzEpLENBPWdbMzZdKDM4LDYzOTQ4LDc3LDYpLGJ5PWdbMzZdKDYsNjM5MDQsMSw1KSxmNT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gWVszNF0uY2FsbCh0aGlzLDE2LHosSyxCLEopfSxBbT1nWzM2XSg2LDYzODMyLDQsNzIpLHZPPWdbMzZdKDM4LDM1OTAwLDAsMzkpLEZKPWdbMzZdKDM3LDYzODI3LDgsNSksTmk9ZnVuY3Rpb24oQil7cmV0dXJuIGtbNF0uY2FsbCh0aGlzLDksQil9LHNGPWZ1bmN0aW9uKCl7cmV0dXJuIG1bNDNdLmNhbGwodGhpcywKMil9LHhLPWdbMzZdKDQsMjg0OTAsMjg4Nyw2KSxUUj1mdW5jdGlvbihCLHope3JldHVybiBtWzQ2XS5jYWxsKHRoaXMsMzksQix6KX0sano9Z1szNl0oMzcsMTEyNCwxMzc0LDE3KSxwQT1nWzM2XSgzOCw2MzgxOCw1Niw5KSxRWj1nWzM2XSgzOCwxNjUsNjcwMSwxKSxuQT1nWzM2XSgzNiw2MTE5Miw1Nyw1KSxaWD1nWzM2XSg0LDYzODA2LDQ4LDkpLFdPPWdbMzZdKDQsNjM3NzMsNTcsMzMpLGcxPWdbMzZdKDQsNjM3MDYsNDUsNjcpLEhTPWZ1bmN0aW9uKEIpe3JldHVybiBnMFs2XS5jYWxsKHRoaXMsNCxCKX0sTkk9Z1szNl0oNiw0OTcyMyw0ODEsNCksang9Z1szNl0oMzgsNDI4OTYsMTE1LDEwKSxPaj1nWzM2XSgzNywxNzIwLDUyMCw4KSx4JD1nWzM2XSg0LDYzNjUxLDExMiw0KSxMZz1mdW5jdGlvbihCLHosSyl7cmV0dXJuIHlbNDBdLmNhbGwodGhpcywyNCxCLHosSyl9LERYPWdbMzZdKDM3LDYzNjQ3LDQzLDQpLHJ5PWdbMzZdKDM2LDYzNjQ1LDExOSwyKSxmQT1nWzM2XSg0LAo2MzYzMywxMTYsMTIpLG9QPWdbMzZdKDM2LDQwNDk2LDE2MzgsMTEpLExBPWdbMzZdKDQsNjM1ODYsMTE0LDE2KSxSUD1nWzM2XSg0LDYzNTU5LDM1LDQpLCQwPWdbMzZdKDM3LDYzNTQwLDEyMiwxOSksblk9Z1szNl0oNSw2MzUzOCw4MSwyKSxyMT1nWzM2XSg0LDYzNTI4LDQsMTApLENZPWdbMzZdKDUsNjM1MjAsMjAsOCksVlo9Z1szNl0oNSw2MzUwOCwxMywxMiksR1I9Z1szNl0oNSw4NDExLDI1OTgsNSksSE89Z1szNl0oNCw2MzQzMCw2MSw3MiksZXo9Z1szNl0oNCw2MzM4MCw4Miw1MCksUE89Z1szNl0oNCw2MzM3OCw1MCwyKSwkJD1nWzM2XSg1LDYzMzc1LDY5LDMpLHFJPWdbMzZdKDM4LDYzMjcxLDczLDY4KSxpeT1nWzM2XSgzNywxOTgyNSwzLDczKSx5Wj1nWzM2XSg1LDM2NTY3LDQ3NzcsNCksUDY9ezA6IkFuIHVua25vd24gZXJyb3IgaGFzIG9jY3VycmVkLiBUcnkgcmVsb2FkaW5nIHRoZSBwYWdlLiIsMToiRXJyb3I6IEludmFsaWQgQVBJIHBhcmFtZXRlcihzKS4gVHJ5IHJlbG9hZGluZyB0aGUgcGFnZS4iLAoyOiJTZXNzaW9uIGV4cGlyZWQuIFJlbG9hZCB0aGUgcGFnZS4iLDEwOidJbnZhbGlkIGFjdGlvbiBuYW1lLCBtYXkgb25seSBpbmNsdWRlICJBLVphLXovXyIuIERvIG5vdCBpbmNsdWRlIHVzZXItc3BlY2lmaWMgaW5mb3JtYXRpb24uJ30seVA9Z1szNl0oMzcsNTYwMzEsMjM3OSw2KSxZJD1nWzM2XSgzNiw2MzI1OCwxMjUsMTMpLHhSPWZ1bmN0aW9uKEIpe3JldHVybiBnWzE3XS5jYWxsKHRoaXMsMSxCKX0sY089Z1szNl0oMzcsNjMxOTEsMTE4LDY3KSx6Qz1mdW5jdGlvbigpe3JldHVybiBEWzMyXS5jYWxsKHRoaXMsNSl9LE1jPWZ1bmN0aW9uKEIpe3JldHVybiB5WzM0XS5jYWxsKHRoaXMsMTYsQil9LFN6PWdbMzZdKDQsNjMxODUsOSw2KSxtOD1nWzM2XSgzNyw2MzExOCw1Niw2NyksblM9Z1szNl0oMzcsNjMxMDcsMTIzLDExKSxseT1nWzM2XSg1LDYzMDQzLDMsNjQpLEVqPWdbMzZdKDUsNjMwNDAsNTksMyksWHU9Z1szNl0oMzYsMjg0OSw3MTI2LDMpLHV5PWdbMzZdKDM2LDYzMDE0LAo5OCwzKSxOYz1nWzM2XSgzOCw1ODYzOSw1MzI3LDYpLEZfPXt9LGFQPWdbMzZdKDUsNjMwMTAsNjYsNCksaG09Z1szNl0oNCwxNDA4NCw0NDgwLDgpLGQxPWdbMzZdKDYsNjI5NDMsNjYsNjcpLGskPWdbMzZdKDQsNjI5MjYsNDMsMTcpLHRtPWdbMzZdKDM2LDYyOTIyLDQ5LDQpLHlBPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMjRdLmNhbGwodGhpcywxKX0sVWo9Z1szNl0oNSw2Mjg0Nyw1Nyw3NSksdkw9ZnVuY3Rpb24oQil7cmV0dXJuIFJbM10uY2FsbCh0aGlzLDQwLEIpfSxNST1nWzM2XSgzNiw2Mjg0MSwyOCw2KSx3MT1nWzM2XSg2LDYyODE3LDI1MSwxMCksSVA9Z1szNl0oMzYsMjEyNjEsMzEyOCwyKSxGdT1nWzM2XSgzNiw2MjczOSwxMTMsNzYpLFNFPWdbMzZdKDM4LDYyNzIzLDcwMiw1KSxCQj1nWzM2XSgzNiw2MjYzMiw5LDMxKSxZTT1nWzM2XSgzNyw2MjYxOCwxMjQsMTQpLEd1PWZ1bmN0aW9uKCl7cmV0dXJuIGtbMjVdLmNhbGwodGhpcywxNil9LHNfPWdbMzZdKDM2LDMxNDk0LAoyMSwxMSkselk9Z1szNl0oMzcsNjI2MTAsNTcsOCksSlU9Z1szNl0oMzYsNDMwMzEsNTg1Niw4KSx6TD1nWzM2XSgzNywzODgwLDM5MDIsMSksS0o9Z1szNl0oMzcsNjI2MDIsMTA0LDgpLEpqPWdbMzZdKDM4LDYyNjAwLDEyNCwyKSxDSj1nWzM2XSg1LDYyNTk0LDE0LDYpLGJDPWdbMzZdKDM3LDI1NjYsOTA3LDYpLEFqPWdbMzZdKDQsNjI1OTEsMzgsMyksdkI9Z1szNl0oMzYsMTM4LDQzNzAsMSksVFk9Z1szNl0oMzcsNDA4NDQsMTIzLDEwKSxqbj1nWzM2XSgzOCw2MjQ5NSw4Nyw3OSkscEo9Z1szNl0oNiw2MjQ5MSwzMCw0KSxRcj1nWzM2XSgzNyw2MjQxMywxMDYsNzgpLG5KPWdbMzZdKDQsNjI0MDQsMTEsOSksWlo9Z1szNl0oNSw1MjA5NSwyMTk4LDYpLFdCPWdbMzZdKDYsNTI3OSwyODkxLDMpLGdOPWdbMzZdKDM4LDYyMzk2LDkyLDgpLE5WPWdbMzZdKDM4LDYyMzU4LDE5LDcpLE9fPWdbMzZdKDM2LDYyMzU0LDEyMSw0KSx4SD1nWzM2XSgzOCw2MjM0OCwyMCw2KSxEWj1nWzM2XSgzOCwKNjIyODYsMjUsNjIpLGZKPWdbMzZdKDQsNDA0ODAsMiwyOCksJEY9Z1szNl0oMzgsNjIyNTQsMiwxOSksSTM9ZnVuY3Rpb24oQix6LEspe3JldHVybiBIWzddLmNhbGwodGhpcywyMCxCLHosSyl9LG90PWdbMzZdKDYsNTY5NzYsNjUsMjUpLExKPWdbMzZdKDM4LDYyMTgzLDQ1LDcxKSxLVT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gbVsxNF0uY2FsbCh0aGlzLDI2LEIseixLLEopfSxQTD1mdW5jdGlvbihCKXtyZXR1cm4gZ1s1XS5jYWxsKHRoaXMsMSxCKX0sUnQ9Z1szNl0oMzgsNjIxNzksNjMsNCksck49Z1szNl0oNSw2MjA4NiwxNiw5MyksVnI9Z1szNl0oMzgsNjIwMTQsNjQsNzIpLEdZPWdbMzZdKDM3LDYxOTM4LDEyNiw3NiksSEI9Z1szNl0oNCw2MTkwNiw3OCwxMSksbmY9Z1szNl0oNSwzMzQwOCw0NDQ3LDUpLGVuPWdbMzZdKDYsNjE4OTksNjcsNyksUEI9Z1szNl0oMzgsNjE4MjgsMTE3LDcxKSxoVD1nWzM2XSg1LDM1NjE2LDk5LDYxKSwkSD1nWzM2XSg2LDYxODI0LDExOSwKNCkscVY9Z1szNl0oMzcsNjE4MDcsMzksMTcpLGlDPWdbMzZdKDM4LDYxODAxLDYwLDYpLHlyPWdbMzZdKDUsNjE3NzksODcsMjIpLFlIPWdbMzZdKDQsNjE3NjMsODksMTYpLGNCPWdbMzZdKDUsNDMwNTAsMTEzLDIyKSxTbj1nWzM2XSgzOCwxOTMyNiwyNjU5LDYpLG1pPWdbMzZdKDUsNjE2OTYsMTI3LDY3KSxsQz1nWzM2XSgzNyw2MTY2NCwxMDMsMjQpLEVfPWdbMzZdKDM4LDE3MDUsMjczLDkpLFh2PWdbMzZdKDQsNjE2NTQsMjQsMTApLHVDPWdbMzZdKDM3LDQwNDAwLDUxLDYpLGF0PWdbMzZdKDM3LDYxNjQ4LDgyLDYpLGhqPWdbMzZdKDM3LDYxNTk1LDQsNDcpLGROPWdbMzZdKDM2LDYxNTg2LDI2LDkpLGtIPWZ1bmN0aW9uKEIpe3JldHVybiBZWzM3XS5jYWxsKHRoaXMsMTksQil9LHRqPWdbMzZdKDUsNjE1MDksMTAwLDc3KSxaQj1mdW5jdGlvbigpe3JldHVybiBtWzE1XS5jYWxsKHRoaXMsNDApfSxVXz1nWzM2XSgzNiw2MTUwMiw3Myw3KSxNVj1nWzM2XSg2LDM5Mjk5LDExNCwKMTgpLHdOPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBnWzZdLmNhbGwodGhpcywxNyxCLHosSyxKKX0sSXQ9Z1szNl0oMzYsMTIzLDMxMjQsMSksY3o9e30sRnY9Z1szNl0oNSw2MTQ2NCwxMDcsMTApLEJ1PWdbMzZdKDYsMjE4MzEsMzY0OSw4KSxzOT1nWzM2XSg1LDYxNDUyLDg3LDEyKSxMUj1mdW5jdGlvbigpe3pWLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sS0k9Z1szNl0oNiw2MTQzMyw4NiwxOSksSmk9Z1szNl0oNCw2MTQyNSwxNyw4KSxDST1nWzM2XSgzOCw2MTQyMiw4OCwzKSxiQT1nWzM2XSgzNyw2MTM2MCwxMTEsNjIpLEFpPWdbMzZdKDQsNjEyOTIsMTgsNjgpLHZ1PWdbMzZdKDM4LDYxMjg2LDIsNiksVFY9Z1szNl0oMzcsNjEyNTcsNSwyKSxqRz1nWzM2XSg2LDYxMjQ3LDEwNywxMCkscEk9Z1szNl0oMzcsMTIwNiw1OSwxOSksUXk9Z1szNl0oMzYsMzIyNzksMTY5NSw0KSxmVT1nWzM2XSg2LDQ2NTYyLDI4NTUsNSksYTk9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMjddLmNhbGwodGhpcywKMTAsQil9LG5JPWdbMzZdKDM2LDEyMjU1LDk1LDc0KSxPZz1mdW5jdGlvbihCKXtyZXR1cm4geVsxN10uY2FsbCh0aGlzLDE3LEIpfSxaUj1nWzM2XSgzOCwzNjI5OCw5OSwzKSxybT1nWzM2XSg1LDYxMjE5LDExOCw3KSxXdT1mdW5jdGlvbigpe3JldHVybiBtWzE0XS5jYWxsKHRoaXMsMil9LGdHPWdbMzZdKDM3LDQ0ODkyLDU0OTYsMiksWDQ9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMzNdLmNhbGwodGhpcywyNSxCKX0sTlc9Z1szNl0oMzcsNjExOTcsMTEyLDIyKSxUTD1nWzM2XSgzOCw2MTE5NCwxOTEsMSksTzk9Z1szNl0oMzgsOTgwOSwxMjUsMzApLHhkPWdbMzZdKDM4LDI5NzY3LDcyNCw0KSxtRj1nWzM2XSg2LDYxMTc2LDM5LDE2KSxEUj1nWzM2XSgzNiw2MTExMSwxMjAsNjUpLGZJPWdbMzZdKDQsNjExMDMsMjYsOCksb1E9Z1szNl0oNCw1Njc0LDU0NTAsOCksTEk9Z1szNl0oMzcsMzk0NjMsMTA3LDMpLFJRPWdbMzZdKDUsNDAwMjksNjcwLDYpLHU2PWZ1bmN0aW9uKEIpe3JldHVybiBSWzIzXS5jYWxsKHRoaXMsCjE4LEIpfSxyRz1nWzM2XSgzOCw2MTA5OCwxMCw1KSxxRj1mdW5jdGlvbihCKXtyZXR1cm4gR1szN10uY2FsbCh0aGlzLDQ4LEIpfSxnMz1nWzM2XSg2LDE5NTYxLDEyMywxNyksVnk9Z1szNl0oMzgsNjEwOTYsMTIzLDIpLEdWPWdbMzZdKDQsNjEwODYsNCwxMCksSHU9Z1szNl0oNiw2MTA3NCw5OCwxMiksTU09Z1szNl0oMzgsNjEwNjksMTEwLDUpLGVHPWdbMzZdKDM3LDEwMDIxLDE2Miw1KSx0Uj1mdW5jdGlvbihCKXtyZXR1cm4geVszXS5jYWxsKHRoaXMsNTUsQil9LFB1PWdbMzZdKDM4LDIwNjQ4LDUwMDksNCksJGQ9Z1szNl0oMzYsNjEwNjIsNTUsNykscVc9Z1szNl0oMzYsNjEwMzQsNjcsMjgpLGlBPWdbMzZdKDM4LDYxMDIwLDgwLDE0KSx5eT1nWzM2XSg2LDYwOTQ4LDcwLDcyKSxZZD1nWzM2XSgzNiw2MDkzOCw0OSwxMCksY3U9Z1szNl0oNCwyMDQ1MCw1ODMyLDMpLFNHPWdbMzZdKDUsNjA5MjksNDUsOSksbUo9Z1szNl0oNiw2MDg1OCwxMjUsNzEpLCRMPWZ1bmN0aW9uKEIpe3JldHVybiBPWzQ3XS5jYWxsKHRoaXMsCjI2LEIpfSxsQT1nWzM2XSg1LDYwODU1LDE5LDMpLFdlPWZ1bmN0aW9uKEIpe3JldHVybiBPWzI2XS5jYWxsKHRoaXMsMyxCKX0sQVA9ZnVuY3Rpb24oQix6LEspe3ZhciBKPVszLCJTaSIsMzNdO3JldHVybiB0JFtKWzFdXS5hcHBseShudWxsLFtCLHosRTkuYmluZChYJCxLKSxLXS5jb25jYXQoZVtKWzJdXSgyNyxHMi5hcHBseShKWzBdLGFyZ3VtZW50cykpKSl9LGFqPVsxLDJdLHVBPWdbMzZdKDM2LDYwNzU2LDEyMywyMyksYVE9Z1szNl0oMzcsNjA3NTMsOTMsMyksaGk9Z1szNl0oNCw2MDc0OCw4Nyw1KSxkRz1nWzM2XSg2LDYwNzQ2LDc0LDIpLGtkPWdbMzZdKDM2LDYwNjg1LDEwMyw2MSksdGk9Z1szNl0oNSw2MDY2OSw4OSwxNiksVTk9Z1szNl0oNiw2MDY2MiwzLDcpLE1XPWdbMzZdKDQsNjA1ODgsOCw3NCksT0Y9W10sd0c9Z1szNl0oNiw2MDU4Miw4NSw2KSxJUT1nWzM2XSgzOCw0ODQ0LDQyNjMsNCksRiQ9Z1szNl0oNCw2MDU1NiwxMTcsMjYpLEJpPWdbMzZdKDYsMjY1MTYsCjM4MzksMiksczU9Z1szNl0oNSw2MDU1NSwzMCwxKSx6bT1nWzM2XSg1LDYwNTM4LDgzLDE3KSxLMz1nWzM2XSgzNyw2MDUyNyw4MywxMSksRE09ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDldLmNhbGwodGhpcyw4LEIpfSxKST1nWzM2XSg0LDg1NjgsNDI4MSwyKSxDMz1nWzM2XSgzOCw2MDUxNiwyMiw1KSxiOD1nWzM2XSg1LDU4OTkwLDksNTIpLEFJPWdbMzZdKDQsNDA1NzUsODEsNDcpLHZpPWdbMzZdKDM2LDYwNDQ4LDUyLDY4KSxUbT1nWzM2XSgzOCw2MDM4MCwzMSw2OCksVHQ9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDNdLmNhbGwodGhpcyw0LEIpfSxqYj1nWzM2XSgzNyw2MDMxNSwyNCw2NSkscDM9Z1szNl0oMzcsNjAyNDUsMTA3LDcwKSxnUz1nWzM2XSgzNyw1OTEzOSwxMDMzLDMpLFE0PWdbMzZdKDQsNjAwNDAsMCw3MSksbjM9Z1szNl0oNiw1OTk2Nyw2Miw3MyksWnI9Z1szNl0oNCw1MDY5NCw3OSwxNCksV2k9Z1szNl0oMzYsMzQzNjYsNTczNiw1KSxnWT1nWzM2XSgzNiw1OTk0MywKMTI3LDI0KSx6dD00NDc4LE50PWdbMzZdKDQsMTQ3NzMsNTk3MywzKSxtSD1nWzM2XSgzNyw0OTM3MCwyOTAzLDMpLEU0PWdbMzZdKDQsNTk4NzksMTE3LDI0KSxPNT1nWzM2XSg1LDkwLDI2MywxKSxyWj1mdW5jdGlvbihCKXtyZXR1cm4gZVs3XS5jYWxsKHRoaXMsMjEsQil9LHh0PWdbMzZdKDM4LDIzMCwxMjYwMSwxKSxEcj1nWzM2XSg1LDU5ODYzLDkzLDE2KSxmMz1nWzM2XSgzNywzMDEwLDExMSwzMiksWFM9Z1szNl0oNiw1OTc4MCwxMjYsNDUpLG83PWdbMzZdKDM2LDU5NzA5LDgxLDcxKSxEOD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4geVsyOF0uY2FsbCh0aGlzLDIsQix6LEssSil9LEwzPWdbMzZdKDYsMzIzNDQsNTMwNiw0KSxSNz1nWzM2XSgzOCw1OTY5MCw5OSw4KSxyWT1nWzM2XSg1LDU5NTc1LDM1LDU5KSxWND1nWzM2XSg2LDU5NTEwLDYzLDY1KSxHbT1nWzM2XSgzNiw0MzkxNCw4NDIsNyksSGk9Z1szNl0oNSwyNzcyMCw4OSwyKSxlYj1nWzM2XSgzNywyNjUyOCw1MDMxLAo0KSxHRD1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gR1syMF0uY2FsbCh0aGlzLDg4LEIseixLLEosQyxiLEEpfSxQaT1nWzM2XSg0LDU5NDcwLDEyMyw0MCksSlA9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4gSFs2XS5jYWxsKHRoaXMsNjQseixCLEssSixDLGIsQSx2KX0sJHQ9Z1szNl0oNiw1OTQwMSw5MCw2OSksREk9ZnVuY3Rpb24oKXtyZXR1cm4gWVs0NV0uY2FsbCh0aGlzLDEyKX0scXQ9Z1szNl0oMzcsNTkzOTIsMTksOSksaTg9Z1szNl0oMzgsNTkzMTksNDEsNjcpLFlMPWZ1bmN0aW9uKEIpe3JldHVybiBlWzI2XS5jYWxsKHRoaXMsMzQsQil9LHZEPWdbMzZdKDYsNTY2Nyw0NzcxLDYpLHk0PWdbMzZdKDQsNTkyNTYsOSw2MyksWmQ9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDFdLmNhbGwodGhpcywxLEIpfSxWRT1mdW5jdGlvbihCLHope3JldHVybiBnWzEyXS5jYWxsKHRoaXMsNzMsQix6KX0sWXQ9Z1szNl0oMzcsNTkxNzksNiw2NCksY2k9Z1szNl0oNCwKNTkxNjksOTMsMTApLFVPPWdbMzZdKDM4LDU5MTYwLDAsOSksYlE9Z1szNl0oMzcsNTkxMjgsMCwzMiksU2I9Z1szNl0oMzgsNDYwMjgsNTUsMTApLHBnPWdbMzZdKDYsMjg3MjEsNTIwMSw2KSxtVD1nWzM2XSgzNiwyNDAsMTM0NTcsMSksbDg9Z1szNl0oMzcsMjEyNTksMjkxNCw1KSxTWT1nWzM2XSg1LDQyMzQ2LDU3LDMpLEU1PWdbMzZdKDYsNTkwNDYsMjYsODIpLFhZPWdbMzZdKDM4LDUyMDc0LDkxLDQzKSx1OD1nWzM2XSg0LDExMCwyMDA4LDEpLGE3PWdbMzZdKDUsNTg5OTAsOSwzMCksaEk9ZnVuY3Rpb24oQix6LEspe3JldHVybiBCLmNhbGwuYXBwbHkoQi5iaW5kLGFyZ3VtZW50cyl9LGRZPWdbMzZdKDM4LDU4OTE3LDU2LDczKSxrdD1nWzM2XSg1LDU4ODQ3LDc1LDcwKSxZTz1nWzM2XSgzNyw0Njk2Niw1NzAsNSksdEk9Z1szNl0oMzYsMjQ2MzcsOTAsMTYpLFU1PWdbMzZdKDM3LDU4Nzg1LDEwOSw2MiksTXQ9Z1szNl0oNCwxNzQ3Myw0NCwyNiksd1k9Z1szNl0oNSwzMDEwLAoxMTEsNCksSTc9Z1szNl0oMzcsNDg2NCw2MjkyLDIpLEZZPWdbMzZdKDM4LDMyMDczLDg5LDMpLEJZPWdbMzZdKDM4LDExMTAyLDM5MTMsNiksc1Y9Z1szNl0oNSw1ODc2NywxMTUsMTgpLHpJPWdbMzZdKDM4LDU4NzYyLDYzLDUpLEtIPWdbMzZdKDM3LDU4Njg4LDg5LDc0KSxKcz1nWzM2XSgzNiw0OTYwMSw3OCwyMSksQ0g9Z1szNl0oNCwyNjQ0OSw5NCw1KSxiaT1nWzM2XSg0LDU4NjY0LDcsMjQpLGlkPWdbMzZdKDQsMzk2MzYsMjIsMzgpLEFzPWdbMzZdKDUsMjg3ODIsMTE5OSwyKSx2WT1nWzM2XSg1LDU4NTg3LDcyLDczKSxUST1nWzM2XSgzNiw1MDA5OSw3NSw2NCksZGQ9Z1szNl0oNSw1ODU2Myw2MywyNCksZXA9Z1szNl0oMzgsMzExNTUsNzEyLDUpLGprPWdbMzZdKDYsNTg1MDEsMTI0LDExKSxwSD1nWzM2XSg1LDU4NDk0LDMyLDcpLFFzPWdbMzZdKDM2LDU4NDc2LDUyLDcpLG5IPWdbMzZdKDYsNTg0MDMsNDIsNzMpLFp6PWdbMzZdKDQsNTgzMzksODksNjQpLFdZPWdbMzZdKDUsCjU4MzIxLDE1LDE4KSxjST1mdW5jdGlvbihCKXtyZXR1cm4gR1sxNl0uY2FsbCh0aGlzLDQ4LEIpfSxnST1nWzM2XSgzOCwzNjc2Miw2MCwxNiksS249ZnVuY3Rpb24oQix6LEspe3JldHVybiBEWzFdLmNhbGwodGhpcyw0LHosSyxCKX0sTjg9Z1szNl0oNSw1ODI5OSw1OCwyMiksUGY9Z1szNl0oMzcsNTgyNzYsMzksMjMpLE9WPWdbMzZdKDQsNTgyNzIsMTE0LDQpLHhOPWdbMzZdKDM2LDU4MTc1LDExMiw2NCksRHo9Z1szNl0oNiw1ODE3MSwxNyw0KSxmSD1nWzM2XSgzNyw1ODA5MCw2NCw4MSksb0E9Z1szNl0oNSw1ODA3Miw0MSwxOCksTEg9Z1szNl0oNCw1ODA1NywxMDMsMTUpLFJBPWdbMzZdKDYsMjg1NzMsMTgsMTQpLHJJPWdbMzZdKDQsNTc5ODEsNTAsNzYpLHhGPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gSFs0MF0uY2FsbCh0aGlzLDEsQix6LEspfSxWcz1nWzM2XSgzNiw1Nzk3NywyOSw0KSxHST1nWzM2XSgzOCwyNTE0NSwzMjYyLDEpLEhZPWdbMzZdKDQsNTc5MDgsNzMsNjkpLApGZz1mdW5jdGlvbihCKXtyZXR1cm4gUls4XS5jYWxsKHRoaXMsODgsQil9LGVrPWdbMzZdKDM4LDEyMjQyLDE1LDQpLEluPWdbMzZdKDM2LDE5NjA1LDQ2LDU1KSxQWT1nWzM2XSg1LDU3ODMzLDE5LDY5KSwkTj1nWzM2XSg2LDI4NTg3LDEyNCwxNykscTg9Z1szNl0oMzYsNTc4MTQsMSwxOSkscFk9Z1szNl0oNiw1NzgxMSw4NCwzKSxpaT1nWzM2XSgzNyw1Nzc0MSwxMiw3MCkseXM9Z1szNl0oMzgsNTc3MzgsNTQsMyksWU49Z1szNl0oNiw5NzQsNDMyMSw2KSxXUD1nWzM2XSg0LDM4NDEsMTE3LDYpLGNZPWdbMzZdKDM4LDU3NjY1LDY2LDczKSxTaz1nWzM2XSg1LDMyNDQ1LDExOTUsNCksbVc9Z1szNl0oMzgsMjk5MzAsNDcsOCksTGI9Z1szNl0oNCw1NzY0MSwxMjMsMTYpLGxpPWdbMzZdKDM3LDU3NjM3LDEyNiw0KSxFVj1nWzM2XSgzOCw1NzYyMCwxMTksMTcpLFhzPWdbMzZdKDQsOTcwOSwxMjMsNCksdWk9Z1szNl0oNCw1NzU3OCw3OSwyMyksYUE9Z1szNl0oMzYsNTc1MzksNjEsCjQpLG93PWZ1bmN0aW9uKEIpe3JldHVybiBIWzI5XS5jYWxsKHRoaXMsMTgsQil9LGhzPWdbMzZdKDYsNTc1MjIsMTEyLDE3KSxkST1nWzM2XSgzNiw1NzUwMiw3MCwyMCksa049Z1szNl0oNiw1NzQzNCwyMyw2OCksUEU9Z1szNl0oMzgsNTc0MTAsMjEsMjQpLHRzPWdbMzZdKDM3LDU3Mzk2LDEwNSwxNCksVVY9Z1szNl0oMzYsNTczNzEsMjgsMjUpLE04PWdbMzZdKDM4LDU3MzY4LDk4LDMpLHdJPWdbMzZdKDM2LDU3MzY0LDc5LDQpLElBPWdbMzZdKDUsNTczNTksNzcsNSksVmo9ZnVuY3Rpb24oKXtyZXR1cm4gbVszNl0uY2FsbCh0aGlzLDEpfSxGcz1nWzM2XSg1LDU3MjgzLDc2LDc2KSxCbT1nWzM2XSg2LDU3MjcxLDE0LDEyKSxzYT1nWzM2XSgzNyw1NzE3MiwyMyw3NCksejY9Z1szNl0oMzYsNTcwOTgsMzksNzQpLEZyPWdbMzZdKDUsNTcwNjIsNjcsMzYpLEtUPWdbMzZdKDM4LDU3MDAxLDc5LDYxKSxKdj1nWzM2XSg0LDU2OTc2LDY1LDIyKSxMMT1mdW5jdGlvbihCKXtyZXR1cm4geVsyOV0uY2FsbCh0aGlzLAoxMyxCKX0sQ1Q9Z1szNl0oMzYsNTY5NDgsMTIxLDI1KSxicz1nWzM2XSgzNiw1Njg4MCw5Miw2OCksQXY9Z1szNl0oMzcsNTY3NzAsMTgsNjIpLHZtPWdbMzZdKDM2LDU2NzUzLDc1LDE3KSxUNj1nWzM2XSg1LDU2NjgxLDEwLDcyKSxqSz1nWzM2XSgzOCwyNzI0NywzMiw0KSxwVD1nWzM2XSg1LDU2NjcwLDg2LDExKSxRaz1nWzM2XSgzOCw1NjY1Nyw5MCwxMyksblQ9Z1szNl0oNiw1NjY0OSwxMDYsOCksWnk9Z1szNl0oMzcsMTczMTIsMzQ4LDYpLFdtPWZ1bmN0aW9uKEIpe3JldHVybiBXbVtvOSgpXShCKSxCfSxnVD1nWzM2XSgzOCw1NjY0MiwxMjQsNyksTiQ9Z1szNl0oNSw1NjU3Myw4Miw2NSksT2E9Z1szNl0oMzgsNTY1MjYsMTAwLDQpLHhhPWdbMzZdKDUsMjYzMTcsMjksNSksQmU9ZnVuY3Rpb24oKXtyZXR1cm4gbVszXS5jYWxsKHRoaXMsNCl9LER5PWdbMzZdKDM3LDU2NTE3LDEwNCw5KSxmVD1nWzM2XSgzNyw1NjQ0MSwxNiw3Niksb2g9Z1szNl0oNCw1NjM4Nyw5Miw1NCksCkxUPWdbMzZdKDQsNTYzMTQsMzgsNzMpLFJoPWdbMzZdKDM4LDU2MjU2LDEyMSw1OCksclQ9Z1szNl0oNCwyNDAzLDY0LDIxKSxWaz1nWzM2XSgzNiw0OTgxOSw3MywxNCksRzY9Z1szNl0oMzYsNTYxMjksMTE0LDMpLEhtPWdbMzZdKDUsNTYwNTksNDksNzApLGVLPWdbMzZdKDQsNTYwNTIsNjUsNyksUG09Z1szNl0oMzcsNDI0MDYsNjUsNSksJGE9Z1szNl0oNiw1NTk2MCwxMTYsNDQpLHEkPWdbMzZdKDQsNTU5NDksMTksMTEpLGlzPWdbMzZdKDM2LDU1OTI5LDY3LDIwKSx5az1nWzM2XSg2LDI2NTIwLDQyNTcsMyksbGw9Z1szNl0oMzgsNTU5MTMsNywxNiksWWE9Z1szNl0oNSw1NDQ2OSwzNiw0KSxjbT1nWzM2XSgzOCw1NTgzMywxNCw2NiksU0s9Z1szNl0oNSw1NTc2Myw3OSw3MCksbWg9Z1szNl0oNiw1NTc2MCwxMywzKSxUQz1mdW5jdGlvbigpe3JldHVybiBrWzFdLmNhbGwodGhpcywyMil9LGxzPWdbMzZdKDQsNzQyNSw0Miw3OSksRWE9Z1szNl0oNCw1NTc1MSwxMDcsOSksdzY9CmZ1bmN0aW9uKEIpe3JldHVybiBSWzM5XS5jYWxsKHRoaXMsMSxCKX0sb0g9Z1szNl0oMzYsNTU3MzUsNzMsMTYpLFgwPWdbMzZdKDYsNTU3MzMsNDMsMiksQTY9Z1szNl0oMzgsNTU2OTIsMTExLDQxKSx1cz1nWzM2XSg2LDU1Njg4LDM0LDQpLGFoPWdbMzZdKDM4LDU1NTg2LDYsNzkpLGh2PWdbMzZdKDM4LDU1NTcxLDcwLDE1KSxkVD1nWzM2XSg1LDU1NDk5LDEwNyw3Miksa2E9Z1szNl0oNiw1NTQ5MSwxMjAsOCksdHY9Z1szNl0oNSw1NTQ4Miw0Myw5KSxVYT1nWzM2XSgzNyw1NTQ2MiwxMDYsMjApLHBHPWdbMzZdKDM4LDU1NDM5LDg2LDIzKSxNJD1nWzM2XSgzNywyNzQ5OSwxMjMsNjYpLHdUPWdbMzZdKDM4LDU1Mzc3LDg4LDYyKSxJaD1nWzM2XSgzNywyNjQ4MCwzNzMsMiksdlU9Z1szNl0oMzcsNTUzNjUsNzAsMTIpLEYwPWdbMzZdKDM2LDU1Mjk0LDEzLDcxKSxCVj1nWzM2XSgzNiw2MjY2LDgyLDcpLHNMPWdbMzZdKDQsNTUyOTAsMTAzLDQpLHoxPWdbMzZdKDYsMTg2MDIsMTEwLAo2KSxLJD1nWzM2XSgzNiw1NTIxNyw1Nyw3Myksbzk9Z1szNl0oNiwyNjQ3NiwyOCwxKSxKVz1nWzM2XSgzNiw1NTIwMCw0LDE3KSxDJD1nWzM2XSg2LDI5NjE0LDk5MSw3KSxiZT1nWzM2XSgzNiw1NTE4OCw4MSwzKSxFTz1nWzM2XSg2LDU1MTI3LDEyMiwxOCksQVc9Z1szNl0oNCwzNjIxOCw5Nyw3NyksdlY9Z1szNl0oNSw1NTEyMywxMDMsNCksdjY9Z1szNl0oNiw1NTEyMCwyNiwzKSxUJD1mdW5jdGlvbihCKXtyZXR1cm4gSFsxXS5jYWxsKHRoaXMsMTYsQil9LFQxPWdbMzZdKDUsNTUwOTAsNTUsMzApLGpBPWdbMzZdKDM3LDU1MDg1LDkyLDUpLHAkPWdbMzZdKDUsMjMzMzcsNzEsOSksUTI9Z1szNl0oNCwzMDQwNSwxMjgyLDEwKSxuJD1nWzM2XSg2LDU1MDE2LDg2LDY5KSxaaj1nWzM2XSgzNywzMjI1OSw5MSwzMyksV1Y9Z1szNl0oMzcsNTUwMDksOTksNyksZ0g9Z1szNl0oNiwyNjUxMiwzNDE0LDYpLE5EPWdbMzZdKDM2LDU0OTkzLDU5LDE2KSxPTD1nWzM2XSg0LDU0OTIzLDkwLAo3MCkseGw9Z1szNl0oNSw1NDkyMSwxMjcsMiksRGo9Z1szNl0oMzcsNTQ5MTIsNDYsOSksT3c9Z1szNl0oNiw1NDkxMCw4MywyKSxMcj1mdW5jdGlvbigpe3JldHVybiBIWzVdLmNhbGwodGhpcyw4Myl9LGYkPWdbMzZdKDM2LDU0ODM4LDEwOSw3Miksb0o9Z1szNl0oMzYsNTQ4MjUsMTQsMTMpLEU4PWdbMzZdKDM2LDU0ODEzLDE1LDEyKSxMJD1nWzM2XSg0LDU0ODA3LDc5LDIpLENVPXtTQ1JJUFQ6MSxTVFlMRToxLEhFQUQ6MSxJRlJBTUU6MSxPQkpFQ1Q6MX0sUko9Z1szNl0oNSw0NTUwLDEzMzQsNSksckg9Z1szNl0oMzYsNTQ3NDksMTAzLDcpLGlyPWZ1bmN0aW9uKEIpe3JldHVybiBlWzFdLmNhbGwodGhpcywxLEIpfSxWMj0vWyNcL1w/QF0vZyxHMT1nWzM2XSg1LDU0NzQ1LDU5LDQpLGYxPWdbMzZdKDM4LDQ3NTcsOTYsMzkpLHl2PWdbMzZdKDM2LDE0MCw0NTQ3LDEpLGtKPS9eLT8oWzEtOV1bMC05XSp8MCkoXC5bMC05XSspPyQvLEhWPWdbMzZdKDUsNTQ3MjcsNTMsMTgpLGVBPQpnWzM2XSg0LDU0NjYxLDExNyw2NiksUFY9Z1szNl0oMzYsNTQ1NzksOTYsNjcpLG5hPWZ1bmN0aW9uKEIpe3JldHVybiBnWzQ3XS5jYWxsKHRoaXMsMjAsQil9LCRsPWdbMzZdKDM4LDU0NTYyLDEwMiwxNykscUQ9Z1szNl0oNCw1NDUxMCw5Niw2KSxpZT1nWzM2XSg0LDU0NTA4LDEyNiwyKSx5Mj1nWzM2XSgzOCw1NDUwNCwxMiw0KSxZbD1nWzM2XSgzNiwxMzMsMzk4MiwxKSxjVj1nWzM2XSgzNiwyMzM3MCwyNDU3LDUpLFNBPWdbMzZdKDM4LDU0NDcxLDE2NywyKSxtdT1nWzM2XSgzNyw1NDQ1OSwxNiwxMCksbGU9Z1szNl0oMzYsNTQ0MDcsNjcsNTIpLEVMPWdbMzZdKDYsNTQ0MDAsNDQsNyksWFQ9Z1szNl0oMzYsNTQzMzksOTAsNjEpLHVlPWdbMzZdKDQsNDI2MywxMjkxLDQpLHlTPS9bLV8uXS9nLGFKPWdbMzZdKDM4LDU0MzMxLDY3LDgpLGJNPWdbMzZdKDQsNTQyOTAsMTIyLDQxKSxoVz1nWzM2XSgzNyw1NDI2NSw5Niw2KSxkSD1nWzM2XSgzNyw1NDI0MCw3NSwyNSksVkQ9ZnVuY3Rpb24oQil7cmV0dXJuIFJbNDFdLmNhbGwodGhpcywKNCxCKX0sa2w9ZnVuY3Rpb24oQix6LEspe3ZhciBKPVsyOSwyNSwxNV0sQz1bNCwxLDddLGI9RzIuYXBwbHkoMyxhcmd1bWVudHMpLEE9Z1sxMl0oOSxnWzI2XSg1OCxMUi5KKCksQ1sxXSkpLm5leHQoKS52YWx1ZSx2PWdbN10oMzgpO3JldHVybiBiPVtIWzQ0XSg0MixCKSxrW0pbMF1dKDI0LENbMV0seixBLEspLFlbMF0oMjcsdixPW0pbMV1dKDEsQiksT1tKWzFdXSg1LEEpKSx2SShBLEhbSlsyXV0oMjQsQ1swXSksQSksdkkoQSxIW0pbMl1dKDQwLENbMl0pLEEpLFlbMF0oMjgsdixPW0pbMV1dKDMsQSksITEpLEkuYXBwbHkobnVsbCxbQix6LEtdLmNvbmNhdChlWzMzXSgzNSxiKSkpLHYsSFs0NF0oNTksQSldLExSLkooKS52KEEpLGJ9LHRXPWdbMzZdKDYsNTQyMjEsMTA5LDE5KSxIRj1nWzM2XSg0LDU0MjE4LDQ2LDMpLHliPWZ1bmN0aW9uKEIpe3JldHVybiBrWzQ2XS5jYWxsKHRoaXMsMSxCKX0sVUw9Z1szNl0oMzgsNTQxMTksNTcsNDIpLE1EPWdbMzZdKDQsNTQwNTEsNjAsCjY4KSx3SD1nWzM2XSgzOCw1Mzk4MywxMTEsMTIpLElKPWdbMzZdKDM3LDUzOTY4LDk0LDE1KSxGVD1nWzM2XSg0LDcwMDIsMTEwLDc3KSxCND1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gZVswXS5jYWxsKHRoaXMsNSxCLHosSyxKLEMsYixBLHYscCxRKX0sc0o9Z1szNl0oNiw1Mzk0MywxMDgsMjUpLHowPWdbMzZdKDQsNDY5NTMsMjEsOCksUFQ9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMzldLmNhbGwodGhpcywxNixCKX0sS2k9Z1szNl0oMzgsNTM5NDAsMTE0LDMpLEpBPWdbMzZdKDM4LDUzOTM3LDU3LDMpLENpPWdbMzZdKDM4LDMxOTc2LDkwLDI4KSxidj1nWzM2XSgzNiwxNTIzMSw2NSwyNCksQUE9Z1szNl0oNSw1Mzg3MCw5LDY3KSx2ND1nWzM2XSg1LDUzODYwLDksMTApLFQwPWdbMzZdKDUsMTc0MDksOTE4OCwyKSxqMj1nWzM2XSgzNiw1Mzg1MSw1LDkpLHBpPWdbMzZdKDUsNTM4NDMsNTksOCksUTE9Z1szNl0oNiw1Mzc3MCw0MSw3MyksUjg9ZnVuY3Rpb24oKXtyZXR1cm4gZVs4XS5jYWxsKHRoaXMsCjEpfSxWQj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIEhbMzRdLmNhbGwodGhpcywxNixCLHosSyl9LG1kPWdbMzZdKDUsMjY2MDgsMTMxMjQsMSksbmk9Z1szNl0oNiw1MzcxNCw5Niw1NiksZ289Z1szNl0oMzcsNTM2ODUsNTIsMjkpLFpQPWdbMzZdKDM3LDUzNjgxLDE2LDQpLFc0PWdbMzZdKDM2LDUzNjc2LDc4LDUpLGdiPWdbMzZdKDUsNTM2NDYsNDYsNSksRnQ9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEhbMjRdLmNhbGwodGhpcywyLEIseixLLEopfSxOcz1nWzM2XSg2LDUzNTIwLDUsNzQpLEtrPWdbMzZdKDYsNTM1MDgsMTIyLDEyKSxPSj1nWzM2XSgzOCw1MzQ5OSw3Myw5KSx4UT1nWzM2XSgzNiw1MzQ1OSwxMDYsMSksRlI9Z1szNl0oNiw1MzQ1NSw2OCw0KSxEUD1nWzM2XSg2LDUzNDI1LDI5LDMwKSxNaD1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBnWzIyXS5jYWxsKHRoaXMsMjYsQyxKLEssQix6KX0sZmk9Z1szNl0oMzgsNTM0MjMsMTIxLDIpLG95PWdbMzZdKDYsNTMzNTQsCjEyNCw2OSksTGk9Z1szNl0oNCw1MzM1MCw5OSw0KSxpdz1mdW5jdGlvbigpe3JldHVybiBZWzIzXS5jYWxsKHRoaXMsNjQpfSxMcz1nWzM2XSg1LDUzMzQ1LDIsNSksUnk9Z1szNl0oNSw1MzI4Miw1OCw2MykscmI9Z1szNl0oNiw1MzIxOSw1NSw2MyksVjE9Z1szNl0oNCw1MzIxNSw4OCw0KSxEZD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gRFs3XS5jYWxsKHRoaXMsMyxCLHosSyxKKX0sRzA9Z1szNl0oNCw1MzE0NSwxMjYsNzApLHJvPWdbMzZdKDQsMjY1MDcsMjg5OSwxMSksSDQ9Z1szNl0oMzcsNTMxMjMsMCwyMiksZTI9Z1szNl0oNiw1MzEyMSwxMDMsMiksUDQ9Z1szNl0oMzcsNTMwNDYsMTIsNzUpLCRRPWdbMzZdKDUsNDA3NDQsMjQsNCksbDY9Z1szNl0oMzcsNTMwNDEsMTI2LDUpLHFzPWdbMzZdKDM4LDUyOTI4LDEyMyw2NiksVWg9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVsyXS5jYWxsKHRoaXMsMTEsQix6KX0saXY9Z1szNl0oNSw1MjkyMywxMDQsNSkseTE9Z1szNl0oMzYsCjUyOTA1LDUsMTgpLEowPWdbMzZdKDM2LDE3ODM1LDU5MDAsNCksclA9Z1szNl0oMzgsMzAwMzIsNjksMSksWVE9Z1szNl0oMzgsNTI4ODgsMjIsOSksWFo9Z1szNl0oMzcsMzQ5LDIzMTI5LDEpLGM0PWdbMzZdKDUsNTI3NDYsMTAxLDM0KSxTMj1nWzM2XSg0LDUyNjgwLDExMCw2NiksbXk9Z1szNl0oMzgsMzM4NjUsNTIsMTYpLGx2PWdbMzZdKDQsNTI2MDcsMjgsNzMpLEVKPWdbMzZdKDQsMjY1MDcsMjg5OSw1KSxYdz1nWzM2XSgzOCw1MjU5Nyw5NywxMCksdXY9Z1szNl0oMzcsMjYxMiwxMDAzLDUpLGF5PWdbMzZdKDQsNTI1OTAsNzUsNyksaEE9Z1szNl0oNiw1MjU0NiwxMjEsNCksU1Q9ZnVuY3Rpb24oQil7cmV0dXJuIFJbMTNdLmNhbGwodGhpcywyMCxCKX0sUnc9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMTddLmNhbGwodGhpcyw3LEIpfSxHMj1mdW5jdGlvbigpe2Zvcih2YXIgQj1OdW1iZXIodGhpcyksej1bXSxLPUI7Szxhcmd1bWVudHMubGVuZ3RoO0srKyl6W0stQl09YXJndW1lbnRzW0tdOwpyZXR1cm4gen0sZGI9Z1szNl0oMzcsNTI0OTgsMjMsNDgpLG1SPWdbMzZdKDM4LDUyNDkxLDExMiw3KSxrUT1nWzM2XSg0LDUyNDc2LDkwLDE1KSx0UT1nWzM2XSg2LDUyNDU1LDExMSwyMSksdkY9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMThdLmNhbGwodGhpcywyLEIpfSx0QT1nWzM2XSgzNiwyMDksMTA3NjgsMiksVUo9Z1szNl0oNCw1MjI3NSwzMCw3MiksTXM9Z1szNl0oMzcsNTIyNzEsOTUsNCksd2I9Z1szNl0oMzgsMTE4LDI3MDAsMiksSXk9Z1szNl0oNCwzMjg3NywxMjIsMTQpLHBTPWdbMzZdKDM2LDUyMjA4LDExOSwxNSksRnc9Z1szNl0oNSw4MjQzLDgxLDM4KSxCYT1nWzM2XSgzNywyOTYsMTg0NzAsMSksc2Y9Z1szNl0oMzYsNTIwNzQsOTEsMjApLHp6PWdbMzZdKDYsNTIwMDksMjYsNjUpLEtvPWdbMzZdKDYsNTE5MDUsNDcsMzMpLEoyPWdbMzZdKDM2LDUxOTAyLDEyNCwzKSxDbz1nWzM2XSgzOCw1MTgzNSw5OSw2NyksYkU9Z1szNl0oNCw1MTgzMiwyOSwzKSx0Uz1mdW5jdGlvbihCKXtyZXR1cm4gR1szN10uY2FsbCh0aGlzLAoxLEIpfSxVMj1nWzM2XSgzNyw1MTc3NSw0MTE3LDUpLEZiPWdbMzZdKDM2LDE5MDg3LDU2MzAsMyksTXU9Z1szNl0oNSw1MTcxMSwzOSwyMSksSGU9Z1szNl0oNCw0MTQxOCwyMiwzKSxBMj1nWzM2XSg1LDUxNjM5LDEyMCw3MiksdmE9Z1szNl0oMzgsNTE2MTksMjQsMjApLFR6PWdbMzZdKDM3LDUxNjEzLDkyLDYpLGpVPWdbMzZdKDUsMjc1NjUsNTksNjUpLHBvPWdbMzZdKDM3LDUxNTI3LDgzLDg2KSxROT1nWzM2XSg1LDUxNDU4LDQsNjkpLG5vPWdbMzZdKDYsNTEzOTIsNjAsNjYpLFpMPWdbMzZdKDYsNTEzNzAsNTgsMjIpLFZHPWZ1bmN0aW9uKEIpe3JldHVybiBtWzI4XS5jYWxsKHRoaXMsMSxCKX0sVFE9L15bXiY6XC8/I10qKD86W1wvPyNdfCQpfF5odHRwcz86fF5maWxlc3lzdGVtOmh0dHBzPzp8XmZ0cDp8XmRhdGE6aW1hZ2VcL1thLXowLTkrLV0rO2Jhc2U2NCxbYS16MC05K1wvXSs9KiR8XmJsb2I6L2ksV2E9Z1szNl0oMzgsNTEzMzYsMTIxLDEwKSxnOD1nWzM2XSgzNywKNTEzMTksOTYsMTcpLEhIPWdbMzZdKDYsNTEzMDQsOSwxNSksTm09Z1szNl0oNSwzODQxLDExNyw1MiksTmc9Z1szNl0oNiw1MTI1Myw1MCw5KSx6UT1mdW5jdGlvbihCKXtyZXR1cm4gR1sxOV0uY2FsbCh0aGlzLDM0LEIpfSxPZj1nWzM2XSgzNiw1MTIzMCwxMDAsMjMpLHgyPWdbMzZdKDUsNTExNTMsODksNzcpLERMPWdbMzZdKDM2LDUxMTI5LDE2LDI0KSx0YT1mdW5jdGlvbihCKXtyZXR1cm4gT1sxM10uY2FsbCh0aGlzLDM0LEIpfSxmbz1nWzM2XSg1LDUxMDczLDYyLDU2KSxvJD1nWzM2XSgzNiw1MTA2Nyw5Nyw2KSxMbz1nWzM2XSg1LDUxMDQ1LDkzLDIyKSxSJD1nWzM2XSgzNyw0MzI5OCwzMjgsOSkscjg9Z1szNl0oNSw1MDk2NCw0MSw3MyksVjk9ZnVuY3Rpb24oQix6LEspe2lmKCFCKXRocm93IEVycm9yKCk7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXt2YXIgSj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEM9ClsidW5zaGlmdCIsImFwcGx5Iiwic2xpY2UiXSxiPUFycmF5LnByb3RvdHlwZVtDWzJdXS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIEJbQXJyYXkucHJvdG90eXBlW0NbMF1dW0NbMV1dKGIsSiksQ1sxXV0oeixiKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEIuYXBwbHkoeixhcmd1bWVudHMpfX0sR3o9Z1szNl0oNCw1MDkwOCw3MCwyMiksSGE9Z1szNl0oMzYsNTA5MDEsNTAsNyksZVU9e3NCOiEwfSxQYT1nWzM2XSgzNyw1MDg3Nyw1NCwyNCksJDI9Z1szNl0oMzcsNTA4NTAsNjQsNikscWc9Z1szNl0oNiw1MDc3OSwyNCw3MSksaUU9Z1szNl0oNiw1MDY5NCw3OSwyMikscWs9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gbVsxOV0uY2FsbCh0aGlzLDEsQix6LEssSixDKX0seTk9Z1szNl0oNSw1NjE4LDU2LDk4KSxZMj1nWzM2XSg2LDUwNjc3LDQzLDIpLGNhPWdbMzZdKDUsNTA2MjUsNzQsNTIpLFNVPWdbMzZdKDM4LDUwNjIxLDMyLDQpLG0xPWdbMzZdKDQsMjY0OTQsMTYzNSwKMiksbEU9Z1szNl0oMzcsNTA2MTcsNjEsNCksRWY9Z1szNl0oMzYsNDYzMDAsODUsNzQpLFhxPWdbMzZdKDYsMjY1NDIsNjUyNywyKSx1RT1mdW5jdGlvbihCKXtyZXR1cm4gZ1s1XS5jYWxsKHRoaXMsMjcsQil9LGEkPWdbMzZdKDM3LDUwNTczLDExMiwyMyksaDI9Z1szNl0oMzcsNTA0OTUsMTEyLDc4KSxkOD1nWzM2XSg1LDE4Miw4MTk5LDEpLGsyPXt9LENSPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMzZdLmNhbGwodGhpcyw3KX0sdDI9Z1szNl0oMzgsNTA0NTIsMTAzLDkpLGVDPWdbMzZdKDM3LDI2NTAyLDI0NjAsMSksSEQ9Z1szNl0oNCwzMDA1NCwxNDYzLDMpLGtqPWdbMzZdKDM4LDUwNDM5LDU4LDEzKSxVZj1nWzM2XSg0LDE0MTkyLDQxMzEsNiksTWc9Z1szNl0oNSw1MDQyOSw1OSwxMCksdzg9Z1szNl0oMzcsNTA0MjQsMTI0LDUpLEkkPWdbMzZdKDYsNTA0MjAsMTA2LDQpLEZxPWdbMzZdKDYsNTAzNTAsNTYsMTYpLEIwPWdbMzZdKDM3LDUwMjgzLDIsNjcpLFBjPWdbMzZdKDM2LAo1MDI3MCwxMjEsMTMpLHNlPWZ1bmN0aW9uKEIpe3JldHVybiBtWzddLmNhbGwodGhpcyw1LEIpfSx6Yz1nWzM2XSgzOCw1MDI2MywxMTYsNyksS3U9Z1szNl0oNSw1MDE4OSw0NSw3NCksSmc9Z1szNl0oMzcsNTAxMzUsMzc3NSw2KSxWUT1nWzM2XSgzNyw1MDA5MCwxMTYsOSksQ3U9Z1szNl0oNCw1MDA3NCwxMSwxNiksYjc9Z1szNl0oNSw1MDAwNiwxMyw2OCksQWc9Z1szNl0oNCw0OTk5Nyw1Niw0KSx2MD1nWzM2XSgzNyw3MDMzLDMxMjksNCksVGM9Z1szNl0oMzgsNDk5MjMsODUsNzQpLGpSPWdbMzZdKDUsNDk5MTIsNCwxMSkscHU9WyJQT1NUIiwiUFVUIl0sUUw9Z1szNl0oNiw0OTkwNyw3NCw1KSxudT1nWzM2XSgzNyw0OTkwNCwxMjAsMyksWko9Z1szNl0oNiw0OTgzMywxNiw3MSksbFI9Z1szNl0oMzcsNDk4MjksOTU3LDQpLFcwPWdbMzZdKDYsNDk3NDQsMjgsNzUpLGdYPWdbMzZdKDM2LDQ5NzQwLDEwLDQpLE5KPWdbMzZdKDYsNDk3MjcsNTMsMTMpLE9lPWdbMzZdKDM4LDEyNjk0LAoyMywyMikseHc9Z1szNl0oMzYsNDk3MTksNjgsOCksdGY9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIGVbMl0uY2FsbCh0aGlzLDU2LHosQixLLEopfSxESj1nWzM2XSgzNiw0OTcwOSw0MCwxMCksZnU9Z1szNl0oMzcsNDk3MDQsMjEsNSksb089Z1szNl0oMzgsNDg0NDQsOTYwLDUpLEx1PWdbMzZdKDM3LDMwMjUsMTI4OCw2KSxCUD1nWzM2XSg0LDQ5NjQ2LDYwLDEwKSxSTz1nWzM2XSg2LDQ5NjM2LDI2LDEwKSxyWD1nWzM2XSgzOCw0OTYyMiw4MSwxNCksVkw9Z1szNl0oNSw0OTYwMiwxNTgsMjApLEdjPWdbMzZdKDQsNDk1MjksMjIsNzIpLEgwPWdbMzZdKDUsNDk1MTcsNDYsMTIpLGVSPWdbMzZdKDM4LDQ5NTE0LDEwOCwzKSxQMD1mdW5jdGlvbihCKXtyZXR1cm4gbVsyOV0uY2FsbCh0aGlzLDEzLEIpfSwkdz1nWzM2XSg2LDQxODU2LDEyMCwxOSksSTQ9Z1szNl0oMzYsNDk1MDksMTEwLDUpLHFKPWdbMzZdKDQsNDkzNDIsMzQsOTApLGk3PWdbMzZdKDUsNDkzMzgsMTAsNCkseUw9CmdbMzZdKDQsNDkzMjksMjcsOSksWXc9Z1szNl0oNCw0OTMxOCw0NCwxMSksYzA9Z1szNl0oNSw3MDksNDA1NSw1KSxTUj1nWzM2XSg0LDQ5MTk3LDkwLDcwKSxtcj1nWzM2XSg1LDQ5MTkxLDgyLDYpLGw3PWdbMzZdKDM4LDQ5MTIxLDU3LDcwKSxZNz1nWzM2XSgzOCwxNzMyNiwxNTY2LDEpLEVlPWdbMzZdKDM2LDQ5MDgwLDY3LDQxKSxYVz1nWzM2XSg0LDQ5MDc3LDU1LDMpLHhVPVsxLDddLHU3PWdbMzZdKDUsNDkwNTksNjIsMTgpLFhFPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuIFJbOF0uY2FsbCh0aGlzLDcsQix6LEssSixDLGIsQSx2KX0sYU89Z1szNl0oNCw0OTA1MCw0OSw5KSxoZz1nWzM2XSg2LDE0Myw0Nzk2LDEpLGRYPWdbMzZdKDUsNDkwNDQsNDEsNiksYnc9Z1szNl0oNCw0ODkxOCwxMTAsMTApLGt3PWdbMzZdKDM2LDQ4OTE0LDExMSw0KSx0Zz1nWzM2XSgzNiw0ODc4Niw4Niw3NCksVWU9Z1szNl0oNSw0ODcxNiw2Nyw3MCksSEw9Z1szNl0oMzYsNDg2OTAsCjU4LDI2KSxNSj1nWzM2XSgzNyw0ODY3MywxOCwxNyksd1g9Z1szNl0oNSw0Njg5NCwxMDgsNSksSU89Z1szNl0oMzYsNDg2NjUsNjQsOCksRlc9Z1szNl0oMzcsMjA3NDQsNzM5LDYpLEJXPWdbMzZdKDM4LDQ4NjU2LDMxLDkpLHNHPWdbMzZdKDQsNDg1ODksMjcsNjcpLHpiPWdbMzZdKDQsNDg1NjAsNiwyOSksSzg9Z1szNl0oMzcsOTM4OCw1MzA0LDYpLEpLPWdbMzZdKDUsNDg1NTcsMTE1LDMpLEM4PWdbMzZdKDM2LDkxLDM0MSwxKSxieD1nWzM2XSg0LDQ4NTQ3LDExMiwxMCksQUs9Z1szNl0oMzgsNDg1MzYsMjksMTEpLHZXPWdbMzZdKDM4LDQ4NTI3LDk5LDkpLFRiPWdbMzZdKDM2LDQ4NTE3LDYzLDEwKSx1WT1mdW5jdGlvbihCKXtyZXR1cm4gUlsyM10uY2FsbCh0aGlzLDI0LEIpfSxqTz1nWzM2XSg1LDQ4NDQ5LDMxLDY4KSxwOD1nWzM2XSg0LDQ4NDM2LDkyLDEzKSxRXz1nWzM2XSg1LDQ4NDI0LDEyLDEyKSxuOD1nWzM2XSg2LDQ4Mzg0LDEzLDQwKSxacD1nWzM2XSgzNyw0ODM3NywKNTQsNyksV1c9Z1szNl0oMzYsNDg5MSw4NzM1LDYpLGdsPWdbMzZdKDQsNDkyMSwxMTY0NiwyKSxOUz1nWzM2XSgzNiw0MDksMjgyLDgpLE9HPWdbMzZdKDQsMTE2MjMsNTQzOSwzKSx4Yz1nWzM2XSg0LDExMzQ5LDU4LDQpLERwPWdbMzZdKDM3LDQ4MzY4LDgxLDkpLGY4PWdbMzZdKDUsNDgzMTEsOTEsNSksb209Z1szNl0oMzcsNDgzMDQsMzgsNyksakI9Z1szNl0oMzgsNDgyNTgsNTEsNDYpLEw4PWdbMzZdKDUsNDgxOTEsNzAsNjcpLG1nPWdbMzZdKDM3LDg4LDExNCwxKSxSbT1nWzM2XSg1LDQ4MTgyLDE2LDkpLHJsPWdbMzZdKDM4LDQ4MDgwLDE0LDYpLEpTPWZ1bmN0aW9uKCl7cmV0dXJuIFlbMjhdLmNhbGwodGhpcyw5KX0sVl89Z1szNl0oMzcsNDgwNjMsODEsMTcpLFIzPWdbMzZdKDM3LDQ4MDUyLDE5LDExKSxHYj1nWzM2XSgzNiwyNzkzNiwxMDgsNSksSFc9Z1szNl0oNCw0ODA0Niw4Miw2KSxlTz1nWzM2XSgzOCw0Nzk4MCwxMDcsNjYpLFBXPWdbMzZdKDM2LDQ3OTU3LDg0LAoyMyksJGM9ZnVuY3Rpb24oQil7cmV0dXJuIERbNV0uY2FsbCh0aGlzLDEsQil9LHFTPWdbMzZdKDM2LDQ3ODc1LDEwMCw4MiksaXg9Z1szNl0oNSw0Nzg2MCwyLDE1KSx5Xz1nWzM2XSg1LDQ3NzkwLDE5LDcwKSx1MD1mdW5jdGlvbihCLHope3JldHVybiBSWzM1XS5jYWxsKHRoaXMsMTYsQix6KX0sWWM9Z1szNl0oMzcsNDc3NjIsMjQsMjgpLGNXPWdbMzZdKDM2LDkzMDMsNTYxLDEwKSxTTz1nWzM2XSgzNyw0Nzc1MywxNyw5KSxhZj1nWzM2XSgzOCw0NzY4NCwyNCwyNSksRzU9Z1szNl0oNiwzMDA2MCw5MCwyNyksbTc9Z1szNl0oMzYsMjI5OSw1Mjk2LDUpLGx4PWdbMzZdKDM2LDQ3NjEzLDYsNzEpLEVHPWdbMzZdKDM2LDQ3NTU1LDg1LDU4KSxsMD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIGdbMjVdLmNhbGwodGhpcyw1LEIseixLLEosQyxiKX0sWEs9Z1szNl0oNCw0NDkxMywxNSw2NCksdXg9Z1szNl0oNiw0NzUyNSwxMTksMyksYW09Z1szNl0oNiw1NTAxLDY5LDgzKSwKaEs9Z1szNl0oMzYsNDc0NjMsMTA2LDYyKSxkbD1nWzM2XSgzOCw0NzM4NCwxOSw3OSksa2M9Z1szNl0oMzcsNDczNzYsMTEyLDgpLHRLPWdbMzZdKDYsMTkwNDYsMTQ3NywzKSxVRz1nWzM2XSgzNyw0NzM2Niw1LDEwKSxNUz0vWyNcP10vZyx3bD1nWzM2XSg0LDQ3MzU5LDIxLDcpLEltPWdbMzZdKDYsNDczNTAsNTcxLDMpLFdUPWdbMzZdKDUsNDcyOTcsMjgsNDcpLEZLPWdbMzZdKDUsMzg3NTksMTIsNDQpLEIkPWdbMzZdKDM2LDQ3MTgyLDEwLDY0KSxJcD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gT1s1XS5jYWxsKHRoaXMsNDYsQix6LEssSil9LHM3PWdbMzZdKDM3LDI2NDAsNTQ1LDQpLFZjPWdbMzZdKDUsNDcxNTcsMTUsNiksekE9Z1szNl0oNSw0NzA4OCwzMyw2OSksS0w9Z1szNl0oMzcsNDcwNzksNzQsOSksSnA9Z1szNl0oMzgsNDY5NzEsOCw1OCksQ0w9Z1szNl0oMzcsNDY5NjEsMTE1LDEwKSx6TT1nWzM2XSg1LDQ2OTMwLDIwLDIzKSxiSj1nWzM2XSgzNiw0Njg5NCwxMDgsCjIpLHZoPWdbMzZdKDM3LDI2NjE3LDE0MDY1LDEpLEFwPWdbMzZdKDM2LDQ2ODczLDExMCwyMSksdiQ9Z1szNl0oMzYsNDY4MTQsMzIsMTEpLFRBPWdbMzZdKDYsMjAzOTMsMzQsNzUpLGo2PWdbMzZdKDM4LDQ2Nzg2LDUwLDI4KSxwTD1nWzM2XSgzOCw1NjIxLDM3Niw0KSxUbj1nWzM2XSgzNyw0Njc2NSwxMjUsMjEpLFFtPWdbMzZdKDQsNDY2NDYsMTEsNjUpLG5MPWdbMzZdKDM3LDQ2NjMxLDkwLDE1KSxacz1nWzM2XSg2LDMwMzU0LDMwLDMwKSxXJD1nWzM2XSgzNyw0NjYxMSw1MywyMCksWGI9Z1szNl0oNSwyNjUxMSwzMzEzLDIpLGdXPWdbMzZdKDYsNDY1OTYsMTE5LDQpLE4yPWdbMzZdKDM4LDQ2NTg5LDEwNyw3KSxaaD1bXSxFWT1nWzM2XSg2LDQ2NTMyLDIxLDU3KSxPNz1nWzM2XSgzNyw0NjUyNiwxMDAsNiksR3k9Z1szNl0oNCw0MDU3NSw4MSwzMykseHU9Z1szNl0oNCwyNTQ0MSw1Miw1KSxEcz1nWzM2XSg2LDQ2NTIyLDI1LDQpLGZMPWdbMzZdKDM3LDQ2NTE1LDkzLDcpLApvdT1nWzM2XSgzOCw0NjUwOSw3Myw2KSxMTD1nWzM2XSg1LDQ2NTAxLDI0LDgpLFJ1PWdbMzZdKDM3LDQ2NDU0LDg5LDE1KSxTZj1nWzM2XSgzNyw0NjQ0NiwxNSw4KSxyVz1nWzM2XSgzNiw0NjM3NywyNiw2OSksVm09Z1szNl0oMzgsNDYzNzQsOTksMyksR0E9Z1szNl0oMzgsNDYzNTgsNTk3Nyw1KSxIJD1nWzM2XSgzNyw0NjI5Niw2Niw0KSxheD1mdW5jdGlvbigpe3JldHVybiBZWzI1XS5jYWxsKHRoaXMsMjEpfSxzej1nWzM2XSg0LDQ2MjkyLDI5LDQpLHZrPWZ1bmN0aW9uKEIpe3JldHVybiBIWzBdLmNhbGwodGhpcywxNSxCKX0sZTY9Z1szNl0oMzcsMzc2ODgsNjIsNSksTzg9ZnVuY3Rpb24oQil7cmV0dXJuIGtbNDRdLmNhbGwodGhpcywxLEIpfSwkaD1nWzM2XSg2LDQ2Mjc0LDQ0LDMpLHRNPWdbMzZdKDQsNDYyNzAsNjIsNCksUCQ9Z1szNl0oMzYsMzAzNTQsMzAsMTIpLCR1PWdbMzZdKDM2LDQ2MjEyLDg3LDU4KSxmRj1mdW5jdGlvbihCKXtyZXR1cm4gUlsxOV0uY2FsbCh0aGlzLAoxMyxCKX0sU3Q9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMzNdLmNhbGwodGhpcywzMixCKX0scTI9Z1szNl0oMzYsNDYyMDEsNzQsMTEpLGlKPWZ1bmN0aW9uKCl7cmV0dXJuIFlbNDVdLmNhbGwodGhpcywxKX0seW09Z1szNl0oMzgsNDYxOTYsMzMsNSksWXU9Z1szNl0oNSw0NjExOSw4Niw3NyksYyQ9ZnVuY3Rpb24oQix6KXt2YXIgSz1bNTcsMiwxOF0sSj1HMi5hcHBseShLWzFdLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKEMpe3JldHVybiBPWzI1XSg5LEMpfSk7cmV0dXJuIFJbMTNdKDE1LEhbMjVdKEtbMF0sT1s5XSgzMSxLWzJdKSxCKSxbT1syNV0oOSx6KV0uY29uY2F0KGVbMzNdKDEyLEopKSl9LFM2PWdbMzZdKDYsNDYwNTksODMsNjApLG10PWdbMzZdKDM4LDQ2MDU1LDEyLDQpLG16PWdbMzZdKDM3LDQ2MDQ0LDk0LDExKSx1RD1mdW5jdGlvbihCKXtyZXR1cm4gR1sxOF0uY2FsbCh0aGlzLDMsQil9LGxKPWdbMzZdKDYsNDg0Myw0MTQ4LDYpLEU3PWdbMzZdKDUsNDYwNDEsMTcsCjMpLFhGPWdbMzZdKDM3LDQ2MDI4LDU1LDEzKSx1Sj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gT1s0Ml0uY2FsbCh0aGlzLDEsQix6LEssSil9LHdaPWZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMjFdLmNhbGwodGhpcywyLEIseil9LGF1PSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLnNwbGl0KCIiKSxLRD1nWzM2XSgzNyw0NjAxOSwxMjAsOSksaHA9Z1szNl0oMzcsNDYwMTMsMTA1LDYpLGVhPWdbMzZdKDM4LDQ1OTc1LDc0LDM4KSxkVz1nWzM2XSg0LDQ1ODkzLDgwLDcxKSxrdT1nWzM2XSg2LDQ1Njk1LDkwLDgyKSx0cD1nWzM2XSg1LDQ1Njg3LDQ0LDgpLFU3PWdbMzZdKDM3LDE4NjEzLDU1OCw0KSxNMj1nWzM2XSgzNyw0NTY3MywxMjUsMTQpLCQ3PWZ1bmN0aW9uKCl7cmV0dXJuIGtbMF0uY2FsbCh0aGlzLDgwKX0sd1c9Z1szNl0oNCw0NTU5OSw2OSw3MSksSXU9Z1szNl0oNSw0NTU3NiwxMTAsNyksRXk9Z1szNl0oNCw0NTU1NywyLDE5KSxGRj1nWzM2XSg2LAo0NTQ4OSw2MSw2OCksQjk9Z1szNl0oNiw0NTQ4MCwxMTgsOSksc2M9Z1szNl0oMzcsNDU0MTUsNTgsNjUpLHpwPWdbMzZdKDUsNDUzMjQsMzQsOTEpLEtlPWdbMzZdKDM4LDQ1MzExLDYzNSwzKSxKbj1nWzM2XSg1LDQ1MjM3LDExMiw2NiksQ2U9Z1szNl0oMzgsNDUxNjgsMzEsNjkpLGJoPWdbMzZdKDUsNDUxNjEsNTUsNyksQW49Z1szNl0oNSw0NTE0MSw1MSwyMCksdjk9Z1szNl0oNSw0NTEyOCw4OCwzKSxUcD1nWzM2XSgzOCw0NTEyMCwxMTEsOCksakg9Z1szNl0oNCw0NTEwMCwxMjEsMjApLHBlPWdbMzZdKDM3LDQ1MDg4LDI1LDEyKSxPaz1nWzM2XSgzNyw0NTA4Miw4LDYpLFFsPWdbMzZdKDM2LDE5MTAzLDcyNTcsNCksbmU9Z1szNl0oNiw0NTA3OSwxMjIsMyksWjA9ZnVuY3Rpb24oQil7cmV0dXJuIGtbMjldLmNhbGwodGhpcywyLEIpfSxXOT1nWzM2XSg2LDQ1MDcxLDc4LDgpLGdzPWdbMzZdKDM3LDQxNjgxLDI4LDI1KSxORT1nWzM2XSgzOCw0NTAyOSw4Nyw0MiksT2M9Z1szNl0oNiwKNDQ5OTcsMTAxLDE5KSxveD1nWzM2XSgzOCw5Myw1NDcsMSkseF89Z1szNl0oMzcsNDQ5ODEsODgsMTYpLEQwPWdbMzZdKDQsNDQ5NzcsMTE0LDQpLEUzPWdbMzZdKDM2LDQ0OTYwLDQ3NzUsNiksZmU9Z1szNl0oNCw0NDgzOSw5MSw3NCksbzI9Z1szNl0oNiw0NDgyMyw5NSwxNikseUU9Z1szNl0oMzcsMjMwMDgsMTIyNSwzKSxvaz1nWzM2XSgzOCw0NDc5Miw0MiwzMSksTGU9Z1szNl0oNCw0NDc3MywxMTEsMTkpLFJrPWdbMzZdKDM3LDQ0NzY3LDk0LDYpLFV3PWdbMzZdKDM4LDQ0NzY1LDk4LDIpLHJzPWdbMzZdKDUsNDQ3NTIsMTA4LDEzKSxWbD1nWzM2XSgzNiw0NDczMCwxMjcsNyksR3A9Z1szNl0oNCw0NDcyMSw4Myw5KSxIOT1nWzM2XSgzOCw0NDcxMCw5NywxMSksZUg9Z1szNl0oMzgsNDI3OTIsNjU1LDQpLFA5PWdbMzZdKDUsNDQ2ODUsMywyNSksJF89Z1szNl0oMzYsNDQ2ODIsMjQsMykscUU9Z1szNl0oMzYsNDQ2MDAsMzcsODIpLExtPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIGcwWzFdLmNhbGwodGhpcywKNzQsQyxCLHosSyxKKX0saWg9Z1szNl0oMzcsNDQ1NjQsNzgsNSkscks9ZnVuY3Rpb24oQix6KXtyZXR1cm4gWVsyXS5jYWxsKHRoaXMsMSx6LEIpfSx5bD1nWzM2XSg2LDQ0NTU1LDQzNSw0KSxZXz1nWzM2XSg2LDQ0NTIxLDExOCwyOSksYzk9Z1szNl0oMzgsNDQ1MTMsNTAsOCksU0g9Z1szNl0oNCw0NDQ3NCwxMDgsNCksbVE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gSFsxN10uY2FsbCh0aGlzLDY0LEIseil9LGxoPWdbMzZdKDUsNDQ0MDMsNTAsNzEpLEVjPWdbMzZdKDM3LDQ0MjI2LDM0LDM1KSxYYT1nWzM2XSgzNiw0NDIxOSwxMTQsNyksdWg9Z1szNl0oMzcsNDQyMTYsMzEsMyksYWs9Z1szNl0oNiw0NDIwNywxMDgsOSksaG49Z1szNl0oMzgsNDQxMjIsMjcsODUpLGRzPWdbMzZdKDM4LDQ0MDUyLDg2LDcwKSxabD1mdW5jdGlvbihCLHope3JldHVybiB5WzI4XS5jYWxsKHRoaXMsNDEsQix6KX0sa189Z1szNl0oNCwxNzM5OSw4MzQwLDEpLHRuPWdbMzZdKDQsNDI2ODYsNTI3OCw0KSwKV1I9ZnVuY3Rpb24oKXtyZXR1cm4gWVs0Nl0uY2FsbCh0aGlzLDk1KX0sVWM9Z1szNl0oNCw0Mzk3Niw0Niw2NyksTUU9Z1szNl0oNiw0MzkxNiwxMDY5LDcpLHdzPWdbMzZdKDM4LDQzODQxLDExMSw5KSxJaz1nWzM2XSg1LDQzNzY3LDEwNyw3NCksRmE9Z1szNl0oNCw0Mzc2Myw5OSw0KSxtMD1nWzM2XSg0LDQzNzYwLDEwMywzKSxCcj1nWzM2XSgzNywxNzk5LDExOTAsNSksc1Q9Z1szNl0oNiwzNjc5MCwxMCw2NSksemU9Z1szNl0oMzgsNDM3NTEsNDEsOSkscHE9ZnVuY3Rpb24oQil7cmV0dXJuIEhbNF0uY2FsbCh0aGlzLDEsQil9LEtWPWdbMzZdKDM2LDQzNzI5LDExMCwyMiksSl89Z1szNl0oMzgsNDM2NzYsMjcsMTEpLENWPWdbMzZdKDUsMTI0ODgsNTgsMjEpLFp4PWdbMzZdKDM2LDExOTU3LDEyMyw1MSksYlU9Z1szNl0oNSw0MzY3MSw5Nyw1KSxBXz1nWzM2XSg1LDMzOTM2LDk3LDQ2KSxzMT1nWzM2XSgzNiwxNzg5MSwyMSwxMiksdnI9Z1szNl0oMzgsNDM2NjAsNjUsOCksClRlPWdbMzZdKDYsNDM2NTQsNTcsNiksaTE9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMThdLmNhbGwodGhpcyw5LEIpfSxqMT1nWzM2XSgzNyw0MzU4NSwxMDksNjkpLHBWPWdbMzZdKDUsNDM1MTYsMzYsNjkpLFFJPWdbMzZdKDM4LDQzNTAwLDM3LDE2KSxuVj1nWzM2XSgzNyw0MzQyOCwxMTcsNzIpLHlCPWdbMzZdKDYsNDM0MTUsNywxMyksWnY9Z1szNl0oNiw0MzQwNCwzOSwxMSkscjM9Z1szNl0oMzcsNDMyOTUsOCwxMiksV3I9Z1szNl0oMzgsMjI1OTAsOTAsNSksZ0M9Z1szNl0oMzgsNDMyNzgsODcsMTMpLE5qPWdbMzZdKDM3LDYwMjEsNTgwMSwyKSxPQz1nWzM2XSg0LDk3MDgsOTAsMTAxKSxPVD1nWzM2XSg2LDE4MTA0LDQwLDQpLHg2PWdbMzZdKDUsNDMyNzQsMTAsNCksRHY9Z1szNl0oNCw0MzI2Niw3OCw4KSxmVj1nWzM2XSgzOCwzMTY5MiwxMjIsNyksb2w9Z1szNl0oNSw0MzI2NSwyNywxKSxMVj1nWzM2XSgzNiw0MzE5OSw5Miw2NiksUmw9Z1szNl0oMzYsNDMxMzUsOTEsNjQpLApQNz1nWzM2XSgzNiwyNjQ5MiwxNDg3LDEpLHJDPWdbMzZdKDYsNjQ2MiwxNjc2LDEwKSxqdT1nWzM2XSg2LDk1LDc1MiwxKSxWST1nWzM2XSg1LDQzMDUxLDE2MiwzKSxKOD1nWzM2XSgzNiwxMDA0Miw0NiwxKSx6Tz1mdW5jdGlvbihCKXtyZXR1cm4gR1s0OF0uY2FsbCh0aGlzLDMzLEIpfSxHZT1nWzM2XSg1LDQyOTc0LDkyLDc2KSxIcj1nWzM2XSgzOCwxMzA3NSw3Miw3NiksZTE9Z1szNl0oMzgsNDI5NjAsMTE2LDE0KSxQcj1nWzM2XSg2LDQyOTE5LDU1LDcpLCQ2PWdbMzZdKDYsNDI5MTYsMTEwLDMpLHFqPWdbMzZdKDM4LDQyOTA2LDM5LDEwKSxoeT1nWzM2XSg1LDQyODk2LDExNSw1KSxpVT1nWzM2XSgzOCw0Mjg4OSwxMjcsNykseUk9Z1szNl0oMzYsNDI4MTIsNTYsNiksWTY9Z1szNl0oMzgsNDI4MDcsMzUsNSksY3I9Z1szNl0oMzYsNDI3OTYsMzEsMTEpLFMxPWdbMzZdKDM3LDQyNzgzLDEsNyksbWE9Z1szNl0oNiw0Mjc3NSwxMDIsOCksdXU9Z1szNl0oNiw0Mjc3MiwzMCwKMyksbFU9Z1szNl0oNCw0Mjc0OSwxMjIsNiksRFY9Z1szNl0oNCw0Mjc0MSwxMDIsOCksRVQ9Z1szNl0oMzYsNDI3MjcsMzMsMTQpLFhCPWdbMzZdKDYsNDA0OTEsMTEwNSwxNiksdVU9Z1szNl0oMzYsNDI3MTgsMTMsOSksYWw9Z1szNl0oMzcsNDI2MzUsMTIwLDgzKSxoXz1nWzM2XSg0LDQyNTY1LDkxLDcwKSxkQz1nWzM2XSgzNyw0MjQ4Niw0OSw3OSksZFo9Z1szNl0oMzYsNDI0NzYsNjMsMTApLGs2PWdbMzZdKDM2LDQyNDY5LDE0LDcpLFpIPWdbMzZdKDM2LDQyNDU3LDYzLDEyKSx0Xz1nWzM2XSgzOCw0MjQ0NCw1NSwxMyksVVQ9Z1szNl0oMzYsOTA2Nyw1MjkxLDYpLE1qPWdbMzZdKDQsNDI0MTQsODksOCksd0M9Z1szNl0oNiw0MjQwNiw2NSw4KSxJbD1nWzM2XSg1LDExMiwyMjIyLDIpLENoPWdbMzZdKDQsMzUxMjQsNDEsMTYpLEZCPWdbMzZdKDQsNDIzNTEsNzIsNTUpLG9mPWdbMzZdKDM3LDQyMzQ2LDU3LDUpLGM4PWdbMzZdKDUsNDQ1OCw1MjQ0LDUpLEJLPWdbMzZdKDM3LAo0MjI4NywxMTcsOCksdno9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMjZdLmNhbGwodGhpcywxLEIpfSxzQj1nWzM2XSg0LDQyMjE3LDEyLDcwKSxqZj1nWzM2XSgzOCwzNjA0OSw4NCwyOCksemk9Z1szNl0oNiw0MjIwNCw2MSwxMyksSzI9Z1szNl0oNiwyNjQ3Nyw2MCw0KSxKbD1nWzM2XSg2LDQyMTk2LDM2LDgpLFl5PWdbMzZdKDM4LDI1ODE3LDE5OSwzKSxDMj1nWzM2XSg2LDQyMTMzLDE2LDYzKSxiWD1nWzM2XSg0LDQyMTMwLDcsMyksQWw9Z1szNl0oNCwxMDMzNyw1NCwyOSksdks9Z1szNl0oMzYsNDE5ODgsNjUsODQpLFRpPWdbMzZdKDYsNDE5NDMsMTE3LDQ1KSxFeD1nWzM2XSgzOCw0MTkzMyw2MiwxMCksank9Z1szNl0oMzYsNDE4ODgsNTgsNDUpLHAyPWdbMzZdKDYsNDE4ODUsMTI2LDMpLGNVPWdbMzZdKDM4LDI2NTcwLDkzMDUsNiksQTQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEY1KGtbOF0oMTYsRzIuYXBwbHkoMCxhcmd1bWVudHMpKSwhMCl9LFEzPWdbMzZdKDM3LDI3MjQ3LAozMiwxNiksbjI9Z1szNl0oNSw0MTg3NSw4NSwxMCksS3E9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMjVdLmNhbGwodGhpcywyLEIpfSx2bj1nWzM2XSg2LDQxODYxLDU3NSwxNCksWiQ9Z1szNl0oMzcsMzIyNDAsNDkxOSw4KSxXSz1nWzM2XSg0LDE4NDA4LDQ4NDEsMiksZ3U9Z1szNl0oNSw0MTY5MCw3MzIsNSksTjY9Z1szNl0oMzgsNDE2NzksMjEsMiksT0I9Z1szNl0oNSw0MTYxMSw3Nyw2OCkseEU9Z1szNl0oNSw0MTUzNiw0OSw3NSksT1I9Z1szNl0oMzYsNDE1MjMsNzYsMTMpLEQkPWdbMzZdKDM2LDQxNTE1LDY0LDgpLGYyPWdbMzZdKDM4LDE5NjA1LDQ2LDEwKSxvYT1nWzM2XSgzNyw0MTQzMCw0NSw2MSksTDI9Z1szNl0oMzYsOTQwNCw2OTY4LDMpLFJhPWdbMzZdKDM3LDQxNDIyLDc3LDgpLHJ1PWdbMzZdKDYsNDE0MTgsMjIsNCksVjM9Z1szNl0oMzgsNDE0MDAsMTEzLDE4KSxHaT1mdW5jdGlvbihCLHope3JldHVybiBPWzRdLmNhbGwodGhpcywxMixCLHopfSx4WD1nWzM2XSgzNiwKNDEzOTUsNjgsNSksaFI9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMzldLmNhbGwodGhpcyw2OCxCKX0sSEs9Z1szNl0oMzgsNDEzODksNzQsNiksZXk9Z1szNl0oMzgsNDEzMjAsMTQsNjkpLFBLPWdbMzZdKDM4LDQxMjkyLDY5LDI4KSwkRT1nWzM2XSg1LDI5ODcyLDU2Niw4KSx1cT1mdW5jdGlvbihCKXtyZXR1cm4gbVszOV0uY2FsbCh0aGlzLDUsQil9LHE2PWdbMzZdKDQsNDEyNDIsNTMsOCksaVg9Z1szNl0oNiw0MTIzNyw5NCw1KSxLMT1nWzM2XSg1LDM4NjgsMjY4NywxKSx5Mz1nWzM2XSg1LDQxMjIxLDEwOSwxNiksWUU9Z1szNl0oMzgsNDEyMDksMTUsMTIpLGNLPWdbMzZdKDM3LDQxMTk3LDIxLDEyKSxTeT1nWzM2XSg0LDQxMTY4LDcxLDgpLG01PWdbMzZdKDM4LDQxMTQ5LDE1MywxOSksTlE9ZnVuY3Rpb24oKXtyZXR1cm4ga1syOF0uY2FsbCh0aGlzLDQwKX0sdW09Z1szNl0oNiw0MTEyNSw5NTgsNyksbFg9Z1szNl0oNiw0MTEwMiw1NSwxNCksRUI9Z1szNl0oNiw0MTA3MiwxMDcsCjE4KSxYaj1nWzM2XSgzNiw0MTA3MCw3LDIpLHVYPWdbMzZdKDQsNDEwNDYsMzcsOSksV1U9ZnVuY3Rpb24oKXtyZXR1cm4gSFs1XS5jYWxsKHRoaXMsMSl9LGFhPWdbMzZdKDM3LDQxMDQyLDEyNSw0KSxobD1nWzM2XSg0LDQxMDI1LDU4LDEwKSx4Yj1nWzM2XSgzNyw0NzkxLDM0MTIsNSksZHU9Z1szNl0oNSw0MDk2OCw2Miw1KSxrRT1mdW5jdGlvbihCKXtyZXR1cm4gbVsyN10uY2FsbCh0aGlzLDEsQil9LCRQPWdbMzZdKDM4LDQwODU0LDY4LDEyKSx0bD1nWzM2XSgzNiwxNDk0NCw3OCw2NyksakY9Z1szNl0oMzcsMzEzODEsNDIsMyksVUI9Z1szNl0oMzgsMjg5MjcsMzAwLDUpLEdyPWdbMzZdKDYsNDA4NDQsMTIzLDEpLE02PWdbMzZdKDM2LDQwNzczLDc2LDcxKSx3dT1nWzM2XSg0LDQwNzU0LDMyLDE5KSxJYT1nWzM2XSgzNywxOTI4NSw1ODk2LDQpLEZqPWdbMzZdKDM2LDQwNzUwLDczLDQpLEJKPWdbMzZdKDM2LDQwNzQ0LDI0LDYpLHNQPWdbMzZdKDM4LDQwNzM4LDgsNiksc3Q9CmdbMzZdKDM3LDQwNzIyLDg5LDE2KSx6OT1nWzM2XSg1LDQwNzAwLDMxLDIyKSxLZD1nWzM2XSg0LDQwNjIyLDc4LDYyKSxKQz1nWzM2XSgzNyw5Nzg5LDgwNjYsMiksQ2Q9Z1szNl0oMzcsNDA1NzUsODEsMTEpLGJTPWdbMzZdKDM3LDExNSwyNDIwLDEpLEFDPWdbMzZdKDM2LDQwNTE0LDY2LDYxKSx2Sj1nWzM2XSgzNyw0MDUwOCw2OSw0KSxUOT1nWzM2XSgzNyw0MDUwMSwyMTgzLDYpLGpWPWdbMzZdKDYsNDA0MDksMTQsNzEpLHBkPWdbMzZdKDM4LDQwNDAwLDUxLDkpLFFYPWdbMzZdKDM4LDQwMjE5LDEwMyw3MSksbmQ9Z1szNl0oNCwyNjA1MiwzOTIsNyksWmE9Z1szNl0oMzcsMzMyMTUsNDEsODApLFdKPWdbMzZdKDQsNDAyMDYsMjMsMTMpLGdoPWdbMzZdKDYsNDAxMzMsNDQsMTgpLE5lPWdbMzZdKDQsNDAxMjgsOTAsNSksTHk9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaSxTMD0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlwvPyNdKig/OltcLz8jXXwkKSkvaSwKT1A9Z1szNl0oNCw0MDEyMiwxMTMsNikseDM9Z1szNl0oNSw0MDExMiwzOSwxMCksaW09Z1szNl0oMzcsNDAxMDYsODgsNiksRGE9Z1szNl0oMzcsOTIsNDM5LDEpLGZkPWdbMzZdKDM3LDQwMDM1LDE1LDcxKSxvTD1nWzM2XSgzNyw0MDAyMyw0MywxMiksTGQ9Z1szNl0oNCw0MDAwOSwzNSwxNCksUkw9Z1szNl0oNCwzOTk4MCw0MSwyOSkscmg9Z1szNl0oMzcsMzk4OTAsNDAsOTApLFZYPWdbMzZdKDQsMzk4MDYsNDcsODQpLEc5PWdbMzZdKDM4LDM5NzQxLDM1LDY1KSxISj1nWzM2XSgzNiwzOTY3NCwwLDY3KSxDbj1nWzM2XSgzNiwzOTY2NCwyNjExLDkpLGVWPWdbMzZdKDM2LDM5NTcwLDk1LDY2KSxQSj1nWzM2XSgzOCwyMDAsOTkyNSwxKSwkMz1nWzM2XSg2LDM5NDk0LDYzLDc2KSxxZT1nWzM2XSg0LDM5NDc5LDYsMTUpLGlTPWdbMzZdKDM2LDM5NDYzLDEwNywxNiksZHc9ZnVuY3Rpb24oQil7cmV0dXJuIGdbMzVdLmNhbGwodGhpcywxNixCKX0seVg9Z1szNl0oMzgsMzk0MzgsCjQ1LDI1KSxZMz1nWzM2XSgzNiwzNDQzNSw0MTIwLDgpLEw1PWdbMzZdKDUsMjkwMywxNTM4LDgpLGNKPWdbMzZdKDYsMzk0MzAsOCw4KSx0WD1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4ga1syN10uY2FsbCh0aGlzLDkseixLLEIsSixDLGIsQSl9LFNWPWdbMzZdKDM4LDM5NDAyLDEzLDUpLG1mPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCl7cmV0dXJuIG1bN10uY2FsbCh0aGlzLDEsQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKX0seEo9Z1szNl0oNCwzOTM4MSwxNCwyMSksbFM9Z1szNl0oMzYsMzkzMTcsNDEsNjQpLEVQPWdbMzZdKDM3LDM5Mjk5LDExNCw3KSxYRD1nWzM2XSg0LDMzNTEwLDY2LDIwKSx1Uz1nWzM2XSgzOCwzOTIyNiw2NCw3MyksYUw9Z1szNl0oNiw0NzQ2LDc0LDUpLGhDPWdbMzZdKDM4LDM5MDkzLDkwLDc2KSxkaD1nWzM2XSgzNiwzOTAxOSw2Nyw3NCksazM9Z1szNl0oMzgsMzkwMTAsCjgzLDkpLEtyPWdbMzZdKDM3LDM5MDA2LDExLDQpLHRDPWdbMzZdKDM2LDM5MDAzLDY1LDMpLFVQPWdbMzZdKDM4LDM4OTk5LDksNCksTWU9Z1szNl0oNSwzODkzOCw5Myw2MSksd2g9Z1szNl0oMzgsMzg5MjQsMjksNCksU009Z1szNl0oNSwzODkxNiw0MCw4KSxJTD1nWzM2XSgzNywxNzMxMyw0NDYsMiksRkQ9Z1szNl0oMzYsMzg4NDMsMTEzLDczKSxCXz1nWzM2XSg0LDM4ODAzLDEyNiw0MCksYjQ9Z1szNl0oMzcsMzg3ODQsMjUxOCw4KSxzUz1nWzM2XSg2LDM1NTgyLDkxLDM0KSxlYz1mdW5jdGlvbihCKXtyZXR1cm4gZ1sxNV0uY2FsbCh0aGlzLDE2LEIpfSxJYj1mdW5jdGlvbihCKXtyZXR1cm4gSFsxNl0uY2FsbCh0aGlzLDI1LEIpfSx6Sz1nWzM2XSg1LDM4NzE1LDE3LDcpLEt2PWdbMzZdKDM4LDM4NjU4LDg3LDE3KSxKYz1nWzM2XSgzOCwzODU1NSwxMjUsNzEpLEN2PWdbMzZdKDM2LDE0NDUzLDQ0NjAsMSksYm89Z1szNl0oMzYsODM1LDEwMyw0KSxSQj1mdW5jdGlvbihCLAp6LEspe3JldHVybiB5WzI5XSgxLDAsImNsYXNzIixhcmd1bWVudHMsZG9jdW1lbnQpfSxBYz1nWzM2XSg1LDI0NjA4LDQwMCwyKSx2Xz1nWzM2XSgzNiwzODU0MCw4OCwxNSksVEs9Z1szNl0oNSwyNjQ5OSwyMTYwLDIpLEI2PWdbMzZdKDM3LDM4NTM3LDYyLDMpLGlUPWdbMzZdKDM2LDIwNzI4LDEzMjQsMyksajk9Z1szNl0oMzYsMzg0OTAsNSwyOCksYjA9Z1szNl0oNiw2NTg4LDQ5MiwxNikscHY9Z1szNl0oMzgsMzg0NjAsMjcsNCksUXA9Z1szNl0oMzgsMzg0NTQsMjQsNiksbnY9Z1szNl0oMzYsMzg0NDQsMjEsMTApLFpnPWdbMzZdKDQsMzgzNzcsNjMsNjcpLFdfPWdbMzZdKDYsMzgzMTUsNCw2MiksTkw9Z1szNl0oMzYsMzgyODQsMTE4LDMxKSxnVT1nWzM2XSgzNiwzODI3Myw1NywxMSksTmw9Z1szNl0oMzYsMTcwMyw0NiwxMSksbGQ9Z1szNl0oNCwzODI0NCw5NCwyOSksT1M9Z1szNl0oNCwzODE3Myw4Nyw3MSkseG09Z1szNl0oMzYsMzgxNjUsMTA2LDgpLERnPWdbMzZdKDYsCjMxNzA5LDQ0LDgwKSxmdj1nWzM2XSg2LDM4MTA0LDU0LDYxKSxvej0vWyNcPzpdL2csTHY9Z1szNl0oMzcsMzgwNTAsODgsNTQpLFJ6PWdbMzZdKDUsMzc5ODIsODcsNjgpLHJVPWdbMzZdKDUsMjMwMDUsMTAwNyw2KSxWcD1nWzM2XSg2LDM3OTI0LDQsNiksR0s9Z1szNl0oMzYsMTg1MDYsMzA2LDUpLHBmPWdbMzZdKDM3LDM3OTE0LDQxLDEwKSxIXz1nWzM2XSg0LDM3OTAzLDIwLDExKSxlOT1nWzM2XSgzNyw1NjI4LDEwODcsNCksUF89Z1szNl0oMzYsNjU3NSwyMSw4KSxiUj1nWzM2XSgzOCwzNzg4NCw4Myw4KSwkbT1nWzM2XSgzNiwzNzg0MywwLDQxKSxxbD1nWzM2XSgzNiwxNDEzMywxMDA2LDMpLGlvPWdbMzZdKDYsMzc4MDMsNTAsNDApLHlwPWdbMzZdKDM3LDM3NzE1LDUwLDg0KSxZbT1nWzM2XSgzNywzNzY5NSwyNywyMCksY189Z1szNl0oMzgsMTUyMTksMTQ0NCw1KSxTOT1nWzM2XSgzNiwzNzY4OCw2Miw3KSxtQj1nWzM2XSg1LDM3NjE3LDEwMCw3MSksbG89Z1szNl0oMzYsCjE3MTgyLDI1ODcsNCksRVM9Z1szNl0oNiwzNDg0OCwyNDYsNiksVDM9Z1szNl0oNCwzNzYxMywyMyw0KSxYcD1nWzM2XSg2LDM3NjAwLDE3LDEzKSxuMD1mdW5jdGlvbigpe3JldHVybiBHWzQwXS5jYWxsKHRoaXMsOCl9LHVvPWdbMzZdKDYsMzc1NzQsNDIsMjYpLGF6PWdbMzZdKDYsMTI5LDM2NDksMSksWDY9ZnVuY3Rpb24oKXtyZXR1cm4ga1szMF0uY2FsbCh0aGlzLDEpfSxTcD1nWzM2XSg0LDM3NTY3LDcwLDcpLGhjPWdbMzZdKDUsMzc1NTMsODAsMTQpLGRVPWdbMzZdKDYsMzc1NDIsNjYsMTEpLGttPWdbMzZdKDM2LDM3NTM1LDExNSw3KSxGWj1nWzM2XSgzOCwzNzUxNCwxMDMsMjEpLHRjPWdbMzZdKDM2LDM3NTEyLDU0NzMsMSksWWg9Z1szNl0oNSwzNzQyOSw5LDEzKSxVUz1nWzM2XSg0LDM3NDIzLDM5LDYpLEdxPWZ1bmN0aW9uKEIseil7cmV0dXJuIFJbMjBdLmNhbGwodGhpcywxMixCLHopfSxNbD1nWzM2XSgzNiwzNzQxOSwxMTcsNCksd1U9Z1szNl0oMzYsMzc0MTUsNjAsCjQpLGNFPWdbMzZdKDM3LDM1NTQ3LDY2LDIpLEl6PWdbMzZdKDM4LDM3Mzg1LDEyMCw1KSxGcD1nWzM2XSg0LDM3MzUyLDE4LDMpLFJpPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gZzBbNl0uY2FsbCh0aGlzLDYwLEIseixLKX0sQnY9Z1szNl0oNiwzNzI4Miw1Niw3MCksbTI9Z1szNl0oMzgsMzU2MTIsMjM5OSw0KSxzJD1nWzM2XSg0LDM3MjM4LDI3LDQ0KSx6Tj1nWzM2XSg1LDM3MTkxLDM2LDgpLEtFPWdbMzZdKDM2LDI5OCwxODYxMSwxKSxKNz1nWzM2XSgzOCwzNzEyMyw3Myw2OCksQ0U9Z1szNl0oMzcsMzY5ODUsMTEwLDg1KSxWbz1mdW5jdGlvbihCKXtyZXR1cm4gZzBbMF0uY2FsbCh0aGlzLDgsQil9LGJ0PWdbMzZdKDM4LDM2ODQzLDUxNDQsNyksQTc9Z1szNl0oMzYsODA0Myw4Niw1KSx2dj1nWzM2XSg1LDM2Nzc4LDExOCwxMiksVE49Z1szNl0oNiwzNjc2Nyw1MTIsNSksanc9Z1szNl0oNSw3MDU4LDU2MDQsMykscEU9Z1szNl0oMzgsMzY3MzUsNjAsMjcpLFF1PWdbMzZdKDM4LAozNjczMiw4OCwzKSxuRT1nWzM2XSg0LDM2NjY1LDExOSw2NyksWm49Z1szNl0oMzgsMzY2NjMsMTAxLDIpLFd2PWdbMzZdKDUsMzY1OTEsOTgsNzIpLGduPWdbMzZdKDM4LDM2NTg3LDkxLDQpLGtZPWZ1bmN0aW9uKEIpe3JldHVybiBZWzE1XS5jYWxsKHRoaXMsMixCKX0sTjQ9Z1szNl0oMzgsMzY1ODIsMCw1KSxPJD1nWzM2XSgzNiwzNjUyMCwxNyw2MikseFM9Z1szNl0oMzcsMzY1MTAsOTAsMTApLGYwPWdbMzZdKDYsMTU2OCw1ODE5LDQpLERuPWdbMzZdKDQsMzYzODQsMiw3OCksZmY9WzEsMiwzLDVdLGZFPWdbMzZdKDM2LDM2MzcyLDExMiwxMiksb3E9Z1szNl0oNSwxMTUxLDU4NSw2KSxMRT1nWzM2XSg2LDM2MzUyLDEwLDIwKSxScT1nWzM2XSg1LDM2MzQ0LDE0LDMpLEt4PWdbMzZdKDQsMzYzMzgsMTE5LDYpLHJyPWdbMzZdKDM2LDM2MzI4LDEwLDEwKSxybj1nWzM2XSg0LDM2Mjk4LDk5LDMwKSxWdT1nWzM2XSg0LDM2Mjk1LDcxLDMpLEdOPWdbMzZdKDYsMzYyNjksNTI1NSwKNykscjY9Z1szNl0oMzgsMzYxODgsMzAsMzApLEh2PWdbMzZdKDM3LDkyMDQsMjg5MSw3KSxldz1nWzM2XSgzNyw5Niw4MDEsMSksVnE9Z1szNl0oMzYsODksMTYyLDEpLFB2PWdbMzZdKDUsMTg1MDIsNCw5KSwkUz1nWzM2XSg1LDM2MTA1LDQxLDc3KSxxND1nWzM2XSgzNiwzNjA1Nyw4MjUsOCksaXQ9Z1szNl0oMzYsMjU0NzIsMjc1LDMpLHl1PWdbMzZdKDM3LDM2MDM2LDIwLDUpLFlTPWdbMzZdKDQsMzU5NjksMjMsNjcpLGN2PWdbMzZdKDUsMzU5MDYsNTg4LDcpLEp6PWZ1bmN0aW9uKEIpe3JldHVybiBlWzE5XS5jYWxsKHRoaXMsMSxCKX0sU3c9Z1szNl0oNCwzNTg5MSw4Miw5KSxtUz1nWzM2XSg0LDM1ODgwLDQ1LDExKSxFMD1mdW5jdGlvbihCKXtyZXR1cm4gZVszN10uY2FsbCh0aGlzLDgsQil9LHlSPWdbMzZdKDM4LDM1ODczLDY0LDcpLHhrPWZ1bmN0aW9uKEIpe3JldHVybiBtWzM0XS5jYWxsKHRoaXMsMTgsQil9LGx0PWdbMzZdKDUsMzU4MjMsMjYsMSksRSQ9Z1szNl0oMzgsCjM1ODEyLDY4LDExKSx3ZD1nWzM2XSgzNiwzNTY3NywxMTksMzEpLGowPWdbMzZdKDQsMzU2NTYsMzk3MCw0KSxsTj1nWzM2XSgzOCwxOTY1MCw0NDc0LDkpLFhDPWdbMzZdKDM2LDM1NTg0LDI1MCw0KSx1dD1nWzM2XSg1LDE5NDk1LDUzLDQpLGFxPWdbMzZdKDM4LDM1NTUxLDQsMTApLGg3PWdbMzZdKDM4LDM1NTQ3LDY2LDQpLGRuPWdbMzZdKDQsMzU1NDMsMTI0LDQpLGRpPWZ1bmN0aW9uKEIseil7cmV0dXJuIGdbMzFdLmNhbGwodGhpcywxLEIseil9LGtTPWdbMzZdKDYsMzU1MDEsNzQsNDIpLHQ3PWdbMzZdKDQsMzUzOTgsNjYsNjcpLFUkPWdbMzZdKDM2LDM1Mjk1LDE3LDczKSxNND1nWzM2XSg2LDM1MjMwLDI4LDY1KSx3bj1nWzM2XSg2LDM1MjE5LDg1LDExKSxJcT1nWzM2XSgzNywyNjQ5MywxNTIxLDEpLEZDPWdbMzZdKDM4LDM1MTI0LDQxLDQ1KSxCTT1nWzM2XSg2LDM1MDk5LDIxLDI1KSxkQj0vW1x4MDBceDIyXHgyN1x4M2NceDNlXS9nLHM2PWdbMzZdKDQsMzUwOTAsMTAwLAo5KSxhUj1mdW5jdGlvbihCKXtyZXR1cm4gZVs0M10uY2FsbCh0aGlzLDEsQil9LHpTPWdbMzZdKDM2LDM1MDY1LDIwLDI1KSxLTj1nWzM2XSgzNiwzNTA1Miw1OSwxMyksSmg9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1syOV0uY2FsbCh0aGlzLDM1LEIseil9LENOPWdbMzZdKDYsMzM5MCwzNCwyNSksdEI9Z1szNl0oNiwyNTIyNSwxMjg2LDQpLGJfPWdbMzZdKDM2LDM1MDUxLDYzLDEpLEFoPWdbMzZdKDQsMzUwMzgsODQsMTMpLHZNPWdbMzZdKDUsMzUwMjUsNjYsMTMpLFRTPWdbMzZdKDM2LDM0OTYwLDExMiw2NSksaiQ9Z1szNl0oMzgsMzQ5NTMsMTQsNykscE49Z1szNl0oNSwzNDk0NiwxNSw3KSxRZT1mdW5jdGlvbihCKXtyZXR1cm4gbVsxOF0uY2FsbCh0aGlzLDM2LEIpfSxuTj1nWzM2XSg1LDM0ODczLDMzLDczKSxaNT1nWzM2XSg0LDM0ODYzLDExNywxMCksV009Z1szNl0oNCwzNDg0Niw4OSw4KSxnej1nWzM2XSgzNiwzNDgyOCw3LDE4KSxOQz1nWzM2XSg1LDQyNDgsOTksMzYpLApqZT1nWzM2XSgzOCwyNjQ5MywxNTIxLDkpLE82PWdbMzZdKDM2LDM0ODIyLDY0LDYpLHhvPWdbMzZdKDUsOTExMyw4NCwxNCksRDU9Z1szNl0oNiwzNDgxOCwxMSw0KSxmTj1nWzM2XSgzNiwzNDgxNSw2LDMpLG9HPWdbMzZdKDUsMzQ3MDgsOTcsNzIpLExOPWdbMzZdKDM2LDM0Njk4LDEwMCwxMCksUkc9Z1szNl0oMzcsMzQ2MzksMTEsNTkpLEZvPWdbMzZdKDM2LDEyNzE2LDEyMiwxKSxITj1mdW5jdGlvbihCKXtyZXR1cm4gRFsyNV0uY2FsbCh0aGlzLDcsQil9LHJ6PWdbMzZdKDQsMzQ2MzEsMTIwLDgpLFZlPWdbMzZdKDUsMzQ1MDksMTI0LDc5KSxHUz1nWzM2XSgzOCwzNDUwNCwxLDUpLEhNPWdbMzZdKDM3LDM0NDM1LDQxMjAsNSksZSQ9Z1szNl0oMzgsMjQ4MjMsNzMyLDQpLFBNPWZ1bmN0aW9uKEIseil7cmV0dXJuIEdbN10uY2FsbCh0aGlzLDMyLEIseil9LCRvPWdbMzZdKDM3LDM0MzExLDExMiw3MSkscUM9Z1szNl0oNCwzNDMwMSw0MywxMCksaV89Z1szNl0oMzYsMzQyOTgsCjEyMCwzKSx5ZT1nWzM2XSgzOCwzNDI4MCwzOCwxOCksWW89Z1szNl0oMzYsMjA5MjEsNTkxLDMpLGNNPWdbMzZdKDM4LDM0MjE1LDIxLDY1KSxTJD1nWzM2XSgzOCwxMjQ5OSwxMTQ2LDUpLG0kPWdbMzZdKDYsMzQyMDEsMTE0LDE0KSxsXz1nWzM2XSgzOCwzNDExOCwxMjcsODMpLEU2PWdbMzZdKDQsMzQwNTAsMjAsNyksWFE9Z1szNl0oMzYsMzM5ODIsNjcsNjgpLHVfPWdbMzZdKDQsMjA0LDEwMzUyLDEpLEMxPWdbMzZdKDM3LDMzOTYxLDIzNDcsMSksVjA9Z1szNl0oNiwzMzkyOCwzNDk0LDcpLGFHPWdbMzZdKDUsMzM4ODEsODcsMTApLHJwPWZ1bmN0aW9uKEIpe3JldHVybiBZWzVdLmNhbGwodGhpcywxLEIpfSxoaD1nWzM2XSg1LDMzODczLDg2OSw4KSxkej1nWzM2XSg0LDMzODQ5LDExMCwxNiksa289Z1szNl0oMzcsMzM3NzksODMsNzApLEV3PWdbMzZdKDM2LDMzNzUyLDE4LDI3KSxtRz1nWzM2XSg0LDMzNzQ5LDExMiwzKSxudz1nWzM2XSg1LDE3OCw3ODU2LDEpLHRoPWdbMzZdKDM3LAoxOTQ5OSwzMzYsNCksVTY9Z1szNl0oNCwzMzc0Myw4NSw2KSxNQz1nWzM2XSgzNywzMzYyNSwxMDIsMjApLHd6PWdbMzZdKDM4LDMzNTUyLDIyLDczKSxkUz1nWzM2XSgzNiwzMzUzMCwyNCwyMiksSUc9Z1szNl0oMzYsMzM1MTAsNjYsMTIpLEZRPWdbMzZdKDUsMzM0OTksOTEsMTEpLEJ5PWdbMzZdKDM2LDI0NjA0LDExOSwzMyksc289Z1szNl0oNiwzMzQzOSwxMiwxNCksVkE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gSFszMV0uY2FsbCh0aGlzLDcwLEIseil9LHpnPWdbMzZdKDQsMzMzNjUsNTcsNzQpLEs0PWdbMzZdKDQsMzE0LDIwMDM5LDIpLEpPPWdbMzZdKDM4LDMzMzUzLDE5LDEyKSxDND1nWzM2XSgzNywzMzI5OSw4MSw1NCksYiQ9Z1szNl0oMzcsMTMwNjUsMTE5LDEwKSxBTz1nWzM2XSg2LDMzMjk1LDEyNiw0KSx2eT1nWzM2XSgzOCwzMzE5NCw2NCwyMSksVGc9Z1szNl0oNiwzMzE4NCw4NSwxMCksam09Z1szNl0oMzcsMjU0MTgsNjksMTQpLHA0PWdbMzZdKDM4LDMzMTEyLDc0LAo3MiksSHQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtyZXR1cm4gWVs0MF0uY2FsbCh0aGlzLDIwLEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil9LFFZPWdbMzZdKDM4LDMzMDM2LDEwOCw3NiksbjQ9Z1szNl0oMzgsMzMwMzAsNDIsNiksWl89Z1szNl0oNiwzMzAxNiw4MywxNCksYkY9ZnVuY3Rpb24oQil7cmV0dXJuIFJbNDNdLmNhbGwodGhpcyw4MCxCKX0sRmg9Z1szNl0oNCwzMjk3OCw1Niw1KSxXeT1nWzM2XSgzNiwzMjk2Miw0MiwxNiksZ0w9Z1szNl0oNiwyNjQ5NSwxNzM2LDIpLHJhPWdbMzZdKDYsMjg3OTMsMzQ1LDQpLE5CPWdbMzZdKDM3LDMyOTQ4LDE0NjEsOSksQ3I9Z1szNl0oNiwzMjkzMiw4LDIpLEZBPWZ1bmN0aW9uKEIpe3JldHVybiB5WzE0XS5jYWxsKHRoaXMsNDQsQil9LE9vPWdbMzZdKDM4LDMyODkxLDExNyw0MSkseEc9Z1szNl0oMzgsMzI4NjEsNzcsMyksRF89Z1szNl0oNSwzMjc4OCwyOCwzMCksZjQ9Z1szNl0oMzcsMjY0ODMsCjYxNSwyKSxvdj1nWzM2XSgzNywzMjczNCwxMjEsMTApLEw0PWdbMzZdKDYsMzI3MzksNjYzLDUpLFJ2PWdbMzZdKDQsMTM3NTksMjg5NiwzKSxyTD1nWzM2XSgzNiwzMjU2MiwzMiw3MiksSGo9Z1szNl0oMzcsMzI1NDAsNSwyMiksVlk9Z1szNl0oNiwzMjQ5MywyOSw0NyksR2c9Z1szNl0oNiw3MjkwLDc1ODIsMiksSHk9Z1szNl0oMzgsMzI0ODIsMTE2LDQpLFlKPWdbMzZdKDM4LDMyNDI2LDc0LDcpLFhyPWdbMzZdKDM2LDMyNDA5LDIwLDE3KSxlbT1nWzM2XSgzOCwzMjM5OCw0NCwxMSksT209ZnVuY3Rpb24oQil7cmV0dXJuIEhbMzFdLmNhbGwodGhpcyw2LEIpfSxQeT1nWzM2XSg0LDE3ODUwLDE5LDEwKSxVMz1nWzM2XSg2LDMyMzU5LDEyMSwzOSksJEc9Z1szNl0oNSwzMjI5Miw1MSw2NykscUI9Z1szNl0oMzgsMzIyODQsMjA4Myw4KSxpJD1nWzM2XSg0LDMyMTkyLDU0LDY3KSx5WT1nWzM2XSgzNiwzMjE4NywxMTcsNSksR2g9Z1szNl0oMzYsMzIxODQsMTExLDMpLExLPWdbMzZdKDUsCjMxOTM2LDM1Nyw0KSxNSz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gWVsyMF0uY2FsbCh0aGlzLDgsQix6LEssSixDLGIsQSx2LHAsUSl9LFlHPWdbMzZdKDYsMzIwNzgsNTgsNjgpLGN5PXtVcDozOCxEb3duOjQwLExlZnQ6MzcsUmlnaHQ6MzksRW50ZXI6MTMsRjE6MTEyLEYyOjExMyxGMzoxMTQsRjQ6MTE1LEY1OjExNixGNjoxMTcsRjc6MTE4LEY4OjExOSxGOToxMjAsRjEwOjEyMSxGMTE6MTIyLEYxMjoxMjMsIlUrMDA3RiI6NDYsSG9tZTozNixFbmQ6MzUsUGFnZVVwOjMzLFBhZ2VEb3duOjM0LEluc2VydDo0NX0sU209Z1szNl0oMzgsMzIwNzMsODksNCksbVU9Z1szNl0oMzYsMzIwMDQsNTQsNjkpLGwkPWdbMzZdKDM4LDMxOTc5LDMwOCw0KSxqRT1nWzM2XSg0LDMxOTYzLDgsMTMpLHBiPWdbMzZdKDYsMzE5MzIsNjIsMzEpLEVvPWdbMzZdKDM2LDMxOTAzLDkzLDI5KSxYbD1nWzM2XSg2LDMxNzg5LDM0LDE1KSxZUD1nWzM2XSg1LDMxNzU1LDQ2ODksMjMpLAp1JD1nWzM2XSgzOCwzMTY5MiwxMjIsMTcpLGF2PWdbMzZdKDM3LDMxNjc3LDQsMTUpLGhPPWdbMzZdKDQsMTExLDIxMTksMSksZEw9Z1szNl0oNiwzMTYxMSw0OSw2Niksa0c9Z1szNl0oMzYsMzE1NDAsNDEsNzEpLHRPPWdbMzZdKDM2LDE3MTU2LDEyNSwzMCksVW89Z1szNl0oMzYsMzE1MzEsMSw5KSx0eD1mdW5jdGlvbihCKXtyZXR1cm4geVs2XS5jYWxsKHRoaXMsMSxCKX0sTlo9Z1szNl0oMzYsMzE1MTEsMTAwLDIwKSxZRj1nWzM2XSgzNyw1NjM4LDIwNzksMSksTUI9Z1szNl0oNCwzMTQ5NCwyMSwxNyksd0w9Z1szNl0oMzcsMzEzODQsOTYsMiksQTg9Z1szNl0oNiwzMTM4MywxNjYsMSksSXY9Z1szNl0oNCwzMTM2OSwxMjUsMTIpLEZsPWdbMzZdKDQsMzEzNjQsNzAsNSksQkE9Z1szNl0oMzYsMzEyOTYsMzYsNjgpLHNuPWdbMzZdKDUsMzEyODgsNDUsOCksejQ9Z1szNl0oMzgsMzEyMjUsMjQsNjMpLEtjPWdbMzZdKDM4LDMxMTk1LDEwNCwzMCksSkg9Z1szNl0oNiwzMTE5MSwKMTEsNCksQ2M9Z1szNl0oNCwzMTEzNywxMDMsOSksYno9Z1szNl0oMzYsMzExMjQsMTI0LDEzKSxBSD1nWzM2XSg1LDMxMDQ3LDUzLDc3KSxySj1nWzM2XSg0LDMxMDM3LDM5LDEwKSx5Tz1nWzM2XSg1LDMwODkzLDg3LDQxKSx2QT1nWzM2XSg1LDMwODMyLDEwLDkpLFQ0PWdbMzZdKDM2LDMwODI4LDIwLDQpLGFDPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTldLmNhbGwodGhpcywyKX0sajg9Z1szNl0oMzcsMTAwLDExNDAsMSkscGM9Z1szNl0oMzgsMzA4MjAsNzAsOCksUUs9Z1szNl0oNSwzMDgxNCw2Miw2KSxuYz1nWzM2XSgzNywzMDczOSw3Nyw3NSksWlU9Z1szNl0oNCwzMDYwNywzNyw2MCksV0E9Z1szNl0oNSwyMjg0NCw5NSw2NyksRmM9Z1szNl0oNiwzMDYwMSw4MCw2KSxnZT1nWzM2XSgzOCwzMDUwMiw5NSw2NiksTlk9Z1szNl0oMzgsMzA0MjMsMiw1MCksT249Z1szNl0oNiwzMDQxNSw1Niw4KSx4ej1nWzM2XSg2LDI3NzI2LDEwMSw3NyksRFU9Z1szNl0oMzcsMzAzOTQsMTE5LAoyMSkscFU9Z1szNl0oNSwzMDM5MSw1OTEsMyksZmM9Z1szNl0oMzgsMzAzNjAsNjE4LDUpLG9JPWdbMzZdKDUsMTc0ODMsMTAxNSw0KSxMYz1nWzM2XSg0LDMwMzM4LDYyLDE2KSxSST1nWzM2XSg1LDMwMzE1LDY1LDIzKSxyZT1nWzM2XSg1LDMwMTI5LDIyLDcpLFZLPWdbMzZdKDUsMzAwODcsMTAyLDQyKSxHND1nWzM2XSg0LDMwMDc5LDE4ODQsOCksSEE9Z1szNl0oMzgsMTA0NSwxMDYsMTEpLFNXPWdbMzZdKDUsMzAwNTcsMzEsMyksSFQ9Z1szNl0oMzYsMzAwMzksNzQsMTgpLER4PWZ1bmN0aW9uKEIpe3JldHVybiBrWzI1XS5jYWxsKHRoaXMsMyxCKX0sZTg9Z1szNl0oNCwzMDAzMiw2OSw0KSxHaj1mdW5jdGlvbigpe3JldHVybiBIWzQ1XS5jYWxsKHRoaXMsMjUpfSxQQT1nWzM2XSgzNiwyOTk1Myw5Niw3OSksJHo9Z1szNl0oNCwyOTk0MSw5NSwxMikscVk9Z1szNl0oMzgsMjk5MzgsMzIsMyksaXo9Z1szNl0oNCwxNjgsNzAwOSwxKSx5Sz1nWzM2XSgzNywyOTkzNCwzNzIsNCksClR1PS9idXl8cGF5fHBsYWNlfG9yZGVyfGRvbmF0ZXxwdXJjaGFzZS9pLFF4PWdbMzZdKDM2LDI5OTI3LDEwOCwzKSxZej1nWzM2XSgzNiwyOTkyMiwxNSw1KSxjQT1nWzM2XSgzNywyOTg2Niw3LDE0KSxTOD1nWzM2XSgzOCwyOTgzOSw2LDE2KSxtaj1nWzM2XSg2LDI5ODI4LDEwOCwxMSksbHo9Z1szNl0oNiwyOTgxOCwzMiwxMCksZXg9Z1szNl0oNCwyMDcxMiwxMTM2MCwyKSxaVj1mdW5jdGlvbihCKXtyZXR1cm4gbVs1XS5jYWxsKHRoaXMsMSxCKX0sbXE9Z1szNl0oNSwyOTc5OSw3NSwxOSksU3g9ZnVuY3Rpb24oQil7cmV0dXJuIFlbMTJdLmNhbGwodGhpcyw3LEIpfSxPcD1nWzM2XSg0LDI5NzcxLDEwOSwyOCksRW49Z1szNl0oMzcsMjk3NjEsOTcsMTApLFhlPWdbMzZdKDUsMjk3NTgsNDYsMyksdXo9ZnVuY3Rpb24oQix6LEspe3JldHVybiBHWzQxXS5jYWxsKHRoaXMsMzUsQix6LEspfSxTaD1nWzM2XSgzNiwyOTcxNSw3MSw0MyksYUk9Z1szNl0oMzgsMjk2NDUsMyw3MCksdlQ9CmdbMzZdKDUsMjk2MDMsNjQsNDIpLGhIPWdbMzZdKDQsMjQ3MzQsNzQsMzkpLGRlPWdbMzZdKDM3LDI5NTkzLDIyLDEwKSxSVj1mdW5jdGlvbihCLHope3JldHVybiBlWzM4XS5jYWxsKHRoaXMsMixCLHopfSxrej1nWzM2XSgzNywyOTU4MywxNywxMCksdEg9Z1szNl0oNSwyOTUxMyw4OSw3MCksT3k9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIERbM10uY2FsbCh0aGlzLDE5LEIseixLLEopfSxVbj1nWzM2XSg2LDI5NTAzLDgsMTApLFY4PWZ1bmN0aW9uKEIpe3JldHVybiBnWzNdLmNhbGwodGhpcyw3MixCKX0sTVk9Z1szNl0oNSwyOTQzMywxMDYsNzApLHdlPWdbMzZdKDM3LDI5NDI2LDgxLDcpLElJPWdbMzZdKDM3LDI5NDA2LDE2LDIwKSxGZT1nWzM2XSgzNywyOTQwMiw3Miw0KSxCUT1nWzM2XSg0LDIxMjc0LDQ0MjEsNyksc0k9Z1szNl0oMzcsMjkzOTYsNjIsMyksV249Z1szNl0oMzYsMjkzNTksOTMsMzcpLHpVPWdbMzZdKDM2LDI2MDEsOTgsMzUpLEs3PWdbMzZdKDM4LDI5MzU4LAo1NywxKSxKdz1nWzM2XSgzNiwyOTI5MCwxMSw2OCksQzc9Z1szNl0oMzYsMjkyODcsMTIxLDMpLGJhPWdbMzZdKDM2LDI5Mjc5LDQ3LDgpLEF3PWdbMzZdKDQsMjkyNjMsNTQwLDE2KSx2UT1nWzM2XSg2LDI5MTM5LDcyLDgzKSxUVT1nWzM2XSg1LDk3OTYsODY0MywyKSxqdj1nWzM2XSgzNywyOTEzNSw4Nyw0KSxwNz1nWzM2XSgzOCwyOTEzMCw4MCw1KSxRdD1nWzM2XSgzNyw3MzM0LDY5LDI3KSxQRj1nWzM2XSgzNywyOTEyNiwxMTksNCksbjc9Z1szNl0oMzgsMjkxMjIsMTE1LDQpLFp3PWdbMzZdKDM2LDI5MTAwLDYzLDIyKSxXUT1nWzM2XSg2LDM4OTMsNTQsMTQpLGdNPWdbMzZdKDQsMjkwOTYsMjksNCksZEE9Z1szNl0oNiwxOTA3Niw0NDcyLDQpLE5vPWdbMzZdKDM2LDI5MDgxLDkxLDE1KSxPST1nWzM2XSgzOCwyOTAxMyw4NywyNiksZXU9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDZdLmNhbGwodGhpcyw4OCxCKX0seDU9Z1szNl0oNiwyOTAwOCw0Niw1KSxqQz1nWzM2XSg2LDU2MjYsCjg3Miw2KSxEdz1nWzM2XSgzNywyODk5OCw0LDIpLHhQPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMzldLmNhbGwodGhpcywzKX0sZjc9Z1szNl0oNiwyODk4Myw0MSwxNSksb2U9Z1szNl0oNCwyODkzNiw0OCwyOSksTDc9Z1szNl0oMzYsMjg5MzIsMCw0KSxSZT1nWzM2XSgzNywyODkyNCw1Nyw4KSwkTT1mdW5jdGlvbihCLHope3JldHVybiBtWzI5XS5jYWxsKHRoaXMsMTAsQix6KX0sck09Z1szNl0oMzgsMjg3ODcsMjEsNCksVnQ9Z1szNl0oNCwyODc1OSwxNCw4KSxHVT1nWzM2XSg0LDI4NzQ0LDU3LDE1KSxIUT1nWzM2XSgzNywyODY3MCwxMSw3NCksQVQ9Z1szNl0oMzYsMjg2MjUsNTIsMTIpLGV2PWdbMzZdKDYsMjg2MDQsMTE0LDEzKSxQUT1nWzM2XSg2LDE3MjkxLDE4MTgsNiksJDU9Z1szNl0oNSwyODU5Myw3MTIsMTEpLE5yPWdbMzZdKDYsMjg1NzMsMTgsMyksRHE9Z1szNl0oNCwyODQ5NywzNTY5LDExKSxxbz1nWzM2XSgzOCwyODQ0OSwxMDksMTApLGlhPWdbMzZdKDQsMjgzNDgsCjIwLDc1KSx5dD1nWzM2XSgzOCwyMTI2MywzMzMzLDIpLFk1PWdbMzZdKDYsMjgyNTksNzIsNSksc3M9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1s3XS5jYWxsKHRoaXMsNDQsQix6KX0sY1E9Z1szNl0oNCwyODE5OSwzLDMpLFN2PWdbMzZdKDQsMjgxOTAsMzksOSksbU89Z1szNl0oNSwyODE4Niw3NSw0KSxuVT1mdW5jdGlvbihCKXtyZXR1cm4gT1s4XS5jYWxsKHRoaXMsMzIsQil9LGxhPWdbMzZdKDUsMjgxNzEsNjcsMTUpLEVJPWdbMzZdKDM4LDI4MTY4LDE1LDMpLE5HPWdbMzZdKDM3LDI4MTIwLDYwLDE4KSxYZD1nWzM2XSg1LDI4MTE3LDgxLDMpLHVhPWdbMzZdKDM3LDI3OTkyLDEwLDYxKSxadT1mdW5jdGlvbihCKXtyZXR1cm4gSFsyM10uY2FsbCh0aGlzLDQ5LEIpfSxkRT1nWzM2XSg2LDU1NjMsNjM5OSw1KSxhZT1nWzM2XSg2LDI1MTUxLDM4NTksMiksaHc9Z1szNl0oNSwyNzk1Nyw4MDIsNCksZE09ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDFdLmNhbGwodGhpcywyLEIpfSxrNT0KZ1szNl0oMzgsMjc5MzYsMTA4LDExKSx0dz1nWzM2XSg1LDI1NDk3LDExOSw0OSksVUk9Z1szNl0oNCwyNzgyMywzMyw3MSksTW89Z1szNl0oMzgsMjc4MjEsMTMsMiksY0Y9Z1szNl0oNiwxMjIyNywxMTksMTUpLFpXPWdbMzZdKDM4LDE5NTgwLDkwLDI1KSx3TT1nWzM2XSgzNiwyNzgxMCw4MSwxMSksSWU9Z1szNl0oMzgsMjc4MDMsNTksNyksYW49Z1szNl0oMzgsMjc3ODUsNjA5MCw3KSxGZD1nWzM2XSg1LDI3NzIzLDI1LDMpLEJDPWdbMzZdKDM4LDI3NzIwLDg5LDMpLHNVPWdbMzZdKDM2LDI3NjE2LDUyNDksMyksZU09Z1szNl0oNiwyNzU0MSw0MzM4LDUpLHpfPWdbMzZdKDYsMjc0OTEsOTMsOCksS089Z1szNl0oNSwxODU4NCw1NDEsNCksWk09Z1szNl0oMzYsMjU1MywwLDI2KSxKTj1nWzM2XSgzNiwyNzQ2MSwzNSwxOCksejI9Z1szNl0oNiwyNzQ1NSwxMjEsNiksQ089Z1szNl0oNCwyNzQ0OCw0MSw3KSxiZz1nWzM2XSg2LDEwOCwxODAxLDEpLEFOPWdbMzZdKDM3LDI3NDM0LAo3OCwxNCksdkM9Z1szNl0oNiwyNzQzMCwyMCw0KSxNUj1nWzM2XSg2LDI3Mzk1LDEyNSwzNSksJFc9ZnVuY3Rpb24oQix6LEspe3JldHVybiBPWzE0XS5jYWxsKHRoaXMsMjUsQixLLHopfSxoTT0vWyNcP0BdL2csVF89Z1szNl0oNCwyNzM4MCwzMSwxNSksal89e30scE89Z1szNl0oNCwyNzI4Myw1Nyw2NiksUVc9Z1szNl0oMzcsMjcyNzMsMzAsMTApLG5PPWdbMzZdKDM2LDI3MjYzLDEwNCwxMCksQjBxPWdbMzZdKDUsMjcyNDcsMzIsOCksc1ozPWdbMzZdKDM4LDI3MTc2LDgsNzEpLHp4bD1nWzM2XSgzNywyNjUxMiwzNDE0LDIpLHg0PWdbMzZdKDUsMjcxNzAsMTMsNiksS2xZPWdbMzZdKDYsMjcxNTksNiwxMSksT3g9Z1szNl0oNiwyNzExNyw2OSw1KSxKWTg9Z1szNl0oNiwyNzA0Myw3MSw3NCksT3Y9ZnVuY3Rpb24oQil7cmV0dXJuIG1bMTBdLmNhbGwodGhpcywyMixCKX0sQzMwPWdbMzZdKDYsMjcwMzQsNiw5KSxiRFo9Z1szNl0oNiwyNzAyNCw0MywxMCksWmM9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMl0uY2FsbCh0aGlzLAo0LEIpfSxBWTM9Z1szNl0oNSwyNjk0NSwxMTksNzkpLHY4OD1nWzM2XSg2LDI2OTM0LDM5LDExKSxUME49Z1szNl0oNCwyNjg3MCw3LDY0KSxqWnE9Z1szNl0oNiwyNjcxMywxMTMsNjUpLHloPS9bXlx7XSpceyhbXHNcU10qKVx9JC8scU89ZnVuY3Rpb24oQix6LEspe3JldHVybiBPWzI1XS5jYWxsKHRoaXMsNDEsQix6LEspfSxMZj1mdW5jdGlvbigpe3JldHVybiB5WzQxXS5jYWxsKHRoaXMsOSl9LHA4dz1nWzM2XSg1LDI2NjM4LDExNSw3NSksUVpoPWdbMzZdKDQsMjY2MzAsODEsOCksbjg4PWdbMzZdKDM4LDI2NjI3LDExNSwzKSxaRHg9Z1szNl0oNiwyNjYyMiw2NCw1KSxJOD1nWzM2XSgzOCwyNjQ4MSw0NzAsMSksV2xEPWdbMzZdKDM3LDI2NDY3LDU5LDkpLE1wPWZ1bmN0aW9uKEIpe3JldHVybiBHWzMzXS5jYWxsKHRoaXMsMTQsQil9LGc4Tj1nWzM2XSg0LDI2NDU2LDk4LDExKSxOMGw9Z1szNl0oNCwyNjQ1NCwxMTcsMiksT0QzPWdbMzZdKDQsMjY0NDgsMTcsNikseE1OPWdbMzZdKDM4LAoxMzcsNDI4OSwxKSxETTA9Z1szNl0oMzYsMjY0MTEsMTA5LDMpLGZHbD1nWzM2XSgzOCwyNjMyOSw5Niw3MSksV0M9Z1szNl0oMzYsNTY1MSwzMzA5LDMpLGxyPWdbMzZdKDM4LDI2MzE3LDI5LDEyKSxvODM9Z1szNl0oNiwyNjI4OCwxOCwyOSksTGw4PWdbMzZdKDM2LDYwMCwwLDYpLE9IPWZ1bmN0aW9uKEIpe3JldHVybiBHWzEwXS5jYWxsKHRoaXMsMzQsQil9LFJ4cT1nWzM2XSg1LDI2Mjc5LDExNCw5KSxyWTA9Z1szNl0oNCwyNjI3NCw0Myw1KSxWTjg9Z1szNl0oNiwxMjcyNiw5NTEsMiksRzhoPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBtWzIxXS5jYWxsKHRoaXMsNCxCLHosSyxKKX0sSERoPWdbMzZdKDM3LDI2MjY3LDEyMCw3KSxleDM9Z1szNl0oNCwyNjI2MSw3OSw2KSxQM0c9Z1szNl0oNCwyNjI1OCw2NCwzKSwkTTg9Z1szNl0oNCwxMDgzMiw1NTU0LDMpLFh5PWZ1bmN0aW9uKEIpe3JldHVybiBHWzQ2XS5jYWxsKHRoaXMsMTMsQil9LHF3RD1nWzM2XSg1LDI2MjA0LDc5LAo0KSxpRGw9Z1szNl0oNCwyNjEwNSw0MDI4LDMpLHlZRz1nWzM2XSg2LDI2MDA1LDEwOSw0MyksWXdNPWdbMzZdKDUsMTM3NTksMjg5Niw3KSxjWU09Z1szNl0oMzcsMjU5NDEsNjYsNjQpLEFFPWdbMzZdKDM4LDI1OTI4LDMwLDEwKSxTd2g9Z1szNl0oMzcsMjU4NTQsNzksNzQpLG1NWT1nWzM2XSg1LDI1ODE2LDEyMCw0KSxnMj1nWzM2XSgzNiwzMzM4LDQ0MzIsNCksbEd3PWdbMzZdKDM3LDg3LDQ5LDI2NCksRTg4PWdbMzZdKDQsMjU3NzQsNzEsOSksWDg4PWdbMzZdKDM4LDI1NzQ4LDQ5LDI2KSx1aGg9Z1szNl0oNCwyNTY3NywxMTEsNzEpLGFHRz1nWzM2XSgzNiwyNTY2OSwxOCw4KSxoeHc9Z1szNl0oMzgsMjU2MDEsNjAsNjgpLFhmPWdbMzZdKDYsMjU1NDYsMTAxLDEwKSxkTUQ9Z1szNl0oMzcsMjU1MjcsMzEzMyw4KSxrOE09Z1szNl0oMzgsMjU0OTQsMjUsMyksdE5xPWdbMzZdKDM2LDI1NDY5LDUyLDI1KSxVTXc9Z1szNl0oNCwxNzE4OCw1MywxOSksTU5NPWdbMzZdKDM3LDIzNzY2LAo2NDQsNyksdzhaPWdbMzZdKDUsMjU0NDEsNTIsMTcpLElHdz1nWzM2XSg1LDI1NDM4LDEwOCwzKSxGbDM9Z1szNl0oMzYsMjUzODcsNTUsMzEpLEI0Tj1nWzM2XSg1LDI1Mzg0LDY2LDMpLHNwTj1nWzM2XSg1LDQ5MzksNzQsOCksTm49Z1szNl0oMzYsNjQ1MCwzOTQsNyksek93PWdbMzZdKDYsMzAzOCwyMzQ1LDIpLEtIbD1nWzM2XSgzNywyNTA4Nyw4NywyNSksSjNZPWdbMzZdKDM4LDI1MDY1LDgsMjIpLENMTT1nWzM2XSg0LDI1MDUyLDk4LDEzKSxiSzg9Z1szNl0oMzcsMjUwMDQsNCw0OCksQTNxPWdbMzZdKDM2LDI0OTYwLDEwNiwyNCksV0U9Z1szNl0oNCwyNDk1NSw2Niw0KSx2ZkQ9Z1szNl0oNiwyNDg5OSwxMjIsMyksVDQ4PWdbMzZdKDM3LDI0ODgyLDgyLDE3KSxPVT1nWzM2XSg1LDI0ODcyLDE5LDEwKSxqcFk9Z1szNl0oNSwyNDg2NSw5NSw3KSxwb009Z1szNl0oNiwyODA0LDI0NTksMiksUXBOPWdbMzZdKDM4LDI0ODU0LDUsMTEpLG5mMz1nWzM2XSgzNywyNDgzMSwxMDAsCjIzKSxaSzg9Z1szNl0oNCwyNDgyNyw3MCw0KSxXSGw9Z1szNl0oMzYsMjQ4MTcsMTA1LDEwKSxnZjg9Z1szNl0oMzcsMjQ4MTQsODIsMyksZ0E9Z1szNl0oMzYsMjQ3MzQsNzQsNyksTjRoPWdbMzZdKDM3LDI0NzA4LDY1LDI2KSx4RD1nWzM2XSgzNiwyNDY5MCw3OSwxOCksT0tEPWdbMzZdKDM3LDI0NjM3LDkwLDI0KSx4bTg9Z1szNl0oNSwyNDYwNCwxMTksNSksRG1aPWdbMzZdKDUsMjQ1OTAsNjYsMTQpLGZWeD1nWzM2XSg0LDI0NTYzLDMzLDQpLG9mbD1nWzM2XSg2LDI0NDkwLDE2LDczKSxMSDA9Z1szNl0oMzgsMjQ0MTcsMTI2LDczKSxST0c9Z1szNl0oNSwyNDQwMSwzMiwxNikscjM4PWdbMzZdKDM2LDI0Mzk0LDUwLDcpLFZZMz1nWzM2XSgzNiwyNDM4OCw1OCw2KSxIZD1mdW5jdGlvbihCLHope3JldHVybiBPWzEzXS5jYWxsKHRoaXMsMSxCLHopfSxSMj1nWzM2XSg0LDI0MzU4LDcsMzApLEdEOD1nWzM2XSg0LDE3NDczLDQ0LDE4KSxYbj1nWzM2XSg0LDM4NDEsMTE3LDUpLApIS1k9Z1szNl0oNCwyNDI5MiwxMTQsNjYpLERjPWdbMzZdKDUsMjQyODQsNTksOCksUGI9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1s0XS5jYWxsKHRoaXMsMTYsQix6KX0scHQ9ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDRdLmNhbGwodGhpcywxOSxCKX0sZk89Z1szNl0oNSwyNDEyMCwxNCw4KSxlTzA9Z1szNl0oNiwyNDAzNyw3OCw4MyksUEwwPWdbMzZdKDM4LDIzODUwLDExNSw4MCksJG1HPWdbMzZdKDYsMjM3ODUsOTAsNjUpLHFSMD1nWzM2XSgzNiwyMzc3OSwxOTYsNiksaUtOPWdbMzZdKDM4LDIzNzYxLDEwOCwxMikseTMwPWdbMzZdKDYsMjM3NTgsMjgsMyksWVJ3PWdbMzZdKDQsMjM3NTUsMjMsMyksYzNoPWdbMzZdKDM2LDIzNzQ2LDExMiw5KSxTUkQ9Z1szNl0oNCwyMzczNywyMCw5KSxtbU49ZnVuY3Rpb24oQil7cmV0dXJuIERbMTJdLmNhbGwodGhpcywxMCxCKX0sYnE9Z1szNl0oNCwxMDA2MCwxODU5LDEpLG9XPWdbMzZdKDM4LDIzNjg5LDUwLDEwKSxsVnc9Z1szNl0oNCwKMjM2NDksODAsOCksV2I9ZnVuY3Rpb24oKXtyZXR1cm4gT1s0XS5jYWxsKHRoaXMsMTYpfSxFZnc9Z1szNl0oNiwyMzU5MCw4Myw1OSksWG84PS8jL2csdTI4PWdbMzZdKDM3LDIzNTQxLDQxLDQ5KSxOaD1nWzM2XSgzNiwzODQ3LDczOCwyKSxhVng9Z1szNl0oMzcsMjM0OTgsNzcsOSksaE9EPWdbMzZdKDM2LDIzNDg5LDIxLDkpLGRtaD1nWzM2XSg0LDIzNDg1LDEwNSw0KSxxaT1nWzM2XSg2LDE4MjI1LDU5LDI1KSxrRE09Z1szNl0oNSwyMzQwOCwzNywzNiksdFlZPWdbMzZdKDM3LDIzMzk5LDU5LDkpLFVtMz1nWzM2XSgzNywyMzM5MSwyOCw4KSxneT1nWzM2XSgzOCwxMDAyNiwxMjQsNikseFc9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1szN10uY2FsbCh0aGlzLDQsQix6KX0sRE49ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzJdLmNhbGwodGhpcywxOSxCKX0sTVl4PWdbMzZdKDUsMjMzODIsMzIsNCksd28wPWdbMzZdKDM4LDIzMzc4LDI2LDQpLElWdz1nWzM2XSg2LDIzMzc1LDEyMCwzKSwKRkh3PWdbMzZdKDM3LDIzMzQ2LDg4LDI5KSxCRTg9Z1szNl0oMzYsMjMzMzcsNzEsNiksc0IzPWdbMzZdKDQsMjMyNjUsMTAwLDY2KSxxVD1nWzM2XSg1LDIzMjQ0LDQ1MjcsNCksUEg9ZnVuY3Rpb24oQil7cmV0dXJuIERbNDldLmNhbGwodGhpcyw1LEIpfSx6M0Q9Z1szNl0oNCwyMzEyOSw5NSw3MSksc009MTkyMyx6bz1mdW5jdGlvbigpe3ZhciBCPVtudWxsLCJhcHBseSIsMF07c2V0VGltZW91dFtCWzFdXShCWzBdLGVbMzNdKDMsRzJbQlsxXV0oQlsyXSxhcmd1bWVudHMpKSl9LEdKPWdbMzZdKDM4LDYxNzMsMTYzNCw3KSxLM049Z1szNl0oMzYsMjMwNDIsMjk0MywxMyksTE89Z1szNl0oNSwxMzQ3NCw0ODQ5LDUpLEokTj1nWzM2XSgzOCwyMjk5NCwyOCwxNyksQ04zPWdbMzZdKDM2LDIyOTkxLDM1LDMpLGJoRz1nWzM2XSg1LDIyOTI0LDU4LDY3KSxBJE09Z1szNl0oNCwyMjkyMSw4NiwzKSxQZT1nWzM2XSg1LDIyOTExLDI1LDEwKSwkTz1nWzM2XSgzNywyMjg5MCw0NzQwLDEwKSwKdmp3PWdbMzZdKDM3LDIyNzM5LDIsNzEpLFRFOD1nWzM2XSg1LDE1MTI0LDI4NTAsNiksakJZPWdbMzZdKDM4LDIyNzA3LDcxLDMyKSxwcUQ9Z1szNl0oNSwyMDk3NywxNCwxNCksUUIwPWdbMzZdKDQsMjI2MjMsNDcsNjIpLFJXPWdbMzZdKDUsMjI2MTgsOTksNSkscjI9Z1szNl0oNSwyMjU5NSw1MywyMyksbmpHPWdbMzZdKDM4LDEzNTk5LDE4LDc5KSxaaEQ9Z1szNl0oMzcsMjI1OTAsOTAsMyksZ3I9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMjVdLmNhbGwodGhpcywxNixCKX0sVzM4PWdbMzZdKDYsMjI1ODIsMTA4LDgpLGdqRz1nWzM2XSgzOCwyMDc0NCw3MzksNSksTkUwPWdbMzZdKDM2LDIyNTc0LDgxLDgpLE9oMD1nWzM2XSg1LDIyNTY3LDI5LDcpLHhVcT1nWzM2XSg2LDIyNDIzLDI1LDc0KSxEVVk9Z1szNl0oMzgsMjI0MDUsNjQsMTgpLGZscT1nWzM2XSg2LDIyMzUxLDIsNiksc1I9Z1szNl0oNCwxMTczLDEwNywxNiksb2p3PWdbMzZdKDM4LDIyMjg1LDEyMCw2NiksTDMzPWdbMzZdKDM3LAoyMjI3Myw0NywxMiksUjM4PWdbMzZdKDUsMjIxOTgsMTIyLDY5KSxyJDM9Z1szNl0oNSwyMjA2Nyw0OCwyNyksVlRaPWdbMzZdKDYsMjIwMTMsODUsMTQpLEdKTT1nWzM2XSgzOCwyMTk0MywxMDEsNzApLEhodz1nWzM2XSg2LDIxOTM3LDMzLDYpLGUzMD1nWzM2XSg2LDIxOTI2LDY3LDExKSxQTk49Z1szNl0oNCwyMTcwOCw0LDUzKSwkVXg9Z1szNl0oMzYsMjE2MjAsOTIsNDUpLEdFPWdbMzZdKDYsMjE2MTcsNzMsMykscThaPWdbMzZdKDUsMjE2MDUsODcsMTIpLGloWj1nWzM2XSg0LDIxNjAyLDM3LDMpLHkkcT1nWzM2XSgzNywyMTU5NCwxMTIsOCksWTg4PWdbMzZdKDM3LDIxNTkxLDg0LDMpLGVZPWZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMzhdLmNhbGwodGhpcywxMSxCLHopfSxjJEQ9Z1szNl0oNCwyMTUxOSwxMTYsNzIpLFM4TT1nWzM2XSg0LDIxNTA4LDQsMTEpLE5rPWdbMzZdKDM3LDIxNDg1LDk5LDEzKSxtVXc9Z1szNl0oMzcsMjE0NTgsMTMsMjcpLHljPWdbMzZdKDM4LDIxNDQ0LAo3MCwxNCksbGwwPWdbMzZdKDQsMjE0NDEsMTAyLDMpLEVqOD1nWzM2XSg0LDIxNDMzLDYxLDgpLFhxOD1nWzM2XSgzNywyMTM3Niw0NCw1NyksdXQ4PWdbMzZdKDM2LDE1MjQzLDExOTcsNiksbE09Z1szNl0oMzgsMjEyMjYsMiwyKSxhbDM9Z1szNl0oMzcsMjExNTcsNTAsNjkpLGgzcT1nWzM2XSgzOCwyMTA3NSw1Miw4MiksZFUwPWdbMzZdKDUsMjEwNjIsNjIsMTMpLGtKTT1nWzM2XSg0LDIxMDU5LDEyNywzKSxWVz1nWzM2XSg1LDE4MCw4MDA0LDEpLHFoPWdbMzZdKDQsMjA5ODMsNTIwLDMpLEdfPWZ1bmN0aW9uKEIpe3JldHVybiBZWzddLmNhbGwodGhpcywxOSxCKX0sdFR3PWdbMzZdKDYsMjA5NTAsNywxMyksVVU4PWdbMzZdKDQsMjA5MjgsMTEyLDIyKSxNVDM9Z1szNl0oNCwyMDkyNCwxMTQsNCksd3EzPWdbMzZdKDUsMjA5MDcsMTAyLDcpLElscT1nWzM2XSgzNiwyMDgzOCw1NCw2OSksSVY9Z1szNl0oMzYsMjA4MjgsNTIsMTApLEYzOD1nWzM2XSgzNywyMDgwMiw5NCwyNiksCkJkRD1nWzM2XSg2LDIwNzUwLDUzLDYpLHNmOD1nWzM2XSg2LDIwNzM4LDgyLDEyKSx4TD1mdW5jdGlvbihCKXtyZXR1cm4gUlsyM10uY2FsbCh0aGlzLDgyLEIpfSxUNT1nWzM2XSgzOCwyMDQ5NiwxMjAsNDApLEhDPWdbMzZdKDM2LDIwNDc4LDk4Miw2KSx6VWg9Z1szNl0oMzgsMTcwLDcxOTUsMiksS05EPWdbMzZdKDM2LDIwNDY4LDUxLDI4KSxlXz1nWzM2XSg2LDIwNDQ1LDUyODksNCksSlFHPWdbMzZdKDM3LDIwMzQzLDE3LDE1KSxQQz1nWzM2XSgzNywyMDIyNiw0Mzk5LDYpLENtTT1nWzM2XSg1LDIwMTQ2LDksNyksYlFNPWdbMzZdKDM3LDIwMDcwLDY4LDcyKSxBUVk9Z1szNl0oNiwyMDA2NiwxMTEsNCksJEQ9Z1szNl0oMzcsMjAwNTYsOTcsMTApLHZPOD1nWzM2XSg2LDIwMDEwLDk0LDYpLFRkcT1nWzM2XSgzNywyMDAwNywxMiwzKSxqZnc9Z1szNl0oNSwxOTk0MSwyMyw3KSxxbj1nWzM2XSgzNiw0MDM4LDUyMjUsNSkscGZaPWdbMzZdKDM4LDE5OTExLDcsOCksUWZHPWdbMzZdKDQsCjE5OTA5LDk0LDIpLG5PeD1nWzM2XSg1LDE5ODk4LDE3LDExKSx4WT1nWzM2XSg2LDE5ODc3LDUyNTgsMyksUkU9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMTVdLmNhbGwodGhpcywyNixCKX0sWlFEPWdbMzZdKDYsMTk4MjQsNTMsMSksV05OPWdbMzZdKDM3LDE5NzcxLDg4LDcpLGdPWj1nWzM2XSgzNywxOTY4OCw2OCwxMCksaWc9Z1szNl0oNiwxOTY4NSwxNCwzKSxlZj1nWzM2XSgzOCwxOTY2OCw3OCwxNyksTmRsPWdbMzZdKDM3LDE5NjE2LDExMzQsNyksT1FaPWdbMzZdKDYsMTkwOTAsNTk3MSw0KSxvaj1mdW5jdGlvbihCKXtyZXR1cm4gRFsyOF0uY2FsbCh0aGlzLDU5LEIpfSx4dU09Z1szNl0oMzcsMTk0OTUsNTMsOCksRHVoPWdbMzZdKDYsMTkzNzUsMTE2LDExKSxmZk49Z1szNl0oMzcsMTkzNTYsMTIyLDE5KSxvTzM9Z1szNl0oMzYsMTkzMDAsMTcsNTYpLExOWj1nWzM2XSg1LDE5MjI3LDQsNzMpLHlXPWdbMzZdKDQsMTkyMTUsNDQsMTIpLFJVWT1nWzM2XSgzNiwxOTIxMCw2NSwKNSksclFOPWdbMzZdKDQsMTkxMzUsNDIsNzUpLFJUPWdbMzZdKDUsMTkxMjEsNjYsMTQpLFZYOD1nWzM2XSg2LDE5MDMzLDExNyw4OCksWkE9ZnVuY3Rpb24oKXtyZXR1cm4gRFszOF0uY2FsbCh0aGlzLDQpfSxHbEQ9Z1szNl0oNCwxMTIsMjIyMiwxKSxIUXc9Z1szNl0oNiwxOTAyNSw3MSw4KSxlVU49Z1szNl0oMzcsMTcyMCw1MjAsNyksUG1OPWdbMzZdKDM3LDE4OTYzLDc0LDYyKSwkdWg9Z1szNl0oNiwxODkyMSwxNSw4KSxxT009Z1szNl0oMzYsMTg5MTcsMjQsNCksaVE4PWdbMzZdKDYsMTg5MTEsOTMsNikseVFHPWdbMzZdKDM3LDE4ODQ1LDg4LDY2KSxZTzM9Z1szNl0oMzYsMTg3NDUsMzAsMTAwKSxjUWg9Z1szNl0oMzcsMTg2NzMsMTYsNzIpLFhvPXt9LEVnPWdbMzZdKDM2LDE4NjY5LDU0LDQpLFNPOD1nWzM2XSgzOCw0ODk3LDk0MDcsMiksVjY9Z1szNl0oMzgsMTg2MTcsODIsMTEpLG11Wj1nWzM2XSg2LDE4NjAzLDE5Myw1KSx1Tz1PWzI4XSgzMixPWzI4XSg1NCxPWzI4XSg1MiwKT1syOF0oMzYsT1syOF0oNDgsNDIsNDUsNTMpLE9bMjhdKDM2LDMwLDI4LDU0KSksT1syOF0oMzUsT1syOF0oNTUsMjksMzEsMzIsMiw4LDE4KSwzNywzNiw0LDEyLDQyKSw0MCksT1syOF0oNDUsNDEsT1syOF0oMzksNDYsNDgsNTcsMiwxMiwyNCksNjIsMiw4LDI0KSksT1syOF0oMzQsNjgsNjksNzEsMiwzMiwtOTYpKSxORj1mdW5jdGlvbigpe3JldHVybiBnWzFdLmNhbGwodGhpcywxKX0sbGY4PWdbMzZdKDQsMTczMTQsNTUxLDIpLEVPaD1nWzM2XSg2LDE4NTgwLDEyNSw4KSxYZmw9Z1szNl0oNiwxODUxMSw2MSw2OSksd3k9Z1szNl0oMzcsMzYyNyw0MDk0LDIpLHVycT1nWzM2XSg2LDE4NTA2LDMwNiwzKSxZRD1nWzM2XSg2LDk3OTUsODU2MCw2KSxjQz1nWzM2XSgzNywxODQ1OSw3NSwxMiksYWZEPWdbMzZdKDYsMTgyNjMsNDEsNjApLGhVTT1nWzM2XSgzOCwxODI1OCwxMTgsNSksaVI9Z1szNl0oNCwxODIyNSw1OSwzMyksZHUzPWdbMzZdKDM2LDE4MTQ4LDU4LDc0KSxDbT1nWzM2XSgzOCwKMTgxMDQsNDAsNSksa2w4PWdbMzZdKDM4LDE4MDM5LDU2LDY1KSx0WE49Z1szNl0oNiwxODAyNywxMTUsMTIpLFV1aD1nWzM2XSg2LDE4MDAyLDEyNywyNSksTVhsPWdbMzZdKDUsMTc5MDMsMjEsMjMpLFM0PXt9LElmPWdbMzZdKDM2LDE3ODkxLDIxLDYpLHdmOD1nWzM2XSg0LDE3ODgyLDY2LDkpLElmTj1nWzM2XSg1LDI1NTMsMCw1KSxGTjM9Z1szNl0oNSwxNzc3OCwxMDIsNzIpLEJrdz1nWzM2XSgzNywxNzczMSw3MSw0Nyksc284PWdbMzZdKDM2LDE3NjQ4LDYsODMpLExTPWdbMzZdKDQsMTc2NDQsMTIzLDQpLFNfPWdbMzZdKDM2LDE3NjI1LDYxLDYpLFI5PWdbMzZdKDM3LDIwNCwxMDM1MiwyKSx6V0c9Z1szNl0oNSwxNzYyMSwxMjcsNCksS3paPWdbMzZdKDM2LDE3NjE2LDEyNCw1KSxKMFo9Z1szNl0oMzYsMTc1NzMsNzYsMTEpLENkcT1nWzM2XSg2LDE3NTY3LDg1LDYpLGJuOD1nWzM2XSgzNywxNzQ5OSwxMjIsNjgpLEEwcT1nWzM2XSg2LDE3NDczLDQ0LDkpLHZoOD1nWzM2XSg1LAoxNzM5OCw4MzAwLDEpLFZIPWdbMzZdKDQsMTcyNzEsNDUsMjYpLFRrdz1nWzM2XSg2LDE3MjQyLDM0LDI5KSxqb1k9Z1szNl0oNiwxNzIzOCw1OSw0KSxwRlk9Z1szNl0oNiwxNzE5NCw2ODAsNyksUW94PWdbMzZdKDYsMTcxODMsMjY5OCwzKSxtWj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gWVszNl0uY2FsbCh0aGlzLDQxLHosSixLLEIpfSxuaE49Z1szNl0oMzYsMTcwODMsMyw3MyksWm5NPWdbMzZdKDUsMTcwODAsMTI1LDMpLFd6OD1nWzM2XSgzOCwxNzAxMSwzLDY5KSxnaDg9Z1szNl0oMzgsMTY4MzUsODQsNzcpLHhBPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gT1s0NF0uY2FsbCh0aGlzLDEsQix6LEspfSxOa2w9Z1szNl0oMzYsMTI4MjksMjk1NywxMCksT25EPWdbMzZdKDM3LDEyNzYsNTIxNiw2KSx4MU49Z1szNl0oNCwxNjUxNCw3NSw1MCksRDFEPWdbMzZdKDM2LDE2NDUwLDg0LDgpLGZpMz1nWzM2XSgzNiwxNjQzMiwxNCwxOCksSVI9Z1szNl0oNSwxNjQzMSwzMTQ1LDEpLApUcT1nWzM2XSg0LDE2MzcwLDE4LDI5KSxvaDg9Z1szNl0oNSwxNjM2MSwxNyw0KSxMek09Z1szNl0oMzYsMTYyOTAsMTI3LDcxKSxmUj1nWzM2XSg1LDE2MjM1LDEwMSwyMCksUlcwPWdbMzZdKDM2LDE2MjMwLDQ3LDUpLGlWPWZ1bmN0aW9uKEIseixLLEope3JldHVybiB5WzI2XS5jYWxsKHRoaXMsMyxCLHosSyxKKX0scjA4PWdbMzZdKDM2LDE2MTUxLDUxLDc5KSxWNE09Z1szNl0oNSwxNjEyNCwyNSwyNyksR2hNPWdbMzZdKDM3LDE2MDQ5LDg5LDc1KSxIbjA9Z1szNl0oMzgsMTU5ODMsOTgsNjYpLE90PWdbMzZdKDM3LDE1OTIwLDUsMTQpLGxnPWdbMzZdKDQsMTU5MTAsNzAsMTApLGVXdz1nWzM2XSgzOCwxMDMsMTM2MywyKSxQZDg9Z1szNl0oMzYsMTU3MTEsMTI2LDcyKSwkMVo9Z1szNl0oMzgsMTU2MzUsNDMsNzYpLHExTj1nWzM2XSg0LDE1NjI0LDI3LDExKSxpbnc9Z1szNl0oNiwxNTU3MCw0MSw1NCksZDY9WzIsMyw2XSxCRj1nWzM2XSgzOCwxNTUyNSwyNiw0NSkseTBoPWdbMzZdKDUsCjE1NTIwLDQ1LDUpLFkxTj1nWzM2XSg2LDE1NDUxLDEwMCw2OSksYzA4PWdbMzZdKDM2LDE1Mjk5LDEyNCw2NCksUzF4PWdbMzZdKDUsMTUyODgsNjIsMTEpLG0xTj1nWzM2XSgzNywxNTIzMSw2NSwxMSksbGk4PWdbMzZdKDM3LDE1MjI0LDUwLDcpLEVoeD1nWzM2XSg2LDE1MjAxLDQwLDIzKSxaMT1nWzM2XSgzOCwxNTE1OCw0MCw0MyksWEZEPWdbMzZdKDUsMTUxNDYsNTEsMTIpLHVTRD1nWzM2XSg2LDE1MTM4LDUwLDgpLGFpeD1nWzM2XSg0LDE1MDMxLDMxLDY1KSxoVzg9Z1szNl0oNCwxNTAxMSw4NywyMCksZDE4PWdbMzZdKDUsMTQ5MzAsNzcsMTQpLGtobD1nWzM2XSg2LDE0OTEwLDcwLDIwKSx0NHg9Z1szNl0oNSwyNDMzLDk5LDUpLFUxTT1nWzM2XSgzNiwxNDg5NSw4NCwxNSksY3M9ZnVuY3Rpb24oKXtyZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LE00bD1nWzM2XSgzOCwxNDg3OCwxNywxNyksd0Y4PWdbMzZdKDM3LDE0Nzk0LDkzLDUpLElpOD1nWzM2XSg2LDE0NzE1LDE5LAo3OSksRnowPWdbMzZdKDQsMTQ2OTEsNTIsMjQpLEJfWj1nWzM2XSgzOCwxNDYyNCw5Miw2Nyksc3gwPWdbMzZdKDM4LDE0NTkyLDExLDYpLCRWPWdbMzZdKDM2LDE0NTg1LDI4OTAsNyksekE4PWdbMzZdKDUsMTQ1NDEsOTYsMTIpLEVVPWdbMzZdKDM2LDE0NDM3LDI4NzYsNiksS0w4PWdbMzZdKDM3LDY0NjIsMTY3Niw5KSxKZUc9Z1szNl0oMzcsMTQzOTYsMTYsMTApLENGOD1nWzM2XSg1LDE3MTUsNjIsNSksYmdNPWdbMzZdKDUsMTQzOTAsMTIxLDYpLEFlRD1nWzM2XSg2LDE0MzI0LDU0LDY2KSx2QXE9Z1szNl0oMzcsMTQyMTAsNTIsMzEpLFRfWj1nWzM2XSgzNiwxNDEyMSw4NSwzMSksanhsPWdbMzZdKDQsMTQwNDEsOTAsODApLHBEcT1nWzM2XSg1LDE3Miw3NDAzLDEpLFF4eD1nWzM2XSgzNywxMzc5OCw2LDM0KSxuQTM9Z1szNl0oMzgsMTM2NzgsNjksNSksdmM9Z1szNl0oNSwxMzU5Miw0Miw3KSxaZ3g9Z1szNl0oNiwxMzU4MSw1MCwxMSksWE09Z1szNl0oNCwxMzUzMyw0MDgyLAo2KSxXTDA9Z1szNl0oNiwxMzQyNyw4OSw2MyksRjM9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4gRFs0M10uY2FsbCh0aGlzLDUsQix6LEssSixDLGIsQSx2KX0sdWc9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVsyXS5jYWxsKHRoaXMsNyxCLHopfSxnQU09Z1szNl0oNSw4MjE5LDU2OTMsNSksTl9oPWdbMzZdKDQsMTM0MTcsMTA5LDEwKSxPZzg9Z1szNl0oNCwxMzQwNyw5NywxMCkseE5EPWdbMzZdKDM3LDEzMzk2LDYyLDExKSxMOT1nWzM2XSgzNywxMjE0OCwxNjEsNSksanI9Z1szNl0oMzcsMTMzODQsMTIzLDEyKSxETkc9Z1szNl0oMzcsMTMzODAsNTAsNCksZjZoPWdbMzZdKDUsMTMyNDksMTAyLDc2KSx1Sz1mdW5jdGlvbihCKXtyZXR1cm4gbVsyOV0uY2FsbCh0aGlzLDEyLEIpfSxtbz1nWzM2XSgzNywxMzEyMSw0NzE3LDE5KSxvQUQ9Z1szNl0oNiwxMzA2OCwzMzMsNyksTEw4PWdbMzZdKDYsMTMwNTksMzksNiksZFA9Z1szNl0oNSwxMzAyOSwxMTYsMzApLFlWPWZ1bmN0aW9uKEIpe3JldHVybiB5WzFdLmNhbGwodGhpcywKMzksQil9LFJBbD1nWzM2XSg1LDEyOTY5LDEyNCw2MCkscmVsPWdbMzZdKDUsMTI5MDQsNDMsNjUpLGFXPWdbMzZdKDYsMTI3NzEsMywyKSxpMj1nWzM2XSg1LDEyNzE2LDEyMiw1NSksVkM4PWdbMzZdKDM4LDEyNjk0LDIzLDE2KSxHeUQ9Z1szNl0oMzYsMTI2NDQsNzUsMzEpLEhnOD1nWzM2XSgzNywxMjYzOCw0NCw2KSxlQTg9Z1szNl0oMzgsMTI1MzAsMjEsMjMpLFBGaD1nWzM2XSgzOCwxMjU2Miw4MSw3NiksJE5xPWdbMzZdKDQsMTI1NTMsMjEsOSksaE49Z1szNl0oNiw5Nyw5MTEsMSksdGs9Z1szNl0oNSwxMjU0MywxMzYxLDEpLHFtcT1nWzM2XSg0LDEyNTA5LDEwMCwyMSksYVY9Z1szNl0oNiwxMjQ5OSwxMTQ2LDEwKSxpZ0Q9Z1szNl0oMzgsMTI0ODUsNDgsMykseWVZPWdbMzZdKDM4LDEyNDY3LDEyNiwxOCksWW1aPWdbMzZdKDYsMTI0NjQsMTE4LDMpLGtiPWdbMzZdKDUsNDgyMCwxOTI2LDIpLGNlOD1nWzM2XSg2LDEyMzk0LDQ4LDcwKSxTbXg9Z1szNl0oNSwxMjM4OCwxMywKNiksREE9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMzJdLmNhbGwodGhpcywyMCxCKX0sbU4wPWdbMzZdKDUsMTIzMDcsNTM1NSw3KSxsNlo9Z1szNl0oMzgsMTIyNDIsMTUsMTMpLFdzPWdbMzZdKDYsMTIyMzgsMTE0MCw0KSxRRD1mdW5jdGlvbihCKXtyZXR1cm4gRFsyM10uY2FsbCh0aGlzLDE2LEIpfSxFQVo9Z1szNl0oNSwxMjE1Niw5NSw3MSksWERNPWdbMzZdKDQsMTIxNTMsMCwzKSxJdz1nWzM2XSgzNywxMjE0Nyw0NCw2KSx1Nmw9Z1szNl0oMzcsNjI2Niw4MiwzKSxhNnc9Z1szNl0oNCw5NDY5LDUxOTksNSksaEFNPWdbMzZdKDQsMTIwNjYsNzcsNzgpLGROaD1nWzM2XSg2LDEyMDUxLDMxLDE1KSxreU49Z1szNl0oNSw0ODU1LDUzODYsMiksdENoPWdbMzZdKDYsMTE5NjgsMTE0MCwyKSxVTmg9Z1szNl0oMzYsMTE4ODksOTQsNjgpLFFqPWZ1bmN0aW9uKCl7cmV0dXJuIEhbMjhdLmNhbGwodGhpcyw0KX0sTUM4PWdbMzZdKDUsMTE4MTYsMjIsNzMpLHdETT1nWzM2XSgzNywxMTgxMywKMiwzKSxJNjg9Z1szNl0oNSwxMTc2OSwxMjIsNCksRkxOPWdbMzZdKDM4LDExNTY5LDEsODUpLEI1bD1nWzM2XSgzNywxMTM1MCwxNzMsMiksc25aPWdbMzZdKDM4LDExMTkyLDEyNSw2OSksellZPWdbMzZdKDYsMTA5OTAsMzEsNzEpLEtvTj1nWzM2XSgzNiwxMDkzMSwxMDksNTkpLEp4OD1nWzM2XSg0LDEwOTA0LDExMywyNyksQzJHPWdbMzZdKDYsMTA3NzgsMzAsNzQpLGQyPWdbMzZdKDM4LDg3LDQ5LDEpLGJSdz1nWzM2XSgzNiwxMDY4Miw4Nyw3OCksUUc9Z1szNl0oMzYsMTA2NzAsMTIxLDEyKSxBeE49Z1szNl0oNCwxMDY2Niw5Myw0KSx2Vjg9Z1szNl0oNCwxMDU5MywyLDYpLFQ1cT1nWzM2XSg1LDEwNTMwLDcyLDYzKSxqbjA9Z1szNl0oNCwxMDQxNSwzNSw4KSxwTHE9Z1szNl0oMzgsMTAzOTksOTAsMTYpLFFuaD1nWzM2XSg1LDEwMzU5LDE3MDEsNyksblYwPWdbMzZdKDM2LDEwMzE1LDYxLDE5KSxLQz1mdW5jdGlvbihCKXtyZXR1cm4gWVsyN10uY2FsbCh0aGlzLDEsQil9LApaUjM9Z1szNl0oNSwxMDIxOCw0MSw1KSxXb2g9Z1szNl0oMzcsMTAyMTMsOSw1KSxnVmg9Z1szNl0oMzcsMTAyMDIsNTYsMTEpLE41Wj1nWzM2XSgzOCwxMDE3MCwxMSwzMiksT1JOPWdbMzZdKDM3LDEwMTU5LDUwLDExKSx4MFo9Z1szNl0oMzYsMTAxNTYsMTA4LDMpLEQwMD1nWzM2XSgzNywxMDEwMywxMjYsNCksU0Y9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMTVdLmNhbGwodGhpcywzMCxCKX0sSWM9Z1szNl0oMzgsMTczNiwxOTUzLDgpLGZ0OD1nWzM2XSg2LDEwMDQyLDQ2LDUxKSxvVjg9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4ga1s0OV0uY2FsbCh0aGlzLDIsQix6LEssSixDKX0sTG9sPWdbMzZdKDM3LDEwMDI2LDEyNCwxNiksa0Q9Z1szNl0oMzcsMjEwLDEwODY4LDEpLFJZdz1nWzM2XSg0LDEwMDIwLDc5LDYpLHJ4OD1nWzM2XSgzNiwxMDAxNCwxMTYsNiksVlczPWdbMzZdKDQsOTg5Miw2MSw3MCksR2pHPWdbMzZdKDM3LDk4ODksNzMsMyksdE49Z1szNl0oNiw1NjMzLDE1NTYsCjUpLEhSMD1nWzM2XSgzOCwzNDIsMjI0OTUsMiksZVlNPWdbMzZdKDUsOTg1MSw4NiwzKSxQMkQ9Z1szNl0oMzYsOTgzOSwyLDEyKSxVVT1nWzM2XSg1LDk4MDksMTI1LDcpLCQwOD1nWzM2XSg2LDk3NTAsNDI3NiwxKSxxZFo9Z1szNl0oNSw5NjQyLDgxLDYpLE1uPWdbMzZdKDQsOTYzNSw1Niw3KSxxMD1nWzM2XSg2LDk1ODksOTksNDYpLGlSOD1nWzM2XSgzOCw5NTgwLDMzLDkpLHRxPWdbMzZdKDM2LDYzODUsNDY1Niw4KSxUeT1nWzM2XSg2LDk1NzIsOTgsOCkseXhoPWdbMzZdKDM3LDk0MTgsOSw2OSksWWR3PWdbMzZdKDQsOTMzNiw0OSw4MiksY3h4PWdbMzZdKDQsOTMxOSw3MSwxNyksak09ZnVuY3Rpb24oQil7cmV0dXJuIEhbMTNdLmNhbGwodGhpcywxLEIpfSx3Mj1nWzM2XSg2LDE3NDYsMjg5NSwyKSxTZDA9Z1szNl0oMzcsOTExMyw4NCw3KSxtMHg9Z1szNl0oNiw5MTA1LDE3NiwyKSxsdDg9Z1szNl0oNCw5MDk2LDExNyw0KSxFVjg9Z1szNl0oNiw5MDg0LDExMywxMiksWExsPQpnWzM2XSg0LDYzNzUsMzY0NSw5KSx1Tzg9Z1szNl0oMzcsOTAxNSwzNiw2OSksYXREPWdbMzZdKDM3LDg5NDcsNyw2OCksZTQ9Z1szNl0oNiw4ODE1LDUyLDQpLGhZOD1nWzM2XSg1LDg4MDksNzAsNiksZDA4PWdbMzZdKDUsODY4NSw3NiwyNyksa2p4PWdbMzZdKDM2LDg2MTUsOTQsNzApLHRXdz1nWzM2XSg0LDg1MDUsNDgsMTgpLFUwOD1nWzM2XSgzOCw4NDI1LDExMiw4MCksTVd3PWdbMzZdKDQsODQxNiwxMjcsOSksd0xOPWdbMzZdKDYsODM4NSwzNiwzMSksSXRNPWdbMzZdKDM3LDgyNTQsOTMzLDIpLEZvMz1nWzM2XSg1LDgyMzUsNDEsOCksa1U9ZnVuY3Rpb24oQil7cmV0dXJuIERbNF0uY2FsbCh0aGlzLDQsQil9LEJyaD1nWzM2XSg2LDgxNjQsNDgsNzEpLFZiPWZ1bmN0aW9uKEIpe3JldHVybiB5WzIzXS5jYWxsKHRoaXMsMyxCKX0sUHo9Z1szNl0oNSw4MDU2LDk4LDQ4KSxJVz1nWzM2XSgzNiwxNTYsNTkxNywxKSxFWD1nWzM2XSg1LDgwNDMsODYsMTMpLHNndz1nWzM2XSg0LAo4MDQxLDEwNywyKSx6Sjg9Z1szNl0oNSw3OTM0LDQ3LDY4KSxLZzM9Z1szNl0oNiw3ODk2LDE4LDMpLElYPWdbMzZdKDYsNDU2MSwyMzQxLDYpLEpYbD1nWzM2XSg2LDc2MzMsMjksNjYpLENNMz1nWzM2XSg2LDc1MzEsODIsOSksYjVEPWdbMzZdKDM3LDc1MTEsMTA5LDIwKSxlVD1nWzM2XSgzOCw3NTA0LDEwOCw3KSxBWDM9Z1szNl0oMzgsNzQ3Myw0OTA3LDMpLHZlTT1nWzM2XSg2LDczNjEsMTE1LDY0KSxUcnc9Z1szNl0oMzYsNzM1NywyMTg3LDQpLGpnaD1nWzM2XSgzNyw3MzI5LDExNSw1KSxKQj1nWzM2XSg1LDcyODMsNjk3Myw0KSxwNzg9Z1szNl0oNSw3MTk5LDExNywxMiksRk09ZnVuY3Rpb24oKXtyZXR1cm4gUlsxMl0uY2FsbCh0aGlzLDgpfSxRZ009Z1szNl0oMzgsNzE4Miw0Nyw4KSxuZWw9Z1szNl0oMzYsNzEwMCw5NCw4MiksWjVaPWdbMzZdKDM3LDcwODYsMjcsMTQpLGxaPWdbMzZdKDUsNzA3OSwyNCw3KSxXZzg9Z1szNl0oMzYsNzAzNywzNTc3LDQpLGdlaD1nWzM2XSg1LAo2OTI3LDM5LDc1KSxOcmg9Z1szNl0oNCw2ODU5LDg3LDY4KSxPNUQ9Z1szNl0oMzgsNjgwNiw2Niw1MykseGFZPWdbMzZdKDM2LDY3NDIsOTgsNjQpLERhMD1nWzM2XSg0LDY3MzksMTEyLDMpLGZJRD1nWzM2XSgzOCw2NjY3LDkzLDcyKSxvZUQ9Z1szNl0oNCw2NjU4LDEzLDkpLEFrPWZ1bmN0aW9uKCl7cmV0dXJuIGcwWzFdLmNhbGwodGhpcyw0KX0sdWw9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEhbMzRdLmNhbGwodGhpcywyMixCLHosSyxKKX0sTGd3PWdbMzZdKDQsNjU4MywzNywyMSksUkpaPWdbMzZdKDYsNjU3NiwxMDQsNyksclhaPWdbMzZdKDM2LDY1NjMsNTAsMTIpLFZQTj1nWzM2XSg2LDY1NjAsMTIzLDMpLEdkOD1nWzM2XSgzOCw2NDQ2LDMxLDcxKSxCMT1nWzM2XSg2LDU0MDUsMjgyNyw2KSxINTM9Z1szNl0oNiw2MzMyLDUsNSksZUpoPWdbMzZdKDM2LDYyNzMsMTIwLDU5KSxQTXE9Z1szNl0oMzYsNjI2OCwyOTcsNSksJGEwPWdbMzZdKDM4LDYyNTksMTE4LDcpLHNiPQpnWzM2XSg0LDYyNDksMzksMTApLHEyWj1nWzM2XSg1LDYwODYsMTEzLDcyKSxpNWg9Z1szNl0oNCw1OTE4LDI3LDMpLHk4PWdbMzZdKDQsNTgxMyw5NywxOSkseVh4PWdbMzZdKDM2LDU3MTYsMTEwLDIpLFkybD1nWzM2XSgzOCw1NjQ0LDI2MDcsMyksSDg9Z1szNl0oNiw1NjA1LDYsMTMpLGNYWj1nWzM2XSg1LDU1ODQsOCw5KSx6Vz1nWzM2XSgzNiw1NTY4LDY5NDIsNCksUzI4PWdbMzZdKDM2LDU0ODgsNDIsMTMpLG1hTj1nWzM2XSgzNyw1NDIwLDAsNjgpLFRvPWdbMzZdKDM3LDUzNzIsNjAsNSksWmI9IiIsVUU9Z1szNl0oMzgsNTMxNSw2Mjc2LDEpLGxJOD1nWzM2XSg1LDUyMjQsMzcsNyksRWVZPWdbMzZdKDM4LDUyMTYsMjksOCksWDdsPWdbMzZdKDUsNTIwMCwxMDQsMTYpLHVvOD1nWzM2XSgzOCw1MTkwLDE1LDEwKSxhSTg9Z1szNl0oNiw1MTEzLDc3LDc0KSxoSkQ9Z1szNl0oMzgsNDk5Nyw5OSwxNSksZGFEPWdbMzZdKDM2LDQ5NTQsMTE4LDQpLEJOPWZ1bmN0aW9uKEIpe3JldHVybiB5WzMxXS5jYWxsKHRoaXMsCjI0LEIpfSxrZE49Z1szNl0oNCw0OTQwLDE1Nyw3KSx5NT1mdW5jdGlvbihCKXtyZXR1cm4gR1s3XS5jYWxsKHRoaXMsNixCKX0sdFBOPWdbMzZdKDUsNDkzMyw1Niw2KSxjZj1nWzM2XSgzNyw0ODAxLDYzLDYpLFVhaD1nWzM2XSg0LDQ3OTYsODcsNSksTVB3PWdbMzZdKDM2LDQ3NDYsNzQsMTEpLHc3MD1nWzM2XSg1LDQ3MzMsNzEsMTMpLElJOD1nWzM2XSgzNyw0NzEwLDEwMiwyMyksRmc4PWdbMzZdKDM3LDQ3MDgsMTIwLDIpLEJtcT1nWzM2XSg1LDQ2MzEsOTMsNjkpLHM5Wj1nWzM2XSg2LDQ1ODUsMTE3LDQ2KSxwcz1nWzM2XSgzNiw0NTM0LDM0LDUxKSxoRj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIEhbNDldLmNhbGwodGhpcywyOCxCLHosSyl9LHNFPWdbMzZdKDQsNDUyNyw2Nyw3KSx6Rlk9Z1szNl0oNiw0NTE3LDcwLDEwKSxLQ0c9Z1szNl0oMzcsNDQ3NCw5LDQzKSxKOHE9Z1szNl0oNCw0NDA3LDU0LDY3KSxDcWg9Z1szNl0oNSw0NDAwLDgwLDcpLEtsPWdbMzZdKDYsNDM4NCwKOTksMTYpLGIxOD1nWzM2XSg0LDQzNTYsNTksNiksQThOPWdbMzZdKDUsNDI4NCwxMDEsNzIpLFNjPWdbMzZdKDM3LDQyNDksMTgyLDIpLHBtPVsyLDNdLFliPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybiBPWzMzXS5jYWxsKHRoaXMsNCxCLHosSyxKLEMsYixBKX0sdjBHPWdbMzZdKDM4LDQxOTYsNDksNiksanA9ZnVuY3Rpb24oQil7cmV0dXJuIEhbN10uY2FsbCh0aGlzLDEzLEIpfSxUbTA9Z1szNl0oMzgsNDEyNywxMDMsNjkpLGo5Wj1nWzM2XSg0LDM5ODcsMzUsODApLHBoRD1nWzM2XSg0LDM5MTQsNjAsNzMpLFE5OD1nWzM2XSg0LDM4OTMsNTQsMjEpLGJaPWdbMzZdKDM2LDM4NDYsNjgwLDMpLG4wMz1nWzM2XSgzNywyMjM2LDAsMTEpLFoxcT1nWzM2XSgzNywxMTQ2LDQ5LDExKSxxNT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFJbNDRdLmNhbGwodGhpcywxLEIseixLKX0sTGg9L1teXGRdKyQvLFdDRz1nWzM2XSgzNiwzNzkzLDk2LDYpLGcwaD1nWzM2XSg1LDM3NTMsCjQ3LDE3KSxObUQ9Z1szNl0oMzYsMzY3NCwxMDMsNiksTzFZPWdbMzZdKDUsMzU4Myw0NSw1KSxncD1nWzM2XSgzNywzNTI1LDMzLDIzKSx4cVk9Z1szNl0oMzgsMzUxOSw2Myw2KSxEcVo9Z1szNl0oNCwzNDQ5LDkzLDcwKSxmOFo9Z1szNl0oMzcsMzQ0NSw1OCw0KSxvMFk9Z1szNl0oMzgsMzQxNSw3NSwzMCksVmc9Z1szNl0oMzcsMzQwMywxMTk1LDEyKSxMQ3c9Z1szNl0oNiwzMzgwLDExMywxMCksUkZ4PWdbMzZdKDM4LDMzNzcsNTQsMykscjhEPWdbMzZdKDQsMzI5NSw4NCw4MiksSmI9Z1szNl0oMzgsMzEzMiwxMDEsMTApLFZKTT1nWzM2XSgzNiwzMDU5LDEyMiw3MyksR0xEPWdbMzZdKDM4LDMwMTAsMTExLDQzKSxIMVo9Z1szNl0oNCwyOTM0LDQ3MDEsMyksd0I9Z1szNl0oNCwyODA4LDI4NzQsNSksZUZOPWdbMzZdKDM2LDI3NzIsMjIsOSksUHFoPWdbMzZdKDYsMjcwMyw3Myw2OSksJHFOPWdbMzZdKDQsMjYzNiwxMTMsOCkscWxoPWdbMzZdKDQsMjYyMiwxODAxLDQpLENsPQp7ZG9uZTohMCx2YWx1ZTp2b2lkIDB9LGkxWT1nWzM2XSgzOCwyNTc5LDM0LDIyKSxkdD1nWzM2XSgzOCwyNTYwLDYzNCw0KSx5OHc9Z1szNl0oMzYsMjQ4NywxMDcsNjYpLGJXPWZ1bmN0aW9uKEIpe3JldHVybiBZWzFdLmNhbGwodGhpcywyLEIpfSxYNz1nWzM2XSgzNiwyNDU3LDM1LDMwKSxBYj1nWzM2XSg1LDI0MzgsNTUsMTkpLFlsdz1nWzM2XSg2LDI0MzQsMTgzLDQpLGM4bD1nWzM2XSgzNywyNDI0LDk4LDkpLFNseD1nWzM2XSg0LDI0MDYsMzM4LDgpLGVoPWdbMzZdKDQsMjM4MSwxMjIsMjIpLHA5PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7cmV0dXJuIHlbMTRdLmNhbGwodGhpcywxNixCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4pfSxtcTg9Z1szNl0oMzgsMjI0NywzNiw2OCksbDhEPWdbMzZdKDUsMjIzNyw4MywxMCksRTBoPWdbMzZdKDYsMjIyMiw1OSwxNCksWGhsPWdbMzZdKDM4LDIxODIsMTIwLDkpLHU4OD1nWzM2XSgzOCwyMTcwLDEwMywKMTIpLGE4OD1nWzM2XSg0LDIxMDAsODEsNzApLGhGcT1nWzM2XSgzNiwyMDE0LDg4LDcwKSxkcUQ9Z1szNl0oNiwxOTM3LDI1LDc3KSxrTFo9Z1szNl0oMzcsMTg2NywxMyw3MCksYVk9Z1szNl0oNCwxODEzLDM2LDU0KSx2MT1nWzM2XSg1LDE3ODcsNTAsMjApLFZSPWdbMzZdKDM3LDE3ODAsNTQsNyksYmY9Z1szNl0oMzYsMTcxNCwzMCwzNSksdEpsPWdbMzZdKDUsMTcwOCw1ODUsMiksVXFZPWdbMzZdKDQsMTYzNSw3Myw2OCksTUpNPWdbMzZdKDUsMTM2NywxMDUsNzUpLHdoTj1nWzM2XSgzNywxMjk5LDYwLDY4KSxJOT1nWzM2XSg0LDEyOTgsNzUsMSksSThxPWdbMzZdKDYsMTIyNSwyNiw3MyksRkNNPWdbMzZdKDM3LDEyMDYsNTksNCksQmkwPWdbMzZdKDUsMTIwMiwxMjQsNCksc3dNPWdbMzZdKDM2LDExOTMsNTYsOSksazg9Z1szNl0oMzgsMTE4OSw4MSw0KSx6Zlk9Z1szNl0oMzgsMTE3NiwzMzAsNCksUFM9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4ga1szOF0uY2FsbCh0aGlzLAo4LEIseixLLEosQyl9LEs2aD1nWzM2XSg0LDExNjksOTcsNCksSkx3PWdbMzZdKDYsMTE0Niw0OSw1KSxDcjg9Z1szNl0oMzgsMTE0MSw0LDUpLGJmMz1nWzM2XSg2LDExMDksMjIsMzIpLEFMWj1nWzM2XSgzOCwxMDUxLDc2Myw1KSxUVz1nWzM2XSgzNyw5OTksMTMsNiksdldHPWdbMzZdKDQsOTMyLDY3LDY3KSxUaTg9Z1szNl0oNSw4MzUsMTAzLDgpLGtPPWdbMzZdKDYsNzA5LDQwNTUsMTIpLGp3cT1nWzM2XSgzNiw2MDAsMCwxMikscFNsPWdbMzZdKDQsNTkzLDExMiw3KSxRd009Z1szNl0oMzcsNTMyLDY2LDYxKSxuVzg9Z1szNl0oNiw0NjUsNjgsNjcpLFpmdz1nWzM2XSg1LDIxMiwxMTA3MywxKSxXNkQ9Z1szNl0oMzYsMTEsNTEsNzMpLGdXRD1nWzM2XSgzNiwwLDc2LDExKSxCej10eXBlb2YgT2JqZWN0LmNyZWF0ZT09ImZ1bmN0aW9uIj9PYmplY3QuY3JlYXRlOmZ1bmN0aW9uKEIseil7cmV0dXJuIHo9ZnVuY3Rpb24oKXt9LHoucHJvdG90eXBlPUIsbmV3IHp9LCRuPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09CiJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKEIseixLKXtpZihCPT1BcnJheS5wcm90b3R5cGV8fEI9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIEI7cmV0dXJuIEJbel09Sy52YWx1ZSxCfSxQUj1tWzIxXSgxMSwib2JqZWN0IiwiTWF0aCIsMCx0aGlzKSxMYT0oT1s4XSg4LDE2LE9bMjhdKDU5LE9bMjhdKDMyLE9bMjhdKDU4LDAsT1syOF0oNDQsT1syOF0oNDcsNyxPWzI4XSg1MSwxNiwzOSw1NiwxOCw4NCkpLE9bMjhdKDU3LDg2LDExMCwxMzEsMjIpKSksT1syOF0oNTcsT1syOF0oMzQsMTUxLDE2NywxODYsNDIsMTgwLDMyNCksMjQ5LDI3MiwzNCwxMjgsMjgyKSksT1syOF0oNDIsT1syOF0oNDEsMzM1LE9bMjhdKDQ4LE9bMjhdKDU2LDM0MCwzOTcsNDk4LDI0LDEyOCwzMTgpLDU2NCw1NzMsMTAsMTAwLDI2NCksNjI4LDMyLDk2LDIyMiksT1syOF0oNTMsNjgwLDcwMSw3MDksNTAsMTUyLDI4MiksNzY4LDI0LDM4OCw3MDIpKSksdHlwZW9mIFN5bWJvbD09PQoiZnVuY3Rpb24iJiZiZygpLFBSLkJpZ0ludDY0QXJyYXkmJihsUC5wdXNoKHJ6KCkpLGxQLnB1c2godVUoKSkpLGxQKSxSWD1mdW5jdGlvbihCKXtmdW5jdGlvbiB6KCl7ZnVuY3Rpb24gSygpe31yZXR1cm4oJEIoKG5ldyBLLEspLFtdLGZ1bmN0aW9uKCl7fSksbmV3IEspaW5zdGFuY2VvZiBLfWlmKHR5cGVvZiBSZWZsZWN0IT0idW5kZWZpbmVkIiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe2lmKHooKSlyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3Q7cmV0dXJuIEI9UmVmbGVjdC5jb25zdHJ1Y3QsZnVuY3Rpb24oSyxKLEMsYil7cmV0dXJuKGI9QihLLEopLEMpJiZWeihiLEMucHJvdG90eXBlKSxifX1yZXR1cm4gZnVuY3Rpb24oSyxKLEMsYil7cmV0dXJuIGI9QnooKEM9PT12b2lkIDAmJihDPUspLEMucHJvdG90eXBlfHxPYmplY3QucHJvdG90eXBlKSksRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoSyxiLEopfHxifX0oKSxqUTsKaWYodHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIilqUT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgcGw7YTp7dmFyIE5pbD17YTohMH0sUVY9e307dHJ5e1FWLl9fcHJvdG9fXz1OaWwscGw9UVYuYTticmVhayBhfWNhdGNoKEIpe31wbD0hMX1qUT1wbD9mdW5jdGlvbihCLHope2lmKEIuX19wcm90b19fPXosQi5fX3Byb3RvX18hPT16KXRocm93IG5ldyBUeXBlRXJyb3IoQisiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIEJ9Om51bGx9CnZhciBPZkQ9dHlwZW9mIE9iamVjdC5hc3NpZ249PSJmdW5jdGlvbiI/T2JqZWN0LmFzc2lnbjpmdW5jdGlvbihCLHope2lmKEI9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gbnVsbGlzaCBhcmciKTtmb3IodmFyIEs9KEI9T2JqZWN0KEIpLDEpO0s8YXJndW1lbnRzLmxlbmd0aDtLKyspe3ZhciBKPWFyZ3VtZW50c1tLXTtpZihKKWZvcih2YXIgQyBpbiBKKWdbMThdKDc4LEosQykmJihCW0NdPUpbQ10pfXJldHVybiBCfSxzWT1qUSx1aj0oKCgoKCgoKGtbMjddKDMwLCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihCKXtyZXR1cm4gQnx8T2ZEfSkseTUucHJvdG90eXBlKS5QPWZ1bmN0aW9uKEIpe3RoaXMuWD1CfSx5NS5wcm90b3R5cGVbdSQoKV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSx5NSkucHJvdG90eXBlW3ptKCldPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWH0seTUpLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oQil7KHRoaXMubD17cmV0dXJuOkJ9LHRoaXMpLk09CnRoaXMuT30seTUucHJvdG90eXBlW1dXKCldPXk1LnByb3RvdHlwZS5yZXR1cm4seTUpLnByb3RvdHlwZS5nPWZ1bmN0aW9uKEIpe3RoaXMubD17R186KHRoaXMuTT10aGlzLk8sQil9fSx5NS5wcm90b3R5cGUpW2xDKCldPXk1LnByb3RvdHlwZS5nLHk1KS5wcm90b3R5cGUudj1mdW5jdGlvbihCLHope3JldHVybnt2YWx1ZToodGhpcy5NPXosQil9fSx5NSkucHJvdG90eXBlW1BtKCldPXk1LnByb3RvdHlwZS52LGZ1bmN0aW9uKEIpe3JldHVybiBIWzJdLmNhbGwodGhpcyw3MCxCKX0pLGhCPWZ1bmN0aW9uKEIpe3JldHVybiBtWzM0XS5jYWxsKHRoaXMsMjcsQil9LFFCPSgoKCgoKCgoKCgoeTUucHJvdG90eXBlW3k1LnByb3RvdHlwZS5EPWZ1bmN0aW9uKEIseixLLEosQyl7aWYoSz0oSj1nW0M9WyJ2IiwxNCwxMl0sQ1syXV0oMTEsQiksSikubmV4dCgpLEhbQ1sxXV0oMixLKSxLLmRvbmUpdGhpcy5NPXosdGhpcy5YPUsudmFsdWU7ZWxzZSByZXR1cm4gdGhpcy5XPUosdGhpc1tDWzBdXShLLnZhbHVlLAp6KX0sd0MoKV09eTUucHJvdG90eXBlLkQseTUucHJvdG90eXBlKS5HXz1mdW5jdGlvbihCKXt0aGlzLk09Qn0seTUpLnByb3RvdHlwZVtCRTgoKV09eTUucHJvdG90eXBlLkdfLHk1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7dGhpcy5NPTB9LHk1KS5wcm90b3R5cGVbcCQoKV09eTUucHJvdG90eXBlLlIseTUucHJvdG90eXBlLkE9ZnVuY3Rpb24oQix6KXt6IT12b2lkIDAmJih0aGlzLk89eiksdGhpcy5DPUJ9LHk1KS5wcm90b3R5cGVbdXAoKV09eTUucHJvdG90eXBlLkEseTUpLnByb3RvdHlwZS5LPWZ1bmN0aW9uKEIpe3RoaXMuQz0odGhpcy5PPUJ8fDAsMCl9LHk1LnByb3RvdHlwZSlbUnUoKV09eTUucHJvdG90eXBlLksseTUucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6KXt0aGlzLkM9enx8MCx0aGlzLk09Qn0seTUucHJvdG90eXBlKVtieigpXT15NS5wcm90b3R5cGUuRix5NS5wcm90b3R5cGUpLmk9ZnVuY3Rpb24oQix6KXtyZXR1cm4gdGhpcy5DPUJ8fDAsej10aGlzLmwubjEsCnRoaXMubD1udWxsLHp9LHk1LnByb3RvdHlwZSlbVF8oKV09eTUucHJvdG90eXBlLmkseTUucHJvdG90eXBlKS5tPWZ1bmN0aW9uKEIseixLLEope3RoaXMuTz0oKEo9WyJDIiwiSCIsMF0sSyk/dGhpc1tKWzFdXVtLXT10aGlzLmw6dGhpc1tKWzFdXT1bdGhpcy5sXSx0aGlzW0pbMF1dPUJ8fEpbMl0seil8fEpbMl19LHt9KSxubD0oKCgoKHk1LnByb3RvdHlwZVtLdigpXT15NS5wcm90b3R5cGUubSx5NSkucHJvdG90eXBlLm89ZnVuY3Rpb24oQix6LEssSixDKXsoSj10aGlzLmw9KEs9dGhpcy5ILnNwbGljZSgoQz1bIk0iLCJPIiwwXSx6KXx8Q1syXSlbQ1syXV0sdGhpcy5sfHxLKSk/Si5jQT90aGlzW0NbMF1dPXRoaXMuQ3x8dGhpc1tDWzFdXTpKLkdfIT12b2lkIDAmJnRoaXNbQ1sxXV08Si5HXz8odGhpcy5sPW51bGwsdGhpc1tDWzBdXT1KLkdfKTp0aGlzW0NbMF1dPXRoaXNbQ1sxXV06dGhpc1tDWzBdXT1CfSx5NS5wcm90b3R5cGUpW3c4WigpXT15NS5wcm90b3R5cGUubyx5NS5wcm90b3R5cGUpLmo9CmZ1bmN0aW9uKEIpe3JldHVybiBuZXcgbmwoQil9LHk1LnByb3RvdHlwZSlbZjgoKV09eTUucHJvdG90eXBlLmosZnVuY3Rpb24oQix6KXtyZXR1cm4ga1s0XS5jYWxsKHRoaXMsNCxCLHopfSksaHo9KCgoKCgoKCgoKCgoKCgoKG5sLnByb3RvdHlwZS5NPWZ1bmN0aW9uKEIseil7Zm9yKHo9WyJ2IixudWxsLCJwb3AiXTt0aGlzW3pbMF1dLmxlbmd0aD4wOylpZihCPXRoaXNbelswXV1belsyXV0oKSxCIGluIHRoaXMuWClyZXR1cm4gQjtyZXR1cm4gelsxXX0sbmwucHJvdG90eXBlKVtmVigpXT1ubC5wcm90b3R5cGUuTSxrKVsyN10oMjksIlN5bWJvbCIsZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKGI9WzAsIl8iLDFFOV0sQilyZXR1cm4gQjtyZXR1cm4gSz0ianNjb21wX3N5bWJvbF8iKygoKEo9KHo9ZnVuY3Rpb24oQSl7aWYodGhpcyBpbnN0YW5jZW9mIHopdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7cmV0dXJuIG5ldyBKKEsrKEF8fAoiIikrIl8iK0MrKyxBKX0sZnVuY3Rpb24oQSx2KXskbih0aGlzLCJkZXNjcmlwdGlvbiIsKHRoaXMudj1BLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pKX0pLEopLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZ9LEFlKCkqYlsyXSk+Pj5iWzBdKStiWzFdLEM9YlswXSx6fSksaylbMjddKDI3LCJTeW1ib2wuaXRlcmF0b3IiLGZ1bmN0aW9uKEIseil7aWYoQilyZXR1cm4gQjtyZXR1cm4gJG4oQXJyYXkucHJvdG90eXBlLCh6PVN5bWJvbCgiU3ltYm9sLml0ZXJhdG9yIikseikse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBIWzIxXSgyMixlWzRdKDE5LDAsdGhpcykpfX0pLHp9KSxrKVsyN10oMjcsIlN5bWJvbC5hc3luY0l0ZXJhdG9yIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COlN5bWJvbCgiU3ltYm9sLmFzeW5jSXRlcmF0b3IiKX0pLGtbMjddKDMxLCJnbG9iYWxUaGlzIixmdW5jdGlvbihCKXtyZXR1cm4gQnx8ClBSfSksa1syN10oMjgsIlJlZmxlY3Quc2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6c1k/ZnVuY3Rpb24oeixLKXt0cnl7cmV0dXJuIHNZKHosSyksITB9Y2F0Y2goSil7cmV0dXJuITF9fTpudWxsfSksaylbMjddKDI4LCJQcm9taXNlIixmdW5jdGlvbihCLHosSyxKLEMpe0M9WyJDIiwicHJvdG90eXBlIiwicmVzb2x2ZSJdO2Z1bmN0aW9uIGIoKXt0aGlzLnY9bnVsbH1mdW5jdGlvbiBBKHYpe3JldHVybiB2IGluc3RhbmNlb2YgSz92Om5ldyBLKGZ1bmN0aW9uKHApe3Aodil9KX1pZihCKXJldHVybiBCO3JldHVybigoKCgoKCgoKGJbQ1sxXV0uWD0oYltDW0s9ZnVuY3Rpb24odixwLFEpe3A9KCgoUT0odGhpcy5YPXZvaWQgMCxbIk0iLCJ2IiwhMV0pLHRoaXNbUVsxXV09MCx0aGlzKVtRWzBdXT1bXSx0aGlzKS5GPVFbMl0sdGhpcy5pKCkpO3RyeXt2KHAucmVzb2x2ZSxwLnJlamVjdCl9Y2F0Y2gobil7cC5yZWplY3Qobil9fSwxXV0uQT1mdW5jdGlvbih2LApwLFEsbil7Zm9yKG49WyJ2IixudWxsLDBdO3RoaXNbblswXV0mJnRoaXNbblswXV0ubGVuZ3RoOylmb3Iodj1uWzJdLHA9dGhpc1tuWzBdXSx0aGlzW25bMF1dPVtdO3Y8cC5sZW5ndGg7Kyt2KXtwW3ZdPW5bUT1wW3ZdLDFdO3RyeXtRKCl9Y2F0Y2goWil7dGhpcy5pKFopfX10aGlzW25bMF1dPW5bMV19LGZ1bmN0aW9uKHYpe0oodiwwKX0pLEtbQ1sxXV0pLmw9ZnVuY3Rpb24odixwLFEpe2lmKHRoaXNbKFE9WyJDYW5ub3Qgc2V0dGxlKCIsInYiLCJYIl0sUSlbMV1dIT0wKXRocm93IEVycm9yKFFbMF0rdisiLCAiK3ArIik6IFByb21pc2UgYWxyZWFkeSBzZXR0bGVkIGluIHN0YXRlIit0aGlzW1FbMV1dKTsodGhpc1tRWzFdXT12LHRoaXMpW1FbMl1dPXAsdGhpc1tRWzFdXT09PTImJnRoaXMubygpLHRoaXMuTygpfSwoYltDWzFdXS5NPWZ1bmN0aW9uKHYscCxRKXsodGhpc1tRPVsidiIsbnVsbCwiWCJdLFFbMF1dPT1RWzFdJiYodGhpc1tRWzBdXT1bXSxwPXRoaXMsdGhpc1tRWzJdXShmdW5jdGlvbigpe3AuQSgpfSkpLAp0aGlzW1FbMF1dKS5wdXNoKHYpfSxLW0NbMV1dKS5tPWZ1bmN0aW9uKHYscCxRKXtpZigoUT1bITAsIkMiLCJVIl0sdik9PT10aGlzKXRoaXMuQShuZXcgVHlwZUVycm9yKCJBIFByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpO2Vsc2UgaWYodiBpbnN0YW5jZW9mIEspdGhpc1tRWzJdXSh2KTtlbHNle2E6c3dpdGNoKHR5cGVvZiB2KXtjYXNlICJvYmplY3QiOnA9diE9bnVsbDticmVhayBhO2Nhc2UgImZ1bmN0aW9uIjpwPVFbMF07YnJlYWsgYTtkZWZhdWx0OnA9ITF9cD90aGlzW1FbMV1dKHYpOnRoaXMuUih2KX19LEspWyhKPVBSLnNldFRpbWVvdXQsQylbMV1dLk89ZnVuY3Rpb24odixwKXtpZih0aGlzW3A9WzAsIk0iLG51bGxdLHBbMV1dIT1wWzJdKXtmb3Iodj1wWzBdO3Y8dGhpc1twWzFdXS5sZW5ndGg7Kyt2KXpbcFsxXV0odGhpc1twWzFdXVt2XSk7dGhpc1twWzFdXT1wWzJdfX0sS1tDWzFdXS5BPWZ1bmN0aW9uKHYpe3RoaXMubCgyLHYpfSxLW0NbMV1dLm89CmZ1bmN0aW9uKHYpe0ooKHY9dGhpcyxmdW5jdGlvbihwKXt2LlcoKSYmKHA9UFIuY29uc29sZSx0eXBlb2YgcCE9PSJ1bmRlZmluZWQiJiZwLmVycm9yKHYuWCkpfSksMSl9LEspW0NbMV1dW0NbMF1dPWZ1bmN0aW9uKHYscCl7cD12b2lkIDA7dHJ5e3A9di50aGVufWNhdGNoKFEpe3RoaXMuQShRKTtyZXR1cm59dHlwZW9mIHA9PSJmdW5jdGlvbiI/dGhpcy5QKHYscCk6dGhpcy5SKHYpfSxLW0NbMV1dLlI9ZnVuY3Rpb24odil7dGhpcy5sKDEsdil9LEtbQ1sxXV0uVz1mdW5jdGlvbih2LHAsUSxuLFosVyl7aWYoVz1bKFE9WyJDdXN0b21FdmVudCIsInVuaGFuZGxlZHJlamVjdGlvbiIsITFdLCJwcm9taXNlIiksMiwicmVhc29uIl0sdGhpcy5GKXJldHVybiBRW1dbMV1dO2lmKG49KHA9UFIuRXZlbnQsKHY9UFJbUVswXV0sUFIpLmRpc3BhdGNoRXZlbnQpLHR5cGVvZiBuPT09InVuZGVmaW5lZCIpcmV0dXJuITA7cmV0dXJuKCgodHlwZW9mIHY9PT0iZnVuY3Rpb24iP1o9bmV3IHYoInVuaGFuZGxlZHJlamVjdGlvbiIsCntjYW5jZWxhYmxlOiEwfSk6dHlwZW9mIHA9PT0iZnVuY3Rpb24iP1o9bmV3IHAoInVuaGFuZGxlZHJlamVjdGlvbiIse2NhbmNlbGFibGU6ITB9KTooWj1QUi5kb2N1bWVudC5jcmVhdGVFdmVudChRWzBdKSxaLmluaXRDdXN0b21FdmVudChRWzFdLFFbV1sxXV0sITAsWikpLFopW1dbMF1dPXRoaXMsWilbV1syXV09dGhpcy5YLG4pKFopfSxiW0NbMV1dKS5pPWZ1bmN0aW9uKHYpe3RoaXMuWChmdW5jdGlvbigpe3Rocm93IHY7fSl9LEspW0NbMV1dLmk9ZnVuY3Rpb24odixwKXtmdW5jdGlvbiBRKG4pe3JldHVybiBmdW5jdGlvbihaKXt2fHwodj0hMCxuLmNhbGwocCxaKSl9fXJldHVybiB2PShwPXRoaXMsITEpLHtyZXNvbHZlOlEodGhpcy5tKSxyZWplY3Q6USh0aGlzLkEpfX0sej1uZXcgYixLW0NbMV1dKS5VPWZ1bmN0aW9uKHYscCl7cD10aGlzLmkoKSx2LkVjKHAucmVzb2x2ZSxwLnJlamVjdCl9LEtbQ1sxXV0uUD1mdW5jdGlvbih2LHAsUSl7UT10aGlzLmkoKTt0cnl7cC5jYWxsKHYsClEucmVzb2x2ZSxRLnJlamVjdCl9Y2F0Y2gobil7US5yZWplY3Qobil9fSxLKVtDWzFdXS50aGVuPWZ1bmN0aW9uKHYscCxRLG4sWil7ZnVuY3Rpb24gVyhOLHgpe3JldHVybiB0eXBlb2YgTj09ImZ1bmN0aW9uIj9mdW5jdGlvbihmKXt0cnl7WihOKGYpKX1jYXRjaChMKXtuKEwpfX06eH1yZXR1cm4oUT1uZXcgSyhmdW5jdGlvbihOLHgpe249KFo9Tix4KX0pLHRoaXMpLkVjKFcodixaKSxXKHAsbikpLFF9LEtbQ1sxXV0uY2F0Y2g9ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdil9LEtbQ1sxXV0pLkVjPWZ1bmN0aW9uKHYscCxRLG4pe249WyJGIiwhMCwiTSJdO2Z1bmN0aW9uIFooVyl7Vz1bInYiLDIsIlgiXTtzd2l0Y2goUVtXWzBdXSl7Y2FzZSAxOnYoUVtXWzJdXSk7YnJlYWs7Y2FzZSBXWzFdOnAoUVtXWzJdXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5leHBlY3RlZCBzdGF0ZTogIitRW1dbMF1dKTt9fXRoaXNbKFE9dGhpcyx0aGlzW25bMl1dPT0KbnVsbD96W25bMl1dKFopOnRoaXNbblsyXV0ucHVzaChaKSxuKVswXV09blsxXX0sS1tDWzJdXT1BLEspLnJlamVjdD1mdW5jdGlvbih2KXtyZXR1cm4gbmV3IEsoZnVuY3Rpb24ocCxRKXtRKHYpfSl9LEsucmFjZT1mdW5jdGlvbih2KXtyZXR1cm4gbmV3IEsoZnVuY3Rpb24ocCxRLG4sWil7Zm9yKFo9KG49Z1sxMl0oMyx2KSxuLm5leHQoKSk7IVouZG9uZTtaPW4ubmV4dCgpKUEoWi52YWx1ZSkuRWMocCxRKX0pfSxLLmFsbD1mdW5jdGlvbih2LHAsUSl7cmV0dXJuIFE9Z1sxMl0oOSx2KSxwPVEubmV4dCgpLHAuZG9uZT9BKFtdKTpuZXcgSyhmdW5jdGlvbihuLFosVyxOKXtmdW5jdGlvbiB4KGYpe3JldHVybiBmdW5jdGlvbihMKXsoV1tmXT1MLE4tLSxOPT0wKSYmbihXKX19Tj0oVz1bXSwwKTtkbyBXLnB1c2godm9pZCAwKSxOKyssQShwLnZhbHVlKS5FYyh4KFcubGVuZ3RoLTEpLFopLHA9US5uZXh0KCk7d2hpbGUoIXAuZG9uZSl9KX0sS30pLGtbMjddKDI5LCJTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0IiwKZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LEssSixDLGIsQSx2KXtpZigoSj1bbnVsbCwodj1bNTYzMjAsMSwiY2hhckNvZGVBdCJdLDEpLDBdLEs9eVszMV0oMzksSlswXSx0aGlzLEpbMF0sImNvZGVQb2ludEF0IiksQT1LLmxlbmd0aCx6PU51bWJlcih6KXx8SlsyXSx6Pj1KWzJdKSYmejxBKXtpZigoYj0oenw9SlsyXSxLW3ZbMl1dKHopKSxiPDU1Mjk2fHxiPjU2MzE5KXx8eitKW3ZbMV1dPT09QSlyZXR1cm4gYjtyZXR1cm4oQz1LW3ZbMl1dKHorSlt2WzFdXSksQzx2WzBdfHxDPjU3MzQzKT9iOihiLTU1Mjk2KSoxMDI0K0MrOTIxNn19fSksa1syN10oMjgsIlN0cmluZy5mcm9tQ29kZVBvaW50IixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope2Zvcih2YXIgSz1bMTExNDExMSw2NTUzNSwyXSxKPVswLDEwMjMsNjU1MzZdLEM9IiIsYj1KWzBdO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBBPU51bWJlcihhcmd1bWVudHNbYl0pO2lmKEE8SlswXXx8CkE+S1swXXx8QSE9PWJOKEEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJpbnZhbGlkX2NvZGVfcG9pbnQgIitBKTtBPD1LWzFdP0MrPVN0cmluZy5mcm9tQ2hhckNvZGUoQSk6KEEtPUpbS1syXV0sQys9U3RyaW5nLmZyb21DaGFyQ29kZShBPj4+MTAmSlsxXXw1NTI5NiksQys9U3RyaW5nLmZyb21DaGFyQ29kZShBJkpbMV18NTYzMjApKX1yZXR1cm4gQ319KSxrWzI3XSgzMSwiT2JqZWN0LnNldFByb3RvdHlwZU9mIixmdW5jdGlvbihCKXtyZXR1cm4gQnx8c1l9KSxrKVsyN10oMzAsIlN5bWJvbC5kaXNwb3NlIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COlN5bWJvbCgiU3ltYm9sLmRpc3Bvc2UiKX0pLGtbMjddKDI5LCJNYXRoLmltdWwiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiLEEpe3JldHVybihKPShDPShBPShLPU51bWJlcihLKSxbMSwyLChiPVsxNiw2NTUzNSwwXSx6PU51bWJlcih6KSwwKV0pLEsmYltBWzBdXSkseikmYltBWzBdXSxKKSpDKygoej4+PgpiW0FbMl1dJmJbQVswXV0pKkMrSiooSz4+PmJbQVsyXV0mYltBWzBdXSk8PGJbQVsyXV0+Pj5iW0FbMV1dKXxiW0FbMV1dfX0pLGspWzI3XSgyNywiQXJyYXkuZnJvbSIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LEssSixDLGIsQSx2LHAsUSxuKXtpZihRPShuPVswLChLPUshPW51bGw/SzpmdW5jdGlvbihaKXtyZXR1cm4gWn0scD1bXSwidW5kZWZpbmVkIiksImNhbGwiXSx0eXBlb2YgU3ltYm9sIT1uWzFdKSYmU3ltYm9sLml0ZXJhdG9yJiZ6W1N5bWJvbC5pdGVyYXRvcl0sdHlwZW9mIFE9PSJmdW5jdGlvbiIpZm9yKHo9UVtuWzJdXSh6KSxiPW5bMF07IShBPXoubmV4dCgpKS5kb25lOylwLnB1c2goS1tuWzJdXShKLEEudmFsdWUsYisrKSk7ZWxzZSBmb3IoQz16Lmxlbmd0aCx2PW5bMF07djxDO3YrKylwLnB1c2goS1tuWzJdXShKLHpbdl0sdikpO3JldHVybiBwfX0pLGspWzI3XSgzMCwiV2Vha01hcCIsZnVuY3Rpb24oQix6LEssSixDKXtDPVsicHJvdG90eXBlIiwKImZyZWV6ZSIsIiRqc2NvbXBfaGlkZGVuXyJdO2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gQShRLG4pe3JldHVybihuPXR5cGVvZiBRLG4pPT09Im9iamVjdCImJlEhPT1udWxsfHxuPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiB2KFEsbil7Z1sxOF0oNzUsUSx6KXx8KG49bmV3IGIsJG4oUSx6LHt2YWx1ZTpufSkpfWZ1bmN0aW9uIHAoUSxuKXsobj1PYmplY3RbUV0pJiYoT2JqZWN0W1FdPWZ1bmN0aW9uKFope2lmKFogaW5zdGFuY2VvZiBiKXJldHVybiBaO3JldHVybihpYyhaKSYmdihaKSxuKShaKX0pfWlmKEo9ZnVuY3Rpb24oUSxuLFosVyxOKXtpZih0aGlzLnY9KE49WyJ0b1N0cmluZyIsNSwwXSwoSys9QWUoKSsxKVtOWzBdXSgpKSxRKWZvcihaPWdbMTJdKE5bMV0sUSk7IShuPVoubmV4dCgpKS5kb25lOylXPW4udmFsdWUsdGhpcy5zZXQoV1tOWzJdXSxXWzFdKX0sZnVuY3Rpb24oUSxuLFosVyxOKXtpZihOPShuPVs0LDIsM10sWyJzZWFsIiwyLDFdKSwhQnx8IU9iamVjdFtOWzBdXSlyZXR1cm4hMTsKdHJ5e2lmKFE9KFo9KFc9VU4oe30pLFVOKHt9KSksbmV3IEIoW1tXLDJdLFtaLDNdXSkpLFEuZ2V0KFcpIT1uW05bMl1dfHxRLmdldChaKSE9bltOWzFdXSlyZXR1cm4hMTtyZXR1cm4hKFFbImRlbGV0ZSJdKFcpLFEuc2V0KFosblswXSksUS5oYXMoVykpJiZRLmdldChaKT09blswXX1jYXRjaCh4KXtyZXR1cm4hMX19KCkpcmV0dXJuIEI7cmV0dXJuKCgoSz0oKHo9Q1syXStBZSgpLHAoQ1sxXSkscCkoInByZXZlbnRFeHRlbnNpb25zIikscCgic2VhbCIpLDApLEpbQ1swXV0uc2V0PWZ1bmN0aW9uKFEsbil7aWYoIUEoUSkpdGhyb3cgRXJyb3IoIkludmFsaWQgV2Vha01hcCBrZXkiKTtpZighKHYoUSksZ1sxOF0oNzUsUSx6KSkpdGhyb3cgRXJyb3IoIldlYWtNYXAga2V5IGZhaWw6ICIrUSk7cmV0dXJuIFFbel1bdGhpcy52XT1uLHRoaXN9LEopW0NbMF1dLmdldD1mdW5jdGlvbihRKXtyZXR1cm4gQShRKSYmZ1sxOF0oNzksUSx6KT9RW3pdW3RoaXMudl06dm9pZCAwfSxKKVtDWzBdXS5oYXM9CmZ1bmN0aW9uKFEpe3JldHVybiBBKFEpJiZnWzE4XSg3NyxRLHopJiZnWzE4XSg3NSxRW3pdLHRoaXMudil9LEpbQ1swXV0pWyJkZWxldGUiXT1mdW5jdGlvbihRLG4pe3JldHVybiBBKChuPVsxOCw3NywidiJdLFEpKSYmZ1tuWzBdXSg3NixRLHopJiZnW25bMF1dKG5bMV0sUVt6XSx0aGlzW25bMl1dKT9kZWxldGUgUVt6XVt0aGlzW25bMl1dXTohMX0sSn0pLGspWzI3XSgyOCwiTWFwIixmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKHY9WyJwcm90b3R5cGUiLDAsKEE9ZnVuY3Rpb24ocCl7cmV0dXJuIHA9e30scC5qSz1wLm5leHQ9cC5oZWFkPXB9LCJpdGVyYXRvciIpXSxmdW5jdGlvbihwLFEsbixaLFcsTil7aWYoKG49WyJzIiwhMSwoTj1bMSw0LCJmdW5jdGlvbiJdLCJ0IildLCFCfHx0eXBlb2YgQiE9TlsyXSl8fCFCLnByb3RvdHlwZS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPU5bMl0pcmV0dXJuIG5bTlswXV07dHJ5e2lmKChaPW5ldyBCKChRPVVOKHt4OjR9KSwKZylbMTJdKE5bMF0sW1tRLCJzIl1dKSksWikuZ2V0KFEpIT1uWzBdfHxaLnNpemUhPU5bMF18fFouZ2V0KHt4OjR9KXx8Wi5zZXQoe3g6NH0sblsyXSkhPVp8fFouc2l6ZSE9MilyZXR1cm4gbltOWzBdXTtpZigoVz1aLmVudHJpZXMoKSxwPVcubmV4dCgpLHApLmRvbmV8fHAudmFsdWVbMF0hPVF8fHAudmFsdWVbTlswXV0hPW5bMF0pcmV0dXJuIG5bTlswXV07cmV0dXJuKHA9Vy5uZXh0KCkscCkuZG9uZXx8cC52YWx1ZVswXS54IT1OWzFdfHxwLnZhbHVlW05bMF1dIT1uWzJdfHwhVy5uZXh0KCkuZG9uZT8hMTohMH1jYXRjaCh4KXtyZXR1cm4gbltOWzBdXX19KCkpcmV0dXJuIEI7cmV0dXJuIEM9KCgoKCgoKCgoKEo9KGI9bmV3IFdlYWtNYXAsZnVuY3Rpb24ocCxRLG4sWixXKXtpZih0aGlzLnNpemU9KHRoaXNbKFc9WzYsMCwxXSx0aGlzKVtXWzFdXT17fSxXWzJdXT1BKCksVylbMV0scClmb3Iobj1nWzEyXShXWzBdLHApOyEoUT1uLm5leHQoKSkuZG9uZTspWj1RLnZhbHVlLHRoaXMuc2V0KFpbV1sxXV0sClpbV1syXV0pfSksSilbdlswXV0uc2V0PWZ1bmN0aW9uKHAsUSxuLFosVyl7cmV0dXJuIFo9eih0aGlzLChwPShXPVsxLDAsInB1c2giXSxwPT09KG49WzEsMF0sMCkpPzA6cCxwKSksWi5saXN0fHwoWi5saXN0PXRoaXNbbltXWzBdXV1bWi5pZF09W10pLFouZW50cnk/Wi5lbnRyeS52YWx1ZT1ROihaLmVudHJ5PXtuZXh0OnRoaXNbbltXWzFdXV0saks6dGhpc1tuW1dbMV1dXS5qSyxoZWFkOnRoaXNbbltXWzFdXV0sa2V5OnAsdmFsdWU6UX0sWi5saXN0W1dbMl1dKFouZW50cnkpLHRoaXNbbltXWzFdXV0uaksubmV4dD1aLmVudHJ5LHRoaXNbbltXWzFdXV0uaks9Wi5lbnRyeSx0aGlzLnNpemUrKyksdGhpc30sSlt2W3o9ZnVuY3Rpb24ocCxRLG4sWixXLE4seCxmLEwscil7aWYoKHg9WyhyPVswLChMPVEmJnR5cGVvZiBRLDE4KSwiIl0sInBfIiksIm9iamVjdCIsImZ1bmN0aW9uIl0sTD09eFsxXXx8TD09eFsyXSk/Yi5oYXMoUSk/Zj1iLmdldChRKTooVz1yWzJdKyArK0MsYi5zZXQoUSwKVyksZj1XKTpmPXhbclswXV0rUSwoTj1wW3JbMF1dW2ZdKSYmZ1tyWzFdXSg3NixwW3JbMF1dLGYpKWZvcihaPXJbMF07WjxOLmxlbmd0aDtaKyspaWYobj1OW1pdLFEhPT1RJiZuLmtleSE9PW4ua2V5fHxRPT09bi5rZXkpcmV0dXJue2lkOmYsbGlzdDpOLGluZGV4OlosZW50cnk6bn07cmV0dXJue2lkOmYsbGlzdDpOLGluZGV4Oi0xLGVudHJ5OnZvaWQgMH19LDBdXVtLPWZ1bmN0aW9uKHAsUSxuKXtyZXR1cm4gbj1wWzFdLEhbMjFdKDYsZnVuY3Rpb24oKXtpZihuKXtmb3IoO24uaGVhZCE9cFsxXTspbj1uLmpLO2Zvcig7bi5uZXh0IT1uLmhlYWQ7KXJldHVybiBuPW4ubmV4dCx7ZG9uZTohMSx2YWx1ZTpRKG4pfTtuPW51bGx9cmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfX0pfSwiZGVsZXRlIl09ZnVuY3Rpb24ocCxRLG4pe3JldHVybihRPXoodGhpcywobj1bbnVsbCwxLCEwXSxwKSksUS5lbnRyeSkmJlEubGlzdD8oUS5saXN0LnNwbGljZShRLmluZGV4LG5bMV0pLFEubGlzdC5sZW5ndGh8fApkZWxldGUgdGhpc1swXVtRLmlkXSxRLmVudHJ5LmpLLm5leHQ9US5lbnRyeS5uZXh0LFEuZW50cnkubmV4dC5qSz1RLmVudHJ5LmpLLFEuZW50cnkuaGVhZD1uWzBdLHRoaXMuc2l6ZS0tLG5bMl0pOiExfSxKKVt2WzBdXS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2l6ZT0odGhpc1sxXT0odGhpc1swXT17fSx0aGlzWzFdLmpLPUEoKSksMCl9LEopW3ZbMF1dLmhhcz1mdW5jdGlvbihwKXtyZXR1cm4hIXoodGhpcyxwKS5lbnRyeX0sSilbdlswXV0uZ2V0PWZ1bmN0aW9uKHAsUSl7cmV0dXJuKFE9eih0aGlzLHApLmVudHJ5KSYmUS52YWx1ZX0sSlt2WzBdXSkuZW50cmllcz1mdW5jdGlvbigpe3JldHVybiBLKHRoaXMsZnVuY3Rpb24ocCl7cmV0dXJuW3Aua2V5LHAudmFsdWVdfSl9LEopW3ZbMF1dLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKHApe3JldHVybiBwLmtleX0pfSxKKVt2WzBdXS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKHApe3JldHVybiBwLnZhbHVlfSl9LApKKVt2WzBdXS5mb3JFYWNoPWZ1bmN0aW9uKHAsUSxuLFosVyl7Zm9yKFo9dGhpcy5lbnRyaWVzKCk7IShXPVoubmV4dCgpKS5kb25lOyluPVcudmFsdWUscC5jYWxsKFEsblsxXSxuWzBdLHRoaXMpfSxKW3ZbMF1dKVtTeW1ib2xbdlsyXV1dPUpbdlswXV0uZW50cmllcyx2KVsxXSxKfSksaylbMjddKDI4LCJBcnJheS5wcm90b3R5cGUuZW50cmllcyIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbigpe3JldHVybiBIWzIyXSgyNSwhMCx0aGlzLGZ1bmN0aW9uKHosSyl7cmV0dXJuW3osS119KX19KSxrWzI3XSgyNywiU2V0IixmdW5jdGlvbihCLHosSyl7aWYoSz1bImhhcyIsInByb3RvdHlwZSIsImZvckVhY2giXSxmdW5jdGlvbihKLEMsYixBLHYscCl7aWYoIShwPVsicHJvdG90eXBlIiwiYWRkIiwoQz1bImZ1bmN0aW9uIiwxLDJdLCExKV0sQil8fHR5cGVvZiBCIT1DWzBdfHwhQltwWzBdXS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPUNbMF0pcmV0dXJuIHBbMl07CnRyeXtpZigoSj1uZXcgQigoYj1VTih7eDo0fSksZ1sxMl0oNCxbYl0pKSksIUouaGFzKGIpfHxKLnNpemUhPUNbMV18fEpbcFsxXV0oYikhPUp8fEouc2l6ZSE9Q1sxXSl8fEpbcFsxXV0oe3g6NH0pIT1KfHxKLnNpemUhPUNbMl0pcmV0dXJuIHBbMl07aWYoKEE9KHY9Si5lbnRyaWVzKCksdikubmV4dCgpLEEuZG9uZSl8fEEudmFsdWVbMF0hPWJ8fEEudmFsdWVbQ1sxXV0hPWIpcmV0dXJuIHBbMl07cmV0dXJuIEE9di5uZXh0KCksQS5kb25lfHxBLnZhbHVlWzBdPT1ifHxBLnZhbHVlWzBdLnghPTR8fEEudmFsdWVbQ1sxXV0hPUEudmFsdWVbMF0/ITE6di5uZXh0KCkuZG9uZX1jYXRjaChRKXtyZXR1cm4gcFsyXX19KCkpcmV0dXJuIEI7cmV0dXJuKCgoKCgoKHo9ZnVuY3Rpb24oSixDLGIpe2lmKHRoaXMudj1uZXcgTWFwLEopZm9yKGI9Z1sxMl0oNyxKKTshKEM9Yi5uZXh0KCkpLmRvbmU7KXRoaXMuYWRkKEMudmFsdWUpO3RoaXMuc2l6ZT10aGlzLnYuc2l6ZX0seltLWzFdXSkuYWRkPQpmdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5zaXplPSh0aGlzLnYuc2V0KChKPUo9PT0wPzA6SixKKSxKKSx0aGlzLnYuc2l6ZSksdGhpc30seilbS1sxXV1bImRlbGV0ZSJdPWZ1bmN0aW9uKEosQyl7cmV0dXJuIEM9dGhpcy52WyJkZWxldGUiXShKKSx0aGlzLnNpemU9dGhpcy52LnNpemUsQ30seilbS1sxXV0uY2xlYXI9ZnVuY3Rpb24oKXsodGhpcy52LmNsZWFyKCksdGhpcykuc2l6ZT0wfSx6W0tbMV1dKVtLWzBdXT1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcy52LmhhcyhKKX0seltLWzFdXS5lbnRyaWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5lbnRyaWVzKCl9LHpbS1sxXV0udmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi52YWx1ZXMoKX0seltLWzFdXSkua2V5cz16W0tbMV1dLnZhbHVlcyx6W0tbMV1dKVtTeW1ib2wuaXRlcmF0b3JdPXpbS1sxXV0udmFsdWVzLHpbS1sxXV0pW0tbMl1dPWZ1bmN0aW9uKEosQyxiKXt0aGlzLnYuZm9yRWFjaCgoYj10aGlzLGZ1bmN0aW9uKEEpe3JldHVybiBKLmNhbGwoQywKQSxBLGIpfSkpfSx6fSksa1syN10oMjcsIk9iamVjdC5lbnRyaWVzIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyxKKXtmb3IoSyBpbiBKPVtdLHopZ1sxOF0oNzgseixLKSYmSi5wdXNoKFtLLHpbS11dKTtyZXR1cm4gSn19KSxrWzI3XSgzMSwiTnVtYmVyLmlzRmluaXRlIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope3JldHVybiB0eXBlb2YgeiE9PSJudW1iZXIiPyExOiFpc05hTih6KSYmeiE9PUluZmluaXR5JiZ6IT09LUluZmluaXR5fX0pLGspWzI3XSgyOCwiTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuIDkwMDcxOTkyNTQ3NDA5OTF9KSxrKVsyN10oMzEsIk51bWJlci5NSU5fU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybi05MDA3MTk5MjU0NzQwOTkxfSksa1syN10oMjcsIkFycmF5LnByb3RvdHlwZS5maW5kIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyl7cmV0dXJuIEhbMTBdKDksCjAsdGhpcyx6LEspLkhBfX0pLGspWzI3XSgzMSwiTWF0aC5sb2cyIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope3JldHVybiBZQyh6KS9NYXRoLkxOMn19KSxrKVsyN10oMzAsIk9iamVjdC52YWx1ZXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEope2ZvcihLIGluIEo9W10seilnWzE4XSg3OSx6LEspJiZKLnB1c2goeltLXSk7cmV0dXJuIEp9fSksaylbMjddKDI4LCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiLEEpe2I9KEo9dGhpcyxKIGluc3RhbmNlb2YgU3RyaW5nJiYoSj1TdHJpbmcoSikpLEM9S3x8MCxKKS5sZW5ndGg7Zm9yKEM8MCYmKEM9aFkoQytiLDApKTtDPGI7QysrKWlmKEE9SltDXSxBPT09enx8VTgoQSx6KSlyZXR1cm4hMDtyZXR1cm4hMX19KSxmdW5jdGlvbihCKXtyZXR1cm4ga1s0MF0uY2FsbCh0aGlzLDEsQil9KSxNej0oKCgoKCgoKChrWzI3XSgyOSwKIlN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEope3JldHVybiB5WyhKPVszMSxudWxsLCJpbmNsdWRlcyJdLEopWzBdXSgyMixKWzFdLHRoaXMseixKWzJdKS5pbmRleE9mKHosS3x8MCkhPT0tMX19KSxrKVsyN10oMjksIk51bWJlci5pc0ludGVnZXIiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeil7cmV0dXJuIE51bWJlci5pc0Zpbml0ZSh6KT96PT09Yk4oeik6ITF9fSksaylbMjddKDMxLCJOdW1iZXIuaXNTYWZlSW50ZWdlciIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6KXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih6KSYmZTcoeik8PU51bWJlci5NQVhfU0FGRV9JTlRFR0VSfX0pLGspWzI3XSgyOCwiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyxKLEMsYixBLHYscCxRKXtmb3IoYj0ocD0oQT0oQz0oUT1bMiwyMywKKEo9WzAsITEsInN0YXJ0c1dpdGgiXSwwKV0seVszMV0oUVsxXSxudWxsLHRoaXMseixKW1FbMF1dKSkseis9IiIsQykubGVuZ3RoLHoubGVuZ3RoKSxoWShKW1FbMl1dLGw5KEt8SltRWzJdXSxDLmxlbmd0aCkpKSx2PUpbUVsyXV07djxwJiZiPEE7KWlmKENbYisrXSE9elt2KytdKXJldHVybiBKWzFdO3JldHVybiB2Pj1wfX0pLGspWzI3XSgyNywiU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aCIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LEssSixDLGIsQSx2KXtmb3IoYj0oKHY9KEM9WyIiLDAsITFdLFsxLDAsMzFdKSxBPXlbdlsyXV0oNyxudWxsLHRoaXMseiwiZW5kc1dpdGgiKSx6Kz1DW3ZbMV1dLEspPT09dm9pZCAwJiYoSz1BLmxlbmd0aCksaFkoQ1t2WzBdXSxsOShLfENbdlswXV0sQS5sZW5ndGgpKSksSj16Lmxlbmd0aDtKPkNbdlswXV0mJmI+Q1t2WzBdXTspaWYoQVstLWJdIT16Wy0tSl0pcmV0dXJuIENbMl07cmV0dXJuIEo8PUNbdlswXV19fSksa1syN10oMzAsCiJNYXRoLnRydW5jIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyl7aWYoaXNOYU4oKHo9TnVtYmVyKHopLHopKXx8ej09PUluZmluaXR5fHx6PT09LUluZmluaXR5fHx6PT09MClyZXR1cm4gejtyZXR1cm4oSz1iTihlNyh6KSksejwwKT8tSzpLfX0pLGspWzI3XSgzMSwiTWF0aC5sb2cxMCIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6KXtyZXR1cm4gWUMoeikvTWF0aC5MTjEwfX0pLGspWzI3XSgzMCwiTnVtYmVyLmlzTmFOIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHope3JldHVybiB0eXBlb2Ygej09PSJudW1iZXIiJiZpc05hTih6KX19KSxrWzI3XSgyNywiQXJyYXkucHJvdG90eXBlLmtleXMiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oKXtyZXR1cm4gSFsyMl0oMjcsITAsdGhpcyxmdW5jdGlvbih6KXtyZXR1cm4gen0pfX0pLGtbMjddKDMxLCJBcnJheS5wcm90b3R5cGUudmFsdWVzIixmdW5jdGlvbihCKXtyZXR1cm4gQj8KQjpmdW5jdGlvbigpe3JldHVybiBIWzIyXSgyNiwhMCx0aGlzLGZ1bmN0aW9uKHosSyl7cmV0dXJuIEt9KX19KSxrWzI3XSgyOCwiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiKXtpZigoSj15W2I9WyJyZXBlYXQiLDMxLChLPVtudWxsLDEzNDIxNzcyNzksIiJdLDApXSxiWzFdXSgzOCxLW2JbMl1dLHRoaXMsS1tiWzJdXSxiWzBdKSx6KTxiWzJdfHx6PktbMV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgY291bnQgdmFsdWUiKTtDPUtbMl07Zm9yKHp8PWJbMl07ejspaWYoeiYxJiYoQys9Siksej4+Pj0xKUorPUo7cmV0dXJuIEN9fSksa1syN10oMjksIkFycmF5LnByb3RvdHlwZS5maW5kSW5kZXgiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLKXtyZXR1cm4gSFsxMF0oOCwwLHRoaXMseixLKS55Tn19KSxrKVsyN10oMzAsIkFycmF5Lm9mIixmdW5jdGlvbihCKXtyZXR1cm4gQj9COgpmdW5jdGlvbih6KXtyZXR1cm4gQXJyYXkuZnJvbShhcmd1bWVudHMpfX0pLGtbMjddKDI5LCJNYXRoLnNpZ24iLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeil7cmV0dXJuKHo9TnVtYmVyKHopLHo9PT0wKXx8aXNOYU4oeik/ejp6PjA/MTotMX19KSxrKVsyN10oMzAsIkFycmF5LnByb3RvdHlwZS5mbGF0IixmdW5jdGlvbihCKXtyZXR1cm4gQj9COmZ1bmN0aW9uKHosSyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoKEs9KHo9ej09PXZvaWQgMD8xOnosW10pLHRoaXMpLGZ1bmN0aW9uKEosQyxiKXtpZigoYj1bInB1c2giLDAsImFwcGx5Il0sQXJyYXkuaXNBcnJheShKKSkmJno+YlsxXSlDPUFycmF5LnByb3RvdHlwZS5mbGF0LmNhbGwoSix6LTEpLEtbYlswXV1bYlsyXV0oSyxDKTtlbHNlIEtbYlswXV0oSil9KSxLfX0pLHt9KSxVbD0oKGtbMjddKDI3LCJTdHJpbmcucHJvdG90eXBlLnBhZEVuZCIsZnVuY3Rpb24oQil7cmV0dXJuIEI/QjpmdW5jdGlvbih6LApLLEosQyxiLEEsdixwLFEpe3JldHVybihDPShKPXlbMzFdKDYsKFE9WzIsKGI9WyIiLG51bGwsMF0sInN1YnN0cmluZyIpLCJyZXBlYXQiXSxiWzFdKSx0aGlzLGJbMV0sInBhZFN0YXJ0IiksQT16LUoubGVuZ3RoLEshPT12b2lkIDApP1N0cmluZyhLKToiICIsQT5iW1FbMF1dJiZDPyh2PWQwKEEvQy5sZW5ndGgpLHA9Q1tRWzJdXSh2KVtRWzFdXShiW1FbMF1dLEEpKTpwPWJbMF0sSikrcH19KSxrWzI3XSgyOSwiQXJyYXkucHJvdG90eXBlLmZpbGwiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6ZnVuY3Rpb24oeixLLEosQyxiLEEsdil7aWYoSzwoQT0odj0oQz1bMCxudWxsXSxbMCwxXSksdGhpcykubGVuZ3RofHxDW3ZbMF1dLEMpW3ZbMF1dJiYoSz1oWShDW3ZbMF1dLEErSykpLEo9PUNbdlsxXV18fEo+QSlKPUE7Zm9yKGI9KChKPU51bWJlcihKKSxKPENbdlswXV0pJiYoSj1oWShDW3ZbMF1dLEErSikpLE51bWJlcihLfHxDW3ZbMF1dKSk7YjxKO2IrKyl0aGlzW2JdPXo7cmV0dXJuIHRoaXN9fSksCm0pWzM4XSgxLCIuIiwwLG51bGwsImZpbGwiLGZ1bmN0aW9uKEIpe3JldHVybiBCP0I6QXJyYXkucHJvdG90eXBlLmZpbGx9KSxVbHx8e30pLEdsPXRoaXN8fHNlbGYsJEs9ImNsb3N1cmVfdWlkXyIrKChqNigpLGFRKCksWHMoKSxBZSkoKSoxRTk+Pj4wKSxSeD1mdW5jdGlvbihCLHosSyl7dmFyIEo9WyJwcm90b3R5cGUiLCJhcHBseSIsImluZGV4T2YiXTtyZXR1cm4gUng9RnVuY3Rpb25bSlswXV0uYmluZCYmRnVuY3Rpb25bSlswXV0uYmluZC50b1N0cmluZygpW0pbMl1dKGUzMCgpKSE9LTE/aEk6VjksUnhbSlsxXV0obnVsbCxhcmd1bWVudHMpfSxxWj0wLHhLRz0oZUMoKSx4S0d8fHtpZDpkVygpfSksREtxPURLcXx8e2lkOmZHbCgpfSxaNz0oKCgoKChwSSgpLG9lKSgpLHNTKCkseXIoKSxBM3EpKCksYmkpKCksVXVoKSgpLGRIKSgpLEtJKCksWkwoKSxLSGwoKSx7fSksY1I9KCgoKCgoKCgoTjRoKCksT0koKSxwRSkoKSxqOSgpLEp4OCkoKSxONVooKSxWTCgpLEpzKCksQWwoKSwKZkIpKCksQk0oKSxCQikoKSxUX1opKCksYjVEKCksRncoKSxVYSgpLExlKCksRFApKCksQ2kpKCksVVEoKSxpUykoKSxncygpLFJJKCksZnVuY3Rpb24oQil7cmV0dXJuIEhbNDJdLmNhbGwodGhpcywxLEIpfSkscEY9KCgoKCgoeWVZKCksTlcoKSxjNCgpLFljKSgpLFpqKSgpLHFWKSgpLHFXKSgpLG8wWSkoKSxuZjMoKSx6VSgpLGZ1bmN0aW9uKCl7cmV0dXJuIG1bMzNdLmNhbGwodGhpcywzNSl9KSxWQz1bMSwoS1YoKSwyKV0sZkFEPWZBRHx8e2lkOmR1MygpfSxvVzg9b1c4fHx7aWQ6VzZEKCl9LEw2eD1MNnh8fHtpZDpoXygpfSxSZlo9UmZafHx7aWQ6dEgoKX0sckx3PXJMd3x8e2lkOkYwKCl9LFZ1OD1WdTh8fHtpZDpSRCgpfSxHdTg9R3U4fHx7aWQ6Ym44KCl9LEhmMz1IZjN8fHtpZDpiUncoKX0sZWZZPWVmWXx8e2lkOmRoKCl9LFByWT1Qcll8fHtpZDpTd2goKX0sS1I9ZnVuY3Rpb24oKXtyZXR1cm4gT1sxXS5jYWxsKHRoaXMsNCl9LCRLOD0kSzh8fHtpZDpGRCgpfSxsSz1mdW5jdGlvbihCKXtyZXR1cm4gZVsyN10uY2FsbCh0aGlzLAozMyxCKX0scVhsPXFYbHx8e2lkOkpZOCgpfSxpZlo9aWZafHx7aWQ6UXIoKX0seUxHPXlMR3x8e2lkOnQ3KCl9LFlYeD1ZWHh8fHtpZDpxZygpfSxjTE09Y0xNfHx7aWQ6TVcoKX0sU1h3PVNYd3x8e2lkOm9PMygpfTtmdW5jdGlvbiBOUChCLHosSyl7cmV0dXJuIE9bNDldLmNhbGwodGhpcywxLEIseixLKX12YXIgZ0s9KEhbMjRdKDU3LE5QLEVycm9yKSxmdW5jdGlvbigpe3JldHVybiBEWzQ5XS5jYWxsKHRoaXMsMSl9KTtOUC5wcm90b3R5cGUubmFtZT1nOE4oKTsKdmFyIFlZLG1LeD0oWl8oKSxtS3h8fHtpZDp3aE4oKX0pLGxBRD1sQUR8fHtpZDp0ZygpfSxFVzg9RVc4fHx7aWQ6aXkoKX0sWFNoPVhTaHx8e2lkOmt0KCl9LHVFdz11RXd8fHtpZDokRygpfSxhQXc9YUF3fHx7aWQ6ZUEoKX0saGZaPWhmWnx8e2lkOmFJKCl9LGRLOD1kSzh8fHtpZDpvRygpfSxrdTM9a3UzfHx7aWQ6JDMoKX0sdHVHPXR1R3x8e2lkOk00KCl9LFVLMz1VSzN8fHtpZDp3eigpfSxNdVo9TXVafHx7aWQ6S3UoKX0sd1NOPXdTTnx8e2lkOktIKCl9LElBaD1JQWh8fHtpZDpQcWgoKX0sRjZoPUY2aHx8e2lkOkFIKCl9LEJvRD0oKChqdygpLFdDKSgpLHdCKCkseVcoKSxxNikoKSxjaSgpLEJvRHx8e2lkOkxWKCl9KSxzYjA9c2IwfHx7aWQ6TVkoKX0semhZPXpoWXx8e2lkOlRTKCl9LEt2Mz1LdjN8fHtpZDpleSgpfSxKNjA9SjYwfHx7aWQ6clcoKX0sQzkzPUM5M3x8e2lkOnZZKCl9LGJiOD1iYjh8fHtpZDpTMigpfSxBNnE9QTZxfHx7aWQ6SWsoKX0sdkxsPXZMbHx8e2lkOnNhKCl9LApUb1k9VG9ZfHx7aWQ6UTEoKX0samI4PWpiOHx8e2lkOmtsOCgpfSxwVGg9cFRofHx7aWQ6R2UoKX0sUWJ3PVFid3x8e2lkOmhGcSgpfSxuTFk9bkxZfHx7aWQ6bHYoKX0sWmJoPVpiaHx8e2lkOmtqeCgpfSxXdjA9V3YwfHx7aWQ6aTgoKX0sZ0w4PWdMOHx8e2lkOkhLWSgpfSxOb1o9Tm9afHx7aWQ6Q2UoKX0sT2JHPU9iR3x8e2lkOm95KCl9LHhQOD14UDh8fHtpZDpCbXEoKX0sRFBHPURQR3x8e2lkOmFsMygpfSxmeGg9ZnhofHx7aWQ6UFkoKX0sb0xaPW9MWnx8e2lkOklscSgpfSxMdng9THZ4fHx7aWQ6bmMoKX0sUmh4PVJoeHx8e2lkOlRBKCl9LHI2dz1yNnd8fHtpZDpGTjMoKX0sbXY9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1sxMV0uY2FsbCh0aGlzLDI0LEIseil9LFZCcT1WQnF8fHtpZDppYSgpfSxHNWg9RzVofHx7aWQ6bjMoKX0sSGJsPUhibHx8e2lkOmJRTSgpfSxlaE09ZWhNfHx7aWQ6dU84KCl9LFA5Tj1QOU58fHtpZDplTygpfSwkUDA9JFAwfHx7aWQ6VDYoKX0scUhHPXFIR3x8CntpZDokUygpfSxpYk49aWJOfHx7aWQ6VGMoKX0seTY4PXk2OHx8e2lkOnJJKCl9LFlITT1ZSE18fHtpZDpMTlooKX0sYzY4PWM2OHx8e2lkOkVmKCl9LFNITT1TSE18fHtpZDpvZmwoKX0sbVA4PW1QOHx8e2lkOk9MKCl9LGx4cT1seHF8fHtpZDpZUygpfSxFTGg9RUxofHx7aWQ6TEooKX0sWFQ4PVhUOHx8e2lkOm5oTigpfSx4MT1mdW5jdGlvbigpe3JldHVybiB5WzVdLmNhbGwodGhpcywxKX0sdUowPXVKMHx8e2lkOngyKCl9LGF4cT1heHF8fHtpZDpzRygpfSxoaDg9aGg4fHx7aWQ6bzcoKX0sZFAzPWRQM3x8e2lkOmRMKCl9LGs1OD1rNTh8fHtpZDpkcygpfSx0QjA9dEIwfHx7aWQ6biQoKX0sVVA4PVVQOHx8e2lkOllkdygpfSxNQnc9TUJ3fHx7aWQ6Y1koKX0sd1QzPXdUM3x8e2lkOlFtKCl9LEl4OD1JeDh8fHtpZDokVXgoKX0sQlBsPShPWzhdKDEwLDQxLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtmb3IocD0odj1bIiIsMCwxXSw5MSk7cCE9NTspaWYocD09MTUpQz1iLm5leHQoKSwKcD05NjtlbHNlIGlmKHA9PTIwKXA9OTY7ZWxzZSBpZihwPT05NilwPUMuZG9uZT92WzFdOjc0O2Vsc2UgaWYocD09NzkpcD12WzFdO2Vsc2UgaWYocD09NzQpQT1DLnZhbHVlLHA9MztlbHNle2lmKHA9PXZbMV0pcmV0dXJuIEEmJkEubGVuZ3RoPj0yP0FbdlsyXV06IiI7cD09Mz9wPS0tSjw9dlsxXT83OToxNTpwPT05MSYmKHo9eVsxMV0oMzYseiwiZyIrSyksQT12b2lkIDAsYj1nWzEyXSg0LCh2WzBdK0IpW1cxK0Z2M10oeikpLEM9Yi5uZXh0KCkscD0yMCl9fSksQlBsKXx8e2lkOiRhKCl9LERXPWZ1bmN0aW9uKEIpe3JldHVybiBPWzQ1XS5jYWxsKHRoaXMsNSxCKX0sc2NxPShtWzM2XSg0NSxmdW5jdGlvbihCKXtyZXR1cm4gQiE9PW51bGwmJkIhPT12b2lkIDB9LG91KCkpLHNjcXx8e2lkOkdoTSgpfSksekhZPSgoUHJvbWlzZS5yZXNvbHZlKCkscWwpKCksaFcoKSx6SFkpfHx7aWQ6cjhEKCl9LE1RLFU0PXR5cGVvZiBUZXh0RGVjb2RlciE9PSJ1bmRlZmluZWQiLHdBLElVPXZvaWQgMCwKSFUsR289Qm0oKSxWVT10eXBlb2YgU3RyaW5nLnByb3RvdHlwZVtHb109PT0iZnVuY3Rpb24iLHJ3PXR5cGVvZiBUZXh0RW5jb2RlciE9PSJ1bmRlZmluZWQiLGE0PVN0cmluZy5wcm90b3R5cGUudHJpbT9mdW5jdGlvbihCKXtyZXR1cm4gQi50cmltKCl9OmZ1bmN0aW9uKEIpe3JldHVybi9eW1xzXHhhMF0qKFtcc1xTXSo/KVtcc1x4YTBdKiQvLmV4ZWMoQilbMV19LGZtPSgoQWgoKSx5WSkoKSxxbigpLEl5KCksZnVuY3Rpb24oQil7cmV0dXJuIGVbMzZdLmNhbGwodGhpcywxOSxCKX0pLEtZMz1LWTN8fHtpZDpYVCgpfSxsRj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBEWzEyXS5jYWxsKHRoaXMsOCxKLEssQyx6LEIpfSxnZz1nMFsxXSgyNiwxLCExKSxSYj1nMFsxXSgzMCw2MTA0MDEzMDEsITEpLG9SPSgoZzBbZzBbKCgoZzBbMV0oNTksODk5NTg4NDM3LCExKSxnMClbMV0oMzEsNzcyNjU3NzY4LCEwKSxnMClbMV0oNjIsNTEzNjU5NTIzLCExKSxnMClbMV0oNjMsNTY4MzMzOTQ1LAohMCksMV0oNjEsMTMzMTc2MTQwMywhMCksMV0oMjksNjUxMTc1ODI4LCExKSxnMFsxXSg1OCw3MjI3NjQ1NDIsITEpLGcwWzFdKDI5LDc0ODQwMjE0NSwhMSksZzApWzFdKDYzLDc0ODQwMjE0NiwhMSksZzApWzFdKDI4LDc0ODQwMjE0NywhMCksYlQ9KChnMFtnMFsoZzBbKGcwW2cwWyhnMFtnMFsxXSgzMSwxNjAyNjEzMTg1LCExKSwxXSgyNiw4NjEzNzc3MjMsITEpLGcwKVsxXSg2Miw4NjEzNzc3MjQsZ2cpLDFdKDMwLDg2OTMzNjkwMywhMSksMV0oNTgsODgyNjc0NTA3LCExKSxnMClbMV0oNjEsODY5MzM2OTA0LGdnKSwxXSgyNyw4NjkzMzY5MDUsZ2cpLGcwKVsxXSg1OSwyODM5NTMxNTUsITEpLGcwWzFdKDYwLDkxOTQ0NDgyNCwhMSksMV0oNjAsOTMxNDY4MDQ3LCExKSwxXSgyOCw5Mjg4NzUzOTgsITEpLGcwKVsxXSgyNyw2ODM3NDkyMDEsITEpLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4gZVs0OF0uY2FsbCh0aGlzLDIsQix6LEspfSksTmI9KGcwW2cwW2cwWzFdKDI5LDIxNDc0ODM2NDQsCiExKSxnMFsxXSgyNywyMTQ3NDgzNjQ1LCExKSwxXSgyOCwyMTQ3NDgzNjQ2LGdnKSwxXSgyNiwyMTQ3NDgzNjQ3LCEwKSxHbCkubmF2aWdhdG9yLFo4LGl1PShaOD1OYj9OYi51c2VyQWdlbnREYXRhfHxudWxsOm51bGwsWGwoKSksUVU9am4wKCksako9SXkoKSxxRz1sSTgoKSxQTj1rJCgpLCRKPXFuKCksUVI9QmREKCksbjE9RXEoKSxKTT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4ga1syM10uY2FsbCh0aGlzLDMyLEIseixLLEopfSxKTTg9QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mP2Z1bmN0aW9uKEIseil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKEIseixCLmxlbmd0aC0xKX06ZnVuY3Rpb24oQix6LEssSixDKXtpZih0eXBlb2YgQj09PSgoSj0oQz1bMCwxLCJsYXN0SW5kZXhPZiJdLEIpLmxlbmd0aC1DWzFdLEo8Q1swXSkmJihKPWhZKENbMF0sQi5sZW5ndGgrSikpLCJzdHJpbmciKSlyZXR1cm4gdHlwZW9mIHohPT0ic3RyaW5nInx8ei5sZW5ndGghPQpDWzFdPy0xOkJbQ1syXV0oeixKKTtmb3IoSz1KO0s+PUNbMF07Sy0tKWlmKEsgaW4gQiYmQltLXT09PXopcmV0dXJuIEs7cmV0dXJuLTF9LG9YPUFycmF5LnByb3RvdHlwZS5zb21lP2Z1bmN0aW9uKEIseil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoQix6LHZvaWQgMCl9OmZ1bmN0aW9uKEIseixLLEosQyxiKXtmb3IoQz0oYj1bInNwbGl0IiwiY2FsbCIsIShLPUIubGVuZ3RoLDEpXSxKPXR5cGVvZiBCPT09InN0cmluZyI/QltiWzBdXSgiIik6QiwwKTtDPEs7QysrKWlmKEMgaW4gSiYmeltiWzFdXSh2b2lkIDAsSltDXSxDLEIpKXJldHVybiEwO3JldHVybiBiWzJdfSxrVj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihCLHope3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKEIseix2b2lkIDApfTpmdW5jdGlvbihCLHosSyl7aWYodHlwZW9mIEI9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIHohPT0ic3RyaW5nInx8ei5sZW5ndGghPTE/Ci0xOkIuaW5kZXhPZih6LDApO2ZvcihLPTA7SzxCLmxlbmd0aDtLKyspaWYoSyBpbiBCJiZCW0tdPT09eilyZXR1cm4gSztyZXR1cm4tMX0sRzM9ZnVuY3Rpb24oQix6KXtyZXR1cm4gWVs0NV0uY2FsbCh0aGlzLDE4LEIseil9LGtoPWZ1bmN0aW9uKCl7cmV0dXJuIGVbMTNdLmNhbGwodGhpcyw0KX0scjQ9QXJyYXkucHJvdG90eXBlLmZvckVhY2g/ZnVuY3Rpb24oQix6LEspe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoQix6LEspfTpmdW5jdGlvbihCLHosSyxKLEMsYil7Zm9yKGI9dHlwZW9mIEI9PT0oSj1CLmxlbmd0aCwic3RyaW5nIik/Qi5zcGxpdCgiIik6QixDPTA7QzxKO0MrKylDIGluIGImJnouY2FsbChLLGJbQ10sQyxCKX07CmZ1bmN0aW9uIGphKEIseil7Zm9yKHZhciBLPVswLDEsN10sSj1LWzFdO0o8YXJndW1lbnRzLmxlbmd0aDtKKyspe3ZhciBDPWFyZ3VtZW50c1tKXTtpZihZWzhdKEtbMl0sIm51bWJlciIsQykpe3ZhciBiPUMubGVuZ3RofHxLWzBdLEE9Qi5sZW5ndGh8fEtbMF07Zm9yKHZhciB2PUtbQi5sZW5ndGg9QStiLDBdO3Y8Yjt2KyspQltBK3ZdPUNbdl19ZWxzZSBCLnB1c2goQyl9fWZ1bmN0aW9uIFc3KEIseixLLEope0FycmF5LnByb3RvdHlwZS5zcGxpY2UuYXBwbHkoQixDUVooYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBDUVooQix6LEspe3ZhciBKPVsic2xpY2UiLCJwcm90b3R5cGUiLCJjYWxsIl07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8PTI/QXJyYXlbSlsxXV1bSlswXV1bSlsyXV0oQix6KTpBcnJheVtKWzFdXVtKWzBdXVtKWzJdXShCLHosSyl9CnZhciBBTT1mdW5jdGlvbihCKXtyZXR1cm4ga1s0Ml0uY2FsbCh0aGlzLDMsQil9LGVCPWZ1bmN0aW9uKEIpe3JldHVybiBZWzQ2XS5jYWxsKHRoaXMsMzYsQil9LGJ4bD0oV21bbzkoKV09ZnVuY3Rpb24oKXt9LGdbOF0oMTgsIk9wZXJhIikpLFc2PWZ1bmN0aW9uKCl7cmV0dXJuIEdbNV0uY2FsbCh0aGlzLDI3KX0sT2I9SFsyMl0oMTYsIk1TSUUiKSx4eD1EWzIwXSgzOSwiRWRnZSIpLGhYPURbMjBdKDExLCJHZWNrbyIpJiYhKERbMjBdKDE2LCJ3ZWJraXQiLEhbMzNdKDMwKS50b0xvd2VyQ2FzZSgpKSYmIURbMjBdKDM1LCJFZGdlIikpJiYhKERbMjBdKDEsIlRyaWRlbnQiKXx8RFsyMF0oNywiTVNJRSIpKSYmIURbMjBdKDEzLCJFZGdlIiksa2U9RFsyMF0oMzAsIndlYmtpdCIsSFszM10oMTcpLnRvTG93ZXJDYXNlKCkpJiYhRFsyMF0oMzcsIkVkZ2UiKSxCYz1rZSYmRFsyMF0oMywiTW9iaWxlIiksZHI9KHdmOCgpLEgpWzQ2XSg0MCksRDc9ZnVuY3Rpb24oKXtyZXR1cm4ga1s0MF0uY2FsbCh0aGlzLAoxMCl9LE80PUdbNDVdKDI3KSxzND1PWzhdKDU2KSxJMj1IWzIzXSgyLCJpUG9kIiwiaVBob25lIiksRmY9RFsyMF0oMTUsImlQYWQiKSxBTTM9RFsyMF0oNywiaVBvZCIpLGZsPXlbOF0oMTQsImlQb2QiKSxyaT1mdW5jdGlvbihCKXtyZXR1cm4gWVsxMF0uY2FsbCh0aGlzLDI1LEIpfSxxUT1mdW5jdGlvbigpe3JldHVybiBEWzM5XS5jYWxsKHRoaXMsMTcpfSxQZD0oKGZ1bmN0aW9uKEIseil7aWYoej1bImV4ZWMiLDMzLDI0XSxCPUhbelsxXV0oelsyXSksaFgpcmV0dXJuL3J2OihbXlwpO10rKShcKXw7KS9belswXV0oQik7aWYoeHgpcmV0dXJuL0VkZ2VcLyhbXGRcLl0rKS9belswXV0oQik7aWYoT2IpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspL1t6WzBdXShCKTtpZihrZSlyZXR1cm4vV2ViS2l0XC8oXFMrKS9belswXV0oQik7aWYoYnhsKXJldHVybi8oPzpWZXJzaW9uKVsgXC9dPyhcUyspL1t6WzBdXShCKX0oKSxPYikmJkdsW2htKCldJiZjQygpLGZ1bmN0aW9uKEIpe3JldHVybiBrWzI2XS5jYWxsKHRoaXMsCjIsQil9KSx6bj0oR2xbaG0oKV0mJk9iJiZHbFtobSgpXSYmY0MoKSxrKVsyM10oMTMsIkNyaU9TIiksdnNxPUdbMTBdKDMsIlNhZmFyaSIpJiYheVs4XSg2LCJpUG9kIikscHI9RHcoKSxvXz1oWHx8a2UscG49b198fCF2c3EmJnR5cGVvZiBHbC5hdG9iPT0iZnVuY3Rpb24iLFRHPW9ffHx0eXBlb2YgR2wuYnRvYT09ImZ1bmN0aW9uIixFMj1udWxsLHd2PVsxLDJdLGlMPSFPYiYmdHlwZW9mIGJ0b2E9PT0iZnVuY3Rpb24iLGVaPXR5cGVvZiBVaW50OEFycmF5IT09InVuZGVmaW5lZCIsVWQ9eyItIjp0YygpLF86bncoKSwiLiI6WFooKX0sUnIsZUo9e30sTEQ9ZnVuY3Rpb24oQix6LEspe3JldHVybiBZWzI2XS5jYWxsKHRoaXMsNCxCLHosSyl9LHdKPUtvKCksYzcsZXI9dm9pZCAwLEY2PWZ1bmN0aW9uKCl7cmV0dXJuIG1bMjRdLmNhbGwodGhpcywxNyl9LExHPTAsaTQ9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1s0Nl0uY2FsbCh0aGlzLDE2LHosQil9LGVFPTIsQlQ9MixEYj0hMSxnZD0KITAsTjA9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woKT09PSJzeW1ib2wiLExsLFRQTj12ZkQoKSxqY1k9KChMbD1HWzQ5XSgxNyx2b2lkIDAsVFBOLCEwKSxoSkQpKCkscVkpKCksU1A9R1s0OV0oNDgsamNZKSxwYng9KFB5KCksZVlNKCkpLE9kPUdbNDldKDIwLHBieCksWEw9KFdPKCksZ1coKSxmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4ga1sxM10uY2FsbCh0aGlzLDY0LHosSixLLEIpfSksTWE9KCgoSDQoKSxBaikoKSxtNSkoKSxHWzQ5XSgxOSxTeW1ib2woKSkpLFJfLFFjOD0oZ1koKSxGWSgpKSxOXz0oUl89R1s0OV0oMjMsUWM4KSxmdW5jdGlvbihCLHope3JldHVybiBEWzQ0XS5jYWxsKHRoaXMsNDgsQix6KX0pLG5zOD0oZ1koKSxTbSgpKSxBZj1HWzQ5XSg1MCxuczgpLEdPLHZOPWZ1bmN0aW9uKEIpe3JldHVybiBZWzI1XS5jYWxsKHRoaXMsMjQsQil9LFp4cT0oaEgoKSxNQSkoKSx6aD0oR089R1s0OV0oMjEsWnhxKSxmdW5jdGlvbihCKXtyZXR1cm4gZ1s0M10uY2FsbCh0aGlzLAo0OCxCKX0pLFdZaD0oVGt3KCksakEoKSksenE9R1s0OV0oMTYsV1loKSxnc2w9UnEoKSxqVD1HWzQ5XSg0OSwiS28iLGdzbCwhMCksVVksZF89KHRXdygpLGZ1bmN0aW9uKCl7cmV0dXJuIGdbNDVdLmNhbGwodGhpcyw0KX0pLE5QOD1lUigpLHJnPShVWT1HWzQ5XSgxOCxOUDgpLHZBcSgpLEdbNDldKDIyKSksWEc9KCgoQ3UoKSxDdSkoKSx4RCgpLHhEKCkseWEpKE1hdGgubG9nMihoWS5hcHBseShudWxsLGVbMzNdKDI4LE9iamVjdC52YWx1ZXMoe3A5OjEsTnk6MixPZTo0LFNkOjgsSVU6MTYsRFE6MzIsb1U6NjQsdUE6MTI4LEI2OjI1NixhXzo1MTIsSXI6MTAyNCxvTToyMDQ4LHlROjQwOTYsemw6ODE5Mn0pKSkpKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyksQSQ9TjA/TGw6ImdmIixRUD0oa1szOF0oNzksenMsNyksVEopKHpzKSxuaD17fSxjTD17fSxPeDg9dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJnR5cGVvZiBTeW1ib2wuaGFzSW5zdGFuY2UhPSJ1bmRlZmluZWQiLEdrPQpUSih7fSksQXU9VEooe30pLGw9e30seDdEPSh6MCgpLHg3RHx8e2lkOnlZRygpfSksJFg9bVszNl0oMzcsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09Im51bWJlciJ9LHlQKCkpLGV0PWZ1bmN0aW9uKEIseil7cmV0dXJuIFlbMjZdLmNhbGwodGhpcywxLEIseil9LFBzPShtWzM2XSgxMSxmdW5jdGlvbihCKXtyZXR1cm4gTnVtYmVyLmlzU2FmZUludGVnZXIoQil9LGV2KCkpLG1bMzZdKDQwLGZ1bmN0aW9uKEIpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEIpfSxpUjgoKSksbVszNl0oMTAsZnVuY3Rpb24oQil7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShCKX0sVzM4KCkpLG0pWzM2XSg0NyxmdW5jdGlvbihCKXtyZXR1cm4gdHlwZW9mIEI9PT0ic3RyaW5nIn0sY2YoKSkscWM9KG1bMzZdKDQzLGZ1bmN0aW9uKEIpe3JldHVybiBCLnRyaW0oKSE9PSIifSxRVygpKSxtWzM2XSgzOCxmdW5jdGlvbihCKXtyZXR1cm4gQi50cmltKCk9PT0iIn0sanBZKCkpLG0pWzM2XSgzOSxmdW5jdGlvbihCKXtyZXR1cm4gdHlwZW9mIEI9PT0KImJvb2xlYW4ifSx1bSgpKSxEN009bVszNl0oMTAsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09ImJpZ2ludCJ9LFp5KCkpLGZLTT0oKG1bMzZdKDM5LGZ1bmN0aW9uKEIpe3JldHVybiBCPT09bnVsbH0sSjAoKSksbVszNl0oMTAsZnVuY3Rpb24oQil7cmV0dXJuIEI9PT12b2lkIDB9LENuKCkpLG1bMzZdKDE1LGZ1bmN0aW9uKEIpe3JldHVybiBCPT1udWxsfSxTOCgpKSxtKVszNl0oMzcsZnVuY3Rpb24oQil7cmV0dXJuIEIhPW51bGwmJnR5cGVvZiBCPT09Im9iamVjdCImJnR5cGVvZiBCLnRoZW49PT0iZnVuY3Rpb24ifSwkRSgpKSxtKVszNl0oNDEsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09ImZ1bmN0aW9uIn0sWiQoKSksd1M9KCgoKCgoKChtWzM2XSg0MyxmdW5jdGlvbihCKXtyZXR1cm4gZktNKEIpP0IudFk9PT0hMDohMX0saiQoKSksbSlbMzZdKDQxLGZ1bmN0aW9uKEIpe3JldHVybiFpc05hTihCKX0sd24oKSksbVszNl0oMzksZnVuY3Rpb24oQil7cmV0dXJuIEIuZ2xvYmFsfSwKTGQoKSksbVszNl0oMTUsZnVuY3Rpb24oQil7cmV0dXJuIEIuc3RpY2t5fSx0cygpKSxtKVszNl0oNDUsZnVuY3Rpb24oQil7cmV0dXJuISFCJiYodHlwZW9mIEI9PT0ib2JqZWN0Inx8dHlwZW9mIEI9PT0iZnVuY3Rpb24iKX0sWU4oKSksbVszNl0oMTEsZnVuY3Rpb24oKXtyZXR1cm4hMH0sZ0EoKSksbSlbMThdKDgxKSxtKVsxOF0oODApLG1bMjddKDY3KSxtKVsyN10oNjYpLGUpWzIxXSgxKSxlKVsyMV0oOCksZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gUlsyOV0uY2FsbCh0aGlzLDY3LHosSixCLEMsSyl9KTtmdW5jdGlvbiBvc1koKXt2YXIgQj1HMi5hcHBseSgwLGFyZ3VtZW50cyk7cmV0dXJuIG1bMzZdKDQwLGZ1bmN0aW9uKHope3JldHVybiBCLnNvbWUoZnVuY3Rpb24oSyl7cmV0dXJuIEsoeil9KX0pfQp2YXIgTFk4PUxZOHx8e2lkOkZLKCl9LEEzPXR5cGVvZiBHbC5CaWdJbnQ9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgR2wuQmlnSW50KDApPT09ImJpZ2ludCIsUkhZPVJIWXx8e2lkOmJzKCl9LHJNRz0oUWUucHJvdG90eXBlW1FlLnByb3RvdHlwZS52YWx1ZU9mPShRZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMudi50b1N0cmluZyhCKX0sZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiQ29udmVydCBKU0JJIGluc3RhbmNlcyB0byBuYXRpdmUgbnVtYmVycyB1c2luZyBgdG9OdW1iZXJgLiIpO30pLFN5bWJvbC50b1ByaW1pdGl2ZV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52fSxyTUd8fHtpZDpFZSgpfSksVDI9bVszNl0oNDUsZnVuY3Rpb24oQil7cmV0dXJuIEEzP0Q3TShCKTpQcyhCKSYmL14oPzotP1sxLTldXGQqfDApJC8udGVzdChCKX0senYoKSksajc9bVszNl0oMTEsZnVuY3Rpb24oQix6KXtyZXR1cm4oej1bMCwyMSwzNV0sQTMpP0I+PVY3bCYmQjw9CkcyRzpCW3pbMF1dPT09Ii0iP0hbelsyXV0oelsxXSx6WzBdLEIsSHgwKTpIW3pbMl1dKDM3LHpbMF0sQixlSGgpfSx2JCgpKSxIeDA9TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIudG9TdHJpbmcoKSxWN2w9QTM/QmlnSW50KE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKTp2b2lkIDAsZUhoPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLnRvU3RyaW5nKCksRzJHPUEzP0JpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik6dm9pZCAwLFZWPShtWzM2XSgzOCxmdW5jdGlvbihCLHope3JldHVybiB6PVs5LDM1LDBdLEEzP0I+PVBRMCYmQjw9JDdNOkJbelsyXV09PT0iLSI/SFt6WzFdXSh6WzBdLHpbMl0sQixWVik6SFt6WzFdXSg1LHpbMl0sQixHVyl9LFhpKCkpLGlzKCkpLFBRMD1BMz9CaWdJbnQoVlYpOnZvaWQgMCxHVz1BYigpLCQ3TT1BMz9CaWdJbnQoR1cpOnZvaWQgMCxxemg9KG1bMzZdKDE1LGZ1bmN0aW9uKEIpe3JldHVybiBBMz9CPj1xemgmJkI8PWl4MDpCWzBdPT09Ii0iPyExOgpIWzM1XSgxNywwLEIsSDEpfSxBbigpKSxBMyk/QmlnSW50KDApOnZvaWQgMCxIMT1JSSgpLGl4MD1BMz9CaWdJbnQoSDEpOnZvaWQgMDttZygpOwp2YXIgaUcsSGg9dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNsaWNlPT09ImZ1bmN0aW9uIix4Tz0wLE9PPTAseU1sPXlNbHx8e2lkOnM5WigpfSxGRT1OdW1iZXIuaXNGaW5pdGUsS3c9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzVWludE46dm9pZCAwLE51PU51bWJlci5pc1NhZmVJbnRlZ2VyLEQ0PXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwLFpmPU1hdGgudHJ1bmMsZnM9L1tceDAwLSBceDIyXHgyNy1ceDI5XHgzY1x4M2VcXFx4N2JceDdkXHg3Zlx4ODVceGEwXHUyMDI4XHUyMDI5XHVmZjAxXHVmZjAzXHVmZjA0XHVmZjA2LVx1ZmYwY1x1ZmYwZlx1ZmYxYVx1ZmYxYlx1ZmYxZFx1ZmYxZlx1ZmYyMFx1ZmYzYlx1ZmYzZF0vZyxEUz1mdW5jdGlvbihCKXtyZXR1cm4geVsxM10uY2FsbCh0aGlzLDM2LEIpfSxjUz1JSSgpLFlXPWNTLmxlbmd0aCxESz1pcygpLHhzPURLLmxlbmd0aCxvYz1BYigpLGZ4PW9jLmxlbmd0aCwKWE89e30sSkU9ZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBEWzIxXS5jYWxsKHRoaXMsNixCLEssSix6LEMsYil9LENGPWZ1bmN0aW9uKCl7cmV0dXJuIERbNDldLmNhbGwodGhpcywxMil9LHlqPWZ1bmN0aW9uKEIpe3JldHVybiBSWzI2XS5jYWxsKHRoaXMsMSxCKX07CmZ1bmN0aW9uIEE1KEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSl7aWYoZj0oYz0oVT0oTT1bbnVsbCwwLDFdLFsxLDFFMywyXSksSClbMTJdLmJpbmQobnVsbCw4KSxIKVswXS5iaW5kKG51bGwsMyksSy5sZW5ndGh8fEope2ZvcihkPU1bbj1NW1VbMF1dLFE9Sy5sZW5ndGgtTVtWPU1bVVswXV0sYj1NW1VbMF1dLFVbMl1dLFVbMF1dLFo9TVtVWzBdXTtRPj1NW1VbMF1dO1EtLSlMPUtbUV0sSiYmUT09PUsubGVuZ3RoLU1bVVsyXV0mJkw9PT1KfHwoYisrLEwhPU1bMF0mJm4rKyk7aWYoSilmb3IoeCBpbiBKKUM9K3gsaXNOYU4oQyl8fChkKz1ZWzQwXSgzMSwxMCxVWzFdLEMpLForKyxDPlYmJihWPUMpKTtmb3IoTj0oYT0ocD0ocj0oaD0oRT1CLGMoYixuKStmKFosVixkKSksbiksZCksViksSy5sZW5ndGgpLU1bVVsyXV0sdT1aO04+PU1bVVswXV07Ti0tKXY9S1tOXSx2PT1NWzBdfHxKJiZOPT09Sy5sZW5ndGgtTVtVWzJdXSYmCnY9PT1KfHwocT1OLXosUz1jKHEscikrZih1LGEscCksUzxoJiYoaD1TLEU9TVtVWzJdXStxKSx1Kyssci0tLHArPVlbNDBdKDM0LDEwLFVbMV0scSksYT1oWShhLHEpKTtpZih0PWMoTVtVWzBdXSxNW1VbMF1dKStmKHUsYSxwKSx0PGgmJihFPU1bVVsyXV0saD10KSxKKWZvcihBIGluIHI9bix1PVosYT1WLHA9ZCxKKVg9K0EsaXNOYU4oWCl8fFg+PTEwMjR8fCh1LS0scisrLHAtPUEubGVuZ3RoLFA9YyhYLHIpK2YodSxhLHApLFA8aCYmKEU9TVtVWzJdXStYLGg9UCkpO1c9RX1lbHNlIFc9TVtVWzJdXTtyZXR1cm4gV312YXIgb1Y9KEE1W1VZXT1NeixnWzI5XS5iaW5kKG51bGwsMSkpLGVQPVtdLE0wPWZ1bmN0aW9uKEIpe3JldHVybiBPWzRdLmNhbGwodGhpcyw3LEIpfTsKaWYoT3g4KXt2YXIgZVE9e307ekcoZ1szOV0uYmluZChudWxsLDE3KSwoZVFbU3ltYm9sLmhhc0luc3RhbmNlXT17dmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcih2b2lkIDApO30sY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9LGVRKSl9CnZhciBmdyxmeSxvRSxKTD1HWzMxXSg4MywwKSx1cj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIERbM10uY2FsbCh0aGlzLDcsQix6LEspfSxzSz0oT1s4XSg2LDMxLHlbNDJdLmJpbmQobnVsbCwxMikpLGZ1bmN0aW9uKEIpe3JldHVybiBIWzZdLmNhbGwodGhpcywyLEIpfSksZ1A9KE9bOF0oOCwoTjcucHJvdG90eXBlLmluaXQ9KChONy5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnY9dGhpcy5pfSxONy5wcm90b3R5cGUpLmNsZWFyPWZ1bmN0aW9uKEIseil7dGhpc1soKHRoaXNbQj1bbnVsbCwwLCEoej1bIk0iLCJTUiIsMV0sMSldLHpbMV1dPUJbMl0sdGhpcykuaT1CW3pbMl1dLHRoaXMpLnY9Qlt6WzJdXSx0aGlzLkE9QlsyXSx0aGlzLlg9Qlt6WzJdXSx6WzBdXT1CWzBdfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXt0aGlzW2I9KHRoaXMudUQ9KEE9WyJTUiIsMiwoQz1KPT09dm9pZCAwP3t9OkosMzUpXSxDLnVEPT09dm9pZCAwKT8hMTpDLnVELENbQVswXV09PT12b2lkIDA/CiExOkNbQVswXV0pLEFbMF1dPWIsQiYmUltBWzJdXShBWzFdLEFbMV0sdGhpcyxCLHosSyl9KSwzNyksa1szNl0uYmluZChudWxsLDIxKSksW10pLE1VPTAsZmc9KEpFLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbihCKXsoKChCPVsiWCIsImkiLCJBIl0sdGhpcykudi5yZXNldCgpLHRoaXMuTT0tMSx0aGlzW0JbMl1dPXRoaXMudi52LHRoaXMpW0JbMV1dPS0xLHRoaXMpW0JbMF1dPS0xfSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBPWzIzXS5jYWxsKHRoaXMsMSxCLHosSyxKLEMpfSksYWM9W10sWXpNPVl6TXx8e2lkOk5FKCl9LHQ2LGtMLElGLFpDLGg2LGFiLG84PWZ1bmN0aW9uKCl7cmV0dXJuIEdbNl0uY2FsbCh0aGlzLDgpfSxVSCxNUCx3byx6Rj0oeFAucHJvdG90eXBlLmVuZD0oeFAucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYubGVuZ3RofSxmdW5jdGlvbihCKXtyZXR1cm4gdGhpcy52PShCPXRoaXMudixbXSksQn0pLGZ1bmN0aW9uKEIpe3JldHVybiBrWzE2XS5jYWxsKHRoaXMsCjEyLEIpfSksY01HPWNNR3x8e2lkOlFuKCl9LEQxPShOUygpLEltKCkseSlbMzldKDgzLG5kKCkpLFAxPShVQigpLHkpWzM5XSg1MSxPaDAoKSksJHg9eVszOV0oMzYsWUQoKSkscWI9eVszOV0oNTEsbXVaKCkpLGlXPXlbMzldKDM2LEhnOCgpKSxTeng9KHoxKCkseVszOV0oMTksUkpaKCkpKSxtN1o9eVszOV0oNjgsUF8oKSkseVY9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZVsyMF0uY2FsbCh0aGlzLDE2LEIseil9LFl4PXlbMzldKDExLGVHKCkpLGMxPXlbMzldKDc2LFNteCgpKSxsSzA9eVszOV0oNzUsUll3KCkpLEVzOD0oa2ROKCkseVszOV0oMTksc3BOKCkpKSxYYmg9eVszOV0oNjgsWlIzKCkpLFNRPXlbMzldKDEyLHh2KCkpLG1WPXlbMzldKDEyLGlYKCkpLGxXPXlbMzldKDExLFQ0KCkpLHV4Wj0oKEkzLnByb3RvdHlwZVtJMy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hVC50b1N0cmluZygpfSxqVF09bmgsSTMucHJvdG90eXBlKS50b0pTT049KEkzLnByb3RvdHlwZS55ZT0KZnVuY3Rpb24oQil7cmV0dXJuIGVOKE9bNDBdKDM2LHRoaXMsQikpfSxmdW5jdGlvbigpe3JldHVybiBPWzQwXSg2OCx0aGlzKX0pLHV4Wnx8e2lkOmludygpfSksSmU9SFsxOF0oOSx5WzZdLmJpbmQobnVsbCwzNCksZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKChiPVsxNiwhMSwhMF0sQi5NKSE9PTIpcmV0dXJuIGJbMV07cmV0dXJuIERbYlswXV0oNDgsMCx5WzQzXSg4LDEyOCxLLEoseiksQixDKSxiWzJdfSksaEU9SFsxOF0oMTcseVs2XS5iaW5kKG51bGwsNDYpLGZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoYj1bNiwhMCwxNl0sQi5NKSE9PTIpcmV0dXJuITE7cmV0dXJuIERbYlsyXV0oNDAsMCx5WzQzXShiWzBdLDEyOCxLLEoseiksQixDKSxiWzFdfSksWnQ9U3ltYm9sKCksTFE9U3ltYm9sKCksdVQ9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMzhdLmNhbGwodGhpcyw2LEIpfSxSZj1TeW1ib2woKSxuUj1TeW1ib2woKSxUWj1mdW5jdGlvbihCKXtyZXR1cm4gWVs0OF0uY2FsbCh0aGlzLAoxMCxCKX0saDg9U3ltYm9sKCksSW8scGE9ZnVuY3Rpb24oKXtyZXR1cm4gR1szM10uY2FsbCh0aGlzLDUpfSxGUyxhS049KCh0aSgpLEhYKSgpLGFLTil8fHtpZDpSaCgpfSxoSGw9aEhsfHx7aWQ6dWEoKX07ZnVuY3Rpb24gZG0oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7cmV0dXJuIFJbMjFdLmNhbGwodGhpcyw1NyxCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKX0KdmFyIGQ3Mz1kNzN8fHtpZDpSRygpfSxFYj1HWzMxXSg4OSwwKSxrMnc9eVszNF0oNjYsbVYsZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoKGI9WzcsKEE9WzQ3LDIxLDUxXSxudWxsKSwzXSx6KSE9YlsxXSl7aWYoeiBpbnN0YW5jZW9mIEkzKXtpZihKPXouVm0pQz1KKHopLEMhPWJbMV0mJkRbNDFdKEFbMl0sYlswXSxCLEssa1s0Ml0oNTUsMiwhMCxDKS5idWZmZXIpO2Vsc2UgbVtBWzBdXSgzMywxLEdPLGJbMl0sTUEoKSk7cmV0dXJufWlmKEFycmF5LmlzQXJyYXkoeikpe21bQVswXV0oMSwxLEdPLGJbMl0sTUEoKSk7cmV0dXJufX15W0FbMV1dKDExLEIseixLKX0sSFsxMl0uYmluZChudWxsLDI5KSksaG89ZnVuY3Rpb24oQil7cmV0dXJuIGVbMjddLmNhbGwodGhpcyw2MixCKX0sbFk9ZnVuY3Rpb24oKXtyZXR1cm4gT1szMF0uY2FsbCh0aGlzLDMpfSxYTj15WzM0XSg5NixTUSxtWzQ4XS5iaW5kKG51bGwsNCksZnVuY3Rpb24oQix6LEssSil7aWYoQi5NIT09KEo9WyExLCJ2IiwKMTA3NV0sMSkpcmV0dXJuIEpbMF07cmV0dXJuIShIWzI3XSgzLHosSyxSWzE4XSgzLEpbMl0sQltKWzFdXSkpLDApfSksdVc9eVszNF0oMzUsU1EsbVs0OF0uYmluZChudWxsLDUpLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQi5NIT09KEM9WyExLDI0LCEwXSwxKSlyZXR1cm4gQ1swXTtyZXR1cm4oeVsyOV0oQ1sxXSxKLEssUlsxOF0oMiwxMDc1LEIudikseiksQylbMl19KSxhXz15WzM0XSgyLFhiaCxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpeyhKPShDPSh2PVsiZ2V0VWludDMyIiwxNCw1XSxbITAsMCwxNl0pLERbdlsxXV0oODIseikpLEohPW51bGwpJiYoRFsyMl0oNzEsdlsyXSxCLEspLEE9Qi52LGI9aUd8fChpRz1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgpKSksYi5zZXRGbG9hdDMyKENbMV0sK0osQ1swXSkseE89Q1sxXSxPTz1iW3ZbMF1dKENbMV0sQ1swXSksZ1syN10oMTEsQ1syXSxBLE9PKSl9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKHY9ClsyNTUsODM4ODYwNywhMF0sUT1bMCwxLDJdLEIuTSE9PTUpcmV0dXJuITE7cmV0dXJuIHA9KEo9KEM9KGI9KEE9SFsyOF0oUVsxXSxRWzFdLEIudiksQT4+PjIzKSZ2W1FbMF1dLEEmdltRWzFdXSksKEE+PjMxKSpRWzJdKStRWzFdLGI9PXZbUVswXV0pP0M/TmFOOkoqSW5maW5pdHk6Yj09UVswXT9KKmZRKFFbMl0sLTE0OSkqQzpKKmZRKFFbMl0sYi0xNTApKihDK2ZRKFFbMl0sMjMpKSxIWzI3XShRWzFdLHosSyxwKSx2W1FbMl1dfSksaGI9eVszNF0oOTksWXgsSFs0XS5iaW5kKG51bGwsMTYpLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4gRFszM10oMTAsITEsITAsSyx6LEIpfSksZGc9eVszNF0oNjYsWXgsSFs0XS5iaW5kKG51bGwsMjQpLGZ1bmN0aW9uKEIseixLLEope3JldHVybiBrWzldKDQsITEsITAsSix6LEssQil9KSxreD15WzM0XSgyLFl4LEhbNF0uYmluZChudWxsLDMyKSxmdW5jdGlvbihCLHosSyl7cmV0dXJuIERbMzNdKDExLCExLCEwLEsseixCKX0pLHQ3bD1EWzRdKDYyLApZeCxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZihDPUdbOF0oNDAsMSwoQT1bMCwoYj1bMzIsImJpZ2ludCIsbnVsbF0sbnVsbCksNV0sZVszOV0uYmluZChBWzFdLDIzKSkseiwhMSksQyE9YlsyXSlmb3IoSj1BWzBdO0o8Qy5sZW5ndGg7SisrKVlbQVsyXV0oMjAsYltBWzBdXSxiWzFdLEssQ1tKXSxCKX0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBCLk0hPT0oYj1bNDcsMixudWxsXSwwKSYmQi5NIT09Mj9DPSExOihKPU9bMjJdKDMsYlsxXSx6LHpbQSRdfDAsSyksQi5NPT1iWzFdP09bYlswXV0oNCxIWzE2XS5iaW5kKGJbMl0sMSksQixKKTpKLnB1c2goSFsxNl0oNyxCLnYpKSxDPSEwKSxDfSksdGI9eVszNF0oMyxZeCxIWzRdLmJpbmQobnVsbCw0MCksZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybihiPVs0LDE2LCEwXSxCLk0pIT09MD9KPSExOihDPUhbYlsxXV0oNSxCLnYpLEhbMjddKGJbMF0seixLLEM9PT1FYj92b2lkIDA6QyksSj1iWzJdKSxKfSksVWI9eVszNF0oMywKWXgsSFs0XS5iaW5kKG51bGwsNDgpLGZ1bmN0aW9uKEIseixLLEope3JldHVybiBrWzldKDUsITEsITAsSix6LEssQil9KSxrbj1mdW5jdGlvbihCKXtyZXR1cm4gT1s2XS5jYWxsKHRoaXMsMixCKX0sTWI9eVszNF0oOTgsYzEsbVsyNl0uYmluZChudWxsLDE3KSxmdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIGI9WzMyLDgsNDBdLEIuTSE9PTA/Qz0hMTooeVsyOV0oYlsxXSxKLEssT1s0NV0oNDgsYlswXSxEW2JbMl1dLmJpbmQobnVsbCwxMyksQi52KSx6KSxDPSEwKSxDfSksd2c9eVszNF0oNjQsYzEsbVsyNl0uYmluZChudWxsLDIxKSxmdW5jdGlvbihCLHosSyxKLEMpe3JldHVybihDPVshMSwiTSIsMjddLEJbQ1sxXV0hPT0wKT9KPUNbMF06KEhbQ1syXV0oNSx6LEssT1s0NV0oNTQsMzIsRFs0MF0uYmluZChudWxsLDE1KSxCLnYpKSxKPSEwKSxKfSksVTdsPXlbMzRdKDY2LGMxLG1bMjZdLmJpbmQobnVsbCwzMyksZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBCLk0hPT0KKGI9WzMyLCExLDI3XSwwKT9DPWJbMV06KEo9T1s0NV0oNDksYlswXSxEWzQwXS5iaW5kKG51bGwsMTYpLEIudiksSFtiWzJdXSg0LHosSyxKPT09RWI/dm9pZCAwOkopLEM9ITApLEN9KSxJXz15WzM0XSg5OSxxYixHWzJdLmJpbmQobnVsbCw0KSxmdW5jdGlvbihCLHosSyxKKXtpZigoSj1bInYiLDI3LDE1XSxCLk0pIT09MClyZXR1cm4hMTtyZXR1cm4hKEhbSlsxXV0oMSx6LEssa1tKWzJdXSgzNSxCW0pbMF1dKSksMCl9KSxGTj1EWzRdKDYwLHFiLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEE9R1s4XSg0MiwoUT1bMTI4LChKPVswLDEsbnVsbF0sMiksMjJdLEopWzFdLERbOF0uYmluZChudWxsLDc0KSx6LCEwKSxBIT1KW1FbMV1dKWZvcihwPUpbMF07cDxBLmxlbmd0aDtwKyspQz1LLGI9Qix2PUFbcF0sdiE9SltRWzFdXSYmKGJOKHYpLERbUVsyXV0oNjQsSlswXSxiLEMpLGtbMTRdKDE2LFFbMF0sYi52LHYpKX0sRFsxOF0uYmluZChudWxsLDE3KSksQlo9RFs0XSg2MywKcWIsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZihiPUdbOF0oNDEsMSwodj1bbnVsbCwxNSw3NV0sQz1bMiwhMCwxMjhdLERbOF0uYmluZCh2WzBdLHZbMl0pKSx6LENbMV0pLGIhPXZbMF0mJmIubGVuZ3RoKXtmb3IoQT0oSj1IWzE5XSg0LENbMF0sSyxCKSwwKTtBPGIubGVuZ3RoO0ErKyliTihiW0FdKSxrWzE0XSgyNSxDWzJdLEIudixiW0FdKTtHW3ZbMV1dKDE4LDEyNyxCLEopfX0sRFsxOF0uYmluZChudWxsLDE5KSksc3U9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1s1XS5jYWxsKHRoaXMsOCxCLHopfSx6YT15WzM0XSgyLHFiLEdbMl0uYmluZChudWxsLDgpLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQz1bNDMsInYiLDE1XSxCLk0hPT0wKXJldHVybiExO3JldHVybiEoSj1rW0NbMl1dKENbMF0sQltDWzFdXSksSFsyN10oNCx6LEssSj09PTA/dm9pZCAwOkopLDApfSksTTdEPXlbMzRdKDk5LHFiLEdbMl0uYmluZChudWxsLDEyKSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKEJbQz0KWzQ3LCJNIiwhMF0sQ1sxXV0hPT0wKXJldHVybiExO3JldHVybih5WzI5XSg4MCxKLEssa1sxNV0oQ1swXSxCLnYpLHopLEMpWzJdfSksd2JsPXlbMzRdKDIsU3p4LGZ1bmN0aW9uKEIseixLLEosQyl7KEo9SFtDPVsidiIsMjIsMTRdLENbMl1dKDQ3LHopLEopIT1udWxsJiYoRFtDWzFdXSg3Myw1LEIsSyksZ1syN10oOSwxNixCW0NbMF1dLEopKX0sZnVuY3Rpb24oQix6LEssSil7aWYoQltKPVsxLDI4LCJNIl0sSlsyXV0hPT01KXJldHVybiExO3JldHVybiBIWzI3XShKWzBdLHosSyxIW0pbMV1dKEpbMF0sSlswXSxCLnYpKSwhMH0pLFVGPVsyLDMsNCw1LDYsOF0sS1g9eVszNF0oOTYsUDEseVsxMF0uYmluZChudWxsLDEyKSxmdW5jdGlvbihCLHosSyxKKXtpZigoSj1bMjcsITAsMl0sQikuTSE9PTApcmV0dXJuITE7cmV0dXJuIEhbSlswXV0oSlsyXSx6LEssUlsxN10oNzEsQi52KSksSlsxXX0pLElLOD15WzM0XSg5OCxQMSx5WzEwXS5iaW5kKG51bGwsMTMpLGZ1bmN0aW9uKEIsCnosSyxKLEMpe2lmKEJbQz1bMywiTSIsITBdLENbMV1dIT09MClyZXR1cm4hMTtyZXR1cm4gSj1SWzE3XSg0NyxCLnYpLEhbMjddKENbMF0seixLLEo9PT0hMT92b2lkIDA6SiksQ1syXX0pLEpHPXlbMzRdKDY0LFAxLHlbMTBdLmJpbmQobnVsbCwxNCksZnVuY3Rpb24oQix6LEssSixDKXtpZihCW0M9WyEwLDk1LCJNIl0sQ1syXV0hPT0wKXJldHVybiExO3JldHVybih5WzI5XSg4OCxKLEssUlsxN10oQ1sxXSxCLnYpLHopLEMpWzBdfSksQ1g9eVszNF0oNjQsJHgsa1s0OF0uYmluZChudWxsLDU2KSxmdW5jdGlvbihCLHosSyxKKXtpZihCLk0hPT0oSj1bMSwxMCwhMV0sMikpcmV0dXJuIEpbMl07cmV0dXJuIShIWzI3XShKWzBdLHosSyxnWzQyXSgxMSxKWzFdLEIpKSwwKX0pLGJCPXlbMzRdKDY0LCR4LGtbNDhdLmJpbmQobnVsbCw1OCksZnVuY3Rpb24oQix6LEssSixDKXtpZihDPVs0MiwhMSwxMF0sQi5NIT09MilyZXR1cm4gQ1sxXTtyZXR1cm4hKChKPWdbQ1swXV0oQ1syXSxDWzJdLApCKSxIKVsyN10oNSx6LEssSj09PSIiP3ZvaWQgMDpKKSwwKX0pLEFHPURbNF0oNjEsJHgsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZihBPUdbOF0oMzksMSxSWzQ3XS5iaW5kKG51bGwsKHY9WzY1LDAsKEo9W251bGwsMTAyNCw3XSwyKV0sdlswXSkpLHosITApLEEhPUpbdlsxXV0pZm9yKGI9dlsxXTtiPEEubGVuZ3RoO2IrKylDPUFbYl0sQyE9Slt2WzFdXSYmRFs0MV0oMzUsSlt2WzJdXSxCLEssa1szMV0oNCx2WzFdLEpbMV0sQykpfSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKChDPVswLDksMTBdLEIuTSkhPT0yKXJldHVybiExO3JldHVybiBKPWdbNDJdKDMsQ1syXSxCKSxPWzIyXShDWzFdLDIseix6W0EkXXxDWzBdLEspLnB1c2goSiksITB9KSx2Wj15WzM0XSgzLCR4LGtbNDhdLmJpbmQobnVsbCw2MCksZnVuY3Rpb24oQix6LEssSixDKXtpZihCLk0hPT0oQz1bMiwhMSwyOV0sMikpcmV0dXJuIENbMV07cmV0dXJuISh5W0NbMl1dKDcyLEosSyxnWzQyXShDWzBdLDEwLEIpLAp6KSwwKX0pLFRhLGo1PXZvaWQgMCxRaT0oVGE9KGo1PWo1PT09dm9pZCAwP0QxOmo1LG5ldyBCRChmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKHY9WzAsMSwxNl0sQXJyYXkuaXNBcnJheSh6KSl7Zm9yKGI9dlswXTtiPHoubGVuZ3RoO2IrKylnW3ZbMl1dKDIsQix6W2JdLEssSixDKTtBPXpbQSRdfHZbMF0sQSZ2WzFdfHxrWzM4XSg3Nyx6LEF8dlsxXSl9fSxqNSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKChiPVsodj1bMiwxLCJwdXNoIl0sMiksITAsMF0sQi5NKSE9PTIpcmV0dXJuITE7cmV0dXJuKChBPWdbMjJdKDIxLHZbMV0sdm9pZCAwLEopLE9bMjJdKDI1LGJbMF0seix6W0EkXXxiW3ZbMF1dLEspKVt2WzJdXShBKSxEWzE2XSg4LGJbdlswXV0sQSxCLEMpLGIpW3ZbMV1dfSkpLGZ1bmN0aW9uKCl7dmFyIEI9WzIsMSwxMV0sej1bMywxLDBdLEs9RzIuYXBwbHkoeltCWzBdXSxhcmd1bWVudHMpLmZsYXQoSW5maW5pdHkpLEo9eVsyNl0oNCx6W0JbMF1dLEspO3JldHVybihKPQooSz1KLmZpbHRlcihmdW5jdGlvbihDKXtyZXR1cm4gbVsxXSgyMixDLDEpPT09N30pLmxlbmd0aCxlWzQ2XSgxMyx6WzBdLG1bQlsyXV0oMTUsMjU1LDE2LDQseltCWzFdXSxKKSxCWzBdKSksRClbMF0oQlswXSx6W0JbMV1dLDI1NSxCWzBdLHpbQlswXV0sSixLKX0pLHBYPUhbMThdKDEsZ1sxNl0uYmluZChudWxsLDEpLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEIuTSE9PShRPShBPVsxMjgsITAsMF0sWzM1LDM3LDQzXSksMikpcmV0dXJuITE7cmV0dXJuIHY9KFlbcD16W0EkXXxBWzJdLFFbMV1dKDUwLHAsSyxIW1FbMF1dKDI3LEFbMF0scCkseixiKSx5KVtRWzJdXSg3LEFbMF0sSyxKLHopLERbMTZdKDY0LEFbMl0sdixCLEMpLEFbMV19KSxRVD15WzM0XSg2NixtVix5WzIxXS5iaW5kKG51bGwsNiksZnVuY3Rpb24oQix6LEssSil7aWYoQlsoSj1bITEsIk0iLCEwXSxKKVsxXV0hPT0yKXJldHVybiBKWzBdO3JldHVybihIWzI3XSgyLHosSyxEWzQxXSgyMCwwLEIpKSwKSilbMl19KSxuWD1EWzRdKDU3LG1WLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZihBPUdbOF0oKHA9WzQyLCh2PVshMSw3LDBdLDEpLDldLDM4KSxwWzFdLHlbMTJdLmJpbmQobnVsbCxwWzJdKSx6LHZbMF0pLEEhPW51bGwpZm9yKGI9dlsyXTtiPEEubGVuZ3RoO2IrKylDPUssSj1BW2JdLEohPW51bGwmJkRbNDFdKDMsdltwWzFdXSxCLEMsa1twWzBdXSg3LDIsITAsSikuYnVmZmVyKX0sZnVuY3Rpb24oQix6LEssSixDKXtpZihDPVsxNywwLCEwXSxCLk0hPT0yKXJldHVybiExO3JldHVybihKPURbNDFdKDE4LENbMV0sQiksT1syMl0oQ1swXSwyLHoseltBJF18Q1sxXSxLKS5wdXNoKEopLEMpWzJdfSksRllaPXlbMzRdKDY3LG1WLHlbMjFdLmJpbmQobnVsbCw4KSxIWzEyXS5iaW5kKG51bGwsMzApKSxaMz15WzM0XSgzNSxtVix5WzIxXS5iaW5kKG51bGwsMTApLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoQi5NIT09KEM9WzE2LDI0LCExXSwyKSlyZXR1cm4gQ1syXTtyZXR1cm4hKHlbMjldKENbMV0sCkosSyxEWzQxXShDWzBdLDAsQikseiksMCl9KSxXWj15WzM0XSgzNSxpVyxlWzMyXS5iaW5kKG51bGwsOSksZnVuY3Rpb24oQix6LEssSil7aWYoKEo9WyJ2Iiw3MSwiTSJdLEIpW0pbMl1dIT09MClyZXR1cm4hMTtyZXR1cm4gSFsyN10oMyx6LEssWVsyNV0oSlsxXSxCW0pbMF1dKSksITB9KSxCdE09RFs0XSg1OCxpVyxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe2lmKCh2PShiPVsyLDEsMTI3XSxbITAsMiwxNF0pLEE9R1s4XSgzNyxiWzFdLEhbdlsyXV0uYmluZChudWxsLDQwKSx6LHZbMF0pLEEhPW51bGwpJiZBLmxlbmd0aCl7Zm9yKEo9KEM9SFsxOV0oNixiWzBdLEssQiksMCk7SjxBLmxlbmd0aDtKKyspSFszMF0odlsxXSw3LEFbSl0sQi52KTtHWzE1XSg2NixiW3ZbMV1dLEIsQyl9fSxmdW5jdGlvbihCLHosSyxKLEMpe2lmKEJbKEM9WyEwLDE5LCJNIl0sQylbMl1dIT09MCYmQltDWzJdXSE9PTIpcmV0dXJuITE7cmV0dXJuKEo9T1syMl0oQ1sxXSwyLHoseltBJF18MCxLKSwKQltDWzJdXSk9PTI/T1s0N10oOSxZWzI1XS5iaW5kKG51bGwsNCksQixKKTpKLnB1c2goWVsyNV0oNCxCLnYpKSxDWzBdfSksc1JOPXlbMzRdKDk4LGlXLGVbMzJdLmJpbmQobnVsbCwxMSksZnVuY3Rpb24oQix6LEssSixDKXtpZihCWyhDPVs4LCEwLCJNIl0sQylbMl1dIT09MClyZXR1cm4hMTtyZXR1cm4oeVsyOV0oQ1swXSxKLEssWVsyNV0oNyxCLnYpLHopLEMpWzFdfSksZyQ9eVszNF0oNjcsbFcsa1swXS5iaW5kKG51bGwsMjIpLGZ1bmN0aW9uKEIseixLLEope2lmKEIuTSE9PShKPVsyNywidiIsNV0sMCkpcmV0dXJuITE7cmV0dXJuIShIW0pbMF1dKEpbMl0seixLLGtbMTVdKDM5LEJbSlsxXV0pKSwwKX0pLE45PURbNF0oNTcsbFcsZnVuY3Rpb24oQix6LEssSixDLGIsQSl7aWYoYj1HWzhdKDM2LChKPVtudWxsLChBPVswLDEyOCxudWxsXSwxKSwhMF0sSlsxXSksRFs4XS5iaW5kKEFbMl0sNzYpLHosSlsyXSksYiE9SltBWzBdXSlmb3IoQz1BWzBdO0M8Yi5sZW5ndGg7QysrKW1bMzVdKDQsCkFbMV0sSltBWzBdXSxLLEIsYltDXSl9LGtbMjldLmJpbmQobnVsbCw1NikpLHo0dz1EWzRdKDU5LGxXLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKHY9R1s4XSgzMiwoQz1bKFE9W251bGwsMCwxOF0sMTI4KSwxLG51bGxdLENbMV0pLERbOF0uYmluZChRWzBdLDc3KSx6LCEwKSx2IT1DWzJdJiZ2Lmxlbmd0aCl7Zm9yKEE9KGI9SFsxOV0oNSwyLEssQiksUVsxXSk7QTx2Lmxlbmd0aDtBKyspcD12W0FdLEo9Qi52LGJOKHApLGtbMTRdKFFbMl0sQ1tRWzFdXSxKLHApO0dbMTVdKDgyLDEyNyxCLGIpfX0sa1syOV0uYmluZChudWxsLDU3KSksT3U9eVszNF0oNjcsbFcsa1swXS5iaW5kKG51bGwsMjMpLGZ1bmN0aW9uKEIseixLLEosQyl7aWYoKEM9WyExLCEwLCJ2Il0sQikuTSE9PTApcmV0dXJuIENbMF07cmV0dXJuIEo9a1sxNV0oMzcsQltDWzJdXSksSFsyN10oMix6LEssSj09PTA/dm9pZCAwOkopLENbMV19KSxLMDA9eVszNF0oMzUsbTdaLGZ1bmN0aW9uKEIseixLLApKLEMsYixBKXsoSj1EW2I9KEE9WzEsMjQsInYiXSxbMTYsMjU1LDhdKSw4XSg5Mix6KSxKIT1udWxsKSYmKERbMjJdKDYzLDUsQixLKSxDPUJbQVsyXV0sYk4oSiksQ1tBWzJdXS5wdXNoKEo+Pj4wJmJbQVswXV0pLENbQVsyXV0ucHVzaChKPj4+YlsyXSZiW0FbMF1dKSxDW0FbMl1dLnB1c2goSj4+PmJbMF0mYltBWzBdXSksQ1tBWzJdXS5wdXNoKEo+Pj5BWzFdJmJbQVswXV0pKX0sZnVuY3Rpb24oQix6LEssSixDKXtpZigoQz1bMjksITEsInYiXSxCKS5NIT09NSlyZXR1cm4gQ1sxXTtyZXR1cm4geVtDWzBdXSg3MixKLEssa1sxNV0oMiw0LEJbQ1syXV0pLHopLCEwfSkseFQ9eVszNF0oMyxFczgsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe2lmKChDPWVbcD1bMTQsMCwoYj1bMTYsMCwzMl0sOSldLDM5XSg1NSx6KSxDKSE9bnVsbClzd2l0Y2goUls0MF0oNyxiW3BbMV1dLEMpLERbMjJdKDY1LDEsQixLKSx0eXBlb2YgQyl7Y2FzZSAibnVtYmVyIjpiTigoSj1CLnYsQykpLGtbMTJdKDEyLApiWzFdLEMpLFJbMzRdKDEsYltwWzFdXSxKLHhPLE9PKTticmVhaztjYXNlICJiaWdpbnQiOihBPURbMTNdKDkwLGJbMl0sc3MsQyxHW3BbMF1dLmJpbmQobnVsbCxwWzJdKSksUilbMzRdKDMsYltwWzFdXSxCLnYsQS52LEEuTSk7YnJlYWs7ZGVmYXVsdDp2PU9bMjVdKDExLGJbcFsxXV0sQyksUlszNF0oMixiW3BbMV1dLEIudix2LnYsdi5NKX19LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4gQltwPVsiTSIsMjEsMV0scFswXV0hPT0xP0E9ITE6KEM9Qi52LEo9SFsyOF0oMTEscFsyXSxDKSx2PUhbMjhdKDkscFsyXSxDKSxiPURbMjRdKHBbMV0sSix2KSxIWzI3XSg0LHosSyxiKSxBPSEwKSxBfSksSkJEPXlbMzRdKDk2LGxLMCxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoSj1lWzM5XSg3MSwoVz0obj1bbnVsbCwxNiwzMl0sWyJhc1VpbnROIiwidiIsMTVdKSx6KSksSiE9blswXSkmJihSWzQwXSgzLG5bMV0sSiksSiE9blswXSkpc3dpdGNoKERbMjJdKDY3LAowLEIsSyksdHlwZW9mIEope2Nhc2UgIm51bWJlciI6KGI9KFo9KFE9KFo9KGJOKChBPUJbV1sxXV0sSikpLEopLFo8MCksZTcoWikqMiksa1szOV0oMjMsMCxaKSx2PXhPLE9PKSxRJiYoYj09MD92PT0wP3Y9Yj00Mjk0OTY3Mjk1Oih2LS0sYj00Mjk0OTY3Mjk1KTpiLS0pLHhPPXYsT089YixlKVsyOF0oNDEsT08seE8sQSk7YnJlYWs7Y2FzZSAiYmlnaW50IjplWzI4XShXW3hPPU51bWJlcihCaWdJbnRbV1tPTz0oQz1KPDxCaWdJbnQoMSleSj4+KHA9QltXWzFdXSxCaWdJbnQoNjMpKSxOdW1iZXIpKEJpZ0ludFtXWzBdXShuWzJdLEMpKSwwXV0oblsyXSxDPj5CaWdJbnQoblsyXSkpKSwyXSxPTyx4TyxwKTticmVhaztkZWZhdWx0OmtbMF0oNDgsMzEsblsxXSwxLDAsQltXWzFdXSxKKX19LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEM9WzIsMjcsMzldLEIuTSE9PTApP0o9ITE6KEhbQ1sxXV0oQ1swXSx6LEssWVtDWzJdXSgxOSwzMSwzMiwxLEIudikpLEo9ITApLEp9KSxDZkc9CkNmR3x8e2lkOlBOTigpfSxiQ009YkNNfHx7aWQ6SDMoKX0sdGU9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMTJdLmNhbGwodGhpcyw3LEIpfSxoUD0oUDAucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKCl7V20odGhpcyl9LGZ1bmN0aW9uKEIpe3JldHVybiBEWzQ1XS5jYWxsKHRoaXMsOCxCKX0pLEFCOD1BQjh8fHtpZDpiSzgoKX0sdmJZPXZiWXx8e2lkOnNRKCl9LFQ9STMsVHRZPVswLChPWzhdKDcsNSxPWzM4XS5iaW5kKG51bGwsNTkpKSxnJCldLEQzPVsoKChPWzIxXSg1LFN0LFQpLFN0LnByb3RvdHlwZSkuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiBlWzMyXSg1OCx0aGlzLDEpfSxTdC5wcm90b3R5cGUpLnNldFNlY29uZHM9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMThdKDE1LCEwLEIsMSx0aGlzKX0sMCksdGIsemFdLGpSOD1bMCxUYSxUdFksRDMsQ1gsS1gsLShTdC5wcm90b3R5cGUuVD1SWzQ4XSgxLEQzKSwyKSxnJF0sZlg9WygoT1syMV0oMixNcCxUKSxPKVs4XSgxMCwKNTQsSFsyMl0uYmluZChudWxsLDY3KSksMCksalI4LENYXSxwbE09KE1wLnByb3RvdHlwZS5UPVJbNDhdKDgsZlgpLHBsTXx8e2lkOktvTigpfSksb3M9T1IoKSxRUng9SUooKSxuYjM9WzAsUVQsblgsS1gsQ1hdLFJqPWZ1bmN0aW9uKEIpe3JldHVybiBlWzM3XS5jYWxsKHRoaXMsMzAsQil9LExYPSgoT1syMV0oNSx0UyxUKSx0UykucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKEIseil7aWYoQj1IW3o9WyJpc0FycmF5Iiw5Miw4OF0sNF0oelsxXSwyLHRoaXMpLEFycmF5W3pbMF1dKEIpfHxCIGluc3RhbmNlb2YgSTMpdGhyb3cgRXJyb3IoIkNhbm5vdCBhY2Nlc3MgdGhlIEFueS52YWx1ZSBmaWVsZCBvbiBBbnkgcHJvdG9zIGVuY29kZWQgdXNpbmcgdGhlIGpzcGIgZm9ybWF0LCBjYWxsIHVucGFja0pzcGIgaW5zdGVhZCIpO3JldHVybiBrWzI5XSh6WzJdLG51bGwsMix0aGlzKX0sWzAsYkIsazJ3XSksWkN3PSh0Uy5wcm90b3R5cGUuVD1SWzQ4XSg1LExYKSxaQ3d8fHtpZDpWWDgoKX0pLApBeD0oKCgoeXUoKSxYN2wpKCksYU0ucHJvdG90eXBlKS5jdG9yPWZ1bmN0aW9uKEIpe3JldHVybiB0eXBlb2YgQj09PSJib29sZWFuIj9COnRoaXMuZGVmYXVsdFZhbHVlfSxPKVsyMV0oNixNSCxUKSxmdW5jdGlvbigpe3JldHVybiB5WzE5XS5jYWxsKHRoaXMsMyl9KSxScz1bMCx3dix2WixaM10sciQ9KChNSC5wcm90b3R5cGUuVD1SWzQ4XSgxLFJzKSxPKVsyMV0oNixrUCxUKSxbMCxVRixreCxVYixKRyx1Vyx2WixwWCxMWCxDWCxwWCxSc10pLFcwRz1bKGtQLnByb3RvdHlwZS5UPVJbNDhdKDgsciQpLDApLENYXSxWVD1bMCwoT1syMV0oMyx1RCxUKSxXMEcpLFRhLHIkLFFULC0xXSxkdj0oT1syMV0oNCxkTSwodUQucHJvdG90eXBlLlQ9KHVELnByb3RvdHlwZS56bz1mdW5jdGlvbigpe3JldHVybiBrWzI5XSg4OSxudWxsLDMsdGhpcyl9LFIpWzQ4XSg4LFZUKSxUKSksZVszNV0oNTYsbnVsbCxkTSkpLEdhPVswLFRhLFZUXSxYYz1IWzEyXSgzLDEwMCwoZE0ucHJvdG90eXBlLlQ9ClJbNDhdKDQsR2EpLGRNKSxHYSksZ2JOPWdiTnx8e2lkOkdKTSgpfSxoUz1hUCgpLE50eD1OdHh8fHtpZDpEcVooKX0sT1k9Z1sxMV0oNTUsKCgoKGV0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oQil7cmV0dXJuIEI9PW51bGw/ITE6dGhpcy5NeD09Qi5NeCYmdGhpcy5oPT1CLmh9LChldC5wcm90b3R5cGUuYWRkPShGPWV0LnByb3RvdHlwZSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuIGdbbj0oYj0oSj0oUT0oKHo9dGhpcy5oJihBPXRoaXMuaD4+PihLPSh2PShaPVsoQz1bMTYsNjU1MzVdLDEpLDU2LCJNeCJdLCh0aGlzW1pbMl1dJkNbWlswXV0pKyhCW1pbMl1dJkNbWlswXV0pKSxwPUJbWlsyXV0+Pj5DWzBdLHRoaXNbWlsyXV0+Pj5DWzBdKSxDWzBdKSxDW1pbMF1dKSx2KT4+PkNbMF0pKyhLK3ApLEIuaCkmQ1taWzBdXSxCLmg+Pj5DWzBdKSxRPj4+Q1swXSksbis9eitKLDExXShaWzFdLCgobj4+PkNbMF0pKyhBK2IpJkNbWlswXV0pPDxDWzBdfApuJkNbWlswXV0sKFEmQ1taWzBdXSk8PENbMF18diZDW1pbMF1dKX0pLGV0LnByb3RvdHlwZSkudG9TdHJpbmc9KChldC5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbihCLHope3JldHVybiB6PVsiTXgiLCJoIiwwXSx0aGlzW3pbMV1dPT1CW3pbMV1dP3RoaXNbelswXV09PUJbelswXV0/MDp0aGlzW3pbMF1dPj4+elsyXT5CW3pbMF1dPj4+elsyXT8xOi0xOnRoaXNbelsxXV0+Qlt6WzFdXT8xOi0xfSxldC5wcm90b3R5cGUpLmlzU2FmZUludGVnZXI9ZnVuY3Rpb24oQix6KXtyZXR1cm4gQj0oej1bImgiLDIxLDBdLHRoaXNbelswXV0+PnpbMV0pLEI9PXpbMl18fEI9PS0xJiYhKHRoaXMuTXg9PXpbMl0mJnRoaXNbelswXV09PS0yMDk3MTUyKX0sZXQucHJvdG90eXBlLkVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTXg9PTAmJnRoaXMuaD09MH0sZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZigobj1bImRpdiIsMSwoej1CfHwxMCxiPVsiIiwwLDM2XSwibXVsdGlwbHkiKV0sCnopPDJ8fGJbMl08eil0aHJvdyBFcnJvcigicmFkaXggb3V0IG9mIHJhbmdlOiAiK3opO2lmKHRoaXMuaXNTYWZlSW50ZWdlcigpKXJldHVybiBwPURbMzhdKDIwLGJbblsxXV0sdGhpcyksej09MTA/YlswXStwOnAudG9TdHJpbmcoeik7cmV0dXJuKCh2PSgoSj0odj0oQT0oSz0oUT1mUSgoQz0xNC0oej4+MikseiksQyksZylbMTFdKDYxLFEvNDI5NDk2NzI5NixRKSx0aGlzW25bMF1dKEspKSxlNyhEWzM4XSgxOCxiW25bMV1dLHlbMl0oOTQsQVtuWzJdXShLKSx0aGlzKSkpKSx6PT0xMD9iWzBdK3Y6di50b1N0cmluZyh6KSksSi5sZW5ndGg8QykmJihKPSIwMDAwMDAwMDAwMDAwIi5zbGljZShKLmxlbmd0aC1DKStKKSxEWzM4XSgyMCxiW25bMV1dLEEpKSx6PT0xMCk/djp2LnRvU3RyaW5nKHopKStKfSksRikubXVsdGlwbHk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKEs9KHg9WzEsMCwiaCJdLFs2NTUzNSwxNl0pLHRoaXMuRWQoKSlyZXR1cm4gdGhpczsKaWYoQi5FZCgpKXJldHVybiBCO3JldHVybiBnWzExXSg1OCwoQT0oej0oej0oQT0oej0oVz0oKFc9KFo9KGI9KEo9Qi5NeD4+PktbeFswXV0sUT1CW3hbMl1dPj4+S1tDPXRoaXMuTXgmKG49dGhpc1t4WzJdXSZLW3hbcD10aGlzLk14Pj4+S1t4WzBdXSwxXV0sS1t4WzFdXSksKHY9dGhpc1t4WzJdXT4+PktbeFswXV0seClbMF1dLE49Qlt4WzJdXSZLW3hbMV1dLEIpLk14JktbeFsxXV0sQykqYiwoWj4+PktbeFswXV0pK3AqYiksej1XPj4+S1t4WzBdXSxXKSZLW3hbMV1dKStDKkoseisoVz4+PktbeFswXV0pKStuKmIseik+Pj5LW3hbMF1dLHomS1t4WzFdXSkrcCpKLEErPXo+Pj5LW3hbMF1dLCh6JktbeFsxXV0pK0MqTiksQSkrKHo+Pj5LW3hbMF1dKSsodipiK24qSitwKk4rQypRKSZLW3hbMV1dLEE8PEtbeFswXV18eiZLW3hbMV1dKSwoVyZLW3hbMV1dKTw8S1t4WzBdXXxaJktbeFsxXV0pfSxGKS5kaXY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtpZigoQz0KWzQ4LDEsKE49WyJoIiwiZGl2Iiw2M10sMCldLEIpLkVkKCkpdGhyb3cgRXJyb3IoImRpdmlzaW9uIGJ5IHplcm8iKTtpZih0aGlzW05bMF1dPENbMl0pe2lmKHRoaXMuZXF1YWxzKE56KSl7aWYoQi5lcXVhbHMoV3opfHxCLmVxdWFscyhIWikpcmV0dXJuIE56O2lmKEIuZXF1YWxzKE56KSlyZXR1cm4gV3o7aWYoej0obj0oQT10aGlzW05bMF1dLGdbMTFdKE5bMl0sQT4+Q1sxXSx0aGlzLk14Pj4+Q1sxXXxBPDwzMSkpLG4pW05bMV1dKEIpLnNoaWZ0TGVmdChDWzFdKSx6LmVxdWFscyhPWSkpcmV0dXJuIEJbTlswXV08Q1syXT9XejpIWjtyZXR1cm4oVz15WzJdKDk1LEIubXVsdGlwbHkoeiksdGhpcykseikuYWRkKFdbTlsxXV0oQikpfXJldHVybiBCW05bMF1dPENbMl0/bVsyNF0oMyx0aGlzKVtOWzFdXShtWzI0XSg1LEIpKTptWzI0XSg2LG1bMjRdKDQsdGhpcylbTlsxXV0oQikpfWlmKHRoaXMuRWQoKSlyZXR1cm4gT1k7aWYoQltOWzBdXTxDWzJdKXJldHVybiBCLmVxdWFscyhOeik/Ck9ZOm1bMjRdKDMsdGhpc1tOWzFdXShtWzI0XSg3LEIpKSk7Zm9yKEs9T1ksUT10aGlzO1EuY29tcGFyZShCKT49Q1syXTspe2ZvcihaPShiPShKPSh2PWhZKENbMV0sYk4oRFszOF0oMjEsQ1syXSxRKS9EWzM4XSgyMixDWzJdLEIpKSkscD1kMChZQyh2KS9NYXRoLkxOMikscDw9Q1swXT8xOmZRKDIscC1DWzBdKSksT1syNl0oNjYsdikpLGIpLm11bHRpcGx5KEIpO1pbTlswXV08Q1syXXx8Wi5jb21wYXJlKFEpPkNbMl07KXYtPUosYj1PWzI2XSg1MCx2KSxaPWIubXVsdGlwbHkoQik7UT0oSz0oYi5FZCgpJiYoYj1XeiksSy5hZGQoYikpLHlbMl0oOTEsWixRKSl9cmV0dXJuIEt9LEYpLmFuZD1mdW5jdGlvbihCLHope3JldHVybih6PVsiTXgiLDU4LDExXSxnKVt6WzJdXSh6WzFdLHRoaXMuaCZCLmgsdGhpc1t6WzBdXSZCW3pbMF1dKX0sRi5vcj1mdW5jdGlvbihCLHope3JldHVybiBnW3o9WzYwLCJoIiwiTXgiXSwxMV0oelswXSx0aGlzW3pbMV1dfEJbelsxXV0sdGhpc1t6WzJdXXwKQlt6WzJdXSl9LEYueG9yPWZ1bmN0aW9uKEIseil7cmV0dXJuIGdbKHo9WzExLDYxLCJNeCJdLHopWzBdXSh6WzFdLHRoaXMuaF5CLmgsdGhpc1t6WzJdXV5CW3pbMl1dKX0sRi5zaGlmdExlZnQ9ZnVuY3Rpb24oQix6LEssSil7aWYoQiY9KHo9KEo9WzAsImgiLDU2XSxbMzIsMCw2M10pLHpbMl0pLEI9PXpbMV0pcmV0dXJuIHRoaXM7cmV0dXJuIEI8KEs9dGhpcy5NeCx6W0pbMF1dKT9nWzExXShKWzJdLHRoaXNbSlsxXV08PEJ8Sz4+PnpbSlswXV0tQixLPDxCKTpnWzExXSg1OSxLPDxCLXpbSlswXV0selsxXSl9LDApLDApLFd6PWdbMTFdKDU5LDAsMSksSFo9Z1sxMV0oNTUsLTEsLTEpLGdaPWdbMTFdKDU4LDIxNDc0ODM2NDcsNDI5NDk2NzI5NSksTno9Z1sxMV0oNjMsMjE0NzQ4MzY0OCwwKSxPQ3g9T0N4fHx7aWQ6dTI4KCl9LHhSbD0oKE9bOF0oOCw0NSxmdW5jdGlvbigpe3JldHVybiBHMi5hcHBseSgwLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKEIseil7cmV0dXJuIEhbOF0oNDQsCih6PVsxMiwxLDI2NjhdLHpbMl0pKShEW3pbMF1dKDM0LHpbMV0sQikpfSl9KSxlQykoKSx4Umx8fHtpZDpGVCgpfSksYVg9a1EoKSxEUjg9RFI4fHx7aWQ6WUcoKX0sZjQ4PWY0OHx8e2lkOm1QKCl9LFh4PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBPWzE0XS5jYWxsKHRoaXMsMSxCLHosSyxKKX0sb2IzPVswLGJCLFswLE91LEQzLE91LC0xLFswLGckXSxPdSwobWYucHJvdG90eXBlLnpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVmR9LC0xKV0sRllaXSxlNT0oKChPWzIxXSgxLFFELFQpLFFELnByb3RvdHlwZSkuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiBlWzMyXSg1Myx0aGlzLDEpfSxRRCkucHJvdG90eXBlLnNldFNlY29uZHM9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMThdKDIxLCEwLEIsMSx0aGlzKX0sWzAsdGIsemFdKSxMMFk9bmV3IGFNKCgoT1syMV0oNCx6RiwoUUQucHJvdG90eXBlLlQ9Uls0OF0oOSxlNSksVCkpLHpGKS5wcm90b3R5cGUuVD1SWzQ4XSg1LFswLAp6YSxiQixUYSxMWF0pLCIxMTcxMDAzMzQiKSksaGE9bmV3IGFNKCIxMTg5ODAwMjMiKSx3az1uZXcgYU0oIjExNTQ5MDQ0MiIpLEtGPW5ldyBhTSgiNDU3NTc5NTMiKTtmdW5jdGlvbiBmWShCKXtyZXR1cm4gR1s2XS5jYWxsKHRoaXMsMyxCKX1mWS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnY9KHRoaXMuWD0hMSx0aGlzLmkpfTsKdmFyIEp5LFI0TT1SNE18fHtpZDpaVSgpfSxyQjA9ckIwfHx7aWQ6elIoKX0sVnRNPVZ0TXx8e2lkOlBtTigpfSxHSEQ9R0hEfHx7aWQ6QkEoKX0sbW4scVI9Imdvb2cjaHRtbCIseTA9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsSEM4PUhDOHx8e2lkOmMkRCgpfSxlNHc9ZVszNF0oMTYsKEhsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYrIiJ9LFsiIl0pKSxQZjg9ZVsyOF0oMjUsWyJceDAwIl0sWyJcXDAiXSksJFJZPWVbMjhdKDU3LFsiXG4iXSxbIlxcbiJdKSxxMzg9ZVsyOF0oMjYsWyJceDAwIl0sWyJcXHUwMDAwIl0pLGlDMD1lWzM0XSg0OCxbIiJdKSx5QnE9ZVsyOF0oMjgsWyJceDAwIl0sWyJcXDAiXSksUFo9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIE9bMzFdLmNhbGwodGhpcywyNCxCLHosSyxKKX0sWTNaPWVbMjhdKDI0LFsiXG4iXSxbIlxcbiJdKSxjQk09ZVsyOF0oNTYsWyJceDAwIl0sWyJcXHUwMDAwIl0pLFMzRz1TM0d8fHtpZDpZMU4oKX0sCm1SMD0oKGdbMzFdKDE4LGZ1bmN0aW9uKEIpe3JldHVybiBCKGU0dyl9KXx8Z1szMV0oMTksZnVuY3Rpb24oQil7cmV0dXJuIEIoUGY4KX0pfHxnWzMxXSgxNyxmdW5jdGlvbihCKXtyZXR1cm4gQigkUlkpfSl8fGdbMzFdKDIwLGZ1bmN0aW9uKEIpe3JldHVybiBCKHEzOCl9KSxnWzE2XSgxNixpQzApJiZnWzE2XSgyMCx5QnEpKSYmZ1sxNl0oMTIsWTNaKSYmZ1sxNl0oOCxjQk0pLG1SMCl8fHtpZDpyYigpfSxsNHE9KCh4ay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52fSxPUk4oKSxlQTgpKCksbDRxfHx7aWQ6Z2UoKX0pLHQ4PWZ1bmN0aW9uKCl7cmV0dXJuIGdbMjRdLmNhbGwodGhpcywyNil9LEViOD1uZXcgRE4oZnVuY3Rpb24oQil7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChCKX0pLFhsdz0oaWcoKSxnWCgpLGVbNDVdKDQsIjoiLEsyKCkpKSx1X0Q9ZVs0NV0oNiwiOiIsdjAoKSksYTRxPWVbNDVdKDEyLCI6IixYbigpKSxoNHE9ZVs0NV0oMTQsCiI6Iix1eCgpKSxkUnE9ZVs0NV0oMjAsIjoiLE5tRCgpKSxPMD1bWGx3LCgoKCgoKFN6KCksZFgoKSxlaykoKSxtdSgpLGw2WikoKSxxOFopKCkscGZaKCksVHYpKCksRHVoKCksU2IpKCksWEYoKSxlOSgpLHVfRCksYTRxLGRScSxoNHEsRWI4XSxvQj1mdW5jdGlvbihCLHope3JldHVybiBtWzQ2XS5jYWxsKHRoaXMsNCxCLHopfSxrSDA9a0gwfHx7aWQ6YzA4KCl9LHR0dz10dHd8fHtpZDpXXygpfSxVUjg9VVI4fHx7aWQ6d1QoKX0sTXRHPU10R3x8e2lkOlp6KCl9LHdseD13bHh8fHtpZDpUNXEoKX0sSTRsPUk0bHx8e2lkOmJBKCl9LEYweD1GMHh8fHtpZDpSbCgpfSxCeVk9KEliLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYrIiJ9LEJ5WSl8fHtpZDpYSygpfSxzNEQ9KCgoKCgoU2coKSxDVCgpLEJ5KSgpLCROKSgpLFhwKSgpLFAzKSgpLFAkKSgpLFpzKCksdk8oKSxzNER8fHtpZDpXTDAoKX0pLHpacT16WnF8fHtpZDpCJCgpfSxLcFk9S3BZfHx7aWQ6UnkoKX0sCkpGOD1KRjh8fHtpZDpxcygpfSxDNk49KHliLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYrIiJ9LEM2Til8fHtpZDpZdCgpfSxidGw9YnRsfHx7aWQ6JHQoKX0sQUY4PUFGOHx8e2lkOnpCKCl9LHZrdz12a3d8fHtpZDpPJCgpfSxUeXc9VHl3fHx7aWQ6c2ooKX0sJFQ9KGVXLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZ9LGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIERbMTRdLmNhbGwodGhpcywxMCxCLHosSyxKLEMpfSksajQ4PWo0OHx8e2lkOkMyKCl9LHBJOD1wSTh8fHtpZDprZCgpfSxRNDA9UTQwfHx7aWQ6VjQoKX0sbmswPW5rMHx8e2lkOmpacSgpfSxadDg9WnQ4fHx7aWQ6Y08oKX0sV3AzPVdwM3x8e2lkOktkKCl9LGdreD1na3h8fHtpZDp5NCgpfSxOeUc9TnlHfHx7aWQ6YWl4KCl9LE90TT1PdE18fHtpZDpVNSgpfSx4ckQ9eHJEfHx7aWQ6ZkgoKX0sRHI4PURyOHx8e2lkOlM2KCl9LGZOOD1mTjh8fHtpZDpVcSgpfSwKb2s4PW9rOHx8e2lkOkM0KCl9LExwcT1McHF8fHtpZDpUSSgpfSxpTz0oKCgoKCgoKFpRRCgpLHM1KSgpLEhpKSgpLEwkKCksS0IpKCksWGooKSxhVykoKSxNbykoKSxHMSkoKSxPdygpLE42KSgpLGFEKCksUWZHKCksU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQpP2Z1bmN0aW9uKEIseil7cmV0dXJuIEIucmVwZWF0KHopfTpmdW5jdGlvbihCLHope3JldHVybiBBcnJheSh6KzEpLmpvaW4oQil9O0FlKCk7ZnVuY3Rpb24gamQoQil7cmV0dXJuIE9bMzldLmNhbGwodGhpcyw0LEIpfQp2YXIgcTk9VjMoKSxpQj1qdSgpLFpTPSgoKCgoKCgoRj1qZC5wcm90b3R5cGUsRikuaXNFbmFibGVkPWZ1bmN0aW9uKEIpe2lmKCEoQj1bITAsITEsImNvb2tpZUVuYWJsZWQiXSxHbC5uYXZpZ2F0b3IpW0JbMl1dKXJldHVybiBCWzFdO2lmKHRoaXMudi5jb29raWUpcmV0dXJuIEJbMF07aWYodGhpcy5zZXQocTksaUIse1ZOOjYwfSksdGhpcy5nZXQocTkpIT09aUIpcmV0dXJuIEJbMV07cmV0dXJuKHRoaXMucmVtb3ZlKHE5KSxCKVswXX0sRikuc2V0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTil7aWYoKHR5cGVvZiBLPT09KE49WyhwPVsnIicsKEE9ITEsMCksJ0ludmFsaWQgY29va2llIG5hbWUgIiddLDFFMyksIjtleHBpcmVzPSIsInRlc3QiXSwib2JqZWN0IikmJihaPUsuc2FtZVNpdGUsQT1LLnNlY3VyZXx8ITEsQz1LLnBhdGh8fHZvaWQgMCxuPUsuZG9tYWlufHx2b2lkIDAsUT1LLlZOKSwvWzs9XHNdLylbTlsyXV0oQikpdGhyb3cgRXJyb3IocFsyXSsKQitwWzBdKTtpZigvWztcclxuXS9bTlsyXV0oeikpdGhyb3cgRXJyb3IoJ0ludmFsaWQgY29va2llIHZhbHVlICInK3orcFswXSk7KHY9KGI9KFE9PT12b2lkIDAmJihRPS0xKSxuPyI7ZG9tYWluPSIrbjoiIiksVz1DPyI7cGF0aD0iK0M6IiIsSj1BP3JIKCk6IiIsUTxwWzFdPyIiOlE9PXBbMV0/TlsxXSsobmV3IERhdGUoMTk3MCwxLDEpKS50b1VUQ1N0cmluZygpOk5bMV0rKG5ldyBEYXRlKERhdGUubm93KCkrUSpOWzBdKSkudG9VVENTdHJpbmcoKSksdGhpcy52KS5jb29raWU9QisiPSIreitiK1crditKKyhaIT1udWxsPyI7c2FtZXNpdGU9IitaOiIiKX0sRikuZ2V0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7Zm9yKEs9KEE9KEM9KHY9WzEsKEo9WzAsIiIsIj0iXSwibGFzdEluZGV4T2YiKSwyXSxCKStKW3ZbMl1dLCh0aGlzLnYuY29va2llfHxKW3ZbMF1dKS5zcGxpdChZRigpKSksSilbMF07SzxBLmxlbmd0aDtLKyspe2lmKChiPWE0KEFbS10pLGIpW3ZbMV1dKEMsSlswXSk9PQpKWzBdKXJldHVybiBiLnNsaWNlKEMubGVuZ3RoKTtpZihiPT1CKXJldHVybiBKW3ZbMF1dfXJldHVybiB6fSxGKS5yZW1vdmU9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKEo9dGhpcy5nZXQoQikhPT12b2lkIDAsdGhpcykuc2V0KEIsIiIse1ZOOjAscGF0aDp6LGRvbWFpbjpLfSksSn0sRikuRnA9ZnVuY3Rpb24oKXtyZXR1cm4gT1szNV0oNDgsMCx0aGlzKS52YWx1ZXN9LEYpLkRTPWZ1bmN0aW9uKCl7cmV0dXJuIE9bMzVdKDUwLDAsdGhpcykua2V5c30sRikuY2xlYXI9ZnVuY3Rpb24oQix6LEspe2Zvcih6PShCPU9bMzVdKChLPVswLCJyZW1vdmUiLDQ5XSxLKVsyXSxLWzBdLHRoaXMpLmtleXMsQikubGVuZ3RoLTE7ej49S1swXTt6LS0pdGhpc1tLWzFdXShCW3pdKX0seXMoKSx0QigpLEpnKCkpLHB3PW5ldyBqZCh0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpLG5rPSRxKCksWlE9SiROKCkscGs9UzEoKSx4cD1uMDMoKSxvWT13NzAoKSxmaz1qZygpLApRUT1yVSgpLERRPWw4RCgpLFRNPXBxRCgpLENrPU5nKCksdlA9QUsoKSxBeT1jcigpLGJjPXZyKCkseVQ9KE9bMjFdKDIsdWosVCksWzAsSV8sZyQsa3hdKSxrNz1bMSwoT1syMV0oKHVqLnByb3RvdHlwZS5UPVJbNDhdKDUseVQpLDMpLGRKLFQpLE9bOF0oNywxOCx5WzddLmJpbmQobnVsbCwzMikpLDIpLDMsMTVdLFlUPVswLGs3LEpHLC0xLFViLDExLEpHXSxjWj0oKE9bMjFdKDQsKGRKLnByb3RvdHlwZS5UPVJbNDhdKDgsWVQpLG5VKSxUKSxuVSkucHJvdG90eXBlLlQ9Uls0OF0oNCxwcCksT1syMV0oMyxROCxUKSwiY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpKSxHRz1bMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTNdLFM1PVswLEdHLHZaLGRnLHZaLGRnLFozLE1iLFozLE1iLHVXLC0xLHBYLEQzLC0xLHBYLHBwXSxtWD1bKE9bMjFdKDYsCmV1LChROC5wcm90b3R5cGUuVD1SWzQ4XSgxLFM1KSxUKSksMCksVGEsUzVdLGxCPVsoKE9bMjFdKDQsclosKGV1LnByb3RvdHlwZS5UPVJbNDhdKDgsbVgpLFQpKSxyWikucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gWVszNF0oNSxrWzFdKDEzLHZvaWQgMCx0aGlzLFZDLDEpLHRoaXMpfSwwKSxWQyx2WixKR10sRXU9WyhPWzIxXSg2LGhvLChyWi5wcm90b3R5cGUuVD1SWzQ4XSgxLGxCKSxUKSksMCksbEIsWVQsbVhdLFh6PVswLChPWzIxXSg1LGtYLChoby5wcm90b3R5cGUuVD1SWzQ4XSg4LEV1KSxUKSksbEIpLFlULG1YXSxTWj0oa1gucHJvdG90eXBlLlQ9Uls0OF0oOSxYeiksMzIpLEY0PShPWzIxXSgyLEhTLFQpLGZ1bmN0aW9uKEIpe3JldHVybiBlWzI0XS5jYWxsKHRoaXMsNjQsQil9KSx1Qj1bMCwxLFFULGhiLHhULDEsbVgsS1gsLTFdLGJkPShIUy5wcm90b3R5cGUuVD1SWzQ4XSgxLHVCKSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gSFszXS5jYWxsKHRoaXMsCjE3LEIseixLLEosQyxiLEEpfSksUlpoPVswLGckXSxteD1mdW5jdGlvbigpe3JldHVybiBlWzBdLmNhbGwodGhpcyw0KX0sckZEPVswLDIsbEIsWVQsbVgsLTFdLGFzPVswLChPWzIxXSgxLFZELFQpLGQ2KSx4VCxwWCxFdSxwWCxyRkQseVQsQ1gscFgsWHosMSxLWCxnJF0sTUc9KE9bMjFdKDEsKFZELnByb3RvdHlwZS5UPVJbNDhdKDEsYXMpLHJwKSxUKSxmdW5jdGlvbigpe3JldHVybiBSWzI0XS5jYWxsKHRoaXMsODgpfSksaEc9WzAsKCgoT1syMV0oNixITiwocnAucHJvdG90eXBlLlQ9Uls0OF0oNSxbMCxhcyxYTixreCxJXywtMV0pLFQpKSxITi5wcm90b3R5cGUpLlQ9Uls0OF0oNCxbMCxDWCxnJCxJXyxreCwtMV0pLE9bMjFdKDEsanAsVCksanApLnByb3RvdHlwZS5UPVJbNDhdKDkseHEpLE9bMjFdKDMsVHQsVCkscG0pLGhiLHBYLGFzLHBYLHhxLGckXSxkJD1bMCwoKChPW1R0LnByb3RvdHlwZS5UPVJbNDhdKDgsaEcpLDIxXSg2LHZrLFQpLE9bOF0oMTAsNTksZnVuY3Rpb24oQil7cmV0dXJuIFlbN10oNzcsCm51bGwsZnVuY3Rpb24oeil7cmV0dXJuIHouT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoQix3QigpKT8iIjpCLnZhbHVlfSl9KSx2ay5wcm90b3R5cGUpLlQ9Uls0OF0oNSxbMCxUYSxoR10pLE8pWzIxXSg1LGlyLFQpLENYKV0sa1Q9WzAsSV8sQ1gsLTEsMSxbLShPWzIxXSgyLChpci5wcm90b3R5cGUuVD1SWzQ4XSg1LGQkKSxPWCksVCksT1s4XSg5LDMzLG1bNDldLmJpbmQobnVsbCw0MCkpLE9bMjFdKDQsZ2ksVCksMSksWjcsZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe0hbSj1bMTAwLDAsKHA9WzI2LDQsMV0sMSldLHBbMl1dKHBbMl0sSlswXSk7dHJ5e2ZvcihDPXt9LHY9Sy5mWDtEWzQ3XSgxNixKWzJdLHopJiZ6Lk0hPXBbMV07Qz17eVg6dm9pZCAwLGFPOnZvaWQgMH0paWYoei5pPT09MTEpQy5hTz0hMSxBPXouQSxDLnlYPXZvaWQgMCxZW3BbMV1dKDksMixKW3BbMl1dLEpbMl0scFsxXSx6LGZ1bmN0aW9uKFEpe3JldHVybiBmdW5jdGlvbihuLFosVyxOLHgsZixMLApyKXsoVz1LW3I9KFEueVg9bixbMTEsKHg9W251bGwsIm51bWJlciIsITBdLDEpLG51bGxdKSxRLnlYXSxXPT14WzBdJiYoTj12PT14WzBdP3ZvaWQgMDp2W1EueVhdKSYmKGY9eVszNl0oclswXSx4W3JbMV1dLE4pLEw9UlszNV0oMTIseFtyWzFdXSxMUSx5WzVdLmJpbmQoclsyXSwxNCksTixZWzVdLmJpbmQoclsyXSw1OSkpLnJlLFc9S1tRLnlYXT1mdW5jdGlvbihWLFAscSl7cmV0dXJuIGYoeVs0M10oOSwxMjgscSxMLFApLFYpfSksVykhPXhbMF0/VyhaLEIsUS55WCk6KFEuYU89eFsyXSxaLnYudj1aLnYuWCl9fShDKSksQy5hTyYma1twWzBdXShwWzFdLG51bGwsQy55WCxCLGdbMzRdKDM0LEpbcFsyXV0seixBKSk7ZWxzZSBrW3BbMF1dKDUsbnVsbCx6LlgsQixEWzI4XSg0MCxKWzJdLEpbcFsyXV0seikpO2lmKGI9eVsyMl0oMTcsQikpYi5sZD1LLndRW2g4XTtyZXR1cm4hMH1jYXRjaChRKXtpZihRIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7CnRocm93IFE7fWZpbmFsbHl7TVU+SltwWzJdXSYmTVUtLX19LGZ1bmN0aW9uKEIseil7cmV0dXJuIGZ1bmN0aW9uKEssSixDLGIsQSx2LHApe3Y9Z1szOF0oMSwoQT1bKHA9WzMsMCwzNF0sMiksMSwxMjddLEEpWzFdLEIsSiksdiE9bnVsbCYmKERbMjJdKDY0LHBbMF0sSyxBWzFdKSxEWzIyXSg2NixwWzFdLEssQVtwWzFdXSksa1sxNF0oMjQsMTI4LEsudixDKSxiPUhbMTldKHBbMF0sQVtwWzFdXSxwWzBdLEspLHoodixLKSxHWzE1XShwWzJdLEFbMl0sSyxiKSxEWzIyXSg2NSw0LEssQVsxXSkpfX1dLElfXSx0Rz1bMCwoT1gucHJvdG90eXBlLlQ9Uls0OF0oNSxrVCksa1QpXSxVdT0oT1syMV0oMSwoZ2kucHJvdG90eXBlLlQ9Uls0OF0oNCx0RyksUncpLFQpLFswLGhiXSksTTk9WzAsKE9bMjFdKDEsVkcsKFJ3LnByb3RvdHlwZS5UPVJbNDhdKDgsVXUpLFQpKSxUYSksdUJdLFZNMz1bMCwoT1tWRy5wcm90b3R5cGUuVD1SWzQ4XSg1LE05KSw4XSg4LDU3LGZ1bmN0aW9uKEIpe3JldHVybiBZWzddKDcyLApudWxsLGZ1bmN0aW9uKHosSyxKLEMpe2ZvcihDPShKPVsiY2FsbCIsIiIsNDldLEpbMl0pO0MhPTQ2Oyl7aWYoQz09MTgpcmV0dXJuIEs9ei5PYmplY3QuZ2V0UHJvdG90eXBlT2YoQiksWVszM10oMTksSlsxXSxLLHdCKCkpaW5zdGFuY2VvZiBWYj8iIjp6Lk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSyx3QigpKS5nZXRbSlswXV0oQik7aWYoQz09SlsyXSlDPXouT2JqZWN0Lmhhc093blByb3BlcnR5W0pbMF1dKEIsd0IoKSk/MTg6ODM7ZWxzZSBpZihDPT04MylyZXR1cm4gQi52YWx1ZX19KX0pLFJaaCldLHckPVswLChPWzIxXSg0LG93LFQpLHhUKV0sSDc9KE9bMjFdKDYsKG93LnByb3RvdHlwZS5UPVJbNDhdKDUsdyQpLERBKSxUKSxbXSksSXM9WzAsZmYscFgsdyQscFgsTTkscFgsVXUsMSxwWCxWTTNdLEZ6PWZ1bmN0aW9uKEIpe3JldHVybiBSWzI1XS5jYWxsKHRoaXMsMTYsQil9LEJHPVswLChPWzIxXSgxLChEQS5wcm90b3R5cGUuVD1SWzQ4XSg5LElzKSxXUyksClQpLE5LKSxoYixwWCxJcyxwWCx0RyxwWCxbMF1dLEdrTT1bMCxUYSxbMCxoYixRVCwoV1MucHJvdG90eXBlLlQ9Uls0OF0oNSxCRyksQUcpLGckLC0xXV0sc2Q9ZnVuY3Rpb24oKXtyZXR1cm4gWVsyMF0uY2FsbCh0aGlzLDMpfSxzVz1bMCxnJCwoT1syMV0oMSxxSyxUKSxHa00pXSwkWT1mdW5jdGlvbihCKXtyZXR1cm4geVsxOV0uY2FsbCh0aGlzLDksQil9LHpWPSgoKHFLLnByb3RvdHlwZS5UPVJbNDhdKDQsc1cpLE8pWzIxXSg2LE9nLFQpLE9nLnByb3RvdHlwZSkuVD1SWzQ4XSg5LFswLFRhLEJHLHNXLGQkXSksZnVuY3Rpb24oKXtyZXR1cm4gZVsxOV0uY2FsbCh0aGlzLDgpfSksb2k9KE9bMjFdKDUsaFIsVCksZnVuY3Rpb24oQil7cmV0dXJuIEdbMTZdLmNhbGwodGhpcywxLEIpfSksdkk9KChPWzIxXSgzLChoUi5wcm90b3R5cGUuVD1SWzQ4XSg5LFswLENYXSksdFIpLFQpLHRSLnByb3RvdHlwZSkuVD1SWzQ4XSg0LFswXSksT1s4XSgxMSw0MixmdW5jdGlvbihCLHosSyxKLApDLGIsQSx2LHAsUSxuLFope2ZvcihRPShwPVs2Miw3OCwxM10sbj04OCxwWzBdKTs7KXRyeXtpZihuPT1wWzJdKWJyZWFrO2Vsc2V7aWYobj09ODgpcmV0dXJuIFE9cFsxXSxBPW5ldyBJaSx2PUhbOF0oMzIsMjY2MikoSyhHWzE1XSgzNyksNDEpKSxiPUhbOF0oMTIsOTExNCkodigpLEMuam9pbigkMDgoKSkseXYoKSksa1sxNF0oNCwhMCxEWzhdLmJpbmQobnVsbCxwWzFdKSxiLDEsQSxnWzJdLmJpbmQobnVsbCwxNykpLEEueWUoKTtuPT0yOSYmKFE9cFswXSxuPXBbMl0pfX1jYXRjaChXKXtpZihRPT1wWzBdKXRocm93IFc7UT09cFsxXSYmKFo9VyxuPTI5KX19KSxmdW5jdGlvbihCLHope3ZhciBLPVszMywxMywzN10sSj1HMi5hcHBseSgyLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKEMpe3JldHVybiBPWzI1XSgxLEMpfSk7cmV0dXJuIFJbS1sxXV0oS1syXSxIWzI1XSg0MSxPWzldKDI3LDM4KSxCKSxbT1syNV0oNSx6KV0uY29uY2F0KGVbS1swXV0oMjAsSikpKX0pOwpPWzhdKDksNDYsWyJ1aWItIl0pO2Z1bmN0aW9uIHBRKCl7cmV0dXJuIFlbNDhdLmNhbGwodGhpcywzKX0KdmFyIEdkPSgkTS5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITB9LHBRLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5tfHwodGhpcy5tPSEwLHRoaXMuWigpKX0scFEucHJvdG90eXBlLm09ITEscFEucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT0oKCRNLnByb3RvdHlwZS52PWZ1bmN0aW9uKCl7dGhpcy5YPSEwfSxwUS5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXtpZih0aGlzLlApZm9yKDt0aGlzLlAubGVuZ3RoOyl0aGlzLlAuc2hpZnQoKSgpfSxmdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfSksITEpLG80PWZ1bmN0aW9uKEIseixLLEope2lmKEo9WyJ0ZXN0IiwhMSwiYWRkRXZlbnRMaXN0ZW5lciJdLCFHbFtKWzJdXXx8IU9iamVjdC5kZWZpbmVQcm9wZXJ0eSlyZXR1cm4gSlsxXTt6PShCPUpbMV0seFYpKHt9LGxpOCgpLHtnZXQ6ZnVuY3Rpb24oKXtCPSEwfX0pO3RyeXtLPWZ1bmN0aW9uKCl7fSxHbFtKWzJdXShKWzBdLApLLHopLEdsLnJlbW92ZUV2ZW50TGlzdGVuZXIoSlswXSxLLHopfWNhdGNoKEMpe31yZXR1cm4gQn0oKSx5Rz1MNCgpLHpmPSgoKG92KCksJHVoKSgpLE5FMCkoKSxDTTMoKSksS1o9d2woKSxrND1haygpLHRVPVVtMygpLEh0Tj12VygpLCRSPXpGWSgpLHl4PXgzKCksZVpEPU1QdygpLEJTPSgoZjcoKSxBMSgpLFc0KSgpLFFaaCgpKSxGOD1FNigpLHNYPVJXMCgpLEp0PUQwKCksQ1o9VE4oKSxmUz0oKCgoKCREKCksdDEoKSxSNykoKSxUOSkoKSxOZSkoKSxnSCkoKSxUVygpKSxQNmw9TE8oKSxLZj0oKGlBKCksdFlZKSgpLFpEKCksYU8oKSxPWzhdKDExLDI0LG1bOF0uYmluZChudWxsLDEpKSxFZVkoKSxmdW5jdGlvbihCLHope3JldHVybiBHWzQ2XS5jYWxsKHRoaXMsMTUsQix6KX0pLHZSPShlRk4oKSxMMygpLEhhKCksZnVuY3Rpb24oKXtyZXR1cm4gUlsyM10uY2FsbCh0aGlzLDU4KX0pLGd2PWRlKCksTkg9KG5QKCksRm8zKSgpLFV2PSgoazUoKSxvTCgpLGptKSgpLEpfKSgpLFlzPQooKCgoSk8oKSxwZSgpLGcwaCkoKSxvSCgpLGMwKSgpLHJmKSgpLGYwKSgpLG1LPSgoUzhNKCksTUIpKCksWEIoKSxIaHcoKSx1QygpKSxlRj0oKCgoKCgoKCgoKCgoUlEoKSxTZDApKCkseG8oKSxyWCgpLENtTSkoKSxBTFopKCksUjEpKCksRVQoKSxSVykoKSxwTCkoKSxJZSkoKSxHNCkoKSxVRykoKSx2dSkoKSxWbCgpLE1OTSgpLENPKCksJHYpKCksJHooKSxXTk4oKSxieCgpLEhBKCksc2Y4KCksQnIoKSxLOCgpLFl3KCksQ2MoKSxiRFopKCkseHcoKSksYmI9KGtCKCksZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEhbMzJdLmNhbGwodGhpcyw4OCxCLHosSyxKKX0pLCRyeD0oKCgoKChCSygpLHhkKSgpLEdCKSgpLHlNKSgpLEVuKCksQjkpKCksSDkpKCksaFk4KSgpLEV6PShZd00oKSxWMCgpKSxxMDg9KCgoKCgoKCgoKCgoKCgobU4wKCkscEZZKSgpLGRjKSgpLGVNKSgpLHRYTigpLGZBKCksb1ApKCksZ1dEKCksWUgoKSxxMikoKSxvZUQoKSxDTE0pKCksZWcoKSxqUigpLExOKCksCkgwKSgpLFlFKSgpLGc4KSgpLE1YKSgpLGh2KSgpLFZaKSgpLHRfKSgpLHYzKSgpLGZ1bmN0aW9uKEIseil7cmV0dXJuIERbMTRdLmNhbGwodGhpcywxLEIseil9KSxINj0oKCgoKCgoKCgoKCgoKCgocDc4KCksZmZOKCksWjVaKSgpLGRJKSgpLGF2KSgpLHJzKCksZTEpKCksaGMoKSxWVFopKCksemkoKSxQMkQoKSxkVTApKCksdjg4KCksZWIpKCksY1haKSgpLHkzKSgpLCRsKCksV1gpKCksUzF4KSgpLExjKCksRFUoKSxxOCgpLEpIKCksQlcoKSxVbigpLHM5KSgpLHplKSgpLEVPaCkoKSx3MSkoKSxLbFkoKSxZcSgpLFA4KCkpLElFPWN2KCksWF89WyhxMU4oKSwyKSwzLDQsNSw2XTsoKGdPWigpLFVNdygpLGlLTigpLEhDKSgpLFpaKCksVVQpKCk7ZnVuY3Rpb24gY2IoQix6LEspe3JldHVybiBnWzI1XS5jYWxsKHRoaXMsOSxCLHosSyl9CnZhciByNT0oKChIWzI0XSg4MyxjYiwkTSksYUwoKSxRb3goKSxHYikoKSxjYikucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSl7Qlt0aGlzLnN0YXRlPUIuc3RhdGUsdGhpcy5rZXk9KHRoaXMua2V5Q29kZT0oKCh0aGlzW0o9KEE9KHRoaXMuZXE9Qix0aGlzLmJ1dHRvbj1CLmJ1dHRvbix0aGlzLnRhcmdldD1CLnRhcmdldHx8Qi5zcmNFbGVtZW50LFsiZGVmYXVsdFByZXZlbnRlZCIsKEM9dGhpcy50eXBlPUIudHlwZSxLPVswLCIiXSwiTSIpLCh0aGlzLmFsdEtleT1CLmFsdEtleSwiY2hhbmdlZFRvdWNoZXMiKV0pLEJbQVt0aGlzLnBvaW50ZXJUeXBlPUIucG9pbnRlclR5cGUsMl1dKSYmQltBWzJdXS5sZW5ndGg/QltBWzJdXVtLWzBdXTpudWxsLHRoaXMudGltZVN0YW1wPUIudGltZVN0YW1wLEFbMV1dPXosYj0odGhpcy5tZXRhS2V5PUIubWV0YUtleSxCLnJlbGF0ZWRUYXJnZXQpLHRoaXMuY3RybEtleT1CLmN0cmxLZXksYil8fChDPT1rND9iPUIuZnJvbUVsZW1lbnQ6CkM9PXRVJiYoYj1CLnRvRWxlbWVudCkpLHRoaXMpLnJlbGF0ZWRUYXJnZXQ9YixKPyh0aGlzLmNsaWVudFg9Si5jbGllbnRYIT09dm9pZCAwP0ouY2xpZW50WDpKLnBhZ2VYLHRoaXMuY2xpZW50WT1KLmNsaWVudFkhPT12b2lkIDA/Si5jbGllbnRZOkoucGFnZVksdGhpcy5zY3JlZW5YPUouc2NyZWVuWHx8S1swXSx0aGlzLnNjcmVlblk9Si5zY3JlZW5ZfHxLWzBdKToodGhpcy5jbGllbnRYPUIuY2xpZW50WCE9PXZvaWQgMD9CLmNsaWVudFg6Qi5wYWdlWCx0aGlzLmNsaWVudFk9Qi5jbGllbnRZIT09dm9pZCAwP0IuY2xpZW50WTpCLnBhZ2VZLHRoaXMuc2NyZWVuWD1CLnNjcmVlblh8fEtbMF0sdGhpcy5zY3JlZW5ZPUIuc2NyZWVuWXx8S1swXSksdGhpcy5zaGlmdEtleT1CLnNoaWZ0S2V5LEIua2V5Q29kZXx8S1swXSksQi5rZXkpfHxLWzFdLHRoaXMuQT1kcj9CLm1ldGFLZXk6Qi5jdHJsS2V5LHRoaXMucG9pbnRlcklkPUIucG9pbnRlcklkfHxLWzBdLEFbMF1dJiZjYi5ZLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyl9LApjYi5wcm90b3R5cGUudj1mdW5jdGlvbihCKXsoY2IuWVtCPVsic3RvcFByb3BhZ2F0aW9uIiwiY2FsbCIsInYiXSxCWzJdXVtCWzFdXSh0aGlzKSx0aGlzKS5lcVtCWzBdXT90aGlzLmVxW0JbMF1dKCk6dGhpcy5lcS5jYW5jZWxCdWJibGU9ITB9LGNiLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbihCLHopeygoej1bImVxIiwicHJldmVudERlZmF1bHQiLCExXSxjYi5ZW3pbMV1dKS5jYWxsKHRoaXMpLEI9dGhpc1t6WzBdXSxCW3pbMV1dKT9CW3pbMV1dKCk6Qi5yZXR1cm5WYWx1ZT16WzJdfSwyNjU0NDM1NzYxKSxmOT0iY2xvc3VyZV9saXN0ZW5hYmxlXyIrKEFlKCkqMUU2fDApLFlmPTA7ZnVuY3Rpb24gaXQzKEIseixLLEosQyl7cmV0dXJuIFJbNV0uY2FsbCh0aGlzLDI0LEosQixDLHosSyl9CmZ1bmN0aW9uIEQ2KEIseil7Zm9yKHZhciBLLEosQz0xO0M8YXJndW1lbnRzLmxlbmd0aDtDKyspe2ZvcihKIGluIEs9YXJndW1lbnRzW0NdLEspQltKXT1LW0pdO2Zvcih2YXIgYj0wO2I8Y1oubGVuZ3RoO2IrKylKPWNaW2JdLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChLLEopJiYoQltKXT1LW0pdKX19ZnVuY3Rpb24gSkYoQil7dmFyIHo9WzAsMSwiYXBwbHkiXSxLPVsyLDEsIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIl0sSj1hcmd1bWVudHMubGVuZ3RoO2lmKEo9PUtbelsxXV0mJkFycmF5LmlzQXJyYXkoYXJndW1lbnRzW3pbMF1dKSlyZXR1cm4gSkZbelsyXV0obnVsbCxhcmd1bWVudHNbelswXV0pO3ZhciBDPXt9O2lmKEolS1t6WzBdXSl0aHJvdyBFcnJvcihLWzJdKTtmb3IodmFyIGI9elswXTtiPEo7Yis9S1t6WzBdXSlDW2FyZ3VtZW50c1tiXV09YXJndW1lbnRzW2IrS1t6WzFdXV07cmV0dXJuIEN9CmZ1bmN0aW9uIGZ0KEIpe3JldHVybiBnWzM2XS5jYWxsKHRoaXMsOCxCKX0KdmFyIHZmPShmdC5wcm90b3R5cGUucmVtb3ZlPShmdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe3JldHVybihwPURbQT0odj0oUT1bInYiLCJwdXNoIiwiSXUiXSxCLnRvU3RyaW5nKCkpLHRoaXNbUVswXV1bdl0pLEF8fChBPXRoaXNbUVswXV1bdl09W10sdGhpcy5NKyspLDQyXSgzNCwwLHosSixBLEMpLHA+LTEpPyhiPUFbcF0sS3x8KGJbUVsyXV09ITEpKTooYj1uZXcgaXQzKHYsISFKLHosdGhpcy5zcmMsQyksYltRWzJdXT1LLEFbUVsxXV0oYikpLGJ9LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtpZighKChDPVshMCwocD1bMSw0LCJ2Il0sdj1CLnRvU3RyaW5nKCksMCksITFdLHYpaW4gdGhpc1twWzJdXSkpcmV0dXJuIENbMl07cmV0dXJuIEE9RFs0Ml0oMzgsQ1twWzBdXSx6LChiPXRoaXNbcFsyXV1bdl0sSyksYixKKSxBPi0xPyhPWzEwXShwWzFdLENbMF0sYltBXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGIsQSxwWzBdKSwKYi5sZW5ndGg9PUNbcFswXV0mJihkZWxldGUgdGhpc1twWzJdXVt2XSx0aGlzLk0tLSksQ1swXSk6Q1syXX0pLCJjbG9zdXJlX2xtXyIrKEFlKCkqMUU2fDApKSxTYT1YcSgpLHVjPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3JldHVybiBCW0E9WyJzcmMiLCJtQSIsMTZdLEFbMV1dP0s9ITA6KEo9bmV3IGNiKHosdGhpcyksYj1CLmxpc3RlbmVyLEM9Qi5kQnx8QltBWzBdXSxCLkl1JiZSW0FbMl1dKDQsQiksSz1iLmNhbGwoQyxKKSksS30sQVE9MCxVMD0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhBZSgpKjFFOT4+PjApLHdGPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4ga1syMF0uY2FsbCh0aGlzLDEsSyx6LEMsSixCLGIsQSx2LHApfTttWzMzXSgzLDAsZnVuY3Rpb24oQil7dWM9Qih1Yyl9KTtmdW5jdGlvbiB3RShCKXtyZXR1cm4gZVs0XS5jYWxsKHRoaXMsNCxCKX0KdmFyIHprPSgoKCgoKChIWzI0XSgyNix3RSxwUSksd0UucHJvdG90eXBlKS5aPWZ1bmN0aW9uKCl7d0UuWS5aLmNhbGwodGhpcyksR1syNV0oMTgsdGhpcyl9LHdFLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJFdmVudEhhbmRsZXIuaGFuZGxlRXZlbnQgbm90IGltcGxlbWVudGVkIik7fSxIKVsyNF0oOTEsTHIsJE0pLEhbMjRdKDU3LHBhLCRNKSxRbCkoKSxQUSgpLEZ2KSgpLEZXKSgpLHIxKCksQnIoKSxHTikoKSxtZSgpLGhzKCkpLEt0PWhsKCksUWE9R3ooKSxuYj1FVigpLEF0PXVpKCksQ3Q9Q04oKSxiNj1RdCgpLHlGOD15Rjh8fHtpZDpyZWwoKX0sWTBOPSgoKHFsaCgpLE9yKCksYmdNKSgpLHdTLnByb3RvdHlwZSkuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLnN0YXRlIT09MiYmdGhpcy5jaGFubmVsLmNsb3NlKCl9LHdTLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKEIseil7ej1CLnllKCksdGhpcy5jaGFubmVsLnNlbmQoeil9LFkwTil8fHtpZDplSmgoKX0sCnZHLGEyLGNGOD1uZXcgdWosUzB3PShhMj0odkc9a1s2XSgyNiwxLGNGOCw5KSxIKVswXSg0Nyx2RywyLDUpLFMwdyl8fHtpZDp2V0coKX0sbXJxPShKJC5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIpe3JldHVybiB0aGlzLnY9PT1CLnZ9LG1ycXx8e2lkOnhhWSgpfSksbE4zPShEVy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEIseixLKXt0aGlzW0I9dGhpc1soej0oSz1bIm1heCIsInYiLCJub3ciXSxEYXRlW0tbMl1dKCkpLEspWzFdXSsoei10aGlzLk0pLzNFNSxLWzFdXT49Qnx8KHRoaXNbS1sxXV09bDkoQix0aGlzW0tbMF1dKSx0aGlzLk09eil9LGxOMyl8fHtpZDpHZDgoKX0sRWtEPUVrRHx8e2lkOm9hKCl9LCRiPSgoT1syMV0oNSx4VyxFcnJvciksWFcoKSxPRDMpKCksQ0goKSwvXi0tLisvKSxLYj0odXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCLHope3JldHVybih6PVsiaSIsIlIiLCJBIl0sQlt6WzFdXT09dGhpc1t6WzFdXSYmQlt6WzJdXT09dGhpc1t6WzJdXSkmJgpCLk09PXRoaXMuTSYmQi5YPT10aGlzLlgmJkJbelswXV09PXRoaXNbelswXV0mJkIudj09dGhpcy52fSxWVykoKSxKNj1iUygpLGI5PWhOKCksejU9eHQoKSxzSD1ldygpLENiPWtEKCksRTk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHApe3JldHVybiBZWzE0XS5jYWxsKHRoaXMsMSxCLHosSyxKLEMsYixBLHYscCl9LGxPPWZ1bmN0aW9uKEIpe3JldHVybiBZWzRdLmNhbGwodGhpcywyNCxCKX0sWEk4PSgoKCgoKCgoRj0oKCgoKCgoKEY9KEhbMjRdKCgoKCgoKCgoKCgoKCgoRj0oKCgoKCh1ci5wcm90b3R5cGUuRWQ9ZnVuY3Rpb24oQix6KXtyZXR1cm4oQj1bKHo9WzAsIkEiLCJ2Il0sMCldLHRoaXMuUj09Qlt6WzBdXSkmJnRoaXNbelsxXV09PUJbelswXV0mJnRoaXMuTT09Qlt6WzBdXSYmdGhpcy5YPT1CW3pbMF1dJiZ0aGlzLmk9PUJbelswXV0mJnRoaXNbelsyXV09PUJbelswXV19LEY9JFQucHJvdG90eXBlLHVyKS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseil7KCgodGhpcy52Kz0KKHo9KHRoaXMuQSs9Qi5BLFsodGhpcy5SKz1CLlIsIlgiKSwiTSIsImkiXSksQi52KSx0aGlzKVt6WzFdXSs9Qlt6WzFdXSx0aGlzKVt6WzJdXSs9Qlt6WzJdXSx0aGlzKVt6WzBdXSs9Qlt6WzBdXX0sRikuZ2V0RnVsbFllYXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldEZ1bGxZZWFyKCl9LEYuZ2V0WWVhcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZ1bGxZZWFyKCl9LEYpLmdldE1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRNb250aCgpfSwkVC5wcm90b3R5cGUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYudmFsdWVPZigpfSxGKS5nZXREYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXREYXRlKCl9LEYuZ2V0VGltZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VGltZSgpfSxGKS5nZXREYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldERheSgpfSwkVC5wcm90b3R5cGUpLEYuZ2V0VVRDRnVsbFllYXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ0Z1bGxZZWFyKCl9LApGKS5nZXRVVENNb250aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDTW9udGgoKX0sRikuZ2V0VVRDRGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDRGF0ZSgpfSxGKS5nZXRVVENEYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldERheSgpfSxGLmdldFVUQ0hvdXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRVVENIb3VycygpfSxGLmdldFVUQ01pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ01pbnV0ZXMoKX0sRikuZ2V0VGltZXpvbmVPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFRpbWV6b25lT2Zmc2V0KCl9LEYpLnNldD1mdW5jdGlvbihCKXt0aGlzLnY9bmV3IERhdGUoQi5nZXRGdWxsWWVhcigpLEIuZ2V0TW9udGgoKSxCLmdldERhdGUoKSl9LEYuc2V0RnVsbFllYXI9ZnVuY3Rpb24oQil7dGhpcy52LnNldEZ1bGxZZWFyKEIpfSxGKS5zZXRZZWFyPWZ1bmN0aW9uKEIpe3RoaXMuc2V0RnVsbFllYXIoQil9LApGKS5zZXRNb250aD1mdW5jdGlvbihCKXt0aGlzLnYuc2V0TW9udGgoQil9LEYpLnNldERhdGU9ZnVuY3Rpb24oQil7dGhpcy52LnNldERhdGUoQil9LEYpLnNldFRpbWU9ZnVuY3Rpb24oQil7dGhpcy52LnNldFRpbWUoQil9LEYuc2V0VVRDRnVsbFllYXI9ZnVuY3Rpb24oQil7dGhpcy52LnNldFVUQ0Z1bGxZZWFyKEIpfSxGLnNldFVUQ01vbnRoPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRVVENNb250aChCKX0sRikuc2V0VVRDRGF0ZT1mdW5jdGlvbihCKXt0aGlzLnYuc2V0VVRDRGF0ZShCKX0sRikuYWRkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKChRPSh2PVsxMiw5OSwxMF0sWyJzZXREYXRlIiwiZ2V0RGF0ZSIsMV0pLEIpLlJ8fEIuQSl7KEM9dGhpcy5nZXRZZWFyKCkrYk4oKHA9dGhpcy5nZXRNb250aCgpK0IuQStCLlIqdlswXSxwL3ZbMF0pKSxwJT12WzBdLHA8MCkmJihwKz12WzBdKTthOntzd2l0Y2gocCl7Y2FzZSBRWzJdOko9QyU0IT0wfHxDJTEwMD09MCYmCkMlNDAwIT0wPzI4OjI5O2JyZWFrIGE7Y2FzZSA1OmNhc2UgODpjYXNlIHZbMl06Y2FzZSAzOko9MzA7YnJlYWsgYX1KPTMxfXRoaXNbKCgodGhpc1soej1sOShKLHRoaXNbUVsxXV0oKSksUSlbMF1dKFFbMl0pLHRoaXMpLnNldEZ1bGxZZWFyKEMpLHRoaXMpLnNldE1vbnRoKHApLFEpWzBdXSh6KX1CLk0mJihBPXRoaXMuZ2V0WWVhcigpLGI9QT49MCYmQTw9dltRWzJdXT8tMTkwMDowLEs9bmV3IERhdGUoKG5ldyBEYXRlKEEsdGhpcy5nZXRNb250aCgpLHRoaXNbUVsxXV0oKSwxMikpLmdldFRpbWUoKStCLk0qODY0RTUpLHRoaXNbUVswXV0oUVsyXSksdGhpcy5zZXRGdWxsWWVhcihLLmdldEZ1bGxZZWFyKCkrYiksdGhpcy5zZXRNb250aChLLmdldE1vbnRoKCkpLHRoaXNbUVswXV0oS1tRWzFdXSgpKSxZWzM4XSg4LEtbUVsxXV0oKSx0aGlzKSl9LEYpLlFhPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIEs9KEM9WyJqb2luIiwwLChKPVswLDIsKHo9dGhpcy5nZXRGdWxsWWVhcigpLAoxKV0sMildLHo8SltDWzFdXT9JOCgpOno+PTFFND90YygpOiIiKSxbSytPWzNdKDE2LGU3KHopLEs/Njo0KSxPWzNdKDgsdGhpcy5nZXRNb250aCgpK0pbQ1syXV0sSlsxXSksT1szXSgzMix0aGlzLmdldERhdGUoKSxKWzFdKV1bQ1swXV0oQj9JOCgpOiIiKSsiIn0sRikuZXF1YWxzPWZ1bmN0aW9uKEIseil7cmV0dXJuISgoej1bImdldE1vbnRoIiwiZ2V0WWVhciIsImdldERhdGUiXSwhQnx8dGhpc1t6WzFdXSgpIT1CW3pbMV1dKCl8fHRoaXNbelswXV0oKSE9Qlt6WzBdXSgpKXx8dGhpc1t6WzJdXSgpIT1CW3pbMl1dKCkpfSxGLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUWEoKX0sMjUpLFhFLCRUKSxYRSkucHJvdG90eXBlLEYpLmdldEhvdXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRIb3VycygpfSxGLmdldE1pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldE1pbnV0ZXMoKX0sRikuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0U2Vjb25kcygpfSwKRi5nZXRNaWxsaXNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldE1pbGxpc2Vjb25kcygpfSxGKS5nZXRVVENEYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ0RheSgpfSxGKS5nZXRVVENIb3Vycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDSG91cnMoKX0sRi5nZXRVVENNaW51dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudi5nZXRVVENNaW51dGVzKCl9LEYuZ2V0VVRDU2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuZ2V0VVRDU2Vjb25kcygpfSxGKS5nZXRVVENNaWxsaXNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52LmdldFVUQ01pbGxpc2Vjb25kcygpfSxGLnNldEhvdXJzPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRIb3VycyhCKX0sRikuc2V0TWludXRlcz1mdW5jdGlvbihCKXt0aGlzLnYuc2V0TWludXRlcyhCKX0sRikuc2V0U2Vjb25kcz1mdW5jdGlvbihCKXt0aGlzLnYuc2V0U2Vjb25kcyhCKX0sRi5zZXRNaWxsaXNlY29uZHM9CmZ1bmN0aW9uKEIpe3RoaXMudi5zZXRNaWxsaXNlY29uZHMoQil9LFhFKS5wcm90b3R5cGUsRikuc2V0VVRDSG91cnM9ZnVuY3Rpb24oQil7dGhpcy52LnNldFVUQ0hvdXJzKEIpfSxGKS5zZXRVVENNaW51dGVzPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRVVENNaW51dGVzKEIpfSxGKS5zZXRVVENTZWNvbmRzPWZ1bmN0aW9uKEIpe3RoaXMudi5zZXRVVENTZWNvbmRzKEIpfSxGKS5zZXRVVENNaWxsaXNlY29uZHM9ZnVuY3Rpb24oQil7dGhpcy52LnNldFVUQ01pbGxpc2Vjb25kcyhCKX0sRikuYWRkPWZ1bmN0aW9uKEIseil7KEJbQlsoKHo9WyJjYWxsIiwiWCIsImkiXSwkVCkucHJvdG90eXBlLmFkZFt6WzBdXSh0aGlzLEIpLHopWzFdXSYmdGhpcy5zZXRVVENIb3Vycyh0aGlzLnYuZ2V0VVRDSG91cnMoKStCW3pbMV1dKSx6WzJdXSYmdGhpcy5zZXRVVENNaW51dGVzKHRoaXMudi5nZXRVVENNaW51dGVzKCkrQlt6WzJdXSksQi52KSYmdGhpcy5zZXRVVENTZWNvbmRzKHRoaXMudi5nZXRVVENTZWNvbmRzKCkrCkIudil9LEYpLlFhPWZ1bmN0aW9uKEIseixLLEope3JldHVybihLPSRULnByb3RvdHlwZS5RYS5jYWxsKHRoaXMsKHo9WyJUIiwiOiIsKEo9WyJnZXRIb3VycyIsMiwyNF0sMildLEIpKSxCKT9LK3pbMF0rT1szXSg4LHRoaXNbSlswXV0oKSx6W0pbMV1dKSt6WzFdK09bM10oSlsyXSx0aGlzLmdldE1pbnV0ZXMoKSx6W0pbMV1dKSt6WzFdK09bM10oOCx0aGlzLmdldFNlY29uZHMoKSx6W0pbMV1dKTpLK3pbMF0rT1szXShKWzJdLHRoaXNbSlswXV0oKSx6W0pbMV1dKStPWzNdKDMyLHRoaXMuZ2V0TWludXRlcygpLHpbSlsxXV0pK09bM10oMTYsdGhpcy5nZXRTZWNvbmRzKCkseltKWzFdXSl9LEYpLmVxdWFscz1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy5nZXRUaW1lKCk9PUIuZ2V0VGltZSgpfSxGLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUWEoKX0sWEk4KXx8e2lkOnJZKCl9LHV5TT0oR3EucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy52PT09CkIudiYmdGhpcy5NPT09Qi5NfSx1eU0pfHx7aWQ6VU5oKCl9LGFOOD0oWnUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy52YWx1ZS5lcXVhbHMoQi52YWx1ZSl9LGFOOCl8fHtpZDpseSgpfSxoWjA9KHpPLnByb3RvdHlwZS5lcXVhbHM9KCh6Si5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKFc9WyJlcXVhbHMiLChwPVshMSwwLCEwXSwwKSwxXSx0aGlzLnZhbHVlPT09bnVsbClDPUIudmFsdWU9PT1udWxsO2Vsc2V7aWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mIEokKUo9Qi52YWx1ZSBpbnN0YW5jZW9mIEokP3RoaXMudmFsdWVbV1swXV0oQi52YWx1ZSk6ITE7ZWxzZXtpZih0aGlzLnYhPT1CLnYpbj1wW1dbMV1dO2Vsc2V7aWYodHlwZW9mIHRoaXMudmFsdWU9PT0ic3RyaW5nInx8dHlwZW9mIHRoaXMudmFsdWU9PT0ibnVtYmVyIiliPXRoaXMudmFsdWU9PT1CLnZhbHVlO2Vsc2V7aWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mCmV0KUE9Qi52YWx1ZSBpbnN0YW5jZW9mIGV0P3RoaXMudmFsdWVbV1swXV0oQi52YWx1ZSk6ITE7ZWxzZXtpZih0aGlzLnZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSl7aWYoQi52YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpYTppZih2PUIudmFsdWUsWj10aGlzLnZhbHVlLFoubGVuZ3RoIT09di5sZW5ndGgpSz1wW1dbMV1dO2Vsc2V7Zm9yKHo9cFtXWzJdXTt6PFoubGVuZ3RoOysreilpZihaW3pdIT09dlt6XSl7Sz1wW1dbMV1dO2JyZWFrIGF9Sz1wWzJdfWVsc2UgSz1wW1dbMV1dO1E9S31lbHNlIFE9dGhpcy52YWx1ZSBpbnN0YW5jZW9mIEdxP0IudmFsdWUgaW5zdGFuY2VvZiBHcT90aGlzLnZhbHVlW1dbMF1dKEIudmFsdWUpOiExOnRoaXMudmFsdWUgaW5zdGFuY2VvZiBadT9CLnZhbHVlIGluc3RhbmNlb2YgWnU/dGhpcy52YWx1ZVtXWzBdXShCLnZhbHVlKTohMTohMTtBPVF9Yj1BfW49Yn1KPW59Qz1KfXJldHVybiBDfSxGNSkucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihCLAp6LEssSil7aWYoSz0oSj1bIk0iLCExLCJ2Il0sdGhpc1tKWzJdXS5sZW5ndGgpPT09QltKWzJdXS5sZW5ndGgpYTppZih0aGlzW0pbMF1dIT09QltKWzBdXXx8dGhpc1tKWzJdXS5sZW5ndGg+QltKWzJdXS5sZW5ndGgpSz1KWzFdO2Vsc2V7Zm9yKHo9MDt6PHRoaXNbSlsyXV0ubGVuZ3RoOysreilpZighdGhpc1tKWzJdXVt6XS5lcXVhbHMoQltKWzJdXVt6XSkpe0s9SlsxXTticmVhayBhfUs9ITB9cmV0dXJuIEt9LGZ1bmN0aW9uKEIpe3JldHVybiB0aGlzLnYuZXF1YWxzKEIudil9KSxoWjApfHx7aWQ6dVMoKX0sZHJ4PShCYSgpLGRyeCl8fHtpZDpIcigpfSxra3c9KE9bMjFdKDIsdWcsRXJyb3IpLGtrdyl8fHtpZDplVigpfSx0TWg9dE1ofHx7aWQ6aSQoKX0sVXJ3PVVyd3x8e2lkOnhOKCl9LFRmPW5ldyAoKCgoKEY9b2kucHJvdG90eXBlLEYudW5zdWJzY3JpYmU9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuKXtpZihuPVszNiwiaXNBcnJheSIsIlgiXSwhdGhpcy5jbG9zZWQpe2lmKEFycmF5W3Y9Cih0aGlzLmNsb3NlZD0hMCx0aGlzKS5NLG5bMV1dKHYpKWZvcihLPWdbMTJdKDcsdiksYj1LLm5leHQoKTshYi5kb25lO2I9Sy5uZXh0KCkpYi52YWx1ZS5yZW1vdmUodGhpcyk7ZWxzZSB2PT1udWxsfHx2LnJlbW92ZSh0aGlzKTtpZihlWzI0XSg4MywoUT10aGlzLmksUSkpKXRyeXtRKCl9Y2F0Y2goWil7Qz1aIGluc3RhbmNlb2YgdWc/Wi5lcnJvcnM6W1pdfWlmKEo9dGhpc1tuWzJdXSlmb3IodGhpc1tuWzJdXT1udWxsLEE9Z1sxMl0oNSxKKSxCPUEubmV4dCgpOyFCLmRvbmU7Qj1BLm5leHQoKSl7cD1CLnZhbHVlO3RyeXtlWzI0XSg3OSxwKT9wKCk6cC51bnN1YnNjcmliZSgpfWNhdGNoKFope3o9dm9pZCAwLEM9KHo9QykhPW51bGw/ejpbXSxaIGluc3RhbmNlb2YgdWc/Qz1bXS5jb25jYXQoZVszM10oMTEsQyksZVszM10oblswXSxaLmVycm9ycykpOkMucHVzaChaKX19aWYoQyl0aHJvdyBuZXcgdWcoQyk7fX0sRikuYWRkPWZ1bmN0aW9uKEIseixLKXtpZihLPVsyNCwiWCIsImNsb3NlZCJdLApCJiZCIT09dGhpcylpZih0aGlzW0tbMl1dKWVbS1swXV0oODMsQik/QigpOkIudW5zdWJzY3JpYmUoKTtlbHNle2lmKEIgaW5zdGFuY2VvZiBvaSl7aWYoQltLWzJdXXx8Qi5ucih0aGlzKSlyZXR1cm47Qi5NVSh0aGlzKX0odGhpc1tLWzFdXT0oej10aGlzW0tbMV1dKSE9bnVsbD96OltdKS5wdXNoKEIpfX0sRikuZFg9ZnVuY3Rpb24oQix6KXtyZXR1cm4ga1szM10uY2FsbCh0aGlzLDE2LEIseil9LEYpLk1VPWZ1bmN0aW9uKEIseil7cmV0dXJuIGVbMTZdLmNhbGwodGhpcywxMixCLHopfSxGLm5yPWZ1bmN0aW9uKEIseil7cmV0dXJuIFJbMjJdLmNhbGwodGhpcywxNCxCLHopfSxGKS5yZW1vdmU9ZnVuY3Rpb24oQix6KXsoej10aGlzLlgpJiZHWzMyXSgzMywxLHosQiksQiBpbnN0YW5jZW9mIG9pJiZCLmRYKHRoaXMpfSxvaSksTU0wPShUZi5jbG9zZWQ9KG9pLnY9VGYsITApLE1NMHx8e2lkOkVHKCl9KSx3SUc9d0lHfHx7aWQ6QVcoKX0sSU5sPUlObHx8e2lkOmZ2KCl9LEZwaD0KRnBofHx7aWQ6ZHFEKCl9LEJ3Wj1Cd1p8fHtpZDpRQjAoKX0sZmo9KCgoKEY9KChPWzIxXSg0LHZ6LG9pKSx2eikudj1vaS52LHZ6LmNyZWF0ZT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIG5ldyBIYyhCLHosSyl9LHZ6LnByb3RvdHlwZSksRikubmV4dD1mdW5jdGlvbihCKXt0aGlzLnY/TzUoKTp0aGlzLm8xKEIpfSxGKS5lcnJvcj1mdW5jdGlvbihCKXt0aGlzLnY/Q3YoKToodGhpcy52PSEwLHRoaXMuVG8oQikpfSxGLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy52fHwodGhpcy52PSEwLHRoaXMuc2EoKSl9LEYudW5zdWJzY3JpYmU9ZnVuY3Rpb24oQil7KEI9WyJ1bnN1YnNjcmliZSIsImNsb3NlZCIsImNhbGwiXSx0aGlzW0JbMV1dKXx8KHRoaXMudj0hMCxvaS5wcm90b3R5cGVbQlswXV1bQlsyXV0odGhpcykpfSxGKS5vMT1mdW5jdGlvbihCKXt0aGlzLmRlc3RpbmF0aW9uLm5leHQoQil9LGZ1bmN0aW9uKEIpe3JldHVybiBtWzE2XS5jYWxsKHRoaXMsMTIsQil9KSxzSGg9KCgoT1syMV0oKCgoRi5zYT0KZnVuY3Rpb24oKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfSxGKS5Ubz0oZmoucHJvdG90eXBlLm5leHQ9KGZqLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihCLHope2lmKHo9dGhpcy52LHouZXJyb3IpdHJ5e3ouZXJyb3IoQil9Y2F0Y2goSyl7a1syMl0oNTUsSyl9ZWxzZSBrWzIyXSg1NixCKX0sZnVuY3Rpb24oQix6KXtpZigoej10aGlzLnYseikubmV4dCl0cnl7ei5uZXh0KEIpfWNhdGNoKEspe2tbMjJdKDU0LEspfX0pLGZ1bmN0aW9uKEIpeyh0aGlzLmRlc3RpbmF0aW9uLmVycm9yKEIpLHRoaXMpLnVuc3Vic2NyaWJlKCl9KSxmaikucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKEIpe2lmKEI9dGhpcy52LEIuY29tcGxldGUpdHJ5e0IuY29tcGxldGUoKX1jYXRjaCh6KXtrWzIyXSg1Myx6KX19LDYpLEhjLHZ6KSxIYykudj12ei52LEhjKS5jcmVhdGU9dnouY3JlYXRlLHNIaCl8fHtpZDpqMSgpfSxQMj10eXBlb2YgU3ltYm9sPT09CiJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIix6bkQ9em5EfHx7aWQ6TiQoKX0sS2Q4PUtkOHx8e2lkOlF3TSgpfSxKelo9SnpafHx7aWQ6aEsoKX0sQzR3PSh6aC5wcm90b3R5cGVbUDJdPSgoRj16aC5wcm90b3R5cGUsRi5wNT1mdW5jdGlvbihCLHope3JldHVybiB6PW5ldyB6aCx6LnNvdXJjZT10aGlzLHouUj1CLHp9LEYuc3Vic2NyaWJlPSh6aC5jcmVhdGU9ZnVuY3Rpb24oQil7cmV0dXJuIG5ldyB6aChCKX0semgucHJvdG90eXBlLmhzPWZ1bmN0aW9uKCl7dmFyIEI9RzIuYXBwbHkoMCxhcmd1bWVudHMpO3JldHVybiBCLmxlbmd0aD9lWzFdKDMyLDAsQikodGhpcyk6dGhpc30sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEo9KEM9dGhpc1tiPShBPVsic291cmNlIiw1MCw4M10sQiYmQiBpbnN0YW5jZW9mIHZ6KXx8QiYmZVsyNF0oQVsyXSxCLm5leHQpJiZlWzI0XSg1MSxCLmVycm9yKSYmZVsyNF0oQVsxXSxCLmNvbXBsZXRlKSYmZVsyN10oMjgsCkIpP0I6bmV3IEhjKEIseixLKSxBWzBdXSx0aGlzLlIpLGIuYWRkKEo/Si5jYWxsKGIsQyk6Qz90aGlzLmk3KGIpOnRoaXMuckIoYikpLGJ9KSxGKS5yQj1mdW5jdGlvbihCKXt0cnl7cmV0dXJuIHRoaXMuaTcoQil9Y2F0Y2goeil7Qi5lcnJvcih6KX19LEYuZm9yRWFjaD1mdW5jdGlvbihCLHosSyl7cmV0dXJuIG5ldyAoej1IWzMzXSg1OSwoSz10aGlzLG51bGwpLHopLHopKGZ1bmN0aW9uKEosQyxiKXtiPUsuc3Vic2NyaWJlKGZ1bmN0aW9uKEEpe3RyeXtCKEEpfWNhdGNoKHYpe0ModiksYj09bnVsbHx8Yi51bnN1YnNjcmliZSgpfX0sQyxKKX0pfSxGLmk3PWZ1bmN0aW9uKEIseil7cmV0dXJuKHo9dGhpcy5zb3VyY2UpPT1udWxsP3ZvaWQgMDp6LnN1YnNjcmliZShCKX0sZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEM0dyl8fHtpZDpEZygpfSxiMDM9KE9bMjFdKDIsWlYsRXJyb3IpLGIwMyl8fHtpZDpFZncoKX0sQXpsPSgoKFBNLmNyZWF0ZT0oKCgoKCgoKChGPShPWzIxXSgzLAp4MSx6aCkseDEucHJvdG90eXBlKSxGLnA1PWZ1bmN0aW9uKEIseil7cmV0dXJuIHo9bmV3IFBNKHRoaXMsdGhpcyksei5SPUIsen0sRikuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gUlsxXS5jYWxsKHRoaXMsMTYpfSxGKS5uZXh0PWZ1bmN0aW9uKEIseixLLEope2lmKCEoSj1bIk0iLCJzbGljZSIsNV0sdGhpcy5nZSgpLHRoaXMpLnYpZm9yKEs9Z1sxMl0oSlsyXSx0aGlzW0pbMF1dW0pbMV1dKCkpLHo9Sy5uZXh0KCk7IXouZG9uZTt6PUsubmV4dCgpKXoudmFsdWUubmV4dChCKX0sRi5lcnJvcj1mdW5jdGlvbihCLHosSyl7aWYoIShLPVsiWCIsIkEiLCJzaGlmdCJdLHRoaXMuZ2UoKSx0aGlzKS52KWZvcih0aGlzW0tbMF1dPXRoaXMudj0hMCx6PXRoaXMuTSx0aGlzW0tbMV1dPUI7ei5sZW5ndGg7KXpbS1syXV0oKS5lcnJvcihCKX0sRikuY29tcGxldGU9ZnVuY3Rpb24oQix6KXtpZighdGhpc1t6PVsiZ2UiLCJ2Iiwic2hpZnQiXSx0aGlzW3pbMF1dKCkselsxXV0pZm9yKHRoaXNbelsxXV09CiEwLEI9dGhpcy5NO0IubGVuZ3RoOylCW3pbMl1dKCkuY29tcGxldGUoKX0sRikudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLnY9KHRoaXMuTT1udWxsLHRoaXMpLmNsb3NlZD0hMH0sRikuaTc9ZnVuY3Rpb24oQil7cmV0dXJuKHRoaXMuZ2UoKSx0aGlzLnlaKEIpLHRoaXMpLmFqKEIpfSxGKS5haj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZ1swXS5jYWxsKHRoaXMsMjAsQix6LEssSil9LEYpLnlaPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gUls0Ml0uY2FsbCh0aGlzLDE2LEIseixLKX0sRi5yQj1mdW5jdGlvbihCKXtyZXR1cm4odGhpcy5nZSgpLHpoLnByb3RvdHlwZSkuckIuY2FsbCh0aGlzLEIpfSx4MS5jcmVhdGU9ZnVuY3Rpb24oQix6KXtyZXR1cm4gbmV3IFBNKEIseil9LE8pWzIxXSgyLFBNLHgxKSx4MSkuY3JlYXRlLFBNLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKEIseixLKXsoej10aGlzLmRlc3RpbmF0aW9uKT09bnVsbHx8KEs9ei5uZXh0KT09bnVsbHx8Sy5jYWxsKHosCkIpfSxQTSkucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKEIseixLKXsoSz10aGlzLmRlc3RpbmF0aW9uKT09bnVsbHx8KHo9Sy5lcnJvcik9PW51bGx8fHouY2FsbChLLEIpfSxQTS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oQix6KXsoQj10aGlzLmRlc3RpbmF0aW9uKT09bnVsbHx8KHo9Qi5jb21wbGV0ZSk9PW51bGx8fHouY2FsbChCKX0sUE0pLnByb3RvdHlwZS5pNz1mdW5jdGlvbihCLHosSyl7cmV0dXJuKEs9KHo9dGhpcy5zb3VyY2UpPT1udWxsP3ZvaWQgMDp6LnN1YnNjcmliZShCKSkhPW51bGw/SzpvaS52fSxBemx8fHtpZDpUME4oKX0pLEJkPS9eaHR0cHM/JC9pLHZpMD12aTB8fHtpZDpnMSgpfSxUd009KCgoKChPWzIxXSgzLGpNLHgxKSxqTS5jcmVhdGU9eDEuY3JlYXRlLGpNLnByb3RvdHlwZSkuaTc9ZnVuY3Rpb24oQix6KXtyZXR1cm4gej14MS5wcm90b3R5cGUuaTcuY2FsbCh0aGlzLEIpLCF6LmNsb3NlZCYmQi5uZXh0KHRoaXMuaSksen0sak0ucHJvdG90eXBlKS5nZXRWYWx1ZT0KZnVuY3Rpb24oQix6KXtpZigoej0oQj10aGlzLmksdGhpcy5BKSx0aGlzKS5YKXRocm93IHo7cmV0dXJuIHRoaXMuZ2UoKSxCfSxqTS5wcm90b3R5cGUpLm5leHQ9ZnVuY3Rpb24oQil7eDEucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHRoaXMuaT1CKX0sUFIpLk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGpNLnByb3RvdHlwZSx7dmFsdWU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9fX0pLFR3TSl8fHtpZDp2aSgpfSxqSFk9akhZfHx7aWQ6Z2VoKCl9LHBVcT1wVXF8fHtpZDp2USgpfSxRSGg9UUhofHx7aWQ6bTgoKX0sT009dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcj9TeW1ib2wuaXRlcmF0b3I6VFkoKSxuaUQ9bmlEfHx7aWQ6UVgoKX0sWjB3PVowd3x8e2lkOkRuKCl9LFdkWT1XZFl8fHtpZDpQTDAoKX0sZ2lEPWdpRHx8e2lkOnh6KCl9LE53cT1Od3F8fHtpZDpoeHcoKX0sCk8wWT1PMFl8fHtpZDpQZDgoKX0seE9ZPXhPWXx8e2lkOkZzKCl9LERPTT1ET018fHtpZDpCX1ooKX0sZmJ3PWZid3x8e2lkOnk4dygpfSxvaTM9b2kzfHx7aWQ6bHMoKX0sTGQzPUxkM3x8e2lkOmxoKCl9LFJuWT1Sbll8fHtpZDpBQSgpfSxyenc9cnp3fHx7aWQ6cDQoKX0sVkU4PVZFOHx8e2lkOkp3KCl9LEdveD1Hb3h8fHtpZDpNZSgpfSxIMFk9SDBZfHx7aWQ6JG1HKCl9LGVuWT1lbll8fHtpZDpVJCgpfSxQNHg9UDR4fHx7aWQ6Y1lNKCl9LCRPOD0oKE81KCksQ3YoKSxCYSkoKSwkTzgpfHx7aWQ6YWwoKX0scWkzPXFpM3x8e2lkOmpiKCl9LGkwOD1pMDh8fHtpZDpBQygpfSx5ejg9eXo4fHx7aWQ6V0EoKX0sWWlxPShPWzIxXSgzLHU2LEVycm9yKSxZaXEpfHx7aWQ6SG4wKCl9LGN6Mz1jejN8fHtpZDpEUigpfSxTaWg9U2lofHx7aWQ6ajlaKCl9LG1PRD0oKChPWzIxXSg2LGZnLHZ6KSxmZykudj12ei52LGZnLmNyZWF0ZT12ei5jcmVhdGUsZmcucHJvdG90eXBlKS51bnN1YnNjcmliZT0KZnVuY3Rpb24oQix6KXt6PVtudWxsLCJjYWxsIiwidW5zdWJzY3JpYmUiXSx0aGlzLmNsb3NlZHx8KEI9dGhpcy5BKSE9elswXSYmQlt6WzFdXSh0aGlzKSx2ei5wcm90b3R5cGVbelsyXV1belsxXV0odGhpcyl9LG1PRCl8fHtpZDpLVCgpfSxsYmw9bGJsfHx7aWQ6a28oKX0sRWk4PUVpOHx8e2lkOnlwKCl9LFhVbD1YVWx8fHtpZDp2ancoKX0sdUc4PXVHOHx8e2lkOnBoRCgpfSxhYmw9YWJsfHx7aWQ6RzkoKX0saG5OPWhuTnx8e2lkOnI4KCl9LGRPcT1kT3F8fHtpZDpWWCgpfSxrbzA9a28wfHx7aWQ6eEUoKX0sdEUzPShPWzhdKDcsNixIWzE1XS5iaW5kKG51bGwsNykpLHRFMyl8fHtpZDpqbigpfSxVT1k9VU9ZfHx7aWQ6WXUoKX0sTUV3PU1Fd3x8e2lkOm8xKCl9LHdVeD13VXh8fHtpZDpQRmgoKX0sSWJEPUliRHx8e2lkOnAzKCl9LEZkOD1GZDh8fHtpZDpzQigpfSxCU0c9QlNHfHx7aWQ6WkooKX0sc2psPXNqbHx8e2lkOlRtMCgpfSx6djg9enY4fHx7aWQ6cUkoKX0sSzJOPUsyTnx8CntpZDpuSSgpfSxKUHg9SlB4fHx7aWQ6dksoKX0sQ1R3PUNUd3x8e2lkOnFKKCl9LGJTbD1iU2x8fHtpZDpxUygpfSxBUDg9KE9bOF0oMTEsMzQsT1syMF0uYmluZChudWxsLDI0KSksQVA4KXx8e2lkOnVoaCgpfSx2eXg9dnl4fHx7aWQ6ZFQoKX0sVFN3PVRTd3x8e2lkOnIwOCgpfSxqajM9amozfHx7aWQ6bmpHKCl9LHBFWj1wRVp8fHtpZDptQigpfSxRajg9UWo4fHx7aWQ6SlhsKCl9LG55dz1ueXd8fHtpZDpPQigpfSxaUzg9WlM4fHx7aWQ6aEFNKCl9LFcydz1XMnd8fHtpZDpuTigpfSxneUc9Z3lHfHx7aWQ6aEMoKX0sTlN4PU5TeHx8e2lkOlpnKCl9LE9Tdz1PU3d8fHtpZDp6NCgpfSxKdT1mdW5jdGlvbihCKXtyZXR1cm4gUlsxM10uY2FsbCh0aGlzLDU2LEIpfSx4aDg9eGg4fHx7aWQ6TUQoKX0sRGgzPURoM3x8e2lkOmlwKCl9LGZPOD1mTzh8fHtpZDpYUSgpfSxveWg9b3lofHx7aWQ6a04oKX0sb1Q9bmV3IHpoKHlbMzBdLmJpbmQobnVsbCwyKSksTDJ4PUwyeHx8e2lkOk9TKCl9LApSdjg9UnY4fHx7aWQ6VmUoKX0sclBoPXJQaHx8e2lkOlUwOCgpfSxWY0c9VmNHfHx7aWQ6bWFOKCl9LEdaMz1HWjN8fHtpZDpqTygpfSxIU1o9SFNafHx7aWQ6YWZEKCl9LGV2RD1ldkR8fHtpZDpxMlooKX0sUFQzPVBUM3x8e2lkOkhKKCl9LCRoaD0kaGh8fHtpZDptcTgoKX0scXlxPXF5cXx8e2lkOlRtKCl9LGlTWT1pU1l8fHtpZDp5UUcoKX0seVBxPXlQcXx8e2lkOlE5KCl9LFl5TT1ZeU18fHtpZDpuZWwoKX0scXE9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1sxNF0uY2FsbCh0aGlzLDM0LEIseil9LGNQOD1jUDh8fHtpZDpFNSgpfSxJaT1mdW5jdGlvbihCKXtyZXR1cm4ga1szXS5jYWxsKHRoaXMsMSxCKX0sU3kwPVN5MHx8e2lkOkZMTigpfSxtaHc9bWh3fHx7aWQ6ZlQoKX0sbE94PWxPeHx8e2lkOkVRKCl9LEV5OD1FeTh8fHtpZDpkQygpfSxYRTg9WEU4fHx7aWQ6V3YoKX0sdTMzPXUzM3x8e2lkOlVqKCl9LGFPRz1hT0d8fHtpZDpvancoKX0saHYwPWh2MHx8e2lkOm5IKCl9LGRoOD0KZGg4fHx7aWQ6RnUoKX0sa1pxPWtacXx8e2lkOlBWKCl9LHRjWT10Y1l8fHtpZDpYcTgoKX0sdDA9ZnVuY3Rpb24oQix6LEspe3JldHVybiBZWzI0XS5jYWxsKHRoaXMsMTYsQix6LEspfSxrMD1mdW5jdGlvbigpe3JldHVybiBSWzRdLmNhbGwodGhpcywxKX0sVWhxPVVocXx8e2lkOlphKCl9LE1jWj1NY1p8fHtpZDpVZSgpfSx3RXg9d0V4fHx7aWQ6VlczKCl9LElPdz1JT3d8fHtpZDpqaigpfSxGMjg9RjI4fHx7aWQ6ZGIoKX0sVXk9ZnVuY3Rpb24oQix6LEspe3JldHVybiBZWzZdLmNhbGwodGhpcywzMixCLHosSyl9LEJPMD1CTzB8fHtpZDp4MU4oKX0sWk49KGRVKCksRlEoKSxyZSgpLGZ1bmN0aW9uKEIseil7cmV0dXJuIG1bNl0uY2FsbCh0aGlzLDQsQix6KX0pLG50PShwdC5wcm90b3R5cGUudEs9KChaTi5wcm90b3R5cGUuUjA9KFpOLnByb3RvdHlwZS5wWD0oWk4ucHJvdG90eXBlLnRLPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGZ1bmN0aW9uKCl7cmV0dXJue2tleTp0aGlzLnZ9fSksClpOLnByb3RvdHlwZS5oSz1mdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4gSj0oKEI9Z1s0Ml0oMTUsKEE9Wyh6PVsiICIsMCwxXSxudWxsKSwoSz17fSwxKSwyXSxbXSkpKT8oQz1CLnNwbGl0KG85KCkpLGI9e3NjaGVtZTpDW3pbQVsxXV1dLGhhc2g6Q1t6W0FbMl1dXX0pOmI9QVswXSxiKSxKIT1BWzBdJiYoS1tvc109Si5zY2hlbWUrelswXStKLmhhc2gsS1tRUnhdPVN0cmluZyh0aGlzLk18fHpbQVsxXV0pKSxLfSkscHQucHJvdG90eXBlLlIwPWZ1bmN0aW9uKEIpe3JldHVybihCPXt9LEIpW29zXT0iT0F1dGggIit0aGlzLnYuZ2V0VmFsdWUoKSxCfSxwdCkucHJvdG90eXBlLmhLPWZ1bmN0aW9uKCl7cmV0dXJuIDF9LGZ1bmN0aW9uKCl7cmV0dXJuITB9KSxmdW5jdGlvbihCKXtyZXR1cm4gT1sxN10uY2FsbCh0aGlzLDIzLEIpfSksUW89KHB0LnByb3RvdHlwZS5wWD0obnQucHJvdG90eXBlLlIwPWZ1bmN0aW9uKCl7cmV0dXJue319LApudC5wcm90b3R5cGUuaEs9ZnVuY3Rpb24oKXtyZXR1cm4gMX0sZnVuY3Rpb24oKXtyZXR1cm57fX0pLGZ1bmN0aW9uKEIseil7cmV0dXJuIGtbNDRdLmNhbGwodGhpcywyLEIseil9KSxzRTg9KFFvLnByb3RvdHlwZS50Sz0oUW8ucHJvdG90eXBlLnBYPSgoUW8ucHJvdG90eXBlLlIwPShRby5wcm90b3R5cGUuaEs9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sZnVuY3Rpb24oQix6KXtyZXR1cm4gej0oQj10aGlzLk0uZ2V0VmFsdWUoKSx7fSkseltvc109IkJlYXJlciAiK0Isen0pLG50LnByb3RvdHlwZS50Sz1mdW5jdGlvbigpe3JldHVybiExfSxudC5wcm90b3R5cGUpLnBYPWZ1bmN0aW9uKCl7cmV0dXJue2tleTp0aGlzLnZ9fSxmdW5jdGlvbigpe3JldHVybntrZXk6dGhpcy52fX0pLGZ1bmN0aW9uKCl7cmV0dXJuITB9KSxzRTh8fHtpZDpLQ0coKX0pLE1xPVNseCgpLHdtPWJ0KCksaVo9YzAoKSxqST1CcigpLGpaPVJKKCkscl89WEIoKSxwWj1mdW5jdGlvbihCKXtyZXR1cm4gSFszN10uY2FsbCh0aGlzLAoyLEIpfSxRTj1HTigpLHp5Rz0oKChKUUcoKSxHNCgpLFJPRykoKSxFMGgpKCksenlHfHx7aWQ6bGUoKX0pLHQ1PXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/ZnVuY3Rpb24oQil7cmV0dXJuIEImJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKEIpfTpmdW5jdGlvbihCKXtyZXR1cm4gQn0sblo9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMjFdLmNhbGwodGhpcywxLEIpfTtmdW5jdGlvbiBvZygpe3JldHVybiBHWzQ1XS5jYWxsKHRoaXMsMSl9CigoSFsyNF0oNTgsb2cscFEpLG9nLnByb3RvdHlwZVtmOV09ITAsb2cucHJvdG90eXBlLndiPWZ1bmN0aW9uKEIpe3RoaXMuQUw9Qn0sb2cucHJvdG90eXBlKS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKEIseixLLEope2tbNV0oMjQsMCxKLEsseix0aGlzLEIpfSxvZykucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7dGhpcy5BTD0oKEI9WyJZIiwxMCwiWiJdLG9nW0JbMF1dW0JbMl1dLmNhbGwodGhpcyksRClbMTVdKEJbMV0sMCwhMCx0aGlzKSxudWxsKX07ZnVuY3Rpb24gQlIoKXtyZXR1cm4gSFsxOV0uY2FsbCh0aGlzLDE3KX0KdmFyIHFhPXsnIic6KEJSLnByb3RvdHlwZS55ZT1mdW5jdGlvbihCLHope3JldHVybigoej1bXSx5KVsyNF0oOSwibnVtYmVyIixCLHRoaXMseikseikuam9pbigiIil9LE93KSgpLCJcXCI6TjYoKSwiLyI6YzMoKSwiXGIiOkwkKCksIlxmIjpLQigpLCJcbiI6WGooKSwiXHIiOmFXKCksIlx0IjpNbygpLCJcdiI6UmsoKX0sJGU9L1x1ZmZmZi8udGVzdCh4USgpKT8vW1xcIlx4MDAtXHgxZlx4N2YtXHVmZmZmXS9nOi9bXFwiXHgwMC1ceDFmXHg3Zi1ceGZmXS9nLFpGLG9vPShaRj0oSFsyNF0oOTAsTlgsUlsxNF0uYmluZChudWxsLDE4KSksTlgucHJvdG90eXBlLnY9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fSxuZXcgTlgpLFJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIikpLApMbj1udWxsO2Z1bmN0aW9uIEt4TihCLHope3ZhciBLPVsxLDM0LDBdLEo9WzAsMiwiIl0sQz1hcmd1bWVudHMubGVuZ3RoPT1KW0tbMF1dP0hbMjFdKEtbMF0sSltLWzBdXSxKW0tbMl1dLEpbS1syXV0sYXJndW1lbnRzW0tbMF1dKTpIWzIxXSgzLEpbS1swXV0sSltLWzJdXSxLWzBdLGFyZ3VtZW50cyk7cmV0dXJuIGVbS1sxXV0oMjQsSlsyXSxCLEMpfQp2YXIgdjI9WDAoKSxKcTg9KEhbMjRdKDI2LHFxLG9nKSxlYikoKSxDWVk9KGhtKCksT1QoKSxKMFooKSksV0c9VmcoKSxieTg9KHpTKCksQUkoKSksQXFHPShtWzMzXSgyLCgocXEucHJvdG90eXBlLnZZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubH0scXEucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnZ9LHFxLnByb3RvdHlwZS5nZXRSZXNwb25zZT1mdW5jdGlvbihCKXtCPVsidiIsImwiLG51bGxdO3RyeXtpZighdGhpc1tCWzBdXSlyZXR1cm4gQlsyXTtpZigicmVzcG9uc2UiaW4gdGhpc1tCWzBdXSlyZXR1cm4gdGhpc1tCWzBdXS5yZXNwb25zZTtzd2l0Y2godGhpc1tCWzFdXSl7Y2FzZSAiIjpjYXNlIEpxODpyZXR1cm4gdGhpc1tCWzBdXS5yZXNwb25zZVRleHQ7Y2FzZSBDWVk6aWYoIm1velJlc3BvbnNlQXJyYXlCdWZmZXIiaW4gdGhpc1tCWzBdXSlyZXR1cm4gdGhpc1tCWzBdXS5tb3pSZXNwb25zZUFycmF5QnVmZmVyfXJldHVybiBCWzJdfWNhdGNoKHope3JldHVybiBCWzJdfX0sCnFxLnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7eVszN10oNSwwLG51bGwsdGhpcyl9LHFxLnByb3RvdHlwZS50dT0ocXEucHJvdG90eXBlLmFib3J0PWZ1bmN0aW9uKEIseil7ej1bMyw3LCJhYm9ydCJdLHRoaXMudiYmdGhpcy5YJiYodGhpcy5YPSExLHRoaXMuUj0hMCx0aGlzLnZbelsyXV0oKSx0aGlzLlI9ITEsdGhpcy5NPUJ8fHpbMV0sZ1t6WzBdXSg1OCx0aGlzLE1xKSxnW3pbMF1dKDUwLHRoaXMsakkpLGdbMTddKDIwLG51bGwsdGhpcykpfSxmdW5jdGlvbihCKXt0eXBlb2YgVWwhPShCPVs4LDMsNjNdLCJ1bmRlZmluZWQiKSYmdGhpcy52JiYodGhpcy5pPSJUaW1lZCBvdXQgYWZ0ZXIgIit0aGlzLlcrIm1zLCBhYm9ydGluZyIsdGhpcy5NPUJbMF0sZ1tCWzFdXShCWzJdLHRoaXMsUU4pLHRoaXMuYWJvcnQoQlswXSkpfSkscXEucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXtpZigoeD1bIiIsITEsKFA9WyJVIiwKInRvVXBwZXJDYXNlIiw4XSwhMCldLHRoaXMpLnYpdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK3RoaXMuSCsiOyBuZXdVcmk9IitCKTsodGhpcy52PSgodGhpcy5pPSgodGhpcy5NPShDPXo/eltQWzFdXSgpOkhEKCksMCksdGhpcykuWD14WzJdLHhbMF0pLHRoaXMuSD1CLHRoaXMpLm89eFsxXSx0aGlzLmo/dGhpcy5qLnYoKTpaRi52KCkpLHRoaXMudikub25yZWFkeXN0YXRlY2hhbmdlPXQ1KFJ4KHRoaXMuZyx0aGlzKSk7dHJ5e3RoaXNbUFswXV09eFsyXSx0aGlzLnYub3BlbihDLFN0cmluZyhCKSx4WzJdKSx0aGlzW1BbMF1dPXhbMV19Y2F0Y2gocSl7R1sxOV0oMjgseFsyXSx4WzFdLHRoaXMscSk7cmV0dXJufWlmKE49KHY9bmV3IE1hcCh0aGlzLmhlYWRlcnMpLEt8fHhbMF0pLEopaWYobFEoSik9PT1PYmplY3QucHJvdG90eXBlKWZvcihmIGluIEopdi5zZXQoZixKW2ZdKTtlbHNlIGlmKHR5cGVvZiBKLmtleXM9PT0KImZ1bmN0aW9uIiYmdHlwZW9mIEouZ2V0PT09ImZ1bmN0aW9uIilmb3IoUT1nWzEyXSgxMixKLmtleXMoKSksVz1RLm5leHQoKTshVy5kb25lO1c9US5uZXh0KCkpcD1XLnZhbHVlLHYuc2V0KHAsSi5nZXQocCkpO2Vsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gaW5wdXQgdHlwZSBmb3Igb3B0X2hlYWRlcnM6ICIrU3RyaW5nKEopKTtmb3IoIShyPShiPUFycmF5LmZyb20odi5rZXlzKCkpLmZpbmQoZnVuY3Rpb24ocSl7cmV0dXJuIFdHLnRvTG93ZXJDYXNlKCk9PXEudG9Mb3dlckNhc2UoKX0pLEdsW0RjKCldJiZOIGluc3RhbmNlb2YgR2xbRGMoKV0pLFlbUFsyXV0oMTgscHUsQykpfHxifHxyfHx2LnNldChXRyxieTgpLEw9Z1sxMl0oOSx2KSxuPUwubmV4dCgpOyFuLmRvbmU7bj1MLm5leHQoKSlWPWdbMTJdKDMsbi52YWx1ZSksQT1WLm5leHQoKS52YWx1ZSxaPVYubmV4dCgpLnZhbHVlLHRoaXMudi5zZXRSZXF1ZXN0SGVhZGVyKEEsWik7KHRoaXMubCYmKHRoaXMudi5yZXNwb25zZVR5cGU9CnRoaXMubCksIndpdGhDcmVkZW50aWFscyJpbiB0aGlzLnYmJnRoaXMudi53aXRoQ3JlZGVudGlhbHMhPT10aGlzLkEpJiYodGhpcy52LndpdGhDcmVkZW50aWFscz10aGlzLkEpO3RyeXt0aGlzLkYmJihjbGVhclRpbWVvdXQodGhpcy5GKSx0aGlzLkY9bnVsbCksdGhpcy5XPjAmJih0aGlzLkY9c2V0VGltZW91dCh0aGlzLnR1LmJpbmQodGhpcyksdGhpcy5XKSksdGhpcy5DPXhbMl0sdGhpcy52LnNlbmQoTiksdGhpcy5DPXhbMV19Y2F0Y2gocSl7R1sxOV0oMzIseFsyXSx4WzFdLHRoaXMscSl9fSxxcS5wcm90b3R5cGUpLnl3PShxcS5wcm90b3R5cGUuZz1mdW5jdGlvbihCKXtpZighdGhpc1tCPVtudWxsLCJVIiwibSJdLEJbMl1dKWlmKHRoaXNbQlsxXV18fHRoaXMuQ3x8dGhpcy5SKXlbMzddKDQsMCxCWzBdLHRoaXMpO2Vsc2UgdGhpcy5LKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQX0pLHFxLnByb3RvdHlwZS5aPWZ1bmN0aW9uKEIpeyhCPVsidiIsIloiLDE3XSx0aGlzKVtCWzBdXSYmCih0aGlzLlgmJih0aGlzLlI9ITAsdGhpcy5YPSExLHRoaXNbQlswXV0uYWJvcnQoKSx0aGlzLlI9ITEpLGdbQlsyXV0oMjEsbnVsbCx0aGlzLCEwKSkscXEuWVtCWzFdXS5jYWxsKHRoaXMpfSxxcS5wcm90b3R5cGUuRD1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpLG1bMjZdKDU4LDAsWmgsdGhpcyl9LDApLGZ1bmN0aW9uKEIpe3FxLnByb3RvdHlwZS5LPUIocXEucHJvdG90eXBlLkspfSksQXFHfHx7aWQ6cyQoKX0pO2Z1bmN0aW9uIHk2KEIseixLKXtyZXR1cm4gZ1syMV0uY2FsbCh0aGlzLDIsQix6LEspfQp2YXIgZzQ9KHk2LnByb3RvdHlwZS5yZXNvbHZlPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcpe2lmKGI9KFc9WyIiLCJYIiwoSz1bIi4uIixudWxsLCIuLyJdLCJwdXNoIildLEM9eVsxNV0oMjYsdGhpcyksKHo9ISFCLk0pP1lbMzFdKDgsITAsQyxCLk0pOno9ISFCLlIsej9DLlI9Qi5SOno9ISFCLnYsej9EWzI4XSg1LCEwLEIudixDKTp6PUIuaSE9S1sxXSxCW1dbMV1dKSx6KXlbMjldKDQzLEIuaSxDKTtlbHNlIGlmKHo9ISFCW1dbMV1dKWlmKGIuY2hhckF0KDApIT0iLyImJih0aGlzLnYmJiF0aGlzW1dbMV1dP2I9Ii8iK2I6KEE9Q1tXWzFdXS5sYXN0SW5kZXhPZihudygpKSxBIT0tMSYmKGI9Q1tXWzFdXS5zbGljZSgwLEErMSkrYikpKSxRPWIsUT09S1swXXx8UT09Ii4iKWI9V1swXTtlbHNlIGlmKERbMjBdKDE2LEtbMl0sUSl8fERbMjBdKDI2LCIvLiIsUSkpe2ZvcihuPShKPSh2PVEubGFzdEluZGV4T2YoIi8iLDApPT0oWj1bXSwwKSxRLnNwbGl0KG53KCkpKSwKMCk7bjxKLmxlbmd0aDspcD1KW24rK10scD09Ii4iP3YmJm49PUoubGVuZ3RoJiZaW1dbMl1dKFdbMF0pOnA9PUtbMF0/KChaLmxlbmd0aD4xfHxaLmxlbmd0aD09MSYmWlswXSE9V1swXSkmJloucG9wKCksdiYmbj09Si5sZW5ndGgmJlpbV1syXV0oV1swXSkpOihaW1dbMl1dKHApLHY9ITApO2I9Wi5qb2luKG53KCkpfWVsc2UgYj1RO3JldHVybih6P1JbNDNdKDksITAsQyxiKTp6PUIuQS50b1N0cmluZygpIT09IiIseik/RFsyOV0oMzcsQyxSWzJdKDEwLEIuQSkpOno9ISFCLmwseiYmZ1s0NV0oNjksQi5sLEMpLEN9LHk2LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigocD0oej0oUT0odj0oSz1bbnVsbCwhMCwiLyJdLHRoaXMuTSksWzAsInB1c2giLCJSIl0pLFtdKSx2JiZ6W1FbMV1dKERbNDFdKDg2LEtbUVswXV0sVjIsdixLWzFdKSx2aCgpKSx0aGlzLnYpKXx8dj09ImZpbGUiKXpbUVsxXV0oTmgoKSksKEM9dGhpc1tRWzJdXSkmJgp6W1FbMV1dKERbNDFdKDYsS1tRWzBdXSxWMixDLEtbMV0pLEdyKCkpLHpbUVsxXV0oR1tRWzBdXSgxMSxwKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csbTAoKSkpLEo9dGhpcy5pLEohPUtbUVswXV0mJnpbUVsxXV0odmgoKSxTdHJpbmcoSikpO2lmKEE9dGhpcy5YKXRoaXMudiYmQS5jaGFyQXQoUVswXSkhPUtbMl0mJnpbUVsxXV0obncoKSkseltRWzFdXShEWzQxXSgzOCxLW1FbMF1dLEEuY2hhckF0KFFbMF0pPT1LWzJdP01TOm96LEEsS1sxXSkpO3JldHVybigoQj0oKGI9dGhpcy5BLnRvU3RyaW5nKCkpJiZ6W1FbMV1dKEsxKCksYiksdGhpcy5sKSkmJnpbUVsxXV0odGsoKSxEWzQxXSg1NCxLW1FbMF1dLFhvOCxCKSkseikuam9pbigiIil9LGZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMjJdLmNhbGwodGhpcywzMixCLHopfSksdk1sPSgoKGc0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoKHA9WyJmcm9tIiwiPSIsIiJdLHRoaXMpLlgpcmV0dXJuIHRoaXMuWDsKaWYoej1bXSwhdGhpcy52KXJldHVybiBwWzJdO2ZvcihLPUFycmF5W3BbMF1dKHRoaXMudi5rZXlzKCkpLGI9MDtiPEsubGVuZ3RoO2IrKylmb3IoSj1LW2JdLEM9R1swXSg1LEopLHY9dGhpcy5GcChKKSxBPTA7QTx2Lmxlbmd0aDtBKyspQj1DLHZbQV0hPT0iIiYmKEIrPXBbMV0rR1swXSg2LHZbQV0pKSx6LnB1c2goQik7cmV0dXJuIHRoaXMuWD16LmpvaW4oekwoKSl9LEY9ZzQucHJvdG90eXBlLGc0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKChLPShCPSh0aGlzW1lbNDJdKDksKEo9WyJYIiwidiIsInB1c2giXSwwKSx0aGlzKSxKWzBdXT1udWxsLGtbOV0oMTYsQix0aGlzKSksdGhpc1tKWzFdXS5nZXQoQikpKXx8dGhpc1tKWzFdXS5zZXQoQixLPVtdKSxLW0pbMl1dKHopLHRoaXMpLk0rPTEsdGhpc30sZzQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihCLHope3JldHVybihCPShZW3o9WzksImhhcyIsbnVsbF0sNDJdKDI3LDAsdGhpcyksaylbelswXV0oMiwKQix0aGlzKSx0aGlzKS52W3pbMV1dKEIpPyh0aGlzLlg9elsyXSx0aGlzLk0tPXRoaXMudi5nZXQoQikubGVuZ3RoLHRoaXMudlsiZGVsZXRlIl0oQikpOiExfSxnNC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oQil7dGhpc1t0aGlzW0I9KHRoaXMuTT0wLFsiWCIsbnVsbCwidiJdKSxCWzJdXT1CWzFdLEJbMF1dPUJbMV19LEYuZm9yRWFjaD1mdW5jdGlvbihCLHopeyhZWzQyXSgxMSwwLHRoaXMpLHRoaXMudikuZm9yRWFjaChmdW5jdGlvbihLLEope0suZm9yRWFjaChmdW5jdGlvbihDKXtCLmNhbGwoeixDLEosdGhpcyl9LHRoaXMpfSx0aGlzKX0sRi5EUz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtmb3Ioej0oSz0oWVtBPVsiZnJvbSIsInB1c2giLDEwXSw0Ml0oQVsyXSwwLHRoaXMpLEo9QXJyYXlbQVswXV0odGhpcy52LnZhbHVlcygpKSxBcnJheVtBWzBdXSh0aGlzLnYua2V5cygpKSksMCksQz1bXTt6PEsubGVuZ3RoO3orKylmb3IoQj1KW3pdLGI9MDtiPEIubGVuZ3RoO2IrKylDW0FbMV1dKEtbel0pOwpyZXR1cm4gQ30sRi5GcD1mdW5jdGlvbihCLHosSyxKLEMpe2lmKHR5cGVvZiBCPT09KEo9KFlbNDJdKDI2LChDPVszMiwidiIsMF0sQ1syXSksdGhpcyksW10pLCJzdHJpbmciKSllWzEyXSgxLENbMl0sdGhpcyxCKSYmKEo9Si5jb25jYXQodGhpc1tDWzFdXS5nZXQoa1s5XShDWzBdLEIsdGhpcykpKSk7ZWxzZSBmb3Ioej1BcnJheS5mcm9tKHRoaXNbQ1sxXV0udmFsdWVzKCkpLEs9Q1syXTtLPHoubGVuZ3RoO0srKylKPUouY29uY2F0KHpbS10pO3JldHVybiBKfSxGKS5zZXQ9ZnVuY3Rpb24oQix6LEspe3JldHVybiB0aGlzWygodGhpc1tZWzQyXSgxNCwoSz1bIk0iLDAsIlgiXSxLWzFdKSx0aGlzKSxLWzJdXT1udWxsLEI9a1s5XSgxNixCLHRoaXMpLGVbMTJdKDUsS1sxXSx0aGlzLEIpJiYodGhpc1tLWzBdXS09dGhpcy52LmdldChCKS5sZW5ndGgpLHRoaXMpLnYuc2V0KEIsW3pdKSxLKVswXV0rPTEsdGhpc30sRikuZ2V0PWZ1bmN0aW9uKEIseixLKXtpZighQilyZXR1cm4gejsKcmV0dXJuKEs9dGhpcy5GcChCKSxLLmxlbmd0aD4wKT9TdHJpbmcoS1swXSk6en0sdk1sfHx7aWQ6ZXooKX0pLHg3PSgoT1syMV0oNCxLVSxFcnJvciksb0IucHJvdG90eXBlKS5yZXF1ZXN0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtpZigoQT1uZXcgeTYoKGI9KHg9WyJ2IiwxMiwieWUiXSx0aGlzKSx0aGlzKVt4WzBdXSksUls0M10oOSwhMCxBLEdbMzJdKDEsMSwiLyIsQS5YLHopKSxDKS5xdClmb3Iobj1nW3hbMV1dKDYsT2JqZWN0LmVudHJpZXMoQy5xdCkpLFE9bi5uZXh0KCk7IVEuZG9uZTtRPW4ubmV4dCgpKXY9Z1t4WzFdXSg3LFEudmFsdWUpLE49di5uZXh0KCkudmFsdWUsWj12Lm5leHQoKS52YWx1ZSxtWzldKDE3LEEsTixaKTtyZXR1cm4gbmV3IChXPSgocD17IkNvbnRlbnQtdHlwZSI6WlcoKX0sT2JqZWN0KS5hc3NpZ24ocCxDLk9CKSxLW3hbMl1dKCkpLFByb21pc2UpKGZ1bmN0aW9uKGYsTCxyKXtiLkJ2LnNlbmQoQSxmdW5jdGlvbihWLApQLHEpe2lmKFlbcT1bMSwoVj1IWzM1XSgzMiwyLHRoaXMpPT09LTE/dm9pZCAwOkhbMzVdKDMsMix0aGlzKSxQPVsiRmFpbGVkIHRvIGRlc2VyaWFsaXplIHJlc3BvbnNlIGZyb20gIixudWxsLCIiXSwwKSw4MV0sNDBdKHFbMl0scVsxXSx0aGlzKSl0cnl7ZihlWzhdKDMxLFBbcVswXV0seVsyMF0oMzIsUFsyXSx0aGlzKSxKKSl9Y2F0Y2goYyl7TChuZXcgS1UoNCxQW3FbMV1dK0ErIjogIit5WzIwXSg4LFBbMl0sdGhpcyksVikpfWVsc2UgTChuZXcgS1UodGhpcy5NLHR5cGVvZiB0aGlzLmk9PT0ic3RyaW5nIj90aGlzLmk6U3RyaW5nKHRoaXMuaSksVikpfSxCLFcscCwocj1DLkF1KSE9bnVsbD9yOjJFNCxDLndpdGhDcmVkZW50aWFscyl9KX0sbnVsbCkscXA9V1koKTtmdW5jdGlvbiB6RChCKXtyZXR1cm4gWVsxNV0uY2FsbCh0aGlzLDgwLEIpfXZhciB3eD0oSFsyNF0oOTEsekQsJE0pLGszKSgpO2Z1bmN0aW9uIER1KEIpe3JldHVybiBPWzE2XS5jYWxsKHRoaXMsNCxCKX0KdmFyIGNlPShIWzI0XSgyNyxEdSwkTSksdFYoKSk7ZnVuY3Rpb24gTGooQix6KXtyZXR1cm4gbVs1XS5jYWxsKHRoaXMsMzIsQix6KX0oKEhbMjRdKDU5LExqLCRNKSxtUSkucHJvdG90eXBlLmdldD1mdW5jdGlvbihCLHope3JldHVybih6PVtudWxsLDAsInYiXSx0aGlzLk0pPnpbMV0/KHRoaXMuTS0tLEI9dGhpc1t6WzJdXSx0aGlzW3pbMl1dPUIubmV4dCxCLm5leHQ9elswXSk6Qj10aGlzLmkoKSxCfSxtUSkucHJvdG90eXBlLnB1dD1mdW5jdGlvbihCLHopeygoej1bMTAwLCJ2IiwiTSJdLHRoaXMpLlgoQiksdGhpcylbelsyXV08elswXSYmKHRoaXNbelsyXV0rKyxCLm5leHQ9dGhpc1t6WzFdXSx0aGlzW3pbMV1dPUIpfTsKdmFyIGJsLENHPWZ1bmN0aW9uKEIpe3JldHVybiBCfSxXTD0obVszM10oNCwwLGZ1bmN0aW9uKEIpe0NHPUJ9KSxENy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseixLKXt0aGlzLk09KChLPVdGLmdldCgpLEspLnNldChCLHopLHRoaXMuTT90aGlzLk0ubmV4dD1LOnRoaXMudj1LLEspfSxENy5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKEIseil7cmV0dXJuIHRoaXNbQj0oej1bInYiLG51bGwsIk0iXSx6KVsxXSx6WzBdXSYmKEI9dGhpc1t6WzBdXSx0aGlzW3pbMF1dPXRoaXNbelswXV0ubmV4dCx0aGlzW3pbMF1dfHwodGhpc1t6WzJdXT16WzFdKSxCLm5leHQ9elsxXSksQn0sZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBnWzMyXS5jYWxsKHRoaXMsMjMsQix6LEssSixDLGIpfSksV0Y9bmV3IG1RKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnUn0sZnVuY3Rpb24oQil7cmV0dXJuIEIucmVzZXQoKX0pLGdSPWZ1bmN0aW9uKCl7cmV0dXJuIERbMTNdLmNhbGwodGhpcyw0OCl9LApnaz0oKGdSLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLk09dGhpcy52PW51bGx9LGdSKS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKEIseil7KHRoaXMubmV4dD1udWxsLHRoaXMpLnY9eix0aGlzLk09Qn0sITEpLEdaLEVzPWZ1bmN0aW9uKEIpe3JldHVybiBrWzQxXS5jYWxsKHRoaXMsMSxCKX0sWmk9bmV3IEQ3LGFIPWNBKCksdzk9bmV3IG1RKChGei5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oQil7dGhpc1t0aGlzLnY9KHRoaXMuQT0odGhpcy5pPShCPVshMSxudWxsLCJYIl0sdGhpcy5NPUJbMV0sQilbMV0sQilbMF0sQlsxXSksQlsyXV09QlsxXX0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEZ6fSksZnVuY3Rpb24oQil7Qi5yZXNldCgpfSksTXY9T1soSXAucHJvdG90eXBlW0lwLnByb3RvdHlwZS50aGVuPShGPUlwLnByb3RvdHlwZSxmdW5jdGlvbihCLHosSyl7cmV0dXJuIGVbNF0oNTAsbnVsbCx0NSh0eXBlb2YgQj09PSJmdW5jdGlvbiI/QjpudWxsKSwKdGhpcyx0NSh0eXBlb2Ygej09PSJmdW5jdGlvbiI/ejpudWxsKSxLKX0pLGFIXT0hMCxGWyJmaW5hbGx5Il09ZnVuY3Rpb24oQix6KXtyZXR1cm4gQj0oej10aGlzLHQ1KEIpKSxuZXcgSXAoZnVuY3Rpb24oSyxKKXttWzI0XSgzNCwzLDIseixmdW5jdGlvbihDKXtLKChCKCksQykpfSxmdW5jdGlvbihDKXtKKChCKCksQykpfSl9KX0sRi5QRj1mdW5jdGlvbihCLHope3JldHVybiBlWzQ4XS5jYWxsKHRoaXMsODgsQix6KX0sRikuY2F0Y2g9KChJcC5wcm90b3R5cGUuTz1mdW5jdGlvbihCLHope3o9WzgsMTEsInYiXSx0aGlzW3pbMl1dPTAsZ1t6WzBdXSh6WzFdLDMsdGhpcywzLEIpfSxJcC5wcm90b3R5cGUpLmw9ZnVuY3Rpb24oQix6KXt6PVswLDIsMTRdLHRoaXMudj16WzBdLGdbOF0oelsyXSwzLHRoaXMselsxXSxCKX0sSXAucHJvdG90eXBlKS5QRixGLmNhbmNlbD1mdW5jdGlvbihCLHope3RoaXMudj09MCYmKHo9bmV3IGtVKEIpLGVbNV0oMTcsITAsZnVuY3Rpb24oKXtHWzQzXSgxMCwKMywxLHosdGhpcyl9LHRoaXMpKX0sRi5tYT1mdW5jdGlvbihCKXtyZXR1cm4gRFszMV0uY2FsbCh0aGlzLDIsQil9LDQ1XS5iaW5kKG51bGwsNCksQnE9KChIWzI0XSgyNyxrVSxOUCksa1UpLnByb3RvdHlwZS5uYW1lPUhDKCksZnVuY3Rpb24oQix6LEspe3JldHVybiBEWzMyXS5jYWxsKHRoaXMsMSxLLHosQil9KTsKKCgoKElRKCksT1syMV0oNCxMZyxwUSksTGcpLnByb3RvdHlwZS5GPWZ1bmN0aW9uKEIpe3ZhciB6PVtudWxsLCJYIiwiTSJdOyh0aGlzW3pbMl1dPWFyZ3VtZW50cyx0aGlzLnYpfHx0aGlzLmk/dGhpc1t6WzFdXT0hMDp5WzI4XSg4LCExLHpbMF0sdGhpcyl9LExnLnByb3RvdHlwZSkucGF1c2U9ZnVuY3Rpb24oKXt0aGlzLmkrK30sTGcucHJvdG90eXBlKS5aPWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJ2IiwiWiIsIk0iXSxwUSkucHJvdG90eXBlW0JbMV1dLmNhbGwodGhpcyksQlswXV0mJihrWzE2XSg2Mix0aGlzW0JbMF1dKSx0aGlzW0JbMl1dPW51bGwsdGhpcy5YPSExLHRoaXNbQlswXV09bnVsbCl9LGxHdykoKTtmdW5jdGlvbiBXTigpe3JldHVybiBSWzddLmNhbGwodGhpcywxKX0oV04ucHJvdG90eXBlLmluZm89ZnVuY3Rpb24oKXt9LFdOLnByb3RvdHlwZSkuSTE9ZnVuY3Rpb24oKXtyZXR1cm4gUlszN10uY2FsbCh0aGlzLDEpfTsKZnVuY3Rpb24gJHkoQix6LEssSixDKXtyZXR1cm4gUlsxNV0uY2FsbCh0aGlzLDI2LEIsSixLLHosQyl9CnZhciBJQj0oJHkucHJvdG90eXBlLnNldFRpbWVvdXQ9KCR5LnByb3RvdHlwZS5pWT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7eD0oQT1bMCwyLDE1XSxbMiw0NywyNF0pO3RyeXtpZihCPT10aGlzLnYpYTppZihOPVJbNDJdKDMzLHRoaXMudiksWj10aGlzLnYuTSxXPUhbMzVdKDM1LEFbMV0sdGhpcy52KSwhKE48M3x8Tj09MyYmIURbMjNdKDQsIiIsdGhpcykpKWlmKHRoaXMuS3x8TiE9NHx8Wj09N3x8KFo9PTh8fFc8PUFbMF0/ZzBbNV0oMywzKTpnMFs1XSh4WzBdLEFbMV0pKSxSWzIxXSg0LG51bGwsdGhpcyksdGhpcy5HPXo9SFszNV0oeFswXSxBWzFdLHRoaXMudiksYj1SWzMzXSgxNiw0LCEwLDEsIiIsdGhpcyksRFsyM10oeFswXSwiIix0aGlzKSx0aGlzLlI9ej09MjAwLEdbMzFdKDE4LCJdOiAiLCJcbiIsIiAiLHRoaXMuQSx0aGlzLkwseix0aGlzLm0sdGhpcy5YLHRoaXMuTyxOKSx0aGlzLlIpe2lmKHRoaXMubnEmJiF0aGlzLmope2I6e2lmKHRoaXMudiYmCihDPXRoaXMudiwoSz1DLnY/Qy52LmdldFJlc3BvbnNlSGVhZGVyKEF0KTpudWxsKSYmIVJbeFswXV0oMzYsSykpKXtuPUs7YnJlYWsgYn1uPW51bGx9aWYoSj1uKW1beFsxXV0oODEsQVsxXSxKLHRoaXMuQSx0aGlzLlgsIkluaXRpYWwgaGFuZHNoYWtlIHJlc3BvbnNlIHZpYSAiK0F0KSx0aGlzLmo9ITAsRFs0XSg0OCwxLjUsSix0aGlzKTtlbHNleygoSFs0Nl0oOCwodGhpcy5GPSh0aGlzLlI9ITEsMyksMTIpKSxIKVs5XSg0NCxudWxsLHRoaXMpLFkpWzQzXSgxNyxBWzBdLHRoaXMpO2JyZWFrIGF9fWlmKHRoaXMuSSl7Zm9yKHA9ITA7IXRoaXMuSyYmdGhpcy5XPGIubGVuZ3RoOylpZih2PURbNDJdKHhbMl0sMSx0aGlzLGIpLHY9PUZfKXsoTj09NCYmKHRoaXMuRj00LEhbNDZdKDgsMTQpLHA9ITEpLG0pW3hbMV1dKDgyLEFbMV0sbnVsbCx0aGlzLkEsdGhpcy5YLHJUKCkpO2JyZWFrfWVsc2UgaWYodj09Qkkpe3A9KEhbNDZdKDExLCh0aGlzLkY9NCxBKVt4WzBdXSksbVt4WzFdXSg4MCwKQVsxXSxiLHRoaXMuQSx0aGlzLlgsZWooKSksITEpO2JyZWFrfWVsc2UgbVt4WzFdXSg4OSxBWzFdLHYsdGhpcy5BLHRoaXMuWCxudWxsKSxEWzRdKHhbMl0sMS41LHYsdGhpcyk7dGhpcy5SPSgoZVsyMl0oNSwiR0VUIixBWzFdLHRoaXMpJiZ0aGlzLlchPUFbMF0mJih0aGlzLk0udj10aGlzLk0udi5zbGljZSh0aGlzLlcpLHRoaXMuVz1BWzBdKSxOIT00fHxiLmxlbmd0aCE9QVswXSl8fHRoaXMuTS5NfHwodGhpcy5GPTEsSFs0Nl0oOSwxNikscD0hMSksdGhpcy5SJiZwKSxwP2IubGVuZ3RoPkFbMF0mJiF0aGlzLlhnJiYoUT10aGlzLmksdGhpcy5YZz0hMCxRLnY9PXRoaXMmJlEuSkwmJiFRLkcmJihRLkEuaW5mbygiR3JlYXQsIG5vIGJ1ZmZlcmluZyBwcm94eSBkZXRlY3RlZC4gQnl0ZXMgcmVjZWl2ZWQ6ICIrYi5sZW5ndGgpLERbMjldKHhbMl0sbnVsbCxRKSxRLkc9ITAsSFs0Nl0oMywxMSkpKToobVt4WzFdXSg5MCxBWzFdLGIsdGhpcy5BLHRoaXMuWCxYODgoKSksSFs5XSg1NSwKbnVsbCx0aGlzKSxZWzQzXSgxNCxBWzBdLHRoaXMpKX1lbHNlIG1beFsxXV0oODMsQVsxXSxiLHRoaXMuQSx0aGlzLlgsbnVsbCksRFs0XSg0MCwxLjUsYix0aGlzKTtpZihOPT00JiZIWzldKDU0LG51bGwsdGhpcyksdGhpcy5SJiYhdGhpcy5LKWlmKE49PTQpR1syOF0oMTIsNiw0LHRoaXMuaSx0aGlzKTtlbHNlIHRoaXMuUj0hMSxlWzM0XSgzNCx0aGlzKX1lbHNlIGdbMTJdKHhbMl0sIiIsQVswXSwxLCIsICIsdGhpcy52KSx6PT00MDAmJmIuaW5kZXhPZihtUygpKT5BWzBdPyh0aGlzLkY9MyxIWzQ2XSg5LDEyKSk6KHRoaXMuRj1BWzBdLEhbNDZdKDExLDEzKSksSFs5XSg2LG51bGwsdGhpcyksWVs0M10oMTAsQVswXSx0aGlzKX1jYXRjaChmKXtWSygpLERbMjNdKDEsIiIsdGhpcyl8fEZxKCl9ZmluYWxseXt9fSxmdW5jdGlvbihCKXt0aGlzLnR1PUJ9KSxmdW5jdGlvbigpe3JldHVybiBIWzZdLmNhbGwodGhpcywxNil9KSxOeT0oT1s4XSg4LDQ4LEhbMTddLmJpbmQobnVsbCwxKSksCmZ1bmN0aW9uKEIseixLLEope3JldHVybiBnWzI4XS5jYWxsKHRoaXMsMjQsQix6LEssSil9KSxPVz0oJHkucHJvdG90eXBlLkFMPWZ1bmN0aW9uKEIseixLKXsoej0oKEs9WyJGIiwibm93IiwoQj1bbnVsbCwyLDE3XSwiQiIpXSx0aGlzKS5vPUJbMF0sRGF0ZVtLWzFdXSgpKSx6LXRoaXNbS1syXV0+PTApPyh0aGlzLlImJnNUKCksRFszNl0oNjQsdGhpcy5tLHRoaXMuWCksdGhpcy5nIT1CWzFdJiYoZzBbNV0oMTAsMyksSFs0Nl0oMyxCWzJdKSksSFs5XSg2LEJbMF0sdGhpcyksdGhpc1tLWzBdXT1CWzFdLFlbNDNdKDE1LDAsdGhpcykpOihGbDMoKSxlWzhdKDE0LEJbMF0sdGhpc1tLWzJdXS16LHRoaXMpKX0sKCR5LnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24oKXtIWzldKCh0aGlzLks9ITAsNyksbnVsbCx0aGlzKX0sJHkucHJvdG90eXBlKS5rSj1mdW5jdGlvbihCLHosSyxKKXtpZih6PShKPVsiRiIsImlZIiwiRCJdLEs9Qi50YXJnZXQsdGhpc1tKWzJdXSkseiYmUls0Ml0oNDEsCkspPT0zKWZKKCkseltKWzBdXSgpO2Vsc2UgdGhpc1tKWzFdXShLKX0sR3YoKSk7cVEucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKEIpe3JldHVybiBHbFtyYSgpXS5wYXJzZShCLHZvaWQgMCl9LChxUS5wcm90b3R5cGUuc3RyaW5naWZ5PWZ1bmN0aW9uKEIpe3JldHVybiBHbFtyYSgpXS5zdHJpbmdpZnkoQix2b2lkIDApfSx1bCkucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbihCLHosSyl7aWYodGhpc1t0aGlzLlg9WVs0Ml0oMTgsKEs9WyJNIiwiY2xlYXIiLCJjYW5jZWwiXSxudWxsKSx0aGlzKSxLWzBdXSl0aGlzW0tbMF1dW0tbMl1dKCksdGhpc1tLWzBdXT1udWxsO2Vsc2UgaWYodGhpcy52JiZ0aGlzLnYuc2l6ZSE9PTApe2ZvcihCPSh6PWdbMTJdKDksdGhpcy52LnZhbHVlcygpKSx6Lm5leHQoKSk7IUIuZG9uZTtCPXoubmV4dCgpKUIudmFsdWVbS1syXV0oKTt0aGlzLnZbS1sxXV0oKX19O2Z1bmN0aW9uIGFVKCl7cmV0dXJuIEhbMTVdLmNhbGwodGhpcywxKX0KKCgoKCgoRj0oKCgoKChIWzI0XSgxNyxpcSxSWzE0XS5iaW5kKG51bGwsMjYpKSxpcS5wcm90b3R5cGUpLnY9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGVvKHRoaXMuWCx0aGlzLk0pfSxIKVsyNF0oNDksZW8sb2cpLGVvLnByb3RvdHlwZSkub3Blbj1mdW5jdGlvbihCLHosSyl7aWYoKEs9WzEsIm8iLDE4XSx0aGlzKS5yZWFkeVN0YXRlIT0wKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigiRXJyb3IgcmVvcGVuaW5nIGEgY29ubmVjdGlvbiIpO0RbKHRoaXMucmVhZHlTdGF0ZT1LW3RoaXNbS1sxXV09KHRoaXMuQz1CLHopLDBdLEspWzJdXSgzNSx0aGlzKX0sZW8ucHJvdG90eXBlKS5zZW5kPWZ1bmN0aW9uKEIseixLKXtpZihLPVsiYWJvcnQiLCEwLCJGIl0sdGhpcy5yZWFkeVN0YXRlIT0xKXRocm93IHRoaXNbS1swXV0oKSxFcnJvcigibmVlZCB0byBjYWxsIG9wZW4oKSBmaXJzdC4gIik7aWYodGhpc1tLWzJdXS5zaWduYWwuYWJvcnRlZCl0aHJvdyB0aGlzW0tbMF1dKCksRXJyb3IoIlJlcXVlc3Qgd2FzIGFib3J0ZWQuIik7Cigoej17aGVhZGVyczp0aGlzLmwsbWV0aG9kOnRoaXMuQyxjcmVkZW50aWFsczp0aGlzLkEsY2FjaGU6dm9pZCAwLHNpZ25hbDp0aGlzW3RoaXMudj1LWzFdLEtbMl1dLnNpZ25hbH0sQiYmKHpbemZZKCldPUIpLHRoaXMuVSl8fEdsKS5mZXRjaChuZXcgUmVxdWVzdCh0aGlzLm8seikpLnRoZW4odGhpcy5GdC5iaW5kKHRoaXMpLHRoaXMuYXcuYmluZCh0aGlzKSl9LGVvLnByb3RvdHlwZSkuYWJvcnQ9ZnVuY3Rpb24oQix6KXt0aGlzLnJlYWR5U3RhdGU9KCh0aGlzLnN0YXR1cz0odGhpcy5sPSh6PVsxLDAsKHRoaXMucmVzcG9uc2U9dGhpcy5yZXNwb25zZVRleHQ9IiIsQj1bMCwhMSw0XSwiWCIpXSxuZXcgSGVhZGVycyksQlt6WzFdXSksdGhpcy5GLmFib3J0KHYxKCkpLHRoaXNbelsyXV0mJnRoaXNbelsyXV0uY2FuY2VsKHYxKCkpLmNhdGNoKGZ1bmN0aW9uKCl7fSksdGhpcykucmVhZHlTdGF0ZT49elswXSYmdGhpcy52JiZ0aGlzLnJlYWR5U3RhdGUhPUJbMl0mJih0aGlzLnY9Qlt6WzBdXSwKR1s0OF0oMTYsQlsyXSx0aGlzKSksQlt6WzFdXSl9LGVvLnByb3RvdHlwZSksRikueDk9ZnVuY3Rpb24oQil7cmV0dXJuIEhbMjhdLmNhbGwodGhpcywxOCxCKX0sRikuRnQ9ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDJdLmNhbGwodGhpcywxMCxCKX0sRikuYXc9ZnVuY3Rpb24oKXtyZXR1cm4ga1sxM10uY2FsbCh0aGlzLDQwKX0sRikuQ3o9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMTFdLmNhbGwodGhpcywxNixCKX0sRikuclg9ZnVuY3Rpb24oQix6LEspe3JldHVybiBlWzIzXS5jYWxsKHRoaXMsNDgsQix6LEspfSxGLnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24oQix6KXt0aGlzLmwuYXBwZW5kKEIseil9LEYuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMuTT90aGlzLk0uZ2V0KEIudG9Mb3dlckNhc2UoKSl8fCIiOiIifSxGLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbihCLHosSyxKLEMpe2lmKCF0aGlzW0M9WyJqb2luIiwicHVzaCIsIk0iXSxDWzJdXSlyZXR1cm4iIjsKZm9yKHo9KEo9dGhpc1tDW0I9W10sMl1dLmVudHJpZXMoKSxKLm5leHQoKSk7IXouZG9uZTspSz16LnZhbHVlLEJbQ1sxXV0oS1swXSsiOiAiK0tbMV0pLHo9Si5uZXh0KCk7cmV0dXJuIEJbQ1swXV0oQ3IoKSl9LHhWKGVvLnByb3RvdHlwZSxsYSgpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BPT09ImluY2x1ZGUifSxzZXQ6ZnVuY3Rpb24oQil7dGhpcy5BPUI/QVYoKTokNSgpfX0pLEwzMykoKSxnVmgoKTtmdW5jdGlvbiBzMChCLHope3JldHVybiBIWzE4XS5jYWxsKHRoaXMsMjAsQix6KX0KKCgoKCgoczAucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLlImJnRoaXMuUi5pc0FjdGl2ZSh0aGlzKX0sczApLnByb3RvdHlwZS5CaD0oczAucHJvdG90eXBlLmNvbm5lY3Q9KChzMC5wcm90b3R5cGUuVzE9OCwoRj1pSi5wcm90b3R5cGUsczApLnByb3RvdHlwZS52bD1mdW5jdGlvbihCLHopeyh6PVszLCJpbmZvIiw0Nl0sQik/KHRoaXMuQVt6WzFdXShUMSgpKSxIW3pbMl1dKDEwLDIpKToodGhpcy5BW3pbMV1dKHlYKCkpLEhbelsyXV0oelswXSwxKSl9LHMwKS5wcm90b3R5cGUuTT0oczAucHJvdG90eXBlLkpPPWZ1bmN0aW9uKEIpe0I9WzgsbnVsbCwxOV0sdGhpcy5DIT1CWzFdJiYodGhpcy5DPUJbMV0sWVszNV0oMyxCWzFdLHRoaXMpLERbOV0oNSwhMSx0aGlzKSxIWzQ2XShCWzBdLEJbMl0pKX0sMSksKHMwLnByb3RvdHlwZS56Sj1mdW5jdGlvbihCLHosSyl7KFlbM10oMjUsKHo9WzQsKEs9WyJHIiw1NiwodGhpcy5XPW51bGwsIkZnIildLCJCUCBkZXRlY3Rpb24gdGltZXIgZW5hYmxlZDogIiksCjBdLHpbMl0pLCEwLHRoaXMpLCF0aGlzLkpMKXx8dGhpc1tLWzBdXXx8dGhpcy52PT1udWxsfHx0aGlzW0tbMl1dPD16WzJdfHwoQj16WzBdKnRoaXNbS1syXV0sdGhpcy5BLmluZm8oelsxXStCKSx0aGlzLm89Z1swXShLWzFdLFJ4KHRoaXMuYTAsdGhpcyksQikpfSxzMCkucHJvdG90eXBlLmEwPWZ1bmN0aW9uKEIseil7KEI9WyExLG51bGwsITBdLHo9WzEsMCwiSCJdLHRoaXMubyk/KHRoaXMubz1CW3pbMF1dLHRoaXMuQS5pbmZvKEVvKCkpLHRoaXMuQS5pbmZvKGNhKCkpLHRoaXNbelsyXV09Qlt6WzFdXSx0aGlzLkc9QlsyXSxIWzQ2XSgyLDEwKSxZWzM1XSgyLEJbelswXV0sdGhpcyksWVszXSgyNCx6WzFdLEJbMl0sdGhpcykpOnkxKCl9LHMwLnByb3RvdHlwZS5CMT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCl7aWYoeD1bIm5xIiwiWCIsKEs9WyJvZnM9IiwhMCwxXSw1NyldLHRoaXMuRilpZih0aGlzLkY9bnVsbCxzZigpLHRoaXMuTT09S1syXSlpZihCKXRPKCk7CmVsc2V7aWYoKG49KEM9KHRoaXMuWGc9KFU5KCksYk4oQWUoKSoxRTUpKSxwPXRoaXMuWGcrKyxuZXcgJHkocCx0aGlzLHRoaXMuQSx2b2lkIDApKSx0aGlzLk8pLHRoaXNbeFswXV0mJihuPyhuPW1bNDJdKDM0LG4pLEQ2KG4sdGhpc1t4WzBdXSkpOm49dGhpc1t4WzBdXSksdGhpcy5sIT09bnVsbCl8fHRoaXMuTHx8KEMuSD1uLG49bnVsbCksdGhpcy5CKWE6e2Zvcih2PVo9MDt2PHRoaXMuaS5sZW5ndGg7disrKXtiOntpZihPVyBpbihOPXRoaXMuaVt2XSxOLm1hcCkmJihBPU4ubWFwW09XXSx0eXBlb2YgQT09PSJzdHJpbmciKSl7Sj1BLmxlbmd0aDticmVhayBifUo9dm9pZCAwfWlmKChRPUosUSk9PT12b2lkIDApYnJlYWs7aWYoWis9USxaPjQwOTYpe3o9djticmVhayBhfWlmKFo9PT00MDk2fHx2PT09dGhpcy5pLmxlbmd0aC1LWzJdKXt6PXYrS1syXTticmVhayBhfX16PXRoaXMud2J9ZWxzZSB6PXRoaXMud2I7aWYoKCgoKChXPShiPWVbMjFdKDUsInR5cGU9IixLWzBdLHosdGhpcywKQykseSlbMTVdKDM2LHRoaXMuaiksbSlbOV0oMTMsVyxxaCgpLHApLG0pWzldKDExLFcsbHQ4KCksMjIpLHRoaXMuUCkmJm1bOV0oMTEsVyxuYix0aGlzLlApLEhbMzJdKDUsVyx0aGlzKSxuJiYodGhpcy5MP2I9ImhlYWRlcnM9IitHWzBdKDQsZ1sxMV0oMjUsIlxyXG4iLCIiLG4pKSsiJiIrYjp0aGlzLmwmJk9bNF0oMTgsS1sxXSxuLHRoaXMubCxXKSksT1szOF0oMjIsdGhpc1t4WzFdXSxDKSx0aGlzKS5YQyYmbVs5XSgxMSxXLG0yKCksUWwoKSksdGhpcykuQiltWzldKDksVyxrdygpLGIpLG1bOV0oNyxXLHlFKCksSjAoKSksQ1t4WzBdXT1LWzFdLEhbMzBdKHhbMl0sInR5cGUiLEMsVyxudWxsKTtlbHNlIEhbMzBdKDU4LCJ0eXBlIixDLFcsYik7dGhpcy5NPTJ9ZWxzZSBpZih0aGlzLk09PTMpaWYoQillWzE4XSgyMCxLWzBdLEtbMV0sdGhpcyxCKTtlbHNlIHRoaXMuaS5sZW5ndGg9PTB8fGcwWzNdKDI0LHRoaXNbeFsxXV0pfHwoZVsxOF0oMjEsS1swXSxLWzFdLHRoaXMpLFhZKCkpfSwKZnVuY3Rpb24oQix6LEssSixDLGIpeyh0aGlzLmo9KCgodGhpcy5IPSgodGhpcy5pWT0oKEM9WyhiPVs0NiwxLCJLIl0sMCksIi4iLCIiXSxSJCgpLEgpW2JbMF1dKDIsQ1swXSksdGhpc1tiWzJdXT16fHx7fSxCKSxLJiZKIT09dm9pZCAwKSYmKHRoaXNbYlsyXV1bSSQoKV09Syx0aGlzW2JbMl1dW21NWSgpXT1KKSx0aGlzLkFMKSxUNDgpKCksdGhpcykuQmgoYlsxXSxDWzBdKSxnWzIxXSgxNyxDWzJdLENbYlsxXV0sdGhpcy5pWSx0aGlzLG51bGwpKSxrKVsyNF0oNCxDWzBdLHRoaXMpfSksZnVuY3Rpb24oQil7WVs4XSgyNCxhcmd1bWVudHMsdGhpcy5NKX0pLEYpLm1NPWZ1bmN0aW9uKCl7fSxGKS5nUT1mdW5jdGlvbigpe30sRikucVo9ZnVuY3Rpb24oKXt9LEYpLk5aPWZ1bmN0aW9uKCl7fSxGLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuITB9LEYpLlJqPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMjJdLmNhbGwodGhpcyw5KX07CmZ1bmN0aW9uIElqKCl7cmV0dXJuIFlbNV0uY2FsbCh0aGlzLDkpfQp2YXIgQUY9KCgoSFsyNF0oMjUsRjMsb2cpLEYzKS5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXtnWzQ1XSg5LG51bGwsdGhpcy52KX0sRjMucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIpeyh0eXBlb2YgQj09PShiPVszLDIsKEs9dGhpcy52LDApXSwic3RyaW5nIik/KHo9e30seltPV109QixKPXopOnRoaXMuQT8oQz17fSxDW09XXT0obmV3IEJSKS55ZShCKSxKPUMpOko9QixLLmkucHVzaChuZXcgTmQoSy5udSsrLEopKSxLLk09PWJbMF0pJiZrWzI0XShiWzFdLGJbMl0sSyl9LEYzLnByb3RvdHlwZSkuWj1mdW5jdGlvbihCKXsoZGVsZXRlICgoKEI9WyJ2IiwiWiIsNDVdLHRoaXNbZGVsZXRlIHRoaXMuWCxCWzBdXSkuUj1udWxsLGcpW0JbMl1dKDgsbnVsbCx0aGlzW0JbMF1dKSx0aGlzKVtCWzBdXSxGMy5ZKVtCWzFdXS5jYWxsKHRoaXMpfSxIWzI0XSg4MyxOeSxMciksSFsyNF0oOTAsa0UscGEpLGZ1bmN0aW9uKEIpe3JldHVybiBtWzI0XS5jYWxsKHRoaXMsCjI0LEIpfSksVE93PSgoKChIWzI0XSg4MSxBRixpSiksQUYucHJvdG90eXBlKS5xWj1mdW5jdGlvbihCKXtnWzNdKDQ5LHRoaXMudixuZXcga0UoQikpfSxBRi5wcm90b3R5cGUubU09ZnVuY3Rpb24oKXtnWzNdKDUwLHRoaXMudiwiYiIpfSxBRikucHJvdG90eXBlLk5aPWZ1bmN0aW9uKCl7Z1szXSg1MCx0aGlzLnYsImEiKX0sQUYpLnByb3RvdHlwZS5nUT1mdW5jdGlvbihCKXtnWzNdKDQ5LHRoaXMudixuZXcgTnkoQikpfSxUT3d8fHtpZDpkMSgpfSksakVEPWpFRHx8e2lkOnozRCgpfSxwSDA9cEgwfHx7aWQ6UnooKX0sUUV3PVFFd3x8e2lkOk1DOCgpfSxuTXc9bk13fHx7aWQ6ckwoKX0sWnlsPVp5bHx8e2lkOmZlKCl9LFd4aD1XeGh8fHtpZDpITygpfSxnTTM9Z00zfHx7aWQ6VnIoKX0seDk9ZnVuY3Rpb24oQil7cmV0dXJuIE9bMjRdLmNhbGwodGhpcywxOCxCKX0sTk84PU5POHx8e2lkOlA0KCl9LE95OD1PeTh8fHtpZDpKNygpfSx4cHc9eHB3fHx7aWQ6ekEoKX0sRHA4PURwOHx8CntpZDpDUCgpfSxmSDg9Zkg4fHx7aWQ6blYoKX0sb01oPW9NaHx8e2lkOmRsKCl9LEx4TT1MeE18fHtpZDpMek0oKX0sUnlZPVJ5WXx8e2lkOlZKTSgpfSxycTg9cnE4fHx7aWQ6ZklEKCl9O2Z1bmN0aW9uIExZKCl7dmFyIEI9W251bGwsImFwcGx5IiwwXTtyZXR1cm4gVmhOW0JbMV1dKEJbMF0sZVszM10oMTIsRzJbQlsxXV0oQlsyXSxhcmd1bWVudHMpKSl9CmZ1bmN0aW9uIFZoTigpe3ZhciBCPVs0Niw0NSwxXSx6PUcyLmFwcGx5KDAsYXJndW1lbnRzKSxLPUdbM10oMzIselt6Lmxlbmd0aC1CWzJdXSk/ei5wb3AoKTp2b2lkIDA7cmV0dXJuIGtbQlswXV0oQlsxXSxmdW5jdGlvbihKLEMsYixBLHYscCl7dj0oQT1EW2I9KHA9WzAsImNvbmNhdCIsKGI9MSwzMyldLGIpPT09dm9pZCAwP0luZmluaXR5OmIsMzJdKDY1LCEwLHBbMF0sYixIWzQ3XS5iaW5kKG51bGwsMTcpKSxbSl1bcFsxXV0oZVtwWzJdXSgzLHopKSksQShLP09bMTFdKDc2LHBbMF0sdixLKTpEW3BbMl1dKDE3LHBbMF0sdikpLnN1YnNjcmliZShDKX0pfQp2YXIgR084PUdPOHx8e2lkOnNuWigpfSxIeU49SHlOfHx7aWQ6SjhxKCl9LGV5cT1leXF8fHtpZDppaSgpfSxQWU49UFlOfHx7aWQ6eFVxKCl9LCRwMz0kcDN8fHtpZDpmNmgoKX0scXNOPXFzTnx8e2lkOlFZKCl9LGl5TT1peU18fHtpZDpVYygpfSx5cUc9eXFHfHx7aWQ6Y20oKX0sWXN4PVlzeHx8e2lkOlE0KCl9LGNxMz1jcTN8fHtpZDpiaEcoKX0sU3M4PVNzOHx8e2lkOnA4dygpfSxtcHE9bXBxfHx7aWQ6eV8oKX0sbEhoPWxIaHx8e2lkOnFFKCl9LEVNeD1FTXh8fHtpZDpDRSgpfSxYSHc9WEh3fHx7aWQ6YUk4KCl9LHVneD11Z3h8fHtpZDpKbSgpfSxhSE49YUhOfHx7aWQ6cFYoKX0saHlZPWh5WXx8e2lkOkIwKCl9LGRwcT1kcHF8fHtpZDpYZmwoKX0sa09NPWtPTXx8e2lkOkE4TigpfSx0aHg9dGh4fHx7aWQ6RkYoKX0sVXA4PVVwOHx8e2lkOkhtKCl9LE1oWj1NaFp8fHtpZDpubygpfSx3SFo9d0hafHx7aWQ6TTYoKX0sSUhZPUlIWXx8e2lkOm5FKCl9OwpmdW5jdGlvbiBLeShCLHope3ZhciBLPWFyZ3VtZW50cy5sZW5ndGg+PTI7cmV0dXJuIGZ1bmN0aW9uKEosQyxiKXtyZXR1cm4oQz1bIShiPVshMCwwLDMyXSwxKSwwLDFdLEopLmhzKEI/Z1sxOF0oNDAsQ1sxXSxmdW5jdGlvbihBLHYpe3JldHVybiBCKEEsdixKKX0pOkhbNDddLmJpbmQobnVsbCxiWzJdKSxSWzQwXSgxNyxDWzFdLENbMl0pLEs/RFsyOV0oNixDW2JbMV1dLGJbMF0seik6RFsyMl0oMTYsQ1tiWzFdXSxiWzBdLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1Nn0pKX19CnZhciBGeEc9RnhHfHx7aWQ6eXhoKCl9LEJwRD1CcER8fHtpZDpSMzgoKX0sc1Y4PXNWOHx8e2lkOmNlOCgpfSx6Szg9eks4fHx7aWQ6cE8oKX0sS0dEPUtHRHx8e2lkOmdmKCl9LEo1OD1KNTh8fHtpZDpqVSgpfSxDdXc9Q3V3fHx7aWQ6R2MoKX0sYndaPWJ3Wnx8e2lkOnNaMygpfSxBNTM9QTUzfHx7aWQ6VUkoKX0sdkpaPXZKWnx8e2lkOmNNKCl9LFRwOD1UcDh8fHtpZDpmZCgpfSxqVkc9alZHfHx7aWQ6YTg4KCl9LHBORD1wTkR8fHtpZDpKYygpfSxRVmg9UVZofHx7aWQ6blc4KCl9LG5KWT1uSll8fHtpZDptVSgpfSxadzg9Wnc4fHx7aWQ6dGooKX0sV0dZPVdHWXx8e2lkOmRZKCl9LGdKRz1nSkd8fHtpZDpNSk0oKX0sTnBxPU5wcXx8e2lkOkcwKCl9OwpmdW5jdGlvbiBGNygpe3ZhciBCPVs0Nyw0NiwiYXBwbHkiXSx6PUcyW0JbMl1dKDAsYXJndW1lbnRzKTtyZXR1cm4gei5sZW5ndGg/a1tCWzFdXSg0MixmdW5jdGlvbihLLEosQyl7RFtDPVtudWxsLDM1LDNdLENbMV1dKDU3LENbMF0sMCxbS10uY29uY2F0KGVbMzNdKENbMl0seikpKShKKX0pOkhbQlswXV0uYmluZChudWxsLDMzKX0KdmFyIE93MD1PdzB8fHtpZDpBaSgpfSx4R3E9eEdxfHx7aWQ6QTIoKX0sREdsPURHbHx8e2lkOm1pKCl9LGZTRz1mU0d8fHtpZDp3VygpfSxvSk49b0pOfHx7aWQ6YjcoKX0sTEdHPUxHR3x8e2lkOlVKKCl9LFJLdz1SS3d8fHtpZDpKbigpfSxyNTM9cjUzfHx7aWQ6clFOKCl9LFZldz1WZXd8fHtpZDpMOCgpfSxHJHE9RyRxfHx7aWQ6SyQoKX0sSHc4PUh3OHx8e2lkOnpKOCgpfSxlS3g9ZUt4fHx7aWQ6QWVEKCl9LFB1Wj1QdVp8fHtpZDpCdigpfSwkR0c9JEdHfHx7aWQ6bHgoKX0scXBaPXFwWnx8e2lkOlBCKCl9LGl3bD1pd2x8fHtpZDpFQVooKX0seTVEPXk1RHx8e2lkOnpZWSgpfSxZcHc9WXB3fHx7aWQ6QnJoKCl9LGM1OD1jNTh8fHtpZDpJOHEoKX0sU3BxPVNwcXx8e2lkOkFtKCl9LG1HOD1tRzh8fHtpZDpqVigpfSxsU1k9bFNZfHx7aWQ6bUooKX0sRUp4PUVKeHx8e2lkOnp6KCl9LFhOWT1YTll8fHtpZDprTFooKX0sdWJZPXViWXx8e2lkOkMyRygpfSxhU3g9YVN4fHx7aWQ6TnMoKX0sCmhLMD1oSzB8fHtpZDpMSDAoKX0sZEdEPWRHRHx8e2lkOmtHKCl9LGskOD1rJDh8fHtpZDphdEQoKX0sdGU4PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBrWzE5XS5jYWxsKHRoaXMsMTMsQixKLEsseil9LFVHWj1VR1p8fHtpZDpMVCgpfSxNZU49TWVOfHx7aWQ6Y1FoKCl9LHdOOD13Tjh8fHtpZDpIUSgpfSxJUzg9SVM4fHx7aWQ6ZiQoKX0sRkczPUZHM3x8e2lkOkdZKCl9LEJGRD1CRkR8fHtpZDpOcmgoKX0sc2kwPXNpMHx8e2lkOnluKCl9LHpUcT16VHF8fHtpZDokdSgpfSxLczg9S3M4fHx7aWQ6dmVNKCl9LGt5PVckKCksRyQ9V3koKSxrRj1wTHEoKSxKYVk9KEtuLnByb3RvdHlwZS5zdGFydD0oR3UucHJvdG90eXBlLmFkZD1mdW5jdGlvbihCKXt0aGlzLnYucHVzaChCKX0sQkgucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oQix6LEssSil7KEo9WzQwMywzNCwiTSJdLHRoaXMpW0pbMl1dKG5ldyBtbU4oQikpLEs9Z1tKWzFdXSgxOCwxLG5ldyB6RixrW0pbMV1dKDM4LEpbMF0sCjUseikpLEdbOV0oNTgsMSwyLHRoaXMsSyl9LGZ1bmN0aW9uKEIpe3JldHVybiBuZXcgbEYodGhpcy5NLEIsITAsdGhpcy5YLHRoaXMudil9KSxKYVkpfHx7aWQ6c2MoKX0sREY9ckMoKSxmWj1nVCgpLENWOD17aXk6bmV3IHk2KCJodHRwczovL3NpZ25hbGVyLXBhLmNsaWVudHM2Lmdvb2dsZS5jb20vcHVuY3R1YWwiKSxmRDpuZXcgeTYoImh0dHBzOi8vc2lnbmFsZXItcGEuZ29vZ2xlYXBpcy5jb20vcHVuY3R1YWwiKSxRWDohMX0sbzU9e2l5Om5ldyB5NigiaHR0cHM6Ly9wdW5jdHVhbC5jb3JwLmdvb2dsZS5jb20vcHVuY3R1YWwiKSxmRDpuZXcgeTYsUVg6ITF9LGI5OD17aXk6bmV3IHk2KCJodHRwczovL3B1bmN0dWFsLWRldi5jb3JwLmdvb2dsZS5jb20vcHVuY3R1YWwiKSxmRDpuZXcgeTYoImh0dHBzOi8vc2lnbmFsZXItc3RhZ2luZy5zYW5kYm94Lmdvb2dsZS5jb20vcHVuY3R1YWwiKSxRWDohMX0sQWE4PW5ldyBNYXAoW1siY29ycCIsbzVdLFsicHJvZCIsQ1Y4XSxbInByb2QtdXAiLApvNV0sWyJwcmVwcm9kLWR5bmFtaXRlLWFscGhhLXVzIixIWzldKDE2LGthKCkpXSxbInByZXByb2QtZHluYW1pdGUtYWxwaGEtZXUiLEhbOV0oMjgseG0oKSldLFsicHJlcHJvZC1keW5hbWl0ZS1iZXRhLXVzIixIWzldKDIwLGs2KCkpXSxbInByZXByb2QtZHluYW1pdGUtYmV0YS1ldSIsSFs5XSgxMixNbigpKV0sWyJwcmVwcm9kLWR5bmFtaXRlLWdhbW1hLXVzIixIWzldKDI0LEppKCkpXSxbInByZXByb2QtZHluYW1pdGUtZ2FtbWEtZXUiLEhbOV0oMTIsb0QoKSldLFsicHJlcHJvZC1xdWFsLWR5bmFtaXRlLXBlcmZ0ZXN0IixtWzEzXSgyMCxPOSgpKV0sWyJwcm9kLWR5bmFtaXRlLXByb2QtMDAtZXUiLEhbOV0oMjQsb1coKSldLFsicHJvZC1keW5hbWl0ZS1wcm9kLTAxLWV1IixIWzldKDI4LE9VKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wMC11cyIsSFs5XSg0LGZQKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wMS11cyIsSFs5XSg0LFh3KCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wMi11cyIsCkhbOV0oMTYsbGcoKSldLFsicHJvZC1keW5hbWl0ZS1wcm9kLTAzLXVzIixIWzldKDE2LHNiKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wNC11cyIsSFs5XSgyOCxhcSgpKV0sWyJwcm9kLWR5bmFtaXRlLXByb2QtMDUtdXMiLEhbOV0oMTIsSmIoKSldLFsicHJvZC1keW5hbWl0ZS1wcm9kLTA2LXVzIixIWzldKDIwLHhTKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wNy11cyIsSFs5XSg0LE1nKCkpXSxbInByb2QtZHluYW1pdGUtcHJvZC0wOC11cyIsSFs5XSgyMCxYdigpKV0sWyJwcm9kLWR5bmFtaXRlLXByb2QtMDktdXMiLEhbOV0oMjQsV2EoKSldLFsiZHluYW1pdGUtYWxwaGEtdXMiLHlbMjhdKDY4LFVVKCksa2EoKSldLFsiZHluYW1pdGUtYWxwaGEtZXUiLHlbMjhdKDY1LFVVKCkseG0oKSldLFsiZHluYW1pdGUtYmV0YS11cyIseVsyOF0oNjksVVUoKSxrNigpKV0sWyJkeW5hbWl0ZS1iZXRhLWV1Iix5WzI4XSg2NCxVVSgpLE1uKCkpXSxbImR5bmFtaXRlLWdhbW1hLXVzIiwKeVsyOF0oNSxVVSgpLEppKCkpXSxbImR5bmFtaXRlLWdhbW1hLWV1Iix5WzI4XSgxLFVVKCksb0QoKSldLFsiZHluYW1pdGUtcHJvZC0wMC11cyIseVsyOF0oNjgsZzIoKSxmUCgpKV0sWyJkeW5hbWl0ZS1wcm9kLTAwLWV1Iix5WzI4XSgxLGcyKCksb1coKSldLFsiZHluYW1pdGUtcHJvZC0wMS11cyIseVsyOF0oNjUsZzIoKSxYdygpKV0sWyJkeW5hbWl0ZS1wcm9kLTAxLWV1Iix5WzI4XSg2OSxnMigpLE9VKCkpXSxbImR5bmFtaXRlLXByb2QtMDItdXMiLHlbMjhdKDUsZzIoKSxsZygpKV0sWyJkeW5hbWl0ZS1wcm9kLTAzLXVzIix5WzI4XSg2NCxnMigpLHNiKCkpXSxbImR5bmFtaXRlLXByb2QtMDQtdXMiLHlbMjhdKDEsZzIoKSxhcSgpKV0sWyJkeW5hbWl0ZS1wcm9kLTA1LXVzIix5WzI4XSg2OSxnMigpLEpiKCkpXSxbImR5bmFtaXRlLXByb2QtMDYtdXMiLHlbMjhdKDUsZzIoKSx4UygpKV0sWyJkeW5hbWl0ZS1wcm9kLTA3LXVzIix5WzI4XSg2OCxnMigpLE1nKCkpXSxbImR5bmFtaXRlLXByb2QtMDgtdXMiLAp5WzI4XSg2NCxnMigpLFh2KCkpXSxbImR5bmFtaXRlLXByb2QtMDktdXMiLHlbMjhdKDY1LGcyKCksV2EoKSldLFsicHJvZC1hc2lhLWVhc3QxIixtWzEzXSgyMCxHVigpKV0sWyJwcm9kLWFzaWEtc291dGhlYXN0MSIsbVsxM10oMjIsZE5oKCkpXSxbInByb2QtZXVyb3BlLW5vcnRoMSIsbVsxM10oMjEsdk0oKSldLFsicHJvZC1ldXJvcGUtd2VzdDEiLG1bMTNdKDUyLEh1KCkpXSxbInByb2QtZXVyb3BlLXdlc3Q0IixtWzEzXSg1Mix3SCgpKV0sWyJwcm9kLXNvdXRoYW1lcmljYS13ZXN0MSIsbVsxM10oMjIsSk4oKSldLFsicHJvZC11cy1jZW50cmFsMSIsbVsxM10oNTMseE5EKCkpXSxbInByb2QtdXMtY2VudHJhbDIiLG1bMTNdKDIxLGdVKCkpXSxbInByb2QtdXMtZWFzdDEiLG1bMTNdKDU0LGtjKCkpXSxbInByb2QtdXMtd2VzdDEiLG1bMTNdKDUzLG1hKCkpXSxbInl0cHJvZCIse2l5Om5ldyB5NigiaHR0cHM6Ly9zaWduYWxlci1wYS55b3V0dWJlLmNvbS9wdW5jdHVhbCIpLGZEOm5ldyB5NigiaHR0cHM6Ly9zaWduYWxlci1wYS5nb29nbGVhcGlzLmNvbS9wdW5jdHVhbCIpLApRWDohMX1dLFsiZGV2IixiOThdXSksdlVHPXZVR3x8e2lkOkF2KCl9LExaPVswLChPWzIxXSg1LGhCLFQpLENYKV0sUjU9KChPWzIxXSgoaEIucHJvdG90eXBlLlQ9Uls0OF0oNCxMWiksNiksYVIsVCksYVIucHJvdG90eXBlKS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB5WzMzXSg0MywyLHRoaXMpfSxbMCxnJCxJXyxDWCxJX10pLHJSPVswLChPWzIxXSgzLChhUi5wcm90b3R5cGUuVD1SWzQ4XSg1LFI1KSx1ZiksVCksS1gpLENYXSxGeT0oT1syMV0oNCxzZSwodWYucHJvdG90eXBlLlQ9Uls0OF0oMSxyUiksVCkpLGZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIGdbNDddLmNhbGwodGhpcywzMixCLHosSyxKLEMpfSksaGs9KE9bOF0oNiwyOSxrWzM4XS5iaW5kKG51bGwsMSkpLDI1NSksdCQ9e30salg9ZVszNV0oNjMsbnVsbCxzZSksUjY9KE9bOF0oKHNlLnByb3RvdHlwZS5UPVJbNDhdKDgsWzAsWF8sZyQscFgsWzBdLHBYLFswXSxwWCxyUixwWCxSNSxwWCxMWl0pLDkpLDIwLApmdW5jdGlvbihCLHosSyxKKXtmb3IoSz0oSj1bInRhZ05hbWUiLDU5LCIsIl0sSilbMV07SyE9NzY7KXtpZihLPT00MilyZXR1cm4gSFs4XSgxMiwyMjcpKEIpO2lmKEs9PTg4KXJldHVybiB6PWtbMzVdKDQ4LEJbSlswXV0rQi5pZCtCLmNsYXNzTmFtZSksQltKWzBdXStKWzJdK3o7Sz09SlsxXSYmKEs9QiYmQiBpbnN0YW5jZW9mIEVsZW1lbnQ/ODg6NDIpfX0pLFByb21pc2UpLHJxPShQZC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihCLHosSyxKLEMpeygoSj1uZXcgKEM9WzIwLCJwb3J0MiIsInBvcnQxIl0sSz1LPT09dm9pZCAwP1tdOkssTWVzc2FnZUNoYW5uZWwpLGcpW0NbMF1dKDEsMCxKW0NbMl1dLHopLHRoaXMudikucG9zdE1lc3NhZ2UoQixbSltDWzFdXV0uY29uY2F0KEspKX0sZXcpKCksVmk9b3goKSxmcj1mdW5jdGlvbigpe3JldHVybiBZWzE3XS5jYWxsKHRoaXMsMil9LFRGMD1URjB8fHtpZDpyTigpfSxUbD1bMTA0LDk3LDExMCwxMDAsNDUsMTAzLDEwMSwxMTUsMTE2LAoxMTcsMTE0LDEwMSwxMTUsNDUsMTA1LDEwMiwxMTQsOTcsMTA5LDEwMV0ubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKEIpfSkuam9pbigiIiksamlOPWppTnx8e2lkOno2KCl9LHBkdz1wZHd8fHtpZDpabygpfSxRaTg9UWk4fHx7aWQ6anhsKCl9LG5Vdz1uVXd8fHtpZDp6ZygpfSxaOWw9WjlsfHx7aWQ6Q28oKX0sV3NsPVdzbHx8e2lkOlVxWSgpfSxnVTA9KFY0TSgpLGdVMHx8e2lkOmFtKCl9KSxORk49TkZOfHx7aWQ6QVkzKCl9LE85cT0oKCgoKCgoKCgoKChESigpLFlSdykoKSxpNWgoKSxxJCgpLHBUKSgpLEVWOCgpLEdLKSgpLGU2KSgpLFdyKSgpLEdwKSgpLEdqRygpLHFCKCksZUgoKSxuQTMpKCksVHopKCksTl9oKCksbHooKSxadikoKSx1bzgoKSxQdikoKSxZRCgpLG5PKSgpLE85cXx8e2lkOmxfKCl9KSx4NTA9eDUwfHx7aWQ6aDNxKCl9LEQ1Tj1ENU58fHtpZDpJaTgoKX0sZkVsPShLTigpLE5vKCksTTIoKSxmRWwpfHx7aWQ6a3UoKX0sT2w9CmZ1bmN0aW9uKEIpe3JldHVybiBtWzZdLmNhbGwodGhpcyw4OSxCKX0sb1VxPW9VcXx8e2lkOnBvKCl9LFhnPWZ1bmN0aW9uKEIpe3JldHVybiBIWzQwXS5jYWxsKHRoaXMsMzIsQil9LExzaD0oeTkoKSxMc2h8fHtpZDplTzAoKX0pLFJUaD1SVGh8fHtpZDphaCgpfSxyYU49cmFOfHx7aWQ6WU8zKCl9LFZMeD0oKCgodWUoKSx3WSgpLEFwKCksdTcpKCksRWh4KSgpLGYzKSgpLEdMRCgpLFF4eCgpLFZMeCl8fHtpZDpJMCgpfSxHRTg9R0U4fHx7aWQ6c284KCl9LEg5Wj1IOVp8fHtpZDp6cCgpfSxlVGg9ZVRofHx7aWQ6cmgoKX0sUFZ3PVBWd3x8e2lkOlcwKCl9LCQ1MD0oT1s4XSg5LDksR1s3XS5iaW5kKG51bGwsMTYpKSwkNTB8fHtpZDpXejgoKX0pLHFobD1xaGx8fHtpZDpsUygpfSxpOTM9KCgoKE9KKCksa20pKCksUmEpKCksbnYpKCksbk94KCksUV8oKSxpOTMpfHx7aWQ6TlkoKX0seWFxPXlhcXx8e2lkOmhuKCl9LFloTT1ZaE18fHtpZDp0dygpfSxOdj1HayxjYUQ9Y2FEfHx7aWQ6JG8oKX0sClNoTj0oKEczLnByb3RvdHlwZS5zZXRJbnRlcnZhbD1mdW5jdGlvbihCLHopeyh6PVs0Mywic3RhcnQiLDE5XSx0aGlzLlg9Qix0aGlzLnYmJnRoaXMuTSk/KEhbelsyXV0oMjcsITEsdGhpcyksdGhpc1t6WzFdXSgpKTp0aGlzLnYmJkhbelsyXV0oelswXSwhMSx0aGlzKX0sRzMpLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihCLHopeyh0aGlzWyh6PVsoQj10aGlzLCJNIiksIkEiLCJ2Il0seilbMF1dPSEwLHRoaXNbelsyXV0pfHwodGhpc1t6WzJdXT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bVszNF0oMTcsLjgsITEsQil9LHRoaXMuWCksdGhpc1t6WzFdXT10aGlzLmkoKSl9LFNoTnx8e2lkOmdoOCgpfSksbTVxPW01cXx8e2lkOmgyKCl9LGxFOD1MSCgpLEVVbD1EcigpLFhkOD13cygpLFZOPVswLDEyLChPWzIxXSgzLHNLLFQpLElfKSwxMCxLWF0sR2Y9WzAsMSxWTixbMCwoT1tzSy5wcm90b3R5cGUuVD1SWzQ4XSg5LFZOKSwyMV0oNix6USxUKSw3KSxbMCxJXywtMV1dXSxrcz0oelEucHJvdG90eXBlLlQ9ClJbNDhdKDgsR2YpLGQyKCkpLEhHPShZYSgpLFpwKCksZnVuY3Rpb24oQil7cmV0dXJuIEdbMjBdLmNhbGwodGhpcyw0OCxCKX0pLE9zPSgoKCgoKFFuaCgpLGV4MykoKSx5SygpLGVuKCksU1YoKSxZNigpLHZCKSgpLHV0KCkseHVNKCksZ2Y4KSgpLFF1KSgpLHhHKSgpLFJPKCksWWx3KCkpLHdQPShTQSgpLFVTKCkpLFBqPVsyNzcsKCgoKChDQSgpLG9BRCgpLCQyKSgpLGg3KCksWEMoKSx1cnEpKCksblQoKSxTOSgpLEZDTSgpLHpfKCksQWMpKCksWmhEKSgpLDQzOTEpLDMyNzc5XSxMaz0oUHIoKSxrOE0oKSxpUTgpKCksc2k9KElWdygpLExJKCkpLGVMPSgoKCgoKElsKCksVFYoKSxKQykoKSx4bTgpKCksbUEoKSxiJCkoKSxPUCkoKSx0aCkoKSxybCgpLGwkKCkpLGpxPSgoKCgoZ3UoKSxEJCkoKSxKaigpLHhsKSgpLGllKSgpLGZpKCksRmc4KCksVnkpKCksZnVuY3Rpb24oQil7cmV0dXJuIFlbMjBdLmNhbGwodGhpcyw1NSxCKX0pLE5wPSRRKCksYlk9KCgoQkooKSx2VjgpKCkscEIoKSwKaHcoKSx3ZikoKSx2MEcoKSksZDU9KFJGeCgpLHpJKCkpLGlZPSgoKCgoKCgoKChYVSgpLGZMKCksdjkpKCksVnAoKSxSVVkoKSxRcCkoKSx6T3cpKCksQVFZKCksUXkpKCksSW0pKCksVjEpKCksZ00pKCksYm8pKCksVGk4KSgpLFpQKCksdzgoKSxwUCgpLGM5KCksV00oKSxuNCgpLGZ1bmN0aW9uKEIseil7cmV0dXJuIGdbMTldLmNhbGwodGhpcywxNCxCLHopfSksZ189KCgoKCgoKChiaygpLFJlKSgpLFdDRygpLHhIKCksajgoKSxJeigpLGF5KSgpLGl0KSgpLE9uKCkseE1OKSgpLFkyKSgpLEFzKCksWTg4KSgpLHdJKCksWmZ3KCksT2EpKCksRVMoKSksTTc9KENxaCgpLGhwKSgpLHJFPSh1digpLEx1KCksTXMpKCksUkg9KExMOCgpLGZscSgpKSx4TT1jXygpLFJwPSgoKChLZSgpLE5WKSgpLEVqKSgpLFhkKSgpLGxJKCkpLFV6PSgodDR4KCksWm4oKSxUcCkoKSxtVygpKTsKKCgoVWFoKCksZVd3KCkseW0oKSx5bCgpLE8xWSgpLFRVKCksZHUoKSx0Q2gpKCksYXopKCksbTB4KCksS2czKCksaWgpKCksS2koKSxQSygpO2Z1bmN0aW9uIFo2KEIseil7cmV0dXJuIFJbNDddLmNhbGwodGhpcyw5LHosQil9KFo2LnByb3RvdHlwZS5yb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnk9KHRoaXMueD15YSh0aGlzLngpLHlhKSh0aGlzLnkpLHRoaXN9LFo2LnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnk9KHRoaXMueD1iTih0aGlzLngpLGJOKHRoaXMueSkpLHRoaXN9LChaNi5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIpe3JldHVybiBCIGluc3RhbmNlb2YgWjYmJih0aGlzPT1CPyEwOnRoaXMmJkI/dGhpcy54PT1CLngmJnRoaXMueT09Qi55OiExKX0sWjYpLnByb3RvdHlwZSkuY2VpbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnk9KHRoaXMueD1kMCh0aGlzLngpLGQwKSh0aGlzLnkpLHRoaXN9OwpmdW5jdGlvbiBibShCLHope3JldHVybiBnWzEzXS5jYWxsKHRoaXMsOCxCLHopfQp2YXIgdmU9KCgoT1s4XSg4LChibS5wcm90b3R5cGUuYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH0sNjEpLGVbMTRdLmJpbmQobnVsbCwyKSksYm0pLnByb3RvdHlwZS5jZWlsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVpZ2h0PSh0aGlzLndpZHRoPWQwKHRoaXMud2lkdGgpLGQwKSh0aGlzLmhlaWdodCksdGhpc30sYm0ucHJvdG90eXBlLmZsb29yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVpZ2h0PSh0aGlzLndpZHRoPWJOKHRoaXMud2lkdGgpLGJOKSh0aGlzLmhlaWdodCksdGhpc30sYm0ucHJvdG90eXBlKS5yb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhlaWdodD0odGhpcy53aWR0aD15YSh0aGlzLndpZHRoKSx5YSh0aGlzLmhlaWdodCkpLHRoaXN9LHtjZWxscGFkZGluZzp2WCgpLGNlbGxzcGFjaW5nOkhfKCksY29sc3BhbjppVSgpLGZyYW1lYm9yZGVyOm1qKCksaGVpZ2h0OmJDKCksbWF4bGVuZ3RoOk1XdygpLG5vbmNlOlNFKCksCnJvbGU6TGkoKSxyb3dzcGFuOndlKCksdHlwZTpkQSgpLHVzZW1hcDpPNigpLHZhbGlnbjpWWTMoKSx3aWR0aDpJZk4oKX0pLGJEPXtJTUc6bzkoKSxCUjpJUigpfSxXRD1mdW5jdGlvbihCKXtyZXR1cm4gWVswXS5jYWxsKHRoaXMsMSxCKX0sZUk9WzAsZyQsKCgoV0QucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMjVdKDM5LEIsdGhpcy52KX0sV0QucHJvdG90eXBlLmdldEVsZW1lbnRzQnlUYWdOYW1lPShXRC5wcm90b3R5cGUuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMudi5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoQikpfSxXRC5wcm90b3R5cGUuTT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIHlbMjldKDIsMCwiY2xhc3MiLGFyZ3VtZW50cyx0aGlzLnYpfSxXRC5wcm90b3R5cGUudT1mdW5jdGlvbihCKXtyZXR1cm4gT1syXSgyOSxCLHRoaXMudil9LGZ1bmN0aW9uKEIseil7cmV0dXJuKHp8fHRoaXMudikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKEIpKX0pLApXRCkucHJvdG90eXBlLlg9a1szMl0uYmluZChudWxsLDIpLE9bMjFdKDQsRjQsVCksRjQpLnByb3RvdHlwZS5pUz1mdW5jdGlvbigpe3JldHVybiBtWzFdKDE4LHRoaXMsMSl9LEtYKSxJXywtMl0sUEc9WyhPWzIxXSgxLEp6LChGNC5wcm90b3R5cGUuVD1SWzQ4XSg4LGVJKSxUKSksMCksQ1gsLTFdLFI0PShPWzIxXSgxLFZvLChKei5wcm90b3R5cGUuVD1SWzQ4XSg5LFBHKSxUKSksZVszNV0oNTksbnVsbCxWbykpLCQ5PVswLFRhLFBHLEtYLENYLC01XSxWJD0oKFZvLnByb3RvdHlwZS5UPVJbNDhdKDUsJDkpLE9bMjFdKDMsa1ksVCksTylbOF0oOSw2MCxmdW5jdGlvbihCLHope3JldHVybiBQYigoej16PT09dm9pZCAwPzEwMDp6LGZ1bmN0aW9uKEspe3JldHVybihLPVswLCIiLCJzbGljZSJdLEFycmF5KS5mcm9tKEIudG9TdHJpbmcoKSlbS1syXV0oS1swXSx6KS5qb2luKEtbMV0pfSksIiIpfSksZnVuY3Rpb24oKXtyZXR1cm4gRFs0M10uY2FsbCh0aGlzLDQ4KX0pLHF5PVswLENYLAotMSxnJCxDWCwtMSxnJCxDWCwtMSwkOSxlSV0sdUh4PShrWS5wcm90b3R5cGUuVD1SWzQ4XSg1LHF5KSx1SHgpfHx7aWQ6bmkoKX0sQzA9bmV3IFZvLEswPW51bGwsaWI9WzAsQ1gsZyQsMSxDWCwtMSxnJCwxLGckLDEsa3hdLGFFdz1bMCxnJCxDWCwtMV0saFRsPVswLENYLC0zXSxkNXc9WzAsQ1gsLTYsa3gsSV8sQ1gsLTEsa3hdLHlOPVswLENYLGckXSxZOT1bMCxnJCxDWCwtMl0sJHM9ZnVuY3Rpb24oQil7cmV0dXJuIEdbMjddLmNhbGwodGhpcyw0MCxCKX0sbnI9KChPWzhdKDExLDI1LFlbNDRdLmJpbmQobnVsbCwxKSksTylbOF0oNywxMixmdW5jdGlvbihCKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUlszMV0oMzcsMCxmdW5jdGlvbigpe3JldHVybiBCfSxYSil9fSksZnVuY3Rpb24oKXtyZXR1cm4ga1sxMV0uY2FsbCh0aGlzLDEpfSksY0c9WzAsQ1gsZyRdLFdoPWZ1bmN0aW9uKEIseil7cmV0dXJuIFJbMTddLmNhbGwodGhpcywxLEIseil9LGtFWT1bMCxDWCwtNixnJCwKQ1gsMSxDWCwoT1s4XSg4LDUxLGZ1bmN0aW9uKEIpe3JldHVybiBZWzddKDc0LG51bGwsZnVuY3Rpb24oeil7cmV0dXJuIHR5cGVvZiBCPT09InN0cmluZyI/bmV3IHouU3RyaW5nKEIpOkJ9KX0pLEtYKSxnJCwtMSxLWCxDWCwtMixnJCxDWCxnJCxDWCxJXywtMV0sdEwzPVswLENYLC00XSxTST1bMCwoT1s4XSg4LDMyLE9bMzhdLmJpbmQobnVsbCwxKSksT1s4XSg5LDUwLHlbMzFdLmJpbmQobnVsbCw4KSksS1gpLC0zXSxVNTg9WzAsQ1gsLTRdLE1MOD1bMCxDWCwtMyxreCxJXyxDWCwtMV0sd2RHPVswLGckLENYLC0xLGt4LElfLC0xLENYLC00LFNJXSxJRXg9WzAsKE9bOF0oMTAsMjIsRFs5XS5iaW5kKG51bGwsMjYpKSxnJCldLFNxPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIGdbNDNdLmNhbGwodGhpcywyMixKLHosQixDLEspfSwkVT1mdW5jdGlvbihCKXtyZXR1cm4gR1szXS5jYWxsKHRoaXMsNSxCKX0sRnNoPVswLFswLGckLENYLC0xLGt4LElfLC0xLENYLC00LFRhLFU1OCwKLTEsMSxTSV0sd2RHXSxCSkQ9WzAsS1gsLTNdLHMzRD1bMCxDWCwxLENYLC01XSx6bTA9WzAsQ1gsZyQsQ1gsLTEsa3gsZyQsQ1gsLTEsZyQsSV8sLTFdLEtfOD1bMCxDWCwtNF0sSkU4PVswLENYLGckLENYLC0yXSxtOT1bMCxnJCxDWCwtKE9bOF0oMTEsNTgsbVs0OV0uYmluZChudWxsLDYpKSwxKSxreCxJXywtMSxDWCwtNSxUYSxLXzgsLTEsS1gsQkpELGckXSxDd049WzAsWzEsMiwzLDQsNSw2XSxwWCxpYixwWCx5TixwWCxjRyxwWCxJRXgscFgsbTkscFgsWTldLGJyeD1bMCxnJF0sQUVNPVswLGckLENYLC04XSxubj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIGtbMzldLmNhbGwodGhpcyw1LEIseixLKX0sdjdOPWZ1bmN0aW9uKEIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpLUJ9fShEYXRlLm5vdygpKSxUSjg9WzAsQ1gsWzAsSV8sLTMsZyRdLGckLC0yLFswLElfLC0xXSxLWF0sRGY9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVs0M10uY2FsbCh0aGlzLDE4LEIsCnopfSxDcT1mdW5jdGlvbihCLHope3JldHVybiB5WzM2XS5jYWxsKHRoaXMsMSxCLHopfSxRdz0oT1s4XSg2LDQzLGZ1bmN0aW9uKEIseixLLEope3JldHVybih6PXlbMTFdKDM0LHosSyksSj0oIiIrQilbVzErbGJdKHopKSYmSi5sZW5ndGg+PTI/SlsxXToiIn0pLGZ1bmN0aW9uKEIpe3JldHVybiBZWzQwXS5jYWxsKHRoaXMsMTYsQil9KSxqMzA9WzAsQ1gsLTldLGlsPWZ1bmN0aW9uKEIpe3JldHVybiB5WzEzXS5jYWxsKHRoaXMsMjcsQil9LEVXPVswLGckLDEsZDV3LDEsczNELENYLC0xLChPWzIxXSg0LFJqLFQpLEFFTSksaFRsLEpFOCxxeSxreCxNTDgsYUV3LGozMCxrRVksMSxicngsMSx0TDMsMSxpYixDd04seU4sY0csbTksRnNoLFk5LFRKOCw0LHptMF0sREI9ZnVuY3Rpb24oQil7cmV0dXJuIE9bNDZdLmNhbGwodGhpcywzNixCKX0scHQ4PVswLGhiLCgoUmoucHJvdG90eXBlLlQ9Uls0OF0oOCxFVyksWjcpWzY2MzIxNjg3XT1FVyxLWCksa3hdLFEzRz0oT1s4XSg2LDIzLApmdW5jdGlvbihCLHosSyxKLEMpe2ZvcihKPShDPVsxLDE4LDM1XSxDWzBdKTtKIT0zMzspaWYoSj09NDMpej1nWzEyXSg1LEhbOF0oNDQsNjUyMSkpLEs9ei5uZXh0KCksSj05NTtlbHNle2lmKEo9PUNbMl0pcmV0dXJuITE7aWYoSj09OTUpSj02ODtlbHNle2lmKEo9PTQpcmV0dXJuITE7aWYoSj09NjgpSj1LLmRvbmU/NjE6ODQ7ZWxzZSBpZihKPT0yMSlLPXoubmV4dCgpLEo9Njg7ZWxzZSBpZihKPT03OClKPUIuaW5uZXJIVE1MPzQzOjYxO2Vsc2V7aWYoSj09NjEpcmV0dXJuIEIubm9kZVR5cGU9PUNbMF0mJkIuc3JjJiZZW0NbMV1dKDM0KS50ZXN0KEIuc3JjKT8hMTohMDtKPT1DWzBdP0o9QiYmQi5ub2RlVHlwZSE9Mz83ODpDWzJdOko9PTg0JiYoSj1CLmlubmVySFRNTC5pbmRleE9mKEsudmFsdWUpIT0tMT80OjIxKX19fX0pLFswLGckLGt4XSksbjdsPVswLGt4LC0xLENYXSxacmw9WzAsS1gsLTEsZyQsS1hdLFdfWj1bMCxhXyxJXywtMl0sZzczPVswLGFfXSx4MD0oT1s4XSg3LAozMCxtWzFdLmJpbmQobnVsbCwxKSksZnVuY3Rpb24oKXt9KSxOSlk9WzAsZyQsV19aLGc3M10sT3IzPVswLElfLENYLC0xXSx4a0Q9WzAsQ1gsLTFdLERrOD1bMCxBRywtMSxGTix0N2wsLTFdLGZkOD1bMCxnJCwtMV0sekg9KE9bMjFdKDUsS3EsVCksT1syMV0oMixCMixUKSxmdW5jdGlvbihCKXtyZXR1cm4gUlszOF0uY2FsbCh0aGlzLDQsQil9KSxYaz1bLTQse30sR2YsZyQsb2IzXSx1Yj1bLTM3LHt9LGhiLENYLFRhLHhrRCxRVCwxLFFULERrOCxDWCxPcjMsS1gsSV8sa3gsQ1gsKEtxLnByb3RvdHlwZS5UPVJbNDhdKDQsWGspLC0xKSxKQkQsbmIzLGhiLFFULGckLEZOLGt4LC0xLGZkOCxDWCxLWCxDWCxCWixDWCwtMSxYTiwxLFhOLFhrLEtYLE5KWSxRM0ddLG83aD0oKChPWzIxXSgxLChCMi5wcm90b3R5cGUuVD1SWzQ4XSg4LHViKSxvaiksVCksb2opLnByb3RvdHlwZS5OdT1mdW5jdGlvbihCKXtyZXR1cm4gSFswXSg2Nyx0aGlzLDIsQil9LE8pWzhdKDEwLDQ3LEdbMjRdLmJpbmQobnVsbCwKMSkpLG9qLnByb3RvdHlwZS5UPVJbNDhdKDgsWy0xOSx7fSxFVyxnJCxUYSx1YixoYixuWCxDWCwtMSxoYixnJCwtMSxacmwsbjdsLHB0OCxreCwxLFdaLDEsWGtdKSxvN2h8fHtpZDpQQSgpfSksTF9NPShySy5wcm90b3R5cGUuTnU9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMudi5OdShCKSx0aGlzfSxMX00pfHx7aWQ6U0soKX07KCgoKCgobFgoKSxZJCkoKSxSTCkoKSxDQikoKSxPZigpLHROcSgpLG5WMCkoKSxqSCgpLGQwOCkoKSxGejAoKSxOQykoKTtmdW5jdGlvbiBWeChCKXtyZXR1cm4gT1sxMV0uY2FsbCh0aGlzLDQ5LEIpfQp2YXIgUm1xPSgoVngucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy52PXRoaXMuTT10aGlzLlh9LFZ4KS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSxSbXF8fHtpZDpTUigpfSksdmw9KChZRCgpLGFHKSgpLC9eKD8hb258c3JjfCg/OmFjdGlvbnxhcmNoaXZlfGJhY2tncm91bmR8Y2l0ZXxjbGFzc2lkfGNvZGViYXNlfGNvbnRlbnR8ZGF0YXxkc3luY3xocmVmfGh0dHAtZXF1aXZ8bG9uZ2Rlc2N8c3R5bGV8dXNlbWFwKVxzKiQpKD86W2EtejAtOV8kOi1dKikkL2kpLHJFbD1bMCxBR10sVlpZPVswLElfLGckXSxHcXg9WzAsQUddLEhSPWZ1bmN0aW9uKCl7cmV0dXJuIGtbNDVdLmNhbGwodGhpcyw1KX0sSHJxPVswLChPWzhdKDExLDAsSFsxOV0uYmluZChudWxsLDE4KSksVGEpLFswLENYLGckLC0xXSxreF0sZW1sPVswLENYLC0xXSxQdzM9WzAsSV8sQ1hdLCRrOD0oKE9bMjFdKDIsUXcsVCksTylbOF0oMTAsMTMsT1szOV0uYmluZChudWxsLAo1NikpLGUpWzM1XSg1NyxudWxsLFF3KSxhNT1bKE9bOF0oNiwoUXcucHJvdG90eXBlLlQ9Uls0OF0oOCxbLTgsazIsaGIsckVsLEhycSxHcXgsVGEsVlpZLFRhLFB3MyxUYSxlbWxdKSwzNiksUlsxOV0uYmluZChudWxsLDcpKSxPWzIxXSg0LG5hLFQpLDApLElfXTtuYS5wcm90b3R5cGUuVD1SWzQ4XSg0LGE1KTsKdmFyIGh0LHFrMD0oaHQ9KGsyWzE3NTIzNzM3NV09YTUsbmV3IFAwKSxxazB8fHtpZDpsNygpfSkseGY9KCgoKE9bMjFdKDEscWsscFEpLHFrLnByb3RvdHlwZSkuWj1mdW5jdGlvbihCKXsoKGdbQj1bITEsMTksMzldLDExXSgzMCxCWzBdLHRoaXMpLEgpW0JbMV1dKEJbMl0sQlswXSx0aGlzLnYpLEgpW0JbMV1dKDU1LEJbMF0sdGhpcy5DKSxwUS5wcm90b3R5cGUuWi5jYWxsKHRoaXMpfSxxay5wcm90b3R5cGUpLmxvZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXsoa1sxXSgoUT1bMTUsIk0iLCh6PVsxLDFFMywhMV0sNDkpXSw3NCksdGhpcyx6WzBdLDIpLHRoaXMubykmJihBPWVbMzFdKDY0LCEwLEIpLGI9dGhpcy5LKyssQz1CPUhbUVsyXV0oNTEsMjEsYixBKSxHWzM3XSg4Nyw2NCxudWxsLEhbNF0oODkselswXSxDKSk9PW51bGwmJihKPURhdGUubm93KCkscD1OdW1iZXIuaXNGaW5pdGUoSik/Si50b1N0cmluZygpOm1nKCkseVsxM10oNywhMCx6WzBdLHAsQykpLGtbMjhdKDU1LAp6WzJdLDY0LDAsbnVsbCxIWzRdKDg5LFFbMF0sQyx2b2lkIDAsdm9pZCAwLGtbNDZdLmJpbmQobnVsbCwyMikpKSE9bnVsbHx8SFtRWzJdXShRWzJdLFFbMF0sKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpKjYwLEMpLHY9QixrWzFdKDc2LHRoaXMselswXSx6WzBdKSxLPXRoaXNbUVsxXV0ubGVuZ3RoLXpbMV0relswXSxLPjAmJih0aGlzW1FbMV1dLnNwbGljZSgwLEspLHRoaXMuQSs9SyxrWzFdKDc5LHRoaXMsSywzKSksdGhpc1tRWzFdXS5wdXNoKHYpLHRoaXMuQ0R8fHRoaXMudltRWzFdXXx8dGhpcy52LnN0YXJ0KCkpfSxxaykucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtLPShDPSh4PVsyMywibCIsImkiXSxbNSwzLDBdKSx0aGlzKSx0aGlzLk0ubGVuZ3RoPT09MD9CJiZCKCk6KHY9RGF0ZS5ub3coKSx0aGlzLkg+diYmdGhpcy5XPHY/eiYmeihYZDgpOih0aGlzLm5EJiYodHlwZW9mIHRoaXMubkQuaVM9PT0iZnVuY3Rpb24iPwpEWzI3XSgxLHRoaXNbeFsyXV0sdGhpcy5uRC5pUygpKTp0aGlzW3hbMl1dW3hbMl1dPUNbMl0pLFc9dGhpcy5NLmxlbmd0aCxaPWVbNDNdKDU3LDEzLENbMF0sQ1syXSwxMCx0aGlzLk0sdGhpcy5jdix0aGlzLkEsdGhpc1t4WzJdXSx0aGlzLk8pLChiPXRoaXMuQm8oKSkmJnRoaXMuVT09PWI/eiYmeihFVWwpOih0aGlzLk09W10sdGhpcy52Lk0mJkhbMTldKHhbMF0sITEsdGhpcy52KSx0aGlzLkE9Q1syXSxOPVoueWUoKSx0aGlzW3hbMV1dJiYoTi5sZW5ndGg8dGhpc1t4WzFdXS5JYj8wOnR5cGVvZiBDb21wcmVzc2lvblN0cmVhbSE9PSJ1bmRlZmluZWQiKSYmKG49T1szMl0oMiw0LENbMV0sMiwxLE4pKSxRPVJbM10oNyxOLHRoaXMsYiksQT1mdW5jdGlvbigpe0subkQmJksubkQuc2VuZChRLHAsSil9LEo9ZnVuY3Rpb24oZixMLHIsVixQLHEsYyxFLFMpeygoKChxPSgocj0oVj0oUD1IWzEyXSgyMCxaLChjPVs3LDYwMCwoUz1bIlUiLCJnZXRWYWx1ZSIsInNldEludGVydmFsIl0sCjEpXSwzKSxCMixrWzNdKDEyKSksRT1OdW1iZXIoZVszMl0oNTEsWiwxNCkpLEsuWCksTCksVikudj1sOSgzRTUsVi52KjIpLHlhKC4xKihBZSgpLS41KSoyKlYudikpLFYpLk09bDkoM0U1LFYuditxKSxLLnYpW1NbMl1dKEsuWFtTWzFdXSgpKSxmPT09NDAxKSYmYiYmKEtbU1swXV09YiksRSYmKEsuQSs9RSkscj09PXZvaWQgMCYmKHI9NTAwPD1mJiZmPGNbMV18fGY9PT00MDF8fGY9PT0wKSxyKSYmKEsuTT1QLmNvbmNhdChLLk0pLEsuQ0R8fEsudi5NfHxLLnYuc3RhcnQoKSksa1sxXSg3NSxLLGNbMl0sY1swXSkseiYmeihsRTgsZiksKytLLk99LHA9ZnVuY3Rpb24oZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3cpe2lmKCgoc3c9KEU9WzEsMCxudWxsXSxbInYiLDEsODZdKSxLKS5YLnJlc2V0KCksSylbc3dbMF1dLnNldEludGVydmFsKEsuWC5nZXRWYWx1ZSgpKSxmKXtMPUVbMl07dHJ5e1g9ZU4ob0MoZi5yZXBsYWNlKG5BKCksIiIpKSksTD0kazgoWCl9Y2F0Y2goQjgpe31pZihMKXsoUD0KKHc9KChoPU51bWJlcihlWzMyXSg1MCxMLEVbMF0sR1szMV0oOTUsdzIoKSkpKSxoPkVbc3dbMV1dKSYmKEsuVz1EYXRlLm5vdygpLEsuSD1LLlcraCksTCksRFsxNV0oMzIsTWEpKSxOMCkmJlAmJigoVT13LmFUW1BdKT09RVsyXT92b2lkIDA6VVsxNzUyMzczNzVdKSE9RVsyXSYmbVs0N10oOCxFWzBdLFJfLDMpO2E6e2lmKERbMTVdKChjPWM9PT12b2lkIDA/ITE6Yyw2OCkscmcpJiZEWzE1XSg0LE1hKSYmdm9pZCAwPT09cmcpe2lmKHI9dy5hVCxWPXJbTWFdLCFWKWJyZWFrIGE7aWYoUz1WLmxkKXRyeXtTKHIsMTc1MjM3Mzc1LGVVKTticmVhayBhfWNhdGNoKEI4KXtPWzQ1XShzd1syXSxCOCl9fWMmJihkPXcuYVQsKHE9RFsxNV0oMjQsTWEpKSYmcSBpbiBkJiYoTT1kW3FdKSYmZGVsZXRlIE1bMTc1MjM3Mzc1XSl9aWYodD0oYT1odC5jdG9yP2h0W3N3WzBdXSh3LGh0LmN0b3IsMTc1MjM3Mzc1LGh0Lk0pOmh0W3N3WzBdXSh3LDE3NTIzNzM3NSxFWzJdLGh0Lk0pLGE9PT1udWxsPwp2b2lkIDA6YSkpdT15WzMzXSgxMSxFWzBdLHQsLTEpLHUhPT0tMSYmKEsuWD1uZXcgVngodTxFWzBdPzE6dSksS1tzd1swXV0uc2V0SW50ZXJ2YWwoSy5YLmdldFZhbHVlKCkpKX19KEImJkIoKSxLKS5PPUVbc3dbMV1dfSxuP24udGhlbihmdW5jdGlvbihmKXsoKChrWzFdKDc4LEssVyw1KSxRLkFCKVtMQSgpXT1xd0QoKSxRLkFCKVtpck5dPUhWKCksUS5ib2R5PWYsUSkudHE9MixBKCl9LGZ1bmN0aW9uKCl7a1sxXSg3NyxLLFcsNiksQSgpfSk6QSgpKSkpfSxJSikoKSxpck49KGdDKCksVmcpKCkseUU4PXlFOHx8e2lkOk0kKCl9LFlrbD0oJDcucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXtyZXR1cm4gR1t2PXRoaXMsMTNdKDE2LGZ1bmN0aW9uKHgsZixMKXtMPShmPVs4LG51bGwsNDAwXSxbNDA4LDUsImFzc2lnbiJdKTtzd2l0Y2goeC5NKXtjYXNlIDE6cmV0dXJuIEE9KEM9di5YWD9uZXcgQWJvcnRDb250cm9sbGVyOnZvaWQgMCk/CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtDLmFib3J0KCl9LEIuZ3opOnZvaWQgMCx4LkEoMiwzKSxXPU9iamVjdFtMWzJdXSh7fSx7bWV0aG9kOkIuV0QsaGVhZGVyczpPYmplY3RbTFsyXV0oe30sQi5BQil9LEIuYm9keSYme2JvZHk6Qi5ib2R5fSxCLndpdGhDcmVkZW50aWFscyYme2NyZWRlbnRpYWxzOkFWKCl9LHtzaWduYWw6Qi5neiYmQz9DLnNpZ25hbDpudWxsfSkseC52KGZldGNoKEIudXJsLFcpLExbMV0pO2Nhc2UgTFsxXTppZigocD14LlgscCkuc3RhdHVzIT09MjAwKXsoKE49Syk9PWZbMV18fE4ocC5zdGF0dXMpLHgpLkdfKDMpO2JyZWFrfWlmKChuPXopPT1mWzFdKXt4LkdfKDcpO2JyZWFrfXJldHVybiB4LnYocC50ZXh0KCksZlswXSk7Y2FzZSBmWzBdOm4oeC5YKTtjYXNlIDc6Y2FzZSAzOih4Lm0oKSxjbGVhclRpbWVvdXQpKEEpLHgubygwKTticmVhaztjYXNlIDI6UT14LmkoKTtzd2l0Y2goKFo9USk9PWZbMV0/dm9pZCAwOloubmFtZSl7Y2FzZSAiQWJvcnRFcnJvciI6KGI9CkspPT1mWzFdfHxiKExbMF0pO2JyZWFrO2RlZmF1bHQ6KEo9Syk9PWZbMV18fEooZlsyXSl9eC5HXygzKX19KX0sJDcucHJvdG90eXBlLmlTPWZ1bmN0aW9uKCl7cmV0dXJuIDR9LFlrbCl8fHtpZDokMVooKX0sbUU9KE9bMjFdKDMsUHQscFEpLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuIGVbNV0uY2FsbCh0aGlzLDEsQix6LEssSixDLGIsQSx2LHAsUSxuKX0pLGNFMD0oUHQucHJvdG90eXBlLmlEPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTT0hMCx0aGlzfSxjRTB8fHtpZDpIWSgpfSksTnE9ZnVuY3Rpb24oKXtyZXR1cm4gT1s0M10uY2FsbCh0aGlzLDIpfSxjbj0oKCgoKCgoKCgoKCgoZlEoMTAyNCwtMyksZlEpKDEwMjQsLTIpLGZRKSgxMDI0LDIpLGZRKDEwMjQsMyksZlEoMTAyNCw0KSxmUSkoMTAyNCw1KSxmUSkoMTAyNCw2KSxmUSgxMDI0LDcpLGZRKSgxMDI0LDgpLEZsKSgpLGJfKSgpLEJPKSgpLEs3KCksb2wpKCksbHQpKCksR0EpKCksSWEpKCkse30pLApBQj0oViQucHJvdG90eXBlLlZlPShWJC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSxWJC5wcm90b3R5cGUuVnk9KFYkLnByb3RvdHlwZS5nNz1mdW5jdGlvbigpe3JldHVybiBtWzQ1XS5jYWxsKHRoaXMsMTYpfSxudWxsKSxmdW5jdGlvbigpe3JldHVybiB0aGlzLk19KSx7fSksWTQ9e30sQ3c9e30seGo9e30sVEQ9ZnVuY3Rpb24oQil7ZnVuY3Rpb24geihLKXt0aGlzLk09S31yZXR1cm4gei5wcm90b3R5cGU9Qi5wcm90b3R5cGUsZnVuY3Rpb24oSyxKLEMpe3JldHVybihDPW5ldyB6KFN0cmluZyhLKSksSiE9PXZvaWQgMCkmJihDLlZ5PUopLEN9fSgoSFsyNF0oMTksRk0sViQpLEZNLnByb3RvdHlwZS5Oaj14aixGTSkpLEJoPVJlZ0V4cC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkobEooKSksc2w9bmV3IFJlZ0V4cCgoQmg/IiI6STkoKSkrIig/OiF8Lz8oW2EtekEtWl1bYS16QS1aMC05Oi1dKikpIixCaD9lMigpOmhPKCkpLGFaPSgoKE9bMjFdKDUsCmZyLEZNKSxmcikucHJvdG90eXBlLlZlPWZ1bmN0aW9uKEIseixLLEope2lmKChKPVsiIiwiTSIsM10sdGhpcylbSlsxXV0hPT12b2lkIDApcmV0dXJuIHRoaXNbSlsxXV07Zm9yKEI9KEs9Z1sxMl0oKHo9SlswXSxKWzJdKSx0aGlzLnYpLEsubmV4dCgpKTshQi5kb25lO0I9Sy5uZXh0KCkpeis9Qi52YWx1ZTtyZXR1cm4gen0sZnIucHJvdG90eXBlKS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlZlKCl9LGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQigpe3RoaXMuTT0iIn1yZXR1cm4gQi5wcm90b3R5cGU9ZnIucHJvdG90eXBlLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCfX0pKCksT2g9eyJceDAwIjpWcygpLCJcdCI6aTcoKSwiXG4iOnJHKCksIlx2IjpyWTAoKSwiXGYiOlk1KCksIlxyIjpJMSgpLCIgIjpRTCgpLCciJzp6MigpLCImIjpGSigpLCInIjp5MGgoKSwiLSI6aXYoKSwiLyI6eDUoKSwiPCI6QmIoKSwiPSI6QzMoKSwiPiI6c3ooKSwiYCI6WXYoKSwiwoUiOmF0KCksIsKgIjpxUjAoKSwKIlx1MjAyOCI6cFNsKCksIlx1MjAyOSI6eksoKX0sQ0Q9KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChVUCgpLHRtKSgpLE1vKSgpLFhqKCksZ24pKCksS0IpKCksYVcpKCksRmopKCksbU8oKSxNbCkoKSxIeSkoKSwkSCgpLGRhRCgpLHBKKSgpLERzKSgpLHFPTSgpLHB2KSgpLHdvMCgpLGMzKSgpLFJ0KCksZTgpKCksQWcoKSxqb1kpKCksZjhaKSgpLGRuKCksTjYpKCksbGkpKCksaEEoKSxETkcoKSxsRSgpLHdVKCksbXQpKCksc1ApKCksc3gwKSgpLEJDKCksYmUoKSxZbVooKSxYZSgpLEZpKCksSUd3KSgpLFNqKSgpLG9oOCkoKSxyTSgpLHg2KCksRFgoKSxGZSgpLFNVKSgpLGNYKSgpLEZhKCksTDcpKCksZlZ4KCksWks4KCksc0woKSxBeE4pKCksUlApKCkseTIoKSxIJCgpLGZ1bmN0aW9uKEIpe3JldHVybiBnMFswXS5jYWxsKHRoaXMsNixCKX0pLG8zPXsiXHgwMCI6KChPVigpLE1ZeCgpLFU2KSgpLEhLKCksRGEwKSgpLCIBIjpKSygpLCICIjpHNigpLCIDIjpabk0oKSwiBCI6SjIoKSwKIgUiOmtKTSgpLCIGIjpwMigpLCIHIjpDNygpLCJcYiI6bnUoKSwiXHQiOlZQTigpLCJcbiI6Vm0oKSwiXHYiOnV5KCksIlxmIjpETTAoKSwiXHIiOngwWigpLCIOIjpOQSgpLCIPIjokNigpLCIQIjpFNygpLCIRIjpCMygpLCISIjpsQSgpLCITIjpGcCgpLCIUIjpiRSgpLCIVIjp5MzAoKSwiFiI6dWgoKSwiFyI6SlYoKSwiGCI6RmQoKSwiGSI6JF8oKSwiGiI6WERNKCksIhsiOmNRKCksIhwiOndETSgpLCIdIjptaCgpLCIeIjpUZHEoKSwiHyI6RUkoKSwiICI6T1EoKSwnIic6aWdEKCksIiciOmlrKCksIigiOnNJKCksIikiOkpBKCksIjwiOlAzRygpLCI+IjpCNE4oKSwiXFwiOmZOKCksInsiOiQkKCksIn0iOlZ1KCksIn8iOnRDKCksIsKFIjpiMTgoKSwiwqAiOndHKCksIlx1MjAyOCI6czYoKSwiXHUyMDI5Ijp0MigpLCLvvIEiOkVhKCksIu+8gyI6JE5xKCksIu+8hCI6U1JEKCksIu+8hiI6WVEoKSwi77yHIjpTTygpLCLvvIgiOlJtKCksIu+8iSI6cXQoKSwi77yKIjp5TCgpLCLvvIsiOmROKCksIu+8jCI6ajIoKSwi77yPIjpDMzAoKSwKIu+8miI6c3dNKCksIu+8myI6V2xEKCksIu+8nSI6dVgoKSwi77yfIjpTdigpLCLvvKAiOlVvKCksIu+8uyI6aGQoKSwi77y9IjpTdygpfSxtXz1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gbVszN10uY2FsbCh0aGlzLDYsQix6LEssSil9LERsPS9bXHgwMFx4MjJceDI2XHgyN1x4M2NceDNlXS9nLFNrRD1bMCxPdSxiQl0sbWtoPVswLE91LGJCLHphXSx0VD0vPC9nLGxkOD1bMCx6YV0sRTdaPVswLHRiLC0yXSxjZD0oKChPWzIxXSg1LE1jLFQpLE1jLnByb3RvdHlwZSkuczM9ZnVuY3Rpb24oKXtyZXR1cm4gZVszMl0oNTYsdGhpcyw1KX0sTWMucHJvdG90eXBlKS5UPVJbNDhdKDgsWzAsYkIsLTEsT3UsVTdsLHRiLGJCLG1raCxTa0QsRTdaLGxkOF0pLE9bMjFdKDEsJEwsVCksZnVuY3Rpb24oQix6LEspe3JldHVybiBtWzQ2XS5jYWxsKHRoaXMsMSxCLHosSyl9KSxkUj1bMCxnJCxJX10sRWQ9KCgkTC5wcm90b3R5cGUuVD1SWzQ4XSg4LGRSKSxPKVsyMV0oMSxZTCxUKSxmdW5jdGlvbihCKXtyZXR1cm4gT1sxNl0uY2FsbCh0aGlzLAo0MCxCKX0pLGs5PVswLGt4LChZTC5wcm90b3R5cGUuQXk9ZnVuY3Rpb24oKXtyZXR1cm4gZVszMl0oNTksdGhpcywzKX0sSV8pLChZTC5wcm90b3R5cGUuczM9ZnVuY3Rpb24oKXtyZXR1cm4gZVszMl0oNTQsdGhpcywxKX0sa3gpXSxMRj0oT1syMV0oMyxRNiwoWUwucHJvdG90eXBlLlQ9Uls0OF0oOCxrOSksVCkpLGZ1bmN0aW9uKCl7cmV0dXJuIG1bMTZdLmNhbGwodGhpcywxKX0pLHR0PVswLGckLHdnLC0xLChPWzhdKDYsNTUsbVsyMl0uYmluZChudWxsLDcpKSxLWCksazksQ1gsLTFdLFVXPShPWzIxXSg0LChRNi5wcm90b3R5cGUuVD1SWzQ4XSg0LHR0KSxQVCksVCksWzAsVGEsdHQsVGEsZFJdKSxNeT1bMCwoKE9bMjFdKDYseWosKFBULnByb3RvdHlwZS5UPVJbNDhdKDksVVcpLFQpKSx5aikucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHlbMzNdKDEyLDIsdGhpcyl9LGckKSxJXyxDWCxJX10sd1I9WzAsd2csa3gsS1gsSV8sVVcsTXksZyQsSV8sLShPWzIxXSgzLAplQiwoeWoucHJvdG90eXBlLlQ9Uls0OF0oOCxNeSksVCkpLDEpXSxJNT1bMCwoT1syMV0oNSxPOCwoZUIucHJvdG90eXBlLlQ9Uls0OF0oNCwoZUIucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGVbMzJdKDQ4LHRoaXMsMil9LHdSKSksVCkpLElfKSwtMV0sRms9WyhPWzIxXSg2LGE5LChPOC5wcm90b3R5cGUuVD1SWzQ4XSgxLEk1KSxUKSksMCksZyQsYV8sLTFdLEJnPVswLElfLGFfLC0xLCgoT1syMV0oNCwoYTkucHJvdG90eXBlLlQ9Uls0OF0oOSxGayksa24pLFQpLE8pWzhdKDEwLDM5LGZ1bmN0aW9uKEIseil7cmV0dXJuIFBiKGZ1bmN0aW9uKCl7cmV0dXJuIEJbRFsxMl0oNTcsMSx6KV0uYmluZChCKX0sbnVsbCl9KSxJXyldLHNEPVswLElfLGFfLC0xLEJnLChPWzIxXSgyLChrbi5wcm90b3R5cGUuVD1SWzQ4XSg0LEJnKSxSRSksVCksT1s4XSg5LDM1LGdbMzddLmJpbmQobnVsbCwzKSksLTEpLElfLC0yXSxlcz0oT1syMV0oMyx1cSwoUkUucHJvdG90eXBlLlQ9Uls0OF0oMSwKc0QpLFQpKSxmdW5jdGlvbihCKXtyZXR1cm4geVsxMF0uY2FsbCh0aGlzLDc2LEIpfSksb3I9KE9bOF0oNiwxMSxPWzFdLmJpbmQobnVsbCwyMykpLHVxLnByb3RvdHlwZS5UPVJbNDhdKDEsWzAsVGEsRmssLTEsc0QsQUcsSTVdKSxbMyw2LDQsMTFdKSxCVT17fSxhMz0oSFsyNF0oODksV2Usb2cpLEIxKCkpLFM3PXpBOCgpLEVFPShIWzI0XSg1NyxYNCwoV2UucHJvdG90eXBlLlo9KFdlLnByb3RvdHlwZS5NPShXZS5wcm90b3R5cGUuWD1mdW5jdGlvbihCKXtlWzI5XSg5NSx0aGlzLEIpfSxmdW5jdGlvbihCLHopeyhCLmtleUNvZGU9PSh6PVs5NiwzLDI5XSwxMyl8fGtlJiZCLmtleUNvZGU9PXpbMV0pJiZlW3pbMl1dKHpbMF0sdGhpcyxCKX0pLGZ1bmN0aW9uKEIpeyhCPVs1LCExLCJaIl0sV2UuWVtCWzJdXS5jYWxsKHRoaXMpLGspW0JbMF1dKDcsMCx0aGlzLEJbMV0sdGhpcy5NLHRoaXMudixGOCksa1tCWzBdXSg5LDAsdGhpcyxCWzFdLHRoaXMuWCx0aGlzLnYseUcpLGRlbGV0ZSB0aGlzLnZ9KSwKY2IpKSxmdW5jdGlvbihCKXtyZXR1cm4gRFsyNl0uY2FsbCh0aGlzLDYsQil9KSxkND0oKChIWzI0XSg1OCxFRSxjYiksT1syMV0oMSx4RixvZykseEYucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7KGtbNV0oKEI9WyJaIiwhMSwwXSwyMyksQlsyXSx0aGlzLEJbMV0sdGhpcy5NLHRoaXMuaSxhMyksa1s1XSgyNSxCWzJdLHRoaXMsQlsxXSx0aGlzLkEsdGhpcy52LFtndixOSF0pLG9nLnByb3RvdHlwZVtCWzBdXSkuY2FsbCh0aGlzKX0seEYpLnByb3RvdHlwZS5BPWZ1bmN0aW9uKEIseixLKXtpZihCLnR5cGU9PShLPVsibm93IiwiTSIsITFdLGd2KSl0aGlzLlg9RGF0ZVtLWzBdXSgpLEIudigpO2Vsc2UgaWYoQi50eXBlPT1OSCYmKHo9RGF0ZVtLWzBdXSgpLXRoaXMuWCxCLmVxLmNhbmNlbGFibGUhPUtbMl0mJno8NTAwKSlyZXR1cm4gdGhpc1tLWzFdXShCLCEwKTtyZXR1cm4hMH0seEYpLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIpe3JldHVybiBCLmtleUNvZGU9PTMyJiZCLnR5cGU9PQpzWD90aGlzLk0oQik6ITB9LFtdKSxEQz0oeEYucHJvdG90eXBlLk09ZnVuY3Rpb24oQix6LEssSil7aWYoSz1EYXRlWyhKPVsiWCIsITEsIm5vdyJdLEopWzJdXSgpLXRoaXNbSlswXV0senx8Sz4xRTMpQi50eXBlPURDLGdbM10oNjEsdGhpcyxCKSxCLnYoKSx0aGlzLkZ8fEIucHJldmVudERlZmF1bHQoKTtyZXR1cm4gSlsxXX0sQjEoKSksWmU9KEF3KCksUUspKCksVzI9REQoKSxWNT1TSCgpLGY2PU1FKCksalc9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1szOF0uY2FsbCh0aGlzLDgsQix6KX0sR1E9KChTeSgpLGhoKCksQyQpKCksUXBOKCksT2ooKSksZ3g9bjIoKSxYdE49dHAoKSxOVD0oaUMoKSxwSCgpLEhRdygpKSxIMj12RCgpLGVxPU5uKCksVEY9Y1YoKSx6dz1jVygpLE9LPShQWCgpLG9JKSgpLHhnPXBBKCksRGU9bkwoKSxmcT1zXygpLEtNPShVNygpLGdOKCksYmgpKCksb0Y9ZE1EKCksTHE9Y0ooKSxSRj1xNCgpLEpaPShzbigpLFZ0KCkpLHJ4PSgkYTAoKSxENSkoKSxWdj0KKCgoKCgoKCgoKCgoKCgoKChwYygpLEQxRCgpLGxWdykoKSxuSikoKSxqQykoKSx6VykoKSx2QygpLHRCKSgpLHhkKCksbkIoKSx5WigpLE5kbCkoKSxmYykoKSx0QikoKSxSdigpLHlJKSgpLEU4OCkoKSxvUSkoKSxZZCgpLGM4bCkoKSxhR0coKSxlYigpLHlrKSgpLGFWeCkoKSxxbygpLHRCKSgpLEg1MykoKSxmdW5jdGlvbihCLHope3JldHVybiBrWzZdLmNhbGwodGhpcyw4LEIseil9KSx1NUQ9SkIoKSxhZEc9Q0MoKSxvTj0oKCgoKEk0KCksQ24oKSxKQikoKSxDQykoKSxDbigpLEpCKCksQ0MpKCksQ24oKSxDQygpLEpCKSgpLHIzOCgpLGJhKCksSkIoKSxDQygpLEk0KCksQ24oKSxKQikoKSxMNj1DQygpO0NuKCk7CnZhciBucSxDTT0oSkx3KCksWjFxKCksQ2QoKSxXVigpLFRlKCksUEMoKSksYm49WTMoKSxobWw9KCgoKCgoKCgoKCgoKCh2digpLEtKKSgpLFdKKSgpLFpneCgpLHVrKCksb3EoKSxYaGwpKCksaG0pKCksTFApKCksczcpKCksRWo4KCksYTZ3KSgpLGpmdykoKSxBJE0pKCkseVooKSx6VykoKSxIRGgpKCksek4pKCksaURsKCksUHUoKSwkZCkoKSx3aCgpLGpLKCksZUsoKSxCMHEoKSksZGtEPVEzKCksa3F4PXA4KCksdFp4PSgoVXIoKSx2VikoKSxxRCgpLEU4KCksSzMoKSxvTygpKSxVazA9KCgoKExDdygpLG8kKCksQVgzKSgpLHkkcSgpLFJ4cSgpLHBkKCksU18oKSxjM2gpKCkscng4KSgpLE9nOCgpLGRmKCksT25EKCksWHUpKCksTVpHPSgoKCgoKG9tKCksZkkoKSxOMikoKSxEdikoKSxXaSkoKSxJdSkoKSxjcCkoKSx1SSgpLCRxTigpLEpsKCkpLFE1PUNGOCgpLFBoPUxpKCk7T1s4XSgxMCw0LFJbNV0uYmluZChudWxsLDE2KSk7CmZ1bmN0aW9uIHozKEIseixLLEope3JldHVybiBIWzExXS5jYWxsKHRoaXMsMTMseixCLEosSyl9ejMucHJvdG90eXBlLnJvdW5kPSh6My5wcm90b3R5cGUuZmxvb3I9ZnVuY3Rpb24oKXtyZXR1cm4oKHRoaXMudG9wPWJOKHRoaXMudG9wKSx0aGlzLnJpZ2h0PWJOKHRoaXMucmlnaHQpLHRoaXMpLmJvdHRvbT1iTih0aGlzLmJvdHRvbSksdGhpcykubGVmdD1iTih0aGlzLmxlZnQpLHRoaXN9LHozLnByb3RvdHlwZS5jZWlsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVmdD0odGhpcy5ib3R0b209KHRoaXMucmlnaHQ9KHRoaXMudG9wPWQwKHRoaXMudG9wKSxkMCkodGhpcy5yaWdodCksZDApKHRoaXMuYm90dG9tKSxkMCh0aGlzLmxlZnQpKSx0aGlzfSxmdW5jdGlvbigpe3JldHVybih0aGlzLmJvdHRvbT0odGhpcy5yaWdodD0odGhpcy50b3A9eWEodGhpcy50b3ApLHlhKSh0aGlzLnJpZ2h0KSx5YSh0aGlzLmJvdHRvbSkpLHRoaXMpLmxlZnQ9eWEodGhpcy5sZWZ0KSx0aGlzfSk7CmZ1bmN0aW9uIG5qKEIseixLLEope3JldHVybiBlWzJdLmNhbGwodGhpcywzLHosSyxKLEIpfQp2YXIgQVo9KG5qLnByb3RvdHlwZS5jZWlsPShuai5wcm90b3R5cGUuZmxvb3I9KG5qLnByb3RvdHlwZS5yb3VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhlaWdodD0odGhpcy50b3A9KHRoaXMubGVmdD15YSh0aGlzLmxlZnQpLHlhKHRoaXMudG9wKSksdGhpcy53aWR0aD15YSh0aGlzLndpZHRoKSx5YSh0aGlzLmhlaWdodCkpLHRoaXN9LGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMudG9wPSh0aGlzLmxlZnQ9Yk4odGhpcy5sZWZ0KSxiTih0aGlzLnRvcCkpLHRoaXMud2lkdGg9Yk4odGhpcy53aWR0aCksdGhpcykuaGVpZ2h0PWJOKHRoaXMuaGVpZ2h0KSx0aGlzfSksZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWlnaHQ9KHRoaXMudG9wPSh0aGlzLmxlZnQ9ZDAodGhpcy5sZWZ0KSxkMCh0aGlzLnRvcCkpLHRoaXMud2lkdGg9ZDAodGhpcy53aWR0aCksZDApKHRoaXMuaGVpZ2h0KSx0aGlzfSksaFgpP1MyOCgpOmtlfHx4eD9Mb2woKTpudWxsOwpmdW5jdGlvbiB2Zygpe3JldHVybiBrWzEyXS5jYWxsKHRoaXMsNjApfShlWzI0XSg2MCx2ZyksdmcucHJvdG90eXBlKS52PTA7ZnVuY3Rpb24gblEoQix6KXtyZXR1cm4gRFsyNF0uY2FsbCh0aGlzLDIsQix6KX12YXIgTHg9KChIWzI0XSgxNyxuUSxvZyksblEpLnByb3RvdHlwZS5vej12Zy5KKCksbnVsbCksUmM9KFdIbCgpLGZ1bmN0aW9uKCl7cmV0dXJuIERbMjFdLmNhbGwodGhpcyw0Mil9KSxVZz0oKGUkKCksTkkpKCksZVVOKSgpLE1pPVNuKCksd0s9RV8oKSxJVD1ObCgpLEZMPWRjKCksbkY9ZnVuY3Rpb24oKXtyZXR1cm4gR1s4XS5jYWxsKHRoaXMsMSl9LEJqPSREKCksc0M9Z0goKSx6cj1JTygpLEthPUhNKCksSjk9R20oKSxDYT1UTigpLGJHPUQwKCksQTk9bG8oKSx2aj1nakcoKSxoVT1TJCgpLHd0OD14dSgpLFR3PUIxKCksakQ9VDkoKSxJZDg9aFc4KCksbjU9KHIkMygpLEYkKCkpLCRnPUtjKCksWkk9RWMoKSxpTT1iZjMoKSxUcj0oSnAoKSxhJCgpKTsKKEY9blEucHJvdG90eXBlLG5RLnByb3RvdHlwZS5yZW5kZXI9KChuUS5wcm90b3R5cGUudT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LChuUS5wcm90b3R5cGUud2I9ZnVuY3Rpb24oQil7aWYodGhpcy5pJiZ0aGlzLmkhPUIpdGhyb3cgRXJyb3IoSWQ4KTtuUS5ZLndiLmNhbGwodGhpcyxCKX0sblEpLnByb3RvdHlwZSkuYlk9ZnVuY3Rpb24oKXt0aGlzLk09dGhpcy5sLmNyZWF0ZUVsZW1lbnQoc2kpfSxmdW5jdGlvbihCLHope2lmKHRoaXNbKHo9WyJpIiwiYXBwZW5kQ2hpbGQiLCJTcSJdLHopWzJdXSl0aHJvdyBFcnJvcihuNSk7dGhpc1sodGhpcy5NfHx0aGlzLmJZKCksQik/Qi5pbnNlcnRCZWZvcmUodGhpcy5NLG51bGwpOnRoaXMubC52LmJvZHlbelsxXV0odGhpcy5NKSx6WzBdXSYmIXRoaXNbelswXV1belsyXV18fHRoaXMuQ3EoKX0pLEYuTzM9ZnVuY3Rpb24oQil7dGhpcy5NPUJ9LEYuQ3E9ZnVuY3Rpb24oKXtlWzJdKDIwLCh0aGlzLlNxPSEwLHRoaXMpLGZ1bmN0aW9uKEIpeyFCLlNxJiYKQi51KCkmJkIuQ3EoKX0pfSxGLlo9ZnVuY3Rpb24oQil7KHRoaXMuQT0odGhpcy5pPSh0aGlzLk09KCgoKEI9WzQ2LDIsbnVsbF0sdGhpcy5TcSkmJnRoaXMuREcoKSx0aGlzLlUpJiYodGhpcy5VLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy5VKSxlKVtCWzFdXSgyMSx0aGlzLGZ1bmN0aW9uKHope3ouZGlzcG9zZSgpfSksdGhpcy5NJiZlW0JbMF1dKDExLHRoaXMuTSksQlsyXSksQlsyXSksQilbMl0sdGhpcy5GPUJbMl0sblEpLlkuWi5jYWxsKHRoaXMpfSxGLkRHPWZ1bmN0aW9uKEIpe3RoaXMuU3E9KEI9WzE2LDIyLCExXSxlWzJdKEJbMV0sdGhpcyxmdW5jdGlvbih6KXt6LlNxJiZ6LkRHKCl9KSx0aGlzLlUmJkdbMjVdKEJbMF0sdGhpcy5VKSxCKVsyXX0sRikuZWk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfTtmdW5jdGlvbiBwTShCLHosSyxKKXtyZXR1cm4ga1sxOV0uY2FsbCh0aGlzLDYyLEIseixLLEopfXZhciBNcj0oSFsyNF0oMTcscE0sY2IpLEwyKSgpOwpmdW5jdGlvbiBxbShCLHope3JldHVybiBIWzE4XS5jYWxsKHRoaXMsNCxCLHopfXZhciBFRj0oSFsyNF0oNDkscW0sb2cpLGRyKSYmaFgsdTI9KCgoKCgoRj0ocW0ucHJvdG90eXBlLnY9bnVsbCxxbS5wcm90b3R5cGUpLEYubzc9bnVsbCxGLmNJPSExLEYpLlBZPWZ1bmN0aW9uKEIseil7cmV0dXJuIG1bN10uY2FsbCh0aGlzLDUyLEIseil9LEYuWUo9LTEsRikuZWs9LTEsRj1xbS5wcm90b3R5cGUsRikuQU09bnVsbCxGKS5rcD1udWxsLEYpLlh0PWZ1bmN0aW9uKEIpe3JldHVybiBnWzI0XS5jYWxsKHRoaXMsMTYsQil9LHt9KTsKRi51PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudn0sRi5oYW5kbGVFdmVudD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZigoQz0odj1bMjI0LDAsOTFdLFE9Wyh6PUIuZXEsMCksMzIsImtleUlkZW50aWZpZXIiXSx6LmFsdEtleSksa2UmJkIudHlwZT09QlM/KHA9dGhpcy5layxKPXouY2hhckNvZGU+PXZbMV0mJnouY2hhckNvZGU8NjMyMzImJm1bMTldKDUxLDE4NyxwKT96LmNoYXJDb2RlOjApOihCLnR5cGU9PUJTPyhFRiYmKEM9dGhpcy5jSSksei5rZXlDb2RlPT16LmNoYXJDb2RlP3oua2V5Q29kZTxRWzFdPyhKPXZbMV0scD16LmtleUNvZGUpOihKPXouY2hhckNvZGUscD10aGlzLmVrKToocD16LmtleUNvZGV8fHRoaXMuZWssSj16LmNoYXJDb2RlfHx2WzFdKSk6KHA9ei5rZXlDb2RlfHx0aGlzLmVrLEo9ei5jaGFyQ29kZXx8dlsxXSksZHImJko9PTYzJiZwPT12W1FbMF1dJiYocD0xOTEpKSwoQT1wPXlbMjBdKDEyLHZbMl0scCkpP3A+PTYzMjMyJiZwIGluIEJYPwpBPUJYW3BdOnA9PTI1JiZCLnNoaWZ0S2V5JiYoQT05KTp6W1FbMl1dJiZ6W1FbMl1daW4gY3kmJihBPWN5W3pbUVsyXV1dKSwhaFgpfHxCLnR5cGUhPUJTfHxlWzE4XSg5LDIxOSwxNixCLm1ldGFLZXksQSx0aGlzLllKLEIuY3RybEtleSxDLEIuc2hpZnRLZXkpKWI9QT09dGhpcy5ZSix0aGlzLllKPUEsSz1uZXcgcE0oQSxKLGIseiksSy5hbHRLZXk9QyxnWzNdKDYwLHRoaXMsSyl9Owp2YXIgUWYsZDk9e0NiOnpmLHpROihxbS5wcm90b3R5cGUuWj1mdW5jdGlvbihCKXsocW0uWVtCPVsiY2FsbCIsMzEsIloiXSxCWzJdXVtCWzBdXSh0aGlzKSxPKVtCWzFdXSgxLG51bGwsdGhpcyl9LEtaKSxMYjplWkQscE46SHROLGpxOms0LGM2OnRVLHQ1OiRSLER5Onl4fSxGX049KGVbMjRdKDU4LE5RKSxKRihDTSxLTSxibixmNixobWwsSlosZGtELGY2LGtxeCxmNix0WngsZjYsVWswLEpaLE1aRyxKWikpLG1ZPSgoKChOUS5wcm90b3R5cGUuTXU9KEY9KE5RLnByb3RvdHlwZS5oeT1mdW5jdGlvbihCLHope21bMThdKDcyLHRoaXMuV2goKSsiLXJ0bCIsQix6KX0sTlEucHJvdG90eXBlKSxOUS5wcm90b3R5cGUueGM9ZnVuY3Rpb24oQix6KXsoKHo9WzIsITAsInUiXSxCLnVZPT1udWxsKSYmKEIudVk9InJ0bCI9PWdbMTBdKHpbMF0sImRpcmVjdGlvbiIsQi5TcT9CLk06Qi5sLnYuYm9keSkpLEIudVkpJiZ0aGlzLmh5KEJbelsyXV0oKSx6WzFdKSxCLmlzRW5hYmxlZCgpJiZ0aGlzLm93KEIsCkIuaXNWaXNpYmxlKCkpfSwoTlEucHJvdG90eXBlLnRNPWZ1bmN0aW9uKEIseixLKXtBWiYmKEs9ej8iIjp0QigpLEIuc3R5bGUmJihCLnN0eWxlW0FaXT1LKSl9LEYpLldoPWZ1bmN0aW9uKCl7cmV0dXJuImdvb2ctY29udHJvbCJ9LGZ1bmN0aW9uKEIseil7cmV0dXJuIEIubC5NKHNpLCh6PVsiVmUiLDQsImpvaW4iXSxnMFt6WzFdXSgyMywiLW9wZW4iLEIsdGhpcylbelsyXV0obzkoKSkpLEJbelswXV0oKSl9KSxGKS5YcD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe3JldHVybigoQT0oKEIuWk09KChRPShKPShLPShiPXRoaXNbQz0oKChuPSh2PVtudWxsLCExLDBdLFsiV2giLDIsImZpcnN0Q2hpbGQiXSksei5pZCkmJmdbMTRdKDQxLHouaWQsQikseikmJnpbblsyXV0/Z1syMV0oNjYsQix6W25bMl1dLm5leHRTaWJsaW5nP21bMjldKDMsei5jaGlsZE5vZGVzKTp6W25bMl1dKTpCLmpzPXZbMF0sdltuWzFdXSkscD10aGlzW25bMF1dKCksblswXV0oKSx2WzFdKSx2WzFdKSwKbVsyOV0oMTgsZVsxXSg3Mix6KSkpLFEpLmZvckVhY2goZnVuY3Rpb24oWixXLE4peygoTj1bMiw0LDBdLFc9WyEwLCItb3BlbiIsIi1ob3ZlciJdLEopfHxaIT1wP0t8fFohPWI/Q3w9a1syOF0oTlsxXSxXWzFdLFdbTlswXV0sdGhpcyxaKTpLPVdbTlsyXV06KEo9V1tOWzJdXSxiPT1wJiYoSz1XW05bMl1dKSksa1syOF0oNSxXWzFdLFdbTlswXV0sdGhpcyxaKSk9PTEmJmVbTlsxXV0oMzEsTlsyXSx6KSYma1sxMl0oNzcsTlsyXSwhMSx6KX0sdGhpcyksQyksSnx8KFEucHVzaChwKSxiPT1wJiYoSz0hMCkpLEspfHxRLnB1c2goYiksQikuVykmJlEucHVzaC5hcHBseShRLEEpLEopJiZLJiYhQXx8R1szOF0oNCwic3RyaW5nIixRLmpvaW4oIiAiKSx6KSx6fSxOUS5wcm90b3R5cGUucnQ9ZnVuY3Rpb24oQix6LEspe3JldHVybiBCW0s9WyJHSiIsMzAsInUiXSxLWzBdXSYzMiYmKHo9QltLWzJdXSgpKT9lWzRdKEtbMV0sMCx6KTohMX0sTlEpLnByb3RvdHlwZS51Qz1mdW5jdGlvbihCLAp6LEssSixDLGIsQSx2KXsoKGI9KEM9KFFmfHwoUWY9ezE6R1EsODpKWiwxNjpmNiw2NDpYdE59KSxRZilbel0sQi5nZXRBdHRyaWJ1dGUoUGgpfHxudWxsKSk/KHY9Rl9OW2JdfHxDLEE9Qz09ZjZ8fEM9PUpaP3Y6Qyk6QT1DLEo9QSkmJk9bMV0oNzMsSixCLEspfSxGLmNsPWZ1bmN0aW9uKCl7fSxGKS5vdz1mdW5jdGlvbihCLHosSyxKKXtpZigoSj1bNzYsInUiLG51bGxdLEIpLkdKJjMyJiYoSz1CW0pbMV1dKCkpKXtpZigheiYmQi5sNygpKXt0cnl7Sy5ibHVyKCl9Y2F0Y2goQyl7fUIubDcoKSYmQi5uRShKWzJdKX1lWzRdKDI2LDAsSykhPXomJmtbMTJdKEpbMF0sMCx6LEspfX0sRi5RbD1mdW5jdGlvbihCLHosSyxKLEMsYil7aWYoSj0oYj1bInVDIiwidSIsMThdLEspW2JbMV1dKCkpKEM9RFsyNl0oMjAsIi1vcGVuIix0aGlzLHopKSYmbVtiWzJdXSg3NCxDLEssQiksdGhpc1tiWzBdXShKLHosQil9LHt9KTsKZnVuY3Rpb24gWksoQix6LEssSixDLGIsQSx2KXtyZXR1cm4gRFsyN10uY2FsbCh0aGlzLDM2LEIseixLLEosQyxiLEEsdil9CnZhciBTcz0oKCgoKCgoKCgoKCgoKChGPSgoSFsyNF0oMjUsWkssblEpLFpLKS5wcm90b3R5cGUuREc9ZnVuY3Rpb24oQil7KCgoQj1bIlgiLCExLCJjYWxsIl0sWksuWSkuREdbQlsyXV0odGhpcyksdGhpcykuSCYmT1szMV0oMzIsbnVsbCx0aGlzLkgpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuaXNFbmFibGVkKCkpJiZ0aGlzW0JbMF1dLm93KHRoaXMsQlsxXSl9LFpLLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCLHopeygoKHRoaXMuTT1CPXRoaXNbej1bIlgiLCExLDMzXSx6WzBdXS5NdSh0aGlzKSx5KVt6WzJdXSgxNixudWxsLHRoaXNbelswXV0sQiksdGhpc1t6WzBdXSkudE0oQix6WzFdKSx0aGlzLmlzVmlzaWJsZSgpKXx8KFlbMzhdKDM2LEIselsxXSksQiYmT1sxXSg2NSxIMixCLCEwKSl9LFpLLnByb3RvdHlwZSksRikuWj1mdW5jdGlvbihCKXt0aGlzW3RoaXMuVz0oKFpLLlkuWlsoQj1bbnVsbCwianMiLCJjYWxsIl0sQilbMl1dKHRoaXMpLHRoaXMuSCkmJih0aGlzLkguZGlzcG9zZSgpLApkZWxldGUgdGhpcy5IKSxkZWxldGUgdGhpcy5YLEJbMF0pLEJbMV1dPUJbMF19LEYpLlF3PSEwLFpLKS5wcm90b3R5cGUuZz0hMCxaSykucHJvdG90eXBlLlc9bnVsbCxGKS5aTT0wLEYpLlJ1PTI1NSxGLkdKPTM5LFpLLnByb3RvdHlwZSkuZWk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51KCl9LFpLLnByb3RvdHlwZSkuVmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qc30sWksucHJvdG90eXBlKS5DcT1mdW5jdGlvbihCLHosSyxKLEMsYil7dGhpc1soKHRoaXNbKCgoej0oQz0oYj1bIkdKIiwyMywoQj1bNjQsOCwxNl0sNSldLFpLLlkuQ3EuY2FsbCh0aGlzKSx0aGlzLlgpLHRoaXMpLk0sdGhpcykuaXNWaXNpYmxlKCl8fE9bMV0oMSxIMix6LCF0aGlzLmlzVmlzaWJsZSgpKSx0aGlzKS5pc0VuYWJsZWQoKXx8Qy51Qyh6LDEsIXRoaXMuaXNFbmFibGVkKCkpLGIpWzBdXSZCWzFdJiZDLnVDKHosQlsxXSwhISh0aGlzLlpNJkJbMV0pKSx0aGlzW2JbMF1dJkJbMl0mJkMudUMoeixCWzJdLAp0aGlzLklUKCkpLHRoaXNbYlswXV0pJkJbMF0mJkMudUMoeixCWzBdLCEhKHRoaXMuWk0mQlswXSkpLHRoaXMuWCkueGModGhpcyksYlswXV0mLTImJih0aGlzLmcmJmVbMTZdKDIwLHRoaXMsITApLHRoaXNbYlswXV0mMzImJihKPXRoaXMudSgpKSkmJihLPXRoaXMuSHx8KHRoaXMuSD1uZXcgcW0pLG1bNDBdKDExLEssSiksZVszNl0oYlsyXSxlWzM2XShiWzJdLGVbMzZdKDgsWVtiWzFdXSg1MSx0aGlzKSxLLE1yLHRoaXMuWGcpLEosQ1osdGhpcy5ucSksSixKdCx0aGlzLm5FKSl9LEYpLmpzPW51bGwsWkspLnByb3RvdHlwZS5PMz1mdW5jdGlvbihCLHope3RoaXMuUXc9KCh0aGlzLk09KHo9WzE4LCExLCJYcCJdLEI9dGhpcy5YW3pbMl1dKHRoaXMsQikpLHkpWzMzXSh6WzBdLG51bGwsdGhpcy5YLEIpLHRoaXMuWC50TShCLHpbMV0pLEIuc3R5bGUuZGlzcGxheSE9Im5vbmUiKX0sWksucHJvdG90eXBlLmlzVmlzaWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlF3fSxaSykucHJvdG90eXBlLmlzRW5hYmxlZD0KZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuWk0mMSl9LFpLKS5wcm90b3R5cGUuZ2I9ZnVuY3Rpb24oQix6LEssSil7KEs9KHo9dGhpcy5pLFshKEo9WyEwLCJmdW5jdGlvbiIsMzNdLDEpLDEsMl0pLHomJnR5cGVvZiB6LmlzRW5hYmxlZD09SlsxXSYmIXouaXNFbmFibGVkKCl8fCFlWzQ1XSg5LEtbMV0sdGhpcywhQixLWzFdKSl8fChCfHwoeVszNF0oNyxLWzFdLHRoaXMsS1swXSksWVsxNl0oNTksS1syXSx0aGlzLEtbMF0pKSx0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzLlgub3codGhpcyxCKSx5W0pbMl1dKDMwLEtbMV0sdGhpcywhQixLWzFdLEpbMF0pKX0sWkspLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhKHRoaXMuWk0mNCl9LGZ1bmN0aW9uKEIpe3JldHVybiBHWzI5XS5jYWxsKHRoaXMsMyxCKX0pLG5NPShGPShaSy5wcm90b3R5cGUuSGg9ZnVuY3Rpb24oQix6KXsoej1bMzMsMywxNl0sZSlbNDVdKHpbMV0sMSx0aGlzLEIselsyXSkmJnlbelswXV0oMzAsCjEsdGhpcyxCLHpbMl0pfSwoWksucHJvdG90eXBlLlhnPWZ1bmN0aW9uKEIseil7cmV0dXJuIHo9WyExLCJpc0VuYWJsZWQiLCEwXSx0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzW3pbMV1dKCkmJnRoaXMuSGwoQik/KEIucHJldmVudERlZmF1bHQoKSxCLnYoKSx6WzJdKTp6WzBdfSxaSykucHJvdG90eXBlKSxaSy5wcm90b3R5cGUuSks9KChaSy5wcm90b3R5cGUuaj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybigoej0oKEs9WyEwLChDPVsxLDgsNDRdLDE2KSw2NF0sZylbQ1syXV0oNDMsS1tDWzBdXSx0aGlzKSYmdGhpcy5IaCghdGhpcy5JVCgpKSxnW0NbMl1dKDQyLENbMV0sdGhpcykmJmVbNDVdKDE3LENbMF0sdGhpcyxLWzBdLENbMV0pJiZ5WzMzXSg2MCxDWzBdLHRoaXMsS1swXSxDWzFdKSxnW0NbMl1dKDQwLEtbMl0sdGhpcykmJihKPSEodGhpcy5aTSZLWzJdKSxlWzQ1XSgyNSxDWzBdLHRoaXMsSixLWzJdKSYmeVszM10oMzEsQ1swXSx0aGlzLEosS1syXSkpLG5ldyAkTShUdywKdGhpcykpLEIpJiYoei5hbHRLZXk9Qi5hbHRLZXksei5jdHJsS2V5PUIuY3RybEtleSx6Lm1ldGFLZXk9Qi5tZXRhS2V5LHouc2hpZnRLZXk9Qi5zaGlmdEtleSx6LkE9Qi5BLHoudGltZVN0YW1wPUIudGltZVN0YW1wKSxnKVszXSg1Myx0aGlzLHopfSxaSy5wcm90b3R5cGUpLm5xPWZ1bmN0aW9uKCl7Z1s0NF0oNDEsMzIsdGhpcykmJnRoaXMuSksoITApfSxmdW5jdGlvbihCLHope2VbNDVdKCh6PVszMywxLDI4XSx6KVsxXSx6WzFdLHRoaXMsQiwzMikmJnlbelswXV0oelsyXSx6WzFdLHRoaXMsQiwzMil9KSxGLkhsPShaSy5wcm90b3R5cGUuSVQ9ZnVuY3Rpb24oKXtyZXR1cm4hISh0aGlzLlpNJjE2KX0sZnVuY3Rpb24oQil7cmV0dXJuIEIua2V5Q29kZT09MTMmJnRoaXMuaihCKX0pLFpLKTsKaWYoKEYueWw9RFszXS5iaW5kKCgoRi5uRT1mdW5jdGlvbigpe3JldHVybiBtWzQ1XS5jYWxsKHRoaXMsMzMpfSxaSy5wcm90b3R5cGUuUz0oRi5sUz0oWksucHJvdG90eXBlLmw3PWZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5aTSYzMil9LGZ1bmN0aW9uKEIpe3JldHVybiBlWzE1XS5jYWxsKHRoaXMsNyxCKX0pLGZ1bmN0aW9uKEIseixLKXshbVsxM10oMzAsKHo9WzIsMSwhKEs9WzIsMCwidSJdLDEpXSx6WzFdKSx6W0tbMF1dLHRoaXNbS1syXV0oKSxCKSYmZ1szXSg2Myx0aGlzLHd0OCkmJihnWzQ0XSg0MCw0LHRoaXMpJiZ5WzM0XSgxMCx6WzFdLHRoaXMseltLWzBdXSksZ1s0NF0oNDUseltLWzFdXSx0aGlzKSYmWVsxNl0oNTgseltLWzFdXSx0aGlzLHpbS1swXV0pKX0pLFpLLnByb3RvdHlwZSkuST1mdW5jdGlvbihCLHosSyl7Sz1bMzQsKHo9WzIsITEsNF0sMTYpLCEwXSx0aGlzLmlzRW5hYmxlZCgpJiYoZ1s0NF0oNTkselswXSx0aGlzKSYmWVtLWzFdXSg4LHpbMF0sdGhpcywKS1syXSksdGhpcy5pc0FjdGl2ZSgpJiZ0aGlzLmooQikmJmdbNDRdKDU2LHpbMl0sdGhpcykmJnlbS1swXV0oNiwxLHRoaXMselsxXSkpfSxudWxsKSw3MyksRi51az1mdW5jdGlvbihCLHosSyl7KCh6PShLPVsiWCIsInByZXZlbnREZWZhdWx0Iiw1N10sWzIsMCw0XSksdGhpcy5pc0VuYWJsZWQoKSkmJihnWzQ0XSg0NCx6WzBdLHRoaXMpJiZZWzE2XShLWzJdLHpbMF0sdGhpcywhMCksQi5lcS5idXR0b24hPXpbMV18fGRyJiZCLmN0cmxLZXl8fChnWzQ0XSg1OCx6WzJdLHRoaXMpJiZ5WzM0XSg1LDEsdGhpcywhMCksdGhpc1tLWzBdXSYmdGhpc1tLWzBdXS5ydCh0aGlzKSYmdGhpcy51KCkuZm9jdXMoKSkpLEIuZXEpLmJ1dHRvbiE9elsxXXx8ZHImJkIuY3RybEtleXx8QltLWzFdXSgpfSx0eXBlb2Ygbk0pIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSW52YWxpZCBjb21wb25lbnQgY2xhc3MgIituTSk7CmlmKHR5cGVvZiBOUSE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoIkludmFsaWQgcmVuZGVyZXIgY2xhc3MgIitOUSk7CnZhciBCMzM9bVs0OF0oMjgsbk0pLHlpPSgoKCgoKCgoKCgoUlttWVtCMzNdPU5RLDQ1XSgxMywiZ29vZy1jb250cm9sIixmdW5jdGlvbigpe3JldHVybiBuZXcgWksobnVsbCl9KSxPKVsyMV0oMSxZMCxaSyksRj1ZMC5wcm90b3R5cGUsRikuQ3E9ZnVuY3Rpb24oQix6LEssSixDLGIpe3RoaXNbKGI9WyJSIiwzNiw5XSxaSy5wcm90b3R5cGUpLkNxLmNhbGwodGhpcyksdGhpcy5nJiYoQj1ZWzIzXSg1MSx0aGlzKSx0aGlzW2JbMF1dJiZlW2JbMV1dKGJbMl0sZVtiWzFdXSgzLGVbYlsxXV0oMTIsZVtiWzFdXSgxMixlW2JbMV1dKDExLEIsbmV3IHhGKHRoaXNbYlswXV0pLERDLHRoaXMuTWQpLHRoaXNbYlswXV0sazQsdGhpcy5sUyksdGhpc1tiWzBdXSx0VSx0aGlzLlMpLHRoaXNbYlswXV0semYsdGhpcy51ayksdGhpc1tiWzBdXSxLWix0aGlzLkkpLGVbYlsxXV0oMTAsZVtiWzFdXSg3LEIsbmV3IHhGKHRoaXMudSgpKSxEQyx0aGlzLk1kKSxuZXcgV2UoZG9jdW1lbnQpLGEzLHRoaXMuTWQpKSwKYlswXV0mJih0aGlzW2JbMF1dLmlkfHwoQz10aGlzW2JbMF1dLHo9Q04zKCksSj1PWzE5XSgyNCxiWzFdLHRoaXMpKyIuIit6LEMuaWQ9SiksSz10aGlzLnUoKSxPWzFdKDMzLHp3LEssdGhpc1tiWzBdXS5pZCkpfSxGLklUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudj09MH0sRi5mNT1mdW5jdGlvbihCKXtyZXR1cm4oQj1bInYiLCJiQyIsMjddLHRoaXNbQlswXV0pPT0zP2dbQlsyXV0oNCk6dGhpc1tCWzFdXSgzKX0sWTAucHJvdG90eXBlKS5IbD1mdW5jdGlvbihCLHope3JldHVybiB6PVsia2V5Q29kZSIsMzIsITBdLCFCfHxCW3pbMF1dIT16WzFdJiZCW3pbMF1dIT0xMz8hMToodGhpcy5NZChCKSx6WzJdKX0sRikuSks9ZnVuY3Rpb24oQix6KXsoej1bMjAsITEsImNhbGwiXSxaSykucHJvdG90eXBlLkpLW3pbMl1dKHRoaXMsQiksUlsxMl0oelswXSx0aGlzLHpbMV0pfSxGLlFkPWZ1bmN0aW9uKCl7dGhpcy52PT0yfHx0aGlzLmJDKDIpfSxGPVkwLnByb3RvdHlwZSxGKS5iQz1mdW5jdGlvbihCLAp6LEssSil7aWYoQj09KEs9WzIsMywicmVjYXB0Y2hhLWNoZWNrYm94LWNoZWNrZWQiXSxKPVswLCJ2IiwxXSxKKVswXSYmdGhpcy5JVCgpfHxCPT1KWzJdJiZ0aGlzW0pbMV1dPT1KWzJdfHxCPT1LW0pbMF1dJiZ0aGlzW0pbMV1dPT1LW0pbMF1dfHxCPT1LW0pbMl1dJiZ0aGlzW0pbMV1dPT1LW0pbMl1dKXJldHVybiBtWzJdKDQpO3JldHVybigoKChCPT1LW0pbMF1dJiZ0aGlzLkpLKCExKSx0aGlzW0pbMV1dPUIsZylbMl0oMjksQj09SlswXSxLWzJdLHRoaXMpLGcpWzJdKDI4LEI9PUtbSlswXV0sInJlY2FwdGNoYS1jaGVja2JveC1leHBpcmVkIix0aGlzKSxnKVsyXSgyNyxCPT1LW0pbMl1dLCJyZWNhcHRjaGEtY2hlY2tib3gtbG9hZGluZyIsdGhpcyksej10aGlzLnUoKSkmJk9bSlsyXV0oNDgsZjYseixCPT1KWzBdP3U1RDphZEcpLGdbM10oNTEsdGhpcyxqRCksbVsyXSg1KX0sRi51az1mdW5jdGlvbihCLHope1pLW3o9WyJwcm90b3R5cGUiLCEwLDE5XSx6WzBdXS51ay5jYWxsKHRoaXMsCkIpLFJbMTJdKHpbMl0sdGhpcyx6WzFdKX0sRikuZ2I9ZnVuY3Rpb24oQix6KXsoej1bImdiIiwiY2FsbCIsInRhYkluZGV4Il0sWksucHJvdG90eXBlW3pbMF1dW3pbMV1dKHRoaXMsQiksQikmJih0aGlzLnUoKVt6WzJdXT10aGlzW3pbMl1dKX0sRikuTWQ9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1sxN10uY2FsbCh0aGlzLDIsQix6KX0sRikuSGg9ZnVuY3Rpb24oQil7QiYmdGhpcy5JVCgpfHwhQiYmdGhpcy52PT0xfHx0aGlzLmJDKEI/MDoxKX0sRikuYlk9ZnVuY3Rpb24oQil7Qj1bMjIsIk0iLCJJVCJdLHRoaXNbQlsxXV09a1tCWzBdXSgzNyxEWzMyXS5iaW5kKG51bGwsMzApLHtpZDpPWzE5XSg4LDM2LHRoaXMpLHVCOnRoaXMuVyxjaGVja2VkOnRoaXNbQlsyXV0oKSxkaXNhYmxlZDohdGhpcy5pc0VuYWJsZWQoKSxEMzp0aGlzLnRhYkluZGV4fSx2b2lkIDAsdGhpcy5sKX0sRikubDc9ZnVuY3Rpb24oQil7cmV0dXJuKEI9WyJyZWNhcHRjaGEtY2hlY2tib3gtY2xlYXJPdXRsaW5lIiwKImw3IiwiY2FsbCJdLFpLKS5wcm90b3R5cGVbQlsxXV1bQlsyXV0odGhpcykmJiEodGhpcy5pc0VuYWJsZWQoKSYmdGhpcy51KCkmJmVbMTBdKDE1LHRoaXMudSgpLEJbMF0pKX0sbSQoKSksWTE9KE9bOF0oNyw4LGZ1bmN0aW9uKEIpe2Zvcih2YXIgej1bMCwzNiw4OF0sSz03NSxKPXpbMl07Oyl0cnl7aWYoSz09NDcpYnJlYWs7ZWxzZSBpZihLPT0zMSlLPTE4O2Vsc2V7aWYoSz09NTEpcmV0dXJuIEo9elsyXSx2WzFdO2lmKEs9PTE4KUs9US5kb25lPzc6Nzk7ZWxzZSBpZihLPT0xOSlRPXAubmV4dCgpLEs9MTg7ZWxzZSBpZihLPT16WzJdKUs9YiBpbnN0YW5jZW9mIFZiP3pbMV06Njc7ZWxzZSBpZihLPT0yOSl7dmFyIEM9KEo9MSx0eXBlb2YgQT09Im51bWJlciIpP0RbMTJdKDU0LHZbelswXV0sQSk6QSxiPVlbMzNdKDIxLHZbMl0sQixDKTtLPXpbMl19ZWxzZSBpZihLPT03OSl2YXIgQT0oSz0yOSxRLnZhbHVlKTtlbHNlIGlmKEs9PTc1KXt2YXIgdj1bMSxudWxsLCIiXSxwPWdbMTJdKDcsCkcyLmFwcGx5KHZbelswXV0sYXJndW1lbnRzKSksUT1wLm5leHQoKTtLPTMxfWVsc2V7aWYoSz09elsxXSlyZXR1cm4gYjtpZihLPT02NylCPUJbQ10sSz0xOTtlbHNlIGlmKEs9PTcpcmV0dXJuIEhbOF0oMTIsNjYxNykoQil9fX1jYXRjaChaKXtpZihKPT16WzJdKXRocm93IFo7aWYoSj09MSl2YXIgbj0oSz01MSxaKX19KSxORCkoKTtmdW5jdGlvbiBaRShCLHosSyl7cmV0dXJuIG1bNDBdLmNhbGwodGhpcywyLEIseixLKX12YXIgc1lOPShIWzI0XSg1OCxaRSxwUSksUkEpKCk7ClpFLnByb3RvdHlwZS5zdGFydD0oKChaRS5wcm90b3R5cGUuRj1mdW5jdGlvbihCKXsoKEI9W251bGwsInYiLCJjYWxsIl0sdGhpcykuaSYmdGhpc1tCWzFdXSYmUlsxNl0oMSx0aGlzW0JbMV1dKSx0aGlzW0JbMV1dPUJbMF0sdGhpcykuUltCWzJdXSh0aGlzLkEsZVsyOV0oNTgpKX0sWkUpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYhPW51bGx9LFpFKS5wcm90b3R5cGUubTg9ZnVuY3Rpb24oQix6LEspeyhLPVsibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwzNCwyMl0sdGhpcy5pc0FjdGl2ZSgpJiYoQj1EW0tbMV1dKDEsbnVsbCx0aGlzKSx6PW1bS1syXV0oOTAsbnVsbCx0aGlzKSxCJiYheiYmdGhpcy5NW0tbMF1dP1JbMTZdKDUsdGhpcy52KTpCJiZ6P3ouY2FsbCh0aGlzLk0sdGhpcy52KTp0aGlzLk0uY2xlYXJUaW1lb3V0KHRoaXMudikpLHRoaXMpLnY9bnVsbH0sZnVuY3Rpb24oQix6LEssSil7Sz0oKHo9W251bGwsKEo9WzQsIm1velJlcXVlc3RBbmltYXRpb25GcmFtZSIsCjhdLCExKSwyMF0sdGhpcykubTgoKSx0aGlzLmk9elsxXSxEKVszNF0oSlswXSx6WzBdLHRoaXMpLEI9bVsyMl0oODkselswXSx0aGlzKSxLJiYhQiYmdGhpcy5NW0pbMV1dPyh0aGlzLnY9SFs1XSg5MSx0aGlzLk0sc1lOLHRoaXMuWCksdGhpcy5NW0pbMV1dKHpbMF0pLHRoaXMuaT0hMCk6dGhpcy52PUsmJkI/Sy5jYWxsKHRoaXMuTSx0aGlzLlgpOnRoaXMuTS5zZXRUaW1lb3V0KGVbNDBdKEpbMl0sMCx0aGlzLlgpLHpbMl0pfSksWkUucHJvdG90eXBlLlo9ZnVuY3Rpb24oKXt0aGlzLm04KCksWkUuWS5aLmNhbGwodGhpcyl9O2Z1bmN0aW9uIFdkKEIseixLKXtyZXR1cm4ga1szMF0uY2FsbCh0aGlzLDE2LEIseixLKX0KdmFyIFFBPSgoKChGPShIWzI0XSg1OCxXZCxwUSksV2QucHJvdG90eXBlKSxGKS5aPWZ1bmN0aW9uKEIpe2RlbGV0ZSB0aGlzWyhCPVsiWiIsInYiLCJjYWxsIl0sV2QuWSlbQlswXV1bQlsyXV0odGhpcyksdGhpcy5tOCgpLEJbMV1dLGRlbGV0ZSB0aGlzLk19LEYpLnlhPTAsRi5zdGFydD1mdW5jdGlvbihCLHope3RoaXNbKHo9WyJpIiwyLCJ5YSJdLHRoaXMpLm04KCkselsyXV09T1t6WzFdXSg3LHRoaXMuWCxCIT09dm9pZCAwP0I6dGhpc1t6WzBdXSl9LEYpLm04PWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJ5YSIsMCwiaXNBY3RpdmUiXSxCKVsyXV0oKSYma1sxNl0oNjIsdGhpc1tCWzBdXSksdGhpc1tCWzBdXT1CWzFdfSxGLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueWEhPTB9LG51bGwpLG45PW51bGwsSUM9e30sJDQ9KEYuVnc9ZnVuY3Rpb24oKXtyZXR1cm4gZ1szOV0uY2FsbCh0aGlzLDQ4KX0scEwpKCksWjk9R1IoKSxXZz10UE4oKSxFdj10SygpLGc3PUtPKCksCnF2PVpaKCksTjM9UlcoKTtmdW5jdGlvbiBvYigpe3JldHVybiBPWzMwXS5jYWxsKHRoaXMsNCl9CnZhciB6aVo9KCgoSFsyNF0oODEsb2Isb2cpLG9iLnByb3RvdHlwZSkuaT1mdW5jdGlvbigpe3RoaXMudEwocXYpfSxvYikucHJvdG90eXBlLnRMPWZ1bmN0aW9uKEIpe2dbM10oNjIsdGhpcyxCKX0sSFsyNF0oMTksRGQsb2IpLHpjKSgpLEtFaD1kVigpLFZoPW5ldyAoKCgoKCgoKCgoKEhbMjRdKDE3LHN1LCgoKEY9RGQucHJvdG90eXBlLEYucGxheT1mdW5jdGlvbihCLHosSyxKLEMpe2lmKChDPVsidiIsNTksKEo9WzAsMSwhMV0sImVuZFRpbWUiKV0sQil8fHRoaXNbQ1swXV09PUpbMF0pdGhpcy5wcm9ncmVzcz1KWzBdLHRoaXMuY29vcmRzPXRoaXMuTTtlbHNlIGlmKHRoaXNbQ1swXV09PUpbMV0pcmV0dXJuIEpbMl07cmV0dXJuKCh6PSh0aGlzWygoKHRoaXNbbVszMV0oNDcsITAsdGhpcyksdGhpcy5zdGFydFRpbWU9Sz1lWzI5XSgyNiksdGhpc1tDWzBdXT09LTEmJih0aGlzLnN0YXJ0VGltZS09dGhpcy5kdXJhdGlvbip0aGlzLnByb2dyZXNzKSxDWzJdXT10aGlzLnN0YXJ0VGltZSsKdGhpcy5kdXJhdGlvbix0aGlzLnByb2dyZXNzKXx8dGhpcy50TChaOSksdGhpcykudEwoJDQpLHRoaXNbQ1swXV09PS0xKSYmdGhpcy50TChXZyksQ1swXV09SlsxXSxtWzQ4XSg2MCx0aGlzKSkseiBpbiBJQyl8fChJQ1t6XT10aGlzKSxZKVs0NV0oQ1sxXSksZVs0OV0oMixKWzBdLEpbMV0sdGhpcyxLKSwhMH0sRikuWFI9ZnVuY3Rpb24oQix6KXsodGhpcy52PShtWzMxXSgxNSwhMCwoej1bInRMIiwicHJvZ3Jlc3MiLDE4XSx0aGlzKSksMCksQiYmKHRoaXNbelsxXV09MSksRylbMzRdKHpbMl0sMCx0aGlzW3pbMV1dLHRoaXMpLHRoaXNbelswXV0oZzcpLHRoaXNbelswXV0oRXYpfSxGLnBhdXNlPWZ1bmN0aW9uKEIpe3RoaXNbQj1bMzEsInYiLDFdLEJbMV1dPT1CWzJdJiYobVtCWzBdXSgzOSwhMCx0aGlzKSx0aGlzW0JbMV1dPS0xLHRoaXMudEwoTjMpKX0sRi50TD1mdW5jdGlvbihCKXtnWzNdKDYyLHRoaXMsbmV3IHN1KEIsdGhpcykpfSxGKS5aPWZ1bmN0aW9uKEIpe0I9WzAsCiJaIiwhMV0sdGhpcy52PT1CWzBdfHx0aGlzLlhSKEJbMl0pLHRoaXMudEwoS0VoKSxEZC5ZW0JbMV1dLmNhbGwodGhpcyl9LEYuT1g9ZnVuY3Rpb24oKXt0aGlzLnRMKHppWil9LCRNKSksSFsyNF0oODEsbnIsb2IpLG5yKS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseil7WVs4XSgyOCwoej1bNSwiQSIsMjRdLHRoaXMuTSksQil8fCh0aGlzLk0ucHVzaChCKSxIW3pbMF1dKHpbMl0sQixxdix0aGlzW3pbMV1dLCExLHRoaXMpKX0sbnIucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihCLHope21bKHo9WzU3LDI2LCJNIl0seilbMV1dKHpbMF0sMCx0aGlzW3pbMl1dLEIpJiZrWzVdKDE4LDAsdGhpcywhMSx0aGlzLkEsQixxdil9LG5yLnByb3RvdHlwZSkuWj1mdW5jdGlvbihCKXsoKHRoaXNbKEI9WzAsIlkiLCJNIl0sQilbMl1dLmZvckVhY2goZnVuY3Rpb24oeil7ei5kaXNwb3NlKCl9KSx0aGlzKVtCWzJdXS5sZW5ndGg9QlswXSxucilbQlsxXV0uWi5jYWxsKHRoaXMpfSxIWzI0XSg0OSwKYUMsbnIpLGFDLnByb3RvdHlwZSkucGxheT1mdW5jdGlvbihCLHosSyl7aWYodGhpcy5NLmxlbmd0aD09KEs9Wyh6PVswLCExLCEwXSwiWCIpLCJzdGFydFRpbWUiLCJYUiJdLHpbMF0pKXJldHVybiB6WzFdO2lmKEJ8fHRoaXMudj09elswXSl0aGlzW0tbMF1dPHRoaXMuTS5sZW5ndGgmJnRoaXMuTVt0aGlzW0tbMF1dXS52IT16WzBdJiZ0aGlzLk1bdGhpc1tLWzBdXV1bS1syXV0oelsxXSksdGhpc1tLWzBdXT16WzBdLHRoaXMudEwoWjkpO2Vsc2UgaWYodGhpcy52PT0xKXJldHVybiB6WzFdO3JldHVybih0aGlzLnY9KHRoaXMuZW5kVGltZT0oKCh0aGlzLnRMKCQ0KSx0aGlzKS52PT0tMSYmdGhpcy50TChXZyksdGhpcylbS1sxXV09ZVsyOV0oOTApLG51bGwpLDEpLHRoaXMuTVt0aGlzW0tbMF1dXS5wbGF5KEIpLHopWzJdfSxhQykucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKEIpe3RoaXNbQj1bMSwidiIsInBhdXNlIl0sQlsxXV09PUJbMF0mJih0aGlzLk1bdGhpcy5YXVtCWzJdXSgpLAp0aGlzW0JbMV1dPS0xLHRoaXMudEwoTjMpKX0sYUMucHJvdG90eXBlKS5YUj1mdW5jdGlvbihCLHosSyxKKXtpZih0aGlzLmVuZFRpbWU9ZVt0aGlzLnY9KEo9WyExLCJYIiwhMF0sMCksMjldKDQyKSxCKWZvcihLPXRoaXNbSlsxXV07Szx0aGlzLk0ubGVuZ3RoOysrSyl6PXRoaXMuTVtLXSx6LnY9PTAmJnoucGxheSgpLHoudj09MHx8ei5YUihKWzJdKTtlbHNlIHRoaXNbSlsxXV08dGhpcy5NLmxlbmd0aCYmdGhpcy5NW3RoaXNbSlsxXV1dLlhSKEpbMF0pO3RoaXMudEwoZzcpLHRoaXMudEwoRXYpfSxhQy5wcm90b3R5cGUuQT1mdW5jdGlvbihCKXtpZigoQj1bInBsYXkiLCJYIiwidEwiXSx0aGlzLnYpPT0xKWlmKHRoaXNbQlsxXV0rKyx0aGlzW0JbMV1dPHRoaXMuTS5sZW5ndGgpdGhpcy5NW3RoaXNbQlsxXV1dW0JbMF1dKCk7ZWxzZSB0aGlzLmVuZFRpbWU9ZVsyOV0oNTgpLHRoaXMudj0wLHRoaXMuaSgpLHRoaXNbQlsyXV0oRXYpfSxPKVsyMV0oNixsMCxEZCksbDAucHJvdG90eXBlKS5PWD0KZnVuY3Rpb24oQix6LEspeyhCPShLPVswLCJYIiwiT1giXSwtYk4odGhpcy5jb29yZHNbS1swXV0vdGhpc1tLWzFdXS53aWR0aCkqdGhpc1tLWzFdXS53aWR0aCksej0tYk4odGhpcy5jb29yZHNbMV0vdGhpc1tLWzFdXS5oZWlnaHQpKnRoaXNbS1sxXV0uaGVpZ2h0LHRoaXMuQS5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb249QisicHggIit6KyJweCIsRGQucHJvdG90eXBlKVtLWzJdXS5jYWxsKHRoaXMpfSxsMC5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXtEZC5wcm90b3R5cGUuWi5jYWxsKHRoaXMpLHRoaXMuQT1udWxsfSxsMC5wcm90b3R5cGUuaT1mdW5jdGlvbihCKXsoKEI9WyJjYWxsIiwicHJvdG90eXBlIiwhMF0sdGhpcykuRnx8dGhpcy5wbGF5KEJbMl0pLERkKVtCWzFdXS5pW0JbMF1dKHRoaXMpfSxPWzIxXSgyLENxLFkwKSxDcS5wcm90b3R5cGUuZjU9ZnVuY3Rpb24oQix6KXtpZigoej1bNDQsITAsInYiXSx0aGlzW3pbMl1dKT09M3x8dGhpcy5EKXJldHVybiBnWzI3XSgyKTsKcmV0dXJuKEI9Uls3XSh6WzBdKSxlWzQyXSgyNSwzLHRoaXMselsxXSxCKSxCKS5wcm9taXNlfSxDcS5wcm90b3R5cGUuSGg9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7KEs9KFE9WzIsMSwoYj0ocD1bITAsITEsM10sdGhpcyksMCldLGZ1bmN0aW9uKCl7cmV0dXJuIGIuYkMoeil9KSxCKSYmdGhpcy5JVCgpfHwhQiYmdGhpcy52PT1RWzFdfHx0aGlzLkR8fChDPXRoaXMudix6PUI/MDoxLEo9dGhpcy5sNygpLEE9ZVsxNF0oMTQscFtRWzJdXSx0aGlzLHBbUVsyXV0pLHRoaXMudj09cFtRWzBdXT92PWVbNDJdKDI4LHBbUVswXV0sdGhpcyxwW1FbMV1dLHZvaWQgMCwhQik6KHY9bVtRWzBdXSgzKSxBLmFkZCh0aGlzLklUKCk/R1sxN10oNTgscFtRWzJdXSx0aGlzLHBbUVsxXV0pOmVbOV0oMzMscFtRWzFdXSxwW1FbMV1dLEosdGhpcyxDKSkpLEI/QS5hZGQoR1sxN10oNTkscFtRWzJdXSx0aGlzLHBbUVsyXV0sSykpOih2LnRoZW4oSyksQS5hZGQoZVs5XSgxOCxwW1FbMV1dLApwW1FbMl1dLEosdGhpcyx6KSkpLHYudGhlbihmdW5jdGlvbigpe0EucGxheSgpfSxmdW5jdGlvbigpe30pKX0sQ3EucHJvdG90eXBlLkI9ZnVuY3Rpb24oQil7aWYodGhpcy5EPT1CKXRocm93IEVycm9yKEoxKCkpO3RoaXMuRD1CfSxDcSkucHJvdG90eXBlLlFkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe3RoaXMudj09KEE9WyJhZGQiLCh6PShLPXRoaXMsWyEwLCExLDJdKSwwKSwyXSx6W0FbMl1dKXx8dGhpcy5EfHwoYj10aGlzLnYsSj10aGlzLmw3KCksQj1lWzE0XSgxNSx6W0FbMV1dLHRoaXMseltBWzFdXSksdGhpcy52PT0zP0M9ZVs0Ml0oMjQsMyx0aGlzLHpbMV0sdm9pZCAwLHpbQVsxXV0pOihDPW1bQVsyXV0oQVsyXSksQltBWzBdXSh0aGlzLklUKCk/R1sxN10oNTcseltBWzFdXSx0aGlzLHpbMV0pOmVbOV0oQVsyXSx6WzFdLHpbMV0sSix0aGlzLGIpKSksQy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIEsuYkMoMil9KSxCW0FbMF1dKGVbOV0oMSx6WzFdLHpbQVsxXV0selsxXSwKdGhpcyx6W0FbMl1dKSksQy50aGVuKGZ1bmN0aW9uKCl7Qi5wbGF5KCl9LGZ1bmN0aW9uKCl7fSkpfSxDcS5wcm90b3R5cGUpLkNxPWZ1bmN0aW9uKEIpeygoQj1bInJlY2FwdGNoYS1jaGVja2JveC1zcGlubmVyIiwzMSwxNV0sWTApLnByb3RvdHlwZS5DcS5jYWxsKHRoaXMpLHRoaXMuQyl8fCh0aGlzLkM9ZVtCWzFdXSgxNCxCWzBdLHRoaXMpLHRoaXMuRmc9ZVtCWzFdXShCWzJdLCJyZWNhcHRjaGEtY2hlY2tib3gtc3Bpbm5lci1vdmVybGF5Iix0aGlzKSl9LENxLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCKXt0aGlzLk09a1syMl0oKEI9WzE5LCJJVCIsInRhYkluZGV4Il0sNjkpLERbMzJdLmJpbmQobnVsbCwzMSkse2lkOk9bQlswXV0oMzIsMzYsdGhpcyksdUI6dGhpcy5XLGNoZWNrZWQ6dGhpc1tCWzFdXSgpLGRpc2FibGVkOiF0aGlzLmlzRW5hYmxlZCgpLEQzOnRoaXNbQlsyXV0sSU86ITB9LHZvaWQgMCx0aGlzLmwpfSxtWikobmV3IGJtKDI4LDI4KSwicmVjYXB0Y2hhLWNoZWNrYm94LWJvcmRlckFuaW1hdGlvbiIsCjIwLG5ldyB6MygyOCwwLDAsNTYwKSksZTA9bmV3IG1aKG5ldyBibSgyOCwyOCksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXJBbmltYXRpb24iLDEwLG5ldyB6MygyOCw1NjAsMCw4NDApKSxHVD1uZXcgbVoobmV3IGJtKDI4LDI4KSwicmVjYXB0Y2hhLWNoZWNrYm94LWJvcmRlckFuaW1hdGlvbiIsMjAsbmV3IHozKDU2LDAsMjgsNTYwKSksUG49bmV3IG1aKG5ldyBibSgyOCwyOCksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXJBbmltYXRpb24iLDEwLG5ldyB6Myg1Niw1NjAsMjgsODQwKSkscjk9bmV3IG1aKG5ldyBibSgyOCwyOCksInJlY2FwdGNoYS1jaGVja2JveC1ib3JkZXJBbmltYXRpb24iLDIwLG5ldyB6Myg4NCwwLDU2LDU2MCkpLEhuPW5ldyBtWihuZXcgYm0oMjgsMjgpLCJyZWNhcHRjaGEtY2hlY2tib3gtYm9yZGVyQW5pbWF0aW9uIiwxMCxuZXcgejMoODQsNTYwLDU2LDg0MCkpLFhJPW5ldyBtWihuZXcgYm0oMzgsMzApLCJyZWNhcHRjaGEtY2hlY2tib3gtY2hlY2ttYXJrIiwKMjAsbmV3IHozKDMwLDAsMCw2MDApKSx1Wj1uZXcgbVoobmV3IGJtKDM4LDMwKSwicmVjYXB0Y2hhLWNoZWNrYm94LWNoZWNrbWFyayIsMjAsbmV3IHozKDMwLDYwMCwwLDEyMDApKSxPRD1bImJnZGF0YSIsKE9bMjFdKDYsU2QsVCksU2QuUlQ9bFUoKSxDWCksLTNdLHJkPShTZC5wcm90b3R5cGUuVD1SWzQ4XSgxLE9EKSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gUlsyMV0uY2FsbCh0aGlzLDIsQix6LEssSixDLGIsQSx2LHAsUSl9KTtmdW5jdGlvbiBOTihCLHosSyl7cmV0dXJuIGVbMl0uY2FsbCh0aGlzLDgsQix6LEspfQp2YXIgeHI9KChIW05OLnByb3RvdHlwZVthSF09KE5OLnByb3RvdHlwZS54QT0oTk4ucHJvdG90eXBlLlc9KE5OLnByb3RvdHlwZS5jYW5jZWw9KE5OLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4oKEo9bmV3IElwKGZ1bmN0aW9uKEEsdil7Qz0oYj12LEEpfSksWSlbMzddKDc0LDIsZnVuY3Rpb24oQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiB4cj9KLmNhbmNlbCgpOmIoQSksdTJ9LEMsdGhpcyx0aGlzKSxKKS50aGVuKEIseixLKX0sZnVuY3Rpb24oQix6LEssSil7dGhpc1soSj1bIk0iLDM4LCJYIl0sSilbMl1dP3RoaXNbSlswXV1pbnN0YW5jZW9mIE5OJiZ0aGlzW0pbMF1dLmNhbmNlbCgpOih0aGlzLnYmJih6PXRoaXMudixkZWxldGUgdGhpcy52LEI/ei5jYW5jZWwoQik6KHoubC0tLHoubDw9MCYmei5jYW5jZWwoKSkpLHRoaXMubT90aGlzLm0uY2FsbCh0aGlzLkMsdGhpcyk6dGhpcy5PPSEwLHRoaXNbSlsyXV18fChLPW5ldyB4cih0aGlzKSx5WzEzXSg3OCwKITEsdGhpcyksZ1s0NV0oSlsxXSwhMCx0aGlzLCExLEspKSl9KSxmdW5jdGlvbihCLHope2dbNDVdKDM3LCEwLCh0aGlzLkY9ITEsdGhpcyksQix6KX0pLE5OLnByb3RvdHlwZVsiZmluYWxseSJdPWZ1bmN0aW9uKEIseil7cmV0dXJuIE9bNV0oMTAsITAsITEsbmV3IFByb21pc2UoKHo9dGhpcyxmdW5jdGlvbihLLEope1lbMzddKDcyLDIsZnVuY3Rpb24oQyl7QigpLEooQyl9LGZ1bmN0aW9uKEMpeyhCKCksSykoQyl9LHopfSkpKX0sZnVuY3Rpb24oQix6KXsoKHo9WyExLCEwLDEzXSx5KVt6WzJdXSg3Mix6WzBdLHRoaXMpLGcpWzQ1XSg0Mix6WzFdLHRoaXMselsxXSxCKX0pLCEwKSwyNF0oMTksREksTlApLERJKS5wcm90b3R5cGUubWVzc2FnZT11bygpLERJLnByb3RvdHlwZS5uYW1lPXllKCksZnVuY3Rpb24oKXtyZXR1cm4gZ1szN10uY2FsbCh0aGlzLDU2KX0pLGhMPSgoKChIWzI0XSg1MSx4cixOUCkseHIpLnByb3RvdHlwZS5tZXNzYWdlPXFtcSgpLHhyKS5wcm90b3R5cGUubmFtZT0KUWsoKSxoeC5wcm90b3R5cGUpLlg9ZnVuY3Rpb24oKXtkZWxldGUgWE9bdGhpcy52XTt0aHJvdyB0aGlzLk07fSxMRSgpLGZ1bmN0aW9uKEIpe3JldHVybiBrWzE0XS5jYWxsKHRoaXMsMzYsQil9KSxKeU09KEhbMjRdKDU5LHhBLE5QKSxKeU0pfHx7aWQ6RFooKX0sRDk9WyhPWzIxXSgzLCgoKHlBLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKEIpe3JldHVybiB0aGlzLk0udGhlbihmdW5jdGlvbih6KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oSyl7KEImJkIoKSx6KS5pbnZva2UoSywhMSl9KX0pfSx5QSkucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oQix6LEssSixDKXtSWzI2XSgxNCwoKEM9WyhCPVsyLG51bGwsNV0sMCksNDYsInYiXSx3aW5kb3cuYm90Z3VhcmQpJiYod2luZG93LmJvdGd1YXJkPUJbMV0pLHRoaXNbQ1syXV0pLDMsbCkmJihSWzI2XSgxNSx0aGlzW0NbMl1dLDEsbCl8fFJbMjZdKDIzLHRoaXNbQ1syXV0sQltDWzBdXSxsKSk/KEo9Z1tDWzFdXShDWzFdLApCWzFdLGtbNDVdKDksUlsyNl0oMjIsdGhpc1tDWzJdXSwzLGwpKSksUlsyNl0oMTMsdGhpc1tDWzJdXSwxLGwpPyhLPWdbQ1sxXV0oNDQsQlsxXSxrWzQ1XSgxMSxSWzI2XSgxNCx0aGlzW0NbMl1dLDEsbCkpKSx0aGlzLk09SFszMl0oMSwzLEJbMl0sQ1swXSw3LGVbQ1sxXV0oMTcsSykpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHdpbmRvdy5ib3RndWFyZC5iZyhKLGZ1bmN0aW9uKCl7fSl9KSk6UlsyNl0oMTIsdGhpc1tDWzJdXSxCW0NbMF1dLGwpPyh6PWdbN10oNDgsQlsxXSxnW0NbMV1dKDYwLEJbMV0sa1s0NV0oMTQsUlsyNl0oMjEsdGhpc1tDWzJdXSxCW0NbMF1dLGwpKSkpLHRoaXMuTT1uZXcgUHJvbWlzZShmdW5jdGlvbihiKXtiKChEWzI0XSgxMCwiIix6KSxuZXcgd2luZG93LmJvdGd1YXJkLmJnKEosZnVuY3Rpb24oKXt9KSkpfSkpOnRoaXMuTT1Qcm9taXNlLnJlamVjdCgpKTp0aGlzLk09UHJvbWlzZS5yZXNvbHZlKCl9LHlBKS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKEIpeyh0aGlzLk09Cm51bGwsdGhpcykudj1CfSxFcyksVCksMCksSV8sLTFdLGF3PShPWzIxXSg2LChFcy5wcm90b3R5cGUuVD1SWzQ4XSgxLEQ5KSx1RyksVCksQ3I4KCksT1syMV0oNSxQTCxUKSxmdW5jdGlvbihCLHope3JldHVybiBEWzNdLmNhbGwodGhpcywyLHosQil9KSxHQz1mdW5jdGlvbigpe3JldHVybiBlWzldLmNhbGwodGhpcyw5KX0sbWs9KE9bOF0oNyw0NCx5WzM4XS5iaW5kKG51bGwsOCkpLGUpWzM1XSg1NixudWxsLFBMKSxmTT1bMCxJXywtMiwoUEwuUlQ9V2c4KCksQ1gpXSxvSz1bImNvbmYiLDEsQ1gsS1gsMixYTixLWCxOOSxEOSxLWCxbIm1jb25mIixnJCwxLENYLFFULHo0dywtMSxmTSxDWF0sS1gsLTEsMSxLWCwtMyxJXyxLWCwtMixRVCxLWCwodUcucHJvdG90eXBlLlQ9Uls0OF0oNSxmTSksLTIpLDEsS1gsSV8sS1gsLTUsQ1hdLFNlPShQTC5wcm90b3R5cGUuVD1SWzQ4XSg5LG9LKSxWXykoKSxCdD0oZVsyNF0oNTksKGRrLnByb3RvdHlwZS5nZXQ9KGRrLnByb3RvdHlwZS5pbml0PQpmdW5jdGlvbihCLHosSyl7cmV0dXJuIHRoaXMudj1CPShLPVtudWxsLCJNIiw0XSxCPT09dm9pZCAwP25ldyBQTDpCKSwoej1IW0tbMl1dKDkxLDIzLHRoaXMudixsLHZvaWQgMCxlWzM1XS5iaW5kKEtbMF0sMTIpKSkmJih0aGlzW0tbMV1dPW5ldyBtZih6KSksdGhpc30sZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52fSksZGspKSxtMU4oKSksbEQ9dmEoKSxzaz1qd3EoKSxkMz1EeSgpLGtwPUNMKCksdHk9RHAoKSxVdD1OSigpLEtzPXFkKCksQ3M9TGd3KCksQVU9JHcoKSxNTD0oamsoKSxoT0QpKCksdzM9U2woKSxJWT1UZygpLEZuPUxsOCgpLEJuPUtMKCksc3Y9WW0oKSx6VD1lbSgpLFRUPXZBKCksQ2NoPXNWKCksQ1M9S05EKCkseUQ9KHVZLnByb3RvdHlwZS5hZGQ9KHVZLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihCLHope2lmKHRoaXNbej1bImpvaW4iLCJ2IiwiTSJdLHpbMl1dKXJldHVybiB0aGlzW3pbMl1dO3JldHVybigoQj1bXSx0aGlzKVt6WzFdXS5mb3JFYWNoKGZ1bmN0aW9uKEssCkosQyl7KEM9R1swXSg0LEopLEspLmZvckVhY2goZnVuY3Rpb24oYixBKXsoQT1DLGIhPT0iIiYmKEErPSI9IitHWzBdKDcsYikpLEIpLnB1c2goQSl9KX0pLHRoaXMpW3pbMl1dPUJbelswXV0oekwoKSl9LHVZLnByb3RvdHlwZS5zZXQ9KHVZLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oQil7dGhpcy52WyJkZWxldGUiXShCKX0sZnVuY3Rpb24oQix6KXt0aGlzLnYuc2V0KEIsW3pdKX0pLGZ1bmN0aW9uKEIseixLKXsoKEs9dGhpcy52LmdldChCKSl8fHRoaXMudi5zZXQoQixLPVtdKSxLKS5wdXNoKHopfSksa3lOKSgpLGFFPW1UKCksYmtZPWRBKCksaHE9dEpsKCksQXk4PVlPKCksdnBxPXF1KCksVGg9aXooKSxCbD0ocWRaKCksV29oKCksQnUoKSksSzk9TEIoKSxkTz1kOCgpLGtNPW94KCksekU9QmkoKSxVcz1nRygpLFQzaD1nbCgpLGpZRz1OaigpLHU5PShJUCgpLGRHKCkpLGo0PXRBKCksSmE9d2IoKSxwUHE9KFBPKCksaHkoKSksUVl4PShCNWwoKSxrRCgpKSxDOT0oKHlYeCgpLAp6VWgpKCksSkkpKCksbnA4PWhWKCksWms4PW44OCgpLFdFTT0oUEooKSxwb00oKSksZ3B3PVFaKCksTjNaPUtFKCksRng9dXMoKSxPa049eGMoKSxjTj1ZSigpLHhMRD1HRSgpLGx1PW1HKCksYlY9KCRNOCgpLGxsMCkoKSxETDg9dHYoKSxmUWg9akcoKSxyQT1nTCgpLFJVPWloWigpLEFhPVRLKCksdmQ9eXQoKSxURT13TCgpLGpMPWJYKCksWWs9KChuZSgpLE8pWzhdKDgsMTQsWVs0Ml0uYmluZChudWxsLDQpKSxFVSkoKSxQRD12TzgoKSxvcE49QlEoKSxaTz10cSgpLGxjPWZFKCksREU9KE9bOF0oMTAsMjYsR1s0NF0uYmluZChudWxsLDQwKSksQlkoKSksc2g9a3ooKSxBMD1yWFooKSxsMj11NmwoKSxDZz1ZMmwoKSxHdD1LQSgpLEhzPUNJKCksY3Q9aV8oKSxoJD1JaCgpLGc2PVZOOCgpLExNLHJPPShMTT1HbC5yZXF1ZXN0SWRsZUNhbGxiYWNrKT09bnVsbD92b2lkIDA6TE0uYmluZChHbCksVko9c2V0VGltZW91dC5iaW5kKEdsKSxOYT1SZWdFeHAsVzE9T0coKSxsYj1USygpLEZ2Mz0KZ0FNKCksREg9e3N0cmluZ2lmeTpKU09OLnN0cmluZ2lmeSxwYXJzZTpKU09OLnBhcnNlfSxKcT1udWxsLEN5PW51bGwscUg9Y0soKSxpRD12XygpLFJDPTAsUks9cGVyZm9ybWFuY2UseW89UksudGltZU9yaWdpbix3NT1EYXRlLm5vdyxZaj1SSy5ub3cuYmluZChSSyksZTM9RGF0ZSxwSz0oWVszM10oMTcsIiIsZTMsR1syMV0oMTIsODcsIiIpKWluc3RhbmNlb2YgVmImJihlMz17fSxlM1tHWzIxXSgxMSw4NywiIildPWZ1bmN0aW9uKCl7cmV0dXJuIDB9KSxbXSksalk9bnVsbCxuSz0oKHQkLlNpPWZ1bmN0aW9uKEIseixLKXt2YXIgSj1bNTgsMzUsImFwcGx5Il0sQz1HMltKWzJdXSgzLGFyZ3VtZW50cyksYj1ZaigpLEE9bVtKWzFdXShKWzBdLDAseVs5XSgxMywxLHopLGIpO3JldHVybihDPUJbSlsyXV0obnVsbCxlWzMzXSgxMixDKSksUHJvbWlzZSkucmVzb2x2ZShDKS50aGVuKGZ1bmN0aW9uKHYpe0soQSwoZ1szMl0oOTYsMCxBLFlqKCktYiksdikpfSxmdW5jdGlvbih2LHAsClEpe0soQSwoKGdbcD1bIiIsNiwoUT1bMzIsMCwxXSwiOiAiKV0sUVswXV0oODQsUVsxXSxBLFlqKCktYiksZSlbNDNdKDc3LEEsITAsNCksdiBpbnN0YW5jZW9mIEVycm9yP21bMjNdKDI0LHYubmFtZStwWzJdK3YubWVzc2FnZSxBLHBbUVsyXV0pOm1bMjNdKDI1LHBbUVsxXV0rdixBLHBbUVsyXV0pLHYpKX0pLEN9LHQkLmxjPWZ1bmN0aW9uKEIpe3JldHVybiBHWzE5XS5jYWxsKHRoaXMsOCxCKX0sdCQpLmdYPWZ1bmN0aW9uKEIpe3JldHVybiBIWzMzXS5jYWxsKHRoaXMsMSxCKX0sbmV3IE1hcCkscjc9KHQkLkFzPSh0JC5iNT1mdW5jdGlvbihCLHope3JldHVybiBrWzZdLmNhbGwodGhpcywyMix6LEIpfSxmdW5jdGlvbihCKXtyZXR1cm4gR1swXS5jYWxsKHRoaXMsMjUsQil9KSx0JC5hNz0odCQua2Y9KGJkLnByb3RvdHlwZS5MWD1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LHQkLmJTPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIG1bMl0uY2FsbCh0aGlzLDgsQix6LEssSiwKQyl9LHQkLlJEPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gRFsxNV0uY2FsbCh0aGlzLDM3LEIseixLKX0sKGJkLnByb3RvdHlwZS5WZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk8wP3RoaXMuTzA6dGhpcy52LnRvU3RyaW5nKCl9LHQkKS52Rj1mdW5jdGlvbigpe3JldHVybiBSWzFdLmNhbGwodGhpcywyMSl9LGZ1bmN0aW9uKEIpe3JldHVybiBZWzExXS5jYWxsKHRoaXMsMSxCKX0pLHQkLnk1PWZ1bmN0aW9uKEIseil7dmFyIEs9WzMzLCJhcHBseSIsImNvbmNhdCJdO3JldHVybiB0JC5TaVtLWzFdXSh0JCxbQix6LHQkLkFzXVtLWzJdXShlW0tbMF1dKDMsRzJbS1sxXV0oMixhcmd1bWVudHMpKSkpfSxmdW5jdGlvbigpe3JldHVybiBIWzIyXS5jYWxsKHRoaXMsMjIpfSksdCQuWDg9ZnVuY3Rpb24oKXtyZXR1cm4gSFs1XS5jYWxsKHRoaXMsNCl9LG5BKCkpLFZmPW90KCksSGs9SnYoKSxYJD10aGlzO2Z1bmN0aW9uIEpUKCl7cmV0dXJuIGVbMjJdLmNhbGwodGhpcywxNSl9CigoT1s4XSg2LDQ5LHlbMF0uYmluZChudWxsLDUpKSxKVC5wcm90b3R5cGUpLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy52PVtdLHRoaXMuTT1bXX0sSlQucHJvdG90eXBlKS5yZW1vdmU9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4oKHo9Sk04KChDPVsicHJvdG90eXBlIiwoSz10aGlzLk0sITEpLCJ2Il0sSyksQiksej49MCk/KEFycmF5W0NbMF1dLnNwbGljZS5jYWxsKEsseiwxKSxKPSEwKTpKPUNbMV0sSil8fG1bMjZdKDU2LDAsdGhpc1tDWzJdXSxCKX0sSlQucHJvdG90eXBlLkZwPWZ1bmN0aW9uKEIseixLLEosQyl7Zm9yKEs9KEI9W10sQz1bInB1c2giLDEsMF0sdGhpcy5NLmxlbmd0aCktQ1sxXTtLPj1DWzJdOy0tSylCW0NbMF1dKHRoaXMuTVtLXSk7Zm9yKHo9KEo9Q1syXSx0aGlzLnYubGVuZ3RoKTtKPHo7KytKKUJbQ1swXV0odGhpcy52W0pdKTtyZXR1cm4gQn07ZnVuY3Rpb24gUzMoQix6KXtyZXR1cm4gR1s0NV0uY2FsbCh0aGlzLDc3LEIseil9CnZhciBLRz0oSFsyNF0oODksUzMscFEpLGZ0OCgpKSxMRTA9bjgoKTsKKFMzLnByb3RvdHlwZS5ZUz1mdW5jdGlvbihCLHosSyxKKXtpZighKHRoaXNbKHo9RGF0ZVtKPVsiUiIsIlgiLCJub3ciXSxKWzJdXSgpLEopWzBdXSE9bnVsbCYmei10aGlzW0pbMF1dPHRoaXMuZGVsYXkpKXtmb3IoO0RbMTFdKDM3LHRoaXMpPjAmJihLPWtbMF0oMzIsdGhpcy5NKSwhdGhpcy5GKEspKTspdGhpcy5WYSgpO2lmKCFLJiZEWzExXSgyMyx0aGlzKSt0aGlzLnYuc2l6ZTx0aGlzW0pbMV1dJiYoSz10aGlzLkEoKSksQj1LKXRoaXNbSlswXV09eix0aGlzLnYuYWRkKEIpO3JldHVybiBCfX0sKFMzLnByb3RvdHlwZS5BPWZ1bmN0aW9uKCl7cmV0dXJue319LFMzLnByb3RvdHlwZS5aPWZ1bmN0aW9uKEIseil7aWYoUzNbKHo9WyJZIiwidiIsIk0iXSx6KVswXV0uWi5jYWxsKHRoaXMpLHRoaXNbelsxXV0uc2l6ZT4wKXRocm93IEVycm9yKExFMCk7Zm9yKEI9dGhpc1tkZWxldGUgdGhpc1t6WzFdXSx6WzJdXTtCW3pbMl1dLmxlbmd0aCE9PTB8fEJbelsxXV0ubGVuZ3RoIT09CjA7KWcwWzNdKDE4LG51bGwsa1swXSgzMCxCKSk7ZGVsZXRlIHRoaXNbelsyXV19LFMzLnByb3RvdHlwZSkuRj1mdW5jdGlvbihCKXtyZXR1cm4gdHlwZW9mIEIuV0U9PSJmdW5jdGlvbiI/Qi5XRSgpOiEwfSxTMy5wcm90b3R5cGUpLlZhPWZ1bmN0aW9uKEIseixLLEope2Zvcih6PShKPVsxMSwiTSIsIk8iXSx0aGlzW0pbMV1dKTtEW0pbMF1dKDM2LHRoaXMpK3RoaXMudi5zaXplPHRoaXNbSlsyXV07KUI9eixLPXRoaXMuQSgpLEIudi5wdXNoKEspO2Zvcig7RFtKWzBdXSgyMix0aGlzKSt0aGlzLnYuc2l6ZT50aGlzLlgmJkRbSlswXV0oMjAsdGhpcyk+MDspZzBbM10oMTYsbnVsbCxrWzBdKDMxLHopKX0sUzMucHJvdG90eXBlLkFLPWZ1bmN0aW9uKEIseil7KHRoaXMudlt6PVsxMSwiZGVsZXRlIixudWxsXSx6WzFdXShCKSx0aGlzKS5GKEIpJiZEW3pbMF1dKDIxLHRoaXMpK3RoaXMudi5zaXplPHRoaXMuWD90aGlzLk0udi5wdXNoKEIpOmcwWzNdKDE3LHpbMl0sQil9OwpmdW5jdGlvbiBWUChCLHope3JldHVybiBrWzI5XS5jYWxsKHRoaXMsNDUsQix6KX0KT1syMV0oNSwoKFZQLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LChyZC5wcm90b3R5cGUuRFM9ZnVuY3Rpb24oQix6LEssSil7Zm9yKEs9KEI9KEo9KHo9W10sMCksdGhpcykudixCLmxlbmd0aCk7SjxLO0orKyl6LnB1c2goQltKXS52KTtyZXR1cm4gen0scmQpLnByb3RvdHlwZS5GcD1mdW5jdGlvbihCLHosSyxKKXtmb3IoSz0oej0wLEo9KEI9dGhpcy52LFtdKSxCLmxlbmd0aCk7ejxLO3orKylKLnB1c2goQlt6XS5nZXRWYWx1ZSgpKTtyZXR1cm4gSn0scmQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy52Lmxlbmd0aD0wfSxyZC5wcm90b3R5cGUpLnJlbW92ZT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7aWYoej0oQT0oQz0oWj1bInBvcCIsKGI9dGhpcy52LDEpLCJnZXRWYWx1ZSJdLFswLDEsMl0pLGIubGVuZ3RoKSxiW0NbMF1dKSwhKEE8PUNbMF0pKXtpZihBPT1DW1pbMV1dKWIubGVuZ3RoPUNbMF07ZWxzZXtmb3IocD0KKHY9KEI9KEs9KGJbQ1swXV09YltaWzBdXSgpLHRoaXMudiksSykubGVuZ3RoLEMpWzBdLEtbdl0pO3Y8Qj4+Q1taWzFdXTspe2lmKChuPShRPShKPXYqQ1syXStDW1pbMV1dLHYqQ1syXStDWzJdKSxRKTxCJiZLW1FdLnY8S1tKXS52P1E6SixLW25dLnYpPnAudilicmVhazt2PShLW3ZdPUtbbl0sbil9S1t2XT1wfXJldHVybiB6W1pbMl1dKCl9fSxjcykscmQpO2Z1bmN0aW9uIGZhKEIseil7cmV0dXJuIEdbMzRdLmNhbGwodGhpcyw5LEIseil9CigoKCgoRj0oSFsyNF0oMjUsZmEsUzMpLGZhLnByb3RvdHlwZSksRikubl89ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1s0OF0uY2FsbCh0aGlzLDcyLEIseil9LEYuWVM9ZnVuY3Rpb24oQix6LEssSil7aWYoSj1bIllTIiwwLCJpIl0sIUIpcmV0dXJuKEs9ZmEuWVtKWzBdXS5jYWxsKHRoaXMpKSYmdGhpcy5kZWxheSYmKHRoaXMubD1HbC5zZXRUaW1lb3V0KFJ4KHRoaXMubl8sdGhpcyksdGhpcy5kZWxheSkpLEs7KG1bMzhdKDMyLEpbMV0sMSx0aGlzW0pbMl1dLEIseiE9PXZvaWQgMD96OjEwMCksdGhpcykubl8oKX0sRi5BSz1mdW5jdGlvbihCKXtmYS5ZLkFLLmNhbGwodGhpcyxCKSx0aGlzLm5fKCl9LEYuWj1mdW5jdGlvbihCKXt0aGlzLmk9KChmYVtCPVsiWSIsImwiLCJjbGVhclRpbWVvdXQiXSxCWzBdXS5aLmNhbGwodGhpcyksR2xbQlsyXV0odGhpc1tCWzFdXSksdGhpcy5pKS5jbGVhcigpLG51bGwpfSxGKS5WYT1mdW5jdGlvbigpeyhmYS5ZLlZhLmNhbGwodGhpcyksdGhpcykubl8oKX0sCkhbMjRdKDUxLG1fLGZhKSxtXy5wcm90b3R5cGUpLkE9ZnVuY3Rpb24oQix6KXtyZXR1cm4oej1uZXcgcXEsKEI9dGhpcy5XKSYmQi5mb3JFYWNoKGZ1bmN0aW9uKEssSil7ei5oZWFkZXJzLnNldChKLEspfSksdGhpcy5DKSYmKHouQT0hMCksen0sbV8ucHJvdG90eXBlLkY9ZnVuY3Rpb24oQil7cmV0dXJuIUIubSYmIUIuaXNBY3RpdmUoKX0sS2YpLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEtmKS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihCKXtyZXR1cm57dmFsdWU6KEI9dGhpcy52Lm5leHQoKSxCKS5kb25lP3ZvaWQgMDp0aGlzLk0uY2FsbCh2b2lkIDAsQi52YWx1ZSksZG9uZTpCLmRvbmV9fTtmdW5jdGlvbiBHdygpe3JldHVybiBHWzQyXS5jYWxsKHRoaXMsNCl9CnZhciBtMz0oZXMucHJvdG90eXBlLnFqPShHdy5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiBDbH0sZXMucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG1iKHRoaXMudigpKX0sR3cucHJvdG90eXBlLnFqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGVzLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtYih0aGlzLnYoKSl9LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTeCh0aGlzLnYoKSl9KSxmdW5jdGlvbihCKXtyZXR1cm4gZ1syOF0uY2FsbCh0aGlzLDQsQil9KSxtYj0oKChPWzIxXSgyLFN4LEd3KSxTeC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYubmV4dCgpfSxTeC5wcm90b3R5cGUpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG1iKHRoaXMudil9LFN4KS5wcm90b3R5cGUuTT1mdW5jdGlvbigpe3JldHVybiBuZXcgbWIodGhpcy52KX0sZnVuY3Rpb24oQil7cmV0dXJuIGVbMjNdLmNhbGwodGhpcywKMSxCKX0pO09bMjFdKDIsbWIsZXMpLG1iLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWC5uZXh0KCl9O2Z1bmN0aW9uIGx3KEIseil7dmFyIEs9KHRoaXMuTT17fSxbMCwxLCh0aGlzLnY9W10sMildKSxKPVswLDIsIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIl0sQz0odGhpcy5YPUpbS1swXV0sdGhpcy5zaXplPUpbS1swXV0sYXJndW1lbnRzKS5sZW5ndGg7aWYoQz5LWzFdKXtpZihDJUpbS1sxXV0pdGhyb3cgRXJyb3IoSltLWzJdXSk7Zm9yKHZhciBiPUpbS1swXV07YjxDO2IrPUpbS1sxXV0pdGhpcy5zZXQoYXJndW1lbnRzW2JdLGFyZ3VtZW50c1tiK0tbMV1dKX1lbHNlIGlmKEIpaWYoQiBpbnN0YW5jZW9mIGx3KWZvcihDPUIuRFMoKSxiPUpbS1swXV07YjxDLmxlbmd0aDtiKyspdGhpcy5zZXQoQ1tiXSxCLmdldChDW2JdKSk7ZWxzZSBmb3IoYiBpbiBCKXRoaXMuc2V0KGIsQltiXSl9CnZhciBSaU49KEhbKCgoKEY9KCgoKChGPWx3LnByb3RvdHlwZSxGKS5GcD1mdW5jdGlvbihCLHosSyl7Zm9yKEI9KEs9WyJ2Iiw3LCJNIl0seVtLWzFdXSgyNCwwLHRoaXMpLFtdKSx6PTA7ejx0aGlzW0tbMF1dLmxlbmd0aDt6KyspQi5wdXNoKHRoaXNbS1syXV1bdGhpc1tLWzBdXVt6XV0pO3JldHVybiBCfSxGLkRTPWZ1bmN0aW9uKCl7cmV0dXJuIHlbN10oMjMsMCx0aGlzKSx0aGlzLnYuY29uY2F0KCl9LEYpLmhhcz1mdW5jdGlvbihCKXtyZXR1cm4gRFszNl0oNDksQix0aGlzLk0pfSxGLmVxdWFscz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZigoQz1bKEE9WzAsInYiLDddLDApLCEwLCExXSx0aGlzKT09PUIpcmV0dXJuIENbMV07aWYodGhpcy5zaXplIT1CLnNpemUpcmV0dXJuIENbMl07Zm9yKEs9enx8RFszM10uYmluZChudWxsLDQpLHlbQVsyXV0oMjEsQ1tBWzBdXSx0aGlzKSxKPUNbQVswXV07Yj10aGlzW0FbMV1dW0pdO0orKylpZighSyh0aGlzLmdldChiKSxCLmdldChiKSkpcmV0dXJuIENbMl07CnJldHVybiBDWzFdfSxGLmNsZWFyPWZ1bmN0aW9uKEIpeyh0aGlzWyhCPVsiWCIsIk0iLDBdLEIpWzFdXT17fSx0aGlzLnYubGVuZ3RoPUJbMl0sdGhpcy5zaXplPUJbMl0sdGhpcylbQlswXV09QlsyXX0sRikucmVtb3ZlPWZ1bmN0aW9uKEIpe3JldHVybiB0aGlzWyJkZWxldGUiXShCKX0sRilbImRlbGV0ZSJdPWZ1bmN0aW9uKEIseil7cmV0dXJuIERbMzZdKCh6PVszNywyMiwidiJdLHpbMF0pLEIsdGhpcy5NKT8oZGVsZXRlIHRoaXMuTVtCXSwtLXRoaXMuc2l6ZSx0aGlzLlgrKyx0aGlzW3pbMl1dLmxlbmd0aD4yKnRoaXMuc2l6ZSYmeVs3XSh6WzFdLDAsdGhpcyksITApOiExfSxsdykucHJvdG90eXBlLEYuZ2V0PWZ1bmN0aW9uKEIseil7cmV0dXJuIERbMzZdKDYsQix0aGlzLk0pP3RoaXMuTVtCXTp6fSxGKS5zZXQ9ZnVuY3Rpb24oQix6LEspeyhEWzM2XSg1LEIsdGhpc1tLPVsiWCIsMSwiTSJdLEtbMl1dKXx8KHRoaXMuc2l6ZSs9S1sxXSx0aGlzLnYucHVzaChCKSx0aGlzW0tbMF1dKyspLAp0aGlzKVtLWzJdXVtCXT16fSxGLmZvckVhY2g9ZnVuY3Rpb24oQix6LEssSixDLGIpe2ZvcihiPShDPXRoaXMuRFMoKSwwKTtiPEMubGVuZ3RoO2IrKylKPUNbYl0sSz10aGlzLmdldChKKSxCLmNhbGwoeixLLEosdGhpcyl9LEYpLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gbVs2XSg1Nyx0aGlzLnFqKCEwKSkuTSgpfSxGLnZhbHVlcz1mdW5jdGlvbigpe3JldHVybiBtWzZdKDU4LHRoaXMucWooITEpKS5NKCl9LEYpLmVudHJpZXM9ZnVuY3Rpb24oQil7cmV0dXJuIHlbQj10aGlzLDM5XSgyNyx0aGlzLmtleXMoKSxmdW5jdGlvbih6KXtyZXR1cm5beixCLmdldCh6KV19KX0sRikucWo9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gSj0oeVs3XSgyMCwwLHRoaXMpLHRoaXMpLlgsej0wLEs9dGhpcyxDPW5ldyBHdyxDLm5leHQ9ZnVuY3Rpb24oYil7aWYoSiE9Sy5YKXRocm93IEVycm9yKCJUaGUgbWFwIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBpdGVyYXRvciB3YXMgY3JlYXRlZCIpO2lmKHo+PQpLLnYubGVuZ3RoKXJldHVybiBDbDtyZXR1cm57dmFsdWU6KGI9Sy52W3orK10sQik/YjpLLk1bYl0sZG9uZTohMX19LEN9LDI0XSg1MSxXTCxvZyksb2spKCksbm09W2paLE1xLHdtLGlaLGpJLFFOXSxIZz0oSFsyNF0oKFdMLnByb3RvdHlwZS5GPShXTC5wcm90b3R5cGUuWj1mdW5jdGlvbihCKXt0aGlzW3RoaXNbKChXTC5ZW0I9WyJaIiwiY2FsbCIsInYiXSxCWzBdXVtCWzFdXSh0aGlzKSx0aGlzKS5NLmRpc3Bvc2UoKSx0aGlzLk09bnVsbCx0aGlzLlguZGlzcG9zZSgpLHRoaXMuWD1udWxsLEIpWzJdXS5jbGVhcigpLEJbMl1dPW51bGx9LChXTC5wcm90b3R5cGUubD1mdW5jdGlvbihCLHosSyxKLEMpeyhLPShDPVsiWCIsImFib3J0IiwiQnYiXSx0aGlzLnYuZ2V0KEIpKSkmJiFLW0NbMl1dPyhIWzQxXSgxOCx2b2lkIDAsdGhpc1tDWzBdXSx6LEsuR3Esbm0pLHouVz1oWSgwLHRoaXMuQSksei5sPUsudlkoKSx6LkE9Sy55dygpLEtbQ1syXV09eixnWzNdKDU4LHRoaXMsbmV3IFBaKGpaLAp0aGlzLEIseikpLEdbMl0oNDAsQix0aGlzLHopLEsucGkmJnpbQ1sxXV0oKSk6KEo9dGhpcy5NLEoudlsiZGVsZXRlIl0oeikmJkouQUsoeikpfSxXTC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZih0aGlzLnYuZ2V0KChXPVsiWVMiLCJSIiwiaSJdLEIpKSl0aHJvdyBFcnJvcihSaU4pO3JldHVybihaPShuPW5ldyBIZyhLLEMsSixBLHosUngodGhpcy5GLHRoaXMsQiksdiE9PXZvaWQgMD92OnRoaXNbV1syXV0scCxRIT09dm9pZCAwP1E6dGhpc1tXWzFdXSksdGhpcy52LnNldChCLG4pLFJ4KHRoaXMubCx0aGlzLEIpKSx0aGlzLk0pW1dbMF1dKFosYiksbn0sV0wpLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbihCLHosSyxKLEMpe2lmKEM9WyExLCJYIiwiYWJvcnQiXSxLPXRoaXMudi5nZXQoQikpSj1LLkJ2LEsucGk9ITAseiYmKEomJihZWzBdKDIzLHRoaXNbQ1sxXV0sSixubSxLLkdxKSxPWzIyXSgyNiwhMCxKLGpaLGZ1bmN0aW9uKGIpeyhiPQp0aGlzLk0sYi52KVsiZGVsZXRlIl0oSikmJmIuQUsoSil9LENbMF0sdGhpcykpLHRoaXMudi5yZW1vdmUoQikpLEomJkpbQ1syXV0oKX0sZnVuY3Rpb24oQix6LEssSixDLGIsQSl7Qz0oQT1bImNhbGwiLCJEWiIsIlB6Il0sei50YXJnZXQpO3N3aXRjaCh6LnR5cGUpe2Nhc2Ugalo6R1syXSg0MSxCLHRoaXMsQyk7YnJlYWs7Y2FzZSBNcTphOntpZihiPXRoaXMudi5nZXQoQiksQy5NPT03fHxZWzQwXSg4MiwwLEMpfHxiLlptPmIuS18paWYoZ1szXSg1Myx0aGlzLG5ldyBQWihNcSx0aGlzLEIsQykpLGImJihiW0FbMl1dPSEwLGJbQVsxXV0pKXtLPWJbQVsxXV1bQVswXV0oQyx6KTticmVhayBhfUs9bnVsbH1yZXR1cm4gSztjYXNlIHdtOmdbM10oNTIsdGhpcyxuZXcgUFood20sdGhpcyxCLEMpKTticmVhaztjYXNlIFFOOmNhc2UgaVo6KEo9dGhpcy52LmdldChCKSxKLlptKT5KLktfJiZnWzNdKDYyLHRoaXMsbmV3IFBaKGlaLHRoaXMsQixDKSk7YnJlYWs7Y2FzZSBqSTpnWzNdKDU4LAp0aGlzLG5ldyBQWihqSSx0aGlzLEIsQykpfXJldHVybiBudWxsfSksMjYpLFBaLCRNKSxmdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4ga1s0OV0uY2FsbCh0aGlzLDI4LEssQyxCLGIseixKLEEsdixwLFEpfSksemw9ZnVuY3Rpb24oQil7cmV0dXJuIGdbNDFdLmNhbGwodGhpcywxNixCKX0sZzU9KCgoT1syMV0oNCxxNSwoKCgoKEY9SGcucHJvdG90eXBlLEYpLnl3PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn0sRi5SMD1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LEYpLkxYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWH0sRikuQ3U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSxGLlZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudn0sRikudlk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfSxwUSkpLHE1KS5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihCLHope3JldHVybih6PUIuWCk/QVAodGhpcy52LmJpbmQodGhpcykseixCKTp0aGlzLnYoQil9LHE1KS5wcm90b3R5cGUudj0KZnVuY3Rpb24oQil7cmV0dXJuIG5ldyBJcChmdW5jdGlvbih6LEssSixDLGIsQSl7KChiPUJbSj1IWzExXSgoQz10aGlzLEE9WyJ0cyIsMiwiTzAiXSw1NikpLEFbMF1dP0JbQVswXV06QltBWzJdXT9WZjoiIikmJkouc2V0KFZnKCksYiksZVsyMV0oQVsxXSx0aGlzKSkudGhlbihmdW5jdGlvbih2KXtDLk0uc2VuZCh2LEIuSTcudG9TdHJpbmcoKSxCLkxYKCksQi5WZSgpLEosdm9pZCAwLGZ1bmN0aW9uKHAsUSxuLFosVyxOLHgpe2lmKFlbNDBdKChOPVsiKSIsMCwoeD1bMiw0NCwiaW5kZXhPZiJdLG49cC50YXJnZXQsIiIpXSw4MyksTlsxXSxuKXx8Qi5oTSYmSFszNV0oeFswXSx4WzBdLG4pPT00MDApe3RyeXtpZihuLnYpYjp7aWYoKFo9bi52LnJlc3BvbnNlVGV4dCxyNyYmWlt4WzJdXShyNyk9PU5bMV0mJihaPVouc3Vic3RyaW5nKHI3Lmxlbmd0aCkpLFc9WixHbCkuSlNPTil0cnl7UT1HbC5KU09OLnBhcnNlKFcpO2JyZWFrIGJ9Y2F0Y2goZil7fVE9bVt4WzFdXSg3LE5beFswXV0sCiIoIixOWzBdLFcpfWVsc2UgUT12b2lkIDB9Y2F0Y2goZil7UT1bXX16KCgwLEIueWYpKFEpKX1lbHNlIEsobmV3IFVYKEIsbikpfSl9KX0sdGhpcyl9LG5ldyBsdyksVVg9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIERbMTddLmNhbGwodGhpcyw0LEIseixLLEopfSxlRD0oKCgoT1syMV0oNixVWCxOUCksVVgucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3JDb2RlfSxVWC5wcm90b3R5cGUpLkF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWH0sVVgucHJvdG90eXBlKS5uYW1lPWJSKCksTylbMjFdKDEsV2gscFEpLE9bMjFdKDIsWmQsVCksWzAsZyQsLTJdKSxyeVo9KFpkLnByb3RvdHlwZS5UPVJbNDhdKDUsZUQpLFswLENYLC0xXSksUGc9WzAsQ1gsLTIsKE9bMjFdKDUsT3YsVCksT1s4XSg3LDU2LG1bMzddLmJpbmQobnVsbCw3MikpLElfKV0seVE9WzEsKE9bMjFdKDQsKE92LnByb3RvdHlwZS5UPVJbNDhdKDUsUGcpLHZOKSxUKSxPWzhdKDksNDAsZVsyOF0uYmluZChudWxsLAozKSksMyldLGM2PSgodk4uUlQ9KHZOLnByb3RvdHlwZS5zMz1mdW5jdGlvbigpe3JldHVybiBnWzE2XSgyNSxsLHRoaXMsOCxRQil9LE1JKSgpLHZOLnByb3RvdHlwZSkuVD1SWzQ4XSg0LFsiYWlucHV0IixPRCxDWCxvSyxDWCwxLGVELENYLGckLDEsS1gsa3gscnlaLENYLEtYLC0xLDEsS1gsa3gsS1gsLTEsQlosQ1gsQlosQ1gsMixJXywtMSxUYSxQZyxDWCxreCxRVF0pLE9bOF0oMTEsMjgsZnVuY3Rpb24oQix6LEspe3JldHVybihCPUJbSz1bInJlcGxhY2UiLCIsIiw2MF0sS1swXV0oLyhbIidgXSkoPzpcXFwxfC4pKj9cMS9nLCIiKVtLWzBdXSgvW15hLXpBLVpdL2csIiIpLEgpWzBdKEtbMl0sMCx6LDE2KT9rWzM1XSg1MixCKStLWzFdK0I6a1szNV0oNDQsQil9KSxPWzIxXSgxLG1FLFdoKSxmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZVs0XS5jYWxsKHRoaXMsNixCLHosSyxKKX0pOwpmdW5jdGlvbiBqYyhCLHosSyxKLEMpe3JldHVybiBrWzM3XS5jYWxsKHRoaXMsMixCLHosSyxKLEMpfQp2YXIgbDQ9KEhbMjRdKDg5LGpjLG5RKSxxZSkoKSxwMD0oKCgoKEY9KChqYy5wcm90b3R5cGUuRVk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vfSxqYy5wcm90b3R5cGUpLkx1PWZ1bmN0aW9uKCl7fSxqYy5wcm90b3R5cGUuYUQ9ZnVuY3Rpb24oKXt9LGpjLnByb3RvdHlwZSksRikuY0Y9ZnVuY3Rpb24oKXt9LEYuS0Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5DfSxGKS5NdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9LEYpLnpxPWZ1bmN0aW9uKCl7fSxGKS5EMj0oamMucHJvdG90eXBlLlMwPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMl0oMil9LGZ1bmN0aW9uKCl7fSksRi5kNz1mdW5jdGlvbigpe30sRi5DcT1mdW5jdGlvbihCKXt0aGlzLlI9KGpjLllbKEI9WyJDcSIsMjksMl0sQilbMF1dLmNhbGwodGhpcyksTylbQlsyXV0oQlsxXSwicmVjYXB0Y2hhLWFjY2Vzc2libGUtc3RhdHVzIixkb2N1bWVudCl9LEYuWm49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfSxGLlZsPWZ1bmN0aW9uKCl7Z1swXSg2NywKIllvdSBhcmUgdmVyaWZpZWQiLHRoaXMpfSxGLlRxPWZ1bmN0aW9uKEIpe3RoaXNbQj1bITAsIlZlcmlmaWNhdGlvbiBleHBpcmVkLiBDaGVjayB0aGUgY2hlY2tib3ggYWdhaW4uIiwiTHUiXSxCWzJdXShCWzBdLEJbMV0pLGdbMF0oODMsIlZlcmlmaWNhdGlvbiBleHBpcmVkLCBjaGVjayB0aGUgY2hlY2tib3ggYWdhaW4gZm9yIGEgbmV3IGNoYWxsZW5nZSIsdGhpcyl9LHsyOiJyYy1hbmNob3ItZGFyayIsMToicmMtYW5jaG9yLWxpZ2h0In0pLG00PSgoT1s4XSg2LDMsSFs0Ml0uYmluZChudWxsLDI1KSksamMucHJvdG90eXBlKS5DNT1mdW5jdGlvbihCKXsoKEI9WyEwLCJMdSIsIkQyIl0sdGhpcylbQlsxXV0oQlswXSwiVmVyaWZpY2F0aW9uIGNoYWxsZW5nZSBleHBpcmVkLiBDaGVjayB0aGUgY2hlY2tib3ggYWdhaW4uIiksZ1swXSgzNSwiVmVyaWZpY2F0aW9uIGNoYWxsZW5nZSBleHBpcmVkLCBjaGVjayB0aGUgY2hlY2tib3ggYWdhaW4gZm9yIGEgbmV3IGNoYWxsZW5nZSIsCnRoaXMpLHRoaXMpW0JbMl1dKCl9LGJ2KCkpLCRyPXRxKCksSmY9dXQ4KCksQVM9UTIoKSxONT1qQygpLElnPXtub3JtYWw6bmV3IGJtKDMwNCw3OCksY29tcGFjdDpuZXcgYm0oMTY0LDE0NCksaW52aXNpYmxlOm5ldyBibSgyNTYsNjApfSxWZEQ9eyJiYWNrZ3JvdW5kLWNvbG9yIjpFZygpLGJvcmRlcjpWaygpLCJib3gtc2hhZG93IjpybigpLHBvc2l0aW9uOlR5KCksdHJhbnNpdGlvbjpBXygpLG9wYWNpdHk6bWcoKSx2aXNpYmlsaXR5OnZEKCksInotaW5kZXgiOnFDKCksbGVmdDpWSSgpLHRvcDp6WSgpfSxHTUQ9e3dpZHRoOmR0KCksaGVpZ2h0OmR0KCkscG9zaXRpb246YlUoKSx0b3A6VkkoKSxsZWZ0OlZJKCksInotaW5kZXgiOnFDKCksImJhY2tncm91bmQtY29sb3IiOkVnKCksb3BhY2l0eTpydSgpLGZpbHRlcjpRSSgpfSxIa1o9e2JvcmRlcjpVVTgoKSx3aWR0aDptZygpLGhlaWdodDptZygpLHBvc2l0aW9uOlR5KCksInBvaW50ZXItZXZlbnRzIjp0QigpLCJtYXJnaW4tdG9wIjpaRHgoKSwKInotaW5kZXgiOnFDKCl9LGVpRD17Ym9yZGVyOmNCKCksd2lkdGg6bWcoKSxoZWlnaHQ6bWcoKSxwb3NpdGlvbjpUeSgpLCJwb2ludGVyLWV2ZW50cyI6dEIoKSwibWFyZ2luLXRvcCI6YnkoKSwiei1pbmRleCI6cUMoKX0sUGMwPXsiei1pbmRleCI6cUMoKSxwb3NpdGlvbjpNaigpfSwkTFo9e3Zpc2liaWxpdHk6dkQoKSxwb3NpdGlvbjpUeSgpLHdpZHRoOmR0KCksdG9wOnpZKCksbGVmdDpWSSgpLHJpZ2h0OlZJKCksdHJhbnNpdGlvbjpBXygpLG9wYWNpdHk6bWcoKX0scXQ4PXt3aWR0aDpkdCgpLGhlaWdodDpkdCgpLHBvc2l0aW9uOmJVKCksdG9wOlZJKCksbGVmdDpWSSgpLCJ6LWluZGV4IjpxQygpLCJiYWNrZ3JvdW5kLWNvbG9yIjpFZygpLG9wYWNpdHk6TTgoKSxmaWx0ZXI6Y3h4KCl9LGlrOD17bWFyZ2luOmt2KCksdG9wOlZJKCksbGVmdDpWSSgpLHJpZ2h0OlZJKCkscG9zaXRpb246YlUoKSxib3JkZXI6VmsoKSwiei1pbmRleCI6cUMoKSwiYmFja2dyb3VuZC1jb2xvciI6RWcoKX0sCnEzPXt3aWR0aDpONCgpLGhlaWdodDpEeigpLGJvcmRlcjpKVygpLG1hcmdpbjpicCgpLHBhZGRpbmc6VkkoKSxyZXNpemU6dEIoKSxkaXNwbGF5OnRCKCl9LHl5Mz17bWFyZ2luOlZJKCksIm1hcmdpbi10b3AiOkk2OCgpLHBhZGRpbmc6VkkoKSxiYWNrZ3JvdW5kOlVfKCksYm9yZGVyOkpXKCksImJvcmRlci1yYWRpdXMiOkZVKCksaGVpZ2h0Omp2KCksd2lkdGg6Z2IoKX0sTHc9KCgoT1syMV0oNSxKMyx3RSksSjMpLnByb3RvdHlwZS5HPWZ1bmN0aW9uKEIpe0I9WzE2LDQ0LDM5XSxEYXRlLm5vdygpLXRoaXMuVT4xMD8oZVtCWzFdXSg5LC45LG51bGwsdGhpcyksdGhpcy5VPURhdGUubm93KCkpOihrW0JbMF1dKDYwLHRoaXMuQyksdGhpcy5DPU9bMl0oQlsyXSx0aGlzLkcsMTAsdGhpcykpfSxKMykucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7KFlbMzJdKChCPVsiY2FsbCIsbnVsbCwxXSw1KSxCWzFdLHRoaXMpLERbN10oQlsyXSxCWzFdLHRoaXMpLHdFLnByb3RvdHlwZSkuWltCWzBdXSh0aGlzKX0sCkozLnByb3RvdHlwZS5PPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpeygodGhpcy5YPSgoKEM9Z1s0M10oMjcsKHo9ej09PShRPVszNSwiYXBwZW5kQ2hpbGQiLChCPUI9PT12b2lkIDA/QVM6Qiw0MCldLHZvaWQgMCk/ITE6eiwwKSxudWxsLCEwLHRoaXMuaSkpJiZ6JiYodGhpcy5sPUMpLHRoaXMpLmwmJihCPU41KSxCKSx0aGlzKS52PVJCKHNpKSxCPT1BUz8oWVtRWzBdXSgxNix0aGlzLnYsJExaKSxBPVJCKHNpKSxZW1FbMF1dKFFbMl0sQSxxdDgpLHRoaXMudltRWzFdXShBKSxwPVJCKHNpKSxZW1FbMF1dKDQ4LHAsaWs4KSx0aGlzLnZbUVsxXV0ocCkpOkI9PUpmJiYoWVtRWzBdXSg0OCx0aGlzLnYsVmREKSxKPVJCKHNpKSxZW1FbMF1dKDE2LEosR01EKSx0aGlzLnZbUVsxXV0oSiksYj1SQihzaSksWVtRWzBdXSgxNixiLEhrWiksUls4XSg1MSxtNCxiKSx0aGlzLnZbUVsxXV0oYiksSz1SQihzaSksWVtRWzBdXShRWzJdLEssZWlEKSxSWzhdKFFbMF0sbTQsSyksdGhpcy52W1FbMV1dKEspLAp2PVJCKHNpKSxZW1FbMF1dKFFbMl0sdixQYzApLHRoaXMudltRWzFdXSh2KSksdGhpcy5sfHxHWzE1XSg0MikpW1FbMV1dKHRoaXMudil9LFhMbCgpKSxTQj1uZXcgYmIoInNpdGVrZXkiLChiYi5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19LG51bGwpLGFFLCEwKSx5ZjtpZihHbC53aW5kb3cpe3ZhciBZcj1uZXcgeTYod2luZG93LmxvY2F0aW9uLmhyZWYpLGNnPShZci5pIT0oWXIuUj0iIixudWxsKXx8KFlyLk09PSJodHRwcyI/eVsyOV0oMzYsNDQzLFlyKTpZci5NPT0iaHR0cCImJnlbMjldKDI3LDgwLFlyKSksUlsyOF0oMiwxLFlyLnRvU3RyaW5nKCkpKSxTRD1jZ1s0XSxtTT1jZ1szXSxsbj1jZ1sxXSxFRD1jZ1syXSxYWD0iIjt5Zj0oKGxuJiYoWFgrPWxuKyI6IiksbU0pJiYoWFgrPSIvLyIsRUQmJihYWCs9RUQrIkAiKSxYWCs9bU0sU0QmJihYWCs9IjoiK1NEKSksT1syM10oMjYsWFgsMykpfWVsc2UgeWY9bnVsbDsKdmFyIElOPW5ldyBiYigib3JpZ2luIix5ZixUM2gpLHdyPW5ldyBiYigic2l6ZSIsZnVuY3Rpb24oQil7cmV0dXJuIEIuaGFzKGNIKT9MdzpYTSgpfSx2cHEpLHJGPW5ldyBiYigiYmFkZ2UiLG51bGwscFBxKSxKWD1uZXcgYmIoInMiLG51bGwsUVl4KSxCNz1uZXcgYmIoImFjdGlvbiIsbnVsbCxXRU0pLHMyPW5ldyBiYigidXNlcm5hbWUiLG51bGwsZ3B3KSxtQz1uZXcgYmIoImFjY291bnQtdG9rZW4iLG51bGwsRngpLHY3PW5ldyBiYigidmVyaWZpY2F0aW9uLWhpc3RvcnktdG9rZW4iLG51bGwsT2tOKSxscT1uZXcgYmIoIndhZiIsbnVsbCx4TEQpLEVsPW5ldyBiYigiYW5jaG9yLW1zIixudWxsLERMOCksWDg9bmV3IGJiKCJleGVjdXRlLW1zIixudWxsLGZRaCksRUs9bmV3IGJiKCJjYWxsYmFjayIpLGpQPW5ldyBiYigicHJvbWlzZS1jYWxsYmFjayIpLHVuPW5ldyBiYigiZXhwaXJlZC1jYWxsYmFjayIpLGFLPW5ldyBiYigiZXJyb3ItY2FsbGJhY2siKSxFaz1uZXcgYmIoInRhYmluZGV4IiwKIjAiKSxjSD1uZXcgYmIoImJpbmQiKSx5Sj1uZXcgYmIoImlzb2xhdGVkIixudWxsKSxLNT1uZXcgYmIoImNvbnRhaW5lciIpLEM1PW5ldyBiYigiZmFzdCIsITEpLHpkPW5ldyBiYigidHdvZmFjdG9yIiwhMSksZkM9e01COlNCLGwkOklOLG05Om5ldyBiYigiaGwiLCJlbiIsaHEpLFRZUEU6bmV3IGJiKCJ0eXBlIixudWxsLGJrWSksVkVSU0lPTjpuZXcgYmIoInZlcnNpb24iLCJBN0twYUVBU2ZoRGNLMG5YeGdRRXl5WXYiLGRPKSxzMDpuZXcgYmIoInRoZW1lIixudWxsLEF5OCksWjY6d3Isc246ckYsbjk6SlgsTCQ6bmV3IGJiKCJwb29sIixudWxsLG5wOCkscVA6bmV3IGJiKCJjb250ZW50LWJpbmRpbmciLG51bGwsWms4KSx2TDpCNyxIMzpzMixrZDptQyx5Rjp2NyxZSTpscSxZTjpuZXcgYmIoImhwbSIsbnVsbCxsdSksdGs6RWwsVyQ6WDgscjA6RUssems6alAsSzM6dW4sayQ6YUssQmI6RWssZFU6Y0gsVzY6bmV3IGJiKCJwcmVsb2FkIixmdW5jdGlvbihCKXtyZXR1cm4gWVszMF0oOSwKQil9KSxPSjp5SixjMzpLNSxHSTpDNSxBUTp6ZH0sWXQwPSgoaVkucHJvdG90eXBlLmdldD1mdW5jdGlvbihCLHosSyl7cmV0dXJuKHo9dGhpc1soSz1bImdldE5hbWUiLCJ2Il0sSylbMV1dW0JbS1swXV0oKV0pfHwoej1CW0tbMV1dP3R5cGVvZiBCW0tbMV1dPT09ImZ1bmN0aW9uIj9CW0tbMV1dKHRoaXMpOkJbS1sxXV06bnVsbCksen0saVkucHJvdG90eXBlLmhhcz1mdW5jdGlvbihCKXtyZXR1cm4hIXRoaXMuZ2V0KEIpfSxpWS5wcm90b3R5cGUpLnNldD1mdW5jdGlvbihCLHope3RoaXMudltCLmdldE5hbWUoKV09en0sa3EpKCk7CigoKChPWyhYeC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpe2lmKHRoaXMuWDw9KEE9WzU2LChiPVsiIiw2LCExXSwwKSwxXSxBKVsxXSlyZXR1cm4gYlsyXTtmb3IoSz1BW0o9YlsyXSwxXTtLPHRoaXMuQTtLKyspej1ZWzRdKEFbMF0sQiksQz0oeiV0aGlzLnYrdGhpcy52KSV0aGlzLnYsdGhpcy5NW2JOKEMvYltBWzJdXSldW0MlYltBWzJdXV09PUFbMV0mJih0aGlzLk1bYk4oQy9iW0FbMl1dKV1bQyViW0FbMl1dXT1BWzJdLEo9ITApLEI9YltBWzFdXSt6O3JldHVybiBKJiZ0aGlzLlgtLSwhMH0sWHgucHJvdG90eXBlKS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKKXtmb3IoSj1bMjksImkiLDBdLEI9SlsyXSxLPVtdO0I8dGhpc1tKWzFdXTtCKyspej1tW0pbMF1dKDcsdGhpcy5NW0JdKS5yZXZlcnNlKCksSy5wdXNoKFl0MC5jaGFyQXQocGFyc2VJbnQoei5qb2luKCIiKSwyKSkpO3JldHVybiBLLmpvaW4oIiIpfSwyMV0oMyxZVixUKSxZVi5wcm90b3R5cGUpLkN1PQpmdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMix0aGlzLDMsbCl9LE8pWzhdKDYsMTUsSFsxOV0uYmluZChudWxsLDE2KSksWVYpLlJUPXBOKCksWVYucHJvdG90eXBlKS5UPVJbNDhdKDEsWyJmZXRva2VuIixreCxDWCwtMixnJCxDWCxreCwtMSxRVCxDWCwtMl0pO2Z1bmN0aW9uIGhaKCl7cmV0dXJuIGVbMzBdLmNhbGwodGhpcywxKX1mdW5jdGlvbiBicihCLHope3JldHVybiBnWzE0XS5jYWxsKHRoaXMsMSxCLHopfXZhciBkNz0oSFsyNF0oMjYsYnIsaFopLFtdKS5jb25jYXQoMTI4LFJbMzBdKDE4LDAsNjMpKTsKYnIucHJvdG90eXBlLnVwZGF0ZT0oYnIucHJvdG90eXBlLnJlc2V0PShici5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7Zm9yKChiPSh6PXRoaXNbdj0oSz1bXSxbImJsb2NrU2l6ZSIsMjEsImkiXSksdlsyXV0qOCxbNTYsMjYsNjNdKSx0aGlzLk0pPGJbMF0/dGhpcy51cGRhdGUoZDcsYlswXS10aGlzLk0pOnRoaXMudXBkYXRlKGQ3LHRoaXNbdlswXV0tKHRoaXMuTS1iWzBdKSksQz1iWzJdO0M+PWJbMF07Qy0tKXRoaXMuWFtDXT16JjI1NSx6Lz0yNTY7Zm9yKGtbNF0odlsxXSxiWzFdLHRoaXMpLEI9QT0wO0E8dGhpcy5SO0ErKylmb3IoSj0yNDtKPj0wO0otPTgpS1tCKytdPXRoaXMudltBXT4+SiYyNTU7cmV0dXJuIEt9LGZ1bmN0aW9uKEIpeyh0aGlzWyhCPVsiaSIsMjksIk0iXSx0aGlzKVtCWzBdXT0wLEJbMl1dPTAsdGhpcykudj1HbFtBRSgpXT9uZXcgSW50MzJBcnJheSh0aGlzLkEpOm1bQlsxXV0oMTcsdGhpcy5BKX0pLGZ1bmN0aW9uKEIsCnosSyxKLEMsYixBKXtpZigoKEs9KEo9dGhpcy5NLEE9WzIsKEM9MCw0KSwiYmxvY2tTaXplIl0sWzI1NSwibnVtYmVyIiwibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSJdKSx6PT09dm9pZCAwKSYmKHo9Qi5sZW5ndGgpLHR5cGVvZiBCKT09PSJzdHJpbmciKWZvcig7Qzx6Oyl0aGlzLlhbSisrXT1CLmNoYXJDb2RlQXQoQysrKSxKPT10aGlzW0FbMl1dJiYoa1tBWzFdXSgyMiwyNix0aGlzKSxKPTApO2Vsc2UgaWYoWVs4XSg5LEtbMV0sQikpZm9yKDtDPHo7KXtpZighKGI9QltDKytdLEtbMV09PXR5cGVvZiBiJiYwPD1iJiZLWzBdPj1iJiZiPT0oYnwwKSkpdGhyb3cgRXJyb3IoS1tBWzBdXSk7dGhpcy5YW0orK109YixKPT10aGlzW0FbMl1dJiYoa1tBWzFdXSgyMywyNix0aGlzKSxKPTApfWVsc2UgdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBzdHJpbmcgb3IgYXJyYXkiKTsodGhpcy5NPUosdGhpcykuaSs9en0pOwp2YXIgSEksdnQ9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCwKNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIFlpKCl7cmV0dXJuIHlbNDFdLmNhbGwodGhpcyw1KX0KdmFyIEFMPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCwoSFsyNF0oODMsWWksYnIpLDUyODczNDYzNSksMTU0MTQ1OTIyNV0sRU09ZDIoKSxtYz1CYSgpLHZTPXZCKCkscms9QzgoKSxmYj1tZygpLE96PXNndygpLEttPUhSMCgpLFJvPWp6KCksQms9enQtc00sY3k4PSgoKChPWzIxXSgzLCRjLFQpLCRjKS5wcm90b3R5cGUuVD1SWzQ4XSg4LFswLElfLENYLC0xXSksVmEucHJvdG90eXBlKS5zdGFydD1mdW5jdGlvbihCKXtCPVs0NSwiaSIsMTVdLHdpbmRvd1tTZV1bbUcoKV18fCh0aGlzW0JbMV1dPT1udWxsJiYodGhpc1tCWzFdXT1uZXcgTXV0YXRpb25PYnNlcnZlcihPWzM1XSgzMiwuNSx0aGlzKSkpLHRoaXNbQlsxXV0ub2JzZXJ2ZShHW0JbMl1dKEJbMF0pLHthdHRyaWJ1dGVzOiEwLGNoaWxkTGlzdDohMSxzdWJ0cmVlOiEwfSkpfSxWYS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gdGhpcy5NPQoodGhpcy5YPW5ldyAodGhpcy52PShLPSh6PShKPShDPVswLDMsMjldLG5ldyAkYyksa1s2XShDWzJdLDEsSix0aGlzLnYpKSxtWzIzXSgyNix0aGlzLlgudG9TdHJpbmcoKSx6LDIpKSxCPW1bMjNdKDMxLHRoaXMuTS50b1N0cmluZygpLEssQ1sxXSkueWUoKSxDWzBdKSxYeCksbmV3IFh4KSxCfSxlKVsyNF0oNTksVmEpLE9bMjFdKDIsSWksVCksT1s4XSg4LDI3LGVbMTFdLmJpbmQobnVsbCwzMikpLGUpWzM1XSg1OCxudWxsLElpKSxrcj1bMCxGTl0sU3R4PVsoT1s4XSg5LDM4LChJaS5wcm90b3R5cGUuVD1SWzQ4XSg1LGtyKSxEKVsxNl0uYmluZChudWxsLDIpKSwwKSxJXyxUYSxbMCxbMCxRVCwtMV0sa3gsUVQsLTFdXSx0Wj1bMCwoT1syMV0oMSxKSixUKSxPWzhdKDcsMixmdW5jdGlvbihCLHosSyxKKXtyZXR1cm4oSj0oIiIrQilbKHo9eVsxMV0oMzIseixLKSxXMSkrbGJdKHopKSYmSi5sZW5ndGg+PTI/Si5pbmRleDpudWxsfSksSV8pLC0xLDEsSV8sLTEsQUcsQ1gsSV8sU3R4LAprcixJX10sa2s9KE9bOF0oNywxLHlbNDddLmJpbmQobnVsbCwoSkoucHJvdG90eXBlLlQ9Uls0OF0oOSx0WiksNykpKSxIKVsxMl0oMiwxMDAsSkosdFopLFVEPVsoKChPWzIxXSgyLCRzLFQpLCRzLnByb3RvdHlwZSkub3U9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMTMsdGhpcywyKX0sTylbOF0oNywxNyxmdW5jdGlvbihCLHosSyl7cmV0dXJuKHo9eVsxMV0oMzUseiwiZyIrSyksKCIiK0IpW1cxK2xiXSh6KXx8W10pLmxlbmd0aH0pLDApLGckLENYLEZOXSxabT0oT1syMV0oNiwoJHMucHJvdG90eXBlLlQ9Uls0OF0oOSxVRCksJFkpLFQpLGZ1bmN0aW9uKEIseil7cmV0dXJuIHlbMzldLmNhbGwodGhpcyw0NSx6LEIpfSksT0U9ZnVuY3Rpb24oKXtyZXR1cm4gZzBbMV0uY2FsbCh0aGlzLDEpfSxJPSgoKCgoKE9bMjFdKDMsVjgsKCRZLnByb3RvdHlwZS5UPVJbNDhdKDQsWzAsVGEsVUQsQ1hdKSxUKSksVjgucHJvdG90eXBlKS5UPVJbNDhdKDUsWzAsSV8sLTNdKSxPKVsyMV0oNCwKaWwsVCksaWwucHJvdG90eXBlLlQ9Uls0OF0oNSxbMCxJXyxGTixDWCwtNF0pLE8pWzIxXSg1LGpxLFQpLGpxKS5wcm90b3R5cGUuVD1SWzQ4XSgxLFswLGt4LC0yXSksTylbMjFdKDEsQk4sVCksZnVuY3Rpb24oQix6LEspe3ZhciBKPVsxMSwyNSw0MV0sQz1HMi5hcHBseSgzLGFyZ3VtZW50cykubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBPWzI1XSgxLGIpfSk7cmV0dXJuIFJbMTNdKEpbMl0sSFtKWzFdXSg0MixPWzldKDIyLDQpLEIpLFtPW0pbMV1dKDcseiksT1tKWzFdXSg5LEspXS5jb25jYXQoZVszM10oSlswXSxDKSkpfSksTTM9WzAsQ1gsSV8sLTFdLHE3PSgoKChCTi5wcm90b3R5cGUuVD1SWzQ4XSg1LE0zKSxPKVs4XSg2LDIxLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4gZnVuY3Rpb24gcChDLGIsQSx2KXtyZXR1cm4gT1s0MF0oMTYscCxmdW5jdGlvbihRLG4sWil7bj1bMiw3LDRdLFo9WzYsMSwic3BsaXQiXTtzd2l0Y2goUS5NKXtjYXNlIFpbMV06US5LKG5bMF0pLEE9Z1sxMl0oMTEsCnooQigpLFpbMF0pW1pbMl1dKFlGKCkpKSx2PUEubmV4dCgpO2Nhc2UgblsyXTppZih2LmRvbmUpe1EuR18oblswXSk7YnJlYWt9cmV0dXJuIEM9KGI9T1s0OV0uYmluZChudWxsLDMyKSx2LnZhbHVlKSxRLnYoSyhIWzhdKDQwLDY2MTQpKEhbOF0oMzYsMjY3KShDKS50cmltKCkpKSxuW1pbMV1dKTtjYXNlIG5bWlsxXV06dj0oYihRLlgpLEEubmV4dCgpKSxRLkdfKG5bMl0pO2JyZWFrO2Nhc2UgblswXTpRLm0oKSxRLm8oMCl9fSl9KCl9KSxPKVsyMV0oNSxGQSxUKSxGQS5wcm90b3R5cGUuVD1SWzQ4XSg0LFswLElfLC01XSksTylbOF0oMTEsNTIsZ1s0XS5iaW5kKG51bGwsMjcpKSxPWzIxXSgxLE0wLFQpLE9bOF0oMTEsMTAsRFs0NF0uYmluZChudWxsLDE0KSksT1s4XSg5LDE5LE9bMV0uYmluZChudWxsLDQyKSksTTAucHJvdG90eXBlLlQ9Uls0OF0oMSxbMCxJXywtMSxreF0pLFtdKSxIYj12b2lkIDAsWEo9bmV3IFdiLHokPURbMjRdKDMyLEhbOF0oMzIsODcxNikpLG1MOD1EWzI0XSg0OCwKSFs4XSg0MCwyOTIzKSw1MCksTFU9RFsyNF0oMjgsT1s0Nl0oNzMsMCwzNDAzKSx2b2lkIDAsITEpLGwxPWdoKCksbFFoPURbMjRdKDQ0LEhbOF0oNDAsNDAxMSksdm9pZCAwLCEwLGtbMTBdLmJpbmQobnVsbCwyNCkpLEVweD1EWzI0XSgzMixIWzhdKDEyLDE2MDEpLHZvaWQgMCwhMCxrWzEwXS5iaW5kKG51bGwsMjUpKSxYUFk9RFsyNF0oNTIsSFs4XSgzMiwxMzQ1KSx2b2lkIDAsITAsa1sxMF0uYmluZChudWxsLDI4KSksd089RFsyNF0oNjAsSFs4XSg0MCw3OTEyKSksYUY9RFsyNF0oNDAsSFs4XSg0MCwxOTUpLDU2KSxFSD1mdW5jdGlvbigpe3JldHVybiIifSx3Nz10eXBlb2Ygd2luZG93IT09InVuZGVmaW5lZCI/d2luZG93Om51bGwsRGg9dzcmJnc3LmRvY3VtZW50P3c3LmRvY3VtZW50LmN1cnJlbnRTY3JpcHQ6bnVsbCxYQT1PWzI4XSgzNCxPWzI4XSg0NSxPWzI4XSg1NixPWzI4XSgzMixPWzI4XSgzMyxIWzhdKDM2LDExMzEpLE9bMjhdKDU5LE9bMjhdKDM1LEhbOF0oNDQsCjIwMzEpLEhbOF0oMTIsMzYwMykpLE9bMjhdKDU4LEhbOF0oNDQsNjgyMSksT1syOF0oMzMsSFs4XSg0MCw1MDExKSxIWzhdKDMyLDM3NjYpKSkpKSxPWzI4XSgzMyxPWzI4XSgzOCxPWzI4XSgzOSxPWzI4XSg1NCxPWzI4XSg0NixPWzI4XSg0NSxIWzhdKDQ0LDYzOTIpLEhbOF0oMzIsMTk4NSkpLE9bMjhdKDU1LEhbOF0oMzYsMTA2NiksT1syOF0oNDEsSFs4XSgzMiwyNzc4KSxIWzhdKDQ0LDQwODgpKSkpLE9bMjhdKDM1LEhbOF0oMTIsMjQ1MCksSFs4XSgxMiw1Nzg3KSkpLE9bMjhdKDQwLE9bMjhdKDUwLEhbOF0oNDAsNjI4NCksT1syOF0oNDksT1syOF0oMzgsSFs4XSgzNiw5MTc2KSxIWzhdKDQ0LDk1MTkpKSxIWzhdKDEyLDEzNCkpKSxPWzI4XSg1MixIWzhdKDQwLDQ4MSksT1syOF0oMzcsT1syOF0oNDIsSFs4XSgzNiw0NTc3KSxPWzI4XSgzNyxIWzhdKDQwLDc0NzQpLEhbOF0oNDQsOTc5NCkpKSxPWzI4XSg0MixPWzI4XSg0MSxIWzhdKDEyLDkwOTgpLEhbOF0oNDAsNzE0NCkpLApIWzhdKDQwLDM2NzYpKSkpKSksZnVuY3Rpb24oKXtyZXR1cm4gb1UoKX0pLE9bMjhdKDQ0LEhbOF0oMzIsMjcxMyksSFs4XSgzNiw0Nzg4KSkpKSxPWzI4XSg0MyxPWzI4XSg0NCxIWzhdKDEyLDk4NyksSFs4XSgxMiwzMDYpKSxIWzhdKDEyLDkwNTEpKSksT1syOF0oNDMsT1syOF0oNDAsT1syOF0oMzYsSFs4XSgzMiwyNTg4KSxIWzhdKDM2LDM1MjcpKSxIWzhdKDM2LDQzNTEpKSxIWzhdKDMyLDIxNTYpKSksSFs4XSgxMiwxOTc2KSksZkcsaTAsRVIsb1UscVAsSUs9a1s0N10oNCxZayksRlg9WzAsQ1gsSV8sQ1gsTTMsKCgoKHFQPW5ldyBNYXAoW1sicmVjYXB0Y2hhLyIrKElLLmluY2x1ZGVzKGFWKCkpP05rKCk6T2soKSksMjBdLFsicmVjYXB0Y2hhL3JlbGVhc2VzL0E3S3BhRUFTZmhEY0swblh4Z1FFeXlZdiIsMThdLFtJSywxOV0sW2tbNDddKDcsUEQpLDIxXV0pLE8pWzIxXSgxLHg5LFQpLHg5LnByb3RvdHlwZS5UPVJbNDhdKDEsWzAsSV8sLTIsVGEsTTMsSV9dKSxPKVsyMV0oNiwKRmcsVCksRmcucHJvdG90eXBlKS5DdT1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg2OSx0aGlzLEJOLDQpfSxDWCldLHVuTj1IWzEyXSg3LDEwMCwoRmcucHJvdG90eXBlLlQ9Uls0OF0oMSxGWCksRmcpLEZYKTtmdW5jdGlvbiB2SChCLHosSyxKLEMsYil7cmV0dXJuIFJbMTRdLmNhbGwodGhpcyw1LEIseixLLEosQyxiKX0KdmFyIEFxPSgoKEhbMjRdKDgzLHZILGhaKSx2SC5wcm90b3R5cGUpLnJlc2V0PWZ1bmN0aW9uKCl7KHRoaXMudi5yZXNldCgpLHRoaXMudikudXBkYXRlKHRoaXMuTSl9LHZIKS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEIseil7dGhpcy52LnVwZGF0ZShCLHopfSx2SC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKEIseil7cmV0dXJuIHRoaXNbdGhpc1t0aGlzW0I9dGhpc1soej1bInYiLCJYIl0seilbMF1dLmRpZ2VzdCgpLHpbMF1dLnJlc2V0KCkselswXV0udXBkYXRlKHRoaXNbelsxXV0pLHRoaXNbelswXV0udXBkYXRlKEIpLHpbMF1dLmRpZ2VzdCgpfSxJVygpKSxjaD1DOCgpLGR5PWl6KCksc3A9aE4oKSxhUWw9VnEoKSxTSj1JdCgpLEJ4PXh0KCksQVg9Vm4oKSxUTz1LNCgpLHAxPWhPKCksb24saGkwPURbMjRdKDQ4LGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm4oKGcwWyhLPShKPW5ldyAoQz0odj0oYj1bKHA9WzgsMTQsIiJdLCItIiksMSwwXSxnKVtwWzFdXSg0LApzcCkrYlswXStEYXRlLm5vdygpLGtbMzVdKDQ4LEhbMzldKDc0LGJbMV0sZ1twWzFdXSg0LGR5KSl8fHBbMl0pKSxTZXQpLEE9bmV3IHg5LGspWzM1XSg1NixwWzJdK3p8fHBbMl0scFswXSksZSlbNDJdKDcpLDRdKHBbMV0sdixlWzMxXSgxOSksYlsyXSksQikudGhlbj1CLnRoZW58fGZ1bmN0aW9uKCl7fSxCKS50aGVuKGZ1bmN0aW9uKFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSl7Zm9yKGM9KEU9WzEsInllIiw0M10sMzIpO2MhPTkxOylpZihjPT0zNilOPXEudmFsdWUsYz0yMztlbHNle2lmKGM9PTE3KXJldHVybiBHWzMwXSgxMCwwLHYpLGtbNl0oMzEsV1tFWzBdXSxBLEouc2l6ZSlbRVsxXV0oKTtpZihjPT02OSljPTk7ZWxzZSBpZihjPT0yMSluPUEsUT0oSFsyMV0oMTMsQSw1KXx8MCkrV1tFWzBdXSxrWzZdKDI4LDUsbixRKSxjPUVbMl07ZWxzZSBpZihjPT03OCljPVJbMjZdKDIwLFAsNSk9PVdbMF0/MjE6RVsyXTtlbHNlIGlmKGM9PTUpSi5hZGQoTiksWj1oWShIWzIxXSg0NSwKQSwyKXx8MCxIWzIxXSg3LFAsMikpLGtbNl0oMzEsMixBLFopLGM9Nzg7ZWxzZSBpZihjPT0zMSl7Vj1IWzM5XSg3NCwwLE4pfHwiIjt0cnl7cj11bk4oa1s0NV0oMTAsVikpfWNhdGNoKFMpe3I9bmV3IEZnfWM9KFA9ciw1NSl9ZWxzZSBjPT0yMz9jPU4uc3RhcnRzV2l0aCh2KyItIik/MzE6RVswXTpjPT05P2M9cS5kb25lPzE3OjM2OmM9PTUxPyhHWzMwXSg5LDAsTiksYz1FWzBdKTpjPT04Nz8oeD0oeVszM10oMywzLEEpfHwwKStXW0VbMF1dLGtbNl0oMjYsMyxBLHgpLEw9W1AuQ3UoKV0sa1szNF0oMyxXWzJdLEJOLDQsTCxBKSxjPTUxKTpjPT0zMj8oVz1bIi9MIiwxLDE2XSxmPWdbMTJdKDQsZVszNV0oMzAsMCkpLHE9Zi5uZXh0KCksYz02OSk6Yz09NTU/Yz0hUlsyNl0oMjEsUCxXW0VbMF1dKXx8Si5oYXMoTil8fE4uaW5jbHVkZXMoQyk/NTE6NTpjPT1FWzBdPyhxPWYubmV4dCgpLGM9OSk6Yz09RVsyXSYmKGM9ZVsyXSgzMiwzLHZvaWQgMCxQKT09Sz84Nzo1MSl9fSl9LDUyLAohMSksZExZPURbMjRdKDUyLGZ1bmN0aW9uKCl7cmV0dXJuIGtbMTddKDE1LDEsNykudGhlbihmdW5jdGlvbihCKXtyZXR1cm4oQnx8bmV3IEpKKS55ZSgpfSl9LDUxKSxrTXg9RFsyNF0oMzYsZnVuY3Rpb24oQix6KXtyZXR1cm4gQj0oej1bMzUsMjEwNiwzMl0sZVt6WzBdXSgyLDApKSxCLmxlbmd0aD9IWzhdKHpbMl0selsxXSkoQltSW3pbMF1dKDM4LEIubGVuZ3RoKV0pOncyKCl9LDU5KSx0ZHE9RFsyNF0oMjgsZnVuY3Rpb24oKXtyZXR1cm4gSFszOV0oNzMsMSxnWzE0XSg3LGFRbCkpfSw2NyksbXA9ZnVuY3Rpb24oQil7cmV0dXJuIGtbMTJdLmNhbGwodGhpcywyNyxCKX0sVUw4PURbMjRdKDQwLGZ1bmN0aW9uKEIseil7cmV0dXJuKEI9SFsoej1bMzksOCwxNF0seilbMF1dKDc4LDAsZ1t6WzJdXSh6WzFdLEJ4KSksRylbMzBdKHpbMV0sMCxnW3pbMl1dKDIsQngpKSxCfSw3NiksaGY9RFsyNF0oMzYsZnVuY3Rpb24oQil7cmV0dXJuIEhbQj1bOCwwLDM5XSxCWzJdXSg3NCxCWzFdLAp5WzI1XShCWzBdLEJbMV0pKX0sNzApLHNBPVswLDYsKChPWzIxXSgzLGtILFQpLE8pWzIxXSgyLHVFLFQpLENYKV0selA9WzAsYkIsemEsYkIsdGIsc0EsKGtILnByb3RvdHlwZS5UPVJbNDhdKDEsc0EpLDEpLE91XSxNZHE9KChGPSgoKCgoKE9bMjFdKDIsKHVFLnByb3RvdHlwZS5UPVJbNDhdKDgselApLEFNKSxUKSxBTSkucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMV0oMjIsdGhpcywxKX0sQU0pLnByb3RvdHlwZS5hdT1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg3MSx0aGlzLHVFLDMpfSxBTSkucHJvdG90eXBlLmRIPWZ1bmN0aW9uKCl7cmV0dXJuIFlbMzRdKDYsNSx0aGlzKX0sQU0ucHJvdG90eXBlKS5UPVJbNDhdKDEsWzAsT3UsYkIselAsMSxiQl0pLE8pWzIxXSgzLHZFLGJkKSxPWzIxXSg1LHpILFQpLHpILnByb3RvdHlwZSksRi5kSD1mdW5jdGlvbigpe3JldHVybiBZWzM0XSg1LDQsdGhpcyl9LEYuczM9ZnVuY3Rpb24oKXtyZXR1cm4gbVsxXSgyNix0aGlzLAoxKX0sRi5hdT1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg3Myx0aGlzLHVFLDUpfSxGLmxrPWZ1bmN0aW9uKCl7cmV0dXJuIFlbMzRdKDYsMyx0aGlzKX0sRi5UPVJbNDhdKDUsWzAsT3UsYkIsLTIselBdKSxPKVsyMV0oNixlYyxiZCksWzAsZyQsYV8sLTFdKSxLXz1bInJyZXEiLCgoKE9bMjFdKDEsemwsVCksemwucHJvdG90eXBlKS56dT1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgxMix0aGlzLDIxLGwpfSx6bC5wcm90b3R5cGUpLnhuPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDE1LHRoaXMsNyxsKX0semwuUlQ9dGQoKSxDWCksLTEsMSxDWCwtMTQsVGEsTWRxLENYLC0yLDEsQ1gsLTMsa3gsLTFdLEpyPVsoKCgoKCgoKE9bMjFdKDQsKHpsLnByb3RvdHlwZS5UPVJbNDhdKDUsS18pLGNSKSxUKSxjUi5SVD1kbWgoKSxjUi5wcm90b3R5cGUpLlQ9Uls0OF0oNCxbImJyZXEiLEtfXSksTylbMjFdKDUsU3MsYmQpLE9bMjFdKDUsU1QsVCksU1QpLnByb3RvdHlwZS5zYz1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMCwKdGhpcywzLGwpfSxTVC5SVD1DSigpLFNULnByb3RvdHlwZS5UPVJbNDhdKDEsWyJwYXRyZXEiLENYLC0yXSksTylbMjFdKDYsYkYsVCksYkYpLnByb3RvdHlwZS5zYz1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgxNSx0aGlzLDEsbCl9LGJGLlJUPXdxMygpLGJGLnByb3RvdHlwZSkuVD1SWzQ4XSgxLFsicGF0cmVzcCIsQ1hdKSxPWzIxXSgzLHUwLGJkKSxPKVsyMV0oMyx1VCxUKSwwKSxJXywtMV0sQ189WzAsSV8sLShPWzIxXSgyLGhQLCh1VC5wcm90b3R5cGUuVD1SWzQ4XSg4LEpyKSxUKSksMildLHBqPShPWzIxXSg1LGZtLChoUC5wcm90b3R5cGUuVD1SWzQ4XSg0LENfKSxUKSksZnVuY3Rpb24oQil7cmV0dXJuIGVbM10uY2FsbCh0aGlzLDIsQil9KSxiNT1bMCxhaixwWCxKcixwWCxDX10sQXI9WzAsKE9bMjFdKDUsKGZtLnByb3RvdHlwZS5UPVJbNDhdKDQsYjUpLG5aKSxUKSxnJCksSV9dLHZ4PVswLChPWzIxXSg2LChuWi5wcm90b3R5cGUuVD1SWzQ4XSg5LEFyKSxaMCksVCksCktYKSxJX10sVFA9WzAsMywoT1syMV0oNixiVywoWjAucHJvdG90eXBlLlQ9Uls0OF0oOSx2eCksVCkpLE9bMjFdKDUsaTEsVCksQ1gpXSxqaT1bMCxmWCwoYlcucHJvdG90eXBlLlQ9Uls0OF0oNCwoaTEucHJvdG90eXBlLkN1PWZ1bmN0aW9uKCl7cmV0dXJuIFJbNDhdKDcyLHRoaXMsYlcsMil9LFRQKSksVFApXSx3UEc9WzAsQ1gsKGkxLnByb3RvdHlwZS5UPVJbNDhdKDksamkpLC0xKV0scF89WzAsQ1gsKE9bMjFdKDMsV2osVCksUVQpLElfLC0yLGckLENYLFRhLHdQR10sYjE9ZnVuY3Rpb24oKXtyZXR1cm4gSFsyMF0uY2FsbCh0aGlzLDIzKX0sUWQ9WzAsKE9bMjFdKDQsKFdqLnByb3RvdHlwZS5UPVJbNDhdKDgscF8pLHc2KSxUKSxDWCksMSxDWCwtMSxLWF0sbl89WzAsKE9bMjFdKDUscFosKHc2LnByb3RvdHlwZS5UPVJbNDhdKDQsUWQpLFQpKSxUYSkscF8sQUddLElRRz1bKHBaLnByb3RvdHlwZS5UPVJbNDhdKDEsbl8pLDApLEFHXSxaMj1bMCwoT1syMV0oMSxoMSxUKSxBRyksCi0xXSxGRTg9WzAsQ1gsKGgxLnByb3RvdHlwZS5UPVJbNDhdKDQsWjIpLElfKSwtMl0sQjk4PWZ1bmN0aW9uKEIpe3JldHVybiBtWzM2XSg0NyxmdW5jdGlvbih6KXtyZXR1cm4geiBpbnN0YW5jZW9mIEImJiF5WzJdKDMyLHopfSl9KChPWzIxXSgzLHFGLFQpLHFGKSksV3g9WyJwbWV0YSIscF8sRkU4LHZ4LDEsbl8sMSxaMixBcixJUUcselAsamksKHFGLlJUPXFBKCksUWQpXSxnaj1bImV4ZW1jbyIsKCgoKCgoKEY9KCgoKE9bMjFdKChxRi5wcm90b3R5cGUuVD1SWzQ4XSgxLFd4KSw2KSxUJCxUKSxUJC5wcm90b3R5cGUpLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gWVszNF0oNywxLHRoaXMsdm9pZCAwLGwpfSxUJCkuUlQ9bXIoKSxPKVsyMV0oMyxnbSxUKSxnbSkucHJvdG90eXBlLEYpLlUzPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDEyLHRoaXMsMSxsKX0sRikuc2V0VGltZW91dD1mdW5jdGlvbihCKXtyZXR1cm4gSFs0OV0oMjUsMyxCLHRoaXMsdm9pZCAwLGwpfSxGKS5iaz0KZnVuY3Rpb24oKXtyZXR1cm4gUls0OF0oNjksdGhpcyxUJCwxMSxsKX0sRi54bj1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMSx0aGlzLDgsbCl9LEYpLmxrPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDEyLHRoaXMsMTAsbCl9LEYpLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTZdKDg4LGwsdGhpcyw2LFFCKX0sRikuenU9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMTMsdGhpcywxNCxsKX0sRi53Vj1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMCx0aGlzLDEyLGwpfSxGLlZBPWZ1bmN0aW9uKEIpe3JldHVybihCPVs0LDk0LDNdLEgpW0JbMF1dKEJbMV0sQlsyXSx0aGlzLGwsdm9pZCAwLGtbNDZdLmJpbmQobnVsbCwyMSkpfSxnbS5SVD1oaSgpLGJCKSwtMiwxLGU1LElLOF0sTmY9WyJycmVzcCIsQ1gsMSxreCwoVCQucHJvdG90eXBlLlQ9Uls0OF0oNSxnaiksV3gpLENYLGckLE9ELENYLC0yLGdqLENYLEtYLENYLC0xLEtYLDEsYjVdLHNPPShPW2dtLnByb3RvdHlwZS5UPVJbNDhdKDEsCk5mKSwyMV0oMixUWixiZCksYWUpKCksdWQ9SXEoKSxoMD1JVygpLGFvPXl2KCksdTE9YkooKSxhOD1iUygpLENRPW94KCksZ0Y9KEl0KCksQzgoKSxHSSgpKSxnQj0oKHp4bCgpLE9bMjFdKDYsbXAsVCksbXAuUlQ9SFcoKSxtcC5wcm90b3R5cGUuVD1SWzQ4XSg0LFsidWJkcmVxIixLX10pLE8pWzIxXSgzLEVkLFQpLEVkLnByb3RvdHlwZS5zMz1mdW5jdGlvbigpe3JldHVybiBnWzE2XSg4OCxsLHRoaXMsMyxRQil9LGZ1bmN0aW9uKCl7cmV0dXJuIGVbMzldLmNhbGwodGhpcyw0KX0pLHNDaD0oRWQuUlQ9KChFZC5wcm90b3R5cGUueG49ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMTUsdGhpcywxLGwpfSxFZCkucHJvdG90eXBlLndWPWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDIwLHRoaXMsMixsKX0sQlYpKCksRWQucHJvdG90eXBlLlQ9Uls0OF0oMSxbInViZHJlc3AiLENYLC0xLGckLEtYXSksT1syMV0oNSxVaCxiZCksc0NoKXx8e2lkOkJrdygpfSx4aT0oKChGPShPWzIxXSg2LApoRixBcnJheSksaEYucHJvdG90eXBlKSxGKS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe2lmKEI9Qj09PShXPVszMCwzNiwwXSx2b2lkIDApPzEwOkIsUD1bMjY4NDM1NDU2LDEsIkgxIl0sQjwyfHxCPldbUFsxXV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRvU3RyaW5nKCkgcmFkaXggYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iik7aWYodGhpcy5sZW5ndGg9PT0wKUw9bWcoKTtlbHNle2lmKChCJkItUFsxXSk9PT0wKXtpZihDPShBPShiPSh6PShmPSgocD10aGlzLmxlbmd0aCxRPShmPUItUFsxXSxCKS1QWzFdLGY9KGY+Pj5QWzFdJjg1KSsoZiY4NSksZj4+PjIpJjUxKSsoZiY1MSksZj4+PjQmMTUpKyhmJjE1KSx0aGlzKVtQWzJdXShwLVBbMV0pLGd3KGIpKSwocCpXWzBdLUErei1QWzFdKS96KXxXWzJdLHRoaXMuc2lnbiYmQysrLEM+UFswXSl0aHJvdyBFcnJvcigic3RyaW5nIHRvbyBsb25nIik7Zm9yKEo9CihOPShuPVdbMl0scj1DLVBbMV0sQXJyYXkpKCh2PVdbMl0sQykpLFdbMl0pO248cC1QWzFdO24rKylmb3IoSz10aGlzW1BbMl1dKG4pLFo9KEp8Szw8dikmUSxOW3ItLV09YXVbWl0sVj16LXYsdj1XWzBdLVYsSj1LPj4+Vjt2Pj16OylOW3ItLV09YXVbSiZRXSxKPj4+PXosdi09ejtmb3IoSj1iPj4+KE5bci0tXT1hdVsoSnxiPDx2KSZRXSx6LXYpO0ohPT0wOylOW3ItLV09YXVbSiZRXSxKPj4+PXo7aWYodGhpcy5zaWduJiYoTltyLS1dPUk4KCkpLHIhPT0tMSl0aHJvdyBFcnJvcigiaW1wbGVtZW50YXRpb24gYnVnIik7eD1OLmpvaW4oIiIpfWVsc2UgeD1rWzI2XSg3NywxNixCLHRoaXMsITEpO0w9eH1yZXR1cm4gTH0sRikudmFsdWVPZj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJDb252ZXJ0IEpTQkkgaW5zdGFuY2VzIHRvIG5hdGl2ZSBudW1iZXJzIHVzaW5nIGB0b051bWJlcmAuIik7fSxNYXRoLmltdWx8fGZ1bmN0aW9uKEIseil7cmV0dXJuIEIqenwwfSkscnY9KEYuQ2c9KEYuaWs9CmZ1bmN0aW9uKEIpe3JldHVybiBlWzIzXS5jYWxsKHRoaXMsMjIsQil9LEYuQlk9ZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBnWzIxXS5jYWxsKHRoaXMsOSxCLHosSyxKLEMsYil9LChGLlljPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gUlsyMV0uY2FsbCh0aGlzLDMzLEIseixLLEosQyxiKX0sRikuTEU9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1szM10uY2FsbCh0aGlzLDEsQix6KX0sZnVuY3Rpb24oQil7cmV0dXJuIGtbNDldLmNhbGwodGhpcywyNCxCKX0pLDMzNTU0NDMyKSxHbj1ydjw8KEYudkU9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7cmV0dXJuIGtbMTldLmNhbGwodGhpcyw3LEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMpfSw1KSxndz0oRi5HUz1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiB5WzQ4XS5jYWxsKHRoaXMsMixCLHosSyxKLEMpfSxGLlBsPWZ1bmN0aW9uKEIpe3JldHVybiBtWzFdLmNhbGwodGhpcywKMzQsQil9LEYub0w9ZnVuY3Rpb24oQix6KXtyZXR1cm4gZ1szMl0uY2FsbCh0aGlzLDcsQix6KX0saEYucHJvdG90eXBlLnF4PWZ1bmN0aW9uKEIseil7cmV0dXJuIGtbMzVdLmNhbGwodGhpcywzMyxCLHopfSxNYXRoLmNsejMyP2Z1bmN0aW9uKEIpe3JldHVybiBuRyhCKS0yfTpmdW5jdGlvbihCKXtyZXR1cm4gQj09PTA/MzA6MjktKFlDKEI+Pj4wKS9NYXRoLkxOMnwwKXwwfSksT2k9MzIsemN4PSgoKChGPWhGLnByb3RvdHlwZSxGKS5UeD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtyZXR1cm4gZ1s0Nl0uY2FsbCh0aGlzLDcsQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil9LEYuSDE9ZnVuY3Rpb24oQil7cmV0dXJuIHlbNDZdLmNhbGwodGhpcywyMSxCKX0sRi5Xej1mdW5jdGlvbigpe3JldHVybiBZWzIzXS5jYWxsKHRoaXMsMTQpfSxGKS5lMD1mdW5jdGlvbihCLHope3JldHVybiBlWzQzXS5jYWxsKHRoaXMsMTQsQix6KX0sRikubDU9CmZ1bmN0aW9uKEIpe3JldHVybiBZWzIxXS5jYWxsKHRoaXMsMzQsQil9LHpjeHx8e2lkOmZvKCl9KSxLcTA9bVszNl0oNDAsZnVuY3Rpb24oQil7cmV0dXJuIHR5cGVvZiBCPT09ImJpZ2ludCJ9LFp5KCkpLEpVeD1lWzNdKDEsaEYpLEMwMz1lWzNdKDUsUWUpLGJzRD1ic0R8fHtpZDpvaCgpfTttWzM2XSgzNyxmdW5jdGlvbihCKXtyZXR1cm4gb3NZKEpVeCxLcTAsQzAzKShCKX0sdkooKSksZlEoMiwzMiksZlEoMiw0OCksZlEoMiw0OCk7CnZhciBPQSx4SSxBVTg9bmV3IHVHLCRpPXttMDoxLElNOjIsc2Y6KCgoKCgoKChPQT0oeEk9a1s2XSg1OCwxLEFVOCwxOCksa1s2XSgyNSwyLHhJLDQpKSxrKVs2XSgyOSwzLE9BLDApLGtoLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMudj1nWzI0XSg3NywwLFtdKX0sZSlbMjRdKDYzLGtoKSx6Vi5wcm90b3R5cGUpLmk9ZnVuY3Rpb24oKXtmb3IodmFyIEI9WyJhZGQiLCJhcHBseSIsIk0iXSx6PWdbMTJdKDExLEcyW0JbMV1dKDAsYXJndW1lbnRzKSksSz16Lm5leHQoKTshSy5kb25lO0s9ei5uZXh0KCkpdGhpc1tCWzJdXVtCWzBdXShLLnZhbHVlKX0selYucHJvdG90eXBlKS52PWZ1bmN0aW9uKCl7Zm9yKHZhciBCPVsiYXBwbHkiLCJoYXMiLDExXSx6PWdbMTJdKEJbMl0sRzJbQlswXV0oMCxhcmd1bWVudHMpKSxLPXoubmV4dCgpOyFLLmRvbmU7Sz16Lm5leHQoKSlLPUsudmFsdWUsdGhpcy5NW0JbMV1dKEspJiZ0aGlzLk1bImRlbGV0ZSJdKEspfSx6VikucHJvdG90eXBlLnJlc2V0PQpmdW5jdGlvbigpeyh0aGlzLk0uY2xlYXIoKSx0aGlzLlgpLmNsZWFyKCl9LE8pWzIxXSgzLExSLHpWKSxlKVsyNF0oNjAsTFIpLDMpLHYzOjQsSVg6NSxhMzo2LHJNOjcsejg6OCxhWDo5LEdIOjEwLE4kOjExLHBTOjEyfSxwNT0oT1syMV0oMixtMyxUKSxbMSwyLDMsNCw1LDZdKSxEMj1bMCxwNSxzUk4sSkcsTTdELHZaLEswMCx1V10sUGs9e0FDOjAsRHI6MTIyLEw5OjQ0MSxnMTo4NTUsUWM6MzYyLGQwOjQ0NSxIJDoxMDQsSTM6MzE3LGttOjc3NCxYbDo0NTIsZ2Y6MjgsREI6Mjk2LHdNOjMxMyx5eDo4NjMseEI6MTgxLHE3OjQxNix1ZToxMTIsZjM6MjM5LHEkOjI0MCx1cjoxMjEsVDg6NDIyLFJVOjU1NSxrWDozMzgsTkI6OTAsbiQ6MTQ5LFdiOjE5NSxIRTozNTEsamw6NDk5LEpROjE1NyxPMTo1MixvWDoyMTIsdzE6NDE1LFNZOjE0ODksZGc6OTQyLFltOjE5MSxBVTo2OTAseUM6NjEzLGlXOjM2NCxTeTo1ODMsYVU6MTgyNSxBazo1MjUsT246OTMxLHFnOjEwMyxubzozNDUsUCQ6NDM2LApFbToxMzMyLGFQOjIxOCxhZzoxNTMsbEE6MzcyLFczOjMwNixjJDoyOTgsVW46MTQxLHpIOjczLEMkOjk4LGQxOjkzOSxWQzo3NCxmJDoyMDYsd2E6NTEsaUE6NDk2LEZsOjM1MCxPbToyNDYsdjY6NDQ2LGRNOjc4LG9nOjk3MixRRjoxMjg0LFpsOjIxNSxoZToxMjMxLFkkOjE3NyxxQjoxMTExLGV5OjE1MTUsZVM6NTQ2LEo1OjE5NjAseG06NDg5LFNCOjEzMzUsRGw6MTg4NyxaQjoxMzA4LFRsOjMzMSxhcjoxMzUyLEhLOjQwOCxiRTo2NjYsSms6Mjg0LEdrOjg4NCxzMToxMzI0LFQ5OjM0NixHcDoxMDUsSWc6ODAzLFYkOjU5MCxLTjoxNzA0LG9fOjE1MjQsZUI6NjE3LFNsOjU0MSx0cDozNDIsRzk6MTM0LGtlOjY5NixYMjo1MTcsVDA6MzkxLHJVOjExMjQsUjM6MTYxMyxXSzo1Nyx5JDoxNzg4LGJBOjU1NyxYUToxODYxLEIkOjE0MDAsZm86ODM2LFJNOjc2NixiVzoyMDA2LG5HOjI2OCxxOToyMDA0LExTOjE0MDksUSQ6MTMwLElQOjEzNTEsVlE6NzkzLEE1OjE1NzgsTWc6MTYzOSwKdEM6MzI4LEIzOjQ5MixINjo2MzksWE46MTAyMyxtWToxMDQ0LEskOjI2NCxTYzo0NzgsaWU6MzU2LGpCOjY5NyxaeToyNDcsSV86OTg3LG9QOjM4NyxuMzo4MjUsRkc6NDI4LFJYOjI5MyxDUzozMDcsZVk6MTgxNSx1Vzo1MTMsRzA6MTI4NixsRTo3MzgsVW06MTYzNixjTDoxOTU0LFUxOjEzMjgsank6MTU1MCxLUzo4ODksWWQ6MTg2MixnZzoxMzYzLGdhOjM5OCxVZjoxNzg3LGtJOjE4NzYsZk46MTcwMSxkTDo5Myx4TjoxOTQwLHRlOjU0MyxzSjoxMTMxLEZROjkxNixxeToyMDE3LHUkOjg5MSxHODoxMjE2LFVlOjEzOTgsaSQ6MTkwNixsZToyNzEsV0w6MTc4OSxFMDoxMzM2LEpEOjI2NSxocDoxNTE4LGdVOjEzNzIsYmU6NTc4LG5TOjk5OSxZZToxMDA2LFVKOjM3LHFPOjE3MjUsRWU6MTA1NCxKVToxOTY1LHAkOjIwMjAsejA6NTUseGU6MjAxNSxDbzozMzIsSEw6NTg2LFZ4OjE2ODQscmE6OTQ0LHNlOjE2MzUsQ1g6MTAxMSxCSzoxODUwLHdnOjEwOSxqYzoxMjE5LFZjOjE3MCxNUDoxMTEzLApuTjoyMjIsRHg6MTExMCxFZjo2ODksZzA6Mzk5LGVkOjEwMDQsZWM6OTMzLEVKOjMyMixjYjo2NjAsWVg6MTkyMSxqWToxNTg1LHVnOjE1MDEsT2Y6MTQ0OSxIYjoxNjI2LEZZOjI1NSxicjoxMzE2LG8zOjE1MjIsbUw6MjAyNix2JDoxNzE5LFlCOjE1MDIsRTE6NTQ4LGY5Ojk0Nyx4WDoxNzkwLFpROjIwMzIsSzk6NDcyLFhQOjE5NzMsTU86MTU0LGNLOjE5ODAsbVE6MjAxLFJQOjg5Nix3MDoxNDUyLHRROjYzLE5POjEwMTMsSkM6ODgwLHVIOjg3MSxVWjo4NzIseEk6ODczLGFNOjg3NCxOOTo4NzUsVEg6ODc2LFBiOjEyOSxNJDo4MzIsRW46KCgoT1syMV0oNCxPbCwobTMucHJvdG90eXBlLlQ9Uls0OF0oOSxEMiksVCkpLE9sKS5wcm90b3R5cGUuVD1SWzQ4XSg1LFswLGckLFdaLFRhLEQyLElfXSksZlEpKDIsMzEpLDE1NTYpLGZfOjc3Nyxpcjo1NjcsTE46MTU1LEFEOjQ1NSxacjoyMDIxLGhDOjIyLGRhOjIyMyxReDo0MjQsVGs6Mjg1LEM5OjY4NixBcDo3NjcsU1M6NDU3LExvOjIwMjUsCnNtOjExOCx1RToyMjgseGQ6MjksalM6MjAzLGZTOjM0NyxXbDo4MzUsUDM6NjMzLHo5OjgzNyxyZzo3MzMsUVE6OTg5LGdNOjQwMCxHbDo0NDQsRDY6ODQyLERlOjIxNCxYWTo4MCxDTjo0MCxQNjo0ODAsTmc6MTYxLFRwOjE5LFhHOjIwMzQsYiQ6MjAzNSxDMzoxNDU0LGxyOjE4NDYsaFU6MTIxMyxONzo0MTcseCQ6MjAzMSxKcDo3Mjcsd1U6MzYwLFBMOjE1MCx5Yzo2MDQsUnI6NTQ1LGlnOjEwMTksTlA6Mzc1LGhROjc3OSxaZTo2NTksVkY6OTU5LHpJOjg5NSxSXzo0MSxpRTo0Myx6cDoxMDkyLGhrOjU0OSx0RDozNTIsVEk6MTQyMixCTDoxMjc4LG1COjYxNCxGTjoyMDMzLEwzOjEzMTMsaEQ6MTk5NCxrTjoxMzEwLGtCOjI5MSxLbzo2MTl9LHRGPSgoKCgoT1syMV0oMixsSyxUKSxsSy5wcm90b3R5cGUpLlQ9Uls0OF0oOSxbMCxDWCxGTl0pLE9bMjFdKDEsT3kseDApLE95LnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBLPShKPUIuZ2V0KChDPVtudWxsLAo5LDE2XSx0aGlzLk0pKS0oeisxKSx5KVtDWzFdXSgyNCxDWzBdLEopLFJbMTNdKDEyLE9bQ1sxXV0oMjQsdGhpcy5YKSxbSyxnW0NbMl1dKDg2LHRoaXMuaSksZ1tDWzJdXSg3MCx0aGlzLkEpXSl9LE9bMjFdKDUsbm4seDApLG5uLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBKPShLPUIuZ2V0KChDPVsxNiw1OSwxXSx0aGlzKS5NKS0oeitDWzJdKSx5KVs5XSgyMyxudWxsLEspLFJbMTNdKDEzLEhbMjVdKENbMV0sT1s5XSgxNywzMCksdGhpcy5YKSxbSixnW0NbMF1dKDcwLHRoaXMuVildKX0sTylbMjFdKDQsSmgseDApLEpoLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKEs9KEM9WzEzLDksMTZdLEo9Qi5nZXQodGhpcy5NKS0oeisxKSx5W0NbMV1dKDI2LG51bGwsSikpLFIpW0NbMF1dKDgsT1tDWzFdXSgxNCwzMiksW0ssZ1tDWzJdXSgxNCx0aGlzLlYpXSl9LGdbN10oNSkpLCQxPXtsVzowLHZLOjI3OCxSZzo0MzgsUUM6MzQxfSwKUm49TmMoKSx0TD0oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChPWzIxXSg0LHpDLChMRC5wcm90b3R5cGUuUj0oTEQucHJvdG90eXBlLmw9KExELnByb3RvdHlwZS5zdHJpbmdpZnk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtyZXR1cm4oQz0oQT0oYj1nWzEyXSgodj1bNyw2LDBdLHZbMV0pLGdbMjZdKDI2LExSLkooKSwxKSkubmV4dCgpLnZhbHVlLEgpWzE1XSg0MCwxMSksSz1nW3ZbMF1dKDM5KSxnKVt2WzBdXSgzOCksSj1bSFs0NF0oNTEsYiksWVt2WzJdXSgyNCxLLE9bMjVdKDEsYiksT1syNV0oMSxBKSksdkkoQixBLGIseiksWVt2WzJdXSgyNCxDLHZbMl0sdlsyXSksSyxtWzEyXSg0MSxCLCIiKSxDXSxMUi5KKCkpLnYoYiksSn0sZnVuY3Rpb24oKXtyZXR1cm5bXX0pLExELnByb3RvdHlwZS5GPWZ1bmN0aW9uKCl7cmV0dXJuW119LGZ1bmN0aW9uKCl7fSksTEQpKSx6QykucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe3JldHVyblsoTj0KKHo9KHA9KGI9KEo9KFE9KEM9KFc9KHY9Z1sxMl0oNixrWzQyXSg0NSx0aGlzLCh4PShuPVs0ODksMTA1LDE5MV0sWzM0NiwicHEiLCJpIl0pLDExKSkpLEI9di5uZXh0KCkudmFsdWUsdikubmV4dCgpLnZhbHVlLEs9di5uZXh0KCkudmFsdWUsdikubmV4dCgpLnZhbHVlLFo9di5uZXh0KCkudmFsdWUsdikubmV4dCgpLnZhbHVlLHYubmV4dCgpKS52YWx1ZSx2Lm5leHQoKSkudmFsdWUsdi5uZXh0KCkudmFsdWUpLHYubmV4dCgpLnZhbHVlKSx2Lm5leHQoKS52YWx1ZSksQT10aGlzLmRlP1tSWzI3XSgyNSx0aGlzLmosdGhpcy52dix0aGlzLlYpLGdbNDhdKDI2LDgyNSxRKSxJKEIsSyxDLFEsdGhpcy5qKSxuZXcgSmgodGhpcy5udSx0aGlzLmopXTpbXSxnWzQ4XSgxOCw3OCx0aGlzW3hbMl1dKSksZ1s0OF0oMjYseFswXSx0aGlzLkkpLGdbNDhdKDEwLG5bMV0sdGhpcy5tKSxnWzQ4XSgyNiw4MDMsdGhpcy5IKSxnWzQ4XSgyNiw0NTIsdGhpcy5VKSxnWzQ4XSgxOCwxOTYwLHRoaXMuS3EpLApnWzQ4XSgxNiwxODYxLHRoaXMuVzEpLGdbNDhdKDI0LDgzNix0aGlzLlFlKSxnWzQ4XSgyNixuWzJdLHRoaXMuRyksZ1s0OF0oMTgsNjkwLHRoaXMuUyksZ1s0OF0oMTgsNTgzLHRoaXMud2IpLGdbNDhdKDE2LDE1Myx0aGlzLmlZKSxnWzQ4XSgyNCwyMTgsdGhpcy5kViksZ1s0OF0oMjYsblswXSx0aGlzLkQpLGdbNDhdKDE2LDEzMzUsdGhpcy5sWSksZ1s0OF0oMTgsNTEsdGhpcy5CKSxnWzQ4XSgyNCwxODg3LHRoaXMuSk8pLGdbNDhdKDE4LDE0MSx0aGlzLkwpLGdbNDhdKDE2LDMzMSx0aGlzLmZxKSxnWzQ4XSgyNiwxMzA4LHRoaXMuekopLGdbNDhdKDI2LDQwOCx0aGlzLkIxKSxnWzQ4XSgyNiwzMTMsdGhpcy5XKSxnWzQ4XSgyNiwzMDYsdGhpcy5QKSxnWzQ4XSgxNiw1Nyx0aGlzLlhnKSxnWzQ4XSgxNiwxNzg4LHRoaXMua0opLGdbNDhdKDI0LDU1Nyx0aGlzLm5xKSxnWzQ4XSgxMCwzNjIsdGhpc1t4WzFdXSksZ1s0OF0oMTYsMTgxNSx0aGlzLkUzKSxnWzQ4XSgyNiwzMDcsdGhpcy5NeSksCllbMTJdKDE4LHRoaXMuTSx0aGlzLkkpLHNnKHRoaXMuTSx0aGlzLk0pLGMkKHRoaXMuWCx0aGlzW3hbMl1dKSxjJCh0aGlzLkEsdGhpc1t4WzJdXSksSFs0NF0oNTUsdGhpcy5BTCksbVsxMl0oMzYsdGhpcy5vLDApLG1bMTJdKDQ4LHRoaXMuQywwKSxtWzEyXSg0MSxiLEMxKCkpLG1bMTJdKDM2LHAsWXooKSksZ1s0OF0oMjYsMTQwOSx6KSxnWzQ4XSgyNiwzMTMsTiksbVs5XSgyNCwwLGIsTix0aGlzLHosNTkwLHRoaXMuZyxwKSxtWzldKDIyLDAsYixOLHRoaXMseiwxNzA0LHRoaXMuWEMscCksbVs5XSgyNiwwLGIsTix0aGlzLHosMTUyNCx0aGlzLkRNLHApLFJbMjddKDI5LHRoaXMuSyx0aGlzLkJoLHRoaXMuViksZ1s0OF0oMjQsMTgxLEspLGdbNDhdKDEwLDYxNyxDKSxnWzQ4XSgxOCwyMDA0LFopLFlbMTJdKDMsQix0aGlzLlUpLFJbMTldKDQxLEssSyxCKSxJKEIsSyxDLFosdGhpcy5LKSxuZXcgSmgodGhpcy55QSx0aGlzLkspLEEsUlsyN10oMjYsSix0aGlzLk1qLHRoaXMuViksCmdbNDhdKDI0LDEzNCxXKSxtWzEyXSg0OCxCLDApLGMkKEosVyxKLEIpLEhbNDRdKDYzLEIpLEhbNDRdKDU0LFcpLEhbNDRdKDQzLEspLEhbNDRdKDQyLEMpLEhbNDRdKDU5LFopLEhbNDRdKDUxLFEpLEhbNDRdKDYzLEopLEhbNDRdKDU4LGIpLEhbNDRdKDQ3LHApLEhbNDRdKDQzLHopLEhbNDRdKDQ2LE4pXX0sekMucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCl7cmV0dXJuWyhWPShBPSh6PShuPShMPVsoZj0oYj0oSz0ocj0ocD0ocT0odj0oUD0oRT0oQj0oWj0oQz0oVz0oSj0oUT0oUz1nWzEyXSgzLChjPShkPVsyNSw3MiwzOF0sWzEwLDEsMF0pLGtbNDJdKDYyLHRoaXMsMTYpKSksUy5uZXh0KCkpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKSkudmFsdWUsUykubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSx4PVMubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKSkudmFsdWUsClMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksdT1TLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksTj1TLm5leHQoKS52YWx1ZSxYPVMubmV4dCgpLnZhbHVlLGE9Uy5uZXh0KCkudmFsdWUsZ1s3XSgzNikpLGdbN10oNikpLGcpWzddKDM2KSxnKVs3XSgzNyksZylbN10oZFsyXSksbSlbMTJdKGRbMl0sSixZRigpKSxtWzEyXSg0OCxXLFl6KCkpLEkoUSx0aGlzLkUzLFcsSiksSShDLHRoaXMuTSx0aGlzLlhnKSxwLEkoWixDLHRoaXMua0opLFJbMTldKDgseCx0aGlzLm5xLFopLFlbMF0oMjQscixPW2RbMF1dKDMseCksITApLFJbMTldKDY1LHgsdGhpcy5wcSxaKSxtWzEyXSg0NyxCLGNbMl0pLFJbMTldKDY1LEIsQix4KSxtWzEyXSg0MixFLGNbMl0pLFJbMTldKGRbMV0sUCx0aGlzLlcsUSksRFsxNF0oNjYsRSxbUlsxOV0oMSx2LEUsUSksa2wodSxCLHRoaXMuTXksdiksWVswXSgyNixLLE9bZFswXV0oOSx1KSwhMCksWVswXSgyOSxiLGNbMV0sY1sxXSksSyxtWzEyXSgzNiwKcSxjWzFdKSxSWzE5XSgxLHEscSx4KSxSWzE5XSg0MCxOLHEsdGhpcy5YKSxHWzI0XSgyNCxhLE9bZFswXV0oOSxFKSxjWzFdKSxtWzEyXSg5NixYLDQpLG1bMzNdKDE1LE4sWCxPW2RbMF1dKDMsYSkpLFlbMF0oMjgsZixjWzFdLGNbMV0pLGJdLFApLGYsWVswXSgyNyxwLGNbMV0sY1sxXSkscixIWzQ0XSg2MyxRKSxIWzQ0XSg1OSxXKSxIWzQ0XSg2MyxaKSxIWzQ0XSg2MixCKSxIWzQ0XSg1OCx2KSxIWzQ0XSg1MSxOKSxIWzQ0XSg2MyxhKV0sZ1sxMl0oMyxrWzQyXSg0Myx0aGlzLDMpKSksbi5uZXh0KCkudmFsdWUpLG4pLm5leHQoKS52YWx1ZSxuLm5leHQoKS52YWx1ZSksTCksWVsxMl0oMTgsQSx0aGlzLkcpLEdbMjRdKDEwLEosT1tkWzBdXSg5LHRoaXMuQyksY1sxXSksSShKLEEsdGhpcy53YixKKSxZWzQxXSg2OCx6LE9bZFswXV0oOSxKKSw0KSxZWzE1XSg2OCxKLE9bZFswXV0oMyx0aGlzLkMpLGNbMF0pLEdbMjRdKDI2LHosT1tkWzBdXSgxLHopLE9bZFswXV0oNSxKKSksCkkoeixBLHRoaXMuUyx6KSxjJChWLHRoaXMuaSx0aGlzLkEsdGhpcy5YLHRoaXMubyx6KSx0aGlzLnN0cmluZ2lmeShWLFYpLFJbNDZdKDE4LHRoaXMsVildfSx6Qy5wcm90b3R5cGUpLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1ope3RoaXMucHE9KCh0aGlzWyh0aGlzW3RoaXMuSD0oKHRoaXMuZnE9KHRoaXMuS3E9KCh0aGlzLkRNPSh0aGlzLlcxPSh0aGlzLnVZPSgodGhpc1soKCh0aGlzLmtKPSh0aGlzLlFlPSh0aGlzLlA9KCgoKCh0aGlzLkw9KHRoaXMud2I9KHRoaXMuVj0odGhpcy5VPSh0aGlzLmxZPSh0aGlzLkE9KHRoaXMuZFY9KHRoaXMuaVk9KEU9KE49KFE9KGY9KGZEPSh1PShWPShDPShKWT0oUD0oSz0oej0oTT0oak49KFo9KHg9KHY9KGIzPShhPShKPShoPShaRz0oc3c9KFU9KEE9KFM9KGQ9KGI9KHI9KG5EPSh3PSh0PQooWD0oQj1nWzEyXSgxMSx5W29aPVsiQyIsIlgiLCJJIl0sNDldKDMsdGhpcyw0MikpLEIpLm5leHQoKS52YWx1ZSxwPUIubmV4dCgpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxXPUIubmV4dCgpLnZhbHVlLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksTD1CLm5leHQoKS52YWx1ZSxCKS5uZXh0KCkudmFsdWUsbj1CLm5leHQoKS52YWx1ZSxCKS5uZXh0KCkudmFsdWUscT1CLm5leHQoKS52YWx1ZSx2OD1CLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksCno4PUIubmV4dCgpLnZhbHVlLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQikubmV4dCgpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsYz1CLm5leHQoKS52YWx1ZSxCOD1CLm5leHQoKS52YWx1ZSxaKSxqTiksdGhpcy5TPXEsWCkseiksYjMpLHRoaXMuaT1aRyxTKSx2OCksdGhpcy5CMT1WLFApLHRoaXMuTXk9QjgsdGhpcykuTT1wLHRoaXMpLm09Six0aGlzLkUzPWMsdGhpcykuaj1kLHRoaXMpLkI9ejgsdGhpcy5KTz1LLGZEKSxuKSx0aGlzLlc9dSxRKSx0aGlzKS5EPU0sdGhpcykuRz14LG9aKVsxXV09dCx0aGlzKS5vPXcsciksdGhpcy5YZz1mLHRoaXMuZz1BLHYpLHN3KSx0aGlzKS5BTD1XLEwpLEpZKSx0aGlzKS5YQz1VLGEpLG9aWzJdXT1oLHRoaXMubnE9Tix0aGlzLks9CmIsb1opWzBdXT1uRCx0aGlzKS56Sj1DLEUpfSx6Qy5wcm90b3R5cGUpLmw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgpe3JldHVyblsoRzg9KFE9KHQ9KE49KHc9KEo9KEE9KFhoPShNPShWPShCPShmRD0odjg9KHBEPShoPShmSz0oQz0obkQ9KFFxPShFPShaRz0oUz0ocD0oYkw9KElaPShhPShiMz0oVz0obj0odFk9KHY9WyhLPShLSz0oVT0oYz0oc3c9KFo9KFA9KGQ9KGpOPSh6PShSWj0oeD1nWzEyXSg5LChXOD0ocjA9WzE1LDUsMV0sWzQ0LDI2LDEwXSksa1s0Ml0oNjIsdGhpcyw5KSkpLHgpLm5leHQoKS52YWx1ZSxCOD14Lm5leHQoKS52YWx1ZSx4Lm5leHQoKS52YWx1ZSkseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSksCngubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSksbDM9eC5uZXh0KCkudmFsdWUsZ1s3XSg3KSksZ1s3XSgzNikpLGdbN10oMzkpKSxnWzddKDQpKSxYPWdbN10oNCksUlsxOV0oNzIsQjgsdGhpcy5pWSxSWikpLERbNDVdKDM1LE9bMjVdKDUsQjgpLHopLFlbMF0oMjcsYyxPWzI1XSgzLHopLDApLFlbMF0oMjksSyxyMFsyXSxyMFsyXSksYyxSWzE5XSg3MyxCOCx0aGlzLkQsUlopLERbNDVdKDIsT1syNV0oNyxCOCkseixPWzI1XSg1LHopKSxSWzE5XSg3MyxCOCx0aGlzLmRWLFJaKSxEWzQ1XSgxLE9bMjVdKDMsQjgpLHosT1syNV0oNSx6KSksUlsxOV0oMzMsQjgsdGhpcy5sWSxSWiksRFs0NV0oMixPWzI1XSgzLEI4KSx6LE9bMjVdKDUseikpLFJbMTldKDcyLEI4LHRoaXMuQixSWiksRFs0NV0oMzQsT1syNV0oNSxCOCkseixPWzI1XSg5LHopKSxSWzE5XSgzMyxqTix0aGlzLkwsUlopLG1bNF0oNCxSWixkKSxtWzEyXSg0MCxQLDApLEhbVzhbMF1dKDU4LFopLFUsWVswXSgyNCwKSyxPWzI1XSg5LGpOKSxPWzI1XSgzLFopKSxtWzBdKFc4WzJdLFgsMixPWzI1XSgxLFApKSxSWzE5XSg0MSxsMyx0aGlzLmZxLGpOKSxZWzEyXSgxOSxzdyx0aGlzLmkpLEkoc3csc3csdGhpcy56SixsMyksSShzdyxzdyx0aGlzLkIxLGQpLERbNDVdKDEsT1syNV0oMyxzdykseixPWzI1XSg1LHopKSxYLG1bNF0oMTQseixzdyksUlsxOV0oNzMsQjgsdGhpcy5pWSxqTiksRFs0NV0oMzIsT1syNV0oNSxCOCkseixPWzI1XSg3LHopKSxZWzBdKDI0LEtLLE9bMjVdKDcseiksT1syNV0oMSxzdykpLFlbMF0oMjgsSyxyMFsyXSxyMFsyXSksS0ssUlsxOV0oNDAsQjgsdGhpcy5ELGpOKSxEWzQ1XSgzMyxPWzI1XSgxLEI4KSx6LE9bMjVdKDUseikpLG1bNF0oNCxqTixkKSxSWzE5XSg2NCxqTix0aGlzLkwsak4pLEdbMjRdKDI0LFAsT1syNV0oNSxQKSxyMFsyXSksWVswXSgyNCxVLHIwWzJdLHIwWzJdKSxLLEhbVzhbMF1dKDU5LEI4KSxIW1c4WzBdXSg1MCxqTiksSFtXOFswXV0oNTAsZCksCkhbVzhbMF1dKDU1LGwzKV0sZylbMTJdKDcsa1s0Ml0oNjEsdGhpcyxyMFswXSkpLHRZLm5leHQoKS52YWx1ZSksbWw9dFkubmV4dCgpLnZhbHVlLHRZLm5leHQoKS52YWx1ZSksdFkubmV4dCgpLnZhbHVlKSxiPXRZLm5leHQoKS52YWx1ZSx0WS5uZXh0KCkpLnZhbHVlLHRZLm5leHQoKS52YWx1ZSksdFkubmV4dCgpLnZhbHVlKSx0WSkubmV4dCgpLnZhbHVlLHRZLm5leHQoKS52YWx1ZSksejg9dFkubmV4dCgpLnZhbHVlLHRZLm5leHQoKSkudmFsdWUsdFkpLm5leHQoKS52YWx1ZSx0WS5uZXh0KCkudmFsdWUpLEw9dFkubmV4dCgpLnZhbHVlLGcpWzddKDM5KSxnWzddKDYpKSxnWzddKDM2KSkscj1nWzddKDM3KSxbUlsxOV0oNjUsbWwsdGhpcy5XLHRoaXMuQSksUlsxNl0oMjgsYkwsT1syNV0oNyx0aGlzLm8pLE9bMjVdKDcsbWwpKSxHWzI0XShXOFsxXSxiTCxPWzI1XSg3LGJMKSxyMFsyXSksUlsxNl0oNTYsbWwsT1syNV0oNSxtbCksVzhbMl0pLGMkKFcsdGhpcy5pKSxjJChiMywKdGhpcy5pKSxZWzEyXSgyLGEsdGhpcy5JKSxzZyhiLGEpLHNnKGEsYSksSShJWix0aGlzLk0sdGhpcy5YZyksbkQsSShwLElaLHRoaXMua0opLFJbMTldKDgsUyx0aGlzLm5xLHApLFlbMF0oMjQsQyxPWzI1XSg1LFMpLCEwKSxSWzE5XSg0MCxTLHRoaXMucHEscCksbVsxMl0oOTYsejgscjBbMl0pLFJbMTldKDQxLHo4LHo4LFMpLG1bMTJdKDQwLFJaLDApLFJbMTldKDcyLFJaLFJaLFMpLEkoWixhLHRoaXMuSCx6OCxSWiksWVswXSgyOSxuRCxyMFsyXSxyMFsyXSksQyxtWzEyXSg5NyxaRywwKSxtWzEyXSgzNixQLDApLG1bMTJdKDM4LEUscjBbMl0pLERbMTRdKDM0LFpHLFtSWzE5XSg0MCxwLFpHLHRoaXMuQSksUlsxOV0oOSx6LFAscCksUlsxOV0oOCx6LHosdGhpcy5YKSxSWzE5XSg3Myx6LFAseiksUlsxOV0oMzMsUXEsRSxwKSxHWzI0XSgxNixRcSxPWzI1XSgzLFFxKSxPWzI1XSgzLFpHKSksR1syNF0oMjQsUXEsT1syNV0oMyxRcSksT1syNV0oMyxiTCkpLFlbMTVdKDY5LFFxLApPWzI1XSgxLHopLE9bMjVdKDMsUXEpKSxSWzE2XSgyOCx0aGlzLkMsT1syNV0oMyx0aGlzLkMpLE9bMjVdKDcsUXEpKV0sbWwpLG1bMTJdKDM5LFpHLDApLG1bMTJdKDQ3LEUsVzhbMl0pLEhbVzhbMF1dKDQyLFopLERbMTRdKFc4WzFdLFpHLFtHWzI0XShXOFsxXSxRcSxPWzI1XSgxLFpHKSxPWzI1XSg1LG1sKSksUlsxOV0oMzIscCxRcSx0aGlzLkEpLFJbMTldKDY0LHo4LFAscCksSShSWixhLHRoaXMubSx6OCksSShzdyxiLHRoaXMubSxSWiksWVswXSgyOSxmSyxPWzI1XSgzLHN3KSxPWzI1XSg1LFopKSxZWzBdKDI5LHIscjBbMl0scjBbMl0pLGZLLFJbMTldKDQxLHN3LHRoaXMuVyxiMyksUlsxOV0oOCxMLHo4LHRoaXMuWCksbVszM10oVzhbMF0sYjMsc3csT1syNV0oMSxMKSksSShuLGIsdGhpcy5ILFJaLHN3KSxyLG1bMzNdKDExLHAsUCxPWzI1XSg3LHN3KSksSShuLFcsdGhpcy5QLHApXSxFKSxtWzRdKDQsVyx0aGlzLkEpLG1bNF0oMTMsYjMsdGhpcy5YKSxtWzRdKDE0LGIsCnRoaXMuTSksSFtXOFswXV0oNTksVyksSFtXOFswXV0oNTUsYjMpLEhbVzhbMF1dKDYyLGIpLEhbVzhbMF1dKDU5LGEpLEhbVzhbMF1dKDU1LFJaKSxIW1c4WzBdXSg2MixMKV0pLHE9Z1sxMl0oOSxrWzQyXSg0Myx0aGlzLDEyKSksSlk9cS5uZXh0KCkudmFsdWUsdT1xLm5leHQoKS52YWx1ZSxvWj1xLm5leHQoKS52YWx1ZSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkudmFsdWUpLHEubmV4dCgpKS52YWx1ZSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkpLnZhbHVlLHEubmV4dCgpKS52YWx1ZSxxLm5leHQoKS52YWx1ZSkscS5uZXh0KCkudmFsdWUpLFQ4PXEubmV4dCgpLnZhbHVlLGcpWzddKDcpLGcpWzddKDM4KSxnKVs3XSg2KSxnKVs3XSgzOCksZj1nWzddKDQpLGdbN10oNSkpLGdbN10oNCkpLHRoaXMpLk1qLFlbMTJdKDIsbix0aGlzLlUpLFJbMTldKDgsUlosdGhpcy5LcSxuKSxlWzddKDY0LHY4KSxZWzBdKDI4LEoscjBbMl0scjBbMl0pLHRoaXMuQmgsbVsxMl0oNDEsdjgsMCksClJbMTldKDgsdGhpcy5WLHY4LHRoaXMuViksa1syOV0oMjgscjBbMl0sdGhpcy5WLFJaLHRoaXMuVzEpLEhbVzhbMF1dKDU5LFopLFlbMF0oVzhbMV0sdEYsT1syNV0oNSxSWiksT1syNV0oNyxaKSksa1syOV0oMzEscjBbMl0sdGhpcy5WLHY4LHRoaXMuUWUpLFlbMF0oMjcsdEYsT1syNV0oOSx2OCksT1syNV0oMyxaKSksWVsxMl0oMTYsVDgsdGhpcy5HKSxJKHY4LFQ4LHRoaXMuUyx2OCksSixZWzBdKDI0LEc4LE9bMjVdKDcsUlopLE9bMjVdKDEsdGhpcy5BTCkpLG1bNF0oNSxSWix0aGlzLkFMKSxJKEpZLHRoaXMuTSx0aGlzLm0sUlopLEhbVzhbMF1dKDYyLG4pLFlbMF0oMjUsdyxPWzI1XSg3LEpZKSxPWzI1XSgxLG4pKSxZWzBdKDI1LE4scjBbMl0scjBbMl0pLHcsdixZWzE1XSg3Nyx6LE9bMjVdKDUseiksMUU2KSxHWzI0XSgxOCx6LE9bMjVdKDUseiksMUU2KSxZWzE1XSg3Myx6LE9bMjVdKDEseiksMUU2KSxSWzE5XSgzMix1LHRoaXMuRCxSWiksUlsxOV0oNzIsdSx1LHRoaXMuZyksCkdbMTRdKDE1LHUsT1syNV0oOSx1KSwwKSxSWzE5XSgxLG9aLHRoaXMubFksUlopLEdbMTRdKDMxLG9aLE9bMjVdKDksb1opLCIiKSxSWzE5XSg0MSxvWixvWix0aGlzLlhDKSxHWzE0XSg3LG9aLE9bMjVdKDksb1opLDApLFJbMTldKDcyLHBELHRoaXMuQixSWiksR1sxNF0oNyxwRCxPWzI1XSg5LHBEKSwiIiksUlsxOV0oOCxwRCxwRCx0aGlzLkRNKSxHWzE0XSgzMSxwRCxPWzI1XSg3LHBEKSwwKSxjJChMLHRoaXMuaSx6LHUsb1oscEQpLFJbMTldKDQxLEpZLHRoaXMuVyx0aGlzLlgpLEkobix0aGlzLlgsdGhpcy5QLEwpLEkobix0aGlzLk0sdGhpcy5ILFJaLEpZKSxZWzBdKDI5LHQscjBbMl0scjBbMl0pLE4sUlsxOV0oNjQsTCxKWSx0aGlzLlgpLG1bMTJdKDk3LFFxLDApLFJbMTldKDY1LHosUXEsTCksdCxjJChwLHRoaXMuaSxKWSx2OCksSShuLHRoaXMuQSx0aGlzLlAscCksR1syNF0oMTYsdGhpcy5vLE9bMjVdKDUsdGhpcy5vKSxyMFsyXSksR1syNF0oMTYsUXEsT1syNV0oNywKdGhpcy5vKSxPWzI1XSgzLHY4KSksWVsxNV0oNjksUXEsT1syNV0oMyx6KSxPWzI1XSgzLFFxKSksR1syNF0oVzhbMV0sdGhpcy5DLE9bMjVdKDUsdGhpcy5DKSxPWzI1XSg3LFFxKSksUlsxOV0oNjUsRSx0aGlzLlcsdGhpcy5BKSxtWzBdKDEzLEc4LE9bMjVdKDEsRSksMTcpLGgsRzgsSFtXOFswXV0oNjMsUXEpLEhbVzhbMF1dKDQ3LG4pLEhbVzhbMF1dKDU5LFJaKSxIW1c4WzBdXSg1NSxKWSksSFtXOFswXV0oNDcsdSksSFtXOFswXV0oNjMsb1opLEhbVzhbMF1dKDU0LHBEKSxIW1c4WzBdXSg1OSxMKSxIW1c4WzBdXSg1OCxwKSxIW1c4WzBdXSg1MSx6KSxIW1c4WzBdXSg2Myx2OCksa1sxN10oMzIpLHRoaXMudnYsbVsxMl0oOTYsdjgsMCksUlsxOV0oNzIsdGhpcy5WLHY4LHRoaXMuViksa1syOV0oMjcscjBbMl0sdGhpcy5WLGZELHRoaXMuVzEpLEkoSlksdGhpcy5NLHRoaXMubSxmRCksSFtXOFswXV0oNjIsbiksWVswXSgyNCxRLE9bMjVdKDksSlkpLE9bMjVdKDksbikpLFJbMTldKDksClYsSlksdGhpcy5YKSxSWzE5XSgzMixvWix0aGlzLlcsViksbVsxMl0oNDEscEQscjBbMV0pLG1bMF0oMTMsZixPWzI1XSgxLG9aKSxPWzI1XSg5LHBEKSksUlsxOV0oNjUsQixwRCxWKSxZWzBdKDI5LGYsT1syNV0oNSxCKSxPWzI1XSg1LG4pKSxHWzI0XSgxOCxCLE9bMjVdKDcsQikscjBbMl0pLG1bMzNdKDI4LFYscEQsT1syNV0oNyxCKSksWVswXSgyOSxRLHIwWzJdLHIwWzJdKSxmLG1bMzNdKDI5LFYscEQscjBbMl0pLFEsSFtXOFswXV0oNTAsZkQpLEhbVzhbMF1dKDYzLEpZKSxIW1c4WzBdXSg0MyxvWiksSFtXOFswXV0oNTUscEQpLEhbVzhbMF1dKDQ2LEIpLEhbVzhbMF1dKDQzLFYpLGtbMTddKDMyKSx0aGlzLmEwLGdbNDhdKDE4LDEyMzEsTSksYyQobixNLHRoaXMudVkpLEhbVzhbMF1dKDQ2LE0pLEhbVzhbMF1dKDYyLHRoaXMudVkpLGtbMTddKDMyKSx0aGlzLnlBLGdbNDhdKDE2LDE4MSxYaCksZ1s0OF0oVzhbMV0sNTQxLEEpLGdbNDhdKFc4WzJdLDIwMDQsb1opLFlbMTJdKDE2LApuLHRoaXMuVSksUlsxOV0oNzIsWGgsWGgsbiksSShuLFhoLEEsb1osdGhpcy5LKSxIW1c4WzBdXSg0NyxYaCksSFtXOFswXV0oNTAsQSksSFtXOFswXV0oNDMsb1opLEhbVzhbMF1dKDUwLG4pLGtbMTddKDM0KSx0aGlzLm51LGdbNDhdKDI0LDE4MSxYaCksZ1s0OF0oMjQsNTQxLEEpLGdbNDhdKDE4LDgyNSxvWiksWVsxMl0oMTcsbix0aGlzLlUpLFJbMTldKDQwLFhoLFhoLG4pLEkobixYaCxBLG9aLHRoaXMuaiksSFtXOFswXV0oNTgsWGgpLEhbVzhbMF1dKDUwLEEpLEhbVzhbMF1dKDU1LG9aKSxIW1c4WzBdXSg0MixuKSxrWzE3XSgzNSldfSxPKVsyMV0oNixMRixMRCksTEYpLnByb3RvdHlwZS5GPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtyZXR1cm5bKEI9KEs9KHY9KHo9KEo9KEM9KEE9KGI9Z1sxMl0oMSwocD1bOCwiTSIsNDNdLGtbNDJdKDQxLHRoaXMsNikpKSxiLm5leHQoKS52YWx1ZSksYi5uZXh0KCkudmFsdWUpLGIubmV4dCgpKS52YWx1ZSxiLm5leHQoKS52YWx1ZSksCmIubmV4dCgpLnZhbHVlKSxiLm5leHQoKSkudmFsdWUsZ1s3XSg1KSksZylbNDhdKDI0LDEyMixBKSxZWzEyXSgxOSxDLEEpLEhbNDRdKDU0LEEpLGdbNDhdKDI2LDE5ODAsSiksUlsxOV0ocFswXSx6LEosQyksWVswXSgyNyxCLE9bMjVdKDUseiksT1syNV0oNSwyMDQ4KSksSSh6LEMsSiksSFs0NF0oNTAsSiksUlsyN10oMjksdGhpc1twWzFdXSx0aGlzLmksdGhpcy5WKSxnWzQ4XSgxNiwyMDEsdiksSSh6LHosdix0aGlzW3BbMV1dKSxIWzQ0XSg2Myx2KSxCLEhbNDRdKHBbMl0sQyksSFs0NF0oNTQseiksSFs0NF0oNTEsSyldfSxMRi5wcm90b3R5cGUudj1mdW5jdGlvbihCLHope3JldHVyblsoQj1nWzEyXSgoej1bNCw4MiwxXSx6KVswXSxrWzQyXSg0MCx0aGlzLHpbMl0pKS5uZXh0KCkudmFsdWUsbSlbelswXV0oMTIsdGhpcy5YLEIpLGtbMThdKDUzLEIsT1syNV0oNSxCKSksUls0Nl0oelsxXSx0aGlzLEIpLEhbNDRdKDQyLEIpXX0sTEYpLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIsCnosSyxKLEMpe3RoaXNbdGhpcy5WPSgoQj0oSj0oej0oSz1nWzEyXSg2LChDPVs0OSwiTSIsMl0seSlbQ1swXV0oQ1syXSx0aGlzLDMpKSxLKS5uZXh0KCkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEsubmV4dCgpLnZhbHVlKSx0aGlzKS5YPUosQiksQ1sxXV09en0sTEYpLnByb3RvdHlwZS5sPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4KXtyZXR1cm4gcD0oTj0oQj0oWj0oQz0oYj0oej0odj0oUT0obj0oSz0oeD1bNDQsMywoQT1bMTAxMywxNDUyLDc4XSw0OCldLGdbMTJdKHhbMV0sa1s0Ml0oNDMsdGhpcywxMSkpKSxLLm5leHQoKSkudmFsdWUsSykubmV4dCgpLnZhbHVlLEsubmV4dCgpKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKSkudmFsdWUsSy5uZXh0KCkudmFsdWUpLFc9Sy5uZXh0KCkudmFsdWUsSj1LLm5leHQoKS52YWx1ZSxLKS5uZXh0KCkudmFsdWUsZ1s3XSgzNikpLFt0aGlzLmksCm1bMTJdKDM4LE4sMCksUlsxOV0oNDAsbixOLHRoaXMuViksWVswXSgyNCxwLE9bMjVdKDksbiksT1syNV0oNSwyMDQ4KSksZ1t4WzJdXSgxNiw4OTYsQyksUlsxOV0oNzMsUSxDLG4pLEhbeFswXV0oNTQsQyksZ1t4WzJdXSgyNixBWzFdLFopLFJbMTldKDcyLHYsWixuKSxIW3hbMF1dKDQyLFopLGdbeFsyXV0oMTgsNjMsQiksUlsxOV0oOSx6LEIsbiksSFt4WzBdXSg1MCxCKSxnW3hbMl1dKDI0LEFbMF0sVyksUlsxOV0oNzMsYixXLG4pLEhbeFswXV0oNTQsVyksZ1t4WzJdXSgyNixBWzJdLEopLGMkKHRoaXMuWCxKLFEsdix6LGIpLEhbeFswXV0oNjIsSikscCxIW3hbMF1dKDYzLE4pLEhbeFswXV0oNTksbiksSFt4WzBdXSg1MSxRKSxIW3hbMF1dKDYzLHYpLEhbeFswXV0oNTkseiksSFt4WzBdXSg0MixiKSxrWzE3XSgzNyldfSxPWzIxXSgxLFI4LExEKSxSOC5wcm90b3R5cGUpLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7cmV0dXJuIHg9KFc9KG49CihiPShDPShLPSh6PShRPShwPShKPSh2PShCPWdbKGY9WyhBPVs0MSw3OCw4NzFdLDEyKSw0Miw0NF0sZilbMF1dKDEsa1tmWzFdXSg0MCx0aGlzLDEzKSksTj1CLm5leHQoKS52YWx1ZSxaPUIubmV4dCgpLnZhbHVlLEIubmV4dCgpKS52YWx1ZSxCLm5leHQoKSkudmFsdWUsQikubmV4dCgpLnZhbHVlLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQikubmV4dCgpLnZhbHVlLEIubmV4dCgpKS52YWx1ZSxCLm5leHQoKSkudmFsdWUsW2dbNDhdKDEwLEFbMl0sTiksWVtmWzBdXSgxOCxaLE4pLEhbZlsyXV0oNTUsTiksUlsxM10oZlsxXSxIWzI1XSg1OSxPWzldKDMwLEFbMF0pLHYpLFtPWzI1XSg5LFopXSksZ1s0OF0oMjQsODMyLEopLFlbZlswXV0oMTgscCxKKSxIW2ZbMl1dKDYzLEopLEdbMTRdKDE1LHAsT1syNV0oMyxwKSwiIiksZ1s0OF0oMTAsMTQwOSxRKSxZW2ZbMF1dKDEseixRKSwKSFtmWzJdXSg2MyxRKSxnWzQ4XSgxOCwxMjksSyksSShDLHosSyxwKSxIW2ZbMl1dKDQzLEspLGdbNDhdKDI0LDMxMyxiKSxSWzE5XSg2NCxuLGIsQyksSFtmWzJdXSg1NCxiKSxnWzQ4XSgyNCxBWzFdLFcpLGMkKHgsVyx2LG4pLEhbZlsyXV0oNTAsVyksa1sxOF0oNTQseCxPWzI1XSgzLHgpKSxSWzQ2XSgxOCx0aGlzLHgpXX0sTylbMjFdKDMsSFIsTEQpLEhSLnByb3RvdHlwZSkuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe3JldHVybiBKPShCPSh6PShLPShwPSh2PShRPShBPShiPShDPWdbbj1bMjUsNTksM10sMTJdKDUsa1s0Ml0oNDcsdGhpcywxKSkubmV4dCgpLnZhbHVlLG1bMTJdKDQ0LHRoaXMuVywwKSksbVsxMl0oOTUsdGhpcy5BLHcyKCkpKSxtWzEyXSgzNix0aGlzLlgsdzIoKSkpLG1bMTJdKDQ4LHRoaXMuaSx3MigpKSksbVsxMl0oOTUsdGhpcy5NLHcyKCkpKSxSWzI3XSgyOSx0aGlzLkMsdGhpcy5tLHRoaXMuVikpLGcpWzQ4XSgyNCwyMDM0LEMpLE9bblswXV0oblsyXSwKdGhpcy5DKSksUlsxM10oMzksT1s5XSgxOSwxNiksW09bblswXV0oNSxDKSxnWzE2XSg3MCxCKV0pKSxbYixBLFEsdixwLEsseixKLEhbNDRdKG5bMV0sQyldfSxIUi5wcm90b3R5cGUuUj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7KHRoaXNbdGhpc1t6PShDPSh2PShCPShKPShBPShiPShLPWdbMTJdKDEseVs0OV0oNiwocD1bIkMiLCJXIiwiQSJdLHRoaXMpLDcpKSxLLm5leHQoKS52YWx1ZSksSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsSy5uZXh0KCkpLnZhbHVlLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsdGhpc1twWzBdXT1iLHRoaXMuaT1DLHRoaXMuVj1BLHBbMl1dPUIsdGhpcy5YPXYscFsxXV09Six0aGlzKS5NPXp9LEhSLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEope3JldHVyblsoSz0oQj1nWzEyXSgxMSxrWzQyXSgoSj1bNywiTSIsMjNdLDQzKSx0aGlzLDIpKSx6PUIubmV4dCgpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSwKR1sxNF0oSlsyXSx0aGlzLkEsT1syNV0oMSx0aGlzLkEpLHcyKCkpKSxHWzE0XSgzOSx0aGlzLlgsT1syNV0oNSx0aGlzLlgpLHcyKCkpLEdbMTRdKDE1LHRoaXMuaSxPWzI1XShKWzBdLHRoaXMuaSksdzIoKSksR1sxNF0oSlswXSx0aGlzW0pbMV1dLE9bMjVdKDUsdGhpc1tKWzFdXSksdzIoKSksZ1s0OF0oMjYsNzgseiksYyQoSyx6LHRoaXMuVyx0aGlzLkEsdGhpcy5YLHRoaXMuaSx0aGlzW0pbMV1dKSx0aGlzLnN0cmluZ2lmeShLLEspLFJbNDZdKDY2LHRoaXMsSyksSFs0NF0oNTEsSyksSFs0NF0oNjIseildfSxIUi5wcm90b3R5cGUubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscil7cmV0dXJuIEo9KHg9KFE9KEI9KEw9KE49KFc9KHo9KGY9KHA9KEE9KG49Z1taPSh2PShyPShDPVsxLDQwLDEyXSxbMiw1NSwwXSksW10pLHYuY29uY2F0KSwxMl0oMSxrWzQyXSg1OSx0aGlzLENbclswXV0pKSxiPW4ubmV4dCgpLnZhbHVlLG4ubmV4dCgpLnZhbHVlKSwKbi5uZXh0KCkpLnZhbHVlLG4ubmV4dCgpLnZhbHVlKSxuKS5uZXh0KCkudmFsdWUsbikubmV4dCgpLnZhbHVlLG4ubmV4dCgpLnZhbHVlKSxuKS5uZXh0KCkudmFsdWUsbi5uZXh0KCkudmFsdWUpLG4ubmV4dCgpLnZhbHVlKSxuLm5leHQoKS52YWx1ZSksbikubmV4dCgpLnZhbHVlLEs9W3RoaXMubSxHWzI0XSgyNCx0aGlzLlcsT1syNV0oMSx0aGlzLlcpLENbclsyXV0pLG1bMTJdKDk1LGYsclsyXSksUlsxOV0oNDEsYixmLHRoaXMuViksSFs0NF0oNTgsdGhpcy5WKSxnWzQ4XSgyNCwyMTQsQSksa1syOV0oMjYsQ1tyWzJdXSxiLHAsQSksSFs0NF0oNDcsQSksSFs0NF0oclsxXSxiKSxSWzE5XSg4LHRoaXMuQSxmLHApLG1bMTJdKDQ3LGYsQ1tyWzJdXSksUlsxOV0oNzIsSixmLHApLGdbNDhdKDI0LDgwLHopLGtsKFcsSix6KSxIWzQ0XSg2Mix6KSxIWzQ0XSg1OCxKKSxtWzEyXSg0NyxmLHJbMl0pLFJbMTldKDksVyxmLFcpLGdbNDhdKDEwLENbMV0sUSksa1syOV0oMjksQ1tyWzJdXSwKVyx0aGlzLmksUSksSFs0NF0oNTAsUSksZ1s0OF0oMTYsNDgwLE4pLGtsKEwsVyxOKSxIWzQ0XSg2MyxOKSxIWzQ0XSg0MixXKSxnWzQ4XSgxOCwxNjEsQiksa1syOV0oMjUsQ1tyWzJdXSxMLHRoaXMuWCxCKSxIWzQ0XShyWzFdLEIpLGdbNDhdKDEwLDE5LHgpLGtbMjldKDMwLENbclsyXV0sTCx0aGlzLk0seCksSFs0NF0oclsxXSx4KSxIWzQ0XSg0MixMKSxIWzQ0XSg2MixmKV0sWi5jYWxsKHYsZVszM10oMTksSykpfSxPWzIxXSg1LHZSLExEKSx2Ui5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmKXtyZXR1cm5bKGI9KHg9KG49KFo9KHo9KFE9KHA9KEE9KEI9KHY9KEM9WzI5NiwoZj1bOTYsNTcsNDZdLDEwNCksIiJdLFc9a1s0Ml0oZlsxXSx0aGlzLDEyKSxLPWdbMTJdKDcsVyksSy5uZXh0KCkpLnZhbHVlLEo9Sy5uZXh0KCkudmFsdWUsSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxOPUsubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSwKSykubmV4dCgpLnZhbHVlLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLKS5uZXh0KCkudmFsdWUsZ1s0OF0oMTYsNDUyLHYpKSxZWzEyXSgzLHYsdiksZ1s0OF0oMjYsQ1sxXSxKKSxnWzQ4XSgxMCw0NDUsQiksSShBLHYsSixCKSxnWzQ4XSgyNCwzNjIsTiksUlsxOV0oNDAscCxOLEEpLEhbNDRdKDQzLE4pLEhbNDRdKDYyLEIpLGdbNDhdKDE4LDM1MSxuLG85KCkpLFJbMTNdKDc2LHgsT1syNV0oMSxuKSxoTygpKSxIWzQ0XSg0MyxuKSxtWzEyXSg0MSxiLENbMl0pLGdbNDhdKDEwLENbMF0sWiksSShwLHAsWix4LGIpLEhbNDRdKDUxLFopLEhbNDRdKDU4LHgpLG1bMTJdKGZbMF0seiwtNCksZ1s0OF0oMTgsMjgsUSksSShwLHAsUSx6KSxIWzQ0XSg0MyxRKSxSW2ZbMl1dKDgyLHRoaXMscCldfSxPWzIxXSg0LHJCLExEKSxyQikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6KXtyZXR1cm5bKEI9KHo9WzEyLDE4LDRdLApnW3pbMF1dKDEsa1s0Ml0oNjAsdGhpcywxKSkubmV4dCgpKS52YWx1ZSxtW3pbMl1dKHpbMF0sdGhpcy5NLEIpKSxrW3pbMV1dKDM2LEIsT1syNV0oNyxCKSksUls0Nl0oMTYsdGhpcyxCKSxIWzQ0XSg1NCxCKV19LHJCKS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFApe3JldHVyblsocD0odj0oYj0oTj0oZj0oTD0obj0oeD0oQz0oQT0oVz0oUT0oSj0oej0oUD0oQj1bNTY3LDE1NSw3NzddLFswLDQyLDQxXSksZ1sxMl0oNSxrW1BbMV1dKFBbMl0sdGhpcywxNSkpKSxWPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKS52YWx1ZSksei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSx6KS5uZXh0KCkudmFsdWUscj16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLFo9ei5uZXh0KCkudmFsdWUsSz16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLAp6KS5uZXh0KCkudmFsdWUseikubmV4dCgpLnZhbHVlLGdbN10oNykpLGdbN10oMzkpKSxnWzQ4XSgxMCwzMDYsdGhpcy5YKSksZ1s0OF0oMTgsMTIyLFYpLFlbMTJdKDE3LEosViksSFs0NF0oNTgsViksZ1s0OF0oMTgsMTU1NixRKSxSWzE5XSg4LFcsUSxKKSxHWzE0XSgzMSxXLE9bMjVdKDEsVyksUFswXSksSFs0NF0oNTksUSksZ1s0OF0oMTYsQlsyXSxBKSxSWzE5XSg2NCxDLEEsSiksR1sxNF0oMTUsQyxPWzI1XSg5LEMpLFBbMF0pLEhbNDRdKDUwLEEpLGdbNDhdKDI2LDc4LGYpLGMkKHRoaXMuTSxmLFcsQyksSFs0NF0oNTUsZiksZ1s0OF0oMjQsQltQWzBdXSxyKSxSWzE5XShQWzJdLHgscixKKSxIWzQ0XSg1NSxyKSxIWzQ0XShQWzFdLE4pLFlbUFswXV0oMjQsdixPWzI1XSgzLHgpLE9bMjVdKDEsTikpLGdbNDhdKDI2LEJbMV0sbiksSShaLHgsbiksSFs0NF0oNTgsbiksWVtQWzBdXSgyOCx2LE9bMjVdKDUsWiksT1syNV0oNSxOKSksUlsyN10oMjUsdGhpcy5pLHRoaXMuVywKdGhpcy5WKSxSWzI3XSgzMCx0aGlzLkEsdGhpcy5DLHRoaXMuViksZ1s0OF0oMTYsMjAxLEspLEkoTCxaLEssdGhpcy5pLHRoaXMuQSksWVtQWzBdXSgyOCxwLDEsMSksdixtWzEyXSg0OCxiLFBbMF0pLEkoYix0aGlzLk0sdGhpcy5YLGIpLEhbNDRdKDU0LGIpLHAsSFs0NF0oNjIsSiksSFs0NF0oNTUseCksSFs0NF0oNDcsWiksSFs0NF0oUFsxXSxLKSxIWzQ0XSg2MyxMKSxIWzQ0XSg1NCxOKV19LHJCLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuWyhKPVsoSz0oQT1bKHY9KEI9KHo9Z1sxMl0oMTEsa1twPVsxLDQyLDU4XSxwWzFdXSg2MCx0aGlzLDQpKSxiPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKS52YWx1ZSksQz16Lm5leHQoKS52YWx1ZSx0aGlzKS5XLG1bMTJdKDQwLGIsMCksUlsxOV0oMzIsQixiLHRoaXMuViksZ1s0OF0oMjQsNDU1LHYpLFJbMTldKHBbMF0sQyx2LEIpLEhbNDRdKDU0LHYpLEdbMTRdKDIzLApDLE9bMjVdKDcsQyksLTIpLEkoYix0aGlzLk0sdGhpcy5YLEMpLEhbNDRdKDU0LGIpLEhbNDRdKHBbMl0sQiksSFs0NF0oNDYsQyksa1sxN10oMzcpXSxnWzEyXSgxMSxrW3BbMV1dKHBbMl0sdGhpcyxwWzBdKSkubmV4dCgpLnZhbHVlKSx0aGlzKS5DLG1bMTJdKDQ4LEssLTEpLEkoSyx0aGlzLk0sdGhpcy5YLEspLEhbNDRdKDUwLEspLGtbMTddKDMzKV0sQSksSl19LHJCKS5wcm90b3R5cGUuUj1mdW5jdGlvbihCLHosSyxKLEMsYixBKXsoKHRoaXMuTT0oKHRoaXNbKHo9KEI9KGI9KEM9KEo9Z1sxMl0oKEE9WzYsIlgiLCJWIl0sNCkseVs0OV0oQVswXSx0aGlzLDUpKSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEs9Si5uZXh0KCkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEopLm5leHQoKS52YWx1ZSxBKVsyXV09Syx0aGlzKS5BPXosYiksdGhpcylbQVsxXV09Qix0aGlzKS5pPUN9LE8pWzIxXSgzLFZqLExEKSxWaikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSiwKQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSl7cmV0dXJuIEM9KFg9KFc9KHg9KE09KGE9KG49KEo9KHY9KGI9KEI9KHE9KEw9KHA9KFA9KGY9KGQ9KGM9KHo9KEU9KHI9KGg9KHU9KFo9KE49KFY9KEs9KFM9Z1sxMl0oMyxrWzQyXSg0MSx0aGlzLChBPShVPVs0NiwyNSwzM10sWzIwMjEsNDUyLDI2XSksQVsyXSkpKSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKSkudmFsdWUsUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMubmV4dCgpKS52YWx1ZSx0PVMubmV4dCgpLnZhbHVlLFE9Uy5uZXh0KCkudmFsdWUsUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSwKUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLGdbN10oMzcpKSxnKVs3XSgzNyksZ1s3XSgzNykpLFtIWzQ0XSg1NCx4KSxtWzEyXSg0OCxuLEowKCkpLGdbNDhdKDE4LEFbMV0sSyksWVsxMl0oMTksVixLKSxIWzQ0XSg1MCxLKSxnWzQ4XSgxOCwxNDQ5LE4pLGdbNDhdKDI0LEFbMF0sWiksSSh1LFYsTixaKSxIWzQ0XSg0MyxWKSxIWzQ0XSg0MyxOKSxIWzQ0XSg0NyxaKSxZWzBdKDI5LFcsT1tVWzFdXSg1LHUpLE9bVVsxXV0oOSx4KSksZ1s0OF0oMTYsMjIsaCksZ1s0OF0oMTYsMjIzLHIpLEkoRSx1LGgsciksSFs0NF0oNDIsdSksSFs0NF0oNDIsaCksSFs0NF0oNjIsciksWVswXSgyNixXLE9bVVsxXV0oNyxFKSxPW1VbMV1dKDcseCkpLGdbNDhdKDE4LDc2NyxmKSxJKFAsRSxmKSxIWzQ0XShVWzBdLGYpLGdbNDhdKDI0LDMxMyxwKSwKUlsxOV0oNjUsTCxwLFApLEhbNDRdKDUwLFApLEhbNDRdKDU5LHApLGdbNDhdKDI2LDQyNCx6KSxnWzQ4XSgxOCwyODUsYyksSShkLEUseixjKSxIWzQ0XSg1NSx6KSxIWzQ0XSg1MSxjKSxZWzBdKDI0LFgsT1tVWzFdXSgxLGQpLE9bVVsxXV0oMSx4KSksZ1s0OF0oMjYsNjg2LHQpLGdbNDhdKDE4LDQ1NyxRKSxSWzE5XSg3MixxLFEsZCksSShCLEUsdCxxKSxIWzQ0XSg1NCxRKSxIWzQ0XSg1MCxxKSxnWzQ4XSgyNCwyMDI1LGIpLFJbMTldKFVbMl0sdixiLGQpLEkoSixFLHQsdiksSFs0NF0oNTUsYiksSFs0NF0oNTUsdiksSFs0NF0oNDcsdCksSFs0NF0oNDcsZCksWVswXSgyNCxDLDEsMSksWCxtWzRdKDUsbixCKSxtWzRdKDEyLG4sSiksWVswXSgyNixDLDEsMSksVyxtWzRdKDEzLG4sQiksbVs0XSgxMixuLEopLG1bMTJdKDk2LEwsMCksQyxnWzQ4XSgxMCw3OCxhKSxjJChNLGEsQixKLEwpLEhbNDRdKDUxLGEpLGtbMThdKDM0LE0sT1tVWzFdXSgxLE0pKSxSW1VbMF1dKDgwLHRoaXMsCk0pXX0sT1syMV0oNSxPRSxMRCksT0UucHJvdG90eXBlKS5GPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuWyhCPSh6PWdbMTJdKDExLChLPVsxMTEwLDI4LChDPVsiVSIsMzA2LCJHIl0sMTAwNCldLGtbNDJdKDYzLHRoaXMsMikpKSx6Lm5leHQoKSkudmFsdWUsSj16Lm5leHQoKS52YWx1ZSxnWzQ4XSgyNCw3OCx0aGlzLmkpKSxnWzQ4XSgyNiw0NTIsdGhpcy5nKSxnWzQ4XSgxMCwzMTcsdGhpcy5pWSksZ1s0OF0oMjYsNDM2LHRoaXMuQUwpLGdbNDhdKDI0LDgzNix0aGlzLnVZKSxnWzQ4XSgxOCwxOTEsdGhpcy5TKSxnWzQ4XSgxNixLWzBdLHRoaXMuWGcpLGdbNDhdKDE2LDMxMyx0aGlzLlApLGdbNDhdKDE4LENbMV0sdGhpc1tDWzJdXSksZ1s0OF0oMTYsNjg5LHRoaXMuQiksbVsxMl0oOTYsSiwhMCksT1s0OF0oNzIsdGhpcy5rSixPWzI1XSg3LEopLCIiKSxnWzQ4XSgxNiwzOTksdGhpcy5qKSxnWzQ4XSgxOCxLWzJdLHRoaXMuSCksZ1s0OF0oMjQsOTMzLHRoaXMuSyksZ1s0OF0oMTAsCjIzOSx0aGlzLkQpLGdbNDhdKDEwLDMyMix0aGlzLm5xKSxnWzQ4XSgxNiw2NjAsdGhpcy5tKSxnWzQ4XSgyNiwxNDEsdGhpcy5JKSxnWzQ4XSgyNiwxOTUsdGhpcy5MKSxnWzQ4XSgxMCxLWzFdLHRoaXMubFkpLGdbNDhdKDEwLDEzNCx0aGlzLkMpLG1bMTJdKDQ3LHRoaXMuQSwwKSxtWzEyXSg0NCx0aGlzLm8sLTEpLG1bMTJdKDM4LHRoaXNbQ1swXV0sLTEpLGMkKHRoaXMuWCx0aGlzLmkpLFJbMjddKDMxLHRoaXMuVyx0aGlzLnBxLHRoaXMuViksbVsxMl0oNDIsQiw1MDApLGMkKHRoaXMuTSx0aGlzLkMsdGhpcy5XLEIpLG5ldyBKaCh0aGlzLlcxLEIpLEhbNDRdKDUwLEIpXX0sT0UucHJvdG90eXBlKS52PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuW2MkKCh6PShCPShKPShLPWdbQz1bMTIsNTAwLDQ1XSxDWzBdXSg2LGtbNDJdKENbMl0sdGhpcywzKSksSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKS52YWx1ZSksSiksdGhpcy5pLHRoaXMuWCksdGhpcy5zdHJpbmdpZnkoSiwKSiksYyQodGhpcy5YLHRoaXMuaSksbVtDWzBdXSg5Nyx0aGlzLkEsMCksbVtDWzBdXSg0MCx0aGlzLm8sLTEpLG1bQ1swXV0oNDQsdGhpcy5VLC0xKSxnWzQ4XSgxMCw2OTYsQiksYyQoeixCLHRoaXMuTSksbVtDWzBdXSg0NCx6LENbMV0pLGMkKHRoaXMuTSx0aGlzLkMsdGhpcy5XLHopLEhbNDRdKDU4LEIpLEhbNDRdKDYzLHopLFJbNDZdKDgwLHRoaXMsSildfSxPRSkucHJvdG90eXBlLmw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEpe3JldHVybiBVPShXPShCPSh2PShCOD0oUD0ocD0oSj0oUz0obkQ9KGI9KEpZPShWPShNPShMPShaPShaRz0ocj1nWzEyXSgzLChFPShLPWdbYjM9Z1s3XSgoak49ZnVuY3Rpb24oVDgsbWwsRzgpe3JldHVybltSWzEzXSg3NyxXLE9bMjVdKDMsKEc4PShtbD1bMiwwLDFdLFs1LDEyLDEwXSksejgubnEpKSwKaE8oKSksSShTLFMsejguRCxXKSxtW0c4WzFdXSgzOSxmLG1sWzFdKSxSWzE5XSgzMix4LGYsUyksYyQoeCx6OC5tLHgpLG1bRzhbMV1dKDk3LGYsbWxbMl0pLFJbMTldKDQwLFgsZixTKSxjJChYLHo4Lm0sWCksbVtHOFsxXV0oNDcsZixtbFswXSksUlsxOV0oMSxoLGYsUyksYyQoaCx6OC5tLGgpLFlbNDFdKDIyLEIsT1syNV0oMSxYKSxtbFswXSksbVswXSgxNSxUOCxPWzI1XSg3LHgpLE9bMjVdKEc4WzBdLEIpKSxZWzQxXSg2OCxCLE9bMjVdKEc4WzBdLGgpLG1sWzBdKSxtWzBdKDgsVDgsT1syNV0oMSx4KSxPWzI1XSg3LEIpKSxHWzI0XSgyNix2LE9bMjVdKEc4WzBdLHgpLE9bMjVdKEc4WzBdLFgpKSxHWzI0XShHOFsyXSx2LE9bMjVdKDksdiksT1syNV0oMSxoKSksbVswXSgxNSxUOCxPWzI1XSg5LHYpLE9bMjVdKDcsQjgpKSxtWzBdKDE0LFQ4LE9bMjVdKEc4WzBdLFApLE9bMjVdKDksdikpLG1bRzhbMV1dKDM2LEMsITApXX0sMzgpKSw3XSgzOCksUT1nWzddKDUpLGQ9KHU9CmdbN10oMzYpLGcpWzddKDUpLHo4PXRoaXMsUXE9WyJvIiwyLDQ0XSx2OD0oYT0oej1nWzddKDcpLGcpWzddKDYpLFsxLCh3PWdbN10oMzkpLHN3PWdbN10oNyksMCksITBdKSxnWzddKChuPWdbN10oNSksTj1nWzddKDYpLDUpKSksa1s0Ml0oNDAsdGhpcywyOCkpKSxjPXIubmV4dCgpLnZhbHVlLHQ9ci5uZXh0KCkudmFsdWUscT1yLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLG9aPXIubmV4dCgpLnZhbHVlLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIubmV4dCgpLnZhbHVlKSxmRD1yLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsZj1yLm5leHQoKS52YWx1ZSx4PXIubmV4dCgpLnZhbHVlLFg9ci5uZXh0KCkudmFsdWUsaD1yLm5leHQoKS52YWx1ZSxDPXIubmV4dCgpLnZhbHVlLHIubmV4dCgpKS52YWx1ZSxyLm5leHQoKS52YWx1ZSksCnIubmV4dCgpLnZhbHVlKSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsQT1yLm5leHQoKS52YWx1ZSxbdGhpcy5wcSxHWzI0XSgxOCx0aGlzLkEsT1syNV0oNSx0aGlzLkEpLHY4WzBdKSxZWzEyXSgxOCx0LHRoaXMuZyksSShxLHQsdGhpcy5pWSx0aGlzLkFMKSxSWzE5XSg5LFosdGhpcy5QLHEpLFlbMTJdKDE3LE0sdGhpcy5TKSxtWzEyXSgzNixWLDEwKSxtWzEyXSgzNixKWSx2OFsxXSksbVsxMl0oNDcsYix2OFsxXSksbVsxMl0oNDIsSix2OFsxXSksSShWLE0sdGhpcy5YZyxaLFYpLERbMTRdKDY2LEpZLFtSWzE5XSg3MyxaRyxKWSxxKSxSWzE5XSgxLGZELHRoaXMuQixaRyksWVswXSgyNixFLE9bMjVdKDUsZkQpLE9bMjVdKDksdGhpcy5rSikpLFlbMF0oMjYsZCx2OFswXSx2OFswXSksRSxHWzI0XSgxMCxiLE9bMjVdKDEsYiksdjhbMF0pLGQsYyQobkQsdGhpcy5qLFpHKSxtWzEyXSg5NSxwLFFxWzFdKSxtWzEyXSg0OCwKUCw2MDApLG1bMTJdKDk2LEI4LDMwKSxtWzEyXSg0OCxDLCExKSxSWzE5XSg2NSxTLHRoaXMuSyxuRCksak4oSyksSyxZWzBdKDI1LFEsT1syNV0oNSxDKSx2OFtRcVsxXV0pLFJbMTldKDEsUyx0aGlzLkgsbkQpLGpOKGIzKSxiMyxZWzBdKDI1LFEsT1syNV0oMyxDKSx2OFtRcVsxXV0pLFJbMTldKDMzLFpHLHRoaXMuSSxaRyksYyQobkQsdGhpcy5qLFpHKSxSWzE5XSg2NCxTLHRoaXMuSyxuRCksak4odyksdyxZWzBdKDI5LFEsT1syNV0oMSxDKSx2OFtRcVsxXV0pLFJbMTldKDY1LFMsdGhpcy5ILG5EKSxqTih6KSx6LFlbMF0oMjYsUSxPWzI1XSg5LEMpLHY4W1FxWzFdXSksWVswXSgyNCxOLHY4WzBdLHY4WzBdKSxRLEdbMjRdKDI2LEosT1syNV0oMyxKKSx2OFswXSksTl0sViksWVswXSgyNSxuLE9bMjVdKDEsYiksT1syNV0oNyx0aGlzW1FxWzBdXSkpLFlbMF0oMjcsdSx2OFswXSx2OFswXSksbixZWzBdKDI4LGEsT1syNV0oMyxKKSxPWzI1XSg1LHRoaXMuVSkpLHUsbVs0XSgxMiwKYix0aGlzW1FxWzBdXSksbVs0XSg0LEosdGhpcy5VKSxlWzddKDY2LGMpLGMkKG9aLHRoaXMuaSxjLGIsSiksSSh0LHRoaXMuWCx0aGlzLkcsb1opLFJbMTldKDY0LEIsdGhpcy5QLHRoaXMuWCksbVswXSgxMixhLE9bMjVdKDcsQiksMTEpLG1bMTJdKDk2LFUsNSksbVsxMl0oMzksQSwzKSxJKEIsdGhpcy5YLHRoaXMuTCxVLEEpLGEsWVs0MV0oMjEsQiw1MDAsT1syNV0oNSx0aGlzLkEpKSxjJCh0aGlzLk0sdGhpcy5DLHRoaXMuVyxCKSxIW1FxWzJdXSg0Nix0KSxIW1FxWzJdXSg1MSxxKSxIW1FxWzJdXSg1NSxjKSxIW1FxWzJdXSg0NixvWiksSFtRcVsyXV0oNDMsWkcpLEhbUXFbMl1dKDQyLFopLEhbUXFbMl1dKDU4LE0pLEhbUXFbMl1dKDU1LFYpLEhbUXFbMl1dKDQyLEpZKSxIW1FxWzJdXSg0NixmRCksSFtRcVsyXV0oNTEsYiksSFtRcVsyXV0oNTEsbkQpLEhbUXFbMl1dKDU5LFMpLEhbUXFbMl1dKDUwLEopLEhbUXFbMl1dKDYyLGYpLEhbUXFbMl1dKDQzLHgpLEhbUXFbMl1dKDUxLApYKSxIW1FxWzJdXSg2MixoKSxIW1FxWzJdXSg0MixDKSxIW1FxWzJdXSg0MyxwKSxIW1FxWzJdXSg1MCxQKSxIW1FxWzJdXSg1OCxCOCksSFtRcVsyXV0oNTksdiksSFtRcVsyXV0oNDMsQiksSFtRcVsyXV0oNjMsVyksc3csa1sxN10oMzQpLHRoaXMuVzEsZ1s0OF0oMTAsNjk2LEwpLGMkKHQsTCx0aGlzLk0pLEhbUXFbMl1dKDUxLEwpLEhbUXFbMl1dKDU4LHRoaXMuTSksa1sxN10oMzUpXX0sT0UucHJvdG90eXBlLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgpe3RoaXMuST0odGhpcy5BTD0odGhpcy5pWT0oKHRoaXMuWD0odGhpcy5EPSh0aGlzLlY9KHRoaXNbKHRoaXNbKCh0aGlzLlc9KHRoaXMuRz0odGhpcy51WT0oKHRoaXMuaT0oKHRoaXMuTD0oKHRoaXMubz0oKHRoaXMubT0oVj0odD0oWj0oQT0oZD0oVz0oSz0odT0oZj0ocD0oQj0oQz0oUz0ocT0oTj0oej0ocj0oYz0oTD0oUD0oeD0oUT0oRT0KKEo9Z1sxMl0oMTEseVs0OV0oNSx0aGlzLChoPVsiUCIsImtKIiwiZyJdLDI4KSkpLEoubmV4dCgpKS52YWx1ZSxKKS5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKS52YWx1ZSksdj1KLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpKS52YWx1ZSxKLm5leHQoKS52YWx1ZSksSi5uZXh0KCkudmFsdWUpLEopLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsbj1KLm5leHQoKS52YWx1ZSxhPUoubmV4dCgpLnZhbHVlLGI9Si5uZXh0KCkudmFsdWUsWD1KLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKSkudmFsdWUsSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpKS52YWx1ZSxKLm5leHQoKS52YWx1ZSksSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpKS52YWx1ZSxKKS5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLAp1KSx0aGlzKS5TPU4sZCksdGhpcykuSz1CLFopLHRoaXMpLmo9Yix0aGlzLkM9VixMKSx0aGlzKS5YZz1xLHopLEMpLHRoaXMubFk9dCx0aGlzLkI9bix0aGlzLm5xPWYseCksdGhpcylbaFsyXV09dix0aGlzKS5NPVEsaFswXV09Uyx0aGlzKS5BPVcsaFsxXV09YSxQKSx0aGlzLlU9QSxwKSxFKSx0aGlzKS5IPVgsYyksciksSyl9LE9bMjFdKDUsVEMsTEQpLFRDLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4LGpOLFpHLG5ELHY4LGZELG9aLFFxLFQ4LG1sLEc4LHBELEtLLGZLLHRZLGwzLHIwLFhoLGJMLFJaLElaLFc4LHZvLHUzKXtyZXR1cm4gWkc9KEo9Wyh2PShzdz0obkQ9KGZLPSh0PShkPSh0WT1bKGI9WyhQPVsocD0oTD0oeD0oTT0oQT0odjg9KHE9KHc9KFE9KEI9KHo4PShRcT0oaD0oWj0obj0oVj0oS0s9KGE9KGIzPShVPShiTD0oRT0oTj0KKEpZPSh2bz0oQz0oZkQ9KFc9KHo9KFhoPShmPShqTj0oVDg9KFJaPShwRD0oQjg9KFM9KG1sPWtbNDJdKDYzLCh1Mz1bMTksITAsKGM9WzAsITEsMV0sMTApXSx0aGlzKSw0MiksZ1sxMl0oNixtbCkpLFMubmV4dCgpLnZhbHVlKSxTKS5uZXh0KCkudmFsdWUsUy5uZXh0KCkpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxLPVMubmV4dCgpLnZhbHVlLElaPVMubmV4dCgpLnZhbHVlLFMubmV4dCgpKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksdT1TLm5leHQoKS52YWx1ZSxsMz1TLm5leHQoKS52YWx1ZSxHOD1TLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLFMpLm5leHQoKS52YWx1ZSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSxyMD1TLm5leHQoKS52YWx1ZSxTLm5leHQoKSkudmFsdWUsUykubmV4dCgpLnZhbHVlLFMpLm5leHQoKS52YWx1ZSwKUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksWD1TLm5leHQoKS52YWx1ZSxvWj1TLm5leHQoKS52YWx1ZSxTKS5uZXh0KCkudmFsdWUsUy5uZXh0KCkudmFsdWUpLFMubmV4dCgpLnZhbHVlKSxTLm5leHQoKS52YWx1ZSksUy5uZXh0KCkudmFsdWUpLFMpLm5leHQoKS52YWx1ZSxTKS5uZXh0KCkudmFsdWUsUy5uZXh0KCkpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxTKS5uZXh0KCkudmFsdWUsUykubmV4dCgpLnZhbHVlLFc4PVMubmV4dCgpLnZhbHVlLFMubmV4dCgpLnZhbHVlKSxbZ1s0OF0oMjQsNDUyLEI4KSxZWzEyXSgxLEI4LEI4KSxnWzQ4XSh1M1syXSwxODEscEQpLFJbdTNbMF1dKDczLHBELHBELEI4KSxnWzQ4XSgxOCwxMTIsUlopLFJbdTNbMF1dKDEsUlosUloscEQpLGdbNDhdKDI2LDI4LHZvKSxtWzEyXSg0OCxxLGNbMF0pLG1bMTJdKDk3LHY4LDVFMyksSShSWixSWix2byxxLHY4KSxnWzQ4XSgyNCw0MTYsVDgpLG1bMTJdKDQ0LEssCklSKCkpLEkoSVosUlosVDgsSyksSFs0NF0oNDcsSyldKSxnKVs3XSgzNiksZylbN10oNiksbVsxMl0oNDcsVzgsY1sxXSkpLFJbdTNbMF1dKDY1LHY4LFcsSVopLG1bMTJdKDQ0LE0sMTAwKSxtWzEyXSg0NyxBLGNbMF0pLEkoTSx2OCx2byxBLE0pLG1bMzNdKDQyLElaLFcsT1syNV0oOSxNKSksUlt1M1swXV0oNDAsdjgsRzgsdjgpLFlbMF0oMjksTCxPWzI1XSgxLHY4KSxPWzI1XSg5LEEpKSxtWzEyXSg5NyxBLGNbMl0pLFlbMF0oMjYsTCxPWzI1XSgxLHY4KSxPWzI1XSg3LEEpKSxtWzEyXSgzNixBLDIpLFlbMF0oMjcsTCxPWzI1XSgxLHY4KSxPWzI1XSgzLEEpKSxtWzEyXSg0MSxXOCx1M1sxXSksTCxZWzBdKDI1LHAsT1syNV0oMyxXOCksT1syNV0oNyxmRCkpLEkoTSxJWixRLFcscSksUlsxNl0oNjAsVyxPWzI1XSgxLFcpLGNbMl0pLFJbMTZdKDU4LGwzLE9bMjVdKDUsbDMpLGNbMl0pLHBdLG1bMTJdKDk2LFcsY1swXSkpLG1bMTJdKDQ3LHEsY1syXSksbVsxMl0oNDAsZkQsdTNbMV0pLAptWzEyXSgzOCxDLGNbMV0pLGdbNDhdKDE2LDE5NSxRKSxnWzQ4XSgyNiwzMTMsRzgpLFJbdTNbMF1dKDgsbDMsRzgsSVopLERbMTRdKDM0LFcsUCxsMyksSFs0NF0oNTksUSldLFJbdTNbMF1dKDczLGpOLFcsSVopKSxJKFhoLHosZixqTiksbVszM10oMTYsdSxXLE9bMjVdKDksWGgpKV0sW0kodSxJWix2byksbVsxMl0oNDQsVyxjWzBdKSxnWzQ4XSgxNiwzMzgsZiksUlt1M1swXV0oNDEsbDMsRzgsSVopLGdbNDhdKDE4LDQyMix6KSxSWzEzXSg3NSx6LE9bMjVdKDcseikseXYoKSksRFsxNF0oNjYsVyx0WSxsMyldKSxnKVs3XSg2KSxbUlt1M1swXV0oMzMsak4sYkwsSlkpLEkocSxVLGYsak4pLFlbMF0oMjUsdCxPWzI1XSg1LHEpLE9bMjVdKDksQykpLG1bMTJdKDQyLEUsdTNbMV0pLHRdKSxnWzddKDM5KSksW1JbdTNbMF1dKDMzLGpOLGJMLEpZKSxJKHEsYjMsZixqTiksWVswXSgyOSxuRCxPWzI1XSg1LHEpLE9bMjVdKDksQykpLG1bMTJdKDM4LHIwLHUzWzFdKSxuRF0pLHI9Z1s3XSg0KSwKZ1s3XSg1KSksUilbdTNbMF1dKDcyLGpOLFcsdSksWVswXSgyNixyLE9bMjVdKDksak4pLE9bMjVdKDEsQykpLFJbMTZdKDYwLHEsT1syNV0oMyxXKSwzKSxtWzEyXSgzOSx2OCxjWzBdKSxJKG4sVixYLHY4LHEpLEdbMjRdKDE4LHEsT1syNV0oMSxXKSw0KSxJKFosVixvWixsMyxxKSxJKEpZLElaLHZvLG4sWiksUlt1M1swXV0oMSxOLEc4LEpZKSxtWzEyXSg0MixFLGNbMV0pLG1bMTJdKDk1LGJMLGNbMF0pLGdbNDhdKDI2LDkwLFUpLFJbMTNdKDc4LFUsT1syNV0oNyxVKSx5digpKSxEWzE0XSg2NixiTCxmSyxOKSxIWzQ0XSg1MSxVKSxSWzE2XSg2MCxxLE9bMjVdKDcsVyksNCksbVsxMl0oMzYsdjgsY1swXSksSShuLFYsWCx2OCxxKSxJKEpZLElaLHZvLG4sVyksUlt1M1swXV0oNDAsTixHOCxKWSksbVsxMl0oOTYscjAsY1sxXSksbVsxMl0oNDQsYkwsY1swXSksbVsxMl0oNDEsQSwxMDApLGdbNDhdKHUzWzJdLDE0OSxiMyksUlsxM10oNzMsYjMsT1syNV0oNSxiMykseXYoKSksCkRbMTRdKDI2LGJMLHN3LE4pLEhbNDRdKDU4LGIzKSxnMFs1XSgzNiwyNSxyMCxPWzI1XSg3LHIwKSksT1s0OF0oMywyMyxxLE9bMjVdKDMsRSksT1syNV0oMSxyMCkpLFlbMF0oMjgsdixPWzI1XSg1LHEpLE9bMjVdKDcsQykpLFJbdTNbMF1dKDgsUXEsVyxJWiksSShRcSxRcSx6OCx6KSxtWzEyXSg0MCxxLGNbMF0pLFJbdTNbMF1dKDQwLFFxLHEsUXEpLEkocSxKWSx3LFFxKSxJKHEsaCxCLEpZKSxHWzI0XSgxOCxhLE9bMjVdKDcsYSksY1syXSksWVswXSgyOSx2LE9bMjVdKDMsYSksT1syNV0oNSxLSykpLHJdLFttWzEyXSg0MixXLGNbMF0pLG1bMTJdKDM2LFYsYUEoKSksWVsxMl0odTNbMF0sVixWKSxtWzEyXSgzOCxYLHNVKCkpLG1bMTJdKDM5LG9aLGN1KCkpLG1bMTJdKDQwLEIsZV8oKSksZ1s0OF0oMTgsNDk5LHcpLGdbNDhdKDE2LDIzOSx6OCksbVsxMl0oMzgscSwiIiksUlt1M1swXV0oNjQsbDMsRzgsSVopLEkoaCxxLFQ4LHEpLG1bMTJdKDQ4LGEsY1swXSksbVsxMl0oNDcsCktLLDMpLERbMTRdKDk4LFcsSixsMyksdixrWzE4XSgzNSxoLE9bMjVdKDcsaCkpLEhbNDRdKDQzLHopLEhbNDRdKDUwLFgpLEhbNDRdKDU0LG9aKSxIWzQ0XSg1MCxWKSxIWzQ0XSg1NCxUOCksSFs0NF0oNTAsZiksSFs0NF0oNDYsRzgpLEhbNDRdKDYzLHZvKSxIWzQ0XSg0MyxCKSxIWzQ0XSg1MCx3KSxIWzQ0XSg1OSx6OCksUls0Nl0oODAsdGhpcyxoKV0pLFtdLmNvbmNhdCh4LGIsZCxaRyl9LE9bMjFdKDUsUWosTEQpLFFqLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVyblsoSz0oQj0oQT0oSj0oYj0oQz0oej1rWzQyXSg1Nyx0aGlzLCh2PVs0NCw1LCIiXSx2KVsxXSksZ1sxMl0oOSx6KSksQy5uZXh0KCkpLnZhbHVlLEMpLm5leHQoKS52YWx1ZSxDLm5leHQoKS52YWx1ZSksQy5uZXh0KCkudmFsdWUpLEMubmV4dCgpLnZhbHVlKSxnWzQ4XSgyNCwxMjIsYikpLFlbMTJdKDE3LEIsYiksSFt2WzBdXSg0NixiKSxnWzQ4XSgyNCwzNDUsSiksUlsxOV0oMzIsCkssSixCKSxIW3ZbMF1dKDU4LEopLEhbdlswXV0oNDMsQiksbVsxMl0oNDIsQSx2WzJdKSxPWzQ4XSg3OCxLLE9bMjVdKDEsQSksT1syNV0odlsxXSxLKSksSFt2WzBdXSg0MixBKSxSWzQ2XSg2NCx0aGlzLEspXX0sT1syMV0oNCxwRixMRCkscEYpLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQpe3JldHVyblsoUT0oYj1bKHg9KEs9KEo9KEw9KHA9KHE9KHY9KFo9KGY9KFA9KEI9KFg9KFc9KGE9KFY9KFM9KEE9KHI9KG49a1s0Ml0oNTksdGhpcywoRT0oZD1bNTgsNSw1MV0sWzI5NiwwLDIxMl0pLDIyKSksZ1sxMl0oMyxuKSkscikubmV4dCgpLnZhbHVlLHIpLm5leHQoKS52YWx1ZSxyLm5leHQoKSkudmFsdWUsci5uZXh0KCkpLnZhbHVlLHIubmV4dCgpLnZhbHVlKSxyLm5leHQoKS52YWx1ZSksci5uZXh0KCkpLnZhbHVlLHIpLm5leHQoKS52YWx1ZSxyKS5uZXh0KCkudmFsdWUsci5uZXh0KCkpLnZhbHVlLApyLm5leHQoKSkudmFsdWUsdT1yLm5leHQoKS52YWx1ZSxyLm5leHQoKSkudmFsdWUsci5uZXh0KCkpLnZhbHVlLHIubmV4dCgpLnZhbHVlKSxOPXIubmV4dCgpLnZhbHVlLEM9ci5uZXh0KCkudmFsdWUsci5uZXh0KCkudmFsdWUpLHIubmV4dCgpLnZhbHVlKSxjPXIubmV4dCgpLnZhbHVlLHo9ci5uZXh0KCkudmFsdWUsW2dbNDhdKDE4LDQ1MixBKSxZWzEyXSgzLEEsQSksZ1s0OF0oMjQsMzE3LFMpLGdbNDhdKDE2LDUyLFYpLEkoYSxBLFMsViksSFs0NF0oNTUsUyksSFs0NF0oNjMsViksZ1s0OF0oMTYsRVsyXSxXKSxnWzQ4XSgxMCw0MTUsWCksZ1s0OF0oMTYsMTU3LEIpLGdbNDhdKDI2LEVbMF0sUCksUlsxM10oNzIsdixPWzI1XSg5LFgpLGhPKCkpXSksUilbMTldKDEsZixxLGEpLFJbMTldKDQxLFosVyxmKSxJKFosWixQLHYsQiksSSh1LEosTixaKV0sW21bMTJdKDk2LHEsRVsxXSksbVsxMl0oMzYscCxhQSgpKSxZWzEyXSgzLHAscCksbVsxMl0oNDcsTCxjdSgpKSxtWzEyXSg5NSwKTixlXygpKSxtWzEyXSgzOSx1LCIiKSxnWzQ4XSgxMCwzMTMseiksUlsxOV0oOCxDLHosYSksSFs0NF0oNTUseiksZ1s0OF0oMTgsNDE2LGMpLEkoSix1LGMsdSksSFs0NF0oZFsyXSxjKSxtWzEyXSg0MixLLGRbMV0pLEkoSyxwLEwsSyxDKSxEWzE0XShkWzBdLHEsYixLKSx0aGlzLnN0cmluZ2lmeShKLEopLEhbNDRdKDU1LHUpLEhbNDRdKGRbMF0sZiksSFs0NF0oNjMsYSksSFs0NF0oNDIsWiksSFs0NF0oZFswXSxXKSxIWzQ0XSg2MixLKSxIWzQ0XSg1NCxDKSxIWzQ0XSg0MyxYKSxIWzQ0XSg0NyxCKSxIWzQ0XSg1OSxQKSxIWzQ0XSg0Myx2KSxIWzQ0XSg0NyxMKSxIWzQ0XSg0MixOKSxIWzQ0XSg1NSxwKSxIWzQ0XSg1NSxxKSxSWzQ2XSg4Mix0aGlzLEopXSkseCksUV19LE9bMjFdKDMsV1IsTEQpLFdSLnByb3RvdHlwZS5GPWZ1bmN0aW9uKCl7cmV0dXJuW2VbN10oNjUsdGhpcy5NKV19LFdSLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsCk4seCl7cmV0dXJuWyhRPShOPShXPShuPShLPShiPShaPSh6PShKPSh2PShBPWdbMTJdKDQsa1s0Ml0oNTgsdGhpcywoQz1bMzcsKHg9WzEwMDYsNDgsMF0sNzgpLDE5NjVdLDEwKSkpLEEubmV4dCgpKS52YWx1ZSxBLm5leHQoKS52YWx1ZSksQj1BLm5leHQoKS52YWx1ZSxBLm5leHQoKS52YWx1ZSksQSkubmV4dCgpLnZhbHVlLEEubmV4dCgpLnZhbHVlKSxBLm5leHQoKS52YWx1ZSksQSkubmV4dCgpLnZhbHVlLEEubmV4dCgpLnZhbHVlKSxBKS5uZXh0KCkudmFsdWUsZylbN10oNSkscD1nWzddKDM3KSxIWzQ0XSg1OCxaKSksSFs0NF0oNTQsYiksSFs0NF0oNTgsSyksSFs0NF0oNTQsbiksZ1t4WzFdXSgyNCx4WzBdLHYpLFlbMTJdKDE2LHYsdiksWVt4WzJdXSgyOSxwLE9bMjVdKDUsdiksT1syNV0oNSxaKSksZ1t4WzFdXSgyNCxDW3hbMl1dLEopLFJbMTldKDgsQixKLHYpLFlbeFsyXV0oMjkscCxPWzI1XSgxLEIpLE9bMjVdKDksWikpLGdbeFsxXV0oMTYsMTcyNSx6KSxJKEIsdiwKSix6KSxtWzEyXSg5Nix6LHhbMl0pLFJbMTldKDY1LEIseixCKSxZW3hbMl1dKDI3LFEsT1syNV0oMyxCKSxPWzI1XSgzLFopKSxnW3hbMV1dKDI2LDEwNTQseiksUlsxOV0oNjQsYix6LEIpLGdbeFsxXV0oMTYsQ1syXSx6KSxSWzE5XSg0MSxLLHosQiksUSxnW3hbMV1dKDI2LDIwMjAseiksSShCLHYsSix6KSxtWzEyXSgzOSx6LHhbMl0pLFJbMTldKDczLEIseixCKSxZW3hbMl1dKDI3LHAsT1syNV0oOSxCKSxPWzI1XSg5LFopKSxnW3hbMV1dKDE4LDU1LHopLFJbMTldKDgsbix6LEIpLHAsZVs3XSg2NSxXKSxnW3hbMV1dKDE4LENbMV0seiksYyQoTix6LHRoaXMuTSxXLGIsSyxuKSx0aGlzLnN0cmluZ2lmeShOLE4pLFJbNDZdKDY2LHRoaXMsTildfSxXUi5wcm90b3R5cGUpLlI9ZnVuY3Rpb24oQil7dGhpc1soQj1bNCwzLCJNIl0sQilbMl1dPWdbMTJdKEJbMF0seVs0OV0oQlsxXSx0aGlzLDEpKS5uZXh0KCkudmFsdWV9LE9bMjFdKDEsTkYsTEQpLE5GKS5wcm90b3R5cGUudj1mdW5jdGlvbihCLAp6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1KXtyZXR1cm5bKFo9KHI9KEw9KFE9KEI9KEU9KGM9KHY9KFM9KHE9KEE9KHg9KG49KEs9Z1sxMl0oOSxrWzQyXSg0NCx0aGlzLChwPShKPWdbKGI9Z1thPSh1PVs0MywyNSw3XSxbMjg0LDIyMiwzMTNdKSx1WzJdXSgzNyksdSlbMl1dKDM4KSxnKVt1WzJdXSg2KSwyMCkpKSxLLm5leHQoKS52YWx1ZSksUD1LLm5leHQoKS52YWx1ZSxmPUsubmV4dCgpLnZhbHVlLFY9Sy5uZXh0KCkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKS52YWx1ZSksSykubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKS52YWx1ZSksej1LLm5leHQoKS52YWx1ZSxLLm5leHQoKS52YWx1ZSksVz1LLm5leHQoKS52YWx1ZSxOPUsubmV4dCgpLnZhbHVlLEsubmV4dCgpLnZhbHVlKSxLLm5leHQoKS52YWx1ZSksSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxLLm5leHQoKSkudmFsdWUsCkM9Sy5uZXh0KCkudmFsdWUsZ1s0OF0oMTgsNzgsbikpLEhbNDRdKDU1LFopLGdbNDhdKDE4LDEwMDYsUyksWVsxMl0oMyxTLFMpLEhbNDRdKHVbMF0scSksWVswXSh1WzFdLGIsT1t1WzFdXSh1WzJdLFMpLE9bdVsxXV0oOSxxKSksZ1s0OF0oMjQsMzcsQSksUlsxOV0oMzIseCxBLFMpLFlbMF0oMjQsYixPW3VbMV1dKDMseCksT1t1WzFdXSgzLHEpKSxnWzQ4XSgxNixhWzFdLHYpLEkoeCxTLEEsdiksZ1s0OF0oMTYsYVsyXSxmKSxSWzE5XSg2NCx6LGYseCksbVswXSg5LEosT1t1WzFdXSg1LHopLDM2KSxSWzE2XSgyNix6LE9bdVsxXV0odVsyXSx6KSwzNSksZ1s0OF0oMjQsMjgsViksSSh4LHgsVix6KSxKLGMkKFosbiksbVsxMl0oOTUsYywwKSxSWzE5XSgzMix6LGYseCksZ1s0OF0oMjYsYVswXSxQKSxnWzQ4XSgxMCwyMTgsTiksZ1s0OF0oMTgsNTUsUSksRFsxNF0oOTgsYyxbUlsxOV0oNjQsVyxjLHgpLG1bMTJdKDQyLEUsMSksUlsxOV0oMzMsQixOLFcpLFlbMF0odVsxXSxwLApPW3VbMV1dKDMsQiksT1t1WzFdXSg5LFApKSxtWzEyXSg0NCxFLDApLHAsUlsxOV0oNDEsTCxRLFcpLGMkKHIsbixFLEwpLG1bMzNdKHVbMF0sWixjLE9bdVsxXV0odVsyXSxyKSldLHopLGIsYyQoQyxuLFopLGtbMThdKDU3LEMsT1t1WzFdXSgzLEMpKSxSWzQ2XSg2NCx0aGlzLEMpXX0sTylbMjFdKDEsZkYsTEQpLGZGLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCxqTixaRyxuRCx2OCxmRCxvWixRcSxUOCxtbCxHOCxwRCxLSyxmSyx0WSxsMyxyMCxYaCxiTCxSWixJWixXOCx2byx1MyxsTCxhcCxRUyxGMixQcSxVUixjbyxNbSxwaCx5cSxoMyxXbyxRJCxvcCxLaCxCbyxmaCwkOCxXcSxnRSxzbSxOVSxzOCxOMSxYdCxKUSwkZix3MCx6eSxrZixTWCxtTixPMSxsbSx4aCx2cSxEaSxXZix1TixhQix4OCxLZyxmbixZOCl7cmV0dXJuIEE9WyhLSz0KKHY9KGZuPShwPShKUT0oU1g9KGM9KHRZPShQcT0oc209KFA9KEI9KE8xPShGMj0oYXA9KGJMPShhQj0oZD0odz0oRT0oWGg9KE1tPShXcT0oSj0odU49KHZvPSh6OD0oYjM9KGE9KGpOPShJWj0oZkQ9KFU9KE49KGgzPShwRD0oeGg9KGZLPShUOD0oV2Y9KHBoPShyPShXOD0oUT0oTjE9KGI9KEM9KFo9KFc9KG9aPShsbT0oRGk9KEpZPShLZz0oczg9KGtmPShXbz0oWD0oWkc9KHU9KEtoPShmPShRJD0oY289KEw9KHY4PShRUz0oaD0oVj0oVVI9KCQ4PShyMD0oZ0U9KEc4PShsTD0oQjg9KGZoPVsoeD0oUXE9KFh0PSh2cT0oTlU9KFJaPShTPWdbMTJdKCh3MD1bKFk4PVs5LCJNIiw4NF0sMCksMSwxODYyXSwxMiksa1s0Ml0oNjIsdGhpcyx3MFsxXSkpLm5leHQoKS52YWx1ZSxnWzEyXSg3LGtbNDJdKDQ1LHRoaXMsNSkpKSxxPVJaLm5leHQoKS52YWx1ZSxSWi5uZXh0KCkudmFsdWUpLG5EPVJaLm5leHQoKS52YWx1ZSxSWikubmV4dCgpLnZhbHVlLFJaLm5leHQoKS52YWx1ZSksZylbN10oNyksCmcpWzddKDUpLHRoaXMpLkFlLG1bMTJdKDQxLHEsdzBbMF0pLFJbMTldKDcyLHRoaXMuWCxxLHRoaXMub1QpLEhbNDRdKDYyLHRoaXMub1QpLEdbMjVdKDgzLDIsdGhpcy5YLHRoaXMuaSx4KSx2SShOVSx0aGlzLmtKLHRoaXMuWCksdkkobkQsdGhpcy5XMSx0aGlzLlgpLEhbNDRdKDUwLHEpLFlbMF0oMjYsUXEsT1syNV0oMSx0aGlzLlcpLE9bMjVdKDEscSkpLFJbMTZdKDI4LHZxLE9bMjVdKDMsTlUpLE9bMjVdKDMsdGhpcy5IKSksUlsxNl0oNTYsWHQsT1syNV0oWThbMF0sbkQpLE9bMjVdKDMsdGhpcy5XKSksWVs0MV0oNzEsdnEsT1syNV0oMyx2cSksT1syNV0oMyx2cSkpLFlbNDFdKDcwLFh0LE9bMjVdKDMsWHQpLE9bMjVdKDMsWHQpKSxHWzI0XSgxOCxxLE9bMjVdKDMsdnEpLE9bMjVdKDMsWHQpKSx2SShxLHRoaXMuaixxKSxHWzI0XSgyNix0aGlzLm8sT1syNV0oNyx0aGlzLm8pLE9bMjVdKDUscSkpLFFxLG1bNF0oMTMsTlUsdGhpcy5IKSxtWzRdKDEyLG5ELHRoaXMuVyksSFs0NF0oNjMsCnEpLEhbNDRdKDU5LE5VKSxIWzQ0XSg0NyxuRCksSFs0NF0oNTksdnEpLEhbNDRdKDYyLFh0KSxrWzE3XSgzNykseCxIWzQ0XSg0Nix0aGlzLlgpLEdbMjRdKDE2LHRoaXMuQyxPWzI1XSgxLHRoaXMuQyksdzBbMV0pLGtbMTddKDM0KV0seDg9Z1sxMl0oMTIsa1s0Ml0oNDcsdGhpcywyMykpLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpKS52YWx1ZSx4OCkubmV4dCgpLnZhbHVlLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpLnZhbHVlKSx4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpKS52YWx1ZSx4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKSkudmFsdWUseDgubmV4dCgpLnZhbHVlKSx4OC5uZXh0KCkpLnZhbHVlLHg4KS5uZXh0KCkudmFsdWUseDgubmV4dCgpLnZhbHVlKSx4OC5uZXh0KCkudmFsdWUpLG9wPXg4Lm5leHQoKS52YWx1ZSx4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKS52YWx1ZSkseDgubmV4dCgpKS52YWx1ZSx4OCkubmV4dCgpLnZhbHVlLAp4OC5uZXh0KCkudmFsdWUpLHg4Lm5leHQoKS52YWx1ZSkseDgpLm5leHQoKS52YWx1ZSxnKVs3XSg1KSxtTj1nWzddKDM4KSxnKVs3XSgzOSksZ1s3XSgzOSkpLHRoaXMuUjEpLG1bMTJdKDQ4LEI4LHcwWzBdKSksUlsxOV0oNDAsdGhpcy5vVCxCOCx0aGlzLm9UKSksRylbMjVdKDgwLDIsdGhpcy5vVCx0aGlzLmksRGkpLEhbNDRdKDQ2LEI4KSksWSlbMF0oMjQsS2csT1syNV0oWThbMF0sdGhpcy5YKSxPWzI1XSgxLEI4KSksdkkpKGxMLHRoaXMuS3EsdGhpcy5YKSx2SShsTCx0aGlzW1k4WzFdXSxsTCkpLHZJKEc4LHRoaXMuRE0sdGhpcy5YKSksdkkoRzgsdGhpc1tZOFsxXV0sRzgpKSx2SSkoZ0UsdGhpcy5sWSx0aGlzLlgpLHZJKGdFLHRoaXNbWThbMV1dLGdFKSksdkkocjAsdGhpcy5sWSx0aGlzLm9UKSksUlsxNl0oMjQscjAsT1syNV0oWThbMF0scjApLE9bMjVdKDcsZ0UpKSksdkkocjAsdGhpc1tZOFsxXV0scjApKSxZWzQxXSgyMywkOCxPWzI1XSg3LHIwKSw0KSksRylbMjRdKDE4LAokOCxPWzI1XSg3LCQ4KSxPWzI1XSg3LGdFKSkseXE9dkkoVVIsdGhpcy5nQix0aGlzLlgpLEgpWzQ0XSg0Nix2OCksenk9SFs0NF0oNTAsb3ApLEgpWzQ0XSg1NCxoKSx6PVlbMF0oMjYsbU4sT1syNV0oMSxVUiksT1syNV0oWThbMF0sdjgpKSxJKFYsVVIsdGhpcy5CMSx0aGlzLmRWKSksR1sxNF0oMzksVixPWzI1XShZOFswXSxWKSxPWzI1XSgzLFVSKSkpLGwzPVJbMTldKDczLG9wLHRoaXMucWQsViksc3c9dGhpcy5pNSxnWzEyXSg2LGdbMjZdKDU2LExSLkooKSx3MFsxXSkpLm5leHQoKS52YWx1ZSksZ1s3XSg0KSksbj1bSFs0NF0oNTQsak4pLFlbMF0oMjQsYSxPWzI1XSg1LGpOKSxPWzI1XSgxLHN3LmcpKSxSWzE5XShZOFswXSxqTixvcCxzdy5nKSxHWzE0XSgyMyxqTixPWzI1XSg3LGpOKSx3MFswXSksYSxtWzRdKDQsak4sb3ApXSxMUi5KKCkudihqTiksTT1bbG0sb1osVyxaLEMsYixOMSxRLFc4LHIscGgsV2YsVDgsZksseGgscEQsaDMseXEsTix6eSxVLHosZkQsSVosbDMsCm4sSShRUyxWLHRoaXMuWEMpLFlbMF0oMjUsbU4sT1syNV0oMyx2OCksT1syNV0oMSxRUykpLFJbMTldKDMyLEwsdGhpcy5NaixRUyksWVsxMl0oMSxCOCx0aGlzLnZsKSxHWzI0XSgxMCxMLE9bMjVdKDMsTCksT1syNV0oMSxCOCkpLHZJKEwsdGhpc1tZOFsxXV0sTCksUlsxOV0oMSxjbyx0aGlzLkpNLFFTKSxZWzEyXSgxLEI4LHRoaXMubVgpLEdbMjRdKDE4LGNvLE9bMjVdKDEsY28pLE9bMjVdKDEsQjgpKSx2SShjbyx0aGlzW1k4WzFdXSxjbyksUlsxOV0oNDEsUSQsdGhpcy5JdyxRUyksdkkoUSQsdGhpc1tZOFsxXV0sUSQpLFJbMTldKDMyLGYsdGhpcy52dixRUyksdkkoZix0aGlzW1k4WzFdXSxmKSxjJCh2OCx0aGlzLm0sTCxjbyxRJCxmKSxHWzI0XSgyNCxCOCxPWzI1XSg3LGxMKSxPWzI1XSgzLGNvKSksR1syNF0oMjYsQjgsT1syNV0oNSxCOCksT1syNV0oNSxRJCkpLFlbNDFdKDIxLCQ4LE9bMjVdKDcsJDgpLE9bMjVdKDcsQjgpKSxHWzI0XSgyNixCOCxPWzI1XSg1LEc4KSwKT1syNV0oMSxMKSksR1syNF0oMjQsQjgsT1syNV0oNyxCOCksT1syNV0oNSxmKSksR1syNF0oMTAsQjgsT1syNV0oNyxCOCksdzBbMV0pLFJbMF0oMTIsJDgsT1syNV0oWThbMF0sJDgpLE9bMjVdKFk4WzBdLEI4KSksUlsxOV0oWThbMF0saCx0aGlzLk15LFYpLEdbMTRdKDM5LGgsT1syNV0oWThbMF0saCksT1syNV0oNyxWKSksbU4sdkkoJDgsdGhpc1tZOFsxXV0sJDgpLEdbMjRdKDEwLHRoaXMuSSxPWzI1XSgxLHRoaXMuSSksT1syNV0oNSwkOCkpLEhbNDRdKDYyLCQ4KSx2SShaRyx0aGlzLmRlLHRoaXMuWCksWVs0MV0oNCxaRyxPWzI1XShZOFswXSxaRyksMTAwKSx2SShaRyx0aGlzW1k4WzFdXSxaRyksdkkoWCx0aGlzLktxLHRoaXMub1QpLFJbMTZdKDI4LFgsT1syNV0oNSxYKSxPWzI1XSgxLGxMKSksWVs0MV0oNSxYLE9bMjVdKDUsWCksT1syNV0oNyxYKSksdkkoV28sdGhpcy5ETSx0aGlzLm9UKSxSWzE2XSgyNCxXbyxPWzI1XSgxLFdvKSxPWzI1XSg3LEc4KSksWVs0MV0oNywKV28sT1syNV0oNSxXbyksT1syNV0oWThbMF0sV28pKSxHWzI0XSgxOCxrZixPWzI1XShZOFswXSxYKSxPWzI1XSg3LFdvKSksdkkoa2YsdGhpcy5qLGtmKSxHWzI0XSgxNixrZixPWzI1XSgzLGtmKSwuNDkpLHZJKGtmLHRoaXNbWThbMV1dLGtmKSx2SShzOCx0aGlzLk5kLHRoaXMuWCksdkkoQjgsdGhpcy5CaCx0aGlzLlgpLFlbNDFdKDY5LHM4LE9bMjVdKDUsczgpLE9bMjVdKDcsQjgpKSx2SShzOCx0aGlzW1k4WzFdXSxzOCksYyQoS2gsdGhpcy5tLGdFLHIwLGxMLEc4LHY4LG9wLGgsWkcsa2YsczgpLFlbMTVdKDczLHUsT1syNV0oNyx0aGlzLkspLDE2KSxtWzMzXSgxMSx0aGlzLkcsdSxPWzI1XSgzLEtoKSksR1syNF0oMTgsdGhpcy5LLE9bMjVdKDMsdGhpcy5LKSx3MFsxXSksSFs0NF0oNjIsdGhpcy5YKSxLZyx2SShsTCx0aGlzLmtKLHRoaXMub1QpLHZJKEc4LHRoaXMuVzEsdGhpcy5vVCksSFs0NF0oNjIsQjgpLFlbMF0oMjQsSlksT1syNV0oNyx0aGlzLlcpLE9bMjVdKDMsCkI4KSksUlsxNl0oNTgsWCxPWzI1XSgzLGxMKSxPWzI1XSgxLHRoaXMuSCkpLFJbMTZdKDI2LFdvLE9bMjVdKDUsRzgpLE9bMjVdKDMsdGhpcy5XKSksWVs0MV0oNCxYLE9bMjVdKDMsWCksT1syNV0oWThbMF0sWCkpLFlbNDFdKDY5LFdvLE9bMjVdKFk4WzBdLFdvKSxPWzI1XSgzLFdvKSksR1syNF0oMjQsQjgsT1syNV0oWThbMF0sWCksT1syNV0oNyxXbykpLHZJKEI4LHRoaXMuaixCOCksR1syNF0oMTAsdGhpcy5vLE9bMjVdKDEsdGhpcy5vKSxPWzI1XSg1LEI4KSksSlksbVs0XSgxNCxsTCx0aGlzLkgpLG1bNF0oMTMsRzgsdGhpcy5XKSxIWzQ0XSg2MyxCOCksSFs0NF0oNDIsbEwpLEhbNDRdKDQ3LEc4KSxIWzQ0XSg1MCxnRSksSFs0NF0oNTQscjApLEhbNDRdKDYzLEtoKSxIWzQ0XSg0Myx1KSxIWzQ0XSg1MSx0aGlzLm9UKSxrWzE3XSgzNiksRGksSFs0NF0oNTUsdGhpcy5vVCksR1syNF0oMjQsdGhpcy5DLE9bMjVdKDEsdGhpcy5DKSx3MFsxXSksa1sxN10oMzMpXSxnWzEyXSgxMiwKa1s0Ml0oNTcsdGhpcywxNCkpKSxiMy5uZXh0KCkpLnZhbHVlLGIzLm5leHQoKS52YWx1ZSksYjMubmV4dCgpLnZhbHVlKSxiMy5uZXh0KCkpLnZhbHVlLGIzKS5uZXh0KCkudmFsdWUsSz1iMy5uZXh0KCkudmFsdWUsYjMubmV4dCgpLnZhbHVlKSxiMy5uZXh0KCkudmFsdWUpLG1sPWIzLm5leHQoKS52YWx1ZSxiMy5uZXh0KCkpLnZhbHVlLHQ9YjMubmV4dCgpLnZhbHVlLGIzLm5leHQoKS52YWx1ZSksYjMubmV4dCgpLnZhbHVlKSxiMykubmV4dCgpLnZhbHVlLGdbN10oMzkpKSxnWzddKDM5KSksQm89Z1s3XSg0KSxnWzddKDM3KSksZ1s3XSg2KSksZ1s3XSg0KSksdTM9W1JbMTldKDgsdm8sbWwsdU4pLHZJKEUsdGhpcy5sWSx2byksUlsxNl0oNTYsdCxPWzI1XSgxLEUpLE9bMjVdKDEsdGhpcy5FMykpLG1bMF0oMTQsQm8sNTIsT1syNV0oWThbMF0sdCkpLG1bMF0oOCxCbyxPWzI1XSg3LHQpLHcwWzBdKSxZWzBdKDI3LEJvLE9bMjVdKDUsdCksdzBbMF0pLG1bMF0oMTQsRjIsT1syNV0oMywKdGhpcy5BKSw2KSxtWzBdKDE0LEYyLE9bMjVdKDEsdCksT1syNV0oNyx0aGlzLkEpKSxSWzBdKDMsejgsT1syNV0oMSx0KSxPWzI1XSg3LHRoaXMuQSkpLHZJKHo4LHRoaXNbWThbMV1dLHo4KSxSWzBdKDcsdyxPWzI1XSgxLHQpLE9bMjVdKFk4WzBdLHo4KSksWVswXSgyOCxPMSx3MFsxXSx3MFsxXSksRjIsbVs0XSgxNCx0LHcpLE8xLEdbMjRdKDE2LHRoaXMuUCxPWzI1XSgxLHRoaXMuUCksdzBbMV0pLFJbMF0oMixkLHcwWzFdLE9bMjVdKDcsdGhpcy5QKSksbVswXSgxMSxCLC4xLE9bMjVdKDEsZCkpLG1bMTJdKDk2LGQsLjEpLEIsUlsxNl0oMjgsYUIsdzBbMV0sT1syNV0oNSxkKSksWVs0MV0oMjMsdGhpcy5BLE9bMjVdKFk4WzBdLGFCKSxPWzI1XSg3LHRoaXMuQSkpLFlbNDFdKDUsejgsT1syNV0oNSxkKSxPWzI1XSg1LHcpKSxHWzI0XSgxNix0aGlzLkEsT1syNV0oWThbMF0sdGhpcy5BKSxPWzI1XSg3LHo4KSksWVs0MV0oNix0aGlzLlUsT1syNV0oMSxhQiksT1syNV0oWThbMF0sCnRoaXMuVSkpLFlbNDFdKDYsejgsT1syNV0oMyxkKSxPWzI1XShZOFswXSx0KSksR1syNF0oMTYsdGhpcy5VLE9bMjVdKDEsdGhpcy5VKSxPWzI1XSg1LHo4KSksUlsxNl0oMjYsejgsT1syNV0oNyx3KSxPWzI1XShZOFswXSx0aGlzLkEpKSx2SSh6OCx0aGlzLm51LHo4KSxHWzI0XSgxNix0aGlzLkIsT1syNV0oNyx0aGlzLkIpLE9bMjVdKDUsejgpKSxZWzQxXSg1LHo4LDEuNSxPWzI1XShZOFswXSx0aGlzLkEpKSxtWzBdKDgsQm8sT1syNV0oMSx0aGlzLlUpLE9bMjVdKDUsejgpKSxtWzRdKDQsdGhpcy5VLHRoaXMuQSksQm8sbVs0XSg1LEUsdGhpcy5FMyldLGdbN10oNikpLCRmPWdbN10oMzkpLGdbN10oMzgpKSxnWzddKDM5KSksZ1s3XSgzOSkpLGdbN10oNSkpLFt0aGlzLmt3LG1bMTJdKDQwLHo4LHcwWzBdKSxSWzE5XSg3Myx2byx6OCx0aGlzLm9UKSxHWzI1XShZOFsyXSwyLHZvLHRoaXMuaSxjKSxHWzI0XSgxMCx0aGlzLkQsT1syNV0oMSx0aGlzLkQpLHcwWzFdKSx2SSh6OCwKdGhpcy5hMCx2byksWVswXSgyOCxiTCxPWzI1XSg1LHo4KSxPWzI1XSgzLHRoaXMuSk8pKSxZWzBdKDI5LGFwLHcwWzBdLHcwWzBdKSxiTCxHWzI0XSgxOCx0aGlzLmcsT1syNV0oNSx0aGlzLmcpLHcwWzFdKSxhcCx2SShKLHRoaXMua0osdm8pLHZJKFdxLHRoaXMuVzEsdm8pLEhbNDRdKDYzLHo4KSxZWzBdKDI1LHNtLE9bMjVdKDEsdGhpcy5XKSxPWzI1XShZOFswXSx6OCkpLFlbMF0oMjYsUHEsdzBbMV0sdzBbMV0pLHNtLG1bNF0oMTIsSix0aGlzLkgpLG1bNF0oMTIsV3EsdGhpcy5XKSxQcSxZWzBdKDI4LHRZLE9bMjVdKDEsdGhpcy5BTCksT1syNV0oNSx6OCkpLFJbMTZdKDU2LEssT1syNV0oWThbMF0sSiksT1syNV0oMSx0aGlzLmZxKSksUlsxNl0oNTgsTW0sT1syNV0oWThbMF0sV3EpLE9bMjVdKDcsdGhpcy5BTCkpLFlbNDFdKDIyLEssT1syNV0oMyxLKSxPWzI1XSgxLEspKSxZWzQxXSg3LE1tLE9bMjVdKDEsTW0pLE9bMjVdKDMsTW0pKSxHWzI0XSgxOCx6OCxPWzI1XSgzLApLKSxPWzI1XSgzLE1tKSksdkkoejgsdGhpcy5qLHo4KSxHWzI0XSgxMCx0aGlzLlMsT1syNV0oNyx0aGlzLlMpLE9bMjVdKDMsejgpKSx0WSxtWzRdKDE0LEosdGhpcy5mcSksbVs0XSg1LFdxLHRoaXMuQUwpLEhbNDRdKDYyLHo4KSxZWzBdKDI2LFAsT1syNV0oMyx6OCksT1syNV0oWThbMF0sdGhpcy51WSkpLHZJKHVOLHRoaXMudVksdm8pLFlbMF0oMjUsUCxPWzI1XShZOFswXSx6OCksT1syNV0oNyx1TikpLFJbMTldKDY1LFhoLHRoaXMud2IsdU4pLFlbMF0oMjgsUCxPWzI1XSg3LFhoKSx3MFswXSksbVswXSgxMSwkZixPWzI1XSg3LFhoKSxPWzI1XSg3LHRoaXMuTCkpLG1bNF0oNSxYaCx0aGlzLkwpLFlbMF0oMjksJGYsdzBbMV0sdzBbMV0pLFAsbVs0XSg1LHRoaXMub1QsdU4pLG1bMTJdKDQxLFhoLHcwWzFdKSwkZixtWzEyXSgzOSxtbCx3MFswXSksRFsxNF0oMjYsbWwsdTMsWGgpLEhbNDRdKDQ3LHo4KSxIWzQ0XSg0Nyx2byksSFs0NF0oNTEsdU4pLEhbNDRdKDUxLFhoKSwKSFs0NF0oNTQsbWwpLEhbNDRdKDUwLEUpLEhbNDRdKDYzLHQpLEhbNDRdKDYyLHcpLEhbNDRdKDQ2LGQpLEhbNDRdKDQ3LGFCKSxIWzQ0XSg1OCx0aGlzLm9UKSxrWzE3XSgzNSksYyxIWzQ0XSg2Myx0aGlzLm9UKSxIWzQ0XSg2Myx2byksR1syNF0oMjQsdGhpcy5DLE9bMjVdKDcsdGhpcy5DKSx3MFsxXSksa1sxN10oMzIpXSksZylbMTJdKDcsa1s0Ml0oNTYsdGhpcyw0KSksSlEubmV4dCgpLnZhbHVlKSxKUSkubmV4dCgpLnZhbHVlLEpRLm5leHQoKS52YWx1ZSksSlEubmV4dCgpKS52YWx1ZSx0aGlzLm5pKSxnWzQ4XSgyNCw0NTIscCksWVsxMl0oMTYscCxwKSxnWzQ4XSgyNiwxODEsS0spLFJbMTldKDMyLHAsS0sscCksZ1s0OF0oMjYsNTQxLGZuKSxnWzQ4XSgxMCwxNTUwLHYpLEkoS0sscCxmbix2LHRoaXMubnEpLGdbNDhdKDE4LDg4OSx2KSxJKEtLLHAsZm4sdix0aGlzLmlZKSxnWzQ4XSgxOCx3MFsyXSx2KSxJKEtLLHAsZm4sdix0aGlzLlhnKSxIWzQ0XSg1NCxwKSxIWzQ0XSg0NiwKZm4pLEhbNDRdKDU4LHYpLEhbNDRdKDU4LEtLKSxrWzE3XSgzMyldLFtmaCxNLFNYLEEsdGhpcy5wcSxtWzEyXSgzOSxTLHcwWzBdKSxSWzE5XSg3Mix0aGlzLlgsUyx0aGlzLm9UKSxIWzQ0XSg0Myx0aGlzLm9UKSxrWzE3XSg0NSldfSxmRikucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVyblsoSz0oej0obj0oQz0oUT0oSj0oQj0oWj1bMTYsKHA9WzAsMTM2MywzNjRdLCJpIiksMTJdLHY9Z1taWzJdXSg2LGtbNDJdKDU4LHRoaXMsNikpLHYubmV4dCgpLnZhbHVlKSx2KS5uZXh0KCkudmFsdWUsQT12Lm5leHQoKS52YWx1ZSx2Lm5leHQoKS52YWx1ZSksdi5uZXh0KCkpLnZhbHVlLHYubmV4dCgpLnZhbHVlKSxnWzddKDM5KSksYj1nWzddKDcpLGdbN10oNCkpLGcpWzQ4XShaWzBdLDc4LHRoaXMubSksZ1s0OF0oMTAsMzEzLHRoaXMud2IpLGdbNDhdKFpbMF0sMTkxLHRoaXMuUWUpLGdbNDhdKFpbMF0sNTgzLHRoaXMueUEpLFlbWlsyXV0oMiwKSix0aGlzLlFlKSxnWzQ4XSgxOCw2MTMsQSksUlsxOV0oNjQsdGhpcy5NLEEsSiksZ1s0OF0oMTAscFsyXSxBKSxSWzE5XSg3Myx0aGlzLmosQSxKKSxnWzQ4XSgxOCwxNjEzLEEpLFJbMTldKDQxLHRoaXMubnUsQSxKKSxtW1pbMl1dKDQ3LHRoaXMuekoscFswXSksbVtaWzJdXSgzNix0aGlzLkMscFswXSksSFs0NF0oNDYsdGhpcy5YKSxjJCh0aGlzLkcsdGhpcy5tKSxtW1pbMl1dKDQ0LHRoaXMuSyxwWzBdKSxtW1pbMl1dKDk3LHRoaXMuTCxwWzBdKSxtW1pbMl1dKDk1LHRoaXMuRTMscFswXSksbVtaWzJdXSg0NCx0aGlzLlAscFswXSksbVtaWzJdXSg0NCx0aGlzLkEscFswXSksbVtaWzJdXSg0OCx0aGlzLlUscFswXSksbVtaWzJdXSg5Nix0aGlzLkIscFswXSksbVtaWzJdXSg0MSx0aGlzLkQscFswXSksbVtaWzJdXSg5NSx0aGlzLmcscFswXSksSFs0NF0oNDYsdGhpcy5mcSksSFs0NF0oNDIsdGhpcy5BTCksSFs0NF0oNTksdGhpcy5IKSxIWzQ0XSg0Nix0aGlzLlcpLG1bWlsyXV0oMzgsCnRoaXMubyxwWzBdKSxtW1pbMl1dKDQ4LHRoaXMuUyxwWzBdKSxtW1pbMl1dKDQxLHRoaXMuSSxwWzBdKSxnWzQ4XSgxOCwxOTU0LEEpLE9bMzhdKDkxLDIsOCxBLHRoaXNbWlsxXV0seiksZ1s0OF0oMjQsODM2LEEpLG1bMzldKDM5LEEseix0aGlzLmxZLHRoaXNbWlsxXV0pLGdbNDhdKFpbMF0sMTcwMSxBKSxtWzM5XSgzOSxBLHosdGhpcy5rSix0aGlzW1pbMV1dKSxnWzQ4XSgyNiw5MyxBKSxtWzM5XSgzNixBLHosdGhpcy5XMSx0aGlzW1pbMV1dKSxnWzQ4XShaWzBdLDE3ODcsQSksbVszOV0oMzgsQSx6LHRoaXMuS3EsdGhpc1taWzFdXSksZ1s0OF0oMjYsMTg3NixBKSxtWzM5XSg1MyxBLHosdGhpcy5ETSx0aGlzW1pbMV1dKSxnWzQ4XSgyNCwxODYxLEEpLG1bMzldKDM4LEEseix0aGlzLmdCLHRoaXNbWlsxXV0pLGdbNDhdKDI0LDEyMTYsQSksbVszOV0oMzcsQSx6LHRoaXMuZGUsdGhpc1taWzFdXSksZ1s0OF0oMjYsMjAxNyxBKSxtWzM5XSg1MixBLHosdGhpcy5OZCx0aGlzW1pbMV1dKSwKZ1s0OF0oMTAsODkxLEEpLG1bMzldKDUzLEEseix0aGlzLkJoLHRoaXNbWlsxXV0pLGdbNDhdKDEwLHBbMV0sQSksbVszOV0oNTIsQSx6LHRoaXMuYTAsdGhpc1taWzFdXSksZ1s0OF0oWlswXSwxOTQwLEEpLG1bMzBdKDgsOSw2LGIsQSx0aGlzLnVZLHRoaXNbWlsxXV0pLGIsZ1s0OF0oWlswXSw3NzQsdGhpcy5CMSksZ1s0OF0oMTAsMTM5OCx0aGlzLmRWKSxnWzQ4XSgxMCwxMzUyLHRoaXMuTXkpLGdbNDhdKDI2LDQ4OSx0aGlzLnFkKSxnWzQ4XSgxOCw1NDMsdGhpcy5YQyksZ1s0OF0oMjYsMTEzMSx0aGlzLk1qKSxnWzQ4XSgxMCw5MTYsdGhpcy5KTSksZ1s0OF0oWlswXSwyMDE3LHRoaXMuSXcpLGdbNDhdKDEwLDg5MSx0aGlzLnZ2KSxnWzQ4XSgyNCwxMTExLHRoaXMubVgpLGdbNDhdKDE4LDE3Nyx0aGlzLnZsKSxnWzQ4XSgxOCwzOTgsdGhpcy5KTyksUlsyN10oMjYsdGhpcy5ucSx0aGlzLkFlLHRoaXMub1QpLFJbMjddKDMwLHRoaXMuaVksdGhpcy5SMSx0aGlzLm9UKSxSWzI3XSgzMCwKdGhpcy5YZyx0aGlzLmt3LHRoaXMub1QpLFlbMF0oMjksSyxwWzBdLHBbMF0pLHosbVtaWzJdXSgzNix0aGlzLnpKLDEpLFJbMjddKDI3LHRoaXMubnEsdGhpcy5wcSx0aGlzLm9UKSxSWzI3XSgyNyx0aGlzLmlZLHRoaXMucHEsdGhpcy5vVCksUlsyN10oMjYsdGhpcy5YZyx0aGlzLnBxLHRoaXMub1QpLEssZ1s0OF0oMjYsNDUyLFEpLFlbWlsyXV0oMTgsUSxRKSxnWzQ4XSgyNiwxODEsQSksUlsxOV0oNjQsUSxBLFEpLGdbNDhdKDI0LDYxNyxDKSxnWzQ4XSgxMCwxNTUwLG4pLEkoQSxRLEMsbix0aGlzLm5xKSxnWzQ4XSgyNCw4ODksbiksSShBLFEsQyxuLHRoaXMuaVkpLGdbNDhdKDI0LDE4NjIsbiksSShBLFEsQyxuLHRoaXMuWGcpLG5ldyBKaCh0aGlzLm5pLHRoaXMub1QpLEhbNDRdKDQ3LEIpLEhbNDRdKDUxLEopLEhbNDRdKDQyLEEpLEhbNDRdKDU0LFEpLEhbNDRdKDYzLEMpLEhbNDRdKDU0LG4pXX0sZnVuY3Rpb24oQil7cmV0dXJuIGdbMjZdLmNhbGwodGhpcywxMSxCKX0pLApmXz0oKCgoKCgoKCgoKGZGLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4LGpOLFpHLG5ELHY4LGZELG9aLFFxLFQ4LG1sLEc4LHBELEtLLGZLLHRZLGwzLHIwLFhoLGJMLFJaKXt0aGlzLlA9KHRoaXMubFk9KHRoaXMubVg9KHRoaXNbKHRoaXMubz0odGhpcy5pPSh0aGlzLk5kPSh0aGlzLkI9KHRoaXMueUE9KCh0aGlzLkQ9KCh0aGlzLm5xPSh0aGlzLlhnPSgodGhpcy5nPSh0aGlzLlhDPSh0aGlzLkIxPSh0aGlzLkpPPSh0aGlzLmRlPSgodGhpcy51WT0odGhpcy5Jdz0odGhpcy5IPSgodGhpcy5LPSh0aGlzLlg9KCh0aGlzLmRWPSh0aGlzLndiPSh0aGlzLkJoPSh0aGlzLkUzPSh0aGlzLlc9KHRoaXMuaj0odGhpcy5hMD0oSz0oVz0oQjg9KG5EPShmRD0oSj0oUT0oYz0oWkc9KHU9KGwzPShuPShBPShhPShmPShRcT0ocj0oZD0oeD0odD0oRzg9KHA9CihvWj0odz0oVj0oVT0oTT0oVDg9KHN3PSh6PShwRD0oRT0obWw9KGIzPShQPShoPShTPShYaD0odFk9KEM9KEw9KE49KFo9KFJaPVs0OSwibnUiLCJNIl0sZ1sxMl0oMSx5W1JaWzBdXSg0LHRoaXMsNTUpKSksWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxaKS5uZXh0KCkudmFsdWUsWi5uZXh0KCkudmFsdWUpLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKSkudmFsdWUsWi5uZXh0KCkpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksYj1aLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWi5uZXh0KCkpLnZhbHVlLGJMPVoubmV4dCgpLnZhbHVlLHo4PVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKSkudmFsdWUsWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxLSz1aLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksZks9Wi5uZXh0KCkudmFsdWUscT1aLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLApaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLEI9Wi5uZXh0KCkudmFsdWUsWi5uZXh0KCkpLnZhbHVlLFg9Wi5uZXh0KCkudmFsdWUsWi5uZXh0KCkudmFsdWUpLHY4PVoubmV4dCgpLnZhbHVlLHIwPVoubmV4dCgpLnZhbHVlLHY9Wi5uZXh0KCkudmFsdWUsWikubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLFopLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxaLm5leHQoKS52YWx1ZSksWikubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxaLm5leHQoKS52YWx1ZSksSlk9Wi5uZXh0KCkudmFsdWUsak49Wi5uZXh0KCkudmFsdWUsWi5uZXh0KCkudmFsdWUpLFoubmV4dCgpLnZhbHVlKSxaKS5uZXh0KCkudmFsdWUsWi5uZXh0KCkpLnZhbHVlLFopLm5leHQoKS52YWx1ZSwKeCksVyksdGhpcy5xZD1hLHRoaXMuVzE9cCxzdyksaCksdGhpcy5TPUtLLHQpLHRoaXMuST1NLHRoaXMuSk09dSxqTiksZiksdGhpcy5LcT1YLHRoaXMpLmdCPXY4LEMpLFhoKSx0aGlzKS5rSj1CLHopLFpHKSxkKSx0aGlzKS52dj1jLHIwKSx0aGlzLkM9TCxKWSksdGhpcy5mcT16OCx0aGlzLkRNPUc4LHRoaXMuTWo9bDMsdGhpcy5RZT1mRCxRcSksbiksYkwpLHRoaXMpLm09cixVKSxmSyksdGhpcykub1Q9VixFKSx0aGlzKS52bD1KLG5EKSxtbCksdGhpcy56Sj1OLHYpLHRoaXMuRz10WSx3KSxUOCksdGhpcy5BPWIzLHRoaXNbUlpbMl1dPUI4LHRoaXMpLlU9YixSWlsxXV09Syx0aGlzLmlZPXEsUSksdGhpcy5MPVMsdGhpcy5NeT1BLHRoaXMuQUw9cEQsb1opLFApfSxmRikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3cpe3JldHVybih0PShhPShVPShKPSh3PShYPShRPQoodT0oZj0oSz0oYz0oVj0odj0oeD0oQT0obj0ocD0oVz0oaD0oTj0oRT0oWj0ocj0oUz0oYj0oej1nWzEyXSg1LGtbNDJdKDQyLChzdz0oUD1bMTMsMjgsMF0sTD1nWzddKDQpLFsxNiwwLDI1XSksdGhpcyksUFtzd1sxXV0pKSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksQj16Lm5leHQoKS52YWx1ZSx6KS5uZXh0KCkudmFsdWUsZD16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSxNPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksZ1s0OF0oMTgsUFsxXSxTKSksZ1s0OF0oMTAsMjk4LHIpKSxZKVsxNV0oNjgsWixPW3N3WzJdXSg3LHRoaXMuSyksc3dbMF0pLEkoQix0aGlzLkcsUyxaKSksbVsxMl0oMzgsRSxQWzJdKSkscT1JKEUsdGhpcy5HLFMsRSxaKSxJKEIsQixyLEUpKSxtWzEyXSg5NixOLFBbMl0pKSxtKVsxMl0oNDcsCkUsNiksUlsxOV0oNzMsWix0aGlzLndiLEIpKSxSWzE5XSgzMyxkLE4sQikpLEkoZCxkLFMpKSxSKVsxOV0oMzIsaCxFLGQpLHRoaXMuaTUpLGdbMTJdKDExLGdbMjZdKDU2LExSLkooKSwxKSkubmV4dCgpLnZhbHVlKSxDPWdbN10oNyksW0hbNDRdKDUwLGEpLFlbc3dbMV1dKDI4LEMsT1tzd1syXV0oOSxhKSxPW3N3WzJdXSg5LFUuTSkpLEkoYSxVLk0sVS5tLGgpLEMsbVs0XSg1LGEsaCldKSxMUi5KKCkpLnYoYSksW0EseCx2LFYsYyxxLEssZix1LFEsRFsxNF0oNTgsTixbWCx3LEosdCxtWzMzXSgzMCxkLEUsT1tzd1syXV0oOSxoKSksbVszM10oNDUsQixOLE9bc3dbMl1dKDEsZCkpXSxaKSx2SShwLHRoaXMuTSx0aGlzLlMpLEdbMjRdKDE4LHAsT1tzd1syXV0oMSxwKSxPW3N3WzJdXSgzLHRoaXMuSSkpLEdbMjRdKDI0LEUsT1tzd1syXV0oNSx0aGlzLkQpLDEpLFJbc3dbMV1dKDUscCxPW3N3WzJdXSg3LHApLE9bc3dbMl1dKDcsRSkpLEdbMjRdKDEwLG4sT1tzd1syXV0oMSxwKSwKMSksWVsxMl0oc3dbMF0sRSx0aGlzLlFlKSxJKG4sRSx0aGlzLnlBLG4pLFlbNDFdKDIwLG4sT1tzd1syXV0oMyxuKSw0KSxHWzI0XSgyNixwLE9bc3dbMl1dKDMscCksT1tzd1syXV0oNyx0aGlzLmcpKSx2SShFLHRoaXMuTSx0aGlzLm8pLEdbMjRdKHN3WzBdLHAsT1tzd1syXV0oOSxwKSxPW3N3WzJdXSg5LEUpKSxZWzE1XSg2NCxwLE9bc3dbMl1dKDkscCksMTEpLEdbMjRdKDI2LG4sT1tzd1syXV0oNyxuKSxPW3N3WzJdXSg1LHApKSx2SShuLHRoaXMuTSxuKSxIWzQ0XSg2MixwKSxIWzQ0XSg0NixFKSxZW3N3WzFdXSgyOCxMLE9bc3dbMl1dKDcsdGhpcy5QKSxQWzJdKSxSW3N3WzFdXSgxMSxFLE9bc3dbMl1dKDUsdGhpcy5CKSxPW3N3WzJdXSg3LHRoaXMuUCkpLFlbNDFdKDQsRSxPW3N3WzJdXSgxLEUpLDEwMCksdkkoRSx0aGlzLk0sRSksTCx2SShaLHRoaXMuTSx0aGlzLkEpLGMkKFcsdGhpcy5tLHRoaXMuTCxaLEUpLHZJKEUsdGhpcy5NLHRoaXMubyksdkkoWix0aGlzLk0sCnRoaXMuUyksYyQoTSx0aGlzLm0sdGhpcy5ELEUsWix0aGlzLmcpLGMkKGIsdGhpcy5tLHRoaXMuSyxCLFcsTSx0aGlzLnpKLHRoaXMuQyxuKSx0aGlzLnN0cmluZ2lmeShiLGIpLFJbNDZdKDE4LHRoaXMsYiksSFs0NF0oNDYsUyksSFs0NF0oNjIsciksSFs0NF0oNTUsWiksSFs0NF0oNjIsQiksSFs0NF0oNTksRSksSFs0NF0oNTksTiksSFs0NF0oNTgsZCksSFs0NF0oNTUsaCksSFs0NF0oNjMsVyksSFs0NF0oNDcsTSldfSxPKVsyMV0oMixnQixMRCksZ0IucHJvdG90eXBlKS52PWZ1bmN0aW9uKEIseil7cmV0dXJuIEI9Z1sxMl0oNCwoej1bNDYsIlgiLCJtIl0sa1s0Ml0oNTYsdGhpcywxKSkpLm5leHQoKS52YWx1ZSxbYyQoQix0aGlzW3pbMV1dLHRoaXMuTSx0aGlzLkMsdGhpc1t6WzJdXSksa1sxOF0oMjgsQixPWzI1XSgzLEIpKSxSW3pbMF1dKDY2LHRoaXMsQildfSxnQikucHJvdG90eXBlLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXt0aGlzLlU9KCh0aGlzWyh0aGlzLlg9Cih0aGlzLm09KCgodGhpcy5IPSgoKGI9KEE9KFE9KEs9KHY9KG49KHo9KFo9Z1sxMl0oMyx5WzQ5XSgxLChOPVsiaSIsImoiLDEzXSx0aGlzKSxOWzJdKSksWi5uZXh0KCkudmFsdWUpLFopLm5leHQoKS52YWx1ZSxaLm5leHQoKSkudmFsdWUsWi5uZXh0KCkudmFsdWUpLEI9Wi5uZXh0KCkudmFsdWUsSj1aLm5leHQoKS52YWx1ZSxwPVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxDPVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSxXPVoubmV4dCgpLnZhbHVlLFoubmV4dCgpLnZhbHVlKSx0aGlzKS5BPVoubmV4dCgpLnZhbHVlLHRoaXMpLm89QixiKSx0aGlzW05bMF1dPUosdGhpcykuSz1RLHRoaXMuTT16LHRoaXMpLkM9dixLKSxwKSxOKVsxXV09Qyx0aGlzKS5XPUEsbiksdGhpcy5QPVd9LGdCKS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVyblsoSz0oej0oQT0oYj0oQz0odj1bKEI9WzEwMCwzMDYsMTc3XSwzOSksMjQsMTJdLEo9a1s0Ml0oNDIsCnRoaXMsNCksZ1t2WzJdXSg5LEopKSxDLm5leHQoKS52YWx1ZSksQy5uZXh0KCkpLnZhbHVlLEMubmV4dCgpLnZhbHVlKSxDLm5leHQoKS52YWx1ZSksSFs0NF0oNDMsdGhpcy5VKSksSFs0NF0oNTgsdGhpcy5pKSxnWzQ4XSh2WzFdLDc4LHRoaXMuWCksZ1s0OF0oMTAsQlsyXSx0aGlzLkspLGdbNDhdKDE2LDExMTEsdGhpcy5qKSxnWzQ4XSh2WzFdLEJbMV0sdGhpcy5XKSxnWzQ4XSgyNiwzMTMsdGhpcy5QKSxnWzQ4XSgyNiwyOCx0aGlzLkgpLGMkKHRoaXMuTSx0aGlzLlgpLG1bdlsyXV0oNDIsdGhpcy5DLDApLG1bdlsyXV0odlswXSx0aGlzLm0sMCksbVt2WzJdXSh2WzBdLHRoaXMubywhMCksbVt2WzJdXSg5NSx0aGlzLmksLTEpLFJbMjddKDI3LHosdGhpcy5ELGIpLGdbNDhdKHZbMV0sMjE1LEEpLG1bdlsyXV0oNDQsSyxCWzBdKSxjJCh0aGlzLkEsQSx6LEspLG5ldyBKaCh0aGlzLmcsdGhpcy5BKSxIWzQ0XSg0MixiKSxIWzQ0XSg1OCxBKSxIWzQ0XSg0Nix6KSxIWzQ0XSg1OSwKSyldfSxnQikucHJvdG90eXBlLmw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtyZXR1cm5bKHY9KEI9KHg9KFo9KHA9KE49KEM9KG49KEE9KEo9KEs9KGY9KEw9WyhXPVsxLCExLDE3XSwyKSwiVyIsIlgiXSxnWzEyXSg3LGtbNDJdKDQwLHRoaXMsV1swXSkpLm5leHQoKS52YWx1ZSksW1JbMTZdKDU4LGYsT1syNV0oNSxmKSxXW0xbMF1dKSxJKHRoaXMuTSx0aGlzLk0sdGhpcy5ILGYpXSksZ1sxMl0oMTIsa1s0Ml0oNTcsdGhpcyw4KSkpLFE9Si5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKSkudmFsdWUsej1KLm5leHQoKS52YWx1ZSxKLm5leHQoKSkudmFsdWUsYj1KLm5leHQoKS52YWx1ZSxKLm5leHQoKS52YWx1ZSksZ1s3XSg2KSksZ1s3XSg1KSksZ1s3XSg2KSksZ1s3XSgzOSkpLHRoaXMpLkQsYyQobix0aGlzW0xbMl1dKSxZWzEyXSgxNixRLHRoaXMuSyksWVsxMl0oMTcsQSx0aGlzLmopLEkoeiwKbix0aGlzW0xbMV1dLFEsQSksa1sxOF0oMjksbixPWzI1XSg5LG4pKSxZWzBdKDI4LFosT1syNV0oOSxuKSxPWzI1XSgzLHRoaXMuVSkpLFlbMF0oMjQsQixPWzI1XSgxLEEpLE9bMjVdKDMsdGhpcy5pKSksbVswXSg4LHgsT1syNV0oOSx0aGlzLmkpLE9bMjVdKDEsQSkpLG1bMTJdKDQ0LHAsV1sxXSksWVswXSgyNyx2LFdbMF0sV1swXSkseCxtWzEyXSg5NyxwLCEwKSx2LFlbMF0oMjcsQixPWzI1XSg5LHApLE9bMjVdKDksdGhpcy5vKSksR1syNF0oMTAsdGhpcy5tLE9bMjVdKDEsdGhpcy5tKSxXWzBdKSxtWzRdKDEzLHAsdGhpcy5vKSxCLG1bNF0oMTMsQSx0aGlzLmkpLEdbMjRdKDE2LHRoaXMuQyxPWzI1XSg1LHRoaXMuQyksV1swXSksbVs0XSgxNCxuLHRoaXMuVSksYyQoQyx0aGlzW0xbMl1dKSxlWzddKDY0LE4pLEkoeixDLHRoaXNbTFsxXV0sUSxBLE4pLEkoeix0aGlzLk0sdGhpc1tMWzFdXSxDKSxSWzE5XSg3MyxmLHRoaXMuUCx0aGlzLk0pLG1bMF0oMTUsWixPWzI1XSgxLApmKSwyNiksSyxaLEhbNDRdKDQ3LG4pLEhbNDRdKDQ3LEMpLEhbNDRdKDU5LHopLEhbNDRdKDQzLFEpLEhbNDRdKDQ3LEEpLEhbNDRdKDU5LE4pLEhbNDRdKDU0LGYpLGtbMTddKDM0KSx0aGlzLmcsZ1s0OF0oMTAsMTIzMSxiKSxjJCh6LGIsdGhpcy5BKSxIWzQ0XSg1NSxiKSxIWzQ0XSg1MCx6KSxIWzQ0XSg0Myx0aGlzLkEpLGtbMTddKDM1KV19LE9bMjFdKDEsYjEsTEQpLGIxLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyl7cmV0dXJuWyhCPSh6PWtbSz1bNDYsMCw1OV0sNDJdKEtbMl0sdGhpcywxKSxnWzEyXSg1LHopLm5leHQoKS52YWx1ZSksZVs3XSg2NixCKSksUltLWzFdXSgyLEIsT1syNV0oMSxCKSwxMCksUltLWzBdXSgxNix0aGlzLEIpXX0sTylbMjFdKDUsbkYsTEQpLG5GKS5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCxNLFUsdyxzdyxCOCxKWSxiMyx6OCxqTixaRywKbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgsdm8sdTMsbEwsYXAsUVMsRjIsUHEsVVIsY28sTW0scGgseXEsaDMsV28sUSQsb3AsS2gsQm8sZmgsJDgpe3E9WzQsKCQ4PVsyNSwwLDUxXSwzMTMpLDBdO2Z1bmN0aW9uIFdxKGdFLHNtLE5VLHM4LE4xLFh0LEpRLCRmLHcwLHp5LGtmLFNYLG1OLE8xLGxtLHhoLHZxLERpLFdmLHVOLGFCLHg4KXtyZXR1cm4gRGk9WyhYdD0oYUI9WyhTWD0oV2Y9KHhoPShrZj0odzA9KE8xPSh6eT0odU49KHg4PVsxOSwoJGY9WzEsISh2cT1nWzddKDM4KSwxKSwwXSwwKSwyNV0sUilbeDhbMF1dKDczLGIzLE0sak4pLG0pWzEyXSg0Nyx4LCRmWzJdKSxtWzEyXSgzOSxLSywyMCkpLG1OPXgsbG09S0ssSlE9Z1s3XSg1KSxnWzddKDM4KSksZ1s3XSgzOCkpLGcpWzddKDcpLGdbN10oMzYpKSxnKVs3XSg3KSxSKVt4OFswXV0oMSxaLFJaLGIzKSxSW3g4WzBdXSgzMixmLFYsYjMpLFJbeDhbMF1dKDY0LHAsCnYsYjMpLFJbeDhbMF1dKDczLEwsSVosYjMpLEkob3AsUVMsaDMsWixmLHAsTCksWVt4OFsxXV0oMjksa2YsT1t4OFsyXV0oOSxzOCksT1t4OFsyXV0oNyxVKSksWVt4OFsxXV0oeDhbMl0seGgsJGZbeDhbMV1dLCRmW3g4WzFdXSksa2YsSShCOCxXbyxBLG9wKSxZW3g4WzFdXSgyNCxXZixPW3g4WzJdXSgxLEI4KSwkZlsxXSksUlt4OFswXV0oMzIsczgsTSxqTiksWVt4OFsxXV0oeDhbMl0sdnEsJGZbeDhbMV1dLCRmW3g4WzFdXSkseGgsV2YsWVt4OFsxXV0oMjYsSlEsT1t4OFsyXV0oOSxOMSksT1t4OFsyXV0oMSxVKSksWVt4OFsxXV0oMjcsdzAsJGZbeDhbMV1dLCRmW3g4WzFdXSksSlEsSShCOCxCbyxBLG9wKSxZW3g4WzFdXSgyNCxTWCxPW3g4WzJdXSgxLEI4KSwkZlsxXSksUlt4OFswXV0oOCxOMSxNLGpOKSxZW3g4WzFdXSgyOSx2cSwkZlt4OFsxXV0sJGZbeDhbMV1dKSx3MCxTWCxSW3g4WzBdXSg2NSxiMyxiTCxiMyksWVt4OFsxXV0oeDhbMl0sdnEsT1t4OFsyXV0oNSxVKSwKT1t4OFsyXV0oMyxiMykpXSxEWzE0XSg5OCxtTixhQixsbSkpLHVOKSx6eSxPMSxYdCx2cSxPWzQ4XSgyLDIzLEI4LE9beDhbMl1dKDEsTjEpLE9beDhbMl1dKDUsczgpKSxZW3g4WzFdXSgyNCxnRSxPW3g4WzJdXSgxLEI4KSwhMCldLERbMTRdKDU4LE5VLERpLHNtKX1yZXR1cm4oSj0odT0oVz1bKGxMPVsoWD1bKG1sPShwaD1bKFEkPVsoUD0ocjA9KFBxPShFPSh5cT0odm89KEtoPSh6OD0oaD0oYT0oZmg9KFc4PShsMz0ob1o9KGM9KGQ9KEpZPShOPShVUj0oRjI9KE1tPSh0PShRPShLPShyPShCbz0oV289KGJMPShLSz0obkQ9KEM9KEI4PSh1Mz0oaDM9KG9wPShJWj0oVj0oUlo9KEw9KGY9KGIzPSh4PShhcD0ocEQ9KFpHPShuPShBPSh2OD0odFk9KGZLPShTPShRcT0oQj1rWzQyXSg0Nix0aGlzLDU1KSxUOD1nWzEyXSg0LEIpLFQ4Lm5leHQoKSkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLGNvPVQ4Lm5leHQoKS52YWx1ZSxUOCkubmV4dCgpLnZhbHVlLApUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgpLm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLGpOPVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsUVM9VDgubmV4dCgpLnZhbHVlLE09VDgubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxaPVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSkscD1UOC5uZXh0KCkudmFsdWUsVDgubmV4dCgpKS52YWx1ZSxUOCkubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksdj1UOC5uZXh0KCkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgpLm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksRzg9VDgubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLApUOC5uZXh0KCkpLnZhbHVlLFQ4Lm5leHQoKSkudmFsdWUsVDgpLm5leHQoKS52YWx1ZSx6PVQ4Lm5leHQoKS52YWx1ZSxiPVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkpLnZhbHVlLFU9VDgubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgpLm5leHQoKS52YWx1ZSxUOC5uZXh0KCkudmFsdWUpLFQ4Lm5leHQoKS52YWx1ZSksVDgubmV4dCgpLnZhbHVlKSxUOCkubmV4dCgpLnZhbHVlLFQ4Lm5leHQoKS52YWx1ZSksVDgubmV4dCgpLnZhbHVlKSxUOC5uZXh0KCkudmFsdWUpLFQ4Lm5leHQoKSkudmFsdWUsWGg9VDgubmV4dCgpLnZhbHVlLHN3PVQ4Lm5leHQoKS52YWx1ZSxUOC5uZXh0KCkudmFsdWUpLFQ4Lm5leHQoKS52YWx1ZSksZ1s3XSg0KSksZ1s3XSg2KSksZylbN10oNCksZylbN10oMzgpLGcpWzddKDcpLGcpWzddKDQpLGdbN10oNikpLGcpWzddKDM4KSxnWzddKDM3KSksdz1nWzddKDYpLGcpWzddKDM4KSxSKVsxOV0oMSxiMyxNLFpHKSxSWzE5XSgxLG5ELEMsYjMpLApSWzE5XSg0MCxHOCx2OCxuRCksbVskOFsxXV0oMTEsYSwxNSxPWyQ4WzBdXSgxLEc4KSksUlsxOV0oNzIsWixSWixiMyksUlsxOV0oOCxmLFYsYjMpLFJbMTldKDY0LHAsdixiMyksUlsxOV0oNDEsTCxJWixiMyksSShvcCxRUyxoMyxaLGYscCxMKSxJKEI4LHIsQSxvcCksWVskOFsxXV0oMjcsYSxPWyQ4WzBdXSg5LEI4KSwhMSksbVskOFsxXV0oMTMsYSxPWyQ4WzBdXSg3LEc4KSwxKSxJKEI4LGpOLG4sYjMpLGFdLFIpWzE5XSg2NSxiMyxNLHQpLFJbMTldKDEsWixSWixiMyksUlsxOV0oMSxmLFYsYjMpLFJbMTldKDQwLHAsdixiMyksUlsxOV0oMzMsTCxJWixiMyksSShvcCxRUyxoMyxaLGYscCxMKSxJKEI4LEssQSxvcCksWVskOFsxXV0oJDhbMF0saCxPWyQ4WzBdXSg5LEI4KSxxWzJdKSxJKEI4LGpOLG4sYjMpLGhdLFtSWzE5XSg5LGIzLE0sTW0pLFJbMTldKDY0LFosUlosYjMpLFJbMTldKDQwLGYsVixiMyksUlsxOV0oMzMsTCxJWixiMyksSShvcCxRUyxoMyxaLGYsTCksSShCOCwKeixBLG9wKSxZWyQ4WzFdXSgyNixQLE9bJDhbMF1dKDksQjgpLCExKSxSWzE5XSg5LFc4LGZoLGIzKSxZWyQ4WzFdXSgyNyx3LDEsMSksUF0pLGcpWzQ4XSgxNiw0NTIsUXEpLGdbNDhdKDI2LDMxNyxTKSxZWzEyXSgzLFFxLFFxKSxnWzQ4XSgyNixxWzFdLHY4KSxtWzEyXSgzOCxRUywiIiksbVsxMl0oMzksUSxvOSgpKSxnWzQ4XSgxMCw0MTYsdTMpLEkoak4sUVMsdTMsUVMpLEkoYXAsUVMsdTMsUVMpLGdbNDhdKDE4LDIxOCxSWiksZ1s0OF0oMTYsMTUzLFYpLGdbNDhdKDI2LCQ4WzJdLHYpLGdbNDhdKDEwLDQ5NixJWiksZ1s0OF0oMjQsMzcyLHIpLGdbNDhdKDI0LDMzOCxBKSxnWzQ4XSgxMCwzMDYsbiksZ1s0OF0oMjYsMjk4LGgzKSxnWzQ4XSgxOCwzNjIsQyksZ1s0OF0oMTAsMTQxLGJMKSxnWzQ4XSgxNiw3MyxXbyksZ1s0OF0oMjQsOTgsQm8pLGdbNDhdKDE2LDIwNixLKSxnWzQ4XSgxOCw5MzkseiksZ1s0OF0oMjQsMjM5LGIpLGdbNDhdKDI0LDE5MjEsZmgpLG1bMTJdKDk2LApkLGFBKCkpLFlbMTJdKDMsZCxkKSxtWzEyXSg0OCxjLGN1KCkpLEkoVSxRUyxiLFEpLEhbNDRdKDQ2LEYyKSxIWzQ0XSg1OCxVUiksSFs0NF0oNDMsTiksSFs0NF0oNDIsSlkpLFJbMTNdKDc4LFdvLE9bJDhbMF1dKDEsV28pLHl2KCkpLFJbMTNdKDc0LEJvLE9bJDhbMF1dKDUsQm8pLHl2KCkpLFJbMTNdKDcyLHIsT1skOFswXV0oMyxyKSx5digpKSxSWzEzXSg3NCxLLE9bJDhbMF1dKDcsSykseXYoKSksUlsxM10oNzYseixPWyQ4WzBdXSgzLHopLHl2KCkpXSxnKVs0OF0oMTAsNDM2LGZLKSxJKFpHLFFxLFMsZkspLFJbMTldKDMzLHBELHY4LFpHKSxtWzEyXSgzOSxCOCwzMCksSShwRCxkLGMscEQsQjgpLG1bMTJdKDQxLE0scVsyXSksRFsxNF0oMzQsTSxRJCxwRCksbVsxMl0oMzksTSxxWzJdKSxSWzE5XSg3MixwRCx2OCxqTiksbVskOFsxXV0oOSx6OCxxWyQ4WzFdXSxPWyQ4WzBdXSgzLHBEKSksV3EoS2gscEQsTSxGMixVUiksS2hdLGZEPVtnWzQ4XSgxMCw3NCxjbyksSSh0LFFxLApTLGNvKSxSWzE5XSg0MCxwRCx2OCx0KSxtWzEyXSg0OCxNLHFbMl0pLG1bMTJdKDQ0LEI4LDMwKSxJKHBELGQsYyxwRCxCOCksSShqTixRUyx1MyxRUyksRFsxNF0oMjYsTSxwaCxwRCksbVsxMl0oNDIsTSxxWzJdKSxSWzE5XSg2NSxwRCx2OCxqTiksbVskOFsxXV0oOSx6OCxxWyQ4WzFdXSxPWyQ4WzBdXSgxLHBEKSksV3Eodm8scEQsTSxOLEpZKSx2b10sZ1s0OF0oMTgsMTMzMix0WSkpLEkoTW0sUXEsUyx0WSksUlsxOV0oMzIscEQsdjgsTW0pLG1bMTJdKDM4LE0scVsyXSksbVsxMl0oNDAsQjgsMzApLEkocEQsZCxjLHBELEI4KSxJKGpOLFFTLHUzLFFTKSxtWzEyXSg0MCxXOCwhMSksRFsxNF0oMzQsTSxtbCxwRCksd10sW2dbNDhdKDI2LDM1MCxvWiksZ1s0OF0oMTYsMjQ2LGwzKSxnWzQ4XSgxOCw0NDYsWGgpLHo4LFlbJDhbMV1dKDI3LHlxLE9bJDhbMF1dKDMsRjIpLE9bJDhbMF1dKDksVSkpLFJbMTldKDczLEYyLEMsRjIpLHlxLEkoQjgsYXAsbixGMiksWVskOFsxXV0oMjcsCkUsT1skOFswXV0oNSxVUiksT1skOFswXV0oNyxVKSksUlsxOV0oNjQsVVIsQyxVUiksRSxJKEI4LGFwLG4sVVIpLFlbJDhbMV1dKDI2LHIwLE9bJDhbMF1dKDEsTiksT1skOFswXV0oOSxVKSksUlsxOV0oNjQsc3csb1osTiksUlsxOV0oMzMsQjgsbDMsTiksUlsxOV0oOSxOLEI4LHN3KSxSWzE5XSg4LE4sWGgsTikscjAsSShCOCxhcCxuLE4pLFlbJDhbMV1dKDI4LFBxLE9bJDhbMF1dKDEsSlkpLE9bJDhbMF1dKDksVSkpLFJbMTldKDQxLHN3LG9aLEpZKSxSWzE5XSg3MixCOCxsMyxKWSksUlsxOV0oOSxKWSxCOCxzdyksUlsxOV0oNjUsSlksWGgsSlkpLFBxLEkoQjgsYXAsbixKWSksdGhpcy5zdHJpbmdpZnkoVzgsVzgpLEkoQjgsYXAsbixXOCldKSxbSFs0NF0oNDIsUXEpLEhbNDRdKDYzLFMpLEhbNDRdKDU1LGZLKSxIWzQ0XSg0Nyx2OCksSFs0NF0oNTgsUlopLEhbNDRdKDQzLFYpLEhbNDRdKDU5LHYpLEhbNDRdKDQ3LElaKSxIWzQ0XSg0MyxyKSxIWzQ0XSg0MixXbyksSFs0NF0oNjMsCkJvKSxIWzQ0XSg1OSxLKSxIWzQ0XSg0Nyx6KSxIWzQ0XSg1NSxiTCksSFs0NF0oNTgsaDMpLEhbNDRdKDQyLG4pLEhbNDRdKDU0LHUzKSxIWzQ0XSg0NixvWiksSFs0NF0oNDYsbDMpLEhbNDRdKDUwLFhoKSxIWzQ0XSg0MixBKSxIWzQ0XSg1MCxDKSxIWzQ0XSg0MixiKSxIWzQ0XSg0NyxjbyksSFs0NF0oNDIsZmgpLEhbNDRdKDUwLHRZKSx0aGlzLnN0cmluZ2lmeShhcCxhcCksUls0Nl0oMTYsdGhpcyxhcCldKSxYKS5jb25jYXQobEwsZkQsVyx1LEopfSxPWzIxXSg1LG84LExEKSxvOC5wcm90b3R5cGUpLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgsak4sWkcsbkQsdjgsZkQsb1osUXEsVDgsbWwsRzgscEQsS0ssZkssdFksbDMscjAsWGgsYkwsUlosSVosVzgsdm8sdTMsbEwsYXAsUVMsRjIsUHEsVVIsY28sTW0scGgseXEsaDMsV28sUSQsb3AsS2gsQm8sZmgsJDgsCldxLGdFLHNtLE5VLHM4LE4xLFh0LEpRLCRmLHcwLHp5LGtmLFNYLG1OLE8xLGxtLHhoLHZxLERpLFdmLHVOLGFCLHg4LEtnLGZuLFk4LEZWLEJ3LGtXLHFNKXtyZXR1cm5bKHI9KE8xPShUOD0ocjA9KHZxPShKPShKUT0oYkw9KEpZPSh0PShzbT0obEw9KGZLPShOMT0oeD0oUD0oZmg9KEYyPShVPShQcT0oWTg9KFo9KHVOPShGVj0oUSQ9KGZEPShoPShFPShEaT0oVz0oeDg9KHhoPShJWj0odTM9KEE9KHp5PShCdz0oUVM9KGIzPShRcT0oQm89KFM9KFc4PShLSz0ocT0oZ0U9KFY9KFE9KEs9KEw9KFg9KEtoPShsMz0oQj0oY289KFdmPSh2PShhPShsbT0oRzg9KHlxPShjPShqTj0odjg9KG9aPSh1PShoMz0oTT0ocD0odm89KEtnPShXcT0oYUI9KE1tPSgkZj0oZD0oQz0obj0oa1c9KG1sPSh0WT0oZj1bMjE4LDE5NzMsKHFNPVs0NiwzLDQ0XSwxKV0sYXA9a1s0Ml0ocU1bMl0sdGhpcyw0MSksbkQ9Z1sxMl0ocU1bMV0sYXApLG5EKS5uZXh0KCkudmFsdWUsej1uRC5uZXh0KCkudmFsdWUsCm5ELm5leHQoKS52YWx1ZSksU1g9bkQubmV4dCgpLnZhbHVlLG5ELm5leHQoKSkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxuRCkubmV4dCgpLnZhbHVlLG5ELm5leHQoKSkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxzOD1uRC5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLFpHPW5ELm5leHQoKS52YWx1ZSxYaD1uRC5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkpLnZhbHVlLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLFdvPW5ELm5leHQoKS52YWx1ZSxuRCkubmV4dCgpLnZhbHVlLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkpLnZhbHVlLE5VPW5ELm5leHQoKS52YWx1ZSxuRC5uZXh0KCkpLnZhbHVlLG5ELm5leHQoKS52YWx1ZSksbkQubmV4dCgpLnZhbHVlKSwKbkQubmV4dCgpLnZhbHVlKSxuRC5uZXh0KCkudmFsdWUpLG5ELm5leHQoKSkudmFsdWUsbkQubmV4dCgpKS52YWx1ZSxuRC5uZXh0KCkpLnZhbHVlLG5EKS5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxrZj1uRC5uZXh0KCkudmFsdWUsbkQubmV4dCgpLnZhbHVlKSxnKVs3XSg0KSxnWzddKDM3KSksZylbN10oNiksZ1s3XSg0KSksZylbNDhdKDI2LDQ1Mix2OCksWVsxMl0oMTcsdjgsdjgpKSxiPWdbNDhdKDI0LDMxNyxqTiksZ1s0OF0oMjQsNDM2LGMpKSxJKSh5cSx2OCxqTixjKSxIKVtxTVsyXV0oNTAsak4pLEhbcU1bMl1dKDU0LGMpKSxnWzQ4XSgxOCw3OCxOVSkpLGcpWzQ4XSgxNiwxMzA4LEc4KSxZKVsxMl0oMSxOVSxOVSkscEQ9SSh5cSxOVSxHOCx5cSksSFtxTVsyXV0oNTEsRzgpKSxnWzQ4XSgyNCxmWzBdLGgzKSksZylbNDhdKDI2LDE1MyxXbyksZylbNDhdKDI2LDU0OCxNKSxnWzQ4XSgyNiw5NDcscCkpLGcpWzQ4XSgxOCxmWzFdLEtoKSxnKVs0OF0oMTAsMjM5LApYKSxzdz1nWzQ4XSgxMCwzMDYsbWwpLG1bMTJdKDQyLGxtLCIiKSksbVsxMl0oNDcsdSwwKSksejg9c2coTCxOVSkscGg9T1s2XSgxNiwwLGZbMl0seXEsW21bMTJdKDQwLGwzLCIiKSxSWzE5XSg5LHYsaDMsYSksUlsxOV0oNDEsV2YsV28sYSksUlsxOV0oNjUsY28sTSxhKSxSWzE5XSg5LEIscCxhKSxPWzQ4XSg3NCxsMyxPWzI1XSg3LHYpLCIiKSxPWzQ4XSg3MyxsMyxPWzI1XSg1LGwzKSxPWzI1XShxTVsxXSxXZikpLE9bNDhdKDczLGwzLE9bMjVdKHFNWzFdLGwzKSxPWzI1XSg5LGNvKSksT1s0OF0oNzgsbDMsT1syNV0ocU1bMV0sbDMpLE9bMjVdKDEsQikpLEkobDMsbDMsS2gpLGdbNDhdKDE2LDIwMzIseiksUlsxM10oNzMseixPWzI1XSg5LHopLHl2KCkpLEkodm8sbDMsWCx6KSxIW3FNWzJdXShxTVswXSx6KSxnMFs1XSgzMiwyNSxrZixPWzI1XShxTVsxXSx2bykpLGcwWzVdKDQxLDI1LGtmLE9bMjVdKDUsa2YpKSxZWzBdKDI3LEssT1syNV0oNyxrZiksITEpLEkob1osTCwKbWwsYSksS10sYSx1KSx3MD1IW3FNWzJdXSg2MixoMyksSFtxTVsyXV0ocU1bMF0sV28pKSxvcD1IW3FNWzJdXSg2MixNKSxIW3FNWzJdXSg1OCxwKSksVVI9SFtxTVsyXV0ocU1bMF0sS2gpLEhbcU1bMl1dKDYzLG1sKSksSClbcU1bMl1dKDYyLHZvKSxIW3FNWzJdXSg1NSxvWikpLEhbcU1bMl1dKDYyLHlxKSksSFtxTVsyXV0oNjMsTlUpKSxmbj1IW3FNWzJdXSg1OSx2KSxIW3FNWzJdXSg2MixXZikpLEhbcU1bMl1dKDU4LGNvKSksSClbcU1bMl1dKDU5LEIpLEhbcU1bMl1dKDUwLGwzKSksWHQ9SFtxTVsyXV0oNTEsa2YpLGdbNDhdKDE2LDMxMyxLZykpLFJaPVJbMTldKDksWkcsS2csTCksSFtxTVsyXV0oNTUsS2cpKSxtWzEyXSg5NSxzOCwhMSkpLG1OPW1bMTJdKDM2LEMsITEpLFlbMF0oMjksZ0UsT1syNV0oOSxaRyksMCkpLG1bMTJdKDQyLFdxLCExKSksQjg9bVsxMl0ocU1bMl0sWGgsITApLFlbMF0oMjcsUSxPWzI1XSgxLFpHKSxmWzJdKSksJDg9bVsxMl0oOTUsWGgsITEpLAptWzEyXSg5NSx1LDApKSxSWzE5XSgzMixhLHUsTCkpLGdbNDhdKDI0LDg2MyxrVykpLHc9UlsxOV0oNDAsTW0sa1csYSksbVsxMl0oMzYsV3EsITApKSxPWzZdKDUsMCxmWzJdLEwsW1JbMTldKDQwLGFCLGtXLGEpLFlbMF0oMjgsVixPWzI1XSg5LGFCKSxPWzI1XSgxLE1tKSksbVsxMl0oOTcsV3EsITEpLFlbMF0oMjYsUSxmWzJdLGZbMl0pLFZdLGEsdSkpLEgpW3FNWzJdXSg1OCxrVyksTj1IW3FNWzJdXSg0NyxNbSksSFtxTVsyXV0oNTEsYUIpKSxPKVsyNV0oOSxYaCksT1syNV0oMSxXcSkpLFJbMTNdKDExLEhbMjVdKDQzLE9bOV0oMjksMjQpLHM4KSxbZ1sxNl0oOTQsVDgpLGdbMTZdKDU0LE8xKV0pKSxxKSxLSyxiLFc4LFMsQm8sUXEsYjMsUVMsQncscEQsenksQSx1MyxJWix4aCx4OCxXLHN3LERpLEUsejgscGgsdzAsaCxvcCxmRCxVUixRJCxGVix1TixaLFk4LGZuLFBxLFUsRjIsZmgsWHQsUCxSWix4LE4xLG1OLGZLLGxMLEI4LHNtLCQ4LHQsSlksYkwsdyxKUSxKLFEsdnEsCk4scjAscixIW3FNWzJdXSg1NCxYaCksSFtxTVsyXV0oNTAsV3EpLFlbMF0oMjUsZ0UsT1syNV0oOSxzOCksITEpLGdbNDhdKDE4LDE4MSxkKSxSWzE5XSg0MCxkLGQsdjgpLGdbNDhdKDEwLDExMiwkZiksUlsxOV0oOSwkZiwkZixkKSxIW3FNWzJdXSg0MyxkKSxnWzQ4XSgxNiw0NzIsdFkpLEkoQywkZixYLHRZKSxIW3FNWzJdXSg1NSx0WSksSFtxTVsyXV0oNTQsJGYpLEhbcU1bMl1dKDQ3LFgpLGcwWzVdKDM3LDI1LEMsT1syNV0oNSxDKSksZzBbNV0oMzMsMjUsQyxPWzI1XSgxLEMpKSxnRSxIW3FNWzJdXSg1NCx1KSxIW3FNWzJdXSg0Nyx2OCksSFtxTVsyXV0oNDMsYSksSFtxTVsyXV0oNDcsWkcpLEhbcU1bMl1dKDYyLEwpLE9bNDhdKDEsMjMsbixPWzI1XSgxLEMpLE9bMjVdKDEsczgpKSxIW3FNWzJdXSg0MixzOCksT1s0OF0oNzQsU1gsT1syNV0ocU1bMV0sbiksT1syNV0oMSxsbSkpLEhbcU1bMl1dKDUxLGxtKSxIW3FNWzJdXSg1NSxuKSxIW3FNWzJdXSg2MixDKSxSW3FNWzBdXSg2NCwKdGhpcyxTWCldfSxPWzIxXSgxLGpzLExEKSxqcy5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSl7cmV0dXJuIHY9KFY9KHI9KHg9KEM9KEs9KFE9KEI9KFo9KHo9KEw9KHA9KGI9KFA9KG49KGY9KFc9a1s0Ml0oNjAsKHE9WzQxLDQ0LChKPVsxLDI0MCwxMzA4XSw3NSldLHRoaXMpLDE2KSxnWzEyXSg2LFcpKSxmLm5leHQoKS52YWx1ZSksZi5uZXh0KCkpLnZhbHVlLGYubmV4dCgpLnZhbHVlKSxmLm5leHQoKSkudmFsdWUsZi5uZXh0KCkudmFsdWUpLGYubmV4dCgpLnZhbHVlKSxmLm5leHQoKS52YWx1ZSksZi5uZXh0KCkpLnZhbHVlLEE9Zi5uZXh0KCkudmFsdWUsZi5uZXh0KCkudmFsdWUpLGYubmV4dCgpLnZhbHVlKSxmLm5leHQoKS52YWx1ZSksTj1mLm5leHQoKS52YWx1ZSxmLm5leHQoKS52YWx1ZSksZi5uZXh0KCkudmFsdWUpLGYubmV4dCgpLnZhbHVlKSxnKVs3XSg1KSxbZ1s0OF0oMTgsNDUyLG4pLFlbMTJdKDE3LApuLG4pLGdbNDhdKDI2LDE4MSxQKSxSWzE5XSgzMyxQLFAsbiksSFtxWzFdXSg1OCxuKSxnWzQ4XSgyNiwxMTIsYiksUlsxOV0oOSxiLGIsUCksSFtxWzFdXSg0NyxQKSxnWzQ4XSgxOCwyOCxwKSxtWzEyXShxWzBdLEwsMCksbVsxMl0oNDAseiw1RTMpLEkoYixiLHAsTCx6KSxIW3FbMV1dKDU0LEwpLEhbcVsxXV0oNDcseiksZ1s0OF0oMTgsMTIxLFopLGdbNDhdKDEwLDQyMixCKSxPWzQ4XSg3MixCLHZoOCgpLE9bMjVdKDMsQikpLE9bNDhdKHFbMl0sQixPWzI1XSgzLEIpLGtfKCkpLE9bNDhdKHFbMl0sQixPWzI1XSg3LFopLE9bMjVdKDcsQikpLEhbcVsxXV0oNDMsWiksUlsxM10oNzksQixPWzI1XSg5LEIpLGxmOCgpKSxnWzQ4XSgyNCxKWzFdLEEpLEkoUSxiLEEsQiksSFtxWzFdXSg2MixiKSxIW3FbMV1dKDU5LEEpLEhbcVsxXV0oNjIsQiksZ1s0OF0oMjYsNzgsSyksZ1s0OF0oMjQsSlsyXSxDKSxZWzEyXSgxOSxOLEspLEkoTixOLEMsUSksSFtxWzFdXSg0NixLKSxIW3FbMV1dKDQ3LApDKSxIW3FbMV1dKDYyLFEpLG1bMTJdKDQwLFYsLTEpLEkoTixOLHAsViksSFtxWzFdXSg1MSxwKSxnWzQ4XSgxMCwzMTMsciksUlsxOV0oNjUseCxyLE4pLG1bMF0oMTAsdixPWzI1XSg1LHgpLEpbMF0pLG1bMTJdKDk3LFYsMCksUlsxOV0oNjQsTixWLE4pLG1bMTJdKDQyLFYsSlswXSksUlsxOV0oOCx4LHIsTiksbVswXSg5LHYsT1syNV0oNSx4KSwyKSxSWzE5XSgzMyxOLFYsTiksdixIW3FbMV1dKDU1LHgpLEhbcVsxXV0oNjMsciksSFtxWzFdXSg1MCxWKSxSWzQ2XSg2Nix0aGlzLE4pXX0sMSkvWUMoMS40KSxIcT0oKCgoKCgoKE9bMjFdKDEsREIsTEQpLERCLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtyZXR1cm5bKHo9KFE9KG49KEs9KEo9KEI9KHA9KGI9KEE9KEM9Z1taPVsxMiw3LCJvIl0sWlswXV0oMyxrWzQyXSg1OSx0aGlzLDgpKSxDKS5uZXh0KCkudmFsdWUsQy5uZXh0KCkudmFsdWUpLEMubmV4dCgpLnZhbHVlKSxDLm5leHQoKS52YWx1ZSksCkMubmV4dCgpKS52YWx1ZSxDLm5leHQoKS52YWx1ZSksQykubmV4dCgpLnZhbHVlLEMpLm5leHQoKS52YWx1ZSxnW1pbMV1dKFpbMV0pKSx2PWdbWlsxXV0oMzYpLG1bNF0oNSx0aGlzW1pbMl1dLHApKSxtWzRdKDEzLHRoaXMubSxCKSxtWzRdKDQsdGhpcy5BLEopLG1bNF0oWlswXSx0aGlzLlcsSyksbVs0XSgxNCx0aGlzLkMsbiksbVswXSgxMCx6LDAsT1syNV0oMSx0aGlzLlgpKSxIWzQ0XSg1NCxwKSxIWzQ0XSg1MSxCKSxIWzQ0XSg1MSxKKSxIWzQ0XSg1NCxLKSxIWzQ0XSg1NSxuKSx6LEhbNDRdKDUxLGIpLG1bMF0oMTUsdixPWzI1XSgxLHRoaXMuWCksMiksUlswXSg0LGIsT1syNV0oWlsxXSx0aGlzLlMpLE9bMjVdKDMsdGhpcy5YKSksWVtaWzBdXSgyLFEsdGhpcy5nKSxJKGIsUSx0aGlzLmtKLGIpLHYsYyQoQSx0aGlzLmksdGhpcy5ELHAsYixCLEosSyxuKSx0aGlzLnN0cmluZ2lmeShBLEEpLFJbNDZdKDgwLHRoaXMsQSldfSxEQi5wcm90b3R5cGUpLmw9ZnVuY3Rpb24oQiwKeixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYLGQsdCxoLE0sVSx3LHN3LEI4LEpZLGIzLHo4LGpOLFpHLG5ELHY4KXtyZXR1cm5bKHI9KG49KFA9KHU9KFpHPVsodD0oUT0oQjg9KFU9KFg9KEU9KEo9KGQ9KHo4PShiMz0oaD0oTj1bKFo9KHA9KFc9KEs9KEM9KHc9KEw9KEE9KGM9KE09KGE9KHY4PShiPVsyLDNFMywxNTc4XSxbNSwyOCw2Ml0pLGdbMTJdKHY4WzBdLGtbNDJdKDQ2LHRoaXMsMTMpKSksbkQ9YS5uZXh0KCkudmFsdWUsYS5uZXh0KCkudmFsdWUpLGEpLm5leHQoKS52YWx1ZSxhLm5leHQoKS52YWx1ZSksQj1hLm5leHQoKS52YWx1ZSxhLm5leHQoKSkudmFsdWUsSlk9YS5uZXh0KCkudmFsdWUsUz1hLm5leHQoKS52YWx1ZSxhKS5uZXh0KCkudmFsdWUsdj1hLm5leHQoKS52YWx1ZSxxPWEubmV4dCgpLnZhbHVlLGEpLm5leHQoKS52YWx1ZSxhKS5uZXh0KCkudmFsdWUsZ1s3XSgzNykpLGdbN10oNCkpLGcpWzddKDM2KSx0aGlzLnVZKSwKbVsxMl0oOTUsQywwKSxSWzE5XSg3Myx0aGlzLlYsQyx0aGlzLlYpLEdbMjVdKDgyLGJbMF0sdGhpcy5WLHRoaXMuSyksdkkobkQsdGhpcy5HLHRoaXMuViksdkkoTSx0aGlzLkwsdGhpcy5WKSxHWzI0XSgxMCx0aGlzLkQsT1syNV0oNyx0aGlzLkQpLDEpLEdbMjRdKDI2LHRoaXMuTSxPWzI1XSgzLHRoaXMuTSksMSksSFs0NF0oNTEsSyksWVswXSgyNSxXLE9bMjVdKHY4WzBdLHRoaXMuVSksT1syNV0oMSxLKSksUlsxNl0oNTYsYyxPWzI1XSh2OFswXSxuRCksT1syNV0oMyx0aGlzLlUpKSxtWzBdKDExLFcsYlsxXSxPWzI1XSh2OFswXSxjKSksR1syNF0oMjQsdGhpcy5YLE9bMjVdKDEsdGhpcy5YKSwxKSxSWzE2XSg1OCxCLE9bMjVdKDcsYyksT1syNV0oMyx0aGlzLm8pKSxSWzBdKDYsQixPWzI1XSg5LEIpLE9bMjVdKDEsdGhpcy5YKSksR1syNF0oMTAsTCxPWzI1XSg5LHRoaXMubyksT1syNV0oNyxCKSksUlsxNl0oNjAsSlksT1syNV0oMSxjKSxPWzI1XSgzLEwpKSxSWzE2XSg2MCwKQyxPWzI1XSg5LGMpLE9bMjVdKDEsdGhpcy5vKSksWVs0MV0oMjEsSlksT1syNV0oMSxKWSksT1syNV0oNyxDKSksR1syNF0oMTgsdGhpcy5TLE9bMjVdKDcsdGhpcy5TKSxPWzI1XSgzLEpZKSksbVs0XSgxMyxMLHRoaXMubyksWVsxMl0oMixxLHRoaXMuZyksSShDLHEsdGhpcy5ILGMpLFlbNDFdKDIyLFMsT1syNV0oMyxDKSxmXyksSShTLHEsdGhpcy5QLFMpLFJbMTldKDMyLEMsUyx0aGlzLm0pLEdbMjRdKDI2LEMsT1syNV0oOSxDKSwxKSxtWzMzXSgxNCx0aGlzLm0sUyxPWzI1XSg5LEMpKSxIWzQ0XSg1MCxLKSxZWzBdKDI5LHAsT1syNV0oOSx0aGlzLkkpLE9bMjVdKDMsSykpLG1bMF0oMTIscCwxLE9bMjVdKDcsdGhpcy5NKSksUlsxNl0oMjQsQSxPWzI1XSg3LG5EKSxPWzI1XSh2OFswXSx0aGlzLkkpKSxtWzBdKDEzLFcsT1syNV0odjhbMF0sQSksMSksbVswXSgxMixXLGJbMV0sT1syNV0oOSxBKSksSShDLHEsdGhpcy5ILEEpLFlbNDFdKDcsdyxPWzI1XSh2OFswXSxDKSxmXyksCkkodyxxLHRoaXMuUCx3KSxSWzE5XSg3MixDLHcsdGhpcy5BKSxHWzI0XSgyNCxDLE9bMjVdKDMsQyksMSksbVszM10oMzMsdGhpcy5BLHcsT1syNV0oMSxDKSksWVswXSgyNixXLDEsMSkscCxXLG1bNF0oNCxuRCx0aGlzLlUpLEkoSyx0aGlzLmosdGhpcy5BTCxNLHRoaXMuViksWixIWzQ0XSg0MyxuRCksSFs0NF0oNDMsTSksSFs0NF0oNTksQiksSFs0NF0oNDIsYyksSFs0NF0odjhbMl0sQSksSFs0NF0oNjMsQyksSFs0NF0oNTUsTCksSFs0NF0oNTEsUyksSFs0NF0oNTEsdyksSFs0NF0oNDMsdiksSFs0NF0oNDYsSlkpLGtbMTddKDQ1KV0sZylbMTJdKDksa1s0Ml0odjhbMl0sdGhpcywxMCkpLGgubmV4dCgpLnZhbHVlKSxoLm5leHQoKS52YWx1ZSksaC5uZXh0KCkpLnZhbHVlLGgubmV4dCgpLnZhbHVlKSxWPWgubmV4dCgpLnZhbHVlLGgubmV4dCgpLnZhbHVlKSxoKS5uZXh0KCkudmFsdWUsej1oLm5leHQoKS52YWx1ZSxoLm5leHQoKS52YWx1ZSksaCkubmV4dCgpLnZhbHVlLApzdz1nWzddKDM2KSxnKVs3XSgzNiksZ1s3XSg3KSksdGhpcy53YiksbVsxMl0oNDQsWCwwKSxSWzE5XSgzMix0aGlzLlYsWCx0aGlzLlYpLEdbMjVdKDgxLGJbMF0sdGhpcy5WLHRoaXMuSyksdkkoYjMsdGhpcy5HLHRoaXMuViksdkkoejgsdGhpcy5MLHRoaXMuViksSFs0NF0oNDYseiksWVswXSgyNyx0LE9bMjVdKDksejgpLE9bMjVdKDkseikpLEkoejgsdGhpcy5qLHRoaXMuWGcsejgpLEhbNDRdKDU4LHopLFlbMF0oMjUsdCxPWzI1XSg3LHo4KSxPWzI1XSgxLHopKSx2SShkLHRoaXMuRyx6OCksUlsxNl0odjhbMV0sSixPWzI1XSgzLGIzKSxPWzI1XSg3LGQpKSxtWzBdKDksUSxiWzFdLE9bMjVdKDEsSikpLFlbMTJdKDEsRSx0aGlzLmcpLEkoWCxFLHRoaXMuSCxKKSxZWzQxXSg3MSxVLE9bMjVdKDcsWCksZl8pLEkoVSxFLHRoaXMuUCxVKSxSWzE5XSg0MSxYLFUsdGhpcy5XKSxHWzI0XSgxOCxYLE9bMjVdKDksWCksMSksbVszM10oMTMsdGhpcy5XLFUsT1syNV0odjhbMF0sWCkpLAp0LEhbNDRdKDUxLHopLFlbMF0oMjksUSxPWzI1XSgxLHRoaXMuVSksT1syNV0oMSx6KSksbVsxMl0oMzgseiwhMCksbVswXSgxMixRLE9bMjVdKHY4WzBdLHRoaXMuTSksYlswXSksUlsxNl0oMjQsVixPWzI1XSgxLGIzKSxPWzI1XSg5LHRoaXMuVSkpLG1bMF0oMTEsUSxiWzFdLE9bMjVdKDMsVikpLEkoWCxFLHRoaXMuSCxWKSxZWzQxXSg2LEI4LE9bMjVdKHY4WzBdLFgpLGZfKSxJKEI4LEUsdGhpcy5QLEI4KSxSWzE5XSgxLFgsQjgsdGhpcy5DKSxHWzI0XSgxMCxYLE9bMjVdKDMsWCksMSksbVszM10oNDYsdGhpcy5DLEI4LE9bMjVdKDksWCkpLFEsbVs0XSh2OFswXSxiMyx0aGlzLkkpLG1bMF0oOCxzdyxPWzI1XSgzLHRoaXMuTSksMSksUlsxNl0oMjYsdGhpcy5NLE9bMjVdKDMsdGhpcy5NKSwxKSxzdyxIWzQ0XSh2OFsyXSx6OCksSFs0NF0oNTksYjMpLEhbNDRdKDUwLGQpLEhbNDRdKDU1LEopLEhbNDRdKHY4WzJdLFYpLEhbNDRdKHY4WzJdLEUpLEhbNDRdKDYzLFgpLEhbNDRdKDQ3LAp6KSxIWzQ0XSg1NCxVKSxIWzQ0XSg1OCxCOCksa1sxN10oMzcpXSxnWzEyXSg5LGtbNDJdKDYzLHRoaXMsdjhbMF0pKSkseD11Lm5leHQoKS52YWx1ZSxmPXUubmV4dCgpLnZhbHVlLHUubmV4dCgpLnZhbHVlKSx1Lm5leHQoKS52YWx1ZSksak49dS5uZXh0KCkudmFsdWUsW3RoaXMucHEsZ1s0OF0oMTgsNDUyLFApLFlbMTJdKDE5LFAsUCksZ1s0OF0oMTgsMTgxLG4pLFJbMTldKDEsbixuLFApLGdbNDhdKDI0LDU0MSxqTiksZ1s0OF0oMjYsNzkzLHgpLGdbNDhdKDEwLGJbMl0sZiksSShQLG4sak4seCx0aGlzLkIpLEkoUCxuLGpOLGYsdGhpcy5ucSksSFs0NF0oNTUsbiksSFs0NF0oNDIsUCksSFs0NF0oNTksak4pLEhbNDRdKDQzLHgpLEhbNDRdKDU0LGYpLGtbMTddKDM2KV0pLE4pLFpHLHJdfSxEQi5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4gQT0oej0ocD0oYj0oQz0oQj0odj0obj1nWzEyXSgxMixrWzQyXSgoVz1bKEs9WzYxNywKNzkzLDEzMF0sIkIiKSw0NiwyNV0sNDcpLHRoaXMsOSkpLG4ubmV4dCgpLnZhbHVlKSxuKS5uZXh0KCkudmFsdWUsWj1uLm5leHQoKS52YWx1ZSxuLm5leHQoKS52YWx1ZSksbi5uZXh0KCkudmFsdWUpLG4ubmV4dCgpLnZhbHVlKSxKPW4ubmV4dCgpLnZhbHVlLG4ubmV4dCgpKS52YWx1ZSxuLm5leHQoKSkudmFsdWUsUT1nWzddKDM3KSxbZ1s0OF0oMTgsNzgsdGhpcy5pKSxnWzQ4XSgxNiwxOTEsdGhpcy5nKSxnWzQ4XSgyNiwzNjQsdGhpcy5rSiksZ1s0OF0oMTAsMzQ2LHRoaXMuaVkpLGdbNDhdKDE2LDEyODQsSiksSFs0NF0oV1sxXSx0aGlzLlUpLFlbMTJdKDEsdGhpcy5qLHRoaXMuaVkpLHNnKHRoaXMuaix0aGlzLmopLEhbNDRdKDUxLHRoaXMuSSksbVsxMl0oNDEsdGhpcy5ELDApLG1bMTJdKDk2LHRoaXMuWCwwKSxtWzEyXSg5Nyx0aGlzLm8sMCksbVsxMl0oNDIsdGhpcy5TLDApLG1bMTJdKDQ4LHosV1syXSksYyQodGhpcy5tLHRoaXMuaSx6KSxtWzEyXSg0MCxBLDApLEkodGhpcy5tLAp0aGlzLm0sSixBKSxjJCh0aGlzLkEsdGhpcy5pLHopLEkodGhpcy5BLHRoaXMuQSxKLEEpLGMkKHRoaXMuVyx0aGlzLmkseiksSSh0aGlzLlcsdGhpcy5XLEosQSksYyQodGhpcy5DLHRoaXMuaSx6KSxJKHRoaXMuQyx0aGlzLkMsSixBKSxtWzEyXSg0MSx0aGlzLk0sMCksSFs0NF0oNTksSiksZ1s0OF0oMjYsS1syXSxBKSxPWzM4XSg3MiwyLDgsQSx0aGlzLkssUSksZ1s0OF0oMTYsODM2LEEpLG1bMzldKDM2LEEsUSx0aGlzLkcsdGhpcy5LKSxnWzQ4XSgxOCwzMjgsQSksbVszOV0oMzcsQSxRLHRoaXMuTCx0aGlzLkspLGdbNDhdKDI0LDMxMyx0aGlzLlcxKSxnWzQ4XSgxOCw2OTAsdGhpcy5QKSxnWzQ4XSgxNiwzMDYsdGhpcy5sWSksZ1s0OF0oMTYsNTgzLHRoaXMuSCksZ1s0OF0oMTAsODAzLHRoaXMuQUwpLGdbNDhdKDE4LDEwNSx0aGlzLlhnKSxSWzI3XSgzMSx0aGlzW1dbMF1dLHRoaXMudVksdGhpcy5WKSxnWzQ4XSgxOCwxODEsWiksZ1s0OF0oMjQsS1swXSxDKSxnWzQ4XSgxMCwKS1sxXSxiKSxnWzQ4XSgyNCw0NTIsdiksWVsxMl0oMTksdix2KSxSWzE5XSg2NCxaLFosdiksSSh2LFosQyxiLHRoaXNbV1swXV0pLFJbMjddKDI2LHRoaXMubnEsdGhpcy53Yix0aGlzLlYpLGdbNDhdKDEwLDE1NzgscCksSSh2LFosQyxwLHRoaXMubnEpLG5ldyBKaCh0aGlzLnBxLHRoaXMuViksUSxIWzQ0XSg0MixBKSxIWzQ0XShXWzFdLHYpLEhbNDRdKDQyLEIpLEhbNDRdKDU5LFopLEhbNDRdKFdbMV0sQyksSFs0NF0oV1sxXSxiKSxIWzQ0XSg1OCxwKV19LERCKS5wcm90b3R5cGUuUj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscixWLFAscSxjLEUsUyxhLHUsWCxkLHQsaCl7KHRoaXMuUD0odGhpcy5rSj0odGhpc1t0aGlzLkQ9KCh0aGlzLmxZPSh0aGlzLlcxPSh0aGlzLkg9KCh0aGlzLkc9KHRoaXMuaT0odGhpcy5TPSh0aGlzLlc9KHRoaXMuSz0oKHRoaXMuVj0odGhpcy5NPSh0aGlzLlhnPSh0aGlzLmlZPSh0aGlzLlU9KHRoaXNbdGhpc1soVz0KKGQ9KEM9KFo9KHE9KGI9KEU9KHY9KE49KGE9KFA9KFg9KGY9KEw9KEo9KFM9KHI9KEE9KHU9KG49KHg9KHo9KGM9KFY9KHQ9KGg9WyJDIiwiQSIsIm5xIl0sQj1nWzEyXSg5LHlbNDldKDEsdGhpcywyOCkpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIpLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkudmFsdWUpLEs9Qi5uZXh0KCkudmFsdWUsUT1CLm5leHQoKS52YWx1ZSxCLm5leHQoKS52YWx1ZSksQi5uZXh0KCkpLnZhbHVlLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkpLnZhbHVlLHA9Qi5uZXh0KCkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCKS5uZXh0KCkudmFsdWUsQi5uZXh0KCkpLnZhbHVlLApCLm5leHQoKSkudmFsdWUsQi5uZXh0KCkudmFsdWUpLEIubmV4dCgpLnZhbHVlKSxCLm5leHQoKSkudmFsdWUsaClbMl1dPVEsaFswXV09Six0KSxwKSx2KSxMKSxmKSx0aGlzLmo9Yyx0aGlzLkw9YSx0aGlzKS5YPXgsWCksUyksdGhpcy5BTD1FLHUpLE4pLFApLHRoaXMpLm89bixXKSxiKSxkKSx0aGlzKS5CPUssdGhpcy5nPXEsdGhpcy5tPUEseiksaFsxXV09cixaKSxDKSx0aGlzKS5JPVZ9LE9bMjFdKDQseG4sTEQpLHhuLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuW2MkKChLPShKPShCPSh6PWdbMTJdKDQsa1s0Ml0oNTYsdGhpcywoQz1bIlgiLDQxLCJNIl0sMykpKSx6Lm5leHQoKS52YWx1ZSksei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSxCKSx0aGlzLmksdGhpc1tDWzBdXSksdGhpcy5zdHJpbmdpZnkoQixCKSxjJCh0aGlzW0NbMF1dLHRoaXMuaSksbVsxMl0oMzgsdGhpcy5tLC0xKSxtWzEyXShDWzFdLHRoaXMuQSwwKSxnWzQ4XSgxOCwKNjk2LEopLGMkKEssSix0aGlzW0NbMl1dKSxtWzEyXSg5NSxLLDUwMCksYyQodGhpc1tDWzJdXSx0aGlzLkMsdGhpcy5XLEspLEhbNDRdKDU0LEopLEhbNDRdKDUwLEspLFJbNDZdKDE4LHRoaXMsQildfSx4bikucHJvdG90eXBlLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQKXsodGhpc1sodGhpcy5NPSgodGhpcy5TPSgoKHRoaXMuZz0oKCh0aGlzLks9KHRoaXMubz0oSj0ocD0oQj0oUT0oSz0oYj0obj0oZj0oTj0ocj0oTD0oWj0oeD0oVj0oQz0oej1nWzEyXSgxMSx5W1A9WyJWIiwiaSIsNDldLFBbMl1dKDcsdGhpcywxOCkpLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksCnoubmV4dCgpKS52YWx1ZSx6Lm5leHQoKSkudmFsdWUsei5uZXh0KCkudmFsdWUpLHY9ei5uZXh0KCkudmFsdWUsVz16Lm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksQT16Lm5leHQoKS52YWx1ZSxRKSx0aGlzLmo9TCxyKSx0aGlzKS5XPWYsdGhpcylbUFsxXV09YixwKSx0aGlzKS5BPUosdGhpcykuRD1BLHYpLHRoaXMpLlg9QyxWKSx0aGlzLkw9eCx0aGlzLkM9TixQKVswXV09bix0aGlzLlU9Syx0aGlzLlA9Qix0aGlzLm09Vyx0aGlzKS5IPVp9LHhuLnByb3RvdHlwZS5sPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxKXtyZXR1cm5bKEw9KHI9KEM9KHY9KEE9KEo9KFo9KE49KFE9KEI9KHo9KFA9KGY9KHg9Z1soVz0ocT1bIlgiLCJVIiwocD0obj1nWzddKDUpLGdbN10oMzcpKSwxMildLFsxMSwwLDE2XSkscSlbMl1dKHFbMl0sa1s0Ml0oNjEsdGhpcyxXWzJdKSkseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSksCngubmV4dCgpLnZhbHVlKSxWPXgubmV4dCgpLnZhbHVlLHgpLm5leHQoKS52YWx1ZSx4KS5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKSkudmFsdWUseC5uZXh0KCkudmFsdWUpLGI9eC5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKSkudmFsdWUsSz14Lm5leHQoKS52YWx1ZSx0aGlzKS5HLEdbMjRdKDE2LHRoaXMuQSxPWzI1XSgzLHRoaXMuQSksMSksWVtxWzJdXSgxNyxQLHRoaXNbcVsxXV0pLFJbMTldKDQwLHosdGhpcy5nLFApLEhbNDRdKDU5LFApLFJbMTldKDksQix0aGlzLlMseiksSFs0NF0oNTQseiksbVtxWzJdXSg0MCxRLFdbMV0pLG1bcVsyXV0oMzYsTiw1RTMpLEkoQixCLHRoaXMuSyxRLE4pLEhbNDRdKDQ2LFEpLEhbNDRdKDQyLE4pLFJbMTNdKDc1LFosT1syNV0oNyx0aGlzLkQpLElMKCkpLEkoVixCLHRoaXMuUCxaKSxIWzQ0XSg1MSxaKSxIWzQ0XSg2MixCKSxtW3FbMl1dKDQwLAp2LFdbMV0pLFlbMF0oMjgsbixPWzI1XSg5LFYpLE9bMjVdKDMsQikpLFJbMTldKDczLHYsdGhpcy5vLFYpLG4sWVswXSgyOSxwLE9bMjVdKDksdiksT1syNV0oOSx0aGlzLm0pKSxtWzRdKDEzLHYsdGhpcy5tKSxlWzddKDEsZiksYyQoSix0aGlzLmksZix2KSxJKEssdGhpc1txWzBdXSx0aGlzLkgsSiksUlsxOV0oNzIsYix0aGlzLm8sdGhpc1txWzBdXSksbVswXSgxMCxwLE9bMjVdKDMsYiksV1swXSksbVtxWzJdXSg5NyxDLDUpLG1bcVsyXV0oNDAsciwzKSxJKEssdGhpc1txWzBdXSx0aGlzLmosQyxyKSxwLFlbNDFdKDIwLEwsNTAwLE9bMjVdKDcsdGhpcy5BKSksYyQodGhpcy5NLHRoaXMuQyx0aGlzLlcsTCksSFs0NF0oNDMsZiksSFs0NF0oNTEsUCksSFs0NF0oNDMseiksSFs0NF0oNDMsQiksSFs0NF0oNjIsViksSFs0NF0oNDMsUSksSFs0NF0oNTgsTiksSFs0NF0oNDYsWiksSFs0NF0oNDYsSiksSFs0NF0oNTksQSksSFs0NF0oNDcsdiksSFs0NF0oNDIsYiksSFs0NF0oNjMsCkwpLEhbNDRdKDQ2LEspLGtbMTddKDMzKSx0aGlzLkksZ1s0OF0oMjYsNjk2LEEpLGMkKFAsQSx0aGlzLk0pLEhbNDRdKDUxLEEpLEhbNDRdKDU5LHRoaXMuTSksa1sxN10oMzUpXX0seG4ucHJvdG90eXBlLkY9ZnVuY3Rpb24oQix6LEspe3JldHVyblsoQj0oej1bMTgxLChLPVs4MzYsMzgsIlYiXSwwKSwxMTJdLGdbMTJdKDcsa1s0Ml0oNjAsdGhpcywxKSkubmV4dCgpLnZhbHVlKSxnKVs0OF0oMjQsNzgsdGhpcy5pKSxnWzQ4XSgxNiw0NTIsdGhpcy5VKSxnWzQ4XSgxMCwzMTMsdGhpcy5vKSxnWzQ4XSgyNCwyMzksdGhpcy5QKSxnWzQ4XSgxMCx6WzBdLHRoaXMuZyksZ1s0OF0oMTYselsyXSx0aGlzLlMpLGdbNDhdKDE4LEtbMF0sdGhpcy5MKSxnWzQ4XSgyNCwzMDYsdGhpcy5IKSxnWzQ4XSgyNiwxOTUsdGhpcy5qKSxnWzQ4XSgxMCwxMzQsdGhpcy5DKSxnWzQ4XSgyNiwyOCx0aGlzLkspLGdbNDhdKDEwLDU1NSx0aGlzLkQpLG1bMTJdKDQ0LHRoaXMuQSx6WzFdKSxtWzEyXShLWzFdLAp0aGlzLm0sLTEpLGMkKHRoaXMuWCx0aGlzLmkpLFJbMjddKDI1LHRoaXMuVyx0aGlzLkcsdGhpc1tLWzJdXSksbVsxMl0oMzYsQiw1MDApLGMkKHRoaXMuTSx0aGlzLkMsdGhpcy5XLEIpLG5ldyBKaCh0aGlzLkksQiksSFs0NF0oNDIsQildfSxPWzIxXSgyLFpCLExEKSxaQikucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSl7cmV0dXJuIEM9KEo9KEI9KHo9KEs9KGI9KEE9WzQ0LDE5LDRdLGtbNDJdKDU2LHRoaXMsQVsyXSkpLGdbMTJdKEFbMl0sYikpLEsubmV4dCgpKS52YWx1ZSxLKS5uZXh0KCkudmFsdWUsSy5uZXh0KCkudmFsdWUpLEspLm5leHQoKS52YWx1ZSxbZ1s0OF0oMTAsMTIyLEopLGdbNDhdKDEwLDQ0MSxDKSxZWzEyXSgxOCx6LEopLFJbQVsxXV0oMSxCLEMseiksSFtBWzBdXSg0MixKKSxIW0FbMF1dKDUwLEMpLFJbNDZdKDE2LHRoaXMsQildfSxPWzIxXSgzLEFrLExEKSxBay5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm5bKHY9CihBPShKPShDPSh6PShCPWtbNDJdKDQ0LHRoaXMsKFE9WzI0LDUsNDhdLFEpWzFdKSxnKVsxMl0oMSxCKSx6Lm5leHQoKSkudmFsdWUsYj16Lm5leHQoKS52YWx1ZSxwPXoubmV4dCgpLnZhbHVlLHopLm5leHQoKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSksT1syNV0oMSxBKSksSz1PWzI1XShRWzFdLHApLGdbUVsyXV0oUVswXSwxMjIsQykpLFlbMTJdKDEsSixDKSxIWzQ0XSg1NCxDKSxnW1FbMl1dKDI2LDg1NSxiKSxSWzE5XSgxLEEsYixKKSxIWzQ0XSg1OCxiKSxIWzQ0XSg1MCxKKSxtWzEyXSgzOCxwLCIiKSxPW1FbMl1dKDcyLEEsSyx2KSxIWzQ0XSg1OCxwKSxSWzQ2XSgxOCx0aGlzLEEpXX0sTylbMjFdKDIsR0MsTEQpLEdDLnByb3RvdHlwZSkudj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwpe3JldHVybihbWzExOCwxXSxbMjI4LDhdLFsyOSwxMjVdLFsyMDMsMF0sWzM0NywwXSxbODM1LDNdLFs4MzcsNDZdLFsoTj0oSz0oQT0oej0oSj0odj0oUT0KKEM9KEI9KHg9KG49Wzc4LDE1MTgsKEw9KHA9W10sWzEyLDQ4LDE0MDldKSwxMyldLGI9Z1tMWzBdXSg1LGtbNDJdKDQ0LHRoaXMsblsyXSkpLFc9Yi5uZXh0KCkudmFsdWUsYi5uZXh0KCkudmFsdWUpLGIpLm5leHQoKS52YWx1ZSxaPWIubmV4dCgpLnZhbHVlLGIubmV4dCgpKS52YWx1ZSxiLm5leHQoKS52YWx1ZSksYikubmV4dCgpLnZhbHVlLGIubmV4dCgpLnZhbHVlKSxiLm5leHQoKSkudmFsdWUsYi5uZXh0KCkudmFsdWUpLGIubmV4dCgpKS52YWx1ZSxiKS5uZXh0KCkudmFsdWUsZj1iLm5leHQoKS52YWx1ZSwyMDMpLDEwXSxbNzMzLDFdLFs5ODksNV0sWzgzNyw0NV0sWzQwMCwwXSxbNDQ0LDJdLFszNDcsMV0sWzEyMiwzOF0sWzgzNyw0OF0sWzg0MiwwXV0uZm9yRWFjaChmdW5jdGlvbihyLFYsUCxxLGMsRSxTKXsocT0oUD0oVj0oYz0oUz1bMSwyNiwyNV0sRT1nWzEyXSg3LHIpLEUpLm5leHQoKS52YWx1ZSxFLm5leHQoKSkudmFsdWUsZ1s3XSg1KSksZ1s3XSg0KSkscCkucHVzaChbSFs0NF0oNDIsClcpLGdbNDhdKDE2LGMsSiksWVsxMl0oMTYseixKKSxZWzBdKFNbMV0sUCxPW1NbMl1dKDcseiksT1tTWzJdXSgzLFcpKSxSWzE5XSg2NSxBLFEseiksWVswXSgyNyxQLE9bU1syXV0oMyxBKSxPW1NbMl1dKDcsVykpLEkoSyxaLEMsQSksbVsxMl0oOTcsTixWKSxSWzE5XSg0MSxmLE4sSyksWVswXSgyOSxQLE9bU1syXV0oNyxmKSxPW1NbMl1dKDUsVykpLERbNDVdKDMsT1tTWzJdXSg3LGYpLGYpLEkoVyxCLHYsZiksWVswXSgyNyxxLFNbMF0sU1swXSksUCxtWzEyXSg0MixmLDApLEkoVyxCLHYsZikscV0pfSksW2dbTFsxXV0oMTYsblswXSx4KSxjJChCLHgpLEhbNDRdKDU4LHgpLGdbTFsxXV0oMTAsTFsyXSxaKSxZW0xbMF1dKDEsWixaKSxnW0xbMV1dKDE2LDYzMyxDKSxnW0xbMV1dKDEwLG5bMV0sUSksZ1tMWzFdXSgxNiwzMDYsdildKS5jb25jYXQoZVszM10oTFswXSxwKSxbSFs0NF0oNTEsSiksSFs0NF0oNDcsQyksSFs0NF0oNTEsUSksSFs0NF0oNTgsdiksa1sxOF0oMzAsQiwKT1syNV0oNSxCKSksUls0Nl0oODIsdGhpcyxCKV0pfSx4JCkoKSxuNykoKSxxVT1NVDMoKSx5JD1hYSgpLGNxPUJpMCgpLFdIPXpXRygpLGdPPUQwMCgpLHY0Mz1PXygpLFQ5dz1tZygpLFg1PSgoKCgoKChPWzIxXSg2LENGLExEKSxDRi5wcm90b3R5cGUpLlI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOKXt0aGlzLlc9KHRoaXNbKCgoKCgodGhpc1t0aGlzLlg9KHY9KHA9KEI9KFo9KG49KFE9KEs9KGI9KHo9Z1sxMl0oNCx5WzQ5XSg0LChOPVsiaSIsIm8iLCJtIl0sdGhpcyksMTIpKSxBPXoubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSxKPXoubmV4dCgpLnZhbHVlLFc9ei5uZXh0KCkudmFsdWUsei5uZXh0KCkudmFsdWUpLHoubmV4dCgpLnZhbHVlKSx6Lm5leHQoKSkudmFsdWUseikubmV4dCgpLnZhbHVlLHoubmV4dCgpKS52YWx1ZSx6Lm5leHQoKS52YWx1ZSkseikubmV4dCgpLnZhbHVlLEM9ei5uZXh0KCkudmFsdWUsdGhpcy5BPW4sQyksTlsxXV09CnYsdGhpcylbTlsyXV09cCx0aGlzKS5NPUosdGhpcykuVj1XLHRoaXMpLlU9USx0aGlzKS5QPWIsdGhpcy5DPVosTilbMF1dPUIsSyksdGhpcy5IPUF9LENGLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtyZXR1cm4gQT0oej0oQj0obj0ocD0oYj0oQz0oSz0oSj1nWzEyXSgxMiwoWj1bKFc9WzEsMCw5XSwyMDQ4KSw3LDIwMV0sa1s0Ml0oNDIsdGhpcyxaW1dbMF1dKSkpLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKS52YWx1ZSksSi5uZXh0KCkudmFsdWUpLEoubmV4dCgpLnZhbHVlKSxKLm5leHQoKS52YWx1ZSksSikubmV4dCgpLnZhbHVlLEoubmV4dCgpKS52YWx1ZSx2PWdbN10oNCksZylbN10oMzkpLFE9Z1s3XSgzOCksW3RoaXMuRCxlWzddKDcxLEIpLFJbMTZdKDI0LHRoaXMuQSxPWzI1XShXWzBdLEIpLE9bMjVdKFdbMF0sdGhpcy5XKSksbVsxMl0oOTUsQixXWzFdKSxSWzE5XShXWzJdLEssQix0aGlzLlYpLFlbV1sxXV0oMjUsQSxPWzI1XSg1LApLKSxPWzI1XShXWzBdLFpbV1sxXV0pKSxnWzQ4XSgxMCw4ODAscCksUlsyN10oMzAsdGhpcy5QLHRoaXMuZyx0aGlzLlYpLFJbMjddKDMxLHRoaXMubyx0aGlzLmosdGhpcy5WKSxnWzQ4XSgyNCw4NzQsQyksUlsxOV0oV1swXSxCLEMsSyksWVtXWzFdXSgyOCxRLE9bMjVdKDMsQiksT1syNV0oNSxaW1dbMV1dKSksZVs3XSgyLHRoaXMuVSksR1syNF0oMTYsdGhpcy5YLE9bMjVdKDUsdGhpcy5YKSxXWzBdKSxJKGIsSyxDLHApLEhbNDRdKDUwLEMpLEhbNDRdKDU1LHApLGdbNDhdKDI0LFpbMl0sbiksSShiLGIsbix0aGlzLlAsdGhpcy5vKSxIWzQ0XSg0MixuKSxrWzE3XSgzNiksQSxtWzEyXSg0Nyx0aGlzLk0sY3EpLGtbMTddKDMyKSxRLG1bMTJdKDM4LHRoaXMuTSxXSCksSFs0NF0oNTUsQyksSFs0NF0oNTQscCksa1sxN10oNDUpLHRoaXMuZyxlWzddKDcxLEIpLFJbMTZdKDU2LHRoaXMuQyxPWzI1XSgzLEIpLE9bMjVdKDUsdGhpcy5VKSksbVsxMl0oOTcsQixXWzFdKSxSWzE5XSgzMiwKeixCLHRoaXMuViksWVtXWzFdXSgyNix2LE9bMjVdKFdbMl0seiksT1syNV0oV1swXSxaW1dbMV1dKSksbVs0XSgxNCx6LHRoaXMuTSksdixIWzQ0XSg0NyxCKSxIWzQ0XSg0Nix6KSxrWzE3XSgzNiksdGhpcy5LLG1bMTJdKDk2LHRoaXMuTSxjcSksa1sxN10oMzMpLHRoaXMuaixtWzEyXSgzNix0aGlzLk0sZ08pLGtbMTddKDM0KV19LENGKS5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIEs9KEo9KEI9KHo9Z1sxMl0oNSxrWzQyXSgoYj1bNjMsNDQsNF0sNDYpLHRoaXMsYlsyXSkpLHoubmV4dCgpLnZhbHVlKSx6KS5uZXh0KCkudmFsdWUsei5uZXh0KCkpLnZhbHVlLEM9ei5uZXh0KCkudmFsdWUsW2VbN10oMixLKSxSWzE2XSg2MCx0aGlzLmksT1syNV0oNyxLKSxPWzI1XSg3LHRoaXMuVykpLG1bMTJdKDQ4LEMsMSksZ1s0OF0oMTAsNzgsSiksYyQoQixKLHRoaXMuTSx0aGlzLkEsdGhpcy5DLHRoaXMuaSx0aGlzLlgsQyksa1sxOF0oMzMsQixPWzI1XSgxLApCKSksUls0Nl0oNjQsdGhpcyxCKSxIW2JbMV1dKGJbMF0sSyksSFtiWzFdXSg0NyxCKSxIW2JbMV1dKDUxLEopLEhbYlsxXV0oNDYsQyldfSxDRi5wcm90b3R5cGUpLkY9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIpe3JldHVyblsoYj0oVz0ocD0oSz0oTj0obj0oSj0oTD0oWj0oQz0odj0oej0oZj0oUT0oeD1nWzEyXSg1LChyPVsoQj1bODc2LDIwMSw4NzJdLDM5KSw0OCwyMDQ4XSxrWzQyXSg2MSx0aGlzLDEzKSkpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKSkudmFsdWUseC5uZXh0KCkudmFsdWUpLEE9eC5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpKS52YWx1ZSx4KS5uZXh0KCkudmFsdWUseC5uZXh0KCkudmFsdWUpLHgubmV4dCgpLnZhbHVlKSx4Lm5leHQoKS52YWx1ZSkseC5uZXh0KCkpLnZhbHVlLHgubmV4dCgpLnZhbHVlKSx4KS5uZXh0KCkudmFsdWUsZylbN10oNiksZ1s3XSg1KSksbSlbMTJdKHJbMF0sdGhpcy5NLApUOXcpLG1bMTJdKDk3LHRoaXMuQSwtMSksbVsxMl0oOTcsdGhpcy5DLC0xKSxtWzEyXSgzNix0aGlzLmksLTEpLG1bMTJdKHJbMF0sdGhpcy5YLDApLGVbN10oMSx0aGlzLlcpLGdbclsxXV0oMjQsODcxLFEpLFlbMTJdKDIsZixRKSxIWzQ0XSg0NyxRKSxtWzEyXSg0MCxwLEhxKSxZWzBdKDI3LFcsT1syNV0oNSxmKSxPWzI1XSgzLHJbMl0pKSxnW3JbMV1dKDEwLEJbMl0seiksUlsxOV0oOSxBLHosZiksSFs0NF0oNTkseiksbVsxMl0oOTUscCxxVSksWVswXSgyNixXLE9bMjVdKDMsQSksT1syNV0oMyxyWzJdKSksZ1tyWzFdXSgyNiw4NzMsdiksUlsxOV0oNzMsQyx2LEEpLG1bMTJdKDQxLHAseSQpLFlbMF0oMjYsVyxPWzI1XSgzLEMpLE9bMjVdKDksclsyXSkpLGdbclsxXV0oMjYsMTQwOSxLKSxZWzEyXSgyLEosSyksc2coSixKKSxIWzQ0XSg0MixLKSxnW3JbMV1dKDE4LDg3NSxuKSxnW3JbMV1dKDI2LEJbMF0sTiksbVszM10oMTAsSixuLE9bMjVdKDMsTikpLEhbNDRdKDU5LG4pLApIWzQ0XSg0MixOKSxJKFosQSx2LEopLEhbNDRdKDUwLHYpLEhbNDRdKDQ3LEMpLEhbNDRdKDU0LEopLFJbMjddKDI3LHRoaXMuSCx0aGlzLkQsdGhpcy5WKSxSWzI3XSgyOSx0aGlzLm0sdGhpcy5LLHRoaXMuViksZ1tyWzFdXSgxNixCWzFdLEwpLEkoWixaLEwsdGhpcy5ILHRoaXMubSksSFs0NF0oNjMsTCksWVswXSgyNSxiLDEsMSksVyxtWzRdKDQscCx0aGlzLk0pLGIsSFs0NF0oNDcsZiksSFs0NF0oNDcsQSksSFs0NF0oNDYsWiksSFs0NF0oNTEscCldfSxPWzIxXSgyLEprLExEKSxKay5wcm90b3R5cGUudj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVyblsoQj0oSz1nWzEyXSgxMiwoQz1bMywyNSw0M10sa1s0Ml0oNjEsdGhpcyxDWzBdKSkpLEsubmV4dCgpLnZhbHVlKSxKPUsubmV4dCgpLnZhbHVlLHo9Sy5uZXh0KCkudmFsdWUsZVs3XSg2NSxKKSksUlsxNl0oMjYsSixPW0NbMV1dKDcsSiksT1tDWzFdXSg3LHRoaXMuWCkpLG1bMTJdKDk1LHosQ1swXSksbVszM10oNDcsdGhpcy5NLAp6LE9bQ1sxXV0oOSxKKSksdGhpcy5zdHJpbmdpZnkoQix0aGlzLk0pLFJbNDZdKDE2LHRoaXMsQiksSFs0NF0oQ1syXSxCKSxIWzQ0XSg0NixKKSxIWzQ0XSg1NSx6KV19LEprKS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7cmV0dXJuWyh6PShwPShDPShRPShCPShiPSh2PWdbMTJdKDEsa1s0Ml0oNTgsKFo9WzcsKEo9WzEsMCwyMDM1XSw2KSwzN10sdGhpcyksWlswXSkpLHYubmV4dCgpLnZhbHVlKSx2Lm5leHQoKS52YWx1ZSksdi5uZXh0KCkpLnZhbHVlLHYubmV4dCgpLnZhbHVlKSx2Lm5leHQoKS52YWx1ZSksbj12Lm5leHQoKS52YWx1ZSx2Lm5leHQoKS52YWx1ZSksSz1nW1pbMF1dKFpbMl0pLEE9Z1taWzBdXShaWzFdKSxnKVs0OF0oMTgsNzgscCksbVsxMl0oMzgsbixtZygpKSxtWzEyXSg0Mix6LC0xKSxtWzEyXSg0OCxDLDIpLGMkKHRoaXMuTSxwLG4seix6LHoseixDKSxlW1pbMF1dKDY2LHRoaXMuWCksUlsyN10oMjUsdGhpcy5pLHRoaXMuQSwKdGhpcy5WKSxnWzQ4XSgyNixKWzJdLGIpLFlbMTJdKDIsUSxiKSxZWzBdKDI1LEssT1syNV0oNSxRKSxPWzI1XSg1LDIwNDgpKSxnWzQ4XSgxNiwyMDEsQiksSShDLFEsQix0aGlzLmkpLE9bOV0oMTcsMzMpLFlbMF0oMjUsQSxKWzBdLEpbMF0pLEssbVsxMl0oNDIsbix2NDMpLG1bMTJdKDM4LEMsSlsxXSksbVszM10oMTIsdGhpcy5NLEMsT1syNV0oNSxuKSksQSxIWzQ0XSg1OSxiKSxIWzQ0XSg0MyxCKSxIWzQ0XSg1NCxRKSxIWzQ0XSg2MyxDKSxIWzQ0XSg0MixwKSxIWzQ0XSg0NyxuKSxIWzQ0XSg1MSx6KV19LEprLnByb3RvdHlwZSkubD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEo9WyhLPSh6PShiPVsxMiwiViIsKEM9W10sNCldLEI9Qy5jb25jYXQsZ1tiWzBdXSg3LGtbNDJdKDQ3LHRoaXMsMSkpLm5leHQoKS52YWx1ZSksZylbN10oNyksdGhpcykuQSxtW2JbMF1dKDk2LHosMCksUlsxOV0oNzIseix6LHRoaXNbYlsxXV0pLFlbMF0oMjYsSyxPWzI1XSg5LHopLE9bMjVdKDUsCjIwNDgpKSxtW2JbMl1dKGJbMl0seix0aGlzLk0pLEssSFs0NF0oNjIseiksa1sxN10oNDUpXSxCKS5jYWxsKEMsZVszM10oYlswXSxKKSl9LEprLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIseixLLEosQyxiKXt0aGlzLmk9KHRoaXNbdGhpcy5YPXo9KEs9KEI9KEM9KEo9Z1tiPVsxMiw1LCJWIl0sYlswXV0oNCx5WzQ5XShiWzFdLHRoaXMsNCkpLEoubmV4dCgpLnZhbHVlKSxKKS5uZXh0KCkudmFsdWUsSi5uZXh0KCkpLnZhbHVlLEoubmV4dCgpLnZhbHVlKSx0aGlzLk09SyxiWzJdXT1CLEMpfSxiZykoKSx1dz1WVygpLFo0PUlXKCksaUY9aE4oKSxqdD1WcSgpLFdsPUl0KCkscU49aE8oKSxtcz14dCgpLFlBPXl2KCkseWc9aGcoKSxwQz0obVQoKSxiUykoKSxUZD1ldygpLG5DPXU4KCksd3Q9S0UoKSwkQT1HSSgpLGxWPUlxKCksczM9a0QoKSx3aT1veCgpLEVoPVFaKCksZ3Q9ZDgoKSxjRD1wRHEoKSxOUj1QSigpLFhIPUM4KCksU0M9aXooKSxPMz1EYSgpLEdMPWQyKCksdVY9dkIoKSwKUTA9QmEoKSxVMT1HbEQoKSxtTD1DdigpLFZPPVlsKCksVXg9KE4wbCgpLG5ldyBNYXApLHdwPW5ldyBTZXQsdG8sWWU9VUUoKSxydD1peCgpLG9TPVswLElfLCgoT1syMV0oMixHSCx3RSksR0gucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oQix6LEssSixDLGIpe3JldHVybiBHWzEzXSgxNywoej0oSj10aGlzLHopPT09KEs9Sz09PXZvaWQgMD8xNUUzOkssdm9pZCAwKT9udWxsOnosZnVuY3Rpb24oQSx2KXtyZXR1cm4gdj1bInYiLDI5LCJNIl0sQVt2WzJdXT09MT8oQz1PWzQxXSh2WzFdKSxiPW5ldyBHaSxKW3ZbMl1dLnNldChDLGIpLE9bMl0oOCxmdW5jdGlvbigpeyhiLnJlamVjdChFcnJvcigicmVDQVBUQ0hBIFRpbWVvdXQgKCIrQisiKSIpKSxKLk0pWyJkZWxldGUiXShDKX0sSyksQVt2WzBdXShZWzMyXSgyNCwyLEosQixDLHopLDIpKTpBLnJldHVybihiLnByb21pc2UpfSkpfSxHSC5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXsod0UucHJvdG90eXBlLlouY2FsbCh0aGlzKSx0aGlzLnYpLmNsb3NlKCl9LApPWzIxXSgxLFh5LFQpLC0xKV0sWVU9KChPWzIxXSg2LChYeS5wcm90b3R5cGUuVD1SWzQ4XSg0LG9TKSxFMCksVCksRTAucHJvdG90eXBlKS5UPVJbNDhdKDksWzAsVGEsb1NdKSxmdW5jdGlvbigpe3JldHVybiBSWzQ2XS5jYWxsKHRoaXMsMTkpfSksTF89WygoKCgoT1syMV0oMyxDRCxUKSxDRC5wcm90b3R5cGUpLnNjPWZ1bmN0aW9uKCl7cmV0dXJuIERbMzhdKDEseVEsdGhpcywxKX0sQ0QpLlJUPVhhKCksQ0QpLnByb3RvdHlwZS5UPVJbNDhdKDUsWyJzZXRva2VuIix5USx2WixDWCx2Wl0pLE8pWzIxXSg2LGdyLFQpLDApLENYLC0xXSxSUz1bMCwoT1syMV0oMywoZ3IucHJvdG90eXBlLlQ9Uls0OF0oNCxMXyksUEgpLFQpLFRhKSxMXyxLWCxDWF0scmo9WzAsQnRNLChPWzIxXSgzLE9ILChQSC5wcm90b3R5cGUuVD1SWzQ4XSg5LFJTKSxUKSksV1opLC0xLFFUXSxWZD1bMCxyaiwoKE9bMjFdKDUsKE9ILnByb3RvdHlwZS5UPVJbNDhdKDgscmopLER4KSxUKSxPKVs4XSgxMSw1MywKdjdOKSwtMSksMSxyaiwyLHJqLC0yMl0scHk9KCgoT1syMV0oKER4LnByb3RvdHlwZS5UPVJbNDhdKDksVmQpLDIpLGR4LFQpLGR4KS5wcm90b3R5cGUuQ3U9ZnVuY3Rpb24oKXtyZXR1cm4gUls0OF0oNzUsdGhpcyxCTiwyOCl9LGR4LnByb3RvdHlwZSkud1Y9ZnVuY3Rpb24oKXtyZXR1cm4gUls0OF0oNjksdGhpcyxCTiw3MCl9LGR4LnByb3RvdHlwZS5UPVJbNDhdKDgsWzAsNCxDWCxJXywxMCxBRyxnJCxDWCw4LE0zLC0xNSwxLE0zLC0zLDEsTTMsLTE0LElfLE0zLC02LFJTLFZkLE0zLC0xLHdibCxNMywtMSxRVF0pLElXKCkpLHpaPUM4KCksbnk9aXooKSxqaD1oTigpLEtTPVZxKCksUUo9SXQoKSxzeT1oTygpLFNMPXh0KCksZEY9VDAoKSxuNj1mNCgpLHp1PW0xKCksSjU9U084KCksUUM9R2coKSxqQ2g9RGooKSxHUD1ObigpLHBuMz1aWCgpLFFDTT1waSgpLEtZPVNrKCksSjQ9JDUoKSxwNj1EYXRlLm5vdygpLE0xPURhdGUubm93KCksbGo9SXRNKCk7CigoKCgoKCgoKCgoKCgoRj0oKCgoKCgoT1syMV0oMSxFdCx3RSksRXQucHJvdG90eXBlKS5sPWZ1bmN0aW9uKEIseixLLEope2lmKEo9dGhpcy5kVlt0aGlzLlhdW3pdKXJldHVybiBKLmNhbGwodGhpcyxCPT1udWxsP3ZvaWQgMDpCLEspfSxFdC5wcm90b3R5cGUpLmluaXQ9ZnVuY3Rpb24oQil7cmV0dXJuKEI9dGhpcyxHKVsxM10oMzMsZnVuY3Rpb24oeil7cmV0dXJuIEIuQT0oMCx0JC55NSkoQi5TOS5iaW5kKEIpLDEpLHoucmV0dXJuKEIuQSl9KX0sRXQpLnByb3RvdHlwZS5CMT1mdW5jdGlvbihCKXt0cnl7dGhpcy5YZyhCLnYpfWNhdGNoKHope319LEV0KS5wcm90b3R5cGUuRD1mdW5jdGlvbihCLHopeyh6PVs0NSwiWCIsbnVsbF0sQikucmVzaXplP3RoaXMuUi50aGVuKGZ1bmN0aW9uKEspe3JldHVybiBLLnNlbmQocU4sbmV3IEZ5KHt2aXNpYmxlOkIudmlzaWJsZX0pKX0sT1t6WzBdXS5iaW5kKHpbMl0sODYpKTp0aGlzW3pbMV1dPT1ueT90aGlzW3pbMV1dPUtTOkIudXkmJgpCLnV5LndpZHRoPD0wJiZCLnV5LmhlaWdodDw9MD8odGhpc1t6WzFdXT16Wix0aGlzLlIudGhlbihmdW5jdGlvbihLKXtyZXR1cm4gSy5zZW5kKHFOLG5ldyBGeSh7dmlzaWJsZTpCLnZpc2libGV9KSl9LE9belswXV0uYmluZCh6WzJdLDkwKSkpOih0aGlzW3pbMV1dPUtTLHRoaXMuTnguc2VuZChqdCxCKSl9LEV0KS5wcm90b3R5cGUuUWU9ZnVuY3Rpb24oQix6LEspe3JldHVybiBHW0s9dGhpcywxM10oMjQsZnVuY3Rpb24oSixDKXtpZigoQz1bMiwidiIsIk0iXSxKW0NbMl1dKT09MSl7aWYoIUtbQ1sxXV0uUil0aHJvdyBFcnJvcihHUCsiIGNsaWVudCBmb3IgY2hhbGxlbmdlQWNjb3VudC4iKTtyZXR1cm4gSltDWzFdXShLW0NbMV1dW0NbMl1dLnNlbmQobmV3IHZFKEIpKSxDWzBdKX1yZXR1cm4gSi5yZXR1cm4oT1t6PUouWCw0MF0oMjAseikpfSl9LEV0LnByb3RvdHlwZSkub3o9ZnVuY3Rpb24oQix6KXt0aGlzWygoej1bIlgiLCJSIixudWxsXSx0aGlzKVt6WzBdXT1RSix0aGlzKS5OeC5zZW5kKFlBKSwKelsxXV0udGhlbihmdW5jdGlvbihLKXtyZXR1cm4gSy5zZW5kKFlBLG5ldyB2NShCKSl9LE9bNDVdLmJpbmQoelsyXSw5NCkpfSxFdC5wcm90b3R5cGUpLEV0KS5wcm90b3R5cGUua0o9ZnVuY3Rpb24oQil7KHRoaXNbdGhpc1tCPVsiTSIsImkiLCJYIl0sQlswXV0uQzUoKSxCWzJdXT1RSix0aGlzKS5OeC5zZW5kKGp0LG5ldyBGeSh7dmlzaWJsZTohMX0pKSx0aGlzW0JbMV1dJiZ0aGlzW0JbMV1dLnJlc29sdmUobmV3IEpQKDAsIiIsQ2NoLCExKSl9LEV0LnByb3RvdHlwZS5FMz1mdW5jdGlvbihCLHope0Rbej1bMiw3LDExXSxCPXRoaXMselsyXV0oOSkubmF2aWdhdG9yLm9uTGluZT90aGlzLk54LnNlbmQocEMpOmtbelswXV0oelsxXSx0aGlzLERbelsyXV0oMyksJHJ4LGZ1bmN0aW9uKCl7cmV0dXJuIEIuTnguc2VuZChwQyl9KX0sRikuUVo9ZnVuY3Rpb24oQil7cmV0dXJuIFlbMTVdLmNhbGwodGhpcyw0MixCKX0sRXQpLnByb3RvdHlwZS56Sj1mdW5jdGlvbigpe3RoaXMucHE9CiEwfSxFdCkucHJvdG90eXBlLnBnPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBHWzEzXSgyNCwoej10aGlzLGZ1bmN0aW9uKEMsYixBKXtBPVsiaSIsMCwoYj1bMiwzRTQsNF0sMSldO3N3aXRjaChDLk0pe2Nhc2UgQVsyXTpyZXR1cm4gSz1iW0FbMl1dLEMuQShiW0FbMV1dKSxDLnYoei5GZyxiWzJdKTtjYXNlIGJbMl06KEo9Qy5YLEMpLkYoMyk7YnJlYWs7Y2FzZSBiW0FbMV1dOnJldHVybiBDW0FbMF1dKCksQy5yZXR1cm4obmV3IExtKHZvaWQgMCw3LDAsMCxbXSkpO2Nhc2UgMzpyZXR1cm4gQy5yZXR1cm4oSi5zZW5kKG1MLEIsSykpfX0pKX0sRXQucHJvdG90eXBlLlhDPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gR1sxM10oMjUsKHo9dGhpcyxmdW5jdGlvbihKLEMpe2lmKEpbQz1bInYiLCJNIiw2OF0sQ1sxXV09PTEpe2lmKCF6W0NbMF1dLlIpdGhyb3cgRXJyb3IoR1ArIiBjbGllbnQgZm9yIHZlcmlmeUFjY291bnQuIik7cmV0dXJuIEpbQ1swXV0oeltDWzBdXVtDWzFdXS5zZW5kKG5ldyBlYyhCKSksCjIpfXJldHVybiBKLnJldHVybihPWzQwXShDWzJdLChLPUouWCxLKSkpfSkpfSxFdC5wcm90b3R5cGUubFk9ZnVuY3Rpb24oQix6KXtyZXR1cm4oMCx0JC55NSkoZnVuY3Rpb24oSyxKLEMsYil7aWYoKEM9KEs9ISgoSj0oYj1bIkoiLDFFMyxudWxsXSxbITAsMSwiIl0pLHouTSkuVmwoKSx6Llg9c3ksMSksZGspW2JbMF1dKCkuZ2V0KCkseikuRyE9PW51bGwpcmV0dXJuIHouRy50aGVuKGZ1bmN0aW9uKEEpe3JldHVybiBHWzEzXSgyNCxmdW5jdGlvbih2LHAsUSxuLFope3JldHVybihaPShRPVtudWxsLCEwLDNdLFsiczMiLDQsInJlc3BvbnNlIl0pLEEuT1kmJiFBLk9ZW1pbMF1dKCkmJihBLk9ZLndWKCkmJihCLnY9QS5PWS53VigpKSxLPVlbMTldKDM3LFpbMV0sQS5PWSksUls0MF0oMzgsMSxBLk9ZLnhuKCkpKSxBLm9PKSYmKG49bmV3IENELHA9UlsyNV0oNTksUVswXSxRWzJdLEJbWlsyXV0seVEsbixsKSxCW1pbMl1dPUdbMzRdKDM5LFpbMV0sUls2XSgyLDIscCxBLm9PKSkpLAp2LnJldHVybih5WzM5XSg0MCxRWzFdLDFFMyxLLEIseikpfSl9KTtyZXR1cm4oWVsxOV0oMzcsMTYsQykmJnoudi52JiYoZzBbNF0oNixnWzE0XSgzLGR5KSxKWzJdLEpbMV0pLEIuTSYmKEs9Qi5NLEIuTT1iWzJdKSkseSlbMzldKDgsSlswXSxiWzFdLEssQix6KX0sKHo9dGhpcywxMykpfSxGLng3PWZ1bmN0aW9uKEIpe3JldHVybiBrWzQxXS5jYWxsKHRoaXMsMTYsQil9LEV0LnByb3RvdHlwZS5yYj1mdW5jdGlvbigpeyh0aGlzLlg9cHksdGhpcy5pKSYmdGhpcy5pLnJlc29sdmUobmV3IEpQKDAsIiIsQ1MsITEpKX0sRXQucHJvdG90eXBlLkpMPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEpe2lmKEE9KHo9KHY9bUw4KChRPVsoSj1bbnVsbCwhMSwoSz10aGlzLDQpXSwiaSIpLDE2LDMxXSxDPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4sWixXLE4peyhOPShLLlhnPWZ1bmN0aW9uKHgsZixMLHIsVixQLHEsYyxFKXtpZihjPXhbRT1bMSwocj1bMSwzLDEwNV0sMCksITFdLEVbMV1dLApjPkVbMV0pe2lmKHhbcltFWzFdXV0pe2lmKFY9KHE9bmV3IE9ILGY9eVszMl0oMixudWxsLHEsMix4WzJdKSx5KVszMl0oNCxudWxsLGYscltFWzBdXSx4W3JbRVswXV1dKSxIW0VbMV1dKDU2LEVbMV0sZGsuSigpLHJbMl0pKUw9bmV3IFVpbnQ4QXJyYXkoT2JqZWN0LnZhbHVlcyh4W3JbRVsxXV1dKSkseVszOF0oMix2b2lkIDAsR1s0Ml0oMzgsbnVsbCxFWzJdLEwpLFYsNCk7ZWxzZSBtWzJdKDY0LEVbMV0sVixyW0VbMV1dLHhbcltFWzFdXV0sRFsyXS5iaW5kKG51bGwsMTgpKTtQPVZ9ZWxzZSBQPW51bGw7VysrLFpbYy1yW0VbMV1dXT1QLFc+PUsudVkmJm4oWil9ZWxzZSBuKFopfSxaPVtdLFs0MCwiSiIsKFc9MCwyKV0pLE8pW05bMl1dKE5bMF0sZnVuY3Rpb24oKXtuKFopfSxZWzIyXSg2NSwxOSxka1tOWzFdXSgpLmdldCgpKSl9KSxlW1FbMl1dKFFbMV0pKSxtWzM1XSgyNykpLnRoZW4oZnVuY3Rpb24obixaKXtyZXR1cm4gR1sxM10oMzIsZnVuY3Rpb24oVyxOKXtpZihXWyhOPQpbMiwiVWQiLCJNIl0sTilbMl1dPT0xKXJldHVybiBXLnYoSy5OeC5zZW5kKFo0LG5ldyBXdSksTlswXSk7cmV0dXJuKChaPVcuWCxuKS5wdShaW05bMV1dKSxXKS5yZXR1cm4oWil9KX0pLEhbNDNdKDEzLEpbMV0sITAsW3YsZ1sxMF0oMywxLEpbMV0sSlsyXSwxOCksaGkwKGVbUVsyXV0oUVsxXSksdm9pZCAwLHZvaWQgMCx2LHRoaXMudi5GKSxkTFkoKSxrTXgoKSx0ZHEoKSxVTDgoKSxDXSkpLnRoZW4oZnVuY3Rpb24obixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSl7cmV0dXJuKFo9KHg9KE49KGY9KEU9KEw9KGM9KHE9KFA9Z1sxMl0oNCxuKSxQLm5leHQoKS52YWx1ZSksUCkubmV4dCgpLnZhbHVlLFAubmV4dCgpLnZhbHVlKSxQKS5uZXh0KCkudmFsdWUsUC5uZXh0KCkudmFsdWUpLFAubmV4dCgpLnZhbHVlKSxQLm5leHQoKS52YWx1ZSksUCkubmV4dCgpLnZhbHVlLEcpWzEzXSg4LGZ1bmN0aW9uKFMsYSx1LFgsZCx0LGgsTSxVLHcsc3csQjgsSlksYjMsejgpe3JldHVybihyPSh1PQooVT0oSlk9KHc9KHN3PShNPShkPShiMz0oWD1uZXcgKCgoKFc9KFY9KHo4PVs2LChhPVsxLChLLm5xPXEuVlgsMCksNV0sIksiKSw0NF0sSy5CPW5ldyBSRShxLk9JKSxLLkw9bmV3IEUwKHEudWMpLFlbN10oODAsIiIsMjU1LERbOF0oMTMsZGsuSigpLmdldCgpKSkpLGcpWzFdKDgsYVsxXSkqMixLLmZxKSYmKFctPWFbMF0pLEwpLnB1KHEuVWQpLEUpLnB1KHEuVWQpLGYucHUocS5VZCksTi5wdShxLlVkKSx4LnB1KHEuVWQpLGR4KShxLlVkKSxtKVsyM10oMzMsVixYLGFbMl0pLGtbejhbMF1dKDU5LHo4WzBdLGIzLFcpKSxIKVswXSg1MCxkLDE4LGMpLGUpWzMxXSgxNyksbSlbMjNdKDI3LHN3LE0sMTkpLFBiKShIWzhdKDQwLDY1MjkpLGFbMV0pLGspW3o4WzBdXSgyOSw2NSx3LEpZKSxoPVBiKEsuUVosbnVsbCksdD1IW3o4WzJdXSg2OCxVLFBILDczLGgpLEhbejhbMl1dKDY3LHQsQk4sNDcsQikpLEI4PW5ldyBEeChaKSxIW3o4WzJdXSgyMSx1LER4LDc0LEI4KSksSylbejhbMV1dJiYKeVszMl0oMSxudWxsLHIsNzcsS1t6OFsxXV0pLFMucmV0dXJuKHIueWUoKSl9KX0pLFByb21pc2UucmVzb2x2ZSgiIikpLChiPXRoaXMudltRWzBdXS52KT09SlswXT8wOlJbMjZdKDIzLGIsMyxsKSlBPXoudGhlbihmdW5jdGlvbigpe3JldHVybiBLLnYuaS5leGVjdXRlKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbn0sZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pfSk7cmV0dXJuIHA9W3oudGhlbihmdW5jdGlvbihuKXtyZXR1cm4iIitZWzRdKDYxLG4pfSksQSx6LnRoZW4oZnVuY3Rpb24obixaKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGVbMTZdKDY5LDQsZmIsKFo9WzI1NSwxOCwxN10sR1sxMF0oWlsyXSxaWzBdLDI1NixrWzM5XSg3NCxaWzFdLG4pLHA2KSkpKX0pXSxQcm9taXNlLmFsbChwKS50aGVuKGZ1bmN0aW9uKG4sWil7cmV0dXJuIEdbMTNdKDI1LGZ1bmN0aW9uKFcsTil7aWYoKE49WzUsInYiLCJwdXNoIl0sVykuTT09MSlyZXR1cm4gV1tOWzFdXSh5WzMxXSg0NSwKMTcsbnVsbCxOWzBdLEspLDIpO3JldHVybiBuWyhaPVcuWCxOKVsyXV0oWiksVy5yZXR1cm4obil9KX0pfSxFdC5wcm90b3R5cGUuTXk9ZnVuY3Rpb24oKXtIWzQ4XSg5LCEwLCh0aGlzLlg9bnksdGhpcykpfSxGLlM5PWZ1bmN0aW9uKEIseixLLEope3JldHVybiBnWzZdLmNhbGwodGhpcyw4LEIseixLLEopfSxGKS5jRT1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFJbMTBdLmNhbGwodGhpcywyMCxCLHosSyl9LEV0LnByb3RvdHlwZSkua1c9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEdbMTNdKDksKHo9dGhpcyxmdW5jdGlvbihDLGIpe3JldHVybihiPVsiYTciLCJSIiwiWCJdLEMuTSk9PTE/KEI9KDAsdCQuWDgpKCkuc2xpY2UoKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIE9bNDBdKDUyLEEpfSksSz0oMCx0JFtiWzBdXSkoKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIE9bNDBdKDg0LEEpfSksKDAsdCQudkYpKCksSj16Lk1bYlsyXV0udmFsdWUsei52W2JbMl1dP0MuR18oMik6Qy52KHpbYlsxXV0udGhlbihmdW5jdGlvbihBKXtyZXR1cm4gQS5zZW5kKHVWKS50aGVuKGZ1bmN0aW9uKHYsCnAsUSxuKXtLPShCPShwPShRPXZbKG49WyJjb25jYXQiLCJTSSIsImI1Il0sbilbMV1dLCgwLHQkW25bMl1dKSh2LkpyLHYudVIpKSxCW25bMF1dKHApKSxLW25bMF1dKFEpKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KSwyKSk6Qy5yZXR1cm4obmV3IGY1KEssSixCKSl9KSl9LEV0LnByb3RvdHlwZSkuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtpZih0aGlzW3o9KEM9WzIyLDEyLG51bGxdLEE9WyJ2IiwyLDRdLHRoaXMpLEFbMF1dW0FbMF1dJiZ0aGlzLlg9PXN5JiZ0aGlzW0FbMF1dLkEpcmV0dXJuIFByb21pc2UucmVzb2x2ZShDW0FbMV1dKTtpZih0aGlzW0FbMF1dLlgpcmV0dXJuIGI9SFs0OV0oQVsyXSxDWzFdLDE2LDUsQ1swXSxCLHRoaXMpLEIubWR8fChKPURhdGUubm93KCksYi50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIEdbMzldKDI2LDEsNSxKLHZvaWQgMCwxLHopfSxmdW5jdGlvbih2LHApe3JldHVybiBwPVsidiIsMzksIk0iXSxHW3BbMV1dKDI0LDEsNSxKLHYgaW5zdGFuY2VvZgpVWD92W3BbMF1dW3BbMl1dOnZvaWQgMCx2IGluc3RhbmNlb2YgVVg/NDoyLHopfSkpLEIuQXU/UHJvbWlzZS5yYWNlKFtiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHYscCl7c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBwKHdNKCkpfSxCLkF1KX0pXSk6YjtpZih0aGlzLmk9Uls3XSgzNyksQiYmdGhpc1tBWzBdXVtBWzBdXSYmKHlbMjddKDcsQ1sxXSwxNix0aGlzLEIpLCF0aGlzW0FbMF1dLkEpKXJldHVybiBZWzddKDEwLEFbMV0sdGhpcyxCLm9OfHx2b2lkIDAsQi5STiksdGhpcy5pLnByb21pc2U7cmV0dXJuIFlbN10oOCxBWzFdLHRoaXMsdm9pZCAwLChLPUI9PUNbQVsxXV0/dm9pZCAwOkIuUk4pIT1DW0FbMV1dP0s6ITEpLHRoaXMuaS5wcm9taXNlfSxGKS5ZZj1mdW5jdGlvbigpe3JldHVybiBrWzExXS5jYWxsKHRoaXMsMTYpfSxFdCkucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7dGhpc1soQj1bInByb3RvdHlwZSIsIkZnIiwiaVkiXSx0aGlzW0JbMV1dKS50aGVuKGZ1bmN0aW9uKHope3JldHVybiB6LmRpc3Bvc2UoKX0sCmZ1bmN0aW9uKCl7fSksQlsyXV0udGVybWluYXRlKCksd0VbQlswXV0uWi5jYWxsKHRoaXMpfSxGKS56Wj1mdW5jdGlvbigpe3JldHVybiBSWzQ3XS5jYWxsKHRoaXMsMil9LEV0LnByb3RvdHlwZSkudHU9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIEdbSz10aGlzLDEzXSgxNixmdW5jdGlvbihDLGIsQSl7aWYoKEE9WyhiPVsxLDQsMF0sIk0iKSwiZG9jdW1lbnQiLDEwXSxDKVtBWzBdXT09YlswXSlyZXR1cm4gQy5BKDIpLEo9RFsxMV0oQVsyXSkubmFtZS5yZXBsYWNlKGgkLGc2KSx6PURbMTFdKDkpLnBhcmVudC5mcmFtZXNbSl0seltBWzFdXSYmSFs0OF0oQVsyXSwhMCxLLEIpLEMuRihiWzJdKTtpZihDW0FbMF1dIT1iWzFdKXJldHVybiBDLmkoKSxLW0FbMF1dLkQyKCksSy5SPVJbNDNdKDIwLG51bGwsSyksSy5YPXB5LEMudihlWzQxXSgzNyxiWzBdLEspLGJbMV0pO0suTnguc2VuZCh5ZyksQy5SKCl9KX0sRXQucHJvdG90eXBlLlcxPWZ1bmN0aW9uKEIpe3RoaXMuTnguc2VuZChqdCwKQil9LEV0LnByb3RvdHlwZSkud2I9ZnVuY3Rpb24oQix6KXtyZXR1cm4gR1sxM10oKHo9dGhpcywzMiksZnVuY3Rpb24oSyxKLEMpe2lmKChDPShKPVszLG51bGwsMl0sWyJ2Iiw2LDldKSxLKS5NPT0xKXtpZigheltDWzBdXS5SKXRocm93IEVycm9yKEdQKyIgY2xpZW50IGZvciBjaGFsbGVuZ2VBY2NvdW50LiIpO3JldHVybiBLW3ouUj1SWzQzXSgxNixKWzFdLHopLENbMF1dKGVbNDFdKENbMV0sMSx6KSxKWzJdKX1pZihLLk0hPUpbMF0pcmV0dXJuIEtbQ1swXV0oWVs3XShDWzJdLEpbMl0seixCLm9OfHx2b2lkIDApLEpbMF0pO3JldHVybih6Lmk9Uls3XSg0MSksSykucmV0dXJuKHouaS5wcm9taXNlKX0pfSxFdC5wcm90b3R5cGUuTz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXLE4seCxmLEwscil7cmV0dXJuIEdbMTNdKDE2LChKPShCPUI9PT12b2lkIDA/e2lkOm51bGwsdGltZW91dDpudWxsLGtBOm51bGwsYnk6bnVsbH06Qix0aGlzKSxmdW5jdGlvbihWLFAsCnEpe1A9WyhxPVsidiIsImciLDZdLDIpLDAsMV07c3dpdGNoKFYuTSl7Y2FzZSBQWzJdOnJldHVybiBWW3FbMF1dKGtbMTddKDE0LFBbMl0sNyksUFswXSk7Y2FzZSBQWzBdOnJldHVybiBMPVYuWCxwPUs9ITEseD1kay5KKCksdj0hSFswXSg1NyxQWzFdLHgsMzYpLFo9W10sdiYmKFo9W2pDaCxwbjMsR1AsUUNNXSksVltxWzBdXShKLk54LnNlbmQobkMsbmV3IG9WOChEWzE2XSgxNCxQWzJdLFlbMTldKDMzLDkseC5nZXQoKSkpLG1bMzJdKDcsMTAsUFsxXSxtWzVdKDIzLFBbMl0sIiIpKSxaLEpbcVswXV1bcVsxXV0sSi5ETSkpLDMpO2Nhc2UgMzppZigobj1WLlgsQikuaWQmJighTHx8ZVsyXSgzOSw3LHZvaWQgMCxMKSE9Qi5pZCkpcmV0dXJuIFYucmV0dXJuKCk7cmV0dXJuIFZbTj1uZXcgKCgoTHx8KEw9bmV3IEpKLHA9ITApLEIuaWQ9PW51bGwpJiYoQi5pZD1lWzMxXSgxNyksbVsyM10oMzMsQi5pZCxMLDcpLEIuYnkhPT12b2lkIDAmJkIuYnkhPT1udWxsJiZrW3FbMl1dKDU2LAoxMSxMLEIuYnkpLEhbMjFdKDU1LEwsNCkhPVBbMl0mJihrWzI3XSgyLDUsTCwoSFsyMV0oNyxMLDUpfHxQWzFdKStQWzJdKSxLPSEwKSxSWzMwXSg4LDQsTCxQWzFdKSksRylbMjBdKDgsUFsyXSxMLChIWzIxXSg3LEwsUFsyXSl8fFBbMV0pK1BbMl0pLHlbcVsyXV0oMjYsUFswXSxMLGJOKChIWzIxXSgxNSxMLFBbMF0pfHxQWzFdKSsoQi50aW1lb3V0fHxQWzFdKSkpLFJbMzBdKHFbMl0sNCxMLChIWzIxXSgxNSxMLDQpfHxQWzFdKStQWzJdKSxWLkEoNCksQk4pKG4uaVgpLHFbMF1dKFJbNDddKDkwLDcsUlsyNl0oMTIsTixQWzJdKSxIWzIxXSg0NyxOLFBbMF0pKSxxWzJdKTtjYXNlIHFbMl06cmV0dXJuIHo9Vi5YLHo9ei5yZXBsYWNlKC8iL2csIiIpLHlbMzddKDEwLFBbMV0scVsyXSxMKS5pbmNsdWRlcyh6KXx8a1sxNF0oNywhMCxSWzQ3XS5iaW5kKG51bGwsOTYpLHoscVsyXSxMLG1bNDldLmJpbmQobnVsbCwyOCkpLGY9bmV3IEJOKG4uYmMpLFZbcVswXV0oUls0N10oNDIsNywKUlsyNl0oMTMsZixQWzJdKSxIWzIxXSg1NSxmLFBbMF0pKSw3KTtjYXNlIDc6aWYoISh5WzI5XSg3LDgsTCwoQT1WLlgsK0ErKEhbMjFdKDM5LEwsOCl8fFBbMV0pKSksdil8fCFuLnU1KXtWLkdfKDgpO2JyZWFrfXJldHVybiBXPW5ldyBCTihuLnU1KSxWW3FbMF1dKFJbNDddKDI2LDcsUlsyNl0oMTQsVyxQWzJdKSxIWzIxXSg1NSxXLFBbMF0pKSw5KTtjYXNlIDk6Yj1WLlgsYj1iLnJlcGxhY2UoLyIvZywiIiksZ1s5XSg4LDEwLEwsZ1sxNV0oMiwhMCxQWzFdLFBbMl0sUls0OF0oNzAsTCxJaSwxMCksY3k4KGIpLHAsSykpO2Nhc2UgODpWLkYoNSk7YnJlYWs7Y2FzZSA0OlYuaSgpO2Nhc2UgNTppZihEWzhdKDc2LEhbNF0oOTIsMTEsTCkpIT1udWxsKWlmKHI9SFsyMV0oNyxMLDExKSxyPT09MCllWzI1XSgxMyxQWzJdLFBbMF0sSiksa1txWzJdXSgyNywxMSxMLG51bGwpLEIuYnk9bnVsbDtlbHNlIGtbcVsyXV0oNTksMTEsTCxyLVBbMl0pO3JldHVybiBWW3FbMF1dKEhbMzFdKDQsCiIiLDMsUFsyXSxMKSwxMCk7Y2FzZSAxMDpDPUIua0E/Qi5rQTo1RTMsQi50aW1lb3V0PShQWzJdK0FlKCkpKkMqSFsyMV0oNTUsTCw0KSxCLmtBPW51bGwsUT1tWzM1XSgxMSxCLnRpbWVvdXQrNTAwKSxPWzJdKDQwLGZ1bmN0aW9uKCl7cmV0dXJuIEoubChCLFJbMzFdKDM0LDAsZnVuY3Rpb24oKXtyZXR1cm4gUUN9LFEpKX0sQi50aW1lb3V0KSxWLlIoKX19KSl9LEYpLlI3PWZ1bmN0aW9uKEIpe3JldHVybiBPWzQxXS5jYWxsKHRoaXMsNCxCKX0sT1syMV0oMSxKTSxuUSksSk0pLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCKXt0aGlzLk09a1syMl0oNCwoQj1bbnVsbCwiUiIsInUiXSxSWzI0XS5iaW5kKEJbMF0sMykpLHtzaXplOnRoaXMuWCxzWTp0aGlzLlcsaHU6dGhpcy52LE10OiExLEVZOiExLEtEOiExLFpuOiExLGVycm9yTWVzc2FnZTp0aGlzLnYsZXJyb3JDb2RlOnRoaXNbQlsxXV19KSx0aGlzLk8zKHRoaXNbQlsyXV0oKSl9LGdbNDZdKDgwLGZ1bmN0aW9uKEIseixLKXtuZXcgKCh6PQpuZXcgdk4oKEs9WzExLCJodHRwIiwxNl0sb0MoQikpKSxtWzIwXSgyNCxLWzFdLERbS1swXV0oS1swXSkucGFyZW50LFllKSkuc2VuZCh5ZyxuZXcgeVYoZ1tLWzJdXShLWzBdLGwseiw4LFFCKSwhMCkpLHEwOCkoeil9LCJyZWNhcHRjaGEuYW5jaG9yLkVycm9yTWFpbi5pbml0Iik7ZnVuY3Rpb24gY1AoQix6LEssSixDLGIpe3JldHVybiBlWzQ3XS5jYWxsKHRoaXMsMixCLHosSyxKLEMsYil9dmFyIGJPPShIWzI0XSgxOSxjUCxqYyksVkM4KSgpLG40RD1PZSgpOwooKCgoKEY9Y1AucHJvdG90eXBlLEYuZDc9ZnVuY3Rpb24oKXt0aGlzLnYuSGgoITEpfSxGLkQyPWZ1bmN0aW9uKCl7dGhpcy52LkhoKCExKX0sRikuYUQ9ZnVuY3Rpb24oKXt0aGlzLnYudSgpLmZvY3VzKCl9LEYpLlMwPWZ1bmN0aW9uKCl7cmV0dXJuKGNQLlkuUzAuY2FsbCh0aGlzKSx0aGlzLnYpLmY1KCl9LEYuVmw9ZnVuY3Rpb24oQil7KChCPVsiY2FsbCIsInUiLCJWbCJdLHRoaXMudi5IaCghMCksdGhpcykudltCWzFdXSgpLmZvY3VzKCksY1AuWVtCWzJdXSlbQlswXV0odGhpcyksdGhpcy5MdSghMSl9LEYpLkNxPWZ1bmN0aW9uKEIseil7Y1Bbej1bIlkiLDM2LChCPXRoaXMsMSldLHpbMF1dLkNxLmNhbGwodGhpcyksZVt6WzFdXSh6WzJdLGVbelsxXV0oelsyXSxZWzIzXSg1NCx0aGlzKSx0aGlzLnYsW3lpLFkxXSxmdW5jdGlvbihLKXtLLnR5cGU9PXlpJiZnWzNdKDYwLEIsImUiKSxLLnByZXZlbnREZWZhdWx0KCl9KSxkb2N1bWVudCxDWixmdW5jdGlvbihLLEope0o9WyJ0YWJJbmRleCIsCiJ0YXJnZXQiLDBdLEtbSlsxXV0mJktbSlsxXV1bSlswXV09PUpbMl18fHRoaXMudi51KCkuZm9jdXMoKX0sdGhpcyl9LEYpLk1BPWZ1bmN0aW9uKEIpe3JldHVybihCPVsicmVjYXB0Y2hhLWNoZWNrYm94IiwzNCw5XSxtKVs0MV0oQlsxXSxCWzJdLG1bMl0oOTMsQlswXSkpfSxGLkx1PWZ1bmN0aW9uKEIseixLLEopeygoR1tKPVszNSwxNSwzOF0sSlswXV0oOSx0aGlzLnUoKSxCLCJyYy1hbmNob3ItZXJyb3IiKSxZKVtKWzJdXSgzNyxlWzMxXSgxMiwicmMtYW5jaG9yLWVycm9yLW1zZy1jb250YWluZXIiLHRoaXMpLEIpLEIpJiYoSz1lWzMxXShKWzFdLCJyYy1hbmNob3ItZXJyb3ItbXNnIix0aGlzKSxEWzEzXSg0MCxLKSxSWzM2XSgyMCxLLHopKX0sRi5iWT1mdW5jdGlvbihCKXt0aGlzW0I9WzM3LCJ1IiwiTSJdLEJbMl1dPWtbMjJdKEJbMF0sUlsyNF0uYmluZChudWxsLDYpLHtzaXplOnRoaXMuVyxzWTp0aGlzLnNZLGh1OiJSZWNhcHRjaGEgcmVxdWlyZXMgdmVyaWZpY2F0aW9uIiwKTXQ6dGhpcy5NdCgpLEVZOnRoaXMuRVkoKSxLRDp0aGlzLktEKCksWm46dGhpcy5abigpfSksdGhpcy5PMyh0aGlzW0JbMV1dKCkpfSxGKS5DNT1mdW5jdGlvbihCKXt0aGlzW0I9WyJjYWxsIiwiWSIsInYiXSxjUFtCWzFdXS5DNVtCWzBdXSh0aGlzKSxCWzJdXS5RZCgpLHRoaXNbQlsyXV0udSgpLmZvY3VzKCl9LEYuTzM9ZnVuY3Rpb24oQix6LEssSil7KChLPXRoaXNbKHo9KGNQW0o9WyJSIiwidiIsIlkiXSxKWzJdXS5PMy5jYWxsKHRoaXMsQiksZVszMV0oOSwicmMtYW5jaG9yLWNoZWNrYm94LWxhYmVsIix0aGlzKSksei5zZXRBdHRyaWJ1dGUoTmooKSxuNEQpLEopWzFdXSxLKS5TcT8oSy5ERygpLEtbSlswXV09eixLLkNxKCkpOktbSlswXV09eix0aGlzKVtKWzFdXS5yZW5kZXIoZVszMV0oOSwicmMtYW5jaG9yLWNoZWNrYm94LWhvbGRlciIsdGhpcykpfSxGLnpxPWZ1bmN0aW9uKCl7dGhpcy52LnUoKS5mb2N1cygpfSxGLlRxPWZ1bmN0aW9uKEIpe3RoaXNbdGhpc1tCPVsidiIsCiJ1IiwiWSJdLGNQW0JbMl1dLlRxLmNhbGwodGhpcyksQlswXV0uUWQoKSxCWzBdXVtCWzFdXSgpLmZvY3VzKCl9LEYuY0Y9ZnVuY3Rpb24oQix6LEspeyh0aGlzW3o9UDZbSz1bMCwidiIsITFdLEJdfHxQNltLWzBdXSxLWzFdXS5IaChLWzJdKSxCKSE9MiYmKHRoaXNbS1sxXV0uZ2IoS1syXSksdGhpcy5MdSghMCx6KSxnW0tbMF1dKDE5LHosdGhpcykpfTtmdW5jdGlvbiBZcChCLHosSyxKLEMsYil7cmV0dXJuIGtbNDVdLmNhbGwodGhpcyw3LEIseixLLEosQyxiKX0KKEhbMjRdKDgxLFlwLGpjKSxZcC5wcm90b3R5cGUuTUE9ZnVuY3Rpb24oQil7cmV0dXJuIG1bNDFdKDM2LChCPVs5LCJyYy1hbmNob3ItaW52aXNpYmxlIiw5NF0sQlswXSksbVsyXShCWzJdLEJbMV0pKX0sWXApLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCLHopeyhCPSh6PVs0LCJNIiw2XSxrKVsyMl0oNSxIWzM4XS5iaW5kKG51bGwselsyXSkse2h1OiJSZWNhcHRjaGEgcmVxdWlyZXMgdmVyaWZpY2F0aW9uIixzWTp0aGlzLnNZLEJEOnRoaXMudixBcTohMSxNdDp0aGlzLk10KCksRVk6dGhpcy5FWSgpLEtEOnRoaXMuS0QoKSxabjp0aGlzLlpuKCl9KSx0aGlzKVt6WzFdXT1CLEdbNDZdKHpbMF0sZnVuY3Rpb24oSyl7UlszNl0oKEs9WzE2MCwicXVlcnlTZWxlY3RvciIsIi5yYy1hbmNob3ItaW52aXNpYmxlLXRleHQgc3BhbiJdLDMyKSxCW0tbMV1dKEtbMl0pKS53aWR0aD5LWzBdJiZSWzhdKDMsInNtYWxsdGV4dCIsbVsyXSg5NSwicmMtYW5jaG9yLWludmlzaWJsZS10ZXh0IikpfSwKdGhpcyksdGhpcy5PMyh0aGlzLnUoKSl9O2Z1bmN0aW9uIFJnKEIpe3JldHVybiBlWzQxXS5jYWxsKHRoaXMsMTMsQil9CnZhciByUz0oKEhbMjRdKDU3LFJnLHBRKSxSZy5wcm90b3R5cGUudj1mdW5jdGlvbihCKXtyZXR1cm4ga1s0N10oMTksITEsITAsQix0aGlzKX0sUmcucHJvdG90eXBlLlo9ZnVuY3Rpb24oQix6LEssSixDLGIpeyhKPShLPSh6PShDPUdsW2I9WyJjYWxsIiwiWSIsIloiXSxwZygpXXx8R2xbUWcoKV0sQy5zZXRUaW1lb3V0KSxCPXpbbVs0XSgxOCwiX18iLCExLHRoaXMpXXx8eixDLnNldFRpbWVvdXQ9QixDLnNldEludGVydmFsKSxLW21bNF0oMiwiX18iLCExLHRoaXMpXXx8SyksQy5zZXRJbnRlcnZhbD1KLFJnKVtiWzFdXVtiWzJdXVtiWzBdXSh0aGlzKX0sSClbMjRdKDU5LFZFLE5QKSx6YikoKSxaczA9KEhbMjRdKDI3LHA5LG9nKSxIWzI0XSg5MCxaYywkTSkscDkucHJvdG90eXBlLlo9ZnVuY3Rpb24oQil7KERbMjNdKChCPVsiWiIsMTEsIlkiXSxCWzFdKSx0aGlzLnYpLHA5KVtCWzJdXVtCWzBdXS5jYWxsKHRoaXMpfSxwOS5wcm90b3R5cGUuaT1mdW5jdGlvbihCLHosSyxKLApDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7aWYoKEs9KEo9KEI9KGY9WyhwPVsiPSIsInNjcmlwdCIsImxpbmUiXSwwKSwzNCwzNV0sQi5lcnJvcnx8Qiksej9tWzQyXShmWzJdLHopOnt9KSxCIGluc3RhbmNlb2YgRXJyb3ImJkQ2KEosQlt3Sl18fHt9KSxSKVszMl0oMSxudWxsLGZbMF0sIjogIiwiXG4uLi4gIixCKSx0aGlzKS5YKXRyeXt0aGlzLlgoSyxKKX1jYXRjaChMKXt9aWYoISgoTj1LLm1lc3NhZ2Uuc3Vic3RyaW5nKGZbMF0sMTkwMCksQilpbnN0YW5jZW9mIE5QKXx8Qi5NKXtBPSh4PUsubGluZU51bWJlcixRPUsuZmlsZU5hbWUsSy5zdGFjayk7dHJ5e2lmKCh2PUt4Tih0aGlzLlIscFsxXSxRLCJlcnJvciIsTixwWzJdLHgpLFo9e30sUilbMV0oNiwhMCx0aGlzLk0pfHwoVz12LEM9eVszMl0oOSxwW2ZbMF1dLHRoaXMuTSksdj1lW2ZbMV1dKDIzLCIiLFcsQykpLFpbcDcoKV09QSxKKWZvcihiIGluIEopWlt0aGlzLkErYl09SltiXTtuPXlbMzJdKDEwLHBbZlswXV0sWiksCnRoaXMuRih2LExLKCksbix0aGlzLmwpfWNhdGNoKEwpe319dHJ5e2dbM10oNjEsdGhpcyxuZXcgWmMoSyxKKSl9Y2F0Y2goTCl7fX0sWnMwKXx8e2lkOklEKCl9LEh4PVswLChnWzQ2XSgxLGZ1bmN0aW9uKEIseil7KG5ldyAoej1uZXcgdk4ob0MoQikpLEI0KSh6KSkudi5pbml0KCl9LCJyZWNhcHRjaGEuYW5jaG9yLk1haW4uaW5pdCIpLE9bMjFdKDIsY2wsVCksQ1gpLE45XTsoT1tjbC5wcm90b3R5cGUuVD1SW2NsLnByb3RvdHlwZS51PWZ1bmN0aW9uKCl7cmV0dXJuIFJbMjZdKDE0LHRoaXMsMSl9LDQ4XSgxLEh4KSwyMV0oMSxwaixUKSxwaikucHJvdG90eXBlLlQ9Uls0OF0oOSxbMCxUYSxIeF0pO2Z1bmN0aW9uIGVpKCl7cmV0dXJuIE9bOV0uY2FsbCh0aGlzLDEpfQp2YXIgbnM9KChGPShIWzI0XSgyNyxlaSxOUSksZVsyNF0oNjEsZWkpLGVpKS5wcm90b3R5cGUsRi5NdT1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4oKHo9QlsoSz1laS5ZLk11WyhKPVsiZ2V0VmFsdWUiLCJ1QyIsImNhbGwiXSxKKVsyXV0odGhpcyxCKSx0aGlzLnBfKEssQi5CbCgpKSxKKVswXV0oKSkmJnRoaXMuTDUoSyx6KSxCKS5HSiYxNiYmdGhpc1tKWzFdXShLLDE2LEIuSVQoKSksS30sRi51Qz1mdW5jdGlvbihCLHosSyxKKXtKPVs2NCwxLCJjYWxsIl07c3dpdGNoKHope2Nhc2UgODpjYXNlIDE2Ok9bSlsxXV0oSlsxXSxLTSxCLEspO2JyZWFrO2RlZmF1bHQ6Y2FzZSBKWzBdOmNhc2UgSlsxXTplaS5ZLnVDW0pbMl1dKHRoaXMsQix6LEspfX0sRi5jbD1mdW5jdGlvbigpe3JldHVybiBDTX0sRi5YcD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4oej1laVtKPVsiWSIsIlhwIiwiRyJdLEpbMF1dW0pbMV1dLmNhbGwodGhpcyxCLHopLEs9dGhpcy5nZXRWYWx1ZSh6KSxCKS5MPUssCkJbSlsyXV09dGhpcy5CbCh6KSxCLkdKJjE2JiZ0aGlzLnVDKHosMTYsQi5JVCgpKSx6fSxGLmdldFZhbHVlPWZ1bmN0aW9uKCl7fSxGLkw1PWZ1bmN0aW9uKCl7fSxGLnBfPWZ1bmN0aW9uKEIseil7QiYmKHo/Qi50aXRsZT16OkIucmVtb3ZlQXR0cmlidXRlKElBKCkpKX0sRikuQmw9ZnVuY3Rpb24oQil7cmV0dXJuIEIudGl0bGV9LEYuV2g9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1idXR0b24ifSxQQykoKSxRaD0oKCgoKCgoKCgoKCgoKFkzKCksaFVNKSgpLHRuKSgpLGxrKSgpLHNvKCksQTcpKCksVHJ3KSgpLHZEKCksRUopKCksakspKCksZnUpKCkseVApKCksZk8oKSxvTykoKSxtNykoKSxOZSgpLFNfKSgpLFUxTSgpLEtQKSgpLFRXKCkpLFdxMz0oaWcoKSxlYikoKTsoKFFnTSgpLE9RWigpLE50KSgpLEs2aCkoKTtmdW5jdGlvbiBxeigpe3JldHVybiBnWzBdLmNhbGwodGhpcyw3Mil9CigoKCgoRj0oSFsyNF0oNTkscXosZWkpLGVbMjRdKDYyLHF6KSxxei5wcm90b3R5cGUpLEYpLlhwPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuKCgoZ1soSz0oQz1bIlhwIiwyMywxXSxbMzIsITEsIi1vcGVuIl0pLEMpWzFdXSgzLEtbQ1syXV0sQiksQi5SdSY9LTI1NixIKVs0NV0oNSxLW0NbMl1dLEtbQ1syXV0sS1swXSxCKSx6LmRpc2FibGVkKSYmKEo9RFsyNl0oMjIsS1syXSx0aGlzLENbMl0pLFJbOF0oMTcsSix6KSkscXouWSlbQ1swXV0uY2FsbCh0aGlzLEIseil9LEYuUWw9ZnVuY3Rpb24oQix6LEssSil7KHF6LlkuUWwuY2FsbCh0aGlzLEIseixLKSxKPUsudSgpKSYmej09MSYmKEouZGlzYWJsZWQ9Qil9LEYpLnhjPWZ1bmN0aW9uKEIseil7ej1bImoiLDM2LCJ1Il0sZVt6WzFdXSgxLFlbMjNdKDQ4LEIpLEJbelsyXV0oKSx5RyxCW3pbMF1dKX0sRi5jbD1mdW5jdGlvbigpe30sRi5vdz1mdW5jdGlvbigpe30sRi50TT1mdW5jdGlvbigpe30sRi5oeT1mdW5jdGlvbigpe30sCkYucnQ9ZnVuY3Rpb24oQil7cmV0dXJuIEIuaXNFbmFibGVkKCl9LEYpLk11PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdil7cmV0dXJuKEE9KEs9QltKPShiPSh6PSgoZ1syM10oMiwoQz1bIi1vcGVuIiwhMSwodj1bIlZlIiwxLDBdLCIiKV0sQ1t2WzFdXSksQiksQikuUnUmPS0yNTYsSFs0NV0oMTUsQ1t2WzFdXSxDW3ZbMV1dLDMyLEIpLEIubCksei5NKSx7ImNsYXNzIjpnMFs0XSgzNSxDW3ZbMl1dLEIsdGhpcykuam9pbihvOSgpKSxkaXNhYmxlZDohQi5pc0VuYWJsZWQoKSx0aXRsZTpCLkJsKCl8fENbMl0sdmFsdWU6Qi5nZXRWYWx1ZSgpfHxDWzJdfSksdlswXV0oKSk/KHR5cGVvZiBLPT09InN0cmluZyI/SzpBcnJheS5pc0FycmF5KEspP0subWFwKHlbMTJdLmJpbmQobnVsbCw1OSkpLmpvaW4oQ1syXSk6Z1s4XSgyLCIgIixLKSkucmVwbGFjZSgvW1x0XHJcbiBdKy9nLG85KCkpLnJlcGxhY2UoL15bXHRcclxuIF0rfFtcdFxyXG4gXSskL2csQ1syXSk6IiIsYikuY2FsbCh6LAp3UCxKLEF8fENbMl0pfSxGLmdldFZhbHVlPWZ1bmN0aW9uKEIpe3JldHVybiBCLnZhbHVlfSxGKS5MNT1mdW5jdGlvbihCLHope0ImJihCLnZhbHVlPXopfSxGKS51Qz1mdW5jdGlvbigpe307ZnVuY3Rpb24gaUsoQix6LEspe3JldHVybiBtWzEwXS5jYWxsKHRoaXMsMSxCLHosSyl9CnZhciBnNHE9KCgoKCgoKChGPShIWzI0XSg5MSxpSyxaSyksaUspLnByb3RvdHlwZSxGKS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkx9LEYpLkNxPWZ1bmN0aW9uKEIseil7dGhpc1tpSy5ZLkNxLmNhbGwoKHo9WyJHSiIsInUiLDM2XSx0aGlzKSkselswXV0mMzImJihCPXRoaXNbelsxXV0oKSkmJmVbelsyXV0oNSxZWzIzXSg0OSx0aGlzKSxCLHNYLHRoaXMuSGwpfSxGKS5IbD1mdW5jdGlvbihCLHope3JldHVybiBCW3o9WyJrZXlDb2RlIiwzMiwiaiJdLHpbMF1dPT0xMyYmQi50eXBlPT1Ncnx8Qlt6WzBdXT09elsxXSYmQi50eXBlPT1zWD90aGlzW3pbMl1dKEIpOkJbelswXV09PXpbMV19LEYuQmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5HfSxGKS5aPWZ1bmN0aW9uKCl7aUsuWS5aLmNhbGwodGhpcyksZGVsZXRlIHRoaXMuTCxkZWxldGUgdGhpcy5HfSxGLnBfPWZ1bmN0aW9uKEIpe3RoaXMuRz1CLHRoaXMuWC5wXyh0aGlzLnUoKSxCKX0sUls0NV0oOSwiZ29vZy1idXR0b24iLApmdW5jdGlvbigpe3JldHVybiBuZXcgaUsobnVsbCl9KSxPKVsyMV0oNCxZYixpSyksWWIpLnByb3RvdHlwZS5nYj1mdW5jdGlvbihCLHosSyxKLEMpe2lmKGlLLnByb3RvdHlwZVtDPVs3MiwxMiwiZ2IiXSxDWzJdXS5jYWxsKHRoaXMsQiksQil7aWYodGhpcy52PXo9dGhpcy52LEo9dGhpcy51KCkpej49MD9KLnRhYkluZGV4PXRoaXMudjprW0NbMV1dKENbMF0sMCwhMSxKKX1lbHNlKEs9dGhpcy51KCkpJiZrW0NbMV1dKDczLDAsITEsSyl9LFliKS5wcm90b3R5cGUuQ3E9ZnVuY3Rpb24oQix6LEssSixDKXsoQj0oej0oKEo9KGlLLnByb3RvdHlwZS5DcS5jYWxsKChLPShDPVsyNCwxOSwyM10sdGhpcyksdGhpcykpLHRoaXMpLnUoKSxKLnNldEF0dHJpYnV0ZShOaigpLE9bQ1sxXV0oQ1swXSwzNix0aGlzKSksSikudGFiSW5kZXg9dGhpcy52LEopLmNsaWNrLCExKSx4VikoSixMNCgpLHtnZXQ6ZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7KEI9ITAseikuY2FsbCh0aGlzKX1yZXR1cm4gYi50b1N0cmluZz0KZnVuY3Rpb24oKXtyZXR1cm4gei50b1N0cmluZygpfSxifX0pLGVbMzZdKDEyLFlbQ1syXV0oNDgsdGhpcyksdGhpcyxUdyxmdW5jdGlvbihiLEEsdixwKXtLW3A9WzIsMTMsImlzRW5hYmxlZCJdLHBbMl1dKCkmJih2PW5ldyBjbCxiPWtbMzVdKDU2LEsuUiksQT1tWzIzXSgyMyxiLHYsMSksQiYma1sxNF0oMTQsITAsa1szNF0uYmluZChudWxsLDE2KSwxLHBbMF0sQSxPW3BbMF1dLmJpbmQobnVsbCxwWzFdKSksSy5DKEEpKX0pLGVbMzZdKDEwLFlbQ1syXV0oNTAsdGhpcyksbmV3IHhGKHRoaXMudSgpLCEwKSxEQyxmdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCkmJnRoaXMuai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0sZzRxKXx8e2lkOlRpKCl9LERtPWd6KCksTjlaPSgoKE9bMjFdKDYsbXgscFEpLG14KS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oQix6KXtmb3IoQiBpbiB0aGlzLk0pZGVsZXRlIHRoaXMuTVtCXTtmb3IoeiBpbiB0aGlzLnYpZGVsZXRlIHRoaXMudlt6XX0sCm14KS5wcm90b3R5cGUuWj1mdW5jdGlvbigpeyh0aGlzLnJlc2V0KCkscFEpLnByb3RvdHlwZS5aLmNhbGwodGhpcyl9LEgpWzEyXSgxLDEwMCxxRixXeCksUHg9WzAsRk4sSV8sZyQsYV8sSV8sKE9bMjFdKDYsSEcsVCksLTEpXSwkST1bMCxDWCxreCwxLCgoKEY9KCgoKE9bMjFdKDEsKEhHLnByb3RvdHlwZS5UPVJbNDhdKDksUHgpLHRMKSxUKSx0TC5wcm90b3R5cGUuVTM9ZnVuY3Rpb24oKXtyZXR1cm4gWVszNF0oNCwxLHRoaXMpfSx0TCkucHJvdG90eXBlLnNldFRpbWVvdXQ9ZnVuY3Rpb24oQil7cmV0dXJuIEhbNDldKDI2LDIsQix0aGlzKX0sdEwucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIG1bMV0oMTgsdGhpcyw0KX0sdEwpLnByb3RvdHlwZS5WQT1mdW5jdGlvbihCKXtyZXR1cm4gSFtCPVtudWxsLDkwLDIyXSw0XShCWzFdLDIsdGhpcyx2b2lkIDAsdm9pZCAwLGtbNDZdLmJpbmQoQlswXSxCWzJdKSl9LE8pWzIxXSg0LEwxLFQpLEwxLnByb3RvdHlwZSksRikuc2V0VGltZW91dD0KZnVuY3Rpb24oQil7cmV0dXJuIEhbNDldKDI3LDMsQix0aGlzLHZvaWQgMCxsKX0sRi5WQT1mdW5jdGlvbihCKXtyZXR1cm4gSFtCPVs5NSxudWxsLDI4XSw0XShCWzBdLDMsdGhpcyxsLHZvaWQgMCxrWzQ2XS5iaW5kKEJbMV0sQlsyXSkpfSxGLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTZdKDkwLGwsdGhpcyw0LFFCKX0sRi5iaz1mdW5jdGlvbigpe3JldHVybiBSWzQ4XSg3MCx0aGlzLFQkLDgsbCl9LEYud1Y9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyNl0oMjMsdGhpcyw5LGwpfSxMMSkuUlQ9TzcoKSxnJCksVGEsWzAsQ1gsLTFdLFFULENYLC0xLFFULENYLC0yXSxrMT0oTDEucHJvdG90eXBlLlQ9Uls0OF0oOSxbInV2cmVzcCIsQ1gsS1gsa3gsKHRMLnByb3RvdHlwZS5UPVJbNDhdKDEsJEkpLGckKSxPRCwxLE5mLGdqLENYLEtYLC0xLFB4LCRJXSksQTBxKCkpLGh1PXRJKCksYTY9T0tEKCksVU09Vk0oKSx0dT11QSgpLEk2PUZQKCksd3E9SUk4KCksQnM9R0Q4KCkseng9KE10KCksCklHKSgpLENqPShYRCgpLFFNKSgpLEpvPWkxWSgpLHZzPVpyKCksQW89aUUoKSxPc1k9TUMoKSx4dk49T2MoKSxEdlk9d3UoKSxmMWw9SjNZKCksbzRsPWR6KCksTHFaPWZpMygpLFJjWT1FQigpLFFjPXRUdygpLHJVMz0obXkoKSxraGwoKSksRTE9TUooKSxkcT1NWGwoKSxNXz1OOCgpLEZJPXo5KCksc3g9UDkoKSxLaj10VygpLGJqPUVyKCksVHg9dnkoKSxqMz1yMigpLGJ1PU5CKCksU3U9Q2RxKCksYWc9bDgoKSxVaz1yYygpLFFiPXNyKCksVjBOPSgoKCgoKCgoKEY9KCgoKE9bMjFdKDQsR0QsblEpLEdELnByb3RvdHlwZSkuTzM9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgpe2lmKCh0aGlzW3Y9KCgoVz0oKG49KCh6PShRPShLPSgoQz0oKEo9KGI9KChBPSgoeD1bIk8zIiwocD1bMzIsMzMsbnVsbF0sNjkpLCJvIl0sblEucHJvdG90eXBlKVt4WzBdXS5jYWxsKHRoaXMsQiksZVszMV0oMTIsT3NZLHRoaXMpKSx0aGlzKS5wcS5yZW5kZXIoQSksZGsuSigpLmdldCgpKSwKZVszMV0oMTEseHZOLHRoaXMpKSxZKVsxOV0oNSxwWzBdLGIpP0ouc3R5bGUuZGlzcGxheT10QigpOnRoaXMuSS5yZW5kZXIoSiksZVszMV0oMTIsRHZZLHRoaXMpKSxZWzE5XSh4WzFdLHBbMV0sYik/Qy5zdHlsZS5kaXNwbGF5PXRCKCk6dGhpcy5ucS5yZW5kZXIoQyksWj1lWzMxXSgxMSxmMWwsdGhpcyksTj1HWzFdKDI1LDI0LGRrLkooKS5nZXQoKSkpIT1wWzJdJiZOP3RoaXMuRy5yZW5kZXIoWik6Wi5zdHlsZS5kaXNwbGF5PXRCKCksZVszMV0oMTIsbzRsLHRoaXMpKSxkaykuSigpLmdldCgpLFkpWzE5XSg2OCwzMCxRKSx6IT1wWzJdKSYmej90aGlzLmlZLnJlbmRlcihLKTpLLnN0eWxlLmRpc3BsYXk9dEIoKSxlKVszMV0oMTQsTHFaLHRoaXMpLHRoaXMpLkpMLnJlbmRlcihuKSxlWzMxXSgxMyxSY1ksdGhpcykpLHRoaXMpLkZnLnJlbmRlcihXKSxrKVszOF0oMTksdGhpcy5GZyksZVszMV0oMTIsclUzLHRoaXMpKSx4WzJdXS5yZW5kZXIodiksR1sxXSgxNywyNCxiKSkmJllbMTldKDM2LApwWzBdLGIpJiZZWzE5XSgzNixwWzFdLGIpKWtbMzhdKDMsdGhpcy5HKSxrWzM4XSg2Nyx0aGlzW3hbMl1dKTtlbHNlIGlmKHRoaXMuWEMpa1szOF0oMTksdGhpcy5ucSk7ZWxzZSBpZih0aGlzLk15KWtbMzhdKDM1LHRoaXMuSSk7ZWxzZSB0aGlzLnBnPyhrWzM4XSgzLHRoaXMuRyksa1szOF0oODMsdGhpc1t4WzJdXSkpOnRoaXMuZFYmJihrWzM4XSg5OSx0aGlzLmlZKSxrWzM4XSg1MSx0aGlzW3hbMl1dKSl9LEdELnByb3RvdHlwZS5DcT1mdW5jdGlvbihCLHopeygoKCgoblEucHJvdG90eXBlLkNxLmNhbGwoKHo9KEI9dGhpcyxbNTIsIktxIiw4XSksdGhpcykpLGVbMzZdKHpbMl0sWVsyM10oNTQsdGhpcyksdGhpcy5wcSxUdyx0aGlzW3pbMV1dKSxlKVszNl0oMTEsWVsyM10oNDksdGhpcyksdGhpcy5JLFR3LGZ1bmN0aW9uKCl7KHRoaXMubmcoITEpLGcpWzNdKDU5LHRoaXMsIm0iKX0pLGUpWzM2XSgxLFlbMjNdKDUwLHRoaXMpLHRoaXMuRyxUdyxmdW5jdGlvbigpe3RoaXMubmcoITEpLApnWzNdKDUxLHRoaXMsIm8iKX0pLGVbMzZdKDMsWVsyM10oNDksdGhpcyksdGhpcy5ucSxUdyxmdW5jdGlvbigpe3RoaXMubmcoITEpLGdbM10oNTIsdGhpcywibiIpfSksZVszNl0oelsyXSxZWzIzXSg1MSx0aGlzKSx0aGlzLmlZLFR3LGZ1bmN0aW9uKCl7dGhpcy5uZyghMSksZ1szXSg1OSx0aGlzLCJwIil9KSxlKVszNl0oNyxZWzIzXSg1NSx0aGlzKSx0aGlzLkpMLFR3LGZ1bmN0aW9uKEspeyhSW0s9WyJxIiwzMiwxOV0sS1sxXV0oS1syXSwxLDEwLHRoaXMpLGcpWzNdKDUzLHRoaXMsS1swXSl9KSxlWzM2XSgxMixZWzIzXSh6WzBdLHRoaXMpLHRoaXMuRmcsVHcsdGhpcy5uNSksZSlbMzZdKDksWVsyM10oNTMsdGhpcyksdGhpcy51KCksc1gsZnVuY3Rpb24oSyl7Sy5rZXlDb2RlPT0yNyYmZ1szXSg2Myx0aGlzLCJpIil9KSxlKVszNl0oelsyXSxZWzIzXSg1MSx0aGlzKSx0aGlzLm8sVHcsZnVuY3Rpb24oKXtyZXR1cm4gSFsxOF0oMywhMSxCKX0pfSxHRCkucHJvdG90eXBlLmdldE5hbWU9CmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnF9LEdELnByb3RvdHlwZSkubUo9ZnVuY3Rpb24oQix6LEssSixDLGIpe2lmKGI9WzIsKEM9WyExLCJSaWdodCIsIm1hcmdpbiJdLCJoIiksNDNdLHo9ej09PXZvaWQgMD9udWxsOnosQnx8IXp8fGtbMTBdKDcsIm5vbmUiLHopKUImJihLPXRoaXMubTIoITAseikpLCF6fHxCJiYhS3x8KEo9T1tiWzJdXSgzMix0aGlzLlIpLEouaGVpZ2h0Kz0oQj8xOi0xKSooUlszNl0oMjQseikuaGVpZ2h0K21bMTJdKDYxLENbMV0seixDW2JbMF1dKS50b3ArbVsxMl0oNTEsQ1sxXSx6LENbYlswXV0pLmJvdHRvbSksa1s0Nl0oNTcsYlsxXSx0aGlzLEosIUIpKSxCfHx0aGlzLm0yKENbMF0seil9LEdEKS5wcm90b3R5cGUsRi5VMD1mdW5jdGlvbihCLHosSyl7aWYoSz1bMCwia0oiLCJzbGljZSJdLEIpaWYodGhpc1tLWzFdXS5sZW5ndGg9PUtbMF0pUlszMF0oMTQsMTAwLHRoaXMpO2Vsc2Ugej10aGlzW0tbMV1dW0tbMl1dKEtbMF0pLHRoaXNbS1sxXV09W10sCnouZm9yRWFjaChmdW5jdGlvbihKKXtKKCl9KX0sRikubmc9ZnVuY3Rpb24oQix6KXsoKCgoKHRoaXMucHFbej1bIkkiLCJnYiIsIkpMIl0selsxXV0oQiksdGhpc1t6WzBdXSlbelsxXV0oQiksdGhpcy5ucVt6WzFdXShCKSx0aGlzLkcpW3pbMV1dKEIpLHRoaXMpLmlZW3pbMV1dKEIpLHRoaXMpLm9belsxXV0oQiksdGhpc1t6WzJdXVt6WzFdXShCKSxSKVszMl0oMTgsMSwxMCx0aGlzLCExKX0sR0QucHJvdG90eXBlKS5Sej1mdW5jdGlvbigpe3JldHVybiExfSxHRCkucHJvdG90eXBlLktxPWZ1bmN0aW9uKEIpeyhCPVs0OSwhMSwibmciXSx0aGlzW0JbMl1dKEJbMV0pLHRoaXMubUooQlsxXSksZylbM10oQlswXSx0aGlzLCJrIil9LEYuY3o9ZnVuY3Rpb24oKXtyZXR1cm4iIn0sR0QucHJvdG90eXBlKS5Xbz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtyZXR1cm4oYj0oKEo9bmV3IChBPShLPUs9PT12b2lkIDA/IiI6SyxbMyw0NywyXSkseTYpKGtbQVsxXV0oQVswXSxvcE4pK0spLAptKVs5XSg3LEosTjNaLEIpLGRrLkooKS5nZXQoKSksQz1SWzI2XSgyMixiLEFbMl0sbCksbVs5XSgyMSxKLGFFLEMpLHomJm1bOV0oMTMsSixqWUcseiksSikudG9TdHJpbmcoKX0sR0QucHJvdG90eXBlLm41PWZ1bmN0aW9uKCl7fSxGLmF6PWZ1bmN0aW9uKCl7fSxHRC5wcm90b3R5cGUpLmlDPWZ1bmN0aW9uKCl7cmV0dXJuIE9bNDNdKDE2LHRoaXMucmIpfSxGKS56cj1mdW5jdGlvbigpe3JldHVybiExfSxGKS5tMj1mdW5jdGlvbihCLHosSyl7aWYoSz1bMTIsITAsNV0sIXp8fGtbMTBdKDYsIm5vbmUiLHopPT1CKXJldHVybiExO3JldHVybihZWzM4XShLWzJdLHosQiksa1tLWzBdXSg3NCwwLEIseiksSylbMV19LEYuZmc9ZnVuY3Rpb24oKXt9LEYpLmhPPWZ1bmN0aW9uKCl7dGhpcy5JLnUoKS5mb2N1cygpfSxWME58fHtpZDpWWSgpfSk7ZnVuY3Rpb24gRWkoQix6KXtyZXR1cm4gUlsxN10uY2FsbCh0aGlzLDEyLEIseil9CnZhciBHeCxxZj0oKCgoKCgoKChGPSgoKCgoKEY9KEhbMjRdKDkwLEVpLG5RKSxFaS5wcm90b3R5cGUpLEYpLlBFPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMzRdLmNhbGwodGhpcyw0Myl9LEYpLkRHPWZ1bmN0aW9uKEIpeygoQj1bInUiLG51bGwsInYiXSxFaSkuWS5ERy5jYWxsKHRoaXMpLHRoaXNbQlsyXV0mJih0aGlzW0JbMl1dLmRpc3Bvc2UoKSx0aGlzW0JbMl1dPUJbMV0pLHRoaXMpW0JbMF1dKClbQlsyXV09QlsxXX0sRi5WWj1mdW5jdGlvbigpe3JldHVybiB5WzQ3XS5jYWxsKHRoaXMsMSl9LEYpLkNxPWZ1bmN0aW9uKEIseixLKXsoKEVpLlkuQ3EuY2FsbCgoSz1bMywhMCw3Ml0sdGhpcykpLHo9bmV3IHdFKHRoaXMpLGVbMzZdKEtbMF0seix0aGlzLnUoKSxDWix0aGlzLldGKSxlWzM2XSgxMCx6LHRoaXMudSgpLEp0LHRoaXMuVlopLEdbMjldKDIwLG51bGwpP3RoaXMudj16OihoWCYmZVszNl0oOSx6LHRoaXMudSgpLFtCUyxGOCxzWF0sdGhpcy5MciksQj1nWzMxXShLWzJdLAo5LHRoaXMudSgpKSxIWzQxXSg1MSx2b2lkIDAseixEWzExXSgyLEIpLHRoaXMuT1osWXMpLHRoaXMudj16LFlbMV0oMzksS1sxXSx0aGlzKSksSClbMzhdKDE4LG51bGwsdGhpcyksdGhpcy51KCkpLnY9dGhpc30sRikuQkU9ZnVuY3Rpb24oKXtyZXR1cm4gT1szM10uY2FsbCh0aGlzLDEpfSxGKS5QaD1udWxsLEVpKS5wcm90b3R5cGUsRi5XRj1mdW5jdGlvbihCKXtyZXR1cm4ga1syMF0uY2FsbCh0aGlzLDQ5LEIpfSxGKS5PWj1mdW5jdGlvbigpe3JldHVybiBEWzM1XS5jYWxsKHRoaXMsMSl9LEYpLmJZPWZ1bmN0aW9uKCl7dGhpcy5NPXRoaXMubC5NKGQ1LHt0eXBlOldxM30pfSxGKS5PMz1mdW5jdGlvbihCLHosSyxKLEMpe0o9dGhpc1sodGhpc1soQz1bIlgiLCJ1IiwoSz1bITAsOSxudWxsXSwyKV0sRWkuWS5PMykuY2FsbCh0aGlzLEIpLENbMF1dfHwodGhpc1tDWzBdXT1CLmdldEF0dHJpYnV0ZShjVigpKXx8IiIpLERbMTNdKDEwLEtbQ1syXV0sZ1szMV0oMjQsS1sxXSxCKSkpPT0KQiYmKHRoaXMuT2M9S1swXSx6PXRoaXNbQ1sxXV0oKSxSWzI3XSg4LHosImxhYmVsLWlucHV0LWxhYmVsIikpLEdbMjldKDMwLEtbQ1syXV0pJiYodGhpc1tDWzFdXSgpLnBsYWNlaG9sZGVyPXRoaXNbQ1swXV0pLENbMV1dKCksT1sxXSg0OSxURixKLHRoaXNbQ1swXV0pfSxGKS5aPWZ1bmN0aW9uKEIpe3RoaXNbQj1bInYiLCJZIixudWxsXSxFaVtCWzFdXS5aLmNhbGwodGhpcyksQlswXV0mJih0aGlzW0JbMF1dLmRpc3Bvc2UoKSx0aGlzW0JbMF1dPUJbMl0pfSxGLk9jPSExLEYuTHI9ZnVuY3Rpb24oQil7cmV0dXJuIHlbMzldLmNhbGwodGhpcywxLEIpfSxFaSkucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKEIpeyh0aGlzWyhCPVsiUGgiLCIiLCJ1Il0sQilbMl1dKCkudmFsdWU9QlsxXSx0aGlzW0JbMF1dIT1udWxsKSYmKHRoaXNbQlswXV09QlsxXSl9LEVpLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbihCKXtPW0I9WyJjbGVhciIsbnVsbCwiIl0sMjZdKDI4LEJbMl0sdGhpcykmJgoodGhpc1tCWzBdXSgpLEhbMzhdKDIsQlsxXSx0aGlzKSl9LEVpKS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXNbQj1bIlBoIixudWxsLCIiXSxCWzBdXSE9QlsxXT90aGlzW0JbMF1dOk9bMjZdKDI1LEJbMl0sdGhpcyk/dGhpcy51KCkudmFsdWU6IiJ9LEVpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy51KCkuZGlzYWJsZWR9LEVpLnByb3RvdHlwZS5XPWZ1bmN0aW9uKCl7dGhpcy5SPSExfSxFaSkucHJvdG90eXBlLm89ZnVuY3Rpb24oQil7KEI9WzI2LCJYIiwiT2MiXSwhdGhpcy51KCkpfHxPW0JbMF1dKDI3LCIiLHRoaXMpfHx0aGlzW0JbMl1dfHwodGhpcy51KCkudmFsdWU9dGhpc1tCWzFdXSl9LE8pWzIxXSg0LGVZLEVpKSxlWS5wcm90b3R5cGUuYlk9ZnVuY3Rpb24oQil7dGhpc1t0aGlzW3RoaXNbKEVpLnByb3RvdHlwZS5iWS5jYWxsKChCPVsidSIsInNldEF0dHJpYnV0ZSIsInJjLXJlc3BvbnNlLWlucHV0LWZpZWxkIl0sCnRoaXMpKSx0aGlzKVtCWzBdXSgpW0JbMV1dKE5qKCksT1sxOV0oOCwzNix0aGlzKSksQlswXV0oKVtCWzFdXShERCgpLFJ2KCkpLEJbMF1dKClbQlsxXV0oSEIoKSxSdigpKSx0aGlzW0JbMF1dKClbQlsxXV0oQU4oKSxSdigpKSxCWzBdXSgpW0JbMV1dKFo1KCksQ0MoKSksdGhpc1tCWzBdXSgpW0JbMV1dKFdCKCksWW8oKSksUls4XSgzNSxCWzJdLHRoaXNbQlswXV0oKSl9LGZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gYj1bMzMsInJlcGxhY2UiLDFdLE80PyhDPS9XaW5kb3dzIE5UIChbMC05Ll0rKS8sKHo9Qy5leGVjKEhbYlswXV0oMjApKSk/eltiWzJdXTptZygpKTpkcj8oQz0vMVswfDFdW18uXVswLTlfLl0rLywoSj1DLmV4ZWMoSFtiWzBdXSgxOCkpKT9KWzBdW2JbMV1dKC9fL2csZUMoKSk6ZXgoKSk6czQ/KEM9L0FuZHJvaWRccysoW15cKTtdKykoXCl8OykvLChCPUMuZXhlYyhIW2JbMF1dKDIxKSkpP0JbYlsyXV06IiIpOkkyfHxGZnx8QU0zPyhDPS8oPzppUGhvbmV8Q1BVKVxzK09TXHMrKFxTKykvLAooSz1DLmV4ZWMoSFtiWzBdXSgyMikpKT9LW2JbMl1dW2JbMV1dKC9fL2csZUMoKSk6IiIpOiIifSkoKSxJeD1sOCgpLGg0PW5ldyBibSgyODAsMjc1KSxhVD1uZXcgYm0oMjgwLDIzNSksR1RsPXNKKCksaTU9bVV3KCkseWQ9R3lEKCksSHNoPURfKCksWUk9bzgzKCksZWNxPUZIdygpLFAwRD1qQlkoKSwkdkc9d0xOKCkscXZaPVlfKCksaXM4PShnSSgpLHU4OCkoKSxkSz1kMTgoKSxjeD1vQSgpLFNpPU00bCgpLHlVOD1QVygpLGtBPSgoKCgoKEY9KE9bMjFdKDQsRjYsR0QpLEY2KS5wcm90b3R5cGUsRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCgoKGI9WyJFbnRlciB3aGF0IHlvdSBoZWFyIiwobj1bMiwiUHJlc3MgQ1RSTCB0byBwbGF5IGFnYWluLiIsMzFdLDgpLCEwXSx0aGlzKS5tSighIUspLHRoaXMpLlguY2xlYXIoKSxIWzE2XSgxMCxiW25bMF1dLHRoaXMuWCksdGhpcy5IfHwobVtuWzJdXSg4OCxlW25bMl1dKDE0LGk1LHRoaXMpLEdbMzNdLmJpbmQobnVsbCwKMTIpLHtrRjp0aGlzLldvKEIsdm9pZCAwLCIvYXVkaW8ubXAzIiksQzE6SFszXShuWzBdLCExKT8icmMtYXVkaW9jaGFsbGVuZ2UtdGRvd25sb2FkLWxpbmstb24tZGFyayI6InJjLWF1ZGlvY2hhbGxlbmdlLXRkb3dubG9hZC1saW5rIn0pLFlbNDFdKDcyLG51bGwsdGhpcyxnWzI2XSgxOSwxLGVbblsyXV0oOSxpNSx0aGlzKSksdE0oKSkpLGxmKShsOCgpKS5wbGF5KXomJlJbNDhdKDc1LHosblosYlsxXSxsKSYmKHA9Uls0OF0oNzEseixuWixiWzFdLGwpLGdbMTZdKDI1LHZvaWQgMCxwLDEsUUIpKSxRPWVbblsyXV0oMTQsSHNoLHRoaXMpLFJbMzZdKDE4LFEsIlByZXNzIFBMQVkgdG8gbGlzdGVuIiksQz1lW25bMl1dKDksZWNxLHRoaXMpLFJbMzZdKDIzLEMsYlswXSksdGhpcy5IfHxSWzM2XSgyMixPW25bMF1dKDM0LFNpLGRvY3VtZW50KSxuWzFdKSx2PXRoaXMuV28oQiwiIiksbVtuWzJdXSgyOSx0aGlzLmcsa1szN10uYmluZChudWxsLDgpLHtrRjp2fSksdGhpcy5DPU9bblswXV0oMzIsCmlzOCxkb2N1bWVudCksWVs0MV0oNzMsbnVsbCx0aGlzLHRoaXMuQyxtSCgpKSxBPWVbblsyXV0oOSxZSSx0aGlzKSxKPVJbMTJdKG5bMF0sMTYsIlBMQVkiLHRoaXMpLHlbNDNdKDQxLEosdGhpcyksSi5yZW5kZXIoQSksT1sxXSgxNix6dyxKLnUoKSxbY3gsU2ldKSxlWzM2XSgxMSxZWzIzXSg0OSx0aGlzKSxKLFR3LHRoaXMucW0pO2Vsc2UgbVtuWzJdXSgyNCx0aGlzLmcseVs0Nl0uYmluZChudWxsLDUpKTtyZXR1cm4gbVtuWzBdXSg2KX0sRi5abz1mdW5jdGlvbihCKXtyZXR1cm4gbVsyN10uY2FsbCh0aGlzLDU2LEIpfSxGLmF6PWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJYIiw4LCJyZXNwb25zZSJdLEIpWzJdXVtCdSgpXT10aGlzW0JbMF1dLmdldFZhbHVlKCksSFsxNl0oQlsxXSwhMSx0aGlzW0JbMF1dKX0sRi5VMD1mdW5jdGlvbihCLHopeyh6PVsiQyIsIlUwIiwiY2FsbCJdLEdELnByb3RvdHlwZVt6WzFdXVt6WzJdXSh0aGlzLEIpLCFCJiZ0aGlzW3pbMF1dKSYmdGhpc1t6WzBdXS5wYXVzZSgpfSwKRikuQ3E9ZnVuY3Rpb24oQix6KXsoKChCPSgodGhpcy5nPSgoej1bMSw4OSwiWm8iXSxHRCkucHJvdG90eXBlLkNxLmNhbGwodGhpcyksZVszMV0oMTEsR1RsLHRoaXMpKSx0aGlzLlgpLnJlbmRlcihlWzMxXSgxNCxQMEQsdGhpcykpLHRoaXMuWC51KCkpLE9belswXV0oMTYsencsQixbeVU4XSksZSlbMzZdKHpbMF0sZVszNl0oMTAsZVszNl0oNyxlWzM2XSh6WzBdLFlbMjNdKDQ4LHRoaXMpLG1bMl0oelsxXSwkdkcpLENaLGZ1bmN0aW9uKCl7RFszMV0oMjksIm5vbmUiKX0pLG1bMl0oelsxXSxxdlopLENaLGZ1bmN0aW9uKCl7RFszMV0oMzAsIm5vbmUiLFt5ZCxZSV0pfSksQixGOCxmdW5jdGlvbihLKXtLLmN0cmxLZXkmJksua2V5Q29kZT09MTcmJnRoaXMucW0oKX0pLGRvY3VtZW50LEY4LGZ1bmN0aW9uKEspe0sua2V5Q29kZT09ODImJksudGFyZ2V0IT1CJiZ0aGlzLnFtKCl9KSx0aGlzKS52PWVbMzFdKDExLHlkLHRoaXMpLG0pWzQwXSgxMix0aGlzLmosZG9jdW1lbnQpLGVbMzZdKDUsCllbMjNdKDUyLHRoaXMpLHRoaXMuaixNcix0aGlzW3pbMl1dKX0sRi5tMj1mdW5jdGlvbihCLHosSyxKKXtpZihKPVsidiIsMSwiICJdLHopcmV0dXJuIEs9ISF0aGlzW0pbMF1dJiZnWzhdKEpbMV0sSlsyXSx0aGlzW0pbMF1dKS5sZW5ndGg+MCxZWzM4XSgzOSx0aGlzW0pbMF1dLEIpLGVbNDRdKDI2LHRoaXMuWCxCKSxEWzEzXSgzOCx0aGlzW0pbMF1dKSxCJiZSWzM2XSgyMix0aGlzW0pbMF1dLCJNdWx0aXBsZSBjb3JyZWN0IHNvbHV0aW9ucyByZXF1aXJlZCAtIHBsZWFzZSBzb2x2ZSBtb3JlLiIpLEIhPUs7cmV0dXJuISh0aGlzLm1KKEIsdGhpc1tKWzBdXSksMSl9LEYpLmZnPWZ1bmN0aW9uKEIseil7bVszMV0oMjcsQixZWyh6PVsxNCxudWxsLDE2XSx6KVswXV0uYmluZCh6WzFdLHpbMl0pLHtRbzp0aGlzLkh9KX0sRi5iWT1mdW5jdGlvbihCKXt0aGlzW3RoaXNbKEdELnByb3RvdHlwZS5iWS5jYWxsKChCPVsidSIsIk0iLCJPMyJdLHRoaXMpKSxCKVsxXV09a1syMl0oMzYsRFs0XS5iaW5kKG51bGwsCjMzKSx7clQ6Y3h9KSxCWzJdXSh0aGlzW0JbMF1dKCkpfSxGKS5oTz1mdW5jdGlvbihCLHopeyEoKHo9KEI9WzAsIiAiLDEwXSxbImZvY3VzIiw0LDBdKSx0aGlzLnYpJiZnWzhdKHpbMV0sQlsxXSx0aGlzLnYpLmxlbmd0aD5CW3pbMl1dKXx8ZmwmJmtbMTZdKDQzLEJbMl0sQlsyXSxxZik+PUJbelsyXV0/bVsyXSg5NSxZSSkuY2hpbGRyZW5bQlt6WzJdXV1belswXV0oKTp0aGlzLnZbelswXV0oKX0sRikuUno9ZnVuY3Rpb24oQil7cmV0dXJuKEI9WyExLDI4LCJnZXRWYWx1ZSJdLHRoaXMuQyYmdGhpcy5DLnBhdXNlKCksUlsyXShCWzFdLHRoaXMuWFtCWzJdXSgpKSk/KE9bMl0oMjcsY3gsZG9jdW1lbnQpLmZvY3VzKCksITApOkJbMF19LEYpLnFtPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gR1szMV0uY2FsbCh0aGlzLDcsQix6LEspfSxybykoKSxVbT1UYigpLFl2RD1ROTgoKSxjVTg9V1EoKSxWUz1yMigpLHhlPW5ldyBibSg0MDAsNTgwKSxtdz0oKCgoKCgoKChGPSgoT1syMV0oMywKdGUsR0QpLHRlKS5wcm90b3R5cGUuaUM9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIG5ldyAoSz0oej1sOSgoQj10aGlzW0o9WzMwMCwiVyIsNl0sSlsxXV18fEdbNDRdKEpbMl0sMjApLEIuaGVpZ2h0KS0xOTQsNDAwLEIud2lkdGgpLGhZKHosSlswXSkpLGJtKShLLDE4MCtLKX0sdGUucHJvdG90eXBlKSxGKS56cj1mdW5jdGlvbihCLHope3JldHVybiB6PShCPXRoaXMuZ2V0TmFtZSgpPT09VW0sdGhpcy5YLmRRKS5Ebi5JTj09PTAsQiYmen0sdGUpLnByb3RvdHlwZS5DcT1mdW5jdGlvbihCKXsoR0RbQj1bInJjLWltYWdlc2VsZWN0LXRhYmxvb3AtYmVnaW4iLCJwcm90b3R5cGUiLDkxXSxCWzFdXS5DcS5jYWxsKHRoaXMpLGUpWzM2XSg5LFlbMjNdKDUwLHRoaXMpLG1bMl0oOTAsInJjLWltYWdlc2VsZWN0LXRhYmxvb3AtZW5kIiksQ1osZnVuY3Rpb24oKXtEWzMxXSgzNiwibm9uZSIsWyJyYy1pbWFnZXNlbGVjdC10aWxlIl0pfSksZVszNl0oOSxZWzIzXSg1NSx0aGlzKSxtWzJdKEJbMl0sCkJbMF0pLENaLGZ1bmN0aW9uKCl7RFszMV0oMjksIm5vbmUiLFsidmVyaWZ5LWJ1dHRvbi1ob2xkZXIiXSl9KX0sRi5PMz1mdW5jdGlvbihCLHope3RoaXMuQz0oKHo9WyJwcm90b3R5cGUiLCJjYWxsIiwiTzMiXSxHRFt6WzBdXSlbelsyXV1belsxXV0odGhpcyxCKSxlWzMxXSgxNSwicmMtaW1hZ2VzZWxlY3QtcGF5bG9hZCIsdGhpcykpfSxGKS5Sej1mdW5jdGlvbihCKXtyZXR1cm4gdGhpcy5YLmRRLkRuLklOPChCPVs5MCwiRTMiLCEwXSx0aGlzKVtCWzFdXT8odGhpcy5tSihCWzJdLG1bMl0oQlswXSwicmMtaW1hZ2VzZWxlY3QtZXJyb3Itc2VsZWN0LW1vcmUiKSksQlsyXSk6ITF9LEYpLmJZPWZ1bmN0aW9uKEIpeygoQj1bImJZIixudWxsLCJNIl0sR0QucHJvdG90eXBlKVtCWzBdXS5jYWxsKHRoaXMpLHRoaXNbQlsyXV09a1syMl0oNjksSFs2XS5iaW5kKEJbMV0sMjUpKSx0aGlzKS5PMyh0aGlzLnUoKSl9LHRlKS5wcm90b3R5cGUuUz1mdW5jdGlvbihCLHosSyxKKXt6PShCLnNlbGVjdGVkPQooKEs9KChKPVsxOCwzOSwibUoiXSx0aGlzKVtKWzJdXSghMSksIUIuc2VsZWN0ZWQpKT9SWzhdKDk5LCJyYy1pbWFnZXNlbGVjdC10aWxlc2VsZWN0ZWQiLEIuZWxlbWVudCk6UlsyN10oNCxCLmVsZW1lbnQsInJjLWltYWdlc2VsZWN0LXRpbGVzZWxlY3RlZCIpLEspLHRoaXMuWC5kUS5Ebi5JTis9Sz8xOi0xLG1bMl0oOTMsInJjLWltYWdlc2VsZWN0LWNoZWNrYm94IixCLmVsZW1lbnQpKSxZWzM4XShKWzFdLHosSyksdGhpcy56cigpP2dbSlswXV0oNDksdGhpcywiU2tpcCIpOmdbSlswXV0oMzMsdGhpcyl9LHRlLnByb3RvdHlwZSkuZmc9ZnVuY3Rpb24oQix6KXttW3o9WzgsMzEsMzBdLHpbMV1dKHpbMl0sQixEW3pbMF1dLmJpbmQobnVsbCw1Mikse0lBOnRoaXMuZ2V0TmFtZSgpfSl9LHRlLnByb3RvdHlwZS5uWD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe3JldHVybigoKChRPSgoSj0oQT0ocD0oSz10aGlzLG49WzM1LCh6PVswLCJ0ZCIsMV0sMzcpLDddLFIpWzFdKDcyLAo0LG1bMzFdKDQselsyXSx0aGlzLm1ldGFkYXRhKSksTylbMjJdKDY0LDUsbVszMV0oNSx6WzJdLHRoaXMubWV0YWRhdGEpKSxIKVs0N10oMTIsNCwyLHAsQSx0aGlzKSxKKS50Qj1CLHY9W10sa1syMl0oblsxXSxnMFs0XS5iaW5kKG51bGwsMjYpLEopKSxrKVszMl0oMTAsZVszMV0oMTMsInJjLWltYWdlc2VsZWN0LXRhcmdldCIsdGhpcyksUSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlW25bMF1dKDUxLCIuIixRLGRvY3VtZW50LG51bGwselsxXSksZnVuY3Rpb24oWixXLE4pe3YucHVzaCgoVz17c2VsZWN0ZWQ6IShOPXRoaXMsMSksZWxlbWVudDpafSxXKSksZVszNl0oOCxZWzIzXSg1MSx0aGlzKSxuZXcgeEYoWiwhMSwhMCksREMsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBOLlMoVyl9KX0sdGhpcyksQz1lW25bMF1dKDU1LCIuIixRLGRvY3VtZW50LCJyYy1pbWFnZXNlbGVjdC10aWxlIix6WzFdKSxyNCkoQyxmdW5jdGlvbihaLFcsTil7KGVbMzZdKDEsKE49WzIzLChXPQp0aGlzLDUwKSxudWxsXSxZW05bMF1dKE5bMV0sdGhpcykpLFosW0NaLEp0XSxmdW5jdGlvbigpe30pLGVbMzZdKDEwLFlbTlswXV0oNTIsdGhpcyksWixGOCxmdW5jdGlvbih4KXtyZXR1cm4gdm9pZCBSWzNdKDIzLDQwLG51bGwsVyx4LEEpfSksQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLmNhbGwoZVszNV0oTlswXSwiLiIsWixkb2N1bWVudCxOWzJdLCJpbWciKSxmdW5jdGlvbih4KXtZWzQxXSg3NCxudWxsLHRoaXMseCwic3JjIil9LHRoaXMpfSx0aGlzKSxiPU9bMl0oMjgsY1U4LGRvY3VtZW50KSxEWzEwXShuWzJdLHpbMF0sITAsYikpfHxIWzVdKDI2LGIsRjgsZnVuY3Rpb24oWil7cmV0dXJuIHZvaWQgUlszXSgyNCw0MCxudWxsLEssWixBKX0pLHRoaXMuWC5kUS5Ebj17cm93U3BhbjpwLGNvbFNwYW46QSxOdDp2LElOOjB9LHRoaXMpLnpyKCk/Z1sxOF0oMzMsdGhpcywiU2tpcCIpOmdbMThdKDEsdGhpcyksUX0sRi5hej1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2VbQnUoKV09CkdbMjldKDI0LHRoaXMpfSx0ZS5wcm90b3R5cGUpLmhPPWZ1bmN0aW9uKCl7fSxGKS5tMj1mdW5jdGlvbihCLHosSyl7cmV0dXJuIEs9WyJyYy1pbWFnZXNlbGVjdC1lcnJvci1zZWxlY3QtbW9yZSIsInJjLWltYWdlc2VsZWN0LWluY29ycmVjdC1yZXNwb25zZSIsInJjLWltYWdlc2VsZWN0LWVycm9yLWR5bmFtaWMtbW9yZSJdLCFCJiZ6fHxLLmZvckVhY2goZnVuY3Rpb24oSixDKXsoQz1tWzJdKDkzLEopLEMhPXopJiZ0aGlzLm1KKCExLEMpfSx0aGlzKSx6P0dELnByb3RvdHlwZS5tMi5jYWxsKHRoaXMsQix6KTohMX0sRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuKCgoQz0oKEo9KHRoaXMuRTM9KCh2PW1bMzFdKDEsKHRoaXMubWV0YWRhdGE9KHA9WyhBPVsiIiwxLCIuIl0sYj10aGlzLG51bGwpLCJuWCIsMjRdLHopLEFbMV0pLHRoaXMubWV0YWRhdGEpLHRoaXMpLlFlPVJbMjZdKDIzLHYsQVsxXSksSFsyMV0oMzksdiwzKXx8QVsxXSksYTAoKSksZylbMTZdKDc1LAp2b2lkIDAsdiw2KT09QVsxXSYmKEo9djQoKSksUlsyNl0oMTIsdiw3KSksQyE9cFswXSYmKEM9Qy50b0xvd2VyQ2FzZSgpKSxtWzMxXSg5MSx0aGlzLkMsbVszMl0uYmluZChwWzBdLDgpLHtsYWJlbDp0aGlzLlFlLGpkOkhbcFsyXV0oMjgsQVswXSxwWzBdLEhbNF0oOTMsMix2LHZvaWQgMCxRQixlWzM1XS5iaW5kKHBbMF0sMTMpKSksbGc6SixVWTp0aGlzLmdldE5hbWUoKSxNSTpDfSksbSlbNDRdKDEsQVswXSx7YXNzZXJ0Ok9bNDhdLmJpbmQocFswXSwyMCl9LmFzc2VydCh0aGlzLkMpLHlbMV0oMixwWzBdLHRoaXMuQy5pbm5lckhUTUwucmVwbGFjZShlQygpLEFbMF0pKSksdGhpcy5YLmRRKS5lbGVtZW50PUxwKFl2RCksa1s0Nl0oNTksImgiLHRoaXMsdGhpcy5pQygpLCEwKSxrKVszMV0oNiwicHgiLHRoaXMpLERbMjVdKDMzLEFbMl0sdGhpc1twWzFdXSh0aGlzLldvKEIpKSkudGhlbihmdW5jdGlvbigpe0smJmIubUooITAsbVsyXSg5MSwicmMtaW1hZ2VzZWxlY3QtaW5jb3JyZWN0LXJlc3BvbnNlIikpfSl9LApMbygpKSxTdjg9KFBhKCksVzMoKSksbDU9WncoKSxtdnE9REwoKTsKKCgoT1syMV0oNSxwcSx0ZSkscHEucHJvdG90eXBlKS5hej1mdW5jdGlvbihCLHosSyxKLEMsYixBKXtmb3IoQj0oQT0oQz0wLFsicHVzaCIsInYiLDEzXSksW10pO0M8dGhpc1tBWzFdXS5sZW5ndGg7QysrKXtmb3IoSz0oYj0wLFtdKTtiPHRoaXNbQVsxXV1bQ10ubGVuZ3RoO2IrKyl6PXRoaXNbQVsxXV1bQ11bYl0sSj1PWzIwXShBWzJdLDEvdGhpcy5ILG5ldyBaNih6Lnksei54KSkucm91bmQoKSxLW0FbMF1dKHt4OkoueCx5OkoueX0pO0JbQVswXV0oSyl9dGhpcy5yZXNwb25zZVtCdSgpXT1CfSxwcS5wcm90b3R5cGUuenI9ZnVuY3Rpb24oKXtyZXR1cm4hMX0scHEpLnByb3RvdHlwZS5uWD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoQz0oQT0odGhpcy5IPSgoKCh6PShiPWtbdGhpcy52PVsodj0oSz0oSj10aGlzLFszODYsInJjLWltYWdlc2VsZWN0LXRhcmdldCIsInJjLWNhbnZhcy1pbWFnZSJdKSxbNjksMzYsMjJdKSxbXSldLHZbMl1dKHZbMF0sWVsyM10uYmluZChudWxsLAo4KSx7dEI6Qn0pLGtbMzJdKDMsbVsyXSg5MCxLWzFdKSxiKSxtKVsyXSg4OSwicmMtY2FudmFzLWNhbnZhcyIpLHopLndpZHRoPU9bNDNdKDMzLHRoaXMuUikud2lkdGgtMTQseikuaGVpZ2h0PXoud2lkdGgsYi5zdHlsZSkuaGVpZ2h0PWtbMzJdKDEzLCJudW1iZXIiLHouaGVpZ2h0KSx6LndpZHRoL0tbMF0pLHouZ2V0Q29udGV4dChSOSgpKSksbSlbMl0oOTIsS1syXSksSClbNV0oMjUsQyxZcyxmdW5jdGlvbigpe0EuZHJhd0ltYWdlKEMsMCwwLHoud2lkdGgsei5oZWlnaHQpfSksZSlbdlsxXV0oNyxZWzIzXSg1MSx0aGlzKSxuZXcgeEYoeiksREMsZnVuY3Rpb24ocCl7cmV0dXJuIHZvaWQgSi5qUihwKX0pLGJ9LHBxKS5wcm90b3R5cGUualI9ZnVuY3Rpb24oQil7dGhpcy5tSigoQj1bITEsMzgsN10sQlswXSkpLFlbQlsxXV0oQlsyXSx0aGlzLkZnLnUoKSwhMCl9O2Z1bmN0aW9uIEVBKEIseixLLEope3JldHVybiBrWzI4XS5jYWxsKHRoaXMsMixLLEoseixCKX0KdmFyIHpqPShFQS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKEIseil7cmV0dXJuKHo9WyJYIiwidiIsIk0iXSx0aGlzW3pbMF1dKT09Qlt6WzBdXSYmdGhpcy5pPT1CLmkmJnRoaXNbelsxXV09PUJbelsxXV0mJnRoaXNbelsyXV09PUJbelsyXV19LHhLKCkpLEp4PSgoKChGPShPWzIxXSgyLEtSLHBxKSxLUi5wcm90b3R5cGUpLEYpLktnPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtmb3IoYj0oKEM9KHo9bVtBPVsyLChwPVsic3Ryb2tlU3R5bGUiLCJzZXRMaW5lRGFzaCIsMl0sMCksMV0scFsyXV0oOTUsInJjLWNhbnZhcy1jYW52YXMiKSxKPXouZ2V0Q29udGV4dChSOSgpKSxtW3BbMl1dKDkwLCJyYy1jYW52YXMtaW1hZ2UiKSksSi5kcmF3SW1hZ2UoQyxBWzFdLEFbMV0sei53aWR0aCx6LmhlaWdodCksSltwWzBdXT1tdyxKKS5saW5lV2lkdGg9QVswXSxBKVsxXTtiPHRoaXMudi5sZW5ndGg7YisrKWlmKHY9dGhpcy52W2JdLmxlbmd0aCx2IT1BWzFdKXtmb3IoKGI9PXRoaXMudi5sZW5ndGgtCkFbcFsyXV0mJihCJiYoSi5iZWdpblBhdGgoKSxKW3BbMF1dPVN2OCxKLm1vdmVUbyh0aGlzLnZbYl1bdi1BW3BbMl1dXS54LHRoaXMudltiXVt2LUFbcFsyXV1dLnkpLEoubGluZVRvKEIueCxCLnkpLEpbcFsxXV0oWzBdKSxKLnN0cm9rZSgpLEouY2xvc2VQYXRoKCkpLEpbcFswXV09bDUsSi5iZWdpblBhdGgoKSxKLmZpbGxTdHlsZT1sNSxKLmFyYyh0aGlzLnZbYl1bdi1BW3BbMl1dXS54LHRoaXMudltiXVt2LUFbcFsyXV1dLnksMyxBWzFdLEFbMF0qTWF0aC5QSSksSi5maWxsKCksSi5jbG9zZVBhdGgoKSksSikuYmVnaW5QYXRoKCksSi5tb3ZlVG8odGhpcy52W2JdW0FbMV1dLngsdGhpcy52W2JdW0FbMV1dLnkpLEs9QVtwWzJdXTtLPHY7SysrKUoubGluZVRvKHRoaXMudltiXVtLXS54LHRoaXMudltiXVtLXS55KTsoSi5maWxsU3R5bGU9bXZxLEouZmlsbCgpLEpbcFsxXV0oWzBdKSxKLnN0cm9rZSgpLEoubGluZVRvKHRoaXMudltiXVtBWzFdXS54LHRoaXMudltiXVtBWzFdXS55KSwKSilbcFsxXV0oWzEwXSksSi5zdHJva2UoKSxKLmNsb3NlUGF0aCgpfX0sRikuUno9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2KXtpZighKEM9dGhpc1tCPSh2PVsidiIsNTAwLDFdLFswLDIsInJjLWltYWdlc2VsZWN0LWVycm9yLXNlbGVjdC1zb21ldGhpbmciXSksdlswXV1bQlswXV0ubGVuZ3RoPD1CW3ZbMl1dKSl7Zm9yKEE9QltiPUJbMF0sMF07Yjx0aGlzW3ZbMF1dLmxlbmd0aDtiKyspZm9yKEs9QlswXSxKPXRoaXNbdlswXV1bYl0sej1KLmxlbmd0aC12WzJdO0s8Si5sZW5ndGg7SysrKUErPShKW3pdLngrSltLXS54KSooSlt6XS55LUpbS10ueSksej1LO0M9ZTcoQSouNSk8dlsxXX1yZXR1cm4gQz8odGhpcy5tSighMCxtWzJdKDkzLEJbMl0pKSwhMCk6ITF9LEYualI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgpe2lmKEw9KFM9KGY9KGI9KCh4PShYPVsyLCExLDIwXSxbMSwxRS01LDJdKSxwcS5wcm90b3R5cGUualIpLmNhbGwodGhpcywKQiksTj1tW1hbMF1dKDkwLCJyYy1jYW52YXMtY2FudmFzIiksbVszN10oMjEseFswXSwwLE4pKSxuZXcgWjYoQi5jbGllbnRZLWIueSxCLmNsaWVudFgtYi54KSksdGhpcy52KVt0aGlzLnYubGVuZ3RoLXhbMF1dLFMubGVuZ3RoKT49Myl2PVNbMF0scD1mLnktdi55LFE9Zi54LXYueCxMPVRYKFEqUStwKnApPDE1O249TDthOntpZihTLmxlbmd0aD49eFtYWzBdXSlmb3IoUD1TLmxlbmd0aC14WzBdO1A+MDtQLS0paWYoej1TW1MubGVuZ3RoLXhbMF1dLGM9U1tQLXhbMF1dLFo9U1tQXSxBPWYsYT1lWzE2XSg4LGMsWikscj1lWzE2XSgxLHosQSksYT09cj9DPSEwOihLPWFbMF0qclt4WzBdXS1yWzBdKmFbeFswXV0sZTcoSy0wKTw9eFsxXT9DPVhbMV06KHU9T1tYWzJdXSgxNCx4WzBdL0ssbmV3IFo2KGFbMF0qclt4W1hbMF1dXS1yWzBdKmFbeFtYWzBdXV0sclt4WzBdXSphW3hbWFswXV1dLWFbeFswXV0qclt4W1hbMF1dXSkpLE9bWFsyXV0oMzAseFsxXSx1LGMpfHxPW1hbMl1dKDg2LAp4WzFdLHUsWil8fE9bWFsyXV0oNjIseFsxXSx1LHopfHxPW1hbMl1dKDIyLHhbMV0sdSxBKT9DPVhbMV06KFc9bmV3IEVBKGMueCxjLnksWi54LFoueSkscT1nWzIyXSgzLFcsZVsyNF0oNSwwLERbN10oMjQsdS55LHUueCxXKSx4WzBdKSksVj1uZXcgRUEoei54LHoueSxBLngsQS55KSxKPWdbMjJdKFhbMF0sVixlWzI0XSgzLDAsRFs3XSg4LHUueSx1LngsVikseFswXSkpLEM9T1tYWzJdXSg1NCx4WzFdLHUscSkmJk9bWFsyXV0oOTQseFsxXSx1LEopKSkpLEMpe0U9biYmUD09eFswXTticmVhayBhfUU9ITB9RT8obj8oUy5wdXNoKFNbMF0pLHRoaXMudi5wdXNoKFtdKSk6Uy5wdXNoKGYpLHRoaXMuS2coKSk6KHRoaXMuS2coZiksT1tYWzBdXSg3LHRoaXMuS2csMjUwLHRoaXMpKX0sRi5mZz1mdW5jdGlvbihCKXttWzMxXSg5MyxCLEdbMjBdLmJpbmQobnVsbCw1KSl9LEYpLm41PWZ1bmN0aW9uKEIseil7dGhpc1soQj0oKEI9KHo9WyJ2IiwiS2ciLDBdLHRoaXNbelswXV0ubGVuZ3RoLQoxKSx0aGlzW3pbMF1dW0JdLmxlbmd0aCk9PXpbMl0mJkIhPXpbMl0mJnRoaXNbelswXV0ucG9wKCksdGhpc1t6WzBdXS5sZW5ndGgpLTEsdGhpc1t6WzBdXVtCXS5sZW5ndGgpIT16WzJdJiZ0aGlzW3pbMF1dW0JdLnBvcCgpLHpbMV1dKCl9LERxKSgpLEVtPSgoKChGPShPWzIxXSgyLENSLHBxKSxDUikucHJvdG90eXBlLEYublg9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuKCgoSz1wcS5wcm90b3R5cGUublguY2FsbCh0aGlzLCh6PVsicHgiLDAsKEo9WzEsNDUsNDBdLCJOb25lIEZvdW5kIildLEIpKSxSKVs0Nl0oSlsyXSx6WzBdLEpbMF0sdGhpcyksTylbMjZdKEpbMV0sIndpZHRoIixKWzBdLHpbSlswXV0pLGcpWzE4XSgxNyx0aGlzLHpbMl0sITApLEt9LEYuZmc9ZnVuY3Rpb24oQil7bVszMV0oMzEsQixrWzI4XS5iaW5kKG51bGwsMTEpKX0sRikualI9ZnVuY3Rpb24oQix6LEssSil7KHo9KEs9KEo9WyJqUiIsIk5leHQiLCJjbGllbnRZIl0scHEucHJvdG90eXBlW0pbMF1dLmNhbGwodGhpcywKQiksbSlbMl0oOTAsInJjLWNhbnZhcy1jYW52YXMiKSxtWzM3XSgxNywxLDAsSykpLHRoaXMudilbdGhpcy52Lmxlbmd0aC0xXS5wdXNoKG5ldyBaNihCW0pbMl1dLXoueSxCLmNsaWVudFgtei54KSksZ1sxOF0oOSx0aGlzLEpbMV0pLHRoaXMuS2coKX0sQ1IpLnByb3RvdHlwZS5uNT1mdW5jdGlvbihCLHopeygoQj0oej1bMSwidiIsMF0sdGhpc1t6WzFdXS5sZW5ndGgtelswXSksdGhpcylbelsxXV1bQl0ubGVuZ3RoIT16WzJdJiZ0aGlzW3pbMV1dW0JdLnBvcCgpLHRoaXNbelsxXV1bQl0ubGVuZ3RoPT16WzJdJiZnWzE4XSh6WzBdLHRoaXMsIk5vbmUgRm91bmQiLCEwKSx0aGlzKS5LZygpfSxGKS5LZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7Zm9yKEE9KEo9KHo9KEI9KChwPVsiUEkiLDEsKGI9WyJ3aWR0aCIsMCwzXSwicmMtY2FudmFzLWltYWdlIildLHRoaXMudi5sZW5ndGg9PWJbcFsxXV0pP09bMjZdKDQ3LGJbMF0scFsxXSxiW3BbMV1dKTpPWzI2XSg0NixiWzBdLApiWzJdLHRoaXMudi5sZW5ndGgtcFsxXSksbSlbMl0oOTMsInJjLWNhbnZhcy1jYW52YXMiKSxCLmdldENvbnRleHQoUjkoKSkpLEs9bVsyXSg5NCxwWzJdKSx6LmRyYXdJbWFnZShLLGJbcFsxXV0sYltwWzFdXSxCLndpZHRoLEIuaGVpZ2h0KSxsZikoeEsoKSksSi53aWR0aD1CLndpZHRoLEouaGVpZ2h0PUIuaGVpZ2h0LHY9Si5nZXRDb250ZXh0KFI5KCkpLHYuZmlsbFN0eWxlPW13LGIpW3BbMV1dO0E8dGhpcy52Lmxlbmd0aDtBKyspZm9yKEE9PXRoaXMudi5sZW5ndGgtcFsxXSYmKHYuZmlsbFN0eWxlPWw1KSxDPWJbcFsxXV07Qzx0aGlzLnZbQV0ubGVuZ3RoO0MrKyl2LmJlZ2luUGF0aCgpLHYuYXJjKHRoaXMudltBXVtDXS54LHRoaXMudltBXVtDXS55LDIwLGJbcFsxXV0sMipNYXRoW3BbMF1dKSx2LmZpbGwoKSx2LmNsb3NlUGF0aCgpOyh6LmRyYXdJbWFnZShKLGJbcFsxXV0sYltwW3ouZ2xvYmFsQWxwaGE9LjUsMV1dKSx6KS5nbG9iYWxBbHBoYT1wWzFdfSxGLlJ6PWZ1bmN0aW9uKEIsCnope2lmKCgoQj1bNTAwLDMsISh6PVswLDE4LDJdLDApXSx0aGlzLnYpLnB1c2goW10pLHRoaXMuS2coKSx0aGlzKS52Lmxlbmd0aD5CWzFdKXJldHVybiExO3JldHVybigodGhpcy5uZyghMSksTylbelsyXV0oNTUsZnVuY3Rpb24oKXt0aGlzLm5nKCEwKX0sQlt6WzBdXSx0aGlzKSxSKVs0Nl0oNDEsInB4IiwxLHRoaXMpLFlbMzhdKDM3LHRoaXMuRmcudSgpLCExKSxnW3pbMV1dKDksdGhpcywiTm9uZSBGb3VuZCIsQlt6WzJdXSksQlt6WzJdXX0sSHYpKCksTDA9bmV3IGJtKDMwMCwxODUpLGwxOD14XygpLGhlPSgoKCgoKCgoKChGPShPWzIxXSgyLFg2LEdEKSxYNi5wcm90b3R5cGUpLEYpLmhMPWZ1bmN0aW9uKEIseixLLEope3JldHVybigoKEo9WzIsIkMiLCJtSiJdLHRoaXMpW0pbMl1dKCEhSyksdGhpcykudi5jbGVhcigpLG1bMzFdKDI0LHRoaXNbSlsxXV0sT1szN10uYmluZChudWxsLDMpLHtXbzp0aGlzLldvKEIpfSksbSlbSlswXV0oMyl9LEYuZmc9ZnVuY3Rpb24oQil7bVszMV0oOTQsCkIsRFs0N10uYmluZChudWxsLDEpKX0sRikuSFc9ZnVuY3Rpb24oKXtyZXR1cm4gRFsyMl0uY2FsbCh0aGlzLDMpfSxGKS5hej1mdW5jdGlvbigpeyh0aGlzLnJlc3BvbnNlW0J1KCldPXRoaXMudi5nZXRWYWx1ZSgpLHRoaXMpLnYuY2xlYXIoKX0sRikuQ3E9ZnVuY3Rpb24oQil7KHRoaXMuQz0oKEI9WzExLDQwLCJwcm90b3R5cGUiXSxHRClbQlsyXV0uQ3EuY2FsbCh0aGlzKSxlWzMxXSgxNSwicmMtZGVmYXVsdGNoYWxsZW5nZS1wYXlsb2FkIix0aGlzKSksdGhpcy52LnJlbmRlcihlWzMxXSgxMywicmMtZGVmYXVsdGNoYWxsZW5nZS1yZXNwb25zZS1maWVsZCIsdGhpcykpLHRoaXMudikudSgpLnNldEF0dHJpYnV0ZShOaigpLGwxOCksbVtCWzFdXSgxMCx0aGlzLlgsdGhpcy52LnUoKSksZVszNl0oMyxZWzIzXSg0OCx0aGlzKSx0aGlzLlgsTXIsdGhpcy5JRCksZVszNl0oQlswXSxZWzIzXSg1Myx0aGlzKSx0aGlzLnYudSgpLHNYLHRoaXMuSFcpfSxGKS5iWT1mdW5jdGlvbihCKXt0aGlzW3RoaXMuTT0KKEdEWyhCPVs4LCJPMyIsInByb3RvdHlwZSJdLEIpWzJdXS5iWS5jYWxsKHRoaXMpLGtbMjJdKDQsT1tCWzBdXS5iaW5kKG51bGwsMTYpKSksQlsxXV0odGhpcy51KCkpfSxGKS5oTz1mdW5jdGlvbihCLHosSyl7KEs9WyJzZWxlY3QiLCJSIiwyOV0sSTJ8fEZmKXx8czR8fCh0aGlzLnYuZ2V0VmFsdWUoKT90aGlzLnYudSgpLmZvY3VzKCk6KEI9dGhpcy52LHo9T1syNl0oMjQsIiIsQiksQltLWzFdXT0hMCxCLnUoKS5mb2N1cygpLHp8fEdbS1syXV0oMjEsbnVsbCl8fChCLnUoKS52YWx1ZT1CLlgpLEIudSgpW0tbMF1dKCksR1tLWzJdXSgyMSxudWxsKXx8KEIudiYma1syXSgzLEIudixCLnUoKSx5RyxCLldGKSxPWzJdKDU1LEIuVywxMCxCKSkpKX0sRikuUno9ZnVuY3Rpb24oKXtyZXR1cm4gUlsyXSgxNix0aGlzLnYuZ2V0VmFsdWUoKSl9LEYpLm0yPWZ1bmN0aW9uKEIseixLKXtpZihLPVsibTIiLDI1LDJdLHopcmV0dXJuIGVbNDRdKEtbMV0sdGhpcy52LEIpLEdELnByb3RvdHlwZVtLWzBdXS5jYWxsKHRoaXMsCkIseik7cmV0dXJuISh0aGlzLm1KKEIsbVtLWzJdXSg5NCwicmMtZGVmYXVsdGNoYWxsZW5nZS1pbmNvcnJlY3QtcmVzcG9uc2UiKSksMSl9LEYpLklEPWZ1bmN0aW9uKEIpe3JldHVybiBZWzM2XS5jYWxsKHRoaXMsOSxCKX0sTmtsKCkpLEdNPW5ldyBibSgzMDAsMjUwKSxFNDg9KCgoKCgoKCgoT1syMV0oNCxkXyxHRCksZF8pLnByb3RvdHlwZS5oTD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKCgoQj0odGhpcy5uZygoYj1bMzEsNjEsKHo9WyJyYy1kb3NjYXB0Y2hhLWJvZHktdGV4dCIsMTAsITFdLDExKV0selsyXSkpLGVbYlswXV0oMTMsInJjLWRvc2NhcHRjaGEtaGVhZGVyLXRleHQiLHRoaXMpKSxDPWVbYlswXV0oOSwicmMtZG9zY2FwdGNoYS1ib2R5Iix0aGlzKSxLPWVbYlswXV0oMTMselswXSx0aGlzKSxCKSYmUltiWzJdXSg2Myx6WzFdLC0xLEIpLEMpJiZLJiYoSj1SWzM2XSgzMixDKS5oZWlnaHQsUltiWzJdXShiWzFdLHpbMV0sSixLKSksbSlbMl0oMil9LGRfLnByb3RvdHlwZSkuVTA9CmZ1bmN0aW9uKEIpe0ImJmVbMzFdKDE1LCJyYy1kb3NjYXB0Y2hhLWJvZHktdGV4dCIsdGhpcykuZm9jdXMoKX0sZF8pLnByb3RvdHlwZS5hej1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2VbQnUoKV09IiJ9LGRfKS5wcm90b3R5cGUuYlk9ZnVuY3Rpb24oQil7KEI9WzUsImJZIiwxNF0sR0QucHJvdG90eXBlKVtCWzFdXS5jYWxsKHRoaXMpLHRoaXMuTT1rWzIyXShCWzBdLEhbQlsyXV0uYmluZChudWxsLDE2KSksdGhpcy5PMyh0aGlzLnUoKSl9LE8pWzIxXSg2LHR4LFQpLHR4LnByb3RvdHlwZSkuc2M9ZnVuY3Rpb24oKXtyZXR1cm4gRFszOF0oMTYsY1QsdGhpcywyKX0sdHguUlQ9R1MoKSx0eC5wcm90b3R5cGUpLlQ9Uls0OF0oNCxbImNscmVwIixjVCxDWCx2WixDWCx3Uix2Wl0pLE9bMjFdKDIsbXYsYmQpLE1rLnByb3RvdHlwZSkuc2VuZD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybiBLPUs9PT0oej16PT09dm9pZCAwPyExOnosdm9pZCAwKT8hMDpLLEdbMTNdKDMzLApmdW5jdGlvbihwLFEsbil7bj1bIlZlIiwyLChRPVs0LDEsN10sImkiKV07c3dpdGNoKHAuTSl7Y2FzZSBRWzFdOnY9e21ldGhvZDpCLkxYKCksaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6Qi50cz9CLnRzOkIuTzA/VmY6IiJ9LGJvZHk6QltuWzBdXSgpLFBLOnp9LEt8fCh2Lm1vZGU9RUwoKSksYj0wO2Nhc2UgblsxXTpyZXR1cm4gcC5BKDUpLHAudihmZXRjaChCLkk3LnRvU3RyaW5nKCksdiksUVtuWzFdXSk7Y2FzZSBRW25bMV1dOnAuRigoQT1wLlgsUSlbMF0pO2JyZWFrO2Nhc2UgNTpDPUo9cFtuWzJdXSgpO2Nhc2UgUVswXTppZihiKys8MyYmKCFBfHwhQS5vayYmKEEuc3RhdHVzPjUwMHx8QS5zdGF0dXM9PT00MDgpKSlwLkdfKG5bMV0pO2Vsc2UgcmV0dXJuIEF8fChBPW5ldyBSZXNwb25zZShDLHtzdGF0dXM6NDAwfSkpLHAucmV0dXJuKEEpfX0pfSxFNDh8fHtpZDp0bCgpfSksVGo9WzEwNCw5NywxMTAsMTAwLDEwMywxMDEsMTE1LDExNiwxMTcsMTE0LDEwMV0ubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKEIpfSkuam9pbigiIiksCnRFPW5ldyBibSg0MDAsNTgwKSxYblo9ankoKSxNRj13WCgpLEJMPSgoKCgoRj0oKE9bMjFdKDYsalcsR0QpLGpXKS5wcm90b3R5cGUuVTA9ZnVuY3Rpb24oQix6LEssSil7KCgoSj1bInByb3RvdHlwZSIsImoiLCJ2Il0sR0RbSlswXV0pLlUwLmNhbGwodGhpcyxCKSwhQiYmKEs9dGhpc1tKWzJdXSx6PUsucXVlcnlTZWxlY3RvcihFMygpKSkpJiYoSy5yZW1vdmVDaGlsZCh6KSx0aGlzLmc9ITApLEIpJiZ0aGlzLmcmJmVbMjVdKDE3LDMsNCx0aGlzW0pbMV1dLHRoaXMpfSxqVy5wcm90b3R5cGUpLEYpLmlDPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBuZXcgKEs9bDkoKEo9WzQwMCwxODAsMjBdLHo9dGhpcy5XfHxHWzQ0XSg1LEpbMl0pLHouaGVpZ2h0LTE5NCksSlswXSx6LndpZHRoKSxCPWhZKEssMzAwKSxibSkoQixKWzFdK0IpfSxGLmF6PWZ1bmN0aW9uKEIpe3RoaXNbKEI9WyJyZXNwb25zZSIsNyxudWxsXSx0aGlzW0JbMF1dW3VTRCgpXT1lWzEwXSgxLEJbMl0sMSx0aGlzLlgpLApCKVswXV1bRFVZKCldPVlbMzRdKEJbMV0sMix0aGlzLlgpfSxGLmhMPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4odGhpcy5qPSh0aGlzLkg9KGtbKEs9WzYxLDI1LDQ2XSxLKVsyXV0oS1swXSwiaCIsdGhpcyx0aGlzLmlDKCksITApLEIpLHopLG0pWzJdKDQsZVtLWzFdXSgxNiwzLDQseix0aGlzKSl9LEYpLmJZPWZ1bmN0aW9uKEIpe3RoaXNbdGhpcy5NPShHRC5wcm90b3R5cGVbKEI9WyJiWSIsInUiLCJPMyJdLEIpWzBdXS5jYWxsKHRoaXMpLGtbMjJdKDY4LG1bNDldLmJpbmQobnVsbCwxKSkpLEJbMl1dKHRoaXNbQlsxXV0oKSksdGhpcy52PWVbMzFdKDExLFhuWix0aGlzKX0sRi5oTz1mdW5jdGlvbigpe3RoaXMudi5mb2N1cygpfSxPWzIxXSgxLFhnLHRlKSxYZykucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5nPSh0aGlzLkI9KHRoaXMuRD1bXSwhMSksW10pfSxYZy5wcm90b3R5cGUuaEw9ZnVuY3Rpb24oQix6LEspe3JldHVybiB0aGlzLnJlc2V0KCksdGUucHJvdG90eXBlLmhMLmNhbGwodGhpcywKQix6LEspfSxYZykucHJvdG90eXBlLnpyPWZ1bmN0aW9uKCl7cmV0dXJuITF9LEFUKCkpLHVaOD11XygpLE1OPSgoKCgoT1syMV0oMixzZCxYZyksc2QucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKEIpe3RoaXNbdGhpcy5IPSh0aGlzLkw9KChCPVsicHJvdG90eXBlIiwhMSwiaiJdLFhnW0JbMF1dKS5yZXNldC5jYWxsKHRoaXMpLEIpWzFdLHRoaXMudj1bXSx0aGlzLlhnPVtdLFtdKSxCWzJdXT0wfSxzZC5wcm90b3R5cGUpLlJ6PWZ1bmN0aW9uKEIseil7aWYoKHRoaXNbKHRoaXMubUooKEI9WyEwLCExLCJweCJdLHo9WzEsInB1c2giLCJIIl0sQlt6WzBdXSkpLHopWzJdXVt6WzFdXShbXSksdGhpcykuWC5kUS5Ebi5OdC5mb3JFYWNoKGZ1bmN0aW9uKEssSil7Sy5zZWxlY3RlZCYmdGhpcy5IW3RoaXMuSC5sZW5ndGgtMV0ucHVzaChKKX0sdGhpcyksdGhpcy5MKXJldHVybiBCW3pbMF1dO3JldHVybih0aGlzLkQ9bVsyOV0oMjEsdGhpc1t6WzJdXSksZVsxMF0oNiwiaiIsdGhpcyksCmdbNl0oNTksQlsyXSxCWzBdLHRoaXMpLEIpWzBdfSxzZC5wcm90b3R5cGUpLmF6PWZ1bmN0aW9uKCl7dGhpcy5yZXNwb25zZVtCdSgpXT10aGlzLkh9LHNkKS5wcm90b3R5cGUuaEw9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFope3JldHVybigoSj0oYj0oQz0oUT1SWzQ4XSg3Mix6LHBaLChuPShaPVsxNywxOCwicHVzaCJdLFsxLDIsNV0pLG5bMl0pLGwpLHY9SFsxMl0oMjIsUSxuWzBdLFdqLGtbM10oOCkpLEhbNDRdKDg1LHosV2osblswXSx2WzBdLGwpLFhnLnByb3RvdHlwZS5oTCkuY2FsbCh0aGlzLEIseixLKSxBPVJbNDhdKDcxLHoscFosblsyXSxsKSx0aGlzLlhnPUhbMTJdKFpbMV0sQSxuWzBdLFdqLGtbM10oMTAsTnYpKSx0aGlzLnZbWlsyXV0odGhpcy5XbyhCLHVaOCkpLHRoaXMpLnYscD1SWzQ4XSg3Mix6LHBaLG5bMl0sbCkseVszN10oMTEsMCxuWzFdLHApKSxqYSkoYixKKSxnKVtaWzFdXShaWzBdLHRoaXMsIlNraXAiKSxDfSxzZC5wcm90b3R5cGUpLlM9CmZ1bmN0aW9uKEIseixLKXsoKHo9WyJyYy1pbWFnZXNlbGVjdC1jYXJvdXNlbC1pbnN0cnVjdGlvbnMtaGlkZGVuIiwicmMtaW1hZ2VzZWxlY3QtY2Fyb3VzZWwtaW5zdHJ1Y3Rpb25zIiwoSz1bMSw0LDY1XSwiU2tpcCIpXSxYZy5wcm90b3R5cGUuUykuY2FsbCh0aGlzLEIpLHRoaXMuWC5kUS5EbikuSU4+MD8oUls4XSgzMyx6WzBdLG1bMl0oODkseltLWzBdXSkpLHRoaXMuTD9nWzE4XShLWzJdLHRoaXMpOmdbMThdKDQ5LHRoaXMsIk5leHQiKSk6KFJbMjddKEtbMV0sbVsyXSg5Mix6W0tbMF1dKSx6WzBdKSxnWzE4XSgyNSx0aGlzLHpbMl0pKX0sc2QucHJvdG90eXBlLkRNPWZ1bmN0aW9uKEIseixLLEopeygoamEodGhpcy52LChCLmxlbmd0aD09KEs9WyJweCIsITAsInIiXSxKPVsxLDIsIkgiXSwwKSYmKHRoaXMuTD1LW0pbMF1dKSxCKSksamEpKHRoaXMuWGcseiksdGhpcylbSlsyXV0ubGVuZ3RoPT10aGlzLnYubGVuZ3RoK0pbMF0tQi5sZW5ndGgmJih0aGlzLkw/Z1szXSg1MCwKdGhpcyxLW0pbMV1dKTpnWzZdKDU3LEtbMF0sS1tKWzBdXSx0aGlzKSl9LHZjKSgpLFhtPVswLEQzLCgoKCgoKChPWzIxXSgyLHdfLFhnKSx3Xy5wcm90b3R5cGUpLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5IPSh0aGlzLnY9KFhnLnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpLDApLHt9KX0sd18pLnByb3RvdHlwZS5hej1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2VbQnUoKV09dGhpcy5nfSx3Xy5wcm90b3R5cGUpLkRNPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwKXtmb3IoQz0oSj1nWzEyXSg3LHlbNF0oMywodj1bNCwoSz10aGlzLHA9WyJYIiw0MiwxXSw5KSxudWxsXSx0aGlzKSkpLEoubmV4dCgpKSxiPXt9OyFDLmRvbmU7Yj17aEI6dm9pZCAwLFRROnZvaWQgMCx2bzp2b2lkIDAsUEE6dm9pZCAwfSxDPUoubmV4dCgpKXtpZigoQT1DLnZhbHVlLEIubGVuZ3RoKT09MClicmVhazsoKCh6PSh0aGlzLmcucHVzaChBKSxIWzQ3XSgxMyx2WzBdLDIsdGhpc1twWzBdXS5kUS5Ebi5yb3dTcGFuLAp0aGlzW3BbMF1dLmRRLkRuLmNvbFNwYW4sdGhpcykpLEQ2KHose0ZKOjAseEY6MCxyb3dTcGFuOjEsY29sU3BhbjoxLHRCOkIuc2hpZnQoKX0pLGIpLlBBPUdbcFsxXV0oMzMscFsyXSx2W3BbMl1dLCIiLHZbMl0seiksYikuaEI9dGhpc1twWzBdXS5kUS5Ebi5OdC5sZW5ndGgsYi5UUT10aGlzLkhbQV18fEEsYi52bz17c2VsZWN0ZWQ6ITAsZWxlbWVudDp0aGlzW3BbMF1dLmRRLkRuLk50W2IuVFFdLmVsZW1lbnR9LHRoaXNbcFswXV0pLmRRLkRuLk50LnB1c2goYi52byksT1syXSg0MCxmdW5jdGlvbihRKXtyZXR1cm4gZnVuY3Rpb24obil7KCgobj1bMywoSy5IW1EuaEJdPVEuVFEsMzkpLCIwIl0sRFsxM10oMjIsUS52by5lbGVtZW50KSxRLnZvLmVsZW1lbnQuYXBwZW5kQ2hpbGQoUS5QQSksUltuWzFdXSg0MCxuWzJdLDEwMCxRLnZvKSxRKS52by5zZWxlY3RlZD0hMSxSKVsyN10oNCxRLnZvLmVsZW1lbnQsInJjLWltYWdlc2VsZWN0LWR5bmFtaWMtc2VsZWN0ZWQiKSxlKVszNl0oblswXSwKWVsyM10oNTQsSyksbmV3IHhGKFEudm8uZWxlbWVudCksREMsbmcoSy5TLFEudm8pKX19KGIpLHRoaXMudisxRTMpfX0sd18ucHJvdG90eXBlKS5TPWZ1bmN0aW9uKEIseixLKXsoej0oSz1bIm9wYWNpdHkgIiwiaW5kZXhPZiIsIlgiXSxbInRyYW5zaXRpb24iLCExLCJqIl0pLHRoaXMuZylbS1sxXV0odGhpc1tLWzJdXS5kUS5Ebi5OdFtLWzFdXShCKSk9PS0xJiYodGhpcy5tSih6WzFdKSxCLnNlbGVjdGVkfHwoKyt0aGlzW0tbMl1dLmRRLkRuLklOLEIuc2VsZWN0ZWQ9ITAsdGhpcy52JiZZWzM1XSg0OCxCLmVsZW1lbnQselswXSxLWzBdKyh0aGlzLnYrMUUzKS8xRTMrInMgZWFzZSIpLFJbOF0oOTcsInJjLWltYWdlc2VsZWN0LWR5bmFtaWMtc2VsZWN0ZWQiLEIuZWxlbWVudCksamEodGhpcy5ELHRoaXNbS1syXV0uZFEuRG4uTnRbS1sxXV0oQikpLGVbMTBdKDUselsyXSx0aGlzKSkpfSx3Xy5wcm90b3R5cGUuUno9ZnVuY3Rpb24oQix6LEssSixDKXtpZihDPVsxMiwicmMtaW1hZ2VzZWxlY3QtZXJyb3ItZHluYW1pYy1tb3JlIiwKIkgiXSwhWGcucHJvdG90eXBlLlJ6LmNhbGwodGhpcykpe2lmKCF0aGlzLkIpZm9yKEs9Z1tDWzBdXSgxMSx0aGlzLmcpLEo9Sy5uZXh0KCk7IUouZG9uZTtKPUsubmV4dCgpKWlmKHo9dGhpc1tDWzJdXSxCPUoudmFsdWUseiE9PW51bGwmJkIgaW4geilyZXR1cm4hMTt0aGlzLm1KKCEwLG1bMl0oOTQsQ1sxXSkpfXJldHVybiEwfSx3XykucHJvdG90eXBlLmhMPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gdGhpcy52PShDPShKPVhnW2I9WzMsMTMsInByb3RvdHlwZSJdLGJbMl1dLmhMLmNhbGwodGhpcyxCLHosSyksUls0OF0oNzIseixaMCxiWzBdLGwpKSxIWzIxXShiWzFdLEMsMil8fDApLEp9LE8pWzIxXSg1LEdfLFQpLENYKV0sWVg9SFsxMl0oNCwxMDAsR18sKEdfLnByb3RvdHlwZS5UPVJbNDhdKDksWG0pLFhtKSksYTFOPWExTnx8e2lkOnl5KCl9LHU1LGhjOD0oZnVuY3Rpb24oQil7KGZ1bmN0aW9uKHosSyxKKXt6Lk09KCgoSj1bIkJZVEUiLCJwcm90b3R5cGUiLChLPQpmdW5jdGlvbihDLGIpe3RoaXMudj0odGhpcy5FWj1DLGIpfSwic3kiKV0sSylbSlsxXV1bSlsyXV09ZnVuY3Rpb24oQyl7cmV0dXJuIFJbMjhdLmNhbGwodGhpcywxMSxDKX0sSykuZkU9bmV3IEsoMSxbMTAsMTIsMTRdKSxLLktFPW5ldyBLKDIsWzksMTEsMTNdKSxLW0pbMF1dPW5ldyBLKDQsWzgsMTYsMTZdKSxuZXcgSyg4LFs4LDEwLDEyXSksbmV3IEsoNyxbMCwwLDBdKSxLKX0pKEIuRTl8fChCLkU5PXt9KSl9KChmdW5jdGlvbihCLHosSyxKLEMpe0s9KEM9WyJIIiwiVyIsIkRtIl0sWzMsNDAsMTBdKTtmdW5jdGlvbiBiKEEsdixwLFEsbixaKXtpZigoUT1bKFo9WzEsInB1c2giLDJdLDMxKSwwLDFdLHY8UVtaWzBdXSl8fHY+UVswXXx8QT4+PnYhPVFbWlswXV0pdGhyb3cgRXJyb3IoIlZhbHVlIG91dCBvZiByYW5nZSIpO2ZvcihuPXYtUVtaWzJdXTtuPj1RW1pbMF1dO24tLSlwW1pbMV1dKEE+Pj5uJlFbWlsyXV0pfSgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoej1mdW5jdGlvbihBLAp2LHAsUSl7aWYodjwodGhpc1tRPSh0aGlzLlRWPXYsWyJJbnZhbGlkIGFyZ3VtZW50IiwodGhpcy5tb2RlPUEsInNsaWNlIiksIkxfIl0pLFFbMl1dPXAsMCkpdGhyb3cgRXJyb3IoUVswXSk7dGhpc1tRWzJdXT1wW1FbMV1dKCl9LEo9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVil7aWYoKHRoaXMuTz12LFY9KEw9WyExLDcsMF0sdGhpcy52PVtdLHRoaXMudmVyc2lvbj1BLFsiTWFzayB2YWx1ZSBvdXQgb2YgcmFuZ2UiLChaPVtdLCJYIiksIm8iXSksdGhpcylbVlsxXV09W10sQTxKLkF8fEE+Si5pKXRocm93IEVycm9yKCJWZXJzaW9uIHZhbHVlIG91dCBvZiByYW5nZSIpO2lmKFE8LTF8fFE+TFsxXSl0aHJvdyBFcnJvcihWWzBdKTtmb3IodGhpcy5zaXplPUEqNCsxNyxyPUxbMl07cjx0aGlzLnNpemU7cisrKVoucHVzaChMWzBdKTtmb3IoZj1MWzJdO2Y8dGhpcy5zaXplO2YrKyl0aGlzLnYucHVzaChaLnNsaWNlKCkpLHRoaXNbVlsxXV0ucHVzaChaLnNsaWNlKCkpOwppZih0aGlzW1c9KHRoaXMuVSgpLHRoaXMuQyhwKSksVlsyXV0oVyksUT09LTEpZm9yKE49TFsyXSxuPTFFOTtOPDg7TisrKXRoaXMuQShOKSx0aGlzLkYoTikseD10aGlzLmooKSx4PG4mJihRPU4sbj14KSx0aGlzLkEoTik7aWYoUTxMWzJdfHxRPkxbMV0pdGhyb3cgRXJyb3IoIkFzc2VydGlvbiBlcnJvciIpO3RoaXMuQShRKSx0aGlzLkYoUSksdGhpc1tWWzFdXT1bXX0sSilbQ1swXV09ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyl7Zm9yKG49KFE9KFo9KFc9WzAsInNoaWZ0IiwxMl0sdi5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gMH0pKSxwPWdbV1syXV0oNixBKSxwLm5leHQoKSkse30pOyFRLmRvbmU7bj17QkE6dm9pZCAwfSxRPXAubmV4dCgpKW4uQkE9US52YWx1ZV5aW1dbMV1dKCksWi5wdXNoKFdbMF0pLHYuZm9yRWFjaChmdW5jdGlvbihOKXtyZXR1cm4gZnVuY3Rpb24oeCxmKXtyZXR1cm4gWltmXV49Si5GKE4uQkEseCl9fShuKSk7cmV0dXJuIFp9LEouVT1mdW5jdGlvbihBLHYsCnAsUSl7cmV0dXJuIHA9Qlt2PShRPVsiTyIsIkU5IiwidiJdLHU1LkRtW1FbMl1dW1FbMl1dKSxRWzFdXVtRWzBdXShBKSxKLm8ocCx2KX0sSikuTT1LWzFdLEopLm09S1syXSxKLnByb3RvdHlwZSkubT1mdW5jdGlvbihBLHYscCxRKXtmb3IoUT0tMjtRPD0yO1ErKylmb3IocD0tMjtwPD0yO3ArKyl0aGlzLk0oQStRLHYrcCxoWShlNyhwKSxlNyhRKSkhPTEpfSxKW0NbMV1dPUtbMF0sSikucHJvdG90eXBlLks9ZnVuY3Rpb24oQSx2KXtyZXR1cm4gMDw9QSYmQTx0aGlzLnNpemUmJjA8PXYmJnY8dGhpcy5zaXplJiZ0aGlzLnZbdl1bQV19LEoucHJvdG90eXBlLlU9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyl7Zm9yKHA9KG49WzAsKFc9WzAsIlIiLDNdLDYpLDRdLG5bV1swXV0pO3A8dGhpcy5zaXplO3ArKyl0aGlzLk0ocCxuWzFdLHAlMj09bltXWzBdXSksdGhpcy5NKG5bMV0scCxwJTI9PW5bV1swXV0pO2ZvcihBPSh2PShaPSh0aGlzW1dbMV1dKFdbMl0sV1syXSksdGhpc1tXWzFdXShXWzJdLAp0aGlzLnNpemUtblsyXSksdGhpc1tXWzFdXSh0aGlzLnNpemUtblsyXSxXWzJdKSx0aGlzLkgoKSksWi5sZW5ndGgpLG4pW1dbMF1dO0E8djtBKyspZm9yKFE9bltXWzBdXTtRPHY7USsrKUE9PW5bV1swXV0mJlE9PW5bV1swXV18fEE9PW5bV1swXV0mJlE9PXYtMXx8QT09di0xJiZRPT1uW1dbMF1dfHx0aGlzLm0oWltRXSxaW0FdKTsodGhpcy5GKG5bV1swXV0pLHRoaXMpLlAoKX0sSi5wcm90b3R5cGUpLkY9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMKXtmb3IoUT12PShwPShMPShaPVs4LDcsMV0sWzksMCwyXSksTFsxXSksdGhpcykuTy5KQTw8M3xBO3A8MTA7cCsrKVE9UTw8WltMWzJdXV4oUT4+PkxbMF0pKjEzMzU7aWYoKHg9KHY8PDEwfFEpXjIxNTIyLHg+Pj4xNSkhPUxbMV0pdGhyb3cgRXJyb3IoIkFzc2VydGlvbiBlcnJvciIpO2ZvcihOPUxbMV07Tjw9NTtOKyspdGhpcy5NKE4sWltMWzFdXSwoeD4+Pk4mWltMWzJdXSkhPUxbMV0pO2ZvcigodGhpcy5NKFpbMV0sClpbTFsxXV0sKHg+Pj42JlpbTFsyXV0pIT1MWzFdKSx0aGlzKS5NKFpbTFsxXV0sWltMWzFdXSwoeD4+PlpbMV0mWltMWzJdXSkhPUxbMV0pLHRoaXMuTShaW0xbMV1dLFpbMV0sKHg+Pj5aW0xbMV1dJlpbTFsyXV0pIT1MWzFdKSxXPUxbMF07VzwxNTtXKyspdGhpcy5NKFpbTFsxXV0sMTQtVywoeD4+PlcmWltMWzJdXSkhPUxbMV0pO2ZvcihuPUxbMV07bjxaW0xbMV1dO24rKyl0aGlzLk0oWltMWzFdXSx0aGlzLnNpemUtWltMWzJdXS1uLCh4Pj4+biZaW0xbMl1dKSE9TFsxXSk7Zm9yKGY9WltMWzFdXTtmPDE1O2YrKyl0aGlzLk0odGhpcy5zaXplLTE1K2YsWltMWzFdXSwoeD4+PmYmWltMWzJdXSkhPUxbMV0pO3RoaXMuTSh0aGlzLnNpemUtWltMWzFdXSxaW0xbMV1dLCEwKX0sSi5wcm90b3R5cGVbQ1sxXV09ZnVuY3Rpb24oQSx2LHApe3JldHVybigodiYmKHRoaXMuaShBLHApLHA9MCkscCs9dGhpcy5zaXplLHRoaXMpLmkoQSxwKSx0aGlzKS5sKEEpfSxKKS5wcm90b3R5cGUuUj0KZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgpe2ZvcihOPVs0LChXPS0oeD1bIk0iLDAsMl0sNCksMiksMF07Vzw9Tlt4WzFdXTtXKyspZm9yKG49LTQ7bjw9Tlt4WzFdXTtuKyspUT1oWShlNyhuKSxlNyhXKSksWj1BK1cscD12K24sTlt4WzJdXTw9cCYmcDx0aGlzLnNpemUmJk5beFsyXV08PVomJlo8dGhpcy5zaXplJiZ0aGlzW3hbMF1dKFoscCxRIT1OWzFdJiZRIT1OW3hbMV1dKX0sSi5wcm90b3R5cGUpLlVMPWZ1bmN0aW9uKEEsdixwLFEsbixaKXtyZXR1cm4geVszMF0uY2FsbCh0aGlzLDUsQSx2LHAsUSxuLFopfSxKKS5PPVtbLTEsMSwxLDEsMSwxLDIsMiwyLDIsNCw0LDQsNCw0LDYsNiw2LDYsNyw4LDgsOSw5LDEwLDEyLDEyLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDE5LDIwLDIxLDIyLDI0LDI1XSxbLTEsMSwxLDEsMiwyLDQsNCw0LDUsNSw1LDgsOSw5LDEwLDEwLDExLDEzLDE0LDE2LDE3LDE3LDE4LDIwLDIxLDIzLDI1LDI2LDI4LDI5LDMxLDMzLDM1LDM3LDM4LDQwLAo0Myw0NSw0Nyw0OV0sWy0xLDEsMSwyLDIsNCw0LDYsNiw4LDgsOCwxMCwxMiwxNiwxMiwxNywxNiwxOCwyMSwyMCwyMywyMywyNSwyNywyOSwzNCwzNCwzNSwzOCw0MCw0Myw0NSw0OCw1MSw1Myw1Niw1OSw2Miw2NSw2OF0sWy0xLDEsMSwyLDQsNCw0LDUsNiw4LDgsMTEsMTEsMTYsMTYsMTgsMTYsMTksMjEsMjUsMjUsMjUsMzQsMzAsMzIsMzUsMzcsNDAsNDIsNDUsNDgsNTEsNTQsNTcsNjAsNjMsNjYsNzAsNzQsNzcsODFdXSxKKS5wcm90b3R5cGUubD1mdW5jdGlvbihBLHYscCxRLG4pe2lmKChRPShwPVs0LDMsMF0sbj1bMSw2LDVdLEFbblswXV0pLFEpPnRoaXMuc2l6ZSpwW25bMF1dKXRocm93IEVycm9yKCJBc3NlcnRpb24gZXJyb3IiKTtyZXR1cm4gdj1RPnBbMl0mJkFbMl09PVEmJkFbcFtuWzBdXV09PVEqcFtuWzBdXSYmQVtwWzBdXT09USYmQVtuWzJdXT09USwodiYmQVtwWzJdXT49USpwWzBdJiZBW25bMV1dPj1RPzE6MCkrKHYmJkFbblsxXV0+PVEqcFswXSYmQVtwWzJdXT49ClE/MTowKX0sSikucHJvdG90eXBlLkM9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMpe2lmKEEubGVuZ3RoIT1KLlgoKFM9WzIsKFY9WyJJbnZhbGlkIGFyZ3VtZW50Iiw4LDBdLHY9dGhpcy5PLGY9dGhpcy52ZXJzaW9uLCJIIiksIkNfIl0sdiksZikpdGhyb3cgRXJyb3IoVlswXSk7Zm9yKHA9KFA9KG49KEw9KFE9KFo9Yk4oKFc9KE49Si5PW3ZbU1syXV1dW2ZdLEoubClbdltTWzJdXV1bYz1bXSxmXSxKLlIoZikvVlsxXSkpLHE9W10sTiktWiVOLGJOKFovTikpLEouUChXKSksVltTWzBdXSksVilbU1swXV07UDxOO1ArKylFPUEuc2xpY2UocCxwK0wtVysoUDxRPzA6MSkpLHArPUUubGVuZ3RoLHI9SltTWzFdXShFLG4pLFA8USYmRS5wdXNoKFZbU1swXV0pLHEucHVzaChFLmNvbmNhdChyKSk7Zm9yKHg9e3pfOjB9O3guel88cVtWW1NbMF1dXS5sZW5ndGg7eD17el86eC56X30seC56XysrKXEuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24odSwKWCl7KGEuel8hPUwtV3x8WD49USkmJmMucHVzaCh1W2Euel9dKX19KHgpKTtpZihjLmxlbmd0aCE9Wil0aHJvdyBFcnJvcigiQXNzZXJ0aW9uIGVycm9yIik7cmV0dXJuIGN9LEoucHJvdG90eXBlKS5NPWZ1bmN0aW9uKEEsdixwKXt0aGlzLnZbQV1bdl09cCx0aGlzLlhbQV1bdl09ITB9LEoucHJvdG90eXBlKS5qPWZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTix4LGYsTCxyLFYsUCxxLGMsRSxTLGEsdSxYKXtmb3IoVj0oWD1bInYiLDUsMF0sWzAsMSwyMF0pLGY9VltYWzJdXSxQPVZbWFsyXV07Zjx0aGlzLnNpemU7ZisrKXtmb3IoUT1bMCwwLDAsKEw9KHY9VltYWzJdXSwhMSkscD1WW1hbMl1dLDApLDAsMCwwXTt2PHRoaXMuc2l6ZTt2KyspdGhpc1tYWzBdXVtmXVt2XT09TD8ocCsrLHA9PVhbMV0/UCs9Si5XOnA+WFsxXSYmUCsrKToodGhpcy5pKFEscCksTHx8KFArPXRoaXMubChRKSpKLk0pLHA9VlsxXSxMPXRoaXNbWFswXV1bZl1bdl0pO1ArPXRoaXMuVyhRLEwscCkqSi5NfWZvcih4PQpWW1hbMl1dO3g8dGhpcy5zaXplO3grKyl7Zm9yKFc9VlsoWj1WW1hbTj0hMSxyPVswLDAsMCwwLDAsMCwwXSwyXV0sWClbMl1dO1o8dGhpcy5zaXplO1orKyl0aGlzW1hbMF1dW1pdW3hdPT1OPyhXKyssVz09WFsxXT9QKz1KLlc6Vz5YWzFdJiZQKyspOih0aGlzLmkocixXKSxOfHwoUCs9dGhpcy5sKHIpKkouTSksTj10aGlzW1hbMF1dW1pdW3hdLFc9VlsxXSk7UCs9dGhpcy5XKHIsTixXKSpKLk19Zm9yKHU9VltYWzJdXTt1PHRoaXMuc2l6ZS1WWzFdO3UrKylmb3IoUz1WW1hbMl1dO1M8dGhpcy5zaXplLVZbMV07UysrKUE9dGhpc1tYWzBdXVt1XVtTXSxBPT10aGlzW1hbMF1dW3VdW1MrVlsxXV0mJkE9PXRoaXNbWFswXV1bdStWWzFdXVtTXSYmQT09dGhpc1tYWzBdXVt1K1ZbMV1dW1MrVlsxXV0mJihQKz1KLkMpO2ZvcihFPWdbMTJdKDEsdGhpc1tYW2M9VltYWzJdXSwwXV0pLG49RS5uZXh0KCk7IW4uZG9uZTtuPUUubmV4dCgpKWM9bi52YWx1ZS5yZWR1Y2UoZnVuY3Rpb24oZCwKdCl7cmV0dXJuIGQrKHQ/MTowKX0sYyk7cmV0dXJuIHE9ZDAoZTcoYypWWzJdLShhPXRoaXMuc2l6ZSp0aGlzLnNpemUsYSoxMCkpL2EpLVZbMV0sUCs9cSpKLm19LEopLkM9S1swXSxKLm89ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyxFLFMsYSx1LFgsZCx0LGgpe2lmKCEoSi5BPD0oWD0oaD1bIkludmFsaWQgdmFsdWUiLChjPShxPShuPW49PT12b2lkIDA/MTpuLHE9PT12b2lkIDA/ITA6cSksYz09PXZvaWQgMCk/LTE6YywiZ2V0RGF0YSIpLChOPVs4LCJBc3NlcnRpb24gZXJyb3IiLDRdLDApXSxYPT09dm9pZCAwPzQwOlgpLG4pJiZuPD1YJiZYPD1KLmkpfHxjPC0xfHxjPjcpdGhyb3cgRXJyb3IoaFswXSk7Zm9yKFY9KFA9bixbXSk7O1ArKyl7aWYoKHU9KHQ9Si5YKHYsUCkqTltoWzJdXSx6LkEoQSxQKSksdSk8PXQpe1o9dTticmVha31pZihQPj1YKXRocm93IEVycm9yKCJEYXRhIHRvbyBsb25nIik7fWZvcih4PShXPWdbMTJdKDUsW0oudi5ocixKLnYuY1ksCkoudi5Eb10pLFcubmV4dCgpKTsheC5kb25lO3g9Vy5uZXh0KCkpRT14LnZhbHVlLHEmJlo8PUouWChFLFApKk5baFsyXV0mJih2PUUpO2ZvcihhPShwPWdbMTJdKDUsQSkscC5uZXh0KCkpOyFhLmRvbmU7YT1wLm5leHQoKSlmb3IoUT1hLnZhbHVlLGIoUS5tb2RlLkVaLE5bMl0sViksYihRLlRWLFEubW9kZS5zeShQKSxWKSxkPWdbMTJdKDksUVtoWzFdXSgpKSxmPWQubmV4dCgpOyFmLmRvbmU7Zj1kLm5leHQoKSlWLnB1c2goZi52YWx1ZSk7aWYoVi5sZW5ndGghPVopdGhyb3cgRXJyb3IoTlsxXSk7aWYoKHI9KEw9W10sSikuWCh2LFApKk5baFsyXV0sVi5sZW5ndGgpPnIpdGhyb3cgRXJyb3IoTlsxXSk7aWYoYigoYihoWzJdLGw5KE5bMl0sci1WLmxlbmd0aCksViksaClbMl0sKE5baFsyXV0tVi5sZW5ndGglTltoWzJdXSklTltoWzJdXSxWKSxWLmxlbmd0aCVOW2hbMl1dIT1oWzJdKXRocm93IEVycm9yKE5bMV0pO2ZvcihTPTIzNjtWLmxlbmd0aDxyO1NePTI1MyliKFMsTltoWzJdXSwKVik7Zm9yKDtMLmxlbmd0aCpOW2hbMl1dPFYubGVuZ3RoOylMLnB1c2goaFsyXSk7cmV0dXJuIG5ldyAoVi5mb3JFYWNoKGZ1bmN0aW9uKE0sVSl7cmV0dXJuIExbVT4+PjNdfD1NPDw3LShVJjcpfSksSikoUCx2LEwsYyl9LEouRj1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYodj4+PjghPShuPVsyODUsMCwoWj1bMiwxLCJBc3NlcnRpb24gZXJyb3IiXSw3KV0sbltaWzFdXSl8fEE+Pj44IT1uW1pbMV1dKXRocm93IEVycm9yKCJCeXRlIG91dCBvZiByYW5nZSIpO2ZvcihwPShRPW5bWlsxXV0sbilbWlswXV07cD49bltaWzFdXTtwLS0pUT1RPDxaWzFdXihRPj4+bltaWzBdXSkqblswXSxRXj0oQT4+PnAmWlsxXSkqdjtpZihRPj4+OCE9bltaWzFdXSl0aHJvdyBFcnJvcihaWzJdKTtyZXR1cm4gUX0sSikucHJvdG90eXBlLlA9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOLHgpe2lmKCEoKFc9KHg9WzEsIkFzc2VydGlvbiBlcnJvciIsMl0sWzMsMCwxMl0pLHRoaXMudmVyc2lvbik8Nykpe2Zvcih2PQooUT1XW3hbMF1dLHRoaXMpLnZlcnNpb247UTxXW3hbMl1dO1ErKyl2PXY8PHhbMF1eKHY+Pj4xMSkqNzk3MztpZigoWj10aGlzLnZlcnNpb248PFdbeFsyXV18dixaPj4+MTgpIT1XW3hbMF1dKXRocm93IEVycm9yKHhbMV0pO2ZvcihwPVdbeFswXV07cDwxODtwKyspbj10aGlzLnNpemUtMTErcCVXWzBdLEE9KFo+Pj5wJnhbMF0pIT1XW3hbMF1dLE49Yk4ocC9XWzBdKSx0aGlzLk0oTixuLEEpLHRoaXMuTShuLE4sQSl9fSxKLmk9S1sxXSxKKS5SPWZ1bmN0aW9uKEEsdixwLFEsbil7aWYoQTxKW249WyJBIiwyLChwPVs3LDEyOCwzNl0sMTApXSxuWzBdXXx8QT5KLmkpdGhyb3cgRXJyb3IoIlZlcnNpb24gbnVtYmVyIG91dCBvZiByYW5nZSIpO2lmKCh2PSgxNipBK3BbMV0pKkErNjQsQT49blsxXSkmJihRPWJOKEEvcFswXSkrblsxXSx2LT0oMjUqUS1uWzJdKSpRLTU1LEE+PXBbMF0mJih2LT1wW25bMV1dKSksISgyMDg8PXYmJnY8PTI5NjQ4KSl0aHJvdyBFcnJvcigiQXNzZXJ0aW9uIGVycm9yIik7CnJldHVybiB2fSxKLlA9ZnVuY3Rpb24oQSx2LHAsUSxuLFosVyxOKXtpZihRPShOPVsicHVzaCIsMSwwXSxbMSwwLCJEZWdyZWUgb3V0IG9mIHJhbmdlIl0pLEE8UVtOWzJdXXx8QT4yNTUpdGhyb3cgRXJyb3IoUVsyXSk7Zm9yKFo9KHA9UVtOWzFdXSxbXSk7cDxBLVFbTlsyXV07cCsrKVpbTlswXV0oUVtOWzFdXSk7Zm9yKFc9KHY9KFpbTlswXV0oUVtOWzJdXSksUVtOWzJdXSksUVtOWzFdXSk7VzxBO1crKyl7Zm9yKG49UVtOWzFdXTtuPFoubGVuZ3RoO24rKylaW25dPUouRih2LFpbbl0pLG4rUVtOWzJdXTxaLmxlbmd0aCYmKFpbbl1ePVpbbitRW05bMl1dXSk7dj1KLkYoMix2KX1yZXR1cm4gWn0sSi5BPTEsSikucHJvdG90eXBlLkE9ZnVuY3Rpb24oQSx2LHAsUSxuLFope2lmKChwPShaPVsxLDcsMF0sWzIsMCw0XSksQTxwW1pbMF1dKXx8QT5aWzFdKXRocm93IEVycm9yKCJNYXNrIHZhbHVlIG91dCBvZiByYW5nZSIpO2ZvcihuPXBbWlswXV07bjx0aGlzLnNpemU7bisrKWZvcihRPQpwW1pbMF1dO1E8dGhpcy5zaXplO1ErKyl7c3dpdGNoKEEpe2Nhc2UgcFtaWzBdXTp2PShRK24pJXBbWlsyXV09PXBbWlswXV07YnJlYWs7Y2FzZSBaWzBdOnY9biVwW1pbMl1dPT1wW1pbMF1dO2JyZWFrO2Nhc2UgcFtaWzJdXTp2PVElMz09cFtaWzBdXTticmVhaztjYXNlIDM6dj0oUStuKSUzPT1wW1pbMF1dO2JyZWFrO2Nhc2UgcFsyXTp2PShiTihRLzMpK2JOKG4vcFtaWzJdXSkpJXBbWlsyXV09PXBbWlswXV07YnJlYWs7Y2FzZSA1OnY9USpuJXBbWlsyXV0rUSpuJTM9PXBbWlswXV07YnJlYWs7Y2FzZSA2OnY9KFEqbiVwW1pbMl1dK1EqbiUzKSVwW1pbMl1dPT1wW1pbMF1dO2JyZWFrO2Nhc2UgWlsxXTp2PSgoUStuKSVwW1pbMl1dK1EqbiUzKSVwW1pbMl1dPT1wW1pbMF1dO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkFzc2VydGlvbiBlcnJvciIpO30hdGhpcy5YW25dW1FdJiZ2JiYodGhpcy52W25dW1FdPSF0aGlzLnZbbl1bUV0pfX0sSikucHJvdG90eXBlLmk9ZnVuY3Rpb24oQSwKdil7KChBWzBdPT0wJiYodis9dGhpcy5zaXplKSxBKS5wb3AoKSxBKS51bnNoaWZ0KHYpfSxKLmw9W1stMSw3LDEwLDE1LDIwLDI2LDE4LDIwLDI0LDMwLDE4LDIwLDI0LDI2LDMwLDIyLDI0LDI4LDMwLDI4LDI4LDI4LDI4LDMwLDMwLDI2LDI4LDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwLDMwXSxbLTEsMTAsMTYsMjYsMTgsMjQsMTYsMTgsMjIsMjIsMjYsMzAsMjIsMjIsMjQsMjQsMjgsMjgsMjYsMjYsMjYsMjYsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjgsMjhdLFstMSwxMywyMiwxOCwyNiwxOCwyNCwxOCwyMiwyMCwyNCwyOCwyNiwyNCwyMCwzMCwyNCwyOCwyOCwyNiwzMCwyOCwzMCwzMCwzMCwzMCwyOCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMF0sWy0xLDE3LDI4LDIyLDE2LDIyLDI4LDI2LDI2LDI0LDI4LDI0LDI4LDIyLDI0LDI0LDMwLDI4LDI4LDI2LDI4LDMwLDI0LAozMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMF1dLEoucHJvdG90eXBlKVtDWzBdXT1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYodGhpc1tBPVsyLChaPVswLDEsInZlcnNpb24iXSwzMiksMTNdLFpbMl1dPT1aWzFdKXJldHVybltdO2ZvcihuPShwPShRPWJOKHRoaXNbWlsyXV0vNykrQVtaWzBdXSxbNl0pLHRoaXMpW1pbMl1dPT1BW1pbMV1dPzI2OmQwKCh0aGlzLnNpemUtQVsyXSkvKFEqQVtaWzBdXS1BW1pbMF1dKSkqQVtaWzBdXSx2PXRoaXMuc2l6ZS03O3AubGVuZ3RoPFE7di09bilwLnNwbGljZShaWzFdLFpbMF0sdik7cmV0dXJuIHB9LEoucHJvdG90eXBlKS5vPWZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTix4KXtpZihBLmxlbmd0aCE9Yk4oSi5SKChaPVsxLDMsKHg9WyJBc3NlcnRpb24gZXJyb3IiLDIsNl0sOCldLHRoaXMudmVyc2lvbikpL1pbeFsxXV0pKXRocm93IEVycm9yKCJJbnZhbGlkIGFyZ3VtZW50Iik7Zm9yKHA9KHY9CjAsdGhpcy5zaXplKS1aWzBdO3A+PVpbMF07cC09eFsxXSlmb3IocD09eFsyXSYmKHA9NSksTj0wO048dGhpcy5zaXplO04rKylmb3IoUT0wO1E8eFsxXTtRKyspbj1wLVEsVz0ocCtaWzBdJnhbMV0pPT0wP3RoaXMuc2l6ZS1aWzBdLU46TiwhdGhpcy5YW1ddW25dJiZ2PEEubGVuZ3RoKlpbeFsxXV0mJih0aGlzLnZbV11bbl09KEFbdj4+PlpbMV1dPj4+Ny0odiY3KSZaWzBdKSE9MCx2KyspO2lmKHYhPUEubGVuZ3RoKlpbeFsxXV0pdGhyb3cgRXJyb3IoeFswXSk7fSxKLlg9ZnVuY3Rpb24oQSx2LHApe3JldHVybiBiTihKLlIoKHA9WyJDXyIsIk8iLCJsIl0sdikpLzgpLUpbcFsyXV1bQVtwWzBdXV1bdl0qSltwWzFdXVtBW3BbMF1dXVt2XX0seikuUj1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYoIXRoaXMuWC50ZXN0KChaPShuPVs0NSwyLDZdLFsidiIsImluZGV4T2YiLDFdKSxBKSkpdGhyb3cgRXJyb3IoIlN0cmluZyBjb250YWlucyB1bmVuY29kYWJsZSBjaGFyYWN0ZXJzIGluIGFscGhhbnVtZXJpYyBtb2RlIik7CmZvcih2PShwPVtdLDApO3YrbltaWzJdXTw9QS5sZW5ndGg7dis9bltaWzJdXSlRPXpbWlswXV1bWlsxXV0oQS5jaGFyQXQodikpKm5bMF0sUSs9eltaWzBdXVtaWzFdXShBLmNoYXJBdCh2K1pbMl0pKSxiKFEsMTEscCk7cmV0dXJuIHY8QS5sZW5ndGgmJmIoeltaWzBdXVtaWzFdXShBLmNoYXJBdCh2KSksblsyXSxwKSxuZXcgeih6Lk0uS0UsQS5sZW5ndGgscCl9LHouTz1mdW5jdGlvbihBLHYpe3JldHVybiBBPT0odj1bIlgiLCJXIiwiRiJdLCIiKT9bXTp0aGlzLmkudGVzdChBKT9bei5sKEEpXTp0aGlzW3ZbMF1dLnRlc3QoQSk/W3ouUihBKV06W3pbdlsyXV0oelt2WzFdXShBKSldfSx6LkY9ZnVuY3Rpb24oQSx2LHAsUSl7Zm9yKHA9KHY9Z1sxMl0oKFE9W10sMTIpLEEpLHYpLm5leHQoKTshcC5kb25lO3A9di5uZXh0KCkpYihwLnZhbHVlLDgsUSk7cmV0dXJuIG5ldyB6KHouTS5CWVRFLEEubGVuZ3RoLFEpfSxCW0NbMl1dPUoseikubD1mdW5jdGlvbihBLHYscCxRLG4sWil7aWYoIXRoaXMuaVtuPQpbMywoWj1bInRlc3QiLDEsMF0sIlN0cmluZyBjb250YWlucyBub24tbnVtZXJpYyBjaGFyYWN0ZXJzIiksMTBdLFpbMF1dKEEpKXRocm93IEVycm9yKG5bWlsxXV0pO2ZvcihwPSh2PVpbMl0sW10pO3Y8QS5sZW5ndGg7KVE9bDkoQS5sZW5ndGgtdixuW1pbMl1dKSxiKHBhcnNlSW50KEEuc3Vic3RyKHYsUSksblsyXSksUSpuW1pbMl1dK1pbMV0scCksdis9UTtyZXR1cm4gbmV3IHooei5NLmZFLEEubGVuZ3RoLHApfSx6KS5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkxfLnNsaWNlKCl9LHouaT0vXlswLTldKiQvLHouWD0vXltBLVowLTkgJCUqKy5cLzotXSokLyx6W0NbMV1dPWZ1bmN0aW9uKEEsdixwLFEsbil7Zm9yKG49WzAsInN1YnN0ciIsImNoYXJBdCJdLHA9WzIsMTYsIiUiXSxBPWVuY29kZVVSSShBKSx2PVtdLFE9blswXTtRPEEubGVuZ3RoO1ErKylBW25bMl1dKFEpIT1wWzJdP3YucHVzaChBLmNoYXJDb2RlQXQoUSkpOih2LnB1c2gocGFyc2VJbnQoQVtuWzFdXShRKwoxLHBbblswXV0pLHBbMV0pKSxRKz1wW25bMF1dKTtyZXR1cm4gdn0sei5BPWZ1bmN0aW9uKEEsdixwLFEsbixaLFcsTil7Zm9yKHA9KFo9Z1tOPVsxLDEyLDBdLFE9TlsyXSxOWzFdXSg2LEEpLFoubmV4dCgpKTshcC5kb25lO3A9Wi5uZXh0KCkpe2lmKG49KFc9cC52YWx1ZSxXLm1vZGUuc3kodikpLFcuVFY+PU5bMF08PG4pcmV0dXJuIEluZmluaXR5O1ErPTQrbitXLkxfLmxlbmd0aH1yZXR1cm4gUX0sei52PUZDKCksQi5FOT16fSh1NXx8KHU1PXt9KSksZnVuY3Rpb24oQil7KGZ1bmN0aW9uKHosSyl7ei52PShLPWZ1bmN0aW9uKEosQyl7dGhpcy5DXz0odGhpcy5KQT1DLEopfSxLLnY9bmV3IEsoMCwxKSxLLmhyPW5ldyBLKDEsMCksSy5jWT1uZXcgSygyLDMpLEsuRG89bmV3IEsoMywyKSxLKX0pKEIuRG18fChCLkRtPXt9KSl9KHU1fHwodTU9e30pKSx1NSl8fCh1NT17fSkpLGhjOCl8fHtpZDpPNUQoKX0scFI9c3IoKSxweD1uZXcgYm0oNDAwLDU4MCksZHZNPShhNygpLFhQKSgpLAprVDg9a1MoKSx0MGw9a0RNKCksZVg9KGhqKCksYjgoKSxpbykoKSxIZj0kbSgpLE1UPVVMKCksVUs9VEIoKSxVdjg9UGkoKSxNMEc9Ql8oKSxpaj0oeUIoKSx3VigpLEYzOCkoKSxiMj0oKCgoRj0oT1syMV0oNCxRTyxHRCksUU8ucHJvdG90eXBlKSxGLmhPPWZ1bmN0aW9uKEIseixLKXtLPVsiWCIsInYiLCJmb2N1cyJdLHRoaXMuSnUoKT8oQj10aGlzW0tbMV1dKT09bnVsbHx8QltLWzJdXSgpOih6PXRoaXNbS1swXV0pPT1udWxsfHx6W0tbMl1dKCl9LEYpLmF6PWZ1bmN0aW9uKCl7dGhpcy5yZXNwb25zZS5tb2JpbGVUb2tlbj10aGlzLm1vYmlsZVRva2VufSxGLndIPWZ1bmN0aW9uKEIseixLLEosQyxiKXtpZigoej1bMSwoYj1bMSw0MSwyXSwxMiksNF0sIUJ8fCFCOTgoQikpfHwhR1tiWzFdXShiWzJdLHpbYlswXV0sQikpcmV0dXJuITE7aWYoIShDPWVbNl0oOCx6WzBdLEdbYlsxXV0oMTYseltiWzBdXSxCKSksQyl8fEMubGVuZ3RoPT09MClyZXR1cm4hMTtyZXR1cm4oSz1EWzddKDc0LAozLEdbYlsxXV0oMTgseltiWzBdXSxCKSksSyYmSy5sZW5ndGghPT0wKT8oSj1nWzRdKGJbMF0seltiWzJdXSxHW2JbMV1dKDEwLHpbYlswXV0sQikpKSYmSi5sZW5ndGghPT0wPyEwOiExOiExfSxGLmlDPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBuZXcgKHo9KEs9bDkoKEI9KEo9WzQwMCwiVyIsMTgwXSx0aGlzW0pbMV1dfHxHWzQ0XSgzLDIwKSksQi5oZWlnaHQtMTk0KSxKWzBdLEIud2lkdGgpLGhZKEssMzAwKSksYm0pKHosSlsyXSt6KX0sRikuYlk9ZnVuY3Rpb24oQix6KXsodGhpcy52PSh0aGlzLlM9KHRoaXNbKChCPWtbMjJdKDQsR1szNV0uYmluZChudWxsLCh6PVswLCJYIiwiY2FsbCJdLDIpKSx7SnU6dGhpcy5KdSgpfSksR0QucHJvdG90eXBlKS5PM1t6WzJdXSh0aGlzLEIpLHopWzFdXT1CLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZHZNKVt6WzBdXSxCKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGtUOClbelswXV0sQi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHQwbClbelswXV0pLAp0aGlzLkM9Qi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFV2OClbelswXV0sdGhpcykuSD1CLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoTTBHKVt6WzBdXX0sRi5mZz1mdW5jdGlvbihCLHopeyh6PVs5MiwxMSwzMF0sdGhpcy5KdSgpKT9tWzMxXSh6WzBdLEIseVt6WzJdXS5iaW5kKG51bGwselsxXSkpOm1bMzFdKDI2LEIsT1s0N10uYmluZChudWxsLDEpKX0sRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7aWYoIXRoaXMud0goKHA9WzAsNDEsKEE9WyhKPXRoaXMsImh0dHBzOi8vcmVjYXB0Y2hhLm5ldC9xci8iKSwiQ3JPUyIsIlRvIGNvbnRpbnVlIG9uIHlvdXIgbW9iaWxlIGRldmljZSwgZW50ZXIgdGhlIGxpbmsgIl0sNjQpXSx6KSkpcmV0dXJuIGdbM10oNTgsdGhpcywibiIpLG1bMl0oMik7cmV0dXJuKCgoKGI9KCh0aGlzLkQ9KHRoaXMuZz0oMCwodGhpcy51cmw9KHY9KEM9KEs9KHRoaXMuaj1lWzZdKDEyLDEsR1twWzFdXSgxMCwxMix6KSksRClbN10oNzYsMyxHW3BbMV1dKDgsCjEyLHopKSxnWzRdKDIsNCxHW3BbMV1dKDgsMTIseikpKSxtKVszOF0ocFsyXSw1LG51bGwsR1twWzFdXSgyLDEyLHopKSxBW3BbMF1dK3RoaXMuaiksWVsxMV0oMjIsIiIsdGhpcy52LERbNDhdKDQscFswXSx0aGlzLnVybCkpLHQkKS55NSkoZnVuY3Rpb24oUSxuLFosVyxOLHgsZixMLHIsVixQLHEsYyl7aWYoISh4PShuPURbNDZdKDEsKFc9bmV3IEFEKChjPShQPVsiLyIsITAsIiciXSxbMixudWxsLCJzdWJzdHJpbmciXSksSykpLFcudi52PUMsVy52KSksVy5NKSx4KS5zdGFydHNXaXRoKERGKSl0aHJvdyBFcnJvcigiSW52YWxpZCBQdW5jdHVhbCBwcm9qZWN0IHBhdGggZG9lcyBub3Qgc3RhcnQgd2l0aCAiK0RGKyI6ICIreCk7aWYoKHE9eFtjWzJdXShERi5sZW5ndGgpLnNwbGl0KG53KCkpLHEpLmxlbmd0aCE9PTIpdGhyb3cgRXJyb3IoIkludmFsaWQgUHVuY3R1YWwgcGF0aCBoYXMgYW4gaW5jb3JyZWN0IG51bWJlciBvZiBwYXJ0czogIit4KTtpZigoTj0ocj1nWzEyXSg3LApxKSxmPXIubmV4dCgpLnZhbHVlLHIubmV4dCgpLnZhbHVlKSxmKS5zdGFydHNXaXRoKGZaKSlRPWZbY1syXV0oZloubGVuZ3RoKSxaPW5ldyB5NihkZWNvZGVVUklDb21wb25lbnQoUSkpLFJbNDNdKDgsUFsxXSxaLEtMOCgpKSxWPXtpeTpaLGZEOlosUVg6ITF9O2Vsc2V7aWYoIShMPUFhOC5nZXQoZiksTCkpdGhyb3cgRXJyb3IoIkludmFsaWQgUHVuY3R1YWwgZW52aXJvbm1lbnQ6ICciK2YrUFtjWzBdXSk7Vj1MfXJldHVybiBZWzRdKGNbMF0sY1swXSxjWzFdLFBbMF0sUFsxXSxuLHtSTzpXLlJPLFVsOk4sdkE6dm9pZCAwLGJEOlcuYkQsZHo6Vy5keixmYjpXLmZifSxWKX0sMjMpLFlqKSgpLHU1KS5EbS5VKHRoaXMudXJsKS5VTCh0aGlzLlgpLEEpWzJdK3RoaXMudXJsKyIgaW4geW91ciBtb2JpbGUgYnJvd3Nlci4iLHRoaXMpLlgudGl0bGU9Yix0aGlzKS5TJiYodGhpcy5TLnRleHRDb250ZW50PWIpLHRoaXMuSnUoKSk/KE9bOF0oNTUpPyh0aGlzLnVybD0iaW50ZW50Oi8vcmVjYXB0Y2hhLm5ldC9xci8iKwp0aGlzLmorIiNJbnRlbnQ7c2NoZW1lPWh0dHBzO2FjdGlvbj1hbmRyb2lkLmludGVudC5hY3Rpb24uVklFVztlbmQ7IixZWzExXSgyMywiIix0aGlzLnYsdGhpcy51cmwpKTooeVs4XSg1NCwiaVBvZCIpfHxIWzQ2XShwWzFdKSYmR2wubmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPnBbMF0pJiZrWzE2XSg5LDEwLCIxNi40IixtWzRdKDM3LCJrYWlvcyIsQVsxXSkpPj1wWzBdJiYhdiYmKHRoaXMudXJsPSJodHRwczovL2FwcGNsaXAuYXBwbGUuY29tL2lkP3A9Y29tLmdvb2dsZS5SZWNhcHRjaGEuVmVyaWZ5Q2xpcCZpZD0iK3RoaXMuaixZWzExXSgxOSwiIix0aGlzLnYsdGhpcy51cmwpKSxPWzE1XSgxNix0aGlzKSxSWzIyXSg0LHRoaXMsITEpLHRoaXMuQyYmdGhpcy5IJiYodGhpcy5DLnN0eWxlLmRpc3BsYXk9dEIoKSx0aGlzLkguc3R5bGUuZGlzcGxheT1hMSgpKSk6KE9bMTVdKDEsdGhpcywhMSksUlsyMl0oNSx0aGlzKSx0aGlzLkMmJnRoaXMuSCYmKHRoaXMuQy5zdHlsZS5kaXNwbGF5PQphMSgpLHRoaXMuSC5zdHlsZS5kaXNwbGF5PXRCKCkpKSwoMCx0JC55NSkoZnVuY3Rpb24oUSl7cmV0dXJuIEdbKFE9WzFFMywhMCwzM10sUSlbMl1dKDU4LFFbMV0sUVswXSwyLCExLEopfSwyNCkudGhlbihmdW5jdGlvbihRKXtnW0oubW9iaWxlVG9rZW49USwzXSg0OSxKLCJyIil9KSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZ1szXSg2MCxKLCJuIiksbVsyXSg1KX0pfSxGKS5KdT1mdW5jdGlvbihCLHope3JldHVybigoej1bMTksKEI9WyJDcmlPUyIsIk1vYmlsZSIsImlQaG9uZSJdLDYpLCJpUGFkIl0sUmImJlo4KT9aOC5tb2JpbGU6IURbOF0oMzYsIlNpbGsiLEJbMV0pJiYoRFsyMF0oMzcsImlQb2QiKXx8RFsyMF0oMyxCWzJdKXx8RFsyMF0oNSwiQW5kcm9pZCIpfHxEWzIwXSgzNSwiSUVNb2JpbGUiKSkpfHxIWzQ2XSg0MikmJkdsLm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4wfHwoRFsyMF0oMTMselsyXSl8fERbMjBdKDExLEJbMl0pKSYmIUdbMTBdKDIsIlNhZmFyaSIpJiYKIWtbMjNdKHpbMV0sQlswXSkmJiEobVsyMl0oMjkpPzA6RFsyMF0oOSwiQ29hc3QiKSkmJiFPWzM3XSgxMCwiRnhpT1MiKSYmRFsyMF0oMywiQXBwbGVXZWJLaXQiKXx8RFs4XSgzNywiU2lsayIsQlsxXSkmJiF5WzQ1XSh6WzBdLCJTaWxrIil9LEszTigpKSx1TT1uZXcgYm0oMzUwLDQxMCksdUY9KCgoKCgoKCgoKChGPSgoT1syMV0oNSxBeCxHRCksQXgpLnByb3RvdHlwZS5oTz1mdW5jdGlvbigpe2VbMzFdKDE1LCJyYy1wcmVwb3NpdGlvbmFsLWluc3RydWN0aW9ucyIsdGhpcykuZm9jdXMoKX0sQXgucHJvdG90eXBlLk8zPWZ1bmN0aW9uKEIseil7dGhpcy5DPSgoej1bInByb3RvdHlwZSIsIk8zIiw5XSxHRFt6WzBdXVt6WzFdXSkuY2FsbCh0aGlzLEIpLGVbMzFdKHpbMl0sInJjLXByZXBvc2l0aW9uYWwtcGF5bG9hZCIsdGhpcykpfSxBeC5wcm90b3R5cGUpLEYpLmZnPWZ1bmN0aW9uKEIseixLKXt6PXlbMzddKChLPVsiWCIsMTgsMF0sSylbMV0sS1syXSwyLHRoaXNbS1swXV0pLAptWzMxXSg5MCxCLFlbMzZdLmJpbmQobnVsbCwyOSkse3NvdXJjZXM6en0pfSxBeCkucHJvdG90eXBlLkNxPWZ1bmN0aW9uKEIpeygoQj1bImNhbGwiLDIzLCJyYy1wcmVwb3NpdGlvbmFsLXRhYmxvb3AtYmVnaW4iXSxHRC5wcm90b3R5cGUuQ3EpW0JbMF1dKHRoaXMpLGUpWzM2XSgzLGVbMzZdKDEyLFlbQlsxXV0oNDgsdGhpcyksZVszMV0oMTIsQlsyXSx0aGlzKSxDWixmdW5jdGlvbigpe0RbMzFdKDMxLCJub25lIil9KSxlWzMxXSgxNSwicmMtcHJlcG9zaXRpb25hbC10YWJsb29wLWVuZCIsdGhpcyksQ1osZnVuY3Rpb24oKXtEWzMxXSgzNSwibm9uZSIsWyJyYy1wcmVwb3NpdGlvbmFsLXNlbGVjdC1tb3JlIiwicmMtcHJlcG9zaXRpb25hbC12ZXJpZnktZmFpbGVkIiwicmMtcHJlcG9zaXRpb25hbC1pbnN0cnVjdGlvbnMiXSl9KX0sRikuYXo9ZnVuY3Rpb24oKXsodGhpcy5yZXNwb25zZVtCdSgpXT10aGlzLnYsdGhpcykucmVzcG9uc2VbVWYoKV09dGhpcy5IP1dLKCk6STcoKX0sCkYpLmlDPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIHo9KEs9KEo9UlszNl0oMjQsKEI9KEM9WyJDIiwiVyIsNF0sdGhpc1tDWzFdXSl8fEdbNDRdKENbMl0sMjApLHRoaXNbQ1swXV0pKSxsOShCLndpZHRoLTEwLHVNLndpZHRoKSksaFkpKEssMjgwKSxuZXcgYm0oeixKLmhlaWdodCs2MCl9LEYpLlJ6PWZ1bmN0aW9uKEIseil7cmV0dXJuKHo9WyJ2IiwoQj1bMSwicmMtcHJlcG9zaXRpb25hbC1zZWxlY3QtbW9yZSIsITBdLDMpLDBdLHlbMzddKHpbMV0selsyXSxCW3pbMl1dLHRoaXMuWCkubGVuZ3RoLXRoaXNbelswXV0ubGVuZ3RoKTx0aGlzLmo/KHRoaXMubUooQlsyXSxlWzMxXSgxMSxCWzFdLHRoaXMpKSxCWzJdKTohMX0sRikubTI9ZnVuY3Rpb24oQix6LEspe3JldHVybihLPVsicmMtcHJlcG9zaXRpb25hbC1zZWxlY3QtbW9yZSIsInJjLXByZXBvc2l0aW9uYWwtdmVyaWZ5LWZhaWxlZCJdLCFCJiZ6fHxLLmZvckVhY2goZnVuY3Rpb24oSixDKXsoQz1lWzMxXSgxNCxKLAp0aGlzKSxDKSE9eiYmdGhpcy5tSighMSxDKX0sdGhpcykseik/R0QucHJvdG90eXBlLm0yLmNhbGwodGhpcyxCLHopOiExfSxGKS5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybigoKGI9KCgoQz0odGhpcy5YPVJbNDhdKDY5LCh2PSh0aGlzLnY9W10sWzIxLDk1LChBPVsuNSwwLDddLEo9dGhpcywyKV0pLHopLGgxLEFbdlsyXV0sbCksbVszMV0odlsyXSwxLHopKSkmJkhbdlswXV0oMzksQywzKSYmKHRoaXMuaj1IW3ZbMF1dKDE1LEMsMykpLG0pWzMxXSh2WzFdLHRoaXMuQyxEWzQ5XS5iaW5kKG51bGwsMTApLHt0ZXh0OnlbMzddKHZbMl0sQVsxXSwxLHRoaXMuWCl9KSxtW3ZbMl1dKDkyLCJyYy1wcmVwb3NpdGlvbmFsLWluc3RydWN0aW9ucyIpKSx0aGlzKS5IPUFlKCk8QVswXSxSWzM2XSh2WzBdLGIsdGhpcy5IPyJTZWxlY3QgdGhlIHBocmFzZXMgdGhhdCBhcmUgaW1wcm9wZXJseSBmb3JtZWQ6IjoiU2VsZWN0IHRoZSBwaHJhc2VzIHRoYXQgc291bmQgaW5jb3JyZWN0OiIpLAp0aGlzLm1KKCExKSxrKVs4XSg4LHRoaXMsZnVuY3Rpb24ocCxRKXsoa1s0Nl0oNTYsKFE9WzMxLDI3LCEocD1bMCwidGQiLCJyYy1wcmVwb3NpdGlvbmFsLXZlcmlmeS1mYWlsZWQiXSwwKV0sImgiKSxKLEouaUMoKSksTylbUVsxXV0oMjAscFswXSxwWzFdLG51bGwsIi4iLEopLEsmJkoubUooUVsyXSxlW1FbMF1dKDE1LHBbMl0sSikpfSksbSlbdlsyXV0oMyl9LEYuYlk9ZnVuY3Rpb24oQil7KHRoaXNbKEI9WyJjYWxsIiwicHJvdG90eXBlIiwiTSJdLEdEW0JbMV1dLmJZW0JbMF1dKHRoaXMpLEIpWzJdXT1rWzIyXSg1LERbMzNdLmJpbmQobnVsbCwxKSksdGhpcykuTzModGhpcy51KCkpfSxPWzIxXSg0LGF4LEdEKSxheC5wcm90b3R5cGUuaEw9ZnVuY3Rpb24oKXtyZXR1cm4gbVsyXSg1KX0sYXgpLnByb3RvdHlwZS5iWT1mdW5jdGlvbihCKXsodGhpcy5NPSgoQj1bMjIsMTksImNhbGwiXSxHRCkucHJvdG90eXBlLmJZW0JbMl1dKHRoaXMpLGtbQlswXV0oNjgsZ1tCWzFdXS5iaW5kKG51bGwsCjU4KSkpLHRoaXMpLk8zKHRoaXMudSgpKX0sYXgucHJvdG90eXBlKS5hej1mdW5jdGlvbihCLHopeyhCPXRoaXNbej1bIiIsInJlc3BvbnNlIiwiVyJdLHRoaXNbelsxXV1bQnUoKV09elswXSx6WzJdXSkmJih0aGlzW3pbMV1dW2tEKCldPVlbN10oODEselswXSwyNTUselswXStCLndpZHRoK0IuaGVpZ2h0KSl9LGF4KS5wcm90b3R5cGUuVTA9ZnVuY3Rpb24oQil7QiYmSFsxOF0oNjYsITEsdGhpcyl9LE5CKCkpO2Z1bmN0aW9uIFBvKEIseixLLEope3JldHVybiBEWzIxXS5jYWxsKHRoaXMsMjIsQix6LEssSil9CnZhciBueD0oKCgoKEhbMjRdKDg5LFBvLFpLKSxQbykucHJvdG90eXBlLkhoPWZ1bmN0aW9uKEIseil7QiE9dGhpc1t6PVsibyIsInUiLCJiQyJdLHpbMF1dJiYodGhpc1t6WzBdXT1CLHRoaXMuWFt6WzJdXSh0aGlzW3pbMV1dKCksdGhpc1t6WzBdXSkpfSxQbykucHJvdG90eXBlLnY9ZnVuY3Rpb24oQix6LEspeyhLPVsicHJldmVudERlZmF1bHQiLDQ4LCJIaCJdLEIudigpLHo9dGhpcy5vP0o5OkthLHRoaXMuaXNFbmFibGVkKCkmJiFCLnRhcmdldC5ocmVmKSYmZ1szXSg1MCx0aGlzLHopJiYoQltLWzBdXSgpLHRoaXNbS1syXV0odGhpcy5vPyExOiEwKSxnWzNdKEtbMV0sdGhpcyxqRCkpfSxQby5wcm90b3R5cGUpLklUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubz09MX0sUG8ucHJvdG90eXBlKS5IbD1mdW5jdGlvbihCKXtyZXR1cm4gQi5rZXlDb2RlPT0zMiYmKHRoaXMuaihCKSx0aGlzLnYoQikpLCExfSxmdW5jdGlvbigpe3JldHVybiBIWzQzXS5jYWxsKHRoaXMsMjApfSksd244PQooKCgoUG8ucHJvdG90eXBlLkNxPWZ1bmN0aW9uKEIseil7KCh6PVs1MywiQ3EiLCJ2Il0sUG8uWSlbelsxXV0uY2FsbCh0aGlzKSx0aGlzKS5nJiYoQj1ZWzIzXSh6WzBdLHRoaXMpLGVbMzZdKDgsQix0aGlzLnUoKSx5Ryx0aGlzW3pbMl1dKSl9LEhbMjRdKDQ5LG54LE5RKSxlWzI0XSg1OCxueCksbngucHJvdG90eXBlKS5YcD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuKEIubz0oKEM9KHo9bnhbSj1bITAsITEsbnVsbF0sYj1bIlkiLDE2LDJdLGJbMF1dLlhwLmNhbGwodGhpcyxCLHopLGUpWzFdKDc2LHopLEs9SlsxXSxZKVs4XShiWzFdLEMsT1s0M10oODIsSltiWzJdXSx0aGlzLEpbYlsyXV0pKT9LPUpbYlsyXV06WVs4XSgyMCxDLE9bNDNdKDg2LEpbYlsyXV0sdGhpcyxKWzBdKSk/Sz1KWzBdOllbOF0oMjAsQyxPWzQzXSg4NyxKW2JbMl1dLHRoaXMsSlsxXSkpJiYoSz1KWzFdKSxLKSxPKVsxXSgzMixmNix6LGtbMjBdKGJbMV0sSlswXSxKW2JbMl1dLEspKSx6fSxueC5wcm90b3R5cGUuTXU9CmZ1bmN0aW9uKEIseixLKXtyZXR1cm4oej1CLmxbKEs9WyJNIiw0LCJqb2luIl0sSylbMF1dKHJFLGcwW0tbMV1dKDE5LCItb3BlbiIsQix0aGlzKVtLWzJdXShvOSgpKSksdGhpcykuYkMoeixCLm8pLHp9LG54KS5wcm90b3R5cGUuV2g9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1jaGVja2JveCJ9LG54LnByb3RvdHlwZS5iQz1mdW5jdGlvbihCLHosSyxKKXtKPVs0MywxOSxudWxsXSxCJiYoSz1PW0pbMF1dKDg0LEpbMl0sdGhpcyx6KSxlWzEwXShKWzFdLEIsSyl8fChnMFs2XSgzOCxmdW5jdGlvbihDLGIpeyhiPU9bNDNdKDg1LG51bGwsdGhpcyxDKSxHKVszNV0oMjQsQixiPT1LLGIpfSx4Qyx0aGlzKSxPWzFdKDE3LGY2LEIsa1syMF0oSlsxXSwhMCxKWzJdLHopKSkpfSxueC5wcm90b3R5cGUuY2w9ZnVuY3Rpb24oKXtyZXR1cm4gYm59LFIpWzQ1XSgxMSwiZ29vZy1jaGVja2JveCIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFBvfSksZVszNF0oMTcsWyIiXSkpLEhvPURvKCksYVM9KCgoKCgoRj0KKE9bMjFdKDYsdkwsR0QpLHZMKS5wcm90b3R5cGUsRi5Sej1mdW5jdGlvbihCKXtyZXR1cm4gUlsyXSgoQj1bInYiLCExLDMyXSxCKVsyXSx0aGlzW0JbMF1dLmdldFZhbHVlKCkpPyhlWzMxXSgxMiwicmMtMmZhLWluc3RydWN0aW9ucyIsdGhpcykuZm9jdXMoKSwhMCk6QlsxXX0sRikubUo9ZnVuY3Rpb24oKXt9LEYuTzM9ZnVuY3Rpb24oKXt0aGlzLkg9ZVszMV0oMTMsInJjLTJmYS1wYXlsb2FkIix0aGlzKX0sRi5oTD1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4pe2lmKCh2PShwPVsicmMtMmZhLXJlc3BvbnNlLWZpZWxkIiw1LCEwXSxuPShKPXRoaXMsWyJ2IiwyLDE0XSksei5hdSgpKSx6LnMzKCkpPT0xMClyZXR1cm4gdGhpcy5nPXouZEgoKSxrWzhdKDQzLHRoaXMsZnVuY3Rpb24oKXtnWzNdKDQ4LEosInMiKX0pLG1bblsxXV0oNCk7cmV0dXJuKEM9KFE9KHRoaXNbdGhpc1t0aGlzWyhiPVJbNDhdKDczLHYsa0gscFsxXSksYiE9bnVsbCYmKEE9Uls0OF0oMzIsNyxudWxsLApiKXx8bmV3IGVXKHduOFswXSksWVs5XShuWzFdLCIuIixudWxsLCIiLDksdGhpcy5ILEEpKSxtKVszMV0oODksdGhpcy5ILGdbMzldLmJpbmQobnVsbCwxMCkse2lkZW50aWZpZXI6WVszNF0oNiwxLHYpLEsxOkssTDE6RFsxOF0oNDUsZVszMl0oNjAsdiw0KSksY0Q6bVsxXSgyMCx2LDcpPT1uWzFdPyJwaG9uZSI6ImVtYWlsIn0pLGtbNDZdKDYwLCJoIix0aGlzLHRoaXMuaUMoKSxwW25bMV1dKSxuWzBdXS5yZW5kZXIoZVszMV0oblsyXSxwWzBdLHRoaXMpKSxuWzBdXS51KCkuc2V0QXR0cmlidXRlKGxwKCkseVszM10oblsyXSxuWzFdLHYpKSxuWzBdXS5jbGVhcigpLEhbMTZdKG5bMl0scFtuWzFdXSx0aGlzW25bMF1dKSxlWzMxXSgxMywicmMtMmZhLXN1Ym1pdC1idXR0b24taG9sZGVyIix0aGlzKSksZVszMV0oMTIsInJjLTJmYS1jYW5jZWwtYnV0dG9uLWhvbGRlciIsdGhpcykpLHRoaXMuWCkucmVuZGVyKFEpLHRoaXMuRC5yZW5kZXIoQyksZVszNl0oMTIsWVsyM10oNTUsdGhpcyksCnRoaXNbblswXV0udSgpLFA2bCxmdW5jdGlvbihaKXtKW1o9WyJ2IiwiWCIsITFdLFpbMF1dLmdldFZhbHVlKCkubGVuZ3RoPT15WzMzXSgxMiwyLHYpP0pbWlsxXV0uZ2IoITApOkpbWlsxXV0uZ2IoWlsyXSl9KSxtW25bMV1dKDcpfSxGLkNxPWZ1bmN0aW9uKEIseil7KCgoKChHRC5wcm90b3R5cGUuQ3EuY2FsbCgoQj0oej1bMTEsInJjLTJmYS10YWJsb29wLWVuZCIsInJjLTJmYS10YWJsb29wLWJlZ2luIl0sdGhpcyksdGhpcykpLGUpWzM2XSg3LGVbMzZdKDMsWVsyM10oNTQsdGhpcyksbVsyXSg5NSx6WzJdKSxDWixmdW5jdGlvbigpe0RbMzFdKDM0LCJub25lIil9KSxtWzJdKDkxLHpbMV0pLENaLGZ1bmN0aW9uKCl7RFszMV0oMzAsIm5vbmUiLFsicmMtMmZhLWVycm9yLW1lc3NhZ2UiLCJyYy0yZmEtaW5zdHJ1Y3Rpb25zIl0pfSksbSlbNDBdKDgsdGhpcy5DLGRvY3VtZW50KSxlWzM2XSg3LFlbMjNdKDUwLHRoaXMpLHRoaXMuQyxNcix0aGlzLkV5KSx0aGlzLlgpLmdiKCExKSwKZSlbMzZdKHpbMF0sWVsyM10oNDgsdGhpcyksdGhpcy5YLFR3LGZ1bmN0aW9uKEspe0IuWC5nYigoSz1bITEsInQiLDE4XSxLWzBdKSksSFtLWzJdXSgyLEtbMF0sQixLWzFdKX0pLGUpWzM2XSgxLFlbMjNdKDU1LHRoaXMpLHRoaXMuRCxUdyxmdW5jdGlvbigpe3JldHVybiBnWzNdKDUxLEIsImwiKX0pfSxGKS5jej1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd8fCIifSxGKS5oTz1mdW5jdGlvbihCLHope0I9ZVsoej1bInJjLTJmYS1lcnJvci1tZXNzYWdlIiwxMSwzMV0seilbMl1dKDE0LHpbMF0sdGhpcyl8fGVbelsyXV0oelsxXSwicmMtMmZhLWluc3RydWN0aW9ucyIsdGhpcyksIUJ8fGZsJiZrWzE2XSg0MSwxMCwxMCxxZik+PTB8fEIuZm9jdXMoKX0sRikubmc9ZnVuY3Rpb24oKXt9LEYuYXo9ZnVuY3Rpb24oQil7dGhpc1tCPVsidiIsImoiLCJyZXNwb25zZSJdLHRoaXNbQlsyXV1bSDFaKCldPXRoaXNbQlswXV0uZ2V0VmFsdWUoKSxCWzJdXVtMTCgpXT10aGlzW0JbMV1dLklUKCksCkhbMTZdKDEyLCExLHRoaXNbQlswXV0pfSxGLkV5PWZ1bmN0aW9uKEIpe3JldHVybiBtWzI3XS5jYWxsKHRoaXMsOSxCKX0sRi5pQz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlc/bmV3IGJtKHRoaXMuVy53aWR0aCx0aGlzLlcuaGVpZ2h0KTpuZXcgYm0oMCwwKX0sRikuYlk9ZnVuY3Rpb24oQil7dGhpc1tHRFtCPVtudWxsLCJNIiwicHJvdG90eXBlIl0sQlsyXV0uYlkuY2FsbCh0aGlzKSxCWzFdXT1rWzIyXSg1LGcwWzZdLmJpbmQoQlswXSw4KSksdGhpcy5PMyh0aGlzLnUoKSl9LG5ldyBibSgzMDIsNDIyKSksaHI9KCgoKE9bMjFdKDUsVkEsSjMpLFZBLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oQix6LEssSixDLGIsQSl7KChDPShiPShBPVswLDE2LDY4XSxrKVsyMl0oQVsyXSxrWzldLmJpbmQobnVsbCw3Mikse0dROnosUG86bER9KSxZWzM1XSg0MCx5WzI2XSg1NixVeixiKVtBWzBdXSxxMyksSWdbSl0pLGUpWzE0XSgyNCwibnVtYmVyIixiLEMpLHRoaXMuaSkuYXBwZW5kQ2hpbGQoYiksClJbMTRdKDMwLCIiLDUsSyx0aGlzLGdbMjZdKEFbMV0sMSxiKSxCLEMpfSxWQSkucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSxWQS5wcm90b3R5cGUpLks9ZnVuY3Rpb24oQix6LEssSixDKXsoKCgoQz1bMzUsKEo9WyJkaXNwbGF5IiwwLCJibG9jayJdLDEpLDVdLEQpWzddKENbMl0sbnVsbCx0aGlzKSx0aGlzKS5YPSRyLEs9a1syMl0oMzYsbVszMl0uYmluZChudWxsLDMpLHtocTplWzQ2XShDWzFdLEIpLEdROnosUG86bER9KSxZW0NbMF1dKDMyLHlbMjZdKDUwLGJZLEspW0pbQ1sxXV1dLHt3aWR0aDphUy53aWR0aCsicHgiLGhlaWdodDphUy5oZWlnaHQrInB4In0pLFlbQ1swXV0oMzIseVsyNl0oNTAsc2ksSylbSltDWzFdXV0seXkzKSxZKVtDWzBdXSgxNix5WzI2XSg0OCxVeixLKVtKW0NbMV1dXSxxMyksWVtDWzBdXSg0OCx5WzI2XSg1NCxVeixLKVtKW0NbMV1dXSxKWzBdLEpbMl0pLHRoaXMpLmkuYXBwZW5kQ2hpbGQoSyl9LFZBLnByb3RvdHlwZSkuTz0KZnVuY3Rpb24oQix6LEssSil7KEs9aFkoZVs0MF0oMTQsMCwoSj1bInByb3RvdHlwZSIsIk8iLCh6PXo9PT12b2lkIDA/ITE6eiwzMyldLHRoaXMpKS53aWR0aC1lWzM2XShKWzJdLC41LHRoaXMpLngsZVszNl0oMzQsLjUsdGhpcykueCksQik/SjNbSlswXV1bSlsxXV0uY2FsbCh0aGlzLEIseik6Sz5JZ1tYTSgpXS53aWR0aCoxLjU/SjNbSlswXV1bSlsxXV0uY2FsbCh0aGlzLEpmLHopOkozW0pbMF1dW0pbMV1dLmNhbGwodGhpcyx2b2lkIDAseil9LHFqKCkpLGRqPUUkKCksSTFZPWpDKCksQ0s9dEIoKSxrST14cVkoKSxGcXg9bWcoKSx0cj0oal9bZGpdPXtkaXNwbGF5OnROKCksdHJhbnNpdGlvbjpHVSgpLHBvc2l0aW9uOmJVKCksYm90dG9tOkFPKCkscmlnaHQ6a0ksImJveC1zaGFkb3ciOktsKCksImJvcmRlci1yYWRpdXMiOlpSKCksb3ZlcmZsb3c6dkQoKX0sal9baHJdPXtkaXNwbGF5OnROKCksdHJhbnNpdGlvbjpEbVooKSxwb3NpdGlvbjpiVSgpLGJvdHRvbTpBTygpLGxlZnQ6a0ksCiJib3gtc2hhZG93IjpLbCgpLCJib3JkZXItcmFkaXVzIjpaUigpLG92ZXJmbG93OnZEKCl9LGpfW0kxWV09eyJib3gtc2hhZG93IjpLbCgpfSxqX1tDS109e3Bvc2l0aW9uOmJVKCksdmlzaWJpbGl0eTp2RCgpfSxqXyksdmI9W2hyLGRqXSxCQkQ9KCgoKE9bMjFdKDIsUmksSjMpLFJpKS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKEIseixLLEosQyxiLEEpeygoKEM9KCgodGhpcy5zdHlsZT10ci5oYXNPd25Qcm9wZXJ0eSgoYj1bMSwibnVtYmVyIiw1XSxBPVs1MiwiZyIsNjBdLHRoaXNbQVsxXV0pKT90aGlzW0FbMV1dOmRqLFkpWzhdKDIyLHZiLHRoaXMuc3R5bGUpJiZEWzE3XSgzMiwwKSYmKHRoaXMuc3R5bGU9Q0spLHRoaXMpLk09a1syMl0oMzYseVs0NF0uYmluZChudWxsLDEpLHtHUTp6LFBvOmxELHN0eWxlOnRoaXMuc3R5bGV9KSxZWzM1XSg0OCx5WzI2XShBWzBdLFV6LHRoaXMuTSlbMF0scTMpLElnW0pdKSxlKVsxNF0oMjUsYlsxXSx0aGlzLk0sQyksdGhpcykuaS5hcHBlbmRDaGlsZCh0aGlzLk0pLApSWzE0XSgzMSwiIixiWzJdLEssdGhpcyxnWzI2XSgxNyxiWzBdLHRoaXMuTSksQixDKSxPWzExXShBWzJdLHRoaXMuTSwiZGlzcGxheSIpPT0ibm9uZSImJihZWzM1XSgxNix0aGlzLk0sdHJbQ0tdKSx0aGlzLnN0eWxlPWRqKSxZKVszNV0oMTYsdGhpcy5NLHRyW3RoaXMuc3R5bGVdKX0sUmkpLnByb3RvdHlwZS5LPWZ1bmN0aW9uKEIseixLLEosQyl7dGhpc1soSj0odGhpc1tEWzddKDQsbnVsbCwoQz1bMzIsIlgiLCJpIl0sdGhpcykpLENbMV1dPSRyLGspWzIyXSg0LGdbMzBdLmJpbmQobnVsbCxDWzBdKSx7RUI6S30pLEMpWzJdXS5hcHBlbmRDaGlsZChKKX0sUmkucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfSxPKVsyMV0oMixIZCx3RSksQkJEfHx7aWQ6THYoKX0pLGNjPUVycm9yKCJUaW1lb3V0IiksUlk9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4geVsyN10uY2FsbCh0aGlzLDIsSixDLEsseixCKX0sdDM9dm0oKSxDeCxQST0hMSx3NCxYMj0hMSwkaywKdUw9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcXIoQix6LEssSixDKXtyZXR1cm4gSFsyN10uY2FsbCh0aGlzLDgsQix6LEssSixDKX1mdW5jdGlvbiBpNihCLHosSyxKLEMsYixBLHYscCxRKXtyZXR1cm4gUls2XS5jYWxsKHRoaXMsNCxCLHosSyxKLEMsYixBLHYscCxRKX0KdmFyICRwPUxPKCksdDQ9ZWIoKSxKUj1LelooKSxxTD1mTygpLEhQPWFKKCksZWQ9QTcoKSxBUj1pZygpLEM2PXhhKCksSzY9SXYoKSxiSz1XOSgpLFRrPXZCKCksVUE9a3EoKSxZZz0oKE5fLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSl7aWYodGhpcy5NPD0oUT1bMSwxMDEzOTA0MjIzLCh6PVswLDMsNDI5NDk2NzI5Nl0sMTMpXSx6WzBdKSlyZXR1cm4hMTtmb3Iodj0oSz0ocD1lNyhZWzRdKDU2LChDPSExLEIpKSksSFs0OF0oMyxwLFFbMV0sMTY2NDUyNSx6WzJdKSkselswXSk7djxRWzJdO3YrKylKPWJOKEsoKSp6WzJdKSUyMjQ4MCxBPUo+PnpbUVswXV0sYj10aGlzLnZbQV0sdGhpcy52W0FdfD1RWzBdPDwoSiY3KSxiIT09dGhpcy52W0FdJiYoQz0hMCk7cmV0dXJuIShDJiZ0aGlzLk0tLSwwKX0sTl8ucHJvdG90eXBlKS50b1N0cmluZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWil7Zm9yKEs9KEM9KG49KFE9WzIsMSwzXSxBPXRoaXMudi5ieXRlTGVuZ3RoLApCPSIiLFo9WzEwMDgsMCwyNTgwNDhdLEElUVsyXSksWlsxXSksQS1uKTtDPEs7Qys9UVsyXSlwPXRoaXMudltDXTw8MTZ8dGhpcy52W0MrUVsxXV08PDh8dGhpcy52W0MrUVtaWzFdXV0sej0ocCYxNjUxNTA3Mik+PjE4LEo9KHAmWlsyXSk+PjEyLGI9cCY2Myx2PShwJjQwMzIpPj42LEIrPVVBW3pdK1VBW0pdK1VBW3ZdK1VBW2JdO3JldHVybiBuPT1RWzFdPyhwPXRoaXMudltLXSxCKz1VQVsocCYyNTIpPj5RW1pbMV1dXStVQVsocCZRWzJdKTw8NF0pOm49PVFbWlsxXV0mJihwPXRoaXMudltLXTw8OHx0aGlzLnZbSytRWzFdXSxCKz1VQVsocCY2NDUxMik+PjEwXStVQVsocCZaWzBdKT4+NF0rVUFbKHAmMTUpPDxRW1pbMV1dXSksdGhpcy5YK0J9LFFzKSgpLEh6PW1nKCksV2M9bmV3IE1hcChbWzAsIm5vLWVycm9yIl0sWzIsImNoYWxsZW5nZS1leHBpcmVkIl0sWzMsImludmFsaWQtcmVxdWVzdC10b2tlbiJdLFs0LCJpbnZhbGlkLXBpbiJdLFs1LCJwaW4tbWlzbWF0Y2giXSxbNiwKImF0dGVtcHRzLWV4aGF1c3RlZCJdLFsxMCwiYWJvcnRlZCJdXSksczgwPShEZi5wcm90b3R5cGUud0g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5NfSxzODB8fHtpZDpPbygpfSksQVk9eVAoKSxOTT1jZigpLERHPXVtKCksTU89ancoKSxVaT1XQygpLHd3PXdCKCksQkU9eVcoKSxJSD1xNigpLEZHPWNpKCksa2k9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsdHo9T2JqZWN0LmRlZmluZVByb3BlcnR5LE01PU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFVwPVByb21pc2UucmVzb2x2ZSgpLEhFPWVwKCksRE89bmV3ICh4eS5wcm90b3R5cGUuSz1SWzIwXSgyLCgoKCh4eS5wcm90b3R5cGUubFk9ZnVuY3Rpb24oQix6LEspe3RoaXNbej0oSz1bIkYiLDQ4LDk2XSxPW0tbMV1dKEtbMl0sdGhpcykpLEI9T1tLWzFdXSgzMSx0aGlzKSxLWzBdXT90aGlzW0tbMF1dW3pdPUI6RFsxMV0oMilbel09Qn0sKChGPSgoKCgoKCgoeHkucHJvdG90eXBlLlcxPWZ1bmN0aW9uKCl7dGhpcy5TPU9bNDhdKDMxLAp0aGlzKX0sKCgoKEY9eHkucHJvdG90eXBlLEYpLmRpc3Bvc2U9ZnVuY3Rpb24oQix6LEssSil7Zm9yKEs9KEo9WzMwLDgwLDEyXSwyNCk7SyE9MjspSz09SlsxXT8oSFszNF0oSlsyXSwxLHRoaXMsei52YWx1ZSksSz01NSk6Sz09SlswXT9LPTc2Oks9PTU1Pyh6PUIubmV4dCgpLEs9NzYpOks9PTQ/KHRoaXMuQS5sZW5ndGg9MCxLPTIpOks9PTI3PyhCPWdbSlsyXV0oNSx0aGlzLkEpLHo9Qi5uZXh0KCksSz1KWzBdKTpLPT03Nj9LPXouZG9uZT80OkpbMV06Sz09MjQmJihLPXRoaXMuQS5sZW5ndGg+MD8yNzoyKX0sRi5HWj1mdW5jdGlvbihCLHope3JldHVybiBHWzIzXS5jYWxsKHRoaXMsMyxCLHopfSx4eS5wcm90b3R5cGUud2I9ZnVuY3Rpb24oQix6KXtIWzM0XSgxNSwxLHRoaXMsbmV3IHdGKEcyLmFwcGx5KDIsYXJndW1lbnRzKSxCLG51bGwseiwxKSl9LEYuZVg9ZnVuY3Rpb24oQix6LEssSixDKXtyZXR1cm4gWVs0OV0uY2FsbCh0aGlzLDEsQix6LEssSixDKX0sRikubno9ZnVuY3Rpb24oQiwKeixLLEosQyl7cmV0dXJuIG1bMjhdLmNhbGwodGhpcyw0MixCLHosSyxKLEMpfSxGKS5TWD1mdW5jdGlvbihCLHosSyl7cmV0dXJuIE9bMjddLmNhbGwodGhpcywxLEIseixLKX0sRi5SYj1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gSFsyXS5jYWxsKHRoaXMsNSxCLHosSyxKKX0sRikuWjI9ZnVuY3Rpb24oKXtyZXR1cm4gT1swXS5jYWxsKHRoaXMsNDIpfSxGKS5GWD1mdW5jdGlvbihCLHope3JldHVybiBlWzM5XS5jYWxsKHRoaXMsMTQsQix6KX0sRikuTGk9ZnVuY3Rpb24oKXtyZXR1cm4gZ1s0NF0uY2FsbCh0aGlzLDQ4KX0sRi5iUD1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIE9bMjJdLmNhbGwodGhpcyw0LEIseixLLEosQyxiKX0sRikuZ3Q9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMKXtyZXR1cm4gRFsxMF0uY2FsbCh0aGlzLDcwLEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl9LEYuc1o9ZnVuY3Rpb24oQix6KXtyZXR1cm4geVsyMV0uY2FsbCh0aGlzLAo0NCxCLHopfSx4eS5wcm90b3R5cGUuSkw9ZnVuY3Rpb24oQix6LEssSil7KEI9KEs9KEo9Wzk2LDQ4LDY0XSxPKVtKWzFdXShKWzJdLHRoaXMpLHo9T1tKWzFdXShKWzBdLHRoaXMpLE9bSlsxXV0oSlswXSx0aGlzKSksSylbel09Qn0seHkucHJvdG90eXBlLm5xPWZ1bmN0aW9uKEIseil7cmV0dXJuKEI9a1t6PVszNCwxMCwyNl0sMTVdKHpbMF0sdGhpcy52KSxIKVt6WzJdXSgyMCx6WzFdLDMxLHRoaXMudixCLCExKX0sRi5FTD1mdW5jdGlvbihCLHosSyl7cmV0dXJuIFlbMjhdLmNhbGwodGhpcywyNSxCLHosSyl9LEYuTlU9KHh5LnByb3RvdHlwZS5BTD1mdW5jdGlvbihCLHosSyxKLEMsYixBKXsoSj0oQz0oej0oQj0oYj0oQT1bNjYsNjcsNDhdLFJbOF0oNjIsdGhpcykpLE9bQVsyXV0oNjMsdGhpcykpLEs9T1tBWzJdXSg2NCx0aGlzKSxPW0FbMl1dKDMyLHRoaXMpKSxPW0FbMl1dKDMyLHRoaXMpKSxSWzIzXShBWzBdLEssUlsyM10oQVsxXSxLLEIpK0spKSx0aGlzLnhKKVtiXT0KZnVuY3Rpb24odil7cmV0dXJuIHYrKEo9UlsyM10oNjgsSyx6KkorQyksSil9fSxmdW5jdGlvbigpe3JldHVybiBnWzQ2XS5jYWxsKHRoaXMsOSl9KSxGKS51UD1mdW5jdGlvbihCLHope3JldHVybiBHWzldLmNhbGwodGhpcywxNCxCLHopfSxGKS55dD1mdW5jdGlvbihCLHosSyxKKXtyZXR1cm4gZzBbNV0uY2FsbCh0aGlzLDMwLEIseixLLEopfSxGKS5uQj1mdW5jdGlvbihCKXtyZXR1cm4gbVszMF0uY2FsbCh0aGlzLDYwLEIpfSxGLmhBPWZ1bmN0aW9uKEIseil7cmV0dXJuIEhbMzhdLmNhbGwodGhpcywxLEIseil9LEYucHo9ZnVuY3Rpb24oQix6LEssSil7cmV0dXJuIGVbNl0uY2FsbCh0aGlzLDQxLEIseixLLEopfSxGKS5IZD1mdW5jdGlvbihCKXtyZXR1cm4gbVswXS5jYWxsKHRoaXMsMTYsQil9LHh5LnByb3RvdHlwZSksRi5vYj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIGtbMjVdLmNhbGwodGhpcyw5LEIseixLLEosQyxiKX0sRikudEE9ZnVuY3Rpb24oKXtyZXR1cm4gR1s0MV0uY2FsbCh0aGlzLAoyOCl9LHh5LnByb3RvdHlwZS5wcT1mdW5jdGlvbihCKXsodGhpc1tCPVsiWCIsInYiLCJPIl0sQlsyXV09dGhpc1tCWzFdXVtCWzFdXSx0aGlzW0JbMV1dKVtCWzFdXT10aGlzW0JbMV1dW0JbMF1dfSxGLnZkPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4ga1sxNl0uY2FsbCh0aGlzLDIsQix6LEspfSxGLlpPPWZ1bmN0aW9uKEIseixLKXtyZXR1cm4gSFsxMV0uY2FsbCh0aGlzLDMyLEIseixLKX0sRi5kZj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBEWzQ2XS5jYWxsKHRoaXMsNixCLHosSyxKLEMpfSxGKS5sUD1mdW5jdGlvbihCLHope3JldHVybiBrWzMzXS5jYWxsKHRoaXMsNSxCLHopfSxGLk13PWZ1bmN0aW9uKEIseil7cmV0dXJuIFlbMTBdLmNhbGwodGhpcywyNCxCLHopfSxGKS5reD1mdW5jdGlvbigpe3JldHVybiBtWzExXS5jYWxsKHRoaXMsNyl9LEY9eHkucHJvdG90eXBlLEYpLmFiPWZ1bmN0aW9uKEIseixLLEosQyxiKXtyZXR1cm4gbVs0Nl0uY2FsbCh0aGlzLDgsQiwKeixLLEosQyxiKX0sRi5wcj1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBIWzIwXS5jYWxsKHRoaXMsMixCLHosSyxKLEMpfSxGLmlQPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7cmV0dXJuIGVbMTVdLmNhbGwodGhpcywxMixCLHosSyxKLEMsYixBLHYscCxRLG4pfSxGLkJ6PWZ1bmN0aW9uKCl7cmV0dXJuIG1bMV0uY2FsbCh0aGlzLDI1KX0sRikuWXc9KHh5LnByb3RvdHlwZS5rSj1mdW5jdGlvbihCKXsoQj1SWzhdKDYzLHRoaXMpLHRoaXMueEopW0JdPXRoaXMuUCsoWWooKS10aGlzLmkpfSxmdW5jdGlvbihCLHosSyl7cmV0dXJuIGtbMTldLmNhbGwodGhpcyw0LEIseixLKX0pLEYuV2Q9ZnVuY3Rpb24oQix6LEspe3JldHVybiBHWzQxXS5jYWxsKHRoaXMsNCxCLHosSyl9LEYuazk9ZnVuY3Rpb24oQix6KXtyZXR1cm4gT1sxMl0uY2FsbCh0aGlzLDgsQix6KX0sRi5BWT1mdW5jdGlvbihCLHosSyxKLEMpe3JldHVybiBrWzddLmNhbGwodGhpcyw0MCxCLHosSyxKLApDKX0sRi5Jaj1mdW5jdGlvbihCKXtyZXR1cm4ga1syNF0uY2FsbCh0aGlzLDM2LEIpfSwyMDQ4KSksV2Vha01hcCksaTM9KCgoT1syMV0oNixrWiwoKE8yLnByb3RvdHlwZS52PWZ1bmN0aW9uKEIpe3JldHVybiBnWzldKDQsMCwxLChCPUI9PT12b2lkIDA/TTU6QixETy5nZXQodGhpcykpLEIpfSxPMikucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtETy5nZXQodGhpcykuZGlzcG9zZSgpfSxUKSksa1opLnByb3RvdHlwZS5UPVJbNDhdKDksWzAsQ1gsSV9dKSxYRkQpKCksVl8pKCksZHA9ZjIoKSxoNT1DVigpLFgzPUVQKCk7CigoKCgoKCgoKCgoQjEoKSxNVikoKSxnOS5wcm90b3R5cGUuRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYpe3JldHVybiBHWzEzXSgzMiwoYj0oQz1DPT09KEo9Sj09PXZvaWQgMD8hMTpKLHZvaWQgMCk/ITA6Qyx0aGlzKSxmdW5jdGlvbihwKXtyZXR1cm4gQT1iLlgudGhlbihmdW5jdGlvbihRLG4sWil7cmV0dXJuIExVKE9bWj10aGlzLDQxXSgyNSksbVszNV0oNzUpLHZvaWQgMCxRKS50aGVuKGZ1bmN0aW9uKFcsTix4LGYsTCxyLFYsUCl7cmV0dXJuKChWPShmPShOPW4uc2VuZCxQPVs0MCwzNSwyXSxEW1BbMV1dKFBbMV0sMCxaLnYseikpLHI9ZVtQWzBdXShQWzJdLDAsWi5NKSxPKVtQWzBdXSg1MixXLlB2KCkpLHomJkM1LmdldE5hbWUoKWluIHopP3g9ISF6W0M1LmdldE5hbWUoKV06eD0oTD1aLnYuZ2V0KEM1KSk/IShMPT09IjAifHxMPT09MHx8TD09PSExfHxMPT09ImZhbHNlIik6ITEsTikuY2FsbChuLEIsbmV3IFluKHtvTjpmLFZYOnIsRGk6VixtZDp4LEF1Okt8fFouQywKUk46Sn0pLDM2RTUpfSl9LmJpbmQoYixEWzExXSgodj1mdW5jdGlvbihRLG4pe2JbKG49WzMyLCEwLCJ2Il0sbilbMl1dLmhhcyhhSyk/ZVtuWzBdXSg2NCxiW25bMl1dLGFLLG5bMV0pKFEpOlEmJkMmJmNvbnNvbGUuZXJyb3IoUSl9LDgpKS5FcnJvcigpKSkscC5yZXR1cm4oQS50aGVuKGZ1bmN0aW9uKFEsbil7aWYobj1bbnVsbCwicmVzcG9uc2UiLCExXSxRKXtpZihRLmVycm9yKXRocm93IFEuUXQmJnYoUS5lcnJvciksUS5lcnJvcjtyZXR1cm4oUS50eT1uWzJdLGIpLksoUSksUVtuWzFdXX1yZXR1cm4gblswXX0sZnVuY3Rpb24oUSxuLFope2lmKChuPShaPVsxMSw0MSw0MF0sUSYmUSBpbnN0YW5jZW9mIEVycm9yKSYmIVEubWVzc2FnZS5pbmNsdWRlcyhsTigpKSkmJkFlKCk8LjAwMSlyZXR1cm4gT1s0M10oWlsyXSxaWzBdLDksYixRLHopO2lmKG4pdGhyb3cgdihRKSxRO3JldHVybiBPWzQzXShaWzFdLFpbMF0sOSxiLFEseil9KSl9KSl9LGc5LnByb3RvdHlwZS5EPWZ1bmN0aW9uKEIsCnosSyxKLEMsYixBKXtDPSgodGhpcy5pPSh0aGlzWyh6PVsoSj10aGlzLEE9WzM5LDAsIkEiXSwxKSwyXSxBKVsyXV09dGhpc1tBWzJdXXx8bmV3IG14LG5ldyBPMihmdW5jdGlvbih2KXtKLlgudGhlbihmdW5jdGlvbihwKXtyZXR1cm4gcC5zZW5kKEVoLG5ldyBsTyh2KSl9KS5jYXRjaChrWzEwXS5iaW5kKG51bGwsNTcpKX0sdGhpc1tBWzJdXS5NLEIuY28sQi5wRCkpLGI9SFsyXSgyLHpbMV0sT1tBWzBdXSgxOSx6W0FbMV1dLEIuTkkpLEIud3opLGUpWzldKDM4LHpbQVsxXV0sdGhpcy5pLGIpLEIuYU4mJkIubHkmJihLPUhbMl0oMzUselsxXSxPW0FbMF1dKDIseltBWzFdXSxCLmFOKSxCLmx5KSxlWzldKDUseltBWzFdXSx0aGlzLmksSykpLEhbMl0oMix6WzFdLE9bQVswXV0oMTYseltBWzFdXSxCLlFOKSxCLm5iKSksZVs5XSgyMSx6W0FbMV1dLHRoaXMuaSxDKX0sZzkucHJvdG90eXBlLlM9ZnVuY3Rpb24oQix6LEspeygwLHQkLkFzKSgoSz1bMzIsMCw0XSxCKSksR1syM10oS1swXSwKS1sxXSwiIixlWzEwXSgzLG51bGwsS1syXSxCKSx6LHRoaXMpfSxnOSkucHJvdG90eXBlLks9ZnVuY3Rpb24oQix6LEssSil7KEJbKCgoKEJbSj1bInJlc3BvbnNlIiwidHkiLDE1XSx6PVswLCIiLG51bGxdLEpbMV1dJiZHWzIzXSgzMyx6WzBdLHpbMV0selsyXSxCLHRoaXMpLGtbOF0oMTMsIi0iLHRoaXMuaWQpKS52YWx1ZT1CW0pbMF1dLEIuWCkmJmcwWzRdKDExLEFYLEIuWCx6WzBdKSxCLnYpJiYoSz1CLnYsZzBbNF0oSlsyXSx5WzI1XSg0LHpbMF0pLEsselswXSkpLEopWzBdXSYmdGhpcy52LmhhcyhFSykmJmVbMzJdKDM3LHRoaXMudixFSywhMCkoQltKWzBdXSksQi5pKSYmWVsyN10oMzIsNSwiaHR0cHM6IiwzLHpbMl0sQi5pKX0sZzkucHJvdG90eXBlLkw9ZnVuY3Rpb24oKXttWzMwXSgxNywiLSIsdGhpcywyKX0sZzkucHJvdG90eXBlKS5pWT1mdW5jdGlvbihCLHope1lbej1bIk0iLCJsWSIsbnVsbF0sMzJdKDQselsyXSx0aGlzW3pbMF1dKSwoMCx0JC55NSkodGhpc1t6WzFdXS5iaW5kKHRoaXMsCkIpLDcpfSxnOS5wcm90b3R5cGUuST1mdW5jdGlvbihCLHosSyxKLEMpe0s9KHo9KEM9KEo9WzEsMCwiU2lsayJdLFs1LG51bGwsIkZ4aU9TIl0pLEopWzFdLEImJih6PURbMTJdKDcsMixKWzFdLEpbMF0sOTYpKSxHW0NbMF1dKDEsIkVkZ2UiLENbMl0sSlsyXSxDWzFdKSksdGhpcy5YLnRoZW4oZnVuY3Rpb24oYil7Yi5zZW5kKFhILG5ldyB0ZTgoSy5YLEsudix6LEsuTSkpfSkuY2F0Y2goa1sxMF0uYmluZChDWzFdLDU4KSl9LGc5LnByb3RvdHlwZSkuRz1mdW5jdGlvbihCLHosSyl7ZzBbNF0oMTEsKHo9QlsoSz1bInYiLDEyLDBdLEspWzBdXSx5WzI1XShLWzFdLEtbMl0pKSx6LEtbMl0pfSxnOS5wcm90b3R5cGUpLlcxPWZ1bmN0aW9uKEIseil7KCh6PVsibnVtYmVyIiwwLDU5XSxHKVszNF0oMyx6WzBdLHpbMV0sQi52aXNpYmxlLHRoaXMuTSxCLnV5KSx0aGlzLlgpLnRoZW4oZnVuY3Rpb24oSyl7cmV0dXJuIEsuc2VuZChtcyxCKX0pLmNhdGNoKGtbMTBdLmJpbmQobnVsbCx6WzJdKSl9LApnOS5wcm90b3R5cGUubD1mdW5jdGlvbihCKXt2YXIgej1bMzUsMzMsImFwcGx5Il07cmV0dXJuIHQkLlNpW3pbMl1dKG51bGwsW0IsMyx0aGlzLlMuYmluZCh0aGlzKV0uY29uY2F0KGVbelsxXV0oelswXSxHMlt6WzJdXSgxLGFyZ3VtZW50cykpKSl9LGc5LnByb3RvdHlwZSkuSkw9ZnVuY3Rpb24oQil7KCgoQj1bMTAsMzIsIi0iXSxrKVs4XSgxNCxCWzJdLHRoaXMuaWQpLnZhbHVlPSIiLHRoaXMudi5oYXModW4pJiZlW0JbMV1dKDM4LHRoaXMudix1biwhMCkoKSxtKVszMF0oMTgsQlsyXSx0aGlzKSx0aGlzLlgudGhlbihmdW5jdGlvbih6KXtyZXR1cm4gei5zZW5kKFlBKX0pKS5jYXRjaChrW0JbMF1dLmJpbmQobnVsbCw2MCkpfSxnOSkucHJvdG90eXBlLmtKPWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIEdbMTNdKCh6PXRoaXMsMjQpLGZ1bmN0aW9uKGIsQSx2KXt2PVs4NCwiUHYiLChBPVszLDEwLDRdLDQxKV07c3dpdGNoKGIuTSl7Y2FzZSAxOnJldHVybiBSQz1CLlgsbVszMl0oMjMsCkFbMV0sMCxCLmkpLEdsLndpbmRvd1tpM11bdXUoKV09R2wud2luZG93W2kzXVt1dSgpXXx8Qi5BLGIudihsUWgoT1t2WzJdXSgyMyksbVszNV0oMjcpKSwyKTtjYXNlIDI6cmV0dXJuIEM9Yi5YLGIudihFcHgoKSxBWzBdKTtjYXNlIEFbMF06aWYoIUFycmF5LmlzQXJyYXkoKEs9KEo9Yi5YLHZvaWQgMCksQikudil8fCFCLnYubGVuZ3RoKXtiLkdfKEFbMl0pO2JyZWFrfXJldHVybiBiLnYoWFBZKE9bdlsyXV0oMjApLHZvaWQgMCx2b2lkIDAsQi52KSw1KTtjYXNlIDU6Sz1iLlgsSz1PWzQwXSgyMCxLW3ZbMV1dKCkpO2Nhc2UgQVsyXTpyZXR1cm4gei5qJiYoWVsxM10oMjIsITAsITEsMCx6LEIuTSksei5qPSExKSxiLnJldHVybihuZXcgdXooT1s0MF0oNjgsQ1t2WzFdXSgpKSxPWzQwXSh2WzBdLEpbdlsxXV0oKSksSykpfX0pfSxnOS5wcm90b3R5cGUuWGc9ZnVuY3Rpb24oQix6LEssSil7KHo9WyJudW1iZXIiLChKPVsidmlzaWJpbGl0eVN0YXRlIiwxLCJ2aXNpYmxlIl0sMiksITBdLApCJiZCLnYmJigwLHQkLmJTKShCLmVycm9yQ29kZSksSz1CJiZCLmVycm9yQ29kZT09eltKWzFdXSx0aGlzLnYuaGFzKGFLKSk/ZVszMl0oMzYsdGhpcy52LGFLLHpbMl0pKCk6IUt8fGRvY3VtZW50W0pbMF1dJiZkb2N1bWVudFtKWzBdXSE9SlsyXXx8YWxlcnQoIkNhbm5vdCBjb250YWN0IHJlQ0FQVENIQS4gQ2hlY2sgeW91ciBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uIiksSyYmR1szNF0oNCx6WzBdLDAsITEsdGhpcy5NKX0sZzkpLnByb3RvdHlwZS5ucT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7cmV0dXJuIEM9KGI9KEs9bmV3IChCPSh6PWdbNDVdKChwPShKPVs0LG51bGwsMjBdLFs3LCh2PW5ldyBEYXRlLDYpLDJdKSxwKVswXSxKWzFdKSk/ejptWzI1XSgyMCxKWzFdLEpbcFsyXV0sMCksRGF0ZSktdixuZXcga1opLEE9bVsyM10oMTksQixiLDEpLGspW3BbMV1dKDEscFsyXSxBLEspLE9bMjNdKDQyLEMueWUoKSxKWzBdKX0sZzkpLnByb3RvdHlwZS5BTD1mdW5jdGlvbihCLAp6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZixMLHIsVixQLHEpe0E9QltxPVsodj0oSz1uZXcgU2V0LFswLDIsIjogIl0pLFY9bmV3IE1hcCwxMiksInYiLDFdLHFbMV1dO3RyeXtmb3IoTj1nW3FbMF1dKDUscGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShpOSgpKSkscD1OLm5leHQoKTshcC5kb25lO3A9Ti5uZXh0KCkpe2ZvcihMPWdbcVswXV0oKHg9cC52YWx1ZSxxWzBdKSxBKSxXPUwubmV4dCgpOyFXLmRvbmU7Vz1MLm5leHQoKSl6PVcudmFsdWUsSj16W3ZbMF1dLHgubmFtZS5pbmNsdWRlcyhKKSYmKFo9VixRPVouc2V0LGI9bmV3IGE5LEM9SFswXSg0OSxiLHFbMl0sTnVtYmVyKHpbcVsyXV0pKSxQPXlhKHguZHVyYXRpb24pLG49bVszOF0ocVswXSx2WzJdLHZbcVsyXV0sQyxQKSxmPXlhKHguc3RhcnRUaW1lKSxyPW1bMzhdKDIwLHZbMl0sMyxuLGYpLFEuY2FsbChaLEosT1s0MF0oMzYscikpKTt0cnl7Sy5hZGQoKG5ldyB5Nih4Lm5hbWUpKVtxWzFdXSl9Y2F0Y2goYyl7fX19Y2F0Y2goYyl7fXJldHVybiBuZXcgVFIoSywKVil9LGc5LnByb3RvdHlwZS5sWT1mdW5jdGlvbihCLHosSyxKLEMpeygoSz0oQi52W0M9WzIyLDMyLDQ2XSx6PVsxLCExLDBdLEljKCldPVN0cmluZyhnW0NbMV1dKDU3LHpbMl0sMTAsdGhpcykpLGVbQ1syXV0oQ1sxXSxEWzEyXSgzMywhMCxQRCxuZXcgdVkoQi52W3dGOCgpXSkpKSksRylbQ1swXV0oNyx6WzJdLHpbMV0sQi5NLEssQi52LHRoaXMuSCx0aGlzLk0pLEo9SFszNF0oMzMselswXSx0aGlzLk0pKSYmSFs1XSgyNixKLHlHLGZ1bmN0aW9uKCl7dGhpcy5YLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuc2VuZChWTyl9KS5jYXRjaChrWzEwXS5iaW5kKG51bGwsNjEpKX0selsxXSx0aGlzKX0sZzkpLnByb3RvdHlwZS5GZz1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRLG4sWixXKXtpZigoUT1bIiIsKG49KFc9WzI2LDM2LDIxXSxCLlNLJiYodGhpcy5XPUIuU0spLHRoaXMpLDApLG51bGxdLEFycmF5KS5pc0FycmF5KEIuTSkmJkIuTS5sZW5ndGg+UVsxXSl0cnl7ej1CLk0ubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBuZXcgT3YoTil9KSwKWj17U0s6KHY9dGhpcy5XKSE9UVsyXT92OiIiLG9yaWdpbjooSj1IWzJdKDkxLHRoaXMudixJTikpIT1RWzJdP0o6IiJ9LHRoaXMuUj1PWzExXSgxLGZ1bmN0aW9uKE4seCl7cmV0dXJuKHg9WyJSIiwoTj1uLk0sMjUpLCJ8WyJdLCEhTlt4WzBdXSkmJiEhTi52JiZEW3hbMV1dKHhbMV0seFsyXSxOLnYpPT09InZpc2libGUifSxaLEhbMl0oNTksdGhpcy52LFNCKXx8UVswXSxmdW5jdGlvbihOLHgpe3JldHVybigoeD17fSxOKSYmKHhbQjcuZ2V0TmFtZSgpXT1OKSxuKS5sKG4uRi5iaW5kKG4sVGQseCx2b2lkIDAsITApKX0seiksa1s1XSgxLCEwLHRoaXMuUi52KX1jYXRjaChOKXt0aGlzLlI9UVsyXX10cnl7Yj1tayhCLnYpLEE9bmV3IGRrLEEuaW5pdChiKSxlWzEwXSgyLFFbMl0sV1swXSxiLHZvaWQgMCxsKSYmWVszXSgxMCxRWzFdLHRoaXMsUVsxXSwhMCksUltXWzBdXShXWzJdLGIsV1sxXSxsKSYmdGhpcy5VJiYoWVs3XSg0OCwhMCxRWzBdLFFbMl0sdGhpcy5VLFJbV1swXV0oMTQsCmIsV1sxXSxsKSksQz1PWzI5XSgzLHRoaXMuVSksKEs9KHA9dGhpcy5BKT09UVsyXT92b2lkIDA6cC5NKSYmKEtbamdoKCldPUMpKSx0aGlzLkg9R1s0OV0oNywhMSxMMFksQSl9Y2F0Y2goTil7fX0sZzkucHJvdG90eXBlLkI9ZnVuY3Rpb24oQix6LEspe2lmKFlbKEs9WzI1LCJNIiwzMF0sSylbMl1dKEtbMF0sdGhpcy52KSlhOntpZihCPXRoaXNbS1sxXV0sQi5vPSFCLm8sQi5zdHlsZT09ZGopej1HQSgpO2Vsc2UgaWYoQi5zdHlsZT09aHIpej1JYSgpO2Vsc2UgYnJlYWsgYTtZWzM1XSgxNixCW0tbMV1dLHosQi5vP0ZxeDprSSl9fSxHbC53aW5kb3cmJkdsLndpbmRvd1tVVigpXSkmJllbMzVdKDIxLCJwaWQiLG51bGwsMCwiLnJlc2V0Iik7ZnVuY3Rpb24gTEMoQix6LEspe3JldHVybiBHWzM4XS5jYWxsKHRoaXMsOCxCLHosSyl9CnZhciBNZj0oSFsyNF0oNTEsTEMsaFopLFtdLmNvbmNhdChbMTI4XSxSWzMwXSgyLDAsMTI3KSkpLFBsPVlbMzNdKDQsMSwyLFsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLAo3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLAoxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsKCgoTEMucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCxRKXtpZih2PVswLCJtZXNzYWdlIG11c3QgYmUgc3RyaW5nIG9yIGFycmF5IiwyNTVdLHA9eiE9PShRPVsiY2hhckNvZGVBdCIsMywibnVtYmVyIl0sdm9pZCAwKT96OkIubGVuZ3RoLHRoaXMuQSl0aHJvdyBFcnJvcigidGhpcyBoYXNoZXIgbmVlZHMgdG8gYmUgcmVzZXQiKTsKaWYoSj10aGlzLk0sdHlwZW9mIEI9PT0ic3RyaW5nIilmb3IoQz12WzBdO0M8cDtDKyspe2lmKChBPUJbUVswXV0oQyksQSk+dlsyXSl0aHJvdyBFcnJvcigiQ2hhcmFjdGVycyBtdXN0IGJlIGluIHJhbmdlIFswLDI1NV0iKTsodGhpcy5YW0orK109QSxKPT10aGlzLmJsb2NrU2l6ZSkmJihEWzQwXSg0LFFbMV0sdGhpcyksSj12WzBdKX1lbHNlIGlmKFlbOF0oUVsxXSxRWzJdLEIpKWZvcihiPXZbMF07YjxwO2IrKyl7aWYoSz1CW2JdLHR5cGVvZiBLIT09Im51bWJlciJ8fEs8dlswXXx8Sz52WzJdfHxLIT0oS3x2WzBdKSl0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSIpO3RoaXMuWFtKKytdPUssSj09dGhpcy5ibG9ja1NpemUmJihEWzQwXSg2LFFbMV0sdGhpcyksSj12WzBdKX1lbHNlIHRocm93IEVycm9yKHZbMV0pOyh0aGlzLk09Six0aGlzKS5pKz1wfSxMQykucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKEIpe3RoaXMuQT0odGhpcy52PW1bdGhpcy5pPQoodGhpc1tCPVsibCIsMCwiTSJdLEJbMl1dPUJbMV0sQilbMV0sMjldKDIzLHRoaXNbQlswXV0pLCExKX0sKExDLnByb3RvdHlwZS5GPWZ1bmN0aW9uKEIseixLKXtmb3IodmFyIEo9WzIsIk14IiwxXSxDPUIuaCt6LmgsYj1bMjE0NzQ4MzY0OCwxLDQyOTQ5NjcyOTZdLEE9KEJbSlsxXV1eYlswXSkrKHpbSlsxXV1eYlswXSksdj1hcmd1bWVudHMubGVuZ3RoLWJbSlsyXV07dj49SlswXTstLXYpQys9YXJndW1lbnRzW3ZdLmgsQSs9YXJndW1lbnRzW3ZdW0pbMV1dXmJbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGgmYltDKz1hcmd1bWVudHMubGVuZ3RoPj5iW0pbMl1dLEpbMl1dJiYoQSs9YlswXSksQys9Yk4oQS9iW0pbMF1dKSxuZXcgZXQoQSxDKX0sTEMpLnByb3RvdHlwZSkuZGlnZXN0PWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaKXtpZigoQj1bMCwoWj1bMiwiTSIsOF0sMTEyKSwhMF0sdGhpcykuQSl0aHJvdyBFcnJvcigidGhpcyBoYXNoZXIgbmVlZHMgdG8gYmUgcmVzZXQiKTsKZm9yKHRoaXNbWlsxXV08QltRPXRoaXMuaSpaWzJdLDFdP3RoaXMudXBkYXRlKE1mLEJbMV0tdGhpc1taWzFdXSk6dGhpcy51cGRhdGUoTWYsdGhpcy5ibG9ja1NpemUtdGhpc1taWzFdXStCWzFdKSxLPTEyNztLPj1CWzFdO0stLSl0aGlzLlhbS109USYyNTUsUS89MjU2O2ZvcihKPShEWzQwXSgzMiwzLHRoaXMpLEJbMF0pLEM9QXJyYXkoWlsyXSp0aGlzLlIpLG49QlswXTtuPHRoaXMuUjtuKyspe2ZvcihwPSh2PSh6PTI0LGI9dGhpcy52W25dLGIuTXgpLGIpLmg7ej49QlswXTt6LT1aWzJdKUNbSisrXT1wPj56JjI1NTtmb3IoQT0yNDtBPj1CWzBdO0EtPVpbMl0pQ1tKKytdPXY+PkEmMjU1fXJldHVybiB0aGlzLkE9QltaWzBdXSxDfSwyNzE2OTA0MzA2KSwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsCjM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV0pLFJSPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsKE9bMjFdKDQsQ2YsTEMpLAozMjcwMzMyMDkpXSxacT0oZnVuY3Rpb24oKXtnbG9iYWxUaGlzLnNjcnlwdD1mdW5jdGlvbihULGNhLEssaCxpYSxMLFUsZGEpe2Z1bmN0aW9uIFYoYil7ZnVuY3Rpb24gYyhIKXtmb3IodmFyIFc9MCxYPUgubGVuZ3RoOzY0PD1YOyl7dmFyIHUsbCxtPWUseD1hLHk9ZyxDPWYsbj1rLHY9cCx6PXEsRD1BO2ZvcihsPTA7bDwxNjtsKyspe3ZhciByPVcrNCpsO0JbbF09KDI1NSZIW3JdKTw8MjR8KDI1NSZIW3IrMV0pPDwxNnwoMjU1JkhbcisyXSk8PDh8MjU1JkhbciszXX1mb3IobD0xNjtsPDY0O2wrKyl7cj0oKHU9QltsLTJdKT4+PjE3fHU8PDE1KV4odT4+PjE5fHU8PDEzKV51Pj4+MTA7dmFyIEU9KCh1PUJbbC0xNV0pPj4+N3x1PDwyNSleKHU+Pj4xOHx1PDwxNCledT4+PjM7QltsXT0ocitCW2wtN118MCkrKEUrQltsLTE2XXwwKXwwfWZvcihsPTA7bDw2NDtsKyspcj0oKChuPj4+NnxuPDwyNileKG4+Pj4xMXxuPDwyMSleKG4+Pj4yNXxuPDw3KSkrKG4mdl5+biZ6KXwwKSsoRCsKKGRbbF0rQltsXXwwKXwwKXwwLEU9KChtPj4+MnxtPDwzMCleKG0+Pj4xM3xtPDwxOSleKG0+Pj4yMnxtPDwxMCkpKyhtJnhebSZ5XngmeSl8MCxEPXosej12LHY9bixuPUMrcnwwLEM9eSx5PXgseD1tLG09citFfDA7ZT1lK218MDthPWEreHwwO2c9Zyt5fDA7Zj1mK0N8MDtrPWsrbnwwO3A9cCt2fDA7cT1xK3p8MDtBPUErRHwwO1crPTY0O1gtPTY0fX12YXIgZD1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwKMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sZT0xNzc5MDMzNzAzLGE9MzE0NDEzNDI3NyxnPTEwMTM5MDQyNDIsZj0yNzczNDgwNzYyLGs9MTM1OTg5MzExOSxwPTI2MDA4MjI5MjQscT01Mjg3MzQ2MzUsQT0xNTQxNDU5MjI1LEI9QXJyYXkoNjQpOwpjKGIpO3ZhciBJPWIubGVuZ3RoJTY0O3ZhciBNPWIubGVuZ3RoLzUzNjg3MDkxMnwwLE49Yi5sZW5ndGg8PDMsZWE9STw1Nj81NjoxMjA7Yj1iLnNsaWNlKGIubGVuZ3RoLUksYi5sZW5ndGgpO2IucHVzaCgxMjgpO2ZvcihJKz0xO0k8ZWE7SSsrKWIucHVzaCgwKTtyZXR1cm4gYi5wdXNoKE0+Pj4yNCYyNTUpLGIucHVzaChNPj4+MTYmMjU1KSxiLnB1c2goTT4+PjgmMjU1KSxiLnB1c2goTT4+PjAmMjU1KSxiLnB1c2goTj4+PjI0JjI1NSksYi5wdXNoKE4+Pj4xNiYyNTUpLGIucHVzaChOPj4+OCYyNTUpLGIucHVzaChOPj4+MCYyNTUpLGMoYiksW2U+Pj4yNCYyNTUsZT4+PjE2JjI1NSxlPj4+OCYyNTUsZT4+PjAmMjU1LGE+Pj4yNCYyNTUsYT4+PjE2JjI1NSxhPj4+OCYyNTUsYT4+PjAmMjU1LGc+Pj4yNCYyNTUsZz4+PjE2JjI1NSxnPj4+OCYyNTUsZz4+PjAmMjU1LGY+Pj4yNCYyNTUsZj4+PjE2JjI1NSxmPj4+OCYyNTUsZj4+PjAmMjU1LGs+Pj4yNCYyNTUsaz4+PjE2JjI1NSwKaz4+PjgmMjU1LGs+Pj4wJjI1NSxwPj4+MjQmMjU1LHA+Pj4xNiYyNTUscD4+PjgmMjU1LHA+Pj4wJjI1NSxxPj4+MjQmMjU1LHE+Pj4xNiYyNTUscT4+PjgmMjU1LHE+Pj4wJjI1NSxBPj4+MjQmMjU1LEE+Pj4xNiYyNTUsQT4+PjgmMjU1LEE+Pj4wJjI1NV19ZnVuY3Rpb24gamEoYixjLGQpe2Z1bmN0aW9uIGUoKXtmb3IodmFyIHE9Zy0xO2ctNDw9cSYmIShmW3FdKyssZltxXTw9MjU1KTtxLS0pZltxXT0wfTY0PGIubGVuZ3RoJiYoYj1WKGIucHVzaD9iOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGIsMCkpKTt2YXIgYSxnPTY0K2MubGVuZ3RoKzQsZj1BcnJheShnKSxrPUFycmF5KDY0KSxwPVtdO2ZvcihhPTA7YTw2NDthKyspZlthXT01NDtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWZbYV1ePWJbYV07Zm9yKGE9MDthPGMubGVuZ3RoO2ErKylmWzY0K2FdPWNbYV07Zm9yKGE9Zy00O2E8ZzthKyspZlthXT0wO2ZvcihhPTA7YTw2NDthKyspa1thXT05Mjtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWtbYV1ePQpiW2FdO2Zvcig7MzI8PWQ7KWUoKSxwPXAuY29uY2F0KFYoay5jb25jYXQoVihmKSkpKSxkLT0zMjtyZXR1cm4gMDxkJiYoZSgpLHA9cC5jb25jYXQoVihrLmNvbmNhdChWKGYpKSkuc2xpY2UoMCxkKSkpLHB9ZnVuY3Rpb24ga2EoYixjLGQsZSl7dmFyIGEsZz1iWzBdXmNbZCsrXSxmPWJbMV1eY1tkKytdLGs9YlsyXV5jW2QrK10scD1iWzNdXmNbZCsrXSxxPWJbNF1eY1tkKytdLEE9Yls1XV5jW2QrK10sQj1iWzZdXmNbZCsrXSxJPWJbN11eY1tkKytdLE09Yls4XV5jW2QrK10sTj1iWzldXmNbZCsrXSxlYT1iWzEwXV5jW2QrK10sSD1iWzExXV5jW2QrK10sVz1iWzEyXV5jW2QrK10sWD1iWzEzXV5jW2QrK10sdT1iWzE0XV5jW2QrK10sbD1iWzE1XV5jW2QrK10sbT1nLHg9Zix5PWssQz1wLG49cSx2PUEsej1CLEQ9SSxyPU0sRT1OLE89ZWEsWT1ILFo9VyxhYT1YLGJhPXUsUD1sO2ZvcihkPTA7ZDw4O2QrPTIpbV49KGE9KFpePShhPShyXj0oYT0obl49KGE9bStaKTw8N3xhPj4+MjUpKwptKTw8OXxhPj4+MjMpK24pPDwxM3xhPj4+MTkpK3IpPDwxOHxhPj4+MTQsdl49KGE9KHhePShhPShhYV49KGE9KEVePShhPXYreCk8PDd8YT4+PjI1KSt2KTw8OXxhPj4+MjMpK0UpPDwxM3xhPj4+MTkpK2FhKTw8MTh8YT4+PjE0LE9ePShhPSh6Xj0oYT0oeV49KGE9KGJhXj0oYT1PK3opPDw3fGE+Pj4yNSkrTyk8PDl8YT4+PjIzKStiYSk8PDEzfGE+Pj4xOSkreSk8PDE4fGE+Pj4xNCxQXj0oYT0oWV49KGE9KERePShhPShDXj0oYT1QK1kpPDw3fGE+Pj4yNSkrUCk8PDl8YT4+PjIzKStDKTw8MTN8YT4+PjE5KStEKTw8MTh8YT4+PjE0LG1ePShhPShDXj0oYT0oeV49KGE9KHhePShhPW0rQyk8PDd8YT4+PjI1KSttKTw8OXxhPj4+MjMpK3gpPDwxM3xhPj4+MTkpK3kpPDwxOHxhPj4+MTQsdl49KGE9KG5ePShhPShEXj0oYT0oel49KGE9dituKTw8N3xhPj4+MjUpK3YpPDw5fGE+Pj4yMykreik8PDEzfGE+Pj4xOSkrRCk8PDE4fGE+Pj4xNCxPXj0oYT0oRV49KGE9KHJePShhPShZXj0KKGE9TytFKTw8N3xhPj4+MjUpK08pPDw5fGE+Pj4yMykrWSk8PDEzfGE+Pj4xOSkrcik8PDE4fGE+Pj4xNCxQXj0oYT0oYmFePShhPShhYV49KGE9KFpePShhPVArYmEpPDw3fGE+Pj4yNSkrUCk8PDl8YT4+PjIzKStaKTw8MTN8YT4+PjE5KSthYSk8PDE4fGE+Pj4xNDtjW2UrK109YlswXT1tK2d8MDtjW2UrK109YlsxXT14K2Z8MDtjW2UrK109YlsyXT15K2t8MDtjW2UrK109YlszXT1DK3B8MDtjW2UrK109Yls0XT1uK3F8MDtjW2UrK109Yls1XT12K0F8MDtjW2UrK109Yls2XT16K0J8MDtjW2UrK109Yls3XT1EK0l8MDtjW2UrK109Yls4XT1yK018MDtjW2UrK109Yls5XT1FK058MDtjW2UrK109YlsxMF09TytlYXwwO2NbZSsrXT1iWzExXT1ZK0h8MDtjW2UrK109YlsxMl09WitXfDA7Y1tlKytdPWJbMTNdPWFhK1h8MDtjW2UrK109YlsxNF09YmErdXwwO2NbZSsrXT1iWzE1XT1QK2x8MH1mdW5jdGlvbiBmYShiLGMsZCxlLGEpe2Zvcih2YXIgZz0wLGY9ZCsxNiooMiphLTEpLGs9CjE2O2stLTspYltnKytdPWNbZisrXTtmb3IoZz0wO2c8MiphO2crPTIpa2EoYixjLGQrMTYqZyxlKzgqZyksa2EoYixjLGQrMTYqZysxNixlKzgqZysxNiphKX1mdW5jdGlvbiBsYShiKXtmb3IodmFyIGM9W10sZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iLmNoYXJDb2RlQXQoZCk7aWYoZTwxMjgpYy5wdXNoKGUpO2Vsc2V7aWYoZTwyMDQ4KWMucHVzaCgxOTJ8ZT4+Nik7ZWxzZXtpZihlPDU1Mjk2KWMucHVzaCgyMjR8ZT4+MTIpO2Vsc2V7aWYoZD49Yi5sZW5ndGgtMSl0aHJvdyBFcnJvcigiaW52YWxpZCBzdHJpbmciKTtkKys7ZT0oMTAyMyZlKTw8MTA7ZXw9MTAyMyZiLmNoYXJDb2RlQXQoZCk7ZSs9NjU1MzY7Yy5wdXNoKDI0MHxlPj4xOCk7Yy5wdXNoKDEyOHxlPj4xMiY2Myl9Yy5wdXNoKDEyOHxlPj42JjYzKX1jLnB1c2goMTI4fDYzJmUpfX1yZXR1cm4gY31mdW5jdGlvbiBtYShiKXtmb3IodmFyIGM9MDtjPDMyKmg7YysrKXt2YXIgZD1iKzQqYzt0W0YrY109KDI1NSZHW2QrCjNdKTw8MjR8KDI1NSZHW2QrMl0pPDwxNnwoMjU1JkdbZCsxXSk8PDh8KDI1NSZHW2QrMF0pPDwwfX1mdW5jdGlvbiBuYShiLGMpe2Zvcig7YjxjO2IrPTIpe2Zvcih2YXIgZD1TLGU9MzIqaCpiLGE9dCxnPUYsZj0zMipoO2YtLTspZFtlKytdPWFbZysrXTtmYShoYSx0LEYsUSxoKTtkPVM7ZT0zMipoKihiKzEpO2E9dDtnPVE7Zm9yKGY9MzIqaDtmLS07KWRbZSsrXT1hW2crK107ZmEoaGEsdCxRLEYsaCl9fWZ1bmN0aW9uIG9hKGIsYyl7Zm9yKDtiPGM7Yis9Mil7dmFyIGQ9dFtGKzE2KigyKmgtMSldJkotMSxlPXQsYT1GLGc9UztkKj0zMipoO2Zvcih2YXIgZj0zMipoO2YtLTspZVthKytdXj1nW2QrK107ZmEoaGEsdCxGLFEsaCk7ZD10W1ErMTYqKDIqaC0xKV0mSi0xO2U9dDthPVE7Zz1TO2QqPTMyKmg7Zm9yKGY9MzIqaDtmLS07KWVbYSsrXV49Z1tkKytdO2ZhKGhhLHQsUSxGLGgpfX1mdW5jdGlvbiBwYShiKXtmb3IodmFyIGM9MDtjPDMyKmg7YysrKXt2YXIgZD10W0YrY107R1tiKwo0KmMrMF09ZD4+PjAmMjU1O0dbYis0KmMrMV09ZD4+PjgmMjU1O0dbYis0KmMrMl09ZD4+PjE2JjI1NTtHW2IrNCpjKzNdPWQ+Pj4yNCYyNTV9fWZ1bmN0aW9uIHFhKGIsYyxkLGUsYSl7KGZ1bmN0aW9uIGYoKXtyYShmdW5jdGlvbigpe2UoYixiK2Q8Yz9iK2Q6Yyk7KGIrPWQpPGM/ZigpOmEoKX0pfSkoKX1mdW5jdGlvbiBzYShiKXt2YXIgYz1qYShULEcsaWEpO3JldHVybiJiYXNlNjQiPT09Yj9mdW5jdGlvbihkKXtmb3IodmFyIGUsYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuc3BsaXQoIiIpLGc9ZC5sZW5ndGgsZj1bXSxrPTA7azxnOyllPSgoazxnP2RbaysrXTowKTw8MTYpKygoazxnP2RbaysrXTowKTw8OCkrKGs8Zz9kW2srK106MCksZi5wdXNoKGFbZT4+PjE4JjYzXSksZi5wdXNoKGFbZT4+PjEyJjYzXSksZi5wdXNoKGFbZT4+PjYmNjNdKSxmLnB1c2goYVtlPj4+MCY2M10pO3JldHVybiAwPGclCjMmJihmW2YubGVuZ3RoLTFdPSI9IixnJTM9PTEmJihmW2YubGVuZ3RoLTJdPSI9IikpLGYuam9pbigiIil9KGMpOiJoZXgiPT09Yj9mdW5jdGlvbihkKXtmb3IodmFyIGU9IjAxMjM0NTY3ODlhYmNkZWYiLnNwbGl0KCIiKSxhPWQubGVuZ3RoLGc9W10sZj0wO2Y8YTtmKyspZy5wdXNoKGVbZFtmXT4+PjQmMTVdKSxnLnB1c2goZVtkW2ZdPj4+MCYxNV0pO3JldHVybiBnLmpvaW4oIiIpfShjKToiYmluYXJ5Ij09PWI/bmV3IFVpbnQ4QXJyYXkoYyk6Y312YXIgUj0xO2lmKCJvYmplY3QiPT10eXBlb2YgSyl7aWYoNDxhcmd1bWVudHMubGVuZ3RoKXRocm93IEVycm9yKCJzY3J5cHQ6IGluY29ycmVjdCBudW1iZXIgb2YgYXJndW1lbnRzIik7dmFyIHc9SztpZihVPWgsdm9pZCAwPT09KEs9dy5sb2dOKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3Lk4pdGhyb3cgRXJyb3IoInNjcnlwdDogbWlzc2luZyBOIHBhcmFtZXRlciIpO2lmKHcuTjwyfHx3Lk4+NDI5NDk2NzI5NSl0aHJvdyBFcnJvcigic2NyeXB0OiBOIGlzIG91dCBvZiByYW5nZSIpOwppZigwIT0ody5OJncuTi0xKSl0aHJvdyBFcnJvcigic2NyeXB0OiBOIGlzIG5vdCBhIHBvd2VyIG9mIDIiKTtLPU1hdGgubG9nKHcuTikvTWF0aC5MTjJ9Uj13LnB8fDE7aD13LnI7aWE9dy5ka0xlbnx8MzI7TD13LmludGVycnVwdFN0ZXB8fDA7ZGE9dy5lbmNvZGluZ31pZihSPDEpdGhyb3cgRXJyb3IoInNjcnlwdDogaW52YWxpZCBwIik7aWYoaDw9MCl0aHJvdyBFcnJvcigic2NyeXB0OiBpbnZhbGlkIHIiKTtpZihLPDF8fDMxPEspdGhyb3cgRXJyb3IoInNjcnlwdDogbG9nTiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMzEiKTt2YXIgdCxTLEo9MTw8Sz4+PjA7aWYoMTA3Mzc0MTgyNDw9aCpSfHwzLjM1NTQ0MzE5OTIxODc1RTcvUjxofHwxLjY3NzcyMTU5OTYwOTM3NUU3PGh8fDMuMzU1NDQzMTk5MjE4NzVFNy9oPEopdGhyb3cgRXJyb3IoInNjcnlwdDogcGFyYW1ldGVycyBhcmUgdG9vIGxhcmdlIik7InN0cmluZyI9PXR5cGVvZiBUJiYoVD1sYShUKSk7InN0cmluZyI9PXR5cGVvZiBjYSYmCihjYT1sYShjYSkpO3ZhciBoYT0idW5kZWZpbmVkIiE9dHlwZW9mIEludDMyQXJyYXk/KHQ9bmV3IEludDMyQXJyYXkoNjQqaCksUz1uZXcgSW50MzJBcnJheSgzMipKKmgpLG5ldyBJbnQzMkFycmF5KDE2KSk6KHQ9W10sUz1bXSxBcnJheSgxNikpO3ZhciBHPWphKFQsY2EsMTI4KlIqaCk7dmFyIEY9MCxRPTMyKmgscmE9InVuZGVmaW5lZCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOnNldFRpbWVvdXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEwmJihkYT1VLFU9TCxMPTFFMyk7TDw9MD9mdW5jdGlvbigpe2Zvcih2YXIgYj0wO2I8UjtiKyspbWEoMTI4KmIqaCksbmEoMCxKKSxvYSgwLEopLHBhKDEyOCpiKmgpO1Uoc2EoZGEpKX0oKTpmdW5jdGlvbiBkKGMpe21hKDEyOCpjKmgpO3FhKDAsSiwyKkwsbmEsZnVuY3Rpb24oKXtxYSgwLEosMipMLG9hLGZ1bmN0aW9uKCl7cGEoMTI4KmMqaCk7YysxPFI/cmEoZnVuY3Rpb24oKXtkKGMrMSl9KTpVKHNhKGRhKSl9KX0pfSgwKX19LmNhbGwoZ2xvYmFsVGhpcyksCmdsb2JhbFRoaXMpLnNjcnlwdCx6QkQ9ekJEfHx7aWQ6UkFsKCl9LFF2PW5ldyBUZXh0RW5jb2RlcixLY2g9bmV3IE1hcChbW1UxLGZ1bmN0aW9uKEIseixLKXtyZXR1cm4oKGtoWyhLPVsoej1CLnBELCJKIiksMzUsMV0sSylbMF1dKCkudj1nWzI0XSgxMywwLHopLGRrW0tbMF1dKCkpLmluaXQobWsoQi52KSksaylbS1sxXV0oOSxLWzJdLDU4NixCLk0pfV0sW21MLGZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbixaLFcsTix4LGYsTCl7cmV0dXJuIEdbMTNdKDgsZnVuY3Rpb24ocixWLFApe2lmKChWPVsyLChQPVsicGVyZm9ybWFuY2UiLDEsIm5vdyJdLG51bGwpLDBdLHIpLk09PVBbMV0pcmV0dXJuIEM9KHo9KEw9c2VsZik9PVZbUFsxXV0/dm9pZCAwOihmPUxbUFswXV0pPT1WW1BbMV1dP3ZvaWQgMDpmLm1lbW9yeSk/ei51c2VkSlNIZWFwU2l6ZTp2b2lkIDAsTj1wZXJmb3JtYW5jZVtQWzJdXSgpLHIuQShWWzBdKSxBPUIudixRPW9DKEEpLGI9bmV3IGZtKFEpLHIudihZWzNdKDQwLApWWzJdLFZbUFsxXV0sNSwiOiIsYiksNCk7aWYoci5NIT1WWzBdKXJldHVybiBLPXIuWCxuPXBlcmZvcm1hbmNlW1BbMl1dKCksSj16P3oudXNlZEpTSGVhcFNpemU6dm9pZCAwLFc9eWEobi1OKSx2PW5hdmlnYXRvci5kZXZpY2VNZW1vcnl8fFZbMl0seD1DIT09dm9pZCAwJiZKIT09dm9pZCAwP0otQzp2b2lkIDAsci5yZXR1cm4obmV3IExtKHgsMSx2LFcsSykpO3JldHVybihwPShaPShyLmkoKSx5YShwZXJmb3JtYW5jZVtQWzJdXSgpLU4pKSxuYXZpZ2F0b3IuZGV2aWNlTWVtb3J5KXx8VlsyXSxyKS5yZXR1cm4obmV3IExtKHZvaWQgMCw2LHAsWixbXSkpfSl9XV0pLEprWj1zZWxmLHdqPW5ldyBNZXNzYWdlQ2hhbm5lbCxDMTg9KG5ldyAocG9zdE1lc3NhZ2UocnQsW3dqLnBvcnQyXSksR0gpKHdqLnBvcnQxLEtjaCxKa1osR2wubG9jYXRpb24ub3JpZ2luLHdqKSxFVSkoKSxtNj1KZUcoKSxCZj0oKCgoKEY9WVUucHJvdG90eXBlLEYuS1g9ZnVuY3Rpb24oQil7dGhpcy52LnNlbmQoaUYsCkIpfSxGLlk3PWZ1bmN0aW9uKCl7dGhpcy52LnNlbmQoWUEpfSxGKS5vRD1mdW5jdGlvbigpe3RoaXMudi5zZW5kKCRBKX0sRi5NWj1mdW5jdGlvbihCLHope3JldHVybiB0aGlzLnYuc2VuZChxTixuZXcgRnkoe3Zpc2libGU6Qix1eTp6fSkpfSxGKS5CRj1mdW5jdGlvbihCLHosSyxKLEMsYixBLHYscCl7dj1EW3A9WzIwLChDPUN8fGZ1bmN0aW9uKCl7fSwicmVwbGFjZSIpLDNdLEE9QXx8ZnVuY3Rpb24oKXt9LGI9Ynx8ZnVuY3Rpb24oKXt9LDExXSgxMCkubmFtZVtwWzFdXShnNixoJCksdGhpcy52PW1bcFswXV0oMTgsImh0dHAiLERbMTFdKHBbMl0pLnBhcmVudC5mcmFtZXNbdl0sa1s0N10oNSxZayksbmV3IE1hcChbW1EwLENdLFt3aSxiXSxbVk8sQV0sW1tqdCxUZF0sel0sW3FOLEJdLFtZQSxLXSxbdVYsSl1dKSx0aGlzKX0sRi52ej1mdW5jdGlvbihCKXt0aGlzLnYuc2VuZChxTixuZXcgRnkoe3Zpc2libGU6ITAsdXk6QixyZXNpemU6ITB9KSl9LEYub25FcnJvcj1mdW5jdGlvbihCKXt0aGlzLnYuc2VuZCh5ZywKbmV3IHlWKEIpKX0sRi5qOT1mdW5jdGlvbihCLHope3JldHVybiB0aGlzLnYuc2VuZChtTCxCLHopfSxGKS5iUj1mdW5jdGlvbigpe3RoaXMudi5zZW5kKGNEKX0sRi53dD1mdW5jdGlvbigpe30sRi5wRT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnYuc2VuZChTQyl9LEYpLmR0PWZ1bmN0aW9uKCl7cmV0dXJuIEMxOH0sb0opKCksS1E9U0coKSxHRj1URTgoKSxXaz0oKCgoKChGPSgoKChGPSgoKCgoKCgoKCgoKChPWzIxXSgyLGlWLFdoKSxpVi5wcm90b3R5cGUpLlUzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQX0sTylbMjFdKDQsdkYsVCksdkYucHJvdG90eXBlLnMzPWZ1bmN0aW9uKCl7cmV0dXJuIGdbMTZdKDExLGwsdGhpcywzLFFCKX0sdkYpLnByb3RvdHlwZS5VMz1mdW5jdGlvbigpe3JldHVybiBSWzI2XSgyMyx0aGlzLDEsbCl9LHZGLlJUPVBNcSgpLHZGKS5wcm90b3R5cGUuVD1SWzQ4XSg1LFsiZHJlc3AiLENYLEFHLGckLFRhLFd4LENYXSksTylbMjFdKDQsdVEsYmQpLE9bMjFdKDQsCkh0LGJkKSxPWzIxXSgxLHhMLFQpLHhMLnByb3RvdHlwZS5UPVJbNDhdKDgsWzAsVmQsUVRdKSxPWzIxXSgzLGNkLHdFKSxjZC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihCLHopeyhHWzQ5XSg5LCExLCh6PVsiR1YiLDMsIlRkIl0saGEpLGRrLkooKSkmJlJbNDVdKDUwLHpbMV0sNSksQiYma1s0N10oNDUsdGhpcyxCKSx0aGlzKS52LnYuQkYodGhpcy5lbC5iaW5kKHRoaXMpLHRoaXNbelsyXV0uYmluZCh0aGlzKSx0aGlzLnJmLmJpbmQodGhpcyksdGhpcy5Mei5iaW5kKHRoaXMpLHRoaXMuRC5iaW5kKHRoaXMpLHRoaXNbelswXV0uYmluZCh0aGlzKSx0aGlzLmVJLmJpbmQodGhpcykpfSxjZCkucHJvdG90eXBlLkk9ZnVuY3Rpb24oQix6LEssSixDLGIsQSx2LHAsUSxuLFosVyxOLHgsZil7cmV0dXJuKHg9dGhpcyxHKVsxM10oMzMsZnVuY3Rpb24oTCxyLFYpe3I9KFY9WzEsIlUiLDJdLFs1LG51bGwsM10pO3N3aXRjaChMLk0pe2Nhc2UgVlswXTppZighKGY9KHA9KEM9KG49UHJvbWlzZS5yZXNvbHZlKHJbVlswXV0pLApQcm9taXNlLnJlc29sdmUoW251bGwsbnVsbF0pKSxyW1ZbMF1dKSxXPXJbVlswXV0sbmV3IEhHKSx4KS5pKXtMLkdfKFZbMl0pO2JyZWFrfXJldHVybiBMLkEocltWWzJdXSksTC52KFByb21pc2UucmFjZShbeC5pLFByb21pc2UucmVzb2x2ZShyW1ZbMF1dKV0pLHJbMF0pO2Nhc2UgclswXTppZih2PUwuWCltW1ZbMl1dKDMzLDAsZixWWzBdLHYuRm4sZ1tWWzJdXS5iaW5kKG51bGwsMjEpKSxrWzZdKDU3LFZbMl0sZix2LldXKSxtWzM4XSgxMiwiOiAiLDQsZix2LnVYKSx2LmlSIT1yW1ZbMF1dJiZrWzZdKDI1LDYsZix2LmlSKSxIWzBdKDQ2LGYscltWWzJdXSx2LmxYfHxWWzBdKTtlbHNlIEhbMF0oNjQsZixyW1ZbMl1dLFZbMl0pO0wuRihWWzJdKTticmVhaztjYXNlIHJbVlsyXV06TC5pKCksSFswXSg1MyxmLHJbVlsyXV0scltWWzJdXSk7Y2FzZSBWWzJdOnJldHVybiB4W1ZbMV1dJiYoQT14LnYudi5wRSgpKSYmKG49QS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBudWxsfSkpLHguWCE9CnJbVlswXV0mJihDPURbN10oOSwwLDYsVlsyXSwxOCx4KS5jYXRjaChmdW5jdGlvbigpe3JldHVybltudWxsLG51bGxdfSkpLFo9Z1sxMl0uYmluZChudWxsLFZbMF0pLEwudihQcm9taXNlLmFsbChbbixDXSksNik7Y2FzZSA2OlE9WihMLlgpLEo9US5uZXh0KCkudmFsdWUsYj1RLm5leHQoKS52YWx1ZSxBcnJheS5pc0FycmF5KGIpJiZiLmxlbmd0aD09PTImJihOPWdbMTJdKDQsYiksVz1OLm5leHQoKS52YWx1ZSxwPU4ubmV4dCgpLnZhbHVlKSxtWzE1XShWWzBdLDE4LHAseCxLLFcseixCLEo/Si5yZXF1ZXN0Om51bGwseC5YPT1yW1ZbMF1dP251bGw6WVsyNV0oOCxWWzJdLDQsWVsxM10oVlsyXSxyW1ZbMl1dLG5ldyB1cSxtWzQ3XSg0OCw3LHJbMF0sRE8uZ2V0KHguWCkpKSksZ1sxNl0oMjYsdm9pZCAwLGYscltWWzJdXSxRQik/Zjp2b2lkIDApLEwuUigpfX0pfSxjZC5wcm90b3R5cGUuQz1mdW5jdGlvbihCLHosSyxKLEMsYixBKXsoYj0oKChBPVsxRTMsIlgiLCJGIl0sdGhpcy52KVtBWzFdXT0KR0YsSClbNDRdKDEzLCIiLG51bGwsdGhpcy5NLEIsdGhpc1tBWzJdXSksdGhpcykuTS52LGIuVz10aGlzLmwsZSlbMTRdKDM1LCJoIiwhMCxiLHosSyxDKSx0aGlzLk89T1syXSg1Nix0aGlzLmU5LEoqQVswXSx0aGlzKX0sY2QucHJvdG90eXBlLlM9ZnVuY3Rpb24oQix6LEssSixDKXtpZihnWzE2XSg5MCxsLChKPVsxMyw5LChDPVshMSwxOSwieWUiXSwxMCldLEIpLDQpIT1udWxsKXRoaXMudi5YPUtRLHRoaXMudi52Lm9uRXJyb3IoQi5zMygpKTtlbHNlIGlmKEs9UlsyNl0oMjIsQiwxLGwpLGtbNDddKDQyLHRoaXMsSyksWVtDWzFdXSg2OCwyLEIpfHxZW0NbMV1dKDM3LDExLEIpKWVbMjZdKDUsbnVsbCxCLlZBKCkpLHo9bmV3IEpQKDYwLEssbnVsbCxudWxsLFJbMjZdKDE0LEIsSlsxXSxsKSxudWxsLEIuYmsoKT9CLmJrKClbQ1syXV0oKTpudWxsLCEhWVtDWzFdXSg2OCxKWzJdLEIpKSx0aGlzLnYudi5LWCh6KSxEWzQzXSg4NCx0aGlzLENbMF0pLHRoaXMudi5YPUJmO2Vsc2UgR1sxMF0oMTEsCkpbMF0sUls0OF0oNzQsQixnbSw3LGwpLHRoaXMsdGhpcy5NLnYuZ2V0TmFtZSgpIT11Ril9LGNkLnByb3RvdHlwZS5EPWZ1bmN0aW9uKEIseixLLEosQyxiKXtpZighKEs9WzIzLChiPVs0LDAsNV0sbnVsbCksITBdLEIudikpcmV0dXJuITE7dHJ5e3JldHVybiB6PW1rKEIudiksSFtiWzBdXSg5MSxLW2JbMV1dLHosbCx2b2lkIDAsZVszNV0uYmluZChudWxsLGJbMF0pKSE9S1sxXSYmKEM9ZGsuSigpLmdldCgpLEo9SFtiWzBdXSg5MSxLW2JbMV1dLHosbCxRQixlWzM1XS5iaW5kKG51bGwsYlsyXSkpLHlbMzhdKGJbMF0sbCxHWzQyXSg1NCxLWzFdLCExLEopLEMsS1tiWzFdXSksZGsuSigpLmluaXQoQykpLEtbMl19Y2F0Y2goQSl7cmV0dXJuITF9fSxGPWNkLnByb3RvdHlwZSxjZC5wcm90b3R5cGUpLlo9ZnVuY3Rpb24oKXt3RS5wcm90b3R5cGUuWi5jYWxsKHRoaXMpfSxGKS5lST1mdW5jdGlvbigpe3JldHVybiBnMFsyXS5jYWxsKHRoaXMsMTApfSxGKS5lOT1mdW5jdGlvbigpe3JldHVybiBtWzNdLmNhbGwodGhpcywKMjMpfSxGKS5Mej1mdW5jdGlvbihCLHope3JldHVybiB5WzEzXS5jYWxsKHRoaXMsNjQsQix6KX0sRi5lbD1mdW5jdGlvbihCKXtyZXR1cm4ga1sxM10uY2FsbCh0aGlzLDEsQil9LGNkKS5wcm90b3R5cGUuQT1mdW5jdGlvbihCKXsodGhpc1tCPVsyLCJ2Iiwib25FcnJvciJdLEJbMV1dLlg9QmYsdGhpc1tCWzFdXSlbQlsxXV1bQlsyXV0oQlswXSl9LGNkKS5wcm90b3R5cGUuZz1mdW5jdGlvbihCKXsoQj1bNDMsInYiLDY4XSx0aGlzW0JbMV1dW0JbMV1dLktYKG5ldyBKUCg2MCx0aGlzLk1bQlsxXV0uY3ooKSkpLEQpW0JbMF1dKEJbMl0sdGhpcywhMSl9LEYucmY9ZnVuY3Rpb24oQil7cmV0dXJuIGVbMjldLmNhbGwodGhpcywxNixCKX0sY2QucHJvdG90eXBlKSxGLkRPPWZ1bmN0aW9uKEIseixLLEope3JldHVybiBtWzldLmNhbGwodGhpcywxLEIseixLLEopfSxGKS5HVj1mdW5jdGlvbihCLHosSyxKLEMsYil7cmV0dXJuIHlbMTJdLmNhbGwodGhpcyw0OSxCLHosSyxKLEMsYil9LApGLlRkPWZ1bmN0aW9uKEIpe3JldHVybiBSWzE1XS5jYWxsKHRoaXMsOCxCKX0sRi5WdD1mdW5jdGlvbihCLHope3JldHVybiBZWzNdLmNhbGwodGhpcywxLEIseil9LEYpLnI3PWZ1bmN0aW9uKEIseixLLEosQyl7cmV0dXJuIHlbNDhdLmNhbGwodGhpcyw1MixCLHosSyxKLEMpfSxnKVs0Nl0oNjQsZnVuY3Rpb24oQix6KXtpZih3aW5kb3cuUmVjYXB0Y2hhRW1iZWRkZXIpUmVjYXB0Y2hhRW1iZWRkZXIub25FcnJvcihCLHopfSwicmVjYXB0Y2hhLmZyYW1lLmVtYmVkZGFibGUuRXJyb3JSZW5kZXIuZXJyb3JSZW5kZXIiKSx3WikucHJvdG90eXBlLEYpLktYPWZ1bmN0aW9uKEIpe3dpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIudmVyaWZ5Q2FsbGJhY2smJlJlY2FwdGNoYUVtYmVkZGVyLnZlcmlmeUNhbGxiYWNrKEIucmVzcG9uc2UpfSxGLnZ6PWZ1bmN0aW9uKEIpe2lmKHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIub25SZXNpemUpUmVjYXB0Y2hhRW1iZWRkZXIub25SZXNpemUoQi53aWR0aCwKQi5oZWlnaHQpO1Byb21pc2UucmVzb2x2ZShuZXcgRnkoe3Zpc2libGU6ITAsdXk6QixyZXNpemU6ITB9KSl9LEYpLlk3PWZ1bmN0aW9uKCl7aWYod2luZG93LlJlY2FwdGNoYUVtYmVkZGVyJiZSZWNhcHRjaGFFbWJlZGRlci5vbkNoYWxsZW5nZUV4cGlyZWQpUmVjYXB0Y2hhRW1iZWRkZXIub25DaGFsbGVuZ2VFeHBpcmVkKCl9LEYuTVo9ZnVuY3Rpb24oQix6KXtpZih3aW5kb3cuUmVjYXB0Y2hhRW1iZWRkZXImJlJlY2FwdGNoYUVtYmVkZGVyLm9uU2hvdylSZWNhcHRjaGFFbWJlZGRlci5vblNob3coQix6LndpZHRoLHouaGVpZ2h0KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBGeSh7dmlzaWJsZTpCLHV5Onp9KSl9LEYpLkJGPWZ1bmN0aW9uKEIseil7KHRoaXMuTT16LHRoaXMuWD1CLHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIuY2hhbGxlbmdlUmVhZHkpJiZSZWNhcHRjaGFFbWJlZGRlci5jaGFsbGVuZ2VSZWFkeSgpfSxGLm9EPWZ1bmN0aW9uKCl7fSwKRi5vbkVycm9yPWZ1bmN0aW9uKEIpe2lmKHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlciYmUmVjYXB0Y2hhRW1iZWRkZXIub25FcnJvcilSZWNhcHRjaGFFbWJlZGRlci5vbkVycm9yKEIsITApfSxGLmo5PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LEYucEU9ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpfSxGKS53dD1mdW5jdGlvbihCLHosSyl7KHRoaXMudj1CLHdpbmRvdy5SZWNhcHRjaGFFbWJlZGRlcikmJlJlY2FwdGNoYUVtYmVkZGVyLnJlcXVlc3RUb2tlbiYmUmVjYXB0Y2hhRW1iZWRkZXIucmVxdWVzdFRva2VuKHosSyl9LEYuZHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbTZ9LEYuYlI9ZnVuY3Rpb24oKXt9LE9bMjFdKDIsJFUsblEpLCRVLnByb3RvdHlwZSkuVTM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YLnZhbHVlfSxxZSkoKSxJUz1bImZpbnB1dCIsQ1gsb0ssQ1gsMSwoKE9bMjFdKDMsaHosVCksaHopLlJUPXdjKCksTmYpLElfLC0xXSxiRnE9SFsxMl0oNSwKMTAwLGh6LChoei5wcm90b3R5cGUuVD1SWzQ4XSg0LElTKSxJUykpLEZtPVsoKGdbNDZdKDY1LGZ1bmN0aW9uKEIseil7bmV3IHVKKCh6PW5ldyBoeihvQyhCKSkseikpfSwicmVjYXB0Y2hhLmZyYW1lLmVtYmVkZGFibGUuTWFpbi5pbml0IiksZylbNDZdKDgxLGZ1bmN0aW9uKEIseil7KHo9bmV3IGh6KG9DKEIpKSwobmV3IHdOKHopKS52KS5pbml0KFJbMjZdKDE1LHosMSxsKSl9LCJyZWNhcHRjaGEuZnJhbWUuTWFpbi5pbml0IiksMCksVGEsWzAsQ1gsLTEsQlosZyQsSV8sUVQsLTJdLENYXSxBa3g9WzAsQ1gsLTQsWzAsQ1gsRm1dLFswLENYLEZtLFFUXSxbMCxDWCwtMV0sWzAsQ1gsRm1dLFswLENYLEZtXSxbMCxGbV1dLHFfPSgoT1syMV0oNixoTCxUKSxoTCkucHJvdG90eXBlLlQ9Uls0OF0oNCxbMCxDWCwtNixBa3gsQ1gsLTFdKSxIWzEyXSg2LDEwMCx0TCwkSSkpLHZueD0oT1syMV0oMSxkaSxiZCksdm54KXx8e2lkOkZCKCl9LFRCMz0oKCgoKE9bMjFdKDUsYzYsd0UpLGM2KS5wcm90b3R5cGUuaW5pdD0KZnVuY3Rpb24oQix6LEssSil7KEs9KCh6PShCPShKPVsiUiIsInp6bWIiLCJNIl0sdGhpc1tKWzBdXSkuYmluZCh0aGlzKSx0aGlzW0pbMl1dKSx6KVtKWzJdXT10aGlzLkMuYmluZCh0aGlzKSx6LnY9QixHbFtKWzFdXSkpPT1udWxsfHxLLnp6cmQoKX0sYzYucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihCLHosSyl7KHo9R2xbKEI9Z1szNV0oNTMsKEs9WyJ6enJzIiwienptYiIsInYiXSx0aGlzKVtLWzJdXSksSylbMV1dKT09bnVsbHx8eltLWzBdXShCLndpZHRoLEIuaGVpZ2h0KX0sYzYpLnByb3RvdHlwZS5SPWZ1bmN0aW9uKEIseixLLEosQyxiLEEsdixwLFEsbil7aWYodj1nWzE2XSg4OSwobj1bMTQsImkiLChKPVsoSz10aGlzLDEpLCEwLCIiXSwiWCIpXSx2b2lkIDApLEIsNCksdiE9bnVsbCl0aGlzLk0ub25FcnJvcih2KTtlbHNle1E9KEM9KEE9KHo9KHRoaXMubD0oKHRoaXMuQT1iPWVbMl0oMzgsSlswXSx2b2lkIDAsQiksdGhpcy52KVtuWzJdXS52YWx1ZT1iLHRoaXNbblsyXV09CkdGLHRoaXMuTz1wZXJmb3JtYW5jZS5ub3coKSxwZXJmb3JtYW5jZS5ub3coKSksZSlbMl0oMzMsMTAsdm9pZCAwLEIpLHA9Qi5WQSgpLHA9PW51bGw/MDpOdW1iZXIocCkpLEhbNDRdKG5bMF0sSlsyXSxudWxsLHRoaXMudix6KSx2b2lkIDApLHRoaXMudi52KTt0cnl7Qz1OOVooa1s0NV0oMTMsWVszNF0oMywxMixCKXx8SlsyXSkpfWNhdGNoKFope3RoaXMuTS5vbkVycm9yKEpbMF0pO3JldHVybn10aGlzW2VbblswXV0oMzQsImgiLEpbMV0sUSxlWzJdKDM1LDExLHZvaWQgMCxCKSxDP0M6dm9pZCAwKSxuWzFdXSYmKGtbMTZdKDYzLHRoaXNbblsxXV0pLHRoaXNbblsxXV09bnVsbCksQT4wJiYodGhpc1tuWzFdXT1PWzJdKDcsZnVuY3Rpb24oWil7Sy5YPT09R0YmJihLLlg9S1EsKFo9R2wuenptYik9PW51bGx8fFouenpjZSgpKX0sQSoxRTMpKSx5WzI0XSg3LG51bGwsSlsxXSxnWzM1XSg1NCx0aGlzLnYpKX19LGM2KS5wcm90b3R5cGUuVTM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSwKYzYpLnByb3RvdHlwZS5DPWZ1bmN0aW9uKEIpe0ImJnRoaXMudi52JiZ0aGlzLnYudi5VMChCLnZpc2libGUpfSxUQjN8fHtpZDpzQjMoKX0pLGo4OD0oU0YucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oQix6KXsoej1HbC56em1iKT09bnVsbHx8ei56emVyKEIpfSxqODh8fHtpZDpNZCgpfSk7Z1s0Nl0oNjQsZnVuY3Rpb24oQix6KXt6PWJGcShrWzQ1XSgxNSxCKSksKG5ldyBHOGgoeikpLmNvbnRyb2xsZXIuaW5pdCgpfSwicmVjYXB0Y2hhLmZyYW1lLm1vYmlsZS5NYWluLmluaXQiKTt9KS5jYWxsKHRoaXMpOwo="}},"time_used":72,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":17,"receive":55,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
